From 9cea383f5eb9a7fa3d02b7fd8c715c265ac2bd63 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Sun, 19 Apr 2026 03:45:13 -0700 Subject: [PATCH] build: remove get-package-info and resolve dependencies Replaces get-package-info with a small async generator that walks up the directory tree yielding parsed package.json files, and reads the needed fields (productName/name, version, author, electron dep) directly with optional chaining instead of dot-path string lookup. Replaces the resolve package with createRequire().resolve() for locating the electron package.json during version inference. Drops ~35 transitive production dependencies including bluebird, lodash.get, read-pkg-up, normalize-package-data, and the spdx-* tree. --- CONTRIBUTING.md | 1 - package.json | 3 - src/ambient.d.ts | 32 ---- src/infer.ts | 254 ++++++++++++++------------------ yarn.lock | 372 ----------------------------------------------- 5 files changed, 112 insertions(+), 550 deletions(-) delete mode 100644 src/ambient.d.ts diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7bae44fc..7e64a0a7 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -30,7 +30,6 @@ feature. Known modules include: * `electron-notarize*` * `electron-osx-sign` * `electron-packager` (always use this one before filing an issue) -* `get-package-info` We use the [`debug`](https://www.npmjs.com/package/debug#usage) module for this functionality. It has examples on how to set environment variables if you don't know how. diff --git a/package.json b/package.json index b0f5f488..1b61a34e 100644 --- a/package.json +++ b/package.json @@ -47,13 +47,11 @@ "extract-zip": "^2.0.1", "filenamify": "^6.0.0", "galactus": "^2.0.2", - "get-package-info": "^1.0.0", "graceful-fs": "^4.2.11", "junk": "^4.0.1", "parse-author": "^2.0.0", "plist": "^3.1.0", "resedit": "^2.0.3", - "resolve": "^1.22.10", "semver": "^7.7.2", "yargs-parser": "^22.0.0" }, @@ -64,7 +62,6 @@ "@types/node": "~22.10.7", "@types/parse-author": "^2.0.2", "@types/plist": "^3.0.5", - "@types/resolve": "^1.20.6", "@types/semver": "^7.7.0", "@types/yargs-parser": "^21.0.3", "husky": "^9.1.7", diff --git a/src/ambient.d.ts b/src/ambient.d.ts deleted file mode 100644 index 1c00bca5..00000000 --- a/src/ambient.d.ts +++ /dev/null @@ -1,32 +0,0 @@ -declare module 'get-package-info' { - type Props = Array; - - type GetPackageInfoResultSourceItem = { - /** path to the package.json file */ - src: string; - - /** property name */ - prop: string; - - /** the `package.json` object */ - pkg: Record; - }; - - type GetPackageInfoResult = { - source: Record; - values: Record; - }; - - type GetPackageInfoError = Error & { - missingProps: Props; - result: GetPackageInfoResult; - }; - - function getPackageInfo(props: Props, dir: string): Promise; - - namespace getPackageInfo { - export { GetPackageInfoResultSourceItem, GetPackageInfoResult, GetPackageInfoError }; - } - - export = getPackageInfo; -} diff --git a/src/infer.ts b/src/infer.ts index bc1bc717..4331553e 100644 --- a/src/infer.ts +++ b/src/infer.ts @@ -1,39 +1,38 @@ -import getPackageInfo, { - GetPackageInfoError, - GetPackageInfoResult, - GetPackageInfoResultSourceItem, -} from 'get-package-info'; import parseAuthor from 'parse-author'; import path from 'node:path'; -import resolve, { AsyncOpts } from 'resolve'; +import { createRequire } from 'node:module'; +import { promisifiedGracefulFs } from './util.js'; import { debug } from './common.js'; import { OfficialPlatform, Options, ProcessedOptions } from './types.js'; -function isMissingRequiredProperty(props: string[]) { - return props.some((prop) => prop === 'productName' || prop === 'dependencies.electron'); -} - -function errorMessageForProperty(prop: string) { - let hash, propDescription; - switch (prop) { - case 'productName': - hash = 'name'; - propDescription = 'application name'; - break; - case 'dependencies.electron': - hash = 'electronversion'; - propDescription = 'Electron version'; - break; - case 'version': - hash = 'appversion'; - propDescription = 'application version'; - break; - /* istanbul ignore next */ - default: - hash = ''; - propDescription = `[Unknown Property (${prop})]`; +type PackageJSON = { + name?: string; + productName?: string; + version?: string; + author?: string | { name?: string }; + dependencies?: Record; + devDependencies?: Record; +}; + +const ELECTRON_PACKAGES = ['electron', 'electron-nightly'] as const; + +async function* walkPackageJSONs(dir: string): AsyncGenerator<{ src: string; pkg: PackageJSON }> { + let prev: string | undefined; + let cur = path.resolve(dir); + while (cur !== prev) { + const src = path.join(cur, 'package.json'); + try { + const contents = await promisifiedGracefulFs.readFile(src, 'utf8'); + yield { src, pkg: JSON.parse(contents.replace(/^\uFEFF/, '')) }; + } catch (err) { + if ((err as NodeJS.ErrnoException).code !== 'ENOENT') throw err; + } + prev = cur; + cur = path.dirname(cur); } +} +function errorMessageForProperty(propDescription: string, hash: string) { return ( `Unable to determine ${propDescription}. Please specify an ${propDescription}\n\n` + 'For more information, please see\n' + @@ -41,136 +40,107 @@ function errorMessageForProperty(prop: string) { ); } -function resolvePromise(id: string, options: AsyncOpts) { - return new Promise<[string | undefined, { version: string }]>( - // eslint-disable-next-line promise/param-names - (accept, reject) => { - resolve(id, options, (err, mainPath, pkg) => { - if (err) { - /* istanbul ignore next */ - reject(err); - } else { - accept([mainPath as string | undefined, pkg as { version: string }]); - } - }); - }, - ); -} - -async function getVersion(electronProp: GetPackageInfoResultSourceItem) { - const [, packageName] = electronProp.prop.split('.'); - const src = electronProp.src; - - const pkg = (await resolvePromise(packageName, { basedir: path.dirname(src) }))[1]; - debug(`Inferring target Electron version from ${packageName} in ${src}`); +async function resolveElectronVersion(packageName: string, fromSrc: string) { + const pkgJsonPath = createRequire(fromSrc).resolve(`${packageName}/package.json`); + const pkg = JSON.parse(await promisifiedGracefulFs.readFile(pkgJsonPath, 'utf8')); + debug(`Inferring target Electron version from ${packageName} in ${fromSrc}`); return pkg.version; } -async function handleMetadata( - opts: Options, - result: GetPackageInfoResult, -): Promise> { - const processedValues: Partial = {}; - - if (typeof result.values.productName === 'string') { - debug( - `Inferring application name from ${result.source.productName.prop} in ${result.source.productName.src}`, - ); - processedValues.name = result.values.productName; - } - - if (typeof result.values.version === 'string') { - debug(`Inferring appVersion from version in ${result.source.version.src}`); - processedValues.appVersion = result.values.version; - } - - if (result.values.author) { - const author = result.values.author as string | { name: string }; - const win32metadata = opts.win32metadata || {}; - - debug(`Inferring win32metadata.CompanyName from author in ${result.source.author.src}`); - if (typeof author === 'string') { - win32metadata.CompanyName = parseAuthor(author).name; - } else if (author.name) { - win32metadata.CompanyName = author.name; - } else { - debug('Cannot infer win32metadata.CompanyName from author, no name found'); - } - processedValues.win32metadata = win32metadata; - } - - if (Object.prototype.hasOwnProperty.call(result.values, 'dependencies.electron')) { - processedValues.electronVersion = await getVersion(result.source['dependencies.electron']); - } - - return processedValues; -} - -function handleMissingProperties( - opts: Options, - err: GetPackageInfoError, -): Promise> { - const missingProps = err.missingProps.map((prop) => { - return Array.isArray(prop) ? prop[0] : prop; - }); - - if (isMissingRequiredProperty(missingProps)) { - const messages = missingProps.map(errorMessageForProperty); - - debug(err.message); - err.message = messages.join('\n') + '\n'; - throw err; - } else { - // Missing props not required, can continue w/ partial result - return handleMetadata(opts, err.result); - } -} - export async function getMetadataFromPackageJSON( platforms: OfficialPlatform[], opts: Options, dir: string, ): Promise> { - const props: Array = []; + const result: Partial = {}; - if (!opts.name) { - props.push(['productName', 'name']); - } + let needName = !opts.name; + let needVersion = !opts.appVersion; + let needElectron = !opts.electronVersion; + let needAuthor = platforms.includes('win32') && !opts.win32metadata?.CompanyName; - if (!opts.appVersion) { - props.push('version'); + if (needAuthor) { + debug('Requiring author in package.json, as CompanyName was not specified for win32metadata'); } - if (!opts.electronVersion) { - props.push([ - 'dependencies.electron', - 'devDependencies.electron', - 'dependencies.electron-nightly', - 'devDependencies.electron-nightly', - ]); - } + const initiallyNeeded = [ + needName && 'productName', + needVersion && 'version', + needElectron && 'dependencies.electron', + needAuthor && 'author', + ].filter(Boolean) as string[]; + + if (!initiallyNeeded.length) return result; + + for await (const { src, pkg } of walkPackageJSONs(dir)) { + if (needName) { + const name = pkg.productName ?? pkg.name; + if (name !== undefined) { + const field = pkg.productName !== undefined ? 'productName' : 'name'; + debug(`Inferring application name from ${field} in ${src}`); + result.name = name; + needName = false; + } + } - if (platforms.includes('win32') && !(opts.win32metadata && opts.win32metadata.CompanyName)) { - debug('Requiring author in package.json, as CompanyName was not specified for win32metadata'); - props.push('author'); - } + if (needVersion && pkg.version !== undefined) { + debug(`Inferring appVersion from version in ${src}`); + result.appVersion = pkg.version; + needVersion = false; + } - // Search package.json files to infer name and version from - try { - const packageInfo = await getPackageInfo(props, dir); - return handleMetadata(opts, packageInfo); - } catch (e) { - const err = e as GetPackageInfoError; - - if (err.missingProps) { - if (err.missingProps.length === props.length) { - debug(err.message); - err.message = `Could not locate a package.json file in "${path.resolve(opts.dir)}" or its parent directories for an Electron app with the following fields: ${err.missingProps.join(', ')}`; + if (needAuthor && pkg.author !== undefined) { + debug(`Inferring win32metadata.CompanyName from author in ${src}`); + const win32metadata = opts.win32metadata || {}; + if (typeof pkg.author === 'string') { + win32metadata.CompanyName = parseAuthor(pkg.author).name; + } else if (pkg.author.name) { + win32metadata.CompanyName = pkg.author.name; } else { - return handleMissingProperties(opts, err); + debug('Cannot infer win32metadata.CompanyName from author, no name found'); + } + result.win32metadata = win32metadata; + needAuthor = false; + } + + if (needElectron) { + for (const packageName of ELECTRON_PACKAGES) { + if ( + pkg.dependencies?.[packageName] !== undefined || + pkg.devDependencies?.[packageName] !== undefined + ) { + result.electronVersion = await resolveElectronVersion(packageName, src); + needElectron = false; + break; + } } } - throw err; + if (!needName && !needVersion && !needElectron && !needAuthor) break; } + + const stillMissing = [ + needName && 'productName', + needVersion && 'version', + needElectron && 'dependencies.electron', + needAuthor && 'author', + ].filter(Boolean) as string[]; + + if (stillMissing.length) { + if (stillMissing.length === initiallyNeeded.length) { + throw new Error( + `Could not locate a package.json file in "${path.resolve(opts.dir)}" or its parent directories for an Electron app with the following fields: ${initiallyNeeded.join(', ')}`, + ); + } + if (needName || needElectron) { + const messages: string[] = []; + if (needName) messages.push(errorMessageForProperty('application name', 'name')); + if (needVersion) messages.push(errorMessageForProperty('application version', 'appversion')); + if (needElectron) + messages.push(errorMessageForProperty('Electron version', 'electronversion')); + throw new Error(messages.join('\n') + '\n'); + } + } + + return result; } diff --git a/yarn.lock b/yarn.lock index e2526daf..d86873ff 100644 --- a/yarn.lock +++ b/yarn.lock @@ -79,14 +79,12 @@ __metadata: "@types/node": "npm:~22.10.7" "@types/parse-author": "npm:^2.0.2" "@types/plist": "npm:^3.0.5" - "@types/resolve": "npm:^1.20.6" "@types/semver": "npm:^7.7.0" "@types/yargs-parser": "npm:^21.0.3" debug: "npm:^4.4.1" extract-zip: "npm:^2.0.1" filenamify: "npm:^6.0.0" galactus: "npm:^2.0.2" - get-package-info: "npm:^1.0.0" graceful-fs: "npm:^4.2.11" husky: "npm:^9.1.7" junk: "npm:^4.0.1" @@ -97,7 +95,6 @@ __metadata: parse-author: "npm:^2.0.0" plist: "npm:^3.1.0" resedit: "npm:^2.0.3" - resolve: "npm:^1.22.10" semver: "npm:^7.7.2" tsx: "npm:^4.20.4" typedoc: "npm:~0.28.0" @@ -1236,13 +1233,6 @@ __metadata: languageName: node linkType: hard -"@types/resolve@npm:^1.20.6": - version: 1.20.6 - resolution: "@types/resolve@npm:1.20.6" - checksum: 10c0/a9b0549d816ff2c353077365d865a33655a141d066d0f5a3ba6fd4b28bc2f4188a510079f7c1f715b3e7af505a27374adce2a5140a3ece2a059aab3d6e1a4244 - languageName: node - linkType: hard - "@types/semver@npm:^7.7.0": version: 7.7.0 resolution: "@types/semver@npm:7.7.0" @@ -1472,13 +1462,6 @@ __metadata: languageName: node linkType: hard -"bluebird@npm:^3.1.1": - version: 3.7.2 - resolution: "bluebird@npm:3.7.2" - checksum: 10c0/680de03adc54ff925eaa6c7bb9a47a0690e8b5de60f4792604aae8ed618c65e6b63a7893b57ca924beaf53eee69c5af4f8314148c08124c550fe1df1add897d2 - languageName: node - linkType: hard - "boolean@npm:^3.0.1": version: 3.2.0 resolution: "boolean@npm:3.2.0" @@ -1690,15 +1673,6 @@ __metadata: languageName: node linkType: hard -"debug@npm:^2.2.0": - version: 2.6.9 - resolution: "debug@npm:2.6.9" - dependencies: - ms: "npm:2.0.0" - checksum: 10c0/121908fb839f7801180b69a7e218a40b5a0b718813b886b7d6bdb82001b931c938e2941d1e4450f33a1b1df1da653f5f7a0440c197f29fbf8a6e9d45ff6ef589 - languageName: node - linkType: hard - "debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.4": version: 4.3.6 resolution: "debug@npm:4.3.6" @@ -1854,15 +1828,6 @@ __metadata: languageName: node linkType: hard -"error-ex@npm:^1.2.0": - version: 1.3.2 - resolution: "error-ex@npm:1.3.2" - dependencies: - is-arrayish: "npm:^0.2.1" - checksum: 10c0/ba827f89369b4c93382cfca5a264d059dfefdaa56ecc5e338ffa58a6471f5ed93b71a20add1d52290a4873d92381174382658c885ac1a2305f7baca363ce9cce - languageName: node - linkType: hard - "es-module-lexer@npm:^1.7.0": version: 1.7.0 resolution: "es-module-lexer@npm:1.7.0" @@ -2158,15 +2123,6 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^2.0.0": - version: 2.1.0 - resolution: "find-up@npm:2.1.0" - dependencies: - locate-path: "npm:^2.0.0" - checksum: 10c0/c080875c9fe28eb1962f35cbe83c683796a0321899f1eed31a37577800055539815de13d53495049697d3ba313013344f843bb9401dd337a1b832be5edfc6840 - languageName: node - linkType: hard - "flora-colossus@npm:^3.0.2": version: 3.0.2 resolution: "flora-colossus@npm:3.0.2" @@ -2247,13 +2203,6 @@ __metadata: languageName: node linkType: hard -"function-bind@npm:^1.1.2": - version: 1.1.2 - resolution: "function-bind@npm:1.1.2" - checksum: 10c0/d8680ee1e5fcd4c197e4ac33b2b4dce03c71f4d91717292785703db200f5c21f977c568d28061226f9b5900cbcd2c84463646134fd5337e7925e0942bc3f46d5 - languageName: node - linkType: hard - "galactus@npm:^2.0.2": version: 2.0.2 resolution: "galactus@npm:2.0.2" @@ -2289,18 +2238,6 @@ __metadata: languageName: node linkType: hard -"get-package-info@npm:^1.0.0": - version: 1.0.0 - resolution: "get-package-info@npm:1.0.0" - dependencies: - bluebird: "npm:^3.1.1" - debug: "npm:^2.2.0" - lodash.get: "npm:^4.0.0" - read-pkg-up: "npm:^2.0.0" - checksum: 10c0/4d1a52442d876948e93d929afac609c023a1d61bc5eda17a176e1b7c520207da97e0a58d34e9e5bfc776e1c0b226745e3f672901cfa4fad6f5d46cae9a3993b5 - languageName: node - linkType: hard - "get-stream@npm:^5.1.0": version: 5.2.0 resolution: "get-stream@npm:5.2.0" @@ -2403,13 +2340,6 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.2": - version: 4.2.10 - resolution: "graceful-fs@npm:4.2.10" - checksum: 10c0/4223a833e38e1d0d2aea630c2433cfb94ddc07dfc11d511dbd6be1d16688c5be848acc31f9a5d0d0ddbfb56d2ee5a6ae0278aceeb0ca6a13f27e06b9956fb952 - languageName: node - linkType: hard - "graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" @@ -2442,31 +2372,6 @@ __metadata: languageName: node linkType: hard -"hasown@npm:^2.0.0": - version: 2.0.0 - resolution: "hasown@npm:2.0.0" - dependencies: - function-bind: "npm:^1.1.2" - checksum: 10c0/5d415b114f410661208c95e7ab4879f1cc2765b8daceff4dc8718317d1cb7b9ffa7c5d1eafd9a4389c9aab7445d6ea88e05f3096cb1e529618b55304956b87fc - languageName: node - linkType: hard - -"hasown@npm:^2.0.2": - version: 2.0.2 - resolution: "hasown@npm:2.0.2" - dependencies: - function-bind: "npm:^1.1.2" - checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9 - languageName: node - linkType: hard - -"hosted-git-info@npm:^2.1.4": - version: 2.8.9 - resolution: "hosted-git-info@npm:2.8.9" - checksum: 10c0/317cbc6b1bbbe23c2a40ae23f3dafe9fa349ce42a89a36f930e3f9c0530c179a3882d2ef1e4141a4c3674d6faaea862138ec55b43ad6f75e387fda2483a13c70 - languageName: node - linkType: hard - "http-cache-semantics@npm:^4.1.1": version: 4.2.0 resolution: "http-cache-semantics@npm:4.2.0" @@ -2536,31 +2441,6 @@ __metadata: languageName: node linkType: hard -"is-arrayish@npm:^0.2.1": - version: 0.2.1 - resolution: "is-arrayish@npm:0.2.1" - checksum: 10c0/e7fb686a739068bb70f860b39b67afc62acc62e36bb61c5f965768abce1873b379c563e61dd2adad96ebb7edf6651111b385e490cf508378959b0ed4cac4e729 - languageName: node - linkType: hard - -"is-core-module@npm:^2.13.0": - version: 2.13.1 - resolution: "is-core-module@npm:2.13.1" - dependencies: - hasown: "npm:^2.0.0" - checksum: 10c0/2cba9903aaa52718f11c4896dabc189bab980870aae86a62dc0d5cedb546896770ee946fb14c84b7adf0735f5eaea4277243f1b95f5cefa90054f92fbcac2518 - languageName: node - linkType: hard - -"is-core-module@npm:^2.16.0": - version: 2.16.1 - resolution: "is-core-module@npm:2.16.1" - dependencies: - hasown: "npm:^2.0.2" - checksum: 10c0/898443c14780a577e807618aaae2b6f745c8538eca5c7bc11388a3f2dc6de82b9902bcc7eb74f07be672b11bbe82dd6a6edded44a00cb3d8f933d0459905eedd - languageName: node - linkType: hard - "is-fullwidth-code-point@npm:^3.0.0": version: 3.0.0 resolution: "is-fullwidth-code-point@npm:3.0.0" @@ -2712,35 +2592,6 @@ __metadata: languageName: node linkType: hard -"load-json-file@npm:^2.0.0": - version: 2.0.0 - resolution: "load-json-file@npm:2.0.0" - dependencies: - graceful-fs: "npm:^4.1.2" - parse-json: "npm:^2.2.0" - pify: "npm:^2.0.0" - strip-bom: "npm:^3.0.0" - checksum: 10c0/15cf1259361325fadfc54cd4ecc5d6729103c8873492001ba5473fb1ef753000f680c887db6c86fec69a4ede009efeb8c0c0c77b2a31bc54d2793767e25577c9 - languageName: node - linkType: hard - -"locate-path@npm:^2.0.0": - version: 2.0.0 - resolution: "locate-path@npm:2.0.0" - dependencies: - p-locate: "npm:^2.0.0" - path-exists: "npm:^3.0.0" - checksum: 10c0/24efa0e589be6aa3c469b502f795126b26ab97afa378846cb508174211515633b770aa0ba610cab113caedab8d2a4902b061a08aaed5297c12ab6f5be4df0133 - languageName: node - linkType: hard - -"lodash.get@npm:^4.0.0": - version: 4.4.2 - resolution: "lodash.get@npm:4.4.2" - checksum: 10c0/48f40d471a1654397ed41685495acb31498d5ed696185ac8973daef424a749ca0c7871bf7b665d5c14f5cc479394479e0307e781f61d5573831769593411be6e - languageName: node - linkType: hard - "log-update@npm:^6.1.0": version: 6.1.0 resolution: "log-update@npm:6.1.0" @@ -2991,13 +2842,6 @@ __metadata: languageName: node linkType: hard -"ms@npm:2.0.0": - version: 2.0.0 - resolution: "ms@npm:2.0.0" - checksum: 10c0/f8fda810b39fd7255bbdc451c46286e549794fcc700dc9cd1d25658bbc4dc2563a5de6fe7c60f798a16a60c6ceb53f033cb353f493f0cf63e5199b702943159d - languageName: node - linkType: hard - "ms@npm:2.1.2": version: 2.1.2 resolution: "ms@npm:2.1.2" @@ -3059,18 +2903,6 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^2.3.2": - version: 2.5.0 - resolution: "normalize-package-data@npm:2.5.0" - dependencies: - hosted-git-info: "npm:^2.1.4" - resolve: "npm:^1.10.0" - semver: "npm:2 || 3 || 4 || 5" - validate-npm-package-license: "npm:^3.0.1" - checksum: 10c0/357cb1646deb42f8eb4c7d42c4edf0eec312f3628c2ef98501963cc4bbe7277021b2b1d977f982b2edce78f5a1014613ce9cf38085c3df2d76730481357ca504 - languageName: node - linkType: hard - "normalize-url@npm:^8.0.1": version: 8.0.2 resolution: "normalize-url@npm:8.0.2" @@ -3281,15 +3113,6 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^1.1.0": - version: 1.3.0 - resolution: "p-limit@npm:1.3.0" - dependencies: - p-try: "npm:^1.0.0" - checksum: 10c0/5c1b1d53d180b2c7501efb04b7c817448e10efe1ba46f4783f8951994d5027e4cd88f36ad79af50546682594c4ebd11702ac4b9364c47f8074890e2acad0edee - languageName: node - linkType: hard - "p-limit@npm:^3.1.0 ": version: 3.1.0 resolution: "p-limit@npm:3.1.0" @@ -3299,15 +3122,6 @@ __metadata: languageName: node linkType: hard -"p-locate@npm:^2.0.0": - version: 2.0.0 - resolution: "p-locate@npm:2.0.0" - dependencies: - p-limit: "npm:^1.1.0" - checksum: 10c0/82da4be88fb02fd29175e66021610c881938d3cc97c813c71c1a605fac05617d57fd5d3b337494a6106c0edb2a37c860241430851411f1b265108cead34aee67 - languageName: node - linkType: hard - "p-map@npm:^7.0.2": version: 7.0.3 resolution: "p-map@npm:7.0.3" @@ -3315,13 +3129,6 @@ __metadata: languageName: node linkType: hard -"p-try@npm:^1.0.0": - version: 1.0.0 - resolution: "p-try@npm:1.0.0" - checksum: 10c0/757ba31de5819502b80c447826fac8be5f16d3cb4fbf9bc8bc4971dba0682e84ac33e4b24176ca7058c69e29f64f34d8d9e9b08e873b7b7bb0aa89d620fa224a - languageName: node - linkType: hard - "package-json-from-dist@npm:^1.0.0": version: 1.0.1 resolution: "package-json-from-dist@npm:1.0.1" @@ -3338,22 +3145,6 @@ __metadata: languageName: node linkType: hard -"parse-json@npm:^2.2.0": - version: 2.2.0 - resolution: "parse-json@npm:2.2.0" - dependencies: - error-ex: "npm:^1.2.0" - checksum: 10c0/7a90132aa76016f518a3d5d746a21b3f1ad0f97a68436ed71b6f995b67c7151141f5464eea0c16c59aec9b7756519a0e3007a8f98cf3714632d509ec07736df6 - languageName: node - linkType: hard - -"path-exists@npm:^3.0.0": - version: 3.0.0 - resolution: "path-exists@npm:3.0.0" - checksum: 10c0/17d6a5664bc0a11d48e2b2127d28a0e58822c6740bde30403f08013da599182289c56518bec89407e3f31d3c2b6b296a4220bc3f867f0911fee6952208b04167 - languageName: node - linkType: hard - "path-key@npm:^3.1.0": version: 3.1.1 resolution: "path-key@npm:3.1.1" @@ -3361,13 +3152,6 @@ __metadata: languageName: node linkType: hard -"path-parse@npm:^1.0.7": - version: 1.0.7 - resolution: "path-parse@npm:1.0.7" - checksum: 10c0/11ce261f9d294cc7a58d6a574b7f1b935842355ec66fba3c3fd79e0f036462eaf07d0aa95bb74ff432f9afef97ce1926c720988c6a7451d8a584930ae7de86e1 - languageName: node - linkType: hard - "path-scurry@npm:^1.11.1": version: 1.11.1 resolution: "path-scurry@npm:1.11.1" @@ -3388,15 +3172,6 @@ __metadata: languageName: node linkType: hard -"path-type@npm:^2.0.0": - version: 2.0.0 - resolution: "path-type@npm:2.0.0" - dependencies: - pify: "npm:^2.0.0" - checksum: 10c0/e475cead839e65a2f8fdde634b24a4116b49daea3917470552e19d49c63e59ef17963bec2f57df2c72a85fcd1f86c8850d9742e68dba9c9c8d9bcac38bab03d6 - languageName: node - linkType: hard - "pathe@npm:^2.0.3": version: 2.0.3 resolution: "pathe@npm:2.0.3" @@ -3439,13 +3214,6 @@ __metadata: languageName: node linkType: hard -"pify@npm:^2.0.0": - version: 2.3.0 - resolution: "pify@npm:2.3.0" - checksum: 10c0/551ff8ab830b1052633f59cb8adc9ae8407a436e06b4a9718bcb27dc5844b83d535c3a8512b388b6062af65a98c49bdc0dd523d8b2617b188f7c8fee457158dc - languageName: node - linkType: hard - "plist@npm:^3.0.5, plist@npm:^3.1.0": version: 3.1.0 resolution: "plist@npm:3.1.0" @@ -3527,27 +3295,6 @@ __metadata: languageName: node linkType: hard -"read-pkg-up@npm:^2.0.0": - version: 2.0.0 - resolution: "read-pkg-up@npm:2.0.0" - dependencies: - find-up: "npm:^2.0.0" - read-pkg: "npm:^2.0.0" - checksum: 10c0/6fbb9f8c1a9ed3c8a5764387a77ac4456082f1fe98757d1ed300d8b0a4c70501f28cbb053ae7b3e0de6094930fb7258fbfe099957a53c999337aaf8bc53ff37f - languageName: node - linkType: hard - -"read-pkg@npm:^2.0.0": - version: 2.0.0 - resolution: "read-pkg@npm:2.0.0" - dependencies: - load-json-file: "npm:^2.0.0" - normalize-package-data: "npm:^2.3.2" - path-type: "npm:^2.0.0" - checksum: 10c0/c0d1b66c58e58fadaabe48c83c525fb1966304555e5089fab5ccce2c3dfe0fad726720b170a5fa23ff20452e22d1dbe817f5c63f03546bb85cbfb6b84da84c2b - languageName: node - linkType: hard - "resedit@npm:^2.0.3": version: 2.0.3 resolution: "resedit@npm:2.0.3" @@ -3571,58 +3318,6 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.10.0": - version: 1.22.8 - resolution: "resolve@npm:1.22.8" - dependencies: - is-core-module: "npm:^2.13.0" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10c0/07e179f4375e1fd072cfb72ad66d78547f86e6196c4014b31cb0b8bb1db5f7ca871f922d08da0fbc05b94e9fd42206f819648fa3b5b873ebbc8e1dc68fec433a - languageName: node - linkType: hard - -"resolve@npm:^1.22.10": - version: 1.22.10 - resolution: "resolve@npm:1.22.10" - dependencies: - is-core-module: "npm:^2.16.0" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10c0/8967e1f4e2cc40f79b7e080b4582b9a8c5ee36ffb46041dccb20e6461161adf69f843b43067b4a375de926a2cd669157e29a29578191def399dd5ef89a1b5203 - languageName: node - linkType: hard - -"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin": - version: 1.22.8 - resolution: "resolve@patch:resolve@npm%3A1.22.8#optional!builtin::version=1.22.8&hash=c3c19d" - dependencies: - is-core-module: "npm:^2.13.0" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10c0/0446f024439cd2e50c6c8fa8ba77eaa8370b4180f401a96abf3d1ebc770ac51c1955e12764cde449fde3fff480a61f84388e3505ecdbab778f4bef5f8212c729 - languageName: node - linkType: hard - -"resolve@patch:resolve@npm%3A^1.22.10#optional!builtin": - version: 1.22.10 - resolution: "resolve@patch:resolve@npm%3A1.22.10#optional!builtin::version=1.22.10&hash=c3c19d" - dependencies: - is-core-module: "npm:^2.16.0" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10c0/52a4e505bbfc7925ac8f4cd91fd8c4e096b6a89728b9f46861d3b405ac9a1ccf4dcbf8befb4e89a2e11370dacd0160918163885cbc669369590f2f31f4c58939 - languageName: node - linkType: hard - "responselike@npm:^3.0.0": version: 3.0.0 resolution: "responselike@npm:3.0.0" @@ -3774,15 +3469,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5": - version: 5.7.2 - resolution: "semver@npm:5.7.2" - bin: - semver: bin/semver - checksum: 10c0/e4cf10f86f168db772ae95d86ba65b3fd6c5967c94d97c708ccb463b778c2ee53b914cd7167620950fc07faf5a564e6efe903836639e512a1aa15fbc9667fa25 - languageName: node - linkType: hard - "semver@npm:^7.3.2": version: 7.6.3 resolution: "semver@npm:7.6.3" @@ -3895,40 +3581,6 @@ __metadata: languageName: node linkType: hard -"spdx-correct@npm:^3.0.0": - version: 3.1.1 - resolution: "spdx-correct@npm:3.1.1" - dependencies: - spdx-expression-parse: "npm:^3.0.0" - spdx-license-ids: "npm:^3.0.0" - checksum: 10c0/25909eecc4024963a8e398399dbdd59ddb925bd7dbecd9c9cf6df0d75c29b68cd30b82123564acc51810eb02cfc4b634a2e16e88aa982433306012e318849249 - languageName: node - linkType: hard - -"spdx-exceptions@npm:^2.1.0": - version: 2.3.0 - resolution: "spdx-exceptions@npm:2.3.0" - checksum: 10c0/83089e77d2a91cb6805a5c910a2bedb9e50799da091f532c2ba4150efdef6e53f121523d3e2dc2573a340dc0189e648b03157097f65465b3a0c06da1f18d7e8a - languageName: node - linkType: hard - -"spdx-expression-parse@npm:^3.0.0": - version: 3.0.1 - resolution: "spdx-expression-parse@npm:3.0.1" - dependencies: - spdx-exceptions: "npm:^2.1.0" - spdx-license-ids: "npm:^3.0.0" - checksum: 10c0/6f8a41c87759fa184a58713b86c6a8b028250f158159f1d03ed9d1b6ee4d9eefdc74181c8ddc581a341aa971c3e7b79e30b59c23b05d2436d5de1c30bdef7171 - languageName: node - linkType: hard - -"spdx-license-ids@npm:^3.0.0": - version: 3.0.12 - resolution: "spdx-license-ids@npm:3.0.12" - checksum: 10c0/b749db2fdecf4ac1893b8e4c435c3bfe5247af9cb412a3cd8375c8bc5a24ad7f3c4263dfe0fc04701f98613f189787700f1deac3e9272c96dfaffc01826c2d0f - languageName: node - linkType: hard - "sprintf-js@npm:^1.1.2": version: 1.1.2 resolution: "sprintf-js@npm:1.1.2" @@ -4036,13 +3688,6 @@ __metadata: languageName: node linkType: hard -"strip-bom@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-bom@npm:3.0.0" - checksum: 10c0/51201f50e021ef16672593d7434ca239441b7b760e905d9f33df6e4f3954ff54ec0e0a06f100d028af0982d6f25c35cd5cda2ce34eaebccd0250b8befb90d8f1 - languageName: node - linkType: hard - "strip-literal@npm:^3.0.0": version: 3.0.0 resolution: "strip-literal@npm:3.0.0" @@ -4061,13 +3706,6 @@ __metadata: languageName: node linkType: hard -"supports-preserve-symlinks-flag@npm:^1.0.0": - version: 1.0.0 - resolution: "supports-preserve-symlinks-flag@npm:1.0.0" - checksum: 10c0/6c4032340701a9950865f7ae8ef38578d8d7053f5e10518076e6554a9381fa91bd9c6850193695c141f32b21f979c985db07265a758867bac95de05f7d8aeb39 - languageName: node - linkType: hard - "tar@npm:^7.4.3": version: 7.5.13 resolution: "tar@npm:7.5.13" @@ -4249,16 +3887,6 @@ __metadata: languageName: node linkType: hard -"validate-npm-package-license@npm:^3.0.1": - version: 3.0.4 - resolution: "validate-npm-package-license@npm:3.0.4" - dependencies: - spdx-correct: "npm:^3.0.0" - spdx-expression-parse: "npm:^3.0.0" - checksum: 10c0/7b91e455a8de9a0beaa9fe961e536b677da7f48c9a493edf4d4d4a87fd80a7a10267d438723364e432c2fcd00b5650b5378275cded362383ef570276e6312f4f - languageName: node - linkType: hard - "vite-node@npm:3.2.4": version: 3.2.4 resolution: "vite-node@npm:3.2.4"