snyk-nodejs-lockfile-parser 1.52.11 → 1.53.1

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.
Files changed (44) hide show
  1. package/README.md +1 -0
  2. package/dist/dep-graph-builders/index.d.ts +3 -1
  3. package/dist/dep-graph-builders/index.js +5 -1
  4. package/dist/dep-graph-builders/index.js.map +1 -1
  5. package/dist/dep-graph-builders/pnpm/build-dep-graph-pnpm.d.ts +4 -0
  6. package/dist/dep-graph-builders/pnpm/build-dep-graph-pnpm.js +71 -0
  7. package/dist/dep-graph-builders/pnpm/build-dep-graph-pnpm.js.map +1 -0
  8. package/dist/dep-graph-builders/pnpm/index.d.ts +4 -0
  9. package/dist/dep-graph-builders/pnpm/index.js +20 -0
  10. package/dist/dep-graph-builders/pnpm/index.js.map +1 -0
  11. package/dist/dep-graph-builders/pnpm/lockfile-parser/index.d.ts +4 -0
  12. package/dist/dep-graph-builders/pnpm/lockfile-parser/index.js +26 -0
  13. package/dist/dep-graph-builders/pnpm/lockfile-parser/index.js.map +1 -0
  14. package/dist/dep-graph-builders/pnpm/lockfile-parser/lockfile-parser.d.ts +28 -0
  15. package/dist/dep-graph-builders/pnpm/lockfile-parser/lockfile-parser.js +119 -0
  16. package/dist/dep-graph-builders/pnpm/lockfile-parser/lockfile-parser.js.map +1 -0
  17. package/dist/dep-graph-builders/pnpm/lockfile-parser/lockfile-v5.d.ts +11 -0
  18. package/dist/dep-graph-builders/pnpm/lockfile-parser/lockfile-v5.js +54 -0
  19. package/dist/dep-graph-builders/pnpm/lockfile-parser/lockfile-v5.js.map +1 -0
  20. package/dist/dep-graph-builders/pnpm/lockfile-parser/lockfile-v6.d.ts +12 -0
  21. package/dist/dep-graph-builders/pnpm/lockfile-parser/lockfile-v6.js +63 -0
  22. package/dist/dep-graph-builders/pnpm/lockfile-parser/lockfile-v6.js.map +1 -0
  23. package/dist/dep-graph-builders/pnpm/types.d.ts +49 -0
  24. package/dist/dep-graph-builders/pnpm/types.js +3 -0
  25. package/dist/dep-graph-builders/pnpm/types.js.map +1 -0
  26. package/dist/dep-graph-builders/pnpm/utils.d.ts +6 -0
  27. package/dist/dep-graph-builders/pnpm/utils.js +58 -0
  28. package/dist/dep-graph-builders/pnpm/utils.js.map +1 -0
  29. package/dist/dep-graph-builders/types.d.ts +16 -0
  30. package/dist/dep-graph-builders/util.js +3 -3
  31. package/dist/dep-graph-builders/util.js.map +1 -1
  32. package/dist/errors/out-of-sync-error.d.ts +14 -0
  33. package/dist/errors/out-of-sync-error.js +8 -6
  34. package/dist/errors/out-of-sync-error.js.map +1 -1
  35. package/dist/index.d.ts +5 -5
  36. package/dist/index.js +5 -1
  37. package/dist/index.js.map +1 -1
  38. package/dist/parsers/index.d.ts +3 -1
  39. package/dist/parsers/index.js +23 -1
  40. package/dist/parsers/index.js.map +1 -1
  41. package/dist/utils.d.ts +4 -1
  42. package/dist/utils.js +25 -1
  43. package/dist/utils.js.map +1 -1
  44. package/package.json +6 -4
package/README.md CHANGED
@@ -14,6 +14,7 @@ Dep graph generation supported for:
14
14
 
15
15
  - `package-lock.json` (at Versions 2 and 3)
16
16
  - `yarn.lock`
17
+ - `pnpm-lock.yaml` (lockfileVersion 5.x or 6.x)
17
18
 
18
19
  Legacy dep tree supported for:
19
20
 
@@ -1,4 +1,6 @@
1
1
  import { parseYarnLockV1Project, parseYarnLockV1WorkspaceProject, buildDepGraphYarnLockV1SimpleCyclesPruned, buildDepGraphYarnLockV1Simple, buildDepGraphYarnLockV1WorkspaceCyclesPruned, buildDepGraphYarnLockV1Workspace, extractPkgsFromYarnLockV1 } from './yarn-lock-v1';
2
2
  import { buildDepGraphYarnLockV2Simple, parseYarnLockV2Project, extractPkgsFromYarnLockV2 } from './yarn-lock-v2';
3
3
  import { parseNpmLockV2Project } from './npm-lock-v2';
4
- export { parseNpmLockV2Project, parseYarnLockV1Project, buildDepGraphYarnLockV1Workspace, buildDepGraphYarnLockV1SimpleCyclesPruned, buildDepGraphYarnLockV1Simple, buildDepGraphYarnLockV1WorkspaceCyclesPruned, parseYarnLockV1WorkspaceProject, extractPkgsFromYarnLockV1, buildDepGraphYarnLockV2Simple, parseYarnLockV2Project, extractPkgsFromYarnLockV2, };
4
+ import { parsePnpmProject } from './pnpm';
5
+ import { parsePkgJson } from './util';
6
+ export { parseNpmLockV2Project, parseYarnLockV1Project, buildDepGraphYarnLockV1Workspace, buildDepGraphYarnLockV1SimpleCyclesPruned, buildDepGraphYarnLockV1Simple, buildDepGraphYarnLockV1WorkspaceCyclesPruned, parseYarnLockV1WorkspaceProject, extractPkgsFromYarnLockV1, buildDepGraphYarnLockV2Simple, parseYarnLockV2Project, extractPkgsFromYarnLockV2, parsePnpmProject, parsePkgJson, };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractPkgsFromYarnLockV2 = exports.parseYarnLockV2Project = exports.buildDepGraphYarnLockV2Simple = exports.extractPkgsFromYarnLockV1 = exports.parseYarnLockV1WorkspaceProject = exports.buildDepGraphYarnLockV1WorkspaceCyclesPruned = exports.buildDepGraphYarnLockV1Simple = exports.buildDepGraphYarnLockV1SimpleCyclesPruned = exports.buildDepGraphYarnLockV1Workspace = exports.parseYarnLockV1Project = exports.parseNpmLockV2Project = void 0;
3
+ exports.parsePkgJson = exports.parsePnpmProject = exports.extractPkgsFromYarnLockV2 = exports.parseYarnLockV2Project = exports.buildDepGraphYarnLockV2Simple = exports.extractPkgsFromYarnLockV1 = exports.parseYarnLockV1WorkspaceProject = exports.buildDepGraphYarnLockV1WorkspaceCyclesPruned = exports.buildDepGraphYarnLockV1Simple = exports.buildDepGraphYarnLockV1SimpleCyclesPruned = exports.buildDepGraphYarnLockV1Workspace = exports.parseYarnLockV1Project = exports.parseNpmLockV2Project = void 0;
4
4
  const yarn_lock_v1_1 = require("./yarn-lock-v1");
5
5
  Object.defineProperty(exports, "parseYarnLockV1Project", { enumerable: true, get: function () { return yarn_lock_v1_1.parseYarnLockV1Project; } });
6
6
  Object.defineProperty(exports, "parseYarnLockV1WorkspaceProject", { enumerable: true, get: function () { return yarn_lock_v1_1.parseYarnLockV1WorkspaceProject; } });
