snyk-nodejs-lockfile-parser 2.2.0 → 2.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,6 +10,21 @@ const rewriteAliasesInNpmLockV1 = (lockfileContent) => {
10
10
  jsonLockfile.dependencies[aliasName] = cloneDeep(jsonLockfile.dependencies[pkg]);
11
11
  jsonLockfile.dependencies[aliasName].version = jsonLockfile.dependencies[pkg].version.substring(jsonLockfile.dependencies[pkg].version.lastIndexOf('@') + 1, jsonLockfile.dependencies[pkg].version.length);
12
12
  delete jsonLockfile.dependencies[pkg];
13
+ // Also transform possible references in transitive deps
14
+ // if any deps with requires have pkg in the list and with the same aliased value, we need to replace it with aliased value,
15
+ for (const topLevelPkg in jsonLockfile.dependencies) {
16
+ const requires = jsonLockfile.dependencies[topLevelPkg]
17
+ .requires;
18
+ for (const requiredDep in requires) {
19
+ if (requiredDep === pkg &&
20
+ requires[requiredDep] ===
21
+ `npm:${aliasName}@${jsonLockfile.dependencies[aliasName].version}`) {
22
+ jsonLockfile.dependencies[topLevelPkg].requires[aliasName] =
23
+ jsonLockfile.dependencies[aliasName].version;
24
+ delete jsonLockfile.dependencies[topLevelPkg].requires[requiredDep];
25
+ }
26
+ }
27
+ }
13
28
  }
14
29
  }
15
30
  return JSON.stringify(jsonLockfile);
