From fc3403e007acd8d22a87fdb522194ee6cbd412ae Mon Sep 17 00:00:00 2001 From: Willie Ruemmele Date: Fri, 24 Nov 2023 15:32:21 -0400 Subject: [PATCH] feat!: migrate to esm (#992) * feat!: migrate to esm * chore: building * test: fix UTs * chore: merge main, resolve conflicts * test: replace __filename * test: fixing NUTs, not running * chore: bump testkit, use 'dev' cli * test: fix deb NUTs * test: set bin to sfdx for SourceTestkit to get correct deploy * chore: try ts-node --esm * chore: try node --loader ts-node/esm * test: fix --source-dir for force:source:deploy * chore: merge main, resolve conflicts * chore: fix archiver import * chore: fix __filename * chore: actually fix archiver import * chore: fix DEB NUTs * chore: try new yarn.lock, all NUTs passed locally * chore: remove lintstagedrc * chore: updates * test: copy type from PDR * test: remote initProgressBar spy * test(nuts): use sf for testkit.convert * chore: remove unused devDeps * test(nuts): use sf for manifest creation * test(nuts): use sf * test(nuts): fix nuts --------- Co-authored-by: Cristian Dominguez --- .eslintignore | 1 + .gitignore | 2 + .lintstagedrc.js | 3 - .mocharc.json | 16 +- bin/dev | 21 - bin/dev.cmd | 3 +- bin/dev.js | 8 + bin/run | 3 - bin/run.js | 9 + commitlint.config.js => commitlint.config.cjs | 0 package.json | 73 +- schemas/force-source-status.json | 48 +- src/commands/force/mdapi/deploy.ts | 32 +- src/commands/force/mdapi/deploy/cancel.ts | 12 +- src/commands/force/mdapi/deploy/report.ts | 18 +- src/commands/force/mdapi/retrieve.ts | 60 +- src/commands/force/mdapi/retrieve/report.ts | 36 +- src/commands/force/source/deploy.ts | 54 +- src/commands/force/source/deploy/cancel.ts | 12 +- src/commands/force/source/deploy/report.ts | 20 +- src/commands/force/source/pull.ts | 24 +- src/commands/force/source/push.ts | 24 +- src/commands/force/source/retrieve.ts | 41 +- src/commands/force/source/status.ts | 19 +- src/coverageUtils.ts | 10 +- src/deployCommand.ts | 60 +- src/formatters/codeCoverageTable.ts | 9 +- src/formatters/deployCancelResultFormatter.ts | 2 +- src/formatters/deployProgressBarFormatter.ts | 24 +- .../deployProgressStatusFormatter.ts | 7 +- src/formatters/deployReportResultFormatter.ts | 7 +- src/formatters/deployResultFormatter.ts | 24 +- .../mdapi/mdDeployAsyncResultFormatter.ts | 8 +- .../mdapi/mdDeployResultFormatter.ts | 18 +- .../mdapi/retrieveResultFormatter.ts | 12 +- src/formatters/resultFormatter.ts | 30 +- src/formatters/retrieveFormatter.ts | 15 +- src/formatters/retrieveResultFormatter.ts | 12 +- .../source/deployAsyncResultFormatter.ts | 6 +- src/formatters/source/pullFormatter.ts | 15 +- src/formatters/source/pushResultFormatter.ts | 83 +- src/formatters/source/statusFormatter.ts | 12 +- src/hooks/diagnostics.ts | 19 +- src/index.ts | 2 +- src/promiseQueue.ts | 2 +- src/sourceCommand.ts | 13 +- src/stash.ts | 8 +- src/trackingFunctions.ts | 16 +- src/types.ts | 2 +- test/commands/mdapi/cancel.test.ts | 15 +- test/commands/mdapi/retrieve.test.ts | 15 +- test/commands/mdapi/retrieveReport.test.ts | 16 +- test/commands/source/cancel.test.ts | 17 +- test/commands/source/deploy.test.ts | 30 +- test/commands/source/deployCommand.test.ts | 4 +- test/commands/source/deployResponses.ts | 8 +- .../source/progressBarFormatter.test.ts | 10 +- test/commands/source/report.test.ts | 18 +- test/commands/source/retrieve.test.ts | 21 +- test/commands/source/testConsts.ts | 2 +- test/coverageUtils.test.ts | 23 +- .../deployProgressStatusFormatter.ts | 12 +- test/formatters/deployResultFormatter.test.ts | 47 +- .../mdDeployResultFormatter.test.ts | 37 +- test/formatters/pullFormatter.test.ts | 28 +- test/formatters/pushResultFormatter.test.ts | 35 +- .../retrieveResultFormatter.test.ts | 33 +- test/formatters/statusResultFormatter.test.ts | 22 +- test/hooks/diagnostics.test.ts | 12 +- test/nuts/REST/deploy.mpd.nut.ts | 9 +- test/nuts/REST/deploy.nut.ts | 9 +- test/nuts/deployDestructive.nut.ts | 7 +- .../nuts/digitalExperienceBundle/constants.ts | 17 +- .../deb.manifest.nut.ts | 69 +- .../deb.metadata.nut.ts | 51 +- .../deb.sourcepath.nut.ts | 29 +- .../deb.tracking.nut.ts | 55 +- test/nuts/digitalExperienceBundle/helper.ts | 120 +- test/nuts/folderTypes.nut.ts | 26 +- test/nuts/force.nut.ts | 9 +- test/nuts/generateNuts.ts | 13 +- test/nuts/mdapi.nut.ts | 149 +- test/nuts/nestedLwc.nut.ts | 21 +- test/nuts/partialBundleDelete.nut.ts | 27 +- test/nuts/seeds/deploy.async.seed.ts | 47 +- test/nuts/seeds/deploy.manifest.seed.ts | 11 +- test/nuts/seeds/deploy.metadata.seed.ts | 9 +- test/nuts/seeds/deploy.quick.seed.ts | 25 +- test/nuts/seeds/deploy.sourcepath.seed.ts | 15 +- test/nuts/seeds/deploy.testlevel.seed.ts | 7 +- test/nuts/seeds/mpd.deploy.seed.ts | 5 +- test/nuts/seeds/mpd.retrieve.seed.ts | 12 +- test/nuts/seeds/retrieve.manifest.seed.ts | 11 +- test/nuts/seeds/retrieve.metadata.seed.ts | 9 +- test/nuts/seeds/retrieve.packagenames.seed.ts | 5 +- .../seeds/retrieve.retrievetargetdir.seed.ts | 12 +- test/nuts/seeds/retrieve.sourcepath.seed.ts | 9 +- test/nuts/territory2.nut.ts | 16 +- test/nuts/testMatrix.ts | 4 +- test/nuts/trackingCommands/basics.nut.ts | 58 +- test/nuts/trackingCommands/conflicts.nut.ts | 42 +- .../nuts/trackingCommands/customLabels.nut.ts | 21 +- .../deployRetrieveDelete.nut.ts | 38 +- test/nuts/trackingCommands/forceIgnore.nut.ts | 30 +- test/nuts/trackingCommands/lwc.nut.ts | 46 +- .../mpd-non-sequential.nut.ts | 10 +- .../trackingCommands/mpd-sequential.nut.ts | 12 +- .../trackingCommands/remoteChanges.nut.ts | 58 +- test/nuts/translation.nut.ts | 32 +- test/promisesQueue.test.ts | 2 +- test/tsconfig.json | 2 +- tsconfig.json | 20 +- yarn.lock | 2728 +++++++++-------- 113 files changed, 2770 insertions(+), 2497 deletions(-) create mode 100644 .eslintignore delete mode 100644 .lintstagedrc.js delete mode 100755 bin/dev create mode 100755 bin/dev.js delete mode 100755 bin/run create mode 100755 bin/run.js rename commitlint.config.js => commitlint.config.cjs (100%) diff --git a/.eslintignore b/.eslintignore new file mode 100644 index 000000000..ee638464f --- /dev/null +++ b/.eslintignore @@ -0,0 +1 @@ +*.cjs/ diff --git a/.gitignore b/.gitignore index ae6018aa6..533645112 100644 --- a/.gitignore +++ b/.gitignore @@ -45,3 +45,5 @@ node_modules # ignore generated nut tests test/nuts/generated/ + +oclif.lock diff --git a/.lintstagedrc.js b/.lintstagedrc.js deleted file mode 100644 index d7fab80dd..000000000 --- a/.lintstagedrc.js +++ /dev/null @@ -1,3 +0,0 @@ -module.exports = { - '**/*.{js,json,md}?(x)': () => 'npm run reformat' -}; diff --git a/.mocharc.json b/.mocharc.json index e59ba8bff..bc3771532 100644 --- a/.mocharc.json +++ b/.mocharc.json @@ -1,8 +1,16 @@ { - "require": "ts-node/register,source-map-support/register", + "require": [ + "ts-node/register" + ], "watch-extensions": "ts", - "watch-files": ["src", "test"], + "watch-files": [ + "src", + "test" + ], "recursive": true, "reporter": "spec", - "timeout": 10000 -} + "timeout": 10000, + "node-option": [ + "loader=ts-node/esm" + ] +} \ No newline at end of file diff --git a/bin/dev b/bin/dev deleted file mode 100755 index d88b6a381..000000000 --- a/bin/dev +++ /dev/null @@ -1,21 +0,0 @@ -#!/usr/bin/env node - -const oclif = require('@oclif/core'); - -const path = require('path'); -const project = path.join(__dirname, '..', 'tsconfig.json'); - -// In dev mode -> use ts-node and dev plugins -process.env.NODE_ENV = 'development'; - -// Enable SWC for faster typescript compiling -require('ts-node').register({ project, swc: true }); - -// In dev mode, always show stack traces -const g = (global.oclif = global.oclif || {}); - -// In dev mode, always show stack traces -global.oclif.debug = true; - -// Start the CLI -oclif.run().then(require('@oclif/core/flush')).catch(require('@oclif/core/handle')); diff --git a/bin/dev.cmd b/bin/dev.cmd index 2ebfaa64f..cec553be4 100755 --- a/bin/dev.cmd +++ b/bin/dev.cmd @@ -1,4 +1,3 @@ -@@ -0,0 +1,3 @@ @echo off -node "%~dp0\dev" %* +node --loader ts-node/esm --no-warnings=ExperimentalWarning "%~dp0\dev" %* diff --git a/bin/dev.js b/bin/dev.js new file mode 100755 index 000000000..6c6077345 --- /dev/null +++ b/bin/dev.js @@ -0,0 +1,8 @@ +#!/usr/bin/env -S node --loader ts-node/esm --no-warnings=ExperimentalWarning +// eslint-disable-next-line node/shebang +async function main() { + const {execute} = await import('@oclif/core') + await execute({development: true, dir: import.meta.url}) +} + +await main() diff --git a/bin/run b/bin/run deleted file mode 100755 index 9ee5dd543..000000000 --- a/bin/run +++ /dev/null @@ -1,3 +0,0 @@ -#!/usr/bin/env node - -require('@oclif/core').run().then(require('@oclif/core/flush')).catch(require('@oclif/core/handle')); diff --git a/bin/run.js b/bin/run.js new file mode 100755 index 000000000..39d13f514 --- /dev/null +++ b/bin/run.js @@ -0,0 +1,9 @@ +#!/usr/bin/env node + +// eslint-disable-next-line node/shebang +async function main() { + const {execute} = await import('@oclif/core') + await execute({dir: import.meta.url}) +} + +await main() diff --git a/commitlint.config.js b/commitlint.config.cjs similarity index 100% rename from commitlint.config.js rename to commitlint.config.cjs diff --git a/package.json b/package.json index d4e9bbb0f..d3dfa8254 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,8 @@ { "name": "@salesforce/plugin-source", "description": "Commands to interact with source formatted metadata", - "version": "2.11.4", + "version": "3.0.0", "author": "Salesforce", - "main": "lib/index.js", "bugs": "https://github.com/forcedotcom/cli/issues", "dependencies": { "@oclif/core": "^3.11.0", @@ -13,47 +12,48 @@ "@salesforce/sf-plugins-core": "^5.0.1", "@salesforce/source-deploy-retrieve": "^10.0.0", "@salesforce/source-tracking": "^5.0.0", - "chalk": "^4.1.2", - "got": "^11.8.6", - "proxy-agent": "^6.3.1", - "tslib": "^2" + "chalk": "^5.3.0", + "got": "^13.0.0", + "proxy-agent": "^6.3.1" }, "devDependencies": { - "@oclif/plugin-command-snapshot": "^4.0.16", - "@oclif/plugin-help": "^5.2.20", + "@oclif/plugin-command-snapshot": "^5.0.1", + "@oclif/plugin-help": "^6.0.5", "@salesforce/cli-plugins-testkit": "^5.0.2", "@salesforce/dev-scripts": "^7.1.1", "@salesforce/plugin-command-reference": "^3.0.46", - "@salesforce/plugin-deploy-retrieve": "^2.1.2", - "@salesforce/plugin-info": "^2.6.51", - "@salesforce/source-testkit": "^2.1.65", + "@salesforce/plugin-info": "^2.6.50", + "@salesforce/source-testkit": "^2.1.62", "@salesforce/ts-sinon": "1.4.19", - "@swc/core": "1.3.96", "@types/archiver": "^5.3.2", "archiver": "^5.3.2", "chai-each": "^0.0.1", "cross-env": "^7.0.3", "eslint-plugin-sf-plugin": "^1.16.15", - "oclif": "^3.16.0", + "fast-glob": "^3.3.1", + "oclif": "^4.0.3", "shx": "0.3.4", "ts-node": "^10.9.1", - "typescript": "^4.9.5" + "typescript": "^5.2.2" }, "config": {}, "engines": { - "node": ">=16.0.0" + "node": ">=18.0.0" }, "files": [ "/lib", "/messages", - "/oclif.manifest.json" + "/oclif.manifest.json", + "/oclif.lock" ], "homepage": "https://github.com/salesforcecli/plugin-source", "keywords": [ "force", "salesforce", - "sfdx", "salesforcedx", + "sf", + "sf-plugin", + "sfdx", "sfdx-plugin" ], "license": "BSD-3-Clause", @@ -64,7 +64,10 @@ "@oclif/plugin-command-snapshot", "@oclif/plugin-help", "@salesforce/plugin-command-reference", - "@salesforce/plugin-deploy-retrieve" + "@salesforce/plugin-deploy-retrieve", + "@salesforce/plugin-templates", + "@salesforce/plugin-settings", + "@salesforce/plugin-user" ], "topics": { "force": { @@ -95,7 +98,9 @@ }, "hooks": { "sf-doctor-@salesforce/plugin-source": "./lib/hooks/diagnostics" - } + }, + "flexibleTaxonomy": true, + "topicSeparator": " " }, "repository": "salesforcecli/plugin-source", "scripts": { @@ -111,20 +116,20 @@ "prepack": "sf-prepack", "prepare": "sf-install", "test": "wireit", - "test:nuts": "ts-node ./test/nuts/generateNuts.ts && nyc mocha \"**/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0", + "test:nuts": "node --loader ts-node/esm ./test/nuts/generateNuts.ts && nyc mocha \"**/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0", "test:nuts:deb": "mocha \"test/nuts/digitalExperienceBundle/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", - "test:nuts:deploy": "cross-env PLUGIN_SOURCE_SEED_FILTER=deploy PLUGIN_SOURCE_SEED_EXCLUDE=async ts-node ./test/nuts/generateNuts.ts && mocha \"test/nuts/generated/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", - "test:nuts:deploy:async": "cross-env PLUGIN_SOURCE_SEED_FILTER=deploy.async ts-node ./test/nuts/generateNuts.ts && mocha \"test/nuts/generated/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", + "test:nuts:deploy": "cross-env PLUGIN_SOURCE_SEED_FILTER=deploy PLUGIN_SOURCE_SEED_EXCLUDE=async node --loader ts-node/esm ./test/nuts/generateNuts.ts && mocha \"test/nuts/generated/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", + "test:nuts:deploy:async": "cross-env PLUGIN_SOURCE_SEED_FILTER=deploy.async node --loader ts-node/esm ./test/nuts/generateNuts.ts && mocha \"test/nuts/generated/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", "test:nuts:deploy:destructive": "mocha \"test/nuts/deployDestructive.nut.ts\" --slow 3000 --timeout 1200000 --retries 0 --jobs 20", - "test:nuts:deploy:manifest": "cross-env PLUGIN_SOURCE_SEED_FILTER=deploy.manifest ts-node ./test/nuts/generateNuts.ts && mocha \"test/nuts/generated/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", - "test:nuts:deploy:metadata": "cross-env PLUGIN_SOURCE_SEED_FILTER=deploy.metadata ts-node ./test/nuts/generateNuts.ts && mocha \"test/nuts/generated/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", - "test:nuts:deploy:quick": "cross-env PLUGIN_SOURCE_SEED_FILTER=deploy.quick ts-node ./test/nuts/generateNuts.ts && mocha \"test/nuts/generated/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", + "test:nuts:deploy:manifest": "cross-env PLUGIN_SOURCE_SEED_FILTER=deploy.manifest node --loader ts-node/esm ./test/nuts/generateNuts.ts && mocha \"test/nuts/generated/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", + "test:nuts:deploy:metadata": "cross-env PLUGIN_SOURCE_SEED_FILTER=deploy.metadata node --loader ts-node/esm ./test/nuts/generateNuts.ts && mocha \"test/nuts/generated/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", + "test:nuts:deploy:quick": "cross-env PLUGIN_SOURCE_SEED_FILTER=deploy.quick node --loader ts-node/esm ./test/nuts/generateNuts.ts && mocha \"test/nuts/generated/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", "test:nuts:deploy:rest": "mocha \"test/nuts/REST/*.nut.ts\" --slow 3000 --timeout 1200000 --retries 0 --parallel --jobs 20", - "test:nuts:deploy:sourcepath": "cross-env PLUGIN_SOURCE_SEED_FILTER=deploy.sourcepath ts-node ./test/nuts/generateNuts.ts && mocha \"test/nuts/generated/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", - "test:nuts:deploy:testlevel": "cross-env PLUGIN_SOURCE_SEED_FILTER=deploy.testlevel ts-node ./test/nuts/generateNuts.ts && mocha \"test/nuts/generated/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", + "test:nuts:deploy:sourcepath": "cross-env PLUGIN_SOURCE_SEED_FILTER=deploy.sourcepath node --loader ts-node/esm ./test/nuts/generateNuts.ts && mocha \"test/nuts/generated/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", + "test:nuts:deploy:testlevel": "cross-env PLUGIN_SOURCE_SEED_FILTER=deploy.testlevel node --loader ts-node/esm ./test/nuts/generateNuts.ts && mocha \"test/nuts/generated/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", "test:nuts:mdapi": "mocha \"test/nuts/mdapi.nut.ts\" --slow 3000 --timeout 1200000 --retries 0 --jobs 20", - "test:nuts:retrieve": "cross-env PLUGIN_SOURCE_SEED_FILTER=retrieve ts-node ./test/nuts/generateNuts.ts && mocha \"test/nuts/generated/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", - "test:nuts:retrieve:metadata": "cross-env PLUGIN_SOURCE_SEED_FILTER=retrieve.metadata ts-node ./test/nuts/generateNuts.ts && mocha \"test/nuts/generated/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", + "test:nuts:retrieve": "cross-env PLUGIN_SOURCE_SEED_FILTER=retrieve node --loader ts-node/esm ./test/nuts/generateNuts.ts && mocha \"test/nuts/generated/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", + "test:nuts:retrieve:metadata": "cross-env PLUGIN_SOURCE_SEED_FILTER=retrieve.metadata node --loader ts-node/esm ./test/nuts/generateNuts.ts && mocha \"test/nuts/generated/*.nut.ts\" --slow 4500 --timeout 1200000 --parallel --retries 0 --jobs 20", "test:nuts:specialTypes": "mocha \"test/nuts/territory2.nut.ts\" \"test/nuts/folderTypes.nut.ts\" \"test/nuts/translation.nut.ts\" \"test/nuts/nestedLwc.nut.ts\" \"test/nuts/partialBundleDelete.nut.ts\" --slow 4500 --timeout 1200000 --retries 0 --parallel --jobs 20", "test:nuts:specialTypes:folders": "mocha \"test/nuts/folderTypes.nut.ts\" --slow 4500 --timeout 1200000 --jobs 20", "test:nuts:specialTypes:nestedLwc": "mocha \"test/nuts/nestedLwc.nut.ts\" --slow 3000 --timeout 1200000 --retries 0 --jobs 20 ", @@ -221,7 +226,7 @@ "output": [] }, "test:command-reference": { - "command": "\"./bin/dev\" commandreference:generate --erroronwarnings", + "command": "ts-node \"./bin/dev.js\" commandreference:generate --erroronwarnings", "files": [ "src/**/*.ts", "messages/**", @@ -232,7 +237,7 @@ ] }, "test:deprecation-policy": { - "command": "\"./bin/dev\" snapshot:compare", + "command": "ts-node \"./bin/dev.js\" snapshot:compare", "files": [ "src/**/*.ts" ], @@ -242,12 +247,14 @@ ] }, "test:json-schema": { - "command": "\"./bin/dev\" schema:compare", + "command": "ts-node \"./bin/dev.js\" schema:compare", "files": [ "src/**/*.ts", "schemas" ], "output": [] } - } + }, + "exports": "./lib/index.js", + "type": "module" } diff --git a/schemas/force-source-status.json b/schemas/force-source-status.json index 9bbf5689e..fcfa2f835 100644 --- a/schemas/force-source-status.json +++ b/schemas/force-source-status.json @@ -12,25 +12,7 @@ "type": "object", "properties": { "state": { - "type": "string", - "enum": [ - "Local Deleted", - "Local Add", - "Local Changed", - "Local Unchanged", - "Remote Deleted", - "Remote Add", - "Remote Changed", - "Remote Unchanged", - "Local Deleted (Conflict)", - "Local Add (Conflict)", - "Local Changed (Conflict)", - "Local Unchanged (Conflict)", - "Remote Deleted (Conflict)", - "Remote Add (Conflict)", - "Remote Changed (Conflict)", - "Remote Unchanged (Conflict)" - ] + "$ref": "#/definitions/StatusStateString" }, "fullName": { "type": "string" @@ -52,12 +34,36 @@ "enum": ["Deleted", "Add", "Changed", "Unchanged"] }, "origin": { - "type": "string", - "enum": ["Local", "Remote"] + "$ref": "#/definitions/StatusOrigin" } }, "required": ["state", "fullName", "type", "origin"], "additionalProperties": false + }, + "StatusStateString": { + "type": "string", + "enum": [ + "Local Deleted", + "Local Add", + "Local Changed", + "Local Unchanged", + "Remote Deleted", + "Remote Add", + "Remote Changed", + "Remote Unchanged", + "Local Deleted (Conflict)", + "Local Add (Conflict)", + "Local Changed (Conflict)", + "Local Unchanged (Conflict)", + "Remote Deleted (Conflict)", + "Remote Add (Conflict)", + "Remote Changed (Conflict)", + "Remote Unchanged (Conflict)" + ] + }, + "StatusOrigin": { + "type": "string", + "enum": ["Local", "Remote"] } } } diff --git a/src/commands/force/mdapi/deploy.ts b/src/commands/force/mdapi/deploy.ts index 5e97ca91e..e0b77cd9f 100644 --- a/src/commands/force/mdapi/deploy.ts +++ b/src/commands/force/mdapi/deploy.ts @@ -4,9 +4,11 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; import { Duration, env } from '@salesforce/kit'; import { Lifecycle, Messages, Org } from '@salesforce/core'; -import { DeployVersionData, MetadataApiDeploy } from '@salesforce/source-deploy-retrieve'; +import { AsyncResult, DeployVersionData, MetadataApiDeploy } from '@salesforce/source-deploy-retrieve'; import { arrayWithDeprecation, Flags, @@ -21,16 +23,16 @@ import { reportsFormatters, targetUsernameFlag, TestLevel, -} from '../../../deployCommand'; -import { DeployCommandAsyncResult } from '../../../formatters/source/deployAsyncResultFormatter'; -import { MdDeployResult, MdDeployResultFormatter } from '../../../formatters/mdapi/mdDeployResultFormatter'; -import { ProgressFormatter } from '../../../formatters/progressFormatter'; -import { DeployProgressBarFormatter } from '../../../formatters/deployProgressBarFormatter'; -import { DeployProgressStatusFormatter } from '../../../formatters/deployProgressStatusFormatter'; -import { MdDeployAsyncResultFormatter } from '../../../formatters/mdapi/mdDeployAsyncResultFormatter'; -import { ResultFormatterOptions } from '../../../formatters/resultFormatter'; +} from '../../../deployCommand.js'; +import { DeployCommandAsyncResult } from '../../../formatters/source/deployAsyncResultFormatter.js'; +import { MdDeployResult, MdDeployResultFormatter } from '../../../formatters/mdapi/mdDeployResultFormatter.js'; +import { ProgressFormatter } from '../../../formatters/progressFormatter.js'; +import { DeployProgressBarFormatter } from '../../../formatters/deployProgressBarFormatter.js'; +import { DeployProgressStatusFormatter } from '../../../formatters/deployProgressStatusFormatter.js'; +import { MdDeployAsyncResultFormatter } from '../../../formatters/mdapi/mdDeployAsyncResultFormatter.js'; +import { ResultFormatterOptions } from '../../../formatters/resultFormatter.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'md.deploy'); const deployMessages = Messages.loadMessages('@salesforce/plugin-source', 'deployCommand'); @@ -135,8 +137,8 @@ export class Deploy extends DeployCommand { junit: Flags.boolean({ summary: messages.getMessage('flags.junit.summary') }), }; - private flags: Interfaces.InferredFlags; - private org: Org; + private flags!: Interfaces.InferredFlags; + private org!: Org; public async run(): Promise { this.flags = (await this.parse(Deploy)).flags; @@ -165,7 +167,7 @@ export class Deploy extends DeployCommand { const deploymentOptions = this.flags.zipfile ? { zipPath: this.flags.zipfile } : { mdapiPath: this.flags.deploydir }; - const username = this.org.getUsername(); + const username = this.org.getUsername() as string; // still here? we need to deploy a zip file then const deploy = new MetadataApiDeploy({ @@ -198,7 +200,7 @@ export class Deploy extends DeployCommand { this.log(deployMessages.getMessage('apiVersionMsgBasic', [username, apiData.apiVersion, apiData.webService])); }); await deploy.start(); - this.asyncDeployResult = { id: deploy.id }; + this.asyncDeployResult = deploy.id ? { id: deploy.id } : undefined; this.updateDeployId(deploy.id); if (!this.isAsync) { @@ -235,7 +237,7 @@ export class Deploy extends DeployCommand { ? new MdDeployAsyncResultFormatter( new Ux({ jsonEnabled: this.jsonEnabled() }), formatterOptions, - this.asyncDeployResult + this.asyncDeployResult as AsyncResult ) : new MdDeployResultFormatter(new Ux({ jsonEnabled: this.jsonEnabled() }), formatterOptions, this.deployResult); diff --git a/src/commands/force/mdapi/deploy/cancel.ts b/src/commands/force/mdapi/deploy/cancel.ts index 2d1b34533..49ecdc21d 100644 --- a/src/commands/force/mdapi/deploy/cancel.ts +++ b/src/commands/force/mdapi/deploy/cancel.ts @@ -4,6 +4,8 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; import { Connection, Messages, SfError } from '@salesforce/core'; import { Duration } from '@salesforce/kit'; import { RequestStatus } from '@salesforce/source-deploy-retrieve'; @@ -15,13 +17,13 @@ import { Ux, } from '@salesforce/sf-plugins-core'; import { Interfaces } from '@oclif/core'; -import { DeployCommand } from '../../../../deployCommand'; +import { DeployCommand } from '../../../../deployCommand.js'; import { DeployCancelCommandResult, DeployCancelResultFormatter, -} from '../../../../formatters/deployCancelResultFormatter'; +} from '../../../../formatters/deployCancelResultFormatter.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'md.cancel'); const replacement = 'project deploy cancel'; @@ -54,8 +56,8 @@ export class Cancel extends DeployCommand { summary: messages.getMessage('flags.jobid.summary'), }), }; - private flags: Interfaces.InferredFlags; - private conn: Connection; + private flags!: Interfaces.InferredFlags; + private conn!: Connection; public async run(): Promise { this.flags = (await this.parse(Cancel)).flags; diff --git a/src/commands/force/mdapi/deploy/report.ts b/src/commands/force/mdapi/deploy/report.ts index 65c6f0b53..9593145db 100644 --- a/src/commands/force/mdapi/deploy/report.ts +++ b/src/commands/force/mdapi/deploy/report.ts @@ -4,6 +4,8 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; import { Messages, Org } from '@salesforce/core'; import { Duration, env } from '@salesforce/kit'; import { RequestStatus } from '@salesforce/source-deploy-retrieve'; @@ -16,13 +18,13 @@ import { Ux, } from '@salesforce/sf-plugins-core'; import { Interfaces } from '@oclif/core'; -import { MdDeployResult, MdDeployResultFormatter } from '../../../../formatters/mdapi/mdDeployResultFormatter'; -import { DeployCommand, getCoverageFormattersOptions, reportsFormatters } from '../../../../deployCommand'; -import { ProgressFormatter } from '../../../../formatters/progressFormatter'; -import { DeployProgressBarFormatter } from '../../../../formatters/deployProgressBarFormatter'; -import { DeployProgressStatusFormatter } from '../../../../formatters/deployProgressStatusFormatter'; +import { MdDeployResult, MdDeployResultFormatter } from '../../../../formatters/mdapi/mdDeployResultFormatter.js'; +import { DeployCommand, getCoverageFormattersOptions, reportsFormatters } from '../../../../deployCommand.js'; +import { ProgressFormatter } from '../../../../formatters/progressFormatter.js'; +import { DeployProgressBarFormatter } from '../../../../formatters/deployProgressBarFormatter.js'; +import { DeployProgressStatusFormatter } from '../../../../formatters/deployProgressStatusFormatter.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'md.deployreport'); const replacement = 'project deploy report'; @@ -72,8 +74,8 @@ export class Report extends DeployCommand { junit: Flags.boolean({ summary: messages.getMessage('flags.junit.summary') }), }; - private flags: Interfaces.InferredFlags; - private org: Org; + private flags!: Interfaces.InferredFlags; + private org!: Org; public async run(): Promise { this.flags = (await this.parse(Report)).flags; diff --git a/src/commands/force/mdapi/retrieve.ts b/src/commands/force/mdapi/retrieve.ts index ced2c2293..0b4c0292f 100644 --- a/src/commands/force/mdapi/retrieve.ts +++ b/src/commands/force/mdapi/retrieve.ts @@ -4,6 +4,8 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; import { Lifecycle, Messages, Org, SfError, SfProject } from '@salesforce/core'; import { Duration } from '@salesforce/kit'; import { @@ -13,7 +15,7 @@ import { RetrieveResult, RetrieveVersionData, } from '@salesforce/source-deploy-retrieve'; -import { Optional } from '@salesforce/ts-types'; +import { Optional, ensure } from '@salesforce/ts-types'; import { arrayWithDeprecation, Flags, @@ -22,15 +24,15 @@ import { Ux, } from '@salesforce/sf-plugins-core'; import { Interfaces } from '@oclif/core'; -import { resolveZipFileName, SourceCommand } from '../../../sourceCommand'; -import { Stash } from '../../../stash'; +import { resolveZipFileName, SourceCommand } from '../../../sourceCommand.js'; +import { Stash } from '../../../stash.js'; import { RetrieveCommandAsyncResult, RetrieveCommandResult, RetrieveResultFormatter, -} from '../../../formatters/mdapi/retrieveResultFormatter'; +} from '../../../formatters/mdapi/retrieveResultFormatter.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'md.retrieve'); const spinnerMessages = Messages.loadMessages('@salesforce/plugin-source', 'spinner'); const retrieveMessages = Messages.loadMessages('@salesforce/plugin-source', 'retrieve'); @@ -100,16 +102,17 @@ export class Retrieve extends SourceCommand { }), }; - protected retrieveResult: RetrieveResult; - private sourceDir: string; - private retrieveTargetDir: string; - private zipFileName: string; - private unzip: boolean; - private wait: Duration; - private isAsync: boolean; - private mdapiRetrieve: MetadataApiRetrieve; - private flags: Interfaces.InferredFlags; - private org: Org; + protected retrieveResult: RetrieveResult | undefined; + private sourceDir: string | undefined; + private retrieveTargetDir: string | undefined; + private zipFileName: string | undefined; + private unzip: boolean | undefined; + // will be set to `flags.wait` (which has a default value) when executed. + private wait!: Duration; + private isAsync: boolean | undefined; + private mdapiRetrieve: MetadataApiRetrieve | undefined; + private flags!: Interfaces.InferredFlags; + private org!: Org | undefined; public async run(): Promise { this.flags = (await this.parse(Retrieve)).flags; this.org = this.flags['target-org']; @@ -136,7 +139,7 @@ export class Retrieve extends SourceCommand { throw new SfError(messages.getMessage('InvalidPackageNames', [packagenames.toString()]), 'InvalidPackageNames'); } - this.spinner.start(spinnerMessages.getMessage('retrieve.main', [this.org.getUsername()])); + this.spinner.start(spinnerMessages.getMessage('retrieve.main', [this.org?.getUsername()])); this.spinner.status = spinnerMessages.getMessage('retrieve.componentSetBuild'); this.componentSet = await ComponentSetBuilder.build({ @@ -146,14 +149,16 @@ export class Retrieve extends SourceCommand { apiversion: this.flags.apiversion, packagenames, sourcepath: this.sourceDir ? [this.sourceDir] : undefined, - manifest: manifest && { - manifestPath: manifest, - directoryPaths: [], - }, + manifest: manifest + ? { + manifestPath: manifest, + directoryPaths: [], + } + : undefined, }); await Lifecycle.getInstance().emit('preretrieve', { packageXmlPath: manifest }); - const username = this.org.getUsername(); + const username = this.org?.getUsername() ?? ''; // eslint-disable-next-line @typescript-eslint/require-await Lifecycle.getInstance().on('apiVersionRetrieve', async (apiData: RetrieveVersionData) => { this.log( @@ -178,7 +183,7 @@ export class Retrieve extends SourceCommand { }); Stash.set('MDAPI_RETRIEVE', { - jobid: this.mdapiRetrieve.id, + jobid: this.mdapiRetrieve.id ?? '', retrievetargetdir: this.retrieveTargetDir, zipfilename: this.zipFileName, unzip: this.unzip, @@ -208,14 +213,14 @@ export class Retrieve extends SourceCommand { [RequestStatus.Canceling, 69], ]); if (!this.isAsync) { - this.setExitCode(StatusCodeMap.get(this.retrieveResult.response.status) ?? 1); + this.setExitCode(StatusCodeMap.get(this.retrieveResult?.response.status as RequestStatus) ?? 1); } } protected formatResult(): RetrieveCommandResult | RetrieveCommandAsyncResult { // async result if (this.isAsync) { - let cmdFlags = `--jobid ${this.mdapiRetrieve.id} --retrievetargetdir ${this.retrieveTargetDir}`; + let cmdFlags = `--jobid ${this.mdapiRetrieve?.id} --retrievetargetdir ${this.retrieveTargetDir}`; const targetusernameFlag = this.flags['target-org']; if (targetusernameFlag) { cmdFlags += ` --targetusername ${targetusernameFlag.getUsername()}`; @@ -224,7 +229,7 @@ export class Retrieve extends SourceCommand { this.log(messages.getMessage('checkStatus', [cmdFlags])); return { done: false, - id: this.mdapiRetrieve.id, + id: this.mdapiRetrieve?.id ?? '', state: 'Queued', status: 'Queued', timedOut: true, @@ -233,14 +238,14 @@ export class Retrieve extends SourceCommand { const formatterOptions = { waitTime: this.wait.quantity, verbose: this.flags.verbose ?? false, - retrieveTargetDir: this.retrieveTargetDir, + retrieveTargetDir: this.retrieveTargetDir ?? '', zipFileName: this.zipFileName, unzip: this.unzip, }; const formatter = new RetrieveResultFormatter( new Ux({ jsonEnabled: this.jsonEnabled() }), formatterOptions, - this.retrieveResult + ensure(this.retrieveResult) ); if (!this.jsonEnabled()) { @@ -256,6 +261,7 @@ export class Retrieve extends SourceCommand { } catch (error) { this.debug('No SFDX project found for default package directory'); } + return ''; } private resolveRootDir(rootDir?: string): string { diff --git a/src/commands/force/mdapi/retrieve/report.ts b/src/commands/force/mdapi/retrieve/report.ts index fdd202e1c..e772ce01e 100644 --- a/src/commands/force/mdapi/retrieve/report.ts +++ b/src/commands/force/mdapi/retrieve/report.ts @@ -4,6 +4,8 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; import { Messages, Org, SfError } from '@salesforce/core'; import { Duration } from '@salesforce/kit'; import { MetadataApiRetrieve, MetadataApiRetrieveStatus, RetrieveResult } from '@salesforce/source-deploy-retrieve'; @@ -15,15 +17,15 @@ import { Ux, } from '@salesforce/sf-plugins-core'; import { Interfaces } from '@oclif/core'; -import { resolveZipFileName, SourceCommand } from '../../../../sourceCommand'; -import { Stash, MdRetrieveData } from '../../../../stash'; +import { resolveZipFileName, SourceCommand } from '../../../../sourceCommand.js'; +import { Stash, MdRetrieveData } from '../../../../stash.js'; import { RetrieveCommandResult, RetrieveCommandAsyncResult, RetrieveResultFormatter, -} from '../../../../formatters/mdapi/retrieveResultFormatter'; +} from '../../../../formatters/mdapi/retrieveResultFormatter.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'md.retrieve'); const spinnerMessages = Messages.loadMessages('@salesforce/plugin-source', 'spinner'); export type ReportCommandResult = RetrieveCommandResult | RetrieveCommandAsyncResult; @@ -68,16 +70,16 @@ export class Report extends SourceCommand { }), }; - protected retrieveResult: RetrieveResult; - protected retrieveStatus: MetadataApiRetrieveStatus; - private retrieveTargetDir: string; - private zipFileName: string; - private unzip: boolean; - private wait: Duration; - private isAsync: boolean; - private mdapiRetrieve: MetadataApiRetrieve; - private flags: Interfaces.InferredFlags; - private org: Org; + protected retrieveResult!: RetrieveResult; + protected retrieveStatus!: MetadataApiRetrieveStatus; + private retrieveTargetDir!: string; + private zipFileName!: string; + private unzip: boolean | undefined; + private wait!: Duration; + private isAsync!: boolean; + private mdapiRetrieve!: MetadataApiRetrieve; + private flags!: Interfaces.InferredFlags; + private org!: Org; public async run(): Promise { this.flags = (await this.parse(Report)).flags; @@ -102,7 +104,7 @@ export class Report extends SourceCommand { retrieveId = mdRetrieveStash.jobid; this.retrieveTargetDir = this.resolveOutputDir(mdRetrieveStash?.retrievetargetdir); this.zipFileName = resolveZipFileName(mdRetrieveStash?.zipfilename); - this.unzip = mdRetrieveStash?.unzip; + this.unzip = mdRetrieveStash.unzip; } else { this.retrieveTargetDir = this.resolveOutputDir(this.flags.retrievetargetdir); this.zipFileName = resolveZipFileName(this.flags.zipfilename); @@ -118,7 +120,7 @@ export class Report extends SourceCommand { this.mdapiRetrieve = new MetadataApiRetrieve({ id: retrieveId, - usernameOrConnection: this.org.getUsername(), + usernameOrConnection: this.org.getUsername() as string, output: this.retrieveTargetDir, format: 'metadata', zipFileName: this.zipFileName, @@ -179,7 +181,7 @@ export class Report extends SourceCommand { return formatter.getJson(); } - private resolveOutputDir(dirPath: string): string { + private resolveOutputDir(dirPath?: string): string { return this.ensureFlagPath({ flagName: 'retrievetargetdir', path: dirPath, diff --git a/src/commands/force/source/deploy.ts b/src/commands/force/source/deploy.ts index bba505e20..db69e06d2 100644 --- a/src/commands/force/source/deploy.ts +++ b/src/commands/force/source/deploy.ts @@ -5,10 +5,12 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; import { Lifecycle, Messages, Org } from '@salesforce/core'; import { Duration, env } from '@salesforce/kit'; import { SourceTracking } from '@salesforce/source-tracking'; -import { ComponentSetBuilder, DeployVersionData } from '@salesforce/source-deploy-retrieve'; +import { AsyncResult, ComponentSetBuilder, DeployVersionData } from '@salesforce/source-deploy-retrieve'; import { arrayWithDeprecation, Flags, @@ -23,19 +25,20 @@ import { reportsFormatters, targetUsernameFlag, TestLevel, -} from '../../../deployCommand'; -import { DeployCommandResult, DeployResultFormatter } from '../../../formatters/deployResultFormatter'; +} from '../../../deployCommand.js'; +import { DeployCommandResult, DeployResultFormatter } from '../../../formatters/deployResultFormatter.js'; import { DeployAsyncResultFormatter, DeployCommandAsyncResult, -} from '../../../formatters/source/deployAsyncResultFormatter'; -import { ProgressFormatter } from '../../../formatters/progressFormatter'; -import { DeployProgressBarFormatter } from '../../../formatters/deployProgressBarFormatter'; -import { DeployProgressStatusFormatter } from '../../../formatters/deployProgressStatusFormatter'; -import { filterConflictsByComponentSet, trackingSetup, updateTracking } from '../../../trackingFunctions'; -import { ResultFormatterOptions } from '../../../formatters/resultFormatter'; +} from '../../../formatters/source/deployAsyncResultFormatter.js'; +import { ProgressFormatter } from '../../../formatters/progressFormatter.js'; +import { DeployProgressBarFormatter } from '../../../formatters/deployProgressBarFormatter.js'; +import { DeployProgressStatusFormatter } from '../../../formatters/deployProgressStatusFormatter.js'; +import { filterConflictsByComponentSet, trackingSetup, updateTracking } from '../../../trackingFunctions.js'; +import { ResultFormatterOptions } from '../../../formatters/resultFormatter.js'; + +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); -Messages.importMessagesDirectory(__dirname); const messages = Messages.loadMessages('@salesforce/plugin-source', 'deploy'); const deployMessages = Messages.loadMessages('@salesforce/plugin-source', 'deployCommand'); @@ -160,9 +163,9 @@ export class Deploy extends DeployCommand { junit: Flags.boolean({ summary: messages.getMessage('flags.junit.summary') }), }; protected readonly lifecycleEventNames = ['predeploy', 'postdeploy']; - protected tracking: SourceTracking; - private flags: Interfaces.InferredFlags; - private org: Org; + protected tracking!: SourceTracking; + private flags!: Interfaces.InferredFlags; + private org!: Org; public async run(): Promise { this.flags = (await this.parse(Deploy)).flags; this.org = await Org.create({ aliasOrUsername: this.flags['target-org'] }); @@ -189,6 +192,7 @@ export class Deploy extends DeployCommand { // 1. synchronous - deploy metadata and wait for the deploy to complete. // 2. asynchronous - deploy metadata and immediately return. // 3. recent validation - deploy metadata that's already been validated by the org + // eslint-disable-next-line complexity protected async deploy(): Promise { const waitDuration = this.flags.wait; this.isAsync = waitDuration.quantity === 0; @@ -208,12 +212,14 @@ export class Deploy extends DeployCommand { apiversion: this.flags['api-version'], sourceapiversion: await this.getSourceApiVersion(), sourcepath: this.flags.sourcepath, - manifest: this.flags.manifest && { - manifestPath: this.flags.manifest, - directoryPaths: this.getPackageDirs(), - destructiveChangesPre: this.flags.predestructivechanges, - destructiveChangesPost: this.flags.postdestructivechanges, - }, + manifest: this.flags.manifest + ? { + manifestPath: this.flags.manifest, + directoryPaths: this.getPackageDirs(), + destructiveChangesPre: this.flags.predestructivechanges, + destructiveChangesPost: this.flags.postdestructivechanges, + } + : undefined, metadata: this.flags.metadata && { metadataEntries: this.flags.metadata, directoryPaths: this.getPackageDirs(), @@ -239,7 +245,7 @@ export class Deploy extends DeployCommand { } // fire predeploy event for sync and async deploys await Lifecycle.getInstance().emit('predeploy', this.componentSet.toArray()); - const username = this.org.getUsername(); + const username = this.org.getUsername() ?? ''; // eslint-disable-next-line @typescript-eslint/require-await Lifecycle.getInstance().on('apiVersionDeploy', async (apiData: DeployVersionData) => { this.log( @@ -270,8 +276,10 @@ export class Deploy extends DeployCommand { ...(this.flags.runtests ? { runTests: this.flags.runtests } : {}), }, }); - this.asyncDeployResult = { id: deploy.id }; - this.updateDeployId(deploy.id); + const id = deploy.id ?? ''; + + this.asyncDeployResult = { id }; + this.updateDeployId(id); if (!this.isAsync) { // we're not print JSON output @@ -315,7 +323,7 @@ export class Deploy extends DeployCommand { ? new DeployAsyncResultFormatter( new Ux({ jsonEnabled: this.jsonEnabled() }), formatterOptions, - this.asyncDeployResult + this.asyncDeployResult as AsyncResult ) : new DeployResultFormatter(new Ux({ jsonEnabled: this.jsonEnabled() }), formatterOptions, this.deployResult); diff --git a/src/commands/force/source/deploy/cancel.ts b/src/commands/force/source/deploy/cancel.ts index 8016b49e5..fd00f1f5a 100644 --- a/src/commands/force/source/deploy/cancel.ts +++ b/src/commands/force/source/deploy/cancel.ts @@ -4,6 +4,8 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; import { Messages, SfError } from '@salesforce/core'; import { Duration } from '@salesforce/kit'; import { RequestStatus } from '@salesforce/source-deploy-retrieve'; @@ -15,13 +17,13 @@ import { Ux, } from '@salesforce/sf-plugins-core'; import { Interfaces } from '@oclif/core'; -import { DeployCommand } from '../../../../deployCommand'; +import { DeployCommand } from '../../../../deployCommand.js'; import { DeployCancelCommandResult, DeployCancelResultFormatter, -} from '../../../../formatters/deployCancelResultFormatter'; +} from '../../../../formatters/deployCancelResultFormatter.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'cancel'); const replacement = 'project deploy cancel'; @@ -53,6 +55,8 @@ export class Cancel extends DeployCommand { }), }; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore private flags: Interfaces.InferredFlags; public async run(): Promise { @@ -77,7 +81,7 @@ export class Cancel extends DeployCommand { } protected resolveSuccess(): void { - const status = this.deployResult.response.status; + const status = this.deployResult?.response.status; if (status !== RequestStatus.Canceled) { this.setExitCode(1); } diff --git a/src/commands/force/source/deploy/report.ts b/src/commands/force/source/deploy/report.ts index 8e5902b65..915becc64 100644 --- a/src/commands/force/source/deploy/report.ts +++ b/src/commands/force/source/deploy/report.ts @@ -5,6 +5,8 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; import { Messages, SfProject } from '@salesforce/core'; import { Duration, env } from '@salesforce/kit'; @@ -18,17 +20,17 @@ import { Ux, } from '@salesforce/sf-plugins-core'; import { Interfaces } from '@oclif/core'; -import { DeployCommand, getCoverageFormattersOptions, reportsFormatters } from '../../../../deployCommand'; +import { DeployCommand, getCoverageFormattersOptions, reportsFormatters } from '../../../../deployCommand.js'; import { DeployReportCommandResult, DeployReportResultFormatter, -} from '../../../../formatters/deployReportResultFormatter'; -import { ProgressFormatter } from '../../../../formatters/progressFormatter'; -import { DeployProgressBarFormatter } from '../../../../formatters/deployProgressBarFormatter'; -import { DeployProgressStatusFormatter } from '../../../../formatters/deployProgressStatusFormatter'; -import { ResultFormatterOptions } from '../../../../formatters/resultFormatter'; +} from '../../../../formatters/deployReportResultFormatter.js'; +import { ProgressFormatter } from '../../../../formatters/progressFormatter.js'; +import { DeployProgressBarFormatter } from '../../../../formatters/deployProgressBarFormatter.js'; +import { DeployProgressStatusFormatter } from '../../../../formatters/deployProgressStatusFormatter.js'; +import { ResultFormatterOptions } from '../../../../formatters/resultFormatter.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'report'); const replacement = 'project deploy report'; @@ -72,6 +74,8 @@ export class Report extends DeployCommand { }), junit: Flags.boolean({ summary: messages.getMessage('flags.junit.summary') }), }; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore private flags: Interfaces.InferredFlags; public async run(): Promise { @@ -100,10 +104,10 @@ export class Report extends DeployCommand { try { this.project = await SfProject.resolve(); sourcepath = this.project.getUniquePackageDirectories().map((pDir) => pDir.fullPath); + this.componentSet = await ComponentSetBuilder.build({ sourcepath }); } catch (err) { // ignore the error. this was just to get improved command output. } - this.componentSet = await ComponentSetBuilder.build({ sourcepath }); } const waitDuration = this.flags.wait; diff --git a/src/commands/force/source/pull.ts b/src/commands/force/source/pull.ts index b35e50fa0..f51a99fc7 100644 --- a/src/commands/force/source/pull.ts +++ b/src/commands/force/source/pull.ts @@ -5,6 +5,8 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; import { Duration } from '@salesforce/kit'; import { Lifecycle, Messages } from '@salesforce/core'; import { FileResponse, RequestStatus, RetrieveVersionData, RetrieveResult } from '@salesforce/source-deploy-retrieve'; @@ -17,11 +19,11 @@ import { requiredOrgFlagWithDeprecations, Ux, } from '@salesforce/sf-plugins-core'; -import { SourceCommand } from '../../../sourceCommand'; -import { PullResponse, PullResultFormatter } from '../../../formatters/source/pullFormatter'; -import { trackingSetup, updateTracking } from '../../../trackingFunctions'; +import { SourceCommand } from '../../../sourceCommand.js'; +import { PullResponse, PullResultFormatter } from '../../../formatters/source/pullFormatter.js'; +import { trackingSetup, updateTracking } from '../../../trackingFunctions.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'pull'); const retrieveMessages = Messages.loadMessages('@salesforce/plugin-source', 'retrieve'); @@ -60,10 +62,10 @@ export default class Pull extends SourceCommand { public static requiresProject = true; protected readonly lifecycleEventNames = ['preretrieve', 'postretrieve']; - protected tracking: SourceTracking; - protected retrieveResult: RetrieveResult; - protected deleteFileResponses: FileResponse[]; - private flags: Interfaces.InferredFlags; + protected tracking!: SourceTracking; + protected retrieveResult!: RetrieveResult; + protected deleteFileResponses!: FileResponse[]; + private flags!: Interfaces.InferredFlags; public async run(): Promise { this.flags = (await this.parse(Pull)).flags; @@ -85,7 +87,7 @@ export default class Pull extends SourceCommand { protected async preChecks(): Promise { this.spinner.start('Loading source tracking information'); this.tracking = await trackingSetup({ - ignoreConflicts: this.flags.forceoverwrite ?? false, + ignoreConflicts: this.flags?.forceoverwrite ?? false, org: this.flags['target-org'], project: this.project, ux: new Ux({ jsonEnabled: this.jsonEnabled() }), @@ -99,7 +101,7 @@ export default class Pull extends SourceCommand { state: 'delete', format: 'SourceComponent', }); - this.deleteFileResponses = await this.tracking.deleteFilesAndUpdateTracking(changesToDelete); + this.deleteFileResponses = await this.tracking?.deleteFilesAndUpdateTracking(changesToDelete); } protected async retrieve(): Promise { @@ -113,7 +115,7 @@ export default class Pull extends SourceCommand { if (this.flags['api-version']) { componentSet.apiVersion = this.flags['api-version']; } - const username = this.flags['target-org'].getUsername(); + const username = this.flags['target-org'].getUsername() as string; // eslint-disable-next-line @typescript-eslint/require-await Lifecycle.getInstance().on('apiVersionRetrieve', async (apiData: RetrieveVersionData) => { this.log( diff --git a/src/commands/force/source/push.ts b/src/commands/force/source/push.ts index 75ccc7273..f347d1c21 100644 --- a/src/commands/force/source/push.ts +++ b/src/commands/force/source/push.ts @@ -5,6 +5,8 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; import { Duration, env } from '@salesforce/kit'; import { Lifecycle, Messages } from '@salesforce/core'; import { ComponentStatus, DeployResult, DeployVersionData, RequestStatus } from '@salesforce/source-deploy-retrieve'; @@ -18,14 +20,14 @@ import { Ux, } from '@salesforce/sf-plugins-core'; import { Interfaces } from '@oclif/core'; -import { DeployCommand } from '../../../deployCommand'; -import { PushResponse, PushResultFormatter } from '../../../formatters/source/pushResultFormatter'; -import { ProgressFormatter } from '../../../formatters/progressFormatter'; -import { DeployProgressBarFormatter } from '../../../formatters/deployProgressBarFormatter'; -import { DeployProgressStatusFormatter } from '../../../formatters/deployProgressStatusFormatter'; -import { trackingSetup, updateTracking } from '../../../trackingFunctions'; +import { DeployCommand } from '../../../deployCommand.js'; +import { PushResponse, PushResultFormatter } from '../../../formatters/source/pushResultFormatter.js'; +import { ProgressFormatter } from '../../../formatters/progressFormatter.js'; +import { DeployProgressBarFormatter } from '../../../formatters/deployProgressBarFormatter.js'; +import { DeployProgressStatusFormatter } from '../../../formatters/deployProgressStatusFormatter.js'; +import { trackingSetup, updateTracking } from '../../../trackingFunctions.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'push'); const deployMessages = Messages.loadMessages('@salesforce/plugin-source', 'deployCommand'); @@ -68,9 +70,9 @@ export default class Push extends DeployCommand { protected readonly lifecycleEventNames = ['predeploy', 'postdeploy']; private deployResults: DeployResult[] = []; - private tracking: SourceTracking; - private deletes: string[]; - private flags: Interfaces.InferredFlags; + private tracking!: SourceTracking; + private deletes!: string[]; + private flags!: Interfaces.InferredFlags; public async run(): Promise { this.flags = (await this.parse(Push)).flags; @@ -94,7 +96,7 @@ export default class Push extends DeployCommand { } protected async deploy(): Promise { - const username = this.flags['target-org'].getUsername(); + const username = this.flags['target-org'].getUsername() as string; const isSequentialDeploy = getBoolean( await this.project.resolveProjectConfig(), 'pushPackageDirectoriesSequentially', diff --git a/src/commands/force/source/retrieve.ts b/src/commands/force/source/retrieve.ts index d13ca8f9b..04417cb37 100644 --- a/src/commands/force/source/retrieve.ts +++ b/src/commands/force/source/retrieve.ts @@ -6,8 +6,9 @@ */ import { dirname, join, resolve } from 'node:path'; -import * as fs from 'node:fs'; +import fs from 'node:fs'; +import { fileURLToPath } from 'node:url'; import { Lifecycle, Messages, SfError, SfProject } from '@salesforce/core'; import { Duration } from '@salesforce/kit'; import { @@ -29,16 +30,16 @@ import { Ux, } from '@salesforce/sf-plugins-core'; import { AlphabetLowercase } from '@oclif/core/lib/interfaces'; -import { SourceCommand } from '../../../sourceCommand'; +import { SourceCommand } from '../../../sourceCommand.js'; import { PackageRetrieval, RetrieveCommandResult, RetrieveResultFormatter, -} from '../../../formatters/retrieveResultFormatter'; -import { filterConflictsByComponentSet, trackingSetup, updateTracking } from '../../../trackingFunctions'; -import { promisesQueue } from '../../../promiseQueue'; +} from '../../../formatters/retrieveResultFormatter.js'; +import { filterConflictsByComponentSet, trackingSetup, updateTracking } from '../../../trackingFunctions.js'; +import { promisesQueue } from '../../../promiseQueue.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'retrieve'); const spinnerMessages = Messages.loadMessages('@salesforce/plugin-source', 'spinner'); const retrieveMessages = Messages.loadMessages('@salesforce/plugin-source', 'retrieve'); @@ -110,10 +111,10 @@ export class Retrieve extends SourceCommand { }), }; protected readonly lifecycleEventNames = ['preretrieve', 'postretrieve']; - protected retrieveResult: RetrieveResult; - protected tracking: SourceTracking; - private resolvedTargetDir: string; - private flags: Interfaces.InferredFlags; + protected retrieveResult!: RetrieveResult; + protected tracking!: SourceTracking; + private resolvedTargetDir!: string; + private flags!: Interfaces.InferredFlags; private registry = new RegistryAccess(); public async run(): Promise { @@ -149,7 +150,7 @@ export class Retrieve extends SourceCommand { } protected async retrieve(): Promise { - const username = this.flags['target-org'].getUsername(); + const username = this.flags['target-org'].getUsername() as string; // eslint-disable-next-line @typescript-eslint/require-await Lifecycle.getInstance().on('apiVersionRetrieve', async (apiData: RetrieveVersionData) => { this.log( @@ -167,17 +168,19 @@ export class Retrieve extends SourceCommand { sourceapiversion: await this.getSourceApiVersion(), packagenames: this.flags.packagenames, sourcepath: this.flags.sourcepath, - manifest: this.flags.manifest && { - manifestPath: this.flags.manifest, - directoryPaths: this.flags.retrievetargetdir ? [] : this.getPackageDirs(), - }, + manifest: this.flags.manifest + ? { + manifestPath: this.flags.manifest, + directoryPaths: this.flags.retrievetargetdir ? [] : this.getPackageDirs(), + } + : undefined, metadata: this.flags.metadata && { metadataEntries: this.flags.metadata, directoryPaths: this.flags.retrievetargetdir ? [] : this.getPackageDirs(), }, }); - if (this.flags.manifest || this.flags.metadata) { + if (this.flags.manifest ?? this.flags.metadata) { if (this.wantsToRetrieveCustomFields()) { this.warn(messages.getMessage('wantsToRetrieveCustomFields')); this.componentSet.add({ @@ -274,16 +277,16 @@ export class Retrieve extends SourceCommand { } private wantsToRetrieveCustomFields(): boolean { - const hasCustomField = this.componentSet.has({ + const hasCustomField = this.componentSet?.has({ type: this.registry.getTypeByName('CustomField'), fullName: ComponentSet.WILDCARD, }); - const hasCustomObject = this.componentSet.has({ + const hasCustomObject = this.componentSet?.has({ type: this.registry.getTypeByName('CustomObject'), fullName: ComponentSet.WILDCARD, }); - return hasCustomField && !hasCustomObject; + return (hasCustomField && !hasCustomObject) as boolean; } private async moveResultsForRetrieveTargetDir(): Promise { diff --git a/src/commands/force/source/status.ts b/src/commands/force/source/status.ts index 0df19d7ee..757ed66f1 100644 --- a/src/commands/force/source/status.ts +++ b/src/commands/force/source/status.ts @@ -5,6 +5,8 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; import { Messages } from '@salesforce/core'; import { ChangeResult, StatusOutputRow } from '@salesforce/source-tracking'; import { Interfaces } from '@oclif/core'; @@ -16,10 +18,15 @@ import { SfCommand, Ux, } from '@salesforce/sf-plugins-core'; -import { StatusFormatter, StatusResult } from '../../../formatters/source/statusFormatter'; -import { trackingSetup } from '../../../trackingFunctions'; +import { + StatusFormatter, + StatusOrigin, + StatusResult, + StatusStateString, +} from '../../../formatters/source/statusFormatter.js'; +import { trackingSetup } from '../../../trackingFunctions.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'status'); export type StatusCommandResult = StatusResult[]; @@ -54,7 +61,7 @@ export default class Status extends SfCommand { public static readonly requiresProject = true; protected results = new Array(); protected localAdds: ChangeResult[] = []; - private flags: Interfaces.InferredFlags; + private flags!: Interfaces.InferredFlags; public async run(): Promise { this.flags = (await this.parse(Status)).flags; @@ -102,14 +109,14 @@ export default class Status extends SfCommand { */ const resultConverter = (input: StatusOutputRow): StatusResult => { const { fullName, type, ignored, filePath, conflict } = input; - const origin = originMap.get(input.origin); + const origin = originMap.get(input.origin) as StatusOrigin; const actualState = stateMap.get(input.state); return { fullName, type, // this string became the place to store information. // The JSON now breaks out that info but preserves this property for backward compatibility - state: `${origin} ${actualState}${conflict ? ' (Conflict)' : ''}`, + state: `${origin} ${actualState}${conflict ? ' (Conflict)' : ''}` as StatusStateString, ignored, filePath, origin, diff --git a/src/coverageUtils.ts b/src/coverageUtils.ts index e220dd090..ae7daf01c 100644 --- a/src/coverageUtils.ts +++ b/src/coverageUtils.ts @@ -5,7 +5,7 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ import { CodeCoverage, Failures, RunTestResult, Successes } from '@salesforce/source-deploy-retrieve'; -import * as chalk from 'chalk'; +import chalk from 'chalk'; import { ApexCodeCoverageAggregate, ApexCodeCoverageAggregateRecord, @@ -109,8 +109,8 @@ export function transformDeployTestsResultsToTestResult( commandTimeInMs: 0, failRate: ((numTestFailures / numTestsRun) * 100).toFixed(2) + '%', failing: numTestFailures, - hostname: connection.getConnectionOptions().instanceUrl, - orgId: connection.getAuthInfoFields().orgId, + hostname: connection.getConnectionOptions().instanceUrl ?? '', + orgId: connection.getAuthInfoFields().orgId ?? '', outcome: '', passRate: numTestFailures === 0 ? '100%' : ((1 - numTestFailures / numTestsRun) * 100).toFixed(2) + '%', passing: numTestsRun - numTestFailures, @@ -121,8 +121,8 @@ export function transformDeployTestsResultsToTestResult( testStartTime: new Date().toISOString(), testTotalTimeInMs: parseFloat(runTestResult.totalTime), testsRan: numTestsRun, - userId: connection.getConnectionOptions().userId, - username: connection.getUsername(), + userId: connection.getConnectionOptions().userId ?? '', + username: connection.getUsername() ?? '', }, tests: [ ...mapTestResults(ensureArray(runTestResult.successes)), diff --git a/src/deployCommand.ts b/src/deployCommand.ts index 0f2299e03..e8830fd26 100644 --- a/src/deployCommand.ts +++ b/src/deployCommand.ts @@ -5,8 +5,9 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; -import * as fs from 'node:fs'; +import path from 'node:path'; +import fs from 'node:fs'; +import { fileURLToPath } from 'node:url'; import { AsyncResult, ComponentSet, @@ -14,6 +15,7 @@ import { MetadataApiDeploy, MetadataApiDeployStatus, RequestStatus, + RunTestResult, } from '@salesforce/source-deploy-retrieve'; import { ConfigAggregator, @@ -26,7 +28,7 @@ import { StatusResult, } from '@salesforce/core'; import { AnyJson, getBoolean } from '@salesforce/ts-types'; -import { Duration, once, ensureArray } from '@salesforce/kit'; +import { Duration, ensureArray, once } from '@salesforce/kit'; import { CoverageReporter, CoverageReporterOptions, @@ -35,18 +37,18 @@ import { JUnitReporter, } from '@salesforce/apex-node'; import { Flags } from '@salesforce/sf-plugins-core'; -import { SourceCommand } from './sourceCommand'; -import { DeployData, Stash } from './stash'; -import { transformCoverageToApexCoverage, transformDeployTestsResultsToTestResult } from './coverageUtils'; +import { SourceCommand } from './sourceCommand.js'; +import { DeployData, Stash } from './stash.js'; +import { transformCoverageToApexCoverage, transformDeployTestsResultsToTestResult } from './coverageUtils.js'; export type TestLevel = 'NoTestRun' | 'RunSpecifiedTests' | 'RunLocalTests' | 'RunAllTestsInOrg'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(path.dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'deployCommand'); export const reportsFormatters = Object.keys(DefaultReportOptions); export abstract class DeployCommand extends SourceCommand { - protected displayDeployId = once((id: string) => { + protected displayDeployId = once((id?: string) => { if (!this.jsonEnabled()) { this.log(`Deploy ID: ${id}`); } @@ -54,19 +56,19 @@ export abstract class DeployCommand extends SourceCommand { protected isRest = false; protected isAsync = false; - protected asyncDeployResult: AsyncResult; - - protected deployResult: DeployResult; - protected resultsDir: string; - protected updateDeployId = once((id: string) => { + protected asyncDeployResult: AsyncResult | undefined; + protected deployResult!: DeployResult; + protected resultsDir: string | undefined; + protected updateDeployId = once((id?: string) => { this.displayDeployId(id); - const stashKey = Stash.getKey(this.id); - Stash.set(stashKey, { jobid: id }); + const stashKey = Stash.getKey(this.id as string); + Stash.set(stashKey, { jobid: id ?? '' }); }); /** * Request a report of an in-progress or completed deployment. * + * @param conn a Connection to the org * @param id the Deploy ID of a deployment request * @returns DeployResult */ @@ -77,7 +79,7 @@ export abstract class DeployCommand extends SourceCommand { const res = await conn.metadata.checkDeployStatus(deployId, true); const deployStatus = res as unknown as MetadataApiDeployStatus; - const componentSet = this.componentSet || new ComponentSet(); + const componentSet = this.componentSet ?? new ComponentSet(); return new DeployResult(deployStatus, componentSet); } @@ -97,25 +99,27 @@ export abstract class DeployCommand extends SourceCommand { [RequestStatus.Canceling, 69], ]); if (!this.isAsync) { - this.setExitCode(StatusCodeMap.get(this.deployResult.response?.status) ?? 1); + this.setExitCode(StatusCodeMap.get(this.deployResult?.response?.status) ?? 1); } } /** * This method is here to provide a workaround to stubbing a constructor in the tests. * + * @param conn * @param id */ // eslint-disable-next-line class-methods-use-this protected createDeploy(conn: Connection, id?: string): MetadataApiDeploy { - return new MetadataApiDeploy({ usernameOrConnection: conn.getUsername(), id }); + return new MetadataApiDeploy({ usernameOrConnection: conn.getUsername() ?? '', id }); } protected resolveDeployId(id?: string): string { if (id) { return id; } else { - const stash = Stash.get(Stash.getKey(this.id)); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + const stash = Stash.get(Stash.getKey(this.id!)); if (!stash) { throw new SfError(messages.getMessage('MissingDeployId')); } @@ -127,7 +131,7 @@ export abstract class DeployCommand extends SourceCommand { // 1. SOAP is specified with the soapdeploy flag on the command // 2. The restDeploy SFDX config setting is explicitly true. protected isRestDeploy(soapdeploy = true): boolean { - if (soapdeploy === true) { + if (soapdeploy) { this.debug('soapdeploy flag === true. Using SOAP'); return false; } @@ -160,7 +164,7 @@ export abstract class DeployCommand extends SourceCommand { poll: async (): Promise => { const deployResult = await this.report(connection, deployId); return { - completed: getBoolean(deployResult, 'response.done'), + completed: getBoolean(deployResult, 'response.done') as boolean, payload: deployResult as unknown as AnyJson, }; }, @@ -182,8 +186,8 @@ export abstract class DeployCommand extends SourceCommand { protected maybeCreateRequestedReports(options: { coverageformatters: string[]; junit: boolean; org: Org }): void { // only generate reports if test results are present - if (this.deployResult.response?.numberTestsTotal) { - if (options.coverageformatters) { + if (this.deployResult?.response?.numberTestsTotal) { + if (options.coverageformatters && this.resultsDir) { createCoverageReport(this.deployResult, options.coverageformatters, 'no-map', this.resultsDir); } if (options.junit) { @@ -195,9 +199,9 @@ export abstract class DeployCommand extends SourceCommand { protected createJunitResults(deployResult: DeployResult, org: Org): void { const testResult = transformDeployTestsResultsToTestResult( org.getConnection(), - deployResult.response?.details?.runTestResult + deployResult.response?.details?.runTestResult as RunTestResult ); - if (testResult.summary.testsRan > 0) { + if (testResult.summary.testsRan > 0 && this.resultsDir) { const jUnitReporter = new JUnitReporter(); const junitResults = jUnitReporter.format(testResult); @@ -211,7 +215,7 @@ export abstract class DeployCommand extends SourceCommand { protected resolveOutputDir( coverageFormatters: string[], junit: boolean, - resultsDir: string, + resultsDir: string | undefined, deployId: string, noThrow: boolean ): string { @@ -226,7 +230,7 @@ export abstract class DeployCommand extends SourceCommand { throw new SfError(messages.getMessage('resultsDirMissing')); } } - return undefined; + return ''; } } @@ -287,7 +291,7 @@ export const resolveUsername = async (usernameOrAlias?: string): Promise if (usernameOrAlias) return stateAggregator.aliases.resolveUsername(usernameOrAlias); // we didn't get a value, so let's see if the config has a default target org const configAggregator = await ConfigAggregator.create(); - const defaultUsernameOrAlias: string = configAggregator.getPropertyValue('target-org'); + const defaultUsernameOrAlias = configAggregator.getPropertyValue('target-org') as string; if (defaultUsernameOrAlias) return stateAggregator.aliases.resolveUsername(defaultUsernameOrAlias); throw new SfError(messages.getMessage('missingUsername'), 'MissingUsernameError'); }; diff --git a/src/formatters/codeCoverageTable.ts b/src/formatters/codeCoverageTable.ts index 6b277be68..e61344030 100644 --- a/src/formatters/codeCoverageTable.ts +++ b/src/formatters/codeCoverageTable.ts @@ -7,8 +7,8 @@ import { ensureArray } from '@salesforce/kit'; import { Ux } from '@salesforce/sf-plugins-core'; import { CodeCoverage } from '@salesforce/source-deploy-retrieve'; -import chalk = require('chalk'); -import { prepCoverageForDisplay } from '../coverageUtils'; +import chalk from 'chalk'; +import { prepCoverageForDisplay } from '../coverageUtils.js'; /** * prints a table of formatted code coverage results if there are any @@ -17,7 +17,10 @@ import { prepCoverageForDisplay } from '../coverageUtils'; * @param coverageFromMdapiResult * @param ux */ -export const maybePrintCodeCoverageTable = (coverageFromMdapiResult: CodeCoverage | CodeCoverage[], ux: Ux): void => { +export const maybePrintCodeCoverageTable = ( + coverageFromMdapiResult: CodeCoverage | CodeCoverage[] | undefined, + ux: Ux +): void => { const codeCoverage = ensureArray(coverageFromMdapiResult); if (codeCoverage.length) { diff --git a/src/formatters/deployCancelResultFormatter.ts b/src/formatters/deployCancelResultFormatter.ts index f639d9d80..2a413bef8 100644 --- a/src/formatters/deployCancelResultFormatter.ts +++ b/src/formatters/deployCancelResultFormatter.ts @@ -8,7 +8,7 @@ import { getString } from '@salesforce/ts-types'; import { DeployResult, MetadataApiDeployStatus } from '@salesforce/source-deploy-retrieve'; import { Ux } from '@salesforce/sf-plugins-core'; -import { ResultFormatter } from './resultFormatter'; +import { ResultFormatter } from './resultFormatter.js'; export type DeployCancelCommandResult = MetadataApiDeployStatus; diff --git a/src/formatters/deployProgressBarFormatter.ts b/src/formatters/deployProgressBarFormatter.ts index 6d76e07d5..85311e477 100644 --- a/src/formatters/deployProgressBarFormatter.ts +++ b/src/formatters/deployProgressBarFormatter.ts @@ -9,18 +9,21 @@ import { MetadataApiDeploy } from '@salesforce/source-deploy-retrieve'; import { once } from '@salesforce/kit'; import { ux as coreUx } from '@oclif/core'; import { Ux } from '@salesforce/sf-plugins-core'; -import { ProgressBar } from '../types'; -import { ProgressFormatter } from './progressFormatter'; +import { ProgressFormatter } from './progressFormatter.js'; export class DeployProgressBarFormatter extends ProgressFormatter { - protected progressBar?: ProgressBar; + protected progressBar = coreUx.progress({ + format: 'DEPLOY PROGRESS | {bar} | {value}/{total} Components', + barCompleteChar: '\u2588', + barIncompleteChar: '\u2591', + linewrap: true, + }); public constructor(ux: Ux) { super(ux); } // displays the progress of the Deployment public progress(deploy: MetadataApiDeploy): void { - this.initProgressBar(); const startProgressBar = once((componentTotal: number) => { this.progressBar.start(componentTotal, 0); }); @@ -48,7 +51,7 @@ export class DeployProgressBarFormatter extends ProgressFormatter { // the server initially returns the number of customfields (n) + 1 - but once the deploy has finished // it calculates the correct number of fields deployed n, and so we are left with a progress bar at n/(n+1) // so if the progress bar total is different from what was actually deployed, set the total to be accurate - if (this.progressBar.total !== deployed) { + if (this.progressBar.getTotal() !== deployed) { this.progressBar.setTotal(deployed); } @@ -65,15 +68,4 @@ export class DeployProgressBarFormatter extends ProgressFormatter { throw error; }); } - - // used to initialize the progress bar - protected initProgressBar(): void { - // this.logger.debug('initializing progress bar'); - this.progressBar = coreUx.progress({ - format: 'DEPLOY PROGRESS | {bar} | {value}/{total} Components', - barCompleteChar: '\u2588', - barIncompleteChar: '\u2591', - linewrap: true, - }) as ProgressBar; - } } diff --git a/src/formatters/deployProgressStatusFormatter.ts b/src/formatters/deployProgressStatusFormatter.ts index dae5e531b..8706ee56f 100644 --- a/src/formatters/deployProgressStatusFormatter.ts +++ b/src/formatters/deployProgressStatusFormatter.ts @@ -4,13 +4,14 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as chalk from 'chalk'; +import chalk from 'chalk'; import { getNumber } from '@salesforce/ts-types'; import { MetadataApiDeploy, MetadataApiDeployStatus } from '@salesforce/source-deploy-retrieve'; import { Duration } from '@salesforce/kit'; import { Ux } from '@salesforce/sf-plugins-core'; -import { ProgressFormatter } from './progressFormatter'; -import { ResultFormatterOptions } from './resultFormatter'; +import { ProgressFormatter } from './progressFormatter.js'; +import { ResultFormatterOptions } from './resultFormatter.js'; + export class DeployProgressStatusFormatter extends ProgressFormatter { private previousComponents = -1; private previousTests = -1; diff --git a/src/formatters/deployReportResultFormatter.ts b/src/formatters/deployReportResultFormatter.ts index 2474b79fe..d60cbf182 100644 --- a/src/formatters/deployReportResultFormatter.ts +++ b/src/formatters/deployReportResultFormatter.ts @@ -5,12 +5,13 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; import { MetadataApiDeployStatus, RequestStatus } from '@salesforce/source-deploy-retrieve'; import { SfError, Messages } from '@salesforce/core'; -import { DeployResultFormatter } from './deployResultFormatter'; - -Messages.importMessagesDirectory(__dirname); +import { DeployResultFormatter } from './deployResultFormatter.js'; +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); export type DeployReportCommandResult = MetadataApiDeployStatus; export class DeployReportResultFormatter extends DeployResultFormatter { diff --git a/src/formatters/deployResultFormatter.ts b/src/formatters/deployResultFormatter.ts index f9ce02731..ebf54fff8 100644 --- a/src/formatters/deployResultFormatter.ts +++ b/src/formatters/deployResultFormatter.ts @@ -5,8 +5,10 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; -import * as chalk from 'chalk'; +import path from 'node:path'; +import { dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import chalk from 'chalk'; import { Messages, SfError } from '@salesforce/core'; import { ensureArray } from '@salesforce/kit'; @@ -23,11 +25,11 @@ import { Successes, } from '@salesforce/source-deploy-retrieve'; import { Ux } from '@salesforce/sf-plugins-core'; -import { ResultFormatter, ResultFormatterOptions } from './resultFormatter'; -import { MdDeployResult } from './mdapi/mdDeployResultFormatter'; -import { maybePrintCodeCoverageTable } from './codeCoverageTable'; +import { ResultFormatter, ResultFormatterOptions } from './resultFormatter.js'; +import { MdDeployResult } from './mdapi/mdDeployResultFormatter.js'; +import { maybePrintCodeCoverageTable } from './codeCoverageTable.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'deploy'); export type DeployCommandResult = { @@ -199,9 +201,11 @@ export class DeployResultFormatter extends ResultFormatter { const fileResponses: FileResponse[] = []; this.fileResponses .filter((f) => f.state === ComponentStatus.Failed) - .map((f: FileResponse & { error: string }) => { + .map((f) => { fileResponses.push(f); - fileResponseFailures.set(`${f.type}#${f.fullName}`, f.error); + if ('error' in f) { + fileResponseFailures.set(`${f.type}#${f.fullName}`, f.error); + } }); this.sortFileResponses(fileResponses); this.asRelativePaths(fileResponses); @@ -223,6 +227,8 @@ export class DeployResultFormatter extends ResultFormatter { this.ux.log(''); this.ux.styledHeader(chalk.red(`Component Failures [${failures.length}]`)); this.ux.table( + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore failures.map((entry: FileResponseFailure) => ({ fullName: entry.fullName, problemType: entry.problemType, @@ -275,6 +281,8 @@ export class DeployResultFormatter extends ResultFormatter { chalk.red(`Test Failures [${asString(this.result.response.details.runTestResult?.numFailures)}]`) ); this.ux.table( + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore tests.map((entry: Failures) => ({ name: entry.name, methodName: entry.methodName, diff --git a/src/formatters/mdapi/mdDeployAsyncResultFormatter.ts b/src/formatters/mdapi/mdDeployAsyncResultFormatter.ts index bba5cf4fc..b16099891 100644 --- a/src/formatters/mdapi/mdDeployAsyncResultFormatter.ts +++ b/src/formatters/mdapi/mdDeployAsyncResultFormatter.ts @@ -7,13 +7,15 @@ import { EOL } from 'node:os'; +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; import { Messages } from '@salesforce/core'; import { AsyncResult } from '@salesforce/source-deploy-retrieve'; import { Ux } from '@salesforce/sf-plugins-core'; -import { ResultFormatterOptions } from '../resultFormatter'; -import { DeployAsyncResultFormatter } from '../source/deployAsyncResultFormatter'; +import { ResultFormatterOptions } from '../resultFormatter.js'; +import { DeployAsyncResultFormatter } from '../source/deployAsyncResultFormatter.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'md.deploy'); export class MdDeployAsyncResultFormatter extends DeployAsyncResultFormatter { diff --git a/src/formatters/mdapi/mdDeployResultFormatter.ts b/src/formatters/mdapi/mdDeployResultFormatter.ts index 455ca466a..b76a1fca9 100644 --- a/src/formatters/mdapi/mdDeployResultFormatter.ts +++ b/src/formatters/mdapi/mdDeployResultFormatter.ts @@ -5,7 +5,9 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as chalk from 'chalk'; +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; +import chalk from 'chalk'; import { getNumber } from '@salesforce/ts-types'; import { Messages, SfError } from '@salesforce/core'; import { @@ -18,10 +20,10 @@ import { } from '@salesforce/source-deploy-retrieve'; import { ensureArray } from '@salesforce/kit'; import { Ux } from '@salesforce/sf-plugins-core'; -import { CoverageResultsFileInfo, ResultFormatter, ResultFormatterOptions } from '../resultFormatter'; -import { maybePrintCodeCoverageTable } from '../codeCoverageTable'; +import { CoverageResultsFileInfo, ResultFormatter, ResultFormatterOptions } from '../resultFormatter.js'; +import { maybePrintCodeCoverageTable } from '../codeCoverageTable.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'md.deploy'); export type MdDeployResult = { @@ -182,6 +184,8 @@ export class MdDeployResultFormatter extends ResultFormatter { this.ux.log(''); this.ux.styledHeader(chalk.red(`Test Failures [${this.result.response.details.runTestResult?.numFailures}]`)); this.ux.table( + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore tests.map((test: Failures) => ({ name: test.name, methodName: test.methodName, @@ -212,12 +216,12 @@ export class MdDeployResultFormatter extends ResultFormatter { } ); } - maybePrintCodeCoverageTable(this.result.response.details?.runTestResult?.codeCoverage, this.ux); + maybePrintCodeCoverageTable(this.result.response.details?.runTestResult?.codeCoverage ?? [], this.ux); } protected verboseTestTime(): void { if ( - this.result.response?.details?.runTestResult?.successes || + this.result.response?.details?.runTestResult?.successes ?? this.result?.response?.details?.runTestResult?.failures ) { this.ux.log(''); @@ -233,5 +237,5 @@ const mdResponseSorter = (i: DeployMessage, j: DeployMessage): number => { } return i.fileName > j.fileName ? 1 : -1; } - return i.componentType > j.componentType ? 1 : -1; + return i.componentType ?? '' > (j.componentType ?? '') ? 1 : -1; }; diff --git a/src/formatters/mdapi/retrieveResultFormatter.ts b/src/formatters/mdapi/retrieveResultFormatter.ts index f76f34d57..47c7cb149 100644 --- a/src/formatters/mdapi/retrieveResultFormatter.ts +++ b/src/formatters/mdapi/retrieveResultFormatter.ts @@ -5,7 +5,7 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ import { join, parse } from 'node:path'; -import { blue } from 'chalk'; +import chalk from 'chalk'; import { getNumber } from '@salesforce/ts-types'; import { RetrieveResult, @@ -15,8 +15,8 @@ import { } from '@salesforce/source-deploy-retrieve'; import { ensureArray } from '@salesforce/kit'; import { Ux } from '@salesforce/sf-plugins-core'; -import { RetrieveFormatter } from '../retrieveFormatter'; -import { ResultFormatterOptions } from '../resultFormatter'; +import { RetrieveFormatter } from '../retrieveFormatter.js'; +import { ResultFormatterOptions } from '../resultFormatter.js'; export type RetrieveCommandResult = Omit & { zipFilePath: string }; @@ -40,7 +40,7 @@ export class RetrieveResultFormatter extends RetrieveFormatter { public constructor(ux: Ux, public options: RetrieveResultFormatterOptions, result: RetrieveResult) { super(ux, options, result); this.options.zipFileName ??= 'unpackaged.zip'; - this.zipFilePath = join(options.retrieveTargetDir, options.zipFileName); + this.zipFilePath = join(options.retrieveTargetDir, this.options.zipFileName); } /** @@ -66,7 +66,7 @@ export class RetrieveResultFormatter extends RetrieveFormatter { if (this.isSuccess()) { this.ux.log(`Wrote retrieve zip to ${this.zipFilePath}`); if (this.options.unzip) { - const extractPath = join(this.options.retrieveTargetDir, parse(this.options.zipFileName).name); + const extractPath = join(this.options.retrieveTargetDir, parse(this.options.zipFileName ?? '').name); this.ux.log(`Extracted ${this.options.zipFileName} to: ${extractPath}`); } if (this.options.verbose) { @@ -87,7 +87,7 @@ export class RetrieveResultFormatter extends RetrieveFormatter { this.sortFileProperties(retrievedFiles); this.ux.log(''); - this.ux.styledHeader(blue(`Components Retrieved [${retrievedFiles.length}]`)); + this.ux.styledHeader(chalk.blue(`Components Retrieved [${retrievedFiles.length}]`)); this.ux.table(retrievedFiles, { type: { header: 'TYPE' }, fileName: { header: 'FILE' }, diff --git a/src/formatters/resultFormatter.ts b/src/formatters/resultFormatter.ts index 868460e85..abb3c3ca6 100644 --- a/src/formatters/resultFormatter.ts +++ b/src/formatters/resultFormatter.ts @@ -6,11 +6,11 @@ */ /* eslint-disable class-methods-use-this */ -import * as path from 'node:path'; -import * as fs from 'node:fs'; +import path from 'node:path'; +import fs from 'node:fs'; import { Failures, FileProperties, FileResponse, Successes } from '@salesforce/source-deploy-retrieve'; import { getNumber } from '@salesforce/ts-types'; -import * as chalk from 'chalk'; +import chalk from 'chalk'; import { CoverageReporterOptions, DefaultReportOptions } from '@salesforce/apex-node'; import { Ux } from '@salesforce/sf-plugins-core'; @@ -56,6 +56,9 @@ export abstract class ResultFormatter { if (i.filePath === j.filePath) { return i.fullName > j.fullName ? 1 : -1; } + // filepaths won't be undefined here + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore return i.filePath > j.filePath ? 1 : -1; } return i.type > j.type ? 1 : -1; @@ -99,32 +102,41 @@ export abstract class ResultFormatter { this.ux.log(); this.ux.styledHeader(chalk.blue('Coverage or Junit Result Report Locations')); } - if (this.options.testsRan && this.options.coverageOptions?.reportFormats?.length > 0) { + if ( + this.options.testsRan && + this.options.coverageOptions?.reportFormats && + this.options.coverageOptions?.reportFormats?.length > 0 + ) { this.ux.log( `Code Coverage formats, [${this.options.coverageOptions.reportFormats.join(',')}], written to ${path.join( - this.options.resultsDir, + this.options.resultsDir ?? '', 'coverage' )}` ); } if (this.options.testsRan && this.options.junitTestResults) { - this.ux.log(`Junit results written to ${path.join(this.options.resultsDir, 'junit', 'junit.xml')}`); + this.ux.log(`Junit results written to ${path.join(this.options.resultsDir ?? '', 'junit', 'junit.xml')}`); } } - protected getCoverageFileInfo(): CoverageResultsFileInfo { - /* eslint-disable @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment */ + protected getCoverageFileInfo(): CoverageResultsFileInfo | undefined { const formatters = this.options.coverageOptions?.reportFormats; if (!formatters) { return undefined; } - const reportOptions = this.options.coverageOptions?.reportOptions || DefaultReportOptions; + const reportOptions = this.options.coverageOptions?.reportOptions ?? DefaultReportOptions; return Object.fromEntries( formatters.map((formatter) => { // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access,@typescript-eslint/no-unsafe-assignment const selectedReportOptions = reportOptions[formatter]; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore const filename = selectedReportOptions['file'] as string; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore const subdir = selectedReportOptions['subdir'] as string; + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore return [formatter, path.join(...[this.options.resultsDir, subdir, filename].filter((part) => part))]; }) ) as CoverageResultsFileInfo; diff --git a/src/formatters/retrieveFormatter.ts b/src/formatters/retrieveFormatter.ts index c710c9748..0638f057b 100644 --- a/src/formatters/retrieveFormatter.ts +++ b/src/formatters/retrieveFormatter.ts @@ -5,7 +5,8 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import { yellow } from 'chalk'; +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; import { Messages, SfError } from '@salesforce/core'; import { get } from '@salesforce/ts-types'; import { @@ -17,18 +18,20 @@ import { import { ensureArray } from '@salesforce/kit'; import { Ux } from '@salesforce/sf-plugins-core'; -import { ResultFormatter, ResultFormatterOptions } from './resultFormatter'; - -Messages.importMessagesDirectory(__dirname); +import chalk from 'chalk'; +import { ResultFormatter, ResultFormatterOptions } from './resultFormatter.js'; +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); export abstract class RetrieveFormatter extends ResultFormatter { protected warnings: RetrieveMessage[]; protected result: MetadataApiRetrieveStatus; protected messages = Messages.loadMessages('@salesforce/plugin-source', 'retrieve'); - public constructor(ux: Ux, public options: ResultFormatterOptions, result: RetrieveResult) { + protected constructor(ux: Ux, public options: ResultFormatterOptions, result: RetrieveResult) { super(ux, options); // zipFile can become massive and unwieldy with JSON parsing/terminal output and, isn't useful + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore delete result.response.zipFile; this.result = result.response; @@ -41,7 +44,7 @@ export abstract class RetrieveFormatter extends ResultFormatter { } protected displayWarnings(): void { - this.ux.styledHeader(yellow(this.messages.getMessage('retrievedSourceWarningsHeader'))); + this.ux.styledHeader(chalk.yellow(this.messages.getMessage('retrievedSourceWarningsHeader'))); this.ux.table(this.warnings, { fileName: { header: 'FILE NAME' }, problem: { header: 'PROBLEM' } }); this.ux.log(); } diff --git a/src/formatters/retrieveResultFormatter.ts b/src/formatters/retrieveResultFormatter.ts index 6666f4286..bb4fb3e4d 100644 --- a/src/formatters/retrieveResultFormatter.ts +++ b/src/formatters/retrieveResultFormatter.ts @@ -5,7 +5,7 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import { blue } from 'chalk'; +import chalk from 'chalk'; import { getNumber } from '@salesforce/ts-types'; import { RetrieveResult, @@ -16,8 +16,8 @@ import { RetrieveMessage, } from '@salesforce/source-deploy-retrieve'; import { Ux } from '@salesforce/sf-plugins-core'; -import { RetrieveFormatter } from './retrieveFormatter'; -import { ResultFormatterOptions } from './resultFormatter'; +import { RetrieveFormatter } from './retrieveFormatter.js'; +import { ResultFormatterOptions } from './resultFormatter.js'; export interface PackageRetrieval { name: string; @@ -42,7 +42,7 @@ export class RetrieveResultFormatter extends RetrieveFormatter { public constructor(ux: Ux, options: RetrieveResultFormatterOptions, result: RetrieveResult) { super(ux, options, result); this.fileResponses = result?.getFileResponses ? result.getFileResponses() : []; - this.packages = options.packages || []; + this.packages = options.packages ?? []; } /** @@ -70,7 +70,7 @@ export class RetrieveResultFormatter extends RetrieveFormatter { } if (this.isSuccess()) { - this.ux.styledHeader(blue(this.messages.getMessage('retrievedSourceHeader'))); + this.ux.styledHeader(chalk.blue(this.messages.getMessage('retrievedSourceHeader'))); const retrievedFiles = this.fileResponses.filter((fr) => fr.state !== ComponentStatus.Failed); if (retrievedFiles?.length) { this.displaySuccesses(retrievedFiles); @@ -87,7 +87,7 @@ export class RetrieveResultFormatter extends RetrieveFormatter { // Display any package retrievals if (this.packages?.length) { this.ux.log(''); - this.ux.styledHeader(blue('Retrieved Packages')); + this.ux.styledHeader(chalk.blue('Retrieved Packages')); this.packages.forEach((pkg) => { this.ux.log(`${pkg.name} package converted and retrieved to: ${pkg.path}`); }); diff --git a/src/formatters/source/deployAsyncResultFormatter.ts b/src/formatters/source/deployAsyncResultFormatter.ts index 90bb66242..b84f755df 100644 --- a/src/formatters/source/deployAsyncResultFormatter.ts +++ b/src/formatters/source/deployAsyncResultFormatter.ts @@ -7,13 +7,15 @@ import { EOL } from 'node:os'; +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; import { Messages } from '@salesforce/core'; import { cloneJson } from '@salesforce/kit'; import { AsyncResult } from '@salesforce/source-deploy-retrieve'; import { Ux } from '@salesforce/sf-plugins-core'; -import { ResultFormatter, ResultFormatterOptions } from '../resultFormatter'; +import { ResultFormatter, ResultFormatterOptions } from '../resultFormatter.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'deploy'); export interface DeployCommandAsyncResult extends DeployAsyncStatus { diff --git a/src/formatters/source/pullFormatter.ts b/src/formatters/source/pullFormatter.ts index 2392f9a6a..8cf807363 100644 --- a/src/formatters/source/pullFormatter.ts +++ b/src/formatters/source/pullFormatter.ts @@ -5,7 +5,9 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import { blue, yellow } from 'chalk'; +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; +import chalk from 'chalk'; import { Messages, SfError } from '@salesforce/core'; import { ensureArray } from '@salesforce/kit'; @@ -18,9 +20,9 @@ import { RetrieveResult, } from '@salesforce/source-deploy-retrieve'; import { Ux } from '@salesforce/sf-plugins-core'; -import { ResultFormatter, ResultFormatterOptions } from '../resultFormatter'; +import { ResultFormatter, ResultFormatterOptions } from '../resultFormatter.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'pull'); export type PullResponse = { pulledSource: Array> }; @@ -45,6 +47,9 @@ export class PullResultFormatter extends ResultFormatter { this.warnings = ensureArray(warnMessages); if (this.result?.response?.zipFile) { // zipFile can become massive and unwieldy with JSON parsing/terminal output and, isn't useful + // ts-ignore required because we're deleting a required property + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore delete this.result.response.zipFile; } } @@ -83,7 +88,7 @@ export class PullResultFormatter extends ResultFormatter { } if (this.isSuccess()) { - this.ux.styledHeader(blue(messages.getMessage('retrievedSourceHeader'))); + this.ux.styledHeader(chalk.blue(messages.getMessage('retrievedSourceHeader'))); const retrievedFiles = this.fileResponses.filter((fr) => fr.state !== ComponentStatus.Failed); if (retrievedFiles?.length) { this.displaySuccesses(retrievedFiles); @@ -107,7 +112,7 @@ export class PullResultFormatter extends ResultFormatter { } private displayWarnings(): void { - this.ux.styledHeader(yellow(messages.getMessage('retrievedSourceWarningsHeader'))); + this.ux.styledHeader(chalk.yellow(messages.getMessage('retrievedSourceWarningsHeader'))); this.ux.table(this.warnings, { fileName: { header: 'FILE NAME' }, problem: { header: 'PROBLEM' } }); this.ux.log(); } diff --git a/src/formatters/source/pushResultFormatter.ts b/src/formatters/source/pushResultFormatter.ts index b7ddaf229..5f8d688b0 100644 --- a/src/formatters/source/pushResultFormatter.ts +++ b/src/formatters/source/pushResultFormatter.ts @@ -4,14 +4,16 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import { relative, resolve as pathResolve } from 'node:path'; -import * as chalk from 'chalk'; +import { dirname, relative, resolve as pathResolve } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import chalk from 'chalk'; import { Messages, SfError } from '@salesforce/core'; import { ComponentStatus, DeployResult, FileResponse, + FileResponseFailure, MetadataResolver, SourceComponent, VirtualTreeContainer, @@ -19,9 +21,9 @@ import { import { isString } from '@salesforce/ts-types'; import { ensureArray } from '@salesforce/kit'; import { Ux } from '@salesforce/sf-plugins-core'; -import { ResultFormatter, ResultFormatterOptions } from '../resultFormatter'; +import { ResultFormatter, ResultFormatterOptions } from '../resultFormatter.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'push'); export type PushResponse = { @@ -52,7 +54,14 @@ export class PushResultFormatter extends ResultFormatter { public getJson(): PushResponse { // throws a particular json structure. if (process.exitCode !== 0) { - const error = new SfError(messages.getMessage('sourcepushFailed', ['']), 'DeployFailed', [], process.exitCode); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore + const error: SfError & { + result: FileResponse[]; + commandName: string; + context: string; + partialSuccess: FileResponse[]; + } = new SfError(messages.getMessage('sourcepushFailed', ['']), 'DeployFailed', [], process.exitCode); const errorData = this.fileResponses.filter((fileResponse) => fileResponse.state === ComponentStatus.Failed); error.setData(errorData); error['result'] = errorData; @@ -123,31 +132,34 @@ export class PushResultFormatter extends ResultFormatter { } // "content" property of the bundles as a string const contentFilePathFromDeployedBundles = this.componentsFromFilenames( - bundlesDeployed.map((fileResponse) => fileResponse.filePath) + // the .filter(isString) should ensure only strings are present, but TS isn't finding that + bundlesDeployed.map((fileResponse) => fileResponse.filePath as string) ) .map((c) => c.content) .filter(isString); // there may be deletes not represented in the file responses (if bundle type) const resolver = new MetadataResolver(undefined, VirtualTreeContainer.fromFilePaths(this.deletes)); - return this.deletes - .map((filePath) => { - const cmp = this.resolveComponentsOrWarn(filePath, resolver)[0]; - if ( - cmp instanceof SourceComponent && - cmp.type.strategies?.adapter === 'bundle' && - contentFilePathFromDeployedBundles.includes(pathResolve(cmp.content)) - ) { - return { - state: ComponentStatus.Deleted, - fullName: cmp.fullName, - type: cmp.type.name, - filePath, - } as FileResponse; - } - }) - .filter((fileResponse) => fileResponse) - .concat(withoutUnchanged); + return ( + this.deletes + .map((filePath) => { + const cmp = this.resolveComponentsOrWarn(filePath, resolver)[0]; + if ( + cmp.type.strategies?.adapter === 'bundle' && + contentFilePathFromDeployedBundles.includes(pathResolve(cmp.content ?? '')) + ) { + return { + state: ComponentStatus.Deleted, + fullName: cmp.fullName, + type: cmp.type.name, + filePath, + } as FileResponse; + } + }) + .filter((fileResponse) => fileResponse) + // we can be sure there's no undefined responses because of the filter above + .concat(withoutUnchanged) as FileResponse[] + ); } protected displaySuccesses(): void { @@ -199,16 +211,17 @@ export class PushResultFormatter extends ResultFormatter { } protected displayFailures(): void { - const failures = []; + const failures: FileResponseFailure[] = []; const fileResponseFailures: Map = new Map(); if (this.fileResponses?.length) { - const fileResponses: FileResponse[] = []; + const fileResponses: FileResponseFailure[] = []; this.fileResponses .filter((f) => f.state === ComponentStatus.Failed) - .map((f: FileResponse & { error: string }) => { - fileResponses.push(f); - fileResponseFailures.set(`${f.type}#${f.fullName}`, f.error); + .map((f) => { + // we've filtered all of the file responses to failed errors with the state filter above + fileResponses.push(f as FileResponseFailure); + fileResponseFailures.set(`${f.type}#${f.fullName}`, (f as FileResponseFailure).error); }); this.sortFileResponses(fileResponses); this.asRelativePaths(fileResponses); @@ -221,7 +234,9 @@ export class PushResultFormatter extends ResultFormatter { deployMessages.map((deployMessage) => { if (!fileResponseFailures.has(`${deployMessage.componentType}#${deployMessage.fullName}`)) { // duplicate the problem message to the error property for displaying in the table - failures.push(Object.assign(deployMessage, { error: deployMessage.problem })); + failures.push( + Object.assign(deployMessage, { error: deployMessage.problem }) as unknown as FileResponseFailure + ); } }); } @@ -230,6 +245,8 @@ export class PushResultFormatter extends ResultFormatter { } this.ux.log(''); this.ux.styledHeader(chalk.red(`Component Failures [${failures.length}]`)); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore this.ux.table(failures, { problemType: { header: 'Type' }, fullName: { header: 'Name' }, @@ -240,9 +257,7 @@ export class PushResultFormatter extends ResultFormatter { private componentsFromFilenames(filenames: string[]): SourceComponent[] { const resolver = new MetadataResolver(undefined, VirtualTreeContainer.fromFilePaths(filenames)); - return filenames - .flatMap((filename) => this.resolveComponentsOrWarn(filename, resolver)) - .filter((cmp) => cmp instanceof SourceComponent); + return filenames.flatMap((filename) => this.resolveComponentsOrWarn(filename, resolver)); } private resolveComponentsOrWarn(filename: string, resolver: MetadataResolver): SourceComponent[] { @@ -263,7 +278,7 @@ export const mergeReplacements = (results: DeployResult[]): DeployResult['replac if (!merged.has(key)) { merged.set(key, value); } else { - merged.set(key, Array.from(new Set([...merged.get(key), ...value]))); + merged.set(key, Array.from(new Set([...(merged.get(key) ?? []), ...value]))); } }); }); diff --git a/src/formatters/source/statusFormatter.ts b/src/formatters/source/statusFormatter.ts index 4497e93e0..b59af85f1 100644 --- a/src/formatters/source/statusFormatter.ts +++ b/src/formatters/source/statusFormatter.ts @@ -5,16 +5,20 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; import { Messages } from '@salesforce/core'; import { Ux } from '@salesforce/sf-plugins-core'; -import { ResultFormatter, ResultFormatterOptions } from '../resultFormatter'; +import { ResultFormatter, ResultFormatterOptions } from '../resultFormatter.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'status'); type StatusActualState = 'Deleted' | 'Add' | 'Changed' | 'Unchanged'; -type StatusOrigin = 'Local' | 'Remote'; -type StatusStateString = `${StatusOrigin} ${StatusActualState}` | `${StatusOrigin} ${StatusActualState} (Conflict)`; +export type StatusOrigin = 'Local' | 'Remote'; +export type StatusStateString = + | `${StatusOrigin} ${StatusActualState}` + | `${StatusOrigin} ${StatusActualState} (Conflict)`; export type StatusResult = { state: StatusStateString; fullName: string; diff --git a/src/hooks/diagnostics.ts b/src/hooks/diagnostics.ts index f853644e2..92d3d7ef6 100644 --- a/src/hooks/diagnostics.ts +++ b/src/hooks/diagnostics.ts @@ -4,9 +4,10 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; import { ConfigAggregator, Lifecycle, Logger, Messages, SfProject, OrgConfigProperties, Org } from '@salesforce/core'; -import { SfDoctor } from '@salesforce/plugin-info'; - +import type { SfDoctor } from '@salesforce/plugin-info'; type HookFunction = (options: { doctor: SfDoctor }) => Promise<[void]>; let logger: Logger; @@ -18,7 +19,7 @@ const getLogger = (): Logger => { }; const pluginName = '@salesforce/plugin-source'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages(pluginName, 'diagnostics'); export const hook: HookFunction = async (options) => { @@ -47,7 +48,7 @@ const apiVersionTest = async (doctor: SfDoctor): Promise => { // check org-api-version from ConfigAggregator const aggregator = await ConfigAggregator.create(); - const apiVersion = aggregator.getPropertyValue(OrgConfigProperties.ORG_API_VERSION); + const apiVersion = aggregator.getPropertyValue(OrgConfigProperties.ORG_API_VERSION) as string; const sourceApiVersion = await getSourceApiVersion(); @@ -109,11 +110,11 @@ const apiVersionTest = async (doctor: SfDoctor): Promise => { }; // check sfdx-project.json for sourceApiVersion -const getSourceApiVersion = async (): Promise => { +const getSourceApiVersion = async (): Promise => { try { const project = SfProject.getInstance(); const projectJson = await project.resolveProjectConfig(); - return projectJson.sourceApiVersion as string; + return projectJson.sourceApiVersion as string | undefined; } catch (error) { const errMsg = (error as Error).message; getLogger().debug(`Cannot determine sourceApiVersion due to: ${errMsg}`); @@ -121,7 +122,7 @@ const getSourceApiVersion = async (): Promise => { }; // check max API version for default orgs -const getMaxApiVersion = async (aggregator: ConfigAggregator, aliasOrUsername: string): Promise => { +const getMaxApiVersion = async (aggregator: ConfigAggregator, aliasOrUsername: string): Promise => { try { const org = await Org.create({ aliasOrUsername, aggregator }); return await org.retrieveMaxApiVersion(); @@ -137,7 +138,7 @@ const getMaxApiVersion = async (aggregator: ConfigAggregator, aliasOrUsername: s // Comparing undefined with undefined would return false. // Comparing 55.0 with 55.0 would return false. // Comparing 55.0 with 56.0 would return true. -const diff = (version1: string, version2: string): boolean => { +const diff = (version1: string | undefined, version2: string | undefined): boolean => { getLogger().debug(`Comparing API versions: [${version1},${version2}]`); - return version1?.length && version2?.length && version1 !== version2; + return (version1?.length && version2?.length && version1 !== version2) as boolean; }; diff --git a/src/index.ts b/src/index.ts index c58111070..af79a8cd4 100644 --- a/src/index.ts +++ b/src/index.ts @@ -5,4 +5,4 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -export = {}; +export default {}; diff --git a/src/promiseQueue.ts b/src/promiseQueue.ts index b03888025..a1c5b659d 100644 --- a/src/promiseQueue.ts +++ b/src/promiseQueue.ts @@ -16,7 +16,7 @@ import { ensureArray } from '@salesforce/kit'; */ export async function promisesQueue( sourceQueue: T[], - producer: (T) => Promise, + producer: (arg0: T) => Promise, concurrency: number, queueResults = false ): Promise { diff --git a/src/sourceCommand.ts b/src/sourceCommand.ts index 5d09238e5..6c36862cf 100644 --- a/src/sourceCommand.ts +++ b/src/sourceCommand.ts @@ -6,15 +6,16 @@ */ import { dirname, resolve, extname } from 'node:path'; -import * as fs from 'node:fs'; +import fs from 'node:fs'; +import { fileURLToPath } from 'node:url'; import { Messages, SfError } from '@salesforce/core'; import { ComponentSet } from '@salesforce/source-deploy-retrieve'; import { getString, Optional } from '@salesforce/ts-types'; import { ux } from '@oclif/core'; import { SfCommand } from '@salesforce/sf-plugins-core'; -import { EnsureFsFlagOptions, FsError, ProgressBar } from './types'; +import { EnsureFsFlagOptions, FsError, ProgressBar } from './types.js'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'flags.validation'); export abstract class SourceCommand extends SfCommand { @@ -50,7 +51,7 @@ export abstract class SourceCommand extends SfCommand { protected async getSourceApiVersion(): Promise> { const projectConfig = await this.project.resolveProjectConfig(); - return getString(projectConfig, 'sourceApiVersion'); + return getString(projectConfig, 'sourceApiVersion') as string; } /** @@ -66,7 +67,7 @@ export abstract class SourceCommand extends SfCommand { const { flagName, path, type, throwOnENOENT } = options; const trimmedPath = path?.trim(); - let resolvedPath: string; + let resolvedPath = ''; if (trimmedPath?.length) { resolvedPath = resolve(trimmedPath); } @@ -123,5 +124,5 @@ export const resolveZipFileName = (zipFileName?: string): string => { if (zipFileName && !extname(zipFileName)) { zipFileName += '.zip'; } - return zipFileName || 'unpackaged.zip'; + return zipFileName ?? 'unpackaged.zip'; }; diff --git a/src/stash.ts b/src/stash.ts index 6109152d8..53291e4ef 100644 --- a/src/stash.ts +++ b/src/stash.ts @@ -4,11 +4,13 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as fs from 'node:fs'; +import fs from 'node:fs'; +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; import { ConfigFile, Logger, Messages, SfError } from '@salesforce/core'; import { JsonMap, Optional } from '@salesforce/ts-types'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); interface StashFile { isGlobal: boolean; @@ -85,7 +87,7 @@ export class Stash { * @returns the `StashKey` to use for `Stash.get()` and `Stash.set()` */ public static getKey(commandId: string): StashKey { - const key = Stash.keyMap[commandId] as StashKey; + const key = Stash.keyMap[commandId as keyof typeof Stash.keyMap] as StashKey; if (!key) { const messages = Messages.loadMessages('@salesforce/plugin-source', 'stash'); throw new SfError(messages.getMessage('InvalidStashKey', [commandId]), 'InvalidStashKey'); diff --git a/src/trackingFunctions.ts b/src/trackingFunctions.ts index d8f7a4e41..b103a97d4 100644 --- a/src/trackingFunctions.ts +++ b/src/trackingFunctions.ts @@ -4,8 +4,10 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; +import path from 'node:path'; +import { dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; import { ChangeResult, SourceTracking, SourceTrackingOptions } from '@salesforce/source-tracking'; import { Messages, SfError } from '@salesforce/core'; import { @@ -16,7 +18,7 @@ import { RetrieveResult, } from '@salesforce/source-deploy-retrieve'; import { Ux } from '@salesforce/sf-plugins-core'; -Messages.importMessagesDirectory(__dirname); +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'tracking'); interface TrackingSetupRequest extends SourceTrackingOptions { @@ -55,7 +57,7 @@ export const filterConflictsByComponentSet = async ({ ux: Ux; }): Promise => { const filteredConflicts = (await tracking.getConflicts()).filter((cr) => - components.has({ fullName: cr.name, type: cr.type }) + components.has({ fullName: cr.name as string, type: cr.type as string }) ); processConflicts(filteredConflicts, ux, messages.getMessage('conflictMsg')); return filteredConflicts; @@ -100,10 +102,10 @@ export const updateTracking = async ({ tracking, result, ux, fileResponses }: Tr tracking.updateLocalTracking({ files: successes .filter((fileResponse) => fileResponse.state !== ComponentStatus.Deleted) - .map((fileResponse) => fileResponse.filePath), + .map((fileResponse) => fileResponse.filePath as string), deletedFiles: successes .filter((fileResponse) => fileResponse.state === ComponentStatus.Deleted) - .map((fileResponse) => fileResponse.filePath), + .map((fileResponse) => fileResponse.filePath as string), }), tracking.updateRemoteTracking( successes.map(({ state, fullName, type, filePath }) => ({ state, fullName, type, filePath })), @@ -140,8 +142,8 @@ const processConflicts = (conflicts: ChangeResult[], ux: Ux, message: string): v c.filenames?.forEach((f) => { conflictMap.set(`${c.name}#${c.type}#${f}`, { state: 'Conflict', - fullName: c.name, - type: c.type, + fullName: c.name as string, + type: c.type as string, filePath: path.resolve(f), }); }); diff --git a/src/types.ts b/src/types.ts index a852fac4e..5909967f0 100644 --- a/src/types.ts +++ b/src/types.ts @@ -11,7 +11,7 @@ export interface FsError extends Error { export interface EnsureFsFlagOptions { flagName: string; - path: string; + path?: string; type: 'dir' | 'file' | 'any'; throwOnENOENT?: boolean; } diff --git a/test/commands/mdapi/cancel.test.ts b/test/commands/mdapi/cancel.test.ts index 82bd8845a..84b4797d7 100644 --- a/test/commands/mdapi/cancel.test.ts +++ b/test/commands/mdapi/cancel.test.ts @@ -6,19 +6,18 @@ */ import { join } from 'node:path'; -import * as sinon from 'sinon'; +import sinon from 'sinon'; import { expect } from 'chai'; import { spyMethod, stubMethod } from '@salesforce/ts-sinon'; import { ConfigFile } from '@salesforce/core'; - import { MetadataApiDeploy } from '@salesforce/source-deploy-retrieve'; -import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup'; +import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup.js'; import { stubSfCommandUx, stubUx } from '@salesforce/sf-plugins-core'; -import { Cancel } from '../../../src/commands/force/mdapi/deploy/cancel'; -import { DeployCancelResultFormatter } from '../../../src/formatters/deployCancelResultFormatter'; -import { DeployCommandResult } from '../../../src/formatters/deployResultFormatter'; -import { getDeployResult } from '../source/deployResponses'; -import { Stash } from '../../../src/stash'; +import { Cancel } from '../../../src/commands/force/mdapi/deploy/cancel.js'; +import { DeployCancelResultFormatter } from '../../../src/formatters/deployCancelResultFormatter.js'; +import { DeployCommandResult } from '../../../src/formatters/deployResultFormatter.js'; +import { getDeployResult } from '../source/deployResponses.js'; +import { Stash } from '../../../src/stash.js'; describe('force:mdapi:deploy:cancel', () => { Cancel.id = 'force:mdapi:deploy:cancel'; diff --git a/test/commands/mdapi/retrieve.test.ts b/test/commands/mdapi/retrieve.test.ts index 1a22ef1c0..e43437a99 100644 --- a/test/commands/mdapi/retrieve.test.ts +++ b/test/commands/mdapi/retrieve.test.ts @@ -5,21 +5,20 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as fs from 'node:fs'; -import * as path from 'node:path'; -import * as sinon from 'sinon'; +import fs from 'node:fs'; +import path from 'node:path'; +import sinon from 'sinon'; import { expect } from 'chai'; import { Lifecycle, SfProject } from '@salesforce/core'; import { fromStub, stubInterface, stubMethod } from '@salesforce/ts-sinon'; import { Config } from '@oclif/core'; - import { ComponentSetBuilder, ComponentSetOptions, RetrieveOptions } from '@salesforce/source-deploy-retrieve'; import { Duration } from '@salesforce/kit'; import { SfCommand, Ux } from '@salesforce/sf-plugins-core'; -import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup'; -import { Retrieve } from '../../../src/commands/force/mdapi/retrieve'; -import { Stash, StashData } from '../../../src/stash'; -import { getRetrieveResult } from '../source/retrieveResponses'; +import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup.js'; +import { Retrieve } from '../../../src/commands/force/mdapi/retrieve.js'; +import { Stash, StashData } from '../../../src/stash.js'; +import { getRetrieveResult } from '../source/retrieveResponses.js'; describe('force:mdapi:retrieve', () => { const $$ = new TestContext(); diff --git a/test/commands/mdapi/retrieveReport.test.ts b/test/commands/mdapi/retrieveReport.test.ts index 6b015ddee..140c5c812 100644 --- a/test/commands/mdapi/retrieveReport.test.ts +++ b/test/commands/mdapi/retrieveReport.test.ts @@ -5,19 +5,21 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as fs from 'node:fs'; -import * as path from 'node:path'; -import * as sinon from 'sinon'; +import fs from 'node:fs'; +import path from 'node:path'; +import sinon from 'sinon'; import { expect } from 'chai'; import { fromStub, stubInterface, stubMethod } from '@salesforce/ts-sinon'; import { Config } from '@oclif/core'; import { MetadataApiRetrieve } from '@salesforce/source-deploy-retrieve'; import { SfCommand, Ux } from '@salesforce/sf-plugins-core'; -import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup'; -import { Report } from '../../../src/commands/force/mdapi/retrieve/report'; -import { Stash } from '../../../src/stash'; -import { getRetrieveResult, getRetrieveResponse } from '../source/retrieveResponses'; +import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup.js'; + +import { Report } from '../../../src/commands/force/mdapi/retrieve/report.js'; +import { Stash } from '../../../src/stash.js'; + +import { getRetrieveResult, getRetrieveResponse } from '../source/retrieveResponses.js'; describe('force:mdapi:retrieve:report', () => { const $$ = new TestContext(); diff --git a/test/commands/source/cancel.test.ts b/test/commands/source/cancel.test.ts index 46c787167..4ea387d46 100644 --- a/test/commands/source/cancel.test.ts +++ b/test/commands/source/cancel.test.ts @@ -6,19 +6,22 @@ */ import { join } from 'node:path'; -import * as sinon from 'sinon'; +import sinon from 'sinon'; import { expect } from 'chai'; import { fromStub, spyMethod, stubInterface, stubMethod } from '@salesforce/ts-sinon'; import { ConfigFile, SfProject } from '@salesforce/core'; import { Config } from '@oclif/core'; import { MetadataApiDeploy } from '@salesforce/source-deploy-retrieve'; -import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup'; +import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup.js'; + import { Ux } from '@salesforce/sf-plugins-core'; -import { Cancel } from '../../../src/commands/force/source/deploy/cancel'; -import { DeployCancelResultFormatter } from '../../../src/formatters/deployCancelResultFormatter'; -import { DeployCommandResult } from '../../../src/formatters/deployResultFormatter'; -import { Stash } from '../../../src/stash'; -import { getDeployResult } from './deployResponses'; +import { Cancel } from '../../../src/commands/force/source/deploy/cancel.js'; + +import { DeployCancelResultFormatter } from '../../../src/formatters/deployCancelResultFormatter.js'; +import { DeployCommandResult } from '../../../src/formatters/deployResultFormatter.js'; +import { Stash } from '../../../src/stash.js'; + +import { getDeployResult } from './deployResponses.js'; describe('force:source:deploy:cancel', () => { const $$ = new TestContext(); diff --git a/test/commands/source/deploy.test.ts b/test/commands/source/deploy.test.ts index fae4bc2c3..490da2636 100644 --- a/test/commands/source/deploy.test.ts +++ b/test/commands/source/deploy.test.ts @@ -6,27 +6,29 @@ */ import { join } from 'node:path'; -import * as sinon from 'sinon'; +import { dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import sinon from 'sinon'; import { expect } from 'chai'; import { ComponentSetBuilder, ComponentSetOptions, MetadataApiDeployOptions } from '@salesforce/source-deploy-retrieve'; import { fromStub, stubInterface, stubMethod } from '@salesforce/ts-sinon'; +import { AnyJson } from '@salesforce/ts-types'; import { ConfigAggregator, Lifecycle, Messages, SfProject } from '@salesforce/core'; import { Config } from '@oclif/core'; import { SfCommand } from '@salesforce/sf-plugins-core'; -import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup'; -import { Deploy } from '../../../src/commands/force/source/deploy'; -import { DeployCommandResult, DeployResultFormatter } from '../../../src/formatters/deployResultFormatter'; +import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup.js'; +import { Deploy } from '../../../src/commands/force/source/deploy.js'; +import { DeployCommandResult, DeployResultFormatter } from '../../../src/formatters/deployResultFormatter.js'; import { DeployAsyncResultFormatter, DeployCommandAsyncResult, -} from '../../../src/formatters/source/deployAsyncResultFormatter'; -import { DeployProgressBarFormatter } from '../../../src/formatters/deployProgressBarFormatter'; -import { DeployProgressStatusFormatter } from '../../../src/formatters/deployProgressStatusFormatter'; -import { getDeployResult } from './deployResponses'; -import { exampleSourceComponent } from './testConsts'; - -Messages.importMessagesDirectory(__dirname); +} from '../../../src/formatters/source/deployAsyncResultFormatter.js'; +import { DeployProgressBarFormatter } from '../../../src/formatters/deployProgressBarFormatter.js'; +import { DeployProgressStatusFormatter } from '../../../src/formatters/deployProgressStatusFormatter.js'; +import { getDeployResult } from './deployResponses.js'; +import { exampleSourceComponent } from './testConsts.js'; +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); describe('force:source:deploy', () => { const $$ = new TestContext(); const testOrg = new MockTestOrgData(); @@ -98,7 +100,7 @@ describe('force:source:deploy', () => { description: 'foo', hidden: true, input: { - validator: (value: string): boolean => typeof value === 'string' && ['true', 'false'].includes(value), + validator: (value: AnyJson): boolean => typeof value === 'string' && ['true', 'false'].includes(value), failedMessage: 'boo!', }, }, @@ -187,8 +189,8 @@ describe('force:source:deploy', () => { const predeploy = lifecycleEmitStub.getCalls().find((call) => call.args[0] === 'predeploy'); const postdeploy = lifecycleEmitStub.getCalls().find((call) => call.args[0] === 'postdeploy'); - expect(predeploy.args[1]).to.deep.equal([exampleSourceComponent]); - expect(postdeploy.args[1]).to.deep.equal(deployResult); + expect(predeploy?.args[1]).to.deep.equal([exampleSourceComponent]); + expect(postdeploy?.args[1]).to.deep.equal(deployResult); }; const ensureProgressBar = (callCount: number) => { diff --git a/test/commands/source/deployCommand.test.ts b/test/commands/source/deployCommand.test.ts index 2f081c30b..2954793e0 100644 --- a/test/commands/source/deployCommand.test.ts +++ b/test/commands/source/deployCommand.test.ts @@ -4,9 +4,9 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; +import path from 'node:path'; import { expect } from 'chai'; -import { getCoverageFormattersOptions } from '../../../src/deployCommand'; +import { getCoverageFormattersOptions } from '../../../src/deployCommand.js'; describe('coverage functions', () => { describe('getCoverageFormattersOptions', () => { diff --git a/test/commands/source/deployResponses.ts b/test/commands/source/deployResponses.ts index 95aa381bb..e35b7b52c 100644 --- a/test/commands/source/deployResponses.ts +++ b/test/commands/source/deployResponses.ts @@ -10,6 +10,7 @@ import { DeployMessage, MetadataApiDeployStatus, RequestStatus, + RunTestResult, } from '@salesforce/source-deploy-retrieve'; import { cloneJson, ensureArray } from '@salesforce/kit'; @@ -122,9 +123,10 @@ export const getDeployResponse = ( delete response.details.componentFailures.id; response.details.componentFailures.problemType = 'Error'; response.details.componentFailures.problem = 'This component has some problems'; - response.details.runTestResult.numFailures = '1'; response.runTestsEnabled = true; response.numberTestErrors = 1; + response.details.runTestResult = {} as RunTestResult; + response.details.runTestResult.numFailures = '1'; response.details.runTestResult.successes = []; response.details.runTestResult.failures = [ { @@ -164,6 +166,7 @@ export const getDeployResponse = ( delete response.details.componentFailures.id; response.details.componentFailures.problemType = 'Error'; response.details.componentFailures.problem = 'This component has some problems'; + response.details.runTestResult = {} as RunTestResult; response.details.runTestResult.numFailures = '0'; response.runTestsEnabled = true; response.numberTestErrors = 0; @@ -201,6 +204,7 @@ export const getDeployResponse = ( delete response.details.componentFailures.id; response.details.componentFailures.problemType = 'Error'; response.details.componentFailures.problem = 'This component has some problems'; + response.details.runTestResult = {} as RunTestResult; response.details.runTestResult.numFailures = '2'; response.runTestsEnabled = true; response.numberTestErrors = 2; @@ -299,7 +303,7 @@ export const getDeployResult = ( getFileResponses() { let fileProps: DeployMessage[] = []; if (type === 'failed') { - const failures = response.details.componentFailures || []; + const failures = response.details.componentFailures ?? []; fileProps = ensureArray(failures); return fileProps.map((comp) => ({ fullName: comp.fullName, diff --git a/test/commands/source/progressBarFormatter.test.ts b/test/commands/source/progressBarFormatter.test.ts index 2f6477db0..341e4f78b 100644 --- a/test/commands/source/progressBarFormatter.test.ts +++ b/test/commands/source/progressBarFormatter.test.ts @@ -9,16 +9,15 @@ import { MetadataApiDeploy } from '@salesforce/source-deploy-retrieve'; import { spyMethod } from '@salesforce/ts-sinon'; import { assert, expect } from 'chai'; import { Ux } from '@salesforce/sf-plugins-core'; -import { TestContext } from '@salesforce/core/lib/testSetup'; -import { DeployProgressBarFormatter } from '../../../src/formatters/deployProgressBarFormatter'; -import { ProgressBar } from '../../../src/types'; +import { TestContext } from '@salesforce/core/lib/testSetup.js'; +import { DeployProgressBarFormatter } from '../../../src/formatters/deployProgressBarFormatter.js'; +import { ProgressBar } from '../../../src/types.js'; describe('Progress Bar Events', () => { const sandbox = new TestContext().SANDBOX; const username = 'me@my.org'; const deploy = new MetadataApiDeploy({ usernameOrConnection: username, id: '123' }); const progressBarFormatter = new DeployProgressBarFormatter(Ux.prototype); - const initSpy = spyMethod(sandbox, progressBarFormatter, 'initProgressBar'); let bar: ProgressBar; let events: EventEmitter; @@ -50,7 +49,6 @@ describe('Progress Bar Events', () => { numberTestsCompleted: 0, numberTestsTotal: 0, }); - expect(initSpy.calledOnce).to.be.true; expect(bar.value).to.equal(3); expect(bar.total).to.equal(5); events.emit('finish', { @@ -91,7 +89,6 @@ describe('Progress Bar Events', () => { }, }); expect(bar.value).to.equal(20); - expect(initSpy.calledOnce).to.be.true; }); it('should update progress bar when server returns different calculated value', () => { @@ -123,7 +120,6 @@ describe('Progress Bar Events', () => { }); expect(bar.value).to.equal(29); expect(bar.total).to.equal(29); - expect(initSpy.calledOnce).to.be.true; }); it('should stop progress bar onCancel', () => { diff --git a/test/commands/source/report.test.ts b/test/commands/source/report.test.ts index 154b4d800..61d547457 100644 --- a/test/commands/source/report.test.ts +++ b/test/commands/source/report.test.ts @@ -6,7 +6,7 @@ */ import { join } from 'node:path'; -import * as sinon from 'sinon'; +import sinon from 'sinon'; import { expect } from 'chai'; import { fromStub, spyMethod, stubInterface, stubMethod } from '@salesforce/ts-sinon'; import { ConfigFile, SfProject } from '@salesforce/core'; @@ -14,14 +14,14 @@ import { Config } from '@oclif/core'; import { MetadataApiDeploy, MetadataApiDeployStatus } from '@salesforce/source-deploy-retrieve'; import { Ux } from '@salesforce/sf-plugins-core'; -import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup'; -import { Report } from '../../../src/commands/force/source/deploy/report'; -import { DeployReportResultFormatter } from '../../../src/formatters/deployReportResultFormatter'; -import { DeployCommandResult } from '../../../src/formatters/deployResultFormatter'; -import { DeployProgressBarFormatter } from '../../../src/formatters/deployProgressBarFormatter'; -import { DeployProgressStatusFormatter } from '../../../src/formatters/deployProgressStatusFormatter'; -import { Stash } from '../../../src/stash'; -import { getDeployResult, getDeployResponse } from './deployResponses'; +import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup.js'; +import { Report } from '../../../src/commands/force/source/deploy/report.js'; +import { DeployReportResultFormatter } from '../../../src/formatters/deployReportResultFormatter.js'; +import { DeployCommandResult } from '../../../src/formatters/deployResultFormatter.js'; +import { DeployProgressBarFormatter } from '../../../src/formatters/deployProgressBarFormatter.js'; +import { DeployProgressStatusFormatter } from '../../../src/formatters/deployProgressStatusFormatter.js'; +import { Stash } from '../../../src/stash.js'; +import { getDeployResult, getDeployResponse } from './deployResponses.js'; describe('force:source:report', () => { const $$ = new TestContext(); diff --git a/test/commands/source/retrieve.test.ts b/test/commands/source/retrieve.test.ts index 5b2d0ab25..2032bc2cf 100644 --- a/test/commands/source/retrieve.test.ts +++ b/test/commands/source/retrieve.test.ts @@ -6,8 +6,10 @@ */ import { join } from 'node:path'; -import * as path from 'node:path'; -import * as sinon from 'sinon'; +import path from 'node:path'; +import { dirname } from 'node:path'; +import { fileURLToPath } from 'node:url'; +import sinon from 'sinon'; import { expect } from 'chai'; import { ComponentLike, @@ -20,13 +22,16 @@ import { import { Lifecycle, Messages, SfProject } from '@salesforce/core'; import { stubMethod } from '@salesforce/ts-sinon'; import { stubSfCommandUx, stubSpinner, stubUx } from '@salesforce/sf-plugins-core'; -import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup'; -import { Retrieve } from '../../../src/commands/force/source/retrieve'; -import { RetrieveCommandResult, RetrieveResultFormatter } from '../../../src/formatters/retrieveResultFormatter'; -import { getRetrieveResult } from './retrieveResponses'; -import { exampleSourceComponent } from './testConsts'; +import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup.js'; -Messages.importMessagesDirectory(__dirname); +import { Retrieve } from '../../../src/commands/force/source/retrieve.js'; + +import { RetrieveCommandResult, RetrieveResultFormatter } from '../../../src/formatters/retrieveResultFormatter.js'; +import { getRetrieveResult } from './retrieveResponses.js'; + +import { exampleSourceComponent } from './testConsts.js'; + +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages('@salesforce/plugin-source', 'retrieve'); describe('force:source:retrieve', () => { diff --git a/test/commands/source/testConsts.ts b/test/commands/source/testConsts.ts index 17396a6ab..96745e895 100644 --- a/test/commands/source/testConsts.ts +++ b/test/commands/source/testConsts.ts @@ -5,7 +5,7 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import { ComponentProperties } from '@salesforce/source-deploy-retrieve/lib/src/resolve/sourceComponent'; +import { ComponentProperties } from '@salesforce/source-deploy-retrieve/lib/src/resolve/sourceComponent.js'; export const exampleSourceComponent: ComponentProperties = { name: 'GeocodingService', diff --git a/test/coverageUtils.test.ts b/test/coverageUtils.test.ts index 74690e088..71f7877a7 100644 --- a/test/coverageUtils.test.ts +++ b/test/coverageUtils.test.ts @@ -5,12 +5,15 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ import { expect } from 'chai'; -import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup'; +import { MockTestOrgData, TestContext } from '@salesforce/core/lib/testSetup.js'; import { AuthInfo, Connection } from '@salesforce/core'; -import { createSandbox, SinonSandbox } from 'sinon'; -import * as chalk from 'chalk'; -import { transformCoverageToApexCoverage, prepCoverageForDisplay } from '../src/coverageUtils'; -import { transformDeployTestsResultsToTestResult } from '../src/coverageUtils'; +import sinon from 'sinon'; +import chalk from 'chalk'; +import { + prepCoverageForDisplay, + transformCoverageToApexCoverage, + transformDeployTestsResultsToTestResult, +} from '../src/coverageUtils.js'; // methods are mutating the object instead of returning new ones function getSampleTestResult() { @@ -295,10 +298,10 @@ describe('transform md RunTestResult', () => { const testData = new MockTestOrgData(); let sampleTestResult = getSampleTestResult(); - let sandboxStub: SinonSandbox; + let sandboxStub: sinon.SinonSandbox; beforeEach(async () => { sampleTestResult = getSampleTestResult(); - sandboxStub = createSandbox(); + sandboxStub = sinon.createSandbox(); $$.setConfigStubContents('StateAggregator', { contents: { @@ -375,14 +378,14 @@ describe('transform md RunTestResult', () => { it('lineNotCovered is empty string when there is no data', () => { const codeCoverage = prepCoverageForDisplay(sampleTestResult.codeCoverage); - expect(codeCoverage.find((c) => c.name === 'SampleDataController').lineNotCovered).equal(''); + expect(codeCoverage.find((c) => c.name === 'SampleDataController')?.lineNotCovered).equal(''); }); it('lineNotCovered is single number for one item', () => { const codeCoverage = prepCoverageForDisplay(sampleTestResult.codeCoverage); - expect(codeCoverage.find((c) => c.name === 'PagedResult').lineNotCovered).equal('12'); + expect(codeCoverage.find((c) => c.name === 'PagedResult')?.lineNotCovered).equal('12'); }); it('lineNotCovered is comma separated list for multiple items', () => { const codeCoverage = prepCoverageForDisplay(sampleTestResult.codeCoverage); - expect(codeCoverage.find((c) => c.name === 'PropertyController').lineNotCovered).equal('26,31,78'); + expect(codeCoverage.find((c) => c.name === 'PropertyController')?.lineNotCovered).equal('26,31,78'); }); }); diff --git a/test/formatters/deployProgressStatusFormatter.ts b/test/formatters/deployProgressStatusFormatter.ts index c130e7f8c..7584b4ec2 100644 --- a/test/formatters/deployProgressStatusFormatter.ts +++ b/test/formatters/deployProgressStatusFormatter.ts @@ -5,17 +5,17 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as sinon from 'sinon'; +import sinon from 'sinon'; import { expect } from 'chai'; import { Ux } from '@salesforce/sf-plugins-core'; import { MetadataApiDeploy } from '@salesforce/source-deploy-retrieve'; -import { getDeployResult } from '../commands/source/deployResponses'; -import { DeployProgressStatusFormatter } from '../../src/formatters/deployProgressStatusFormatter'; +import { getDeployResult } from '../commands/source/deployResponses.js'; +import { DeployProgressStatusFormatter } from '../../src/formatters/deployProgressStatusFormatter.js'; describe('DeployProgressStatusFormatter', () => { const sandbox = sinon.createSandbox(); const deployResultInProgress = getDeployResult('inProgress'); - let ux; + let ux: Ux; let printStub: sinon.SinonStub; let mdApiDeploy: MetadataApiDeploy; @@ -38,7 +38,7 @@ describe('DeployProgressStatusFormatter', () => { }; it('should output with every update when verbose', () => { - const formatter = new DeployProgressStatusFormatter(ux as Ux, { verbose: true }); + const formatter = new DeployProgressStatusFormatter(ux, { verbose: true }); formatter.progress(mdApiDeploy); fireUpdateEvent(); @@ -52,7 +52,7 @@ describe('DeployProgressStatusFormatter', () => { }); it('should only output on update when results change without verbose', () => { - const formatter = new DeployProgressStatusFormatter(ux as Ux); + const formatter = new DeployProgressStatusFormatter(ux); formatter.progress(mdApiDeploy); fireUpdateEvent(); diff --git a/test/formatters/deployResultFormatter.test.ts b/test/formatters/deployResultFormatter.test.ts index be73b732d..6e28e8266 100644 --- a/test/formatters/deployResultFormatter.test.ts +++ b/test/formatters/deployResultFormatter.test.ts @@ -5,15 +5,15 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; -import * as sinon from 'sinon'; +import path from 'node:path'; +import sinon from 'sinon'; import { expect } from 'chai'; import { DeployResult, FileResponse } from '@salesforce/source-deploy-retrieve'; import { stubInterface } from '@salesforce/ts-sinon'; import { Ux } from '@salesforce/sf-plugins-core'; -import { TestContext } from '@salesforce/core/lib/testSetup'; -import { getDeployResult } from '../commands/source/deployResponses'; -import { DeployCommandResult, DeployResultFormatter } from '../../src/formatters/deployResultFormatter'; +import { TestContext } from '@salesforce/core/lib/testSetup.js'; +import { getDeployResult } from '../commands/source/deployResponses.js'; +import { DeployCommandResult, DeployResultFormatter } from '../../src/formatters/deployResultFormatter.js'; describe('DeployResultFormatter', () => { const sandbox = new TestContext().SANDBOX; @@ -25,7 +25,7 @@ describe('DeployResultFormatter', () => { const deployResultTestSuccess = getDeployResult('passedTest'); const deployResultTestSuccessAndFailure = getDeployResult('passedAndFailedTest'); - let ux; + let ux: Ux; let logStub: sinon.SinonStub; let styledHeaderStub: sinon.SinonStub; @@ -43,6 +43,9 @@ describe('DeployResultFormatter', () => { logStub = sandbox.stub(); styledHeaderStub = sandbox.stub(); tableStub = sandbox.stub(); + // ux is a stubbed Ux + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore ux = stubInterface(sandbox, { log: logStub, styledHeader: styledHeaderStub, @@ -59,7 +62,7 @@ describe('DeployResultFormatter', () => { it('should return expected json for a success', () => { const deployResponse = JSON.parse(JSON.stringify(deployResultSuccess.response)) as DeployCommandResult; const expectedSuccessResults = deployResultSuccess.response as DeployCommandResult; - const formatter = new DeployResultFormatter(ux as Ux, {}, deployResultSuccess); + const formatter = new DeployResultFormatter(ux, {}, deployResultSuccess); const json = formatter.getJson(); expectedSuccessResults.deployedSource = deployResultSuccess.getFileResponses(); @@ -74,7 +77,7 @@ describe('DeployResultFormatter', () => { expectedFailureResults.deployedSource = deployResultFailure.getFileResponses(); expectedFailureResults.outboundFiles = []; expectedFailureResults.deploys = [deployResponse]; - const formatter = new DeployResultFormatter(ux as Ux, {}, deployResultFailure); + const formatter = new DeployResultFormatter(ux, {}, deployResultFailure); expect(formatter.getJson()).to.deep.equal(expectedFailureResults); }); @@ -84,7 +87,7 @@ describe('DeployResultFormatter', () => { expectedPartialSuccessResponse.deployedSource = deployResultPartialSuccess.getFileResponses(); expectedPartialSuccessResponse.outboundFiles = []; expectedPartialSuccessResponse.deploys = [deployResponse]; - const formatter = new DeployResultFormatter(ux as Ux, {}, deployResultPartialSuccess); + const formatter = new DeployResultFormatter(ux, {}, deployResultPartialSuccess); expect(formatter.getJson()).to.deep.equal(expectedPartialSuccessResponse); }); @@ -94,7 +97,7 @@ describe('DeployResultFormatter', () => { ...(JSON.parse(JSON.stringify(deployResultSuccess)) as DeployResult), replacements: new Map([['MyApexClass.cls', ['foo', 'bar']]]), }; - const formatter = new DeployResultFormatter(ux as Ux, {}, resultWithReplacements as DeployResult); + const formatter = new DeployResultFormatter(ux, {}, resultWithReplacements as DeployResult); const json = formatter.getJson(); expect(json.replacements).to.deep.equal({ 'MyApexClass.cls': ['foo', 'bar'] }); @@ -103,7 +106,7 @@ describe('DeployResultFormatter', () => { const resultWithoutReplacements = { ...(JSON.parse(JSON.stringify(deployResultSuccess)) as DeployResult), }; - const formatter = new DeployResultFormatter(ux as Ux, {}, resultWithoutReplacements as DeployResult); + const formatter = new DeployResultFormatter(ux, {}, resultWithoutReplacements as DeployResult); const json = formatter.getJson(); expect(json.replacements).to.be.undefined; }); @@ -112,7 +115,7 @@ describe('DeployResultFormatter', () => { ...(JSON.parse(JSON.stringify(deployResultSuccess)) as DeployResult), replacements: new Map(), }; - const formatter = new DeployResultFormatter(ux as Ux, {}, resultWithEmptyReplacements as DeployResult); + const formatter = new DeployResultFormatter(ux, {}, resultWithEmptyReplacements as DeployResult); const json = formatter.getJson(); expect(json.replacements).to.be.undefined; }); @@ -121,7 +124,7 @@ describe('DeployResultFormatter', () => { describe('display', () => { it('should output as expected for a success', () => { - const formatter = new DeployResultFormatter(ux as Ux, {}, deployResultSuccess); + const formatter = new DeployResultFormatter(ux, {}, deployResultSuccess); formatter.display(); expect(styledHeaderStub.calledOnce).to.equal(true); expect(logStub.callCount).to.equal(2); @@ -133,7 +136,7 @@ describe('DeployResultFormatter', () => { }); it('should output as expected for a failure and exclude duplicate information', () => { - const formatter = new DeployResultFormatter(ux as Ux, {}, deployResultFailure); + const formatter = new DeployResultFormatter(ux, {}, deployResultFailure); formatter.display(); expect(styledHeaderStub.calledOnce).to.equal(true); expect(logStub.callCount).to.equal(3); @@ -151,7 +154,7 @@ describe('DeployResultFormatter', () => { deployFailure.response.details.componentFailures = []; deployFailure.response.details.componentSuccesses = []; delete deployFailure.response.details.runTestResult; - const formatter = new DeployResultFormatter(ux as Ux, {}, deployFailure); + const formatter = new DeployResultFormatter(ux, {}, deployFailure); sandbox.stub(formatter, 'isSuccess').returns(false); try { @@ -166,7 +169,7 @@ describe('DeployResultFormatter', () => { }); it('should output as expected for a test failure with verbose', () => { - const formatter = new DeployResultFormatter(ux as Ux, { verbose: true }, deployResultTestFailure); + const formatter = new DeployResultFormatter(ux, { verbose: true }, deployResultTestFailure); formatter.display(); expect(styledHeaderStub.calledThrice).to.equal(true); expect(logStub.callCount).to.equal(8); @@ -177,7 +180,7 @@ describe('DeployResultFormatter', () => { }); it('should output as expected for passing tests with verbose', () => { - const formatter = new DeployResultFormatter(ux as Ux, { verbose: true }, deployResultTestSuccess); + const formatter = new DeployResultFormatter(ux, { verbose: true }, deployResultTestSuccess); formatter.display(); expect(styledHeaderStub.calledThrice).to.equal(true); expect(logStub.callCount).to.equal(8); @@ -188,7 +191,7 @@ describe('DeployResultFormatter', () => { }); it('should output as expected for passing and failing tests with verbose', () => { - const formatter = new DeployResultFormatter(ux as Ux, { verbose: true }, deployResultTestSuccessAndFailure); + const formatter = new DeployResultFormatter(ux, { verbose: true }, deployResultTestSuccessAndFailure); formatter.display(); expect(styledHeaderStub.callCount).to.equal(4); expect(logStub.callCount).to.equal(9); @@ -200,7 +203,7 @@ describe('DeployResultFormatter', () => { }); it('shows success AND failures for partialSucceeded', () => { - const formatter = new DeployResultFormatter(ux as Ux, { verbose: true }, deployResultPartialSuccess); + const formatter = new DeployResultFormatter(ux, { verbose: true }, deployResultPartialSuccess); formatter.display(); expect(styledHeaderStub.callCount, 'styledHeaderStub.callCount').to.equal(2); expect(logStub.callCount, 'logStub.callCount').to.equal(4); @@ -215,7 +218,7 @@ describe('DeployResultFormatter', () => { const resultWithoutReplacements = { ...deployResultSuccess, } as DeployResult; - const formatter = new DeployResultFormatter(ux as Ux, { verbose: true }, resultWithoutReplacements); + const formatter = new DeployResultFormatter(ux, { verbose: true }, resultWithoutReplacements); formatter.display(); @@ -230,7 +233,7 @@ describe('DeployResultFormatter', () => { ...deployResultSuccess, replacements: new Map([['MyApexClass.cls', ['foo', 'bar']]]), } as DeployResult; - const formatter = new DeployResultFormatter(ux as Ux, { verbose: true }, resultWithReplacements); + const formatter = new DeployResultFormatter(ux, { verbose: true }, resultWithReplacements); formatter.display(); expect(logStub.callCount, 'logStub.callCount').to.equal(3); @@ -245,7 +248,7 @@ describe('DeployResultFormatter', () => { ...deployResultSuccess, replacements: new Map([['MyApexClass.cls', ['foo', 'bar']]]), } as DeployResult; - const formatter = new DeployResultFormatter(ux as Ux, {}, resultWithReplacements); + const formatter = new DeployResultFormatter(ux, {}, resultWithReplacements); formatter.display(); expect(logStub.callCount, 'logStub.callCount').to.equal(2); diff --git a/test/formatters/mdDeployResultFormatter.test.ts b/test/formatters/mdDeployResultFormatter.test.ts index 3718c8b2e..73791885a 100644 --- a/test/formatters/mdDeployResultFormatter.test.ts +++ b/test/formatters/mdDeployResultFormatter.test.ts @@ -4,13 +4,13 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as sinon from 'sinon'; +import sinon from 'sinon'; import { expect } from 'chai'; import { stubInterface } from '@salesforce/ts-sinon'; import { Ux } from '@salesforce/sf-plugins-core'; -import { TestContext } from '@salesforce/core/lib/testSetup'; -import { getDeployResult } from '../commands/source/deployResponses'; -import { MdDeployResultFormatter } from '../../src/formatters/mdapi/mdDeployResultFormatter'; +import { TestContext } from '@salesforce/core/lib/testSetup.js'; +import { getDeployResult } from '../commands/source/deployResponses.js'; +import { MdDeployResultFormatter } from '../../src/formatters/mdapi/mdDeployResultFormatter.js'; describe('mdDeployResultFormatter', () => { const sandbox = new TestContext().SANDBOX; @@ -22,7 +22,7 @@ describe('mdDeployResultFormatter', () => { const deployResultTestSuccess = getDeployResult('passedTest'); const deployResultTestSuccessAndFailure = getDeployResult('passedAndFailedTest'); - let ux; + let ux: Ux; let logStub: sinon.SinonStub; let styledHeaderStub: sinon.SinonStub; @@ -32,6 +32,9 @@ describe('mdDeployResultFormatter', () => { logStub = sandbox.stub(); styledHeaderStub = sandbox.stub(); tableStub = sandbox.stub(); + // ux is a stubbed Ux + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore ux = stubInterface(sandbox, { log: logStub, styledHeader: styledHeaderStub, @@ -49,7 +52,7 @@ describe('mdDeployResultFormatter', () => { it('should return expected json for a success', () => { process.exitCode = 0; const expectedSuccessResults = deployResultSuccess.response; - const formatter = new MdDeployResultFormatter(ux as Ux, {}, deployResultSuccess); + const formatter = new MdDeployResultFormatter(ux, {}, deployResultSuccess); const json = formatter.getJson(); expect(json).to.deep.equal(expectedSuccessResults); @@ -59,14 +62,14 @@ describe('mdDeployResultFormatter', () => { process.exitCode = 1; const expectedFailureResults = deployResultFailure.response; - const formatter = new MdDeployResultFormatter(ux as Ux, {}, deployResultFailure); + const formatter = new MdDeployResultFormatter(ux, {}, deployResultFailure); expect(formatter.getJson()).to.deep.equal(expectedFailureResults); }); it('should return expected json for a partial success', () => { process.exitCode = 69; const expectedPartialSuccessResponse = deployResultPartialSuccess.response; - const formatter = new MdDeployResultFormatter(ux as Ux, {}, deployResultPartialSuccess); + const formatter = new MdDeployResultFormatter(ux, {}, deployResultPartialSuccess); expect(formatter.getJson()).to.deep.equal(expectedPartialSuccessResponse); }); @@ -74,7 +77,7 @@ describe('mdDeployResultFormatter', () => { process.exitCode = 0; const expectedSuccessResults = deployResultSuccess.response; - const formatter = new MdDeployResultFormatter(ux as Ux, { concise: true }, deployResultSuccess); + const formatter = new MdDeployResultFormatter(ux, { concise: true }, deployResultSuccess); const json = formatter.getJson(); // a few checks that it's the rest of the json @@ -88,7 +91,7 @@ describe('mdDeployResultFormatter', () => { describe('display', () => { it('should output as expected for a success (no table)', () => { process.exitCode = 0; - const formatter = new MdDeployResultFormatter(ux as Ux, {}, deployResultSuccess); + const formatter = new MdDeployResultFormatter(ux, {}, deployResultSuccess); formatter.display(); expect(logStub.callCount).to.equal(0); expect(tableStub.callCount).to.equal(0); @@ -97,7 +100,7 @@ describe('mdDeployResultFormatter', () => { it('should output as expected for a verbose success (has table)', () => { process.exitCode = 0; - const formatter = new MdDeployResultFormatter(ux as Ux, { verbose: true }, deployResultSuccess); + const formatter = new MdDeployResultFormatter(ux, { verbose: true }, deployResultSuccess); formatter.display(); expect(styledHeaderStub.callCount).to.equal(1); expect(logStub.callCount).to.equal(1); @@ -108,7 +111,7 @@ describe('mdDeployResultFormatter', () => { it('should output as expected for a failure and exclude duplicate information', () => { process.exitCode = 1; - const formatter = new MdDeployResultFormatter(ux as Ux, {}, deployResultFailure); + const formatter = new MdDeployResultFormatter(ux, {}, deployResultFailure); try { formatter.display(); @@ -128,7 +131,7 @@ describe('mdDeployResultFormatter', () => { deployFailure.response.details.componentFailures = []; deployFailure.response.details.componentSuccesses = []; delete deployFailure.response.details.runTestResult; - const formatter = new MdDeployResultFormatter(ux as Ux, {}, deployFailure); + const formatter = new MdDeployResultFormatter(ux, {}, deployFailure); sandbox.stub(formatter, 'isSuccess').returns(false); try { @@ -144,7 +147,7 @@ describe('mdDeployResultFormatter', () => { it('should output as expected for a test failure with verbose', () => { process.exitCode = 1; - const formatter = new MdDeployResultFormatter(ux as Ux, { verbose: true }, deployResultTestFailure); + const formatter = new MdDeployResultFormatter(ux, { verbose: true }, deployResultTestFailure); try { formatter.display(); throw new Error('should have thrown'); @@ -161,7 +164,7 @@ describe('mdDeployResultFormatter', () => { it('should output as expected for passing tests with verbose', () => { process.exitCode = 0; - const formatter = new MdDeployResultFormatter(ux as Ux, { verbose: true }, deployResultTestSuccess); + const formatter = new MdDeployResultFormatter(ux, { verbose: true }, deployResultTestSuccess); formatter.display(); expect(styledHeaderStub.args[0][0]).to.include('Deployed Source'); expect(styledHeaderStub.args[1][0]).to.include('Component Failures [1]'); @@ -171,7 +174,7 @@ describe('mdDeployResultFormatter', () => { it('should output as expected for passing and failing tests with verbose', () => { process.exitCode = 1; - const formatter = new MdDeployResultFormatter(ux as Ux, { verbose: true }, deployResultTestSuccessAndFailure); + const formatter = new MdDeployResultFormatter(ux, { verbose: true }, deployResultTestSuccessAndFailure); try { formatter.display(); throw new Error('should have thrown'); @@ -188,7 +191,7 @@ describe('mdDeployResultFormatter', () => { it('shows success AND failures for partialSucceeded', () => { process.exitCode = 69; - const formatter = new MdDeployResultFormatter(ux as Ux, { verbose: true }, deployResultPartialSuccess); + const formatter = new MdDeployResultFormatter(ux, { verbose: true }, deployResultPartialSuccess); formatter.display(); expect(styledHeaderStub.callCount, 'styledHeaderStub.callCount').to.equal(2); expect(logStub.callCount, 'logStub.callCount').to.equal(3); diff --git a/test/formatters/pullFormatter.test.ts b/test/formatters/pullFormatter.test.ts index 73e3f7acc..92ac545d1 100644 --- a/test/formatters/pullFormatter.test.ts +++ b/test/formatters/pullFormatter.test.ts @@ -6,15 +6,15 @@ */ import { relative } from 'node:path'; -import * as sinon from 'sinon'; +import sinon from 'sinon'; import { expect } from 'chai'; import { FileResponse } from '@salesforce/source-deploy-retrieve'; import { stubInterface } from '@salesforce/ts-sinon'; import { ensureArray } from '@salesforce/kit'; import { Ux } from '@salesforce/sf-plugins-core'; -import { TestContext } from '@salesforce/core/lib/testSetup'; -import { getRetrieveResult } from '../commands/source/retrieveResponses'; -import { PullResponse, PullResultFormatter } from '../../src/formatters/source/pullFormatter'; +import { TestContext } from '@salesforce/core/lib/testSetup.js'; +import { getRetrieveResult } from '../commands/source/retrieveResponses.js'; +import { PullResponse, PullResultFormatter } from '../../src/formatters/source/pullFormatter.js'; describe('PullFormatter', () => { const sandbox = new TestContext().SANDBOX; @@ -25,7 +25,7 @@ describe('PullFormatter', () => { const retrieveResultEmpty = getRetrieveResult('empty'); const retrieveResultWarnings = getRetrieveResult('warnings'); - let ux; + let ux: Ux; let logStub: sinon.SinonStub; let styledHeaderStub: sinon.SinonStub; let tableStub: sinon.SinonStub; @@ -42,6 +42,8 @@ describe('PullFormatter', () => { logStub = sandbox.stub(); styledHeaderStub = sandbox.stub(); tableStub = sandbox.stub(); + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore ux = stubInterface(sandbox, { log: logStub, styledHeader: styledHeaderStub, @@ -58,14 +60,14 @@ describe('PullFormatter', () => { it('should return expected json for a success', () => { process.exitCode = 0; const expectedSuccessResults: PullResponse['pulledSource'] = retrieveResultSuccess.getFileResponses(); - const formatter = new PullResultFormatter(ux as Ux, {}, retrieveResultSuccess); + const formatter = new PullResultFormatter(ux, {}, retrieveResultSuccess); expect(formatter.getJson().pulledSource).to.deep.equal(expectedSuccessResults); }); it('should return expected json for a failure', () => { process.exitCode = 1; const expectedFailureResults: PullResponse['pulledSource'] = retrieveResultFailure.getFileResponses(); - const formatter = new PullResultFormatter(ux as Ux, {}, retrieveResultFailure); + const formatter = new PullResultFormatter(ux, {}, retrieveResultFailure); try { formatter.getJson().pulledSource; throw new Error('should have thrown'); @@ -79,14 +81,14 @@ describe('PullFormatter', () => { it('should return expected json for an InProgress', () => { const expectedInProgressResults: PullResponse['pulledSource'] = retrieveResultInProgress.getFileResponses(); - const formatter = new PullResultFormatter(ux as Ux, {}, retrieveResultInProgress); + const formatter = new PullResultFormatter(ux, {}, retrieveResultInProgress); expect(formatter.getJson().pulledSource).to.deep.equal(expectedInProgressResults); }); describe('display', () => { it('should output as expected for a success', () => { process.exitCode = 0; - const formatter = new PullResultFormatter(ux as Ux, {}, retrieveResultSuccess); + const formatter = new PullResultFormatter(ux, {}, retrieveResultSuccess); formatter.display(); expect(styledHeaderStub.called).to.equal(true); expect(logStub.called).to.equal(false); @@ -100,7 +102,7 @@ describe('PullFormatter', () => { it('should output as expected for an InProgress', () => { process.exitCode = 68; const options = { waitTime: 33 }; - const formatter = new PullResultFormatter(ux as Ux, options, retrieveResultInProgress); + const formatter = new PullResultFormatter(ux, options, retrieveResultInProgress); formatter.display(); expect(styledHeaderStub.called).to.equal(false); expect(logStub.called).to.equal(true); @@ -112,7 +114,7 @@ describe('PullFormatter', () => { it('should output as expected for a Failure', () => { process.exitCode = 1; - const formatter = new PullResultFormatter(ux as Ux, {}, retrieveResultFailure); + const formatter = new PullResultFormatter(ux, {}, retrieveResultFailure); sandbox.stub(formatter, 'isSuccess').returns(false); formatter.display(); @@ -123,7 +125,7 @@ describe('PullFormatter', () => { it('should output as expected for warnings', () => { process.exitCode = 0; - const formatter = new PullResultFormatter(ux as Ux, {}, retrieveResultWarnings); + const formatter = new PullResultFormatter(ux, {}, retrieveResultWarnings); formatter.display(); // Should call styledHeader for warnings and the standard "Retrieved Source" header expect(styledHeaderStub.calledTwice).to.equal(true); @@ -137,7 +139,7 @@ describe('PullFormatter', () => { it('should output a message when no results were returned', () => { process.exitCode = 0; - const formatter = new PullResultFormatter(ux as Ux, {}, retrieveResultEmpty); + const formatter = new PullResultFormatter(ux, {}, retrieveResultEmpty); formatter.display(); expect(styledHeaderStub.called).to.equal(true); expect(logStub.called).to.equal(true); diff --git a/test/formatters/pushResultFormatter.test.ts b/test/formatters/pushResultFormatter.test.ts index deb95a21e..70efe679e 100644 --- a/test/formatters/pushResultFormatter.test.ts +++ b/test/formatters/pushResultFormatter.test.ts @@ -5,13 +5,13 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ import { expect } from 'chai'; -import * as sinon from 'sinon'; +import sinon from 'sinon'; import { stubInterface } from '@salesforce/ts-sinon'; import { DeployResult } from '@salesforce/source-deploy-retrieve'; import { Ux } from '@salesforce/sf-plugins-core'; -import { TestContext } from '@salesforce/core/lib/testSetup'; -import { getDeployResult } from '../commands/source/deployResponses'; -import { PushResultFormatter, mergeReplacements } from '../../src/formatters/source/pushResultFormatter'; +import { TestContext } from '@salesforce/core/lib/testSetup.js'; +import { getDeployResult } from '../commands/source/deployResponses.js'; +import { PushResultFormatter, mergeReplacements } from '../../src/formatters/source/pushResultFormatter.js'; describe('PushResultFormatter', () => { const deployResultSuccess = [getDeployResult('successSync')]; @@ -22,12 +22,15 @@ describe('PushResultFormatter', () => { const sandbox = new TestContext().SANDBOX; - let uxMock; + let uxMock: Ux; let tableStub: sinon.SinonStub; let headerStub: sinon.SinonStub; beforeEach(() => { tableStub = sandbox.stub(); headerStub = sandbox.stub(); + // ux is a stubbed Ux + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore uxMock = stubInterface(sandbox, { table: tableStub, styledHeader: headerStub, @@ -52,7 +55,7 @@ describe('PushResultFormatter', () => { }; it('returns expected json for success', () => { process.exitCode = 0; - const formatter = new PushResultFormatter(uxMock as Ux, {}, deployResultSuccess); + const formatter = new PushResultFormatter(uxMock, {}, deployResultSuccess); expect(formatter.getJson().pushedSource).to.deep.equal([ { filePath: 'classes/ProductController.cls', @@ -64,7 +67,7 @@ describe('PushResultFormatter', () => { }); it('returns expected json for success with replaements', () => { process.exitCode = 0; - const formatter = new PushResultFormatter(uxMock as Ux, {}, deployResultSuccessWithReplacements); + const formatter = new PushResultFormatter(uxMock, {}, deployResultSuccessWithReplacements); const result = formatter.getJson(); expect(result.pushedSource).to.deep.equal([ { @@ -79,7 +82,7 @@ describe('PushResultFormatter', () => { }); }); it('returns expected json for failure', () => { - const formatter = new PushResultFormatter(uxMock as Ux, {}, deployResultFailure); + const formatter = new PushResultFormatter(uxMock, {}, deployResultFailure); process.exitCode = 1; try { @@ -100,18 +103,18 @@ describe('PushResultFormatter', () => { describe('json with quiet', () => { it('honors quiet flag for json successes', () => { process.exitCode = 0; - const formatter = new PushResultFormatter(uxMock as Ux, { quiet: true }, deployResultSuccess); + const formatter = new PushResultFormatter(uxMock, { quiet: true }, deployResultSuccess); expect(formatter.getJson().pushedSource).to.deep.equal([]); expect(formatter.getJson().replacements).to.be.undefined; }); it('omits replacements', () => { process.exitCode = 0; - const formatter = new PushResultFormatter(uxMock as Ux, { quiet: true }, deployResultSuccessWithReplacements); + const formatter = new PushResultFormatter(uxMock, { quiet: true }, deployResultSuccessWithReplacements); expect(formatter.getJson().pushedSource).to.deep.equal([]); expect(formatter.getJson().replacements).to.be.undefined; }); it('honors quiet flag for json failure', () => { - const formatter = new PushResultFormatter(uxMock as Ux, { quiet: true }, deployResultFailure); + const formatter = new PushResultFormatter(uxMock, { quiet: true }, deployResultFailure); try { formatter.getJson(); throw new Error('should have thrown'); @@ -126,14 +129,14 @@ describe('PushResultFormatter', () => { describe('human output', () => { it('returns expected output for success', () => { process.exitCode = 0; - const formatter = new PushResultFormatter(uxMock as Ux, {}, deployResultSuccess); + const formatter = new PushResultFormatter(uxMock, {}, deployResultSuccess); formatter.display(); expect(headerStub.callCount, JSON.stringify(headerStub.args)).to.equal(1); expect(tableStub.callCount, JSON.stringify(tableStub.args)).to.equal(1); }); it('returns expected output for success with replacements', () => { process.exitCode = 0; - const formatter = new PushResultFormatter(uxMock as Ux, {}, deployResultSuccessWithReplacements); + const formatter = new PushResultFormatter(uxMock, {}, deployResultSuccessWithReplacements); formatter.display(); expect(headerStub.callCount, JSON.stringify(headerStub.args)).to.equal(2); expect(headerStub.args[0][0]).to.include('Pushed Source'); @@ -147,7 +150,7 @@ describe('PushResultFormatter', () => { deployFailure.response.details.componentFailures = []; deployFailure.response.details.componentSuccesses = []; delete deployFailure.response.details.runTestResult; - const formatter = new PushResultFormatter(uxMock as Ux, {}, [deployFailure]); + const formatter = new PushResultFormatter(uxMock, {}, [deployFailure]); sandbox.stub(formatter, 'isSuccess').returns(false); try { @@ -163,7 +166,7 @@ describe('PushResultFormatter', () => { describe('quiet', () => { it('does not display successes for quiet', () => { process.exitCode = 0; - const formatter = new PushResultFormatter(uxMock as Ux, { quiet: true }, deployResultSuccess); + const formatter = new PushResultFormatter(uxMock, { quiet: true }, deployResultSuccess); formatter.display(); expect(headerStub.callCount, JSON.stringify(headerStub.args)).to.equal(0); expect(formatter.getJson().pushedSource).to.deep.equal([]); @@ -171,7 +174,7 @@ describe('PushResultFormatter', () => { }); it('displays errors and throws for quiet', () => { process.exitCode = 1; - const formatter = new PushResultFormatter(uxMock as Ux, { quiet: true }, deployResultFailure); + const formatter = new PushResultFormatter(uxMock, { quiet: true }, deployResultFailure); try { formatter.display(); throw new Error('should have thrown'); diff --git a/test/formatters/retrieveResultFormatter.test.ts b/test/formatters/retrieveResultFormatter.test.ts index 844ee1dc7..41fa37dd6 100644 --- a/test/formatters/retrieveResultFormatter.test.ts +++ b/test/formatters/retrieveResultFormatter.test.ts @@ -6,15 +6,15 @@ */ import { join, relative } from 'node:path'; -import * as sinon from 'sinon'; +import sinon from 'sinon'; import { expect } from 'chai'; import { FileResponse } from '@salesforce/source-deploy-retrieve'; import { cloneJson, ensureArray } from '@salesforce/kit'; import { stubInterface } from '@salesforce/ts-sinon'; import { Ux } from '@salesforce/sf-plugins-core'; -import { TestContext } from '@salesforce/core/lib/testSetup'; -import { getRetrieveResult } from '../commands/source/retrieveResponses'; -import { RetrieveCommandResult, RetrieveResultFormatter } from '../../src/formatters/retrieveResultFormatter'; +import { TestContext } from '@salesforce/core/lib/testSetup.js'; +import { getRetrieveResult } from '../commands/source/retrieveResponses.js'; +import { RetrieveCommandResult, RetrieveResultFormatter } from '../../src/formatters/retrieveResultFormatter.js'; describe('RetrieveResultFormatter', () => { const sandbox = new TestContext().SANDBOX; @@ -25,7 +25,7 @@ describe('RetrieveResultFormatter', () => { const retrieveResultEmpty = getRetrieveResult('empty'); const retrieveResultWarnings = getRetrieveResult('warnings'); - let ux; + let ux: Ux; let logStub: sinon.SinonStub; let styledHeaderStub: sinon.SinonStub; let tableStub: sinon.SinonStub; @@ -42,6 +42,9 @@ describe('RetrieveResultFormatter', () => { logStub = sandbox.stub(); styledHeaderStub = sandbox.stub(); tableStub = sandbox.stub(); + // ux is a stubbed Ux + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore ux = stubInterface(sandbox, { log: logStub, styledHeader: styledHeaderStub, @@ -61,7 +64,7 @@ describe('RetrieveResultFormatter', () => { warnings: [], response: cloneJson(retrieveResultSuccess.response), }; - const formatter = new RetrieveResultFormatter(ux as Ux, {}, retrieveResultSuccess); + const formatter = new RetrieveResultFormatter(ux, {}, retrieveResultSuccess); expect(formatter.getJson()).to.deep.equal(expectedSuccessResults); }); @@ -72,7 +75,7 @@ describe('RetrieveResultFormatter', () => { warnings: [], response: cloneJson(retrieveResultFailure.response), }; - const formatter = new RetrieveResultFormatter(ux as Ux, {}, retrieveResultFailure); + const formatter = new RetrieveResultFormatter(ux, {}, retrieveResultFailure); expect(formatter.getJson()).to.deep.equal(expectedFailureResults); }); @@ -83,7 +86,7 @@ describe('RetrieveResultFormatter', () => { warnings: [], response: cloneJson(retrieveResultInProgress.response), }; - const formatter = new RetrieveResultFormatter(ux as Ux, {}, retrieveResultInProgress); + const formatter = new RetrieveResultFormatter(ux, {}, retrieveResultInProgress); expect(formatter.getJson()).to.deep.equal(expectedInProgressResults); }); @@ -95,7 +98,7 @@ describe('RetrieveResultFormatter', () => { warnings: [], response: cloneJson(retrieveResultSuccess.response), }; - const formatter = new RetrieveResultFormatter(ux as Ux, { packages: [testPkg] }, retrieveResultSuccess); + const formatter = new RetrieveResultFormatter(ux, { packages: [testPkg] }, retrieveResultSuccess); expect(formatter.getJson()).to.deep.equal(expectedSuccessResults); }); @@ -108,14 +111,14 @@ describe('RetrieveResultFormatter', () => { warnings, response: cloneJson(retrieveResultWarnings.response), }; - const formatter = new RetrieveResultFormatter(ux as Ux, {}, retrieveResultWarnings); + const formatter = new RetrieveResultFormatter(ux, {}, retrieveResultWarnings); expect(formatter.getJson()).to.deep.equal(expectedSuccessResults); }); }); describe('display', () => { it('should output as expected for a success', () => { - const formatter = new RetrieveResultFormatter(ux as Ux, {}, retrieveResultSuccess); + const formatter = new RetrieveResultFormatter(ux, {}, retrieveResultSuccess); formatter.display(); expect(styledHeaderStub.called).to.equal(true); expect(logStub.called).to.equal(false); @@ -128,7 +131,7 @@ describe('RetrieveResultFormatter', () => { it('should output as expected for an InProgress', () => { const options = { waitTime: 33 }; - const formatter = new RetrieveResultFormatter(ux as Ux, options, retrieveResultInProgress); + const formatter = new RetrieveResultFormatter(ux, options, retrieveResultInProgress); formatter.display(); expect(styledHeaderStub.called).to.equal(false); expect(logStub.called).to.equal(true); @@ -139,7 +142,7 @@ describe('RetrieveResultFormatter', () => { }); it('should output as expected for a Failure', () => { - const formatter = new RetrieveResultFormatter(ux as Ux, {}, retrieveResultFailure); + const formatter = new RetrieveResultFormatter(ux, {}, retrieveResultFailure); sandbox.stub(formatter, 'isSuccess').returns(false); formatter.display(); @@ -149,7 +152,7 @@ describe('RetrieveResultFormatter', () => { }); it('should output as expected for warnings', () => { - const formatter = new RetrieveResultFormatter(ux as Ux, {}, retrieveResultWarnings); + const formatter = new RetrieveResultFormatter(ux, {}, retrieveResultWarnings); formatter.display(); // Should call styledHeader for warnings and the standard "Retrieved Source" header expect(styledHeaderStub.calledTwice).to.equal(true); @@ -162,7 +165,7 @@ describe('RetrieveResultFormatter', () => { }); it('should output a message when no results were returned', () => { - const formatter = new RetrieveResultFormatter(ux as Ux, {}, retrieveResultEmpty); + const formatter = new RetrieveResultFormatter(ux, {}, retrieveResultEmpty); formatter.display(); expect(styledHeaderStub.called).to.equal(true); expect(logStub.called).to.equal(true); diff --git a/test/formatters/statusResultFormatter.test.ts b/test/formatters/statusResultFormatter.test.ts index 8275e91e3..16ee6ed26 100644 --- a/test/formatters/statusResultFormatter.test.ts +++ b/test/formatters/statusResultFormatter.test.ts @@ -6,10 +6,10 @@ */ import { stubInterface } from '@salesforce/ts-sinon'; import { expect } from 'chai'; -import * as sinon from 'sinon'; +import sinon from 'sinon'; import { Ux } from '@salesforce/sf-plugins-core'; -import { TestContext } from '@salesforce/core/lib/testSetup'; -import { StatusFormatter, StatusResult } from '../../src/formatters/source/statusFormatter'; +import { TestContext } from '@salesforce/core/lib/testSetup.js'; +import { StatusFormatter, StatusResult } from '../../src/formatters/source/statusFormatter.js'; const fakeResult: StatusResult[] = [ { @@ -40,14 +40,16 @@ const fakeResult: StatusResult[] = [ describe('status results', () => { const sandbox = new TestContext().SANDBOX; - let ux; + let ux: Ux; let logStub: sinon.SinonStub; let tableStub: sinon.SinonStub; beforeEach(() => { logStub = sandbox.stub(); tableStub = sandbox.stub(); - + // ux is a stubbed Ux + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore ux = stubInterface(sandbox, { log: logStub, table: tableStub, @@ -59,32 +61,32 @@ describe('status results', () => { }); it('returns expected json', () => { - const formatter = new StatusFormatter(ux as Ux, {}, fakeResult); + const formatter = new StatusFormatter(ux, {}, fakeResult); expect(formatter.getJson()).deep.equal(fakeResult); }); describe('human display', () => { it('includes ignored files without the concise option', () => { - const formatter = new StatusFormatter(ux as Ux, { concise: false }, fakeResult); + const formatter = new StatusFormatter(ux, { concise: false }, fakeResult); formatter.display(); expect(tableStub.callCount).to.equal(1); expect(tableStub.firstCall.args[0]).to.have.equal(fakeResult); }); it('omits ignored files with the concise option', () => { - const formatter = new StatusFormatter(ux as Ux, { concise: true }, fakeResult); + const formatter = new StatusFormatter(ux, { concise: true }, fakeResult); formatter.display(); expect(tableStub.callCount).to.equal(1); expect(tableStub.firstCall.args[0]).to.deep.equal([fakeResult[2]]); }); it('shows no results when there are none', () => { - const formatter = new StatusFormatter(ux as Ux, { concise: false }, []); + const formatter = new StatusFormatter(ux, { concise: false }, []); formatter.display(); expect(logStub.callCount).to.equal(1); expect(logStub.firstCall.args[0]).to.contain('No local or remote changes found.'); }); it('shows no results when there are none because concise omitted them', () => { - const formatter = new StatusFormatter(ux as Ux, { concise: true }, [fakeResult[0]]); + const formatter = new StatusFormatter(ux, { concise: true }, [fakeResult[0]]); formatter.display(); expect(logStub.callCount).to.equal(1); expect(logStub.firstCall.args[0]).to.contain('No local or remote changes found.'); diff --git a/test/hooks/diagnostics.test.ts b/test/hooks/diagnostics.test.ts index 22f512871..a4e35e4bd 100644 --- a/test/hooks/diagnostics.test.ts +++ b/test/hooks/diagnostics.test.ts @@ -5,16 +5,18 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as sinon from 'sinon'; +import { fileURLToPath } from 'node:url'; +import { dirname } from 'node:path'; +import sinon from 'sinon'; import { expect } from 'chai'; import { fromStub, StubbedType, stubInterface, stubMethod } from '@salesforce/ts-sinon'; import { SfDoctor } from '@salesforce/plugin-info'; import { ConfigAggregator, Lifecycle, Messages, Org, SfProject } from '@salesforce/core'; -import { TestContext } from '@salesforce/core/lib/testSetup'; -import { hook } from '../../src/hooks/diagnostics'; - +import { TestContext } from '@salesforce/core/lib/testSetup.js'; +import { hook } from '../../src/hooks/diagnostics.js'; const pluginName = '@salesforce/plugin-source'; -Messages.importMessagesDirectory(__dirname); + +Messages.importMessagesDirectory(dirname(fileURLToPath(import.meta.url))); const messages = Messages.loadMessages(pluginName, 'diagnostics'); describe('Doctor diagnostics', () => { diff --git a/test/nuts/REST/deploy.mpd.nut.ts b/test/nuts/REST/deploy.mpd.nut.ts index 34f11258b..e25321c8f 100644 --- a/test/nuts/REST/deploy.mpd.nut.ts +++ b/test/nuts/REST/deploy.mpd.nut.ts @@ -5,13 +5,14 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; import { SourceTestkit } from '@salesforce/source-testkit'; import { get } from '@salesforce/ts-types'; import { FileResponse } from '@salesforce/source-deploy-retrieve'; import { expect } from 'chai'; -import { DeployCommandResult } from '../../../src/formatters/deployResultFormatter'; -import { DeployReportCommandResult } from '../../../src/formatters/deployReportResultFormatter'; +import { DeployCommandResult } from '../../../src/formatters/deployResultFormatter.js'; +import { DeployReportCommandResult } from '../../../src/formatters/deployReportResultFormatter.js'; const repo = { name: 'sample-project-multiple-packages', @@ -76,7 +77,7 @@ context(`MPD REST Deploy NUTs [name: ${repo.name}]`, () => { process.env.SFDX_REST_DEPLOY = 'true'; testkit = await SourceTestkit.create({ repository: repo.gitUrl, - nut: __filename, + nut: fileURLToPath(import.meta.url), }); }); diff --git a/test/nuts/REST/deploy.nut.ts b/test/nuts/REST/deploy.nut.ts index ab64f0d11..74b7253a9 100644 --- a/test/nuts/REST/deploy.nut.ts +++ b/test/nuts/REST/deploy.nut.ts @@ -5,13 +5,14 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; import { SourceTestkit } from '@salesforce/source-testkit'; import { get } from '@salesforce/ts-types'; import { FileResponse } from '@salesforce/source-deploy-retrieve'; import { expect } from 'chai'; -import { DeployReportCommandResult } from '../../../src/formatters/deployReportResultFormatter'; -import { DeployCommandResult } from '../../../src/formatters/deployResultFormatter'; +import { DeployReportCommandResult } from '../../../src/formatters/deployReportResultFormatter.js'; +import { DeployCommandResult } from '../../../src/formatters/deployResultFormatter.js'; const repo = { name: 'dreamhouse-lwc', @@ -50,7 +51,7 @@ context(`REST Deploy NUTs [name: ${repo.name}]`, () => { process.env.SFDX_REST_DEPLOY = 'true'; testkit = await SourceTestkit.create({ repository: repo.gitUrl, - nut: __filename, + nut: fileURLToPath(import.meta.url), }); await testkit.deploy({ args: '-p force-app' }); }); diff --git a/test/nuts/deployDestructive.nut.ts b/test/nuts/deployDestructive.nut.ts index 56a164b94..aad836771 100644 --- a/test/nuts/deployDestructive.nut.ts +++ b/test/nuts/deployDestructive.nut.ts @@ -5,11 +5,12 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; import { expect } from 'chai'; import { execCmd } from '@salesforce/cli-plugins-testkit'; import { SourceTestkit } from '@salesforce/source-testkit'; -import { isNameObsolete } from './shared/isNameObsolete'; +import { isNameObsolete } from './shared/isNameObsolete.js'; describe('source:deploy --destructive NUTs', () => { let testkit: SourceTestkit; @@ -35,7 +36,7 @@ describe('source:deploy --destructive NUTs', () => { before(async () => { testkit = await SourceTestkit.create({ - nut: __filename, + nut: fileURLToPath(import.meta.url), repository: 'https://github.com/trailheadapps/dreamhouse-lwc.git', }); execCmd('force:source:deploy --sourcepath force-app', { ensureExitCode: 0 }); diff --git a/test/nuts/digitalExperienceBundle/constants.ts b/test/nuts/digitalExperienceBundle/constants.ts index f6f77b7aa..78f2dce3f 100644 --- a/test/nuts/digitalExperienceBundle/constants.ts +++ b/test/nuts/digitalExperienceBundle/constants.ts @@ -6,16 +6,17 @@ */ import { join } from 'node:path'; -import { TestSessionOptions } from '@salesforce/cli-plugins-testkit/lib/testSession'; +import { TestSessionOptions } from '@salesforce/cli-plugins-testkit/lib/testSession.js'; import { registry } from '@salesforce/source-deploy-retrieve'; -import { META_XML_SUFFIX } from '@salesforce/source-deploy-retrieve/lib/src/common'; +import { META_XML_SUFFIX } from '@salesforce/source-deploy-retrieve/lib/src/common/index.js'; export const SOURCE_BASE_RELATIVE_PATH = join('force-app', 'main', 'default'); export const DEB_NUTS_PATH = join(process.cwd(), 'test', 'nuts', 'digitalExperienceBundle'); export const TYPES = { DEB: registry.types.digitalexperiencebundle, - DE: registry.types.digitalexperiencebundle.children.types.digitalexperience, + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + DE: registry.types.digitalexperiencebundle.children!.types.digitalexperience, DEC: registry.types.digitalexperienceconfig, NETWORK: registry.types.network, CUSTOM_SITE: registry.types.customsite, @@ -67,7 +68,7 @@ export const FILE_NAMES = { META: { DEB_A: `${DIR_NAMES.DEB_A}.${TYPES.DEB.suffix}${META_XML_SUFFIX}`, DEB_B: `${DIR_NAMES.DEB_B}.${TYPES.DEB.suffix}${META_XML_SUFFIX}`, - DE: TYPES.DE.metaFileSuffix, // metaFileName = metaFileSuffix in case of DigitalExperience + DE: TYPES.DE?.metaFileSuffix ?? '', // metaFileName = metaFileSuffix in case of DigitalExperience }, } as const; @@ -122,12 +123,12 @@ export const STORE = { export const METADATA = { ALL_DEBS: TYPES.DEB.name, - ALL_DE: TYPES.DE.name, - ALL_DE_OF_DEB_B: `${TYPES.DE.name}:${DIR_NAMES.SITE}/${DIR_NAMES.DEB_B}.*`, + ALL_DE: TYPES.DE?.name, + ALL_DE_OF_DEB_B: `${TYPES.DE?.name}:${DIR_NAMES.SITE}/${DIR_NAMES.DEB_B}.*`, FULL_SITE_DEB_A_AND_B: `${TYPES.DEB.name},${TYPES.DEC.name},${TYPES.NETWORK.name},${TYPES.CUSTOM_SITE.name}`, JUST_DEB_B: `${TYPES.DEB.name}:${FULL_NAMES.DEB_B}`, - DE_VIEW_HOME_OF_DEB_B: `${TYPES.DE.name}:${FULL_NAMES.DE_VIEW_HOME_B}`, - DE_DOCUMENT_DETAIL_PAGE_A: `${TYPES.DE.name}:${FULL_NAMES.DE_VIEW_DOCUMENT_DETAIL_A},${TYPES.DE.name}:${FULL_NAMES.DE_ROUTE_DOCUMENT_DETAIL_A}`, + DE_VIEW_HOME_OF_DEB_B: `${TYPES.DE?.name}:${FULL_NAMES.DE_VIEW_HOME_B}`, + DE_DOCUMENT_DETAIL_PAGE_A: `${TYPES.DE?.name}:${FULL_NAMES.DE_VIEW_DOCUMENT_DETAIL_A},${TYPES.DE?.name}:${FULL_NAMES.DE_ROUTE_DOCUMENT_DETAIL_A}`, } as const; export const DEBS = { diff --git a/test/nuts/digitalExperienceBundle/deb.manifest.nut.ts b/test/nuts/digitalExperienceBundle/deb.manifest.nut.ts index 5087f6fbe..aefc1acb1 100644 --- a/test/nuts/digitalExperienceBundle/deb.manifest.nut.ts +++ b/test/nuts/digitalExperienceBundle/deb.manifest.nut.ts @@ -4,14 +4,14 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as fs from 'node:fs'; +import fs from 'node:fs'; import { join } from 'node:path'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; import { expect } from 'chai'; import { beforeEach } from 'mocha'; -import { DeployCommandResult } from '../../../src/formatters/deployResultFormatter'; -import { RetrieveCommandResult } from '../../../src/formatters/retrieveResultFormatter'; -import { DEBS_RELATIVE_PATH, FULL_NAMES, METADATA, STORE, TEST_SESSION_OPTIONS, TYPES } from './constants'; +import { DeployCommandResult } from '../../../src/formatters/deployResultFormatter.js'; +import { RetrieveCommandResult } from '../../../src/formatters/retrieveResultFormatter.js'; +import { DEBS_RELATIVE_PATH, FULL_NAMES, METADATA, STORE, TEST_SESSION_OPTIONS, TYPES } from './constants.js'; import { assertAllDEBAndTheirDECounts, assertDECountOfSingleDEB, @@ -24,7 +24,7 @@ import { createDocumentDetailPageAInLocal, deleteLocalSource, deleteViewHomeFRVariantInLocal, -} from './helper'; +} from './helper.js'; describe('deb -- manifest option', () => { let session: TestSession; @@ -39,6 +39,8 @@ describe('deb -- manifest option', () => { describe('generate manifest', () => { it('should generate manifest for all debs using sourcepath', () => { + // `force:source:manifest:create` is now in PDR. + // we run this with `sf` to generate the manifest for the next tests execCmd( `force:source:manifest:create --sourcepath ${DEBS_RELATIVE_PATH} --name ${STORE.MANIFESTS.ALL_DEBS_SOURCE_PATH_GEN} --json`, { ensureExitCode: 0, cli: 'sf' } @@ -47,6 +49,8 @@ describe('deb -- manifest option', () => { }); it('should generate manifest for all debs using metadata', () => { + // `force:source:manifest:create` is now in PDR. + // we run this with `sf` to generate the manifest for the next tests execCmd( `force:source:manifest:create --metadata ${METADATA.ALL_DEBS} --name ${STORE.MANIFESTS.ALL_DEBS_METADATA_GEN} --json`, { ensureExitCode: 0, cli: 'sf' } @@ -61,6 +65,7 @@ describe('deb -- manifest option', () => { `force:source:deploy --metadata ${TYPES.APEX_PAGE.name},${TYPES.APEX_CLASS.name} --json`, { ensureExitCode: 0, + cli: 'dev', } ); }); @@ -70,8 +75,9 @@ describe('deb -- manifest option', () => { `force:source:deploy --manifest ${STORE.MANIFESTS.FULL_SITE_DEB_A_AND_B} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertAllDEBAndTheirDECounts(deployedSource, 6); }); @@ -82,8 +88,9 @@ describe('deb -- manifest option', () => { `force:source:deploy --manifest ${STORE.MANIFESTS.ALL_DEBS} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertAllDEBAndTheirDECounts(deployedSource); }); @@ -93,8 +100,9 @@ describe('deb -- manifest option', () => { `force:source:deploy --manifest ${STORE.MANIFESTS.ALL_DE} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertDECountsOfAllDEB(deployedSource); }); @@ -106,8 +114,9 @@ describe('deb -- manifest option', () => { `force:source:deploy --manifest ${STORE.MANIFESTS.ALL_DE_OF_DEB_A} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertDECountOfSingleDEB(deployedSource); }); @@ -117,8 +126,9 @@ describe('deb -- manifest option', () => { `force:source:deploy --manifest ${STORE.MANIFESTS.JUST_DEB_A} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertSingleDEBAndItsDECounts(deployedSource, FULL_NAMES.DEB_A); }); @@ -128,8 +138,9 @@ describe('deb -- manifest option', () => { `force:source:deploy --manifest ${STORE.MANIFESTS.DE_VIEW_HOME_OF_DEB_A} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertViewHome(deployedSource, 'A'); }); @@ -141,8 +152,9 @@ describe('deb -- manifest option', () => { `force:source:deploy --manifest ${STORE.MANIFESTS.ALL_DEBS_SOURCE_PATH_GEN} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertAllDEBAndTheirDECounts(deployedSource); }); @@ -152,8 +164,9 @@ describe('deb -- manifest option', () => { `force:source:deploy --manifest ${STORE.MANIFESTS.ALL_DEBS_METADATA_GEN} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertAllDEBAndTheirDECounts(deployedSource); }); @@ -171,8 +184,9 @@ describe('deb -- manifest option', () => { `force:source:retrieve --manifest ${STORE.MANIFESTS.ALL_DEBS} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.inboundFiles; + ).jsonOutput?.result.inboundFiles; assertAllDEBAndTheirDECounts(inboundFiles); }); @@ -182,8 +196,9 @@ describe('deb -- manifest option', () => { `force:source:retrieve --manifest ${STORE.MANIFESTS.ALL_DE} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.inboundFiles; + ).jsonOutput?.result.inboundFiles; assertDECountsOfAllDEB(inboundFiles); }); @@ -195,8 +210,9 @@ describe('deb -- manifest option', () => { `force:source:retrieve --manifest ${STORE.MANIFESTS.ALL_DE_OF_DEB_A} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.inboundFiles; + ).jsonOutput?.result.inboundFiles; assertDECountOfSingleDEB(inboundFiles); }); @@ -206,8 +222,9 @@ describe('deb -- manifest option', () => { `force:source:retrieve --manifest ${STORE.MANIFESTS.JUST_DEB_A} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.inboundFiles; + ).jsonOutput?.result.inboundFiles; assertSingleDEBAndItsDECounts(inboundFiles, FULL_NAMES.DEB_A); }); @@ -217,8 +234,9 @@ describe('deb -- manifest option', () => { `force:source:retrieve --manifest ${STORE.MANIFESTS.DE_VIEW_HOME_OF_DEB_A} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.inboundFiles; + ).jsonOutput?.result.inboundFiles; assertViewHome(inboundFiles, 'A'); }); @@ -230,8 +248,9 @@ describe('deb -- manifest option', () => { `force:source:retrieve --manifest ${STORE.MANIFESTS.ALL_DEBS_SOURCE_PATH_GEN} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.inboundFiles; + ).jsonOutput?.result.inboundFiles; assertAllDEBAndTheirDECounts(inboundFiles); }); @@ -241,8 +260,9 @@ describe('deb -- manifest option', () => { `force:source:retrieve --manifest ${STORE.MANIFESTS.ALL_DEBS_METADATA_GEN} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.inboundFiles; + ).jsonOutput?.result.inboundFiles; assertAllDEBAndTheirDECounts(inboundFiles); }); @@ -257,8 +277,9 @@ describe('deb -- manifest option', () => { `force:source:deploy --manifest ${STORE.MANIFESTS.DE_VIEW_HOME_OF_DEB_A} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertViewHomeFRVariantDelete(deployedSource, 'A', session.project.dir); }); @@ -272,8 +293,9 @@ describe('deb -- manifest option', () => { `force:source:deploy --manifest ${STORE.MANIFESTS.DE_DOCUMENT_DETAIL_PAGE_A} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertDocumentDetailPageA(deployedSource); }); @@ -283,8 +305,9 @@ describe('deb -- manifest option', () => { `force:source:deploy --manifest ${STORE.MANIFESTS.EMPTY_PACKAGE_XML} --predestructivechanges ${STORE.MANIFESTS.DE_DOCUMENT_DETAIL_PAGE_A} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertDocumentDetailPageA(deployedSource); await assertDocumentDetailPageADelete(session, false); diff --git a/test/nuts/digitalExperienceBundle/deb.metadata.nut.ts b/test/nuts/digitalExperienceBundle/deb.metadata.nut.ts index 958fe5fc9..1560663d8 100644 --- a/test/nuts/digitalExperienceBundle/deb.metadata.nut.ts +++ b/test/nuts/digitalExperienceBundle/deb.metadata.nut.ts @@ -6,9 +6,9 @@ */ import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; import { beforeEach } from 'mocha'; -import { DeployCommandResult } from '../../../src/formatters/deployResultFormatter'; -import { RetrieveCommandResult } from '../../../src/formatters/retrieveResultFormatter'; -import { DEBS_RELATIVE_PATH, FULL_NAMES, METADATA, TEST_SESSION_OPTIONS, TYPES } from './constants'; +import { DeployCommandResult } from '../../../src/formatters/deployResultFormatter.js'; +import { RetrieveCommandResult } from '../../../src/formatters/retrieveResultFormatter.js'; +import { DEBS_RELATIVE_PATH, FULL_NAMES, METADATA, TEST_SESSION_OPTIONS, TYPES } from './constants.js'; import { assertAllDEBAndTheirDECounts, assertDECountOfSingleDEB, @@ -21,7 +21,7 @@ import { createDocumentDetailPageAInLocal, deleteLocalSource, deleteViewHomeFRVariantInLocal, -} from './helper'; +} from './helper.js'; describe('deb -- metadata option', () => { let session: TestSession; @@ -40,6 +40,7 @@ describe('deb -- metadata option', () => { `force:source:deploy --metadata ${TYPES.APEX_PAGE.name},${TYPES.APEX_CLASS.name} --json`, { ensureExitCode: 0, + cli: 'dev', } ); }); @@ -49,8 +50,9 @@ describe('deb -- metadata option', () => { `force:source:deploy --metadata ${METADATA.FULL_SITE_DEB_A_AND_B} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertAllDEBAndTheirDECounts(deployedSource, 6); }); @@ -61,8 +63,9 @@ describe('deb -- metadata option', () => { `force:source:deploy --metadata ${METADATA.ALL_DEBS} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertAllDEBAndTheirDECounts(deployedSource); }); @@ -72,8 +75,9 @@ describe('deb -- metadata option', () => { `force:source:deploy --metadata ${METADATA.ALL_DE} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertDECountsOfAllDEB(deployedSource); }); @@ -85,8 +89,9 @@ describe('deb -- metadata option', () => { `force:source:deploy --metadata ${METADATA.ALL_DE_OF_DEB_B} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertDECountOfSingleDEB(deployedSource); }); @@ -96,8 +101,9 @@ describe('deb -- metadata option', () => { `force:source:deploy --metadata ${METADATA.JUST_DEB_B} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertSingleDEBAndItsDECounts(deployedSource, FULL_NAMES.DEB_B); }); @@ -107,8 +113,9 @@ describe('deb -- metadata option', () => { `force:source:deploy --metadata ${METADATA.DE_VIEW_HOME_OF_DEB_B} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertViewHome(deployedSource, 'B'); }); @@ -126,8 +133,9 @@ describe('deb -- metadata option', () => { `force:source:retrieve --metadata ${METADATA.ALL_DEBS} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.inboundFiles; + ).jsonOutput?.result.inboundFiles; assertAllDEBAndTheirDECounts(inboundFiles); }); @@ -137,8 +145,9 @@ describe('deb -- metadata option', () => { `force:source:retrieve --metadata ${METADATA.ALL_DE} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.inboundFiles; + ).jsonOutput?.result.inboundFiles; assertDECountsOfAllDEB(inboundFiles); }); @@ -150,8 +159,9 @@ describe('deb -- metadata option', () => { `force:source:retrieve --metadata ${METADATA.ALL_DE_OF_DEB_B} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.inboundFiles; + ).jsonOutput?.result.inboundFiles; assertDECountOfSingleDEB(inboundFiles); }); @@ -161,8 +171,9 @@ describe('deb -- metadata option', () => { `force:source:retrieve --metadata ${METADATA.JUST_DEB_B} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.inboundFiles; + ).jsonOutput?.result.inboundFiles; assertSingleDEBAndItsDECounts(inboundFiles, FULL_NAMES.DEB_B); }); @@ -172,8 +183,9 @@ describe('deb -- metadata option', () => { `force:source:retrieve --metadata ${METADATA.DE_VIEW_HOME_OF_DEB_B} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.inboundFiles; + ).jsonOutput?.result.inboundFiles; assertViewHome(inboundFiles, 'B'); }); @@ -188,8 +200,9 @@ describe('deb -- metadata option', () => { `force:source:deploy --metadata ${METADATA.DE_VIEW_HOME_OF_DEB_B} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertViewHomeFRVariantDelete(deployedSource, 'B', session.project.dir); }); @@ -203,12 +216,14 @@ describe('deb -- metadata option', () => { `force:source:deploy --metadata ${METADATA.DE_DOCUMENT_DETAIL_PAGE_A} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertDocumentDetailPageA(deployedSource); }); + // TODO: `force:source:delete` lives in PDR (and same NUT exists there), should we delete this? it('should delete the page (view and route de components) of deb_a', async () => { const deletedSource = execCmd( `force:source:delete --metadata ${METADATA.DE_DOCUMENT_DETAIL_PAGE_A} --noprompt --json`, @@ -216,7 +231,7 @@ describe('deb -- metadata option', () => { ensureExitCode: 0, cli: 'sf', } - ).jsonOutput.result.deletedSource; + ).jsonOutput?.result.deletedSource; assertDocumentDetailPageA(deletedSource); await assertDocumentDetailPageADelete(session, true); diff --git a/test/nuts/digitalExperienceBundle/deb.sourcepath.nut.ts b/test/nuts/digitalExperienceBundle/deb.sourcepath.nut.ts index 3c2dfbce8..185041bb1 100644 --- a/test/nuts/digitalExperienceBundle/deb.sourcepath.nut.ts +++ b/test/nuts/digitalExperienceBundle/deb.sourcepath.nut.ts @@ -5,8 +5,8 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; -import { DeployCommandResult } from '../../../src/formatters/deployResultFormatter'; -import { RetrieveCommandResult } from '../../../src/formatters/retrieveResultFormatter'; +import { DeployCommandResult } from '../../../src/formatters/deployResultFormatter.js'; +import { RetrieveCommandResult } from '../../../src/formatters/retrieveResultFormatter.js'; import { DEB_A_RELATIVE_PATH, DEBS_RELATIVE_PATH, @@ -14,7 +14,7 @@ import { FULL_NAMES, TEST_SESSION_OPTIONS, TYPES, -} from './constants'; +} from './constants.js'; import { assertAllDEBAndTheirDECounts, assertDocumentDetailPageA, @@ -24,7 +24,7 @@ import { assertViewHomeFRVariantDelete, createDocumentDetailPageAInLocal, deleteViewHomeFRVariantInLocal, -} from './helper'; +} from './helper.js'; describe('deb -- sourcepath option', () => { let session: TestSession; @@ -53,7 +53,7 @@ describe('deb -- sourcepath option', () => { { ensureExitCode: 0, } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertAllDEBAndTheirDECounts(deployedSource, 6); }); @@ -65,7 +65,7 @@ describe('deb -- sourcepath option', () => { { ensureExitCode: 0, } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertAllDEBAndTheirDECounts(deployedSource); }); @@ -78,7 +78,7 @@ describe('deb -- sourcepath option', () => { { ensureExitCode: 0, } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertSingleDEBAndItsDECounts(deployedSource, FULL_NAMES.DEB_A); }); @@ -89,7 +89,7 @@ describe('deb -- sourcepath option', () => { { ensureExitCode: 0, } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertViewHome(deployedSource, 'A'); }); @@ -104,7 +104,7 @@ describe('deb -- sourcepath option', () => { { ensureExitCode: 0, } - ).jsonOutput.result.inboundFiles; + ).jsonOutput?.result.inboundFiles; assertAllDEBAndTheirDECounts(inboundFiles); }); @@ -117,7 +117,7 @@ describe('deb -- sourcepath option', () => { { ensureExitCode: 0, } - ).jsonOutput.result.inboundFiles; + ).jsonOutput?.result.inboundFiles; assertSingleDEBAndItsDECounts(inboundFiles, FULL_NAMES.DEB_A); }); @@ -128,7 +128,7 @@ describe('deb -- sourcepath option', () => { { ensureExitCode: 0, } - ).jsonOutput.result.inboundFiles; + ).jsonOutput?.result.inboundFiles; assertViewHome(inboundFiles, 'A'); }); @@ -144,7 +144,7 @@ describe('deb -- sourcepath option', () => { { ensureExitCode: 0, } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertViewHomeFRVariantDelete(deployedSource, 'A', session.project.dir); }); @@ -159,11 +159,12 @@ describe('deb -- sourcepath option', () => { { ensureExitCode: 0, } - ).jsonOutput.result.deployedSource; + ).jsonOutput?.result.deployedSource; assertDocumentDetailPageA(deployedSource); }); + // TODO: `force:source:delete` lives in PDR (and same NUT exists there), should we delete this? it('should delete the page (view and route de components) of deb_a', async () => { const deletedSource = execCmd( `force:source:delete --sourcepath ${DIR_RELATIVE_PATHS.DE_VIEW_DOCUMENT_DETAIL_A},${DIR_RELATIVE_PATHS.DE_ROUTE_DOCUMENT_DETAIL_A} --noprompt --json`, @@ -171,7 +172,7 @@ describe('deb -- sourcepath option', () => { ensureExitCode: 0, cli: 'sf', } - ).jsonOutput.result.deletedSource; + ).jsonOutput?.result.deletedSource; assertDocumentDetailPageA(deletedSource); await assertDocumentDetailPageADelete(session, true); diff --git a/test/nuts/digitalExperienceBundle/deb.tracking.nut.ts b/test/nuts/digitalExperienceBundle/deb.tracking.nut.ts index e59499e84..996381920 100644 --- a/test/nuts/digitalExperienceBundle/deb.tracking.nut.ts +++ b/test/nuts/digitalExperienceBundle/deb.tracking.nut.ts @@ -4,15 +4,14 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as fs from 'node:fs'; +import fs from 'node:fs'; import { join } from 'node:path'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; import { expect } from 'chai'; -import { DeleteTrackingResult } from '@salesforce/plugin-deploy-retrieve/lib/commands/project/delete/tracking'; -import { PushResponse } from '../../../src/formatters/source/pushResultFormatter'; -import { StatusResult } from '../../../src/formatters/source/statusFormatter'; -import { PullResponse } from '../../../src/formatters/source/pullFormatter'; -import { FILE_RELATIVE_PATHS, TEST_SESSION_OPTIONS, TYPES } from './constants'; +import { PushResponse } from '../../../src/formatters/source/pushResultFormatter.js'; +import { StatusResult } from '../../../src/formatters/source/statusFormatter.js'; +import { PullResponse } from '../../../src/formatters/source/pullFormatter.js'; +import { FILE_RELATIVE_PATHS, TEST_SESSION_OPTIONS, TYPES } from './constants.js'; import { assertAllDEBAndTheirDECounts, assertDEBMeta, @@ -24,7 +23,13 @@ import { createDocumentDetailPageAInLocal, deleteDocumentDetailPageAInLocal, deleteViewHomeFRVariantInLocal, -} from './helper'; +} from './helper.js'; + +// copied from PDR: +// https://github.com/salesforcecli/plugin-deploy-retrieve/blob/6a8428afb4b78b09cc398636fa2555efda014af5/src/commands/project/delete/tracking.ts#L24 +type DeleteTrackingResult = { + clearedFiles: string[]; +}; describe('deb -- tracking/push/pull', () => { let session: TestSession; @@ -41,7 +46,7 @@ describe('deb -- tracking/push/pull', () => { it('should push the whole project', () => { const pushedSource = execCmd('force:source:push --json', { ensureExitCode: 0, - }).jsonOutput.result.pushedSource; + }).jsonOutput?.result.pushedSource; assertAllDEBAndTheirDECounts(pushedSource, 10); }); @@ -53,15 +58,14 @@ describe('deb -- tracking/push/pull', () => { const statusResult = execCmd('force:source:status --local --json', { ensureExitCode: 0, - }).jsonOutput.result; - + }).jsonOutput?.result; assertDEBMeta(statusResult, 'B'); }); it('should push local change in deb_b', () => { const pushedSource = execCmd('force:source:push --json', { ensureExitCode: 0, - }).jsonOutput.result.pushedSource; + }).jsonOutput?.result.pushedSource; assertDEBMeta(pushedSource, 'B'); assertNoLocalChanges(); @@ -77,15 +81,14 @@ describe('deb -- tracking/push/pull', () => { const statusResult = execCmd('force:source:status --local --json', { ensureExitCode: 0, - }).jsonOutput.result; - + }).jsonOutput?.result; assertViewHomeStatus(statusResult, 'B', 'CONTENT'); }); it('should push local change in de_view_home_content of deb_b', () => { const pushedSource = execCmd('force:source:push --json', { ensureExitCode: 0, - }).jsonOutput.result.pushedSource; + }).jsonOutput?.result.pushedSource; assertViewHome(pushedSource, 'B'); assertNoLocalChanges(); @@ -100,15 +103,14 @@ describe('deb -- tracking/push/pull', () => { const statusResult = execCmd('force:source:status --local --json', { ensureExitCode: 0, - }).jsonOutput.result; - + }).jsonOutput?.result; assertViewHomeStatus(statusResult, 'B', 'META'); }); it('should push local change in de_view_home_meta of deb_b', () => { const pushedSource = execCmd('force:source:push --json', { ensureExitCode: 0, - }).jsonOutput.result.pushedSource; + }).jsonOutput?.result.pushedSource; assertViewHome(pushedSource, 'B'); assertNoLocalChanges(); @@ -124,7 +126,7 @@ describe('deb -- tracking/push/pull', () => { const pulledSource = execCmd('force:source:pull --forceoverwrite --json', { ensureExitCode: 0, - }).jsonOutput.result.pulledSource; + }).jsonOutput?.result.pulledSource; assertAllDEBAndTheirDECounts(pulledSource, 0, false); }); @@ -132,9 +134,9 @@ describe('deb -- tracking/push/pull', () => { it('should not see any local/remote changes in deb/de', () => { const statusResult = execCmd('force:source:status --json', { ensureExitCode: 0, - }).jsonOutput.result; + }).jsonOutput?.result; - expect(statusResult.every((s) => s.type !== TYPES.DE.name && s.type !== TYPES.DEB.name)).to.be.true; + expect(statusResult?.every((s) => s.type !== TYPES.DE?.name && s.type !== TYPES.DEB.name)).to.be.true; }); }); @@ -144,8 +146,7 @@ describe('deb -- tracking/push/pull', () => { const statusResult = execCmd('force:source:status --local --json', { ensureExitCode: 0, - }).jsonOutput.result; - + }).jsonOutput?.result; assertViewHomeStatus(statusResult, 'B', 'FR_VARIANT'); }); @@ -160,15 +161,14 @@ describe('deb -- tracking/push/pull', () => { const statusResult = execCmd('force:source:status --local --json', { ensureExitCode: 0, - }).jsonOutput.result; - + }).jsonOutput?.result; assertDocumentDetailPageA(statusResult); }); it('should push locally added page (view and route de components) in deb_a', () => { const pushedSource = execCmd('force:source:push --json', { ensureExitCode: 0, - }).jsonOutput.result.pushedSource; + }).jsonOutput?.result.pushedSource; assertDocumentDetailPageA(pushedSource); assertNoLocalChanges(); @@ -179,15 +179,14 @@ describe('deb -- tracking/push/pull', () => { const statusResult = execCmd('force:source:status --local --json', { ensureExitCode: 0, - }).jsonOutput.result; - + }).jsonOutput?.result; assertDocumentDetailPageA(statusResult); }); it('should push local delete change in deb_a [locally deleted page (view and route de components)]', async () => { const pushedSource = execCmd('force:source:push --json', { ensureExitCode: 0, - }).jsonOutput.result.pushedSource; + }).jsonOutput?.result.pushedSource; assertDocumentDetailPageA(pushedSource); assertNoLocalChanges(); diff --git a/test/nuts/digitalExperienceBundle/helper.ts b/test/nuts/digitalExperienceBundle/helper.ts index 5577f719b..bd7eff5ac 100644 --- a/test/nuts/digitalExperienceBundle/helper.ts +++ b/test/nuts/digitalExperienceBundle/helper.ts @@ -5,29 +5,29 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ import { join, relative } from 'node:path'; -import * as fs from 'node:fs'; +import fs from 'node:fs'; import { FileResponse } from '@salesforce/source-deploy-retrieve'; import { expect } from 'chai'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; -import { StatusResult } from '../../../src/formatters/source/statusFormatter'; -import { isNameObsolete } from '../shared/isNameObsolete'; -import { RetrieveCommandResult } from '../../../src/formatters/retrieveResultFormatter'; -import { DEBS, DIR_RELATIVE_PATHS, FILE_RELATIVE_PATHS, FULL_NAMES, STORE, TYPES } from './constants'; +import { StatusResult } from '../../../src/formatters/source/statusFormatter.js'; +import { isNameObsolete } from '../shared/isNameObsolete.js'; +import { RetrieveCommandResult } from '../../../src/formatters/retrieveResultFormatter.js'; +import { DEBS, DIR_RELATIVE_PATHS, FILE_RELATIVE_PATHS, FULL_NAMES, STORE, TYPES } from './constants.js'; type CustomFileResponses = Array>; export function assertAllDEBAndTheirDECounts( - resp: CustomFileResponses, + resp: CustomFileResponses | undefined, otherComponentsCount = 0, assertTotalCount = true ) { if (assertTotalCount) expect(resp).to.have.length(104 + otherComponentsCount); expect( - resp.reduce( - (acc: [number, number, number, number], curr: FileResponse) => { - if (curr.type === TYPES.DE.name && curr.fullName.includes(FULL_NAMES.DEB_A)) acc[0]++; - if (curr.type === TYPES.DE.name && curr.fullName.includes(FULL_NAMES.DEB_B)) acc[1]++; + resp?.reduce( + (acc: [number, number, number, number], curr) => { + if (curr.type === TYPES.DE?.name && curr.fullName.includes(FULL_NAMES.DEB_A)) acc[0]++; + if (curr.type === TYPES.DE?.name && curr.fullName.includes(FULL_NAMES.DEB_B)) acc[1]++; if (curr.type === TYPES.DEB.name && curr.fullName === FULL_NAMES.DEB_A) acc[2]++; if (curr.type === TYPES.DEB.name && curr.fullName === FULL_NAMES.DEB_B) acc[3]++; return acc; @@ -38,12 +38,12 @@ export function assertAllDEBAndTheirDECounts( ).to.deep.equal([51, 51, 1, 1]); } -export function assertSingleDEBAndItsDECounts(resp: CustomFileResponses, debFullName: string) { +export function assertSingleDEBAndItsDECounts(resp: CustomFileResponses | undefined, debFullName: string) { expect(resp).to.have.length(52); expect( - resp.reduce( - (acc: [number, number], curr: FileResponse) => { - if (curr.type === TYPES.DE.name && curr.fullName.includes(debFullName)) acc[0]++; + resp?.reduce( + (acc: [number, number], curr) => { + if (curr.type === TYPES.DE?.name && curr.fullName.includes(debFullName)) acc[0]++; if (curr.type === TYPES.DEB.name && curr.fullName === debFullName) acc[1]++; return acc; }, @@ -53,13 +53,13 @@ export function assertSingleDEBAndItsDECounts(resp: CustomFileResponses, debFull ).to.deep.equal([51, 1]); } -export function assertDECountsOfAllDEB(resp: CustomFileResponses) { +export function assertDECountsOfAllDEB(resp?: CustomFileResponses) { expect(resp).to.have.length(102); expect( - resp.reduce( - (acc: [number, number], curr: FileResponse) => { - if (curr.type === TYPES.DE.name && curr.fullName.includes(FULL_NAMES.DEB_A)) acc[0]++; - if (curr.type === TYPES.DE.name && curr.fullName.includes(FULL_NAMES.DEB_B)) acc[1]++; + resp?.reduce( + (acc: [number, number], curr) => { + if (curr.type === TYPES.DE?.name && curr.fullName.includes(FULL_NAMES.DEB_A)) acc[0]++; + if (curr.type === TYPES.DE?.name && curr.fullName.includes(FULL_NAMES.DEB_B)) acc[1]++; return acc; }, [0, 0] @@ -68,44 +68,47 @@ export function assertDECountsOfAllDEB(resp: CustomFileResponses) { ).to.deep.equal([51, 51]); } -export function assertDECountOfSingleDEB(resp: CustomFileResponses) { +export function assertDECountOfSingleDEB(resp?: CustomFileResponses) { expect(resp).to.have.length(51); - expect(resp.every((s) => s.type === TYPES.DE.name)).to.be.true; + expect(resp?.every((s) => s.type === TYPES.DE?.name)).to.be.true; } -export function assertDEBMeta(resp: CustomFileResponses, deb: 'A' | 'B') { +export function assertDEBMeta(resp: CustomFileResponses | undefined, deb: 'A' | 'B') { expect(resp).to.have.length(1); - resp[0].filePath = relative(process.cwd(), resp[0].filePath); + // if only to satisfy compiler - the assertion above ensures this is true + if (resp?.length && resp[0].filePath) { + resp[0].filePath = relative(process.cwd(), resp[0].filePath); - expect(resp[0]).to.include({ - type: TYPES.DEB.name, - fullName: DEBS[deb].FULL_NAME, - filePath: DEBS[deb].FILES.META.RELATIVE_PATH, - }); + expect(resp[0]).to.include({ + type: TYPES.DEB.name, + fullName: DEBS[deb].FULL_NAME, + filePath: DEBS[deb].FILES.META.RELATIVE_PATH, + }); + } } -export function assertViewHome(resp: CustomFileResponses, deb: 'A' | 'B') { +export function assertViewHome(resp: CustomFileResponses | undefined, deb: 'A' | 'B') { expect(resp).to.have.length(3); expect( - resp.map((s) => ({ + resp?.map((s) => ({ type: s.type, fullName: s.fullName, - filePath: relative(process.cwd(), s.filePath), + filePath: relative(process.cwd(), s.filePath as string), })) ).to.have.deep.members([ { - type: TYPES.DE.name, + type: TYPES.DE?.name, fullName: DEBS[deb].DE.VIEW_HOME.FULL_NAME, filePath: DEBS[deb].DE.VIEW_HOME.FILES.CONTENT.RELATIVE_PATH, }, { - type: TYPES.DE.name, + type: TYPES.DE?.name, fullName: DEBS[deb].DE.VIEW_HOME.FULL_NAME, filePath: DEBS[deb].DE.VIEW_HOME.FILES.FR_VARIANT.RELATIVE_PATH, }, { - type: TYPES.DE.name, + type: TYPES.DE?.name, fullName: DEBS[deb].DE.VIEW_HOME.FULL_NAME, filePath: DEBS[deb].DE.VIEW_HOME.FILES.META.RELATIVE_PATH, }, @@ -113,47 +116,48 @@ export function assertViewHome(resp: CustomFileResponses, deb: 'A' | 'B') { } export function assertViewHomeStatus( - resp: CustomFileResponses, + resp: CustomFileResponses | undefined, deb: 'A' | 'B', type: 'CONTENT' | 'META' | 'FR_VARIANT' ) { expect(resp).to.have.length(1); - resp[0].filePath = relative(process.cwd(), resp[0].filePath); - - expect(resp[0]).to.include({ - type: TYPES.DE.name, - fullName: DEBS[deb].DE.VIEW_HOME.FULL_NAME, - filePath: DEBS[deb].DE.VIEW_HOME.FILES[type].RELATIVE_PATH, - }); + if (resp) { + resp[0].filePath = relative(process.cwd(), resp[0].filePath as string); + expect(resp[0]).to.include({ + type: TYPES.DE?.name, + fullName: DEBS[deb].DE.VIEW_HOME.FULL_NAME, + filePath: DEBS[deb].DE.VIEW_HOME.FILES[type].RELATIVE_PATH, + }); + } } -export function assertDocumentDetailPageA(resp: CustomFileResponses) { +export function assertDocumentDetailPageA(resp?: CustomFileResponses) { expect(resp).to.have.length(4); expect( - resp.map((s) => ({ + resp?.map((s) => ({ type: s.type, fullName: s.fullName, - filePath: relative(process.cwd(), s.filePath), + filePath: relative(process.cwd(), s.filePath as string), })) ).to.have.deep.members([ { - type: TYPES.DE.name, + type: TYPES.DE?.name, fullName: FULL_NAMES.DE_VIEW_DOCUMENT_DETAIL_A, filePath: FILE_RELATIVE_PATHS.DE_VIEW_DOCUMENT_DETAIL_META_A, }, { - type: TYPES.DE.name, + type: TYPES.DE?.name, fullName: FULL_NAMES.DE_VIEW_DOCUMENT_DETAIL_A, filePath: FILE_RELATIVE_PATHS.DE_VIEW_DOCUMENT_DETAIL_CONTENT_A, }, { - type: TYPES.DE.name, + type: TYPES.DE?.name, fullName: FULL_NAMES.DE_ROUTE_DOCUMENT_DETAIL_A, filePath: FILE_RELATIVE_PATHS.DE_ROUTE_DOCUMENT_DETAIL_META_A, }, { - type: TYPES.DE.name, + type: TYPES.DE?.name, fullName: FULL_NAMES.DE_ROUTE_DOCUMENT_DETAIL_A, filePath: FILE_RELATIVE_PATHS.DE_ROUTE_DOCUMENT_DETAIL_CONTENT_A, }, @@ -162,10 +166,12 @@ export function assertDocumentDetailPageA(resp: CustomFileResponses) { export async function assertDocumentDetailPageADelete(session: TestSession, assertDeleteInLocal: boolean) { expect( - await isNameObsolete(session.orgs.get('default').username, TYPES.DE.name, FULL_NAMES.DE_VIEW_DOCUMENT_DETAIL_A) + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + await isNameObsolete(session.orgs.get('default')!.username!, TYPES.DE.name, FULL_NAMES.DE_VIEW_DOCUMENT_DETAIL_A) ).to.be.true; expect( - await isNameObsolete(session.orgs.get('default').username, TYPES.DE.name, FULL_NAMES.DE_ROUTE_DOCUMENT_DETAIL_A) + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + await isNameObsolete(session.orgs.get('default')!.username!, TYPES.DE.name, FULL_NAMES.DE_ROUTE_DOCUMENT_DETAIL_A) ).to.be.true; if (assertDeleteInLocal) { @@ -174,15 +180,20 @@ export async function assertDocumentDetailPageADelete(session: TestSession, asse } } -export function assertViewHomeFRVariantDelete(resp: CustomFileResponses, deb: 'A' | 'B', projectDir: string) { +export function assertViewHomeFRVariantDelete( + resp: CustomFileResponses | undefined, + deb: 'A' | 'B', + projectDir: string +) { expect(resp).to.have.length(2); const inboundFiles = execCmd( `force:source:retrieve --manifest ${DEBS[deb].DE.VIEW_HOME.MANIFEST} --json`, { ensureExitCode: 0, + cli: 'dev', } - ).jsonOutput.result.inboundFiles; + ).jsonOutput?.result.inboundFiles; expect(inboundFiles).to.have.length(2); expect(fs.existsSync(join(projectDir, DEBS[deb].DE.VIEW_HOME.FILES.FR_VARIANT.RELATIVE_PATH))).to.be.false; @@ -191,7 +202,8 @@ export function assertViewHomeFRVariantDelete(resp: CustomFileResponses, deb: 'A export function assertNoLocalChanges() { const statusResult = execCmd('force:source:status --local --json', { ensureExitCode: 0, - }).jsonOutput.result; + cli: 'dev', + }).jsonOutput?.result; expect(statusResult).to.deep.equal([]); } diff --git a/test/nuts/folderTypes.nut.ts b/test/nuts/folderTypes.nut.ts index 0d72e52ae..7afc4301c 100644 --- a/test/nuts/folderTypes.nut.ts +++ b/test/nuts/folderTypes.nut.ts @@ -9,8 +9,8 @@ import * as path from 'node:path'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; import { expect } from 'chai'; import { FileResponse } from '@salesforce/source-deploy-retrieve'; -import { DeployCommandResult } from '../../src/formatters/deployResultFormatter'; -import { RetrieveCommandResult } from '../../src/formatters/retrieveResultFormatter'; +import { DeployCommandResult } from '../../src/formatters/deployResultFormatter.js'; +import { RetrieveCommandResult } from '../../src/formatters/retrieveResultFormatter.js'; describe('metadata types that go in folders', () => { let session: TestSession; @@ -72,13 +72,15 @@ describe('metadata types that go in folders', () => { }, ]; - const getRelativeFileResponses = (resp: FileResponse[]) => - resp.map((s) => { + const getRelativeFileResponses = (resp?: FileResponse[]) => + resp?.map((s) => { // grab the last 2 directories with the file only - s.filePath = s.filePath.split(path.sep).slice(-3).join(path.sep); + s.filePath = s.filePath?.split(path.sep).slice(-3).join(path.sep); return s; }); + // `force:source:manifest:create` is now in PDR. + // we run this with `sf` to generate the manifest for the next tests it('can generate manifest for just the emailTemplates', () => { const pathToEmails = path.join('force-app', 'main', 'default', 'email'); execCmd(`force:source:manifest:create -p ${pathToEmails} --json`, { @@ -90,15 +92,15 @@ describe('metadata types that go in folders', () => { it('can deploy email templates via the manifest', () => { const deployResults = execCmd('force:source:deploy -x package.xml --json').jsonOutput; - expect(deployResults.status, JSON.stringify(deployResults)).to.equal(0); - const deployedSource = getRelativeFileResponses(deployResults.result.deployedSource); + expect(deployResults?.status, JSON.stringify(deployResults)).to.equal(0); + const deployedSource = getRelativeFileResponses(deployResults?.result.deployedSource); expect(deployedSource).to.have.deep.members(getExpectedSource('Created')); }); it('can retrieve email templates via the manifest', () => { const retrieveResults = execCmd('force:source:retrieve -x package.xml --json').jsonOutput; - expect(retrieveResults.status, JSON.stringify(retrieveResults)).to.equal(0); - const retrievedSource = getRelativeFileResponses(retrieveResults.result.inboundFiles); + expect(retrieveResults?.status, JSON.stringify(retrieveResults)).to.equal(0); + const retrievedSource = getRelativeFileResponses(retrieveResults?.result.inboundFiles); expect(retrievedSource).to.have.deep.members(getExpectedSource('Changed')); }); }); @@ -108,6 +110,8 @@ describe('metadata types that go in folders', () => { await fs.promises.unlink(path.join(session.project.dir, 'package.xml')); }); + // `force:source:manifest:create` is now in PDR. + // we run this with `sf` to generate the manifest for the next tests it('can generate manifest for just the reports', () => { expect(fs.existsSync(path.join(session.project.dir, 'package.xml'))).to.be.false; const pathToReports = path.join('force-app', 'main', 'default', 'reports'); @@ -119,11 +123,11 @@ describe('metadata types that go in folders', () => { }); it('can deploy reports via the manifest', () => { - execCmd('force:source:deploy -x package.xml --json', { ensureExitCode: 0 }); + execCmd('force:source:deploy -x package.xml --json', { ensureExitCode: 0, cli: 'dev' }); }); it('can retrieve reports via the manifest', () => { - execCmd('force:source:retrieve -x package.xml --json', { ensureExitCode: 0 }); + execCmd('force:source:retrieve -x package.xml --json', { ensureExitCode: 0, cli: 'dev' }); }); }); }); diff --git a/test/nuts/force.nut.ts b/test/nuts/force.nut.ts index bdadf96ca..b99cb62fe 100644 --- a/test/nuts/force.nut.ts +++ b/test/nuts/force.nut.ts @@ -20,13 +20,14 @@ describe('force command', () => { }); }); it('returns an apiVersion in JSON', () => { - const result = execCmd<{ apiVersion: string }>('force --json', { ensureExitCode: 0 }).jsonOutput.result; + const result = execCmd<{ apiVersion: string }>('force --json', { ensureExitCode: 0, cli: 'dev' }).jsonOutput + ?.result; expect(result).to.be.an('object').that.has.all.keys('apiVersion'); - expect(result.apiVersion).to.match(/^\d{2,}\.0$/); - expect(parseInt(result.apiVersion, 10)).to.be.greaterThan(53); + expect(result?.apiVersion).to.match(/^\d{2,}\.0$/); + expect(parseInt(result?.apiVersion ?? '', 10)).to.be.greaterThan(53); }); it('executes the cloud/links without JSON', () => { - const result = execCmd('force', { ensureExitCode: 0 }).shellOutput as string; + const result = execCmd('force', { ensureExitCode: 0, cli: 'dev' }).shellOutput as string; expect(result).to.include('Salesforce CLI Release Notes'); }); diff --git a/test/nuts/generateNuts.ts b/test/nuts/generateNuts.ts index d5edd95bc..25ff3fdad 100644 --- a/test/nuts/generateNuts.ts +++ b/test/nuts/generateNuts.ts @@ -5,15 +5,16 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; -import * as fs from 'node:fs'; -import { RepoConfig, TEST_REPOS_MAP } from './testMatrix'; +import path from 'node:path'; +import fs from 'node:fs'; +import { fileURLToPath } from 'node:url'; +import { RepoConfig, TEST_REPOS_MAP } from './testMatrix.js'; const SEED_FILTER = process.env.PLUGIN_SOURCE_SEED_FILTER || ''; const SEED_EXCLUDE = process.env.PLUGIN_SOURCE_SEED_EXCLUDE; function getSeedFiles(): string[] { - const seedDir = path.join(__dirname, 'seeds'); + const seedDir = path.join(path.dirname(fileURLToPath(import.meta.url)), 'seeds'); const files = fs.readdirSync(seedDir); return files .filter((f) => f.endsWith('.seed.ts')) @@ -31,12 +32,12 @@ function generateNut(generatedDir: string, seedName: string, seedContents: strin const nutFileName = repoName ? `${seedName}.${repoName}.nut.ts` : `${seedName}.nut.ts`; const nutFilePath = path.join(generatedDir, nutFileName); - const contents = seedContents.replace(/%REPO_URL%/g, repo?.gitUrl).replace(/%REPO_NAME%/g, repoName); + const contents = seedContents.replace(/%REPO_URL%/g, repo?.gitUrl ?? '').replace(/%REPO_NAME%/g, repoName); fs.writeFileSync(nutFilePath, contents); } function generateNuts(): void { - const generatedDir = path.resolve(__dirname, 'generated'); + const generatedDir = path.resolve(path.dirname(fileURLToPath(import.meta.url)), 'generated'); fs.rmSync(generatedDir, { recursive: true, force: true }); fs.mkdirSync(generatedDir, { recursive: true }); const seeds = getSeedFiles(); diff --git a/test/nuts/mdapi.nut.ts b/test/nuts/mdapi.nut.ts index 4daf47f9e..da9ecafc5 100644 --- a/test/nuts/mdapi.nut.ts +++ b/test/nuts/mdapi.nut.ts @@ -5,15 +5,18 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as fs from 'node:fs'; -import * as path from 'node:path'; +import fs from 'node:fs'; +import path from 'node:path'; import { expect } from 'chai'; import { execCmd, ExecCmdResult, TestSession } from '@salesforce/cli-plugins-testkit'; import { RequestStatus } from '@salesforce/source-deploy-retrieve'; -import { create as createArchive } from 'archiver'; -import { RetrieveCommandAsyncResult, RetrieveCommandResult } from '../../src/formatters/mdapi/retrieveResultFormatter'; -import { DeployCancelCommandResult } from '../../src/formatters/deployCancelResultFormatter'; -import { MdDeployResult } from '../../src/formatters/mdapi/mdDeployResultFormatter'; +import create from 'archiver'; +import { + RetrieveCommandAsyncResult, + RetrieveCommandResult, +} from '../../src/formatters/mdapi/retrieveResultFormatter.js'; +import { DeployCancelCommandResult } from '../../src/formatters/deployCancelResultFormatter.js'; +import { MdDeployResult } from '../../src/formatters/mdapi/mdDeployResultFormatter.js'; let session: TestSession; // must be skipped while source:convert is moved to PDR @@ -63,11 +66,11 @@ describe('1k files in mdapi:deploy', () => { const res = execCmd<{ checkOnly: boolean; done: boolean }>('force:mdapi:deploy -d mdapiFormat -w 100 --json', { ensureExitCode: 0, }).jsonOutput; - expect(res.status).to.equal(0); + expect(res?.status).to.equal(0); // check that the deploy actually happened, not just based on the exit code, otherwise something like // https://github.com/forcedotcom/cli/issues/1531 could happen - expect(res.result.checkOnly).to.be.false; - expect(res.result.done).to.be.true; + expect(res?.result.checkOnly).to.be.false; + expect(res?.result.done).to.be.true; }); }); describe('mdapi NUTs', () => { @@ -101,22 +104,22 @@ describe('mdapi NUTs', () => { }); describe('mdapi:deploy:cancel', () => { - const cancelAssertions = (deployId: string, result: ExecCmdResult): void => { - if (result.jsonOutput.status === 0) { + const cancelAssertions = (deployId: string | undefined, result: ExecCmdResult): void => { + if (result.jsonOutput?.status === 0) { // a successful cancel - const json = result.jsonOutput.result; + const json = result.jsonOutput?.result; expect(json).to.have.property('canceledBy'); expect(json).to.have.property('status'); expect(json.status).to.equal(RequestStatus.Canceled); expect(json.id).to.equal(deployId); - } else if (result.jsonOutput.status === 1 && result.jsonOutput.result) { + } else if (result.jsonOutput?.status === 1 && result.jsonOutput?.result) { // status = 1 because the deploy is in Succeeded status - const json = result.jsonOutput.result; + const json = result.jsonOutput?.result; expect(json.status).to.equal(RequestStatus.Succeeded); } else { // the other allowable error is that the server is telling us the deploy succeeded - expect(result.jsonOutput.name, JSON.stringify(result)).to.equal('CancelFailed'); - expect(result.jsonOutput.message, JSON.stringify(result)).to.equal( + expect(result.jsonOutput?.name, JSON.stringify(result)).to.equal('CancelFailed'); + expect(result.jsonOutput?.message, JSON.stringify(result)).to.equal( 'The cancel command failed due to: INVALID_ID_FIELD: Deployment already completed' ); } @@ -129,7 +132,7 @@ describe('mdapi NUTs', () => { ensureExitCode: 0, }).jsonOutput; const result = execCmd('force:mdapi:deploy:cancel --json'); - cancelAssertions(deploy.result.id, result); + cancelAssertions(deploy?.result.id, result); }); it('will cancel an mdapi deploy via the specified deploy id', () => { @@ -139,7 +142,7 @@ describe('mdapi NUTs', () => { ensureExitCode: 0, }).jsonOutput; const result = execCmd('force:mdapi:deploy:cancel --json'); - cancelAssertions(deploy.result.id, result); + cancelAssertions(deploy?.result.id, result); }); }); @@ -168,12 +171,12 @@ describe('mdapi NUTs', () => { // Verify unpackaged.zip exists in retrieveTargetDir const retrievedZip = fs.existsSync(retrieveTargetDirPath); expect(retrievedZip, 'retrieved zip was not in expected path').to.be.true; - const result = rv.jsonOutput.result; - expect(result.status).to.equal(RequestStatus.Succeeded); - expect(result.success).to.be.true; - expect(result.fileProperties).to.be.an('array').with.length.greaterThan(50); + const result = rv.jsonOutput?.result; + expect(result?.status).to.equal(RequestStatus.Succeeded); + expect(result?.success).to.be.true; + expect(result?.fileProperties).to.be.an('array').with.length.greaterThan(50); const zipFileLocation = path.join(retrieveTargetDirPath, 'unpackaged.zip'); - expect(result.zipFilePath).to.equal(zipFileLocation); + expect(result?.zipFilePath).to.equal(zipFileLocation); }); it('retrieves content from manifest using manifest api version', async () => { @@ -201,12 +204,12 @@ describe('mdapi NUTs', () => { // Verify unpackaged.zip exists in retrieveTargetDir const retrievedZip = fs.existsSync(retrieveTargetDirPath); expect(retrievedZip, 'retrieved zip was not in expected path').to.be.true; - const result = rv.jsonOutput.result; - expect(result.status).to.equal(RequestStatus.Succeeded); - expect(result.success).to.be.true; - expect(result.fileProperties).to.be.an('array').with.length.greaterThan(5); + const result = rv.jsonOutput?.result; + expect(result?.status).to.equal(RequestStatus.Succeeded); + expect(result?.success).to.be.true; + expect(result?.fileProperties).to.be.an('array').with.length.greaterThan(5); const zipFileLocation = path.join(retrieveTargetDirPath, 'unpackaged.zip'); - expect(result.zipFilePath).to.equal(zipFileLocation); + expect(result?.zipFilePath).to.equal(zipFileLocation); }); it('retrieves content with named zip and unzips', () => { @@ -225,12 +228,12 @@ describe('mdapi NUTs', () => { expect(unzipDir, 'retrieved zip was not extracted to expected path').to.be.true; expect(fs.readdirSync(extractPath)).to.deep.equal(['unpackaged']); expect(rv.jsonOutput, JSON.stringify(rv)).to.exist; - const result = rv.jsonOutput.result; - expect(result.status).to.equal(RequestStatus.Succeeded); - expect(result.success).to.be.true; - expect(result.fileProperties).to.be.an('array').with.length.greaterThan(5); + const result = rv.jsonOutput?.result; + expect(result?.status).to.equal(RequestStatus.Succeeded); + expect(result?.success).to.be.true; + expect(result?.fileProperties).to.be.an('array').with.length.greaterThan(5); const zipFileLocation = path.join(retrieveTargetDirPath, zipName); - expect(result.zipFilePath).to.equal(zipFileLocation); + expect(result?.zipFilePath).to.equal(zipFileLocation); }); }); @@ -242,7 +245,7 @@ describe('mdapi NUTs', () => { const rv1 = execCmd(retrieveCmd, { ensureExitCode: 0 }); expect(rv1.jsonOutput, JSON.stringify(rv1)).to.exist; - const result1 = rv1.jsonOutput.result; + const result1 = rv1.jsonOutput?.result; expect(result1).to.have.property('done', false); expect(result1).to.have.property('id'); expect(result1).to.have.property('state', 'Queued'); @@ -252,32 +255,31 @@ describe('mdapi NUTs', () => { // Async report, from stash let reportCmd = 'force:mdapi:retrieve:report -w 0 --json'; const rv2 = execCmd(reportCmd, { ensureExitCode: 0 }); - const result2 = rv2.jsonOutput.result; - - let syncResult: RetrieveCommandResult; + const result2 = rv2.jsonOutput?.result; + let syncResult: RetrieveCommandResult | undefined; // It's possible that the async retrieve request is already done, so account for that // and treat it like a sync result. - if (result2.done) { + if (result2?.done) { syncResult = result2 as unknown as RetrieveCommandResult; } else { - expect(result2).to.have.property('id', result1.id); + expect(result2).to.have.property('id', result1?.id); // To prevent flapping we expect 1 of 3 likely states. All depends // on how responsive the message queue is. - expect(result2.state).to.be.oneOf(['Queued', 'Pending', 'InProgress']); - expect(result2.status).to.be.oneOf(['Queued', 'Pending', 'InProgress']); + expect(result2?.state).to.be.oneOf(['Queued', 'Pending', 'InProgress']); + expect(result2?.status).to.be.oneOf(['Queued', 'Pending', 'InProgress']); expect(result2).to.have.property('timedOut', true); // Now sync report, from stash reportCmd = 'force:mdapi:retrieve:report -w 10 --json'; const rv3 = execCmd(reportCmd, { ensureExitCode: 0 }); - syncResult = rv3.jsonOutput.result; + syncResult = rv3.jsonOutput?.result; } - expect(syncResult.status).to.equal(RequestStatus.Succeeded); - expect(syncResult.success).to.be.true; - expect(syncResult.fileProperties).to.be.an('array').with.length.greaterThan(50); + expect(syncResult?.status).to.equal(RequestStatus.Succeeded); + expect(syncResult?.success).to.be.true; + expect(syncResult?.fileProperties).to.be.an('array').with.length.greaterThan(50); const zipFileLocation = path.join(retrieveTargetDirPath, 'unpackaged.zip'); - expect(syncResult.zipFilePath).to.equal(zipFileLocation); + expect(syncResult?.zipFilePath).to.equal(zipFileLocation); }); it('retrieves report (sync) with overrides of stash', () => { @@ -285,25 +287,24 @@ describe('mdapi NUTs', () => { const rv1 = execCmd(retrieveCmd, { ensureExitCode: 0 }); expect(rv1.jsonOutput, JSON.stringify(rv1)).to.exist; - const result1 = rv1.jsonOutput.result; - + const result1 = rv1.jsonOutput?.result; const name = 'dreamhouse'; const zipName = `${name}.zip`; const retrieveTargetDir = 'mdRetrieveReportOverrides'; const retrieveTargetDirPath = path.join(session.project.dir, retrieveTargetDir); const extractPath = path.join(retrieveTargetDirPath, name); - const reportCmd = `force:mdapi:retrieve:report -i ${result1.id} -z -n ${zipName} -r ${retrieveTargetDir} --json`; + const reportCmd = `force:mdapi:retrieve:report -i ${result1?.id} -z -n ${zipName} -r ${retrieveTargetDir} --json`; const rv2 = execCmd(reportCmd, { ensureExitCode: 0 }); expect(rv2.jsonOutput, JSON.stringify(rv2)).to.exist; - const result2 = rv2.jsonOutput.result; - expect(result2.status).to.equal(RequestStatus.Succeeded); - expect(result2.success).to.be.true; - expect(result2.id).to.equal(result1.id); - expect(result2.fileProperties).to.be.an('array').with.length.greaterThan(5); + const result2 = rv2.jsonOutput?.result; + expect(result2?.status).to.equal(RequestStatus.Succeeded); + expect(result2?.success).to.be.true; + expect(result2?.id).to.equal(result1?.id); + expect(result2?.fileProperties).to.be.an('array').with.length.greaterThan(5); const zipFileLocation = path.join(retrieveTargetDirPath, zipName); - expect(result2.zipFilePath).to.equal(zipFileLocation); + expect(result2?.zipFilePath).to.equal(zipFileLocation); const retrievedZip = fs.existsSync(path.join(retrieveTargetDirPath, zipName)); expect(retrievedZip, 'retrieved zip was not in expected path').to.be.true; const unzipDir = fs.existsSync(extractPath); @@ -311,29 +312,29 @@ describe('mdapi NUTs', () => { expect(fs.readdirSync(extractPath)).to.deep.equal(['unpackaged']); }); - it('retrieves report (sync) with all stashed params', () => { + it('retrieves ?report (sync) with all stashed params', () => { const name = 'dreamhouse'; const zipName = `${name}.zip`; - const retrieveTargetDir = 'mdRetrieveReportStash'; + const retrieveTargetDir = 'mdRetrieveReportStash.js'; + const retrieveTargetDirPath = path.join(session.project.dir, retrieveTargetDir); const extractPath = path.join(retrieveTargetDirPath, name); const retrieveCmd = `force:mdapi:retrieve -r ${retrieveTargetDir} -k ${manifestPath} -z -n ${zipName} --json -w 0`; const rv1 = execCmd(retrieveCmd, { ensureExitCode: 0 }); expect(rv1.jsonOutput, JSON.stringify(rv1)).to.exist; - const result1 = rv1.jsonOutput.result; - + const result1 = rv1.jsonOutput?.result; const reportCmd = 'force:mdapi:retrieve:report --json'; const rv2 = execCmd(reportCmd, { ensureExitCode: 0 }); expect(rv2.jsonOutput, JSON.stringify(rv2)).to.exist; - const result2 = rv2.jsonOutput.result; - expect(result2.status).to.equal(RequestStatus.Succeeded); - expect(result2.success).to.be.true; - expect(result2.id).to.equal(result1.id); - expect(result2.fileProperties).to.be.an('array').with.length.greaterThan(5); + const result2 = rv2.jsonOutput?.result; + expect(result2?.status).to.equal(RequestStatus.Succeeded); + expect(result2?.success).to.be.true; + expect(result2?.id).to.equal(result1?.id); + expect(result2?.fileProperties).to.be.an('array').with.length.greaterThan(5); const zipFileLocation = path.join(retrieveTargetDirPath, zipName); - expect(result2.zipFilePath).to.equal(zipFileLocation); + expect(result2?.zipFilePath).to.equal(zipFileLocation); const retrievedZip = fs.existsSync(path.join(retrieveTargetDirPath, zipName)); expect(retrievedZip, 'retrieved zip was not in expected path').to.be.true; const unzipDir = fs.existsSync(extractPath); @@ -349,7 +350,7 @@ describe('mdapi NUTs', () => { // make a mdapi directory from the project execCmd(`force:source:convert -p force-app --outputdir ${mdapiOut}`, { ensureExitCode: 0, cli: 'sf' }); // make a zip from that - const zip = createArchive('zip', { zlib: { level: 9 } }); + const zip = create('zip', { zlib: { level: 9 } }); const output = fs.createWriteStream(path.join(session.project.dir, `${mdapiOut}.zip`)); zip.pipe(output); // anywhere not at the root level is fine @@ -375,10 +376,10 @@ describe('mdapi NUTs', () => { ).jsonOutput; // this output is a change from mdapi:deploy:report which returned NOTHING after the progress bar - expect(reportCommandResponse.result, JSON.stringify(reportCommandResponse)).to.have.property('status'); + expect(reportCommandResponse?.result, JSON.stringify(reportCommandResponse)).to.have.property('status'); expect( [RequestStatus.Pending, RequestStatus.Succeeded, RequestStatus.Failed, RequestStatus.InProgress].includes( - reportCommandResponse.result.status + reportCommandResponse!.result.status ) ); }); @@ -420,16 +421,16 @@ describe('mdapi NUTs', () => { }); describe('Deploy directory using default org and request report using jobid parameter from a different org', () => { - let deployCommandResponse: MdDeployResult; + let deployCommandResponse: MdDeployResult | undefined; it('should deploy a directory', () => { deployCommandResponse = execCmd( 'force:mdapi:deploy --deploydir mdapiOut --json --soapdeploy', { ensureExitCode: 0 } - ).jsonOutput.result; + ).jsonOutput?.result; }); it('should fail report', () => { const errorReport = execCmd( - `force:mdapi:deploy:report --wait 200 --jobid ${deployCommandResponse.id} --targetusername nonDefaultOrg`, + `force:mdapi:deploy:report --wait 200 --jobid ${deployCommandResponse?.id} --targetusername nonDefaultOrg`, { ensureExitCode: 1 } ).shellOutput.stderr; expect(errorReport).to.include('INVALID_CROSS_REFERENCE_KEY: invalid cross reference id'); @@ -437,16 +438,16 @@ describe('mdapi NUTs', () => { }); describe('validate a deployment and deploy that', () => { - let deployCommandResponse: MdDeployResult; + let deployCommandResponse: MdDeployResult | undefined; it('should check-only deploy a directory with tests', () => { deployCommandResponse = execCmd( 'force:mdapi:deploy --deploydir mdapiOut --json --soapdeploy --checkonly --testlevel RunAllTestsInOrg --wait 100', { ensureExitCode: 0 } - ).jsonOutput.result; + ).jsonOutput?.result; }); it('should deploy validated Id', () => { execCmd( - `force:mdapi:deploy --wait -1 --validateddeployrequestid ${deployCommandResponse.id} --ignorewarnings -o`, + `force:mdapi:deploy --wait -1 --validateddeployrequestid ${deployCommandResponse?.id} --ignorewarnings -o`, { ensureExitCode: 0, } diff --git a/test/nuts/nestedLwc.nut.ts b/test/nuts/nestedLwc.nut.ts index 726d644a8..31c6637f8 100644 --- a/test/nuts/nestedLwc.nut.ts +++ b/test/nuts/nestedLwc.nut.ts @@ -5,11 +5,11 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; +import path from 'node:path'; import { expect } from 'chai'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; -import { DeployCommandResult } from '../../src/formatters/deployResultFormatter'; -import { PushResponse } from '../../src/formatters/source/pushResultFormatter'; +import { DeployCommandResult } from '../../src/formatters/deployResultFormatter.js'; +import { PushResponse } from '../../src/formatters/source/pushResultFormatter.js'; describe('Nested LWCs', () => { let session: TestSession; @@ -30,16 +30,17 @@ describe('Nested LWCs', () => { }); it('pushes nested LWC', () => { - const pushResults = execCmd('force:source:push --json', { ensureExitCode: 0 }).jsonOutput.result; - expect(pushResults.pushedSource.some((r) => r.fullName === 'cmpA')).to.be.true; - expect(pushResults.pushedSource.some((r) => r.fullName === 'cmpB')).to.be.true; + const pushResults = execCmd('force:source:push --json', { ensureExitCode: 0 }).jsonOutput?.result; + expect(pushResults?.pushedSource.some((r) => r.fullName === 'cmpA')).to.be.true; + expect(pushResults?.pushedSource.some((r) => r.fullName === 'cmpB')).to.be.true; }); it('deploys nested LWC', () => { - const deployResults = execCmd('force:source:deploy --json -p force-app', { ensureExitCode: 0 }) - .jsonOutput.result; - expect(deployResults.deployedSource.some((r) => r.fullName === 'cmpA')).to.be.true; - expect(deployResults.deployedSource.some((r) => r.fullName === 'cmpB')).to.be.true; + const deployResults = execCmd('force:source:deploy --json -p force-app', { + ensureExitCode: 0, + }).jsonOutput?.result; + expect(deployResults?.deployedSource.some((r) => r.fullName === 'cmpA')).to.be.true; + expect(deployResults?.deployedSource.some((r) => r.fullName === 'cmpB')).to.be.true; }); after(async () => { diff --git a/test/nuts/partialBundleDelete.nut.ts b/test/nuts/partialBundleDelete.nut.ts index 78d1cf640..14a18235b 100644 --- a/test/nuts/partialBundleDelete.nut.ts +++ b/test/nuts/partialBundleDelete.nut.ts @@ -4,8 +4,8 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; -import * as fs from 'node:fs'; +import path from 'node:path'; +import fs from 'node:fs'; import { expect } from 'chai'; import { TestSession, TestProject, execCmd } from '@salesforce/cli-plugins-testkit'; import { AuthInfo, Connection, SfProject } from '@salesforce/core'; @@ -17,9 +17,10 @@ import { MetadataApiRetrieve, RetrieveSetOptions, } from '@salesforce/source-deploy-retrieve'; -import { TestContext } from '@salesforce/core/lib/testSetup'; -import { RetrieveCommandResult } from '../../src/formatters/retrieveResultFormatter'; -import { Retrieve } from '../../src/commands/force/source/retrieve'; +import { TestContext } from '@salesforce/core/lib/testSetup.js'; + +import { RetrieveCommandResult } from '../../src/formatters/retrieveResultFormatter.js'; +import { Retrieve } from '../../src/commands/force/source/retrieve.js'; describe('Partial Bundle Delete Retrieves', () => { let session: TestSession; @@ -41,7 +42,7 @@ describe('Partial Bundle Delete Retrieves', () => { ], }); projectPath = path.join(session.project.dir, 'force-app', 'main', 'default'); - scratchOrgUsername = session.orgs.get('default').username; + scratchOrgUsername = session.orgs.get('default')?.username; }); after(async () => { @@ -74,7 +75,7 @@ describe('Partial Bundle Delete Retrieves', () => { // Create an actual connection to the org we created for the TestSession, then stub // retrieve() and checkRetrieveStatus() and others to simulate retrieving a partial bundle delete. const connection = await Connection.create({ - authInfo: await AuthInfo.create(session.orgs.get(scratchOrgUsername)), + authInfo: await AuthInfo.create(session.orgs.get(scratchOrgUsername ?? '')), }); sandbox .stub(SfProject.prototype, 'getDefaultPackage') @@ -97,7 +98,13 @@ describe('Partial Bundle Delete Retrieves', () => { ); return compSet; }); - const result = await Retrieve.run(['-p', forgotPasswordDE, '--json', '-o', scratchOrgUsername]); + const result: RetrieveCommandResult = await Retrieve.run([ + '-p', + forgotPasswordDE, + '--json', + '-o', + scratchOrgUsername ?? '', + ]); // SDR retrieval code should remove this file expect(fs.existsSync(forgotPasswordTranslationFile)).to.be.false; @@ -150,7 +157,7 @@ describe('Partial Bundle Delete Retrieves', () => { expect(inboundFiles).to.be.an('array').and.not.empty; // find the deleted entry for testFile.css - const deletedFileResponse = inboundFiles.find((fr) => fr.state === ComponentStatus.Deleted); + const deletedFileResponse = inboundFiles?.find((fr) => fr.state === ComponentStatus.Deleted); expect(deletedFileResponse).to.deep.equal({ fullName: 'pageTemplate_2_7_3', type: 'AuraDefinitionBundle', @@ -183,7 +190,7 @@ describe('Partial Bundle Delete Retrieves', () => { expect(inboundFiles).to.be.an('array').and.not.empty; // find the deleted entry for testFile.css - const deletedFileResponse = inboundFiles.find((fr) => fr.state === ComponentStatus.Deleted); + const deletedFileResponse = inboundFiles?.find((fr) => fr.state === ComponentStatus.Deleted); expect(deletedFileResponse).to.deep.equal({ fullName: 'propertyTile', type: 'LightningComponentBundle', diff --git a/test/nuts/seeds/deploy.async.seed.ts b/test/nuts/seeds/deploy.async.seed.ts index 732c00a32..fdc74444d 100644 --- a/test/nuts/seeds/deploy.async.seed.ts +++ b/test/nuts/seeds/deploy.async.seed.ts @@ -5,17 +5,18 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; import { SourceTestkit } from '@salesforce/source-testkit'; import { getBoolean, getString } from '@salesforce/ts-types'; -import { Result } from '@salesforce/source-testkit/lib/types'; +import { Result } from '@salesforce/source-testkit/lib/types.js'; import { execCmd } from '@salesforce/cli-plugins-testkit'; import { RequestStatus } from '@salesforce/source-deploy-retrieve'; import { expect } from 'chai'; -import { TEST_REPOS_MAP } from '../testMatrix'; -import { DeployCancelCommandResult } from '../../../src/formatters/deployCancelResultFormatter'; +import { RepoConfig, TEST_REPOS_MAP } from '../testMatrix.js'; +import { DeployCancelCommandResult } from '../../../src/formatters/deployCancelResultFormatter.js'; // DO NOT TOUCH. generateNuts.ts will insert these values -const REPO = TEST_REPOS_MAP.get('%REPO_URL%'); +const REPO = TEST_REPOS_MAP.get('%REPO_URL%') as RepoConfig; context('Async Deploy NUTs [name: %REPO_NAME%]', () => { let testkit: SourceTestkit; @@ -23,7 +24,7 @@ context('Async Deploy NUTs [name: %REPO_NAME%]', () => { before(async () => { testkit = await SourceTestkit.create({ repository: REPO.gitUrl, - nut: __filename, + nut: fileURLToPath(import.meta.url), }); // an initial deploy to initialize testkit source tracking await testkit.deploy({ args: `--sourcepath ${testkit.packageNames.join(',')}` }); @@ -52,19 +53,19 @@ context('Async Deploy NUTs [name: %REPO_NAME%]', () => { args: '--coverageformatters clover --junit', })) as Result<{ id: string; result: { id: string } }>; - testkit.expect.toHaveProperty(deploy.result, 'id'); - testkit.expect.toHavePropertyAndNotValue(deploy.result, 'status', 'Succeeded'); + testkit.expect.toHaveProperty(deploy?.result ?? {}, 'id'); + testkit.expect.toHavePropertyAndNotValue(deploy?.result ?? {}, 'status', 'Succeeded'); - const status = getBoolean(report.result, 'done'); + const status = getBoolean(report?.result, 'done'); if (status) { // if the deploy finished, expect changes and a 'succeeded' status - testkit.expect.toHavePropertyAndValue(report.result, 'status', 'Succeeded'); - testkit.expect.toHaveProperty(report.result, 'numberComponentsDeployed'); - testkit.expect.toHaveProperty(report.result, 'deployedSource'); - testkit.expect.toHaveProperty(report.result, 'deploys'); + testkit.expect.toHavePropertyAndValue(report?.result ?? {}, 'status', 'Succeeded'); + testkit.expect.toHaveProperty(report?.result ?? {}, 'numberComponentsDeployed'); + testkit.expect.toHaveProperty(report?.result ?? {}, 'deployedSource'); + testkit.expect.toHaveProperty(report?.result ?? {}, 'deploys'); } else { // the deploy could be InProgress, Pending, or Queued, at this point - expect(['Pending', 'InProgress', 'Queued']).to.include(getString(report.result, 'status')); + expect(['Pending', 'InProgress', 'Queued']).to.include(getString(report?.result, 'status')); await testkit.expect.filesToNotBeDeployed(testkit.packageGlobs); } }); @@ -77,25 +78,25 @@ context('Async Deploy NUTs [name: %REPO_NAME%]', () => { const deploy = await testkit.deploy({ args: `--sourcepath ${testkit.packageNames.join(',')} --wait 0`, }); - testkit.expect.toHaveProperty(deploy.result, 'id'); + testkit.expect.toHaveProperty(deploy?.result ?? {}, 'id'); - const result = execCmd(`force:source:deploy:cancel -i ${deploy.result.id} --json`); + const result = execCmd(`force:source:deploy:cancel -i ${deploy?.result.id} --json`); - if (result.jsonOutput.status === 0) { + if (result.jsonOutput?.status === 0) { // a successful cancel - const json = result.jsonOutput.result; + const json = result.jsonOutput?.result; expect(json).to.have.property('canceledBy'); expect(json).to.have.property('status'); expect(json.status).to.equal(RequestStatus.Canceled); - expect(json.id).to.equal(deploy.result.id); - } else if (result.jsonOutput.status === 1 && result.jsonOutput.result) { + expect(json.id).to.equal(deploy?.result?.id); + } else if (result.jsonOutput?.status === 1 && result.jsonOutput?.result) { // status = 1 because the deploy is in Succeeded status - const json = result.jsonOutput.result; - expect(json.status).to.equal(RequestStatus.Succeeded); + const json = result.jsonOutput?.result; + expect(json?.status).to.equal(RequestStatus.Succeeded); } else { // the other allowable error is that the server is telling us the deploy succeeded - expect(result.jsonOutput.name, JSON.stringify(result)).to.equal('CancelFailed'); - expect(result.jsonOutput.message, JSON.stringify(result)).to.equal( + expect(result.jsonOutput?.name, JSON.stringify(result)).to.equal('CancelFailed'); + expect(result.jsonOutput?.message, JSON.stringify(result)).to.equal( 'The cancel command failed due to: INVALID_ID_FIELD: Deployment already completed' ); } diff --git a/test/nuts/seeds/deploy.manifest.seed.ts b/test/nuts/seeds/deploy.manifest.seed.ts index 1a5d1e4da..dc8826662 100644 --- a/test/nuts/seeds/deploy.manifest.seed.ts +++ b/test/nuts/seeds/deploy.manifest.seed.ts @@ -5,14 +5,15 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; import { SourceTestkit } from '@salesforce/source-testkit'; import { get } from '@salesforce/ts-types'; import { FileResponse } from '@salesforce/source-deploy-retrieve'; -import { TEST_REPOS_MAP } from '../testMatrix'; +import { RepoConfig, TEST_REPOS_MAP } from '../testMatrix.js'; // DO NOT TOUCH. generateNuts.ts will insert these values -const REPO = TEST_REPOS_MAP.get('%REPO_URL%'); +const REPO = TEST_REPOS_MAP.get('%REPO_URL%') as RepoConfig; context('Deploy manifest NUTs [name: %REPO_NAME%]', () => { let testkit: SourceTestkit; @@ -20,7 +21,7 @@ context('Deploy manifest NUTs [name: %REPO_NAME%]', () => { before(async () => { testkit = await SourceTestkit.create({ repository: REPO.gitUrl, - nut: __filename, + nut: fileURLToPath(import.meta.url), }); // some deploys reference other metadata not included in the deploy, if it's not already in the org it will fail await testkit.deploy({ args: `--sourcepath ${testkit.packageNames.join(',')}` }); @@ -53,7 +54,7 @@ context('Deploy manifest NUTs [name: %REPO_NAME%]', () => { } it('should throw an error if the package.xml is not valid', async () => { - const deploy = await testkit.deploy({ args: '--manifest DOES_NOT_EXIST.xml', exitCode: 1 }); + const deploy = (await testkit.deploy({ args: '--manifest DOES_NOT_EXIST.xml', exitCode: 1 })) ?? {}; testkit.expect.errorToHaveName(deploy, 'SfError'); }); }); diff --git a/test/nuts/seeds/deploy.metadata.seed.ts b/test/nuts/seeds/deploy.metadata.seed.ts index da63e1845..a172fe206 100644 --- a/test/nuts/seeds/deploy.metadata.seed.ts +++ b/test/nuts/seeds/deploy.metadata.seed.ts @@ -5,13 +5,14 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; import { SourceTestkit } from '@salesforce/source-testkit'; import { get } from '@salesforce/ts-types'; import { FileResponse } from '@salesforce/source-deploy-retrieve'; -import { TEST_REPOS_MAP } from '../testMatrix'; +import { RepoConfig, TEST_REPOS_MAP } from '../testMatrix.js'; // DO NOT TOUCH. generateNuts.ts will insert these values -const REPO = TEST_REPOS_MAP.get('%REPO_URL%'); +const REPO = TEST_REPOS_MAP.get('%REPO_URL%') as RepoConfig; context('Deploy metadata NUTs [name: %REPO_NAME%]', () => { let testkit: SourceTestkit; @@ -19,7 +20,7 @@ context('Deploy metadata NUTs [name: %REPO_NAME%]', () => { before(async () => { testkit = await SourceTestkit.create({ repository: REPO.gitUrl, - nut: __filename, + nut: fileURLToPath(import.meta.url), }); // some deploys reference other metadata not included in the deploy, if it's not already in the org it will fail await testkit.deploy({ args: `--sourcepath ${testkit.packageNames.join(',')}` }); @@ -51,7 +52,7 @@ context('Deploy metadata NUTs [name: %REPO_NAME%]', () => { it('should throw an error if the metadata is not valid', async () => { const deploy = await testkit.deploy({ args: '--metadata DOES_NOT_EXIST', exitCode: 1 }); - testkit.expect.errorToHaveName(deploy, 'SfError'); + testkit.expect.errorToHaveName(deploy ?? {}, 'SfError'); }); it('should not deploy metadata outside of a package directory', async () => { diff --git a/test/nuts/seeds/deploy.quick.seed.ts b/test/nuts/seeds/deploy.quick.seed.ts index e2d51f979..df660e33d 100644 --- a/test/nuts/seeds/deploy.quick.seed.ts +++ b/test/nuts/seeds/deploy.quick.seed.ts @@ -5,13 +5,14 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; import { SourceTestkit } from '@salesforce/source-testkit'; import { get } from '@salesforce/ts-types'; import { FileResponse } from '@salesforce/source-deploy-retrieve'; -import { TEST_REPOS_MAP } from '../testMatrix'; +import { RepoConfig, TEST_REPOS_MAP } from '../testMatrix.js'; // DO NOT TOUCH. generateNuts.ts will insert these values -const REPO = TEST_REPOS_MAP.get('%REPO_URL%'); +const REPO = TEST_REPOS_MAP.get('%REPO_URL%') as RepoConfig; context('Quick Deploy NUTs [name: %REPO_NAME%] [exec: %EXECUTABLE%]', () => { let testkit: SourceTestkit; @@ -19,7 +20,7 @@ context('Quick Deploy NUTs [name: %REPO_NAME%] [exec: %EXECUTABLE%]', () => { before(async () => { testkit = await SourceTestkit.create({ repository: REPO.gitUrl, - nut: __filename, + nut: fileURLToPath(import.meta.url), }); }); @@ -39,15 +40,17 @@ context('Quick Deploy NUTs [name: %REPO_NAME%] [exec: %EXECUTABLE%]', () => { const checkOnly = await testkit.deploy({ args: `--sourcepath ${testkit.packageNames.join(',')} --testlevel RunLocalTests --checkonly --ignoreerrors`, }); - testkit.expect.toHaveProperty(checkOnly.result, 'id'); - await testkit.expect.filesToNotBeDeployed(testkit.packageGlobs); + if (checkOnly?.result) { + testkit.expect.toHaveProperty(checkOnly.result, 'id'); + await testkit.expect.filesToNotBeDeployed(testkit.packageGlobs); - const quickDeploy = await testkit.deploy({ - args: `--validateddeployrequestid ${checkOnly.result.id}`, - }); - testkit.expect.toHavePropertyAndValue(quickDeploy.result, 'status', 'Succeeded'); + const quickDeploy = await testkit.deploy({ + args: `--validateddeployrequestid ${checkOnly.result.id}`, + }); + testkit.expect.toHavePropertyAndValue(quickDeploy?.result ?? {}, 'status', 'Succeeded'); - const fileResponse = get(quickDeploy, 'result.deployedSource') as FileResponse[]; - await testkit.expect.filesToBeDeployedViaResult(testkit.packageGlobs, [], fileResponse); + const fileResponse = get(quickDeploy, 'result.deployedSource') as FileResponse[]; + await testkit.expect.filesToBeDeployedViaResult(testkit.packageGlobs, [], fileResponse); + } }); }); diff --git a/test/nuts/seeds/deploy.sourcepath.seed.ts b/test/nuts/seeds/deploy.sourcepath.seed.ts index 4c6d2377d..9a550b6fb 100644 --- a/test/nuts/seeds/deploy.sourcepath.seed.ts +++ b/test/nuts/seeds/deploy.sourcepath.seed.ts @@ -5,14 +5,15 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; import { SourceTestkit } from '@salesforce/source-testkit'; import { get } from '@salesforce/ts-types'; import { FileResponse } from '@salesforce/source-deploy-retrieve'; -import { TEST_REPOS_MAP } from '../testMatrix'; +import { RepoConfig, TEST_REPOS_MAP } from '../testMatrix.js'; // DO NOT TOUCH. generateNuts.ts will insert these values -const REPO = TEST_REPOS_MAP.get('%REPO_URL%'); +const REPO = TEST_REPOS_MAP.get('%REPO_URL%') as RepoConfig; context('Deploy sourcepath NUTs [name: %REPO_NAME%]', () => { let testkit: SourceTestkit; @@ -20,7 +21,7 @@ context('Deploy sourcepath NUTs [name: %REPO_NAME%]', () => { before(async () => { testkit = await SourceTestkit.create({ repository: REPO.gitUrl, - nut: __filename, + nut: fileURLToPath(import.meta.url), }); }); @@ -47,13 +48,13 @@ context('Deploy sourcepath NUTs [name: %REPO_NAME%]', () => { it('should throw an error if the sourcepath is not valid', async () => { const deploy = await testkit.deploy({ args: '--sourcepath DOES_NOT_EXIST', exitCode: 1 }); - testkit.expect.errorToHaveName(deploy, 'SfError'); + testkit.expect.errorToHaveName(deploy ?? {}, 'SfError'); try { // old message, can be removed after SDR strict mode PR is merged - testkit.expect.errorToHaveMessage(deploy, 'not a valid source file path'); + testkit.expect.errorToHaveMessage(deploy ?? {}, 'not a valid source file path'); } catch (e) { // new message - testkit.expect.errorToHaveMessage(deploy, 'File or folder not found'); + testkit.expect.errorToHaveMessage(deploy ?? {}, 'File or folder not found'); } }); }); diff --git a/test/nuts/seeds/deploy.testlevel.seed.ts b/test/nuts/seeds/deploy.testlevel.seed.ts index f4cdaa31e..1aa48dbd2 100644 --- a/test/nuts/seeds/deploy.testlevel.seed.ts +++ b/test/nuts/seeds/deploy.testlevel.seed.ts @@ -5,11 +5,12 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; import { SourceTestkit } from '@salesforce/source-testkit'; -import { TEST_REPOS_MAP } from '../testMatrix'; +import { RepoConfig, TEST_REPOS_MAP } from '../testMatrix.js'; // DO NOT TOUCH. generateNuts.ts will insert these values -const REPO = TEST_REPOS_MAP.get('%REPO_URL%'); +const REPO = TEST_REPOS_MAP.get('%REPO_URL%') as RepoConfig; context('Deploy testlevel NUTs [name: %REPO_NAME%]', () => { let testkit: SourceTestkit; @@ -17,7 +18,7 @@ context('Deploy testlevel NUTs [name: %REPO_NAME%]', () => { before(async () => { testkit = await SourceTestkit.create({ repository: REPO.gitUrl, - nut: __filename, + nut: fileURLToPath(import.meta.url), }); await testkit.deploy({ args: `--sourcepath ${testkit.packageNames.join(',')}` }); diff --git a/test/nuts/seeds/mpd.deploy.seed.ts b/test/nuts/seeds/mpd.deploy.seed.ts index 4bd7f15cc..21bde41a8 100644 --- a/test/nuts/seeds/mpd.deploy.seed.ts +++ b/test/nuts/seeds/mpd.deploy.seed.ts @@ -4,7 +4,8 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; import { SourceTestkit } from '@salesforce/source-testkit'; context('MPD Deploy NUTs', () => { @@ -13,7 +14,7 @@ context('MPD Deploy NUTs', () => { before(async () => { testkit = await SourceTestkit.create({ repository: 'https://github.com/salesforcecli/sample-project-multiple-packages.git', - nut: __filename, + nut: fileURLToPath(import.meta.url), }); }); diff --git a/test/nuts/seeds/mpd.retrieve.seed.ts b/test/nuts/seeds/mpd.retrieve.seed.ts index 3569464ef..3ebaaadb4 100644 --- a/test/nuts/seeds/mpd.retrieve.seed.ts +++ b/test/nuts/seeds/mpd.retrieve.seed.ts @@ -5,8 +5,9 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; -import * as fs from 'node:fs'; +import path from 'node:path'; +import fs from 'node:fs'; +import { fileURLToPath } from 'node:url'; import { Dictionary } from '@salesforce/ts-types'; import { SourceTestkit } from '@salesforce/source-testkit'; @@ -16,7 +17,7 @@ context('MPD Retrieve NUTs', () => { before(async () => { testkit = await SourceTestkit.create({ repository: 'https://github.com/salesforcecli/sample-project-multiple-packages.git', - nut: __filename, + nut: fileURLToPath(import.meta.url), }); await testkit.trackGlobs(testkit.packageGlobs); await testkit.deploy({ args: `--sourcepath ${testkit.packageNames.join(',')}` }); @@ -74,11 +75,8 @@ context('MPD Retrieve NUTs', () => { beforeEach(async () => { await Promise.all( - Object.entries(originalState).map(([filename, contents]) => testkit.writeFile(filename, contents)) + Object.entries(originalState).map(([filename, contents]) => testkit.writeFile(filename, contents as string)) ); - // for (const [filename, contents] of Object.entries(originalState)) { - // await testkit.writeFile(filename, contents); - // } }); describe('--metadata CustomLabels', () => { diff --git a/test/nuts/seeds/retrieve.manifest.seed.ts b/test/nuts/seeds/retrieve.manifest.seed.ts index 709db83a9..dd11717fa 100644 --- a/test/nuts/seeds/retrieve.manifest.seed.ts +++ b/test/nuts/seeds/retrieve.manifest.seed.ts @@ -5,13 +5,14 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; // DO NOT TOUCH. generateNuts.ts will insert these values import { SourceTestkit } from '@salesforce/source-testkit'; import { JsonMap } from '@salesforce/ts-types'; -import { TEST_REPOS_MAP } from '../testMatrix'; +import { RepoConfig, TEST_REPOS_MAP } from '../testMatrix.js'; // DO NOT TOUCH. generateNuts.ts will insert these values -const REPO = TEST_REPOS_MAP.get('%REPO_URL%'); +const REPO = TEST_REPOS_MAP.get('%REPO_URL%') as RepoConfig; context('Retrieve manifest NUTs [name: %REPO_NAME%]', () => { let testkit: SourceTestkit; @@ -19,7 +20,7 @@ context('Retrieve manifest NUTs [name: %REPO_NAME%]', () => { before(async () => { testkit = await SourceTestkit.create({ repository: REPO.gitUrl, - nut: __filename, + nut: fileURLToPath(import.meta.url), }); await testkit.trackGlobs(testkit.packageGlobs); await testkit.deploy({ args: `--sourcepath ${testkit.packageNames.join(',')}` }); @@ -41,7 +42,7 @@ context('Retrieve manifest NUTs [name: %REPO_NAME%]', () => { const convertDir = `convert_${i++}`; it(`should retrieve ${toRetrieve}`, async () => { // generate package.xml to use with the --manifest param - await testkit.convert({ args: `--sourcepath ${testCase.toRetrieve} --outputdir ${convertDir}`, cli: 'sf' }); + await testkit.convert({ cli: 'sf', args: `--sourcepath ${testCase.toRetrieve} --outputdir ${convertDir}` }); const packageXml = path.join(convertDir, 'package.xml'); await testkit.modifyLocalGlobs(testCase.toVerify); diff --git a/test/nuts/seeds/retrieve.metadata.seed.ts b/test/nuts/seeds/retrieve.metadata.seed.ts index 340107b7d..e0c0a36fe 100644 --- a/test/nuts/seeds/retrieve.metadata.seed.ts +++ b/test/nuts/seeds/retrieve.metadata.seed.ts @@ -5,13 +5,14 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; import { SourceTestkit } from '@salesforce/source-testkit'; import { JsonMap } from '@salesforce/ts-types'; -import { TEST_REPOS_MAP } from '../testMatrix'; +import { RepoConfig, TEST_REPOS_MAP } from '../testMatrix.js'; // DO NOT TOUCH. generateNuts.ts will insert these values -const REPO = TEST_REPOS_MAP.get('%REPO_URL%'); +const REPO = TEST_REPOS_MAP.get('%REPO_URL%') as RepoConfig; context('Retrieve metadata NUTs [name: %REPO_NAME%]', () => { let testkit: SourceTestkit; @@ -19,7 +20,7 @@ context('Retrieve metadata NUTs [name: %REPO_NAME%]', () => { before(async () => { testkit = await SourceTestkit.create({ repository: REPO.gitUrl, - nut: __filename, + nut: fileURLToPath(import.meta.url), }); await testkit.trackGlobs(testkit.packageGlobs); await testkit.deploy({ args: `--sourcepath ${testkit.packageNames.join(',')}` }); diff --git a/test/nuts/seeds/retrieve.packagenames.seed.ts b/test/nuts/seeds/retrieve.packagenames.seed.ts index 62363a877..6c92ae3a1 100644 --- a/test/nuts/seeds/retrieve.packagenames.seed.ts +++ b/test/nuts/seeds/retrieve.packagenames.seed.ts @@ -5,7 +5,8 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; import { SourceTestkit } from '@salesforce/source-testkit'; import { execCmd } from '@salesforce/cli-plugins-testkit'; @@ -18,7 +19,7 @@ context('Retrieve packagenames NUTs', () => { before(async () => { testkit = await SourceTestkit.create({ repository: 'https://github.com/salesforcecli/sample-project-multiple-packages.git', - nut: __filename, + nut: fileURLToPath(import.meta.url), }); await testkit.deploy({ args: `--sourcepath ${testkit.packageNames.join(',')}` }); }); diff --git a/test/nuts/seeds/retrieve.retrievetargetdir.seed.ts b/test/nuts/seeds/retrieve.retrievetargetdir.seed.ts index 3df7db993..b6622021f 100644 --- a/test/nuts/seeds/retrieve.retrievetargetdir.seed.ts +++ b/test/nuts/seeds/retrieve.retrievetargetdir.seed.ts @@ -5,12 +5,13 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ +import { fileURLToPath } from 'node:url'; import { SourceTestkit } from '@salesforce/source-testkit'; import { JsonMap } from '@salesforce/ts-types'; -import { TEST_REPOS_MAP } from '../testMatrix'; +import { RepoConfig, TEST_REPOS_MAP } from '../testMatrix.js'; // DO NOT TOUCH. generateNuts.ts will insert these values -const REPO = TEST_REPOS_MAP.get('%REPO_URL%'); +const REPO = TEST_REPOS_MAP.get('%REPO_URL%') as RepoConfig; context('Retrieve metadata NUTs [name: %REPO_NAME%]', () => { let testkit: SourceTestkit; @@ -18,7 +19,7 @@ context('Retrieve metadata NUTs [name: %REPO_NAME%]', () => { before(async () => { testkit = await SourceTestkit.create({ repository: REPO.gitUrl, - nut: __filename, + nut: fileURLToPath(import.meta.url), }); await testkit.trackGlobs(testkit.packageGlobs); await testkit.deploy({ args: `--sourcepath ${testkit.packageNames.join(',')}` }); @@ -44,7 +45,10 @@ context('Retrieve metadata NUTs [name: %REPO_NAME%]', () => { } it('should throw an error if the metadata is not valid', async () => { - const retrieve = (await testkit.retrieve({ args: '--retrievetargetdir targetdir --metadata DOES_NOT_EXIST', exitCode: 1 })) as JsonMap; + const retrieve = (await testkit.retrieve({ + args: '--retrievetargetdir targetdir --metadata DOES_NOT_EXIST', + exitCode: 1, + })) as JsonMap; testkit.expect.errorToHaveName(retrieve, 'SfError'); }); }); diff --git a/test/nuts/seeds/retrieve.sourcepath.seed.ts b/test/nuts/seeds/retrieve.sourcepath.seed.ts index 7c0adc3d8..a051a937a 100644 --- a/test/nuts/seeds/retrieve.sourcepath.seed.ts +++ b/test/nuts/seeds/retrieve.sourcepath.seed.ts @@ -5,13 +5,14 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; // DO NOT TOUCH. generateNuts.ts will insert these values import { SourceTestkit } from '@salesforce/source-testkit'; import { JsonMap } from '@salesforce/ts-types'; -import { TEST_REPOS_MAP } from '../testMatrix'; +import { RepoConfig, TEST_REPOS_MAP } from '../testMatrix.js'; // DO NOT TOUCH. generateNuts.ts will insert these values -const REPO = TEST_REPOS_MAP.get('%REPO_URL%'); +const REPO = TEST_REPOS_MAP.get('%REPO_URL%') as RepoConfig; context('Retrieve Sourcepath NUTs [name: %REPO_NAME%]', () => { let testkit: SourceTestkit; @@ -19,7 +20,7 @@ context('Retrieve Sourcepath NUTs [name: %REPO_NAME%]', () => { before(async () => { testkit = await SourceTestkit.create({ repository: REPO.gitUrl, - nut: __filename, + nut: fileURLToPath(import.meta.url), }); await testkit.trackGlobs(testkit.packageGlobs); await testkit.deploy({ args: `--sourcepath ${testkit.packageNames.join(',')}` }); diff --git a/test/nuts/territory2.nut.ts b/test/nuts/territory2.nut.ts index 119c686c1..26a4d57ce 100644 --- a/test/nuts/territory2.nut.ts +++ b/test/nuts/territory2.nut.ts @@ -4,12 +4,12 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as fs from 'node:fs'; -import * as path from 'node:path'; +import fs from 'node:fs'; +import path from 'node:path'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; import { expect } from 'chai'; -import { DeployCommandResult } from '../../src/formatters/deployResultFormatter'; -import { RetrieveCommandResult } from '../../src/formatters/retrieveResultFormatter'; +import { DeployCommandResult } from '../../src/formatters/deployResultFormatter.js'; +import { RetrieveCommandResult } from '../../src/formatters/retrieveResultFormatter.js'; describe('territories', () => { let session: TestSession; @@ -54,8 +54,8 @@ describe('territories', () => { it('deploy', () => { const deployResults = execCmd('force:source:deploy -x package.xml --json', { ensureExitCode: 0, - }).jsonOutput.result; - expect(deployResults.deployedSource.length).to.equal(8); + }).jsonOutput?.result; + expect(deployResults?.deployedSource.length).to.equal(8); }); it('retrieve without local metadata', async () => { @@ -64,8 +64,8 @@ describe('territories', () => { await fs.promises.mkdir(path.join(session.project.dir, 'force-app')); const retrieveResults = execCmd('force:source:retrieve -x package.xml --json', { ensureExitCode: 0, - }).jsonOutput.result; - expect(retrieveResults.inboundFiles).to.have.length(8); + }).jsonOutput?.result; + expect(retrieveResults?.inboundFiles).to.have.length(8); }); }); diff --git a/test/nuts/testMatrix.ts b/test/nuts/testMatrix.ts index 2b6f757c6..c726bbe6b 100644 --- a/test/nuts/testMatrix.ts +++ b/test/nuts/testMatrix.ts @@ -5,7 +5,7 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; +import path from 'node:path'; import { set, keyBy } from '@salesforce/kit'; import { get, getString, isString } from '@salesforce/ts-types'; @@ -250,6 +250,8 @@ const testRepos: RepoConfig[] = [ * 2. have normalized file paths */ export const TEST_REPOS_MAP = new Map( + // eslint-disable-next-line @typescript-eslint/ban-ts-comment + // @ts-ignore Object.entries(keyBy(normalizeFilePaths(testRepos), 'gitUrl')) ); diff --git a/test/nuts/trackingCommands/basics.nut.ts b/test/nuts/trackingCommands/basics.nut.ts index f42eca94d..b26d8de4d 100644 --- a/test/nuts/trackingCommands/basics.nut.ts +++ b/test/nuts/trackingCommands/basics.nut.ts @@ -5,15 +5,15 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; -import * as fs from 'node:fs'; +import path from 'node:path'; +import fs from 'node:fs'; import { expect } from 'chai'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; import { ComponentStatus, FileResponse } from '@salesforce/source-deploy-retrieve'; -import { PushResponse } from '../../../src/formatters/source/pushResultFormatter'; -import { StatusResult } from '../../../src/formatters/source/statusFormatter'; -import { PullResponse } from '../../../src/formatters/source/pullFormatter'; -import { itemsInEBikesPush } from './consts'; +import { PushResponse } from '../../../src/formatters/source/pushResultFormatter.js'; +import { StatusResult } from '../../../src/formatters/source/statusFormatter.js'; +import { PullResponse } from '../../../src/formatters/source/pullFormatter.js'; +import { itemsInEBikesPush } from './consts.js'; const filterIgnored = (r: StatusResult): boolean => r.ignored !== true; @@ -48,40 +48,40 @@ describe('end-to-end-test for tracking with an org (single packageDir)', () => { it('detects the initial metadata status', () => { const result = execCmd('force:source:status --json', { ensureExitCode: 0, - }).jsonOutput.result; + }).jsonOutput?.result; expect(result).to.be.an.instanceof(Array); // the fields should be populated - expect(result.every((row) => row.type && row.fullName)).to.equal(true); + expect(result?.every((row) => row.type && row.fullName)).to.equal(true); }); it('pushes the initial metadata to the org', () => { const resp = execCmd('force:source:push --json'); expect(resp.jsonOutput?.status, JSON.stringify(resp)).to.equal(0); - const pushedSource = resp.jsonOutput.result.pushedSource; + const pushedSource = resp.jsonOutput?.result.pushedSource; expect(pushedSource).to.be.an.instanceof(Array); expect(pushedSource, JSON.stringify(pushedSource)).to.have.lengthOf(itemsInEBikesPush); expect( - pushedSource.every((r) => r.state !== ComponentStatus.Failed), - JSON.stringify(pushedSource.filter((r) => r.state === ComponentStatus.Failed)) + pushedSource?.every((r) => r.state !== ComponentStatus.Failed), + JSON.stringify(pushedSource?.filter((r) => r.state === ComponentStatus.Failed)) ).to.equal(true); }); it('sees no local changes (all were committed from push), but profile updated in remote', () => { const localResult = execCmd('force:source:status --json --local', { ensureExitCode: 0, - }).jsonOutput.result; - expect(localResult.filter(filterIgnored)).to.deep.equal([]); + }).jsonOutput?.result; + expect(localResult?.filter(filterIgnored)).to.deep.equal([]); const remoteResult = execCmd('force:source:status --json --remote', { ensureExitCode: 0, - }).jsonOutput.result; - expect(remoteResult.some((item) => item.type === 'Profile')).to.equal(true); + }).jsonOutput?.result; + expect(remoteResult?.some((item) => item.type === 'Profile')).to.equal(true); }); it('can pull the remote profile', () => { const pullResult = execCmd('force:source:pull --json', { ensureExitCode: 0, - }).jsonOutput.result; + }).jsonOutput?.result; expect( - pullResult.pulledSource.some((item) => item.type === 'Profile'), + pullResult?.pulledSource.some((item) => item.type === 'Profile'), JSON.stringify(pullResult) ).to.equal(true); }); @@ -89,8 +89,8 @@ describe('end-to-end-test for tracking with an org (single packageDir)', () => { it('sees no local or remote changes', () => { const result = execCmd('force:source:status --json', { ensureExitCode: 0, - }).jsonOutput.result; - expect(result.filter((r) => r.type === 'Profile').filter(filterIgnored), JSON.stringify(result)).to.have.length( + }).jsonOutput?.result; + expect(result?.filter((r) => r.type === 'Profile').filter(filterIgnored), JSON.stringify(result)).to.have.length( 0 ); }); @@ -103,8 +103,8 @@ describe('end-to-end-test for tracking with an org (single packageDir)', () => { ]); const result = execCmd('force:source:status --json --local', { ensureExitCode: 0, - }).jsonOutput.result; - expect(result.filter(filterIgnored)).to.deep.equal([ + }).jsonOutput?.result; + expect(result?.filter(filterIgnored)).to.deep.equal([ { type: 'ApexClass', state: 'Local Deleted', @@ -128,9 +128,9 @@ describe('end-to-end-test for tracking with an org (single packageDir)', () => { it('does not see any change in remote status', () => { const result = execCmd('force:source:status --json --remote', { ensureExitCode: 0, - }).jsonOutput.result; + }).jsonOutput?.result; expect( - result.filter((r) => r.fullName === 'TestOrderController'), + result?.filter((r) => r.fullName === 'TestOrderController'), JSON.stringify(result) ).to.have.length(0); }); @@ -138,14 +138,14 @@ describe('end-to-end-test for tracking with an org (single packageDir)', () => { it('pushes the local delete to the org', () => { const result = execCmd('force:source:push --json', { ensureExitCode: 0, - }).jsonOutput.result.pushedSource; + }).jsonOutput?.result.pushedSource; expect(result, JSON.stringify(result)).to.be.an.instanceof(Array).with.length(2); }); it('sees no local changes', () => { const result = execCmd('force:source:status --json --local', { ensureExitCode: 0, - }).jsonOutput.result; - expect(result.filter(filterIgnored), JSON.stringify(result)).to.be.an.instanceof(Array).with.length(0); + }).jsonOutput?.result; + expect(result?.filter(filterIgnored), JSON.stringify(result)).to.be.an.instanceof(Array).with.length(0); }); }); @@ -154,7 +154,7 @@ describe('end-to-end-test for tracking with an org (single packageDir)', () => { const hubUsername = execCmd<[{ location: string; value: string }]>( 'force:config:get defaultdevhubusername --json', { silent: true, cli: 'sf' } - ).jsonOutput.result.find((config) => config.location === 'Local').value; + ).jsonOutput?.result.find((config) => config.location === 'Local')?.value; const failure = execCmd(`force:source:status -u ${hubUsername} --remote --json`, { ensureExitCode: 1, }).jsonOutput as unknown as { name: string }; @@ -215,8 +215,8 @@ describe('end-to-end-test for tracking with an org (single packageDir)', () => { it('sees no local changes', () => { const result = execCmd('force:source:status --json --local', { ensureExitCode: 0, - }).jsonOutput.result; - expect(result.filter(filterIgnored), JSON.stringify(result)).to.be.an.instanceof(Array).with.length(2); + }).jsonOutput?.result; + expect(result?.filter(filterIgnored), JSON.stringify(result)).to.be.an.instanceof(Array).with.length(2); }); }); }); diff --git a/test/nuts/trackingCommands/conflicts.nut.ts b/test/nuts/trackingCommands/conflicts.nut.ts index b39bdd4f3..25dffc532 100644 --- a/test/nuts/trackingCommands/conflicts.nut.ts +++ b/test/nuts/trackingCommands/conflicts.nut.ts @@ -8,17 +8,17 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ -import * as path from 'node:path'; -import * as fs from 'node:fs'; +import path from 'node:path'; +import fs from 'node:fs'; import { expect } from 'chai'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; import { AuthInfo, Connection } from '@salesforce/core'; import { ComponentStatus } from '@salesforce/source-deploy-retrieve'; -import { PushResponse } from '../../../src/formatters/source/pushResultFormatter'; -import { StatusResult } from '../../../src/formatters/source/statusFormatter'; -import { PullResponse } from '../../../src/formatters/source/pullFormatter'; -import { itemsInEBikesPush } from './consts'; +import { PushResponse } from '../../../src/formatters/source/pushResultFormatter.js'; +import { StatusResult } from '../../../src/formatters/source/statusFormatter.js'; +import { PullResponse } from '../../../src/formatters/source/pullFormatter.js'; +import { itemsInEBikesPush } from './consts.js'; let session: TestSession; describe('conflict detection and resolution', () => { @@ -45,18 +45,18 @@ describe('conflict detection and resolution', () => { it('pushes to initiate the remote', () => { const pushResult = execCmd('force:source:push --json'); expect(pushResult.jsonOutput?.status, JSON.stringify(pushResult)).equals(0); - const pushedSource = pushResult.jsonOutput.result.pushedSource; + const pushedSource = pushResult.jsonOutput?.result.pushedSource; expect(pushedSource, JSON.stringify(pushedSource)).to.have.lengthOf(itemsInEBikesPush); expect( - pushedSource.every((r) => r.state !== ComponentStatus.Failed), - JSON.stringify(pushedSource.filter((r) => r.state === ComponentStatus.Failed)) + pushedSource?.every((r) => r.state !== ComponentStatus.Failed), + JSON.stringify(pushedSource?.filter((r) => r.state === ComponentStatus.Failed)) ).to.equal(true); }); it('edits a remote file', async () => { const conn = await Connection.create({ authInfo: await AuthInfo.create({ - username: session.orgs.get('default').username, + username: session.orgs.get('default')?.username, }), }); const app = await conn.singleRecordQuery<{ Id: string; Metadata: any }>( @@ -74,9 +74,9 @@ describe('conflict detection and resolution', () => { }); const result = execCmd('force:source:status --json --remote', { ensureExitCode: 0, - }).jsonOutput.result; + }).jsonOutput?.result; expect( - result.filter((r) => r.type === 'CustomApplication'), + result?.filter((r) => r.type === 'CustomApplication'), JSON.stringify(result) ).to.have.lengthOf(1); }); @@ -97,7 +97,7 @@ describe('conflict detection and resolution', () => { it('can see the conflict in status', () => { const result = execCmd('force:source:status --json', { ensureExitCode: 0, - }).jsonOutput.result.filter((app) => app.type === 'CustomApplication'); + }).jsonOutput?.result.filter((app) => app.type === 'CustomApplication'); // json is not sorted. This relies on the implementation of getConflicts() expect(result).to.deep.equal([ { @@ -135,7 +135,7 @@ describe('conflict detection and resolution', () => { ); // Ensure JSON structure on push errors const json = pushResponse.jsonOutput; - expect(json.data).to.deep.equal([ + expect(json?.data).to.deep.equal([ { state: 'Conflict', fullName: 'EBikes', @@ -143,13 +143,13 @@ describe('conflict detection and resolution', () => { filePath, }, ]); - expect(json.code).to.equal(1); - expect(json.exitCode).to.equal(1); - expect(json.status).to.equal(1); - expect(json.name).to.equal('sourceConflictDetected'); - expect(json.message).to.include("We couldn't complete the operation due to conflicts."); - expect(json.stack).to.include('sourceConflictDetected'); - expect(json.context).to.equal('Push'); + expect(json?.code).to.equal(1); + expect(json?.exitCode).to.equal(1); + expect(json?.status).to.equal(1); + expect(json?.name).to.equal('sourceConflictDetected'); + expect(json?.message).to.include("We couldn't complete the operation due to conflicts."); + expect(json?.stack).to.include('sourceConflictDetected'); + expect(json?.context).to.equal('Push'); // @ts-expect-error it's SfCommand.Error expect(json.commandName).to.include('Push'); }); diff --git a/test/nuts/trackingCommands/customLabels.nut.ts b/test/nuts/trackingCommands/customLabels.nut.ts index b187d1c33..b276efa4a 100644 --- a/test/nuts/trackingCommands/customLabels.nut.ts +++ b/test/nuts/trackingCommands/customLabels.nut.ts @@ -5,14 +5,14 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; -import * as fs from 'node:fs'; +import path from 'node:path'; +import fs from 'node:fs'; import { expect } from 'chai'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; import { AuthInfo, Connection } from '@salesforce/core'; -import { PushResponse } from '../../../src/formatters/source/pushResultFormatter'; -import { PullResponse } from '../../../src/formatters/source/pullFormatter'; +import { PushResponse } from '../../../src/formatters/source/pushResultFormatter.js'; +import { PullResponse } from '../../../src/formatters/source/pullFormatter.js'; let session: TestSession; describe('CustomLabel source tracking', () => { @@ -51,7 +51,7 @@ describe('CustomLabel source tracking', () => { ); const conn = await Connection.create({ authInfo: await AuthInfo.create({ - username: session.orgs.get('default').username, + username: session.orgs.get('default')?.username, }), }); const id = ( @@ -62,10 +62,11 @@ describe('CustomLabel source tracking', () => { await conn.tooling.sobject('CustomLabel').delete(id); expect((await conn.tooling.query('SELECT Id FROM CustomLabel')).totalSize).to.equal(2); - const result = execCmd('force:source:pull -f --json', { ensureExitCode: 0 }).jsonOutput.result; - expect(result.pulledSource.length).to.equal(1); - expect(result.pulledSource[0].state).to.equal('Deleted'); - expect(result.pulledSource[0].fullName).to.equal('DeleteMe'); + const result = execCmd('force:source:pull -f --json', { ensureExitCode: 0, cli: 'dev' }).jsonOutput + ?.result; + expect(result?.pulledSource.length).to.equal(1); + expect(result?.pulledSource[0].state).to.equal('Deleted'); + expect(result?.pulledSource[0].fullName).to.equal('DeleteMe'); expect(fs.existsSync(clFile)).to.be.true; expect(fs.readFileSync(clFile, { encoding: 'utf-8' })).to.not.include('DeleteMe'); expect(fs.readFileSync(clFile, { encoding: 'utf-8' })).to.include('KeepMe1'); @@ -82,7 +83,7 @@ describe('CustomLabel source tracking', () => { ); const conn = await Connection.create({ authInfo: await AuthInfo.create({ - username: session.orgs.get('default').username, + username: session.orgs.get('default')?.username, }), }); const ids = (await conn.tooling.query<{ Id: string }>('SELECT Id FROM CustomLabel')).records.map((r) => r.Id); diff --git a/test/nuts/trackingCommands/deployRetrieveDelete.nut.ts b/test/nuts/trackingCommands/deployRetrieveDelete.nut.ts index e0fc047f9..38a390bc5 100644 --- a/test/nuts/trackingCommands/deployRetrieveDelete.nut.ts +++ b/test/nuts/trackingCommands/deployRetrieveDelete.nut.ts @@ -5,13 +5,13 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; +import path from 'node:path'; import { expect } from 'chai'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; import { ComponentStatus } from '@salesforce/source-deploy-retrieve'; -import { StatusResult } from '../../../src/formatters/source/statusFormatter'; -import { RetrieveCommandResult } from '../../../src/formatters/retrieveResultFormatter'; -import { DeployCommandResult } from '../../../src/formatters/deployResultFormatter'; +import { StatusResult } from '../../../src/formatters/source/statusFormatter.js'; +import { RetrieveCommandResult } from '../../../src/formatters/retrieveResultFormatter.js'; +import { DeployCommandResult } from '../../../src/formatters/deployResultFormatter.js'; let session: TestSession; describe('-t flag for deploy, retrieve, and delete', () => { @@ -39,32 +39,32 @@ describe('-t flag for deploy, retrieve, and delete', () => { it('detects the initial metadata status', () => { const result = execCmd('force:source:status --json', { ensureExitCode: 0, - }).jsonOutput.result; + }).jsonOutput?.result; expect(result).to.be.an.instanceof(Array); // the fields should be populated - expect(result.every((row) => row.type && row.fullName)).to.equal(true); + expect(result?.every((row) => row.type && row.fullName)).to.equal(true); }); it('deploy the initial metadata to the org with tracking', () => { const result = execCmd('force:source:deploy -p force-app,my-app,foo-bar/app -t --json', { ensureExitCode: 0, - }).jsonOutput.result; - expect(result.deployedSource).to.be.an.instanceof(Array); - expect(result.deployedSource, JSON.stringify(result)).to.have.length.greaterThan(10); + }).jsonOutput?.result; + expect(result?.deployedSource).to.be.an.instanceof(Array); + expect(result?.deployedSource, JSON.stringify(result)).to.have.length.greaterThan(10); expect( - result.deployedSource.every((r) => r.state !== ComponentStatus.Failed), + result?.deployedSource.every((r) => r.state !== ComponentStatus.Failed), JSON.stringify(result) ).to.equal(true); }); it('sees no local changes (all were committed from deploy), but profile updated in remote', () => { const localResult = execCmd('force:source:status --json --local', { ensureExitCode: 0, - }).jsonOutput.result; + }).jsonOutput?.result; expect(localResult).to.deep.equal([]); const remoteResult = execCmd('force:source:status --json --remote', { ensureExitCode: 0, - }).jsonOutput.result; - expect(remoteResult.some((item) => item.type === 'Profile')).to.equal(true); + }).jsonOutput?.result; + expect(remoteResult?.some((item) => item.type === 'Profile')).to.equal(true); }); }); describe('retrieve and status', () => { @@ -73,7 +73,7 @@ describe('-t flag for deploy, retrieve, and delete', () => { ensureExitCode: 0, }).jsonOutput?.result; expect( - retrieveResult.inboundFiles.some((item) => item.type === 'Profile'), + retrieveResult?.inboundFiles.some((item) => item.type === 'Profile'), JSON.stringify(retrieveResult) ).to.equal(true); }); @@ -81,9 +81,9 @@ describe('-t flag for deploy, retrieve, and delete', () => { it('sees no local or remote changes', () => { const result = execCmd('force:source:status --json', { ensureExitCode: 0, - }).jsonOutput.result; + }).jsonOutput?.result; expect( - result.filter((r) => r.type === 'Profile'), + result?.filter((r) => r.type === 'Profile'), JSON.stringify(result) ).to.have.length(0); }); @@ -96,7 +96,7 @@ describe('-t flag for deploy, retrieve, and delete', () => { }); execCmd( - `force:source:deploy -p force-app,my-app,foo-bar/app -o -u ${session.orgs.get('default').username} --json`, + `force:source:deploy -p force-app,my-app,foo-bar/app -o -u ${session.orgs.get('default')?.username} --json`, { ensureExitCode: 0, } @@ -104,7 +104,7 @@ describe('-t flag for deploy, retrieve, and delete', () => { execCmd( `force:source:deploy -p force-app,my-app,foo-bar/app -o --targetusername ${ - session.orgs.get('default').username + session.orgs.get('default')?.username } --json`, { ensureExitCode: 0, @@ -113,7 +113,7 @@ describe('-t flag for deploy, retrieve, and delete', () => { execCmd( `force:source:deploy -p force-app,my-app,foo-bar/app -o --target-org ${ - session.orgs.get('default').username + session.orgs.get('default')?.username } --json`, { ensureExitCode: 0, diff --git a/test/nuts/trackingCommands/forceIgnore.nut.ts b/test/nuts/trackingCommands/forceIgnore.nut.ts index 33e9b34c6..1cee3bb10 100644 --- a/test/nuts/trackingCommands/forceIgnore.nut.ts +++ b/test/nuts/trackingCommands/forceIgnore.nut.ts @@ -9,16 +9,16 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ -import * as path from 'node:path'; -import * as fs from 'node:fs'; +import path from 'node:path'; +import fs from 'node:fs'; import { expect } from 'chai'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; import { AuthInfo, Connection } from '@salesforce/core'; import { ComponentStatus } from '@salesforce/source-deploy-retrieve'; -import { PushResponse } from '../../../src/formatters/source/pushResultFormatter'; -import { PullResponse } from '../../../src/formatters/source/pullFormatter'; -import { StatusResult } from '../../../src/formatters/source/statusFormatter'; +import { PushResponse } from '../../../src/formatters/source/pushResultFormatter.js'; +import { PullResponse } from '../../../src/formatters/source/pullFormatter.js'; +import { StatusResult } from '../../../src/formatters/source/statusFormatter.js'; let session: TestSession; const classdir = 'force-app/main/default/classes'; @@ -46,7 +46,7 @@ describe('forceignore changes', () => { originalForceIgnore = await fs.promises.readFile(path.join(session.project.dir, '.forceignore'), 'utf8'); conn = await Connection.create({ authInfo: await AuthInfo.create({ - username: session.orgs.get('default').username, + username: session.orgs.get('default')?.username, }), }); }); @@ -64,14 +64,14 @@ describe('forceignore changes', () => { // nothing should push const output = execCmd('force:source:push --json', { ensureExitCode: 0, - }).jsonOutput.result.pushedSource; + }).jsonOutput?.result.pushedSource; expect(output).to.deep.equal([]); }); it('shows the file in status as ignored', () => { const output = execCmd('force:source:status --json', { ensureExitCode: 0, - }).jsonOutput.result; + }).jsonOutput?.result; expect(output, JSON.stringify(output)).to.deep.include({ state: 'Local Add', fullName: 'IgnoreTest', @@ -99,7 +99,7 @@ describe('forceignore changes', () => { // pushes with no results const ignoredOutput = execCmd('force:source:push --json', { ensureExitCode: 0, - }).jsonOutput.result.pushedSource; + }).jsonOutput?.result.pushedSource; // nothing should have been pushed expect(ignoredOutput).to.deep.equal([]); }); @@ -111,11 +111,11 @@ describe('forceignore changes', () => { // verify file pushed in results const unIgnoredOutput = execCmd('force:source:push --json', { ensureExitCode: 0, - }).jsonOutput.result.pushedSource; + }).jsonOutput?.result.pushedSource; // all 4 files should have been pushed expect(unIgnoredOutput).to.have.length(4); - unIgnoredOutput.map((result) => { + unIgnoredOutput?.map((result) => { expect(result.type === 'ApexClass'); expect(result.state === ComponentStatus.Created); }); @@ -144,14 +144,14 @@ describe('forceignore changes', () => { // gets file into source tracking const statusOutput = execCmd('force:source:status --json --remote', { ensureExitCode: 0, - }).jsonOutput.result; - expect(statusOutput.some((result) => result.fullName === 'CreatedClass')).to.equal(true); + }).jsonOutput?.result; + expect(statusOutput?.some((result) => result.fullName === 'CreatedClass')).to.equal(true); // pull doesn't retrieve that change const pullOutput = execCmd('force:source:pull --json', { ensureExitCode: 0, - }).jsonOutput.result; - expect(pullOutput.pulledSource.some((result) => result.fullName === 'CreatedClass')).to.equal(false); + }).jsonOutput?.result; + expect(pullOutput?.pulledSource.some((result) => result.fullName === 'CreatedClass')).to.equal(false); }); }); }); diff --git a/test/nuts/trackingCommands/lwc.nut.ts b/test/nuts/trackingCommands/lwc.nut.ts index 0fd4bace0..15885d4dc 100644 --- a/test/nuts/trackingCommands/lwc.nut.ts +++ b/test/nuts/trackingCommands/lwc.nut.ts @@ -5,13 +5,13 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; -import * as fs from 'node:fs'; +import path from 'node:path'; +import fs from 'node:fs'; import { expect } from 'chai'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; import { ComponentStatus } from '@salesforce/source-deploy-retrieve'; -import { PushResponse } from '../../../src/formatters/source/pushResultFormatter'; -import { StatusResult } from '../../../src/formatters/source/statusFormatter'; +import { PushResponse } from '../../../src/formatters/source/pushResultFormatter.js'; +import { StatusResult } from '../../../src/formatters/source/statusFormatter.js'; let session: TestSession; let cssPathAbsolute: string; @@ -55,23 +55,23 @@ describe('lwc', () => { ); const result = execCmd('force:source:status --json', { ensureExitCode: 0, - }).jsonOutput.result; - expect(result.find((r) => r.filePath === cssPathRelative)).to.have.property('actualState', 'Changed'); + }).jsonOutput?.result; + expect(result?.find((r) => r.filePath === cssPathRelative)).to.have.property('actualState', 'Changed'); }); it('pushes lwc css change', () => { const result = execCmd('force:source:push --json', { ensureExitCode: 0, - }).jsonOutput.result.pushedSource; + }).jsonOutput?.result.pushedSource; // we get a result for each bundle member, even though only one changed - expect(result.filter((r) => r.fullName === 'heroDetails')).to.have.length(4); + expect(result?.filter((r) => r.fullName === 'heroDetails')).to.have.length(4); }); it('sees no local changes', () => { const result = execCmd('force:source:status --json', { ensureExitCode: 0, }) - .jsonOutput.result.filter((r) => r.origin === 'Local') + .jsonOutput?.result.filter((r) => r.origin === 'Local') .filter(filterIgnored); expect(result).to.have.length(0); }); @@ -81,7 +81,7 @@ describe('lwc', () => { const result = execCmd('force:source:status --json', { ensureExitCode: 0, }) - .jsonOutput.result.filter(filterIgnored) + .jsonOutput?.result.filter(filterIgnored) .find((r) => r.filePath === cssPathRelative); expect(result).to.deep.equal({ fullName: 'heroDetails', @@ -98,18 +98,18 @@ describe('lwc', () => { it('pushes lwc subcomponent delete', () => { const result = execCmd('force:source:push --json', { ensureExitCode: 0, - }).jsonOutput.result.pushedSource; - const bundleMembers = result.filter((r) => r.fullName === 'heroDetails'); + }).jsonOutput?.result.pushedSource; + const bundleMembers = result?.filter((r) => r.fullName === 'heroDetails'); expect(bundleMembers).to.have.length(4); - expect(bundleMembers.filter((r) => r.state === ComponentStatus.Deleted)).to.have.length(1); - expect(bundleMembers.filter((r) => r.state === ComponentStatus.Changed)).to.have.length(3); + expect(bundleMembers?.filter((r) => r.state === ComponentStatus.Deleted)).to.have.length(1); + expect(bundleMembers?.filter((r) => r.state === ComponentStatus.Changed)).to.have.length(3); }); it('sees no local changes', () => { const result = execCmd('force:source:status --json', { ensureExitCode: 0, }) - .jsonOutput.result.filter((r) => r.origin === 'Local') + .jsonOutput?.result.filter((r) => r.origin === 'Local') .filter(filterIgnored); expect(result).to.have.length(0); }); @@ -129,21 +129,21 @@ describe('lwc', () => { ); const result = execCmd('force:source:status --json', { ensureExitCode: 0, - }).jsonOutput.result.filter((r) => r.origin === 'Local'); - expect(result.filter(filterIgnored)).to.have.length(4); - expect(result.filter(filterIgnored).filter((r) => r.actualState === 'Deleted')).to.have.length(3); - expect(result.filter(filterIgnored).filter((r) => r.actualState === 'Changed')).to.have.length(1); + }).jsonOutput?.result.filter((r) => r.origin === 'Local'); + expect(result?.filter(filterIgnored)).to.have.length(4); + expect(result?.filter(filterIgnored).filter((r) => r.actualState === 'Deleted')).to.have.length(3); + expect(result?.filter(filterIgnored).filter((r) => r.actualState === 'Changed')).to.have.length(1); }); it('push deletes the LWC remotely', () => { const result = execCmd('force:source:push --json', { ensureExitCode: 0, - }).jsonOutput.result.pushedSource; + }).jsonOutput?.result.pushedSource; // there'll also be changes for the changed Hero component html, but we've already tested changing a bundle member - const bundleMembers = result.filter((r) => r.fullName === 'heroDetails'); + const bundleMembers = result?.filter((r) => r.fullName === 'heroDetails'); expect(bundleMembers).to.have.length(3); expect( - bundleMembers.every((r) => r.state === ComponentStatus.Deleted), + bundleMembers?.every((r) => r.state === ComponentStatus.Deleted), JSON.stringify(bundleMembers, undefined, 2) ).to.be.true; }); @@ -152,7 +152,7 @@ describe('lwc', () => { const result = execCmd('force:source:status --json', { ensureExitCode: 0, }) - .jsonOutput.result.filter((r) => r.origin === 'Local') + .jsonOutput?.result.filter((r) => r.origin === 'Local') .filter(filterIgnored); expect(result).to.have.length(0); }); diff --git a/test/nuts/trackingCommands/mpd-non-sequential.nut.ts b/test/nuts/trackingCommands/mpd-non-sequential.nut.ts index a653e94c9..4f2ccdc3f 100644 --- a/test/nuts/trackingCommands/mpd-non-sequential.nut.ts +++ b/test/nuts/trackingCommands/mpd-non-sequential.nut.ts @@ -5,11 +5,11 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; +import path from 'node:path'; import { AuthInfo, Connection } from '@salesforce/core'; import { expect } from 'chai'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; -import { PushResponse } from '../../../src/formatters/source/pushResultFormatter'; +import { PushResponse } from '../../../src/formatters/source/pushResultFormatter.js'; let session: TestSession; let conn: Connection; @@ -31,7 +31,7 @@ describe('multiple pkgDirectories pushed as one deploy', () => { conn = await Connection.create({ authInfo: await AuthInfo.create({ - username: session.orgs.get('default').username, + username: session.orgs.get('default')?.username, }), }); }); @@ -45,10 +45,10 @@ describe('multiple pkgDirectories pushed as one deploy', () => { it('pushes using MPD', () => { const result = execCmd('force:source:push --json', { ensureExitCode: 0, - }).jsonOutput.result.pushedSource; + }).jsonOutput?.result.pushedSource; expect(result).to.be.an.instanceof(Array); // the fields should be populated - expect(result.every((row) => row.type && row.fullName)).to.equal(true); + expect(result?.every((row) => row.type && row.fullName)).to.equal(true); }); it('should have 2 deployments', async () => { diff --git a/test/nuts/trackingCommands/mpd-sequential.nut.ts b/test/nuts/trackingCommands/mpd-sequential.nut.ts index 1ae6c2c3d..6b6a23d11 100644 --- a/test/nuts/trackingCommands/mpd-sequential.nut.ts +++ b/test/nuts/trackingCommands/mpd-sequential.nut.ts @@ -5,12 +5,12 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as path from 'node:path'; -import * as fs from 'node:fs'; +import path from 'node:path'; +import fs from 'node:fs'; import { AuthInfo, Connection } from '@salesforce/core'; import { expect } from 'chai'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; -import { PushResponse } from '../../../src/formatters/source/pushResultFormatter'; +import { PushResponse } from '../../../src/formatters/source/pushResultFormatter.js'; let session: TestSession; let conn: Connection; @@ -44,7 +44,7 @@ describe('multiple pkgDirs deployed sequentially', () => { conn = await Connection.create({ authInfo: await AuthInfo.create({ - username: session.orgs.get('default').username, + username: session.orgs.get('default')?.username, }), }); }); @@ -58,10 +58,10 @@ describe('multiple pkgDirs deployed sequentially', () => { it('pushes using MPD', () => { const result = execCmd('force:source:push --json', { ensureExitCode: 0, - }).jsonOutput.result.pushedSource; + }).jsonOutput?.result.pushedSource; expect(result).to.be.an.instanceof(Array); // the fields should be populated - expect(result.every((row) => row.type && row.fullName)).to.equal(true); + expect(result?.every((row) => row.type && row.fullName)).to.equal(true); }); it('should have 4 deployments', async () => { diff --git a/test/nuts/trackingCommands/remoteChanges.nut.ts b/test/nuts/trackingCommands/remoteChanges.nut.ts index a03f7cc7c..f029e85e2 100644 --- a/test/nuts/trackingCommands/remoteChanges.nut.ts +++ b/test/nuts/trackingCommands/remoteChanges.nut.ts @@ -9,17 +9,17 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-unsafe-assignment */ -import * as path from 'node:path'; -import * as fs from 'node:fs'; +import path from 'node:path'; +import fs from 'node:fs'; import { expect } from 'chai'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; import { AuthInfo, Connection } from '@salesforce/core'; import { ComponentStatus } from '@salesforce/source-deploy-retrieve'; -import { PushResponse } from '../../../src/formatters/source/pushResultFormatter'; -import { StatusResult } from '../../../src/formatters/source/statusFormatter'; -import { PullResponse } from '../../../src/formatters/source/pullFormatter'; -import { itemsInEBikesPush } from './consts'; +import { PushResponse } from '../../../src/formatters/source/pushResultFormatter.js'; +import { StatusResult } from '../../../src/formatters/source/statusFormatter.js'; +import { PullResponse } from '../../../src/formatters/source/pullFormatter.js'; +import { itemsInEBikesPush } from './consts.js'; let session: TestSession; let conn: Connection; @@ -42,7 +42,7 @@ describe('remote changes', () => { }); conn = await Connection.create({ authInfo: await AuthInfo.create({ - username: session.orgs.get('default').username, + username: session.orgs.get('default')?.username, }), }); }); @@ -56,11 +56,11 @@ describe('remote changes', () => { it('pushes to initiate the remote', () => { const pushResult = execCmd('force:source:push --json'); expect(pushResult.jsonOutput?.status, JSON.stringify(pushResult)).equals(0); - const pushedSource = pushResult.jsonOutput.result.pushedSource; + const pushedSource = pushResult.jsonOutput?.result.pushedSource; expect(pushedSource, JSON.stringify(pushedSource)).to.have.lengthOf(itemsInEBikesPush); expect( - pushedSource.every((r) => r.state !== ComponentStatus.Failed), - JSON.stringify(pushedSource.filter((r) => r.state === ComponentStatus.Failed)) + pushedSource?.every((r) => r.state !== ComponentStatus.Failed), + JSON.stringify(pushedSource?.filter((r) => r.state === ComponentStatus.Failed)) ).to.equal(true); }); @@ -91,28 +91,28 @@ describe('remote changes', () => { it('can see the delete in status', () => { const result = execCmd('force:source:status --json --remote', { ensureExitCode: 0, - }).jsonOutput.result; + }).jsonOutput?.result; // it shows up as one class on the server, but 2 files when pulled expect( - result.filter((r) => r.state.includes('Delete')), + result?.filter((r) => r.state.includes('Delete')), JSON.stringify(result) ).to.have.length(1); }); it('does not see any change in local status', () => { const result = execCmd('force:source:status --json --local', { ensureExitCode: 0, - }).jsonOutput.result; - expect(result.filter(filterIgnored)).to.deep.equal([]); + }).jsonOutput?.result; + expect(result?.filter(filterIgnored)).to.deep.equal([]); }); it('can pull the delete', () => { - const result = execCmd('force:source:pull --json', { ensureExitCode: 0 }).jsonOutput.result; + const result = execCmd('force:source:pull --json', { ensureExitCode: 0 }).jsonOutput?.result; // ebikes ignore file doesn't catch this somehow on windows (probably that slash) // https://github.com/trailheadapps/ebikes-lwc/blob/3e5baf83d97bc71660feaa9922f8fed2e686f5f8/.forceignore#L136-L137 - const filteredSource = result.pulledSource.filter((r) => !r.fullName.includes('prm_channel_reports_folder')); + const filteredSource = result?.pulledSource.filter((r) => !r.fullName.includes('prm_channel_reports_folder')); // the 2 files for the apexClass, and possibly one for the Profile (depending on whether it got created in time) expect(filteredSource).to.have.length.greaterThanOrEqual(2); expect(filteredSource).to.have.length.lessThanOrEqual(4); - result.pulledSource + result?.pulledSource .filter((r) => r.fullName === 'TestOrderController') .map((r) => expect(r.state).to.equal('Deleted')); }); @@ -131,13 +131,13 @@ describe('remote changes', () => { it('sees correct local and remote status', () => { const remoteResult = execCmd('force:source:status --json --remote', { ensureExitCode: 0, - }).jsonOutput.result; - expect(remoteResult.filter((r) => r.state.includes('Remote Deleted'))).to.deep.equal([]); + }).jsonOutput?.result; + expect(remoteResult?.filter((r) => r.state.includes('Remote Deleted'))).to.deep.equal([]); const localStatus = execCmd('force:source:status --json --local', { ensureExitCode: 0, - }).jsonOutput.result; - expect(localStatus.filter(filterIgnored)).to.deep.equal([]); + }).jsonOutput?.result; + expect(localStatus?.filter(filterIgnored)).to.deep.equal([]); }); }); @@ -156,32 +156,32 @@ describe('remote changes', () => { it('can see the add in status', () => { const result = execCmd('force:source:status --json --remote', { ensureExitCode: 0, - }).jsonOutput.result; + }).jsonOutput?.result; expect( - result.some((r) => r.fullName === className), + result?.some((r) => r.fullName === className), JSON.stringify(result) ).to.equal(true); }); it('can pull the add', () => { - const result = execCmd('force:source:pull --json', { ensureExitCode: 0 }).jsonOutput.result; + const result = execCmd('force:source:pull --json', { ensureExitCode: 0 }).jsonOutput?.result; // SDR marks all retrieves as 'Changed' even if it creates new local files. This is different from toolbelt, which marked those as 'Created' - result.pulledSource + result?.pulledSource .filter((r) => r.fullName === className) .map((r) => expect(r.state, JSON.stringify(r)).to.equal('Created')); }); it('sees correct local and remote status', () => { const remoteResult = execCmd('force:source:status --json --remote', { ensureExitCode: 0, - }).jsonOutput.result; + }).jsonOutput?.result; expect( - remoteResult.filter((r) => r.fullName === className), + remoteResult?.filter((r) => r.fullName === className), JSON.stringify(remoteResult) ).deep.equal([]); const localStatus = execCmd('force:source:status --json --local', { ensureExitCode: 0, - }).jsonOutput.result; - expect(localStatus.filter(filterIgnored)).to.deep.equal([]); + }).jsonOutput?.result; + expect(localStatus?.filter(filterIgnored)).to.deep.equal([]); }); }); diff --git a/test/nuts/translation.nut.ts b/test/nuts/translation.nut.ts index 883a431c3..40c95840d 100644 --- a/test/nuts/translation.nut.ts +++ b/test/nuts/translation.nut.ts @@ -4,14 +4,14 @@ * Licensed under the BSD 3-Clause license. * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ -import * as fs from 'node:fs'; -import * as path from 'node:path'; +import fs from 'node:fs'; +import path from 'node:path'; import { execCmd, TestSession } from '@salesforce/cli-plugins-testkit'; import { expect } from 'chai'; -import { PushResponse } from '../../src/formatters/source/pushResultFormatter'; -import { DeployCommandResult } from '../../src/formatters/deployResultFormatter'; -import { RetrieveCommandResult } from '../../src/formatters/retrieveResultFormatter'; -import { StatusResult } from '../../src/formatters/source/statusFormatter'; +import { PushResponse } from '../../src/formatters/source/pushResultFormatter.js'; +import { DeployCommandResult } from '../../src/formatters/deployResultFormatter.js'; +import { RetrieveCommandResult } from '../../src/formatters/retrieveResultFormatter.js'; +import { StatusResult } from '../../src/formatters/source/statusFormatter.js'; describe('translations', () => { let session: TestSession; @@ -51,22 +51,22 @@ describe('translations', () => { await fs.promises.writeFile(fieldFile, original.replace('spanish', 'español')); const statusResult = execCmd('force:source:status --json', { ensureExitCode: 0, - }).jsonOutput.result; + }).jsonOutput?.result; - expect(statusResult[0].type).to.equal('CustomObjectTranslation'); + expect(statusResult?.at(0)?.type).to.equal('CustomObjectTranslation'); }); it('push local change', () => { const pushResult = execCmd('force:source:push --json', { ensureExitCode: 0, - }).jsonOutput.result; - expect(pushResult.pushedSource.every((s) => s.type === 'CustomObjectTranslation')).to.be.true; + }).jsonOutput?.result; + expect(pushResult?.pushedSource.every((s) => s.type === 'CustomObjectTranslation')).to.be.true; }); it('sees no local changes', () => { const statusResult = execCmd('force:source:status --json', { ensureExitCode: 0, - }).jsonOutput.result; + }).jsonOutput?.result; expect(statusResult).to.deep.equal([]); }); }); @@ -87,8 +87,8 @@ describe('translations', () => { it('deploy', () => { const deployResults = execCmd('force:source:deploy -x package.xml --json', { ensureExitCode: 0, - }).jsonOutput.result; - expect(deployResults.deployedSource.length).to.equal(7); + }).jsonOutput?.result; + expect(deployResults?.deployedSource.length).to.equal(7); }); it('retrieve without local metadata', async () => { @@ -97,8 +97,8 @@ describe('translations', () => { await fs.promises.mkdir(path.join(session.project.dir, 'force-app')); const retrieveResults = execCmd('force:source:retrieve -x package.xml --json', { ensureExitCode: 0, - }).jsonOutput.result; - expect(retrieveResults.inboundFiles).to.have.length(7); + }).jsonOutput?.result; + expect(retrieveResults?.inboundFiles).to.have.length(7); }); }); @@ -142,7 +142,7 @@ describe('translations', () => { ensureExitCode: 0, } ); - expect(result.jsonOutput.result.deployedSource.some((d) => d.type === 'CustomObjectTranslation')).to.be.true; + expect(result.jsonOutput?.result.deployedSource.some((d) => d.type === 'CustomObjectTranslation')).to.be.true; }); it('can deploy COT', () => { diff --git a/test/promisesQueue.test.ts b/test/promisesQueue.test.ts index 4a53da360..c49b30b45 100644 --- a/test/promisesQueue.test.ts +++ b/test/promisesQueue.test.ts @@ -5,7 +5,7 @@ * For full license text, see LICENSE.txt file in the repo root or https://opensource.org/licenses/BSD-3-Clause */ import { expect } from 'chai'; -import { promisesQueue } from '../src/promiseQueue'; +import { promisesQueue } from '../src/promiseQueue.js'; describe('promisesQueue', () => { const numberResolver = (n: number) => Promise.resolve(n); it('should handle 0 queue entries', async () => { diff --git a/test/tsconfig.json b/test/tsconfig.json index f5a81fb1f..30befa689 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "@salesforce/dev-config/tsconfig-test", + "extends": "@salesforce/dev-config/tsconfig-test-strict-esm", "include": ["./**/*.ts"], "compilerOptions": { "skipLibCheck": true, diff --git a/tsconfig.json b/tsconfig.json index b6902cdc1..fdbd96a02 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,15 +1,23 @@ { - "extends": "@salesforce/dev-config/tsconfig", + "extends": "@salesforce/dev-config/tsconfig-strict-esm", "compilerOptions": { "outDir": "lib", "rootDir": "src", "baseUrl": ".", "paths": { - "@salesforce/kit": ["node_modules/@salesforce/kit"], - "@salesforce/core": ["node_modules/@salesforce/core"], - "@oclif/core": ["node_modules/@oclif/core"] + "@salesforce/kit": [ + "node_modules/@salesforce/kit" + ], + "@salesforce/core": [ + "node_modules/@salesforce/core" + ], + "@oclif/core": [ + "node_modules/@oclif/core" + ] }, "skipLibCheck": true }, - "include": ["./src/**/*.ts"] -} + "include": [ + "./src/**/*.ts" + ] +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 4c01ef47c..fe24a2e83 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7,15 +7,15 @@ resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf" integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA== -"@ampproject/remapping@^2.1.0": - version "2.2.0" - resolved "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz#56c133824780de3174aed5ab6834f3026790154d" - integrity sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w== +"@ampproject/remapping@^2.2.0": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630" + integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg== dependencies: - "@jridgewell/gen-mapping" "^0.1.0" + "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.18.6", "@babel/code-frame@^7.22.13": +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.22.13": version "7.22.13" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.22.13.tgz#e3c1c099402598483b7a8c46a721d1038803755e" integrity sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w== @@ -23,53 +23,54 @@ "@babel/highlight" "^7.22.13" chalk "^2.4.2" -"@babel/compat-data@^7.20.0": - version "7.20.1" - resolved "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.20.1.tgz#f2e6ef7790d8c8dbf03d379502dcc246dcce0b30" - integrity sha512-EWZ4mE2diW3QALKvDMiXnbZpRvlj+nayZ112nK93SnhqOtpdsbVD4W+2tEoT3YNBAG9RBR0ISY758ZkOgsn6pQ== +"@babel/compat-data@^7.22.9": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.3.tgz#3febd552541e62b5e883a25eb3effd7c7379db11" + integrity sha512-BmR4bWbDIoFJmJ9z2cZ8Gmm2MXgEDgjdWgpKmKWUt54UGFJdlj31ECtbaDvCG/qVdG3AQ1SfpZEs01lUFbzLOQ== "@babel/core@^7.7.5": - version "7.20.2" - resolved "https://registry.npmjs.org/@babel/core/-/core-7.20.2.tgz#8dc9b1620a673f92d3624bd926dc49a52cf25b92" - integrity sha512-w7DbG8DtMrJcFOi4VrLm+8QM4az8Mo+PuLBKLp2zrYRCow8W/f9xiXm5sN53C8HksCyDQwCKha9JiDoIyPjT2g== - dependencies: - "@ampproject/remapping" "^2.1.0" - "@babel/code-frame" "^7.18.6" - "@babel/generator" "^7.20.2" - "@babel/helper-compilation-targets" "^7.20.0" - "@babel/helper-module-transforms" "^7.20.2" - "@babel/helpers" "^7.20.1" - "@babel/parser" "^7.20.2" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.2" - convert-source-map "^1.7.0" + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.3.tgz#5ec09c8803b91f51cc887dedc2654a35852849c9" + integrity sha512-Jg+msLuNuCJDyBvFv5+OKOUjWMZgd85bKjbICd3zWrKAo+bJ49HJufi7CQE0q0uR8NGyO6xkCACScNqyjHSZew== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.22.13" + "@babel/generator" "^7.23.3" + "@babel/helper-compilation-targets" "^7.22.15" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.2" + "@babel/parser" "^7.23.3" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.3" + "@babel/types" "^7.23.3" + convert-source-map "^2.0.0" debug "^4.1.0" gensync "^1.0.0-beta.2" - json5 "^2.2.1" - semver "^6.3.0" + json5 "^2.2.3" + semver "^6.3.1" -"@babel/generator@^7.20.2", "@babel/generator@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" - integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== +"@babel/generator@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.3.tgz#86e6e83d95903fbe7613f448613b8b319f330a8e" + integrity sha512-keeZWAV4LU3tW0qRi19HRpabC/ilM0HRBBzf9/k8FFiG4KVpiv0FIy4hHfLfFQZNhziCTPTmd59zoyv6DNISzg== dependencies: - "@babel/types" "^7.23.0" + "@babel/types" "^7.23.3" "@jridgewell/gen-mapping" "^0.3.2" "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" -"@babel/helper-compilation-targets@^7.20.0": - version "7.20.0" - resolved "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.20.0.tgz#6bf5374d424e1b3922822f1d9bdaa43b1a139d0a" - integrity sha512-0jp//vDGp9e8hZzBc6N/KwA5ZK3Wsm/pfm4CrY7vzegkVxc65SgSn6wYOnwHe9Js9HRQ1YTCKLGPzDtaS3RoLQ== +"@babel/helper-compilation-targets@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.22.15.tgz#0698fc44551a26cf29f18d4662d5bf545a6cfc52" + integrity sha512-y6EEzULok0Qvz8yyLkCvVX+02ic+By2UdOhylwUOvOn9dvYc9mKICJuuU1n1XBI02YWsNsnrY1kc6DVbjcXbtw== dependencies: - "@babel/compat-data" "^7.20.0" - "@babel/helper-validator-option" "^7.18.6" - browserslist "^4.21.3" - semver "^6.3.0" + "@babel/compat-data" "^7.22.9" + "@babel/helper-validator-option" "^7.22.15" + browserslist "^4.21.9" + lru-cache "^5.1.1" + semver "^6.3.1" -"@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.22.20": +"@babel/helper-environment-visitor@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" integrity sha512-zfedSIzFhat/gFhWfHtgWvlec0nqB9YEIVrpuwjruLlXfUSnA8cJB0miHKwqDnQ7d32aKo2xt88/xZptwxbfhA== @@ -89,35 +90,32 @@ dependencies: "@babel/types" "^7.22.5" -"@babel/helper-module-imports@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e" - integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA== +"@babel/helper-module-imports@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.22.15.tgz#16146307acdc40cc00c3b2c647713076464bdbf0" + integrity sha512-0pYVBnDKZO2fnSPCrgM/6WMc7eS20Fbok+0r88fp+YtWVLZrp4CkafFGIp+W0VKw4a22sgebPT99y+FDNMdP4w== dependencies: - "@babel/types" "^7.18.6" + "@babel/types" "^7.22.15" -"@babel/helper-module-transforms@^7.20.2": - version "7.20.2" - resolved "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.20.2.tgz#ac53da669501edd37e658602a21ba14c08748712" - integrity sha512-zvBKyJXRbmK07XhMuujYoJ48B5yvvmM6+wcpv6Ivj4Yg6qO7NOZOSnvZN9CRl1zz1Z4cKf8YejmCMh8clOoOeA== +"@babel/helper-module-transforms@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.23.3.tgz#d7d12c3c5d30af5b3c0fcab2a6d5217773e2d0f1" + integrity sha512-7bBs4ED9OmswdfDzpz4MpWgSrV7FXlc3zIagvLFjS5H+Mk7Snr21vQ6QwrsoCGMfNC4e4LQPdoULEt4ykz0SRQ== dependencies: - "@babel/helper-environment-visitor" "^7.18.9" - "@babel/helper-module-imports" "^7.18.6" - "@babel/helper-simple-access" "^7.20.2" - "@babel/helper-split-export-declaration" "^7.18.6" - "@babel/helper-validator-identifier" "^7.19.1" - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.2" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-simple-access" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/helper-validator-identifier" "^7.22.20" -"@babel/helper-simple-access@^7.20.2": - version "7.20.2" - resolved "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.20.2.tgz#0ab452687fe0c2cfb1e2b9e0015de07fc2d62dd9" - integrity sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA== +"@babel/helper-simple-access@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.22.5.tgz#4938357dc7d782b80ed6dbb03a0fba3d22b1d5de" + integrity sha512-n0H99E/K+Bika3++WNL17POvo4rKWZ7lZEp1Q+fStVbUi8nxPQEBOlTmCOxW/0JsS56SKKQ+ojAe2pHKJHN35w== dependencies: - "@babel/types" "^7.20.2" + "@babel/types" "^7.22.5" -"@babel/helper-split-export-declaration@^7.18.6", "@babel/helper-split-export-declaration@^7.22.6": +"@babel/helper-split-export-declaration@^7.22.6": version "7.22.6" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.22.6.tgz#322c61b7310c0997fe4c323955667f18fcefb91c" integrity sha512-AsUnxuLhRYsisFiaJwvp1QF+I3KjD5FOxut14q/GzovUe6orHLesW2C7d754kRm53h5gqrz6sFl6sxc4BVtE/g== @@ -129,24 +127,24 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.22.5.tgz#533f36457a25814cf1df6488523ad547d784a99f" integrity sha512-mM4COjgZox8U+JcXQwPijIZLElkgEpO5rsERVDJTc2qfCDfERyob6k5WegS14SX18IIjv+XD+GrqNumY5JRCDw== -"@babel/helper-validator-identifier@^7.19.1", "@babel/helper-validator-identifier@^7.22.20": +"@babel/helper-validator-identifier@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== -"@babel/helper-validator-option@^7.18.6": - version "7.18.6" - resolved "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8" - integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw== +"@babel/helper-validator-option@^7.22.15": + version "7.22.15" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.22.15.tgz#694c30dfa1d09a6534cdfcafbe56789d36aba040" + integrity sha512-bMn7RmyFjY/mdECUbgn9eoSY4vqvacUnS9i9vGAGttgFWesO6B4CYWA7XlpbWgBt71iv/hfbPlynohStqnu5hA== -"@babel/helpers@^7.20.1": - version "7.20.1" - resolved "https://registry.npmjs.org/@babel/helpers/-/helpers-7.20.1.tgz#2ab7a0fcb0a03b5bf76629196ed63c2d7311f4c9" - integrity sha512-J77mUVaDTUJFZ5BpP6mMn6OIl3rEWymk2ZxDBQJUG3P+PbmyMcF3bYWvz0ma69Af1oobDqT/iAsvzhB58xhQUg== +"@babel/helpers@^7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.2.tgz#2832549a6e37d484286e15ba36a5330483cac767" + integrity sha512-lzchcp8SjTSVe/fPmLwtWVBFC7+Tbn8LGHDVfDp9JGxpAY5opSaEFgt8UQvrnECWOTdji2mOWMz1rOhkHscmGQ== dependencies: - "@babel/template" "^7.18.10" - "@babel/traverse" "^7.20.1" - "@babel/types" "^7.20.0" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.2" + "@babel/types" "^7.23.0" "@babel/highlight@^7.22.13": version "7.22.20" @@ -157,10 +155,10 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.20.2", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" - integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== +"@babel/parser@^7.22.15", "@babel/parser@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.3.tgz#0ce0be31a4ca4f1884b5786057cadcb6c3be58f9" + integrity sha512-uVsWNvlVsIninV2prNz/3lHCb+5CJ+e+IUBfbjToAHODtfGYLfCFuY4AU7TskI+dAKk+njsPiBjq1gKTvZOBaw== "@babel/runtime-corejs3@^7.12.5": version "7.23.2" @@ -177,7 +175,7 @@ dependencies: regenerator-runtime "^0.14.0" -"@babel/template@^7.18.10", "@babel/template@^7.22.15": +"@babel/template@^7.22.15": version "7.22.15" resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.22.15.tgz#09576efc3830f0430f4548ef971dde1350ef2f38" integrity sha512-QPErUVm4uyJa60rkI73qneDacvdvzxshT3kksGqlGWYdOTIUOwJ7RDUL8sGqslY1uXWSL6xMFKEXDS3ox2uF0w== @@ -186,26 +184,26 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.20.1": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" - integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== +"@babel/traverse@^7.23.2", "@babel/traverse@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.3.tgz#26ee5f252e725aa7aca3474aa5b324eaf7908b5b" + integrity sha512-+K0yF1/9yR0oHdE0StHuEj3uTPzwwbrLGfNOndVJVV2TqA5+j3oljJUb4nmB954FLGjNem976+B+eDuLIjesiQ== dependencies: "@babel/code-frame" "^7.22.13" - "@babel/generator" "^7.23.0" + "@babel/generator" "^7.23.3" "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-function-name" "^7.23.0" "@babel/helper-hoist-variables" "^7.22.5" "@babel/helper-split-export-declaration" "^7.22.6" - "@babel/parser" "^7.23.0" - "@babel/types" "^7.23.0" + "@babel/parser" "^7.23.3" + "@babel/types" "^7.23.3" debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.18.6", "@babel/types@^7.20.0", "@babel/types@^7.20.2", "@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" - integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== +"@babel/types@^7.22.15", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.23.3": + version "7.23.3" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.3.tgz#d5ea892c07f2ec371ac704420f4dcdb07b5f9598" + integrity sha512-OZnvoH2l8PK5eUvEcUyCt/sXgr/h+UWpVuBbOljwcrAgUl6lpchoQ++PHGyQy1AtYnVA6CEq3y5xeEI10brpXw== dependencies: "@babel/helper-string-parser" "^7.22.5" "@babel/helper-validator-identifier" "^7.22.20" @@ -213,19 +211,19 @@ "@colors/colors@1.5.0": version "1.5.0" - resolved "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" + resolved "https://registry.yarnpkg.com/@colors/colors/-/colors-1.5.0.tgz#bb504579c1cae923e6576a4f5da43d25f97bdbd9" integrity sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ== "@commitlint/cli@^17.1.2": - version "17.4.2" - resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.4.2.tgz#8600c83abb7e84191fd59528fc14f436496fb00b" - integrity sha512-0rPGJ2O1owhpxMIXL9YJ2CgPkdrFLKZElIZHXDN8L8+qWK1DGH7Q7IelBT1pchXTYTuDlqkOTdh//aTvT3bSUA== - dependencies: - "@commitlint/format" "^17.4.0" - "@commitlint/lint" "^17.4.2" - "@commitlint/load" "^17.4.2" - "@commitlint/read" "^17.4.2" - "@commitlint/types" "^17.4.0" + version "17.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/cli/-/cli-17.8.1.tgz#10492114a022c91dcfb1d84dac773abb3db76d33" + integrity sha512-ay+WbzQesE0Rv4EQKfNbSMiJJ12KdKTDzIt0tcK4k11FdsWmtwP0Kp1NWMOUswfIWo6Eb7p7Ln721Nx9FLNBjg== + dependencies: + "@commitlint/format" "^17.8.1" + "@commitlint/lint" "^17.8.1" + "@commitlint/load" "^17.8.1" + "@commitlint/read" "^17.8.1" + "@commitlint/types" "^17.8.1" execa "^5.0.0" lodash.isfunction "^3.0.9" resolve-from "5.0.0" @@ -233,73 +231,73 @@ yargs "^17.0.0" "@commitlint/config-conventional@^17.1.0": - version "17.4.2" - resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.4.2.tgz#671f7febfcfef90ec11b122a659c6be25e11c19e" - integrity sha512-JVo1moSj5eDMoql159q8zKCU8lkOhQ+b23Vl3LVVrS6PXDLQIELnJ34ChQmFVbBdSSRNAbbXnRDhosFU+wnuHw== + version "17.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/config-conventional/-/config-conventional-17.8.1.tgz#e5bcf0cfec8da7ac50bc04dc92e0a4ea74964ce0" + integrity sha512-NxCOHx1kgneig3VLauWJcDWS40DVjg7nKOpBEEK9E5fjJpQqLCilcnKkIIjdBH98kEO1q3NpE5NSrZ2kl/QGJg== dependencies: - conventional-changelog-conventionalcommits "^5.0.0" + conventional-changelog-conventionalcommits "^6.1.0" -"@commitlint/config-validator@^17.4.0": - version "17.4.0" - resolved "https://registry.yarnpkg.com/@commitlint/config-validator/-/config-validator-17.4.0.tgz#2cb229672a22476cf1f21bedbfcd788e5da5b54f" - integrity sha512-Sa/+8KNpDXz4zT4bVbz2fpFjvgkPO6u2V2fP4TKgt6FjmOw2z3eEX859vtfeaTav/ukBw0/0jr+5ZTZp9zCBhA== +"@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" + integrity sha512-UUgUC+sNiiMwkyiuIFR7JG2cfd9t/7MV8VB4TZ+q02ZFkHoduUS4tJGsCBWvBOGD9Btev6IecPMvlWUfJorkEA== dependencies: - "@commitlint/types" "^17.4.0" + "@commitlint/types" "^17.8.1" ajv "^8.11.0" -"@commitlint/ensure@^17.4.0": - version "17.4.0" - resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-17.4.0.tgz#3de65768bfccb9956ec3a0ecd8a415421bf315e5" - integrity sha512-7oAxt25je0jeQ/E0O/M8L3ADb1Cvweu/5lc/kYF8g/kXatI0wxGE5La52onnAUAWeWlsuvBNar15WcrmDmr5Mw== +"@commitlint/ensure@^17.8.1": + version "17.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/ensure/-/ensure-17.8.1.tgz#59183557844999dbb6aab6d03629a3d104d01a8d" + integrity sha512-xjafwKxid8s1K23NFpL8JNo6JnY/ysetKo8kegVM7c8vs+kWLP8VrQq+NbhgVlmCojhEDbzQKp4eRXSjVOGsow== dependencies: - "@commitlint/types" "^17.4.0" + "@commitlint/types" "^17.8.1" lodash.camelcase "^4.3.0" lodash.kebabcase "^4.1.1" lodash.snakecase "^4.1.1" lodash.startcase "^4.4.0" lodash.upperfirst "^4.3.1" -"@commitlint/execute-rule@^17.4.0": - version "17.4.0" - resolved "https://registry.yarnpkg.com/@commitlint/execute-rule/-/execute-rule-17.4.0.tgz#4518e77958893d0a5835babe65bf87e2638f6939" - integrity sha512-LIgYXuCSO5Gvtc0t9bebAMSwd68ewzmqLypqI2Kke1rqOqqDbMpYcYfoPfFlv9eyLIh4jocHWwCK5FS7z9icUA== +"@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" + integrity sha512-JHVupQeSdNI6xzA9SqMF+p/JjrHTcrJdI02PwesQIDCIGUrv04hicJgCcws5nzaoZbROapPs0s6zeVHoxpMwFQ== -"@commitlint/format@^17.4.0": - version "17.4.0" - resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-17.4.0.tgz#1c80cf3a6274ff9b3d3c0dd150a97882d557aa0f" - integrity sha512-Z2bWAU5+f1YZh9W76c84J8iLIWIvvm+mzqogTz0Nsc1x6EHW0Z2gI38g5HAjB0r0I3ZjR15IDEJKhsxyblcyhA== +"@commitlint/format@^17.8.1": + version "17.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/format/-/format-17.8.1.tgz#6108bb6b4408e711006680649927e1b559bdc5f8" + integrity sha512-f3oMTyZ84M9ht7fb93wbCKmWxO5/kKSbwuYvS867duVomoOsgrgljkGGIztmT/srZnaiGbaK8+Wf8Ik2tSr5eg== dependencies: - "@commitlint/types" "^17.4.0" + "@commitlint/types" "^17.8.1" chalk "^4.1.0" -"@commitlint/is-ignored@^17.4.2": - version "17.4.2" - resolved "https://registry.yarnpkg.com/@commitlint/is-ignored/-/is-ignored-17.4.2.tgz#2d40a34e071c3e595e485fafe8460457a7b7af9d" - integrity sha512-1b2Y2qJ6n7bHG9K6h8S4lBGUl6kc7mMhJN9gy1SQfUZqe92ToDjUTtgNWb6LbzR1X8Cq4SEus4VU8Z/riEa94Q== - dependencies: - "@commitlint/types" "^17.4.0" - semver "7.3.8" - -"@commitlint/lint@^17.4.2": - version "17.4.2" - resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.4.2.tgz#1277cb4d5395e9d6c39cbc351984bac9dcc6b7cd" - integrity sha512-HcymabrdBhsDMNzIv146+ZPNBPBK5gMNsVH+el2lCagnYgCi/4ixrHooeVyS64Fgce2K26+MC7OQ4vVH8wQWVw== - dependencies: - "@commitlint/is-ignored" "^17.4.2" - "@commitlint/parse" "^17.4.2" - "@commitlint/rules" "^17.4.2" - "@commitlint/types" "^17.4.0" - -"@commitlint/load@^17.4.2": - version "17.4.2" - resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.4.2.tgz#551875c3e1dce6dc0375dc9c8ad551de8ba35de4" - integrity sha512-Si++F85rJ9t4hw6JcOw1i2h0fdpdFQt0YKwjuK4bk9KhFjyFkRxvR3SB2dPaMs+EwWlDrDBGL+ygip1QD6gmPw== - dependencies: - "@commitlint/config-validator" "^17.4.0" - "@commitlint/execute-rule" "^17.4.0" - "@commitlint/resolve-extends" "^17.4.0" - "@commitlint/types" "^17.4.0" - "@types/node" "*" +"@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" + integrity sha512-UshMi4Ltb4ZlNn4F7WtSEugFDZmctzFpmbqvpyxD3la510J+PLcnyhf9chs7EryaRFJMdAKwsEKfNK0jL/QM4g== + dependencies: + "@commitlint/types" "^17.8.1" + semver "7.5.4" + +"@commitlint/lint@^17.8.1": + version "17.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/lint/-/lint-17.8.1.tgz#bfc21215f6b18d41d4d43e2aa3cb79a5d7726cd8" + integrity sha512-aQUlwIR1/VMv2D4GXSk7PfL5hIaFSfy6hSHV94O8Y27T5q+DlDEgd/cZ4KmVI+MWKzFfCTiTuWqjfRSfdRllCA== + dependencies: + "@commitlint/is-ignored" "^17.8.1" + "@commitlint/parse" "^17.8.1" + "@commitlint/rules" "^17.8.1" + "@commitlint/types" "^17.8.1" + +"@commitlint/load@^17.8.1": + version "17.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/load/-/load-17.8.1.tgz#fa061e7bfa53281eb03ca8517ca26d66a189030c" + integrity sha512-iF4CL7KDFstP1kpVUkT8K2Wl17h2yx9VaR1ztTc8vzByWWcbO/WaKwxsnCOqow9tVAlzPfo1ywk9m2oJ9ucMqA== + dependencies: + "@commitlint/config-validator" "^17.8.1" + "@commitlint/execute-rule" "^17.8.1" + "@commitlint/resolve-extends" "^17.8.1" + "@commitlint/types" "^17.8.1" + "@types/node" "20.5.1" chalk "^4.1.0" cosmiconfig "^8.0.0" cosmiconfig-typescript-loader "^4.0.0" @@ -308,72 +306,72 @@ lodash.uniq "^4.5.0" resolve-from "^5.0.0" ts-node "^10.8.1" - typescript "^4.6.4" + typescript "^4.6.4 || ^5.2.2" -"@commitlint/message@^17.4.2": - version "17.4.2" - resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.4.2.tgz#f4753a79701ad6db6db21f69076e34de6580e22c" - integrity sha512-3XMNbzB+3bhKA1hSAWPCQA3lNxR4zaeQAQcHj0Hx5sVdO6ryXtgUBGGv+1ZCLMgAPRixuc6en+iNAzZ4NzAa8Q== +"@commitlint/message@^17.8.1": + version "17.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/message/-/message-17.8.1.tgz#a5cd226c419be20ee03c3d237db6ac37b95958b3" + integrity sha512-6bYL1GUQsD6bLhTH3QQty8pVFoETfFQlMn2Nzmz3AOLqRVfNNtXBaSY0dhZ0dM6A2MEq4+2d7L/2LP8TjqGRkA== -"@commitlint/parse@^17.4.2": - version "17.4.2" - resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.4.2.tgz#b0f8a257a1f93387a497408b0b4cadba60ee3359" - integrity sha512-DK4EwqhxfXpyCA+UH8TBRIAXAfmmX4q9QRBz/2h9F9sI91yt6mltTrL6TKURMcjUVmgaB80wgS9QybNIyVBIJA== +"@commitlint/parse@^17.8.1": + version "17.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/parse/-/parse-17.8.1.tgz#6e00b8f50ebd63562d25dcf4230da2c9f984e626" + integrity sha512-/wLUickTo0rNpQgWwLPavTm7WbwkZoBy3X8PpkUmlSmQJyWQTj0m6bDjiykMaDt41qcUbfeFfaCvXfiR4EGnfw== dependencies: - "@commitlint/types" "^17.4.0" - conventional-changelog-angular "^5.0.11" - conventional-commits-parser "^3.2.2" + "@commitlint/types" "^17.8.1" + conventional-changelog-angular "^6.0.0" + conventional-commits-parser "^4.0.0" -"@commitlint/read@^17.4.2": - version "17.4.2" - resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.4.2.tgz#4880a05271fb44cefa54d365a17d5753496a6de0" - integrity sha512-hasYOdbhEg+W4hi0InmXHxtD/1favB4WdwyFxs1eOy/DvMw6+2IZBmATgGOlqhahsypk4kChhxjAFJAZ2F+JBg== +"@commitlint/read@^17.8.1": + version "17.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/read/-/read-17.8.1.tgz#b3f28777607c756078356cc133368b0e8c08092f" + integrity sha512-Fd55Oaz9irzBESPCdMd8vWWgxsW3OWR99wOntBDHgf9h7Y6OOHjWEdS9Xzen1GFndqgyoaFplQS5y7KZe0kO2w== dependencies: - "@commitlint/top-level" "^17.4.0" - "@commitlint/types" "^17.4.0" + "@commitlint/top-level" "^17.8.1" + "@commitlint/types" "^17.8.1" fs-extra "^11.0.0" - git-raw-commits "^2.0.0" + git-raw-commits "^2.0.11" minimist "^1.2.6" -"@commitlint/resolve-extends@^17.4.0": - version "17.4.0" - resolved "https://registry.yarnpkg.com/@commitlint/resolve-extends/-/resolve-extends-17.4.0.tgz#9023da6c70c4ebd173b4b0995fe29f27051da2d3" - integrity sha512-3JsmwkrCzoK8sO22AzLBvNEvC1Pmdn/65RKXzEtQMy6oYMl0Snrq97a5bQQEFETF0VsvbtUuKttLqqgn99OXRQ== +"@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" + integrity sha512-W/ryRoQ0TSVXqJrx5SGkaYuAaE/BUontL1j1HsKckvM6e5ZaG0M9126zcwL6peKSuIetJi7E87PRQF8O86EW0Q== dependencies: - "@commitlint/config-validator" "^17.4.0" - "@commitlint/types" "^17.4.0" + "@commitlint/config-validator" "^17.8.1" + "@commitlint/types" "^17.8.1" import-fresh "^3.0.0" lodash.mergewith "^4.6.2" resolve-from "^5.0.0" resolve-global "^1.0.0" -"@commitlint/rules@^17.4.2": - version "17.4.2" - resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.4.2.tgz#cdf203bc82af979cb319210ef9215cb1de216a9b" - integrity sha512-OGrPsMb9Fx3/bZ64/EzJehY9YDSGWzp81Pj+zJiY+r/NSgJI3nUYdlS37jykNIugzazdEXfMtQ10kmA+Kx2pZQ== +"@commitlint/rules@^17.8.1": + version "17.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/rules/-/rules-17.8.1.tgz#da49cab1b7ebaf90d108de9f58f684dc4ccb65a0" + integrity sha512-2b7OdVbN7MTAt9U0vKOYKCDsOvESVXxQmrvuVUZ0rGFMCrCPJWWP1GJ7f0lAypbDAhaGb8zqtdOr47192LBrIA== dependencies: - "@commitlint/ensure" "^17.4.0" - "@commitlint/message" "^17.4.2" - "@commitlint/to-lines" "^17.4.0" - "@commitlint/types" "^17.4.0" + "@commitlint/ensure" "^17.8.1" + "@commitlint/message" "^17.8.1" + "@commitlint/to-lines" "^17.8.1" + "@commitlint/types" "^17.8.1" execa "^5.0.0" -"@commitlint/to-lines@^17.4.0": - version "17.4.0" - resolved "https://registry.yarnpkg.com/@commitlint/to-lines/-/to-lines-17.4.0.tgz#9bd02e911e7d4eab3fb4a50376c4c6d331e10d8d" - integrity sha512-LcIy/6ZZolsfwDUWfN1mJ+co09soSuNASfKEU5sCmgFCvX5iHwRYLiIuoqXzOVDYOy7E7IcHilr/KS0e5T+0Hg== +"@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" + integrity sha512-LE0jb8CuR/mj6xJyrIk8VLz03OEzXFgLdivBytoooKO5xLt5yalc8Ma5guTWobw998sbR3ogDd+2jed03CFmJA== -"@commitlint/top-level@^17.4.0": - version "17.4.0" - resolved "https://registry.yarnpkg.com/@commitlint/top-level/-/top-level-17.4.0.tgz#540cac8290044cf846fbdd99f5cc51e8ac5f27d6" - integrity sha512-/1loE/g+dTTQgHnjoCy0AexKAEFyHsR2zRB4NWrZ6lZSMIxAhBJnmCqwao7b4H8888PsfoTBCLBYIw8vGnej8g== +"@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" + integrity sha512-l6+Z6rrNf5p333SHfEte6r+WkOxGlWK4bLuZKbtf/2TXRN+qhrvn1XE63VhD8Oe9oIHQ7F7W1nG2k/TJFhx2yA== dependencies: find-up "^5.0.0" -"@commitlint/types@^17.4.0": - version "17.4.0" - resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-17.4.0.tgz#c7c2b97b959f6175c164632bf26208ce417b3f31" - integrity sha512-2NjAnq5IcxY9kXtUeO2Ac0aPpvkuOmwbH/BxIm36XXK5LtWFObWJWjXOA+kcaABMrthjWu6la+FUpyYFMHRvbA== +"@commitlint/types@^17.8.1": + version "17.8.1" + resolved "https://registry.yarnpkg.com/@commitlint/types/-/types-17.8.1.tgz#883a0ad35c5206d5fef7bc6ce1bbe648118af44e" + integrity sha512-PXDQXkAmiMEG162Bqdh9ChML/GJZo6vU+7F03ALKDK8zYc6SuAr47LjG7hGYRqUOz+WK0dU7bQ0xzuqFMdxzeQ== dependencies: chalk "^4.1.0" @@ -427,7 +425,7 @@ "@gar/promisify@^1.0.1", "@gar/promisify@^1.1.3": version "1.1.3" - resolved "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" + resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6" integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw== "@humanwhocodes/config-array@^0.11.13": @@ -441,7 +439,7 @@ "@humanwhocodes/module-importer@^1.0.1": version "1.0.1" - resolved "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" + resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== "@humanwhocodes/object-schema@^2.0.1": @@ -463,12 +461,12 @@ "@isaacs/string-locale-compare@^1.1.0": version "1.1.0" - resolved "https://registry.npmjs.org/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" + resolved "https://registry.yarnpkg.com/@isaacs/string-locale-compare/-/string-locale-compare-1.1.0.tgz#291c227e93fd407a96ecd59879a35809120e432b" integrity sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ== "@istanbuljs/load-nyc-config@^1.0.0": version "1.1.0" - resolved "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" + resolved "https://registry.yarnpkg.com/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz#fd3db1d59ecf7cf121e80650bb86712f9b55eced" integrity sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ== dependencies: camelcase "^5.3.1" @@ -479,21 +477,13 @@ "@istanbuljs/schema@^0.1.2": version "0.1.3" - resolved "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" + resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jridgewell/gen-mapping@^0.1.0": - version "0.1.1" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz#e5d2e450306a9491e3bd77e323e38d7aff315996" - integrity sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w== - dependencies: - "@jridgewell/set-array" "^1.0.0" - "@jridgewell/sourcemap-codec" "^1.4.10" - -"@jridgewell/gen-mapping@^0.3.2": - version "0.3.2" - resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9" - integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A== +"@jridgewell/gen-mapping@^0.3.0", "@jridgewell/gen-mapping@^0.3.2": + version "0.3.3" + resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098" + integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ== dependencies: "@jridgewell/set-array" "^1.0.1" "@jridgewell/sourcemap-codec" "^1.4.10" @@ -504,9 +494,9 @@ resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== -"@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": +"@jridgewell/set-array@^1.0.1": version "1.1.2" - resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" + resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72" integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw== "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": @@ -523,9 +513,9 @@ "@jridgewell/sourcemap-codec" "^1.4.10" "@jridgewell/trace-mapping@^0.3.17", "@jridgewell/trace-mapping@^0.3.9": - version "0.3.19" - resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811" - integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw== + version "0.3.20" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.20.tgz#72e45707cf240fa6b081d0366f8265b0cd10197f" + integrity sha512-R8LcPeWZol2zR8mmH3JeKQ6QRCFb7XgUhV9ZlGhHLGyg4wpPiPZNQOOWhFZhxKw8u//yTbNGI42Bx/3paXEQ+Q== dependencies: "@jridgewell/resolve-uri" "^3.1.0" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -553,7 +543,7 @@ "@npmcli/arborist@^4.0.4": version "4.3.1" - resolved "https://registry.npmjs.org/@npmcli/arborist/-/arborist-4.3.1.tgz#a08cddce3339882f688c1dea1651f6971e781c44" + resolved "https://registry.yarnpkg.com/@npmcli/arborist/-/arborist-4.3.1.tgz#a08cddce3339882f688c1dea1651f6971e781c44" integrity sha512-yMRgZVDpwWjplorzt9SFSaakWx6QIK248Nw4ZFgkrAy/GvJaFRaSZzE6nD7JBK5r8g/+PTxFq5Wj/sfciE7x+A== dependencies: "@isaacs/string-locale-compare" "^1.1.0" @@ -591,7 +581,7 @@ "@npmcli/fs@^1.0.0": version "1.1.1" - resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-1.1.1.tgz#72f719fe935e687c56a4faecf3c03d06ba593257" integrity sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ== dependencies: "@gar/promisify" "^1.0.1" @@ -599,7 +589,7 @@ "@npmcli/fs@^2.1.0": version "2.1.2" - resolved "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865" + resolved "https://registry.yarnpkg.com/@npmcli/fs/-/fs-2.1.2.tgz#a9e2541a4a2fec2e69c29b35e6060973da79b865" integrity sha512-yOJKRvohFOaLqipNtwYB9WugyZKhC/DZC4VYPmpaCzDBrA8YpK3qHZ8/HGscMnE4GqbkLNuVcCnxkeQEdGt6LQ== dependencies: "@gar/promisify" "^1.1.3" @@ -614,7 +604,7 @@ "@npmcli/git@^2.1.0": version "2.1.0" - resolved "https://registry.npmjs.org/@npmcli/git/-/git-2.1.0.tgz#2fbd77e147530247d37f325930d457b3ebe894f6" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-2.1.0.tgz#2fbd77e147530247d37f325930d457b3ebe894f6" integrity sha512-/hBFX/QG1b+N7PZBFs0bi+evgRZcK9nWBxQKZkGoXUT5hJSwl5c4d7y8/hm+NQZRPhQ67RzFaj5UM9YeyKoryw== dependencies: "@npmcli/promise-spawn" "^1.3.2" @@ -627,9 +617,9 @@ which "^2.0.2" "@npmcli/git@^4.0.0": - version "4.0.4" - resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-4.0.4.tgz#cdf74f21b1d440c0756fb28159d935129d9daa33" - integrity sha512-5yZghx+u5M47LghaybLCkdSyFzV/w4OuH12d96HO389Ik9CDsLaDZJVynSGGVJOLn6gy/k7Dz5XYcplM3uxXRg== + version "4.1.0" + resolved "https://registry.yarnpkg.com/@npmcli/git/-/git-4.1.0.tgz#ab0ad3fd82bc4d8c1351b6c62f0fa56e8fe6afa6" + integrity sha512-9hwoB3gStVfa0N31ymBmrX+GuDGdVA/QWShZVqE0HK2Af+7QGGrCTbZia/SW0ImUTjTne7SP91qxDmtXvDHRPQ== dependencies: "@npmcli/promise-spawn" "^6.0.0" lru-cache "^7.4.4" @@ -642,7 +632,7 @@ "@npmcli/installed-package-contents@^1.0.6", "@npmcli/installed-package-contents@^1.0.7": version "1.0.7" - resolved "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa" + resolved "https://registry.yarnpkg.com/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz#ab7408c6147911b970a8abe261ce512232a3f4fa" integrity sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw== dependencies: npm-bundled "^1.1.1" @@ -658,7 +648,7 @@ "@npmcli/map-workspaces@^2.0.0": version "2.0.4" - resolved "https://registry.npmjs.org/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz#9e5e8ab655215a262aefabf139782b894e0504fc" + resolved "https://registry.yarnpkg.com/@npmcli/map-workspaces/-/map-workspaces-2.0.4.tgz#9e5e8ab655215a262aefabf139782b894e0504fc" integrity sha512-bMo0aAfwhVwqoVM5UzX1DJnlvVvzDCHae821jv48L1EsrYwfOZChlqWYXEtto/+BkBXetPbEWgau++/brh4oVg== dependencies: "@npmcli/name-from-folder" "^1.0.1" @@ -668,7 +658,7 @@ "@npmcli/metavuln-calculator@^2.0.0": version "2.0.0" - resolved "https://registry.npmjs.org/@npmcli/metavuln-calculator/-/metavuln-calculator-2.0.0.tgz#70937b8b5a5cad5c588c8a7b38c4a8bd6f62c84c" + resolved "https://registry.yarnpkg.com/@npmcli/metavuln-calculator/-/metavuln-calculator-2.0.0.tgz#70937b8b5a5cad5c588c8a7b38c4a8bd6f62c84c" integrity sha512-VVW+JhWCKRwCTE+0xvD6p3uV4WpqocNYYtzyvenqL/u1Q3Xx6fGTJ+6UoIoii07fbuEO9U3IIyuGY0CYHDv1sg== dependencies: cacache "^15.0.5" @@ -678,7 +668,7 @@ "@npmcli/move-file@^1.0.1", "@npmcli/move-file@^1.1.0": version "1.1.2" - resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-1.1.2.tgz#1a82c3e372f7cae9253eb66d72543d6b8685c674" integrity sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg== dependencies: mkdirp "^1.0.4" @@ -686,7 +676,7 @@ "@npmcli/move-file@^2.0.0": version "2.0.1" - resolved "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4" + resolved "https://registry.yarnpkg.com/@npmcli/move-file/-/move-file-2.0.1.tgz#26f6bdc379d87f75e55739bab89db525b06100e4" integrity sha512-mJd2Z5TjYWq/ttPLLGqArdtnC74J6bOzg4rMDnN+p1xTacZ2yPRCk2y0oSWQtygLR9YVQXgOcONrwtnk3JupxQ== dependencies: mkdirp "^1.0.4" @@ -694,12 +684,12 @@ "@npmcli/name-from-folder@^1.0.1": version "1.0.1" - resolved "https://registry.npmjs.org/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz#77ecd0a4fcb772ba6fe927e2e2e155fbec2e6b1a" + resolved "https://registry.yarnpkg.com/@npmcli/name-from-folder/-/name-from-folder-1.0.1.tgz#77ecd0a4fcb772ba6fe927e2e2e155fbec2e6b1a" integrity sha512-qq3oEfcLFwNfEYOQ8HLimRGKlD8WSeGEdtUa7hmzpR8Sa7haL1KVQrvgO6wqMjhWFFVjgtrh1gIxDz+P8sjUaA== "@npmcli/node-gyp@^1.0.2", "@npmcli/node-gyp@^1.0.3": version "1.0.3" - resolved "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz#a912e637418ffc5f2db375e93b85837691a43a33" + resolved "https://registry.yarnpkg.com/@npmcli/node-gyp/-/node-gyp-1.0.3.tgz#a912e637418ffc5f2db375e93b85837691a43a33" integrity sha512-fnkhw+fmX65kiLqk6E3BFLXNC26rUhK90zVwe2yncPliVT/Qos3xjhTLE59Df8KnPlcwIERXKVlU1bXoUQ+liA== "@npmcli/node-gyp@^3.0.0": @@ -709,14 +699,14 @@ "@npmcli/package-json@^1.0.1": version "1.0.1" - resolved "https://registry.npmjs.org/@npmcli/package-json/-/package-json-1.0.1.tgz#1ed42f00febe5293c3502fd0ef785647355f6e89" + resolved "https://registry.yarnpkg.com/@npmcli/package-json/-/package-json-1.0.1.tgz#1ed42f00febe5293c3502fd0ef785647355f6e89" integrity sha512-y6jnu76E9C23osz8gEMBayZmaZ69vFOIk8vR1FJL/wbEJ54+9aVG9rLTjQKSXfgYZEr50nw1txBBFfBZZe+bYg== dependencies: json-parse-even-better-errors "^2.3.1" "@npmcli/promise-spawn@^1.2.0", "@npmcli/promise-spawn@^1.3.2": version "1.3.2" - resolved "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz#42d4e56a8e9274fba180dabc0aea6e38f29274f5" + resolved "https://registry.yarnpkg.com/@npmcli/promise-spawn/-/promise-spawn-1.3.2.tgz#42d4e56a8e9274fba180dabc0aea6e38f29274f5" integrity sha512-QyAGYo/Fbj4MXeGdJcFzZ+FkDkomfRBrPM+9QYJSg+PxgAUL+LU3FneQk37rKR2/zjqkCV1BLHccX98wRXG3Sg== dependencies: infer-owner "^1.0.4" @@ -730,7 +720,7 @@ "@npmcli/run-script@^2.0.0": version "2.0.0" - resolved "https://registry.npmjs.org/@npmcli/run-script/-/run-script-2.0.0.tgz#9949c0cab415b17aaac279646db4f027d6f1e743" + resolved "https://registry.yarnpkg.com/@npmcli/run-script/-/run-script-2.0.0.tgz#9949c0cab415b17aaac279646db4f027d6f1e743" integrity sha512-fSan/Pu11xS/TdaTpTB0MRn9guwGU8dye+x56mEVgBEd/QsybBbYcAL0phPXi8SGWFEChkQd6M9qL4y6VOpFig== dependencies: "@npmcli/node-gyp" "^1.0.2" @@ -749,18 +739,7 @@ read-package-json-fast "^3.0.0" which "^3.0.0" -"@oclif/color@^1.0.8": - version "1.0.9" - resolved "https://registry.yarnpkg.com/@oclif/color/-/color-1.0.9.tgz#9707f0cd39b3c2eae0eb0c76a90838a594306327" - integrity sha512-ntc/fZwuf4NRfYbXVoUNFyMB9IxVx/ls/WbSLKbkD9UpsmwY1I3J4DJKKRFRpenmTuxGQW8Lyzm7X3vhzHpDQA== - dependencies: - ansi-styles "^4.2.1" - chalk "^4.1.0" - strip-ansi "^6.0.1" - supports-color "^8.1.1" - tslib "^2" - -"@oclif/core@^2.11.4", "@oclif/core@^2.15.0", "@oclif/core@^2.9.3": +"@oclif/core@^2.15.0": version "2.15.0" resolved "https://registry.yarnpkg.com/@oclif/core/-/core-2.15.0.tgz#f27797b30a77d13279fba88c1698fc34a0bd0d2a" integrity sha512-fNEMG5DzJHhYmI3MgpByTvltBOMyFcnRIUMxbiz2ai8rhaYgaTHMG3Q38HcosfIvtw9nCjxpcQtC8MN8QtVCcA== @@ -794,6 +773,38 @@ wordwrap "^1.0.0" wrap-ansi "^7.0.0" +"@oclif/core@^3.0.4", "@oclif/core@^3.3.1", "@oclif/core@^3.9.1": + version "3.10.8" + resolved "https://registry.yarnpkg.com/@oclif/core/-/core-3.10.8.tgz#8a855841107576b88a2ebe2e20e6e0d7ee885713" + integrity sha512-DRiEiXUvijq/1dXL80/sFGdhTjejFiUzxURW7N310TEKlONujas66KhLATfF/nG3mICqTCU0f9B+VNfLtZoGqw== + dependencies: + ansi-escapes "^4.3.2" + ansi-styles "^4.3.0" + cardinal "^2.1.1" + chalk "^4.1.2" + clean-stack "^3.0.1" + cli-progress "^3.12.0" + debug "^4.3.4" + ejs "^3.1.9" + get-package-type "^0.1.0" + globby "^11.1.0" + hyperlinker "^1.0.0" + indent-string "^4.0.0" + is-wsl "^2.2.0" + js-yaml "^3.14.1" + natural-orderby "^2.0.3" + object-treeify "^1.1.33" + password-prompt "^1.1.2" + slice-ansi "^4.0.0" + string-width "^4.2.3" + strip-ansi "^6.0.1" + supports-color "^8.1.1" + supports-hyperlinks "^2.2.0" + tsconfck "^3.0.0" + widest-line "^3.1.0" + wordwrap "^1.0.0" + wrap-ansi "^7.0.0" + "@oclif/core@^3.10.8", "@oclif/core@^3.11.0", "@oclif/core@^3.5.0": version "3.11.0" resolved "https://registry.yarnpkg.com/@oclif/core/-/core-3.11.0.tgz#dadfac39238af3b717e33b910dde1f1f0fd2105e" @@ -826,10 +837,10 @@ wordwrap "^1.0.0" wrap-ansi "^7.0.0" -"@oclif/plugin-command-snapshot@^4.0.16": - version "4.0.16" - resolved "https://registry.yarnpkg.com/@oclif/plugin-command-snapshot/-/plugin-command-snapshot-4.0.16.tgz#50ab214246088d16c86af7ae81b3c5084478571e" - integrity sha512-J4q2e7l7jNxzuS4qvmLPALoFftsRXczE54I2qnFpSp7YC9RyS9cUcBdoXklOsX2yZckj234o5gmGdkAmBAAqHA== +"@oclif/plugin-command-snapshot@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@oclif/plugin-command-snapshot/-/plugin-command-snapshot-5.0.1.tgz#6c21b2ef8007cda21f0caacd3462d5eedd622f32" + integrity sha512-pUwr5jJ1Jq2yojjRYmzjZouVw4UIfu8IZAXaaWXUl21dEg+8UY1gdIlnQgGdSJo9tkEVz3sUCo6uLVCK6tClAA== dependencies: "@oclif/core" "^3.5.0" "@types/lodash.difference" "^4.5.8" @@ -841,45 +852,50 @@ semver "^7.5.4" ts-json-schema-generator "^1.4.0" -"@oclif/plugin-help@^5.2.14", "@oclif/plugin-help@^5.2.20": +"@oclif/plugin-help@^5.2.14": version "5.2.20" resolved "https://registry.yarnpkg.com/@oclif/plugin-help/-/plugin-help-5.2.20.tgz#4035a0ac231f95fb8e334da342175e3ca00f6abc" integrity sha512-u+GXX/KAGL9S10LxAwNUaWdzbEBARJ92ogmM7g3gDVud2HioCmvWQCDohNRVZ9GYV9oKwZ/M8xwd6a1d95rEKQ== dependencies: "@oclif/core" "^2.15.0" +"@oclif/plugin-help@^6.0.5": + version "6.0.5" + resolved "https://registry.yarnpkg.com/@oclif/plugin-help/-/plugin-help-6.0.5.tgz#4457212909c60bf67939b8c88773696f448f910a" + integrity sha512-PnwmnpNGE3y7zZBKMH7Le+iFKuvKViO1lboJbz8BEhM+XXvTDkIJ1TYFlETMHzK+KSB2JyFCJmqn2AnAKSyTKA== + dependencies: + "@oclif/core" "^3.9.1" + "@oclif/plugin-not-found@^2.3.32": - version "2.3.32" - resolved "https://registry.yarnpkg.com/@oclif/plugin-not-found/-/plugin-not-found-2.3.32.tgz#4b9371b028ed6a74238a5ea7c12cfa7d30d7d0a8" - integrity sha512-tVFHfR9XRUWrcxBugHjFr7HUmbLheDX05IaFr7fMF2hcvcqDs3DBjy42WKEoXSaBVTcST6KKhoSy2UVX8pk9Fg== + version "2.4.3" + resolved "https://registry.yarnpkg.com/@oclif/plugin-not-found/-/plugin-not-found-2.4.3.tgz#3d24095adb0f3876cb4bcfdfdcb775086cf6d4b5" + integrity sha512-nIyaR4y692frwh7wIHZ3fb+2L6XEecQwRDIb4zbEam0TvaVmBQWZoColQyWA84ljFBPZ8XWiQyTz+ixSwdRkqg== dependencies: - "@oclif/color" "^1.0.8" - "@oclif/core" "^2.9.3" + "@oclif/core" "^2.15.0" + chalk "^4" fast-levenshtein "^3.0.0" -"@oclif/plugin-warn-if-update-available@^2.0.44": - version "2.0.44" - resolved "https://registry.yarnpkg.com/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-2.0.44.tgz#1693e5be181fba5ef6cd68ba3653a4209283a011" - integrity sha512-52Ww0B4F1tMhwjw2fe73lhmfDI/F4ynf3ur7/xnpnVBEvj5JG4sqolbEJV/0lV85+4dJNsYJRxubbPYjxcbCcA== +"@oclif/plugin-warn-if-update-available@^3.0.0": + version "3.0.2" + resolved "https://registry.yarnpkg.com/@oclif/plugin-warn-if-update-available/-/plugin-warn-if-update-available-3.0.2.tgz#76d02069c0d5545b5000660460edb6085272cbcd" + integrity sha512-dUXfRNFtnezS4uqQ+Ap4qb6UP0DWExTvoqghNvvGTIN4PEgfYHogvBORn+rFnDXXE8kgZFuqP4ZQJRP9NyLhOA== dependencies: - "@oclif/core" "^2.9.3" - chalk "^4.1.0" + "@oclif/core" "^3.3.1" + chalk "^5.3.0" debug "^4.1.0" - fs-extra "^9.0.1" http-call "^5.2.2" - lodash "^4.17.21" - semver "^7.5.4" + lodash.template "^4.5.0" "@octokit/auth-token@^2.4.4": version "2.5.0" - resolved "https://registry.npmjs.org/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" + resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.5.0.tgz#27c37ea26c205f28443402477ffd261311f21e36" 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.npmjs.org/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" + resolved "https://registry.yarnpkg.com/@octokit/core/-/core-3.6.0.tgz#3376cb9f3008d9b3d110370d90e0a1fcd5fe6085" integrity sha512-7RKRKuA4xTjMhY+eG3jthb3hlZCsOwg3rztWh75Xc+ShDWOfDDATWbeZpAHBNRpm4Tv9WgBMOy1zEJYXG6NJ7Q== dependencies: "@octokit/auth-token" "^2.4.4" @@ -892,7 +908,7 @@ "@octokit/endpoint@^6.0.1": version "6.0.12" - resolved "https://registry.npmjs.org/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" + resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.12.tgz#3b4d47a4b0e79b1027fb8d75d4221928b2d05658" integrity sha512-lF3puPwkQWGfkMClXb4k/eUT/nZKQfxinRWJrdZaJO85Dqwo/G0yOC434Jr2ojwafWJMYqFGFa5ms4jJUgujdA== dependencies: "@octokit/types" "^6.0.3" @@ -901,7 +917,7 @@ "@octokit/graphql@^4.5.8": version "4.8.0" - resolved "https://registry.npmjs.org/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" + resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.8.0.tgz#664d9b11c0e12112cbf78e10f49a05959aa22cc3" integrity sha512-0gv+qLSBLKF0z8TKaSKTsS39scVKF9dbMxJpj3U0vC7wjNWFuIpL/z76Qe2fiuCbDRcJSavkXsVtMS6/dtQQsg== dependencies: "@octokit/request" "^5.6.0" @@ -910,24 +926,24 @@ "@octokit/openapi-types@^12.11.0": version "12.11.0" - resolved "https://registry.npmjs.org/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-12.11.0.tgz#da5638d64f2b919bca89ce6602d059f1b52d3ef0" integrity sha512-VsXyi8peyRq9PqIz/tpqiL2w3w80OgVMwBHltTml3LmVvXiphgeqmY9mvBw9Wu7e0QWk/fqD37ux8yP5uVekyQ== "@octokit/plugin-paginate-rest@^2.16.8": version "2.21.3" - resolved "https://registry.npmjs.org/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz#7f12532797775640dbb8224da577da7dc210c87e" + resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-2.21.3.tgz#7f12532797775640dbb8224da577da7dc210c87e" 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.npmjs.org/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" + resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.4.tgz#5e50ed7083a613816b1e4a28aeec5fb7f1462e85" integrity sha512-mLUsMkgP7K/cnFEw07kWqXGF5LKrOkD+lhCrKvPHXWDywAwuDUeDwWBpc69XK3pNX0uKiVt8g5z96PJ6z9xCFA== "@octokit/plugin-rest-endpoint-methods@^5.12.0": version "5.16.2" - resolved "https://registry.npmjs.org/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz#7ee8bf586df97dd6868cf68f641354e908c25342" + resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-5.16.2.tgz#7ee8bf586df97dd6868cf68f641354e908c25342" integrity sha512-8QFz29Fg5jDuTPXVtey05BLm7OB+M8fnvE64RNegzX7U+5NUXcOcnpTIK0YfSHBg8gYd0oxIq3IZTe9SfPZiRw== dependencies: "@octokit/types" "^6.39.0" @@ -935,7 +951,7 @@ "@octokit/request-error@^2.0.5", "@octokit/request-error@^2.1.0": version "2.1.0" - resolved "https://registry.npmjs.org/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" + resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.1.0.tgz#9e150357831bfc788d13a4fd4b1913d60c74d677" integrity sha512-1VIvgXxs9WHSjicsRwq8PlR2LR2x6DwsJAaFgzdi0JfJoGSO8mYI/cHJQ+9FbN21aa+DrgNLnwObmyeSC8Rmpg== dependencies: "@octokit/types" "^6.0.3" @@ -944,7 +960,7 @@ "@octokit/request@^5.6.0", "@octokit/request@^5.6.3": version "5.6.3" - resolved "https://registry.npmjs.org/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" + resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.6.3.tgz#19a022515a5bba965ac06c9d1334514eb50c48b0" integrity sha512-bFJl0I1KVc9jYTe9tdGGpAMPy32dLBXXo1dS/YwSCTL/2nd9XeHsY616RE3HPXDVk+a+dBuzyz5YdlXwcDTr2A== dependencies: "@octokit/endpoint" "^6.0.1" @@ -956,7 +972,7 @@ "@octokit/rest@^18.0.6": version "18.12.0" - resolved "https://registry.npmjs.org/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" + resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-18.12.0.tgz#f06bc4952fc87130308d810ca9d00e79f6988881" integrity sha512-gDPiOHlyGavxr72y0guQEhLsemgVjwRePayJ+FcKc2SJqKUbxbkvf5kAZEWA/MKvsfYlQAMVzNJE3ezQcxMJ2Q== dependencies: "@octokit/core" "^3.5.1" @@ -966,7 +982,7 @@ "@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.npmjs.org/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.41.0.tgz#e58ef78d78596d2fb7df9c6259802464b5f84a04" integrity sha512-eJ2jbzjdijiL3B4PrSQaSjuF2sPEQPVCPzBvTHJD9Nz+9dw2SGH4K4xeQJ77YfTq5bRQ+bD8wT11JbeDPmxmGg== dependencies: "@octokit/openapi-types" "^12.11.0" @@ -1110,21 +1126,7 @@ handlebars "^4.7.8" tslib "^2" -"@salesforce/plugin-deploy-retrieve@^2.1.2": - version "2.1.2" - resolved "https://registry.yarnpkg.com/@salesforce/plugin-deploy-retrieve/-/plugin-deploy-retrieve-2.1.2.tgz#0885bb993cbb51634ac9205e1f67bc3ad30cc200" - integrity sha512-bZc/x1TcQZXvIdoHIMVDO43/jtXoJHToXVCzO8E7OQvjOVOCWo/U7oVIOA5maF64XbJj4I01cuIViUC7eRUJmw== - dependencies: - "@oclif/core" "^3.11.0" - "@salesforce/apex-node" "^2.1.2" - "@salesforce/core" "^6.1.3" - "@salesforce/kit" "^3.0.15" - "@salesforce/sf-plugins-core" "^5.0.1" - "@salesforce/source-deploy-retrieve" "^10.0.0" - "@salesforce/source-tracking" "^5.0.0" - chalk "^5.3.0" - -"@salesforce/plugin-info@^2.6.51": +"@salesforce/plugin-info@^2.6.50": version "2.6.51" resolved "https://registry.yarnpkg.com/@salesforce/plugin-info/-/plugin-info-2.6.51.tgz#49f5cc853e860504b85219c06340ae4154fc0eb3" integrity sha512-W6okjCPr5+bPfECB1DuoWUVaO1ztPdMH3jNu9xHJ9AAwhBRbh0I5teEJm1Z0YbxNut2yyouSS6oeujdgtEBjzw== @@ -1212,7 +1214,7 @@ minimatch "^5.1.6" proxy-agent "^6.3.1" -"@salesforce/source-testkit@^2.1.65": +"@salesforce/source-testkit@^2.1.62": version "2.1.65" resolved "https://registry.yarnpkg.com/@salesforce/source-testkit/-/source-testkit-2.1.65.tgz#4cec6ab2921431791cff4185ad2ee2b9de99776a" integrity sha512-9UljnUaebMzLpBb92ilQsaewsoxtncJduxwwCCbi52VejE47BauLNGBOM2B3kF8pw81bNrV94qZwqOlHUG6xsQ== @@ -1259,16 +1261,45 @@ dependencies: tslib "^2.6.2" -"@sigstore/protobuf-specs@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.1.0.tgz#957cb64ea2f5ce527cc9cf02a096baeb0d2b99b4" - integrity sha512-a31EnjuIDSX8IXBUib3cYLDRlPMU36AWX4xS8ysLaNu4ZzUesDiPt83pgrW2X1YLMe5L2HbDyaKK5BrL4cNKaQ== +"@sigstore/bundle@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-1.1.0.tgz#17f8d813b09348b16eeed66a8cf1c3d6bd3d04f1" + integrity sha512-PFutXEy0SmQxYI4texPw3dd2KewuNqv7OuK1ZFtY2fM754yhvG2KdgwIhRnoEE2uHdtdGNQ8s0lb94dW9sELog== + dependencies: + "@sigstore/protobuf-specs" "^0.2.0" + +"@sigstore/protobuf-specs@^0.2.0": + version "0.2.1" + resolved "https://registry.yarnpkg.com/@sigstore/protobuf-specs/-/protobuf-specs-0.2.1.tgz#be9ef4f3c38052c43bd399d3f792c97ff9e2277b" + 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" + integrity sha512-INxFVNQteLtcfGmcoldzV6Je0sbbfh9I16DM4yJPw3j5+TFP8X6uIiA18mvpEa9yyeycAKgPmOA3X9hVdVTPUA== + dependencies: + "@sigstore/bundle" "^1.1.0" + "@sigstore/protobuf-specs" "^0.2.0" + make-fetch-happen "^11.0.1" + +"@sigstore/tuf@^1.0.3": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@sigstore/tuf/-/tuf-1.0.3.tgz#2a65986772ede996485728f027b0514c0b70b160" + integrity sha512-2bRovzs0nJZFlCN3rXirE4gwxCn97JNjMmwpecqlbgV9WcxX7WRuIrgzx/X7Ib7MYRbyUTpBYE0s2x6AmZXnlg== + dependencies: + "@sigstore/protobuf-specs" "^0.2.0" + tuf-js "^1.1.7" "@sindresorhus/is@^4.0.0": version "4.6.0" - resolved "https://registry.npmjs.org/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.6.0.tgz#3c7c9c46e678feefe7a2e5bb609d3dbd665ffb3f" integrity sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw== +"@sindresorhus/is@^5.2.0": + version "5.6.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-5.6.0.tgz#41dd6093d34652cddb5d5bdeee04eafc33826668" + integrity sha512-TV7t8GKYaJWsn00tFDqBw8+Uqmr8A0fRU1tvTQhyZzGv0sJCGRQL3JGMI3ucuKo3XIZdUP+Lx7/gh2t3lewy7g== + "@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.6.0", "@sinonjs/commons@^1.7.0", "@sinonjs/commons@^1.8.1": version "1.8.6" resolved "https://registry.yarnpkg.com/@sinonjs/commons/-/commons-1.8.6.tgz#80c516a4dc264c2a69115e7578d62581ff455ed9" @@ -1299,7 +1330,7 @@ "@sinonjs/fake-timers@^6.0.0", "@sinonjs/fake-timers@^6.0.1": version "6.0.1" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" + resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz#293674fccb3262ac782c7aadfdeca86b10c75c40" integrity sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA== dependencies: "@sinonjs/commons" "^1.7.0" @@ -1313,14 +1344,14 @@ "@sinonjs/formatio@^2.0.0": version "2.0.0" - resolved "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" + resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-2.0.0.tgz#84db7e9eb5531df18a8c5e0bfb6e449e55e654b2" integrity sha512-ls6CAMA6/5gG+O/IdsBcblvnd8qcO/l1TYoNeAzp3wcISOxlPXQEus0mLcdwazEkWjaBdaJ3TaxmNgCLWwvWzg== dependencies: samsam "1.3.0" "@sinonjs/formatio@^3.2.1": version "3.2.2" - resolved "https://registry.npmjs.org/@sinonjs/formatio/-/formatio-3.2.2.tgz#771c60dfa75ea7f2d68e3b94c7e888a78781372c" + resolved "https://registry.yarnpkg.com/@sinonjs/formatio/-/formatio-3.2.2.tgz#771c60dfa75ea7f2d68e3b94c7e888a78781372c" integrity sha512-B8SEsgd8gArBLMD6zpRw3juQ2FVSsmdd7qlevyDqzS9WTCtvF55/gAL+h6gue8ZvPYcdiPdvueM/qm//9XzyTQ== dependencies: "@sinonjs/commons" "^1" @@ -1328,7 +1359,7 @@ "@sinonjs/samsam@^3.1.0": version "3.3.3" - resolved "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-3.3.3.tgz#46682efd9967b259b81136b9f120fd54585feb4a" integrity sha512-bKCMKZvWIjYD0BLGnNrxVuw4dkWCYsLqFOUWw8VgKF/+5Y+mE7LfHWPIYoDXowH+3a9LsWDMo0uAP8YDosPvHQ== dependencies: "@sinonjs/commons" "^1.3.0" @@ -1337,7 +1368,7 @@ "@sinonjs/samsam@^5.3.1": version "5.3.1" - resolved "https://registry.npmjs.org/@sinonjs/samsam/-/samsam-5.3.1.tgz#375a45fe6ed4e92fca2fb920e007c48232a6507f" + resolved "https://registry.yarnpkg.com/@sinonjs/samsam/-/samsam-5.3.1.tgz#375a45fe6ed4e92fca2fb920e007c48232a6507f" integrity sha512-1Hc0b1TtyfBu8ixF/tpfSHTVWKwCBLY4QJbkgnE7HcwyvT2xArDxb4K7dMgqRm3szI+LJbzmW/s4xxEhv6hwDg== dependencies: "@sinonjs/commons" "^1.6.0" @@ -1358,100 +1389,28 @@ resolved "https://registry.yarnpkg.com/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== -"@swc/core-darwin-arm64@1.3.96": - version "1.3.96" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-arm64/-/core-darwin-arm64-1.3.96.tgz#7c1c4245ce3f160a5b36a48ed071e3061a839e1d" - integrity sha512-8hzgXYVd85hfPh6mJ9yrG26rhgzCmcLO0h1TIl8U31hwmTbfZLzRitFQ/kqMJNbIBCwmNH1RU2QcJnL3d7f69A== - -"@swc/core-darwin-x64@1.3.96": - version "1.3.96" - resolved "https://registry.yarnpkg.com/@swc/core-darwin-x64/-/core-darwin-x64-1.3.96.tgz#4720ff897ca3f22fe77d0be688968161480c80f0" - integrity sha512-mFp9GFfuPg+43vlAdQZl0WZpZSE8sEzqL7sr/7Reul5McUHP0BaLsEzwjvD035ESfkY8GBZdLpMinblIbFNljQ== - -"@swc/core-linux-arm-gnueabihf@1.3.96": - version "1.3.96" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.3.96.tgz#2c238ae00b13918ac058b132a31dc57dbcf94e39" - integrity sha512-8UEKkYJP4c8YzYIY/LlbSo8z5Obj4hqcv/fUTHiEePiGsOddgGf7AWjh56u7IoN/0uEmEro59nc1ChFXqXSGyg== - -"@swc/core-linux-arm64-gnu@1.3.96": - version "1.3.96" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.3.96.tgz#be2e84506b9761b561fb9a341e587f8594a8e55d" - integrity sha512-c/IiJ0s1y3Ymm2BTpyC/xr6gOvoqAVETrivVXHq68xgNms95luSpbYQ28rqaZC8bQC8M5zdXpSc0T8DJu8RJGw== - -"@swc/core-linux-arm64-musl@1.3.96": - version "1.3.96" - resolved "https://registry.yarnpkg.com/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.3.96.tgz#22c9ce17bd923ae358760e668ca33c90210c2ae5" - integrity sha512-i5/UTUwmJLri7zhtF6SAo/4QDQJDH2fhYJaBIUhrICmIkRO/ltURmpejqxsM/ye9Jqv5zG7VszMC0v/GYn/7BQ== - -"@swc/core-linux-x64-gnu@1.3.96": - version "1.3.96" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.3.96.tgz#c17c072e338341c0ac3507a31ab2a36d16d79c98" - integrity sha512-USdaZu8lTIkm4Yf9cogct/j5eqtdZqTgcTib4I+NloUW0E/hySou3eSyp3V2UAA1qyuC72ld1otXuyKBna0YKQ== - -"@swc/core-linux-x64-musl@1.3.96": - version "1.3.96" - resolved "https://registry.yarnpkg.com/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.3.96.tgz#eb74594a48b4e9cabdce7f5525b3b946f8d6dd16" - integrity sha512-QYErutd+G2SNaCinUVobfL7jWWjGTI0QEoQ6hqTp7PxCJS/dmKmj3C5ZkvxRYcq7XcZt7ovrYCTwPTHzt6lZBg== - -"@swc/core-win32-arm64-msvc@1.3.96": - version "1.3.96" - resolved "https://registry.yarnpkg.com/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.3.96.tgz#6f7c0d20d80534b0676dc6761904288c16e93857" - integrity sha512-hjGvvAduA3Un2cZ9iNP4xvTXOO4jL3G9iakhFsgVhpkU73SGmK7+LN8ZVBEu4oq2SUcHO6caWvnZ881cxGuSpg== - -"@swc/core-win32-ia32-msvc@1.3.96": - version "1.3.96" - resolved "https://registry.yarnpkg.com/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.3.96.tgz#47bb24ef2e4c81407a6786649246983cc69e7854" - integrity sha512-Far2hVFiwr+7VPCM2GxSmbh3ikTpM3pDombE+d69hkedvYHYZxtTF+2LTKl/sXtpbUnsoq7yV/32c9R/xaaWfw== - -"@swc/core-win32-x64-msvc@1.3.96": - version "1.3.96" - resolved "https://registry.yarnpkg.com/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.3.96.tgz#c796e3df7afe2875d227c74add16a7d09c77d8bd" - integrity sha512-4VbSAniIu0ikLf5mBX81FsljnfqjoVGleEkCQv4+zRlyZtO3FHoDPkeLVoy6WRlj7tyrRcfUJ4mDdPkbfTO14g== - -"@swc/core@1.3.96": - version "1.3.96" - resolved "https://registry.yarnpkg.com/@swc/core/-/core-1.3.96.tgz#f04d58b227ceed2fee6617ce2cdddf21d0803f96" - integrity sha512-zwE3TLgoZwJfQygdv2SdCK9mRLYluwDOM53I+dT6Z5ZvrgVENmY3txvWDvduzkV+/8IuvrRbVezMpxcojadRdQ== - dependencies: - "@swc/counter" "^0.1.1" - "@swc/types" "^0.1.5" - optionalDependencies: - "@swc/core-darwin-arm64" "1.3.96" - "@swc/core-darwin-x64" "1.3.96" - "@swc/core-linux-arm-gnueabihf" "1.3.96" - "@swc/core-linux-arm64-gnu" "1.3.96" - "@swc/core-linux-arm64-musl" "1.3.96" - "@swc/core-linux-x64-gnu" "1.3.96" - "@swc/core-linux-x64-musl" "1.3.96" - "@swc/core-win32-arm64-msvc" "1.3.96" - "@swc/core-win32-ia32-msvc" "1.3.96" - "@swc/core-win32-x64-msvc" "1.3.96" - -"@swc/counter@^0.1.1": - version "0.1.2" - resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.2.tgz#bf06d0770e47c6f1102270b744e17b934586985e" - integrity sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw== - -"@swc/types@^0.1.5": - version "0.1.5" - resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.5.tgz#043b731d4f56a79b4897a3de1af35e75d56bc63a" - integrity sha512-myfUej5naTBWnqOCc/MdVOLVjXUXtIA+NpDrDBKJtLLg2shUjBu3cZmB/85RyitKc55+lUUyl7oRfLOvkr2hsw== - "@szmarczak/http-timer@^4.0.5": version "4.0.6" - resolved "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-4.0.6.tgz#b4a914bb62e7c272d4e5989fe4440f812ab1d807" integrity sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w== dependencies: defer-to-connect "^2.0.0" +"@szmarczak/http-timer@^5.0.1": + version "5.0.1" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-5.0.1.tgz#c7c1bf1141cdd4751b0399c8fc7b8b664cd5be3a" + integrity sha512-+PmQX0PiAYPMeVYe237LJAYvOMYW1j2rH5YROyS3b4CTVJum34HfRvKvAzozHAQG0TnHNdUfY9nCeUyRAs//cw== + dependencies: + defer-to-connect "^2.0.1" + "@tootallnate/once@1": version "1.1.2" - resolved "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-1.1.2.tgz#ccb91445360179a04e7fe6aff78c00ffc1eeaf82" integrity sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw== "@tootallnate/once@2": version "2.0.0" - resolved "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" + resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== "@tootallnate/quickjs-emscripten@^0.23.0": @@ -1475,9 +1434,9 @@ integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== "@tsconfig/node16@^1.0.2": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" - integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + version "1.0.4" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" + integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== "@tufjs/canonical-json@1.0.0": version "1.0.0" @@ -1493,15 +1452,15 @@ minimatch "^9.0.0" "@types/archiver@^5.3.2": - version "5.3.2" - resolved "https://registry.yarnpkg.com/@types/archiver/-/archiver-5.3.2.tgz#a9f0bcb0f0b991400e7766d35f6e19d163bdadcc" - integrity sha512-IctHreBuWE5dvBDz/0WeKtyVKVRs4h75IblxOACL92wU66v+HGAfEYAOyXkOFphvRJMhuXdI9huDXpX0FC6lCw== + version "5.3.4" + resolved "https://registry.yarnpkg.com/@types/archiver/-/archiver-5.3.4.tgz#32172d5a56f165b5b4ac902e366248bf03d3ae84" + integrity sha512-Lj7fLBIMwYFgViVVZHEdExZC3lVYsl+QL0VmdNdIzGZH544jHveYWij6qdnBgJQDnR7pMKliN9z2cPZFEbhyPw== dependencies: "@types/readdir-glob" "*" "@types/cacheable-request@^6.0.1": version "6.0.3" - resolved "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" + resolved "https://registry.yarnpkg.com/@types/cacheable-request/-/cacheable-request-6.0.3.tgz#a430b3260466ca7b5ca5bfd735693b36e7a9d183" integrity sha512-IQ3EbTzGxIigb1I3qPZc1rWJnH0BmSKv5QYTalEwweFvyBDLSAe24zP0le/hyi7ecGfZVlIVAg4BZqb8WBwKqw== dependencies: "@types/http-cache-semantics" "*" @@ -1515,15 +1474,15 @@ integrity sha512-of+ICnbqjmFCiixUnqRulbylyXQrPqIGf/B3Jax1wIF3DvSheysQxAWvqHhZiW3IQrycvokcLcFQlveGp+vyNg== "@types/cli-progress@^3.11.0": - version "3.11.0" - resolved "https://registry.yarnpkg.com/@types/cli-progress/-/cli-progress-3.11.0.tgz#ec79df99b26757c3d1c7170af8422e0fc95eef7e" - integrity sha512-XhXhBv1R/q2ahF3BM7qT5HLzJNlIL0wbcGyZVjqOTqAybAnsLisd7gy1UCyIqpL+5Iv6XhlSyzjLCnI2sIdbCg== + version "3.11.5" + resolved "https://registry.yarnpkg.com/@types/cli-progress/-/cli-progress-3.11.5.tgz#9518c745e78557efda057e3f96a5990c717268c3" + integrity sha512-D4PbNRbviKyppS5ivBGyFO29POlySLmA2HyUFE4p5QGazAMM3CwkKWcvTl8gvElSuxRh6FPKL8XmidX873ou4g== dependencies: "@types/node" "*" "@types/expect@^1.20.4": version "1.20.4" - resolved "https://registry.npmjs.org/@types/expect/-/expect-1.20.4.tgz#8288e51737bf7e3ab5d7c77bfa695883745264e5" + resolved "https://registry.yarnpkg.com/@types/expect/-/expect-1.20.4.tgz#8288e51737bf7e3ab5d7c77bfa695883745264e5" integrity sha512-Q5Vn3yjTDyCMV50TB6VRIbQNxSE4OmZR86VSbGaNpfUolm0iePBB4KdEEHmxoY5sT2+2DIvXW0rvMDP2nHZ4Mg== "@types/glob@~7.2.0": @@ -1534,10 +1493,10 @@ "@types/minimatch" "*" "@types/node" "*" -"@types/http-cache-semantics@*": - version "4.0.1" - resolved "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz#0ea7b61496902b95890dc4c3a116b60cb8dae812" - integrity sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ== +"@types/http-cache-semantics@*", "@types/http-cache-semantics@^4.0.2": + version "4.0.4" + resolved "https://registry.yarnpkg.com/@types/http-cache-semantics/-/http-cache-semantics-4.0.4.tgz#b979ebad3919799c979b17c72621c0bc0a31c6c4" + integrity sha512-1m0bIFVc7eJWyve9S0RnuRgcQqF/Xd5QsUZAZeQFr1Q3/p9JWoQQEqmVy+DPTNpGXwhgIetAoYF8JSc33q29QA== "@types/inquirer@^8.2.3": version "8.2.10" @@ -1548,37 +1507,37 @@ rxjs "^7.2.0" "@types/istanbul-lib-coverage@*": - version "2.0.4" - resolved "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz#8467d4b3c087805d63580480890791277ce35c44" - integrity sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g== + version "2.0.6" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz#7739c232a1fee9b4d3ce8985f314c0c6d33549d7" + integrity sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w== "@types/istanbul-lib-report@*": - version "3.0.0" - resolved "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" - integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz#53047614ae72e19fc0401d872de3ae2b4ce350bf" + integrity sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA== dependencies: "@types/istanbul-lib-coverage" "*" "@types/istanbul-reports@^3.0.1": - version "3.0.1" - resolved "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz#9153fe98bba2bd565a63add9436d6f0d7f8468ff" - integrity sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw== + version "3.0.4" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz#0f03e3d2f670fbdac586e34b433783070cc16f54" + integrity sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ== dependencies: "@types/istanbul-lib-report" "*" "@types/json-schema@^7.0.12", "@types/json-schema@^7.0.9": - version "7.0.13" - resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.13.tgz#02c24f4363176d2d18fc8b70b9f3c54aba178a85" - integrity sha512-RbSSoHliUbnXj3ny0CNFOoxrIDV6SUGyStHsvDqosw6CkdPV8TtWGlfecuK4ToyMEAql6pzNxgCFKanovUzlgQ== + version "7.0.15" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.15.tgz#596a1747233694d50f6ad8a7869fcb6f56cf5841" + integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/json5@^0.0.29": version "0.0.29" - resolved "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== "@types/keyv@^3.1.4": version "3.1.4" - resolved "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" + resolved "https://registry.yarnpkg.com/@types/keyv/-/keyv-3.1.4.tgz#3ccdb1c6751b0c7e52300bcdacd5bcbf8faa75b6" integrity sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg== dependencies: "@types/node" "*" @@ -1602,13 +1561,13 @@ "@types/minimatch@^3.0.3": version "3.0.5" - resolved "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.5.tgz#1001cc5e6a3704b83c236027e77f2f58ea010f40" integrity sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ== "@types/minimist@^1.2.0": - version "1.2.2" - resolved "https://registry.npmjs.org/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" - integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== + version "1.2.5" + resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.5.tgz#ec10755e871497bcd83efe927e43ec46e8c0747e" + integrity sha512-hov8bUuiLiyFPGyFPE1lwWhmzYbirOXQNNo40+y3zow8aFVTeyn3VWL0VFFfdNddA8S4Vf0Tc062rzyNr7Paag== "@types/mocha@^10.0.4": version "10.0.4" @@ -1616,57 +1575,62 @@ integrity sha512-xKU7bUjiFTIttpWaIZ9qvgg+22O1nmbA+HRxdlR+u6TWsGfmFdXrheJoK4fFxrHNVIOBDvDNKZG+LYBpMHpX3w== "@types/node@*": - version "20.8.10" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.8.10.tgz#a5448b895c753ae929c26ce85cab557c6d4a365e" - integrity sha512-TlgT8JntpcbmKUFzjhsyhGfP2fsiz1Mv56im6enJ905xG1DAYesxJaeSbGqQmAw8OWPdhyJGhGSQGKRNJ45u9w== + version "20.9.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.0.tgz#bfcdc230583aeb891cf51e73cfdaacdd8deae298" + integrity sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw== dependencies: 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" + integrity sha512-4tT2UrL5LBqDwoed9wZ6N3umC4Yhz3W3FloMmiiG4JwmUJWpie0c7lcnUNd4gtMKuDEO4wRVS8B6Xa0uMRsMKg== + "@types/node@^12.19.9": version "12.20.55" resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== -"@types/node@^15.6.1": +"@types/node@^15.6.2": version "15.14.9" - resolved "https://registry.npmjs.org/@types/node/-/node-15.14.9.tgz#bc43c990c3c9be7281868bbc7b8fdd6e2b57adfa" + resolved "https://registry.yarnpkg.com/@types/node/-/node-15.14.9.tgz#bc43c990c3c9be7281868bbc7b8fdd6e2b57adfa" integrity sha512-qjd88DrCxupx/kJD5yQgZdcYKZKSIGBVDIBE1/LTGcNm3d2Np/jxojkdePDdfnBHJc5W7vSMpbJ1aB7p/Py69A== "@types/node@^18": - version "18.18.8" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.8.tgz#2b285361f2357c8c8578ec86b5d097c7f464cfd6" - integrity sha512-OLGBaaK5V3VRBS1bAkMVP2/W9B+H8meUfl866OrMNQqt7wDgdpWPp5o6gmIc9pB+lIQHSq4ZL8ypeH1vPxcPaQ== + version "18.18.9" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.9.tgz#5527ea1832db3bba8eb8023ce8497b7d3f299592" + integrity sha512-0f5klcuImLnG4Qreu9hPj/rEfFq6YRc5n2mAjSsH+ec/mJL+3voBH0+8T7o8RpFjH7ovc+TRsL/c7OYIQsPTfQ== dependencies: undici-types "~5.26.4" "@types/normalize-package-data@^2.4.0": - version "2.4.1" - resolved "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" - integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== + version "2.4.4" + resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.4.tgz#56e2cc26c397c038fab0e3a917a12d5c5909e901" + integrity sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA== "@types/parse-json@^4.0.0": - version "4.0.0" - resolved "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" - integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.2.tgz#5950e50960793055845e956c427fc2b0d70c5239" + integrity sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw== "@types/readdir-glob@*": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@types/readdir-glob/-/readdir-glob-1.1.1.tgz#27ac2db283e6aa3d110b14ff9da44fcd1a5c38b1" - integrity sha512-ImM6TmoF8bgOwvehGviEj3tRdRBbQujr1N+0ypaln/GWjaerOB26jb93vsRHmdMtvVQZQebOlqt2HROark87mQ== + version "1.1.4" + resolved "https://registry.yarnpkg.com/@types/readdir-glob/-/readdir-glob-1.1.4.tgz#6ee7163382f65b4434df3dc8e2e2fd68bc95a1fd" + integrity sha512-uEJsErL2wFCTcbbmJpIuD8OWYNabgv1oaYP2bOkzZXKtk3c6LCYQEKngIqBj2VR2NMv9DOAXSkxSYOWtHxh2gQ== dependencies: "@types/node" "*" "@types/responselike@^1.0.0": - version "1.0.0" - resolved "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz#251f4fe7d154d2bad125abe1b429b23afd262e29" - integrity sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA== + version "1.0.3" + resolved "https://registry.yarnpkg.com/@types/responselike/-/responselike-1.0.3.tgz#cc29706f0a397cfe6df89debfe4bf5cea159db50" + integrity sha512-H/+L+UkTV33uf49PH5pCAUBVPNj2nDBXTN+qS1dOwyyg24l3CcicicCA7ca+HMvJBZcFgl5r8e+RR6elsb4Lyw== dependencies: "@types/node" "*" "@types/semver@^7.3.12", "@types/semver@^7.5.0", "@types/semver@^7.5.4": - version "7.5.4" - resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.4.tgz#0a41252ad431c473158b22f9bfb9a63df7541cff" - integrity sha512-MMzuxN3GdFwskAnb6fz0orFvhfqi752yjaXylr0Rp4oDg5H0Zn1IuyRhDVvYOwAXoJirx2xuS16I3WjxnAIHiQ== + version "7.5.5" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.5.5.tgz#deed5ab7019756c9c90ea86139106b0346223f35" + integrity sha512-+d+WYC1BxJ6yVOgUgzK8gWvp5qF8ssV5r4nsDcZWKRWcDQLQ619tvWAxJQYGgBrO1MnLJC7a5GtiYsAoQ47dJg== "@types/shelljs@^0.8.15": version "0.8.15" @@ -1684,9 +1648,9 @@ "@types/sinonjs__fake-timers" "*" "@types/sinonjs__fake-timers@*": - version "8.1.2" - resolved "https://registry.npmjs.org/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.2.tgz#bf2e02a3dbd4aecaf95942ecd99b7402e03fad5e" - integrity sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA== + version "8.1.5" + resolved "https://registry.yarnpkg.com/@types/sinonjs__fake-timers/-/sinonjs__fake-timers-8.1.5.tgz#5fd3592ff10c1e9695d377020c033116cc2889f2" + integrity sha512-mQkU2jY8jJEF7YHjHvsQO8+3ughTL1mcnn96igfhONmR+fUPSKIkefQYpSe8bsly2Ep7oQbn/6VG5/9/0qcArQ== "@types/through@*": version "0.0.33" @@ -1696,9 +1660,9 @@ "@types/node" "*" "@types/vinyl@^2.0.4": - version "2.0.7" - resolved "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.7.tgz#9739a9a2afaf9af32761c54a0e82c735279f726c" - integrity sha512-4UqPv+2567NhMQuMLdKAyK4yzrfCqwaTt6bLhHEs8PFcxbHILsrxaY63n4wgE/BRLDWDQeI+WcTmkXKExh9hQg== + version "2.0.10" + resolved "https://registry.yarnpkg.com/@types/vinyl/-/vinyl-2.0.10.tgz#0be9d0750816b945f66dc7b24a5dee8a7bda1574" + integrity sha512-DqN5BjCrmjAtZ1apqzcq2vk2PSW0m1nFfjIafBFkAyddmHxuw3ZAK3omLiSdpuu81+8h07i6U4DtaE38Xsf2xQ== dependencies: "@types/expect" "^1.20.4" "@types/node" "*" @@ -1739,6 +1703,14 @@ "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" +"@typescript-eslint/scope-manager@6.10.0": + version "6.10.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.10.0.tgz#b0276118b13d16f72809e3cecc86a72c93708540" + integrity sha512-TN/plV7dzqqC2iPNf1KrxozDgZs53Gfgg5ZHyw8erd6jd5Ta/JIEcdCheXFt9b1NYb93a1wmIIVW/2gLkombDg== + dependencies: + "@typescript-eslint/types" "6.10.0" + "@typescript-eslint/visitor-keys" "6.10.0" + "@typescript-eslint/scope-manager@6.11.0": version "6.11.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.11.0.tgz#621f603537c89f4d105733d949aa4d55eee5cea8" @@ -1762,6 +1734,11 @@ resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== +"@typescript-eslint/types@6.10.0": + version "6.10.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.10.0.tgz#f4f0a84aeb2ac546f21a66c6e0da92420e921367" + integrity sha512-36Fq1PWh9dusgo3vH7qmQAj5/AZqARky1Wi6WpINxB6SkQdY5vQoT2/7rW7uBIsPDcvvGCLi4r10p0OJ7ITAeg== + "@typescript-eslint/types@6.11.0": version "6.11.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.11.0.tgz#8ad3aa000cbf4bdc4dcceed96e9b577f15e0bf53" @@ -1780,6 +1757,19 @@ semver "^7.3.7" tsutils "^3.21.0" +"@typescript-eslint/typescript-estree@6.10.0": + version "6.10.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.10.0.tgz#667381eed6f723a1a8ad7590a31f312e31e07697" + integrity sha512-ek0Eyuy6P15LJVeghbWhSrBCj/vJpPXXR+EpaRZqou7achUWL8IdYnMSC5WHAeTWswYQuP2hAZgij/bC9fanBg== + dependencies: + "@typescript-eslint/types" "6.10.0" + "@typescript-eslint/visitor-keys" "6.10.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + semver "^7.5.4" + ts-api-utils "^1.0.1" + "@typescript-eslint/typescript-estree@6.11.0": version "6.11.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.11.0.tgz#7b52c12a623bf7f8ec7f8a79901b9f98eb5c7990" @@ -1820,6 +1810,19 @@ eslint-scope "^5.1.1" semver "^7.3.7" +"@typescript-eslint/utils@^6.7.5": + version "6.10.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.10.0.tgz#4d76062d94413c30e402c9b0df8c14aef8d77336" + integrity sha512-v+pJ1/RcVyRc0o4wAGux9x42RHmAjIGzPRo538Z8M1tVx6HOnoQBCX/NoadHQlZeC+QO2yr4nNSFWOoraZCAyg== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.10.0" + "@typescript-eslint/types" "6.10.0" + "@typescript-eslint/typescript-estree" "6.10.0" + semver "^7.5.4" + "@typescript-eslint/visitor-keys@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" @@ -1828,6 +1831,14 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" +"@typescript-eslint/visitor-keys@6.10.0": + version "6.10.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.10.0.tgz#b9eaf855a1ac7e95633ae1073af43d451e8f84e3" + integrity sha512-xMGluxQIEtOM7bqFCo+rCMh5fqI+ZxV5RUUOa29iVPz1OgCZrtc7rFnz5cLUazlkPKYqX+75iuDq7m0HQ48nCg== + dependencies: + "@typescript-eslint/types" "6.10.0" + eslint-visitor-keys "^3.4.1" + "@typescript-eslint/visitor-keys@6.11.0": version "6.11.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.11.0.tgz#d991538788923f92ec40d44389e7075b359f3458" @@ -1841,9 +1852,9 @@ resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== -JSONStream@^1.0.4: +JSONStream@^1.3.5: version "1.3.5" - resolved "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== dependencies: jsonparse "^1.2.0" @@ -1851,7 +1862,7 @@ JSONStream@^1.0.4: abbrev@1, abbrev@^1.0.0: version "1.1.1" - resolved "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== abort-controller@^3.0.0: @@ -1867,14 +1878,14 @@ acorn-jsx@^5.3.2: 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" - integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + version "8.3.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.0.tgz#2097665af50fd0cf7a2dfccd2b9368964e66540f" + integrity sha512-FS7hV565M5l1R08MXqo8odwMTB02C2UqzB17RVgu9EyuYFBqJZ3/ZY97sQD5FewVu1UyDFc1yztUDrAwT0EypA== acorn@^8.4.1, acorn@^8.9.0: - version "8.10.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" - integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw== + version "8.11.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.2.tgz#ca0d78b51895be5390a5903c5b3bdcdaf78ae40b" + integrity sha512-nc0Axzp/0FILLEVsm4fNwLCwMttvhEI263QtVPQcbpfZZ3ts0hLsZGOpE6czNlid7CJ9MlyH8reXkpsf3YUY4w== agent-base@6, agent-base@^6.0.2: version "6.0.2" @@ -1891,17 +1902,15 @@ agent-base@^7.0.2, agent-base@^7.1.0: debug "^4.3.4" agentkeepalive@^4.1.3, agentkeepalive@^4.2.1: - version "4.2.1" - resolved "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz#a7975cbb9f83b367f06c90cc51ff28fe7d499717" - integrity sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA== + version "4.5.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923" + integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew== dependencies: - debug "^4.1.0" - depd "^1.1.2" humanize-ms "^1.2.1" aggregate-error@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.1.0.tgz#92670ff50f5359bdb7a3e0d40d0ec30c5737687a" integrity sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA== dependencies: clean-stack "^2.0.0" @@ -1909,7 +1918,7 @@ aggregate-error@^3.0.0: ajv@^6.12.4: version "6.12.6" - resolved "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== dependencies: fast-deep-equal "^3.1.1" @@ -1929,14 +1938,9 @@ ajv@^8.11.0, ajv@^8.12.0: ansi-colors@4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-escapes@^3.1.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" - integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== - ansi-escapes@^4.2.1, ansi-escapes@^4.3.1, ansi-escapes@^4.3.2: version "4.3.2" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.2.tgz#6b2291d1db7d98b6521d5f1efa42d0f3a9feb65e" @@ -1961,12 +1965,12 @@ ansi-sequence-parser@^1.1.0: ansi-styles@^3.2.1: version "3.2.1" - resolved "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" 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.2.1, ansi-styles@^4.3.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" integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== @@ -1984,23 +1988,23 @@ ansicolors@~0.3.2: integrity sha512-QXu7BPrP29VllRxH8GwB7x5iX5qWKAAMLqKQGWTeLWVlNHNOpVMJ91dsxQAIWXpjuW5wqvxu3Jd/nRjrJ+0pqg== anymatch@~3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716" - integrity sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg== + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== dependencies: normalize-path "^3.0.0" picomatch "^2.0.4" append-transform@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/append-transform/-/append-transform-2.0.0.tgz#99d9d29c7b38391e6f428d28ce136551f0b77e12" + resolved "https://registry.yarnpkg.com/append-transform/-/append-transform-2.0.0.tgz#99d9d29c7b38391e6f428d28ce136551f0b77e12" integrity sha512-7yeyCEurROLQJFv5Xj4lEGTy0borxepjFv1g22oAdqFu//SrAlDl1O1Nxx15SH1RoliUml6p8dwJW9jvZughhg== dependencies: default-require-extensions "^3.0.0" "aproba@^1.0.3 || ^2.0.0": version "2.0.0" - resolved "https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc" integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ== archiver-utils@^2.1.0: @@ -2019,6 +2023,22 @@ archiver-utils@^2.1.0: normalize-path "^3.0.0" readable-stream "^2.0.0" +archiver-utils@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/archiver-utils/-/archiver-utils-3.0.4.tgz#a0d201f1cf8fce7af3b5a05aea0a337329e96ec7" + integrity sha512-KVgf4XQVrTjhyWmx6cte4RxonPLR9onExufI1jhvw/MQ4BB6IsZD5gT8Lq+u/+pRkWna/6JoHpiQioaqFP5Rzw== + dependencies: + glob "^7.2.3" + graceful-fs "^4.2.0" + lazystream "^1.0.0" + lodash.defaults "^4.2.0" + lodash.difference "^4.5.0" + lodash.flatten "^4.4.0" + lodash.isplainobject "^4.0.6" + lodash.union "^4.6.0" + normalize-path "^3.0.0" + readable-stream "^3.6.0" + archiver@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/archiver/-/archiver-5.3.2.tgz#99991d5957e53bd0303a392979276ac4ddccf3b0" @@ -2034,7 +2054,7 @@ archiver@^5.3.2: archy@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" + resolved "https://registry.yarnpkg.com/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== are-docs-informative@^0.0.2: @@ -2044,7 +2064,7 @@ are-docs-informative@^0.0.2: are-we-there-yet@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz#372e0e7bd279d8e94c653aaa1f67200884bf3e1c" integrity sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw== dependencies: delegates "^1.0.0" @@ -2052,7 +2072,7 @@ are-we-there-yet@^2.0.0: are-we-there-yet@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.1.tgz#679df222b278c64f2cdba1175cdc00b0d96164bd" integrity sha512-QZW4EDmGwlYur0Yyf/b2uGucHQMa8aFUP7eu9ddR73vvhFyt4V0Vl3QHPcTNJ8l6qYOBdxgXdnBXQrHilfRQBg== dependencies: delegates "^1.0.0" @@ -2072,7 +2092,7 @@ argparse@^1.0.7: argparse@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== array-buffer-byte-length@^1.0.0: @@ -2085,17 +2105,17 @@ array-buffer-byte-length@^1.0.0: array-differ@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" + resolved "https://registry.yarnpkg.com/array-differ/-/array-differ-3.0.0.tgz#3cbb3d0f316810eafcc47624734237d6aee4ae6b" integrity sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg== array-from@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" + resolved "https://registry.yarnpkg.com/array-from/-/array-from-2.1.1.tgz#cfe9d8c26628b9dc5aecc62a9f5d8f1f352c1195" integrity sha512-GQTc6Uupx1FCavi5mPzBvVT7nEOeWMmUA9P95wpfpW1XwMSKs+KaymD5C2Up7KAUKg/mYwbsUYzdZWcoajlNZg== array-ify@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" + resolved "https://registry.yarnpkg.com/array-ify/-/array-ify-1.0.0.tgz#9e528762b4a9066ad163a6962a364418e9626ece" integrity sha512-c5AMf34bKdvPhQ7tBGhqkgKNUzMr4WUs+WDtC2ZUGOUncbxKMTvqxYctiseW3+L4bA8ec+GcZ6/A/FW4m8ukng== array-includes@^3.1.7: @@ -2160,12 +2180,12 @@ arraybuffer.prototype.slice@^1.0.2: arrify@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== arrify@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== asap@*, asap@^2.0.0: @@ -2175,12 +2195,12 @@ asap@*, asap@^2.0.0: assertion-error@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== ast-types@^0.13.4: version "0.13.4" - resolved "https://registry.npmjs.org/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" + resolved "https://registry.yarnpkg.com/ast-types/-/ast-types-0.13.4.tgz#ee0d77b343263965ecc3fb62da16e7222b2b6782" integrity sha512-x1FCFnFifvYDDzTaLII71vG5uvDwgtmDTEVWAxrgeiR8VjMONcCXJx7E+USjDtHlwFmt9MysbqgF9b9Vjr6w+w== dependencies: tslib "^2.0.1" @@ -2203,20 +2223,15 @@ async-retry@^1.3.3: retry "0.13.1" async@^3.2.3, async@^3.2.4: - version "3.2.4" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.4.tgz#2d22e00f8cddeb5fde5dd33522b56d1cf569a81c" - integrity sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ== + version "3.2.5" + resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66" + integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg== asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - atomic-sleep@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/atomic-sleep/-/atomic-sleep-1.0.0.tgz#eb85b77a601fc932cfe432c5acd364a9e2c9075b" @@ -2224,13 +2239,13 @@ atomic-sleep@^1.0.0: available-typed-arrays@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" + resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.5.tgz#92f95616501069d07d10edb2fc37d3e1c65123b7" integrity sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw== aws-sdk@^2.1231.0: - version "2.1257.0" - resolved "https://registry.npmjs.org/aws-sdk/-/aws-sdk-2.1257.0.tgz#8ed8ca99f97dc642fce98dac7d5eb18e94ae9833" - integrity sha512-SNfKIVlJdLyBbUSGgvsBOuV4iOE1modoKOhnV/bIi2F7DJkq4SCPmrN1nwLNBnOQQvZRlPwFbHPVrJ3clTXLDQ== + version "2.1492.0" + resolved "https://registry.yarnpkg.com/aws-sdk/-/aws-sdk-2.1492.0.tgz#ef16036f97364d5114f54505c37e82c044d6e872" + integrity sha512-3q17ruBkwb3pL87CHSbRlYiwx1LCq7D7hIjHgZ/5SPeKknkXgkHnD20SD2lC8Nj3xGbpIUhoKXcpDAGgIM5DBA== dependencies: buffer "4.9.2" events "1.1.1" @@ -2241,7 +2256,7 @@ aws-sdk@^2.1231.0: url "0.10.3" util "^0.12.4" uuid "8.0.0" - xml2js "0.4.19" + xml2js "0.5.0" balanced-match@^1.0.0: version "1.0.2" @@ -2265,12 +2280,12 @@ basic-ftp@^5.0.2: before-after-hook@^2.2.0: version "2.2.3" - resolved "https://registry.npmjs.org/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" + resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.2.3.tgz#c51e809c81a4e354084422b9b26bad88249c517c" integrity sha512-NzUnlZexiaH/46WDhANlyR2bXRopNg4F/zuSA3OpZnllCUgRaOF2znDioDWrmbNVsuZk6l9pMquQB38cfBZwkQ== bin-links@^3.0.0: version "3.0.3" - resolved "https://registry.npmjs.org/bin-links/-/bin-links-3.0.3.tgz#3842711ef3db2cd9f16a5f404a996a12db355a6e" + resolved "https://registry.yarnpkg.com/bin-links/-/bin-links-3.0.3.tgz#3842711ef3db2cd9f16a5f404a996a12db355a6e" integrity sha512-zKdnMPWEdh4F5INR07/eBrodC7QrF5JKvqskjz/ZZRXg5YSAZIbn8zGhbhUrElzHBZ2fvEQdOU59RHcTG3GiwA== dependencies: cmd-shim "^5.0.0" @@ -2282,13 +2297,13 @@ bin-links@^3.0.0: binary-extensions@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== binaryextensions@^4.15.0, binaryextensions@^4.16.0: - version "4.18.0" - resolved "https://registry.npmjs.org/binaryextensions/-/binaryextensions-4.18.0.tgz#22aeada2d14de062c60e8ca59a504a5636a76ceb" - integrity sha512-PQu3Kyv9dM4FnwB7XGj1+HucW+ShvJzJqjuw1JkKVs1mWdwOKVcRjOi+pV9X52A0tNvrPCsPkbFFQb+wE1EAXw== + version "4.19.0" + resolved "https://registry.yarnpkg.com/binaryextensions/-/binaryextensions-4.19.0.tgz#7944b41ce6bbbcd3e544e05f65794ac48caaa132" + integrity sha512-DRxnVbOi/1OgA5pA9EDiRT8gvVYeqfuN7TmPfLyt6cyho3KbHCi3EtDQf39TTmGDrR5dZ9CspdXhPkL/j/WGbg== bl@^4.0.3, bl@^4.1.0: version "4.1.0" @@ -2323,18 +2338,18 @@ braces@^3.0.2, braces@~3.0.2: browser-stdout@1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browserslist@^4.21.3: - version "4.21.4" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987" - integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw== +browserslist@^4.21.9: + version "4.22.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.22.1.tgz#ba91958d1a59b87dab6fed8dfbcb3da5e2e9c619" + integrity sha512-FEVc202+2iuClEhZhrWy6ZiAcRLvNMyYcxZ8raemul1DYVOVdFsbqckWLdsixQZCpJlwe77Z3UTalE7jsjnKfQ== dependencies: - caniuse-lite "^1.0.30001400" - electron-to-chromium "^1.4.251" - node-releases "^2.0.6" - update-browserslist-db "^1.0.9" + caniuse-lite "^1.0.30001541" + electron-to-chromium "^1.4.535" + node-releases "^2.0.13" + update-browserslist-db "^1.0.13" buffer-crc32@^0.2.1, buffer-crc32@^0.2.13: version "0.2.13" @@ -2348,12 +2363,12 @@ buffer-equal-constant-time@1.0.1: buffer-from@^1.0.0: version "1.1.2" - resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== buffer@4.9.2: version "4.9.2" - resolved "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== dependencies: base64-js "^1.0.2" @@ -2383,7 +2398,7 @@ builtin-modules@^3.3.0: builtins@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" + resolved "https://registry.yarnpkg.com/builtins/-/builtins-1.0.3.tgz#cb94faeb61c8696451db36534e1422f94f0aee88" integrity sha512-uYBjakWipfaO/bXI7E8rq6kpwHRZK5cNYrUv2OzZSI/FvmdMyXJ2tG9dKcjEC5YHmHpUAwsargWIZNWdxb/bnQ== builtins@^5.0.0: @@ -2395,7 +2410,7 @@ builtins@^5.0.0: cacache@^15.0.3, cacache@^15.0.5, cacache@^15.2.0: version "15.3.0" - resolved "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-15.3.0.tgz#dc85380fb2f556fe3dda4c719bfa0ec875a7f1eb" integrity sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ== dependencies: "@npmcli/fs" "^1.0.0" @@ -2419,7 +2434,7 @@ cacache@^15.0.3, cacache@^15.0.5, cacache@^15.2.0: cacache@^16.1.0: version "16.1.3" - resolved "https://registry.npmjs.org/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-16.1.3.tgz#a02b9f34ecfaf9a78c9f4bc16fceb94d5d67a38e" integrity sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ== dependencies: "@npmcli/fs" "^2.1.0" @@ -2442,15 +2457,15 @@ cacache@^16.1.0: unique-filename "^2.0.0" cacache@^17.0.0: - version "17.1.3" - resolved "https://registry.yarnpkg.com/cacache/-/cacache-17.1.3.tgz#c6ac23bec56516a7c0c52020fd48b4909d7c7044" - integrity sha512-jAdjGxmPxZh0IipMdR7fK/4sDSrHMLUV0+GvVUsjwyGNKHsh79kW/otg+GkbXwl6Uzvy9wsvHOX4nUoWldeZMg== + version "17.1.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-17.1.4.tgz#b3ff381580b47e85c6e64f801101508e26604b35" + integrity sha512-/aJwG2l3ZMJ1xNAnqbMpA40of9dj/pIH3QfiuQSqjfPJF747VR0J/bHn+/KdNnHKc6XQcWt/AfRSBft82W1d2A== dependencies: "@npmcli/fs" "^3.1.0" fs-minipass "^3.0.0" glob "^10.2.2" lru-cache "^7.7.1" - minipass "^5.0.0" + minipass "^7.0.3" minipass-collect "^1.0.2" minipass-flush "^1.0.5" minipass-pipeline "^1.2.4" @@ -2461,13 +2476,31 @@ cacache@^17.0.0: cacheable-lookup@^5.0.3: version "5.0.4" - resolved "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-5.0.4.tgz#5a6b865b2c44357be3d5ebc2a467b032719a7005" integrity sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA== +cacheable-lookup@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/cacheable-lookup/-/cacheable-lookup-7.0.0.tgz#3476a8215d046e5a3202a9209dd13fec1f933a27" + integrity sha512-+qJyx4xiKra8mZrcwhjMRMUhD5NR1R8esPkzIYxX96JiecFoxAXFuz/GpR3+ev4PE1WamHip78wV0vcmPQtp8w== + +cacheable-request@^10.2.8: + version "10.2.14" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-10.2.14.tgz#eb915b665fda41b79652782df3f553449c406b9d" + integrity sha512-zkDT5WAF4hSSoUgyfg5tFIxz8XQK+25W/TLVojJTMKBaxevLBBtLxgqguAuVQB8PVW79FVjHcU+GJ9tVbDZ9mQ== + dependencies: + "@types/http-cache-semantics" "^4.0.2" + get-stream "^6.0.1" + http-cache-semantics "^4.1.1" + keyv "^4.5.3" + mimic-response "^4.0.0" + normalize-url "^8.0.0" + responselike "^3.0.0" + cacheable-request@^7.0.2: - version "7.0.2" - resolved "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.2.tgz#ea0d0b889364a25854757301ca12b2da77f91d27" - integrity sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew== + version "7.0.4" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-7.0.4.tgz#7a33ebf08613178b403635be7b899d3e69bbe817" + integrity sha512-v+p6ongsrp0yTGbJXjgxPow2+DL93DASP4kXCDKb8/bwRtt9OEF3whggkkDkGNzgcWy2XaF4a8nZglC7uElscg== dependencies: clone-response "^1.0.2" get-stream "^5.1.0" @@ -2479,7 +2512,7 @@ cacheable-request@^7.0.2: caching-transform@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/caching-transform/-/caching-transform-4.0.0.tgz#00d297a4206d71e2163c39eaffa8157ac0651f0f" + resolved "https://registry.yarnpkg.com/caching-transform/-/caching-transform-4.0.0.tgz#00d297a4206d71e2163c39eaffa8157ac0651f0f" integrity sha512-kpqOvwXnjjN44D89K5ccQC+RUrsy7jB/XLlRrx0D7/2HNcTPqzsb6XgYoErwko6QsV184CA2YgS1fxDiiDZMWA== dependencies: hasha "^5.0.0" @@ -2487,17 +2520,18 @@ caching-transform@^4.0.0: package-hash "^4.0.0" write-file-atomic "^3.0.0" -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.5.tgz#6fa2b7845ce0ea49bf4d8b9ef64727a2c2e2e513" + integrity sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + function-bind "^1.1.2" + get-intrinsic "^1.2.1" + set-function-length "^1.1.1" callsites@^3.0.0: version "3.1.0" - resolved "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== camel-case@^4.1.2: @@ -2510,7 +2544,7 @@ camel-case@^4.1.2: camelcase-keys@^6.2.2: version "6.2.2" - resolved "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-6.2.2.tgz#5e755d6ba51aa223ec7d3d52f25778210f9dc3c0" integrity sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg== dependencies: camelcase "^5.3.1" @@ -2519,18 +2553,18 @@ camelcase-keys@^6.2.2: camelcase@^5.0.0, camelcase@^5.3.1: version "5.3.1" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== camelcase@^6.0.0: version "6.3.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001400: - version "1.0.30001431" - resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz#e7c59bd1bc518fae03a4656be442ce6c4887a795" - integrity sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ== +caniuse-lite@^1.0.30001541: + version "1.0.30001561" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001561.tgz#752f21f56f96f1b1a52e97aae98c57c562d5d9da" + integrity sha512-NTt0DNoKe958Q0BE0j0c1V9jbUzhBxHIEJy7asmGrpE0yG63KTV7PLHPnK2E1O9RsQrQ081I3NLuXGS6zht3cw== capital-case@^1.0.4: version "1.0.4" @@ -2551,7 +2585,7 @@ cardinal@^2.1.1: chai-each@^0.0.1: version "0.0.1" - resolved "https://registry.npmjs.org/chai-each/-/chai-each-0.0.1.tgz#d195674e02c2ab3210a2b11f4d7f3ca0d7f46712" + resolved "https://registry.yarnpkg.com/chai-each/-/chai-each-0.0.1.tgz#d195674e02c2ab3210a2b11f4d7f3ca0d7f46712" integrity sha512-W0G98eDRmV4ahXjGBXHsljhXU2MBLQquP2Eo+oOikqywGO0QLYK8tBUKkFGwl7KPQWeeQPLssvRbQXFsIk6Xlg== chai@^4.3.10: @@ -2569,7 +2603,7 @@ chai@^4.3.10: chalk@^2.4.2: version "2.4.2" - resolved "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== dependencies: ansi-styles "^3.2.1" @@ -2578,7 +2612,7 @@ chalk@^2.4.2: chalk@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== dependencies: ansi-styles "^4.1.0" @@ -2586,7 +2620,7 @@ chalk@^3.0.0: chalk@^4, 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.npmjs.org/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== dependencies: ansi-styles "^4.1.0" @@ -2597,7 +2631,7 @@ chalk@^5.3.0: resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" integrity sha512-dLitG79d+GV1Nb/VYcCDFivJeK1hiukt9QjRNVOsUtTy1rR1YJsmpGGTZ3qJos+uw7WmWF4wUwBd9jxjocFC2w== -change-case@^4.1.2: +change-case@^4, change-case@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/change-case/-/change-case-4.1.2.tgz#fedfc5f136045e2398c0410ee441f95704641e12" integrity sha512-bSxY2ws9OtviILG1EiY5K7NNxkqg/JnRnFxLtKQ96JaviiIxi7djMrSd0ECT9AC+lttClmYwKw53BWpOMblo7A== @@ -2629,7 +2663,7 @@ check-error@^1.0.3: chokidar@3.5.3, chokidar@^3.5.3: version "3.5.3" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== dependencies: anymatch "~3.1.2" @@ -2644,7 +2678,7 @@ chokidar@3.5.3, chokidar@^3.5.3: chownr@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-2.0.0.tgz#15bfbe53d2eab4cf70f18a8cd68ebe5b3cb1dece" integrity sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ== ci-info@^3.8.0: @@ -2666,7 +2700,7 @@ clean-regexp@^1.0.0: clean-stack@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== clean-stack@^3.0.1: @@ -2691,13 +2725,13 @@ cli-progress@^3.12.0: string-width "^4.2.3" cli-spinners@^2.5.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.8.0.tgz#e97a3e2bd00e6d85aa0c13d7f9e3ce236f7787fc" - integrity sha512-/eG5sJcvEIwxcdYM86k5tPwn0MUzkX5YY3eImTGpJOZgVe4SdTMY14vQpcxgBzJ0wXwAYrS8E+c3uHeK4JNyzQ== + version "2.9.1" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-2.9.1.tgz#9c0b9dad69a6d47cbb4333c14319b060ed395a35" + integrity sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ== cli-table3@^0.6.0: version "0.6.3" - resolved "https://registry.npmjs.org/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.6.3.tgz#61ab765aac156b52f222954ffc607a6f01dbeeb2" integrity sha512-w5Jac5SykAeZJKntOxJCrm63Eg5/4dhMWIcuTbo9rpE+brgaSZo0RuNJZeOyMgsUdhDeojvgyQLmjI+K50ZGyg== dependencies: string-width "^4.2.0" @@ -2706,7 +2740,7 @@ cli-table3@^0.6.0: cli-table@^0.3.1: version "0.3.11" - resolved "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz#ac69cdecbe81dccdba4889b9a18b7da312a9d3ee" + resolved "https://registry.yarnpkg.com/cli-table/-/cli-table-0.3.11.tgz#ac69cdecbe81dccdba4889b9a18b7da312a9d3ee" integrity sha512-IqLQi4lO0nIB4tcdTpN4LCB9FI3uqrJZK7RC515EnhZ6qBaglkIgICb1wjeAqpdoOabm1+SuQtkXIPdYC93jhQ== dependencies: colors "1.0.3" @@ -2718,7 +2752,7 @@ cli-width@^3.0.0: cliui@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-6.0.0.tgz#511d702c0c4e41ca156d7d0e96021f23e13225b1" integrity sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ== dependencies: string-width "^4.2.0" @@ -2727,7 +2761,7 @@ cliui@^6.0.0: cliui@^7.0.2: version "7.0.4" - resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== dependencies: string-width "^4.2.0" @@ -2736,7 +2770,7 @@ cliui@^7.0.2: cliui@^8.0.1: version "8.0.1" - resolved "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ== dependencies: string-width "^4.2.0" @@ -2745,19 +2779,19 @@ cliui@^8.0.1: clone-buffer@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" + resolved "https://registry.yarnpkg.com/clone-buffer/-/clone-buffer-1.0.0.tgz#e3e25b207ac4e701af721e2cb5a16792cac3dc58" integrity sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g== clone-response@^1.0.2: version "1.0.3" - resolved "https://registry.npmjs.org/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.3.tgz#af2032aa47816399cf5f0a1d0db902f517abb8c3" integrity sha512-ROoL94jJH2dUVML2Y/5PEDNaSHgeOdSDicUyS7izcF63G6sTc/FTjLub4b8Il9S8S0beOfYt0TaA5qvFK+w0wA== dependencies: mimic-response "^1.0.0" clone-stats@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" + resolved "https://registry.yarnpkg.com/clone-stats/-/clone-stats-1.0.0.tgz#b3782dff8bb5474e18b9b6bf0fdfe782f8777680" integrity sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag== clone@^1.0.2: @@ -2767,12 +2801,12 @@ clone@^1.0.2: clone@^2.1.1: version "2.1.2" - resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" + resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== cloneable-readable@^1.0.0: version "1.1.3" - resolved "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" + resolved "https://registry.yarnpkg.com/cloneable-readable/-/cloneable-readable-1.1.3.tgz#120a00cb053bfb63a222e709f9683ea2e11d8cec" integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== dependencies: inherits "^2.0.1" @@ -2781,14 +2815,14 @@ cloneable-readable@^1.0.0: cmd-shim@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724" + resolved "https://registry.yarnpkg.com/cmd-shim/-/cmd-shim-5.0.0.tgz#8d0aaa1a6b0708630694c4dbde070ed94c707724" integrity sha512-qkCtZ59BidfEwHltnJwkyVZn+XQojdAySM1D1gSeh11Z4pW1Kpolkyo53L5noc0nrxmIvyFwTmJRo4xs7FFLPw== dependencies: mkdirp-infer-owner "^2.0.0" color-convert@^1.9.0: version "1.9.3" - resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== dependencies: color-name "1.1.3" @@ -2802,7 +2836,7 @@ color-convert@^2.0.1: color-name@1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== color-name@~1.1.4: @@ -2812,7 +2846,7 @@ color-name@~1.1.4: color-support@^1.1.2, color-support@^1.1.3: version "1.1.3" - resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" + resolved "https://registry.yarnpkg.com/color-support/-/color-support-1.1.3.tgz#93834379a1cc9a0c61f82f52f0d04322251bd5a2" integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== colorette@^2.0.7: @@ -2822,7 +2856,7 @@ colorette@^2.0.7: colors@1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" integrity sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw== combined-stream@^1.0.8: @@ -2834,13 +2868,13 @@ combined-stream@^1.0.8: commander@7.1.0: version "7.1.0" - resolved "https://registry.npmjs.org/commander/-/commander-7.1.0.tgz#f2eaecf131f10e36e07d894698226e36ae0eb5ff" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.1.0.tgz#f2eaecf131f10e36e07d894698226e36ae0eb5ff" integrity sha512-pRxBna3MJe6HKnBGsDyMv8ETbptw3axEdYHoqNh7gu5oDcew8fs0xnivZGm06Ogk8zGAJ9VX+OPEr2GXEQK4dg== commander@^11.0.0: - version "11.0.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-11.0.0.tgz#43e19c25dbedc8256203538e8d7e9346877a6f67" - integrity sha512-9HMlXtt/BNoYr8ooyjjNRdIilOTkVJXB+GhxMTtOKwk0R4j4lS4NpjuqmRxroBfnfTSHQIHQB7wryHhXarNjmQ== + version "11.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-11.1.0.tgz#62fdce76006a68e5c1ab3314dc92e800eb83d906" + integrity sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ== commander@^4.0.1: version "4.1.1" @@ -2854,26 +2888,26 @@ comment-parser@1.4.1: common-ancestor-path@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" + resolved "https://registry.yarnpkg.com/common-ancestor-path/-/common-ancestor-path-1.0.1.tgz#4f7d2d1394d91b7abdf51871c62f71eadb0182a7" integrity sha512-L3sHRo1pXXEqX8VU28kfgUY+YGsk09hPqZiZmLacNib6XNTCM8ubYeT7ryXQw8asB1sKgcU5lkB7ONug08aB8w== commondir@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== compare-func@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" + resolved "https://registry.yarnpkg.com/compare-func/-/compare-func-2.0.0.tgz#fb65e75edbddfd2e568554e8b5b05fff7a51fcb3" integrity sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA== dependencies: array-ify "^1.0.0" dot-prop "^5.1.0" -compress-commons@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.1.tgz#df2a09a7ed17447642bad10a85cc9a19e5c42a7d" - integrity sha512-QLdDLCKNV2dtoTorqgxngQCMA+gWXkM/Nwu7FpeBhk/RdkzimqC3jueb/FDmaZeXh+uby1jkBqE3xArsLBE5wQ== +compress-commons@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/compress-commons/-/compress-commons-4.1.2.tgz#6542e59cb63e1f46a8b21b0e06f9a32e4c8b06df" + integrity sha512-D3uMHtGc/fcO1Gt1/L7i1e33VOvD4A9hfQLP+6ewd+BvG/gQ84Yh4oftEhAdjSMgBgwGL+jsppT7JYNpo6MHHg== dependencies: buffer-crc32 "^0.2.13" crc32-stream "^4.0.2" @@ -2885,24 +2919,9 @@ concat-map@0.0.1: resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== -concurrently@^7.6.0: - version "7.6.0" - resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-7.6.0.tgz#531a6f5f30cf616f355a4afb8f8fcb2bba65a49a" - integrity sha512-BKtRgvcJGeZ4XttiDiNcFiRlxoAeZOseqUvyYRUp/Vtd+9p1ULmeoSqGsDA+2ivdeDFpqrJvGvmI+StKfKl5hw== - dependencies: - chalk "^4.1.0" - date-fns "^2.29.1" - lodash "^4.17.21" - rxjs "^7.0.0" - shell-quote "^1.7.3" - spawn-command "^0.0.2-1" - supports-color "^8.1.0" - tree-kill "^1.2.2" - yargs "^17.3.1" - console-control-strings@^1.0.0, console-control-strings@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" integrity sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ== constant-case@^3.0.4: @@ -2915,44 +2934,44 @@ constant-case@^3.0.4: upper-case "^2.0.2" content-type@^1.0.4: - version "1.0.4" - resolved "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" - integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + version "1.0.5" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918" + integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA== -conventional-changelog-angular@^5.0.11: - version "5.0.13" - resolved "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.13.tgz#896885d63b914a70d4934b59d2fe7bde1832b28c" - integrity sha512-i/gipMxs7s8L/QeuavPF2hLnJgH6pEZAttySB6aiQLWcX3puWDL3ACVmvBhJGxnAy52Qc15ua26BufY6KpmrVA== +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" + integrity sha512-6qLgrBF4gueoC7AFVHu51nHL9pF9FRjXrH+ceVf7WmAfH3gs+gEYOkvxhjMPjZu57I4AGUGoNTY8V7Hrgf1uqg== dependencies: compare-func "^2.0.0" - q "^1.5.1" -conventional-changelog-conventionalcommits@^5.0.0: - version "5.0.0" - resolved "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-5.0.0.tgz#41bdce54eb65a848a4a3ffdca93e92fa22b64a86" - integrity sha512-lCDbA+ZqVFQGUj7h9QBKoIpLhl8iihkO0nCTyRNzuXtcd7ubODpYB04IFy31JloiJgG0Uovu8ot8oxRzn7Nwtw== +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" + integrity sha512-3cS3GEtR78zTfMzk0AizXKKIdN4OvSh7ibNz6/DPbhWWQu7LqE/8+/GqSodV+sywUR2gpJAdP/1JFf4XtN7Zpw== dependencies: compare-func "^2.0.0" - lodash "^4.17.15" - q "^1.5.1" -conventional-commits-parser@^3.2.2: - version "3.2.4" - resolved "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.2.4.tgz#a7d3b77758a202a9b2293d2112a8d8052c740972" - integrity sha512-nK7sAtfi+QXbxHCYfhpZsfRtaitZLIA6889kFIouLvz6repszQDgxBu7wf2WbU+Dco7sAnNCJYERCwt54WPC2Q== +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" + integrity sha512-WRv5j1FsVM5FISJkoYMR6tPk07fkKT0UodruX4je86V4owk451yjXAKzKAPOs9l7y59E2viHUS9eQ+dfUA9NSg== dependencies: - JSONStream "^1.0.4" + JSONStream "^1.3.5" is-text-path "^1.0.1" - lodash "^4.17.15" - meow "^8.0.0" - split2 "^3.0.0" - through2 "^4.0.0" + meow "^8.1.2" + split2 "^3.2.2" convert-source-map@^1.7.0: version "1.9.0" - resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.9.0.tgz#7faae62353fb4213366d0ca98358d22e8368b05f" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== + core-js-pure@^3.30.2: version "3.33.2" resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.33.2.tgz#644830db2507ef84d068a70980ccd99c275f5fa6" @@ -2969,13 +2988,13 @@ core-util-is@~1.0.0: integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== cosmiconfig-typescript-loader@^4.0.0: - version "4.2.0" - resolved "https://registry.npmjs.org/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.2.0.tgz#a3cfd0dd9dac86be7dbe5f53eb46ad03abdf417b" - integrity sha512-NkANeMnaHrlaSSlpKGyvn2R4rqUDeE/9E5YHx+b4nwo0R8dZyAqcih8/gxpCZvqWP9Vf6xuLpMSzSgdVEIM78g== + version "4.4.0" + resolved "https://registry.yarnpkg.com/cosmiconfig-typescript-loader/-/cosmiconfig-typescript-loader-4.4.0.tgz#f3feae459ea090f131df5474ce4b1222912319f9" + integrity sha512-BabizFdC3wBHhbI4kJh0VkQP9GkBfoHPydD0COMce1nJ1kJAB3F2TmJ/I7diULBKtmEWSwEbuN/KDtgnmUUVmw== cosmiconfig@^7.0.0: version "7.1.0" - resolved "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-7.1.0.tgz#1443b9afa596b670082ea46cbd8f6a62b84635f6" integrity sha512-AdmX6xUzdNASswsFtmwSt7Vj8po9IuqXm0UXz7QKPuEUmPB4XyjGfaAr2PSuELMwkRMVH1EpIkX5bTZGRB3eCA== dependencies: "@types/parse-json" "^4.0.0" @@ -2985,13 +3004,13 @@ cosmiconfig@^7.0.0: yaml "^1.10.0" cosmiconfig@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.0.0.tgz#e9feae014eab580f858f8a0288f38997a7bebe97" - integrity sha512-da1EafcpH6b/TD8vDRaWV7xFINlHlF6zKsGwS1TsuVJTZRkquaS5HTMq7uq6h31619QjbsYl21gVDOm32KM1vQ== + version "8.3.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" + integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== dependencies: - import-fresh "^3.2.1" + import-fresh "^3.3.0" js-yaml "^4.1.0" - parse-json "^5.0.0" + parse-json "^5.2.0" path-type "^4.0.0" crc-32@^1.2.0: @@ -3000,9 +3019,9 @@ crc-32@^1.2.0: integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== crc32-stream@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.2.tgz#c922ad22b38395abe9d3870f02fa8134ed709007" - integrity sha512-DxFZ/Hk473b/muq1VJ///PMNLj0ZMnzye9thBpmjpJKCc5eMgB95aK8zCGrGfQ90cWo561Te6HK9D+j4KPdM6w== + version "4.0.3" + resolved "https://registry.yarnpkg.com/crc32-stream/-/crc32-stream-4.0.3.tgz#85dd677eb78fa7cad1ba17cc506a597d41fc6f33" + integrity sha512-NT7w2JVU7DFroFdYkeq8cywxrgjPHWkdX1wjpRQXPX5Asews3tA+Ght6lddQO5Mkumffp3X7GEqku3epj2toIw== dependencies: crc-32 "^1.2.0" readable-stream "^3.4.0" @@ -3014,25 +3033,14 @@ create-require@^1.1.0: cross-env@^7.0.3: version "7.0.3" - resolved "https://registry.npmjs.org/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" + resolved "https://registry.yarnpkg.com/cross-env/-/cross-env-7.0.3.tgz#865264b29677dc015ba8418918965dd232fc54cf" integrity sha512-+/HKd6EgcQCJGh2PSjZuUitQBQynKor4wrFbRg4DtAgS1aWO+gU52xpH7M9ScGgXSYmAVS9bIJ8EzuaGw0oNAw== dependencies: cross-spawn "^7.0.1" -cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" - resolved "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== dependencies: path-key "^3.1.0" @@ -3058,18 +3066,13 @@ csv-stringify@^5.3.4: dargs@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" + resolved "https://registry.yarnpkg.com/dargs/-/dargs-7.0.0.tgz#04015c41de0bcb69ec84050f3d9be0caf8d6d5cc" integrity sha512-2iy1EkLdlBzQGvbweYRFxmFath8+K7+AKB0TlhHWkNuH+TmovaMH/Wp7V7R4u7f4SnX3OgLsU9t1NI9ioDnUpg== -data-uri-to-buffer@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-5.0.1.tgz#db89a9e279c2ffe74f50637a59a32fb23b3e4d7c" - integrity sha512-a9l6T1qqDogvvnw0nKlfZzqsyikEBZBClF39V3TFoKhDtGBqHu2HkuomJc02j5zft8zrUaXEuoicLeW54RkzPg== - -date-fns@^2.29.1: - version "2.29.3" - resolved "https://registry.npmjs.org/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8" - integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA== +data-uri-to-buffer@^6.0.0: + version "6.0.1" + resolved "https://registry.yarnpkg.com/data-uri-to-buffer/-/data-uri-to-buffer-6.0.1.tgz#540bd4c8753a25ee129035aebdedf63b078703c7" + integrity sha512-MZd3VlchQkp8rdend6vrx7MmVDJzSNTBvghvKjirLkD+WTChA3KUf0jkE68Q4UyctNqI11zZO9/x2Yx+ub5Cvg== dateformat@^4.5.0, dateformat@^4.6.3: version "4.6.3" @@ -3092,12 +3095,12 @@ debug@^3.2.7: debuglog@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" + resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== decamelize-keys@^1.1.0: version "1.1.1" - resolved "https://registry.npmjs.org/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" + resolved "https://registry.yarnpkg.com/decamelize-keys/-/decamelize-keys-1.1.1.tgz#04a2d523b2f18d80d0158a43b895d56dff8d19d8" integrity sha512-WiPxgEirIV0/eIOMcnFBA3/IJZAZqKnwAwWyvvdi4lsr1WCN22nhdf/3db3DoZcUjTV2SqfzIwNyp6y2xs3nmg== dependencies: decamelize "^1.1.0" @@ -3105,12 +3108,12 @@ decamelize-keys@^1.1.0: decamelize@^1.1.0, decamelize@^1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== decamelize@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== decompress-response@^6.0.0: @@ -3129,17 +3132,17 @@ deep-eql@^4.1.3: deep-extend@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== deep-is@^0.1.3: version "0.1.4" - resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== default-require-extensions@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.1.tgz#bfae00feeaeada68c2ae256c62540f60b80625bd" + resolved "https://registry.yarnpkg.com/default-require-extensions/-/default-require-extensions-3.0.1.tgz#bfae00feeaeada68c2ae256c62540f60b80625bd" integrity sha512-eXTJmRbm2TIt9MgWTsOH1wEuhew6XGZcMeGKCtLedIg/NCsg1iBePXkceTdK4Fii7pzmN9tGsZhKzZ4h7O/fxw== dependencies: strip-bom "^4.0.0" @@ -3151,15 +3154,15 @@ defaults@^1.0.3: dependencies: clone "^1.0.2" -defer-to-connect@^2.0.0: +defer-to-connect@^2.0.0, defer-to-connect@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-2.0.1.tgz#8016bdb4143e4632b77a3449c6236277de520587" integrity sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg== -define-data-property@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.0.tgz#0db13540704e1d8d479a0656cf781267531b9451" - integrity sha512-UzGwzcjyv3OtAvolTj1GoyNYzfFR+iqbGjcnBEENZVCpM4/Ng1yhGNvS3lR/xDS74Tb2wGG9WzNSNIOS9UVb2g== +define-data-property@^1.0.1, define-data-property@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.1.tgz#c35f7cd0ab09883480d12ac5cb213715587800b3" + integrity sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ== dependencies: get-intrinsic "^1.2.1" gopd "^1.0.1" @@ -3167,7 +3170,7 @@ define-data-property@^1.0.1: define-lazy-prop@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" + resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: @@ -3195,22 +3198,17 @@ delayed-stream@~1.0.0: delegates@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ== -depd@^1.1.2: - version "1.1.2" - resolved "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== - deprecation@^2.0.0, deprecation@^2.3.1: version "2.3.1" - resolved "https://registry.npmjs.org/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" + resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919" integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ== dezalgo@^1.0.0: version "1.0.4" - resolved "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" + resolved "https://registry.yarnpkg.com/dezalgo/-/dezalgo-1.0.4.tgz#751235260469084c132157dfa857f386d4c33d81" integrity sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig== dependencies: asap "^2.0.0" @@ -3223,12 +3221,12 @@ diff3@0.0.3: diff@5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== diff@^3.5.0: version "3.5.0" - resolved "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== diff@^4.0.1, diff@^4.0.2: @@ -3238,7 +3236,7 @@ diff@^4.0.1, diff@^4.0.2: diff@^5.0.0: version "5.1.0" - resolved "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== dir-glob@^3.0.1: @@ -3250,14 +3248,14 @@ dir-glob@^3.0.1: doctrine@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== dependencies: esutils "^2.0.2" doctrine@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== dependencies: esutils "^2.0.2" @@ -3272,7 +3270,7 @@ dot-case@^3.0.4: dot-prop@^5.1.0: version "5.3.0" - resolved "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== dependencies: is-obj "^2.0.0" @@ -3296,10 +3294,10 @@ ejs@^3.1.8, ejs@^3.1.9: dependencies: jake "^10.8.5" -electron-to-chromium@^1.4.251: - version "1.4.284" - resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz#61046d1e4cab3a25238f6bf7413795270f125592" - integrity sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA== +electron-to-chromium@^1.4.535: + version "1.4.579" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.579.tgz#40ddec29bb5549908e82ccd652cf5da2e5900c23" + integrity sha512-bJKvA+awBIzYR0xRced7PrQuRIwGQPpo6ZLP62GAShahU9fWpsNN2IP6BSP1BLDDSbxvBVRGAMWlvVVq3npmLA== emoji-regex@^8.0.0: version "8.0.0" @@ -3313,7 +3311,7 @@ emoji-regex@^9.2.2: encoding@^0.1.12, encoding@^0.1.13: version "0.1.13" - resolved "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" + resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.13.tgz#56574afdd791f54a8e9b2785c0582a2d26210fa9" integrity sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A== dependencies: iconv-lite "^0.6.2" @@ -3327,46 +3325,46 @@ end-of-stream@^1.1.0, end-of-stream@^1.4.1: env-paths@^2.2.0: version "2.2.1" - resolved "https://registry.npmjs.org/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" + resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.1.tgz#420399d416ce1fbe9bc0a07c62fa68d67fd0f8f2" integrity sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A== err-code@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" + resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9" integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA== error-ex@^1.3.1: version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== dependencies: is-arrayish "^0.2.1" error@^10.4.0: version "10.4.0" - resolved "https://registry.npmjs.org/error/-/error-10.4.0.tgz#6fcf0fd64bceb1e750f8ed9a3dd880f00e46a487" + resolved "https://registry.yarnpkg.com/error/-/error-10.4.0.tgz#6fcf0fd64bceb1e750f8ed9a3dd880f00e46a487" 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" - integrity sha512-YoxfFcDmhjOgWPWsV13+2RNjq1F6UQnfs+8TftwNqtzlmFzEXvlUwdrNrYeaizfjQzRMxkZ6ElWMOJIFKdVqwA== + version "1.22.3" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" + integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== dependencies: array-buffer-byte-length "^1.0.0" arraybuffer.prototype.slice "^1.0.2" available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + call-bind "^1.0.5" es-set-tostringtag "^2.0.1" es-to-primitive "^1.2.1" function.prototype.name "^1.1.6" - get-intrinsic "^1.2.1" + get-intrinsic "^1.2.2" get-symbol-description "^1.0.0" globalthis "^1.0.3" gopd "^1.0.1" - has "^1.0.3" has-property-descriptors "^1.0.0" has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" internal-slot "^1.0.5" is-array-buffer "^3.0.2" is-callable "^1.2.7" @@ -3376,7 +3374,7 @@ es-abstract@^1.22.1: is-string "^1.0.7" is-typed-array "^1.1.12" is-weakref "^1.0.2" - object-inspect "^1.12.3" + object-inspect "^1.13.1" object-keys "^1.1.1" object.assign "^4.1.4" regexp.prototype.flags "^1.5.1" @@ -3390,27 +3388,27 @@ es-abstract@^1.22.1: typed-array-byte-offset "^1.0.0" typed-array-length "^1.0.4" unbox-primitive "^1.0.2" - which-typed-array "^1.1.11" + which-typed-array "^1.1.13" 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" - integrity sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg== + version "2.0.2" + resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.0.2.tgz#11f7cc9f63376930a5f20be4915834f4bc74f9c9" + integrity sha512-BuDyupZt65P9D2D2vA/zqcI3G5xRsklm5N3xCwuiy+/vKy8i0ifdsQP1sLgO4tZDSCaQUSnmC48khknGMV3D2Q== dependencies: - get-intrinsic "^1.1.3" - has "^1.0.3" + get-intrinsic "^1.2.2" has-tostringtag "^1.0.0" + hasown "^2.0.0" es-shim-unscopables@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz#702e632193201e3edf8713635d083d378e510241" - integrity sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w== + version "1.0.2" + resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" + integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== dependencies: - has "^1.0.3" + hasown "^2.0.0" es-to-primitive@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== dependencies: is-callable "^1.1.4" @@ -3419,12 +3417,12 @@ es-to-primitive@^1.2.1: es6-error@^4.0.1: version "4.1.1" - resolved "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" + resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== escalade@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== escape-string-regexp@4.0.0, escape-string-regexp@^4.0.0: @@ -3497,7 +3495,7 @@ eslint-module-utils@^2.8.0: eslint-plugin-header@^3.1.1: version "3.1.1" - resolved "https://registry.npmjs.org/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz#6ce512432d57675265fac47292b50d1eff11acd6" + resolved "https://registry.yarnpkg.com/eslint-plugin-header/-/eslint-plugin-header-3.1.1.tgz#6ce512432d57675265fac47292b50d1eff11acd6" integrity sha512-9vlKxuJ4qf793CmeeSrZUvVClw6amtpghq3CuWcB5cUNnWHQhgcqy5eF8oVKFk1G3Y/CbchGfEaw3wiIJaNmVg== eslint-plugin-import@^2.29.0: @@ -3538,6 +3536,15 @@ eslint-plugin-jsdoc@^46.9.0: semver "^7.5.4" spdx-expression-parse "^3.0.1" +eslint-plugin-perfectionist@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-perfectionist/-/eslint-plugin-perfectionist-2.2.0.tgz#a1b1f1407ce9bc20a4f0e2b8113fb84e5b9dfb9f" + integrity sha512-/nG2Uurd6AY7CI6zlgjHPOoiPY8B7EYMUWdNb5w+EzyauYiQjjD5lQwAI1FlkBbCCFFZw/CdZIPQhXumYoiyaw== + dependencies: + "@typescript-eslint/utils" "^6.7.5" + minimatch "^9.0.3" + natural-compare-lite "^1.4.0" + eslint-plugin-sf-plugin@^1.16.15: version "1.16.15" resolved "https://registry.yarnpkg.com/eslint-plugin-sf-plugin/-/eslint-plugin-sf-plugin-1.16.15.tgz#99d0b522bb7eebefc8e456aa4b725f6fbbf2fa01" @@ -3568,7 +3575,7 @@ eslint-plugin-unicorn@^49.0.0: eslint-scope@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c" integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw== dependencies: esrecurse "^4.3.0" @@ -3654,24 +3661,24 @@ esquery@^1.4.2, esquery@^1.5.0: esrecurse@^4.3.0: version "4.3.0" - resolved "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" estraverse@^4.1.1: version "4.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== estraverse@^5.1.0, estraverse@^5.2.0: version "5.3.0" - resolved "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123" integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA== esutils@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== event-target-shim@^5.0.0: @@ -3681,12 +3688,12 @@ event-target-shim@^5.0.0: eventemitter3@^4.0.4: version "4.0.7" - resolved "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== events@1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" integrity sha512-kEcvvCBByWXGnZy6JUlgAp2gBIUjfCAV6P6TgT1/aaQKcmuAEC4OZTV1I4EWQLz2gxZw76atuVyvHhTxvi0Flw== events@^3.3.0: @@ -3696,7 +3703,7 @@ events@^3.3.0: execa@^4.0.0: version "4.1.0" - resolved "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== dependencies: cross-spawn "^7.0.0" @@ -3711,7 +3718,7 @@ execa@^4.0.0: execa@^5.0.0, execa@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" + resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd" integrity sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg== dependencies: cross-spawn "^7.0.3" @@ -3724,6 +3731,11 @@ execa@^5.0.0, execa@^5.1.1: signal-exit "^3.0.3" strip-final-newline "^2.0.0" +exponential-backoff@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6" + 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" @@ -3743,10 +3755,10 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3: resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== -fast-glob@^3.2.11, fast-glob@^3.2.9: - version "3.3.1" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.1.tgz#784b4e897340f3dbbef17413b3f11acf03c874c4" - integrity sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg== +fast-glob@^3.2.11, fast-glob@^3.2.9, fast-glob@^3.3.1: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: "@nodelib/fs.stat" "^2.0.2" "@nodelib/fs.walk" "^1.2.3" @@ -3756,12 +3768,12 @@ fast-glob@^3.2.11, fast-glob@^3.2.9: fast-json-stable-stringify@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== fast-levenshtein@^2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== fast-levenshtein@^3.0.0: @@ -3809,7 +3821,7 @@ faye-websocket@>=0.9.1: faye@1.4.0, faye@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/faye/-/faye-1.4.0.tgz#01d3d26ed5642c1cb203eed358afb1c1444b8669" + resolved "https://registry.yarnpkg.com/faye/-/faye-1.4.0.tgz#01d3d26ed5642c1cb203eed358afb1c1444b8669" integrity sha512-kRrIg4be8VNYhycS2PY//hpBJSzZPr/DBbcy9VWelhZMW3KhyLkQR0HL0k0MNpmVoNFF4EdfMFkNAWjTP65g6w== dependencies: asap "*" @@ -3828,12 +3840,12 @@ figures@^3.0.0: file-entry-cache@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" integrity sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg== dependencies: flat-cache "^3.0.4" -filelist@^1.0.1: +filelist@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== @@ -3849,7 +3861,7 @@ fill-range@^7.0.1: find-cache-dir@^3.2.0: version "3.3.2" - resolved "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== dependencies: commondir "^1.0.1" @@ -3858,7 +3870,7 @@ find-cache-dir@^3.2.0: find-up@5.0.0, find-up@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== dependencies: locate-path "^6.0.0" @@ -3866,7 +3878,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.npmjs.org/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== dependencies: locate-path "^5.0.0" @@ -3874,7 +3886,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.npmjs.org/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz#60287009dd2f324f59646bdb4b7610a6b301c2a9" + resolved "https://registry.yarnpkg.com/find-yarn-workspace-root2/-/find-yarn-workspace-root2-1.2.16.tgz#60287009dd2f324f59646bdb4b7610a6b301c2a9" integrity sha512-hr6hb1w8ePMpPVUK39S4RlwJzi+xPLuVuG8XlwXU3KD5Yn3qgBWVfy3AzNlDhWvE1EORCE65/Qm26rFQt3VLVA== dependencies: micromatch "^4.0.2" @@ -3882,46 +3894,47 @@ find-yarn-workspace-root2@1.2.16: find-yarn-workspace-root@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" + resolved "https://registry.yarnpkg.com/find-yarn-workspace-root/-/find-yarn-workspace-root-2.0.0.tgz#f47fb8d239c900eb78179aa81b66673eac88f7bd" 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.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70" + resolved "https://registry.yarnpkg.com/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz#1bdecdb8e083c0664b91945581577a43a9f31d70" integrity sha512-X8Z+b/0L4lToKYq+lwnKqi9X/Zek0NibLpsJgVsSxpoYq7JtiCtRb5HqKVEjEw/qAb/4AKKRLOwwKHlWNpm2Eg== dependencies: readable-stream "^2.0.2" flat-cache@^3.0.4: - version "3.0.4" - resolved "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz#61b0338302b2fe9f957dcc32fc2a87f1c3048b11" - integrity sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg== + version "3.1.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-3.1.1.tgz#a02a15fdec25a8f844ff7cc658f03dd99eb4609b" + integrity sha512-/qM2b3LUIaIgviBQovTLvijfyOQXPtSRnRK26ksj2J7rzPIecePUIpJsZ4T02Qg+xiAEKIs5K8dsHEd+VaKa/Q== dependencies: - flatted "^3.1.0" + flatted "^3.2.9" + keyv "^4.5.3" rimraf "^3.0.2" flat@^5.0.2: version "5.0.2" - resolved "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -flatted@^3.1.0: - version "3.2.7" - resolved "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz#609f39207cb614b89d0765b477cb2d437fbf9787" - integrity sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ== +flatted@^3.2.9: + version "3.2.9" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" + integrity sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ== for-each@^0.3.3: version "0.3.3" - resolved "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" + resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" integrity sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw== dependencies: is-callable "^1.1.3" foreground-child@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" + resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-2.0.0.tgz#71b32800c9f15aa8f2f83f4a6bd9bff35d861a53" integrity sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA== dependencies: cross-spawn "^7.0.0" @@ -3935,6 +3948,11 @@ foreground-child@^3.1.0: cross-spawn "^7.0.0" signal-exit "^4.0.1" +form-data-encoder@^2.1.2: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data-encoder/-/form-data-encoder-2.1.4.tgz#261ea35d2a70d48d30ec7a9603130fa5515e9cd5" + integrity sha512-yDYSgNMraqvnxiEXO4hi88+YZxaHC6QKzb5N84iRCTDeRO7ZALpir/lVmf/uXUhnwUr2O4HU8s/n6x+yNjQkHw== + form-data@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" @@ -3946,7 +3964,7 @@ form-data@^4.0.0: fromentries@^1.2.0: version "1.3.2" - resolved "https://registry.npmjs.org/fromentries/-/fromentries-1.3.2.tgz#e4bca6808816bf8f93b52750f1127f5a6fd86e3a" + resolved "https://registry.yarnpkg.com/fromentries/-/fromentries-1.3.2.tgz#e4bca6808816bf8f93b52750f1127f5a6fd86e3a" integrity sha512-cHEpEQHUg0f8XdtZCc2ZAhrHzKzT0MrFUTcvx+hfxYu7rGMDc5SKoXFh+n4YigxsHXRzc6OrCshdR1bWH6HHyg== fs-constants@^1.0.0: @@ -3955,9 +3973,9 @@ fs-constants@^1.0.0: integrity sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow== fs-extra@^11.0.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.0.tgz#5784b102104433bb0e090f48bfc4a30742c357ed" - integrity sha512-0rcTq621PD5jM/e0a3EJoGC/1TC5ZBCERW82LQuwfGnCa1V8w7dpYH1yNu+SLb6E5dkeCBzKEyLGlFrnr+dUyw== + version "11.1.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.1.1.tgz#da69f7c39f3b002378b0954bb6ae7efdc0876e2d" + integrity sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -3972,29 +3990,19 @@ fs-extra@^8.1, fs-extra@^8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^9.0.1: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - fs-minipass@^2.0.0, fs-minipass@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb" integrity sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg== dependencies: minipass "^3.0.0" fs-minipass@^3.0.0: - version "3.0.2" - resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.2.tgz#5b383858efa8c1eb8c33b39e994f7e8555b8b3a3" - integrity sha512-2GAfyfoaCDRrM6jaOS3UsBts8yJ55VioXdWcOL7dK9zdAuKT71+WBA4ifnNYqVjYv+4SsPxjK0JT4yIIn4cA/g== + version "3.0.3" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-3.0.3.tgz#79a85981c4dc120065e96f62086bf6f9dc26cc54" + integrity sha512-XUBA9XClHbnJWSfBzjkm6RvPsyg3sryZt06BEQoXcF7EK/xpGaQYJgQKDJSUH5SGZ76Y7pFx1QBnXz09rU5Fbw== dependencies: - minipass "^5.0.0" + minipass "^7.0.3" fs.realpath@^1.0.0: version "1.0.0" @@ -4002,11 +4010,11 @@ fs.realpath@^1.0.0: integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== fsevents@~2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" - integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + version "2.3.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" + integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== -function-bind@^1.1.1, function-bind@^1.1.2: +function-bind@^1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== @@ -4023,12 +4031,12 @@ function.prototype.name@^1.1.6: functions-have-names@^1.2.3: version "1.2.3" - resolved "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" + resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" integrity sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ== gauge@^3.0.0: version "3.0.2" - resolved "https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-3.0.2.tgz#03bf4441c044383908bcfa0656ad91803259b395" integrity sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q== dependencies: aproba "^1.0.3 || ^2.0.0" @@ -4043,7 +4051,7 @@ gauge@^3.0.0: gauge@^4.0.3: version "4.0.4" - resolved "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce" integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg== dependencies: aproba "^1.0.3 || ^2.0.0" @@ -4057,12 +4065,12 @@ gauge@^4.0.3: gensync@^1.0.0-beta.2: version "1.0.0-beta.2" - resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== get-caller-file@^2.0.1, get-caller-file@^2.0.5: version "2.0.5" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== get-func-name@^2.0.1, get-func-name@^2.0.2: @@ -4070,15 +4078,15 @@ get-func-name@^2.0.1, get-func-name@^2.0.2: resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" 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" - integrity sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw== +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, get-intrinsic@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.2.tgz#281b7622971123e1ef4b3c90fd7539306da93f3b" + integrity sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA== dependencies: - function-bind "^1.1.1" - has "^1.0.3" + function-bind "^1.1.2" has-proto "^1.0.1" has-symbols "^1.0.3" + hasown "^2.0.0" get-package-type@^0.1.0: version "0.1.0" @@ -4087,37 +4095,37 @@ get-package-type@^0.1.0: get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== dependencies: pump "^3.0.0" -get-stream@^6.0.0: +get-stream@^6.0.0, get-stream@^6.0.1: version "6.0.1" - resolved "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7" integrity sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg== get-symbol-description@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" + resolved "https://registry.yarnpkg.com/get-symbol-description/-/get-symbol-description-1.0.0.tgz#7fdb81c900101fbd564dd5f1a30af5aadc1e58d6" integrity sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw== dependencies: call-bind "^1.0.2" get-intrinsic "^1.1.1" get-uri@^6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-6.0.1.tgz#cff2ba8d456c3513a04b70c45de4dbcca5b1527c" - integrity sha512-7ZqONUVqaabogsYNWlYj0t3YZaL6dhuEueZXGF+/YVmf6dHmaFg8/6psJKqhx9QykIDKzpGcy2cn4oV4YC7V/Q== + version "6.0.2" + resolved "https://registry.yarnpkg.com/get-uri/-/get-uri-6.0.2.tgz#e019521646f4a8ff6d291fbaea2c46da204bb75b" + integrity sha512-5KLucCJobh8vBY1K07EFV4+cPZH3mrV9YeAruUseCQKHB58SGjjT2l9/eA9LD082IiuMjSlFJEcdJ27TXvbZNw== dependencies: basic-ftp "^5.0.2" - data-uri-to-buffer "^5.0.1" + data-uri-to-buffer "^6.0.0" debug "^4.3.4" fs-extra "^8.1.0" -git-raw-commits@^2.0.0: +git-raw-commits@^2.0.11: version "2.0.11" - resolved "https://registry.npmjs.org/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" + resolved "https://registry.yarnpkg.com/git-raw-commits/-/git-raw-commits-2.0.11.tgz#bc3576638071d18655e1cc60d7f524920008d723" integrity sha512-VnctFhw+xfj8Va1xtfEqCUD2XDrbAPSJx+hSrE5K7fGdjZruW7XV+QOrN7LF/RJyvspRiD2I0asWsxFp0ya26A== dependencies: dargs "^7.0.0" @@ -4128,12 +4136,12 @@ git-raw-commits@^2.0.0: github-slugger@^1.5.0: version "1.5.0" - resolved "https://registry.npmjs.org/github-slugger/-/github-slugger-1.5.0.tgz#17891bbc73232051474d68bd867a34625c955f7d" + resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.5.0.tgz#17891bbc73232051474d68bd867a34625c955f7d" integrity sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw== github-username@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/github-username/-/github-username-6.0.0.tgz#d543eced7295102996cd8e4e19050ebdcbe60658" + resolved "https://registry.yarnpkg.com/github-username/-/github-username-6.0.0.tgz#d543eced7295102996cd8e4e19050ebdcbe60658" integrity sha512-7TTrRjxblSI5l6adk9zd+cV5d6i1OrJSo3Vr9xdGqFLBQo0mz5P9eIfKCDJ7eekVGGFLbce0qbPSnktXV2BjDQ== dependencies: "@octokit/rest" "^18.0.6" @@ -4147,14 +4155,14 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: glob-parent@^6.0.2: version "6.0.2" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== dependencies: is-glob "^4.0.3" glob@7.2.0: version "7.2.0" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" @@ -4165,17 +4173,17 @@ glob@7.2.0: path-is-absolute "^1.0.0" glob@^10.2.2: - version "10.2.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-10.2.6.tgz#1e27edbb3bbac055cb97113e27a066c100a4e5e1" - integrity sha512-U/rnDpXJGF414QQQZv5uVsabTVxMSwzS5CH0p3DRCIV6ownl4f7PzGnkGmvlum2wB+9RlJWJZ6ACU1INnBqiPA== + version "10.3.10" + resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" + integrity sha512-fa46+tv1Ak0UPK1TOy/pZrIybNNt4HCv7SDzwyfiOZkvZLEbjsZkJBPtDHVshZjbecAoAGSC20MjLDG/qr679g== dependencies: foreground-child "^3.1.0" - jackspeak "^2.0.3" + jackspeak "^2.3.5" minimatch "^9.0.1" - minipass "^5.0.0 || ^6.0.2" - path-scurry "^1.7.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" + path-scurry "^1.10.1" -glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6, glob@^7.2.3: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -4200,20 +4208,20 @@ glob@^8.0.0, glob@^8.0.1, glob@^8.0.3: global-dirs@^0.1.1: version "0.1.1" - resolved "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" integrity sha512-NknMLn7F2J7aflwFOlGdNIuCDpN3VGoSoB+aap3KABFWbHVn1TCgFC+np23J8W2BiZbjfEw3BFBycSMv1AFblg== dependencies: ini "^1.3.4" globals@^11.1.0: version "11.12.0" - resolved "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== globals@^13.19.0: - version "13.20.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-13.20.0.tgz#ea276a1e508ffd4f1612888f9d1bad1e2717bf82" - integrity sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ== + version "13.23.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-13.23.0.tgz#ef31673c926a0976e1f61dab4dca57e0c0a8af02" + integrity sha512-XAmF0RjlrjY23MA51q3HltdlGxUpXPvg0GioKiD9X6HD28iMjo2dKC8Vqwm7lne4GNr78+RHTfliktR6ZH09wA== dependencies: type-fest "^0.20.2" @@ -4238,7 +4246,7 @@ globby@^11.0.1, globby@^11.1.0: gopd@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" + resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c" integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA== dependencies: get-intrinsic "^1.1.3" @@ -4260,6 +4268,23 @@ got@^11, got@^11.8.6: p-cancelable "^2.0.0" responselike "^2.0.0" +got@^13.0.0: + version "13.0.0" + resolved "https://registry.yarnpkg.com/got/-/got-13.0.0.tgz#a2402862cef27a5d0d1b07c0fb25d12b58175422" + integrity sha512-XfBk1CxOOScDcMr9O1yKkNaQyy865NbYs+F7dr4H0LZMVgCj2Le59k6PqbNHoL5ToeaEQUYh6c6yMfVcc6SJxA== + dependencies: + "@sindresorhus/is" "^5.2.0" + "@szmarczak/http-timer" "^5.0.1" + cacheable-lookup "^7.0.0" + cacheable-request "^10.2.8" + decompress-response "^6.0.0" + form-data-encoder "^2.1.2" + get-stream "^6.0.1" + http2-wrapper "^2.1.10" + lowercase-keys "^3.0.0" + p-cancelable "^3.0.0" + responselike "^3.0.0" + graceful-fs@^4.1.15, 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" @@ -4272,7 +4297,7 @@ graphemer@^1.4.0: grouped-queue@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/grouped-queue/-/grouped-queue-2.0.0.tgz#a2c6713f2171e45db2c300a3a9d7c119d694dac8" + resolved "https://registry.yarnpkg.com/grouped-queue/-/grouped-queue-2.0.0.tgz#a2c6713f2171e45db2c300a3a9d7c119d694dac8" integrity sha512-/PiFUa7WIsl48dUeCvhIHnwNmAAzlI/eHoJl0vu3nsFA366JleY7Ff8EVTplZu5kO0MIdZjKTTnzItL61ahbnw== handlebars@^4.7.8: @@ -4289,17 +4314,17 @@ handlebars@^4.7.8: hard-rejection@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" + resolved "https://registry.yarnpkg.com/hard-rejection/-/hard-rejection-2.1.0.tgz#1c6eda5c1685c63942766d79bb40ae773cecd883" integrity sha512-VIZB+ibDhx7ObhAe7OVtoEbuP4h/MuOTHJ+J8h/eBXotJYl0fBgR72xDFCKgIh22OJZIOVNxBMWuhAr10r8HdA== has-bigints@^1.0.1, has-bigints@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" + resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.2.tgz#0871bd3e3d51626f6ca0966668ba35d5602d6eaa" integrity sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ== has-flag@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== has-flag@^4.0.0: @@ -4308,11 +4333,11 @@ has-flag@^4.0.0: integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== has-property-descriptors@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" - integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz#52ba30b6c5ec87fd89fa574bc1c39125c6f65340" + integrity sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg== dependencies: - get-intrinsic "^1.1.1" + get-intrinsic "^1.2.2" has-proto@^1.0.1: version "1.0.1" @@ -4321,31 +4346,24 @@ has-proto@^1.0.1: has-symbols@^1.0.2, has-symbols@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== has-tostringtag@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" + resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== dependencies: has-symbols "^1.0.2" has-unicode@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== -has@^1.0.3: - version "1.0.3" - resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - hasha@^5.0.0: version "5.2.2" - resolved "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.2.tgz#a48477989b3b327aea3c04f53096d816d97522a1" integrity sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ== dependencies: is-stream "^2.0.0" @@ -4360,7 +4378,7 @@ hasown@^2.0.0: he@1.2.0: version "1.2.0" - resolved "https://registry.npmjs.org/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== header-case@^2.0.4: @@ -4381,12 +4399,12 @@ help-me@^4.0.1: hosted-git-info@^2.1.4: version "2.8.9" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.9.tgz#dffc0bf9a21c02209090f2aa69429e1414daf3f9" integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== hosted-git-info@^4.0.1: version "4.1.0" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-4.1.0.tgz#827b82867e9ff1c8d0c4d9d53880397d2c86d224" integrity sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA== dependencies: lru-cache "^6.0.0" @@ -4400,7 +4418,7 @@ hosted-git-info@^6.0.0: html-escaper@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" + resolved "https://registry.yarnpkg.com/html-escaper/-/html-escaper-2.0.2.tgz#dfd60027da36a36dfcbe236262c00a5822681453" integrity sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg== http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0, http-cache-semantics@^4.1.1: @@ -4410,7 +4428,7 @@ http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0, http-cache-semantics@^ http-call@^5.2.2: version "5.3.0" - resolved "https://registry.npmjs.org/http-call/-/http-call-5.3.0.tgz#4ded815b13f423de176eb0942d69c43b25b148db" + resolved "https://registry.yarnpkg.com/http-call/-/http-call-5.3.0.tgz#4ded815b13f423de176eb0942d69c43b25b148db" integrity sha512-ahwimsC23ICE4kPl9xTBjKB4inbRaeLyZeRunC/1Jy/Z6X8tv22MEAjK+KBOMSVLaqXPTTmd8638waVIKLGx2w== dependencies: content-type "^1.0.4" @@ -4427,7 +4445,7 @@ http-parser-js@>=0.5.1: http-proxy-agent@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz#8a8c8ef7f5932ccf953c296ca8291b95aa74aa3a" integrity sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg== dependencies: "@tootallnate/once" "1" @@ -4436,7 +4454,7 @@ http-proxy-agent@^4.0.1: http-proxy-agent@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" + resolved "https://registry.yarnpkg.com/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz#5129800203520d434f142bc78ff3c170800f2b43" integrity sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w== dependencies: "@tootallnate/once" "2" @@ -4453,12 +4471,20 @@ http-proxy-agent@^7.0.0: http2-wrapper@^1.0.0-beta.5.2: version "1.0.3" - resolved "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== dependencies: quick-lru "^5.1.1" resolve-alpn "^1.0.0" +http2-wrapper@^2.1.10: + version "2.2.0" + resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-2.2.0.tgz#b80ad199d216b7d3680195077bd7b9060fa9d7f3" + integrity sha512-kZB0wxMo0sh1PehyjJUWRFEd99KC5TLjZ2cULC4f9iqJBAmKQQXEICjxl5iPJRwP40dpeHFqqhm7tYCvODpqpQ== + dependencies: + quick-lru "^5.1.1" + resolve-alpn "^1.2.0" + 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" @@ -4477,24 +4503,24 @@ https-proxy-agent@^7.0.2: human-signals@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== human-signals@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0" integrity sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw== humanize-ms@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== dependencies: ms "^2.0.0" husky@^7.0.4: version "7.0.4" - resolved "https://registry.npmjs.org/husky/-/husky-7.0.4.tgz#242048245dc49c8fb1bf0cc7cfb98dd722531535" + resolved "https://registry.yarnpkg.com/husky/-/husky-7.0.4.tgz#242048245dc49c8fb1bf0cc7cfb98dd722531535" integrity sha512-vbaCKN2QLtP/vD4yvs6iz6hBEo6wkSzs8HpRah1Z6aGmF2KW5PdYuAd7uX5a+OyBZHBhd+TFLqgjUgytQr4RvQ== hyperlinker@^1.0.0: @@ -4511,14 +4537,14 @@ iconv-lite@^0.4.24: iconv-lite@^0.6.2: version "0.6.3" - resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" ieee754@1.1.13: version "1.1.13" - resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: @@ -4528,7 +4554,7 @@ ieee754@^1.1.13, ieee754@^1.1.4, ieee754@^1.2.1: ignore-walk@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/ignore-walk/-/ignore-walk-4.0.1.tgz#fc840e8346cf88a3a9380c5b17933cd8f4d39fa3" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-4.0.1.tgz#fc840e8346cf88a3a9380c5b17933cd8f4d39fa3" integrity sha512-rzDQLaW4jQbh2YrOFlJdCtX8qgJTehFRYiUB2r1osqTeDzV/3+Jh8fz1oAPzUThf3iku8Ds4IDqawI5d8mUiQw== dependencies: minimatch "^3.0.4" @@ -4550,9 +4576,9 @@ immediate@~3.0.5: resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.0.6.tgz#9db1dbd0faf8de6fbe0f5dd5e56bb606280de69b" integrity sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ== -import-fresh@^3.0.0, import-fresh@^3.2.1: +import-fresh@^3.0.0, import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" - resolved "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== dependencies: parent-module "^1.0.0" @@ -4560,7 +4586,7 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: imurmurhash@^0.1.4: version "0.1.4" - resolved "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA== indent-string@^4.0.0: @@ -4570,7 +4596,7 @@ indent-string@^4.0.0: infer-owner@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== inflight@^1.0.4: @@ -4588,7 +4614,7 @@ inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.3: ini@^1.3.4: version "1.3.8" - resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== inquirer@^7.0.0: @@ -4611,9 +4637,9 @@ inquirer@^7.0.0: through "^2.3.6" inquirer@^8.0.0, inquirer@^8.2.5: - version "8.2.5" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.5.tgz#d8654a7542c35a9b9e069d27e2df4858784d54f8" - integrity sha512-QAgPDQMEgrDssk1XiwwHoOGYF9BAbUcc1+j+FhEvaOt8/cKRqyLn0U5qA6F74fGhTMGxf92pOvPBeh29jQJDTQ== + version "8.2.6" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-8.2.6.tgz#733b74888195d8d400a67ac332011b5fae5ea562" + integrity sha512-M1WuAmb7pn9zdFRtQYk26ZBoY043Sse0wVDdk4Bppr+JOXyQYybdtvK+l9wUibhtjdjvtoiNy8tk+EgsYIUqKg== dependencies: ansi-escapes "^4.2.1" chalk "^4.1.1" @@ -4629,15 +4655,15 @@ inquirer@^8.0.0, inquirer@^8.2.5: string-width "^4.1.0" strip-ansi "^6.0.0" through "^2.3.6" - wrap-ansi "^7.0.0" + wrap-ansi "^6.0.1" internal-slot@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.5.tgz#f2a2ee21f668f8627a4667f309dc0f4fb6674986" - integrity sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ== + version "1.0.6" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" + integrity sha512-Xj6dv+PsbtwyPpEflsejS+oIZxmMlV44zAhG479uYu89MsjcYOhCFnNyKrkJrihbsiasQyY0afoCl/9BLR65bg== dependencies: - get-intrinsic "^1.2.0" - has "^1.0.3" + get-intrinsic "^1.2.2" + hasown "^2.0.0" side-channel "^1.0.4" interpret@^1.0.0: @@ -4647,17 +4673,17 @@ interpret@^1.0.0: ip@^1.1.8: version "1.1.8" - resolved "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.8.tgz#ae05948f6b075435ed3307acce04629da8cdbf48" integrity sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg== ip@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" + resolved "https://registry.yarnpkg.com/ip/-/ip-2.0.0.tgz#4cf4ab182fee2314c75ede1276f8c80b479936da" integrity sha512-WKa+XuLG1A1R0UWhl2+1XQSi+fZWMsYKffMZTTYsiZaUD8k2yDAj5atimTUD2TZkyCkNEeYE5NhFZmupOGtjYQ== is-arguments@^1.0.4: version "1.1.1" - resolved "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== dependencies: call-bind "^1.0.2" @@ -4674,26 +4700,26 @@ is-array-buffer@^3.0.1, is-array-buffer@^3.0.2: is-arrayish@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== is-bigint@^1.0.1: version "1.0.4" - resolved "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" + resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.4.tgz#08147a1875bc2b32005d41ccd8291dffc6691df3" integrity sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg== dependencies: has-bigints "^1.0.1" is-binary-path@~2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== dependencies: binary-extensions "^2.0.0" is-boolean-object@^1.1.0: version "1.1.2" - resolved "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" + resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== dependencies: call-bind "^1.0.2" @@ -4708,7 +4734,7 @@ is-builtin-module@^3.2.1: is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" - resolved "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" integrity sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA== is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0, is-core-module@^2.8.1: @@ -4720,7 +4746,7 @@ is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.5.0, is-core-m is-date-object@^1.0.1: version "1.0.5" - resolved "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== dependencies: has-tostringtag "^1.0.0" @@ -4742,7 +4768,7 @@ is-fullwidth-code-point@^3.0.0: is-generator-function@^1.0.7: version "1.0.10" - resolved "https://registry.npmjs.org/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" + resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== dependencies: has-tostringtag "^1.0.0" @@ -4761,17 +4787,17 @@ is-interactive@^1.0.0: is-lambda@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" + resolved "https://registry.yarnpkg.com/is-lambda/-/is-lambda-1.0.1.tgz#3d9877899e6a53efc0160504cde15f82e6f061d5" integrity sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ== is-negative-zero@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" + resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== is-number-object@^1.0.4: version "1.0.7" - resolved "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" + resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" integrity sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ== dependencies: has-tostringtag "^1.0.0" @@ -4783,32 +4809,32 @@ is-number@^7.0.0: is-obj@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== is-path-inside@^3.0.3: version "3.0.3" - resolved "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.3.tgz#d231362e53a07ff2b0e0ea7fed049161ffd16283" integrity sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ== is-plain-obj@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" 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.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== is-plain-object@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-5.0.0.tgz#4427f50ab3429e9025ea7d52e9043a9ef4159344" integrity sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q== is-regex@^1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== dependencies: call-bind "^1.0.2" @@ -4816,45 +4842,45 @@ is-regex@^1.1.4: is-retry-allowed@^1.1.0: version "1.2.0" - resolved "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== is-scoped@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/is-scoped/-/is-scoped-2.1.0.tgz#fef0713772658bdf5bee418608267ddae6d3566d" + resolved "https://registry.yarnpkg.com/is-scoped/-/is-scoped-2.1.0.tgz#fef0713772658bdf5bee418608267ddae6d3566d" integrity sha512-Cv4OpPTHAK9kHYzkzCrof3VJh7H/PrG2MBUMvvJebaaUMbqhm0YAtXnvh0I3Hnj2tMZWwrRROWLSgfJrKqWmlQ== dependencies: scoped-regex "^2.0.0" is-shared-array-buffer@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" + resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz#8f259c573b60b6a32d4058a1a07430c0a7344c79" 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.npmjs.org/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077" integrity sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg== is-string@^1.0.5, is-string@^1.0.7: version "1.0.7" - resolved "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" 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.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== dependencies: has-symbols "^1.0.2" is-text-path@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" + resolved "https://registry.yarnpkg.com/is-text-path/-/is-text-path-1.0.1.tgz#4e1aa0fb51bfbcb3e92688001397202c1775b66e" integrity sha512-xFuJpne9oFz5qDaodwmmG08e3CawH/2ZV8Qqza1Ko7Sk8POWbkRdwIoAWVhqvq0XeUzANEhKo2n0IXUGBm7A/w== dependencies: text-extensions "^1.0.0" @@ -4868,7 +4894,7 @@ is-typed-array@^1.1.10, is-typed-array@^1.1.12, is-typed-array@^1.1.3, is-typed- is-typedarray@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" integrity sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA== is-unicode-supported@^0.1.0: @@ -4878,19 +4904,19 @@ is-unicode-supported@^0.1.0: is-utf8@^0.2.0, is-utf8@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== is-weakref@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" + resolved "https://registry.yarnpkg.com/is-weakref/-/is-weakref-1.0.2.tgz#9529f383a9338205e89765e0392efc2f100f06f2" integrity sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ== dependencies: call-bind "^1.0.2" is-windows@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== is-wsl@^2.1.1, is-wsl@^2.2.0: @@ -4917,7 +4943,7 @@ isarray@^2.0.5: isbinaryfile@^4.0.10: version "4.0.10" - resolved "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" + resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.10.tgz#0c5b5e30c2557a2f06febd37b7322946aaee42b3" integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw== isbinaryfile@^5.0.0: @@ -4948,20 +4974,20 @@ isomorphic-git@1.23.0: simple-get "^4.0.1" istanbul-lib-coverage@^3.0.0, istanbul-lib-coverage@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz#189e7909d0a39fa5a3dfad5b03f71947770191d3" - integrity sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw== + version "3.2.2" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz#2d166c4b0644d43a39f04bf6c2edd1e585f31756" + integrity sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg== istanbul-lib-hook@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz#8f84c9434888cc6b1d0a9d7092a76d239ebf0cc6" + resolved "https://registry.yarnpkg.com/istanbul-lib-hook/-/istanbul-lib-hook-3.0.0.tgz#8f84c9434888cc6b1d0a9d7092a76d239ebf0cc6" integrity sha512-Pt/uge1Q9s+5VAZ+pCo16TYMWPBIl+oaNIjgLQxcX0itS6ueeaA+pEfThZpH8WxhFgCiEb8sAJY6MdUKgiIWaQ== dependencies: append-transform "^2.0.0" istanbul-lib-instrument@^4.0.0: version "4.0.3" - resolved "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" + resolved "https://registry.yarnpkg.com/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz#873c6fff897450118222774696a3f28902d77c1d" integrity sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ== dependencies: "@babel/core" "^7.7.5" @@ -4971,7 +4997,7 @@ istanbul-lib-instrument@^4.0.0: istanbul-lib-processinfo@^2.0.2: version "2.0.3" - resolved "https://registry.npmjs.org/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz#366d454cd0dcb7eb6e0e419378e60072c8626169" + resolved "https://registry.yarnpkg.com/istanbul-lib-processinfo/-/istanbul-lib-processinfo-2.0.3.tgz#366d454cd0dcb7eb6e0e419378e60072c8626169" integrity sha512-NkwHbo3E00oybX6NGJi6ar0B29vxyvNwoC7eJ4G4Yq28UfY758Hgn/heV8VRFhevPED4LXfFz0DQ8z/0kw9zMg== dependencies: archy "^1.0.0" @@ -4992,7 +5018,7 @@ istanbul-lib-report@^3.0.0, istanbul-lib-report@^3.0.1: istanbul-lib-source-maps@^4.0.0: version "4.0.1" - resolved "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" + resolved "https://registry.yarnpkg.com/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz#895f3a709fcfba34c6de5a42939022f3e4358551" integrity sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw== dependencies: debug "^4.1.1" @@ -5007,28 +5033,28 @@ istanbul-reports@^3.0.2, istanbul-reports@^3.1.6: html-escaper "^2.0.0" istanbul-lib-report "^3.0.0" -jackspeak@^2.0.3: - version "2.2.1" - resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.2.1.tgz#655e8cf025d872c9c03d3eb63e8f0c024fef16a6" - integrity sha512-MXbxovZ/Pm42f6cDIDkl3xpwv1AGwObKwfmjs2nQePiy85tP3fatofl3FC1aBsOtP/6fq5SbtgHwWcMsLP+bDw== +jackspeak@^2.3.5: + version "2.3.6" + resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-2.3.6.tgz#647ecc472238aee4b06ac0e461acc21a8c505ca8" + integrity sha512-N3yCS/NegsOBokc8GAdM8UcmfsKiSS8cipheD/nivzr700H+nsMOxJjQnvwOcRYVuFkdH0wGUvW2WbXGmrZGbQ== dependencies: "@isaacs/cliui" "^8.0.2" optionalDependencies: "@pkgjs/parseargs" "^0.11.0" jake@^10.8.5: - version "10.8.5" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46" - integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw== + version "10.8.7" + resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.7.tgz#63a32821177940c33f356e0ba44ff9d34e1c7d8f" + integrity sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w== dependencies: async "^3.2.3" chalk "^4.0.2" - filelist "^1.0.1" - minimatch "^3.0.4" + filelist "^1.0.4" + minimatch "^3.1.2" jmespath@0.16.0: version "0.16.0" - resolved "https://registry.npmjs.org/jmespath/-/jmespath-0.16.0.tgz#b15b0a85dfd4d930d43e69ed605943c802785076" + resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.16.0.tgz#b15b0a85dfd4d930d43e69ed605943c802785076" integrity sha512-9FzQjJ7MATs1tSpnco1K6ayiYE3figslrXA72G2HQ/n76RzvYlofyi5QM+iX4YRs/pu3yzxlVQSST23+dMDknw== joycon@^3.1.1: @@ -5038,12 +5064,12 @@ joycon@^3.1.1: js-tokens@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== js-yaml@4.1.0, js-yaml@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== dependencies: argparse "^2.0.1" @@ -5070,7 +5096,7 @@ jsdoc-type-pratt-parser@~4.0.0: jsesc@^2.5.1: version "2.5.2" - resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== jsesc@^3.0.2: @@ -5111,17 +5137,17 @@ jsforce@^2.0.0-beta.28: json-buffer@3.0.1: version "3.0.1" - resolved "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== json-parse-better-errors@^1.0.1: version "1.0.2" - resolved "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" 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.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" + resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" integrity sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w== json-parse-even-better-errors@^3.0.0: @@ -5131,7 +5157,7 @@ json-parse-even-better-errors@^3.0.0: json-schema-traverse@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== json-schema-traverse@^1.0.0: @@ -5141,12 +5167,12 @@ json-schema-traverse@^1.0.0: json-stable-stringify-without-jsonify@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== json-stringify-nice@^1.1.4: version "1.1.4" - resolved "https://registry.npmjs.org/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" + resolved "https://registry.yarnpkg.com/json-stringify-nice/-/json-stringify-nice-1.1.4.tgz#2c937962b80181d3f317dd39aa323e14f5a60a67" integrity sha512-5Z5RFW63yxReJ7vANgW6eZFGWaQvnPE3WNmZoOJrSkGju2etKA2L5rrOa1sm877TVTFt57A80BH1bArcmlLfPw== json5@^1.0.2: @@ -5156,14 +5182,14 @@ json5@^1.0.2: dependencies: minimist "^1.2.0" -json5@^2.2.1, json5@^2.2.3: +json5@^2.2.3: version "2.2.3" resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== jsonc-parser@^3.0.0, jsonc-parser@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== jsonfile@^4.0.0: @@ -5184,7 +5210,7 @@ jsonfile@^6.0.1: jsonparse@^1.2.0, jsonparse@^1.3.1: version "1.3.1" - resolved "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== jsonwebtoken@9.0.2: @@ -5214,9 +5240,9 @@ jszip@3.10.1, jszip@^3.10.1: setimmediate "^1.0.5" just-diff-apply@^5.2.0: - version "5.4.1" - resolved "https://registry.npmjs.org/just-diff-apply/-/just-diff-apply-5.4.1.tgz#1debed059ad009863b4db0e8d8f333d743cdd83b" - integrity sha512-AAV5Jw7tsniWwih8Ly3fXxEZ06y+6p5TwQMsw0dzZ/wPKilzyDgdAnL0Ug4NNIquPUOh1vfFWEHbmXUqM5+o8g== + version "5.5.0" + resolved "https://registry.yarnpkg.com/just-diff-apply/-/just-diff-apply-5.5.0.tgz#771c2ca9fa69f3d2b54e7c3f5c1dfcbcc47f9f0f" + integrity sha512-OYTthRfSh55WOItVqwpefPtNt2VdKsq5AnAK6apdtR6yCH8pr0CmSr710J0Mf+WdQy7K/OzMy7K2MgAfdQURDw== just-diff@^5.0.1, just-diff@^5.2.0: version "5.2.0" @@ -5245,16 +5271,16 @@ jws@^3.2.2: jwa "^1.4.1" safe-buffer "^5.0.1" -keyv@^4.0.0: - version "4.5.2" - resolved "https://registry.npmjs.org/keyv/-/keyv-4.5.2.tgz#0e310ce73bf7851ec702f2eaf46ec4e3805cce56" - integrity sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g== +keyv@^4.0.0, keyv@^4.5.3: + version "4.5.4" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-4.5.4.tgz#a879a99e29452f942439f2a405e3af8b31d4de93" + 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.npmjs.org/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== lazystream@^1.0.0: @@ -5266,7 +5292,7 @@ lazystream@^1.0.0: levn@^0.4.1: version "0.4.1" - resolved "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" integrity sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ== dependencies: prelude-ls "^1.2.1" @@ -5281,12 +5307,12 @@ lie@~3.3.0: lines-and-columns@^1.1.6: version "1.2.4" - resolved "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== load-yaml-file@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/load-yaml-file/-/load-yaml-file-0.2.0.tgz#af854edaf2bea89346c07549122753c07372f64d" + resolved "https://registry.yarnpkg.com/load-yaml-file/-/load-yaml-file-0.2.0.tgz#af854edaf2bea89346c07549122753c07372f64d" integrity sha512-OfCBkGEw4nN6JLtgRidPX6QxjBQGQf72q3si2uvqyFEMbycSFFHwAZeXx6cJgFM9wmLrf9zBwCP3Ivqa+LLZPw== dependencies: graceful-fs "^4.1.5" @@ -5296,18 +5322,23 @@ load-yaml-file@^0.2.0: locate-path@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== dependencies: p-locate "^4.1.0" locate-path@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" 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" + 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" @@ -5330,7 +5361,7 @@ lodash.flatten@^4.4.0: lodash.flattendeep@^4.4.0: version "4.4.0" - resolved "https://registry.npmjs.org/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" integrity sha512-uHaJFihxmJcEX3kT4I23ABqKKalJ/zDrDg0lsFtc1h+3uw49SIJ5beyhx5ExVRti3AvKoOJngIj7xz3oylPdWQ== lodash.get@^4.4.2: @@ -5380,7 +5411,7 @@ lodash.kebabcase@^4.1.1: lodash.merge@^4.6.2: version "4.6.2" - resolved "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" + resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a" integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ== lodash.mergewith@^4.6.2: @@ -5408,6 +5439,21 @@ lodash.startcase@^4.4.0: resolved "https://registry.yarnpkg.com/lodash.startcase/-/lodash.startcase-4.4.0.tgz#9436e34ed26093ed7ffae1936144350915d9add8" 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" + integrity sha512-84vYFxIkmidUiFxidA/KjjH9pAycqW+h980j7Fuz5qxRtO9pgB7MDFTdys1N7A5mcucRiDyEq4fusljItR1T/A== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.templatesettings "^4.0.0" + +lodash.templatesettings@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.templatesettings/-/lodash.templatesettings-4.2.0.tgz#e481310f049d3cf6d47e912ad09313b154f0fb33" + integrity sha512-stgLz+i3Aa9mZgnjr/O+v9ruKZsPsndy7qPZOchbqk2cnTU1ZaldKK+v7m54WoKIyxiuMZTKT2H81F8BeAc3ZQ== + dependencies: + lodash._reinterpolate "^3.0.0" + lodash.union@^4.6.0: version "4.6.0" resolved "https://registry.yarnpkg.com/lodash.union/-/lodash.union-4.6.0.tgz#48bb5088409f16f1821666641c44dd1aaae3cd88" @@ -5438,12 +5484,12 @@ log-symbols@4.1.0, log-symbols@^4.0.0, log-symbols@^4.1.0: lolex@^2.4.2: version "2.7.5" - resolved "https://registry.npmjs.org/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-2.7.5.tgz#113001d56bfc7e02d56e36291cc5c413d1aa0733" integrity sha512-l9x0+1offnKKIzYVjyXU2SiwhXDLekRzKyhnbyldPHvC7BvLPVpdNUNR2KeMAiCN2D/kLNttZgQD5WjSxuBx3Q== lolex@^5.0.1: version "5.1.2" - resolved "https://registry.npmjs.org/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" + resolved "https://registry.yarnpkg.com/lolex/-/lolex-5.1.2.tgz#953694d098ce7c07bc5ed6d0e42bc6c0c6d5a367" integrity sha512-h4hmjAvHTmd+25JSwrtTIuwbKdwg5NzZVRMLn9saij4SZaepCrTCxPr35H/3bjwfMJtN+t3CX8672UIkglz28A== dependencies: "@sinonjs/commons" "^1.7.0" @@ -5464,9 +5510,21 @@ lower-case@^2.0.2: lowercase-keys@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== +lowercase-keys@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2" + integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ== + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + lru-cache@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" @@ -5479,19 +5537,19 @@ lru-cache@^7.14.1, lru-cache@^7.4.4, lru-cache@^7.5.1, lru-cache@^7.7.1: resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.18.3.tgz#f793896e0fd0e954a59dfdd82f0773808df6aa89" integrity sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA== -lru-cache@^9.1.1: - version "9.1.1" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-9.1.1.tgz#c58a93de58630b688de39ad04ef02ef26f1902f1" - integrity sha512-65/Jky17UwSb0BuB9V+MyDpsOtXKmYwzhyl+cOa9XUiI4uV2Ouy/2voFP3+al0BjZbJgMBD8FojMpAf+Z+qn4A== +"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" + integrity sha512-IJ4uwUTi2qCccrioU6g9g/5rvvVl13bsdczUUcqbciD9iLr095yj8DQKdObriEvuNSx325N1rV1O0sJFszx75g== lunr@^2.3.9: version "2.3.9" - resolved "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== make-dir@^3.0.0, make-dir@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== dependencies: semver "^6.0.0" @@ -5510,7 +5568,7 @@ make-error@^1.1.1: make-fetch-happen@^10.0.1, make-fetch-happen@^10.0.3: version "10.2.1" - resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== dependencies: agentkeepalive "^4.2.1" @@ -5530,7 +5588,7 @@ make-fetch-happen@^10.0.1, make-fetch-happen@^10.0.3: socks-proxy-agent "^7.0.0" ssri "^9.0.0" -make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, make-fetch-happen@^11.1.0: +make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, 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" integrity sha512-rLWS7GCSTcEujjVBs2YqG7Y4643u8ucvCJeSRqiLYhesrDuzeuFIk37xREzAsfQaqzl8b9rNCE4m6J8tvX4Q8w== @@ -5553,7 +5611,7 @@ make-fetch-happen@^11.0.0, make-fetch-happen@^11.0.1, make-fetch-happen@^11.1.0: make-fetch-happen@^9.1.0: version "9.1.0" - resolved "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" + resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz#53085a09e7971433e6765f7971bf63f4e05cb968" integrity sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg== dependencies: agentkeepalive "^4.1.3" @@ -5575,17 +5633,17 @@ make-fetch-happen@^9.1.0: map-obj@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" integrity sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg== map-obj@^4.0.0: version "4.3.0" - resolved "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== marked-terminal@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/marked-terminal/-/marked-terminal-4.2.0.tgz#593734a53cf9a4bb01ea961aa579bd21889ce502" + resolved "https://registry.yarnpkg.com/marked-terminal/-/marked-terminal-4.2.0.tgz#593734a53cf9a4bb01ea961aa579bd21889ce502" integrity sha512-DQfNRV9svZf0Dm9Cf5x5xaVJ1+XjxQW6XjFJ5HFkVyK52SDpj5PCBzS5X5r2w9nHr3mlB0T5201UMLue9fmhUw== dependencies: ansi-escapes "^4.3.1" @@ -5617,18 +5675,18 @@ marked@^4.3.0: textextensions "^5.13.0" "mem-fs@^1.2.0 || ^2.0.0": - version "2.2.1" - resolved "https://registry.npmjs.org/mem-fs/-/mem-fs-2.2.1.tgz#c87bc8a53fb17971b129d4bcd59a9149fb78c5b1" - integrity sha512-yiAivd4xFOH/WXlUi6v/nKopBh1QLzwjFi36NK88cGt/PRXI8WeBASqY+YSjIVWvQTx3hR8zHKDBMV6hWmglNA== + version "2.3.0" + resolved "https://registry.yarnpkg.com/mem-fs/-/mem-fs-2.3.0.tgz#d38bdd729ab0316bfb56d0d0ff669f91e7078463" + integrity sha512-GftCCBs6EN8sz3BoWO1bCj8t7YBtT713d8bUgbhg9Iel5kFSqnSvCK06TYIDJAtJ51cSiWkM/YemlT0dfoFycw== dependencies: - "@types/node" "^15.6.1" + "@types/node" "^15.6.2" "@types/vinyl" "^2.0.4" vinyl "^2.0.1" vinyl-file "^3.0.0" -meow@^8.0.0: +meow@^8.0.0, meow@^8.1.2: version "8.1.2" - resolved "https://registry.npmjs.org/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" + resolved "https://registry.yarnpkg.com/meow/-/meow-8.1.2.tgz#bcbe45bda0ee1729d350c03cffc8395a36c4e897" integrity sha512-r85E3NdZ+mpYk1C6RjPFEMSE+s1iZMuHtsHAqY0DT3jZczl0diWUZ8g6oU7h0M9cD2EL+PzaYghhCLzR0ZNn5Q== dependencies: "@types/minimist" "^1.2.0" @@ -5645,7 +5703,7 @@ meow@^8.0.0: merge-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== merge2@^1.3.0, merge2@^1.4.1: @@ -5685,7 +5743,7 @@ mimic-fn@^2.1.0: mimic-response@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== mimic-response@^3.1.0: @@ -5693,9 +5751,14 @@ mimic-response@^3.1.0: resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-3.1.0.tgz#2d1d59af9c1b129815accc2c46a022a5ce1fa3c9" integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ== +mimic-response@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-4.0.0.tgz#35468b19e7c75d10f5165ea25e75a5ceea7cf70f" + integrity sha512-e5ISH9xMYU0DzrT+jl8q2ze9D6eWBto+I8CNpe+VI+K2J/F/k3PdkdTdz4wvGVH4NTpo+NRYTVIuMQEMMcsLqg== + min-indent@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" + resolved "https://registry.yarnpkg.com/min-indent/-/min-indent-1.0.1.tgz#a63f681673b30571fbe8bc25686ae746eefa9869" integrity sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg== minimatch@5.0.1: @@ -5720,9 +5783,9 @@ minimatch@^5.0.1, minimatch@^5.1.0, minimatch@^5.1.6: brace-expansion "^2.0.1" minimatch@^7.2.0: - version "7.4.2" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.2.tgz#157e847d79ca671054253b840656720cb733f10f" - integrity sha512-xy4q7wou3vUoC9k1xGTXc+awNdGaGVHtFUaey8tiX4H1QRc04DZ/rmDFwNm2EBsuYEhAZ6SgMmYf3InGY6OauA== + version "7.4.6" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-7.4.6.tgz#845d6f254d8f4a5e4fd6baf44d5f10c8448365fb" + integrity sha512-sBz8G/YjVniEz6lKPNpKxXwazJe4c19fEfV2GDMX6AjFz+MX9uDWIZW8XreVhkFW3fkIdTv/gxWr/Kks5FFAVw== dependencies: brace-expansion "^2.0.1" @@ -5735,7 +5798,7 @@ minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3: minimist-options@4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" + resolved "https://registry.yarnpkg.com/minimist-options/-/minimist-options-4.1.0.tgz#c0655713c53a8a2ebd77ffa247d342c40f010619" integrity sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A== dependencies: arrify "^1.0.1" @@ -5756,14 +5819,14 @@ minimisted@^2.0.0: minipass-collect@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" + resolved "https://registry.yarnpkg.com/minipass-collect/-/minipass-collect-1.0.2.tgz#22b813bf745dc6edba2576b940022ad6edc8c617" integrity sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA== dependencies: minipass "^3.0.0" minipass-fetch@^1.3.2, minipass-fetch@^1.4.1: version "1.4.1" - resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-1.4.1.tgz#d75e0091daac1b0ffd7e9d41629faff7d0c1f1b6" integrity sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw== dependencies: minipass "^3.1.0" @@ -5774,7 +5837,7 @@ minipass-fetch@^1.3.2, minipass-fetch@^1.4.1: minipass-fetch@^2.0.3: version "2.1.2" - resolved "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-2.1.2.tgz#95560b50c472d81a3bc76f20ede80eaed76d8add" integrity sha512-LT49Zi2/WMROHYoqGgdlQIZh8mLPZmOrN2NdJjMXxYe4nkN6FUyuPuOAOedNJDrx0IRGg9+4guZewtp8hE6TxA== dependencies: minipass "^3.1.6" @@ -5784,11 +5847,11 @@ minipass-fetch@^2.0.3: encoding "^0.1.13" minipass-fetch@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.3.tgz#d9df70085609864331b533c960fd4ffaa78d15ce" - integrity sha512-n5ITsTkDqYkYJZjcRWzZt9qnZKCT7nKCosJhHoj7S7zD+BP4jVbWs+odsniw5TA3E0sLomhTKOKjF86wf11PuQ== + version "3.0.4" + resolved "https://registry.yarnpkg.com/minipass-fetch/-/minipass-fetch-3.0.4.tgz#4d4d9b9f34053af6c6e597a64be8e66e42bf45b7" + integrity sha512-jHAqnA728uUpIaFm7NWsCnqKT6UqZz7GcI/bDpPATuwYyKwJwW0remxSCxUlKiEty+eopHGa3oc8WxgQ1FFJqg== dependencies: - minipass "^5.0.0" + minipass "^7.0.3" minipass-sized "^1.0.3" minizlib "^2.1.2" optionalDependencies: @@ -5796,14 +5859,14 @@ minipass-fetch@^3.0.0: minipass-flush@^1.0.5: version "1.0.5" - resolved "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" + resolved "https://registry.yarnpkg.com/minipass-flush/-/minipass-flush-1.0.5.tgz#82e7135d7e89a50ffe64610a787953c4c4cbb373" integrity sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw== dependencies: minipass "^3.0.0" minipass-json-stream@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" + resolved "https://registry.yarnpkg.com/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz#7edbb92588fbfc2ff1db2fc10397acb7b6b44aa7" integrity sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg== dependencies: jsonparse "^1.3.1" @@ -5811,43 +5874,38 @@ minipass-json-stream@^1.0.1: minipass-pipeline@^1.2.2, minipass-pipeline@^1.2.4: version "1.2.4" - resolved "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" + resolved "https://registry.yarnpkg.com/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz#68472f79711c084657c067c5c6ad93cddea8214c" integrity sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A== dependencies: minipass "^3.0.0" minipass-sized@^1.0.3: version "1.0.3" - resolved "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" + resolved "https://registry.yarnpkg.com/minipass-sized/-/minipass-sized-1.0.3.tgz#70ee5a7c5052070afacfbc22977ea79def353b70" 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.4" - resolved "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" - integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== + version "3.3.6" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a" + integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw== dependencies: yallist "^4.0.0" -minipass@^4.0.0: - version "4.2.4" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.2.4.tgz#7d0d97434b6a19f59c5c3221698b48bbf3b2cd06" - integrity sha512-lwycX3cBMTvcejsHITUgYj6Gy6A7Nh4Q6h9NP4sTHY1ccJlC7yKzDmiShEHsJ16Jf1nKGDEaiHxiltsJEvk0nQ== - minipass@^5.0.0: version "5.0.0" resolved "https://registry.yarnpkg.com/minipass/-/minipass-5.0.0.tgz#3e9788ffb90b694a5d0ec94479a45b5d8738133d" integrity sha512-3FnjYuehv9k6ovOEbyOswadCDPX1piCfhV8ncmYtHOjuPwylVWsghTLo7rabjC3Rx5xD4HDx8Wm1xnMF7S5qFQ== -"minipass@^5.0.0 || ^6.0.2": - version "6.0.2" - resolved "https://registry.yarnpkg.com/minipass/-/minipass-6.0.2.tgz#542844b6c4ce95b202c0995b0a471f1229de4c81" - integrity sha512-MzWSV5nYVT7mVyWCwn2o7JH13w2TBRmmSqSRCKzTw+lmft9X4z+3wjvs06Tzijo5z4W/kahUCDpRXTF+ZrmF/w== +"minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.0.3: + version "7.0.4" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.0.4.tgz#dbce03740f50a4786ba994c1fb908844d27b038c" + integrity sha512-jYofLM5Dam9279rdkWzqHozUo4ybjdZmCsDHePy5V/PbBcVMiSZR97gmAy45aqi8CK1lG2ECd356FU86avfwUQ== minizlib@^2.0.0, minizlib@^2.1.1, minizlib@^2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-2.1.2.tgz#e90d3466ba209b932451508a11ce3d3632145931" integrity sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg== dependencies: minipass "^3.0.0" @@ -5855,7 +5913,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.npmjs.org/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316" + resolved "https://registry.yarnpkg.com/mkdirp-infer-owner/-/mkdirp-infer-owner-2.0.0.tgz#55d3b368e7d89065c38f32fd38e638f0ab61d316" integrity sha512-sdqtiFt3lkOaYvTXSRIUjkIdPTcxgv5+fgqYE/5qgwdw12cOrAuzzgzvVExIkH/ul1oeHN3bCLOWSG3XOqbKKw== dependencies: chownr "^2.0.0" @@ -5864,7 +5922,7 @@ mkdirp-infer-owner@^2.0.0: mkdirp@^1.0.3, mkdirp@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== mocha@^10.2.0: @@ -5896,7 +5954,7 @@ mocha@^10.2.0: mri@^1.1.5: version "1.2.0" - resolved "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" + resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== ms@2.1.2: @@ -5911,7 +5969,7 @@ ms@2.1.3, ms@^2.0.0, ms@^2.1.1: multimatch@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-4.0.0.tgz#8c3c0f6e3e8449ada0af3dd29efb491a375191b3" integrity sha512-lDmx79y1z6i7RNx0ZGCPq1bzJ6ZoDDKbvh7jxr9SJcWLkShMzXrHbYVpTdnhNM5MXpDUxCQ4DgqVttVXlBgiBQ== dependencies: "@types/minimatch" "^3.0.3" @@ -5922,7 +5980,7 @@ multimatch@^4.0.0: multimatch@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6" + resolved "https://registry.yarnpkg.com/multimatch/-/multimatch-5.0.0.tgz#932b800963cea7a31a033328fa1e0c3a1874dbe6" integrity sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA== dependencies: "@types/minimatch" "^3.0.3" @@ -5949,9 +6007,14 @@ nanoid@3.3.3: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" 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" + integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== + natural-compare@^1.4.0: version "1.4.0" - resolved "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== natural-orderby@^2.0.3: @@ -5961,7 +6024,7 @@ natural-orderby@^2.0.3: negotiator@^0.6.2, negotiator@^0.6.3: version "0.6.3" - resolved "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd" integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg== neo-async@^2.6.2: @@ -5971,17 +6034,12 @@ neo-async@^2.6.2: netmask@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" + resolved "https://registry.yarnpkg.com/netmask/-/netmask-2.0.2.tgz#8b01a07644065d536383835823bc52004ebac5e7" integrity sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg== -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - nise@^1.3.3: version "1.5.3" - resolved "https://registry.npmjs.org/nise/-/nise-1.5.3.tgz#9d2cfe37d44f57317766c6e9408a359c5d3ac1f7" + resolved "https://registry.yarnpkg.com/nise/-/nise-1.5.3.tgz#9d2cfe37d44f57317766c6e9408a359c5d3ac1f7" integrity sha512-Ymbac/94xeIrMf59REBPOv0thr+CJVFMhrlAkW/gjCIE58BGQdCj0x7KRCb3yz+Ga2Rz3E9XXSvUyyxqqhjQAQ== dependencies: "@sinonjs/formatio" "^3.2.1" @@ -5992,7 +6050,7 @@ nise@^1.3.3: nise@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/nise/-/nise-4.1.0.tgz#8fb75a26e90b99202fa1e63f448f58efbcdedaf6" + resolved "https://registry.yarnpkg.com/nise/-/nise-4.1.0.tgz#8fb75a26e90b99202fa1e63f448f58efbcdedaf6" integrity sha512-eQMEmGN/8arp0xsvGoQ+B1qvSkR73B1nWSCh7nOt5neMCtwcQVYQGdzQMhcNscktTsWB54xnlSQFzOAPJD8nXA== dependencies: "@sinonjs/commons" "^1.7.0" @@ -6022,7 +6080,7 @@ no-case@^3.0.4: node-emoji@^1.10.0: version "1.11.0" - resolved "https://registry.npmjs.org/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.11.0.tgz#69a0150e6946e2f115e9d7ea4df7971e2628301c" integrity sha512-wo2DpQkQp7Sjm2A0cq+sN7EHKO6Sl0ctXeBdFZrL9T9+UywORbufTcTZxom8YqpLQt/FqNMUkOpkZrJVYSKD3A== dependencies: lodash "^4.17.21" @@ -6036,7 +6094,7 @@ node-fetch@^2.6.1, node-fetch@^2.6.7: node-gyp@^8.2.0: version "8.4.1" - resolved "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-8.4.1.tgz#3d49308fc31f768180957d6b5746845fbd429937" integrity sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w== dependencies: env-paths "^2.2.0" @@ -6051,11 +6109,12 @@ node-gyp@^8.2.0: which "^2.0.2" node-gyp@^9.0.0: - version "9.3.1" - resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.3.1.tgz#1e19f5f290afcc9c46973d68700cbd21a96192e4" - integrity sha512-4Q16ZCqq3g8awk6UplT7AuxQ35XN4R/yf/+wSAwcBUAjg7l58RTactWaP8fIDTi0FzI7YcVLujwExakZlfWkXg== + version "9.4.1" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.4.1.tgz#8a1023e0d6766ecb52764cc3a734b36ff275e185" + integrity sha512-OQkWKbjQKbGkMf/xqI1jjy3oCTgMKJac58G2+bjZb3fza6gW2YrCSdMQYaoTb70crvE//Gngr4f0AgVHmqHvBQ== dependencies: env-paths "^2.2.0" + exponential-backoff "^3.1.1" glob "^7.1.4" graceful-fs "^4.2.6" make-fetch-happen "^10.0.3" @@ -6068,19 +6127,19 @@ node-gyp@^9.0.0: node-preload@^0.2.1: version "0.2.1" - resolved "https://registry.npmjs.org/node-preload/-/node-preload-0.2.1.tgz#c03043bb327f417a18fee7ab7ee57b408a144301" + resolved "https://registry.yarnpkg.com/node-preload/-/node-preload-0.2.1.tgz#c03043bb327f417a18fee7ab7ee57b408a144301" integrity sha512-RM5oyBy45cLEoHqCeh+MNuFAxO0vTFBLskvQbOKnEE7YTTSN4tbN8QWDIPQ6L+WvKsB/qLEGpYe2ZZ9d4W9OIQ== dependencies: process-on-spawn "^1.0.0" -node-releases@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503" - integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg== +node-releases@^2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.13.tgz#d5ed1627c23e3461e819b02e57b75e4899b1c81d" + integrity sha512-uYr7J37ae/ORWdZeQ1xxMJe3NtdmqMC/JZK+geofDrkLUApKRHPd18/TxtBOJ4A0/+uUIliorNrfYV6s1b02eQ== nopt@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-5.0.0.tgz#530942bb58a512fccafe53fe210f13a25355dc88" integrity sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ== dependencies: abbrev "1" @@ -6094,7 +6153,7 @@ nopt@^6.0.0: normalize-package-data@^2.5.0: version "2.5.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== dependencies: hosted-git-info "^2.1.4" @@ -6104,7 +6163,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.npmjs.org/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-3.0.3.tgz#dbcc3e2da59509a0983422884cd172eefdfa525e" integrity sha512-p2W1sgqij3zMMyRC067Dg16bfzVH+w7hyegmpIvZ4JNjqtGOVAIvLmjBx3yP7YTe9vKJgkoNOPjwQGogDoMXFA== dependencies: hosted-git-info "^4.0.1" @@ -6129,12 +6188,17 @@ normalize-path@^3.0.0, normalize-path@~3.0.0: normalize-url@^6.0.1: version "6.1.0" - resolved "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== +normalize-url@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-8.0.0.tgz#593dbd284f743e8dcf6a5ddf8fadff149c82701a" + integrity sha512-uVFpKhj5MheNBJRTiMZ9pE/7hD1QTeEvugSJW/OmLzAp78PB5O6adfMNTvmfKhXBkvCzC+rqifWcVYpGFwTjnw== + npm-bundled@^1.1.1: version "1.1.2" - resolved "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.2.tgz#944c78789bd739035b70baa2ca5cc32b8d860bc1" integrity sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ== dependencies: npm-normalize-package-bin "^1.0.1" @@ -6148,26 +6212,26 @@ npm-bundled@^3.0.0: npm-install-checks@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-4.0.0.tgz#a37facc763a2fde0497ef2c6d0ac7c3fbe00d7b4" integrity sha512-09OmyDkNLYwqKPOnbI8exiOZU2GVVmQp7tgez2BPi5OZC8M82elDAps7sxC4l//uSUtotWqoEIDwjRvWH4qz8w== dependencies: semver "^7.1.1" npm-install-checks@^6.0.0: - version "6.1.1" - resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.1.1.tgz#b459b621634d06546664207fde16810815808db1" - integrity sha512-dH3GmQL4vsPtld59cOn8uY0iOqRmqKvV+DLGwNXV/Q7MDgD2QfOADWd/mFXcIE5LVhYYGjA3baz6W9JneqnuCw== + version "6.3.0" + resolved "https://registry.yarnpkg.com/npm-install-checks/-/npm-install-checks-6.3.0.tgz#046552d8920e801fa9f919cad569545d60e826fe" + 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.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== npm-normalize-package-bin@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz#9447a1adaaf89d8ad0abe24c6c84ad614a675fff" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-2.0.0.tgz#9447a1adaaf89d8ad0abe24c6c84ad614a675fff" integrity sha512-awzfKUO7v0FscrSpRoogyNm0sajikhBWpU0QMrW09AMi9n1PoKU6WaIqUzuJSQnpciZZmJ/jMZ2Egfmb/9LiWQ== npm-normalize-package-bin@^3.0.0: @@ -6187,7 +6251,7 @@ npm-package-arg@^10.0.0: 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.npmjs.org/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44" + resolved "https://registry.yarnpkg.com/npm-package-arg/-/npm-package-arg-8.1.5.tgz#3369b2d5fe8fdc674baa7f1786514ddc15466e44" integrity sha512-LhgZrg0n0VgvzVdSm1oiZworPbTxYHUJCgtsJW8mGvlDpxTM1vSJc3m5QZeUkhAHIzbz3VCHd/R4osi1L1Tg/Q== dependencies: hosted-git-info "^4.0.1" @@ -6196,7 +6260,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.npmjs.org/npm-packlist/-/npm-packlist-3.0.0.tgz#0370df5cfc2fcc8f79b8f42b37798dd9ee32c2a9" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-3.0.0.tgz#0370df5cfc2fcc8f79b8f42b37798dd9ee32c2a9" integrity sha512-L/cbzmutAwII5glUcf2DBRNY/d0TFd4e/FnaZigJV6JD85RHZXJFGwCndjMWiiViiWSsWt3tiOLpI3ByTnIdFQ== dependencies: glob "^7.1.6" @@ -6213,7 +6277,7 @@ npm-packlist@^7.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.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz#7b5484ca2c908565f43b7f27644f36bb816f5148" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-6.1.1.tgz#7b5484ca2c908565f43b7f27644f36bb816f5148" integrity sha512-dBsdBtORT84S8V8UTad1WlUyKIY9iMsAmqxHbLdeEeBNMLQDlDWWra3wYUx9EBEIiG/YwAy0XyNHDd2goAsfuA== dependencies: npm-install-checks "^4.0.0" @@ -6222,9 +6286,9 @@ npm-pick-manifest@^6.0.0, npm-pick-manifest@^6.1.0, npm-pick-manifest@^6.1.1: semver "^7.3.4" npm-pick-manifest@^8.0.0: - version "8.0.1" - resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-8.0.1.tgz#c6acd97d1ad4c5dbb80eac7b386b03ffeb289e5f" - integrity sha512-mRtvlBjTsJvfCCdmPtiu2bdlx8d/KXtF7yNXNWe7G0Z36qWA9Ny5zXsI2PfBZEv7SXgoxTmNaTzGSbbzDZChoA== + version "8.0.2" + resolved "https://registry.yarnpkg.com/npm-pick-manifest/-/npm-pick-manifest-8.0.2.tgz#2159778d9c7360420c925c1a2287b5a884c713aa" + integrity sha512-1dKY+86/AIiq1tkKVD3l0WI+Gd3vkknVGAggsFeBkTvbhMQ1OND/LKkYv4JtXPKUJ8bOTCyLiqEg2P6QNdK+Gg== dependencies: npm-install-checks "^6.0.0" npm-normalize-package-bin "^3.0.0" @@ -6233,7 +6297,7 @@ npm-pick-manifest@^8.0.0: npm-registry-fetch@^12.0.0, npm-registry-fetch@^12.0.1: version "12.0.2" - resolved "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-12.0.2.tgz#ae583bb3c902a60dae43675b5e33b5b1f6159f1e" + resolved "https://registry.yarnpkg.com/npm-registry-fetch/-/npm-registry-fetch-12.0.2.tgz#ae583bb3c902a60dae43675b5e33b5b1f6159f1e" integrity sha512-Df5QT3RaJnXYuOwtXBXS9BWs+tHH2olvkCLh6jcR/b/u3DvPMlp3J0TvvYwplPKxHMOwfg287PYih9QqaVFoKA== dependencies: make-fetch-happen "^10.0.1" @@ -6258,14 +6322,14 @@ npm-registry-fetch@^14.0.0: npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== dependencies: path-key "^3.0.0" npmlog@^5.0.1: version "5.0.1" - resolved "https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-5.0.1.tgz#f06678e80e29419ad67ab964e0fa69959c1eb8b0" integrity sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw== dependencies: are-we-there-yet "^2.0.0" @@ -6275,7 +6339,7 @@ npmlog@^5.0.1: npmlog@^6.0.0: version "6.0.2" - resolved "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830" integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg== dependencies: are-we-there-yet "^3.0.0" @@ -6285,7 +6349,7 @@ npmlog@^6.0.0: nyc@^15.1.0: version "15.1.0" - resolved "https://registry.npmjs.org/nyc/-/nyc-15.1.0.tgz#1335dae12ddc87b6e249d5a1994ca4bdaea75f02" + resolved "https://registry.yarnpkg.com/nyc/-/nyc-15.1.0.tgz#1335dae12ddc87b6e249d5a1994ca4bdaea75f02" integrity sha512-jMW04n9SxKdKi1ZMGhvUTHBN0EICCRkHemEoE5jm6mTYcqcdas0ATzgUgejlQUHMvpnOZqGB5Xxsv9KxJW1j8A== dependencies: "@istanbuljs/load-nyc-config" "^1.0.0" @@ -6318,17 +6382,17 @@ nyc@^15.1.0: object-assign@^4.1.1: version "4.1.1" - resolved "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-inspect@^1.12.3, object-inspect@^1.9.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.12.3.tgz#ba62dffd67ee256c8c086dfae69e016cd1f198b9" - integrity sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g== +object-inspect@^1.13.1, object-inspect@^1.9.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" + integrity sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ== object-keys@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== object-treeify@^1.1.33: @@ -6338,7 +6402,7 @@ object-treeify@^1.1.33: object.assign@^4.1.4: version "4.1.4" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== dependencies: call-bind "^1.0.2" @@ -6374,28 +6438,27 @@ object.values@^1.1.7: define-properties "^1.2.0" es-abstract "^1.22.1" -oclif@^3.16.0: - version "3.17.2" - resolved "https://registry.yarnpkg.com/oclif/-/oclif-3.17.2.tgz#f13756c9b1968047e76b99cb09db9725e96fb2f6" - integrity sha512-+vFXxgmR7dGGz+g6YiqSZu2LXVkBMaS9/rhtsLGkYw45e53CW/3kBgPRnOvxcTDM3Td9JPeBD2JWxXnPKGQW3A== +oclif@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/oclif/-/oclif-4.0.3.tgz#2ff8fab10c29b2cd0bbf8e9c87640a64151b65ff" + integrity sha512-Bq7t1bJvAKYwW3DKQIzok3jkXv7yUIMneoSec1qUr9wfSqzRTZQB0UUDovwlT/L+3TBMVoRyw1WeX+YDvfRJNA== dependencies: - "@oclif/core" "^2.11.4" + "@oclif/core" "^3.0.4" "@oclif/plugin-help" "^5.2.14" "@oclif/plugin-not-found" "^2.3.32" - "@oclif/plugin-warn-if-update-available" "^2.0.44" + "@oclif/plugin-warn-if-update-available" "^3.0.0" async-retry "^1.3.3" aws-sdk "^2.1231.0" - concurrently "^7.6.0" + change-case "^4" debug "^4.3.3" + eslint-plugin-perfectionist "^2.1.0" find-yarn-workspace-root "^2.0.0" fs-extra "^8.1" github-slugger "^1.5.0" got "^11" - lodash "^4.17.21" + lodash.template "^4.5.0" normalize-package-data "^3.0.3" semver "^7.3.8" - shelljs "^0.8.5" - tslib "^2.3.1" yeoman-environment "^3.15.1" yeoman-generator "^5.8.0" @@ -6469,59 +6532,64 @@ os-tmpdir@~1.0.2: p-cancelable@^2.0.0: version "2.1.1" - resolved "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== +p-cancelable@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-3.0.0.tgz#63826694b54d61ca1c20ebcb6d3ecf5e14cd8050" + integrity sha512-mlVgR3PGuzlo0MmTdk4cXqXWlwQDLnONTAg6sm62XkMJEiRxN3GL3SffkYvqwonbkJBcrI7Uvv5Zh9yjvn2iUw== + p-finally@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== p-limit@^2.2.0: version "2.3.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== dependencies: p-try "^2.0.0" p-limit@^3.0.2: version "3.1.0" - resolved "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== dependencies: yocto-queue "^0.1.0" p-locate@^4.1.0: version "4.1.0" - resolved "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" 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.npmjs.org/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== dependencies: p-limit "^3.0.2" p-map@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== dependencies: aggregate-error "^3.0.0" p-map@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-4.0.0.tgz#bb2f95a5eda2ec168ec9274e06a747c3e2904d2b" integrity sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ== dependencies: aggregate-error "^3.0.0" p-queue@^6.6.2: version "6.6.2" - resolved "https://registry.npmjs.org/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" + resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== dependencies: eventemitter3 "^4.0.4" @@ -6529,14 +6597,14 @@ p-queue@^6.6.2: p-timeout@^3.2.0: version "3.2.0" - resolved "https://registry.npmjs.org/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" 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.npmjs.org/p-transform/-/p-transform-1.3.0.tgz#2da960ba92c6a56efbe75cbd1edf3ea7b3191049" + resolved "https://registry.yarnpkg.com/p-transform/-/p-transform-1.3.0.tgz#2da960ba92c6a56efbe75cbd1edf3ea7b3191049" integrity sha512-UJKdSzgd3KOnXXAtqN5+/eeHcvTn1hBkesEmElVgvO/NAYcxAvmjzIGmnNd3Tb/gRAvMBdNRFD4qAWdHxY6QXg== dependencies: debug "^4.3.2" @@ -6544,7 +6612,7 @@ p-transform@^1.3.0: p-try@^2.0.0: version "2.2.0" - resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== pac-proxy-agent@^7.0.1: @@ -6572,7 +6640,7 @@ pac-resolver@^7.0.0: package-hash@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/package-hash/-/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506" + resolved "https://registry.yarnpkg.com/package-hash/-/package-hash-4.0.0.tgz#3537f654665ec3cc38827387fc904c163c54f506" integrity sha512-whdkPIooSu/bASggZ96BWVvZTRMOFxnyUG5PnTSGKoJE2gd5mbVNmR2Nj20QFzxYYgAXpoqC+AiXzl+UMRh7zQ== dependencies: graceful-fs "^4.1.15" @@ -6582,7 +6650,7 @@ package-hash@^4.0.0: pacote@^12.0.0, pacote@^12.0.2: version "12.0.3" - resolved "https://registry.npmjs.org/pacote/-/pacote-12.0.3.tgz#b6f25868deb810e7e0ddf001be88da2bcaca57c7" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-12.0.3.tgz#b6f25868deb810e7e0ddf001be88da2bcaca57c7" integrity sha512-CdYEl03JDrRO3x18uHjBYA9TyoW8gy+ThVcypcDkxPtKlw76e4ejhYB6i9lJ+/cebbjpqPW/CijjqxwDTts8Ow== dependencies: "@npmcli/git" "^2.1.0" @@ -6644,14 +6712,14 @@ param-case@^3.0.4: parent-module@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" 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.npmjs.org/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz#3d05bc8ffe07d39600dc6436c6aefe382033d323" + resolved "https://registry.yarnpkg.com/parse-conflict-json/-/parse-conflict-json-2.0.2.tgz#3d05bc8ffe07d39600dc6436c6aefe382033d323" integrity sha512-jDbRGb00TAPFsKWCpZZOT93SxVP9nONOSgES3AevqRq/CHvavEBvKAjxX9p5Y5F0RZLxH9Ufd9+RwtCsa+lFDA== dependencies: json-parse-even-better-errors "^2.3.1" @@ -6660,15 +6728,15 @@ parse-conflict-json@^2.0.1: parse-json@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== dependencies: error-ex "^1.3.1" json-parse-better-errors "^1.0.1" -parse-json@^5.0.0: +parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" integrity sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg== dependencies: "@babel/code-frame" "^7.0.0" @@ -6685,12 +6753,12 @@ pascal-case@^3.1.2: tslib "^2.0.3" password-prompt@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/password-prompt/-/password-prompt-1.1.2.tgz#85b2f93896c5bd9e9f2d6ff0627fa5af3dc00923" - integrity sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA== + version "1.1.3" + resolved "https://registry.yarnpkg.com/password-prompt/-/password-prompt-1.1.3.tgz#05e539f4e7ca4d6c865d479313f10eb9db63ee5f" + integrity sha512-HkrjG2aJlvF0t2BMH0e2LB/EHf3Lcq3fNMzy4GYHcQblAvOl+QQji1Lx7WRBMqpVK8p+KR7bCg7oqAMXtdgqyw== dependencies: - ansi-escapes "^3.1.0" - cross-spawn "^6.0.5" + ansi-escapes "^4.3.2" + cross-spawn "^7.0.3" path-case@^3.0.4: version "3.0.4" @@ -6702,7 +6770,7 @@ path-case@^3.0.4: path-exists@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== path-is-absolute@^1.0.0: @@ -6710,14 +6778,9 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== - path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" - resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== path-parse@^1.0.7: @@ -6725,13 +6788,13 @@ path-parse@^1.0.7: resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== -path-scurry@^1.7.0: - version "1.9.2" - resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.9.2.tgz#90f9d296ac5e37e608028e28a447b11d385b3f63" - integrity sha512-qSDLy2aGFPm8i4rsbHd4MNyTcrzHFsLQykrtbuGRknZZCBBVXSv2tSCDN2Cg6Rt/GFRw8GoW9y9Ecw5rIPG1sg== +path-scurry@^1.10.1: + version "1.10.1" + resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-1.10.1.tgz#9ba6bf5aa8500fe9fd67df4f0d9483b2b0bfc698" + integrity sha512-MkhCqzzBEpPvxxQ71Md0b1Kk51W01lrYvlMzSUaIzNsODdd7mqhiimSZlr+VegAz5Z6Vzt9Xg2ttE//XBhH3EQ== dependencies: - lru-cache "^9.1.1" - minipass "^5.0.0 || ^6.0.2" + lru-cache "^9.1.1 || ^10.0.0" + minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-to-regexp@^1.7.0: version "1.8.0" @@ -6747,12 +6810,12 @@ path-type@^4.0.0: pathval@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== picocolors@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" + resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: @@ -6762,7 +6825,7 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: pify@^2.3.0: version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== pify@^4.0.1: @@ -6822,7 +6885,7 @@ pino@^8.16.0, pino@^8.16.1: pkg-dir@^4.1.0, pkg-dir@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== dependencies: find-up "^4.0.0" @@ -6833,9 +6896,9 @@ pluralize@^8.0.0: integrity sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA== preferred-pm@^3.0.3: - version "3.0.3" - resolved "https://registry.npmjs.org/preferred-pm/-/preferred-pm-3.0.3.tgz#1b6338000371e3edbce52ef2e4f65eb2e73586d6" - integrity sha512-+wZgbxNES/KlJs9q40F/1sfOd/j7f1O9JaHcW5Dsn3aUUOZg3L2bjpVUcKV2jvtElYfoTuQiNeMfQJ4kwUAhCQ== + version "3.1.2" + resolved "https://registry.yarnpkg.com/preferred-pm/-/preferred-pm-3.1.2.tgz#aedb70550734a574dffcbf2ce82642bd1753bdd6" + integrity sha512-nk7dKrcW8hfCZ4H6klWcdRknBOXWzNQByJ0oJyX97BOupsYD+FzLS4hflgEu/uPUEHZCuRfMxzCBsuWd7OzT8Q== dependencies: find-up "^5.0.0" find-yarn-workspace-root2 "1.2.16" @@ -6844,7 +6907,7 @@ preferred-pm@^3.0.3: prelude-ls@^1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== prettier@^2.8.8: @@ -6854,7 +6917,7 @@ prettier@^2.8.8: pretty-bytes@^5.3.0: version "5.6.0" - resolved "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" + resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb" integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg== pretty-quick@^3.1.3: @@ -6871,7 +6934,7 @@ pretty-quick@^3.1.3: proc-log@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/proc-log/-/proc-log-1.0.0.tgz#0d927307401f69ed79341e83a0b2c9a13395eb77" + resolved "https://registry.yarnpkg.com/proc-log/-/proc-log-1.0.0.tgz#0d927307401f69ed79341e83a0b2c9a13395eb77" integrity sha512-aCk8AO51s+4JyuYGg3Q/a6gnrlDO09NpVWePtjp7xwphcoQ04x5WAfCyugcsbLooWcMJ87CLkD4+604IckEdhg== proc-log@^3.0.0: @@ -6886,7 +6949,7 @@ process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: process-on-spawn@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/process-on-spawn/-/process-on-spawn-1.0.0.tgz#95b05a23073d30a17acfdc92a440efd2baefdc93" + resolved "https://registry.yarnpkg.com/process-on-spawn/-/process-on-spawn-1.0.0.tgz#95b05a23073d30a17acfdc92a440efd2baefdc93" integrity sha512-1WsPDsUSMmZH5LeMLegqkPDrsGgsWwk1Exipy2hvB0o/F0ASzbpIctSCcZIK1ykJvtTJULEH+20WOFjMvGnCTg== dependencies: fromentries "^1.2.0" @@ -6903,22 +6966,22 @@ process@^0.11.10: promise-all-reject-late@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2" + resolved "https://registry.yarnpkg.com/promise-all-reject-late/-/promise-all-reject-late-1.0.1.tgz#f8ebf13483e5ca91ad809ccc2fcf25f26f8643c2" integrity sha512-vuf0Lf0lOxyQREH7GDIOUMLS7kz+gs8i6B+Yi8dC68a2sychGrHTJYghMBD6k7eUcH0H5P73EckCA48xijWqXw== promise-call-limit@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/promise-call-limit/-/promise-call-limit-1.0.1.tgz#4bdee03aeb85674385ca934da7114e9bcd3c6e24" - integrity sha512-3+hgaa19jzCGLuSCbieeRsu5C2joKfYn8pY6JAuXFRVfF4IO+L7UPpFWNTeWT9pM7uhskvbPPd/oEOktCn317Q== + version "1.0.2" + resolved "https://registry.yarnpkg.com/promise-call-limit/-/promise-call-limit-1.0.2.tgz#f64b8dd9ef7693c9c7613e7dfe8d6d24de3031ea" + integrity sha512-1vTUnfI2hzui8AEIixbdAJlFY4LFDXqQswy/2eOlThAscXCY4It8FdVuI0fMJGAB2aWGbdQf/gv0skKYXmdrHA== promise-inflight@^1.0.1: version "1.0.1" - resolved "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" integrity sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g== promise-retry@^2.0.1: version "2.0.1" - resolved "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" + resolved "https://registry.yarnpkg.com/promise-retry/-/promise-retry-2.0.1.tgz#ff747a13620ab57ba688f5fc67855410c370da22" integrity sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g== dependencies: err-code "^2.0.2" @@ -6949,7 +7012,7 @@ proxy-agent@^6.3.1: proxy-from-env@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== psl@^1.1.33: @@ -6967,7 +7030,7 @@ pump@^3.0.0: punycode@1.3.2: version "1.3.2" - resolved "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" integrity sha512-RofWgt/7fL5wP1Y7fxE7/EmTLzQVnB0ycyibJ0OOHIlJqTNzglYFxVwETOcIoJqJmpDXJ9xImDv+Fq34F/d4Dw== punycode@^2.1.0, punycode@^2.1.1: @@ -6975,14 +7038,9 @@ punycode@^2.1.0, punycode@^2.1.1: resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== -q@^1.5.1: - version "1.5.1" - resolved "https://registry.npmjs.org/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha512-kV/CThkXo6xyFEZUugw/+pIOywXcDbFYgSct5cT3gqlbkBE1SJdwy6UQoZvodiWF/ckQLZyDE/Bu1M6gVu5lVw== - querystring@0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" integrity sha512-X/xY82scca2tau62i9mDyU9K+I+djTMUsvwf7xnUX5GLvVzgJybOJf4Y6o9Zx3oJK/LSXg5tTZBjwzqVPaPO2g== querystringify@^2.1.1: @@ -7002,29 +7060,29 @@ quick-format-unescaped@^4.0.3: quick-lru@^4.0.1: version "4.0.1" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-4.0.1.tgz#5b8878f113a58217848c6482026c73e1ba57727f" integrity sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g== quick-lru@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" + resolved "https://registry.yarnpkg.com/quick-lru/-/quick-lru-5.1.1.tgz#366493e6b3e42a3a6885e2e99d18f80fb7a8c932" integrity sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA== randombytes@^2.1.0: version "2.1.0" - resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== dependencies: safe-buffer "^5.1.0" read-cmd-shim@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz#868c235ec59d1de2db69e11aec885bc095aea087" + resolved "https://registry.yarnpkg.com/read-cmd-shim/-/read-cmd-shim-3.0.1.tgz#868c235ec59d1de2db69e11aec885bc095aea087" integrity sha512-kEmDUoYf/CDy8yZbLTmhB1X9kkjf9Q80PCNsDMb7ufrGd6zZSQA1+UyjrO+pZm5K/S4OXCWJeiIt1JA8kAsa6g== 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.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" + resolved "https://registry.yarnpkg.com/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz#323ca529630da82cb34b36cc0b996693c98c2b83" integrity sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ== dependencies: json-parse-even-better-errors "^2.3.0" @@ -7039,9 +7097,9 @@ read-package-json-fast@^3.0.0: npm-normalize-package-bin "^3.0.0" read-package-json@^6.0.0: - version "6.0.3" - resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-6.0.3.tgz#726116b75e00eac2075240995f05681af4ca7122" - integrity sha512-4QbpReW4kxFgeBQ0vPAqh2y8sXEB3D4t3jsXbJKIhBiF80KT6XRo45reqwtftju5J6ru1ax06A2Gb/wM1qCOEQ== + version "6.0.4" + resolved "https://registry.yarnpkg.com/read-package-json/-/read-package-json-6.0.4.tgz#90318824ec456c287437ea79595f4c2854708836" + integrity sha512-AEtWXYfopBj2z5N5PbkAOeNHRPUg5q+Nen7QLxV8M2zJq1ym6/lCz3fYNTCXe19puu2d06jfHhrP7v/S2PtMMw== dependencies: glob "^10.2.2" json-parse-even-better-errors "^3.0.0" @@ -7050,7 +7108,7 @@ read-package-json@^6.0.0: read-pkg-up@^7.0.1: version "7.0.1" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-7.0.1.tgz#f3a6135758459733ae2b95638056e1854e7ef507" integrity sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg== dependencies: find-up "^4.1.0" @@ -7059,7 +7117,7 @@ read-pkg-up@^7.0.1: read-pkg@^5.2.0: version "5.2.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-5.2.0.tgz#7bf295438ca5a33e56cd30e053b34ee7250c93cc" integrity sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg== dependencies: "@types/normalize-package-data" "^2.4.0" @@ -7109,7 +7167,7 @@ readdir-glob@^1.1.2: readdir-scoped-modules@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" + resolved "https://registry.yarnpkg.com/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz#8d45407b4f870a0dcaebc0e28670d18e74514309" integrity sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw== dependencies: debuglog "^1.0.1" @@ -7119,7 +7177,7 @@ readdir-scoped-modules@^1.1.0: readdirp@~3.6.0: version "3.6.0" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== dependencies: picomatch "^2.2.1" @@ -7138,7 +7196,7 @@ rechoir@^0.6.2: redent@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" + resolved "https://registry.yarnpkg.com/redent/-/redent-3.0.0.tgz#e557b7998316bb53c9f1f56fa626352c6963059f" integrity sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg== dependencies: indent-string "^4.0.0" @@ -7184,24 +7242,24 @@ regjsparser@^0.10.0: release-zalgo@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" + resolved "https://registry.yarnpkg.com/release-zalgo/-/release-zalgo-1.0.0.tgz#09700b7e5074329739330e535c5a90fb67851730" integrity sha512-gUAyHVHPPC5wdqX/LG4LWtRYtgjxyX78oanFNTMMyFEfOqdC54s3eE82imuWKbOeqYht2CrNf64Qb8vgmmtZGA== dependencies: es6-error "^4.0.1" remove-trailing-separator@^1.0.1: version "1.1.0" - resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== replace-ext@^1.0.0: version "1.0.1" - resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.1.tgz#2d6d996d04a15855d967443631dd5f77825b016a" integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== require-directory@^2.1.1: version "2.1.1" - resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== require-from-string@^2.0.2: @@ -7211,7 +7269,7 @@ require-from-string@^2.0.2: require-main-filename@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== requires-port@^1.0.0: @@ -7219,24 +7277,24 @@ requires-port@^1.0.0: resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" integrity sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ== -resolve-alpn@^1.0.0: +resolve-alpn@^1.0.0, resolve-alpn@^1.2.0: version "1.2.1" - resolved "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" + resolved "https://registry.yarnpkg.com/resolve-alpn/-/resolve-alpn-1.2.1.tgz#b7adbdac3546aaaec20b45e7d8265927072726f9" integrity sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g== resolve-from@5.0.0, resolve-from@^5.0.0: version "5.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== resolve-from@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== resolve-global@1.0.0, resolve-global@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" + resolved "https://registry.yarnpkg.com/resolve-global/-/resolve-global-1.0.0.tgz#a2a79df4af2ca3f49bf77ef9ddacd322dad19255" integrity sha512-zFa12V4OLtT5XUX/Q4VLvTfBf+Ok0SPc1FNGM/z9ctUdiU618qwKpWnd0CHs3+RqROfyEg/DhuHbMWYqcgljEw== dependencies: global-dirs "^0.1.1" @@ -7252,11 +7310,18 @@ resolve@^1.1.6, resolve@^1.10.0, resolve@^1.22.4: responselike@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" integrity sha512-4gl03wn3hj1HP3yzgdI7d3lCkF95F21Pz4BPGvKHinyQzALR5CapwC8yIi0Rh58DEMQ/SguC03wFj2k0M/mHhw== dependencies: lowercase-keys "^2.0.0" +responselike@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-3.0.0.tgz#20decb6c298aff0dbee1c355ca95461d42823626" + integrity sha512-40yHxbNcl2+rzXvZuVkrYohathsSJlMTXKryG5y8uciHv1+xDLHQpgjG64JUO9nrEq2jGLH6IZ8BcZyw3wrweg== + dependencies: + lowercase-keys "^3.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" @@ -7282,7 +7347,7 @@ reusify@^1.0.4: rimraf@^3.0.0, rimraf@^3.0.2: version "3.0.2" - resolved "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== dependencies: glob "^7.1.3" @@ -7306,7 +7371,7 @@ rxjs@^6.6.0: dependencies: tslib "^1.9.0" -rxjs@^7.0.0, rxjs@^7.2.0, rxjs@^7.5.5: +rxjs@^7.2.0, rxjs@^7.5.5: version "7.8.1" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== @@ -7335,7 +7400,7 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: safe-regex-test@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" + resolved "https://registry.yarnpkg.com/safe-regex-test/-/safe-regex-test-1.0.0.tgz#793b874d524eb3640d1873aad03596db2d4f2295" integrity sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA== dependencies: call-bind "^1.0.2" @@ -7354,12 +7419,12 @@ safe-stable-stringify@^2.3.1, safe-stable-stringify@^2.4.3: samsam@1.3.0: version "1.3.0" - resolved "https://registry.npmjs.org/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" + resolved "https://registry.yarnpkg.com/samsam/-/samsam-1.3.0.tgz#8d1d9350e25622da30de3e44ba692b5221ab7c50" integrity sha512-1HwIYD/8UlOtFS3QO3w7ey+SdSDFE4HRNLZoZRYVQefrOY3l17epswImeB1ijgJFQJodIaHcwkp3r/myBjFVbg== sax@1.2.1: version "1.2.1" - resolved "https://registry.npmjs.org/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.1.tgz#7b8e656190b228e81a66aea748480d828cd2d37a" integrity sha512-8I2a3LovHTOpm7NV5yOyO8IHqgVsfK4+UuySrXU8YXkSRX7k6hCV9b3HrkKCr3nMpgj+0bmocaJJWpvp1oc7ZA== sax@>=0.6.0: @@ -7369,7 +7434,7 @@ sax@>=0.6.0: scoped-regex@^2.0.0: version "2.1.0" - resolved "https://registry.npmjs.org/scoped-regex/-/scoped-regex-2.1.0.tgz#7b9be845d81fd9d21d1ec97c61a0b7cf86d2015f" + resolved "https://registry.yarnpkg.com/scoped-regex/-/scoped-regex-2.1.0.tgz#7b9be845d81fd9d21d1ec97c61a0b7cf86d2015f" integrity sha512-g3WxHrqSWCZHGHlSrF51VXFdjImhwvH8ZO/pryFH56Qi0cDsZfylQa/t0jCzVQFNbNvM00HfHjkDPEuarKDSWQ== secure-json-parse@^2.4.0: @@ -7377,15 +7442,15 @@ secure-json-parse@^2.4.0: resolved "https://registry.yarnpkg.com/secure-json-parse/-/secure-json-parse-2.7.0.tgz#5a5f9cd6ae47df23dba3151edd06855d47e09862" integrity sha512-6aU+Rwsezw7VR8/nyvKTx8QpWH9FrcYiXXlqC4z5d5XQBDRqtbfsRjnwGyqbi3gddNtWHuEk9OANUotL26qKUw== -"semver@2 || 3 || 4 || 5", semver@^5.5.0: +"semver@2 || 3 || 4 || 5": version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@7.3.8: - version "7.3.8" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.8.tgz#07a78feafb3f7b32347d725e33de7e2a2df67798" - integrity sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A== +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" + integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== dependencies: lru-cache "^6.0.0" @@ -7394,13 +7459,6 @@ semver@^6.0.0, semver@^6.3.0, semver@^6.3.1: resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== -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" - integrity sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA== - dependencies: - lru-cache "^6.0.0" - sentence-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/sentence-case/-/sentence-case-3.0.4.tgz#3645a7b8c117c787fde8702056225bb62a45131f" @@ -7417,16 +7475,26 @@ sequin@*: serialize-javascript@6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== dependencies: randombytes "^2.1.0" set-blocking@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== +set-function-length@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/set-function-length/-/set-function-length-1.1.1.tgz#4bc39fafb0307224a33e106a7d35ca1218d659ed" + integrity sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ== + dependencies: + define-data-property "^1.1.1" + get-intrinsic "^1.2.1" + gopd "^1.0.1" + has-property-descriptors "^1.0.0" + 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" @@ -7449,35 +7517,18 @@ sha.js@^2.4.9: inherits "^2.0.1" safe-buffer "^5.0.1" -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== - dependencies: - shebang-regex "^1.0.0" - shebang-command@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== dependencies: shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== - shebang-regex@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== -shell-quote@^1.7.3: - version "1.7.4" - resolved "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz#33fe15dee71ab2a81fcbd3a52106c5cfb9fb75d8" - integrity sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw== - shelljs@^0.8.4, shelljs@^0.8.5: version "0.8.5" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" @@ -7507,7 +7558,7 @@ shx@0.3.4: side-channel@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== dependencies: call-bind "^1.0.0" @@ -7520,18 +7571,20 @@ signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3, signal-exit@^3.0.7: integrity sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ== signal-exit@^4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.0.2.tgz#ff55bb1d9ff2114c13b400688fa544ac63c36967" - integrity sha512-MY2/qGx4enyjprQnFaZsHib3Yadh3IXyV2C321GY0pjGfVBu4un0uDJkwgdxqO+Rdx8JMT8IfJIRwbYVz3Ob3Q== + version "4.1.0" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" + integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== sigstore@^1.3.0: - version "1.5.2" - resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-1.5.2.tgz#8d4c2a549341211cb08c687999843edc48c1a94c" - integrity sha512-X95v6xAAooVpn7PaB94TDmFeSO5SBfCtB1R23fvzr36WTfjtkiiyOeei979nbTjc8nzh6FSLeltQZuODsm1EjQ== + version "1.9.0" + resolved "https://registry.yarnpkg.com/sigstore/-/sigstore-1.9.0.tgz#1e7ad8933aa99b75c6898ddd0eeebc3eb0d59875" + integrity sha512-0Zjz0oe37d08VeOtBIuB6cRriqXse2e8w+7yIy2XSXjshRKxbc2KkhXjL229jXSxEm7UbcjS76wcJDGQddVI9A== dependencies: - "@sigstore/protobuf-specs" "^0.1.0" + "@sigstore/bundle" "^1.1.0" + "@sigstore/protobuf-specs" "^0.2.0" + "@sigstore/sign" "^1.0.0" + "@sigstore/tuf" "^1.0.3" make-fetch-happen "^11.0.1" - tuf-js "^1.1.3" simple-concat@^1.0.0: version "1.0.1" @@ -7549,7 +7602,7 @@ simple-get@^4.0.1: sinon@10.0.0: version "10.0.0" - resolved "https://registry.npmjs.org/sinon/-/sinon-10.0.0.tgz#52279f97e35646ff73d23207d0307977c9b81430" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-10.0.0.tgz#52279f97e35646ff73d23207d0307977c9b81430" integrity sha512-XAn5DxtGVJBlBWYrcYKEhWCz7FLwZGdyvANRyK06419hyEpdT0dMc5A8Vcxg5SCGHc40CsqoKsc1bt1CbJPfNw== dependencies: "@sinonjs/commons" "^1.8.1" @@ -7573,7 +7626,7 @@ sinon@^10.0.0: sinon@^5.1.1: version "5.1.1" - resolved "https://registry.npmjs.org/sinon/-/sinon-5.1.1.tgz#19c59810ffb733ea6e76a28b94a71fc4c2f523b8" + resolved "https://registry.yarnpkg.com/sinon/-/sinon-5.1.1.tgz#19c59810ffb733ea6e76a28b94a71fc4c2f523b8" integrity sha512-h/3uHscbt5pQNxkf7Y/Lb9/OM44YNCicHakcq73ncbrIS8lXg+ZGOZbtuU+/km4YnyiCYfQQEwANaReJz7KDfw== dependencies: "@sinonjs/formatio" "^2.0.0" @@ -7600,7 +7653,7 @@ slice-ansi@^4.0.0: smart-buffer@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" + resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== snake-case@^3.0.4: @@ -7613,7 +7666,7 @@ snake-case@^3.0.4: socks-proxy-agent@^6.0.0: version "6.2.1" - resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz#2687a31f9d7185e38d530bef1944fe1f1496d6ce" integrity sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ== dependencies: agent-base "^6.0.2" @@ -7622,7 +7675,7 @@ socks-proxy-agent@^6.0.0: socks-proxy-agent@^7.0.0: version "7.0.0" - resolved "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" + resolved "https://registry.yarnpkg.com/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz#dc069ecf34436621acb41e3efa66ca1b5fed15b6" integrity sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww== dependencies: agent-base "^6.0.2" @@ -7640,7 +7693,7 @@ socks-proxy-agent@^8.0.2: socks@^2.6.2, socks@^2.7.1: version "2.7.1" - resolved "https://registry.npmjs.org/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" + resolved "https://registry.yarnpkg.com/socks/-/socks-2.7.1.tgz#d8e651247178fde79c0663043e07240196857d55" integrity sha512-7maUZy1N7uo6+WVEX6psASxtNlKaNVMlGQKkG/63nEDdLOWNbiUMoLK7X4uYoLhQstau72mLgfEWcXcwsaHbYQ== dependencies: ip "^2.0.0" @@ -7655,7 +7708,7 @@ sonic-boom@^3.0.0, sonic-boom@^3.7.0: sort-keys@^4.2.0: version "4.2.0" - resolved "https://registry.npmjs.org/sort-keys/-/sort-keys-4.2.0.tgz#6b7638cee42c506fff8c1cecde7376d21315be18" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-4.2.0.tgz#6b7638cee42c506fff8c1cecde7376d21315be18" integrity sha512-aUYIEU/UviqPgc8mHR6IW1EGxkAXpeRETYcrzg8cLAvUPZcpAlleSXHV2mY7G12GphSH6Gzv+4MMVSSkbdteHg== dependencies: is-plain-obj "^2.0.0" @@ -7670,17 +7723,12 @@ source-map-support@^0.5.21: source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== -spawn-command@^0.0.2-1: - version "0.0.2-1" - resolved "https://registry.npmjs.org/spawn-command/-/spawn-command-0.0.2-1.tgz#62f5e9466981c1b796dc5929937e11c9c6921bd0" - integrity sha512-n98l9E2RMSJ9ON1AKisHzz7V42VDiBQGY6PB1BwRglz99wpVsSuGzQ+jOi6lFXBGVTCrRpltvjm+/XA+tpeJrg== - spawn-wrap@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/spawn-wrap/-/spawn-wrap-2.0.0.tgz#103685b8b8f9b79771318827aa78650a610d457e" + resolved "https://registry.yarnpkg.com/spawn-wrap/-/spawn-wrap-2.0.0.tgz#103685b8b8f9b79771318827aa78650a610d457e" integrity sha512-EeajNjfN9zMnULLwhZZQU3GWBoFNkbngTUPfaawT4RkMiviTxcX0qfhVbGey39mfctfDHkWtuecgQ8NJcyQWHg== dependencies: foreground-child "^2.0.0" @@ -7691,34 +7739,34 @@ spawn-wrap@^2.0.0: which "^2.0.1" spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== + version "3.2.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.2.0.tgz#4f5ab0668f0059e34f9c00dce331784a12de4e9c" + integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== dependencies: spdx-expression-parse "^3.0.0" spdx-license-ids "^3.0.0" spdx-exceptions@^2.1.0: version "2.3.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" 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.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== dependencies: spdx-exceptions "^2.1.0" spdx-license-ids "^3.0.0" spdx-license-ids@^3.0.0: - version "3.0.12" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz#69077835abe2710b65f03969898b6637b505a779" - integrity sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA== + version "3.0.16" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.16.tgz#a14f64e0954f6e25cc6587bd4f392522db0d998f" + integrity sha512-eWN+LnM3GR6gPu35WxNgbGl8rmY1AEmoMDvL/QD6zYmPWgywxWqJWNdLGT+ke8dKNWrcYgYjPpG5gbTfghP8rw== -split2@^3.0.0: +split2@^3.0.0, split2@^3.2.2: version "3.2.2" - resolved "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" + resolved "https://registry.yarnpkg.com/split2/-/split2-3.2.2.tgz#bf2cf2a37d838312c249c89206fd7a17dd12365f" integrity sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg== dependencies: readable-stream "^3.0.0" @@ -7734,22 +7782,22 @@ sprintf-js@~1.0.2: integrity sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g== ssri@^10.0.0: - version "10.0.4" - resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.4.tgz#5a20af378be586df139ddb2dfb3bf992cf0daba6" - integrity sha512-12+IR2CB2C28MMAw0Ncqwj5QbTcs0nGIhgJzYWzDkb21vWmfNI83KS4f3Ci6GI98WreIfG7o9UXp3C0qbpA8nQ== + version "10.0.5" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-10.0.5.tgz#e49efcd6e36385196cb515d3a2ad6c3f0265ef8c" + integrity sha512-bSf16tAFkGeRlUNDjXu8FzaMQt6g2HZJrun7mtMbIPOddxt3GLMSz5VWUWcqTJUPfLEaDIepGxv+bYQW49596A== dependencies: - minipass "^5.0.0" + minipass "^7.0.3" ssri@^8.0.0, ssri@^8.0.1: version "8.0.1" - resolved "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-8.0.1.tgz#638e4e439e2ffbd2cd289776d5ca457c4f51a2af" integrity sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ== dependencies: minipass "^3.1.1" ssri@^9.0.0: version "9.0.1" - resolved "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-9.0.1.tgz#544d4c357a8d7b71a19700074b6883fcb4eae057" integrity sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q== dependencies: minipass "^3.1.1" @@ -7829,14 +7877,14 @@ strip-ansi@^7.0.1: strip-bom-buf@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz#1cb45aaf57530f4caf86c7f75179d2c9a51dd572" + resolved "https://registry.yarnpkg.com/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz#1cb45aaf57530f4caf86c7f75179d2c9a51dd572" integrity sha512-1sUIL1jck0T1mhOLP2c696BIznzT525Lkub+n4jjMHjhjhoAQA6Ye659DxdlZBr0aLDMQoTxKIpnlqxgtwjsuQ== dependencies: is-utf8 "^0.2.1" strip-bom-stream@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz#f87db5ef2613f6968aa545abfe1ec728b6a829ca" + resolved "https://registry.yarnpkg.com/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz#f87db5ef2613f6968aa545abfe1ec728b6a829ca" integrity sha512-yH0+mD8oahBZWnY43vxs4pSinn8SMKAdml/EOGBewoe1Y0Eitd0h2Mg3ZRiXruUW6L4P+lvZiEgbh0NgUGia1w== dependencies: first-chunk-stream "^2.0.0" @@ -7844,29 +7892,29 @@ strip-bom-stream@^2.0.0: strip-bom@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== dependencies: is-utf8 "^0.2.0" strip-bom@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== strip-bom@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== strip-final-newline@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== strip-indent@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-3.0.0.tgz#c32e1cee940b6b3432c771bc2c54bcce73cd3001" integrity sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ== dependencies: min-indent "^1.0.0" @@ -7881,7 +7929,7 @@ strnum@^1.0.5: resolved "https://registry.yarnpkg.com/strnum/-/strnum-1.0.5.tgz#5c4e829fe15ad4ff0d20c3db5ac97b73c9b072db" integrity sha512-J8bbNyKKXl5qYcR36TIO8W3mVGVHrmmxsd5PAItGkmyzwJvybiw2IVq5nqd0i4LSNSkB/sx9VHllbfFdr9k1JA== -supports-color@8.1.1, supports-color@^8.1.0, supports-color@^8.1.1: +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" integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== @@ -7890,7 +7938,7 @@ supports-color@8.1.1, supports-color@^8.1.0, supports-color@^8.1.1: supports-color@^5.3.0, supports-color@^5.4.0: version "5.5.0" - resolved "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== dependencies: has-flag "^3.0.0" @@ -7927,20 +7975,20 @@ tar-stream@^2.2.0: readable-stream "^3.1.1" tar@^6.0.2, tar@^6.1.0, tar@^6.1.11, tar@^6.1.2: - version "6.1.13" - resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b" - integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw== + version "6.2.0" + resolved "https://registry.yarnpkg.com/tar/-/tar-6.2.0.tgz#b14ce49a79cb1cd23bc9b016302dea5474493f73" + integrity sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ== dependencies: chownr "^2.0.0" fs-minipass "^2.0.0" - minipass "^4.0.0" + minipass "^5.0.0" minizlib "^2.1.1" mkdirp "^1.0.3" yallist "^4.0.0" test-exclude@^6.0.0: version "6.0.0" - resolved "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" + resolved "https://registry.yarnpkg.com/test-exclude/-/test-exclude-6.0.0.tgz#04a8698661d805ea6fa293b6cb9e63ac044ef15e" integrity sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w== dependencies: "@istanbuljs/schema" "^0.1.2" @@ -7949,18 +7997,18 @@ test-exclude@^6.0.0: text-extensions@^1.0.0: version "1.9.0" - resolved "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" + resolved "https://registry.yarnpkg.com/text-extensions/-/text-extensions-1.9.0.tgz#1853e45fee39c945ce6f6c36b2d659b5aabc2a26" integrity sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ== text-table@^0.2.0: version "0.2.0" - resolved "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" integrity sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw== textextensions@^5.12.0, textextensions@^5.13.0: - version "5.15.0" - resolved "https://registry.npmjs.org/textextensions/-/textextensions-5.15.0.tgz#4bb3296ad6fc111cf4b39c589dd028d8aaaf7060" - integrity sha512-MeqZRHLuaGamUXGuVn2ivtU3LA3mLCCIO5kUGoohTCoGmCBg/+8yPhWVX9WSl9telvVd8erftjFk9Fwb2dD6rw== + version "5.16.0" + resolved "https://registry.yarnpkg.com/textextensions/-/textextensions-5.16.0.tgz#57dd60c305019bba321e848b1fdf0f99bfa59ec1" + integrity sha512-7D/r3s6uPZyU//MCYrX6I14nzauDwJ5CxazouuRGNuvSCihW87ufN6VLoROLCrHg6FblLuJrT6N2BVaPVzqElw== thread-stream@^2.0.0: version "2.4.1" @@ -7971,7 +8019,7 @@ thread-stream@^2.0.0: through2@^4.0.0: version "4.0.2" - resolved "https://registry.npmjs.org/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" + resolved "https://registry.yarnpkg.com/through2/-/through2-4.0.2.tgz#a7ce3ac2a7a8b0b966c80e7c49f0484c3b239764" integrity sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw== dependencies: readable-stream "3" @@ -7990,7 +8038,7 @@ tmp@^0.0.33: to-fast-properties@^2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== to-regex-range@^5.0.1: @@ -8015,19 +8063,14 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== -tree-kill@^1.2.2: - version "1.2.2" - resolved "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz#4ca09a9092c88b73a7cdc5e8a01b507b0790a0cc" - integrity sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A== - treeverse@^1.0.4: version "1.0.4" - resolved "https://registry.npmjs.org/treeverse/-/treeverse-1.0.4.tgz#a6b0ebf98a1bca6846ddc7ecbc900df08cb9cd5f" + resolved "https://registry.yarnpkg.com/treeverse/-/treeverse-1.0.4.tgz#a6b0ebf98a1bca6846ddc7ecbc900df08cb9cd5f" integrity sha512-whw60l7r+8ZU8Tu/Uc2yxtc4ZTZbR/PF3u1IPNKGQ6p8EICLb3Z2lAgoqw9bqYd8IkgnsaOcLzYHFckjqNsf0g== trim-newlines@^3.0.0: version "3.0.1" - resolved "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== ts-api-utils@^1.0.1: @@ -8092,26 +8135,26 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00" integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg== -tslib@^2, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.1, tslib@^2.5.0, tslib@^2.6.1, tslib@^2.6.2: +tslib@^2, tslib@^2.0.1, tslib@^2.0.3, tslib@^2.1.0, tslib@^2.5.0, tslib@^2.6.1, tslib@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae" integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q== tsutils@^3.21.0: version "3.21.0" - resolved "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" integrity sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA== dependencies: tslib "^1.8.1" -tuf-js@^1.1.3: - version "1.1.6" - resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-1.1.6.tgz#ad3e7a20237b83b51c2a8f9d1ddf093279a10fc2" - integrity sha512-CXwFVIsXGbVY4vFiWF7TJKWmlKJAT8TWkH4RmiohJRcDJInix++F0dznDmoVbtJNzZ8yLprKUG4YrDIhv3nBMg== +tuf-js@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/tuf-js/-/tuf-js-1.1.7.tgz#21b7ae92a9373015be77dfe0cb282a80ec3bbe43" + integrity sha512-i3P9Kgw3ytjELUfpuKVDNBJvk4u5bXL6gskv572mcevPbSKCV3zt3djhmlEQ65yERjIbOSncy7U4cQJaB1CBCg== dependencies: "@tufjs/models" "1.0.4" debug "^4.3.4" - make-fetch-happen "^11.1.0" + make-fetch-happen "^11.1.1" tunnel-agent@*, tunnel-agent@^0.6.0: version "0.6.0" @@ -8122,24 +8165,24 @@ tunnel-agent@*, tunnel-agent@^0.6.0: type-check@^0.4.0, type-check@~0.4.0: version "0.4.0" - resolved "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz#07b8203bfa7056c0657050e3ccd2c37730bab8f1" 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.npmjs.org/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== type-fest@^0.18.0: version "0.18.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f" integrity sha512-OIAYXk8+ISY+qTOwkHtKqzAuxchoMiD9Udx+FSGQDuiRR+PJKJHc2NJAXlbhkGwTt/4/nKZxELY1w3ReWOL8mw== type-fest@^0.20.2: version "0.20.2" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.20.2.tgz#1bf207f4b28f91583666cb5fbd327887301cd5f4" integrity sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ== type-fest@^0.21.3: @@ -8149,12 +8192,12 @@ type-fest@^0.21.3: type-fest@^0.6.0: version "0.6.0" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.6.0.tgz#8d2a2370d3df886eb5c90ada1c5bf6188acf838b" integrity sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg== type-fest@^0.8.0, type-fest@^0.8.1: version "0.8.1" - resolved "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== typed-array-buffer@^1.0.0: @@ -8198,14 +8241,14 @@ typed-array-length@^1.0.4: typedarray-to-buffer@^3.1.5: version "3.1.5" - resolved "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== dependencies: is-typedarray "^1.0.0" typedoc-plugin-missing-exports@0.23.0: version "0.23.0" - resolved "https://registry.npmjs.org/typedoc-plugin-missing-exports/-/typedoc-plugin-missing-exports-0.23.0.tgz#076df6ffce4d84e8097be009b7c62a17d58477a5" + resolved "https://registry.yarnpkg.com/typedoc-plugin-missing-exports/-/typedoc-plugin-missing-exports-0.23.0.tgz#076df6ffce4d84e8097be009b7c62a17d58477a5" integrity sha512-9smahDSsFRno9ZwoEshQDuIYMHWGB1E6LUud5qMxR2wNZ0T4DlZz0QjoK3HzXtX34mUpTH0dYtt7NQUK4D6B6Q== typedoc@^0.25.3: @@ -8218,24 +8261,24 @@ typedoc@^0.25.3: minimatch "^9.0.3" shiki "^0.14.1" -typescript@^4.6.4, typescript@^4.9.5: - version "4.9.5" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" - integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== - -typescript@~5.2.2: +"typescript@^4.6.4 || ^5.2.2", typescript@^5.2.2, typescript@~5.2.2: version "5.2.2" resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== +typescript@^4.9.5: + version "4.9.5" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.9.5.tgz#095979f9bcc0d09da324d58d03ce8f8374cbe65a" + integrity sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g== + uglify-js@^3.1.4: version "3.17.4" - resolved "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.17.4.tgz#61678cf5fa3f5b7eb789bb345df29afb8257c22c" integrity sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g== unbox-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" + resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e" integrity sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw== dependencies: call-bind "^1.0.2" @@ -8250,14 +8293,14 @@ undici-types@~5.26.4: unique-filename@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== dependencies: unique-slug "^2.0.0" unique-filename@^2.0.0: version "2.0.1" - resolved "https://registry.npmjs.org/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-2.0.1.tgz#e785f8675a9a7589e0ac77e0b5c34d2eaeac6da2" integrity sha512-ODWHtkkdx3IAR+veKxFV+VBkUMcN+FaqzUUd7IZzt+0zhDZFPFxhlqwPF3YQvMHx1TD0tdgYl+kuPnJ8E6ql7A== dependencies: unique-slug "^3.0.0" @@ -8271,14 +8314,14 @@ unique-filename@^3.0.0: unique-slug@^2.0.0: version "2.0.2" - resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== dependencies: imurmurhash "^0.1.4" unique-slug@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-3.0.0.tgz#6d347cf57c8a7a7a6044aabd0e2d74e4d76dc7c9" integrity sha512-8EyMynh679x/0gqE9fT9oilG+qEt+ibFyqjuVTsZn1+CMxH+XLlpvr2UZx4nVcCwTpx81nICr2JQFkM+HPLq4w== dependencies: imurmurhash "^0.1.4" @@ -8291,9 +8334,9 @@ unique-slug@^4.0.0: imurmurhash "^0.1.4" universal-user-agent@^6.0.0: - version "6.0.0" - resolved "https://registry.npmjs.org/universal-user-agent/-/universal-user-agent-6.0.0.tgz#3381f8503b251c0d9cd21bc1de939ec9df5480ee" - integrity sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w== + version "6.0.1" + resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-6.0.1.tgz#15f20f55da3c930c57bddbf1734c6654d5fd35aa" + integrity sha512-yCzhz6FN2wU1NiiQRogkTQszlQSlpWaw8SvVegAc+bDxbzHgh1vX8uIe8OYyMH6DwH+sdTJsgMl36+mSMdRJIQ== universalify@^0.1.0: version "0.1.2" @@ -8306,19 +8349,19 @@ universalify@^0.2.0: integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== + version "2.0.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.1.tgz#168efc2180964e6386d061e094df61afe239b18d" + integrity sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw== untildify@^4.0.0: version "4.0.0" - resolved "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== -update-browserslist-db@^1.0.9: - version "1.0.10" - resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz#0f54b876545726f17d00cd9a2561e6dade943ff3" - integrity sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ== +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== dependencies: escalade "^3.1.1" picocolors "^1.0.0" @@ -8354,7 +8397,7 @@ url-parse@^1.5.3: url@0.10.3: version "0.10.3" - resolved "https://registry.npmjs.org/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" + resolved "https://registry.yarnpkg.com/url/-/url-0.10.3.tgz#021e4d9c7705f21bbf37d03ceb58767402774c64" integrity sha512-hzSUW2q06EqL1gKM/a+obYHLIO6ct2hwPuviqTTOcfFVc61UbfJ2Q32+uGL/HCPxKqrdGB5QUwIe7UqlDgwsOQ== dependencies: punycode "1.3.2" @@ -8367,7 +8410,7 @@ util-deprecate@^1.0.1, util-deprecate@~1.0.1: util@^0.12.4: version "0.12.5" - resolved "https://registry.npmjs.org/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" + resolved "https://registry.yarnpkg.com/util/-/util-0.12.5.tgz#5f17a6059b73db61a875668781a1c2b136bd6fbc" integrity sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA== dependencies: inherits "^2.0.3" @@ -8378,12 +8421,12 @@ util@^0.12.4: uuid@8.0.0: version "8.0.0" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.0.0.tgz#bc6ccf91b5ff0ac07bbcdbf1c7c4e150db4dbb6c" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.0.0.tgz#bc6ccf91b5ff0ac07bbcdbf1c7c4e150db4dbb6c" integrity sha512-jOXGuXZAWdsTH7eZLtyXMqUb9EcWMGZNbL9YcGBJl4MH4nrxHmZJhEHvyLFrkxo+28uLb/NYRcStH48fnD0Vzw== uuid@^8.3.2: version "8.3.2" - resolved "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== v8-compile-cache-lib@^3.0.1: @@ -8393,7 +8436,7 @@ v8-compile-cache-lib@^3.0.1: validate-npm-package-license@^3.0.1, validate-npm-package-license@^3.0.4: version "3.0.4" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== dependencies: spdx-correct "^3.0.0" @@ -8401,7 +8444,7 @@ 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.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" + resolved "https://registry.yarnpkg.com/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz#5fa912d81eb7d0c74afc140de7317f0ca7df437e" integrity sha512-M6w37eVCMMouJ9V/sdPGnC5H4uDr73/+xdq0FBLO3TFFX1+7wiUY6Es328NN+y43tmY+doUdN9g9J21vqB7iLw== dependencies: builtins "^1.0.3" @@ -8415,7 +8458,7 @@ validate-npm-package-name@^5.0.0: vinyl-file@^3.0.0: version "3.0.0" - resolved "https://registry.npmjs.org/vinyl-file/-/vinyl-file-3.0.0.tgz#b104d9e4409ffa325faadd520642d0a3b488b365" + resolved "https://registry.yarnpkg.com/vinyl-file/-/vinyl-file-3.0.0.tgz#b104d9e4409ffa325faadd520642d0a3b488b365" integrity sha512-BoJDj+ca3D9xOuPEM6RWVtWQtvEPQiQYn82LvdxhLWplfQsBzBqtgK0yhCP0s1BNTi6dH9BO+dzybvyQIacifg== dependencies: graceful-fs "^4.1.2" @@ -8426,7 +8469,7 @@ vinyl-file@^3.0.0: vinyl@^2.0.1: version "2.2.1" - resolved "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" + resolved "https://registry.yarnpkg.com/vinyl/-/vinyl-2.2.1.tgz#23cfb8bbab5ece3803aa2c0a1eb28af7cbba1974" integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== dependencies: clone "^2.1.1" @@ -8448,7 +8491,7 @@ vscode-textmate@^8.0.0: walk-up-path@^1.0.0: version "1.0.0" - resolved "https://registry.npmjs.org/walk-up-path/-/walk-up-path-1.0.0.tgz#d4745e893dd5fd0dbb58dd0a4c6a33d9c9fec53e" + resolved "https://registry.yarnpkg.com/walk-up-path/-/walk-up-path-1.0.0.tgz#d4745e893dd5fd0dbb58dd0a4c6a33d9c9fec53e" integrity sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg== wcwidth@^1.0.1: @@ -8487,7 +8530,7 @@ whatwg-url@^5.0.0: which-boxed-primitive@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" + resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== dependencies: is-bigint "^1.0.1" @@ -8497,39 +8540,32 @@ which-boxed-primitive@^1.0.2: is-symbol "^1.0.3" which-module@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" - integrity sha512-B+enWhmw6cjfVC7kS8Pj9pCrKSc5txArRyaYGe088shv/FGWH+0Rjx/xPgtsWfsUtS27FkP697E4DDhgrgoc0Q== + version "2.0.1" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" + integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== which-pm@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/which-pm/-/which-pm-2.0.0.tgz#8245609ecfe64bf751d0eef2f376d83bf1ddb7ae" + resolved "https://registry.yarnpkg.com/which-pm/-/which-pm-2.0.0.tgz#8245609ecfe64bf751d0eef2f376d83bf1ddb7ae" integrity sha512-Lhs9Pmyph0p5n5Z3mVnN0yWcbQYUAD7rbQUiMsQxOJ3T57k7RFe35SUwWMf7dsbDZks1uOmw4AecB/JMDj3v/w== dependencies: load-yaml-file "^0.2.0" path-exists "^4.0.0" -which-typed-array@^1.1.11, which-typed-array@^1.1.2: - version "1.1.11" - resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.11.tgz#99d691f23c72aab6768680805a271b69761ed61a" - integrity sha512-qe9UWWpkeG5yzZ0tNYxDmd7vo58HDBc39mZ0xWWpolAGADdFOzkfamWLDxkOWcvHQKVmdTyQdLD4NOfjLWTKew== +which-typed-array@^1.1.11, which-typed-array@^1.1.13, which-typed-array@^1.1.2: + version "1.1.13" + resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" + integrity sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow== dependencies: available-typed-arrays "^1.0.5" - call-bind "^1.0.2" + call-bind "^1.0.4" for-each "^0.3.3" gopd "^1.0.1" has-tostringtag "^1.0.0" -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - which@^2.0.1, which@^2.0.2: version "2.0.2" - resolved "https://registry.npmjs.org/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== dependencies: isexe "^2.0.0" @@ -8543,7 +8579,7 @@ which@^3.0.0: wide-align@^1.1.2, wide-align@^1.1.5: version "1.1.5" - resolved "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.5.tgz#df1d4c206854369ecf3c9a4898f1b23fbd9d15d3" integrity sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg== dependencies: string-width "^1.0.2 || 2 || 3 || 4" @@ -8585,9 +8621,9 @@ workerpool@6.2.1: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^6.2.0: +wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: version "6.2.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== dependencies: ansi-styles "^4.0.0" @@ -8610,7 +8646,7 @@ wrappy@1: write-file-atomic@^3.0.0: version "3.0.3" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== dependencies: imurmurhash "^0.1.4" @@ -8620,21 +8656,13 @@ write-file-atomic@^3.0.0: write-file-atomic@^4.0.0: version "4.0.2" - resolved "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd" integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg== dependencies: imurmurhash "^0.1.4" signal-exit "^3.0.7" -xml2js@0.4.19: - version "0.4.19" - resolved "https://registry.npmjs.org/xml2js/-/xml2js-0.4.19.tgz#686c20f213209e94abf0d1bcf1efaa291c7827a7" - integrity sha512-esZnJZJOiJR9wWKMyuvSE1y6Dq5LCuJanqhxslH2bxM6duahNZ+HMpCLhBQGZkbX6xRf8x1Y2eJlgt2q3qo49Q== - dependencies: - sax ">=0.6.0" - xmlbuilder "~9.0.1" - -xml2js@^0.5.0: +xml2js@0.5.0, xml2js@^0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/xml2js/-/xml2js-0.5.0.tgz#d9440631fbb2ed800203fad106f2724f62c493b7" integrity sha512-drPFnkQJik/O+uPKpqSgr22mpuFHqKdbS835iAQrUC73L2F5WkboIRd63ai/2Yg6I1jzifPFKH2NTK+cfglkIA== @@ -8647,11 +8675,6 @@ xmlbuilder@~11.0.0: resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-11.0.1.tgz#be9bae1c8a046e76b31127726347d0ad7002beb3" integrity sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA== -xmlbuilder@~9.0.1: - version "9.0.7" - resolved "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz#132ee63d2ec5565c557e20f4c22df9aca686b10d" - integrity sha512-7YXTQc3P2l9+0rjaUbLwMKRhtmwg1M1eDf6nag7urC7pIPYLD9W/jmzQ4ptRSUbodw5S0jfoGTflLemQibSpeQ== - xmlcreate@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/xmlcreate/-/xmlcreate-2.0.4.tgz#0c5ab0f99cdd02a81065fa9cd8f8ae87624889be" @@ -8659,14 +8682,19 @@ xmlcreate@^2.0.4: y18n@^4.0.0: version "4.0.3" - resolved "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== y18n@^5.0.5: version "5.0.8" - resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== +yallist@^3.0.2: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + yallist@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" @@ -8674,17 +8702,17 @@ yallist@^4.0.0: yaml@^1.10.0: version "1.10.2" - resolved "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== yargs-parser@20.2.4: version "20.2.4" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== yargs-parser@^18.1.2: version "18.1.3" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-18.1.3.tgz#be68c4975c6b2abf469236b0c870362fab09a7b0" integrity sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ== dependencies: camelcase "^5.0.0" @@ -8692,17 +8720,17 @@ yargs-parser@^18.1.2: yargs-parser@^20.2.2, yargs-parser@^20.2.3: version "20.2.9" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== yargs-parser@^21.1.1: version "21.1.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== yargs-unparser@2.0.0: version "2.0.0" - resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== dependencies: camelcase "^6.0.0" @@ -8712,7 +8740,7 @@ yargs-unparser@2.0.0: yargs@16.2.0: version "16.2.0" - resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== dependencies: cliui "^7.0.2" @@ -8725,7 +8753,7 @@ yargs@16.2.0: yargs@^15.0.2: version "15.4.1" - resolved "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-15.4.1.tgz#0d87a16de01aee9d8bec2bfbf74f67851730f4f8" integrity sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A== dependencies: cliui "^6.0.0" @@ -8740,10 +8768,10 @@ yargs@^15.0.2: y18n "^4.0.0" yargs-parser "^18.1.2" -yargs@^17.0.0, yargs@^17.3.1: - version "17.6.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz#2e23f2944e976339a1ee00f18c77fedee8332541" - integrity sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw== +yargs@^17.0.0: + version "17.7.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" + integrity sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w== dependencies: cliui "^8.0.1" escalade "^3.1.1" @@ -8797,9 +8825,9 @@ yeoman-environment@^3.15.1: untildify "^4.0.0" yeoman-generator@^5.8.0: - version "5.9.0" - resolved "https://registry.yarnpkg.com/yeoman-generator/-/yeoman-generator-5.9.0.tgz#a83c9e391b0b3442536da677bc204cfa3f81f2c7" - integrity sha512-sN1e01Db4fdd8P/n/yYvizfy77HdbwzvXmPxps9Gwz2D24slegrkSn+qyj+0nmZhtFwGX2i/cH29QDrvAFT9Aw== + version "5.10.0" + resolved "https://registry.yarnpkg.com/yeoman-generator/-/yeoman-generator-5.10.0.tgz#0dde5be9d815b01f77a7e77ee6f9047edcbeca04" + integrity sha512-iDUKykV7L4nDNzeYSedRmSeJ5eMYFucnKDi6KN1WNASXErgPepKqsQw55TgXPHnmpcyOh2Dd/LAZkyc+f0qaAw== dependencies: chalk "^4.1.0" dargs "^7.0.0" @@ -8824,14 +8852,14 @@ yn@3.1.1: yocto-queue@^0.1.0: version "0.1.0" - resolved "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== zip-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.0.tgz#51dd326571544e36aa3f756430b313576dc8fc79" - integrity sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A== + version "4.1.1" + resolved "https://registry.yarnpkg.com/zip-stream/-/zip-stream-4.1.1.tgz#1337fe974dbaffd2fa9a1ba09662a66932bd7135" + integrity sha512-9qv4rlDiopXg4E69k+vMHjNN63YFMe9sZMrdlvKnCjlCRWeCBswPPMPUfx+ipsAWq1LXHe70RcbaHdJJpS6hyQ== dependencies: - archiver-utils "^2.1.0" - compress-commons "^4.1.0" + archiver-utils "^3.0.4" + compress-commons "^4.1.2" readable-stream "^3.6.0"