diff --git a/packages/plugin-commands-installation/package.json b/packages/plugin-commands-installation/package.json index 4c15ce3a44e..202d3c74f32 100644 --- a/packages/plugin-commands-installation/package.json +++ b/packages/plugin-commands-installation/package.json @@ -82,8 +82,9 @@ "@pnpm/sort-packages": "workspace:2.1.3", "@pnpm/store-connection-manager": "workspace:3.1.9", "@pnpm/types": "workspace:7.6.0", - "@yarnpkg/core": "^2.4.0", + "@yarnpkg/core": "^3.2.0-rc.4", "@yarnpkg/lockfile": "^1.1.0", + "@yarnpkg/parsers": "^2.5.0-rc.3", "@zkochan/rimraf": "^2.1.1", "@zkochan/table": "^1.0.0", "@zkochan/which": "^2.0.3", @@ -92,7 +93,6 @@ "enquirer": "^2.3.6", "is-ci": "^3.0.0", "is-subdir": "^1.1.1", - "js-yaml": "^4.1.0", "load-json-file": "^6.2.0", "mem": "^8.0.0", "p-filter": "^2.1.0", @@ -102,7 +102,6 @@ "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 e45e31b1024..f5dc4fd8b5e 100644 --- a/packages/plugin-commands-installation/src/import.ts +++ b/packages/plugin-commands-installation/src/import.ts @@ -18,11 +18,11 @@ import rimraf from '@zkochan/rimraf' import loadJsonFile from 'load-json-file' import renderHelp from 'render-help' import { parse as parseYarnLock } from '@yarnpkg/lockfile' +import * as yarnCore from '@yarnpkg/core' +import { parseSyml } from '@yarnpkg/parsers' import exists from 'path-exists' import recursive from './recursive' -import { yarnLockFileKeyNormalizer } from 'snyk-nodejs-lockfile-parser/dist/parsers/yarn-utils' -import * as yarnCore from '@yarnpkg/core' -import { load, FAILSAFE_SCHEMA } from 'js-yaml'; +import { yarnLockFileKeyNormalizer } from './yarnUtil' interface NpmPackageLock { dependencies: LockedPackagesMap @@ -179,10 +179,7 @@ async function readYarnLockFile (dir: string) { function parseYarn2Lock (lockFileContents: string): YarnLock2Struct { // eslint-disable-line - const parseYarnLock: any = load(lockFileContents, { - json: true, - schema: FAILSAFE_SCHEMA - }) + const parseYarnLock: any = parseSyml(lockFileContents); delete parseYarnLock.__metadata const dependencies: YarnPackgeLock = {} diff --git a/packages/plugin-commands-installation/src/yarnUtil.ts b/packages/plugin-commands-installation/src/yarnUtil.ts new file mode 100644 index 00000000000..77f057222e2 --- /dev/null +++ b/packages/plugin-commands-installation/src/yarnUtil.ts @@ -0,0 +1,89 @@ +/** + * https://github.com/snyk/nodejs-lockfile-parser/blob/master/lib/parsers/yarn-utils.ts + */ +import { structUtils } from '@yarnpkg/core'; + +const BUILTIN_PLACEHOLDER = 'builtin'; +const MULTIPLE_KEYS_REGEXP = / *, */g; + +export type ParseDescriptor = typeof structUtils.parseDescriptor; +export type ParseRange = typeof structUtils.parseRange; + +const keyNormalizer = ( + parseDescriptor: ParseDescriptor, + parseRange: ParseRange, +) => (rawDescriptor: string): string[] => { + // See https://yarnpkg.com/features/protocols + const descriptors: string[] = [rawDescriptor]; + const descriptor = parseDescriptor(rawDescriptor); + const name = `${descriptor.scope ? '@' + descriptor.scope + '/' : ''}${ + descriptor.name + }`; + const range = parseRange(descriptor.range); + const protocol = range.protocol; + switch (protocol) { + case 'npm:': + case 'file:': + descriptors.push(`${name}@${range.selector}`); + descriptors.push(`${name}@${protocol}${range.selector}`); + break; + case 'git:': + case 'git+ssh:': + case 'git+http:': + case 'git+https:': + case 'github:': + if (range.source) { + descriptors.push( + `${name}@${protocol}${range.source}${ + range.selector ? '#' + range.selector : '' + }`, + ); + } else { + descriptors.push(`${name}@${protocol}${range.selector}`); + } + break; + case 'patch:': + if (range.source && range.selector.indexOf(BUILTIN_PLACEHOLDER) === 0) { + descriptors.push(range.source); + } else { + descriptors.push( + `${name}@${protocol}${range.source}${ + range.selector ? '#' + range.selector : '' + }`, + ); + } + break; + case null: + case undefined: + if (range.source) { + descriptors.push(`${name}@${range.source}#${range.selector}`); + } else { + descriptors.push(`${name}@${range.selector}`); + } + break; + case 'http:': + case 'https:': + case 'link:': + case 'portal:': + case 'exec:': + case 'workspace:': + case 'virtual:': + default: + // For user defined plugins + descriptors.push(`${name}@${protocol}${range.selector}`); + break; + } + return descriptors; +}; + +export type YarnLockFileKeyNormalizer = (fullDescriptor: string) => Set; + +export const yarnLockFileKeyNormalizer = ( + parseDescriptor: ParseDescriptor, + parseRange: ParseRange, +): YarnLockFileKeyNormalizer => (fullDescriptor: string) => { + const allKeys = fullDescriptor + .split(MULTIPLE_KEYS_REGEXP) + .map(keyNormalizer(parseDescriptor, parseRange)); + return new Set(allKeys.flat(5)); +}; diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 47e3cf04535..f16b7ddfb99 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -2108,8 +2108,9 @@ importers: '@types/sinon': ^9.0.11 '@types/yarnpkg__lockfile': ^1.1.5 '@types/zkochan__table': npm:@types/table@6.0.0 - '@yarnpkg/core': ^2.4.0 + '@yarnpkg/core': ^3.2.0-rc.4 '@yarnpkg/lockfile': ^1.1.0 + '@yarnpkg/parsers': ^2.5.0-rc.3 '@zkochan/rimraf': ^2.1.1 '@zkochan/table': ^1.0.0 '@zkochan/which': ^2.0.3 @@ -2118,7 +2119,6 @@ importers: enquirer: ^2.3.6 is-ci: ^3.0.0 is-subdir: ^1.1.1 - js-yaml: npm:@zkochan/js-yaml@0.0.5 load-json-file: ^6.2.0 mem: ^8.0.0 ncp: ^2.0.0 @@ -2133,7 +2133,6 @@ 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 @@ -2164,8 +2163,9 @@ importers: '@pnpm/sort-packages': link:../sort-packages '@pnpm/store-connection-manager': link:../store-connection-manager '@pnpm/types': link:../types - '@yarnpkg/core': 2.4.0 + '@yarnpkg/core': 3.2.0-rc.4 '@yarnpkg/lockfile': 1.1.0 + '@yarnpkg/parsers': 2.5.0-rc.3 '@zkochan/rimraf': 2.1.1 '@zkochan/table': 1.0.0 '@zkochan/which': 2.0.3 @@ -2174,7 +2174,6 @@ importers: enquirer: 2.3.6 is-ci: 3.0.1 is-subdir: 1.2.0 - js-yaml: /@zkochan/js-yaml/0.0.5 load-json-file: 6.2.0 mem: 8.1.1 p-filter: 2.1.0 @@ -2184,7 +2183,6 @@ 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 @@ -4104,6 +4102,14 @@ packages: prettier: 1.19.1 dev: true + /@chevrotain/types/9.1.0: + resolution: {integrity: sha512-3hbCD1CThkv9gnaSIPq0GUXwKni68e0ph6jIHwCvcWiQ4JB2xi8bFxBain0RF04qHUWuDjgnZLj4rLgimuGO+g==} + dev: false + + /@chevrotain/utils/9.1.0: + resolution: {integrity: sha512-llLJZ8OAlZrjGlBvamm6Zdo/HmGAcCLq5gx7cSwUX8No+n/8ip+oaC4x33IdZIif8+Rh5dQUIZXmfbSghiOmNQ==} + dev: false + /@commitlint/cli/15.0.0: resolution: {integrity: sha512-Y5xmDCweytqzo4N4lOI2YRiuX35xTjcs8n5hUceBH8eyK0YbwtgWX50BJOH2XbkwEmII9blNhlBog6AdQsqicg==} engines: {node: '>=v12'} @@ -5005,51 +5011,6 @@ 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'} @@ -5654,9 +5615,9 @@ packages: resolution: {integrity: sha512-xaN1nVxGWSIO4Qmnm3xZwvUf2jOUIt43nAp2IbSiPdozQztCcfU1LHEHiMW2mP036LoUWcHbb3Z6Tj1GHyuQNg==} dev: true - /@yarnpkg/core/2.4.0: - resolution: {integrity: sha512-FYjcPNTfDfMKLFafQPt49EY28jnYC82Z2S7oMwLPUh144BL8v8YXzb4aCnFyi5nFC5h2kcrJfZh7+Pm/qvCqGw==} - engines: {node: '>=10.19.0'} + /@yarnpkg/core/3.2.0-rc.4: + resolution: {integrity: sha512-YXjRxtYyrDdfUE8BmLG35w1uYjMkid989Uv9nSp07jyJUJZbFHCa6tB7ROWHhyaVsB7Gkeuyf9Z22pToBPcV3w==} + engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} dependencies: '@arcanis/slice-ansi': 1.0.2 '@types/semver': 7.3.9 @@ -5664,14 +5625,13 @@ packages: '@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 + '@yarnpkg/parsers': 2.5.0-rc.3 + '@yarnpkg/pnp': 3.1.1-rc.5 + '@yarnpkg/shell': 3.2.0-rc.3 camelcase: 5.3.1 chalk: 3.0.0 - ci-info: 2.0.0 - clipanion: 2.6.2 + ci-info: 3.2.0 + clipanion: 3.1.0 cross-spawn: 7.0.3 diff: 4.0.2 globby: 11.0.4 @@ -5681,11 +5641,14 @@ packages: micromatch: 4.0.4 mkdirp: 0.5.5 p-limit: 2.3.0 + p-queue: 6.6.2 pluralize: 7.0.0 pretty-bytes: 5.6.0 semver: 7.3.5 stream-to-promise: 2.2.0 - tar-stream: 2.2.0 + strip-ansi: 6.0.1 + tar: 6.1.11 + tinylogic: 1.0.3 treeify: 1.1.0 tslib: 1.14.1 tunnel: 0.0.6 @@ -5727,6 +5690,14 @@ packages: tslib: 1.14.1 dev: false + /@yarnpkg/parsers/2.5.0-rc.3: + resolution: {integrity: sha512-DhIzJh0pOi7icgI6hFDKSsipIxaP/glpB9v/XziIqSyR9RVPKwAfTOk1jUwp2S+byzEtARLpmbx8G0u6YqKovA==} + engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} + dependencies: + js-yaml: 3.14.1 + tslib: 1.14.1 + dev: false + /@yarnpkg/pnp/2.3.2: resolution: {integrity: sha512-JdwHu1WBCISqJEhIwx6Hbpe8MYsYbkGMxoxolkDiAeJ9IGEe08mQcbX1YmUDV1ozSWlm9JZE90nMylcDsXRFpA==} engines: {node: '>=10.19.0'} @@ -5736,6 +5707,16 @@ packages: tslib: 1.14.1 dev: false + /@yarnpkg/pnp/3.1.1-rc.5: + resolution: {integrity: sha512-Dvlrt+Kzbkr2zN7MRuHM2jvZWq2cDZtguN1tXwy41C/A21a3P0Hko/ZQCaLxNQg72umTCnLqHmjHVHfuiS7vZQ==} + engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} + dependencies: + '@types/node': 13.13.52 + '@yarnpkg/fslib': 2.6.0 + resolve.exports: 1.1.0 + tslib: 1.14.1 + dev: false + /@yarnpkg/shell/2.4.1: resolution: {integrity: sha512-oNNJkH8ZI5uwu0dMkJf737yMSY1WXn9gp55DqSA5wAOhKvV5DJTXFETxkVgBQhO6Bow9tMGSpvowTMD/oAW/9g==} engines: {node: '>=10.19.0'} @@ -5751,6 +5732,22 @@ packages: tslib: 1.14.1 dev: false + /@yarnpkg/shell/3.2.0-rc.3: + resolution: {integrity: sha512-t1Cc+ARdp5qWNI3oXrGk4t+kL3LaeNDWjvcOPjGapfEYGYzOkpKTVZ1+m6eqoem7dO06HblkNx/xivMiMQR+Kw==} + engines: {node: '>=12 <14 || 14.2 - 14.9 || >14.10.0'} + hasBin: true + dependencies: + '@yarnpkg/fslib': 2.6.0 + '@yarnpkg/parsers': 2.5.0-rc.3 + chalk: 3.0.0 + clipanion: 3.1.0 + cross-spawn: 7.0.3 + fast-glob: 3.2.7 + micromatch: 4.0.4 + stream-buffers: 3.0.2 + tslib: 1.14.1 + dev: false + /@zkochan/cmd-shim/5.2.1: resolution: {integrity: sha512-oBPLTj/T1t488X1hVv99HbX7AATpApeue/OWWtD37PYxcJN4YBEpFyf86KlYb/51JrqyPe9Rv7z3/3T3p9AERg==} engines: {node: '>=10.13'} @@ -6410,7 +6407,7 @@ packages: dev: true /array-union/2.1.0: - resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} + resolution: {integrity: sha1-t5hCCtvrHego2ErNii4j0+/oXo0=} engines: {node: '>=8'} /array-uniq/1.0.3: @@ -6477,6 +6474,7 @@ packages: /async/3.2.2: resolution: {integrity: sha512-H0E+qZaDEfx/FY4t7iLRv1W2fFI6+pyCeTw1uN20AQPiwqwM6ojPxHxdLv4z8hi2DtnW9BOckSspLucW7pIE5g==} + dev: true /asynckit/0.4.0: resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} @@ -6656,11 +6654,6 @@ packages: write-file-atomic: 3.0.3 dev: false - /binjumper/0.1.4: - resolution: {integrity: sha1-SswFZoMnFL1lCK9tZmvZ5eIfx/g=} - engines: {node: '>=10.12.0'} - dev: false - /bl/4.1.0: resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==} dependencies: @@ -7038,6 +7031,14 @@ packages: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true + /chevrotain/9.1.0: + resolution: {integrity: sha512-A86/55so63HCfu0dgGg3j9u8uuuBOrSqly1OhBZxRu2x6sAKILLzfVjbGMw45kgier6lz45EzcjjWtTRgoT84Q==} + dependencies: + '@chevrotain/types': 9.1.0 + '@chevrotain/utils': 9.1.0 + regexp-to-ast: 0.5.0 + dev: false + /choices-separator/2.0.0: resolution: {integrity: sha1-kv0XYxgteQM/XFxR0Lo1LlVnxpY=} engines: {node: '>=0.10.0'} @@ -7057,6 +7058,7 @@ 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==} @@ -7115,7 +7117,6 @@ packages: resolution: {integrity: sha512-v025Hz+IDQ15FpOyK8p02h5bFznMu6rLFsJSyOPR+7WrbSnZ1Ek6pblPukV7K5tC/dsWfncQPIrJ4iUy2PXkbw==} dependencies: typanion: 3.7.1 - dev: true /cliui/6.0.0: resolution: {integrity: sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==} @@ -8624,12 +8625,6 @@ packages: es5-ext: 0.10.53 dev: true - /event-loop-spinner/2.1.0: - resolution: {integrity: sha1-dfUB1YUQXG1X8XQHOzmvG2s6FWc=} - dependencies: - tslib: 2.3.1 - dev: false - /eventemitter3/4.0.7: resolution: {integrity: sha1-Lem2j2Uo1WRO9cWVJqG0oHMGFp8=} dev: false @@ -11299,39 +11294,16 @@ packages: /lodash.clone/4.5.0: resolution: {integrity: sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y=} - - /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 + dev: true /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 @@ -11340,18 +11312,6 @@ 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: sha1-Bt4l302zJ6yTGYHRvbBn5a9o0FE=} - dev: false - /lodash.isinteger/4.0.4: resolution: {integrity: sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=} dev: true @@ -11374,14 +11334,7 @@ packages: /lodash.isundefined/3.0.1: resolution: {integrity: sha1-I+89lTVWUgOmbO/VuDD4SJEa+0g=} - - /lodash.keys/4.2.0: - resolution: {integrity: sha1-oIYCrBLk+4P5H8H7ejYKTZujUgU=} - dev: false - - /lodash.map/4.6.0: - resolution: {integrity: sha1-dx7Hg540c9nEzeKLGTlMNWL09tM=} - dev: false + dev: true /lodash.memoize/4.1.2: resolution: {integrity: sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=} @@ -11389,23 +11342,12 @@ packages: /lodash.merge/4.6.2: resolution: {integrity: sha1-VYqlO0O2YeGSWgr9+japoQhf5Xo=} + 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 @@ -11427,22 +11369,6 @@ 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==} @@ -11755,7 +11681,7 @@ packages: resolution: {integrity: sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==} /merge2/1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} + resolution: {integrity: sha1-Q2iJL4hekHRVpv19xVwMnUBJkK4=} engines: {node: '>= 8'} /methods/1.1.2: @@ -12368,11 +12294,6 @@ 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==} @@ -12820,7 +12741,7 @@ packages: dev: true /path-type/4.0.0: - resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} + resolution: {integrity: sha1-hO0BwKe6OAr+CdkKjBgNzZ0DBDs=} engines: {node: '>=8'} /peek-stream/1.1.3: @@ -13563,6 +13484,10 @@ packages: safe-regex: 1.1.0 dev: true + /regexp-to-ast/0.5.0: + resolution: {integrity: sha1-Vsc4Vr7l4f739zoA8Uc0UqtxKiQ=} + dev: false + /regexpp/3.2.0: resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} engines: {node: '>=8'} @@ -13808,7 +13733,6 @@ packages: /resolve.exports/1.1.0: resolution: {integrity: sha512-J1l+Zxxp4XK3LUDZ9m60LRJF/mAe4z6a4xyabPHk7pvK5t35dACV32iIjJDFeWZFfZlO29w6SZ67knR0tHzJtQ==} engines: {node: '>=10'} - dev: true /resolve/1.20.0: resolution: {integrity: sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==} @@ -14194,41 +14118,6 @@ packages: use: 3.1.1 dev: true - /snyk-config/4.0.0: - resolution: {integrity: sha1-IdRZ8ZCHmRJGzAen/7RQHc5vQVk=} - 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.1: resolution: {integrity: sha512-t8J0kG3csjA4g6FTbsMOWws+7R7vuRC8aQ/wy3/1OWmsgwA68zs/+cExQ0koSitUDXqhufF/YJr9wtNMZHw5Ew==} engines: {node: '>= 10'} @@ -14816,6 +14705,12 @@ packages: resolution: {integrity: sha1-jru/1tYpXxNwAD+7NxYq/loKUdE=} dev: false + /tinylogic/1.0.3: + resolution: {integrity: sha512-9CpbvSIqfBt1TN/GZYkVjRK0d0TRlo2jdx2cXB2vO5aFy1wx6KGdqfS0MeAcMuR0o5JAeK/zAZkgR0fCyOP21w==} + dependencies: + chevrotain: 9.1.0 + dev: false + /tmp-promise/3.0.3: resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} dependencies: @@ -15100,6 +14995,7 @@ packages: /tslib/2.3.1: resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} + dev: true /tslint-config-standard/9.0.0_typescript@4.5.2: resolution: {integrity: sha512-CAw9J743RnPMemQV/XQ4YyNreC+A1NItACfkm+cBedrOkz6CQfwlnbKn8anUXBfoa4Zo4tjAhblRbsMNcSLfSw==} @@ -15167,7 +15063,6 @@ packages: /typanion/3.7.1: resolution: {integrity: sha512-g2QDI/ZLpuEor9EnJ1b7s9S2QSJgNCPBw9ZCSkQdqXNjg5ZQs4mASgW/elVifSxISFwBeMaIAmMBP5luAOIKAw==} - dev: true /type-check/0.3.2: resolution: {integrity: sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=} @@ -15438,11 +15333,6 @@ 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: sha1-gNW1ztJxu5r2xEXyGhoExgbO++I=} - hasBin: true - dev: false - /v8-compile-cache/2.3.0: resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} dev: true