From ba6a18c92cbb8dfb1383c2cb689d722489a24d3b Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 18 Jan 2024 09:05:08 -0700 Subject: [PATCH 01/44] feat: add npm and pnpm options --- package.json | 1 + src/plugins.ts | 32 +++++++++++++++++++++++++++++--- src/yarn.ts | 8 ++++++++ yarn.lock | 5 +++++ 4 files changed, 43 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index a6b9e931..396a7b2a 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "debug": "^4.3.4", "npm": "10.2.3", "npm-run-path": "^4.0.1", + "pnpm": "^8.12.0", "semver": "^7.5.4", "shelljs": "^0.8.5", "validate-npm-package-name": "^5.0.0", diff --git a/src/plugins.ts b/src/plugins.ts index 0ff10f20..ae285cc9 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -124,7 +124,29 @@ export default class Plugins { // validate that the package name exists in the npm registry before installing await this.npmHasPackage(name, true) - await this.yarn.exec([...add, `${name}@${tag}`], yarnOpts) + + // await mkdir(join(this.config.dataDir, name), {recursive: true}) + // await writeFile(join(this.config.dataDir, name, 'package.json'), JSON.stringify({name, version: tag})) + // await this.yarn.pnpm(['add', name], {...yarnOpts, cwd: join(this.config.dataDir, name)}) + // await this.yarn.pnpm(['link', '--dir', join(name, 'node_modules', name)], yarnOpts) + + const packageManager = process.env.PM ?? 'yarn' + switch (packageManager) { + case 'yarn': { + await this.yarn.exec([...add, `${name}@${tag}`], yarnOpts) + break + } + + case 'pnpm': { + await this.yarn.pnpm(['add', `${name}@${tag}`], yarnOpts) + break + } + + case 'npm': { + await this.yarn.npm(['install', `${name}@${tag}`, '--omit', 'dev'], yarnOpts) + break + } + } this.debug(`loading plugin ${name}...`) plugin = await Config.load({ @@ -137,7 +159,10 @@ export default class Plugins { this.isValidPlugin(plugin) - await this.refresh({all: true, prod: true}, plugin.root) + if (packageManager === 'yarn') { + // await this.refresh({all: true, prod: true}, plugin.root) + } + await this.add({name, tag: range || tag, type: 'user'}) } @@ -397,6 +422,7 @@ export default class Plugins { this.debug(`Using npm executable located at: ${npmCli}`) // wrap node and path in double quotes to deal with spaces + // TODO: This doesn't respect scoped NPM_REGISTRY env var const command = `"${nodeExecutable}" "${npmCli}" show ${name} dist-tags` let npmShowResult @@ -434,6 +460,6 @@ export default class Plugins { private async savePJSON(pjson: UserPJSON) { this.debug(`saving pjson at ${this.pjsonPath}`, JSON.stringify(pjson, null, 2)) await mkdir(dirname(this.pjsonPath), {recursive: true}) - await writeFile(this.pjsonPath, JSON.stringify(pjson, null, 2)) + await writeFile(this.pjsonPath, JSON.stringify({name: this.config.name, ...pjson}, null, 2)) } } diff --git a/src/yarn.ts b/src/yarn.ts index 3fa50270..79ae3413 100644 --- a/src/yarn.ts +++ b/src/yarn.ts @@ -138,4 +138,12 @@ export default class Yarn { }) }) } + + async npm(args: string[], opts: YarnExecOptions): Promise { + await this.fork(require.resolve('.bin/npm'), args, opts) + } + + async pnpm(args: string[], opts: YarnExecOptions): Promise { + await this.fork(require.resolve('.bin/pnpm'), args, opts) + } } diff --git a/yarn.lock b/yarn.lock index f55a5227..831d9898 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5879,6 +5879,11 @@ pluralize@^8.0.0: resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== +pnpm@^8.12.0: + version "8.12.0" + resolved "https://registry.yarnpkg.com/pnpm/-/pnpm-8.12.0.tgz#7134f9b8d0b70bc7a1954f47af52123cd2b2acce" + integrity sha512-J5J4+Dvngvb6rvusvMxQMwHE7Cza/UCYPnwmru7nw4Jw9cjmNbQ0ZGkbiXq+FnW0DAbfbtrd6SJTK3NoqppSZw== + postcss-selector-parser@^6.0.10: version "6.0.13" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" From 94f066835778d1d33bc1f759bbc373699becd11b Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Tue, 23 Jan 2024 10:39:36 -0700 Subject: [PATCH 02/44] feat!: use npm for installs BREAKING CHANGES: use npm for all plugin operations --- package.json | 2 + src/commands/plugins/inspect.ts | 25 ++-- src/package-manager.ts | 138 +++++++++++++++++ src/plugins.ts | 191 ++++++++++++------------ src/yarn.ts | 48 +++--- test/integration/install.integration.ts | 13 -- yarn.lock | 5 + 7 files changed, 280 insertions(+), 142 deletions(-) create mode 100644 src/package-manager.ts diff --git a/package.json b/package.json index 51ac1e6a..e77ab600 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "chalk": "^5.3.0", "debug": "^4.3.4", "npm": "10.2.3", + "npm-package-arg": "^11.0.1", "npm-run-path": "^4.0.1", "pnpm": "^8.12.0", "semver": "^7.5.4", @@ -24,6 +25,7 @@ "@types/debug": "^4.1.12", "@types/mocha": "^10.0.6", "@types/node": "^18", + "@types/npm-package-arg": "^6.1.4", "@types/semver": "^7.5.6", "@types/shelljs": "^0.8.15", "@types/sinon": "^10.0.19", diff --git a/src/commands/plugins/inspect.ts b/src/commands/plugins/inspect.ts index aae9ae75..009c54db 100644 --- a/src/commands/plugins/inspect.ts +++ b/src/commands/plugins/inspect.ts @@ -70,18 +70,21 @@ export default class PluginsInspect extends Command { paths.push(start) } - try { - return await Promise.any( - paths.map(async (p) => { - const fullPath = join(p, dependencyPath) - const pkgJsonPath = join(fullPath, 'package.json') - const pkgJson = JSON.parse(await readFile(pkgJsonPath, 'utf8')) - return {pkgPath: fullPath, version: pkgJson.version as string} - }), - ) - } catch { - return {pkgPath: null, version: null} + // NOTE: we cannot parallelize this because we need to check the paths in the order they were found. + // Parallelizing this would be faster, but would make the result non-deterministic. + for (const p of paths) { + try { + const fullPath = join(p, dependencyPath) + const pkgJsonPath = join(fullPath, 'package.json') + // eslint-disable-next-line no-await-in-loop + const pkgJson = JSON.parse(await readFile(pkgJsonPath, 'utf8')) + return {pkgPath: fullPath, version: pkgJson.version as string} + } catch { + // try the next path + } } + + return {pkgPath: null, version: null} } findPlugin(pluginName: string): Plugin { diff --git a/src/package-manager.ts b/src/package-manager.ts new file mode 100644 index 00000000..0c924af2 --- /dev/null +++ b/src/package-manager.ts @@ -0,0 +1,138 @@ +import {Interfaces, ux} from '@oclif/core' +import makeDebug from 'debug' +import {fork} from 'node:child_process' +import {createRequire} from 'node:module' +import {fileURLToPath} from 'node:url' +import NpmRunPath from 'npm-run-path' + +const debug = makeDebug('cli:yarn') + +const require = createRequire(import.meta.url) + +export type PackageManagerExecOptions = { + cwd: string + noSpinner?: boolean + silent: boolean + verbose: boolean +} + +export type InstallOptions = PackageManagerExecOptions & { + prod?: boolean +} + +export abstract class PackageManager { + protected config: Interfaces.Config + + constructor({config}: {config: Interfaces.Config}) { + this.config = config + } + + abstract exec(args: string[], opts: PackageManagerExecOptions): Promise + abstract install(args: string[], opts: InstallOptions): Promise + abstract get name(): 'npm' | 'yarn' + abstract refresh(args: string[], opts: InstallOptions): Promise + abstract uninstall(args: string[], opts: PackageManagerExecOptions): Promise + abstract update(args: string[], opts: PackageManagerExecOptions): Promise +} + +export class NPM extends PackageManager { + public get name(): 'npm' { + return 'npm' + } + + async exec(args: string[] = [], opts: PackageManagerExecOptions): Promise { + const bin = require.resolve('.bin/npm', {paths: [this.config.root, fileURLToPath(import.meta.url)]}) + debug('npm binary path', bin) + const {cwd, silent, verbose} = opts + if (args[0] !== 'run') { + const networkTimeout = this.config.scopedEnvVar('NETWORK_TIMEOUT') + if (networkTimeout) args.push(`--network-timeout=${networkTimeout}`) + + if (verbose && !silent) args.push('--verbose') + if (silent && !verbose) args.push('--silent') + + if (this.config.npmRegistry) args.push(`--registry=${this.config.npmRegistry}`) + } + + const npmRunPath: typeof NpmRunPath = require('npm-run-path') + const options = { + ...opts, + cwd, + env: npmRunPath.env({cwd, env: process.env}), + // The ts-node/esm loader isn't need to execute yarn commands anyways. + execArgv: process.execArgv + .join(' ') + // Remove --loader ts-node/esm from execArgv so that the subprocess doesn't fail if it can't find ts-node. + .replace('--loader ts-node/esm', '') + .replace('--loader=ts-node/esm', '') + .split(' ') + .filter(Boolean), + stdio: [0, null, null, 'ipc'], + } + + if (verbose) { + process.stderr.write(`${cwd}: ${bin} ${args.join(' ')}`) + } + + debug(`${cwd}: ${bin} ${args.join(' ')}`) + try { + await this.fork(bin, args, options) + debug('npm done') + } catch (error: unknown) { + debug('npm error', error) + throw error + } + } + + fork(modulePath: string, args: string[] = [], options: PackageManagerExecOptions): Promise { + return new Promise((resolve, reject) => { + const forked = fork(modulePath, args, { + ...options, + env: { + ...process.env, + // Disable husky hooks because a plugin might be trying to install them, which will + // break the install since the install location isn't a .git directory. + HUSKY: '0', + }, + }) + forked.stderr?.on('data', (d: Buffer) => { + if (!options.silent) { + const str = d.toString() + process.stderr.write(str) + } + }) + forked.stdout?.setEncoding('utf8') + forked.stdout?.on('data', (d) => { + if (options.verbose) process.stdout.write(d) + else if (!options.noSpinner) ux.action.status = d.replace(/\n$/, '').split('\n').pop() + }) + + forked.on('error', reject) + forked.on('exit', (code: number) => { + if (code === 0) { + resolve() + } else { + reject(new Error(`${modulePath} ${args.join(' ')} exited with code ${code}`)) + } + }) + }) + } + + async install(args: string[], opts: InstallOptions): Promise { + const prod = opts.prod ? ['--omit', 'dev'] : [] + await this.exec(['install', ...args, ...prod, '--json'], opts) + } + + async refresh(args: string[], opts: InstallOptions): Promise { + const prod = opts.prod ? ['--omit', 'dev'] : [] + await this.exec(['install', ...args, ...prod], opts) + } + + async uninstall(args: string[], opts: PackageManagerExecOptions): Promise { + await this.exec(['uninstall', ...args], opts) + } + + async update(args: string[], opts: PackageManagerExecOptions): Promise { + await this.exec(['update', ...args], opts) + } +} diff --git a/src/plugins.ts b/src/plugins.ts index ae285cc9..856dcb87 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -2,9 +2,11 @@ import {Config, Errors, Interfaces, ux} from '@oclif/core' import makeDebug from 'debug' import {access, mkdir, readFile, rename, writeFile} from 'node:fs/promises' import {dirname, join, resolve} from 'node:path' +import npa from 'npm-package-arg' import {gt, valid, validRange} from 'semver' -import {findNode, findNpm, uniq, uniqWith} from './util.js' +import {NPM, PackageManager} from './package-manager.js' +import {findNode, findNpm, uniqWith} from './util.js' import Yarn from './yarn.js' type UserPJSON = { @@ -31,39 +33,52 @@ async function fileExists(filePath: string): Promise { } } -export default class Plugins { - silent = false - verbose = false +function dedupePlugins( + plugins: Interfaces.PJSON.PluginTypes[], +): (Interfaces.PJSON.PluginTypes.Link | Interfaces.PJSON.PluginTypes.User)[] { + return uniqWith( + plugins, + // @ts-expect-error because typescript doesn't think it's possible for a plugin to have the `link` type here + (a, b) => a.name === b.name || (a.type === 'link' && b.type === 'link' && a.root === b.root), + ) as (Interfaces.PJSON.PluginTypes.Link | Interfaces.PJSON.PluginTypes.User)[] +} - readonly yarn: Yarn +export default class Plugins { + public readonly packageManager: PackageManager + public silent = false + public verbose = false private readonly debug: ReturnType constructor(public config: Interfaces.Config) { - this.yarn = new Yarn({config}) this.debug = makeDebug('@oclif/plugins') + this.packageManager = + this.config.scopedEnvVar('PACKAGE_MANAGER')?.toLowerCase() === 'yarn' ? new Yarn({config}) : new NPM({config}) + if (this.packageManager.name === 'yarn') { + ux.warn('All yarn related functionality should be removed prior to this feature being released.') + } } - async add(...plugins: Interfaces.PJSON.PluginTypes[]): Promise { + public async add(...plugins: Interfaces.PJSON.PluginTypes[]): Promise { const pjson = await this.pjson() - + const mergedPlugins = [...(pjson.oclif.plugins || []), ...plugins] as typeof pjson.oclif.plugins await this.savePJSON({ ...pjson, oclif: { ...pjson.oclif, - plugins: uniq([...(pjson.oclif.plugins || []), ...plugins]) as typeof pjson.oclif.plugins, + plugins: dedupePlugins(mergedPlugins), }, }) } - friendlyName(name: string): string { + public friendlyName(name: string): string { const {pluginPrefix, scope} = this.config.pjson.oclif if (!scope) return name const match = name.match(`@${scope}/${pluginPrefix ?? 'plugin'}-(.+)`) return match?.[1] ?? name } - async hasPlugin( + public async hasPlugin( name: string, ): Promise { const list = await this.list() @@ -75,23 +90,33 @@ export default class Plugins { ) } - async install(name: string, {force = false, tag = 'latest'} = {}): Promise { + public async install(name: string, {force = false, tag = 'latest'} = {}): Promise { try { this.debug(`installing plugin ${name}`) - const yarnOpts = {cwd: this.config.dataDir, silent: this.silent, verbose: this.verbose} + const options = {cwd: this.config.dataDir, prod: true, silent: this.silent, verbose: this.verbose} await this.createPJSON() let plugin - const add = force ? ['add', '--force'] : ['add'] + const add = force ? ['--force'] : [] if (name.includes(':')) { // url const url = name - await this.yarn.exec([...add, url], yarnOpts) + await this.packageManager.install([...add, url], options) const {dependencies} = await this.pjson() - name = Object.entries(dependencies ?? {}).find(([, u]) => u === url)![0] - const root = join(this.config.dataDir, 'node_modules', name) + const normalizedUrl = npa(url) + const matches = Object.entries(dependencies ?? {}).find(([, u]) => { + const normalized = npa(u) + return ( + normalized.hosted?.type === normalizedUrl.hosted?.type && + normalized.hosted?.user === normalizedUrl.hosted?.user && + normalized.hosted?.project === normalizedUrl.hosted?.project + ) + }) + const installedPluginName = matches?.[0] + if (!installedPluginName) throw new Errors.CLIError(`Could not find plugin name for ${url}`) + const root = join(this.config.dataDir, 'node_modules', installedPluginName) plugin = await Config.load({ devPlugins: false, - name, + name: installedPluginName, root, userPlugins: false, }) @@ -99,21 +124,7 @@ export default class Plugins { this.isValidPlugin(plugin) - await this.add({name, type: 'user', url}) - - if ( - plugin.getPluginsList().find((p) => p.root === root)?.moduleType === 'module' && - (await fileExists(join(plugin.root, 'tsconfig.json'))) - ) { - try { - // CJS plugins can be auto-transpiled at runtime but ESM plugins - // cannot. To support ESM plugins we need to compile them after - // installing them. - await this.yarn.exec(['run', 'tsc'], {...yarnOpts, cwd: plugin.root}) - } catch (error) { - this.debug(error) - } - } + await this.add({name: installedPluginName, type: 'user', url}) } else { // npm const range = validRange(tag) @@ -125,28 +136,7 @@ export default class Plugins { // validate that the package name exists in the npm registry before installing await this.npmHasPackage(name, true) - // await mkdir(join(this.config.dataDir, name), {recursive: true}) - // await writeFile(join(this.config.dataDir, name, 'package.json'), JSON.stringify({name, version: tag})) - // await this.yarn.pnpm(['add', name], {...yarnOpts, cwd: join(this.config.dataDir, name)}) - // await this.yarn.pnpm(['link', '--dir', join(name, 'node_modules', name)], yarnOpts) - - const packageManager = process.env.PM ?? 'yarn' - switch (packageManager) { - case 'yarn': { - await this.yarn.exec([...add, `${name}@${tag}`], yarnOpts) - break - } - - case 'pnpm': { - await this.yarn.pnpm(['add', `${name}@${tag}`], yarnOpts) - break - } - - case 'npm': { - await this.yarn.npm(['install', `${name}@${tag}`, '--omit', 'dev'], yarnOpts) - break - } - } + await this.packageManager.install([...add, `${name}@${tag}`], options) this.debug(`loading plugin ${name}...`) plugin = await Config.load({ @@ -159,11 +149,9 @@ export default class Plugins { this.isValidPlugin(plugin) - if (packageManager === 'yarn') { - // await this.refresh({all: true, prod: true}, plugin.root) - } + await this.refresh({all: true, prod: true}, plugin.root) - await this.add({name, tag: range || tag, type: 'user'}) + await this.add({name, tag: range ?? tag, type: 'user'}) } return plugin @@ -183,22 +171,31 @@ export default class Plugins { } } - async link(p: string, {install}: {install: boolean}): Promise { + public async link(p: string, {install}: {install: boolean}): Promise { const c = await Config.load(resolve(p)) ux.action.start(`${this.config.name}: linking plugin ${c.name}`) this.isValidPlugin(c) // refresh will cause yarn.lock to install dependencies, including devDeps - if (install) await this.refresh({all: false, prod: false}, c.root) + if (install) { + await this.packageManager.install([], { + cwd: c.root, + noSpinner: true, + prod: false, + silent: true, + verbose: false, + }) + } + await this.add({name: c.name, root: c.root, type: 'link'}) } - async list(): Promise<(Interfaces.PJSON.PluginTypes.Link | Interfaces.PJSON.PluginTypes.User)[]> { + public async list(): Promise<(Interfaces.PJSON.PluginTypes.Link | Interfaces.PJSON.PluginTypes.User)[]> { const pjson = await this.pjson() return pjson.oclif.plugins } - async maybeUnfriendlyName(name: string): Promise { + public async maybeUnfriendlyName(name: string): Promise { const unfriendly = this.unfriendlyName(name) this.debug(`checking registry for expanded package name ${unfriendly}`) if (unfriendly && (await this.npmHasPackage(unfriendly))) { @@ -209,7 +206,7 @@ export default class Plugins { return name } - async pjson(): Promise { + public async pjson(): Promise { const pjson = await this.readPJSON() const plugins = pjson ? this.normalizePlugins(pjson.oclif.plugins) : [] return { @@ -224,10 +221,11 @@ export default class Plugins { } /** + * @deprecated * If a yarn.lock or oclif.lock exists at the root, refresh dependencies by * rerunning yarn. If options.prod is true, only install production dependencies. * - * As of v9 npm will always ignore the yarn.lock during `npm pack`] + * As of v9 npm will always ignore the yarn.lock during `npm pack` * (see https://github.com/npm/cli/issues/6738). To get around this plugins can * rename yarn.lock to oclif.lock before running `npm pack` using `oclif lock`. * @@ -239,12 +237,14 @@ export default class Plugins { * @param roots string[] * @returns Promise */ - async refresh(options: {all: boolean; prod: boolean}, ...roots: string[]): Promise { + public async refresh(options: {all: boolean; prod: boolean}, ...roots: string[]): Promise { + if (this.packageManager.name !== 'yarn') return ux.action.status = 'Refreshing user plugins...' const doRefresh = async (root: string) => { - await this.yarn.exec(options.prod ? ['--prod'] : [], { + await this.packageManager.refresh([], { cwd: root, noSpinner: true, + prod: options.prod, silent: true, verbose: false, }) @@ -276,7 +276,7 @@ export default class Plugins { ) } - async remove(name: string): Promise { + public async remove(name: string): Promise { const pjson = await this.pjson() if (pjson.dependencies) delete pjson.dependencies[name] await this.savePJSON({ @@ -288,18 +288,18 @@ export default class Plugins { }) } - unfriendlyName(name: string): string | undefined { + public unfriendlyName(name: string): string | undefined { if (name.includes('@')) return const {pluginPrefix, scope} = this.config.pjson.oclif if (!scope) return return `@${scope}/${pluginPrefix ?? 'plugin'}-${name}` } - async uninstall(name: string): Promise { + public async uninstall(name: string): Promise { try { const pjson = await this.pjson() if ((pjson.oclif.plugins ?? []).some((p) => typeof p === 'object' && p.type === 'user' && p.name === name)) { - await this.yarn.exec(['remove', name], { + await this.packageManager.uninstall([name], { cwd: this.config.dataDir, silent: this.silent, verbose: this.verbose, @@ -312,7 +312,7 @@ export default class Plugins { } } - async update(): Promise { + public async update(): Promise { // eslint-disable-next-line unicorn/no-await-expression-member let plugins = (await this.list()).filter((p): p is Interfaces.PJSON.PluginTypes.User => p.type === 'user') if (plugins.length === 0) return @@ -330,7 +330,7 @@ export default class Plugins { } if (plugins.some((p) => Boolean(p.url))) { - await this.yarn.exec(['upgrade'], { + await this.packageManager.update([], { cwd: this.config.dataDir, silent: this.silent, verbose: this.verbose, @@ -341,26 +341,23 @@ export default class Plugins { const jitPlugins = this.config.pjson.oclif.jitPlugins ?? {} const modifiedPlugins: Interfaces.PJSON.PluginTypes[] = [] if (npmPlugins.length > 0) { - await this.yarn.exec( - [ - 'add', - ...npmPlugins.map((p) => { - // a not valid tag indicates that it's a dist-tag like 'latest' - if (!valid(p.tag)) return `${p.name}@${p.tag}` - - if (p.tag && valid(p.tag) && jitPlugins[p.name] && gt(p.tag, jitPlugins[p.name])) { - // The user has installed a version of the JIT plugin that is newer than the one - // specified by the root plugin's JIT configuration. In this case, we want to - // keep the version installed by the user. - return `${p.name}@${p.tag}` - } - - const tag = jitPlugins[p.name] ?? p.tag - modifiedPlugins.push({...p, tag}) - return `${p.name}@${tag}` - }), - ], - {cwd: this.config.dataDir, silent: this.silent, verbose: this.verbose}, + await this.packageManager.install( + npmPlugins.map((p) => { + // a not valid tag indicates that it's a dist-tag like 'latest' + if (!valid(p.tag)) return `${p.name}@${p.tag}` + + if (p.tag && valid(p.tag) && jitPlugins[p.name] && gt(p.tag, jitPlugins[p.name])) { + // The user has installed a version of the JIT plugin that is newer than the one + // specified by the root plugin's JIT configuration. In this case, we want to + // keep the version installed by the user. + return `${p.name}@${p.tag}` + } + + const tag = jitPlugins[p.name] ?? p.tag + modifiedPlugins.push({...p, tag}) + return `${p.name}@${tag}` + }), + {cwd: this.config.dataDir, prod: true, silent: this.silent, verbose: this.verbose}, ) } @@ -407,11 +404,8 @@ export default class Plugins { return p }) - return uniqWith( - plugins, - // @ts-expect-error because typescript doesn't think it's possible for a plugin to have the `link` type here - (a, b) => a.name === b.name || (a.type === 'link' && b.type === 'link' && a.root === b.root), - ) + + return dedupePlugins(plugins) } private async npmHasPackage(name: string, throwOnNotFound = false): Promise { @@ -422,7 +416,6 @@ export default class Plugins { this.debug(`Using npm executable located at: ${npmCli}`) // wrap node and path in double quotes to deal with spaces - // TODO: This doesn't respect scoped NPM_REGISTRY env var const command = `"${nodeExecutable}" "${npmCli}" show ${name} dist-tags` let npmShowResult diff --git a/src/yarn.ts b/src/yarn.ts index 79ae3413..89c7e50e 100644 --- a/src/yarn.ts +++ b/src/yarn.ts @@ -1,4 +1,4 @@ -import {Interfaces, ux} from '@oclif/core' +import {ux} from '@oclif/core' import makeDebug from 'debug' import {fork} from 'node:child_process' import {createRequire} from 'node:module' @@ -6,27 +6,19 @@ import {join} from 'node:path' import {fileURLToPath} from 'node:url' import NpmRunPath from 'npm-run-path' +import {InstallOptions, PackageManager, PackageManagerExecOptions} from './package-manager.js' import {YarnMessagesCache} from './util.js' const debug = makeDebug('cli:yarn') const require = createRequire(import.meta.url) -type YarnExecOptions = { - cwd: string - noSpinner?: boolean - silent: boolean - verbose: boolean -} - -export default class Yarn { - private config: Interfaces.Config - - constructor({config}: {config: Interfaces.Config}) { - this.config = config +export default class Yarn extends PackageManager { + public get name(): 'yarn' { + return 'yarn' } - async exec(args: string[] = [], opts: YarnExecOptions): Promise { + async exec(args: string[] = [], opts: PackageManagerExecOptions): Promise { const bin = require.resolve('yarn/bin/yarn.js', {paths: [this.config.root, fileURLToPath(import.meta.url)]}) debug('yarn binary path', bin) const {cwd, silent, verbose} = opts @@ -88,7 +80,7 @@ export default class Yarn { } } - fork(modulePath: string, args: string[] = [], options: YarnExecOptions): Promise { + fork(modulePath: string, args: string[] = [], options: PackageManagerExecOptions): Promise { const cache = YarnMessagesCache.getInstance() return new Promise((resolve, reject) => { @@ -139,11 +131,29 @@ export default class Yarn { }) } - async npm(args: string[], opts: YarnExecOptions): Promise { - await this.fork(require.resolve('.bin/npm'), args, opts) + async install(args: string[], opts: InstallOptions): Promise { + const prod = opts.prod ? ['--prod'] : [] + await this.exec(['add', ...args, ...prod], opts) + } + + async refresh(args: string[], opts: InstallOptions): Promise { + const prod = opts.prod ? ['--prod'] : [] + await this.exec([...args, ...prod], opts) } - async pnpm(args: string[], opts: YarnExecOptions): Promise { - await this.fork(require.resolve('.bin/pnpm'), args, opts) + async uninstall(args: string[], opts: PackageManagerExecOptions): Promise { + await this.exec(['remove', ...args], opts) } + + async update(args: string[], opts: PackageManagerExecOptions): Promise { + await this.exec(['upgrade', ...args], opts) + } + + // async npm(args: string[], opts: PackageManagerExecOptions): Promise { + // await this.fork(require.resolve('.bin/npm'), args, opts) + // } + + // async pnpm(args: string[], opts: PackageManagerExecOptions): Promise { + // await this.fork(require.resolve('.bin/pnpm'), args, opts) + // } } diff --git a/test/integration/install.integration.ts b/test/integration/install.integration.ts index 10dbaf24..54486aeb 100644 --- a/test/integration/install.integration.ts +++ b/test/integration/install.integration.ts @@ -1,7 +1,6 @@ import {Errors, ux} from '@oclif/core' import {expect} from 'chai' import chalk from 'chalk' -import {existsSync} from 'node:fs' import {rm} from 'node:fs/promises' import {join, resolve} from 'node:path' import {SinonSandbox, SinonStub, createSandbox, match} from 'sinon' @@ -120,10 +119,6 @@ describe('install/uninstall integration tests', () => { const result = await PluginsIndex.run([], cwd) expect(stdoutStub.calledWith(match('test-esm-1'))).to.be.true expect(result.some((r) => r.name === '@oclif/plugin-test-esm-1')).to.be.true - - // test that the plugin was compiled after install (only applies to github installs) - const compiledDir = join(dataDir, 'node_modules', '@oclif', 'plugin-test-esm-1', 'dist') - expect(existsSync(compiledDir)).to.be.true }) it('should uninstall plugin from github', async () => { @@ -142,10 +137,6 @@ describe('install/uninstall integration tests', () => { const result = await PluginsIndex.run([], cwd) expect(stdoutStub.calledWith(match('test-esm-1'))).to.be.true expect(result.some((r) => r.name === '@oclif/plugin-test-esm-1')).to.be.true - - // test that the plugin was compiled after install (only applies to github installs) - const compiledDir = join(dataDir, 'node_modules', '@oclif', 'plugin-test-esm-1', 'dist') - expect(existsSync(compiledDir)).to.be.true }) it('should uninstall plugin from github', async () => { @@ -165,10 +156,6 @@ describe('install/uninstall integration tests', () => { expect(stdoutStub.calledWith(match('test-esm-1'))).to.be.true expect(stdoutStub.calledWith(match('0.5.4'))).to.be.true expect(result.some((r) => r.name === '@oclif/plugin-test-esm-1')).to.be.true - - // test that the plugin was compiled after install (only applies to github installs) - const compiledDir = join(dataDir, 'node_modules', '@oclif', 'plugin-test-esm-1', 'dist') - expect(existsSync(compiledDir)).to.be.true }) it('should uninstall plugin from github', async () => { diff --git a/yarn.lock b/yarn.lock index 93286629..e66cb0c3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1098,6 +1098,11 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.2.tgz#9b0e3e8533fe5024ad32d6637eb9589988b6fdca" integrity sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A== +"@types/npm-package-arg@^6.1.4": + version "6.1.4" + resolved "https://registry.yarnpkg.com/@types/npm-package-arg/-/npm-package-arg-6.1.4.tgz#112b74a61cb8632313f600212782840156e0228e" + integrity sha512-vDgdbMy2QXHnAruzlv68pUtXCjmqUk3WrBAsRboRovsOmxbfn/WiYCjmecyKjGztnMps5dWp4Uq2prp+Ilo17Q== + "@types/responselike@^1.0.0": version "1.0.1" resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.1.tgz#1dd57e54509b3b95c7958e52709567077019d65d" From 1e80a62464deb192f885f9833ad0983b728f0baa Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Tue, 23 Jan 2024 10:40:41 -0700 Subject: [PATCH 03/44] chore: bump to v5 prerelease --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index e77ab600..6a1e844b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@oclif/plugin-plugins", "description": "plugins plugin for oclif", - "version": "4.1.17", + "version": "5.0.0-beta.0", "author": "Salesforce", "bugs": "https://github.com/oclif/plugin-plugins/issues", "dependencies": { From 737b967e94a750cc9a12b00880ffd51d8223e2a9 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Wed, 24 Jan 2024 13:49:27 -0700 Subject: [PATCH 04/44] fix: remove yarn.lock --- src/plugins.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/plugins.ts b/src/plugins.ts index d6d4ab8f..a571ce0d 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -1,6 +1,6 @@ import {Config, Errors, Interfaces, ux} from '@oclif/core' import makeDebug from 'debug' -import {access, mkdir, readFile, rename, writeFile} from 'node:fs/promises' +import {access, mkdir, readFile, rename, rm, writeFile} from 'node:fs/promises' import {dirname, join, resolve} from 'node:path' import npa from 'npm-package-arg' import {gt, valid, validRange} from 'semver' @@ -154,6 +154,8 @@ export default class Plugins { await this.add({name, tag: range ?? tag, type: 'user'}) } + if (this.packageManager.name !== 'yarn') await rm(join(this.config.dataDir, 'yarn.lock')) + return plugin } catch (error: unknown) { this.debug('error installing plugin:', error) From d87fcbfdb5019620bebba1d0c916658ca14ac80f Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Wed, 24 Jan 2024 13:50:28 -0700 Subject: [PATCH 05/44] test: skip sf integration tests --- test/integration/sf.integration.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/integration/sf.integration.ts b/test/integration/sf.integration.ts index eb525e86..87794a8f 100644 --- a/test/integration/sf.integration.ts +++ b/test/integration/sf.integration.ts @@ -26,7 +26,8 @@ async function ensureSfExists(): Promise { } } -describe('sf Integration', () => { +// TODO: skip until we decide on a better testing strategy +describe.skip('sf Integration', () => { before(async () => { await ensureSfExists() From 6c3cb6f1d43cafaa5e468c43abffd2f2cf3d69c0 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 09:07:54 -0700 Subject: [PATCH 06/44] fix: force rm yarn.lock --- src/plugins.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins.ts b/src/plugins.ts index a571ce0d..e70c6bac 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -154,7 +154,7 @@ export default class Plugins { await this.add({name, tag: range ?? tag, type: 'user'}) } - if (this.packageManager.name !== 'yarn') await rm(join(this.config.dataDir, 'yarn.lock')) + if (this.packageManager.name !== 'yarn') await rm(join(this.config.dataDir, 'yarn.lock'), {force: true}) return plugin } catch (error: unknown) { From 6ebb1fc0555f29266af945fea2440f66e4671a19 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 09:47:25 -0700 Subject: [PATCH 07/44] fix: use fork for npm show --- src/package-manager.ts | 29 ++++++++++++++++++++--------- src/plugins.ts | 33 +++++++++++---------------------- src/yarn.ts | 4 ++++ 3 files changed, 35 insertions(+), 31 deletions(-) diff --git a/src/package-manager.ts b/src/package-manager.ts index 0c924af2..7971ce6c 100644 --- a/src/package-manager.ts +++ b/src/package-manager.ts @@ -31,18 +31,25 @@ export abstract class PackageManager { abstract install(args: string[], opts: InstallOptions): Promise abstract get name(): 'npm' | 'yarn' abstract refresh(args: string[], opts: InstallOptions): Promise + abstract show(args: string[], opts: PackageManagerExecOptions): Promise abstract uninstall(args: string[], opts: PackageManagerExecOptions): Promise abstract update(args: string[], opts: PackageManagerExecOptions): Promise } export class NPM extends PackageManager { + private bin: string + + public constructor({config}: {config: Interfaces.Config}) { + super({config}) + this.bin = require.resolve('.bin/npm', {paths: [this.config.root, fileURLToPath(import.meta.url)]}) + } + public get name(): 'npm' { return 'npm' } async exec(args: string[] = [], opts: PackageManagerExecOptions): Promise { - const bin = require.resolve('.bin/npm', {paths: [this.config.root, fileURLToPath(import.meta.url)]}) - debug('npm binary path', bin) + debug('npm binary path', this.bin) const {cwd, silent, verbose} = opts if (args[0] !== 'run') { const networkTimeout = this.config.scopedEnvVar('NETWORK_TIMEOUT') @@ -71,12 +78,12 @@ export class NPM extends PackageManager { } if (verbose) { - process.stderr.write(`${cwd}: ${bin} ${args.join(' ')}`) + process.stderr.write(`${cwd}: ${this.bin} ${args.join(' ')}`) } - debug(`${cwd}: ${bin} ${args.join(' ')}`) + debug(`${cwd}: ${this.bin} ${args.join(' ')}`) try { - await this.fork(bin, args, options) + await this.fork(args, options) debug('npm done') } catch (error: unknown) { debug('npm error', error) @@ -84,9 +91,9 @@ export class NPM extends PackageManager { } } - fork(modulePath: string, args: string[] = [], options: PackageManagerExecOptions): Promise { + async fork(args: string[] = [], options: PackageManagerExecOptions): Promise { return new Promise((resolve, reject) => { - const forked = fork(modulePath, args, { + const forked = fork(this.bin, args, { ...options, env: { ...process.env, @@ -112,7 +119,7 @@ export class NPM extends PackageManager { if (code === 0) { resolve() } else { - reject(new Error(`${modulePath} ${args.join(' ')} exited with code ${code}`)) + reject(new Error(`${this.bin} ${args.join(' ')} exited with code ${code}`)) } }) }) @@ -120,7 +127,7 @@ export class NPM extends PackageManager { async install(args: string[], opts: InstallOptions): Promise { const prod = opts.prod ? ['--omit', 'dev'] : [] - await this.exec(['install', ...args, ...prod, '--json'], opts) + await this.exec(['install', ...args, ...prod], opts) } async refresh(args: string[], opts: InstallOptions): Promise { @@ -128,6 +135,10 @@ export class NPM extends PackageManager { await this.exec(['install', ...args, ...prod], opts) } + async show(args: string[], opts: PackageManagerExecOptions): Promise { + await this.exec(['show', ...args], opts) + } + async uninstall(args: string[], opts: PackageManagerExecOptions): Promise { await this.exec(['uninstall', ...args], opts) } diff --git a/src/plugins.ts b/src/plugins.ts index e70c6bac..9a1ef33d 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -6,7 +6,7 @@ import npa from 'npm-package-arg' import {gt, valid, validRange} from 'semver' import {NPM, PackageManager} from './package-manager.js' -import {findNode, findNpm, uniqWith} from './util.js' +import {uniqWith} from './util.js' import Yarn from './yarn.js' type UserPJSON = { @@ -411,33 +411,22 @@ export default class Plugins { } private async npmHasPackage(name: string, throwOnNotFound = false): Promise { - const nodeExecutable = await findNode(this.config.root) - const npmCli = await findNpm() - - this.debug(`Using node executable located at: ${nodeExecutable}`) - this.debug(`Using npm executable located at: ${npmCli}`) - const registry = this.config.scopedEnvVar('NPM_REGISTRY') - const registryFlag = registry ? `--registry=${registry}` : '' - // wrap node and path in double quotes to deal with spaces - const command = `"${nodeExecutable}" "${npmCli}" show ${name} dist-tags ${registryFlag}` + const args = registry ? [name, '--registry', registry] : [name] - let npmShowResult try { - const {default: shelljs} = await import('shelljs') - npmShowResult = shelljs.exec(command, {silent: true}) - } catch { - throw new Errors.CLIError(`Could not run npm show for ${name}`) - } - - if (npmShowResult?.code !== 0) { - this.debug(npmShowResult?.stderr) + await this.packageManager.show(args, { + cwd: this.config.dataDir, + silent: true, + verbose: false, + }) + this.debug(`Found ${name} in the registry.`) + return true + } catch (error) { + this.debug(error) if (throwOnNotFound) throw new Errors.CLIError(`${name} does not exist in the registry.`) return false } - - this.debug(`Found ${name} in the registry.`) - return true } private get pjsonPath() { diff --git a/src/yarn.ts b/src/yarn.ts index 89c7e50e..64386128 100644 --- a/src/yarn.ts +++ b/src/yarn.ts @@ -141,6 +141,10 @@ export default class Yarn extends PackageManager { await this.exec([...args, ...prod], opts) } + async show(args: string[], opts: PackageManagerExecOptions): Promise { + await this.exec(['info', ...args], opts) + } + async uninstall(args: string[], opts: PackageManagerExecOptions): Promise { await this.exec(['remove', ...args], opts) } From b1551364a282d0a6efd05804195291776b6bfc28 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 10:17:05 -0700 Subject: [PATCH 08/44] feat: remove all yarn functionality --- package.json | 7 +- src/commands/plugins/install.ts | 12 +-- src/commands/plugins/link.ts | 3 - src/commands/plugins/uninstall.ts | 3 - src/commands/plugins/update.ts | 3 - src/{package-manager.ts => npm.ts} | 88 +++++----------- src/plugins.ts | 104 +++--------------- src/util.ts | 149 -------------------------- src/yarn.ts | 163 ----------------------------- yarn.lock | 17 ++- 10 files changed, 54 insertions(+), 495 deletions(-) rename src/{package-manager.ts => npm.ts} (51%) delete mode 100644 src/yarn.ts diff --git a/package.json b/package.json index 8523249e..fbf079bb 100644 --- a/package.json +++ b/package.json @@ -10,12 +10,9 @@ "debug": "^4.3.4", "npm": "10.2.3", "npm-package-arg": "^11.0.1", - "npm-run-path": "^4.0.1", - "pnpm": "^8.12.0", + "npm-run-path": "^5", "semver": "^7.5.4", - "shelljs": "^0.8.5", - "validate-npm-package-name": "^5.0.0", - "yarn": "^1.22.21" + "validate-npm-package-name": "^5.0.0" }, "devDependencies": { "@commitlint/config-conventional": "^17.8.1", diff --git a/src/commands/plugins/install.ts b/src/commands/plugins/install.ts index d85b50cf..0b6862c9 100644 --- a/src/commands/plugins/install.ts +++ b/src/commands/plugins/install.ts @@ -4,7 +4,6 @@ import chalk from 'chalk' import validate from 'validate-npm-package-name' import Plugins from '../../plugins.js' -import {YarnMessagesCache} from '../../util.js' export default class PluginsInstall extends Command { static aliases = ['plugins:add'] @@ -32,7 +31,7 @@ e.g. If you have a core plugin that has a 'hello' command, installing a user-ins static flags = { force: Flags.boolean({ char: 'f', - description: 'Run yarn install with force flag.', + description: 'Run "npm install" with force flag.', }), help: Flags.help({char: 'h'}), jit: Flags.boolean({ @@ -65,12 +64,12 @@ e.g. If you have a core plugin that has a 'hello' command, installing a user-ins }), silent: Flags.boolean({ char: 's', - description: 'Silences yarn output.', + description: 'Silences npm output.', exclusive: ['verbose'], }), verbose: Flags.boolean({ char: 'v', - description: 'Show verbose yarn output.', + description: 'Show verbose npm output.', exclusive: ['silent'], }), } @@ -159,15 +158,10 @@ e.g. If you have a core plugin that has a 'hello' command, installing a user-ins } } catch (error) { ux.action.stop(chalk.bold.red('failed')) - YarnMessagesCache.getInstance().flush(plugin) throw error } ux.action.stop(`installed v${plugin.version}`) - - YarnMessagesCache.getInstance().flush(plugin) - - this.log(chalk.green(`\nSuccessfully installed ${plugin.name} v${plugin.version}`)) } } } diff --git a/src/commands/plugins/link.ts b/src/commands/plugins/link.ts index 342b7e35..3b986d84 100644 --- a/src/commands/plugins/link.ts +++ b/src/commands/plugins/link.ts @@ -2,7 +2,6 @@ import {Args, Command, Flags, ux} from '@oclif/core' import chalk from 'chalk' import Plugins from '../../plugins.js' -import {YarnMessagesCache} from '../../util.js' export default class PluginsLink extends Command { static args = { @@ -37,7 +36,5 @@ e.g. If you have a user-installed or core plugin that has a 'hello' command, ins ux.action.start(`Linking plugin ${chalk.cyan(args.path)}`) await this.plugins.link(args.path, {install: flags.install}) ux.action.stop() - - YarnMessagesCache.getInstance().flush() } } diff --git a/src/commands/plugins/uninstall.ts b/src/commands/plugins/uninstall.ts index 66abdc87..c6a4be72 100644 --- a/src/commands/plugins/uninstall.ts +++ b/src/commands/plugins/uninstall.ts @@ -3,7 +3,6 @@ import {Args, Command, Flags, ux} from '@oclif/core' import chalk from 'chalk' import Plugins from '../../plugins.js' -import {YarnMessagesCache} from '../../util.js' function removeTags(plugin: string): string { if (plugin.includes('@')) { @@ -72,8 +71,6 @@ export default class PluginsUninstall extends Command { } ux.action.stop() - - YarnMessagesCache.getInstance().flush() } } } diff --git a/src/commands/plugins/update.ts b/src/commands/plugins/update.ts index ee9e05fe..1a402332 100644 --- a/src/commands/plugins/update.ts +++ b/src/commands/plugins/update.ts @@ -1,7 +1,6 @@ import {Command, Flags, ux} from '@oclif/core' import Plugins from '../../plugins.js' -import {YarnMessagesCache} from '../../util.js' export default class PluginsUpdate extends Command { static description = 'Update installed plugins.' @@ -21,7 +20,5 @@ export default class PluginsUpdate extends Command { await this.plugins.update() ux.action.stop() - - YarnMessagesCache.getInstance().flush() } } diff --git a/src/package-manager.ts b/src/npm.ts similarity index 51% rename from src/package-manager.ts rename to src/npm.ts index 7971ce6c..ca0b7e94 100644 --- a/src/package-manager.ts +++ b/src/npm.ts @@ -1,17 +1,16 @@ -import {Interfaces, ux} from '@oclif/core' +import {Interfaces} from '@oclif/core' import makeDebug from 'debug' import {fork} from 'node:child_process' import {createRequire} from 'node:module' import {fileURLToPath} from 'node:url' -import NpmRunPath from 'npm-run-path' +import {npmRunPathEnv} from 'npm-run-path' -const debug = makeDebug('cli:yarn') +const debug = makeDebug('@oclif/plugin-plugins:npm') const require = createRequire(import.meta.url) export type PackageManagerExecOptions = { cwd: string - noSpinner?: boolean silent: boolean verbose: boolean } @@ -20,62 +19,22 @@ export type InstallOptions = PackageManagerExecOptions & { prod?: boolean } -export abstract class PackageManager { - protected config: Interfaces.Config - - constructor({config}: {config: Interfaces.Config}) { - this.config = config - } - - abstract exec(args: string[], opts: PackageManagerExecOptions): Promise - abstract install(args: string[], opts: InstallOptions): Promise - abstract get name(): 'npm' | 'yarn' - abstract refresh(args: string[], opts: InstallOptions): Promise - abstract show(args: string[], opts: PackageManagerExecOptions): Promise - abstract uninstall(args: string[], opts: PackageManagerExecOptions): Promise - abstract update(args: string[], opts: PackageManagerExecOptions): Promise -} - -export class NPM extends PackageManager { +export class NPM { private bin: string + private config: Interfaces.Config public constructor({config}: {config: Interfaces.Config}) { - super({config}) + this.config = config this.bin = require.resolve('.bin/npm', {paths: [this.config.root, fileURLToPath(import.meta.url)]}) } - public get name(): 'npm' { - return 'npm' - } - async exec(args: string[] = [], opts: PackageManagerExecOptions): Promise { debug('npm binary path', this.bin) const {cwd, silent, verbose} = opts - if (args[0] !== 'run') { - const networkTimeout = this.config.scopedEnvVar('NETWORK_TIMEOUT') - if (networkTimeout) args.push(`--network-timeout=${networkTimeout}`) - - if (verbose && !silent) args.push('--verbose') - if (silent && !verbose) args.push('--silent') - if (this.config.npmRegistry) args.push(`--registry=${this.config.npmRegistry}`) - } - - const npmRunPath: typeof NpmRunPath = require('npm-run-path') - const options = { - ...opts, - cwd, - env: npmRunPath.env({cwd, env: process.env}), - // The ts-node/esm loader isn't need to execute yarn commands anyways. - execArgv: process.execArgv - .join(' ') - // Remove --loader ts-node/esm from execArgv so that the subprocess doesn't fail if it can't find ts-node. - .replace('--loader ts-node/esm', '') - .replace('--loader=ts-node/esm', '') - .split(' ') - .filter(Boolean), - stdio: [0, null, null, 'ipc'], - } + if (verbose) args.push('--loglevel=verbose') + if (silent && !verbose) args.push('--loglevel=silent') + if (this.config.npmRegistry) args.push(`--registry=${this.config.npmRegistry}`) if (verbose) { process.stderr.write(`${cwd}: ${this.bin} ${args.join(' ')}`) @@ -83,7 +42,7 @@ export class NPM extends PackageManager { debug(`${cwd}: ${this.bin} ${args.join(' ')}`) try { - await this.fork(args, options) + await this.fork(args, opts) debug('npm done') } catch (error: unknown) { debug('npm error', error) @@ -94,24 +53,32 @@ export class NPM extends PackageManager { async fork(args: string[] = [], options: PackageManagerExecOptions): Promise { return new Promise((resolve, reject) => { const forked = fork(this.bin, args, { - ...options, + cwd: options.cwd, env: { - ...process.env, + ...npmRunPathEnv(), // Disable husky hooks because a plugin might be trying to install them, which will // break the install since the install location isn't a .git directory. HUSKY: '0', }, + execArgv: process.execArgv + .join(' ') + // Remove --loader ts-node/esm from execArgv so that the subprocess doesn't fail if it can't find ts-node. + // The ts-node/esm loader isn't need to execute npm commands anyways. + .replace('--loader ts-node/esm', '') + .replace('--loader=ts-node/esm', '') + .split(' ') + .filter(Boolean), + stdio: [0, null, null, 'ipc'], }) + + forked.stderr?.setEncoding('utf8') forked.stderr?.on('data', (d: Buffer) => { - if (!options.silent) { - const str = d.toString() - process.stderr.write(str) - } + if (options.verbose) process.stderr.write(d) }) + forked.stdout?.setEncoding('utf8') forked.stdout?.on('data', (d) => { if (options.verbose) process.stdout.write(d) - else if (!options.noSpinner) ux.action.status = d.replace(/\n$/, '').split('\n').pop() }) forked.on('error', reject) @@ -130,11 +97,6 @@ export class NPM extends PackageManager { await this.exec(['install', ...args, ...prod], opts) } - async refresh(args: string[], opts: InstallOptions): Promise { - const prod = opts.prod ? ['--omit', 'dev'] : [] - await this.exec(['install', ...args, ...prod], opts) - } - async show(args: string[], opts: PackageManagerExecOptions): Promise { await this.exec(['show', ...args], opts) } diff --git a/src/plugins.ts b/src/plugins.ts index 9a1ef33d..f42a965a 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -1,13 +1,12 @@ import {Config, Errors, Interfaces, ux} from '@oclif/core' import makeDebug from 'debug' -import {access, mkdir, readFile, rename, rm, writeFile} from 'node:fs/promises' +import {access, mkdir, readFile, rm, writeFile} from 'node:fs/promises' import {dirname, join, resolve} from 'node:path' import npa from 'npm-package-arg' import {gt, valid, validRange} from 'semver' -import {NPM, PackageManager} from './package-manager.js' +import {NPM} from './npm.js' import {uniqWith} from './util.js' -import Yarn from './yarn.js' type UserPJSON = { dependencies: Record @@ -44,19 +43,15 @@ function dedupePlugins( } export default class Plugins { - public readonly packageManager: PackageManager + public readonly npm: NPM public silent = false public verbose = false private readonly debug: ReturnType constructor(public config: Interfaces.Config) { - this.debug = makeDebug('@oclif/plugins') - this.packageManager = - this.config.scopedEnvVar('PACKAGE_MANAGER')?.toLowerCase() === 'yarn' ? new Yarn({config}) : new NPM({config}) - if (this.packageManager.name === 'yarn') { - ux.warn('All yarn related functionality should be removed prior to this feature being released.') - } + this.debug = makeDebug('@oclif/plugin-plugins') + this.npm = new NPM({config}) } public async add(...plugins: Interfaces.PJSON.PluginTypes[]): Promise { @@ -100,7 +95,7 @@ export default class Plugins { if (name.includes(':')) { // url const url = name - await this.packageManager.install([...add, url], options) + await this.npm.install([...add, url], options) const {dependencies} = await this.pjson() const normalizedUrl = npa(url) const matches = Object.entries(dependencies ?? {}).find(([, u]) => { @@ -120,7 +115,6 @@ export default class Plugins { root, userPlugins: false, }) - await this.refresh({all: true, prod: true}, plugin.root) this.isValidPlugin(plugin) @@ -136,7 +130,7 @@ export default class Plugins { // validate that the package name exists in the npm registry before installing await this.npmHasPackage(name, true) - await this.packageManager.install([...add, `${name}@${tag}`], options) + await this.npm.install([...add, `${name}@${tag}`], options) this.debug(`loading plugin ${name}...`) plugin = await Config.load({ @@ -149,12 +143,10 @@ export default class Plugins { this.isValidPlugin(plugin) - await this.refresh({all: true, prod: true}, plugin.root) - await this.add({name, tag: range ?? tag, type: 'user'}) } - if (this.packageManager.name !== 'yarn') await rm(join(this.config.dataDir, 'yarn.lock'), {force: true}) + await rm(join(this.config.dataDir, 'yarn.lock'), {force: true}) return plugin } catch (error: unknown) { @@ -178,14 +170,12 @@ export default class Plugins { ux.action.start(`${this.config.name}: linking plugin ${c.name}`) this.isValidPlugin(c) - // refresh will cause yarn.lock to install dependencies, including devDeps if (install) { - await this.packageManager.install([], { + await this.npm.install([], { cwd: c.root, - noSpinner: true, prod: false, - silent: true, - verbose: false, + silent: this.silent, + verbose: this.verbose, }) } @@ -222,62 +212,6 @@ export default class Plugins { } } - /** - * @deprecated - * If a yarn.lock or oclif.lock exists at the root, refresh dependencies by - * rerunning yarn. If options.prod is true, only install production dependencies. - * - * As of v9 npm will always ignore the yarn.lock during `npm pack` - * (see https://github.com/npm/cli/issues/6738). To get around this plugins can - * rename yarn.lock to oclif.lock before running `npm pack` using `oclif lock`. - * - * We still check for the existence of yarn.lock since it could be included if a plugin was - * packed using yarn or v8 of npm. Plugins installed directly from a git url will also - * have a yarn.lock. - * - * @param options {prod: boolean, all: boolean} - * @param roots string[] - * @returns Promise - */ - public async refresh(options: {all: boolean; prod: boolean}, ...roots: string[]): Promise { - if (this.packageManager.name !== 'yarn') return - ux.action.status = 'Refreshing user plugins...' - const doRefresh = async (root: string) => { - await this.packageManager.refresh([], { - cwd: root, - noSpinner: true, - prod: options.prod, - silent: true, - verbose: false, - }) - } - - const pluginRoots = [...roots] - if (options.all) { - const userPluginsRoots = this.config - .getPluginsList() - .filter((p) => p.type === 'user') - .map((p) => p.root) - pluginRoots.push(...userPluginsRoots) - } - - const deduped = [...new Set(pluginRoots)] - await Promise.all( - deduped.map(async (r) => { - if (await fileExists(join(r, 'yarn.lock'))) { - this.debug(`yarn.lock exists at ${r}. Installing prod dependencies`) - await doRefresh(r) - } else if (await fileExists(join(r, 'oclif.lock'))) { - this.debug(`oclif.lock exists at ${r}. Installing prod dependencies`) - await rename(join(r, 'oclif.lock'), join(r, 'yarn.lock')) - await doRefresh(r) - } else { - this.debug(`no yarn.lock or oclif.lock exists at ${r}. Skipping dependency refresh`) - } - }), - ) - } - public async remove(name: string): Promise { const pjson = await this.pjson() if (pjson.dependencies) delete pjson.dependencies[name] @@ -301,7 +235,7 @@ export default class Plugins { try { const pjson = await this.pjson() if ((pjson.oclif.plugins ?? []).some((p) => typeof p === 'object' && p.type === 'user' && p.name === name)) { - await this.packageManager.uninstall([name], { + await this.npm.uninstall([name], { cwd: this.config.dataDir, silent: this.silent, verbose: this.verbose, @@ -332,7 +266,7 @@ export default class Plugins { } if (plugins.some((p) => Boolean(p.url))) { - await this.packageManager.update([], { + await this.npm.update([], { cwd: this.config.dataDir, silent: this.silent, verbose: this.verbose, @@ -343,7 +277,7 @@ export default class Plugins { const jitPlugins = this.config.pjson.oclif.jitPlugins ?? {} const modifiedPlugins: Interfaces.PJSON.PluginTypes[] = [] if (npmPlugins.length > 0) { - await this.packageManager.install( + await this.npm.install( npmPlugins.map((p) => { // a not valid tag indicates that it's a dist-tag like 'latest' if (!valid(p.tag)) return `${p.name}@${p.tag}` @@ -363,7 +297,6 @@ export default class Plugins { ) } - await this.refresh({all: true, prod: true}) await this.add(...modifiedPlugins) } @@ -411,14 +344,11 @@ export default class Plugins { } private async npmHasPackage(name: string, throwOnNotFound = false): Promise { - const registry = this.config.scopedEnvVar('NPM_REGISTRY') - const args = registry ? [name, '--registry', registry] : [name] - try { - await this.packageManager.show(args, { + await this.npm.show([name], { cwd: this.config.dataDir, - silent: true, - verbose: false, + silent: this.silent, + verbose: this.verbose, }) this.debug(`Found ${name} in the registry.`) return true diff --git a/src/util.ts b/src/util.ts index 256bc246..d0f7b107 100644 --- a/src/util.ts +++ b/src/util.ts @@ -1,10 +1,3 @@ -import {Interfaces, ux} from '@oclif/core' -import * as fs from 'node:fs' -import * as fsPromises from 'node:fs/promises' -import {createRequire} from 'node:module' -import {type} from 'node:os' -import * as path from 'node:path' - type CompareTypes = boolean | number | string | undefined function compare(a: CompareTypes | CompareTypes[], b: CompareTypes | CompareTypes[]): number { @@ -34,145 +27,3 @@ export function uniq(arr: T[]): T[] { export function uniqWith(arr: T[], fn: (a: T, b: T) => boolean): T[] { return arr.filter((a, i) => !arr.some((b, j) => j > i && fn(a, b))) } - -const isExecutable = (filepath: string): boolean => { - if (type() === 'Windows_NT') return filepath.endsWith('node.exe') - - try { - if (filepath.endsWith('node')) { - // This checks if the filepath is executable on Mac or Linux, if it is not it errors. - fs.accessSync(filepath, fs.constants.X_OK) - return true - } - } catch { - return false - } - - return false -} - -/** - * Get the path to the node executable - * If using a macos/windows/tarball installer it will use the node version included in it. - * If that fails (or CLI was installed via npm), this will resolve to the global node installed in the system. - * @param root - The root path of the CLI (this.config.root). - * @returns The path to the node executable. - */ -export async function findNode(root: string): Promise { - const cliBinDirs = [path.join(root, 'bin'), path.join(root, 'client', 'bin')].filter((p) => fs.existsSync(p)) - const {default: shelljs} = await import('shelljs') - - if (cliBinDirs.length > 0) { - // Find the node executable - // eslint-disable-next-line unicorn/no-array-callback-reference - const node = shelljs.find(cliBinDirs).find((file: string) => isExecutable(file)) - if (node) { - return fs.realpathSync(node) - } - } - - // Check to see if node is installed - const nodeShellString = shelljs.which('node') - if (nodeShellString?.code === 0 && nodeShellString?.stdout) { - return `${nodeShellString.stdout}` - } - - const err = new Error('Cannot locate node executable.') - // eslint-disable-next-line @typescript-eslint/ban-ts-comment - // @ts-ignore override readonly .name field - err.name = 'CannotFindNodeExecutable' - throw err -} - -/** - * Get the path to the npm CLI file. - * This will always resolve npm to the pinned version in `@oclif/plugin-plugins/package.json`. - * - * @returns The path to the `npm/bin/npm-cli.js` file. - */ -export async function findNpm(): Promise { - const require = createRequire(import.meta.url) - const npmPjsonPath = require.resolve('npm/package.json') - const npmPjson = JSON.parse(await fsPromises.readFile(npmPjsonPath, {encoding: 'utf8'})) - const npmPath = npmPjsonPath.slice(0, Math.max(0, npmPjsonPath.lastIndexOf(path.sep))) - return path.join(npmPath, npmPjson.bin.npm) -} - -export class YarnMessagesCache { - private static errors = new Set() - private static instance: YarnMessagesCache - private static warnings = new Set() - public static getInstance(): YarnMessagesCache { - if (!YarnMessagesCache.instance) { - YarnMessagesCache.instance = new YarnMessagesCache() - } - - return YarnMessagesCache.instance - } - - public addErrors(...errors: string[]): void { - for (const err of errors) { - YarnMessagesCache.errors.add(err) - } - } - - public addWarnings(...warnings: string[]): void { - for (const warning of warnings) { - // Skip workspaces warning because it's likely the fault of a transitive dependency and not actionable - // https://github.com/yarnpkg/yarn/issues/8580 - if (warning.includes('Workspaces can only be enabled in private projects.')) continue - YarnMessagesCache.warnings.add(warning) - } - } - - public flush(plugin?: Interfaces.Config | undefined): void { - if (YarnMessagesCache.warnings.size === 0) return - let count = 0 - - for (const warning of YarnMessagesCache.warnings) { - if (!plugin) { - ux.warn(warning) - count += 1 - return - } - - // If flushing for a specific plugin, only show warnings that are specific to that plugin. - if (warning.startsWith(plugin.name) || warning.startsWith(`"${plugin.name}`)) { - count += 1 - ux.warn(warning) - } - } - - if (plugin && count > 0) { - ux.logToStderr(`\nThese warnings can only be addressed by the owner(s) of ${plugin.name}.`) - - if (plugin.pjson.bugs || plugin.pjson.repository) { - ux.logToStderr( - `We suggest that you create an issue at ${extractIssuesLocation( - plugin.pjson.bugs, - plugin.pjson.repository, - )} and ask the plugin owners to address them.\n`, - ) - } - } - - if (YarnMessagesCache.errors.size === 0) return - ux.logToStderr('\nThe following errors occurred:') - for (const err of YarnMessagesCache.errors) { - ux.error(err, {exit: false}) - } - } -} - -export function extractIssuesLocation( - bugs: {url: string} | string | undefined, - repository: {type: string; url: string} | string | undefined, -): string | undefined { - if (bugs) { - return typeof bugs === 'string' ? bugs : bugs.url - } - - if (repository) { - return typeof repository === 'string' ? repository : repository.url.replace('git+', '').replace('.git', '') - } -} diff --git a/src/yarn.ts b/src/yarn.ts deleted file mode 100644 index 64386128..00000000 --- a/src/yarn.ts +++ /dev/null @@ -1,163 +0,0 @@ -import {ux} from '@oclif/core' -import makeDebug from 'debug' -import {fork} from 'node:child_process' -import {createRequire} from 'node:module' -import {join} from 'node:path' -import {fileURLToPath} from 'node:url' -import NpmRunPath from 'npm-run-path' - -import {InstallOptions, PackageManager, PackageManagerExecOptions} from './package-manager.js' -import {YarnMessagesCache} from './util.js' - -const debug = makeDebug('cli:yarn') - -const require = createRequire(import.meta.url) - -export default class Yarn extends PackageManager { - public get name(): 'yarn' { - return 'yarn' - } - - async exec(args: string[] = [], opts: PackageManagerExecOptions): Promise { - const bin = require.resolve('yarn/bin/yarn.js', {paths: [this.config.root, fileURLToPath(import.meta.url)]}) - debug('yarn binary path', bin) - const {cwd, silent, verbose} = opts - if (args[0] !== 'run') { - // https://classic.yarnpkg.com/lang/en/docs/cli/#toc-concurrency-and-mutex - // Default port is: 31997 - const port = this.config.scopedEnvVar('NETWORK_MUTEX_PORT') - const optionalPort = port ? `:${port}` : '' - const mutex = this.config.scopedEnvVar('USE_NETWORK_MUTEX') - ? `network${optionalPort}` - : `file:${join(cwd, 'yarn.lock')}` - const cacheDir = join(this.config.cacheDir, 'yarn') - args = [...args, '--non-interactive', `--mutex=${mutex}`, `--preferred-cache-folder=${cacheDir}`, '--check-files'] - - const networkTimeout = this.config.scopedEnvVar('NETWORK_TIMEOUT') - if (networkTimeout) args.push(`--network-timeout=${networkTimeout}`) - - if (verbose && !silent) args.push('--verbose') - if (silent && !verbose) args.push('--silent') - - if (this.config.npmRegistry) args.push(`--registry=${this.config.npmRegistry}`) - } - - const npmRunPath: typeof NpmRunPath = require('npm-run-path') - const options = { - ...opts, - cwd, - env: npmRunPath.env({cwd, env: process.env}), - // The ts-node/esm loader isn't need to execute yarn commands anyways. - execArgv: process.execArgv - .join(' ') - // Remove --loader ts-node/esm from execArgv so that the subprocess doesn't fail if it can't find ts-node. - .replace('--loader ts-node/esm', '') - .replace('--loader=ts-node/esm', '') - .split(' ') - .filter(Boolean), - stdio: [0, null, null, 'ipc'], - } - - if (verbose) { - process.stderr.write(`${cwd}: ${bin} ${args.join(' ')}`) - } - - debug(`${cwd}: ${bin} ${args.join(' ')}`) - try { - await this.fork(bin, args, options) - debug('yarn done') - } catch (error: unknown) { - const {message} = error as Error & {message: string} - debug('yarn error', error) - // to-do: https://github.com/yarnpkg/yarn/issues/2191 - const networkConcurrency = '--network-concurrency=1' - if (message.includes('EAI_AGAIN') && !args.includes(networkConcurrency)) { - debug('EAI_AGAIN') - return this.exec([...args, networkConcurrency], opts) - } - - throw error - } - } - - fork(modulePath: string, args: string[] = [], options: PackageManagerExecOptions): Promise { - const cache = YarnMessagesCache.getInstance() - - return new Promise((resolve, reject) => { - const forked = fork(modulePath, args, { - ...options, - env: { - ...process.env, - // Disable husky hooks because a plugin might be trying to install them, which will - // break the install since the install location isn't a .git directory. - HUSKY: '0', - // YARN_IGNORE_PATH=1 prevents yarn from resolving to the globally configured yarn binary. - // In other words, it ensures that it resolves to the yarn binary that is available in the node_modules directory. - YARN_IGNORE_PATH: '1', - }, - }) - forked.stderr?.on('data', (d: Buffer) => { - if (!options.silent) { - const str = d.toString() - if (str.startsWith('error')) cache.addErrors(str) - else - cache.addWarnings( - ...str - .split('\n') - .map((i) => - i - .trim() - .replace(/^warning/, '') - .trim(), - ) - .filter(Boolean), - ) - } - }) - forked.stdout?.setEncoding('utf8') - forked.stdout?.on('data', (d) => { - if (options.verbose) process.stdout.write(d) - else if (!options.noSpinner) ux.action.status = d.replace(/\n$/, '').split('\n').pop() - }) - - forked.on('error', reject) - forked.on('exit', (code: number) => { - if (code === 0) { - resolve() - } else { - reject(new Error(`${modulePath} ${args.join(' ')} exited with code ${code}`)) - } - }) - }) - } - - async install(args: string[], opts: InstallOptions): Promise { - const prod = opts.prod ? ['--prod'] : [] - await this.exec(['add', ...args, ...prod], opts) - } - - async refresh(args: string[], opts: InstallOptions): Promise { - const prod = opts.prod ? ['--prod'] : [] - await this.exec([...args, ...prod], opts) - } - - async show(args: string[], opts: PackageManagerExecOptions): Promise { - await this.exec(['info', ...args], opts) - } - - async uninstall(args: string[], opts: PackageManagerExecOptions): Promise { - await this.exec(['remove', ...args], opts) - } - - async update(args: string[], opts: PackageManagerExecOptions): Promise { - await this.exec(['upgrade', ...args], opts) - } - - // async npm(args: string[], opts: PackageManagerExecOptions): Promise { - // await this.fork(require.resolve('.bin/npm'), args, opts) - // } - - // async pnpm(args: string[], opts: PackageManagerExecOptions): Promise { - // await this.fork(require.resolve('.bin/pnpm'), args, opts) - // } -} diff --git a/yarn.lock b/yarn.lock index e726b273..af9f13a5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6451,6 +6451,13 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" +npm-run-path@^5: + version "5.2.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" + integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg== + dependencies: + path-key "^4.0.0" + npm-run-path@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" @@ -7009,11 +7016,6 @@ pluralize@^8.0.0: resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== -pnpm@^8.12.0: - version "8.12.0" - resolved "https://registry.yarnpkg.com/pnpm/-/pnpm-8.12.0.tgz#7134f9b8d0b70bc7a1954f47af52123cd2b2acce" - integrity sha512-J5J4+Dvngvb6rvusvMxQMwHE7Cza/UCYPnwmru7nw4Jw9cjmNbQ0ZGkbiXq+FnW0DAbfbtrd6SJTK3NoqppSZw== - postcss-selector-parser@^6.0.10: version "6.0.13" resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" @@ -8576,11 +8578,6 @@ yargs@^17.0.0: y18n "^5.0.5" yargs-parser "^21.1.1" -yarn@^1.22.21: - version "1.22.21" - resolved "https://registry.yarnpkg.com/yarn/-/yarn-1.22.21.tgz#1959a18351b811cdeedbd484a8f86c3cc3bbaf72" - integrity sha512-ynXaJsADJ9JiZ84zU25XkPGOvVMmZ5b7tmTSpKURYwgELdjucAOydqIOrOfTxVYcNXe91xvLZwcRh68SR3liCg== - yeoman-environment@^3.15.1: version "3.19.3" resolved "https://registry.yarnpkg.com/yeoman-environment/-/yeoman-environment-3.19.3.tgz#49c2339805fdf695fac42c88334a1daa94ee8b6c" From d7c09cb0b8a9e825af34490eb703887f04b8bb31 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 10:37:19 -0700 Subject: [PATCH 09/44] chore: clean up --- src/commands/plugins/index.ts | 8 ++++- src/commands/plugins/inspect.ts | 8 +++-- src/commands/plugins/install.ts | 28 ++++++++++------ src/commands/plugins/link.ts | 14 ++++---- src/commands/plugins/reset.ts | 6 +++- src/commands/plugins/uninstall.ts | 19 ++++++----- src/commands/plugins/update.ts | 12 ++++--- src/hooks/update.ts | 6 +++- src/index.ts | 2 +- src/npm.ts | 43 ++++++++++-------------- src/plugins.ts | 28 ++++++---------- test/plugins.test.ts | 2 +- test/utils.test.ts | 56 ------------------------------- 13 files changed, 96 insertions(+), 136 deletions(-) delete mode 100644 test/utils.test.ts diff --git a/src/commands/plugins/index.ts b/src/commands/plugins/index.ts index f981cf72..7bba655c 100644 --- a/src/commands/plugins/index.ts +++ b/src/commands/plugins/index.ts @@ -17,10 +17,16 @@ export default class PluginsIndex extends Command { core: Flags.boolean({description: 'Show core plugins.'}), } - plugins = new Plugins(this.config) + plugins!: Plugins async run(): Promise { const {flags} = await this.parse(PluginsIndex) + this.plugins = new Plugins({ + config: this.config, + silent: !flags.verbose, + verbose: flags.verbose, + }) + let plugins = this.config.getPluginsList() sortBy(plugins, (p) => this.plugins.friendlyName(p.name)) if (!flags.core) { diff --git a/src/commands/plugins/inspect.ts b/src/commands/plugins/inspect.ts index 009c54db..1319c12a 100644 --- a/src/commands/plugins/inspect.ts +++ b/src/commands/plugins/inspect.ts @@ -59,7 +59,7 @@ export default class PluginsInspect extends Command { static usage = 'plugins:inspect PLUGIN...' - plugins = new Plugins(this.config) + plugins!: Plugins async findDep(plugin: Plugin, dependency: string): Promise<{pkgPath: null | string; version: null | string}> { const dependencyPath = join(...dependency.split('/')) @@ -140,7 +140,11 @@ export default class PluginsInspect extends Command { /* eslint-disable no-await-in-loop */ async run(): Promise { const {argv, flags} = await this.parse(PluginsInspect) - if (flags.verbose) this.plugins.verbose = true + this.plugins = new Plugins({ + config: this.config, + silent: !flags.verbose, + verbose: flags.verbose, + }) const aliases = this.config.pjson.oclif.aliases ?? {} const plugins: PluginWithDeps[] = [] for (let name of argv as string[]) { diff --git a/src/commands/plugins/install.ts b/src/commands/plugins/install.ts index 0b6862c9..c16d65bf 100644 --- a/src/commands/plugins/install.ts +++ b/src/commands/plugins/install.ts @@ -31,7 +31,7 @@ e.g. If you have a core plugin that has a 'hello' command, installing a user-ins static flags = { force: Flags.boolean({ char: 'f', - description: 'Run "npm install" with force flag.', + description: 'Force npm to fetch remote resources even if a local copy exists on disk.', }), help: Flags.help({char: 'h'}), jit: Flags.boolean({ @@ -45,7 +45,7 @@ e.g. If you have a core plugin that has a 'hello' command, installing a user-ins const jitPluginsConfig = ctx.config.pjson.oclif.jitPlugins ?? {} if (Object.keys(jitPluginsConfig).length === 0) return input - const plugins = new Plugins(ctx.config) + const plugins = new Plugins({config: ctx.config, silent: true, verbose: false}) const nonJitPlugins = await Promise.all( requestedPlugins.map(async (plugin) => { @@ -79,11 +79,13 @@ e.g. If you have a core plugin that has a 'hello' command, installing a user-ins static usage = 'plugins:install PLUGIN...' flags!: Interfaces.InferredFlags - plugins = new Plugins(this.config) // In this case we want these operations to happen // sequentially so the `no-await-in-loop` rule is ignored - async parsePlugin(input: string): Promise<{name: string; tag: string; type: 'npm'} | {type: 'repo'; url: string}> { + async parsePlugin( + plugins: Plugins, + input: string, + ): Promise<{name: string; tag: string; type: 'npm'} | {type: 'repo'; url: string}> { // git ssh url if (input.startsWith('git+ssh://') || input.endsWith('.git')) { return {type: 'repo', url: input} @@ -92,7 +94,7 @@ e.g. If you have a core plugin that has a 'hello' command, installing a user-ins const getNameAndTag = async (input: string): Promise<{name: string; tag: string}> => { const regexAtSymbolNotAtBeginning = /(? { const {argv, flags} = await this.parse(PluginsInstall) this.flags = flags - if (flags.verbose && !flags.silent) this.plugins.verbose = true - if (flags.silent && !flags.verbose) this.plugins.silent = true + + const plugins = new Plugins({ + config: this.config, + silent: flags.silent && !flags.verbose, + verbose: flags.verbose && !flags.silent, + }) const aliases = this.config.pjson.oclif.aliases || {} for (let name of argv as string[]) { if (aliases[name] === null) this.error(`${name} is blocked`) name = aliases[name] || name - const p = await this.parsePlugin(name) + const p = await this.parsePlugin(plugins, name) let plugin await this.config.runHook('plugins:preinstall', { plugin: p, }) try { if (p.type === 'npm') { - ux.action.start(`Installing plugin ${chalk.cyan(this.plugins.friendlyName(p.name) + '@' + p.tag)}`) - plugin = await this.plugins.install(p.name, { + ux.action.start(`Installing plugin ${chalk.cyan(plugins.friendlyName(p.name) + '@' + p.tag)}`) + plugin = await plugins.install(p.name, { force: flags.force, tag: p.tag, }) } else { ux.action.start(`Installing plugin ${chalk.cyan(p.url)}`) - plugin = await this.plugins.install(p.url, {force: flags.force}) + plugin = await plugins.install(p.url, {force: flags.force}) } } catch (error) { ux.action.stop(chalk.bold.red('failed')) diff --git a/src/commands/plugins/link.ts b/src/commands/plugins/link.ts index 3b986d84..8227c2b1 100644 --- a/src/commands/plugins/link.ts +++ b/src/commands/plugins/link.ts @@ -26,15 +26,17 @@ e.g. If you have a user-installed or core plugin that has a 'hello' command, ins verbose: Flags.boolean({char: 'v'}), } - static usage = 'plugins:link PLUGIN' - - plugins = new Plugins(this.config) - async run(): Promise { const {args, flags} = await this.parse(PluginsLink) - this.plugins.verbose = flags.verbose + + const plugins = new Plugins({ + config: this.config, + silent: !flags.verbose, + verbose: flags.verbose, + }) + ux.action.start(`Linking plugin ${chalk.cyan(args.path)}`) - await this.plugins.link(args.path, {install: flags.install}) + await plugins.link(args.path, {install: flags.install}) ux.action.stop() } } diff --git a/src/commands/plugins/reset.ts b/src/commands/plugins/reset.ts index c4552a35..afb89f59 100644 --- a/src/commands/plugins/reset.ts +++ b/src/commands/plugins/reset.ts @@ -7,7 +7,11 @@ export default class Reset extends Command { static summary = 'Remove all user-installed and linked plugins.' async run(): Promise { - const plugins = new Plugins(this.config) + const plugins = new Plugins({ + config: this.config, + silent: true, + verbose: false, + }) const userPlugins = await plugins.list() this.log(`Uninstalling ${userPlugins.length} plugin${userPlugins.length === 0 ? '' : 's'}`) diff --git a/src/commands/plugins/uninstall.ts b/src/commands/plugins/uninstall.ts index c6a4be72..b1023b78 100644 --- a/src/commands/plugins/uninstall.ts +++ b/src/commands/plugins/uninstall.ts @@ -37,21 +37,22 @@ export default class PluginsUninstall extends Command { static strict = false - static usage = 'plugins:uninstall PLUGIN...' - - plugins = new Plugins(this.config) - // In this case we want these operations to happen // sequentially so the `no-await-in-loop` rule is ignored async run(): Promise { const {argv, flags} = await this.parse(PluginsUninstall) - this.plugins = new Plugins(this.config) - if (flags.verbose) this.plugins.verbose = true + + const plugins = new Plugins({ + config: this.config, + silent: !flags.verbose, + verbose: flags.verbose, + }) + if (argv.length === 0) argv.push('.') for (const plugin of argv as string[]) { - const friendly = removeTags(this.plugins.friendlyName(plugin)) + const friendly = removeTags(plugins.friendlyName(plugin)) ux.action.start(`Uninstalling ${friendly}`) - const unfriendly = await this.plugins.hasPlugin(removeTags(plugin)) + const unfriendly = await plugins.hasPlugin(removeTags(plugin)) if (!unfriendly) { const p = this.config.getPluginsList().find((p) => p.name === plugin) if (p?.parent) @@ -64,7 +65,7 @@ export default class PluginsUninstall extends Command { try { const {name} = unfriendly - await this.plugins.uninstall(name) + await plugins.uninstall(name) } catch (error) { ux.action.stop(chalk.bold.red('failed')) throw error diff --git a/src/commands/plugins/update.ts b/src/commands/plugins/update.ts index 1a402332..e44b922b 100644 --- a/src/commands/plugins/update.ts +++ b/src/commands/plugins/update.ts @@ -10,14 +10,18 @@ export default class PluginsUpdate extends Command { verbose: Flags.boolean({char: 'v'}), } - plugins = new Plugins(this.config) - async run(): Promise { const {flags} = await this.parse(PluginsUpdate) - this.plugins.verbose = flags.verbose + + const plugins = new Plugins({ + config: this.config, + silent: !flags.verbose, + verbose: flags.verbose, + }) + ux.action.start(`${this.config.name}: Updating plugins`) - await this.plugins.update() + await plugins.update() ux.action.stop() } diff --git a/src/hooks/update.ts b/src/hooks/update.ts index c1c6ae6d..b4485476 100644 --- a/src/hooks/update.ts +++ b/src/hooks/update.ts @@ -3,7 +3,11 @@ import {Hook} from '@oclif/core' import Plugins from '../plugins.js' export const update: Hook<'update'> = async function () { - const plugins = new Plugins(this.config) + const plugins = new Plugins({ + config: this.config, + silent: true, + verbose: false, + }) try { await plugins.update() } catch (error: unknown) { diff --git a/src/index.ts b/src/index.ts index 711b0393..b1c6ea43 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1 +1 @@ -export {default} from './plugins.js' +export default {} diff --git a/src/npm.ts b/src/npm.ts index ca0b7e94..2791b1ea 100644 --- a/src/npm.ts +++ b/src/npm.ts @@ -9,40 +9,33 @@ const debug = makeDebug('@oclif/plugin-plugins:npm') const require = createRequire(import.meta.url) -export type PackageManagerExecOptions = { - cwd: string - silent: boolean - verbose: boolean -} - -export type InstallOptions = PackageManagerExecOptions & { - prod?: boolean -} - export class NPM { private bin: string private config: Interfaces.Config + private silent: boolean + private verbose: boolean - public constructor({config}: {config: Interfaces.Config}) { + public constructor({config, silent, verbose}: {config: Interfaces.Config; silent: boolean; verbose: boolean}) { this.config = config + this.silent = silent + this.verbose = verbose this.bin = require.resolve('.bin/npm', {paths: [this.config.root, fileURLToPath(import.meta.url)]}) } - async exec(args: string[] = [], opts: PackageManagerExecOptions): Promise { + async exec(args: string[] = [], {cwd}: {cwd: string}): Promise { debug('npm binary path', this.bin) - const {cwd, silent, verbose} = opts - if (verbose) args.push('--loglevel=verbose') - if (silent && !verbose) args.push('--loglevel=silent') + if (this.verbose) args.push('--loglevel=verbose') + if (this.silent && !this.verbose) args.push('--loglevel=silent') if (this.config.npmRegistry) args.push(`--registry=${this.config.npmRegistry}`) - if (verbose) { + if (this.verbose) { process.stderr.write(`${cwd}: ${this.bin} ${args.join(' ')}`) } debug(`${cwd}: ${this.bin} ${args.join(' ')}`) try { - await this.fork(args, opts) + await this.fork(args, {cwd}) debug('npm done') } catch (error: unknown) { debug('npm error', error) @@ -50,10 +43,10 @@ export class NPM { } } - async fork(args: string[] = [], options: PackageManagerExecOptions): Promise { + async fork(args: string[] = [], {cwd}: {cwd: string}): Promise { return new Promise((resolve, reject) => { const forked = fork(this.bin, args, { - cwd: options.cwd, + cwd, env: { ...npmRunPathEnv(), // Disable husky hooks because a plugin might be trying to install them, which will @@ -73,12 +66,12 @@ export class NPM { forked.stderr?.setEncoding('utf8') forked.stderr?.on('data', (d: Buffer) => { - if (options.verbose) process.stderr.write(d) + if (this.verbose) process.stderr.write(d) }) forked.stdout?.setEncoding('utf8') forked.stdout?.on('data', (d) => { - if (options.verbose) process.stdout.write(d) + if (this.verbose) process.stdout.write(d) }) forked.on('error', reject) @@ -92,20 +85,20 @@ export class NPM { }) } - async install(args: string[], opts: InstallOptions): Promise { + async install(args: string[], opts: {cwd: string; prod?: boolean}): Promise { const prod = opts.prod ? ['--omit', 'dev'] : [] await this.exec(['install', ...args, ...prod], opts) } - async show(args: string[], opts: PackageManagerExecOptions): Promise { + async show(args: string[], opts: {cwd: string}): Promise { await this.exec(['show', ...args], opts) } - async uninstall(args: string[], opts: PackageManagerExecOptions): Promise { + async uninstall(args: string[], opts: {cwd: string}): Promise { await this.exec(['uninstall', ...args], opts) } - async update(args: string[], opts: PackageManagerExecOptions): Promise { + async update(args: string[], opts: {cwd: string}): Promise { await this.exec(['update', ...args], opts) } } diff --git a/src/plugins.ts b/src/plugins.ts index f42a965a..5f8ba656 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -2,7 +2,6 @@ import {Config, Errors, Interfaces, ux} from '@oclif/core' import makeDebug from 'debug' import {access, mkdir, readFile, rm, writeFile} from 'node:fs/promises' import {dirname, join, resolve} from 'node:path' -import npa from 'npm-package-arg' import {gt, valid, validRange} from 'semver' import {NPM} from './npm.js' @@ -43,15 +42,15 @@ function dedupePlugins( } export default class Plugins { + public config: Interfaces.Config public readonly npm: NPM - public silent = false - public verbose = false private readonly debug: ReturnType - constructor(public config: Interfaces.Config) { + constructor(options: {config: Interfaces.Config; silent: boolean; verbose: boolean}) { + this.config = options.config this.debug = makeDebug('@oclif/plugin-plugins') - this.npm = new NPM({config}) + this.npm = new NPM(options) } public async add(...plugins: Interfaces.PJSON.PluginTypes[]): Promise { @@ -88,15 +87,16 @@ export default class Plugins { public async install(name: string, {force = false, tag = 'latest'} = {}): Promise { try { this.debug(`installing plugin ${name}`) - const options = {cwd: this.config.dataDir, prod: true, silent: this.silent, verbose: this.verbose} + const options = {cwd: this.config.dataDir, prod: true} await this.createPJSON() let plugin - const add = force ? ['--force'] : [] + const args = force ? ['--force'] : [] if (name.includes(':')) { // url const url = name - await this.npm.install([...add, url], options) + await this.npm.install([...args, url], options) const {dependencies} = await this.pjson() + const {default: npa} = await import('npm-package-arg') const normalizedUrl = npa(url) const matches = Object.entries(dependencies ?? {}).find(([, u]) => { const normalized = npa(u) @@ -130,7 +130,7 @@ export default class Plugins { // validate that the package name exists in the npm registry before installing await this.npmHasPackage(name, true) - await this.npm.install([...add, `${name}@${tag}`], options) + await this.npm.install([...args, `${name}@${tag}`], options) this.debug(`loading plugin ${name}...`) plugin = await Config.load({ @@ -174,8 +174,6 @@ export default class Plugins { await this.npm.install([], { cwd: c.root, prod: false, - silent: this.silent, - verbose: this.verbose, }) } @@ -237,8 +235,6 @@ export default class Plugins { if ((pjson.oclif.plugins ?? []).some((p) => typeof p === 'object' && p.type === 'user' && p.name === name)) { await this.npm.uninstall([name], { cwd: this.config.dataDir, - silent: this.silent, - verbose: this.verbose, }) } } catch (error: unknown) { @@ -268,8 +264,6 @@ export default class Plugins { if (plugins.some((p) => Boolean(p.url))) { await this.npm.update([], { cwd: this.config.dataDir, - silent: this.silent, - verbose: this.verbose, }) } @@ -293,7 +287,7 @@ export default class Plugins { modifiedPlugins.push({...p, tag}) return `${p.name}@${tag}` }), - {cwd: this.config.dataDir, prod: true, silent: this.silent, verbose: this.verbose}, + {cwd: this.config.dataDir, prod: true}, ) } @@ -347,8 +341,6 @@ export default class Plugins { try { await this.npm.show([name], { cwd: this.config.dataDir, - silent: this.silent, - verbose: this.verbose, }) this.debug(`Found ${name} in the registry.`) return true diff --git a/test/plugins.test.ts b/test/plugins.test.ts index c329db2c..36f94a19 100644 --- a/test/plugins.test.ts +++ b/test/plugins.test.ts @@ -39,7 +39,7 @@ describe('Plugins', () => { ...config.pjson.oclif, pluginPrefix: undefined, } - plugins = new Plugins(config) + plugins = new Plugins({config, silent: true, verbose: false}) // @ts-expect-error because savePJSON is private saveStub = sandbox.stub(plugins, 'savePJSON').resolves() }) diff --git a/test/utils.test.ts b/test/utils.test.ts deleted file mode 100644 index ea77347e..00000000 --- a/test/utils.test.ts +++ /dev/null @@ -1,56 +0,0 @@ -import {expect} from 'chai' - -import {extractIssuesLocation} from '../src/util.js' - -describe('extractIssuesLocation', () => { - it('should return url if pjson.bugs is a string', () => { - const pjson = { - bugs: 'https://github.com/oclif/plugin-plugins/issues', - name: '@oclif/plugin-plugins', - repository: { - type: 'git', - url: 'git+https://github.com/oclif/plugin-plugins.git', - }, - version: '1.0.0', - } - - expect(extractIssuesLocation(pjson.bugs, pjson.repository)).to.equal(pjson.bugs) - }) - - it('should return url is pjson.bugs is an object', () => { - const pjson = { - bugs: {url: 'https://github.com/oclif/plugin-plugins/issues'}, - name: '@oclif/plugin-plugins', - repository: { - type: 'git', - url: 'git+https://github.com/oclif/plugin-plugins.git', - }, - version: '1.0.0', - } - - expect(extractIssuesLocation(pjson.bugs, pjson.repository)).to.equal(pjson.bugs.url) - }) - - it('should return url if pjson.bugs is undefined and pjson.repository is a string', () => { - const pjson = { - name: '@oclif/plugin-plugins', - repository: 'https://github.com/oclif/plugin-plugins.git', - version: '1.0.0', - } - - expect(extractIssuesLocation(undefined, pjson.repository)).to.equal(pjson.repository) - }) - - it('should return url if pjson.bugs is undefined and pjson.repository is an object', () => { - const pjson = { - name: '@oclif/plugin-plugins', - repository: { - type: 'git', - url: 'git+https://github.com/oclif/plugin-plugins.git', - }, - version: '1.0.0', - } - - expect(extractIssuesLocation(undefined, pjson.repository)).to.equal('https://github.com/oclif/plugin-plugins') - }) -}) From b1ea1f1cdd63494f8387410cbddd8f55fbc740b6 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 10:51:52 -0700 Subject: [PATCH 10/44] test: debug failing windows tests --- test/integration/install.integration.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/integration/install.integration.ts b/test/integration/install.integration.ts index 54486aeb..ab194444 100644 --- a/test/integration/install.integration.ts +++ b/test/integration/install.integration.ts @@ -60,7 +60,7 @@ describe('install/uninstall integration tests', () => { }) it('should install plugin', async () => { - await PluginsInstall.run(['@oclif/plugin-test-esm-1'], cwd) + await PluginsInstall.run(['@oclif/plugin-test-esm-1', '--verbose'], cwd) const result = await PluginsIndex.run([], cwd) expect(stdoutStub.calledWith(match('test-esm-1'))).to.be.true From 3cc66c8edd427a9bbbcbd79062398063fd2c7714 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 11:18:11 -0700 Subject: [PATCH 11/44] feat: add --npm-log-level flag --- src/commands/plugins/index.ts | 2 -- src/commands/plugins/inspect.ts | 5 +++-- src/commands/plugins/install.ts | 7 ++++--- src/commands/plugins/link.ts | 5 +++-- src/commands/plugins/reset.ts | 2 -- src/commands/plugins/uninstall.ts | 5 +++-- src/commands/plugins/update.ts | 5 +++-- src/hooks/update.ts | 2 -- src/log-level.ts | 23 +++++++++++++++++++++++ src/npm.ts | 13 +++++++------ src/plugins.ts | 3 ++- 11 files changed, 48 insertions(+), 24 deletions(-) create mode 100644 src/log-level.ts diff --git a/src/commands/plugins/index.ts b/src/commands/plugins/index.ts index 7bba655c..bf4ebb1b 100644 --- a/src/commands/plugins/index.ts +++ b/src/commands/plugins/index.ts @@ -23,8 +23,6 @@ export default class PluginsIndex extends Command { const {flags} = await this.parse(PluginsIndex) this.plugins = new Plugins({ config: this.config, - silent: !flags.verbose, - verbose: flags.verbose, }) let plugins = this.config.getPluginsList() diff --git a/src/commands/plugins/inspect.ts b/src/commands/plugins/inspect.ts index 1319c12a..c7b3f968 100644 --- a/src/commands/plugins/inspect.ts +++ b/src/commands/plugins/inspect.ts @@ -3,6 +3,7 @@ import chalk from 'chalk' import {readFile} from 'node:fs/promises' import {dirname, join, sep} from 'node:path' +import {determineLogLevel, npmLogLevelFlag} from '../../log-level.js' import Plugins from '../../plugins.js' import {sortBy} from '../../util.js' @@ -52,6 +53,7 @@ export default class PluginsInspect extends Command { static flags = { help: Flags.help({char: 'h'}), + 'npm-log-level': npmLogLevelFlag({exclusive: ['verbose']}), verbose: Flags.boolean({char: 'v'}), } @@ -142,8 +144,7 @@ export default class PluginsInspect extends Command { const {argv, flags} = await this.parse(PluginsInspect) this.plugins = new Plugins({ config: this.config, - silent: !flags.verbose, - verbose: flags.verbose, + logLevel: determineLogLevel(flags), }) const aliases = this.config.pjson.oclif.aliases ?? {} const plugins: PluginWithDeps[] = [] diff --git a/src/commands/plugins/install.ts b/src/commands/plugins/install.ts index c16d65bf..357e571b 100644 --- a/src/commands/plugins/install.ts +++ b/src/commands/plugins/install.ts @@ -3,6 +3,7 @@ import {Args, Command, Errors, Flags, Interfaces, ux} from '@oclif/core' import chalk from 'chalk' import validate from 'validate-npm-package-name' +import {determineLogLevel, npmLogLevelFlag} from '../../log-level.js' import Plugins from '../../plugins.js' export default class PluginsInstall extends Command { @@ -45,7 +46,7 @@ e.g. If you have a core plugin that has a 'hello' command, installing a user-ins const jitPluginsConfig = ctx.config.pjson.oclif.jitPlugins ?? {} if (Object.keys(jitPluginsConfig).length === 0) return input - const plugins = new Plugins({config: ctx.config, silent: true, verbose: false}) + const plugins = new Plugins({config: ctx.config}) const nonJitPlugins = await Promise.all( requestedPlugins.map(async (plugin) => { @@ -62,6 +63,7 @@ e.g. If you have a core plugin that has a 'hello' command, installing a user-ins return input }, }), + 'npm-log-level': npmLogLevelFlag({exclusive: ['silent', 'verbose']}), silent: Flags.boolean({ char: 's', description: 'Silences npm output.', @@ -139,8 +141,7 @@ e.g. If you have a core plugin that has a 'hello' command, installing a user-ins const plugins = new Plugins({ config: this.config, - silent: flags.silent && !flags.verbose, - verbose: flags.verbose && !flags.silent, + logLevel: determineLogLevel(this.flags), }) const aliases = this.config.pjson.oclif.aliases || {} for (let name of argv as string[]) { diff --git a/src/commands/plugins/link.ts b/src/commands/plugins/link.ts index 8227c2b1..15fcc737 100644 --- a/src/commands/plugins/link.ts +++ b/src/commands/plugins/link.ts @@ -1,6 +1,7 @@ import {Args, Command, Flags, ux} from '@oclif/core' import chalk from 'chalk' +import {determineLogLevel, npmLogLevelFlag} from '../../log-level.js' import Plugins from '../../plugins.js' export default class PluginsLink extends Command { @@ -23,6 +24,7 @@ e.g. If you have a user-installed or core plugin that has a 'hello' command, ins default: true, description: 'Install dependencies after linking the plugin.', }), + 'npm-log-level': npmLogLevelFlag({exclusive: ['verbose']}), verbose: Flags.boolean({char: 'v'}), } @@ -31,8 +33,7 @@ e.g. If you have a user-installed or core plugin that has a 'hello' command, ins const plugins = new Plugins({ config: this.config, - silent: !flags.verbose, - verbose: flags.verbose, + logLevel: determineLogLevel(flags), }) ux.action.start(`Linking plugin ${chalk.cyan(args.path)}`) diff --git a/src/commands/plugins/reset.ts b/src/commands/plugins/reset.ts index afb89f59..d61ced31 100644 --- a/src/commands/plugins/reset.ts +++ b/src/commands/plugins/reset.ts @@ -9,8 +9,6 @@ export default class Reset extends Command { async run(): Promise { const plugins = new Plugins({ config: this.config, - silent: true, - verbose: false, }) const userPlugins = await plugins.list() diff --git a/src/commands/plugins/uninstall.ts b/src/commands/plugins/uninstall.ts index b1023b78..5d12e00c 100644 --- a/src/commands/plugins/uninstall.ts +++ b/src/commands/plugins/uninstall.ts @@ -2,6 +2,7 @@ import {Args, Command, Flags, ux} from '@oclif/core' import chalk from 'chalk' +import {determineLogLevel, npmLogLevelFlag} from '../../log-level.js' import Plugins from '../../plugins.js' function removeTags(plugin: string): string { @@ -32,6 +33,7 @@ export default class PluginsUninstall extends Command { static flags = { help: Flags.help({char: 'h'}), + 'npm-log-level': npmLogLevelFlag({exclusive: ['verbose']}), verbose: Flags.boolean({char: 'v'}), } @@ -44,8 +46,7 @@ export default class PluginsUninstall extends Command { const plugins = new Plugins({ config: this.config, - silent: !flags.verbose, - verbose: flags.verbose, + logLevel: determineLogLevel(flags), }) if (argv.length === 0) argv.push('.') diff --git a/src/commands/plugins/update.ts b/src/commands/plugins/update.ts index e44b922b..c3debf4c 100644 --- a/src/commands/plugins/update.ts +++ b/src/commands/plugins/update.ts @@ -1,5 +1,6 @@ import {Command, Flags, ux} from '@oclif/core' +import {determineLogLevel, npmLogLevelFlag} from '../../log-level.js' import Plugins from '../../plugins.js' export default class PluginsUpdate extends Command { @@ -7,6 +8,7 @@ export default class PluginsUpdate extends Command { static flags = { help: Flags.help({char: 'h'}), + 'npm-log-level': npmLogLevelFlag({exclusive: ['verbose']}), verbose: Flags.boolean({char: 'v'}), } @@ -15,8 +17,7 @@ export default class PluginsUpdate extends Command { const plugins = new Plugins({ config: this.config, - silent: !flags.verbose, - verbose: flags.verbose, + logLevel: determineLogLevel(flags), }) ux.action.start(`${this.config.name}: Updating plugins`) diff --git a/src/hooks/update.ts b/src/hooks/update.ts index b4485476..e245e722 100644 --- a/src/hooks/update.ts +++ b/src/hooks/update.ts @@ -5,8 +5,6 @@ import Plugins from '../plugins.js' export const update: Hook<'update'> = async function () { const plugins = new Plugins({ config: this.config, - silent: true, - verbose: false, }) try { await plugins.update() diff --git a/src/log-level.ts b/src/log-level.ts new file mode 100644 index 00000000..59e252d4 --- /dev/null +++ b/src/log-level.ts @@ -0,0 +1,23 @@ +import {Flags} from '@oclif/core' + +const LOG_LEVELS = ['silent', 'error', 'warn', 'notice', 'http', 'info', 'verbose', 'silly'] as const + +export type LogLevel = (typeof LOG_LEVELS)[number] + +export const npmLogLevelFlag = Flags.option({ + char: 'l', + default: 'notice', + options: LOG_LEVELS, + summary: 'Set the npm --loglevel flag for all npm executions.', +}) + +export const determineLogLevel = (flags: { + 'npm-log-level'?: LogLevel + silent?: boolean + verbose?: boolean +}): LogLevel => { + if (flags['npm-log-level']) return flags['npm-log-level'] + if (flags.silent) return 'silent' + if (flags.verbose) return 'verbose' + return 'notice' +} diff --git a/src/npm.ts b/src/npm.ts index 2791b1ea..c1edf1dc 100644 --- a/src/npm.ts +++ b/src/npm.ts @@ -5,6 +5,8 @@ import {createRequire} from 'node:module' import {fileURLToPath} from 'node:url' import {npmRunPathEnv} from 'npm-run-path' +import {LogLevel} from './log-level.js' + const debug = makeDebug('@oclif/plugin-plugins:npm') const require = createRequire(import.meta.url) @@ -12,21 +14,20 @@ const require = createRequire(import.meta.url) export class NPM { private bin: string private config: Interfaces.Config - private silent: boolean + private logLevel: LogLevel | undefined private verbose: boolean - public constructor({config, silent, verbose}: {config: Interfaces.Config; silent: boolean; verbose: boolean}) { + public constructor({config, logLevel}: {config: Interfaces.Config; logLevel?: LogLevel}) { this.config = config - this.silent = silent - this.verbose = verbose + this.logLevel = logLevel + this.verbose = logLevel === 'verbose' || logLevel === 'silly' this.bin = require.resolve('.bin/npm', {paths: [this.config.root, fileURLToPath(import.meta.url)]}) } async exec(args: string[] = [], {cwd}: {cwd: string}): Promise { debug('npm binary path', this.bin) - if (this.verbose) args.push('--loglevel=verbose') - if (this.silent && !this.verbose) args.push('--loglevel=silent') + if (this.logLevel) args.push(`--loglevel=${this.logLevel}}`) if (this.config.npmRegistry) args.push(`--registry=${this.config.npmRegistry}`) if (this.verbose) { diff --git a/src/plugins.ts b/src/plugins.ts index 5f8ba656..eb6a1cbd 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -4,6 +4,7 @@ import {access, mkdir, readFile, rm, writeFile} from 'node:fs/promises' import {dirname, join, resolve} from 'node:path' import {gt, valid, validRange} from 'semver' +import {LogLevel} from './log-level.js' import {NPM} from './npm.js' import {uniqWith} from './util.js' @@ -47,7 +48,7 @@ export default class Plugins { private readonly debug: ReturnType - constructor(options: {config: Interfaces.Config; silent: boolean; verbose: boolean}) { + constructor(options: {config: Interfaces.Config; logLevel?: LogLevel}) { this.config = options.config this.debug = makeDebug('@oclif/plugin-plugins') this.npm = new NPM(options) From fd4f30f0a5f8ec37d916c7360487b87cb025d20c Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 12:51:41 -0700 Subject: [PATCH 12/44] chore: clean up --- src/log-level.ts | 2 +- src/npm.ts | 126 +++++++++++++++++++++++++---------------------- src/plugins.ts | 2 +- 3 files changed, 68 insertions(+), 62 deletions(-) diff --git a/src/log-level.ts b/src/log-level.ts index 59e252d4..ef64f0f3 100644 --- a/src/log-level.ts +++ b/src/log-level.ts @@ -6,7 +6,7 @@ export type LogLevel = (typeof LOG_LEVELS)[number] export const npmLogLevelFlag = Flags.option({ char: 'l', - default: 'notice', + default: 'silent', options: LOG_LEVELS, summary: 'Set the npm --loglevel flag for all npm executions.', }) diff --git a/src/npm.ts b/src/npm.ts index c1edf1dc..119df502 100644 --- a/src/npm.ts +++ b/src/npm.ts @@ -1,6 +1,6 @@ import {Interfaces} from '@oclif/core' import makeDebug from 'debug' -import {fork} from 'node:child_process' +import {fork as cpFork} from 'node:child_process' import {createRequire} from 'node:module' import {fileURLToPath} from 'node:url' import {npmRunPathEnv} from 'npm-run-path' @@ -11,32 +11,80 @@ const debug = makeDebug('@oclif/plugin-plugins:npm') const require = createRequire(import.meta.url) +type ExecOptions = { + cwd: string + silent?: boolean +} + +type InstallOptions = ExecOptions & { + prod?: boolean +} + +async function fork(modulePath: string, args: string[] = [], {cwd, silent}: ExecOptions): Promise { + return new Promise((resolve, reject) => { + const forked = cpFork(modulePath, args, { + cwd, + env: { + ...npmRunPathEnv(), + // Disable husky hooks because a plugin might be trying to install them, which will + // break the install since the install location isn't a .git directory. + HUSKY: '0', + }, + execArgv: process.execArgv + .join(' ') + // Remove --loader ts-node/esm from execArgv so that the subprocess doesn't fail if it can't find ts-node. + // The ts-node/esm loader isn't need to execute npm commands anyways. + .replace('--loader ts-node/esm', '') + .replace('--loader=ts-node/esm', '') + .split(' ') + .filter(Boolean), + stdio: [0, null, null, 'ipc'], + }) + + forked.stderr?.setEncoding('utf8') + forked.stderr?.on('data', (d: Buffer) => { + if (!silent) process.stderr.write(d) + }) + + forked.stdout?.setEncoding('utf8') + forked.stdout?.on('data', (d) => { + if (!silent) process.stdout.write(d) + }) + + forked.on('error', reject) + forked.on('exit', (code: number) => { + if (code === 0) { + resolve() + } else { + reject(new Error(`${modulePath} ${args.join(' ')} exited with code ${code}`)) + } + }) + }) +} + export class NPM { private bin: string private config: Interfaces.Config private logLevel: LogLevel | undefined - private verbose: boolean public constructor({config, logLevel}: {config: Interfaces.Config; logLevel?: LogLevel}) { this.config = config this.logLevel = logLevel - this.verbose = logLevel === 'verbose' || logLevel === 'silly' this.bin = require.resolve('.bin/npm', {paths: [this.config.root, fileURLToPath(import.meta.url)]}) - } - - async exec(args: string[] = [], {cwd}: {cwd: string}): Promise { debug('npm binary path', this.bin) + } - if (this.logLevel) args.push(`--loglevel=${this.logLevel}}`) + async exec(args: string[] = [], options: ExecOptions): Promise { + if (this.logLevel) args.push(`--loglevel=${this.logLevel}`) if (this.config.npmRegistry) args.push(`--registry=${this.config.npmRegistry}`) - if (this.verbose) { - process.stderr.write(`${cwd}: ${this.bin} ${args.join(' ')}`) + if (this.logLevel && this.logLevel !== 'silent') { + process.stderr.write(`${options.cwd}: ${this.bin} ${args.join(' ')}`) } - debug(`${cwd}: ${this.bin} ${args.join(' ')}`) + debug(`${options.cwd}: ${this.bin} ${args.join(' ')}`) try { - await this.fork(args, {cwd}) + await fork(this.bin, args, options) debug('npm done') } catch (error: unknown) { debug('npm error', error) @@ -44,62 +92,20 @@ export class NPM { } } - async fork(args: string[] = [], {cwd}: {cwd: string}): Promise { - return new Promise((resolve, reject) => { - const forked = fork(this.bin, args, { - cwd, - env: { - ...npmRunPathEnv(), - // Disable husky hooks because a plugin might be trying to install them, which will - // break the install since the install location isn't a .git directory. - HUSKY: '0', - }, - execArgv: process.execArgv - .join(' ') - // Remove --loader ts-node/esm from execArgv so that the subprocess doesn't fail if it can't find ts-node. - // The ts-node/esm loader isn't need to execute npm commands anyways. - .replace('--loader ts-node/esm', '') - .replace('--loader=ts-node/esm', '') - .split(' ') - .filter(Boolean), - stdio: [0, null, null, 'ipc'], - }) - - forked.stderr?.setEncoding('utf8') - forked.stderr?.on('data', (d: Buffer) => { - if (this.verbose) process.stderr.write(d) - }) - - forked.stdout?.setEncoding('utf8') - forked.stdout?.on('data', (d) => { - if (this.verbose) process.stdout.write(d) - }) - - forked.on('error', reject) - forked.on('exit', (code: number) => { - if (code === 0) { - resolve() - } else { - reject(new Error(`${this.bin} ${args.join(' ')} exited with code ${code}`)) - } - }) - }) - } - - async install(args: string[], opts: {cwd: string; prod?: boolean}): Promise { + async install(args: string[], opts: InstallOptions): Promise { const prod = opts.prod ? ['--omit', 'dev'] : [] await this.exec(['install', ...args, ...prod], opts) } - async show(args: string[], opts: {cwd: string}): Promise { - await this.exec(['show', ...args], opts) - } - - async uninstall(args: string[], opts: {cwd: string}): Promise { + async uninstall(args: string[], opts: ExecOptions): Promise { await this.exec(['uninstall', ...args], opts) } - async update(args: string[], opts: {cwd: string}): Promise { + async update(args: string[], opts: ExecOptions): Promise { await this.exec(['update', ...args], opts) } + + async view(args: string[], opts: ExecOptions): Promise { + await this.exec(['view', ...args], {...opts, silent: this.logLevel === 'silent'}) + } } diff --git a/src/plugins.ts b/src/plugins.ts index eb6a1cbd..1e6fc9c8 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -340,7 +340,7 @@ export default class Plugins { private async npmHasPackage(name: string, throwOnNotFound = false): Promise { try { - await this.npm.show([name], { + await this.npm.view([name], { cwd: this.config.dataDir, }) this.debug(`Found ${name} in the registry.`) From 85b2da09381247cecdb68bc93ba7fffe25fcb4cf Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 12:52:23 -0700 Subject: [PATCH 13/44] test: debug failing windows tests --- test/integration/install.integration.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test/integration/install.integration.ts b/test/integration/install.integration.ts index ab194444..21d3a287 100644 --- a/test/integration/install.integration.ts +++ b/test/integration/install.integration.ts @@ -60,7 +60,8 @@ describe('install/uninstall integration tests', () => { }) it('should install plugin', async () => { - await PluginsInstall.run(['@oclif/plugin-test-esm-1', '--verbose'], cwd) + process.env.DEBUG = '@oclif/plugin-plugins*' + await PluginsInstall.run(['@oclif/plugin-test-esm-1', '--npm-log-level=silly'], cwd) const result = await PluginsIndex.run([], cwd) expect(stdoutStub.calledWith(match('test-esm-1'))).to.be.true From 002675b7ea7d7d7458403e3fe73ab6361cebc5fc Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 12:57:17 -0700 Subject: [PATCH 14/44] test: compilation errors --- test/plugins.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/plugins.test.ts b/test/plugins.test.ts index 36f94a19..8710b48a 100644 --- a/test/plugins.test.ts +++ b/test/plugins.test.ts @@ -39,7 +39,7 @@ describe('Plugins', () => { ...config.pjson.oclif, pluginPrefix: undefined, } - plugins = new Plugins({config, silent: true, verbose: false}) + plugins = new Plugins({config}) // @ts-expect-error because savePJSON is private saveStub = sandbox.stub(plugins, 'savePJSON').resolves() }) From b2a4d14d70adbde3e1ef7a8ce7fe3d845acf1775 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 13:12:46 -0700 Subject: [PATCH 15/44] fix: use CLIError --- src/npm.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/npm.ts b/src/npm.ts index 119df502..5a65a3c0 100644 --- a/src/npm.ts +++ b/src/npm.ts @@ -1,4 +1,4 @@ -import {Interfaces} from '@oclif/core' +import {Errors, Interfaces} from '@oclif/core' import makeDebug from 'debug' import {fork as cpFork} from 'node:child_process' import {createRequire} from 'node:module' @@ -56,7 +56,7 @@ async function fork(modulePath: string, args: string[] = [], {cwd, silent}: Exec if (code === 0) { resolve() } else { - reject(new Error(`${modulePath} ${args.join(' ')} exited with code ${code}`)) + reject(new Errors.CLIError(`${modulePath} ${args.join(' ')} exited with code ${code}`)) } }) }) From 9b736f60865b53fbc34db2af7253f69a2422d389 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 13:17:01 -0700 Subject: [PATCH 16/44] test: debug failing windows tests --- src/npm.ts | 2 +- src/plugins.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/npm.ts b/src/npm.ts index 5a65a3c0..a54f64d4 100644 --- a/src/npm.ts +++ b/src/npm.ts @@ -79,7 +79,7 @@ export class NPM { if (this.config.npmRegistry) args.push(`--registry=${this.config.npmRegistry}`) if (this.logLevel && this.logLevel !== 'silent') { - process.stderr.write(`${options.cwd}: ${this.bin} ${args.join(' ')}`) + process.stderr.write(`${options.cwd}: ${this.bin} ${args.join(' ')}\n`) } debug(`${options.cwd}: ${this.bin} ${args.join(' ')}`) diff --git a/src/plugins.ts b/src/plugins.ts index 1e6fc9c8..98b26d70 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -86,6 +86,7 @@ export default class Plugins { } public async install(name: string, {force = false, tag = 'latest'} = {}): Promise { + await this.npm.exec(['help'], {cwd: this.config.dataDir}) try { this.debug(`installing plugin ${name}`) const options = {cwd: this.config.dataDir, prod: true} From 503a9d3171ecd8bebcea5e64623294e17f554dcc Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 13:19:15 -0700 Subject: [PATCH 17/44] test: debug failing windows tests --- src/npm.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/npm.ts b/src/npm.ts index a54f64d4..f707c1d8 100644 --- a/src/npm.ts +++ b/src/npm.ts @@ -3,7 +3,7 @@ import makeDebug from 'debug' import {fork as cpFork} from 'node:child_process' import {createRequire} from 'node:module' import {fileURLToPath} from 'node:url' -import {npmRunPathEnv} from 'npm-run-path' +// import {npmRunPathEnv} from 'npm-run-path' import {LogLevel} from './log-level.js' @@ -25,7 +25,7 @@ async function fork(modulePath: string, args: string[] = [], {cwd, silent}: Exec const forked = cpFork(modulePath, args, { cwd, env: { - ...npmRunPathEnv(), + // ...npmRunPathEnv(), // Disable husky hooks because a plugin might be trying to install them, which will // break the install since the install location isn't a .git directory. HUSKY: '0', From 6d23bb9734d10cce1262beb321b41b1da0a11278 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 13:27:25 -0700 Subject: [PATCH 18/44] test: debug failing windows tests --- src/npm.ts | 34 ++++++++++++++++++++++++---------- 1 file changed, 24 insertions(+), 10 deletions(-) diff --git a/src/npm.ts b/src/npm.ts index f707c1d8..b46b404f 100644 --- a/src/npm.ts +++ b/src/npm.ts @@ -1,16 +1,14 @@ import {Errors, Interfaces} from '@oclif/core' import makeDebug from 'debug' import {fork as cpFork} from 'node:child_process' +import {readFile} from 'node:fs/promises' import {createRequire} from 'node:module' -import {fileURLToPath} from 'node:url' -// import {npmRunPathEnv} from 'npm-run-path' +import {join, sep} from 'node:path' import {LogLevel} from './log-level.js' const debug = makeDebug('@oclif/plugin-plugins:npm') -const require = createRequire(import.meta.url) - type ExecOptions = { cwd: string silent?: boolean @@ -63,28 +61,28 @@ async function fork(modulePath: string, args: string[] = [], {cwd, silent}: Exec } export class NPM { - private bin: string + private bin: string | undefined private config: Interfaces.Config private logLevel: LogLevel | undefined public constructor({config, logLevel}: {config: Interfaces.Config; logLevel?: LogLevel}) { this.config = config this.logLevel = logLevel - this.bin = require.resolve('.bin/npm', {paths: [this.config.root, fileURLToPath(import.meta.url)]}) - debug('npm binary path', this.bin) } async exec(args: string[] = [], options: ExecOptions): Promise { + const bin = await this.findNpm() + debug('npm binary path', bin) if (this.logLevel) args.push(`--loglevel=${this.logLevel}`) if (this.config.npmRegistry) args.push(`--registry=${this.config.npmRegistry}`) if (this.logLevel && this.logLevel !== 'silent') { - process.stderr.write(`${options.cwd}: ${this.bin} ${args.join(' ')}\n`) + process.stderr.write(`${options.cwd}: ${bin} ${args.join(' ')}\n`) } - debug(`${options.cwd}: ${this.bin} ${args.join(' ')}`) + debug(`${options.cwd}: ${bin} ${args.join(' ')}`) try { - await fork(this.bin, args, options) + await fork(bin, args, options) debug('npm done') } catch (error: unknown) { debug('npm error', error) @@ -108,4 +106,20 @@ export class NPM { async view(args: string[], opts: ExecOptions): Promise { await this.exec(['view', ...args], {...opts, silent: this.logLevel === 'silent'}) } + + /** + * Get the path to the npm CLI file. + * This will always resolve npm to the pinned version in `@oclif/plugin-plugins/package.json`. + * + * @returns The path to the `npm/bin/npm-cli.js` file. + */ + private async findNpm(): Promise { + if (this.bin) return this.bin + + const npmPjsonPath = createRequire(import.meta.url).resolve('npm/package.json') + const npmPjson = JSON.parse(await readFile(npmPjsonPath, {encoding: 'utf8'})) + const npmPath = npmPjsonPath.slice(0, Math.max(0, npmPjsonPath.lastIndexOf(sep))) + this.bin = join(npmPath, npmPjson.bin.npm) + return this.bin + } } From 0e6c3723c895a78f3bf1440ebeb4133981e8556f Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 13:28:46 -0700 Subject: [PATCH 19/44] chore: remove unused dep --- package.json | 1 - src/npm.ts | 1 - 2 files changed, 2 deletions(-) diff --git a/package.json b/package.json index fbf079bb..aa7ee14f 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,6 @@ "debug": "^4.3.4", "npm": "10.2.3", "npm-package-arg": "^11.0.1", - "npm-run-path": "^5", "semver": "^7.5.4", "validate-npm-package-name": "^5.0.0" }, diff --git a/src/npm.ts b/src/npm.ts index b46b404f..a255e7c6 100644 --- a/src/npm.ts +++ b/src/npm.ts @@ -23,7 +23,6 @@ async function fork(modulePath: string, args: string[] = [], {cwd, silent}: Exec const forked = cpFork(modulePath, args, { cwd, env: { - // ...npmRunPathEnv(), // Disable husky hooks because a plugin might be trying to install them, which will // break the install since the install location isn't a .git directory. HUSKY: '0', From daac0836de8767514f074c63ca367f12c0cde68d Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 13:33:52 -0700 Subject: [PATCH 20/44] chore: clean up --- src/plugins.ts | 1 - test/integration/install.integration.ts | 3 +-- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/src/plugins.ts b/src/plugins.ts index 98b26d70..1e6fc9c8 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -86,7 +86,6 @@ export default class Plugins { } public async install(name: string, {force = false, tag = 'latest'} = {}): Promise { - await this.npm.exec(['help'], {cwd: this.config.dataDir}) try { this.debug(`installing plugin ${name}`) const options = {cwd: this.config.dataDir, prod: true} diff --git a/test/integration/install.integration.ts b/test/integration/install.integration.ts index 21d3a287..54486aeb 100644 --- a/test/integration/install.integration.ts +++ b/test/integration/install.integration.ts @@ -60,8 +60,7 @@ describe('install/uninstall integration tests', () => { }) it('should install plugin', async () => { - process.env.DEBUG = '@oclif/plugin-plugins*' - await PluginsInstall.run(['@oclif/plugin-test-esm-1', '--npm-log-level=silly'], cwd) + await PluginsInstall.run(['@oclif/plugin-test-esm-1'], cwd) const result = await PluginsIndex.run([], cwd) expect(stdoutStub.calledWith(match('test-esm-1'))).to.be.true From 7e3f0a8648eb376c03c73dbcc067ea72865156cd Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 13:54:30 -0700 Subject: [PATCH 21/44] fix: add suggestion for failed install --- src/npm.ts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/npm.ts b/src/npm.ts index a255e7c6..aceb5078 100644 --- a/src/npm.ts +++ b/src/npm.ts @@ -53,7 +53,13 @@ async function fork(modulePath: string, args: string[] = [], {cwd, silent}: Exec if (code === 0) { resolve() } else { - reject(new Errors.CLIError(`${modulePath} ${args.join(' ')} exited with code ${code}`)) + reject( + new Errors.CLIError(`${modulePath} ${args.join(' ')} exited with code ${code}`, { + suggestions: [ + 'Try running with DEBUG=@oclif/plugin-plugins:* and --npm-log-level=verbose to see debug output.', + ], + }), + ) } }) }) From dd8f69c7ea8c6b5f0a9d82e5622fb36d1bc8b166 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 13:57:50 -0700 Subject: [PATCH 22/44] fix: npm-run-path is actually needed --- package.json | 1 + src/npm.ts | 2 ++ yarn.lock | 14 +++++++------- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/package.json b/package.json index aa7ee14f..3637654d 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "debug": "^4.3.4", "npm": "10.2.3", "npm-package-arg": "^11.0.1", + "npm-run-path": "^5.2.0", "semver": "^7.5.4", "validate-npm-package-name": "^5.0.0" }, diff --git a/src/npm.ts b/src/npm.ts index aceb5078..79c4fd1f 100644 --- a/src/npm.ts +++ b/src/npm.ts @@ -4,6 +4,7 @@ import {fork as cpFork} from 'node:child_process' import {readFile} from 'node:fs/promises' import {createRequire} from 'node:module' import {join, sep} from 'node:path' +import {npmRunPathEnv} from 'npm-run-path' import {LogLevel} from './log-level.js' @@ -23,6 +24,7 @@ async function fork(modulePath: string, args: string[] = [], {cwd, silent}: Exec const forked = cpFork(modulePath, args, { cwd, env: { + ...npmRunPathEnv(), // Disable husky hooks because a plugin might be trying to install them, which will // break the install since the install location isn't a .git directory. HUSKY: '0', diff --git a/yarn.lock b/yarn.lock index af9f13a5..5755c47e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6451,13 +6451,6 @@ npm-run-path@^4.0.1: dependencies: path-key "^3.0.0" -npm-run-path@^5: - version "5.2.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" - integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg== - dependencies: - path-key "^4.0.0" - npm-run-path@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" @@ -6465,6 +6458,13 @@ npm-run-path@^5.1.0: dependencies: path-key "^4.0.0" +npm-run-path@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" + integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg== + dependencies: + path-key "^4.0.0" + npm-user-validate@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-2.0.0.tgz#7b69bbbff6f7992a1d9a8968d52fd6b6db5431b6" From b4da5fda50ed9d7ff592c06f34cc6edcc0847ba5 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 14:24:42 -0700 Subject: [PATCH 23/44] test: debug failing windows tests --- src/npm.ts | 2 +- test/integration/install.integration.ts | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/src/npm.ts b/src/npm.ts index 79c4fd1f..b92e0598 100644 --- a/src/npm.ts +++ b/src/npm.ts @@ -58,7 +58,7 @@ async function fork(modulePath: string, args: string[] = [], {cwd, silent}: Exec reject( new Errors.CLIError(`${modulePath} ${args.join(' ')} exited with code ${code}`, { suggestions: [ - 'Try running with DEBUG=@oclif/plugin-plugins:* and --npm-log-level=verbose to see debug output.', + 'Try running with DEBUG=@oclif/plugin-plugins* and --npm-log-level=verbose to see debug output.', ], }), ) diff --git a/test/integration/install.integration.ts b/test/integration/install.integration.ts index 54486aeb..a933a3c0 100644 --- a/test/integration/install.integration.ts +++ b/test/integration/install.integration.ts @@ -1,4 +1,4 @@ -import {Errors, ux} from '@oclif/core' +import {Errors} from '@oclif/core' import {expect} from 'chai' import chalk from 'chalk' import {rm} from 'node:fs/promises' @@ -39,7 +39,7 @@ describe('install/uninstall integration tests', () => { beforeEach(() => { sandbox = createSandbox() - stdoutStub = sandbox.stub(ux.write, 'stdout') + // stdoutStub = sandbox.stub(ux.write, 'stdout') process.env.MYCLI_CACHE_DIR = cacheDir process.env.MYCLI_CONFIG_DIR = configDir process.env.MYCLI_DATA_DIR = dataDir @@ -54,13 +54,14 @@ describe('install/uninstall integration tests', () => { }) describe('basic', () => { - it('should return "No Plugins" if no plugins are installed', async () => { + it.skip('should return "No Plugins" if no plugins are installed', async () => { await PluginsIndex.run([], cwd) expect(stdoutStub.calledWith('No plugins installed.\n')).to.be.true }) it('should install plugin', async () => { - await PluginsInstall.run(['@oclif/plugin-test-esm-1'], cwd) + process.env.DEBUG = '@oclif/plugin-plugins*' + await PluginsInstall.run(['@oclif/plugin-test-esm-1', '--npm-log-level', 'verbose'], cwd) const result = await PluginsIndex.run([], cwd) expect(stdoutStub.calledWith(match('test-esm-1'))).to.be.true From 409db001af93b4079fd045175437a7930a986b87 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 14:32:21 -0700 Subject: [PATCH 24/44] test: debug failing windows tests --- test/integration/install.integration.ts | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/test/integration/install.integration.ts b/test/integration/install.integration.ts index a933a3c0..54486aeb 100644 --- a/test/integration/install.integration.ts +++ b/test/integration/install.integration.ts @@ -1,4 +1,4 @@ -import {Errors} from '@oclif/core' +import {Errors, ux} from '@oclif/core' import {expect} from 'chai' import chalk from 'chalk' import {rm} from 'node:fs/promises' @@ -39,7 +39,7 @@ describe('install/uninstall integration tests', () => { beforeEach(() => { sandbox = createSandbox() - // stdoutStub = sandbox.stub(ux.write, 'stdout') + stdoutStub = sandbox.stub(ux.write, 'stdout') process.env.MYCLI_CACHE_DIR = cacheDir process.env.MYCLI_CONFIG_DIR = configDir process.env.MYCLI_DATA_DIR = dataDir @@ -54,14 +54,13 @@ describe('install/uninstall integration tests', () => { }) describe('basic', () => { - it.skip('should return "No Plugins" if no plugins are installed', async () => { + it('should return "No Plugins" if no plugins are installed', async () => { await PluginsIndex.run([], cwd) expect(stdoutStub.calledWith('No plugins installed.\n')).to.be.true }) it('should install plugin', async () => { - process.env.DEBUG = '@oclif/plugin-plugins*' - await PluginsInstall.run(['@oclif/plugin-test-esm-1', '--npm-log-level', 'verbose'], cwd) + await PluginsInstall.run(['@oclif/plugin-test-esm-1'], cwd) const result = await PluginsIndex.run([], cwd) expect(stdoutStub.calledWith(match('test-esm-1'))).to.be.true From 9331d65e15eaa5d9fad945dc4540962e9092b332 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 25 Jan 2024 14:49:06 -0700 Subject: [PATCH 25/44] test: extend timeout --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 3637654d..4fd50dcb 100644 --- a/package.json +++ b/package.json @@ -88,7 +88,7 @@ "test": "mocha --forbid-only \"test/**/*.test.ts\"", "test:integration": "mocha \"test/**/*.integration.ts\"", "test:integration:sf": "mocha \"test/**/sf.integration.ts\"", - "test:integration:install": "mocha \"test/**/install.integration.ts\"", + "test:integration:install": "mocha \"test/**/install.integration.ts\" --timeout 600000", "test:integration:link": "mocha \"test/**/link.integration.ts\"", "version": "oclif readme && git add README.md" }, From be382e755ceab5f9b8df8aad183d2391809f3fe6 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Fri, 26 Jan 2024 10:14:57 -0700 Subject: [PATCH 26/44] test: renable sf integration tests --- test/integration/sf.integration.ts | 35 +++++++++++------------------- 1 file changed, 13 insertions(+), 22 deletions(-) diff --git a/test/integration/sf.integration.ts b/test/integration/sf.integration.ts index 87794a8f..e36e03ea 100644 --- a/test/integration/sf.integration.ts +++ b/test/integration/sf.integration.ts @@ -1,7 +1,7 @@ import {expect} from 'chai' import chalk from 'chalk' import {exec as cpExec} from 'node:child_process' -import {rm} from 'node:fs/promises' +import {mkdir, rm, writeFile} from 'node:fs/promises' import {join, resolve} from 'node:path' async function exec(command: string): Promise<{code: number; stderr: string; stdout: string}> { @@ -26,8 +26,7 @@ async function ensureSfExists(): Promise { } } -// TODO: skip until we decide on a better testing strategy -describe.skip('sf Integration', () => { +describe('sf Integration', () => { before(async () => { await ensureSfExists() @@ -55,43 +54,35 @@ describe.skip('sf Integration', () => { const {stdout} = await exec('sf plugins --core') expect(stdout).to.contain('@oclif/plugin-plugins') expect(stdout).to.contain(`(link) ${process.cwd()}`) + + await mkdir(process.env.SF_CONFIG_DIR, {recursive: true}) + const allowList = join(process.env.SF_CONFIG_DIR, 'unsignedPluginAllowList.json') + await writeFile(allowList, JSON.stringify(['@oclif/plugin-version', '@oclif/plugin-help'])) }) - it('should install plugin with oclif.lock', async () => { - const result = await exec('sf plugins install custom-metadata@2.2.1') + it('should install plugin with npm-shrinkwrap.json', async () => { + const result = await exec('sf plugins install @oclif/plugin-version@2.0.10-dev.2') expect(result.code).to.equal(0) - const inspectResult = await exec('sf plugins inspect custom-metadata --json') + const inspectResult = await exec('sf plugins inspect @oclif/plugin-version --json') const [plugin] = JSON.parse(inspectResult.stdout) const expected = { - '@oclif/core': {from: '^2.15.0', version: '2.15.0'}, - '@salesforce/core': {from: '^5.2.0', version: '5.2.6'}, - '@salesforce/sf-plugins-core': {from: '^3.1.20', version: '3.1.21'}, - '@salesforce/ts-types': {from: '^2.0.6', version: '2.0.7'}, - 'csv-parse': {from: '^5.4.0', version: '5.4.0'}, - 'fast-xml-parser': {from: '^4.2.7', version: '4.2.7'}, - tslib: {from: '^2', version: '2.6.2'}, + '@oclif/core': {from: '^3.14.1', version: '3.14.1'}, } expect(plugin.deps).to.deep.equal(expected) }) it('should keep locked deps despite other plugin installs', async () => { - const result = await exec('sf plugins install settings') + const result = await exec('sf plugins install @oclif/plugin-help') expect(result.code).to.equal(0) - const inspectResult = await exec('sf plugins inspect custom-metadata --json') + const inspectResult = await exec('sf plugins inspect @oclif/plugin-version --json') const [plugin] = JSON.parse(inspectResult.stdout) const expected = { - '@oclif/core': {from: '^2.15.0', version: '2.15.0'}, - '@salesforce/core': {from: '^5.2.0', version: '5.2.6'}, - '@salesforce/sf-plugins-core': {from: '^3.1.20', version: '3.1.21'}, - '@salesforce/ts-types': {from: '^2.0.6', version: '2.0.7'}, - 'csv-parse': {from: '^5.4.0', version: '5.4.0'}, - 'fast-xml-parser': {from: '^4.2.7', version: '4.2.7'}, - tslib: {from: '^2', version: '2.6.2'}, + '@oclif/core': {from: '^3.14.1', version: '3.14.1'}, } expect(plugin.deps).to.deep.equal(expected) From d1c9d7418411bca74d7c77a6f23fcaac0a9f507c Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Fri, 26 Jan 2024 12:52:21 -0700 Subject: [PATCH 27/44] feat: simplify logging options --- src/commands/plugins/inspect.ts | 4 +- src/commands/plugins/install.ts | 5 +- src/commands/plugins/link.ts | 4 +- src/commands/plugins/uninstall.ts | 4 +- src/commands/plugins/update.ts | 4 +- src/log-level.ts | 23 - src/npm.ts | 34 +- src/plugins.ts | 3 +- yarn.lock | 2192 ++++++++++++++--------------- 9 files changed, 1100 insertions(+), 1173 deletions(-) delete mode 100644 src/log-level.ts diff --git a/src/commands/plugins/inspect.ts b/src/commands/plugins/inspect.ts index c7b3f968..8f89e01a 100644 --- a/src/commands/plugins/inspect.ts +++ b/src/commands/plugins/inspect.ts @@ -3,7 +3,6 @@ import chalk from 'chalk' import {readFile} from 'node:fs/promises' import {dirname, join, sep} from 'node:path' -import {determineLogLevel, npmLogLevelFlag} from '../../log-level.js' import Plugins from '../../plugins.js' import {sortBy} from '../../util.js' @@ -53,7 +52,6 @@ export default class PluginsInspect extends Command { static flags = { help: Flags.help({char: 'h'}), - 'npm-log-level': npmLogLevelFlag({exclusive: ['verbose']}), verbose: Flags.boolean({char: 'v'}), } @@ -144,7 +142,7 @@ export default class PluginsInspect extends Command { const {argv, flags} = await this.parse(PluginsInspect) this.plugins = new Plugins({ config: this.config, - logLevel: determineLogLevel(flags), + verbose: flags.verbose, }) const aliases = this.config.pjson.oclif.aliases ?? {} const plugins: PluginWithDeps[] = [] diff --git a/src/commands/plugins/install.ts b/src/commands/plugins/install.ts index 357e571b..593ddf2b 100644 --- a/src/commands/plugins/install.ts +++ b/src/commands/plugins/install.ts @@ -3,7 +3,6 @@ import {Args, Command, Errors, Flags, Interfaces, ux} from '@oclif/core' import chalk from 'chalk' import validate from 'validate-npm-package-name' -import {determineLogLevel, npmLogLevelFlag} from '../../log-level.js' import Plugins from '../../plugins.js' export default class PluginsInstall extends Command { @@ -63,9 +62,9 @@ e.g. If you have a core plugin that has a 'hello' command, installing a user-ins return input }, }), - 'npm-log-level': npmLogLevelFlag({exclusive: ['silent', 'verbose']}), silent: Flags.boolean({ char: 's', + default: true, description: 'Silences npm output.', exclusive: ['verbose'], }), @@ -141,7 +140,7 @@ e.g. If you have a core plugin that has a 'hello' command, installing a user-ins const plugins = new Plugins({ config: this.config, - logLevel: determineLogLevel(this.flags), + verbose: this.flags.verbose, }) const aliases = this.config.pjson.oclif.aliases || {} for (let name of argv as string[]) { diff --git a/src/commands/plugins/link.ts b/src/commands/plugins/link.ts index 15fcc737..ea2d9e89 100644 --- a/src/commands/plugins/link.ts +++ b/src/commands/plugins/link.ts @@ -1,7 +1,6 @@ import {Args, Command, Flags, ux} from '@oclif/core' import chalk from 'chalk' -import {determineLogLevel, npmLogLevelFlag} from '../../log-level.js' import Plugins from '../../plugins.js' export default class PluginsLink extends Command { @@ -24,7 +23,6 @@ e.g. If you have a user-installed or core plugin that has a 'hello' command, ins default: true, description: 'Install dependencies after linking the plugin.', }), - 'npm-log-level': npmLogLevelFlag({exclusive: ['verbose']}), verbose: Flags.boolean({char: 'v'}), } @@ -33,7 +31,7 @@ e.g. If you have a user-installed or core plugin that has a 'hello' command, ins const plugins = new Plugins({ config: this.config, - logLevel: determineLogLevel(flags), + verbose: flags.verbose, }) ux.action.start(`Linking plugin ${chalk.cyan(args.path)}`) diff --git a/src/commands/plugins/uninstall.ts b/src/commands/plugins/uninstall.ts index 5d12e00c..b7c516e0 100644 --- a/src/commands/plugins/uninstall.ts +++ b/src/commands/plugins/uninstall.ts @@ -2,7 +2,6 @@ import {Args, Command, Flags, ux} from '@oclif/core' import chalk from 'chalk' -import {determineLogLevel, npmLogLevelFlag} from '../../log-level.js' import Plugins from '../../plugins.js' function removeTags(plugin: string): string { @@ -33,7 +32,6 @@ export default class PluginsUninstall extends Command { static flags = { help: Flags.help({char: 'h'}), - 'npm-log-level': npmLogLevelFlag({exclusive: ['verbose']}), verbose: Flags.boolean({char: 'v'}), } @@ -46,7 +44,7 @@ export default class PluginsUninstall extends Command { const plugins = new Plugins({ config: this.config, - logLevel: determineLogLevel(flags), + verbose: flags.verbose, }) if (argv.length === 0) argv.push('.') diff --git a/src/commands/plugins/update.ts b/src/commands/plugins/update.ts index c3debf4c..ebd44129 100644 --- a/src/commands/plugins/update.ts +++ b/src/commands/plugins/update.ts @@ -1,6 +1,5 @@ import {Command, Flags, ux} from '@oclif/core' -import {determineLogLevel, npmLogLevelFlag} from '../../log-level.js' import Plugins from '../../plugins.js' export default class PluginsUpdate extends Command { @@ -8,7 +7,6 @@ export default class PluginsUpdate extends Command { static flags = { help: Flags.help({char: 'h'}), - 'npm-log-level': npmLogLevelFlag({exclusive: ['verbose']}), verbose: Flags.boolean({char: 'v'}), } @@ -17,7 +15,7 @@ export default class PluginsUpdate extends Command { const plugins = new Plugins({ config: this.config, - logLevel: determineLogLevel(flags), + verbose: flags.verbose, }) ux.action.start(`${this.config.name}: Updating plugins`) diff --git a/src/log-level.ts b/src/log-level.ts deleted file mode 100644 index ef64f0f3..00000000 --- a/src/log-level.ts +++ /dev/null @@ -1,23 +0,0 @@ -import {Flags} from '@oclif/core' - -const LOG_LEVELS = ['silent', 'error', 'warn', 'notice', 'http', 'info', 'verbose', 'silly'] as const - -export type LogLevel = (typeof LOG_LEVELS)[number] - -export const npmLogLevelFlag = Flags.option({ - char: 'l', - default: 'silent', - options: LOG_LEVELS, - summary: 'Set the npm --loglevel flag for all npm executions.', -}) - -export const determineLogLevel = (flags: { - 'npm-log-level'?: LogLevel - silent?: boolean - verbose?: boolean -}): LogLevel => { - if (flags['npm-log-level']) return flags['npm-log-level'] - if (flags.silent) return 'silent' - if (flags.verbose) return 'verbose' - return 'notice' -} diff --git a/src/npm.ts b/src/npm.ts index b92e0598..f628a01c 100644 --- a/src/npm.ts +++ b/src/npm.ts @@ -1,4 +1,4 @@ -import {Errors, Interfaces} from '@oclif/core' +import {Errors, Interfaces, ux} from '@oclif/core' import makeDebug from 'debug' import {fork as cpFork} from 'node:child_process' import {readFile} from 'node:fs/promises' @@ -6,20 +6,18 @@ import {createRequire} from 'node:module' import {join, sep} from 'node:path' import {npmRunPathEnv} from 'npm-run-path' -import {LogLevel} from './log-level.js' - const debug = makeDebug('@oclif/plugin-plugins:npm') type ExecOptions = { cwd: string - silent?: boolean + verbose?: boolean } type InstallOptions = ExecOptions & { prod?: boolean } -async function fork(modulePath: string, args: string[] = [], {cwd, silent}: ExecOptions): Promise { +async function fork(modulePath: string, args: string[] = [], {cwd, verbose}: ExecOptions): Promise { return new Promise((resolve, reject) => { const forked = cpFork(modulePath, args, { cwd, @@ -42,12 +40,14 @@ async function fork(modulePath: string, args: string[] = [], {cwd, silent}: Exec forked.stderr?.setEncoding('utf8') forked.stderr?.on('data', (d: Buffer) => { - if (!silent) process.stderr.write(d) + if (verbose) ux.logToStderr(d.toString()) + else debug(d.toString().trimEnd()) }) forked.stdout?.setEncoding('utf8') - forked.stdout?.on('data', (d) => { - if (!silent) process.stdout.write(d) + forked.stdout?.on('data', (d: Buffer) => { + if (verbose) ux.log(d.toString()) + else debug(d.toString().trimEnd()) }) forked.on('error', reject) @@ -57,9 +57,7 @@ async function fork(modulePath: string, args: string[] = [], {cwd, silent}: Exec } else { reject( new Errors.CLIError(`${modulePath} ${args.join(' ')} exited with code ${code}`, { - suggestions: [ - 'Try running with DEBUG=@oclif/plugin-plugins* and --npm-log-level=verbose to see debug output.', - ], + suggestions: ['Run with DEBUG=@oclif/plugin-plugins* to see debug output.'], }), ) } @@ -70,21 +68,21 @@ async function fork(modulePath: string, args: string[] = [], {cwd, silent}: Exec export class NPM { private bin: string | undefined private config: Interfaces.Config - private logLevel: LogLevel | undefined + private verbose: boolean | undefined - public constructor({config, logLevel}: {config: Interfaces.Config; logLevel?: LogLevel}) { + public constructor({config, verbose}: {config: Interfaces.Config; verbose?: boolean}) { this.config = config - this.logLevel = logLevel + this.verbose = verbose } async exec(args: string[] = [], options: ExecOptions): Promise { const bin = await this.findNpm() debug('npm binary path', bin) - if (this.logLevel) args.push(`--loglevel=${this.logLevel}`) + if (this.verbose) args.push('--loglevel=verbose') if (this.config.npmRegistry) args.push(`--registry=${this.config.npmRegistry}`) - if (this.logLevel && this.logLevel !== 'silent') { - process.stderr.write(`${options.cwd}: ${bin} ${args.join(' ')}\n`) + if (this.verbose) { + ux.logToStderr(`${options.cwd}: ${bin} ${args.join(' ')}`) } debug(`${options.cwd}: ${bin} ${args.join(' ')}`) @@ -111,7 +109,7 @@ export class NPM { } async view(args: string[], opts: ExecOptions): Promise { - await this.exec(['view', ...args], {...opts, silent: this.logLevel === 'silent'}) + await this.exec(['view', ...args], {...opts, verbose: this.verbose}) } /** diff --git a/src/plugins.ts b/src/plugins.ts index 1e6fc9c8..1aac1c69 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -4,7 +4,6 @@ import {access, mkdir, readFile, rm, writeFile} from 'node:fs/promises' import {dirname, join, resolve} from 'node:path' import {gt, valid, validRange} from 'semver' -import {LogLevel} from './log-level.js' import {NPM} from './npm.js' import {uniqWith} from './util.js' @@ -48,7 +47,7 @@ export default class Plugins { private readonly debug: ReturnType - constructor(options: {config: Interfaces.Config; logLevel?: LogLevel}) { + constructor(options: {config: Interfaces.Config; verbose?: boolean}) { this.config = options.config this.debug = makeDebug('@oclif/plugin-plugins') this.npm = new NPM(options) diff --git a/yarn.lock b/yarn.lock index 5755c47e..0773e778 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4,12 +4,12 @@ "@aashutoshrathi/word-wrap@^1.2.3": version "1.2.6" - resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" + resolved "https://registry.npmjs.org/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== "@aws-crypto/crc32@3.0.0": version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/crc32/-/crc32-3.0.0.tgz#07300eca214409c33e3ff769cd5697b57fdd38fa" + resolved "https://registry.npmjs.org/@aws-crypto/crc32/-/crc32-3.0.0.tgz" integrity sha512-IzSgsrxUcsrejQbPVilIKy16kAT52EwB6zSaI+M3xxIhKh5+aldEyvI+z6erM7TCLB2BJsFrtHjp6/4/sr+3dA== dependencies: "@aws-crypto/util" "^3.0.0" @@ -18,7 +18,7 @@ "@aws-crypto/crc32c@3.0.0": version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/crc32c/-/crc32c-3.0.0.tgz#016c92da559ef638a84a245eecb75c3e97cb664f" + resolved "https://registry.npmjs.org/@aws-crypto/crc32c/-/crc32c-3.0.0.tgz" integrity sha512-ENNPPManmnVJ4BTXlOjAgD7URidbAznURqD0KvfREyc4o20DPYdEldU1f5cQ7Jbj0CJJSPaMIk/9ZshdB3210w== dependencies: "@aws-crypto/util" "^3.0.0" @@ -27,14 +27,14 @@ "@aws-crypto/ie11-detection@^3.0.0": version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz#640ae66b4ec3395cee6a8e94ebcd9f80c24cd688" + resolved "https://registry.npmjs.org/@aws-crypto/ie11-detection/-/ie11-detection-3.0.0.tgz" integrity sha512-341lBBkiY1DfDNKai/wXM3aujNBkXR7tq1URPQDL9wi3AUbI80NR74uF1TXHMm7po1AcnFk8iu2S2IeU/+/A+Q== dependencies: tslib "^1.11.1" "@aws-crypto/sha1-browser@3.0.0": version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz#f9083c00782b24714f528b1a1fef2174002266a3" + resolved "https://registry.npmjs.org/@aws-crypto/sha1-browser/-/sha1-browser-3.0.0.tgz" integrity sha512-NJth5c997GLHs6nOYTzFKTbYdMNA6/1XlKVgnZoaZcQ7z7UJlOgj2JdbHE8tiYLS3fzXNCguct77SPGat2raSw== dependencies: "@aws-crypto/ie11-detection" "^3.0.0" @@ -47,7 +47,7 @@ "@aws-crypto/sha256-browser@3.0.0": version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz#05f160138ab893f1c6ba5be57cfd108f05827766" + resolved "https://registry.npmjs.org/@aws-crypto/sha256-browser/-/sha256-browser-3.0.0.tgz" integrity sha512-8VLmW2B+gjFbU5uMeqtQM6Nj0/F1bro80xQXCW6CQBWgosFWXTx77aeOF5CAIAmbOK64SdMBJdNr6J41yP5mvQ== dependencies: "@aws-crypto/ie11-detection" "^3.0.0" @@ -61,7 +61,7 @@ "@aws-crypto/sha256-js@3.0.0", "@aws-crypto/sha256-js@^3.0.0": version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz#f06b84d550d25521e60d2a0e2a90139341e007c2" + resolved "https://registry.npmjs.org/@aws-crypto/sha256-js/-/sha256-js-3.0.0.tgz" integrity sha512-PnNN7os0+yd1XvXAy23CFOmTbMaDxgxXtTKHybrJ39Y8kGzBATgBFibWJKH6BhytLI/Zyszs87xCOBNyBig6vQ== dependencies: "@aws-crypto/util" "^3.0.0" @@ -70,14 +70,14 @@ "@aws-crypto/supports-web-crypto@^3.0.0": version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz#5d1bf825afa8072af2717c3e455f35cda0103ec2" + resolved "https://registry.npmjs.org/@aws-crypto/supports-web-crypto/-/supports-web-crypto-3.0.0.tgz" integrity sha512-06hBdMwUAb2WFTuGG73LSC0wfPu93xWwo5vL2et9eymgmu3Id5vFAHBbajVWiGhPO37qcsdCap/FqXvJGJWPIg== dependencies: tslib "^1.11.1" "@aws-crypto/util@^3.0.0": version "3.0.0" - resolved "https://registry.yarnpkg.com/@aws-crypto/util/-/util-3.0.0.tgz#1c7ca90c29293f0883468ad48117937f0fe5bfb0" + resolved "https://registry.npmjs.org/@aws-crypto/util/-/util-3.0.0.tgz" integrity sha512-2OJlpeJpCR48CC8r+uKVChzs9Iungj9wkZrl8Z041DWEWvyIHILYKCPNzJghKsivj+S3mLo6BVc7mBNzdxA46w== dependencies: "@aws-sdk/types" "^3.222.0" @@ -86,7 +86,7 @@ "@aws-sdk/client-cloudfront@^3.468.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-cloudfront/-/client-cloudfront-3.496.0.tgz#9a496b834f134d692d449f73c8533b5a836cbe17" + resolved "https://registry.npmjs.org/@aws-sdk/client-cloudfront/-/client-cloudfront-3.496.0.tgz" integrity sha512-8sIyrJstom//Ow5d5ParGunC2x7DmmyXjQ7psBVyzKN9IEtjJGqMVsbhR0lC5+kmNLLUUPMB6oz6yJCpMNSCnw== dependencies: "@aws-crypto/sha256-browser" "3.0.0" @@ -136,7 +136,7 @@ "@aws-sdk/client-s3@^3.490.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-s3/-/client-s3-3.496.0.tgz#a658feb0843239e3af6b763e2a107430fcd676ce" + resolved "https://registry.npmjs.org/@aws-sdk/client-s3/-/client-s3-3.496.0.tgz" integrity sha512-Q16iIP8SmM/7uWHbTCRnvXgM+RxgEDHQmkKL1bvdPLhfu4q1+RwWwJ/WS+1amwQtwvWc8Z51W4XEsokJmqOYUA== dependencies: "@aws-crypto/sha1-browser" "3.0.0" @@ -200,7 +200,7 @@ "@aws-sdk/client-sso@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sso/-/client-sso-3.496.0.tgz#765cbfb3afcbe7bc8f2430e40afd4d542a0d58fb" + resolved "https://registry.npmjs.org/@aws-sdk/client-sso/-/client-sso-3.496.0.tgz" integrity sha512-fuaMuxKg7CMUsP9l3kxYWCOxFsBjdA0xj5nlikaDm1661/gB4KkAiGqRY8LsQkpNXvXU8Nj+f7oCFADFyGYzyw== dependencies: "@aws-crypto/sha256-browser" "3.0.0" @@ -243,7 +243,7 @@ "@aws-sdk/client-sts@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/client-sts/-/client-sts-3.496.0.tgz#e0c142cf8bb1aec7a9c7b09dd9739f6773d94fd0" + resolved "https://registry.npmjs.org/@aws-sdk/client-sts/-/client-sts-3.496.0.tgz" integrity sha512-3pSdqgegdwbK3CT1WvGHhA+Bf91R9cr8G1Ynp+iU2wZvy8ueJfMUk0NYfjo3EEv0YhSbMLKuduzZfvQHFHXYhw== dependencies: "@aws-crypto/sha256-browser" "3.0.0" @@ -289,7 +289,7 @@ "@aws-sdk/core@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/core/-/core-3.496.0.tgz#ec1394753b6b2f6e38aea593e30b2db5c7390969" + resolved "https://registry.npmjs.org/@aws-sdk/core/-/core-3.496.0.tgz" integrity sha512-yT+ug7Cw/3eJi7x2es0+46x12+cIJm5Xv+GPWsrTFD1TKgqO/VPEgfDtHFagDNbFmjNQA65Ygc/kEdIX9ICX/A== dependencies: "@smithy/core" "^1.3.1" @@ -301,7 +301,7 @@ "@aws-sdk/credential-provider-env@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-env/-/credential-provider-env-3.496.0.tgz#5055bd2e3a169e5c10b37c40e0f356046947e707" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-env/-/credential-provider-env-3.496.0.tgz" integrity sha512-lukQMJ8SWWP5RqkRNOHi/H+WMhRvSWa3Fc5Jf/VP6xHiPLfF1XafcvthtV91e0VwPCiseI+HqChrcGq8pvnxHw== dependencies: "@aws-sdk/types" "3.496.0" @@ -311,7 +311,7 @@ "@aws-sdk/credential-provider-ini@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.496.0.tgz#4de82fc173ba1581af4bf6fcad610f2fc0fd8ca1" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-ini/-/credential-provider-ini-3.496.0.tgz" integrity sha512-2nD1jp1sIwcQaWK1y/9ruQOkW16RUxZpzgjbW/gnK3iiUXwx+/FNQWxshud+GTSx3Q4x6eIhqsbjtP4VVPPuUA== dependencies: "@aws-sdk/credential-provider-env" "3.496.0" @@ -327,7 +327,7 @@ "@aws-sdk/credential-provider-node@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-node/-/credential-provider-node-3.496.0.tgz#734fc5aa824c387c893ff5624b201c0243ea1c7c" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-node/-/credential-provider-node-3.496.0.tgz" integrity sha512-IVF9RvLePfRa5S5/eBIRChJCWOzQkGwM8P/L79Gl84u/cH2oSG4NtUI/YTDlrtmnYn7YsGhINSV0WnzfF2twfQ== dependencies: "@aws-sdk/credential-provider-env" "3.496.0" @@ -344,7 +344,7 @@ "@aws-sdk/credential-provider-process@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-process/-/credential-provider-process-3.496.0.tgz#1d623bed61229767f389feab560e3a3117bf2d26" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-process/-/credential-provider-process-3.496.0.tgz" integrity sha512-/YZscCTGOKVmGr916Th4XF8Sz6JDtZ/n2loHG9exok9iy/qIbACsTRNLP9zexPxhPoue/oZqecY5xbVljfY34A== dependencies: "@aws-sdk/types" "3.496.0" @@ -355,7 +355,7 @@ "@aws-sdk/credential-provider-sso@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.496.0.tgz#1c5f2d25b64936b79095f49cabbcd7832fb87087" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-sso/-/credential-provider-sso-3.496.0.tgz" integrity sha512-eP7GxpT2QYubSDG7uk1GJW4eNymZCq65IxDyEFCXOP/kfqkxriCY+iVEFG6/Mo3LxvgrgHXU4jxrCAXMAWN43g== dependencies: "@aws-sdk/client-sso" "3.496.0" @@ -368,7 +368,7 @@ "@aws-sdk/credential-provider-web-identity@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.496.0.tgz#7ad6d755445d1616a80dfa286a78c84dc1c3f14b" + resolved "https://registry.npmjs.org/@aws-sdk/credential-provider-web-identity/-/credential-provider-web-identity-3.496.0.tgz" integrity sha512-IbP+qLlvJSpNPj+zW6TtFuLRTK5Tf0hW+2pom4vFyi5YSH4pn8UOC136UdewX8vhXGS9BJQ5zBDMasIyl5VeGQ== dependencies: "@aws-sdk/types" "3.496.0" @@ -378,7 +378,7 @@ "@aws-sdk/middleware-bucket-endpoint@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.496.0.tgz#10a6e48b836321f32226790ffebcba1f281107ce" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-bucket-endpoint/-/middleware-bucket-endpoint-3.496.0.tgz" integrity sha512-B+ilBMSs3+LJuo2bl2KB8GFdu+8PPVtYEWtwhNkmnaU8iMisgMBp5uuM8sUDvJX7I4iSF0WbgnhguX4cJqfAew== dependencies: "@aws-sdk/types" "3.496.0" @@ -391,7 +391,7 @@ "@aws-sdk/middleware-expect-continue@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.496.0.tgz#1b9f45451ddc3daccfc332d4bb3fdac9b2e54881" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-expect-continue/-/middleware-expect-continue-3.496.0.tgz" integrity sha512-+exo5DVc+BeDus2iI6Fz1thefHGDXxUhHZ+4VHQ6HkStMy3Y22HugyEGHSQZmtRL86Hjr7dFbEWFsC47a2ItGA== dependencies: "@aws-sdk/types" "3.496.0" @@ -401,7 +401,7 @@ "@aws-sdk/middleware-flexible-checksums@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.496.0.tgz#a06a553e243eed2d6a35f1353f85e279f2a977dc" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-flexible-checksums/-/middleware-flexible-checksums-3.496.0.tgz" integrity sha512-yQIWfjEMvgsAJ7ku224vXDjXPD+f9zfKZFialJva8VUlEr7hQp4CQ0rxV3YThSaixKEDDs5k6kOjWAd2BPGr2A== dependencies: "@aws-crypto/crc32" "3.0.0" @@ -415,7 +415,7 @@ "@aws-sdk/middleware-host-header@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-host-header/-/middleware-host-header-3.496.0.tgz#e17de11d553548872566c72669c5ea2e7164722b" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-host-header/-/middleware-host-header-3.496.0.tgz" integrity sha512-jUdPpSJeqCYXf6hSjfwsfHway7peIV8Vz51w/BN91bF4vB/bYwAC5o9/iJiK/EoByp5asxA8fg9wFOyGjzdbLg== dependencies: "@aws-sdk/types" "3.496.0" @@ -425,7 +425,7 @@ "@aws-sdk/middleware-location-constraint@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.496.0.tgz#b44ae48bddf8409c2c55a36a4f406661fcd729be" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-location-constraint/-/middleware-location-constraint-3.496.0.tgz" integrity sha512-i4ocJ2Zs86OtPREbB18InFukhqg2qtBxb5gywv79IHDPVmpOYE4m/3v3yGUrkjfF2GTlUL0k5FskNNqw41yfng== dependencies: "@aws-sdk/types" "3.496.0" @@ -434,7 +434,7 @@ "@aws-sdk/middleware-logger@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-logger/-/middleware-logger-3.496.0.tgz#96f867ae50144eb6bae91a427e315a0f0eb783b0" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-logger/-/middleware-logger-3.496.0.tgz" integrity sha512-EwMVSY6iBMeGbVnvwdaFl/ClMS/YWtxCAo+bcEtgk8ltRuo7qgbJem8Km/fvWC1vdWvIbe4ArdJ8iGzq62ffAw== dependencies: "@aws-sdk/types" "3.496.0" @@ -443,7 +443,7 @@ "@aws-sdk/middleware-recursion-detection@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.496.0.tgz#c14e1bbe609e4af3ec9037c2379e2b64d660e4dd" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-recursion-detection/-/middleware-recursion-detection-3.496.0.tgz" integrity sha512-+IuOcFsfqg2WAnaEzH6KhVbicqCxtOq9w3DH2jwTpddRlCx2Kqf6wCzg8luhHRGyjBZdsbIS+OXwyMevoppawA== dependencies: "@aws-sdk/types" "3.496.0" @@ -453,7 +453,7 @@ "@aws-sdk/middleware-sdk-s3@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.496.0.tgz#8d15cd44578da34159d99282b5de734a0f50db7c" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-sdk-s3/-/middleware-sdk-s3-3.496.0.tgz" integrity sha512-OKrTPzubisQCQzPuF4G7jmbYt71o6W7oefmW9zm1MpGokRSJeC9zv4aT1gkMglpXEHgvL0S5fUVGi0AtF/F8Kw== dependencies: "@aws-sdk/types" "3.496.0" @@ -468,7 +468,7 @@ "@aws-sdk/middleware-signing@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-signing/-/middleware-signing-3.496.0.tgz#265cb5a9d7825c111c53bb555e5cb2619f804dd1" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-signing/-/middleware-signing-3.496.0.tgz" integrity sha512-Oq73Brs4IConvWnRlh8jM1V7LHoTw9SVQklu/QW2FPlNrB3B8fuTdWHHYIWv7ybw1bykXoCY99v865Mmq/Or/g== dependencies: "@aws-sdk/types" "3.496.0" @@ -481,7 +481,7 @@ "@aws-sdk/middleware-ssec@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-ssec/-/middleware-ssec-3.496.0.tgz#89f28c34584b2b032c36859440c3b64d800b052a" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-ssec/-/middleware-ssec-3.496.0.tgz" integrity sha512-6RUFEgGqKGq8N8W9tsctS8KRlYnmD/yiExb/LvblCJqV1DWoD0psRFWNz8TQZtujHklG5dHjuq+aN/qicjBNdw== dependencies: "@aws-sdk/types" "3.496.0" @@ -490,7 +490,7 @@ "@aws-sdk/middleware-user-agent@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.496.0.tgz#82b49fd8613ae5a9ceafc9117c34271615d0f002" + resolved "https://registry.npmjs.org/@aws-sdk/middleware-user-agent/-/middleware-user-agent-3.496.0.tgz" integrity sha512-+iMtRxFk0GmFWNUF4ilxylOQd9PZdR4ZC9jkcPIh1PZlvKtpCyFywKlk5RRZKklSoJ/CttcqwhMvOXTNbWm/0w== dependencies: "@aws-sdk/types" "3.496.0" @@ -501,7 +501,7 @@ "@aws-sdk/region-config-resolver@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/region-config-resolver/-/region-config-resolver-3.496.0.tgz#133c8a4a6d5e7672077ba124751f40b2d6efc3ed" + resolved "https://registry.npmjs.org/@aws-sdk/region-config-resolver/-/region-config-resolver-3.496.0.tgz" integrity sha512-URrNVOPHPgEDm6QFu6lDC2cUFs+Jx23mA3jEwCvoKlXiEY/ZoWjH8wlX3OMUlLrF1qoUTuD03jjrJzF6zoCgug== dependencies: "@aws-sdk/types" "3.496.0" @@ -513,7 +513,7 @@ "@aws-sdk/signature-v4-multi-region@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.496.0.tgz#0084ad38ab25dc50d5965d31a9c659673d82e86f" + resolved "https://registry.npmjs.org/@aws-sdk/signature-v4-multi-region/-/signature-v4-multi-region-3.496.0.tgz" integrity sha512-zi3cL8+dRVSvC0PA6votwEHF4l9uxOyQTiRfgpFgzJ9iiPbsrtWCalGCwN0UyzmeDv7eViU6FK1YTHH/OgDJ4A== dependencies: "@aws-sdk/middleware-sdk-s3" "3.496.0" @@ -525,7 +525,7 @@ "@aws-sdk/token-providers@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/token-providers/-/token-providers-3.496.0.tgz#5b5baf0801fd591de4a28146afbdc8250197f9fa" + resolved "https://registry.npmjs.org/@aws-sdk/token-providers/-/token-providers-3.496.0.tgz" integrity sha512-fyi8RcObEa1jNETJdc2H6q9VHrrdKCj/b6+fbLvymb7mUVRd0aWUn+24SNUImnSOnrwYnwaMfyyEC388X4MbFQ== dependencies: "@aws-crypto/sha256-browser" "3.0.0" @@ -568,7 +568,7 @@ "@aws-sdk/types@3.496.0", "@aws-sdk/types@^3.222.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/types/-/types-3.496.0.tgz#cdde44a94a57cf8f97cf05e4d0bdce2f56ce4eeb" + resolved "https://registry.npmjs.org/@aws-sdk/types/-/types-3.496.0.tgz" integrity sha512-umkGadK4QuNQaMoDICMm7NKRI/mYSXiyPjcn3d53BhsuArYU/52CebGQKdt4At7SwwsiVJZw9RNBHyN5Mm0HVw== dependencies: "@smithy/types" "^2.9.1" @@ -576,14 +576,14 @@ "@aws-sdk/util-arn-parser@3.495.0": version "3.495.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-arn-parser/-/util-arn-parser-3.495.0.tgz#539f2d6dfef343a80324348f1f9a1b7eed2390f3" + resolved "https://registry.npmjs.org/@aws-sdk/util-arn-parser/-/util-arn-parser-3.495.0.tgz" integrity sha512-hwdA3XAippSEUxs7jpznwD63YYFR+LtQvlEcebPTgWR9oQgG9TfS+39PUfbnEeje1ICuOrN3lrFqFbmP9uzbMg== dependencies: tslib "^2.5.0" "@aws-sdk/util-endpoints@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-endpoints/-/util-endpoints-3.496.0.tgz#5ce7d3efd7ab67db556e2c199e73826c44d22ecd" + resolved "https://registry.npmjs.org/@aws-sdk/util-endpoints/-/util-endpoints-3.496.0.tgz" integrity sha512-1QzOiWHi383ZwqSi/R2KgKCd7M+6DxkxI5acqLPm8mvDRDP2jRjrnVaC0g9/tlttWousGEemDUWStwrD2mVYSw== dependencies: "@aws-sdk/types" "3.496.0" @@ -593,14 +593,14 @@ "@aws-sdk/util-locate-window@^3.0.0": version "3.495.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-locate-window/-/util-locate-window-3.495.0.tgz#9034fd8db77991b28ed20e067acdd53e8b8f824b" + resolved "https://registry.npmjs.org/@aws-sdk/util-locate-window/-/util-locate-window-3.495.0.tgz" integrity sha512-MfaPXT0kLX2tQaR90saBT9fWQq2DHqSSJRzW+MZWsmF+y5LGCOhO22ac/2o6TKSQm7h0HRc2GaADqYYYor62yg== dependencies: tslib "^2.5.0" "@aws-sdk/util-user-agent-browser@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.496.0.tgz#494b086dd8b07acdd6be65034c51545e5bcee37b" + resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-browser/-/util-user-agent-browser-3.496.0.tgz" integrity sha512-4j2spN+h0I0qfSMsGvJXTfQBu1e18rPdekKvzsGJxhaAE1tNgUfUT4nbvc5uVn0sNjZmirskmJ3kfbzVOrqIFg== dependencies: "@aws-sdk/types" "3.496.0" @@ -610,7 +610,7 @@ "@aws-sdk/util-user-agent-node@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.496.0.tgz#db14e02cf82af556c826570efc7db1e57de3262d" + resolved "https://registry.npmjs.org/@aws-sdk/util-user-agent-node/-/util-user-agent-node-3.496.0.tgz" integrity sha512-h0Ax0jlDc7UIo3KoSI4C4tVLBFoiAdx3+DhTVfgLS7x93d41dMlziPoBX2RgdcFn37qnzw6AQKTVTMwDbRCGpg== dependencies: "@aws-sdk/types" "3.496.0" @@ -620,14 +620,14 @@ "@aws-sdk/util-utf8-browser@^3.0.0": version "3.259.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz#3275a6f5eb334f96ca76635b961d3c50259fd9ff" + resolved "https://registry.npmjs.org/@aws-sdk/util-utf8-browser/-/util-utf8-browser-3.259.0.tgz" integrity sha512-UvFa/vR+e19XookZF8RzFZBrw2EUkQWxiBW0yYQAhvk3C+QVGl0H3ouca8LDBlBfQKXwmW3huo/59H8rwb1wJw== dependencies: tslib "^2.3.1" "@aws-sdk/xml-builder@3.496.0": version "3.496.0" - resolved "https://registry.yarnpkg.com/@aws-sdk/xml-builder/-/xml-builder-3.496.0.tgz#7d0ef487a8088ef84a5a9aad228e6173ca85341d" + resolved "https://registry.npmjs.org/@aws-sdk/xml-builder/-/xml-builder-3.496.0.tgz" integrity sha512-GvEjh537IIeOw1ZkZuB37sV12u+ipS5Z1dwjEC/HAvhl5ac23ULtTr1/n+U1gLNN+BAKSWjKiQ2ksj8DiUzeyw== dependencies: "@smithy/types" "^2.9.1" @@ -635,7 +635,7 @@ "@babel/code-frame@^7.0.0": version "7.22.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" + resolved "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz" integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== dependencies: "@babel/highlight" "^7.22.13" @@ -643,12 +643,12 @@ "@babel/helper-validator-identifier@^7.22.20", "@babel/helper-validator-identifier@^7.22.5": version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" + resolved "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== "@babel/highlight@^7.22.13": version "7.22.20" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" + resolved "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz" integrity sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg== dependencies: "@babel/helper-validator-identifier" "^7.22.20" @@ -657,12 +657,12 @@ "@colors/colors@1.5.0": version "1.5.0" - resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== "@commitlint/cli@^17.8.1": version "17.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.8.1.tgz#10492114a022c91dcfb1d84dac773abb3db76d33" + resolved "https://registry.npmjs.org/@commitlint/cli/-/cli-17.8.1.tgz" integrity sha512-ay+WbzQesE0Rv4EQKfNbSMiJJ12KdKTDzIt0tcK4k11FdsWmtwP0Kp1NWMOUswfIWo6Eb7p7Ln721Nx9FLNBjg== dependencies: "@commitlint/format" "^17.8.1" @@ -678,14 +678,14 @@ "@commitlint/config-conventional@^17.8.1": version "17.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.8.1.tgz#e5bcf0cfec8da7ac50bc04dc92e0a4ea74964ce0" + resolved "https://registry.npmjs.org/@commitlint/config-conventional/-/config-conventional-17.8.1.tgz" integrity sha512-NxCOHx1kgneig3VLauWJcDWS40DVjg7nKOpBEEK9E5fjJpQqLCilcnKkIIjdBH98kEO1q3NpE5NSrZ2kl/QGJg== dependencies: conventional-changelog-conventionalcommits "^6.1.0" "@commitlint/config-validator@^17.8.1": version "17.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.8.1.tgz#5cc93b6b49d5524c9cc345a60e5bf74bcca2b7f9" + resolved "https://registry.npmjs.org/@commitlint/config-validator/-/config-validator-17.8.1.tgz" integrity sha512-UUgUC+sNiiMwkyiuIFR7JG2cfd9t/7MV8VB4TZ+q02ZFkHoduUS4tJGsCBWvBOGD9Btev6IecPMvlWUfJorkEA== dependencies: "@commitlint/types" "^17.8.1" @@ -693,7 +693,7 @@ "@commitlint/ensure@^17.8.1": version "17.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-17.8.1.tgz#59183557844999dbb6aab6d03629a3d104d01a8d" + resolved "https://registry.npmjs.org/@commitlint/ensure/-/ensure-17.8.1.tgz" integrity sha512-xjafwKxid8s1K23NFpL8JNo6JnY/ysetKo8kegVM7c8vs+kWLP8VrQq+NbhgVlmCojhEDbzQKp4eRXSjVOGsow== dependencies: "@commitlint/types" "^17.8.1" @@ -705,12 +705,12 @@ "@commitlint/execute-rule@^17.8.1": version "17.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-17.8.1.tgz#504ed69eb61044eeb84fdfd10cc18f0dab14f34c" + resolved "https://registry.npmjs.org/@commitlint/execute-rule/-/execute-rule-17.8.1.tgz" integrity sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ== "@commitlint/format@^17.8.1": version "17.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-17.8.1.tgz#6108bb6b4408e711006680649927e1b559bdc5f8" + resolved "https://registry.npmjs.org/@commitlint/format/-/format-17.8.1.tgz" integrity sha512-f3oMTyZ84M9ht7fb93wbCKmWxO5/kKSbwuYvS867duVomoOsgrgljkGGIztmT/srZnaiGbaK8+Wf8Ik2tSr5eg== dependencies: "@commitlint/types" "^17.8.1" @@ -718,7 +718,7 @@ "@commitlint/is-ignored@^17.8.1": version "17.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.8.1.tgz#cf25bcd8409c79684b63f8bdeb35df48edda244e" + resolved "https://registry.npmjs.org/@commitlint/is-ignored/-/is-ignored-17.8.1.tgz" integrity sha512-UshMi4Ltb4ZlNn4F7WtSEugFDZmctzFpmbqvpyxD3la510J+PLcnyhf9chs7EryaRFJMdAKwsEKfNK0jL/QM4g== dependencies: "@commitlint/types" "^17.8.1" @@ -726,7 +726,7 @@ "@commitlint/lint@^17.8.1": version "17.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.8.1.tgz#bfc21215f6b18d41d4d43e2aa3cb79a5d7726cd8" + resolved "https://registry.npmjs.org/@commitlint/lint/-/lint-17.8.1.tgz" integrity sha512-aQUlwIR1/VMv2D4GXSk7PfL5hIaFSfy6hSHV94O8Y27T5q+DlDEgd/cZ4KmVI+MWKzFfCTiTuWqjfRSfdRllCA== dependencies: "@commitlint/is-ignored" "^17.8.1" @@ -736,7 +736,7 @@ "@commitlint/load@^17.8.1": version "17.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.8.1.tgz#fa061e7bfa53281eb03ca8517ca26d66a189030c" + resolved "https://registry.npmjs.org/@commitlint/load/-/load-17.8.1.tgz" integrity sha512-iF4CL7KDFstP1kpVUkT8K2Wl17h2yx9VaR1ztTc8vzByWWcbO/WaKwxsnCOqow9tVAlzPfo1ywk9m2oJ9ucMqA== dependencies: "@commitlint/config-validator" "^17.8.1" @@ -756,12 +756,12 @@ "@commitlint/message@^17.8.1": version "17.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.8.1.tgz#a5cd226c419be20ee03c3d237db6ac37b95958b3" + resolved "https://registry.npmjs.org/@commitlint/message/-/message-17.8.1.tgz" integrity sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA== "@commitlint/parse@^17.8.1": version "17.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.8.1.tgz#6e00b8f50ebd63562d25dcf4230da2c9f984e626" + resolved "https://registry.npmjs.org/@commitlint/parse/-/parse-17.8.1.tgz" integrity sha512-/wLUickTo0rNpQgWwLPavTm7WbwkZoBy3X8PpkUmlSmQJyWQTj0m6bDjiykMaDt41qcUbfeFfaCvXfiR4EGnfw== dependencies: "@commitlint/types" "^17.8.1" @@ -770,7 +770,7 @@ "@commitlint/read@^17.8.1": version "17.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.8.1.tgz#b3f28777607c756078356cc133368b0e8c08092f" + resolved "https://registry.npmjs.org/@commitlint/read/-/read-17.8.1.tgz" integrity sha512-Fd55Oaz9irzBESPCdMd8vWWgxsW3OWR99wOntBDHgf9h7Y6OOHjWEdS9Xzen1GFndqgyoaFplQS5y7KZe0kO2w== dependencies: "@commitlint/top-level" "^17.8.1" @@ -781,7 +781,7 @@ "@commitlint/resolve-extends@^17.8.1": version "17.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.8.1.tgz#9af01432bf2fd9ce3dd5a00d266cce14e4c977e7" + resolved "https://registry.npmjs.org/@commitlint/resolve-extends/-/resolve-extends-17.8.1.tgz" integrity sha512-W/ryRoQ0TSVXqJrx5SGkaYuAaE/BUontL1j1HsKckvM6e5ZaG0M9126zcwL6peKSuIetJi7E87PRQF8O86EW0Q== dependencies: "@commitlint/config-validator" "^17.8.1" @@ -793,7 +793,7 @@ "@commitlint/rules@^17.8.1": version "17.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.8.1.tgz#da49cab1b7ebaf90d108de9f58f684dc4ccb65a0" + resolved "https://registry.npmjs.org/@commitlint/rules/-/rules-17.8.1.tgz" integrity sha512-2b7OdVbN7MTAt9U0vKOYKCDsOvESVXxQmrvuVUZ0rGFMCrCPJWWP1GJ7f0lAypbDAhaGb8zqtdOr47192LBrIA== dependencies: "@commitlint/ensure" "^17.8.1" @@ -804,45 +804,45 @@ "@commitlint/to-lines@^17.8.1": version "17.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-17.8.1.tgz#a5c4a7cf7dff3dbdd69289fc0eb19b66f3cfe017" + resolved "https://registry.npmjs.org/@commitlint/to-lines/-/to-lines-17.8.1.tgz" integrity sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA== "@commitlint/top-level@^17.8.1": version "17.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-17.8.1.tgz#206d37d6782f33c9572e44fbe3758392fdeea7bc" + resolved "https://registry.npmjs.org/@commitlint/top-level/-/top-level-17.8.1.tgz" integrity sha512-l6+Z6rrNf5p333SHfEte6r+WkOxGlWK4bLuZKbtf/2TXRN+qhrvn1XE63VhD8Oe9oIHQ7F7W1nG2k/TJFhx2yA== dependencies: find-up "^5.0.0" "@commitlint/types@^17.8.1": version "17.8.1" - resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-17.8.1.tgz#883a0ad35c5206d5fef7bc6ce1bbe648118af44e" + resolved "https://registry.npmjs.org/@commitlint/types/-/types-17.8.1.tgz" integrity sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ== dependencies: chalk "^4.1.0" "@cspotcode/source-map-support@^0.8.0": version "0.8.1" - resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + resolved "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz" integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== dependencies: "@jridgewell/trace-mapping" "0.3.9" "@eslint-community/eslint-utils@^4.2.0", "@eslint-community/eslint-utils@^4.4.0": version "4.4.0" - resolved "https://registry.yarnpkg.com/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz#a23514e8fb9af1269d5f7788aa556798d61c6b59" + resolved "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz" integrity sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA== dependencies: eslint-visitor-keys "^3.3.0" "@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": version "4.9.1" - resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.9.1.tgz#449dfa81a57a1d755b09aa58d826c1262e4283b4" + resolved "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.9.1.tgz" integrity sha512-Y27x+MBLjXa+0JWDhykM3+JE+il3kHKAEqabfEWq3SDhZjLYb6/BHL/JKFnH3fe207JaXkyDo685Oc2Glt6ifA== "@eslint/eslintrc@^2.1.4": version "2.1.4" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + resolved "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-2.1.4.tgz" integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" @@ -857,17 +857,17 @@ "@eslint/js@8.56.0": version "8.56.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" + resolved "https://registry.npmjs.org/@eslint/js/-/js-8.56.0.tgz" integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== "@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3": version "1.1.3" - resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== "@humanwhocodes/config-array@^0.11.13": version "0.11.13" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" + resolved "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.11.13.tgz" integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== dependencies: "@humanwhocodes/object-schema" "^2.0.1" @@ -876,17 +876,17 @@ "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^2.0.1": version "2.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" + resolved "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz" integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== "@isaacs/cliui@^8.0.2": version "8.0.2" - resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" + resolved "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz" integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== dependencies: string-width "^5.1.2" @@ -898,22 +898,22 @@ "@isaacs/string-locale-compare@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" + resolved "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz" integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== "@jridgewell/resolve-uri@^3.0.3": version "3.1.1" - resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz" integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== "@jridgewell/sourcemap-codec@^1.4.10": version "1.4.15" - resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== "@jridgewell/trace-mapping@0.3.9": version "0.3.9" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz" integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== dependencies: "@jridgewell/resolve-uri" "^3.0.3" @@ -921,7 +921,7 @@ "@nodelib/fs.scandir@2.1.5": version "2.1.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" + resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz" integrity sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g== dependencies: "@nodelib/fs.stat" "2.0.5" @@ -929,12 +929,12 @@ "@nodelib/fs.stat@2.0.5", "@nodelib/fs.stat@^2.0.2": version "2.0.5" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" + resolved "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" - resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" + resolved "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz" integrity sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg== dependencies: "@nodelib/fs.scandir" "2.1.5" @@ -942,7 +942,7 @@ "@npmcli/agent@^2.0.0": version "2.2.0" - resolved "https://registry.yarnpkg.com/@npmcli/agent/-/agent-2.2.0.tgz#e81f00fdb2a670750ff7731bbefb47ecbf0ccf44" + resolved "https://registry.npmjs.org/@npmcli/agent/-/agent-2.2.0.tgz" integrity sha512-2yThA1Es98orMkpSLVqlDZAMPK3jHJhifP2gnNUdk1754uZ8yI5c+ulCoVG+WlntQA6MzhrURMXjSd9Z7dJ2/Q== dependencies: agent-base "^7.1.0" @@ -953,7 +953,7 @@ "@npmcli/arborist@^4.0.4": version "4.3.1" - resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-4.3.1.tgz#a08cddce3339882f688c1dea1651f6971e781c44" + resolved "https://registry.npmjs.org/@npmcli/arborist/-/arborist-4.3.1.tgz" integrity sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A== dependencies: "@isaacs/string-locale-compare" "^1.1.0" @@ -991,7 +991,7 @@ "@npmcli/arborist@^7.2.1": version "7.2.1" - resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-7.2.1.tgz#fcd7254a613b92a3174a57c896c249e30142bff1" + resolved "https://registry.npmjs.org/@npmcli/arborist/-/arborist-7.2.1.tgz" integrity sha512-o1QIAX56FC8HEPF+Hf4V4/hck9j0a3UiLnMX4aDHPbtU4Po1tUOUSmc2GAx947VWT+acrdMYTDkqUt2CaSXt7A== dependencies: "@isaacs/string-locale-compare" "^1.1.0" @@ -1044,14 +1044,14 @@ "@npmcli/disparity-colors@^3.0.0": version "3.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/disparity-colors/-/disparity-colors-3.0.0.tgz#60ea8c6eb5ba9de2d1950e15b06205b2c3ab7833" + resolved "https://registry.npmjs.org/@npmcli/disparity-colors/-/disparity-colors-3.0.0.tgz" integrity sha512-5R/z157/f20Fi0Ou4ZttL51V0xz0EdPEOauFtPCEYOLInDBRCj1/TxOJ5aGTrtShxEshN2d+hXb9ZKSi5RLBcg== dependencies: ansi-styles "^4.3.0" "@npmcli/fs@^1.0.0": version "1.1.1" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz" integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== dependencies: "@gar/promisify" "^1.0.1" @@ -1059,7 +1059,7 @@ "@npmcli/fs@^2.1.0": version "2.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865" + resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz" integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== dependencies: "@gar/promisify" "^1.1.3" @@ -1067,14 +1067,14 @@ "@npmcli/fs@^3.1.0": version "3.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-3.1.0.tgz#233d43a25a91d68c3a863ba0da6a3f00924a173e" + resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-3.1.0.tgz" integrity sha512-7kZUAaLscfgbwBQRbvdMYaZOWyMEcPTH/tJjnyAWJ/dvvs9Ef+CERx/qJb9GExJpl1qipaDGn7KqHnFGGixd0w== dependencies: semver "^7.3.5" "@npmcli/git@^2.1.0": version "2.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-2.1.0.tgz#2fbd77e147530247d37f325930d457b3ebe894f6" + resolved "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz" integrity sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw== dependencies: "@npmcli/promise-spawn" "^1.3.2" @@ -1088,7 +1088,7 @@ "@npmcli/git@^4.0.0": version "4.1.0" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-4.1.0.tgz#ab0ad3fd82bc4d8c1351b6c62f0fa56e8fe6afa6" + resolved "https://registry.npmjs.org/@npmcli/git/-/git-4.1.0.tgz" integrity sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ== dependencies: "@npmcli/promise-spawn" "^6.0.0" @@ -1102,7 +1102,7 @@ "@npmcli/git@^5.0.0", "@npmcli/git@^5.0.3": version "5.0.3" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-5.0.3.tgz#ad3ede0994bcf716ddb63d361f3ea16cb72d878c" + resolved "https://registry.npmjs.org/@npmcli/git/-/git-5.0.3.tgz" integrity sha512-UZp9NwK+AynTrKvHn5k3KviW/hA5eENmFsu3iAPe7sWRt0lFUdsY/wXIYjpDFe7cdSNwOIzbObfwgt6eL5/2zw== dependencies: "@npmcli/promise-spawn" "^7.0.0" @@ -1116,7 +1116,7 @@ "@npmcli/installed-package-contents@^1.0.6", "@npmcli/installed-package-contents@^1.0.7": version "1.0.7" - resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa" + resolved "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz" integrity sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw== dependencies: npm-bundled "^1.1.1" @@ -1124,7 +1124,7 @@ "@npmcli/installed-package-contents@^2.0.1", "@npmcli/installed-package-contents@^2.0.2": version "2.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz#bfd817eccd9e8df200919e73f57f9e3d9e4f9e33" + resolved "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-2.0.2.tgz" integrity sha512-xACzLPhnfD51GKvTOOuNX2/V4G4mz9/1I2MfDoye9kBM3RYe5g2YbscsaGoTlaWqkxeiapBWyseULVKpSVHtKQ== dependencies: npm-bundled "^3.0.0" @@ -1132,7 +1132,7 @@ "@npmcli/map-workspaces@^2.0.0": version "2.0.4" - resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz#9e5e8ab655215a262aefabf139782b894e0504fc" + resolved "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz" integrity sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg== dependencies: "@npmcli/name-from-folder" "^1.0.1" @@ -1142,7 +1142,7 @@ "@npmcli/map-workspaces@^3.0.2", "@npmcli/map-workspaces@^3.0.4": version "3.0.4" - resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-3.0.4.tgz#15ad7d854292e484f7ba04bc30187a8320dba799" + resolved "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-3.0.4.tgz" integrity sha512-Z0TbvXkRbacjFFLpVpV0e2mheCh+WzQpcqL+4xp49uNJOxOnIAPZyXtUxZ5Qn3QBTGKA11Exjd9a5411rBrhDg== dependencies: "@npmcli/name-from-folder" "^2.0.0" @@ -1152,7 +1152,7 @@ "@npmcli/metavuln-calculator@^2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-2.0.0.tgz#70937b8b5a5cad5c588c8a7b38c4a8bd6f62c84c" + resolved "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-2.0.0.tgz" integrity sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg== dependencies: cacache "^15.0.5" @@ -1162,7 +1162,7 @@ "@npmcli/metavuln-calculator@^7.0.0": version "7.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-7.0.0.tgz#fb59245926d7f677db904177f9aca15ac883d6cb" + resolved "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-7.0.0.tgz" integrity sha512-Pw0tyX02VkpqlIQlG2TeiJNsdrecYeUU0ubZZa9pi3N37GCsxI+en43u4hYFdq+eSx1A9a9vwFAUyqEtKFsbHQ== dependencies: cacache "^18.0.0" @@ -1172,7 +1172,7 @@ "@npmcli/move-file@^1.0.1", "@npmcli/move-file@^1.1.0": version "1.1.2" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz" integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== dependencies: mkdirp "^1.0.4" @@ -1180,7 +1180,7 @@ "@npmcli/move-file@^2.0.0": version "2.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4" + resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz" integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== dependencies: mkdirp "^1.0.4" @@ -1188,34 +1188,34 @@ "@npmcli/name-from-folder@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz#77ecd0a4fcb772ba6fe927e2e2e155fbec2e6b1a" + resolved "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz" integrity sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA== "@npmcli/name-from-folder@^2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz#c44d3a7c6d5c184bb6036f4d5995eee298945815" + resolved "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-2.0.0.tgz" integrity sha512-pwK+BfEBZJbKdNYpHHRTNBwBoqrN/iIMO0AiGvYsp3Hoaq0WbgGSWQR6SCldZovoDpY3yje5lkFUe6gsDgJ2vg== "@npmcli/node-gyp@^1.0.2", "@npmcli/node-gyp@^1.0.3": version "1.0.3" - resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz#a912e637418ffc5f2db375e93b85837691a43a33" + resolved "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz" integrity sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA== "@npmcli/node-gyp@^3.0.0": version "3.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz#101b2d0490ef1aa20ed460e4c0813f0db560545a" + resolved "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-3.0.0.tgz" integrity sha512-gp8pRXC2oOxu0DUE1/M3bYtb1b3/DbJ5aM113+XJBgfXdussRAsX0YOrOhdd8WvnAR6auDBvJomGAkLKA5ydxA== "@npmcli/package-json@^1.0.1": version "1.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-1.0.1.tgz#1ed42f00febe5293c3502fd0ef785647355f6e89" + resolved "https://registry.npmjs.org/@npmcli/package-json/-/package-json-1.0.1.tgz" integrity sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg== dependencies: json-parse-even-better-errors "^2.3.1" "@npmcli/package-json@^5.0.0": version "5.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-5.0.0.tgz#77d0f8b17096763ccbd8af03b7117ba6e34d6e91" + resolved "https://registry.npmjs.org/@npmcli/package-json/-/package-json-5.0.0.tgz" integrity sha512-OI2zdYBLhQ7kpNPaJxiflofYIpkNLi+lnGdzqUOfRmCF3r2l1nadcjtCYMJKv/Utm/ZtlffaUuTiAktPHbc17g== dependencies: "@npmcli/git" "^5.0.0" @@ -1228,14 +1228,14 @@ "@npmcli/promise-spawn@^1.2.0", "@npmcli/promise-spawn@^1.3.2": version "1.3.2" - resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz#42d4e56a8e9274fba180dabc0aea6e38f29274f5" + resolved "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz" integrity sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg== dependencies: infer-owner "^1.0.4" "@npmcli/promise-spawn@^6.0.0", "@npmcli/promise-spawn@^6.0.1": version "6.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz#c8bc4fa2bd0f01cb979d8798ba038f314cfa70f2" + resolved "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-6.0.2.tgz" integrity sha512-gGq0NJkIGSwdbUt4yhdF8ZrmkGKVz9vAdVzpOfnom+V8PLSmSOVhZwbNvZZS1EYcJN5hzzKBxmmVVAInM6HQLg== dependencies: which "^3.0.0" @@ -1249,14 +1249,14 @@ "@npmcli/query@^3.0.1": version "3.0.1" - resolved "https://registry.yarnpkg.com/@npmcli/query/-/query-3.0.1.tgz#77d63ceb7d27ed748da3cc8b50d45fc341448ed6" + resolved "https://registry.npmjs.org/@npmcli/query/-/query-3.0.1.tgz" integrity sha512-0jE8iHBogf/+bFDj+ju6/UMLbJ39c8h6nSe6qile+dB7PJ0iV3gNqcb2vtt6WWCBrxv9uAjzUT/8vroluulidA== dependencies: postcss-selector-parser "^6.0.10" "@npmcli/run-script@^2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-2.0.0.tgz#9949c0cab415b17aaac279646db4f027d6f1e743" + resolved "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz" integrity sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig== dependencies: "@npmcli/node-gyp" "^1.0.2" @@ -1266,7 +1266,7 @@ "@npmcli/run-script@^6.0.0": version "6.0.2" - resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-6.0.2.tgz#a25452d45ee7f7fb8c16dfaf9624423c0c0eb885" + resolved "https://registry.npmjs.org/@npmcli/run-script/-/run-script-6.0.2.tgz" integrity sha512-NCcr1uQo1k5U+SYlnIrbAh3cxy+OQT1VtqiAbxdymSlptbzBb62AjH2xXgjNCoP073hoa1CfCAcwoZ8k96C4nA== dependencies: "@npmcli/node-gyp" "^3.0.0" @@ -1276,19 +1276,19 @@ which "^3.0.0" "@npmcli/run-script@^7.0.0", "@npmcli/run-script@^7.0.2": - version "7.0.3" - resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-7.0.3.tgz#a803e05c4b58e2a7b3f801a9f2767f22822df457" - integrity sha512-ZMWGLHpzMq3rBGIwPyeaoaleaLMvrBrH8nugHxTi5ACkJZXTxXPtVuEH91ifgtss5hUwJQ2VDnzDBWPmz78rvg== + version "7.0.4" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-7.0.4.tgz#9f29aaf4bfcf57f7de2a9e28d1ef091d14b2e6eb" + integrity sha512-9ApYM/3+rBt9V80aYg6tZfzj3UWdiYyCt7gJUD1VJKvWF5nwKDSICXbYIQbspFTq6TOpbsEtIC0LArB8d9PFmg== dependencies: "@npmcli/node-gyp" "^3.0.0" + "@npmcli/package-json" "^5.0.0" "@npmcli/promise-spawn" "^7.0.0" node-gyp "^10.0.0" - read-package-json-fast "^3.0.0" which "^4.0.0" "@oclif/core@^3.10.2", "@oclif/core@^3.16.0", "@oclif/core@^3.18.1": version "3.18.1" - resolved "https://registry.yarnpkg.com/@oclif/core/-/core-3.18.1.tgz#a8c9ee3848ad663d5694bef6079116c70d32fc55" + resolved "https://registry.npmjs.org/@oclif/core/-/core-3.18.1.tgz" integrity sha512-l0LsjzGcqjbUEdeSBX6bdZieVmEv82Q0W3StiyaDMEnPZ9KLH28HrLpcZg6d50mCYW9CUZNzmRo6qrCHWrgLKw== dependencies: "@types/cli-progress" "^3.11.5" @@ -1321,14 +1321,14 @@ "@oclif/plugin-help@^6", "@oclif/plugin-help@^6.0.9": version "6.0.12" - resolved "https://registry.yarnpkg.com/@oclif/plugin-help/-/plugin-help-6.0.12.tgz#d71b84531644ecf65fcd8df671cff6f4aa178d42" + resolved "https://registry.npmjs.org/@oclif/plugin-help/-/plugin-help-6.0.12.tgz" integrity sha512-KMxQ5Oli1tkWiWNSdrjNtiFIFZvX0+IsvuuGcDwJIn1Jm+SzEQF90vkK6WzIjFACmyKIwXbGMmimcFaLrslJPQ== dependencies: "@oclif/core" "^3.18.1" "@oclif/plugin-not-found@^3.0.8": version "3.0.9" - resolved "https://registry.yarnpkg.com/@oclif/plugin-not-found/-/plugin-not-found-3.0.9.tgz#3bea019cb4a4ff8d4db4b68bddce4636bfefdb05" + resolved "https://registry.npmjs.org/@oclif/plugin-not-found/-/plugin-not-found-3.0.9.tgz" integrity sha512-t/Cq8o6ENmMG0nPxeLDjtRsu4ZLKGCkNfev8XQ28Z+P1ntnP6uKpmKpvmmgatmqtX0IHuNrpv9scU3G4iAGp2w== dependencies: "@oclif/core" "^3.18.1" @@ -1337,7 +1337,7 @@ "@oclif/plugin-warn-if-update-available@^3.0.9": version "3.0.9" - resolved "https://registry.yarnpkg.com/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-3.0.9.tgz#f4346f4040adf71d0a120381de2fe4c8411896fd" + resolved "https://registry.npmjs.org/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-3.0.9.tgz" integrity sha512-6XjYNJWWu6B4LyW73hzuM9Ihb23WamrABZhwYVJTVMBHdU30pRa1i3rvHCPfmn5c4iv8ZXudS/0zCNuhR121ng== dependencies: "@oclif/core" "^3.16.0" @@ -1348,19 +1348,19 @@ "@oclif/prettier-config@^0.2.1": version "0.2.1" - resolved "https://registry.yarnpkg.com/@oclif/prettier-config/-/prettier-config-0.2.1.tgz#1def9f38134f9bfb229257f48a35f7d0d183dc78" + resolved "https://registry.npmjs.org/@oclif/prettier-config/-/prettier-config-0.2.1.tgz" integrity sha512-XB8kwQj8zynXjIIWRm+6gO/r8Qft2xKtwBMSmq1JRqtA6TpwpqECqiu8LosBCyg2JBXuUy2lU23/L98KIR7FrQ== "@octokit/auth-token@^2.4.4": version "2.5.0" - resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" + resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz" integrity sha512-r5FVUJCOLl19AxiuZD2VRZ/ORjp/4IN98Of6YJoJOkY75CIBuYfmiNHGrDwXr+aLGG55igl9QrxX3hbiXlLb+g== dependencies: "@octokit/types" "^6.0.3" "@octokit/core@^3.5.1": version "3.6.0" - resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" + resolved "https://registry.npmjs.org/@octokit/core/-/core-3.6.0.tgz" integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== dependencies: "@octokit/auth-token" "^2.4.4" @@ -1373,7 +1373,7 @@ "@octokit/endpoint@^6.0.1": version "6.0.12" - resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" + resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz" integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== dependencies: "@octokit/types" "^6.0.3" @@ -1382,7 +1382,7 @@ "@octokit/graphql@^4.5.8": version "4.8.0" - resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" + resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz" integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== dependencies: "@octokit/request" "^5.6.0" @@ -1391,24 +1391,24 @@ "@octokit/openapi-types@^12.11.0": version "12.11.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" + resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz" integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== "@octokit/plugin-paginate-rest@^2.16.8": version "2.21.3" - resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz#7f12532797775640dbb8224da577da7dc210c87e" + resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz" integrity sha512-aCZTEf0y2h3OLbrgKkrfFdjRL6eSOo8komneVQJnYecAxIej7Bafor2xhuDJOIFau4pk0i/P28/XgtbyPF0ZHw== dependencies: "@octokit/types" "^6.40.0" "@octokit/plugin-request-log@^1.0.4": version "1.0.4" - resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + resolved "https://registry.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz" integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== "@octokit/plugin-rest-endpoint-methods@^5.12.0": version "5.16.2" - resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz#7ee8bf586df97dd6868cf68f641354e908c25342" + resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz" integrity sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw== dependencies: "@octokit/types" "^6.39.0" @@ -1416,7 +1416,7 @@ "@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": version "2.1.0" - resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" + resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz" integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== dependencies: "@octokit/types" "^6.0.3" @@ -1425,7 +1425,7 @@ "@octokit/request@^5.6.0", "@octokit/request@^5.6.3": version "5.6.3" - resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" + resolved "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz" integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== dependencies: "@octokit/endpoint" "^6.0.1" @@ -1437,7 +1437,7 @@ "@octokit/rest@^18.0.6": version "18.12.0" - resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" + resolved "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz" integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== dependencies: "@octokit/core" "^3.5.1" @@ -1447,30 +1447,23 @@ "@octokit/types@^6.0.3", "@octokit/types@^6.16.1", "@octokit/types@^6.39.0", "@octokit/types@^6.40.0": version "6.41.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04" + resolved "https://registry.npmjs.org/@octokit/types/-/types-6.41.0.tgz" integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg== dependencies: "@octokit/openapi-types" "^12.11.0" "@pkgjs/parseargs@^0.11.0": version "0.11.0" - resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" + resolved "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== "@sigstore/bundle@^1.1.0": version "1.1.0" - resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-1.1.0.tgz#17f8d813b09348b16eeed66a8cf1c3d6bd3d04f1" + resolved "https://registry.npmjs.org/@sigstore/bundle/-/bundle-1.1.0.tgz" integrity sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog== dependencies: "@sigstore/protobuf-specs" "^0.2.0" -"@sigstore/bundle@^2.1.0": - version "2.1.0" - resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-2.1.0.tgz#c6140ca97b68815edf7c4fb7bdbf58d656525c39" - integrity sha512-89uOo6yh/oxaU8AeOUnVrTdVMcGk9Q1hJa7Hkvalc6G3Z3CupWk4Xe9djSgJm9fMkH69s0P0cVHUoKSOemLdng== - dependencies: - "@sigstore/protobuf-specs" "^0.2.1" - "@sigstore/bundle@^2.1.1": version "2.1.1" resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-2.1.1.tgz#7fad9a1728939301607103722ac6f2a083d2f09a" @@ -1485,27 +1478,18 @@ "@sigstore/protobuf-specs@^0.2.0", "@sigstore/protobuf-specs@^0.2.1": version "0.2.1" - resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz#be9ef4f3c38052c43bd399d3f792c97ff9e2277b" + resolved "https://registry.npmjs.org/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz" integrity sha512-XTWVxnWJu+c1oCshMLwnKvz8ZQJJDVOlciMfgpJBQbThVjKTCG8dwyhgLngBD2KN0ap9F/gOV8rFDEx8uh7R2A== "@sigstore/sign@^1.0.0": version "1.0.0" - resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-1.0.0.tgz#6b08ebc2f6c92aa5acb07a49784cb6738796f7b4" + resolved "https://registry.npmjs.org/@sigstore/sign/-/sign-1.0.0.tgz" integrity sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA== dependencies: "@sigstore/bundle" "^1.1.0" "@sigstore/protobuf-specs" "^0.2.0" make-fetch-happen "^11.0.1" -"@sigstore/sign@^2.1.0": - version "2.2.0" - resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-2.2.0.tgz#4918207d8356877ab42d85d360d5729e9b3ec65a" - integrity sha512-AAbmnEHDQv6CSfrWA5wXslGtzLPtAtHZleKOgxdQYvx/s76Fk6T6ZVt7w2IGV9j1UrFeBocTTQxaXG2oRrDhYA== - dependencies: - "@sigstore/bundle" "^2.1.0" - "@sigstore/protobuf-specs" "^0.2.1" - make-fetch-happen "^13.0.0" - "@sigstore/sign@^2.2.1": version "2.2.1" resolved "https://registry.yarnpkg.com/@sigstore/sign/-/sign-2.2.1.tgz#b37383db1f25ab20cfec980d23ce08e6f99e6caf" @@ -1518,7 +1502,7 @@ "@sigstore/tuf@^1.0.3": version "1.0.3" - resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-1.0.3.tgz#2a65986772ede996485728f027b0514c0b70b160" + resolved "https://registry.npmjs.org/@sigstore/tuf/-/tuf-1.0.3.tgz" integrity sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg== dependencies: "@sigstore/protobuf-specs" "^0.2.0" @@ -1543,33 +1527,33 @@ "@sindresorhus/is@^4.0.0": version "4.6.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz" integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== "@sinonjs/commons@^2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-2.0.0.tgz#fd4ca5b063554307e8327b4564bd56d3b73924a3" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-2.0.0.tgz" integrity sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg== dependencies: type-detect "4.0.8" "@sinonjs/commons@^3.0.0": version "3.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-3.0.0.tgz#beb434fe875d965265e04722ccfc21df7f755d72" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.0.tgz" integrity sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA== dependencies: type-detect "4.0.8" "@sinonjs/fake-timers@^10.0.2", "@sinonjs/fake-timers@^10.3.0": version "10.3.0" - resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz#55fdff1ecab9f354019129daf4df0dd4d923ea66" + resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz" integrity sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA== dependencies: "@sinonjs/commons" "^3.0.0" "@sinonjs/samsam@^8.0.0": version "8.0.0" - resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-8.0.0.tgz#0d488c91efb3fa1442e26abea81759dfc8b5ac60" + resolved "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-8.0.0.tgz" integrity sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew== dependencies: "@sinonjs/commons" "^2.0.0" @@ -1578,12 +1562,12 @@ "@sinonjs/text-encoding@^0.7.1": version "0.7.2" - resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" + resolved "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz" integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== "@smithy/abort-controller@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/abort-controller/-/abort-controller-2.1.1.tgz#bb68596a7c8213c2ef259bc7fb0f0c118c67ea9d" + resolved "https://registry.npmjs.org/@smithy/abort-controller/-/abort-controller-2.1.1.tgz" integrity sha512-1+qdrUqLhaALYL0iOcN43EP6yAXXQ2wWZ6taf4S2pNGowmOc5gx+iMQv+E42JizNJjB0+gEadOXeV1Bf7JWL1Q== dependencies: "@smithy/types" "^2.9.1" @@ -1591,7 +1575,7 @@ "@smithy/chunked-blob-reader-native@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.1.1.tgz#6b98479c8f6ea94832dd6a6e5ca78969a44eafe1" + resolved "https://registry.npmjs.org/@smithy/chunked-blob-reader-native/-/chunked-blob-reader-native-2.1.1.tgz" integrity sha512-zNW+43dltfNMUrBEYLMWgI8lQr0uhtTcUyxkgC9EP4j17WREzgSFMPUFVrVV6Rc2+QtWERYjb4tzZnQGa7R9fQ== dependencies: "@smithy/util-base64" "^2.1.1" @@ -1599,14 +1583,14 @@ "@smithy/chunked-blob-reader@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/chunked-blob-reader/-/chunked-blob-reader-2.1.1.tgz#997faba8e197e0cb9824dad30ae581466e386e57" + resolved "https://registry.npmjs.org/@smithy/chunked-blob-reader/-/chunked-blob-reader-2.1.1.tgz" integrity sha512-NjNFCKxC4jVvn+lUr3Yo4/PmUJj3tbyqH6GNHueyTGS5Q27vlEJ1MkNhUDV8QGxJI7Bodnc2pD18lU2zRfhHlQ== dependencies: tslib "^2.5.0" "@smithy/config-resolver@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/config-resolver/-/config-resolver-2.1.1.tgz#fc6b036084b98fd26a8ff01a5d7eb676e41749c7" + resolved "https://registry.npmjs.org/@smithy/config-resolver/-/config-resolver-2.1.1.tgz" integrity sha512-lxfLDpZm+AWAHPFZps5JfDoO9Ux1764fOgvRUBpHIO8HWHcSN1dkgsago1qLRVgm1BZ8RCm8cgv99QvtaOWIhw== dependencies: "@smithy/node-config-provider" "^2.2.1" @@ -1617,7 +1601,7 @@ "@smithy/core@^1.3.1": version "1.3.1" - resolved "https://registry.yarnpkg.com/@smithy/core/-/core-1.3.1.tgz#ecedc564e68453b02c20db9e8435d59005c066d8" + resolved "https://registry.npmjs.org/@smithy/core/-/core-1.3.1.tgz" integrity sha512-tf+NIu9FkOh312b6M9G4D68is4Xr7qptzaZGZUREELF8ysE1yLKphqt7nsomjKZVwW7WE5pDDex9idowNGRQ/Q== dependencies: "@smithy/middleware-endpoint" "^2.4.1" @@ -1631,7 +1615,7 @@ "@smithy/credential-provider-imds@^2.2.1": version "2.2.1" - resolved "https://registry.yarnpkg.com/@smithy/credential-provider-imds/-/credential-provider-imds-2.2.1.tgz#4805bf5e104718b959cf8699113fa9de6ddeeafa" + resolved "https://registry.npmjs.org/@smithy/credential-provider-imds/-/credential-provider-imds-2.2.1.tgz" integrity sha512-7XHjZUxmZYnONheVQL7j5zvZXga+EWNgwEAP6OPZTi7l8J4JTeNh9aIOfE5fKHZ/ee2IeNOh54ZrSna+Vc6TFA== dependencies: "@smithy/node-config-provider" "^2.2.1" @@ -1642,7 +1626,7 @@ "@smithy/eventstream-codec@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-codec/-/eventstream-codec-2.1.1.tgz#4405ab0f9c77d439c575560c4886e59ee17d6d38" + resolved "https://registry.npmjs.org/@smithy/eventstream-codec/-/eventstream-codec-2.1.1.tgz" integrity sha512-E8KYBxBIuU4c+zrpR22VsVrOPoEDzk35bQR3E+xm4k6Pa6JqzkDOdMyf9Atac5GPNKHJBdVaQ4JtjdWX2rl/nw== dependencies: "@aws-crypto/crc32" "3.0.0" @@ -1652,7 +1636,7 @@ "@smithy/eventstream-serde-browser@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.1.1.tgz#743a374639e9e2dd858b6fda1fd814eb6c604946" + resolved "https://registry.npmjs.org/@smithy/eventstream-serde-browser/-/eventstream-serde-browser-2.1.1.tgz" integrity sha512-JvEdCmGlZUay5VtlT8/kdR6FlvqTDUiJecMjXsBb0+k1H/qc9ME5n2XKPo8q/MZwEIA1GmGgYMokKGjVvMiDow== dependencies: "@smithy/eventstream-serde-universal" "^2.1.1" @@ -1661,7 +1645,7 @@ "@smithy/eventstream-serde-config-resolver@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.1.1.tgz#0b84d6f8be0836af7b92455c69f7427e4f01e7a2" + resolved "https://registry.npmjs.org/@smithy/eventstream-serde-config-resolver/-/eventstream-serde-config-resolver-2.1.1.tgz" integrity sha512-EqNqXYp3+dk//NmW3NAgQr9bEQ7fsu/CcxQmTiq07JlaIcne/CBWpMZETyXm9w5LXkhduBsdXdlMscfDUDn2fA== dependencies: "@smithy/types" "^2.9.1" @@ -1669,7 +1653,7 @@ "@smithy/eventstream-serde-node@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.1.1.tgz#2e1afa27f9c7eb524c1c53621049c5e4e3cea6a5" + resolved "https://registry.npmjs.org/@smithy/eventstream-serde-node/-/eventstream-serde-node-2.1.1.tgz" integrity sha512-LF882q/aFidFNDX7uROAGxq3H0B7rjyPkV6QDn6/KDQ+CG7AFkRccjxRf1xqajq/Pe4bMGGr+VKAaoF6lELIQw== dependencies: "@smithy/eventstream-serde-universal" "^2.1.1" @@ -1678,7 +1662,7 @@ "@smithy/eventstream-serde-universal@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.1.1.tgz#0f5eec9ad033017973a67bafb5549782499488d2" + resolved "https://registry.npmjs.org/@smithy/eventstream-serde-universal/-/eventstream-serde-universal-2.1.1.tgz" integrity sha512-LR0mMT+XIYTxk4k2fIxEA1BPtW3685QlqufUEUAX1AJcfFfxNDKEvuCRZbO8ntJb10DrIFVJR9vb0MhDCi0sAQ== dependencies: "@smithy/eventstream-codec" "^2.1.1" @@ -1687,7 +1671,7 @@ "@smithy/fetch-http-handler@^2.4.1": version "2.4.1" - resolved "https://registry.yarnpkg.com/@smithy/fetch-http-handler/-/fetch-http-handler-2.4.1.tgz#b4d73bbc1449f61234077d58c705b843a8587bf0" + resolved "https://registry.npmjs.org/@smithy/fetch-http-handler/-/fetch-http-handler-2.4.1.tgz" integrity sha512-VYGLinPsFqH68lxfRhjQaSkjXM7JysUOJDTNjHBuN/ykyRb2f1gyavN9+VhhPTWCy32L4yZ2fdhpCs/nStEicg== dependencies: "@smithy/protocol-http" "^3.1.1" @@ -1698,7 +1682,7 @@ "@smithy/hash-blob-browser@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/hash-blob-browser/-/hash-blob-browser-2.1.1.tgz#f4571d4e2fbc2cc1869c443850e5409bf541ba25" + resolved "https://registry.npmjs.org/@smithy/hash-blob-browser/-/hash-blob-browser-2.1.1.tgz" integrity sha512-jizu1+2PAUjiGIfRtlPEU8Yo6zn+d78ti/ZHDesdf1SUn2BuZW433JlPoCOLH3dBoEEvTgLvQ8tUGSoTTALA+A== dependencies: "@smithy/chunked-blob-reader" "^2.1.1" @@ -1708,7 +1692,7 @@ "@smithy/hash-node@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/hash-node/-/hash-node-2.1.1.tgz#0f8a22d97565ca948724f72267e4d3a2f33740a8" + resolved "https://registry.npmjs.org/@smithy/hash-node/-/hash-node-2.1.1.tgz" integrity sha512-Qhoq0N8f2OtCnvUpCf+g1vSyhYQrZjhSwvJ9qvR8BUGOtTXiyv2x1OD2e6jVGmlpC4E4ax1USHoyGfV9JFsACg== dependencies: "@smithy/types" "^2.9.1" @@ -1718,7 +1702,7 @@ "@smithy/hash-stream-node@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/hash-stream-node/-/hash-stream-node-2.1.1.tgz#d1885a3bf159872cbb8c9d9f1aefc596ea6cf5db" + resolved "https://registry.npmjs.org/@smithy/hash-stream-node/-/hash-stream-node-2.1.1.tgz" integrity sha512-VgDaKcfCy0iHcmtAZgZ3Yw9g37Gkn2JsQiMtFQXUh8Wmo3GfNgDwLOtdhJ272pOT7DStzpe9cNr+eV5Au8KfQA== dependencies: "@smithy/types" "^2.9.1" @@ -1727,7 +1711,7 @@ "@smithy/invalid-dependency@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/invalid-dependency/-/invalid-dependency-2.1.1.tgz#bd69fa24dd35e9bc65a160bd86becdf1399e4463" + resolved "https://registry.npmjs.org/@smithy/invalid-dependency/-/invalid-dependency-2.1.1.tgz" integrity sha512-7WTgnKw+VPg8fxu2v9AlNOQ5yaz6RA54zOVB4f6vQuR0xFKd+RzlCpt0WidYTsye7F+FYDIaS/RnJW4pxjNInw== dependencies: "@smithy/types" "^2.9.1" @@ -1735,14 +1719,14 @@ "@smithy/is-array-buffer@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/is-array-buffer/-/is-array-buffer-2.1.1.tgz#07b4c77ae67ed58a84400c76edd482271f9f957b" + resolved "https://registry.npmjs.org/@smithy/is-array-buffer/-/is-array-buffer-2.1.1.tgz" integrity sha512-xozSQrcUinPpNPNPds4S7z/FakDTh1MZWtRP/2vQtYB/u3HYrX2UXuZs+VhaKBd6Vc7g2XPr2ZtwGBNDN6fNKQ== dependencies: tslib "^2.5.0" "@smithy/md5-js@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/md5-js/-/md5-js-2.1.1.tgz#f414982bc6ab275b80ec517d2e44a779c374ff9c" + resolved "https://registry.npmjs.org/@smithy/md5-js/-/md5-js-2.1.1.tgz" integrity sha512-L3MbIYBIdLlT+MWTYrdVSv/dow1+6iZ1Ad7xS0OHxTTs17d753ZcpOV4Ro7M7tRAVWML/sg2IAp/zzCb6aAttg== dependencies: "@smithy/types" "^2.9.1" @@ -1751,7 +1735,7 @@ "@smithy/middleware-content-length@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/middleware-content-length/-/middleware-content-length-2.1.1.tgz#df767de12d594bc5622009fb0fc8343522697d8c" + resolved "https://registry.npmjs.org/@smithy/middleware-content-length/-/middleware-content-length-2.1.1.tgz" integrity sha512-rSr9ezUl9qMgiJR0UVtVOGEZElMdGFyl8FzWEF5iEKTlcWxGr2wTqGfDwtH3LAB7h+FPkxqv4ZU4cpuCN9Kf/g== dependencies: "@smithy/protocol-http" "^3.1.1" @@ -1760,7 +1744,7 @@ "@smithy/middleware-endpoint@^2.4.1": version "2.4.1" - resolved "https://registry.yarnpkg.com/@smithy/middleware-endpoint/-/middleware-endpoint-2.4.1.tgz#9e500df4d944741808e92018ccd2e948b598a49f" + resolved "https://registry.npmjs.org/@smithy/middleware-endpoint/-/middleware-endpoint-2.4.1.tgz" integrity sha512-XPZTb1E2Oav60Ven3n2PFx+rX9EDsU/jSTA8VDamt7FXks67ekjPY/XrmmPDQaFJOTUHJNKjd8+kZxVO5Ael4Q== dependencies: "@smithy/middleware-serde" "^2.1.1" @@ -1773,7 +1757,7 @@ "@smithy/middleware-retry@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/middleware-retry/-/middleware-retry-2.1.1.tgz#ddc749dd927f136714f76ca5a52dcfb0993ee162" + resolved "https://registry.npmjs.org/@smithy/middleware-retry/-/middleware-retry-2.1.1.tgz" integrity sha512-eMIHOBTXro6JZ+WWzZWd/8fS8ht5nS5KDQjzhNMHNRcG5FkNTqcKpYhw7TETMYzbLfhO5FYghHy1vqDWM4FLDA== dependencies: "@smithy/node-config-provider" "^2.2.1" @@ -1788,7 +1772,7 @@ "@smithy/middleware-serde@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/middleware-serde/-/middleware-serde-2.1.1.tgz#2c5750f76e276a5249720f6c3c24fac29abbee16" + resolved "https://registry.npmjs.org/@smithy/middleware-serde/-/middleware-serde-2.1.1.tgz" integrity sha512-D8Gq0aQBeE1pxf3cjWVkRr2W54t+cdM2zx78tNrVhqrDykRA7asq8yVJij1u5NDtKzKqzBSPYh7iW0svUKg76g== dependencies: "@smithy/types" "^2.9.1" @@ -1796,7 +1780,7 @@ "@smithy/middleware-stack@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/middleware-stack/-/middleware-stack-2.1.1.tgz#67f992dc36e8a6861f881f80a81c1c30956a0396" + resolved "https://registry.npmjs.org/@smithy/middleware-stack/-/middleware-stack-2.1.1.tgz" integrity sha512-KPJhRlhsl8CjgGXK/DoDcrFGfAqoqvuwlbxy+uOO4g2Azn1dhH+GVfC3RAp+6PoL5PWPb+vt6Z23FP+Mr6qeCw== dependencies: "@smithy/types" "^2.9.1" @@ -1804,7 +1788,7 @@ "@smithy/node-config-provider@^2.2.1": version "2.2.1" - resolved "https://registry.yarnpkg.com/@smithy/node-config-provider/-/node-config-provider-2.2.1.tgz#c440c7948d58d72f0e212aa1967aa12f0729defd" + resolved "https://registry.npmjs.org/@smithy/node-config-provider/-/node-config-provider-2.2.1.tgz" integrity sha512-epzK3x1xNxA9oJgHQ5nz+2j6DsJKdHfieb+YgJ7ATWxzNcB7Hc+Uya2TUck5MicOPhDV8HZImND7ZOecVr+OWg== dependencies: "@smithy/property-provider" "^2.1.1" @@ -1814,7 +1798,7 @@ "@smithy/node-http-handler@^2.3.1": version "2.3.1" - resolved "https://registry.yarnpkg.com/@smithy/node-http-handler/-/node-http-handler-2.3.1.tgz#77d23279ff0a12cbe7cde93c5e7c0e86ad56dd20" + resolved "https://registry.npmjs.org/@smithy/node-http-handler/-/node-http-handler-2.3.1.tgz" integrity sha512-gLA8qK2nL9J0Rk/WEZSvgin4AppvuCYRYg61dcUo/uKxvMZsMInL5I5ZdJTogOvdfVug3N2dgI5ffcUfS4S9PA== dependencies: "@smithy/abort-controller" "^2.1.1" @@ -1825,7 +1809,7 @@ "@smithy/property-provider@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/property-provider/-/property-provider-2.1.1.tgz#0f7ffc5e43829eaca5b2b5aae8554807a52b30f3" + resolved "https://registry.npmjs.org/@smithy/property-provider/-/property-provider-2.1.1.tgz" integrity sha512-FX7JhhD/o5HwSwg6GLK9zxrMUrGnb3PzNBrcthqHKBc3dH0UfgEAU24xnJ8F0uow5mj17UeBEOI6o3CF2k7Mhw== dependencies: "@smithy/types" "^2.9.1" @@ -1833,7 +1817,7 @@ "@smithy/protocol-http@^3.1.1": version "3.1.1" - resolved "https://registry.yarnpkg.com/@smithy/protocol-http/-/protocol-http-3.1.1.tgz#eee522d0ed964a72b735d64925e07bcfb7a7806f" + resolved "https://registry.npmjs.org/@smithy/protocol-http/-/protocol-http-3.1.1.tgz" integrity sha512-6ZRTSsaXuSL9++qEwH851hJjUA0OgXdQFCs+VDw4tGH256jQ3TjYY/i34N4vd24RV3nrjNsgd1yhb57uMoKbzQ== dependencies: "@smithy/types" "^2.9.1" @@ -1841,7 +1825,7 @@ "@smithy/querystring-builder@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/querystring-builder/-/querystring-builder-2.1.1.tgz#b9693448ad3f8e0767d84cf5cae29f35514591fb" + resolved "https://registry.npmjs.org/@smithy/querystring-builder/-/querystring-builder-2.1.1.tgz" integrity sha512-C/ko/CeEa8jdYE4gt6nHO5XDrlSJ3vdCG0ZAc6nD5ZIE7LBp0jCx4qoqp7eoutBu7VrGMXERSRoPqwi1WjCPbg== dependencies: "@smithy/types" "^2.9.1" @@ -1850,7 +1834,7 @@ "@smithy/querystring-parser@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/querystring-parser/-/querystring-parser-2.1.1.tgz#a4282a66cc56844317dbff824e573f469bbfc032" + resolved "https://registry.npmjs.org/@smithy/querystring-parser/-/querystring-parser-2.1.1.tgz" integrity sha512-H4+6jKGVhG1W4CIxfBaSsbm98lOO88tpDWmZLgkJpt8Zkk/+uG0FmmqMuCAc3HNM2ZDV+JbErxr0l5BcuIf/XQ== dependencies: "@smithy/types" "^2.9.1" @@ -1858,14 +1842,14 @@ "@smithy/service-error-classification@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/service-error-classification/-/service-error-classification-2.1.1.tgz#dd24e1ec529ae9ec8e87d8b15f0fc8f7e17f3d02" + resolved "https://registry.npmjs.org/@smithy/service-error-classification/-/service-error-classification-2.1.1.tgz" integrity sha512-txEdZxPUgM1PwGvDvHzqhXisrc5LlRWYCf2yyHfvITWioAKat7srQvpjMAvgzf0t6t7j8yHrryXU9xt7RZqFpw== dependencies: "@smithy/types" "^2.9.1" "@smithy/shared-ini-file-loader@^2.3.1": version "2.3.1" - resolved "https://registry.yarnpkg.com/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.3.1.tgz#a2e28b4d85f8a8262a84403fa2b74a086b3a7703" + resolved "https://registry.npmjs.org/@smithy/shared-ini-file-loader/-/shared-ini-file-loader-2.3.1.tgz" integrity sha512-2E2kh24igmIznHLB6H05Na4OgIEilRu0oQpYXo3LCNRrawHAcfDKq9004zJs+sAMt2X5AbY87CUCJ7IpqpSgdw== dependencies: "@smithy/types" "^2.9.1" @@ -1873,7 +1857,7 @@ "@smithy/signature-v4@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/signature-v4/-/signature-v4-2.1.1.tgz#6080171e3d694f40d3f553bbc236c5c433efd4d2" + resolved "https://registry.npmjs.org/@smithy/signature-v4/-/signature-v4-2.1.1.tgz" integrity sha512-Hb7xub0NHuvvQD3YwDSdanBmYukoEkhqBjqoxo+bSdC0ryV9cTfgmNjuAQhTPYB6yeU7hTR+sPRiFMlxqv6kmg== dependencies: "@smithy/eventstream-codec" "^2.1.1" @@ -1887,7 +1871,7 @@ "@smithy/smithy-client@^2.3.1": version "2.3.1" - resolved "https://registry.yarnpkg.com/@smithy/smithy-client/-/smithy-client-2.3.1.tgz#0c3a4a0d3935c7ad2240cc23181f276705212b1f" + resolved "https://registry.npmjs.org/@smithy/smithy-client/-/smithy-client-2.3.1.tgz" integrity sha512-YsTdU8xVD64r2pLEwmltrNvZV6XIAC50LN6ivDopdt+YiF/jGH6PY9zUOu0CXD/d8GMB8gbhnpPsdrjAXHS9QA== dependencies: "@smithy/middleware-endpoint" "^2.4.1" @@ -1899,14 +1883,14 @@ "@smithy/types@^2.9.1": version "2.9.1" - resolved "https://registry.yarnpkg.com/@smithy/types/-/types-2.9.1.tgz#ed04d4144eed3b8bd26d20fc85aae8d6e357ebb9" + resolved "https://registry.npmjs.org/@smithy/types/-/types-2.9.1.tgz" integrity sha512-vjXlKNXyprDYDuJ7UW5iobdmyDm6g8dDG+BFUncAg/3XJaN45Gy5RWWWUVgrzIK7S4R1KWgIX5LeJcfvSI24bw== dependencies: tslib "^2.5.0" "@smithy/url-parser@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/url-parser/-/url-parser-2.1.1.tgz#a30de227b6734650d740b6dff74d488b874e85e3" + resolved "https://registry.npmjs.org/@smithy/url-parser/-/url-parser-2.1.1.tgz" integrity sha512-qC9Bv8f/vvFIEkHsiNrUKYNl8uKQnn4BdhXl7VzQRP774AwIjiSMMwkbT+L7Fk8W8rzYVifzJNYxv1HwvfBo3Q== dependencies: "@smithy/querystring-parser" "^2.1.1" @@ -1915,7 +1899,7 @@ "@smithy/util-base64@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/util-base64/-/util-base64-2.1.1.tgz#af729085cc9d92ebd54a5d2c5d0aa5a0c31f83bf" + resolved "https://registry.npmjs.org/@smithy/util-base64/-/util-base64-2.1.1.tgz" integrity sha512-UfHVpY7qfF/MrgndI5PexSKVTxSZIdz9InghTFa49QOvuu9I52zLPLUHXvHpNuMb1iD2vmc6R+zbv/bdMipR/g== dependencies: "@smithy/util-buffer-from" "^2.1.1" @@ -1923,21 +1907,21 @@ "@smithy/util-body-length-browser@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-browser/-/util-body-length-browser-2.1.1.tgz#1fc77072768013ae646415eedb9833cd252d055d" + resolved "https://registry.npmjs.org/@smithy/util-body-length-browser/-/util-body-length-browser-2.1.1.tgz" integrity sha512-ekOGBLvs1VS2d1zM2ER4JEeBWAvIOUKeaFch29UjjJsxmZ/f0L3K3x0dEETgh3Q9bkZNHgT+rkdl/J/VUqSRag== dependencies: tslib "^2.5.0" "@smithy/util-body-length-node@^2.2.1": version "2.2.1" - resolved "https://registry.yarnpkg.com/@smithy/util-body-length-node/-/util-body-length-node-2.2.1.tgz#a6f5c9911f1c3e23efb340d5ce7a590b62f2056e" + resolved "https://registry.npmjs.org/@smithy/util-body-length-node/-/util-body-length-node-2.2.1.tgz" integrity sha512-/ggJG+ta3IDtpNVq4ktmEUtOkH1LW64RHB5B0hcr5ZaWBmo96UX2cIOVbjCqqDickTXqBWZ4ZO0APuaPrD7Abg== dependencies: tslib "^2.5.0" "@smithy/util-buffer-from@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/util-buffer-from/-/util-buffer-from-2.1.1.tgz#f9346bf8b23c5ba6f6bdb61dd9db779441ba8d08" + resolved "https://registry.npmjs.org/@smithy/util-buffer-from/-/util-buffer-from-2.1.1.tgz" integrity sha512-clhNjbyfqIv9Md2Mg6FffGVrJxw7bgK7s3Iax36xnfVj6cg0fUG7I4RH0XgXJF8bxi+saY5HR21g2UPKSxVCXg== dependencies: "@smithy/is-array-buffer" "^2.1.1" @@ -1945,14 +1929,14 @@ "@smithy/util-config-provider@^2.2.1": version "2.2.1" - resolved "https://registry.yarnpkg.com/@smithy/util-config-provider/-/util-config-provider-2.2.1.tgz#aea0a80236d6cedaee60473802899cff4a8cc0ba" + resolved "https://registry.npmjs.org/@smithy/util-config-provider/-/util-config-provider-2.2.1.tgz" integrity sha512-50VL/tx9oYYcjJn/qKqNy7sCtpD0+s8XEBamIFo4mFFTclKMNp+rsnymD796uybjiIquB7VCB/DeafduL0y2kw== dependencies: tslib "^2.5.0" "@smithy/util-defaults-mode-browser@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.1.1.tgz#be9ac82acee6ec4821b610e7187b0e147f0ba8ff" + resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-browser/-/util-defaults-mode-browser-2.1.1.tgz" integrity sha512-lqLz/9aWRO6mosnXkArtRuQqqZBhNpgI65YDpww4rVQBuUT7qzKbDLG5AmnQTCiU4rOquaZO/Kt0J7q9Uic7MA== dependencies: "@smithy/property-provider" "^2.1.1" @@ -1963,7 +1947,7 @@ "@smithy/util-defaults-mode-node@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.1.1.tgz#0910ee00aac3e8a08aac3e6ae8794e52f3efef02" + resolved "https://registry.npmjs.org/@smithy/util-defaults-mode-node/-/util-defaults-mode-node-2.1.1.tgz" integrity sha512-tYVrc+w+jSBfBd267KDnvSGOh4NMz+wVH7v4CClDbkdPfnjvImBZsOURncT5jsFwR9KCuDyPoSZq4Pa6+eCUrA== dependencies: "@smithy/config-resolver" "^2.1.1" @@ -1976,7 +1960,7 @@ "@smithy/util-endpoints@^1.1.1": version "1.1.1" - resolved "https://registry.yarnpkg.com/@smithy/util-endpoints/-/util-endpoints-1.1.1.tgz#45426dba6fb42282a0ad955600b2b3ba050d118f" + resolved "https://registry.npmjs.org/@smithy/util-endpoints/-/util-endpoints-1.1.1.tgz" integrity sha512-sI4d9rjoaekSGEtq3xSb2nMjHMx8QXcz2cexnVyRWsy4yQ9z3kbDpX+7fN0jnbdOp0b3KSTZJZ2Yb92JWSanLw== dependencies: "@smithy/node-config-provider" "^2.2.1" @@ -1985,14 +1969,14 @@ "@smithy/util-hex-encoding@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/util-hex-encoding/-/util-hex-encoding-2.1.1.tgz#978252b9fb242e0a59bae4ead491210688e0d15f" + resolved "https://registry.npmjs.org/@smithy/util-hex-encoding/-/util-hex-encoding-2.1.1.tgz" integrity sha512-3UNdP2pkYUUBGEXzQI9ODTDK+Tcu1BlCyDBaRHwyxhA+8xLP8agEKQq4MGmpjqb4VQAjq9TwlCQX0kP6XDKYLg== dependencies: tslib "^2.5.0" "@smithy/util-middleware@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/util-middleware/-/util-middleware-2.1.1.tgz#903ba19bb17704f4b476fb9ade9bf9eb0174bc3d" + resolved "https://registry.npmjs.org/@smithy/util-middleware/-/util-middleware-2.1.1.tgz" integrity sha512-mKNrk8oz5zqkNcbcgAAepeJbmfUW6ogrT2Z2gDbIUzVzNAHKJQTYmH9jcy0jbWb+m7ubrvXKb6uMjkSgAqqsFA== dependencies: "@smithy/types" "^2.9.1" @@ -2000,7 +1984,7 @@ "@smithy/util-retry@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/util-retry/-/util-retry-2.1.1.tgz#f2d3566b6e5b841028c7240c852007d4037e49b2" + resolved "https://registry.npmjs.org/@smithy/util-retry/-/util-retry-2.1.1.tgz" integrity sha512-Mg+xxWPTeSPrthpC5WAamJ6PW4Kbo01Fm7lWM1jmGRvmrRdsd3192Gz2fBXAMURyXpaNxyZf6Hr/nQ4q70oVEA== dependencies: "@smithy/service-error-classification" "^2.1.1" @@ -2009,7 +1993,7 @@ "@smithy/util-stream@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/util-stream/-/util-stream-2.1.1.tgz#3ae0e88c3a1a45899e29c1655d2e5a3865b6c0a6" + resolved "https://registry.npmjs.org/@smithy/util-stream/-/util-stream-2.1.1.tgz" integrity sha512-J7SMIpUYvU4DQN55KmBtvaMc7NM3CZ2iWICdcgaovtLzseVhAqFRYqloT3mh0esrFw+3VEK6nQFteFsTqZSECQ== dependencies: "@smithy/fetch-http-handler" "^2.4.1" @@ -2023,14 +2007,14 @@ "@smithy/util-uri-escape@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/util-uri-escape/-/util-uri-escape-2.1.1.tgz#7eedc93b73ecda68f12fb9cf92e9fa0fbbed4d83" + resolved "https://registry.npmjs.org/@smithy/util-uri-escape/-/util-uri-escape-2.1.1.tgz" integrity sha512-saVzI1h6iRBUVSqtnlOnc9ssU09ypo7n+shdQ8hBTZno/9rZ3AuRYvoHInV57VF7Qn7B+pFJG7qTzFiHxWlWBw== dependencies: tslib "^2.5.0" "@smithy/util-utf8@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/util-utf8/-/util-utf8-2.1.1.tgz#690018dd28f47f014114497735e51417ea5900a6" + resolved "https://registry.npmjs.org/@smithy/util-utf8/-/util-utf8-2.1.1.tgz" integrity sha512-BqTpzYEcUMDwAKr7/mVRUtHDhs6ZoXDi9NypMvMfOr/+u1NW7JgqodPDECiiLboEm6bobcPcECxzjtQh865e9A== dependencies: "@smithy/util-buffer-from" "^2.1.1" @@ -2038,7 +2022,7 @@ "@smithy/util-waiter@^2.1.1": version "2.1.1" - resolved "https://registry.yarnpkg.com/@smithy/util-waiter/-/util-waiter-2.1.1.tgz#292d4d09cda7df38aba6ea2abd7d948e3f11bf2d" + resolved "https://registry.npmjs.org/@smithy/util-waiter/-/util-waiter-2.1.1.tgz" integrity sha512-kYy6BLJJNif+uqNENtJqWdXcpqo1LS+nj1AfXcDhOpqpSHJSAkVySLyZV9fkmuVO21lzGoxjvd1imGGJHph/IA== dependencies: "@smithy/abort-controller" "^2.1.1" @@ -2047,54 +2031,54 @@ "@szmarczak/http-timer@^4.0.5": version "4.0.6" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz" integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== dependencies: defer-to-connect "^2.0.0" "@tootallnate/once@1": version "1.1.2" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== "@tootallnate/once@2": version "2.0.0" - resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== "@tsconfig/node10@^1.0.7": version "1.0.9" - resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + resolved "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz" integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== "@tsconfig/node12@^1.0.7": version "1.0.11" - resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + resolved "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz" integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== "@tsconfig/node14@^1.0.0": version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + resolved "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz" integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": version "1.0.4" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== "@tufjs/canonical-json@1.0.0": version "1.0.0" - resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz#eade9fd1f537993bc1f0949f3aea276ecc4fab31" + resolved "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-1.0.0.tgz" integrity sha512-QTnf++uxunWvG2z3UFNzAoQPHxnSXOwtaI3iJ+AohhV+5vONuArPjJE7aPXPVXfXJsqrVbZBu9b81AJoSd09IQ== "@tufjs/canonical-json@2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz#a52f61a3d7374833fca945b2549bc30a2dd40d0a" + resolved "https://registry.npmjs.org/@tufjs/canonical-json/-/canonical-json-2.0.0.tgz" integrity sha512-yVtV8zsdo8qFHe+/3kw81dSLyF7D576A5cCFCi4X7B39tWT7SekaEFUnvnWJHz+9qO7qJTah1JbrDjWKqFtdWA== "@tufjs/models@1.0.4": version "1.0.4" - resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-1.0.4.tgz#5a689630f6b9dbda338d4b208019336562f176ef" + resolved "https://registry.npmjs.org/@tufjs/models/-/models-1.0.4.tgz" integrity sha512-qaGV9ltJP0EO25YfFUPhxRVK0evXFIAGicsVXuRim4Ed9cjPxYhNnNJ49SFmbeLgtxpslIkX317IgpfcHPVj/A== dependencies: "@tufjs/canonical-json" "1.0.0" @@ -2102,7 +2086,7 @@ "@tufjs/models@2.0.0": version "2.0.0" - resolved "https://registry.yarnpkg.com/@tufjs/models/-/models-2.0.0.tgz#c7ab241cf11dd29deb213d6817dabb8c99ce0863" + resolved "https://registry.npmjs.org/@tufjs/models/-/models-2.0.0.tgz" integrity sha512-c8nj8BaOExmZKO2DXhDfegyhSGcG9E/mPN3U13L+/PsoWm1uaGiHHjxqSHQiasDBQwDA3aHuw9+9spYAP1qvvg== dependencies: "@tufjs/canonical-json" "2.0.0" @@ -2110,7 +2094,7 @@ "@types/cacheable-request@^6.0.1": version "6.0.3" - resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" + resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz" integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== dependencies: "@types/http-cache-semantics" "*" @@ -2120,31 +2104,31 @@ "@types/chai@^4.3.11": version "4.3.11" - resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.11.tgz#e95050bf79a932cb7305dd130254ccdf9bde671c" + resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.11.tgz" integrity sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ== "@types/cli-progress@^3.11.5": version "3.11.5" - resolved "https://registry.yarnpkg.com/@types/cli-progress/-/cli-progress-3.11.5.tgz#9518c745e78557efda057e3f96a5990c717268c3" + resolved "https://registry.npmjs.org/@types/cli-progress/-/cli-progress-3.11.5.tgz" integrity sha512-D4PbNRbviKyppS5ivBGyFO29POlySLmA2HyUFE4p5QGazAMM3CwkKWcvTl8gvElSuxRh6FPKL8XmidX873ou4g== dependencies: "@types/node" "*" "@types/debug@^4.1.12": version "4.1.12" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.12.tgz#a155f21690871953410df4b6b6f53187f0500917" + resolved "https://registry.npmjs.org/@types/debug/-/debug-4.1.12.tgz" integrity sha512-vIChWdVG3LG1SMxEvI/AK+FWJthlrqlTu7fbrlywTkkaONwk/UAGaULXRlf8vkzFBLVm0zkMdCquhL5aOjhXPQ== dependencies: "@types/ms" "*" "@types/expect@^1.20.4": version "1.20.4" - resolved "https://registry.yarnpkg.com/@types/expect/-/expect-1.20.4.tgz#8288e51737bf7e3ab5d7c77bfa695883745264e5" + resolved "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz" integrity sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg== "@types/glob@~7.2.0": version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" + resolved "https://registry.npmjs.org/@types/glob/-/glob-7.2.0.tgz" integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== dependencies: "@types/minimatch" "*" @@ -2152,100 +2136,93 @@ "@types/http-cache-semantics@*": version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz#abe102d06ccda1efdf0ed98c10ccf7f36a785a41" + resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz" integrity sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw== "@types/json-schema@^7.0.12": version "7.0.13" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85" + resolved "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.13.tgz" integrity sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ== "@types/json5@^0.0.29": version "0.0.29" - resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/keyv@^3.1.4": version "3.1.4" - resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz" integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== dependencies: "@types/node" "*" "@types/minimatch@*": version "5.1.2" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" + resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-5.1.2.tgz" integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== "@types/minimatch@^3.0.3": version "3.0.5" - resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz" integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/minimist@^1.2.0": version "1.2.3" - resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.3.tgz#dd249cef80c6fff2ba6a0d4e5beca913e04e25f8" + resolved "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.3.tgz" integrity sha512-ZYFzrvyWUNhaPomn80dsMNgMeXxNWZBdkuG/hWlUvXvbdUH8ZERNBGXnU87McuGcWDsyzX2aChCv/SVN348k3A== "@types/mocha@^10.0.6": version "10.0.6" - resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.6.tgz#818551d39113081048bdddbef96701b4e8bb9d1b" + resolved "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.6.tgz" integrity sha512-dJvrYWxP/UcXm36Qn36fxhUKu8A/xMRXVT2cliFF1Z7UA9liG5Psj3ezNSZw+5puH2czDXRLcXQxf8JbJt0ejg== "@types/ms@*": version "0.7.32" - resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.32.tgz#f6cd08939ae3ad886fcc92ef7f0109dacddf61ab" + resolved "https://registry.npmjs.org/@types/ms/-/ms-0.7.32.tgz" integrity sha512-xPSg0jm4mqgEkNhowKgZFBNtwoEwF6gJ4Dhww+GFpm3IgtNseHQZ5IqdNwnquZEoANxyDAKDRAdVo4Z72VvD/g== -"@types/node@*": - version "20.8.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.6.tgz#0dbd4ebcc82ad0128df05d0e6f57e05359ee47fa" - integrity sha512-eWO4K2Ji70QzKUqRy6oyJWUeB7+g2cRagT3T/nxYibYcT4y2BDL8lqolRXjTHmkZCdJfIPaY73KbJAZmcryxTQ== +"@types/node@*", "@types/node@^18": + version "18.19.8" + resolved "https://registry.npmjs.org/@types/node/-/node-18.19.8.tgz" + integrity sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg== dependencies: - undici-types "~5.25.1" + undici-types "~5.26.4" "@types/node@20.5.1": version "20.5.1" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.5.1.tgz#178d58ee7e4834152b0e8b4d30cbfab578b9bb30" + resolved "https://registry.npmjs.org/@types/node/-/node-20.5.1.tgz" integrity sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg== "@types/node@^15.6.2": version "15.14.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-15.14.9.tgz#bc43c990c3c9be7281868bbc7b8fdd6e2b57adfa" + resolved "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz" integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== -"@types/node@^18": - version "18.19.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.8.tgz#c1e42b165e5a526caf1f010747e0522cb2c9c36a" - integrity sha512-g1pZtPhsvGVTwmeVoexWZLTQaOvXwoSq//pTL0DHeNzUDrFnir4fgETdhjhIxjVnN+hKOuh98+E1eMLnUXstFg== - dependencies: - undici-types "~5.26.4" - "@types/normalize-package-data@^2.4.0": version "2.4.2" - resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.2.tgz#9b0e3e8533fe5024ad32d6637eb9589988b6fdca" + resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.2.tgz" integrity sha512-lqa4UEhhv/2sjjIQgjX8B+RBjj47eo0mzGasklVJ78UKGQY1r0VpB9XHDaZZO9qzEFDdy4MrXLuEaSmPrPSe/A== "@types/npm-package-arg@^6.1.4": version "6.1.4" - resolved "https://registry.yarnpkg.com/@types/npm-package-arg/-/npm-package-arg-6.1.4.tgz#112b74a61cb8632313f600212782840156e0228e" + resolved "https://registry.npmjs.org/@types/npm-package-arg/-/npm-package-arg-6.1.4.tgz" integrity sha512-vDgdbMy2QXHnAruzlv68pUtXCjmqUk3WrBAsRboRovsOmxbfn/WiYCjmecyKjGztnMps5dWp4Uq2prp+Ilo17Q== "@types/responselike@^1.0.0": version "1.0.1" - resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.1.tgz#1dd57e54509b3b95c7958e52709567077019d65d" + resolved "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.1.tgz" integrity sha512-TiGnitEDxj2X0j+98Eqk5lv/Cij8oHd32bU4D/Yw6AOq7vvTk0gSD2GPj0G/HkvhMoVsdlhYF4yqqlyPBTM6Sg== dependencies: "@types/node" "*" "@types/semver@^7.5.0", "@types/semver@^7.5.6": version "7.5.6" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.6.tgz#c65b2bfce1bec346582c07724e3f8c1017a20339" + resolved "https://registry.npmjs.org/@types/semver/-/semver-7.5.6.tgz" integrity sha512-dn1l8LaMea/IjDoHNd9J52uBbInB796CDffS6VdIxvqYCPSG0V0DzHp76GpaWnlhg88uYyPbXCDIowa86ybd5A== "@types/shelljs@^0.8.15": version "0.8.15" - resolved "https://registry.yarnpkg.com/@types/shelljs/-/shelljs-0.8.15.tgz#22c6ab9dfe05cec57d8e6cb1a95ea173aee9fcac" + resolved "https://registry.npmjs.org/@types/shelljs/-/shelljs-0.8.15.tgz" integrity sha512-vzmnCHl6hViPu9GNLQJ+DZFd6BQI2DBTUeOvYHqkWQLMfKAAQYMb/xAmZkTogZI/vqXHCWkqDRymDI5p0QTi5Q== dependencies: "@types/glob" "~7.2.0" @@ -2253,24 +2230,24 @@ "@types/sinon@^10.0.19": version "10.0.19" - resolved "https://registry.yarnpkg.com/@types/sinon/-/sinon-10.0.19.tgz#752b752bc40bb5af0bb1aec29bde49b139b91d35" + resolved "https://registry.npmjs.org/@types/sinon/-/sinon-10.0.19.tgz" integrity sha512-MWZNGPSchIdDfb5FL+VFi4zHsHbNOTQEgjqFQk7HazXSXwUU9PAX3z9XBqb3AJGYr9YwrtCtaSMsT3brYsN/jQ== dependencies: "@types/sinonjs__fake-timers" "*" "@types/sinonjs__fake-timers@*": version "8.1.3" - resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.3.tgz#575789c5cf6d410cb288b0b4affaf7e6da44ca51" + resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.3.tgz" integrity sha512-4g+2YyWe0Ve+LBh+WUm1697PD0Kdi6coG1eU0YjQbwx61AZ8XbEpL1zIT6WjuUKrCMCROpEaYQPDjBnDouBVAQ== "@types/validate-npm-package-name@^4.0.2": version "4.0.2" - resolved "https://registry.yarnpkg.com/@types/validate-npm-package-name/-/validate-npm-package-name-4.0.2.tgz#df0f7dac25df7761f7476605ddac54cb1abda26e" + resolved "https://registry.npmjs.org/@types/validate-npm-package-name/-/validate-npm-package-name-4.0.2.tgz" integrity sha512-lrpDziQipxCEeK5kWxvljWYhUvOiB2A9izZd9B2AFarYAkqZshb4lPbRs7zKEic6eGtH8V/2qJW+dPp9OtF6bw== "@types/vinyl@^2.0.4": version "2.0.8" - resolved "https://registry.yarnpkg.com/@types/vinyl/-/vinyl-2.0.8.tgz#a944157b80cf615437aa952131e87efe8a9646cd" + resolved "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.8.tgz" integrity sha512-bls3EAsYVnVoPKoqgFC4Rtq7Kzte4MCk8xMA9UEPPVncJFsov9FJWYj0uxqJRwNEi9b4i4zX13FydaDrhadmHg== dependencies: "@types/expect" "^1.20.4" @@ -2278,7 +2255,7 @@ "@typescript-eslint/eslint-plugin@^6.18.1": version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.0.tgz#db03f3313b57a30fbbdad2e6929e88fc7feaf9ba" + resolved "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.19.0.tgz" integrity sha512-DUCUkQNklCQYnrBSSikjVChdc84/vMPDQSgJTHBZ64G9bA9w0Crc0rd2diujKbTdp6w2J47qkeHQLoi0rpLCdg== dependencies: "@eslint-community/regexpp" "^4.5.1" @@ -2295,7 +2272,7 @@ "@typescript-eslint/parser@^6.18.1": version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.19.0.tgz#80344086f362181890ade7e94fc35fe0480bfdf5" + resolved "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-6.19.0.tgz" integrity sha512-1DyBLG5SH7PYCd00QlroiW60YJ4rWMuUGa/JBV0iZuqi4l4IK3twKPq5ZkEebmGqRjXWVgsUzfd3+nZveewgow== dependencies: "@typescript-eslint/scope-manager" "6.19.0" @@ -2306,7 +2283,7 @@ "@typescript-eslint/scope-manager@6.14.0": version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz#53d24363fdb5ee0d1d8cda4ed5e5321272ab3d48" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz" integrity sha512-VT7CFWHbZipPncAZtuALr9y3EuzY1b1t1AEkIq2bTXUPKw+pHoXflGNG5L+Gv6nKul1cz1VH8fz16IThIU0tdg== dependencies: "@typescript-eslint/types" "6.14.0" @@ -2314,7 +2291,7 @@ "@typescript-eslint/scope-manager@6.19.0": version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz#b6d2abb825b29ab70cb542d220e40c61c1678116" + resolved "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz" integrity sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ== dependencies: "@typescript-eslint/types" "6.19.0" @@ -2322,7 +2299,7 @@ "@typescript-eslint/type-utils@6.19.0": version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz#522a494ef0d3e9fdc5e23a7c22c9331bbade0101" + resolved "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz" integrity sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w== dependencies: "@typescript-eslint/typescript-estree" "6.19.0" @@ -2332,17 +2309,17 @@ "@typescript-eslint/types@6.14.0": version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.14.0.tgz#935307f7a931016b7a5eb25d494ea3e1f613e929" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.14.0.tgz" integrity sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA== "@typescript-eslint/types@6.19.0": version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.19.0.tgz#689b0498c436272a6a2059b09f44bcbd90de294a" + resolved "https://registry.npmjs.org/@typescript-eslint/types/-/types-6.19.0.tgz" integrity sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A== "@typescript-eslint/typescript-estree@6.14.0": version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz#90c7ddd45cd22139adf3d4577580d04c9189ac13" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz" integrity sha512-yPkaLwK0yH2mZKFE/bXkPAkkFgOv15GJAUzgUVonAbv0Hr4PK/N2yaA/4XQbTZQdygiDkpt5DkxPELqHguNvyw== dependencies: "@typescript-eslint/types" "6.14.0" @@ -2355,7 +2332,7 @@ "@typescript-eslint/typescript-estree@6.19.0": version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz#0813ba364a409afb4d62348aec0202600cb468fa" + resolved "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz" integrity sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ== dependencies: "@typescript-eslint/types" "6.19.0" @@ -2369,7 +2346,7 @@ "@typescript-eslint/utils@6.19.0": version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.19.0.tgz#557b72c3eeb4f73bef8037c85dae57b21beb1a4b" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.19.0.tgz" integrity sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw== dependencies: "@eslint-community/eslint-utils" "^4.4.0" @@ -2382,7 +2359,7 @@ "@typescript-eslint/utils@^6.13.0": version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.14.0.tgz#856a9e274367d99ffbd39c48128b93a86c4261e3" + resolved "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-6.14.0.tgz" integrity sha512-XwRTnbvRr7Ey9a1NT6jqdKX8y/atWG+8fAIu3z73HSP8h06i3r/ClMhmaF/RGWGW1tHJEwij1uEg2GbEmPYvYg== dependencies: "@eslint-community/eslint-utils" "^4.4.0" @@ -2395,7 +2372,7 @@ "@typescript-eslint/visitor-keys@6.14.0": version "6.14.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz#1d1d486581819287de824a56c22f32543561138e" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz" integrity sha512-fB5cw6GRhJUz03MrROVuj5Zm/Q+XWlVdIsFj+Zb1Hvqouc8t+XP2H5y53QYU/MGtd2dPg6/vJJlhoX3xc2ehfw== dependencies: "@typescript-eslint/types" "6.14.0" @@ -2403,7 +2380,7 @@ "@typescript-eslint/visitor-keys@6.19.0": version "6.19.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz#4565e0ecd63ca1f81b96f1dd76e49f746c6b2b49" + resolved "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz" integrity sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ== dependencies: "@typescript-eslint/types" "6.19.0" @@ -2411,12 +2388,12 @@ "@ungap/structured-clone@^1.2.0": version "1.2.0" - resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + resolved "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== JSONStream@^1.3.5: version "1.3.5" - resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz" integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== dependencies: jsonparse "^1.2.0" @@ -2424,60 +2401,60 @@ JSONStream@^1.3.5: abbrev@1, abbrev@^1.0.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== abbrev@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-2.0.0.tgz#cf59829b8b4f03f89dda2771cb7f3653828c89bf" + resolved "https://registry.npmjs.org/abbrev/-/abbrev-2.0.0.tgz" integrity sha512-6/mh1E2u2YgEsCHdY0Yx5oW+61gZU+1vXaoiHHrpKeuRNNgFvS+/jrwHiQhB5apAf5oB7UB7E19ol2R2LKH8hQ== abort-controller@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392" + resolved "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz" integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg== dependencies: event-target-shim "^5.0.0" acorn-jsx@^5.3.2: version "5.3.2" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" + resolved "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== acorn-walk@^8.1.1: version "8.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + resolved "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== acorn@^8.4.1, acorn@^8.9.0: version "8.10.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" + resolved "https://registry.npmjs.org/acorn/-/acorn-8.10.0.tgz" integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== agent-base@6, agent-base@^6.0.2: version "6.0.2" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-6.0.2.tgz#49fff58577cfee3f37176feab4c22e00f86d7f77" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz" integrity sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ== dependencies: debug "4" agent-base@^7.0.2, agent-base@^7.1.0: version "7.1.0" - resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.0.tgz#536802b76bc0b34aa50195eb2442276d613e3434" + resolved "https://registry.npmjs.org/agent-base/-/agent-base-7.1.0.tgz" integrity sha512-o/zjMZRhJxny7OyEF+Op8X+efiELC7k7yOjMzgfzVqOzXqkBkWI79YoTdOtsuWd5BWhAGAuOY/Xa6xpiaWXiNg== dependencies: debug "^4.3.4" agentkeepalive@^4.1.3, agentkeepalive@^4.2.1: version "4.5.0" - resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" + resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.5.0.tgz" integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== dependencies: humanize-ms "^1.2.1" aggregate-error@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" @@ -2485,7 +2462,7 @@ aggregate-error@^3.0.0: ajv@^6.12.4: version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -2495,7 +2472,7 @@ ajv@^6.12.4: ajv@^8.11.0: version "8.12.0" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" + resolved "https://registry.npmjs.org/ajv/-/ajv-8.12.0.tgz" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== dependencies: fast-deep-equal "^3.1.1" @@ -2505,60 +2482,60 @@ ajv@^8.11.0: ansi-colors@4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== ansi-escapes@^4.2.1, ansi-escapes@^4.3.2: version "4.3.2" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz" integrity sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ== dependencies: type-fest "^0.21.3" ansi-escapes@^6.2.0: version "6.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-6.2.0.tgz#8a13ce75286f417f1963487d86ba9f90dccf9947" + resolved "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-6.2.0.tgz" integrity sha512-kzRaCqXnpzWs+3z5ABPQiVke+iq0KXkHo8xiWV4RPTi5Yli0l97BEQuhXV1s7+aSU/fu1kUuxgS4MsQ0fRuygw== dependencies: type-fest "^3.0.0" ansi-regex@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== ansi-regex@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.0.1.tgz#3183e38fae9a65d7cb5e53945cd5897d0260a06a" + resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz" integrity sha512-n5M855fKb2SsfMIiFFoVrABHJC8QtHwVx+mHWP3QcEqBHYienj5dHSgjbxtC0WEZXYt4wcD6zrQElDPhFuZgfA== ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== dependencies: color-convert "^1.9.0" ansi-styles@^4.0.0, ansi-styles@^4.1.0, ansi-styles@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== dependencies: color-convert "^2.0.1" ansi-styles@^6.0.0, ansi-styles@^6.1.0, ansi-styles@^6.2.1: version "6.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" + resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.1.tgz" integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== ansicolors@~0.3.2: version "0.3.2" - resolved "https://registry.yarnpkg.com/ansicolors/-/ansicolors-0.3.2.tgz#665597de86a9ffe3aa9bfbe6cae5c6ea426b4979" + resolved "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz" integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== anymatch@~3.1.2: version "3.1.3" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" @@ -2566,17 +2543,17 @@ anymatch@~3.1.2: "aproba@^1.0.3 || ^2.0.0", aproba@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== archy@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + resolved "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz" integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== are-we-there-yet@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz" integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== dependencies: delegates "^1.0.0" @@ -2584,7 +2561,7 @@ are-we-there-yet@^2.0.0: are-we-there-yet@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz" integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== dependencies: delegates "^1.0.0" @@ -2592,7 +2569,7 @@ are-we-there-yet@^3.0.0: are-we-there-yet@^4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-4.0.1.tgz#05a6fc0e5f70771b673e82b0f915616e0ace8fd3" + resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-4.0.1.tgz" integrity sha512-2zuA+jpOYBRgoBCfa+fB87Rk0oGJjDX6pxGzqH6f33NzUhG25Xur6R0u0Z9VVAq8Z5JvQpQI6j6rtonuivC8QA== dependencies: delegates "^1.0.0" @@ -2600,24 +2577,24 @@ are-we-there-yet@^4.0.0: arg@^4.1.0: version "4.1.3" - resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz" integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== argparse@^1.0.7: version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + resolved "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== dependencies: sprintf-js "~1.0.2" argparse@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== array-buffer-byte-length@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" + resolved "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz" integrity sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A== dependencies: call-bind "^1.0.2" @@ -2625,17 +2602,17 @@ array-buffer-byte-length@^1.0.0: array-differ@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + resolved "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz" integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== array-ify@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz" integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== array-includes@^3.1.7: version "3.1.7" - resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" + resolved "https://registry.npmjs.org/array-includes/-/array-includes-3.1.7.tgz" integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== dependencies: call-bind "^1.0.2" @@ -2646,12 +2623,12 @@ array-includes@^3.1.7: array-union@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== array.prototype.findlastindex@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz#b37598438f97b579166940814e2c0493a4f50207" + resolved "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.3.tgz" integrity sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA== dependencies: call-bind "^1.0.2" @@ -2662,7 +2639,7 @@ array.prototype.findlastindex@^1.2.3: array.prototype.flat@^1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" + resolved "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz" integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== dependencies: call-bind "^1.0.2" @@ -2672,7 +2649,7 @@ array.prototype.flat@^1.3.2: array.prototype.flatmap@^1.3.2: version "1.3.2" - resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" + resolved "https://registry.npmjs.org/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz" integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== dependencies: call-bind "^1.0.2" @@ -2682,7 +2659,7 @@ array.prototype.flatmap@^1.3.2: arraybuffer.prototype.slice@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz#98bd561953e3e74bb34938e77647179dfe6e9f12" + resolved "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.2.tgz" integrity sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw== dependencies: array-buffer-byte-length "^1.0.0" @@ -2695,64 +2672,64 @@ arraybuffer.prototype.slice@^1.0.2: arrify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz" integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== arrify@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + resolved "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== asap@^2.0.0: version "2.0.6" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + resolved "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz" integrity sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA== assertion-error@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== astral-regex@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + resolved "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz" integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== async-retry@^1.3.3: version "1.3.3" - resolved "https://registry.yarnpkg.com/async-retry/-/async-retry-1.3.3.tgz#0e7f36c04d8478e7a58bdbed80cedf977785f280" + resolved "https://registry.npmjs.org/async-retry/-/async-retry-1.3.3.tgz" integrity sha512-wfr/jstw9xNi/0teMHrRW7dsz3Lt5ARhYNZ2ewpadnhaIp5mbALhOAP+EAdsC7t4Z6wqsDVv9+W6gm1Dk9mEyw== dependencies: retry "0.13.1" async@^3.2.3: version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" + resolved "https://registry.npmjs.org/async/-/async-3.2.4.tgz" integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== available-typed-arrays@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== balanced-match@^1.0.0: version "1.0.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== base64-js@^1.3.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== before-after-hook@^2.2.0: version "2.2.3" - resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz" integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== bin-links@^3.0.0: version "3.0.3" - resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-3.0.3.tgz#3842711ef3db2cd9f16a5f404a996a12db355a6e" + resolved "https://registry.npmjs.org/bin-links/-/bin-links-3.0.3.tgz" integrity sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA== dependencies: cmd-shim "^5.0.0" @@ -2764,7 +2741,7 @@ bin-links@^3.0.0: bin-links@^4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-4.0.3.tgz#9e4a3c5900830aee3d7f52178b65e01dcdde64a5" + resolved "https://registry.npmjs.org/bin-links/-/bin-links-4.0.3.tgz" integrity sha512-obsRaULtJurnfox/MDwgq6Yo9kzbv1CPTk/1/s7Z/61Lezc8IKkFCOXNeVLXz0456WRzBQmSsDWlai2tIhBsfA== dependencies: cmd-shim "^6.0.0" @@ -2774,17 +2751,17 @@ bin-links@^4.0.1: binary-extensions@^2.0.0, binary-extensions@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== binaryextensions@^4.15.0, binaryextensions@^4.16.0: version "4.18.0" - resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-4.18.0.tgz#22aeada2d14de062c60e8ca59a504a5636a76ceb" + resolved "https://registry.npmjs.org/binaryextensions/-/binaryextensions-4.18.0.tgz" integrity sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw== bl@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/bl/-/bl-4.1.0.tgz#451535264182bec2fbbc83a62ab98cf11d9f7b3a" + resolved "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz" integrity sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w== dependencies: buffer "^5.5.0" @@ -2793,12 +2770,12 @@ bl@^4.1.0: bowser@^2.11.0: version "2.11.0" - resolved "https://registry.yarnpkg.com/bowser/-/bowser-2.11.0.tgz#5ca3c35757a7aa5771500c70a73a9f91ef420a8f" + resolved "https://registry.npmjs.org/bowser/-/bowser-2.11.0.tgz" integrity sha512-AlcaJBi/pqqJBIQ8U9Mcpc9i8Aqxn88Skv5d+xBX006BY5u8N3mGLHa5Lgppa7L/HfwgwLgZ6NYs+Ag6uUmJRA== brace-expansion@^1.1.7: version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== dependencies: balanced-match "^1.0.0" @@ -2806,26 +2783,26 @@ brace-expansion@^1.1.7: brace-expansion@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz" integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== dependencies: balanced-match "^1.0.0" braces@^3.0.2, braces@~3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz" integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== dependencies: fill-range "^7.0.1" browser-stdout@1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== buffer@^5.5.0: version "5.7.1" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-5.7.1.tgz#ba62e7c13133053582197160851a8f648e99eed0" + resolved "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz" integrity sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ== dependencies: base64-js "^1.3.1" @@ -2833,7 +2810,7 @@ buffer@^5.5.0: buffer@^6.0.3: version "6.0.3" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz" integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== dependencies: base64-js "^1.3.1" @@ -2841,24 +2818,24 @@ buffer@^6.0.3: builtin-modules@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" + resolved "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz" integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== builtins@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + resolved "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz" integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== builtins@^5.0.0: version "5.0.1" - resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" + resolved "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz" integrity sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ== dependencies: semver "^7.0.0" cacache@^15.0.3, cacache@^15.0.5, cacache@^15.2.0: version "15.3.0" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" + resolved "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz" integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== dependencies: "@npmcli/fs" "^1.0.0" @@ -2882,7 +2859,7 @@ cacache@^15.0.3, cacache@^15.0.5, cacache@^15.2.0: cacache@^16.1.0: version "16.1.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" + resolved "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz" integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== dependencies: "@npmcli/fs" "^2.1.0" @@ -2906,7 +2883,7 @@ cacache@^16.1.0: cacache@^17.0.0: version "17.1.4" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-17.1.4.tgz#b3ff381580b47e85c6e64f801101508e26604b35" + resolved "https://registry.npmjs.org/cacache/-/cacache-17.1.4.tgz" integrity sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A== dependencies: "@npmcli/fs" "^3.1.0" @@ -2942,12 +2919,12 @@ cacache@^18.0.0: cacheable-lookup@^5.0.3: version "5.0.4" - resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz" integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== cacheable-request@^7.0.2: version "7.0.4" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817" + resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.4.tgz" integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg== dependencies: clone-response "^1.0.2" @@ -2960,7 +2937,7 @@ cacheable-request@^7.0.2: call-bind@^1.0.0, call-bind@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" + resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== dependencies: function-bind "^1.1.1" @@ -2968,12 +2945,12 @@ call-bind@^1.0.0, call-bind@^1.0.2: callsites@^3.0.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camel-case@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-4.1.2.tgz#9728072a954f805228225a6deea6b38461e1bd5a" + resolved "https://registry.npmjs.org/camel-case/-/camel-case-4.1.2.tgz" integrity sha512-gxGWBrTT1JuMx6R+o5PTXMmUnhnVzLQ9SNutD4YqKtI6ap897t3tKECYla6gCWEkplXnlNybEkZg9GEGxKFCgw== dependencies: pascal-case "^3.1.2" @@ -2981,7 +2958,7 @@ camel-case@^4.1.2: camelcase-keys@^6.2.2: version "6.2.2" - resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz" integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== dependencies: camelcase "^5.3.1" @@ -2990,17 +2967,17 @@ camelcase-keys@^6.2.2: camelcase@^5.3.1: version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^6.0.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== capital-case@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/capital-case/-/capital-case-1.0.4.tgz#9d130292353c9249f6b00fa5852bee38a717e669" + resolved "https://registry.npmjs.org/capital-case/-/capital-case-1.0.4.tgz" integrity sha512-ds37W8CytHgwnhGGTi88pcPyR15qoNkOpYwmMMfnWqqWgESapLqvDx6huFjQ5vqWSn2Z06173XNA7LtMOeUh1A== dependencies: no-case "^3.0.4" @@ -3009,7 +2986,7 @@ capital-case@^1.0.4: cardinal@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/cardinal/-/cardinal-2.1.1.tgz#7cc1055d822d212954d07b085dea251cc7bc5505" + resolved "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz" integrity sha512-JSr5eOgoEymtYHBjNWyjrMqet9Am2miJhlfKNdqLp6zoeAh0KN5dRAcxlecj5mAJrmQomgiOBj35xHLrFjqBpw== dependencies: ansicolors "~0.3.2" @@ -3017,7 +2994,7 @@ cardinal@^2.1.1: chai@^4.4.1: version "4.4.1" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1" + resolved "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz" integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== dependencies: assertion-error "^1.1.0" @@ -3030,12 +3007,12 @@ chai@^4.4.1: chalk@5.3.0, chalk@^5.3.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" + resolved "https://registry.npmjs.org/chalk/-/chalk-5.3.0.tgz" integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== chalk@^2.4.2: version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -3044,7 +3021,7 @@ chalk@^2.4.2: chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -3052,7 +3029,7 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.1, chalk@^4.1.2: change-case@^4: version "4.1.2" - resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" + resolved "https://registry.npmjs.org/change-case/-/change-case-4.1.2.tgz" integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== dependencies: camel-case "^4.1.2" @@ -3070,19 +3047,19 @@ change-case@^4: chardet@^0.7.0: version "0.7.0" - resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + resolved "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz" integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== check-error@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.3.tgz#a6502e4312a7ee969f646e83bb3ddd56281bd694" + resolved "https://registry.npmjs.org/check-error/-/check-error-1.0.3.tgz" integrity sha512-iKEoDYaRmd1mxM90a2OEfWhjsjPpYPuQ+lMYsoxB126+t8fw7ySEO48nmDg5COTjxDI65/Y2OWpeEHk3ZOe8zg== dependencies: get-func-name "^2.0.2" chokidar@3.5.3: version "3.5.3" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" @@ -3097,12 +3074,12 @@ chokidar@3.5.3: chownr@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== ci-info@^3.8.0, ci-info@^3.9.0: version "3.9.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-3.9.0.tgz#4279a62028a7b1f262f3473fc9605f5e218c59b4" + resolved "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz" integrity sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ== ci-info@^4.0.0: @@ -3112,33 +3089,33 @@ ci-info@^4.0.0: cidr-regex@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/cidr-regex/-/cidr-regex-3.1.1.tgz#ba1972c57c66f61875f18fd7dd487469770b571d" + resolved "https://registry.npmjs.org/cidr-regex/-/cidr-regex-3.1.1.tgz" integrity sha512-RBqYd32aDwbCMFJRL6wHOlDNYJsPNTt8vC82ErHF5vKt8QQzxm1FrkW8s/R5pVrXMf17sba09Uoy91PKiddAsw== dependencies: ip-regex "^4.1.0" clean-regexp@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/clean-regexp/-/clean-regexp-1.0.0.tgz#8df7c7aae51fd36874e8f8d05b9180bc11a3fed7" + resolved "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz" integrity sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw== dependencies: escape-string-regexp "^1.0.5" clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== clean-stack@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-3.0.1.tgz#155bf0b2221bf5f4fba89528d24c5953f17fe3a8" + resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-3.0.1.tgz" integrity sha512-lR9wNiMRcVQjSB3a7xXGLuz4cr4wJuuXlaAEbRutGowQTmlp7R72/DOgN21e8jdwblMWl9UOJMJXarX94pzKdg== dependencies: escape-string-regexp "4.0.0" cli-columns@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-columns/-/cli-columns-4.0.0.tgz#9fe4d65975238d55218c41bd2ed296a7fa555646" + resolved "https://registry.npmjs.org/cli-columns/-/cli-columns-4.0.0.tgz" integrity sha512-XW2Vg+w+L9on9wtwKpyzluIPCWXjaBahI7mTcYjx+BVIYD9c3yqcv/yKC7CmdCZat4rq2yiE1UMSJC5ivKfMtQ== dependencies: string-width "^4.2.3" @@ -3146,33 +3123,33 @@ cli-columns@^4.0.0: cli-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz" integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== dependencies: restore-cursor "^3.1.0" cli-cursor@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-4.0.0.tgz#3cecfe3734bf4fe02a8361cbdc0f6fe28c6a57ea" + resolved "https://registry.npmjs.org/cli-cursor/-/cli-cursor-4.0.0.tgz" integrity sha512-VGtlMu3x/4DOtIUwEkRezxUZ2lBacNJCHash0N0WeZDBS+7Ux1dm3XWAgWYxLJFMMdOeXMHXorshEFhbMSGelg== dependencies: restore-cursor "^4.0.0" cli-progress@^3.12.0: version "3.12.0" - resolved "https://registry.yarnpkg.com/cli-progress/-/cli-progress-3.12.0.tgz#807ee14b66bcc086258e444ad0f19e7d42577942" + resolved "https://registry.npmjs.org/cli-progress/-/cli-progress-3.12.0.tgz" integrity sha512-tRkV3HJ1ASwm19THiiLIXLO7Im7wlTuKnvkYaTkyoAPefqjNg7W7DHKUlGRxy9vxDvbyCYQkQozvptuMkGCg8A== dependencies: string-width "^4.2.3" cli-spinners@^2.5.0: version "2.9.1" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.1.tgz#9c0b9dad69a6d47cbb4333c14319b060ed395a35" + resolved "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz" integrity sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ== cli-table3@^0.6.3: version "0.6.3" - resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" + resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz" integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== dependencies: string-width "^4.2.0" @@ -3181,14 +3158,14 @@ cli-table3@^0.6.3: cli-table@^0.3.1: version "0.3.11" - resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.11.tgz#ac69cdecbe81dccdba4889b9a18b7da312a9d3ee" + resolved "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz" integrity sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ== dependencies: colors "1.0.3" cli-truncate@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-4.0.0.tgz#6cc28a2924fee9e25ce91e973db56c7066e6172a" + resolved "https://registry.npmjs.org/cli-truncate/-/cli-truncate-4.0.0.tgz" integrity sha512-nPdaFdQ0h/GEigbPClz11D0v/ZJEwxmeVZGeMo3Z5StPtUTkA9o1lD6QwoirYiSDzbcwn2XcjwmCp68W1IS4TA== dependencies: slice-ansi "^5.0.0" @@ -3196,12 +3173,12 @@ cli-truncate@^4.0.0: cli-width@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz#a2f48437a2caa9a22436e794bf071ec9e61cedf6" + resolved "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz" integrity sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw== cliui@^7.0.2: version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" @@ -3210,7 +3187,7 @@ cliui@^7.0.2: cliui@^8.0.1: version "8.0.1" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz" integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" @@ -3219,34 +3196,34 @@ cliui@^8.0.1: clone-buffer@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + resolved "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz" integrity sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g== clone-response@^1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz" integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== dependencies: mimic-response "^1.0.0" clone-stats@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + resolved "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz" integrity sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag== clone@^1.0.2: version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + resolved "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz" integrity sha512-JQHZ2QMW6l3aH/j6xCqQThY/9OH4D/9ls34cgkUBiEeocRTU04tHfKPBsUK1PqZCUQM7GiA0IIXJSuXHI64Kbg== clone@^2.1.1: version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== cloneable-readable@^1.0.0: version "1.1.3" - resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" + resolved "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz" integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== dependencies: inherits "^2.0.1" @@ -3255,43 +3232,43 @@ cloneable-readable@^1.0.0: cmd-shim@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724" + resolved "https://registry.npmjs.org/cmd-shim/-/cmd-shim-5.0.0.tgz" integrity sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw== dependencies: mkdirp-infer-owner "^2.0.0" cmd-shim@^6.0.0: - version "6.0.1" - resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.1.tgz#a65878080548e1dca760b3aea1e21ed05194da9d" - integrity sha512-S9iI9y0nKR4hwEQsVWpyxld/6kRfGepGfzff83FcaiEBpmvlbA2nnGe7Cylgrx2f/p1P5S5wpRm9oL8z1PbS3Q== + version "6.0.2" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-6.0.2.tgz#435fd9e5c95340e61715e19f90209ed6fcd9e0a4" + integrity sha512-+FFYbB0YLaAkhkcrjkyNLYDiOsFSfRjwjY19LXk/psmMx1z00xlCv7hhQoTGXXIKi+YXHL/iiFo8NqMVQX9nOw== color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" color-convert@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + 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" color-name@1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@^1.0.0, color-name@~1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== color-string@^1.9.0: version "1.9.1" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.9.1.tgz#4467f9146f036f855b764dfb5bf8582bf342c7a4" + resolved "https://registry.npmjs.org/color-string/-/color-string-1.9.1.tgz" integrity sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg== dependencies: color-name "^1.0.0" @@ -3299,12 +3276,12 @@ color-string@^1.9.0: color-support@^1.1.2, color-support@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== color@^4.2.3: version "4.2.3" - resolved "https://registry.yarnpkg.com/color/-/color-4.2.3.tgz#d781ecb5e57224ee43ea9627560107c0e0c6463a" + resolved "https://registry.npmjs.org/color/-/color-4.2.3.tgz" integrity sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A== dependencies: color-convert "^2.0.1" @@ -3312,17 +3289,17 @@ color@^4.2.3: colorette@^2.0.20: version "2.0.20" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" + resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz" integrity sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w== colors@1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz" integrity sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw== columnify@^1.6.0: version "1.6.0" - resolved "https://registry.yarnpkg.com/columnify/-/columnify-1.6.0.tgz#6989531713c9008bb29735e61e37acf5bd553cf3" + resolved "https://registry.npmjs.org/columnify/-/columnify-1.6.0.tgz" integrity sha512-lomjuFZKfM6MSAnV9aCZC9sc0qGbmZdfygNv+nCpqVkSKdCxCklLtd16O0EILGkImHw9ZpHkAnHaB+8Zxq5W6Q== dependencies: strip-ansi "^6.0.1" @@ -3330,17 +3307,17 @@ columnify@^1.6.0: commander@11.1.0: version "11.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" + resolved "https://registry.npmjs.org/commander/-/commander-11.1.0.tgz" integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== commander@7.1.0: version "7.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz#f2eaecf131f10e36e07d894698226e36ae0eb5ff" + resolved "https://registry.npmjs.org/commander/-/commander-7.1.0.tgz" integrity sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg== commitlint@^17.8.1: version "17.8.1" - resolved "https://registry.yarnpkg.com/commitlint/-/commitlint-17.8.1.tgz#0a0b9b952f34d9718f06502ee8496785bf3dd8a3" + resolved "https://registry.npmjs.org/commitlint/-/commitlint-17.8.1.tgz" integrity sha512-X+VPJwZsQDeGj/DG1NsxhZEl+oMHKNC+1myZ/zauNDoo+7OuLHfTOUU1C1a4CjKW4b6T7NuoFcYfK0kRCjCtbA== dependencies: "@commitlint/cli" "^17.8.1" @@ -3348,17 +3325,17 @@ commitlint@^17.8.1: common-ancestor-path@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" + resolved "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz" integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== commondir@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== compare-func@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" + resolved "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz" integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== dependencies: array-ify "^1.0.0" @@ -3366,22 +3343,22 @@ compare-func@^2.0.0: concat-map@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== confusing-browser-globals@1.0.11: version "1.0.11" - resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" + resolved "https://registry.npmjs.org/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz" integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== console-control-strings@^1.0.0, console-control-strings@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz" integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== constant-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/constant-case/-/constant-case-3.0.4.tgz#3b84a9aeaf4cf31ec45e6bf5de91bdfb0589faf1" + resolved "https://registry.npmjs.org/constant-case/-/constant-case-3.0.4.tgz" integrity sha512-I2hSBi7Vvs7BEuJDr5dDHfzb/Ruj3FyvFyh7KLilAjNQw3Be+xgqUBA2W6scVEcL0hL1dwPRtIqEPVUCKkSsyQ== dependencies: no-case "^3.0.4" @@ -3390,26 +3367,26 @@ constant-case@^3.0.4: content-type@^1.0.4: version "1.0.5" - resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz" integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== conventional-changelog-angular@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz#a9a9494c28b7165889144fd5b91573c4aa9ca541" + resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-6.0.0.tgz" integrity sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg== dependencies: compare-func "^2.0.0" conventional-changelog-conventionalcommits@^6.1.0: version "6.1.0" - resolved "https://registry.yarnpkg.com/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-6.1.0.tgz#3bad05f4eea64e423d3d90fc50c17d2c8cf17652" + resolved "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-6.1.0.tgz" integrity sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw== dependencies: compare-func "^2.0.0" conventional-commits-parser@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz#02ae1178a381304839bce7cea9da5f1b549ae505" + resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-4.0.0.tgz" integrity sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg== dependencies: JSONStream "^1.3.5" @@ -3419,17 +3396,17 @@ conventional-commits-parser@^4.0.0: core-util-is@~1.0.0: version "1.0.3" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + resolved "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cosmiconfig-typescript-loader@^4.0.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.4.0.tgz#f3feae459ea090f131df5474ce4b1222912319f9" + resolved "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.4.0.tgz" integrity sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw== cosmiconfig@^8.0.0: version "8.3.6" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-8.3.6.tgz" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== dependencies: import-fresh "^3.3.0" @@ -3439,12 +3416,12 @@ cosmiconfig@^8.0.0: create-require@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + resolved "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz" integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -3453,41 +3430,41 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: cssesc@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + resolved "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz" integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== dargs@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" + resolved "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz" integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== dateformat@^4.5.0: version "4.6.3" - resolved "https://registry.yarnpkg.com/dateformat/-/dateformat-4.6.3.tgz#556fa6497e5217fedb78821424f8a1c22fa3f4b5" + resolved "https://registry.npmjs.org/dateformat/-/dateformat-4.6.3.tgz" integrity sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA== debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.2, debug@^4.3.3, debug@^4.3.4: version "4.3.4" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + resolved "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" debug@^3.2.7: version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" + resolved "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz" integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== dependencies: ms "^2.1.1" debuglog@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + resolved "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz" integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== decamelize-keys@^1.1.0: version "1.1.1" - resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + resolved "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz" integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== dependencies: decamelize "^1.1.0" @@ -3495,53 +3472,53 @@ decamelize-keys@^1.1.0: decamelize@^1.1.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== decamelize@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== decompress-response@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" + resolved "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz" integrity sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ== dependencies: mimic-response "^3.1.0" deep-eql@^4.1.3: version "4.1.3" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz" integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== dependencies: type-detect "^4.0.0" deep-extend@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@^0.1.3: version "0.1.4" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== defaults@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.4.tgz#b0b02062c1e2aa62ff5d9528f0f98baa90978d7a" + resolved "https://registry.npmjs.org/defaults/-/defaults-1.0.4.tgz" integrity sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A== dependencies: clone "^1.0.2" defer-to-connect@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== define-data-property@^1.0.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + resolved "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz" integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== dependencies: get-intrinsic "^1.2.1" @@ -3550,7 +3527,7 @@ define-data-property@^1.0.1: define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: version "1.2.1" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" + resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== dependencies: define-data-property "^1.0.1" @@ -3559,17 +3536,17 @@ define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: delegates@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz" integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + resolved "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== dezalgo@^1.0.0: version "1.0.4" - resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" + resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz" integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== dependencies: asap "^2.0.0" @@ -3577,43 +3554,43 @@ dezalgo@^1.0.0: diff@5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== diff@^4.0.1: version "4.0.2" - resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== diff@^5.0.0, diff@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + resolved "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz" integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== dir-glob@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + resolved "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz" integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== dependencies: path-type "^4.0.0" doctrine@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz" integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" dot-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + resolved "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz" integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== dependencies: no-case "^3.0.4" @@ -3621,55 +3598,55 @@ dot-case@^3.0.4: dot-prop@^5.1.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz" integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== dependencies: is-obj "^2.0.0" eastasianwidth@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" + resolved "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== ejs@^3.1.8, ejs@^3.1.9: version "3.1.9" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.9.tgz#03c9e8777fe12686a9effcef22303ca3d8eeb361" + resolved "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz" integrity sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ== dependencies: jake "^10.8.5" emoji-regex@^10.3.0: version "10.3.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-10.3.0.tgz#76998b9268409eb3dae3de989254d456e70cfe23" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-10.3.0.tgz" integrity sha512-QpLs9D9v9kArv4lfDEgg1X/gN5XLnf/A6l9cs8SPZLRZR3ZkY9+kwIQTxm+fsSej5UMYGE8fdoaZVIBlqG0XTw== emoji-regex@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== emoji-regex@^9.2.2: version "9.2.2" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" + resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz" integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== encoding@^0.1.12, encoding@^0.1.13: version "0.1.13" - resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== dependencies: iconv-lite "^0.6.2" end-of-stream@^1.1.0: version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" enhanced-resolve@^5.12.0: version "5.15.0" - resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz" integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== dependencies: graceful-fs "^4.2.4" @@ -3677,29 +3654,29 @@ enhanced-resolve@^5.12.0: env-paths@^2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== err-code@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + resolved "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz" integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" error@^10.4.0: version "10.4.0" - resolved "https://registry.yarnpkg.com/error/-/error-10.4.0.tgz#6fcf0fd64bceb1e750f8ed9a3dd880f00e46a487" + resolved "https://registry.npmjs.org/error/-/error-10.4.0.tgz" integrity sha512-YxIFEJuhgcICugOUvRx5th0UM+ActZ9sjY0QJmeVwsQdvosZ7kYzc9QqS0Da3R5iUmgU5meGIxh0xBeZpMVeLw== es-abstract@^1.22.1: version "1.22.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.2.tgz#90f7282d91d0ad577f505e423e52d4c1d93c1b8a" + resolved "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.2.tgz" integrity sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA== dependencies: array-buffer-byte-length "^1.0.0" @@ -3744,7 +3721,7 @@ es-abstract@^1.22.1: es-set-tostringtag@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz#338d502f6f674301d710b80c8592de8a15f09cd8" + resolved "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.1.tgz" integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== dependencies: get-intrinsic "^1.1.3" @@ -3753,14 +3730,14 @@ es-set-tostringtag@^2.0.1: es-shim-unscopables@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" + resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz" integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== dependencies: has "^1.0.3" es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" @@ -3769,22 +3746,22 @@ es-to-primitive@^1.2.1: escalade@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== escape-string-regexp@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + resolved "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz" integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== eslint-config-oclif-typescript@^3.0.37: version "3.0.37" - resolved "https://registry.yarnpkg.com/eslint-config-oclif-typescript/-/eslint-config-oclif-typescript-3.0.37.tgz#850ce23c0c28b4899048de3e708c76376cfa2ea1" + resolved "https://registry.npmjs.org/eslint-config-oclif-typescript/-/eslint-config-oclif-typescript-3.0.37.tgz" integrity sha512-hrxwHBFWdz38mC0PBifWwQIfwhRIctf+JGgzB/3OmhBmhXBGTEml8y0mQnvi4aTZPD+xJCF4ErMKXN2BS1oj7g== dependencies: "@typescript-eslint/eslint-plugin" "^6.18.1" @@ -3798,7 +3775,7 @@ eslint-config-oclif-typescript@^3.0.37: eslint-config-oclif@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-oclif/-/eslint-config-oclif-5.0.0.tgz#69c5cc8a19025e71fc49a10f47475bb8dd18ba24" + resolved "https://registry.npmjs.org/eslint-config-oclif/-/eslint-config-oclif-5.0.0.tgz" integrity sha512-yPxtUzU6eFL+WoW8DbRf7uoHxgiu0B/uY7k7rgHwFHij66WoI3qhBNhKI5R5FS5JeTuBOXKrNqQVDsSH0D/JvA== dependencies: eslint-config-xo-space "^0.34.0" @@ -3808,26 +3785,26 @@ eslint-config-oclif@^5.0.0: eslint-config-prettier@^9.1.0: version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + resolved "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz" integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== eslint-config-xo-space@^0.34.0: version "0.34.0" - resolved "https://registry.yarnpkg.com/eslint-config-xo-space/-/eslint-config-xo-space-0.34.0.tgz#974db7f7091edc23e2f29cc98acaa1be78ac87e5" + resolved "https://registry.npmjs.org/eslint-config-xo-space/-/eslint-config-xo-space-0.34.0.tgz" integrity sha512-8ZI0Ta/loUIL1Wk/ouWvk2ZWN8X6Un49MqnBf2b6uMjC9c5Pcfr1OivEOrvd3niD6BKgMNH2Q9nG0CcCWC+iVA== dependencies: eslint-config-xo "^0.43.0" eslint-config-xo@^0.43.0: version "0.43.1" - resolved "https://registry.yarnpkg.com/eslint-config-xo/-/eslint-config-xo-0.43.1.tgz#c2ac8993f6e429048c813f599265d1636a0bc060" + resolved "https://registry.npmjs.org/eslint-config-xo/-/eslint-config-xo-0.43.1.tgz" integrity sha512-azv1L2PysRA0NkZOgbndUpN+581L7wPqkgJOgxxw3hxwXAbJgD6Hqb/SjHRiACifXt/AvxCzE/jIKFAlI7XjvQ== dependencies: confusing-browser-globals "1.0.11" eslint-import-resolver-node@^0.3.9: version "0.3.9" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" + resolved "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz" integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== dependencies: debug "^3.2.7" @@ -3836,7 +3813,7 @@ eslint-import-resolver-node@^0.3.9: eslint-import-resolver-typescript@^3.6.1: version "3.6.1" - resolved "https://registry.yarnpkg.com/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz#7b983680edd3f1c5bce1a5829ae0bc2d57fe9efa" + resolved "https://registry.npmjs.org/eslint-import-resolver-typescript/-/eslint-import-resolver-typescript-3.6.1.tgz" integrity sha512-xgdptdoi5W3niYeuQxKmzVDTATvLYqhpwmykwsh7f6HIOStGWEIL9iqZgQDF9u9OEzrRwR8no5q2VT+bjAujTg== dependencies: debug "^4.3.4" @@ -3849,14 +3826,14 @@ eslint-import-resolver-typescript@^3.6.1: eslint-module-utils@^2.7.4, eslint-module-utils@^2.8.0: version "2.8.0" - resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" + resolved "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz" integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" eslint-plugin-es@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz#75a7cdfdccddc0589934aeeb384175f221c57893" + resolved "https://registry.npmjs.org/eslint-plugin-es/-/eslint-plugin-es-3.0.1.tgz" integrity sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ== dependencies: eslint-utils "^2.0.0" @@ -3864,7 +3841,7 @@ eslint-plugin-es@^3.0.0: eslint-plugin-import@^2.29.1: version "2.29.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + resolved "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz" integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== dependencies: array-includes "^3.1.7" @@ -3887,7 +3864,7 @@ eslint-plugin-import@^2.29.1: eslint-plugin-mocha@^10.1.0, eslint-plugin-mocha@^10.2.0: version "10.2.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-mocha/-/eslint-plugin-mocha-10.2.0.tgz#15b05ce5be4b332bb0d76826ec1c5ebf67102ad6" + resolved "https://registry.npmjs.org/eslint-plugin-mocha/-/eslint-plugin-mocha-10.2.0.tgz" integrity sha512-ZhdxzSZnd1P9LqDPF0DBcFLpRIGdh1zkF2JHnQklKQOvrQtT73kdP5K9V2mzvbLR+cCAO9OI48NXK/Ax9/ciCQ== dependencies: eslint-utils "^3.0.0" @@ -3895,7 +3872,7 @@ eslint-plugin-mocha@^10.1.0, eslint-plugin-mocha@^10.2.0: eslint-plugin-node@^11.1.0: version "11.1.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz#c95544416ee4ada26740a30474eefc5402dc671d" + resolved "https://registry.npmjs.org/eslint-plugin-node/-/eslint-plugin-node-11.1.0.tgz" integrity sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g== dependencies: eslint-plugin-es "^3.0.0" @@ -3907,7 +3884,7 @@ eslint-plugin-node@^11.1.0: eslint-plugin-perfectionist@^2.1.0, eslint-plugin-perfectionist@^2.5.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-2.5.0.tgz#f7f83733e18d1b26694c4aab1b986eac836773a7" + resolved "https://registry.npmjs.org/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-2.5.0.tgz" integrity sha512-F6XXcq4mKKUe/SREoMGQqzgw6cgCgf3pFzkFfQVIGtqD1yXVpQjnhTepzhBeZfxZwgMzR9HO4yH4CUhIQ2WBcQ== dependencies: "@typescript-eslint/utils" "^6.13.0" @@ -3916,7 +3893,7 @@ eslint-plugin-perfectionist@^2.1.0, eslint-plugin-perfectionist@^2.5.0: eslint-plugin-unicorn@^48.0.1: version "48.0.1" - resolved "https://registry.yarnpkg.com/eslint-plugin-unicorn/-/eslint-plugin-unicorn-48.0.1.tgz#a6573bc1687ae8db7121fdd8f92394b6549a6959" + resolved "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-48.0.1.tgz" integrity sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw== dependencies: "@babel/helper-validator-identifier" "^7.22.5" @@ -3937,7 +3914,7 @@ eslint-plugin-unicorn@^48.0.1: eslint-scope@^7.2.2: version "7.2.2" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" + resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.2.2.tgz" integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== dependencies: esrecurse "^4.3.0" @@ -3945,36 +3922,36 @@ eslint-scope@^7.2.2: eslint-utils@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-2.1.0.tgz" integrity sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg== dependencies: eslint-visitor-keys "^1.1.0" eslint-utils@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" + resolved "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz" integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== dependencies: eslint-visitor-keys "^2.0.0" eslint-visitor-keys@^1.1.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz" integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== eslint-visitor-keys@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz" integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" + resolved "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== eslint@^8.56.0: version "8.56.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" + resolved "https://registry.npmjs.org/eslint/-/eslint-8.56.0.tgz" integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== dependencies: "@eslint-community/eslint-utils" "^4.2.0" @@ -4018,7 +3995,7 @@ eslint@^8.56.0: espree@^9.6.0, espree@^9.6.1: version "9.6.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" + resolved "https://registry.npmjs.org/espree/-/espree-9.6.1.tgz" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== dependencies: acorn "^8.9.0" @@ -4027,56 +4004,56 @@ espree@^9.6.0, espree@^9.6.1: esprima@^4.0.0, esprima@~4.0.0: version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + resolved "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== esquery@^1.4.2, esquery@^1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" + resolved "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== event-target-shim@^5.0.0: version "5.0.1" - resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" + resolved "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== eventemitter3@^4.0.4: version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== eventemitter3@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-5.0.1.tgz#53f5ffd0a492ac800721bb42c66b841de96423c4" + resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-5.0.1.tgz" integrity sha512-GWkBvjiSZK87ELrYOSESUYeVIc9mvLLf/nXalMOS5dYrgZq9o5OVkbZAVM06CVxYsCwH9BDZFPlQTlPA1j4ahA== events@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" + resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== execa@8.0.1: version "8.0.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-8.0.1.tgz#51f6a5943b580f963c3ca9c6321796db8cc39b8c" + resolved "https://registry.npmjs.org/execa/-/execa-8.0.1.tgz" integrity sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg== dependencies: cross-spawn "^7.0.3" @@ -4091,7 +4068,7 @@ execa@8.0.1: execa@^5.0.0, execa@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: cross-spawn "^7.0.3" @@ -4106,12 +4083,12 @@ execa@^5.0.0, execa@^5.1.1: exponential-backoff@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" + resolved "https://registry.npmjs.org/exponential-backoff/-/exponential-backoff-3.1.1.tgz" integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw== external-editor@^3.0.3: version "3.1.0" - resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + resolved "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz" integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== dependencies: chardet "^0.7.0" @@ -4120,12 +4097,12 @@ external-editor@^3.0.3: fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" + resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== fast-glob@^3.2.9, fast-glob@^3.3.1: version "3.3.1" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" + resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz" integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== dependencies: "@nodelib/fs.stat" "^2.0.2" @@ -4136,71 +4113,71 @@ fast-glob@^3.2.9, fast-glob@^3.3.1: fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6: version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fast-levenshtein@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz#37b899ae47e1090e40e3fd2318e4d5f0142ca912" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz" integrity sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ== dependencies: fastest-levenshtein "^1.0.7" fast-xml-parser@4.2.5: version "4.2.5" - resolved "https://registry.yarnpkg.com/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz#a6747a09296a6cb34f2ae634019bf1738f3b421f" + resolved "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.2.5.tgz" integrity sha512-B9/wizE4WngqQftFPmdaMYlXoJlJOYxGQOanC77fq9k8+Z0v5dDSVh+3glErdIROP//s/jgb7ZuxKfB8nVyo0g== dependencies: strnum "^1.0.5" fastest-levenshtein@^1.0.16, fastest-levenshtein@^1.0.7: version "1.0.16" - resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" + resolved "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz" integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== fastq@^1.6.0: version "1.15.0" - resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz" integrity sha512-wBrocU2LCXXa+lWBt8RoIRD89Fi8OdABODa/kEnyeyjS5aZO5/GNvI5sEINADqP/h8M29UHTHUb53sUu5Ihqdw== dependencies: reusify "^1.0.4" figures@^3.0.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + resolved "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz" integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== dependencies: escape-string-regexp "^1.0.5" file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" filelist@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" + resolved "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz" integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== dependencies: minimatch "^5.0.1" fill-range@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz" integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== dependencies: to-regex-range "^5.0.1" find-up@5.0.0, find-up@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" @@ -4208,7 +4185,7 @@ find-up@5.0.0, find-up@^5.0.0: find-up@^4.0.0, find-up@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -4216,7 +4193,7 @@ find-up@^4.0.0, find-up@^4.1.0: find-yarn-workspace-root2@1.2.16: version "1.2.16" - resolved "https://registry.yarnpkg.com/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz#60287009dd2f324f59646bdb4b7610a6b301c2a9" + resolved "https://registry.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz" integrity sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA== dependencies: micromatch "^4.0.2" @@ -4224,21 +4201,21 @@ find-yarn-workspace-root2@1.2.16: find-yarn-workspace-root@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" + resolved "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz" integrity sha512-1IMnbjt4KzsQfnhnzNd8wUEgXZ44IzZaZmnLYx7D5FZlaHt2gW20Cri8Q+E/t5tIj4+epTBub+2Zxu/vNILzqQ== dependencies: micromatch "^4.0.2" first-chunk-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70" + resolved "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz" integrity sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg== dependencies: readable-stream "^2.0.2" flat-cache@^3.0.4: version "3.1.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.1.tgz#a02a15fdec25a8f844ff7cc658f03dd99eb4609b" + resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.1.1.tgz" integrity sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q== dependencies: flatted "^3.2.9" @@ -4247,24 +4224,24 @@ flat-cache@^3.0.4: flat@^5.0.2: version "5.0.2" - resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== flatted@^3.2.9: version "3.2.9" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz" integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== for-each@^0.3.3: version "0.3.3" - resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz" integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: is-callable "^1.1.3" foreground-child@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" + 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" @@ -4272,7 +4249,7 @@ foreground-child@^3.1.0: fs-extra@^11.0.0: version "11.1.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-11.1.1.tgz" integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== dependencies: graceful-fs "^4.2.0" @@ -4281,7 +4258,7 @@ fs-extra@^11.0.0: fs-extra@^8.1: version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + resolved "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz" integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== dependencies: graceful-fs "^4.2.0" @@ -4290,36 +4267,36 @@ fs-extra@^8.1: fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: minipass "^3.0.0" fs-minipass@^3.0.0, fs-minipass@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" + resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-3.0.3.tgz" integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== dependencies: minipass "^7.0.3" fs.realpath@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: version "2.3.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== function-bind@^1.1.1, function-bind@^1.1.2: version "1.1.2" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" + resolved "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== function.prototype.name@^1.1.6: version "1.1.6" - resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd" + resolved "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz" integrity sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg== dependencies: call-bind "^1.0.2" @@ -4329,12 +4306,12 @@ function.prototype.name@^1.1.6: functions-have-names@^1.2.3: version "1.2.3" - resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== gauge@^3.0.0: version "3.0.2" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" + resolved "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz" integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== dependencies: aproba "^1.0.3 || ^2.0.0" @@ -4349,7 +4326,7 @@ gauge@^3.0.0: gauge@^4.0.3: version "4.0.4" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" + resolved "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz" integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== dependencies: aproba "^1.0.3 || ^2.0.0" @@ -4363,7 +4340,7 @@ gauge@^4.0.3: gauge@^5.0.0: version "5.0.1" - resolved "https://registry.yarnpkg.com/gauge/-/gauge-5.0.1.tgz#1efc801b8ff076b86ef3e9a7a280a975df572112" + resolved "https://registry.npmjs.org/gauge/-/gauge-5.0.1.tgz" integrity sha512-CmykPMJGuNan/3S4kZOpvvPYSNqSHANiWnh9XcMU2pSjtBfF0XzZ2p1bFAxTbnFxyBuPxQYHhzwaoOmUdqzvxQ== dependencies: aproba "^1.0.3 || ^2.0.0" @@ -4377,22 +4354,22 @@ gauge@^5.0.0: get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-east-asian-width@^1.0.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz#5e6ebd9baee6fb8b7b6bd505221065f0cd91f64e" + resolved "https://registry.npmjs.org/get-east-asian-width/-/get-east-asian-width-1.2.0.tgz" integrity sha512-2nk+7SIVb14QrgXFHcm84tD4bKQz0RxPuMT8Ag5KPOq7J5fEmAg0UbXdTOSHqNuHSU28k55qnceesxXRZGzKWA== get-func-name@^2.0.1, get-func-name@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" + resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz" integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@^1.2.0, get-intrinsic@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.1.tgz#d295644fed4505fc9cde952c37ee12b477a83d82" + resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz" integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== dependencies: function-bind "^1.1.1" @@ -4402,29 +4379,29 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1, get-intrinsic@^1.1.3, get-intrinsic@ get-package-type@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a" + resolved "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz" integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q== get-stream@^5.1.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" get-stream@^6.0.0: version "6.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-stream@^8.0.1: version "8.0.1" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-8.0.1.tgz#def9dfd71742cd7754a7761ed43749a27d02eca2" + resolved "https://registry.npmjs.org/get-stream/-/get-stream-8.0.1.tgz" integrity sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA== get-symbol-description@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz" integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== dependencies: call-bind "^1.0.2" @@ -4432,14 +4409,14 @@ get-symbol-description@^1.0.0: get-tsconfig@^4.5.0: version "4.7.2" - resolved "https://registry.yarnpkg.com/get-tsconfig/-/get-tsconfig-4.7.2.tgz#0dcd6fb330391d46332f4c6c1bf89a6514c2ddce" + resolved "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.7.2.tgz" integrity sha512-wuMsz4leaj5hbGgg4IvDU0bqJagpftG5l5cXIAvo8uZrqn0NJqwtfupTN00VnkQJPcIRrxYrm1Ue24btpCha2A== dependencies: resolve-pkg-maps "^1.0.0" git-raw-commits@^2.0.11: version "2.0.11" - resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" + resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz" integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== dependencies: dargs "^7.0.0" @@ -4450,33 +4427,33 @@ git-raw-commits@^2.0.11: github-slugger@^1.5.0: version "1.5.0" - resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.5.0.tgz#17891bbc73232051474d68bd867a34625c955f7d" + resolved "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz" integrity sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw== github-username@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/github-username/-/github-username-6.0.0.tgz#d543eced7295102996cd8e4e19050ebdcbe60658" + resolved "https://registry.npmjs.org/github-username/-/github-username-6.0.0.tgz" integrity sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ== dependencies: "@octokit/rest" "^18.0.6" glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz" integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== dependencies: is-glob "^4.0.1" glob-parent@^6.0.2: version "6.0.2" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" glob@7.2.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" @@ -4488,7 +4465,7 @@ glob@7.2.0: glob@^10.2.2, glob@^10.3.10: version "10.3.10" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + resolved "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz" integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== dependencies: foreground-child "^3.1.0" @@ -4499,7 +4476,7 @@ glob@^10.2.2, glob@^10.3.10: glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.2.3" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== dependencies: fs.realpath "^1.0.0" @@ -4511,7 +4488,7 @@ glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: glob@^8.0.1: version "8.1.0" - resolved "https://registry.yarnpkg.com/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz" integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== dependencies: fs.realpath "^1.0.0" @@ -4522,28 +4499,28 @@ glob@^8.0.1: global-dirs@^0.1.1: version "0.1.1" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz" integrity sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg== dependencies: ini "^1.3.4" globals@^13.19.0: version "13.23.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" + resolved "https://registry.npmjs.org/globals/-/globals-13.23.0.tgz" integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== dependencies: type-fest "^0.20.2" globalthis@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + resolved "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz" integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== dependencies: define-properties "^1.1.3" globby@^11.0.1, globby@^11.1.0: version "11.1.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-11.1.0.tgz#bd4be98bb042f83d796f7e3811991fbe82a0d34b" + resolved "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz" integrity sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g== dependencies: array-union "^2.1.0" @@ -4555,14 +4532,14 @@ globby@^11.0.1, globby@^11.1.0: gopd@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz" integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== dependencies: get-intrinsic "^1.1.3" got@^11: version "11.8.6" - resolved "https://registry.yarnpkg.com/got/-/got-11.8.6.tgz#276e827ead8772eddbcfc97170590b841823233a" + resolved "https://registry.npmjs.org/got/-/got-11.8.6.tgz" integrity sha512-6tfZ91bOr7bOXnK7PRDCGBLa1H4U080YHNaAQ2KsMGlLEzRbk44nsZF2E1IeRc3vtJHPVbKCYgdFbaGO2ljd8g== dependencies: "@sindresorhus/is" "^4.0.0" @@ -4579,88 +4556,88 @@ got@^11: graceful-fs@^4.1.2, graceful-fs@^4.1.5, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.6: version "4.2.11" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" + resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== graphemer@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + resolved "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== grouped-queue@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/grouped-queue/-/grouped-queue-2.0.0.tgz#a2c6713f2171e45db2c300a3a9d7c119d694dac8" + resolved "https://registry.npmjs.org/grouped-queue/-/grouped-queue-2.0.0.tgz" integrity sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw== hard-rejection@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + resolved "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz" integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz" integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + resolved "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz" integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz" integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== dependencies: get-intrinsic "^1.1.1" has-proto@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.1.tgz#1885c1305538958aff469fef37937c22795408e0" + resolved "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz" integrity sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg== has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-tostringtag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz" integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== dependencies: has-symbols "^1.0.2" has-unicode@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== has@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" + resolved "https://registry.npmjs.org/has/-/has-1.0.4.tgz" integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== hasown@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" + resolved "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz" integrity sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA== dependencies: function-bind "^1.1.2" he@1.2.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== header-case@^2.0.4: version "2.0.4" - resolved "https://registry.yarnpkg.com/header-case/-/header-case-2.0.4.tgz#5a42e63b55177349cf405beb8d775acabb92c063" + resolved "https://registry.npmjs.org/header-case/-/header-case-2.0.4.tgz" integrity sha512-H/vuk5TEEVZwrR0lp2zed9OCo1uAILMlx0JEMgC26rzyJJ3N1v6XkwHHXJQdR2doSjcGPM6OKPYoJgf0plJ11Q== dependencies: capital-case "^1.0.4" @@ -4668,38 +4645,38 @@ header-case@^2.0.4: hosted-git-info@^2.1.4: version "2.8.9" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== hosted-git-info@^4.0.1: version "4.1.0" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz" integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== dependencies: lru-cache "^6.0.0" hosted-git-info@^6.0.0: version "6.1.1" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-6.1.1.tgz#629442c7889a69c05de604d52996b74fe6f26d58" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-6.1.1.tgz" integrity sha512-r0EI+HBMcXadMrugk0GCQ+6BQV39PiWAZVfq7oIckeGiN7sjRGyQxPdft3nQekFTCQbYxLBH+/axZMeH8UX6+w== dependencies: lru-cache "^7.5.1" hosted-git-info@^7.0.0, hosted-git-info@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-7.0.1.tgz#9985fcb2700467fecf7f33a4d4874e30680b5322" + resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-7.0.1.tgz" integrity sha512-+K84LB1DYwMHoHSgaOY/Jfhw3ucPmSET5v98Ke/HdNSw4a0UktWzyW1mjhjpuxxTqOOsfWT/7iVshHmVZ4IpOA== dependencies: lru-cache "^10.0.1" http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a" + resolved "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz" integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ== http-call@^5.2.2: version "5.3.0" - resolved "https://registry.yarnpkg.com/http-call/-/http-call-5.3.0.tgz#4ded815b13f423de176eb0942d69c43b25b148db" + resolved "https://registry.npmjs.org/http-call/-/http-call-5.3.0.tgz" integrity sha512-ahwimsC23ICE4kPl9xTBjKB4inbRaeLyZeRunC/1Jy/Z6X8tv22MEAjK+KBOMSVLaqXPTTmd8638waVIKLGx2w== dependencies: content-type "^1.0.4" @@ -4711,7 +4688,7 @@ http-call@^5.2.2: http-proxy-agent@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz" integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== dependencies: "@tootallnate/once" "1" @@ -4720,7 +4697,7 @@ http-proxy-agent@^4.0.1: http-proxy-agent@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz" integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== dependencies: "@tootallnate/once" "2" @@ -4729,7 +4706,7 @@ http-proxy-agent@^5.0.0: http-proxy-agent@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz#e9096c5afd071a3fce56e6252bb321583c124673" + resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-7.0.0.tgz" integrity sha512-+ZT+iBxVUQ1asugqnD6oWoRiS25AkjNfG085dKJGtGxkdwLQrMKU5wJr2bOOFAXzKcTuqq+7fZlTMgG3SRfIYQ== dependencies: agent-base "^7.1.0" @@ -4737,7 +4714,7 @@ http-proxy-agent@^7.0.0: http2-wrapper@^1.0.0-beta.5.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz" integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== dependencies: quick-lru "^5.1.1" @@ -4745,7 +4722,7 @@ http2-wrapper@^1.0.0-beta.5.2: https-proxy-agent@^5.0.0: version "5.0.1" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz" integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA== dependencies: agent-base "6" @@ -4753,7 +4730,7 @@ https-proxy-agent@^5.0.0: https-proxy-agent@^7.0.1: version "7.0.2" - resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz#e2645b846b90e96c6e6f347fb5b2e41f1590b09b" + resolved "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-7.0.2.tgz" integrity sha512-NmLNjm6ucYwtcUmL7JQC1ZQ57LmHP4lT15FQ8D61nak1rO6DH+fz5qNK2Ap5UN4ZapYICE3/0KodcLYSPsPbaA== dependencies: agent-base "^7.0.2" @@ -4761,72 +4738,72 @@ https-proxy-agent@^7.0.1: human-signals@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== human-signals@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-5.0.0.tgz#42665a284f9ae0dade3ba41ebc37eb4b852f3a28" + resolved "https://registry.npmjs.org/human-signals/-/human-signals-5.0.0.tgz" integrity sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ== humanize-ms@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz" integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== dependencies: ms "^2.0.0" husky@^8.0.3: version "8.0.3" - resolved "https://registry.yarnpkg.com/husky/-/husky-8.0.3.tgz#4936d7212e46d1dea28fef29bb3a108872cd9184" + resolved "https://registry.npmjs.org/husky/-/husky-8.0.3.tgz" integrity sha512-+dQSyqPh4x1hlO1swXBiNb2HzTDN1I2IGLQx1GrBuiqFJfoMrnZWwVmatvSiO+Iz8fBUnf+lekwNo4c2LlXItg== hyperlinker@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/hyperlinker/-/hyperlinker-1.0.0.tgz#23dc9e38a206b208ee49bc2d6c8ef47027df0c0e" + resolved "https://registry.npmjs.org/hyperlinker/-/hyperlinker-1.0.0.tgz" integrity sha512-Ty8UblRWFEcfSuIaajM34LdPXIhbs1ajEX/BBPv24J+enSVaEVY63xQ6lTO9VRYS5LAoghIG0IDJ+p+IPzKUQQ== iconv-lite@^0.4.24: version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz" integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== dependencies: safer-buffer ">= 2.1.2 < 3" iconv-lite@^0.6.2: version "0.6.3" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" ieee754@^1.1.13, ieee754@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz" integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== ignore-walk@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-4.0.1.tgz#fc840e8346cf88a3a9380c5b17933cd8f4d39fa3" + resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz" integrity sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw== dependencies: minimatch "^3.0.4" ignore-walk@^6.0.0: version "6.0.3" - resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-6.0.3.tgz#0fcdb6decaccda35e308a7b0948645dd9523b7bb" + resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-6.0.3.tgz" integrity sha512-C7FfFoTA+bI10qfeydT8aZbvr91vAEU+2W5BZUlzPec47oNb07SsOfwYrtxuvOYdUApPP/Qlh4DtAO51Ekk2QA== dependencies: minimatch "^9.0.0" ignore@^5.1.1, ignore@^5.2.0, ignore@^5.2.4: version "5.2.4" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" + resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz" integrity sha512-MAb38BcSbH0eHNBxn7ql2NH/kX33OkB3lZ1BNdh7ENeRChHTYsTvWrMubiIAMNS2llXEEgZ1MUOBtXChP3kaFQ== import-fresh@^3.0.0, import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -4834,22 +4811,22 @@ import-fresh@^3.0.0, import-fresh@^3.2.1, import-fresh@^3.3.0: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + resolved "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz" integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== infer-owner@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== inflight@^1.0.4: version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + resolved "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz" integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== dependencies: once "^1.3.0" @@ -4857,22 +4834,22 @@ inflight@^1.0.4: inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== ini@^1.3.4: version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== ini@^4.1.0, ini@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.1.tgz#d95b3d843b1e906e56d6747d5447904ff50ce7a1" + resolved "https://registry.npmjs.org/ini/-/ini-4.1.1.tgz" integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== init-package-json@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/init-package-json/-/init-package-json-6.0.0.tgz#7d4daeaacc72be300c616481e5c155d5048a18b4" + resolved "https://registry.npmjs.org/init-package-json/-/init-package-json-6.0.0.tgz" integrity sha512-AmXD+Aht5iZGo/y1KUtZSUQ1SltesXHxQuc7qeNz0eUGx/8WgkHeeQLSFdM8l9YpmnnamGIbAxVdAs2xoLRKRQ== dependencies: npm-package-arg "^11.0.0" @@ -4885,7 +4862,7 @@ init-package-json@^6.0.0: inquirer@^8.0.0: version "8.2.6" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" + resolved "https://registry.npmjs.org/inquirer/-/inquirer-8.2.6.tgz" integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== dependencies: ansi-escapes "^4.2.1" @@ -4906,7 +4883,7 @@ inquirer@^8.0.0: internal-slot@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" + resolved "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.5.tgz" integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== dependencies: get-intrinsic "^1.2.0" @@ -4915,22 +4892,22 @@ internal-slot@^1.0.5: interpret@^1.0.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== ip-regex@^4.1.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-4.3.0.tgz#687275ab0f57fa76978ff8f4dddc8a23d5990db5" + resolved "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz" integrity sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q== ip@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + resolved "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz" integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/is-array-buffer/-/is-array-buffer-3.0.2.tgz#f2653ced8412081638ecb0ebbd0c41c6e0aecbbe" + resolved "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.2.tgz" integrity sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w== dependencies: call-bind "^1.0.2" @@ -4939,31 +4916,31 @@ is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-arrayish@^0.3.1: version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz" integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== is-bigint@^1.0.1: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz" integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== dependencies: has-bigints "^1.0.1" is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: version "1.1.2" - resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz" integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" @@ -4971,133 +4948,133 @@ is-boolean-object@^1.1.0: is-builtin-module@^3.2.1: version "3.2.1" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" + resolved "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.1.tgz" integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== dependencies: builtin-modules "^3.3.0" is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-cidr@^4.0.2: version "4.0.2" - resolved "https://registry.yarnpkg.com/is-cidr/-/is-cidr-4.0.2.tgz#94c7585e4c6c77ceabf920f8cde51b8c0fda8814" + resolved "https://registry.npmjs.org/is-cidr/-/is-cidr-4.0.2.tgz" integrity sha512-z4a1ENUajDbEl/Q6/pVBpTR1nBjjEE1X7qb7bmWYanNnPoKAvUCPFKeXV6Fe4mgTkWKBqiHIcwsI3SndiO5FeA== dependencies: cidr-regex "^3.1.1" is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.5.0, is-core-module@^2.8.1: version "2.13.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.0.tgz#bb52aa6e2cbd49a30c2ba68c42bf3435ba6072db" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.0.tgz" integrity sha512-Z7dk6Qo8pOCp3l4tsX2C5ZVas4V+UxwQodwZhLopL91TX8UyyHEXafPcyoeeWuLrwzHcr3igO78wNLwHJHsMCQ== dependencies: has "^1.0.3" is-core-module@^2.13.1: version "2.13.1" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" + resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: hasown "^2.0.0" is-date-object@^1.0.1: version "1.0.5" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" is-docker@^2.0.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" + resolved "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== is-extglob@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== is-fullwidth-code-point@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== is-fullwidth-code-point@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz#fae3167c729e7463f8461ce512b080a49268aa88" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz" integrity sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ== is-fullwidth-code-point@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz#9609efced7c2f97da7b60145ef481c787c7ba704" + resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-5.0.0.tgz" integrity sha512-OVa3u9kkBbw7b8Xw5F9P+D/T9X+Z4+JruYVNapTjPYZYUznQ5YfWeFkOj606XYYW8yugTfC8Pj0hYqvi4ryAhA== dependencies: get-east-asian-width "^1.0.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== dependencies: is-extglob "^2.1.1" is-interactive@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/is-interactive/-/is-interactive-1.0.0.tgz#cea6e6ae5c870a7b0a0004070b7b587e0252912e" + resolved "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz" integrity sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w== is-lambda@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz" integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== is-negative-zero@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-number-object@^1.0.4: version "1.0.7" - resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz" integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" is-number@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz" integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== is-obj@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== is-path-inside@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-obj@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz" integrity sha512-yvkRyxmFKEOQ4pNXCmJG5AEQNlXJS5LaONXo5/cLdTZdWvsZ1ioJEonLGAosKlMWE8lwUy/bJzMjcw8az73+Fg== is-plain-obj@^2.0.0, is-plain-obj@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== is-plain-object@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" @@ -5105,123 +5082,123 @@ is-regex@^1.1.4: is-retry-allowed@^1.1.0: version "1.2.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + resolved "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz" integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== is-scoped@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/is-scoped/-/is-scoped-2.1.0.tgz#fef0713772658bdf5bee418608267ddae6d3566d" + resolved "https://registry.npmjs.org/is-scoped/-/is-scoped-2.1.0.tgz" integrity sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ== dependencies: scoped-regex "^2.0.0" is-shared-array-buffer@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz" integrity sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA== dependencies: call-bind "^1.0.2" is-stream@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-stream@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" + resolved "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz" integrity sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA== is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz" integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== dependencies: has-tostringtag "^1.0.0" is-symbol@^1.0.2, is-symbol@^1.0.3: version "1.0.4" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + resolved "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz" integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: has-symbols "^1.0.2" is-text-path@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + resolved "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz" integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== dependencies: text-extensions "^1.0.0" is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.9: version "1.1.12" - resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.12.tgz#d0bab5686ef4a76f7a73097b95470ab199c57d4a" + resolved "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.12.tgz" integrity sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg== dependencies: which-typed-array "^1.1.11" is-unicode-supported@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== is-utf8@^0.2.0, is-utf8@^0.2.1: version "0.2.1" - resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== is-weakref@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" is-wsl@^2.2.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" + resolved "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz" integrity sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww== dependencies: is-docker "^2.0.0" isarray@0.0.1: version "0.0.1" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz" integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== isarray@^2.0.5: version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" + resolved "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== isarray@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== isbinaryfile@^4.0.10: version "4.0.10" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" + resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz" integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== isbinaryfile@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-5.0.0.tgz#034b7e54989dab8986598cbcea41f66663c65234" + resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-5.0.0.tgz" integrity sha512-UDdnyGvMajJUWCkib7Cei/dvyJrrvo4FIrsvSFWdPpXSUorzXrDJ0S+X5Q4ZlasfPjca4yqCNNsjbCeiy8FFeg== isexe@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== isexe@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-3.1.1.tgz#4a407e2bd78ddfb14bea0c27c6f7072dde775f0d" + resolved "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz" integrity sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ== jackspeak@^2.3.5: version "2.3.6" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + resolved "https://registry.npmjs.org/jackspeak/-/jackspeak-2.3.6.tgz" integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== dependencies: "@isaacs/cliui" "^8.0.2" @@ -5230,7 +5207,7 @@ jackspeak@^2.3.5: jake@^10.8.5: version "10.8.7" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" + resolved "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz" integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w== dependencies: async "^3.2.3" @@ -5240,19 +5217,19 @@ jake@^10.8.5: js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@4.1.0, js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" js-yaml@^3.13.0, js-yaml@^3.14.1: version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" + resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== dependencies: argparse "^1.0.7" @@ -5260,71 +5237,71 @@ js-yaml@^3.13.0, js-yaml@^3.14.1: jsesc@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-3.0.2.tgz" integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== jsesc@~0.5.0: version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + resolved "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz" integrity sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA== json-buffer@3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== json-parse-better-errors@^1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz" integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-parse-even-better-errors@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz#02bb29fb5da90b5444581749c22cedd3597c6cb0" + resolved "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-3.0.1.tgz" integrity sha512-aatBvbL26wVUCLmbWdCpeu9iF5wOyWpagiKkInA+kfws3sWdBrTnsvN2CKcyCYyUrc7rebNBlK6+kteg7ksecg== json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema-traverse@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2" + resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz" integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug== json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stringify-nice@^1.1.4: version "1.1.4" - resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" + resolved "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz" integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw== json5@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + resolved "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz" integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== dependencies: minimist "^1.2.0" jsonfile@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz" integrity sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg== optionalDependencies: graceful-fs "^4.1.6" jsonfile@^6.0.1: version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" + resolved "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz" integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== dependencies: universalify "^2.0.0" @@ -5333,44 +5310,44 @@ jsonfile@^6.0.1: jsonparse@^1.2.0, jsonparse@^1.3.1: version "1.3.1" - resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== just-diff-apply@^5.2.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.5.0.tgz#771c2ca9fa69f3d2b54e7c3f5c1dfcbcc47f9f0f" + resolved "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.5.0.tgz" integrity sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw== just-diff@^5.0.1: version "5.2.0" - resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-5.2.0.tgz#60dca55891cf24cd4a094e33504660692348a241" + resolved "https://registry.npmjs.org/just-diff/-/just-diff-5.2.0.tgz" integrity sha512-6ufhP9SHjb7jibNFrNxyFZ6od3g+An6Ai9mhGRvcYe8UJlH0prseN64M+6ZBBUoKYHZsitDP42gAJ8+eVWr3lw== just-diff@^6.0.0: version "6.0.2" - resolved "https://registry.yarnpkg.com/just-diff/-/just-diff-6.0.2.tgz#03b65908543ac0521caf6d8eb85035f7d27ea285" + resolved "https://registry.npmjs.org/just-diff/-/just-diff-6.0.2.tgz" integrity sha512-S59eriX5u3/QhMNq3v/gm8Kd0w8OS6Tz2FS1NG4blv+z0MuQcBRJyFWjdovM0Rad4/P4aUPFtnkNjMjyMlMSYA== just-extend@^4.0.2: version "4.2.1" - resolved "https://registry.yarnpkg.com/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744" + resolved "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz" integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg== keyv@^4.0.0, keyv@^4.5.3: version "4.5.4" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz" integrity sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw== dependencies: json-buffer "3.0.1" kind-of@^6.0.3: version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== levn@^0.4.1: version "0.4.1" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -5378,7 +5355,7 @@ levn@^0.4.1: libnpmaccess@^8.0.1: version "8.0.1" - resolved "https://registry.yarnpkg.com/libnpmaccess/-/libnpmaccess-8.0.1.tgz#46bc5e3b76072dbb8d77803882d434508219f312" + resolved "https://registry.npmjs.org/libnpmaccess/-/libnpmaccess-8.0.1.tgz" integrity sha512-MWbnWIfxLKol+BgC1NR1as1JwM5ufZASd6CaENJjNe4JpJ0gx71xhpYY5SvNMZnVBahocYZWP6+SPQdyD0abEQ== dependencies: npm-package-arg "^11.0.1" @@ -5386,7 +5363,7 @@ libnpmaccess@^8.0.1: libnpmdiff@^6.0.3: version "6.0.3" - resolved "https://registry.yarnpkg.com/libnpmdiff/-/libnpmdiff-6.0.3.tgz#b8fe312e117389cce5cfffa088882ef8d97647eb" + resolved "https://registry.npmjs.org/libnpmdiff/-/libnpmdiff-6.0.3.tgz" integrity sha512-Xy4ZFueaYb7CNMxH7i/SoQDg7VyDOESFWZp/MU3f3qtAasEWhdTYBSHmb18ehp8MxTjox7c7U6ws7l3r+LTBFA== dependencies: "@npmcli/arborist" "^7.2.1" @@ -5400,9 +5377,9 @@ libnpmdiff@^6.0.3: tar "^6.2.0" libnpmexec@^7.0.3: - version "7.0.6" - resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-7.0.6.tgz#9489ff1401135d595285feaa120e88ca395e6207" - integrity sha512-TWvtfKyBQ/UiWl54uG7ALuLAGE5s6H6FTQKs7bAH5H19jtEgpxujQz6+iNNVOIMw7Cfw3Oat6RZqL8ZfXmJA9g== + version "7.0.7" + resolved "https://registry.yarnpkg.com/libnpmexec/-/libnpmexec-7.0.7.tgz#ffa67bfbb06f8881ada989d0aa5094e2033f4194" + integrity sha512-pkca7D8s84GqLQf8wh7QKWXUlUKc+BQlwztzCqjWqxVNYjl2sF+WRGB1cmVFBshJ82tm2etWkpmxmkrHus4uJQ== dependencies: "@npmcli/arborist" "^7.2.1" "@npmcli/run-script" "^7.0.2" @@ -5418,14 +5395,14 @@ libnpmexec@^7.0.3: libnpmfund@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/libnpmfund/-/libnpmfund-5.0.1.tgz#262a7a2b3a413a8e2bc4dfbee9d124f8012afe55" + resolved "https://registry.npmjs.org/libnpmfund/-/libnpmfund-5.0.1.tgz" integrity sha512-4s7jdjiYE4SCf87n5UOrRlsUpF0Xw8DWtBwP53EaNQdvqR1579nOv1nwakMLmkq5HFKNOJyZcAH/rf5wVRRz5A== dependencies: "@npmcli/arborist" "^7.2.1" libnpmhook@^10.0.0: version "10.0.0" - resolved "https://registry.yarnpkg.com/libnpmhook/-/libnpmhook-10.0.0.tgz#8aba53d124bac812fbd37350ee4a6a0e5ac0e3ff" + resolved "https://registry.npmjs.org/libnpmhook/-/libnpmhook-10.0.0.tgz" integrity sha512-PdEuOC1woGbrmxsvMdZCLYFirwtroIaxCzire/h55BfnqHOC73yQylIe9V2T9/1WL6f+PXIoZETR0dhJpLLFWQ== dependencies: aproba "^2.0.0" @@ -5433,7 +5410,7 @@ libnpmhook@^10.0.0: libnpmorg@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/libnpmorg/-/libnpmorg-6.0.1.tgz#10feef9831a701e66bc64acbc7451ee03cca08cd" + resolved "https://registry.npmjs.org/libnpmorg/-/libnpmorg-6.0.1.tgz" integrity sha512-yP3Moge82n3va2Y2dm7qWqwUGp2oZr+vPCyOr+YChGQx6zMtmUYdQA3nGMyF1mWWEmx2QCzyp2N6HmdTUnvRmQ== dependencies: aproba "^2.0.0" @@ -5441,7 +5418,7 @@ libnpmorg@^6.0.1: libnpmpack@^6.0.3: version "6.0.3" - resolved "https://registry.yarnpkg.com/libnpmpack/-/libnpmpack-6.0.3.tgz#65df2f32c524e381010617fc9c34afbf7d52a5b4" + resolved "https://registry.npmjs.org/libnpmpack/-/libnpmpack-6.0.3.tgz" integrity sha512-+XV6/KVGYJ2TvqeJfBhSJgrXWV3OiFPYCKGavNwNBFmAtRRrj7OoV6a/+C0HDo7D0PFEDktdBHW47EciUgHx+g== dependencies: "@npmcli/arborist" "^7.2.1" @@ -5450,9 +5427,9 @@ libnpmpack@^6.0.3: pacote "^17.0.4" libnpmpublish@^9.0.1: - version "9.0.3" - resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-9.0.3.tgz#644ee50543687eee79bcf2a5bd759a2ff6e60a0d" - integrity sha512-XoF0QgT1Ph9RMBfTwiwZeRN4Rs5t4w1POaRxaoVoWCMUqysswwlAPu3ZZJDNbh7asXBWXcXTJziDWkInhpbiBg== + version "9.0.4" + resolved "https://registry.yarnpkg.com/libnpmpublish/-/libnpmpublish-9.0.4.tgz#0222c14578088ca9a758585c36d8133b828c87ad" + integrity sha512-330o6pVsCCg77jQ/+kidyG/RiohXYQKpqmzOC4BjUDWcimb+mXptRBh1Kvy27/Zb/CStZLVrfgGc6tXf5+PE3Q== dependencies: ci-info "^4.0.0" normalize-package-data "^6.0.0" @@ -5460,19 +5437,19 @@ libnpmpublish@^9.0.1: npm-registry-fetch "^16.0.0" proc-log "^3.0.0" semver "^7.3.7" - sigstore "^2.1.0" + sigstore "^2.2.0" ssri "^10.0.5" libnpmsearch@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/libnpmsearch/-/libnpmsearch-7.0.0.tgz#f32225427e84e24489080a8d81ada5e0ca477241" + resolved "https://registry.npmjs.org/libnpmsearch/-/libnpmsearch-7.0.0.tgz" integrity sha512-gMSev/ZYP96C/73vVJSBfc/dfK65xKHs1QS/u/0NHmos19Td+XopKaMFbY4Xkfbdsau21DRTwM5kQdjuj9DbIw== dependencies: npm-registry-fetch "^16.0.0" libnpmteam@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/libnpmteam/-/libnpmteam-6.0.0.tgz#7c9947ee521757fa92c7399a6517f08928062e8b" + resolved "https://registry.npmjs.org/libnpmteam/-/libnpmteam-6.0.0.tgz" integrity sha512-d63ahIq7cZy3ZO8hhXiIigZTjaeV5WGfz1HkTbh6IfqNYNDhGiVLKu5ehOGdUQgUHcjxkdAwUzNNjMS1VJQ/mQ== dependencies: aproba "^2.0.0" @@ -5480,7 +5457,7 @@ libnpmteam@^6.0.0: libnpmversion@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/libnpmversion/-/libnpmversion-5.0.1.tgz#5fbc9b013b7188fac39f63e04691884e9e9897e1" + resolved "https://registry.npmjs.org/libnpmversion/-/libnpmversion-5.0.1.tgz" integrity sha512-OXiju5vvL22QUBKizAyo5d+FOUkt9xN9+UOPE8alsZw+O9gLjnJrMmRW8P8uxMLS6/K415em15meVEbjG26Fzg== dependencies: "@npmcli/git" "^5.0.3" @@ -5491,17 +5468,17 @@ libnpmversion@^5.0.1: lilconfig@3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-3.0.0.tgz#f8067feb033b5b74dab4602a5f5029420be749bc" + resolved "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz" integrity sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g== lines-and-columns@^1.1.6: version "1.2.4" - resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== lint-staged@^15.2.0: version "15.2.0" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-15.2.0.tgz#3111534ca58096a3c8f70b044b6e7fe21b36f859" + resolved "https://registry.npmjs.org/lint-staged/-/lint-staged-15.2.0.tgz" integrity sha512-TFZzUEV00f+2YLaVPWBWGAMq7So6yQx+GG8YRMDeOEIf95Zn5RyiLMsEiX4KTNl9vq/w+NqRJkLA1kPIo15ufQ== dependencies: chalk "5.3.0" @@ -5517,7 +5494,7 @@ lint-staged@^15.2.0: listr2@8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.0.0.tgz#aa7c230995f8ce378585f7c96c0c6d1cefa4700d" + resolved "https://registry.npmjs.org/listr2/-/listr2-8.0.0.tgz" integrity sha512-u8cusxAcyqAiQ2RhYvV7kRKNLgUvtObIbhOX2NCXqvp1UU32xIg5CT22ykS2TPKJXZWJwtK3IKLiqAGlGNE+Zg== dependencies: cli-truncate "^4.0.0" @@ -5529,7 +5506,7 @@ listr2@8.0.0: load-yaml-file@^0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/load-yaml-file/-/load-yaml-file-0.2.0.tgz#af854edaf2bea89346c07549122753c07372f64d" + resolved "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz" integrity sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw== dependencies: graceful-fs "^4.1.5" @@ -5539,71 +5516,71 @@ load-yaml-file@^0.2.0: locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz" integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== dependencies: p-locate "^5.0.0" lodash._reinterpolate@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz#0ccf2d89166af03b3663c796538b75ac6e114d9d" + resolved "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz" integrity sha512-xYHt68QRoYGjeeM/XOE1uJtvXQAgvszfBhjV4yvsQH0u2i9I6cI6c6/eG4Hh3UAOVn0y/xAXwmTzEay49Q//HA== lodash.camelcase@^4.3.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + resolved "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz" integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== lodash.get@^4.4.2: version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + resolved "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz" integrity sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ== lodash.isfunction@^3.0.9: version "3.0.9" - resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz#06de25df4db327ac931981d1bdb067e5af68d051" + resolved "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz" integrity sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw== lodash.isplainobject@^4.0.6: version "4.0.6" - resolved "https://registry.yarnpkg.com/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz#7c526a52d89b45c45cc690b88163be0497f550cb" + resolved "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz" integrity sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA== lodash.kebabcase@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz#8489b1cb0d29ff88195cceca448ff6d6cc295c36" + resolved "https://registry.npmjs.org/lodash.kebabcase/-/lodash.kebabcase-4.1.1.tgz" integrity sha512-N8XRTIMMqqDgSy4VLKPnJ/+hpGZN+PHQiJnSenYqPaVV/NCqEogTnAdZLQiGKhxX+JCs8waWq2t1XHWKOmlY8g== lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash.mergewith@^4.6.2: version "4.6.2" - resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz#617121f89ac55f59047c7aec1ccd6654c6590f55" + resolved "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.2.tgz" integrity sha512-GK3g5RPZWTRSeLSpgP8Xhra+pnjBC56q9FZYe1d5RN3TJ35dbkGy3YqBSMbyCrlbi+CM9Z3Jk5yTL7RCsqboyQ== lodash.snakecase@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz#39d714a35357147837aefd64b5dcbb16becd8f8d" + resolved "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz" integrity sha512-QZ1d4xoBHYUeuouhEq3lk3Uq7ldgyFXGBhg04+oRLnIz8o9T65Eh+8YdroUwn846zchkA9yDsDl5CVVaV2nqYw== lodash.startcase@^4.4.0: version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" + resolved "https://registry.npmjs.org/lodash.startcase/-/lodash.startcase-4.4.0.tgz" integrity sha512-+WKqsK294HMSc2jEbNgpHpd0JfIBhp7rEV4aqXWqFr6AlXov+SlcgB1Fv01y2kGe3Gc8nMW7VA0SrGuSkRfIEg== lodash.template@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.template/-/lodash.template-4.5.0.tgz#f976195cf3f347d0d5f52483569fe8031ccce8ab" + resolved "https://registry.npmjs.org/lodash.template/-/lodash.template-4.5.0.tgz" integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== dependencies: lodash._reinterpolate "^3.0.0" @@ -5611,29 +5588,29 @@ lodash.template@^4.5.0: lodash.templatesettings@^4.0.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + resolved "https://registry.npmjs.org/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz" integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== dependencies: lodash._reinterpolate "^3.0.0" lodash.uniq@^4.5.0: version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + resolved "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== lodash.upperfirst@^4.3.1: version "4.3.1" - resolved "https://registry.yarnpkg.com/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz#1365edf431480481ef0d1c68957a5ed99d49f7ce" + resolved "https://registry.npmjs.org/lodash.upperfirst/-/lodash.upperfirst-4.3.1.tgz" integrity sha512-sReKOYJIJf74dhJONhU4e0/shzi1trVbSWDOhKYE5XV2O+H7Sb2Dihwuc7xWxVl+DgFPyTqIN3zMfT9cq5iWDg== lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.15, lodash@^4.17.21: version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + resolved "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== log-symbols@4.1.0, log-symbols@^4.0.0, log-symbols@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + resolved "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz" integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== dependencies: chalk "^4.1.0" @@ -5641,7 +5618,7 @@ log-symbols@4.1.0, log-symbols@^4.0.0, log-symbols@^4.1.0: log-update@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/log-update/-/log-update-6.0.0.tgz#0ddeb7ac6ad658c944c1de902993fce7c33f5e59" + resolved "https://registry.npmjs.org/log-update/-/log-update-6.0.0.tgz" integrity sha512-niTvB4gqvtof056rRIrTZvjNYE4rCUzO6X/X+kYjd7WFxXeJ0NwEFnRxX6ehkvv3jTwrXnNdtAak5XYZuIyPFw== dependencies: ansi-escapes "^6.2.0" @@ -5652,53 +5629,53 @@ log-update@^6.0.0: loupe@^2.3.6: version "2.3.7" - resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.7.tgz#6e69b7d4db7d3ab436328013d37d1c8c3540c697" + resolved "https://registry.npmjs.org/loupe/-/loupe-2.3.7.tgz" integrity sha512-zSMINGVYkdpYSOBmLi0D1Uo7JU9nVdQKrHxC8eYlV+9YKK9WePqAlL7lSlorG/U2Fw1w0hTBmaa/jrQ3UbPHtA== dependencies: get-func-name "^2.0.1" lower-case@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + resolved "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz" integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== dependencies: tslib "^2.0.3" lowercase-keys@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== lru-cache@^10.0.1: version "10.1.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.1.0.tgz#2098d41c2dc56500e6c88584aa656c84de7d0484" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.1.0.tgz" integrity sha512-/1clY/ui8CzjKFyjdvwPWJUYKiFVXG2I2cY0ssG7h4+hwk+XOIX7ZSG9Q7TW8TW3Kp3BUSqgFWBLgL4PJ+Blag== lru-cache@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz" integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== dependencies: yallist "^4.0.0" lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: version "7.18.3" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-7.18.3.tgz" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== "lru-cache@^9.1.1 || ^10.0.0": version "10.0.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-10.0.1.tgz#0a3be479df549cca0e5d693ac402ff19537a6b7a" + resolved "https://registry.npmjs.org/lru-cache/-/lru-cache-10.0.1.tgz" integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== make-error@^1.1.1: version "1.3.6" - resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== make-fetch-happen@^10.0.1: version "10.2.1" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz" integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== dependencies: agentkeepalive "^4.2.1" @@ -5720,7 +5697,7 @@ make-fetch-happen@^10.0.1: make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, make-fetch-happen@^11.0.3, make-fetch-happen@^11.1.1: version "11.1.1" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz#85ceb98079584a9523d4bf71d32996e7e208549f" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-11.1.1.tgz" integrity sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w== dependencies: agentkeepalive "^4.2.1" @@ -5741,7 +5718,7 @@ make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, make-fetch-happen@^11.0.3, make-fetch-happen@^13.0.0: version "13.0.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz#705d6f6cbd7faecb8eac2432f551e49475bfedf0" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-13.0.0.tgz" integrity sha512-7ThobcL8brtGo9CavByQrQi+23aIfgYU++wg4B87AIS8Rb2ZBt/MEaDqzA00Xwv/jUjAjYkLHjVolYuTLKda2A== dependencies: "@npmcli/agent" "^2.0.0" @@ -5758,7 +5735,7 @@ make-fetch-happen@^13.0.0: make-fetch-happen@^9.1.0: version "9.1.0" - resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" + resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz" integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== dependencies: agentkeepalive "^4.1.3" @@ -5780,17 +5757,17 @@ make-fetch-happen@^9.1.0: map-obj@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz" integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== map-obj@^4.0.0: version "4.3.0" - resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + resolved "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz" integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== "mem-fs-editor@^8.1.2 || ^9.0.0", mem-fs-editor@^9.0.0: version "9.7.0" - resolved "https://registry.yarnpkg.com/mem-fs-editor/-/mem-fs-editor-9.7.0.tgz#dbb458b8acb885c84013645e93f71aa267a7fdf6" + resolved "https://registry.npmjs.org/mem-fs-editor/-/mem-fs-editor-9.7.0.tgz" integrity sha512-ReB3YD24GNykmu4WeUL/FDIQtkoyGB6zfJv60yfCo3QjKeimNcTqv2FT83bP0ccs6uu+sm5zyoBlspAzigmsdg== dependencies: binaryextensions "^4.16.0" @@ -5806,7 +5783,7 @@ map-obj@^4.0.0: "mem-fs@^1.2.0 || ^2.0.0": version "2.3.0" - resolved "https://registry.yarnpkg.com/mem-fs/-/mem-fs-2.3.0.tgz#d38bdd729ab0316bfb56d0d0ff669f91e7078463" + resolved "https://registry.npmjs.org/mem-fs/-/mem-fs-2.3.0.tgz" integrity sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw== dependencies: "@types/node" "^15.6.2" @@ -5816,7 +5793,7 @@ map-obj@^4.0.0: meow@^8.0.0, meow@^8.1.2: version "8.1.2" - resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" + resolved "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz" integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== dependencies: "@types/minimist" "^1.2.0" @@ -5833,17 +5810,17 @@ meow@^8.0.0, meow@^8.1.2: merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" + resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== micromatch@4.0.5, micromatch@^4.0.2, micromatch@^4.0.4: version "4.0.5" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" + resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz" integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA== dependencies: braces "^3.0.2" @@ -5851,67 +5828,67 @@ micromatch@4.0.5, micromatch@^4.0.2, micromatch@^4.0.4: mimic-fn@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== mimic-fn@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" + resolved "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz" integrity sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw== mimic-response@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== mimic-response@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" + resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== min-indent@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== minimatch@5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz" integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== dependencies: brace-expansion "^2.0.1" minimatch@9.0.3, minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3: version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz" integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== dependencies: brace-expansion "^2.0.1" minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" minimatch@^5.0.1: version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz" integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== dependencies: brace-expansion "^2.0.1" minimatch@^7.2.0: version "7.4.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.6.tgz#845d6f254d8f4a5e4fd6baf44d5f10c8448365fb" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-7.4.6.tgz" integrity sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw== dependencies: brace-expansion "^2.0.1" minimist-options@4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz" integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== dependencies: arrify "^1.0.1" @@ -5920,12 +5897,12 @@ minimist-options@4.1.0: minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== minipass-collect@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz" integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== dependencies: minipass "^3.0.0" @@ -5939,7 +5916,7 @@ minipass-collect@^2.0.1: minipass-fetch@^1.3.2, minipass-fetch@^1.4.1: version "1.4.1" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" + resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz" integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== dependencies: minipass "^3.1.0" @@ -5950,7 +5927,7 @@ minipass-fetch@^1.3.2, minipass-fetch@^1.4.1: minipass-fetch@^2.0.3: version "2.1.2" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add" + resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz" integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== dependencies: minipass "^3.1.6" @@ -5961,7 +5938,7 @@ minipass-fetch@^2.0.3: minipass-fetch@^3.0.0: version "3.0.4" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7" + resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-3.0.4.tgz" integrity sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg== dependencies: minipass "^7.0.3" @@ -5972,14 +5949,14 @@ minipass-fetch@^3.0.0: minipass-flush@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + resolved "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz" integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== dependencies: minipass "^3.0.0" minipass-json-stream@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" + resolved "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz" integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== dependencies: jsonparse "^1.3.1" @@ -5987,38 +5964,38 @@ minipass-json-stream@^1.0.1: minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: version "1.2.4" - resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + resolved "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz" integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== dependencies: minipass "^3.0.0" minipass-sized@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + resolved "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz" integrity sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g== dependencies: minipass "^3.0.0" minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3, minipass@^3.1.6: version "3.3.6" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz" integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== dependencies: yallist "^4.0.0" minipass@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" + resolved "https://registry.npmjs.org/minipass/-/minipass-5.0.0.tgz" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== "minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.2, minipass@^7.0.3, minipass@^7.0.4: version "7.0.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + resolved "https://registry.npmjs.org/minipass/-/minipass-7.0.4.tgz" integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== minizlib@^2.0.0, minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== dependencies: minipass "^3.0.0" @@ -6026,7 +6003,7 @@ minizlib@^2.0.0, minizlib@^2.1.1, minizlib@^2.1.2: mkdirp-infer-owner@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316" + resolved "https://registry.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz" integrity sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw== dependencies: chownr "^2.0.0" @@ -6035,12 +6012,12 @@ mkdirp-infer-owner@^2.0.0: mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== mocha@^10.2.0: version "10.2.0" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" + resolved "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz" integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== dependencies: ansi-colors "4.1.1" @@ -6067,17 +6044,17 @@ mocha@^10.2.0: ms@2.1.2: version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== ms@2.1.3, ms@^2.0.0, ms@^2.1.1, ms@^2.1.2: version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== multimatch@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6" + resolved "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz" integrity sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA== dependencies: "@types/minimatch" "^3.0.3" @@ -6088,42 +6065,42 @@ multimatch@^5.0.0: mute-stream@0.0.8: version "0.0.8" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz" integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== mute-stream@~1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" + resolved "https://registry.npmjs.org/mute-stream/-/mute-stream-1.0.0.tgz" integrity sha512-avsJQhyd+680gKXyG/sQc0nXaC6rBkPOfyHYcFb9+hdkqQkR9bdnkJ0AMZhke0oesPqIO+mFFJ+IdBc7mst4IA== nanoid@3.3.3: version "3.3.3" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" + resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz" integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== natural-compare-lite@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" + resolved "https://registry.npmjs.org/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz" integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== natural-orderby@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/natural-orderby/-/natural-orderby-2.0.3.tgz#8623bc518ba162f8ff1cdb8941d74deb0fdcc016" + resolved "https://registry.npmjs.org/natural-orderby/-/natural-orderby-2.0.3.tgz" integrity sha512-p7KTHxU0CUrcOXe62Zfrb5Z13nLvPhSWR/so3kFulUQU0sgUll2Z0LwpsLN351eOOD+hRGu/F1g+6xDfPeD++Q== negotiator@^0.6.2, negotiator@^0.6.3: version "0.6.3" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== nise@^5.1.4: version "5.1.4" - resolved "https://registry.yarnpkg.com/nise/-/nise-5.1.4.tgz#491ce7e7307d4ec546f5a659b2efe94a18b4bbc0" + resolved "https://registry.npmjs.org/nise/-/nise-5.1.4.tgz" integrity sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg== dependencies: "@sinonjs/commons" "^2.0.0" @@ -6134,7 +6111,7 @@ nise@^5.1.4: no-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + resolved "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz" integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== dependencies: lower-case "^2.0.2" @@ -6142,14 +6119,14 @@ no-case@^3.0.4: node-fetch@^2.6.7: version "2.7.0" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.7.0.tgz#d0f0fa6e3e2dc1d27efcd8ad99d550bda94d187d" + resolved "https://registry.npmjs.org/node-fetch/-/node-fetch-2.7.0.tgz" integrity sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A== dependencies: whatwg-url "^5.0.0" node-gyp@^10.0.0, node-gyp@^10.0.1: version "10.0.1" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-10.0.1.tgz#205514fc19e5830fa991e4a689f9e81af377a966" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-10.0.1.tgz" integrity sha512-gg3/bHehQfZivQVfqIyy8wTdSymF9yTyP4CJifK73imyNMU8AIGQE2pUa7dNWfmMeG9cDVF2eehiRMv0LC1iAg== dependencies: env-paths "^2.2.0" @@ -6165,7 +6142,7 @@ node-gyp@^10.0.0, node-gyp@^10.0.1: node-gyp@^8.2.0: version "8.4.1" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz" integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== dependencies: env-paths "^2.2.0" @@ -6181,7 +6158,7 @@ node-gyp@^8.2.0: node-gyp@^9.0.0: version "9.4.0" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.4.0.tgz#2a7a91c7cba4eccfd95e949369f27c9ba704f369" + resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-9.4.0.tgz" integrity sha512-dMXsYP6gc9rRbejLXmTbVRYjAHw7ppswsKyMxuxJxxOHzluIO1rGp9TOQgjFJ+2MCqcOcQTOPB/8Xwhr+7s4Eg== dependencies: env-paths "^2.2.0" @@ -6198,28 +6175,28 @@ node-gyp@^9.0.0: nopt@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz" integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== dependencies: abbrev "1" nopt@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d" + resolved "https://registry.npmjs.org/nopt/-/nopt-6.0.0.tgz" integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g== dependencies: abbrev "^1.0.0" nopt@^7.0.0, nopt@^7.2.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-7.2.0.tgz#067378c68116f602f552876194fd11f1292503d7" + resolved "https://registry.npmjs.org/nopt/-/nopt-7.2.0.tgz" integrity sha512-CVDtwCdhYIvnAzFoJ6NJ6dX3oga9/HyciQDnG1vQDjSLMeKLJ4A93ZqYKDrgYSr1FBY5/hMYC+2VCi24pgpkGA== dependencies: abbrev "^2.0.0" normalize-package-data@^2.5.0: version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: hosted-git-info "^2.1.4" @@ -6229,7 +6206,7 @@ normalize-package-data@^2.5.0: normalize-package-data@^3.0.0, normalize-package-data@^3.0.3: version "3.0.3" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz" integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== dependencies: hosted-git-info "^4.0.1" @@ -6239,7 +6216,7 @@ normalize-package-data@^3.0.0, normalize-package-data@^3.0.3: normalize-package-data@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-5.0.0.tgz#abcb8d7e724c40d88462b84982f7cbf6859b4588" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-5.0.0.tgz" integrity sha512-h9iPVIfrVZ9wVYQnxFgtw1ugSvGEMOlyPWWtm8BMJhnwyEL/FLbYbTY3V3PpjI/BUK67n9PEWDu6eHzu1fB15Q== dependencies: hosted-git-info "^6.0.0" @@ -6249,7 +6226,7 @@ normalize-package-data@^5.0.0: normalize-package-data@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-6.0.0.tgz#68a96b3c11edd462af7189c837b6b1064a484196" + resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-6.0.0.tgz" integrity sha512-UL7ELRVxYBHBgYEtZCXjxuD5vPxnmvMGq0jp/dGPKKrN7tfsBh2IY7TlJ15WWwdjRWD3RJbnsygUurTK3xkPkg== dependencies: hosted-git-info "^7.0.0" @@ -6259,65 +6236,65 @@ normalize-package-data@^6.0.0: normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== normalize-url@^6.0.1: version "6.1.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== npm-audit-report@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/npm-audit-report/-/npm-audit-report-5.0.0.tgz#83ac14aeff249484bde81eff53c3771d5048cf95" + resolved "https://registry.npmjs.org/npm-audit-report/-/npm-audit-report-5.0.0.tgz" integrity sha512-EkXrzat7zERmUhHaoren1YhTxFwsOu5jypE84k6632SXTHcQE1z8V51GC6GVZt8LxkC+tbBcKMUBZAgk8SUSbw== npm-bundled@^1.1.1: version "1.1.2" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" + resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz" integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== dependencies: npm-normalize-package-bin "^1.0.1" npm-bundled@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-3.0.0.tgz#7e8e2f8bb26b794265028491be60321a25a39db7" + resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-3.0.0.tgz" integrity sha512-Vq0eyEQy+elFpzsKjMss9kxqb9tG3YHg4dsyWuUENuzvSUWe1TCnW/vV9FkhvBk/brEDoDiVd+M1Btosa6ImdQ== dependencies: npm-normalize-package-bin "^3.0.0" npm-install-checks@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4" + resolved "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz" integrity sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w== dependencies: semver "^7.1.1" npm-install-checks@^6.0.0, npm-install-checks@^6.2.0, npm-install-checks@^6.3.0: version "6.3.0" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe" + resolved "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-6.3.0.tgz" integrity sha512-W29RiK/xtpCGqn6f3ixfRYGk+zRyr+Ew9F2E20BfXxT5/euLdA/Nm7fO7OeTGuAmTs30cpgInyJ0cYe708YTZw== dependencies: semver "^7.1.1" npm-normalize-package-bin@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== npm-normalize-package-bin@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz#9447a1adaaf89d8ad0abe24c6c84ad614a675fff" + resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz" integrity sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ== npm-normalize-package-bin@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz#25447e32a9a7de1f51362c61a559233b89947832" + resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-3.0.1.tgz" integrity sha512-dMxCf+zZ+3zeQZXKxmyuCKlIDPGuv8EF940xbkC4kQVDTtqoh6rJFO+JTKSA6/Rwi0getWmtuy4Itup0AMcaDQ== npm-package-arg@^10.0.0: version "10.1.0" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-10.1.0.tgz#827d1260a683806685d17193073cc152d3c7e9b1" + resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-10.1.0.tgz" integrity sha512-uFyyCEmgBfZTtrKk/5xDfHp6+MdrqGotX/VoOyEEl3mBwiEE5FlBaePanazJSVMPT7vKepcjYBY2ztg9A3yPIA== dependencies: hosted-git-info "^6.0.0" @@ -6327,7 +6304,7 @@ npm-package-arg@^10.0.0: npm-package-arg@^11.0.0, npm-package-arg@^11.0.1: version "11.0.1" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-11.0.1.tgz#f208b0022c29240a1c532a449bdde3f0a4708ebc" + resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-11.0.1.tgz" integrity sha512-M7s1BD4NxdAvBKUPqqRW957Xwcl/4Zvo8Aj+ANrzvIPzGJZElrH7Z//rSaec2ORcND6FHHLnZeY8qgTpXDMFQQ== dependencies: hosted-git-info "^7.0.0" @@ -6337,7 +6314,7 @@ npm-package-arg@^11.0.0, npm-package-arg@^11.0.1: npm-package-arg@^8.0.1, npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: version "8.1.5" - resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44" + resolved "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz" integrity sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q== dependencies: hosted-git-info "^4.0.1" @@ -6346,7 +6323,7 @@ npm-package-arg@^8.0.1, npm-package-arg@^8.1.2, npm-package-arg@^8.1.5: npm-packlist@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-3.0.0.tgz#0370df5cfc2fcc8f79b8f42b37798dd9ee32c2a9" + resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz" integrity sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ== dependencies: glob "^7.1.6" @@ -6356,21 +6333,21 @@ npm-packlist@^3.0.0: npm-packlist@^7.0.0: version "7.0.4" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-7.0.4.tgz#033bf74110eb74daf2910dc75144411999c5ff32" + resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-7.0.4.tgz" integrity sha512-d6RGEuRrNS5/N84iglPivjaJPxhDbZmlbTwTDX2IbcRHG5bZCdtysYMhwiPvcF4GisXHGn7xsxv+GQ7T/02M5Q== dependencies: ignore-walk "^6.0.0" npm-packlist@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-8.0.0.tgz#4e7f51fe1d5e69b19508ed8dc6cd3ae2e7b38c17" + resolved "https://registry.npmjs.org/npm-packlist/-/npm-packlist-8.0.0.tgz" integrity sha512-ErAGFB5kJUciPy1mmx/C2YFbvxoJ0QJ9uwkCZOeR6CqLLISPZBOiFModAbSXnjjlwW5lOhuhXva+fURsSGJqyw== dependencies: ignore-walk "^6.0.0" npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.0, npm-pick-manifest@^6.1.1: version "6.1.1" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz#7b5484ca2c908565f43b7f27644f36bb816f5148" + resolved "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz" integrity sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA== dependencies: npm-install-checks "^4.0.0" @@ -6380,7 +6357,7 @@ npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.0, npm-pick-manifest@^6.1.1: npm-pick-manifest@^8.0.0: version "8.0.2" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz#2159778d9c7360420c925c1a2287b5a884c713aa" + resolved "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz" integrity sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg== dependencies: npm-install-checks "^6.0.0" @@ -6390,7 +6367,7 @@ npm-pick-manifest@^8.0.0: npm-pick-manifest@^9.0.0: version "9.0.0" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz#f87a4c134504a2c7931f2bb8733126e3c3bb7e8f" + resolved "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-9.0.0.tgz" integrity sha512-VfvRSs/b6n9ol4Qb+bDwNGUXutpy76x6MARw/XssevE0TnctIKcmklJZM5Z7nqs5z5aW+0S63pgCNbpkUNNXBg== dependencies: npm-install-checks "^6.0.0" @@ -6400,7 +6377,7 @@ npm-pick-manifest@^9.0.0: npm-profile@^9.0.0: version "9.0.0" - resolved "https://registry.yarnpkg.com/npm-profile/-/npm-profile-9.0.0.tgz#ffcfa4e3e1b1cb44b17c192f75b44b24b4aae645" + resolved "https://registry.npmjs.org/npm-profile/-/npm-profile-9.0.0.tgz" integrity sha512-qv43ixsJ7vndzfxD3XsPNu1Njck6dhO7q1efksTo+0DiOQysKSOsIhK/qDD1/xO2o+2jDOA4Rv/zOJ9KQFs9nw== dependencies: npm-registry-fetch "^16.0.0" @@ -6408,7 +6385,7 @@ npm-profile@^9.0.0: npm-registry-fetch@^12.0.0, npm-registry-fetch@^12.0.1: version "12.0.2" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-12.0.2.tgz#ae583bb3c902a60dae43675b5e33b5b1f6159f1e" + resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.2.tgz" integrity sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA== dependencies: make-fetch-happen "^10.0.1" @@ -6420,7 +6397,7 @@ npm-registry-fetch@^12.0.0, npm-registry-fetch@^12.0.1: npm-registry-fetch@^14.0.0: version "14.0.5" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz#fe7169957ba4986a4853a650278ee02e568d115d" + resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-14.0.5.tgz" integrity sha512-kIDMIo4aBm6xg7jOttupWZamsZRkAqMqwqqbVXnUqstY5+tapvv6bkH/qMR76jdgV+YljEUCyWx3hRYMrJiAgA== dependencies: make-fetch-happen "^11.0.0" @@ -6433,7 +6410,7 @@ npm-registry-fetch@^14.0.0: npm-registry-fetch@^16.0.0, npm-registry-fetch@^16.1.0: version "16.1.0" - resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz#10227b7b36c97bc1cf2902a24e4f710cfe62803c" + resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-16.1.0.tgz" integrity sha512-PQCELXKt8Azvxnt5Y85GseQDJJlglTFM9L9U9gkv2y4e9s0k3GVDdOx3YoB6gm2Do0hlkzC39iCGXby+Wve1Bw== dependencies: make-fetch-happen "^13.0.0" @@ -6446,33 +6423,33 @@ npm-registry-fetch@^16.0.0, npm-registry-fetch@^16.1.0: npm-run-path@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" npm-run-path@^5.1.0: version "5.1.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.1.0.tgz#bc62f7f3f6952d9894bd08944ba011a6ee7b7e00" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.1.0.tgz" integrity sha512-sJOdmRGrY2sjNTRMbSvluQqg+8X7ZK61yvzBEIDhz4f8z1TZFYABsqjjCBd/0PUNE9M6QDgHJXQkGUEm7Q+l9Q== dependencies: path-key "^4.0.0" npm-run-path@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.2.0.tgz#224cdd22c755560253dd71b83a1ef2f758b2e955" + resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.2.0.tgz" integrity sha512-W4/tgAXFqFA0iL7fk0+uQ3g7wkL8xJmx3XdK0VGb4cHW//eZTtKGvFBBoRKVTpY7n6ze4NL9ly7rgXcHufqXKg== dependencies: path-key "^4.0.0" npm-user-validate@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/npm-user-validate/-/npm-user-validate-2.0.0.tgz#7b69bbbff6f7992a1d9a8968d52fd6b6db5431b6" + resolved "https://registry.npmjs.org/npm-user-validate/-/npm-user-validate-2.0.0.tgz" integrity sha512-sSWeqAYJ2dUPStJB+AEj0DyLRltr/f6YNcvCA7phkB8/RMLMnVsQ41GMwHo/ERZLYNDsyB2wPm7pZo1mqPOl7Q== npm@10.2.3: version "10.2.3" - resolved "https://registry.yarnpkg.com/npm/-/npm-10.2.3.tgz#f30ed73c400685ab52bf3f21cd3fcab1c5b007ce" + resolved "https://registry.npmjs.org/npm/-/npm-10.2.3.tgz" integrity sha512-GbUui/rHTl0mW8HhJSn4A0Xg89yCR3I9otgJT1i0z1QBPOVlgbh6rlcUTpHT8Gut9O1SJjWRUU0nEcAymhG2tQ== dependencies: "@isaacs/string-locale-compare" "^1.1.0" @@ -6549,7 +6526,7 @@ npm@10.2.3: npmlog@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz" integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== dependencies: are-we-there-yet "^2.0.0" @@ -6559,7 +6536,7 @@ npmlog@^5.0.1: npmlog@^6.0.0: version "6.0.2" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz" integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== dependencies: are-we-there-yet "^3.0.0" @@ -6569,7 +6546,7 @@ npmlog@^6.0.0: npmlog@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-7.0.1.tgz#7372151a01ccb095c47d8bf1d0771a4ff1f53ac8" + resolved "https://registry.npmjs.org/npmlog/-/npmlog-7.0.1.tgz" integrity sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg== dependencies: are-we-there-yet "^4.0.0" @@ -6579,27 +6556,27 @@ npmlog@^7.0.1: object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== object-inspect@^1.12.3, object-inspect@^1.9.0: version "1.13.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.0.tgz#42695d3879e1cd5bda6df5062164d80c996e23e2" + resolved "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.0.tgz" integrity sha512-HQ4J+ic8hKrgIt3mqk6cVOVrW2ozL4KdvHlqpBv9vDYWx9ysAgENAdvy4FoGF+KFdhR7nQTNm5J0ctAeOwn+3g== object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object-treeify@^1.1.33: version "1.1.33" - resolved "https://registry.yarnpkg.com/object-treeify/-/object-treeify-1.1.33.tgz#f06fece986830a3cba78ddd32d4c11d1f76cdf40" + resolved "https://registry.npmjs.org/object-treeify/-/object-treeify-1.1.33.tgz" integrity sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A== object.assign@^4.1.4: version "4.1.4" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: call-bind "^1.0.2" @@ -6609,7 +6586,7 @@ object.assign@^4.1.4: object.fromentries@^2.0.7: version "2.0.7" - resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + resolved "https://registry.npmjs.org/object.fromentries/-/object.fromentries-2.0.7.tgz" integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== dependencies: call-bind "^1.0.2" @@ -6618,7 +6595,7 @@ object.fromentries@^2.0.7: object.groupby@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.1.tgz#d41d9f3c8d6c778d9cbac86b4ee9f5af103152ee" + resolved "https://registry.npmjs.org/object.groupby/-/object.groupby-1.0.1.tgz" integrity sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ== dependencies: call-bind "^1.0.2" @@ -6628,7 +6605,7 @@ object.groupby@^1.0.1: object.values@^1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" + resolved "https://registry.npmjs.org/object.values/-/object.values-1.1.7.tgz" integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== dependencies: call-bind "^1.0.2" @@ -6637,7 +6614,7 @@ object.values@^1.1.7: oclif@^4.3.6: version "4.3.6" - resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.3.6.tgz#28893ee4ec9ba3198d8c29361ec93221884efa40" + resolved "https://registry.npmjs.org/oclif/-/oclif-4.3.6.tgz" integrity sha512-TVctwFVywaufWKi4dKTnn1J7XIT9SiCfb0Hm1IKmeGHp/UB4RKAkBcD33AvlZBtOlWGZZAWTFbaoXlMK4T+f+Q== dependencies: "@aws-sdk/client-cloudfront" "^3.468.0" @@ -6662,28 +6639,28 @@ oclif@^4.3.6: once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== dependencies: wrappy "1" onetime@^5.1.0, onetime@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" + resolved "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz" integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== dependencies: mimic-fn "^2.1.0" onetime@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" + resolved "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz" integrity sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ== dependencies: mimic-fn "^4.0.0" optionator@^0.9.3: version "0.9.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" + resolved "https://registry.npmjs.org/optionator/-/optionator-0.9.3.tgz" integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== dependencies: "@aashutoshrathi/word-wrap" "^1.2.3" @@ -6695,7 +6672,7 @@ optionator@^0.9.3: ora@^5.4.1: version "5.4.1" - resolved "https://registry.yarnpkg.com/ora/-/ora-5.4.1.tgz#1b2678426af4ac4a509008e5e4ac9e9959db9e18" + resolved "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz" integrity sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ== dependencies: bl "^4.1.0" @@ -6710,57 +6687,57 @@ ora@^5.4.1: os-tmpdir@~1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + resolved "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz" integrity sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g== p-cancelable@^2.0.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz" integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== p-finally@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz" integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz" integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== dependencies: p-limit "^2.2.0" p-locate@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" p-map@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" p-queue@^6.6.2: version "6.6.2" - resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" + resolved "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz" integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== dependencies: eventemitter3 "^4.0.4" @@ -6768,14 +6745,14 @@ p-queue@^6.6.2: p-timeout@^3.2.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz" integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== dependencies: p-finally "^1.0.0" p-transform@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/p-transform/-/p-transform-1.3.0.tgz#2da960ba92c6a56efbe75cbd1edf3ea7b3191049" + resolved "https://registry.npmjs.org/p-transform/-/p-transform-1.3.0.tgz" integrity sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg== dependencies: debug "^4.3.2" @@ -6783,12 +6760,12 @@ p-transform@^1.3.0: p-try@^2.0.0: version "2.2.0" - resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== pacote@^12.0.0, pacote@^12.0.2: version "12.0.3" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-12.0.3.tgz#b6f25868deb810e7e0ddf001be88da2bcaca57c7" + resolved "https://registry.npmjs.org/pacote/-/pacote-12.0.3.tgz" integrity sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow== dependencies: "@npmcli/git" "^2.1.0" @@ -6813,7 +6790,7 @@ pacote@^12.0.0, pacote@^12.0.2: pacote@^15.2.0: version "15.2.0" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-15.2.0.tgz#0f0dfcc3e60c7b39121b2ac612bf8596e95344d3" + resolved "https://registry.npmjs.org/pacote/-/pacote-15.2.0.tgz" integrity sha512-rJVZeIwHTUta23sIZgEIM62WYwbmGbThdbnkt81ravBplQv+HjyroqnLRNH2+sLJHcGZmLRmhPwACqhfTcOmnA== dependencies: "@npmcli/git" "^4.0.0" @@ -6861,7 +6838,7 @@ pacote@^17.0.0, pacote@^17.0.4: param-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/param-case/-/param-case-3.0.4.tgz#7d17fe4aa12bde34d4a77d91acfb6219caad01c5" + resolved "https://registry.npmjs.org/param-case/-/param-case-3.0.4.tgz" integrity sha512-RXlj7zCYokReqWpOPH9oYivUzLYZ5vAPIfEmCTNViosC78F8F0H9y7T7gG2M39ymgutxF5gcFEsyZQSph9Bp3A== dependencies: dot-case "^3.0.4" @@ -6869,14 +6846,14 @@ param-case@^3.0.4: parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz" integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== dependencies: callsites "^3.0.0" parse-conflict-json@^2.0.1: version "2.0.2" - resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz#3d05bc8ffe07d39600dc6436c6aefe382033d323" + resolved "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz" integrity sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA== dependencies: json-parse-even-better-errors "^2.3.1" @@ -6885,7 +6862,7 @@ parse-conflict-json@^2.0.1: parse-conflict-json@^3.0.0, parse-conflict-json@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz#67dc55312781e62aa2ddb91452c7606d1969960c" + resolved "https://registry.npmjs.org/parse-conflict-json/-/parse-conflict-json-3.0.1.tgz" integrity sha512-01TvEktc68vwbJOtWZluyWeVGWjP+bZwXtPDMQVbBKzbJ/vZBif0L69KH1+cHv1SZ6e0FKLvjyHe8mqsIqYOmw== dependencies: json-parse-even-better-errors "^3.0.0" @@ -6894,7 +6871,7 @@ parse-conflict-json@^3.0.0, parse-conflict-json@^3.0.1: parse-json@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz" integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== dependencies: error-ex "^1.3.1" @@ -6902,7 +6879,7 @@ parse-json@^4.0.0: parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" @@ -6912,7 +6889,7 @@ parse-json@^5.0.0, parse-json@^5.2.0: pascal-case@^3.1.2: version "3.1.2" - resolved "https://registry.yarnpkg.com/pascal-case/-/pascal-case-3.1.2.tgz#b48e0ef2b98e205e7c1dae747d0b1508237660eb" + resolved "https://registry.npmjs.org/pascal-case/-/pascal-case-3.1.2.tgz" integrity sha512-uWlGT3YSnK9x3BQJaOdcZwrnV6hPpd8jFH1/ucpiLRPh/2zCVJKS19E4GvYHvaCcACn3foXZ0cLB9Wrx1KGe5g== dependencies: no-case "^3.0.4" @@ -6920,7 +6897,7 @@ pascal-case@^3.1.2: password-prompt@^1.1.3: version "1.1.3" - resolved "https://registry.yarnpkg.com/password-prompt/-/password-prompt-1.1.3.tgz#05e539f4e7ca4d6c865d479313f10eb9db63ee5f" + resolved "https://registry.npmjs.org/password-prompt/-/password-prompt-1.1.3.tgz" integrity sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw== dependencies: ansi-escapes "^4.3.2" @@ -6928,7 +6905,7 @@ password-prompt@^1.1.3: path-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/path-case/-/path-case-3.0.4.tgz#9168645334eb942658375c56f80b4c0cb5f82c6f" + resolved "https://registry.npmjs.org/path-case/-/path-case-3.0.4.tgz" integrity sha512-qO4qCFjXqVTrcbPt/hQfhTQ+VhFsqNKOPtytgNKkKxSoEp3XPUQ8ObFuePylOIok5gjn69ry8XiULxCwot3Wfg== dependencies: dot-case "^3.0.4" @@ -6936,32 +6913,32 @@ path-case@^3.0.4: path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-key@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-4.0.0.tgz#295588dc3aee64154f877adb9d780b81c554bf18" + resolved "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz" integrity sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ== path-parse@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + resolved "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== path-scurry@^1.10.1: version "1.10.1" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + 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" @@ -6969,56 +6946,56 @@ path-scurry@^1.10.1: path-to-regexp@^1.7.0: version "1.8.0" - resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz" integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== dependencies: isarray "0.0.1" path-type@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + resolved "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz" integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== pathval@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: version "2.3.1" - resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== pidtree@0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/pidtree/-/pidtree-0.6.0.tgz#90ad7b6d42d5841e69e0a2419ef38f8883aa057c" + resolved "https://registry.npmjs.org/pidtree/-/pidtree-0.6.0.tgz" integrity sha512-eG2dWTVw5bzqGRztnHExczNxt5VGsE6OwTeCG3fdUf9KBsZzO3R5OIIIzWR+iZA0NtZ+RDVdaoE2dK1cn6jH4g== pify@^2.3.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pify@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + resolved "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz" integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== pkg-dir@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" pluralize@^8.0.0: version "8.0.0" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-8.0.0.tgz#1a6fa16a38d12a1901e0320fa017051c539ce3b1" + resolved "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz" integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== postcss-selector-parser@^6.0.10: version "6.0.13" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz#d05d8d76b1e8e173257ef9d60b706a8e5e99bf1b" + resolved "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.13.tgz" integrity sha512-EaV1Gl4mUEV4ddhDnv/xtj7sxwrwxdetHdWUGnT4VJQf+4d05v6lHYZr8N573k5Z0BViss7BDhfWtKS3+sfAqQ== dependencies: cssesc "^3.0.0" @@ -7026,7 +7003,7 @@ postcss-selector-parser@^6.0.10: preferred-pm@^3.0.3: version "3.1.2" - resolved "https://registry.yarnpkg.com/preferred-pm/-/preferred-pm-3.1.2.tgz#aedb70550734a574dffcbf2ce82642bd1753bdd6" + resolved "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.1.2.tgz" integrity sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q== dependencies: find-up "^5.0.0" @@ -7036,57 +7013,57 @@ preferred-pm@^3.0.3: prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.1.tgz#6ba9f23165d690b6cbdaa88cb0807278f7019848" + resolved "https://registry.npmjs.org/prettier/-/prettier-3.1.1.tgz" integrity sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw== pretty-bytes@^5.3.0: version "5.6.0" - resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== proc-log@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-1.0.0.tgz#0d927307401f69ed79341e83a0b2c9a13395eb77" + resolved "https://registry.npmjs.org/proc-log/-/proc-log-1.0.0.tgz" integrity sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg== proc-log@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-3.0.0.tgz#fb05ef83ccd64fd7b20bbe9c8c1070fc08338dd8" + resolved "https://registry.npmjs.org/proc-log/-/proc-log-3.0.0.tgz" integrity sha512-++Vn7NS4Xf9NacaU9Xq3URUuqZETPsf8L4j5/ckhaRYsfPeRyzGw+iDjFhV/Jr3uNmTvvddEJFWh5R1gRgUH8A== process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== process@^0.11.10: version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + resolved "https://registry.npmjs.org/process/-/process-0.11.10.tgz" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== promise-all-reject-late@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2" + resolved "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz" integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw== promise-call-limit@^1.0.1, promise-call-limit@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-1.0.2.tgz#f64b8dd9ef7693c9c7613e7dfe8d6d24de3031ea" + resolved "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-1.0.2.tgz" integrity sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA== promise-inflight@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz" integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== promise-retry@^2.0.1: version "2.0.1" - resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + resolved "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz" integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== dependencies: err-code "^2.0.2" @@ -7094,14 +7071,14 @@ promise-retry@^2.0.1: promzard@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/promzard/-/promzard-1.0.0.tgz#3246f8e6c9895a77c0549cefb65828ac0f6c006b" + resolved "https://registry.npmjs.org/promzard/-/promzard-1.0.0.tgz" integrity sha512-KQVDEubSUHGSt5xLakaToDFrSoZhStB8dXLzk2xvwR67gJktrHFvpR63oZgHyK19WKbHFLXJqCPXdVR3aBP8Ig== dependencies: read "^2.0.0" pump@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + resolved "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz" integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== dependencies: end-of-stream "^1.1.0" @@ -7109,54 +7086,54 @@ pump@^3.0.0: punycode@^2.1.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== qrcode-terminal@^0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz#bb5b699ef7f9f0505092a3748be4464fe71b5819" + resolved "https://registry.npmjs.org/qrcode-terminal/-/qrcode-terminal-0.12.0.tgz" integrity sha512-EXtzRZmC+YGmGlDFbXKxQiMZNwCLEO6BANKXG4iCtSIM0yqc/pappSx3RIKr4r0uh5JsBckOXeKrB3Iz7mdQpQ== queue-microtask@^1.2.2: version "1.2.3" - resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" + resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== quick-lru@^4.0.1: version "4.0.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== quick-lru@^5.1.1: version "5.1.1" - resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== rambda@^7.4.0: version "7.5.0" - resolved "https://registry.yarnpkg.com/rambda/-/rambda-7.5.0.tgz#1865044c59bc0b16f63026c6e5a97e4b1bbe98fe" + resolved "https://registry.npmjs.org/rambda/-/rambda-7.5.0.tgz" integrity sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA== randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" read-cmd-shim@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz#868c235ec59d1de2db69e11aec885bc095aea087" + resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz" integrity sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g== read-cmd-shim@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz#640a08b473a49043e394ae0c7a34dd822c73b9bb" + resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-4.0.0.tgz" integrity sha512-yILWifhaSEEytfXI76kB9xEEiG1AiozaCJZ83A87ytjRiN+jVibXjedjCRNjoZviinhG+4UkalO3mWTd8u5O0Q== read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2, read-package-json-fast@^2.0.3: version "2.0.3" - resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" + resolved "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz" integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== dependencies: json-parse-even-better-errors "^2.3.0" @@ -7164,7 +7141,7 @@ read-package-json-fast@^2.0.1, read-package-json-fast@^2.0.2, read-package-json- read-package-json-fast@^3.0.0, read-package-json-fast@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz#394908a9725dc7a5f14e70c8e7556dff1d2b1049" + resolved "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-3.0.2.tgz" integrity sha512-0J+Msgym3vrLOUB3hzQCuZHII0xkNGCtz/HJH9xZshwv9DbDwkw1KaE3gx/e2J5rpEY5rtOy6cyhKOPrkP7FZw== dependencies: json-parse-even-better-errors "^3.0.0" @@ -7172,7 +7149,7 @@ read-package-json-fast@^3.0.0, read-package-json-fast@^3.0.2: read-package-json@^6.0.0: version "6.0.4" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-6.0.4.tgz#90318824ec456c287437ea79595f4c2854708836" + resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-6.0.4.tgz" integrity sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw== dependencies: glob "^10.2.2" @@ -7182,7 +7159,7 @@ read-package-json@^6.0.0: read-package-json@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-7.0.0.tgz#d605c9dcf6bc5856da24204aa4e9518ee9714be0" + resolved "https://registry.npmjs.org/read-package-json/-/read-package-json-7.0.0.tgz" integrity sha512-uL4Z10OKV4p6vbdvIXB+OzhInYtIozl/VxUBPgNkBuUi2DeRonnuspmaVAMcrkmfjKGNmRndyQAbE7/AmzGwFg== dependencies: glob "^10.2.2" @@ -7192,7 +7169,7 @@ read-package-json@^7.0.0: read-pkg-up@^7.0.1: version "7.0.1" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz" integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== dependencies: find-up "^4.1.0" @@ -7201,7 +7178,7 @@ read-pkg-up@^7.0.1: read-pkg@^5.2.0: version "5.2.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz" integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== dependencies: "@types/normalize-package-data" "^2.4.0" @@ -7211,14 +7188,14 @@ read-pkg@^5.2.0: read@^2.0.0, read@^2.1.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/read/-/read-2.1.0.tgz#69409372c54fe3381092bc363a00650b6ac37218" + resolved "https://registry.npmjs.org/read/-/read-2.1.0.tgz" integrity sha512-bvxi1QLJHcaywCAEsAk4DG3nVoqiY2Csps3qzWalhj5hFqRn1d/OixkFXtLO1PrgHUcAP0FNaSY/5GYNfENFFQ== dependencies: mute-stream "~1.0.0" readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.4.0, readable-stream@^3.6.0: version "3.6.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz" integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== dependencies: inherits "^2.0.3" @@ -7227,7 +7204,7 @@ readable-stream@3, readable-stream@^3.0.0, readable-stream@^3.4.0, readable-stre readable-stream@^2.0.2, readable-stream@^2.3.5: version "2.3.8" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== dependencies: core-util-is "~1.0.0" @@ -7240,7 +7217,7 @@ readable-stream@^2.0.2, readable-stream@^2.3.5: readable-stream@^4.1.0, readable-stream@^4.3.0: version "4.4.2" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.4.2.tgz#e6aced27ad3b9d726d8308515b9a1b98dc1b9d13" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-4.4.2.tgz" integrity sha512-Lk/fICSyIhodxy1IDK2HazkeGjSmezAWX2egdtJnYhtzKEsBPJowlI6F6LPb5tqIQILrMbx22S5o3GuJavPusA== dependencies: abort-controller "^3.0.0" @@ -7251,7 +7228,7 @@ readable-stream@^4.1.0, readable-stream@^4.3.0: readdir-scoped-modules@^1.1.0: version "1.1.0" - resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" + resolved "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz" integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== dependencies: debuglog "^1.0.1" @@ -7261,21 +7238,21 @@ readdir-scoped-modules@^1.1.0: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" rechoir@^0.6.2: version "0.6.2" - resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== dependencies: resolve "^1.1.6" redent@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + resolved "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz" integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== dependencies: indent-string "^4.0.0" @@ -7283,19 +7260,19 @@ redent@^3.0.0: redeyed@~2.1.0: version "2.1.1" - resolved "https://registry.yarnpkg.com/redeyed/-/redeyed-2.1.1.tgz#8984b5815d99cb220469c99eeeffe38913e6cc0b" + resolved "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz" integrity sha512-FNpGGo1DycYAdnrKFxCMmKYgo/mILAqtRYbkdQD8Ep/Hk2PQ5+aEAEx+IU713RTDmuBaH0c8P5ZozurNu5ObRQ== dependencies: esprima "~4.0.0" regexp-tree@^0.1.27: version "0.1.27" - resolved "https://registry.yarnpkg.com/regexp-tree/-/regexp-tree-0.1.27.tgz#2198f0ef54518ffa743fe74d983b56ffd631b6cd" + resolved "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.27.tgz" integrity sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA== regexp.prototype.flags@^1.5.1: version "1.5.1" - resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz#90ce989138db209f81492edd734183ce99f9677e" + resolved "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.1.tgz" integrity sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg== dependencies: call-bind "^1.0.2" @@ -7304,66 +7281,66 @@ regexp.prototype.flags@^1.5.1: regexpp@^3.0.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" + resolved "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz" integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== regjsparser@^0.10.0: version "0.10.0" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.10.0.tgz#b1ed26051736b436f22fdec1c8f72635f9f44892" + resolved "https://registry.npmjs.org/regjsparser/-/regjsparser-0.10.0.tgz" integrity sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA== dependencies: jsesc "~0.5.0" remove-trailing-separator@^1.0.1: version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== replace-ext@^1.0.0: version "1.0.1" - resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" + resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz" integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" + resolved "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== resolve-alpn@^1.0.0: version "1.2.1" - resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== resolve-from@5.0.0, resolve-from@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-global@1.0.0, resolve-global@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" + resolved "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz" integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== dependencies: global-dirs "^0.1.1" resolve-pkg-maps@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz#616b3dc2c57056b5588c31cdf4b3d64db133720f" + resolved "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz" integrity sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw== resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.22.4: version "1.22.8" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" + resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== dependencies: is-core-module "^2.13.0" @@ -7372,14 +7349,14 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.10.1, resolve@^1.22.4: responselike@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz" integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== dependencies: lowercase-keys "^2.0.0" restore-cursor@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz" integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== dependencies: onetime "^5.1.0" @@ -7387,7 +7364,7 @@ restore-cursor@^3.1.0: restore-cursor@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-4.0.0.tgz#519560a4318975096def6e609d44100edaa4ccb9" + resolved "https://registry.npmjs.org/restore-cursor/-/restore-cursor-4.0.0.tgz" integrity sha512-I9fPXU9geO9bHOt9pHHOhOkYerIMsmVaWB0rA2AI9ERh/+x/i7MV5HKBNrg+ljO5eoPVgCcnFuRjJ9uH6I/3eg== dependencies: onetime "^5.1.0" @@ -7395,53 +7372,53 @@ restore-cursor@^4.0.0: retry@0.13.1: version "0.13.1" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.13.1.tgz#185b1587acf67919d63b357349e03537b2484658" + resolved "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz" integrity sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg== retry@^0.12.0: version "0.12.0" - resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + resolved "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz" integrity sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow== reusify@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== rfdc@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/rfdc/-/rfdc-1.3.0.tgz#d0b7c441ab2720d05dc4cf26e01c89631d9da08b" + resolved "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz" integrity sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA== rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" run-async@^2.0.0, run-async@^2.4.0: version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" + resolved "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz" integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== run-parallel@^1.1.9: version "1.2.0" - resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee" + resolved "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz" integrity sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA== dependencies: queue-microtask "^1.2.2" rxjs@^7.5.5: version "7.8.1" - resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + resolved "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz" integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== dependencies: tslib "^2.1.0" safe-array-concat@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/safe-array-concat/-/safe-array-concat-1.0.1.tgz#91686a63ce3adbea14d61b14c99572a8ff84754c" + resolved "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.0.1.tgz" integrity sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q== dependencies: call-bind "^1.0.2" @@ -7451,17 +7428,17 @@ safe-array-concat@^1.0.1: safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== safe-regex-test@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz" integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== dependencies: call-bind "^1.0.2" @@ -7470,34 +7447,34 @@ safe-regex-test@^1.0.0: "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0": version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== scoped-regex@^2.0.0: version "2.1.0" - resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-2.1.0.tgz#7b9be845d81fd9d21d1ec97c61a0b7cf86d2015f" + resolved "https://registry.npmjs.org/scoped-regex/-/scoped-regex-2.1.0.tgz" integrity sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ== "semver@2 || 3 || 4 || 5": version "5.7.2" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" + resolved "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== semver@7.5.4, semver@^7.0.0, semver@^7.1.1, semver@^7.1.3, semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4: version "7.5.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" + resolved "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz" integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" semver@^6.1.0, semver@^6.3.1: version "6.3.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" + resolved "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== sentence-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" + resolved "https://registry.npmjs.org/sentence-case/-/sentence-case-3.0.4.tgz" integrity sha512-8LS0JInaQMCRoQ7YUytAo/xUu5W2XnQxV2HI/6uM6U7CITS1RqPElr30V6uIqyMKM9lJGRVFy5/4CuzcixNYSg== dependencies: no-case "^3.0.4" @@ -7506,19 +7483,19 @@ sentence-case@^3.0.4: serialize-javascript@6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz" integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== dependencies: randombytes "^2.1.0" set-blocking@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== set-function-name@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/set-function-name/-/set-function-name-2.0.1.tgz#12ce38b7954310b9f61faa12701620a0c882793a" + resolved "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.1.tgz" integrity sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA== dependencies: define-data-property "^1.0.1" @@ -7527,19 +7504,19 @@ set-function-name@^2.0.0: shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + 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" shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== shelljs@^0.8.5: version "0.8.5" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + resolved "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz" integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== dependencies: glob "^7.0.0" @@ -7548,7 +7525,7 @@ shelljs@^0.8.5: shx@^0.3.4: version "0.3.4" - resolved "https://registry.yarnpkg.com/shx/-/shx-0.3.4.tgz#74289230b4b663979167f94e1935901406e40f02" + resolved "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz" integrity sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g== dependencies: minimist "^1.2.3" @@ -7556,7 +7533,7 @@ shx@^0.3.4: side-channel@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: call-bind "^1.0.0" @@ -7565,17 +7542,17 @@ side-channel@^1.0.4: signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: version "3.0.7" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.7.tgz#a9a1767f8af84155114eaabd73f99273c8f59ad9" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz" integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== signal-exit@^4.0.1, signal-exit@^4.1.0: version "4.1.0" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + resolved "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz" integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== sigstore@^1.3.0: version "1.9.0" - resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-1.9.0.tgz#1e7ad8933aa99b75c6898ddd0eeebc3eb0d59875" + resolved "https://registry.npmjs.org/sigstore/-/sigstore-1.9.0.tgz" integrity sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A== dependencies: "@sigstore/bundle" "^1.1.0" @@ -7584,16 +7561,6 @@ sigstore@^1.3.0: "@sigstore/tuf" "^1.0.3" make-fetch-happen "^11.0.1" -sigstore@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-2.1.0.tgz#c577b596642b3f360dc4135d476466e6edeb2364" - integrity sha512-kPIj+ZLkyI3QaM0qX8V/nSsweYND3W448pwkDgS6CQ74MfhEkIR8ToK5Iyx46KJYRjseVcD3Rp9zAmUAj6ZjPw== - dependencies: - "@sigstore/bundle" "^2.1.0" - "@sigstore/protobuf-specs" "^0.2.1" - "@sigstore/sign" "^2.1.0" - "@sigstore/tuf" "^2.1.0" - sigstore@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-2.2.0.tgz#acba5f73ca2158d2b0507bc52d3592149c3ed20e" @@ -7608,14 +7575,14 @@ sigstore@^2.2.0: simple-swizzle@^0.2.2: version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + resolved "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz" integrity sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg== dependencies: is-arrayish "^0.3.1" sinon@^16.1.3: version "16.1.3" - resolved "https://registry.yarnpkg.com/sinon/-/sinon-16.1.3.tgz#b760ddafe785356e2847502657b4a0da5501fba8" + resolved "https://registry.npmjs.org/sinon/-/sinon-16.1.3.tgz" integrity sha512-mjnWWeyxcAf9nC0bXcPmiDut+oE8HYridTNzBbF98AYVLmWwGRp2ISEpyhYflG1ifILT+eNn3BmKUJPxjXUPlA== dependencies: "@sinonjs/commons" "^3.0.0" @@ -7627,12 +7594,12 @@ sinon@^16.1.3: slash@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== slice-ansi@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-4.0.0.tgz#500e8dd0fd55b05815086255b3195adf2a45fe6b" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz" integrity sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ== dependencies: ansi-styles "^4.0.0" @@ -7641,7 +7608,7 @@ slice-ansi@^4.0.0: slice-ansi@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-5.0.0.tgz#b73063c57aa96f9cd881654b15294d95d285c42a" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-5.0.0.tgz" integrity sha512-FC+lgizVPfie0kkhqUScwRu1O/lF6NOgJmlCgK+/LYxDCTk8sGelYaHDhFcDN+Sn3Cv+3VSa4Byeo+IMCzpMgQ== dependencies: ansi-styles "^6.0.0" @@ -7649,7 +7616,7 @@ slice-ansi@^5.0.0: slice-ansi@^7.0.0: version "7.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-7.1.0.tgz#cd6b4655e298a8d1bdeb04250a433094b347b9a9" + resolved "https://registry.npmjs.org/slice-ansi/-/slice-ansi-7.1.0.tgz" integrity sha512-bSiSngZ/jWeX93BqeIAbImyTbEihizcwNjFoRUIY/T1wWQsfsm2Vw1agPKylXvQTU7iASGdHhyqRlqQzfz+Htg== dependencies: ansi-styles "^6.2.1" @@ -7657,12 +7624,12 @@ slice-ansi@^7.0.0: smart-buffer@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== snake-case@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + resolved "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz" integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== dependencies: dot-case "^3.0.4" @@ -7670,7 +7637,7 @@ snake-case@^3.0.4: socks-proxy-agent@^6.0.0: version "6.2.1" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz" integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== dependencies: agent-base "^6.0.2" @@ -7679,7 +7646,7 @@ socks-proxy-agent@^6.0.0: socks-proxy-agent@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz" integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== dependencies: agent-base "^6.0.2" @@ -7688,7 +7655,7 @@ socks-proxy-agent@^7.0.0: socks-proxy-agent@^8.0.1: version "8.0.2" - resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz#5acbd7be7baf18c46a3f293a840109a430a640ad" + resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-8.0.2.tgz" integrity sha512-8zuqoLv1aP/66PHF5TqwJ7Czm3Yv32urJQHrVyhD7mmA6d61Zv8cIXQYPTWwmg6qlupnPvs/QKDmfa4P/qct2g== dependencies: agent-base "^7.0.2" @@ -7697,7 +7664,7 @@ socks-proxy-agent@^8.0.1: socks@^2.6.2, socks@^2.7.1: version "2.7.1" - resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + resolved "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz" integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== dependencies: ip "^2.0.0" @@ -7705,14 +7672,14 @@ socks@^2.6.2, socks@^2.7.1: sort-keys@^4.2.0: version "4.2.0" - resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-4.2.0.tgz#6b7638cee42c506fff8c1cecde7376d21315be18" + resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz" integrity sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg== dependencies: is-plain-obj "^2.0.0" spdx-correct@^3.0.0: version "3.2.0" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz" integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== dependencies: spdx-expression-parse "^3.0.0" @@ -7720,12 +7687,12 @@ spdx-correct@^3.0.0: spdx-exceptions@^2.1.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== spdx-expression-parse@^3.0.0, spdx-expression-parse@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" @@ -7733,50 +7700,50 @@ spdx-expression-parse@^3.0.0, spdx-expression-parse@^3.0.1: spdx-license-ids@^3.0.0: version "3.0.16" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" + resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz" integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== split2@^3.0.0, split2@^3.2.2: version "3.2.2" - resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" + resolved "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz" integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== dependencies: readable-stream "^3.0.0" sprintf-js@~1.0.2: version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + resolved "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz" integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== ssri@^10.0.0, ssri@^10.0.5: version "10.0.5" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" + resolved "https://registry.npmjs.org/ssri/-/ssri-10.0.5.tgz" integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== dependencies: minipass "^7.0.3" ssri@^8.0.0, ssri@^8.0.1: version "8.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + resolved "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz" integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== dependencies: minipass "^3.1.1" ssri@^9.0.0: version "9.0.1" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" + resolved "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz" integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== dependencies: minipass "^3.1.1" string-argv@0.3.2: version "0.3.2" - resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.2.tgz#2b6d0ef24b656274d957d54e0a4bbf6153dc02b6" + resolved "https://registry.npmjs.org/string-argv/-/string-argv-0.3.2.tgz" integrity sha512-aqD2Q0144Z+/RqG52NeHEkZauTAUWJO8c6yTftGJKO3Tja5tUgIfmIl6kExvhtxSDP7fXB6DvzkfMpCd/F3G+Q== "string-width-cjs@npm:string-width@^4.2.0", "string-width@^1.0.2 || 2 || 3 || 4", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + 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" @@ -7785,7 +7752,7 @@ string-argv@0.3.2: string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" + resolved "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz" integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== dependencies: eastasianwidth "^0.2.0" @@ -7794,7 +7761,7 @@ string-width@^5.0.1, string-width@^5.1.2: string-width@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-7.0.0.tgz#14aa1b7aaa126d5b64fa79d3c894da8a9650ba06" + resolved "https://registry.npmjs.org/string-width/-/string-width-7.0.0.tgz" integrity sha512-GPQHj7row82Hjo9hKZieKcHIhaAIKOJvFSIZXuCU9OASVZrMNUaZuz++SPVrBjnLsnk4k+z9f2EIypgxf2vNFw== dependencies: emoji-regex "^10.3.0" @@ -7803,7 +7770,7 @@ string-width@^7.0.0: string.prototype.trim@^1.2.8: version "1.2.8" - resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz#f9ac6f8af4bd55ddfa8895e6aea92a96395393bd" + resolved "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz" integrity sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ== dependencies: call-bind "^1.0.2" @@ -7812,7 +7779,7 @@ string.prototype.trim@^1.2.8: string.prototype.trimend@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz#1bb3afc5008661d73e2dc015cd4853732d6c471e" + resolved "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz" integrity sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA== dependencies: call-bind "^1.0.2" @@ -7821,7 +7788,7 @@ string.prototype.trimend@^1.0.7: string.prototype.trimstart@^1.0.7: version "1.0.7" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz#d4cdb44b83a4737ffbac2d406e405d43d0184298" + resolved "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz" integrity sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg== dependencies: call-bind "^1.0.2" @@ -7830,42 +7797,42 @@ string.prototype.trimstart@^1.0.7: string_decoder@^1.1.1, string_decoder@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz" integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== dependencies: safe-buffer "~5.2.0" string_decoder@~1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz" integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== dependencies: safe-buffer "~5.1.0" "strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== dependencies: ansi-regex "^5.0.1" strip-ansi@^7.0.1, strip-ansi@^7.1.0: version "7.1.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" + resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.0.tgz" integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== dependencies: ansi-regex "^6.0.1" strip-bom-buf@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz#1cb45aaf57530f4caf86c7f75179d2c9a51dd572" + resolved "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz" integrity sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ== dependencies: is-utf8 "^0.2.1" strip-bom-stream@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz#f87db5ef2613f6968aa545abfe1ec728b6a829ca" + resolved "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz" integrity sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w== dependencies: first-chunk-stream "^2.0.0" @@ -7873,72 +7840,72 @@ strip-bom-stream@^2.0.0: strip-bom@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== dependencies: is-utf8 "^0.2.0" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-final-newline@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-final-newline@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" + resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz" integrity sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw== strip-indent@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz" integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== dependencies: min-indent "^1.0.0" strip-json-comments@3.1.1, strip-json-comments@^3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + resolved "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== strnum@^1.0.5: version "1.0.5" - resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" + resolved "https://registry.npmjs.org/strnum/-/strnum-1.0.5.tgz" integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== supports-color@8.1.1, supports-color@^8.1.1: version "8.1.1" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== dependencies: has-flag "^4.0.0" supports-color@^5.3.0: version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" supports-color@^7.0.0, supports-color@^7.1.0, supports-color@^7.2.0: version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== dependencies: has-flag "^4.0.0" supports-color@^9.4.0: version "9.4.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-9.4.0.tgz#17bfcf686288f531db3dea3215510621ccb55954" + resolved "https://registry.npmjs.org/supports-color/-/supports-color-9.4.0.tgz" integrity sha512-VL+lNrEoIXww1coLPOmiEmK/0sGigko5COxI09KzHc2VJXJsQ37UaQ+8quuxjDeA7+KnLGTWRyOXSLLR2Wb4jw== supports-hyperlinks@^2.2.0: version "2.3.0" - resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624" + resolved "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz" integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA== dependencies: has-flag "^4.0.0" @@ -7946,17 +7913,17 @@ supports-hyperlinks@^2.2.0: supports-preserve-symlinks-flag@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== tapable@^2.2.0: version "2.2.1" - resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" + resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== tar@^6.0.2, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2, tar@^6.2.0: version "6.2.0" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" + resolved "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz" integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== dependencies: chownr "^2.0.0" @@ -7968,78 +7935,78 @@ tar@^6.0.2, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2, tar@^6.2.0: text-extensions@^1.0.0: version "1.9.0" - resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + resolved "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz" integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== textextensions@^5.12.0, textextensions@^5.13.0: version "5.16.0" - resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-5.16.0.tgz#57dd60c305019bba321e848b1fdf0f99bfa59ec1" + resolved "https://registry.npmjs.org/textextensions/-/textextensions-5.16.0.tgz" integrity sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw== through2@^4.0.0: version "4.0.2" - resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" + resolved "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz" integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== dependencies: readable-stream "3" "through@>=2.2.7 <3", through@^2.3.6: version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + resolved "https://registry.npmjs.org/through/-/through-2.3.8.tgz" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== tiny-relative-date@^1.3.0: version "1.3.0" - resolved "https://registry.yarnpkg.com/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz#fa08aad501ed730f31cc043181d995c39a935e07" + resolved "https://registry.npmjs.org/tiny-relative-date/-/tiny-relative-date-1.3.0.tgz" integrity sha512-MOQHpzllWxDCHHaDno30hhLfbouoYlOI8YlMNtvKe1zXbjEVhbcEovQxvZrPvtiYW630GQDoMMarCnjfyfHA+A== tmp@^0.0.33: version "0.0.33" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + resolved "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz" integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== dependencies: os-tmpdir "~1.0.2" to-regex-range@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz" integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== dependencies: is-number "^7.0.0" tr46@~0.0.3: version "0.0.3" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + resolved "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== treeverse@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-1.0.4.tgz#a6b0ebf98a1bca6846ddc7ecbc900df08cb9cd5f" + resolved "https://registry.npmjs.org/treeverse/-/treeverse-1.0.4.tgz" integrity sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g== treeverse@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-3.0.0.tgz#dd82de9eb602115c6ebd77a574aae67003cb48c8" + resolved "https://registry.npmjs.org/treeverse/-/treeverse-3.0.0.tgz" integrity sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ== trim-newlines@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== ts-api-utils@^1.0.1: version "1.0.3" - resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-1.0.3.tgz#f12c1c781d04427313dbac808f453f050e54a331" + resolved "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.0.3.tgz" integrity sha512-wNMeqtMz5NtwpT/UZGY5alT+VoKdSsOOP/kqHFcUW1P/VRhH2wJ48+DN2WwUliNbQ976ETwDL0Ifd2VVvgonvg== ts-node@^10.8.1, ts-node@^10.9.2: version "10.9.2" - resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.2.tgz#70f021c9e185bccdca820e26dc413805c101c71f" + resolved "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz" integrity sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ== dependencies: "@cspotcode/source-map-support" "^0.8.0" @@ -8058,7 +8025,7 @@ ts-node@^10.8.1, ts-node@^10.9.2: tsconfig-paths@^3.15.0: version "3.15.0" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + resolved "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz" integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: "@types/json5" "^0.0.29" @@ -8068,17 +8035,17 @@ tsconfig-paths@^3.15.0: tslib@^1.11.1: version "1.14.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" + resolved "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.5.0: version "2.6.2" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" + resolved "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== tuf-js@^1.1.7: version "1.1.7" - resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-1.1.7.tgz#21b7ae92a9373015be77dfe0cb282a80ec3bbe43" + resolved "https://registry.npmjs.org/tuf-js/-/tuf-js-1.1.7.tgz" integrity sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg== dependencies: "@tufjs/models" "1.0.4" @@ -8096,56 +8063,56 @@ tuf-js@^2.2.0: tunnel-agent@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + resolved "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz" integrity sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w== dependencies: safe-buffer "^5.0.1" type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz" integrity sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew== dependencies: prelude-ls "^1.2.1" type-detect@4.0.8, type-detect@^4.0.0, type-detect@^4.0.8: version "4.0.8" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + resolved "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== type-fest@^0.18.0: version "0.18.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz" integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== type-fest@^0.21.3: version "0.21.3" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.21.3.tgz#d260a24b0198436e133fa26a524a6d65fa3b2e37" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz" integrity sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w== type-fest@^0.6.0: version "0.6.0" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== type-fest@^0.8.1: version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== type-fest@^3.0.0: version "3.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-3.13.1.tgz#bb744c1f0678bea7543a2d1ec24e83e68e8c8706" + resolved "https://registry.npmjs.org/type-fest/-/type-fest-3.13.1.tgz" integrity sha512-tLq3bSNx+xSpwvAJnzrK0Ep5CLNWjvFTOp71URMaAEWBfRb9nnJiBoUe0tF8bI4ZFO3omgBR6NvnbzVUT3Ly4g== typed-array-buffer@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz#18de3e7ed7974b0a729d3feecb94338d1472cd60" + resolved "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.0.tgz" integrity sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw== dependencies: call-bind "^1.0.2" @@ -8154,7 +8121,7 @@ typed-array-buffer@^1.0.0: typed-array-byte-length@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz#d787a24a995711611fb2b87a4052799517b230d0" + resolved "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.0.tgz" integrity sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA== dependencies: call-bind "^1.0.2" @@ -8164,7 +8131,7 @@ typed-array-byte-length@^1.0.0: typed-array-byte-offset@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz#cbbe89b51fdef9cd6aaf07ad4707340abbc4ea0b" + resolved "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.0.tgz" integrity sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg== dependencies: available-typed-arrays "^1.0.5" @@ -8175,7 +8142,7 @@ typed-array-byte-offset@^1.0.0: typed-array-length@^1.0.4: version "1.0.4" - resolved "https://registry.yarnpkg.com/typed-array-length/-/typed-array-length-1.0.4.tgz#89d83785e5c4098bec72e08b319651f0eac9c1bb" + resolved "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.4.tgz" integrity sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng== dependencies: call-bind "^1.0.2" @@ -8184,12 +8151,12 @@ typed-array-length@^1.0.4: "typescript@^4.6.4 || ^5.2.2", typescript@^5.3.3: version "5.3.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz" integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== unbox-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz" integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: call-bind "^1.0.2" @@ -8197,117 +8164,112 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" -undici-types@~5.25.1: - version "5.25.3" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.25.3.tgz#e044115914c85f0bcbb229f346ab739f064998c3" - integrity sha512-Ga1jfYwRn7+cP9v8auvEXN1rX3sWqlayd4HP7OKk4mZWylEmu3KzXDUGrQUN6Ol7qo1gPvB2e5gX6udnyEPgdA== - undici-types@~5.26.4: version "5.26.5" - resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" + resolved "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== unique-filename@^1.1.1: version "1.1.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz" integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" unique-filename@^2.0.0: version "2.0.1" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" + resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz" integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== dependencies: unique-slug "^3.0.0" unique-filename@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-3.0.0.tgz#48ba7a5a16849f5080d26c760c86cf5cf05770ea" + resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-3.0.0.tgz" integrity sha512-afXhuC55wkAmZ0P18QsVE6kp8JaxrEokN2HGIoIVv2ijHQd419H0+6EigAFcIzXeMIkcIkNBpB3L/DXB3cTS/g== dependencies: unique-slug "^4.0.0" unique-slug@^2.0.0: version "2.0.2" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz" integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== dependencies: imurmurhash "^0.1.4" unique-slug@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" + resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz" integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== dependencies: imurmurhash "^0.1.4" unique-slug@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-4.0.0.tgz#6bae6bb16be91351badd24cdce741f892a6532e3" + resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-4.0.0.tgz" integrity sha512-WrcA6AyEfqDX5bWige/4NQfPZMtASNVxdmWR76WESYQVAACSgWcR6e9i0mofqqBxYFtL4oAxPIptY73/0YE1DQ== dependencies: imurmurhash "^0.1.4" universal-user-agent@^6.0.0: version "6.0.0" - resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" + resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz" integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== universalify@^0.1.0: version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + resolved "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz" integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== universalify@^2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" + resolved "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz" integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== untildify@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== upper-case-first@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/upper-case-first/-/upper-case-first-2.0.2.tgz#992c3273f882abd19d1e02894cc147117f844324" + resolved "https://registry.npmjs.org/upper-case-first/-/upper-case-first-2.0.2.tgz" integrity sha512-514ppYHBaKwfJRK/pNC6c/OxfGa0obSnAl106u97Ed0I625Nin96KAjttZF6ZL3e1XLtphxnqrOi9iWgm+u+bg== dependencies: tslib "^2.0.3" upper-case@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-2.0.2.tgz#d89810823faab1df1549b7d97a76f8662bae6f7a" + resolved "https://registry.npmjs.org/upper-case/-/upper-case-2.0.2.tgz" integrity sha512-KgdgDGJt2TpuwBUIjgG6lzw2GWFRCW9Qkfkiv0DxqHHLYJHmtmdUIKcZd8rHgFSjopVTlw6ggzCm1b8MFQwikg== dependencies: tslib "^2.0.3" uri-js@^4.2.2: version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" + resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz" integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== dependencies: punycode "^2.1.0" util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== uuid@^8.3.2: version "8.3.2" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== v8-compile-cache-lib@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" @@ -8315,21 +8277,21 @@ validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: validate-npm-package-name@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + resolved "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz" integrity sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw== dependencies: builtins "^1.0.3" validate-npm-package-name@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz#f16afd48318e6f90a1ec101377fa0384cfc8c713" + resolved "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.0.tgz" integrity sha512-YuKoXDAhBYxY7SfOKxHBDoSyENFeW5VvIIQp2TGQuit8gpK6MnWaQelBKxso72DoxTZfZdcP3W90LqpSkgPzLQ== dependencies: builtins "^5.0.0" vinyl-file@^3.0.0: version "3.0.0" - resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-3.0.0.tgz#b104d9e4409ffa325faadd520642d0a3b488b365" + resolved "https://registry.npmjs.org/vinyl-file/-/vinyl-file-3.0.0.tgz" integrity sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg== dependencies: graceful-fs "^4.1.2" @@ -8340,7 +8302,7 @@ vinyl-file@^3.0.0: vinyl@^2.0.1: version "2.2.1" - resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" + resolved "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz" integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== dependencies: clone "^2.1.1" @@ -8352,29 +8314,29 @@ vinyl@^2.0.1: walk-up-path@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-1.0.0.tgz#d4745e893dd5fd0dbb58dd0a4c6a33d9c9fec53e" + resolved "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz" integrity sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg== walk-up-path@^3.0.1: version "3.0.1" - resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-3.0.1.tgz#c8d78d5375b4966c717eb17ada73dbd41490e886" + resolved "https://registry.npmjs.org/walk-up-path/-/walk-up-path-3.0.1.tgz" integrity sha512-9YlCL/ynK3CTlrSRrDxZvUauLzAswPCrsaCgilqFevUYpeEW0/3ScEjaa3kbW/T0ghhkEr7mv+fpjqn1Y1YuTA== wcwidth@^1.0.0, wcwidth@^1.0.1: version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" + resolved "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz" integrity sha512-XHPEwS0q6TaxcvG85+8EYkbiCux2XtWG2mkc47Ng2A77BQu9+DqIOJldST4HgPkuea7dvKSj5VgX3P1d4rW8Tg== dependencies: defaults "^1.0.3" webidl-conversions@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + resolved "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz" integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== whatwg-url@^5.0.0: version "5.0.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + resolved "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz" integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== dependencies: tr46 "~0.0.3" @@ -8382,7 +8344,7 @@ whatwg-url@^5.0.0: which-boxed-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: is-bigint "^1.0.1" @@ -8393,7 +8355,7 @@ which-boxed-primitive@^1.0.2: which-pm@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/which-pm/-/which-pm-2.0.0.tgz#8245609ecfe64bf751d0eef2f376d83bf1ddb7ae" + resolved "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz" integrity sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w== dependencies: load-yaml-file "^0.2.0" @@ -8401,7 +8363,7 @@ which-pm@2.0.0: which-typed-array@^1.1.11: version "1.1.11" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" + resolved "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.11.tgz" integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== dependencies: available-typed-arrays "^1.0.5" @@ -8412,52 +8374,52 @@ which-typed-array@^1.1.11: which@^2.0.1, which@^2.0.2: version "2.0.2" - resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" which@^3.0.0: version "3.0.1" - resolved "https://registry.yarnpkg.com/which/-/which-3.0.1.tgz#89f1cd0c23f629a8105ffe69b8172791c87b4be1" + resolved "https://registry.npmjs.org/which/-/which-3.0.1.tgz" integrity sha512-XA1b62dzQzLfaEOSQFTCOd5KFf/1VSzZo7/7TUjnya6u0vGGKzU96UQBZTAThCb2j4/xjBAyii1OhRLJEivHvg== dependencies: isexe "^2.0.0" which@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/which/-/which-4.0.0.tgz#cd60b5e74503a3fbcfbf6cd6b4138a8bae644c1a" + resolved "https://registry.npmjs.org/which/-/which-4.0.0.tgz" integrity sha512-GlaYyEb07DPxYCKhKzplCWBJtvxZcZMrL+4UkrTSJHHPyZU4mYYTv3qaOe77H7EODLSSopAUFAc6W8U4yqvscg== dependencies: isexe "^3.1.1" wide-align@^1.1.2, wide-align@^1.1.5: version "1.1.5" - resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== dependencies: string-width "^1.0.2 || 2 || 3 || 4" widest-line@^3.1.0: version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + resolved "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz" integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== dependencies: string-width "^4.0.0" wordwrap@^1.0.0: version "1.0.0" - resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" + resolved "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== workerpool@6.2.1: version "6.2.1" - resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz" integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + 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" @@ -8466,7 +8428,7 @@ workerpool@6.2.1: wrap-ansi@^6.0.1: version "6.2.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== dependencies: ansi-styles "^4.0.0" @@ -8475,7 +8437,7 @@ wrap-ansi@^6.0.1: wrap-ansi@^8.1.0: version "8.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz" integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== dependencies: ansi-styles "^6.1.0" @@ -8484,7 +8446,7 @@ wrap-ansi@^8.1.0: wrap-ansi@^9.0.0: version "9.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-9.0.0.tgz#1a3dc8b70d85eeb8398ddfb1e4a02cd186e58b3e" + resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-9.0.0.tgz" integrity sha512-G8ura3S+3Z2G+mkgNRq8dqaFZAuxfsxpBB8OCTGRTCtp+l/v9nbFNmCUP1BZMts3G1142MsZfn6eeUKrr4PD1Q== dependencies: ansi-styles "^6.2.1" @@ -8493,12 +8455,12 @@ wrap-ansi@^9.0.0: wrappy@1: version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== write-file-atomic@^4.0.0: version "4.0.2" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz" integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== dependencies: imurmurhash "^0.1.4" @@ -8506,7 +8468,7 @@ write-file-atomic@^4.0.0: write-file-atomic@^5.0.0, write-file-atomic@^5.0.1: version "5.0.1" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-5.0.1.tgz#68df4717c55c6fa4281a7860b4c2ba0a6d2b11e7" + resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-5.0.1.tgz" integrity sha512-+QU2zd6OTD8XWIJCbffaiQeH9U73qIqafo1x6V1snCWYGJf6cVE0cDR4D8xRzcEnfI21IFrUPzPGtcPf8AC+Rw== dependencies: imurmurhash "^0.1.4" @@ -8514,37 +8476,37 @@ write-file-atomic@^5.0.0, write-file-atomic@^5.0.1: y18n@^5.0.5: version "5.0.8" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== yallist@^4.0.0: version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" + resolved "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz" integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== yaml@2.3.4: version "2.3.4" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.3.4.tgz#53fc1d514be80aabf386dc6001eb29bf3b7523b2" + resolved "https://registry.npmjs.org/yaml/-/yaml-2.3.4.tgz" integrity sha512-8aAvwVUSHpfEqTQ4w/KMlf3HcRdt50E5ODIQJBw1fQ5RL34xabzxtUlzTXVqc4rkZsPbvrXKWnABCD7kWSmocA== yargs-parser@20.2.4: version "20.2.4" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== yargs-parser@^20.2.2, yargs-parser@^20.2.3: version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== yargs-parser@^21.1.1: version "21.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs-unparser@2.0.0: version "2.0.0" - resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== dependencies: camelcase "^6.0.0" @@ -8554,7 +8516,7 @@ yargs-unparser@2.0.0: yargs@16.2.0: version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: cliui "^7.0.2" @@ -8567,7 +8529,7 @@ yargs@16.2.0: yargs@^17.0.0: version "17.7.2" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + resolved "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz" integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" @@ -8580,7 +8542,7 @@ yargs@^17.0.0: yeoman-environment@^3.15.1: version "3.19.3" - resolved "https://registry.yarnpkg.com/yeoman-environment/-/yeoman-environment-3.19.3.tgz#49c2339805fdf695fac42c88334a1daa94ee8b6c" + resolved "https://registry.npmjs.org/yeoman-environment/-/yeoman-environment-3.19.3.tgz" integrity sha512-/+ODrTUHtlDPRH9qIC0JREH8+7nsRcjDl3Bxn2Xo/rvAaVvixH5275jHwg0C85g4QsF4P6M2ojfScPPAl+pLAg== dependencies: "@npmcli/arborist" "^4.0.4" @@ -8623,7 +8585,7 @@ yeoman-environment@^3.15.1: yeoman-generator@^5.8.0: version "5.9.0" - resolved "https://registry.yarnpkg.com/yeoman-generator/-/yeoman-generator-5.9.0.tgz#a83c9e391b0b3442536da677bc204cfa3f81f2c7" + resolved "https://registry.npmjs.org/yeoman-generator/-/yeoman-generator-5.9.0.tgz" integrity sha512-sN1e01Db4fdd8P/n/yYvizfy77HdbwzvXmPxps9Gwz2D24slegrkSn+qyj+0nmZhtFwGX2i/cH29QDrvAFT9Aw== dependencies: chalk "^4.1.0" @@ -8644,10 +8606,10 @@ yeoman-generator@^5.8.0: yn@3.1.1: version "3.1.1" - resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz" integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== From b4ef3d33350c0997ded5aa3d1d411ea6577f9e4b Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Tue, 30 Jan 2024 13:55:44 -0700 Subject: [PATCH 28/44] fix: clean up yarn.lock and node_modules if they exist --- src/commands/plugins/install.ts | 6 ++++-- src/commands/plugins/link.ts | 2 +- src/commands/plugins/uninstall.ts | 2 +- src/plugins.ts | 30 +++++++++++++++++++++++++----- 4 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/commands/plugins/install.ts b/src/commands/plugins/install.ts index 593ddf2b..b6a008b7 100644 --- a/src/commands/plugins/install.ts +++ b/src/commands/plugins/install.ts @@ -153,13 +153,15 @@ e.g. If you have a core plugin that has a 'hello' command, installing a user-ins }) try { if (p.type === 'npm') { - ux.action.start(`Installing plugin ${chalk.cyan(plugins.friendlyName(p.name) + '@' + p.tag)}`) + ux.action.start( + `${this.config.name}: Installing plugin ${chalk.cyan(plugins.friendlyName(p.name) + '@' + p.tag)}`, + ) plugin = await plugins.install(p.name, { force: flags.force, tag: p.tag, }) } else { - ux.action.start(`Installing plugin ${chalk.cyan(p.url)}`) + ux.action.start(`${this.config.name}: Installing plugin ${chalk.cyan(p.url)}`) plugin = await plugins.install(p.url, {force: flags.force}) } } catch (error) { diff --git a/src/commands/plugins/link.ts b/src/commands/plugins/link.ts index ea2d9e89..e2134034 100644 --- a/src/commands/plugins/link.ts +++ b/src/commands/plugins/link.ts @@ -34,7 +34,7 @@ e.g. If you have a user-installed or core plugin that has a 'hello' command, ins verbose: flags.verbose, }) - ux.action.start(`Linking plugin ${chalk.cyan(args.path)}`) + ux.action.start(`${this.config.name}: Linking plugin ${chalk.cyan(args.path)}`) await plugins.link(args.path, {install: flags.install}) ux.action.stop() } diff --git a/src/commands/plugins/uninstall.ts b/src/commands/plugins/uninstall.ts index b7c516e0..9b34e535 100644 --- a/src/commands/plugins/uninstall.ts +++ b/src/commands/plugins/uninstall.ts @@ -50,7 +50,7 @@ export default class PluginsUninstall extends Command { if (argv.length === 0) argv.push('.') for (const plugin of argv as string[]) { const friendly = removeTags(plugins.friendlyName(plugin)) - ux.action.start(`Uninstalling ${friendly}`) + ux.action.start(`${this.config.name}: Uninstalling ${friendly}`) const unfriendly = await plugins.hasPlugin(removeTags(plugin)) if (!unfriendly) { const p = this.config.getPluginsList().find((p) => p.name === plugin) diff --git a/src/plugins.ts b/src/plugins.ts index 1aac1c69..bc0651af 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -85,6 +85,7 @@ export default class Plugins { } public async install(name: string, {force = false, tag = 'latest'} = {}): Promise { + await this.maybeCleanUp() try { this.debug(`installing plugin ${name}`) const options = {cwd: this.config.dataDir, prod: true} @@ -167,7 +168,6 @@ export default class Plugins { public async link(p: string, {install}: {install: boolean}): Promise { const c = await Config.load(resolve(p)) - ux.action.start(`${this.config.name}: linking plugin ${c.name}`) this.isValidPlugin(c) if (install) { @@ -249,6 +249,8 @@ export default class Plugins { let plugins = (await this.list()).filter((p): p is Interfaces.PJSON.PluginTypes.User => p.type === 'user') if (plugins.length === 0) return + await this.maybeCleanUp() + // migrate deprecated plugins const aliases = this.config.pjson.oclif.aliases || {} for (const [name, to] of Object.entries(aliases)) { @@ -261,10 +263,14 @@ export default class Plugins { plugins = plugins.filter((p) => p.name !== name) } - if (plugins.some((p) => Boolean(p.url))) { - await this.npm.update([], { - cwd: this.config.dataDir, - }) + const urlPlugins = plugins.filter((p) => Boolean(p.url)) + if (urlPlugins.length > 0) { + await this.npm.update( + urlPlugins.map((p) => p.name), + { + cwd: this.config.dataDir, + }, + ) } const npmPlugins = plugins.filter((p) => !p.url) @@ -319,6 +325,20 @@ export default class Plugins { }) } + private async maybeCleanUp(): Promise { + // If the yarn.lock exists, then we assume that the last install was done with an older major + // version of plugin-plugins that used yarn (v1). In this case, we want to remove the yarn.lock + // and node_modules to ensure a clean install or update. + if (await fileExists(join(this.config.dataDir, 'yarn.lock'))) { + this.debug('Found yarn.lock! Removing yarn.lock and node_modules...') + ux.action.status = 'Cleaning up' + await Promise.all([ + rm(join(this.config.dataDir, 'yarn.lock'), {force: true}), + rm(join(this.config.dataDir, 'node_modules'), {force: true, recursive: true}), + ]) + } + } + private normalizePlugins( input: Interfaces.PJSON.User['oclif']['plugins'], ): (Interfaces.PJSON.PluginTypes.Link | Interfaces.PJSON.PluginTypes.User)[] { From 57dda03d17a343ab5b1aa485a3546a6256fa13a9 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Wed, 31 Jan 2024 12:52:16 -0700 Subject: [PATCH 29/44] perf: spawn new process for removing node_modules --- src/plugins.ts | 15 ++++++++++++--- src/rm.ts | 5 +++++ 2 files changed, 17 insertions(+), 3 deletions(-) create mode 100644 src/rm.ts diff --git a/src/plugins.ts b/src/plugins.ts index 76ee215b..a60cc02d 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -1,7 +1,9 @@ import {Config, Errors, Interfaces, ux} from '@oclif/core' import makeDebug from 'debug' -import {access, mkdir, readFile, rm, writeFile} from 'node:fs/promises' +import {spawn} from 'node:child_process' +import {access, mkdir, readFile, rename, rm, writeFile} from 'node:fs/promises' import {dirname, join, resolve} from 'node:path' +import {fileURLToPath} from 'node:url' import {gt, valid, validRange} from 'semver' import {NPM} from './npm.js' @@ -334,11 +336,18 @@ export default class Plugins { // and node_modules to ensure a clean install or update. if (await fileExists(join(this.config.dataDir, 'yarn.lock'))) { this.debug('Found yarn.lock! Removing yarn.lock and node_modules...') - ux.action.status = 'Cleaning up' await Promise.all([ + rename(join(this.config.dataDir, 'node_modules'), join(this.config.dataDir, 'node_modules.old')), rm(join(this.config.dataDir, 'yarn.lock'), {force: true}), - rm(join(this.config.dataDir, 'node_modules'), {force: true, recursive: true}), ]) + + // Spawn a new process so that node_modules can be deleted asynchronously. + const rmScript = join(dirname(fileURLToPath(import.meta.url)), 'rm.js') + this.debug(`spawning ${rmScript} to remove node_modules.old`) + spawn(process.argv[0], [rmScript, join(this.config.dataDir, 'node_modules.old')], { + detached: true, + stdio: 'ignore', + }).unref() } } diff --git a/src/rm.ts b/src/rm.ts new file mode 100644 index 00000000..7f1515b6 --- /dev/null +++ b/src/rm.ts @@ -0,0 +1,5 @@ +import {rm} from 'node:fs/promises' + +const [pathToDelete] = process.argv.slice(2) + +await rm(pathToDelete, {force: true, recursive: true}) From a739a4ff8f2d848fa1a9af3cba3cb9162187e4b2 Mon Sep 17 00:00:00 2001 From: svc-cli-bot Date: Thu, 1 Feb 2024 21:17:28 +0000 Subject: [PATCH 30/44] chore(release): 5.0.0-beta.1 [skip ci] --- README.md | 38 +++++++++++++++++++++----------------- package.json | 2 +- 2 files changed, 22 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 90b41f0e..b83df6a4 100644 --- a/README.md +++ b/README.md @@ -91,9 +91,9 @@ For removing plugins that are no longer needed (either because they're sunset or - [`mycli plugins`](#mycli-plugins) - [`mycli plugins:inspect PLUGIN...`](#mycli-pluginsinspect-plugin) - [`mycli plugins:install PLUGIN...`](#mycli-pluginsinstall-plugin) -- [`mycli plugins:link PLUGIN`](#mycli-pluginslink-plugin) +- [`mycli plugins link PATH`](#mycli-plugins-link-path) - [`mycli plugins reset`](#mycli-plugins-reset) -- [`mycli plugins:uninstall PLUGIN...`](#mycli-pluginsuninstall-plugin) +- [`mycli plugins uninstall [PLUGIN]`](#mycli-plugins-uninstall-plugin) - [`mycli plugins update`](#mycli-plugins-update) ## `mycli plugins` @@ -117,7 +117,7 @@ EXAMPLES $ mycli plugins ``` -_See code: [src/commands/plugins/index.ts](https://github.com/oclif/plugin-plugins/blob/4.1.23/src/commands/plugins/index.ts)_ +_See code: [src/commands/plugins/index.ts](https://github.com/oclif/plugin-plugins/blob/4.1.24-beta.0/src/commands/plugins/index.ts)_ ## `mycli plugins:inspect PLUGIN...` @@ -144,7 +144,7 @@ EXAMPLES $ mycli plugins inspect myplugin ``` -_See code: [src/commands/plugins/inspect.ts](https://github.com/oclif/plugin-plugins/blob/4.1.23/src/commands/plugins/inspect.ts)_ +_See code: [src/commands/plugins/inspect.ts](https://github.com/oclif/plugin-plugins/blob/4.1.24-beta.0/src/commands/plugins/inspect.ts)_ ## `mycli plugins:install PLUGIN...` @@ -158,10 +158,10 @@ ARGUMENTS PLUGIN Plugin to install. FLAGS - -f, --force Run yarn install with force flag. + -f, --force Force npm to fetch remote resources even if a local copy exists on disk. -h, --help Show CLI help. - -s, --silent Silences yarn output. - -v, --verbose Show verbose yarn output. + -s, --silent Silences npm output. + -v, --verbose Show verbose npm output. GLOBAL FLAGS --json Format output as json. @@ -188,15 +188,15 @@ EXAMPLES $ mycli plugins install someuser/someplugin ``` -_See code: [src/commands/plugins/install.ts](https://github.com/oclif/plugin-plugins/blob/4.1.23/src/commands/plugins/install.ts)_ +_See code: [src/commands/plugins/install.ts](https://github.com/oclif/plugin-plugins/blob/4.1.24-beta.0/src/commands/plugins/install.ts)_ -## `mycli plugins:link PLUGIN` +## `mycli plugins link PATH` Links a plugin into the CLI for development. ``` USAGE - $ mycli plugins link PLUGIN + $ mycli plugins link PATH [-h] [--install] [-v] ARGUMENTS PATH [default: .] path to plugin @@ -218,7 +218,7 @@ EXAMPLES $ mycli plugins link myplugin ``` -_See code: [src/commands/plugins/link.ts](https://github.com/oclif/plugin-plugins/blob/4.1.23/src/commands/plugins/link.ts)_ +_See code: [src/commands/plugins/link.ts](https://github.com/oclif/plugin-plugins/blob/4.1.24-beta.0/src/commands/plugins/link.ts)_ ## `mycli plugins reset` @@ -226,18 +226,22 @@ Remove all user-installed and linked plugins. ``` USAGE - $ mycli plugins reset + $ mycli plugins reset [--hard] [--reinstall] + +FLAGS + --hard Delete node_modules and package manager related files in addition to uninstalling plugins. + --reinstall Reinstall all plugins after uninstalling. ``` -_See code: [src/commands/plugins/reset.ts](https://github.com/oclif/plugin-plugins/blob/4.1.23/src/commands/plugins/reset.ts)_ +_See code: [src/commands/plugins/reset.ts](https://github.com/oclif/plugin-plugins/blob/4.1.24-beta.0/src/commands/plugins/reset.ts)_ -## `mycli plugins:uninstall PLUGIN...` +## `mycli plugins uninstall [PLUGIN]` Removes a plugin from the CLI. ``` USAGE - $ mycli plugins uninstall PLUGIN... + $ mycli plugins uninstall [PLUGIN] [-h] [-v] ARGUMENTS PLUGIN plugin to uninstall @@ -257,7 +261,7 @@ EXAMPLES $ mycli plugins uninstall myplugin ``` -_See code: [src/commands/plugins/uninstall.ts](https://github.com/oclif/plugin-plugins/blob/4.1.23/src/commands/plugins/uninstall.ts)_ +_See code: [src/commands/plugins/uninstall.ts](https://github.com/oclif/plugin-plugins/blob/4.1.24-beta.0/src/commands/plugins/uninstall.ts)_ ## `mycli plugins update` @@ -275,6 +279,6 @@ DESCRIPTION Update installed plugins. ``` -_See code: [src/commands/plugins/update.ts](https://github.com/oclif/plugin-plugins/blob/4.1.23/src/commands/plugins/update.ts)_ +_See code: [src/commands/plugins/update.ts](https://github.com/oclif/plugin-plugins/blob/4.1.24-beta.0/src/commands/plugins/update.ts)_ diff --git a/package.json b/package.json index e6c00f57..f5c78970 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@oclif/plugin-plugins", "description": "plugins plugin for oclif", - "version": "5.0.0-beta.0", + "version": "5.0.0-beta.1", "author": "Salesforce", "bugs": "https://github.com/oclif/plugin-plugins/issues", "dependencies": { From 95f6cac0efb1004d582c49807816bb3475b24cdf Mon Sep 17 00:00:00 2001 From: svc-cli-bot Date: Thu, 22 Feb 2024 19:41:49 +0000 Subject: [PATCH 31/44] chore(release): 5.0.0-beta.2 [skip ci] --- README.md | 44 +++++++++++++++----------------------------- package.json | 2 +- 2 files changed, 16 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 55bf1450..3fba626d 100644 --- a/README.md +++ b/README.md @@ -16,14 +16,7 @@ plugins plugin for oclif - [Aliases](#aliases) - [Environment Variables](#environment-variables) - [Commands](#commands) - - [`mycli plugins`](#mycli-plugins) - - [`mycli plugins:inspect PLUGIN...`](#mycli-pluginsinspect-plugin) - - [`mycli plugins:install PLUGIN...`](#mycli-pluginsinstall-plugin) - - [`mycli plugins link PATH`](#mycli-plugins-link-path) - - [`mycli plugins reset`](#mycli-plugins-reset) - - [`mycli plugins uninstall [PLUGIN]`](#mycli-plugins-uninstall-plugin) - - [`mycli plugins update`](#mycli-plugins-update) - + # What is this? @@ -95,20 +88,13 @@ For removing plugins that are no longer needed (either because they're sunset or -- [@oclif/plugin-plugins](#oclifplugin-plugins) -- [What is this?](#what-is-this) -- [Usage](#usage) -- [Friendly names](#friendly-names) -- [Aliases](#aliases) -- [Environment Variables](#environment-variables) -- [Commands](#commands) - - [`mycli plugins`](#mycli-plugins) - - [`mycli plugins:inspect PLUGIN...`](#mycli-pluginsinspect-plugin) - - [`mycli plugins:install PLUGIN...`](#mycli-pluginsinstall-plugin) - - [`mycli plugins link PATH`](#mycli-plugins-link-path) - - [`mycli plugins reset`](#mycli-plugins-reset) - - [`mycli plugins uninstall [PLUGIN]`](#mycli-plugins-uninstall-plugin) - - [`mycli plugins update`](#mycli-plugins-update) +- [`mycli plugins`](#mycli-plugins) +- [`mycli plugins:inspect PLUGIN...`](#mycli-pluginsinspect-plugin) +- [`mycli plugins:install PLUGIN...`](#mycli-pluginsinstall-plugin) +- [`mycli plugins link PATH`](#mycli-plugins-link-path) +- [`mycli plugins reset`](#mycli-plugins-reset) +- [`mycli plugins uninstall [PLUGIN]`](#mycli-plugins-uninstall-plugin) +- [`mycli plugins update`](#mycli-plugins-update) ## `mycli plugins` @@ -131,7 +117,7 @@ EXAMPLES $ mycli plugins ``` -_See code: [src/commands/plugins/index.ts](https://github.com/oclif/plugin-plugins/blob/4.2.5/src/commands/plugins/index.ts)_ +_See code: [src/commands/plugins/index.ts](https://github.com/oclif/plugin-plugins/blob/4.2.6-beta.0/src/commands/plugins/index.ts)_ ## `mycli plugins:inspect PLUGIN...` @@ -158,7 +144,7 @@ EXAMPLES $ mycli plugins inspect myplugin ``` -_See code: [src/commands/plugins/inspect.ts](https://github.com/oclif/plugin-plugins/blob/4.2.5/src/commands/plugins/inspect.ts)_ +_See code: [src/commands/plugins/inspect.ts](https://github.com/oclif/plugin-plugins/blob/4.2.6-beta.0/src/commands/plugins/inspect.ts)_ ## `mycli plugins:install PLUGIN...` @@ -202,7 +188,7 @@ EXAMPLES $ mycli plugins install someuser/someplugin ``` -_See code: [src/commands/plugins/install.ts](https://github.com/oclif/plugin-plugins/blob/4.2.5/src/commands/plugins/install.ts)_ +_See code: [src/commands/plugins/install.ts](https://github.com/oclif/plugin-plugins/blob/4.2.6-beta.0/src/commands/plugins/install.ts)_ ## `mycli plugins link PATH` @@ -232,7 +218,7 @@ EXAMPLES $ mycli plugins link myplugin ``` -_See code: [src/commands/plugins/link.ts](https://github.com/oclif/plugin-plugins/blob/4.2.5/src/commands/plugins/link.ts)_ +_See code: [src/commands/plugins/link.ts](https://github.com/oclif/plugin-plugins/blob/4.2.6-beta.0/src/commands/plugins/link.ts)_ ## `mycli plugins reset` @@ -247,7 +233,7 @@ FLAGS --reinstall Reinstall all plugins after uninstalling. ``` -_See code: [src/commands/plugins/reset.ts](https://github.com/oclif/plugin-plugins/blob/4.2.5/src/commands/plugins/reset.ts)_ +_See code: [src/commands/plugins/reset.ts](https://github.com/oclif/plugin-plugins/blob/4.2.6-beta.0/src/commands/plugins/reset.ts)_ ## `mycli plugins uninstall [PLUGIN]` @@ -275,7 +261,7 @@ EXAMPLES $ mycli plugins uninstall myplugin ``` -_See code: [src/commands/plugins/uninstall.ts](https://github.com/oclif/plugin-plugins/blob/4.2.5/src/commands/plugins/uninstall.ts)_ +_See code: [src/commands/plugins/uninstall.ts](https://github.com/oclif/plugin-plugins/blob/4.2.6-beta.0/src/commands/plugins/uninstall.ts)_ ## `mycli plugins update` @@ -293,6 +279,6 @@ DESCRIPTION Update installed plugins. ``` -_See code: [src/commands/plugins/update.ts](https://github.com/oclif/plugin-plugins/blob/4.2.5/src/commands/plugins/update.ts)_ +_See code: [src/commands/plugins/update.ts](https://github.com/oclif/plugin-plugins/blob/4.2.6-beta.0/src/commands/plugins/update.ts)_ diff --git a/package.json b/package.json index e007ae9e..464ec0e3 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@oclif/plugin-plugins", "description": "plugins plugin for oclif", - "version": "5.0.0-beta.1", + "version": "5.0.0-beta.2", "author": "Salesforce", "bugs": "https://github.com/oclif/plugin-plugins/issues", "dependencies": { From 6581914da0dc3b5b9470bb4604736c7efddcc9f1 Mon Sep 17 00:00:00 2001 From: svc-cli-bot Date: Thu, 7 Mar 2024 17:43:33 +0000 Subject: [PATCH 32/44] chore(release): 5.0.0-beta.3 [skip ci] --- README.md | 44 +++++++++++++++----------------------------- package.json | 2 +- 2 files changed, 16 insertions(+), 30 deletions(-) diff --git a/README.md b/README.md index 99e84bad..23929275 100644 --- a/README.md +++ b/README.md @@ -16,14 +16,7 @@ plugins plugin for oclif - [Aliases](#aliases) - [Environment Variables](#environment-variables) - [Commands](#commands) - - [`mycli plugins`](#mycli-plugins) - - [`mycli plugins:inspect PLUGIN...`](#mycli-pluginsinspect-plugin) - - [`mycli plugins:install PLUGIN...`](#mycli-pluginsinstall-plugin) - - [`mycli plugins link PATH`](#mycli-plugins-link-path) - - [`mycli plugins reset`](#mycli-plugins-reset) - - [`mycli plugins uninstall [PLUGIN]`](#mycli-plugins-uninstall-plugin) - - [`mycli plugins update`](#mycli-plugins-update) - + # What is this? @@ -95,20 +88,13 @@ For removing plugins that are no longer needed (either because they're sunset or -- [@oclif/plugin-plugins](#oclifplugin-plugins) -- [What is this?](#what-is-this) -- [Usage](#usage) -- [Friendly names](#friendly-names) -- [Aliases](#aliases) -- [Environment Variables](#environment-variables) -- [Commands](#commands) - - [`mycli plugins`](#mycli-plugins) - - [`mycli plugins:inspect PLUGIN...`](#mycli-pluginsinspect-plugin) - - [`mycli plugins:install PLUGIN...`](#mycli-pluginsinstall-plugin) - - [`mycli plugins link PATH`](#mycli-plugins-link-path) - - [`mycli plugins reset`](#mycli-plugins-reset) - - [`mycli plugins uninstall [PLUGIN]`](#mycli-plugins-uninstall-plugin) - - [`mycli plugins update`](#mycli-plugins-update) +- [`mycli plugins`](#mycli-plugins) +- [`mycli plugins:inspect PLUGIN...`](#mycli-pluginsinspect-plugin) +- [`mycli plugins:install PLUGIN...`](#mycli-pluginsinstall-plugin) +- [`mycli plugins link PATH`](#mycli-plugins-link-path) +- [`mycli plugins reset`](#mycli-plugins-reset) +- [`mycli plugins uninstall [PLUGIN]`](#mycli-plugins-uninstall-plugin) +- [`mycli plugins update`](#mycli-plugins-update) ## `mycli plugins` @@ -131,7 +117,7 @@ EXAMPLES $ mycli plugins ``` -_See code: [src/commands/plugins/index.ts](https://github.com/oclif/plugin-plugins/blob/4.2.6-beta.0/src/commands/plugins/index.ts)_ +_See code: [src/commands/plugins/index.ts](https://github.com/oclif/plugin-plugins/blob/4.3.3-beta.0/src/commands/plugins/index.ts)_ ## `mycli plugins:inspect PLUGIN...` @@ -158,7 +144,7 @@ EXAMPLES $ mycli plugins inspect myplugin ``` -_See code: [src/commands/plugins/inspect.ts](https://github.com/oclif/plugin-plugins/blob/4.2.6-beta.0/src/commands/plugins/inspect.ts)_ +_See code: [src/commands/plugins/inspect.ts](https://github.com/oclif/plugin-plugins/blob/4.3.3-beta.0/src/commands/plugins/inspect.ts)_ ## `mycli plugins:install PLUGIN...` @@ -202,7 +188,7 @@ EXAMPLES $ mycli plugins install someuser/someplugin ``` -_See code: [src/commands/plugins/install.ts](https://github.com/oclif/plugin-plugins/blob/4.2.6-beta.0/src/commands/plugins/install.ts)_ +_See code: [src/commands/plugins/install.ts](https://github.com/oclif/plugin-plugins/blob/4.3.3-beta.0/src/commands/plugins/install.ts)_ ## `mycli plugins link PATH` @@ -232,7 +218,7 @@ EXAMPLES $ mycli plugins link myplugin ``` -_See code: [src/commands/plugins/link.ts](https://github.com/oclif/plugin-plugins/blob/4.2.6-beta.0/src/commands/plugins/link.ts)_ +_See code: [src/commands/plugins/link.ts](https://github.com/oclif/plugin-plugins/blob/4.3.3-beta.0/src/commands/plugins/link.ts)_ ## `mycli plugins reset` @@ -247,7 +233,7 @@ FLAGS --reinstall Reinstall all plugins after uninstalling. ``` -_See code: [src/commands/plugins/reset.ts](https://github.com/oclif/plugin-plugins/blob/4.2.6-beta.0/src/commands/plugins/reset.ts)_ +_See code: [src/commands/plugins/reset.ts](https://github.com/oclif/plugin-plugins/blob/4.3.3-beta.0/src/commands/plugins/reset.ts)_ ## `mycli plugins uninstall [PLUGIN]` @@ -275,7 +261,7 @@ EXAMPLES $ mycli plugins uninstall myplugin ``` -_See code: [src/commands/plugins/uninstall.ts](https://github.com/oclif/plugin-plugins/blob/4.2.6-beta.0/src/commands/plugins/uninstall.ts)_ +_See code: [src/commands/plugins/uninstall.ts](https://github.com/oclif/plugin-plugins/blob/4.3.3-beta.0/src/commands/plugins/uninstall.ts)_ ## `mycli plugins update` @@ -293,6 +279,6 @@ DESCRIPTION Update installed plugins. ``` -_See code: [src/commands/plugins/update.ts](https://github.com/oclif/plugin-plugins/blob/4.2.6-beta.0/src/commands/plugins/update.ts)_ +_See code: [src/commands/plugins/update.ts](https://github.com/oclif/plugin-plugins/blob/4.3.3-beta.0/src/commands/plugins/update.ts)_ diff --git a/package.json b/package.json index 9b43601c..758e37a9 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@oclif/plugin-plugins", "description": "plugins plugin for oclif", - "version": "5.0.0-beta.2", + "version": "5.0.0-beta.3", "author": "Salesforce", "bugs": "https://github.com/oclif/plugin-plugins/issues", "dependencies": { From 7c33ba1f268d23e4db3c0a2d4d69fb365d6979d1 Mon Sep 17 00:00:00 2001 From: svc-cli-bot Date: Thu, 14 Mar 2024 18:13:15 +0000 Subject: [PATCH 33/44] chore(release): 5.0.0-beta.4 [skip ci] --- README.md | 32 ++++++++++++++++---------------- package.json | 2 +- 2 files changed, 17 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 57baee12..8001854c 100644 --- a/README.md +++ b/README.md @@ -91,9 +91,9 @@ For removing plugins that are no longer needed (either because they're sunset or - [`mycli plugins`](#mycli-plugins) - [`mycli plugins:inspect PLUGIN...`](#mycli-pluginsinspect-plugin) - [`mycli plugins:install PLUGIN...`](#mycli-pluginsinstall-plugin) -- [`mycli plugins:link PLUGIN`](#mycli-pluginslink-plugin) +- [`mycli plugins link PATH`](#mycli-plugins-link-path) - [`mycli plugins reset`](#mycli-plugins-reset) -- [`mycli plugins:uninstall PLUGIN...`](#mycli-pluginsuninstall-plugin) +- [`mycli plugins uninstall [PLUGIN]`](#mycli-plugins-uninstall-plugin) - [`mycli plugins update`](#mycli-plugins-update) ## `mycli plugins` @@ -117,7 +117,7 @@ EXAMPLES $ mycli plugins ``` -_See code: [src/commands/plugins/index.ts](https://github.com/oclif/plugin-plugins/blob/5.0.0-beta.3/src/commands/plugins/index.ts)_ +_See code: [src/commands/plugins/index.ts](https://github.com/oclif/plugin-plugins/blob/4.3.6-beta.0/src/commands/plugins/index.ts)_ ## `mycli plugins:inspect PLUGIN...` @@ -144,7 +144,7 @@ EXAMPLES $ mycli plugins inspect myplugin ``` -_See code: [src/commands/plugins/inspect.ts](https://github.com/oclif/plugin-plugins/blob/5.0.0-beta.3/src/commands/plugins/inspect.ts)_ +_See code: [src/commands/plugins/inspect.ts](https://github.com/oclif/plugin-plugins/blob/4.3.6-beta.0/src/commands/plugins/inspect.ts)_ ## `mycli plugins:install PLUGIN...` @@ -158,10 +158,10 @@ ARGUMENTS PLUGIN Plugin to install. FLAGS - -f, --force Run yarn install with force flag. + -f, --force Force npm to fetch remote resources even if a local copy exists on disk. -h, --help Show CLI help. - -s, --silent Silences yarn output. - -v, --verbose Show verbose yarn output. + -s, --silent Silences npm output. + -v, --verbose Show verbose npm output. GLOBAL FLAGS --json Format output as json. @@ -188,15 +188,15 @@ EXAMPLES $ mycli plugins install someuser/someplugin ``` -_See code: [src/commands/plugins/install.ts](https://github.com/oclif/plugin-plugins/blob/5.0.0-beta.3/src/commands/plugins/install.ts)_ +_See code: [src/commands/plugins/install.ts](https://github.com/oclif/plugin-plugins/blob/4.3.6-beta.0/src/commands/plugins/install.ts)_ -## `mycli plugins:link PLUGIN` +## `mycli plugins link PATH` Links a plugin into the CLI for development. ``` USAGE - $ mycli plugins link PLUGIN + $ mycli plugins link PATH [-h] [--install] [-v] ARGUMENTS PATH [default: .] path to plugin @@ -218,7 +218,7 @@ EXAMPLES $ mycli plugins link myplugin ``` -_See code: [src/commands/plugins/link.ts](https://github.com/oclif/plugin-plugins/blob/5.0.0-beta.3/src/commands/plugins/link.ts)_ +_See code: [src/commands/plugins/link.ts](https://github.com/oclif/plugin-plugins/blob/4.3.6-beta.0/src/commands/plugins/link.ts)_ ## `mycli plugins reset` @@ -233,15 +233,15 @@ FLAGS --reinstall Reinstall all plugins after uninstalling. ``` -_See code: [src/commands/plugins/reset.ts](https://github.com/oclif/plugin-plugins/blob/5.0.0-beta.3/src/commands/plugins/reset.ts)_ +_See code: [src/commands/plugins/reset.ts](https://github.com/oclif/plugin-plugins/blob/4.3.6-beta.0/src/commands/plugins/reset.ts)_ -## `mycli plugins:uninstall PLUGIN...` +## `mycli plugins uninstall [PLUGIN]` Removes a plugin from the CLI. ``` USAGE - $ mycli plugins uninstall PLUGIN... + $ mycli plugins uninstall [PLUGIN] [-h] [-v] ARGUMENTS PLUGIN plugin to uninstall @@ -261,7 +261,7 @@ EXAMPLES $ mycli plugins uninstall myplugin ``` -_See code: [src/commands/plugins/uninstall.ts](https://github.com/oclif/plugin-plugins/blob/5.0.0-beta.3/src/commands/plugins/uninstall.ts)_ +_See code: [src/commands/plugins/uninstall.ts](https://github.com/oclif/plugin-plugins/blob/4.3.6-beta.0/src/commands/plugins/uninstall.ts)_ ## `mycli plugins update` @@ -279,6 +279,6 @@ DESCRIPTION Update installed plugins. ``` -_See code: [src/commands/plugins/update.ts](https://github.com/oclif/plugin-plugins/blob/5.0.0-beta.3/src/commands/plugins/update.ts)_ +_See code: [src/commands/plugins/update.ts](https://github.com/oclif/plugin-plugins/blob/4.3.6-beta.0/src/commands/plugins/update.ts)_ diff --git a/package.json b/package.json index f9a4ff65..ad500404 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@oclif/plugin-plugins", "description": "plugins plugin for oclif", - "version": "5.0.0-beta.3", + "version": "5.0.0-beta.4", "author": "Salesforce", "bugs": "https://github.com/oclif/plugin-plugins/issues", "dependencies": { From a12705978b82feba55578d8c8864535d7d10095d Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 21 Mar 2024 10:21:17 -0600 Subject: [PATCH 34/44] fix: reinstall plugin from url if applicable --- src/commands/plugins/reset.ts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/commands/plugins/reset.ts b/src/commands/plugins/reset.ts index c932a718..be072fbe 100644 --- a/src/commands/plugins/reset.ts +++ b/src/commands/plugins/reset.ts @@ -46,7 +46,6 @@ export default class Reset extends Command { } await Promise.all(filesToDelete.map((file) => rm(file, {force: true, recursive: true}))) - for (const plugin of userPlugins) { this.log(`✅ ${plugin.type === 'link' ? 'Unlinked' : 'Uninstalled'} ${plugin.name}`) } @@ -78,7 +77,9 @@ export default class Reset extends Command { if (plugin.type === 'user') { try { - const newPlugin = await plugins.install(plugin.name, {tag: plugin.tag}) + const newPlugin = plugin.url + ? await plugins.install(plugin.url) + : await plugins.install(plugin.name, {tag: plugin.tag}) const newVersion = chalk.dim(`-> ${newPlugin.version}`) const tag = plugin.tag ? `@${plugin.tag}` : plugin.url ? ` (${plugin.url})` : '' this.log(`✅ Reinstalled ${plugin.name}${tag} ${newVersion}`) From d9a67ae98bd43ca7f243d75387b77a1464a96534 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 21 Mar 2024 13:18:55 -0600 Subject: [PATCH 35/44] feat: better logging --- src/commands/plugins/inspect.ts | 3 +- src/commands/plugins/install.ts | 29 +++++++++------ src/commands/plugins/link.ts | 3 +- src/commands/plugins/uninstall.ts | 3 +- src/commands/plugins/update.ts | 3 +- src/index.ts | 1 - src/log-level.ts | 18 +++++++++ src/npm.ts | 61 +++++++++++++++++++------------ src/plugins.ts | 58 +++++++++++++++++++++++++---- 9 files changed, 132 insertions(+), 47 deletions(-) create mode 100644 src/log-level.ts diff --git a/src/commands/plugins/inspect.ts b/src/commands/plugins/inspect.ts index 8f89e01a..776c5724 100644 --- a/src/commands/plugins/inspect.ts +++ b/src/commands/plugins/inspect.ts @@ -3,6 +3,7 @@ import chalk from 'chalk' import {readFile} from 'node:fs/promises' import {dirname, join, sep} from 'node:path' +import {determineLogLevel} from '../../log-level.js' import Plugins from '../../plugins.js' import {sortBy} from '../../util.js' @@ -142,7 +143,7 @@ export default class PluginsInspect extends Command { const {argv, flags} = await this.parse(PluginsInspect) this.plugins = new Plugins({ config: this.config, - verbose: flags.verbose, + logLevel: determineLogLevel(this.config, flags, 'silent'), }) const aliases = this.config.pjson.oclif.aliases ?? {} const plugins: PluginWithDeps[] = [] diff --git a/src/commands/plugins/install.ts b/src/commands/plugins/install.ts index b6a008b7..78ba5fca 100644 --- a/src/commands/plugins/install.ts +++ b/src/commands/plugins/install.ts @@ -3,6 +3,7 @@ import {Args, Command, Errors, Flags, Interfaces, ux} from '@oclif/core' import chalk from 'chalk' import validate from 'validate-npm-package-name' +import {determineLogLevel} from '../../log-level.js' import Plugins from '../../plugins.js' export default class PluginsInstall extends Command { @@ -12,20 +13,28 @@ export default class PluginsInstall extends Command { plugin: Args.string({description: 'Plugin to install.', required: true}), } - static description = `Installs a plugin into the CLI. -Can be installed from npm or a git url. + static description = `Uses bundled npm executable to install plugins into <%= config.dataDir %> Installation of a user-installed plugin will override a core plugin. -e.g. If you have a core plugin that has a 'hello' command, installing a user-installed plugin with a 'hello' command will override the core plugin implementation. This is useful if a user needs to update core plugin functionality in the CLI without the need to patch and update the whole CLI. -` +Use the <%= config.scopedEnvVarKey('NPM_LOG_LEVEL') %> environment variable to set the npm loglevel. +Use the <%= config.scopedEnvVarKey('NPM_REGISTRY') %> environment variable to set the npm registry.` public static enableJsonFlag = true static examples = [ - '<%= config.bin %> <%= command.id %> <%- config.pjson.oclif.examplePlugin || "myplugin" %> ', - '<%= config.bin %> <%= command.id %> https://github.com/someuser/someplugin', - '<%= config.bin %> <%= command.id %> someuser/someplugin', + { + command: '<%= config.bin %> <%= command.id %> <%- config.pjson.oclif.examplePlugin || "myplugin" %> ', + description: 'Install a plugin from npm registry.', + }, + { + command: '<%= config.bin %> <%= command.id %> https://github.com/someuser/someplugin', + description: 'Install a plugin from a github url.', + }, + { + command: '<%= config.bin %> <%= command.id %> someuser/someplugin', + description: 'Install a plugin from a github slug.', + }, ] static flags = { @@ -64,7 +73,6 @@ e.g. If you have a core plugin that has a 'hello' command, installing a user-ins }), silent: Flags.boolean({ char: 's', - default: true, description: 'Silences npm output.', exclusive: ['verbose'], }), @@ -77,7 +85,7 @@ e.g. If you have a core plugin that has a 'hello' command, installing a user-ins static strict = false - static usage = 'plugins:install PLUGIN...' + static summary = 'Installs a plugin into <%= config.bin %>.' flags!: Interfaces.InferredFlags @@ -137,10 +145,9 @@ e.g. If you have a core plugin that has a 'hello' command, installing a user-ins async run(): Promise { const {argv, flags} = await this.parse(PluginsInstall) this.flags = flags - const plugins = new Plugins({ config: this.config, - verbose: this.flags.verbose, + logLevel: determineLogLevel(this.config, this.flags, 'notice'), }) const aliases = this.config.pjson.oclif.aliases || {} for (let name of argv as string[]) { diff --git a/src/commands/plugins/link.ts b/src/commands/plugins/link.ts index e2134034..eff58b02 100644 --- a/src/commands/plugins/link.ts +++ b/src/commands/plugins/link.ts @@ -1,6 +1,7 @@ import {Args, Command, Flags, ux} from '@oclif/core' import chalk from 'chalk' +import {determineLogLevel} from '../../log-level.js' import Plugins from '../../plugins.js' export default class PluginsLink extends Command { @@ -31,7 +32,7 @@ e.g. If you have a user-installed or core plugin that has a 'hello' command, ins const plugins = new Plugins({ config: this.config, - verbose: flags.verbose, + logLevel: determineLogLevel(this.config, flags, 'silent'), }) ux.action.start(`${this.config.name}: Linking plugin ${chalk.cyan(args.path)}`) diff --git a/src/commands/plugins/uninstall.ts b/src/commands/plugins/uninstall.ts index 9b34e535..9e464685 100644 --- a/src/commands/plugins/uninstall.ts +++ b/src/commands/plugins/uninstall.ts @@ -2,6 +2,7 @@ import {Args, Command, Flags, ux} from '@oclif/core' import chalk from 'chalk' +import {determineLogLevel} from '../../log-level.js' import Plugins from '../../plugins.js' function removeTags(plugin: string): string { @@ -44,7 +45,7 @@ export default class PluginsUninstall extends Command { const plugins = new Plugins({ config: this.config, - verbose: flags.verbose, + logLevel: determineLogLevel(this.config, flags, 'silent'), }) if (argv.length === 0) argv.push('.') diff --git a/src/commands/plugins/update.ts b/src/commands/plugins/update.ts index ebd44129..21ca6d5f 100644 --- a/src/commands/plugins/update.ts +++ b/src/commands/plugins/update.ts @@ -1,5 +1,6 @@ import {Command, Flags, ux} from '@oclif/core' +import {determineLogLevel} from '../../log-level.js' import Plugins from '../../plugins.js' export default class PluginsUpdate extends Command { @@ -15,7 +16,7 @@ export default class PluginsUpdate extends Command { const plugins = new Plugins({ config: this.config, - verbose: flags.verbose, + logLevel: determineLogLevel(this.config, flags, 'silent'), }) ux.action.start(`${this.config.name}: Updating plugins`) diff --git a/src/index.ts b/src/index.ts index 6a4de0ee..0ebe088f 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,4 +1,3 @@ -export {default} from './plugins.js' import PluginsIndex from './commands/plugins/index.js' import PluginsInspect from './commands/plugins/inspect.js' import PluginsInstall from './commands/plugins/install.js' diff --git a/src/log-level.ts b/src/log-level.ts new file mode 100644 index 00000000..7d7989b4 --- /dev/null +++ b/src/log-level.ts @@ -0,0 +1,18 @@ +import {Config} from '@oclif/core' + +const LOG_LEVELS = ['silent', 'error', 'warn', 'notice', 'http', 'info', 'verbose', 'silly'] as const +export type LogLevel = (typeof LOG_LEVELS)[number] + +export function determineLogLevel( + config: Config, + flags: {silent?: boolean; verbose?: boolean}, + defaultLevel: LogLevel, +): LogLevel { + if (flags.verbose) return 'verbose' + if (flags.silent) return 'silent' + + const envVar = config.scopedEnvVar('NPM_LOG_LEVEL') + if (LOG_LEVELS.includes(envVar as LogLevel)) return envVar as LogLevel + + return defaultLevel +} diff --git a/src/npm.ts b/src/npm.ts index f628a01c..21bd74d4 100644 --- a/src/npm.ts +++ b/src/npm.ts @@ -6,18 +6,25 @@ import {createRequire} from 'node:module' import {join, sep} from 'node:path' import {npmRunPathEnv} from 'npm-run-path' +import {LogLevel} from './log-level.js' + const debug = makeDebug('@oclif/plugin-plugins:npm') type ExecOptions = { cwd: string - verbose?: boolean + logLevel: LogLevel } type InstallOptions = ExecOptions & { prod?: boolean } -async function fork(modulePath: string, args: string[] = [], {cwd, verbose}: ExecOptions): Promise { +export type NpmOutput = { + stderr: string[] + stdout: string[] +} + +async function fork(modulePath: string, args: string[] = [], {cwd, logLevel}: ExecOptions): Promise { return new Promise((resolve, reject) => { const forked = cpFork(modulePath, args, { cwd, @@ -37,23 +44,29 @@ async function fork(modulePath: string, args: string[] = [], {cwd, verbose}: Exe .filter(Boolean), stdio: [0, null, null, 'ipc'], }) - + const isNoisyLogLevel = logLevel !== 'silent' + const stderr: string[] = [] forked.stderr?.setEncoding('utf8') forked.stderr?.on('data', (d: Buffer) => { - if (verbose) ux.logToStderr(d.toString()) - else debug(d.toString().trimEnd()) + const output = d.toString().trimEnd() + stderr.push(output) + if (isNoisyLogLevel) ux.log(output) + else debug(output) }) + const stdout: string[] = [] forked.stdout?.setEncoding('utf8') forked.stdout?.on('data', (d: Buffer) => { - if (verbose) ux.log(d.toString()) - else debug(d.toString().trimEnd()) + const output = d.toString().trimEnd() + stdout.push(output) + if (isNoisyLogLevel) ux.log(output) + else debug(output) }) forked.on('error', reject) forked.on('exit', (code: number) => { if (code === 0) { - resolve() + resolve({stderr, stdout}) } else { reject( new Errors.CLIError(`${modulePath} ${args.join(' ')} exited with code ${code}`, { @@ -68,48 +81,50 @@ async function fork(modulePath: string, args: string[] = [], {cwd, verbose}: Exe export class NPM { private bin: string | undefined private config: Interfaces.Config - private verbose: boolean | undefined + private logLevel: LogLevel - public constructor({config, verbose}: {config: Interfaces.Config; verbose?: boolean}) { + public constructor({config, logLevel}: {config: Interfaces.Config; logLevel: LogLevel}) { this.config = config - this.verbose = verbose + this.logLevel = logLevel } - async exec(args: string[] = [], options: ExecOptions): Promise { + async exec(args: string[] = [], options: ExecOptions): Promise { const bin = await this.findNpm() debug('npm binary path', bin) - if (this.verbose) args.push('--loglevel=verbose') + + args.push(`--loglevel=${this.logLevel}`, '--no-fund') if (this.config.npmRegistry) args.push(`--registry=${this.config.npmRegistry}`) - if (this.verbose) { + if (options.logLevel !== 'notice' && options.logLevel !== 'silent') { ux.logToStderr(`${options.cwd}: ${bin} ${args.join(' ')}`) } debug(`${options.cwd}: ${bin} ${args.join(' ')}`) try { - await fork(bin, args, options) + const output = await fork(bin, args, options) debug('npm done') + return output } catch (error: unknown) { debug('npm error', error) throw error } } - async install(args: string[], opts: InstallOptions): Promise { + async install(args: string[], opts: InstallOptions): Promise { const prod = opts.prod ? ['--omit', 'dev'] : [] - await this.exec(['install', ...args, ...prod], opts) + return this.exec(['install', ...args, ...prod, '--no-audit'], opts) } - async uninstall(args: string[], opts: ExecOptions): Promise { - await this.exec(['uninstall', ...args], opts) + async uninstall(args: string[], opts: ExecOptions): Promise { + return this.exec(['uninstall', ...args], opts) } - async update(args: string[], opts: ExecOptions): Promise { - await this.exec(['update', ...args], opts) + async update(args: string[], opts: ExecOptions): Promise { + return this.exec(['update', ...args], opts) } - async view(args: string[], opts: ExecOptions): Promise { - await this.exec(['view', ...args], {...opts, verbose: this.verbose}) + async view(args: string[], opts: ExecOptions): Promise { + return this.exec(['view', ...args], {...opts, logLevel: 'silent'}) } /** diff --git a/src/plugins.ts b/src/plugins.ts index a60cc02d..0ed3bd92 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -1,4 +1,5 @@ import {Config, Errors, Interfaces, ux} from '@oclif/core' +import chalk from 'chalk' import makeDebug from 'debug' import {spawn} from 'node:child_process' import {access, mkdir, readFile, rename, rm, writeFile} from 'node:fs/promises' @@ -6,7 +7,8 @@ import {dirname, join, resolve} from 'node:path' import {fileURLToPath} from 'node:url' import {gt, valid, validRange} from 'semver' -import {NPM} from './npm.js' +import {LogLevel} from './log-level.js' +import {NPM, NpmOutput} from './npm.js' import {uniqWith} from './util.js' type UserPJSON = { @@ -43,16 +45,50 @@ function dedupePlugins( ) as (Interfaces.PJSON.PluginTypes.Link | Interfaces.PJSON.PluginTypes.User)[] } +function extractIssuesLocation( + bugs: {url: string} | string | undefined, + repository: {type: string; url: string} | string | undefined, +): string | undefined { + if (bugs) { + return typeof bugs === 'string' ? bugs : bugs.url + } + + if (repository) { + return typeof repository === 'string' ? repository : repository.url.replace('git+', '').replace('.git', '') + } +} + +function notifyUser(plugin: Config, output: NpmOutput): void { + const containsWarnings = [...output.stdout, ...output.stderr].some((l) => l.includes('npm WARN')) + if (containsWarnings) { + ux.logToStderr(chalk.bold.yellow(`\nThese warnings can only be addressed by the owner(s) of ${plugin.name}.`)) + + if (plugin.pjson.bugs || plugin.pjson.repository) { + ux.logToStderr( + `We suggest that you create an issue at ${extractIssuesLocation( + plugin.pjson.bugs, + plugin.pjson.repository, + )} and ask the plugin owners to address them.\n`, + ) + } + } +} + export default class Plugins { public config: Interfaces.Config public readonly npm: NPM private readonly debug: ReturnType + private readonly logLevel: LogLevel - constructor(options: {config: Interfaces.Config; verbose?: boolean}) { + constructor(options: {config: Interfaces.Config; logLevel?: LogLevel}) { this.config = options.config this.debug = makeDebug('@oclif/plugin-plugins') - this.npm = new NPM(options) + this.logLevel = options.logLevel ?? 'notice' + this.npm = new NPM({ + config: this.config, + logLevel: this.logLevel, + }) } public async add(...plugins: Interfaces.PJSON.PluginTypes[]): Promise { @@ -90,14 +126,14 @@ export default class Plugins { await this.maybeCleanUp() try { this.debug(`installing plugin ${name}`) - const options = {cwd: this.config.dataDir, prod: true} + const options = {cwd: this.config.dataDir, logLevel: this.logLevel, prod: true} await this.createPJSON() let plugin const args = force ? ['--force'] : [] if (name.includes(':')) { // url const url = name - await this.npm.install([...args, url], options) + const output = await this.npm.install([...args, url], options) const {dependencies} = await this.pjson() const {default: npa} = await import('npm-package-arg') const normalizedUrl = npa(url) @@ -119,6 +155,8 @@ export default class Plugins { userPlugins: false, }) + notifyUser(plugin, output) + this.isValidPlugin(plugin) await this.add({name: installedPluginName, type: 'user', url}) @@ -133,7 +171,7 @@ export default class Plugins { // validate that the package name exists in the npm registry before installing await this.npmHasPackage(name, true) - await this.npm.install([...args, `${name}@${tag}`], options) + const output = await this.npm.install([...args, `${name}@${tag}`], options) this.debug(`loading plugin ${name}...`) plugin = await Config.load({ @@ -143,7 +181,7 @@ export default class Plugins { userPlugins: false, }) this.debug(`finished loading plugin ${name} at root ${plugin.root}`) - + notifyUser(plugin, output) this.isValidPlugin(plugin) await this.add({name, tag: range ?? tag, type: 'user'}) @@ -176,6 +214,7 @@ export default class Plugins { if (install) { await this.npm.install([], { cwd: c.root, + logLevel: this.logLevel, prod: false, }) } @@ -240,6 +279,7 @@ export default class Plugins { if ((pjson.oclif.plugins ?? []).some((p) => typeof p === 'object' && p.type === 'user' && p.name === name)) { await this.npm.uninstall([name], { cwd: this.config.dataDir, + logLevel: this.logLevel, }) } } catch (error: unknown) { @@ -274,6 +314,7 @@ export default class Plugins { urlPlugins.map((p) => p.name), { cwd: this.config.dataDir, + logLevel: this.logLevel, }, ) } @@ -298,7 +339,7 @@ export default class Plugins { modifiedPlugins.push({...p, tag}) return `${p.name}@${tag}` }), - {cwd: this.config.dataDir, prod: true}, + {cwd: this.config.dataDir, logLevel: this.logLevel, prod: true}, ) } @@ -373,6 +414,7 @@ export default class Plugins { try { await this.npm.view([name], { cwd: this.config.dataDir, + logLevel: this.logLevel, }) this.debug(`Found ${name} in the registry.`) return true From 7167090276bb6f348d0713f2a21573b417e95587 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 21 Mar 2024 13:59:58 -0600 Subject: [PATCH 36/44] fix: uninstall mis-scoped plugin --- src/plugins.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/plugins.ts b/src/plugins.ts index 0ed3bd92..617399b6 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -114,9 +114,11 @@ export default class Plugins { name: string, ): Promise { const list = await this.list() + const friendlyName = this.friendlyName(name) + const unfriendlyName = this.unfriendlyName(name) ?? name return ( - list.find((p) => this.friendlyName(p.name) === this.friendlyName(name)) ?? // friendly - list.find((p) => this.unfriendlyName(p.name) === this.unfriendlyName(name)) ?? // unfriendly + list.find((p) => this.friendlyName(p.name) === friendlyName) ?? // friendly + list.find((p) => this.unfriendlyName(p.name) === unfriendlyName) ?? // unfriendly list.find((p) => p.type === 'link' && resolve(p.root) === resolve(name)) ?? // link false ) From 6fdb181024086499dc29797ff89039129da75d85 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 21 Mar 2024 14:57:16 -0600 Subject: [PATCH 37/44] fix: warn about missing expected files after github install --- src/plugins.ts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/plugins.ts b/src/plugins.ts index 617399b6..122e6377 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -3,7 +3,7 @@ import chalk from 'chalk' import makeDebug from 'debug' import {spawn} from 'node:child_process' import {access, mkdir, readFile, rename, rm, writeFile} from 'node:fs/promises' -import {dirname, join, resolve} from 'node:path' +import {basename, dirname, join, resolve} from 'node:path' import {fileURLToPath} from 'node:url' import {gt, valid, validRange} from 'semver' @@ -162,6 +162,23 @@ export default class Plugins { this.isValidPlugin(plugin) await this.add({name: installedPluginName, type: 'user', url}) + + // Check that the prepare script produced all the expected files + // If it didn't, it might be because the plugin doesn't have a prepare + // script that compiles the plugin from source. + const safeToNotExist = new Set(['oclif.manifest.json', 'oclif.lock', 'npm-shrinkwrap.json']) + const files = ((plugin.pjson.files ?? []) as string[]) + .map((f) => join(root, f)) + .filter((f) => !safeToNotExist.has(basename(f))) + + this.debug(`checking for existence of files: ${files.join(', ')}`) + const results = Object.fromEntries(await Promise.all(files?.map(async (f) => [f, await fileExists(f)]) ?? [])) + this.debug(results) + if (!Object.values(results).every(Boolean)) { + ux.warn( + `This plugin from github may not work as expected because the prepare script did not produce all the expected files.`, + ) + } } else { // npm const range = validRange(tag) From c07eccfffa26f67fb2630e67611f76eea1ad1ef2 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 21 Mar 2024 15:01:45 -0600 Subject: [PATCH 38/44] fix: add type --- src/plugins.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/plugins.ts b/src/plugins.ts index 122e6377..ab1d52dd 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -130,7 +130,7 @@ export default class Plugins { this.debug(`installing plugin ${name}`) const options = {cwd: this.config.dataDir, logLevel: this.logLevel, prod: true} await this.createPJSON() - let plugin + let plugin: Config const args = force ? ['--force'] : [] if (name.includes(':')) { // url From b799b38a4261c6c7dad19c0789c52c10e2d77370 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Thu, 21 Mar 2024 15:35:32 -0600 Subject: [PATCH 39/44] feat: improve ux when no output from npm --- src/npm.ts | 36 ++++++++++++++++++++++++++++-------- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/src/npm.ts b/src/npm.ts index 21bd74d4..53e57729 100644 --- a/src/npm.ts +++ b/src/npm.ts @@ -44,23 +44,43 @@ async function fork(modulePath: string, args: string[] = [], {cwd, logLevel}: Ex .filter(Boolean), stdio: [0, null, null, 'ipc'], }) - const isNoisyLogLevel = logLevel !== 'silent' + + const possibleLastLinesOfNpmInstall = ['up to date', 'added'] const stderr: string[] = [] + const stdout: string[] = [] + const loggedStderr: string[] = [] + const loggedStdout: string[] = [] + + const shouldPrint = (str: string): boolean => { + // For ux cleanliness purposes, don't print the final line of npm install output if + // the log level is 'notice' and there's no other output. + const noOtherOutput = loggedStderr.length === 0 && loggedStdout.length === 0 + const isLastLine = possibleLastLinesOfNpmInstall.some((line) => str.startsWith(line)) + if (noOtherOutput && isLastLine && logLevel === 'notice') { + return false + } + + return logLevel !== 'silent' + } + forked.stderr?.setEncoding('utf8') forked.stderr?.on('data', (d: Buffer) => { - const output = d.toString().trimEnd() + const output = d.toString().trim() stderr.push(output) - if (isNoisyLogLevel) ux.log(output) - else debug(output) + if (shouldPrint(output)) { + loggedStderr.push(output) + ux.log(output) + } else debug(output) }) - const stdout: string[] = [] forked.stdout?.setEncoding('utf8') forked.stdout?.on('data', (d: Buffer) => { - const output = d.toString().trimEnd() + const output = d.toString().trim() stdout.push(output) - if (isNoisyLogLevel) ux.log(output) - else debug(output) + if (shouldPrint(output)) { + loggedStdout.push(output) + ux.log(output) + } else debug(output) }) forked.on('error', reject) From fa30d5ee9f81bcddfd0dc859f714a953c27866d3 Mon Sep 17 00:00:00 2001 From: svc-cli-bot Date: Fri, 22 Mar 2024 14:38:56 +0000 Subject: [PATCH 40/44] chore(release): 5.0.0-beta.5 [skip ci] --- README.md | 199 +---------------------------------------------- docs/plugins.md | 201 ++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 2 +- 3 files changed, 205 insertions(+), 197 deletions(-) create mode 100644 docs/plugins.md diff --git a/README.md b/README.md index e24e0374..a233c279 100644 --- a/README.md +++ b/README.md @@ -15,6 +15,7 @@ plugins plugin for oclif - [Aliases](#aliases) - [Environment Variables](#environment-variables) - [Commands](#commands) +- [Command Topics](#command-topics) - [Contributing](#contributing) @@ -88,203 +89,9 @@ For removing plugins that are no longer needed (either because they're sunset or -- [`mycli plugins`](#mycli-plugins) -- [`mycli plugins:inspect PLUGIN...`](#mycli-pluginsinspect-plugin) -- [`mycli plugins install PLUGIN`](#mycli-plugins-install-plugin) -- [`mycli plugins link PATH`](#mycli-plugins-link-path) -- [`mycli plugins reset`](#mycli-plugins-reset) -- [`mycli plugins uninstall [PLUGIN]`](#mycli-plugins-uninstall-plugin) -- [`mycli plugins update`](#mycli-plugins-update) +# Command Topics -## `mycli plugins` - -List installed plugins. - -``` -USAGE - $ mycli plugins [--json] [--core] - -FLAGS - --core Show core plugins. - -GLOBAL FLAGS - --json Format output as json. - -DESCRIPTION - List installed plugins. - -EXAMPLES - $ mycli plugins -``` - -_See code: [src/commands/plugins/index.ts](https://github.com/oclif/plugin-plugins/blob/5.0.0-beta.4/src/commands/plugins/index.ts)_ - -## `mycli plugins:inspect PLUGIN...` - -Displays installation properties of a plugin. - -``` -USAGE - $ mycli plugins inspect PLUGIN... - -ARGUMENTS - PLUGIN... [default: .] Plugin to inspect. - -FLAGS - -h, --help Show CLI help. - -v, --verbose - -GLOBAL FLAGS - --json Format output as json. - -DESCRIPTION - Displays installation properties of a plugin. - -EXAMPLES - $ mycli plugins inspect myplugin -``` - -_See code: [src/commands/plugins/inspect.ts](https://github.com/oclif/plugin-plugins/blob/5.0.0-beta.4/src/commands/plugins/inspect.ts)_ - -## `mycli plugins install PLUGIN` - -Installs a plugin into mycli. - -``` -USAGE - $ mycli plugins install PLUGIN... [--json] [-f] [-h] [-s | -v] - -ARGUMENTS - PLUGIN... Plugin to install. - -FLAGS - -f, --force Force npm to fetch remote resources even if a local copy exists on disk. - -h, --help Show CLI help. - -s, --silent Silences npm output. - -v, --verbose Show verbose npm output. - -GLOBAL FLAGS - --json Format output as json. - -DESCRIPTION - Installs a plugin into mycli. - - Uses bundled npm executable to install plugins into /Users/ewillhoit/.local/share/@oclif/plugin-plugins - - Installation of a user-installed plugin will override a core plugin. - - Use the MYCLI_NPM_LOG_LEVEL environment variable to set the npm loglevel. - Use the MYCLI_NPM_REGISTRY environment variable to set the npm registry. - -ALIASES - $ mycli plugins add - -EXAMPLES - Install a plugin from npm registry. - - $ mycli plugins install myplugin - - Install a plugin from a github url. - - $ mycli plugins install https://github.com/someuser/someplugin - - Install a plugin from a github slug. - - $ mycli plugins install someuser/someplugin -``` - -_See code: [src/commands/plugins/install.ts](https://github.com/oclif/plugin-plugins/blob/5.0.0-beta.4/src/commands/plugins/install.ts)_ - -## `mycli plugins link PATH` - -Links a plugin into the CLI for development. - -``` -USAGE - $ mycli plugins link PATH [-h] [--install] [-v] - -ARGUMENTS - PATH [default: .] path to plugin - -FLAGS - -h, --help Show CLI help. - -v, --verbose - --[no-]install Install dependencies after linking the plugin. - -DESCRIPTION - Links a plugin into the CLI for development. - Installation of a linked plugin will override a user-installed or core plugin. - - e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello' - command will override the user-installed or core plugin implementation. This is useful for development work. - - -EXAMPLES - $ mycli plugins link myplugin -``` - -_See code: [src/commands/plugins/link.ts](https://github.com/oclif/plugin-plugins/blob/5.0.0-beta.4/src/commands/plugins/link.ts)_ - -## `mycli plugins reset` - -Remove all user-installed and linked plugins. - -``` -USAGE - $ mycli plugins reset [--hard] [--reinstall] - -FLAGS - --hard Delete node_modules and package manager related files in addition to uninstalling plugins. - --reinstall Reinstall all plugins after uninstalling. -``` - -_See code: [src/commands/plugins/reset.ts](https://github.com/oclif/plugin-plugins/blob/5.0.0-beta.4/src/commands/plugins/reset.ts)_ - -## `mycli plugins uninstall [PLUGIN]` - -Removes a plugin from the CLI. - -``` -USAGE - $ mycli plugins uninstall [PLUGIN...] [-h] [-v] - -ARGUMENTS - PLUGIN... plugin to uninstall - -FLAGS - -h, --help Show CLI help. - -v, --verbose - -DESCRIPTION - Removes a plugin from the CLI. - -ALIASES - $ mycli plugins unlink - $ mycli plugins remove - -EXAMPLES - $ mycli plugins uninstall myplugin -``` - -_See code: [src/commands/plugins/uninstall.ts](https://github.com/oclif/plugin-plugins/blob/5.0.0-beta.4/src/commands/plugins/uninstall.ts)_ - -## `mycli plugins update` - -Update installed plugins. - -``` -USAGE - $ mycli plugins update [-h] [-v] - -FLAGS - -h, --help Show CLI help. - -v, --verbose - -DESCRIPTION - Update installed plugins. -``` - -_See code: [src/commands/plugins/update.ts](https://github.com/oclif/plugin-plugins/blob/5.0.0-beta.4/src/commands/plugins/update.ts)_ +- [`mycli plugins`](docs/plugins.md) - List installed plugins. diff --git a/docs/plugins.md b/docs/plugins.md new file mode 100644 index 00000000..048647fd --- /dev/null +++ b/docs/plugins.md @@ -0,0 +1,201 @@ +# `mycli plugins` + +List installed plugins. + +- [`mycli plugins`](#mycli-plugins) +- [`mycli plugins:inspect PLUGIN...`](#mycli-pluginsinspect-plugin) +- [`mycli plugins install PLUGIN`](#mycli-plugins-install-plugin) +- [`mycli plugins link PATH`](#mycli-plugins-link-path) +- [`mycli plugins reset`](#mycli-plugins-reset) +- [`mycli plugins uninstall [PLUGIN]`](#mycli-plugins-uninstall-plugin) +- [`mycli plugins update`](#mycli-plugins-update) + +## `mycli plugins` + +List installed plugins. + +``` +USAGE + $ mycli plugins [--json] [--core] + +FLAGS + --core Show core plugins. + +GLOBAL FLAGS + --json Format output as json. + +DESCRIPTION + List installed plugins. + +EXAMPLES + $ mycli plugins +``` + +_See code: [src/commands/plugins/index.ts](https://github.com/oclif/plugin-plugins/blob/4.3.9-beta.0/src/commands/plugins/index.ts)_ + +## `mycli plugins:inspect PLUGIN...` + +Displays installation properties of a plugin. + +``` +USAGE + $ mycli plugins inspect PLUGIN... + +ARGUMENTS + PLUGIN... [default: .] Plugin to inspect. + +FLAGS + -h, --help Show CLI help. + -v, --verbose + +GLOBAL FLAGS + --json Format output as json. + +DESCRIPTION + Displays installation properties of a plugin. + +EXAMPLES + $ mycli plugins inspect myplugin +``` + +_See code: [src/commands/plugins/inspect.ts](https://github.com/oclif/plugin-plugins/blob/4.3.9-beta.0/src/commands/plugins/inspect.ts)_ + +## `mycli plugins install PLUGIN` + +Installs a plugin into mycli. + +``` +USAGE + $ mycli plugins install PLUGIN... [--json] [-f] [-h] [-s | -v] + +ARGUMENTS + PLUGIN... Plugin to install. + +FLAGS + -f, --force Force npm to fetch remote resources even if a local copy exists on disk. + -h, --help Show CLI help. + -s, --silent Silences npm output. + -v, --verbose Show verbose npm output. + +GLOBAL FLAGS + --json Format output as json. + +DESCRIPTION + Installs a plugin into mycli. + + Uses bundled npm executable to install plugins into /home/runner/.local/share/@oclif/plugin-plugins + + Installation of a user-installed plugin will override a core plugin. + + Use the MYCLI_NPM_LOG_LEVEL environment variable to set the npm loglevel. + Use the MYCLI_NPM_REGISTRY environment variable to set the npm registry. + +ALIASES + $ mycli plugins add + +EXAMPLES + Install a plugin from npm registry. + + $ mycli plugins install myplugin + + Install a plugin from a github url. + + $ mycli plugins install https://github.com/someuser/someplugin + + Install a plugin from a github slug. + + $ mycli plugins install someuser/someplugin +``` + +_See code: [src/commands/plugins/install.ts](https://github.com/oclif/plugin-plugins/blob/4.3.9-beta.0/src/commands/plugins/install.ts)_ + +## `mycli plugins link PATH` + +Links a plugin into the CLI for development. + +``` +USAGE + $ mycli plugins link PATH [-h] [--install] [-v] + +ARGUMENTS + PATH [default: .] path to plugin + +FLAGS + -h, --help Show CLI help. + -v, --verbose + --[no-]install Install dependencies after linking the plugin. + +DESCRIPTION + Links a plugin into the CLI for development. + Installation of a linked plugin will override a user-installed or core plugin. + + e.g. If you have a user-installed or core plugin that has a 'hello' command, installing a linked plugin with a 'hello' + command will override the user-installed or core plugin implementation. This is useful for development work. + + +EXAMPLES + $ mycli plugins link myplugin +``` + +_See code: [src/commands/plugins/link.ts](https://github.com/oclif/plugin-plugins/blob/4.3.9-beta.0/src/commands/plugins/link.ts)_ + +## `mycli plugins reset` + +Remove all user-installed and linked plugins. + +``` +USAGE + $ mycli plugins reset [--hard] [--reinstall] + +FLAGS + --hard Delete node_modules and package manager related files in addition to uninstalling plugins. + --reinstall Reinstall all plugins after uninstalling. +``` + +_See code: [src/commands/plugins/reset.ts](https://github.com/oclif/plugin-plugins/blob/4.3.9-beta.0/src/commands/plugins/reset.ts)_ + +## `mycli plugins uninstall [PLUGIN]` + +Removes a plugin from the CLI. + +``` +USAGE + $ mycli plugins uninstall [PLUGIN...] [-h] [-v] + +ARGUMENTS + PLUGIN... plugin to uninstall + +FLAGS + -h, --help Show CLI help. + -v, --verbose + +DESCRIPTION + Removes a plugin from the CLI. + +ALIASES + $ mycli plugins unlink + $ mycli plugins remove + +EXAMPLES + $ mycli plugins uninstall myplugin +``` + +_See code: [src/commands/plugins/uninstall.ts](https://github.com/oclif/plugin-plugins/blob/4.3.9-beta.0/src/commands/plugins/uninstall.ts)_ + +## `mycli plugins update` + +Update installed plugins. + +``` +USAGE + $ mycli plugins update [-h] [-v] + +FLAGS + -h, --help Show CLI help. + -v, --verbose + +DESCRIPTION + Update installed plugins. +``` + +_See code: [src/commands/plugins/update.ts](https://github.com/oclif/plugin-plugins/blob/4.3.9-beta.0/src/commands/plugins/update.ts)_ diff --git a/package.json b/package.json index 8386e6cd..a638743b 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@oclif/plugin-plugins", "description": "plugins plugin for oclif", - "version": "5.0.0-beta.4", + "version": "5.0.0-beta.5", "author": "Salesforce", "bugs": "https://github.com/oclif/plugin-plugins/issues", "dependencies": { From a53853b6eb3b9ce52abddb55527dcbd85a282daf Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Fri, 22 Mar 2024 10:05:15 -0600 Subject: [PATCH 41/44] fix: display name when uninstalling wiht no args --- src/commands/plugins/uninstall.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/commands/plugins/uninstall.ts b/src/commands/plugins/uninstall.ts index 9e464685..e7c3f30a 100644 --- a/src/commands/plugins/uninstall.ts +++ b/src/commands/plugins/uninstall.ts @@ -51,7 +51,6 @@ export default class PluginsUninstall extends Command { if (argv.length === 0) argv.push('.') for (const plugin of argv as string[]) { const friendly = removeTags(plugins.friendlyName(plugin)) - ux.action.start(`${this.config.name}: Uninstalling ${friendly}`) const unfriendly = await plugins.hasPlugin(removeTags(plugin)) if (!unfriendly) { const p = this.config.getPluginsList().find((p) => p.name === plugin) @@ -65,6 +64,8 @@ export default class PluginsUninstall extends Command { try { const {name} = unfriendly + const displayName = friendly === '.' ? name : friendly ?? name + ux.action.start(`${this.config.name}: Uninstalling ${displayName}`) await plugins.uninstall(name) } catch (error) { ux.action.stop(chalk.bold.red('failed')) From ac2c394d705d88ba80e898cff5a4a97896d2cf5b Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Fri, 22 Mar 2024 14:23:08 -0600 Subject: [PATCH 42/44] test: set timeout on install test --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a638743b..819922ab 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "prepack": "yarn build && oclif manifest && oclif readme && npm shrinkwrap", "prepare": "husky && yarn build", "pretest": "yarn build --noEmit && tsc -p test --noEmit", - "test:integration:install": "mocha \"test/**/install.integration.ts\"", + "test:integration:install": "mocha \"test/**/install.integration.ts\" --timeout 1200000", "test:integration:link": "mocha \"test/**/link.integration.ts\"", "test:integration:sf": "mocha \"test/**/sf.integration.ts\"", "test:integration": "mocha \"test/**/*.integration.ts\"", From 566af615991f188dc1f2363dc256563040332124 Mon Sep 17 00:00:00 2001 From: Mike Donnalley Date: Fri, 22 Mar 2024 15:06:08 -0600 Subject: [PATCH 43/44] fix: ensure dir exists before checking for name --- src/plugins.ts | 35 ++++++++++++++++++++--------------- 1 file changed, 20 insertions(+), 15 deletions(-) diff --git a/src/plugins.ts b/src/plugins.ts index ab1d52dd..03c14595 100644 --- a/src/plugins.ts +++ b/src/plugins.ts @@ -129,7 +129,7 @@ export default class Plugins { try { this.debug(`installing plugin ${name}`) const options = {cwd: this.config.dataDir, logLevel: this.logLevel, prod: true} - await this.createPJSON() + await this.ensurePJSON() let plugin: Config const args = force ? ['--force'] : [] if (name.includes(':')) { @@ -249,6 +249,7 @@ export default class Plugins { } public async maybeUnfriendlyName(name: string): Promise { + await this.ensurePJSON() const unfriendly = this.unfriendlyName(name) this.debug(`checking registry for expanded package name ${unfriendly}`) if (unfriendly && (await this.npmHasPackage(unfriendly))) { @@ -365,7 +366,7 @@ export default class Plugins { await this.add(...modifiedPlugins) } - private async createPJSON() { + private async ensurePJSON() { if (!(await fileExists(this.pjsonPath))) { this.debug(`creating ${this.pjsonPath} with pjson: ${JSON.stringify(initPJSON, null, 2)}`) await this.savePJSON(initPJSON) @@ -395,19 +396,23 @@ export default class Plugins { // version of plugin-plugins that used yarn (v1). In this case, we want to remove the yarn.lock // and node_modules to ensure a clean install or update. if (await fileExists(join(this.config.dataDir, 'yarn.lock'))) { - this.debug('Found yarn.lock! Removing yarn.lock and node_modules...') - await Promise.all([ - rename(join(this.config.dataDir, 'node_modules'), join(this.config.dataDir, 'node_modules.old')), - rm(join(this.config.dataDir, 'yarn.lock'), {force: true}), - ]) - - // Spawn a new process so that node_modules can be deleted asynchronously. - const rmScript = join(dirname(fileURLToPath(import.meta.url)), 'rm.js') - this.debug(`spawning ${rmScript} to remove node_modules.old`) - spawn(process.argv[0], [rmScript, join(this.config.dataDir, 'node_modules.old')], { - detached: true, - stdio: 'ignore', - }).unref() + try { + this.debug('Found yarn.lock! Removing yarn.lock and node_modules...') + await Promise.all([ + rename(join(this.config.dataDir, 'node_modules'), join(this.config.dataDir, 'node_modules.old')), + rm(join(this.config.dataDir, 'yarn.lock'), {force: true}), + ]) + + // Spawn a new process so that node_modules can be deleted asynchronously. + const rmScript = join(dirname(fileURLToPath(import.meta.url)), 'rm.js') + this.debug(`spawning ${rmScript} to remove node_modules.old`) + spawn(process.argv[0], [rmScript, join(this.config.dataDir, 'node_modules.old')], { + detached: true, + stdio: 'ignore', + }).unref() + } catch (error) { + this.debug('Error cleaning up yarn.lock and node_modules:', error) + } } } From 183be3f8868923ab61b838b64e0d173625ac93e2 Mon Sep 17 00:00:00 2001 From: svc-cli-bot Date: Mon, 25 Mar 2024 15:34:39 +0000 Subject: [PATCH 44/44] chore(release): 5.0.0-beta.6 [skip ci] --- docs/plugins.md | 14 +++++++------- package.json | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/docs/plugins.md b/docs/plugins.md index 048647fd..7ce068fb 100644 --- a/docs/plugins.md +++ b/docs/plugins.md @@ -31,7 +31,7 @@ EXAMPLES $ mycli plugins ``` -_See code: [src/commands/plugins/index.ts](https://github.com/oclif/plugin-plugins/blob/4.3.9-beta.0/src/commands/plugins/index.ts)_ +_See code: [src/commands/plugins/index.ts](https://github.com/oclif/plugin-plugins/blob/4.3.10-beta.0/src/commands/plugins/index.ts)_ ## `mycli plugins:inspect PLUGIN...` @@ -58,7 +58,7 @@ EXAMPLES $ mycli plugins inspect myplugin ``` -_See code: [src/commands/plugins/inspect.ts](https://github.com/oclif/plugin-plugins/blob/4.3.9-beta.0/src/commands/plugins/inspect.ts)_ +_See code: [src/commands/plugins/inspect.ts](https://github.com/oclif/plugin-plugins/blob/4.3.10-beta.0/src/commands/plugins/inspect.ts)_ ## `mycli plugins install PLUGIN` @@ -107,7 +107,7 @@ EXAMPLES $ mycli plugins install someuser/someplugin ``` -_See code: [src/commands/plugins/install.ts](https://github.com/oclif/plugin-plugins/blob/4.3.9-beta.0/src/commands/plugins/install.ts)_ +_See code: [src/commands/plugins/install.ts](https://github.com/oclif/plugin-plugins/blob/4.3.10-beta.0/src/commands/plugins/install.ts)_ ## `mycli plugins link PATH` @@ -137,7 +137,7 @@ EXAMPLES $ mycli plugins link myplugin ``` -_See code: [src/commands/plugins/link.ts](https://github.com/oclif/plugin-plugins/blob/4.3.9-beta.0/src/commands/plugins/link.ts)_ +_See code: [src/commands/plugins/link.ts](https://github.com/oclif/plugin-plugins/blob/4.3.10-beta.0/src/commands/plugins/link.ts)_ ## `mycli plugins reset` @@ -152,7 +152,7 @@ FLAGS --reinstall Reinstall all plugins after uninstalling. ``` -_See code: [src/commands/plugins/reset.ts](https://github.com/oclif/plugin-plugins/blob/4.3.9-beta.0/src/commands/plugins/reset.ts)_ +_See code: [src/commands/plugins/reset.ts](https://github.com/oclif/plugin-plugins/blob/4.3.10-beta.0/src/commands/plugins/reset.ts)_ ## `mycli plugins uninstall [PLUGIN]` @@ -180,7 +180,7 @@ EXAMPLES $ mycli plugins uninstall myplugin ``` -_See code: [src/commands/plugins/uninstall.ts](https://github.com/oclif/plugin-plugins/blob/4.3.9-beta.0/src/commands/plugins/uninstall.ts)_ +_See code: [src/commands/plugins/uninstall.ts](https://github.com/oclif/plugin-plugins/blob/4.3.10-beta.0/src/commands/plugins/uninstall.ts)_ ## `mycli plugins update` @@ -198,4 +198,4 @@ DESCRIPTION Update installed plugins. ``` -_See code: [src/commands/plugins/update.ts](https://github.com/oclif/plugin-plugins/blob/4.3.9-beta.0/src/commands/plugins/update.ts)_ +_See code: [src/commands/plugins/update.ts](https://github.com/oclif/plugin-plugins/blob/4.3.10-beta.0/src/commands/plugins/update.ts)_ diff --git a/package.json b/package.json index ce56a9a9..6281d68f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@oclif/plugin-plugins", "description": "plugins plugin for oclif", - "version": "5.0.0-beta.5", + "version": "5.0.0-beta.6", "author": "Salesforce", "bugs": "https://github.com/oclif/plugin-plugins/issues", "dependencies": {