ts2famix 2.0.3 → 2.0.4
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/analyze.js +19 -9
- package/dist/analyze_functions/process_functions.js +127 -67
- package/dist/famix_functions/EntityDictionary.js +803 -356
- package/dist/famix_functions/helpers_creation.js +35 -19
- package/dist/fqn.js +384 -18
- package/dist/lib/famix/famix_repository.js +76 -2
- package/dist/lib/famix/index.js +18 -8
- package/dist/refactorer/refactor-getter-setter.js +18 -8
- package/dist/ts2famix-cli-wrapper.js +18 -8
- package/dist/ts2famix-cli.js +18 -8
- package/dist/ts2famix-tsconfig.js +18 -8
- package/doc-uml/famix-typescript-model.puml +29 -17
- package/doc-uml/famix-typescript-model.svg +1 -1
- package/eslint.config.mjs +28 -0
- package/jest.config.json +1 -1
- package/package.json +14 -10
- package/src/analyze.ts +1 -1
- package/src/analyze_functions/process_functions.ts +168 -118
- package/src/famix_functions/EntityDictionary.ts +909 -441
- package/src/famix_functions/helpers_creation.ts +23 -15
- package/src/fqn.ts +450 -50
- package/src/lib/famix/famix_repository.ts +46 -1
- package/tsconfig.json +1 -0
|
@@ -1,7 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.FamixRepository = void 0;
|
|
4
37
|
const famix_1 = require("./model/famix");
|
|
38
|
+
const Famix = __importStar(require("./model/famix"));
|
|
39
|
+
const analyze_1 = require("../../analyze");
|
|
5
40
|
/**
|
|
6
41
|
* This class is used to store all Famix elements
|
|
7
42
|
*/
|
|
@@ -49,9 +84,25 @@ class FamixRepository {
|
|
|
49
84
|
*/
|
|
50
85
|
getFamixEntityByFullyQualifiedName(fullyQualifiedName) {
|
|
51
86
|
const allEntities = Array.from(this.elements.values()).filter(e => e instanceof famix_1.NamedEntity);
|
|
52
|
-
const entity = allEntities.find(e =>
|
|
87
|
+
const entity = allEntities.find(e =>
|
|
88
|
+
// {console.log(`namedEntity: ${e.fullyQualifiedName}`);
|
|
89
|
+
// return
|
|
90
|
+
e.fullyQualifiedName === fullyQualifiedName
|
|
91
|
+
// }
|
|
92
|
+
);
|
|
53
93
|
return entity;
|
|
54
94
|
}
|
|
95
|
+
// Method to get Famix access by accessor and variable
|
|
96
|
+
getFamixAccessByAccessorAndVariable(accessor, variable) {
|
|
97
|
+
// Iterate through the list of Famix accesses to find the matching one
|
|
98
|
+
for (const access of Array.from(this.elements.values()).filter(e => e instanceof Famix.Access)) {
|
|
99
|
+
if (access.accessor === accessor && access.variable === variable) {
|
|
100
|
+
return access;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
// Return undefined if no matching access is found
|
|
104
|
+
return undefined;
|
|
105
|
+
}
|
|
55
106
|
export(arg0) {
|
|
56
107
|
if (arg0.format === "json") {
|
|
57
108
|
return this.getJSON();
|
|
@@ -182,6 +233,7 @@ class FamixRepository {
|
|
|
182
233
|
* @param element A Famix element
|
|
183
234
|
*/
|
|
184
235
|
addElement(element) {
|
|
236
|
+
analyze_1.logger.debug(`Adding Famix element ${element.constructor.name} with id ${element.id}`);
|
|
185
237
|
if (element instanceof famix_1.Class) {
|
|
186
238
|
this.famixClasses.add(element);
|
|
187
239
|
}
|
|
@@ -206,6 +258,28 @@ class FamixRepository {
|
|
|
206
258
|
this.elements.add(element);
|
|
207
259
|
element.id = this.idCounter;
|
|
208
260
|
this.idCounter++;
|
|
261
|
+
this.validateFQNs();
|
|
262
|
+
}
|
|
263
|
+
/**
|
|
264
|
+
* Validates the fully qualified names of all Famix elements
|
|
265
|
+
*/
|
|
266
|
+
validateFQNs() {
|
|
267
|
+
// make sure all elements have unique fully qualified names
|
|
268
|
+
const fqns = new Set();
|
|
269
|
+
for (const element of Array.from(this.elements.values())) {
|
|
270
|
+
// ignore everything that is not a NamedEntity
|
|
271
|
+
if (element instanceof famix_1.NamedEntity) {
|
|
272
|
+
if (element.fullyQualifiedName && fqns.has(element.fullyQualifiedName)) {
|
|
273
|
+
const theExistingElement = Array.from(this.elements.values()).find(e => e.fullyQualifiedName === element.fullyQualifiedName);
|
|
274
|
+
throw new Error(`The fully qualified name ${element.fullyQualifiedName} is not unique.\nIt exists for ${theExistingElement?.getJSON()}`);
|
|
275
|
+
}
|
|
276
|
+
const theName = element.fullyQualifiedName;
|
|
277
|
+
if (theName === undefined || theName === "") {
|
|
278
|
+
throw new Error(`The element ${element.constructor.name} with id ${element.id} has no valid fully qualified name`);
|
|
279
|
+
}
|
|
280
|
+
fqns.add(theName);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
209
283
|
}
|
|
210
284
|
/**
|
|
211
285
|
* Gets a JSON representation of the repository
|
|
@@ -221,4 +295,4 @@ class FamixRepository {
|
|
|
221
295
|
}
|
|
222
296
|
}
|
|
223
297
|
exports.FamixRepository = FamixRepository;
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFtaXhfcmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZmFtaXgvZmFtaXhfcmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx5Q0FBNEs7QUFHNUs7O0dBRUc7QUFDSCxNQUFhLGVBQWU7SUFjeEI7UUFiUSxhQUFRLEdBQUcsSUFBSSxHQUFHLEVBQW9CLENBQUMsQ0FBQyxxQkFBcUI7UUFDN0QsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBUyxDQUFDLENBQUMsb0JBQW9CO1FBQ3JELG9CQUFlLEdBQUcsSUFBSSxHQUFHLEVBQWEsQ0FBQyxDQUFDLHVCQUF1QjtRQUMvRCxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUMsQ0FBQyx1QkFBdUI7UUFDekQsaUJBQVksR0FBRyxJQUFJLEdBQUcsRUFBVSxDQUFDLENBQUMsb0JBQW9CO1FBQ3RELG1CQUFjLEdBQUcsSUFBSSxHQUFHLEVBQVksQ0FBQyxDQUFDLHNCQUFzQjtRQUM1RCxtQkFBYyxHQUFHLElBQUksR0FBRyxFQUF1QixDQUFDLENBQUMsc0JBQXNCO1FBQ3ZFLGVBQVUsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQyxDQUFDLGtCQUFrQjtRQUNqRSxjQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUMsYUFBYTtRQUM1QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQix3QkFBbUIsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQztRQUNqRSxxQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBbUMsQ0FBQyxDQUFDLGdGQUFnRjtRQUduSixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksc0JBQWMsRUFBRSxDQUFDLENBQUMsQ0FBRSw4Q0FBOEM7SUFDMUYsQ0FBQztJQUVNLHNCQUFzQixDQUFDLG1CQUF5RDtRQUNuRixJQUFJLENBQUMsbUJBQW1CLEdBQUcsbUJBQW1CLENBQUM7SUFDbkQsQ0FBQztJQUVNLHNCQUFzQjtRQUN6QixP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QUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3ZELEdBQUcsR0FBRyxHQUFHLEdBQUcsT0FBTyxDQUFDLE9BQU8sRUFBRSxHQUFHLEdBQUcsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDdkMsT0FBTyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQ3JCLENBQUM7Q0FDSjtBQTNPRCwwQ0EyT0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGYW1peEJhc2VFbGVtZW50IH0gZnJvbSBcIi4vZmFtaXhfYmFzZV9lbGVtZW50XCI7XG5pbXBvcnQgeyBDbGFzcywgSW50ZXJmYWNlLCBWYXJpYWJsZSwgTWV0aG9kLCBBcnJvd0Z1bmN0aW9uLCBGdW5jdGlvbiBhcyBGYW1peEZ1bmN0aW9uRW50aXR5LCBUeXBlLCBOYW1lZEVudGl0eSwgU2NyaXB0RW50aXR5LCBNb2R1bGUsIFNvdXJjZUxhbmd1YWdlIH0gZnJvbSBcIi4vbW9kZWwvZmFtaXhcIjtcbmltcG9ydCAqIGFzIEZhbWl4IGZyb20gXCIuL21vZGVsL2ZhbWl4XCI7XG5pbXBvcnQgeyBUU01vcnBoT2JqZWN0VHlwZSB9IGZyb20gXCIuLi8uLi9mYW1peF9mdW5jdGlvbnMvRW50aXR5RGljdGlvbmFyeVwiO1xuLyoqXG4gKiBUaGlzIGNsYXNzIGlzIHVzZWQgdG8gc3RvcmUgYWxsIEZhbWl4IGVsZW1lbnRzXG4gKi9cbmV4cG9ydCBjbGFzcyBGYW1peFJlcG9zaXRvcnkge1xuICAgIHByaXZhdGUgZWxlbWVudHMgPSBuZXcgU2V0PEZhbWl4QmFzZUVsZW1lbnQ+KCk7IC8vIEFsbCBGYW1peCBlbGVtZW50c1xuICAgIHByaXZhdGUgZmFtaXhDbGFzc2VzID0gbmV3IFNldDxDbGFzcz4oKTsgLy8gQWxsIEZhbWl4IGNsYXNzZXNcbiAgICBwcml2YXRlIGZhbWl4SW50ZXJmYWNlcyA9IG5ldyBTZXQ8SW50ZXJmYWNlPigpOyAvLyBBbGwgRmFtaXggaW50ZXJmYWNlc1xuICAgIHByaXZhdGUgZmFtaXhNb2R1bGVzID0gbmV3IFNldDxNb2R1bGU+KCk7IC8vIEFsbCBGYW1peCBuYW1lc3BhY2VzXG4gICAgcHJpdmF0ZSBmYW1peE1ldGhvZHMgPSBuZXcgU2V0PE1ldGhvZD4oKTsgLy8gQWxsIEZhbWl4IG1ldGhvZHNcbiAgICBwcml2YXRlIGZhbWl4VmFyaWFibGVzID0gbmV3IFNldDxWYXJpYWJsZT4oKTsgLy8gQWxsIEZhbWl4IHZhcmlhYmxlc1xuICAgIHByaXZhdGUgZmFtaXhGdW5jdGlvbnMgPSBuZXcgU2V0PEZhbWl4RnVuY3Rpb25FbnRpdHk+KCk7IC8vIEFsbCBGYW1peCBmdW5jdGlvbnNcbiAgICBwcml2YXRlIGZhbWl4RmlsZXMgPSBuZXcgU2V0PFNjcmlwdEVudGl0eSB8IE1vZHVsZT4oKTsgLy8gQWxsIEZhbWl4IGZpbGVzXG4gICAgcHJpdmF0ZSBpZENvdW50ZXIgPSAxOyAvLyBJZCBjb3VudGVyXG4gICAgcHJpdmF0ZSBhYnNvbHV0ZVBhdGg6IHN0cmluZyA9IFwiXCI7XG4gICAgcHJpdmF0ZSBmbXhFbGVtZW50T2JqZWN0TWFwID0gbmV3IE1hcDxGYW1peC5FbnRpdHksIFRTTW9ycGhPYmplY3RUeXBlPigpO1xuICAgIHByaXZhdGUgdHNNb3JwaE9iamVjdE1hcCA9IG5ldyBNYXA8VFNNb3JwaE9iamVjdFR5cGUsIEZhbWl4LkVudGl0eT4oKTsgLy8gVE9ETzogYWRkIHRoaXMgbWFwIHRvIGhhdmUgdHdvLXdheSBtYXBwaW5nIGJldHdlZW4gRmFtaXggYW5kIFRTIE1vcnBoIG9iamVjdHNcbiAgICBcbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5hZGRFbGVtZW50KG5ldyBTb3VyY2VMYW5ndWFnZSgpKTsgIC8vIGFkZCB0aGUgc291cmNlIGxhbmd1YWdlIGVudGl0eSAoVHlwZVNjcmlwdClcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0Rm14RWxlbWVudE9iamVjdE1hcChmbXhFbGVtZW50T2JqZWN0TWFwOiBNYXA8RmFtaXguRW50aXR5LCBUU01vcnBoT2JqZWN0VHlwZT4pIHtcbiAgICAgICAgdGhpcy5mbXhFbGVtZW50T2JqZWN0TWFwID0gZm14RWxlbWVudE9iamVjdE1hcDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0Rm14RWxlbWVudE9iamVjdE1hcCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm14RWxlbWVudE9iamVjdE1hcDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0QWJzb2x1dGVQYXRoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmFic29sdXRlUGF0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0QWJzb2x1dGVQYXRoKHBhdGg6IHN0cmluZykge1xuICAgICAgICB0aGlzLmFic29sdXRlUGF0aCA9IHBhdGg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIEZhbWl4IGVudGl0eSBieSBpZFxuICAgICAqIEBwYXJhbSBpZCBBbiBpZCBvZiBhIEZhbWl4IGVudGl0eVxuICAgICAqIEByZXR1cm5zIFRoZSBGYW1peCBlbnRpdHkgY29ycmVzcG9uZGluZyB0byB0aGUgaWQgb3IgdW5kZWZpbmVkIGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0RmFtaXhFbnRpdHlCeUlkKGlkOiBudW1iZXIpOiBGYW1peEJhc2VFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgZW50aXR5ID0gQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnZhbHVlcygpKS5maW5kKGUgPT4gZS5pZCA9PT0gaWQpO1xuICAgICAgICByZXR1cm4gZW50aXR5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBGYW1peCBlbnRpdHkgYnkgZnVsbHkgcXVhbGlmaWVkIG5hbWVcbiAgICAgKiBAcGFyYW0gZnVsbHlRdWFsaWZpZWROYW1lIEEgZnVsbHkgcXVhbGlmaWVkIG5hbWVcbiAgICAgKiBAcmV0dXJucyBUaGUgRmFtaXggZW50aXR5IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGZ1bGx5IHF1YWxpZmllZCBuYW1lIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAgICovXG4gICAgcHVibGljIGdldEZhbWl4RW50aXR5QnlGdWxseVF1YWxpZmllZE5hbWUoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBGYW1peEJhc2VFbGVtZW50IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgYWxsRW50aXRpZXMgPSBBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMudmFsdWVzKCkpLmZpbHRlcihlID0+IGUgaW5zdGFuY2VvZiBOYW1lZEVudGl0eSkgYXMgQXJyYXk8TmFtZWRFbnRpdHk+O1xuICAgICAgICBjb25zdCBlbnRpdHkgPSBhbGxFbnRpdGllcy5maW5kKGUgPT4gZS5mdWxseVF1YWxpZmllZE5hbWUgPT09IGZ1bGx5UXVhbGlmaWVkTmFtZSk7XG4gICAgICAgIHJldHVybiBlbnRpdHk7XG4gICAgfVxuXG4gICAgZXhwb3J0KGFyZzA6IHsgZm9ybWF0OiBzdHJpbmc7IH0pIHtcbiAgICAgICAgaWYgKGFyZzAuZm9ybWF0ID09PSBcImpzb25cIikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0SlNPTigpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiVW5zdXBwb3J0ZWQgZm9ybWF0XCIpO1xuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAvLyBPbmx5IGZvciB0ZXN0c1xuXG4gICAgLyoqXG4gICAgICogR2V0cyBhbGwgRmFtaXggZW50aXRpZXNcbiAgICAgKiBAcmV0dXJucyBBbGwgRmFtaXggZW50aXRpZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgX2dldEFsbEVudGl0aWVzKCk6IFNldDxGYW1peEJhc2VFbGVtZW50PiB7XG4gICAgICAgIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20odGhpcy5lbGVtZW50cy52YWx1ZXMoKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIEZhbWl4IGVudGl0aWVzIG9mIGEgZ2l2ZW4gdHlwZVxuICAgICAqIEBwYXJhbSB0aGVUeXBlIEEgdHlwZSBvZiBGYW1peCBlbnRpdHlcbiAgICAgKiBAcmV0dXJucyBBbGwgRmFtaXggZW50aXRpZXMgb2YgdGhlIGdpdmVuIHR5cGVcbiAgICAgKi9cbiAgICBwdWJsaWMgX2dldEFsbEVudGl0aWVzV2l0aFR5cGUodGhlVHlwZTogc3RyaW5nKTogU2V0PEZhbWl4QmFzZUVsZW1lbnQ+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTZXQoQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnZhbHVlcygpKS5maWx0ZXIoZSA9PiAoZSBhcyBGYW1peEJhc2VFbGVtZW50KS5jb25zdHJ1Y3Rvci5uYW1lID09PSB0aGVUeXBlKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIEZhbWl4IGNsYXNzIGJ5IG5hbWVcbiAgICAgKiBAcGFyYW0gbmFtZSBBIGNsYXNzIG5hbWVcbiAgICAgKiBAcmV0dXJucyBUaGUgRmFtaXggY2xhc3MgY29ycmVzcG9uZGluZyB0byB0aGUgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBfZ2V0RmFtaXhDbGFzcyhmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IENsYXNzIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5mYW1peENsYXNzZXMudmFsdWVzKCkpLmZpbmQobnMgPT4gbnMuZnVsbHlRdWFsaWZpZWROYW1lID09PSBmdWxseVF1YWxpZmllZE5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBGYW1peCBpbnRlcmZhY2UgYnkgbmFtZVxuICAgICAqIEBwYXJhbSBuYW1lIEFuIGludGVyZmFjZSBuYW1lXG4gICAgICogQHJldHVybnMgVGhlIEZhbWl4IGludGVyZmFjZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBuYW1lIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAgICovXG4gICAgcHVibGljIF9nZXRGYW1peEludGVyZmFjZShmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IEludGVyZmFjZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmFtaXhJbnRlcmZhY2VzLnZhbHVlcygpKS5maW5kKG5zID0+IG5zLmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgRmFtaXggbWV0aG9kIGJ5IG5hbWVcbiAgICAgKiBAcGFyYW0gbmFtZSBBIG1ldGhvZCBuYW1lXG4gICAgICogQHJldHVybnMgVGhlIEZhbWl4IG1ldGhvZCBjb3JyZXNwb25kaW5nIHRvIHRoZSBuYW1lIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAgICovXG4gICAgcHVibGljIF9nZXRGYW1peE1ldGhvZChmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IE1ldGhvZCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmFtaXhNZXRob2RzLnZhbHVlcygpKS5maW5kKG5zID0+IG5zLmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgRmFtaXggZnVuY3Rpb24gYnkgbmFtZVxuICAgICAqIEBwYXJhbSBuYW1lIEEgZnVuY3Rpb24gbmFtZVxuICAgICAqIEByZXR1cm5zIFRoZSBGYW1peCBmdW5jdGlvbiBjb3JyZXNwb25kaW5nIHRvIHRoZSBuYW1lIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAgICovXG4gICAgcHVibGljIF9nZXRGYW1peEZ1bmN0aW9uKGZ1bGx5UXVhbGlmaWVkTmFtZTogc3RyaW5nKTogRmFtaXhGdW5jdGlvbkVudGl0eSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmFtaXhGdW5jdGlvbnMudmFsdWVzKCkpLmZpbmQobnMgPT4gbnMuZnVsbHlRdWFsaWZpZWROYW1lID09PSBmdWxseVF1YWxpZmllZE5hbWUpO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIEZhbWl4IHZhcmlhYmxlIGJ5IG5hbWVcbiAgICAgKiBAcGFyYW0gbmFtZSBBIHZhcmlhYmxlIG5hbWVcbiAgICAgKiBAcmV0dXJucyBUaGUgRmFtaXggdmFyaWFibGUgY29ycmVzcG9uZGluZyB0byB0aGUgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBfZ2V0RmFtaXhWYXJpYWJsZShmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IFZhcmlhYmxlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5mYW1peFZhcmlhYmxlcy52YWx1ZXMoKSkuZmluZCh2ID0+IHYuZnVsbHlRdWFsaWZpZWROYW1lID09PSBmdWxseVF1YWxpZmllZE5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBGYW1peCBuYW1lc3BhY2UgYnkgbmFtZVxuICAgICAqIEBwYXJhbSBuYW1lIEEgbmFtZXNwYWNlIG5hbWVcbiAgICAgKiBAcmV0dXJucyBUaGUgRmFtaXggbmFtZXNwYWNlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG5hbWUgb3IgdW5kZWZpbmVkIGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICAgKi9cbiAgICBwdWJsaWMgX2dldEZhbWl4TW9kdWxlKGZ1bGx5UXVhbGlmaWVkTmFtZTogc3RyaW5nKTogTW9kdWxlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5mYW1peE1vZHVsZXMudmFsdWVzKCkpLmZpbmQobnMgPT4gbnMuZnVsbHlRdWFsaWZpZWROYW1lID09PSBmdWxseVF1YWxpZmllZE5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIEZhbWl4IG5hbWVzcGFjZXNcbiAgICAgKiBAcmV0dXJucyBBbGwgRmFtaXggbmFtZXNwYWNlc1xuICAgICAqL1xuICAgIHB1YmxpYyBfZ2V0RmFtaXhNb2R1bGVzKCk6IFNldDxNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTZXQoQXJyYXkuZnJvbSh0aGlzLmZhbWl4TW9kdWxlcy52YWx1ZXMoKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBGYW1peCBmaWxlIGJ5IG5hbWVcbiAgICAgKiBAcGFyYW0gbmFtZSBBIGZpbGUgbmFtZVxuICAgICAqIEByZXR1cm5zIFRoZSBGYW1peCBmaWxlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG5hbWUgb3IgdW5kZWZpbmVkIGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICAgKi9cbiAgICBwdWJsaWMgX2dldEZhbWl4RmlsZShmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IFNjcmlwdEVudGl0eSB8IE1vZHVsZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmFtaXhGaWxlcy52YWx1ZXMoKSkuZmluZChucyA9PiBucy5uYW1lID09PSBmdWxseVF1YWxpZmllZE5hbWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIEZhbWl4IGZpbGVzXG4gICAgICogQHJldHVybnMgQWxsIEZhbWl4IGZpbGVzXG4gICAgICovXG4gICAgcHVibGljIF9nZXRGYW1peEZpbGVzKCk6IFNldDxTY3JpcHRFbnRpdHkgfCBNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIG5ldyBTZXQoQXJyYXkuZnJvbSh0aGlzLmZhbWl4RmlsZXMudmFsdWVzKCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBtZXRob2QgbmFtZXMgYXMgYSBzZXQgZnJvbSBhIGNsYXNzXG4gICAgICogQHBhcmFtIGNsYXNzTmFtZSBBIGNsYXNzIG5hbWVcbiAgICAgKiBAcmV0dXJucyBUaGUgc2V0IG9mIGNsYXNzIFwiY2xhc3NOYW1lXCIgbWV0aG9kIG5hbWVzXG4gICAgICovXG4gICAgcHVibGljIF9tZXRob2ROYW1lc0FzU2V0RnJvbUNsYXNzKGNsYXNzTmFtZTogc3RyaW5nKTogU2V0PHN0cmluZz4ge1xuICAgICAgICBjb25zdCB0aGVDbGFzcyA9IHRoaXMuX2dldEZhbWl4Q2xhc3MoY2xhc3NOYW1lKSBhcyBDbGFzcztcbiAgICAgICAgcmV0dXJuIG5ldyBTZXQoQXJyYXkuZnJvbSh0aGVDbGFzcy5tZXRob2RzKS5tYXAobSA9PiBtLm5hbWUpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBtZXRob2QgcGFyZW50cyBhcyBhIHNldCBmcm9tIGEgY2xhc3NcbiAgICAgKiBAcGFyYW0gY2xhc3NOYW1lIEEgY2xhc3MgbmFtZVxuICAgICAqIEByZXR1cm5zIFRoZSBzZXQgb2YgY2xhc3MgXCJjbGFzc05hbWVcIiBtZXRob2QgcGFyZW50c1xuICAgICAqL1xuICAgIHB1YmxpYyBfbWV0aG9kUGFyZW50c0FzU2V0RnJvbUNsYXNzKGNsYXNzTmFtZTogc3RyaW5nKTogU2V0PFR5cGU+IHtcbiAgICAgICAgY29uc3QgdGhlQ2xhc3MgPSB0aGlzLl9nZXRGYW1peENsYXNzKGNsYXNzTmFtZSkgYXMgQ2xhc3M7XG4gICAgICAgIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20odGhlQ2xhc3MubWV0aG9kcykubWFwKG0gPT4gbS5wYXJlbnRFbnRpdHkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBtYXAgb2YgRmFtaXggZWxlbWVudCBpZHMgYW5kIHRoZWlyIEZhbWl4IGVsZW1lbnQgZnJvbSBhIEpTT04gbW9kZWxcbiAgICAgKiBAcGFyYW0gbW9kZWwgQSBKU09OIG1vZGVsXG4gICAgICogQHJldHVybnMgVGhlIG1hcCBvZiBGYW1peCBlbGVtZW50IGlkcyBhbmQgdGhlaXIgRmFtaXggZWxlbWVudCBmcm9tIHRoZSBKU09OIG1vZGVsXG4gICAgICovXG4gICAgcHVibGljIF9pbml0TWFwRnJvbU1vZGVsKG1vZGVsOiBzdHJpbmcpOiBNYXA8bnVtYmVyLCB1bmtub3duPiB7XG4gICAgICAgIGNvbnN0IHBhcnNlZE1vZGVsOiBBcnJheTxGYW1peEJhc2VFbGVtZW50PiA9IEpTT04ucGFyc2UobW9kZWwpO1xuICAgICAgICBjb25zdCBpZFRvRWxlbWVudE1hcDogTWFwPG51bWJlciwgdW5rbm93bj4gPSBuZXcgTWFwKCk7XG4gICAgICAgIHBhcnNlZE1vZGVsLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICAgICAgICBpZFRvRWxlbWVudE1hcC5zZXQoZWxlbWVudC5pZCwgZWxlbWVudCk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gaWRUb0VsZW1lbnRNYXA7XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBBZGRzIGEgRmFtaXggZWxlbWVudCB0byB0aGUgcmVwb3NpdG9yeVxuICAgICAqIEBwYXJhbSBlbGVtZW50IEEgRmFtaXggZWxlbWVudFxuICAgICAqL1xuICAgIHB1YmxpYyBhZGRFbGVtZW50KGVsZW1lbnQ6IEZhbWl4QmFzZUVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBDbGFzcykge1xuICAgICAgICAgICAgdGhpcy5mYW1peENsYXNzZXMuYWRkKGVsZW1lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBJbnRlcmZhY2UpIHtcbiAgICAgICAgICAgIHRoaXMuZmFtaXhJbnRlcmZhY2VzLmFkZChlbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50IGluc3RhbmNlb2YgTW9kdWxlKSB7XG4gICAgICAgICAgICB0aGlzLmZhbWl4TW9kdWxlcy5hZGQoZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIFZhcmlhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmZhbWl4VmFyaWFibGVzLmFkZChlbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50IGluc3RhbmNlb2YgTWV0aG9kKSB7XG4gICAgICAgICAgICB0aGlzLmZhbWl4TWV0aG9kcy5hZGQoZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIEZhbWl4RnVuY3Rpb25FbnRpdHkgfHwgZWxlbWVudCBpbnN0YW5jZW9mIEFycm93RnVuY3Rpb24pIHtcbiAgICAgICAgICAgIHRoaXMuZmFtaXhGdW5jdGlvbnMuYWRkKGVsZW1lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBTY3JpcHRFbnRpdHkgfHwgZWxlbWVudCBpbnN0YW5jZW9mIE1vZHVsZSkge1xuICAgICAgICAgICAgdGhpcy5mYW1peEZpbGVzLmFkZChlbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVsZW1lbnRzLmFkZChlbGVtZW50KTtcbiAgICAgICAgZWxlbWVudC5pZCA9IHRoaXMuaWRDb3VudGVyO1xuICAgICAgICB0aGlzLmlkQ291bnRlcisrO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSByZXBvc2l0b3J5XG4gICAgICogQHJldHVybnMgQSBKU09OIHJlcHJlc2VudGF0aW9uIG9mIHRoZSByZXBvc2l0b3J5XG4gICAgICovXG4gICAgcHVibGljIGdldEpTT04oKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHJldCA9IFwiW1wiO1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnZhbHVlcygpKSkge1xuICAgICAgICAgICAgcmV0ID0gcmV0ICsgZWxlbWVudC5nZXRKU09OKCkgKyBcIixcIjtcbiAgICAgICAgfVxuICAgICAgICByZXQgPSByZXQuc3Vic3RyaW5nKDAsIHJldC5sZW5ndGggLSAxKTtcbiAgICAgICAgcmV0dXJuIHJldCArIFwiXVwiO1xuICAgIH1cbn1cbiJdfQ==
|
|
298
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFtaXhfcmVwb3NpdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvZmFtaXgvZmFtaXhfcmVwb3NpdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSx5Q0FBNEs7QUFDNUsscURBQXVDO0FBRXZDLDJDQUF1QztBQUV2Qzs7R0FFRztBQUNILE1BQWEsZUFBZTtJQWN4QjtRQWJRLGFBQVEsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQyxDQUFDLHFCQUFxQjtRQUM3RCxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFTLENBQUMsQ0FBQyxvQkFBb0I7UUFDckQsb0JBQWUsR0FBRyxJQUFJLEdBQUcsRUFBYSxDQUFDLENBQUMsdUJBQXVCO1FBQy9ELGlCQUFZLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQyxDQUFDLHVCQUF1QjtRQUN6RCxpQkFBWSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUMsQ0FBQyxvQkFBb0I7UUFDdEQsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBWSxDQUFDLENBQUMsc0JBQXNCO1FBQzVELG1CQUFjLEdBQUcsSUFBSSxHQUFHLEVBQXVCLENBQUMsQ0FBQyxzQkFBc0I7UUFDdkUsZUFBVSxHQUFHLElBQUksR0FBRyxFQUF5QixDQUFDLENBQUMsa0JBQWtCO1FBQ2pFLGNBQVMsR0FBRyxDQUFDLENBQUMsQ0FBQyxhQUFhO1FBQzVCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLHdCQUFtQixHQUFHLElBQUksR0FBRyxFQUFtQyxDQUFDO1FBQ2pFLHFCQUFnQixHQUFHLElBQUksR0FBRyxFQUFtQyxDQUFDLENBQUMsZ0ZBQWdGO1FBR25KLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxzQkFBYyxFQUFFLENBQUMsQ0FBQyxDQUFFLDhDQUE4QztJQUMxRixDQUFDO0lBRU0sc0JBQXNCLENBQUMsbUJBQXlEO1FBQ25GLElBQUks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LENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUUsQ0FBaUIsQ0FBQyxrQkFBa0IsS0FBSyxPQUFPLENBQUMsa0JBQWtCLENBQUMsQ0FBQztvQkFDOUksTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsT0FBTyxDQUFDLGtCQUFrQixrQ0FBa0Msa0JBQWtCLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUM3SSxDQUFDO2dCQUNELE1BQU0sT0FBTyxHQUFJLE9BQXVCLENBQUMsa0JBQWtCLENBQUM7Z0JBQzVELElBQUksT0FBTyxLQUFLLFNBQVMsSUFBSSxPQUFPLEtBQUssRUFBRSxFQUFFLENBQUM7b0JBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksWUFBWSxPQUFPLENBQUMsRUFBRSxvQ0FBb0MsQ0FBQyxDQUFDO2dCQUN2SCxDQUFDO2dCQUNELElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDdEIsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBR0Q7OztPQUdHO0lBQ0ksT0FBTztRQUNWLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQztRQUNkLEtBQUssTUFBTSxPQUFPLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN2RCxHQUFHLEdBQUcsR0FBRyxHQUFHLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxHQUFHLENBQUM7UUFDeEMsQ0FBQztRQUNELEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZDLE9BQU8sR0FBRyxHQUFHLEdBQUcsQ0FBQztJQUNyQixDQUFDO0NBQ0o7QUF0UkQsMENBc1JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRmFtaXhCYXNlRWxlbWVudCB9IGZyb20gXCIuL2ZhbWl4X2Jhc2VfZWxlbWVudFwiO1xuaW1wb3J0IHsgQ2xhc3MsIEludGVyZmFjZSwgVmFyaWFibGUsIE1ldGhvZCwgQXJyb3dGdW5jdGlvbiwgRnVuY3Rpb24gYXMgRmFtaXhGdW5jdGlvbkVudGl0eSwgVHlwZSwgTmFtZWRFbnRpdHksIFNjcmlwdEVudGl0eSwgTW9kdWxlLCBTb3VyY2VMYW5ndWFnZSB9IGZyb20gXCIuL21vZGVsL2ZhbWl4XCI7XG5pbXBvcnQgKiBhcyBGYW1peCBmcm9tIFwiLi9tb2RlbC9mYW1peFwiO1xuaW1wb3J0IHsgVFNNb3JwaE9iamVjdFR5cGUgfSBmcm9tIFwiLi4vLi4vZmFtaXhfZnVuY3Rpb25zL0VudGl0eURpY3Rpb25hcnlcIjtcbmltcG9ydCB7IGxvZ2dlciB9IGZyb20gXCIuLi8uLi9hbmFseXplXCI7XG5cbi8qKlxuICogVGhpcyBjbGFzcyBpcyB1c2VkIHRvIHN0b3JlIGFsbCBGYW1peCBlbGVtZW50c1xuICovXG5leHBvcnQgY2xhc3MgRmFtaXhSZXBvc2l0b3J5IHtcbiAgICBwcml2YXRlIGVsZW1lbnRzID0gbmV3IFNldDxGYW1peEJhc2VFbGVtZW50PigpOyAvLyBBbGwgRmFtaXggZWxlbWVudHNcbiAgICBwcml2YXRlIGZhbWl4Q2xhc3NlcyA9IG5ldyBTZXQ8Q2xhc3M+KCk7IC8vIEFsbCBGYW1peCBjbGFzc2VzXG4gICAgcHJpdmF0ZSBmYW1peEludGVyZmFjZXMgPSBuZXcgU2V0PEludGVyZmFjZT4oKTsgLy8gQWxsIEZhbWl4IGludGVyZmFjZXNcbiAgICBwcml2YXRlIGZhbWl4TW9kdWxlcyA9IG5ldyBTZXQ8TW9kdWxlPigpOyAvLyBBbGwgRmFtaXggbmFtZXNwYWNlc1xuICAgIHByaXZhdGUgZmFtaXhNZXRob2RzID0gbmV3IFNldDxNZXRob2Q+KCk7IC8vIEFsbCBGYW1peCBtZXRob2RzXG4gICAgcHJpdmF0ZSBmYW1peFZhcmlhYmxlcyA9IG5ldyBTZXQ8VmFyaWFibGU+KCk7IC8vIEFsbCBGYW1peCB2YXJpYWJsZXNcbiAgICBwcml2YXRlIGZhbWl4RnVuY3Rpb25zID0gbmV3IFNldDxGYW1peEZ1bmN0aW9uRW50aXR5PigpOyAvLyBBbGwgRmFtaXggZnVuY3Rpb25zXG4gICAgcHJpdmF0ZSBmYW1peEZpbGVzID0gbmV3IFNldDxTY3JpcHRFbnRpdHkgfCBNb2R1bGU+KCk7IC8vIEFsbCBGYW1peCBmaWxlc1xuICAgIHByaXZhdGUgaWRDb3VudGVyID0gMTsgLy8gSWQgY291bnRlclxuICAgIHByaXZhdGUgYWJzb2x1dGVQYXRoOiBzdHJpbmcgPSBcIlwiO1xuICAgIHByaXZhdGUgZm14RWxlbWVudE9iamVjdE1hcCA9IG5ldyBNYXA8RmFtaXguRW50aXR5LCBUU01vcnBoT2JqZWN0VHlwZT4oKTtcbiAgICBwcml2YXRlIHRzTW9ycGhPYmplY3RNYXAgPSBuZXcgTWFwPFRTTW9ycGhPYmplY3RUeXBlLCBGYW1peC5FbnRpdHk+KCk7IC8vIFRPRE86IGFkZCB0aGlzIG1hcCB0byBoYXZlIHR3by13YXkgbWFwcGluZyBiZXR3ZWVuIEZhbWl4IGFuZCBUUyBNb3JwaCBvYmplY3RzXG4gICAgXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuYWRkRWxlbWVudChuZXcgU291cmNlTGFuZ3VhZ2UoKSk7ICAvLyBhZGQgdGhlIHNvdXJjZSBsYW5ndWFnZSBlbnRpdHkgKFR5cGVTY3JpcHQpXG4gICAgfVxuXG4gICAgcHVibGljIHNldEZteEVsZW1lbnRPYmplY3RNYXAoZm14RWxlbWVudE9iamVjdE1hcDogTWFwPEZhbWl4LkVudGl0eSwgVFNNb3JwaE9iamVjdFR5cGU+KSB7XG4gICAgICAgIHRoaXMuZm14RWxlbWVudE9iamVjdE1hcCA9IGZteEVsZW1lbnRPYmplY3RNYXA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZteEVsZW1lbnRPYmplY3RNYXAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZteEVsZW1lbnRPYmplY3RNYXA7XG4gICAgfVxuXG4gICAgcHVibGljIGdldEFic29sdXRlUGF0aCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5hYnNvbHV0ZVBhdGg7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEFic29sdXRlUGF0aChwYXRoOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5hYnNvbHV0ZVBhdGggPSBwYXRoO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBGYW1peCBlbnRpdHkgYnkgaWRcbiAgICAgKiBAcGFyYW0gaWQgQW4gaWQgb2YgYSBGYW1peCBlbnRpdHlcbiAgICAgKiBAcmV0dXJucyBUaGUgRmFtaXggZW50aXR5IGNvcnJlc3BvbmRpbmcgdG8gdGhlIGlkIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAgICovXG4gICAgcHVibGljIGdldEZhbWl4RW50aXR5QnlJZChpZDogbnVtYmVyKTogRmFtaXhCYXNlRWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGVudGl0eSA9IEFycmF5LmZyb20odGhpcy5lbGVtZW50cy52YWx1ZXMoKSkuZmluZChlID0+IGUuaWQgPT09IGlkKTtcbiAgICAgICAgcmV0dXJuIGVudGl0eTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgRmFtaXggZW50aXR5IGJ5IGZ1bGx5IHF1YWxpZmllZCBuYW1lXG4gICAgICogQHBhcmFtIGZ1bGx5UXVhbGlmaWVkTmFtZSBBIGZ1bGx5IHF1YWxpZmllZCBuYW1lXG4gICAgICogQHJldHVybnMgVGhlIEZhbWl4IGVudGl0eSBjb3JyZXNwb25kaW5nIHRvIHRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRGYW1peEVudGl0eUJ5RnVsbHlRdWFsaWZpZWROYW1lKGZ1bGx5UXVhbGlmaWVkTmFtZTogc3RyaW5nKTogRmFtaXhCYXNlRWxlbWVudCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGNvbnN0IGFsbEVudGl0aWVzID0gQXJyYXkuZnJvbSh0aGlzLmVsZW1lbnRzLnZhbHVlcygpKS5maWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmFtZWRFbnRpdHkpIGFzIEFycmF5PE5hbWVkRW50aXR5PjtcbiAgICAgICAgY29uc3QgZW50aXR5ID0gYWxsRW50aXRpZXMuZmluZChlID0+IFxuICAgICAgICAgICAgLy8ge2NvbnNvbGUubG9nKGBuYW1lZEVudGl0eTogJHtlLmZ1bGx5UXVhbGlmaWVkTmFtZX1gKTsgXG4gICAgICAgICAgICAvLyByZXR1cm4gXG4gICAgICAgICAgICBlLmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lXG4gICAgICAgIC8vIH1cbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIGVudGl0eTtcbiAgICB9XG5cbiAgICAvLyBNZXRob2QgdG8gZ2V0IEZhbWl4IGFjY2VzcyBieSBhY2Nlc3NvciBhbmQgdmFyaWFibGVcbiAgICBwdWJsaWMgZ2V0RmFtaXhBY2Nlc3NCeUFjY2Vzc29yQW5kVmFyaWFibGUoYWNjZXNzb3I6IEZhbWl4LkNvbnRhaW5lckVudGl0eSwgdmFyaWFibGU6IEZhbWl4LlN0cnVjdHVyYWxFbnRpdHkpOiBGYW1peC5BY2Nlc3MgfCB1bmRlZmluZWQge1xuICAgICAgICAvLyBJdGVyYXRlIHRocm91Z2ggdGhlIGxpc3Qgb2YgRmFtaXggYWNjZXNzZXMgdG8gZmluZCB0aGUgbWF0Y2hpbmcgb25lXG4gICAgICAgIGZvciAoY29uc3QgYWNjZXNzIG9mIEFycmF5LmZyb20odGhpcy5lbGVtZW50cy52YWx1ZXMoKSkuZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIEZhbWl4LkFjY2VzcykgYXMgQXJyYXk8RmFtaXguQWNjZXNzPikge1xuICAgICAgICAgICAgaWYgKGFjY2Vzcy5hY2Nlc3NvciA9PT0gYWNjZXNzb3IgJiYgYWNjZXNzLnZhcmlhYmxlID09PSB2YXJpYWJsZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhY2Nlc3M7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgLy8gUmV0dXJuIHVuZGVmaW5lZCBpZiBubyBtYXRjaGluZyBhY2Nlc3MgaXMgZm91bmRcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cblxuICAgIGV4cG9ydChhcmcwOiB7IGZvcm1hdDogc3RyaW5nOyB9KSB7XG4gICAgICAgIGlmIChhcmcwLmZvcm1hdCA9PT0gXCJqc29uXCIpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdldEpTT04oKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcIlVuc3VwcG9ydGVkIGZvcm1hdFwiKTtcbiAgICAgICAgfVxuICAgIH1cblxuXG4gICAgLy8gT25seSBmb3IgdGVzdHNcblxuICAgIC8qKlxuICAgICAqIEdldHMgYWxsIEZhbWl4IGVudGl0aWVzXG4gICAgICogQHJldHVybnMgQWxsIEZhbWl4IGVudGl0aWVzXG4gICAgICovXG4gICAgcHVibGljIF9nZXRBbGxFbnRpdGllcygpOiBTZXQ8RmFtaXhCYXNlRWxlbWVudD4ge1xuICAgICAgICByZXR1cm4gbmV3IFNldChBcnJheS5mcm9tKHRoaXMuZWxlbWVudHMudmFsdWVzKCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBGYW1peCBlbnRpdGllcyBvZiBhIGdpdmVuIHR5cGVcbiAgICAgKiBAcGFyYW0gdGhlVHlwZSBBIHR5cGUgb2YgRmFtaXggZW50aXR5XG4gICAgICogQHJldHVybnMgQWxsIEZhbWl4IGVudGl0aWVzIG9mIHRoZSBnaXZlbiB0eXBlXG4gICAgICovXG4gICAgcHVibGljIF9nZXRBbGxFbnRpdGllc1dpdGhUeXBlKHRoZVR5cGU6IHN0cmluZyk6IFNldDxGYW1peEJhc2VFbGVtZW50PiB7XG4gICAgICAgIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20odGhpcy5lbGVtZW50cy52YWx1ZXMoKSkuZmlsdGVyKGUgPT4gKGUgYXMgRmFtaXhCYXNlRWxlbWVudCkuY29uc3RydWN0b3IubmFtZSA9PT0gdGhlVHlwZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBGYW1peCBjbGFzcyBieSBuYW1lXG4gICAgICogQHBhcmFtIG5hbWUgQSBjbGFzcyBuYW1lXG4gICAgICogQHJldHVybnMgVGhlIEZhbWl4IGNsYXNzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG5hbWUgb3IgdW5kZWZpbmVkIGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICAgKi9cbiAgICBwdWJsaWMgX2dldEZhbWl4Q2xhc3MoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBDbGFzcyB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmFtaXhDbGFzc2VzLnZhbHVlcygpKS5maW5kKG5zID0+IG5zLmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgRmFtaXggaW50ZXJmYWNlIGJ5IG5hbWVcbiAgICAgKiBAcGFyYW0gbmFtZSBBbiBpbnRlcmZhY2UgbmFtZVxuICAgICAqIEByZXR1cm5zIFRoZSBGYW1peCBpbnRlcmZhY2UgY29ycmVzcG9uZGluZyB0byB0aGUgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBfZ2V0RmFtaXhJbnRlcmZhY2UoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBJbnRlcmZhY2UgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZhbWl4SW50ZXJmYWNlcy52YWx1ZXMoKSkuZmluZChucyA9PiBucy5mdWxseVF1YWxpZmllZE5hbWUgPT09IGZ1bGx5UXVhbGlmaWVkTmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIEZhbWl4IG1ldGhvZCBieSBuYW1lXG4gICAgICogQHBhcmFtIG5hbWUgQSBtZXRob2QgbmFtZVxuICAgICAqIEByZXR1cm5zIFRoZSBGYW1peCBtZXRob2QgY29ycmVzcG9uZGluZyB0byB0aGUgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBfZ2V0RmFtaXhNZXRob2QoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBNZXRob2QgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZhbWl4TWV0aG9kcy52YWx1ZXMoKSkuZmluZChucyA9PiBucy5mdWxseVF1YWxpZmllZE5hbWUgPT09IGZ1bGx5UXVhbGlmaWVkTmFtZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhIEZhbWl4IGZ1bmN0aW9uIGJ5IG5hbWVcbiAgICAgKiBAcGFyYW0gbmFtZSBBIGZ1bmN0aW9uIG5hbWVcbiAgICAgKiBAcmV0dXJucyBUaGUgRmFtaXggZnVuY3Rpb24gY29ycmVzcG9uZGluZyB0byB0aGUgbmFtZSBvciB1bmRlZmluZWQgaWYgaXQgZG9lc24ndCBleGlzdFxuICAgICAqL1xuICAgIHB1YmxpYyBfZ2V0RmFtaXhGdW5jdGlvbihmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IEZhbWl4RnVuY3Rpb25FbnRpdHkgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZhbWl4RnVuY3Rpb25zLnZhbHVlcygpKS5maW5kKG5zID0+IG5zLmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcbiAgICB9XG5cblxuICAgIC8qKlxuICAgICAqIEdldHMgYSBGYW1peCB2YXJpYWJsZSBieSBuYW1lXG4gICAgICogQHBhcmFtIG5hbWUgQSB2YXJpYWJsZSBuYW1lXG4gICAgICogQHJldHVybnMgVGhlIEZhbWl4IHZhcmlhYmxlIGNvcnJlc3BvbmRpbmcgdG8gdGhlIG5hbWUgb3IgdW5kZWZpbmVkIGlmIGl0IGRvZXNuJ3QgZXhpc3RcbiAgICAgKi9cbiAgICBwdWJsaWMgX2dldEZhbWl4VmFyaWFibGUoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBWYXJpYWJsZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmFtaXhWYXJpYWJsZXMudmFsdWVzKCkpLmZpbmQodiA9PiB2LmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgRmFtaXggbmFtZXNwYWNlIGJ5IG5hbWVcbiAgICAgKiBAcGFyYW0gbmFtZSBBIG5hbWVzcGFjZSBuYW1lXG4gICAgICogQHJldHVybnMgVGhlIEZhbWl4IG5hbWVzcGFjZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBuYW1lIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAgICovXG4gICAgcHVibGljIF9nZXRGYW1peE1vZHVsZShmdWxseVF1YWxpZmllZE5hbWU6IHN0cmluZyk6IE1vZHVsZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZmFtaXhNb2R1bGVzLnZhbHVlcygpKS5maW5kKG5zID0+IG5zLmZ1bGx5UXVhbGlmaWVkTmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBGYW1peCBuYW1lc3BhY2VzXG4gICAgICogQHJldHVybnMgQWxsIEZhbWl4IG5hbWVzcGFjZXNcbiAgICAgKi9cbiAgICBwdWJsaWMgX2dldEZhbWl4TW9kdWxlcygpOiBTZXQ8TW9kdWxlPiB7XG4gICAgICAgIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20odGhpcy5mYW1peE1vZHVsZXMudmFsdWVzKCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgRmFtaXggZmlsZSBieSBuYW1lXG4gICAgICogQHBhcmFtIG5hbWUgQSBmaWxlIG5hbWVcbiAgICAgKiBAcmV0dXJucyBUaGUgRmFtaXggZmlsZSBjb3JyZXNwb25kaW5nIHRvIHRoZSBuYW1lIG9yIHVuZGVmaW5lZCBpZiBpdCBkb2Vzbid0IGV4aXN0XG4gICAgICovXG4gICAgcHVibGljIF9nZXRGYW1peEZpbGUoZnVsbHlRdWFsaWZpZWROYW1lOiBzdHJpbmcpOiBTY3JpcHRFbnRpdHkgfCBNb2R1bGUgfCB1bmRlZmluZWQge1xuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmZhbWl4RmlsZXMudmFsdWVzKCkpLmZpbmQobnMgPT4gbnMubmFtZSA9PT0gZnVsbHlRdWFsaWZpZWROYW1lKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGFsbCBGYW1peCBmaWxlc1xuICAgICAqIEByZXR1cm5zIEFsbCBGYW1peCBmaWxlc1xuICAgICAqL1xuICAgIHB1YmxpYyBfZ2V0RmFtaXhGaWxlcygpOiBTZXQ8U2NyaXB0RW50aXR5IHwgTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20odGhpcy5mYW1peEZpbGVzLnZhbHVlcygpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhbGwgbWV0aG9kIG5hbWVzIGFzIGEgc2V0IGZyb20gYSBjbGFzc1xuICAgICAqIEBwYXJhbSBjbGFzc05hbWUgQSBjbGFzcyBuYW1lXG4gICAgICogQHJldHVybnMgVGhlIHNldCBvZiBjbGFzcyBcImNsYXNzTmFtZVwiIG1ldGhvZCBuYW1lc1xuICAgICAqL1xuICAgIHB1YmxpYyBfbWV0aG9kTmFtZXNBc1NldEZyb21DbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IFNldDxzdHJpbmc+IHtcbiAgICAgICAgY29uc3QgdGhlQ2xhc3MgPSB0aGlzLl9nZXRGYW1peENsYXNzKGNsYXNzTmFtZSkgYXMgQ2xhc3M7XG4gICAgICAgIHJldHVybiBuZXcgU2V0KEFycmF5LmZyb20odGhlQ2xhc3MubWV0aG9kcykubWFwKG0gPT4gbS5uYW1lKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyBhbGwgbWV0aG9kIHBhcmVudHMgYXMgYSBzZXQgZnJvbSBhIGNsYXNzXG4gICAgICogQHBhcmFtIGNsYXNzTmFtZSBBIGNsYXNzIG5hbWVcbiAgICAgKiBAcmV0dXJucyBUaGUgc2V0IG9mIGNsYXNzIFwiY2xhc3NOYW1lXCIgbWV0aG9kIHBhcmVudHNcbiAgICAgKi9cbiAgICBwdWJsaWMgX21ldGhvZFBhcmVudHNBc1NldEZyb21DbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IFNldDxUeXBlPiB7XG4gICAgICAgIGNvbnN0IHRoZUNsYXNzID0gdGhpcy5fZ2V0RmFtaXhDbGFzcyhjbGFzc05hbWUpIGFzIENsYXNzO1xuICAgICAgICByZXR1cm4gbmV3IFNldChBcnJheS5mcm9tKHRoZUNsYXNzLm1ldGhvZHMpLm1hcChtID0+IG0ucGFyZW50RW50aXR5KSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgbWFwIG9mIEZhbWl4IGVsZW1lbnQgaWRzIGFuZCB0aGVpciBGYW1peCBlbGVtZW50IGZyb20gYSBKU09OIG1vZGVsXG4gICAgICogQHBhcmFtIG1vZGVsIEEgSlNPTiBtb2RlbFxuICAgICAqIEByZXR1cm5zIFRoZSBtYXAgb2YgRmFtaXggZWxlbWVudCBpZHMgYW5kIHRoZWlyIEZhbWl4IGVsZW1lbnQgZnJvbSB0aGUgSlNPTiBtb2RlbFxuICAgICAqL1xuICAgIHB1YmxpYyBfaW5pdE1hcEZyb21Nb2RlbChtb2RlbDogc3RyaW5nKTogTWFwPG51bWJlciwgdW5rbm93bj4ge1xuICAgICAgICBjb25zdCBwYXJzZWRNb2RlbDogQXJyYXk8RmFtaXhCYXNlRWxlbWVudD4gPSBKU09OLnBhcnNlKG1vZGVsKTtcbiAgICAgICAgY29uc3QgaWRUb0VsZW1lbnRNYXA6IE1hcDxudW1iZXIsIHVua25vd24+ID0gbmV3IE1hcCgpO1xuICAgICAgICBwYXJzZWRNb2RlbC5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgaWRUb0VsZW1lbnRNYXAuc2V0KGVsZW1lbnQuaWQsIGVsZW1lbnQpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGlkVG9FbGVtZW50TWFwO1xuICAgIH1cblxuXG4gICAgLyoqXG4gICAgICogQWRkcyBhIEZhbWl4IGVsZW1lbnQgdG8gdGhlIHJlcG9zaXRvcnlcbiAgICAgKiBAcGFyYW0gZWxlbWVudCBBIEZhbWl4IGVsZW1lbnRcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkRWxlbWVudChlbGVtZW50OiBGYW1peEJhc2VFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGxvZ2dlci5kZWJ1ZyhgQWRkaW5nIEZhbWl4IGVsZW1lbnQgJHtlbGVtZW50LmNvbnN0cnVjdG9yLm5hbWV9IHdpdGggaWQgJHtlbGVtZW50LmlkfWApO1xuICAgICAgICBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIENsYXNzKSB7XG4gICAgICAgICAgICB0aGlzLmZhbWl4Q2xhc3Nlcy5hZGQoZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIEludGVyZmFjZSkge1xuICAgICAgICAgICAgdGhpcy5mYW1peEludGVyZmFjZXMuYWRkKGVsZW1lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBNb2R1bGUpIHtcbiAgICAgICAgICAgIHRoaXMuZmFtaXhNb2R1bGVzLmFkZChlbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50IGluc3RhbmNlb2YgVmFyaWFibGUpIHtcbiAgICAgICAgICAgIHRoaXMuZmFtaXhWYXJpYWJsZXMuYWRkKGVsZW1lbnQpO1xuICAgICAgICB9IGVsc2UgaWYgKGVsZW1lbnQgaW5zdGFuY2VvZiBNZXRob2QpIHtcbiAgICAgICAgICAgIHRoaXMuZmFtaXhNZXRob2RzLmFkZChlbGVtZW50KTtcbiAgICAgICAgfSBlbHNlIGlmIChlbGVtZW50IGluc3RhbmNlb2YgRmFtaXhGdW5jdGlvbkVudGl0eSB8fCBlbGVtZW50IGluc3RhbmNlb2YgQXJyb3dGdW5jdGlvbikge1xuICAgICAgICAgICAgdGhpcy5mYW1peEZ1bmN0aW9ucy5hZGQoZWxlbWVudCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudCBpbnN0YW5jZW9mIFNjcmlwdEVudGl0eSB8fCBlbGVtZW50IGluc3RhbmNlb2YgTW9kdWxlKSB7XG4gICAgICAgICAgICB0aGlzLmZhbWl4RmlsZXMuYWRkKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZWxlbWVudHMuYWRkKGVsZW1lbnQpO1xuICAgICAgICBlbGVtZW50LmlkID0gdGhpcy5pZENvdW50ZXI7XG4gICAgICAgIHRoaXMuaWRDb3VudGVyKys7XG4gICAgICAgIHRoaXMudmFsaWRhdGVGUU5zKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVmFsaWRhdGVzIHRoZSBmdWxseSBxdWFsaWZpZWQgbmFtZXMgb2YgYWxsIEZhbWl4IGVsZW1lbnRzXG4gICAgICovXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUZRTnMoKTogdm9pZCB7XG4gICAgICAgIC8vIG1ha2Ugc3VyZSBhbGwgZWxlbWVudHMgaGF2ZSB1bmlxdWUgZnVsbHkgcXVhbGlmaWVkIG5hbWVzXG4gICAgICAgIGNvbnN0IGZxbnMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIEFycmF5LmZyb20odGhpcy5lbGVtZW50cy52YWx1ZXMoKSkpIHtcbiAgICAgICAgICAgIC8vIGlnbm9yZSBldmVyeXRoaW5nIHRoYXQgaXMgbm90IGEgTmFtZWRFbnRpdHlcbiAgICAgICAgICAgIGlmIChlbGVtZW50IGluc3RhbmNlb2YgTmFtZWRFbnRpdHkpIHtcbiAgICAgICAgICAgICAgICBpZiAoZWxlbWVudC5mdWxseVF1YWxpZmllZE5hbWUgJiYgZnFucy5oYXMoZWxlbWVudC5mdWxseVF1YWxpZmllZE5hbWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHRoZUV4aXN0aW5nRWxlbWVudCA9IEFycmF5LmZyb20odGhpcy5lbGVtZW50cy52YWx1ZXMoKSkuZmluZChlID0+IChlIGFzIE5hbWVkRW50aXR5KS5mdWxseVF1YWxpZmllZE5hbWUgPT09IGVsZW1lbnQuZnVsbHlRdWFsaWZpZWROYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgZnVsbHkgcXVhbGlmaWVkIG5hbWUgJHtlbGVtZW50LmZ1bGx5UXVhbGlmaWVkTmFtZX0gaXMgbm90IHVuaXF1ZS5cXG5JdCBleGlzdHMgZm9yICR7dGhlRXhpc3RpbmdFbGVtZW50Py5nZXRKU09OKCl9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHRoZU5hbWUgPSAoZWxlbWVudCBhcyBOYW1lZEVudGl0eSkuZnVsbHlRdWFsaWZpZWROYW1lO1xuICAgICAgICAgICAgICAgIGlmICh0aGVOYW1lID09PSB1bmRlZmluZWQgfHwgdGhlTmFtZSA9PT0gXCJcIikge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBlbGVtZW50ICR7ZWxlbWVudC5jb25zdHJ1Y3Rvci5uYW1lfSB3aXRoIGlkICR7ZWxlbWVudC5pZH0gaGFzIG5vIHZhbGlkIGZ1bGx5IHF1YWxpZmllZCBuYW1lYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZxbnMuYWRkKHRoZU5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG5cbiAgICAvKipcbiAgICAgKiBHZXRzIGEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVwb3NpdG9yeVxuICAgICAqIEByZXR1cm5zIEEgSlNPTiByZXByZXNlbnRhdGlvbiBvZiB0aGUgcmVwb3NpdG9yeVxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRKU09OKCk6IHN0cmluZyB7XG4gICAgICAgIGxldCByZXQgPSBcIltcIjtcbiAgICAgICAgZm9yIChjb25zdCBlbGVtZW50IG9mIEFycmF5LmZyb20odGhpcy5lbGVtZW50cy52YWx1ZXMoKSkpIHtcbiAgICAgICAgICAgIHJldCA9IHJldCArIGVsZW1lbnQuZ2V0SlNPTigpICsgXCIsXCI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0ID0gcmV0LnN1YnN0cmluZygwLCByZXQubGVuZ3RoIC0gMSk7XG4gICAgICAgIHJldHVybiByZXQgKyBcIl1cIjtcbiAgICB9XG59XG4iXX0=
|
package/dist/lib/famix/index.js
CHANGED
|
@@ -15,17 +15,27 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
const Famix = __importStar(require("./model/famix"));
|
|
26
36
|
const famix_base_element_1 = require("./famix_base_element");
|
|
27
37
|
const famix_JSON_exporter_1 = require("./famix_JSON_exporter");
|
|
28
38
|
const famix_repository_1 = require("./famix_repository");
|
|
29
39
|
const model = { Famix };
|
|
30
40
|
module.exports = { FamixBaseElement: famix_base_element_1.FamixBaseElement, FamixJSONExporter: famix_JSON_exporter_1.FamixJSONExporter, FamixRepository: famix_repository_1.FamixRepository, model };
|
|
31
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2ZhbWl4L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFBdUM7QUFDdkMsNkRBQXdEO0FBQ3hELCtEQUEwRDtBQUMxRCx5REFBcUQ7QUFFckQsTUFBTSxLQUFLLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQztBQUV4QixpQkFBUyxFQUFFLGdCQUFnQixFQUFoQixxQ0FBZ0IsRUFBRSxpQkFBaUIsRUFBakIsdUNBQWlCLEVBQUUsZUFBZSxFQUFmLGtDQUFlLEVBQUUsS0FBSyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBGYW1peCBmcm9tIFwiLi9tb2RlbC9mYW1peFwiO1xuaW1wb3J0IHsgRmFtaXhCYXNlRWxlbWVudCB9IGZyb20gXCIuL2ZhbWl4X2Jhc2VfZWxlbWVudFwiO1xuaW1wb3J0IHsgRmFtaXhKU09ORXhwb3J0ZXIgfSBmcm9tIFwiLi9mYW1peF9KU09OX2V4cG9ydGVyXCI7XG5pbXBvcnQgeyBGYW1peFJlcG9zaXRvcnkgfSBmcm9tIFwiLi9mYW1peF9yZXBvc2l0b3J5XCI7XG5cbmNvbnN0IG1vZGVsID0geyBGYW1peCB9O1xuXG5leHBvcnQgPSB7IEZhbWl4QmFzZUVsZW1lbnQsIEZhbWl4SlNPTkV4cG9ydGVyLCBGYW1peFJlcG9zaXRvcnksIG1vZGVsIH07XG4iXX0=
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
36
|
const ts_morph_1 = require("ts-morph");
|
|
27
37
|
const path = __importStar(require("path"));
|
|
@@ -139,4 +149,4 @@ function replaceMethodCalls(cls, methodName, propName) {
|
|
|
139
149
|
function capitalize(str) {
|
|
140
150
|
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
141
151
|
}
|
|
142
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmYWN0b3ItZ2V0dGVyLXNldHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWZhY3RvcmVyL3JlZmFjdG9yLWdldHRlci1zZXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLHVDQUE2RTtBQUM3RSwyQ0FBNkI7QUFFN0IsTUFBTSxPQUFPLEdBQUcsSUFBSSxrQkFBTyxFQUFFLENBQUM7QUFDOUIsT0FBTyxDQUFDLHFCQUFxQixDQUFDLGlEQUFpRCxDQUFDLENBQUM7QUFDakYsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUUzRixPQUFPLENBQUMsY0FBYyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO0lBQzFDLE1BQU0sT0FBTyxHQUFHLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUUxQyxNQUFNLE9BQU8sR0FBRyxVQUFVLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDeEMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNsQixNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkMsR0FBRyxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUM5QixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEMsSUFBSSxRQUFnQixDQUFDO1lBRXJCLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDL0IsUUFBUSxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDcEUsc0JBQXNCLENBQUMsR0FBRyxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFDbEQsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBQ2pELGtCQUFrQixDQUFDLEdBQUcsRUFBRSxNQUFNLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ3BFLENBQUM7aUJBQU0sSUFBSSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUN0QyxRQUFRLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwRSxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUNsRCxnQkFBZ0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFDakQsa0JBQWtCLENBQUMsR0FBRyxFQUFFLE1BQU0sVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDcEUsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQyxDQUFDLENBQUM7QUFDUCxDQUFDLENBQUMsQ0FBQztBQUVILE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO0lBQ3JCLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUN6QyxDQUFDLENBQUMsQ0FBQztBQUVILFNBQVMsZ0JBQWdCLENBQUMsVUFBa0I7SUFDeEMsT0FBTyxVQUFVLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxJQUFJLHFCQUFxQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzNILENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLFVBQWtCO0lBQ3hDLE9BQU8sVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzNGLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLEdBQVEsRUFBRSxRQUFnQixFQUFFLFVBQWlCO0lBQ3pFLE1BQU0sZ0JBQWdCLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQztJQUM5RSxJQUFJLGdCQUFnQixFQUFFLENBQUM7UUFDbkIsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0FBQ0wsQ0FBQztBQUVELFNBQVMsYUFBYSxDQUFDLFVBQXNCO0lBQ3pDLE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxFQUFrQixDQUFDO0lBQzFDLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFFOUQsa0JBQWtCLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFFO1FBQ3BDLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkYsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDeEYsTUFBTSxjQUFjLEdBQUcsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ25ELE1BQU0sWUFBWSxHQUFHLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNsRCxNQUFNLGFBQWEsR0FBRyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUVwRCxZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLFdBQVcsQ0FBQyxPQUFPLEVBQUUsV0FBVyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQy9FLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLE9BQU8sRUFBRSxFQUFFLGNBQWMsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxhQUFhLEVBQUUsQ0FBQztZQUNoQixPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxPQUFPLEVBQUUsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUN6RCxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDO0FBRUQsU0FBUyxnQkFBZ0IsQ0FBQyxHQUFRLEVBQUUsTUFBVyxFQUFFLFFBQWdCLEVBQUUsT0FBNEI7SUFDM0YsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDO0lBQzVCLE1BQU0sV0FBVyxHQUFHLElBQUksUUFBUSxFQUFFLENBQUM7SUFDbkMsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BELE1BQU0sY0FBYyxHQUFHLG9CQUFvQixDQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUVqRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLFVBQVUsUUFBUSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsUUFBUSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBRTlHLEdBQUcsQ0FBQyxjQUFjLENBQUM7UUFDZixJQUFJLEVBQUUsVUFBVTtRQUNoQixVQUFVLEVBQUUsVUFBVTtRQUN0QixzRUFBc0U7S0FDekUsQ0FBQyxDQUFDO0lBRUgsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDO0FBQ3BCLENBQUM7QUFFRCxTQUFTLGdCQUFnQixDQUFDLEdBQVEsRUFBRSxNQUFXLEVBQUUsUUFBZ0IsRUFBRSxPQUE0QjtJQUMzRixNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUM7SUFDNUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQztJQUVuQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDNUMsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3RDLE1BQU0sU0FBUyxHQUFHLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUUvRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksTUFBTSxDQUFDLFVBQVUsUUFBUSxFQUFFLEVBQUUsR0FBRyxDQUFDLEVBQUUsUUFBUSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBRTlHLEdBQUcsQ0FBQyxjQUFjLENBQUM7UUFDZixJQUFJLEVBQUUsVUFBVTtRQUNoQixVQUFVLEVBQUUsVUFBVTtRQUN0QixVQUFVLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxDQUFDO0tBQ3JELENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztBQUNwQixDQUFDO0FBRUQsU0FBUyxvQkFBb0IsQ0FBQyxJQUFZLEVBQUUsT0FBNEI7SUFDcEUsS0FBSyxNQUFNLENBQUMsVUFBVSxFQUFFLFVBQVUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1FBQ3ZELE1BQU0sUUFBUSxHQUFHLFdBQVcsVUFBVSxLQUFLLFVBQVUsRUFBRSxDQUFDO1FBQ3hELE1BQU0sS0FBSyxHQUFHLElBQUksTUFBTSxDQUFDLGdCQUFnQixhQUFhLENBQUMsVUFBVSxDQUFDLGFBQWEsVUFBVSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDbEcsSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDbkIsT0FBTyxVQUFVLENBQUM7UUFDdEIsQ0FBQztJQUNMLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsUUFBZ0I7SUFDbkMsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztBQUN4QyxDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FBQyxHQUFxQixFQUFFLFVBQWtCLEVBQUUsUUFBZ0I7SUFDbkYsR0FBRyxDQUFDLG9CQUFvQixDQUFDLHFCQUFVLENBQUMsY0FBYyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFO1FBQ25FLE1BQU0sSUFBSSxHQUFHLFFBQVEsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN0QyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsS0FBSyxRQUFRLFVBQVUsRUFBRSxFQUFFLENBQUM7WUFDMUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxRQUFRLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDakQsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxLQUFLLFFBQVEsVUFBVSxFQUFFLElBQUksUUFBUSxDQUFDLFlBQVksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2RixRQUFRLENBQUMsZUFBZSxDQUFDLFFBQVEsUUFBUSxNQUFNLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDM0YsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEdBQVc7SUFDM0IsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENsYXNzRGVjbGFyYXRpb24sIFByb2plY3QsIFNvdXJjZUZpbGUsIFN5bnRheEtpbmQgfSBmcm9tIFwidHMtbW9ycGhcIjtcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcblxuY29uc3QgcHJvamVjdCA9IG5ldyBQcm9qZWN0KCk7XG5wcm9qZWN0LmFkZFNvdXJjZUZpbGVzQXRQYXRocyhcInNyYy9saWIvZmFtaXgvbW9kZWwvZmFtaXgvZmFtaXhfYmFzZV9lbGVtZW50LnRzXCIpO1xucHJvamVjdC5nZXRTb3VyY2VGaWxlcygpLmZvckVhY2goc291cmNlRmlsZSA9PiB7IGNvbnNvbGUubG9nKHNvdXJjZUZpbGUuZ2V0RmlsZVBhdGgoKSk7IH0pO1xuXG5wcm9qZWN0LmdldFNvdXJjZUZpbGVzKCkuZm9yRWFjaChzb3VyY2VGaWxlID0+IHtcbiAgICBjb25zdCB0eXBlTWFwID0gY3JlYXRlVHlwZU1hcChzb3VyY2VGaWxlKTtcblxuICAgIGNvbnN0IGNsYXNzZXMgPSBzb3VyY2VGaWxlLmdldENsYXNzZXMoKTtcbiAgICBjbGFzc2VzLmZvckVhY2goY2xzID0+IHtcbiAgICAgICAgY29uc3QgcHJvcGVydGllcyA9IGNscy5nZXRQcm9wZXJ0aWVzKCk7XG4gICAgICAgIGNscy5nZXRNZXRob2RzKCkuZm9yRWFjaChtZXRob2QgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWV0aG9kTmFtZSA9IG1ldGhvZC5nZXROYW1lKCk7XG4gICAgICAgICAgICBsZXQgcHJvcE5hbWU6IHN0cmluZztcblxuICAgICAgICAgICAgaWYgKGlzRWxpZ2libGVHZXR0ZXIobWV0aG9kTmFtZSkpIHtcbiAgICAgICAgICAgICAgICBwcm9wTmFtZSA9IG1ldGhvZE5hbWUuY2hhckF0KDMpLnRvTG93ZXJDYXNlKCkgKyBtZXRob2ROYW1lLnNsaWNlKDQpO1xuICAgICAgICAgICAgICAgIHJlbmFtZVByb3BlcnR5SWZFeGlzdHMoY2xzLCBwcm9wTmFtZSwgcHJvcGVydGllcyk7XG4gICAgICAgICAgICAgICAgcmVmYWN0b3JUb0dldHRlcihjbHMsIG1ldGhvZCwgcHJvcE5hbWUsIHR5cGVNYXApO1xuICAgICAgICAgICAgICAgIHJlcGxhY2VNZXRob2RDYWxscyhjbHMsIGBnZXQke2NhcGl0YWxpemUocHJvcE5hbWUpfWAsIHByb3BOYW1lKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoaXNFbGlnaWJsZVNldHRlcihtZXRob2ROYW1lKSkge1xuICAgICAgICAgICAgICAgIHByb3BOYW1lID0gbWV0aG9kTmFtZS5jaGFyQXQoMykudG9Mb3dlckNhc2UoKSArIG1ldGhvZE5hbWUuc2xpY2UoNCk7XG4gICAgICAgICAgICAgICAgcmVuYW1lUHJvcGVydHlJZkV4aXN0cyhjbHMsIHByb3BOYW1lLCBwcm9wZXJ0aWVzKTtcbiAgICAgICAgICAgICAgICByZWZhY3RvclRvU2V0dGVyKGNscywgbWV0aG9kLCBwcm9wTmFtZSwgdHlwZU1hcCk7XG4gICAgICAgICAgICAgICAgcmVwbGFjZU1ldGhvZENhbGxzKGNscywgYHNldCR7Y2FwaXRhbGl6ZShwcm9wTmFtZSl9YCwgcHJvcE5hbWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9KTtcbn0pO1xuXG5wcm9qZWN0LnNhdmUoKS50aGVuKCgpID0+IHtcbiAgICBjb25zb2xlLmxvZyhcIlJlZmFjdG9yaW5nIGNvbXBsZXRlIVwiKTtcbn0pO1xuXG5mdW5jdGlvbiBpc0VsaWdpYmxlR2V0dGVyKG1ldGhvZE5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBtZXRob2ROYW1lLnN0YXJ0c1dpdGgoXCJnZXRcIikgJiYgL15bQS1aXVthLXpBLVowLTldKiQvLnRlc3QobWV0aG9kTmFtZS5zbGljZSgzKSkgJiYgIW1ldGhvZE5hbWUuaW5jbHVkZXMoXCJKU09OXCIpO1xufVxuXG5mdW5jdGlvbiBpc0VsaWdpYmxlU2V0dGVyKG1ldGhvZE5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBtZXRob2ROYW1lLnN0YXJ0c1dpdGgoXCJzZXRcIikgJiYgL15bQS1aXVthLXpBLVowLTldKiQvLnRlc3QobWV0aG9kTmFtZS5zbGljZSgzKSk7XG59XG5cbmZ1bmN0aW9uIHJlbmFtZVByb3BlcnR5SWZFeGlzdHMoY2xzOiBhbnksIHByb3BOYW1lOiBzdHJpbmcsIHByb3BlcnRpZXM6IGFueVtdKSB7XG4gICAgY29uc3QgZXhpc3RpbmdQcm9wZXJ0eSA9IHByb3BlcnRpZXMuZmluZChwcm9wID0+IHByb3AuZ2V0TmFtZSgpID09PSBwcm9wTmFtZSk7XG4gICAgaWYgKGV4aXN0aW5nUHJvcGVydHkpIHtcbiAgICAgICAgZXhpc3RpbmdQcm9wZXJ0eS5yZW5hbWUoYF8ke3Byb3BOYW1lfWApO1xuICAgIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlVHlwZU1hcChzb3VyY2VGaWxlOiBTb3VyY2VGaWxlKTogTWFwPHN0cmluZywgc3RyaW5nPiB7XG4gICAgY29uc3QgdHlwZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgY29uc3QgaW1wb3J0RGVjbGFyYXRpb25zID0gc291cmNlRmlsZS5nZXRJbXBvcnREZWNsYXJhdGlvbnMoKTtcblxuICAgIGltcG9ydERlY2xhcmF0aW9ucy5mb3JFYWNoKGltcG9ydERlY2wgPT4ge1xuICAgICAgICBjb25zdCBtb2R1bGVTcGVjaWZpZXIgPSBpbXBvcnREZWNsLmdldE1vZHVsZVNwZWNpZmllcigpLmdldFRleHQoKS5yZXBsYWNlKC9bJ1wiXS9nLCAnJyk7XG4gICAgICAgIGNvbnN0IGFic29sdXRlUGF0aCA9IHBhdGgucmVzb2x2ZShzb3VyY2VGaWxlLmdldERpcmVjdG9yeSgpLmdldFBhdGgoKSwgbW9kdWxlU3BlY2lmaWVyKTtcbiAgICAgICAgY29uc3Qgbm9ybWFsaXplZFBhdGggPSBub3JtYWxpemVQYXRoKGFic29sdXRlUGF0aCk7XG4gICAgICAgIGNvbnN0IG5hbWVkSW1wb3J0cyA9IGltcG9ydERlY2wuZ2V0TmFtZWRJbXBvcnRzKCk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRJbXBvcnQgPSBpbXBvcnREZWNsLmdldERlZmF1bHRJbXBvcnQoKTtcblxuICAgICAgICBuYW1lZEltcG9ydHMuZm9yRWFjaChuYW1lZEltcG9ydCA9PiB7XG4gICAgICAgICAgICBjb25zb2xlLmxvZyhgTmFtZWQgaW1wb3J0OiAke25hbWVkSW1wb3J0LmdldE5hbWUoKX0sIHBhdGg6ICR7bm9ybWFsaXplZFBhdGh9YCk7XG4gICAgICAgICAgICB0eXBlTWFwLnNldChuYW1lZEltcG9ydC5nZXROYW1lKCksIG5vcm1hbGl6ZWRQYXRoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKGRlZmF1bHRJbXBvcnQpIHtcbiAgICAgICAgICAgIHR5cGVNYXAuc2V0KGRlZmF1bHRJbXBvcnQuZ2V0VGV4dCgpLCBub3JtYWxpemVkUGF0aCk7XG4gICAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiB0eXBlTWFwO1xufVxuXG5mdW5jdGlvbiByZWZhY3RvclRvR2V0dGVyKGNsczogYW55LCBtZXRob2Q6IGFueSwgcHJvcE5hbWU6IHN0cmluZywgdHlwZU1hcDogTWFwPHN0cmluZywgc3RyaW5nPikge1xuICAgIGNvbnN0IGdldHRlck5hbWUgPSBwcm9wTmFtZTtcbiAgICBjb25zdCByZW5hbWVkUHJvcCA9IGBfJHtwcm9wTmFtZX1gO1xuICAgIGNvbnN0IHJldHVyblR5cGUgPSBtZXRob2QuZ2V0UmV0dXJuVHlwZSgpLmdldFRleHQoKTtcbiAgICBjb25zdCBzaW1wbGlmaWVkVHlwZSA9IHJlcGxhY2VMb25nVHlwZVBhdGhzKHJldHVyblR5cGUsIHR5cGVNYXApO1xuXG4gICAgY29uc3QgZ2V0dGVyQm9keSA9IG1ldGhvZC5nZXRCb2R5VGV4dCgpLnJlcGxhY2UobmV3IFJlZ0V4cChgdGhpc1xcXFwuJHtwcm9wTmFtZX1gLCAnZycpLCBgdGhpcy4ke3JlbmFtZWRQcm9wfWApO1xuXG4gICAgY2xzLmFkZEdldEFjY2Vzc29yKHtcbiAgICAgICAgbmFtZTogZ2V0dGVyTmFtZSxcbiAgICAgICAgc3RhdGVtZW50czogZ2V0dGVyQm9keSxcbiAgICAgICAgLy8gcmV0dXJuVHlwZTogc2ltcGxpZmllZFR5cGUsICAvLyBkb24ndCBuZWVkIGEgcmV0dXJuIHR5cGUgZm9yIGdldHRlclxuICAgIH0pO1xuXG4gICAgbWV0aG9kLnJlbW92ZSgpO1xufVxuXG5mdW5jdGlvbiByZWZhY3RvclRvU2V0dGVyKGNsczogYW55LCBtZXRob2Q6IGFueSwgcHJvcE5hbWU6IHN0cmluZywgdHlwZU1hcDogTWFwPHN0cmluZywgc3RyaW5nPikge1xuICAgIGNvbnN0IHNldHRlck5hbWUgPSBwcm9wTmFtZTtcbiAgICBjb25zdCByZW5hbWVkUHJvcCA9IGBfJHtwcm9wTmFtZX1gO1xuXG4gICAgY29uc3QgcGFyYW1ldGVyID0gbWV0aG9kLmdldFBhcmFtZXRlcnMoKVswXTtcbiAgICBjb25zdCBwYXJhbU5hbWUgPSBwYXJhbWV0ZXIuZ2V0TmFtZSgpO1xuICAgIGNvbnN0IHBhcmFtVHlwZSA9IHJlcGxhY2VMb25nVHlwZVBhdGhzKHBhcmFtZXRlci5nZXRUeXBlKCkuZ2V0VGV4dCgpLCB0eXBlTWFwKTtcblxuICAgIGNvbnN0IHNldHRlckJvZHkgPSBtZXRob2QuZ2V0Qm9keVRleHQoKS5yZXBsYWNlKG5ldyBSZWdFeHAoYHRoaXNcXFxcLiR7cHJvcE5hbWV9YCwgJ2cnKSwgYHRoaXMuJHtyZW5hbWVkUHJvcH1gKTtcblxuICAgIGNscy5hZGRTZXRBY2Nlc3Nvcih7XG4gICAgICAgIG5hbWU6IHNldHRlck5hbWUsXG4gICAgICAgIHN0YXRlbWVudHM6IHNldHRlckJvZHksXG4gICAgICAgIHBhcmFtZXRlcnM6IFt7IG5hbWU6IHBhcmFtTmFtZSwgdHlwZTogcGFyYW1UeXBlIH1dLFxuICAgIH0pO1xuXG4gICAgbWV0aG9kLnJlbW92ZSgpO1xufVxuXG5mdW5jdGlvbiByZXBsYWNlTG9uZ1R5cGVQYXRocyh0eXBlOiBzdHJpbmcsIHR5cGVNYXA6IE1hcDxzdHJpbmcsIHN0cmluZz4pOiBzdHJpbmcge1xuICAgIGZvciAoY29uc3QgW2ltcG9ydE5hbWUsIGltcG9ydFBhdGhdIG9mIHR5cGVNYXAuZW50cmllcygpKSB7XG4gICAgICAgIGNvbnN0IGxvbmdQYXRoID0gYGltcG9ydChcIiR7aW1wb3J0UGF0aH1cIikke2ltcG9ydE5hbWV9YDtcbiAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBpbXBvcnRcXFxcKFtcIiddJHtub3JtYWxpemVQYXRoKGltcG9ydFBhdGgpfVtcIiddXFxcXClcXFxcLiR7aW1wb3J0TmFtZX1gLCAnZycpO1xuICAgICAgICBpZiAocmVnZXgudGVzdCh0eXBlKSkge1xuICAgICAgICAgICAgcmV0dXJuIGltcG9ydE5hbWU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHR5cGU7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZVBhdGgoZmlsZVBhdGg6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGZpbGVQYXRoLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbn1cblxuZnVuY3Rpb24gcmVwbGFjZU1ldGhvZENhbGxzKGNsczogQ2xhc3NEZWNsYXJhdGlvbiwgbWV0aG9kTmFtZTogc3RyaW5nLCBwcm9wTmFtZTogc3RyaW5nKSB7XG4gICAgY2xzLmdldERlc2NlbmRhbnRzT2ZLaW5kKFN5bnRheEtpbmQuQ2FsbEV4cHJlc3Npb24pLmZvckVhY2goY2FsbEV4cHIgPT4ge1xuICAgICAgICBjb25zdCBleHByID0gY2FsbEV4cHIuZ2V0RXhwcmVzc2lvbigpO1xuICAgICAgICBpZiAoZXhwci5nZXRUZXh0KCkgPT09IGB0aGlzLiR7bWV0aG9kTmFtZX1gKSB7XG4gICAgICAgICAgICBjYWxsRXhwci5yZXBsYWNlV2l0aFRleHQoYHRoaXMuJHtwcm9wTmFtZX1gKTtcbiAgICAgICAgfSBlbHNlIGlmIChleHByLmdldFRleHQoKSA9PT0gYHRoaXMuJHttZXRob2ROYW1lfWAgJiYgY2FsbEV4cHIuZ2V0QXJndW1lbnRzKCkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgY2FsbEV4cHIucmVwbGFjZVdpdGhUZXh0KGB0aGlzLiR7cHJvcE5hbWV9ID0gJHtjYWxsRXhwci5nZXRBcmd1bWVudHMoKVswXS5nZXRUZXh0KCl9YCk7XG4gICAgICAgIH1cbiAgICB9KTtcbn1cblxuZnVuY3Rpb24gY2FwaXRhbGl6ZShzdHI6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHN0ci5jaGFyQXQoMCkudG9VcHBlckNhc2UoKSArIHN0ci5zbGljZSgxKTtcbn1cbiJdfQ==
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmYWN0b3ItZ2V0dGVyLXNldHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yZWZhY3RvcmVyL3JlZmFjdG9yLWdldHRlci1zZXR0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBNkU7QUFDN0UsMkNBQTZCO0FBRTdCLE1BQU0sT0FBTyxHQUFHLElBQUksa0JBQU8sRUFBRSxDQUFDO0FBQzlCLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxpREFBaUQsQ0FBQyxDQUFDO0FBQ2pGLE9BQU8sQ0FBQyxjQUFjLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEVBQUUsR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFM0YsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsRUFBRTtJQUMxQyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFMUMsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3hDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7UUFDbEIsTUFBTSxVQUFVLEdBQUcsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZDLEdBQUcsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDOUIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BDLElBQUksUUFBZ0IsQ0FBQztZQUVyQixJQUFJLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQy9CLFFBQVEsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLFVBQVUs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QUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ3RELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbGFzc0RlY2xhcmF0aW9uLCBQcm9qZWN0LCBTb3VyY2VGaWxlLCBTeW50YXhLaW5kIH0gZnJvbSBcInRzLW1vcnBoXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5cbmNvbnN0IHByb2plY3QgPSBuZXcgUHJvamVjdCgpO1xucHJvamVjdC5hZGRTb3VyY2VGaWxlc0F0UGF0aHMoXCJzcmMvbGliL2ZhbWl4L21vZGVsL2ZhbWl4L2ZhbWl4X2Jhc2VfZWxlbWVudC50c1wiKTtcbnByb2plY3QuZ2V0U291cmNlRmlsZXMoKS5mb3JFYWNoKHNvdXJjZUZpbGUgPT4geyBjb25zb2xlLmxvZyhzb3VyY2VGaWxlLmdldEZpbGVQYXRoKCkpOyB9KTtcblxucHJvamVjdC5nZXRTb3VyY2VGaWxlcygpLmZvckVhY2goc291cmNlRmlsZSA9PiB7XG4gICAgY29uc3QgdHlwZU1hcCA9IGNyZWF0ZVR5cGVNYXAoc291cmNlRmlsZSk7XG5cbiAgICBjb25zdCBjbGFzc2VzID0gc291cmNlRmlsZS5nZXRDbGFzc2VzKCk7XG4gICAgY2xhc3Nlcy5mb3JFYWNoKGNscyA9PiB7XG4gICAgICAgIGNvbnN0IHByb3BlcnRpZXMgPSBjbHMuZ2V0UHJvcGVydGllcygpO1xuICAgICAgICBjbHMuZ2V0TWV0aG9kcygpLmZvckVhY2gobWV0aG9kID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSBtZXRob2QuZ2V0TmFtZSgpO1xuICAgICAgICAgICAgbGV0IHByb3BOYW1lOiBzdHJpbmc7XG5cbiAgICAgICAgICAgIGlmIChpc0VsaWdpYmxlR2V0dGVyKG1ldGhvZE5hbWUpKSB7XG4gICAgICAgICAgICAgICAgcHJvcE5hbWUgPSBtZXRob2ROYW1lLmNoYXJBdCgzKS50b0xvd2VyQ2FzZSgpICsgbWV0aG9kTmFtZS5zbGljZSg0KTtcbiAgICAgICAgICAgICAgICByZW5hbWVQcm9wZXJ0eUlmRXhpc3RzKGNscywgcHJvcE5hbWUsIHByb3BlcnRpZXMpO1xuICAgICAgICAgICAgICAgIHJlZmFjdG9yVG9HZXR0ZXIoY2xzLCBtZXRob2QsIHByb3BOYW1lLCB0eXBlTWFwKTtcbiAgICAgICAgICAgICAgICByZXBsYWNlTWV0aG9kQ2FsbHMoY2xzLCBgZ2V0JHtjYXBpdGFsaXplKHByb3BOYW1lKX1gLCBwcm9wTmFtZSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGlzRWxpZ2libGVTZXR0ZXIobWV0aG9kTmFtZSkpIHtcbiAgICAgICAgICAgICAgICBwcm9wTmFtZSA9IG1ldGhvZE5hbWUuY2hhckF0KDMpLnRvTG93ZXJDYXNlKCkgKyBtZXRob2ROYW1lLnNsaWNlKDQpO1xuICAgICAgICAgICAgICAgIHJlbmFtZVByb3BlcnR5SWZFeGlzdHMoY2xzLCBwcm9wTmFtZSwgcHJvcGVydGllcyk7XG4gICAgICAgICAgICAgICAgcmVmYWN0b3JUb1NldHRlcihjbHMsIG1ldGhvZCwgcHJvcE5hbWUsIHR5cGVNYXApO1xuICAgICAgICAgICAgICAgIHJlcGxhY2VNZXRob2RDYWxscyhjbHMsIGBzZXQke2NhcGl0YWxpemUocHJvcE5hbWUpfWAsIHByb3BOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfSk7XG59KTtcblxucHJvamVjdC5zYXZlKCkudGhlbigoKSA9PiB7XG4gICAgY29uc29sZS5sb2coXCJSZWZhY3RvcmluZyBjb21wbGV0ZSFcIik7XG59KTtcblxuZnVuY3Rpb24gaXNFbGlnaWJsZUdldHRlcihtZXRob2ROYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbWV0aG9kTmFtZS5zdGFydHNXaXRoKFwiZ2V0XCIpICYmIC9eW0EtWl1bYS16QS1aMC05XSokLy50ZXN0KG1ldGhvZE5hbWUuc2xpY2UoMykpICYmICFtZXRob2ROYW1lLmluY2x1ZGVzKFwiSlNPTlwiKTtcbn1cblxuZnVuY3Rpb24gaXNFbGlnaWJsZVNldHRlcihtZXRob2ROYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gbWV0aG9kTmFtZS5zdGFydHNXaXRoKFwic2V0XCIpICYmIC9eW0EtWl1bYS16QS1aMC05XSokLy50ZXN0KG1ldGhvZE5hbWUuc2xpY2UoMykpO1xufVxuXG5mdW5jdGlvbiByZW5hbWVQcm9wZXJ0eUlmRXhpc3RzKGNsczogYW55LCBwcm9wTmFtZTogc3RyaW5nLCBwcm9wZXJ0aWVzOiBhbnlbXSkge1xuICAgIGNvbnN0IGV4aXN0aW5nUHJvcGVydHkgPSBwcm9wZXJ0aWVzLmZpbmQocHJvcCA9PiBwcm9wLmdldE5hbWUoKSA9PT0gcHJvcE5hbWUpO1xuICAgIGlmIChleGlzdGluZ1Byb3BlcnR5KSB7XG4gICAgICAgIGV4aXN0aW5nUHJvcGVydHkucmVuYW1lKGBfJHtwcm9wTmFtZX1gKTtcbiAgICB9XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVR5cGVNYXAoc291cmNlRmlsZTogU291cmNlRmlsZSk6IE1hcDxzdHJpbmcsIHN0cmluZz4ge1xuICAgIGNvbnN0IHR5cGVNYXAgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICAgIGNvbnN0IGltcG9ydERlY2xhcmF0aW9ucyA9IHNvdXJjZUZpbGUuZ2V0SW1wb3J0RGVjbGFyYXRpb25zKCk7XG5cbiAgICBpbXBvcnREZWNsYXJhdGlvbnMuZm9yRWFjaChpbXBvcnREZWNsID0+IHtcbiAgICAgICAgY29uc3QgbW9kdWxlU3BlY2lmaWVyID0gaW1wb3J0RGVjbC5nZXRNb2R1bGVTcGVjaWZpZXIoKS5nZXRUZXh0KCkucmVwbGFjZSgvWydcIl0vZywgJycpO1xuICAgICAgICBjb25zdCBhYnNvbHV0ZVBhdGggPSBwYXRoLnJlc29sdmUoc291cmNlRmlsZS5nZXREaXJlY3RvcnkoKS5nZXRQYXRoKCksIG1vZHVsZVNwZWNpZmllcik7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRQYXRoID0gbm9ybWFsaXplUGF0aChhYnNvbHV0ZVBhdGgpO1xuICAgICAgICBjb25zdCBuYW1lZEltcG9ydHMgPSBpbXBvcnREZWNsLmdldE5hbWVkSW1wb3J0cygpO1xuICAgICAgICBjb25zdCBkZWZhdWx0SW1wb3J0ID0gaW1wb3J0RGVjbC5nZXREZWZhdWx0SW1wb3J0KCk7XG5cbiAgICAgICAgbmFtZWRJbXBvcnRzLmZvckVhY2gobmFtZWRJbXBvcnQgPT4ge1xuICAgICAgICAgICAgY29uc29sZS5sb2coYE5hbWVkIGltcG9ydDogJHtuYW1lZEltcG9ydC5nZXROYW1lKCl9LCBwYXRoOiAke25vcm1hbGl6ZWRQYXRofWApO1xuICAgICAgICAgICAgdHlwZU1hcC5zZXQobmFtZWRJbXBvcnQuZ2V0TmFtZSgpLCBub3JtYWxpemVkUGF0aCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChkZWZhdWx0SW1wb3J0KSB7XG4gICAgICAgICAgICB0eXBlTWFwLnNldChkZWZhdWx0SW1wb3J0LmdldFRleHQoKSwgbm9ybWFsaXplZFBhdGgpO1xuICAgICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHlwZU1hcDtcbn1cblxuZnVuY3Rpb24gcmVmYWN0b3JUb0dldHRlcihjbHM6IGFueSwgbWV0aG9kOiBhbnksIHByb3BOYW1lOiBzdHJpbmcsIHR5cGVNYXA6IE1hcDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgICBjb25zdCBnZXR0ZXJOYW1lID0gcHJvcE5hbWU7XG4gICAgY29uc3QgcmVuYW1lZFByb3AgPSBgXyR7cHJvcE5hbWV9YDtcbiAgICBjb25zdCByZXR1cm5UeXBlID0gbWV0aG9kLmdldFJldHVyblR5cGUoKS5nZXRUZXh0KCk7XG4gICAgY29uc3Qgc2ltcGxpZmllZFR5cGUgPSByZXBsYWNlTG9uZ1R5cGVQYXRocyhyZXR1cm5UeXBlLCB0eXBlTWFwKTtcblxuICAgIGNvbnN0IGdldHRlckJvZHkgPSBtZXRob2QuZ2V0Qm9keVRleHQoKS5yZXBsYWNlKG5ldyBSZWdFeHAoYHRoaXNcXFxcLiR7cHJvcE5hbWV9YCwgJ2cnKSwgYHRoaXMuJHtyZW5hbWVkUHJvcH1gKTtcblxuICAgIGNscy5hZGRHZXRBY2Nlc3Nvcih7XG4gICAgICAgIG5hbWU6IGdldHRlck5hbWUsXG4gICAgICAgIHN0YXRlbWVudHM6IGdldHRlckJvZHksXG4gICAgICAgIC8vIHJldHVyblR5cGU6IHNpbXBsaWZpZWRUeXBlLCAgLy8gZG9uJ3QgbmVlZCBhIHJldHVybiB0eXBlIGZvciBnZXR0ZXJcbiAgICB9KTtcblxuICAgIG1ldGhvZC5yZW1vdmUoKTtcbn1cblxuZnVuY3Rpb24gcmVmYWN0b3JUb1NldHRlcihjbHM6IGFueSwgbWV0aG9kOiBhbnksIHByb3BOYW1lOiBzdHJpbmcsIHR5cGVNYXA6IE1hcDxzdHJpbmcsIHN0cmluZz4pIHtcbiAgICBjb25zdCBzZXR0ZXJOYW1lID0gcHJvcE5hbWU7XG4gICAgY29uc3QgcmVuYW1lZFByb3AgPSBgXyR7cHJvcE5hbWV9YDtcblxuICAgIGNvbnN0IHBhcmFtZXRlciA9IG1ldGhvZC5nZXRQYXJhbWV0ZXJzKClbMF07XG4gICAgY29uc3QgcGFyYW1OYW1lID0gcGFyYW1ldGVyLmdldE5hbWUoKTtcbiAgICBjb25zdCBwYXJhbVR5cGUgPSByZXBsYWNlTG9uZ1R5cGVQYXRocyhwYXJhbWV0ZXIuZ2V0VHlwZSgpLmdldFRleHQoKSwgdHlwZU1hcCk7XG5cbiAgICBjb25zdCBzZXR0ZXJCb2R5ID0gbWV0aG9kLmdldEJvZHlUZXh0KCkucmVwbGFjZShuZXcgUmVnRXhwKGB0aGlzXFxcXC4ke3Byb3BOYW1lfWAsICdnJyksIGB0aGlzLiR7cmVuYW1lZFByb3B9YCk7XG5cbiAgICBjbHMuYWRkU2V0QWNjZXNzb3Ioe1xuICAgICAgICBuYW1lOiBzZXR0ZXJOYW1lLFxuICAgICAgICBzdGF0ZW1lbnRzOiBzZXR0ZXJCb2R5LFxuICAgICAgICBwYXJhbWV0ZXJzOiBbeyBuYW1lOiBwYXJhbU5hbWUsIHR5cGU6IHBhcmFtVHlwZSB9XSxcbiAgICB9KTtcblxuICAgIG1ldGhvZC5yZW1vdmUoKTtcbn1cblxuZnVuY3Rpb24gcmVwbGFjZUxvbmdUeXBlUGF0aHModHlwZTogc3RyaW5nLCB0eXBlTWFwOiBNYXA8c3RyaW5nLCBzdHJpbmc+KTogc3RyaW5nIHtcbiAgICBmb3IgKGNvbnN0IFtpbXBvcnROYW1lLCBpbXBvcnRQYXRoXSBvZiB0eXBlTWFwLmVudHJpZXMoKSkge1xuICAgICAgICBjb25zdCBsb25nUGF0aCA9IGBpbXBvcnQoXCIke2ltcG9ydFBhdGh9XCIpJHtpbXBvcnROYW1lfWA7XG4gICAgICAgIGNvbnN0IHJlZ2V4ID0gbmV3IFJlZ0V4cChgaW1wb3J0XFxcXChbXCInXSR7bm9ybWFsaXplUGF0aChpbXBvcnRQYXRoKX1bXCInXVxcXFwpXFxcXC4ke2ltcG9ydE5hbWV9YCwgJ2cnKTtcbiAgICAgICAgaWYgKHJlZ2V4LnRlc3QodHlwZSkpIHtcbiAgICAgICAgICAgIHJldHVybiBpbXBvcnROYW1lO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0eXBlO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVQYXRoKGZpbGVQYXRoOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBmaWxlUGF0aC5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG59XG5cbmZ1bmN0aW9uIHJlcGxhY2VNZXRob2RDYWxscyhjbHM6IENsYXNzRGVjbGFyYXRpb24sIG1ldGhvZE5hbWU6IHN0cmluZywgcHJvcE5hbWU6IHN0cmluZykge1xuICAgIGNscy5nZXREZXNjZW5kYW50c09mS2luZChTeW50YXhLaW5kLkNhbGxFeHByZXNzaW9uKS5mb3JFYWNoKGNhbGxFeHByID0+IHtcbiAgICAgICAgY29uc3QgZXhwciA9IGNhbGxFeHByLmdldEV4cHJlc3Npb24oKTtcbiAgICAgICAgaWYgKGV4cHIuZ2V0VGV4dCgpID09PSBgdGhpcy4ke21ldGhvZE5hbWV9YCkge1xuICAgICAgICAgICAgY2FsbEV4cHIucmVwbGFjZVdpdGhUZXh0KGB0aGlzLiR7cHJvcE5hbWV9YCk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXhwci5nZXRUZXh0KCkgPT09IGB0aGlzLiR7bWV0aG9kTmFtZX1gICYmIGNhbGxFeHByLmdldEFyZ3VtZW50cygpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIGNhbGxFeHByLnJlcGxhY2VXaXRoVGV4dChgdGhpcy4ke3Byb3BOYW1lfSA9ICR7Y2FsbEV4cHIuZ2V0QXJndW1lbnRzKClbMF0uZ2V0VGV4dCgpfWApO1xuICAgICAgICB9XG4gICAgfSk7XG59XG5cbmZ1bmN0aW9uIGNhcGl0YWxpemUoc3RyOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdHIuY2hhckF0KDApLnRvVXBwZXJDYXNlKCkgKyBzdHIuc2xpY2UoMSk7XG59XG4iXX0=
|
|
@@ -16,13 +16,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
16
16
|
}) : function(o, v) {
|
|
17
17
|
o["default"] = v;
|
|
18
18
|
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || function (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
};
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
26
36
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
27
37
|
const child_process_1 = require("child_process");
|
|
28
38
|
const path = __importStar(require("path"));
|
|
@@ -39,4 +49,4 @@ const child = (0, child_process_1.spawn)('node', args, { stdio: 'inherit' });
|
|
|
39
49
|
child.on('close', (code) => {
|
|
40
50
|
process.exit(code);
|
|
41
51
|
});
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHMyZmFtaXgtY2xpLXdyYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHMyZmFtaXgtY2xpLXdyYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUEsaURBQXNDO0FBQ3RDLDJDQUE2QjtBQUU3QixxRUFBcUU7QUFDckUsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztBQUUzRCxzRUFBc0U7QUFDdEUsTUFBTSxJQUFJLEdBQUc7SUFDWCxzQkFBc0I7SUFDdEIsMENBQTBDO0lBQzFDLE9BQU87SUFDUCxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztDQUN6QixDQUFDO0FBRUYsTUFBTSxLQUFLLEdBQUcsSUFBQSxxQkFBSyxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztBQUV4RCxLQUFLLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO0lBQ3pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDckIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5cbmltcG9ydCB7IHNwYXduIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuXG4vLyBSZXNvbHZlIHRoZSBwYXRoIHRvIHRzMmZhbWl4LWNsaS5qcyByZWxhdGl2ZSB0byB0aGUgd3JhcHBlciBzY3JpcHRcbmNvbnN0IGNsaVBhdGggPSBwYXRoLnJlc29sdmUoX19kaXJuYW1lLCAndHMyZmFtaXgtY2xpLmpzJyk7XG5cbi8vIEFsbG93IHRzbG9nIHRvIGRpc3BsYXkgdGhlIHByb3BlciBUeXBlU2NyaXB0IGZpbGVzIGFuZCBsaW5lIG51bWJlcnNcbmNvbnN0IGFyZ3MgPSBbXG4gICctLWVuYWJsZS1zb3VyY2UtbWFwcycsXG4gICctLWV4cGVyaW1lbnRhbC1zcGVjaWZpZXItcmVzb2x1dGlvbj1ub2RlJyxcbiAgY2xpUGF0aCxcbiAgLi4ucHJvY2Vzcy5hcmd2LnNsaWNlKDIpXG5dO1xuXG5jb25zdCBjaGlsZCA9IHNwYXduKCdub2RlJywgYXJncywgeyBzdGRpbzogJ2luaGVyaXQnIH0pO1xuXG5jaGlsZC5vbignY2xvc2UnLCAoY29kZSkgPT4ge1xuICBwcm9jZXNzLmV4aXQoY29kZSk7XG59KTtcbiJdfQ==
|
package/dist/ts2famix-cli.js
CHANGED
|
@@ -16,13 +16,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
16
16
|
}) : function(o, v) {
|
|
17
17
|
o["default"] = v;
|
|
18
18
|
});
|
|
19
|
-
var __importStar = (this && this.__importStar) || function (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
};
|
|
19
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
20
|
+
var ownKeys = function(o) {
|
|
21
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
22
|
+
var ar = [];
|
|
23
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
24
|
+
return ar;
|
|
25
|
+
};
|
|
26
|
+
return ownKeys(o);
|
|
27
|
+
};
|
|
28
|
+
return function (mod) {
|
|
29
|
+
if (mod && mod.__esModule) return mod;
|
|
30
|
+
var result = {};
|
|
31
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
32
|
+
__setModuleDefault(result, mod);
|
|
33
|
+
return result;
|
|
34
|
+
};
|
|
35
|
+
})();
|
|
26
36
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
27
37
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
28
38
|
};
|
|
@@ -80,4 +90,4 @@ fs.writeFile(jsonFilePath, jsonOutput, (err) => {
|
|
|
80
90
|
}
|
|
81
91
|
});
|
|
82
92
|
analyze_3.logger.info(`Created: ${jsonFilePath}`);
|
|
83
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHMyZmFtaXgtY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3RzMmZhbWl4LWNsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSx1Q0FBeUI7QUFDekIsa0RBQTBCO0FBQzFCLHVDQUFxQztBQUVyQyx1Q0FBbUM7QUFDbkMsdUNBQW1DO0FBRW5DLE1BQU0sSUFBSSxHQUFHLGVBQUs7S0FDYixPQUFPLENBQUMsc0VBQXNFLEVBQUUsd0RBQXdELENBQUM7S0FDekksT0FBTyxDQUFDLGtFQUFrRSxFQUFFLHNEQUFzRCxDQUFDO0tBQ25JLEtBQUssQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDO0tBQ25CLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0tBQ2IsS0FBSyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUM7S0FDcEIsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7S0FDYixLQUFLLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQztLQUN0QixLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztLQUNiLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0tBQ2YsUUFBUSxDQUFDLEdBQUcsRUFBRSw4RkFBOEYsQ0FBQztLQUM3RyxPQUFPLENBQUMsV0FBVyxDQUFDO0tBQ3BCLE9BQU8sQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDO0tBQzNCLFFBQVEsQ0FBQyxXQUFXLEVBQUUsc0lBQXNJLENBQUM7S0FDN0osWUFBWSxDQUFDLE9BQU8sQ0FBQztLQUNyQixZQUFZLENBQUMsUUFBUSxDQUFDO0tBQ3RCLFNBQVMsRUFBRSxDQUFDO0FBRWpCLHVDQUFtQztBQUNuQyxnQkFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQVcsQ0FBQztBQUMzRCxnQkFBTSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBb0IsQ0FBQztBQUVuRCxNQUFNLFFBQVEsR0FBRyxJQUFJLGtCQUFRLEVBQUUsQ0FBQztBQUNoQyxJQUFJLFFBQXlCLENBQUM7QUFFOUIsSUFBSyxJQUFJLENBQUMsS0FBZ0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztJQUNuRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFlLENBQUM7SUFDOUMseUNBQXlDO0lBQ3pDLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDakYsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ25DLE1BQU0sT0FBTyxHQUFHLElBQUksa0JBQU8sQ0FBQztRQUN4QixnQkFBZ0I7UUFDaEIsZUFBZSxFQUFFO1lBQ2IsT0FBTyxFQUFFLE9BQU87U0FDbkI7S0FDRixDQUFDLENBQUM7SUFDTCxRQUFRLEdBQUcsUUFBUSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRXJELENBQUM7S0FBTSxDQUFDO0lBQ0osTUFBTSxLQUFLLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztJQUNsQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFlLENBQUMsQ0FBQztJQUNqQyxRQUFRLEdBQUcsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUMsTUFBTSxFQUFFLE1BQU0sRUFBQyxDQUFDLENBQUM7QUFDckQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQWdCLENBQUM7QUFFM0MsRUFBRSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsVUFBVSxFQUFFLENBQUMsR0FBRyxFQUFFLEVBQUU7SUFDM0MsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUFDLE1BQU0sR0FBRyxDQUFDO0lBQUMsQ0FBQztBQUMzQixDQUFDLENBQUMsQ0FBQztBQUVILGdCQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksWUFBWSxFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIiMhL3Vzci9iaW4vZW52IG5vZGVcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xuaW1wb3J0IHlhcmdzIGZyb20gXCJ5YXJnc1wiO1xuaW1wb3J0IHsgSW1wb3J0ZXIgfSBmcm9tICcuL2FuYWx5emUnO1xuaW1wb3J0IHsgRmFtaXhSZXBvc2l0b3J5IH0gZnJvbSBcIi4vbGliL2ZhbWl4L2ZhbWl4X3JlcG9zaXRvcnlcIjtcbmltcG9ydCB7IFByb2plY3QgfSBmcm9tIFwidHMtbW9ycGhcIjtcbmltcG9ydCB7IGNvbmZpZyB9IGZyb20gXCIuL2FuYWx5emVcIjtcblxuY29uc3QgYXJndiA9IHlhcmdzXG4gICAgLmV4YW1wbGUoYHRzMmZhbWl4IC1pIFwicGF0aC90by9wcm9qZWN0LyoqLyoudHNcIiAtbyBKU09OTW9kZWxzL3Byb2plY3ROYW1lLmpzb25gLCAnQ3JlYXRlcyBhIEpTT04tZm9ybWF0IEZhbWl4IG1vZGVsIG9mIHR5cGVzY3JpcHQgZmlsZXMuJylcbiAgICAuZXhhbXBsZShgdHMyZmFtaXggLWkgcGF0aC90by90c2NvbmZpZy5qc29uIC1vIEpTT05Nb2RlbHMvcHJvamVjdE5hbWUuanNvbmAsICdDcmVhdGVzIGEgSlNPTi1mb3JtYXQgbW9kZWwgb2YgYSB0eXBlc2NyaXB0IHByb2plY3QuJylcbiAgICAuYWxpYXMoJ2knLCAnaW5wdXQnKVxuICAgIC5uYXJncygnaScsIDEpXG4gICAgLmFsaWFzKCdvJywgJ291dHB1dCcpXG4gICAgLm5hcmdzKCdvJywgMSlcbiAgICAuYWxpYXMoJ2wnLCAnbG9nbGV2ZWwnKVxuICAgIC5uYXJncygnbCcsIDEpXG4gICAgLmRlZmF1bHQoJ2wnLCAzKVxuICAgIC5kZXNjcmliZSgnbCcsICdTZXQgbWluaW11bSBsb2dnaW5nIGxldmVsIDA6IHNpbGx5LCAxOiB0cmFjZSwgMjogZGVidWcsIDM6IGluZm8sIDQ6IHdhcm4sIDU6IGVycm9yLCA2OiBmYXRhbCcpXG4gICAgLmJvb2xlYW4oJ2dyYXBoZW1lcycpXG4gICAgLmRlZmF1bHQoJ2dyYXBoZW1lcycsIGZhbHNlKVxuICAgIC5kZXNjcmliZSgnZ3JhcGhlbWVzJywgJ1Byb2Nlc3MgZ3JhcGhlbWVzIChvdXRzaWRlIG9mIHRoZSBCTVApIHRvIGF2b2lkIHNvdXJjZSBhbmNob3Igb2Zmc2V0IGVycm9ycyAoZHVlIHRvIHBlcmZvcm1hbmNlIGlzc3VlcywgdGhpcyBpcyBkaXNhYmxlZCBieSBkZWZhdWx0KScpXG4gICAgLmRlbWFuZE9wdGlvbignaW5wdXQnKVxuICAgIC5kZW1hbmRPcHRpb24oJ291dHB1dCcpXG4gICAgLnBhcnNlU3luYygpO1xuXG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuL2FuYWx5emUnO1xubG9nZ2VyLnNldHRpbmdzLm1pbkxldmVsID0gTnVtYmVyKGFyZ3YubG9nbGV2ZWwpIGFzIG51bWJlcjtcbmNvbmZpZy5leHBlY3RHcmFwaGVtZXMgPSBhcmd2LmdyYXBoZW1lcyBhcyBib29sZWFuO1xuXG5jb25zdCBpbXBvcnRlciA9IG5ldyBJbXBvcnRlcigpO1xubGV0IGZhbWl4UmVwOiBGYW1peFJlcG9zaXRvcnk7XG5cbmlmICgoYXJndi5pbnB1dCBhcyBzdHJpbmcpLmVuZHNXaXRoKCd0c2NvbmZpZy5qc29uJykpIHtcbiAgICBjb25zdCB0c0NvbmZpZ0ZpbGVQYXRoID0gYXJndi5pbnB1dCBhcyBzdHJpbmc7XG4gICAgLy8gZ2V0IHRoZSBiYXNlVXJsIGZyb20gdGhlIHRzY29uZmlnIGZpbGVcbiAgICBjb25zdCBiYXNlVXJsID0gdHNDb25maWdGaWxlUGF0aC5zdWJzdHJpbmcoMCwgdHNDb25maWdGaWxlUGF0aC5sYXN0SW5kZXhPZignLycpKTtcbiAgICBsb2dnZXIuaW5mbyhgYmFzZVVybDogJHtiYXNlVXJsfWApO1xuICAgIGNvbnN0IHByb2plY3QgPSBuZXcgUHJvamVjdCh7XG4gICAgICAgIHRzQ29uZmlnRmlsZVBhdGgsXG4gICAgICAgIGNvbXBpbGVyT3B0aW9uczoge1xuICAgICAgICAgICAgYmFzZVVybDogYmFzZVVybCxcbiAgICAgICAgfVxuICAgICAgfSk7IFxuICAgIGZhbWl4UmVwID0gaW1wb3J0ZXIuZmFtaXhSZXBGcm9tUHJvamVjdChwcm9qZWN0KTtcblxufSBlbHNlIHtcbiAgICBjb25zdCBwYXRocyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgcGF0aHMucHVzaChhcmd2LmlucHV0IGFzIHN0cmluZyk7XG4gICAgZmFtaXhSZXAgPSBpbXBvcnRlci5mYW1peFJlcEZyb21QYXRocyhwYXRocyk7XG59XG5cbmNvbnN0IGpzb25PdXRwdXQgPSBmYW1peFJlcC5leHBvcnQoe2Zvcm1hdDogXCJqc29uXCJ9KTtcbmNvbnN0IGpzb25GaWxlUGF0aCA9IGFyZ3Yub3V0cHV0IGFzIHN0cmluZztcblxuZnMud3JpdGVGaWxlKGpzb25GaWxlUGF0aCwganNvbk91dHB1dCwgKGVycikgPT4ge1xuICAgIGlmIChlcnIpIHsgdGhyb3cgZXJyOyB9XG59KTtcblxubG9nZ2VyLmluZm8oYENyZWF0ZWQ6ICR7anNvbkZpbGVQYXRofWApOyBcbiJdfQ==
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
|
@@ -51,4 +61,4 @@ fs.writeFile(jsonFilePath, jsonOutput, (err) => {
|
|
|
51
61
|
}
|
|
52
62
|
});
|
|
53
63
|
console.info(`Created: ${jsonFilePath}`);
|
|
54
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
64
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHMyZmFtaXgtdHNjb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdHMyZmFtaXgtdHNjb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsa0RBQTBCO0FBQzFCLHVDQUFxQztBQUNyQyx1Q0FBbUM7QUFFbkMsTUFBTSxRQUFRLEdBQUcsSUFBSSxrQkFBUSxFQUFFLENBQUM7QUFFaEMsTUFBTSxJQUFJLEdBQUcsZUFBSztLQUNmLE9BQU8sQ0FBQyxxR0FBcUcsRUFBRSxxREFBcUQsQ0FBQztLQUNySyxLQUFLLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQztLQUNuQixLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztLQUNiLEtBQUssQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDO0tBQ3BCLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0tBQ2IsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQyxTQUFTLEVBQUUsQ0FBQztBQUU1RCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxLQUFlLENBQUM7QUFFOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxrQkFBTyxDQUFDO0lBQzFCLGdCQUFnQjtDQUNqQixDQUFDLENBQUM7QUFFSCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDdkQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO0FBQ3RDLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFnQixDQUFDO0FBRTNDLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxFQUFFLFVBQVUsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFO0lBQzdDLElBQUksR0FBRyxFQUFFLENBQUM7UUFBQyxNQUFNLEdBQUcsQ0FBQztJQUFDLENBQUM7QUFDekIsQ0FBQyxDQUFDLENBQUM7QUFFSCxPQUFPLENBQUMsSUFBSSxDQUFDLFlBQVksWUFBWSxFQUFFLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiO1xyXG5pbXBvcnQgeWFyZ3MgZnJvbSBcInlhcmdzXCI7XHJcbmltcG9ydCB7IEltcG9ydGVyIH0gZnJvbSBcIi4vYW5hbHl6ZVwiO1xyXG5pbXBvcnQgeyBQcm9qZWN0IH0gZnJvbSBcInRzLW1vcnBoXCI7XHJcblxyXG5jb25zdCBpbXBvcnRlciA9IG5ldyBJbXBvcnRlcigpO1xyXG5cclxuY29uc3QgYXJndiA9IHlhcmdzXHJcbiAgLmV4YW1wbGUoYHRzLW5vZGUgc3JjL3RzMmZhbWl4LXRzY29uZmlnLnRzIC1pIC4uL3BhdGgvdG8vcHJvamVjdC90c2NvbmZpZy5qc29uIC1vIEpTT05Nb2RlbHMvcHJvamVjdE5hbWUuanNvbmAsICdjcmVhdGVzIGEgSlNPTi1mb3JtYXQgbW9kZWwgb2YgYSB0eXBlc2NyaXB0IHByb2plY3QnKVxyXG4gIC5hbGlhcygnaScsICdpbnB1dCcpXHJcbiAgLm5hcmdzKCdpJywgMSlcclxuICAuYWxpYXMoJ28nLCAnb3V0cHV0JylcclxuICAubmFyZ3MoJ28nLCAxKVxyXG4gIC5kZW1hbmRPcHRpb24oJ2lucHV0JykuZGVtYW5kT3B0aW9uKCdvdXRwdXQnKS5wYXJzZVN5bmMoKTtcclxuXHJcbmNvbnN0IHRzQ29uZmlnRmlsZVBhdGggPSBhcmd2LmlucHV0IGFzIHN0cmluZztcclxuXHJcbmNvbnN0IHByb2plY3QgPSBuZXcgUHJvamVjdCh7XHJcbiAgdHNDb25maWdGaWxlUGF0aFxyXG59KTsgIFxyXG5cclxuY29uc3QgZmFtaXhSZXAgPSBpbXBvcnRlci5mYW1peFJlcEZyb21Qcm9qZWN0KHByb2plY3QpO1xyXG5jb25zdCBqc29uT3V0cHV0ID0gZmFtaXhSZXAuZ2V0SlNPTigpO1xyXG5jb25zdCBqc29uRmlsZVBhdGggPSBhcmd2Lm91dHB1dCBhcyBzdHJpbmc7XHJcblxyXG5mcy53cml0ZUZpbGUoanNvbkZpbGVQYXRoLCBqc29uT3V0cHV0LCAoZXJyKSA9PiB7XHJcbiAgaWYgKGVycikgeyB0aHJvdyBlcnI7IH1cclxufSk7XHJcblxyXG5jb25zb2xlLmluZm8oYENyZWF0ZWQ6ICR7anNvbkZpbGVQYXRofWApOyBcclxuIl19
|
|
@@ -514,44 +514,54 @@ class EntityDictionary {
|
|
|
514
514
|
-fmxAliasMap: Map<string, Famix.Alias>
|
|
515
515
|
-fmxClassMap: Map<string, Famix.Class | Famix.ParametricClass>
|
|
516
516
|
-fmxInterfaceMap: Map<string, Famix.Interface | Famix.ParametricInterface>
|
|
517
|
-
-fmxModuleMap: Map<
|
|
517
|
+
-fmxModuleMap: Map<ModuleDeclaration, Famix.Module>
|
|
518
518
|
-fmxFileMap: Map<string, Famix.Module | Famix.ScriptEntity>
|
|
519
|
-
-fmxTypeMap: Map<
|
|
519
|
+
-fmxTypeMap: Map<TSMorphTypeDeclaration, Famix.Type | Famix.ParameterType>
|
|
520
|
+
-fmxPrimitiveTypeMap: Map<string, Famix.PrimitiveType>
|
|
520
521
|
-fmxFunctionAndMethodMap: Map<string, Famix.Method | Famix.ParametricMethod | Famix.Function | Famix.ParametricFunction>
|
|
522
|
+
-fmxArrowFunctionMap: Map<string, Famix.ArrowFunction>
|
|
523
|
+
-fmxParameterMap: Map<ParameterDeclaration, Famix.Parameter>
|
|
524
|
+
-fmxVariableMap: Map<VariableDeclaration, Famix.Variable>
|
|
525
|
+
-fmxImportClauseMap: Map<ImportEqualsDeclaration | ImportDeclaration, Famix.ImportClause>
|
|
526
|
+
-fmxEnumMap: Map<EnumDeclaration, Famix.Enum>
|
|
527
|
+
-fmxInheritanceMap: Map<string, Famix.Inheritance>
|
|
521
528
|
-UNKNOWN_VALUE: string
|
|
522
529
|
+fmxElementObjectMap: Map<Famix.Entity, TSMorphObjectType>
|
|
523
530
|
+tsMorphElementObjectMap: Map<TSMorphObjectType, Famix.Entity>
|
|
524
531
|
+addSourceAnchor(fmx: Famix.SourcedEntity, node: TSMorphObjectType): Famix.IndexedFileAnchor
|
|
525
532
|
+makeFamixIndexFileAnchor(sourceElement: TSMorphObjectType, famixElement: Famix.SourcedEntity): void
|
|
526
533
|
+createOrGetFamixFile(f: SourceFile, isModule: boolean): Famix.Module | Famix.ScriptEntity
|
|
527
|
-
+createOrGetFamixModule(
|
|
528
|
-
+createFamixAlias(
|
|
534
|
+
+createOrGetFamixModule(moduleDeclaration: ModuleDeclaration): Famix.Module
|
|
535
|
+
+createFamixAlias(typeAliasDeclaration: TypeAliasDeclaration): Famix.Alias
|
|
529
536
|
+createOrGetFamixClass(cls: ClassDeclaration): Famix.Class | Famix.ParametricClass
|
|
530
537
|
+createOrGetFamixInterface(inter: InterfaceDeclaration): Famix.Interface | Famix.ParametricInterface
|
|
531
538
|
+createOrGetFamixConcreteElement(concreteElement: ParametricVariantType, concreteElementDeclaration: ConcreteElementTSMorphType, concreteArguments: TypeNode<ts.TypeNode>[]): ParametricVariantType
|
|
532
539
|
+createFamixProperty(property: PropertyDeclaration | PropertySignature): Famix.Property
|
|
533
|
-
+createOrGetFamixMethod(method:
|
|
534
|
-
+createOrGetFamixFunction(func:
|
|
535
|
-
+
|
|
540
|
+
+createOrGetFamixMethod(method: ConstructorDeclaration | MethodSignature | GetAccessorDeclaration | SetAccessorDeclaration | MethodDeclaration, currentCC: { [key: string]: number; }): Famix.Method | Famix.ParametricMethod | Famix.Accessor
|
|
541
|
+
+createOrGetFamixFunction(func: FunctionExpression | FunctionDeclaration, currentCC: { [key: string]: number; }): Famix.Function | Famix.ParametricFunction
|
|
542
|
+
+createOrGetFamixParameter(param: ParameterDeclaration): Famix.Parameter
|
|
536
543
|
+createFamixParameterType(tp: TypeParameterDeclaration): Famix.ParameterType
|
|
537
|
-
+
|
|
538
|
-
+
|
|
539
|
-
+createFamixEnum(enumEntity: EnumDeclaration): Famix.Enum
|
|
544
|
+
+createOrGetFamixVariable(variable: VariableDeclaration): Famix.Variable
|
|
545
|
+
+createOrGetFamixEnum(enumEntity: EnumDeclaration): Famix.Enum
|
|
540
546
|
+createFamixEnumValue(enumMember: EnumMember): Famix.EnumValue
|
|
541
|
-
+createOrGetFamixDecorator(decorator: Decorator, decoratedEntity:
|
|
547
|
+
+createOrGetFamixDecorator(decorator: Decorator, decoratedEntity: PropertyDeclaration | GetAccessorDeclaration | SetAccessorDeclaration | ParameterDeclaration | ClassDeclaration | MethodDeclaration): Famix.Decorator
|
|
542
548
|
+createFamixComment(comment: CommentRange, fmxScope: Famix.NamedEntity, isJSDoc: boolean): Famix.Comment
|
|
543
|
-
+createOrGetFamixType(
|
|
549
|
+
+createOrGetFamixType(typeNameArg: string, tsMorphType: Type<ts.Type> | undefined, element: TSMorphTypeDeclaration): Famix.Type
|
|
550
|
+
+createOrGetFamixParametricType(typeName: string, element: TSMorphParametricType): Famix.Type
|
|
551
|
+
+createOrGetFamixPrimitiveType(typeName: string): Famix.PrimitiveType
|
|
544
552
|
+createFamixAccess(node: Identifier, id: number): void
|
|
545
|
-
+createFamixInvocation(
|
|
546
|
-
+
|
|
553
|
+
+createFamixInvocation(nodeReferringToInvocable: Identifier, invocable: InvocableType, id: number): void
|
|
554
|
+
+createOrGetFamixInheritance(baseClassOrInterface: ClassDeclaration | InterfaceDeclaration, inheritedClassOrInterface: ClassDeclaration | InterfaceDeclaration | ExpressionWithTypeArguments): void
|
|
555
|
+
+createOrGetFamixClassStub(unresolvedInheritedClass: ExpressionWithTypeArguments): Famix.Class
|
|
556
|
+
+createOrGetFamixInterfaceStub(unresolvedInheritedInterface: ExpressionWithTypeArguments): Famix.Interface
|
|
547
557
|
+createFamixImportClause(importedEntity: Famix.NamedEntity, importingEntity: Famix.Module): void
|
|
548
|
-
+
|
|
549
|
-
+
|
|
558
|
+
+oldCreateOrGetFamixImportClause(importClauseInfo: { importDeclaration?: ImportEqualsDeclaration | ImportDeclaration | undefined; importerSourceFile: SourceFile; moduleSpecifierFilePath: string; importElement: ImportSpecifier | Identifier; isInExports: boolean; isDefaultExport: boolean; }): void
|
|
559
|
+
+createOrGetFamixArrowFunction(arrowExpression: Expression<ts.Expression>, currentCC: { [key: string]: number; }): Famix.ParametricArrowFunction | Famix.ArrowFunction
|
|
550
560
|
+createFamixConcretisation(conEntity: Famix.ParametricClass | Famix.ParametricInterface | Famix.ParametricMethod | Famix.ParametricFunction, genEntity: Famix.ParametricClass | Famix.ParametricInterface | Famix.ParametricMethod | Famix.ParametricFunction): Famix.Concretisation
|
|
551
561
|
+createFamixParameterConcretisation(concretisation: Famix.Concretisation): Famix.ParameterConcretisation | undefined
|
|
552
562
|
+createFamixConcretisationClassOrInterfaceSpecialisation(element: ClassDeclaration | InterfaceDeclaration): void
|
|
553
563
|
+createFamixConcretisationGenericInstantiation(cls: ClassDeclaration): void
|
|
554
|
-
+createFamixConcretisationFunctionInstantiation(element:
|
|
564
|
+
+createFamixConcretisationFunctionInstantiation(element: FunctionDeclaration | MethodDeclaration): void
|
|
555
565
|
+createFamixConcretisationInterfaceClass(cls: ClassDeclaration): void
|
|
556
566
|
+createFamixConcretisationTypeInstanciation(element: ClassDeclaration | InterfaceDeclaration): void
|
|
557
567
|
+convertToRelativePath(absolutePath: string, absolutePathProject: string): string
|
|
@@ -575,6 +585,7 @@ class FamixRepository {
|
|
|
575
585
|
+setAbsolutePath(path: string): void
|
|
576
586
|
+getFamixEntityById(id: number): FamixBaseElement | undefined
|
|
577
587
|
+getFamixEntityByFullyQualifiedName(fullyQualifiedName: string): FamixBaseElement | undefined
|
|
588
|
+
+getFamixAccessByAccessorAndVariable(accessor: Famix.ContainerEntity, variable: Famix.StructuralEntity): Famix.Access | undefined
|
|
578
589
|
+export(arg0: { format: string; }): string
|
|
579
590
|
+_getAllEntities(): Set<FamixBaseElement>
|
|
580
591
|
+_getAllEntitiesWithType(theType: string): Set<FamixBaseElement>
|
|
@@ -591,6 +602,7 @@ class FamixRepository {
|
|
|
591
602
|
+_methodParentsAsSetFromClass(className: string): Set<Type>
|
|
592
603
|
+_initMapFromModel(model: string): Map<number, unknown>
|
|
593
604
|
+addElement(element: FamixBaseElement): void
|
|
605
|
+
-validateFQNs(): void
|
|
594
606
|
+getJSON(): string
|
|
595
607
|
}
|
|
596
608
|
class Importer {
|