snyk-nodejs-lockfile-parser 1.47.3 → 1.47.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -8,9 +8,14 @@ Snyk helps you find, fix and monitor for known vulnerabilities in your dependenc
|
|
|
8
8
|
|
|
9
9
|
## Snyk Node.js Lockfile Parser
|
|
10
10
|
|
|
11
|
-
This is a small utility package that parses lock file and returns [dependency tree](https://github.com/snyk/nodejs-lockfile-parser/blob/1a495302089614205478d57611bf7c39d29ce66d/lib/parsers/index.ts#L51).
|
|
11
|
+
This is a small utility package that parses lock file and returns either a [dependency tree](https://github.com/snyk/nodejs-lockfile-parser/blob/1a495302089614205478d57611bf7c39d29ce66d/lib/parsers/index.ts#L51) or a [dependency graph](https://github.com/snyk/dep-graph). Dependency graphs are the more modern data type and we plan to migrate fully over.
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
Dep graph generation supported for:
|
|
14
|
+
|
|
15
|
+
- `package-lock.json` (at Versions 2 and 3)
|
|
16
|
+
- `yarn.lock`
|
|
17
|
+
|
|
18
|
+
Legacy dep tree supported for:
|
|
14
19
|
|
|
15
20
|
- `package-lock.json`
|
|
16
21
|
- yarn 1 `yarn.lock`
|
|
@@ -34,95 +34,128 @@ const buildDepGraphNpmLockV2 = (npmLockPkgs, pkgJson, options) => {
|
|
|
34
34
|
dependencies: topLevelDeps,
|
|
35
35
|
isDev: false,
|
|
36
36
|
inBundle: false,
|
|
37
|
+
key: '',
|
|
37
38
|
};
|
|
39
|
+
const pkgKeysByName = Object.keys(npmLockPkgs).reduce((acc, key) => {
|
|
40
|
+
const name = key.replace(/.*node_modules\//, '');
|
|
41
|
+
if (!name) {
|
|
42
|
+
return acc;
|
|
43
|
+
}
|
|
44
|
+
if (!acc.has(name)) {
|
|
45
|
+
acc.set(name, []);
|
|
46
|
+
}
|
|
47
|
+
acc.get(name).push(key);
|
|
48
|
+
return acc;
|
|
49
|
+
}, new Map());
|
|
38
50
|
const visitedMap = new Set();
|
|
39
|
-
dfsVisit(depGraphBuilder, rootNode, visitedMap, npmLockPkgs, strictOutOfSync, includeOptionalDeps, []);
|
|
51
|
+
dfsVisit(depGraphBuilder, rootNode, visitedMap, npmLockPkgs, strictOutOfSync, includeOptionalDeps, [], pkgKeysByName);
|
|
40
52
|
return depGraphBuilder.build();
|
|
41
53
|
};
|
|
42
54
|
exports.buildDepGraphNpmLockV2 = buildDepGraphNpmLockV2;
|
|
43
|
-
const dfsVisit = (depGraphBuilder, node, visitedMap, npmLockPkgs, strictOutOfSync, includeOptionalDeps, ancestry) => {
|
|
55
|
+
const dfsVisit = (depGraphBuilder, node, visitedMap, npmLockPkgs, strictOutOfSync, includeOptionalDeps, ancestry, pkgKeysByName) => {
|
|
44
56
|
visitedMap.add(node.id);
|
|
45
57
|
for (const [name, depInfo] of Object.entries(node.dependencies || {})) {
|
|
46
|
-
|
|
47
|
-
|
|
58
|
+
const childNode = getChildNode(name, depInfo, npmLockPkgs, strictOutOfSync, includeOptionalDeps, [
|
|
59
|
+
...ancestry,
|
|
60
|
+
{
|
|
61
|
+
name: node.name,
|
|
62
|
+
key: node.key || '',
|
|
63
|
+
inBundle: node.inBundle || false,
|
|
64
|
+
},
|
|
65
|
+
], pkgKeysByName);
|
|
48
66
|
if (!visitedMap.has(childNode.id)) {
|
|
49
67
|
(0, util_1.addPkgNodeToGraph)(depGraphBuilder, childNode, {});
|
|
50
|
-
dfsVisit(depGraphBuilder, childNode, visitedMap, npmLockPkgs, strictOutOfSync, includeOptionalDeps, [
|
|
68
|
+
dfsVisit(depGraphBuilder, childNode, visitedMap, npmLockPkgs, strictOutOfSync, includeOptionalDeps, [
|
|
69
|
+
...ancestry,
|
|
70
|
+
{
|
|
71
|
+
name: node.name,
|
|
72
|
+
key: node.key,
|
|
73
|
+
inBundle: node.inBundle || false,
|
|
74
|
+
},
|
|
75
|
+
], pkgKeysByName);
|
|
51
76
|
}
|
|
52
77
|
depGraphBuilder.connectDep(node.id, childNode.id);
|
|
53
78
|
}
|
|
54
79
|
};
|
|
55
|
-
const getChildNode = (name, depInfo, pkgs, strictOutOfSync, includeOptionalDeps, ancestry) => {
|
|
56
|
-
const childNodeKey = getChildNodeKey(name, ancestry, pkgs); //
|
|
57
|
-
if (!
|
|
80
|
+
const getChildNode = (name, depInfo, pkgs, strictOutOfSync, includeOptionalDeps, ancestry, pkgKeysByName) => {
|
|
81
|
+
const childNodeKey = getChildNodeKey(name, ancestry, pkgs, pkgKeysByName); //
|
|
82
|
+
if (!childNodeKey) {
|
|
58
83
|
if (strictOutOfSync) {
|
|
59
84
|
throw new errors_1.OutOfSyncError(`${name}@${depInfo.version}`, parsers_1.LockfileType.npm);
|
|
60
85
|
}
|
|
61
86
|
else {
|
|
62
87
|
return {
|
|
63
|
-
id:
|
|
88
|
+
id: `${name}@${depInfo.version}`,
|
|
64
89
|
name: name,
|
|
65
90
|
version: depInfo.version,
|
|
66
91
|
dependencies: {},
|
|
67
92
|
isDev: depInfo.isDev,
|
|
68
93
|
missingLockFileEntry: true,
|
|
94
|
+
key: '',
|
|
69
95
|
};
|
|
70
96
|
}
|
|
71
97
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}
|
|
98
|
+
const depData = pkgs[childNodeKey];
|
|
99
|
+
const dependencies = (0, util_1.getGraphDependencies)(depData.dependencies || {}, depInfo.isDev);
|
|
100
|
+
const optionalDependencies = includeOptionalDeps
|
|
101
|
+
? (0, util_1.getGraphDependencies)(depData.optionalDependencies || {}, depInfo.isDev)
|
|
102
|
+
: {};
|
|
103
|
+
return {
|
|
104
|
+
id: `${name}@${depData.version}`,
|
|
105
|
+
name: name,
|
|
106
|
+
version: depData.version,
|
|
107
|
+
dependencies: Object.assign(Object.assign({}, dependencies), optionalDependencies),
|
|
108
|
+
isDev: depInfo.isDev,
|
|
109
|
+
inBundle: depData.inBundle,
|
|
110
|
+
key: childNodeKey,
|
|
111
|
+
};
|
|
87
112
|
};
|
|
88
|
-
const getChildNodeKey = (name, ancestry, pkgs) => {
|
|
89
|
-
const
|
|
90
|
-
|
|
113
|
+
const getChildNodeKey = (name, ancestry, pkgs, pkgKeysByName) => {
|
|
114
|
+
const candidateKeys = pkgKeysByName.get(name);
|
|
115
|
+
// Lockfile missing entry
|
|
116
|
+
if (!candidateKeys) {
|
|
117
|
+
return undefined;
|
|
118
|
+
}
|
|
119
|
+
// Only one candidate then just take it
|
|
120
|
+
if (candidateKeys.length === 1) {
|
|
121
|
+
return candidateKeys[0];
|
|
122
|
+
}
|
|
123
|
+
// If we are a bundled dep we have to choose candidate carefully
|
|
124
|
+
if (ancestry.length && ancestry[ancestry.length - 1].inBundle) {
|
|
91
125
|
const bundleRootIdx = ancestry.findIndex((el) => el.inBundle === true) - 1;
|
|
92
|
-
const
|
|
93
|
-
.slice(bundleRootIdx)
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
return
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
126
|
+
const ancestryFromBundleId = [
|
|
127
|
+
...ancestry.slice(bundleRootIdx).map((el) => el.name),
|
|
128
|
+
name,
|
|
129
|
+
];
|
|
130
|
+
const candidateAncestries = candidateKeys.map((el) => el.replace('node_modules/', '').split('/node_modules/'));
|
|
131
|
+
const filteredCandidates = candidateKeys.filter((candidate, idx) => {
|
|
132
|
+
return candidateAncestries[idx].every((pkg) => {
|
|
133
|
+
return ancestryFromBundleId.includes(pkg);
|
|
134
|
+
});
|
|
135
|
+
});
|
|
136
|
+
if (filteredCandidates.length === 1) {
|
|
137
|
+
return filteredCandidates[0];
|
|
138
|
+
}
|
|
139
|
+
const sortedKeys = filteredCandidates.sort((a, b) => b.split('/node_modules/').length - a.split('/node_modules/').length);
|
|
140
|
+
const longestPathLength = sortedKeys[0].split('/node_modules/').length;
|
|
141
|
+
const onlyLongestKeys = sortedKeys.filter((key) => key.split('/node_modules/').length === longestPathLength);
|
|
142
|
+
if (onlyLongestKeys.length === 1) {
|
|
143
|
+
return onlyLongestKeys[0];
|
|
144
|
+
}
|
|
145
|
+
// Here we go through parents keys to see if any are the branch point
|
|
146
|
+
// we could have done this sooner but the above work as good short circuits
|
|
147
|
+
let keysFilteredByParentKey = onlyLongestKeys;
|
|
148
|
+
const reversedAncestry = ancestry.reverse();
|
|
149
|
+
for (let parentIndex = 0; parentIndex < reversedAncestry.length; parentIndex++) {
|
|
150
|
+
const parentKey = reversedAncestry[parentIndex].key;
|
|
151
|
+
const possibleFilteredKeys = keysFilteredByParentKey.filter((key) => key.includes(parentKey));
|
|
152
|
+
if (possibleFilteredKeys.length === 1) {
|
|
153
|
+
return possibleFilteredKeys[0];
|
|
113
154
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
const options = getPossibleDepPaths(right.slice(rightPointer));
|
|
117
|
-
for (let optIdx = 0; optIdx < options.length; optIdx++) {
|
|
118
|
-
const rightConcat = `node_modules/${options[optIdx].replace(/\//g, '/node_modules/')}`;
|
|
119
|
-
const key = `node_modules/${left.join('/node_modules/')}/${rightConcat}`;
|
|
120
|
-
if (pkgs[key]) {
|
|
121
|
-
return key;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
}
|
|
155
|
+
if (possibleFilteredKeys.length === 0) {
|
|
156
|
+
continue;
|
|
125
157
|
}
|
|
158
|
+
keysFilteredByParentKey = possibleFilteredKeys;
|
|
126
159
|
}
|
|
127
160
|
}
|
|
128
161
|
// If not in bundle then we can just see if it is scoped by parent
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/npm-lock-v2/index.ts"],"names":[],"mappings":";;;AAKA,yEAAsE;AAa7D,yGAbA,mDAAwB,OAaA;AAXjC,+CAAkD;AAClD,kCAMiB;AACjB,yCAA8C;AAC9C,2CAA6C;AAItC,MAAM,qBAAqB,GAAG,CACnC,cAAsB,EACtB,cAAsB,EACtB,OAA4B,EAC5B,EAAE;IACF,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;IAEzE,MAAM,OAAO,GAAoB,IAAA,mBAAY,EAAC,cAAc,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,IAAA,mDAAwB,EAAC,cAAc,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,IAAA,8BAAsB,EAAC,IAAI,EAAE,OAAO,EAAE;QACrD,cAAc;QACd,mBAAmB;QACnB,eAAe;KAChB,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAjBW,QAAA,qBAAqB,yBAiBhC;AAEK,MAAM,sBAAsB,GAAG,CACpC,WAAuC,EACvC,OAAwB,EACxB,OAA6B,EAC7B,EAAE;IACF,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;IAEzE,MAAM,eAAe,GAAG,IAAI,2BAAe,CACzC,EAAE,IAAI,EAAE,KAAK,EAAE,EACf,EAAE,IAAI,EAAE,OAAO,CAAC,IAAc,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAC3D,CAAC;IAEF,MAAM,YAAY,GAAG,IAAA,sBAAe,EAAC,OAAO,EAAE;QAC5C,cAAc;QACd,mBAAmB;QACnB,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAY;QACxB,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,EAAE,YAAY;QAC1B,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../lib/dep-graph-builders/npm-lock-v2/index.ts"],"names":[],"mappings":";;;AAKA,yEAAsE;AAa7D,yGAbA,mDAAwB,OAaA;AAXjC,+CAAkD;AAClD,kCAMiB;AACjB,yCAA8C;AAC9C,2CAA6C;AAItC,MAAM,qBAAqB,GAAG,CACnC,cAAsB,EACtB,cAAsB,EACtB,OAA4B,EAC5B,EAAE;IACF,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;IAEzE,MAAM,OAAO,GAAoB,IAAA,mBAAY,EAAC,cAAc,CAAC,CAAC;IAC9D,MAAM,IAAI,GAAG,IAAA,mDAAwB,EAAC,cAAc,CAAC,CAAC;IAEtD,MAAM,QAAQ,GAAG,IAAA,8BAAsB,EAAC,IAAI,EAAE,OAAO,EAAE;QACrD,cAAc;QACd,mBAAmB;QACnB,eAAe;KAChB,CAAC,CAAC;IAEH,OAAO,QAAQ,CAAC;AAClB,CAAC,CAAC;AAjBW,QAAA,qBAAqB,yBAiBhC;AAEK,MAAM,sBAAsB,GAAG,CACpC,WAAuC,EACvC,OAAwB,EACxB,OAA6B,EAC7B,EAAE;IACF,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC;IAEzE,MAAM,eAAe,GAAG,IAAI,2BAAe,CACzC,EAAE,IAAI,EAAE,KAAK,EAAE,EACf,EAAE,IAAI,EAAE,OAAO,CAAC,IAAc,EAAE,OAAO,EAAE,OAAO,CAAC,OAAO,EAAE,CAC3D,CAAC;IAEF,MAAM,YAAY,GAAG,IAAA,sBAAe,EAAC,OAAO,EAAE;QAC5C,cAAc;QACd,mBAAmB;QACnB,eAAe,EAAE,IAAI;KACtB,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAY;QACxB,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,EAAE,YAAY;QAC1B,KAAK,EAAE,KAAK;QACZ,QAAQ,EAAE,KAAK;QACf,GAAG,EAAE,EAAE;KACR,CAAC;IAEF,MAAM,aAAa,GAA0B,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAC1E,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACX,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,EAAE;YACT,OAAO,GAAG,CAAC;SACZ;QAED,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAClB,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;SACnB;QAED,GAAG,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEzB,OAAO,GAAG,CAAC;IACb,CAAC,EACD,IAAI,GAAG,EAAoB,CAC5B,CAAC;IAEF,MAAM,UAAU,GAAgB,IAAI,GAAG,EAAE,CAAC;IAC1C,QAAQ,CACN,eAAe,EACf,QAAQ,EACR,UAAU,EACV,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB,EAAE,EACF,aAAa,CACd,CAAC;IACF,OAAO,eAAe,CAAC,KAAK,EAAE,CAAC;AACjC,CAAC,CAAC;AA1DW,QAAA,sBAAsB,0BA0DjC;AAEF,MAAM,QAAQ,GAAG,CACf,eAAgC,EAChC,IAAa,EACb,UAAuB,EACvB,WAAuC,EACvC,eAAwB,EACxB,mBAA4B,EAC5B,QAA4D,EAC5D,aAAoC,EAC9B,EAAE;IACR,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAExB,KAAK,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE;QACrE,MAAM,SAAS,GAAG,YAAY,CAC5B,IAAI,EACJ,OAAO,EACP,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB;YACE,GAAG,QAAQ;YACX;gBACE,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,GAAG,EAAE,IAAI,CAAC,GAAG,IAAI,EAAE;gBACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;aACjC;SACF,EACD,aAAa,CACd,CAAC;QAEF,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE;YACjC,IAAA,wBAAiB,EAAC,eAAe,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;YAClD,QAAQ,CACN,eAAe,EACf,SAAS,EACT,UAAU,EACV,WAAW,EACX,eAAe,EACf,mBAAmB,EACnB;gBACE,GAAG,QAAQ;gBACX;oBACE,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,GAAG,EAAE,IAAI,CAAC,GAAa;oBACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,KAAK;iBACjC;aACF,EACD,aAAa,CACd,CAAC;SACH;QAED,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;KACnD;AACH,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CACnB,IAAY,EACZ,OAA4C,EAC5C,IAAgC,EAChC,eAAwB,EACxB,mBAA4B,EAC5B,QAA4D,EAC5D,aAAoC,EACpC,EAAE;IACF,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE;IAE7E,IAAI,CAAC,YAAY,EAAE;QACjB,IAAI,eAAe,EAAE;YACnB,MAAM,IAAI,uBAAc,CAAC,GAAG,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,sBAAY,CAAC,GAAG,CAAC,CAAC;SAC1E;aAAM;YACL,OAAO;gBACL,EAAE,EAAE,GAAG,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE;gBAChC,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,YAAY,EAAE,EAAE;gBAChB,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,oBAAoB,EAAE,IAAI;gBAC1B,GAAG,EAAE,EAAE;aACR,CAAC;SACH;KACF;IAED,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;IACnC,MAAM,YAAY,GAAG,IAAA,2BAAoB,EACvC,OAAO,CAAC,YAAY,IAAI,EAAE,EAC1B,OAAO,CAAC,KAAK,CACd,CAAC;IACF,MAAM,oBAAoB,GAAG,mBAAmB;QAC9C,CAAC,CAAC,IAAA,2BAAoB,EAAC,OAAO,CAAC,oBAAoB,IAAI,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC;QACzE,CAAC,CAAC,EAAE,CAAC;IAEP,OAAO;QACL,EAAE,EAAE,GAAG,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE;QAChC,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,YAAY,kCAAO,YAAY,GAAK,oBAAoB,CAAE;QAC1D,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,GAAG,EAAE,YAAY;KAClB,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CACtB,IAAY,EACZ,QAA4D,EAC5D,IAAgC,EAChC,aAAoC,EAChB,EAAE;IACtB,MAAM,aAAa,GAAG,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAE9C,yBAAyB;IACzB,IAAI,CAAC,aAAa,EAAE;QAClB,OAAO,SAAS,CAAC;KAClB;IAED,uCAAuC;IACvC,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE;QAC9B,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC;KACzB;IAED,gEAAgE;IAChE,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;QAC7D,MAAM,aAAa,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC;QAC3E,MAAM,oBAAoB,GAAG;YAC3B,GAAG,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;YACrD,IAAI;SACL,CAAC;QAEF,MAAM,mBAAmB,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CACnD,EAAE,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CACxD,CAAC;QAEF,MAAM,kBAAkB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;YACjE,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC5C,OAAO,oBAAoB,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;YACnC,OAAO,kBAAkB,CAAC,CAAC,CAAC,CAAC;SAC9B;QAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,CACtE,CAAC;QAEF,MAAM,iBAAiB,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,CAAC;QACvE,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CACvC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC,MAAM,KAAK,iBAAiB,CAClE,CAAC;QAEF,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE;YAChC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC;SAC3B;QAED,qEAAqE;QACrE,2EAA2E;QAC3E,IAAI,uBAAuB,GAAG,eAAe,CAAC;QAC9C,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;QAC5C,KACE,IAAI,WAAW,GAAG,CAAC,EACnB,WAAW,GAAG,gBAAgB,CAAC,MAAM,EACrC,WAAW,EAAE,EACb;YACA,MAAM,SAAS,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC,GAAG,CAAC;YACpD,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAClE,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,CACxB,CAAC;YAEF,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrC,OAAO,oBAAoB,CAAC,CAAC,CAAC,CAAC;aAChC;YAED,IAAI,oBAAoB,CAAC,MAAM,KAAK,CAAC,EAAE;gBACrC,SAAS;aACV;YAED,uBAAuB,GAAG,oBAAoB,CAAC;SAChD;KACF;IAED,kEAAkE;IAClE,qCAAqC;IACrC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;QACzB,OAAO,gBAAgB,IAAI,EAAE,CAAC;KAC/B;IAED,MAAM,UAAU,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC;IACtD,OAAO,IAAI,CAAC,gBAAgB,UAAU,iBAAiB,IAAI,EAAE,CAAC;QAC5D,CAAC,CAAC,gBAAgB,UAAU,iBAAiB,IAAI,EAAE;QACnD,CAAC,CAAC,gBAAgB,IAAI,EAAE,CAAC;AAC7B,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../lib/dep-graph-builders/util.ts"],"names":[],"mappings":";;;AAEA,sCAAkD;AAElD,sCAA2C;AAC3C,wCAA0C;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../lib/dep-graph-builders/util.ts"],"names":[],"mappings":";;;AAEA,sCAAkD;AAElD,sCAA2C;AAC3C,wCAA0C;AAenC,MAAM,iBAAiB,GAAG,CAC/B,eAAgC,EAChC,IAAa,EACb,OAGC,EACgB,EAAE;IACnB,OAAO,eAAe,CAAC,UAAU,CAC/B,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAC1C,IAAI,CAAC,EAAE,EACP;QACE,MAAM,8CACJ,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,IAC/B,CAAC,OAAO,CAAC,QAAQ,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,GAC1C,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,GAC9C,CAAC,IAAI,CAAC,oBAAoB,IAAI,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,CACnE;KACF,CACF,CAAC;AACJ,CAAC,CAAC;AApBW,QAAA,iBAAiB,qBAoB5B;AAEF;;;GAGG;AACI,MAAM,eAAe,GAAG,CAC7B,OAAwB,EACxB,OAIC,EACa,EAAE;IAChB,MAAM,QAAQ,GAAG,IAAA,4BAAoB,EAAC,OAAO,CAAC,YAAY,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IAEzE,MAAM,OAAO,GAAG,OAAO,CAAC,cAAc;QACpC,CAAC,CAAC,IAAA,4BAAoB,EAAC,OAAO,CAAC,eAAe,IAAI,EAAE,EAAE,IAAI,CAAC;QAC3D,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,YAAY,GAAG,OAAO,CAAC,mBAAmB;QAC9C,CAAC,CAAC,IAAA,4BAAoB,EAAC,OAAO,CAAC,oBAAoB,IAAI,EAAE,EAAE,KAAK,CAAC;QACjE,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,QAAQ,GAAG,OAAO,CAAC,eAAe;QACtC,CAAC,CAAC,IAAA,4BAAoB,EAAC,OAAO,CAAC,gBAAgB,IAAI,EAAE,EAAE,KAAK,CAAC;QAC7D,CAAC,CAAC,EAAE,CAAC;IAEP,mEAAY,QAAQ,GAAK,OAAO,GAAK,YAAY,GAAK,QAAQ,EAAG;AACnE,CAAC,CAAC;AAvBW,QAAA,eAAe,mBAuB1B;AAEF;;;GAGG;AACI,MAAM,oBAAoB,GAAG,CAClC,YAAoC,EACpC,KAAK,EACS,EAAE;IAChB,OAAO,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CACxC,CAAC,GAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE;QACpC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QAC9C,OAAO,GAAG,CAAC;IACb,CAAC,EACD,EAAE,CACH,CAAC;AACJ,CAAC,CAAC;AAXW,QAAA,oBAAoB,wBAW/B;AAEF,SAAgB,YAAY,CAAC,cAAsB;IACjD,IAAI;QACF,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;QACjD,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;YACvB,aAAa,CAAC,IAAI,GAAG,cAAc,CAAC;SACrC;QACD,OAAO,aAAa,CAAC;KACtB;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,IAAI,8BAAqB,CAC7B,yCAAyC,GAAI,CAAW,CAAC,OAAO,CACjE,CAAC;KACH;AACH,CAAC;AAZD,oCAYC;AAEM,MAAM,YAAY,GAAG,CAC1B,IAAY,EACZ,OAA4C,EAC5C,IAAoB,EACpB,eAAwB,EACxB,mBAA4B,EAC5B,EAAE;IACF,MAAM,YAAY,GAAG,GAAG,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAClD,IAAI,SAAkB,CAAC;IAEvB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE;QACvB,IAAI,eAAe,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACtD,MAAM,IAAI,uBAAc,CAAC,YAAY,EAAE,sBAAY,CAAC,IAAI,CAAC,CAAC;SAC3D;aAAM;YACL,SAAS,GAAG;gBACV,EAAE,EAAE,YAAY;gBAChB,IAAI,EAAE,IAAI;gBACV,OAAO,EAAE,OAAO,CAAC,OAAO;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,4BAAoB,EACvC,OAAO,CAAC,YAAY,IAAI,EAAE,EAC1B,OAAO,CAAC,KAAK,CACd,CAAC;QACF,MAAM,oBAAoB,GAAG,mBAAmB;YAC9C,CAAC,CAAC,IAAA,4BAAoB,EAAC,OAAO,CAAC,oBAAoB,IAAI,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC;YACzE,CAAC,CAAC,EAAE,CAAC;QACP,SAAS,GAAG;YACV,EAAE,EAAE,GAAG,IAAI,IAAI,OAAO,CAAC,OAAO,EAAE;YAChC,IAAI,EAAE,IAAI;YACV,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,YAAY,kCAAO,YAAY,GAAK,oBAAoB,CAAE;YAC1D,KAAK,EAAE,OAAO,CAAC,KAAK;SACrB,CAAC;KACH;IAED,OAAO,SAAS,CAAC;AACnB,CAAC,CAAC;AA1CW,QAAA,YAAY,gBA0CvB"}
|
package/package.json
CHANGED