snyk-nodejs-lockfile-parser 1.34.1 → 1.36.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/cli-parsers/cli-parser-types.d.ts +27 -0
- package/dist/cli-parsers/cli-parser-types.js +3 -0
- package/dist/cli-parsers/cli-parser-types.js.map +1 -0
- package/dist/cli-parsers/cli-parser-utils.d.ts +5 -0
- package/dist/cli-parsers/cli-parser-utils.js +34 -0
- package/dist/cli-parsers/cli-parser-utils.js.map +1 -0
- package/dist/cli-parsers/index.d.ts +2 -0
- package/dist/cli-parsers/index.js +44 -0
- package/dist/cli-parsers/index.js.map +1 -0
- package/dist/cli-parsers/yarn-info-parser.d.ts +2 -0
- package/dist/cli-parsers/yarn-info-parser.js +21 -0
- package/dist/cli-parsers/yarn-info-parser.js.map +1 -0
- package/dist/cli-parsers/yarn-list-parser.d.ts +2 -0
- package/dist/cli-parsers/yarn-list-parser.js +24 -0
- package/dist/cli-parsers/yarn-list-parser.js.map +1 -0
- package/dist/errors/out-of-sync-error.js +2 -0
- package/dist/errors/out-of-sync-error.js.map +1 -1
- package/dist/index.d.ts +4 -2
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/parsers/index.d.ts +2 -1
- package/dist/parsers/index.js.map +1 -1
- package/dist/parsers/lock-parser-base.d.ts +3 -2
- package/dist/parsers/lock-parser-base.js +3 -3
- package/dist/parsers/lock-parser-base.js.map +1 -1
- package/dist/parsers/yarn2-lock-parser.d.ts +2 -2
- package/dist/parsers/yarn2-lock-parser.js +29 -3
- package/dist/parsers/yarn2-lock-parser.js.map +1 -1
- package/package.json +4 -3
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export interface FormattedCliOutput {
|
|
2
|
+
topLevelDeps: string[];
|
|
3
|
+
dependencies: FlatDependenciesMap;
|
|
4
|
+
}
|
|
5
|
+
export declare type FlatDependenciesMap = Map<string, string[]>;
|
|
6
|
+
export declare type YarnInfoOutput = Array<{
|
|
7
|
+
value: string;
|
|
8
|
+
children: {
|
|
9
|
+
Version: string;
|
|
10
|
+
Dependents?: string[];
|
|
11
|
+
Dependencies?: {
|
|
12
|
+
descriptor: string;
|
|
13
|
+
locator: string;
|
|
14
|
+
}[];
|
|
15
|
+
};
|
|
16
|
+
}>;
|
|
17
|
+
export interface YarnListTree {
|
|
18
|
+
name: string;
|
|
19
|
+
children: {
|
|
20
|
+
name: string;
|
|
21
|
+
color: string;
|
|
22
|
+
shadow: boolean;
|
|
23
|
+
}[];
|
|
24
|
+
hint: string | null;
|
|
25
|
+
color: string | null;
|
|
26
|
+
depth: number;
|
|
27
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-parser-types.js","sourceRoot":"","sources":["../../lib/cli-parsers/cli-parser-types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.extractCorrectIdentifierBySemver = exports.extractNameAndIdentifier = void 0;
|
|
4
|
+
const semver = require("semver");
|
|
5
|
+
const extractNameAndIdentifier = (candidate) => {
|
|
6
|
+
const index = candidate.indexOf('@', 1);
|
|
7
|
+
const name = candidate.slice(0, index);
|
|
8
|
+
const identifier = candidate.slice(index + 1);
|
|
9
|
+
return { name, identifier };
|
|
10
|
+
};
|
|
11
|
+
exports.extractNameAndIdentifier = extractNameAndIdentifier;
|
|
12
|
+
// This function will choose an item in a particular list that satisfies the semver provided
|
|
13
|
+
// i.e. possibleMatches = [debug@1.2.0, debug@2.2.6] and versionToMatch = debug@~2.2.0
|
|
14
|
+
// will result in debug@2.2.6 - This is required as yarn list does not have the resolved semver
|
|
15
|
+
// in dependencies.
|
|
16
|
+
const extractCorrectIdentifierBySemver = (possibleMatches, versionToMatch) => {
|
|
17
|
+
const { name: nameToMatch, identifier: identifierToMatch, } = exports.extractNameAndIdentifier(versionToMatch);
|
|
18
|
+
const hasQualifiers = isNaN(parseInt(identifierToMatch[0]));
|
|
19
|
+
if (!hasQualifiers) {
|
|
20
|
+
return versionToMatch;
|
|
21
|
+
}
|
|
22
|
+
// Check for matching name, if only one found shortcircuit
|
|
23
|
+
const match = possibleMatches
|
|
24
|
+
.filter((name) => name.startsWith(nameToMatch))
|
|
25
|
+
.filter((name) => semver.satisfies(exports.extractNameAndIdentifier(name).identifier, identifierToMatch))
|
|
26
|
+
.map((name) => ({
|
|
27
|
+
name,
|
|
28
|
+
identifier: exports.extractNameAndIdentifier(name).identifier,
|
|
29
|
+
}))
|
|
30
|
+
.reduce((acc, item) => semver.gt(item.identifier, acc.identifier) ? item : acc);
|
|
31
|
+
return match.name;
|
|
32
|
+
};
|
|
33
|
+
exports.extractCorrectIdentifierBySemver = extractCorrectIdentifierBySemver;
|
|
34
|
+
//# sourceMappingURL=cli-parser-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cli-parser-utils.js","sourceRoot":"","sources":["../../lib/cli-parsers/cli-parser-utils.ts"],"names":[],"mappings":";;;AAAA,iCAAiC;AAE1B,MAAM,wBAAwB,GAAG,CACtC,SAAiB,EACqB,EAAE;IACxC,MAAM,KAAK,GAAG,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACxC,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,SAAS,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAC9C,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;AAC9B,CAAC,CAAC;AAPW,QAAA,wBAAwB,4BAOnC;AAEF,4FAA4F;AAC5F,sFAAsF;AACtF,+FAA+F;AAC/F,mBAAmB;AACZ,MAAM,gCAAgC,GAAG,CAC9C,eAAyB,EACzB,cAAsB,EACd,EAAE;IACV,MAAM,EACJ,IAAI,EAAE,WAAW,EACjB,UAAU,EAAE,iBAAiB,GAC9B,GAAG,gCAAwB,CAAC,cAAc,CAAC,CAAC;IAE7C,MAAM,aAAa,GAAG,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC5D,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO,cAAc,CAAC;KACvB;IACD,0DAA0D;IAC1D,MAAM,KAAK,GAAG,eAAe;SAC1B,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;SAC9C,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CACf,MAAM,CAAC,SAAS,CACd,gCAAwB,CAAC,IAAI,CAAC,CAAC,UAAU,EACzC,iBAAiB,CAClB,CACF;SACA,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACd,IAAI;QACJ,UAAU,EAAE,gCAAwB,CAAC,IAAI,CAAC,CAAC,UAAU;KACtD,CAAC,CAAC;SACF,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,CACpB,MAAM,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CACxD,CAAC;IAEJ,OAAO,KAAK,CAAC,IAAI,CAAC;AACpB,CAAC,CAAC;AA/BW,QAAA,gCAAgC,oCA+B3C"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.buildDepGraphFromCliOutput = void 0;
|
|
4
|
+
const dep_graph_1 = require("@snyk/dep-graph");
|
|
5
|
+
const __1 = require("..");
|
|
6
|
+
const parsers_1 = require("../parsers");
|
|
7
|
+
const cli_parser_utils_1 = require("./cli-parser-utils");
|
|
8
|
+
const yarn_info_parser_1 = require("./yarn-info-parser");
|
|
9
|
+
const yarn_list_parser_1 = require("./yarn-list-parser");
|
|
10
|
+
const buildDepGraphFromCliOutput = (rawCliOutput, lockfileContent, manifestFileContent) => {
|
|
11
|
+
const manifestDependencies = JSON.parse(manifestFileContent).dependencies || {};
|
|
12
|
+
const lockfileType = __1.getYarnLockfileType(lockfileContent);
|
|
13
|
+
const { name: rootName, version: rootVersion } = JSON.parse(manifestFileContent);
|
|
14
|
+
const pkgManagerVersion = lockfileType === parsers_1.LockfileType.yarn ? '1' : '2';
|
|
15
|
+
// Build depMap object from the cli output
|
|
16
|
+
const formattedCliOutput = pkgManagerVersion === '1'
|
|
17
|
+
? yarn_list_parser_1.parseYarnListOutput(rawCliOutput, manifestDependencies)
|
|
18
|
+
: yarn_info_parser_1.parseYarnInfoOutput(rawCliOutput);
|
|
19
|
+
const rootPkgInfo = rootName
|
|
20
|
+
? Object.assign({ name: rootName }, (rootVersion && { version: rootVersion })) : undefined;
|
|
21
|
+
const pkgManager = {
|
|
22
|
+
name: 'yarn',
|
|
23
|
+
version: pkgManagerVersion,
|
|
24
|
+
};
|
|
25
|
+
const builder = new dep_graph_1.DepGraphBuilder(pkgManager, rootPkgInfo);
|
|
26
|
+
const { topLevelDeps, dependencies: depMap } = formattedCliOutput;
|
|
27
|
+
// Add all nodes
|
|
28
|
+
[...depMap.keys()].forEach((name) => {
|
|
29
|
+
const { name: pkgName, identifier: pkgVersion } = cli_parser_utils_1.extractNameAndIdentifier(name);
|
|
30
|
+
builder.addPkgNode({ name: pkgName, version: pkgVersion.split(':').pop() }, name);
|
|
31
|
+
});
|
|
32
|
+
// Deal with root special case first
|
|
33
|
+
const rootNodeId = builder.rootNodeId;
|
|
34
|
+
topLevelDeps.forEach((dep) => builder.connectDep(rootNodeId, dep));
|
|
35
|
+
// Now rest of deps
|
|
36
|
+
[...depMap.entries()].forEach(([parent, deps]) => {
|
|
37
|
+
deps.forEach((dep) => {
|
|
38
|
+
builder.connectDep(parent, dep);
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
return builder.build();
|
|
42
|
+
};
|
|
43
|
+
exports.buildDepGraphFromCliOutput = buildDepGraphFromCliOutput;
|
|
44
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/cli-parsers/index.ts"],"names":[],"mappings":";;;AAAA,+CAA4D;AAC5D,0BAAyC;AACzC,wCAA0C;AAE1C,yDAA8D;AAC9D,yDAAyD;AACzD,yDAAyD;AAElD,MAAM,0BAA0B,GAAG,CACxC,YAAoB,EACpB,eAAuB,EACvB,mBAA2B,EACjB,EAAE;IACZ,MAAM,oBAAoB,GACxB,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,YAAY,IAAI,EAAE,CAAC;IAErD,MAAM,YAAY,GAAG,uBAAmB,CAAC,eAAe,CAAC,CAAC;IAE1D,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CACzD,mBAAmB,CACpB,CAAC;IAEF,MAAM,iBAAiB,GACrB,YAAY,KAAK,sBAAY,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;IAEjD,0CAA0C;IAC1C,MAAM,kBAAkB,GACtB,iBAAiB,KAAK,GAAG;QACvB,CAAC,CAAC,sCAAmB,CAAC,YAAY,EAAE,oBAAoB,CAAC;QACzD,CAAC,CAAC,sCAAmB,CAAC,YAAY,CAAC,CAAC;IAExC,MAAM,WAAW,GAAuC,QAAQ;QAC9D,CAAC,iBAAG,IAAI,EAAE,QAAQ,IAAK,CAAC,WAAW,IAAI,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,EAChE,CAAC,CAAC,SAAS,CAAC;IAEd,MAAM,UAAU,GAAG;QACjB,IAAI,EAAE,MAAM;QACZ,OAAO,EAAE,iBAAiB;KAC3B,CAAC;IAEF,MAAM,OAAO,GAAG,IAAI,2BAAe,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;IAE7D,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC;IAElE,gBAAgB;IAChB,CAAC,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAClC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,2CAAwB,CACxE,IAAI,CACL,CAAC;QACF,OAAO,CAAC,UAAU,CAChB,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAY,EAAE,EACjE,IAAI,CACL,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,oCAAoC;IACpC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;IACtC,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;IAEnE,mBAAmB;IACnB,CAAC,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE;QAC/C,IAAI,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnB,OAAO,CAAC,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,OAAO,CAAC,KAAK,EAAE,CAAC;AACzB,CAAC,CAAC;AA3DW,QAAA,0BAA0B,8BA2DrC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseYarnInfoOutput = void 0;
|
|
4
|
+
const parseYarnInfoOutput = (rawYarnInfoOutput) => {
|
|
5
|
+
const formattedYarnInfo = rawYarnInfoOutput
|
|
6
|
+
.split('\n')
|
|
7
|
+
.filter(Boolean)
|
|
8
|
+
.map((el) => JSON.parse(el));
|
|
9
|
+
const formattedInfoOutput = formattedYarnInfo.reduce((result, { value, children }) => {
|
|
10
|
+
var _a;
|
|
11
|
+
const dependencies = ((_a = children.Dependencies) === null || _a === void 0 ? void 0 : _a.map((el) => el.locator.replace(/@virtual:.*#/, '@'))) || [];
|
|
12
|
+
return result.set(value, dependencies);
|
|
13
|
+
}, new Map());
|
|
14
|
+
const rootWorkspaceKey = [...formattedInfoOutput.keys()].find((el) => el.includes('@workspace:.'));
|
|
15
|
+
const topLevelDeps = formattedInfoOutput.get(rootWorkspaceKey) || [];
|
|
16
|
+
// Now we have rootdeps we delete the key
|
|
17
|
+
formattedInfoOutput.delete(rootWorkspaceKey);
|
|
18
|
+
return { topLevelDeps, dependencies: formattedInfoOutput };
|
|
19
|
+
};
|
|
20
|
+
exports.parseYarnInfoOutput = parseYarnInfoOutput;
|
|
21
|
+
//# sourceMappingURL=yarn-info-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yarn-info-parser.js","sourceRoot":"","sources":["../../lib/cli-parsers/yarn-info-parser.ts"],"names":[],"mappings":";;;AAMO,MAAM,mBAAmB,GAAG,CACjC,iBAAyB,EACL,EAAE;IACtB,MAAM,iBAAiB,GAAmB,iBAAiB;SACxD,KAAK,CAAC,IAAI,CAAC;SACX,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/B,MAAM,mBAAmB,GAAwB,iBAAiB,CAAC,MAAM,CACvE,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;;QAC9B,MAAM,YAAY,GAChB,CAAA,MAAA,QAAQ,CAAC,YAAY,0CAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAChC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,CACxC,KAAI,EAAE,CAAC;QAEV,OAAO,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACzC,CAAC,EACD,IAAI,GAAG,EAAoB,CAC5B,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CACnE,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC,CAClB,CAAC;IACZ,MAAM,YAAY,GAChB,mBAAmB,CAAC,GAAG,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC;IAElD,yCAAyC;IACzC,mBAAmB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAE7C,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAC7D,CAAC,CAAC;AA9BW,QAAA,mBAAmB,uBA8B9B"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseYarnListOutput = void 0;
|
|
4
|
+
const cli_parser_utils_1 = require("./cli-parser-utils");
|
|
5
|
+
const parseYarnListOutput = (rawYarnListOutput, manifestDependencies) => {
|
|
6
|
+
const formattedYarnList = JSON.parse(rawYarnListOutput).data
|
|
7
|
+
.trees;
|
|
8
|
+
// Reference to all (resolved) dep names to help cleanup in next step
|
|
9
|
+
const names = formattedYarnList.map((tree) => tree.name);
|
|
10
|
+
const formattedListOutput = formattedYarnList.reduce((result, tree) => {
|
|
11
|
+
const dependencies = tree.children.map((child) => cli_parser_utils_1.extractCorrectIdentifierBySemver(names, child.name));
|
|
12
|
+
return result.set(tree.name, dependencies);
|
|
13
|
+
}, new Map());
|
|
14
|
+
const topLevelDeps = getTopLevelDependencies(formattedListOutput, manifestDependencies);
|
|
15
|
+
return { topLevelDeps, dependencies: formattedListOutput };
|
|
16
|
+
};
|
|
17
|
+
exports.parseYarnListOutput = parseYarnListOutput;
|
|
18
|
+
const getTopLevelDependencies = (formattedListOutput, topLevelDeps) => {
|
|
19
|
+
// This logic is to construct an item for the rootPkg because
|
|
20
|
+
// we are dealing with a flat map so far so can't tell
|
|
21
|
+
const names = [...formattedListOutput.keys()];
|
|
22
|
+
return Object.entries(topLevelDeps).map(([name, version]) => cli_parser_utils_1.extractCorrectIdentifierBySemver(names, `${name}@${version}`));
|
|
23
|
+
};
|
|
24
|
+
//# sourceMappingURL=yarn-list-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"yarn-list-parser.js","sourceRoot":"","sources":["../../lib/cli-parsers/yarn-list-parser.ts"],"names":[],"mappings":";;;AAKA,yDAAsE;AAE/D,MAAM,mBAAmB,GAAG,CACjC,iBAAyB,EACzB,oBAA4C,EACxB,EAAE;IACtB,MAAM,iBAAiB,GAAmB,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC,IAAI;SACzE,KAAK,CAAC;IAET,qEAAqE;IACrE,MAAM,KAAK,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEzD,MAAM,mBAAmB,GAAwB,iBAAiB,CAAC,MAAM,CACvE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QACf,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAC/C,mDAAgC,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,CACpD,CAAC;QAEF,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAC7C,CAAC,EACD,IAAI,GAAG,EAAoB,CAC5B,CAAC;IAEF,MAAM,YAAY,GAAG,uBAAuB,CAC1C,mBAAmB,EACnB,oBAAoB,CACrB,CAAC;IAEF,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,mBAAmB,EAAE,CAAC;AAC7D,CAAC,CAAC;AA3BW,QAAA,mBAAmB,uBA2B9B;AAEF,MAAM,uBAAuB,GAAG,CAC9B,mBAAwC,EACxC,YAAoC,EACpC,EAAE;IACF,6DAA6D;IAC7D,sDAAsD;IACtD,MAAM,KAAK,GAAG,CAAC,GAAG,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9C,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE,CAC1D,mDAAgC,CAAC,KAAK,EAAE,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC,CAC9D,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -4,10 +4,12 @@ exports.OutOfSyncError = void 0;
|
|
|
4
4
|
const LOCK_FILE_NAME = {
|
|
5
5
|
npm: 'package-lock.json',
|
|
6
6
|
yarn: 'yarn.lock',
|
|
7
|
+
yarn2: 'yarn.lock',
|
|
7
8
|
};
|
|
8
9
|
const INSTALL_COMMAND = {
|
|
9
10
|
npm: 'npm install',
|
|
10
11
|
yarn: 'yarn install',
|
|
12
|
+
yarn2: 'yarn install',
|
|
11
13
|
};
|
|
12
14
|
class OutOfSyncError extends Error {
|
|
13
15
|
constructor(dependencyName, lockFileType) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"out-of-sync-error.js","sourceRoot":"","sources":["../../lib/errors/out-of-sync-error.ts"],"names":[],"mappings":";;;AAEA,MAAM,cAAc,GAAG;IACrB,GAAG,EAAE,mBAAmB;IACxB,IAAI,EAAE,WAAW;
|
|
1
|
+
{"version":3,"file":"out-of-sync-error.js","sourceRoot":"","sources":["../../lib/errors/out-of-sync-error.ts"],"names":[],"mappings":";;;AAEA,MAAM,cAAc,GAAG;IACrB,GAAG,EAAE,mBAAmB;IACxB,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,WAAW;CACnB,CAAC;AAEF,MAAM,eAAe,GAAG;IACtB,GAAG,EAAE,aAAa;IAClB,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,cAAc;CACtB,CAAC;AAEF,MAAa,cAAe,SAAQ,KAAK;IAMvC,YAAY,cAAsB,EAAE,YAA0B;QAC5D,KAAK,CACH,cAAc,cAAc,oBAAoB;YAC9C,GAAG,cAAc,CAAC,YAAY,CAAC,0BAA0B;YACzD,GAAG,cAAc,CAAC,YAAY,CAAC,wCAAwC;YACvE,IAAI,eAAe,CAAC,YAAY,CAAC,kBAAkB,CACtD,CAAC;QAXG,SAAI,GAAG,GAAG,CAAC;QACX,SAAI,GAAG,gBAAgB,CAAC;QAW7B,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;QACrC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;QACjC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAChD,CAAC;CACF;AAjBD,wCAiBC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import { PkgTree, Scope, LockfileType, getYarnWorkspaces } from './parsers';
|
|
1
|
+
import { ManifestFile, PkgTree, Scope, LockfileType, getYarnWorkspaces } from './parsers';
|
|
2
2
|
import { UnsupportedRuntimeError, InvalidUserInputError, OutOfSyncError } from './errors';
|
|
3
|
-
|
|
3
|
+
import { buildDepGraphFromCliOutput } from './cli-parsers';
|
|
4
|
+
export { buildDepTree, buildDepTreeFromFiles, buildDepGraphFromCliOutput, getYarnWorkspacesFromFiles, getYarnWorkspaces, PkgTree, Scope, LockfileType, UnsupportedRuntimeError, InvalidUserInputError, OutOfSyncError, ManifestFile, };
|
|
4
5
|
declare function buildDepTree(manifestFileContents: string, lockFileContents: string, includeDev?: boolean, lockfileType?: LockfileType, strict?: boolean, defaultManifestFileName?: string): Promise<PkgTree>;
|
|
5
6
|
declare function buildDepTreeFromFiles(root: string, manifestFilePath: string, lockFilePath: string, includeDev?: boolean, strict?: boolean): Promise<PkgTree>;
|
|
6
7
|
declare function getYarnWorkspacesFromFiles(root: any, manifestFilePath: string): string[] | false;
|
|
8
|
+
export declare function getYarnLockfileType(lockFileContents: string, root?: string, lockFilePath?: string): LockfileType;
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OutOfSyncError = exports.InvalidUserInputError = exports.UnsupportedRuntimeError = exports.LockfileType = exports.Scope = exports.getYarnWorkspaces = exports.getYarnWorkspacesFromFiles = exports.buildDepTreeFromFiles = exports.buildDepTree = void 0;
|
|
3
|
+
exports.getYarnLockfileType = exports.OutOfSyncError = exports.InvalidUserInputError = exports.UnsupportedRuntimeError = exports.LockfileType = exports.Scope = exports.getYarnWorkspaces = exports.getYarnWorkspacesFromFiles = exports.buildDepGraphFromCliOutput = exports.buildDepTreeFromFiles = exports.buildDepTree = void 0;
|
|
4
4
|
const fs = require("fs");
|
|
5
5
|
const path = require("path");
|
|
6
6
|
const parsers_1 = require("./parsers");
|
|
@@ -14,6 +14,8 @@ const errors_1 = require("./errors");
|
|
|
14
14
|
Object.defineProperty(exports, "UnsupportedRuntimeError", { enumerable: true, get: function () { return errors_1.UnsupportedRuntimeError; } });
|
|
15
15
|
Object.defineProperty(exports, "InvalidUserInputError", { enumerable: true, get: function () { return errors_1.InvalidUserInputError; } });
|
|
16
16
|
Object.defineProperty(exports, "OutOfSyncError", { enumerable: true, get: function () { return errors_1.OutOfSyncError; } });
|
|
17
|
+
const cli_parsers_1 = require("./cli-parsers");
|
|
18
|
+
Object.defineProperty(exports, "buildDepGraphFromCliOutput", { enumerable: true, get: function () { return cli_parsers_1.buildDepGraphFromCliOutput; } });
|
|
17
19
|
async function buildDepTree(manifestFileContents, lockFileContents, includeDev = false, lockfileType, strict = true, defaultManifestFileName = 'package.json') {
|
|
18
20
|
if (!lockfileType) {
|
|
19
21
|
lockfileType = parsers_1.LockfileType.npm;
|
|
@@ -100,4 +102,5 @@ function getYarnLockfileType(lockFileContents, root, lockFilePath) {
|
|
|
100
102
|
return parsers_1.LockfileType.yarn;
|
|
101
103
|
}
|
|
102
104
|
}
|
|
105
|
+
exports.getYarnLockfileType = getYarnLockfileType;
|
|
103
106
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,6BAA6B;AAC7B,uCASmB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
|
package/dist/parsers/index.d.ts
CHANGED
|
@@ -9,7 +9,7 @@ export interface Dep {
|
|
|
9
9
|
interface WorkspacesAlternateConfig {
|
|
10
10
|
packages?: string[];
|
|
11
11
|
}
|
|
12
|
-
declare type ManifestDependencies = {
|
|
12
|
+
export declare type ManifestDependencies = {
|
|
13
13
|
[dep: string]: string;
|
|
14
14
|
};
|
|
15
15
|
export interface ManifestFile {
|
|
@@ -23,6 +23,7 @@ export interface ManifestFile {
|
|
|
23
23
|
devDependencies?: ManifestDependencies;
|
|
24
24
|
optionalDependencies?: ManifestDependencies;
|
|
25
25
|
peerDependencies?: ManifestDependencies;
|
|
26
|
+
resolutions?: ManifestDependencies;
|
|
26
27
|
version?: string;
|
|
27
28
|
}
|
|
28
29
|
export interface DepTreeDep {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/parsers/index.ts"],"names":[],"mappings":";;;AAEA,sCAAkD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/parsers/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Dep, DepTreeDep, Lockfile, LockfileParser, LockfileType, ManifestFile, PkgTree } from './';
|
|
1
|
+
import { Dep, DepTreeDep, Lockfile, LockfileParser, LockfileType, ManifestDependencies, ManifestFile, PkgTree } from './';
|
|
2
2
|
export interface PackageLockDeps {
|
|
3
3
|
[depName: string]: PackageLockDep;
|
|
4
4
|
}
|
|
@@ -30,6 +30,7 @@ export declare abstract class LockParserBase implements LockfileParser {
|
|
|
30
30
|
private createGraphOfDependencies;
|
|
31
31
|
private findDepsPath;
|
|
32
32
|
private createDepTrees;
|
|
33
|
-
protected getDepMap(lockfile: Lockfile
|
|
33
|
+
protected getDepMap(lockfile: Lockfile, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
34
|
+
resolutions?: ManifestDependencies): DepMap;
|
|
34
35
|
protected getDepTreeKey(dep: Dep): string;
|
|
35
36
|
}
|
|
@@ -41,7 +41,7 @@ class LockParserBase {
|
|
|
41
41
|
// prepare a flat map, where dependency path is a key to dependency object
|
|
42
42
|
// path is an unique identifier for each dependency and corresponds to the
|
|
43
43
|
// relative path on disc
|
|
44
|
-
const depMap = this.getDepMap(yarnLock);
|
|
44
|
+
const depMap = this.getDepMap(yarnLock, manifestFile.resolutions);
|
|
45
45
|
// all paths are identified, we can create a graph representing what depends on what
|
|
46
46
|
const depGraph = this.createGraphOfDependencies(depMap);
|
|
47
47
|
// topological sort will be applied and it requires acyclic graphs
|
|
@@ -280,8 +280,8 @@ class LockParserBase {
|
|
|
280
280
|
}
|
|
281
281
|
return { depTrees, depTreesSizes };
|
|
282
282
|
}
|
|
283
|
-
// eslint-disable-
|
|
284
|
-
|
|
283
|
+
getDepMap(lockfile, // eslint-disable-line @typescript-eslint/no-unused-vars
|
|
284
|
+
resolutions) {
|
|
285
285
|
throw new Error('Not implemented');
|
|
286
286
|
}
|
|
287
287
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock-parser-base.js","sourceRoot":"","sources":["../../lib/parsers/lock-parser-base.ts"],"names":[],"mappings":";;;AAAA,+CAA+C;AAC/C,2CAA2C;AAC3C,mCAAmC;AACnC,2CAA2C;AAC3C,2CAA2C;AAC3C,+BAAkC;AAClC,2DAAsD;AAEtD,
|
|
1
|
+
{"version":3,"file":"lock-parser-base.js","sourceRoot":"","sources":["../../lib/parsers/lock-parser-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LockParserBase, DepMap } from './lock-parser-base';
|
|
2
|
-
import { Dep, Lockfile, LockfileType, ManifestFile, PkgTree } from '.';
|
|
2
|
+
import { Dep, Lockfile, LockfileType, ManifestDependencies, ManifestFile, PkgTree } from '.';
|
|
3
3
|
import { YarnLockDeps } from './yarn-lock-parser';
|
|
4
4
|
export interface Yarn2Lock {
|
|
5
5
|
type: string;
|
|
@@ -11,6 +11,6 @@ export declare class Yarn2LockParser extends LockParserBase {
|
|
|
11
11
|
constructor();
|
|
12
12
|
parseLockFile(lockFileContents: string): Yarn2Lock;
|
|
13
13
|
getDependencyTree(manifestFile: ManifestFile, lockfile: Lockfile, includeDev?: boolean, strict?: boolean): Promise<PkgTree>;
|
|
14
|
-
protected getDepMap(lockfile: Lockfile): DepMap;
|
|
14
|
+
protected getDepMap(lockfile: Lockfile, resolutions?: ManifestDependencies): DepMap;
|
|
15
15
|
protected getDepTreeKey(dep: Dep): string;
|
|
16
16
|
}
|
|
@@ -46,17 +46,19 @@ class Yarn2LockParser extends lock_parser_base_1.LockParserBase {
|
|
|
46
46
|
const depTreeWithMeta = Object.assign(Object.assign({}, depTree), { meta: Object.assign(Object.assign({}, depTree.meta), meta) });
|
|
47
47
|
return depTreeWithMeta;
|
|
48
48
|
}
|
|
49
|
-
getDepMap(lockfile) {
|
|
49
|
+
getDepMap(lockfile, resolutions) {
|
|
50
50
|
const yarnLockfile = lockfile;
|
|
51
51
|
const depMap = {};
|
|
52
|
+
const dependencies = lockfile.dependencies || {};
|
|
52
53
|
for (const [depName, dep] of Object.entries(yarnLockfile.object)) {
|
|
53
|
-
const subDependencies = Object.entries(Object.assign(Object.assign({}, (dep.dependencies || {})), (dep.optionalDependencies || {})))
|
|
54
|
+
const subDependencies = Object.entries(Object.assign(Object.assign({}, (dep.dependencies || {})), (dep.optionalDependencies || {}))).map(([key, ver]) => findResolutions(dependencies, depName, key, resolutions) ||
|
|
55
|
+
`${key}@${ver}`);
|
|
54
56
|
depMap[depName] = {
|
|
55
57
|
labels: {
|
|
56
58
|
scope: _1.Scope.prod,
|
|
57
59
|
},
|
|
58
60
|
name: getName(depName),
|
|
59
|
-
requires: subDependencies
|
|
61
|
+
requires: subDependencies,
|
|
60
62
|
version: dep.version,
|
|
61
63
|
};
|
|
62
64
|
}
|
|
@@ -70,4 +72,28 @@ exports.Yarn2LockParser = Yarn2LockParser;
|
|
|
70
72
|
function getName(depName) {
|
|
71
73
|
return depName.slice(0, depName.indexOf('@', 1));
|
|
72
74
|
}
|
|
75
|
+
function findResolutions(dependencies, depName, subDepKey, resolutions) {
|
|
76
|
+
if (!resolutions)
|
|
77
|
+
return;
|
|
78
|
+
const resolutionKeys = Object.keys(resolutions);
|
|
79
|
+
const index = depName.indexOf('@', 1);
|
|
80
|
+
const name = depName.slice(0, index);
|
|
81
|
+
const version = depName.slice(index + 1);
|
|
82
|
+
const firstMatchingResolution = resolutionKeys.find((res) => {
|
|
83
|
+
if (!res.endsWith(subDepKey)) {
|
|
84
|
+
return false;
|
|
85
|
+
}
|
|
86
|
+
const leadingPkg = res.split(subDepKey)[0].slice(0, -1);
|
|
87
|
+
const noSpecifiedParent = !leadingPkg;
|
|
88
|
+
const specifiedParentMatchesCurrentDep = leadingPkg === name;
|
|
89
|
+
const specifiedParentWithVersionMatches = leadingPkg.includes(name) &&
|
|
90
|
+
leadingPkg.includes(dependencies[`${name}@${version}`].version);
|
|
91
|
+
return (noSpecifiedParent ||
|
|
92
|
+
specifiedParentMatchesCurrentDep ||
|
|
93
|
+
specifiedParentWithVersionMatches);
|
|
94
|
+
});
|
|
95
|
+
if (resolutionKeys && firstMatchingResolution) {
|
|
96
|
+
return `${subDepKey}@${resolutions[firstMatchingResolution]}`;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
73
99
|
//# sourceMappingURL=yarn2-lock-parser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yarn2-lock-parser.js","sourceRoot":"","sources":["../../lib/parsers/yarn2-lock-parser.ts"],"names":[],"mappings":";;;AAAA,qCAAgD;AAChD,0CAA0C;AAE1C,yDAA4D;AAC5D,
|
|
1
|
+
{"version":3,"file":"yarn2-lock-parser.js","sourceRoot":"","sources":["../../lib/parsers/yarn2-lock-parser.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -31,18 +31,18 @@
|
|
|
31
31
|
],
|
|
32
32
|
"homepage": "https://github.com/snyk/nodejs-lockfile-parser#readme",
|
|
33
33
|
"dependencies": {
|
|
34
|
+
"@snyk/dep-graph": "^1.28.0",
|
|
34
35
|
"@snyk/graphlib": "2.1.9-patch.3",
|
|
35
36
|
"@yarnpkg/core": "^2.4.0",
|
|
36
37
|
"@yarnpkg/lockfile": "^1.1.0",
|
|
37
38
|
"event-loop-spinner": "^2.0.0",
|
|
38
|
-
"got": "11.8.2",
|
|
39
39
|
"js-yaml": "^4.1.0",
|
|
40
40
|
"lodash.clonedeep": "^4.5.0",
|
|
41
41
|
"lodash.flatmap": "^4.5.0",
|
|
42
42
|
"lodash.isempty": "^4.4.0",
|
|
43
43
|
"lodash.set": "^4.3.2",
|
|
44
44
|
"lodash.topairs": "^4.3.0",
|
|
45
|
-
"
|
|
45
|
+
"semver": "^7.3.5",
|
|
46
46
|
"snyk-config": "^4.0.0-rc.2",
|
|
47
47
|
"tslib": "^1.9.3",
|
|
48
48
|
"uuid": "^8.3.0"
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
"devDependencies": {
|
|
51
51
|
"@types/jest": "^26.0.23",
|
|
52
52
|
"@types/node": "^12.0.0",
|
|
53
|
+
"@types/semver": "^7.3.6",
|
|
53
54
|
"@types/uuid": "^8.3.0",
|
|
54
55
|
"@typescript-eslint/eslint-plugin": "^4.20.0",
|
|
55
56
|
"@typescript-eslint/parser": "^4.0.0",
|
|
@@ -63,5 +64,5 @@
|
|
|
63
64
|
"ts-node": "^9.1.1",
|
|
64
65
|
"typescript": "^4.1.0"
|
|
65
66
|
},
|
|
66
|
-
"version": "1.
|
|
67
|
+
"version": "1.36.0"
|
|
67
68
|
}
|