diff --git a/packages/nx/src/plugins/js/lock-file/__fixtures__/pruning/.modules.yaml.ts b/packages/nx/src/plugins/js/lock-file/__fixtures__/pruning/.modules.yaml.ts index 8506957c73..628ef5089a 100644 --- a/packages/nx/src/plugins/js/lock-file/__fixtures__/pruning/.modules.yaml.ts +++ b/packages/nx/src/plugins/js/lock-file/__fixtures__/pruning/.modules.yaml.ts @@ -249,7 +249,7 @@ hoistedDependencies: to-regex-range: private /tsconfig-paths/4.1.2: tsconfig-paths: private - /tslib/2.4.1: + /tslib/2.5.0: tslib: private /universalify/2.0.0: universalify: private diff --git a/packages/nx/src/plugins/js/lock-file/__fixtures__/pruning/devkit-yargs/pnpm-lock.yaml.ts b/packages/nx/src/plugins/js/lock-file/__fixtures__/pruning/devkit-yargs/pnpm-lock.yaml.ts index 506203a59f..84a11ff940 100644 --- a/packages/nx/src/plugins/js/lock-file/__fixtures__/pruning/devkit-yargs/pnpm-lock.yaml.ts +++ b/packages/nx/src/plugins/js/lock-file/__fixtures__/pruning/devkit-yargs/pnpm-lock.yaml.ts @@ -55,7 +55,7 @@ packages: ignore: 5.2.4 nx: 15.4.5 semver: 7.3.4 - tslib: 2.4.1 + tslib: 2.5.0 transitivePeerDependencies: - typescript dev: false @@ -98,7 +98,7 @@ packages: engines: {node: '>=14.15.0'} dependencies: js-yaml: 3.14.1 - tslib: 2.4.1 + tslib: 2.5.0 dev: false /@zkochan/js-yaml/0.0.6: @@ -698,7 +698,7 @@ packages: tar-stream: 2.2.0 tmp: 0.2.1 tsconfig-paths: 4.1.2 - tslib: 2.4.1 + tslib: 2.5.0 v8-compile-cache: 2.3.0 yargs: 17.6.2 yargs-parser: 21.1.1 @@ -900,8 +900,8 @@ packages: strip-bom: 3.0.0 dev: false - /tslib/2.4.1: - resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + /tslib/2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} dev: false /typescript/4.8.4: diff --git a/packages/nx/src/plugins/js/lock-file/__fixtures__/pruning/pnpm-lock.yaml.ts b/packages/nx/src/plugins/js/lock-file/__fixtures__/pruning/pnpm-lock.yaml.ts index 85b0f8630d..928b254c2d 100644 --- a/packages/nx/src/plugins/js/lock-file/__fixtures__/pruning/pnpm-lock.yaml.ts +++ b/packages/nx/src/plugins/js/lock-file/__fixtures__/pruning/pnpm-lock.yaml.ts @@ -57,7 +57,7 @@ packages: ignore: 5.2.4 nx: 15.4.5 semver: 7.3.4 - tslib: 2.4.1 + tslib: 2.5.0 transitivePeerDependencies: - typescript dev: true @@ -73,7 +73,7 @@ packages: '@nrwl/devkit': 15.4.5_nx@15.4.5+typescript@4.8.4 '@phenomnomnominal/tsquery': 4.1.1_typescript@4.8.4 tmp: 0.2.1 - tslib: 2.4.1 + tslib: 2.5.0 transitivePeerDependencies: - nx - typescript @@ -121,7 +121,7 @@ packages: rxjs: 6.6.7 semver: 7.3.4 tmp: 0.2.1 - tslib: 2.4.1 + tslib: 2.5.0 yargs: 17.6.2 yargs-parser: 21.1.1 transitivePeerDependencies: @@ -159,7 +159,7 @@ packages: engines: {node: '>=14.15.0'} dependencies: js-yaml: 3.14.1 - tslib: 2.4.1 + tslib: 2.5.0 dev: true /@zkochan/js-yaml/0.0.6: @@ -759,7 +759,7 @@ packages: tar-stream: 2.2.0 tmp: 0.2.1 tsconfig-paths: 4.1.2 - tslib: 2.4.1 + tslib: 2.5.0 v8-compile-cache: 2.3.0 yargs: 17.6.2 yargs-parser: 21.1.1 @@ -978,8 +978,8 @@ packages: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib/2.4.1: - resolution: {integrity: sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==} + /tslib/2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} dev: true /typescript/4.8.4: diff --git a/packages/nx/src/plugins/js/lock-file/pnpm-parser.spec.ts b/packages/nx/src/plugins/js/lock-file/pnpm-parser.spec.ts index 2d942210a9..5b341239bb 100644 --- a/packages/nx/src/plugins/js/lock-file/pnpm-parser.spec.ts +++ b/packages/nx/src/plugins/js/lock-file/pnpm-parser.spec.ts @@ -654,7 +654,6 @@ describe('pnpm LockFile utility', () => { 'node_modules/cliui/package.json': '{"version": "7.0.4"}', 'node_modules/js-yaml/package.json': '{"version": "4.1.0"}', 'node_modules/minimatch/package.json': '{"version": "3.0.5"}', - 'node_modules/tslib/package.json': '{"version": "2.4.1"}', 'node_modules/.modules.yaml': require(joinPathFragments( __dirname, '__fixtures__/pruning/.modules.yaml' @@ -709,6 +708,20 @@ describe('pnpm LockFile utility', () => { graph = builder.getUpdatedProjectGraph(); }); + it('should parse hoisted versions', () => { + expect(graph.externalNodes['npm:tslib']).toMatchInlineSnapshot(` + { + "data": { + "hash": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "packageName": "tslib", + "version": "2.5.0", + }, + "name": "npm:tslib", + "type": "npm", + } + `); + }); + it('should prune single package', () => { const typescriptPackageJson = require(joinPathFragments( __dirname, @@ -794,6 +807,20 @@ describe('pnpm LockFile utility', () => { graph = builder.getUpdatedProjectGraph(); }); + it('should parse hoisted versions', () => { + expect(graph.externalNodes['npm:tslib']).toMatchInlineSnapshot(` + { + "data": { + "hash": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "packageName": "tslib", + "version": "2.5.0", + }, + "name": "npm:tslib", + "type": "npm", + } + `); + }); + it('should prune single package', () => { const typescriptPackageJson = require(joinPathFragments( __dirname, @@ -879,6 +906,20 @@ describe('pnpm LockFile utility', () => { graph = builder.getUpdatedProjectGraph(); }); + it('should parse hoisted versions', () => { + expect(graph.externalNodes['npm:tslib']).toMatchInlineSnapshot(` + { + "data": { + "hash": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==", + "packageName": "tslib", + "version": "2.5.0", + }, + "name": "npm:tslib", + "type": "npm", + } + `); + }); + it('should prune single package', () => { const typescriptPackageJson = require(joinPathFragments( __dirname, diff --git a/packages/nx/src/plugins/js/lock-file/pnpm-parser.ts b/packages/nx/src/plugins/js/lock-file/pnpm-parser.ts index 2238ea25d1..1983f53ea9 100644 --- a/packages/nx/src/plugins/js/lock-file/pnpm-parser.ts +++ b/packages/nx/src/plugins/js/lock-file/pnpm-parser.ts @@ -338,7 +338,7 @@ function getHoistedVersion( if (!version) { const key = Object.keys(hoistedDependencies).find((k) => - k.startsWith(isV5 ? `/${packageName}/` : `/${packageName}@`) + k.startsWith(`/${packageName}/`) ); if (key) { version = parseBaseVersion(getVersion(key.slice(1), packageName), isV5);