@@ -15,4 +15,8 @@ Object.defineProperty(exports, "parseYarnLockV2Project", { enumerable: true, get
15
15
  Object.defineProperty(exports, "extractPkgsFromYarnLockV2", { enumerable: true, get: function () { return yarn_lock_v2_1.extractPkgsFromYarnLockV2; } });
16
16
  const npm_lock_v2_1 = require("./npm-lock-v2");
17
17
  Object.defineProperty(exports, "parseNpmLockV2Project", { enumerable: true, get: function () { return npm_lock_v2_1.parseNpmLockV2Project; } });
18
+ const pnpm_1 = require("./pnpm");
19
+ Object.defineProperty(exports, "parsePnpmProject", { enumerable: true, get: function () { return pnpm_1.parsePnpmProject; } });
20
+ const util_1 = require("./util");
21
+ Object.defineProperty(exports, "parsePkgJson", { enumerable: true, get: function () { return util_1.parsePkgJson; } });
18
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/dep-graph-builders/index.ts"],"names":[],"mappings":";;;AAAA,iDAQwB;AAUtB,uGAjBA,qCAAsB,OAiBA;AAKtB,gHArBA,8CAA+B,OAqBA;AAH/B,0HAjBA,wDAAyC,OAiBA;AACzC,8GAjBA,4CAA6B,OAiBA;AAC7B,6HAjBA,2DAA4C,OAiBA;AAH5C,iHAbA,+CAAgC,OAaA;AAKhC,0GAjBA,wCAAyB,OAiBA;AAf3B,iDAIwB;AAYtB,8GAfA,4CAA6B,OAeA;AAC7B,uGAfA,qCAAsB,OAeA;AACtB,0GAfA,wCAAyB,OAeA;AAb3B,+CAAsD;AAGpD,sGAHO,mCAAqB,OAGP"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/dep-graph-builders/index.ts"],"names":[],"mappings":";;;AAAA,iDAQwB;AAYtB,uGAnBA,qCAAsB,OAmBA;AAKtB,gHAvBA,8CAA+B,OAuBA;AAH/B,0HAnBA,wDAAyC,OAmBA;AACzC,8GAnBA,4CAA6B,OAmBA;AAC7B,6HAnBA,2DAA4C,OAmBA;AAH5C,iHAfA,+CAAgC,OAeA;AAKhC,0GAnBA,wCAAyB,OAmBA;AAjB3B,iDAIwB;AActB,8GAjBA,4CAA6B,OAiBA;AAC7B,uGAjBA,qCAAsB,OAiBA;AACtB,0GAjBA,wCAAyB,OAiBA;AAf3B,+CAAsD;AAKpD,sGALO,mCAAqB,OAKP;AAJvB,iCAA0C;AAexC,iGAfO,uBAAgB,OAeP;AAdlB,iCAAsC;AAepC,6FAfO,mBAAY,OAeP"}
@@ -0,0 +1,4 @@
1
+ import type { PnpmProjectParseOptions, PnpmWorkspaceArgs } from '../types';
2
+ import type { PackageJsonBase } from '../types';
3
+ import { PnpmLockfileParser } from './lockfile-parser/lockfile-parser';
4
+ export declare const buildDepGraphPnpm: (lockFileParser: PnpmLockfileParser, pkgJson: PackageJsonBase, options: PnpmProjectParseOptions, workspaceArgs?: PnpmWorkspaceArgs) => Promise<import("@snyk/dep-graph").DepGraph>;
@@ -0,0 +1,71 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildDepGraphPnpm = void 0;
4
+ const dep_graph_1 = require("@snyk/dep-graph");
5
+ const util_1 = require("../util");
6
+ const utils_1 = require("./utils");
7
+ const event_loop_spinner_1 = require("event-loop-spinner");
8
+ const buildDepGraphPnpm = async (lockFileParser, pkgJson, options, workspaceArgs) => {
9
+ var _a;
10
+ const { strictOutOfSync, includeOptionalDeps, pruneWithinTopLevelDeps } = options;
11
+ const depGraphBuilder = new dep_graph_1.DepGraphBuilder({ name: 'pnpm' }, { name: pkgJson.name, version: pkgJson.version });
12
+ const extractedPnpmPkgs = lockFileParser.extractedPackages;
13
+ const topLevelDeps = (0, util_1.getTopLevelDeps)(pkgJson, options);
14
+ const extractedTopLevelDeps = lockFileParser.extractTopLevelDependencies(options) || {};
15
+ for (const name of Object.keys(topLevelDeps)) {
16
+ topLevelDeps[name].version = extractedTopLevelDeps[name].version;
17
+ }
18
+ const rootNode = {
19
+ id: 'root-node',
20
+ name: pkgJson.name,
21
+ version: pkgJson.version,
22
+ dependencies: topLevelDeps,
23
+ isDev: false,
24
+ };
25
+ await dfsVisit(depGraphBuilder, rootNode, extractedPnpmPkgs, strictOutOfSync, includeOptionalDeps,
26
+ // we have rootWorkspaceOverrides if this is workspace pkg with overrides
27
+ // at root - therefore it should take precedent
28
+ // TODO: inspect if this is needed at all, seems like pnpm resolves everything in lockfile
29
+ (workspaceArgs === null || workspaceArgs === void 0 ? void 0 : workspaceArgs.rootOverrides) || ((_a = pkgJson.pnpm) === null || _a === void 0 ? void 0 : _a.overrides) || {}, pruneWithinTopLevelDeps, lockFileParser);
30
+ return depGraphBuilder.build();
31
+ };
32
+ exports.buildDepGraphPnpm = buildDepGraphPnpm;
33
+ /**
34
+ * Use DFS to add all nodes and edges to the depGraphBuilder and prune cyclic nodes.
35
+ * The visitedMap keep track of which nodes have already been discovered during traversal.
36
+ * - If a node doesn't exist in the map, it means it hasn't been visited.
37
+ * - If a node is already visited, simply connect the new node with this node.
38
+ */
39
+ const dfsVisit = async (depGraphBuilder, node, extractedPnpmPkgs, strictOutOfSync, includeOptionalDeps, overrides, pruneWithinTopLevel, lockFileParser, visited) => {
40
+ for (const [name, depInfo] of Object.entries(node.dependencies || {})) {
41
+ if (event_loop_spinner_1.eventLoopSpinner.isStarving()) {
42
+ await event_loop_spinner_1.eventLoopSpinner.spin();
43
+ }
44
+ const localVisited = visited || new Set();
45
+ const childNode = (0, utils_1.getPnpmChildNode)(name, depInfo, extractedPnpmPkgs, strictOutOfSync, includeOptionalDeps, lockFileParser);
46
+ if (localVisited.has(childNode.id)) {
47
+ if (pruneWithinTopLevel) {
48
+ const prunedId = `${childNode.id}:pruned`;
49
+ depGraphBuilder.addPkgNode({ name: childNode.name, version: childNode.version }, prunedId, {
50
+ labels: Object.assign({ scope: childNode.isDev ? 'dev' : 'prod', pruned: 'true' }, (node.missingLockFileEntry && {
51
+ missingLockFileEntry: 'true',
52
+ })),
53
+ });
54
+ depGraphBuilder.connectDep(node.id, prunedId);
55
+ }
56
+ else {
57
+ depGraphBuilder.connectDep(node.id, childNode.id);
58
+ }
59
+ continue;
60
+ }
61
+ depGraphBuilder.addPkgNode({ name: childNode.name, version: childNode.version }, childNode.id, {
62
+ labels: Object.assign({ scope: childNode.isDev ? 'dev' : 'prod' }, (node.missingLockFileEntry && {
63
+ missingLockFileEntry: 'true',
64
+ })),
65
+ });
66
+ depGraphBuilder.connectDep(node.id, childNode.id);
67
+ localVisited.add(childNode.id);
68
+ await dfsVisit(depGraphBuilder, childNode, extractedPnpmPkgs, strictOutOfSync, includeOptionalDeps, overrides, pruneWithinTopLevel, lockFileParser, localVisited);
69
+ }
70
+ };
71
+ //# sourceMappingURL=build-dep-graph-pnpm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"build-dep-graph-pnpm.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/pnpm/build-dep-graph-pnpm.ts"],"names":[],"mappings":";;;AAAA,+CAAkD;AAClD,kCAA0C;AAO1C,mCAA2C;AAC3C,2DAAsD;AAI/C,MAAM,iBAAiB,GAAG,KAAK,EACpC,cAAkC,EAClC,OAAwB,EACxB,OAAgC,EAChC,aAAiC,EACjC,EAAE;;IACF,MAAM,EAAE,eAAe,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,GACrE,OAAO,CAAC;IAEV,MAAM,eAAe,GAAG,IAAI,2BAAe,CACzC,EAAE,IAAI,EAAE,MAAM,EAAE,EAChB,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CACjD,CAAC;IAEF,MAAM,iBAAiB,GACrB,cAAc,CAAC,iBAAiB,CAAC;IAEnC,MAAM,YAAY,GAAG,IAAA,sBAAe,EAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEvD,MAAM,qBAAqB,GACzB,cAAc,CAAC,2BAA2B,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IAE5D,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;QAC5C,YAAY,CAAC,IAAI,CAAC,CAAC,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;KAClE;IAED,MAAM,QAAQ,GAAa;QACzB,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,EAAE,YAAY;QAC1B,KAAK,EAAE,KAAK;KACb,CAAC;IAEF,MAAM,QAAQ,CACZ,eAAe,EACf,QAAQ,EACR,iBAAiB,EACjB,eAAe,EACf,mBAAmB;IACnB,yEAAyE;IACzE,+CAA+C;IAC/C,0FAA0F;IAC1F,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,aAAa,MAAI,MAAA,OAAO,CAAC,IAAI,0CAAE,SAAS,CAAA,IAAI,EAAE,EAC7D,uBAAuB,EACvB,cAAc,CACf,CAAC;IAEF,OAAO,eAAe,CAAC,KAAK,EAAE,CAAC;AACjC,CAAC,CAAC;AAjDW,QAAA,iBAAiB,qBAiD5B;AAEF;;;;;GAKG;AACH,MAAM,QAAQ,GAAG,KAAK,EACpB,eAAgC,EAChC,IAAc,EACd,iBAAqC,EACrC,eAAwB,EACxB,mBAA4B,EAC5B,SAAoB,EACpB,mBAA4B,EAC5B,cAAkC,EAClC,OAAqB,EACN,EAAE;IACjB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;QACrE,IAAI,qCAAgB,CAAC,UAAU,EAAE,EAAE;YACjC,MAAM,qCAAgB,CAAC,IAAI,EAAE,CAAC;SAC/B;QAED,MAAM,YAAY,GAAG,OAAO,IAAI,IAAI,GAAG,EAAU,CAAC;QAElD,MAAM,SAAS,GAAa,IAAA,wBAAgB,EAC1C,IAAI,EACJ,OAAO,EACP,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,cAAc,CACf,CAAC;QAEF,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;YAClC,IAAI,mBAAmB,EAAE;gBACvB,MAAM,QAAQ,GAAG,GAAG,SAAS,CAAC,EAAE,SAAS,CAAC;gBAC1C,eAAe,CAAC,UAAU,CACxB,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,EACpD,QAAQ,EACR;oBACE,MAAM,kBACJ,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EACvC,MAAM,EAAE,MAAM,IACX,CAAC,IAAI,CAAC,oBAAoB,IAAI;wBAC/B,oBAAoB,EAAE,MAAM;qBAC7B,CAAC,CACH;iBACF,CACF,CAAC;gBACF,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;aAC/C;iBAAM;gBACL,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;aACnD;YACD,SAAS;SACV;QAED,eAAe,CAAC,UAAU,CACxB,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,EACpD,SAAS,CAAC,EAAE,EACZ;YACE,MAAM,kBACJ,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IACpC,CAAC,IAAI,CAAC,oBAAoB,IAAI;gBAC/B,oBAAoB,EAAE,MAAM;aAC7B,CAAC,CACH;SACF,CACF,CAAC;QACF,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QAClD,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;QAC/B,MAAM,QAAQ,CACZ,eAAe,EACf,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,mBAAmB,EACnB,SAAS,EACT,mBAAmB,EACnB,cAAc,EACd,YAAY,CACb,CAAC;KACH;AACH,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { PnpmProjectParseOptions, PnpmWorkspaceArgs } from '../types';
2
+ import { DepGraph } from '@snyk/dep-graph';
3
+ import { NodeLockfileVersion } from '../../utils';
4
+ export declare const parsePnpmProject: (pkgJsonContent: string, pnpmLockContent: string, options: PnpmProjectParseOptions, lockfileVersion?: NodeLockfileVersion, workspaceArgs?: PnpmWorkspaceArgs) => Promise<DepGraph>;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parsePnpmProject = void 0;
4
+ const util_1 = require("../util");
5
+ const build_dep_graph_pnpm_1 = require("./build-dep-graph-pnpm");
6
+ const index_1 = require("./lockfile-parser/index");
7
+ const parsePnpmProject = async (pkgJsonContent, pnpmLockContent, options, lockfileVersion, workspaceArgs) => {
8
+ const { includeDevDeps, includeOptionalDeps, strictOutOfSync, pruneWithinTopLevelDeps, } = options;
9
+ const pkgJson = (0, util_1.parsePkgJson)(pkgJsonContent);
10
+ const lockFileParser = (0, index_1.getPnpmLockfileParser)(pnpmLockContent, lockfileVersion, workspaceArgs);
11
+ const depgraph = await (0, build_dep_graph_pnpm_1.buildDepGraphPnpm)(lockFileParser, pkgJson, {
12
+ includeDevDeps,
13
+ strictOutOfSync,
14
+ includeOptionalDeps,
15
+ pruneWithinTopLevelDeps,
16
+ }, workspaceArgs);
17
+ return depgraph;
18
+ };
19
+ exports.parsePnpmProject = parsePnpmProject;
20
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/pnpm/index.ts"],"names":[],"mappings":";;;AAAA,kCAAuC;AAMvC,iEAA2D;AAE3D,mDAAgE;AAIzD,MAAM,gBAAgB,GAAG,KAAK,EACnC,cAAsB,EACtB,eAAuB,EACvB,OAAgC,EAChC,eAAqC,EACrC,aAAiC,EACd,EAAE;IACrB,MAAM,EACJ,cAAc,EACd,mBAAmB,EACnB,eAAe,EACf,uBAAuB,GACxB,GAAG,OAAO,CAAC;IAEZ,MAAM,OAAO,GAAoB,IAAA,mBAAY,EAAC,cAAc,CAAC,CAAC;IAE9D,MAAM,cAAc,GAAuB,IAAA,6BAAqB,EAC9D,eAAe,EACf,eAAe,EACf,aAAa,CACd,CAAC;IAEF,MAAM,QAAQ,GAAG,MAAM,IAAA,wCAAiB,EACtC,cAAc,EACd,OAAO,EACP;QACE,cAAc;QACd,eAAe;QACf,mBAAmB;QACnB,uBAAuB;KACxB,EACD,aAAa,CACd,CAAC;IAEF,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAnCW,QAAA,gBAAgB,oBAmC3B"}
@@ -0,0 +1,4 @@
1
+ import { PnpmLockfileParser } from './lockfile-parser';
2
+ import { PnpmWorkspaceArgs } from '../../types';
3
+ import { NodeLockfileVersion } from '../../../utils';
4
+ export declare function getPnpmLockfileParser(pnpmLockContent: string, lockfileVersion?: NodeLockfileVersion, workspaceArgs?: PnpmWorkspaceArgs): PnpmLockfileParser;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPnpmLockfileParser = void 0;
4
+ const js_yaml_1 = require("js-yaml");
5
+ const lockfile_v6_1 = require("./lockfile-v6");
6
+ const lockfile_v5_1 = require("./lockfile-v5");
7
+ const error_catalog_nodejs_public_1 = require("@snyk/error-catalog-nodejs-public");
8
+ const utils_1 = require("../../../utils");
9
+ function getPnpmLockfileParser(pnpmLockContent, lockfileVersion, workspaceArgs) {
10
+ const rawPnpmLock = (0, js_yaml_1.load)(pnpmLockContent, {
11
+ json: true,
12
+ schema: js_yaml_1.FAILSAFE_SCHEMA,
13
+ });
14
+ const version = rawPnpmLock.lockfileVersion;
15
+ if (lockfileVersion === utils_1.NodeLockfileVersion.PnpmLockV5 ||
16
+ version.startsWith('5')) {
17
+ return new lockfile_v5_1.LockfileV5Parser(rawPnpmLock, workspaceArgs);
18
+ }
19
+ if (lockfileVersion === utils_1.NodeLockfileVersion.PnpmLockV6 ||
20
+ version.startsWith('6')) {
21
+ return new lockfile_v6_1.LockfileV6Parser(rawPnpmLock, workspaceArgs);
22
+ }
23
+ throw new error_catalog_nodejs_public_1.OpenSourceEcosystems.PnpmUnsupportedLockfileVersionError(`The pnpm-lock.yaml lockfile version ${lockfileVersion} is not supported`);
24
+ }
25
+ exports.getPnpmLockfileParser = getPnpmLockfileParser;
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../lib/dep-graph-builders/pnpm/lockfile-parser/index.ts"],"names":[],"mappings":";;;AAAA,qCAAgD;AAEhD,+CAAiD;AACjD,+CAAiD;AAEjD,mFAAyE;AACzE,0CAAqD;AAErD,SAAgB,qBAAqB,CACnC,eAAuB,EACvB,eAAqC,EACrC,aAAiC;IAEjC,MAAM,WAAW,GAAG,IAAA,cAAI,EAAC,eAAe,EAAE;QACxC,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,yBAAe;KACxB,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,WAAW,CAAC,eAAe,CAAC;IAE5C,IACE,eAAe,KAAK,2BAAmB,CAAC,UAAU;QAClD,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EACvB;QACA,OAAO,IAAI,8BAAgB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;KACzD;IAED,IACE,eAAe,KAAK,2BAAmB,CAAC,UAAU;QAClD,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,EACvB;QACA,OAAO,IAAI,8BAAgB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;KACzD;IAED,MAAM,IAAI,kDAAoB,CAAC,mCAAmC,CAChE,uCAAuC,eAAe,mBAAmB,CAC1E,CAAC;AACJ,CAAC;AA5BD,sDA4BC"}
@@ -0,0 +1,28 @@
1
+ import { PnpmWorkspaceArgs } from '../../types';
2
+ import { NormalisedPnpmPkgs, ParsedDepPath, PnpmDepPath, PnpmDeps, PnpmLockPkg } from '../types';
3
+ export declare abstract class PnpmLockfileParser {
4
+ lockFileVersion: string;
5
+ rawPnpmLock: any;
6
+ packages: Record<PnpmDepPath, PnpmLockPkg>;
7
+ dependencies: Record<string, any>;
8
+ devDependencies: Record<string, any>;
9
+ optionalDependencies: Record<string, any>;
10
+ peerDependencies: Record<string, any>;
11
+ extractedPackages: NormalisedPnpmPkgs;
12
+ workspaceArgs?: PnpmWorkspaceArgs;
13
+ constructor(rawPnpmLock: any, workspaceArgs?: PnpmWorkspaceArgs);
14
+ isWorkspaceLockfile(): boolean | undefined;
15
+ getRoot(rawPnpmLock: any): any;
16
+ extractPackages(): NormalisedPnpmPkgs;
17
+ extractTopLevelDependencies(options: {
18
+ includeDevDeps: boolean;
19
+ includeOptionalDeps?: boolean;
20
+ includePeerDeps?: boolean;
21
+ }): PnpmDeps;
22
+ normalizeVersion(name: string, version: string, isDev: boolean): string;
23
+ resolveWorkspacesCrossReference(name: string, version: string, isDev: boolean): string;
24
+ abstract normalizePackagesDeps(dependencies: any, isDev: any): Record<string, string>;
25
+ abstract normalizeTopLevelDeps(dependencies: any, isDev: any): PnpmDeps;
26
+ abstract parseDepPath(depPath: string): ParsedDepPath;
27
+ abstract excludeTransPeerDepsVersions(fullVersionStr: string): string;
28
+ }
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PnpmLockfileParser = void 0;
4
+ const semver_1 = require("semver");
5
+ const pathUtil = require("path");
6
+ class PnpmLockfileParser {
7
+ constructor(rawPnpmLock, workspaceArgs) {
8
+ this.rawPnpmLock = rawPnpmLock;
9
+ this.lockFileVersion = rawPnpmLock.lockFileVersion;
10
+ this.workspaceArgs = workspaceArgs;
11
+ const depsRoot = this.getRoot(rawPnpmLock);
12
+ this.packages = rawPnpmLock.packages || {};
13
+ this.dependencies = depsRoot.dependencies || {};
14
+ this.devDependencies = depsRoot.devDependencies || {};
15
+ this.optionalDependencies = depsRoot.optionalDependencies || {};
16
+ this.peerDependencies = depsRoot.peerDependencies || {};
17
+ this.extractedPackages = this.extractPackages();
18
+ }
19
+ isWorkspaceLockfile() {
20
+ var _a;
21
+ return (_a = this.workspaceArgs) === null || _a === void 0 ? void 0 : _a.isWorkspacePkg;
22
+ }
23
+ getRoot(rawPnpmLock) {
24
+ var _a, _b;
25
+ let depsRoot = rawPnpmLock;
26
+ if ((_a = this.workspaceArgs) === null || _a === void 0 ? void 0 : _a.isWorkspacePkg) {
27
+ depsRoot = rawPnpmLock.importers[this.workspaceArgs.workspacePath];
28
+ }
29
+ if ((_b = this.workspaceArgs) === null || _b === void 0 ? void 0 : _b.isRoot) {
30
+ if (!this.workspaceArgs.workspacePath) {
31
+ this.workspaceArgs.workspacePath = '.';
32
+ }
33
+ depsRoot = rawPnpmLock.importers[this.workspaceArgs.workspacePath];
34
+ }
35
+ return depsRoot;
36
+ }
37
+ extractPackages() {
38
+ const packages = {};
39
+ Object.entries(this.packages).forEach(([depPath, versionData]) => {
40
+ // name and version are optional in version data - if they don't show up in version data, they can be deducted from the dependency path
41
+ let { name, version } = versionData;
42
+ if (!(name && version)) {
43
+ ({ name, version } = this.parseDepPath(depPath));
44
+ }
45
+ const pkg = {
46
+ id: depPath,
47
+ name,
48
+ version,
49
+ isDev: versionData.dev == 'true',
50
+ dependencies: versionData.dependencies,
51
+ optionalDependencies: versionData.dependencies,
52
+ };
53
+ packages[`${pkg.name}@${pkg.version}`] = pkg;
54
+ });
55
+ return packages;
56
+ }
57
+ extractTopLevelDependencies(options) {
58
+ const prodDeps = this.normalizeTopLevelDeps(this.dependencies || {}, false);
59
+ const devDeps = options.includeDevDeps
60
+ ? this.normalizeTopLevelDeps(this.devDependencies || {}, true)
61
+ : {};
62
+ const optionalDeps = options.includeOptionalDeps
63
+ ? this.normalizeTopLevelDeps(this.optionalDependencies || {}, false)
64
+ : {};
65
+ const peerDeps = options.includePeerDeps
66
+ ? this.normalizeTopLevelDeps(this.peerDependencies || {}, false)
67
+ : {};
68
+ return Object.assign(Object.assign(Object.assign(Object.assign({}, prodDeps), devDeps), optionalDeps), peerDeps);
69
+ }
70
+ normalizeVersion(name, version, isDev) {
71
+ if (this.isWorkspaceLockfile()) {
72
+ version = this.resolveWorkspacesCrossReference(name, version, isDev);
73
+ }
74
+ if (!(0, semver_1.valid)(version)) {
75
+ version = this.excludeTransPeerDepsVersions(version);
76
+ if (!(0, semver_1.valid)(version)) {
77
+ // for npm and git ref packages
78
+ // they show up in packages with keys equal to the version in top level deps
79
+ // e.g. body-parser with version github.com/expressjs/body-parser/263f602e6ae34add6332c1eb4caa808893b0b711
80
+ if (this.packages[version]) {
81
+ return this.packages[version].version;
82
+ }
83
+ }
84
+ }
85
+ return version;
86
+ }
87
+ resolveWorkspacesCrossReference(name, version, isDev) {
88
+ if (!this.workspaceArgs) {
89
+ return version;
90
+ }
91
+ if (version.startsWith('link:')) {
92
+ // In workspaces example:
93
+ // package-b:
94
+ // specifier: 1.0.0
95
+ // version: link:../pkg-b
96
+ const depPath = version.split('link:')[1];
97
+ const resolvedPathDep = pathUtil
98
+ .join(this.workspaceArgs.workspacePath, depPath)
99
+ .replace(/\\/g, '/');
100
+ // cross referenced package, we add it to the extracted packages
101
+ version = this.workspaceArgs.projectsVersionMap[resolvedPathDep];
102
+ const subDeps = this.rawPnpmLock.importers[resolvedPathDep] || {
103
+ dependencies: {},
104
+ };
105
+ // todo: consider getting devDependencies, optionaldependencies
106
+ const resolvedDeps = this.normalizePackagesDeps(subDeps.dependencies, isDev);
107
+ this.extractedPackages[`${name}@${version}`] = {
108
+ name,
109
+ version,
110
+ id: `${name}@${version}`,
111
+ isDev,
112
+ dependencies: resolvedDeps,
113
+ };
114
+ }
115
+ return version;
116
+ }
117
+ }
118
+ exports.PnpmLockfileParser = PnpmLockfileParser;
119
+ //# sourceMappingURL=lockfile-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lockfile-parser.js","sourceRoot":"","sources":["../../../../lib/dep-graph-builders/pnpm/lockfile-parser/lockfile-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { ParsedDepPath, PnpmDeps } from '../types';
2
+ import { PnpmLockfileParser } from './lockfile-parser';
3
+ import { PnpmWorkspaceArgs } from '../../types';
4
+ export declare class LockfileV5Parser extends PnpmLockfileParser {
5
+ specifiers: Record<string, string>;
6
+ constructor(rawPnpmLock: any, workspaceArgs?: PnpmWorkspaceArgs);
7
+ parseDepPath(depPath: string): ParsedDepPath;
8
+ normalizeTopLevelDeps(dependencies: Record<string, string>, isDev: boolean): PnpmDeps;
9
+ normalizePackagesDeps(dependencies: Record<string, string>, isDev: boolean): Record<string, string>;
10
+ excludeTransPeerDepsVersions(fullVersionStr: string): string;
11
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LockfileV5Parser = void 0;
4
+ const dependency_path_1 = require("dependency-path");
5
+ const lockfile_parser_1 = require("./lockfile-parser");
6
+ class LockfileV5Parser extends lockfile_parser_1.PnpmLockfileParser {
7
+ constructor(rawPnpmLock, workspaceArgs) {
8
+ super(rawPnpmLock, workspaceArgs);
9
+ const depsRoot = this.getRoot(rawPnpmLock);
10
+ this.specifiers = depsRoot.specifiers;
11
+ }
12
+ parseDepPath(depPath) {
13
+ // The 'dependency-path' parsing package only works for lockfiles v5
14
+ const { name, version } = (0, dependency_path_1.parse)(depPath);
15
+ if (!version) {
16
+ return { name };
17
+ }
18
+ return {
19
+ name,
20
+ version: this.excludeTransPeerDepsVersions(version),
21
+ };
22
+ }
23
+ normalizeTopLevelDeps(dependencies, isDev) {
24
+ return Object.entries(dependencies).reduce((pnpmDeps, [name, version]) => {
25
+ version = this.normalizeVersion(name, version, isDev);
26
+ pnpmDeps[name] = {
27
+ name,
28
+ version,
29
+ isDev,
30
+ specifier: this.specifiers[name],
31
+ };
32
+ return pnpmDeps;
33
+ }, {});
34
+ }
35
+ normalizePackagesDeps(dependencies, isDev) {
36
+ return Object.entries(dependencies).reduce((pnpmDeps, [name, version]) => {
37
+ version = this.normalizeVersion(name, version, isDev);
38
+ pnpmDeps[name] = version;
39
+ return pnpmDeps;
40
+ }, {});
41
+ }
42
+ // Dependency path and versions include transitive peer dependencies separated by '_'
43
+ // e.g. in dependencies
44
+ // dependencies:
45
+ // acorn-jsx: 5.3.2_acorn@7.4.1
46
+ // OR in dependency path:
47
+ // '/@babel/preset-typescript/7.12.13_@babel+core@7.12.13'
48
+ // https://github.com/pnpm/spec/blob/master/dependency-path.md
49
+ excludeTransPeerDepsVersions(fullVersionStr) {
50
+ return fullVersionStr.split('_')[0];
51
+ }
52
+ }
53
+ exports.LockfileV5Parser = LockfileV5Parser;
54
+ //# sourceMappingURL=lockfile-v5.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lockfile-v5.js","sourceRoot":"","sources":["../../../../lib/dep-graph-builders/pnpm/lockfile-parser/lockfile-v5.ts"],"names":[],"mappings":";;;AAAA,qDAAwC;AAExC,uDAAuD;AAGvD,MAAa,gBAAiB,SAAQ,oCAAkB;IAGtD,YAAmB,WAAgB,EAAE,aAAiC;QACpE,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;IACxC,CAAC;IAEM,YAAY,CAAC,OAAe;QACjC,oEAAoE;QACpE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,IAAA,uBAAK,EAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,EAAE,IAAI,EAAE,CAAC;SACjB;QACD,OAAO;YACL,IAAI;YACJ,OAAO,EAAE,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC;SACpD,CAAC;IACJ,CAAC;IAEM,qBAAqB,CAC1B,YAAoC,EACpC,KAAc;QAEd,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CACxC,CAAC,QAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;YACtC,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YACtD,QAAQ,CAAC,IAAI,CAAC,GAAG;gBACf,IAAI;gBACJ,OAAO;gBACP,KAAK;gBACL,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;aACjC,CAAC;YACF,OAAO,QAAQ,CAAC;QAClB,CAAC,EACD,EAAE,CACH,CAAC;IACJ,CAAC;IAEM,qBAAqB,CAC1B,YAAoC,EACpC,KAAc;QAEd,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CACxC,CAAC,QAAgC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;YACpD,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;YACtD,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC,EACD,EAAE,CACH,CAAC;IACJ,CAAC;IAED,qFAAqF;IACrF,uBAAuB;IACvB,gBAAgB;IAChB,kCAAkC;IAClC,yBAAyB;IACzB,0DAA0D;IAC1D,8DAA8D;IACvD,4BAA4B,CAAC,cAAsB;QACxD,OAAO,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IACtC,CAAC;CACF;AAhED,4CAgEC"}
@@ -0,0 +1,12 @@
1
+ import { PnpmWorkspaceArgs } from '../../types';
2
+ import { ParsedDepPath, PnpmDeps } from '../types';
3
+ import { PnpmLockfileParser } from './lockfile-parser';
4
+ export declare class LockfileV6Parser extends PnpmLockfileParser {
5
+ settings: any;
6
+ constructor(rawPnpmLock: any, workspaceArgs?: PnpmWorkspaceArgs);
7
+ parseDepPath(depPath: string): ParsedDepPath;
8
+ normalizeTopLevelDeps(dependencies: Record<string, Record<string, string>>, isDev: boolean): PnpmDeps;
9
+ normalizePackagesDeps(dependencies: Record<string, Record<string, string>>, isDev: boolean): Record<string, string>;
10
+ excludeTransPeerDepsVersions(fullVersionStr: string): string;
11
+ static isAbsoluteDepenencyPath(dependencyPath: string): boolean;
12
+ }
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LockfileV6Parser = void 0;
4
+ const lockfile_parser_1 = require("./lockfile-parser");
5
+ class LockfileV6Parser extends lockfile_parser_1.PnpmLockfileParser {
6
+ constructor(rawPnpmLock, workspaceArgs) {
7
+ super(rawPnpmLock, workspaceArgs);
8
+ this.settings = rawPnpmLock.settings;
9
+ }
10
+ parseDepPath(depPath) {
11
+ // Exclude transitive peer deps from depPath
12
+ // e.g. '/cdktf-cli@0.20.3(ink@3.2.0)(react@17.0.2)' -> cdktf-cli@0.20.3
13
+ depPath = this.excludeTransPeerDepsVersions(depPath);
14
+ // Check if path is absolute (doesn't start with '/')
15
+ // If it's not absolute, omit first '/'
16
+ depPath = LockfileV6Parser.isAbsoluteDepenencyPath(depPath)
17
+ ? depPath
18
+ : depPath.substring(1);
19
+ // Next, get version based on the last occurence of '@' separator
20
+ // e.g. @babel/code-frame@7.24.2 -> name: @babel/code-frame and version: 7.24.2
21
+ const sepIndex = depPath.lastIndexOf('@');
22
+ if (sepIndex === -1) {
23
+ return {};
24
+ }
25
+ const name = depPath.substring(0, sepIndex);
26
+ const version = depPath.substring(sepIndex + 1);
27
+ return {
28
+ name,
29
+ version,
30
+ };
31
+ }
32
+ normalizeTopLevelDeps(dependencies, isDev) {
33
+ return Object.entries(dependencies).reduce((pnpmDeps, [name, depInfo]) => {
34
+ const version = this.normalizeVersion(name, depInfo.version, isDev);
35
+ pnpmDeps[name] = {
36
+ name,
37
+ version,
38
+ specifier: depInfo.specifier,
39
+ isDev,
40
+ };
41
+ return pnpmDeps;
42
+ }, {});
43
+ }
44
+ normalizePackagesDeps(dependencies, isDev) {
45
+ return Object.entries(dependencies).reduce((pnpmDeps, [name, depInfo]) => {
46
+ const version = this.normalizeVersion(name, depInfo.version, isDev);
47
+ pnpmDeps[name] = version;
48
+ return pnpmDeps;
49
+ }, {});
50
+ }
51
+ // Dependency path and versions include transitive peer dependencies encapsulated in dependencies
52
+ // e.g. '/cdktf-cli@0.20.3(ink@3.2.0)(react@17.0.2)' -> cdktf-cli@0.20.3
53
+ excludeTransPeerDepsVersions(fullVersionStr) {
54
+ var _a;
55
+ const match = fullVersionStr.match(/([^)]*)\(/);
56
+ return (_a = match === null || match === void 0 ? void 0 : match[1]) !== null && _a !== void 0 ? _a : fullVersionStr;
57
+ }
58
+ static isAbsoluteDepenencyPath(dependencyPath) {
59
+ return dependencyPath[0] !== '/';
60
+ }
61
+ }
62
+ exports.LockfileV6Parser = LockfileV6Parser;
63
+ //# sourceMappingURL=lockfile-v6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lockfile-v6.js","sourceRoot":"","sources":["../../../../lib/dep-graph-builders/pnpm/lockfile-parser/lockfile-v6.ts"],"names":[],"mappings":";;;AAEA,uDAAuD;AAEvD,MAAa,gBAAiB,SAAQ,oCAAkB;IAGtD,YAAmB,WAAgB,EAAE,aAAiC;QACpE,KAAK,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAClC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IACvC,CAAC;IAEM,YAAY,CAAC,OAAe;QACjC,4CAA4C;QAC5C,wEAAwE;QACxE,OAAO,GAAG,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,CAAC;QAErD,qDAAqD;QACrD,uCAAuC;QACvC,OAAO,GAAG,gBAAgB,CAAC,uBAAuB,CAAC,OAAO,CAAC;YACzD,CAAC,CAAC,OAAO;YACT,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;QAEzB,iEAAiE;QACjE,+EAA+E;QAC/E,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1C,IAAI,QAAQ,KAAK,CAAC,CAAC,EAAE;YACnB,OAAO,EAAE,CAAC;SACX;QACD,MAAM,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAC5C,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC;QAChD,OAAO;YACL,IAAI;YACJ,OAAO;SACR,CAAC;IACJ,CAAC;IAEM,qBAAqB,CAC1B,YAAoD,EACpD,KAAc;QAEd,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CACxC,CAAC,QAAkB,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACpE,QAAQ,CAAC,IAAI,CAAC,GAAG;gBACf,IAAI;gBACJ,OAAO;gBACP,SAAS,EAAE,OAAO,CAAC,SAAS;gBAC5B,KAAK;aACN,CAAC;YACF,OAAO,QAAQ,CAAC;QAClB,CAAC,EACD,EAAE,CACH,CAAC;IACJ,CAAC;IAEM,qBAAqB,CAC1B,YAAoD,EACpD,KAAc;QAEd,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CACxC,CAAC,QAAgC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,EAAE;YACpD,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;YACpE,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC;YACzB,OAAO,QAAQ,CAAC;QAClB,CAAC,EACD,EAAE,CACH,CAAC;IACJ,CAAC;IAED,iGAAiG;IACjG,wEAAwE;IACjE,4BAA4B,CAAC,cAAsB;;QACxD,MAAM,KAAK,GAAG,cAAc,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,OAAO,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAG,CAAC,CAAC,mCAAI,cAAc,CAAC;IACtC,CAAC;IAEM,MAAM,CAAC,uBAAuB,CAAC,cAAsB;QAC1D,OAAO,cAAc,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;IACnC,CAAC;CACF;AA5ED,4CA4EC"}
@@ -0,0 +1,49 @@
1
+ import { PkgIdentifier } from '../types';
2
+ import { Dependencies } from '../util';
3
+ export declare type PnpmDepPath = string;
4
+ export declare type PnpmLockPkg = {
5
+ name?: string;
6
+ version?: string;
7
+ id?: string;
8
+ dev: boolean;
9
+ optional?: boolean;
10
+ dependencies: Record<string, string>;
11
+ optionalDependencies?: Record<string, string>;
12
+ peerDependencies?: Record<string, string>;
13
+ engines?: Record<string, string>;
14
+ os?: string;
15
+ cpu?: string;
16
+ deprecated?: boolean;
17
+ bundledDependencies?: Record<string, string>;
18
+ requiresBuild?: boolean;
19
+ prepare?: boolean;
20
+ hasBin?: boolean;
21
+ };
22
+ export declare type NormalisedPnpmPkg = {
23
+ name: string;
24
+ version: string;
25
+ id: string;
26
+ isDev: boolean;
27
+ dependencies: Record<string, string>;
28
+ optionalDependencies?: Record<string, string>;
29
+ };
30
+ export declare type PnpmNode = {
31
+ name: string;
32
+ version: string;
33
+ id: string;
34
+ isDev: boolean;
35
+ dependencies: Dependencies;
36
+ optionalDependencies?: Dependencies;
37
+ missingLockFileEntry?: boolean;
38
+ };
39
+ export declare type NormalisedPnpmPkgs = Record<PkgIdentifier, NormalisedPnpmPkg>;
40
+ export declare type PnpmDeps = Record<string, {
41
+ name: string;
42
+ version: string;
43
+ specifier?: string;
44
+ isDev: boolean;
45
+ }>;
46
+ export declare type ParsedDepPath = {
47
+ name?: string;
48
+ version?: string;
49
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/pnpm/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ import { PnpmLockfileParser } from './lockfile-parser/lockfile-parser';
2
+ import { NormalisedPnpmPkgs, PnpmNode } from './types';
3
+ export declare const getPnpmChildNode: (name: string, depInfo: {
4
+ version: string;
5
+ isDev: boolean;
6
+ }, pkgs: NormalisedPnpmPkgs, strictOutOfSync: boolean, includeOptionalDeps: boolean, lockfileParser: PnpmLockfileParser) => PnpmNode;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getPnpmChildNode = void 0;
4
+ const __1 = require("../..");
5
+ const util_1 = require("../util");
6
+ const semver_1 = require("semver");
7
+ const error_catalog_nodejs_public_1 = require("@snyk/error-catalog-nodejs-public");
8
+ const out_of_sync_error_1 = require("../../errors/out-of-sync-error");
9
+ const getPnpmChildNode = (name, depInfo, pkgs, strictOutOfSync, includeOptionalDeps, lockfileParser) => {
10
+ const resolvedVersion = (0, semver_1.valid)(depInfo.version) || depInfo.version === undefined
11
+ ? depInfo.version
12
+ : lockfileParser.excludeTransPeerDepsVersions(depInfo.version);
13
+ const childNodeKey = `${name}@${resolvedVersion}`;
14
+ if (!pkgs[childNodeKey]) {
15
+ if (lockfileParser.isWorkspaceLockfile()) {
16
+ return {
17
+ id: childNodeKey,
18
+ name: name,
19
+ version: resolvedVersion,
20
+ dependencies: {},
21
+ isDev: depInfo.isDev,
22
+ };
23
+ }
24
+ if (strictOutOfSync && !/^file:/.test(depInfo.version)) {
25
+ const errMessage = `Dependency ${childNodeKey} was not found in ` +
26
+ `${out_of_sync_error_1.LOCK_FILE_NAME[__1.LockfileType.pnpm]}. Your package.json and ` +
27
+ `${out_of_sync_error_1.LOCK_FILE_NAME[__1.LockfileType.pnpm]} are probably out of sync. Please run ` +
28
+ `"${out_of_sync_error_1.INSTALL_COMMAND[__1.LockfileType.pnpm]}" and try again.`;
29
+ throw new error_catalog_nodejs_public_1.OpenSourceEcosystems.PnpmOutOfSyncError(errMessage);
30
+ }
31
+ else {
32
+ return {
33
+ id: childNodeKey,
34
+ name: name,
35
+ version: resolvedVersion,
36
+ dependencies: {},
37
+ isDev: depInfo.isDev,
38
+ missingLockFileEntry: true,
39
+ };
40
+ }
41
+ }
42
+ else {
43
+ const depData = pkgs[childNodeKey];
44
+ const dependencies = (0, util_1.getGraphDependencies)(depData.dependencies || {}, depInfo.isDev);
45
+ const optionalDependencies = includeOptionalDeps
46
+ ? (0, util_1.getGraphDependencies)(depData.optionalDependencies || {}, depInfo.isDev)
47
+ : {};
48
+ return {
49
+ id: `${name}@${depData.version}`,
50
+ name: name,
51
+ version: resolvedVersion,
52
+ dependencies: Object.assign(Object.assign({}, dependencies), optionalDependencies),
53
+ isDev: depInfo.isDev,
54
+ };
55
+ }
56
+ };
57
+ exports.getPnpmChildNode = getPnpmChildNode;
58
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/pnpm/utils.ts"],"names":[],"mappings":";;;AAAA,6BAAqC;AACrC,kCAA+C;AAG/C,mCAA+B;AAC/B,mFAAyE;AACzE,sEAGwC;AAEjC,MAAM,gBAAgB,GAAG,CAC9B,IAAY,EACZ,OAA4C,EAC5C,IAAwB,EACxB,eAAwB,EACxB,mBAA4B,EAC5B,cAAkC,EACxB,EAAE;IACZ,MAAM,eAAe,GACnB,IAAA,cAAK,EAAC,OAAO,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS;QACrD,CAAC,CAAC,OAAO,CAAC,OAAO;QACjB,CAAC,CAAC,cAAc,CAAC,4BAA4B,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnE,MAAM,YAAY,GAAG,GAAG,IAAI,IAAI,eAAe,EAAE,CAAC;IAClD,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;QACvB,IAAI,cAAc,CAAC,mBAAmB,EAAE,EAAE;YACxC,OAAO;gBACL,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,eAAe;gBACxB,YAAY,EAAE,EAAE;gBAChB,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC;SACH;QACD,IAAI,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACtD,MAAM,UAAU,GACd,cAAc,YAAY,oBAAoB;gBAC9C,GAAG,kCAAc,CAAC,gBAAY,CAAC,IAAI,CAAC,0BAA0B;gBAC9D,GACE,kCAAc,CAAC,gBAAY,CAAC,IAAI,CAClC,wCAAwC;gBACxC,IAAI,mCAAe,CAAC,gBAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC;YAC3D,MAAM,IAAI,kDAAoB,CAAC,kBAAkB,CAAC,UAAU,CAAC,CAAC;SAC/D;aAAM;YACL,OAAO;gBACL,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,eAAe;gBACxB,YAAY,EAAE,EAAE;gBAChB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,oBAAoB,EAAE,IAAI;aAC3B,CAAC;SACH;KACF;SAAM;QACL,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QACnC,MAAM,YAAY,GAAG,IAAA,2BAAoB,EACvC,OAAO,CAAC,YAAY,IAAI,EAAE,EAC1B,OAAO,CAAC,KAAK,CACd,CAAC;QACF,MAAM,oBAAoB,GAAG,mBAAmB;YAC9C,CAAC,CAAC,IAAA,2BAAoB,EAAC,OAAO,CAAC,oBAAoB,IAAI,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC;YACzE,CAAC,CAAC,EAAE,CAAC;QACP,OAAO;YACL,EAAE,EAAE,GAAG,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE;YAChC,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,eAAe;YACxB,YAAY,kCAAO,YAAY,GAAK,oBAAoB,CAAE;YAC1D,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC;KACH;AACH,CAAC,CAAC;AA3DW,QAAA,gBAAgB,oBA2D3B"}
@@ -7,6 +7,9 @@ export declare type PackageJsonBase = {
7
7
  peerDependencies?: Record<string, string>;
8
8
  resolutions?: Record<string, string>;
9
9
  overrides?: Overrides;
10
+ pnpm?: {
11
+ overrides?: Overrides;
12
+ };
10
13
  };
11
14
  export declare type Overrides = string | {
12
15
  [key: string]: Overrides;
@@ -55,3 +58,16 @@ export declare type Yarn1DepGraphBuildOptions = {
55
58
  strictOutOfSync: boolean;
56
59
  pruneWithinTopLevelDeps: boolean;
57
60
  };
61
+ export declare type PnpmWorkspaceArgs = {
62
+ isWorkspacePkg: boolean;
63
+ isRoot: boolean;
64
+ workspacePath: string;
65
+ projectsVersionMap: Record<string, string>;
66
+ rootOverrides: Overrides;
67
+ };
68
+ export declare type PnpmProjectParseOptions = {
69
+ includeDevDeps: boolean;
70
+ includeOptionalDeps: boolean;
71
+ strictOutOfSync: boolean;
72
+ pruneWithinTopLevelDeps: boolean;
73
+ };
@@ -33,9 +33,9 @@ exports.getTopLevelDeps = getTopLevelDeps;
33
33
  * For example, { 'mime-db': '~1.12.0' } will be converted to { 'mime-db': { version: '~1.12.0', isDev: true/false } }.
34
34
  */
35
35
  const getGraphDependencies = (dependencies, isDev) => {
36
- return Object.entries(dependencies).reduce((acc, [name, semver]) => {
37
- acc[name] = { version: semver, isDev: isDev };
38
- return acc;
36
+ return Object.entries(dependencies).reduce((pnpmDeps, [name, semver]) => {
37
+ pnpmDeps[name] = { version: semver, isDev: isDev };
38
+ return pnpmDeps;
39
39
  }, {});
40
40
  };
41
41
  exports.getGraphDependencies = getGraphDependencies;
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../lib/dep-graph-builders/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../lib/dep-graph-builders/util.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,18 @@
1
1
  import { LockfileType } from '../parsers';
2
+ export declare const LOCK_FILE_NAME: {
3
+ npm: string;
4
+ npm7: string;
5
+ yarn: string;
6
+ yarn2: string;
7
+ pnpm: string;
8
+ };
9
+ export declare const INSTALL_COMMAND: {
10
+ npm: string;
11
+ npm7: string;
12
+ yarn: string;
13
+ yarn2: string;
14
+ pnpm: string;
15
+ };
2
16
  export declare class OutOfSyncError extends Error {
3
17
  code: number;
4
18
  name: string;
@@ -1,24 +1,26 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OutOfSyncError = void 0;
4
- const LOCK_FILE_NAME = {
3
+ exports.OutOfSyncError = exports.INSTALL_COMMAND = exports.LOCK_FILE_NAME = void 0;
4
+ exports.LOCK_FILE_NAME = {
5
5
  npm: 'package-lock.json',
6
6
  npm7: 'package-lock.json',
7
7
  yarn: 'yarn.lock',
8
8
  yarn2: 'yarn.lock',
9
+ pnpm: 'pnpm-lock.yaml',
9
10
  };
10
- const INSTALL_COMMAND = {
11
+ exports.INSTALL_COMMAND = {
11
12
  npm: 'npm install',
12
13
  npm7: 'npm install',
13
14
  yarn: 'yarn install',
14
15
  yarn2: 'yarn install',
16
+ pnpm: 'pnpm install',
15
17
  };
16
18
  class OutOfSyncError extends Error {
17
19
  constructor(dependencyName, lockFileType) {
18
20
  super(`Dependency ${dependencyName} was not found in ` +
19
- `${LOCK_FILE_NAME[lockFileType]}. Your package.json and ` +
20
- `${LOCK_FILE_NAME[lockFileType]} are probably out of sync. Please run ` +
21
- `"${INSTALL_COMMAND[lockFileType]}" and try again.`);
21
+ `${exports.LOCK_FILE_NAME[lockFileType]}. Your package.json and ` +
22
+ `${exports.LOCK_FILE_NAME[lockFileType]} are probably out of sync. Please run ` +
23
+ `"${exports.INSTALL_COMMAND[lockFileType]}" and try again.`);
22
24
  this.code = 422;
23
25
  this.name = 'OutOfSyncError';
24
26
  this.dependencyName = dependencyName;
@@ -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,mBAAmB;IACzB,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,WAAW;CACnB,CAAC;AAEF,MAAM,eAAe,GAAG;IACtB,GAAG,EAAE,aAAa;IAClB,IAAI,EAAE,aAAa;IACnB,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"}
1
+ {"version":3,"file":"out-of-sync-error.js","sourceRoot":"","sources":["../../lib/errors/out-of-sync-error.ts"],"names":[],"mappings":";;;AAEa,QAAA,cAAc,GAAG;IAC5B,GAAG,EAAE,mBAAmB;IACxB,IAAI,EAAE,mBAAmB;IACzB,IAAI,EAAE,WAAW;IACjB,KAAK,EAAE,WAAW;IAClB,IAAI,EAAE,gBAAgB;CACvB,CAAC;AAEW,QAAA,eAAe,GAAG;IAC7B,GAAG,EAAE,aAAa;IAClB,IAAI,EAAE,aAAa;IACnB,IAAI,EAAE,cAAc;IACpB,KAAK,EAAE,cAAc;IACrB,IAAI,EAAE,cAAc;CACrB,CAAC;AAEF,MAAa,cAAe,SAAQ,KAAK;IAMvC,YAAY,cAAsB,EAAE,YAA0B;QAC5D,KAAK,CACH,cAAc,cAAc,oBAAoB;YAC9C,GAAG,sBAAc,CAAC,YAAY,CAAC,0BAA0B;YACzD,GAAG,sBAAc,CAAC,YAAY,CAAC,wCAAwC;YACvE,IAAI,uBAAe,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,11 +1,11 @@
1
- import { ManifestFile, PkgTree, Scope, LockfileType, getYarnWorkspaces } from './parsers';
1
+ import { ManifestFile, PkgTree, Scope, LockfileType, getYarnWorkspaces, getPnpmWorkspaces } 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, };
5
- import { parseNpmLockV2Project, extractPkgsFromYarnLockV1, parseYarnLockV1Project, parseYarnLockV1WorkspaceProject, buildDepGraphYarnLockV1SimpleCyclesPruned, buildDepGraphYarnLockV1Simple, buildDepGraphYarnLockV1WorkspaceCyclesPruned, buildDepGraphYarnLockV1Workspace, extractPkgsFromYarnLockV2, parseYarnLockV2Project, buildDepGraphYarnLockV2Simple } from './dep-graph-builders';
4
+ export { buildDepTree, buildDepTreeFromFiles, buildDepGraphFromCliOutput, getYarnWorkspacesFromFiles, getYarnWorkspaces, getPnpmWorkspaces, PkgTree, Scope, LockfileType, UnsupportedRuntimeError, InvalidUserInputError, OutOfSyncError, ManifestFile, };
5
+ import { parseNpmLockV2Project, extractPkgsFromYarnLockV1, parseYarnLockV1Project, parseYarnLockV1WorkspaceProject, buildDepGraphYarnLockV1SimpleCyclesPruned, buildDepGraphYarnLockV1Simple, buildDepGraphYarnLockV1WorkspaceCyclesPruned, buildDepGraphYarnLockV1Workspace, extractPkgsFromYarnLockV2, parseYarnLockV2Project, buildDepGraphYarnLockV2Simple, parsePnpmProject, parsePkgJson } from './dep-graph-builders';
6
6
  import type { PackageJsonBase, NormalisedPkgs, ProjectParseOptions, YarnLockV2ProjectParseOptions } from './dep-graph-builders/types';
7
- import { getLockfileVersionFromFile, getNpmLockfileVersion, getYarnLockfileVersion, NodeLockfileVersion } from './utils';
8
- export { parseNpmLockV2Project, extractPkgsFromYarnLockV1, parseYarnLockV1Project, parseYarnLockV1WorkspaceProject, buildDepGraphYarnLockV1SimpleCyclesPruned, buildDepGraphYarnLockV1Simple, buildDepGraphYarnLockV1WorkspaceCyclesPruned, buildDepGraphYarnLockV1Workspace, extractPkgsFromYarnLockV2, parseYarnLockV2Project, buildDepGraphYarnLockV2Simple, PackageJsonBase, ProjectParseOptions, YarnLockV2ProjectParseOptions, NormalisedPkgs, NormalisedPkgs as YarnLockPackages, getLockfileVersionFromFile, getNpmLockfileVersion, getYarnLockfileVersion, NodeLockfileVersion, };
7
+ import { getLockfileVersionFromFile, getNpmLockfileVersion, getYarnLockfileVersion, getPnpmLockfileVersion, NodeLockfileVersion } from './utils';
8
+ export { parseNpmLockV2Project, extractPkgsFromYarnLockV1, parseYarnLockV1Project, parseYarnLockV1WorkspaceProject, buildDepGraphYarnLockV1SimpleCyclesPruned, buildDepGraphYarnLockV1Simple, buildDepGraphYarnLockV1WorkspaceCyclesPruned, buildDepGraphYarnLockV1Workspace, extractPkgsFromYarnLockV2, parseYarnLockV2Project, buildDepGraphYarnLockV2Simple, parsePnpmProject, parsePkgJson, PackageJsonBase, ProjectParseOptions, YarnLockV2ProjectParseOptions, NormalisedPkgs, NormalisedPkgs as YarnLockPackages, getLockfileVersionFromFile, getNpmLockfileVersion, getYarnLockfileVersion, getPnpmLockfileVersion, NodeLockfileVersion, };
9
9
  declare function buildDepTree(manifestFileContents: string, lockFileContents: string, includeDev?: boolean, lockfileType?: LockfileType, strictOutOfSync?: boolean, defaultManifestFileName?: string): Promise<PkgTree>;
10
10
  declare function buildDepTreeFromFiles(root: string, manifestFilePath: string, lockFilePath: string, includeDev?: boolean, strictOutOfSync?: boolean): Promise<PkgTree>;
11
11
  declare function getYarnWorkspacesFromFiles(root: any, manifestFilePath: string): string[] | false;
package/dist/index.js CHANGED
@@ -1,12 +1,13 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getYarnLockfileType = exports.NodeLockfileVersion = exports.getYarnLockfileVersion = exports.getNpmLockfileVersion = exports.getLockfileVersionFromFile = exports.buildDepGraphYarnLockV2Simple = exports.parseYarnLockV2Project = exports.extractPkgsFromYarnLockV2 = exports.buildDepGraphYarnLockV1Workspace = exports.buildDepGraphYarnLockV1WorkspaceCyclesPruned = exports.buildDepGraphYarnLockV1Simple = exports.buildDepGraphYarnLockV1SimpleCyclesPruned = exports.parseYarnLockV1WorkspaceProject = exports.parseYarnLockV1Project = exports.extractPkgsFromYarnLockV1 = exports.parseNpmLockV2Project = exports.OutOfSyncError = exports.InvalidUserInputError = exports.UnsupportedRuntimeError = exports.LockfileType = exports.Scope = exports.getYarnWorkspaces = exports.getYarnWorkspacesFromFiles = exports.buildDepGraphFromCliOutput = exports.buildDepTreeFromFiles = exports.buildDepTree = void 0;
3
+ exports.getYarnLockfileType = exports.NodeLockfileVersion = exports.getPnpmLockfileVersion = exports.getYarnLockfileVersion = exports.getNpmLockfileVersion = exports.getLockfileVersionFromFile = exports.parsePkgJson = exports.parsePnpmProject = exports.buildDepGraphYarnLockV2Simple = exports.parseYarnLockV2Project = exports.extractPkgsFromYarnLockV2 = exports.buildDepGraphYarnLockV1Workspace = exports.buildDepGraphYarnLockV1WorkspaceCyclesPruned = exports.buildDepGraphYarnLockV1Simple = exports.buildDepGraphYarnLockV1SimpleCyclesPruned = exports.parseYarnLockV1WorkspaceProject = exports.parseYarnLockV1Project = exports.extractPkgsFromYarnLockV1 = exports.parseNpmLockV2Project = exports.OutOfSyncError = exports.InvalidUserInputError = exports.UnsupportedRuntimeError = exports.LockfileType = exports.Scope = exports.getPnpmWorkspaces = 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");
7
7
  Object.defineProperty(exports, "Scope", { enumerable: true, get: function () { return parsers_1.Scope; } });
8
8
  Object.defineProperty(exports, "LockfileType", { enumerable: true, get: function () { return parsers_1.LockfileType; } });
9
9
  Object.defineProperty(exports, "getYarnWorkspaces", { enumerable: true, get: function () { return parsers_1.getYarnWorkspaces; } });
10
+ Object.defineProperty(exports, "getPnpmWorkspaces", { enumerable: true, get: function () { return parsers_1.getPnpmWorkspaces; } });
10
11
  const package_lock_parser_1 = require("./parsers/package-lock-parser");
11
12
  const yarn_lock_parser_1 = require("./parsers/yarn-lock-parser");
12
13
  const yarn2_lock_parser_1 = require("./parsers/yarn2-lock-parser");
@@ -30,10 +31,13 @@ Object.defineProperty(exports, "buildDepGraphYarnLockV1Workspace", { enumerable:
30
31
  Object.defineProperty(exports, "extractPkgsFromYarnLockV2", { enumerable: true, get: function () { return dep_graph_builders_1.extractPkgsFromYarnLockV2; } });
31
32
  Object.defineProperty(exports, "parseYarnLockV2Project", { enumerable: true, get: function () { return dep_graph_builders_1.parseYarnLockV2Project; } });
32
33
  Object.defineProperty(exports, "buildDepGraphYarnLockV2Simple", { enumerable: true, get: function () { return dep_graph_builders_1.buildDepGraphYarnLockV2Simple; } });
34
+ Object.defineProperty(exports, "parsePnpmProject", { enumerable: true, get: function () { return dep_graph_builders_1.parsePnpmProject; } });
35
+ Object.defineProperty(exports, "parsePkgJson", { enumerable: true, get: function () { return dep_graph_builders_1.parsePkgJson; } });
33
36
  const utils_1 = require("./utils");
34
37
  Object.defineProperty(exports, "getLockfileVersionFromFile", { enumerable: true, get: function () { return utils_1.getLockfileVersionFromFile; } });
35
38
  Object.defineProperty(exports, "getNpmLockfileVersion", { enumerable: true, get: function () { return utils_1.getNpmLockfileVersion; } });
36
39
  Object.defineProperty(exports, "getYarnLockfileVersion", { enumerable: true, get: function () { return utils_1.getYarnLockfileVersion; } });
40
+ Object.defineProperty(exports, "getPnpmLockfileVersion", { enumerable: true, get: function () { return utils_1.getPnpmLockfileVersion; } });
37
41
  Object.defineProperty(exports, "NodeLockfileVersion", { enumerable: true, get: function () { return utils_1.NodeLockfileVersion; } });
38
42
  // **********************************
39
43
  async function buildDepTree(manifestFileContents, lockFileContents, includeDev = false, lockfileType, strictOutOfSync = true, defaultManifestFileName = 'package.json') {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
@@ -68,7 +68,8 @@ export declare enum LockfileType {
68
68
  npm = "npm",
69
69
  npm7 = "npm7",
70
70
  yarn = "yarn",
71
- yarn2 = "yarn2"
71
+ yarn2 = "yarn2",
72
+ pnpm = "pnpm"
72
73
  }
73
74
  export interface LockfileParser {
74
75
  parseLockFile: (lockFileContents: string) => Lockfile;
@@ -84,4 +85,5 @@ export declare function getTopLevelDeps({ targetFile, includeDev, includePeerDep
84
85
  }): Dep[];
85
86
  export declare function createDepTreeDepFromDep(dep: Dep): DepTreeDep;
86
87
  export declare function getYarnWorkspaces(targetFile: string): string[] | false;
88
+ export declare function getPnpmWorkspaces(workspacesYamlFile: string): string[];
87
89
  export {};
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getYarnWorkspaces = exports.createDepTreeDepFromDep = exports.getTopLevelDeps = exports.parseManifestFile = exports.LockfileType = exports.Scope = void 0;
3
+ exports.getPnpmWorkspaces = exports.getYarnWorkspaces = exports.createDepTreeDepFromDep = exports.getTopLevelDeps = exports.parseManifestFile = exports.LockfileType = exports.Scope = void 0;
4
4
  const errors_1 = require("../errors");
5
+ const js_yaml_1 = require("js-yaml");
5
6
  var Scope;
6
7
  (function (Scope) {
7
8
  Scope["prod"] = "prod";
@@ -13,6 +14,7 @@ var LockfileType;
13
14
  LockfileType["npm7"] = "npm7";
14
15
  LockfileType["yarn"] = "yarn";
15
16
  LockfileType["yarn2"] = "yarn2";
17
+ LockfileType["pnpm"] = "pnpm";
16
18
  })(LockfileType = exports.LockfileType || (exports.LockfileType = {}));
17
19
  function parseManifestFile(manifestFileContents) {
18
20
  try {
@@ -86,4 +88,24 @@ function getYarnWorkspaces(targetFile) {
86
88
  }
87
89
  }
88
90
  exports.getYarnWorkspaces = getYarnWorkspaces;
91
+ function getPnpmWorkspaces(workspacesYamlFile) {
92
+ try {
93
+ const rawPnpmWorkspacesYaml = (0, js_yaml_1.load)(workspacesYamlFile, {
94
+ json: true,
95
+ schema: js_yaml_1.FAILSAFE_SCHEMA,
96
+ });
97
+ if (rawPnpmWorkspacesYaml && rawPnpmWorkspacesYaml.packages) {
98
+ if (Array.isArray(rawPnpmWorkspacesYaml.packages)) {
99
+ return rawPnpmWorkspacesYaml.packages;
100
+ }
101
+ }
102
+ // By default, all packages of all subdirectories are included.
103
+ // https://pnpm.io/pnpm-workspace_yaml
104
+ return ['*'];
105
+ }
106
+ catch (e) {
107
+ throw new errors_1.InvalidUserInputError('package.json parsing failed with ' + `error ${e.message}`);
108
+ }
109
+ }
110
+ exports.getPnpmWorkspaces = getPnpmWorkspaces;
89
111
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/parsers/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../lib/parsers/index.ts"],"names":[],"mappings":"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"}
package/dist/utils.d.ts CHANGED
@@ -3,8 +3,11 @@ export declare enum NodeLockfileVersion {
3
3
  NpmLockV2 = "NPM_LOCK_V2",
4
4
  NpmLockV3 = "NPM_LOCK_V3",
5
5
  YarnLockV1 = "YARN_LOCK_V1",
6
- YarnLockV2 = "YARN_LOCK_V2"
6
+ YarnLockV2 = "YARN_LOCK_V2",
7
+ PnpmLockV5 = "PNPM_LOCK_V5",
8
+ PnpmLockV6 = "PNPM_LOCK_V6"
7
9
  }
8
10
  export declare const getLockfileVersionFromFile: (targetFile: string) => NodeLockfileVersion;
11
+ export declare function getPnpmLockfileVersion(lockFileContents: string): NodeLockfileVersion.PnpmLockV5 | NodeLockfileVersion.PnpmLockV6;
9
12
  export declare function getYarnLockfileVersion(lockFileContents: string): NodeLockfileVersion.YarnLockV1 | NodeLockfileVersion.YarnLockV2;
10
13
  export declare function getNpmLockfileVersion(lockFileContents: string): NodeLockfileVersion.NpmLockV1 | NodeLockfileVersion.NpmLockV2 | NodeLockfileVersion.NpmLockV3;
package/dist/utils.js CHANGED
@@ -1,8 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getNpmLockfileVersion = exports.getYarnLockfileVersion = exports.getLockfileVersionFromFile = exports.NodeLockfileVersion = void 0;
3
+ exports.getNpmLockfileVersion = exports.getYarnLockfileVersion = exports.getPnpmLockfileVersion = exports.getLockfileVersionFromFile = exports.NodeLockfileVersion = void 0;
4
4
  const fs_1 = require("fs");
5
+ const js_yaml_1 = require("js-yaml");
5
6
  const errors_1 = require("./errors");
7
+ const error_catalog_nodejs_public_1 = require("@snyk/error-catalog-nodejs-public");
6
8
  var NodeLockfileVersion;
7
9
  (function (NodeLockfileVersion) {
8
10
  NodeLockfileVersion["NpmLockV1"] = "NPM_LOCK_V1";
@@ -10,6 +12,8 @@ var NodeLockfileVersion;
10
12
  NodeLockfileVersion["NpmLockV3"] = "NPM_LOCK_V3";
11
13
  NodeLockfileVersion["YarnLockV1"] = "YARN_LOCK_V1";
12
14
  NodeLockfileVersion["YarnLockV2"] = "YARN_LOCK_V2";
15
+ NodeLockfileVersion["PnpmLockV5"] = "PNPM_LOCK_V5";
16
+ NodeLockfileVersion["PnpmLockV6"] = "PNPM_LOCK_V6";
13
17
  })(NodeLockfileVersion = exports.NodeLockfileVersion || (exports.NodeLockfileVersion = {}));
14
18
  const getLockfileVersionFromFile = (targetFile) => {
15
19
  const lockFileContents = (0, fs_1.readFileSync)(targetFile, 'utf-8');
@@ -19,12 +23,32 @@ const getLockfileVersionFromFile = (targetFile) => {
19
23
  else if (targetFile.endsWith('yarn.lock')) {
20
24
  return getYarnLockfileVersion(lockFileContents);
21
25
  }
26
+ else if (targetFile.endsWith('pnpm-lock.yaml')) {
27
+ return getPnpmLockfileVersion(lockFileContents);
28
+ }
22
29
  else {
23
30
  throw new errors_1.InvalidUserInputError(`Unknown lockfile ${targetFile}. ` +
24
31
  'Please provide either package-lock.json or yarn.lock.');
25
32
  }
26
33
  };
27
34
  exports.getLockfileVersionFromFile = getLockfileVersionFromFile;
35
+ function getPnpmLockfileVersion(lockFileContents) {
36
+ const rawPnpmLock = (0, js_yaml_1.load)(lockFileContents, {
37
+ json: true,
38
+ schema: js_yaml_1.FAILSAFE_SCHEMA,
39
+ });
40
+ const { lockfileVersion } = rawPnpmLock;
41
+ if (lockfileVersion.startsWith('5')) {
42
+ return NodeLockfileVersion.PnpmLockV5;
43
+ }
44
+ else if (lockfileVersion.startsWith('6')) {
45
+ return NodeLockfileVersion.PnpmLockV6;
46
+ }
47
+ else {
48
+ throw new error_catalog_nodejs_public_1.OpenSourceEcosystems.PnpmUnsupportedLockfileVersionError(`The pnpm-lock.yaml lockfile version ${lockfileVersion} is not supported`);
49
+ }
50
+ }
51
+ exports.getPnpmLockfileVersion = getPnpmLockfileVersion;
28
52
  function getYarnLockfileVersion(lockFileContents) {
29
53
  if (lockFileContents.includes('__metadata')) {
30
54
  return NodeLockfileVersion.YarnLockV2;
package/dist/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":";;;AAAA,2BAAkC;AAClC,qCAAiD;AAEjD,IAAY,mBAMX;AAND,WAAY,mBAAmB;IAC7B,gDAAyB,CAAA;IACzB,gDAAyB,CAAA;IACzB,gDAAyB,CAAA;IACzB,kDAA2B,CAAA;IAC3B,kDAA2B,CAAA;AAC7B,CAAC,EANW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAM9B;AAEM,MAAM,0BAA0B,GAAG,CACxC,UAAkB,EACG,EAAE;IACvB,MAAM,gBAAgB,GAAG,IAAA,iBAAY,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;QAC5C,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;KAChD;SAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;QAC3C,OAAO,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;KACjD;SAAM;QACL,MAAM,IAAI,8BAAqB,CAC7B,oBAAoB,UAAU,IAAI;YAChC,uDAAuD,CAC1D,CAAC;KACH;AACH,CAAC,CAAC;AAdW,QAAA,0BAA0B,8BAcrC;AAEF,SAAgB,sBAAsB,CACpC,gBAAwB;IAExB,IAAI,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;QAC3C,OAAO,mBAAmB,CAAC,UAAU,CAAC;KACvC;SAAM;QACL,OAAO,mBAAmB,CAAC,UAAU,CAAC;KACvC;AACH,CAAC;AARD,wDAQC;AAED,SAAgB,qBAAqB,CACnC,gBAAwB;IAKxB,IAAI;QACF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAClD,MAAM,eAAe,GAAkB,YAAY,CAAC,eAAe,IAAI,IAAI,CAAC;QAE5E,QAAQ,eAAe,EAAE;YACvB,KAAK,IAAI,CAAC;YACV,KAAK,CAAC;gBACJ,OAAO,mBAAmB,CAAC,SAAS,CAAC;YACvC,KAAK,CAAC;gBACJ,OAAO,mBAAmB,CAAC,SAAS,CAAC;YACvC,KAAK,CAAC;gBACJ,OAAO,mBAAmB,CAAC,SAAS,CAAC;YACvC;gBACE,MAAM,IAAI,8BAAqB,CAC7B,yDAAyD;oBACvD,mEAAmE,CACtE,CAAC;SACL;KACF;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,8BAAqB,CAC7B,0FAA0F,CAC3F,CAAC;KACH;AACH,CAAC;AA7BD,sDA6BC"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../lib/utils.ts"],"names":[],"mappings":";;;AAAA,2BAAkC;AAClC,qCAAgD;AAChD,qCAAiD;AACjD,mFAAyE;AAEzE,IAAY,mBAQX;AARD,WAAY,mBAAmB;IAC7B,gDAAyB,CAAA;IACzB,gDAAyB,CAAA;IACzB,gDAAyB,CAAA;IACzB,kDAA2B,CAAA;IAC3B,kDAA2B,CAAA;IAC3B,kDAA2B,CAAA;IAC3B,kDAA2B,CAAA;AAC7B,CAAC,EARW,mBAAmB,GAAnB,2BAAmB,KAAnB,2BAAmB,QAQ9B;AAEM,MAAM,0BAA0B,GAAG,CACxC,UAAkB,EACG,EAAE;IACvB,MAAM,gBAAgB,GAAG,IAAA,iBAAY,EAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC3D,IAAI,UAAU,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE;QAC5C,OAAO,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;KAChD;SAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,WAAW,CAAC,EAAE;QAC3C,OAAO,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;KACjD;SAAM,IAAI,UAAU,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE;QAChD,OAAO,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;KACjD;SAAM;QACL,MAAM,IAAI,8BAAqB,CAC7B,oBAAoB,UAAU,IAAI;YAChC,uDAAuD,CAC1D,CAAC;KACH;AACH,CAAC,CAAC;AAhBW,QAAA,0BAA0B,8BAgBrC;AAEF,SAAgB,sBAAsB,CACpC,gBAAwB;IAExB,MAAM,WAAW,GAAG,IAAA,cAAI,EAAC,gBAAgB,EAAE;QACzC,IAAI,EAAE,IAAI;QACV,MAAM,EAAE,yBAAe;KACxB,CAAC,CAAC;IACH,MAAM,EAAE,eAAe,EAAE,GAAG,WAAW,CAAC;IACxC,IAAI,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QACnC,OAAO,mBAAmB,CAAC,UAAU,CAAC;KACvC;SAAM,IAAI,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;QAC1C,OAAO,mBAAmB,CAAC,UAAU,CAAC;KACvC;SAAM;QACL,MAAM,IAAI,kDAAoB,CAAC,mCAAmC,CAChE,uCAAuC,eAAe,mBAAmB,CAC1E,CAAC;KACH;AACH,CAAC;AAjBD,wDAiBC;AAED,SAAgB,sBAAsB,CACpC,gBAAwB;IAExB,IAAI,gBAAgB,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE;QAC3C,OAAO,mBAAmB,CAAC,UAAU,CAAC;KACvC;SAAM;QACL,OAAO,mBAAmB,CAAC,UAAU,CAAC;KACvC;AACH,CAAC;AARD,wDAQC;AAED,SAAgB,qBAAqB,CACnC,gBAAwB;IAKxB,IAAI;QACF,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;QAClD,MAAM,eAAe,GAAkB,YAAY,CAAC,eAAe,IAAI,IAAI,CAAC;QAE5E,QAAQ,eAAe,EAAE;YACvB,KAAK,IAAI,CAAC;YACV,KAAK,CAAC;gBACJ,OAAO,mBAAmB,CAAC,SAAS,CAAC;YACvC,KAAK,CAAC;gBACJ,OAAO,mBAAmB,CAAC,SAAS,CAAC;YACvC,KAAK,CAAC;gBACJ,OAAO,mBAAmB,CAAC,SAAS,CAAC;YACvC;gBACE,MAAM,IAAI,8BAAqB,CAC7B,yDAAyD;oBACvD,mEAAmE,CACtE,CAAC;SACL;KACF;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,8BAAqB,CAC7B,0FAA0F,CAC3F,CAAC;KACH;AACH,CAAC;AA7BD,sDA6BC"}
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "scripts": {
9
9
  "test": "npm run unit-test && npm run test:jest",
10
10
  "unit-test": "tap --ts -Rspec ./test/lib/*.test.[tj]s --timeout=300 --no-check-coverage",
11
- "test:jest": "jest",
11
+ "test:jest": "jest --coverage --runInBand",
12
12
  "lint": "eslint --color --cache '{lib,test}/**/*.{js,ts}' && prettier --check '{lib,test}/**/*.{js,ts}'",
13
13
  "format": "prettier --write '{lib,test}/**/*.{js,ts,json}'",
14
14
  "build": "tsc",
@@ -31,19 +31,21 @@
31
31
  ],
32
32
  "homepage": "https://github.com/snyk/nodejs-lockfile-parser#readme",
33
33
  "dependencies": {
34
+ "@snyk/error-catalog-nodejs-public": "^5.16.0",
34
35
  "@snyk/dep-graph": "^2.3.0",
35
36
  "@snyk/graphlib": "2.1.9-patch.3",
36
37
  "@yarnpkg/core": "^2.4.0",
37
38
  "@yarnpkg/lockfile": "^1.1.0",
39
+ "dependency-path": "^9.2.8",
38
40
  "event-loop-spinner": "^2.0.0",
39
41
  "js-yaml": "^4.1.0",
40
42
  "lodash.clonedeep": "^4.5.0",
41
- "p-map": "^4.0.0",
42
43
  "lodash.flatmap": "^4.5.0",
43
44
  "lodash.isempty": "^4.4.0",
44
45
  "lodash.topairs": "^4.3.0",
45
46
  "micromatch": "^4.0.5",
46
- "semver": "^7.3.5",
47
+ "p-map": "^4.0.0",
48
+ "semver": "^7.6.0",
47
49
  "snyk-config": "^5.0.0",
48
50
  "tslib": "^1.9.3",
49
51
  "uuid": "^8.3.0"
@@ -65,5 +67,5 @@
65
67
  "typescript": "4.8.4"
66
68
  },
67
69
  "packageManager": "yarn@2.4.1",
68
- "version": "1.52.11"
70
+ "version": "1.53.1"
69
71
  }