snyk-nodejs-lockfile-parser 1.48.2 → 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 +4 -3
- package/dist/dep-graph-builders/npm-lock-v2/index.js +68 -53
- 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,10 +1,11 @@
|
|
|
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) =>
|
|
7
|
-
export declare const getChildNodeKey: (name: string, ancestry: {
|
|
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>;
|
|
8
|
+
export declare const getChildNodeKey: (name: string, version: string, ancestry: {
|
|
8
9
|
name: string;
|
|
9
10
|
key: string;
|
|
10
11
|
inBundle: boolean;
|
|
@@ -7,13 +7,15 @@ const dep_graph_1 = require("@snyk/dep-graph");
|
|
|
7
7
|
const util_1 = require("../util");
|
|
8
8
|
const errors_1 = require("../../errors");
|
|
9
9
|
const parsers_1 = require("../../parsers");
|
|
10
|
+
const semver = require("semver");
|
|
10
11
|
const micromatch = require("micromatch");
|
|
11
12
|
const pathUtil = require("path");
|
|
12
|
-
const
|
|
13
|
+
const event_loop_spinner_1 = require("event-loop-spinner");
|
|
14
|
+
const parseNpmLockV2Project = async (pkgJsonContent, pkgLockContent, options) => {
|
|
13
15
|
const { includeDevDeps, strictOutOfSync, includeOptionalDeps } = options;
|
|
14
16
|
const pkgJson = (0, util_1.parsePkgJson)(pkgJsonContent);
|
|
15
17
|
const pkgs = (0, extract_npm_lock_v2_pkgs_1.extractPkgsFromNpmLockV2)(pkgLockContent);
|
|
16
|
-
const depgraph = (0, exports.buildDepGraphNpmLockV2)(pkgs, pkgJson, {
|
|
18
|
+
const depgraph = await (0, exports.buildDepGraphNpmLockV2)(pkgs, pkgJson, {
|
|
17
19
|
includeDevDeps,
|
|
18
20
|
includeOptionalDeps,
|
|
19
21
|
strictOutOfSync,
|
|
@@ -21,7 +23,7 @@ const parseNpmLockV2Project = (pkgJsonContent, pkgLockContent, options) => {
|
|
|
21
23
|
return depgraph;
|
|
22
24
|
};
|
|
23
25
|
exports.parseNpmLockV2Project = parseNpmLockV2Project;
|
|
24
|
-
const buildDepGraphNpmLockV2 = (npmLockPkgs, pkgJson, options) => {
|
|
26
|
+
const buildDepGraphNpmLockV2 = async (npmLockPkgs, pkgJson, options) => {
|
|
25
27
|
const { includeDevDeps, strictOutOfSync, includeOptionalDeps } = options;
|
|
26
28
|
const depGraphBuilder = new dep_graph_1.DepGraphBuilder({ name: 'npm' }, { name: pkgJson.name, version: pkgJson.version });
|
|
27
29
|
const topLevelDeps = (0, util_1.getTopLevelDeps)(pkgJson, {
|
|
@@ -50,13 +52,16 @@ const buildDepGraphNpmLockV2 = (npmLockPkgs, pkgJson, options) => {
|
|
|
50
52
|
return acc;
|
|
51
53
|
}, new Map());
|
|
52
54
|
const visitedMap = new Set();
|
|
53
|
-
dfsVisit(depGraphBuilder, rootNode, visitedMap, npmLockPkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, [], pkgKeysByName);
|
|
55
|
+
await dfsVisit(depGraphBuilder, rootNode, visitedMap, npmLockPkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, [], pkgKeysByName);
|
|
54
56
|
return depGraphBuilder.build();
|
|
55
57
|
};
|
|
56
58
|
exports.buildDepGraphNpmLockV2 = buildDepGraphNpmLockV2;
|
|
57
|
-
const dfsVisit = (depGraphBuilder, node, visitedMap, npmLockPkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, ancestry, pkgKeysByName) => {
|
|
59
|
+
const dfsVisit = async (depGraphBuilder, node, visitedMap, npmLockPkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, ancestry, pkgKeysByName) => {
|
|
58
60
|
visitedMap.add(node.id);
|
|
59
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
|
+
}
|
|
60
65
|
const childNode = getChildNode(name, depInfo, npmLockPkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, [
|
|
61
66
|
...ancestry,
|
|
62
67
|
{
|
|
@@ -67,7 +72,7 @@ const dfsVisit = (depGraphBuilder, node, visitedMap, npmLockPkgs, strictOutOfSyn
|
|
|
67
72
|
], pkgKeysByName);
|
|
68
73
|
if (!visitedMap.has(childNode.id)) {
|
|
69
74
|
(0, util_1.addPkgNodeToGraph)(depGraphBuilder, childNode, {});
|
|
70
|
-
dfsVisit(depGraphBuilder, childNode, visitedMap, npmLockPkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, [
|
|
75
|
+
await dfsVisit(depGraphBuilder, childNode, visitedMap, npmLockPkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, [
|
|
71
76
|
...ancestry,
|
|
72
77
|
{
|
|
73
78
|
name: node.name,
|
|
@@ -80,7 +85,7 @@ const dfsVisit = (depGraphBuilder, node, visitedMap, npmLockPkgs, strictOutOfSyn
|
|
|
80
85
|
}
|
|
81
86
|
};
|
|
82
87
|
const getChildNode = (name, depInfo, pkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, ancestry, pkgKeysByName) => {
|
|
83
|
-
let childNodeKey = (0, exports.getChildNodeKey)(name, ancestry, pkgs, pkgKeysByName);
|
|
88
|
+
let childNodeKey = (0, exports.getChildNodeKey)(name, depInfo.version, ancestry, pkgs, pkgKeysByName);
|
|
84
89
|
if (!childNodeKey) {
|
|
85
90
|
if (strictOutOfSync) {
|
|
86
91
|
throw new errors_1.OutOfSyncError(`${name}@${depInfo.version}`, parsers_1.LockfileType.npm);
|
|
@@ -129,55 +134,62 @@ const getChildNode = (name, depInfo, pkgs, strictOutOfSync, includeDevDeps, incl
|
|
|
129
134
|
key: childNodeKey,
|
|
130
135
|
};
|
|
131
136
|
};
|
|
132
|
-
const getChildNodeKey = (name, ancestry, pkgs, pkgKeysByName) => {
|
|
137
|
+
const getChildNodeKey = (name, version, ancestry, pkgs, pkgKeysByName) => {
|
|
138
|
+
// This is a list of all our possible options for the childKey
|
|
133
139
|
const candidateKeys = pkgKeysByName.get(name);
|
|
134
140
|
// Lockfile missing entry
|
|
135
141
|
if (!candidateKeys) {
|
|
136
142
|
return undefined;
|
|
137
143
|
}
|
|
138
|
-
//
|
|
144
|
+
// If we only have one candidate then we just take it
|
|
139
145
|
if (candidateKeys.length === 1) {
|
|
140
146
|
return candidateKeys[0];
|
|
141
147
|
}
|
|
142
|
-
// If we are
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
148
|
+
// If we are bundled we assume we are scoped by the bundle root at least
|
|
149
|
+
// otherwise the ancestry root is the root ignoring the true root
|
|
150
|
+
const isBundled = ancestry[ancestry.length - 1].inBundle;
|
|
151
|
+
const rootOperatingIdx = isBundled
|
|
152
|
+
? ancestry.findIndex((el) => el.inBundle === true) - 1
|
|
153
|
+
: 1;
|
|
154
|
+
const ancestryFromRootOperatingIdx = [
|
|
155
|
+
...ancestry.slice(rootOperatingIdx).map((el) => el.name),
|
|
156
|
+
name,
|
|
157
|
+
];
|
|
158
|
+
// We filter on a number of cases
|
|
159
|
+
let filteredCandidates = candidateKeys.filter((candidate) => {
|
|
160
|
+
// This is splitting the candidate that looks like
|
|
161
|
+
// `node_modules/a/node_modules/b` into ["a", "b"]
|
|
162
|
+
// To do this we remove the first node_modules substring
|
|
163
|
+
// and then split on the rest
|
|
164
|
+
const candidateAncestry = candidate
|
|
165
|
+
.replace('node_modules/', '')
|
|
166
|
+
.split('/node_modules/');
|
|
167
|
+
// Check the ancestry of the candidate is a subset of
|
|
168
|
+
// the current pkg. If it is not then it can't be a
|
|
169
|
+
// valid key.
|
|
170
|
+
const isCandidateAncestryIsSubsetOfPkgAncestry = candidateAncestry.every((pkg) => {
|
|
171
|
+
return ancestryFromRootOperatingIdx.includes(pkg);
|
|
154
172
|
});
|
|
155
|
-
if (
|
|
156
|
-
return
|
|
157
|
-
}
|
|
158
|
-
const sortedKeys = filteredCandidates.sort((a, b) => b.split('/node_modules/').length - a.split('/node_modules/').length);
|
|
159
|
-
const longestPathLength = sortedKeys[0].split('/node_modules/').length;
|
|
160
|
-
const onlyLongestKeys = sortedKeys.filter((key) => key.split('/node_modules/').length === longestPathLength);
|
|
161
|
-
if (onlyLongestKeys.length === 1) {
|
|
162
|
-
return onlyLongestKeys[0];
|
|
173
|
+
if (isCandidateAncestryIsSubsetOfPkgAncestry === false) {
|
|
174
|
+
return false;
|
|
163
175
|
}
|
|
164
|
-
//
|
|
165
|
-
//
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
const possibleFilteredKeys = keysFilteredByParentKey.filter((key) => key.includes(parentKey));
|
|
171
|
-
if (possibleFilteredKeys.length === 1) {
|
|
172
|
-
return possibleFilteredKeys[0];
|
|
173
|
-
}
|
|
174
|
-
if (possibleFilteredKeys.length === 0) {
|
|
175
|
-
continue;
|
|
176
|
+
// If we are bundled we assume the bundle root is the first value
|
|
177
|
+
// in the candidates scoping
|
|
178
|
+
if (isBundled) {
|
|
179
|
+
const doesBundledPkgShareBundleRoot = candidateAncestry[0] === ancestryFromRootOperatingIdx[0];
|
|
180
|
+
if (doesBundledPkgShareBundleRoot === false) {
|
|
181
|
+
return false;
|
|
176
182
|
}
|
|
177
|
-
keysFilteredByParentKey = possibleFilteredKeys;
|
|
178
183
|
}
|
|
184
|
+
// So now we can check semver to filter out some values
|
|
185
|
+
const candidatePkgVersion = pkgs[candidate].version;
|
|
186
|
+
const doesVersionSatisfySemver = semver.satisfies(candidatePkgVersion, version);
|
|
187
|
+
return doesVersionSatisfySemver;
|
|
188
|
+
});
|
|
189
|
+
if (filteredCandidates.length === 1) {
|
|
190
|
+
return filteredCandidates[0];
|
|
179
191
|
}
|
|
180
|
-
|
|
192
|
+
const ancestry_names = ancestry.map((el) => el.name).concat(name);
|
|
181
193
|
while (ancestry_names.length > 0) {
|
|
182
194
|
const possible_key = `node_modules/${ancestry_names.join('/node_modules/')}`;
|
|
183
195
|
if (pkgs[possible_key]) {
|
|
@@ -185,16 +197,19 @@ const getChildNodeKey = (name, ancestry, pkgs, pkgKeysByName) => {
|
|
|
185
197
|
}
|
|
186
198
|
ancestry_names.shift();
|
|
187
199
|
}
|
|
188
|
-
//
|
|
189
|
-
|
|
190
|
-
const
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
200
|
+
// Here we go through th eancestry backwards to find the nearest
|
|
201
|
+
// ancestor package
|
|
202
|
+
const reversedAncestry = ancestry.reverse();
|
|
203
|
+
for (let parentIndex = 0; parentIndex < reversedAncestry.length; parentIndex++) {
|
|
204
|
+
const parentKey = reversedAncestry[parentIndex].key;
|
|
205
|
+
const possibleFilteredKeys = filteredCandidates.filter((key) => key.includes(parentKey));
|
|
206
|
+
if (possibleFilteredKeys.length === 1) {
|
|
207
|
+
return possibleFilteredKeys[0];
|
|
208
|
+
}
|
|
209
|
+
if (possibleFilteredKeys.length === 0) {
|
|
210
|
+
continue;
|
|
211
|
+
}
|
|
212
|
+
filteredCandidates = possibleFilteredKeys;
|
|
198
213
|
}
|
|
199
214
|
return undefined;
|
|
200
215
|
};
|
|
@@ -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":";;;AAAA,+CAAkD;AAClD,kCAAsE;AAItE,iCAAyD;AACzD,2DAAsD;AAEtD,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,KAAK,EAC/D,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,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,yBAAyB,EACzB,eAAe,EACf,mBAAmB,CACpB,CAAC;IAEF,OAAO,eAAe,CAAC,KAAK,EAAE,CAAC;AACjC,CAAC,CAAC;AApCW,QAAA,4CAA4C,gDAoCvD;AAEF;;;;;;;;;GASG;AACH,MAAM,QAAQ,GAAG,KAAK,EACpB,eAAgC,EAChC,IAAa,EACb,QAA+B,EAC/B,uBAAuC,EACvC,yBAAiD,EACjD,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;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,QAAQ,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;YAC1C,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,QAAQ,EACR,uBAAuB,EACvB,yBAAyB,EACzB,eAAe,EACf,mBAAmB,CACpB,CAAC;aACH;iBAAM;gBACL,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC;aACtC;SACF;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;gBAC5C,QAAQ,EAAE,IAAI;gBACd,cAAc;aACf,CAAC,CAAC;SACJ;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 { 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
|
}
|