snyk-nodejs-lockfile-parser 1.48.1 → 1.48.3
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.
|
@@ -4,3 +4,8 @@ import type { NpmLockPkg } from './extract-npm-lock-v2-pkgs';
|
|
|
4
4
|
export { extractPkgsFromNpmLockV2 };
|
|
5
5
|
export declare const parseNpmLockV2Project: (pkgJsonContent: string, pkgLockContent: string, options: ProjectParseOptions) => import("@snyk/dep-graph").DepGraph;
|
|
6
6
|
export declare const buildDepGraphNpmLockV2: (npmLockPkgs: Record<string, NpmLockPkg>, pkgJson: PackageJsonBase, options: DepGraphBuildOptions) => import("@snyk/dep-graph").DepGraph;
|
|
7
|
+
export declare const getChildNodeKey: (name: string, version: string, ancestry: {
|
|
8
|
+
name: string;
|
|
9
|
+
key: string;
|
|
10
|
+
inBundle: boolean;
|
|
11
|
+
}[], pkgs: Record<string, NpmLockPkg>, pkgKeysByName: Map<string, string[]>) => string | undefined;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.buildDepGraphNpmLockV2 = exports.parseNpmLockV2Project = exports.extractPkgsFromNpmLockV2 = void 0;
|
|
3
|
+
exports.getChildNodeKey = exports.buildDepGraphNpmLockV2 = exports.parseNpmLockV2Project = exports.extractPkgsFromNpmLockV2 = void 0;
|
|
4
4
|
const extract_npm_lock_v2_pkgs_1 = require("./extract-npm-lock-v2-pkgs");
|
|
5
5
|
Object.defineProperty(exports, "extractPkgsFromNpmLockV2", { enumerable: true, get: function () { return extract_npm_lock_v2_pkgs_1.extractPkgsFromNpmLockV2; } });
|
|
6
6
|
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
13
|
const parseNpmLockV2Project = (pkgJsonContent, pkgLockContent, options) => {
|
|
@@ -50,14 +51,14 @@ const buildDepGraphNpmLockV2 = (npmLockPkgs, pkgJson, options) => {
|
|
|
50
51
|
return acc;
|
|
51
52
|
}, new Map());
|
|
52
53
|
const visitedMap = new Set();
|
|
53
|
-
dfsVisit(depGraphBuilder, rootNode, visitedMap, npmLockPkgs, strictOutOfSync, includeOptionalDeps, [], pkgKeysByName);
|
|
54
|
+
dfsVisit(depGraphBuilder, rootNode, visitedMap, npmLockPkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, [], pkgKeysByName);
|
|
54
55
|
return depGraphBuilder.build();
|
|
55
56
|
};
|
|
56
57
|
exports.buildDepGraphNpmLockV2 = buildDepGraphNpmLockV2;
|
|
57
|
-
const dfsVisit = (depGraphBuilder, node, visitedMap, npmLockPkgs, strictOutOfSync, includeOptionalDeps, ancestry, pkgKeysByName) => {
|
|
58
|
+
const dfsVisit = (depGraphBuilder, node, visitedMap, npmLockPkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, ancestry, pkgKeysByName) => {
|
|
58
59
|
visitedMap.add(node.id);
|
|
59
60
|
for (const [name, depInfo] of Object.entries(node.dependencies || {})) {
|
|
60
|
-
const childNode = getChildNode(name, depInfo, npmLockPkgs, strictOutOfSync, includeOptionalDeps, [
|
|
61
|
+
const childNode = getChildNode(name, depInfo, npmLockPkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, [
|
|
61
62
|
...ancestry,
|
|
62
63
|
{
|
|
63
64
|
name: node.name,
|
|
@@ -67,7 +68,7 @@ const dfsVisit = (depGraphBuilder, node, visitedMap, npmLockPkgs, strictOutOfSyn
|
|
|
67
68
|
], pkgKeysByName);
|
|
68
69
|
if (!visitedMap.has(childNode.id)) {
|
|
69
70
|
(0, util_1.addPkgNodeToGraph)(depGraphBuilder, childNode, {});
|
|
70
|
-
dfsVisit(depGraphBuilder, childNode, visitedMap, npmLockPkgs, strictOutOfSync, includeOptionalDeps, [
|
|
71
|
+
dfsVisit(depGraphBuilder, childNode, visitedMap, npmLockPkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, [
|
|
71
72
|
...ancestry,
|
|
72
73
|
{
|
|
73
74
|
name: node.name,
|
|
@@ -79,8 +80,8 @@ const dfsVisit = (depGraphBuilder, node, visitedMap, npmLockPkgs, strictOutOfSyn
|
|
|
79
80
|
depGraphBuilder.connectDep(node.id, childNode.id);
|
|
80
81
|
}
|
|
81
82
|
};
|
|
82
|
-
const getChildNode = (name, depInfo, pkgs, strictOutOfSync, includeOptionalDeps, ancestry, pkgKeysByName) => {
|
|
83
|
-
let childNodeKey = getChildNodeKey(name, ancestry, pkgs, pkgKeysByName);
|
|
83
|
+
const getChildNode = (name, depInfo, pkgs, strictOutOfSync, includeDevDeps, includeOptionalDeps, ancestry, pkgKeysByName) => {
|
|
84
|
+
let childNodeKey = (0, exports.getChildNodeKey)(name, depInfo.version, ancestry, pkgs, pkgKeysByName);
|
|
84
85
|
if (!childNodeKey) {
|
|
85
86
|
if (strictOutOfSync) {
|
|
86
87
|
throw new errors_1.OutOfSyncError(`${name}@${depInfo.version}`, parsers_1.LockfileType.npm);
|
|
@@ -113,6 +114,9 @@ const getChildNode = (name, depInfo, pkgs, strictOutOfSync, includeOptionalDeps,
|
|
|
113
114
|
depData = pkgs[depData.resolved];
|
|
114
115
|
}
|
|
115
116
|
const dependencies = (0, util_1.getGraphDependencies)(depData.dependencies || {}, depInfo.isDev);
|
|
117
|
+
const devDependencies = includeDevDeps
|
|
118
|
+
? (0, util_1.getGraphDependencies)(depData.devDependencies || {}, depInfo.isDev)
|
|
119
|
+
: {};
|
|
116
120
|
const optionalDependencies = includeOptionalDeps
|
|
117
121
|
? (0, util_1.getGraphDependencies)(depData.optionalDependencies || {}, depInfo.isDev)
|
|
118
122
|
: {};
|
|
@@ -120,59 +124,66 @@ const getChildNode = (name, depInfo, pkgs, strictOutOfSync, includeOptionalDeps,
|
|
|
120
124
|
id: `${name}@${depData.version}`,
|
|
121
125
|
name: name,
|
|
122
126
|
version: depData.version,
|
|
123
|
-
dependencies: Object.assign(Object.assign({}, dependencies), optionalDependencies),
|
|
127
|
+
dependencies: Object.assign(Object.assign(Object.assign({}, dependencies), devDependencies), optionalDependencies),
|
|
124
128
|
isDev: depInfo.isDev,
|
|
125
129
|
inBundle: depData.inBundle,
|
|
126
130
|
key: childNodeKey,
|
|
127
131
|
};
|
|
128
132
|
};
|
|
129
|
-
const getChildNodeKey = (name, ancestry, pkgs, pkgKeysByName) => {
|
|
133
|
+
const getChildNodeKey = (name, version, ancestry, pkgs, pkgKeysByName) => {
|
|
134
|
+
// This is a list of all our possible options for the childKey
|
|
130
135
|
const candidateKeys = pkgKeysByName.get(name);
|
|
131
136
|
// Lockfile missing entry
|
|
132
137
|
if (!candidateKeys) {
|
|
133
138
|
return undefined;
|
|
134
139
|
}
|
|
135
|
-
//
|
|
140
|
+
// If we only have one candidate then we just take it
|
|
136
141
|
if (candidateKeys.length === 1) {
|
|
137
142
|
return candidateKeys[0];
|
|
138
143
|
}
|
|
139
|
-
// If we are
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
144
|
+
// If we are bundled we assume we are scoped by the bundle root at least
|
|
145
|
+
// otherwise the ancestry root is the root ignoring the true root
|
|
146
|
+
const isBundled = ancestry[ancestry.length - 1].inBundle;
|
|
147
|
+
const rootOperatingIdx = isBundled
|
|
148
|
+
? ancestry.findIndex((el) => el.inBundle === true) - 1
|
|
149
|
+
: 1;
|
|
150
|
+
const ancestryFromRootOperatingIdx = [
|
|
151
|
+
...ancestry.slice(rootOperatingIdx).map((el) => el.name),
|
|
152
|
+
name,
|
|
153
|
+
];
|
|
154
|
+
// We filter on a number of cases
|
|
155
|
+
let filteredCandidates = candidateKeys.filter((candidate) => {
|
|
156
|
+
// This is splitting the candidate that looks like
|
|
157
|
+
// `node_modules/a/node_modules/b` into ["a", "b"]
|
|
158
|
+
// To do this we remove the first node_modules substring
|
|
159
|
+
// and then split on the rest
|
|
160
|
+
const candidateAncestry = candidate
|
|
161
|
+
.replace('node_modules/', '')
|
|
162
|
+
.split('/node_modules/');
|
|
163
|
+
// Check the ancestry of the candidate is a subset of
|
|
164
|
+
// the current pkg. If it is not then it can't be a
|
|
165
|
+
// valid key.
|
|
166
|
+
const isCandidateAncestryIsSubsetOfPkgAncestry = candidateAncestry.every((pkg) => {
|
|
167
|
+
return ancestryFromRootOperatingIdx.includes(pkg);
|
|
151
168
|
});
|
|
152
|
-
if (
|
|
153
|
-
return
|
|
154
|
-
}
|
|
155
|
-
const sortedKeys = filteredCandidates.sort((a, b) => b.split('/node_modules/').length - a.split('/node_modules/').length);
|
|
156
|
-
const longestPathLength = sortedKeys[0].split('/node_modules/').length;
|
|
157
|
-
const onlyLongestKeys = sortedKeys.filter((key) => key.split('/node_modules/').length === longestPathLength);
|
|
158
|
-
if (onlyLongestKeys.length === 1) {
|
|
159
|
-
return onlyLongestKeys[0];
|
|
169
|
+
if (isCandidateAncestryIsSubsetOfPkgAncestry === false) {
|
|
170
|
+
return false;
|
|
160
171
|
}
|
|
161
|
-
//
|
|
162
|
-
//
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
const possibleFilteredKeys = keysFilteredByParentKey.filter((key) => key.includes(parentKey));
|
|
168
|
-
if (possibleFilteredKeys.length === 1) {
|
|
169
|
-
return possibleFilteredKeys[0];
|
|
172
|
+
// If we are bundled we assume the bundle root is the first value
|
|
173
|
+
// in the candidates scoping
|
|
174
|
+
if (isBundled) {
|
|
175
|
+
const doesBundledPkgShareBundleRoot = candidateAncestry[0] === ancestryFromRootOperatingIdx[0];
|
|
176
|
+
if (doesBundledPkgShareBundleRoot === false) {
|
|
177
|
+
return false;
|
|
170
178
|
}
|
|
171
|
-
if (possibleFilteredKeys.length === 0) {
|
|
172
|
-
continue;
|
|
173
|
-
}
|
|
174
|
-
keysFilteredByParentKey = possibleFilteredKeys;
|
|
175
179
|
}
|
|
180
|
+
// So now we can check semver to filter out some values
|
|
181
|
+
const candidatePkgVersion = pkgs[candidate].version;
|
|
182
|
+
const doesVersionSatisfySemver = semver.satisfies(candidatePkgVersion, version);
|
|
183
|
+
return doesVersionSatisfySemver;
|
|
184
|
+
});
|
|
185
|
+
if (filteredCandidates.length === 1) {
|
|
186
|
+
return filteredCandidates[0];
|
|
176
187
|
}
|
|
177
188
|
const ancestry_names = ancestry.map((el) => el.name).concat(name);
|
|
178
189
|
while (ancestry_names.length > 0) {
|
|
@@ -182,6 +193,21 @@ const getChildNodeKey = (name, ancestry, pkgs, pkgKeysByName) => {
|
|
|
182
193
|
}
|
|
183
194
|
ancestry_names.shift();
|
|
184
195
|
}
|
|
196
|
+
// Here we go through th eancestry backwards to find the nearest
|
|
197
|
+
// ancestor package
|
|
198
|
+
const reversedAncestry = ancestry.reverse();
|
|
199
|
+
for (let parentIndex = 0; parentIndex < reversedAncestry.length; parentIndex++) {
|
|
200
|
+
const parentKey = reversedAncestry[parentIndex].key;
|
|
201
|
+
const possibleFilteredKeys = filteredCandidates.filter((key) => key.includes(parentKey));
|
|
202
|
+
if (possibleFilteredKeys.length === 1) {
|
|
203
|
+
return possibleFilteredKeys[0];
|
|
204
|
+
}
|
|
205
|
+
if (possibleFilteredKeys.length === 0) {
|
|
206
|
+
continue;
|
|
207
|
+
}
|
|
208
|
+
filteredCandidates = possibleFilteredKeys;
|
|
209
|
+
}
|
|
185
210
|
return undefined;
|
|
186
211
|
};
|
|
212
|
+
exports.getChildNodeKey = getChildNodeKey;
|
|
187
213
|
//# sourceMappingURL=index.js.map
|
|
@@ -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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"}
|
package/package.json
CHANGED