diff --git a/fixtures/has-yarn2-lock/.gitignore b/fixtures/has-yarn2-lock/.gitignore new file mode 100644 index 00000000000..311bd539ed4 --- /dev/null +++ b/fixtures/has-yarn2-lock/.gitignore @@ -0,0 +1 @@ +!yarn.lock \ No newline at end of file diff --git a/fixtures/has-yarn2-lock/package.json b/fixtures/has-yarn2-lock/package.json new file mode 100644 index 00000000000..2d5c8647583 --- /dev/null +++ b/fixtures/has-yarn2-lock/package.json @@ -0,0 +1,14 @@ +{ + "name": "has-yarn2-lock", + "version": "0.0.0", + "dependencies": { + "minimatch": "^3.0.4", + "rimraf": "2.5.1" + }, + "devDependencies": { + "is-positive": "1.0.0" + }, + "optionalDependencies": { + "is-negative": "1.0.0" + } +} diff --git a/fixtures/has-yarn2-lock/yarn.lock b/fixtures/has-yarn2-lock/yarn.lock new file mode 100644 index 00000000000..4967588c8ae --- /dev/null +++ b/fixtures/has-yarn2-lock/yarn.lock @@ -0,0 +1,131 @@ +# This file is generated by running "yarn install" inside your project. +# Manual changes might be lost - proceed with caution! + +__metadata: + version: 5 + cacheKey: 8 + +"balanced-match@npm:^1.0.0": + version: 1.0.2 + resolution: "balanced-match@npm:1.0.2" + checksum: 9706c088a283058a8a99e0bf91b0a2f75497f185980d9ffa8b304de1d9e58ebda7c72c07ebf01dadedaac5b2907b2c6f566f660d62bd336c3468e960403b9d65 + languageName: node + linkType: hard + +"brace-expansion@npm:^1.1.7": + version: 1.1.11 + resolution: "brace-expansion@npm:1.1.11" + dependencies: + balanced-match: ^1.0.0 + concat-map: 0.0.1 + checksum: faf34a7bb0c3fcf4b59c7808bc5d2a96a40988addf2e7e09dfbb67a2251800e0d14cd2bfc1aa79174f2f5095c54ff27f46fb1289fe2d77dac755b5eb3434cc07 + languageName: node + linkType: hard + +"concat-map@npm:0.0.1": + version: 0.0.1 + resolution: "concat-map@npm:0.0.1" + checksum: 902a9f5d8967a3e2faf138d5cb784b9979bad2e6db5357c5b21c568df4ebe62bcb15108af1b2253744844eb964fc023fbd9afbbbb6ddd0bcc204c6fb5b7bf3af + languageName: node + linkType: hard + +"glob@npm:^6.0.1": + version: 6.0.4 + resolution: "glob@npm:6.0.4" + dependencies: + inflight: ^1.0.4 + inherits: 2 + minimatch: 2 || 3 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: c4946c3d015ac81f704d185f2b3a55eb670100693c2cf7bc833d0efd970ec727d860d4839a5178e46a7e594b34a34661bae2f4c3405727c9fd189f84954ca3c0 + languageName: node + linkType: hard + +"has-yarn2-lock@workspace:.": + version: 0.0.0-use.local + resolution: "has-yarn2-lock@workspace:." + dependencies: + is-negative: 1.0.0 + is-positive: 1.0.0 + minimatch: ^3.0.4 + rimraf: 2.5.1 + dependenciesMeta: + is-negative: + optional: true + languageName: unknown + linkType: soft + +"inflight@npm:^1.0.4": + version: 1.0.6 + resolution: "inflight@npm:1.0.6" + dependencies: + once: ^1.3.0 + wrappy: 1 + checksum: f4f76aa072ce19fae87ce1ef7d221e709afb59d445e05d47fba710e85470923a75de35bfae47da6de1b18afc3ce83d70facf44cfb0aff89f0a3f45c0a0244dfd + languageName: node + linkType: hard + +"inherits@npm:2": + version: 2.0.4 + resolution: "inherits@npm:2.0.4" + checksum: 4a48a733847879d6cf6691860a6b1e3f0f4754176e4d71494c41f3475553768b10f84b5ce1d40fbd0e34e6bfbb864ee35858ad4dd2cf31e02fc4a154b724d7f1 + languageName: node + linkType: hard + +"is-negative@npm:1.0.0": + version: 1.0.0 + resolution: "is-negative@npm:1.0.0" + checksum: f95b7f6544a3588b2f6fe60e7128eb4ce5ba1601b903e3fb5106313f440ef5735fe88d51ae0472f6e5847bdbbac5a719952586f71eb166d38c638b2b445e08d2 + languageName: node + linkType: hard + +"is-positive@npm:1.0.0": + version: 1.0.0 + resolution: "is-positive@npm:1.0.0" + checksum: 66bf242370ca03cc89ef1ac680a806e1716cd564001c019570dc90b0af4f288ad2a4e84f2df8f0f6fca207df20b508c9a1e6f0e4b4bbaeed84103ae84d4f0f44 + languageName: node + linkType: hard + +"minimatch@npm:2 || 3, minimatch@npm:^3.0.4": + version: 3.0.4 + resolution: "minimatch@npm:3.0.4" + dependencies: + brace-expansion: ^1.1.7 + checksum: 66ac295f8a7b59788000ea3749938b0970344c841750abd96694f80269b926ebcafad3deeb3f1da2522978b119e6ae3a5869b63b13a7859a456b3408bd18a078 + languageName: node + linkType: hard + +"once@npm:^1.3.0": + version: 1.4.0 + resolution: "once@npm:1.4.0" + dependencies: + wrappy: 1 + checksum: cd0a88501333edd640d95f0d2700fbde6bff20b3d4d9bdc521bdd31af0656b5706570d6c6afe532045a20bb8dc0849f8332d6f2a416e0ba6d3d3b98806c7db68 + languageName: node + linkType: hard + +"path-is-absolute@npm:^1.0.0": + version: 1.0.1 + resolution: "path-is-absolute@npm:1.0.1" + checksum: 060840f92cf8effa293bcc1bea81281bd7d363731d214cbe5c227df207c34cd727430f70c6037b5159c8a870b9157cba65e775446b0ab06fd5ecc7e54615a3b8 + languageName: node + linkType: hard + +"rimraf@npm:2.5.1": + version: 2.5.1 + resolution: "rimraf@npm:2.5.1" + dependencies: + glob: ^6.0.1 + bin: + rimraf: ./bin.js + checksum: 6184bbf729b08c557d042ae729d9061c5301bc4b01cd2e580f86e6694a5e6bacbcb58db2c58230128341f25cc50d0f2c84232cbed4b709292688b623b647fc09 + languageName: node + linkType: hard + +"wrappy@npm:1": + version: 1.0.2 + resolution: "wrappy@npm:1.0.2" + checksum: 159da4805f7e84a3d003d8841557196034155008f817172d4e986bd591f74aa82aa7db55929a54222309e01079a65a92a9e6414da5a6aa4b01ee44a511ac3ee5 + languageName: node + linkType: hard diff --git a/packages/plugin-commands-installation/package.json b/packages/plugin-commands-installation/package.json index 17e3975c2ba..47767e13f2b 100644 --- a/packages/plugin-commands-installation/package.json +++ b/packages/plugin-commands-installation/package.json @@ -12,6 +12,7 @@ "node": ">=12.17" }, "scripts": { + "start": "pnpm tsc --watch", "lint": "eslint src/**/*.ts test/**/*.ts", "registry-mock": "registry-mock", "test:jest": "jest", @@ -99,6 +100,7 @@ "ramda": "^0.27.1", "read-ini-file": "^3.1.0", "render-help": "^1.0.1", + "snyk-nodejs-lockfile-parser": "^1.37.1", "version-selector-type": "^3.0.0" }, "peerDependencies": { diff --git a/packages/plugin-commands-installation/src/import.ts b/packages/plugin-commands-installation/src/import.ts index 3d875c587b5..d50d7aaa387 100644 --- a/packages/plugin-commands-installation/src/import.ts +++ b/packages/plugin-commands-installation/src/import.ts @@ -20,6 +20,37 @@ import renderHelp from 'render-help' import { parse as parseYarnLock } from '@yarnpkg/lockfile' import exists from 'path-exists' import recursive from './recursive' +import { Yarn2LockParser, Yarn2Lock as Yarn2LockType } from 'snyk-nodejs-lockfile-parser/dist/parsers/yarn2-lock-parser' + +interface NpmPackageLock { + dependencies: LockedPackagesMap +} + +interface LockedPackage { + version: string + dependencies?: LockedPackagesMap +} + +interface LockedPackagesMap { + [name: string]: LockedPackage +} + +interface YarnLockPackage { + version: string + resolved: string + integrity: string + dependencies?: { + [name: string]: string + } +} +interface YarnPackgeLock { + [name: string]: YarnLockPackage +} + +enum YarnLockType { + yarn = 'yarn', + yarn2 = 'yarn2', +} export const rcOptionsTypes = cliOptionsTypes @@ -56,6 +87,7 @@ export async function handler ( let preferredVersions = {} if (await exists(path.join(opts.dir, 'yarn.lock'))) { const yarnPackgeLockFile = await readYarnLockFile(opts.dir) + console.log('yarnPackgeLockFile: ', yarnPackgeLockFile); getAllVersionsFromYarnLockFile(yarnPackgeLockFile, versionsByPackageNames) } else if ( await exists(path.join(opts.dir, 'package-lock.json')) || @@ -114,11 +146,20 @@ export async function handler ( async function readYarnLockFile (dir: string) { try { const yarnLockFile = await gfs.readFile(path.join(dir, 'yarn.lock'), 'utf8') - const lockJsonFile = await parseYarnLock(yarnLockFile) - if (lockJsonFile.type === 'success') { - return lockJsonFile.object - } else { - throw new PnpmError('GET_YARN_LOCKFILE_ERR', `Failed With ${lockJsonFile.type}`) + let lockJsonFile + const yarnLockFileType = getYarnLockfileType(yarnLockFile) + if (yarnLockFileType === YarnLockType.yarn) { + lockJsonFile = await parseYarnLock(yarnLockFile) + if (lockJsonFile.type === 'success') { + return lockJsonFile.object + } else { + throw new PnpmError('GET_YARN_LOCKFILE_ERR', `Failed With ${lockJsonFile.type}`) + } + } else if (yarnLockFileType === YarnLockType.yarn2) { + lockJsonFile = parseYarn2Lock(yarnLockFile) + if (lockJsonFile.type === YarnLockType.yarn2) { + return lockJsonFile.object + } } } catch (err: any) { // eslint-disable-line if (err['code'] !== 'ENOENT') throw err // eslint-disable-line @typescript-eslint/dot-notation @@ -126,6 +167,11 @@ async function readYarnLockFile (dir: string) { throw new PnpmError('YARN_LOCKFILE_NOT_FOUND', 'No yarn.lock found') } +function parseYarn2Lock (lockFileContents: string): Yarn2LockType { + const yarn2LockfileParser = new Yarn2LockParser() + return yarn2LockfileParser.parseLockFile(lockFileContents) +} + async function readNpmLockfile (dir: string) { try { return await loadJsonFile(path.join(dir, 'package-lock.json')) @@ -188,33 +234,16 @@ function getAllVersionsFromYarnLockFile ( } } -interface NpmPackageLock { - dependencies: LockedPackagesMap -} - -interface LockedPackage { - version: string - dependencies?: LockedPackagesMap -} - -interface LockedPackagesMap { - [name: string]: LockedPackage -} - -interface YarnLockPackage { - version: string - resolved: string - integrity: string - dependencies?: { - [name: string]: string - } -} -interface YarnPackgeLock { - [name: string]: YarnLockPackage -} - function selectProjectByDir (projects: Project[], searchedDir: string) { const project = projects.find(({ dir }) => path.relative(dir, searchedDir) === '') if (project == null) return undefined return { [searchedDir]: { dependencies: [], package: project } } } + +function getYarnLockfileType ( + lockFileContents: string +): YarnLockType { + return lockFileContents.includes('__metadata') + ? YarnLockType.yarn2 + : YarnLockType.yarn +} \ No newline at end of file diff --git a/packages/plugin-commands-installation/test/import.ts b/packages/plugin-commands-installation/test/import.ts index 1f6a375fea4..065206c75ae 100644 --- a/packages/plugin-commands-installation/test/import.ts +++ b/packages/plugin-commands-installation/test/import.ts @@ -85,6 +85,22 @@ test('import from yarn.lock', async () => { await project.hasNot('pkg-with-1-dep') }) +test('import from yarn2 lock file', async () => { + tempDir() + + await ncp(path.join(fixtures, 'has-yarn2-lock'), process.cwd()) + + await importCommand.handler({ + ...DEFAULT_OPTS, + dir: process.cwd(), + }, []) + + const project = assertProject(process.cwd()) + const lockfile = await project.readLockfile() + + expect(lockfile.packages).toMatchSnapshot(); +}) + test('import from npm-shrinkwrap.json', async () => { await addDistTag({ package: 'dep-of-pkg-with-1-dep', version: '100.1.0', distTag: 'latest' }) tempDir() diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 04120c06fc6..9192a2ee4f8 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2128,6 +2128,7 @@ importers: read-yaml-file: ^2.1.0 render-help: ^1.0.1 sinon: ^11.1.1 + snyk-nodejs-lockfile-parser: ^1.37.1 tempy: ^1.0.0 version-selector-type: ^3.0.0 write-json-file: ^4.3.0 @@ -2176,6 +2177,7 @@ importers: ramda: 0.27.1 read-ini-file: 3.1.0 render-help: 1.0.2 + snyk-nodejs-lockfile-parser: 1.37.1 version-selector-type: 3.0.0 devDependencies: '@pnpm/assert-project': link:../../privatePackages/assert-project @@ -4958,6 +4960,11 @@ packages: write-yaml-file: 4.2.0 dev: true + /@sindresorhus/is/4.2.0: + resolution: {integrity: sha512-VkE3KLBmJwcCaVARtQpfuKcKv8gcBmUubrfHGF84dXuuW6jgsRYxPtzcIhPyK9WAPpRt2/xY6zkD9MnRaJzSyw==} + engines: {node: '>=10'} + dev: false + /@sinonjs/commons/1.8.3: resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} dependencies: @@ -4988,6 +4995,58 @@ packages: resolution: {integrity: sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==} dev: true + /@snyk/dep-graph/1.29.0: + resolution: {integrity: sha512-pk3QSRyCFVaZ9qTdPuQCmDsLL9w5X+28KiwabYlTndSixg0Sj4fGygxziGj7xf/y/15WvwWwL4knnw96Zccr9w==} + engines: {node: '>=8'} + dependencies: + event-loop-spinner: 2.1.0 + lodash.clone: 4.5.0 + lodash.constant: 3.0.0 + lodash.filter: 4.6.0 + lodash.foreach: 4.5.0 + lodash.isempty: 4.4.0 + lodash.isequal: 4.5.0 + lodash.isfunction: 3.0.9 + lodash.isundefined: 3.0.1 + lodash.keys: 4.2.0 + lodash.map: 4.6.0 + lodash.reduce: 4.6.0 + lodash.size: 4.2.0 + lodash.transform: 4.6.0 + lodash.union: 4.6.0 + lodash.values: 4.3.0 + object-hash: 2.2.0 + semver: 7.3.5 + tslib: 1.14.1 + dev: false + + /@snyk/graphlib/2.1.9-patch.3: + resolution: {integrity: sha512-bBY9b9ulfLj0v2Eer0yFYa3syVeIxVKl2EpxSrsVeT4mjA0CltZyHsF0JjoaGXP27nItTdJS5uVsj1NA+3aE+Q==} + dependencies: + lodash.clone: 4.5.0 + lodash.constant: 3.0.0 + lodash.filter: 4.6.0 + lodash.foreach: 4.5.0 + lodash.has: 4.5.2 + lodash.isempty: 4.4.0 + lodash.isfunction: 3.0.9 + lodash.isundefined: 3.0.1 + lodash.keys: 4.2.0 + lodash.map: 4.6.0 + lodash.reduce: 4.6.0 + lodash.size: 4.2.0 + lodash.transform: 4.6.0 + lodash.union: 4.6.0 + lodash.values: 4.3.0 + dev: false + + /@szmarczak/http-timer/4.0.6: + resolution: {integrity: sha512-4BAffykYOgO+5nzBWYwE3W90sBgLJoUPRWWcL8wlyiM8IB8ipJz3UMJ9KXQd1RKQXpKp8Tutn80HZtWsu2u76w==} + engines: {node: '>=10'} + dependencies: + defer-to-connect: 2.0.1 + dev: false + /@tootallnate/once/1.1.2: resolution: {integrity: sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==} engines: {node: '>= 6'} @@ -5061,6 +5120,15 @@ packages: '@types/node': 16.11.7 dev: true + /@types/cacheable-request/6.0.2: + resolution: {integrity: sha512-B3xVo+dlKM6nnKTcmm5ZtY/OL8bOAOd2Olee9M1zft65ox50OzjEHW91sDiU9j6cvW8Ejg1/Qkf4xd2kugApUA==} + dependencies: + '@types/http-cache-semantics': 4.0.1 + '@types/keyv': 3.1.3 + '@types/node': 16.11.7 + '@types/responselike': 1.0.0 + dev: false + /@types/concat-stream/1.6.1: resolution: {integrity: sha512-eHE4cQPoj6ngxBZMvVf6Hw7Mh4jMW4U9lpGmS5GBPB9RYxlFg+CHaVN7ErNY4W9XfLIEn20b4VDYaIrbq0q4uA==} dependencies: @@ -5100,6 +5168,10 @@ packages: resolution: {integrity: sha512-RURNTeEFUwF+ifnp7kK3WLLlTmBSlRynLNS9jeAsI6RHtSrupV0l0nO6kmpaz75EUJVexy348bR452SvmH98vQ==} dev: true + /@types/http-cache-semantics/4.0.1: + resolution: {integrity: sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ==} + dev: false + /@types/http-proxy-agent/4.0.1: resolution: {integrity: sha512-2XJTByP9C14Kcq5ClvPRfOgFJxklhuru7xmuSPcNr2CPwRGdpCgIdUUNc0MDb25+bzaSolVN0u4RKH7M+CMimg==} deprecated: This is a stub types definition. http-proxy-agent provides its own type definitions, so you do not need this installed. @@ -5167,6 +5239,12 @@ packages: json5: 2.2.0 dev: true + /@types/keyv/3.1.3: + resolution: {integrity: sha512-FXCJgyyN3ivVgRoml4h94G/p3kY+u/B86La+QptcqJaWtBWtmc6TtkNfS40n9bIvyLteHh7zXOtgbobORKPbDg==} + dependencies: + '@types/node': 16.11.7 + dev: false + /@types/lru-cache/5.1.1: resolution: {integrity: sha512-ssE3Vlrys7sdIzs5LOxCzTVMsU7i9oa/IaW92wF32JFb3CVczqOkru2xspuKczHEbG3nvmPY7IFqVmGGHdNbYw==} dev: true @@ -5247,6 +5325,12 @@ packages: ts-toolbelt: 6.15.5 dev: true + /@types/responselike/1.0.0: + resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} + dependencies: + '@types/node': 16.11.7 + dev: false + /@types/retry/0.12.1: resolution: {integrity: sha512-xoDlM2S4ortawSWORYqsdU+2rxdh4LRW9ytc3zmT37RIKQh6IHyKwwtKhKis9ah8ol07DCkZxPt8BBvPjC6v4g==} dev: true @@ -5264,7 +5348,6 @@ packages: /@types/semver/7.3.9: resolution: {integrity: sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==} - dev: true /@types/signal-exit/3.0.1: resolution: {integrity: sha512-OSitN9PP9E/c4tlt1Qdj3CAz5uHD9Da5rhUqlaKyQRCX1T7Zdpbk6YdeZbR2eiE2ce+NMBgVnMxGqpaPSNQDUQ==} @@ -5312,6 +5395,10 @@ packages: '@types/node': 16.11.7 dev: true + /@types/treeify/1.0.0: + resolution: {integrity: sha512-ONpcZAEYlbPx4EtJwfTyCDQJGUpKf4sEcuySdCVjK5Fj/3vHp5HII1fqa1/+qrsLnpYELCQTfVW/awsGJePoIg==} + dev: false + /@types/unist/2.0.6: resolution: {integrity: sha512-PBjIUxZHOuj0R15/xuwJYjFi+KZdNFrehocChv4g5hu6aFroHue8m0lBP0POdK2nKzbw0cgV1mws8+V/JAcEkQ==} dev: false @@ -5557,6 +5644,43 @@ packages: resolution: {integrity: sha512-xaN1nVxGWSIO4Qmnm3xZwvUf2jOUIt43nAp2IbSiPdozQztCcfU1LHEHiMW2mP036LoUWcHbb3Z6Tj1GHyuQNg==} dev: true + /@yarnpkg/core/2.4.0: + resolution: {integrity: sha512-FYjcPNTfDfMKLFafQPt49EY28jnYC82Z2S7oMwLPUh144BL8v8YXzb4aCnFyi5nFC5h2kcrJfZh7+Pm/qvCqGw==} + engines: {node: '>=10.19.0'} + dependencies: + '@arcanis/slice-ansi': 1.0.2 + '@types/semver': 7.3.9 + '@types/treeify': 1.0.0 + '@yarnpkg/fslib': 2.6.0 + '@yarnpkg/json-proxy': 2.1.1 + '@yarnpkg/libzip': 2.2.2 + '@yarnpkg/parsers': 2.3.0 + '@yarnpkg/pnp': 2.3.2 + '@yarnpkg/shell': 2.4.1 + binjumper: 0.1.4 + camelcase: 5.3.1 + chalk: 3.0.0 + ci-info: 2.0.0 + clipanion: 2.6.2 + cross-spawn: 7.0.3 + diff: 4.0.2 + globby: 11.0.4 + got: 11.8.2 + json-file-plus: 3.3.1 + lodash: 4.17.21 + micromatch: 4.0.4 + mkdirp: 0.5.5 + p-limit: 2.3.0 + pluralize: 7.0.0 + pretty-bytes: 5.6.0 + semver: 7.3.5 + stream-to-promise: 2.2.0 + tar-stream: 2.2.0 + treeify: 1.1.0 + tslib: 1.14.1 + tunnel: 0.0.6 + dev: false + /@yarnpkg/fslib/2.6.0: resolution: {integrity: sha512-NgK7aYYNrFOFJGcWWEDXHHYNt93L3A0Ojv90Xl9+f72T+CaFkOAXyK2XBwEYreot7lT1NeopcnkmFRjHgKRKgQ==} engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} @@ -5565,6 +5689,14 @@ packages: tslib: 1.14.1 dev: false + /@yarnpkg/json-proxy/2.1.1: + resolution: {integrity: sha512-meUiCAgCYpXTH1qJfqfz+dX013ohW9p2dKfwIzUYAFutH+lsz1eHPBIk72cuCV84adh9gX6j66ekBKH/bIhCQw==} + engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} + dependencies: + '@yarnpkg/fslib': 2.6.0 + tslib: 1.14.1 + dev: false + /@yarnpkg/libzip/2.2.2: resolution: {integrity: sha512-M7ziz16f+tFFnJSCreLtemaGPpjT+NC0E21JQaWXAAlRmFIXz6zl2EZ+tXLxV9yJaplpNDbTgX1j5GPiwg5H5w==} engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} @@ -6151,7 +6283,6 @@ packages: /any-promise/1.3.0: resolution: {integrity: sha1-q8av7tzqUugJzcA3au0845Y10X8=} - dev: true /anymatch/3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} @@ -6297,6 +6428,10 @@ packages: dependencies: printable-characters: 1.0.42 + /asap/2.0.6: + resolution: {integrity: sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=} + dev: false + /asn1/0.2.6: resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==} dependencies: @@ -6323,7 +6458,6 @@ packages: /async/3.2.2: resolution: {integrity: sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==} - dev: true /asynckit/0.4.0: resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} @@ -6518,6 +6652,11 @@ packages: write-file-atomic: 3.0.3 dev: false + /binjumper/0.1.4: + resolution: {integrity: sha512-Gdxhj+U295tIM6cO4bJO1jsvSjBVHNpj2o/OwW7pqDEtaqF6KdOxjtbo93jMMKAkP7+u09+bV8DhSqjIv4qR3w==} + engines: {node: '>=10.12.0'} + dev: false + /bl/4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: @@ -6742,6 +6881,24 @@ packages: unset-value: 1.0.0 dev: true + /cacheable-lookup/5.0.4: + resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==} + engines: {node: '>=10.6.0'} + dev: false + + /cacheable-request/7.0.2: + resolution: {integrity: sha512-pouW8/FmiPQbuGpkXQ9BAPv/Mo5xDGANgSNXzTzJ8DrKGuXOssM4wIQRjfanNRh3Yu5cfYPvcorqbhg2KIJtew==} + engines: {node: '>=8'} + dependencies: + clone-response: 1.0.2 + get-stream: 5.2.0 + http-cache-semantics: 4.1.0 + keyv: 4.0.4 + lowercase-keys: 2.0.0 + normalize-url: 6.1.0 + responselike: 2.0.0 + dev: false + /call-bind/1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: @@ -6856,7 +7013,6 @@ packages: dependencies: ansi-styles: 4.3.0 supports-color: 7.2.0 - dev: true /chalk/4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -6908,7 +7064,6 @@ packages: /ci-info/2.0.0: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} - dev: true /ci-info/3.2.0: resolution: {integrity: sha512-dVqRX7fLUm8J6FgHJ418XuIgDLZDkYcDFTeL6TA2gt5WlIZUQrrH6EZrNClwT/H0FateUsZkGIOPRrLbP+PR9A==} @@ -7009,6 +7164,12 @@ packages: shallow-clone: 3.0.1 dev: true + /clone-response/1.0.2: + resolution: {integrity: sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=} + dependencies: + mimic-response: 1.0.1 + dev: false + /clone-stats/1.0.0: resolution: {integrity: sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=} dev: true @@ -7579,6 +7740,13 @@ packages: mimic-response: 2.1.0 dev: true + /decompress-response/6.0.0: + resolution: {integrity: sha512-aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ==} + engines: {node: '>=10'} + dependencies: + mimic-response: 3.1.0 + dev: false + /dedent/0.7.0: resolution: {integrity: sha1-JJXduvbrh0q7Dhvp3yLS5aVEMmw=} dev: true @@ -7621,6 +7789,11 @@ packages: clone: 1.0.4 dev: true + /defer-to-connect/2.0.1: + resolution: {integrity: sha512-4tvttepXG1VaYGrRibk5EwJd1t4udunSOVMdLSAL6mId1ix438oPwPZMALY41FCijukO1L0twNcGsdzS7dHgDg==} + engines: {node: '>=10'} + dev: false + /define-properties/1.1.3: resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} engines: {node: '>= 0.4'} @@ -7728,7 +7901,6 @@ packages: /diff/4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} - dev: true /diff/5.0.0: resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} @@ -7875,6 +8047,12 @@ packages: dev: false optional: true + /end-of-stream/1.1.0: + resolution: {integrity: sha1-6TUyWLqpEIll78QcsO+K3i88+wc=} + dependencies: + once: 1.3.3 + dev: false + /end-of-stream/1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: @@ -8453,6 +8631,12 @@ packages: es5-ext: 0.10.53 dev: true + /event-loop-spinner/2.1.0: + resolution: {integrity: sha512-RJ10wL8/F9AlfBgRCvYctJIXSb9XkVmSCK3GGUvPD3dJrvTjDeDT0tmhcbEC6I2NEjNM9xD38HQJ4F/f/gb4VQ==} + dependencies: + tslib: 2.3.1 + dev: false + /eventemitter3/4.0.7: resolution: {integrity: sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==} dev: false @@ -9123,6 +9307,13 @@ packages: engines: {node: '>=4'} dev: true + /get-stream/5.2.0: + resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} + engines: {node: '>=8'} + dependencies: + pump: 3.0.0 + dev: false + /get-stream/6.0.1: resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} engines: {node: '>=10'} @@ -9282,6 +9473,23 @@ packages: slash: 2.0.0 dev: true + /got/11.8.2: + resolution: {integrity: sha512-D0QywKgIe30ODs+fm8wMZiAcZjypcCodPNuMz5H9Mny7RJ+IjJ10BdmGW7OM7fHXP+O7r6ZwapQ/YQmMSvB0UQ==} + engines: {node: '>=10.19.0'} + dependencies: + '@sindresorhus/is': 4.2.0 + '@szmarczak/http-timer': 4.0.6 + '@types/cacheable-request': 6.0.2 + '@types/responselike': 1.0.0 + cacheable-lookup: 5.0.4 + cacheable-request: 7.0.2 + decompress-response: 6.0.0 + http2-wrapper: 1.0.3 + lowercase-keys: 2.0.0 + p-cancelable: 2.1.1 + responselike: 2.0.0 + dev: false + /graceful-fs/4.2.8: resolution: {integrity: sha512-qkIilPUYcNhJpd33n0GBXTB1MMPp14TxEsEs0pTrsSVucApsYzW5V+Q8Qxhik6KU3evy+qkAAowTByymK0avdg==} @@ -9504,6 +9712,14 @@ packages: resolution: {integrity: sha512-JrT3ua+WgH8zBD3HEJYbeEgnuQaAnUeRRko/YojPAJjGmIfGD3KPU/asLdsLwKjfxOmQe5nXMQ0pt/7MyapVbQ==} dev: true + /http2-wrapper/1.0.3: + resolution: {integrity: sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg==} + engines: {node: '>=10.19.0'} + dependencies: + quick-lru: 5.1.1 + resolve-alpn: 1.2.1 + dev: false + /https-proxy-agent/5.0.0: resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==} engines: {node: '>= 6'} @@ -10077,6 +10293,10 @@ packages: resolution: {integrity: sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA==} dev: false + /is/3.3.0: + resolution: {integrity: sha512-nW24QBoPcFGGHJGUwnfpI7Yc5CdqWNdsyHQszVE/z2pKHXzh7FZ5GWhJqSyaQ9wMkQnsTx+kAI8bHlCX4tKdbg==} + dev: false + /isarray/0.0.1: resolution: {integrity: sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=} dev: true @@ -10771,6 +10991,21 @@ packages: concat-stream: 1.6.2 dev: true + /json-buffer/3.0.1: + resolution: {integrity: sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==} + dev: false + + /json-file-plus/3.3.1: + resolution: {integrity: sha512-wo0q1UuiV5NsDPQDup1Km8IwEeqe+olr8tkWxeJq9Bjtcp7DZ0l+yrg28fSC3DEtrE311mhTZ54QGS6oiqnZEA==} + engines: {node: '>= 0.4'} + dependencies: + is: 3.3.0 + node.extend: 2.0.2 + object.assign: 4.1.2 + promiseback: 2.0.3 + safer-buffer: 2.1.2 + dev: false + /json-parse-better-errors/1.0.2: resolution: {integrity: sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==} dev: true @@ -10881,6 +11116,12 @@ packages: tsscmp: 1.0.6 dev: true + /keyv/4.0.4: + resolution: {integrity: sha512-vqNHbAc8BBsxk+7QBYLW0Y219rWcClspR6WSeoHYKG5mnsSoOH+BL1pWq02DDCVdvvuUny5rkBlzMRzoqc+GIg==} + dependencies: + json-buffer: 3.0.1 + dev: false + /kind-of/3.2.2: resolution: {integrity: sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=} engines: {node: '>=0.10.0'} @@ -11068,16 +11309,39 @@ packages: /lodash.clone/4.5.0: resolution: {integrity: sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=} - dev: true + + /lodash.clonedeep/4.5.0: + resolution: {integrity: sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=} + dev: false + + /lodash.constant/3.0.0: + resolution: {integrity: sha1-v+Bczn5RWzEokl1jYhOEIL1iSRA=} + dev: false /lodash.deburr/4.1.0: resolution: {integrity: sha1-3bG7s+8HRYwBd7oH3hRCLLAz/5s=} dev: false + /lodash.filter/4.6.0: + resolution: {integrity: sha1-ZosdSYFgOuHMWm+nYBQ+SAtMSs4=} + dev: false + + /lodash.flatmap/4.5.0: + resolution: {integrity: sha1-74y/QI9uSCaGYzRTBcaswLd4cC4=} + dev: false + + /lodash.foreach/4.5.0: + resolution: {integrity: sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=} + dev: false + /lodash.get/4.4.2: resolution: {integrity: sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=} dev: true + /lodash.has/4.5.2: + resolution: {integrity: sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=} + dev: false + /lodash.includes/4.3.0: resolution: {integrity: sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=} dev: true @@ -11086,6 +11350,18 @@ packages: resolution: {integrity: sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=} dev: true + /lodash.isempty/4.4.0: + resolution: {integrity: sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=} + dev: false + + /lodash.isequal/4.5.0: + resolution: {integrity: sha1-QVxEePK8wwEgwizhDtMib30+GOA=} + dev: false + + /lodash.isfunction/3.0.9: + resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} + dev: false + /lodash.isinteger/4.0.4: resolution: {integrity: sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=} dev: true @@ -11108,7 +11384,14 @@ packages: /lodash.isundefined/3.0.1: resolution: {integrity: sha1-I+89lTVWUgOmbO/VuDD4SJEa+0g=} - dev: true + + /lodash.keys/4.2.0: + resolution: {integrity: sha1-oIYCrBLk+4P5H8H7ejYKTZujUgU=} + dev: false + + /lodash.map/4.6.0: + resolution: {integrity: sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=} + dev: false /lodash.memoize/4.1.2: resolution: {integrity: sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=} @@ -11116,12 +11399,23 @@ packages: /lodash.merge/4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} - dev: true /lodash.once/4.1.1: resolution: {integrity: sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=} dev: true + /lodash.reduce/4.6.0: + resolution: {integrity: sha1-8atrg5KZrUj3hKu/R2WW8DuRTTs=} + dev: false + + /lodash.set/4.3.2: + resolution: {integrity: sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=} + dev: false + + /lodash.size/4.2.0: + resolution: {integrity: sha1-cf517T6r2yvLc6GwtPUcOS7ie4Y=} + dev: false + /lodash.sortby/4.7.0: resolution: {integrity: sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=} dev: true @@ -11143,6 +11437,22 @@ packages: lodash._reinterpolate: 3.0.0 dev: false + /lodash.topairs/4.3.0: + resolution: {integrity: sha1-O23qo31g+xFnE8RsXxfqGQ7EjWQ=} + dev: false + + /lodash.transform/4.6.0: + resolution: {integrity: sha1-EjBkIvYzJK7YSD0/ODMrX2cFR6A=} + dev: false + + /lodash.union/4.6.0: + resolution: {integrity: sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=} + dev: false + + /lodash.values/4.3.0: + resolution: {integrity: sha1-o6bCsOvsxcLLocF+bmIP6BtT00c=} + dev: false + /lodash/4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} @@ -11206,6 +11516,11 @@ packages: steno: 0.4.4 dev: true + /lowercase-keys/2.0.0: + resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} + engines: {node: '>=8'} + dev: false + /lru-cache/4.1.5: resolution: {integrity: sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==} dependencies: @@ -11529,11 +11844,21 @@ packages: resolution: {integrity: sha512-Ysbi9uYW9hFyfrThdDEQuykN4Ey6BuwPD2kpI5ES/nFTDn/98yxYNLZJcgUAKPT/mcrLLKaGzJR9YVxJrIdASQ==} engines: {node: '>=8'} + /mimic-response/1.0.1: + resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} + engines: {node: '>=4'} + dev: false + /mimic-response/2.1.0: resolution: {integrity: sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==} engines: {node: '>=8'} dev: true + /mimic-response/3.1.0: + resolution: {integrity: sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==} + engines: {node: '>=10'} + dev: false + /min-indent/1.0.1: resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} engines: {node: '>=4'} @@ -11647,7 +11972,6 @@ packages: hasBin: true dependencies: minimist: 1.2.5 - dev: true /mkdirp/1.0.4: resolution: {integrity: sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==} @@ -11885,6 +12209,14 @@ packages: resolution: {integrity: sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==} dev: true + /node.extend/2.0.2: + resolution: {integrity: sha512-pDT4Dchl94/+kkgdwyS2PauDFjZG0Hk0IcHIB+LkW27HLDtdoeMxHTxZh39DYbPP8UflWXWj9JcdDozF+YDOpQ==} + engines: {node: '>=0.4.0'} + dependencies: + has: 1.0.3 + is: 3.3.0 + dev: false + /noop-logger/0.1.1: resolution: {integrity: sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=} dev: true @@ -11933,6 +12265,11 @@ packages: resolution: {integrity: sha512-0v6T4851b72ykk5zEtFoN4QX/Fqyk7pouIj9xZyAvAe9jlDhAwT4z6FlwsoQCHjeuK2EGUoAwy/F4y4B1uZq9A==} dev: false + /normalize-url/6.1.0: + resolution: {integrity: sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==} + engines: {node: '>=10'} + dev: false + /now-and-later/2.0.1: resolution: {integrity: sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==} engines: {node: '>= 0.10'} @@ -12041,6 +12378,11 @@ packages: kind-of: 3.2.2 dev: true + /object-hash/2.2.0: + resolution: {integrity: sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw==} + engines: {node: '>= 6'} + dev: false + /object-inspect/1.11.0: resolution: {integrity: sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg==} @@ -12092,6 +12434,12 @@ packages: engines: {node: '>= 0.8'} dev: true + /once/1.3.3: + resolution: {integrity: sha1-suJhVXzkwxTsgwTz+oJmPkKXyiA=} + dependencies: + wrappy: 1.0.2 + dev: false + /once/1.4.0: resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} dependencies: @@ -12175,7 +12523,6 @@ packages: /p-cancelable/2.1.1: resolution: {integrity: sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg==} engines: {node: '>=8'} - dev: true /p-defer/1.0.0: resolution: {integrity: sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=} @@ -12631,6 +12978,11 @@ packages: engines: {node: '>= 0.4.0'} dev: true + /pluralize/7.0.0: + resolution: {integrity: sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==} + engines: {node: '>=4'} + dev: false + /pn/1.1.0: resolution: {integrity: sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==} dev: true @@ -12760,6 +13112,13 @@ packages: engines: {node: '>=0.4.0'} dev: true + /promise-deferred/2.0.3: + resolution: {integrity: sha512-n10XaoznCzLfyPFOlEE8iurezHpxrYzyjgq/1eW9Wk1gJwur/N7BdBmjJYJpqMeMcXK4wEbzo2EvZQcqjYcKUQ==} + engines: {node: '>= 0.4'} + dependencies: + promise: 7.3.1 + dev: false + /promise-inflight/1.0.1: resolution: {integrity: sha1-mEcocL8igTL8vdhoEputEsPAKeM=} dev: false @@ -12779,6 +13138,20 @@ packages: p-reflect: 2.1.0 dev: false + /promise/7.3.1: + resolution: {integrity: sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==} + dependencies: + asap: 2.0.6 + dev: false + + /promiseback/2.0.3: + resolution: {integrity: sha512-VZXdCwS0ppVNTIRfNsCvVwJAaP2b+pxQF7lM8DMWfmpNWyTxB6O5YNbzs+8z0ki/KIBHKHk308NTIl4kJUem3w==} + engines: {node: '>= 0.4'} + dependencies: + is-callable: 1.2.4 + promise-deferred: 2.0.3 + dev: false + /prompt-actions/3.0.2: resolution: {integrity: sha512-dhz2Fl7vK+LPpmnQ/S/eSut4BnH4NZDLyddHKi5uTU/2PDn3grEMGkgsll16V5RpVUh/yxdiam0xsM0RD4xvtg==} engines: {node: '>=4'} @@ -12928,7 +13301,6 @@ packages: dependencies: end-of-stream: 1.4.4 once: 1.4.0 - dev: true /pumpify/1.5.1: resolution: {integrity: sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==} @@ -12974,7 +13346,6 @@ packages: /quick-lru/5.1.1: resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} engines: {node: '>=10'} - dev: true /radio-symbol/2.0.0: resolution: {integrity: sha1-eqm/xQSFY21S3XbWqOYxspB5muE=} @@ -13410,6 +13781,10 @@ packages: resolution: {integrity: sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==} dev: true + /resolve-alpn/1.2.1: + resolution: {integrity: sha512-0a1F4l73/ZFZOakJnQ3FvkJ2+gSTQWz/r2KE5OdDY0TxPm5h4GkqkWWfM47T7HsbnOtcJVEF4epCVy6u7Q3K+g==} + dev: false + /resolve-cwd/3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} @@ -13465,6 +13840,12 @@ packages: is-core-module: 2.8.0 path-parse: 1.0.7 + /responselike/2.0.0: + resolution: {integrity: sha512-xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw==} + dependencies: + lowercase-keys: 2.0.0 + dev: false + /restore-cursor/1.0.1: resolution: {integrity: sha1-NGYfRohjJ/7SmRR5FSJS35LapUE=} engines: {node: '>=0.10.0'} @@ -13835,6 +14216,41 @@ packages: use: 3.1.1 dev: true + /snyk-config/4.0.0: + resolution: {integrity: sha512-E6jNe0oUjjzVASWBOAc/mA23DhbzABDF9MI6UZvl0gylh2NSXSXw2/LjlqMNOKL2c1qkbSkzLOdIX5XACoLCAQ==} + dependencies: + async: 3.2.2 + debug: 4.3.2 + lodash.merge: 4.6.2 + minimist: 1.2.5 + transitivePeerDependencies: + - supports-color + dev: false + + /snyk-nodejs-lockfile-parser/1.37.1: + resolution: {integrity: sha512-GoC1Hqx4ZYr8Rma9aov5WQj5g+ByR1mCx5UARbbcE8Y7DPfAfzgicAJBbwiHWunYjADBGvnyTUPYfdcWODWlhw==} + engines: {node: '>=10'} + hasBin: true + dependencies: + '@snyk/dep-graph': 1.29.0 + '@snyk/graphlib': 2.1.9-patch.3 + '@yarnpkg/core': 2.4.0 + '@yarnpkg/lockfile': 1.1.0 + event-loop-spinner: 2.1.0 + js-yaml: /@zkochan/js-yaml/0.0.5 + lodash.clonedeep: 4.5.0 + lodash.flatmap: 4.5.0 + lodash.isempty: 4.4.0 + lodash.set: 4.3.2 + lodash.topairs: 4.3.0 + semver: 7.3.5 + snyk-config: 4.0.0 + tslib: 1.14.1 + uuid: 8.3.2 + transitivePeerDependencies: + - supports-color + dev: false + /socks-proxy-agent/6.1.0: resolution: {integrity: sha512-57e7lwCN4Tzt3mXz25VxOErJKXlPfXmkMLnk310v/jwW20jWRVcgsOit+xNkN3eIEdB47GwnfAEBLacZ/wVIKg==} engines: {node: '>= 10'} @@ -14043,6 +14459,20 @@ packages: /stream-shift/1.0.1: resolution: {integrity: sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==} + /stream-to-array/2.3.0: + resolution: {integrity: sha1-u/azn19D7DC8cbq8s3VXrOzzQ1M=} + dependencies: + any-promise: 1.3.0 + dev: false + + /stream-to-promise/2.2.0: + resolution: {integrity: sha1-se2y4cjLESidG1A8CNPyrvUeZQ8=} + dependencies: + any-promise: 1.3.0 + end-of-stream: 1.1.0 + stream-to-array: 2.3.0 + dev: false + /stream-transform/2.1.3: resolution: {integrity: sha512-9GHUiM5hMiCi6Y03jD2ARC1ettBXkQBoQAe7nJsPknnI0ow10aXjTnew8QtYQmLjzn974BnmWEAJgCY6ZP1DeQ==} dependencies: @@ -14554,6 +14984,11 @@ packages: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true + /treeify/1.1.0: + resolution: {integrity: sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==} + engines: {node: '>=0.6'} + dev: false + /trim-newlines/3.0.1: resolution: {integrity: sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw==} engines: {node: '>=8'} @@ -14685,7 +15120,6 @@ packages: /tslib/2.3.1: resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} - dev: true /tslint-config-standard/9.0.0_typescript@4.4.4: resolution: {integrity: sha512-CAw9J743RnPMemQV/XQ4YyNreC+A1NItACfkm+cBedrOkz6CQfwlnbKn8anUXBfoa4Zo4tjAhblRbsMNcSLfSw==} @@ -14742,6 +15176,11 @@ packages: safe-buffer: 5.2.1 dev: true + /tunnel/0.0.6: + resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} + engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} + dev: false + /tweetnacl/0.14.5: resolution: {integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=} dev: true @@ -15019,6 +15458,11 @@ packages: deprecated: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. hasBin: true + /uuid/8.3.2: + resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + hasBin: true + dev: false + /v8-compile-cache/2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true