snyk-nodejs-lockfile-parser 1.42.0 → 1.43.0

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.
Files changed (21) hide show
  1. package/dist/dep-graph-builders/index.js.map +1 -1
  2. package/dist/dep-graph-builders/util.d.ts +2 -2
  3. package/dist/dep-graph-builders/util.js +9 -5
  4. package/dist/dep-graph-builders/util.js.map +1 -1
  5. package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-simple-pruned.js +5 -5
  6. package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-simple-pruned.js.map +1 -1
  7. package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-simple.js +5 -5
  8. package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-simple.js.map +1 -1
  9. package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-workspace-package-pruned.js +5 -5
  10. package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-workspace-package-pruned.js.map +1 -1
  11. package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-workspace-package.js +5 -5
  12. package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-workspace-package.js.map +1 -1
  13. package/dist/dep-graph-builders/yarn-lock-v1/extract-yarnlock-v1-pkgs.d.ts +2 -2
  14. package/dist/dep-graph-builders/yarn-lock-v1/extract-yarnlock-v1-pkgs.js +3 -113
  15. package/dist/dep-graph-builders/yarn-lock-v1/extract-yarnlock-v1-pkgs.js.map +1 -1
  16. package/dist/dep-graph-builders/yarn-lock-v1/simple.js +3 -3
  17. package/dist/dep-graph-builders/yarn-lock-v1/simple.js.map +1 -1
  18. package/dist/dep-graph-builders/yarn-lock-v1/types.d.ts +2 -0
  19. package/dist/dep-graph-builders/yarn-lock-v1/workspaces.js +3 -3
  20. package/dist/dep-graph-builders/yarn-lock-v1/workspaces.js.map +1 -1
  21. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/dep-graph-builders/index.ts"],"names":[],"mappings":";;;AAAA,iDAQwB;AAEtB,uGATA,qCAAsB,OASA;AAKtB,gHAbA,8CAA+B,OAaA;AAH/B,0HATA,wDAAyC,OASA;AACzC,8GATA,4CAA6B,OASA;AAC7B,6HATA,2DAA4C,OASA;AAH5C,iHALA,+CAAgC,OAKA;AAKhC,0GATA,wCAAyB,OASA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/dep-graph-builders/index.ts"],"names":[],"mappings":";;;AAAA,iDAQwB;AAGtB,uGAVA,qCAAsB,OAUA;AAKtB,gHAdA,8CAA+B,OAcA;AAH/B,0HAVA,wDAAyC,OAUA;AACzC,8GAVA,4CAA6B,OAUA;AAC7B,6HAVA,2DAA4C,OAUA;AAH5C,iHANA,+CAAgC,OAMA;AAKhC,0GAVA,wCAAyB,OAUA"}
@@ -33,8 +33,8 @@ export declare function parsePkgJson(pkgJsonContent: string): PackageJsonBase;
33
33
  export declare const getChildNode: (name: string, depInfo: {
34
34
  version: string;
35
35
  isDev: boolean;
36
- }, pkgs: YarnLockPackages, strictOutOfSync: boolean) => PkgNode;
36
+ }, pkgs: YarnLockPackages, strictOutOfSync: boolean, includeOptionalDeps: boolean) => PkgNode;
37
37
  export declare const getChildNodeWorkspace: (name: string, depInfo: {
38
38
  version: string;
39
39
  isDev: boolean;
40
- }, workspacePkgNameToVersion: Record<string, string>, pkgs: YarnLockPackages, strictOutOfSync: boolean) => PkgNode;
40
+ }, workspacePkgNameToVersion: Record<string, string>, pkgs: YarnLockPackages, strictOutOfSync: boolean, includeOptionalDeps: boolean) => PkgNode;
@@ -46,10 +46,10 @@ function parsePkgJson(pkgJsonContent) {
46
46
  }
47
47
  }
48
48
  exports.parsePkgJson = parsePkgJson;
