snyk-nodejs-lockfile-parser 1.36.1 → 1.37.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.
- package/dist/cli-parsers/yarn-info-parser.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +4 -4
- package/dist/index.js.map +1 -1
- package/dist/parsers/index.d.ts +13 -2
- package/dist/parsers/index.js +13 -2
- package/dist/parsers/index.js.map +1 -1
- package/dist/parsers/lock-parser-base.d.ts +1 -1
- package/dist/parsers/lock-parser-base.js +45 -12
- package/dist/parsers/lock-parser-base.js.map +1 -1
- package/dist/parsers/package-lock-parser.d.ts +1 -1
- package/dist/parsers/package-lock-parser.js +2 -2
- package/dist/parsers/package-lock-parser.js.map +1 -1
- package/dist/parsers/yarn-lock-parser.d.ts +1 -1
- package/dist/parsers/yarn-lock-parser.js +2 -2
- package/dist/parsers/yarn-lock-parser.js.map +1 -1
- package/dist/parsers/yarn2-lock-parser.d.ts +1 -1
- package/dist/parsers/yarn2-lock-parser.js +2 -2
- package/dist/parsers/yarn2-lock-parser.js.map +1 -1
- package/package.json +2 -3
|
@@ -1 +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,
|
|
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,OAAA,QAAQ,CAAC,YAAY,0CAAE,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAChC,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,GAAG,CAAC,MACpC,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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { ManifestFile, PkgTree, Scope, LockfileType, getYarnWorkspaces } from '.
|
|
|
2
2
|
import { UnsupportedRuntimeError, InvalidUserInputError, OutOfSyncError } from './errors';
|
|
3
3
|
import { buildDepGraphFromCliOutput } from './cli-parsers';
|
|
4
4
|
export { buildDepTree, buildDepTreeFromFiles, buildDepGraphFromCliOutput, getYarnWorkspacesFromFiles, getYarnWorkspaces, PkgTree, Scope, LockfileType, UnsupportedRuntimeError, InvalidUserInputError, OutOfSyncError, ManifestFile, };
|
|
5
|
-
declare function buildDepTree(manifestFileContents: string, lockFileContents: string, includeDev?: boolean, lockfileType?: LockfileType,
|
|
6
|
-
declare function buildDepTreeFromFiles(root: string, manifestFilePath: string, lockFilePath: string, includeDev?: boolean,
|
|
5
|
+
declare function buildDepTree(manifestFileContents: string, lockFileContents: string, includeDev?: boolean, lockfileType?: LockfileType, strictOutOfSync?: boolean, defaultManifestFileName?: string): Promise<PkgTree>;
|
|
6
|
+
declare function buildDepTreeFromFiles(root: string, manifestFilePath: string, lockFilePath: string, includeDev?: boolean, strictOutOfSync?: boolean): Promise<PkgTree>;
|
|
7
7
|
declare function getYarnWorkspacesFromFiles(root: any, manifestFilePath: string): string[] | false;
|
|
8
8
|
export declare function getYarnLockfileType(lockFileContents: string, root?: string, lockFilePath?: string): LockfileType;
|
package/dist/index.js
CHANGED
|
@@ -16,7 +16,7 @@ Object.defineProperty(exports, "InvalidUserInputError", { enumerable: true, get:
|
|
|
16
16
|
Object.defineProperty(exports, "OutOfSyncError", { enumerable: true, get: function () { return errors_1.OutOfSyncError; } });
|
|
17
17
|
const cli_parsers_1 = require("./cli-parsers");
|
|
18
18
|
Object.defineProperty(exports, "buildDepGraphFromCliOutput", { enumerable: true, get: function () { return cli_parsers_1.buildDepGraphFromCliOutput; } });
|
|
19
|
-
async function buildDepTree(manifestFileContents, lockFileContents, includeDev = false, lockfileType,
|
|
19
|
+
async function buildDepTree(manifestFileContents, lockFileContents, includeDev = false, lockfileType, strictOutOfSync = true, defaultManifestFileName = 'package.json') {
|
|
20
20
|
if (!lockfileType) {
|
|
21
21
|
lockfileType = parsers_1.LockfileType.npm;
|
|
22
22
|
}
|
|
@@ -46,10 +46,10 @@ async function buildDepTree(manifestFileContents, lockFileContents, includeDev =
|
|
|
46
46
|
: defaultManifestFileName;
|
|
47
47
|
}
|
|
48
48
|
const lockFile = lockfileParser.parseLockFile(lockFileContents);
|
|
49
|
-
return lockfileParser.getDependencyTree(manifestFile, lockFile, includeDev,
|
|
49
|
+
return lockfileParser.getDependencyTree(manifestFile, lockFile, includeDev, strictOutOfSync);
|
|
50
50
|
}
|
|
51
51
|
exports.buildDepTree = buildDepTree;
|
|
52
|
-
async function buildDepTreeFromFiles(root, manifestFilePath, lockFilePath, includeDev = false,
|
|
52
|
+
async function buildDepTreeFromFiles(root, manifestFilePath, lockFilePath, includeDev = false, strictOutOfSync = true) {
|
|
53
53
|
if (!root || !manifestFilePath || !lockFilePath) {
|
|
54
54
|
throw new Error('Missing required parameters for buildDepTreeFromFiles()');
|
|
55
55
|
}
|
|
@@ -75,7 +75,7 @@ async function buildDepTreeFromFiles(root, manifestFilePath, lockFilePath, inclu
|
|
|
75
75
|
throw new errors_1.InvalidUserInputError(`Unknown lockfile ${lockFilePath}. ` +
|
|
76
76
|
'Please provide either package-lock.json or yarn.lock.');
|
|
77
77
|
}
|
|
78
|
-
return await buildDepTree(manifestFileContents, lockFileContents, includeDev, lockFileType,
|
|
78
|
+
return await buildDepTree(manifestFileContents, lockFileContents, includeDev, lockFileType, strictOutOfSync, manifestFilePath);
|
|
79
79
|
}
|
|
80
80
|
exports.buildDepTreeFromFiles = buildDepTreeFromFiles;
|
|
81
81
|
function getYarnWorkspacesFromFiles(root, manifestFilePath) {
|
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;AAkBjB,sFAtBA,eAAK,OAsBA;AACL,6FArBA,sBAAY,OAqBA;AAHZ,kGAjBA,2BAAiB,OAiBA;AAfnB,uEAAkE;AAClE,iEAA4D;AAC5D,mEAA8D;AAC9D,qCAIkB;AAYhB,wGAfA,gCAAuB,OAeA;AACvB,sGAfA,8BAAqB,OAeA;AACrB,+FAfA,uBAAc,OAeA;AAbhB,+CAA2D;AAKzD,2GALO,wCAA0B,OAKP;AAY5B,KAAK,UAAU,YAAY,CACzB,oBAA4B,EAC5B,gBAAwB,EACxB,UAAU,GAAG,KAAK,EAClB,YAA2B,EAC3B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,6BAA6B;AAC7B,uCASmB;AAkBjB,sFAtBA,eAAK,OAsBA;AACL,6FArBA,sBAAY,OAqBA;AAHZ,kGAjBA,2BAAiB,OAiBA;AAfnB,uEAAkE;AAClE,iEAA4D;AAC5D,mEAA8D;AAC9D,qCAIkB;AAYhB,wGAfA,gCAAuB,OAeA;AACvB,sGAfA,8BAAqB,OAeA;AACrB,+FAfA,uBAAc,OAeA;AAbhB,+CAA2D;AAKzD,2GALO,wCAA0B,OAKP;AAY5B,KAAK,UAAU,YAAY,CACzB,oBAA4B,EAC5B,gBAAwB,EACxB,UAAU,GAAG,KAAK,EAClB,YAA2B,EAC3B,kBAA2B,IAAI,EAC/B,0BAAkC,cAAc;IAEhD,IAAI,CAAC,YAAY,EAAE;QACjB,YAAY,GAAG,sBAAY,CAAC,GAAG,CAAC;KACjC;SAAM,IAAI,YAAY,KAAK,sBAAY,CAAC,IAAI,EAAE;QAC7C,YAAY,GAAG,mBAAmB,CAAC,gBAAgB,CAAC,CAAC;KACtD;IAED,IAAI,cAA8B,CAAC;IACnC,QAAQ,YAAY,EAAE;QACpB,KAAK,sBAAY,CAAC,GAAG;YACnB,cAAc,GAAG,IAAI,uCAAiB,EAAE,CAAC;YACzC,MAAM;QACR,KAAK,sBAAY,CAAC,IAAI;YACpB,cAAc,GAAG,IAAI,iCAAc,EAAE,CAAC;YACtC,MAAM;QACR,KAAK,sBAAY,CAAC,KAAK;YACrB,cAAc,GAAG,IAAI,mCAAe,EAAE,CAAC;YACvC,MAAM;QACR;YACE,MAAM,IAAI,8BAAqB,CAC7B,4BAA4B;gBAC1B,GAAG,YAAY,+CAA+C;gBAC9D,YAAY,CACf,CAAC;KACL;IAED,MAAM,YAAY,GAAiB,2BAAiB,CAAC,oBAAoB,CAAC,CAAC;IAC3E,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;QACtB,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,uBAAuB,CAAC;YAC1D,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC;YACxC,CAAC,CAAC,uBAAuB,CAAC;KAC7B;IAED,MAAM,QAAQ,GAAa,cAAc,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC1E,OAAO,cAAc,CAAC,iBAAiB,CACrC,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,eAAe,CAChB,CAAC;AACJ,CAAC;AA7DC,oCAAY;AA+Dd,KAAK,UAAU,qBAAqB,CAClC,IAAY,EACZ,gBAAwB,EACxB,YAAoB,EACpB,UAAU,GAAG,KAAK,EAClB,eAAe,GAAG,IAAI;IAEtB,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,IAAI,CAAC,YAAY,EAAE;QAC/C,MAAM,IAAI,KAAK,CAAC,yDAAyD,CAAC,CAAC;KAC5E;IAED,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAClE,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;IAE1D,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE;QACxC,MAAM,IAAI,8BAAqB,CAC7B,wCAAwC;YACtC,aAAa,oBAAoB,EAAE,CACtC,CAAC;KACH;IACD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;QACpC,MAAM,IAAI,8BAAqB,CAC7B,kCAAkC,GAAG,gBAAgB,CACtD,CAAC;KACH;IAED,MAAM,oBAAoB,GAAG,EAAE,CAAC,YAAY,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAC5E,MAAM,gBAAgB,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;IAEpE,IAAI,YAA0B,CAAC;IAC/B,IAAI,YAAY,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;QAC9C,YAAY,GAAG,sBAAY,CAAC,GAAG,CAAC;KACjC;SAAM,IAAI,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;QAC7C,YAAY,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;KAC1E;SAAM;QACL,MAAM,IAAI,8BAAqB,CAC7B,oBAAoB,YAAY,IAAI;YAClC,uDAAuD,CAC1D,CAAC;KACH;IAED,OAAO,MAAM,YAAY,CACvB,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,gBAAgB,CACjB,CAAC;AACJ,CAAC;AA/GC,sDAAqB;AAiHvB,SAAS,0BAA0B,CACjC,IAAI,EACJ,gBAAwB;IAExB,IAAI,CAAC,IAAI,IAAI,CAAC,gBAAgB,EAAE;QAC9B,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;KACH;IACD,MAAM,oBAAoB,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAClE,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,oBAAoB,CAAC,EAAE;QACxC,MAAM,IAAI,8BAAqB,CAC7B,wCAAwC;YACtC,aAAa,oBAAoB,EAAE,CACtC,CAAC;KACH;IACD,MAAM,oBAAoB,GAAG,EAAE,CAAC,YAAY,CAAC,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAE5E,OAAO,2BAAiB,CAAC,oBAAoB,CAAC,CAAC;AACjD,CAAC;AAlIC,gEAA0B;AAoI5B,SAAgB,mBAAmB,CACjC,gBAAwB,EACxB,IAAa,EACb,YAAqB;IAErB,IACE,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC;QACvC,CAAC,IAAI;YACH,YAAY;YACZ,EAAE,CAAC,UAAU,CACX,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,OAAO,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC,CACrE,CAAC,EACJ;QACA,OAAO,sBAAY,CAAC,KAAK,CAAC;KAC3B;SAAM;QACL,OAAO,sBAAY,CAAC,IAAI,CAAC;KAC1B;AACH,CAAC;AAjBD,kDAiBC"}
|
package/dist/parsers/index.d.ts
CHANGED
|
@@ -12,6 +12,11 @@ interface WorkspacesAlternateConfig {
|
|
|
12
12
|
export declare type ManifestDependencies = {
|
|
13
13
|
[dep: string]: string;
|
|
14
14
|
};
|
|
15
|
+
export declare type PeerDependenciesMeta = {
|
|
16
|
+
[dep: string]: {
|
|
17
|
+
optional: boolean;
|
|
18
|
+
};
|
|
19
|
+
};
|
|
15
20
|
export interface ManifestFile {
|
|
16
21
|
name: string;
|
|
17
22
|
private?: string;
|
|
@@ -23,6 +28,7 @@ export interface ManifestFile {
|
|
|
23
28
|
devDependencies?: ManifestDependencies;
|
|
24
29
|
optionalDependencies?: ManifestDependencies;
|
|
25
30
|
peerDependencies?: ManifestDependencies;
|
|
31
|
+
peerDependenciesMeta?: PeerDependenciesMeta;
|
|
26
32
|
resolutions?: ManifestDependencies;
|
|
27
33
|
version?: string;
|
|
28
34
|
}
|
|
@@ -66,11 +72,16 @@ export declare enum LockfileType {
|
|
|
66
72
|
}
|
|
67
73
|
export interface LockfileParser {
|
|
68
74
|
parseLockFile: (lockFileContents: string) => Lockfile;
|
|
69
|
-
getDependencyTree: (manifestFile: ManifestFile, lockfile: Lockfile, includeDev?: boolean,
|
|
75
|
+
getDependencyTree: (manifestFile: ManifestFile, lockfile: Lockfile, includeDev?: boolean, strictOutOfSync?: boolean) => Promise<PkgTree>;
|
|
70
76
|
}
|
|
71
77
|
export declare type Lockfile = PackageLock | YarnLock | Yarn2Lock;
|
|
72
78
|
export declare function parseManifestFile(manifestFileContents: string): ManifestFile;
|
|
73
|
-
export declare function getTopLevelDeps(targetFile
|
|
79
|
+
export declare function getTopLevelDeps({ targetFile, includeDev, includePeerDeps, applyYarn2Resolutions, }: {
|
|
80
|
+
targetFile: ManifestFile;
|
|
81
|
+
includeDev: boolean;
|
|
82
|
+
includePeerDeps?: boolean;
|
|
83
|
+
applyYarn2Resolutions?: boolean;
|
|
84
|
+
}): Dep[];
|
|
74
85
|
export declare function createDepTreeDepFromDep(dep: Dep): DepTreeDep;
|
|
75
86
|
export declare function getYarnWorkspaces(targetFile: string): string[] | false;
|
|
76
87
|
export {};
|
package/dist/parsers/index.js
CHANGED
|
@@ -23,8 +23,9 @@ function parseManifestFile(manifestFileContents) {
|
|
|
23
23
|
}
|
|
24
24
|
}
|
|
25
25
|
exports.parseManifestFile = parseManifestFile;
|
|
26
|
-
function getTopLevelDeps(targetFile, includeDev, includePeerDeps = false) {
|
|
27
|
-
|
|
26
|
+
function getTopLevelDeps({ targetFile, includeDev, includePeerDeps = false, applyYarn2Resolutions = false, }) {
|
|
27
|
+
var _a, _b;
|
|
28
|
+
let dependencies = [];
|
|
28
29
|
const dependenciesIterator = Object.entries(Object.assign(Object.assign(Object.assign({}, targetFile.dependencies), (includeDev ? targetFile.devDependencies : null)), (targetFile.optionalDependencies || {})));
|
|
29
30
|
for (const [name, version] of dependenciesIterator) {
|
|
30
31
|
dependencies.push({
|
|
@@ -37,12 +38,22 @@ function getTopLevelDeps(targetFile, includeDev, includePeerDeps = false) {
|
|
|
37
38
|
}
|
|
38
39
|
if (includePeerDeps && targetFile.peerDependencies) {
|
|
39
40
|
for (const [name, version] of Object.entries(targetFile.peerDependencies)) {
|
|
41
|
+
if ((_b = (_a = targetFile === null || targetFile === void 0 ? void 0 : targetFile.peerDependenciesMeta) === null || _a === void 0 ? void 0 : _a[name]) === null || _b === void 0 ? void 0 : _b.optional) {
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
40
44
|
dependencies.push({
|
|
41
45
|
name,
|
|
42
46
|
version,
|
|
43
47
|
});
|
|
44
48
|
}
|
|
45
49
|
}
|
|
50
|
+
if (applyYarn2Resolutions && targetFile.resolutions) {
|
|
51
|
+
const resMap = new Map(Object.entries(targetFile.resolutions).map(([resName, resVersion]) => [
|
|
52
|
+
resName.replace(`${targetFile.name}/`, ''),
|
|
53
|
+
resVersion,
|
|
54
|
+
]));
|
|
55
|
+
dependencies = dependencies.map((dep) => resMap.has(dep.name) ? Object.assign(Object.assign({}, dep), { version: resMap.get(dep.name) }) : dep);
|
|
56
|
+
}
|
|
46
57
|
return dependencies;
|
|
47
58
|
}
|
|
48
59
|
exports.getTopLevelDeps = getTopLevelDeps;
|
|
@@ -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":";;;AAEA,sCAAkD;AAsElD,IAAY,KAGX;AAHD,WAAY,KAAK;IACf,sBAAa,CAAA;IACb,oBAAW,CAAA;AACb,CAAC,EAHW,KAAK,GAAL,aAAK,KAAL,aAAK,QAGhB;AAED,IAAY,YAKX;AALD,WAAY,YAAY;IACtB,2BAAW,CAAA;IACX,6BAAa,CAAA;IACb,6BAAa,CAAA;IACb,+BAAe,CAAA;AACjB,CAAC,EALW,YAAY,GAAZ,oBAAY,KAAZ,oBAAY,QAKvB;AAcD,SAAgB,iBAAiB,CAAC,oBAA4B;IAC5D,IAAI;QACF,OAAO,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;KACzC;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,8BAAqB,CAC7B,yCAAyC,GAAG,CAAC,CAAC,OAAO,CACtD,CAAC;KACH;AACH,CAAC;AARD,8CAQC;AAED,SAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,UAAU,EACV,eAAe,GAAG,KAAK,EACvB,qBAAqB,GAAG,KAAK,GAM9B;;IACC,IAAI,YAAY,GAAU,EAAE,CAAC;IAE7B,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,+CACtC,UAAU,CAAC,YAAY,GACvB,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,GAChD,CAAC,UAAU,CAAC,oBAAoB,IAAI,EAAE,CAAC,EAC1C,CAAC;IAEH,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,oBAAoB,EAAE;QAClD,YAAY,CAAC,IAAI,CAAC;YAChB,GAAG,EACD,UAAU,IAAI,UAAU,CAAC,eAAe;gBACtC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC;gBACpC,CAAC,CAAC,KAAK;YACX,IAAI;YACJ,OAAO;SACR,CAAC,CAAC;KACJ;IAED,IAAI,eAAe,IAAI,UAAU,CAAC,gBAAgB,EAAE;QAClD,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE;YACzE,gBAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,oBAAoB,0CAAG,IAAI,2CAAG,QAAQ,EAAE;gBACtD,SAAS;aACV;YACD,YAAY,CAAC,IAAI,CAAC;gBAChB,IAAI;gBACJ,OAAO;aACR,CAAC,CAAC;SACJ;KACF;IAED,IAAI,qBAAqB,IAAI,UAAU,CAAC,WAAW,EAAE;QACnD,MAAM,MAAM,GAAG,IAAI,GAAG,CACpB,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC;YACpE,OAAO,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;YAC1C,UAAU;SACX,CAAC,CACH,CAAC;QAEF,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CACtC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,iCAAM,GAAG,KAAE,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE,IAAG,CAAC,CAAC,GAAG,CACxE,CAAC;KACH;IACD,OAAO,YAAY,CAAC;AACtB,CAAC;AAvDD,0CAuDC;AAED,SAAgB,uBAAuB,CAAC,GAAQ;IAC9C,OAAO;QACL,MAAM,EAAE;YACN,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI;SACxC;QACD,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,OAAO;KACrB,CAAC;AACJ,CAAC;AARD,0DAQC;AAED,SAAgB,iBAAiB,CAAC,UAAkB;IAClD,IAAI;QACF,MAAM,WAAW,GAAiB,iBAAiB,CAAC,UAAU,CAAC,CAAC;QAChE,IAAI,CAAC,CAAC,WAAW,CAAC,UAAU,IAAI,CAAC,CAAC,WAAW,CAAC,OAAO,EAAE;YACrD,MAAM,kBAAkB,GAAG,WAAW,CAAC,UAAsB,CAAC;YAC9D,MAAM,iCAAiC,GAAI,WAAW,CAAC,UAAwC;iBAC5F,QAAQ,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,iCAAiC,IAAI,kBAAkB,CAAC,CAAC,CAAC;SACvE;QACD,OAAO,KAAK,CAAC;KACd;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,8BAAqB,CAC7B,mCAAmC,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,CAC3D,CAAC;KACH;AACH,CAAC;AAfD,8CAeC"}
|
|
@@ -22,7 +22,7 @@ export declare abstract class LockParserBase implements LockfileParser {
|
|
|
22
22
|
protected pathDelimiter: string;
|
|
23
23
|
constructor(type: LockfileType, treeSizeLimit: number);
|
|
24
24
|
abstract parseLockFile(lockFileContents: string): Lockfile;
|
|
25
|
-
getDependencyTree(manifestFile: ManifestFile, lockfile: Lockfile, includeDev?: boolean,
|
|
25
|
+
getDependencyTree(manifestFile: ManifestFile, lockfile: Lockfile, includeDev?: boolean, strictOutOfSync?: boolean): Promise<PkgTree>;
|
|
26
26
|
private setDevDepRec;
|
|
27
27
|
private removeCycle;
|
|
28
28
|
private cloneAcyclicNodeEdges;
|
|
@@ -3,20 +3,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.LockParserBase = void 0;
|
|
4
4
|
const _cloneDeep = require("lodash.clonedeep");
|
|
5
5
|
const _isEmpty = require("lodash.isempty");
|
|
6
|
-
const _set = require("lodash.set");
|
|
7
6
|
const _toPairs = require("lodash.topairs");
|
|
8
7
|
const graphlib = require("@snyk/graphlib");
|
|
9
8
|
const uuid_1 = require("uuid");
|
|
10
9
|
const event_loop_spinner_1 = require("event-loop-spinner");
|
|
10
|
+
const baseDebug = require("debug");
|
|
11
11
|
const _1 = require("./");
|
|
12
12
|
const errors_1 = require("../errors");
|
|
13
|
+
const debug = baseDebug('snyk-nodejs-parser');
|
|
13
14
|
class LockParserBase {
|
|
14
15
|
constructor(type, treeSizeLimit) {
|
|
15
16
|
this.type = type;
|
|
16
17
|
this.treeSizeLimit = treeSizeLimit;
|
|
17
18
|
this.pathDelimiter = '|';
|
|
18
19
|
}
|
|
19
|
-
async getDependencyTree(manifestFile, lockfile, includeDev = false,
|
|
20
|
+
async getDependencyTree(manifestFile, lockfile, includeDev = false, strictOutOfSync = true) {
|
|
20
21
|
var _a;
|
|
21
22
|
if (lockfile.type !== this.type) {
|
|
22
23
|
throw new errors_1.InvalidUserInputError('Unsupported lockfile provided. Please ' +
|
|
@@ -32,7 +33,10 @@ class LockParserBase {
|
|
|
32
33
|
};
|
|
33
34
|
const nodeVersion = (_a = manifestFile === null || manifestFile === void 0 ? void 0 : manifestFile.engines) === null || _a === void 0 ? void 0 : _a.node;
|
|
34
35
|
if (nodeVersion) {
|
|
35
|
-
|
|
36
|
+
if (!depTree.meta) {
|
|
37
|
+
depTree.meta = {};
|
|
38
|
+
}
|
|
39
|
+
depTree.meta.nodeVersion = nodeVersion;
|
|
36
40
|
}
|
|
37
41
|
// asked to process empty deps
|
|
38
42
|
if (_isEmpty(manifestFile.dependencies) && !includeDev) {
|
|
@@ -43,7 +47,7 @@ class LockParserBase {
|
|
|
43
47
|
// relative path on disc
|
|
44
48
|
const depMap = this.getDepMap(yarnLock, manifestFile.resolutions);
|
|
45
49
|
// all paths are identified, we can create a graph representing what depends on what
|
|
46
|
-
const depGraph = this.createGraphOfDependencies(depMap);
|
|
50
|
+
const depGraph = this.createGraphOfDependencies(depMap, strictOutOfSync);
|
|
47
51
|
// topological sort will be applied and it requires acyclic graphs
|
|
48
52
|
let cycleStarts = {};
|
|
49
53
|
if (!graphlib.alg.isAcyclic(depGraph)) {
|
|
@@ -60,7 +64,12 @@ class LockParserBase {
|
|
|
60
64
|
// Only include peerDependencies if using npm and npm is at least
|
|
61
65
|
// version 7 as npm v7 automatically installs peerDependencies
|
|
62
66
|
// get trees for dependencies from manifest file
|
|
63
|
-
const topLevelDeps = _1.getTopLevelDeps(
|
|
67
|
+
const topLevelDeps = _1.getTopLevelDeps({
|
|
68
|
+
targetFile: manifestFile,
|
|
69
|
+
includeDev,
|
|
70
|
+
includePeerDeps: lockfile.type === _1.LockfileType.npm7,
|
|
71
|
+
applyYarn2Resolutions: lockfile.type === _1.LockfileType.yarn2,
|
|
72
|
+
});
|
|
64
73
|
// number of dependencies including root one
|
|
65
74
|
let treeSize = 1;
|
|
66
75
|
for (const dep of topLevelDeps) {
|
|
@@ -88,7 +97,7 @@ class LockParserBase {
|
|
|
88
97
|
else {
|
|
89
98
|
// TODO: also check the package version
|
|
90
99
|
// for a stricter check
|
|
91
|
-
if (
|
|
100
|
+
if (strictOutOfSync) {
|
|
92
101
|
throw new errors_1.OutOfSyncError(dep.name, this.type);
|
|
93
102
|
}
|
|
94
103
|
depTree.dependencies[dep.name] = _1.createDepTreeDepFromDep(dep);
|
|
@@ -207,14 +216,14 @@ class LockParserBase {
|
|
|
207
216
|
depGraph.setNode(newNode);
|
|
208
217
|
return newNode;
|
|
209
218
|
}
|
|
210
|
-
createGraphOfDependencies(depMap) {
|
|
219
|
+
createGraphOfDependencies(depMap, strictOutOfSync = true) {
|
|
211
220
|
const depGraph = new graphlib.Graph();
|
|
212
221
|
for (const depKey of Object.keys(depMap)) {
|
|
213
222
|
depGraph.setNode(depKey);
|
|
214
223
|
}
|
|
215
224
|
for (const [depPath, dep] of Object.entries(depMap)) {
|
|
216
225
|
for (const depName of dep.requires) {
|
|
217
|
-
const subDepPath = this.findDepsPath(depPath, depName, depMap);
|
|
226
|
+
const subDepPath = this.findDepsPath(depPath, depName, depMap, strictOutOfSync);
|
|
218
227
|
// direction is from the dependency to the package requiring it
|
|
219
228
|
depGraph.setEdge(subDepPath, depPath);
|
|
220
229
|
}
|
|
@@ -223,7 +232,7 @@ class LockParserBase {
|
|
|
223
232
|
}
|
|
224
233
|
// dependency in package-lock.json v1 can be defined either inside `dependencies`
|
|
225
234
|
// of other dependency or anywhere upward towards root
|
|
226
|
-
findDepsPath(startPath, depName, depMap) {
|
|
235
|
+
findDepsPath(startPath, depName, depMap, strictOutOfSync = true) {
|
|
227
236
|
const depPath = startPath.split(this.pathDelimiter);
|
|
228
237
|
while (depPath.length) {
|
|
229
238
|
const currentPath = depPath.concat(depName).join(this.pathDelimiter);
|
|
@@ -233,7 +242,10 @@ class LockParserBase {
|
|
|
233
242
|
depPath.pop();
|
|
234
243
|
}
|
|
235
244
|
if (!depMap[depName]) {
|
|
236
|
-
|
|
245
|
+
debug(`Dependency ${depName} not found`);
|
|
246
|
+
if (strictOutOfSync) {
|
|
247
|
+
throw new errors_1.OutOfSyncError(depName, this.type);
|
|
248
|
+
}
|
|
237
249
|
}
|
|
238
250
|
return depName;
|
|
239
251
|
}
|
|
@@ -254,15 +266,36 @@ class LockParserBase {
|
|
|
254
266
|
const depKey = depOrder.shift();
|
|
255
267
|
const dep = depMap[depKey];
|
|
256
268
|
let treeSize = 1;
|
|
269
|
+
if (!dep) {
|
|
270
|
+
debug(`Missing entry for ${depKey}`);
|
|
271
|
+
continue;
|
|
272
|
+
}
|
|
257
273
|
// direction is from the dependency to the package requiring it, so we are
|
|
258
274
|
// looking for predecessors
|
|
259
275
|
for (const subDepPath of depGraph.predecessors(depKey)) {
|
|
260
|
-
|
|
276
|
+
let subDep = depTrees[subDepPath];
|
|
261
277
|
if (!dep.dependencies) {
|
|
262
278
|
dep.dependencies = {};
|
|
263
279
|
}
|
|
280
|
+
if (!subDep) {
|
|
281
|
+
debug(`Missing entry for ${subDepPath}`);
|
|
282
|
+
const index = subDepPath.indexOf('@', 1);
|
|
283
|
+
const name = subDepPath.slice(0, index);
|
|
284
|
+
const identifier = subDepPath.slice(index + 1);
|
|
285
|
+
subDep = {
|
|
286
|
+
name: name,
|
|
287
|
+
version: identifier,
|
|
288
|
+
dependencies: {},
|
|
289
|
+
labels: {
|
|
290
|
+
missingLockFileEntry: 'true',
|
|
291
|
+
},
|
|
292
|
+
};
|
|
293
|
+
treeSize += 1;
|
|
294
|
+
}
|
|
295
|
+
else {
|
|
296
|
+
treeSize += depTreesSizes[subDepPath];
|
|
297
|
+
}
|
|
264
298
|
dep.dependencies[subDep.name] = subDep;
|
|
265
|
-
treeSize += depTreesSizes[subDepPath];
|
|
266
299
|
}
|
|
267
300
|
const depTreeDep = {
|
|
268
301
|
labels: dep.labels,
|
|
@@ -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,
|
|
1
|
+
{"version":3,"file":"lock-parser-base.js","sourceRoot":"","sources":["../../lib/parsers/lock-parser-base.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ export interface PackageLockDep {
|
|
|
21
21
|
export declare class PackageLockParser extends LockParserBase {
|
|
22
22
|
constructor();
|
|
23
23
|
parseLockFile(lockFileContents: string): PackageLock;
|
|
24
|
-
getDependencyTree(manifestFile: ManifestFile, lockfile: Lockfile, includeDev?: boolean,
|
|
24
|
+
getDependencyTree(manifestFile: ManifestFile, lockfile: Lockfile, includeDev?: boolean, strictOutOfSync?: boolean): Promise<PkgTree>;
|
|
25
25
|
protected getDepMap(lockfile: Lockfile): DepMap;
|
|
26
26
|
protected getDepTreeKey(dep: Dep): string;
|
|
27
27
|
}
|
|
@@ -23,8 +23,8 @@ class PackageLockParser extends lock_parser_base_1.LockParserBase {
|
|
|
23
23
|
throw new errors_1.InvalidUserInputError('package-lock.json parsing failed with ' + `error ${e.message}`);
|
|
24
24
|
}
|
|
25
25
|
}
|
|
26
|
-
async getDependencyTree(manifestFile, lockfile, includeDev = false,
|
|
27
|
-
const dependencyTree = await super.getDependencyTree(manifestFile, lockfile, includeDev,
|
|
26
|
+
async getDependencyTree(manifestFile, lockfile, includeDev = false, strictOutOfSync = true) {
|
|
27
|
+
const dependencyTree = await super.getDependencyTree(manifestFile, lockfile, includeDev, strictOutOfSync);
|
|
28
28
|
const meta = {
|
|
29
29
|
lockfileVersion: lockfile.lockfileVersion,
|
|
30
30
|
packageManager: 'npm',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"package-lock-parser.js","sourceRoot":"","sources":["../../lib/parsers/package-lock-parser.ts"],"names":[],"mappings":";;;AAAA,mCAOiB;AACjB,sCAAkD;AAClD,yDAAwE;AACxE,sCAAmC;AAuBnC,MAAa,iBAAkB,SAAQ,iCAAc;IACnD;QACE,KAAK,CAAC,oBAAY,CAAC,GAAG,EAAE,eAAM,CAAC,mBAAmB,CAAC,CAAC;IACtD,CAAC;IAEM,aAAa,CAAC,gBAAwB;QAC3C,IAAI;YACF,MAAM,WAAW,GAAgB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC9D,WAAW,CAAC,IAAI;gBACd,WAAW,CAAC,eAAe,KAAK,CAAC;oBAC/B,CAAC,CAAC,oBAAY,CAAC,GAAG;oBAClB,CAAC,CAAC,oBAAY,CAAC,IAAI,CAAC;YACxB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;YAC7B,OAAO,WAAW,CAAC;SACpB;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,8BAAqB,CAC7B,wCAAwC,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,CAChE,CAAC;SACH;IACH,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC5B,YAA0B,EAC1B,QAAkB,EAClB,aAAsB,KAAK,EAC3B,
|
|
1
|
+
{"version":3,"file":"package-lock-parser.js","sourceRoot":"","sources":["../../lib/parsers/package-lock-parser.ts"],"names":[],"mappings":";;;AAAA,mCAOiB;AACjB,sCAAkD;AAClD,yDAAwE;AACxE,sCAAmC;AAuBnC,MAAa,iBAAkB,SAAQ,iCAAc;IACnD;QACE,KAAK,CAAC,oBAAY,CAAC,GAAG,EAAE,eAAM,CAAC,mBAAmB,CAAC,CAAC;IACtD,CAAC;IAEM,aAAa,CAAC,gBAAwB;QAC3C,IAAI;YACF,MAAM,WAAW,GAAgB,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YAC9D,WAAW,CAAC,IAAI;gBACd,WAAW,CAAC,eAAe,KAAK,CAAC;oBAC/B,CAAC,CAAC,oBAAY,CAAC,GAAG;oBAClB,CAAC,CAAC,oBAAY,CAAC,IAAI,CAAC;YACxB,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;YAC7B,OAAO,WAAW,CAAC;SACpB;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,8BAAqB,CAC7B,wCAAwC,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,CAChE,CAAC;SACH;IACH,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC5B,YAA0B,EAC1B,QAAkB,EAClB,aAAsB,KAAK,EAC3B,kBAA2B,IAAI;QAE/B,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAClD,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,eAAe,CAChB,CAAC;QACF,MAAM,IAAI,GAAG;YACX,eAAe,EAAG,QAAwB,CAAC,eAAe;YAC1D,cAAc,EAAE,KAAK;SACtB,CAAC;QACF,MAAM,eAAe,mCAChB,cAAc,KACjB,IAAI,kCAAO,cAAc,CAAC,IAAI,GAAK,IAAI,IACxC,CAAC;QACF,OAAO,eAAe,CAAC;IACzB,CAAC;IAES,SAAS,CAAC,QAAkB;QACpC,MAAM,WAAW,GAAG,QAAuB,CAAC;QAC5C,MAAM,MAAM,GAAW,EAAE,CAAC;QAE1B,MAAM,kBAAkB,GAAG,CACzB,YAA6B,EAC7B,IAAc,EACd,EAAE;YACF,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;gBACzD,MAAM,OAAO,GAAe;oBAC1B,MAAM,EAAE;wBACN,KAAK,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,aAAK,CAAC,GAAG,CAAC,CAAC,CAAC,aAAK,CAAC,IAAI;qBACxC;oBACD,IAAI,EAAE,OAAO;oBACb,QAAQ,EAAE,EAAE;oBACZ,OAAO,EAAE,GAAG,CAAC,OAAO;iBACrB,CAAC;gBAEF,IAAI,GAAG,CAAC,QAAQ,EAAE;oBAChB,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;iBAC9C;gBAED,MAAM,OAAO,GAAa,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;gBAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBAChD,MAAM,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;gBACzB,IAAI,GAAG,CAAC,YAAY,EAAE;oBACpB,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;iBAC/C;aACF;QACH,CAAC,CAAC;QAEF,kBAAkB,CAAC,WAAW,CAAC,YAAY,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;QAEvD,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,aAAa,CAAC,GAAQ;QAC9B,OAAO,GAAG,CAAC,IAAI,CAAC;IAClB,CAAC;CACF;AAnFD,8CAmFC"}
|
|
@@ -22,7 +22,7 @@ export interface YarnLockDep {
|
|
|
22
22
|
export declare class YarnLockParser extends LockParserBase {
|
|
23
23
|
constructor();
|
|
24
24
|
parseLockFile(lockFileContents: string): YarnLock;
|
|
25
|
-
getDependencyTree(manifestFile: ManifestFile, lockfile: Lockfile, includeDev?: boolean,
|
|
25
|
+
getDependencyTree(manifestFile: ManifestFile, lockfile: Lockfile, includeDev?: boolean, strictOutOfSync?: boolean): Promise<PkgTree>;
|
|
26
26
|
protected getDepMap(lockfile: Lockfile): DepMap;
|
|
27
27
|
protected getDepTreeKey(dep: Dep): string;
|
|
28
28
|
}
|
|
@@ -21,8 +21,8 @@ class YarnLockParser extends lock_parser_base_1.LockParserBase {
|
|
|
21
21
|
throw new errors_1.InvalidUserInputError(`yarn.lock parsing failed with an error: ${e.message}`);
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
async getDependencyTree(manifestFile, lockfile, includeDev = false,
|
|
25
|
-
const depTree = await super.getDependencyTree(manifestFile, lockfile, includeDev,
|
|
24
|
+
async getDependencyTree(manifestFile, lockfile, includeDev = false, strictOutOfSync = true) {
|
|
25
|
+
const depTree = await super.getDependencyTree(manifestFile, lockfile, includeDev, strictOutOfSync);
|
|
26
26
|
const meta = { lockfileVersion: 1, packageManager: 'yarn' };
|
|
27
27
|
const depTreeWithMeta = Object.assign(Object.assign({}, depTree), { meta: Object.assign(Object.assign({}, depTree.meta), meta) });
|
|
28
28
|
return depTreeWithMeta;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yarn-lock-parser.js","sourceRoot":"","sources":["../../lib/parsers/yarn-lock-parser.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AAExD,mCAOiB;AACjB,sCAAkD;AAClD,yDAA4D;AAC5D,sCAAmC;AAyBnC,MAAa,cAAe,SAAQ,iCAAc;IAChD;QACE,KAAK,CAAC,oBAAY,CAAC,IAAI,EAAE,eAAM,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC;IAEM,aAAa,CAAC,gBAAwB;QAC3C,IAAI;YACF,MAAM,QAAQ,GAAa,kBAAkB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACtE,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC;YACxC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAC1B,OAAO,QAAQ,CAAC;SACjB;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,8BAAqB,CAC7B,2CAA2C,CAAC,CAAC,OAAO,EAAE,CACvD,CAAC;SACH;IACH,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC5B,YAA0B,EAC1B,QAAkB,EAClB,UAAU,GAAG,KAAK,EAClB,
|
|
1
|
+
{"version":3,"file":"yarn-lock-parser.js","sourceRoot":"","sources":["../../lib/parsers/yarn-lock-parser.ts"],"names":[],"mappings":";;;AAAA,wDAAwD;AAExD,mCAOiB;AACjB,sCAAkD;AAClD,yDAA4D;AAC5D,sCAAmC;AAyBnC,MAAa,cAAe,SAAQ,iCAAc;IAChD;QACE,KAAK,CAAC,oBAAY,CAAC,IAAI,EAAE,eAAM,CAAC,oBAAoB,CAAC,CAAC;IACxD,CAAC;IAEM,aAAa,CAAC,gBAAwB;QAC3C,IAAI;YACF,MAAM,QAAQ,GAAa,kBAAkB,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACtE,QAAQ,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC;YACxC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAC1B,OAAO,QAAQ,CAAC;SACjB;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,8BAAqB,CAC7B,2CAA2C,CAAC,CAAC,OAAO,EAAE,CACvD,CAAC;SACH;IACH,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC5B,YAA0B,EAC1B,QAAkB,EAClB,UAAU,GAAG,KAAK,EAClB,eAAe,GAAG,IAAI;QAEtB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAC3C,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,eAAe,CAChB,CAAC;QAEF,MAAM,IAAI,GAAG,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;QAC5D,MAAM,eAAe,mCAChB,OAAO,KACV,IAAI,kCAAO,OAAO,CAAC,IAAI,GAAK,IAAI,IACjC,CAAC;QAEF,OAAO,eAAe,CAAC;IACzB,CAAC;IAES,SAAS,CAAC,QAAkB;QACpC,MAAM,YAAY,GAAG,QAAoB,CAAC;QAC1C,MAAM,MAAM,GAAW,EAAE,CAAC;QAE1B,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;YAChE,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,iCACjC,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,GACxB,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,EACnC,CAAC;YACH,MAAM,CAAC,OAAO,CAAC,GAAG;gBAChB,MAAM,EAAE;oBACN,KAAK,EAAE,aAAK,CAAC,IAAI;iBAClB;gBACD,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;gBACtB,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;gBAC9D,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB,CAAC;SACH;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,aAAa,CAAC,GAAQ;QAC9B,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;CACF;AAjED,wCAiEC;AAED,SAAS,OAAO,CAAC,OAAe;IAC9B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC"}
|
|
@@ -10,7 +10,7 @@ export interface Yarn2Lock {
|
|
|
10
10
|
export declare class Yarn2LockParser extends LockParserBase {
|
|
11
11
|
constructor();
|
|
12
12
|
parseLockFile(lockFileContents: string): Yarn2Lock;
|
|
13
|
-
getDependencyTree(manifestFile: ManifestFile, lockfile: Lockfile, includeDev?: boolean,
|
|
13
|
+
getDependencyTree(manifestFile: ManifestFile, lockfile: Lockfile, includeDev?: boolean, strictOutOfSync?: boolean): Promise<PkgTree>;
|
|
14
14
|
protected getDepMap(lockfile: Lockfile, resolutions?: ManifestDependencies): DepMap;
|
|
15
15
|
protected getDepTreeKey(dep: Dep): string;
|
|
16
16
|
}
|
|
@@ -40,8 +40,8 @@ class Yarn2LockParser extends lock_parser_base_1.LockParserBase {
|
|
|
40
40
|
throw new errors_1.InvalidUserInputError(`yarn.lock parsing failed with an error: ${e.message}`);
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
async getDependencyTree(manifestFile, lockfile, includeDev = false,
|
|
44
|
-
const depTree = await super.getDependencyTree(manifestFile, lockfile, includeDev,
|
|
43
|
+
async getDependencyTree(manifestFile, lockfile, includeDev = false, strictOutOfSync = true) {
|
|
44
|
+
const depTree = await super.getDependencyTree(manifestFile, lockfile, includeDev, strictOutOfSync);
|
|
45
45
|
const meta = { lockfileVersion: 2, packageManager: 'yarn' };
|
|
46
46
|
const depTreeWithMeta = Object.assign(Object.assign({}, depTree), { meta: Object.assign(Object.assign({}, depTree.meta), meta) });
|
|
47
47
|
return depTreeWithMeta;
|
|
@@ -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,wBAQW;AACX,sCAAmC;AAEnC,sCAAkD;AAClD,6CAAyD;AASzD,MAAa,eAAgB,SAAQ,iCAAc;IACjD;QACE,KAAK,CAAC,eAAY,CAAC,KAAK,EAAE,eAAM,CAAC,oBAAoB,CAAC,CAAC;IACzD,CAAC;IAEM,aAAa,CAAC,gBAAwB;QAC3C,IAAI;YACF,MAAM,WAAW,GAAQ,cAAI,CAAC,gBAAgB,EAAE;gBAC9C,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,yBAAe;aACxB,CAAC,CAAC;YAEH,OAAO,WAAW,CAAC,UAAU,CAAC;YAC9B,MAAM,YAAY,GAAiB,EAAE,CAAC;YAEtC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;YACzC,MAAM,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC;YACpD,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;YAE1C,MAAM,aAAa,GAAG,sCAAyB,CAC7C,eAAe,EACf,UAAU,CACX,CAAC;YAEF,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CACjC,CAAC,CAAC,cAAc,EAAE,WAAW,CAAgB,EAAE,EAAE;gBAC/C,aAAa,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;oBACnD,YAAY,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;gBACzC,CAAC,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YAEF,OAAO;gBACL,YAAY;gBACZ,YAAY,EAAE,eAAY,CAAC,KAAK;gBAChC,MAAM,EAAE,YAAY;gBACpB,IAAI,EAAE,eAAY,CAAC,KAAK;aACzB,CAAC;SACH;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,8BAAqB,CAC7B,2CAA2C,CAAC,CAAC,OAAO,EAAE,CACvD,CAAC;SACH;IACH,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC5B,YAA0B,EAC1B,QAAkB,EAClB,UAAU,GAAG,KAAK,EAClB,
|
|
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,wBAQW;AACX,sCAAmC;AAEnC,sCAAkD;AAClD,6CAAyD;AASzD,MAAa,eAAgB,SAAQ,iCAAc;IACjD;QACE,KAAK,CAAC,eAAY,CAAC,KAAK,EAAE,eAAM,CAAC,oBAAoB,CAAC,CAAC;IACzD,CAAC;IAEM,aAAa,CAAC,gBAAwB;QAC3C,IAAI;YACF,MAAM,WAAW,GAAQ,cAAI,CAAC,gBAAgB,EAAE;gBAC9C,IAAI,EAAE,IAAI;gBACV,MAAM,EAAE,yBAAe;aACxB,CAAC,CAAC;YAEH,OAAO,WAAW,CAAC,UAAU,CAAC;YAC9B,MAAM,YAAY,GAAiB,EAAE,CAAC;YAEtC,MAAM,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAC;YACzC,MAAM,eAAe,GAAG,WAAW,CAAC,eAAe,CAAC;YACpD,MAAM,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;YAE1C,MAAM,aAAa,GAAG,sCAAyB,CAC7C,eAAe,EACf,UAAU,CACX,CAAC;YAEF,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,OAAO,CACjC,CAAC,CAAC,cAAc,EAAE,WAAW,CAAgB,EAAE,EAAE;gBAC/C,aAAa,CAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;oBACnD,YAAY,CAAC,UAAU,CAAC,GAAG,WAAW,CAAC;gBACzC,CAAC,CAAC,CAAC;YACL,CAAC,CACF,CAAC;YAEF,OAAO;gBACL,YAAY;gBACZ,YAAY,EAAE,eAAY,CAAC,KAAK;gBAChC,MAAM,EAAE,YAAY;gBACpB,IAAI,EAAE,eAAY,CAAC,KAAK;aACzB,CAAC;SACH;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,IAAI,8BAAqB,CAC7B,2CAA2C,CAAC,CAAC,OAAO,EAAE,CACvD,CAAC;SACH;IACH,CAAC;IAEM,KAAK,CAAC,iBAAiB,CAC5B,YAA0B,EAC1B,QAAkB,EAClB,UAAU,GAAG,KAAK,EAClB,eAAe,GAAG,IAAI;QAEtB,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,iBAAiB,CAC3C,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,eAAe,CAChB,CAAC;QAEF,MAAM,IAAI,GAAG,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;QAC5D,MAAM,eAAe,mCAChB,OAAO,KACV,IAAI,kCAAO,OAAO,CAAC,IAAI,GAAK,IAAI,IACjC,CAAC;QAEF,OAAO,eAAe,CAAC;IACzB,CAAC;IAES,SAAS,CACjB,QAAkB,EAClB,WAAkC;QAElC,MAAM,YAAY,GAAG,QAAqB,CAAC;QAC3C,MAAM,MAAM,GAAW,EAAE,CAAC;QAE1B,MAAM,YAAY,GAAI,QAAQ,CAAC,YAA6B,IAAI,EAAE,CAAC;QAEnE,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;YAChE,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,iCACjC,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC,GACxB,CAAC,GAAG,CAAC,oBAAoB,IAAI,EAAE,CAAC,EACnC,CAAC,GAAG,CACJ,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,CACb,eAAe,CAAC,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,WAAW,CAAC;gBACxD,GAAG,GAAG,IAAI,GAAG,EAAE,CAClB,CAAC;YAEF,MAAM,CAAC,OAAO,CAAC,GAAG;gBAChB,MAAM,EAAE;oBACN,KAAK,EAAE,QAAK,CAAC,IAAI;iBAClB;gBACD,IAAI,EAAE,OAAO,CAAC,OAAO,CAAC;gBACtB,QAAQ,EAAE,eAAe;gBACzB,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB,CAAC;SACH;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAES,aAAa,CAAC,GAAQ;QAC9B,OAAO,GAAG,GAAG,CAAC,IAAI,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;IACtC,CAAC;CACF;AAtGD,0CAsGC;AAED,SAAS,OAAO,CAAC,OAAe;IAC9B,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,eAAe,CACtB,YAA0B,EAC1B,OAAe,EACf,SAAiB,EACjB,WAAkC;IAElC,IAAI,CAAC,WAAW;QAAE,OAAO;IAEzB,MAAM,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACrC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;IAEzC,MAAM,uBAAuB,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;QAC1D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE;YAC5B,OAAO,KAAK,CAAC;SACd;QAED,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAExD,MAAM,iBAAiB,GAAG,CAAC,UAAU,CAAC;QACtC,MAAM,gCAAgC,GAAG,UAAU,KAAK,IAAI,CAAC;QAC7D,MAAM,iCAAiC,GACrC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC;YACzB,UAAU,CAAC,QAAQ,CAAC,YAAY,CAAC,GAAG,IAAI,IAAI,OAAO,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAElE,OAAO,CACL,iBAAiB;YACjB,gCAAgC;YAChC,iCAAiC,CAClC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,cAAc,IAAI,uBAAuB,EAAE;QAC7C,OAAO,GAAG,SAAS,IAAI,WAAW,CAAC,uBAAuB,CAAC,EAAE,CAAC;KAC/D;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -40,7 +40,6 @@
|
|
|
40
40
|
"lodash.clonedeep": "^4.5.0",
|
|
41
41
|
"lodash.flatmap": "^4.5.0",
|
|
42
42
|
"lodash.isempty": "^4.4.0",
|
|
43
|
-
"lodash.set": "^4.3.2",
|
|
44
43
|
"lodash.topairs": "^4.3.0",
|
|
45
44
|
"semver": "^7.3.5",
|
|
46
45
|
"snyk-config": "^4.0.0-rc.2",
|
|
@@ -62,7 +61,7 @@
|
|
|
62
61
|
"tap": "^15.0.4",
|
|
63
62
|
"ts-jest": "^26.5.6",
|
|
64
63
|
"ts-node": "^9.1.1",
|
|
65
|
-
"typescript": "
|
|
64
|
+
"typescript": "4.1.*"
|
|
66
65
|
},
|
|
67
|
-
"version": "1.
|
|
66
|
+
"version": "1.37.3"
|
|
68
67
|
}
|