tnp-core 18.0.30 → 18.0.34
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/assets/shared/shared_folder_info.txt +1 -1
- package/browser/esm2022/lib/core-cli.mjs +21 -0
- package/browser/esm2022/lib/core-imports.mjs +3 -3
- package/browser/esm2022/lib/core-models.mjs +1 -1
- package/browser/esm2022/lib/framework-name.mjs +2 -2
- package/browser/esm2022/lib/helpers-messages.mjs +5 -5
- package/browser/esm2022/lib/helpers.mjs +12 -6
- package/browser/esm2022/lib/index.mjs +3 -1
- package/browser/esm2022/lib/node-path-mock.mjs +2 -2
- package/browser/esm2022/lib/required.mjs +72 -0
- package/browser/esm2022/lib/utils.mjs +2 -2
- package/browser/fesm2022/tnp-core.mjs +114 -16
- package/browser/fesm2022/tnp-core.mjs.map +1 -1
- package/browser/lib/core-cli.d.ts +4 -0
- package/browser/lib/core-models.d.ts +5 -1
- package/browser/lib/framework-name.d.ts +2 -2
- package/browser/lib/helpers-messages.d.ts +4 -4
- package/browser/lib/helpers.d.ts +4 -3
- package/browser/lib/index.d.ts +2 -0
- package/browser/lib/required.d.ts +6 -0
- package/cli.backend.js +2 -2
- package/client/esm2022/lib/core-cli.mjs +21 -0
- package/client/esm2022/lib/core-imports.mjs +3 -3
- package/client/esm2022/lib/core-models.mjs +1 -1
- package/client/esm2022/lib/framework-name.mjs +2 -2
- package/client/esm2022/lib/helpers-messages.mjs +5 -5
- package/client/esm2022/lib/helpers.mjs +12 -6
- package/client/esm2022/lib/index.mjs +3 -1
- package/client/esm2022/lib/node-path-mock.mjs +2 -2
- package/client/esm2022/lib/required.mjs +72 -0
- package/client/esm2022/lib/utils.mjs +2 -2
- package/client/fesm2022/tnp-core.mjs +114 -16
- package/client/fesm2022/tnp-core.mjs.map +1 -1
- package/client/lib/core-cli.d.ts +4 -0
- package/client/lib/core-models.d.ts +5 -1
- package/client/lib/framework-name.d.ts +2 -2
- package/client/lib/helpers-messages.d.ts +4 -4
- package/client/lib/helpers.d.ts +4 -3
- package/client/lib/index.d.ts +2 -0
- package/client/lib/required.d.ts +6 -0
- package/lib/command-exists.d.ts +2 -0
- package/lib/command-exists.js +116 -0
- package/lib/command-exists.js.map +1 -0
- package/lib/core-cli.d.ts +11 -0
- package/lib/core-cli.js +124 -0
- package/lib/core-cli.js.map +1 -0
- package/lib/core-imports.js +3 -3
- package/lib/core-imports.js.map +1 -1
- package/lib/core-models.d.ts +5 -1
- package/lib/core-models.js.map +1 -1
- package/lib/framework-name.d.ts +2 -2
- package/lib/framework-name.js +1 -1
- package/lib/framework-name.js.map +1 -1
- package/lib/helpers-messages.d.ts +4 -4
- package/lib/helpers-messages.js +8 -8
- package/lib/helpers-messages.js.map +1 -1
- package/lib/helpers.d.ts +4 -3
- package/lib/helpers.js +38 -34
- package/lib/helpers.js.map +1 -1
- package/lib/index.d.ts +2 -0
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/node-chalk-mock.js +2 -2
- package/lib/node-path-mock.js +2 -2
- package/lib/required.d.ts +44 -0
- package/lib/required.js +76 -0
- package/lib/required.js.map +1 -0
- package/lib/utils.js +1 -1
- package/lib/utils.js.map +1 -1
- package/package.json +3 -3
- package/src.d.ts +1 -1
- package/{firedev.jsonc → taon.jsonc} +2 -2
- package/tmp-environment.json +33 -39
- package/websql/esm2022/lib/core-cli.mjs +21 -0
- package/websql/esm2022/lib/core-imports.mjs +3 -3
- package/websql/esm2022/lib/core-models.mjs +1 -1
- package/websql/esm2022/lib/framework-name.mjs +2 -2
- package/websql/esm2022/lib/helpers-messages.mjs +5 -5
- package/websql/esm2022/lib/helpers.mjs +12 -6
- package/websql/esm2022/lib/index.mjs +3 -1
- package/websql/esm2022/lib/node-path-mock.mjs +2 -2
- package/websql/esm2022/lib/required.mjs +72 -0
- package/websql/esm2022/lib/utils.mjs +2 -2
- package/websql/fesm2022/tnp-core.mjs +114 -16
- package/websql/fesm2022/tnp-core.mjs.map +1 -1
- package/websql/lib/core-cli.d.ts +4 -0
- package/websql/lib/core-models.d.ts +5 -1
- package/websql/lib/framework-name.d.ts +2 -2
- package/websql/lib/helpers-messages.d.ts +4 -4
- package/websql/lib/helpers.d.ts +4 -3
- package/websql/lib/index.d.ts +2 -0
- package/websql/lib/required.d.ts +6 -0
@@ -0,0 +1,72 @@
|
|
1
|
+
export const requiredForDev = {
|
2
|
+
npm: [
|
3
|
+
/* */
|
4
|
+
/* */
|
5
|
+
/* */
|
6
|
+
/* */
|
7
|
+
/* */
|
8
|
+
/* */
|
9
|
+
/* */
|
10
|
+
/* */
|
11
|
+
/* */
|
12
|
+
/* */
|
13
|
+
/* */
|
14
|
+
/* */
|
15
|
+
/* */
|
16
|
+
/* */
|
17
|
+
/* */
|
18
|
+
/* */
|
19
|
+
/* */
|
20
|
+
/* */
|
21
|
+
/* */
|
22
|
+
/* */
|
23
|
+
/* */
|
24
|
+
/* */
|
25
|
+
/* */
|
26
|
+
/* */
|
27
|
+
/* */
|
28
|
+
/* */
|
29
|
+
/* */
|
30
|
+
/* */
|
31
|
+
/* */
|
32
|
+
/* */
|
33
|
+
/* */
|
34
|
+
/* */
|
35
|
+
],
|
36
|
+
niceTools: [
|
37
|
+
/* */
|
38
|
+
/* */
|
39
|
+
/* */
|
40
|
+
/* */
|
41
|
+
/* */
|
42
|
+
/* */
|
43
|
+
/* */
|
44
|
+
/* */
|
45
|
+
/* */
|
46
|
+
/* */
|
47
|
+
/* */
|
48
|
+
/* */
|
49
|
+
/* */
|
50
|
+
/* */
|
51
|
+
/* */
|
52
|
+
/* */
|
53
|
+
/* */
|
54
|
+
/* */
|
55
|
+
/* */
|
56
|
+
/* */
|
57
|
+
/* */
|
58
|
+
/* */
|
59
|
+
/* */
|
60
|
+
],
|
61
|
+
programs: [
|
62
|
+
,
|
63
|
+
/* */
|
64
|
+
/* */
|
65
|
+
/* */
|
66
|
+
/* */
|
67
|
+
/* */
|
68
|
+
],
|
69
|
+
};
|
70
|
+
;
|
71
|
+
({}); // @--end-of-file-for-module=tnp-core lib/required.ts
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtY29yZS9wcm9qZWN0cy90bnAtY29yZS9zcmMvbGliL3JlcXVpcmVkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sQ0FBQyxNQUFNLGNBQWMsR0FBSTtJQUM3QixHQUFHLEVBQUU7SUFDUCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztLQUVGO0lBQ0QsU0FBUyxFQUFFO0lBQ2IsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7SUFDTCxLQUFLO0lBQ0wsS0FBSztJQUNMLEtBQUs7S0FFRjtJQUNELFFBQVEsRUFBRTtRQUNSLEFBRFM7UUFFYixLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztLQUVGO0NBQ0YsQ0FBQztBQUVELENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMscURBQXFEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbmV4cG9ydCBjb25zdCByZXF1aXJlZEZvckRldiA9ICB7XG4gIG5wbTogW1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICBdLFxuICBuaWNlVG9vbHM6IFtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgXSxcbiAgcHJvZ3JhbXM6IFtcbiAgICAsXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIF0sXG59O1xuXG4gOyh7fSk7IC8vIEAtLWVuZC1vZi1maWxlLWZvci1tb2R1bGU9dG5wLWNvcmUgbGliL3JlcXVpcmVkLnRzIl19
|
@@ -159,7 +159,7 @@ export var Utils;
|
|
159
159
|
if (!contentTypeOverride) {
|
160
160
|
const m = /^data:(.+?);base64,(.+)$/.exec(base64Data);
|
161
161
|
if (!m) {
|
162
|
-
throw new Error(`[
|
162
|
+
throw new Error(`[taon-framework][base64toBlob] Not a base64 blob [${base64Data}]`);
|
163
163
|
}
|
164
164
|
var [__, contenttype, filebase64] = m;
|
165
165
|
content_type = contenttype;
|
@@ -374,4 +374,4 @@ export var Utils;
|
|
374
374
|
})(Utils || (Utils = {}));
|
375
375
|
;
|
376
376
|
({}); // @--end-of-file-for-module=tnp-core lib/utils.ts
|
377
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtY29yZS9wcm9qZWN0cy90bnAtY29yZS9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUF3QixNQUFNLE9BQU8sQ0FBQztBQUM3QyxPQUFPLEVBQUUsSUFBSSxFQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBR0wsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUM7QUFFdEMsTUFBTSxLQUFXLEtBQUssQ0FrbEJyQjtBQWxsQkQsV0FBaUIsS0FBSztJQUNwQjs7O09BR0c7SUFDVSwwQkFBb0IsR0FBRyxDQUFDLGVBQXVCLEVBQUUsRUFBRTtRQUM5RCxPQUFPLGVBQWUsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDO0lBT0YsSUFBaUIsSUFBSSxDQWdIcEI7SUFoSEQsV0FBaUIsSUFBSTtRQUNOLG1CQUFjLEdBQUcsQ0FDNUIsWUFBb0IsRUFBRSx3REFBd0Q7UUFDOUUsV0FBbUIsRUFDRixFQUFFO1lBQ25CLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFdEMsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hELElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDbkIsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNiLENBQUM7Z0JBQ0QsTUFBTSxJQUFJLEdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdB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QTtJQUVILENBQUMsRUF0V2dCLE1BQU0sR0FBTixZQUFNLEtBQU4sWUFBTSxRQXNXdEI7SUFJRCxJQUFpQixHQUFHLENBZ0JuQjtJQWhCRCxXQUFpQixHQUFHO1FBRWxCOzs7O1dBSUc7UUFDSCxTQUFnQixRQUFRLENBQUMsU0FBMEI7WUFFakQsT0FBTyxRQUFRLENBQ2IsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBR3pDLENBQUM7UUFDSixDQUFDO1FBUGUsWUFBUSxXQU92QixDQUFBO0lBRUgsQ0FBQyxFQWhCZ0IsR0FBRyxHQUFILFNBQUcsS0FBSCxTQUFHLFFBZ0JuQjtJQUlELElBQWlCLE9BQU8sQ0FrRHZCO0lBbERELFdBQWlCLE9BQU87UUE2Q2YsS0FBSyxVQUFVLFVBQVUsQ0FDOUIsT0FBZSxFQUNmLE9BQW9ELElBQ25ELENBQUM7UUFIa0Isa0JBQVUsYUFHNUIsQ0FBQTtRQUNKLFNBQWdCLFNBQVMsQ0FBQyxPQUFlLEVBQUUsT0FBNkIsSUFBRyxDQUFDO1FBQTVELGlCQUFTLFlBQW1ELENBQUE7SUFDOUUsQ0FBQyxFQWxEZ0IsT0FBTyxHQUFQLGFBQU8sS0FBUCxhQUFPLFFBa0R2QjtBQUdILENBQUMsRUFsbEJnQixLQUFLLEtBQUwsS0FBSyxRQWtsQnJCO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrREFBa0QiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgQ29yZU1vZGVscyB9IGZyb20gJy4vY29yZS1tb2RlbHMnO1xuaW1wb3J0IGF4aW9zLCB7IEF4aW9zUmVzcG9uc2UgfSBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBwYXRoLCBfIH0gZnJvbSAnLi9jb3JlLWltcG9ydHMnO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJy4vaW5kZXgnO1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuY29uc3QgQkxPQl9TVVBQT1JURURfSU5fU1FMSlMgPSBmYWxzZTtcblxuZXhwb3J0IG5hbWVzcGFjZSBVdGlscyB7XG4gIC8qKlxuICAgKiBFeGFtcGxlOlxuICAgKiBuZXcgUmVnRXhwKGVzY2FwZVN0cmluZ0ZvclJlZ0V4KCdhLmIuYycpLCdnJykgPT4gL2FcXC5iXFwuYy9nXG4gICAqL1xuICBleHBvcnQgY29uc3QgZXNjYXBlU3RyaW5nRm9yUmVnRXggPSAoc3RyaW5nRm9yUmVnRXhwOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gc3RyaW5nRm9yUmVnRXhwLnJlcGxhY2UoL1stXFwvXFxcXF4kKis/LigpfFtcXF17fV0vZywgJ1xcXFwkJicpO1xuICB9O1xuXG5cbiAgaW50ZXJmYWNlIEF0dHJKc29uY1Byb3Age1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZT86IGFueTtcbiAgfVxuICBleHBvcnQgbmFtZXNwYWNlIGpzb24ge1xuICAgIGV4cG9ydCBjb25zdCBnZXRBdHJyaWJ1dGllcyA9IChcbiAgICAgIGpzb25EZWVwUGF0aDogc3RyaW5nLCAvLyBsb2Rhc2ggcGF0aCB0byBwcm9wZXJ0eSBpbiBqc29uIGV4LiBkZWVwLnBhdGgudG8ucHJvcFxuICAgICAgZmlsZUNvbnRlbnQ6IHN0cmluZywgLy8ganNvbmMgb3IganNvbjUgLSBqc29uIHdpdGggY29tbWVudHNcbiAgICApOiBBdHRySnNvbmNQcm9wW10gPT4ge1xuICAgICAgY29uc3QgbGluZXMgPSBmaWxlQ29udGVudC5zcGxpdCgnXFxuJyk7XG5cbiAgICAgIGNvbnN0IHBhdGhQYXJ0cyA9IGpzb25EZWVwUGF0aC5zcGxpdCgnLicpLnJlZHVjZSgoYSwgYikgPT4ge1xuICAgICAgICBpZiAoYS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gW2JdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxhc3Q6IHN0cmluZyA9IGFbYS5sZW5ndGggLSAxXTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIChsYXN0LnN0YXJ0c1dpdGgoYFsnYCkgJiYgYi5lbmRzV2l0aChgJ11gKSkgfHxcbiAgICAgICAgICAobGFzdC5zdGFydHNXaXRoKGBbXCJgKSAmJiBiLmVuZHNXaXRoKGBcIl1gKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgYVthLmxlbmd0aCAtIDFdID0gW2xhc3QsIGJdLmpvaW4oJy4nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhLnB1c2goYik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGE7XG4gICAgICB9LCBbXSk7XG5cblxuICAgICAgY29uc3Qga2V5TmFtZSA9IHBhdGhQYXJ0cy5wb3AoKSEucmVwbGFjZSgvXlxcW1wiKC4rKVwiXFxdJC8sICckMScpO1xuICAgICAgbGV0IGN1cnJlbnRQYXRoID0gJyc7XG4gICAgICBsZXQgYXR0cmlidXRlczogQXR0ckpzb25jUHJvcFtdID0gW107XG4gICAgICBsZXQgY29sbGVjdGVkQ29tbWVudHM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICBjb25zdCB0cmltbWVkTGluZSA9IGxpbmUudHJpbSgpO1xuXG4gICAgICAgIGlmICh0cmltbWVkTGluZS5zdGFydHNXaXRoKCcvLycpKSB7XG5cbiAgICAgICAgICBjb2xsZWN0ZWRDb21tZW50cy5wdXNoKHRyaW1tZWRMaW5lKTtcblxuXG4gICAgICAgIH0gZWxzZSBpZiAodHJpbW1lZExpbmUuc3RhcnRzV2l0aCgnXCInKSB8fCB0cmltbWVkTGluZS5zdGFydHNXaXRoKFwiJ1wiKSkge1xuXG4gICAgICAgICAgY29uc3QgbWF0Y2ggPSB0cmltbWVkTGluZS5tYXRjaCgvW1wiJ10oW15cIiddKylbXCInXVxccyo6Lyk7XG5cbiAgICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IG1hdGNoWzFdO1xuICAgICAgICAgICAgY3VycmVudFBhdGggPSBjdXJyZW50UGF0aFxuICAgICAgICAgICAgICA/IGAke2N1cnJlbnRQYXRofS4ke2tleS5pbmNsdWRlcygnLicpID8gYFsnJHtrZXl9J11gIDoga2V5fWBcbiAgICAgICAgICAgICAgOiBrZXk7XG5cblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAoY3VycmVudFBhdGguZW5kc1dpdGgoa2V5TmFtZSkgJiZcbiAgICAgICAgICAgICAgICAhY3VycmVudFBhdGguZW5kc1dpdGgoJy8nICsga2V5TmFtZSkpIHx8XG4gICAgICAgICAgICAgIGN1cnJlbnRQYXRoLmVuZHNXaXRoKGBbJyR7a2V5TmFtZX0nXWApXG4gICAgICAgICAgICApIHtcblxuXG5cblxuXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBleHRyYWN0QXR0cmlidXRlc0Zyb21Db21tZW50cyhjb2xsZWN0ZWRDb21tZW50cyk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIGNvbGxlY3RlZENvbW1lbnRzID0gW107XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhdHRyaWJ1dGVzO1xuICAgIH07XG5cbiAgICBjb25zdCBleHRyYWN0QXR0cmlidXRlc0Zyb21Db21tZW50cyA9IChcbiAgICAgIGNvbW1lbnRzOiBzdHJpbmdbXSxcbiAgICApOiBBdHRySnNvbmNQcm9wW10gPT4ge1xuICAgICAgY29uc3QgYXR0cmlidXRlczogQXR0ckpzb25jUHJvcFtdID0gW107XG4gICAgICBjb25zdCBhdHRyUmVnZXggPSAvQChcXHcrKSg/Olxccyo9XFxzKihbXlxcc0BdKykpPy9nO1xuXG4gICAgICBmb3IgKGNvbnN0IGNvbW1lbnQgb2YgY29tbWVudHMpIHtcbiAgICAgICAgbGV0IG1hdGNoO1xuICAgICAgICB3aGlsZSAoKG1hdGNoID0gYXR0clJlZ2V4LmV4ZWMoY29tbWVudCkpICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgWywgbmFtZSwgdmFsdWVdID0gbWF0Y2g7XG5cbiAgICAgICAgICBjb25zdCBleGlzdGluZ0F0dHJpYnV0ZSA9IGF0dHJpYnV0ZXMuZmluZChcbiAgICAgICAgICAgIGF0dHIgPT4gYXR0ci5uYW1lID09PSBgQCR7bmFtZX1gLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoZXhpc3RpbmdBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShleGlzdGluZ0F0dHJpYnV0ZS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBleGlzdGluZ0F0dHJpYnV0ZS52YWx1ZS5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBleGlzdGluZ0F0dHJpYnV0ZS52YWx1ZSA9IFtleGlzdGluZ0F0dHJpYnV0ZS52YWx1ZSwgdmFsdWVdO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZXMucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IGBAJHtuYW1lfWAsXG4gICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSA/IHZhbHVlIDogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG5cbiAgICAgIGF0dHJpYnV0ZXMuZm9yRWFjaChhdHRyID0+IHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXR0ci52YWx1ZSkgJiYgYXR0ci52YWx1ZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICBhdHRyLnZhbHVlID0gYXR0ci52YWx1ZVswXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBhdHRyaWJ1dGVzO1xuICAgIH07XG4gIH1cblxuXG5cblxuXG4gIGV4cG9ydCBlbnVtIERiQmluYXJ5Rm9ybWF0RW51bSB7XG4gICAgQmxvYiA9ICdCbG9iJyxcbiAgICBGaWxlID0gJ0ZpbGUnLFxuICAgIHN0cmluZyA9ICdzdHJpbmcnLFxuLyogKi9cbi8qICovXG4gIFxuICB9XG5cbiAgZXhwb3J0IHR5cGUgRGJCaW5hcnlGb3JtYXRGb3JCcm93c2VyID0gQmxvYiB8IEZpbGUgfCBzdHJpbmc7XG4vKiAqL1xuLyogKi9cbiAgXG5cbiAgLyoqXG4gICAqIEJpbmFyeSBmb3JtYXQgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGRhdGFiYXNlXG4gICAqXG4gICAqIGZvciBub2RlanMgPT4gQnVmZmVyXG4gICAqIGZvciBzcWwuanMgPT4gc3RyaW5nIChzaG91bGIgYmUgYmxvYiAtIGJ1dCBub3Qgc3VwcG9ydGVkKVxuICAgKlxuICAgKi9cbiAgZXhwb3J0IHR5cGUgRGJCaW5hcnlGb3JtYXQgPVxuICAgIHwgRGJCaW5hcnlGb3JtYXRGb3JCcm93c2VyXG4vKiAqL1xuLyogKi9cbiAgXG5cbiAgZXhwb3J0IG5hbWVzcGFjZSBiaW5hcnkge1xuXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIGZvciBCUk9XU0VSIE9OTFlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBidWZmZXJcbiAgICAgKiBAcGFyYW0gY29udGVudFR5cGVcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcnJheUJ1ZmZlclRvQmxvYihcbiAgICAgIGJ1ZmZlcjogQXJyYXlCdWZmZXIsXG4gICAgICBjb250ZW50VHlwZTogQ29yZU1vZGVscy5Db250ZW50VHlwZSxcbiAgICApOiBQcm9taXNlPEJsb2I+IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJldHVybiBuZXcgQmxvYihbYnVmZmVyXSwgeyB0eXBlOiBjb250ZW50VHlwZSB9KTtcbiAgICB9XG5cblxuXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIGZvciBCUk9XU0VSIE9OTFlcbiAgICAgKiBAcGFyYW0gYmxvYlxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJsb2JUb0FycmF5QnVmZmVyKGJsb2I6IEJsb2IpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XG4gICAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVuZCcsICgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHJlYWRlci5yZXN1bHQgYXMgYW55KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHJlamVjdCk7IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGJsb2IpO1xuICAgICAgfSk7XG4gICAgfVxuXG5cblxuICAgIC8qKlxuICAgICAqIGl0IGlzIHJldmVycyB0byBiYXNlNjR0b0Jsb2JcbiAgICAgKiBAcGFyYW0gYmxvYlxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGJsb2JUb0Jhc2U2NChibG9iOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCBfKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQpOyAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGJsb2IpO1xuICAgICAgfSk7XG4gICAgfVxuXG5cblxuICAgIC8qKlxuICAgICAqIGl0IGlzIHJldmVycyB0byBibG9iVG9CYXNlNjQoKVxuICAgICAqIEBwYXJhbSBiYXNlNjREYXRhXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gYmFzZTY0dG9CbG9iKFxuICAgICAgYmFzZTY0RGF0YTogc3RyaW5nLFxuICAgICAgY29udGVudFR5cGVPdmVycmlkZT86IENvcmVNb2RlbHMuQ29udGVudFR5cGUsXG4gICAgKTogUHJvbWlzZTxCbG9iPiB7XG4gICAgICBsZXQgY29udGVudF90eXBlOiBDb3JlTW9kZWxzLkNvbnRlbnRUeXBlID0gdm9pZCAwIGFzIGFueTtcbiAgICAgIGxldCBmaWxlX2Jhc2U2NDogc3RyaW5nID0gdm9pZCAwIGFzIGFueTtcbiAgICAgIGlmICghY29udGVudFR5cGVPdmVycmlkZSkge1xuICAgICAgICBjb25zdCBtID0gL15kYXRhOiguKz8pO2Jhc2U2NCwoLispJC8uZXhlYyhiYXNlNjREYXRhKTtcbiAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYFtmaXJlZGV2LWZyYW1ld29ya11bYmFzZTY0dG9CbG9iXSBOb3QgYSBiYXNlNjQgYmxvYiBbJHtiYXNlNjREYXRhfV1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgW19fLCBjb250ZW50dHlwZSwgZmlsZWJhc2U2NF0gPSBtO1xuICAgICAgICBjb250ZW50X3R5cGUgPSBjb250ZW50dHlwZSBhcyBhbnk7XG4gICAgICAgIGZpbGVfYmFzZTY0ID0gZmlsZWJhc2U2NDtcbiAgICAgIH1cbiAgICAgIGNvbnRlbnRfdHlwZSA9IChcbiAgICAgICAgY29udGVudFR5cGVPdmVycmlkZSA/IGNvbnRlbnRUeXBlT3ZlcnJpZGUgOiBjb250ZW50X3R5cGUgfHwgJydcbiAgICAgICkgYXMgYW55O1xuICAgICAgYmFzZTY0RGF0YSA9IGNvbnRlbnRUeXBlT3ZlcnJpZGUgPyBiYXNlNjREYXRhIDogZmlsZV9iYXNlNjQ7XG4gICAgICBjb25zdCBzbGljZVNpemUgPSAxMDI0O1xuICAgICAgY29uc3QgYnl0ZUNoYXJhY3RlcnMgPSBhdG9iKGJhc2U2NERhdGEpO1xuICAgICAgY29uc3QgYnl0ZXNMZW5ndGggPSBieXRlQ2hhcmFjdGVycy5sZW5ndGg7XG4gICAgICBjb25zdCBzbGljZXNDb3VudCA9IE1hdGguY2VpbChieXRlc0xlbmd0aCAvIHNsaWNlU2l6ZSk7XG4gICAgICBjb25zdCBieXRlQXJyYXlzID0gbmV3IEFycmF5KHNsaWNlc0NvdW50KTtcblxuICAgICAgZm9yIChsZXQgc2xpY2VJbmRleCA9IDA7IHNsaWNlSW5kZXggPCBzbGljZXNDb3VudDsgKytzbGljZUluZGV4KSB7XG4gICAgICAgIGNvbnN0IGJlZ2luID0gc2xpY2VJbmRleCAqIHNsaWNlU2l6ZTtcbiAgICAgICAgY29uc3QgZW5kID0gTWF0aC5taW4oYmVnaW4gKyBzbGljZVNpemUsIGJ5dGVzTGVuZ3RoKTtcblxuICAgICAgICBjb25zdCBieXRlcyA9IG5ldyBBcnJheShlbmQgLSBiZWdpbik7XG5cbiAgICAgICAgZm9yIChsZXQgb2Zmc2V0ID0gYmVnaW4sIGkgPSAwOyBvZmZzZXQgPCBlbmQ7ICsraSwgKytvZmZzZXQpIHtcbiAgICAgICAgICBieXRlc1tpXSA9IGJ5dGVDaGFyYWN0ZXJzW29mZnNldF0uY2hhckNvZGVBdCgwKTtcbiAgICAgICAgfVxuICAgICAgICBieXRlQXJyYXlzW3NsaWNlSW5kZXhdID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5ldyBCbG9iKGJ5dGVBcnJheXMsIHsgdHlwZTogY29udGVudF90eXBlIH0pO1xuICAgIH1cblxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBiYXNlNjR0b0RiQmluYXJ5Rm9ybWF0KFxuICAgICAgdGV4dDogc3RyaW5nLFxuICAgICk6IFByb21pc2U8RGJCaW5hcnlGb3JtYXQ+IHtcbiAgICAgIGxldCByZXN1bHQ6IERiQmluYXJ5Rm9ybWF0O1xuXG4gICAgICByZXN1bHQgPSBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoQkxPQl9TVVBQT1JURURfSU5fU1FMSlMpIHtcbiAgICAgICAgICBjb25zdCBibG9iID0gYXdhaXQgYmFzZTY0dG9CbG9iKHRleHQpO1xuICAgICAgICAgIHJldHVybiBibG9iO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0ZXh0IGFzIGFueTtcbiAgICAgIH0pKCk7XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBkYkJpbmFyeUZvcm1hdFRvQmFzZTY0KFxuICAgICAgYmluYXJ5Rm9ybWF0OiBEYkJpbmFyeUZvcm1hdCxcbiAgICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgbGV0IHJlc3VsdDogc3RyaW5nO1xuXG4gICAgICByZXN1bHQgPSBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoQkxPQl9TVVBQT1JURURfSU5fU1FMSlMpIHtcbiAgICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgYmxvYlRvQmFzZTY0KGJpbmFyeUZvcm1hdCBhcyBhbnkpO1xuICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBiaW5hcnlGb3JtYXQgYXMgYW55O1xuICAgICAgfSkoKTtcblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXh0VG9EYkJpbmFyeUZvcm1hdChcbiAgICAgIHRleHQ6IHN0cmluZyxcbiAgICApOiBQcm9taXNlPERiQmluYXJ5Rm9ybWF0PiB7XG4gICAgICBsZXQgcmVzdWx0OiBEYkJpbmFyeUZvcm1hdDtcblxuICAgICAgcmVzdWx0ID0gYXdhaXQgKGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKEJMT0JfU1VQUE9SVEVEX0lOX1NRTEpTKSB7XG4gICAgICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IHRleHRUb0Jsb2IodGV4dCk7XG4gICAgICAgICAgcmV0dXJuIGJsb2I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRleHQgYXMgYW55O1xuICAgICAgfSkoKTtcblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cblxuXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRiQmluYXJ5Rm9ybWF0VG9UZXh0KFxuICAgICAgYmluYXJ5Rm9ybWF0OiBEYkJpbmFyeUZvcm1hdCxcbiAgICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgbGV0IHJlc3VsdDogc3RyaW5nO1xuXG4gICAgICByZXN1bHQgPSBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoQkxPQl9TVVBQT1JURURfSU5fU1FMSlMpIHtcbiAgICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgYmxvYlRvVGV4dChiaW5hcnlGb3JtYXQgYXMgYW55KTtcbiAgICAgICAgICByZXR1cm4gdGV4dDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYmluYXJ5Rm9ybWF0IGFzIGFueTtcbiAgICAgIH0pKCk7XG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gZmlsZVRvQmxvYihmaWxlOiBGaWxlKSB7XG4gICAgICByZXR1cm4gbmV3IEJsb2IoW25ldyBVaW50OEFycmF5KGF3YWl0IGZpbGUuYXJyYXlCdWZmZXIoKSldLCB7XG4gICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgIH0pO1xuICAgIH1cblxuXG5cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gYmxvYlRvRmlsZShcbiAgICAgIGJsb2I6IEJsb2IsXG4gICAgICBuYW1lRm9yRmlsZTogc3RyaW5nID0gJ215LWZpbGUtbmFtZScsXG4gICAgKTogUHJvbWlzZTxGaWxlPiB7XG4gICAgICBpZiAoIW5hbWVGb3JGaWxlKSB7XG4gICAgICAgIG5hbWVGb3JGaWxlID0gJ25vbmFtZWZpbGUnICsgbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICB9XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gbmV3IEZpbGUoW2Jsb2JdLCBuYW1lRm9yRmlsZSk7XG4gICAgfVxuXG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXh0VG9CbG9iKFxuICAgICAgdGV4dDogc3RyaW5nLFxuICAgICAgdHlwZTogQ29yZU1vZGVscy5Db250ZW50VHlwZSA9ICd0ZXh0L3BsYWluJyxcbiAgICApOiBQcm9taXNlPEJsb2I+IHtcbiAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbdGV4dF0sIHsgdHlwZSB9KTtcbiAgICAgIHJldHVybiBibG9iO1xuICAgIH1cblxuXG5cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gYmxvYlRvVGV4dChibG9iOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgIHJldHVybiBhd2FpdCBibG9iLnRleHQoKTtcbiAgICB9XG5cblxuXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRleHRUb0ZpbGUoXG4gICAgICB0ZXh0OiBzdHJpbmcsXG4gICAgICBmaWxlUmVsYXRpdmVQYXRoT3JOYW1lOiBzdHJpbmcsXG4gICAgKTogUHJvbWlzZTxGaWxlPiB7XG5cbiAgICAgIGNvbnN0IGV4dCA9IHBhdGguZXh0bmFtZShmaWxlUmVsYXRpdmVQYXRoT3JOYW1lKTtcblxuICAgICAgY29uc3QgdHlwZSA9IENvcmVNb2RlbHMubWltZVR5cGVzW2V4dF07XG4gICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3RleHRdLCB7IHR5cGUgfSk7XG4gICAgICBjb25zdCBmaWxlID0gYXdhaXQgYmxvYlRvRmlsZShibG9iLCBmaWxlUmVsYXRpdmVQYXRoT3JOYW1lKTtcblxuXG5cblxuXG4gICAgICByZXR1cm4gZmlsZTtcbiAgICB9XG5cblxuXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbGVUb1RleHQoZmlsZTogRmlsZSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICByZXR1cm4gYXdhaXQgZmlsZS50ZXh0KCk7XG4gICAgfVxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBqc29uVG9CbG9iKGpzb25PYmo6IG9iamVjdCk6IFByb21pc2U8QmxvYj4ge1xuICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtKU09OLnN0cmluZ2lmeShqc29uT2JqLCBudWxsLCAyKV0sIHtcbiAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gYmxvYjtcbiAgICB9XG5cblxuXG4gICAgLyoqXG4gICAgICogVE9ETyBOT1QgVEVTVEVEXG4gICAgICovXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJsb2JUb0pzb24oYmxvYjogQmxvYik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShhd2FpdCBibG9iLnRleHQoKSk7XG4gICAgfVxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRCbG9iRnJvbSh1cmw6IHN0cmluZyk6IFByb21pc2U8QmxvYj4ge1xuICAgICAgY29uc3QgcmVzcG9uc2U6IEF4aW9zUmVzcG9uc2U8QmxvYj4gPSBhd2FpdCBheGlvcyh7XG4gICAgICAgIHVybCxcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH1cblxuICB9XG5cblxuXG4gIGV4cG9ydCBuYW1lc3BhY2UgY3NzIHtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHBpeGVsc0NzcyBwaXhlbHMgZXguIDEwMHB4XG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbnVtVmFsdWUocGl4ZWxzQ3NzOiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIge1xuXG4gICAgICByZXR1cm4gcGFyc2VJbnQoXG4gICAgICAgIHBpeGVsc0Nzcz8udG9TdHJpbmcoKT8ucmVwbGFjZSgncHgnLCAnJyksXG5cblxuICAgICAgKTtcbiAgICB9XG5cbiAgfVxuXG5cblxuICBleHBvcnQgbmFtZXNwYWNlIHByb2Nlc3Mge1xuICAgIGV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc1N0YXJ0T3B0aW9ucyB7XG4gICAgICAvKipcbiAgICAgICAqIGJ5IGRlZmF1bHQgaXMgcHJvY2Vzcy5jd2QoKTtcbiAgICAgICAqL1xuICAgICAgY3dkPzogc3RyaW5nO1xuICAgICAgc2hvd0NvbW1hbmQ/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBNb2RpZnkgb3V0cHV0IGxpbmUgYnkgbGluZVxuICAgICAgICovXG4gICAgICBvdXRwdXRMaW5lUmVwbGFjZT86IChvdXRwdXRMaW5lU3RkZXJPclN0ZG91dDogc3RyaW5nKSA9PiBzdHJpbmc7XG4gICAgICByZXNvbHZlUHJvbWlzZU1zZz86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIHVuaXRpbCB0aGlzIHN0cmluZyBpcyBpbiBvdXRwdXQgb2Ygc3Rkb3V0XG4gICAgICAgICAqL1xuICAgICAgICBzdGRvdXQ/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIHVuaXRpbCB0aGlzIHN0cmluZyBpcyBpbiBvdXRwdXQgb2Ygc3RkZXJyXG4gICAgICAgICAqL1xuICAgICAgICBzdGRlcnI/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGJ5IGRlZmF1bHQgb25seSByZXNvbHZlIHdoZW4gZXhpdCBjb2RlIGlzIDBcbiAgICAgICAgICovXG4gICAgICAgIHJlc29sdmVBZnRlckFueUV4aXRDb2RlPzogYm9vbGVhbjtcbiAgICAgIH07XG4gICAgICAvKipcbiAgICAgICAqIFByZWZpeCBtZXNzYWdlcyBvdXRwdXQgZnJvbSBjaGlsZF9wcmNlc3NcbiAgICAgICAqL1xuICAgICAgcHJlZml4Pzogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBUcnkgY29tbWFuZCBhZ2FpbiBhZnRlciBmYWlsIGFmdGVyIG4gbWlsaXNlY29uZHNcbiAgICAgICAqL1xuICAgICAgdHJ5QWdhaW5XaGVuRmFpbEFmdGVyPzogbnVtYmVyO1xuICAgICAgYXNrVG9UcnlBZ2Fpbk9uRXJyb3I/OiBib29sZWFuO1xuICAgICAgZXhpdE9uRXJyb3JDYWxsYmFjaz86IChjb2RlOiBudW1iZXIpID0+IHZvaWQ7XG4gICAgICAvKipcbiAgICAgICAqIFVzZSBiaWcgYnVmZmVyIGZvciBiaWcgd2VicGFjayBsb2dzXG4gICAgICAgKi9cbiAgICAgIGJpZ2dlckJ1ZmZlcj86IGJvb2xlYW47XG4gICAgICBoaWRlT3V0cHV0Pzoge1xuICAgICAgICBzdGRvdXQ/OiBib29sZWFuO1xuICAgICAgICBzdGRlcnI/OiBib29sZWFuO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhcnRBc3luYyhcbiAgICAgIGNvbW1hbmQ6IHN0cmluZyxcbiAgICAgIG9wdGlvbnM/OiBQcm9jZXNzU3RhcnRPcHRpb25zICYgeyBkZXRhY2g/OiBib29sZWFuIH0sXG4gICAgKSB7fVxuICAgIGV4cG9ydCBmdW5jdGlvbiBzdGFydFN5bmMoY29tbWFuZDogc3RyaW5nLCBvcHRpb25zPzogUHJvY2Vzc1N0YXJ0T3B0aW9ucykge31cbiAgfVxuXG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1jb3JlIGxpYi91dGlscy50cyJdfQ==
|
377
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90bXAtbGlicy1mb3ItZGlzdC90bnAtY29yZS9wcm9qZWN0cy90bnAtY29yZS9zcmMvbGliL3V0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUF3QixNQUFNLE9BQU8sQ0FBQztBQUM3QyxPQUFPLEVBQUUsSUFBSSxFQUFLLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBR0wsTUFBTSx1QkFBdUIsR0FBRyxLQUFLLENBQUM7QUFFdEMsTUFBTSxLQUFXLEtBQUssQ0FrbEJyQjtBQWxsQkQsV0FBaUIsS0FBSztJQUNwQjs7O09BR0c7SUFDVSwwQkFBb0IsR0FBRyxDQUFDLGVBQXVCLEVBQUUsRUFBRTtRQUM5RCxPQUFPLGVBQWUsQ0FBQyxPQUFPLENBQUMsd0JBQXdCLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbkUsQ0FBQyxDQUFDO0lBT0YsSUFBaUIsSUFBSSxDQWdIcEI7SUFoSEQsV0FBaUIsSUFBSTtRQUNOLG1CQUFjLEdBQUcsQ0FDNUIsWUFBb0IsRUFBRSx3REFBd0Q7UUFDOUUsV0FBbUIsRUFDRixFQUFFO1lBQ25CLE1BQU0sS0FBSyxHQUFHLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFdEMsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3hELElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztvQkFDbkIsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNiLENBQUM7Z0JBQ0QsTUFBTSxJQUFJLEdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEdB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QTtJQUVILENBQUMsRUF0V2dCLE1BQU0sR0FBTixZQUFNLEtBQU4sWUFBTSxRQXNXdEI7SUFJRCxJQUFpQixHQUFHLENBZ0JuQjtJQWhCRCxXQUFpQixHQUFHO1FBRWxCOzs7O1dBSUc7UUFDSCxTQUFnQixRQUFRLENBQUMsU0FBMEI7WUFFakQsT0FBTyxRQUFRLENBQ2IsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBR3pDLENBQUM7UUFDSixDQUFDO1FBUGUsWUFBUSxXQU92QixDQUFBO0lBRUgsQ0FBQyxFQWhCZ0IsR0FBRyxHQUFILFNBQUcsS0FBSCxTQUFHLFFBZ0JuQjtJQUlELElBQWlCLE9BQU8sQ0FrRHZCO0lBbERELFdBQWlCLE9BQU87UUE2Q2YsS0FBSyxVQUFVLFVBQVUsQ0FDOUIsT0FBZSxFQUNmLE9BQW9ELElBQ25ELENBQUM7UUFIa0Isa0JBQVUsYUFHNUIsQ0FBQTtRQUNKLFNBQWdCLFNBQVMsQ0FBQyxPQUFlLEVBQUUsT0FBNkIsSUFBRyxDQUFDO1FBQTVELGlCQUFTLFlBQW1ELENBQUE7SUFDOUUsQ0FBQyxFQWxEZ0IsT0FBTyxHQUFQLGFBQU8sS0FBUCxhQUFPLFFBa0R2QjtBQUdILENBQUMsRUFsbEJnQixLQUFLLEtBQUwsS0FBSyxRQWtsQnJCO0FBRUEsQ0FBQztBQUFBLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxrREFBa0QiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgQ29yZU1vZGVscyB9IGZyb20gJy4vY29yZS1tb2RlbHMnO1xuaW1wb3J0IGF4aW9zLCB7IEF4aW9zUmVzcG9uc2UgfSBmcm9tICdheGlvcyc7XG5pbXBvcnQgeyBwYXRoLCBfIH0gZnJvbSAnLi9jb3JlLWltcG9ydHMnO1xuaW1wb3J0IHsgSGVscGVycyB9IGZyb20gJy4vaW5kZXgnO1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuY29uc3QgQkxPQl9TVVBQT1JURURfSU5fU1FMSlMgPSBmYWxzZTtcblxuZXhwb3J0IG5hbWVzcGFjZSBVdGlscyB7XG4gIC8qKlxuICAgKiBFeGFtcGxlOlxuICAgKiBuZXcgUmVnRXhwKGVzY2FwZVN0cmluZ0ZvclJlZ0V4KCdhLmIuYycpLCdnJykgPT4gL2FcXC5iXFwuYy9nXG4gICAqL1xuICBleHBvcnQgY29uc3QgZXNjYXBlU3RyaW5nRm9yUmVnRXggPSAoc3RyaW5nRm9yUmVnRXhwOiBzdHJpbmcpID0+IHtcbiAgICByZXR1cm4gc3RyaW5nRm9yUmVnRXhwLnJlcGxhY2UoL1stXFwvXFxcXF4kKis/LigpfFtcXF17fV0vZywgJ1xcXFwkJicpO1xuICB9O1xuXG5cbiAgaW50ZXJmYWNlIEF0dHJKc29uY1Byb3Age1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB2YWx1ZT86IGFueTtcbiAgfVxuICBleHBvcnQgbmFtZXNwYWNlIGpzb24ge1xuICAgIGV4cG9ydCBjb25zdCBnZXRBdHJyaWJ1dGllcyA9IChcbiAgICAgIGpzb25EZWVwUGF0aDogc3RyaW5nLCAvLyBsb2Rhc2ggcGF0aCB0byBwcm9wZXJ0eSBpbiBqc29uIGV4LiBkZWVwLnBhdGgudG8ucHJvcFxuICAgICAgZmlsZUNvbnRlbnQ6IHN0cmluZywgLy8ganNvbmMgb3IganNvbjUgLSBqc29uIHdpdGggY29tbWVudHNcbiAgICApOiBBdHRySnNvbmNQcm9wW10gPT4ge1xuICAgICAgY29uc3QgbGluZXMgPSBmaWxlQ29udGVudC5zcGxpdCgnXFxuJyk7XG5cbiAgICAgIGNvbnN0IHBhdGhQYXJ0cyA9IGpzb25EZWVwUGF0aC5zcGxpdCgnLicpLnJlZHVjZSgoYSwgYikgPT4ge1xuICAgICAgICBpZiAoYS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gW2JdO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxhc3Q6IHN0cmluZyA9IGFbYS5sZW5ndGggLSAxXTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIChsYXN0LnN0YXJ0c1dpdGgoYFsnYCkgJiYgYi5lbmRzV2l0aChgJ11gKSkgfHxcbiAgICAgICAgICAobGFzdC5zdGFydHNXaXRoKGBbXCJgKSAmJiBiLmVuZHNXaXRoKGBcIl1gKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgYVthLmxlbmd0aCAtIDFdID0gW2xhc3QsIGJdLmpvaW4oJy4nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBhLnB1c2goYik7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGE7XG4gICAgICB9LCBbXSk7XG5cblxuICAgICAgY29uc3Qga2V5TmFtZSA9IHBhdGhQYXJ0cy5wb3AoKSEucmVwbGFjZSgvXlxcW1wiKC4rKVwiXFxdJC8sICckMScpO1xuICAgICAgbGV0IGN1cnJlbnRQYXRoID0gJyc7XG4gICAgICBsZXQgYXR0cmlidXRlczogQXR0ckpzb25jUHJvcFtdID0gW107XG4gICAgICBsZXQgY29sbGVjdGVkQ29tbWVudHM6IHN0cmluZ1tdID0gW107XG5cbiAgICAgIGZvciAoY29uc3QgbGluZSBvZiBsaW5lcykge1xuICAgICAgICBjb25zdCB0cmltbWVkTGluZSA9IGxpbmUudHJpbSgpO1xuXG4gICAgICAgIGlmICh0cmltbWVkTGluZS5zdGFydHNXaXRoKCcvLycpKSB7XG5cbiAgICAgICAgICBjb2xsZWN0ZWRDb21tZW50cy5wdXNoKHRyaW1tZWRMaW5lKTtcblxuXG4gICAgICAgIH0gZWxzZSBpZiAodHJpbW1lZExpbmUuc3RhcnRzV2l0aCgnXCInKSB8fCB0cmltbWVkTGluZS5zdGFydHNXaXRoKFwiJ1wiKSkge1xuXG4gICAgICAgICAgY29uc3QgbWF0Y2ggPSB0cmltbWVkTGluZS5tYXRjaCgvW1wiJ10oW15cIiddKylbXCInXVxccyo6Lyk7XG5cbiAgICAgICAgICBpZiAobWF0Y2gpIHtcbiAgICAgICAgICAgIGNvbnN0IGtleSA9IG1hdGNoWzFdO1xuICAgICAgICAgICAgY3VycmVudFBhdGggPSBjdXJyZW50UGF0aFxuICAgICAgICAgICAgICA/IGAke2N1cnJlbnRQYXRofS4ke2tleS5pbmNsdWRlcygnLicpID8gYFsnJHtrZXl9J11gIDoga2V5fWBcbiAgICAgICAgICAgICAgOiBrZXk7XG5cblxuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAoY3VycmVudFBhdGguZW5kc1dpdGgoa2V5TmFtZSkgJiZcbiAgICAgICAgICAgICAgICAhY3VycmVudFBhdGguZW5kc1dpdGgoJy8nICsga2V5TmFtZSkpIHx8XG4gICAgICAgICAgICAgIGN1cnJlbnRQYXRoLmVuZHNXaXRoKGBbJyR7a2V5TmFtZX0nXWApXG4gICAgICAgICAgICApIHtcblxuXG5cblxuXG4gICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBleHRyYWN0QXR0cmlidXRlc0Zyb21Db21tZW50cyhjb2xsZWN0ZWRDb21tZW50cyk7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIGNvbGxlY3RlZENvbW1lbnRzID0gW107XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhdHRyaWJ1dGVzO1xuICAgIH07XG5cbiAgICBjb25zdCBleHRyYWN0QXR0cmlidXRlc0Zyb21Db21tZW50cyA9IChcbiAgICAgIGNvbW1lbnRzOiBzdHJpbmdbXSxcbiAgICApOiBBdHRySnNvbmNQcm9wW10gPT4ge1xuICAgICAgY29uc3QgYXR0cmlidXRlczogQXR0ckpzb25jUHJvcFtdID0gW107XG4gICAgICBjb25zdCBhdHRyUmVnZXggPSAvQChcXHcrKSg/Olxccyo9XFxzKihbXlxcc0BdKykpPy9nO1xuXG4gICAgICBmb3IgKGNvbnN0IGNvbW1lbnQgb2YgY29tbWVudHMpIHtcbiAgICAgICAgbGV0IG1hdGNoO1xuICAgICAgICB3aGlsZSAoKG1hdGNoID0gYXR0clJlZ2V4LmV4ZWMoY29tbWVudCkpICE9PSBudWxsKSB7XG4gICAgICAgICAgY29uc3QgWywgbmFtZSwgdmFsdWVdID0gbWF0Y2g7XG5cbiAgICAgICAgICBjb25zdCBleGlzdGluZ0F0dHJpYnV0ZSA9IGF0dHJpYnV0ZXMuZmluZChcbiAgICAgICAgICAgIGF0dHIgPT4gYXR0ci5uYW1lID09PSBgQCR7bmFtZX1gLFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICBpZiAoZXhpc3RpbmdBdHRyaWJ1dGUpIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShleGlzdGluZ0F0dHJpYnV0ZS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBleGlzdGluZ0F0dHJpYnV0ZS52YWx1ZS5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBleGlzdGluZ0F0dHJpYnV0ZS52YWx1ZSA9IFtleGlzdGluZ0F0dHJpYnV0ZS52YWx1ZSwgdmFsdWVdO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGF0dHJpYnV0ZXMucHVzaCh7XG4gICAgICAgICAgICAgIG5hbWU6IGBAJHtuYW1lfWAsXG4gICAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSA/IHZhbHVlIDogdHJ1ZSxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG5cbiAgICAgIGF0dHJpYnV0ZXMuZm9yRWFjaChhdHRyID0+IHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoYXR0ci52YWx1ZSkgJiYgYXR0ci52YWx1ZS5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICBhdHRyLnZhbHVlID0gYXR0ci52YWx1ZVswXTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHJldHVybiBhdHRyaWJ1dGVzO1xuICAgIH07XG4gIH1cblxuXG5cblxuXG4gIGV4cG9ydCBlbnVtIERiQmluYXJ5Rm9ybWF0RW51bSB7XG4gICAgQmxvYiA9ICdCbG9iJyxcbiAgICBGaWxlID0gJ0ZpbGUnLFxuICAgIHN0cmluZyA9ICdzdHJpbmcnLFxuLyogKi9cbi8qICovXG4gIFxuICB9XG5cbiAgZXhwb3J0IHR5cGUgRGJCaW5hcnlGb3JtYXRGb3JCcm93c2VyID0gQmxvYiB8IEZpbGUgfCBzdHJpbmc7XG4vKiAqL1xuLyogKi9cbiAgXG5cbiAgLyoqXG4gICAqIEJpbmFyeSBmb3JtYXQgdGhhdCBjYW4gYmUgc3RvcmVkIGluIGRhdGFiYXNlXG4gICAqXG4gICAqIGZvciBub2RlanMgPT4gQnVmZmVyXG4gICAqIGZvciBzcWwuanMgPT4gc3RyaW5nIChzaG91bGIgYmUgYmxvYiAtIGJ1dCBub3Qgc3VwcG9ydGVkKVxuICAgKlxuICAgKi9cbiAgZXhwb3J0IHR5cGUgRGJCaW5hcnlGb3JtYXQgPVxuICAgIHwgRGJCaW5hcnlGb3JtYXRGb3JCcm93c2VyXG4vKiAqL1xuLyogKi9cbiAgXG5cbiAgZXhwb3J0IG5hbWVzcGFjZSBiaW5hcnkge1xuXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIGZvciBCUk9XU0VSIE9OTFlcbiAgICAgKlxuICAgICAqIEBwYXJhbSBidWZmZXJcbiAgICAgKiBAcGFyYW0gY29udGVudFR5cGVcbiAgICAgKiBAcmV0dXJuc1xuICAgICAqL1xuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBhcnJheUJ1ZmZlclRvQmxvYihcbiAgICAgIGJ1ZmZlcjogQXJyYXlCdWZmZXIsXG4gICAgICBjb250ZW50VHlwZTogQ29yZU1vZGVscy5Db250ZW50VHlwZSxcbiAgICApOiBQcm9taXNlPEJsb2I+IHtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHJldHVybiBuZXcgQmxvYihbYnVmZmVyXSwgeyB0eXBlOiBjb250ZW50VHlwZSB9KTtcbiAgICB9XG5cblxuXG5cbiAgICAvKipcbiAgICAgKiBUaGlzIGlzIGZvciBCUk9XU0VSIE9OTFlcbiAgICAgKiBAcGFyYW0gYmxvYlxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJsb2JUb0FycmF5QnVmZmVyKGJsb2I6IEJsb2IpOiBQcm9taXNlPEFycmF5QnVmZmVyPiB7XG4gICAgICByZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICBjb25zdCByZWFkZXIgPSBuZXcgRmlsZVJlYWRlcigpO1xuICAgICAgICByZWFkZXIuYWRkRXZlbnRMaXN0ZW5lcignbG9hZGVuZCcsICgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKHJlYWRlci5yZXN1bHQgYXMgYW55KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHJlYWRlci5hZGRFdmVudExpc3RlbmVyKCdlcnJvcicsIHJlamVjdCk7IC8vIEB0cy1pZ25vcmVcbiAgICAgICAgcmVhZGVyLnJlYWRBc0FycmF5QnVmZmVyKGJsb2IpO1xuICAgICAgfSk7XG4gICAgfVxuXG5cblxuICAgIC8qKlxuICAgICAqIGl0IGlzIHJldmVycyB0byBiYXNlNjR0b0Jsb2JcbiAgICAgKiBAcGFyYW0gYmxvYlxuICAgICAqIEByZXR1cm5zXG4gICAgICovXG4gICAgZXhwb3J0IGZ1bmN0aW9uIGJsb2JUb0Jhc2U2NChibG9iOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxhbnk+KChyZXNvbHZlLCBfKSA9PiB7XG4gICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiByZXNvbHZlKHJlYWRlci5yZXN1bHQpOyAvLyBAdHMtaWdub3JlXG4gICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGJsb2IpO1xuICAgICAgfSk7XG4gICAgfVxuXG5cblxuICAgIC8qKlxuICAgICAqIGl0IGlzIHJldmVycyB0byBibG9iVG9CYXNlNjQoKVxuICAgICAqIEBwYXJhbSBiYXNlNjREYXRhXG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gYmFzZTY0dG9CbG9iKFxuICAgICAgYmFzZTY0RGF0YTogc3RyaW5nLFxuICAgICAgY29udGVudFR5cGVPdmVycmlkZT86IENvcmVNb2RlbHMuQ29udGVudFR5cGUsXG4gICAgKTogUHJvbWlzZTxCbG9iPiB7XG4gICAgICBsZXQgY29udGVudF90eXBlOiBDb3JlTW9kZWxzLkNvbnRlbnRUeXBlID0gdm9pZCAwIGFzIGFueTtcbiAgICAgIGxldCBmaWxlX2Jhc2U2NDogc3RyaW5nID0gdm9pZCAwIGFzIGFueTtcbiAgICAgIGlmICghY29udGVudFR5cGVPdmVycmlkZSkge1xuICAgICAgICBjb25zdCBtID0gL15kYXRhOiguKz8pO2Jhc2U2NCwoLispJC8uZXhlYyhiYXNlNjREYXRhKTtcbiAgICAgICAgaWYgKCFtKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYFt0YW9uLWZyYW1ld29ya11bYmFzZTY0dG9CbG9iXSBOb3QgYSBiYXNlNjQgYmxvYiBbJHtiYXNlNjREYXRhfV1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICB2YXIgW19fLCBjb250ZW50dHlwZSwgZmlsZWJhc2U2NF0gPSBtO1xuICAgICAgICBjb250ZW50X3R5cGUgPSBjb250ZW50dHlwZSBhcyBhbnk7XG4gICAgICAgIGZpbGVfYmFzZTY0ID0gZmlsZWJhc2U2NDtcbiAgICAgIH1cbiAgICAgIGNvbnRlbnRfdHlwZSA9IChcbiAgICAgICAgY29udGVudFR5cGVPdmVycmlkZSA/IGNvbnRlbnRUeXBlT3ZlcnJpZGUgOiBjb250ZW50X3R5cGUgfHwgJydcbiAgICAgICkgYXMgYW55O1xuICAgICAgYmFzZTY0RGF0YSA9IGNvbnRlbnRUeXBlT3ZlcnJpZGUgPyBiYXNlNjREYXRhIDogZmlsZV9iYXNlNjQ7XG4gICAgICBjb25zdCBzbGljZVNpemUgPSAxMDI0O1xuICAgICAgY29uc3QgYnl0ZUNoYXJhY3RlcnMgPSBhdG9iKGJhc2U2NERhdGEpO1xuICAgICAgY29uc3QgYnl0ZXNMZW5ndGggPSBieXRlQ2hhcmFjdGVycy5sZW5ndGg7XG4gICAgICBjb25zdCBzbGljZXNDb3VudCA9IE1hdGguY2VpbChieXRlc0xlbmd0aCAvIHNsaWNlU2l6ZSk7XG4gICAgICBjb25zdCBieXRlQXJyYXlzID0gbmV3IEFycmF5KHNsaWNlc0NvdW50KTtcblxuICAgICAgZm9yIChsZXQgc2xpY2VJbmRleCA9IDA7IHNsaWNlSW5kZXggPCBzbGljZXNDb3VudDsgKytzbGljZUluZGV4KSB7XG4gICAgICAgIGNvbnN0IGJlZ2luID0gc2xpY2VJbmRleCAqIHNsaWNlU2l6ZTtcbiAgICAgICAgY29uc3QgZW5kID0gTWF0aC5taW4oYmVnaW4gKyBzbGljZVNpemUsIGJ5dGVzTGVuZ3RoKTtcblxuICAgICAgICBjb25zdCBieXRlcyA9IG5ldyBBcnJheShlbmQgLSBiZWdpbik7XG5cbiAgICAgICAgZm9yIChsZXQgb2Zmc2V0ID0gYmVnaW4sIGkgPSAwOyBvZmZzZXQgPCBlbmQ7ICsraSwgKytvZmZzZXQpIHtcbiAgICAgICAgICBieXRlc1tpXSA9IGJ5dGVDaGFyYWN0ZXJzW29mZnNldF0uY2hhckNvZGVBdCgwKTtcbiAgICAgICAgfVxuICAgICAgICBieXRlQXJyYXlzW3NsaWNlSW5kZXhdID0gbmV3IFVpbnQ4QXJyYXkoYnl0ZXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIG5ldyBCbG9iKGJ5dGVBcnJheXMsIHsgdHlwZTogY29udGVudF90eXBlIH0pO1xuICAgIH1cblxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBiYXNlNjR0b0RiQmluYXJ5Rm9ybWF0KFxuICAgICAgdGV4dDogc3RyaW5nLFxuICAgICk6IFByb21pc2U8RGJCaW5hcnlGb3JtYXQ+IHtcbiAgICAgIGxldCByZXN1bHQ6IERiQmluYXJ5Rm9ybWF0O1xuXG4gICAgICByZXN1bHQgPSBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoQkxPQl9TVVBQT1JURURfSU5fU1FMSlMpIHtcbiAgICAgICAgICBjb25zdCBibG9iID0gYXdhaXQgYmFzZTY0dG9CbG9iKHRleHQpO1xuICAgICAgICAgIHJldHVybiBibG9iO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0ZXh0IGFzIGFueTtcbiAgICAgIH0pKCk7XG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBkYkJpbmFyeUZvcm1hdFRvQmFzZTY0KFxuICAgICAgYmluYXJ5Rm9ybWF0OiBEYkJpbmFyeUZvcm1hdCxcbiAgICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgbGV0IHJlc3VsdDogc3RyaW5nO1xuXG4gICAgICByZXN1bHQgPSBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoQkxPQl9TVVBQT1JURURfSU5fU1FMSlMpIHtcbiAgICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgYmxvYlRvQmFzZTY0KGJpbmFyeUZvcm1hdCBhcyBhbnkpO1xuICAgICAgICAgIHJldHVybiB0ZXh0O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBiaW5hcnlGb3JtYXQgYXMgYW55O1xuICAgICAgfSkoKTtcblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXh0VG9EYkJpbmFyeUZvcm1hdChcbiAgICAgIHRleHQ6IHN0cmluZyxcbiAgICApOiBQcm9taXNlPERiQmluYXJ5Rm9ybWF0PiB7XG4gICAgICBsZXQgcmVzdWx0OiBEYkJpbmFyeUZvcm1hdDtcblxuICAgICAgcmVzdWx0ID0gYXdhaXQgKGFzeW5jICgpID0+IHtcbiAgICAgICAgaWYgKEJMT0JfU1VQUE9SVEVEX0lOX1NRTEpTKSB7XG4gICAgICAgICAgY29uc3QgYmxvYiA9IGF3YWl0IHRleHRUb0Jsb2IodGV4dCk7XG4gICAgICAgICAgcmV0dXJuIGJsb2I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRleHQgYXMgYW55O1xuICAgICAgfSkoKTtcblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cblxuXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGRiQmluYXJ5Rm9ybWF0VG9UZXh0KFxuICAgICAgYmluYXJ5Rm9ybWF0OiBEYkJpbmFyeUZvcm1hdCxcbiAgICApOiBQcm9taXNlPHN0cmluZz4ge1xuICAgICAgbGV0IHJlc3VsdDogc3RyaW5nO1xuXG4gICAgICByZXN1bHQgPSBhd2FpdCAoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAoQkxPQl9TVVBQT1JURURfSU5fU1FMSlMpIHtcbiAgICAgICAgICBjb25zdCB0ZXh0ID0gYXdhaXQgYmxvYlRvVGV4dChiaW5hcnlGb3JtYXQgYXMgYW55KTtcbiAgICAgICAgICByZXR1cm4gdGV4dDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYmluYXJ5Rm9ybWF0IGFzIGFueTtcbiAgICAgIH0pKCk7XG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gZmlsZVRvQmxvYihmaWxlOiBGaWxlKSB7XG4gICAgICByZXR1cm4gbmV3IEJsb2IoW25ldyBVaW50OEFycmF5KGF3YWl0IGZpbGUuYXJyYXlCdWZmZXIoKSldLCB7XG4gICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgIH0pO1xuICAgIH1cblxuXG5cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gYmxvYlRvRmlsZShcbiAgICAgIGJsb2I6IEJsb2IsXG4gICAgICBuYW1lRm9yRmlsZTogc3RyaW5nID0gJ215LWZpbGUtbmFtZScsXG4gICAgKTogUHJvbWlzZTxGaWxlPiB7XG4gICAgICBpZiAoIW5hbWVGb3JGaWxlKSB7XG4gICAgICAgIG5hbWVGb3JGaWxlID0gJ25vbmFtZWZpbGUnICsgbmV3IERhdGUoKS5nZXRUaW1lKCk7XG4gICAgICB9XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICByZXR1cm4gbmV3IEZpbGUoW2Jsb2JdLCBuYW1lRm9yRmlsZSk7XG4gICAgfVxuXG5cblxuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4gIFxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiB0ZXh0VG9CbG9iKFxuICAgICAgdGV4dDogc3RyaW5nLFxuICAgICAgdHlwZTogQ29yZU1vZGVscy5Db250ZW50VHlwZSA9ICd0ZXh0L3BsYWluJyxcbiAgICApOiBQcm9taXNlPEJsb2I+IHtcbiAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbdGV4dF0sIHsgdHlwZSB9KTtcbiAgICAgIHJldHVybiBibG9iO1xuICAgIH1cblxuXG5cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gYmxvYlRvVGV4dChibG9iOiBCbG9iKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICAgIHJldHVybiBhd2FpdCBibG9iLnRleHQoKTtcbiAgICB9XG5cblxuXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHRleHRUb0ZpbGUoXG4gICAgICB0ZXh0OiBzdHJpbmcsXG4gICAgICBmaWxlUmVsYXRpdmVQYXRoT3JOYW1lOiBzdHJpbmcsXG4gICAgKTogUHJvbWlzZTxGaWxlPiB7XG5cbiAgICAgIGNvbnN0IGV4dCA9IHBhdGguZXh0bmFtZShmaWxlUmVsYXRpdmVQYXRoT3JOYW1lKTtcblxuICAgICAgY29uc3QgdHlwZSA9IENvcmVNb2RlbHMubWltZVR5cGVzW2V4dF07XG4gICAgICBjb25zdCBibG9iID0gbmV3IEJsb2IoW3RleHRdLCB7IHR5cGUgfSk7XG4gICAgICBjb25zdCBmaWxlID0gYXdhaXQgYmxvYlRvRmlsZShibG9iLCBmaWxlUmVsYXRpdmVQYXRoT3JOYW1lKTtcblxuXG5cblxuXG4gICAgICByZXR1cm4gZmlsZTtcbiAgICB9XG5cblxuXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGZpbGVUb1RleHQoZmlsZTogRmlsZSk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICByZXR1cm4gYXdhaXQgZmlsZS50ZXh0KCk7XG4gICAgfVxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBqc29uVG9CbG9iKGpzb25PYmo6IG9iamVjdCk6IFByb21pc2U8QmxvYj4ge1xuICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtKU09OLnN0cmluZ2lmeShqc29uT2JqLCBudWxsLCAyKV0sIHtcbiAgICAgICAgdHlwZTogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgfSk7XG4gICAgICByZXR1cm4gYmxvYjtcbiAgICB9XG5cblxuXG4gICAgLyoqXG4gICAgICogVE9ETyBOT1QgVEVTVEVEXG4gICAgICovXG4gICAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGJsb2JUb0pzb24oYmxvYjogQmxvYik6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgICByZXR1cm4gSlNPTi5wYXJzZShhd2FpdCBibG9iLnRleHQoKSk7XG4gICAgfVxuXG5cblxuICAgIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRCbG9iRnJvbSh1cmw6IHN0cmluZyk6IFByb21pc2U8QmxvYj4ge1xuICAgICAgY29uc3QgcmVzcG9uc2U6IEF4aW9zUmVzcG9uc2U8QmxvYj4gPSBhd2FpdCBheGlvcyh7XG4gICAgICAgIHVybCxcbiAgICAgICAgbWV0aG9kOiAnZ2V0JyxcbiAgICAgICAgcmVzcG9uc2VUeXBlOiAnYmxvYicsXG4gICAgICB9KTtcbiAgICAgIHJldHVybiByZXNwb25zZS5kYXRhO1xuICAgIH1cblxuICB9XG5cblxuXG4gIGV4cG9ydCBuYW1lc3BhY2UgY3NzIHtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIHBpeGVsc0NzcyBwaXhlbHMgZXguIDEwMHB4XG4gICAgICogQHJldHVybnNcbiAgICAgKi9cbiAgICBleHBvcnQgZnVuY3Rpb24gbnVtVmFsdWUocGl4ZWxzQ3NzOiBzdHJpbmcgfCBudW1iZXIpOiBudW1iZXIge1xuXG4gICAgICByZXR1cm4gcGFyc2VJbnQoXG4gICAgICAgIHBpeGVsc0Nzcz8udG9TdHJpbmcoKT8ucmVwbGFjZSgncHgnLCAnJyksXG5cblxuICAgICAgKTtcbiAgICB9XG5cbiAgfVxuXG5cblxuICBleHBvcnQgbmFtZXNwYWNlIHByb2Nlc3Mge1xuICAgIGV4cG9ydCBpbnRlcmZhY2UgUHJvY2Vzc1N0YXJ0T3B0aW9ucyB7XG4gICAgICAvKipcbiAgICAgICAqIGJ5IGRlZmF1bHQgaXMgcHJvY2Vzcy5jd2QoKTtcbiAgICAgICAqL1xuICAgICAgY3dkPzogc3RyaW5nO1xuICAgICAgc2hvd0NvbW1hbmQ/OiBib29sZWFuO1xuICAgICAgLyoqXG4gICAgICAgKiBNb2RpZnkgb3V0cHV0IGxpbmUgYnkgbGluZVxuICAgICAgICovXG4gICAgICBvdXRwdXRMaW5lUmVwbGFjZT86IChvdXRwdXRMaW5lU3RkZXJPclN0ZG91dDogc3RyaW5nKSA9PiBzdHJpbmc7XG4gICAgICByZXNvbHZlUHJvbWlzZU1zZz86IHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIHVuaXRpbCB0aGlzIHN0cmluZyBpcyBpbiBvdXRwdXQgb2Ygc3Rkb3V0XG4gICAgICAgICAqL1xuICAgICAgICBzdGRvdXQ/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIHVuaXRpbCB0aGlzIHN0cmluZyBpcyBpbiBvdXRwdXQgb2Ygc3RkZXJyXG4gICAgICAgICAqL1xuICAgICAgICBzdGRlcnI/OiBzdHJpbmcgfCBzdHJpbmdbXTtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIGJ5IGRlZmF1bHQgb25seSByZXNvbHZlIHdoZW4gZXhpdCBjb2RlIGlzIDBcbiAgICAgICAgICovXG4gICAgICAgIHJlc29sdmVBZnRlckFueUV4aXRDb2RlPzogYm9vbGVhbjtcbiAgICAgIH07XG4gICAgICAvKipcbiAgICAgICAqIFByZWZpeCBtZXNzYWdlcyBvdXRwdXQgZnJvbSBjaGlsZF9wcmNlc3NcbiAgICAgICAqL1xuICAgICAgcHJlZml4Pzogc3RyaW5nO1xuICAgICAgLyoqXG4gICAgICAgKiBUcnkgY29tbWFuZCBhZ2FpbiBhZnRlciBmYWlsIGFmdGVyIG4gbWlsaXNlY29uZHNcbiAgICAgICAqL1xuICAgICAgdHJ5QWdhaW5XaGVuRmFpbEFmdGVyPzogbnVtYmVyO1xuICAgICAgYXNrVG9UcnlBZ2Fpbk9uRXJyb3I/OiBib29sZWFuO1xuICAgICAgZXhpdE9uRXJyb3JDYWxsYmFjaz86IChjb2RlOiBudW1iZXIpID0+IHZvaWQ7XG4gICAgICAvKipcbiAgICAgICAqIFVzZSBiaWcgYnVmZmVyIGZvciBiaWcgd2VicGFjayBsb2dzXG4gICAgICAgKi9cbiAgICAgIGJpZ2dlckJ1ZmZlcj86IGJvb2xlYW47XG4gICAgICBoaWRlT3V0cHV0Pzoge1xuICAgICAgICBzdGRvdXQ/OiBib29sZWFuO1xuICAgICAgICBzdGRlcnI/OiBib29sZWFuO1xuICAgICAgfTtcbiAgICB9XG5cbiAgICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gc3RhcnRBc3luYyhcbiAgICAgIGNvbW1hbmQ6IHN0cmluZyxcbiAgICAgIG9wdGlvbnM/OiBQcm9jZXNzU3RhcnRPcHRpb25zICYgeyBkZXRhY2g/OiBib29sZWFuIH0sXG4gICAgKSB7fVxuICAgIGV4cG9ydCBmdW5jdGlvbiBzdGFydFN5bmMoY29tbWFuZDogc3RyaW5nLCBvcHRpb25zPzogUHJvY2Vzc1N0YXJ0T3B0aW9ucykge31cbiAgfVxuXG5cbn1cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1jb3JlIGxpYi91dGlscy50cyJdfQ==
|
@@ -19,7 +19,7 @@ const frameworkNameBeTmp = '';
|
|
19
19
|
/* */
|
20
20
|
/* */
|
21
21
|
const frameworkNameBe = frameworkNameBeTmp;
|
22
|
-
const frameworkName = isBrowser ? '
|
22
|
+
const frameworkName = isBrowser ? 'taon' : frameworkNameBe;
|
23
23
|
;
|
24
24
|
({}); // @--end-of-file-for-module=tnp-core lib/framework-name.ts
|
25
25
|
|
@@ -67,7 +67,7 @@ const chalk$1 = allObj;
|
|
67
67
|
|
68
68
|
function assertPath(path) {
|
69
69
|
if (typeof path !== 'string') {
|
70
|
-
throw new TypeError('[
|
70
|
+
throw new TypeError('[taon-core] Path must be a string. Received ' + JSON.stringify(path));
|
71
71
|
}
|
72
72
|
}
|
73
73
|
function normalizeStringPosix(path, allowAboveRoot) {
|
@@ -536,7 +536,7 @@ const crossPlatformPath = (pathStringOrPathParts) => {
|
|
536
536
|
const isExtendedLengthPath = /^\\\\\?\\/.test(pathStringOrPathParts);
|
537
537
|
const hasNonAscii = /[^\u0000-\u0080]+/.test(pathStringOrPathParts); // eslint-disable-line no-control-regex
|
538
538
|
if (isExtendedLengthPath) {
|
539
|
-
console.warn(`[
|
539
|
+
console.warn(`[taon-core][crossPlatformPath]: Path starts with \\\\,
|
540
540
|
this is not supported in crossPlatformPath`);
|
541
541
|
if (forceTrace) {
|
542
542
|
console.trace(`path: "${pathStringOrPathParts}"`);
|
@@ -544,7 +544,7 @@ const crossPlatformPath = (pathStringOrPathParts) => {
|
|
544
544
|
}
|
545
545
|
if (hasNonAscii) {
|
546
546
|
const allNonAscii = pathStringOrPathParts.match(/[^\u0000-\u0080]+/g) || '';
|
547
|
-
Helpers.logWarn(`[
|
547
|
+
Helpers.logWarn(`[taon-core][crossPlatformPath]: Path contains non-ascii characters: ${allNonAscii}`);
|
548
548
|
Helpers.logWarn(pathStringOrPathParts);
|
549
549
|
}
|
550
550
|
pathStringOrPathParts = (pathStringOrPathParts || '')
|
@@ -594,7 +594,7 @@ const crossPlatformPath = (pathStringOrPathParts) => {
|
|
594
594
|
/* */
|
595
595
|
;
|
596
596
|
({}); // @--end-of-file-for-module=tnp-core lib/core-imports.ts
|
597
|
-
//# sourceMappingURL=data:application/json;base64,
|
597
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS1pbXBvcnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdG1wLWxpYnMtZm9yLWRpc3QvdG5wLWNvcmUvcHJvamVjdHMvdG5wLWNvcmUvc3JjL2xpYi9jb3JlLWltcG9ydHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO0FBQ3ZCLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBR0wsT0FBTyxNQUFNLE1BQU0sUUFBUSxDQUFDO0FBQzVCLE9BQU8sRUFBRSxLQUFLLElBQUksU0FBUyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDdkQsT0FBTyxFQUFFLElBQUksSUFBSSxRQUFRLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVwRCxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUM1QixPQUFPLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQztBQUN2QixPQUFPLEtBQUssTUFBTSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEtBQUssVUFBVSxNQUFNLFlBQVksQ0FBQztBQUV6QyxPQUFPLEtBQUssS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUsvQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBS2xDLElBQUksQ0FBYSxDQUFDO0FBRWxCLENBQUMsR0FBRyxNQUFNLENBQUM7QUFFWCxLQUFLO0FBQ0wsS0FBSztBQU1MLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBd0IsQ0FBQztBQUN6QyxL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QUFDLENBQUM7SUFDekQsQ0FBQztJQVlELE9BQU8scUJBQXFCLENBQUM7QUFDL0IsQ0FBQyxDQUFDO0FBSUYsT0FBTyxFQUFJLENBQUMsRUFBSSxDQUFDLEVBQUksTUFBTSxFQUFJLFVBQVUsRUFBSSxpQkFBaUIsRUFBSSxTQUFTLEVBQUksSUFBSSxFQUFJLEtBQUssRUFBSSxLQUFLLEVBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQSxLQUFLO0FBQ25ILEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFHTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUNMLEtBQUs7QUFDTCxLQUFLO0FBQ0wsS0FBSztBQUlKLENBQUM7QUFBQSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMseURBQXlEIiwic291cmNlc0NvbnRlbnQiOlsiXG5cblxubGV0IGZvcmNlVHJhY2UgPSBmYWxzZTtcbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuaW1wb3J0IGpRdWVyeSBmcm9tICdqcXVlcnknO1xuaW1wb3J0IHsgY2hhbGsgYXMgY2hhbGtNb2NrIH0gZnJvbSAnLi9ub2RlLWNoYWxrLW1vY2snO1xuaW1wb3J0IHsgcGF0aCBhcyBwYXRoTW9jayB9IGZyb20gJy4vbm9kZS1wYXRoLW1vY2snO1xuXG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgKiBhcyBxIGZyb20gJ3EnO1xuaW1wb3J0ICogYXMgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgKiBhcyBkYXRlZm9ybWF0IGZyb20gJ2RhdGVmb3JtYXQnO1xuaW1wb3J0IHsgQ2hhbGsgfSBmcm9tICdjaGFsayc7XG5pbXBvcnQgKiBhcyBqc29uNSBmcm9tICdqc29uNSc7XG5pbXBvcnQgdHlwZSBqUXVlcnlUeXBlIGZyb20gJ2pxdWVyeSc7XG5pbXBvcnQgdHlwZSBjaGFsa0Jhc2VUeXBlIGZyb20gJ2NoYWxrJztcbmltcG9ydCB0eXBlICogYXMgcGF0aEJhc2VUeXBlIGZyb20gJ3BhdGgnO1xuXG5pbXBvcnQgeyBIZWxwZXJzIH0gZnJvbSAnLi9pbmRleCc7XG5cblxuXG5cbmxldCAkOiBqUXVlcnlUeXBlO1xuXG4kID0galF1ZXJ5O1xuXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuXG5cbmxldCBwYXRoID0gdm9pZCAwIGFzIHR5cGVvZiBwYXRoQmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuLy8gQHRzLWlnbm9yZVxucGF0aCA9IHBhdGhNb2NrO1xuXG5cblxuXG5cbmxldCBjaGFsazogQ2hhbGsgPSB2b2lkIDAgYXMgdHlwZW9mIGNoYWxrQmFzZVR5cGU7XG4vKiAqL1xuLyogKi9cbiAgXG5cblxuLy8gQHRzLWlnbm9yZVxuY2hhbGsgPSBjaGFsa01vY2s7XG5cblxuXG5cblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuXG5cbi8qKlxuICogdHJhbnNmb3JtIHVuaXggcGF0aCB0byB3aW4zMiBwYXRoXG4gKi9cbmNvbnN0IHdpbjMyUGF0aCA9IChwOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG4gIGlmICgvXlxcL1thLXpdXFwvLy50ZXN0KHApKSB7XG4gICAgcCA9IHAucmVwbGFjZSgvXlxcL1thLXpdXFwvLywgYCR7cC5jaGFyQXQoMSkudG9VcHBlckNhc2UoKX06L2ApO1xuICB9XG4gIHJldHVybiBwYXRoLndpbjMyLm5vcm1hbGl6ZShwKTtcbn07XG5cblxuXG4vKipcbiAqIFRoaXMgZnVuY2l0b24gd2lsbCByZXBsYWNlIC8vIHRvIC9cbiAqL1xuY29uc3QgY3Jvc3NQbGF0Zm9ybVBhdGggPSAoXG4gIHBhdGhTdHJpbmdPclBhdGhQYXJ0czogc3RyaW5nIHwgc3RyaW5nW10sXG4pOiBzdHJpbmcgPT4ge1xuICBpZiAoQXJyYXkuaXNBcnJheShwYXRoU3RyaW5nT3JQYXRoUGFydHMpKSB7XG4gICAgcGF0aFN0cmluZ09yUGF0aFBhcnRzID0gcGF0aFN0cmluZ09yUGF0aFBhcnRzLmpvaW4oJy8nKTtcbiAgfVxuXG4gIGlmICh0eXBlb2YgcGF0aFN0cmluZ09yUGF0aFBhcnRzICE9PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBwYXRoU3RyaW5nT3JQYXRoUGFydHM7XG4gIH1cblxuXG5cbiAgaWYgKFxuICAgIHR5cGVvZiBwYXRoU3RyaW5nT3JQYXRoUGFydHMgPT09ICdzdHJpbmcnICYmXG4gICAgL15bQS1aXVxcOi8udGVzdChwYXRoU3RyaW5nT3JQYXRoUGFydHMpXG4gICkge1xuICAgIHBhdGhTdHJpbmdPclBhdGhQYXJ0cyA9IF8ubG93ZXJGaXJzdChwYXRoU3RyaW5nT3JQYXRoUGFydHMpO1xuICB9XG5cbiAgY29uc3QgaXNFeHRlbmRlZExlbmd0aFBhdGggPSAvXlxcXFxcXFxcXFw/XFxcXC8udGVzdChwYXRoU3RyaW5nT3JQYXRoUGFydHMpO1xuICBjb25zdCBoYXNOb25Bc2NpaSA9IC9bXlxcdTAwMDAtXFx1MDA4MF0rLy50ZXN0KHBhdGhTdHJpbmdPclBhdGhQYXJ0cyk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tY29udHJvbC1yZWdleFxuICBpZiAoaXNFeHRlbmRlZExlbmd0aFBhdGgpIHtcbiAgICBjb25zb2xlLndhcm4oYFt0YW9uLWNvcmVdW2Nyb3NzUGxhdGZvcm1QYXRoXTogUGF0aCBzdGFydHMgd2l0aCBcXFxcXFxcXCxcbiAgICB0aGlzIGlzIG5vdCBzdXBwb3J0ZWQgaW4gY3Jvc3NQbGF0Zm9ybVBhdGhgKTtcbiAgICBpZiAoZm9yY2VUcmFjZSkge1xuICAgICAgY29uc29sZS50cmFjZShgcGF0aDogXCIke3BhdGhTdHJpbmdPclBhdGhQYXJ0c31cImApO1xuICAgIH1cbiAgfVxuXG4gIGlmIChoYXNOb25Bc2NpaSkge1xuICAgIGNvbnN0IGFsbE5vbkFzY2lpID0gcGF0aFN0cmluZ09yUGF0aFBhcnRzLm1hdGNoKC9bXlxcdTAwMDAtXFx1MDA4MF0rL2cpIHx8ICcnO1xuICAgIEhlbHBlcnMubG9nV2FybihcbiAgICAgIGBbdGFvbi1jb3JlXVtjcm9zc1BsYXRmb3JtUGF0aF06IFBhdGggY29udGFpbnMgbm9uLWFzY2lpIGNoYXJhY3RlcnM6ICR7YWxsTm9uQXNjaWl9YCxcbiAgICApO1xuICAgIEhlbHBlcnMubG9nV2FybihwYXRoU3RyaW5nT3JQYXRoUGFydHMpO1xuICB9XG5cbiAgcGF0aFN0cmluZ09yUGF0aFBhcnRzID0gKHBhdGhTdHJpbmdPclBhdGhQYXJ0cyB8fCAnJylcbiAgICAucmVwbGFjZSgvXFxcXC9nLCAnLycpXG4gICAgLnJlcGxhY2UoL1xcL1xcLy9nLCAnLycpXG4gICAgLnJlcGxhY2UoL1xcL1xcLy9nLCAnLycpOyAvLyBUT0RPIHByb2JhYmx5IG5vdCBuZWVkZWRcblxuICBsZXQgaXNXaW5kb3dzID0gZmFsc2U7XG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuICBcblxuICBjb25zdCByZWdleFdpblBhdGgxID0gL14oXFwvKVthLXpBLVpdXFw6LztcblxuXG4gIGlmIChpc1dpbmRvd3MgJiYgcmVnZXhXaW5QYXRoMS50ZXN0KHBhdGhTdHJpbmdPclBhdGhQYXJ0cykpIHtcbiAgICBwYXRoU3RyaW5nT3JQYXRoUGFydHMgPSBwYXRoU3RyaW5nT3JQYXRoUGFydHMuc2xpY2UoMSk7XG4gIH1cblxuXG5cblxuXG5cblxuXG5cblxuXG4gIHJldHVybiBwYXRoU3RyaW5nT3JQYXRoUGFydHM7XG59O1xuXG5cblxuZXhwb3J0IHsgICBfLCAgIHEsICAgbW9tZW50LCAgIGRhdGVmb3JtYXQsICAgY3Jvc3NQbGF0Zm9ybVBhdGgsICAgd2luMzJQYXRoLCAgIHBhdGgsICAgY2hhbGssICAganNvbjUsICAgJCwgfTsvKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cblxuXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbi8qICovXG4vKiAqL1xuLyogKi9cbiAgXG5cblxuIDsoe30pOyAvLyBALS1lbmQtb2YtZmlsZS1mb3ItbW9kdWxlPXRucC1jb3JlIGxpYi9jb3JlLWltcG9ydHMudHMiXX0=
|
598
598
|
|
599
599
|
var CoreModels;
|
600
600
|
(function (CoreModels) {
|
@@ -1165,7 +1165,7 @@ class HelpersMessages extends HelpersIsomorphic {
|
|
1165
1165
|
/* */
|
1166
1166
|
}
|
1167
1167
|
/**
|
1168
|
-
* Logs not visible in normal use of
|
1168
|
+
* Logs not visible in normal use of taon-cli
|
1169
1169
|
*/
|
1170
1170
|
logSuccess(details) {
|
1171
1171
|
/* */
|
@@ -1176,7 +1176,7 @@ class HelpersMessages extends HelpersIsomorphic {
|
|
1176
1176
|
return (void 0);
|
1177
1177
|
}
|
1178
1178
|
/**
|
1179
|
-
* Logs not visible in normal use of
|
1179
|
+
* Logs not visible in normal use of taon-cli
|
1180
1180
|
*/
|
1181
1181
|
logInfo(details, repeatable = false) {
|
1182
1182
|
/* */
|
@@ -1187,7 +1187,7 @@ class HelpersMessages extends HelpersIsomorphic {
|
|
1187
1187
|
return (void 0);
|
1188
1188
|
}
|
1189
1189
|
/**
|
1190
|
-
* Logs not visible in normal use of
|
1190
|
+
* Logs not visible in normal use of taon-cli
|
1191
1191
|
*/
|
1192
1192
|
logError(details, noExit = false, noTrace = false) {
|
1193
1193
|
/* */
|
@@ -1198,7 +1198,7 @@ class HelpersMessages extends HelpersIsomorphic {
|
|
1198
1198
|
return (void 0);
|
1199
1199
|
}
|
1200
1200
|
/**
|
1201
|
-
* Logs not visible in normal use of
|
1201
|
+
* Logs not visible in normal use of taon-cli
|
1202
1202
|
*/
|
1203
1203
|
logWarn(details, trace = false) {
|
1204
1204
|
/* */
|
@@ -1569,9 +1569,9 @@ class HelpersCore extends HelpersMessages {
|
|
1569
1569
|
return (void 0);
|
1570
1570
|
}
|
1571
1571
|
/**
|
1572
|
-
* Check if the current shell is supported by
|
1572
|
+
* Check if the current shell is supported by Taon framework.
|
1573
1573
|
*/
|
1574
|
-
get
|
1574
|
+
get isSupportedTaonTerminal() {
|
1575
1575
|
/* */
|
1576
1576
|
/* */
|
1577
1577
|
return (void 0);
|
@@ -2032,13 +2032,13 @@ class HelpersCore extends HelpersMessages {
|
|
2032
2032
|
* this is HACK for running procesess inside processes
|
2033
2033
|
*/
|
2034
2034
|
_fixCommand(command) {
|
2035
|
-
if ((command.startsWith('tnp ') || command.startsWith('
|
2035
|
+
if ((command.startsWith('tnp ') || command.startsWith('taon ')) && // TODO every cli projects here that uses run and need to kill process easly!
|
2036
2036
|
command.search('-spinner=false') === -1 &&
|
2037
2037
|
command.search('-spinner=off') === -1) {
|
2038
2038
|
command = `${command} -spinner=false`;
|
2039
2039
|
}
|
2040
2040
|
if (global.skipCoreCheck &&
|
2041
|
-
(command.startsWith('tnp ') || command.startsWith('
|
2041
|
+
(command.startsWith('tnp ') || command.startsWith('taon '))) {
|
2042
2042
|
command = `${command} --skipCoreCheck`;
|
2043
2043
|
}
|
2044
2044
|
return command;
|
@@ -2526,7 +2526,7 @@ class HelpersCore extends HelpersMessages {
|
|
2526
2526
|
return (void 0);
|
2527
2527
|
},
|
2528
2528
|
/**
|
2529
|
-
* @deprecated use
|
2529
|
+
* @deprecated use unitlOutput
|
2530
2530
|
* start command as asynchronous nodej proces inside promise
|
2531
2531
|
* and wait until output contains some string
|
2532
2532
|
*/
|
@@ -3185,6 +3185,12 @@ class HelpersCore extends HelpersMessages {
|
|
3185
3185
|
/* */
|
3186
3186
|
/* */
|
3187
3187
|
/* */
|
3188
|
+
/* */
|
3189
|
+
/* */
|
3190
|
+
/* */
|
3191
|
+
/* */
|
3192
|
+
/* */
|
3193
|
+
/* */
|
3188
3194
|
/**
|
3189
3195
|
* Quick fix for object values
|
3190
3196
|
* @deprecated
|
@@ -3926,7 +3932,7 @@ var Utils;
|
|
3926
3932
|
if (!contentTypeOverride) {
|
3927
3933
|
const m = /^data:(.+?);base64,(.+)$/.exec(base64Data);
|
3928
3934
|
if (!m) {
|
3929
|
-
throw new Error(`[
|
3935
|
+
throw new Error(`[taon-framework][base64toBlob] Not a base64 blob [${base64Data}]`);
|
3930
3936
|
}
|
3931
3937
|
var [__, contenttype, filebase64] = m;
|
3932
3938
|
content_type = contenttype;
|
@@ -4142,6 +4148,98 @@ var Utils;
|
|
4142
4148
|
;
|
4143
4149
|
({}); // @--end-of-file-for-module=tnp-core lib/utils.ts
|
4144
4150
|
|
4151
|
+
/* */
|
4152
|
+
/* */
|
4153
|
+
/* */
|
4154
|
+
/* */
|
4155
|
+
/* */
|
4156
|
+
/* */
|
4157
|
+
/* */
|
4158
|
+
/* */
|
4159
|
+
/* */
|
4160
|
+
/* */
|
4161
|
+
/* */
|
4162
|
+
class CLI {
|
4163
|
+
/* */
|
4164
|
+
/* */
|
4165
|
+
/* */
|
4166
|
+
static { this.chalk = chalk; }
|
4167
|
+
}
|
4168
|
+
;
|
4169
|
+
({}); // @--end-of-file-for-module=tnp-core lib/core-cli.ts
|
4170
|
+
|
4171
|
+
const requiredForDev = {
|
4172
|
+
npm: [
|
4173
|
+
/* */
|
4174
|
+
/* */
|
4175
|
+
/* */
|
4176
|
+
/* */
|
4177
|
+
/* */
|
4178
|
+
/* */
|
4179
|
+
/* */
|
4180
|
+
/* */
|
4181
|
+
/* */
|
4182
|
+
/* */
|
4183
|
+
/* */
|
4184
|
+
/* */
|
4185
|
+
/* */
|
4186
|
+
/* */
|
4187
|
+
/* */
|
4188
|
+
/* */
|
4189
|
+
/* */
|
4190
|
+
/* */
|
4191
|
+
/* */
|
4192
|
+
/* */
|
4193
|
+
/* */
|
4194
|
+
/* */
|
4195
|
+
/* */
|
4196
|
+
/* */
|
4197
|
+
/* */
|
4198
|
+
/* */
|
4199
|
+
/* */
|
4200
|
+
/* */
|
4201
|
+
/* */
|
4202
|
+
/* */
|
4203
|
+
/* */
|
4204
|
+
/* */
|
4205
|
+
],
|
4206
|
+
niceTools: [
|
4207
|
+
/* */
|
4208
|
+
/* */
|
4209
|
+
/* */
|
4210
|
+
/* */
|
4211
|
+
/* */
|
4212
|
+
/* */
|
4213
|
+
/* */
|
4214
|
+
/* */
|
4215
|
+
/* */
|
4216
|
+
/* */
|
4217
|
+
/* */
|
4218
|
+
/* */
|
4219
|
+
/* */
|
4220
|
+
/* */
|
4221
|
+
/* */
|
4222
|
+
/* */
|
4223
|
+
/* */
|
4224
|
+
/* */
|
4225
|
+
/* */
|
4226
|
+
/* */
|
4227
|
+
/* */
|
4228
|
+
/* */
|
4229
|
+
/* */
|
4230
|
+
],
|
4231
|
+
programs: [
|
4232
|
+
,
|
4233
|
+
/* */
|
4234
|
+
/* */
|
4235
|
+
/* */
|
4236
|
+
/* */
|
4237
|
+
/* */
|
4238
|
+
],
|
4239
|
+
};
|
4240
|
+
;
|
4241
|
+
({}); // @--end-of-file-for-module=tnp-core lib/required.ts
|
4242
|
+
|
4145
4243
|
let Helpers = HelpersCore.InstanceCore;
|
4146
4244
|
;
|
4147
4245
|
({}); // @--end-of-file-for-module=tnp-core lib/index.ts
|
@@ -4150,5 +4248,5 @@ let Helpers = HelpersCore.InstanceCore;
|
|
4150
4248
|
* Generated bundle index. Do not edit.
|
4151
4249
|
*/
|
4152
4250
|
|
4153
|
-
export { $, CoreConfig, HelpersCore as CoreHelpers, CoreModels, Helpers, PROGRESS_DATA, Utils, chalk, crossPlatformPath, frameworkName, frameworkNameBe, path, win32Path };
|
4251
|
+
export { $, CLI, CoreConfig, HelpersCore as CoreHelpers, CoreModels, Helpers, PROGRESS_DATA, Utils, chalk, crossPlatformPath, frameworkName, frameworkNameBe, path, requiredForDev, win32Path };
|
4154
4252
|
//# sourceMappingURL=tnp-core.mjs.map
|