49
- const getChildNode = (name, depInfo, pkgs, strictOutOfSync) => {
49
+ const getChildNode = (name, depInfo, pkgs, strictOutOfSync, includeOptionalDeps) => {
50
50
  const childNodeKey = `${name}@${depInfo.version}`;
51
51
  let childNode;
52
- if (!pkgs.hasOwnProperty(childNodeKey)) {
52
+ if (!pkgs[childNodeKey]) {
53
53
  if (strictOutOfSync && !/^file:/.test(depInfo.version)) {
54
54
  throw new errors_2.OutOfSyncError(childNodeKey, parsers_1.LockfileType.yarn);
55
55
  }
@@ -66,18 +66,22 @@ const getChildNode = (name, depInfo, pkgs, strictOutOfSync) => {
66
66
  }
67
67
  else {
68
68
  const depData = pkgs[childNodeKey];
69
+ const dependencies = exports.getGraphDependencies(depData.dependencies || {}, depInfo.isDev);
70
+ const optionalDependencies = includeOptionalDeps
71
+ ? exports.getGraphDependencies(depData.optionalDependencies || {}, depInfo.isDev)
72
+ : {};
69
73
  childNode = {
70
74
  id: `${name}@${depData.version}`,
71
75
  name: name,
72
76
  version: depData.version,
73
- dependencies: exports.getGraphDependencies(depData.dependencies || {}, depInfo.isDev),
77
+ dependencies: Object.assign(Object.assign({}, dependencies), optionalDependencies),
74
78
  isDev: depInfo.isDev,
75
79
  };
76
80
  }
77
81
  return childNode;
78
82
  };
79
83
  exports.getChildNode = getChildNode;
80
- const getChildNodeWorkspace = (name, depInfo, workspacePkgNameToVersion, pkgs, strictOutOfSync) => {
84
+ const getChildNodeWorkspace = (name, depInfo, workspacePkgNameToVersion, pkgs, strictOutOfSync, includeOptionalDeps) => {
81
85
  let childNode;
82
86
  if (workspacePkgNameToVersion[name]) {
83
87
  const version = workspacePkgNameToVersion[name];
@@ -95,7 +99,7 @@ const getChildNodeWorkspace = (name, depInfo, workspacePkgNameToVersion, pkgs, s
95
99
  };
96
100
  }
97
101
  else {
98
- childNode = exports.getChildNode(name, depInfo, pkgs, strictOutOfSync);
102
+ childNode = exports.getChildNode(name, depInfo, pkgs, strictOutOfSync, includeOptionalDeps);
99
103
  }
100
104
  return childNode;
101
105
  };
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../lib/dep-graph-builders/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../lib/dep-graph-builders/util.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ var Color;
9
9
  Color[Color["BLACK"] = 1] = "BLACK";
10
10
  })(Color || (Color = {}));
11
11
  const buildDepGraphYarnLockV1SimpleCyclesPruned = (extractedYarnLockV1Pkgs, pkgJson, options) => {
12
- const { includeDevDeps, strictOutOfSync } = options;
12
+ const { includeDevDeps, strictOutOfSync, includeOptionalDeps } = options;
13
13
  const depGraphBuilder = new dep_graph_1.DepGraphBuilder({ name: 'yarn' }, { name: pkgJson.name, version: pkgJson.version });
14
14
  const colorMap = {};
15
15
  const topLevelDeps = util_1.getTopLevelDeps(pkgJson, { includeDevDeps });
@@ -20,7 +20,7 @@ const buildDepGraphYarnLockV1SimpleCyclesPruned = (extractedYarnLockV1Pkgs, pkgJ
20
20
  dependencies: topLevelDeps,
21
21
  isDev: false,
22
22
  };
23
- dfsVisit(depGraphBuilder, rootNode, colorMap, extractedYarnLockV1Pkgs, strictOutOfSync);
23
+ dfsVisit(depGraphBuilder, rootNode, colorMap, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
24
24
  return depGraphBuilder.build();
25
25
  };
26
26
  exports.buildDepGraphYarnLockV1SimpleCyclesPruned = buildDepGraphYarnLockV1SimpleCyclesPruned;
@@ -33,13 +33,13 @@ exports.buildDepGraphYarnLockV1SimpleCyclesPruned = buildDepGraphYarnLockV1Simpl
33
33
  * - When first exploring an edge, if it points to a GRAY node, a cycle is found and the GRAY node is pruned.
34
34
  * - A pruned node has id `${originalId}|1`
35
35
  */
36
- const dfsVisit = (depGraphBuilder, node, colorMap, extractedYarnLockV1Pkgs, strictOutOfSync) => {
36
+ const dfsVisit = (depGraphBuilder, node, colorMap, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps) => {
37
37
  colorMap[node.id] = Color.GRAY;
38
38
  for (const [name, depInfo] of Object.entries(node.dependencies || {})) {
39
- const childNode = util_1.getChildNode(name, depInfo, extractedYarnLockV1Pkgs, strictOutOfSync);
39
+ const childNode = util_1.getChildNode(name, depInfo, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
40
40
  if (!colorMap.hasOwnProperty(childNode.id)) {
41
41
  util_1.addPkgNodeToGraph(depGraphBuilder, childNode, {});
42
- dfsVisit(depGraphBuilder, childNode, colorMap, extractedYarnLockV1Pkgs, strictOutOfSync);
42
+ dfsVisit(depGraphBuilder, childNode, colorMap, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
43
43
  }
44
44
  else if (colorMap[childNode.id] === Color.GRAY) {
45
45
  // cycle detected
@@ -1 +1 @@
1
- {"version":3,"file":"build-depgraph-simple-pruned.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v1/build-depgraph-simple-pruned.ts"],"names":[],"mappings":";;;AAAA,+CAAkD;AAClD,kCAKiB;AAIjB,IAAK,KAGJ;AAHD,WAAK,KAAK;IACR,iCAAI,CAAA;IACJ,mCAAK,CAAA;AACP,CAAC,EAHI,KAAK,KAAL,KAAK,QAGT;AAEM,MAAM,yCAAyC,GAAG,CACvD,uBAAyC,EACzC,OAAwB,EACxB,OAA6B,EAC7B,EAAE;IACF,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAEpD,MAAM,eAAe,GAAG,IAAI,2BAAe,CACzC,EAAE,IAAI,EAAE,MAAM,EAAE,EAChB,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CACjD,CAAC;IAEF,MAAM,QAAQ,GAA0B,EAAE,CAAC;IAE3C,MAAM,YAAY,GAAG,sBAAe,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAY;QACxB,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,EAAE,YAAY;QAC1B,KAAK,EAAE,KAAK;KACb,CAAC;IAEF,QAAQ,CACN,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,uBAAuB,EACvB,eAAe,CAChB,CAAC;IAEF,OAAO,eAAe,CAAC,KAAK,EAAE,CAAC;AACjC,CAAC,CAAC;AAjCW,QAAA,yCAAyC,6CAiCpD;AAEF;;;;;;;;GAQG;AACH,MAAM,QAAQ,GAAG,CACf,eAAgC,EAChC,IAAa,EACb,QAA+B,EAC/B,uBAAyC,EACzC,eAAwB,EAClB,EAAE;IACR,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;IAE/B,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;QACrE,MAAM,SAAS,GAAG,mBAAY,CAC5B,IAAI,EACJ,OAAO,EACP,uBAAuB,EACvB,eAAe,CAChB,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;YAC1C,wBAAiB,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YAClD,QAAQ,CACN,eAAe,EACf,SAAS,EACT,QAAQ,EACR,uBAAuB,EACvB,eAAe,CAChB,CAAC;SACH;aAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE;YAChD,iBAAiB;YACjB,SAAS,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,EAAE,IAAI,CAAC;YACnC,wBAAiB,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;SACnE;QAED,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;KACnD;IAED,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;AAClC,CAAC,CAAC"}
1
+ {"version":3,"file":"build-depgraph-simple-pruned.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v1/build-depgraph-simple-pruned.ts"],"names":[],"mappings":";;;AAAA,+CAAkD;AAClD,kCAKiB;AAIjB,IAAK,KAGJ;AAHD,WAAK,KAAK;IACR,iCAAI,CAAA;IACJ,mCAAK,CAAA;AACP,CAAC,EAHI,KAAK,KAAL,KAAK,QAGT;AAEM,MAAM,yCAAyC,GAAG,CACvD,uBAAyC,EACzC,OAAwB,EACxB,OAA6B,EAC7B,EAAE;IACF,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;IAEzE,MAAM,eAAe,GAAG,IAAI,2BAAe,CACzC,EAAE,IAAI,EAAE,MAAM,EAAE,EAChB,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CACjD,CAAC;IAEF,MAAM,QAAQ,GAA0B,EAAE,CAAC;IAE3C,MAAM,YAAY,GAAG,sBAAe,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAY;QACxB,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,EAAE,YAAY;QAC1B,KAAK,EAAE,KAAK;KACb,CAAC;IAEF,QAAQ,CACN,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,uBAAuB,EACvB,eAAe,EACf,mBAAmB,CACpB,CAAC;IAEF,OAAO,eAAe,CAAC,KAAK,EAAE,CAAC;AACjC,CAAC,CAAC;AAlCW,QAAA,yCAAyC,6CAkCpD;AAEF;;;;;;;;GAQG;AACH,MAAM,QAAQ,GAAG,CACf,eAAgC,EAChC,IAAa,EACb,QAA+B,EAC/B,uBAAyC,EACzC,eAAwB,EACxB,mBAA4B,EACtB,EAAE;IACR,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC;IAE/B,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;QACrE,MAAM,SAAS,GAAG,mBAAY,CAC5B,IAAI,EACJ,OAAO,EACP,uBAAuB,EACvB,eAAe,EAEf,mBAAmB,CACpB,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;YAC1C,wBAAiB,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YAClD,QAAQ,CACN,eAAe,EACf,SAAS,EACT,QAAQ,EACR,uBAAuB,EACvB,eAAe,EACf,mBAAmB,CACpB,CAAC;SACH;aAAM,IAAI,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,EAAE;YAChD,iBAAiB;YACjB,SAAS,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC,EAAE,IAAI,CAAC;YACnC,wBAAiB,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;SACnE;QAED,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;KACnD;IAED,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;AAClC,CAAC,CAAC"}
@@ -4,7 +4,7 @@ exports.buildDepGraphYarnLockV1Simple = void 0;
4
4
  const dep_graph_1 = require("@snyk/dep-graph");
5
5
  const util_1 = require("../util");
6
6
  const buildDepGraphYarnLockV1Simple = (extractedYarnLockV1Pkgs, pkgJson, options) => {
7
- const { includeDevDeps, strictOutOfSync } = options;
7
+ const { includeDevDeps, strictOutOfSync, includeOptionalDeps } = options;
8
8
  const depGraphBuilder = new dep_graph_1.DepGraphBuilder({ name: 'yarn' }, { name: pkgJson.name, version: pkgJson.version });
9
9
  const visitedMap = new Set();
10
10
  const topLevelDeps = util_1.getTopLevelDeps(pkgJson, { includeDevDeps });
@@ -15,7 +15,7 @@ const buildDepGraphYarnLockV1Simple = (extractedYarnLockV1Pkgs, pkgJson, options
15
15
  dependencies: topLevelDeps,
16
16
  isDev: false,
17
17
  };
18
- dfsVisit(depGraphBuilder, rootNode, visitedMap, extractedYarnLockV1Pkgs, strictOutOfSync);
18
+ dfsVisit(depGraphBuilder, rootNode, visitedMap, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
19
19
  return depGraphBuilder.build();
20
20
  };
21
21
  exports.buildDepGraphYarnLockV1Simple = buildDepGraphYarnLockV1Simple;
@@ -25,13 +25,13 @@ exports.buildDepGraphYarnLockV1Simple = buildDepGraphYarnLockV1Simple;
25
25
  * - If a node doesn't exist in the map, it means it hasn't been visited.
26
26
  * - If a node is already visited, simply connect the new node with this node.
27
27
  */
28
- const dfsVisit = (depGraphBuilder, node, visitedMap, extractedYarnLockV1Pkgs, strictOutOfSync) => {
28
+ const dfsVisit = (depGraphBuilder, node, visitedMap, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps) => {
29
29
  visitedMap.add(node.id);
30
30
  for (const [name, depInfo] of Object.entries(node.dependencies || {})) {
31
- const childNode = util_1.getChildNode(name, depInfo, extractedYarnLockV1Pkgs, strictOutOfSync);
31
+ const childNode = util_1.getChildNode(name, depInfo, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
32
32
  if (!visitedMap.has(childNode.id)) {
33
33
  util_1.addPkgNodeToGraph(depGraphBuilder, childNode, {});
34
- dfsVisit(depGraphBuilder, childNode, visitedMap, extractedYarnLockV1Pkgs, strictOutOfSync);
34
+ dfsVisit(depGraphBuilder, childNode, visitedMap, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
35
35
  }
36
36
  depGraphBuilder.connectDep(node.id, childNode.id);
37
37
  }
@@ -1 +1 @@
1
- {"version":3,"file":"build-depgraph-simple.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v1/build-depgraph-simple.ts"],"names":[],"mappings":";;;AAAA,+CAAkD;AAClD,kCAKiB;AAIV,MAAM,6BAA6B,GAAG,CAC3C,uBAAyC,EACzC,OAAwB,EACxB,OAA6B,EAC7B,EAAE;IACF,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAEpD,MAAM,eAAe,GAAG,IAAI,2BAAe,CACzC,EAAE,IAAI,EAAE,MAAM,EAAE,EAChB,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CACjD,CAAC;IAEF,MAAM,UAAU,GAAgB,IAAI,GAAG,EAAE,CAAC;IAE1C,MAAM,YAAY,GAAG,sBAAe,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAY;QACxB,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,EAAE,YAAY;QAC1B,KAAK,EAAE,KAAK;KACb,CAAC;IAEF,QAAQ,CACN,eAAe,EACf,QAAQ,EACR,UAAU,EACV,uBAAuB,EACvB,eAAe,CAChB,CAAC;IAEF,OAAO,eAAe,CAAC,KAAK,EAAE,CAAC;AACjC,CAAC,CAAC;AAjCW,QAAA,6BAA6B,iCAiCxC;AAEF;;;;;GAKG;AACH,MAAM,QAAQ,GAAG,CACf,eAAgC,EAChC,IAAa,EACb,UAAuB,EACvB,uBAAyC,EACzC,eAAwB,EAClB,EAAE;IACR,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAExB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;QACrE,MAAM,SAAS,GAAG,mBAAY,CAC5B,IAAI,EACJ,OAAO,EACP,uBAAuB,EACvB,eAAe,CAChB,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;YACjC,wBAAiB,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YAClD,QAAQ,CACN,eAAe,EACf,SAAS,EACT,UAAU,EACV,uBAAuB,EACvB,eAAe,CAChB,CAAC;SACH;QAED,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;KACnD;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"build-depgraph-simple.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v1/build-depgraph-simple.ts"],"names":[],"mappings":";;;AAAA,+CAAkD;AAClD,kCAKiB;AAIV,MAAM,6BAA6B,GAAG,CAC3C,uBAAyC,EACzC,OAAwB,EACxB,OAA6B,EAC7B,EAAE;IACF,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;IAEzE,MAAM,eAAe,GAAG,IAAI,2BAAe,CACzC,EAAE,IAAI,EAAE,MAAM,EAAE,EAChB,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CACjD,CAAC;IAEF,MAAM,UAAU,GAAgB,IAAI,GAAG,EAAE,CAAC;IAE1C,MAAM,YAAY,GAAG,sBAAe,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAY;QACxB,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,EAAE,YAAY;QAC1B,KAAK,EAAE,KAAK;KACb,CAAC;IAEF,QAAQ,CACN,eAAe,EACf,QAAQ,EACR,UAAU,EACV,uBAAuB,EACvB,eAAe,EACf,mBAAmB,CACpB,CAAC;IAEF,OAAO,eAAe,CAAC,KAAK,EAAE,CAAC;AACjC,CAAC,CAAC;AAlCW,QAAA,6BAA6B,iCAkCxC;AAEF;;;;;GAKG;AACH,MAAM,QAAQ,GAAG,CACf,eAAgC,EAChC,IAAa,EACb,UAAuB,EACvB,uBAAyC,EACzC,eAAwB,EACxB,mBAA4B,EACtB,EAAE;IACR,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAExB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;QACrE,MAAM,SAAS,GAAG,mBAAY,CAC5B,IAAI,EACJ,OAAO,EACP,uBAAuB,EACvB,eAAe,EACf,mBAAmB,CACpB,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;YACjC,wBAAiB,CAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YAClD,QAAQ,CACN,eAAe,EACf,SAAS,EACT,UAAU,EACV,uBAAuB,EACvB,eAAe,EACf,mBAAmB,CACpB,CAAC;SACH;QAED,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;KACnD;AACH,CAAC,CAAC"}
@@ -11,7 +11,7 @@ var Color;
11
11
  // Parse a single workspace package using yarn.lock v1
12
12
  // workspaces feature
13
13
  const buildDepGraphYarnLockV1WorkspaceCyclesPruned = (extractedYarnLockV1Pkgs, pkgJson, workspacePkgNameToVersion, options) => {
14
- const { includeDevDeps, strictOutOfSync } = options;
14
+ const { includeDevDeps, strictOutOfSync, includeOptionalDeps } = options;
15
15
  const depGraphBuilder = new dep_graph_1.DepGraphBuilder({ name: 'yarn' }, { name: pkgJson.name, version: pkgJson.version });
16
16
  const colorMap = {};
17
17
  const topLevelDeps = util_1.getTopLevelDeps(pkgJson, { includeDevDeps });
@@ -22,7 +22,7 @@ const buildDepGraphYarnLockV1WorkspaceCyclesPruned = (extractedYarnLockV1Pkgs, p
22
22
  dependencies: topLevelDeps,
23
23
  isDev: false,
24
24
  };
25
- dfsVisit(depGraphBuilder, rootNode, colorMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync);
25
+ dfsVisit(depGraphBuilder, rootNode, colorMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync, includeOptionalDeps);
26
26
  return depGraphBuilder.build();
27
27
  };
28
28
  exports.buildDepGraphYarnLockV1WorkspaceCyclesPruned = buildDepGraphYarnLockV1WorkspaceCyclesPruned;
@@ -36,18 +36,18 @@ exports.buildDepGraphYarnLockV1WorkspaceCyclesPruned = buildDepGraphYarnLockV1Wo
36
36
  * - A pruned node has id `${originalId}|1`
37
37
  * When coming across another workspace package as child node, simply add the node and edge to the graph and mark it as BLACK.
38
38
  */
39
- const dfsVisit = (depGraphBuilder, node, colorMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync) => {
39
+ const dfsVisit = (depGraphBuilder, node, colorMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync, includeOptionalDeps) => {
40
40
  colorMap[node.id] = Color.GRAY;
41
41
  for (const [name, depInfo] of Object.entries(node.dependencies || {})) {
42
42
  const isWorkspacePkg = !!workspacePkgNameToVersion[name];
43
- const childNode = util_1.getChildNodeWorkspace(name, depInfo, workspacePkgNameToVersion, extractedYarnLockV1Pkgs, strictOutOfSync);
43
+ const childNode = util_1.getChildNodeWorkspace(name, depInfo, workspacePkgNameToVersion, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
44
44
  if (!colorMap.hasOwnProperty(childNode.id)) {
45
45
  util_1.addPkgNodeToGraph(depGraphBuilder, childNode, {
46
46
  isCyclic: false,
47
47
  isWorkspacePkg,
48
48
  });
49
49
  if (!isWorkspacePkg) {
50
- dfsVisit(depGraphBuilder, childNode, colorMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync);
50
+ dfsVisit(depGraphBuilder, childNode, colorMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync, includeOptionalDeps);
51
51
  }
52
52
  else {
53
53
  colorMap[childNode.id] = Color.BLACK;
@@ -1 +1 @@
1
- {"version":3,"file":"build-depgraph-workspace-package-pruned.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v1/build-depgraph-workspace-package-pruned.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-depgraph-workspace-package-pruned.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v1/build-depgraph-workspace-package-pruned.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ exports.buildDepGraphYarnLockV1Workspace = void 0;
4
4
  const dep_graph_1 = require("@snyk/dep-graph");
5
5
  const util_1 = require("../util");
6
6
  const buildDepGraphYarnLockV1Workspace = (extractedYarnLockV1Pkgs, pkgJson, workspacePkgNameToVersion, options) => {
7
- const { includeDevDeps, strictOutOfSync } = options;
7
+ const { includeDevDeps, strictOutOfSync, includeOptionalDeps } = options;
8
8
  const depGraphBuilder = new dep_graph_1.DepGraphBuilder({ name: 'yarn' }, { name: pkgJson.name, version: pkgJson.version });
9
9
  const visitedMap = new Set();
10
10
  const topLevelDeps = util_1.getTopLevelDeps(pkgJson, { includeDevDeps });
@@ -15,7 +15,7 @@ const buildDepGraphYarnLockV1Workspace = (extractedYarnLockV1Pkgs, pkgJson, work
15
15
  dependencies: topLevelDeps,
16
16
  isDev: false,
17
17
  };
18
- dfsVisit(depGraphBuilder, rootNode, visitedMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync);
18
+ dfsVisit(depGraphBuilder, rootNode, visitedMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync, includeOptionalDeps);
19
19
  return depGraphBuilder.build();
20
20
  };
21
21
  exports.buildDepGraphYarnLockV1Workspace = buildDepGraphYarnLockV1Workspace;
@@ -29,18 +29,18 @@ exports.buildDepGraphYarnLockV1Workspace = buildDepGraphYarnLockV1Workspace;
29
29
  * - A pruned node has id `${originalId}|1`
30
30
  * When coming across another workspace package as child node, simply add the node and edge to the graph and mark it as BLACK.
31
31
  */
32
- const dfsVisit = (depGraphBuilder, node, visitedMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync) => {
32
+ const dfsVisit = (depGraphBuilder, node, visitedMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync, includeOptionalDeps) => {
33
33
  visitedMap.add(node.id);
34
34
  for (const [name, depInfo] of Object.entries(node.dependencies || {})) {
35
35
  const isWorkspacePkg = !!workspacePkgNameToVersion[name];
36
- const childNode = util_1.getChildNodeWorkspace(name, depInfo, workspacePkgNameToVersion, extractedYarnLockV1Pkgs, strictOutOfSync);
36
+ const childNode = util_1.getChildNodeWorkspace(name, depInfo, workspacePkgNameToVersion, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
37
37
  if (!visitedMap.has(childNode.id)) {
38
38
  util_1.addPkgNodeToGraph(depGraphBuilder, childNode, {
39
39
  isCyclic: false,
40
40
  isWorkspacePkg,
41
41
  });
42
42
  if (!isWorkspacePkg) {
43
- dfsVisit(depGraphBuilder, childNode, visitedMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync);
43
+ dfsVisit(depGraphBuilder, childNode, visitedMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync, includeOptionalDeps);
44
44
  }
45
45
  }
46
46
  depGraphBuilder.connectDep(node.id, childNode.id);
@@ -1 +1 @@
1
- {"version":3,"file":"build-depgraph-workspace-package.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v1/build-depgraph-workspace-package.ts"],"names":[],"mappings":";;;AAAA,+CAAkD;AAClD,kCAKiB;AAIV,MAAM,gCAAgC,GAAG,CAC9C,uBAAyC,EACzC,OAAwB,EACxB,yBAAiD,EACjD,OAA6B,EAC7B,EAAE;IACF,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAEpD,MAAM,eAAe,GAAG,IAAI,2BAAe,CACzC,EAAE,IAAI,EAAE,MAAM,EAAE,EAChB,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CACjD,CAAC;IAEF,MAAM,UAAU,GAAgB,IAAI,GAAG,EAAE,CAAC;IAE1C,MAAM,YAAY,GAAG,sBAAe,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAY;QACxB,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,EAAE,YAAY;QAC1B,KAAK,EAAE,KAAK;KACb,CAAC;IAEF,QAAQ,CACN,eAAe,EACf,QAAQ,EACR,UAAU,EACV,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,CAChB,CAAC;IAEF,OAAO,eAAe,CAAC,KAAK,EAAE,CAAC;AACjC,CAAC,CAAC;AAnCW,QAAA,gCAAgC,oCAmC3C;AAEF;;;;;;;;;GASG;AACH,MAAM,QAAQ,GAAG,CACf,eAAgC,EAChC,IAAa,EACb,UAAuB,EACvB,uBAAyC,EACzC,yBAAiD,EACjD,eAAwB,EAClB,EAAE;IACR,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAExB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;QACrE,MAAM,cAAc,GAAG,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAEzD,MAAM,SAAS,GAAG,4BAAqB,CACrC,IAAI,EACJ,OAAO,EACP,yBAAyB,EACzB,uBAAuB,EACvB,eAAe,CAChB,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;YACjC,wBAAiB,CAAC,eAAe,EAAE,SAAS,EAAE;gBAC5C,QAAQ,EAAE,KAAK;gBACf,cAAc;aACf,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,EAAE;gBACnB,QAAQ,CACN,eAAe,EACf,SAAS,EACT,UAAU,EACV,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,CAChB,CAAC;aACH;SACF;QAED,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;KACnD;AACH,CAAC,CAAC"}
1
+ {"version":3,"file":"build-depgraph-workspace-package.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v1/build-depgraph-workspace-package.ts"],"names":[],"mappings":";;;AAAA,+CAAkD;AAClD,kCAKiB;AAIV,MAAM,gCAAgC,GAAG,CAC9C,uBAAyC,EACzC,OAAwB,EACxB,yBAAiD,EACjD,OAA6B,EAC7B,EAAE;IACF,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;IAEzE,MAAM,eAAe,GAAG,IAAI,2BAAe,CACzC,EAAE,IAAI,EAAE,MAAM,EAAE,EAChB,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CACjD,CAAC;IAEF,MAAM,UAAU,GAAgB,IAAI,GAAG,EAAE,CAAC;IAE1C,MAAM,YAAY,GAAG,sBAAe,CAAC,OAAO,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IAElE,MAAM,QAAQ,GAAY;QACxB,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,EAAE,YAAY;QAC1B,KAAK,EAAE,KAAK;KACb,CAAC;IAEF,QAAQ,CACN,eAAe,EACf,QAAQ,EACR,UAAU,EACV,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,EACf,mBAAmB,CACpB,CAAC;IAEF,OAAO,eAAe,CAAC,KAAK,EAAE,CAAC;AACjC,CAAC,CAAC;AApCW,QAAA,gCAAgC,oCAoC3C;AAEF;;;;;;;;;GASG;AACH,MAAM,QAAQ,GAAG,CACf,eAAgC,EAChC,IAAa,EACb,UAAuB,EACvB,uBAAyC,EACzC,yBAAiD,EACjD,eAAwB,EACxB,mBAA4B,EACtB,EAAE;IACR,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAExB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;QACrE,MAAM,cAAc,GAAG,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAEzD,MAAM,SAAS,GAAG,4BAAqB,CACrC,IAAI,EACJ,OAAO,EACP,yBAAyB,EACzB,uBAAuB,EACvB,eAAe,EACf,mBAAmB,CACpB,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;YACjC,wBAAiB,CAAC,eAAe,EAAE,SAAS,EAAE;gBAC5C,QAAQ,EAAE,KAAK;gBACf,cAAc;aACf,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,EAAE;gBACnB,QAAQ,CACN,eAAe,EACf,SAAS,EACT,UAAU,EACV,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,EACf,mBAAmB,CACpB,CAAC;aACH;SACF;QAED,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;KACnD;AACH,CAAC,CAAC"}
@@ -1,2 +1,2 @@
1
- import type { LockFileParseOptions, YarnLockPackages } from './types';
2
- export declare const extractPkgsFromYarnLockV1: (yarnLockContent: string, options: LockFileParseOptions) => Promise<YarnLockPackages>;
1
+ import type { YarnLockPackages } from './types';
2
+ export declare const extractPkgsFromYarnLockV1: (yarnLockContent: string) => YarnLockPackages;
@@ -1,119 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractPkgsFromYarnLockV1 = void 0;
4
- const event_loop_spinner_1 = require("event-loop-spinner");
5
- const extractPkgsFromYarnLockV1 = async (yarnLockContent, options) => {
6
- const { includeOptionalDeps } = options;
7
- let allDeps = {};
8
- for (const newDeps of pkgDependencyGenerator(yarnLockContent, {
9
- includeOptionalDeps,
10
- })) {
11
- if (event_loop_spinner_1.eventLoopSpinner.isStarving()) {
12
- await event_loop_spinner_1.eventLoopSpinner.spin();
13
- }
14
- allDeps = Object.assign(Object.assign({}, allDeps), newDeps);
15
- }
16
- return allDeps;
4
+ const yarnLockfileParser = require("@yarnpkg/lockfile");
5
+ const extractPkgsFromYarnLockV1 = (yarnLockContent) => {
6
+ return yarnLockfileParser.parse(yarnLockContent).object;
17
7
  };
18
8
  exports.extractPkgsFromYarnLockV1 = extractPkgsFromYarnLockV1;
19
- function* pkgDependencyGenerator(yarnLockContent, options) {
20
- const lines = yarnLockContent.split('\n');
21
- /*
22
- This checks three things to make sure this is the
23
- first line of the dep definition:
24
- 1. Line is non empty
25
- 2. Line does not start with white space
26
- 3. Line is not a comment (they are present in lockfiles)
27
- */
28
- const isLineStartOfDepBlock = (line) => {
29
- return line && !/\s/.test(line[0]) && line[0] !== '#';
30
- };
31
- /*
32
- This checks if we are on the version line
33
- */
34
- const isLineContainingVersion = (line) => {
35
- return line.trimStart().startsWith('version');
36
- };
37
- /*
38
- This checks if we are on the line starting the dependency
39
- definitions
40
- */
41
- const isLineStartOfDependencies = (line) => {
42
- return line.includes('dependencies:');
43
- };
44
- /*
45
- This checks if we are on the line starting the optional dependency
46
- definitions
47
- */
48
- const isLineStartOfOptDependencies = (line) => {
49
- return line.includes('optionalDependencies:');
50
- };
51
- /*
52
- This checks if current line has a matching indent size
53
- */
54
- const matchesFrontWhitespace = (line, whitespaceCount) => {
55
- return line.search(/\S/) === whitespaceCount;
56
- };
57
- while (lines.length) {
58
- const line = lines.shift();
59
- // Once we find a block we look at the next lines until we
60
- // get to the next dep block. We also store the keys from
61
- // the line itself
62
- if (isLineStartOfDepBlock(line)) {
63
- const dependencyKeys = line.split(',').map((key) => {
64
- return key
65
- .trim()
66
- .replace(new RegExp(':', 'g'), (_match, offset, string) => {
67
- if (offset === string.length - 1) {
68
- return '';
69
- }
70
- return ':';
71
- })
72
- .replace(new RegExp('"', 'g'), '');
73
- });
74
- let version = '';
75
- const dependencies = {};
76
- while (lines.length && !isLineStartOfDepBlock(lines[0])) {
77
- const lineInDepBlock = lines.shift();
78
- if (isLineContainingVersion(lineInDepBlock)) {
79
- const resolvedVersion = lineInDepBlock
80
- .replace(new RegExp('version', 'g'), '')
81
- .replace(new RegExp('"', 'g'), '')
82
- .trim();
83
- version = resolvedVersion;
84
- }
85
- if (isLineStartOfDependencies(lineInDepBlock)) {
86
- const dependencyFrontWhitespaceCount = lines[0].search(/\S/);
87
- while (lines.length &&
88
- matchesFrontWhitespace(lines[0], dependencyFrontWhitespaceCount)) {
89
- const dependencyLine = lines.shift();
90
- const [dependencyName, dependencyVersionWithQualifiers] = dependencyLine
91
- .trimStart()
92
- .replace(new RegExp('"', 'g'), '')
93
- .split(/(?<=^\S+)\s/);
94
- dependencies[dependencyName] = dependencyVersionWithQualifiers;
95
- }
96
- }
97
- if (options.includeOptionalDeps &&
98
- isLineStartOfOptDependencies(lineInDepBlock)) {
99
- const dependencyFrontWhitespaceCount = lines[0].search(/\S/);
100
- while (lines.length &&
101
- matchesFrontWhitespace(lines[0], dependencyFrontWhitespaceCount)) {
102
- const dependencyLine = lines.shift();
103
- const [dependencyName, dependencyVersionWithQualifiers] = dependencyLine
104
- .trimStart()
105
- .replace(new RegExp('"', 'g'), '')
106
- .split(/(?<=^\S+)\s/);
107
- dependencies[dependencyName] = dependencyVersionWithQualifiers;
108
- }
109
- }
110
- }
111
- const uniqueDepEntries = dependencyKeys.reduce((acc, key) => {
112
- return Object.assign(Object.assign({}, acc), { [key]: { version, dependencies } });
113
- }, {});
114
- yield uniqueDepEntries;
115
- continue;
116
- }
117
- }
118
- }
119
9
  //# sourceMappingURL=extract-yarnlock-v1-pkgs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"extract-yarnlock-v1-pkgs.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v1/extract-yarnlock-v1-pkgs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extract-yarnlock-v1-pkgs.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v1/extract-yarnlock-v1-pkgs.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AAGjD,MAAM,yBAAyB,GAAG,CACvC,eAAuB,EACL,EAAE;IACpB,OAAO,kBAAkB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;AAC1D,CAAC,CAAC;AAJW,QAAA,yBAAyB,6BAIpC"}
@@ -7,18 +7,18 @@ const build_depgraph_simple_pruned_1 = require("./build-depgraph-simple-pruned")
7
7
  const extract_yarnlock_v1_pkgs_1 = require("./extract-yarnlock-v1-pkgs");
8
8
  const parseYarnLockV1Project = async (pkgJsonContent, yarnLockContent, options) => {
9
9
  const { includeDevDeps, includeOptionalDeps, pruneCycles, strictOutOfSync } = options;
10
- const pkgs = await extract_yarnlock_v1_pkgs_1.extractPkgsFromYarnLockV1(yarnLockContent, {
11
- includeOptionalDeps,
12
- });
10
+ const pkgs = extract_yarnlock_v1_pkgs_1.extractPkgsFromYarnLockV1(yarnLockContent);
13
11
  const pkgJson = util_1.parsePkgJson(pkgJsonContent);
14
12
  const depGraph = pruneCycles
15
13
  ? build_depgraph_simple_pruned_1.buildDepGraphYarnLockV1SimpleCyclesPruned(pkgs, pkgJson, {
16
14
  includeDevDeps,
17
15
  strictOutOfSync,
16
+ includeOptionalDeps,
18
17
  })
19
18
  : _1.buildDepGraphYarnLockV1Simple(pkgs, pkgJson, {
20
19
  includeDevDeps,
21
20
  strictOutOfSync,
21
+ includeOptionalDeps,
22
22
  });
23
23
  return depGraph;
24
24
  };
@@ -1 +1 @@
1
- {"version":3,"file":"simple.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v1/simple.ts"],"names":[],"mappings":";;;AAAA,wBAAkD;AAElD,kCAAuC;AACvC,iFAA2F;AAC3F,yEAAuE;AAGhE,MAAM,sBAAsB,GAAG,KAAK,EACzC,cAAsB,EACtB,eAAuB,EACvB,OAA4B,EAC5B,EAAE;IACF,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,WAAW,EAAE,eAAe,EAAE,GACzE,OAAO,CAAC;IAEV,MAAM,IAAI,GAAG,MAAM,oDAAyB,CAAC,eAAe,EAAE;QAC5D,mBAAmB;KACpB,CAAC,CAAC;IAEH,MAAM,OAAO,GAAoB,mBAAY,CAAC,cAAc,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,WAAW;QAC1B,CAAC,CAAC,wEAAyC,CAAC,IAAI,EAAE,OAAO,EAAE;YACvD,cAAc;YACd,eAAe;SAChB,CAAC;QACJ,CAAC,CAAC,gCAA6B,CAAC,IAAI,EAAE,OAAO,EAAE;YAC3C,cAAc;YACd,eAAe;SAChB,CAAC,CAAC;IAEP,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAzBW,QAAA,sBAAsB,0BAyBjC"}
1
+ {"version":3,"file":"simple.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v1/simple.ts"],"names":[],"mappings":";;;AAAA,wBAAkD;AAElD,kCAAuC;AACvC,iFAA2F;AAC3F,yEAAuE;AAGhE,MAAM,sBAAsB,GAAG,KAAK,EACzC,cAAsB,EACtB,eAAuB,EACvB,OAA4B,EAC5B,EAAE;IACF,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,WAAW,EAAE,eAAe,EAAE,GACzE,OAAO,CAAC;IAEV,MAAM,IAAI,GAAG,oDAAyB,CAAC,eAAe,CAAC,CAAC;IAExD,MAAM,OAAO,GAAoB,mBAAY,CAAC,cAAc,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,WAAW;QAC1B,CAAC,CAAC,wEAAyC,CAAC,IAAI,EAAE,OAAO,EAAE;YACvD,cAAc;YACd,eAAe;YACf,mBAAmB;SACpB,CAAC;QACJ,CAAC,CAAC,gCAA6B,CAAC,IAAI,EAAE,OAAO,EAAE;YAC3C,cAAc;YACd,eAAe;YACf,mBAAmB;SACpB,CAAC,CAAC;IAEP,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAzBW,QAAA,sBAAsB,0BAyBjC"}
@@ -1,9 +1,11 @@
1
1
  export declare type YarnLockPackages = Record<string, {
2
2
  version: string;
3
3
  dependencies: Record<string, string>;
4
+ optionalDependencies: Record<string, string>;
4
5
  }>;
5
6
  export declare type DepGraphBuildOptions = {
6
7
  includeDevDeps: boolean;
8
+ includeOptionalDeps: boolean;
7
9
  strictOutOfSync: boolean;
8
10
  };
9
11
  export declare type LockFileParseOptions = {
@@ -7,9 +7,7 @@ const extract_yarnlock_v1_pkgs_1 = require("./extract-yarnlock-v1-pkgs");
7
7
  const util_1 = require("../util");
8
8
  const parseYarnLockV1WorkspaceProject = async (yarnLockContent, workspacePackagesPkgJsons, options) => {
9
9
  const { includeDevDeps, includeOptionalDeps, pruneCycles, strictOutOfSync } = options;
10
- const extractedYarnLockV1Pkgs = await extract_yarnlock_v1_pkgs_1.extractPkgsFromYarnLockV1(yarnLockContent, {
11
- includeOptionalDeps,
12
- });
10
+ const extractedYarnLockV1Pkgs = extract_yarnlock_v1_pkgs_1.extractPkgsFromYarnLockV1(yarnLockContent);
13
11
  // Parse all package.json files and also extract names cross referencing later
14
12
  const workspacePkgNameToVersion = {};
15
13
  const parsedWorkspacePkgJsons = workspacePackagesPkgJsons.map((wsPkgJsonContent) => {
@@ -22,10 +20,12 @@ const parseYarnLockV1WorkspaceProject = async (yarnLockContent, workspacePackage
22
20
  ? build_depgraph_workspace_package_pruned_1.buildDepGraphYarnLockV1WorkspaceCyclesPruned(extractedYarnLockV1Pkgs, parsedPkgJson, workspacePkgNameToVersion, {
23
21
  includeDevDeps,
24
22
  strictOutOfSync,
23
+ includeOptionalDeps,
25
24
  })
26
25
  : build_depgraph_workspace_package_1.buildDepGraphYarnLockV1Workspace(extractedYarnLockV1Pkgs, parsedPkgJson, workspacePkgNameToVersion, {
27
26
  includeDevDeps,
28
27
  strictOutOfSync,
28
+ includeOptionalDeps,
29
29
  });
30
30
  });
31
31
  return depGraphs;
@@ -1 +1 @@
1
- {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v1/workspaces.ts"],"names":[],"mappings":";;;AAEA,uGAAyG;AACzG,yFAAsF;AACtF,yEAAuE;AACvE,kCAAuC;AAGhC,MAAM,+BAA+B,GAAG,KAAK,EAClD,eAAuB,EACvB,yBAAmC,EACnC,OAA4B,EACP,EAAE;IACvB,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,WAAW,EAAE,eAAe,EAAE,GACzE,OAAO,CAAC;IAEV,MAAM,uBAAuB,GAAG,MAAM,oDAAyB,CAC7D,eAAe,EACf;QACE,mBAAmB;KACpB,CACF,CAAC;IAEF,8EAA8E;IAC9E,MAAM,yBAAyB,GAAG,EAAE,CAAC;IACrC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC,GAAG,CAC3D,CAAC,gBAAgB,EAAE,EAAE;QACnB,MAAM,aAAa,GAAoB,mBAAY,CAAC,gBAAgB,CAAC,CAAC;QACtE,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;QACtE,OAAO,aAAa,CAAC;IACvB,CAAC,CACF,CAAC;IAEF,MAAM,SAAS,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE;QAC9D,OAAO,WAAW;YAChB,CAAC,CAAC,sFAA4C,CAC1C,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB;gBACE,cAAc;gBACd,eAAe;aAChB,CACF;YACH,CAAC,CAAC,mEAAgC,CAC9B,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB;gBACE,cAAc;gBACd,eAAe;aAChB,CACF,CAAC;IACR,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AAhDW,QAAA,+BAA+B,mCAgD1C"}
1
+ {"version":3,"file":"workspaces.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v1/workspaces.ts"],"names":[],"mappings":";;;AAEA,uGAAyG;AACzG,yFAAsF;AACtF,yEAAuE;AACvE,kCAAuC;AAGhC,MAAM,+BAA+B,GAAG,KAAK,EAClD,eAAuB,EACvB,yBAAmC,EACnC,OAA4B,EACP,EAAE;IACvB,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,WAAW,EAAE,eAAe,EAAE,GACzE,OAAO,CAAC;IAEV,MAAM,uBAAuB,GAAG,oDAAyB,CAAC,eAAe,CAAC,CAAC;IAE3E,8EAA8E;IAC9E,MAAM,yBAAyB,GAAG,EAAE,CAAC;IACrC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC,GAAG,CAC3D,CAAC,gBAAgB,EAAE,EAAE;QACnB,MAAM,aAAa,GAAoB,mBAAY,CAAC,gBAAgB,CAAC,CAAC;QACtE,yBAAyB,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,OAAO,CAAC;QACtE,OAAO,aAAa,CAAC;IACvB,CAAC,CACF,CAAC;IAEF,MAAM,SAAS,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,aAAa,EAAE,EAAE;QAC9D,OAAO,WAAW;YAChB,CAAC,CAAC,sFAA4C,CAC1C,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB;gBACE,cAAc;gBACd,eAAe;gBACf,mBAAmB;aACpB,CACF;YACH,CAAC,CAAC,mEAAgC,CAC9B,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB;gBACE,cAAc;gBACd,eAAe;gBACf,mBAAmB;aACpB,CACF,CAAC;IACR,CAAC,CAAC,CAAC;IAEH,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AA7CW,QAAA,+BAA+B,mCA6C1C"}
package/package.json CHANGED
@@ -57,11 +57,11 @@
57
57
  "eslint-config-prettier": "^6.11.0",
58
58
  "eslint-plugin-prettier": "^3.1.3",
59
59
  "jest": "^26.6.3",
60
- "prettier": "^2.3.2",
60
+ "prettier": "^2.7.1",
61
61
  "tap": "^15.0.4",
62
62
  "ts-jest": "^26.5.6",
63
63
  "ts-node": "^9.1.1",
64
64
  "typescript": "4.1.*"
65
65
  },
66
- "version": "1.42.0"
66
+ "version": "1.43.0"
67
67
  }