snyk-nodejs-lockfile-parser 1.36.0 → 1.37.2
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 +14 -5
- 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 +43 -10
- 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 -2
|
@@ -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":"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"}
|
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,
|
|
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({
|
|
@@ -35,16 +36,24 @@ function getTopLevelDeps(targetFile, includeDev, lockfile) {
|
|
|
35
36
|
version,
|
|
36
37
|
});
|
|
37
38
|
}
|
|
38
|
-
|
|
39
|
-
// version 7 as npm v7 automatically installs peerDependencies
|
|
40
|
-
if (lockfile.type === LockfileType.npm7 && targetFile.peerDependencies) {
|
|
39
|
+
if (includePeerDeps && targetFile.peerDependencies) {
|
|
41
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
|
+
}
|
|
42
44
|
dependencies.push({
|
|
43
45
|
name,
|
|
44
46
|
version,
|
|
45
47
|
});
|
|
46
48
|
}
|
|
47
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
|
+
}
|
|
48
57
|
return dependencies;
|
|
49
58
|
}
|
|
50
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":"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"}
|
|
@@ -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;
|
|
@@ -8,15 +8,17 @@ const _toPairs = require("lodash.topairs");
|
|
|
8
8
|
const graphlib = require("@snyk/graphlib");
|
|
9
9
|
const uuid_1 = require("uuid");
|
|
10
10
|
const event_loop_spinner_1 = require("event-loop-spinner");
|
|
11
|
+
const baseDebug = require("debug");
|
|
11
12
|
const _1 = require("./");
|
|
12
13
|
const errors_1 = require("../errors");
|
|
14
|
+
const debug = baseDebug('snyk-nodejs-parser');
|
|
13
15
|
class LockParserBase {
|
|
14
16
|
constructor(type, treeSizeLimit) {
|
|
15
17
|
this.type = type;
|
|
16
18
|
this.treeSizeLimit = treeSizeLimit;
|
|
17
19
|
this.pathDelimiter = '|';
|
|
18
20
|
}
|
|
19
|
-
async getDependencyTree(manifestFile, lockfile, includeDev = false,
|
|
21
|
+
async getDependencyTree(manifestFile, lockfile, includeDev = false, strictOutOfSync = true) {
|
|
20
22
|
var _a;
|
|
21
23
|
if (lockfile.type !== this.type) {
|
|
22
24
|
throw new errors_1.InvalidUserInputError('Unsupported lockfile provided. Please ' +
|
|
@@ -43,7 +45,7 @@ class LockParserBase {
|
|
|
43
45
|
// relative path on disc
|
|
44
46
|
const depMap = this.getDepMap(yarnLock, manifestFile.resolutions);
|
|
45
47
|
// all paths are identified, we can create a graph representing what depends on what
|
|
46
|
-
const depGraph = this.createGraphOfDependencies(depMap);
|
|
48
|
+
const depGraph = this.createGraphOfDependencies(depMap, strictOutOfSync);
|
|
47
49
|
// topological sort will be applied and it requires acyclic graphs
|
|
48
50
|
let cycleStarts = {};
|
|
49
51
|
if (!graphlib.alg.isAcyclic(depGraph)) {
|
|
@@ -57,8 +59,15 @@ class LockParserBase {
|
|
|
57
59
|
}
|
|
58
60
|
// transform depMap to a map of PkgTrees
|
|
59
61
|
const { depTrees, depTreesSizes } = await this.createDepTrees(depMap, depGraph);
|
|
62
|
+
// Only include peerDependencies if using npm and npm is at least
|
|
63
|
+
// version 7 as npm v7 automatically installs peerDependencies
|
|
60
64
|
// get trees for dependencies from manifest file
|
|
61
|
-
const topLevelDeps = _1.getTopLevelDeps(
|
|
65
|
+
const topLevelDeps = _1.getTopLevelDeps({
|
|
66
|
+
targetFile: manifestFile,
|
|
67
|
+
includeDev,
|
|
68
|
+
includePeerDeps: lockfile.type === _1.LockfileType.npm7,
|
|
69
|
+
applyYarn2Resolutions: lockfile.type === _1.LockfileType.yarn2,
|
|
70
|
+
});
|
|
62
71
|
// number of dependencies including root one
|
|
63
72
|
let treeSize = 1;
|
|
64
73
|
for (const dep of topLevelDeps) {
|
|
@@ -86,7 +95,7 @@ class LockParserBase {
|
|
|
86
95
|
else {
|
|
87
96
|
// TODO: also check the package version
|
|
88
97
|
// for a stricter check
|
|
89
|
-
if (
|
|
98
|
+
if (strictOutOfSync) {
|
|
90
99
|
throw new errors_1.OutOfSyncError(dep.name, this.type);
|
|
91
100
|
}
|
|
92
101
|
depTree.dependencies[dep.name] = _1.createDepTreeDepFromDep(dep);
|
|
@@ -205,14 +214,14 @@ class LockParserBase {
|
|
|
205
214
|
depGraph.setNode(newNode);
|
|
206
215
|
return newNode;
|
|
207
216
|
}
|
|
208
|
-
createGraphOfDependencies(depMap) {
|
|
217
|
+
createGraphOfDependencies(depMap, strictOutOfSync = true) {
|
|
209
218
|
const depGraph = new graphlib.Graph();
|
|
210
219
|
for (const depKey of Object.keys(depMap)) {
|
|
211
220
|
depGraph.setNode(depKey);
|
|
212
221
|
}
|
|
213
222
|
for (const [depPath, dep] of Object.entries(depMap)) {
|
|
214
223
|
for (const depName of dep.requires) {
|
|
215
|
-
const subDepPath = this.findDepsPath(depPath, depName, depMap);
|
|
224
|
+
const subDepPath = this.findDepsPath(depPath, depName, depMap, strictOutOfSync);
|
|
216
225
|
// direction is from the dependency to the package requiring it
|
|
217
226
|
depGraph.setEdge(subDepPath, depPath);
|
|
218
227
|
}
|
|
@@ -221,7 +230,7 @@ class LockParserBase {
|
|
|
221
230
|
}
|
|
222
231
|
// dependency in package-lock.json v1 can be defined either inside `dependencies`
|
|
223
232
|
// of other dependency or anywhere upward towards root
|
|
224
|
-
findDepsPath(startPath, depName, depMap) {
|
|
233
|
+
findDepsPath(startPath, depName, depMap, strictOutOfSync = true) {
|
|
225
234
|
const depPath = startPath.split(this.pathDelimiter);
|
|
226
235
|
while (depPath.length) {
|
|
227
236
|
const currentPath = depPath.concat(depName).join(this.pathDelimiter);
|
|
@@ -231,7 +240,10 @@ class LockParserBase {
|
|
|
231
240
|
depPath.pop();
|
|
232
241
|
}
|
|
233
242
|
if (!depMap[depName]) {
|
|
234
|
-
|
|
243
|
+
debug(`Dependency ${depName} not found`);
|
|
244
|
+
if (strictOutOfSync) {
|
|
245
|
+
throw new errors_1.OutOfSyncError(depName, this.type);
|
|
246
|
+
}
|
|
235
247
|
}
|
|
236
248
|
return depName;
|
|
237
249
|
}
|
|
@@ -252,15 +264,36 @@ class LockParserBase {
|
|
|
252
264
|
const depKey = depOrder.shift();
|
|
253
265
|
const dep = depMap[depKey];
|
|
254
266
|
let treeSize = 1;
|
|
267
|
+
if (!dep) {
|
|
268
|
+
debug(`Missing entry for ${depKey}`);
|
|
269
|
+
continue;
|
|
270
|
+
}
|
|
255
271
|
// direction is from the dependency to the package requiring it, so we are
|
|
256
272
|
// looking for predecessors
|
|
257
273
|
for (const subDepPath of depGraph.predecessors(depKey)) {
|
|
258
|
-
|
|
274
|
+
let subDep = depTrees[subDepPath];
|
|
259
275
|
if (!dep.dependencies) {
|
|
260
276
|
dep.dependencies = {};
|
|
261
277
|
}
|
|
278
|
+
if (!subDep) {
|
|
279
|
+
debug(`Missing entry for ${subDepPath}`);
|
|
280
|
+
const index = subDepPath.indexOf('@', 1);
|
|
281
|
+
const name = subDepPath.slice(0, index);
|
|
282
|
+
const identifier = subDepPath.slice(index + 1);
|
|
283
|
+
subDep = {
|
|
284
|
+
name: name,
|
|
285
|
+
version: identifier,
|
|
286
|
+
dependencies: {},
|
|
287
|
+
labels: {
|
|
288
|
+
missingLockFileEntry: 'true',
|
|
289
|
+
},
|
|
290
|
+
};
|
|
291
|
+
treeSize += 1;
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
treeSize += depTreesSizes[subDepPath];
|
|
295
|
+
}
|
|
262
296
|
dep.dependencies[subDep.name] = subDep;
|
|
263
|
-
treeSize += depTreesSizes[subDepPath];
|
|
264
297
|
}
|
|
265
298
|
const depTreeDep = {
|
|
266
299
|
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,mCAAmC;AACnC,2CAA2C;AAC3C,2CAA2C;AAC3C,+BAAkC;AAClC,2DAAsD;
|
|
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;AACtD,mCAAmC;AAEnC,yBAYY;AACZ,sCAImB;AAEnB,MAAM,KAAK,GAAG,SAAS,CAAC,oBAAoB,CAAC,CAAC;AAgC9C,MAAsB,cAAc;IAGlC,YAAsB,IAAkB,EAAY,aAAqB;QAAnD,SAAI,GAAJ,IAAI,CAAc;QAAY,kBAAa,GAAb,aAAa,CAAQ;QAF/D,kBAAa,GAAG,GAAG,CAAC;IAE8C,CAAC;IAItE,KAAK,CAAC,iBAAiB,CAC5B,YAA0B,EAC1B,QAAkB,EAClB,UAAU,GAAG,KAAK,EAClB,eAAe,GAAG,IAAI;;QAEtB,IAAI,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,EAAE;YAC/B,MAAM,IAAI,8BAAqB,CAC7B,wCAAwC;gBACtC,8BAA8B,CACjC,CAAC;SACH;QACD,MAAM,QAAQ,GAAG,QAAoB,CAAC;QAEtC,MAAM,OAAO,GAAY;YACvB,YAAY,EAAE,EAAE;YAChB,kBAAkB,EAAE,CAAC,QAAQ,CAAC,YAAY,CAAC,eAAe,CAAC;YAC3D,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,IAAI,EAAE,CAAC;YACP,OAAO,EAAE,YAAY,CAAC,OAAO,IAAI,EAAE;SACpC,CAAC;QAEF,MAAM,WAAW,SAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,0CAAE,IAAI,CAAC;QAEhD,IAAI,WAAW,EAAE;YACf,IAAI,CAAC,OAAO,EAAE,kBAAkB,EAAE,WAAW,CAAC,CAAC;SAChD;QAED,8BAA8B;QAC9B,IAAI,QAAQ,CAAC,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE;YACtD,OAAO,OAAO,CAAC;SAChB;QAED,0EAA0E;QAC1E,0EAA0E;QAC1E,wBAAwB;QACxB,MAAM,MAAM,GAAW,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC;QAE1E,oFAAoF;QACpF,MAAM,QAAQ,GAAmB,IAAI,CAAC,yBAAyB,CAC7D,MAAM,EACN,eAAe,CAChB,CAAC;QAEF,kEAAkE;QAClE,IAAI,WAAW,GAAkB,EAAE,CAAC;QACpC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACrC,MAAM,MAAM,GAAe,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;YAC7D,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE;gBAC1B,4EAA4E;gBAC5E,oEAAoE;gBACpE,+EAA+E;gBAC/E,WAAW,mCACN,WAAW,GACX,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAC7C,CAAC;aACH;SACF;QAED,wCAAwC;QACxC,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAC3D,MAAM,EACN,QAAQ,CACT,CAAC;QAEF,iEAAiE;QACjE,8DAA8D;QAC9D,gDAAgD;QAChD,MAAM,YAAY,GAAU,kBAAe,CAAC;YAC1C,UAAU,EAAE,YAAY;YACxB,UAAU;YACV,eAAe,EAAE,QAAQ,CAAC,IAAI,KAAK,eAAY,CAAC,IAAI;YACpD,qBAAqB,EAAE,QAAQ,CAAC,IAAI,KAAK,eAAY,CAAC,KAAK;SAC5D,CAAC,CAAC;QAEH,4CAA4C;QAC5C,IAAI,QAAQ,GAAG,CAAC,CAAC;QACjB,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE;YAC9B,IAAI,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE;gBACjC,MAAM,IAAI,2BAAkB,EAAE,CAAC;aAChC;YACD,sDAAsD;YACtD,yCAAyC;YACzC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC;YACxC,IAAI,QAAQ,CAAC,OAAO,CAAC,EAAE;gBACrB,2DAA2D;gBAC3D,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG;oBACtC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;oBAClD,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;gBACtB,QAAQ,IAAI,aAAa,CAAC,OAAO,CAAC,CAAC;gBACnC,IAAI,qCAAgB,CAAC,UAAU,EAAE,EAAE;oBACjC,MAAM,qCAAgB,CAAC,IAAI,EAAE,CAAC;iBAC/B;aACF;iBAAM,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE;gBACrC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,0BAAuB,CAAC,GAAG,CAAC,CAAC;gBAC9D,QAAQ,EAAE,CAAC;aACZ;iBAAM;gBACL,uCAAuC;gBACvC,uBAAuB;gBACvB,IAAI,eAAe,EAAE;oBACnB,MAAM,IAAI,uBAAc,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;iBAC/C;gBACD,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,0BAAuB,CAAC,GAAG,CAAC,CAAC;gBAC9D,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE;oBAC1C,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;iBAC5C;gBACD,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,MAAO,CAAC,oBAAoB,GAAG,MAAM,CAAC;gBACrE,QAAQ,EAAE,CAAC;aACZ;SACF;QAED,OAAO,CAAC,IAAI,GAAG,QAAQ,CAAC;QACxB,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,YAAY,CAAC,OAAmB;QACtC,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAC5D,OAAO,CAAC,YAAa,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;SAC1D;QACD,OAAO,CAAC,MAAM,GAAG;YACf,KAAK,EAAE,QAAK,CAAC,GAAG;SACjB,CAAC;QAEF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;MAcE;IACM,WAAW,CACjB,KAAe,EACf,MAAc,EACd,QAAwB;QAExB;;;UAGE;QACF,MAAM,qBAAqB,GAAG,CAC5B,IAAI,EACJ,SAAmB,EACnB,YAAsB,EACtB,QAAQ,EACR,EAAE;YACF,kDAAkD;YAClD,MAAM,cAAc,GAAI,QAAQ,CAAC,OAAO,CACtC,IAAI,CACe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAChE,KAAK,MAAM,IAAI,IAAI,cAAc,EAAE;gBACjC,8CAA8C;gBAC9C,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;gBACrB,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,CAC/C,KAAK,EACL,MAAM,EACN,QAAQ,CACT,CAAC;gBACF,mDAAmD;gBACnD,QAAQ,CAAC,OAAO,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;gBAC3C,yEAAyE;gBACzE,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;oBAC7B,4DAA4D;oBAC5D,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,EAAE;wBAClC,MAAM,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,EAAE,CAAC;qBACpC;oBACD,MAAM,CAAC,cAAc,CAAC,CAAC,MAAO,CAAC,MAAM,GAAG,QAAQ,CAAC;iBAClD;qBAAM;oBACL,+EAA+E;oBAC/E,qBAAqB,CACnB,KAAK,EACL,CAAC,GAAG,SAAS,EAAE,IAAI,CAAC,EACpB,YAAY,EACZ,cAAc,CACf,CAAC;oBACF,qEAAqE;oBACrE,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,EAAE;wBACjE,OAAO,EAAE,IAAI;wBACb,QAAQ,EAAE,KAAK;qBAChB,CAAC,CAAC;iBACJ;aACF;QACH,CAAC,CAAC;QAEF,MAAM,WAAW,GAAkB,EAAE,CAAC;QACtC,6BAA6B;QAC7B,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;YACzB,4DAA4D;YAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;YACvE,WAAW,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC;YAEhC,sCAAsC;YACtC,qBAAqB,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;YACpD,2EAA2E;YAC3E,oDAAoD;YACpD,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE;gBAC7D,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,IAAI;aACf,CAAC,CAAC;SACJ;QAED,qEAAqE;QACrE,cAAc;QACd,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE;YACzB,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;SAC5B;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAEO,qBAAqB,CAC3B,QAAQ,EACR,MAAM,EACN,KAAe,EACf,QAAQ,EACR,EAAE,OAAO,EAAE,QAAQ,EAAiB;QAEpC,yBAAyB;QACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAoB,CAAC;QAC9D,IAAI,QAAQ,EAAE;YACZ,MAAM,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9D,KAAK,MAAM,IAAI,IAAI,WAAW,EAAE;gBAC9B,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC;gBACtB,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;aAClC;SACF;QACD,IAAI,OAAO,EAAE;YACX,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC7D,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE;gBAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC;gBACrB,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;aACjC;SACF;IACH,CAAC;IAEO,qBAAqB,CAC3B,IAAY,EACZ,MAAc,EACd,QAAwB;QAExB,MAAM,OAAO,GAAG,IAAI,GAAG,SAAI,EAAE,CAAC;QAC9B,8BAA8B;QAC9B,MAAM,CAAC,OAAO,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3C,4BAA4B;QAC5B,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAE1B,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,yBAAyB,CAC/B,MAAc,EACd,eAAe,GAAG,IAAI;QAEtB,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtC,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;YACxC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SAC1B;QACD,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;YACnD,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,QAAQ,EAAE;gBAClC,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAClC,OAAO,EACP,OAAO,EACP,MAAM,EACN,eAAe,CAChB,CAAC;gBACF,+DAA+D;gBAC/D,QAAQ,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;aACvC;SACF;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,iFAAiF;IACjF,sDAAsD;IAC9C,YAAY,CAClB,SAAiB,EACjB,OAAe,EACf,MAAc,EACd,eAAe,GAAG,IAAI;QAEtB,MAAM,OAAO,GAAG,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACpD,OAAO,OAAO,CAAC,MAAM,EAAE;YACrB,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YACrE,IAAI,MAAM,CAAC,WAAW,CAAC,EAAE;gBACvB,OAAO,WAAW,CAAC;aACpB;YACD,OAAO,CAAC,GAAG,EAAE,CAAC;SACf;QACD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YACpB,KAAK,CAAC,cAAc,OAAO,YAAY,CAAC,CAAC;YACzC,IAAI,eAAe,EAAE;gBACnB,MAAM,IAAI,uBAAc,CAAC,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;aAC9C;SACF;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,yEAAyE;IACzE,yDAAyD;IACjD,KAAK,CAAC,cAAc,CAC1B,MAAc,EACd,QAAQ;QAKR,0BAA0B;QAC1B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE;YACrC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;SACxD;QAED,MAAM,QAAQ,GAAsC,EAAE,CAAC;QACvD,MAAM,aAAa,GAAkC,EAAE,CAAC;QACxD,wEAAwE;QACxE,uEAAuE;QACvE,8DAA8D;QAC9D,MAAM,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QAEhD,OAAO,QAAQ,CAAC,MAAM,EAAE;YACtB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAY,CAAC;YAC1C,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;YAC3B,IAAI,QAAQ,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,GAAG,EAAE;gBACR,KAAK,CAAC,qBAAqB,MAAM,EAAE,CAAC,CAAC;gBACrC,SAAS;aACV;YACD,0EAA0E;YAC1E,2BAA2B;YAC3B,KAAK,MAAM,UAAU,IAAI,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE;gBACtD,IAAI,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,CAAC;gBAClC,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;oBACrB,GAAG,CAAC,YAAY,GAAG,EAAE,CAAC;iBACvB;gBACD,IAAI,CAAC,MAAM,EAAE;oBACX,KAAK,CAAC,qBAAqB,UAAU,EAAE,CAAC,CAAC;oBACzC,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;oBACzC,MAAM,IAAI,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;oBACxC,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;oBAE/C,MAAM,GAAG;wBACP,IAAI,EAAE,IAAI;wBACV,OAAO,EAAE,UAAU;wBACnB,YAAY,EAAE,EAAE;wBAChB,MAAM,EAAE;4BACN,oBAAoB,EAAE,MAAM;yBAC7B;qBACF,CAAC;oBACF,QAAQ,IAAI,CAAC,CAAC;iBACf;qBAAM;oBACL,QAAQ,IAAI,aAAa,CAAC,UAAU,CAAC,CAAC;iBACvC;gBACD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,IAAK,CAAC,GAAG,MAAM,CAAC;aACzC;YACD,MAAM,UAAU,GAAe;gBAC7B,MAAM,EAAE,GAAG,CAAC,MAAM;gBAClB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,OAAO,EAAE,GAAG,CAAC,OAAO;aACrB,CAAC;YAEF,IAAI,GAAG,CAAC,YAAY,EAAE;gBACpB,UAAU,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAC;aAC5C;YACD,QAAQ,CAAC,MAAM,CAAC,GAAG,UAAU,CAAC;YAC9B,aAAa,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;YACjC,sEAAsE;YACtE,uEAAuE;YACvE,IAAI,qCAAgB,CAAC,UAAU,EAAE,EAAE;gBACjC,MAAM,qCAAgB,CAAC,IAAI,EAAE,CAAC;aAC/B;SACF;QAED,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC;IACrC,CAAC;IAES,SAAS,CACjB,QAAkB,EAAE,wDAAwD;IAC5E,WAAkC;QAElC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;IAED,6DAA6D;IACnD,aAAa,CAAC,GAAQ;QAC9B,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC;IACrC,CAAC;CACF;AArZD,wCAqZC"}
|
|
@@ -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":"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"}
|