@angular/cli 6.1.1 → 6.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -5
- package/commands/add.d.ts +8 -1
- package/commands/add.js +1 -1
- package/commands/build.js +1 -1
- package/commands/config.d.ts +9 -2
- package/commands/config.js +2 -2
- package/commands/doc.js +1 -1
- package/commands/e2e.js +1 -1
- package/commands/easter-egg.d.ts +7 -0
- package/commands/easter-egg.js +1 -1
- package/commands/eject.d.ts +7 -0
- package/commands/generate.d.ts +8 -1
- package/commands/generate.js +1 -1
- package/commands/help.d.ts +7 -0
- package/commands/help.js +1 -1
- package/commands/lint.js +1 -1
- package/commands/new.d.ts +2 -2
- package/commands/new.js +1 -1
- package/commands/run.js +1 -1
- package/commands/serve.js +1 -1
- package/commands/test.js +1 -1
- package/commands/update.d.ts +7 -0
- package/commands/update.js +1 -1
- package/commands/version.d.ts +8 -1
- package/commands/version.js +1 -1
- package/commands/xi18n.js +1 -1
- package/lib/cli/index.d.ts +7 -0
- package/lib/cli/index.js +1 -1
- package/lib/config/schema.json +18 -3
- package/lib/init.js +17 -2
- package/models/architect-command.d.ts +10 -3
- package/models/architect-command.js +1 -1
- package/models/command-runner.js +29 -18
- package/models/command.d.ts +10 -10
- package/models/command.js +1 -1
- package/models/error.js +1 -1
- package/models/schematic-command.d.ts +10 -3
- package/models/schematic-command.js +1 -1
- package/models/workspace-loader.d.ts +3 -3
- package/models/workspace-loader.js +1 -1
- package/package.json +6 -6
- package/tasks/npm-install.js +1 -1
- package/upgrade/version.d.ts +7 -0
- package/upgrade/version.js +29 -15
- package/utilities/check-package-manager.d.ts +7 -0
- package/utilities/check-package-manager.js +1 -1
- package/utilities/config.js +1 -1
- package/utilities/find-up.d.ts +7 -0
- package/utilities/find-up.js +1 -1
- package/utilities/project.d.ts +7 -0
- package/utilities/project.js +1 -1
- package/utilities/schematics.d.ts +7 -0
- package/utilities/schematics.js +1 -1
- package/utilities/require-project-module.d.ts +0 -9
- package/utilities/require-project-module.js +0 -20
package/models/command-runner.js
CHANGED
|
@@ -49,40 +49,51 @@ function runCommand(commandMap, args, logger, context) {
|
|
|
49
49
|
args = ['help'];
|
|
50
50
|
}
|
|
51
51
|
const rawOptions = yargsParser(args, { alias: { help: ['h'] }, boolean: ['help'] });
|
|
52
|
-
let commandName = rawOptions._[0];
|
|
52
|
+
let commandName = rawOptions._[0] || '';
|
|
53
53
|
// remove the command name
|
|
54
54
|
rawOptions._ = rawOptions._.slice(1);
|
|
55
55
|
const executionScope = project_1.insideProject()
|
|
56
56
|
? command_1.CommandScope.inProject
|
|
57
57
|
: command_1.CommandScope.outsideProject;
|
|
58
58
|
let Cmd;
|
|
59
|
-
Cmd = findCommand(commandMap, commandName);
|
|
60
|
-
if (!Cmd &&
|
|
59
|
+
Cmd = commandName ? findCommand(commandMap, commandName) : null;
|
|
60
|
+
if (!Cmd && (rawOptions.v || rawOptions.version)) {
|
|
61
61
|
commandName = 'version';
|
|
62
62
|
Cmd = findCommand(commandMap, commandName);
|
|
63
63
|
}
|
|
64
|
-
if (!Cmd && rawOptions.help) {
|
|
64
|
+
else if (!Cmd && (!commandName || rawOptions.help)) {
|
|
65
65
|
commandName = 'help';
|
|
66
66
|
Cmd = findCommand(commandMap, commandName);
|
|
67
67
|
}
|
|
68
68
|
if (!Cmd) {
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
69
|
+
if (!commandName) {
|
|
70
|
+
logger.error(core_1.tags.stripIndent `
|
|
71
|
+
We could not find a command from the arguments and the help command seems to be disabled.
|
|
72
|
+
This is an issue with the CLI itself. If you see this comment, please report it and
|
|
73
|
+
provide your repository.
|
|
74
|
+
`);
|
|
75
|
+
return 1;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
// Set name to string (no undefined).
|
|
79
|
+
const commandsDistance = {};
|
|
80
|
+
const allCommands = listAllCommandNames(commandMap).sort((a, b) => {
|
|
81
|
+
if (!(a in commandsDistance)) {
|
|
82
|
+
commandsDistance[a] = levenshtein(a, commandName);
|
|
83
|
+
}
|
|
84
|
+
if (!(b in commandsDistance)) {
|
|
85
|
+
commandsDistance[b] = levenshtein(b, commandName);
|
|
86
|
+
}
|
|
87
|
+
return commandsDistance[a] - commandsDistance[b];
|
|
88
|
+
});
|
|
89
|
+
logger.error(core_1.tags.stripIndent `
|
|
80
90
|
The specified command ("${commandName}") is invalid. For a list of available options,
|
|
81
91
|
run "ng help".
|
|
82
92
|
|
|
83
93
|
Did you mean "${allCommands[0]}"?
|
|
84
|
-
|
|
85
|
-
|
|
94
|
+
`);
|
|
95
|
+
return 1;
|
|
96
|
+
}
|
|
86
97
|
}
|
|
87
98
|
const command = new Cmd(context, logger);
|
|
88
99
|
args = yield command.initializeRaw(args);
|
|
@@ -242,4 +253,4 @@ function listAllCommandNames(map) {
|
|
|
242
253
|
return acc.concat(map[key].aliases);
|
|
243
254
|
}, []));
|
|
244
255
|
}
|
|
245
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXIvY2xpL21vZGVscy9jb21tYW5kLXJ1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7O0FBRUgsaURBQWlEO0FBQ2pELCtDQUE2RTtBQUM3RSw0Q0FBNEM7QUFDNUMsK0NBTTJCO0FBQzNCLGtEQUFxRDtBQU9yRCwrREFBK0Q7QUFDL0QsMkJBQTJCO0FBQzNCLHFCQUFxQixDQUFTLEVBQUUsQ0FBUztJQUN2Qyw4QkFBOEI7SUFDOUIsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2xCLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbEIsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVELGdEQUFnRDtJQUNoRCxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFeEQseUZBQXlGO0lBQ3pGLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUNiLFdBQVcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDbEMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUNsQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUNuRCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILG9CQUFpQyxVQUFzQixFQUN0QixJQUFjLEVBQ2QsTUFBc0IsRUFDdEIsT0FBdUI7O1FBRXRELG1EQUFtRDtRQUNuRCxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbEIsQ0FBQztRQUNELE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFFLE1BQU0sQ0FBRSxFQUFFLENBQUMsQ0FBQztRQUN0RixJQUFJLFdBQVcsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRWxDLDBCQUEwQjtRQUMxQixVQUFVLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLE1BQU0sY0FBYyxHQUFHLHVCQUFhLEVBQUU7WUFDcEMsQ0FBQyxDQUFDLHNCQUFZLENBQUMsU0FBUztZQUN4QixDQUFDLENBQUMsc0JBQVksQ0FBQyxjQUFjLENBQUM7UUFFaEMsSUFBSSxHQUE4QixDQUFDO1FBQ25DLEdBQUcsR0FBRyxXQUFXLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTNDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLFdBQVcsR0FBRyxTQUFTLENBQUM7WUFDeEIsR0FBRyxHQUFHLFdBQVcsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzVCLFdBQVcsR0FBRyxNQUFNLENBQUM7WUFDckIsR0FBRyxHQUFHLFdBQVcsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFDN0MsQ0FBQztRQUVELEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNULE1BQU0sZ0JBQWdCLEdBQUcsRUFBZ0MsQ0FBQztZQUMxRCxNQUFNLFdBQVcsR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2hFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzdCLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLFdBQVcsQ0FBQyxDQUFDLEVBQUUsV0FBVyxDQUFDLENBQUM7Z0JBQ3BELENBQUM7Z0JBQ0QsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDN0IsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FBQztnQkFDcEQsQ0FBQztnQkFFRCxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkQsQ0FBQyxDQUFDLENBQUM7WUFFSCxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQUksQ0FBQyxXQUFXLENBQUE7a0NBQ0MsV0FBVzs7O3dCQUdyQixXQUFXLENBQUMsQ0FBQyxDQUFDO0tBQ2pDLENBQUMsQ0FBQztZQUVILE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDO1FBRUQsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXpDLElBQUksR0FBRyxNQUFNLE9BQU8sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsSUFBSSxPQUFPLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzFGLE1BQU0sT0FBTyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNsQyxPQUFPLEdBQUcsWUFBWSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3RGLEVBQUUsQ0FBQyxDQUFDLFdBQVcsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQ2xDLENBQUM7UUFFRCxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztZQUNqQixPQUFPLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRTNCLE1BQU0sQ0FBQztRQUNULENBQUM7UUFBQyxJQUFJLENBQUMsQ0FBQztZQUNOLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEtBQUssU0FBUyxJQUFJLEdBQUcsQ0FBQyxLQUFLLEtBQUssc0JBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2dCQUNyRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLGNBQWMsQ0FBQyxDQUFDLENBQUM7b0JBQ2pDLElBQUksWUFBWSxDQUFDO29CQUNqQixFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxLQUFLLHNCQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzt3QkFDekMsWUFBWSxHQUFHLHVEQUF1RCxDQUFDO29CQUN6RSxDQUFDO29CQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNOLFlBQVksR0FBRyxzREFBc0QsQ0FBQztvQkFDeEUsQ0FBQztvQkFDRCxNQUFNLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUUzQixNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUNYLENBQUM7Z0JBRUQsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssS0FBSyxzQkFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7b0JBQ3pDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO3dCQUNoQyxNQUFNLENBQUMsS0FBSyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7d0JBRXpELE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQ1gsQ0FBQztvQkFFRCxFQUFFLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixFQUFFLGtCQUFrQixDQUFDLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUNuRixtRkFBbUY7d0JBQ25GLDhEQUE4RDt3QkFDOUQsbURBQW1EO3dCQUNuRCxNQUFNLE9BQU8sR0FBRyxXQUFJLENBQUMsV0FBVyxDQUFBOzs7OztXQUsvQixDQUFDO3dCQUVGLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7d0JBRXJCLE1BQU0sQ0FBQyxDQUFDLENBQUM7b0JBQ1gsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztZQUVELE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNqQixPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUM7WUFFcEIsTUFBTSxPQUFPLEdBQUcsTUFBTSxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2hELEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDYixNQUFNLENBQUMsS0FBSyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7Z0JBRWxELE1BQU0sQ0FBQyxDQUFDLENBQUM7WUFDWCxDQUFDO1lBRUQsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7Q0FBQTtBQXZIRCxnQ0F1SEM7QUFFRCxzQkFDRSxJQUFjLEVBQ2QsT0FBaUIsRUFDakIsZ0JBQTBCLEVBQzFCLFdBQTZCO0lBRTdCLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQztJQUUzQixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFO1NBQzdCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1NBQzlDLE1BQU0sQ0FBQyxDQUFDLE9BQVksRUFBRSxHQUFXLEVBQUUsRUFBRTtRQUNwQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7YUFDcEMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQztRQUUvQixNQUFNLENBQUMsT0FBTyxDQUFDO0lBQ2pCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUVULE1BQU0sUUFBUSxHQUFHLE9BQU87U0FDckIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQztTQUN6QyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFcEIsTUFBTSxRQUFRLEdBQUcsT0FBTztTQUNyQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxLQUFLLFNBQVMsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUN2RSxNQUFNLENBQUMsQ0FBQyxRQUFhLEVBQUUsR0FBVyxFQUFFLEVBQUU7UUFDckMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBRWpDLE1BQU0sQ0FBQyxRQUFRLENBQUM7SUFDbEIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBRVQsTUFBTSxPQUFPLEdBQUcsT0FBTztTQUNwQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQztTQUM5QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFFcEIsTUFBTSxPQUFPLEdBQUcsT0FBTztTQUNwQixNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FBQztTQUM5QixHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7SUFHcEIsT0FBTyxDQUFDLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JCLFFBQVEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFdEIsTUFBTSxZQUFZLEdBQUc7UUFDbkIsS0FBSyxFQUFFLE9BQU87UUFDZCxPQUFPLEVBQUUsUUFBUTtRQUNqQixPQUFPLEVBQUUsUUFBUTtRQUNqQixNQUFNLEVBQUUsT0FBTztRQUNmLE1BQU0sRUFBRSxPQUFPO0tBQ2hCLENBQUM7SUFFRixNQUFNLGFBQWEsR0FBRyxNQUFNLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxDQUFDO0lBRWpELGtCQUFrQjtJQUNsQixPQUFPO1NBQ0osTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7U0FDOUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztTQUNuQixNQUFNLENBQUMsQ0FBQyxVQUFlLEVBQUUsT0FBaUIsRUFBRSxFQUFFO1FBQzdDLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pDLENBQUMsRUFBRSxFQUFFLENBQUM7U0FDTCxPQUFPLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTtRQUN6QixPQUFPLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM5QixDQUFDLENBQUMsQ0FBQztJQUVMLDRCQUE0QjtJQUM1QixRQUFRO1NBQ0wsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQztTQUMzQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxjQUFXLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLE9BQU8sYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFekMsOEJBQThCO0lBQzlCLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO1NBQ3ZCLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7U0FDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsT0FBTyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUU3QywwQkFBMEI7SUFDMUIsYUFBYSxDQUFDLENBQUMsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUUzQyxNQUFNLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ3BCLEtBQUssMEJBQWdCLENBQUMsWUFBWTtZQUNoQyxhQUFhLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQWEsRUFBRSxLQUFhLEVBQUUsRUFBRTtnQkFDdkQsTUFBTSxHQUFHLEdBQUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3BDLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQ1IsYUFBYSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztnQkFDN0IsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxhQUFhLENBQUMsQ0FBQyxDQUFDO1lBQ3ZCLEtBQUssQ0FBQztJQUNWLENBQUM7SUFFRCxNQUFNLENBQUMsYUFBYSxDQUFDO0FBQ3ZCLENBQUM7QUExRkQsb0NBMEZDO0FBRUQsa0JBQWtCO0FBQ2xCLHFCQUFxQixHQUFlLEVBQUUsSUFBWTtJQUNoRCxJQUFJLEdBQUcsR0FBdUIsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRXhDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNULDJCQUEyQjtRQUMzQixHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7YUFDbkIsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ1osRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztnQkFDdEIsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUNmLENBQUM7WUFDRCxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTztpQkFDaEMsTUFBTSxDQUFDLENBQUMsS0FBYSxFQUFFLEVBQUUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUM7WUFFN0MsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLENBQUMsQ0FBQzthQUNELEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ1gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDVCxNQUFNLENBQUMsSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELE1BQU0sQ0FBQyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsNkJBQTZCLEdBQWU7SUFDMUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUM1QixNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztTQUNiLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRTtRQUNuQixFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1lBQ3RCLE1BQU0sQ0FBQyxHQUFHLENBQUM7UUFDYixDQUFDO1FBRUQsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUMsRUFBRSxFQUFjLENBQUMsQ0FDckIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8vIHRzbGludDpkaXNhYmxlOm5vLWdsb2JhbC10c2xpbnQtZGlzYWJsZSBuby1hbnlcbmltcG9ydCB7IGxvZ2dpbmcsIHN0cmluZ3MgYXMgY29yZVN0cmluZ3MsIHRhZ3MgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvY29yZSc7XG5pbXBvcnQgKiBhcyB5YXJnc1BhcnNlciBmcm9tICd5YXJncy1wYXJzZXInO1xuaW1wb3J0IHtcbiAgQXJndW1lbnRTdHJhdGVneSxcbiAgQ29tbWFuZENvbnN0cnVjdG9yLFxuICBDb21tYW5kQ29udGV4dCxcbiAgQ29tbWFuZFNjb3BlLFxuICBPcHRpb24sXG59IGZyb20gJy4uL21vZGVscy9jb21tYW5kJztcbmltcG9ydCB7IGluc2lkZVByb2plY3QgfSBmcm9tICcuLi91dGlsaXRpZXMvcHJvamVjdCc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kTWFwIHtcbiAgW2tleTogc3RyaW5nXTogQ29tbWFuZENvbnN0cnVjdG9yO1xufVxuXG4vLyBCYXNlZCBvZmYgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGV2ZW5zaHRlaW5fZGlzdGFuY2Vcbi8vIE5vIG9wdGltaXphdGlvbiwgcmVhbGx5LlxuZnVuY3Rpb24gbGV2ZW5zaHRlaW4oYTogc3RyaW5nLCBiOiBzdHJpbmcpOiBudW1iZXIge1xuICAvKiBiYXNlIGNhc2U6IGVtcHR5IHN0cmluZ3MgKi9cbiAgaWYgKGEubGVuZ3RoID09IDApIHtcbiAgICByZXR1cm4gYi5sZW5ndGg7XG4gIH1cbiAgaWYgKGIubGVuZ3RoID09IDApIHtcbiAgICByZXR1cm4gYS5sZW5ndGg7XG4gIH1cblxuICAvLyBUZXN0IGlmIGxhc3QgY2hhcmFjdGVycyBvZiB0aGUgc3RyaW5ncyBtYXRjaC5cbiAgY29uc3QgY29zdCA9IGFbYS5sZW5ndGggLSAxXSA9PSBiW2IubGVuZ3RoIC0gMV0gPyAwIDogMTtcblxuICAvKiByZXR1cm4gbWluaW11bSBvZiBkZWxldGUgY2hhciBmcm9tIHMsIGRlbGV0ZSBjaGFyIGZyb20gdCwgYW5kIGRlbGV0ZSBjaGFyIGZyb20gYm90aCAqL1xuICByZXR1cm4gTWF0aC5taW4oXG4gICAgbGV2ZW5zaHRlaW4oYS5zbGljZSgwLCAtMSksIGIpICsgMSxcbiAgICBsZXZlbnNodGVpbihhLCBiLnNsaWNlKDAsIC0xKSkgKyAxLFxuICAgIGxldmVuc2h0ZWluKGEuc2xpY2UoMCwgLTEpLCBiLnNsaWNlKDAsIC0xKSkgKyBjb3N0LFxuICApO1xufVxuXG4vKipcbiAqIFJ1biBhIGNvbW1hbmQuXG4gKiBAcGFyYW0gY29tbWFuZE1hcCBNYXAgb2YgYXZhaWxhYmxlIGNvbW1hbmRzLlxuICogQHBhcmFtIGFyZ3MgUmF3IHVucGFyc2VkIGFyZ3VtZW50cy5cbiAqIEBwYXJhbSBsb2dnZXIgVGhlIGxvZ2dlciB0byB1c2UuXG4gKiBAcGFyYW0gY29udGV4dCBFeGVjdXRpb24gY29udGV4dC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkNvbW1hbmQoY29tbWFuZE1hcDogQ29tbWFuZE1hcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IHN0cmluZ1tdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiBsb2dnaW5nLkxvZ2dlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IENvbW1hbmRDb250ZXh0KTogUHJvbWlzZTxudW1iZXIgfCB2b2lkPiB7XG5cbiAgLy8gaWYgbm90IGFyZ3Mgc3VwcGxpZWQsIGp1c3QgcnVuIHRoZSBoZWxwIGNvbW1hbmQuXG4gIGlmICghYXJncyB8fCBhcmdzLmxlbmd0aCA9PT0gMCkge1xuICAgIGFyZ3MgPSBbJ2hlbHAnXTtcbiAgfVxuICBjb25zdCByYXdPcHRpb25zID0geWFyZ3NQYXJzZXIoYXJncywgeyBhbGlhczogeyBoZWxwOiBbJ2gnXSB9LCBib29sZWFuOiBbICdoZWxwJyBdIH0pO1xuICBsZXQgY29tbWFuZE5hbWUgPSByYXdPcHRpb25zLl9bMF07XG5cbiAgLy8gcmVtb3ZlIHRoZSBjb21tYW5kIG5hbWVcbiAgcmF3T3B0aW9ucy5fID0gcmF3T3B0aW9ucy5fLnNsaWNlKDEpO1xuICBjb25zdCBleGVjdXRpb25TY29wZSA9IGluc2lkZVByb2plY3QoKVxuICAgID8gQ29tbWFuZFNjb3BlLmluUHJvamVjdFxuICAgIDogQ29tbWFuZFNjb3BlLm91dHNpZGVQcm9qZWN0O1xuXG4gIGxldCBDbWQ6IENvbW1hbmRDb25zdHJ1Y3RvciB8IG51bGw7XG4gIENtZCA9IGZpbmRDb21tYW5kKGNvbW1hbmRNYXAsIGNvbW1hbmROYW1lKTtcblxuICBpZiAoIUNtZCAmJiAhY29tbWFuZE5hbWUgJiYgKHJhd09wdGlvbnMudiB8fCByYXdPcHRpb25zLnZlcnNpb24pKSB7XG4gICAgY29tbWFuZE5hbWUgPSAndmVyc2lvbic7XG4gICAgQ21kID0gZmluZENvbW1hbmQoY29tbWFuZE1hcCwgY29tbWFuZE5hbWUpO1xuICB9XG5cbiAgaWYgKCFDbWQgJiYgcmF3T3B0aW9ucy5oZWxwKSB7XG4gICAgY29tbWFuZE5hbWUgPSAnaGVscCc7XG4gICAgQ21kID0gZmluZENvbW1hbmQoY29tbWFuZE1hcCwgY29tbWFuZE5hbWUpO1xuICB9XG5cbiAgaWYgKCFDbWQpIHtcbiAgICBjb25zdCBjb21tYW5kc0Rpc3RhbmNlID0ge30gYXMgeyBbbmFtZTogc3RyaW5nXTogbnVtYmVyIH07XG4gICAgY29uc3QgYWxsQ29tbWFuZHMgPSBsaXN0QWxsQ29tbWFuZE5hbWVzKGNvbW1hbmRNYXApLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgIGlmICghKGEgaW4gY29tbWFuZHNEaXN0YW5jZSkpIHtcbiAgICAgICAgY29tbWFuZHNEaXN0YW5jZVthXSA9IGxldmVuc2h0ZWluKGEsIGNvbW1hbmROYW1lKTtcbiAgICAgIH1cbiAgICAgIGlmICghKGIgaW4gY29tbWFuZHNEaXN0YW5jZSkpIHtcbiAgICAgICAgY29tbWFuZHNEaXN0YW5jZVtiXSA9IGxldmVuc2h0ZWluKGIsIGNvbW1hbmROYW1lKTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIGNvbW1hbmRzRGlzdGFuY2VbYV0gLSBjb21tYW5kc0Rpc3RhbmNlW2JdO1xuICAgIH0pO1xuXG4gICAgbG9nZ2VyLmVycm9yKHRhZ3Muc3RyaXBJbmRlbnRgXG4gICAgICAgIFRoZSBzcGVjaWZpZWQgY29tbWFuZCAoXCIke2NvbW1hbmROYW1lfVwiKSBpcyBpbnZhbGlkLiBGb3IgYSBsaXN0IG9mIGF2YWlsYWJsZSBvcHRpb25zLFxuICAgICAgICBydW4gXCJuZyBoZWxwXCIuXG5cbiAgICAgICAgRGlkIHlvdSBtZWFuIFwiJHthbGxDb21tYW5kc1swXX1cIj9cbiAgICBgKTtcblxuICAgIHJldHVybiAxO1xuICB9XG5cbiAgY29uc3QgY29tbWFuZCA9IG5ldyBDbWQoY29udGV4dCwgbG9nZ2VyKTtcblxuICBhcmdzID0gYXdhaXQgY29tbWFuZC5pbml0aWFsaXplUmF3KGFyZ3MpO1xuICBsZXQgb3B0aW9ucyA9IHBhcnNlT3B0aW9ucyhhcmdzLCBjb21tYW5kLm9wdGlvbnMsIGNvbW1hbmQuYXJndW1lbnRzLCBjb21tYW5kLmFyZ1N0cmF0ZWd5KTtcbiAgYXdhaXQgY29tbWFuZC5pbml0aWFsaXplKG9wdGlvbnMpO1xuICBvcHRpb25zID0gcGFyc2VPcHRpb25zKGFyZ3MsIGNvbW1hbmQub3B0aW9ucywgY29tbWFuZC5hcmd1bWVudHMsIGNvbW1hbmQuYXJnU3RyYXRlZ3kpO1xuICBpZiAoY29tbWFuZE5hbWUgPT09ICdoZWxwJykge1xuICAgIG9wdGlvbnMuY29tbWFuZE1hcCA9IGNvbW1hbmRNYXA7XG4gIH1cblxuICBpZiAob3B0aW9ucy5oZWxwKSB7XG4gICAgY29tbWFuZC5wcmludEhlbHAob3B0aW9ucyk7XG5cbiAgICByZXR1cm47XG4gIH0gZWxzZSB7XG4gICAgaWYgKENtZC5zY29wZSAhPT0gdW5kZWZpbmVkICYmIENtZC5zY29wZSAhPT0gQ29tbWFuZFNjb3BlLmV2ZXJ5d2hlcmUpIHtcbiAgICAgIGlmIChDbWQuc2NvcGUgIT09IGV4ZWN1dGlvblNjb3BlKSB7XG4gICAgICAgIGxldCBlcnJvck1lc3NhZ2U7XG4gICAgICAgIGlmIChDbWQuc2NvcGUgPT09IENvbW1hbmRTY29wZS5pblByb2plY3QpIHtcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSBgVGhpcyBjb21tYW5kIGNhbiBvbmx5IGJlIHJ1biBpbnNpZGUgb2YgYSBDTEkgcHJvamVjdC5gO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGBUaGlzIGNvbW1hbmQgY2FuIG5vdCBiZSBydW4gaW5zaWRlIG9mIGEgQ0xJIHByb2plY3QuYDtcbiAgICAgICAgfVxuICAgICAgICBsb2dnZXIuZmF0YWwoZXJyb3JNZXNzYWdlKTtcblxuICAgICAgICByZXR1cm4gMTtcbiAgICAgIH1cblxuICAgICAgaWYgKENtZC5zY29wZSA9PT0gQ29tbWFuZFNjb3BlLmluUHJvamVjdCkge1xuICAgICAgICBpZiAoIWNvbnRleHQucHJvamVjdC5jb25maWdGaWxlKSB7XG4gICAgICAgICAgbG9nZ2VyLmZhdGFsKCdJbnZhbGlkIHByb2plY3Q6IG1pc3Npbmcgd29ya3NwYWNlIGZpbGUuJyk7XG5cbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChbJy5hbmd1bGFyLWNsaS5qc29uJywgJ2FuZ3VsYXItY2xpLmpzb24nXS5pbmNsdWRlcyhjb250ZXh0LnByb2plY3QuY29uZmlnRmlsZSkpIHtcbiAgICAgICAgICAvLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICAgICAgICAgIC8vIElmIGNoYW5naW5nIHRoaXMgbWVzc2FnZSwgcGxlYXNlIHVwZGF0ZSB0aGUgc2FtZSBtZXNzYWdlIGluXG4gICAgICAgICAgLy8gYHBhY2thZ2VzL0Bhbmd1bGFyL2NsaS9iaW4vbmctdXBkYXRlLW1lc3NhZ2UuanNgXG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9IHRhZ3Muc3RyaXBJbmRlbnRgXG4gICAgICAgICAgICBUaGUgQW5ndWxhciBDTEkgY29uZmlndXJhdGlvbiBmb3JtYXQgaGFzIGJlZW4gY2hhbmdlZCwgYW5kIHlvdXIgZXhpc3RpbmcgY29uZmlndXJhdGlvblxuICAgICAgICAgICAgY2FuIGJlIHVwZGF0ZWQgYXV0b21hdGljYWxseSBieSBydW5uaW5nIHRoZSBmb2xsb3dpbmcgY29tbWFuZDpcblxuICAgICAgICAgICAgICBuZyB1cGRhdGUgQGFuZ3VsYXIvY2xpXG4gICAgICAgICAgYDtcblxuICAgICAgICAgIGxvZ2dlci53YXJuKG1lc3NhZ2UpO1xuXG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBkZWxldGUgb3B0aW9ucy5oO1xuICAgIGRlbGV0ZSBvcHRpb25zLmhlbHA7XG5cbiAgICBjb25zdCBpc1ZhbGlkID0gYXdhaXQgY29tbWFuZC52YWxpZGF0ZShvcHRpb25zKTtcbiAgICBpZiAoIWlzVmFsaWQpIHtcbiAgICAgIGxvZ2dlci5mYXRhbChgVmFsaWRhdGlvbiBlcnJvci4gSW52YWxpZCBjb21tYW5kYCk7XG5cbiAgICAgIHJldHVybiAxO1xuICAgIH1cblxuICAgIHJldHVybiBjb21tYW5kLnJ1bihvcHRpb25zKTtcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VPcHRpb25zPFQgPSBhbnk+KFxuICBhcmdzOiBzdHJpbmdbXSxcbiAgY21kT3B0czogT3B0aW9uW10sXG4gIGNvbW1hbmRBcmd1bWVudHM6IHN0cmluZ1tdLFxuICBhcmdTdHJhdGVneTogQXJndW1lbnRTdHJhdGVneSxcbik6IFQge1xuICBjb25zdCBwYXJzZXIgPSB5YXJnc1BhcnNlcjtcblxuICBjb25zdCBhbGlhc2VzID0gY21kT3B0cy5jb25jYXQoKVxuICAgIC5maWx0ZXIobyA9PiBvLmFsaWFzZXMgJiYgby5hbGlhc2VzLmxlbmd0aCA+IDApXG4gICAgLnJlZHVjZSgoYWxpYXNlczogYW55LCBvcHQ6IE9wdGlvbikgPT4ge1xuICAgICAgYWxpYXNlc1tvcHQubmFtZV0gPSAob3B0LmFsaWFzZXMgfHwgW10pXG4gICAgICAgIC5maWx0ZXIoYSA9PiBhLmxlbmd0aCA9PT0gMSk7XG5cbiAgICAgIHJldHVybiBhbGlhc2VzO1xuICAgIH0sIHt9KTtcblxuICBjb25zdCBib29sZWFucyA9IGNtZE9wdHNcbiAgICAuZmlsdGVyKG8gPT4gby50eXBlICYmIG8udHlwZSA9PT0gQm9vbGVhbilcbiAgICAubWFwKG8gPT4gby5uYW1lKTtcblxuICBjb25zdCBkZWZhdWx0cyA9IGNtZE9wdHNcbiAgICAuZmlsdGVyKG8gPT4gby5kZWZhdWx0ICE9PSB1bmRlZmluZWQgfHwgYm9vbGVhbnMuaW5kZXhPZihvLm5hbWUpICE9PSAtMSlcbiAgICAucmVkdWNlKChkZWZhdWx0czogYW55LCBvcHQ6IE9wdGlvbikgPT4ge1xuICAgICAgZGVmYXVsdHNbb3B0Lm5hbWVdID0gb3B0LmRlZmF1bHQ7XG5cbiAgICAgIHJldHVybiBkZWZhdWx0cztcbiAgICB9LCB7fSk7XG5cbiAgY29uc3Qgc3RyaW5ncyA9IGNtZE9wdHNcbiAgICAuZmlsdGVyKG8gPT4gby50eXBlID09PSBTdHJpbmcpXG4gICAgLm1hcChvID0+IG8ubmFtZSk7XG5cbiAgY29uc3QgbnVtYmVycyA9IGNtZE9wdHNcbiAgICAuZmlsdGVyKG8gPT4gby50eXBlID09PSBOdW1iZXIpXG4gICAgLm1hcChvID0+IG8ubmFtZSk7XG5cblxuICBhbGlhc2VzLmhlbHAgPSBbJ2gnXTtcbiAgYm9vbGVhbnMucHVzaCgnaGVscCcpO1xuXG4gIGNvbnN0IHlhcmdzT3B0aW9ucyA9IHtcbiAgICBhbGlhczogYWxpYXNlcyxcbiAgICBib29sZWFuOiBib29sZWFucyxcbiAgICBkZWZhdWx0OiBkZWZhdWx0cyxcbiAgICBzdHJpbmc6IHN0cmluZ3MsXG4gICAgbnVtYmVyOiBudW1iZXJzLFxuICB9O1xuXG4gIGNvbnN0IHBhcnNlZE9wdGlvbnMgPSBwYXJzZXIoYXJncywgeWFyZ3NPcHRpb25zKTtcblxuICAvLyBSZW1vdmUgYWxpYXNlcy5cbiAgY21kT3B0c1xuICAgIC5maWx0ZXIobyA9PiBvLmFsaWFzZXMgJiYgby5hbGlhc2VzLmxlbmd0aCA+IDApXG4gICAgLm1hcChvID0+IG8uYWxpYXNlcylcbiAgICAucmVkdWNlKChhbGxBbGlhc2VzOiBhbnksIGFsaWFzZXM6IHN0cmluZ1tdKSA9PiB7XG4gICAgICByZXR1cm4gYWxsQWxpYXNlcy5jb25jYXQoWy4uLmFsaWFzZXNdKTtcbiAgICB9LCBbXSlcbiAgICAuZm9yRWFjaCgoYWxpYXM6IHN0cmluZykgPT4ge1xuICAgICAgZGVsZXRlIHBhcnNlZE9wdGlvbnNbYWxpYXNdO1xuICAgIH0pO1xuXG4gIC8vIFJlbW92ZSB1bmRlZmluZWQgYm9vbGVhbnNcbiAgYm9vbGVhbnNcbiAgICAuZmlsdGVyKGIgPT4gcGFyc2VkT3B0aW9uc1tiXSA9PT0gdW5kZWZpbmVkKVxuICAgIC5tYXAoYiA9PiBjb3JlU3RyaW5ncy5jYW1lbGl6ZShiKSlcbiAgICAuZm9yRWFjaChiID0+IGRlbGV0ZSBwYXJzZWRPcHRpb25zW2JdKTtcblxuICAvLyByZW1vdmUgb3B0aW9ucyB3aXRoIGRhc2hlcy5cbiAgT2JqZWN0LmtleXMocGFyc2VkT3B0aW9ucylcbiAgICAuZmlsdGVyKGtleSA9PiBrZXkuaW5kZXhPZignLScpICE9PSAtMSlcbiAgICAuZm9yRWFjaChrZXkgPT4gZGVsZXRlIHBhcnNlZE9wdGlvbnNba2V5XSk7XG5cbiAgLy8gcmVtb3ZlIHRoZSBjb21tYW5kIG5hbWVcbiAgcGFyc2VkT3B0aW9ucy5fID0gcGFyc2VkT3B0aW9ucy5fLnNsaWNlKDEpO1xuXG4gIHN3aXRjaCAoYXJnU3RyYXRlZ3kpIHtcbiAgICBjYXNlIEFyZ3VtZW50U3RyYXRlZ3kuTWFwVG9PcHRpb25zOlxuICAgICAgcGFyc2VkT3B0aW9ucy5fLmZvckVhY2goKHZhbHVlOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgICAgY29uc3QgYXJnID0gY29tbWFuZEFyZ3VtZW50c1tpbmRleF07XG4gICAgICAgIGlmIChhcmcpIHtcbiAgICAgICAgICBwYXJzZWRPcHRpb25zW2FyZ10gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIGRlbGV0ZSBwYXJzZWRPcHRpb25zLl87XG4gICAgICBicmVhaztcbiAgfVxuXG4gIHJldHVybiBwYXJzZWRPcHRpb25zO1xufVxuXG4vLyBGaW5kIGEgY29tbWFuZC5cbmZ1bmN0aW9uIGZpbmRDb21tYW5kKG1hcDogQ29tbWFuZE1hcCwgbmFtZTogc3RyaW5nKTogQ29tbWFuZENvbnN0cnVjdG9yIHwgbnVsbCB7XG4gIGxldCBDbWQ6IENvbW1hbmRDb25zdHJ1Y3RvciA9IG1hcFtuYW1lXTtcblxuICBpZiAoIUNtZCkge1xuICAgIC8vIGZpbmQgY29tbWFuZCB2aWEgYWxpYXNlc1xuICAgIENtZCA9IE9iamVjdC5rZXlzKG1hcClcbiAgICAgIC5maWx0ZXIoa2V5ID0+IHtcbiAgICAgICAgaWYgKCFtYXBba2V5XS5hbGlhc2VzKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGZvdW5kQWxpYXMgPSBtYXBba2V5XS5hbGlhc2VzXG4gICAgICAgICAgLmZpbHRlcigoYWxpYXM6IHN0cmluZykgPT4gYWxpYXMgPT09IG5hbWUpO1xuXG4gICAgICAgIHJldHVybiBmb3VuZEFsaWFzLmxlbmd0aCA+IDA7XG4gICAgICB9KVxuICAgICAgLm1hcCgoa2V5KSA9PiB7XG4gICAgICAgIHJldHVybiBtYXBba2V5XTtcbiAgICAgIH0pWzBdO1xuICB9XG5cbiAgaWYgKCFDbWQpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiBDbWQ7XG59XG5cbmZ1bmN0aW9uIGxpc3RBbGxDb21tYW5kTmFtZXMobWFwOiBDb21tYW5kTWFwKTogc3RyaW5nW10ge1xuICByZXR1cm4gT2JqZWN0LmtleXMobWFwKS5jb25jYXQoXG4gICAgT2JqZWN0LmtleXMobWFwKVxuICAgICAgLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICAgICAgaWYgKCFtYXBba2V5XS5hbGlhc2VzKSB7XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBhY2MuY29uY2F0KG1hcFtrZXldLmFsaWFzZXMpO1xuICAgICAgfSwgW10gYXMgc3RyaW5nW10pLFxuICApO1xufVxuIl19
|
|
256
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC1ydW5uZXIuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXIvY2xpL21vZGVscy9jb21tYW5kLXJ1bm5lci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7O0FBRUgsaURBQWlEO0FBQ2pELCtDQUE2RTtBQUM3RSw0Q0FBNEM7QUFDNUMsK0NBTTJCO0FBQzNCLGtEQUFxRDtBQU9yRCwrREFBK0Q7QUFDL0QsMkJBQTJCO0FBQzNCLHFCQUFxQixDQUFTLEVBQUUsQ0FBUztJQUN2Qyw4QkFBOEI7SUFDOUIsSUFBSSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtRQUNqQixPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7S0FDakI7SUFDRCxJQUFJLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxFQUFFO1FBQ2pCLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQztLQUNqQjtJQUVELGdEQUFnRDtJQUNoRCxNQUFNLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFeEQseUZBQXlGO0lBQ3pGLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FDYixXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQ2xDLFdBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFDbEMsV0FBVyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFD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ckIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8vIHRzbGludDpkaXNhYmxlOm5vLWdsb2JhbC10c2xpbnQtZGlzYWJsZSBuby1hbnlcbmltcG9ydCB7IGxvZ2dpbmcsIHN0cmluZ3MgYXMgY29yZVN0cmluZ3MsIHRhZ3MgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvY29yZSc7XG5pbXBvcnQgKiBhcyB5YXJnc1BhcnNlciBmcm9tICd5YXJncy1wYXJzZXInO1xuaW1wb3J0IHtcbiAgQXJndW1lbnRTdHJhdGVneSxcbiAgQ29tbWFuZENvbnN0cnVjdG9yLFxuICBDb21tYW5kQ29udGV4dCxcbiAgQ29tbWFuZFNjb3BlLFxuICBPcHRpb24sXG59IGZyb20gJy4uL21vZGVscy9jb21tYW5kJztcbmltcG9ydCB7IGluc2lkZVByb2plY3QgfSBmcm9tICcuLi91dGlsaXRpZXMvcHJvamVjdCc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBDb21tYW5kTWFwIHtcbiAgW2tleTogc3RyaW5nXTogQ29tbWFuZENvbnN0cnVjdG9yO1xufVxuXG4vLyBCYXNlZCBvZmYgaHR0cHM6Ly9lbi53aWtpcGVkaWEub3JnL3dpa2kvTGV2ZW5zaHRlaW5fZGlzdGFuY2Vcbi8vIE5vIG9wdGltaXphdGlvbiwgcmVhbGx5LlxuZnVuY3Rpb24gbGV2ZW5zaHRlaW4oYTogc3RyaW5nLCBiOiBzdHJpbmcpOiBudW1iZXIge1xuICAvKiBiYXNlIGNhc2U6IGVtcHR5IHN0cmluZ3MgKi9cbiAgaWYgKGEubGVuZ3RoID09IDApIHtcbiAgICByZXR1cm4gYi5sZW5ndGg7XG4gIH1cbiAgaWYgKGIubGVuZ3RoID09IDApIHtcbiAgICByZXR1cm4gYS5sZW5ndGg7XG4gIH1cblxuICAvLyBUZXN0IGlmIGxhc3QgY2hhcmFjdGVycyBvZiB0aGUgc3RyaW5ncyBtYXRjaC5cbiAgY29uc3QgY29zdCA9IGFbYS5sZW5ndGggLSAxXSA9PSBiW2IubGVuZ3RoIC0gMV0gPyAwIDogMTtcblxuICAvKiByZXR1cm4gbWluaW11bSBvZiBkZWxldGUgY2hhciBmcm9tIHMsIGRlbGV0ZSBjaGFyIGZyb20gdCwgYW5kIGRlbGV0ZSBjaGFyIGZyb20gYm90aCAqL1xuICByZXR1cm4gTWF0aC5taW4oXG4gICAgbGV2ZW5zaHRlaW4oYS5zbGljZSgwLCAtMSksIGIpICsgMSxcbiAgICBsZXZlbnNodGVpbihhLCBiLnNsaWNlKDAsIC0xKSkgKyAxLFxuICAgIGxldmVuc2h0ZWluKGEuc2xpY2UoMCwgLTEpLCBiLnNsaWNlKDAsIC0xKSkgKyBjb3N0LFxuICApO1xufVxuXG4vKipcbiAqIFJ1biBhIGNvbW1hbmQuXG4gKiBAcGFyYW0gY29tbWFuZE1hcCBNYXAgb2YgYXZhaWxhYmxlIGNvbW1hbmRzLlxuICogQHBhcmFtIGFyZ3MgUmF3IHVucGFyc2VkIGFyZ3VtZW50cy5cbiAqIEBwYXJhbSBsb2dnZXIgVGhlIGxvZ2dlciB0byB1c2UuXG4gKiBAcGFyYW0gY29udGV4dCBFeGVjdXRpb24gY29udGV4dC5cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bkNvbW1hbmQoY29tbWFuZE1hcDogQ29tbWFuZE1hcCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyZ3M6IHN0cmluZ1tdLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiBsb2dnaW5nLkxvZ2dlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IENvbW1hbmRDb250ZXh0KTogUHJvbWlzZTxudW1iZXIgfCB2b2lkPiB7XG5cbiAgLy8gaWYgbm90IGFyZ3Mgc3VwcGxpZWQsIGp1c3QgcnVuIHRoZSBoZWxwIGNvbW1hbmQuXG4gIGlmICghYXJncyB8fCBhcmdzLmxlbmd0aCA9PT0gMCkge1xuICAgIGFyZ3MgPSBbJ2hlbHAnXTtcbiAgfVxuICBjb25zdCByYXdPcHRpb25zID0geWFyZ3NQYXJzZXIoYXJncywgeyBhbGlhczogeyBoZWxwOiBbJ2gnXSB9LCBib29sZWFuOiBbICdoZWxwJyBdIH0pO1xuICBsZXQgY29tbWFuZE5hbWUgPSByYXdPcHRpb25zLl9bMF0gfHwgJyc7XG5cbiAgLy8gcmVtb3ZlIHRoZSBjb21tYW5kIG5hbWVcbiAgcmF3T3B0aW9ucy5fID0gcmF3T3B0aW9ucy5fLnNsaWNlKDEpO1xuICBjb25zdCBleGVjdXRpb25TY29wZSA9IGluc2lkZVByb2plY3QoKVxuICAgID8gQ29tbWFuZFNjb3BlLmluUHJvamVjdFxuICAgIDogQ29tbWFuZFNjb3BlLm91dHNpZGVQcm9qZWN0O1xuXG4gIGxldCBDbWQ6IENvbW1hbmRDb25zdHJ1Y3RvciB8IG51bGw7XG4gIENtZCA9IGNvbW1hbmROYW1lID8gZmluZENvbW1hbmQoY29tbWFuZE1hcCwgY29tbWFuZE5hbWUpIDogbnVsbDtcblxuICBpZiAoIUNtZCAmJiAocmF3T3B0aW9ucy52IHx8IHJhd09wdGlvbnMudmVyc2lvbikpIHtcbiAgICBjb21tYW5kTmFtZSA9ICd2ZXJzaW9uJztcbiAgICBDbWQgPSBmaW5kQ29tbWFuZChjb21tYW5kTWFwLCBjb21tYW5kTmFtZSk7XG4gIH0gZWxzZSBpZiAoIUNtZCAmJiAoIWNvbW1hbmROYW1lIHx8IHJhd09wdGlvbnMuaGVscCkpIHtcbiAgICBjb21tYW5kTmFtZSA9ICdoZWxwJztcbiAgICBDbWQgPSBmaW5kQ29tbWFuZChjb21tYW5kTWFwLCBjb21tYW5kTmFtZSk7XG4gIH1cblxuICBpZiAoIUNtZCkge1xuICAgIGlmICghY29tbWFuZE5hbWUpIHtcbiAgICAgIGxvZ2dlci5lcnJvcih0YWdzLnN0cmlwSW5kZW50YFxuICAgICAgICBXZSBjb3VsZCBub3QgZmluZCBhIGNvbW1hbmQgZnJvbSB0aGUgYXJndW1lbnRzIGFuZCB0aGUgaGVscCBjb21tYW5kIHNlZW1zIHRvIGJlIGRpc2FibGVkLlxuICAgICAgICBUaGlzIGlzIGFuIGlzc3VlIHdpdGggdGhlIENMSSBpdHNlbGYuIElmIHlvdSBzZWUgdGhpcyBjb21tZW50LCBwbGVhc2UgcmVwb3J0IGl0IGFuZFxuICAgICAgICBwcm92aWRlIHlvdXIgcmVwb3NpdG9yeS5cbiAgICAgIGApO1xuXG4gICAgICByZXR1cm4gMTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gU2V0IG5hbWUgdG8gc3RyaW5nIChubyB1bmRlZmluZWQpLlxuICAgICAgY29uc3QgY29tbWFuZHNEaXN0YW5jZSA9IHt9IGFzIHsgW25hbWU6IHN0cmluZ106IG51bWJlciB9O1xuICAgICAgY29uc3QgYWxsQ29tbWFuZHMgPSBsaXN0QWxsQ29tbWFuZE5hbWVzKGNvbW1hbmRNYXApLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKCEoYSBpbiBjb21tYW5kc0Rpc3RhbmNlKSkge1xuICAgICAgICAgIGNvbW1hbmRzRGlzdGFuY2VbYV0gPSBsZXZlbnNodGVpbihhLCBjb21tYW5kTmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCEoYiBpbiBjb21tYW5kc0Rpc3RhbmNlKSkge1xuICAgICAgICAgIGNvbW1hbmRzRGlzdGFuY2VbYl0gPSBsZXZlbnNodGVpbihiLCBjb21tYW5kTmFtZSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gY29tbWFuZHNEaXN0YW5jZVthXSAtIGNvbW1hbmRzRGlzdGFuY2VbYl07XG4gICAgICB9KTtcblxuICAgICAgbG9nZ2VyLmVycm9yKHRhZ3Muc3RyaXBJbmRlbnRgXG4gICAgICAgIFRoZSBzcGVjaWZpZWQgY29tbWFuZCAoXCIke2NvbW1hbmROYW1lfVwiKSBpcyBpbnZhbGlkLiBGb3IgYSBsaXN0IG9mIGF2YWlsYWJsZSBvcHRpb25zLFxuICAgICAgICBydW4gXCJuZyBoZWxwXCIuXG5cbiAgICAgICAgRGlkIHlvdSBtZWFuIFwiJHthbGxDb21tYW5kc1swXX1cIj9cbiAgICAgIGApO1xuXG4gICAgICByZXR1cm4gMTtcbiAgICB9XG4gIH1cblxuICBjb25zdCBjb21tYW5kID0gbmV3IENtZChjb250ZXh0LCBsb2dnZXIpO1xuXG4gIGFyZ3MgPSBhd2FpdCBjb21tYW5kLmluaXRpYWxpemVSYXcoYXJncyk7XG4gIGxldCBvcHRpb25zID0gcGFyc2VPcHRpb25zKGFyZ3MsIGNvbW1hbmQub3B0aW9ucywgY29tbWFuZC5hcmd1bWVudHMsIGNvbW1hbmQuYXJnU3RyYXRlZ3kpO1xuICBhd2FpdCBjb21tYW5kLmluaXRpYWxpemUob3B0aW9ucyk7XG4gIG9wdGlvbnMgPSBwYXJzZU9wdGlvbnMoYXJncywgY29tbWFuZC5vcHRpb25zLCBjb21tYW5kLmFyZ3VtZW50cywgY29tbWFuZC5hcmdTdHJhdGVneSk7XG4gIGlmIChjb21tYW5kTmFtZSA9PT0gJ2hlbHAnKSB7XG4gICAgb3B0aW9ucy5jb21tYW5kTWFwID0gY29tbWFuZE1hcDtcbiAgfVxuXG4gIGlmIChvcHRpb25zLmhlbHApIHtcbiAgICBjb21tYW5kLnByaW50SGVscChvcHRpb25zKTtcblxuICAgIHJldHVybjtcbiAgfSBlbHNlIHtcbiAgICBpZiAoQ21kLnNjb3BlICE9PSB1bmRlZmluZWQgJiYgQ21kLnNjb3BlICE9PSBDb21tYW5kU2NvcGUuZXZlcnl3aGVyZSkge1xuICAgICAgaWYgKENtZC5zY29wZSAhPT0gZXhlY3V0aW9uU2NvcGUpIHtcbiAgICAgICAgbGV0IGVycm9yTWVzc2FnZTtcbiAgICAgICAgaWYgKENtZC5zY29wZSA9PT0gQ29tbWFuZFNjb3BlLmluUHJvamVjdCkge1xuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGBUaGlzIGNvbW1hbmQgY2FuIG9ubHkgYmUgcnVuIGluc2lkZSBvZiBhIENMSSBwcm9qZWN0LmA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gYFRoaXMgY29tbWFuZCBjYW4gbm90IGJlIHJ1biBpbnNpZGUgb2YgYSBDTEkgcHJvamVjdC5gO1xuICAgICAgICB9XG4gICAgICAgIGxvZ2dlci5mYXRhbChlcnJvck1lc3NhZ2UpO1xuXG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfVxuXG4gICAgICBpZiAoQ21kLnNjb3BlID09PSBDb21tYW5kU2NvcGUuaW5Qcm9qZWN0KSB7XG4gICAgICAgIGlmICghY29udGV4dC5wcm9qZWN0LmNvbmZpZ0ZpbGUpIHtcbiAgICAgICAgICBsb2dnZXIuZmF0YWwoJ0ludmFsaWQgcHJvamVjdDogbWlzc2luZyB3b3Jrc3BhY2UgZmlsZS4nKTtcblxuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKFsnLmFuZ3VsYXItY2xpLmpzb24nLCAnYW5ndWxhci1jbGkuanNvbiddLmluY2x1ZGVzKGNvbnRleHQucHJvamVjdC5jb25maWdGaWxlKSkge1xuICAgICAgICAgIC8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gICAgICAgICAgLy8gSWYgY2hhbmdpbmcgdGhpcyBtZXNzYWdlLCBwbGVhc2UgdXBkYXRlIHRoZSBzYW1lIG1lc3NhZ2UgaW5cbiAgICAgICAgICAvLyBgcGFja2FnZXMvQGFuZ3VsYXIvY2xpL2Jpbi9uZy11cGRhdGUtbWVzc2FnZS5qc2BcbiAgICAgICAgICBjb25zdCBtZXNzYWdlID0gdGFncy5zdHJpcEluZGVudGBcbiAgICAgICAgICAgIFRoZSBBbmd1bGFyIENMSSBjb25maWd1cmF0aW9uIGZvcm1hdCBoYXMgYmVlbiBjaGFuZ2VkLCBhbmQgeW91ciBleGlzdGluZyBjb25maWd1cmF0aW9uXG4gICAgICAgICAgICBjYW4gYmUgdXBkYXRlZCBhdXRvbWF0aWNhbGx5IGJ5IHJ1bm5pbmcgdGhlIGZvbGxvd2luZyBjb21tYW5kOlxuXG4gICAgICAgICAgICAgIG5nIHVwZGF0ZSBAYW5ndWxhci9jbGlcbiAgICAgICAgICBgO1xuXG4gICAgICAgICAgbG9nZ2VyLndhcm4obWVzc2FnZSk7XG5cbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGRlbGV0ZSBvcHRpb25zLmg7XG4gICAgZGVsZXRlIG9wdGlvbnMuaGVscDtcblxuICAgIGNvbnN0IGlzVmFsaWQgPSBhd2FpdCBjb21tYW5kLnZhbGlkYXRlKG9wdGlvbnMpO1xuICAgIGlmICghaXNWYWxpZCkge1xuICAgICAgbG9nZ2VyLmZhdGFsKGBWYWxpZGF0aW9uIGVycm9yLiBJbnZhbGlkIGNvbW1hbmRgKTtcblxuICAgICAgcmV0dXJuIDE7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbW1hbmQucnVuKG9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwYXJzZU9wdGlvbnM8VCA9IGFueT4oXG4gIGFyZ3M6IHN0cmluZ1tdLFxuICBjbWRPcHRzOiBPcHRpb25bXSxcbiAgY29tbWFuZEFyZ3VtZW50czogc3RyaW5nW10sXG4gIGFyZ1N0cmF0ZWd5OiBBcmd1bWVudFN0cmF0ZWd5LFxuKTogVCB7XG4gIGNvbnN0IHBhcnNlciA9IHlhcmdzUGFyc2VyO1xuXG4gIGNvbnN0IGFsaWFzZXMgPSBjbWRPcHRzLmNvbmNhdCgpXG4gICAgLmZpbHRlcihvID0+IG8uYWxpYXNlcyAmJiBvLmFsaWFzZXMubGVuZ3RoID4gMClcbiAgICAucmVkdWNlKChhbGlhc2VzOiBhbnksIG9wdDogT3B0aW9uKSA9PiB7XG4gICAgICBhbGlhc2VzW29wdC5uYW1lXSA9IChvcHQuYWxpYXNlcyB8fCBbXSlcbiAgICAgICAgLmZpbHRlcihhID0+IGEubGVuZ3RoID09PSAxKTtcblxuICAgICAgcmV0dXJuIGFsaWFzZXM7XG4gICAgfSwge30pO1xuXG4gIGNvbnN0IGJvb2xlYW5zID0gY21kT3B0c1xuICAgIC5maWx0ZXIobyA9PiBvLnR5cGUgJiYgby50eXBlID09PSBCb29sZWFuKVxuICAgIC5tYXAobyA9PiBvLm5hbWUpO1xuXG4gIGNvbnN0IGRlZmF1bHRzID0gY21kT3B0c1xuICAgIC5maWx0ZXIobyA9PiBvLmRlZmF1bHQgIT09IHVuZGVmaW5lZCB8fCBib29sZWFucy5pbmRleE9mKG8ubmFtZSkgIT09IC0xKVxuICAgIC5yZWR1Y2UoKGRlZmF1bHRzOiBhbnksIG9wdDogT3B0aW9uKSA9PiB7XG4gICAgICBkZWZhdWx0c1tvcHQubmFtZV0gPSBvcHQuZGVmYXVsdDtcblxuICAgICAgcmV0dXJuIGRlZmF1bHRzO1xuICAgIH0sIHt9KTtcblxuICBjb25zdCBzdHJpbmdzID0gY21kT3B0c1xuICAgIC5maWx0ZXIobyA9PiBvLnR5cGUgPT09IFN0cmluZylcbiAgICAubWFwKG8gPT4gby5uYW1lKTtcblxuICBjb25zdCBudW1iZXJzID0gY21kT3B0c1xuICAgIC5maWx0ZXIobyA9PiBvLnR5cGUgPT09IE51bWJlcilcbiAgICAubWFwKG8gPT4gby5uYW1lKTtcblxuXG4gIGFsaWFzZXMuaGVscCA9IFsnaCddO1xuICBib29sZWFucy5wdXNoKCdoZWxwJyk7XG5cbiAgY29uc3QgeWFyZ3NPcHRpb25zID0ge1xuICAgIGFsaWFzOiBhbGlhc2VzLFxuICAgIGJvb2xlYW46IGJvb2xlYW5zLFxuICAgIGRlZmF1bHQ6IGRlZmF1bHRzLFxuICAgIHN0cmluZzogc3RyaW5ncyxcbiAgICBudW1iZXI6IG51bWJlcnMsXG4gIH07XG5cbiAgY29uc3QgcGFyc2VkT3B0aW9ucyA9IHBhcnNlcihhcmdzLCB5YXJnc09wdGlvbnMpO1xuXG4gIC8vIFJlbW92ZSBhbGlhc2VzLlxuICBjbWRPcHRzXG4gICAgLmZpbHRlcihvID0+IG8uYWxpYXNlcyAmJiBvLmFsaWFzZXMubGVuZ3RoID4gMClcbiAgICAubWFwKG8gPT4gby5hbGlhc2VzKVxuICAgIC5yZWR1Y2UoKGFsbEFsaWFzZXM6IGFueSwgYWxpYXNlczogc3RyaW5nW10pID0+IHtcbiAgICAgIHJldHVybiBhbGxBbGlhc2VzLmNvbmNhdChbLi4uYWxpYXNlc10pO1xuICAgIH0sIFtdKVxuICAgIC5mb3JFYWNoKChhbGlhczogc3RyaW5nKSA9PiB7XG4gICAgICBkZWxldGUgcGFyc2VkT3B0aW9uc1thbGlhc107XG4gICAgfSk7XG5cbiAgLy8gUmVtb3ZlIHVuZGVmaW5lZCBib29sZWFuc1xuICBib29sZWFuc1xuICAgIC5maWx0ZXIoYiA9PiBwYXJzZWRPcHRpb25zW2JdID09PSB1bmRlZmluZWQpXG4gICAgLm1hcChiID0+IGNvcmVTdHJpbmdzLmNhbWVsaXplKGIpKVxuICAgIC5mb3JFYWNoKGIgPT4gZGVsZXRlIHBhcnNlZE9wdGlvbnNbYl0pO1xuXG4gIC8vIHJlbW92ZSBvcHRpb25zIHdpdGggZGFzaGVzLlxuICBPYmplY3Qua2V5cyhwYXJzZWRPcHRpb25zKVxuICAgIC5maWx0ZXIoa2V5ID0+IGtleS5pbmRleE9mKCctJykgIT09IC0xKVxuICAgIC5mb3JFYWNoKGtleSA9PiBkZWxldGUgcGFyc2VkT3B0aW9uc1trZXldKTtcblxuICAvLyByZW1vdmUgdGhlIGNvbW1hbmQgbmFtZVxuICBwYXJzZWRPcHRpb25zLl8gPSBwYXJzZWRPcHRpb25zLl8uc2xpY2UoMSk7XG5cbiAgc3dpdGNoIChhcmdTdHJhdGVneSkge1xuICAgIGNhc2UgQXJndW1lbnRTdHJhdGVneS5NYXBUb09wdGlvbnM6XG4gICAgICBwYXJzZWRPcHRpb25zLl8uZm9yRWFjaCgodmFsdWU6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgICBjb25zdCBhcmcgPSBjb21tYW5kQXJndW1lbnRzW2luZGV4XTtcbiAgICAgICAgaWYgKGFyZykge1xuICAgICAgICAgIHBhcnNlZE9wdGlvbnNbYXJnXSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgZGVsZXRlIHBhcnNlZE9wdGlvbnMuXztcbiAgICAgIGJyZWFrO1xuICB9XG5cbiAgcmV0dXJuIHBhcnNlZE9wdGlvbnM7XG59XG5cbi8vIEZpbmQgYSBjb21tYW5kLlxuZnVuY3Rpb24gZmluZENvbW1hbmQobWFwOiBDb21tYW5kTWFwLCBuYW1lOiBzdHJpbmcpOiBDb21tYW5kQ29uc3RydWN0b3IgfCBudWxsIHtcbiAgbGV0IENtZDogQ29tbWFuZENvbnN0cnVjdG9yID0gbWFwW25hbWVdO1xuXG4gIGlmICghQ21kKSB7XG4gICAgLy8gZmluZCBjb21tYW5kIHZpYSBhbGlhc2VzXG4gICAgQ21kID0gT2JqZWN0LmtleXMobWFwKVxuICAgICAgLmZpbHRlcihrZXkgPT4ge1xuICAgICAgICBpZiAoIW1hcFtrZXldLmFsaWFzZXMpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZm91bmRBbGlhcyA9IG1hcFtrZXldLmFsaWFzZXNcbiAgICAgICAgICAuZmlsdGVyKChhbGlhczogc3RyaW5nKSA9PiBhbGlhcyA9PT0gbmFtZSk7XG5cbiAgICAgICAgcmV0dXJuIGZvdW5kQWxpYXMubGVuZ3RoID4gMDtcbiAgICAgIH0pXG4gICAgICAubWFwKChrZXkpID0+IHtcbiAgICAgICAgcmV0dXJuIG1hcFtrZXldO1xuICAgICAgfSlbMF07XG4gIH1cblxuICBpZiAoIUNtZCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuIENtZDtcbn1cblxuZnVuY3Rpb24gbGlzdEFsbENvbW1hbmROYW1lcyhtYXA6IENvbW1hbmRNYXApOiBzdHJpbmdbXSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhtYXApLmNvbmNhdChcbiAgICBPYmplY3Qua2V5cyhtYXApXG4gICAgICAucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgICAgICBpZiAoIW1hcFtrZXldLmFsaWFzZXMpIHtcbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGFjYy5jb25jYXQobWFwW2tleV0uYWxpYXNlcyk7XG4gICAgICB9LCBbXSBhcyBzdHJpbmdbXSksXG4gICk7XG59XG4iXX0=
|
package/models/command.d.ts
CHANGED
|
@@ -15,11 +15,11 @@ export interface CommandConstructor {
|
|
|
15
15
|
export declare enum CommandScope {
|
|
16
16
|
everywhere = 0,
|
|
17
17
|
inProject = 1,
|
|
18
|
-
outsideProject = 2
|
|
18
|
+
outsideProject = 2
|
|
19
19
|
}
|
|
20
20
|
export declare enum ArgumentStrategy {
|
|
21
21
|
MapToOptions = 0,
|
|
22
|
-
Nothing = 1
|
|
22
|
+
Nothing = 1
|
|
23
23
|
}
|
|
24
24
|
export declare abstract class Command<T = any> {
|
|
25
25
|
protected _rawArgs: string[];
|
|
@@ -32,10 +32,10 @@ export declare abstract class Command<T = any> {
|
|
|
32
32
|
protected printHelpUsage(name: string, args: string[], options: Option[]): void;
|
|
33
33
|
protected printHelpOptions(options: Option[]): void;
|
|
34
34
|
abstract run(options: T): number | void | Promise<number | void>;
|
|
35
|
-
readonly
|
|
36
|
-
readonly
|
|
37
|
-
readonly
|
|
38
|
-
readonly
|
|
35
|
+
abstract readonly name: string;
|
|
36
|
+
abstract readonly description: string;
|
|
37
|
+
abstract readonly arguments: string[];
|
|
38
|
+
abstract readonly options: Option[];
|
|
39
39
|
argStrategy: ArgumentStrategy;
|
|
40
40
|
hidden: boolean;
|
|
41
41
|
unknown: boolean;
|
|
@@ -48,12 +48,12 @@ export interface CommandContext {
|
|
|
48
48
|
project: any;
|
|
49
49
|
}
|
|
50
50
|
export declare abstract class Option {
|
|
51
|
-
readonly
|
|
52
|
-
readonly
|
|
51
|
+
abstract readonly name: string;
|
|
52
|
+
abstract readonly description: string;
|
|
53
53
|
readonly default?: string | number | boolean;
|
|
54
54
|
readonly required?: boolean;
|
|
55
|
-
readonly
|
|
56
|
-
readonly
|
|
55
|
+
abstract readonly aliases?: string[];
|
|
56
|
+
abstract readonly type: any;
|
|
57
57
|
readonly format?: string;
|
|
58
58
|
readonly values?: any[];
|
|
59
59
|
readonly hidden?: boolean;
|
package/models/command.js
CHANGED
|
@@ -91,4 +91,4 @@ class Option {
|
|
|
91
91
|
}
|
|
92
92
|
}
|
|
93
93
|
exports.Option = Option;
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWFuZC5qcyIsInNvdXJjZVJvb3QiOiIuLyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhci9jbGkvbW9kZWxzL2NvbW1hbmQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7Ozs7Ozs7OztBQUVILGlEQUFpRDtBQUNqRCwrQ0FBeUQ7QUFTekQsSUFBWSxZQUlYO0FBSkQsV0FBWSxZQUFZO0lBQ3RCLDJEQUFVLENBQUE7SUFDVix5REFBUyxDQUFBO0lBQ1QsbUVBQWMsQ0FBQTtBQUNoQixDQUFDLEVBSlcsWUFBWSxHQUFaLG9CQUFZLEtBQVosb0JBQVksUUFJdkI7QUFFRCxJQUFZLGdCQUdYO0FBSEQsV0FBWSxnQkFBZ0I7SUFDMUIsdUVBQVksQ0FBQTtJQUNaLDZEQUFPLENBQUE7QUFDVCxDQUFDLEVBSFcsZ0JBQWdCLEdBQWhCLHdCQUFnQixLQUFoQix3QkFBZ0IsUUFHM0I7QUFFRDtJQUlFLFlBQVksT0FBdUIsRUFBRSxNQUFzQjtRQUZwRCwwQkFBcUIsR0FBRyxLQUFLLENBQUM7UUEwRDlCLGdCQUFXLEdBQUcsZ0JBQWdCLENBQUMsWUFBWSxDQUFDO1FBQzVDLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBekRyQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQztTQUNoQztJQUNILENBQUM7SUFFSyxhQUFhLENBQUMsSUFBYzs7WUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFFckIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO0tBQUE7SUFDSyxVQUFVLENBQUMsUUFBYTs7WUFDNUIsT0FBTztRQUNULENBQUM7S0FBQTtJQUVELFFBQVEsQ0FBQyxRQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVELFNBQVMsQ0FBQyxRQUFXO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM3RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFUyxjQUFjLENBQUMsSUFBWSxFQUFFLElBQWMsRUFBRSxPQUFpQjtRQUN0RSxNQUFNLFVBQVUsR0FBRyxJQUFJLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQ3hDLENBQUMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDO1lBQ3pDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDUCxNQUFNLGNBQWMsR0FBRyxPQUFPLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDO1lBQ2xELENBQUMsQ0FBQyxZQUFZO1lBQ2QsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNQLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxHQUFHLFVBQVUsR0FBRyxjQUFjLEVBQUUsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFUyxnQkFBZ0IsQ0FBQyxPQUFpQjtRQUMxQyxJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDN0IsSUFBSSxDQUFDLE9BQU87aUJBQ1QsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO2lCQUN0QixJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3pDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDYixNQUFNLE9BQU8sR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUM7b0JBQy9DLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEdBQUc7b0JBQ25ELENBQUMsQ0FBQyxFQUFFLENBQUM7Z0JBQ1AsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxlQUFRLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQztnQkFDakUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztZQUMzQyxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQzs7QUFVYSxhQUFLLEdBQWlCLFlBQVksQ0FBQyxVQUFVLENBQUM7QUFDOUMsZUFBTyxHQUFhLEVBQUUsQ0FBQztBQWhFdkMsMEJBbUVDO0FBTUQ7SUFBQTtRQVNXLFdBQU0sR0FBYSxLQUFLLENBQUM7SUFDcEMsQ0FBQztDQUFBO0FBVkQsd0JBVUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8vIHRzbGludDpkaXNhYmxlOm5vLWdsb2JhbC10c2xpbnQtZGlzYWJsZSBuby1hbnlcbmltcG9ydCB7IGxvZ2dpbmcsIHRlcm1pbmFsIH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1hbmRDb25zdHJ1Y3RvciB7XG4gIG5ldyhjb250ZXh0OiBDb21tYW5kQ29udGV4dCwgbG9nZ2VyOiBsb2dnaW5nLkxvZ2dlcik6IENvbW1hbmQ7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgYWxpYXNlczogc3RyaW5nW107XG4gIHNjb3BlOiBDb21tYW5kU2NvcGU7XG59XG5cbmV4cG9ydCBlbnVtIENvbW1hbmRTY29wZSB7XG4gIGV2ZXJ5d2hlcmUsXG4gIGluUHJvamVjdCxcbiAgb3V0c2lkZVByb2plY3QsXG59XG5cbmV4cG9ydCBlbnVtIEFyZ3VtZW50U3RyYXRlZ3kge1xuICBNYXBUb09wdGlvbnMsXG4gIE5vdGhpbmcsXG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDb21tYW5kPFQgPSBhbnk+IHtcbiAgcHJvdGVjdGVkIF9yYXdBcmdzOiBzdHJpbmdbXTtcbiAgcHVibGljIGFsbG93TWlzc2luZ1dvcmtzcGFjZSA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKGNvbnRleHQ6IENvbW1hbmRDb250ZXh0LCBsb2dnZXI6IGxvZ2dpbmcuTG9nZ2VyKSB7XG4gICAgdGhpcy5sb2dnZXIgPSBsb2dnZXI7XG4gICAgaWYgKGNvbnRleHQpIHtcbiAgICAgIHRoaXMucHJvamVjdCA9IGNvbnRleHQucHJvamVjdDtcbiAgICB9XG4gIH1cblxuICBhc3luYyBpbml0aWFsaXplUmF3KGFyZ3M6IHN0cmluZ1tdKTogUHJvbWlzZTxhbnk+IHtcbiAgICB0aGlzLl9yYXdBcmdzID0gYXJncztcblxuICAgIHJldHVybiBhcmdzO1xuICB9XG4gIGFzeW5jIGluaXRpYWxpemUoX29wdGlvbnM6IGFueSk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIHZhbGlkYXRlKF9vcHRpb25zOiBUKTogYm9vbGVhbiB8IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpbnRIZWxwKF9vcHRpb25zOiBUKTogdm9pZCB7XG4gICAgdGhpcy5wcmludEhlbHBVc2FnZSh0aGlzLm5hbWUsIHRoaXMuYXJndW1lbnRzLCB0aGlzLm9wdGlvbnMpO1xuICAgIHRoaXMucHJpbnRIZWxwT3B0aW9ucyh0aGlzLm9wdGlvbnMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHByaW50SGVscFVzYWdlKG5hbWU6IHN0cmluZywgYXJnczogc3RyaW5nW10sIG9wdGlvbnM6IE9wdGlvbltdKSB7XG4gICAgY29uc3QgYXJnRGlzcGxheSA9IGFyZ3MgJiYgYXJncy5sZW5ndGggPiAwXG4gICAgICA/ICcgJyArIGFyZ3MubWFwKGEgPT4gYDwke2F9PmApLmpvaW4oJyAnKVxuICAgICAgOiAnJztcbiAgICBjb25zdCBvcHRpb25zRGlzcGxheSA9IG9wdGlvbnMgJiYgb3B0aW9ucy5sZW5ndGggPiAwXG4gICAgICA/IGAgW29wdGlvbnNdYFxuICAgICAgOiBgYDtcbiAgICB0aGlzLmxvZ2dlci5pbmZvKGB1c2FnZTogbmcgJHtuYW1lfSR7YXJnRGlzcGxheX0ke29wdGlvbnNEaXNwbGF5fWApO1xuICB9XG5cbiAgcHJvdGVjdGVkIHByaW50SGVscE9wdGlvbnMob3B0aW9uczogT3B0aW9uW10pIHtcbiAgICBpZiAob3B0aW9ucyAmJiB0aGlzLm9wdGlvbnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhgb3B0aW9uczpgKTtcbiAgICAgIHRoaXMub3B0aW9uc1xuICAgICAgICAuZmlsdGVyKG8gPT4gIW8uaGlkZGVuKVxuICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5uYW1lID49IGIubmFtZSA/IDEgOiAtMSlcbiAgICAgICAgLmZvckVhY2gobyA9PiB7XG4gICAgICAgIGNvbnN0IGFsaWFzZXMgPSBvLmFsaWFzZXMgJiYgby5hbGlhc2VzLmxlbmd0aCA+IDBcbiAgICAgICAgICA/ICcoJyArIG8uYWxpYXNlcy5tYXAoYSA9PiBgLSR7YX1gKS5qb2luKCcgJykgKyAnKSdcbiAgICAgICAgICA6ICcnO1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKGAgICR7dGVybWluYWwuY3lhbignLS0nICsgby5uYW1lKX0gJHthbGlhc2VzfWApO1xuICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKGAgICAgJHtvLmRlc2NyaXB0aW9ufWApO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgYWJzdHJhY3QgcnVuKG9wdGlvbnM6IFQpOiBudW1iZXIgfCB2b2lkIHwgUHJvbWlzZTxudW1iZXIgfCB2b2lkPjtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICBhYnN0cmFjdCByZWFkb25seSBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBhYnN0cmFjdCByZWFkb25seSBhcmd1bWVudHM6IHN0cmluZ1tdO1xuICBhYnN0cmFjdCByZWFkb25seSBvcHRpb25zOiBPcHRpb25bXTtcbiAgcHVibGljIGFyZ1N0cmF0ZWd5ID0gQXJndW1lbnRTdHJhdGVneS5NYXBUb09wdGlvbnM7XG4gIHB1YmxpYyBoaWRkZW4gPSBmYWxzZTtcbiAgcHVibGljIHVua25vd24gPSBmYWxzZTtcbiAgcHVibGljIHN0YXRpYyBzY29wZTogQ29tbWFuZFNjb3BlID0gQ29tbWFuZFNjb3BlLmV2ZXJ5d2hlcmU7XG4gIHB1YmxpYyBzdGF0aWMgYWxpYXNlczogc3RyaW5nW10gPSBbXTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGxvZ2dlcjogbG9nZ2luZy5Mb2dnZXI7XG4gIHByb3RlY3RlZCByZWFkb25seSBwcm9qZWN0OiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ29tbWFuZENvbnRleHQge1xuICBwcm9qZWN0OiBhbnk7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBPcHRpb24ge1xuICBhYnN0cmFjdCByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIGFic3RyYWN0IHJlYWRvbmx5IGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGRlZmF1bHQ/OiBzdHJpbmcgfCBudW1iZXIgfCBib29sZWFuO1xuICByZWFkb25seSByZXF1aXJlZD86IGJvb2xlYW47XG4gIGFic3RyYWN0IHJlYWRvbmx5IGFsaWFzZXM/OiBzdHJpbmdbXTtcbiAgYWJzdHJhY3QgcmVhZG9ubHkgdHlwZTogYW55O1xuICByZWFkb25seSBmb3JtYXQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZhbHVlcz86IGFueVtdO1xuICByZWFkb25seSBoaWRkZW4/OiBib29sZWFuID0gZmFsc2U7XG59XG4iXX0=
|
package/models/error.js
CHANGED
|
@@ -19,4 +19,4 @@ class NgToolkitError extends Error {
|
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
exports.NgToolkitError = NgToolkitError;
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3IuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXIvY2xpL21vZGVscy9lcnJvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOztBQUVILG9CQUE0QixTQUFRLEtBQUs7SUFDdkMsWUFBWSxPQUFnQjtRQUMxQixLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksT0FBTyxFQUFFO1lBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7U0FDeEI7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7U0FDdEM7SUFDSCxDQUFDO0NBQ0Y7QUFWRCx3Q0FVQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuZXhwb3J0IGNsYXNzIE5nVG9vbGtpdEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICBjb25zdHJ1Y3RvcihtZXNzYWdlPzogc3RyaW5nKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIGlmIChtZXNzYWdlKSB7XG4gICAgICB0aGlzLm1lc3NhZ2UgPSBtZXNzYWdlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1lc3NhZ2UgPSB0aGlzLmNvbnN0cnVjdG9yLm5hbWU7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
1
8
|
import { ArgumentStrategy, Command, Option } from './command';
|
|
2
9
|
export interface CoreSchematicOptions {
|
|
3
10
|
dryRun: boolean;
|
|
@@ -35,7 +42,7 @@ export declare abstract class SchematicCommand extends Command {
|
|
|
35
42
|
protected runSchematic(options: RunSchematicOptions): Promise<number | void>;
|
|
36
43
|
protected removeCoreOptions(options: any): any;
|
|
37
44
|
protected getOptions(options: GetOptionsOptions): Promise<GetOptionsResult>;
|
|
38
|
-
private _loadWorkspace
|
|
39
|
-
private _cleanDefaults
|
|
40
|
-
private readDefaults
|
|
45
|
+
private _loadWorkspace;
|
|
46
|
+
private _cleanDefaults;
|
|
47
|
+
private readDefaults;
|
|
41
48
|
}
|
|
@@ -328,4 +328,4 @@ class SchematicCommand extends command_1.Command {
|
|
|
328
328
|
}
|
|
329
329
|
}
|
|
330
330
|
exports.SchematicCommand = SchematicCommand;
|
|
331
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hdGljLWNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXIvY2xpL21vZGVscy9zY2hlbWF0aWMtY29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7O0FBRUgsaURBQWlEO0FBQ2pELCtDQUFnRTtBQUNoRSwrQ0FBcUY7QUFDckYsb0RBQTJEO0FBQzNELDJEQUF3RjtBQUN4Riw0REFBZ0U7QUFDaEUsOENBQXNDO0FBQ3RDLGlFQUE2RDtBQUM3RCxnREFBdUY7QUFDdkYsZ0RBQTJEO0FBQzNELHdEQUFzRTtBQUN0RSx1Q0FBOEQ7QUEyQjlELHNCQUF1QyxTQUFRLGlCQUFPO0lBQXREOztRQUNXLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDdkIsMkJBQXNCLEdBQVksS0FBSyxDQUFDO1FBQ3pDLFVBQUssR0FBRyxJQUFJLHFCQUFjLEVBQUUsQ0FBQztRQUlyQyxnQkFBVyxHQUFHLDBCQUFnQixDQUFDLE9BQU8sQ0FBQztRQUVwQixnQkFBVyxHQUFhO1lBQ3pDO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxPQUFPO2dCQUNiLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQztnQkFDZCxXQUFXLEVBQUUseUNBQXlDO2FBQ3ZEO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDO2dCQUNkLFdBQVcsRUFBRSw4QkFBOEI7YUFDNUM7U0FBQyxDQUFDO1FBRUksY0FBUyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUE0VG5DLENBQUM7SUExVGMsVUFBVSxDQUFDLFFBQWE7O1lBQ25DLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixDQUFDO0tBQUE7SUFFUyxjQUFjLENB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QXFWQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuLy8gdHNsaW50OmRpc2FibGU6bm8tZ2xvYmFsLXRzbGludC1kaXNhYmxlIG5vLWFueVxuaW1wb3J0IHsgSnNvbk9iamVjdCwgZXhwZXJpbWVudGFsIH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0IHsgbm9ybWFsaXplLCBzdHJpbmdzLCB0YWdzLCB0ZXJtaW5hbCwgdmlydHVhbEZzIH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0IHsgTm9kZUpzU3luY0hvc3QgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvY29yZS9ub2RlJztcbmltcG9ydCB7IERyeVJ1bkV2ZW50LCBVbnN1Y2Nlc3NmdWxXb3JrZmxvd0V4ZWN1dGlvbiB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzJztcbmltcG9ydCB7IE5vZGVXb3JrZmxvdyB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9zY2hlbWF0aWNzL3Rvb2xzJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBXb3Jrc3BhY2VMb2FkZXIgfSBmcm9tICcuLi9tb2RlbHMvd29ya3NwYWNlLWxvYWRlcic7XG5pbXBvcnQgeyBnZXREZWZhdWx0U2NoZW1hdGljQ29sbGVjdGlvbiwgZ2V0UGFja2FnZU1hbmFnZXIgfSBmcm9tICcuLi91dGlsaXRpZXMvY29uZmlnJztcbmltcG9ydCB7IGdldFNjaGVtYXRpY0RlZmF1bHRzIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2NvbmZpZyc7XG5pbXBvcnQgeyBnZXRDb2xsZWN0aW9uLCBnZXRTY2hlbWF0aWMgfSBmcm9tICcuLi91dGlsaXRpZXMvc2NoZW1hdGljcyc7XG5pbXBvcnQgeyBBcmd1bWVudFN0cmF0ZWd5LCBDb21tYW5kLCBPcHRpb24gfSBmcm9tICcuL2NvbW1hbmQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvcmVTY2hlbWF0aWNPcHRpb25zIHtcbiAgZHJ5UnVuOiBib29sZWFuO1xuICBmb3JjZTogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSdW5TY2hlbWF0aWNPcHRpb25zIHtcbiAgY29sbGVjdGlvbk5hbWU6IHN0cmluZztcbiAgc2NoZW1hdGljTmFtZTogc3RyaW5nO1xuICBzY2hlbWF0aWNPcHRpb25zOiBhbnk7XG4gIGRlYnVnPzogYm9vbGVhbjtcbiAgZHJ5UnVuOiBib29sZWFuO1xuICBmb3JjZTogYm9vbGVhbjtcbiAgc2hvd05vdGhpbmdEb25lPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRPcHRpb25zT3B0aW9ucyB7XG4gIGNvbGxlY3Rpb25OYW1lOiBzdHJpbmc7XG4gIHNjaGVtYXRpY05hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBHZXRPcHRpb25zUmVzdWx0IHtcbiAgb3B0aW9uczogT3B0aW9uW107XG4gIGFyZ3VtZW50czogT3B0aW9uW107XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTY2hlbWF0aWNDb21tYW5kIGV4dGVuZHMgQ29tbWFuZCB7XG4gIHJlYWRvbmx5IG9wdGlvbnM6IE9wdGlvbltdID0gW107XG4gIHJlYWRvbmx5IGFsbG93UHJpdmF0ZVNjaGVtYXRpY3M6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaG9zdCA9IG5ldyBOb2RlSnNTeW5jSG9zdCgpO1xuICBwcml2YXRlIF93b3Jrc3BhY2U6IGV4cGVyaW1lbnRhbC53b3Jrc3BhY2UuV29ya3NwYWNlO1xuICBwcml2YXRlIF9kZUFsaWFzZWROYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgX29yaWdpbmFsT3B0aW9uczogT3B0aW9uW107XG4gIGFyZ1N0cmF0ZWd5ID0gQXJndW1lbnRTdHJhdGVneS5Ob3RoaW5nO1xuXG4gIHByb3RlY3RlZCByZWFkb25seSBjb3JlT3B0aW9uczogT3B0aW9uW10gPSBbXG4gICAge1xuICAgICAgbmFtZTogJ2RyeVJ1bicsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICBhbGlhc2VzOiBbJ2QnXSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnUnVuIHRocm91Z2ggd2l0aG91dCBtYWtpbmcgYW55IGNoYW5nZXMuJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIG5hbWU6ICdmb3JjZScsXG4gICAgICB0eXBlOiBCb29sZWFuLFxuICAgICAgZGVmYXVsdDogZmFsc2UsXG4gICAgICBhbGlhc2VzOiBbJ2YnXSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnRm9yY2VzIG92ZXJ3cml0aW5nIG9mIGZpbGVzLicsXG4gICAgfV07XG5cbiAgcmVhZG9ubHkgYXJndW1lbnRzID0gWydwcm9qZWN0J107XG5cbiAgcHVibGljIGFzeW5jIGluaXRpYWxpemUoX29wdGlvbnM6IGFueSkge1xuICAgIHRoaXMuX2xvYWRXb3Jrc3BhY2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBzZXRQYXRoT3B0aW9ucyhvcHRpb25zOiBhbnksIHdvcmtpbmdEaXI6IHN0cmluZyk6IGFueSB7XG4gICAgaWYgKHdvcmtpbmdEaXIgPT09ICcnKSB7XG4gICAgICByZXR1cm4ge307XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMub3B0aW9uc1xuICAgICAgLmZpbHRlcihvID0+IG8uZm9ybWF0ID09PSAncGF0aCcpXG4gICAgICAubWFwKG8gPT4gby5uYW1lKVxuICAgICAgLmZpbHRlcihuYW1lID0+IG9wdGlvbnNbbmFtZV0gPT09IHVuZGVmaW5lZClcbiAgICAgIC5yZWR1Y2UoKGFjYzogYW55LCBjdXJyKSA9PiB7XG4gICAgICAgIGFjY1tjdXJyXSA9IHdvcmtpbmdEaXI7XG5cbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBydW5TY2hlbWF0aWMob3B0aW9uczogUnVuU2NoZW1hdGljT3B0aW9ucykge1xuICAgIGNvbnN0IHsgY29sbGVjdGlvbk5hbWUsIHNjaGVtYXRpY05hbWUsIGRlYnVnLCBmb3JjZSwgZHJ5UnVuIH0gPSBvcHRpb25zO1xuICAgIGxldCBzY2hlbWF0aWNPcHRpb25zID0gdGhpcy5yZW1vdmVDb3JlT3B0aW9ucyhvcHRpb25zLnNjaGVtYXRpY09wdGlvbnMpO1xuICAgIGxldCBub3RoaW5nRG9uZSA9IHRydWU7XG4gICAgbGV0IGxvZ2dpbmdRdWV1ZTogc3RyaW5nW10gPSBbXTtcbiAgICBsZXQgZXJyb3IgPSBmYWxzZTtcbiAgICBjb25zdCBmc0hvc3QgPSBuZXcgdmlydHVhbEZzLlNjb3BlZEhvc3QobmV3IE5vZGVKc1N5bmNIb3N0KCksIG5vcm1hbGl6ZSh0aGlzLnByb2plY3Qucm9vdCkpO1xuICAgIGNvbnN0IHdvcmtmbG93ID0gbmV3IE5vZGVXb3JrZmxvdyhcbiAgICAgIGZzSG9zdCBhcyBhbnksXG4gICAgICB7XG4gICAgICAgIGZvcmNlLFxuICAgICAgICBkcnlSdW4sXG4gICAgICAgIHBhY2thZ2VNYW5hZ2VyOiBnZXRQYWNrYWdlTWFuYWdlcigpLFxuICAgICAgICByb290OiB0aGlzLnByb2plY3Qucm9vdCxcbiAgICAgICB9LFxuICAgICk7XG5cbiAgICBjb25zdCB3b3JraW5nRGlyID0gcHJvY2Vzcy5jd2QoKS5yZXBsYWNlKHRoaXMucHJvamVjdC5yb290LCAnJykucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuICAgIGNvbnN0IHBhdGhPcHRpb25zID0gdGhpcy5zZXRQYXRoT3B0aW9ucyhzY2hlbWF0aWNPcHRpb25zLCB3b3JraW5nRGlyKTtcbiAgICBzY2hlbWF0aWNPcHRpb25zID0geyAuLi5zY2hlbWF0aWNPcHRpb25zLCAuLi5wYXRoT3B0aW9ucyB9O1xuICAgIGNvbnN0IGRlZmF1bHRPcHRpb25zID0gdGhpcy5yZWFkRGVmYXVsdHMoY29sbGVjdGlvbk5hbWUsIHNjaGVtYXRpY05hbWUsIHNjaGVtYXRpY09wdGlvbnMpO1xuICAgIHNjaGVtYXRpY09wdGlvbnMgPSB7IC4uLnNjaGVtYXRpY09wdGlvbnMsIC4uLmRlZmF1bHRPcHRpb25zIH07XG5cbiAgICAvLyBQYXNzIHRoZSByZXN0IG9mIHRoZSBhcmd1bWVudHMgYXMgdGhlIHNtYXJ0IGRlZmF1bHQgXCJhcmd2XCIuIFRoZW4gZGVsZXRlIGl0LlxuICAgIC8vIFJlbW92aW5nIHRoZSBmaXJzdCBpdGVtIHdoaWNoIGlzIHRoZSBzY2hlbWF0aWMgbmFtZS5cbiAgICBjb25zdCByYXdBcmdzID0gc2NoZW1hdGljT3B0aW9ucy5fO1xuICAgIHdvcmtmbG93LnJlZ2lzdHJ5LmFkZFNtYXJ0RGVmYXVsdFByb3ZpZGVyKCdhcmd2JywgKHNjaGVtYTogSnNvbk9iamVjdCkgPT4ge1xuICAgICAgaWYgKCdpbmRleCcgaW4gc2NoZW1hKSB7XG4gICAgICAgIHJldHVybiByYXdBcmdzW051bWJlcihzY2hlbWFbJ2luZGV4J10pXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiByYXdBcmdzO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGRlbGV0ZSBzY2hlbWF0aWNPcHRpb25zLl87XG5cbiAgICB3b3JrZmxvdy5yZWdpc3RyeS5hZGRTbWFydERlZmF1bHRQcm92aWRlcigncHJvamVjdE5hbWUnLCAoX3NjaGVtYTogSnNvbk9iamVjdCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX3dvcmtzcGFjZSkge1xuICAgICAgICB0cnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fd29ya3NwYWNlLmdldFByb2plY3RCeVBhdGgobm9ybWFsaXplKHByb2Nlc3MuY3dkKCkpKVxuICAgICAgICAgICAgICAgfHwgdGhpcy5fd29ya3NwYWNlLmdldERlZmF1bHRQcm9qZWN0TmFtZSgpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgaWYgKGUgaW5zdGFuY2VvZiBleHBlcmltZW50YWwud29ya3NwYWNlLkFtYmlndW91c1Byb2plY3RQYXRoRXhjZXB0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKHRhZ3Mub25lTGluZWBcbiAgICAgICAgICAgICAgVHdvIG9yIG1vcmUgcHJvamVjdHMgYXJlIHVzaW5nIGlkZW50aWNhbCByb290cy5cbiAgICAgICAgICAgICAgVW5hYmxlIHRvIGRldGVybWluZSBwcm9qZWN0IHVzaW5nIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnkuXG4gICAgICAgICAgICAgIFVzaW5nIGRlZmF1bHQgd29ya3NwYWNlIHByb2plY3QgaW5zdGVhZC5cbiAgICAgICAgICAgIGApO1xuXG4gICAgICAgICAgICByZXR1cm4gdGhpcy5fd29ya3NwYWNlLmdldERlZmF1bHRQcm9qZWN0TmFtZSgpO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBlO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfSk7XG5cbiAgICB3b3JrZmxvdy5yZXBvcnRlci5zdWJzY3JpYmUoKGV2ZW50OiBEcnlSdW5FdmVudCkgPT4ge1xuICAgICAgbm90aGluZ0RvbmUgPSBmYWxzZTtcblxuICAgICAgLy8gU3RyaXAgbGVhZGluZyBzbGFzaCB0byBwcmV2ZW50IGNvbmZ1c2lvbi5cbiAgICAgIGNvbnN0IGV2ZW50UGF0aCA9IGV2ZW50LnBhdGguc3RhcnRzV2l0aCgnLycpID8gZXZlbnQucGF0aC5zdWJzdHIoMSkgOiBldmVudC5wYXRoO1xuXG4gICAgICBzd2l0Y2ggKGV2ZW50LmtpbmQpIHtcbiAgICAgICAgY2FzZSAnZXJyb3InOlxuICAgICAgICAgIGVycm9yID0gdHJ1ZTtcbiAgICAgICAgICBjb25zdCBkZXNjID0gZXZlbnQuZGVzY3JpcHRpb24gPT0gJ2FscmVhZHlFeGlzdCcgPyAnYWxyZWFkeSBleGlzdHMnIDogJ2RvZXMgbm90IGV4aXN0Lic7XG4gICAgICAgICAgdGhpcy5sb2dnZXIud2FybihgRVJST1IhICR7ZXZlbnRQYXRofSAke2Rlc2N9LmApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICd1cGRhdGUnOlxuICAgICAgICAgIGxvZ2dpbmdRdWV1ZS5wdXNoKHRhZ3Mub25lTGluZWBcbiAgICAgICAgICAgICR7dGVybWluYWwud2hpdGUoJ1VQREFURScpfSAke2V2ZW50UGF0aH0gKCR7ZXZlbnQuY29udGVudC5sZW5ndGh9IGJ5dGVzKVxuICAgICAgICAgIGApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdjcmVhdGUnOlxuICAgICAgICAgIGxvZ2dpbmdRdWV1ZS5wdXNoKHRhZ3Mub25lTGluZWBcbiAgICAgICAgICAgICR7dGVybWluYWwuZ3JlZW4oJ0NSRUFURScpfSAke2V2ZW50UGF0aH0gKCR7ZXZlbnQuY29udGVudC5sZW5ndGh9IGJ5dGVzKVxuICAgICAgICAgIGApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICAgIGxvZ2dpbmdRdWV1ZS5wdXNoKGAke3Rlcm1pbmFsLnllbGxvdygnREVMRVRFJyl9ICR7ZXZlbnRQYXRofWApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdyZW5hbWUnOlxuICAgICAgICAgIGxvZ2dpbmdRdWV1ZS5wdXNoKGAke3Rlcm1pbmFsLmJsdWUoJ1JFTkFNRScpfSAke2V2ZW50UGF0aH0gPT4gJHtldmVudC50b31gKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHdvcmtmbG93LmxpZmVDeWNsZS5zdWJzY3JpYmUoZXZlbnQgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtpbmQgPT0gJ2VuZCcgfHwgZXZlbnQua2luZCA9PSAncG9zdC10YXNrcy1zdGFydCcpIHtcbiAgICAgICAgaWYgKCFlcnJvcikge1xuICAgICAgICAgIC8vIE91dHB1dCB0aGUgbG9nZ2luZyBxdWV1ZSwgbm8gZXJyb3IgaGFwcGVuZWQuXG4gICAgICAgICAgbG9nZ2luZ1F1ZXVlLmZvckVhY2gobG9nID0+IHRoaXMubG9nZ2VyLmluZm8obG9nKSk7XG4gICAgICAgIH1cblxuICAgICAgICBsb2dnaW5nUXVldWUgPSBbXTtcbiAgICAgICAgZXJyb3IgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTxudW1iZXIgfCB2b2lkPigocmVzb2x2ZSkgPT4ge1xuICAgICAgd29ya2Zsb3cuZXhlY3V0ZSh7XG4gICAgICAgIGNvbGxlY3Rpb246IGNvbGxlY3Rpb25OYW1lLFxuICAgICAgICBzY2hlbWF0aWM6IHNjaGVtYXRpY05hbWUsXG4gICAgICAgIG9wdGlvbnM6IHNjaGVtYXRpY09wdGlvbnMsXG4gICAgICAgIGRlYnVnOiBkZWJ1ZyxcbiAgICAgICAgbG9nZ2VyOiB0aGlzLmxvZ2dlciBhcyBhbnksXG4gICAgICAgIGFsbG93UHJpdmF0ZTogdGhpcy5hbGxvd1ByaXZhdGVTY2hlbWF0aWNzLFxuICAgICAgfSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBlcnJvcjogKGVycjogRXJyb3IpID0+IHtcbiAgICAgICAgICAvLyBJbiBjYXNlIHRoZSB3b3JrZmxvdyB3YXMgbm90IHN1Y2Nlc3NmdWwsIHNob3cgYW4gYXBwcm9wcmlhdGUgZXJyb3IgbWVzc2FnZS5cbiAgICAgICAgICBpZiAoZXJyIGluc3RhbmNlb2YgVW5zdWNjZXNzZnVsV29ya2Zsb3dFeGVjdXRpb24pIHtcbiAgICAgICAgICAgIC8vIFwiU2VlIGFib3ZlXCIgYmVjYXVzZSB3ZSBhbHJlYWR5IHByaW50ZWQgdGhlIGVycm9yLlxuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZmF0YWwoJ1RoZSBTY2hlbWF0aWMgd29ya2Zsb3cgZmFpbGVkLiBTZWUgYWJvdmUuJyk7XG4gICAgICAgICAgfSBlbHNlIGlmIChkZWJ1Zykge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZmF0YWwoYEFuIGVycm9yIG9jY3VyZWQ6XFxuJHtlcnIubWVzc2FnZX1cXG4ke2Vyci5zdGFja31gKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZmF0YWwoZXJyLm1lc3NhZ2UpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJlc29sdmUoMSk7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XG4gICAgICAgICAgY29uc3Qgc2hvd05vdGhpbmdEb25lID0gIShvcHRpb25zLnNob3dOb3RoaW5nRG9uZSA9PT0gZmFsc2UpO1xuICAgICAgICAgIGlmIChub3RoaW5nRG9uZSAmJiBzaG93Tm90aGluZ0RvbmUpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmluZm8oJ05vdGhpbmcgdG8gYmUgZG9uZS4nKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKGRyeVJ1bikge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIud2FybihgXFxuTk9URTogUnVuIHdpdGggXCJkcnkgcnVuXCIgbm8gY2hhbmdlcyB3ZXJlIG1hZGUuYCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlbW92ZUNvcmVPcHRpb25zKG9wdGlvbnM6IGFueSk6IGFueSB7XG4gICAgY29uc3Qgb3B0cyA9IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMpO1xuICAgIGlmICh0aGlzLl9vcmlnaW5hbE9wdGlvbnMuZmluZChvcHRpb24gPT4gb3B0aW9uLm5hbWUgPT0gJ2RyeVJ1bicpKSB7XG4gICAgICBkZWxldGUgb3B0cy5kcnlSdW47XG4gICAgfVxuICAgIGlmICh0aGlzLl9vcmlnaW5hbE9wdGlvbnMuZmluZChvcHRpb24gPT4gb3B0aW9uLm5hbWUgPT0gJ2ZvcmNlJykpIHtcbiAgICAgIGRlbGV0ZSBvcHRzLmZvcmNlO1xuICAgIH1cbiAgICBpZiAodGhpcy5fb3JpZ2luYWxPcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi5uYW1lID09ICdkZWJ1ZycpKSB7XG4gICAgICBkZWxldGUgb3B0cy5kZWJ1ZztcbiAgICB9XG5cbiAgICByZXR1cm4gb3B0cztcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRPcHRpb25zKG9wdGlvbnM6IEdldE9wdGlvbnNPcHRpb25zKTogUHJvbWlzZTxHZXRPcHRpb25zUmVzdWx0PiB7XG4gICAgLy8gTWFrZSBhIGNvcHkuXG4gICAgdGhpcy5fb3JpZ2luYWxPcHRpb25zID0gWy4uLnRoaXMub3B0aW9uc107XG5cbiAgICBjb25zdCBjb2xsZWN0aW9uTmFtZSA9IG9wdGlvbnMuY29sbGVjdGlvbk5hbWUgfHwgZ2V0RGVmYXVsdFNjaGVtYXRpY0NvbGxlY3Rpb24oKTtcblxuICAgIGNvbnN0IGNvbGxlY3Rpb24gPSBnZXRDb2xsZWN0aW9uKGNvbGxlY3Rpb25OYW1lKTtcblxuICAgIGNvbnN0IHNjaGVtYXRpYyA9IGdldFNjaGVtYXRpYyhjb2xsZWN0aW9uLCBvcHRpb25zLnNjaGVtYXRpY05hbWUsIHRoaXMuYWxsb3dQcml2YXRlU2NoZW1hdGljcyk7XG4gICAgdGhpcy5fZGVBbGlhc2VkTmFtZSA9IHNjaGVtYXRpYy5kZXNjcmlwdGlvbi5uYW1lO1xuXG4gICAgaWYgKCFzY2hlbWF0aWMuZGVzY3JpcHRpb24uc2NoZW1hSnNvbikge1xuICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSh7XG4gICAgICAgIG9wdGlvbnM6IFtdLFxuICAgICAgICBhcmd1bWVudHM6IFtdLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvcGVydGllcyA9IHNjaGVtYXRpYy5kZXNjcmlwdGlvbi5zY2hlbWFKc29uLnByb3BlcnRpZXM7XG4gICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHByb3BlcnRpZXMpO1xuICAgIGNvbnN0IGF2YWlsYWJsZU9wdGlvbnMgPSBrZXlzXG4gICAgICAubWFwKGtleSA9PiAoeyAuLi5wcm9wZXJ0aWVzW2tleV0sIC4uLnsgbmFtZTogc3RyaW5ncy5kYXNoZXJpemUoa2V5KSB9IH0pKVxuICAgICAgLm1hcChvcHQgPT4ge1xuICAgICAgICBsZXQgdHlwZTtcbiAgICAgICAgY29uc3Qgc2NoZW1hdGljVHlwZSA9IG9wdC50eXBlO1xuICAgICAgICBzd2l0Y2ggKG9wdC50eXBlKSB7XG4gICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgIHR5cGUgPSBTdHJpbmc7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlICdib29sZWFuJzpcbiAgICAgICAgICAgIHR5cGUgPSBCb29sZWFuO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnaW50ZWdlcic6XG4gICAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICAgIHR5cGUgPSBOdW1iZXI7XG4gICAgICAgICAgICBicmVhaztcblxuICAgICAgICAgIC8vIElnbm9yZSBhcnJheXMgLyBvYmplY3RzLlxuICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICBsZXQgYWxpYXNlczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgaWYgKG9wdC5hbGlhcykge1xuICAgICAgICAgIGFsaWFzZXMgPSBbLi4uYWxpYXNlcywgb3B0LmFsaWFzXTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob3B0LmFsaWFzZXMpIHtcbiAgICAgICAgICBhbGlhc2VzID0gWy4uLmFsaWFzZXMsIC4uLm9wdC5hbGlhc2VzXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBzY2hlbWF0aWNEZWZhdWx0ID0gb3B0LmRlZmF1bHQ7XG5cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5vcHQsXG4gICAgICAgICAgYWxpYXNlcyxcbiAgICAgICAgICB0eXBlLFxuICAgICAgICAgIHNjaGVtYXRpY1R5cGUsXG4gICAgICAgICAgZGVmYXVsdDogdW5kZWZpbmVkLCAvLyBkbyBub3QgY2Fycnkgb3ZlciBzY2hlbWF0aWNzIGRlZmF1bHRzXG4gICAgICAgICAgc2NoZW1hdGljRGVmYXVsdCxcbiAgICAgICAgICBoaWRkZW46IG9wdC52aXNpYmxlID09PSBmYWxzZSxcbiAgICAgICAgfTtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKHggPT4geCk7XG5cbiAgICBjb25zdCBzY2hlbWF0aWNPcHRpb25zID0gYXZhaWxhYmxlT3B0aW9uc1xuICAgICAgLmZpbHRlcihvcHQgPT4gb3B0LiRkZWZhdWx0ID09PSB1bmRlZmluZWQgfHwgb3B0LiRkZWZhdWx0LiRzb3VyY2UgIT09ICdhcmd2Jyk7XG5cbiAgICBjb25zdCBzY2hlbWF0aWNBcmd1bWVudHMgPSBhdmFpbGFibGVPcHRpb25zXG4gICAgICAuZmlsdGVyKG9wdCA9PiBvcHQuJGRlZmF1bHQgIT09IHVuZGVmaW5lZCAmJiBvcHQuJGRlZmF1bHQuJHNvdXJjZSA9PT0gJ2FyZ3YnKVxuICAgICAgLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgaWYgKGEuJGRlZmF1bHQuaW5kZXggPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9XG4gICAgICAgIGlmIChiLiRkZWZhdWx0LmluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gLTE7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGEuJGRlZmF1bHQuaW5kZXggPT0gYi4kZGVmYXVsdC5pbmRleCkge1xuICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICB9IGVsc2UgaWYgKGEuJGRlZmF1bHQuaW5kZXggPiBiLiRkZWZhdWx0LmluZGV4KSB7XG4gICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgb3B0aW9uczogc2NoZW1hdGljT3B0aW9ucyxcbiAgICAgIGFyZ3VtZW50czogc2NoZW1hdGljQXJndW1lbnRzLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9hZFdvcmtzcGFjZSgpIHtcbiAgICBpZiAodGhpcy5fd29ya3NwYWNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IHdvcmtzcGFjZUxvYWRlciA9IG5ldyBXb3Jrc3BhY2VMb2FkZXIodGhpcy5faG9zdCk7XG5cbiAgICB0cnkge1xuICAgICAgd29ya3NwYWNlTG9hZGVyLmxvYWRXb3Jrc3BhY2UodGhpcy5wcm9qZWN0LnJvb3QpLnBpcGUodGFrZSgxKSlcbiAgICAgICAgLnN1YnNjcmliZShcbiAgICAgICAgICAod29ya3NwYWNlOiBleHBlcmltZW50YWwud29ya3NwYWNlLldvcmtzcGFjZSkgPT4gdGhpcy5fd29ya3NwYWNlID0gd29ya3NwYWNlLFxuICAgICAgICAgIChlcnI6IEVycm9yKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuYWxsb3dNaXNzaW5nV29ya3NwYWNlKSB7XG4gICAgICAgICAgICAgIC8vIElnbm9yZSBtaXNzaW5nIHdvcmtzcGFjZVxuICAgICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGlmICghdGhpcy5hbGxvd01pc3NpbmdXb3Jrc3BhY2UpIHtcbiAgICAgICAgLy8gSWdub3JlIG1pc3Npbmcgd29ya3NwYWNlXG4gICAgICAgIHRocm93IGVycjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9jbGVhbkRlZmF1bHRzPFQsIEsgZXh0ZW5kcyBrZXlvZiBUPihkZWZhdWx0czogVCwgdW5kZWZpbmVkT3B0aW9uczogc3RyaW5nW10pOiBUIHtcbiAgICAoT2JqZWN0LmtleXMoZGVmYXVsdHMpIGFzIEtbXSlcbiAgICAgIC5maWx0ZXIoa2V5ID0+ICF1bmRlZmluZWRPcHRpb25zLm1hcChzdHJpbmdzLmNhbWVsaXplKS5pbmNsdWRlcyhrZXkgYXMgc3RyaW5nKSlcbiAgICAgIC5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGRlbGV0ZSBkZWZhdWx0c1trZXldO1xuICAgICAgfSk7XG5cbiAgICByZXR1cm4gZGVmYXVsdHM7XG4gIH1cblxuICBwcml2YXRlIHJlYWREZWZhdWx0cyhjb2xsZWN0aW9uTmFtZTogc3RyaW5nLCBzY2hlbWF0aWNOYW1lOiBzdHJpbmcsIG9wdGlvbnM6IGFueSk6IHt9IHtcbiAgICBpZiAodGhpcy5fZGVBbGlhc2VkTmFtZSkge1xuICAgICAgc2NoZW1hdGljTmFtZSA9IHRoaXMuX2RlQWxpYXNlZE5hbWU7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvamVjdE5hbWUgPSBvcHRpb25zLnByb2plY3Q7XG4gICAgY29uc3QgZGVmYXVsdHMgPSBnZXRTY2hlbWF0aWNEZWZhdWx0cyhjb2xsZWN0aW9uTmFtZSwgc2NoZW1hdGljTmFtZSwgcHJvamVjdE5hbWUpO1xuXG4gICAgLy8gR2V0IGxpc3Qgb2YgYWxsIHVuZGVmaW5lZCBvcHRpb25zLlxuICAgIGNvbnN0IHVuZGVmaW5lZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnNcbiAgICAgIC5maWx0ZXIobyA9PiBvcHRpb25zW28ubmFtZV0gPT09IHVuZGVmaW5lZClcbiAgICAgIC5tYXAobyA9PiBvLm5hbWUpO1xuXG4gICAgLy8gRGVsZXRlIGFueSBkZWZhdWx0IHRoYXQgaXMgbm90IHVuZGVmaW5lZC5cbiAgICB0aGlzLl9jbGVhbkRlZmF1bHRzKGRlZmF1bHRzLCB1bmRlZmluZWRPcHRpb25zKTtcblxuICAgIHJldHVybiBkZWZhdWx0cztcbiAgfVxufVxuIl19
|
|
331
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hdGljLWNvbW1hbmQuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXIvY2xpL21vZGVscy9zY2hlbWF0aWMtY29tbWFuZC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7OztHQU1HOzs7Ozs7Ozs7O0FBRUgsaURBQWlEO0FBQ2pELCtDQUFnRTtBQUNoRSwrQ0FBcUY7QUFDckYsb0RBQTJEO0FBQzNELDJEQUF3RjtBQUN4Riw0REFBZ0U7QUFDaEUsOENBQXNDO0FBQ3RDLGlFQUE2RDtBQUM3RCxnREFBdUY7QUFDdkYsZ0RBQTJEO0FBQzNELHdEQUFzRTtBQUN0RSx1Q0FBOEQ7QUEyQjlELHNCQUF1QyxTQUFRLGlCQUFPO0lBQXREOztRQUNXLFlBQU8sR0FBYSxFQUFFLENBQUM7UUFDdkIsMkJBQXNCLEdBQVksS0FBSyxDQUFDO1FBQ3pDLFVBQUssR0FBRyxJQUFJLHFCQUFjLEVBQUUsQ0FBQztRQUlyQyxnQkFBVyxHQUFHLDBCQUFnQixDQUFDLE9BQU8sQ0FBQztRQUVwQixnQkFBVyxHQUFhO1lBQ3pDO2dCQUNFLElBQUksRUFBRSxRQUFRO2dCQUNkLElBQUksRUFBRSxPQUFPO2dCQUNiLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQztnQkFDZCxXQUFXLEVBQUUseUNBQXlDO2FBQ3ZEO1lBQ0Q7Z0JBQ0UsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDO2dCQUNkLFdBQVcsRUFBRSw4QkFBOEI7YUFDNUM7U0FBQyxDQUFDO1FBRUksY0FBUyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUE0VG5DLENBQUM7SUExVGMsVUFBVSxDQUFDLFFBQWE7O1lBQ25DLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixDQUFDO0tBQUE7SUFFUyxjQUFjLENB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cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbi8vIHRzbGludDpkaXNhYmxlOm5vLWdsb2JhbC10c2xpbnQtZGlzYWJsZSBuby1hbnlcbmltcG9ydCB7IEpzb25PYmplY3QsIGV4cGVyaW1lbnRhbCB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7IG5vcm1hbGl6ZSwgc3RyaW5ncywgdGFncywgdGVybWluYWwsIHZpcnR1YWxGcyB9IGZyb20gJ0Bhbmd1bGFyLWRldmtpdC9jb3JlJztcbmltcG9ydCB7IE5vZGVKc1N5bmNIb3N0IH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUvbm9kZSc7XG5pbXBvcnQgeyBEcnlSdW5FdmVudCwgVW5zdWNjZXNzZnVsV29ya2Zsb3dFeGVjdXRpb24gfSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcyc7XG5pbXBvcnQgeyBOb2RlV29ya2Zsb3cgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvc2NoZW1hdGljcy90b29scyc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgV29ya3NwYWNlTG9hZGVyIH0gZnJvbSAnLi4vbW9kZWxzL3dvcmtzcGFjZS1sb2FkZXInO1xuaW1wb3J0IHsgZ2V0RGVmYXVsdFNjaGVtYXRpY0NvbGxlY3Rpb24sIGdldFBhY2thZ2VNYW5hZ2VyIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2NvbmZpZyc7XG5pbXBvcnQgeyBnZXRTY2hlbWF0aWNEZWZhdWx0cyB9IGZyb20gJy4uL3V0aWxpdGllcy9jb25maWcnO1xuaW1wb3J0IHsgZ2V0Q29sbGVjdGlvbiwgZ2V0U2NoZW1hdGljIH0gZnJvbSAnLi4vdXRpbGl0aWVzL3NjaGVtYXRpY3MnO1xuaW1wb3J0IHsgQXJndW1lbnRTdHJhdGVneSwgQ29tbWFuZCwgT3B0aW9uIH0gZnJvbSAnLi9jb21tYW5kJztcblxuZXhwb3J0IGludGVyZmFjZSBDb3JlU2NoZW1hdGljT3B0aW9ucyB7XG4gIGRyeVJ1bjogYm9vbGVhbjtcbiAgZm9yY2U6IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUnVuU2NoZW1hdGljT3B0aW9ucyB7XG4gIGNvbGxlY3Rpb25OYW1lOiBzdHJpbmc7XG4gIHNjaGVtYXRpY05hbWU6IHN0cmluZztcbiAgc2NoZW1hdGljT3B0aW9uczogYW55O1xuICBkZWJ1Zz86IGJvb2xlYW47XG4gIGRyeVJ1bjogYm9vbGVhbjtcbiAgZm9yY2U6IGJvb2xlYW47XG4gIHNob3dOb3RoaW5nRG9uZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0T3B0aW9uc09wdGlvbnMge1xuICBjb2xsZWN0aW9uTmFtZTogc3RyaW5nO1xuICBzY2hlbWF0aWNOYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgR2V0T3B0aW9uc1Jlc3VsdCB7XG4gIG9wdGlvbnM6IE9wdGlvbltdO1xuICBhcmd1bWVudHM6IE9wdGlvbltdO1xufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2NoZW1hdGljQ29tbWFuZCBleHRlbmRzIENvbW1hbmQge1xuICByZWFkb25seSBvcHRpb25zOiBPcHRpb25bXSA9IFtdO1xuICByZWFkb25seSBhbGxvd1ByaXZhdGVTY2hlbWF0aWNzOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2hvc3QgPSBuZXcgTm9kZUpzU3luY0hvc3QoKTtcbiAgcHJpdmF0ZSBfd29ya3NwYWNlOiBleHBlcmltZW50YWwud29ya3NwYWNlLldvcmtzcGFjZTtcbiAgcHJpdmF0ZSBfZGVBbGlhc2VkTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIF9vcmlnaW5hbE9wdGlvbnM6IE9wdGlvbltdO1xuICBhcmdTdHJhdGVneSA9IEFyZ3VtZW50U3RyYXRlZ3kuTm90aGluZztcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29yZU9wdGlvbnM6IE9wdGlvbltdID0gW1xuICAgIHtcbiAgICAgIG5hbWU6ICdkcnlSdW4nLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgYWxpYXNlczogWydkJ10sXG4gICAgICBkZXNjcmlwdGlvbjogJ1J1biB0aHJvdWdoIHdpdGhvdXQgbWFraW5nIGFueSBjaGFuZ2VzLicsXG4gICAgfSxcbiAgICB7XG4gICAgICBuYW1lOiAnZm9yY2UnLFxuICAgICAgdHlwZTogQm9vbGVhbixcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgICAgYWxpYXNlczogWydmJ10sXG4gICAgICBkZXNjcmlwdGlvbjogJ0ZvcmNlcyBvdmVyd3JpdGluZyBvZiBmaWxlcy4nLFxuICAgIH1dO1xuXG4gIHJlYWRvbmx5IGFyZ3VtZW50cyA9IFsncHJvamVjdCddO1xuXG4gIHB1YmxpYyBhc3luYyBpbml0aWFsaXplKF9vcHRpb25zOiBhbnkpIHtcbiAgICB0aGlzLl9sb2FkV29ya3NwYWNlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0UGF0aE9wdGlvbnMob3B0aW9uczogYW55LCB3b3JraW5nRGlyOiBzdHJpbmcpOiBhbnkge1xuICAgIGlmICh3b3JraW5nRGlyID09PSAnJykge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLm9wdGlvbnNcbiAgICAgIC5maWx0ZXIobyA9PiBvLmZvcm1hdCA9PT0gJ3BhdGgnKVxuICAgICAgLm1hcChvID0+IG8ubmFtZSlcbiAgICAgIC5maWx0ZXIobmFtZSA9PiBvcHRpb25zW25hbWVdID09PSB1bmRlZmluZWQpXG4gICAgICAucmVkdWNlKChhY2M6IGFueSwgY3VycikgPT4ge1xuICAgICAgICBhY2NbY3Vycl0gPSB3b3JraW5nRGlyO1xuXG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LCB7fSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcnVuU2NoZW1hdGljKG9wdGlvbnM6IFJ1blNjaGVtYXRpY09wdGlvbnMpIHtcbiAgICBjb25zdCB7IGNvbGxlY3Rpb25OYW1lLCBzY2hlbWF0aWNOYW1lLCBkZWJ1ZywgZm9yY2UsIGRyeVJ1biB9ID0gb3B0aW9ucztcbiAgICBsZXQgc2NoZW1hdGljT3B0aW9ucyA9IHRoaXMucmVtb3ZlQ29yZU9wdGlvbnMob3B0aW9ucy5zY2hlbWF0aWNPcHRpb25zKTtcbiAgICBsZXQgbm90aGluZ0RvbmUgPSB0cnVlO1xuICAgIGxldCBsb2dnaW5nUXVldWU6IHN0cmluZ1tdID0gW107XG4gICAgbGV0IGVycm9yID0gZmFsc2U7XG4gICAgY29uc3QgZnNIb3N0ID0gbmV3IHZpcnR1YWxGcy5TY29wZWRIb3N0KG5ldyBOb2RlSnNTeW5jSG9zdCgpLCBub3JtYWxpemUodGhpcy5wcm9qZWN0LnJvb3QpKTtcbiAgICBjb25zdCB3b3JrZmxvdyA9IG5ldyBOb2RlV29ya2Zsb3coXG4gICAgICBmc0hvc3QgYXMgYW55LFxuICAgICAge1xuICAgICAgICBmb3JjZSxcbiAgICAgICAgZHJ5UnVuLFxuICAgICAgICBwYWNrYWdlTWFuYWdlcjogZ2V0UGFja2FnZU1hbmFnZXIoKSxcbiAgICAgICAgcm9vdDogdGhpcy5wcm9qZWN0LnJvb3QsXG4gICAgICAgfSxcbiAgICApO1xuXG4gICAgY29uc3Qgd29ya2luZ0RpciA9IHByb2Nlc3MuY3dkKCkucmVwbGFjZSh0aGlzLnByb2plY3Qucm9vdCwgJycpLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgICBjb25zdCBwYXRoT3B0aW9ucyA9IHRoaXMuc2V0UGF0aE9wdGlvbnMoc2NoZW1hdGljT3B0aW9ucywgd29ya2luZ0Rpcik7XG4gICAgc2NoZW1hdGljT3B0aW9ucyA9IHsgLi4uc2NoZW1hdGljT3B0aW9ucywgLi4ucGF0aE9wdGlvbnMgfTtcbiAgICBjb25zdCBkZWZhdWx0T3B0aW9ucyA9IHRoaXMucmVhZERlZmF1bHRzKGNvbGxlY3Rpb25OYW1lLCBzY2hlbWF0aWNOYW1lLCBzY2hlbWF0aWNPcHRpb25zKTtcbiAgICBzY2hlbWF0aWNPcHRpb25zID0geyAuLi5zY2hlbWF0aWNPcHRpb25zLCAuLi5kZWZhdWx0T3B0aW9ucyB9O1xuXG4gICAgLy8gUGFzcyB0aGUgcmVzdCBvZiB0aGUgYXJndW1lbnRzIGFzIHRoZSBzbWFydCBkZWZhdWx0IFwiYXJndlwiLiBUaGVuIGRlbGV0ZSBpdC5cbiAgICAvLyBSZW1vdmluZyB0aGUgZmlyc3QgaXRlbSB3aGljaCBpcyB0aGUgc2NoZW1hdGljIG5hbWUuXG4gICAgY29uc3QgcmF3QXJncyA9IHNjaGVtYXRpY09wdGlvbnMuXztcbiAgICB3b3JrZmxvdy5yZWdpc3RyeS5hZGRTbWFydERlZmF1bHRQcm92aWRlcignYXJndicsIChzY2hlbWE6IEpzb25PYmplY3QpID0+IHtcbiAgICAgIGlmICgnaW5kZXgnIGluIHNjaGVtYSkge1xuICAgICAgICByZXR1cm4gcmF3QXJnc1tOdW1iZXIoc2NoZW1hWydpbmRleCddKV07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gcmF3QXJncztcbiAgICAgIH1cbiAgICB9KTtcbiAgICBkZWxldGUgc2NoZW1hdGljT3B0aW9ucy5fO1xuXG4gICAgd29ya2Zsb3cucmVnaXN0cnkuYWRkU21hcnREZWZhdWx0UHJvdmlkZXIoJ3Byb2plY3ROYW1lJywgKF9zY2hlbWE6IEpzb25PYmplY3QpID0+IHtcbiAgICAgIGlmICh0aGlzLl93b3Jrc3BhY2UpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzcGFjZS5nZXRQcm9qZWN0QnlQYXRoKG5vcm1hbGl6ZShwcm9jZXNzLmN3ZCgpKSlcbiAgICAgICAgICAgICAgIHx8IHRoaXMuX3dvcmtzcGFjZS5nZXREZWZhdWx0UHJvamVjdE5hbWUoKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIGlmIChlIGluc3RhbmNlb2YgZXhwZXJpbWVudGFsLndvcmtzcGFjZS5BbWJpZ3VvdXNQcm9qZWN0UGF0aEV4Y2VwdGlvbikge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIud2Fybih0YWdzLm9uZUxpbmVgXG4gICAgICAgICAgICAgIFR3byBvciBtb3JlIHByb2plY3RzIGFyZSB1c2luZyBpZGVudGljYWwgcm9vdHMuXG4gICAgICAgICAgICAgIFVuYWJsZSB0byBkZXRlcm1pbmUgcHJvamVjdCB1c2luZyBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5LlxuICAgICAgICAgICAgICBVc2luZyBkZWZhdWx0IHdvcmtzcGFjZSBwcm9qZWN0IGluc3RlYWQuXG4gICAgICAgICAgICBgKTtcblxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuX3dvcmtzcGFjZS5nZXREZWZhdWx0UHJvamVjdE5hbWUoKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH0pO1xuXG4gICAgd29ya2Zsb3cucmVwb3J0ZXIuc3Vic2NyaWJlKChldmVudDogRHJ5UnVuRXZlbnQpID0+IHtcbiAgICAgIG5vdGhpbmdEb25lID0gZmFsc2U7XG5cbiAgICAgIC8vIFN0cmlwIGxlYWRpbmcgc2xhc2ggdG8gcHJldmVudCBjb25mdXNpb24uXG4gICAgICBjb25zdCBldmVudFBhdGggPSBldmVudC5wYXRoLnN0YXJ0c1dpdGgoJy8nKSA/IGV2ZW50LnBhdGguc3Vic3RyKDEpIDogZXZlbnQucGF0aDtcblxuICAgICAgc3dpdGNoIChldmVudC5raW5kKSB7XG4gICAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgICBlcnJvciA9IHRydWU7XG4gICAgICAgICAgY29uc3QgZGVzYyA9IGV2ZW50LmRlc2NyaXB0aW9uID09ICdhbHJlYWR5RXhpc3QnID8gJ2FscmVhZHkgZXhpc3RzJyA6ICdkb2VzIG5vdCBleGlzdC4nO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYEVSUk9SISAke2V2ZW50UGF0aH0gJHtkZXNjfS5gKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndXBkYXRlJzpcbiAgICAgICAgICBsb2dnaW5nUXVldWUucHVzaCh0YWdzLm9uZUxpbmVgXG4gICAgICAgICAgICAke3Rlcm1pbmFsLndoaXRlKCdVUERBVEUnKX0gJHtldmVudFBhdGh9ICgke2V2ZW50LmNvbnRlbnQubGVuZ3RofSBieXRlcylcbiAgICAgICAgICBgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnY3JlYXRlJzpcbiAgICAgICAgICBsb2dnaW5nUXVldWUucHVzaCh0YWdzLm9uZUxpbmVgXG4gICAgICAgICAgICAke3Rlcm1pbmFsLmdyZWVuKCdDUkVBVEUnKX0gJHtldmVudFBhdGh9ICgke2V2ZW50LmNvbnRlbnQubGVuZ3RofSBieXRlcylcbiAgICAgICAgICBgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgICBsb2dnaW5nUXVldWUucHVzaChgJHt0ZXJtaW5hbC55ZWxsb3coJ0RFTEVURScpfSAke2V2ZW50UGF0aH1gKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAncmVuYW1lJzpcbiAgICAgICAgICBsb2dnaW5nUXVldWUucHVzaChgJHt0ZXJtaW5hbC5ibHVlKCdSRU5BTUUnKX0gJHtldmVudFBhdGh9ID0+ICR7ZXZlbnQudG99YCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB3b3JrZmxvdy5saWZlQ3ljbGUuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgIGlmIChldmVudC5raW5kID09ICdlbmQnIHx8IGV2ZW50LmtpbmQgPT0gJ3Bvc3QtdGFza3Mtc3RhcnQnKSB7XG4gICAgICAgIGlmICghZXJyb3IpIHtcbiAgICAgICAgICAvLyBPdXRwdXQgdGhlIGxvZ2dpbmcgcXVldWUsIG5vIGVycm9yIGhhcHBlbmVkLlxuICAgICAgICAgIGxvZ2dpbmdRdWV1ZS5mb3JFYWNoKGxvZyA9PiB0aGlzLmxvZ2dlci5pbmZvKGxvZykpO1xuICAgICAgICB9XG5cbiAgICAgICAgbG9nZ2luZ1F1ZXVlID0gW107XG4gICAgICAgIGVycm9yID0gZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2U8bnVtYmVyIHwgdm9pZD4oKHJlc29sdmUpID0+IHtcbiAgICAgIHdvcmtmbG93LmV4ZWN1dGUoe1xuICAgICAgICBjb2xsZWN0aW9uOiBjb2xsZWN0aW9uTmFtZSxcbiAgICAgICAgc2NoZW1hdGljOiBzY2hlbWF0aWNOYW1lLFxuICAgICAgICBvcHRpb25zOiBzY2hlbWF0aWNPcHRpb25zLFxuICAgICAgICBkZWJ1ZzogZGVidWcsXG4gICAgICAgIGxvZ2dlcjogdGhpcy5sb2dnZXIgYXMgYW55LFxuICAgICAgICBhbGxvd1ByaXZhdGU6IHRoaXMuYWxsb3dQcml2YXRlU2NoZW1hdGljcyxcbiAgICAgIH0pXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgZXJyb3I6IChlcnI6IEVycm9yKSA9PiB7XG4gICAgICAgICAgLy8gSW4gY2FzZSB0aGUgd29ya2Zsb3cgd2FzIG5vdCBzdWNjZXNzZnVsLCBzaG93IGFuIGFwcHJvcHJpYXRlIGVycm9yIG1lc3NhZ2UuXG4gICAgICAgICAgaWYgKGVyciBpbnN0YW5jZW9mIFVuc3VjY2Vzc2Z1bFdvcmtmbG93RXhlY3V0aW9uKSB7XG4gICAgICAgICAgICAvLyBcIlNlZSBhYm92ZVwiIGJlY2F1c2Ugd2UgYWxyZWFkeSBwcmludGVkIHRoZSBlcnJvci5cbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmZhdGFsKCdUaGUgU2NoZW1hdGljIHdvcmtmbG93IGZhaWxlZC4gU2VlIGFib3ZlLicpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoZGVidWcpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmZhdGFsKGBBbiBlcnJvciBvY2N1cmVkOlxcbiR7ZXJyLm1lc3NhZ2V9XFxuJHtlcnIuc3RhY2t9YCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmZhdGFsKGVyci5tZXNzYWdlKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXNvbHZlKDEpO1xuICAgICAgICB9LFxuICAgICAgICBjb21wbGV0ZTogKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IHNob3dOb3RoaW5nRG9uZSA9ICEob3B0aW9ucy5zaG93Tm90aGluZ0RvbmUgPT09IGZhbHNlKTtcbiAgICAgICAgICBpZiAobm90aGluZ0RvbmUgJiYgc2hvd05vdGhpbmdEb25lKSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5pbmZvKCdOb3RoaW5nIHRvIGJlIGRvbmUuJyk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChkcnlSdW4pIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLndhcm4oYFxcbk5PVEU6IFJ1biB3aXRoIFwiZHJ5IHJ1blwiIG5vIGNoYW5nZXMgd2VyZSBtYWRlLmApO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW1vdmVDb3JlT3B0aW9ucyhvcHRpb25zOiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IG9wdHMgPSBPYmplY3QuYXNzaWduKHt9LCBvcHRpb25zKTtcbiAgICBpZiAodGhpcy5fb3JpZ2luYWxPcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi5uYW1lID09ICdkcnlSdW4nKSkge1xuICAgICAgZGVsZXRlIG9wdHMuZHJ5UnVuO1xuICAgIH1cbiAgICBpZiAodGhpcy5fb3JpZ2luYWxPcHRpb25zLmZpbmQob3B0aW9uID0+IG9wdGlvbi5uYW1lID09ICdmb3JjZScpKSB7XG4gICAgICBkZWxldGUgb3B0cy5mb3JjZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuX29yaWdpbmFsT3B0aW9ucy5maW5kKG9wdGlvbiA9PiBvcHRpb24ubmFtZSA9PSAnZGVidWcnKSkge1xuICAgICAgZGVsZXRlIG9wdHMuZGVidWc7XG4gICAgfVxuXG4gICAgcmV0dXJuIG9wdHM7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0T3B0aW9ucyhvcHRpb25zOiBHZXRPcHRpb25zT3B0aW9ucyk6IFByb21pc2U8R2V0T3B0aW9uc1Jlc3VsdD4ge1xuICAgIC8vIE1ha2UgYSBjb3B5LlxuICAgIHRoaXMuX29yaWdpbmFsT3B0aW9ucyA9IFsuLi50aGlzLm9wdGlvbnNdO1xuXG4gICAgY29uc3QgY29sbGVjdGlvbk5hbWUgPSBvcHRpb25zLmNvbGxlY3Rpb25OYW1lIHx8IGdldERlZmF1bHRTY2hlbWF0aWNDb2xsZWN0aW9uKCk7XG5cbiAgICBjb25zdCBjb2xsZWN0aW9uID0gZ2V0Q29sbGVjdGlvbihjb2xsZWN0aW9uTmFtZSk7XG5cbiAgICBjb25zdCBzY2hlbWF0aWMgPSBnZXRTY2hlbWF0aWMoY29sbGVjdGlvbiwgb3B0aW9ucy5zY2hlbWF0aWNOYW1lLCB0aGlzLmFsbG93UHJpdmF0ZVNjaGVtYXRpY3MpO1xuICAgIHRoaXMuX2RlQWxpYXNlZE5hbWUgPSBzY2hlbWF0aWMuZGVzY3JpcHRpb24ubmFtZTtcblxuICAgIGlmICghc2NoZW1hdGljLmRlc2NyaXB0aW9uLnNjaGVtYUpzb24pIHtcbiAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoe1xuICAgICAgICBvcHRpb25zOiBbXSxcbiAgICAgICAgYXJndW1lbnRzOiBbXSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHByb3BlcnRpZXMgPSBzY2hlbWF0aWMuZGVzY3JpcHRpb24uc2NoZW1hSnNvbi5wcm9wZXJ0aWVzO1xuICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhwcm9wZXJ0aWVzKTtcbiAgICBjb25zdCBhdmFpbGFibGVPcHRpb25zID0ga2V5c1xuICAgICAgLm1hcChrZXkgPT4gKHsgLi4ucHJvcGVydGllc1trZXldLCAuLi57IG5hbWU6IHN0cmluZ3MuZGFzaGVyaXplKGtleSkgfSB9KSlcbiAgICAgIC5tYXAob3B0ID0+IHtcbiAgICAgICAgbGV0IHR5cGU7XG4gICAgICAgIGNvbnN0IHNjaGVtYXRpY1R5cGUgPSBvcHQudHlwZTtcbiAgICAgICAgc3dpdGNoIChvcHQudHlwZSkge1xuICAgICAgICAgIGNhc2UgJ3N0cmluZyc6XG4gICAgICAgICAgICB0eXBlID0gU3RyaW5nO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICB0eXBlID0gQm9vbGVhbjtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgICB0eXBlID0gTnVtYmVyO1xuICAgICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgICAvLyBJZ25vcmUgYXJyYXlzIC8gb2JqZWN0cy5cbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgbGV0IGFsaWFzZXM6IHN0cmluZ1tdID0gW107XG4gICAgICAgIGlmIChvcHQuYWxpYXMpIHtcbiAgICAgICAgICBhbGlhc2VzID0gWy4uLmFsaWFzZXMsIG9wdC5hbGlhc107XG4gICAgICAgIH1cbiAgICAgICAgaWYgKG9wdC5hbGlhc2VzKSB7XG4gICAgICAgICAgYWxpYXNlcyA9IFsuLi5hbGlhc2VzLCAuLi5vcHQuYWxpYXNlc107XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2NoZW1hdGljRGVmYXVsdCA9IG9wdC5kZWZhdWx0O1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ub3B0LFxuICAgICAgICAgIGFsaWFzZXMsXG4gICAgICAgICAgdHlwZSxcbiAgICAgICAgICBzY2hlbWF0aWNUeXBlLFxuICAgICAgICAgIGRlZmF1bHQ6IHVuZGVmaW5lZCwgLy8gZG8gbm90IGNhcnJ5IG92ZXIgc2NoZW1hdGljcyBkZWZhdWx0c1xuICAgICAgICAgIHNjaGVtYXRpY0RlZmF1bHQsXG4gICAgICAgICAgaGlkZGVuOiBvcHQudmlzaWJsZSA9PT0gZmFsc2UsXG4gICAgICAgIH07XG4gICAgICB9KVxuICAgICAgLmZpbHRlcih4ID0+IHgpO1xuXG4gICAgY29uc3Qgc2NoZW1hdGljT3B0aW9ucyA9IGF2YWlsYWJsZU9wdGlvbnNcbiAgICAgIC5maWx0ZXIob3B0ID0+IG9wdC4kZGVmYXVsdCA9PT0gdW5kZWZpbmVkIHx8IG9wdC4kZGVmYXVsdC4kc291cmNlICE9PSAnYXJndicpO1xuXG4gICAgY29uc3Qgc2NoZW1hdGljQXJndW1lbnRzID0gYXZhaWxhYmxlT3B0aW9uc1xuICAgICAgLmZpbHRlcihvcHQgPT4gb3B0LiRkZWZhdWx0ICE9PSB1bmRlZmluZWQgJiYgb3B0LiRkZWZhdWx0LiRzb3VyY2UgPT09ICdhcmd2JylcbiAgICAgIC5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgIGlmIChhLiRkZWZhdWx0LmluZGV4ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYi4kZGVmYXVsdC5pbmRleCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhLiRkZWZhdWx0LmluZGV4ID09IGIuJGRlZmF1bHQuaW5kZXgpIHtcbiAgICAgICAgICByZXR1cm4gMDtcbiAgICAgICAgfSBlbHNlIGlmIChhLiRkZWZhdWx0LmluZGV4ID4gYi4kZGVmYXVsdC5pbmRleCkge1xuICAgICAgICAgIHJldHVybiAxO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgIG9wdGlvbnM6IHNjaGVtYXRpY09wdGlvbnMsXG4gICAgICBhcmd1bWVudHM6IHNjaGVtYXRpY0FyZ3VtZW50cyxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2xvYWRXb3Jrc3BhY2UoKSB7XG4gICAgaWYgKHRoaXMuX3dvcmtzcGFjZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCB3b3Jrc3BhY2VMb2FkZXIgPSBuZXcgV29ya3NwYWNlTG9hZGVyKHRoaXMuX2hvc3QpO1xuXG4gICAgdHJ5IHtcbiAgICAgIHdvcmtzcGFjZUxvYWRlci5sb2FkV29ya3NwYWNlKHRoaXMucHJvamVjdC5yb290KS5waXBlKHRha2UoMSkpXG4gICAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgICAgKHdvcmtzcGFjZTogZXhwZXJpbWVudGFsLndvcmtzcGFjZS5Xb3Jrc3BhY2UpID0+IHRoaXMuX3dvcmtzcGFjZSA9IHdvcmtzcGFjZSxcbiAgICAgICAgICAoZXJyOiBFcnJvcikgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmFsbG93TWlzc2luZ1dvcmtzcGFjZSkge1xuICAgICAgICAgICAgICAvLyBJZ25vcmUgbWlzc2luZyB3b3Jrc3BhY2VcbiAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBpZiAoIXRoaXMuYWxsb3dNaXNzaW5nV29ya3NwYWNlKSB7XG4gICAgICAgIC8vIElnbm9yZSBtaXNzaW5nIHdvcmtzcGFjZVxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2xlYW5EZWZhdWx0czxULCBLIGV4dGVuZHMga2V5b2YgVD4oZGVmYXVsdHM6IFQsIHVuZGVmaW5lZE9wdGlvbnM6IHN0cmluZ1tdKTogVCB7XG4gICAgKE9iamVjdC5rZXlzKGRlZmF1bHRzKSBhcyBLW10pXG4gICAgICAuZmlsdGVyKGtleSA9PiAhdW5kZWZpbmVkT3B0aW9ucy5tYXAoc3RyaW5ncy5jYW1lbGl6ZSkuaW5jbHVkZXMoa2V5IGFzIHN0cmluZykpXG4gICAgICAuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgICBkZWxldGUgZGVmYXVsdHNba2V5XTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIGRlZmF1bHRzO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkRGVmYXVsdHMoY29sbGVjdGlvbk5hbWU6IHN0cmluZywgc2NoZW1hdGljTmFtZTogc3RyaW5nLCBvcHRpb25zOiBhbnkpOiB7fSB7XG4gICAgaWYgKHRoaXMuX2RlQWxpYXNlZE5hbWUpIHtcbiAgICAgIHNjaGVtYXRpY05hbWUgPSB0aGlzLl9kZUFsaWFzZWROYW1lO1xuICAgIH1cblxuICAgIGNvbnN0IHByb2plY3ROYW1lID0gb3B0aW9ucy5wcm9qZWN0O1xuICAgIGNvbnN0IGRlZmF1bHRzID0gZ2V0U2NoZW1hdGljRGVmYXVsdHMoY29sbGVjdGlvbk5hbWUsIHNjaGVtYXRpY05hbWUsIHByb2plY3ROYW1lKTtcblxuICAgIC8vIEdldCBsaXN0IG9mIGFsbCB1bmRlZmluZWQgb3B0aW9ucy5cbiAgICBjb25zdCB1bmRlZmluZWRPcHRpb25zID0gdGhpcy5vcHRpb25zXG4gICAgICAuZmlsdGVyKG8gPT4gb3B0aW9uc1tvLm5hbWVdID09PSB1bmRlZmluZWQpXG4gICAgICAubWFwKG8gPT4gby5uYW1lKTtcblxuICAgIC8vIERlbGV0ZSBhbnkgZGVmYXVsdCB0aGF0IGlzIG5vdCB1bmRlZmluZWQuXG4gICAgdGhpcy5fY2xlYW5EZWZhdWx0cyhkZWZhdWx0cywgdW5kZWZpbmVkT3B0aW9ucyk7XG5cbiAgICByZXR1cm4gZGVmYXVsdHM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -14,7 +14,7 @@ export declare class WorkspaceLoader {
|
|
|
14
14
|
constructor(_host: virtualFs.Host);
|
|
15
15
|
loadGlobalWorkspace(): Observable<experimental.workspace.Workspace | null>;
|
|
16
16
|
loadWorkspace(projectPath?: string): Observable<experimental.workspace.Workspace | null>;
|
|
17
|
-
private _getProjectWorkspaceFilePath
|
|
18
|
-
private _getGlobalWorkspaceFilePath
|
|
19
|
-
private _loadWorkspaceFromPath
|
|
17
|
+
private _getProjectWorkspaceFilePath;
|
|
18
|
+
private _getGlobalWorkspaceFilePath;
|
|
19
|
+
private _loadWorkspaceFromPath;
|
|
20
20
|
}
|
|
@@ -68,4 +68,4 @@ class WorkspaceLoader {
|
|
|
68
68
|
}
|
|
69
69
|
}
|
|
70
70
|
exports.WorkspaceLoader = WorkspaceLoader;
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLWxvYWRlci5qcyIsInNvdXJjZVJvb3QiOiIuLyIsInNvdXJjZXMiOlsicGFja2FnZXMvYW5ndWxhci9jbGkvbW9kZWxzL3dvcmtzcGFjZS1sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7R0FNRzs7QUFFSCwrQ0FROEI7QUFDOUIseUJBQXlCO0FBQ3pCLDJCQUE2QjtBQUM3QiwrQkFBc0M7QUFDdEMsOENBQWdEO0FBQ2hELGtEQUE4QztBQUc5Qyw0RUFBNEU7QUFDNUU7SUFPRSxZQUFvQixLQUFxQjtRQUFyQixVQUFLLEdBQUwsS0FBSyxDQUFnQjtRQU5qQyx1QkFBa0IsR0FBRyxJQUFJLEdBQUcsRUFBNEMsQ0FBQztRQUNqRixpQ0FBaUM7UUFDekIscUJBQWdCLEdBQUc7WUFDekIsZ0JBQVMsQ0FBQyxlQUFlLENBQUM7WUFDMUIsZ0JBQVMsQ0FBQyxjQUFjLENBQUM7U0FDMUIsQ0FBQztJQUMyQyxDQUFDO0lBRTlDLG1CQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQywyQkFBMkIsRUFBRSxDQUFDLElBQUksQ0FDNUMscUJBQVMsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FDbkYsQ0FBQztJQUNKLENBQUM7SUFFRCxhQUFhLENBQUMsV0FBb0I7UUFDaEMsT0FBTyxJQUFJLENBQUMsNEJBQTRCLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUN4RCxxQkFBUyxDQUFDLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUNuRixDQUFDO0lBQ0osQ0FBQztJQUVELDZDQUE2QztJQUNyQyw0QkFBNEIsQ0FBQyxXQUFvQjtRQUN2RCw4RUFBOEU7UUFDOUUseURBQXlEO1FBQ3pELE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxXQUFXLElBQUksZ0JBQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLENBQUM7ZUFDaEYsZ0JBQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO2VBQzVDLGdCQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTlDLElBQUksaUJBQWlCLEVBQUU7WUFDckIsT0FBTyxTQUFFLENBQUMsZ0JBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7U0FDekM7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsMkRBQTJELENBQUMsQ0FBQztTQUM5RTtJQUNILENBQUM7SUFFRCw2Q0FBNkM7SUFDckMsMkJBQTJCO1FBQ2pDLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQzVDLE1BQU0saUJBQWlCLEdBQUcsV0FBSSxDQUFDLGdCQUFTLENBQUMsWUFBTyxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQztZQUUvRCxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsRUFBRTtnQkFDcEMsT0FBTyxTQUFFLENBQUMsZ0JBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7YUFDekM7U0FDRjtRQUVELE9BQU8sU0FBRSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xCLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxhQUEwQjtRQUN2RCxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQ2xCLE9BQU8sU0FBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pCO1FBRUQsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQzlDLE9BQU8sU0FBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7U0FDL0Q7UUFFRCxNQUFNLGFBQWEsR0FBRyxjQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0MsTUFBTSxpQkFBaUIsR0FBRyxlQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDbEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxtQkFBWSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVsRixPQUFPLFNBQVMsQ0FBQyxxQkFBcUIsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksQ0FDNUQsZUFBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FDeEUsQ0FBQztJQUNKLENBQUM7Q0FDRjtBQWxFRCwwQ0FrRUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7XG4gIFBhdGgsXG4gIGJhc2VuYW1lLFxuICBkaXJuYW1lLFxuICBleHBlcmltZW50YWwsXG4gIGpvaW4sXG4gIG5vcm1hbGl6ZSxcbiAgdmlydHVhbEZzLFxufSBmcm9tICdAYW5ndWxhci1kZXZraXQvY29yZSc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgeyBob21lZGlyIH0gZnJvbSAnb3MnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbmNhdE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZmluZFVwIH0gZnJvbSAnLi4vdXRpbGl0aWVzL2ZpbmQtdXAnO1xuXG5cbi8vIFRPRE86IGVycm9yIG91dCBpbnN0ZWFkIG9mIHJldHVybmluZyBudWxsIHdoZW4gd29ya3NwYWNlIGNhbm5vdCBiZSBmb3VuZC5cbmV4cG9ydCBjbGFzcyBXb3Jrc3BhY2VMb2FkZXIge1xuICBwcml2YXRlIF93b3Jrc3BhY2VDYWNoZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBleHBlcmltZW50YWwud29ya3NwYWNlLldvcmtzcGFjZT4oKTtcbiAgLy8gVE9ETzogYWRkIHJlbWFpbmluZyBmYWxsYmFja3MuXG4gIHByaXZhdGUgX2NvbmZpZ0ZpbGVOYW1lcyA9IFtcbiAgICBub3JtYWxpemUoJy5hbmd1bGFyLmpzb24nKSxcbiAgICBub3JtYWxpemUoJ2FuZ3VsYXIuanNvbicpLFxuICBdO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9ob3N0OiB2aXJ0dWFsRnMuSG9zdCkgeyB9XG5cbiAgbG9hZEdsb2JhbFdvcmtzcGFjZSgpOiBPYnNlcnZhYmxlPGV4cGVyaW1lbnRhbC53b3Jrc3BhY2UuV29ya3NwYWNlIHwgbnVsbD4ge1xuICAgIHJldHVybiB0aGlzLl9nZXRHbG9iYWxXb3Jrc3BhY2VGaWxlUGF0aCgpLnBpcGUoXG4gICAgICBjb25jYXRNYXAoZ2xvYmFsV29ya3NwYWNlUGF0aCA9PiB0aGlzLl9sb2FkV29ya3NwYWNlRnJvbVBhdGgoZ2xvYmFsV29ya3NwYWNlUGF0aCkpLFxuICAgICk7XG4gIH1cblxuICBsb2FkV29ya3NwYWNlKHByb2plY3RQYXRoPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxleHBlcmltZW50YWwud29ya3NwYWNlLldvcmtzcGFjZSB8IG51bGw+IHtcbiAgICByZXR1cm4gdGhpcy5fZ2V0UHJvamVjdFdvcmtzcGFjZUZpbGVQYXRoKHByb2plY3RQYXRoKS5waXBlKFxuICAgICAgY29uY2F0TWFwKGdsb2JhbFdvcmtzcGFjZVBhdGggPT4gdGhpcy5fbG9hZFdvcmtzcGFjZUZyb21QYXRoKGdsb2JhbFdvcmtzcGFjZVBhdGgpKSxcbiAgICApO1xuICB9XG5cbiAgLy8gVE9ETzogZG8gdGhpcyB3aXRoIHRoZSBob3N0IGluc3RlYWQgb2YgZnMuXG4gIHByaXZhdGUgX2dldFByb2plY3RXb3Jrc3BhY2VGaWxlUGF0aChwcm9qZWN0UGF0aD86IHN0cmluZyk6IE9ic2VydmFibGU8UGF0aCB8IG51bGw+IHtcbiAgICAvLyBGaW5kIHRoZSB3b3Jrc3BhY2UgZmlsZSwgZWl0aGVyIHdoZXJlIHNwZWNpZmllZCwgaW4gdGhlIEFuZ3VsYXIgQ0xJIHByb2plY3RcbiAgICAvLyAoaWYgaXQncyBpbiBub2RlX21vZHVsZXMpIG9yIGZyb20gdGhlIGN1cnJlbnQgcHJvY2Vzcy5cbiAgICBjb25zdCB3b3Jrc3BhY2VGaWxlUGF0aCA9IChwcm9qZWN0UGF0aCAmJiBmaW5kVXAodGhpcy5fY29uZmlnRmlsZU5hbWVzLCBwcm9qZWN0UGF0aCkpXG4gICAgICB8fCBmaW5kVXAodGhpcy5fY29uZmlnRmlsZU5hbWVzLCBwcm9jZXNzLmN3ZCgpKVxuICAgICAgfHwgZmluZFVwKHRoaXMuX2NvbmZpZ0ZpbGVOYW1lcywgX19kaXJuYW1lKTtcblxuICAgIGlmICh3b3Jrc3BhY2VGaWxlUGF0aCkge1xuICAgICAgcmV0dXJuIG9mKG5vcm1hbGl6ZSh3b3Jrc3BhY2VGaWxlUGF0aCkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYExvY2FsIHdvcmtzcGFjZSBmaWxlICgnYW5ndWxhci5qc29uJykgY291bGQgbm90IGJlIGZvdW5kLmApO1xuICAgIH1cbiAgfVxuXG4gIC8vIFRPRE86IGRvIHRoaXMgd2l0aCB0aGUgaG9zdCBpbnN0ZWFkIG9mIGZzLlxuICBwcml2YXRlIF9nZXRHbG9iYWxXb3Jrc3BhY2VGaWxlUGF0aCgpOiBPYnNlcnZhYmxlPFBhdGggfCBudWxsPiB7XG4gICAgZm9yIChjb25zdCBmaWxlTmFtZSBvZiB0aGlzLl9jb25maWdGaWxlTmFtZXMpIHtcbiAgICAgIGNvbnN0IHdvcmtzcGFjZUZpbGVQYXRoID0gam9pbihub3JtYWxpemUoaG9tZWRpcigpKSwgZmlsZU5hbWUpO1xuXG4gICAgICBpZiAoZnMuZXhpc3RzU3luYyh3b3Jrc3BhY2VGaWxlUGF0aCkpIHtcbiAgICAgICAgcmV0dXJuIG9mKG5vcm1hbGl6ZSh3b3Jrc3BhY2VGaWxlUGF0aCkpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBvZihudWxsKTtcbiAgfVxuXG4gIHByaXZhdGUgX2xvYWRXb3Jrc3BhY2VGcm9tUGF0aCh3b3Jrc3BhY2VQYXRoOiBQYXRoIHwgbnVsbCkge1xuICAgIGlmICghd29ya3NwYWNlUGF0aCkge1xuICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLl93b3Jrc3BhY2VDYWNoZU1hcC5oYXMod29ya3NwYWNlUGF0aCkpIHtcbiAgICAgIHJldHVybiBvZih0aGlzLl93b3Jrc3BhY2VDYWNoZU1hcC5nZXQod29ya3NwYWNlUGF0aCkgfHwgbnVsbCk7XG4gICAgfVxuXG4gICAgY29uc3Qgd29ya3NwYWNlUm9vdCA9IGRpcm5hbWUod29ya3NwYWNlUGF0aCk7XG4gICAgY29uc3Qgd29ya3NwYWNlRmlsZU5hbWUgPSBiYXNlbmFtZSh3b3Jrc3BhY2VQYXRoKTtcbiAgICBjb25zdCB3b3Jrc3BhY2UgPSBuZXcgZXhwZXJpbWVudGFsLndvcmtzcGFjZS5Xb3Jrc3BhY2Uod29ya3NwYWNlUm9vdCwgdGhpcy5faG9zdCk7XG5cbiAgICByZXR1cm4gd29ya3NwYWNlLmxvYWRXb3Jrc3BhY2VGcm9tSG9zdCh3b3Jrc3BhY2VGaWxlTmFtZSkucGlwZShcbiAgICAgIHRhcCh3b3Jrc3BhY2UgPT4gdGhpcy5fd29ya3NwYWNlQ2FjaGVNYXAuc2V0KHdvcmtzcGFjZVBhdGgsIHdvcmtzcGFjZSkpLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@angular/cli",
|
|
3
|
-
"version": "6.1.
|
|
3
|
+
"version": "6.1.5",
|
|
4
4
|
"description": "CLI tool for Angular",
|
|
5
5
|
"main": "lib/cli/index.js",
|
|
6
6
|
"trackingCode": "UA-8594346-19",
|
|
@@ -30,11 +30,11 @@
|
|
|
30
30
|
},
|
|
31
31
|
"homepage": "https://github.com/angular/angular-cli",
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"@angular-devkit/architect": "0.7.
|
|
34
|
-
"@angular-devkit/core": "0.7.
|
|
35
|
-
"@angular-devkit/schematics": "0.7.
|
|
36
|
-
"@schematics/angular": "0.7.
|
|
37
|
-
"@schematics/update": "0.7.
|
|
33
|
+
"@angular-devkit/architect": "0.7.5",
|
|
34
|
+
"@angular-devkit/core": "0.7.5",
|
|
35
|
+
"@angular-devkit/schematics": "0.7.5",
|
|
36
|
+
"@schematics/angular": "0.7.5",
|
|
37
|
+
"@schematics/update": "0.7.5",
|
|
38
38
|
"opn": "^5.3.0",
|
|
39
39
|
"rxjs": "^6.0.0",
|
|
40
40
|
"semver": "^5.1.0",
|
package/tasks/npm-install.js
CHANGED
|
@@ -73,4 +73,4 @@ function default_1(packageName, logger, packageManager, projectRoot, save = true
|
|
|
73
73
|
});
|
|
74
74
|
}
|
|
75
75
|
exports.default = default_1;
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnBtLWluc3RhbGwuanMiLCJzb3VyY2VSb290IjoiLi8iLCJzb3VyY2VzIjpbInBhY2thZ2VzL2FuZ3VsYXIvY2xpL3Rhc2tzL25wbS1pbnN0YWxsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7O0dBTUc7Ozs7Ozs7Ozs7QUFFSCwrQ0FBeUQ7QUFDekQsb0RBQTZFO0FBQzdFLGlEQUFzQztBQVN0QyxtQkFBK0IsV0FBbUIsRUFDbkIsTUFBc0IsRUFDdEIsY0FBc0IsRUFDdEIsV0FBbUIsRUFDbkIsSUFBSSxHQUFHLElBQUk7O1FBQ3hDLE1BQU0sV0FBVyxHQUFhLEVBQUUsQ0FBQztRQUNqQyxRQUFRLGNBQWMsRUFBRTtZQUN0QixLQUFLLE1BQU0sQ0FBQztZQUNaLEtBQUssS0FBSztnQkFDUixXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsQ0FBQztnQkFDdkMsTUFBTTtZQUVSLEtBQUssTUFBTTtnQkFDVCxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN4QixNQUFNO1lBRVI7Z0JBQ0UsY0FBYyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsV0FBVyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsU0FBUyxDQUFDLENBQUM7Z0JBQ3ZDLE1BQU07U0FDVDtRQUVELE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBUSxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsY0FBYyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXRGLElBQUksV0FBVyxFQUFFO1lBQ2YsSUFBSTtnQkFDRix3RUFBd0U7Z0JBQ3hFLDhFQUE4RTtnQkFDOUUsY0FBTyxDQUFDLFdBQVcsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7Z0JBRWpFLE9BQU87YUFDUjtZQUFDLE9BQU8sQ0FBQyxFQUFFO2dCQUNWLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSw4QkFBdUIsQ0FBQyxFQUFFO29CQUMzQyxNQUFNLENBQUMsQ0FBQztpQkFDVDthQUNGO1lBQ0QsV0FBVyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMvQjtRQUVELElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDVCxXQUFXLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQy9CO1FBQ0QsTUFBTSxjQUFjLEdBQUc7WUFDckIsS0FBSyxFQUFFLFNBQVM7WUFDaEIsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDO1FBRUYsTUFBTSxJQUFJLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUNwQyxxQkFBSyxDQUFDLGNBQWMsRUFBRSxXQUFXLEVBQUUsY0FBYyxDQUFDO2lCQUMvQyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBWSxFQUFFLEVBQUU7Z0JBQzVCLElBQUksSUFBSSxLQUFLLENBQUMsRUFBRTtvQkFDZCxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQVEsQ0FBQyxLQUFLLENBQUMsc0NBQXNDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDckYsT0FBTyxFQUFFLENBQUM7aUJBQ1g7cUJBQU07b0JBQ0wsTUFBTSxPQUFPLEdBQUcsb0NBQW9DLENBQUM7b0JBQ3JELE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBUSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO29CQUNuQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7aUJBQ2pCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FBQTtBQTVERCw0QkE0REMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7IGxvZ2dpbmcsIHRlcm1pbmFsIH0gZnJvbSAnQGFuZ3VsYXItZGV2a2l0L2NvcmUnO1xuaW1wb3J0IHsgTW9kdWxlTm90Rm91bmRFeGNlcHRpb24sIHJlc29sdmUgfSBmcm9tICdAYW5ndWxhci1kZXZraXQvY29yZS9ub2RlJztcbmltcG9ydCB7IHNwYXduIH0gZnJvbSAnY2hpbGRfcHJvY2Vzcyc7XG5cblxuZXhwb3J0IHR5cGUgTnBtSW5zdGFsbCA9IChwYWNrYWdlTmFtZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXI6IGxvZ2dpbmcuTG9nZ2VyLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwYWNrYWdlTWFuYWdlcjogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9qZWN0Um9vdDogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzYXZlPzogYm9vbGVhbikgPT4gUHJvbWlzZTx2b2lkPjtcblxuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gKHBhY2thZ2VOYW1lOiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiBsb2dnaW5nLkxvZ2dlcixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYWNrYWdlTWFuYWdlcjogc3RyaW5nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb2plY3RSb290OiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2F2ZSA9IHRydWUpIHtcbiAgY29uc3QgaW5zdGFsbEFyZ3M6IHN0cmluZ1tdID0gW107XG4gIHN3aXRjaCAocGFja2FnZU1hbmFnZXIpIHtcbiAgICBjYXNlICdjbnBtJzpcbiAgICBjYXNlICducG0nOlxuICAgICAgaW5zdGFsbEFyZ3MucHVzaCgnaW5zdGFsbCcsICctLXF1aWV0Jyk7XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ3lhcm4nOlxuICAgICAgaW5zdGFsbEFyZ3MucHVzaCgnYWRkJyk7XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICBwYWNrYWdlTWFuYWdlciA9ICducG0nO1xuICAgICAgaW5zdGFsbEFyZ3MucHVzaCgnaW5zdGFsbCcsICctLXF1aWV0Jyk7XG4gICAgICBicmVhaztcbiAgfVxuXG4gIGxvZ2dlci5pbmZvKHRlcm1pbmFsLmdyZWVuKGBJbnN0YWxsaW5nIHBhY2thZ2VzIGZvciB0b29saW5nIHZpYSAke3BhY2thZ2VNYW5hZ2VyfS5gKSk7XG5cbiAgaWYgKHBhY2thZ2VOYW1lKSB7XG4gICAgdHJ5IHtcbiAgICAgIC8vIFZlcmlmeSBpZiB3ZSBuZWVkIHRvIGluc3RhbGwgdGhlIHBhY2thZ2UgKGl0IG1pZ2h0IGFscmVhZHkgYmUgdGhlcmUpLlxuICAgICAgLy8gSWYgaXQncyBhdmFpbGFibGUgYW5kIHdlIHNob3VsZG4ndCBzYXZlLCBzaW1wbHkgcmV0dXJuLiBOb3RoaW5nIHRvIGJlIGRvbmUuXG4gICAgICByZXNvbHZlKHBhY2thZ2VOYW1lLCB7IGNoZWNrTG9jYWw6IHRydWUsIGJhc2VkaXI6IHByb2plY3RSb290IH0pO1xuXG4gICAgICByZXR1cm47XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCEoZSBpbnN0YW5jZW9mIE1vZHVsZU5vdEZvdW5kRXhjZXB0aW9uKSkge1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgICBpbnN0YWxsQXJncy5wdXNoKHBhY2thZ2VOYW1lKTtcbiAgfVxuXG4gIGlmICghc2F2ZSkge1xuICAgIGluc3RhbGxBcmdzLnB1c2goJy0tbm8tc2F2ZScpO1xuICB9XG4gIGNvbnN0IGluc3RhbGxPcHRpb25zID0ge1xuICAgIHN0ZGlvOiAnaW5oZXJpdCcsXG4gICAgc2hlbGw6IHRydWUsXG4gIH07XG5cbiAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgIHNwYXduKHBhY2thZ2VNYW5hZ2VyLCBpbnN0YWxsQXJncywgaW5zdGFsbE9wdGlvbnMpXG4gICAgICAub24oJ2Nsb3NlJywgKGNvZGU6IG51bWJlcikgPT4ge1xuICAgICAgICBpZiAoY29kZSA9PT0gMCkge1xuICAgICAgICAgIGxvZ2dlci5pbmZvKHRlcm1pbmFsLmdyZWVuKGBJbnN0YWxsZWQgcGFja2FnZXMgZm9yIHRvb2xpbmcgdmlhICR7cGFja2FnZU1hbmFnZXJ9LmApKTtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgbWVzc2FnZSA9ICdQYWNrYWdlIGluc3RhbGwgZmFpbGVkLCBzZWUgYWJvdmUuJztcbiAgICAgICAgICBsb2dnZXIuaW5mbyh0ZXJtaW5hbC5yZWQobWVzc2FnZSkpO1xuICAgICAgICAgIHJlamVjdChtZXNzYWdlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH0pO1xufVxuIl19
|
package/upgrade/version.d.ts
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright Google Inc. All Rights Reserved.
|
|
4
|
+
*
|
|
5
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
6
|
+
* found in the LICENSE file at https://angular.io/license
|
|
7
|
+
*/
|
|
1
8
|
import { SemVer } from 'semver';
|
|
2
9
|
export declare class Version {
|
|
3
10
|
private _version;
|