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.
- package/dist/dep-graph-builders/index.js.map +1 -1
- package/dist/dep-graph-builders/util.d.ts +2 -2
- package/dist/dep-graph-builders/util.js +9 -5
- package/dist/dep-graph-builders/util.js.map +1 -1
- package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-simple-pruned.js +5 -5
- package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-simple-pruned.js.map +1 -1
- package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-simple.js +5 -5
- package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-simple.js.map +1 -1
- package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-workspace-package-pruned.js +5 -5
- package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-workspace-package-pruned.js.map +1 -1
- package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-workspace-package.js +5 -5
- package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-workspace-package.js.map +1 -1
- package/dist/dep-graph-builders/yarn-lock-v1/extract-yarnlock-v1-pkgs.d.ts +2 -2
- package/dist/dep-graph-builders/yarn-lock-v1/extract-yarnlock-v1-pkgs.js +3 -113
- package/dist/dep-graph-builders/yarn-lock-v1/extract-yarnlock-v1-pkgs.js.map +1 -1
- package/dist/dep-graph-builders/yarn-lock-v1/simple.js +3 -3
- package/dist/dep-graph-builders/yarn-lock-v1/simple.js.map +1 -1
- package/dist/dep-graph-builders/yarn-lock-v1/types.d.ts +2 -0
- package/dist/dep-graph-builders/yarn-lock-v1/workspaces.js +3 -3
- package/dist/dep-graph-builders/yarn-lock-v1/workspaces.js.map +1 -1
- 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;
|
|
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
|
|
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:
|
|
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":";;;AAEA,sCAAkD;AAElD,sCAA2C;AAC3C,wCAA0C;AAanC,MAAM,iBAAiB,GAAG,CAC/B,eAAgC,EAChC,IAAa,EACb,OAGC,EACgB,EAAE;IACnB,OAAO,eAAe,CAAC,UAAU,CAC/B,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAC1C,IAAI,CAAC,EAAE,EACP;QACE,MAAM,8CACJ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAC/B,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAC1C,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAC9C,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,CACnE;KACF,CACF,CAAC;AACJ,CAAC,CAAC;AApBW,QAAA,iBAAiB,qBAoB5B;AAEF;;;GAGG;AACI,MAAM,eAAe,GAAG,CAC7B,OAAwB,EACxB,OAAoC,EACtB,EAAE;IAChB,MAAM,QAAQ,GAAG,4BAAoB,CAAC,OAAO,CAAC,YAAY,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IAEzE,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc;QACpC,CAAC,CAAC,4BAAoB,CAAC,OAAO,CAAC,eAAe,IAAI,EAAE,EAAE,IAAI,CAAC;QAC3D,CAAC,CAAC,EAAE,CAAC;IAEP,uCAAY,QAAQ,GAAK,OAAO,EAAG;AACrC,CAAC,CAAC;AAXW,QAAA,eAAe,mBAW1B;AAEF;;;GAGG;AACI,MAAM,oBAAoB,GAAG,CAClC,YAAoC,EACpC,KAAK,EACS,EAAE;IAChB,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CACxC,CAAC,GAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE;QACpC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC9C,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,oBAAoB,wBAW/B;AAEF,SAAgB,YAAY,CAAC,cAAsB;IACjD,IAAI;QACF,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;YACvB,aAAa,CAAC,IAAI,GAAG,cAAc,CAAC;SACrC;QACD,OAAO,aAAa,CAAC;KACtB;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,8BAAqB,CAC7B,yCAAyC,GAAG,CAAC,CAAC,OAAO,CACtD,CAAC;KACH;AACH,CAAC;AAZD,oCAYC;AAEM,MAAM,YAAY,GAAG,CAC1B,IAAY,EACZ,OAA4C,EAC5C,IAAsB,EACtB,eAAwB,EACxB,EAAE;IACF,MAAM,YAAY,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAClD,IAAI,SAAkB,CAAC;IAEvB,IAAI,CAAC,IAAI,CAAC,
|
|
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;
|
|
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;
|
|
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":";;;AAAA,+CAAkD;AAClD,kCAKiB;AAKjB,IAAK,KAGJ;AAHD,WAAK,KAAK;IACR,iCAAI,CAAA;IACJ,mCAAK,CAAA;AACP,CAAC,EAHI,KAAK,KAAL,KAAK,QAGT;AAED,sDAAsD;AACtD,qBAAqB;AACd,MAAM,4CAA4C,GAAG,CAC1D,uBAAyC,EACzC,OAAwB,EACxB,yBAAiD,EACjD,OAA6B,EAC7B,EAAE;IACF,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;
|
|
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;
|
|
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 {
|
|
2
|
-
export declare const extractPkgsFromYarnLockV1: (yarnLockContent: string
|
|
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
|
|
5
|
-
const extractPkgsFromYarnLockV1 =
|
|
6
|
-
|
|
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":";;;AAAA,
|
|
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 =
|
|
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,
|
|
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 =
|
|
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,
|
|
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.
|
|
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.
|
|
66
|
+
"version": "1.43.0"
|
|
67
67
|
}
|