@@ -1 +1 @@
1
- {"version":3,"file":"npm-lock-v1.js","sourceRoot":"","sources":["../../lib/aliasesPreprocessors/npm-lock-v1.ts"],"names":[],"mappings":";;;AAAA,8CAA8C;AACvC,MAAM,yBAAyB,GAAG,CAAC,eAAuB,EAAU,EAAE;IAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACjD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;QAC5C,IAAI,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9D,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAChE,CAAC,EACD,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CACxD,CAAC;YACF,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,SAAS,CAC9C,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAC/B,CAAC;YACF,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,GAAG,YAAY,CAAC,YAAY,CACtE,GAAG,CACJ,CAAC,OAAO,CAAC,SAAS,CACjB,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAC3D,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAC9C,CAAC;YACF,OAAO,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC,CAAC;AAtBW,QAAA,yBAAyB,6BAsBpC"}
1
+ {"version":3,"file":"npm-lock-v1.js","sourceRoot":"","sources":["../../lib/aliasesPreprocessors/npm-lock-v1.ts"],"names":[],"mappings":";;;AAAA,8CAA8C;AACvC,MAAM,yBAAyB,GAAG,CAAC,eAAuB,EAAU,EAAE;IAC3E,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IACjD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;QAC5C,IAAI,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAC9D,MAAM,SAAS,GAAG,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAChE,CAAC,EACD,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CACxD,CAAC;YACF,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,GAAG,SAAS,CAC9C,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAC/B,CAAC;YACF,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,GAAG,YAAY,CAAC,YAAY,CACtE,GAAG,CACJ,CAAC,OAAO,CAAC,SAAS,CACjB,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAC3D,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,CAC9C,CAAC;YACF,OAAO,YAAY,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAEtC,wDAAwD;YACxD,4HAA4H;YAE5H,KAAK,MAAM,WAAW,IAAI,YAAY,CAAC,YAAY,EAAE,CAAC;gBACpD,MAAM,QAAQ,GAAG,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC;qBACpD,QAAkC,CAAC;gBACtC,KAAK,MAAM,WAAW,IAAI,QAAQ,EAAE,CAAC;oBACnC,IACE,WAAW,KAAK,GAAG;wBACnB,QAAQ,CAAC,WAAW,CAAC;4BACnB,OAAO,SAAS,IAAI,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EACpE,CAAC;wBACD,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC;4BACxD,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC;wBAC/C,OAAO,YAAY,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;oBACtE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;AACtC,CAAC,CAAC;AAzCW,QAAA,yBAAyB,6BAyCpC"}
@@ -4,6 +4,8 @@ exports.rewriteAliasesInNpmLockV2 = void 0;
4
4
  const rewriteAliasesInNpmLockV2 = (lockfilePackages) => {
5
5
  // 1. Rewrite top level "" packages in "".dependencies
6
6
  const rootPkg = lockfilePackages[''];
7
+ const mutatedRootPkg = [];
8
+ const aliasedPackages = [];
7
9
  const lockFileToReturn = lockfilePackages;
8
10
  if (rootPkg && rootPkg.dependencies) {
9
11
  const dependencies = rootPkg.dependencies;
@@ -12,6 +14,8 @@ const rewriteAliasesInNpmLockV2 = (lockfilePackages) => {
12
14
  const aliasName = rootPkg.dependencies[pkgName].substring(4, rootPkg.dependencies[pkgName].lastIndexOf('@'));
13
15
  const aliasVersion = rootPkg.dependencies[pkgName].substring(rootPkg.dependencies[pkgName].lastIndexOf('@') + 1, rootPkg.dependencies[pkgName].length);
14
16
  dependencies[aliasName] = aliasVersion;
17
+ mutatedRootPkg.push(pkgName);
18
+ aliasedPackages.push(pkgName);
15
19
  }
16
20
  else {
17
21
  dependencies[pkgName] = rootPkg.dependencies[pkgName];
@@ -21,11 +25,28 @@ const rewriteAliasesInNpmLockV2 = (lockfilePackages) => {
21
25
  }
22
26
  // 2. Rewrite alias packages
23
27
  for (const pkgName in lockfilePackages) {
24
- if (pkgName != '' && lockfilePackages[pkgName].name) {
28
+ if (pkgName != '' &&
29
+ lockfilePackages[pkgName].name &&
30
+ mutatedRootPkg.includes(pkgName.replace('node_modules/', ''))) {
25
31
  lockFileToReturn[`node_modules/${lockfilePackages[pkgName].name}`] =
26
32
  lockfilePackages[pkgName];
27
33
  delete lockFileToReturn[pkgName];
28
34
  }
35
+ // rewrite possible references in transitive deps
36
+ if (pkgName != '' &&
37
+ lockfilePackages[pkgName] &&
38
+ lockfilePackages[pkgName].dependencies) {
39
+ for (const depName in lockfilePackages[pkgName].dependencies) {
40
+ if (aliasedPackages.includes(depName) &&
41
+ lockfilePackages[pkgName].dependencies[depName].startsWith('npm:')) {
42
+ const aliasName = lockfilePackages[pkgName].dependencies[depName].substring(4, lockfilePackages[pkgName].dependencies[depName].lastIndexOf('@'));
43
+ const aliasVersion = lockfilePackages[pkgName].dependencies[depName].substring(lockfilePackages[pkgName].dependencies[depName].lastIndexOf('@') +
44
+ 1, lockfilePackages[pkgName].dependencies[depName].length);
45
+ lockFileToReturn[pkgName].dependencies[aliasName] = aliasVersion;
46
+ delete lockFileToReturn[pkgName].dependencies[depName];
47
+ }
48
+ }
49
+ }
29
50
  }
30
51
  return lockFileToReturn;
31
52
  };
@@ -1 +1 @@
1
- {"version":3,"file":"npm-lock-v2.js","sourceRoot":"","sources":["../../lib/aliasesPreprocessors/npm-lock-v2.ts"],"names":[],"mappings":";;;AAEO,MAAM,yBAAyB,GAAG,CACvC,gBAA4C,EAChB,EAAE;IAC9B,sDAAsD;IACtD,MAAM,OAAO,GAAG,gBAAgB,CAAC,EAAE,CAAC,CAAC;IACrC,MAAM,gBAAgB,GAA+B,gBAAgB,CAAC;IACtE,IAAI,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;QACpC,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;QAC1C,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YAC3C,IAAI,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBACrD,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,CACvD,CAAC,EACD,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,CAC/C,CAAC;gBACF,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,CAC1D,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAClD,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,MAAM,CACrC,CAAC;gBACF,YAAY,CAAC,SAAS,CAAC,GAAG,YAAY,CAAC;YACzC,CAAC;iBAAM,CAAC;gBACN,YAAY,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;QACD,gBAAgB,CAAC,EAAE,CAAC,CAAC,YAAY,GAAG,YAAY,CAAC;IACnD,CAAC;IAED,4BAA4B;IAC5B,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;QACvC,IAAI,OAAO,IAAI,EAAE,IAAI,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YACpD,gBAAgB,CAAC,gBAAgB,gBAAgB,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gBAChE,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAC5B,OAAO,gBAAgB,CAAC,OAAO,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,OAAO,gBAAgB,CAAC;AAC1B,CAAC,CAAC;AApCW,QAAA,yBAAyB,6BAoCpC"}
1
+ {"version":3,"file":"npm-lock-v2.js","sourceRoot":"","sources":["../../lib/aliasesPreprocessors/npm-lock-v2.ts"],"names":[],"mappings":"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"}
@@ -3,7 +3,29 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.rewriteAliasesInYarnLockV1 = void 0;
4
4
  const rewriteAliasesInYarnLockV1 = (lockfileContent) => {
5
5
  const regex = /^(\s*)"(.+?@npm:)([^"]+)":/gm;
6
- const lockfilePreprocessed = lockfileContent.replace(regex, '$1"$3":');
6
+ const matches = lockfileContent.matchAll(regex);
7
+ // Step 1: Replace aliased top level deps
8
+ let lockfilePreprocessed = lockfileContent.replace(regex, '$1"$3":');
9
+ // Step 2: Replace aliased top level deps possible references in transitive deps
10
+ for (const match of matches) {
11
+ const localMatch = match[0]
12
+ .replace(/\s/g, '')
13
+ .replace(/"/, '')
14
+ .replace(/@npm:/, ' "npm:')
15
+ .replace(/:$/, '');
16
+ let replacementValue = match[0]
17
+ .replace(/\s/g, '')
18
+ .replace(/"/g, '')
19
+ .replace(/.+?@npm:/, '')
20
+ .replace(/@(?!.*@)/, ' "')
21
+ .replace(/:/g, '') + '"';
22
+ if (replacementValue.startsWith('@')) {
23
+ replacementValue = replacementValue
24
+ .replace(/^@/, '"@')
25
+ .replace(/ /, '" ');
26
+ }
27
+ lockfilePreprocessed = lockfilePreprocessed.replace(localMatch, replacementValue);
28
+ }
7
29
  return lockfilePreprocessed;
8
30
  };
9
31
  exports.rewriteAliasesInYarnLockV1 = rewriteAliasesInYarnLockV1;
@@ -1 +1 @@
1
- {"version":3,"file":"yarn-lock-v1.js","sourceRoot":"","sources":["../../lib/aliasesPreprocessors/yarn-lock-v1.ts"],"names":[],"mappings":";;;AAAO,MAAM,0BAA0B,GAAG,CAAC,eAAuB,EAAU,EAAE;IAC5E,MAAM,KAAK,GAAG,8BAA8B,CAAC;IAE7C,MAAM,oBAAoB,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IAEvE,OAAO,oBAAoB,CAAC;AAC9B,CAAC,CAAC;AANW,QAAA,0BAA0B,8BAMrC"}
1
+ {"version":3,"file":"yarn-lock-v1.js","sourceRoot":"","sources":["../../lib/aliasesPreprocessors/yarn-lock-v1.ts"],"names":[],"mappings":";;;AAAO,MAAM,0BAA0B,GAAG,CAAC,eAAuB,EAAU,EAAE;IAC5E,MAAM,KAAK,GAAG,8BAA8B,CAAC;IAC7C,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEhD,yCAAyC;IACzC,IAAI,oBAAoB,GAAG,eAAe,CAAC,OAAO,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;IACrE,gFAAgF;IAChF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,UAAU,GAAG,KAAK,CAAC,CAAC,CAAC;aACxB,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;aAClB,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;aAChB,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC;aAC1B,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrB,IAAI,gBAAgB,GAClB,KAAK,CAAC,CAAC,CAAC;aACL,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;aAClB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;aACjB,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;aACvB,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC;aACzB,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC;QAC7B,IAAI,gBAAgB,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACrC,gBAAgB,GAAG,gBAAgB;iBAChC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC;iBACnB,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxB,CAAC;QACD,oBAAoB,GAAG,oBAAoB,CAAC,OAAO,CACjD,UAAU,EACV,gBAAgB,CACjB,CAAC;IACJ,CAAC;IAED,OAAO,oBAAoB,CAAC;AAC9B,CAAC,CAAC;AAhCW,QAAA,0BAA0B,8BAgCrC"}
@@ -1,2 +1,2 @@
1
1
  import { NormalisedPkgs } from '../dep-graph-builders/types';
2
- export declare const rewriteAliasesInYarnLockV2: (lockfileNormalisedPkgs: NormalisedPkgs) => NormalisedPkgs;
2
+ export declare const rewriteAliasesInYarnLockV2: (pkgJson: string, lockfileNormalisedPkgs: NormalisedPkgs) => NormalisedPkgs;
@@ -2,15 +2,24 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.rewriteAliasesInYarnLockV2 = void 0;
4
4
  const cloneDeep = require("lodash.clonedeep");
5
- const rewriteAliasesInYarnLockV2 = (lockfileNormalisedPkgs) => {
5
+ const rewriteAliasesInYarnLockV2 = (pkgJson, lockfileNormalisedPkgs) => {
6
6
  var _a;
7
7
  const lockfileNormalisedPkgsPreprocessed = cloneDeep(lockfileNormalisedPkgs);
8
+ const topLevelPkgs = JSON.parse(pkgJson).dependencies;
9
+ const topLevelAliasedPkgs = Object.entries(topLevelPkgs)
10
+ .filter((entry) => {
11
+ return entry[1].startsWith('npm:');
12
+ })
13
+ .map((entry) => {
14
+ return `${entry[0]}@${entry[1]}`;
15
+ });
8
16
  for (const pkg in lockfileNormalisedPkgsPreprocessed) {
9
17
  const pkgSplit = pkg.substring(0, pkg.lastIndexOf('@'));
10
18
  const resolutionSplit = (_a = lockfileNormalisedPkgsPreprocessed[pkg].resolution) === null || _a === void 0 ? void 0 : _a.split(/@npm[:%3A]/)[0];
11
19
  if (!pkg.startsWith('v2@workspace') &&
12
20
  resolutionSplit &&
13
- pkgSplit != resolutionSplit) {
21
+ pkgSplit != resolutionSplit &&
22
+ topLevelAliasedPkgs.includes(pkg)) {
14
23
  const newPkg = lockfileNormalisedPkgsPreprocessed[pkg];
15
24
  delete lockfileNormalisedPkgsPreprocessed[pkg];
16
25
  const newKey = pkg.replace(pkgSplit, resolutionSplit);
@@ -30,6 +39,24 @@ const rewriteAliasesInYarnLockV2 = (lockfileNormalisedPkgs) => {
30
39
  }
31
40
  lockfileNormalisedPkgsPreprocessed[pkg].dependencies = newDependencies;
32
41
  }
42
+ else if (
43
+ // Replace aliased top level deps possible references in transitive deps
44
+ lockfileNormalisedPkgsPreprocessed[pkg] &&
45
+ lockfileNormalisedPkgsPreprocessed[pkg].dependencies) {
46
+ const newDependencies = {};
47
+ for (const key in lockfileNormalisedPkgsPreprocessed[pkg].dependencies) {
48
+ const value = lockfileNormalisedPkgsPreprocessed[pkg].dependencies[key];
49
+ if (value.includes('@') &&
50
+ topLevelAliasedPkgs.includes(`${key}@${value}`)) {
51
+ newDependencies[value.substring(4, value.lastIndexOf('@'))] =
52
+ value.substring(value.lastIndexOf('@') + 1, value.length);
53
+ }
54
+ else {
55
+ newDependencies[key] = value;
56
+ }
57
+ }
58
+ lockfileNormalisedPkgsPreprocessed[pkg].dependencies = newDependencies;
59
+ }
33
60
  }
34
61
  return lockfileNormalisedPkgsPreprocessed;
35
62
  };
@@ -1 +1 @@
1
- {"version":3,"file":"yarn-lock-v2.js","sourceRoot":"","sources":["../../lib/aliasesPreprocessors/yarn-lock-v2.ts"],"names":[],"mappings":";;;AACA,8CAA8C;AACvC,MAAM,0BAA0B,GAAG,CACxC,sBAAsC,EACtB,EAAE;;IAClB,MAAM,kCAAkC,GAAmB,SAAS,CAClE,sBAAsB,CACvB,CAAC;IACF,KAAK,MAAM,GAAG,IAAI,kCAAkC,EAAE,CAAC;QACrD,MAAM,QAAQ,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;QACxD,MAAM,eAAe,GACnB,MAAA,kCAAkC,CAAC,GAAG,CAAC,CAAC,UAAU,0CAAE,KAAK,CACvD,YAAY,EACZ,CAAC,CAAC,CAAC;QAEP,IACE,CAAC,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC;YAC/B,eAAe;YACf,QAAQ,IAAI,eAAe,EAC3B,CAAC;YACD,MAAM,MAAM,GAAG,kCAAkC,CAAC,GAAG,CAAC,CAAC;YACvD,OAAO,kCAAkC,CAAC,GAAG,CAAC,CAAC;YAC/C,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;YACtD,kCAAkC,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC;QACtD,CAAC;QACD,IAAI,GAAG,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;YACnC,MAAM,eAAe,GAA2B,EAAE,CAAC;YACnD,KAAK,MAAM,GAAG,IAAI,kCAAkC,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,CAAC;gBACvE,MAAM,KAAK,GAAG,kCAAkC,CAAC,GAAG,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;gBACxE,IAAI,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;oBAC7B,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC;wBACzD,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;gBAC9D,CAAC;qBAAM,CAAC;oBACN,eAAe,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAC/B,CAAC;YACH,CAAC;YACD,kCAAkC,CAAC,GAAG,CAAC,CAAC,YAAY,GAAG,eAAe,CAAC;QACzE,CAAC;IACH,CAAC;IAED,OAAO,kCAAkC,CAAC;AAC5C,CAAC,CAAC;AAvCW,QAAA,0BAA0B,8BAuCrC"}
1
+ {"version":3,"file":"yarn-lock-v2.js","sourceRoot":"","sources":["../../lib/aliasesPreprocessors/yarn-lock-v2.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ const yarn_lock_v2_1 = require("../../aliasesPreprocessors/yarn-lock-v2");
9
9
  const parseYarnLockV2Project = async (pkgJsonContent, yarnLockContent, options, workspaceArgs) => {
10
10
  const { includeDevDeps, includeOptionalDeps, strictOutOfSync, pruneWithinTopLevelDeps, honorAliases, } = options;
11
11
  const pkgs = honorAliases
12
- ? (0, yarn_lock_v2_1.rewriteAliasesInYarnLockV2)((0, extract_yarnlock_v2_pkgs_1.extractPkgsFromYarnLockV2)(yarnLockContent))
12
+ ? (0, yarn_lock_v2_1.rewriteAliasesInYarnLockV2)(pkgJsonContent, (0, extract_yarnlock_v2_pkgs_1.extractPkgsFromYarnLockV2)(yarnLockContent))
13
13
  : (0, extract_yarnlock_v2_pkgs_1.extractPkgsFromYarnLockV2)(yarnLockContent);
14
14
  const pkgJson = (0, util_1.parsePkgJson)(honorAliases ? (0, pkgJson_1.rewriteAliasesPkgJson)(pkgJsonContent) : pkgJsonContent);
15
15
  const depgraph = await (0, build_depgraph_simple_1.buildDepGraphYarnLockV2Simple)(pkgs, pkgJson, {
@@ -1 +1 @@
1
- {"version":3,"file":"simple.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v2/simple.ts"],"names":[],"mappings":";;;AAAA,yEAAuE;AACvE,kCAAuC;AAMvC,mEAAwE;AAExE,gEAA2E;AAC3E,0EAAqF;AAE9E,MAAM,sBAAsB,GAAG,KAAK,EACzC,cAAsB,EACtB,eAAuB,EACvB,OAAsC,EACtC,aAAuC,EACpB,EAAE;IACrB,MAAM,EACJ,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,YAAY,GACb,GAAG,OAAO,CAAC;IAEZ,MAAM,IAAI,GAAG,YAAY;QACvB,CAAC,CAAC,IAAA,yCAA0B,EAAC,IAAA,oDAAyB,EAAC,eAAe,CAAC,CAAC;QACxE,CAAC,CAAC,IAAA,oDAAyB,EAAC,eAAe,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAoB,IAAA,mBAAY,EAC3C,YAAY,CAAC,CAAC,CAAC,IAAA,+BAAqB,EAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CACtE,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,qDAA6B,EAClD,IAAI,EACJ,OAAO,EACP;QACE,cAAc;QACd,eAAe;QACf,mBAAmB;QACnB,uBAAuB;KACxB,EACD,aAAa,CACd,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAnCW,QAAA,sBAAsB,0BAmCjC"}
1
+ {"version":3,"file":"simple.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v2/simple.ts"],"names":[],"mappings":";;;AAAA,yEAAuE;AACvE,kCAAuC;AAMvC,mEAAwE;AAExE,gEAA2E;AAC3E,0EAAqF;AAE9E,MAAM,sBAAsB,GAAG,KAAK,EACzC,cAAsB,EACtB,eAAuB,EACvB,OAAsC,EACtC,aAAuC,EACpB,EAAE;IACrB,MAAM,EACJ,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,uBAAuB,EACvB,YAAY,GACb,GAAG,OAAO,CAAC;IAEZ,MAAM,IAAI,GAAG,YAAY;QACvB,CAAC,CAAC,IAAA,yCAA0B,EACxB,cAAc,EACd,IAAA,oDAAyB,EAAC,eAAe,CAAC,CAC3C;QACH,CAAC,CAAC,IAAA,oDAAyB,EAAC,eAAe,CAAC,CAAC;IAE/C,MAAM,OAAO,GAAoB,IAAA,mBAAY,EAC3C,YAAY,CAAC,CAAC,CAAC,IAAA,+BAAqB,EAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CACtE,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,qDAA6B,EAClD,IAAI,EACJ,OAAO,EACP;QACE,cAAc;QACd,eAAe;QACf,mBAAmB;QACnB,uBAAuB;KACxB,EACD,aAAa,CACd,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAtCW,QAAA,sBAAsB,0BAsCjC"}
package/package.json CHANGED
@@ -67,5 +67,5 @@
67
67
  "typescript": "^5.4.5"
68
68
  },
69
69
  "packageManager": "yarn@2.4.1",
70
- "version": "2.2.0"
70
+ "version": "2.2.2"
71
71
  }