@cdktn/commons 0.23.0-pre.4 → 0.23.0-pre.7
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/eslint.config.mjs +4 -0
- package/package.json +14 -14
- package/src/config.d.ts.map +1 -1
- package/src/config.js +1 -1
package/eslint.config.mjs
CHANGED
|
@@ -30,6 +30,7 @@ export default [
|
|
|
30
30
|
"**/coverage",
|
|
31
31
|
"**/*.d.ts",
|
|
32
32
|
"**/*.js",
|
|
33
|
+
"**/*.mjs",
|
|
33
34
|
],
|
|
34
35
|
},
|
|
35
36
|
...tseslint.config(eslint.configs.recommended, tseslint.configs.recommended),
|
|
@@ -52,6 +53,9 @@ export default [
|
|
|
52
53
|
|
|
53
54
|
languageOptions: {
|
|
54
55
|
parser: tsParser,
|
|
56
|
+
parserOptions: {
|
|
57
|
+
tsconfigRootDir: import.meta.dirname,
|
|
58
|
+
},
|
|
55
59
|
},
|
|
56
60
|
|
|
57
61
|
rules: {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cdktn/commons",
|
|
3
|
-
"version": "0.23.0-pre.
|
|
3
|
+
"version": "0.23.0-pre.7",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -40,36 +40,36 @@
|
|
|
40
40
|
],
|
|
41
41
|
"license": "MPL-2.0",
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@sentry/node": "7.120.
|
|
44
|
-
"cdktn": "0.23.0-pre.
|
|
43
|
+
"@sentry/node": "7.120.4",
|
|
44
|
+
"cdktn": "0.23.0-pre.7",
|
|
45
45
|
"ci-info": "3.9.0",
|
|
46
46
|
"codemaker": "1.112.0",
|
|
47
47
|
"cross-spawn": "7.0.6",
|
|
48
|
-
"follow-redirects": "1.15.
|
|
49
|
-
"fs-extra": "11.3.
|
|
48
|
+
"follow-redirects": "1.15.11",
|
|
49
|
+
"fs-extra": "11.3.4",
|
|
50
50
|
"log4js": "6.9.1",
|
|
51
51
|
"strip-ansi": "6.0.1",
|
|
52
52
|
"uuid": "9.0.1",
|
|
53
|
-
"validator": "13.15.
|
|
53
|
+
"validator": "13.15.26"
|
|
54
54
|
},
|
|
55
55
|
"devDependencies": {
|
|
56
|
-
"@eslint/compat": "^1.
|
|
57
|
-
"@eslint/eslintrc": "^3.3.
|
|
58
|
-
"@eslint/js": "^9.
|
|
56
|
+
"@eslint/compat": "^1.4.1",
|
|
57
|
+
"@eslint/eslintrc": "^3.3.5",
|
|
58
|
+
"@eslint/js": "^9.39.4",
|
|
59
59
|
"@types/follow-redirects": "1.14.4",
|
|
60
60
|
"@types/fs-extra": "11.0.4",
|
|
61
61
|
"@types/uuid": "9.0.8",
|
|
62
62
|
"@types/validator": "13.15.10",
|
|
63
|
-
"@typescript-eslint/parser": "^8.
|
|
64
|
-
"eslint": "^9.
|
|
65
|
-
"eslint-plugin-prettier": "^5.
|
|
63
|
+
"@typescript-eslint/parser": "^8.57.0",
|
|
64
|
+
"eslint": "^9.39.4",
|
|
65
|
+
"eslint-plugin-prettier": "^5.5.5",
|
|
66
66
|
"eslint-plugin-react": "7.37.5",
|
|
67
67
|
"jest": "^29.7.0",
|
|
68
68
|
"lint-staged": "^15.5.2",
|
|
69
|
-
"ts-jest": "29.
|
|
69
|
+
"ts-jest": "29.4.6",
|
|
70
70
|
"tsc-files": "1.1.4",
|
|
71
71
|
"typescript": "5.4.5",
|
|
72
|
-
"typescript-eslint": "^8.
|
|
72
|
+
"typescript-eslint": "^8.57.0"
|
|
73
73
|
},
|
|
74
74
|
"lint-staged": {
|
|
75
75
|
"src/**/*.{ts,tsx}": "tsc-files ambient.d.ts --noEmit"
|
package/src/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,oBAAY,QAAQ;IAClB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,EAAE,OAAO;CACV;AAED,eAAO,MAAM,SAAS,YAMrB,CAAC;AAKF,eAAO,MAAM,eAAe;;;CAG3B,CAAC;AAKF,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,qBAAa,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["config.ts"],"names":[],"mappings":"AAAA;;;GAGG;AASH,oBAAY,QAAQ;IAClB,UAAU,eAAe;IACzB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,EAAE,OAAO;CACV;AAED,eAAO,MAAM,SAAS,YAMrB,CAAC;AAKF,eAAO,MAAM,eAAe;;;CAG3B,CAAC;AAKF,MAAM,WAAW,6BAA6B;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAMD,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAErD;AAED,qBAAa,yBAA0B,YAAW,6BAA6B;IAC7E,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjD,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjC,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEvB,IAAI,EAAE,6BAA6B,GAAG,MAAM;IAsBxD,IAAW,SAAS,WAEnB;IAED,IAAW,QAAQ,WAElB;IAED,OAAO,CAAC,yBAAyB;CA2GlC;AAED,qBAAa,2BAA4B,YAAW,6BAA6B;IAC/E,SAAgB,IAAI,EAAE,MAAM,CAAC;IAC7B,SAAgB,MAAM,EAAE,MAAM,CAAC;IAC/B,SAAgB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjC,SAAgB,GAAG,EAAE,MAAM,CAAC;IAC5B,SAAgB,SAAS,CAAC,EAAE,MAAM,CAAC;gBAEvB,IAAI,EAAE,IAAI,CAAC,6BAA6B,EAAE,KAAK,CAAC,GAAG,MAAM;IAiBrE,OAAO,CAAC,yBAAyB;CAoBlC;AAED,MAAM,WAAW,MAAM;IACrB,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,eAAe,EAAE,MAAM,CAAC;IACjC,kBAAkB,CAAC,EAAE,2BAA2B,EAAE,CAAC;IACnD,gBAAgB,CAAC,EAAE,yBAAyB,EAAE,CAAC;IAC/C,QAAQ,CAAC,OAAO,CAAC,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;CAC3C;AAED,eAAO,MAAM,WAAW,gBAAiB,MAAM,WAuB9C,CAAC;AAEF,wBAAgB,cAAc,CAC5B,UAAU,SAAwC,GACjD,MAAM,CAQR;AAED,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAIlE;AAED,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,cAS1C"}
|
package/src/config.js
CHANGED
|
@@ -264,4 +264,4 @@ function logTimespan(message) {
|
|
|
264
264
|
};
|
|
265
265
|
}
|
|
266
266
|
exports.logTimespan = logTimespan;
|
|
267
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsNkNBQStCO0FBQy9CLDJDQUE2QjtBQUM3Qix1Q0FBbUM7QUFDbkMseURBQXNEO0FBQ3RELHFDQUE4QjtBQUM5Qix5Q0FBeUM7QUFFekMsSUFBWSxRQU1YO0FBTkQsV0FBWSxRQUFRO0lBQ2xCLHFDQUF5QixDQUFBO0lBQ3pCLDZCQUFpQixDQUFBO0lBQ2pCLDZCQUFpQixDQUFBO0lBQ2pCLHlCQUFhLENBQUE7SUFDYixxQkFBUyxDQUFBO0FBQ1gsQ0FBQyxFQU5XLFFBQVEsd0JBQVIsUUFBUSxRQU1uQjtBQUVZLFFBQUEsU0FBUyxHQUFHO0lBQ3ZCLFFBQVEsQ0FBQyxVQUFVO0lBQ25CLFFBQVEsQ0FBQyxNQUFNO0lBQ2YsUUFBUSxDQUFDLElBQUk7SUFDYixRQUFRLENBQUMsTUFBTTtJQUNmLFFBQVEsQ0FBQyxFQUFFO0NBQ1osQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDO0FBRXpDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUNwQixRQUFBLGVBQWUsR0FBRztJQUM3QixNQUFNLEVBQUUsV0FBVztJQUNuQixlQUFlLEVBQUUsTUFBTTtDQUN4QixDQUFDO0FBRUYsU0FBUyxTQUFTLENBQUMsS0FBd0I7SUFDekMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFTRCxTQUFTLGFBQWEsQ0FBQyxNQUFjO0lBQ25DLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRCxTQUFnQixhQUFhLENBQUMsTUFBYztJQUMxQyxPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENB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QyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQzlCLGlCQUFpQixHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVELE9BQU8sSUFBQSxtQkFBVyxFQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDeEMsQ0FBQztBQVZELHdDQVVDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsTUFBYztJQUN2RCxPQUFPLENBQ0wsU0FBUyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FDM0UsQ0FBQztBQUNKLENBQUM7QUFKRCxnRUFJQztBQUVELFNBQWdCLFdBQVcsQ0FBQyxPQUFlO0lBQ3pDLGdCQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQzlDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUV6QixPQUFPLFNBQVMsY0FBYztRQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxRQUFRLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUM3QixnQkFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sU0FBUyxRQUFRLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUMsQ0FBQztBQUNKLENBQUM7QUFURCxrQ0FTQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5pbXBvcnQgeyBpc1JlZ2lzdHJ5TW9kdWxlIH0gZnJvbSBcIi4vdGVycmFmb3JtLW1vZHVsZVwiO1xuaW1wb3J0IHsgZW52IH0gZnJvbSBcInByb2Nlc3NcIjtcbmltcG9ydCB7IHRvUGFzY2FsQ2FzZSB9IGZyb20gXCJjb2RlbWFrZXJcIjtcblxuZXhwb3J0IGVudW0gTGFuZ3VhZ2Uge1xuICBUWVBFU0NSSVBUID0gXCJ0eXBlc2NyaXB0XCIsXG4gIFBZVEhPTiA9IFwicHl0aG9uXCIsXG4gIENTSEFSUCA9IFwiY3NoYXJwXCIsXG4gIEpBVkEgPSBcImphdmFcIixcbiAgR08gPSBcImdvXCIsXG59XG5cbmV4cG9ydCBjb25zdCBMQU5HVUFHRVMgPSBbXG4gIExhbmd1YWdlLlRZUEVTQ1JJUFQsXG4gIExhbmd1YWdlLlBZVEhPTixcbiAgTGFuZ3VhZ2UuSkFWQSxcbiAgTGFuZ3VhZ2UuQ1NIQVJQLFxuICBMYW5ndWFnZS5HTyxcbl07XG5cbmNvbnN0IENPTlRFWFRfRU5WID0gXCJDREtURl9DT05URVhUX0pTT05cIjtcblxuY29uc3QgQ09ORklHX0ZJTEUgPSBcImNka3RmLmpzb25cIjtcbmV4cG9ydCBjb25zdCBDT05GSUdfREVGQVVMVFMgPSB7XG4gIG91dHB1dDogXCJjZGt0Zi5vdXRcIixcbiAgY29kZU1ha2VyT3V0cHV0OiBcIi5nZW5cIixcbn07XG5cbmZ1bmN0aW9uIGlzUHJlc2VudChpbnB1dDogYW55W10gfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoaW5wdXQpICYmIGlucHV0Lmxlbmd0aCA+IDA7XG59XG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0TG9jYWxNYXRjaChzb3VyY2U6IHN0cmluZyk6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsIHtcbiAgcmV0dXJuIHNvdXJjZS5tYXRjaCgvXihcXC5cXC98XFwuXFwuXFwvfFxcLlxcXFxcXFxcfFxcLlxcLlxcXFxcXFxcKSguKikvKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTG9jYWxNb2R1bGUoc291cmNlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldExvY2FsTWF0Y2goc291cmNlKSAhPT0gbnVsbDtcbn1cblxuZXhwb3J0IGNsYXNzIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnRcbiAgaW1wbGVtZW50cyBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludFxue1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgc291cmNlOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBsb2NhbFNvdXJjZUFic29sdXRlUGF0aD86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihpdGVtOiBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB8IHN0cmluZykge1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZURlcGVuZGVuY3lDb25zdHJhaW50KGl0ZW0pO1xuICAgICAgdGhpcy5uYW1lID0gcGFyc2VkLm5hbWU7XG4gICAgICB0aGlzLnNvdXJjZSA9IHBhcnNlZC5zb3VyY2U7XG4gICAgICB0aGlzLmZxbiA9IHBhcnNlZC5mcW47XG4gICAgICB0aGlzLnZlcnNpb24gPSBwYXJzZWQudmVyc2lvbjtcbiAgICAgIHRoaXMubmFtZXNwYWNlID0gcGFyc2VkLm5hbWVzcGFjZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zb3VyY2UgPSBpdGVtLnNvdXJjZTtcbiAgICAgIHRoaXMubmFtZSA9IGl0ZW0ubmFtZTtcbiAgICAgIHRoaXMuZnFuID0gaXRlbS5uYW1lO1xuICAgICAgdGhpcy52ZXJzaW9uID0gaXRlbS52ZXJzaW9uO1xuICAgICAgdGhpcy5uYW1lc3BhY2UgPSBpdGVtLm5hbWVzcGFjZTtcbiAgICB9XG5cbiAgICBjb25zdCBsb2NhbE1hdGNoID0gZ2V0TG9jYWxNYXRjaCh0aGlzLnNvdXJjZSk7XG4gICAgaWYgKGxvY2FsTWF0Y2gpIHtcbiAgICAgIHRoaXMubG9jYWxTb3VyY2VBYnNvbHV0ZVBhdGggPSBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgdGhpcy5zb3VyY2UpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2xhc3NOYW1lKCkge1xuICAgIHJldHVybiB0b1Bhc2NhbENhc2UodGhpcy5uYW1lLnJlcGxhY2UoL1stLy5dL2csIFwiX1wiKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZpbGVOYW1lKCkge1xuICAgIHJldHVybiB0aGlzLm5hbWVzcGFjZSA/IGAke3RoaXMubmFtZXNwYWNlfS8ke3RoaXMubmFtZX1gIDogdGhpcy5uYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBwYXJzZURlcGVuZGVuY3lDb25zdHJhaW50KFxuICAgIGl0ZW06IHN0cmluZyxcbiAgKTogVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQge1xuICAgIGNvbnN0IGxvY2FsTWF0Y2ggPSBnZXRMb2NhbE1hdGNoKGl0ZW0pO1xuICAgIGlmIChsb2NhbE1hdGNoKSB7XG4gICAgICBjb25zdCBmcW4gPSBsb2NhbE1hdGNoWzJdO1xuICAgICAgY29uc3QgbmFtZVBhcnRzID0gZnFuLnNwbGl0KFwiL1wiKTtcbiAgICAgIGNvbnN0IG5hbWUgPSBuYW1lUGFydHMucG9wKCkgPz8gZnFuO1xuICAgICAgY29uc3QgbmFtZXNwYWNlID0gbmFtZVBhcnRzLnBvcCgpO1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBmcW4sXG4gICAgICAgIHNvdXJjZTogaXRlbSxcbiAgICAgICAgbmFtZXNwYWNlLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCBbc291cmNlLCB2ZXJzaW9uXSA9IGl0ZW0uc3BsaXQoXCJAXCIpO1xuICAgIGxldCBtb2R1bGVQYXJ0cyA9IHNvdXJjZS5zcGxpdChcIi8vXCIpO1xuICAgIGlmIChpc1JlZ2lzdHJ5TW9kdWxlKG1vZHVsZVBhcnRzWzBdKSkge1xuICAgICAgY29uc3QgbmFtZVBhcnRzID0gbW9kdWxlUGFydHNbMF0uc3BsaXQoXCIvXCIpO1xuICAgICAgY29uc3QgcHJvdmlkZXIgPSBuYW1lUGFydHMucG9wKCk7IC8vIGxhc3QgcGFydCBpcyB0aGUgcHJvdmlkZXJcbiAgICAgIGxldCBuYW1lID0gbmFtZVBhcnRzLnBvcCgpID8/IHNvdXJjZTtcbiAgICAgIGxldCBuYW1lc3BhY2UgPSBgJHtuYW1lUGFydHMucG9wKCl9LyR7cHJvdmlkZXJ9YDtcblxuICAgICAgaWYgKG1vZHVsZVBhcnRzLmxlbmd0aCA+IDEpIHtcbiAgICAgICAgY29uc3QgbW9kdWxlTmFtZVBhcnRzID0gbW9kdWxlUGFydHNbMV0uc3BsaXQoXCIvXCIpO1xuICAgICAgICBjb25zdCBtb2R1bGVOYW1lID0gbW9kdWxlTmFtZVBhcnRzLnBvcCgpO1xuICAgICAgICBuYW1lc3BhY2UgPSBgJHtuYW1lc3BhY2V9LyR7bmFtZX0vJHttb2R1bGVOYW1lUGFydHMuam9pbihcIi9cIil9YDtcbiAgICAgICAgbmFtZSA9IG1vZHVsZU5hbWUgPz8gbmFtZTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbmFtZSxcbiAgICAgICAgc291cmNlLFxuICAgICAgICB2ZXJzaW9uLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICAgIGZxbjogc291cmNlLnJlcGxhY2UoXCIvL1wiLCBcIi9cIikucmVwbGFjZSgvXFwuL2csIFwiLVwiKSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgbGV0IHRvUHJvY2VzcyA9IGl0ZW07IC8vIHByb2Nlc3Mgb25lIHBhcnQgYXQgYSB0aW1lXG5cbiAgICAvLyBzdHJpcCBvZmYgYW55IHByZWZpeFxuICAgIGNvbnN0IHByZWZpeE1hdGNoID0gdG9Qcm9jZXNzLm1hdGNoKC9eKFthLXpBLVowLTldKik6OiguKikvKTtcbiAgICBpZiAocHJlZml4TWF0Y2gpIHtcbiAgICAgIHRvUHJvY2VzcyA9IHByZWZpeE1hdGNoWzJdO1xuICAgIH1cblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgcHJvdG9jb2xcbiAgICBjb25zdCBwcm90b2NvbE1hdGNoID0gdG9Qcm9jZXNzLm1hdGNoKC9eKFthLXpBLVpdKik6XFwvXFwvKC4qKS8pO1xuICAgIGlmIChwcm90b2NvbE1hdGNoKSB7XG4gICAgICB0b1Byb2Nlc3MgPSBwcm90b2NvbE1hdGNoWzJdO1xuICAgIH1cblxuICAgIC8vIGFueXRoaW5nIGJlZm9yZSBsYXN0ICc6JyB3b24ndCBjb250cmlidXRlXG4gICAgY29uc3QgY29sb25QYXJ0cyA9IHRvUHJvY2Vzcy5zcGxpdChcIjpcIik7XG4gICAgdG9Qcm9jZXNzID0gY29sb25QYXJ0cy5wb3AoKSA/PyB0b1Byb2Nlc3M7XG5cbiAgICAvLyBzdHJpcCBvZmYgYW55IHBvcnRcbiAgICBjb25zdCBwb3J0TWF0Y2ggPSB0b1Byb2Nlc3MubWF0Y2goL15bXFxkXSooLiopLyk7XG4gICAgaWYgKHBvcnRNYXRjaCkge1xuICAgICAgdG9Qcm9jZXNzID0gcG9ydE1hdGNoWzFdO1xuICAgIH1cblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgaG9zdG5hbWVcbiAgICBjb25zdCBob3N0TWF0Y2ggPSB0b1Byb2Nlc3MubWF0Y2goL1teL10qXFwuW14vXSpcXC8oLiopLyk7XG4gICAgaWYgKGhvc3RNYXRjaCkge1xuICAgICAgdG9Qcm9jZXNzID0gaG9zdE1hdGNoWzFdO1xuICAgIH1cblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgYXJndW1lbnRzXG4gICAgY29uc3QgYXJndW1lbnRNYXRjaCA9IHRvUHJvY2Vzcy5tYXRjaCgvKC4qKVxcPy4qLyk7XG4gICAgaWYgKGFyZ3VtZW50TWF0Y2gpIHtcbiAgICAgIHRvUHJvY2VzcyA9IGFyZ3VtZW50TWF0Y2hbMV07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSB0eXBlc1xuICAgIHRvUHJvY2VzcyA9IHRvUHJvY2Vzcy5yZXBsYWNlKC9cXC5naXR8XFwuaGd8XFwuemlwLywgXCJcIik7XG5cbiAgICBtb2R1bGVQYXJ0cyA9IHRvUHJvY2Vzcy5zcGxpdChcIi8vXCIpO1xuICAgIGNvbnN0IG5hbWVQYXJ0cyA9IG1vZHVsZVBhcnRzWzBdLnNwbGl0KFwiL1wiKTtcbiAgICBsZXQgbmFtZSA9IG5hbWVQYXJ0cy5wb3AoKTtcbiAgICBsZXQgbmFtZXNwYWNlID0gbmFtZVBhcnRzLnBvcCgpO1xuICAgIGlmICghbmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNb2R1bGUgbmFtZSBzaG91bGQgYmUgcHJvcGVybHkgc2V0IGluICR7aXRlbX1gKTtcbiAgICB9XG5cbiAgICBpZiAobW9kdWxlUGFydHMubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgbW9kdWxlTmFtZVBhcnRzID0gbW9kdWxlUGFydHNbMV0uc3BsaXQoXCIvXCIpO1xuICAgICAgY29uc3QgbW9kdWxlTmFtZSA9IG1vZHVsZU5hbWVQYXJ0cy5wb3AoKTtcbiAgICAgIGlmIChuYW1lc3BhY2UpIHtcbiAgICAgICAgbmFtZXNwYWNlID0gYCR7bmFtZXNwYWNlfS8ke25hbWV9LyR7bW9kdWxlTmFtZVBhcnRzLmpvaW4oXCIvXCIpfWA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBuYW1lc3BhY2UgPSBgJHtuYW1lfS8ke21vZHVsZU5hbWVQYXJ0cy5qb2luKFwiL1wiKX1gO1xuICAgICAgfVxuICAgICAgbmFtZSA9IG1vZHVsZU5hbWUgPz8gbmFtZTtcbiAgICB9XG5cbiAgICByZXR1cm4ge1xuICAgICAgbmFtZSxcbiAgICAgIHNvdXJjZTogaXRlbSxcbiAgICAgIGZxbjogdG9Qcm9jZXNzLnJlcGxhY2UoXCIvL1wiLCBcIi9cIiksXG4gICAgICBuYW1lc3BhY2UsXG4gICAgfTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50XG4gIGltcGxlbWVudHMgVGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnRcbntcbiAgcHVibGljIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZTogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGZxbjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGl0ZW06IE9taXQ8VGVycmFmb3JtRGVwZW5kZW5jeUNvbnN0cmFpbnQsIFwiZnFuXCI+IHwgc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBpdGVtID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlRGVwZW5kZW5jeUNvbnN0cmFpbnQoaXRlbSk7XG4gICAgICB0aGlzLm5hbWUgPSBwYXJzZWQubmFtZTtcbiAgICAgIHRoaXMuZnFuID0gcGFyc2VkLmZxbjtcbiAgICAgIHRoaXMuc291cmNlID0gcGFyc2VkLmZxbjtcbiAgICAgIHRoaXMudmVyc2lvbiA9IHBhcnNlZC52ZXJzaW9uO1xuICAgICAgdGhpcy5uYW1lc3BhY2UgPSBwYXJzZWQubmFtZXNwYWNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5hbWUgPSBpdGVtLm5hbWU7XG4gICAgICB0aGlzLmZxbiA9IGl0ZW0ubmFtZTtcbiAgICAgIHRoaXMudmVyc2lvbiA9IGl0ZW0udmVyc2lvbjtcbiAgICAgIHRoaXMuc291cmNlID0gaXRlbS5zb3VyY2U7XG4gICAgICB0aGlzLm5hbWVzcGFjZSA9IGl0ZW0ubmFtZXNwYWNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcGFyc2VEZXBlbmRlbmN5Q29uc3RyYWludChcbiAgICBpdGVtOiBzdHJpbmcsXG4gICk6IFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50IHtcbiAgICBjb25zdCBbZnFuLCB2ZXJzaW9uXSA9IGl0ZW0uc3BsaXQoXCJAXCIpO1xuICAgIGNvbnN0IG5hbWVQYXJ0cyA9IGZxbi5zcGxpdChcIi9cIik7XG4gICAgY29uc3QgbmFtZSA9IG5hbWVQYXJ0cy5wb3AoKTtcbiAgICBjb25zdCBuYW1lc3BhY2UgPSBuYW1lUGFydHMucG9wKCk7XG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFByb3ZpZGVyIG5hbWUgc2hvdWxkIGJlIHByb3Blcmx5IHNldCBpbiAke2l0ZW19YCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHtcbiAgICAgIG5hbWUsXG4gICAgICBzb3VyY2U6IGZxbixcbiAgICAgIC8vIFRlcnJhZm9ybSBkb2Vzbid0IHN1cHBvcnQgKiwgaW5zdGVhZCBubyB2ZXJzaW9uIGlzIHNwZWNpZmllZFxuICAgICAgdmVyc2lvbjogdmVyc2lvbiA9PT0gXCIqXCIgPyB1bmRlZmluZWQgOiB2ZXJzaW9uLFxuICAgICAgZnFuLFxuICAgICAgbmFtZXNwYWNlLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb25maWcge1xuICByZWFkb25seSBhcHA/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxhbmd1YWdlPzogTGFuZ3VhZ2U7XG4gIHJlYWRvbmx5IG91dHB1dDogc3RyaW5nO1xuICByZWFkb25seSBjb2RlTWFrZXJPdXRwdXQ6IHN0cmluZztcbiAgdGVycmFmb3JtUHJvdmlkZXJzPzogVGVycmFmb3JtUHJvdmlkZXJDb25zdHJhaW50W107XG4gIHRlcnJhZm9ybU1vZHVsZXM/OiBUZXJyYWZvcm1Nb2R1bGVDb25zdHJhaW50W107XG4gIHJlYWRvbmx5IGNvbnRleHQ/OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuXG5leHBvcnQgY29uc3QgcGFyc2VDb25maWcgPSAoY29uZmlnSlNPTj86IHN0cmluZykgPT4ge1xuICBjb25zdCBjb25maWc6IENvbmZpZyA9IHtcbiAgICAuLi5DT05GSUdfREVGQVVMVFMsXG4gICAgLi4uSlNPTi5wYXJzZShjb25maWdKU09OIHx8IFwie31cIiksXG4gIH07XG5cbiAgaWYgKGlzUHJlc2VudChjb25maWcudGVycmFmb3JtTW9kdWxlcykpIHtcbiAgICBjb25maWcudGVycmFmb3JtTW9kdWxlcyA9IGNvbmZpZy50ZXJyYWZvcm1Nb2R1bGVzPy5tYXAoXG4gICAgICAobW9kKSA9PiBuZXcgVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludChtb2QpLFxuICAgICk7XG4gIH1cblxuICBpZiAoaXNQcmVzZW50KGNvbmZpZy50ZXJyYWZvcm1Qcm92aWRlcnMpKSB7XG4gICAgY29uZmlnLnRlcnJhZm9ybVByb3ZpZGVycyA9IGNvbmZpZy50ZXJyYWZvcm1Qcm92aWRlcnM/Lm1hcChcbiAgICAgIChwcm92aWRlcikgPT4gbmV3IFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludChwcm92aWRlciksXG4gICAgKTtcbiAgfVxuXG4gIGlmIChjb25maWcuY29udGV4dCkge1xuICAgIGVudltDT05URVhUX0VOVl0gPSBKU09OLnN0cmluZ2lmeShjb25maWcuY29udGV4dCk7XG4gIH1cblxuICByZXR1cm4gY29uZmlnO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIHJlYWRDb25maWdTeW5jKFxuICBjb25maWdGaWxlID0gcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIENPTkZJR19GSUxFKSxcbik6IENvbmZpZyB7XG4gIGxldCBjb25maWdGaWxlQ29udGVudDogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIGlmIChmcy5leGlzdHNTeW5jKGNvbmZpZ0ZpbGUpKSB7XG4gICAgY29uZmlnRmlsZUNvbnRlbnQgPSBmcy5yZWFkRmlsZVN5bmMoY29uZmlnRmlsZSkudG9TdHJpbmcoKTtcbiAgfVxuXG4gIHJldHVybiBwYXJzZUNvbmZpZyhjb25maWdGaWxlQ29udGVudCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzaG91bGRDaGVja0NvZGVNYWtlck91dHB1dChjb25maWc6IENvbmZpZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIGlzUHJlc2VudChjb25maWcudGVycmFmb3JtTW9kdWxlcykgfHwgaXNQcmVzZW50KGNvbmZpZy50ZXJyYWZvcm1Qcm92aWRlcnMpXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBsb2dUaW1lc3BhbihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgbG9nZ2VyLmRlYnVnKGBTdGFydCB0aW1lciBmb3IgJHttZXNzYWdlfS4uLmApO1xuICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7XG5cbiAgcmV0dXJuIGZ1bmN0aW9uIGxvZ1RpbWVzcGFuRW5kKCkge1xuICAgIGNvbnN0IGVuZCA9IERhdGUubm93KCk7XG4gICAgY29uc3QgZHVyYXRpb24gPSBlbmQgLSBzdGFydDtcbiAgICBsb2dnZXIuZGVidWcoYCR7bWVzc2FnZX0gdG9vayAke2R1cmF0aW9ufW1zYCk7XG4gIH07XG59XG4iXX0=
|
|
267
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7O0dBR0c7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBRUgsNkNBQStCO0FBQy9CLDJDQUE2QjtBQUM3Qix1Q0FBbUM7QUFDbkMseURBQXNEO0FBQ3RELHFDQUE4QjtBQUM5Qix5Q0FBeUM7QUFFekMsSUFBWSxRQU1YO0FBTkQsV0FBWSxRQUFRO0lBQ2xCLHFDQUF5QixDQUFBO0lBQ3pCLDZCQUFpQixDQUFBO0lBQ2pCLDZCQUFpQixDQUFBO0lBQ2pCLHlCQUFhLENBQUE7SUFDYixxQkFBUyxDQUFBO0FBQ1gsQ0FBQyxFQU5XLFFBQVEsd0JBQVIsUUFBUSxRQU1uQjtBQUVZLFFBQUEsU0FBUyxHQUFHO0lBQ3ZCLFFBQVEsQ0FBQyxVQUFVO0lBQ25CLFFBQVEsQ0FBQyxNQUFNO0lBQ2YsUUFBUSxDQUFDLElBQUk7SUFDYixRQUFRLENBQUMsTUFBTTtJQUNmLFFBQVEsQ0FBQyxFQUFFO0NBQ1osQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHLG9CQUFvQixDQUFDO0FBRXpDLE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQztBQUNwQixRQUFBLGVBQWUsR0FBRztJQUM3QixNQUFNLEVBQUUsV0FBVztJQUNuQixlQUFlLEVBQUUsTUFBTTtDQUN4QixDQUFDO0FBRUYsU0FBUyxTQUFTLENBQUMsS0FBd0I7SUFDekMsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFTRCxTQUFTLGFBQWEsQ0FBQyxNQUFjO0lBQ25DLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO0FBQzVELENBQUM7QUFFRCxTQUFnQixhQUFhLENBQUMsTUFBYztJQUMxQyxPQUFPLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLENB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QyxVQUFVLENBQUMsRUFBRSxDQUFDO1FBQzlCLGlCQUFpQixHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVELE9BQU8sSUFBQSxtQkFBVyxFQUFDLGlCQUFpQixDQUFDLENBQUM7QUFDeEMsQ0FBQztBQVZELHdDQVVDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsTUFBYztJQUN2RCxPQUFPLENBQ0wsU0FBUyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLFNBQVMsQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FDM0UsQ0FBQztBQUNKLENBQUM7QUFKRCxnRUFJQztBQUVELFNBQWdCLFdBQVcsQ0FBQyxPQUFlO0lBQ3pDLGdCQUFNLENBQUMsS0FBSyxDQUFDLG1CQUFtQixPQUFPLEtBQUssQ0FBQyxDQUFDO0lBQzlDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUV6QixPQUFPLFNBQVMsY0FBYztRQUM1QixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkIsTUFBTSxRQUFRLEdBQUcsR0FBRyxHQUFHLEtBQUssQ0FBQztRQUM3QixnQkFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLE9BQU8sU0FBUyxRQUFRLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUMsQ0FBQztBQUNKLENBQUM7QUFURCxrQ0FTQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tIFwiLi9sb2dnaW5nXCI7XG5pbXBvcnQgeyBpc1JlZ2lzdHJ5TW9kdWxlIH0gZnJvbSBcIi4vdGVycmFmb3JtLW1vZHVsZVwiO1xuaW1wb3J0IHsgZW52IH0gZnJvbSBcInByb2Nlc3NcIjtcbmltcG9ydCB7IHRvUGFzY2FsQ2FzZSB9IGZyb20gXCJjb2RlbWFrZXJcIjtcblxuZXhwb3J0IGVudW0gTGFuZ3VhZ2Uge1xuICBUWVBFU0NSSVBUID0gXCJ0eXBlc2NyaXB0XCIsXG4gIFBZVEhPTiA9IFwicHl0aG9uXCIsXG4gIENTSEFSUCA9IFwiY3NoYXJwXCIsXG4gIEpBVkEgPSBcImphdmFcIixcbiAgR08gPSBcImdvXCIsXG59XG5cbmV4cG9ydCBjb25zdCBMQU5HVUFHRVMgPSBbXG4gIExhbmd1YWdlLlRZUEVTQ1JJUFQsXG4gIExhbmd1YWdlLlBZVEhPTixcbiAgTGFuZ3VhZ2UuSkFWQSxcbiAgTGFuZ3VhZ2UuQ1NIQVJQLFxuICBMYW5ndWFnZS5HTyxcbl07XG5cbmNvbnN0IENPTlRFWFRfRU5WID0gXCJDREtURl9DT05URVhUX0pTT05cIjtcblxuY29uc3QgQ09ORklHX0ZJTEUgPSBcImNka3RmLmpzb25cIjtcbmV4cG9ydCBjb25zdCBDT05GSUdfREVGQVVMVFMgPSB7XG4gIG91dHB1dDogXCJjZGt0Zi5vdXRcIixcbiAgY29kZU1ha2VyT3V0cHV0OiBcIi5nZW5cIixcbn07XG5cbmZ1bmN0aW9uIGlzUHJlc2VudChpbnB1dDogYW55W10gfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkoaW5wdXQpICYmIGlucHV0Lmxlbmd0aCA+IDA7XG59XG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgcmVhZG9ubHkgdmVyc2lvbj86IHN0cmluZztcbiAgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcbn1cblxuZnVuY3Rpb24gZ2V0TG9jYWxNYXRjaChzb3VyY2U6IHN0cmluZyk6IFJlZ0V4cE1hdGNoQXJyYXkgfCBudWxsIHtcbiAgcmV0dXJuIHNvdXJjZS5tYXRjaCgvXihcXC5cXC98XFwuXFwuXFwvfFxcLlxcXFxcXFxcfFxcLlxcLlxcXFxcXFxcKSguKikvKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTG9jYWxNb2R1bGUoc291cmNlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgcmV0dXJuIGdldExvY2FsTWF0Y2goc291cmNlKSAhPT0gbnVsbDtcbn1cblxuZXhwb3J0IGNsYXNzIFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQgaW1wbGVtZW50cyBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IGxvY2FsU291cmNlQWJzb2x1dGVQYXRoPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgZnFuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZXNwYWNlPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKGl0ZW06IFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50IHwgc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiBpdGVtID09PSBcInN0cmluZ1wiKSB7XG4gICAgICBjb25zdCBwYXJzZWQgPSB0aGlzLnBhcnNlRGVwZW5kZW5jeUNvbnN0cmFpbnQoaXRlbSk7XG4gICAgICB0aGlzLm5hbWUgPSBwYXJzZWQubmFtZTtcbiAgICAgIHRoaXMuc291cmNlID0gcGFyc2VkLnNvdXJjZTtcbiAgICAgIHRoaXMuZnFuID0gcGFyc2VkLmZxbjtcbiAgICAgIHRoaXMudmVyc2lvbiA9IHBhcnNlZC52ZXJzaW9uO1xuICAgICAgdGhpcy5uYW1lc3BhY2UgPSBwYXJzZWQubmFtZXNwYWNlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNvdXJjZSA9IGl0ZW0uc291cmNlO1xuICAgICAgdGhpcy5uYW1lID0gaXRlbS5uYW1lO1xuICAgICAgdGhpcy5mcW4gPSBpdGVtLm5hbWU7XG4gICAgICB0aGlzLnZlcnNpb24gPSBpdGVtLnZlcnNpb247XG4gICAgICB0aGlzLm5hbWVzcGFjZSA9IGl0ZW0ubmFtZXNwYWNlO1xuICAgIH1cblxuICAgIGNvbnN0IGxvY2FsTWF0Y2ggPSBnZXRMb2NhbE1hdGNoKHRoaXMuc291cmNlKTtcbiAgICBpZiAobG9jYWxNYXRjaCkge1xuICAgICAgdGhpcy5sb2NhbFNvdXJjZUFic29sdXRlUGF0aCA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCB0aGlzLnNvdXJjZSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBjbGFzc05hbWUoKSB7XG4gICAgcmV0dXJuIHRvUGFzY2FsQ2FzZSh0aGlzLm5hbWUucmVwbGFjZSgvWy0vLl0vZywgXCJfXCIpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZmlsZU5hbWUoKSB7XG4gICAgcmV0dXJuIHRoaXMubmFtZXNwYWNlID8gYCR7dGhpcy5uYW1lc3BhY2V9LyR7dGhpcy5uYW1lfWAgOiB0aGlzLm5hbWU7XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRGVwZW5kZW5jeUNvbnN0cmFpbnQoXG4gICAgaXRlbTogc3RyaW5nLFxuICApOiBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gICAgY29uc3QgbG9jYWxNYXRjaCA9IGdldExvY2FsTWF0Y2goaXRlbSk7XG4gICAgaWYgKGxvY2FsTWF0Y2gpIHtcbiAgICAgIGNvbnN0IGZxbiA9IGxvY2FsTWF0Y2hbMl07XG4gICAgICBjb25zdCBuYW1lUGFydHMgPSBmcW4uc3BsaXQoXCIvXCIpO1xuICAgICAgY29uc3QgbmFtZSA9IG5hbWVQYXJ0cy5wb3AoKSA/PyBmcW47XG4gICAgICBjb25zdCBuYW1lc3BhY2UgPSBuYW1lUGFydHMucG9wKCk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIGZxbixcbiAgICAgICAgc291cmNlOiBpdGVtLFxuICAgICAgICBuYW1lc3BhY2UsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGNvbnN0IFtzb3VyY2UsIHZlcnNpb25dID0gaXRlbS5zcGxpdChcIkBcIik7XG4gICAgbGV0IG1vZHVsZVBhcnRzID0gc291cmNlLnNwbGl0KFwiLy9cIik7XG4gICAgaWYgKGlzUmVnaXN0cnlNb2R1bGUobW9kdWxlUGFydHNbMF0pKSB7XG4gICAgICBjb25zdCBuYW1lUGFydHMgPSBtb2R1bGVQYXJ0c1swXS5zcGxpdChcIi9cIik7XG4gICAgICBjb25zdCBwcm92aWRlciA9IG5hbWVQYXJ0cy5wb3AoKTsgLy8gbGFzdCBwYXJ0IGlzIHRoZSBwcm92aWRlclxuICAgICAgbGV0IG5hbWUgPSBuYW1lUGFydHMucG9wKCkgPz8gc291cmNlO1xuICAgICAgbGV0IG5hbWVzcGFjZSA9IGAke25hbWVQYXJ0cy5wb3AoKX0vJHtwcm92aWRlcn1gO1xuXG4gICAgICBpZiAobW9kdWxlUGFydHMubGVuZ3RoID4gMSkge1xuICAgICAgICBjb25zdCBtb2R1bGVOYW1lUGFydHMgPSBtb2R1bGVQYXJ0c1sxXS5zcGxpdChcIi9cIik7XG4gICAgICAgIGNvbnN0IG1vZHVsZU5hbWUgPSBtb2R1bGVOYW1lUGFydHMucG9wKCk7XG4gICAgICAgIG5hbWVzcGFjZSA9IGAke25hbWVzcGFjZX0vJHtuYW1lfS8ke21vZHVsZU5hbWVQYXJ0cy5qb2luKFwiL1wiKX1gO1xuICAgICAgICBuYW1lID0gbW9kdWxlTmFtZSA/PyBuYW1lO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBuYW1lLFxuICAgICAgICBzb3VyY2UsXG4gICAgICAgIHZlcnNpb24sXG4gICAgICAgIG5hbWVzcGFjZSxcbiAgICAgICAgZnFuOiBzb3VyY2UucmVwbGFjZShcIi8vXCIsIFwiL1wiKS5yZXBsYWNlKC9cXC4vZywgXCItXCIpLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBsZXQgdG9Qcm9jZXNzID0gaXRlbTsgLy8gcHJvY2VzcyBvbmUgcGFydCBhdCBhIHRpbWVcblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgcHJlZml4XG4gICAgY29uc3QgcHJlZml4TWF0Y2ggPSB0b1Byb2Nlc3MubWF0Y2goL14oW2EtekEtWjAtOV0qKTo6KC4qKS8pO1xuICAgIGlmIChwcmVmaXhNYXRjaCkge1xuICAgICAgdG9Qcm9jZXNzID0gcHJlZml4TWF0Y2hbMl07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSBwcm90b2NvbFxuICAgIGNvbnN0IHByb3RvY29sTWF0Y2ggPSB0b1Byb2Nlc3MubWF0Y2goL14oW2EtekEtWl0qKTpcXC9cXC8oLiopLyk7XG4gICAgaWYgKHByb3RvY29sTWF0Y2gpIHtcbiAgICAgIHRvUHJvY2VzcyA9IHByb3RvY29sTWF0Y2hbMl07XG4gICAgfVxuXG4gICAgLy8gYW55dGhpbmcgYmVmb3JlIGxhc3QgJzonIHdvbid0IGNvbnRyaWJ1dGVcbiAgICBjb25zdCBjb2xvblBhcnRzID0gdG9Qcm9jZXNzLnNwbGl0KFwiOlwiKTtcbiAgICB0b1Byb2Nlc3MgPSBjb2xvblBhcnRzLnBvcCgpID8/IHRvUHJvY2VzcztcblxuICAgIC8vIHN0cmlwIG9mZiBhbnkgcG9ydFxuICAgIGNvbnN0IHBvcnRNYXRjaCA9IHRvUHJvY2Vzcy5tYXRjaCgvXltcXGRdKiguKikvKTtcbiAgICBpZiAocG9ydE1hdGNoKSB7XG4gICAgICB0b1Byb2Nlc3MgPSBwb3J0TWF0Y2hbMV07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSBob3N0bmFtZVxuICAgIGNvbnN0IGhvc3RNYXRjaCA9IHRvUHJvY2Vzcy5tYXRjaCgvW14vXSpcXC5bXi9dKlxcLyguKikvKTtcbiAgICBpZiAoaG9zdE1hdGNoKSB7XG4gICAgICB0b1Byb2Nlc3MgPSBob3N0TWF0Y2hbMV07XG4gICAgfVxuXG4gICAgLy8gc3RyaXAgb2ZmIGFueSBhcmd1bWVudHNcbiAgICBjb25zdCBhcmd1bWVudE1hdGNoID0gdG9Qcm9jZXNzLm1hdGNoKC8oLiopXFw/LiovKTtcbiAgICBpZiAoYXJndW1lbnRNYXRjaCkge1xuICAgICAgdG9Qcm9jZXNzID0gYXJndW1lbnRNYXRjaFsxXTtcbiAgICB9XG5cbiAgICAvLyBzdHJpcCBvZmYgYW55IHR5cGVzXG4gICAgdG9Qcm9jZXNzID0gdG9Qcm9jZXNzLnJlcGxhY2UoL1xcLmdpdHxcXC5oZ3xcXC56aXAvLCBcIlwiKTtcblxuICAgIG1vZHVsZVBhcnRzID0gdG9Qcm9jZXNzLnNwbGl0KFwiLy9cIik7XG4gICAgY29uc3QgbmFtZVBhcnRzID0gbW9kdWxlUGFydHNbMF0uc3BsaXQoXCIvXCIpO1xuICAgIGxldCBuYW1lID0gbmFtZVBhcnRzLnBvcCgpO1xuICAgIGxldCBuYW1lc3BhY2UgPSBuYW1lUGFydHMucG9wKCk7XG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZHVsZSBuYW1lIHNob3VsZCBiZSBwcm9wZXJseSBzZXQgaW4gJHtpdGVtfWApO1xuICAgIH1cblxuICAgIGlmIChtb2R1bGVQYXJ0cy5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zdCBtb2R1bGVOYW1lUGFydHMgPSBtb2R1bGVQYXJ0c1sxXS5zcGxpdChcIi9cIik7XG4gICAgICBjb25zdCBtb2R1bGVOYW1lID0gbW9kdWxlTmFtZVBhcnRzLnBvcCgpO1xuICAgICAgaWYgKG5hbWVzcGFjZSkge1xuICAgICAgICBuYW1lc3BhY2UgPSBgJHtuYW1lc3BhY2V9LyR7bmFtZX0vJHttb2R1bGVOYW1lUGFydHMuam9pbihcIi9cIil9YDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG5hbWVzcGFjZSA9IGAke25hbWV9LyR7bW9kdWxlTmFtZVBhcnRzLmpvaW4oXCIvXCIpfWA7XG4gICAgICB9XG4gICAgICBuYW1lID0gbW9kdWxlTmFtZSA/PyBuYW1lO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgc291cmNlOiBpdGVtLFxuICAgICAgZnFuOiB0b1Byb2Nlc3MucmVwbGFjZShcIi8vXCIsIFwiL1wiKSxcbiAgICAgIG5hbWVzcGFjZSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBjbGFzcyBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQgaW1wbGVtZW50cyBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBmcW46IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IG5hbWVzcGFjZT86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihpdGVtOiBPbWl0PFRlcnJhZm9ybURlcGVuZGVuY3lDb25zdHJhaW50LCBcImZxblwiPiB8IHN0cmluZykge1xuICAgIGlmICh0eXBlb2YgaXRlbSA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgY29uc3QgcGFyc2VkID0gdGhpcy5wYXJzZURlcGVuZGVuY3lDb25zdHJhaW50KGl0ZW0pO1xuICAgICAgdGhpcy5uYW1lID0gcGFyc2VkLm5hbWU7XG4gICAgICB0aGlzLmZxbiA9IHBhcnNlZC5mcW47XG4gICAgICB0aGlzLnNvdXJjZSA9IHBhcnNlZC5mcW47XG4gICAgICB0aGlzLnZlcnNpb24gPSBwYXJzZWQudmVyc2lvbjtcbiAgICAgIHRoaXMubmFtZXNwYWNlID0gcGFyc2VkLm5hbWVzcGFjZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5uYW1lID0gaXRlbS5uYW1lO1xuICAgICAgdGhpcy5mcW4gPSBpdGVtLm5hbWU7XG4gICAgICB0aGlzLnZlcnNpb24gPSBpdGVtLnZlcnNpb247XG4gICAgICB0aGlzLnNvdXJjZSA9IGl0ZW0uc291cmNlO1xuICAgICAgdGhpcy5uYW1lc3BhY2UgPSBpdGVtLm5hbWVzcGFjZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBhcnNlRGVwZW5kZW5jeUNvbnN0cmFpbnQoXG4gICAgaXRlbTogc3RyaW5nLFxuICApOiBUZXJyYWZvcm1EZXBlbmRlbmN5Q29uc3RyYWludCB7XG4gICAgY29uc3QgW2ZxbiwgdmVyc2lvbl0gPSBpdGVtLnNwbGl0KFwiQFwiKTtcbiAgICBjb25zdCBuYW1lUGFydHMgPSBmcW4uc3BsaXQoXCIvXCIpO1xuICAgIGNvbnN0IG5hbWUgPSBuYW1lUGFydHMucG9wKCk7XG4gICAgY29uc3QgbmFtZXNwYWNlID0gbmFtZVBhcnRzLnBvcCgpO1xuICAgIGlmICghbmFtZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBQcm92aWRlciBuYW1lIHNob3VsZCBiZSBwcm9wZXJseSBzZXQgaW4gJHtpdGVtfWApO1xuICAgIH1cblxuICAgIHJldHVybiB7XG4gICAgICBuYW1lLFxuICAgICAgc291cmNlOiBmcW4sXG4gICAgICAvLyBUZXJyYWZvcm0gZG9lc24ndCBzdXBwb3J0ICosIGluc3RlYWQgbm8gdmVyc2lvbiBpcyBzcGVjaWZpZWRcbiAgICAgIHZlcnNpb246IHZlcnNpb24gPT09IFwiKlwiID8gdW5kZWZpbmVkIDogdmVyc2lvbixcbiAgICAgIGZxbixcbiAgICAgIG5hbWVzcGFjZSxcbiAgICB9O1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29uZmlnIHtcbiAgcmVhZG9ubHkgYXBwPzogc3RyaW5nO1xuICByZWFkb25seSBsYW5ndWFnZT86IExhbmd1YWdlO1xuICByZWFkb25seSBvdXRwdXQ6IHN0cmluZztcbiAgcmVhZG9ubHkgY29kZU1ha2VyT3V0cHV0OiBzdHJpbmc7XG4gIHRlcnJhZm9ybVByb3ZpZGVycz86IFRlcnJhZm9ybVByb3ZpZGVyQ29uc3RyYWludFtdO1xuICB0ZXJyYWZvcm1Nb2R1bGVzPzogVGVycmFmb3JtTW9kdWxlQ29uc3RyYWludFtdO1xuICByZWFkb25seSBjb250ZXh0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuZXhwb3J0IGNvbnN0IHBhcnNlQ29uZmlnID0gKGNvbmZpZ0pTT04/OiBzdHJpbmcpID0+IHtcbiAgY29uc3QgY29uZmlnOiBDb25maWcgPSB7XG4gICAgLi4uQ09ORklHX0RFRkFVTFRTLFxuICAgIC4uLkpTT04ucGFyc2UoY29uZmlnSlNPTiB8fCBcInt9XCIpLFxuICB9O1xuXG4gIGlmIChpc1ByZXNlbnQoY29uZmlnLnRlcnJhZm9ybU1vZHVsZXMpKSB7XG4gICAgY29uZmlnLnRlcnJhZm9ybU1vZHVsZXMgPSBjb25maWcudGVycmFmb3JtTW9kdWxlcz8ubWFwKFxuICAgICAgKG1vZCkgPT4gbmV3IFRlcnJhZm9ybU1vZHVsZUNvbnN0cmFpbnQobW9kKSxcbiAgICApO1xuICB9XG5cbiAgaWYgKGlzUHJlc2VudChjb25maWcudGVycmFmb3JtUHJvdmlkZXJzKSkge1xuICAgIGNvbmZpZy50ZXJyYWZvcm1Qcm92aWRlcnMgPSBjb25maWcudGVycmFmb3JtUHJvdmlkZXJzPy5tYXAoXG4gICAgICAocHJvdmlkZXIpID0+IG5ldyBUZXJyYWZvcm1Qcm92aWRlckNvbnN0cmFpbnQocHJvdmlkZXIpLFxuICAgICk7XG4gIH1cblxuICBpZiAoY29uZmlnLmNvbnRleHQpIHtcbiAgICBlbnZbQ09OVEVYVF9FTlZdID0gSlNPTi5zdHJpbmdpZnkoY29uZmlnLmNvbnRleHQpO1xuICB9XG5cbiAgcmV0dXJuIGNvbmZpZztcbn07XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkQ29uZmlnU3luYyhcbiAgY29uZmlnRmlsZSA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBDT05GSUdfRklMRSksXG4pOiBDb25maWcge1xuICBsZXQgY29uZmlnRmlsZUNvbnRlbnQ6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBpZiAoZnMuZXhpc3RzU3luYyhjb25maWdGaWxlKSkge1xuICAgIGNvbmZpZ0ZpbGVDb250ZW50ID0gZnMucmVhZEZpbGVTeW5jKGNvbmZpZ0ZpbGUpLnRvU3RyaW5nKCk7XG4gIH1cblxuICByZXR1cm4gcGFyc2VDb25maWcoY29uZmlnRmlsZUNvbnRlbnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2hvdWxkQ2hlY2tDb2RlTWFrZXJPdXRwdXQoY29uZmlnOiBDb25maWcpOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBpc1ByZXNlbnQoY29uZmlnLnRlcnJhZm9ybU1vZHVsZXMpIHx8IGlzUHJlc2VudChjb25maWcudGVycmFmb3JtUHJvdmlkZXJzKVxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbG9nVGltZXNwYW4obWVzc2FnZTogc3RyaW5nKSB7XG4gIGxvZ2dlci5kZWJ1ZyhgU3RhcnQgdGltZXIgZm9yICR7bWVzc2FnZX0uLi5gKTtcbiAgY29uc3Qgc3RhcnQgPSBEYXRlLm5vdygpO1xuXG4gIHJldHVybiBmdW5jdGlvbiBsb2dUaW1lc3BhbkVuZCgpIHtcbiAgICBjb25zdCBlbmQgPSBEYXRlLm5vdygpO1xuICAgIGNvbnN0IGR1cmF0aW9uID0gZW5kIC0gc3RhcnQ7XG4gICAgbG9nZ2VyLmRlYnVnKGAke21lc3NhZ2V9IHRvb2sgJHtkdXJhdGlvbn1tc2ApO1xuICB9O1xufVxuIl19
|