snyk-nodejs-lockfile-parser 1.47.4 → 1.48.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/README.md
CHANGED
|
@@ -8,9 +8,14 @@ Snyk helps you find, fix and monitor for known vulnerabilities in your dependenc
|
|
|
8
8
|
|
|
9
9
|
## Snyk Node.js Lockfile Parser
|
|
10
10
|
|
|
11
|
-
This is a small utility package that parses lock file and returns [dependency tree](https://github.com/snyk/nodejs-lockfile-parser/blob/1a495302089614205478d57611bf7c39d29ce66d/lib/parsers/index.ts#L51).
|
|
11
|
+
This is a small utility package that parses lock file and returns either a [dependency tree](https://github.com/snyk/nodejs-lockfile-parser/blob/1a495302089614205478d57611bf7c39d29ce66d/lib/parsers/index.ts#L51) or a [dependency graph](https://github.com/snyk/dep-graph). Dependency graphs are the more modern data type and we plan to migrate fully over.
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Dep graph generation supported for:
|
|
14
|
+
|
|
15
|
+
- `package-lock.json` (at Versions 2 and 3)
|
|
16
|
+
- `yarn.lock`
|
|
17
|
+
|
|
18
|
+
Legacy dep tree supported for:
|
|
14
19
|
|
|
15
20
|
- `package-lock.json`
|
|
16
21
|
- yarn 1 `yarn.lock`
|
|
@@ -7,6 +7,8 @@ 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 micromatch = require("micromatch");
|
|
11
|
+
const pathUtil = require("path");
|
|
10
12
|
const parseNpmLockV2Project = (pkgJsonContent, pkgLockContent, options) => {
|
|
11
13
|
const { includeDevDeps, strictOutOfSync, includeOptionalDeps } = options;
|
|
12
14
|
const pkgJson = (0, util_1.parsePkgJson)(pkgJsonContent);
|
|
@@ -34,95 +36,142 @@ const buildDepGraphNpmLockV2 = (npmLockPkgs, pkgJson, options) => {
|
|
|
34
36
|
dependencies: topLevelDeps,
|
|
35
37
|
isDev: false,
|
|
36
38
|
inBundle: false,
|
|
39
|
+
key: '',
|
|
37
40
|
};
|
|
41
|
+
const pkgKeysByName = Object.keys(npmLockPkgs).reduce((acc, key) => {
|
|
42
|
+
const name = key.replace(/.*node_modules\//, '');
|
|
43
|
+
if (!name) {
|
|
44
|
+
return acc;
|
|
45
|
+
}
|
|
46
|
+
if (!acc.has(name)) {
|
|
47
|
+
acc.set(name, []);
|
|
48
|
+
}
|
|
49
|
+
acc.get(name).push(key);
|
|
50
|
+
return acc;
|
|
51
|
+
}, new Map());
|
|
38
52
|
const visitedMap = new Set();
|
|
39
|
-
dfsVisit(depGraphBuilder, rootNode, visitedMap, npmLockPkgs, strictOutOfSync, includeOptionalDeps, []);
|
|
53
|
+
dfsVisit(depGraphBuilder, rootNode, visitedMap, npmLockPkgs, strictOutOfSync, includeOptionalDeps, [], pkgKeysByName);
|
|
40
54
|
return depGraphBuilder.build();
|
|
41
55
|
};
|
|
42
56
|
exports.buildDepGraphNpmLockV2 = buildDepGraphNpmLockV2;
|
|
43
|
-
const dfsVisit = (depGraphBuilder, node, visitedMap, npmLockPkgs, strictOutOfSync, includeOptionalDeps, ancestry) => {
|
|
57
|
+
const dfsVisit = (depGraphBuilder, node, visitedMap, npmLockPkgs, strictOutOfSync, includeOptionalDeps, ancestry, pkgKeysByName) => {
|
|
44
58
|
visitedMap.add(node.id);
|
|
45
59
|
for (const [name, depInfo] of Object.entries(node.dependencies || {})) {
|
|
46
|
-
|
|
47
|
-
|
|
60
|
+
const childNode = getChildNode(name, depInfo, npmLockPkgs, strictOutOfSync, includeOptionalDeps, [
|
|
61
|
+
...ancestry,
|
|
62
|
+
{
|
|
63
|
+
name: node.name,
|
|
64
|
+
key: node.key || '',
|
|
65
|
+
inBundle: node.inBundle || false,
|
|
66
|
+
},
|
|
67
|
+
], pkgKeysByName);
|
|
48
68
|
if (!visitedMap.has(childNode.id)) {
|
|
49
69
|
(0, util_1.addPkgNodeToGraph)(depGraphBuilder, childNode, {});
|
|
50
|
-
dfsVisit(depGraphBuilder, childNode, visitedMap, npmLockPkgs, strictOutOfSync, includeOptionalDeps, [
|
|
70
|
+
dfsVisit(depGraphBuilder, childNode, visitedMap, npmLockPkgs, strictOutOfSync, includeOptionalDeps, [
|
|
71
|
+
...ancestry,
|
|
72
|
+
{
|
|
73
|
+
name: node.name,
|
|
74
|
+
key: node.key,
|
|
75
|
+
inBundle: node.inBundle || false,
|
|
76
|
+
},
|
|
77
|
+
], pkgKeysByName);
|
|
51
78
|
}
|
|
52
79
|
depGraphBuilder.connectDep(node.id, childNode.id);
|
|
53
80
|
}
|
|
54
81
|
};
|
|
55
|
-
const getChildNode = (name, depInfo, pkgs, strictOutOfSync, includeOptionalDeps, ancestry) => {
|
|
56
|
-
|
|
57
|
-
if (!
|
|
82
|
+
const getChildNode = (name, depInfo, pkgs, strictOutOfSync, includeOptionalDeps, ancestry, pkgKeysByName) => {
|
|
83
|
+
let childNodeKey = getChildNodeKey(name, ancestry, pkgs, pkgKeysByName); //
|
|
84
|
+
if (!childNodeKey) {
|
|
58
85
|
if (strictOutOfSync) {
|
|
59
86
|
throw new errors_1.OutOfSyncError(`${name}@${depInfo.version}`, parsers_1.LockfileType.npm);
|
|
60
87
|
}
|
|
61
88
|
else {
|
|
62
89
|
return {
|
|
63
|
-
id:
|
|
90
|
+
id: `${name}@${depInfo.version}`,
|
|
64
91
|
name: name,
|
|
65
92
|
version: depInfo.version,
|
|
66
93
|
dependencies: {},
|
|
67
94
|
isDev: depInfo.isDev,
|
|
68
95
|
missingLockFileEntry: true,
|
|
96
|
+
key: '',
|
|
69
97
|
};
|
|
70
98
|
}
|
|
71
99
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
const
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
100
|
+
let depData = pkgs[childNodeKey];
|
|
101
|
+
const resolvedToWorkspace = () => {
|
|
102
|
+
const workspacesDeclaration = pkgs['']['workspaces'] || [];
|
|
103
|
+
const resolvedPath = depData.resolved || '';
|
|
104
|
+
const fixedResolvedPath = resolvedPath.replace(/\\/g, '/');
|
|
105
|
+
const normalizedWorkspacesDefn = workspacesDeclaration.map((p) => {
|
|
106
|
+
return pathUtil.normalize(p).replace(/\\/g, '/');
|
|
107
|
+
});
|
|
108
|
+
return micromatch.isMatch(fixedResolvedPath, normalizedWorkspacesDefn);
|
|
109
|
+
};
|
|
110
|
+
// Check for workspaces
|
|
111
|
+
if (depData['link'] && resolvedToWorkspace()) {
|
|
112
|
+
childNodeKey = depData.resolved;
|
|
113
|
+
depData = pkgs[depData.resolved];
|
|
86
114
|
}
|
|
115
|
+
const dependencies = (0, util_1.getGraphDependencies)(depData.dependencies || {}, depInfo.isDev);
|
|
116
|
+
const optionalDependencies = includeOptionalDeps
|
|
117
|
+
? (0, util_1.getGraphDependencies)(depData.optionalDependencies || {}, depInfo.isDev)
|
|
118
|
+
: {};
|
|
119
|
+
return {
|
|
120
|
+
id: `${name}@${depData.version}`,
|
|
121
|
+
name: name,
|
|
122
|
+
version: depData.version,
|
|
123
|
+
dependencies: Object.assign(Object.assign({}, dependencies), optionalDependencies),
|
|
124
|
+
isDev: depInfo.isDev,
|
|
125
|
+
inBundle: depData.inBundle,
|
|
126
|
+
key: childNodeKey,
|
|
127
|
+
};
|
|
87
128
|
};
|
|
88
|
-
const getChildNodeKey = (name, ancestry, pkgs) => {
|
|
89
|
-
const
|
|
90
|
-
|
|
129
|
+
const getChildNodeKey = (name, ancestry, pkgs, pkgKeysByName) => {
|
|
130
|
+
const candidateKeys = pkgKeysByName.get(name);
|
|
131
|
+
// Lockfile missing entry
|
|
132
|
+
if (!candidateKeys) {
|
|
133
|
+
return undefined;
|
|
134
|
+
}
|
|
135
|
+
// Only one candidate then just take it
|
|
136
|
+
if (candidateKeys.length === 1) {
|
|
137
|
+
return candidateKeys[0];
|
|
138
|
+
}
|
|
139
|
+
// If we are a bundled dep we have to choose candidate carefully
|
|
140
|
+
if (ancestry.length && ancestry[ancestry.length - 1].inBundle) {
|
|
91
141
|
const bundleRootIdx = ancestry.findIndex((el) => el.inBundle === true) - 1;
|
|
92
|
-
const
|
|
93
|
-
.slice(bundleRootIdx)
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
return
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
142
|
+
const ancestryFromBundleId = [
|
|
143
|
+
...ancestry.slice(bundleRootIdx).map((el) => el.name),
|
|
144
|
+
name,
|
|
145
|
+
];
|
|
146
|
+
const candidateAncestries = candidateKeys.map((el) => el.replace('node_modules/', '').split('/node_modules/'));
|
|
147
|
+
const filteredCandidates = candidateKeys.filter((candidate, idx) => {
|
|
148
|
+
return candidateAncestries[idx].every((pkg) => {
|
|
149
|
+
return ancestryFromBundleId.includes(pkg);
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
if (filteredCandidates.length === 1) {
|
|
153
|
+
return filteredCandidates[0];
|
|
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];
|
|
160
|
+
}
|
|
161
|
+
// Here we go through parents keys to see if any are the branch point
|
|
162
|
+
// we could have done this sooner but the above work as good short circuits
|
|
163
|
+
let keysFilteredByParentKey = onlyLongestKeys;
|
|
164
|
+
const reversedAncestry = ancestry.reverse();
|
|
165
|
+
for (let parentIndex = 0; parentIndex < reversedAncestry.length; parentIndex++) {
|
|
166
|
+
const parentKey = reversedAncestry[parentIndex].key;
|
|
167
|
+
const possibleFilteredKeys = keysFilteredByParentKey.filter((key) => key.includes(parentKey));
|
|
168
|
+
if (possibleFilteredKeys.length === 1) {
|
|
169
|
+
return possibleFilteredKeys[0];
|
|
113
170
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
const options = getPossibleDepPaths(right.slice(rightPointer));
|
|
117
|
-
for (let optIdx = 0; optIdx < options.length; optIdx++) {
|
|
118
|
-
const rightConcat = `node_modules/${options[optIdx].replace(/\//g, '/node_modules/')}`;
|
|
119
|
-
const key = `node_modules/${left.join('/node_modules/')}/${rightConcat}`;
|
|
120
|
-
if (pkgs[key]) {
|
|
121
|
-
return key;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
171
|
+
if (possibleFilteredKeys.length === 0) {
|
|
172
|
+
continue;
|
|
125
173
|
}
|
|
174
|
+
keysFilteredByParentKey = possibleFilteredKeys;
|
|
126
175
|
}
|
|
127
176
|
}
|
|
128
177
|
// If not in bundle then we can just see if it is scoped by parent
|
|
@@ -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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../lib/dep-graph-builders/util.ts"],"names":[],"mappings":";;;AAEA,sCAAkD;AAElD,sCAA2C;AAC3C,wCAA0C;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../lib/dep-graph-builders/util.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -41,6 +41,7 @@
|
|
|
41
41
|
"lodash.flatmap": "^4.5.0",
|
|
42
42
|
"lodash.isempty": "^4.4.0",
|
|
43
43
|
"lodash.topairs": "^4.3.0",
|
|
44
|
+
"micromatch": "^4.0.5",
|
|
44
45
|
"semver": "^7.3.5",
|
|
45
46
|
"snyk-config": "^5.0.0",
|
|
46
47
|
"tslib": "^1.9.3",
|
|
@@ -63,5 +64,5 @@
|
|
|
63
64
|
"typescript": "4.8.4"
|
|
64
65
|
},
|
|
65
66
|
"packageManager": "yarn@2.4.1",
|
|
66
|
-
"version": "1.
|
|
67
|
+
"version": "1.48.0"
|
|
67
68
|
}
|