snyk-paket-parser 1.3.2 → 1.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dependencies-parser.js +17 -6
- package/dist/dependencies-parser.js.map +1 -1
- package/dist/errors/invalid-user-input-error.js +1 -1
- package/dist/errors/invalid-user-input-error.js.map +1 -1
- package/dist/index.d.ts +4 -3
- package/dist/index.js +223 -60
- package/dist/index.js.map +1 -1
- package/dist/line-parser.js +31 -8
- package/dist/line-parser.js.map +1 -1
- package/dist/lock-parser.js +70 -49
- package/dist/lock-parser.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
3
4
|
var line_parser_1 = require("./line-parser");
|
|
4
5
|
var COMMENTS = ['#', '//'];
|
|
5
6
|
var GROUP = 'group';
|
|
@@ -39,7 +40,7 @@ function parseNuget(line) {
|
|
|
39
40
|
function parseGithub(line) {
|
|
40
41
|
var re = /"[^"]*"|\S+/g;
|
|
41
42
|
var parts = line.match(re).splice(1);
|
|
42
|
-
var _a = parts[0].split(':'), repo = _a[0], version = _a[1];
|
|
43
|
+
var _a = tslib_1.__read(parts[0].split(':'), 2), repo = _a[0], version = _a[1];
|
|
43
44
|
return {
|
|
44
45
|
file: parts[1] || '',
|
|
45
46
|
repo: repo,
|
|
@@ -52,7 +53,7 @@ function parseGithub(line) {
|
|
|
52
53
|
function parseSource(line) {
|
|
53
54
|
// Split URL and option string including possible comments.
|
|
54
55
|
var urlRe = /^source ([^\s]+)(.*)$/i;
|
|
55
|
-
var _a = line.match(urlRe), url = _a[1], optionsString = _a[2];
|
|
56
|
+
var _a = tslib_1.__read(line.match(urlRe), 3), url = _a[1], optionsString = _a[2];
|
|
56
57
|
// Options in this line is always double quoted.
|
|
57
58
|
var options = {};
|
|
58
59
|
var optionsRe = /(.*?)\W*:\W*"(.*?)"/g;
|
|
@@ -74,6 +75,7 @@ function parseGroupOption(line) {
|
|
|
74
75
|
return [result[1] || '', result[3] || ''];
|
|
75
76
|
}
|
|
76
77
|
function parseDependenciesFile(input) {
|
|
78
|
+
var e_1, _a;
|
|
77
79
|
var lines = line_parser_1.parseLines(input);
|
|
78
80
|
var result = [];
|
|
79
81
|
var group = {
|
|
@@ -119,13 +121,22 @@ function parseDependenciesFile(input) {
|
|
|
119
121
|
// TODO
|
|
120
122
|
}
|
|
121
123
|
else {
|
|
122
|
-
var _a = parseGroupOption(line.data), name = _a[0], value = _a[1];
|
|
124
|
+
var _a = tslib_1.__read(parseGroupOption(line.data), 2), name = _a[0], value = _a[1];
|
|
123
125
|
group.options[name] = value;
|
|
124
126
|
}
|
|
125
127
|
};
|
|
126
|
-
|
|
127
|
-
var
|
|
128
|
-
|
|
128
|
+
try {
|
|
129
|
+
for (var lines_1 = tslib_1.__values(lines), lines_1_1 = lines_1.next(); !lines_1_1.done; lines_1_1 = lines_1.next()) {
|
|
130
|
+
var line = lines_1_1.value;
|
|
131
|
+
_loop_1(line);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
135
|
+
finally {
|
|
136
|
+
try {
|
|
137
|
+
if (lines_1_1 && !lines_1_1.done && (_a = lines_1.return)) _a.call(lines_1);
|
|
138
|
+
}
|
|
139
|
+
finally { if (e_1) throw e_1.error; }
|
|
129
140
|
}
|
|
130
141
|
result.push(group);
|
|
131
142
|
return result;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependencies-parser.js","sourceRoot":"","sources":["../lib/dependencies-parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dependencies-parser.js","sourceRoot":"","sources":["../lib/dependencies-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ var InvalidUserInputError = /** @class */ (function (_super) {
|
|
|
8
8
|
for (var _i = 0; _i < arguments.length; _i++) {
|
|
9
9
|
args[_i] = arguments[_i];
|
|
10
10
|
}
|
|
11
|
-
var _this = _super.apply(this, args) || this;
|
|
11
|
+
var _this = _super.apply(this, tslib_1.__spread(args)) || this;
|
|
12
12
|
_this.code = 422;
|
|
13
13
|
_this.name = 'InvalidUserInputError';
|
|
14
14
|
Error.captureStackTrace(_this, InvalidUserInputError);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invalid-user-input-error.js","sourceRoot":"","sources":["../../lib/errors/invalid-user-input-error.ts"],"names":[],"mappings":";;;AAAA;IAA2C,iDAAK;IAI9C;QAAY,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAA1B
|
|
1
|
+
{"version":3,"file":"invalid-user-input-error.js","sourceRoot":"","sources":["../../lib/errors/invalid-user-input-error.ts"],"names":[],"mappings":";;;AAAA;IAA2C,iDAAK;IAI9C;QAAY,cAAc;aAAd,UAAc,EAAd,qBAAc,EAAd,IAAc;YAAd,yBAAc;;QAA1B,gDACW,IAAI,WAEd;QANM,UAAI,GAAG,GAAG,CAAC;QACX,UAAI,GAAG,uBAAuB,CAAC;QAIpC,KAAK,CAAC,iBAAiB,CAAC,KAAI,EAAE,qBAAqB,CAAC,CAAC;;IACvD,CAAC;IACH,4BAAC;AAAD,CAAC,AARD,CAA2C,KAAK,GAQ/C;AARY,sDAAqB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
|
+
import { InvalidUserInputError, OutOfSyncError } from './errors';
|
|
2
|
+
export { InvalidUserInputError, OutOfSyncError };
|
|
1
3
|
export interface DepTree {
|
|
2
4
|
name: string;
|
|
3
5
|
version: string;
|
|
4
6
|
dependencies: {
|
|
5
|
-
[dep: string]:
|
|
7
|
+
[dep: string]: DepTree;
|
|
6
8
|
};
|
|
7
9
|
depType?: DepType;
|
|
8
10
|
hasDevDependencies?: boolean;
|
|
9
|
-
cyclic?: boolean;
|
|
10
11
|
targetFrameworks?: string[];
|
|
12
|
+
missingLockFileEntry?: boolean;
|
|
11
13
|
}
|
|
12
14
|
export declare enum DepType {
|
|
13
15
|
prod = "prod",
|
|
14
16
|
dev = "dev"
|
|
15
17
|
}
|
|
16
18
|
export declare function buildDepTreeFromFiles(root: string, manifestFilePath: string, lockFilePath: string, includeDev?: boolean, strict?: boolean): Promise<DepTree>;
|
|
17
|
-
export declare function buildDepTree(manifestFileContents: string, lockFileContents: string, includeDev?: boolean, strict?: boolean, defaultManifestFileName?: string): Promise<DepTree>;
|
package/dist/index.js
CHANGED
|
@@ -6,7 +6,11 @@ var dependencies_parser_1 = require("./dependencies-parser");
|
|
|
6
6
|
var path = require("path");
|
|
7
7
|
var fs = require("fs");
|
|
8
8
|
var errors_1 = require("./errors");
|
|
9
|
+
exports.InvalidUserInputError = errors_1.InvalidUserInputError;
|
|
10
|
+
exports.OutOfSyncError = errors_1.OutOfSyncError;
|
|
9
11
|
var DEV_GROUPS = ['build', 'test', 'tests'];
|
|
12
|
+
var SUPPORTED_SOURCES = ['nuget'];
|
|
13
|
+
var FREQUENCY_THRESHOLD = 100;
|
|
10
14
|
var DepType;
|
|
11
15
|
(function (DepType) {
|
|
12
16
|
DepType["prod"] = "prod";
|
|
@@ -16,9 +20,9 @@ function buildDepTreeFromFiles(root, manifestFilePath, lockFilePath, includeDev,
|
|
|
16
20
|
if (includeDev === void 0) { includeDev = false; }
|
|
17
21
|
if (strict === void 0) { strict = true; }
|
|
18
22
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
19
|
-
var manifestFileFullPath, lockFileFullPath, manifestFileContents, lockFileContents;
|
|
20
|
-
return tslib_1.__generator(this, function (
|
|
21
|
-
switch (
|
|
23
|
+
var manifestFileFullPath, lockFileFullPath, manifestFileContents, lockFileContents, _a;
|
|
24
|
+
return tslib_1.__generator(this, function (_b) {
|
|
25
|
+
switch (_b.label) {
|
|
22
26
|
case 0:
|
|
23
27
|
manifestFileFullPath = path.resolve(root, manifestFilePath);
|
|
24
28
|
lockFileFullPath = path.resolve(root, lockFilePath);
|
|
@@ -32,86 +36,245 @@ function buildDepTreeFromFiles(root, manifestFilePath, lockFilePath, includeDev,
|
|
|
32
36
|
}
|
|
33
37
|
manifestFileContents = fs.readFileSync(manifestFileFullPath, 'utf-8');
|
|
34
38
|
lockFileContents = fs.readFileSync(lockFileFullPath, 'utf-8');
|
|
35
|
-
|
|
36
|
-
|
|
39
|
+
_a = {};
|
|
40
|
+
return [4 /*yield*/, buildDepTree(manifestFileContents, lockFileContents, includeDev, strict)];
|
|
41
|
+
case 1: return [2 /*return*/, (_a.dependencies = _b.sent(),
|
|
42
|
+
_a.name = path.basename(path.dirname(manifestFileFullPath)),
|
|
43
|
+
_a.version = '',
|
|
44
|
+
_a)];
|
|
37
45
|
}
|
|
38
46
|
});
|
|
39
47
|
});
|
|
40
48
|
}
|
|
41
49
|
exports.buildDepTreeFromFiles = buildDepTreeFromFiles;
|
|
42
|
-
function buildDepTree(manifestFileContents, lockFileContents, includeDev, strict
|
|
50
|
+
function buildDepTree(manifestFileContents, lockFileContents, includeDev, strict) {
|
|
43
51
|
if (includeDev === void 0) { includeDev = false; }
|
|
44
52
|
if (strict === void 0) { strict = true; }
|
|
45
|
-
if (defaultManifestFileName === void 0) { defaultManifestFileName = 'paket.dependencies'; }
|
|
46
53
|
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
47
|
-
var manifestFile, lockFile,
|
|
48
|
-
return tslib_1.__generator(this, function (
|
|
54
|
+
var e_1, _a, e_2, _b, manifestFile, lockFile, dependenciesMap, _c, _d, dep, dependencies, _e, _f, dep, frequentSubTree;
|
|
55
|
+
return tslib_1.__generator(this, function (_g) {
|
|
49
56
|
manifestFile = dependencies_parser_1.parseDependenciesFile(manifestFileContents);
|
|
50
57
|
lockFile = lock_parser_1.parseLockFile(lockFileContents);
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
58
|
+
dependenciesMap = new Map();
|
|
59
|
+
collectRootDeps(manifestFile, dependenciesMap);
|
|
60
|
+
collectResolvedDeps(lockFile, dependenciesMap);
|
|
61
|
+
try {
|
|
62
|
+
for (_c = tslib_1.__values(dependenciesMap.values()), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
63
|
+
dep = _d.value;
|
|
64
|
+
if (dep.root) {
|
|
65
|
+
calculateReferences(dep, dependenciesMap);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
70
|
+
finally {
|
|
71
|
+
try {
|
|
72
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
73
|
+
}
|
|
74
|
+
finally { if (e_1) throw e_1.error; }
|
|
75
|
+
}
|
|
76
|
+
dependencies = {};
|
|
77
|
+
try {
|
|
78
|
+
for (_e = tslib_1.__values(dependenciesMap.values()), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
79
|
+
dep = _f.value;
|
|
80
|
+
if (dep.root && (includeDev || dep.depType === DepType.prod)) {
|
|
81
|
+
if (strict && !dep.resolved) {
|
|
82
|
+
throw new errors_1.OutOfSyncError(dep.name);
|
|
83
|
+
}
|
|
84
|
+
dependencies[dep.name] = buildTreeFromList(dep, dependenciesMap);
|
|
85
|
+
if (!dep.resolved) {
|
|
86
|
+
dependencies[dep.name].missingLockFileEntry = true;
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
92
|
+
finally {
|
|
93
|
+
try {
|
|
94
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
95
|
+
}
|
|
96
|
+
finally { if (e_2) throw e_2.error; }
|
|
97
|
+
}
|
|
98
|
+
frequentSubTree = buildFrequentDepsSubtree(dependenciesMap);
|
|
99
|
+
if (Object.keys(frequentSubTree.dependencies).length) {
|
|
100
|
+
dependencies[frequentSubTree.name] = frequentSubTree;
|
|
101
|
+
}
|
|
102
|
+
return [2 /*return*/, dependencies];
|
|
54
103
|
});
|
|
55
104
|
});
|
|
56
105
|
}
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
106
|
+
function collectRootDeps(manifestFile, dependenciesMap) {
|
|
107
|
+
var e_3, _a, e_4, _b;
|
|
108
|
+
try {
|
|
109
|
+
for (var manifestFile_1 = tslib_1.__values(manifestFile), manifestFile_1_1 = manifestFile_1.next(); !manifestFile_1_1.done; manifestFile_1_1 = manifestFile_1.next()) {
|
|
110
|
+
var group = manifestFile_1_1.value;
|
|
111
|
+
var isDev = DEV_GROUPS.indexOf((group.name || '').toLowerCase()) !== -1;
|
|
112
|
+
try {
|
|
113
|
+
for (var _c = tslib_1.__values(group.dependencies), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
114
|
+
var dep = _d.value;
|
|
115
|
+
if (SUPPORTED_SOURCES.indexOf(dep.source.toLowerCase()) === -1) {
|
|
116
|
+
continue;
|
|
117
|
+
}
|
|
118
|
+
var nugetDep = dep;
|
|
119
|
+
if (!dependenciesMap.has(nugetDep.name.toLowerCase())) {
|
|
120
|
+
dependenciesMap.set(nugetDep.name.toLowerCase(), {
|
|
121
|
+
name: nugetDep.name,
|
|
122
|
+
// Will be overwritten in `collectResolvedDeps`.
|
|
123
|
+
version: nugetDep.versionRange,
|
|
124
|
+
// Will be overwritten in `collectResolvedDeps`.
|
|
125
|
+
dependencies: [],
|
|
126
|
+
depType: isDev ? DepType.dev : DepType.prod,
|
|
127
|
+
root: true,
|
|
128
|
+
refs: 1,
|
|
129
|
+
// Will be overwritten in `collectResolvedDeps`.
|
|
130
|
+
resolved: false,
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
catch (e_4_1) { e_4 = { error: e_4_1 }; }
|
|
136
|
+
finally {
|
|
137
|
+
try {
|
|
138
|
+
if (_d && !_d.done && (_b = _c.return)) _b.call(_c);
|
|
139
|
+
}
|
|
140
|
+
finally { if (e_4) throw e_4.error; }
|
|
75
141
|
}
|
|
76
142
|
}
|
|
77
143
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
continue;
|
|
144
|
+
catch (e_3_1) { e_3 = { error: e_3_1 }; }
|
|
145
|
+
finally {
|
|
146
|
+
try {
|
|
147
|
+
if (manifestFile_1_1 && !manifestFile_1_1.done && (_a = manifestFile_1.return)) _a.call(manifestFile_1);
|
|
83
148
|
}
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
149
|
+
finally { if (e_3) throw e_3.error; }
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
function collectResolvedDeps(lockFile, dependenciesMap) {
|
|
153
|
+
var e_5, _a, e_6, _b;
|
|
154
|
+
try {
|
|
155
|
+
for (var _c = tslib_1.__values(lockFile.groups), _d = _c.next(); !_d.done; _d = _c.next()) {
|
|
156
|
+
var group = _d.value;
|
|
157
|
+
var isDev = DEV_GROUPS.indexOf((group.name || '').toLowerCase()) !== -1;
|
|
158
|
+
try {
|
|
159
|
+
for (var _e = tslib_1.__values(group.dependencies), _f = _e.next(); !_f.done; _f = _e.next()) {
|
|
160
|
+
var dep = _f.value;
|
|
161
|
+
if (SUPPORTED_SOURCES.indexOf(dep.repository.toLowerCase()) === -1) {
|
|
162
|
+
continue;
|
|
163
|
+
}
|
|
164
|
+
if (dependenciesMap.has(dep.name.toLowerCase())) {
|
|
165
|
+
var rootDep = dependenciesMap.get(dep.name.toLowerCase());
|
|
166
|
+
rootDep.version = dep.version;
|
|
167
|
+
rootDep.dependencies = dep.dependencies.map(function (d) { return d.name.toLowerCase(); });
|
|
168
|
+
rootDep.resolved = true;
|
|
169
|
+
}
|
|
170
|
+
else {
|
|
171
|
+
dependenciesMap.set(dep.name.toLowerCase(), {
|
|
172
|
+
name: dep.name,
|
|
173
|
+
version: dep.version,
|
|
174
|
+
dependencies: dep.dependencies.map(function (d) { return d.name.toLowerCase(); }),
|
|
175
|
+
depType: isDev ? DepType.dev : DepType.prod,
|
|
176
|
+
root: false,
|
|
177
|
+
refs: 0,
|
|
178
|
+
resolved: true,
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
catch (e_6_1) { e_6 = { error: e_6_1 }; }
|
|
184
|
+
finally {
|
|
185
|
+
try {
|
|
186
|
+
if (_f && !_f.done && (_b = _e.return)) _b.call(_e);
|
|
187
|
+
}
|
|
188
|
+
finally { if (e_6) throw e_6.error; }
|
|
93
189
|
}
|
|
94
190
|
}
|
|
95
191
|
}
|
|
96
|
-
|
|
97
|
-
|
|
192
|
+
catch (e_5_1) { e_5 = { error: e_5_1 }; }
|
|
193
|
+
finally {
|
|
194
|
+
try {
|
|
195
|
+
if (_d && !_d.done && (_a = _c.return)) _a.call(_c);
|
|
196
|
+
}
|
|
197
|
+
finally { if (e_5) throw e_5.error; }
|
|
198
|
+
}
|
|
98
199
|
}
|
|
99
|
-
function
|
|
100
|
-
var
|
|
101
|
-
|
|
102
|
-
var
|
|
103
|
-
|
|
104
|
-
var
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
name: dep.name,
|
|
110
|
-
version: dep.version,
|
|
111
|
-
};
|
|
200
|
+
function calculateReferences(node, dependenciesMap) {
|
|
201
|
+
var e_7, _a;
|
|
202
|
+
try {
|
|
203
|
+
for (var _b = tslib_1.__values(node.dependencies), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
204
|
+
var subName = _c.value;
|
|
205
|
+
var sub = dependenciesMap.get(subName);
|
|
206
|
+
sub.refs += node.refs;
|
|
207
|
+
// Do not propagate calculations if we already reach threshold for the node.
|
|
208
|
+
if (sub.refs < FREQUENCY_THRESHOLD) {
|
|
209
|
+
calculateReferences(sub, dependenciesMap);
|
|
112
210
|
}
|
|
113
211
|
}
|
|
114
212
|
}
|
|
115
|
-
|
|
213
|
+
catch (e_7_1) { e_7 = { error: e_7_1 }; }
|
|
214
|
+
finally {
|
|
215
|
+
try {
|
|
216
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
217
|
+
}
|
|
218
|
+
finally { if (e_7) throw e_7.error; }
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
function buildFrequentDepsSubtree(dependenciesMap) {
|
|
222
|
+
var tree = {
|
|
223
|
+
name: 'meta-common-packages',
|
|
224
|
+
version: 'meta',
|
|
225
|
+
dependencies: {},
|
|
226
|
+
};
|
|
227
|
+
getFrequentDependencies(dependenciesMap).forEach(function (listItem) {
|
|
228
|
+
var treeNode = buildTreeFromList(listItem, dependenciesMap);
|
|
229
|
+
tree.dependencies[treeNode.name] = treeNode;
|
|
230
|
+
});
|
|
231
|
+
return tree;
|
|
232
|
+
}
|
|
233
|
+
function getFrequentDependencies(dependenciesMap) {
|
|
234
|
+
var e_8, _a;
|
|
235
|
+
var frequentDeps = [];
|
|
236
|
+
try {
|
|
237
|
+
for (var _b = tslib_1.__values(dependenciesMap.values()), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
238
|
+
var dep = _c.value;
|
|
239
|
+
if (!dep.root && dep.refs >= FREQUENCY_THRESHOLD) {
|
|
240
|
+
frequentDeps.push(dep);
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
catch (e_8_1) { e_8 = { error: e_8_1 }; }
|
|
245
|
+
finally {
|
|
246
|
+
try {
|
|
247
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
248
|
+
}
|
|
249
|
+
finally { if (e_8) throw e_8.error; }
|
|
250
|
+
}
|
|
251
|
+
return frequentDeps;
|
|
252
|
+
}
|
|
253
|
+
function buildTreeFromList(listItem, dependenciesMap) {
|
|
254
|
+
var e_9, _a;
|
|
255
|
+
var tree = {
|
|
256
|
+
name: listItem.name,
|
|
257
|
+
version: listItem.version,
|
|
258
|
+
dependencies: {},
|
|
259
|
+
depType: listItem.depType,
|
|
260
|
+
};
|
|
261
|
+
try {
|
|
262
|
+
for (var _b = tslib_1.__values(listItem.dependencies), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
263
|
+
var name = _c.value;
|
|
264
|
+
var subListItem = dependenciesMap.get(name);
|
|
265
|
+
if (!(subListItem.refs >= FREQUENCY_THRESHOLD)) {
|
|
266
|
+
var subtree = buildTreeFromList(subListItem, dependenciesMap);
|
|
267
|
+
tree.dependencies[subtree.name] = subtree;
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
catch (e_9_1) { e_9 = { error: e_9_1 }; }
|
|
272
|
+
finally {
|
|
273
|
+
try {
|
|
274
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
275
|
+
}
|
|
276
|
+
finally { if (e_9) throw e_9.error; }
|
|
277
|
+
}
|
|
278
|
+
return tree;
|
|
116
279
|
}
|
|
117
280
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"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"}
|
package/dist/line-parser.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
3
4
|
var Line = /** @class */ (function () {
|
|
4
5
|
function Line(data, indentation) {
|
|
5
6
|
this.data = data;
|
|
@@ -16,20 +17,42 @@ function countIndents(line, indent) {
|
|
|
16
17
|
}
|
|
17
18
|
return count;
|
|
18
19
|
}
|
|
20
|
+
// On windows machines first symbol of the file sometimes is special
|
|
21
|
+
// "ZERO WIDTH NO-BREAK SPACE". Remove it before continue processing because it
|
|
22
|
+
// could be counted as a space in `countIndents`.
|
|
23
|
+
//
|
|
24
|
+
// - https://en.wikipedia.org/wiki/Byte_order_mark
|
|
25
|
+
// - https://stackoverflow.com/questions/6784799/what-is-this-char-65279
|
|
26
|
+
function removeByteOrderMark(input) {
|
|
27
|
+
if (input.length > 0 && input.charAt(0) === '\uFEFF') {
|
|
28
|
+
return input.substr(1);
|
|
29
|
+
}
|
|
30
|
+
return input;
|
|
31
|
+
}
|
|
19
32
|
// parse space indented lines into array of Lines
|
|
20
33
|
function parseLines(input, indent /* two spaces */, lineSeparator) {
|
|
21
34
|
if (indent === void 0) { indent = ' '; }
|
|
22
35
|
if (lineSeparator === void 0) { lineSeparator = /\r?\n/; }
|
|
23
|
-
var
|
|
36
|
+
var e_1, _a;
|
|
37
|
+
var lines = removeByteOrderMark(input).split(lineSeparator);
|
|
24
38
|
var result = [];
|
|
25
|
-
|
|
26
|
-
var
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
39
|
+
try {
|
|
40
|
+
for (var lines_1 = tslib_1.__values(lines), lines_1_1 = lines_1.next(); !lines_1_1.done; lines_1_1 = lines_1.next()) {
|
|
41
|
+
var line = lines_1_1.value;
|
|
42
|
+
var data = line.trim();
|
|
43
|
+
if (data === '') { // GROUPS often separated by blank lines
|
|
44
|
+
continue;
|
|
45
|
+
}
|
|
46
|
+
var indentation = countIndents(line, indent);
|
|
47
|
+
result.push(new Line(data, indentation));
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
51
|
+
finally {
|
|
52
|
+
try {
|
|
53
|
+
if (lines_1_1 && !lines_1_1.done && (_a = lines_1.return)) _a.call(lines_1);
|
|
30
54
|
}
|
|
31
|
-
|
|
32
|
-
result.push(new Line(data, indentation));
|
|
55
|
+
finally { if (e_1) throw e_1.error; }
|
|
33
56
|
}
|
|
34
57
|
return result;
|
|
35
58
|
}
|
package/dist/line-parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line-parser.js","sourceRoot":"","sources":["../lib/line-parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"line-parser.js","sourceRoot":"","sources":["../lib/line-parser.ts"],"names":[],"mappings":";;;AAAA;IAIE,cAAY,IAAY,EAAE,WAAmB;QAC3C,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;IACH,WAAC;AAAD,CAAC,AARD,IAQC;AARY,oBAAI;AAUjB,SAAS,YAAY,CAAC,IAAY,EAAE,MAAc;IAChD,IAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;IAC5C,IAAM,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;IACrC,IAAI,KAAK,GAAG,CAAC,KAAK,CAAC,EAAE;QACnB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;KAC/C;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,oEAAoE;AACpE,+EAA+E;AAC/E,iDAAiD;AACjD,EAAE;AACF,kDAAkD;AAClD,wEAAwE;AACxE,SAAS,mBAAmB,CAAC,KAAa;IACxC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;QACpD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;KACxB;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,iDAAiD;AACjD,SAAgB,UAAU,CACxB,KAAa,EACb,MAAqB,CAAC,gBAAgB,EACtC,aAA+B;IAD/B,uBAAA,EAAA,aAAqB;IACrB,8BAAA,EAAA,uBAA+B;;IAG/B,IAAM,KAAK,GAAG,mBAAmB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAC9D,IAAM,MAAM,GAAW,EAAE,CAAC;;QAE1B,KAAmB,IAAA,UAAA,iBAAA,KAAK,CAAA,4BAAA,+CAAE;YAArB,IAAM,IAAI,kBAAA;YACb,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAEzB,IAAI,IAAI,KAAK,EAAE,EAAE,EAAE,wCAAwC;gBACzD,SAAS;aACV;YAED,IAAM,WAAW,GAAG,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAE/C,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;SAC1C;;;;;;;;;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAtBD,gCAsBC"}
|
package/dist/lock-parser.js
CHANGED
|
@@ -1,18 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
var tslib_1 = require("tslib");
|
|
3
4
|
var line_parser_1 = require("./line-parser");
|
|
4
5
|
var REPOSITORY_TYPES = ['HTTP', 'GIST', 'GIT', 'NUGET', 'GITHUB']; // naming convention in paket's standard parser
|
|
5
6
|
var GROUP = 'GROUP';
|
|
6
7
|
var REMOTE = 'REMOTE';
|
|
7
8
|
var SPECS = 'SPECS';
|
|
8
9
|
function parseOptions(optionsString) {
|
|
10
|
+
var e_1, _a;
|
|
9
11
|
var options = {};
|
|
10
|
-
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
12
|
+
try {
|
|
13
|
+
for (var _b = tslib_1.__values(optionsString.split(/, +/)), _c = _b.next(); !_c.done; _c = _b.next()) {
|
|
14
|
+
var option = _c.value;
|
|
15
|
+
var optionParts = option.split(/: +/);
|
|
16
|
+
if (optionParts[0] !== '') {
|
|
17
|
+
options[optionParts[0]] = optionParts[1];
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
catch (e_1_1) { e_1 = { error: e_1_1 }; }
|
|
22
|
+
finally {
|
|
23
|
+
try {
|
|
24
|
+
if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
|
|
15
25
|
}
|
|
26
|
+
finally { if (e_1) throw e_1.error; }
|
|
16
27
|
}
|
|
17
28
|
return options;
|
|
18
29
|
}
|
|
@@ -45,6 +56,7 @@ function parseDependencyLine(line, isSubDependency) {
|
|
|
45
56
|
return result;
|
|
46
57
|
}
|
|
47
58
|
function parseLockFile(input) {
|
|
59
|
+
var e_2, _a;
|
|
48
60
|
var result = {
|
|
49
61
|
groups: [],
|
|
50
62
|
};
|
|
@@ -56,58 +68,67 @@ function parseLockFile(input) {
|
|
|
56
68
|
};
|
|
57
69
|
var depContext = {};
|
|
58
70
|
var dependency = null;
|
|
59
|
-
|
|
60
|
-
var
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
if (
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
+
try {
|
|
72
|
+
for (var lines_1 = tslib_1.__values(lines), lines_1_1 = lines_1.next(); !lines_1_1.done; lines_1_1 = lines_1.next()) {
|
|
73
|
+
var line = lines_1_1.value;
|
|
74
|
+
var upperCaseLine = line.data.toUpperCase();
|
|
75
|
+
if (line.indentation === 0) { // group or group option
|
|
76
|
+
if (upperCaseLine.startsWith(GROUP)) {
|
|
77
|
+
result.groups.push(group);
|
|
78
|
+
depContext = {};
|
|
79
|
+
group = {
|
|
80
|
+
name: line.data.substr(GROUP.length).trim(),
|
|
81
|
+
repositories: {},
|
|
82
|
+
dependencies: [],
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
else if (REPOSITORY_TYPES.indexOf(upperCaseLine) !== -1) {
|
|
86
|
+
depContext.repository = line.data;
|
|
87
|
+
group.repositories[line.data] = [];
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
var _b = tslib_1.__read(line.data.split(':'), 2), optionName = _b[0], optionValue = _b[1];
|
|
91
|
+
group.options = group.options || {};
|
|
92
|
+
// TODO: keeping null option values to know the option names
|
|
93
|
+
// need to decide what to do with them
|
|
94
|
+
group.options[optionName.trim()] = optionValue ? optionValue.trim() : null;
|
|
95
|
+
}
|
|
71
96
|
}
|
|
72
|
-
else if (
|
|
73
|
-
|
|
74
|
-
|
|
97
|
+
else if (line.indentation === 1) { // remote or specs
|
|
98
|
+
if (upperCaseLine.startsWith(REMOTE)) {
|
|
99
|
+
var remote = line.data.substring(REMOTE.length + ':'.length).trim();
|
|
100
|
+
if (remote) {
|
|
101
|
+
depContext.remote = remote;
|
|
102
|
+
group.repositories[depContext.repository].push(remote);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else if (upperCaseLine.startsWith(SPECS)) {
|
|
106
|
+
// TODO: for now we add the specs as boolean in meta
|
|
107
|
+
group.specs = true;
|
|
108
|
+
}
|
|
75
109
|
}
|
|
76
110
|
else {
|
|
77
|
-
var
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
if (upperCaseLine.startsWith(REMOTE)) {
|
|
86
|
-
var remote = line.data.substring(REMOTE.length + ':'.length).trim();
|
|
87
|
-
if (remote) {
|
|
88
|
-
depContext.remote = remote;
|
|
89
|
-
group.repositories[depContext.repository].push(remote);
|
|
111
|
+
var dep = parseDependencyLine(line, line.indentation === 3);
|
|
112
|
+
if (line.indentation === 2) { // Resolved Dependency
|
|
113
|
+
dep.remote = depContext.remote;
|
|
114
|
+
dep.repository = depContext.repository;
|
|
115
|
+
dependency = dep;
|
|
116
|
+
}
|
|
117
|
+
else { // Transitive Dependency
|
|
118
|
+
dependency.dependencies.push(dep);
|
|
90
119
|
}
|
|
91
120
|
}
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
group.specs = true;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
else {
|
|
98
|
-
var dep = parseDependencyLine(line, line.indentation === 3);
|
|
99
|
-
if (line.indentation === 2) { // Resolved Dependency
|
|
100
|
-
dep.remote = depContext.remote;
|
|
101
|
-
dep.repository = depContext.repository;
|
|
102
|
-
dependency = dep;
|
|
103
|
-
}
|
|
104
|
-
else { // Transitive Dependency
|
|
105
|
-
dependency.dependencies.push(dep);
|
|
121
|
+
if (group && dependency && group.dependencies.indexOf(dependency) === -1) {
|
|
122
|
+
group.dependencies.push(dependency);
|
|
106
123
|
}
|
|
107
124
|
}
|
|
108
|
-
|
|
109
|
-
|
|
125
|
+
}
|
|
126
|
+
catch (e_2_1) { e_2 = { error: e_2_1 }; }
|
|
127
|
+
finally {
|
|
128
|
+
try {
|
|
129
|
+
if (lines_1_1 && !lines_1_1.done && (_a = lines_1.return)) _a.call(lines_1);
|
|
110
130
|
}
|
|
131
|
+
finally { if (e_2) throw e_2.error; }
|
|
111
132
|
}
|
|
112
133
|
result.groups.push(group);
|
|
113
134
|
return result;
|
package/dist/lock-parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lock-parser.js","sourceRoot":"","sources":["../lib/lock-parser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"lock-parser.js","sourceRoot":"","sources":["../lib/lock-parser.ts"],"names":[],"mappings":";;;AAAA,6CAA+C;AAE/C,IAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,+CAA+C;AACpH,IAAM,KAAK,GAAG,OAAO,CAAC;AACtB,IAAM,MAAM,GAAG,QAAQ,CAAC;AACxB,IAAM,KAAK,GAAG,OAAO,CAAC;AA6BtB,SAAS,YAAY,CAAC,aAAqB;;IACzC,IAAM,OAAO,GAAG,EAAY,CAAC;;QAE7B,KAAqB,IAAA,KAAA,iBAAA,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA,gBAAA,4BAAE;YAA5C,IAAM,MAAM,WAAA;YACf,IAAM,WAAW,GAAG,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxC,IAAI,WAAW,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACzB,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;aAC1C;SACF;;;;;;;;;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAU,EAAE,eAAwB;IAC/D,IAAM,EAAE,GAAG,gCAAgC,CAAC;IAC5C,IAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAElC,IAAM,MAAM,GAAe;QACzB,IAAI,EAAE,EAAE;QACR,OAAO,EAAE,EAAE;QACX,OAAO,EAAE,EAAE;KACZ,CAAC;IAEF,IAAI,CAAC,KAAK,IAAI,CAAC,eAAe,EAAE;QAC9B,MAAM,IAAI,KAAK,CAAC,4DAA0D,IAAI,CAAC,IAAM,CAAC,CAAC;KACxF;IAED,sBAAsB;IACtB,0BAA0B;IAC1B,6DAA6D;IAC7D,+DAA+D;IAC/D,IAAI,CAAC,KAAK,EAAE;QACV,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;KACzB;SAAM;QACL,MAAM,CAAC,IAAI,GAAI,KAAK,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;QAC1B,MAAM,CAAC,OAAO,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;KACzC;IAED,IAAI,CAAC,eAAe,EAAE;QACpB,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC;KAC1B;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAgB,aAAa,CAAC,KAAa;;IACzC,IAAM,MAAM,GAAG;QACb,MAAM,EAAE,EAAE;KACE,CAAC;IACf,IAAM,KAAK,GAAG,wBAAU,CAAC,KAAK,CAAC,CAAC;IAChC,IAAI,KAAK,GAAG;QACV,IAAI,EAAE,IAAI;QACV,YAAY,EAAE,EAAS;QACvB,YAAY,EAAE,EAAE;KACR,CAAC;IACX,IAAI,UAAU,GAAG,EAAS,CAAC;IAC3B,IAAI,UAAU,GAAG,IAAI,CAAC;;QAEtB,KAAmB,IAAA,UAAA,iBAAA,KAAK,CAAA,4BAAA,+CAAE;YAArB,IAAM,IAAI,kBAAA;YACb,IAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAE9C,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE,EAAE,wBAAwB;gBACpD,IAAI,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;oBACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC1B,UAAU,GAAG,EAAE,CAAC;oBAChB,KAAK,GAAG;wBACN,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE;wBAC3C,YAAY,EAAE,EAAS;wBACvB,YAAY,EAAE,EAAE;qBACR,CAAC;iBACZ;qBAAM,IAAI,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE;oBACzD,UAAU,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;oBAClC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;iBACpC;qBAAM;oBACC,IAAA,4CAAgD,EAA/C,kBAAU,EAAE,mBAAW,CAAyB;oBACvD,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC;oBACpC,4DAA4D;oBAC5D,sCAAsC;oBACtC,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;iBAC5E;aACF;iBAAM,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE,EAAE,kBAAkB;gBACrD,IAAI,aAAa,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE;oBACpC,IAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;oBACtE,IAAI,MAAM,EAAE;wBACV,UAAU,CAAC,MAAM,GAAG,MAAM,CAAC;wBAC3B,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;qBACxD;iBACF;qBAAM,IAAI,aAAa,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE;oBAC1C,oDAAoD;oBACpD,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC;iBACpB;aACF;iBAAM;gBACL,IAAM,GAAG,GAAG,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,KAAK,CAAC,CAAC,CAAC;gBAE9D,IAAI,IAAI,CAAC,WAAW,KAAK,CAAC,EAAE,EAAE,sBAAsB;oBAClD,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;oBAC/B,GAAG,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;oBACvC,UAAU,GAAG,GAAG,CAAC;iBAClB;qBAAM,EAAE,wBAAwB;oBAC/B,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACnC;aACF;YAED,IAAI,KAAK,IAAI,UAAU,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE;gBACxE,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;aACrC;SACF;;;;;;;;;IAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAE1B,OAAO,MAAM,CAAC;AAChB,CAAC;AAlED,sCAkEC"}
|
package/package.json
CHANGED