pax_global_header00006660000000000000000000000064146430645420014522gustar00rootroot0000000000000052 comment=c39882de9efa88f7cf61541dec03d278b08da00e isaacs-resolve-import-9b54ade/000077500000000000000000000000001464306454200164515ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/.github/000077500000000000000000000000001464306454200200115ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/.github/workflows/000077500000000000000000000000001464306454200220465ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/.github/workflows/ci.yml000066400000000000000000000015151464306454200231660ustar00rootroot00000000000000name: CI on: [push, pull_request] jobs: build: strategy: matrix: node-version: [16.x, 18.x, 20.x] platform: - os: ubuntu-latest shell: bash - os: macos-latest shell: bash - os: windows-latest shell: bash - os: windows-latest shell: powershell fail-fast: false runs-on: ${{ matrix.platform.os }} defaults: run: shell: ${{ matrix.platform.shell }} steps: - name: Checkout Repository uses: actions/checkout@v3 - name: Use Nodejs ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: ${{ matrix.node-version }} cache: npm - name: Install dependencies run: npm ci - name: Run Tests run: npm test -- -c -t0 isaacs-resolve-import-9b54ade/.github/workflows/typedoc.yml000066400000000000000000000025171464306454200242450ustar00rootroot00000000000000# Simple workflow for deploying static content to GitHub Pages name: Deploy static content to Pages on: # Runs on pushes targeting the default branch push: branches: ["main"] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: # Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages permissions: contents: read pages: write id-token: write # Allow one concurrent deployment concurrency: group: "pages" cancel-in-progress: true jobs: # Single deploy job since we're just deploying deploy: environment: name: github-pages url: ${{ steps.deployment.outputs.page_url }} runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Use Nodejs ${{ matrix.node-version }} uses: actions/setup-node@v3 with: node-version: 18.x cache: npm - name: Install dependencies run: npm ci - name: Prepare run: npm run prepare - name: Generate typedocs run: npm run typedoc - name: Setup Pages uses: actions/configure-pages@v3 - name: Upload artifact uses: actions/upload-pages-artifact@v1 with: path: './docs' - name: Deploy to GitHub Pages id: deployment uses: actions/deploy-pages@v1 isaacs-resolve-import-9b54ade/.gitignore000066400000000000000000000000471464306454200204420ustar00rootroot00000000000000/dist /node_modules /.tap /.tshy /docs isaacs-resolve-import-9b54ade/.prettierignore000066400000000000000000000001761464306454200215200ustar00rootroot00000000000000/node_modules /example /.github /dist .env /tap-snapshots /.nyc_output /coverage /benchmark /bench /LICENSE.md /test/fixtures isaacs-resolve-import-9b54ade/LICENSE.md000066400000000000000000000030161464306454200200550ustar00rootroot00000000000000# Blue Oak Model License Version 1.0.0 ## Purpose This license gives everyone as much permission to work with this software as possible, while protecting contributors from liability. ## Acceptance In order to receive this license, you must agree to its rules. The rules of this license are both obligations under that agreement and conditions to your license. You must not do anything with this software that triggers a rule that you cannot or will not follow. ## Copyright Each contributor licenses you to do everything with this software that would otherwise infringe that contributor's copyright in it. ## Notices You must ensure that everyone who gets a copy of any part of this software from you, with or without changes, also gets the text of this license or a link to . ## Excuse If anyone notifies you in writing that you have not complied with [Notices](#notices), you can keep your license by taking all practical steps to comply within 30 days after the notice. If you do not do so, your license ends immediately. ## Patent Each contributor licenses you to do everything with this software that would otherwise infringe any patent claims they can license or become able to license. ## Reliability No contributor can revoke this license. ## No Liability **_As far as the law allows, this software comes as is, without any warranty or condition, and no contributor will be liable to anyone for any damages related to this software or this license, under any kind of legal claim._** isaacs-resolve-import-9b54ade/README.md000066400000000000000000000140221464306454200177270ustar00rootroot00000000000000# resolve-import Look up the file that an `import()` statement will resolve to, for use in node esm loaders. Returns a `file://` URL object for file resolutions, or the builtin module ID string for node builtins. ## USAGE ```js import { resolveImport } from 'resolve-import' // or: const { resolveImport } = require('resolve-import') // resolving a full file URL just returns it console.log(await resolveImport(new URL('file:///blah/foo.js'))) // resolving a node built in returns the string console.log(await resolveImport('node:fs')) // 'node:fs' // resolving an absolute full path just file-url-ifies it console.log(await resolveImport('/a/b/c.js')) // URL(file:///a/b/c.js) // resolving a relative path resolves it from the parent module // URL(file:///path/to/x.js) console.log(await resolveImport('./x.js', '/path/to/y.js')) // packages resolved according to their exports, main, etc. // eg: URL(file:///path/node_modules/pkg/dist/mjs/index.js) console.log(await resolveImport('pkg', '/path/to/y.js')) ``` ## API These functions are all exported on the main module, as well as being available on `resolve-import/{hyphen-name}`, for example: ```js import { resolveAllExports } from 'resolve-import/resolve-all-exports' ``` ### Interface `ResolveImportOpts` - `conditions: string[]` The list of conditions to match on. `'default'` is always accepted. Defaults to `['import', 'node']`. ### resolveImport ```ts resolveImport( url: string | URL, parentURL?: string | URL, options?: ResolveImportOpts): Promise ``` - `url` The string or file URL object being imported. - `parentURL` The string or file URL object that the import is coming from. - `options` A ResolveImportOpts object (optional) Returns the string provided for node builtins, like `'fs'` or `'node:path'`. Otherwise, resolves to a `file://` URL object corresponding to the file that will be imported. Raises roughly the same errors that `import()` will raise if the lookup fails. For example, if a package is not found, if a subpath is not exported, etc. ### resolveAllExports ```ts resolveAllExports( packageJsonPath: string | URL, options: ResolveImportOpts): Promise> ``` Given a `package.json` path or file URL, resolve all valid exports from that package. If the pattern contains a `*` in both the pattern and the target, then it will search for all possible files that could match the pattern, and expand them appropriately in the returned object. In the case where a `*` exists in the pattern, but does not exist in the target, no expansion can be done, because _any_ string there would resolve to the same file. In that case, the `*` is left in the pattern. If the target is a node built-in module, it will be a string. Otherwise, it will be a `file://` URL object. Any exports that fail to load (ie, if the target is invalid, the file does not exist, etc.) will be omitted from the returned object. ### resolveAllLocalImports ```ts resolveAllLocalImports( packageJsonPath: string | URL, options: ResolveImportOpts): Record ``` Similar to `resolveAllExports`, but this resolves the entries in the package.json's `imports` object. ### isRelativeRequire ```ts isRelativeRequire(specifier: string): boolean ``` Simple utility function that returns true if the import or require specifier starts with `./` or `../` (or `.\` or `..\` on Windows). ### getAllConditions ```ts getAllConditions( importsExports: Imports | Exports ): string[] ``` Given an `exports` or `imports` value from a package, return the list of conditions that it is sensitive to. `default` is not included in the returned list, since that's always effectively relevant. Note that a condition being returned by this method does not mean that the export/import object actually has a _target_ for that condition, since it may map to `null`, be nested under another condition, etc. But it does potentially have some kind of conditional behavior for all the conditions returned. Ordering of returned conditions is arbitrary, and does not imply precedence or object shape. ### resolveConditionalValue ```ts resolveConditionalValue( cond: ConditionalValue, options: ResolveImportOpts): string | null ``` Given an entry from an `imports` or `exports` object, resolve the conditional value based on the `conditions` list in the provided `options` object. By default, resolves with the conditions `['import', 'node']`. ### getAllConditionalValues ```ts getAllConditionalValues( importsExports: Imports | Exports ): string[] ``` Given an `exports` or `imports` value from a package, return the list of all possible conditional values that it might potentially resolve to, for any possible set of import conditions. Filters out cases that are unreachable, such as conditions that appear after a `default` value, or after a set of conditions that would have been satisfied previously. For example: ```json { "import": { "node": "./x.js" }, "node": { "import": { "blah": "./y.js" } } } ``` Will return `['./x.js']`, omitting the unreachable `'./y.js'`, because the conditions ['import','node','blah'] would have been satisfied by the earlier condition. Note that this does _not_ mean that the target actually can be imported, as it may not exist, be an incorrect module type, etc. Star values are not expanded. For that, use `resolveAllExports` or `resolveAllLocalImports`. ### getConditionalValuesList ```ts getConditionalValuesList( importsExports: Imports | Exports ): [string, Set, string | null][] ``` Given an `exports` or `imports` value from a package, return the list of all possible conditional values that it might potentially resolve to, for any possible set of import conditions, along with the `Set` of conditions, any superset of which will result in the condition. The first entry in the returned list is the submodule path, or `'.'` if the value provided did not have submodule paths. The list includes null results, since while these are not a valid resolution per se, they do _prevent_ valid resolutions that match the same conditions. isaacs-resolve-import-9b54ade/package-lock.json000066400000000000000000005110121464306454200216650ustar00rootroot00000000000000{ "name": "resolve-import", "version": "1.4.6", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "resolve-import", "version": "1.4.6", "license": "BlueOak-1.0.0", "dependencies": { "glob": "^10.3.3", "walk-up-path": "^3.0.1" }, "devDependencies": { "@types/node": "^20.6.1", "prettier": "^2.8.2", "tap": "^18.4.4", "tshy": "^1.2.2", "typedoc": "^0.25.1", "typescript": "5.2" }, "engines": { "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@alcalzone/ansi-tokenize": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@alcalzone/ansi-tokenize/-/ansi-tokenize-0.1.3.tgz", "integrity": "sha512-3yWxPTq3UQ/FY9p1ErPxIyfT64elWaMvM9lIHnaqpyft63tkxodF5aUElYHrdisWve5cETkh1+KBw1yJuW0aRw==", "dev": true, "dependencies": { "ansi-styles": "^6.2.1", "is-fullwidth-code-point": "^4.0.0" }, "engines": { "node": ">=14.13.1" } }, "node_modules/@base2/pretty-print-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/@base2/pretty-print-object/-/pretty-print-object-1.0.1.tgz", "integrity": "sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==", "dev": true }, "node_modules/@bcoe/v8-coverage": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==", "dev": true }, "node_modules/@cspotcode/source-map-support": { "version": "0.8.1", "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "0.3.9" }, "engines": { "node": ">=12" } }, "node_modules/@isaacs/cliui": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz", "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==", "dependencies": { "string-width": "^5.1.2", "string-width-cjs": "npm:string-width@^4.2.0", "strip-ansi": "^7.0.1", "strip-ansi-cjs": "npm:strip-ansi@^6.0.1", "wrap-ansi": "^8.1.0", "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0" }, "engines": { "node": ">=12" } }, "node_modules/@istanbuljs/schema": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/@jridgewell/resolve-uri": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", "dev": true, "engines": { "node": ">=6.0.0" } }, "node_modules/@jridgewell/sourcemap-codec": { "version": "1.4.15", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", "dev": true }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.9", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.0.3", "@jridgewell/sourcemap-codec": "^1.4.10" } }, "node_modules/@npmcli/agent": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz", "integrity": "sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q==", "dev": true, "dependencies": { "agent-base": "^7.1.0", "http-proxy-agent": "^7.0.0", "https-proxy-agent": "^7.0.1", "lru-cache": "^10.0.1", "socks-proxy-agent": "^8.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@npmcli/agent/node_modules/agent-base": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz", "integrity": "sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg==", "dev": true, "dependencies": { "debug": "^4.3.4" }, "engines": { "node": ">= 14" } }, "node_modules/@npmcli/agent/node_modules/http-proxy-agent": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz", "integrity": "sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ==", "dev": true, "dependencies": { "agent-base": "^7.1.0", "debug": "^4.3.4" }, "engines": { "node": ">= 14" } }, "node_modules/@npmcli/agent/node_modules/https-proxy-agent": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz", "integrity": "sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA==", "dev": true, "dependencies": { "agent-base": "^7.0.2", "debug": "4" }, "engines": { "node": ">= 14" } }, "node_modules/@npmcli/agent/node_modules/socks-proxy-agent": { "version": "8.0.2", "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz", "integrity": "sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g==", "dev": true, "dependencies": { "agent-base": "^7.0.2", "debug": "^4.3.4", "socks": "^2.7.1" }, "engines": { "node": ">= 14" } }, "node_modules/@npmcli/fs": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz", "integrity": "sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w==", "dev": true, "dependencies": { "semver": "^7.3.5" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/@npmcli/git": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-5.0.3.tgz", "integrity": "sha512-UZp9NwK+AynTrKvHn5k3KviW/hA5eENmFsu3iAPe7sWRt0lFUdsY/wXIYjpDFe7cdSNwOIzbObfwgt6eL5/2zw==", "dev": true, "dependencies": { "@npmcli/promise-spawn": "^7.0.0", "lru-cache": "^10.0.1", "npm-pick-manifest": "^9.0.0", "proc-log": "^3.0.0", "promise-inflight": "^1.0.1", "promise-retry": "^2.0.1", "semver": "^7.3.5", "which": "^4.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@npmcli/git/node_modules/isexe": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, "engines": { "node": ">=16" } }, "node_modules/@npmcli/git/node_modules/which": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" }, "engines": { "node": "^16.13.0 || >=18.0.0" } }, "node_modules/@npmcli/installed-package-contents": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz", "integrity": "sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ==", "dev": true, "dependencies": { "npm-bundled": "^3.0.0", "npm-normalize-package-bin": "^3.0.0" }, "bin": { "installed-package-contents": "lib/index.js" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/@npmcli/node-gyp": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz", "integrity": "sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/@npmcli/promise-spawn": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-7.0.0.tgz", "integrity": "sha512-wBqcGsMELZna0jDblGd7UXgOby45TQaMWmbFwWX+SEotk4HV6zG2t6rT9siyLhPk4P6YYqgfL1UO8nMWDBVJXQ==", "dev": true, "dependencies": { "which": "^4.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@npmcli/promise-spawn/node_modules/isexe": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, "engines": { "node": ">=16" } }, "node_modules/@npmcli/promise-spawn/node_modules/which": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" }, "engines": { "node": "^16.13.0 || >=18.0.0" } }, "node_modules/@npmcli/run-script": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-7.0.1.tgz", "integrity": "sha512-Od/JMrgkjZ8alyBE0IzeqZDiF1jgMez9Gkc/OYrCkHHiXNwM0wc6s7+h+xM7kYDZkS0tAoOLr9VvygyE5+2F7g==", "dev": true, "dependencies": { "@npmcli/node-gyp": "^3.0.0", "@npmcli/promise-spawn": "^7.0.0", "node-gyp": "^9.0.0", "read-package-json-fast": "^3.0.0", "which": "^4.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@npmcli/run-script/node_modules/isexe": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, "engines": { "node": ">=16" } }, "node_modules/@npmcli/run-script/node_modules/which": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" }, "engines": { "node": "^16.13.0 || >=18.0.0" } }, "node_modules/@pkgjs/parseargs": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz", "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==", "optional": true, "engines": { "node": ">=14" } }, "node_modules/@sigstore/bundle": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@sigstore/bundle/-/bundle-2.1.0.tgz", "integrity": "sha512-89uOo6yh/oxaU8AeOUnVrTdVMcGk9Q1hJa7Hkvalc6G3Z3CupWk4Xe9djSgJm9fMkH69s0P0cVHUoKSOemLdng==", "dev": true, "dependencies": { "@sigstore/protobuf-specs": "^0.2.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/protobuf-specs": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz", "integrity": "sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/@sigstore/sign": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/@sigstore/sign/-/sign-2.1.0.tgz", "integrity": "sha512-4VRpfJxs+8eLqzLVrZngVNExVA/zAhVbi4UT4zmtLi4xRd7vz5qie834OgkrGsLlLB1B2nz/3wUxT1XAUBe8gw==", "dev": true, "dependencies": { "@sigstore/bundle": "^2.1.0", "@sigstore/protobuf-specs": "^0.2.1", "make-fetch-happen": "^13.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/sign/node_modules/make-fetch-happen": { "version": "13.0.0", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", "dev": true, "dependencies": { "@npmcli/agent": "^2.0.0", "cacache": "^18.0.0", "http-cache-semantics": "^4.1.1", "is-lambda": "^1.0.1", "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "ssri": "^10.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@sigstore/tuf": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@sigstore/tuf/-/tuf-2.2.0.tgz", "integrity": "sha512-KKATZ5orWfqd9ZG6MN8PtCIx4eevWSuGRKQvofnWXRpyMyUEpmrzg5M5BrCpjM+NfZ0RbNGOh5tCz/P2uoRqOA==", "dev": true, "dependencies": { "@sigstore/protobuf-specs": "^0.2.1", "tuf-js": "^2.1.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@tapjs/after": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/@tapjs/after/-/after-1.1.8.tgz", "integrity": "sha512-VG/z6Kh26jbpi6OaSJ9i5U3Vg/NXdsqUHEnlPh0bP/4gvL4LNAkwi8pP96jZubkp0OIBOjDJJHO+QJVHJzwnfQ==", "dev": true, "dependencies": { "is-actual-promise": "^1.0.0" }, "engines": { "node": ">=16" }, "peerDependencies": { "@tapjs/core": "1.3.8" } }, "node_modules/@tapjs/after-each": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/@tapjs/after-each/-/after-each-1.1.8.tgz", "integrity": "sha512-21/mwpI487JLfCYAKVaD38NEwhoiTfzyq+xhyZzPSLNsjGN9X3GX8e22dEjktCwoluL5e8OzzQMt64TktTivew==", "dev": true, "dependencies": { "function-loop": "^4.0.0" }, "engines": { "node": ">=16" }, "peerDependencies": { "@tapjs/core": "1.3.8" } }, "node_modules/@tapjs/asserts": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/@tapjs/asserts/-/asserts-1.1.8.tgz", "integrity": "sha512-2tDBQKmXU9f2Kh5F91hjwwooh2L0m+bSY9CjnHnW8gGQUCwGSrpn9W8xXbuN0w3yN8aUz/U29mwlXzf3pX3lDg==", "dev": true, "dependencies": { "@tapjs/stack": "1.2.5", "is-actual-promise": "^1.0.0", "tcompare": "6.4.2", "trivial-deferred": "^2.0.0" }, "engines": { "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { "@tapjs/core": "1.3.8" } }, "node_modules/@tapjs/before": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/@tapjs/before/-/before-1.1.8.tgz", "integrity": "sha512-TESWyN04gHRsbDsm5bh+NJS4vV5djbFFaZDUgSrFHgr7GSmgiWt3LQjN58qHKk+pFcU+vk5yCR2aiKFhky/0JQ==", "dev": true, "dependencies": { "is-actual-promise": "^1.0.0" }, "engines": { "node": ">=16" }, "peerDependencies": { "@tapjs/core": "1.3.8" } }, "node_modules/@tapjs/before-each": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/@tapjs/before-each/-/before-each-1.1.8.tgz", "integrity": "sha512-Nb1Sxa/CHhVolUcyohbttpYjJfoAcg7aZTN9QGgHt0eMoHlsj3tmD/3e8ZBktM0f0Di11T3JnbRUrTdHovBLTA==", "dev": true, "dependencies": { "function-loop": "^4.0.0" }, "engines": { "node": ">=16" }, "peerDependencies": { "@tapjs/core": "1.3.8" } }, "node_modules/@tapjs/config": { "version": "2.4.4", "resolved": "https://registry.npmjs.org/@tapjs/config/-/config-2.4.4.tgz", "integrity": "sha512-UWWh4/3QxG8mQODsatzfzuFg1H4kpOrlVOLJwQcp69fVqI0YqgfUBQL0xGN5AcPkf71mY+rk0qQub57xSIggUA==", "dev": true, "dependencies": { "@tapjs/core": "1.3.8", "@tapjs/test": "1.3.8", "chalk": "^5.2.0", "jackspeak": "^2.3.6", "polite-json": "^4.0.1", "tap-yaml": "2.2.0", "walk-up-path": "^3.0.1" }, "engines": { "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { "@tapjs/core": "1.3.8", "@tapjs/test": "1.3.8" } }, "node_modules/@tapjs/core": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/@tapjs/core/-/core-1.3.8.tgz", "integrity": "sha512-+CMP/pTIGSO3/8OXBEgNUYfJc6bKdMbaqSMCTxcUqIgSg5UyT/l6maL2WvjtYr6G5PT4ARSNug3irDfxp96CYA==", "dev": true, "dependencies": { "@tapjs/processinfo": "^3.1.4", "@tapjs/stack": "1.2.5", "@tapjs/test": "1.3.8", "async-hook-domain": "^4.0.1", "diff": "^5.1.0", "is-actual-promise": "^1.0.0", "minipass": "^7.0.3", "signal-exit": "4.1", "tap-parser": "15.2.0", "tap-yaml": "2.2.0", "tcompare": "6.4.2", "trivial-deferred": "^2.0.0" }, "engines": { "node": ">=16" } }, "node_modules/@tapjs/error-serdes": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@tapjs/error-serdes/-/error-serdes-1.1.0.tgz", "integrity": "sha512-RAdsafCQ9fyudLY4EQPhfWQvRNddvSoXKEsZQWZC6G5QfdB/BYnSqaXggK5TD0XZ79Ja0ex3uB+5kBaaeLKtQA==", "dev": true, "dependencies": { "minipass": "^7.0.3" }, "engines": { "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@tapjs/filter": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@tapjs/filter/-/filter-1.2.8.tgz", "integrity": "sha512-81SPjeWhDV5/kFfbjb+A/RtHiEbn2g23uTilOsNi6hj1wvgmU7jQRrZDSAYWvLsp4T+o4QFyaaMID3+mKAb61g==", "dev": true, "engines": { "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { "@tapjs/core": "1.3.8" } }, "node_modules/@tapjs/fixture": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@tapjs/fixture/-/fixture-1.2.8.tgz", "integrity": "sha512-2D+HmWdSAgSiEDGwA+POrhNlbvqSCm2gt2Tg+/Vcj4n7hbFAX2/nv/zKnHIZt3DhngDmmDHydzs2wAGBhyad8A==", "dev": true, "dependencies": { "mkdirp": "^3.0.0", "rimraf": "^5.0.5" }, "engines": { "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { "@tapjs/core": "1.3.8" } }, "node_modules/@tapjs/intercept": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@tapjs/intercept/-/intercept-1.2.8.tgz", "integrity": "sha512-L51awDpw2fDLrs5xzj2r9F7mTR6w6CbdTcJxCcd8fAi9ATYNJstnGDgpx0OeKgvEZXsGGsDxabBuQ4s6uwLApQ==", "dev": true, "dependencies": { "@tapjs/after": "1.1.8", "@tapjs/stack": "1.2.5" }, "engines": { "node": ">=16" }, "peerDependencies": { "@tapjs/core": "1.3.8" } }, "node_modules/@tapjs/mock": { "version": "1.2.6", "resolved": "https://registry.npmjs.org/@tapjs/mock/-/mock-1.2.6.tgz", "integrity": "sha512-d3YfP3aCCzAN51IcpIqeUPZLlso8hmxqPaUV705cYlrSisnhqkHyZ2jggDQOEhrEtf/2v6/pFzvErAC0rEKvXA==", "dev": true, "dependencies": { "@tapjs/after": "1.1.8", "@tapjs/stack": "1.2.5", "resolve-import": "^1.4.4", "walk-up-path": "^3.0.1" }, "engines": { "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { "@tapjs/core": "1.3.8" } }, "node_modules/@tapjs/node-serialize": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/@tapjs/node-serialize/-/node-serialize-1.1.8.tgz", "integrity": "sha512-9Pirqp76Y15zDOIpt/TgCGFvccLLL+slmQrr25L7jwBWfT35tKz3inTj7XS0BrNMqknRuXyTywU+dYRPaOK0KA==", "dev": true, "dependencies": { "@tapjs/error-serdes": "1.1.0", "@tapjs/stack": "1.2.5", "tap-parser": "15.2.0" }, "engines": { "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { "@tapjs/core": "1.3.8" } }, "node_modules/@tapjs/processinfo": { "version": "3.1.4", "resolved": "https://registry.npmjs.org/@tapjs/processinfo/-/processinfo-3.1.4.tgz", "integrity": "sha512-PpA2WmgBh73P6U6oi7k01wjb4Lbe4/d8vnYrhii2qeJtdbvV3O5Zqr5HoBgOGVgnjf/0NcJ0KH1zQJfVbUAm5g==", "dev": true, "dependencies": { "pirates": "^4.0.5", "process-on-spawn": "^1.0.0", "signal-exit": "^4.0.2", "uuid": "^8.3.2" }, "engines": { "node": ">=16.17" } }, "node_modules/@tapjs/reporter": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/@tapjs/reporter/-/reporter-1.3.4.tgz", "integrity": "sha512-IAY93DGAlQYrzJpU4asPxcsTYxpdAmbRuHIxb/nVe0petDRIqcKLEh1VQZKE/OlfAjxinZ+odfNkOifPoM7dfg==", "dev": true, "dependencies": { "@tapjs/config": "2.4.4", "@tapjs/stack": "1.2.5", "chalk": "^5.2.0", "ink": "^4.4.1", "minipass": "^7.0.3", "ms": "^2.1.3", "patch-console": "^2.0.0", "prismjs-terminal": "^1.2.3", "react": "^18.2.0", "string-length": "^6.0.0", "tap-parser": "15.2.0", "tap-yaml": "2.2.0", "tcompare": "6.4.2" }, "engines": { "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { "@tapjs/core": "1.3.8" } }, "node_modules/@tapjs/run": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/@tapjs/run/-/run-1.4.4.tgz", "integrity": "sha512-hbvpr+cfw+2KKKXA4b5CEXeUgb0G3tCe1AGYuwT3dFYgkOca2UcYkU2MNudZ9ROaaEUen3xY8hCYWzekFHTVQQ==", "dev": true, "dependencies": { "@tapjs/after": "1.1.8", "@tapjs/before": "1.1.8", "@tapjs/config": "2.4.4", "@tapjs/processinfo": "^3.1.4", "@tapjs/reporter": "1.3.4", "@tapjs/spawn": "1.1.8", "@tapjs/stdin": "1.1.8", "@tapjs/test": "1.3.8", "c8": "^8.0.1", "chalk": "^5.3.0", "chokidar": "^3.5.3", "foreground-child": "^3.1.1", "glob": "^10.3.10", "minipass": "^7.0.3", "mkdirp": "^3.0.1", "opener": "^1.5.2", "pacote": "^17.0.3", "resolve-import": "^1.4.4", "rimraf": "^5.0.5", "semver": "^7.5.4", "signal-exit": "^4.1.0", "tap-parser": "15.2.0", "tap-yaml": "2.2.0", "tcompare": "6.4.2", "trivial-deferred": "^2.0.0", "which": "^4.0.0" }, "bin": { "tap-run": "dist/esm/index.js" }, "engines": { "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { "@tapjs/core": "1.3.8" } }, "node_modules/@tapjs/run/node_modules/isexe": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz", "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==", "dev": true, "engines": { "node": ">=16" } }, "node_modules/@tapjs/run/node_modules/which": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/which/-/which-4.0.0.tgz", "integrity": "sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg==", "dev": true, "dependencies": { "isexe": "^3.1.1" }, "bin": { "node-which": "bin/which.js" }, "engines": { "node": "^16.13.0 || >=18.0.0" } }, "node_modules/@tapjs/snapshot": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@tapjs/snapshot/-/snapshot-1.2.8.tgz", "integrity": "sha512-mn2XnwfKG8dKJ4Ffb9cu/jpv/GnNn8Y6/eT2cKa7q/NfNrOmXAz0nE9B7ZaISajnBBntFyVYA9EHMNqCmFYsCw==", "dev": true, "dependencies": { "is-actual-promise": "^1.0.0", "tcompare": "6.4.2", "trivial-deferred": "^2.0.0" }, "engines": { "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/isaacs" }, "peerDependencies": { "@tapjs/core": "1.3.8" } }, "node_modules/@tapjs/spawn": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/@tapjs/spawn/-/spawn-1.1.8.tgz", "integrity": "sha512-1CbgBo3ZU2mgE7Hwv6gC/9U5qbrqh1rbjnD8t510WdOHEX8QOEwHUQJ4Avrsl5T+f7NLn5oOObQUoOtUC3s0nw==", "dev": true, "engines": { "node": ">=16" }, "peerDependencies": { "@tapjs/core": "1.3.8" } }, "node_modules/@tapjs/stack": { "version": "1.2.5", "resolved": "https://registry.npmjs.org/@tapjs/stack/-/stack-1.2.5.tgz", "integrity": "sha512-fJNI6kmqo1FuXzVkQ1cFL5FcWYamiql5lTDbA2VuOkQ7z3/Zoitnq+B9rBf28ltmZYFMsk5lEEW8mlaxvCyHiA==", "dev": true, "engines": { "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/@tapjs/stdin": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/@tapjs/stdin/-/stdin-1.1.8.tgz", "integrity": "sha512-nr5I5Oe78gNFGFHCATaiz5IKP2jP3SniWyS0Qva4coKhg99PD17FwXDLDN9wwj8hb4/btLmQg/xZXy31y7dfQw==", "dev": true, "engines": { "node": ">=16" }, "peerDependencies": { "@tapjs/core": "1.3.8" } }, "node_modules/@tapjs/test": { "version": "1.3.8", "resolved": "https://registry.npmjs.org/@tapjs/test/-/test-1.3.8.tgz", "integrity": "sha512-dNKvm162qma4V5risXFZABd6H0tQqM6Oc7tBkp9BvZFezIptKAyakM2yhRgqVbvae4OPh4fc3G/eohjFEWznUg==", "dev": true, "dependencies": { "@tapjs/after": "1.1.8", "@tapjs/after-each": "1.1.8", "@tapjs/asserts": "1.1.8", "@tapjs/before": "1.1.8", "@tapjs/before-each": "1.1.8", "@tapjs/filter": "1.2.8", "@tapjs/fixture": "1.2.8", "@tapjs/intercept": "1.2.8", "@tapjs/mock": "1.2.6", "@tapjs/node-serialize": "1.1.8", "@tapjs/snapshot": "1.2.8", "@tapjs/spawn": "1.1.8", "@tapjs/stdin": "1.1.8", "@tapjs/typescript": "1.2.8", "@tapjs/worker": "1.1.8", "glob": "^10.3.10", "jackspeak": "^2.3.6", "mkdirp": "^3.0.0", "resolve-import": "^1.4.4", "rimraf": "^5.0.5", "sync-content": "^1.0.1", "tap-parser": "15.2.0", "ts-node": "npm:@isaacs/ts-node-temp-fork-for-pr-2009@^10.9.1", "tshy": "^1.2.2", "typescript": "5.2" }, "bin": { "generate-tap-test-class": "scripts/build.mjs" }, "engines": { "node": ">=16" }, "peerDependencies": { "@tapjs/core": "1.3.8" } }, "node_modules/@tapjs/typescript": { "version": "1.2.8", "resolved": "https://registry.npmjs.org/@tapjs/typescript/-/typescript-1.2.8.tgz", "integrity": "sha512-8V+NCyiwnWkMMUpJ/NdFLujvIDbF+5h6S2i3AkoyTptGesMIYvX9fCcF9O9NZhXQaYz9IrvsQWl/RYD3LBJ8Lg==", "dev": true, "dependencies": { "ts-node": "npm:@isaacs/ts-node-temp-fork-for-pr-2009@^10.9.1" }, "engines": { "node": ">=16" }, "peerDependencies": { "@tapjs/core": "1.3.8" } }, "node_modules/@tapjs/worker": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/@tapjs/worker/-/worker-1.1.8.tgz", "integrity": "sha512-I3T3ye/OZ31qkyAZQ3+5L9LSdBvw9G//yGqcYOJk/gSCcei2jvr+7IDh8G0p4HLwdY1+M4BNhJ5ywvz98M5Eag==", "dev": true, "engines": { "node": ">=16" }, "peerDependencies": { "@tapjs/core": "1.3.8" } }, "node_modules/@tootallnate/once": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true, "engines": { "node": ">= 10" } }, "node_modules/@tsconfig/node14": { "version": "14.1.0", "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-14.1.0.tgz", "integrity": "sha512-VmsCG04YR58ciHBeJKBDNMWWfYbyP8FekWVuTlpstaUPlat1D0x/tXzkWP7yCMU0eSz9V4OZU0LBWTFJ3xZf6w==", "dev": true }, "node_modules/@tsconfig/node16": { "version": "16.1.1", "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-16.1.1.tgz", "integrity": "sha512-+pio93ejHN4nINX4pXqfnR/fPLRtJBaT4ORaa5RH0Oc1zoYmo2B2koG+M328CQhHKn1Wj6FcOxCDFXAot9NhvA==", "dev": true }, "node_modules/@tsconfig/node18": { "version": "18.2.2", "resolved": "https://registry.npmjs.org/@tsconfig/node18/-/node18-18.2.2.tgz", "integrity": "sha512-d6McJeGsuoRlwWZmVIeE8CUA27lu6jLjvv1JzqmpsytOYYbVi1tHZEnwCNVOXnj4pyLvneZlFlpXUK+X9wBWyw==", "dev": true }, "node_modules/@tsconfig/node20": { "version": "20.1.2", "resolved": "https://registry.npmjs.org/@tsconfig/node20/-/node20-20.1.2.tgz", "integrity": "sha512-madaWq2k+LYMEhmcp0fs+OGaLFk0OenpHa4gmI4VEmCKX4PJntQ6fnnGADVFrVkBj0wIdAlQnK/MrlYTHsa1gQ==", "dev": true }, "node_modules/@tufjs/canonical-json": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz", "integrity": "sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA==", "dev": true, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@tufjs/models": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz", "integrity": "sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg==", "dev": true, "dependencies": { "@tufjs/canonical-json": "2.0.0", "minimatch": "^9.0.3" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/@types/istanbul-lib-coverage": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", "integrity": "sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==", "dev": true }, "node_modules/@types/node": { "version": "20.6.1", "resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.1.tgz", "integrity": "sha512-4LcJvuXQlv4lTHnxwyHQZ3uR9Zw2j7m1C9DfuwoTFQQP4Pmu04O6IfLYgMmHoOCt0nosItLLZAH+sOrRE0Bo8g==", "dev": true }, "node_modules/abbrev": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, "node_modules/acorn": { "version": "8.10.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz", "integrity": "sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==", "dev": true, "bin": { "acorn": "bin/acorn" }, "engines": { "node": ">=0.4.0" } }, "node_modules/acorn-walk": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", "dev": true, "engines": { "node": ">=0.4.0" } }, "node_modules/agent-base": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "dependencies": { "debug": "4" }, "engines": { "node": ">= 6.0.0" } }, "node_modules/agentkeepalive": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz", "integrity": "sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==", "dev": true, "dependencies": { "humanize-ms": "^1.2.1" }, "engines": { "node": ">= 8.0.0" } }, "node_modules/aggregate-error": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", "dev": true, "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/aggregate-error/node_modules/indent-string": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/ansi-escapes": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz", "integrity": "sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw==", "dev": true, "dependencies": { "type-fest": "^3.0.0" }, "engines": { "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-escapes/node_modules/type-fest": { "version": "3.13.1", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz", "integrity": "sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g==", "dev": true, "engines": { "node": ">=14.16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/ansi-regex": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz", "integrity": "sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA==", "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-regex?sponsor=1" } }, "node_modules/ansi-sequence-parser": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/ansi-sequence-parser/-/ansi-sequence-parser-1.1.1.tgz", "integrity": "sha512-vJXt3yiaUL4UU546s3rPXlsry/RnM730G1+HkpKE012AN0sx1eOrxSu95oKDIonskeLTijMgqWZ3uDEe3NFvyg==", "dev": true }, "node_modules/ansi-styles": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz", "integrity": "sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==", "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/anymatch": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" }, "engines": { "node": ">= 8" } }, "node_modules/aproba": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz", "integrity": "sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==", "dev": true }, "node_modules/are-we-there-yet": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz", "integrity": "sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg==", "dev": true, "dependencies": { "delegates": "^1.0.0", "readable-stream": "^3.6.0" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/arg": { "version": "4.1.3", "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, "node_modules/async-hook-domain": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/async-hook-domain/-/async-hook-domain-4.0.1.tgz", "integrity": "sha512-bSktexGodAjfHWIrSrrqxqWzf1hWBZBpmPNZv+TYUMyWa2eoefFc6q6H1+KtdHYSz35lrhWdmXt/XK9wNEZvww==", "dev": true, "engines": { "node": ">=16" } }, "node_modules/auto-bind": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/auto-bind/-/auto-bind-5.0.1.tgz", "integrity": "sha512-ooviqdwwgfIfNmDwo94wlshcdzfO64XV0Cg6oDsDYBJfITDz1EngD2z7DkbvCWn+XIMsIqW27sEVF6qcpJrRcg==", "dev": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" }, "node_modules/binary-extensions": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dependencies": { "balanced-match": "^1.0.0" } }, "node_modules/braces": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "dependencies": { "fill-range": "^7.0.1" }, "engines": { "node": ">=8" } }, "node_modules/builtins": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", "dev": true, "dependencies": { "semver": "^7.0.0" } }, "node_modules/c8": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/c8/-/c8-8.0.1.tgz", "integrity": "sha512-EINpopxZNH1mETuI0DzRA4MZpAUH+IFiRhnmFD3vFr3vdrgxqi3VfE3KL0AIL+zDq8rC9bZqwM/VDmmoe04y7w==", "dev": true, "dependencies": { "@bcoe/v8-coverage": "^0.2.3", "@istanbuljs/schema": "^0.1.3", "find-up": "^5.0.0", "foreground-child": "^2.0.0", "istanbul-lib-coverage": "^3.2.0", "istanbul-lib-report": "^3.0.1", "istanbul-reports": "^3.1.6", "rimraf": "^3.0.2", "test-exclude": "^6.0.0", "v8-to-istanbul": "^9.0.0", "yargs": "^17.7.2", "yargs-parser": "^21.1.1" }, "bin": { "c8": "bin/c8.js" }, "engines": { "node": ">=12" } }, "node_modules/c8/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/c8/node_modules/foreground-child": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz", "integrity": "sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==", "dev": true, "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^3.0.2" }, "engines": { "node": ">=8.0.0" } }, "node_modules/c8/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/c8/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, "node_modules/c8/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/c8/node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "node_modules/cacache": { "version": "18.0.0", "resolved": "https://registry.npmjs.org/cacache/-/cacache-18.0.0.tgz", "integrity": "sha512-I7mVOPl3PUCeRub1U8YoGz2Lqv9WOBpobZ8RyWFXmReuILz+3OAyTa5oH3QPdtKZD7N0Yk00aLfzn0qvp8dZ1w==", "dev": true, "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", "glob": "^10.2.2", "lru-cache": "^10.0.1", "minipass": "^7.0.3", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", "ssri": "^10.0.0", "tar": "^6.1.11", "unique-filename": "^3.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/chalk": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz", "integrity": "sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w==", "dev": true, "engines": { "node": "^12.17.0 || ^14.13 || >=16.0.0" }, "funding": { "url": "https://github.com/chalk/chalk?sponsor=1" } }, "node_modules/chokidar": { "version": "3.5.3", "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "funding": [ { "type": "individual", "url": "https://paulmillr.com/funding/" } ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", "glob-parent": "~5.1.2", "is-binary-path": "~2.1.0", "is-glob": "~4.0.1", "normalize-path": "~3.0.0", "readdirp": "~3.6.0" }, "engines": { "node": ">= 8.10.0" }, "optionalDependencies": { "fsevents": "~2.3.2" } }, "node_modules/chownr": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/ci-info": { "version": "3.9.0", "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz", "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/sibiraj-s" } ], "engines": { "node": ">=8" } }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/cli-boxes": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-3.0.0.tgz", "integrity": "sha512-/lzGpEWL/8PfI0BmBOPRwp0c/wFNX1RdUML3jK/RcSBA9T8mZDdQpqYBKtCFTOfQbwPqWEOpjqW+Fnayc0969g==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-cursor": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz", "integrity": "sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg==", "dev": true, "dependencies": { "restore-cursor": "^4.0.0" }, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-truncate": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-3.1.0.tgz", "integrity": "sha512-wfOBkjXteqSnI59oPcJkcPl/ZmwvMMOj340qUIY1SKZCv0B9Cf4D4fAucRkIKQmsIuYK3x1rrgU7MeGRruiuiA==", "dev": true, "dependencies": { "slice-ansi": "^5.0.0", "string-width": "^5.0.0" }, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/cli-truncate/node_modules/slice-ansi": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz", "integrity": "sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ==", "dev": true, "dependencies": { "ansi-styles": "^6.0.0", "is-fullwidth-code-point": "^4.0.0" }, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", "dev": true, "dependencies": { "string-width": "^4.2.0", "strip-ansi": "^6.0.1", "wrap-ansi": "^7.0.0" }, "engines": { "node": ">=12" } }, "node_modules/cliui/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/cliui/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/cliui/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "node_modules/cliui/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/cliui/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/cliui/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/cliui/node_modules/wrap-ansi": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/code-excerpt": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/code-excerpt/-/code-excerpt-4.0.0.tgz", "integrity": "sha512-xxodCmBen3iy2i0WtAK8FlFNrRzjUqjRsMfho58xT/wvZU1YTM3fCnRjcy1gJPMepaRlgm/0e6w8SpWHpn3/cA==", "dev": true, "dependencies": { "convert-to-spaces": "^2.0.1" }, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/color-convert": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dependencies": { "color-name": "~1.1.4" }, "engines": { "node": ">=7.0.0" } }, "node_modules/color-name": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, "node_modules/color-support": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true, "bin": { "color-support": "bin.js" } }, "node_modules/concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", "dev": true }, "node_modules/console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", "integrity": "sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==", "dev": true }, "node_modules/convert-source-map": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz", "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==", "dev": true }, "node_modules/convert-to-spaces": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/convert-to-spaces/-/convert-to-spaces-2.0.1.tgz", "integrity": "sha512-rcQ1bsQO9799wq24uE5AM2tAILy4gXGIK/njFWcVQkGNZ96edlpY+A7bjwvzjYvLDyzmG1MmMLZhpcsb+klNMQ==", "dev": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/cross-spawn": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" }, "engines": { "node": ">= 8" } }, "node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "dependencies": { "ms": "2.1.2" }, "engines": { "node": ">=6.0" }, "peerDependenciesMeta": { "supports-color": { "optional": true } } }, "node_modules/debug/node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, "node_modules/delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", "integrity": "sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==", "dev": true }, "node_modules/diff": { "version": "5.1.0", "resolved": "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz", "integrity": "sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==", "dev": true, "engines": { "node": ">=0.3.1" } }, "node_modules/eastasianwidth": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==" }, "node_modules/encoding": { "version": "0.1.13", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, "optional": true, "dependencies": { "iconv-lite": "^0.6.2" } }, "node_modules/env-paths": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz", "integrity": "sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/err-code": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", "dev": true }, "node_modules/escalade": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/escape-string-regexp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/events-to-array": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/events-to-array/-/events-to-array-2.0.3.tgz", "integrity": "sha512-f/qE2gImHRa4Cp2y1stEOSgw8wTFyUdVJX7G//bMwbaV9JqISFxg99NbmVQeP7YLnDUZ2un851jlaDrlpmGehQ==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/exponential-backoff": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz", "integrity": "sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==", "dev": true }, "node_modules/fill-range": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "dependencies": { "to-regex-range": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/find-up": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/foreground-child": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.1.1.tgz", "integrity": "sha512-TMKDUnIte6bfb5nWv7V/caI169OHgvwjb7V4WkeUvbQQdjr5rWKqHFiKWb/fcOwB+CzBT+qbWjvj+DVwRskpIg==", "dependencies": { "cross-spawn": "^7.0.0", "signal-exit": "^4.0.1" }, "engines": { "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/fromentries": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz", "integrity": "sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ] }, "node_modules/fs-minipass": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz", "integrity": "sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw==", "dev": true, "dependencies": { "minipass": "^7.0.3" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", "dev": true }, "node_modules/fsevents": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, "os": [ "darwin" ], "engines": { "node": "^8.16.0 || ^10.6.0 || >=11.0.0" } }, "node_modules/function-loop": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/function-loop/-/function-loop-4.0.0.tgz", "integrity": "sha512-f34iQBedYF3XcI93uewZZOnyscDragxgTK/eTvVB74k3fCD0ZorOi5BV9GS4M8rz/JoNi0Kl3qX5Y9MH3S/CLQ==", "dev": true }, "node_modules/gauge": { "version": "4.0.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", "dev": true, "dependencies": { "aproba": "^1.0.3 || ^2.0.0", "color-support": "^1.1.3", "console-control-strings": "^1.1.0", "has-unicode": "^2.0.1", "signal-exit": "^3.0.7", "string-width": "^4.2.3", "strip-ansi": "^6.0.1", "wide-align": "^1.1.5" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/gauge/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/gauge/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "node_modules/gauge/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/gauge/node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "node_modules/gauge/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/gauge/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/get-caller-file": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true, "engines": { "node": "6.* || 8.* || >= 10.*" } }, "node_modules/glob": { "version": "10.3.10", "resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz", "integrity": "sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g==", "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.3.5", "minimatch": "^9.0.1", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", "path-scurry": "^1.10.1" }, "bin": { "glob": "dist/esm/bin.mjs" }, "engines": { "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/glob-parent": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "dependencies": { "is-glob": "^4.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "node_modules/has": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/has/-/has-1.0.4.tgz", "integrity": "sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ==", "dev": true, "engines": { "node": ">= 0.4.0" } }, "node_modules/has-flag": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==", "dev": true }, "node_modules/hosted-git-info": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz", "integrity": "sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA==", "dev": true, "dependencies": { "lru-cache": "^10.0.1" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", "dev": true }, "node_modules/http-cache-semantics": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz", "integrity": "sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==", "dev": true }, "node_modules/http-proxy-agent": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, "dependencies": { "@tootallnate/once": "2", "agent-base": "6", "debug": "4" }, "engines": { "node": ">= 6" } }, "node_modules/https-proxy-agent": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, "dependencies": { "agent-base": "6", "debug": "4" }, "engines": { "node": ">= 6" } }, "node_modules/humanize-ms": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", "dev": true, "dependencies": { "ms": "^2.0.0" } }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", "dev": true, "optional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/ignore-walk": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz", "integrity": "sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA==", "dev": true, "dependencies": { "minimatch": "^9.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", "dev": true, "engines": { "node": ">=0.8.19" } }, "node_modules/indent-string": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-5.0.0.tgz", "integrity": "sha512-m6FAo/spmsW2Ab2fU35JTYwtOKa2yAwXSwgjSv1TJzh4Mh7mC3lzAOVLBprb72XsTrgkEIsl7YrFNAiDiRhIGg==", "dev": true, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", "dev": true, "dependencies": { "once": "^1.3.0", "wrappy": "1" } }, "node_modules/inherits": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, "node_modules/ink": { "version": "4.4.1", "resolved": "https://registry.npmjs.org/ink/-/ink-4.4.1.tgz", "integrity": "sha512-rXckvqPBB0Krifk5rn/5LvQGmyXwCUpBfmTwbkQNBY9JY8RSl3b8OftBNEYxg4+SWUhEKcPifgope28uL9inlA==", "dev": true, "dependencies": { "@alcalzone/ansi-tokenize": "^0.1.3", "ansi-escapes": "^6.0.0", "auto-bind": "^5.0.1", "chalk": "^5.2.0", "cli-boxes": "^3.0.0", "cli-cursor": "^4.0.0", "cli-truncate": "^3.1.0", "code-excerpt": "^4.0.0", "indent-string": "^5.0.0", "is-ci": "^3.0.1", "is-lower-case": "^2.0.2", "is-upper-case": "^2.0.2", "lodash": "^4.17.21", "patch-console": "^2.0.0", "react-reconciler": "^0.29.0", "scheduler": "^0.23.0", "signal-exit": "^3.0.7", "slice-ansi": "^6.0.0", "stack-utils": "^2.0.6", "string-width": "^5.1.2", "type-fest": "^0.12.0", "widest-line": "^4.0.1", "wrap-ansi": "^8.1.0", "ws": "^8.12.0", "yoga-wasm-web": "~0.3.3" }, "engines": { "node": ">=14.16" }, "peerDependencies": { "@types/react": ">=18.0.0", "react": ">=18.0.0", "react-devtools-core": "^4.19.1" }, "peerDependenciesMeta": { "@types/react": { "optional": true }, "react-devtools-core": { "optional": true } } }, "node_modules/ink/node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "node_modules/ip": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz", "integrity": "sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ==", "dev": true }, "node_modules/is-actual-promise": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-actual-promise/-/is-actual-promise-1.0.0.tgz", "integrity": "sha512-DWSmKTiEoY3Y9LGHG9TVnFgydCCu+3fLJi4rv3fpi0gL/lKoILekh/oF/nO3/Lq1l5Rqo+tQt5TWzxMmYIhWyg==", "dev": true }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "dependencies": { "binary-extensions": "^2.0.0" }, "engines": { "node": ">=8" } }, "node_modules/is-ci": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-3.0.1.tgz", "integrity": "sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==", "dev": true, "dependencies": { "ci-info": "^3.2.0" }, "bin": { "is-ci": "bin.js" } }, "node_modules/is-core-module": { "version": "2.13.0", "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz", "integrity": "sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ==", "dev": true, "dependencies": { "has": "^1.0.3" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/is-extglob": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-fullwidth-code-point": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", "dev": true, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/is-glob": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { "is-extglob": "^2.1.1" }, "engines": { "node": ">=0.10.0" } }, "node_modules/is-lambda": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", "dev": true }, "node_modules/is-lower-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-lower-case/-/is-lower-case-2.0.2.tgz", "integrity": "sha512-bVcMJy4X5Og6VZfdOZstSexlEy20Sr0k/p/b2IlQJlfdKAQuMpiv5w2Ccxb8sKdRUNAG1PnHVHjFSdRDVS6NlQ==", "dev": true, "dependencies": { "tslib": "^2.0.3" } }, "node_modules/is-number": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true, "engines": { "node": ">=0.12.0" } }, "node_modules/is-plain-object": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz", "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/is-upper-case": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/is-upper-case/-/is-upper-case-2.0.2.tgz", "integrity": "sha512-44pxmxAvnnAOwBg4tHPnkfvgjPwbc5QIsSstNU+YcJ1ovxVzCWpSGosPJOZh/a1tdl81fbgnLc9LLv+x2ywbPQ==", "dev": true, "dependencies": { "tslib": "^2.0.3" } }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==" }, "node_modules/istanbul-lib-coverage": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/istanbul-lib-report": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz", "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==", "dev": true, "dependencies": { "istanbul-lib-coverage": "^3.0.0", "make-dir": "^4.0.0", "supports-color": "^7.1.0" }, "engines": { "node": ">=10" } }, "node_modules/istanbul-reports": { "version": "3.1.6", "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.6.tgz", "integrity": "sha512-TLgnMkKg3iTDsQ9PbPTdpfAK2DzjF9mqUG7RMgcQl8oFjad8ob4laGxv5XV5U9MAfx8D6tSJiUyuAwzLicaxlg==", "dev": true, "dependencies": { "html-escaper": "^2.0.0", "istanbul-lib-report": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/jackspeak": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz", "integrity": "sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ==", "dependencies": { "@isaacs/cliui": "^8.0.2" }, "engines": { "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/isaacs" }, "optionalDependencies": { "@pkgjs/parseargs": "^0.11.0" } }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", "dev": true }, "node_modules/json-parse-even-better-errors": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.0.tgz", "integrity": "sha512-iZbGHafX/59r39gPwVPRBGw0QQKnA7tte5pSMrhWOW7swGsVvVTjmfyAV9pNqk8YGT7tRCdxRu8uzcgZwoDooA==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/jsonc-parser": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz", "integrity": "sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==", "dev": true }, "node_modules/jsonparse": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", "dev": true, "engines": [ "node >= 0.2.0" ] }, "node_modules/locate-path": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "dependencies": { "p-locate": "^5.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", "dev": true }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", "dev": true, "dependencies": { "js-tokens": "^3.0.0 || ^4.0.0" }, "bin": { "loose-envify": "cli.js" } }, "node_modules/lru-cache": { "version": "10.0.1", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz", "integrity": "sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g==", "engines": { "node": "14 || >=16.14" } }, "node_modules/lunr": { "version": "2.3.9", "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", "dev": true }, "node_modules/make-dir": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz", "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "dependencies": { "semver": "^7.5.3" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/make-error": { "version": "1.3.6", "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", "dev": true }, "node_modules/make-fetch-happen": { "version": "11.1.1", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz", "integrity": "sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w==", "dev": true, "dependencies": { "agentkeepalive": "^4.2.1", "cacache": "^17.0.0", "http-cache-semantics": "^4.1.1", "http-proxy-agent": "^5.0.0", "https-proxy-agent": "^5.0.0", "is-lambda": "^1.0.1", "lru-cache": "^7.7.1", "minipass": "^5.0.0", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "socks-proxy-agent": "^7.0.0", "ssri": "^10.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/make-fetch-happen/node_modules/cacache": { "version": "17.1.4", "resolved": "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz", "integrity": "sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A==", "dev": true, "dependencies": { "@npmcli/fs": "^3.1.0", "fs-minipass": "^3.0.0", "glob": "^10.2.2", "lru-cache": "^7.7.1", "minipass": "^7.0.3", "minipass-collect": "^1.0.2", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "p-map": "^4.0.0", "ssri": "^10.0.0", "tar": "^6.1.11", "unique-filename": "^3.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/make-fetch-happen/node_modules/cacache/node_modules/minipass": { "version": "7.0.4", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz", "integrity": "sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ==", "dev": true, "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/make-fetch-happen/node_modules/lru-cache": { "version": "7.18.3", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz", "integrity": "sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/make-fetch-happen/node_modules/minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/marked": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz", "integrity": "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==", "dev": true, "bin": { "marked": "bin/marked.js" }, "engines": { "node": ">= 12" } }, "node_modules/mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/minimatch": { "version": "9.0.3", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz", "integrity": "sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg==", "dependencies": { "brace-expansion": "^2.0.1" }, "engines": { "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/minipass": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.0.3.tgz", "integrity": "sha512-LhbbwCfz3vsb12j/WkWQPZfKTsgqIe1Nf/ti1pKjYESGLHIVjWU96G9/ljLH4F9mWNVhlQOm0VySdAWzf05dpg==", "engines": { "node": ">=16 || 14 >=14.17" } }, "node_modules/minipass-collect": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, "dependencies": { "minipass": "^3.0.0" }, "engines": { "node": ">= 8" } }, "node_modules/minipass-collect/node_modules/minipass": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/minipass-fetch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz", "integrity": "sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg==", "dev": true, "dependencies": { "minipass": "^7.0.3", "minipass-sized": "^1.0.3", "minizlib": "^2.1.2" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" }, "optionalDependencies": { "encoding": "^0.1.13" } }, "node_modules/minipass-flush": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, "dependencies": { "minipass": "^3.0.0" }, "engines": { "node": ">= 8" } }, "node_modules/minipass-flush/node_modules/minipass": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/minipass-json-stream": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "dev": true, "dependencies": { "jsonparse": "^1.3.1", "minipass": "^3.0.0" } }, "node_modules/minipass-json-stream/node_modules/minipass": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/minipass-pipeline": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, "dependencies": { "minipass": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/minipass-pipeline/node_modules/minipass": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/minipass-sized": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, "dependencies": { "minipass": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/minipass-sized/node_modules/minipass": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/minizlib": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, "dependencies": { "minipass": "^3.0.0", "yallist": "^4.0.0" }, "engines": { "node": ">= 8" } }, "node_modules/minizlib/node_modules/minipass": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/mkdirp": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-3.0.1.tgz", "integrity": "sha512-+NsyUUAZDmo6YVHzL/stxSu3t9YS1iljliy3BSDrXJ/dkn1KYdmtZODGGjLcc9XLgVVpH4KshHB8XmZgMhaBXg==", "dev": true, "bin": { "mkdirp": "dist/cjs/src/bin.js" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/ms": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, "node_modules/negotiator": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, "engines": { "node": ">= 0.6" } }, "node_modules/node-gyp": { "version": "9.4.0", "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.0.tgz", "integrity": "sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg==", "dev": true, "dependencies": { "env-paths": "^2.2.0", "exponential-backoff": "^3.1.1", "glob": "^7.1.4", "graceful-fs": "^4.2.6", "make-fetch-happen": "^11.0.3", "nopt": "^6.0.0", "npmlog": "^6.0.0", "rimraf": "^3.0.2", "semver": "^7.3.5", "tar": "^6.1.2", "which": "^2.0.2" }, "bin": { "node-gyp": "bin/node-gyp.js" }, "engines": { "node": "^12.13 || ^14.13 || >=16" } }, "node_modules/node-gyp/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/node-gyp/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/node-gyp/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, "node_modules/node-gyp/node_modules/rimraf": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "dependencies": { "glob": "^7.1.3" }, "bin": { "rimraf": "bin.js" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/nopt": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz", "integrity": "sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==", "dev": true, "dependencies": { "abbrev": "^1.0.0" }, "bin": { "nopt": "bin/nopt.js" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/normalize-package-data": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz", "integrity": "sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg==", "dev": true, "dependencies": { "hosted-git-info": "^7.0.0", "is-core-module": "^2.8.1", "semver": "^7.3.5", "validate-npm-package-license": "^3.0.4" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/npm-bundled": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz", "integrity": "sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ==", "dev": true, "dependencies": { "npm-normalize-package-bin": "^3.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm-install-checks": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz", "integrity": "sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw==", "dev": true, "dependencies": { "semver": "^7.1.1" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm-normalize-package-bin": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz", "integrity": "sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm-package-arg": { "version": "11.0.1", "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz", "integrity": "sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ==", "dev": true, "dependencies": { "hosted-git-info": "^7.0.0", "proc-log": "^3.0.0", "semver": "^7.3.5", "validate-npm-package-name": "^5.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm-packlist": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.0.tgz", "integrity": "sha512-ErAGFB5kJUciPy1mmx/C2YFbvxoJ0QJ9uwkCZOeR6CqLLISPZBOiFModAbSXnjjlwW5lOhuhXva+fURsSGJqyw==", "dev": true, "dependencies": { "ignore-walk": "^6.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/npm-pick-manifest": { "version": "9.0.0", "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz", "integrity": "sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg==", "dev": true, "dependencies": { "npm-install-checks": "^6.0.0", "npm-normalize-package-bin": "^3.0.0", "npm-package-arg": "^11.0.0", "semver": "^7.3.5" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm-registry-fetch": { "version": "16.0.0", "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.0.0.tgz", "integrity": "sha512-JFCpAPUpvpwfSydv99u85yhP68rNIxSFmDpNbNnRWKSe3gpjHnWL8v320gATwRzjtgmZ9Jfe37+ZPOLZPwz6BQ==", "dev": true, "dependencies": { "make-fetch-happen": "^13.0.0", "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-json-stream": "^1.0.1", "minizlib": "^2.1.2", "npm-package-arg": "^11.0.0", "proc-log": "^3.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npm-registry-fetch/node_modules/make-fetch-happen": { "version": "13.0.0", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", "dev": true, "dependencies": { "@npmcli/agent": "^2.0.0", "cacache": "^18.0.0", "http-cache-semantics": "^4.1.1", "is-lambda": "^1.0.1", "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "ssri": "^10.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/npmlog": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", "dev": true, "dependencies": { "are-we-there-yet": "^3.0.0", "console-control-strings": "^1.1.0", "gauge": "^4.0.3", "set-blocking": "^2.0.0" }, "engines": { "node": "^12.13.0 || ^14.15.0 || >=16.0.0" } }, "node_modules/once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", "dev": true, "dependencies": { "wrappy": "1" } }, "node_modules/onetime": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "dependencies": { "mimic-fn": "^2.1.0" }, "engines": { "node": ">=6" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/opener": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/opener/-/opener-1.5.2.tgz", "integrity": "sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==", "dev": true, "bin": { "opener": "bin/opener-bin.js" } }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "dependencies": { "yocto-queue": "^0.1.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-locate": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "dependencies": { "p-limit": "^3.0.2" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/p-map": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "dependencies": { "aggregate-error": "^3.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/pacote": { "version": "17.0.4", "resolved": "https://registry.npmjs.org/pacote/-/pacote-17.0.4.tgz", "integrity": "sha512-eGdLHrV/g5b5MtD5cTPyss+JxOlaOloSMG3UwPMAvL8ywaLJ6beONPF40K4KKl/UI6q5hTKCJq5rCu8tkF+7Dg==", "dev": true, "dependencies": { "@npmcli/git": "^5.0.0", "@npmcli/installed-package-contents": "^2.0.1", "@npmcli/promise-spawn": "^7.0.0", "@npmcli/run-script": "^7.0.0", "cacache": "^18.0.0", "fs-minipass": "^3.0.0", "minipass": "^7.0.2", "npm-package-arg": "^11.0.0", "npm-packlist": "^8.0.0", "npm-pick-manifest": "^9.0.0", "npm-registry-fetch": "^16.0.0", "proc-log": "^3.0.0", "promise-retry": "^2.0.1", "read-package-json": "^7.0.0", "read-package-json-fast": "^3.0.0", "sigstore": "^2.0.0", "ssri": "^10.0.0", "tar": "^6.1.11" }, "bin": { "pacote": "lib/bin.js" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/patch-console": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/patch-console/-/patch-console-2.0.0.tgz", "integrity": "sha512-0YNdUceMdaQwoKce1gatDScmMo5pu/tfABfnzEqeG0gtTmd7mh/WcwgUjtAeOU7N8nFFlbQBnFK2gXW5fGvmMA==", "dev": true, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" } }, "node_modules/path-exists": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/path-key": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "engines": { "node": ">=8" } }, "node_modules/path-scurry": { "version": "1.10.1", "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.10.1.tgz", "integrity": "sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ==", "dependencies": { "lru-cache": "^9.1.1 || ^10.0.0", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0" }, "engines": { "node": ">=16 || 14 >=14.17" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/picomatch": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { "node": ">=8.6" }, "funding": { "url": "https://github.com/sponsors/jonschlinkert" } }, "node_modules/pirates": { "version": "4.0.6", "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.6.tgz", "integrity": "sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg==", "dev": true, "engines": { "node": ">= 6" } }, "node_modules/polite-json": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/polite-json/-/polite-json-4.0.1.tgz", "integrity": "sha512-8LI5ZeCPBEb4uBbcYKNVwk4jgqNx1yHReWoW4H4uUihWlSqZsUDfSITrRhjliuPgxsNPFhNSudGO2Zu4cbWinQ==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/prettier": { "version": "2.8.8", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", "dev": true, "bin": { "prettier": "bin-prettier.js" }, "engines": { "node": ">=10.13.0" }, "funding": { "url": "https://github.com/prettier/prettier?sponsor=1" } }, "node_modules/prismjs": { "version": "1.29.0", "resolved": "https://registry.npmjs.org/prismjs/-/prismjs-1.29.0.tgz", "integrity": "sha512-Kx/1w86q/epKcmte75LNrEoT+lX8pBpavuAbvJWRXar7Hz8jrtF+e3vY751p0R8H9HdArwaCTNDDzHg/ScJK1Q==", "dev": true, "engines": { "node": ">=6" } }, "node_modules/prismjs-terminal": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/prismjs-terminal/-/prismjs-terminal-1.2.3.tgz", "integrity": "sha512-xc0zuJ5FMqvW+DpiRkvxURlz98DdfDsZcFHdO699+oL+ykbFfgI7O4VDEgUyc07BSL2NHl3zdb8m/tZ/aaqUrw==", "dev": true, "dependencies": { "chalk": "^5.2.0", "prismjs": "^1.29.0", "string-length": "^6.0.0" }, "engines": { "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/proc-log": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz", "integrity": "sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A==", "dev": true, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/process-on-spawn": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz", "integrity": "sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg==", "dev": true, "dependencies": { "fromentries": "^1.2.0" }, "engines": { "node": ">=8" } }, "node_modules/promise-inflight": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", "dev": true }, "node_modules/promise-retry": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, "dependencies": { "err-code": "^2.0.2", "retry": "^0.12.0" }, "engines": { "node": ">=10" } }, "node_modules/react": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", "dev": true, "dependencies": { "loose-envify": "^1.1.0" }, "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { "version": "18.2.0", "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", "dev": true, "peer": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "peerDependencies": { "react": "^18.2.0" } }, "node_modules/react-element-to-jsx-string": { "version": "15.0.0", "resolved": "https://registry.npmjs.org/react-element-to-jsx-string/-/react-element-to-jsx-string-15.0.0.tgz", "integrity": "sha512-UDg4lXB6BzlobN60P8fHWVPX3Kyw8ORrTeBtClmIlGdkOOE+GYQSFvmEU5iLLpwp/6v42DINwNcwOhOLfQ//FQ==", "dev": true, "dependencies": { "@base2/pretty-print-object": "1.0.1", "is-plain-object": "5.0.0", "react-is": "18.1.0" }, "peerDependencies": { "react": "^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0", "react-dom": "^0.14.8 || ^15.0.1 || ^16.0.0 || ^17.0.1 || ^18.0.0" } }, "node_modules/react-is": { "version": "18.1.0", "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.1.0.tgz", "integrity": "sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==", "dev": true }, "node_modules/react-reconciler": { "version": "0.29.0", "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.29.0.tgz", "integrity": "sha512-wa0fGj7Zht1EYMRhKWwoo1H9GApxYLBuhoAuXN0TlltESAjDssB+Apf0T/DngVqaMyPypDmabL37vw/2aRM98Q==", "dev": true, "dependencies": { "loose-envify": "^1.1.0", "scheduler": "^0.23.0" }, "engines": { "node": ">=0.10.0" }, "peerDependencies": { "react": "^18.2.0" } }, "node_modules/read-package-json": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz", "integrity": "sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg==", "dev": true, "dependencies": { "glob": "^10.2.2", "json-parse-even-better-errors": "^3.0.0", "normalize-package-data": "^6.0.0", "npm-normalize-package-bin": "^3.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/read-package-json-fast": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz", "integrity": "sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw==", "dev": true, "dependencies": { "json-parse-even-better-errors": "^3.0.0", "npm-normalize-package-bin": "^3.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", "util-deprecate": "^1.0.1" }, "engines": { "node": ">= 6" } }, "node_modules/readdirp": { "version": "3.6.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "dependencies": { "picomatch": "^2.2.1" }, "engines": { "node": ">=8.10.0" } }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", "dev": true, "engines": { "node": ">=0.10.0" } }, "node_modules/resolve-import": { "version": "1.4.4", "resolved": "https://registry.npmjs.org/resolve-import/-/resolve-import-1.4.4.tgz", "integrity": "sha512-+IccDyUypl5rHv25216cXu2m30flEoetrG8p4qDH3RsP53cytedI58Pz+pjCU4PAbxPOQgFkgmxTJLKI9tgf/g==", "dev": true, "dependencies": { "glob": "^10.3.3", "walk-up-path": "^3.0.1" }, "engines": { "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/restore-cursor": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz", "integrity": "sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg==", "dev": true, "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" }, "engines": { "node": "^12.20.0 || ^14.13.1 || >=16.0.0" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/restore-cursor/node_modules/signal-exit": { "version": "3.0.7", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, "node_modules/retry": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/rimraf": { "version": "5.0.5", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-5.0.5.tgz", "integrity": "sha512-CqDakW+hMe/Bz202FPEymy68P+G50RfMQK+Qo5YUqc9SPipvbGjCGKd0RSKEelbsfQuw3g5NZDSrlZZAJurH1A==", "dev": true, "dependencies": { "glob": "^10.3.7" }, "bin": { "rimraf": "dist/esm/bin.mjs" }, "engines": { "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", "dev": true, "funding": [ { "type": "github", "url": "https://github.com/sponsors/feross" }, { "type": "patreon", "url": "https://www.patreon.com/feross" }, { "type": "consulting", "url": "https://feross.org/support" } ] }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, "optional": true }, "node_modules/scheduler": { "version": "0.23.0", "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", "dev": true, "dependencies": { "loose-envify": "^1.1.0" } }, "node_modules/semver": { "version": "7.5.4", "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" }, "bin": { "semver": "bin/semver.js" }, "engines": { "node": ">=10" } }, "node_modules/semver/node_modules/lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==", "dev": true }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", "dependencies": { "shebang-regex": "^3.0.0" }, "engines": { "node": ">=8" } }, "node_modules/shebang-regex": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "engines": { "node": ">=8" } }, "node_modules/shiki": { "version": "0.14.4", "resolved": "https://registry.npmjs.org/shiki/-/shiki-0.14.4.tgz", "integrity": "sha512-IXCRip2IQzKwxArNNq1S+On4KPML3Yyn8Zzs/xRgcgOWIr8ntIK3IKzjFPfjy/7kt9ZMjc+FItfqHRBg8b6tNQ==", "dev": true, "dependencies": { "ansi-sequence-parser": "^1.1.0", "jsonc-parser": "^3.2.0", "vscode-oniguruma": "^1.7.0", "vscode-textmate": "^8.0.0" } }, "node_modules/signal-exit": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", "engines": { "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/sigstore": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/sigstore/-/sigstore-2.1.0.tgz", "integrity": "sha512-kPIj+ZLkyI3QaM0qX8V/nSsweYND3W448pwkDgS6CQ74MfhEkIR8ToK5Iyx46KJYRjseVcD3Rp9zAmUAj6ZjPw==", "dev": true, "dependencies": { "@sigstore/bundle": "^2.1.0", "@sigstore/protobuf-specs": "^0.2.1", "@sigstore/sign": "^2.1.0", "@sigstore/tuf": "^2.1.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/slice-ansi": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-6.0.0.tgz", "integrity": "sha512-6bn4hRfkTvDfUoEQYkERg0BVF1D0vrX9HEkMl08uDiNWvVvjylLHvZFZWkDo6wjT8tUctbYl1nCOuE66ZTaUtA==", "dev": true, "dependencies": { "ansi-styles": "^6.2.1", "is-fullwidth-code-point": "^4.0.0" }, "engines": { "node": ">=14.16" }, "funding": { "url": "https://github.com/chalk/slice-ansi?sponsor=1" } }, "node_modules/smart-buffer": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", "dev": true, "engines": { "node": ">= 6.0.0", "npm": ">= 3.0.0" } }, "node_modules/socks": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz", "integrity": "sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ==", "dev": true, "dependencies": { "ip": "^2.0.0", "smart-buffer": "^4.2.0" }, "engines": { "node": ">= 10.13.0", "npm": ">= 3.0.0" } }, "node_modules/socks-proxy-agent": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", "dev": true, "dependencies": { "agent-base": "^6.0.2", "debug": "^4.3.3", "socks": "^2.6.2" }, "engines": { "node": ">= 10" } }, "node_modules/spdx-correct": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "dependencies": { "spdx-expression-parse": "^3.0.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-exceptions": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, "node_modules/spdx-expression-parse": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "dependencies": { "spdx-exceptions": "^2.1.0", "spdx-license-ids": "^3.0.0" } }, "node_modules/spdx-license-ids": { "version": "3.0.16", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz", "integrity": "sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw==", "dev": true }, "node_modules/ssri": { "version": "10.0.5", "resolved": "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz", "integrity": "sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A==", "dev": true, "dependencies": { "minipass": "^7.0.3" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/stack-utils": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz", "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==", "dev": true, "dependencies": { "escape-string-regexp": "^2.0.0" }, "engines": { "node": ">=10" } }, "node_modules/string_decoder": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "dependencies": { "safe-buffer": "~5.2.0" } }, "node_modules/string-length": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/string-length/-/string-length-6.0.0.tgz", "integrity": "sha512-1U361pxZHEQ+FeSjzqRpV+cu2vTzYeWeafXFLykiFlv4Vc0n3njgU8HrMbyik5uwm77naWMuVG8fhEF+Ovb1Kg==", "dev": true, "dependencies": { "strip-ansi": "^7.1.0" }, "engines": { "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/string-width": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dependencies": { "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", "strip-ansi": "^7.0.1" }, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/string-width-cjs": { "name": "string-width", "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/string-width-cjs/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } }, "node_modules/string-width-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/string-width-cjs/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { "node": ">=8" } }, "node_modules/string-width-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/strip-ansi": { "version": "7.1.0", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz", "integrity": "sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==", "dependencies": { "ansi-regex": "^6.0.1" }, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/chalk/strip-ansi?sponsor=1" } }, "node_modules/strip-ansi-cjs": { "name": "strip-ansi", "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/strip-ansi-cjs/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } }, "node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "dependencies": { "has-flag": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/sync-content": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/sync-content/-/sync-content-1.0.2.tgz", "integrity": "sha512-znd3rYiiSxU3WteWyS9a6FXkTA/Wjk8WQsOyzHbineeL837dLn3DA4MRhsIX3qGcxDMH6+uuFV4axztssk7wEQ==", "dev": true, "dependencies": { "glob": "^10.2.6", "mkdirp": "^3.0.1", "path-scurry": "^1.9.2", "rimraf": "^5.0.1" }, "bin": { "sync-content": "dist/mjs/bin.mjs" }, "engines": { "node": ">=14" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/tap": { "version": "18.4.4", "resolved": "https://registry.npmjs.org/tap/-/tap-18.4.4.tgz", "integrity": "sha512-RbyOzm437slQHAWY9C65Odp3sZVa6geRuqQM6/GlDSPAg7MhhMOcqL+0AeGRY3zsbybowzlXgKrUBa8dwrYNFQ==", "dev": true, "dependencies": { "@tapjs/after": "1.1.8", "@tapjs/after-each": "1.1.8", "@tapjs/asserts": "1.1.8", "@tapjs/before": "1.1.8", "@tapjs/before-each": "1.1.8", "@tapjs/core": "1.3.8", "@tapjs/filter": "1.2.8", "@tapjs/fixture": "1.2.8", "@tapjs/intercept": "1.2.8", "@tapjs/mock": "1.2.6", "@tapjs/node-serialize": "1.1.8", "@tapjs/run": "1.4.4", "@tapjs/snapshot": "1.2.8", "@tapjs/spawn": "1.1.8", "@tapjs/stdin": "1.1.8", "@tapjs/test": "1.3.8", "@tapjs/typescript": "1.2.8", "@tapjs/worker": "1.1.8", "resolve-import": "^1.4.4" }, "bin": { "tap": "dist/esm/run.mjs" }, "engines": { "node": ">=16" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/tap-parser": { "version": "15.2.0", "resolved": "https://registry.npmjs.org/tap-parser/-/tap-parser-15.2.0.tgz", "integrity": "sha512-bDBR7cuVLfsmmc7ruerZXVBlDtJwqqWzqlO9BFNgw6gprpzjnjyfdc+fsW6mNUYSoxdVEeY7NFgrgGa81EuQ5w==", "dev": true, "dependencies": { "events-to-array": "^2.0.3", "tap-yaml": "2.2.0" }, "bin": { "tap-parser": "bin/cmd.cjs" }, "engines": { "node": ">=16" } }, "node_modules/tap-yaml": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tap-yaml/-/tap-yaml-2.2.0.tgz", "integrity": "sha512-o8I7WDNiGpuF04tGAVaNYY5rX9waCtqw9A7Y0YVSQBGcFwNUJWUPLkr2lbhgLRTxc+Tpnw4xUXlIanZc+ZAGnw==", "dev": true, "dependencies": { "yaml": "^2.3.0", "yaml-types": "^0.3.0" }, "engines": { "node": ">=16" } }, "node_modules/tar": { "version": "6.2.0", "resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz", "integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==", "dev": true, "dependencies": { "chownr": "^2.0.0", "fs-minipass": "^2.0.0", "minipass": "^5.0.0", "minizlib": "^2.1.1", "mkdirp": "^1.0.3", "yallist": "^4.0.0" }, "engines": { "node": ">=10" } }, "node_modules/tar/node_modules/fs-minipass": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", "dev": true, "dependencies": { "minipass": "^3.0.0" }, "engines": { "node": ">= 8" } }, "node_modules/tar/node_modules/fs-minipass/node_modules/minipass": { "version": "3.3.6", "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", "dev": true, "dependencies": { "yallist": "^4.0.0" }, "engines": { "node": ">=8" } }, "node_modules/tar/node_modules/minipass": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz", "integrity": "sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/tar/node_modules/mkdirp": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true, "bin": { "mkdirp": "bin/cmd.js" }, "engines": { "node": ">=10" } }, "node_modules/tcompare": { "version": "6.4.2", "resolved": "https://registry.npmjs.org/tcompare/-/tcompare-6.4.2.tgz", "integrity": "sha512-TmMm1TL4Jg1p7FtnhxF4Sbcc774EpXZCsVAv6PfChXiy8XXwWLmD6hdI+rhwYQtPMFflTPsv8IVSZh0xxj1lXg==", "dev": true, "dependencies": { "diff": "^5.1.0", "react-element-to-jsx-string": "^15.0.0" }, "engines": { "node": ">=16" } }, "node_modules/test-exclude": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "dependencies": { "@istanbuljs/schema": "^0.1.2", "glob": "^7.1.4", "minimatch": "^3.0.4" }, "engines": { "node": ">=8" } }, "node_modules/test-exclude/node_modules/brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "node_modules/test-exclude/node_modules/glob": { "version": "7.2.3", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.1.1", "once": "^1.3.0", "path-is-absolute": "^1.0.0" }, "engines": { "node": "*" }, "funding": { "url": "https://github.com/sponsors/isaacs" } }, "node_modules/test-exclude/node_modules/minimatch": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" }, "engines": { "node": "*" } }, "node_modules/to-regex-range": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", "dev": true, "dependencies": { "is-number": "^7.0.0" }, "engines": { "node": ">=8.0" } }, "node_modules/trivial-deferred": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/trivial-deferred/-/trivial-deferred-2.0.0.tgz", "integrity": "sha512-iGbM7X2slv9ORDVj2y2FFUq3cP/ypbtu2nQ8S38ufjL0glBABvmR9pTdsib1XtS2LUhhLMbelaBUaf/s5J3dSw==", "dev": true, "engines": { "node": ">= 8" } }, "node_modules/ts-node": { "name": "@isaacs/ts-node-temp-fork-for-pr-2009", "version": "10.9.1", "resolved": "https://registry.npmjs.org/@isaacs/ts-node-temp-fork-for-pr-2009/-/ts-node-temp-fork-for-pr-2009-10.9.1.tgz", "integrity": "sha512-MY4rUonz835NsTbd4dcgKZvZFYX9IkLnYFZV9M7GQV8t39fawafLin/Qw6VXD4yfMs4HcBq8P3ddeU0QHMH1YQ==", "dev": true, "dependencies": { "@cspotcode/source-map-support": "^0.8.0", "@tsconfig/node14": "*", "@tsconfig/node16": "*", "@tsconfig/node18": "*", "@tsconfig/node20": "*", "acorn": "^8.4.1", "acorn-walk": "^8.1.1", "arg": "^4.1.0", "diff": "^4.0.1", "make-error": "^1.1.1", "v8-compile-cache-lib": "^3.0.1" }, "bin": { "ts-node": "dist/bin.js", "ts-node-cwd": "dist/bin-cwd.js", "ts-node-esm": "dist/bin-esm.js", "ts-node-script": "dist/bin-script.js", "ts-node-transpile-only": "dist/bin-transpile.js" }, "peerDependencies": { "@swc/core": ">=1.2.50", "@swc/wasm": ">=1.2.50", "@types/node": "*", "typescript": ">=4.2" }, "peerDependenciesMeta": { "@swc/core": { "optional": true }, "@swc/wasm": { "optional": true } } }, "node_modules/ts-node/node_modules/diff": { "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, "engines": { "node": ">=0.3.1" } }, "node_modules/tshy": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/tshy/-/tshy-1.2.2.tgz", "integrity": "sha512-y5ItK4DKLYO+hba7h5sOaCYygNtF44qytZGyjZSE6CQSVfzUfZ2qn/GmXu737amwfCKG9EizPw3oPBWrisF1uw==", "dev": true, "dependencies": { "chalk": "^5.3.0", "foreground-child": "^3.1.1", "mkdirp": "^3.0.1", "resolve-import": "^1.4.1", "rimraf": "^5.0.1", "sync-content": "^1.0.2", "typescript": "5.2", "walk-up-path": "^3.0.1" }, "bin": { "tshy": "dist/esm/index.js" }, "engines": { "node": "16 >=16.17 || 18 >=18.16.0 || >=20.6.1" } }, "node_modules/tslib": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", "dev": true }, "node_modules/tuf-js": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/tuf-js/-/tuf-js-2.1.0.tgz", "integrity": "sha512-eD7YPPjVlMzdggrOeE8zwoegUaG/rt6Bt3jwoQPunRiNVzgcCE009UDFJKJjG+Gk9wFu6W/Vi+P5d/5QpdD9jA==", "dev": true, "dependencies": { "@tufjs/models": "2.0.0", "debug": "^4.3.4", "make-fetch-happen": "^13.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/tuf-js/node_modules/make-fetch-happen": { "version": "13.0.0", "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz", "integrity": "sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A==", "dev": true, "dependencies": { "@npmcli/agent": "^2.0.0", "cacache": "^18.0.0", "http-cache-semantics": "^4.1.1", "is-lambda": "^1.0.1", "minipass": "^7.0.2", "minipass-fetch": "^3.0.0", "minipass-flush": "^1.0.5", "minipass-pipeline": "^1.2.4", "negotiator": "^0.6.3", "promise-retry": "^2.0.1", "ssri": "^10.0.0" }, "engines": { "node": "^16.14.0 || >=18.0.0" } }, "node_modules/type-fest": { "version": "0.12.0", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.12.0.tgz", "integrity": "sha512-53RyidyjvkGpnWPMF9bQgFtWp+Sl8O2Rp13VavmJgfAP9WWG6q6TkrKU8iyJdnwnfgHI6k2hTlgqH4aSdjoTbg==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/typedoc": { "version": "0.25.1", "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.25.1.tgz", "integrity": "sha512-c2ye3YUtGIadxN2O6YwPEXgrZcvhlZ6HlhWZ8jQRNzwLPn2ylhdGqdR8HbyDRyALP8J6lmSANILCkkIdNPFxqA==", "dev": true, "dependencies": { "lunr": "^2.3.9", "marked": "^4.3.0", "minimatch": "^9.0.3", "shiki": "^0.14.1" }, "bin": { "typedoc": "bin/typedoc" }, "engines": { "node": ">= 16" }, "peerDependencies": { "typescript": "4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x || 5.1.x || 5.2.x" } }, "node_modules/typescript": { "version": "5.2.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.2.2.tgz", "integrity": "sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w==", "dev": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" }, "engines": { "node": ">=14.17" } }, "node_modules/unique-filename": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz", "integrity": "sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g==", "dev": true, "dependencies": { "unique-slug": "^4.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/unique-slug": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz", "integrity": "sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ==", "dev": true, "dependencies": { "imurmurhash": "^0.1.4" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", "dev": true }, "node_modules/uuid": { "version": "8.3.2", "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, "bin": { "uuid": "dist/bin/uuid" } }, "node_modules/v8-compile-cache-lib": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, "node_modules/v8-to-istanbul": { "version": "9.1.3", "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.1.3.tgz", "integrity": "sha512-9lDD+EVI2fjFsMWXc6dy5JJzBsVTcQ2fVkfBvncZ6xJWG9wtBhOldG+mHkSL0+V1K/xgZz0JDO5UT5hFwHUghg==", "dev": true, "dependencies": { "@jridgewell/trace-mapping": "^0.3.12", "@types/istanbul-lib-coverage": "^2.0.1", "convert-source-map": "^2.0.0" }, "engines": { "node": ">=10.12.0" } }, "node_modules/v8-to-istanbul/node_modules/@jridgewell/trace-mapping": { "version": "0.3.19", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz", "integrity": "sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==", "dev": true, "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", "@jridgewell/sourcemap-codec": "^1.4.14" } }, "node_modules/validate-npm-package-license": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", "dev": true, "dependencies": { "spdx-correct": "^3.0.0", "spdx-expression-parse": "^3.0.0" } }, "node_modules/validate-npm-package-name": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz", "integrity": "sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ==", "dev": true, "dependencies": { "builtins": "^5.0.0" }, "engines": { "node": "^14.17.0 || ^16.13.0 || >=18.0.0" } }, "node_modules/vscode-oniguruma": { "version": "1.7.0", "resolved": "https://registry.npmjs.org/vscode-oniguruma/-/vscode-oniguruma-1.7.0.tgz", "integrity": "sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==", "dev": true }, "node_modules/vscode-textmate": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-8.0.0.tgz", "integrity": "sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==", "dev": true }, "node_modules/walk-up-path": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz", "integrity": "sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA==" }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "bin/node-which" }, "engines": { "node": ">= 8" } }, "node_modules/wide-align": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", "dev": true, "dependencies": { "string-width": "^1.0.2 || 2 || 3 || 4" } }, "node_modules/wide-align/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/wide-align/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "node_modules/wide-align/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/wide-align/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/wide-align/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/widest-line": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-4.0.1.tgz", "integrity": "sha512-o0cyEG0e8GPzT4iGHphIOh0cJOV8fivsXxddQasHPHfoZf1ZexrfeA21w2NaEN1RHE+fXlfISmOE8R9N3u3Qig==", "dev": true, "dependencies": { "string-width": "^5.0.1" }, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/wrap-ansi": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz", "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==", "dependencies": { "ansi-styles": "^6.1.0", "string-width": "^5.0.1", "strip-ansi": "^7.0.1" }, "engines": { "node": ">=12" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrap-ansi-cjs": { "name": "wrap-ansi", "version": "7.0.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" }, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/chalk/wrap-ansi?sponsor=1" } }, "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "engines": { "node": ">=8" } }, "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dependencies": { "color-convert": "^2.0.1" }, "engines": { "node": ">=8" }, "funding": { "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" }, "node_modules/wrap-ansi-cjs/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "engines": { "node": ">=8" } }, "node_modules/wrap-ansi-cjs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dependencies": { "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, "node_modules/ws": { "version": "8.14.2", "resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz", "integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==", "dev": true, "engines": { "node": ">=10.0.0" }, "peerDependencies": { "bufferutil": "^4.0.1", "utf-8-validate": ">=5.0.2" }, "peerDependenciesMeta": { "bufferutil": { "optional": true }, "utf-8-validate": { "optional": true } } }, "node_modules/y18n": { "version": "5.0.8", "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", "dev": true }, "node_modules/yaml": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", "dev": true, "engines": { "node": ">= 14" } }, "node_modules/yaml-types": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/yaml-types/-/yaml-types-0.3.0.tgz", "integrity": "sha512-i9RxAO/LZBiE0NJUy9pbN5jFz5EasYDImzRkj8Y81kkInTi1laia3P3K/wlMKzOxFQutZip8TejvQP/DwgbU7A==", "dev": true, "engines": { "node": ">= 16", "npm": ">= 7" }, "peerDependencies": { "yaml": "^2.3.0" } }, "node_modules/yargs": { "version": "17.7.2", "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { "cliui": "^8.0.1", "escalade": "^3.1.1", "get-caller-file": "^2.0.5", "require-directory": "^2.1.1", "string-width": "^4.2.3", "y18n": "^5.0.5", "yargs-parser": "^21.1.1" }, "engines": { "node": ">=12" } }, "node_modules/yargs-parser": { "version": "21.1.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/yargs/node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/yargs/node_modules/emoji-regex": { "version": "8.0.0", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", "dev": true }, "node_modules/yargs/node_modules/is-fullwidth-code-point": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true, "engines": { "node": ">=8" } }, "node_modules/yargs/node_modules/string-width": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" }, "engines": { "node": ">=8" } }, "node_modules/yargs/node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "dependencies": { "ansi-regex": "^5.0.1" }, "engines": { "node": ">=8" } }, "node_modules/yocto-queue": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "engines": { "node": ">=10" }, "funding": { "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/yoga-wasm-web": { "version": "0.3.3", "resolved": "https://registry.npmjs.org/yoga-wasm-web/-/yoga-wasm-web-0.3.3.tgz", "integrity": "sha512-N+d4UJSJbt/R3wqY7Coqs5pcV0aUj2j9IaQ3rNj9bVCLld8tTGKRa2USARjnvZJWVx1NDmQev8EknoczaOQDOA==", "dev": true } } } isaacs-resolve-import-9b54ade/package.json000066400000000000000000000120371464306454200207420ustar00rootroot00000000000000{ "name": "resolve-import", "version": "1.4.6", "description": "Look up the file that an `import()` statement will resolve to, possibly relative to a given parentURL", "author": "Isaac Z. Schlueter (https://blog.izs.me)", "repository": { "type": "git", "url": "git://github.com/isaacs/resolve-import.git" }, "type": "module", "main": "./dist/commonjs/index.js", "types": "./dist/commonjs/index.d.ts", "tshy": { "main": true, "exports": { "./package.json": "./package.json", ".": "./src/index.ts", "./resolve-import": "./src/resolve-import.ts", "./is-relative-require": "./src/is-relative-require.ts", "./resolve-conditional-value": "./src/resolve-conditional-value.ts", "./resolve-all-exports": "./src/resolve-all-exports.ts", "./resolve-all-local-imports": "./src/resolve-all-local-imports.ts", "./get-all-conditions": "./src/get-all-conditions.ts", "./get-all-conditional-values": "./src/get-all-conditional-values.ts", "./get-conditional-values-list": "./src/get-conditional-values-list.ts" } }, "exports": { "./package.json": "./package.json", ".": { "import": { "types": "./dist/esm/index.d.ts", "default": "./dist/esm/index.js" }, "require": { "types": "./dist/commonjs/index.d.ts", "default": "./dist/commonjs/index.js" } }, "./resolve-import": { "import": { "types": "./dist/esm/resolve-import.d.ts", "default": "./dist/esm/resolve-import.js" }, "require": { "types": "./dist/commonjs/resolve-import.d.ts", "default": "./dist/commonjs/resolve-import.js" } }, "./is-relative-require": { "import": { "types": "./dist/esm/is-relative-require.d.ts", "default": "./dist/esm/is-relative-require.js" }, "require": { "types": "./dist/commonjs/is-relative-require.d.ts", "default": "./dist/commonjs/is-relative-require.js" } }, "./resolve-conditional-value": { "import": { "types": "./dist/esm/resolve-conditional-value.d.ts", "default": "./dist/esm/resolve-conditional-value.js" }, "require": { "types": "./dist/commonjs/resolve-conditional-value.d.ts", "default": "./dist/commonjs/resolve-conditional-value.js" } }, "./resolve-all-exports": { "import": { "types": "./dist/esm/resolve-all-exports.d.ts", "default": "./dist/esm/resolve-all-exports.js" }, "require": { "types": "./dist/commonjs/resolve-all-exports.d.ts", "default": "./dist/commonjs/resolve-all-exports.js" } }, "./resolve-all-local-imports": { "import": { "types": "./dist/esm/resolve-all-local-imports.d.ts", "default": "./dist/esm/resolve-all-local-imports.js" }, "require": { "types": "./dist/commonjs/resolve-all-local-imports.d.ts", "default": "./dist/commonjs/resolve-all-local-imports.js" } }, "./get-all-conditions": { "import": { "types": "./dist/esm/get-all-conditions.d.ts", "default": "./dist/esm/get-all-conditions.js" }, "require": { "types": "./dist/commonjs/get-all-conditions.d.ts", "default": "./dist/commonjs/get-all-conditions.js" } }, "./get-all-conditional-values": { "import": { "types": "./dist/esm/get-all-conditional-values.d.ts", "default": "./dist/esm/get-all-conditional-values.js" }, "require": { "types": "./dist/commonjs/get-all-conditional-values.d.ts", "default": "./dist/commonjs/get-all-conditional-values.js" } }, "./get-conditional-values-list": { "import": { "types": "./dist/esm/get-conditional-values-list.d.ts", "default": "./dist/esm/get-conditional-values-list.js" }, "require": { "types": "./dist/commonjs/get-conditional-values-list.d.ts", "default": "./dist/commonjs/get-conditional-values-list.js" } } }, "files": [ "dist" ], "license": "BlueOak-1.0.0", "scripts": { "preversion": "npm test", "postversion": "npm publish", "prepublishOnly": "git push origin --follow-tags", "prepare": "tshy", "pretest": "npm run prepare", "presnap": "npm run prepare", "test": "tap", "snap": "tap", "format": "prettier --write . --loglevel warn", "typedoc": "typedoc" }, "prettier": { "semi": false, "printWidth": 75, "tabWidth": 2, "useTabs": false, "singleQuote": true, "jsxSingleQuote": false, "bracketSameLine": true, "arrowParens": "avoid", "endOfLine": "lf" }, "engines": { "node": "16 >=16.17.0 || 18 >= 18.6.0 || >=20" }, "dependencies": { "glob": "^10.3.3", "walk-up-path": "^3.0.1" }, "devDependencies": { "@types/node": "^20.6.1", "prettier": "^2.8.2", "tap": "^18.4.4", "tshy": "^1.2.2", "typedoc": "^0.25.1", "typescript": "5.2" }, "funding": { "url": "https://github.com/sponsors/isaacs" } } isaacs-resolve-import-9b54ade/scripts/000077500000000000000000000000001464306454200201405ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/scripts/fixup.sh000066400000000000000000000003071464306454200216270ustar00rootroot00000000000000#!/usr/bin/env bash cat >dist-tmp/cjs/package.json <dist-tmp/mjs/package.json < any = resolveImport ) => { const er = new Error('invalid import() specifier: ' + url) Error.captureStackTrace(er, caller) return er } export const invalidPackage = ( pj: string | URL, caller: (...a: any[]) => any = resolveImport ) => { const er = new Error(`Not a valid package: ${pj}`) Error.captureStackTrace(er, caller) return er } export const relativeImportWithoutParentURL = ( url: string, parentURL: any, caller: (...a: any[]) => any = resolveImport ) => { const er = Object.assign( new Error('relative import without parentURL'), { url, parentURL, } ) Error.captureStackTrace(er, caller) return er } export const subpathNotExported = ( sub: string, pj: string, from: string, caller: (...a: any[]) => any = resolveImport ) => { const p = sub === '.' ? 'No "exports" main defined' : `Package subpath '${sub}' is not defined by "exports"` const er = Object.assign( new Error(`${p} in ${pj} imported from ${from}`), { code: 'ERR_PACKAGE_PATH_NOT_EXPORTED', } ) Error.captureStackTrace(er, caller) return er } export const packageNotFound = ( path: string | null, from: string, caller: (...a: any[]) => any = resolveImport ) => { const er = Object.assign( new Error(`Cannot find package '${path}' imported from ${from}`), { code: 'ERR_MODULE_NOT_FOUND', } ) Error.captureStackTrace(er, caller) return er } export const moduleNotFound = ( path: string, from: string, caller: (...a: any[]) => any = resolveImport ) => { const er = Object.assign( new Error(`Cannot find module '${path}' imported from ${from}`), { code: 'ERR_MODULE_NOT_FOUND', } ) Error.captureStackTrace(er, caller) return er } export const packageImportNotDefined = ( path: string, pj: string, from: string, caller: (...a: any[]) => any = resolveImport ) => { const er = Object.assign( new Error( `Package import specifier "${path}" is not defined in package ` + `${pj} imported from ${from}` ), { code: 'ERR_PACKAGE_IMPORT_NOT_DEFINED' } ) Error.captureStackTrace(er, caller) return er } isaacs-resolve-import-9b54ade/src/file-exists.ts000066400000000000000000000002451464306454200220450ustar00rootroot00000000000000import { stat } from 'fs/promises' export const fileExists = async (f: string | URL): Promise => stat(f).then( st => st.isFile(), () => false ) isaacs-resolve-import-9b54ade/src/find-dep-package.ts000066400000000000000000000022061464306454200226670ustar00rootroot00000000000000import { realpath, stat } from 'fs/promises' import { dirname, resolve, sep } from 'path' import { walkUp } from 'walk-up-path' const dirExists = async (f: string): Promise => stat(f).then( st => st.isDirectory(), () => false ) export const findDepPackage = async ( pkgName: string | null, parentPath: string ) => { // starting from the dirname, try to find the nearest node_modules for (const dir of walkUp(dirname(parentPath))) { const nm = resolve(dir, 'node_modules') + sep // if it's null, then we need the node_modules itself // if it's '' then we use node_modules with an extra / on it // thisis only relevant when generating the error message, since // of course node_modules// is never going to be a valid package. const ppath = pkgName === null ? nm : (!pkgName ? nm : resolve(nm, pkgName)) + sep if (await dirExists(ppath)) { try { return (await realpath(ppath)) + sep // the direxists stat will avoid almost all throws that could // occur here, but just in case. /* c8 ignore start */ } catch {} /* c8 ignore stop */ } } } isaacs-resolve-import-9b54ade/src/find-star-match.ts000066400000000000000000000014651464306454200225770ustar00rootroot00000000000000/** * Given an object with string keys possibly containing *, and a test * string, return the matching key, and the section that the star should * expand to when matching against the test string. */ export const findStarMatch = ( s: string, obj: Record ): [string, string] | null => { // longest pattern matches take priority const patterns = Object.keys(obj) .filter(p => p.length <= s.length) .sort((a, b) => b.length - a.length) .map(p => [p, p.split('*')]) .filter(([, p]) => (p as string[]).length === 2) as [ string, [string, string] ][] for (const [key, [before, after]] of patterns) { if (s.startsWith(before) && s.endsWith(after)) { const mid = s.substring(before.length, s.length - after.length) return [key, mid] } } return null } isaacs-resolve-import-9b54ade/src/get-all-conditional-values.ts000066400000000000000000000025211464306454200247330ustar00rootroot00000000000000/** * Exported as `'resolve-import/get-all-conditional-values'` * @module */ import { getConditionalValuesList } from './get-conditional-values-list.js' import { Exports, Imports } from './index.js' /** * Given an `exports` or `imports` value from a package, return the list of all * possible conditional values that it might potentially resolve to, for any * possible set of import conditions. * * Filters out cases that are unreachable, such as conditions that appear after * a `default` value, or after a set of conditions that would have been * satisfied previously. * * For example: * * ```json * { * "import": { "node": "./x.js" }, * "node": { "import": { "blah": "./y.js" } } * } * ``` * * Will return `['./x.js']`, omitting the unreachable `'./y.js'`, because the * conditions ['import','node','blah'] would have been satisfied by the earlier * condition. * * Note that this does *not* mean that the target actually can be imported, as * it may not exist, be an incorrect module type, etc. * * Star values are not expanded. For that, use `resolveAllExports` or * `resolveAllLocalImports`. */ export const getAllConditionalValues = ( importsExports: Imports | Exports ): string[] => [ ...new Set( getConditionalValuesList(importsExports) .map(([_, __, c]) => c) .filter(c => !!c) as string[] ), ] isaacs-resolve-import-9b54ade/src/get-all-conditions.ts000066400000000000000000000054061464306454200233110ustar00rootroot00000000000000/** * Exported as `'resolve-import/get-all-conditions'` * @module */ import { ConditionalValue, Exports, Imports } from './index.js' /** * Given an `exports` or `imports` value from a package, return the list of * conditions that it is sensitive to. * * `default` is not included in the returned list, since that's always * effectively relevant. * * Note that a condition being returned by this method does not mean * that the export/import object actually has a *target* for that condition, * since it may map to `null`, be nested under another condition, etc. But it * does potentially have some kind of conditional behavior for all the * conditions returned. * * Ordering of returned conditions is arbitrary, and does not imply precedence * or object shape. */ export const getAllConditions = ( importsExports: Imports | Exports ): string[] => { if ( !!importsExports && typeof importsExports === 'object' && !Array.isArray(importsExports) ) { let subs: string | undefined = undefined const conditions: string[] = [] for (const [k, v] of Object.entries(importsExports)) { /* c8 ignore start */ if (!k) continue /* c8 ignore stop */ if (subs === undefined) { if (!k.startsWith('#') && k !== '.' && !k.startsWith('./')) { return getAllConditionsFromCond( importsExports as ConditionalValue ) } subs = k.charAt(0) } if ( // imports have to be # (subs === '#' && (k === '#' || !k.startsWith('#'))) || // exports can be ./ or . (subs === '.' && k !== '.' && !k.startsWith('./')) ) { throw new Error( `invalid ${ subs === '.' ? 'exports' : 'imports' } object, all keys ` + `must start with ${subs}. Found ${k}.` ) } conditions.push(...getAllConditionsFromCond(v)) } return [...new Set(conditions)] } return getAllConditionsFromCond(importsExports as ConditionalValue) } const getAllConditionsFromCond = (cond?: ConditionalValue): string[] => { if (!cond || typeof cond === 'string') return [] if (Array.isArray(cond)) { const conditions: string[] = [] for (const e of cond) { if (!e || typeof e === 'string') break conditions.push(...getAllConditionsFromCond(e)) } return [...new Set(conditions)] } const conditions: string[] = [] for (const [k, v] of Object.entries(cond)) { if (k.startsWith('#') || k === '.' || k.startsWith('./')) { throw new Error(`Expected valid import condition, got: ${k}`) } // anything after 'default' isn't relevant conditions.push(...getAllConditionsFromCond(v)) if (k === 'default') break else conditions.push(k) } return [...new Set(conditions)] } isaacs-resolve-import-9b54ade/src/get-conditional-values-list.ts000066400000000000000000000072601464306454200251430ustar00rootroot00000000000000/** * Exported as `'resolve-import/get-conditional-values-list'` * @module */ import { ConditionalValue, Exports, Imports } from './index.js' export type ConditionalValuesList = [ submodulePath: string, conditions: Set, resolvedValue: string | null ][] /** * Given an `exports` or `imports` value from a package, return the list of all * possible conditional values that it might potentially resolve to, for any * possible set of import conditions, along with the `Set` of * conditions, any superset of which will result in the condition. * * The list includes null results, since while these are not a valid resolution * per se, they do *prevent* valid resolutions that match the same conditions. */ export const getConditionalValuesList = ( importsExports: Imports | Exports ): ConditionalValuesList => { if ( !!importsExports && typeof importsExports === 'object' && !Array.isArray(importsExports) ) { let subs: string | undefined = undefined const conditions: ConditionalValuesList = [] for (const [k, v] of Object.entries(importsExports)) { /* c8 ignore start */ if (!k) continue /* c8 ignore stop */ if (subs === undefined) { if (!k.startsWith('#') && k !== '.' && !k.startsWith('./')) { return getConditionalValuesListFromCond( importsExports as ConditionalValue ).map(s => ['.', ...s]) } subs = k.charAt(0) } if ( // imports have to be # (subs === '#' && (k === '#' || !k.startsWith('#'))) || // exports can be ./ or . (subs === '.' && k !== '.' && !k.startsWith('./')) ) { throw new Error( `invalid ${ subs === '.' ? 'exports' : 'imports' } object, all keys ` + `must start with ${subs}. Found ${k}.` ) } conditions.push( ...getConditionalValuesListFromCond(v).map( s => [k, ...s] as [string, Set, string | null] ) ) } return conditions } return getConditionalValuesListFromCond( importsExports as ConditionalValue ).map(s => ['.', ...s]) } const isSubset = (maybeSub: Set, sup: Set) => { if (maybeSub.size > sup.size) return false for (const c of maybeSub) { if (!sup.has(c)) return false } return true } // walk down the tree, creating a list of [Set, value] // if a subset of the current set is already present in the list, then omit it const getConditionalValuesListFromCond = ( cond?: ConditionalValue, path: string[] = [], // path of conditions that got here list: [Set, string | null][] = [] ): [Set, string | null][] => { /* c8 ignore start */ if (cond === undefined) return list /* c8 ignore stop */ if (cond === null || typeof cond === 'string') { // reached a resolution value. // if we got here, we know it has not yet been seen. list.push([new Set(path), cond]) return list } if (Array.isArray(cond)) { for (const c of cond) { getConditionalValuesListFromCond(c, path, list) // if we hit a default condition, break if (!c || typeof c === 'string') break } return list } // ConditionalValueObject for (const [k, v] of Object.entries(cond)) { if (k.startsWith('#') || k === '.' || k.startsWith('./')) { throw new Error(`Expected valid import condition, got: ${k}`) } const p = k === 'default' ? path : path.concat(k) // if no subset seen, then recurse const ps = new Set(p) const seen = list.some(([s]) => isSubset(s, ps)) if (!seen) { getConditionalValuesListFromCond(v, p, list) } if (k === 'default') break } return list } isaacs-resolve-import-9b54ade/src/get-named-exports-list.ts000066400000000000000000000011251464306454200241230ustar00rootroot00000000000000import { Exports, ExportsSubpaths } from './index.js' /** * Get the condition-resolved targets of all exports * * Stars are not expanded. */ export const getNamedExportsList = (exports?: Exports): string[] => { if (!exports) return [] if (!isExportSubpaths(exports)) return ['.'] return Object.keys(exports).filter(e => e === '.' || e.startsWith('./')) } const isExportSubpaths = (e: Exports): e is ExportsSubpaths => { if (!e || typeof e !== 'object' || Array.isArray(e)) return false for (const p in e) { if (p !== '.' && !p.startsWith('./')) return false } return true } isaacs-resolve-import-9b54ade/src/get-unique-condition-sets.ts000066400000000000000000000026271464306454200246420ustar00rootroot00000000000000import { getConditionalValuesList } from './get-conditional-values-list.js' import { Exports, Imports } from './index.js' /** * Get the minimal set of conditions that can potentially produce different * resolution values for a given imports or exports object from a package * manifest. * * For example: * * ```json * { * ".": [{"import":[{"types":"x.d.ts"},"x.mjs"], "require":"y.js"}] * "./a": {"browser":{"require":"./a.js"}}, * "./b": {"browser":"./b.js"}, * "./c": {"require":{"browser":"./c.js"}} * } * ``` * * would return: * ```js * [ * ['import','types'], * ['import'], * ['require'], * ['browser'], * ['browser', 'require'], * ] * ``` * * With the `['require', 'browser']` condition set omitted, as it is already * covered by `['browser', 'require']`. * * Condition ordering is arbitrary and not guaranteed to be consistent. */ export const getUniqueConditionSets = ( importsExports: Imports | Exports ): string[][] => { const list = getConditionalValuesList(importsExports) let results: string[][] = [] for (const [_, conditions] of list) { if (!results.some(arr => arrayIsEquivalent(arr, conditions))) { results.push([...conditions]) } } return results } const arrayIsEquivalent = (arr: string[], sup: Set) => { if (arr.length !== sup.size) return false for (const c of arr) { if (!sup.has(c)) return false } return true } isaacs-resolve-import-9b54ade/src/index.ts000066400000000000000000000021661464306454200207240ustar00rootroot00000000000000export * from './get-all-conditional-values.js' export * from './get-all-conditions.js' export * from './get-unique-condition-sets.js' export * from './is-relative-require.js' export * from './resolve-all-exports.js' export * from './resolve-all-local-imports.js' export * from './resolve-conditional-value.js' export * from './resolve-import.js' export interface ResolveImportOpts { /** * Used when resolves take multiple steps through dependencies. * * @internal */ originalParent?: string /** * List of conditions to resolve. Defaults to ['import', 'node']. * * If set to ['require', 'node'], then this is functionally equivalent to * `require.resolve()`. * * 'default' is always allowed. */ conditions?: string[] } export type ConditionalValueObject = { [k: string]: ConditionalValue } export type ConditionalValue = | null | string | ConditionalValueObject | ConditionalValue[] export type ExportsSubpaths = { [path: string]: ConditionalValue } export type Exports = Exclude | ExportsSubpaths export type Imports = { [path: string]: ConditionalValue } isaacs-resolve-import-9b54ade/src/is-relative-require.ts000066400000000000000000000003451464306454200235100ustar00rootroot00000000000000/** * Exported as `'resolve-import/is-relative-require'` * @module */ import { isWindows } from './is-windows.js' export const isRelativeRequire = (url: string) => /^\.\.?\//.test(url) || (isWindows && /^\.\.?\\/.test(url)) isaacs-resolve-import-9b54ade/src/is-windows.ts000066400000000000000000000001421464306454200217100ustar00rootroot00000000000000export const isWindows = typeof process === 'object' && process && process.platform === 'win32' isaacs-resolve-import-9b54ade/src/read-json.ts000066400000000000000000000002631464306454200214730ustar00rootroot00000000000000import { readFile } from 'node:fs/promises' export const readJSON = async (f: string): Promise => readFile(f, 'utf8') .then(d => JSON.parse(d)) .catch(() => null) isaacs-resolve-import-9b54ade/src/read-pkg.ts000066400000000000000000000020361464306454200213030ustar00rootroot00000000000000import { Exports, Imports } from './index.js' import { readJSON } from './read-json.js' export type Pkg = { name?: string main?: string type?: string module?: string exports?: Exports imports?: Imports } const isExports = (e: any): e is Exports => !!e && (typeof e === 'object' || typeof e === 'string') const isImports = (e: any): e is Exports => { if (!e || typeof e !== 'object' || Array.isArray(e)) return false for (const p in e) { if (!p.startsWith('#')) return false } return true } const isPkg = (o: any): o is Pkg => !!o && typeof o === 'object' && (typeof o.name === 'string' || typeof o.name === 'undefined') && (typeof o.main === 'string' || typeof o.main === 'undefined') && (typeof o.module === 'string' || typeof o.module === 'undefined') && (typeof o.exports === 'undefined' || isExports(o.exports)) && (typeof o.imports === 'undefined' || isImports(o.imports)) export const readPkg = async (f: string): Promise => { const pj = await readJSON(f) return isPkg(pj) ? pj : null } isaacs-resolve-import-9b54ade/src/resolve-all-exports.ts000066400000000000000000000044051464306454200235420ustar00rootroot00000000000000/** * Exported as `'resolve-import/resolve-all-exports'` * @module */ import { dirname, resolve } from 'path' import { pathToFileURL } from 'url' import { invalidPackage } from './errors.js' import { getNamedExportsList } from './get-named-exports-list.js' import { Exports, ResolveImportOpts } from './index.js' import { readPkg } from './read-pkg.js' import { resolveExport } from './resolve-export.js' import { starGlob } from './star-glob.js' import { toPath } from './to-path.js' /** * Given a path or file URL to a package.json file, return an object where each * possible export path is mapped to the file URL that it would resolve to. * * Invalid exports are omitted. No errors are raised as long as the file is a * valid `package.json`. * * Note: in cases like `"./x/*": "./file.js"`, where the list of possible * import paths is unbounded, the returned object will contain `"./x/*"` as the * key, since there's no way to expand that to every possible match. */ export const resolveAllExports = async ( packageJsonPath: string | URL, options: ResolveImportOpts = {} ): Promise> => { const pjPath = toPath(packageJsonPath) const pjDir = dirname(pjPath) const pkg = await readPkg(pjPath) if (!pkg) { throw invalidPackage(packageJsonPath, resolveAllExports) } const results: Record = {} const { exports } = pkg for (const sub of getNamedExportsList(exports)) { let res // this can't shouldn't be able to actually throw, because we're // pulling the list from the set itself. /* c8 ignore start */ try { res = resolveExport(sub, exports as Exports, pjPath, pjPath, options) } catch {} if (!res) continue /* c8 ignore stop */ // if it contains a *, then we have to glob, // in package.json exports * is actually **, but only // relevant if there is exactly ONE star const sres = res.split('*') const ssub = sub.split('*') if (sres.length === 2 && ssub.length === 2) { for (const [rep, target] of await starGlob( sres as [string, string], pjDir )) { results[ssub[0] + rep + ssub[1]] = pathToFileURL(target) } } else { results[sub] = pathToFileURL(resolve(pjDir, res)) } } return results } isaacs-resolve-import-9b54ade/src/resolve-all-local-imports.ts000066400000000000000000000102241464306454200246170ustar00rootroot00000000000000/** * Exported as `'resolve-import/resolve-all-local-imports'` * @module */ import { dirname, resolve } from 'path' import { pathToFileURL } from 'url' import { invalidPackage } from './errors.js' import { fileExists } from './file-exists.js' import { findDepPackage } from './find-dep-package.js' import { ResolveImportOpts } from './index.js' import { Pkg, readPkg } from './read-pkg.js' import { resolveAllExports } from './resolve-all-exports.js' import { resolveConditionalValue } from './resolve-conditional-value.js' import { resolveImport } from './resolve-import.js' import { starGlob } from './star-glob.js' import { toFileURL } from './to-file-url.js' import { toPath } from './to-path.js' /** * Given a path or file URL to a package.json file, return an object where each * possible local import path is mapped to the file URL that it would resolve * to. * * Invalid and non-resolving imports are omitted. */ export const resolveAllLocalImports = async ( packageJsonPath: string | URL, options: ResolveImportOpts = {} ): Promise> => { const pjPath = toPath(packageJsonPath) const pjDir = dirname(pjPath) const pjURL = toFileURL(packageJsonPath) const pkg = await readPkg(pjPath) if (!pkg) { throw invalidPackage(packageJsonPath, resolveAllLocalImports) } const results: Record = {} for (const [sub, target] of getNamedImportsList(pkg, options)) { // if the import is local, then look it up // if it's another package, then look up that package // if it's another package with a *, then look up all exports // of that package, and filter by the matches. const parts = target.match(/^(@[^\/]+\/[^\/]+|[^\/]+)/) // make internal package named modules consistently `./` const name = pkg.name // non-matches already filtered out /* c8 ignore start */ if (!parts) continue /* c8 ignore stop */ const ssub = sub.split('*') const starget = target.split('*') as [string, string] const star = ssub.length === 2 && starget.length === 2 if (!star) { // simple case, no * replacement // if not found, just omit it. // do a full resolve, because the target can be anything like // './foo/bar' or 'dep/blah', etc. try { results[sub] = await resolveImport(target, pjURL) } catch {} continue } // has a star, have to glob if it's localPath, or look up exports if not const localPath = parts[1] === '.' if (localPath) { for (const [rep, target] of await starGlob(starget, pjDir)) { results[ssub[0] + rep + ssub[1]] = pathToFileURL(target) } continue } const localName = parts[1] === name const dep = !localPath && !localName ? parts[1] : null // if we can't find the package, it's not valid. const ppath = dep ? await findDepPackage(dep, pjDir) : pjDir if (!ppath) continue const pj = resolve(ppath, 'package.json') if (!(await fileExists(pj))) { continue } const allExports = await resolveAllExports(pj) for (const [k, v] of Object.entries(allExports)) { if (k === '.' || k === './') continue const i = dep + k.substring(1) if (i.startsWith(starget[0]) && i.endsWith(starget[1])) { const s = ssub[0] + i.substring(starget[0].length, i.length - starget[1].length) + ssub[1] // should be impossible to throw, because we're pulling the list // from the package itself, and it gets resolved at that point. /* c8 ignore start */ try { results[s] = await resolveImport(v, pjURL) } catch {} /* c8 ignore stop */ } } } return results } /** * Get the condition-resolved targets of all imports * * Stars are not expanded. */ const getNamedImportsList = ( pkg: Pkg, options: ResolveImportOpts ): [string, string][] => { const results: [string, string][] = [] const { imports } = pkg if (!imports || typeof imports !== 'object') return results for (const [k, v] of Object.entries(imports)) { const r = resolveConditionalValue(v, options) if (r && !r.startsWith('#')) results.push([k, r]) } return results } isaacs-resolve-import-9b54ade/src/resolve-conditional-value.ts000066400000000000000000000015011464306454200246770ustar00rootroot00000000000000/** * Exported as `'resolve-import/resolve-conditional-value'` * @module */ import { ConditionalValue, ResolveImportOpts } from './index.js' /** * find the first match for string, import, node, or default * at this point, we know we're on the right subpath already */ export const resolveConditionalValue = ( exp: ConditionalValue, options: ResolveImportOpts ): string | null => { const { conditions = ['import', 'node'] } = options if (exp === null || typeof exp === 'string') return exp if (Array.isArray(exp)) { for (const e of exp) { const r = resolveConditionalValue(e, options) if (r) return r } return null } for (const [k, v] of Object.entries(exp)) { if (conditions.includes(k) || k === 'default') { return resolveConditionalValue(v, options) } } return null } isaacs-resolve-import-9b54ade/src/resolve-dependency-export.ts000066400000000000000000000051151464306454200247240ustar00rootroot00000000000000import { resolve } from 'path' import { pathToFileURL } from 'url' import { moduleNotFound, packageNotFound } from './errors.js' import { fileExists } from './file-exists.js' import { findDepPackage } from './find-dep-package.js' import { ResolveImportOpts } from './index.js' import { readPkg } from './read-pkg.js' import { resolveExport } from './resolve-export.js' /** * Resolve a dependency like '@dep/name/sub/module' where * '@dep/name' is in node_modules somewhere and exports './sub/module' */ export const resolveDependencyExports = async ( url: string | null, parentPath: string, options: ResolveImportOpts & { originalParent: string } ): Promise => { const { originalParent } = options const parts = url?.match(/^(@[^\/]+\/[^\/]+|[^\/]+)(?:\/(.*))?$/) const [, pkgName, sub] = url === null ? [, null, ''] : parts || ['', '', ''] const ppath = await findDepPackage(pkgName, parentPath) if (!ppath) { throw packageNotFound(pkgName, originalParent) } const indexjs = resolve(ppath, 'index.js') const pj = resolve(ppath, 'package.json') const pkg = await readPkg(pj) const subpath = sub ? resolve(ppath, sub) : false // if not a package, then the sub can still be a direct path // if no sub, then resolves to index.js if available. if (!pkg) { if (!subpath) { // try index.js, otherwise fail if (await fileExists(indexjs)) return pathToFileURL(indexjs) else throw packageNotFound(ppath, originalParent) } else { if (await fileExists(subpath)) { return pathToFileURL(subpath) } else throw moduleNotFound(subpath, originalParent) } } // ok, have a package, look up the export if present. // otherwise, use main, otherwise index.js if (pkg.exports) { const subPath = resolveExport( sub, pkg.exports, pj, originalParent, options ) const resolved = resolve(ppath, subPath) if (await fileExists(resolved)) return pathToFileURL(resolved) else throw moduleNotFound(resolved, originalParent) } else if (subpath) { if (await fileExists(subpath)) return pathToFileURL(subpath) else throw moduleNotFound(subpath, originalParent) } else if (pkg.main) { // fall back to index.js if main is missing const rmain = resolve(ppath, pkg.main) if (await fileExists(rmain)) return pathToFileURL(rmain) else if (await fileExists(indexjs)) return pathToFileURL(indexjs) else throw packageNotFound(ppath, originalParent) } else if (await fileExists(indexjs)) { return pathToFileURL(indexjs) } else { throw packageNotFound(ppath, originalParent) } } isaacs-resolve-import-9b54ade/src/resolve-export.ts000066400000000000000000000032511464306454200226070ustar00rootroot00000000000000import { subpathNotExported } from './errors.js' import { findStarMatch } from './find-star-match.js' import { ConditionalValue, Exports, ExportsSubpaths, ResolveImportOpts, } from './index.js' import { resolveConditionalValue } from './resolve-conditional-value.js' /** * Resolve an export that might be a string, subpath exports, exports value * object, or array of strings and exports value objects */ export const resolveExport = ( sub: string, exp: Exports, pj: string, from: string, options: ResolveImportOpts ): string => { const s = !sub ? '.' : sub === '.' || sub.startsWith('./') ? sub : `./${sub}` if (typeof exp === 'string' || Array.isArray(exp)) { const res = s === '.' && resolveConditionalValue(exp, options) if (!res) throw subpathNotExported(s, pj, from) return res } // now it must be a set of named exports or an export value object // first try to resolve as a value object, if that's allowed if (s === '.') { const res = resolveConditionalValue(exp, options) if (res) return res } // otherwise the only way to match is with subpaths const es = exp as ExportsSubpaths // if we have an exact match, use that const e = es[s] if (e !== undefined) { const res = resolveConditionalValue(e, options) if (!res) throw subpathNotExported(s, pj, from) return res } const sm = findStarMatch(s, es) if (sm) { const [key, mid] = sm const res = resolveConditionalValue( es[key] as ConditionalValue, options ) if (!res) throw subpathNotExported(s, pj, from) return res.replace(/\*/g, mid) } // did not find a match throw subpathNotExported(s, pj, from) } isaacs-resolve-import-9b54ade/src/resolve-import.ts000066400000000000000000000070721464306454200226050ustar00rootroot00000000000000/** * Exported as `'resolve-import/resolve-import'` * @module */ import { realpath } from 'fs/promises' import Module from 'module' import { basename, dirname, isAbsolute, resolve } from 'path' import { fileURLToPath, pathToFileURL } from 'url' import { moduleNotFound, relativeImportWithoutParentURL, } from './errors.js' import { fileExists } from './file-exists.js' import { ResolveImportOpts } from './index.js' import { isRelativeRequire } from './is-relative-require.js' import { resolveDependencyExports } from './resolve-dependency-export.js' import { resolvePackageImport } from './resolve-package-import.js' import { toFileURL } from './to-file-url.js' import { toPath } from './to-path.js' // affordance for node 16 <16.17 and 18 <18.9 /* c8 ignore start */ if (typeof Module.isBuiltin !== 'function') { Module.isBuiltin = (moduleName: string) => { if (moduleName.startsWith('node:')) { moduleName = moduleName.substring('node:'.length) } return Module.builtinModules.includes(moduleName) } } /* c8 ignore stop */ // It's pretty common to resolve against, eg, cwd + '/x', since we might not // know the actual file that it's being loaded from, and want to resolve what // a dep WOULD be from a given path. This allows us to realpath that directory, // without requiring that the file exist. const realpathParentDir = async (path: string | URL) => { path = toPath(path) return resolve(await realpath(dirname(path)), basename(path)) } /** * Resolve an import URL or string as if it were coming from the * module at parentURL. * * Returns a string for node builtin modules, and a file:// URL * object for anything resolved on disk. * * If the resolution is impossible, then an error will be raised, which * closely matches the errors raised by Node when failing for the same * reason. */ export const resolveImport = async ( /** the thing being imported */ url: string | URL, /** * the place the import() would be coming from. Required for relative * imports. */ parentURL: string | URL | undefined = undefined, options: ResolveImportOpts = {} ): Promise => { // already resolved, just check that it exists if (typeof url === 'string' && url.startsWith('file://')) { url = new URL(url) } if (typeof url === 'object') { if (!(await fileExists(url))) { throw moduleNotFound(String(url), String(parentURL)) } const rp = await realpath(toPath(url)) return rp !== fileURLToPath(url) ? pathToFileURL(rp) : url } const pu = parentURL ? toFileURL(await realpathParentDir(parentURL)) : undefined if (isRelativeRequire(url)) { if (!pu) { throw relativeImportWithoutParentURL(url, parentURL) } const u = new URL(url, pu) if (!(await fileExists(u))) { throw moduleNotFound(url, String(parentURL)) } return pathToFileURL(await realpath(new URL(url, pu))) } if (isAbsolute(url)) { if (!(await fileExists(url))) { throw moduleNotFound(url, String(parentURL)) } return pathToFileURL(await realpath(url)) } if (Module.isBuiltin(String(url))) { return String(url) } // ok, we have to resolve it. some kind of bare dep import, // either a package name resolving to module or main, or a named export. const parentPath: string = toPath( parentURL || resolve(await realpath(process.cwd()), 'x') ) const opts = { ...options, originalParent: String(options.originalParent || parentPath), } if (url) { return resolvePackageImport(url, parentPath, opts) } else { return resolveDependencyExports(url, parentPath, opts) } } isaacs-resolve-import-9b54ade/src/resolve-package-import.ts000066400000000000000000000062551464306454200242000ustar00rootroot00000000000000import { dirname, resolve } from 'path' import { pathToFileURL } from 'url' import { walkUp } from 'walk-up-path' import { invalidImportSpecifier, moduleNotFound, packageImportNotDefined, } from './errors.js' import { fileExists } from './file-exists.js' import { findStarMatch } from './find-star-match.js' import { ConditionalValue, ResolveImportOpts } from './index.js' import { readPkg } from './read-pkg.js' import { resolveConditionalValue } from './resolve-conditional-value.js' import { resolveDependencyExports } from './resolve-dependency-export.js' import { resolveExport } from './resolve-export.js' import { resolveImport } from './resolve-import.js' /** * Resolve an import like '@package/name/sub/module', where * './sub/module' appears in the exports of the local package. */ export const resolvePackageImport = async ( url: string, parentPath: string, options: ResolveImportOpts & { originalParent: string } ): Promise => { const { originalParent } = options const parts = url.match(/^(@[^\/]+\/[^\/]+|[^\/]+)(?:\/(.*))?$/) as | null | (RegExpMatchArray & [string, string, string]) // impossible /* c8 ignore start */ if (!parts) throw invalidImportSpecifier(url) /* c8 ignore stop */ for (const dir of walkUp(dirname(parentPath))) { const pj = resolve(dir, 'package.json') const pkg = await readPkg(pj) if (!pkg) continue if (pkg.name && pkg.exports) { // can import from this package name if exports is defined const [, pkgName, sub] = parts if (pkgName === pkg.name) { // ok, see if sub is a valid export then const subPath = resolveExport( sub, pkg.exports, pj, originalParent, options ) const resolved = resolve(dir, subPath) if (await fileExists(resolved)) return pathToFileURL(resolved) else throw moduleNotFound(resolved, originalParent) } } if (url.startsWith('#')) { if (!pkg.imports) { throw packageImportNotDefined(url, pj, originalParent) } const exact = pkg.imports[url] if (exact !== undefined) { const res = resolveConditionalValue(exact, options) if (!res) { throw packageImportNotDefined(url, pj, originalParent) } // kind of weird behavior, but it's what node does if (res.startsWith('#')) { return resolveDependencyExports(null, parentPath, options) } return resolveImport(res, pj, options) } const sm = findStarMatch(url, pkg.imports) if (!sm) { throw packageImportNotDefined(url, pj, originalParent) } const [key, mid] = sm const match = pkg.imports[key] as ConditionalValue const res = resolveConditionalValue(match, options) if (!res) { throw packageImportNotDefined(url, pj, originalParent) } if (res.startsWith('#')) { return resolveDependencyExports(null, parentPath, options) } const expand = res.replace(/\*/g, mid) // start over with the resolved import return resolveImport(expand, pj, options) } break } return resolveDependencyExports(url, parentPath, options) } isaacs-resolve-import-9b54ade/src/star-glob.ts000066400000000000000000000012401464306454200214770ustar00rootroot00000000000000import { escape, glob } from 'glob' import { resolve } from 'path' export const starGlob = async ( star: [string, string], // actually [string,string] dir: string ): Promise<[string, string][]> => { const pattern = escape(star[0]) + (star[0].endsWith('/') ? '' : '*/') + '**' + (star[1].startsWith('/') ? '' : '/*') + escape(star[1]) const matches = await glob(pattern, { posix: true, absolute: false, nodir: true, cwd: dir, dotRelative: true, }) return matches.map(match => { const rep = match.substring( star[0].length, match.length - star[1].length ) return [rep, resolve(dir, match)] }) } isaacs-resolve-import-9b54ade/src/to-file-url.ts000066400000000000000000000002761464306454200217540ustar00rootroot00000000000000import { pathToFileURL } from 'url' export const toFileURL = (p: string | URL): URL => typeof p === 'object' ? p : p.startsWith('file://') ? new URL(p) : pathToFileURL(p) isaacs-resolve-import-9b54ade/src/to-path.ts000066400000000000000000000002421464306454200211620ustar00rootroot00000000000000import { fileURLToPath } from 'url' export const toPath = (p: string | URL): string => typeof p === 'object' || p.startsWith('file://') ? fileURLToPath(p) : p isaacs-resolve-import-9b54ade/tap-snapshots/000077500000000000000000000000001464306454200212555ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/tap-snapshots/test/000077500000000000000000000000001464306454200222345ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/tap-snapshots/test/conditions.ts.test.cjs000066400000000000000000000012251464306454200265110ustar00rootroot00000000000000/* IMPORTANT * This snapshot file is auto-generated, but designed for humans. * It should be checked into source control and tracked carefully. * Re-generate by setting TAP_SNAPSHOT=1 and running tests. * Make sure to inspect the output below. Do not ignore changes! */ 'use strict' exports[`test/conditions.ts > TAP > resolve import types > must match snapshot 1`] = ` file://{CWD}/dist/esm/index.d.ts ` exports[`test/conditions.ts > TAP > resolve require > must match snapshot 1`] = ` file://{CWD}/dist/commonjs/index.js ` exports[`test/conditions.ts > TAP > resolve require types > must match snapshot 1`] = ` file://{CWD}/dist/commonjs/index.d.ts ` isaacs-resolve-import-9b54ade/tap-snapshots/test/errors.ts.test.cjs000066400000000000000000000030611464306454200256540ustar00rootroot00000000000000/* IMPORTANT * This snapshot file is auto-generated, but designed for humans. * It should be checked into source control and tracked carefully. * Re-generate by setting TAP_SNAPSHOT=1 and running tests. * Make sure to inspect the output below. Do not ignore changes! */ 'use strict' exports[`test/errors.ts > TAP > must match snapshot 1`] = ` Error: invalid import() specifier: some invalid url ` exports[`test/errors.ts > TAP > must match snapshot 2`] = ` Error: Not a valid package: /some/package.json ` exports[`test/errors.ts > TAP > must match snapshot 3`] = ` Error: Cannot find module '/path/to/module' imported from /from { "code": "ERR_MODULE_NOT_FOUND", } ` exports[`test/errors.ts > TAP > must match snapshot 4`] = ` Error: Package import specifier "./a" is not defined in package /x/package.json imported from /from { "code": "ERR_PACKAGE_IMPORT_NOT_DEFINED", } ` exports[`test/errors.ts > TAP > must match snapshot 5`] = ` Error: Cannot find package '@some/pkg' imported from /from { "code": "ERR_MODULE_NOT_FOUND", } ` exports[`test/errors.ts > TAP > must match snapshot 6`] = ` Error: relative import without parentURL { "parentURL": null, "url": "../foo", } ` exports[`test/errors.ts > TAP > must match snapshot 7`] = ` Error: No "exports" main defined in /x/package.json imported from /from { "code": "ERR_PACKAGE_PATH_NOT_EXPORTED", } ` exports[`test/errors.ts > TAP > must match snapshot 8`] = ` Error: Package subpath './x' is not defined by "exports" in /x/package.json imported from /from { "code": "ERR_PACKAGE_PATH_NOT_EXPORTED", } ` isaacs-resolve-import-9b54ade/tap-snapshots/test/get-all-conditional-values.ts.test.cjs000066400000000000000000000037331464306454200314710ustar00rootroot00000000000000/* IMPORTANT * This snapshot file is auto-generated, but designed for humans. * It should be checked into source control and tracked carefully. * Re-generate by setting TAP_SNAPSHOT=1 and running tests. * Make sure to inspect the output below. Do not ignore changes! */ 'use strict' exports[`test/get-all-conditional-values.ts > TAP > valid values > [{"import":{"node":"x"}},{"node":{"import":"y"}}] > must match snapshot 1`] = ` Array [ Array [ ".", Set { "import", "node", }, "x", ], ] ` exports[`test/get-all-conditional-values.ts > TAP > valid values > {"./x":{"import":"./x.js"},"./y":"./y.js"} > must match snapshot 1`] = ` Array [ Array [ "./x", Set { "import", }, "./x.js", ], Array [ "./y", Set {}, "./y.js", ], ] ` exports[`test/get-all-conditional-values.ts > TAP > valid values > {"import":{"node":"x"},"node":{"import":"y"}} > must match snapshot 1`] = ` Array [ Array [ ".", Set { "import", "node", }, "x", ], ] ` exports[`test/get-all-conditional-values.ts > TAP > valid values > {"import":{"node":[{"z":"z"},"x"]},"node":{"import":"y"}} > must match snapshot 1`] = ` Array [ Array [ ".", Set { "import", "node", "z", }, "z", ], Array [ ".", Set { "import", "node", }, "x", ], ] ` exports[`test/get-all-conditional-values.ts > TAP > valid values > {"import":{"node":{"default":"x"}},"node":{"import":"y"}} > must match snapshot 1`] = ` Array [ Array [ ".", Set { "import", "node", }, "x", ], ] ` exports[`test/get-all-conditional-values.ts > TAP > valid values > {"import":null,"node":[{"require":"x"},{"import":"y"},"z"]} > must match snapshot 1`] = ` Array [ Array [ ".", Set { "import", }, null, ], Array [ ".", Set { "node", "require", }, "x", ], Array [ ".", Set { "node", }, "z", ], ] ` isaacs-resolve-import-9b54ade/tap-snapshots/test/index.ts.test.cjs000066400000000000000000000026261464306454200254550ustar00rootroot00000000000000/* IMPORTANT * This snapshot file is auto-generated, but designed for humans. * It should be checked into source control and tracked carefully. * Re-generate by setting TAP_SNAPSHOT=1 and running tests. * Make sure to inspect the output below. Do not ignore changes! */ 'use strict' exports[`test/index.ts > TAP > more custom internal imports > #failing-conditional => null > must match snapshot 1`] = ` ERR_PACKAGE_IMPORT_NOT_DEFINED ` exports[`test/index.ts > TAP > more custom internal imports > #failing-starmatch => null > must match snapshot 1`] = ` ERR_PACKAGE_IMPORT_NOT_DEFINED ` exports[`test/index.ts > TAP > more custom internal imports > #invalid => null > must match snapshot 1`] = ` ERR_MODULE_NOT_FOUND ` exports[`test/index.ts > TAP > more custom internal imports > #invalid-star-expand => null > must match snapshot 1`] = ` ERR_MODULE_NOT_FOUND ` exports[`test/index.ts > TAP > more custom internal imports > #not-found => null > must match snapshot 1`] = ` ERR_PACKAGE_IMPORT_NOT_DEFINED ` exports[`test/index.ts > TAP > more custom internal imports > #null => null > must match snapshot 1`] = ` ERR_PACKAGE_IMPORT_NOT_DEFINED ` exports[`test/index.ts > TAP > more custom internal imports > #starreplace => null > must match snapshot 1`] = ` ERR_PACKAGE_IMPORT_NOT_DEFINED ` exports[`test/index.ts > TAP > more custom internal imports > => null > must match snapshot 1`] = ` ERR_MODULE_NOT_FOUND ` isaacs-resolve-import-9b54ade/tap-snapshots/test/resolve-all.ts.test.cjs000066400000000000000000000033131464306454200265650ustar00rootroot00000000000000/* IMPORTANT * This snapshot file is auto-generated, but designed for humans. * It should be checked into source control and tracked carefully. * Re-generate by setting TAP_SNAPSHOT=1 and running tests. * Make sure to inspect the output below. Do not ignore changes! */ 'use strict' exports[`test/resolve-all.ts > TAP > if exports is only one path, return "." only > must match snapshot 1`] = ` { ".": "file://{CWD}/test/fixtures/resolve-all/default.js" } ` exports[`test/resolve-all.ts > TAP > if exports is only one path, return "." only > must match snapshot 2`] = ` { ".": "file://{CWD}/test/fixtures/resolve-all/default.js" } ` exports[`test/resolve-all.ts > TAP > resolveAllExports > must match snapshot 1`] = ` { ".": "file://{CWD}/test/fixtures/resolve-all/default.js", "./blah/*": "file://{CWD}/test/fixtures/resolve-all/default.js", "./deep/a/b/c/d/y/x.js": "file://{CWD}/test/fixtures/resolve-all/deep/a/b/c/d/y.js", "./deep/a/b/c/d/y/y.js": "file://{CWD}/test/fixtures/resolve-all/deep/a/b/c/d/y.js", "./deep/a/b/c/d/z.js": "file://{CWD}/test/fixtures/resolve-all/deep/a/b/c/d/y.js" } ` exports[`test/resolve-all.ts > TAP > resolveAllLocalImports > must match snapshot 1`] = ` { "#module": "node:fs", "#g": "file://{CWD}/test/fixtures/resolve-all/node_modules/glob/dist/mjs/index.js", "#y/package.json": "file://{CWD}/node_modules/yaml/package.json", "#y/util": "file://{CWD}/node_modules/yaml/dist/util.js", "#u/ti/l": "file://{CWD}/node_modules/yaml/dist/util.js", "#localpath": "file://{CWD}/test/fixtures/resolve-all/default.js", "#localpath/a/b/c/d/y": "file://{CWD}/test/fixtures/resolve-all/deep/a/b/c/d/y.js", "#localname": "file://{CWD}/test/fixtures/resolve-all/default.js" } ` isaacs-resolve-import-9b54ade/test/000077500000000000000000000000001464306454200174305ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/conditions.ts000066400000000000000000000011511464306454200221470ustar00rootroot00000000000000import t from 'tap' import { resolveImport } from '../dist/esm/index.js' t.formatSnapshot = (v: URL) => String(v) t.test('resolve import types', async t => t.matchSnapshot( await resolveImport('resolve-import', undefined, { conditions: ['import', 'types'], }) ) ) t.test('resolve require', async t => t.matchSnapshot( await resolveImport('resolve-import', undefined, { conditions: ['require', 'node'], }) ) ) t.test('resolve require types', async t => t.matchSnapshot( await resolveImport('resolve-import', undefined, { conditions: ['require', 'types'], }) ) ) isaacs-resolve-import-9b54ade/test/errors.ts000066400000000000000000000013371464306454200213200ustar00rootroot00000000000000import t from 'tap' import { invalidImportSpecifier, invalidPackage, moduleNotFound, packageImportNotDefined, packageNotFound, relativeImportWithoutParentURL, subpathNotExported, } from '../dist/esm/errors.js' t.matchSnapshot(invalidImportSpecifier('some invalid url')) t.matchSnapshot(invalidPackage('/some/package.json')) t.matchSnapshot(moduleNotFound('/path/to/module', '/from')) t.matchSnapshot(packageImportNotDefined('./a', '/x/package.json', '/from')) t.matchSnapshot(packageNotFound('@some/pkg', '/from')) t.matchSnapshot(relativeImportWithoutParentURL('../foo', null)) t.matchSnapshot(subpathNotExported('.', '/x/package.json', '/from')) t.matchSnapshot(subpathNotExported('./x', '/x/package.json', '/from')) isaacs-resolve-import-9b54ade/test/fixtures/000077500000000000000000000000001464306454200213015ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/Makefile000066400000000000000000000000121464306454200227320ustar00rootroot00000000000000all: tsc isaacs-resolve-import-9b54ade/test/fixtures/foo-bar.js000066400000000000000000000000261464306454200231620ustar00rootroot00000000000000console.log('foobar') isaacs-resolve-import-9b54ade/test/fixtures/multi-x-star-x.js000066400000000000000000000000621464306454200244500ustar00rootroot00000000000000console.log(require('path').basename(__filename)) isaacs-resolve-import-9b54ade/test/fixtures/node_modules/000077500000000000000000000000001464306454200237565ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/empty-pj-no-main-no-index/000077500000000000000000000000001464306454200305765ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/empty-pj-no-main-no-index/package.json000066400000000000000000000000031464306454200330550ustar00rootroot00000000000000{} isaacs-resolve-import-9b54ade/test/fixtures/node_modules/empty-pj-no-main-no-index/sub.js000066400000000000000000000000341464306454200317220ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/empty/000077500000000000000000000000001464306454200251145ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/empty/sub.js000066400000000000000000000000341464306454200262400ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main-missing-type-module/000077500000000000000000000000001464306454200330675ustar00rootroot00000000000000index.js000066400000000000000000000000461464306454200344550ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main-missing-type-moduleexport const whoami = import.meta.url main.js000066400000000000000000000000461464306454200342720ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main-missing-type-moduleexport const whoami = import.meta.url package.json000066400000000000000000000000531464306454200352740ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main-missing-type-module{ "type": "module", "main": "missing.js" } sub.js000066400000000000000000000000461464306454200341370ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main-missing-type-moduleexport const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main-missing/000077500000000000000000000000001464306454200306255ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main-missing/index.js000066400000000000000000000000341464306454200322670ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main-missing/main.js000066400000000000000000000000341464306454200321040ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main-missing/package.json000066400000000000000000000000311464306454200331050ustar00rootroot00000000000000{ "main": "missing.js" } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main-missing/sub.js000066400000000000000000000000341464306454200317510ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main-type-module/000077500000000000000000000000001464306454200314205ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main-type-module/index.js000066400000000000000000000000461464306454200330650ustar00rootroot00000000000000export const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main-type-module/main.js000066400000000000000000000000461464306454200327020ustar00rootroot00000000000000export const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main-type-module/package.json000066400000000000000000000000501464306454200337010ustar00rootroot00000000000000{ "type": "module", "main": "main.js" } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main-type-module/sub.js000066400000000000000000000000461464306454200325470ustar00rootroot00000000000000export const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main/000077500000000000000000000000001464306454200271565ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main/index.js000066400000000000000000000000341464306454200306200ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main/main.js000066400000000000000000000000341464306454200304350ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main/package.json000066400000000000000000000000261464306454200314420ustar00rootroot00000000000000{ "main": "main.js" } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-main/sub.js000066400000000000000000000000341464306454200303020ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-module/000077500000000000000000000000001464306454200275175ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-module/index.js000066400000000000000000000000341464306454200311610ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-module/main.js000066400000000000000000000000341464306454200307760ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-module/package.json000066400000000000000000000000301464306454200317760ustar00rootroot00000000000000{ "module": "main.js" } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-module/sub.js000066400000000000000000000000341464306454200306430ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-type-module/000077500000000000000000000000001464306454200304765ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-type-module/index.js000066400000000000000000000000461464306454200321430ustar00rootroot00000000000000export const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-type-module/main.js000066400000000000000000000000461464306454200317600ustar00rootroot00000000000000export const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-type-module/package.json000066400000000000000000000000271464306454200327630ustar00rootroot00000000000000{ "type": "module" } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj-type-module/sub.js000066400000000000000000000000461464306454200316250ustar00rootroot00000000000000export const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj/000077500000000000000000000000001464306454200262345ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj/index.js000066400000000000000000000000341464306454200276760ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj/main.js000066400000000000000000000000341464306454200275130ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj/package.json000066400000000000000000000000031464306454200305130ustar00rootroot00000000000000{} isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-and-pj/sub.js000066400000000000000000000000341464306454200273600ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-no-pj/000077500000000000000000000000001464306454200261065ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-no-pj/index.js000066400000000000000000000000341464306454200275500ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-no-pj/main.js000066400000000000000000000000341464306454200273650ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/index-no-pj/sub.js000066400000000000000000000000341464306454200272320ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/no-index-and-pj-main-missing-type-module/000077500000000000000000000000001464306454200335015ustar00rootroot00000000000000main.js000066400000000000000000000000461464306454200347040ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/no-index-and-pj-main-missing-type-moduleexport const whoami = import.meta.url package.json000066400000000000000000000000531464306454200357060ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/no-index-and-pj-main-missing-type-module{ "type": "module", "main": "missing.js" } sub.js000066400000000000000000000000461464306454200345510ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/no-index-and-pj-main-missing-type-moduleexport const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-multimatch/000077500000000000000000000000001464306454200313525ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-multimatch/index.js000066400000000000000000000000341464306454200330140ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-multimatch/main.js000066400000000000000000000000341464306454200326310ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-multimatch/package.json000066400000000000000000000005141464306454200336400ustar00rootroot00000000000000{ "exports": { ".": [ { "require": "./index.js" }, { "import": { "default": "./main.js" } }, "./missing.js" ], "./sub.js": [ { "import": "./sub.js" }, { "import": "./missing.js" }, "./missing.js" ] } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-multimatch/sub.js000066400000000000000000000000341464306454200324760ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-nested-no-sub-match/000077500000000000000000000000001464306454200327605ustar00rootroot00000000000000index.js000066400000000000000000000000341464306454200343430ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-nested-no-sub-matchexports.whoami = __filename main.js000066400000000000000000000000341464306454200341600ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-nested-no-sub-matchexports.whoami = __filename package.json000066400000000000000000000006011464306454200351640ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-nested-no-sub-match{ "exports": { ".": [ { "require": "./index.js" }, { "import": [ { "import": [ "./main.js" ] }, "./missing.js" ] }, "./foo.js" ], "./sub.js": [ { "require": "./sub.js" }, { "browser": "./sub.js" } ] } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-nested-no-sub-match/sub.js000066400000000000000000000000341464306454200341040ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-nested/000077500000000000000000000000001464306454200304655ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-nested/index.js000066400000000000000000000000341464306454200321270ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-nested/main.js000066400000000000000000000000341464306454200317440ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-nested/package.json000066400000000000000000000005471464306454200327610ustar00rootroot00000000000000{ "exports": { ".": [ { "require": "./index.js" }, { "import": [ { "import": [ "./main.js" ] }, "./missing.js" ] }, "./foo.js" ], "./sub.js": [ { "import": "./sub.js" }, "./missing.js" ] } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-nested/sub.js000066400000000000000000000000341464306454200316110ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-no-main-match/000077500000000000000000000000001464306454200316335ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-no-main-match/index.js000066400000000000000000000000341464306454200332750ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-no-main-match/main.js000066400000000000000000000000341464306454200331120ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-no-main-match/package.json000066400000000000000000000003441464306454200341220ustar00rootroot00000000000000{ "exports": { ".": [ { "require": "./index.js" }, { "browser": "./main.js" } ], "./sub.js": [ { "import": "./sub.js" }, "./missing.js" ] } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array-no-main-match/sub.js000066400000000000000000000000341464306454200327570ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array/000077500000000000000000000000001464306454200272055ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array/index.js000066400000000000000000000000341464306454200306470ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array/main.js000066400000000000000000000000341464306454200304640ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array/package.json000066400000000000000000000003071464306454200314730ustar00rootroot00000000000000{ "exports": { ".": [ { "require": "./index.js" }, "./main.js" ], "./sub.js": [ { "import": "./sub.js" }, "./missing.js" ] } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-array/sub.js000066400000000000000000000000341464306454200303310ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-bare-string-type-module/000077500000000000000000000000001464306454200325465ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-bare-string-type-module/index.js000066400000000000000000000000461464306454200342130ustar00rootroot00000000000000export const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-bare-string-type-module/main.js000066400000000000000000000000461464306454200340300ustar00rootroot00000000000000export const whoami = import.meta.url package.json000066400000000000000000000000611464306454200347520ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-bare-string-type-module{ "type": "module", "exports": "./main.js" } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-bare-string-type-module/sub.js000066400000000000000000000000461464306454200336750ustar00rootroot00000000000000export const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-bare-string/000077500000000000000000000000001464306454200303045ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-bare-string/index.js000066400000000000000000000000341464306454200317460ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-bare-string/main.js000066400000000000000000000000341464306454200315630ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-bare-string/package.json000066400000000000000000000000351464306454200325700ustar00rootroot00000000000000{ "exports": "./main.js" } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-bare-string/sub.js000066400000000000000000000000341464306454200314300ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-default-string/000077500000000000000000000000001464306454200310175ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-default-string/index.js000066400000000000000000000000341464306454200324610ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-default-string/main.js000066400000000000000000000000341464306454200322760ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-default-string/package.json000066400000000000000000000000621464306454200333030ustar00rootroot00000000000000{ "exports": { "default": "./main.js" } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-default-string/sub.js000066400000000000000000000000341464306454200321430ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-no-default/000077500000000000000000000000001464306454200301255ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-no-default/index.js000066400000000000000000000000341464306454200315670ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-no-default/main.js000066400000000000000000000000341464306454200314040ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-no-default/package.json000066400000000000000000000001641464306454200324140ustar00rootroot00000000000000{ "exports": { ".": { "blah": "./main.js" }, "./sub.js": { "blah": "./sub.js" } } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-no-default/sub.js000066400000000000000000000000341464306454200312510ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-default-type-module/000077500000000000000000000000001464306454200325255ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-default-type-module/index.js000066400000000000000000000000461464306454200341720ustar00rootroot00000000000000export const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-default-type-module/main.js000066400000000000000000000000461464306454200340070ustar00rootroot00000000000000export const whoami = import.meta.url package.json000066400000000000000000000003061464306454200347330ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-default-type-module{ "type": "module", "exports": { ".": { "import": { "default": "./main.js" } }, "./sub.js": { "import": { "default": "./sub.js" } } } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-default-type-module/sub.js000066400000000000000000000000461464306454200336540ustar00rootroot00000000000000export const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-default/000077500000000000000000000000001464306454200302635ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-default/index.js000066400000000000000000000000341464306454200317250ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-default/main.js000066400000000000000000000000341464306454200315420ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-default/package.json000066400000000000000000000002621464306454200325510ustar00rootroot00000000000000{ "exports": { ".": { "import": { "default": "./main.js" } }, "./sub.js": { "import": { "default": "./sub.js" } } } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-default/sub.js000066400000000000000000000000341464306454200314070ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-import-then-node/000077500000000000000000000000001464306454200320305ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-import-then-node/index.js000066400000000000000000000000341464306454200334720ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-import-then-node/main.js000066400000000000000000000000341464306454200333070ustar00rootroot00000000000000exports.whoami = __filename package.json000066400000000000000000000002621464306454200342370ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-import-then-node{ "exports": { ".": { "import": "./index.js", "node": "./main.js" }, "./sub.js": { "import": "./missing.js", "node": "./sub.js" } } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-import-then-node/sub.js000066400000000000000000000000341464306454200331540ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-nested/000077500000000000000000000000001464306454200301215ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-nested/index.js000066400000000000000000000000341464306454200315630ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-nested/main.js000066400000000000000000000000341464306454200314000ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-nested/package.json000066400000000000000000000003561464306454200324130ustar00rootroot00000000000000{ "exports": { ".": { "node": { "import": { "default": "./main.js" } } }, "./sub.js": { "import": { "default": { "node": "./sub.js" } } } } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-nested/sub.js000066400000000000000000000000341464306454200312450ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-node-then-import/000077500000000000000000000000001464306454200320305ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-node-then-import/index.js000066400000000000000000000000341464306454200334720ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-node-then-import/main.js000066400000000000000000000000341464306454200333070ustar00rootroot00000000000000exports.whoami = __filename package.json000066400000000000000000000002621464306454200342370ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-node-then-import{ "exports": { ".": { "node": "./main.js", "import": "./index.js" }, "./sub.js": { "node": "./sub.js", "import": "./missing.js" } } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-node-then-import/sub.js000066400000000000000000000000341464306454200331540ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-node/000077500000000000000000000000001464306454200275645ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-node/index.js000066400000000000000000000000341464306454200312260ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-node/main.js000066400000000000000000000000341464306454200310430ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-node/package.json000066400000000000000000000001641464306454200320530ustar00rootroot00000000000000{ "exports": { ".": { "node": "./main.js" }, "./sub.js": { "node": "./sub.js" } } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-node/sub.js000066400000000000000000000000341464306454200307100ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-require/000077500000000000000000000000001464306454200303135ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-require/index.js000066400000000000000000000000341464306454200317550ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-require/main.js000066400000000000000000000000341464306454200315720ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-require/package.json000066400000000000000000000001721464306454200326010ustar00rootroot00000000000000{ "exports": { ".": { "require": "./main.js" }, "./sub.js": { "require": "./sub.js" } } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-require/sub.js000066400000000000000000000000341464306454200314370ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-type-module-sub-missing/000077500000000000000000000000001464306454200333415ustar00rootroot00000000000000index.js000066400000000000000000000000461464306454200347270ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-type-module-sub-missingexport const whoami = import.meta.url main.js000066400000000000000000000000461464306454200345440ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-type-module-sub-missingexport const whoami = import.meta.url package.json000066400000000000000000000002201464306454200355420ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-type-module-sub-missing{ "type": "module", "exports": { ".": { "import": "./main.js" }, "./sub.js": { "import": "./missing.js" } } } sub.js000066400000000000000000000000461464306454200344110ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-type-module-sub-missingexport const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-type-module/000077500000000000000000000000001464306454200311035ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-type-module/index.js000066400000000000000000000000461464306454200325500ustar00rootroot00000000000000export const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-type-module/main.js000066400000000000000000000000461464306454200323650ustar00rootroot00000000000000export const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-type-module/package.json000066400000000000000000000002141464306454200333660ustar00rootroot00000000000000{ "type": "module", "exports": { ".": { "import": "./main.js" }, "./sub.js": { "import": "./sub.js" } } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj-type-module/sub.js000066400000000000000000000000461464306454200322320ustar00rootroot00000000000000export const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj/000077500000000000000000000000001464306454200266415ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj/index.js000066400000000000000000000000341464306454200303030ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj/main.js000066400000000000000000000000341464306454200301200ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj/package.json000066400000000000000000000001701464306454200311250ustar00rootroot00000000000000{ "exports": { ".": { "import": "./main.js" }, "./sub.js": { "import": "./sub.js" } } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-obj/sub.js000066400000000000000000000000341464306454200277650ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-star/000077500000000000000000000000001464306454200270405ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-star/index.js000066400000000000000000000000341464306454200305020ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-star/main.js000066400000000000000000000000341464306454200303170ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-star/package.json000066400000000000000000000002111464306454200313200ustar00rootroot00000000000000{ "exports": { ".": { "import": "./main.js" }, "./s*": null, "./sub*s": { "import": "./sub.js" } } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-star/sub.js000066400000000000000000000000341464306454200301640ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-string-array/000077500000000000000000000000001464306454200305115ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-string-array/index.js000066400000000000000000000000341464306454200321530ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-string-array/main.js000066400000000000000000000000341464306454200317700ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-string-array/package.json000066400000000000000000000000671464306454200330020ustar00rootroot00000000000000{ "exports": [ "./main.js", "./sub.js" ] } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-string-array/sub.js000066400000000000000000000000341464306454200316350ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-string-type-module/000077500000000000000000000000001464306454200316375ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-string-type-module/index.js000066400000000000000000000000461464306454200333040ustar00rootroot00000000000000export const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-string-type-module/main.js000066400000000000000000000000461464306454200331210ustar00rootroot00000000000000export const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-string-type-module/package.json000066400000000000000000000001341464306454200341230ustar00rootroot00000000000000{ "type": "module", "exports": { ".": "./main.js", "./sub.js": "./sub.js" } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-string-type-module/sub.js000066400000000000000000000000461464306454200327660ustar00rootroot00000000000000export const whoami = import.meta.url isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-string/000077500000000000000000000000001464306454200273755ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-string/index.js000066400000000000000000000000341464306454200310370ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-string/main.js000066400000000000000000000000341464306454200306540ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-string/package.json000066400000000000000000000001101464306454200316530ustar00rootroot00000000000000{ "exports": { ".": "./main.js", "./sub.js": "./sub.js" } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-string/sub.js000066400000000000000000000000341464306454200305210ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-top-array-no-main-match/000077500000000000000000000000001464306454200324335ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-top-array-no-main-match/index.js000066400000000000000000000000341464306454200340750ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-top-array-no-main-match/main.js000066400000000000000000000000341464306454200337120ustar00rootroot00000000000000exports.whoami = __filename package.json000066400000000000000000000001531464306454200346410ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-top-array-no-main-match{ "exports": [ { "require": "./index.js" }, { "browser": "./main.js" } ] } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-top-array-no-main-match/sub.js000066400000000000000000000000341464306454200335570ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-top-obj-no-main-match/000077500000000000000000000000001464306454200320675ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-top-obj-no-main-match/index.js000066400000000000000000000000341464306454200335310ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-top-obj-no-main-match/main.js000066400000000000000000000000341464306454200333460ustar00rootroot00000000000000exports.whoami = __filename package.json000066400000000000000000000001611464306454200342740ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-top-obj-no-main-match{ "exports": { "require": [ { "browser": "./main.js" }, "./index.js" ] } } isaacs-resolve-import-9b54ade/test/fixtures/node_modules/pj-exports-top-obj-no-main-match/sub.js000066400000000000000000000000341464306454200332130ustar00rootroot00000000000000exports.whoami = __filename isaacs-resolve-import-9b54ade/test/fixtures/p.js000066400000000000000000000000331464306454200220720ustar00rootroot00000000000000require('#multi-x-star-y') isaacs-resolve-import-9b54ade/test/fixtures/package.json000066400000000000000000000065531464306454200236000ustar00rootroot00000000000000{ "name": "@isaacs/resolve-import-test-fixture", "exports": { "./nope": null, "./x": "./x.js", ".": "./t.js", "./missing": "./this-file-does-not-exist.js", "./passing-*": "./x.js", "./failing-*": null }, "type": "commonjs", "imports": { "#x": "./x.js", "#foo*bar": "./multi-x-star-x.js", "#star*replace": "./star-*-*.js", "#multi-*-star": "./multi-*-star-*.js", "#blorg": "tap", "#nu*": "minipass", "#null": null, "#invalid": "#blorg", "#invalid-*-expand": "#nope-not-allowed", "#.": [ { "import": "glob" }, { "node": { "default": "glob" } }, { "require": "minipass" } ], "#failing-conditional": { "require": "./x.js" }, "#failing-*": { "require": "./x.js" }, "#passing-*": { "import": "./x.js" }, "#internal-empty": "empty", "#internal-empty-pj-no-main-no-index": "empty-pj-no-main-no-index", "#internal-index-and-pj": "index-and-pj", "#internal-index-and-pj-main": "index-and-pj-main", "#internal-index-and-pj-main-missing": "index-and-pj-main-missing", "#internal-index-and-pj-main-missing-type-module": "index-and-pj-main-missing-type-module", "#internal-index-and-pj-main-type-module": "index-and-pj-main-type-module", "#internal-index-and-pj-module": "index-and-pj-module", "#internal-index-and-pj-type-module": "index-and-pj-type-module", "#internal-index-no-pj": "index-no-pj", "#internal-no-index-and-pj-main-missing-type-module": "no-index-and-pj-main-missing-type-module", "#internal-pj-exports-array": "pj-exports-array", "#internal-pj-exports-array-multimatch": "pj-exports-array-multimatch", "#internal-pj-exports-array-nested": "pj-exports-array-nested", "#internal-pj-exports-array-nested-no-sub-match": "pj-exports-array-nested-no-sub-match", "#internal-pj-exports-array-no-main-match": "pj-exports-array-no-main-match", "#internal-pj-exports-bare-string": "pj-exports-bare-string", "#internal-pj-exports-bare-string-type-module": "pj-exports-bare-string-type-module", "#internal-pj-exports-default-string": "pj-exports-default-string", "#internal-pj-exports-no-default": "pj-exports-no-default", "#internal-pj-exports-obj": "pj-exports-obj", "#internal-pj-exports-obj-default": "pj-exports-obj-default", "#internal-pj-exports-obj-default-type-module": "pj-exports-obj-default-type-module", "#internal-pj-exports-obj-import-then-node": "pj-exports-obj-import-then-node", "#internal-pj-exports-obj-nested": "pj-exports-obj-nested", "#internal-pj-exports-obj-node": "pj-exports-obj-node", "#internal-pj-exports-obj-node-then-import": "pj-exports-obj-node-then-import", "#internal-pj-exports-obj-require": "pj-exports-obj-require", "#internal-pj-exports-obj-type-module": "pj-exports-obj-type-module", "#internal-pj-exports-obj-type-module-sub-missing": "pj-exports-obj-type-module-sub-missing", "#internal-pj-exports-star": "pj-exports-star", "#internal-pj-exports-string": "pj-exports-string", "#internal-pj-exports-string-array": "pj-exports-string-array", "#internal-pj-exports-string-type-module": "pj-exports-string-type-module", "#internal-pj-exports-top-array-no-main-match": "pj-exports-top-array-no-main-match", "#internal-pj-exports-top-obj-no-main-match": "pj-exports-top-obj-no-main-match" } } isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/000077500000000000000000000000001464306454200235265ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/deep/000077500000000000000000000000001464306454200244435ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/deep/a/000077500000000000000000000000001464306454200246635ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/deep/a/b/000077500000000000000000000000001464306454200251045ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/deep/a/b/c/000077500000000000000000000000001464306454200253265ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/deep/a/b/c/d/000077500000000000000000000000001464306454200255515ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/deep/a/b/c/d/y.js000066400000000000000000000000261464306454200263550ustar00rootroot00000000000000console.error('deep') isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/default.js000066400000000000000000000000371464306454200255100ustar00rootroot00000000000000console.error('in default.js') isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/exports-not-subpaths-object.json000066400000000000000000000001401464306454200320110ustar00rootroot00000000000000{ "name": "exports-not-subpath", "exports": { "asdf": "foo.js", "default": "default.js" } } isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/exports-not-subpaths.json000066400000000000000000000001271464306454200305520ustar00rootroot00000000000000{ "name": "exports-not-subpath", "exports": [{ "asdf": "foo.js" }, "default.js"] } isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/imports-invalid-array.json000066400000000000000000000002401464306454200306520ustar00rootroot00000000000000{ "name": "imports-invalid", "description": "they have to start with # to count", "imports": [ { "#g": "glob", "yolo": "yaml" } ] } isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/imports-invalid.json000066400000000000000000000002201464306454200275340ustar00rootroot00000000000000{ "name": "imports-invalid", "description": "they have to start with # to count", "imports": { "#g": "glob", "yolo": "yaml" } } isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/no-exports-imports.json000066400000000000000000000001211464306454200302240ustar00rootroot00000000000000{ "name": "no-exports-imports", "description": "has no imports or exports" } isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/node_modules/000077500000000000000000000000001464306454200262035ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/node_modules/empty-dep/000077500000000000000000000000001464306454200301075ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/node_modules/empty-dep/.keep000066400000000000000000000000001464306454200310220ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/node_modules/glob/000077500000000000000000000000001464306454200271265ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/node_modules/glob/dist/000077500000000000000000000000001464306454200300715ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/node_modules/glob/dist/cjs/000077500000000000000000000000001464306454200306505ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/node_modules/glob/dist/cjs/index.js000066400000000000000000000000001464306454200323030ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/node_modules/glob/dist/mjs/000077500000000000000000000000001464306454200306625ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/node_modules/glob/dist/mjs/index.js000066400000000000000000000000001464306454200323150ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/node_modules/glob/package.json000066400000000000000000000051101464306454200314110ustar00rootroot00000000000000{ "author": "Isaac Z. Schlueter (https://blog.izs.me/)", "name": "glob", "description": "the most correct and second fastest glob implementation in JavaScript", "version": "10.3.3", "bin": "./dist/cjs/src/bin.js", "repository": { "type": "git", "url": "git://github.com/isaacs/node-glob.git" }, "main": "./dist/cjs/src/index.js", "module": "./dist/mjs/index.js", "types": "./dist/mjs/index.d.ts", "exports": { ".": { "import": { "types": "./dist/mjs/index.d.ts", "default": "./dist/mjs/index.js" }, "require": { "types": "./dist/cjs/src/index.d.ts", "default": "./dist/cjs/src/index.js" } } }, "files": [ "dist" ], "scripts": { "preversion": "npm test", "postversion": "npm publish", "prepublishOnly": "git push origin --follow-tags", "preprepare": "rm -rf dist", "prepare": "tsc -p tsconfig.json && tsc -p tsconfig-esm.json && bash fixup.sh", "pretest": "npm run prepare", "presnap": "npm run prepare", "test": "c8 tap", "snap": "c8 tap", "format": "prettier --write . --loglevel warn", "typedoc": "typedoc --tsconfig tsconfig-esm.json ./src/*.ts", "prepublish": "npm run benchclean", "profclean": "rm -f v8.log profile.txt", "test-regen": "npm run profclean && TEST_REGEN=1 node --no-warnings --loader ts-node/esm test/00-setup.ts", "prebench": "npm run prepare", "bench": "bash benchmark.sh", "preprof": "npm run prepare", "prof": "bash prof.sh", "benchclean": "node benchclean.js" }, "prettier": { "semi": false, "printWidth": 75, "tabWidth": 2, "useTabs": false, "singleQuote": true, "jsxSingleQuote": false, "bracketSameLine": true, "arrowParens": "avoid", "endOfLine": "lf" }, "dependencies": { "foreground-child": "^3.1.0", "jackspeak": "^2.0.3", "minimatch": "^9.0.1", "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0", "path-scurry": "^1.10.1" }, "devDependencies": { "@types/node": "^20.3.2", "@types/tap": "^15.0.7", "c8": "^7.12.0", "memfs": "^3.4.13", "mkdirp": "^2.1.4", "prettier": "^2.8.3", "rimraf": "^4.1.3", "tap": "^16.3.4", "ts-node": "^10.9.1", "typedoc": "^0.23.24", "typescript": "^4.9.4" }, "tap": { "before": "test/00-setup.ts", "coverage": false, "node-arg": [ "--no-warnings", "--loader", "ts-node/esm" ], "ts": false }, "license": "ISC", "funding": { "url": "https://github.com/sponsors/isaacs" }, "engines": { "node": ">=16 || 14 >=14.17" } } isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/node_modules/yaml/000077500000000000000000000000001464306454200271455ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/node_modules/yaml/package.json000066400000000000000000000046331464306454200314410ustar00rootroot00000000000000{ "name": "yaml", "version": "1.10.2", "license": "ISC", "author": "Eemeli Aro ", "repository": "github:eemeli/yaml", "description": "JavaScript parser and stringifier for YAML", "keywords": [ "YAML", "parser", "stringifier" ], "homepage": "https://eemeli.org/yaml/v1/", "files": [ "browser/", "dist/", "types/", "*.d.ts", "*.js", "*.mjs", "!*config.js" ], "type": "commonjs", "main": "./index.js", "exports": { ".": "./index.js", "./does-not-exist": "./nope-not-here.js", "./invalidstar/*": "./nope-not-here/*.js", "./parse-cst": "./parse-cst.js", "./types": [ { "import": "./types.mjs" }, "./types.js" ], "./util": [ { "import": "./util.mjs" }, "./util.js" ], "./": "./index.js" }, "scripts": { "build": "npm run build:node && npm run build:browser", "build:browser": "rollup -c rollup.browser-config.js", "build:node": "rollup -c rollup.node-config.js", "clean": "git clean -fdxe node_modules", "lint": "eslint src/", "prettier": "prettier --write .", "start": "cross-env TRACE_LEVEL=log npm run build:node && node -i -e 'YAML=require(\".\")'", "test": "jest", "test:browsers": "cd playground && npm test", "test:dist": "npm run build:node && jest", "test:types": "tsc --lib ES2017 --noEmit tests/typings.ts", "docs:install": "cd docs-slate && bundle install", "docs:deploy": "cd docs-slate && ./deploy.sh", "docs": "cd docs-slate && bundle exec middleman server", "preversion": "npm test && npm run build", "prepublishOnly": "npm run clean && npm test && npm run build" }, "browserslist": "> 0.5%, not dead", "prettier": { "arrowParens": "avoid", "semi": false, "singleQuote": true, "trailingComma": "none" }, "devDependencies": { "@babel/core": "^7.12.10", "@babel/plugin-proposal-class-properties": "^7.12.1", "@babel/preset-env": "^7.12.11", "@rollup/plugin-babel": "^5.2.3", "babel-eslint": "^10.1.0", "babel-jest": "^26.6.3", "babel-plugin-trace": "^1.1.0", "common-tags": "^1.8.0", "cross-env": "^7.0.3", "eslint": "^7.19.0", "eslint-config-prettier": "^7.2.0", "fast-check": "^2.12.0", "jest": "^26.6.3", "prettier": "^2.2.1", "rollup": "^2.38.2", "typescript": "^4.1.3" }, "engines": { "node": ">= 6" } } isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/node_modules/yaml/parse-cst.js000066400000000000000000000000001464306454200313720ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/node_modules/yaml/types.mjs000066400000000000000000000000001464306454200310120ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/node_modules/yaml/util.mjs000066400000000000000000000000001464306454200306230ustar00rootroot00000000000000isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/package.json000066400000000000000000000013261464306454200260160ustar00rootroot00000000000000{ "type": "module", "name": "resolve-all", "exports": { ".": "./default.js", "./blah/*": "./default.js", "./deep/*/x.js": "./deep/*.js", "./de*/y.js": "./de*.js", "./deep/*/z.js": "./deep/*/y.js" }, "imports": { "#module": "node:fs", "#g": "glob", "#y/*": "yaml/*", "#u/*/l": "yaml/u*l", "#invalid": "#g", "#localpath": "./default.js", "#localpath/*": "./deep/*.js", "#localname": "resolve-all/blah/x", "#localname/*": "resolve-all/deep/*", "#yamlinvalid": "yaml/invalid", "#yamlinvalid/*": "yaml/invalid/*", "#missingdep/*": "some-missing-dependency-thats-missing/submodule/*", "#emptydep/*": "empty/submodule/*", "#emptystring": "" } } isaacs-resolve-import-9b54ade/test/fixtures/resolve-all/test.js000066400000000000000000000003751464306454200250500ustar00rootroot00000000000000// import "x/blah/x/y/z" // import "x/deep/a/b/c/d/y/x.js" // import "x/deep/a/b/c/d/y/y.js" // import "#deep/a/b/c/d/y" import { glob } from '#x' import * as yaml from '#y/' import * as yamlUtils from '#u/ti/l' console.error({ glob, yaml, yamlUtils }) isaacs-resolve-import-9b54ade/test/fixtures/star-x-x.js000066400000000000000000000000621464306454200233200ustar00rootroot00000000000000console.log(require('path').basename(__filename)) isaacs-resolve-import-9b54ade/test/fixtures/t.d.ts000066400000000000000000000001371464306454200223370ustar00rootroot00000000000000export declare const testAll: (which?: string) => Promise; //# sourceMappingURL=t.d.ts.mapisaacs-resolve-import-9b54ade/test/fixtures/t.d.ts.map000066400000000000000000000002041464306454200231060ustar00rootroot00000000000000{"version":3,"file":"t.d.ts","sourceRoot":"","sources":["t.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,OAAO,WAAkB,MAAM,iBAyB3C,CAAA"}isaacs-resolve-import-9b54ade/test/fixtures/t.js000066400000000000000000000025221464306454200221030ustar00rootroot00000000000000"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.testAll = void 0; const promises_1 = require("fs/promises"); const url_1 = require("url"); const testAll = async (which) => { const types = which ? [which] : (await (0, promises_1.readdir)(__dirname + '/node_modules')).filter(f => f && !f.startsWith('.')); const res = await Promise.all(types.map(async (pkg) => { return [ pkg, await import(pkg).then(({ whoami }) => whoami).catch(e => niceErr(e)), await import(`${pkg}/sub.js`) .then(({ whoami }) => whoami) .catch(e => niceErr(e)), await import(`${pkg}/missing.js`) .then(({ whoami }) => whoami) .catch(e => niceErr(e)), ]; })); return Object.fromEntries(res.map(([p, i, s, m]) => { return [p, [tofurl(i), tofurl(s), tofurl(m)]]; })); }; exports.testAll = testAll; const niceErr = (e) => [ e.code, e.message.replace(/\nDid you mean.*/, ''), ]; const tofurl = (s) => typeof s !== 'string' ? s : s.startsWith('file://') ? s : String((0, url_1.pathToFileURL)(s)); if (require.main === module) { (0, exports.testAll)(process.argv[2]).then(res => console.log(JSON.stringify(res, null, 2))); } //# sourceMappingURL=t.js.mapisaacs-resolve-import-9b54ade/test/fixtures/t.js.map000066400000000000000000000060701464306454200226610ustar00rootroot00000000000000{"version":3,"file":"t.js","sourceRoot":"","sources":["t.ts"],"names":[],"mappings":";;;AAAA,0CAAqC;AACrC,6BAAmC;AAE5B,MAAM,OAAO,GAAG,KAAK,EAAE,KAAc,EAAE,EAAE;IAC9C,MAAM,KAAK,GAAG,KAAK;QACjB,CAAC,CAAC,CAAC,KAAK,CAAC;QACT,CAAC,CAAC,CAAC,MAAM,IAAA,kBAAO,EAAC,SAAS,GAAG,eAAe,CAAC,CAAC,CAAC,MAAM,CACjD,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAC7B,CAAA;IACL,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,GAAG,CAC3B,KAAK,CAAC,GAAG,CAAC,KAAK,EAAC,GAAG,EAAC,EAAE;QACpB,OAAO;YACL,GAAG;YACH,MAAM,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACrE,MAAM,MAAM,CAAC,GAAG,GAAG,SAAS,CAAC;iBAC1B,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;iBAC5B,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACzB,MAAM,MAAM,CAAC,GAAG,GAAG,aAAa,CAAC;iBAC9B,IAAI,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,CAAC;iBAC5B,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;SAC1B,CAAA;IACH,CAAC,CAAC,CACH,CAAA;IACD,OAAO,MAAM,CAAC,WAAW,CACvB,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACvB,OAAO,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC/C,CAAC,CAAC,CACH,CAAA;AACH,CAAC,CAAA;AAzBY,QAAA,OAAO,WAyBnB;AAED,MAAM,OAAO,GAAG,CAAC,CAAwB,EAAE,EAAE,CAAC;IAC5C,CAAC,CAAC,IAAI;IACN,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;CAC1C,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,CAA4B,EAAE,EAAE,CAC9C,OAAO,CAAC,KAAK,QAAQ;IACnB,CAAC,CAAC,CAAC;IACH,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;QACzB,CAAC,CAAC,CAAC;QACH,CAAC,CAAC,MAAM,CAAC,IAAA,mBAAa,EAAC,CAAC,CAAC,CAAC,CAAA;AAE9B,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE;IAC3B,IAAA,eAAO,EAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAClC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAC1C,CAAA;CACF","sourcesContent":["import { readdir } from 'fs/promises'\nimport { pathToFileURL } from 'url'\n\nexport const testAll = async (which?: string) => {\n const types = which\n ? [which]\n : (await readdir(__dirname + '/node_modules')).filter(\n f => f && !f.startsWith('.')\n )\n const res = await Promise.all(\n types.map(async pkg => {\n return [\n pkg,\n await import(pkg).then(({ whoami }) => whoami).catch(e => niceErr(e)),\n await import(`${pkg}/sub.js`)\n .then(({ whoami }) => whoami)\n .catch(e => niceErr(e)),\n await import(`${pkg}/missing.js`)\n .then(({ whoami }) => whoami)\n .catch(e => niceErr(e)),\n ]\n })\n )\n return Object.fromEntries(\n res.map(([p, i, s, m]) => {\n return [p, [tofurl(i), tofurl(s), tofurl(m)]]\n })\n )\n}\n\nconst niceErr = (e: NodeJS.ErrnoException) => [\n e.code,\n e.message.replace(/\\nDid you mean.*/, ''),\n]\n\nconst tofurl = (s: string | [string, string]) =>\n typeof s !== 'string'\n ? s\n : s.startsWith('file://')\n ? s\n : String(pathToFileURL(s))\n\nif (require.main === module) {\n testAll(process.argv[2]).then(res =>\n console.log(JSON.stringify(res, null, 2))\n )\n}\n"]}isaacs-resolve-import-9b54ade/test/fixtures/t.ts000066400000000000000000000022461464306454200221200ustar00rootroot00000000000000import { readdir } from 'fs/promises' import { pathToFileURL } from 'url' export const testAll = async (which?: string) => { const types = which ? [which] : (await readdir(__dirname + '/node_modules')).filter( f => f && !f.startsWith('.') ) const res = await Promise.all( types.map(async pkg => { return [ pkg, await import(pkg).then(({ whoami }) => whoami).catch(e => niceErr(e)), await import(`${pkg}/sub.js`) .then(({ whoami }) => whoami) .catch(e => niceErr(e)), await import(`${pkg}/missing.js`) .then(({ whoami }) => whoami) .catch(e => niceErr(e)), ] }) ) return Object.fromEntries( res.map(([p, i, s, m]) => { return [p, [tofurl(i), tofurl(s), tofurl(m)]] }) ) } const niceErr = (e: NodeJS.ErrnoException) => [ e.code, e.message.replace(/\nDid you mean.*/, ''), ] const tofurl = (s: string | [string, string]) => typeof s !== 'string' ? s : s.startsWith('file://') ? s : String(pathToFileURL(s)) if (require.main === module) { testAll(process.argv[2]).then(res => console.log(JSON.stringify(res, null, 2)) ) } isaacs-resolve-import-9b54ade/test/fixtures/tsconfig.json000066400000000000000000000007171464306454200240150ustar00rootroot00000000000000{ "include": ["./*.ts"], "compilerOptions": { "allowSyntheticDefaultImports": true, "declaration": true, "declarationMap": true, "inlineSources": true, "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "isolatedModules": true, "moduleResolution": "node16", "resolveJsonModule": true, "skipLibCheck": true, "sourceMap": true, "strict": true, "target": "es2022", "module": "node16" } } isaacs-resolve-import-9b54ade/test/fixtures/x.js000066400000000000000000000000211464306454200220770ustar00rootroot00000000000000console.log('x') isaacs-resolve-import-9b54ade/test/get-all-conditional-values.ts000066400000000000000000000025651464306454200251330ustar00rootroot00000000000000import t from 'tap' import { getAllConditionalValues } from '../src/get-all-conditional-values.js' import { getConditionalValuesList } from '../src/get-conditional-values-list.js' import { Exports, Imports } from '../src/index.js' t.test('valid values', t => { const cases: [Imports | Exports, string[]][] = [ [{ import: { node: 'x' }, node: { import: 'y' } }, ['x']], [{ import: { node: { default: 'x' } }, node: { import: 'y' } }, ['x']], [ { import: { node: [{ z: 'z' }, 'x'] }, node: { import: 'y' } }, ['z', 'x'], ], [ { import: null, node: [{ require: 'x' }, { import: 'y' }, 'z'] }, ['x', 'z'], ], [ { './x': { import: './x.js' }, './y': './y.js' }, ['./x.js', './y.js'], ], [[{ import: { node: 'x' } }, { node: { import: 'y' } }], ['x']], ] t.plan(cases.length) for (const [ie, expect] of cases) { t.test(JSON.stringify(ie), t => { const actual = getAllConditionalValues(ie) t.strictSame(actual, expect) t.matchSnapshot(getConditionalValuesList(ie)) t.end() }) } }) // cannot mix types t.throws(() => getAllConditionalValues({ '#x': 'y', './z': 'invalid' })) t.throws(() => getAllConditionalValues({ './x': 'y', '#z': 'invalid' })) t.throws(() => getAllConditionalValues({ x: 'y', '#z': 'invalid' })) t.throws(() => getAllConditionalValues({ x: 'y', './z': 'invalid' })) isaacs-resolve-import-9b54ade/test/get-unique-condition-sets.ts000066400000000000000000000025251464306454200250270ustar00rootroot00000000000000import t from 'tap' import { getUniqueConditionSets } from '../src/get-unique-condition-sets.js' import { Exports, Imports } from '../src/index.js' const cases: [Imports | Exports, string[][]][] = [ [{ import: { node: 'x' }, node: { import: 'y' } }, [['import', 'node']]], [ { import: { node: { default: 'x' } }, node: { import: 'y' } }, [['import', 'node']], ], [ { import: { node: [{ z: 'z' }, 'x'] }, node: { import: 'y' } }, [ ['import', 'node', 'z'], ['import', 'node'], ], ], [ { import: null, node: [{ require: 'x' }, { import: 'y' }, 'z'] }, [['import'], ['node', 'require'], ['node']], ], [{ './x': { import: './x.js' }, './y': './y.js' }, [['import'], []]], [ [{ import: { node: 'x' } }, { node: { import: 'y' } }], [['import', 'node']], ], [ { './x': { import: './x.js' }, './y': { import: './y.js' } }, [['import']], ], [ { './a': './a.js', './x': { import: './x.js' }, './y': { import: './y.js' }, }, [[], ['import']], ], ] for (const [ie, e] of cases) { t.test(JSON.stringify(ie), t => { // turn into sets for t.strictSame comparison const expect = new Set(e.map(e => new Set(e))) const a = getUniqueConditionSets(ie) const actual = new Set(a.map(a => new Set(a))) t.strictSame(actual, expect) t.end() }) } isaacs-resolve-import-9b54ade/test/index.ts000066400000000000000000000302531464306454200211120ustar00rootroot00000000000000import { spawn } from 'node:child_process' import { readdir } from 'node:fs/promises' import { createRequire } from 'node:module' import { tmpdir } from 'node:os' import { resolve } from 'node:path' import { fileURLToPath, pathToFileURL } from 'node:url' import t from 'tap' import { Exports, getAllConditions, Imports, resolveImport, } from '../dist/esm/index.js' const require = createRequire(import.meta.url) const fixtures = resolve( fileURLToPath(new URL('.', import.meta.url)), 'fixtures' ) const nm = resolve(fixtures, 'node_modules') t.test('basic run-through of all dep cases', async t => { const p = require.resolve('./fixtures/t.js') const cases = (await readdir(nm)).filter(f => f && !f.startsWith('.')) const proc = spawn(process.execPath, [p]) const out: Buffer[] = [] proc.stdout.on('data', c => out.push(c)) await new Promise(r => proc.on('close', () => r())) const expect = JSON.parse(Buffer.concat(out).toString()) for (const c of cases) { t.test(c, async t => { const root = await resolveImport(c, p) .then(r => String(r)) .catch(e => { const er = e as NodeJS.ErrnoException return [er.code, er.message] }) const sub = await resolveImport(`${c}/sub.js`, p) .then(r => String(r)) .catch(e => { const er = e as NodeJS.ErrnoException return [er.code, er.message] }) const missing = await resolveImport(`${c}/missing.js`, p) .then(r => String(r)) .catch(e => { const er = e as NodeJS.ErrnoException return [er.code, er.message] }) // node 20.5 started reporting the package.json not being findable, // instead of the folder, which is also not ideal. // See: https://github.com/nodejs/node/issues/49674 t.strictSame( [root, sub, missing], expect[c].map((s: string | [string, string]) => Array.isArray(s) && s[0] === 'ERR_MODULE_NOT_FOUND' && typeof s[1] === 'string' ? [s[0], s[1].replace(/package\.json/, '')] : s ) ) const internal = await resolveImport(`#internal-${c}`, p) .then(r => String(r)) .catch(e => { const er = e as NodeJS.ErrnoException return [er.code, er.message] }) t.strictSame(internal, root) t.end() }) } t.end() }) t.test('missing package fails', async t => { const p = t.testdir() const n = 'this package does not exist' await t.rejects(resolveImport(n, p), { code: 'ERR_MODULE_NOT_FOUND', message: `Cannot find package '${n}' imported from ${p}`, }) }) t.test('builtin returns string', async t => { t.equal(await resolveImport('fs'), 'fs') const p = String(pathToFileURL(resolve(tmpdir()))) t.equal(await resolveImport('node:url', p), 'node:url') }) t.test('absolute url returns file url of it', async t => { const d = t.testdir({ 'c.js': '', }) const p = resolve(d, 'c.js') const u = pathToFileURL(p) const f = String(u) t.strictSame(await resolveImport(p), u) t.strictSame(await resolveImport(p, tmpdir()), u) t.equal(await resolveImport(u), u) t.equal(await resolveImport(u, tmpdir()), u) t.strictSame(await resolveImport(f), u) t.strictSame(await resolveImport(f, tmpdir()), u) t.rejects(resolveImport(resolve(d, 'x.js'))) t.rejects(resolveImport(pathToFileURL(resolve(d, 'x.js')))) t.rejects(resolveImport(String(pathToFileURL(resolve(d, 'x.js'))))) }) t.test('relative url resolves', async t => { const d = t.testdir({ x: { a: { 'b.js': '', }, y: { 'z.js': '', }, }, }) const rel = '../a/b.js' await t.rejects(resolveImport(rel), { message: 'relative import without parentURL', url: '../a/b.js', parentURL: undefined, }) const from = pathToFileURL(resolve(d, 'x/y/z.js')) const expect = pathToFileURL(resolve(d, 'x/a/b.js')) t.strictSame(await resolveImport(rel, from), expect) }) t.test('resolve a dep from right here', async t => { const dep = 'tap' const expect = pathToFileURL( resolve('node_modules/tap/dist/esm/index.js') ) t.strictSame(await resolveImport(dep), expect) t.strictSame(await resolveImport(dep, import.meta.url), expect) }) t.test('more custom internal imports', async t => { const p = require.resolve('./fixtures/t.js') const cases: [string, string | null][] = [ ['#x', './x.js'], ['#not-found', null], ['#foo-xyz-bar', './multi-x-star-x.js'], ['#starxreplace', './star-x-x.js'], ['#starreplace', null], ['#multi-x-star', './multi-x-star-x.js'], ['#blorg', 'tap'], ['#nuevo', 'minipass'], ['#nul', 'minipass'], ['#null', null], ['#invalid', null], ['#invalid-star-expand', null], ['#.', 'glob'], ['#failing-conditional', null], ['#failing-starmatch', null], ['#passing-starmatch', './x.js'], ['', null], ] for (const [i, expect] of cases) { t.test(`${i} => ${expect}`, async t => { if (expect === null) { const e = await resolveImport(i, p).catch(e => e) t.match(e, Error) t.matchSnapshot(e.code) } else { t.strictSame( await resolveImport(i, p), await resolveImport(expect, p) ) } }) } t.end() }) t.test('named package with exports internal import', async t => { const p = require.resolve('./fixtures/t.js') const ir = '@isaacs/resolve-import-test-fixture' const x = ir + '/x' const res = await resolveImport(x, p) t.strictSame(res, await resolveImport('./x.js', p)) const passingStar = ir + '/passing-starmatch' const ps = await resolveImport(passingStar, p) t.strictSame(ps, await resolveImport('./x.js', p)) t.rejects(resolveImport(ir + '/y', p)) t.rejects(resolveImport(ir + '/nope', p)) t.rejects(resolveImport(ir + '/missing', p)) t.rejects(resolveImport(ir + '/failing-starmatch', p)) }) t.test('internal imports relative to package.json', async t => { const d = t.testdir({ 'package.json': JSON.stringify({ name: '@i/p', imports: { '#vnd': './source/vendor/x.js', '#missing': './source/vendor/missing.js', }, exports: { './vnd': './source/vendor/x.js', './missing': './source/vendor/missingjs', }, }), source: { vendor: { 'x.js': '', }, }, src: { 'mine.js': '', }, }) const expect = pathToFileURL(resolve(d, 'source/vendor/x.js')) const from = resolve(d, 'src/mine.js') t.strictSame(await resolveImport('#vnd', from), expect) t.strictSame(await resolveImport('@i/p/vnd', from), expect) t.rejects(resolveImport('#missing', from)) t.rejects(resolveImport('@i/p/missing', from)) }) t.test('getAllConditions', t => { t.test('valid cases', t => { const cases: [Imports | Exports, string[]][] = [ ['./hello.js', []], [{ default: './x.js' }, []], [ { import: { types: './x.d.ts', default: './x.mjs' } }, ['import', 'types'], ], [ { import: [{ types: './x.d.ts' }, './x.mjs'] }, ['import', 'types'], ], [{ import: ['./x.mjs', { types: './x.d.ts' }] }, ['import']], [{ default: ['./x.mjs', { types: './x.d.ts' }] }, []], [ { default: ['./x.mjs', { types: './x.d.ts' }], require: 'x.cjs' }, [], ], [ { require: 'x.cjs', default: ['./x.mjs', { types: './x.d.ts' }] }, ['require'], ], [ { blah: 'x.cjs', default: ['./x.mjs', { types: './x.d.ts' }] }, ['blah'], ], [ [{ x: 'y' }, { x: 'z' }, { y: 'z' }, { y: 'a' }], ['x', 'y'], ], [ { '#a': [{ x: 'y' }, { x: 'z' }, { y: 'z' }, { y: 'a' }], '#b': [{ x: 'y' }, { x: 'z' }, { y: 'z' }, { y: 'a' }], }, ['x', 'y'], ], ] t.plan(cases.length) for (const [ie, conds] of cases) { t.test(JSON.stringify(ie), t => { t.strictSame(new Set(getAllConditions(ie)), new Set(conds)) t.end() }) } }) // cannot mix types t.throws(() => getAllConditions({ '#x': 'y', './z': 'invalid' })) t.throws(() => getAllConditions({ './x': 'y', '#z': 'invalid' })) t.throws(() => getAllConditions({ x: 'y', '#z': 'invalid' })) t.throws(() => getAllConditions({ x: 'y', './z': 'invalid' })) t.end() }) t.test('link packages get realpathed', async t => { // resolving resolving should follow links const pkga = { 'package.json': JSON.stringify({ name: 'a', exports: './index.js' }), 'index.js': '', } const pkgb = { 'package.json': JSON.stringify({ name: 'b', exports: './index.js' }), 'index.js': '', } const pkgc = { 'package.json': JSON.stringify({ name: 'c', exports: './index.js' }), 'index.js': '', } const pkgloop = { 'package.json': JSON.stringify({ name: 'loop', exports: './index.js', }), 'index.js': '', } const dir = t.testdir({ 'index.js': '', node_modules: { a: t.fixture('symlink', '../a'), b: { ...pkgb, node_modules: { loop: t.fixture('symlink', './loopy'), loopy: t.fixture('symlink', './loop'), }, }, c: t.fixture('symlink', '../c'), loop: { ...pkgloop }, }, a: { ...pkga, b: { ...pkgb, node_modules: { c: t.fixture('symlink', '../../c'), loop: t.fixture('symlink', './loopy'), loopy: t.fixture('symlink', './loop'), }, }, c: { ...pkgc }, node_modules: { b: t.fixture('symlink', '../b'), c: { ...pkgc }, loop: t.fixture('symlink', './loopy'), loopy: t.fixture('symlink', './loop'), }, }, c: { ...pkgc }, }) const url = pathToFileURL(resolve(dir, 'index.js')) const r = async (id: string | URL, base: string | URL = url) => String(await resolveImport(id, base)) const u = (u: string) => new URL(u + '/index.js', url) const p = (p: string) => String(u(p)) t.equal(await r('a'), p('a'), 'a') t.equal(await r('b'), p('node_modules/b'), 'b') t.equal(await r('c'), p('c'), 'c') t.equal(await r('b', await r('a')), p('a/b'), 'a->b') t.equal(await r('c', await r('a')), p('a/node_modules/c'), 'a->c') t.equal(await r('a', await r('b')), p('a'), 'b->a') t.equal(await r('c', await r('b')), p('c'), 'b->c') t.equal(await r('b', await r('c')), p('node_modules/b'), 'c->b') t.equal(await r('a', await r('c')), p('a'), 'c->a') t.equal(await r('c', await r('b', await r('a'))), p('a/c'), 'a->b->c') t.test('url gets realpathed', async t => { t.equal( await r(u('a/node_modules/b/node_modules/c')), p('a/c'), 'url gets realpathed' ) t.equal( await r(u('node_modules/a/node_modules/c')), p('a/node_modules/c'), 'url gets realpathed' ) }) t.test('symlink loop is not valid dep', async t => { const loop = p('node_modules/loop') t.equal(await r('loop'), loop) t.equal(await r('loop', await r('b')), loop) t.equal(await r('loop', await r('b', await r('a'))), loop) t.equal(await r('loop', await r('b', await r('a'))), loop) }) }) t.test('fail to resolve #import if no pj imports', async t => { const dir = t.testdir({ 'index.js': '', 'x.js': '', 'package.json': JSON.stringify({ imports: { '#x': './x.js', }, }), x: { 'index.js': '', 'package.json': JSON.stringify({}), }, }) t.equal( String(await resolveImport('#x', resolve(dir, 'x.js'))), String(pathToFileURL(resolve(dir, 'x.js'))) ) t.rejects(resolveImport('#x', resolve(dir, 'x/index.js')), { message: `Package import specifier "#x" is not defined in package ` + `${resolve(dir, 'x/package.json')} imported from ${resolve( dir, 'x/index.js' )}`, }) }) t.test('parentURL needs a valid folder, not file', async t => { const dir = t.testdir({ node_modules: { dep: { 'package.json': JSON.stringify({ main: './dep.js' }), 'dep.js': '', }, }, folder: {}, }) const expect = String( pathToFileURL(resolve(dir, 'node_modules/dep/dep.js')) ) t.equal(String(await resolveImport('dep', dir + '/x')), expect) t.equal( String(await resolveImport('dep', pathToFileURL(dir + '/x'))), expect ) }) isaacs-resolve-import-9b54ade/test/is-relative-require.ts000066400000000000000000000022141464306454200236750ustar00rootroot00000000000000import t from 'tap' t.test('not windows', async t => { const { isRelativeRequire } = await t.mockImport( '../dist/esm/is-relative-require.js', { '../dist/esm/is-windows.js': { isWindows: false, }, } ) t.equal(isRelativeRequire('./x'), true) t.equal(isRelativeRequire('../x'), true) t.equal(isRelativeRequire('../../x'), true) t.equal(isRelativeRequire('x'), false) t.equal(isRelativeRequire('/x'), false) t.equal(isRelativeRequire('.\\x'), false) t.equal(isRelativeRequire('..\\x'), false) t.equal(isRelativeRequire('..\\..\\x'), false) }) t.test('yes windows', async t => { const { isRelativeRequire } = await t.mockImport( '../dist/esm/is-relative-require.js', { '../dist/esm/is-windows.js': { isWindows: true, }, } ) t.equal(isRelativeRequire('./x'), true) t.equal(isRelativeRequire('../x'), true) t.equal(isRelativeRequire('../../x'), true) t.equal(isRelativeRequire('x'), false) t.equal(isRelativeRequire('/x'), false) t.equal(isRelativeRequire('.\\x'), true) t.equal(isRelativeRequire('..\\x'), true) t.equal(isRelativeRequire('..\\..\\x'), true) }) isaacs-resolve-import-9b54ade/test/is-windows.ts000066400000000000000000000016431464306454200221070ustar00rootroot00000000000000import t from 'tap' t.test('not windows', async t => { const d = Object.getOwnPropertyDescriptor( process, 'platform' ) as PropertyDescriptor t.teardown(() => { Object.defineProperty(process, 'platform', d) }) Object.defineProperty(process, 'platform', { value: 'linux', enumerable: true, configurable: true, writable: true, }) const { isWindows } = await t.mockImport('../dist/esm/is-windows.js', {}) t.equal(isWindows, false) }) t.test('yes windows', async t => { const d = Object.getOwnPropertyDescriptor( process, 'platform' ) as PropertyDescriptor t.teardown(() => { Object.defineProperty(process, 'platform', d) }) Object.defineProperty(process, 'platform', { value: 'win32', enumerable: true, configurable: true, writable: true, }) const { isWindows } = await t.mockImport('../dist/esm/is-windows.js', {}) t.equal(isWindows, true) }) isaacs-resolve-import-9b54ade/test/load-all.ts000066400000000000000000000004161464306454200214660ustar00rootroot00000000000000import t from 'tap' t.pass('just enforcing coverage') import { readdirSync } from 'node:fs' import { fileURLToPath } from 'node:url' const dir = fileURLToPath(new URL('..', import.meta.url)) + '/src' for (const f of readdirSync(dir)) { await import(`../src/${f}`) } isaacs-resolve-import-9b54ade/test/resolve-all.ts000066400000000000000000000041741464306454200222330ustar00rootroot00000000000000import { resolve } from 'path' import t from 'tap' import { fileURLToPath, pathToFileURL } from 'url' import { resolveAllExports, resolveAllLocalImports, } from '../dist/esm/index.js' const cwd = pathToFileURL(process.cwd()).pathname t.formatSnapshot = (o: Record) => { return JSON.stringify( Object.fromEntries( Object.entries(o).map(([k, v]) => [ k, String(v).split(cwd).join('{CWD}'), ]) ), null, 2 ) } const __dirname = fileURLToPath(new URL('.', import.meta.url)) const pj = resolve(__dirname, 'fixtures/resolve-all/package.json') const noExportsImports = resolve( __dirname, 'fixtures/resolve-all/no-exports-imports.json' ) const exportsNotSubpaths = resolve( __dirname, 'fixtures/resolve-all/exports-not-subpaths.json' ) const exportsNotSubpathsObject = resolve( __dirname, 'fixtures/resolve-all/exports-not-subpaths-object.json' ) const importsInvalid = resolve( __dirname, 'fixtures/resolve-all/imports-invalid.json' ) const importsInvalidArray = resolve( __dirname, 'fixtures/resolve-all/imports-invalid-array.json' ) t.test('resolveAllLocalImports', async t => { t.matchSnapshot(await resolveAllLocalImports(pj)) }) t.test('resolveAllExports', async t => { t.matchSnapshot(await resolveAllExports(pj)) }) t.test('throws on invalid package', async t => { const __filename = fileURLToPath(import.meta.url) await t.rejects(resolveAllLocalImports(__filename)) await t.rejects(resolveAllExports(__filename)) await t.rejects(resolveAllLocalImports(pathToFileURL(importsInvalid))) await t.rejects(resolveAllLocalImports(importsInvalidArray)) }) t.test('no imports/exports returns no {}', async t => { t.strictSame( await resolveAllLocalImports(String(pathToFileURL(noExportsImports))), {} ) t.strictSame( await resolveAllExports(String(pathToFileURL(noExportsImports))), {} ) }) t.test('if exports is only one path, return "." only', async t => { t.matchSnapshot( await resolveAllExports(pathToFileURL(exportsNotSubpaths)) ) t.matchSnapshot( await resolveAllExports(pathToFileURL(exportsNotSubpathsObject)) ) }) isaacs-resolve-import-9b54ade/tsconfig.json000066400000000000000000000006551464306454200211660ustar00rootroot00000000000000{ "compilerOptions": { "declaration": true, "declarationMap": true, "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "inlineSources": true, "jsx": "react", "module": "nodenext", "moduleResolution": "nodenext", "noUncheckedIndexedAccess": true, "resolveJsonModule": true, "skipLibCheck": true, "sourceMap": true, "strict": true, "target": "es2022" } } isaacs-resolve-import-9b54ade/typedoc.json000066400000000000000000000003411464306454200210110ustar00rootroot00000000000000{ "tsconfig": "./.tshy/esm.json", "entryPoints": ["./src/**/*.+(ts|tsx|mts|cts)"], "navigationLinks": { "GitHub": "https://github.com/isaacs/resolve-import", "isaacs projects": "https://isaacs.github.io/" } }