snyk-nodejs-lockfile-parser 1.48.3 → 1.49.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/c-map.d.ts +10 -0
- package/dist/c-map.js +24 -0
- package/dist/c-map.js.map +1 -0
- package/dist/dep-graph-builders/npm-lock-v2/index.d.ts +3 -2
- package/dist/dep-graph-builders/npm-lock-v2/index.js +10 -6
- package/dist/dep-graph-builders/npm-lock-v2/index.js.map +1 -1
- package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-simple-pruned.d.ts +1 -1
- package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-simple-pruned.js +8 -4
- 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.d.ts +1 -1
- package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-simple.js +8 -4
- 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.d.ts +1 -1
- package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-workspace-package-pruned.js +8 -4
- 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.d.ts +1 -1
- package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-workspace-package.js +8 -4
- package/dist/dep-graph-builders/yarn-lock-v1/build-depgraph-workspace-package.js.map +1 -1
- package/dist/dep-graph-builders/yarn-lock-v1/simple.js +2 -2
- package/dist/dep-graph-builders/yarn-lock-v1/simple.js.map +1 -1
- package/dist/dep-graph-builders/yarn-lock-v1/workspaces.js +4 -3
- package/dist/dep-graph-builders/yarn-lock-v1/workspaces.js.map +1 -1
- package/dist/dep-graph-builders/yarn-lock-v2/build-depgraph-simple.d.ts +1 -1
- package/dist/dep-graph-builders/yarn-lock-v2/build-depgraph-simple.js +8 -4
- package/dist/dep-graph-builders/yarn-lock-v2/build-depgraph-simple.js.map +1 -1
- package/dist/dep-graph-builders/yarn-lock-v2/simple.d.ts +2 -1
- package/dist/dep-graph-builders/yarn-lock-v2/simple.js +2 -2
- package/dist/dep-graph-builders/yarn-lock-v2/simple.js.map +1 -1
- package/package.json +2 -1
package/dist/c-map.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/** Run a function each element in an array, with some level of concurrency.
|
|
2
|
+
*
|
|
3
|
+
* Defaults to a small, finite concurrency, so as to not to "overload" the database
|
|
4
|
+
* connection pool or the http client, both of which have small, internal limits.
|
|
5
|
+
*
|
|
6
|
+
* Can be used with async functions that don't yield; will yield for you, if necessary.
|
|
7
|
+
*/
|
|
8
|
+
export declare function cMap<F, T>(input: Iterable<F>, mapper: (from: F) => Promise<T>, options?: {
|
|
9
|
+
concurrency: number;
|
|
10
|
+
}): Promise<T[]>;
|
package/dist/c-map.js
ADDED
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.cMap = void 0;
|
|
4
|
+
const pMap = require("p-map");
|
|
5
|
+
const event_loop_spinner_1 = require("event-loop-spinner");
|
|
6
|
+
/** Run a function each element in an array, with some level of concurrency.
|
|
7
|
+
*
|
|
8
|
+
* Defaults to a small, finite concurrency, so as to not to "overload" the database
|
|
9
|
+
* connection pool or the http client, both of which have small, internal limits.
|
|
10
|
+
*
|
|
11
|
+
* Can be used with async functions that don't yield; will yield for you, if necessary.
|
|
12
|
+
*/
|
|
13
|
+
async function cMap(input, mapper, options) {
|
|
14
|
+
var _a;
|
|
15
|
+
const concurrency = (_a = options === null || options === void 0 ? void 0 : options.concurrency) !== null && _a !== void 0 ? _a : 6;
|
|
16
|
+
return await pMap(input, async (from) => {
|
|
17
|
+
if (event_loop_spinner_1.eventLoopSpinner.isStarving()) {
|
|
18
|
+
await event_loop_spinner_1.eventLoopSpinner.spin();
|
|
19
|
+
}
|
|
20
|
+
return await mapper(from);
|
|
21
|
+
}, { concurrency });
|
|
22
|
+
}
|
|
23
|
+
exports.cMap = cMap;
|
|
24
|
+
//# sourceMappingURL=c-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"c-map.js","sourceRoot":"","sources":["../lib/c-map.ts"],"names":[],"mappings":";;;AAAA,8BAA8B;AAC9B,2DAAsD;AAEtD;;;;;;GAMG;AACI,KAAK,UAAU,IAAI,CACxB,KAAkB,EAClB,MAA+B,EAC/B,OAAiC;;IAEjC,MAAM,WAAW,GAAG,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,mCAAI,CAAC,CAAC;IAC9C,OAAO,MAAM,IAAI,CACf,KAAK,EACL,KAAK,EAAE,IAAI,EAAE,EAAE;QACb,IAAI,qCAAgB,CAAC,UAAU,EAAE,EAAE;YACjC,MAAM,qCAAgB,CAAC,IAAI,EAAE,CAAC;SAC/B;QACD,OAAO,MAAM,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC,EACD,EAAE,WAAW,EAAE,CAChB,CAAC;AACJ,CAAC;AAhBD,oBAgBC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { DepGraphBuildOptions, PackageJsonBase, ProjectParseOptions } from '../types';
|
|
2
2
|
import { extractPkgsFromNpmLockV2 } from './extract-npm-lock-v2-pkgs';
|
|
3
3
|
import type { NpmLockPkg } from './extract-npm-lock-v2-pkgs';
|
|
4
|
+
import { DepGraph } from '@snyk/dep-graph';
|
|
4
5
|
export { extractPkgsFromNpmLockV2 };
|
|
5
|
-
export declare const parseNpmLockV2Project: (pkgJsonContent: string, pkgLockContent: string, options: ProjectParseOptions) =>
|
|
6
|
-
export declare const buildDepGraphNpmLockV2: (npmLockPkgs: Record<string, NpmLockPkg>, pkgJson: PackageJsonBase, options: DepGraphBuildOptions) =>
|
|
6
|
+
export declare const parseNpmLockV2Project: (pkgJsonContent: string, pkgLockContent: string, options: ProjectParseOptions) => Promise<DepGraph>;
|
|
7
|
+
export declare const buildDepGraphNpmLockV2: (npmLockPkgs: Record<string, NpmLockPkg>, pkgJson: PackageJsonBase, options: DepGraphBuildOptions) => Promise<DepGraph>;
|
|
7
8
|
export declare const getChildNodeKey: (name: string, version: string, ancestry: {
|
|
8
9
|
name: string;
|
|
9
10
|
key: string;
|
|
@@ -10,11 +10,12 @@ const parsers_1 = require("../../parsers");
|
|
|
10
10
|
const semver = require("semver");
|
|
11
11
|
const micromatch = require("micromatch");
|
|
12
12
|
const pathUtil = require("path");
|
|
13
|
-
const
|
|
13
|
+
const event_loop_spinner_1 = require("event-loop-spinner");
|
|
14
|
+
const parseNpmLockV2Project = async (pkgJsonContent, pkgLockContent, options) => {
|
|
14
15
|
const { includeDevDeps, strictOutOfSync, includeOptionalDeps } = options;
|
|
15
16
|
const pkgJson = (0, util_1.parsePkgJson)(pkgJsonContent);
|
|
16
17
|
const pkgs = (0, extract_npm_lock_v2_pkgs_1.extractPkgsFromNpmLockV2)(pkgLockContent);
|
|
17
|
-
const depgraph = (0, exports.buildDepGraphNpmLockV2)(pkgs, pkgJson, {
|
|
18
|
+
const depgraph = await (0, exports.buildDepGraphNpmLockV2)(pkgs, pkgJson, {
|
|
18
19
|
includeDevDeps,
|
|
19
20
|
includeOptionalDeps,
|
|
20
21
|
strictOutOfSync,
|
|
@@ -22,7 +23,7 @@ const parseNpmLockV2Project = (pkgJsonContent, pkgLockContent, options) => {
|
|
|
22
23
|
return depgraph;
|
|
23
24
|
};
|
|
24
25
|
exports.parseNpmLockV2Project = parseNpmLockV2Project;
|
|
25
|
-
const buildDepGraphNpmLockV2 = (npmLockPkgs, pkgJson, options) => {
|
|
26
|
+
const buildDepGraphNpmLockV2 = async (npmLockPkgs, pkgJson, options) => {
|
|
26
27
|
const { includeDevDeps, strictOutOfSync, includeOptionalDeps } = options;
|
|
27
28
|
const depGraphBuilder = new dep_graph_1.DepGraphBuilder({ name: 'npm' }, { name: pkgJson.name, version: pkgJson.version });
|
|
28
29
|
const topLevelDeps = (0, util_1.getTopLevelDeps)(pkgJson, {
|
|
@@ -51,13 +52,16 @@ const buildDepGraphNpmLockV2 = (npmLockPkgs, pkgJson, options) => {
|
|
|
51
52
|
return acc;
|
|
52
53
|
}, new Map());
|
|
53
54
|
const visitedMap = new Set();
|
|
54
|
-
dfsVisit(depGraphBuilder, rootNode, visitedMap, npmLockPkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, [], pkgKeysByName);
|
|
55
|
+
await dfsVisit(depGraphBuilder, rootNode, visitedMap, npmLockPkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, [], pkgKeysByName);
|
|
55
56
|
return depGraphBuilder.build();
|
|
56
57
|
};
|
|
57
58
|
exports.buildDepGraphNpmLockV2 = buildDepGraphNpmLockV2;
|
|
58
|
-
const dfsVisit = (depGraphBuilder, node, visitedMap, npmLockPkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, ancestry, pkgKeysByName) => {
|
|
59
|
+
const dfsVisit = async (depGraphBuilder, node, visitedMap, npmLockPkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, ancestry, pkgKeysByName) => {
|
|
59
60
|
visitedMap.add(node.id);
|
|
60
61
|
for (const [name, depInfo] of Object.entries(node.dependencies || {})) {
|
|
62
|
+
if (event_loop_spinner_1.eventLoopSpinner.isStarving()) {
|
|
63
|
+
await event_loop_spinner_1.eventLoopSpinner.spin();
|
|
64
|
+
}
|
|
61
65
|
const childNode = getChildNode(name, depInfo, npmLockPkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, [
|
|
62
66
|
...ancestry,
|
|
63
67
|
{
|
|
@@ -68,7 +72,7 @@ const dfsVisit = (depGraphBuilder, node, visitedMap, npmLockPkgs, strictOutOfSyn
|
|
|
68
72
|
], pkgKeysByName);
|
|
69
73
|
if (!visitedMap.has(childNode.id)) {
|
|
70
74
|
(0, util_1.addPkgNodeToGraph)(depGraphBuilder, childNode, {});
|
|
71
|
-
dfsVisit(depGraphBuilder, childNode, visitedMap, npmLockPkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, [
|
|
75
|
+
await dfsVisit(depGraphBuilder, childNode, visitedMap, npmLockPkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, [
|
|
72
76
|
...ancestry,
|
|
73
77
|
{
|
|
74
78
|
name: node.name,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/npm-lock-v2/index.ts"],"names":[],"mappings":";;;AAKA,yEAAsE;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/npm-lock-v2/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { NormalisedPkgs, PackageJsonBase } from '../types';
|
|
2
2
|
import type { DepGraphBuildOptions } from '../types';
|
|
3
|
-
export declare const buildDepGraphYarnLockV1SimpleCyclesPruned: (extractedYarnLockV1Pkgs: NormalisedPkgs, pkgJson: PackageJsonBase, options: DepGraphBuildOptions) => import("@snyk/dep-graph").DepGraph
|
|
3
|
+
export declare const buildDepGraphYarnLockV1SimpleCyclesPruned: (extractedYarnLockV1Pkgs: NormalisedPkgs, pkgJson: PackageJsonBase, options: DepGraphBuildOptions) => Promise<import("@snyk/dep-graph").DepGraph>;
|
|
@@ -3,12 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.buildDepGraphYarnLockV1SimpleCyclesPruned = void 0;
|
|
4
4
|
const dep_graph_1 = require("@snyk/dep-graph");
|
|
5
5
|
const util_1 = require("../util");
|
|
6
|
+
const event_loop_spinner_1 = require("event-loop-spinner");
|
|
6
7
|
var Color;
|
|
7
8
|
(function (Color) {
|
|
8
9
|
Color[Color["GRAY"] = 0] = "GRAY";
|
|
9
10
|
Color[Color["BLACK"] = 1] = "BLACK";
|
|
10
11
|
})(Color || (Color = {}));
|
|
11
|
-
const buildDepGraphYarnLockV1SimpleCyclesPruned = (extractedYarnLockV1Pkgs, pkgJson, options) => {
|
|
12
|
+
const buildDepGraphYarnLockV1SimpleCyclesPruned = async (extractedYarnLockV1Pkgs, pkgJson, options) => {
|
|
12
13
|
const { includeDevDeps, strictOutOfSync, includeOptionalDeps } = options;
|
|
13
14
|
const depGraphBuilder = new dep_graph_1.DepGraphBuilder({ name: 'yarn' }, { name: pkgJson.name, version: pkgJson.version });
|
|
14
15
|
const colorMap = {};
|
|
@@ -20,7 +21,7 @@ const buildDepGraphYarnLockV1SimpleCyclesPruned = (extractedYarnLockV1Pkgs, pkgJ
|
|
|
20
21
|
dependencies: topLevelDeps,
|
|
21
22
|
isDev: false,
|
|
22
23
|
};
|
|
23
|
-
dfsVisit(depGraphBuilder, rootNode, colorMap, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
|
|
24
|
+
await dfsVisit(depGraphBuilder, rootNode, colorMap, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
|
|
24
25
|
return depGraphBuilder.build();
|
|
25
26
|
};
|
|
26
27
|
exports.buildDepGraphYarnLockV1SimpleCyclesPruned = buildDepGraphYarnLockV1SimpleCyclesPruned;
|
|
@@ -33,13 +34,16 @@ exports.buildDepGraphYarnLockV1SimpleCyclesPruned = buildDepGraphYarnLockV1Simpl
|
|
|
33
34
|
* - When first exploring an edge, if it points to a GRAY node, a cycle is found and the GRAY node is pruned.
|
|
34
35
|
* - A pruned node has id `${originalId}|1`
|
|
35
36
|
*/
|
|
36
|
-
const dfsVisit = (depGraphBuilder, node, colorMap, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps) => {
|
|
37
|
+
const dfsVisit = async (depGraphBuilder, node, colorMap, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps) => {
|
|
37
38
|
colorMap[node.id] = Color.GRAY;
|
|
38
39
|
for (const [name, depInfo] of Object.entries(node.dependencies || {})) {
|
|
40
|
+
if (event_loop_spinner_1.eventLoopSpinner.isStarving()) {
|
|
41
|
+
await event_loop_spinner_1.eventLoopSpinner.spin();
|
|
42
|
+
}
|
|
39
43
|
const childNode = (0, util_1.getChildNode)(name, depInfo, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
|
|
40
44
|
if (!colorMap.hasOwnProperty(childNode.id)) {
|
|
41
45
|
(0, util_1.addPkgNodeToGraph)(depGraphBuilder, childNode, {});
|
|
42
|
-
dfsVisit(depGraphBuilder, childNode, colorMap, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
|
|
46
|
+
await dfsVisit(depGraphBuilder, childNode, colorMap, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
|
|
43
47
|
}
|
|
44
48
|
else if (colorMap[childNode.id] === Color.GRAY) {
|
|
45
49
|
// 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;
|
|
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;AAGjB,2DAAsD;AAEtD,IAAK,KAGJ;AAHD,WAAK,KAAK;IACR,iCAAI,CAAA;IACJ,mCAAK,CAAA;AACP,CAAC,EAHI,KAAK,KAAL,KAAK,QAGT;AAEM,MAAM,yCAAyC,GAAG,KAAK,EAC5D,uBAAuC,EACvC,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,IAAA,sBAAe,EAAC,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,MAAM,QAAQ,CACZ,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,KAAK,EACpB,eAAgC,EAChC,IAAa,EACb,QAA+B,EAC/B,uBAAuC,EACvC,eAAwB,EACxB,mBAA4B,EACb,EAAE;IACjB,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,IAAI,qCAAgB,CAAC,UAAU,EAAE,EAAE;YACjC,MAAM,qCAAgB,CAAC,IAAI,EAAE,CAAC;SAC/B;QAED,MAAM,SAAS,GAAG,IAAA,mBAAY,EAC5B,IAAI,EACJ,OAAO,EACP,uBAAuB,EACvB,eAAe,EAEf,mBAAmB,CACpB,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;YAC1C,IAAA,wBAAiB,EAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YAClD,MAAM,QAAQ,CACZ,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,IAAA,wBAAiB,EAAC,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,3 +1,3 @@
|
|
|
1
1
|
import type { DepGraphBuildOptions } from '../types';
|
|
2
2
|
import type { NormalisedPkgs, PackageJsonBase } from '../types';
|
|
3
|
-
export declare const buildDepGraphYarnLockV1Simple: (extractedYarnLockV1Pkgs: NormalisedPkgs, pkgJson: PackageJsonBase, options: DepGraphBuildOptions) => import("@snyk/dep-graph").DepGraph
|
|
3
|
+
export declare const buildDepGraphYarnLockV1Simple: (extractedYarnLockV1Pkgs: NormalisedPkgs, pkgJson: PackageJsonBase, options: DepGraphBuildOptions) => Promise<import("@snyk/dep-graph").DepGraph>;
|
|
@@ -3,7 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.buildDepGraphYarnLockV1Simple = void 0;
|
|
4
4
|
const dep_graph_1 = require("@snyk/dep-graph");
|
|
5
5
|
const util_1 = require("../util");
|
|
6
|
-
const
|
|
6
|
+
const event_loop_spinner_1 = require("event-loop-spinner");
|
|
7
|
+
const buildDepGraphYarnLockV1Simple = async (extractedYarnLockV1Pkgs, pkgJson, options) => {
|
|
7
8
|
const { includeDevDeps, strictOutOfSync, includeOptionalDeps } = options;
|
|
8
9
|
const depGraphBuilder = new dep_graph_1.DepGraphBuilder({ name: 'yarn' }, { name: pkgJson.name, version: pkgJson.version });
|
|
9
10
|
const visitedMap = new Set();
|
|
@@ -15,7 +16,7 @@ const buildDepGraphYarnLockV1Simple = (extractedYarnLockV1Pkgs, pkgJson, options
|
|
|
15
16
|
dependencies: topLevelDeps,
|
|
16
17
|
isDev: false,
|
|
17
18
|
};
|
|
18
|
-
dfsVisit(depGraphBuilder, rootNode, visitedMap, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
|
|
19
|
+
await dfsVisit(depGraphBuilder, rootNode, visitedMap, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
|
|
19
20
|
return depGraphBuilder.build();
|
|
20
21
|
};
|
|
21
22
|
exports.buildDepGraphYarnLockV1Simple = buildDepGraphYarnLockV1Simple;
|
|
@@ -25,13 +26,16 @@ exports.buildDepGraphYarnLockV1Simple = buildDepGraphYarnLockV1Simple;
|
|
|
25
26
|
* - If a node doesn't exist in the map, it means it hasn't been visited.
|
|
26
27
|
* - If a node is already visited, simply connect the new node with this node.
|
|
27
28
|
*/
|
|
28
|
-
const dfsVisit = (depGraphBuilder, node, visitedMap, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps) => {
|
|
29
|
+
const dfsVisit = async (depGraphBuilder, node, visitedMap, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps) => {
|
|
29
30
|
visitedMap.add(node.id);
|
|
30
31
|
for (const [name, depInfo] of Object.entries(node.dependencies || {})) {
|
|
32
|
+
if (event_loop_spinner_1.eventLoopSpinner.isStarving()) {
|
|
33
|
+
await event_loop_spinner_1.eventLoopSpinner.spin();
|
|
34
|
+
}
|
|
31
35
|
const childNode = (0, util_1.getChildNode)(name, depInfo, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
|
|
32
36
|
if (!visitedMap.has(childNode.id)) {
|
|
33
37
|
(0, util_1.addPkgNodeToGraph)(depGraphBuilder, childNode, {});
|
|
34
|
-
dfsVisit(depGraphBuilder, childNode, visitedMap, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
|
|
38
|
+
await dfsVisit(depGraphBuilder, childNode, visitedMap, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
|
|
35
39
|
}
|
|
36
40
|
depGraphBuilder.connectDep(node.id, childNode.id);
|
|
37
41
|
}
|
|
@@ -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;
|
|
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;AAGjB,2DAAsD;AAE/C,MAAM,6BAA6B,GAAG,KAAK,EAChD,uBAAuC,EACvC,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,IAAA,sBAAe,EAAC,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,MAAM,QAAQ,CACZ,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,KAAK,EACpB,eAAgC,EAChC,IAAa,EACb,UAAuB,EACvB,uBAAuC,EACvC,eAAwB,EACxB,mBAA4B,EACb,EAAE;IACjB,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,IAAI,qCAAgB,CAAC,UAAU,EAAE,EAAE;YACjC,MAAM,qCAAgB,CAAC,IAAI,EAAE,CAAC;SAC/B;QACD,MAAM,SAAS,GAAG,IAAA,mBAAY,EAC5B,IAAI,EACJ,OAAO,EACP,uBAAuB,EACvB,eAAe,EACf,mBAAmB,CACpB,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;YACjC,IAAA,wBAAiB,EAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YAClD,MAAM,QAAQ,CACZ,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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { NormalisedPkgs, PackageJsonBase } from '../types';
|
|
2
2
|
import type { DepGraphBuildOptions } from '../types';
|
|
3
|
-
export declare const buildDepGraphYarnLockV1WorkspaceCyclesPruned: (extractedYarnLockV1Pkgs: NormalisedPkgs, pkgJson: PackageJsonBase, workspacePkgNameToVersion: Record<string, string>, options: DepGraphBuildOptions) => import("@snyk/dep-graph").DepGraph
|
|
3
|
+
export declare const buildDepGraphYarnLockV1WorkspaceCyclesPruned: (extractedYarnLockV1Pkgs: NormalisedPkgs, pkgJson: PackageJsonBase, workspacePkgNameToVersion: Record<string, string>, options: DepGraphBuildOptions) => Promise<import("@snyk/dep-graph").DepGraph>;
|
|
@@ -4,6 +4,7 @@ exports.buildDepGraphYarnLockV1WorkspaceCyclesPruned = void 0;
|
|
|
4
4
|
const dep_graph_1 = require("@snyk/dep-graph");
|
|
5
5
|
const util_1 = require("../util");
|
|
6
6
|
const util_2 = require("./util");
|
|
7
|
+
const event_loop_spinner_1 = require("event-loop-spinner");
|
|
7
8
|
var Color;
|
|
8
9
|
(function (Color) {
|
|
9
10
|
Color[Color["GRAY"] = 0] = "GRAY";
|
|
@@ -11,7 +12,7 @@ var Color;
|
|
|
11
12
|
})(Color || (Color = {}));
|
|
12
13
|
// Parse a single workspace package using yarn.lock v1
|
|
13
14
|
// workspaces feature
|
|
14
|
-
const buildDepGraphYarnLockV1WorkspaceCyclesPruned = (extractedYarnLockV1Pkgs, pkgJson, workspacePkgNameToVersion, options) => {
|
|
15
|
+
const buildDepGraphYarnLockV1WorkspaceCyclesPruned = async (extractedYarnLockV1Pkgs, pkgJson, workspacePkgNameToVersion, options) => {
|
|
15
16
|
const { includeDevDeps, strictOutOfSync, includeOptionalDeps } = options;
|
|
16
17
|
const depGraphBuilder = new dep_graph_1.DepGraphBuilder({ name: 'yarn' }, { name: pkgJson.name, version: pkgJson.version });
|
|
17
18
|
const colorMap = {};
|
|
@@ -23,7 +24,7 @@ const buildDepGraphYarnLockV1WorkspaceCyclesPruned = (extractedYarnLockV1Pkgs, p
|
|
|
23
24
|
dependencies: topLevelDeps,
|
|
24
25
|
isDev: false,
|
|
25
26
|
};
|
|
26
|
-
dfsVisit(depGraphBuilder, rootNode, colorMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync, includeOptionalDeps);
|
|
27
|
+
await dfsVisit(depGraphBuilder, rootNode, colorMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync, includeOptionalDeps);
|
|
27
28
|
return depGraphBuilder.build();
|
|
28
29
|
};
|
|
29
30
|
exports.buildDepGraphYarnLockV1WorkspaceCyclesPruned = buildDepGraphYarnLockV1WorkspaceCyclesPruned;
|
|
@@ -37,9 +38,12 @@ exports.buildDepGraphYarnLockV1WorkspaceCyclesPruned = buildDepGraphYarnLockV1Wo
|
|
|
37
38
|
* - A pruned node has id `${originalId}|1`
|
|
38
39
|
* When coming across another workspace package as child node, simply add the node and edge to the graph and mark it as BLACK.
|
|
39
40
|
*/
|
|
40
|
-
const dfsVisit = (depGraphBuilder, node, colorMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync, includeOptionalDeps) => {
|
|
41
|
+
const dfsVisit = async (depGraphBuilder, node, colorMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync, includeOptionalDeps) => {
|
|
41
42
|
colorMap[node.id] = Color.GRAY;
|
|
42
43
|
for (const [name, depInfo] of Object.entries(node.dependencies || {})) {
|
|
44
|
+
if (event_loop_spinner_1.eventLoopSpinner.isStarving()) {
|
|
45
|
+
await event_loop_spinner_1.eventLoopSpinner.spin();
|
|
46
|
+
}
|
|
43
47
|
const isWorkspacePkg = !!workspacePkgNameToVersion[name];
|
|
44
48
|
const childNode = (0, util_2.getChildNodeYarnLockV1Workspace)(name, depInfo, workspacePkgNameToVersion, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
|
|
45
49
|
if (!colorMap.hasOwnProperty(childNode.id)) {
|
|
@@ -48,7 +52,7 @@ const dfsVisit = (depGraphBuilder, node, colorMap, extractedYarnLockV1Pkgs, work
|
|
|
48
52
|
isWorkspacePkg,
|
|
49
53
|
});
|
|
50
54
|
if (!isWorkspacePkg) {
|
|
51
|
-
dfsVisit(depGraphBuilder, childNode, colorMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync, includeOptionalDeps);
|
|
55
|
+
await dfsVisit(depGraphBuilder, childNode, colorMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync, includeOptionalDeps);
|
|
52
56
|
}
|
|
53
57
|
else {
|
|
54
58
|
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,kCAAsE;AAItE,iCAAyD;
|
|
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,3 +1,3 @@
|
|
|
1
1
|
import type { NormalisedPkgs, PackageJsonBase } from '../types';
|
|
2
2
|
import type { DepGraphBuildOptions } from '../types';
|
|
3
|
-
export declare const buildDepGraphYarnLockV1Workspace: (extractedYarnLockV1Pkgs: NormalisedPkgs, pkgJson: PackageJsonBase, workspacePkgNameToVersion: Record<string, string>, options: DepGraphBuildOptions) => import("@snyk/dep-graph").DepGraph
|
|
3
|
+
export declare const buildDepGraphYarnLockV1Workspace: (extractedYarnLockV1Pkgs: NormalisedPkgs, pkgJson: PackageJsonBase, workspacePkgNameToVersion: Record<string, string>, options: DepGraphBuildOptions) => Promise<import("@snyk/dep-graph").DepGraph>;
|
|
@@ -4,7 +4,8 @@ exports.buildDepGraphYarnLockV1Workspace = void 0;
|
|
|
4
4
|
const dep_graph_1 = require("@snyk/dep-graph");
|
|
5
5
|
const util_1 = require("../util");
|
|
6
6
|
const util_2 = require("./util");
|
|
7
|
-
const
|
|
7
|
+
const event_loop_spinner_1 = require("event-loop-spinner");
|
|
8
|
+
const buildDepGraphYarnLockV1Workspace = async (extractedYarnLockV1Pkgs, pkgJson, workspacePkgNameToVersion, options) => {
|
|
8
9
|
const { includeDevDeps, strictOutOfSync, includeOptionalDeps } = options;
|
|
9
10
|
const depGraphBuilder = new dep_graph_1.DepGraphBuilder({ name: 'yarn' }, { name: pkgJson.name, version: pkgJson.version });
|
|
10
11
|
const visitedMap = new Set();
|
|
@@ -16,7 +17,7 @@ const buildDepGraphYarnLockV1Workspace = (extractedYarnLockV1Pkgs, pkgJson, work
|
|
|
16
17
|
dependencies: topLevelDeps,
|
|
17
18
|
isDev: false,
|
|
18
19
|
};
|
|
19
|
-
dfsVisit(depGraphBuilder, rootNode, visitedMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync, includeOptionalDeps);
|
|
20
|
+
await dfsVisit(depGraphBuilder, rootNode, visitedMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync, includeOptionalDeps);
|
|
20
21
|
return depGraphBuilder.build();
|
|
21
22
|
};
|
|
22
23
|
exports.buildDepGraphYarnLockV1Workspace = buildDepGraphYarnLockV1Workspace;
|
|
@@ -30,9 +31,12 @@ exports.buildDepGraphYarnLockV1Workspace = buildDepGraphYarnLockV1Workspace;
|
|
|
30
31
|
* - A pruned node has id `${originalId}|1`
|
|
31
32
|
* When coming across another workspace package as child node, simply add the node and edge to the graph and mark it as BLACK.
|
|
32
33
|
*/
|
|
33
|
-
const dfsVisit = (depGraphBuilder, node, visitedMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync, includeOptionalDeps) => {
|
|
34
|
+
const dfsVisit = async (depGraphBuilder, node, visitedMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync, includeOptionalDeps) => {
|
|
34
35
|
visitedMap.add(node.id);
|
|
35
36
|
for (const [name, depInfo] of Object.entries(node.dependencies || {})) {
|
|
37
|
+
if (event_loop_spinner_1.eventLoopSpinner.isStarving()) {
|
|
38
|
+
await event_loop_spinner_1.eventLoopSpinner.spin();
|
|
39
|
+
}
|
|
36
40
|
const isWorkspacePkg = !!workspacePkgNameToVersion[name];
|
|
37
41
|
const childNode = (0, util_2.getChildNodeYarnLockV1Workspace)(name, depInfo, workspacePkgNameToVersion, extractedYarnLockV1Pkgs, strictOutOfSync, includeOptionalDeps);
|
|
38
42
|
if (!visitedMap.has(childNode.id)) {
|
|
@@ -41,7 +45,7 @@ const dfsVisit = (depGraphBuilder, node, visitedMap, extractedYarnLockV1Pkgs, wo
|
|
|
41
45
|
isWorkspacePkg,
|
|
42
46
|
});
|
|
43
47
|
if (!isWorkspacePkg) {
|
|
44
|
-
dfsVisit(depGraphBuilder, childNode, visitedMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync, includeOptionalDeps);
|
|
48
|
+
await dfsVisit(depGraphBuilder, childNode, visitedMap, extractedYarnLockV1Pkgs, workspacePkgNameToVersion, strictOutOfSync, includeOptionalDeps);
|
|
45
49
|
}
|
|
46
50
|
}
|
|
47
51
|
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,kCAAsE;AAGtE,iCAAyD;
|
|
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,kCAAsE;AAGtE,iCAAyD;AACzD,2DAAsD;AAE/C,MAAM,gCAAgC,GAAG,KAAK,EACnD,uBAAuC,EACvC,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,IAAA,sBAAe,EAAC,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,MAAM,QAAQ,CACZ,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,KAAK,EACpB,eAAgC,EAChC,IAAa,EACb,UAAuB,EACvB,uBAAuC,EACvC,yBAAiD,EACjD,eAAwB,EACxB,mBAA4B,EACb,EAAE;IACjB,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,IAAI,qCAAgB,CAAC,UAAU,EAAE,EAAE;YACjC,MAAM,qCAAgB,CAAC,IAAI,EAAE,CAAC;SAC/B;QACD,MAAM,cAAc,GAAG,CAAC,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC;QAEzD,MAAM,SAAS,GAAG,IAAA,sCAA+B,EAC/C,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,IAAA,wBAAiB,EAAC,eAAe,EAAE,SAAS,EAAE;gBAC5C,QAAQ,EAAE,KAAK;gBACf,cAAc;aACf,CAAC,CAAC;YACH,IAAI,CAAC,cAAc,EAAE;gBACnB,MAAM,QAAQ,CACZ,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"}
|
|
@@ -10,12 +10,12 @@ const parseYarnLockV1Project = async (pkgJsonContent, yarnLockContent, options)
|
|
|
10
10
|
const pkgs = (0, extract_yarnlock_v1_pkgs_1.extractPkgsFromYarnLockV1)(yarnLockContent);
|
|
11
11
|
const pkgJson = (0, util_1.parsePkgJson)(pkgJsonContent);
|
|
12
12
|
const depGraph = pruneCycles
|
|
13
|
-
? (0, build_depgraph_simple_pruned_1.buildDepGraphYarnLockV1SimpleCyclesPruned)(pkgs, pkgJson, {
|
|
13
|
+
? await (0, build_depgraph_simple_pruned_1.buildDepGraphYarnLockV1SimpleCyclesPruned)(pkgs, pkgJson, {
|
|
14
14
|
includeDevDeps,
|
|
15
15
|
strictOutOfSync,
|
|
16
16
|
includeOptionalDeps,
|
|
17
17
|
})
|
|
18
|
-
: (0, _1.buildDepGraphYarnLockV1Simple)(pkgs, pkgJson, {
|
|
18
|
+
: await (0, _1.buildDepGraphYarnLockV1Simple)(pkgs, pkgJson, {
|
|
19
19
|
includeDevDeps,
|
|
20
20
|
strictOutOfSync,
|
|
21
21
|
includeOptionalDeps,
|
|
@@ -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,IAAA,oDAAyB,EAAC,eAAe,CAAC,CAAC;IAExD,MAAM,OAAO,GAAoB,IAAA,mBAAY,EAAC,cAAc,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,WAAW;QAC1B,CAAC,CAAC,IAAA,wEAAyC,EAAC,IAAI,EAAE,OAAO,EAAE;
|
|
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,IAAA,oDAAyB,EAAC,eAAe,CAAC,CAAC;IAExD,MAAM,OAAO,GAAoB,IAAA,mBAAY,EAAC,cAAc,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,WAAW;QAC1B,CAAC,CAAC,MAAM,IAAA,wEAAyC,EAAC,IAAI,EAAE,OAAO,EAAE;YAC7D,cAAc;YACd,eAAe;YACf,mBAAmB;SACpB,CAAC;QACJ,CAAC,CAAC,MAAM,IAAA,gCAA6B,EAAC,IAAI,EAAE,OAAO,EAAE;YACjD,cAAc;YACd,eAAe;YACf,mBAAmB;SACpB,CAAC,CAAC;IAEP,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAzBW,QAAA,sBAAsB,0BAyBjC"}
|
|
@@ -5,6 +5,7 @@ const build_depgraph_workspace_package_pruned_1 = require("./build-depgraph-work
|
|
|
5
5
|
const build_depgraph_workspace_package_1 = require("./build-depgraph-workspace-package");
|
|
6
6
|
const extract_yarnlock_v1_pkgs_1 = require("./extract-yarnlock-v1-pkgs");
|
|
7
7
|
const util_1 = require("../util");
|
|
8
|
+
const c_map_1 = require("../../c-map");
|
|
8
9
|
const parseYarnLockV1WorkspaceProject = async (yarnLockContent, workspacePackagesPkgJsons, options) => {
|
|
9
10
|
const { includeDevDeps, includeOptionalDeps, pruneCycles, strictOutOfSync } = options;
|
|
10
11
|
const extractedYarnLockV1Pkgs = (0, extract_yarnlock_v1_pkgs_1.extractPkgsFromYarnLockV1)(yarnLockContent);
|
|
@@ -15,14 +16,14 @@ const parseYarnLockV1WorkspaceProject = async (yarnLockContent, workspacePackage
|
|
|
15
16
|
workspacePkgNameToVersion[parsedPkgJson.name] = parsedPkgJson.version;
|
|
16
17
|
return parsedPkgJson;
|
|
17
18
|
});
|
|
18
|
-
const depGraphs =
|
|
19
|
+
const depGraphs = (0, c_map_1.cMap)(parsedWorkspacePkgJsons, async (parsedPkgJson) => {
|
|
19
20
|
return pruneCycles
|
|
20
|
-
? (0, build_depgraph_workspace_package_pruned_1.buildDepGraphYarnLockV1WorkspaceCyclesPruned)(extractedYarnLockV1Pkgs, parsedPkgJson, workspacePkgNameToVersion, {
|
|
21
|
+
? await (0, build_depgraph_workspace_package_pruned_1.buildDepGraphYarnLockV1WorkspaceCyclesPruned)(extractedYarnLockV1Pkgs, parsedPkgJson, workspacePkgNameToVersion, {
|
|
21
22
|
includeDevDeps,
|
|
22
23
|
strictOutOfSync,
|
|
23
24
|
includeOptionalDeps,
|
|
24
25
|
})
|
|
25
|
-
: (0, build_depgraph_workspace_package_1.buildDepGraphYarnLockV1Workspace)(extractedYarnLockV1Pkgs, parsedPkgJson, workspacePkgNameToVersion, {
|
|
26
|
+
: await (0, build_depgraph_workspace_package_1.buildDepGraphYarnLockV1Workspace)(extractedYarnLockV1Pkgs, parsedPkgJson, workspacePkgNameToVersion, {
|
|
26
27
|
includeDevDeps,
|
|
27
28
|
strictOutOfSync,
|
|
28
29
|
includeOptionalDeps,
|
|
@@ -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;
|
|
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;AAEvC,uCAAmC;AAE5B,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,IAAA,oDAAyB,EAAC,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,IAAA,mBAAY,EAAC,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,IAAA,YAAI,EAAC,uBAAuB,EAAE,KAAK,EAAE,aAAa,EAAE,EAAE;QACtE,OAAO,WAAW;YAChB,CAAC,CAAC,MAAM,IAAA,sFAA4C,EAChD,uBAAuB,EACvB,aAAa,EACb,yBAAyB,EACzB;gBACE,cAAc;gBACd,eAAe;gBACf,mBAAmB;aACpB,CACF;YACH,CAAC,CAAC,MAAM,IAAA,mEAAgC,EACpC,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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { DepGraphBuildOptions } from '../types';
|
|
2
2
|
import type { NormalisedPkgs, PackageJsonBase } from '../types';
|
|
3
|
-
export declare const buildDepGraphYarnLockV2Simple: (extractedYarnLockV2Pkgs: NormalisedPkgs, pkgJson: PackageJsonBase, options: DepGraphBuildOptions) => import("@snyk/dep-graph").DepGraph
|
|
3
|
+
export declare const buildDepGraphYarnLockV2Simple: (extractedYarnLockV2Pkgs: NormalisedPkgs, pkgJson: PackageJsonBase, options: DepGraphBuildOptions) => Promise<import("@snyk/dep-graph").DepGraph>;
|
|
@@ -4,7 +4,8 @@ exports.buildDepGraphYarnLockV2Simple = void 0;
|
|
|
4
4
|
const dep_graph_1 = require("@snyk/dep-graph");
|
|
5
5
|
const util_1 = require("../util");
|
|
6
6
|
const utils_1 = require("./utils");
|
|
7
|
-
const
|
|
7
|
+
const event_loop_spinner_1 = require("event-loop-spinner");
|
|
8
|
+
const buildDepGraphYarnLockV2Simple = async (extractedYarnLockV2Pkgs, pkgJson, options) => {
|
|
8
9
|
const { includeDevDeps, strictOutOfSync, includeOptionalDeps } = options;
|
|
9
10
|
const depGraphBuilder = new dep_graph_1.DepGraphBuilder({ name: 'yarn' }, { name: pkgJson.name, version: pkgJson.version });
|
|
10
11
|
const visitedMap = new Set();
|
|
@@ -18,7 +19,7 @@ const buildDepGraphYarnLockV2Simple = (extractedYarnLockV2Pkgs, pkgJson, options
|
|
|
18
19
|
dependencies: topLevelDeps,
|
|
19
20
|
isDev: false,
|
|
20
21
|
};
|
|
21
|
-
dfsVisit(depGraphBuilder, rootNode, visitedMap, extractedYarnLockV2Pkgs, strictOutOfSync, includeOptionalDeps, pkgJson.resolutions || {});
|
|
22
|
+
await dfsVisit(depGraphBuilder, rootNode, visitedMap, extractedYarnLockV2Pkgs, strictOutOfSync, includeOptionalDeps, pkgJson.resolutions || {});
|
|
22
23
|
return depGraphBuilder.build();
|
|
23
24
|
};
|
|
24
25
|
exports.buildDepGraphYarnLockV2Simple = buildDepGraphYarnLockV2Simple;
|
|
@@ -28,13 +29,16 @@ exports.buildDepGraphYarnLockV2Simple = buildDepGraphYarnLockV2Simple;
|
|
|
28
29
|
* - If a node doesn't exist in the map, it means it hasn't been visited.
|
|
29
30
|
* - If a node is already visited, simply connect the new node with this node.
|
|
30
31
|
*/
|
|
31
|
-
const dfsVisit = (depGraphBuilder, node, visitedMap, extractedYarnLockV2Pkgs, strictOutOfSync, includeOptionalDeps, resolutions) => {
|
|
32
|
+
const dfsVisit = async (depGraphBuilder, node, visitedMap, extractedYarnLockV2Pkgs, strictOutOfSync, includeOptionalDeps, resolutions) => {
|
|
32
33
|
visitedMap.add(node.id);
|
|
33
34
|
for (const [name, depInfo] of Object.entries(node.dependencies || {})) {
|
|
35
|
+
if (event_loop_spinner_1.eventLoopSpinner.isStarving()) {
|
|
36
|
+
await event_loop_spinner_1.eventLoopSpinner.spin();
|
|
37
|
+
}
|
|
34
38
|
const childNode = (0, utils_1.getYarnLockV2ChildNode)(name, depInfo, extractedYarnLockV2Pkgs, strictOutOfSync, includeOptionalDeps, resolutions, node);
|
|
35
39
|
if (!visitedMap.has(childNode.id)) {
|
|
36
40
|
(0, util_1.addPkgNodeToGraph)(depGraphBuilder, childNode, {});
|
|
37
|
-
dfsVisit(depGraphBuilder, childNode, visitedMap, extractedYarnLockV2Pkgs, strictOutOfSync, includeOptionalDeps, resolutions);
|
|
41
|
+
await dfsVisit(depGraphBuilder, childNode, visitedMap, extractedYarnLockV2Pkgs, strictOutOfSync, includeOptionalDeps, resolutions);
|
|
38
42
|
}
|
|
39
43
|
depGraphBuilder.connectDep(node.id, childNode.id);
|
|
40
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-depgraph-simple.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v2/build-depgraph-simple.ts"],"names":[],"mappings":";;;AAAA,+CAAkD;AAClD,kCAAsE;AAGtE,mCAAiD;
|
|
1
|
+
{"version":3,"file":"build-depgraph-simple.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v2/build-depgraph-simple.ts"],"names":[],"mappings":";;;AAAA,+CAAkD;AAClD,kCAAsE;AAGtE,mCAAiD;AACjD,2DAAsD;AAE/C,MAAM,6BAA6B,GAAG,KAAK,EAChD,uBAAuC,EACvC,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,IAAA,sBAAe,EAAC,OAAO,EAAE;QAC5C,cAAc;KACf,CAAC,CAAC;IAEH,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,MAAM,QAAQ,CACZ,eAAe,EACf,QAAQ,EACR,UAAU,EACV,uBAAuB,EACvB,eAAe,EACf,mBAAmB,EACnB,OAAO,CAAC,WAAW,IAAI,EAAE,CAC1B,CAAC;IAEF,OAAO,eAAe,CAAC,KAAK,EAAE,CAAC;AACjC,CAAC,CAAC;AArCW,QAAA,6BAA6B,iCAqCxC;AAEF;;;;;GAKG;AACH,MAAM,QAAQ,GAAG,KAAK,EACpB,eAAgC,EAChC,IAAa,EACb,UAAuB,EACvB,uBAAuC,EACvC,eAAwB,EACxB,mBAA4B,EAC5B,WAAmC,EACpB,EAAE;IACjB,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,IAAI,qCAAgB,CAAC,UAAU,EAAE,EAAE;YACjC,MAAM,qCAAgB,CAAC,IAAI,EAAE,CAAC;SAC/B;QAED,MAAM,SAAS,GAAG,IAAA,8BAAsB,EACtC,IAAI,EACJ,OAAO,EACP,uBAAuB,EACvB,eAAe,EACf,mBAAmB,EACnB,WAAW,EACX,IAAI,CACL,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;YACjC,IAAA,wBAAiB,EAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YAClD,MAAM,QAAQ,CACZ,eAAe,EACf,SAAS,EACT,UAAU,EACV,uBAAuB,EACvB,eAAe,EACf,mBAAmB,EACnB,WAAW,CACZ,CAAC;SACH;QAED,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;KACnD;AACH,CAAC,CAAC"}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
import { ProjectParseOptions } from '../types';
|
|
2
|
-
|
|
2
|
+
import { DepGraph } from '@snyk/dep-graph';
|
|
3
|
+
export declare const parseYarnLockV2Project: (pkgJsonContent: string, yarnLockContent: string, options: ProjectParseOptions) => Promise<DepGraph>;
|
|
@@ -4,11 +4,11 @@ exports.parseYarnLockV2Project = void 0;
|
|
|
4
4
|
const extract_yarnlock_v2_pkgs_1 = require("./extract-yarnlock-v2-pkgs");
|
|
5
5
|
const util_1 = require("../util");
|
|
6
6
|
const build_depgraph_simple_1 = require("./build-depgraph-simple");
|
|
7
|
-
const parseYarnLockV2Project = (pkgJsonContent, yarnLockContent, options) => {
|
|
7
|
+
const parseYarnLockV2Project = async (pkgJsonContent, yarnLockContent, options) => {
|
|
8
8
|
const { includeDevDeps, includeOptionalDeps, strictOutOfSync } = options;
|
|
9
9
|
const pkgs = (0, extract_yarnlock_v2_pkgs_1.extractPkgsFromYarnLockV2)(yarnLockContent);
|
|
10
10
|
const pkgJson = (0, util_1.parsePkgJson)(pkgJsonContent);
|
|
11
|
-
const depgraph = (0, build_depgraph_simple_1.buildDepGraphYarnLockV2Simple)(pkgs, pkgJson, {
|
|
11
|
+
const depgraph = await (0, build_depgraph_simple_1.buildDepGraphYarnLockV2Simple)(pkgs, pkgJson, {
|
|
12
12
|
includeDevDeps,
|
|
13
13
|
strictOutOfSync,
|
|
14
14
|
includeOptionalDeps,
|
|
@@ -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;AAEvC,mEAAwE;
|
|
1
|
+
{"version":3,"file":"simple.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/yarn-lock-v2/simple.ts"],"names":[],"mappings":";;;AAAA,yEAAuE;AACvE,kCAAuC;AAEvC,mEAAwE;AAGjE,MAAM,sBAAsB,GAAG,KAAK,EACzC,cAAsB,EACtB,eAAuB,EACvB,OAA4B,EACT,EAAE;IACrB,MAAM,EAAE,cAAc,EAAE,mBAAmB,EAAE,eAAe,EAAE,GAAG,OAAO,CAAC;IAEzE,MAAM,IAAI,GAAG,IAAA,oDAAyB,EAAC,eAAe,CAAC,CAAC;IAExD,MAAM,OAAO,GAAoB,IAAA,mBAAY,EAAC,cAAc,CAAC,CAAC;IAE9D,MAAM,QAAQ,GAAG,MAAM,IAAA,qDAA6B,EAAC,IAAI,EAAE,OAAO,EAAE;QAClE,cAAc;QACd,eAAe;QACf,mBAAmB;KACpB,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAlBW,QAAA,sBAAsB,0BAkBjC"}
|
package/package.json
CHANGED
|
@@ -38,6 +38,7 @@
|
|
|
38
38
|
"event-loop-spinner": "^2.0.0",
|
|
39
39
|
"js-yaml": "^4.1.0",
|
|
40
40
|
"lodash.clonedeep": "^4.5.0",
|
|
41
|
+
"p-map": "^4.0.0",
|
|
41
42
|
"lodash.flatmap": "^4.5.0",
|
|
42
43
|
"lodash.isempty": "^4.4.0",
|
|
43
44
|
"lodash.topairs": "^4.3.0",
|
|
@@ -64,5 +65,5 @@
|
|
|
64
65
|
"typescript": "4.8.4"
|
|
65
66
|
},
|
|
66
67
|
"packageManager": "yarn@2.4.1",
|
|
67
|
-
"version": "1.
|
|
68
|
+
"version": "1.49.0"
|
|
68
69
|
}
|