@cdktn/cli-core 0.23.2 → 0.23.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/lib/cdktf-config.js +18 -8
- package/build/lib/cdktf-project.js +3 -3
- package/build/lib/cdktf-stack.d.ts +0 -1
- package/build/lib/cdktf-stack.d.ts.map +1 -1
- package/build/lib/convert.js +19 -10
- package/build/lib/dependencies/dependency-manager.d.ts.map +1 -1
- package/build/lib/dependencies/dependency-manager.js +19 -9
- package/build/lib/dependencies/package-manager.js +23 -13
- package/build/lib/dependencies/prebuilt-providers.js +25 -16
- package/build/lib/dependencies/registry-api.js +19 -10
- package/build/lib/dependencies/version-constraints.js +20 -11
- package/build/lib/error-reporting.js +22 -13
- package/build/lib/errors.d.ts.map +1 -1
- package/build/lib/execution-logs.js +2 -3
- package/build/lib/get.js +21 -11
- package/build/lib/helpers/stack-helpers.js +8 -9
- package/build/lib/init.d.ts +1 -1
- package/build/lib/init.d.ts.map +1 -1
- package/build/lib/init.js +42 -14
- package/build/lib/local-provider-constraints.js +18 -8
- package/build/lib/models/deploy-machine.d.ts.map +1 -1
- package/build/lib/models/deploy-machine.js +9 -9
- package/build/lib/models/interactive-process.js +2 -3
- package/build/lib/models/schema.js +18 -8
- package/build/lib/models/terraform-cli.d.ts +0 -1
- package/build/lib/models/terraform-cli.d.ts.map +1 -1
- package/build/lib/models/terraform-cli.js +21 -11
- package/build/lib/models/terraform.js +3 -3
- package/build/lib/output.d.ts.map +1 -1
- package/build/lib/output.js +21 -11
- package/build/lib/provider-add.js +2 -3
- package/build/lib/server/terraform-logs.js +2 -3
- package/build/lib/synth-stack.d.ts +0 -1
- package/build/lib/synth-stack.d.ts.map +1 -1
- package/build/lib/synth-stack.js +18 -8
- package/build/lib/synth.js +19 -10
- package/build/lib/terraform-json.js +18 -8
- package/build/lib/watch.d.ts +0 -1
- package/build/lib/watch.d.ts.map +1 -1
- package/build/lib/watch.js +19 -10
- package/package.json +8 -8
- package/templates/csharp/TestProgram.cs +1 -1
- package/templates/csharp/help +7 -7
- package/templates/go/help +1 -1
- package/templates/go/main_test.go +1 -1
- package/templates/java/help +2 -2
- package/templates/java/src/test/java/com/company/app/MainTest.java +1 -1
- package/templates/python/help +1 -1
- package/templates/python/main-test.py +1 -1
- package/templates/python-pip/help +1 -1
- package/templates/python-pip/main-test.py +1 -1
- package/templates/typescript/__tests__/main-test.ts +1 -1
|
@@ -5,7 +5,13 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
6
6
|
};
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.
|
|
8
|
+
exports.getSingleStack = getSingleStack;
|
|
9
|
+
exports.getMultipleStacks = getMultipleStacks;
|
|
10
|
+
exports.getStackWithNoUnmetDependencies = getStackWithNoUnmetDependencies;
|
|
11
|
+
exports.findAllNestedDependantStacks = findAllNestedDependantStacks;
|
|
12
|
+
exports.getStackWithNoUnmetDependants = getStackWithNoUnmetDependants;
|
|
13
|
+
exports.checkIfAllDependantsAreIncluded = checkIfAllDependantsAreIncluded;
|
|
14
|
+
exports.checkIfAllDependenciesAreIncluded = checkIfAllDependenciesAreIncluded;
|
|
9
15
|
const commons_1 = require("@cdktn/commons");
|
|
10
16
|
const minimatch_1 = __importDefault(require("minimatch"));
|
|
11
17
|
function getSingleStack(stacks, stackName, targetAction) {
|
|
@@ -26,7 +32,6 @@ function getSingleStack(stacks, stackName, targetAction) {
|
|
|
26
32
|
.map((s) => s.name)
|
|
27
33
|
.join(", ")} `);
|
|
28
34
|
}
|
|
29
|
-
exports.getSingleStack = getSingleStack;
|
|
30
35
|
function getMultipleStacks(stacks, patterns, targetAction) {
|
|
31
36
|
if (!patterns || !patterns.length) {
|
|
32
37
|
if (stacks.length === 1) {
|
|
@@ -44,7 +49,6 @@ function getMultipleStacks(stacks, patterns, targetAction) {
|
|
|
44
49
|
return matchingStacks;
|
|
45
50
|
});
|
|
46
51
|
}
|
|
47
|
-
exports.getMultipleStacks = getMultipleStacks;
|
|
48
52
|
// Returns the first stack that has no unmet dependencies
|
|
49
53
|
// An unmet dependency is a dependency that has not been deployed yet
|
|
50
54
|
// If there is no unfinished stack, returns undefined
|
|
@@ -75,7 +79,6 @@ async function getStackWithNoUnmetDependencies(stackExecutors) {
|
|
|
75
79
|
await (0, commons_1.ensureAllSettledBeforeThrowing)(Promise.race(stackExecutionPromises), stackExecutionPromises);
|
|
76
80
|
return await getStackWithNoUnmetDependencies(stackExecutors);
|
|
77
81
|
}
|
|
78
|
-
exports.getStackWithNoUnmetDependencies = getStackWithNoUnmetDependencies;
|
|
79
82
|
function findAllDependantStacks(stackExecutors, stackName) {
|
|
80
83
|
return stackExecutors.filter((innerExecutor) => innerExecutor.stack.dependencies.includes(stackName));
|
|
81
84
|
}
|
|
@@ -90,7 +93,6 @@ function findAllNestedDependantStacks(stackExecutors, stackName, knownDependantS
|
|
|
90
93
|
});
|
|
91
94
|
return stackExecutors.filter((executor) => knownDependantStackNames.has(executor.stack.name));
|
|
92
95
|
}
|
|
93
|
-
exports.findAllNestedDependantStacks = findAllNestedDependantStacks;
|
|
94
96
|
// Returns the first stack that has no dependents that need to be destroyed first
|
|
95
97
|
async function getStackWithNoUnmetDependants(stackExecutors) {
|
|
96
98
|
commons_1.logger.debug("Checking for stacks with unmet dependants");
|
|
@@ -118,7 +120,6 @@ async function getStackWithNoUnmetDependants(stackExecutors) {
|
|
|
118
120
|
await Promise.race(stackExecutionPromises);
|
|
119
121
|
return await getStackWithNoUnmetDependants(stackExecutors);
|
|
120
122
|
}
|
|
121
|
-
exports.getStackWithNoUnmetDependants = getStackWithNoUnmetDependants;
|
|
122
123
|
// Throws an error if there is a dependant stack that is not included
|
|
123
124
|
function checkIfAllDependantsAreIncluded(stacksToRun, allStacks) {
|
|
124
125
|
const allDependants = new Set();
|
|
@@ -132,7 +133,6 @@ function checkIfAllDependantsAreIncluded(stacksToRun, allStacks) {
|
|
|
132
133
|
throw commons_1.Errors.Usage(`The following dependant stacks are not included in the stacks to run: ${missingDependants.join(", ")}. Either add them or add the --ignore-missing-stack-dependencies flag.`);
|
|
133
134
|
}
|
|
134
135
|
}
|
|
135
|
-
exports.checkIfAllDependantsAreIncluded = checkIfAllDependantsAreIncluded;
|
|
136
136
|
/**
|
|
137
137
|
Throws an error if there is a dependency that is not included
|
|
138
138
|
Cycles are detected on dependency creation at synthesis time
|
|
@@ -151,5 +151,4 @@ function checkIfAllDependenciesAreIncluded(stacksToRun) {
|
|
|
151
151
|
throw commons_1.Errors.Usage(`The following dependencies are not included in the stacks to run: ${missingDependencies.join(", ")}. Either add them or add the --ignore-missing-stack-dependencies flag.`);
|
|
152
152
|
}
|
|
153
153
|
}
|
|
154
|
-
exports.checkIfAllDependenciesAreIncluded = checkIfAllDependenciesAreIncluded;
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2staGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaGVscGVycy9zdGFjay1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOzs7Ozs7QUFFbkMsNENBQWdGO0FBQ2hGLDBEQUFrQztBQUlsQyxTQUFnQixjQUFjLENBQzVCLE1BQTBCLEVBQzFCLFNBQWtCLEVBQ2xCLFlBQXFCO0lBRXJCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE1BQU0sZ0JBQU0sQ0FBQyxRQUFRLENBQ25CLHlEQUF5RCxDQUMxRCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksU0FBUyxFQUFFLENBQUM7UUFDZCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE1BQU0sZ0JBQU0sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4QixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxnQkFBTSxDQUFDLEtBQUssQ0FDaEIsdUVBQ0UsWUFBWSxJQUFJLFFBQ2xCLHNDQUFzQyxNQUFNO1NBQ3pDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDakIsQ0FBQztBQUNKLENBQUM7QUEvQkQsd0NBK0JDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQy9CLE1B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eUVBQXlFLGlCQUFpQixDQUFDLElBQUksQ0FDN0YsSUFBSSxDQUNMLHdFQUF3RSxDQUMxRSxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUM7QUF4QkQsMEVBd0JDO0FBRUQ7Ozs7O0VBS0U7QUFDRixTQUFnQixpQ0FBaUMsQ0FDL0MsV0FBK0I7SUFFL0IsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUMxQyxXQUFXO1NBQ1IsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO1NBQ2xDLElBQUksRUFBRTtTQUNOLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBRTVELE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRCxNQUFNLG1CQUFtQixHQUFHLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxNQUFNLENBQ3JELENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQ2pELENBQUM7SUFFRixJQUFJLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLGdCQUFNLENBQUMsS0FBSyxDQUNoQixxRUFBcUUsbUJBQW1CLENBQUMsSUFBSSxDQUMzRixJQUFJLENBQ0wsd0VBQXdFLENBQzFFLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQztBQXJCRCw4RUFxQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuXG5pbXBvcnQgeyBlbnN1cmVBbGxTZXR0bGVkQmVmb3JlVGhyb3dpbmcsIEVycm9ycywgbG9nZ2VyIH0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5pbXBvcnQgbWluaW1hdGNoIGZyb20gXCJtaW5pbWF0Y2hcIjtcbmltcG9ydCB7IENka3RmU3RhY2sgfSBmcm9tIFwiLi4vY2RrdGYtc3RhY2tcIjtcbmltcG9ydCB7IFN5bnRoZXNpemVkU3RhY2sgfSBmcm9tIFwiLi4vc3ludGgtc3RhY2tcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFNpbmdsZVN0YWNrKFxuICBzdGFja3M6IFN5bnRoZXNpemVkU3RhY2tbXSxcbiAgc3RhY2tOYW1lPzogc3RyaW5nLFxuICB0YXJnZXRBY3Rpb24/OiBzdHJpbmcsXG4pIHtcbiAgaWYgKCFzdGFja3MpIHtcbiAgICB0aHJvdyBFcnJvcnMuSW50ZXJuYWwoXG4gICAgICBcIlRyeWluZyB0byBhY2Nlc3MgYSBzdGFjayBiZWZvcmUgaXQgaGFzIGJlZW4gc3ludGhlc2l6ZWRcIixcbiAgICApO1xuICB9XG5cbiAgaWYgKHN0YWNrTmFtZSkge1xuICAgIGNvbnN0IHN0YWNrID0gc3RhY2tzLmZpbmQoKHMpID0+IHMubmFtZSA9PT0gc3RhY2tOYW1lKTtcbiAgICBpZiAoIXN0YWNrKSB7XG4gICAgICB0aHJvdyBFcnJvcnMuVXNhZ2UoXCJDb3VsZCBub3QgZmluZCBzdGFjazogXCIgKyBzdGFja05hbWUpO1xuICAgIH1cblxuICAgIHJldHVybiBzdGFjaztcbiAgfVxuXG4gIGlmIChzdGFja3MubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIHN0YWNrc1swXTtcbiAgfVxuXG4gIHRocm93IEVycm9ycy5Vc2FnZShcbiAgICBgRm91bmQgbW9yZSB0aGFuIG9uZSBzdGFjaywgcGxlYXNlIHNwZWNpZnkgYSB0YXJnZXQgc3RhY2suIFJ1biBjZGt0biAke1xuICAgICAgdGFyZ2V0QWN0aW9uIHx8IFwiPHZlcmI+XCJcbiAgICB9IDxzdGFjaz4gd2l0aCBvbmUgb2YgdGhlc2Ugc3RhY2tzOiAke3N0YWNrc1xuICAgICAgLm1hcCgocykgPT4gcy5uYW1lKVxuICAgICAgLmpvaW4oXCIsIFwiKX0gYCxcbiAgKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE11bHRpcGxlU3RhY2tzKFxuICBzdGFja3M6IFN5bnRoZXNpemVkU3RhY2tbXSxcbiAgcGF0dGVybnM/OiBzdHJpbmdbXSxcbiAgdGFyZ2V0QWN0aW9uPzogc3RyaW5nLFxuKSB7XG4gIGlmICghcGF0dGVybnMgfHwgIXBhdHRlcm5zLmxlbmd0aCkge1xuICAgIGlmIChzdGFja3MubGVuZ3RoID09PSAxKSB7XG4gICAgICByZXR1cm4gW3N0YWNrc1swXV07XG4gICAgfVxuICAgIHRocm93IEVycm9ycy5Vc2FnZShcbiAgICAgIGBGb3VuZCBtb3JlIHRoYW4gb25lIHN0YWNrLCBwbGVhc2Ugc3BlY2lmeSBhIHRhcmdldCBzdGFjay4gUnVuIGNka3RuICR7XG4gICAgICAgIHRhcmdldEFjdGlvbiB8fCBcIjx2ZXJiPlwiXG4gICAgICB9IDxzdGFjaz4gd2l0aCBvbmUgb2YgdGhlc2Ugc3RhY2tzOiAke3N0YWNrc1xuICAgICAgICAubWFwKChzKSA9PiBzLm5hbWUpXG4gICAgICAgIC5qb2luKFwiLCBcIil9IGAsXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBwYXR0ZXJucy5mbGF0TWFwKChwYXR0ZXJuKSA9PiB7XG4gICAgY29uc3QgbWF0Y2hpbmdTdGFja3MgPSBzdGFja3MuZmlsdGVyKChzdGFjaykgPT5cbiAgICAgIG1pbmltYXRjaChzdGFjay5uYW1lLCBwYXR0ZXJuKSxcbiAgICApO1xuXG4gICAgaWYgKG1hdGNoaW5nU3RhY2tzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgRXJyb3JzLlVzYWdlKGBDb3VsZCBub3QgZmluZCBzdGFjayBmb3IgcGF0dGVybiAnJHtwYXR0ZXJufSdgKTtcbiAgICB9XG5cbiAgICByZXR1cm4gbWF0Y2hpbmdTdGFja3M7XG4gIH0pO1xufVxuXG4vLyBSZXR1cm5zIHRoZSBmaXJzdCBzdGFjayB0aGF0IGhhcyBubyB1bm1ldCBkZXBlbmRlbmNpZXNcbi8vIEFuIHVubWV0IGRlcGVuZGVuY3kgaXMgYSBkZXBlbmRlbmN5IHRoYXQgaGFzIG5vdCBiZWVuIGRlcGxveWVkIHlldFxuLy8gSWYgdGhlcmUgaXMgbm8gdW5maW5pc2hlZCBzdGFjaywgcmV0dXJucyB1bmRlZmluZWRcbi8vIElmIHRoZXJlIGlzIG5vIHN0YWNrIHJlYWR5IHRvIGJlIHdvcmtlZCBvbiwgaXQgcmV0dXJucyBhIHByb21pc2UgdGhhdCB3aWxsIHJlc29sdmUgYXMgc29vbiBhcyB0aGVyZSBpcyBhIGZvbGxvdy11cCBzdGFjayBhdmFpbGFibGVcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTdGFja1dpdGhOb1VubWV0RGVwZW5kZW5jaWVzKFxuICBzdGFja0V4ZWN1dG9yczogQ2RrdGZTdGFja1tdLFxuKTogUHJvbWlzZTxDZGt0ZlN0YWNrIHwgdW5kZWZpbmVkPiB7XG4gIGxvZ2dlci5kZWJ1ZyhcIkNoZWNraW5nIGZvciBzdGFja3Mgd2l0aCB1bm1ldCBkZXBlbmRlbmNpZXNcIik7XG4gIGxvZ2dlci5kZWJ1ZyhcInN0YWNrIGV4ZWN1dG9yczpcIiwgc3RhY2tFeGVjdXRvcnMpO1xuICBjb25zdCBwZW5kaW5nU3RhY2tzID0gc3RhY2tFeGVjdXRvcnMuZmlsdGVyKChleGVjdXRvcikgPT4gZXhlY3V0b3IuaXNQZW5kaW5nKTtcbiAgbG9nZ2VyLmRlYnVnKFwicGVuZGluZyBzdGFja3M6XCIsIHN0YWNrRXhlY3V0b3JzKTtcblxuICBpZiAocGVuZGluZ1N0YWNrcy5sZW5ndGggPT09IDApIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgY29uc3QgY3VycmVudGx5UmVhZHlTdGFjayA9IHBlbmRpbmdTdGFja3MuZmluZCgoZXhlY3V0b3IpID0+XG4gICAgZXhlY3V0b3Iuc3RhY2suZGVwZW5kZW5jaWVzLmV2ZXJ5KFxuICAgICAgKGRlcGVuZGVuY3kpID0+XG4gICAgICAgIHN0YWNrRXhlY3V0b3JzLmZpbmQoKGV4ZWN1dG9yKSA9PiBleGVjdXRvci5zdGFjay5uYW1lID09PSBkZXBlbmRlbmN5KVxuICAgICAgICAgID8uY3VycmVudFN0YXRlID09PSBcImRvbmVcIixcbiAgICApLFxuICApO1xuXG4gIGlmIChjdXJyZW50bHlSZWFkeVN0YWNrKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFwiRm91bmQgYSBzdGFjayB3aXRoIG5vIHVubWV0IGRlcGVuZGVuY2llc1wiKTtcbiAgICByZXR1cm4gY3VycmVudGx5UmVhZHlTdGFjaztcbiAgfVxuXG4gIGNvbnN0IHN0YWNrRXhlY3V0aW9uUHJvbWlzZXMgPSBzdGFja0V4ZWN1dG9yc1xuICAgIC5maWx0ZXIoKGV4KSA9PiBleC5jdXJyZW50V29ya1Byb21pc2UpXG4gICAgLm1hcCgoZXgpID0+IGV4LmN1cnJlbnRXb3JrUHJvbWlzZSk7XG5cbiAgbG9nZ2VyLmRlYnVnKFxuICAgIGAke3N0YWNrRXhlY3V0aW9uUHJvbWlzZXMubGVuZ3RofSBzdGFja3MgYXJlIGN1cnJlbnRseSBidXN5LCB3YWl0aW5nIGZvciBvbmUgdG8gZmluaXNoYCxcbiAgKTtcblxuICBpZiAoIXN0YWNrRXhlY3V0aW9uUHJvbWlzZXMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGF3YWl0IGVuc3VyZUFsbFNldHRsZWRCZWZvcmVUaHJvd2luZyhcbiAgICBQcm9taXNlLnJhY2Uoc3RhY2tFeGVjdXRpb25Qcm9taXNlcyksXG4gICAgc3RhY2tFeGVjdXRpb25Qcm9taXNlcyxcbiAgKTtcblxuICByZXR1cm4gYXdhaXQgZ2V0U3RhY2tXaXRoTm9Vbm1ldERlcGVuZGVuY2llcyhzdGFja0V4ZWN1dG9ycyk7XG59XG5cbmZ1bmN0aW9uIGZpbmRBbGxEZXBlbmRhbnRTdGFja3MoXG4gIHN0YWNrRXhlY3V0b3JzOiBDZGt0ZlN0YWNrW10sXG4gIHN0YWNrTmFtZTogc3RyaW5nLFxuKTogQ2RrdGZTdGFja1tdIHtcbiAgcmV0dXJuIHN0YWNrRXhlY3V0b3JzLmZpbHRlcigoaW5uZXJFeGVjdXRvcikgPT5cbiAgICBpbm5lckV4ZWN1dG9yLnN0YWNrLmRlcGVuZGVuY2llcy5pbmNsdWRlcyhzdGFja05hbWUpLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluZEFsbE5lc3RlZERlcGVuZGFudFN0YWNrcyhcbiAgc3RhY2tFeGVjdXRvcnM6IENka3RmU3RhY2tbXSxcbiAgc3RhY2tOYW1lOiBzdHJpbmcsXG4gIGtub3duRGVwZW5kYW50U3RhY2tOYW1lczogU2V0PHN0cmluZz4gPSBuZXcgU2V0KCksXG4pOiBDZGt0ZlN0YWNrW10ge1xuICBjb25zdCBkZXBlbmRhbnRTdGFja3MgPSBmaW5kQWxsRGVwZW5kYW50U3RhY2tzKHN0YWNrRXhlY3V0b3JzLCBzdGFja05hbWUpO1xuICBkZXBlbmRhbnRTdGFja3MuZm9yRWFjaCgoc3RhY2spID0+IHtcbiAgICBpZiAoa25vd25EZXBlbmRhbnRTdGFja05hbWVzLmhhcyhzdGFjay5zdGFjay5uYW1lKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGtub3duRGVwZW5kYW50U3RhY2tOYW1lcy5hZGQoc3RhY2suc3RhY2submFtZSk7XG4gICAgZmluZEFsbE5lc3RlZERlcGVuZGFudFN0YWNrcyhcbiAgICAgIHN0YWNrRXhlY3V0b3JzLFxuICAgICAgc3RhY2suc3RhY2submFtZSxcbiAgICAgIGtub3duRGVwZW5kYW50U3RhY2tOYW1lcyxcbiAgICApO1xuICB9KTtcblxuICByZXR1cm4gc3RhY2tFeGVjdXRvcnMuZmlsdGVyKChleGVjdXRvcikgPT5cbiAgICBrbm93bkRlcGVuZGFudFN0YWNrTmFtZXMuaGFzKGV4ZWN1dG9yLnN0YWNrLm5hbWUpLFxuICApO1xufVxuXG4vLyBSZXR1cm5zIHRoZSBmaXJzdCBzdGFjayB0aGF0IGhhcyBubyBkZXBlbmRlbnRzIHRoYXQgbmVlZCB0byBiZSBkZXN0cm95ZWQgZmlyc3RcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRTdGFja1dpdGhOb1VubWV0RGVwZW5kYW50cyhcbiAgc3RhY2tFeGVjdXRvcnM6IENka3RmU3RhY2tbXSxcbik6IFByb21pc2U8Q2RrdGZTdGFjayB8IHVuZGVmaW5lZD4ge1xuICBsb2dnZXIuZGVidWcoXCJDaGVja2luZyBmb3Igc3RhY2tzIHdpdGggdW5tZXQgZGVwZW5kYW50c1wiKTtcbiAgbG9nZ2VyLmRlYnVnKFwic3RhY2sgZXhlY3V0b3JzOlwiLCBzdGFja0V4ZWN1dG9ycyk7XG4gIGNvbnN0IHBlbmRpbmdTdGFja3MgPSBzdGFja0V4ZWN1dG9ycy5maWx0ZXIoKGV4ZWN1dG9yKSA9PiBleGVjdXRvci5pc1BlbmRpbmcpO1xuICBsb2dnZXIuZGVidWcoXCJwZW5kaW5nIHN0YWNrczpcIiwgc3RhY2tFeGVjdXRvcnMpO1xuXG4gIGlmIChwZW5kaW5nU3RhY2tzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBjdXJyZW50bHlSZWFkeVN0YWNrID0gcGVuZGluZ1N0YWNrcy5maW5kKChleGVjdXRvcikgPT4ge1xuICAgIGNvbnN0IGRlcGVuZGFudFN0YWNrcyA9IGZpbmRBbGxEZXBlbmRhbnRTdGFja3MoXG4gICAgICBzdGFja0V4ZWN1dG9ycyxcbiAgICAgIGV4ZWN1dG9yLnN0YWNrLm5hbWUsXG4gICAgKTtcbiAgICByZXR1cm4gZGVwZW5kYW50U3RhY2tzLmV2ZXJ5KChzdGFjaykgPT4gc3RhY2suY3VycmVudFN0YXRlID09PSBcImRvbmVcIik7XG4gIH0pO1xuXG4gIGlmIChjdXJyZW50bHlSZWFkeVN0YWNrKSB7XG4gICAgbG9nZ2VyLmRlYnVnKFwiRm91bmQgYSBzdGFjayB3aXRoIG5vIHVubWV0IGRlcGVuZGFudHNcIik7XG4gICAgcmV0dXJuIGN1cnJlbnRseVJlYWR5U3RhY2s7XG4gIH1cbiAgY29uc3Qgc3RhY2tFeGVjdXRpb25Qcm9taXNlcyA9IHN0YWNrRXhlY3V0b3JzXG4gICAgLmZpbHRlcigoZXgpID0+IGV4LmN1cnJlbnRXb3JrUHJvbWlzZSlcbiAgICAubWFwKChleCkgPT4gZXguY3VycmVudFdvcmtQcm9taXNlKTtcblxuICBsb2dnZXIuZGVidWcoXG4gICAgYCR7c3RhY2tFeGVjdXRpb25Qcm9taXNlcy5sZW5ndGh9IHN0YWNrcyBhcmUgY3VycmVudGx5IGJ1c3ksIHdhaXRpbmcgZm9yIG9uZSB0byBmaW5pc2hgLFxuICApO1xuICBpZiAoIXN0YWNrRXhlY3V0aW9uUHJvbWlzZXMubGVuZ3RoKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGF3YWl0IFByb21pc2UucmFjZShzdGFja0V4ZWN1dGlvblByb21pc2VzKTtcbiAgcmV0dXJuIGF3YWl0IGdldFN0YWNrV2l0aE5vVW5tZXREZXBlbmRhbnRzKHN0YWNrRXhlY3V0b3JzKTtcbn1cblxuLy8gVGhyb3dzIGFuIGVycm9yIGlmIHRoZXJlIGlzIGEgZGVwZW5kYW50IHN0YWNrIHRoYXQgaXMgbm90IGluY2x1ZGVkXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tJZkFsbERlcGVuZGFudHNBcmVJbmNsdWRlZChcbiAgc3RhY2tzVG9SdW46IFN5bnRoZXNpemVkU3RhY2tbXSxcbiAgYWxsU3RhY2tzOiBTeW50aGVzaXplZFN0YWNrW10sXG4pIHtcbiAgY29uc3QgYWxsRGVwZW5kYW50cyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBzdGFja3NUb1J1blxuICAgIC5tYXAoKHN0YWNrKSA9PlxuICAgICAgYWxsU3RhY2tzLmZpbHRlcigocykgPT4gcy5kZXBlbmRlbmNpZXMuaW5jbHVkZXMoc3RhY2submFtZSkpLFxuICAgIClcbiAgICAuZmxhdCgpXG4gICAgLmZvckVhY2goKGRlcGVuZGFudCkgPT4gYWxsRGVwZW5kYW50cy5hZGQoZGVwZW5kYW50Lm5hbWUpKTtcblxuICBjb25zdCBzdGFja05hbWVzID0gc3RhY2tzVG9SdW4ubWFwKChzdGFjaykgPT4gc3RhY2submFtZSk7XG4gIGNvbnN0IG1pc3NpbmdEZXBlbmRhbnRzID0gWy4uLmFsbERlcGVuZGFudHNdLmZpbHRlcihcbiAgICAoZGVwZW5kYW50KSA9PiAhc3RhY2tOYW1lcy5pbmNsdWRlcyhkZXBlbmRhbnQpLFxuICApO1xuXG4gIGlmIChtaXNzaW5nRGVwZW5kYW50cy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgRXJyb3JzLlVzYWdlKFxuICAgICAgYFRoZSBmb2xsb3dpbmcgZGVwZW5kYW50IHN0YWNrcyBhcmUgbm90IGluY2x1ZGVkIGluIHRoZSBzdGFja3MgdG8gcnVuOiAke21pc3NpbmdEZXBlbmRhbnRzLmpvaW4oXG4gICAgICAgIFwiLCBcIixcbiAgICAgICl9LiBFaXRoZXIgYWRkIHRoZW0gb3IgYWRkIHRoZSAtLWlnbm9yZS1taXNzaW5nLXN0YWNrLWRlcGVuZGVuY2llcyBmbGFnLmAsXG4gICAgKTtcbiAgfVxufVxuXG4vKiogXG4gIFRocm93cyBhbiBlcnJvciBpZiB0aGVyZSBpcyBhIGRlcGVuZGVuY3kgdGhhdCBpcyBub3QgaW5jbHVkZWRcbiAgQ3ljbGVzIGFyZSBkZXRlY3RlZCBvbiBkZXBlbmRlbmN5IGNyZWF0aW9uIGF0IHN5bnRoZXNpcyB0aW1lXG4gIFJ1bm5pbmcgdGhpcyBwcmV2ZW50cyB1cyBmcm9tIGJlaW5nIGluIGEgc2l0dWF0aW9uIHdoZXJlIHdlIFxuICBoYXZlIHRvIHdhaXQgZm9yIGEgc3RhY2sgdG8gYmUgZGVwbG95ZWQgdGhhdCBpcyBub3QgaW5jbHVkZWQgdG8gYmUgcnVuXG4qL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrSWZBbGxEZXBlbmRlbmNpZXNBcmVJbmNsdWRlZChcbiAgc3RhY2tzVG9SdW46IFN5bnRoZXNpemVkU3RhY2tbXSxcbikge1xuICBjb25zdCBhbGxEZXBlbmRlbmNpZXMgPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgc3RhY2tzVG9SdW5cbiAgICAubWFwKChzdGFjaykgPT4gc3RhY2suZGVwZW5kZW5jaWVzKVxuICAgIC5mbGF0KClcbiAgICAuZm9yRWFjaCgoZGVwZW5kZW5jeSkgPT4gYWxsRGVwZW5kZW5jaWVzLmFkZChkZXBlbmRlbmN5KSk7XG5cbiAgY29uc3Qgc3RhY2tOYW1lcyA9IHN0YWNrc1RvUnVuLm1hcCgoc3RhY2spID0+IHN0YWNrLm5hbWUpO1xuICBjb25zdCBtaXNzaW5nRGVwZW5kZW5jaWVzID0gWy4uLmFsbERlcGVuZGVuY2llc10uZmlsdGVyKFxuICAgIChkZXBlbmRlbmN5KSA9PiAhc3RhY2tOYW1lcy5pbmNsdWRlcyhkZXBlbmRlbmN5KSxcbiAgKTtcblxuICBpZiAobWlzc2luZ0RlcGVuZGVuY2llcy5sZW5ndGggPiAwKSB7XG4gICAgdGhyb3cgRXJyb3JzLlVzYWdlKFxuICAgICAgYFRoZSBmb2xsb3dpbmcgZGVwZW5kZW5jaWVzIGFyZSBub3QgaW5jbHVkZWQgaW4gdGhlIHN0YWNrcyB0byBydW46ICR7bWlzc2luZ0RlcGVuZGVuY2llcy5qb2luKFxuICAgICAgICBcIiwgXCIsXG4gICAgICApfS4gRWl0aGVyIGFkZCB0aGVtIG9yIGFkZCB0aGUgLS1pZ25vcmUtbWlzc2luZy1zdGFjay1kZXBlbmRlbmNpZXMgZmxhZy5gLFxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2staGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvaGVscGVycy9zdGFjay1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSwrQkFBK0I7QUFDL0IsbUNBQW1DOzs7OztBQU9uQyx3Q0ErQkM7QUFFRCw4Q0E2QkM7QUFNRCwwRUEyQ0M7QUFXRCxvRUFzQkM7QUFHRCxzRUFxQ0M7QUFHRCwwRUF3QkM7QUFRRCw4RUFxQkM7QUFyUEQsNENBQWdGO0FBQ2hGLDBEQUFrQztBQUlsQyxTQUFnQixjQUFjLENBQzVCLE1BQTBCLEVBQzFCLFNBQWtCLEVBQ2xCLFlBQXFCO0lBRXJCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNaLE1BQU0sZ0JBQU0sQ0FBQyxRQUFRLENBQ25CLHlEQUF5RCxDQUMxRCxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksU0FBUyxFQUFFLENBQUM7UUFDZCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE1BQU0sZ0JBQU0sQ0FBQyxLQUFLLENBQUMsd0JBQXdCLEdBQUcsU0FBUyxDQUFDLENBQUM7UUFDM0QsQ0FBQztRQUVELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4QixPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQsTUFBTSxnQkFBTSxDQUFDLEtBQUssQ0FDaEIsdUVBQ0UsWUFBWSxJQUFJLFFBQ2xCLHNDQUFzQyxNQUFNO1NBQ3pDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztTQUNsQixJ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QU0sQ0FBQyxLQUFLLENBQ2hCLHlFQUF5RSxpQkFBaUIsQ0FBQyxJQUFJLENBQzdGLElBQUksQ0FDTCx3RUFBd0UsQ0FDMUUsQ0FBQztJQUNKLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7O0VBS0U7QUFDRixTQUFnQixpQ0FBaUMsQ0FDL0MsV0FBK0I7SUFFL0IsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLEVBQVUsQ0FBQztJQUMxQyxXQUFXO1NBQ1IsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDO1NBQ2xDLElBQUksRUFBRTtTQUNOLE9BQU8sQ0FBQyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBRTVELE1BQU0sVUFBVSxHQUFHLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMxRCxNQUFNLG1CQUFtQixHQUFHLENBQUMsR0FBRyxlQUFlLENBQUMsQ0FBQyxNQUFNLENBQ3JELENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQ2pELENBQUM7SUFFRixJQUFJLG1CQUFtQixDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNuQyxNQUFNLGdCQUFNLENBQUMsS0FBSyxDQUNoQixxRUFBcUUsbUJBQW1CLENBQUMsSUFBSSxDQUMzRixJQUFJLENBQ0wsd0VBQXdFLENBQzFFLENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmNcbi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG5cbmltcG9ydCB7IGVuc3VyZUFsbFNldHRsZWRCZWZvcmVUaHJvd2luZywgRXJyb3JzLCBsb2dnZXIgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCBtaW5pbWF0Y2ggZnJvbSBcIm1pbmltYXRjaFwiO1xuaW1wb3J0IHsgQ2RrdGZTdGFjayB9IGZyb20gXCIuLi9jZGt0Zi1zdGFja1wiO1xuaW1wb3J0IHsgU3ludGhlc2l6ZWRTdGFjayB9IGZyb20gXCIuLi9zeW50aC1zdGFja1wiO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2luZ2xlU3RhY2soXG4gIHN0YWNrczogU3ludGhlc2l6ZWRTdGFja1tdLFxuICBzdGFja05hbWU/OiBzdHJpbmcsXG4gIHRhcmdldEFjdGlvbj86IHN0cmluZyxcbikge1xuICBpZiAoIXN0YWNrcykge1xuICAgIHRocm93IEVycm9ycy5JbnRlcm5hbChcbiAgICAgIFwiVHJ5aW5nIHRvIGFjY2VzcyBhIHN0YWNrIGJlZm9yZSBpdCBoYXMgYmVlbiBzeW50aGVzaXplZFwiLFxuICAgICk7XG4gIH1cblxuICBpZiAoc3RhY2tOYW1lKSB7XG4gICAgY29uc3Qgc3RhY2sgPSBzdGFja3MuZmluZCgocykgPT4gcy5uYW1lID09PSBzdGFja05hbWUpO1xuICAgIGlmICghc3RhY2spIHtcbiAgICAgIHRocm93IEVycm9ycy5Vc2FnZShcIkNvdWxkIG5vdCBmaW5kIHN0YWNrOiBcIiArIHN0YWNrTmFtZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN0YWNrO1xuICB9XG5cbiAgaWYgKHN0YWNrcy5sZW5ndGggPT09IDEpIHtcbiAgICByZXR1cm4gc3RhY2tzWzBdO1xuICB9XG5cbiAgdGhyb3cgRXJyb3JzLlVzYWdlKFxuICAgIGBGb3VuZCBtb3JlIHRoYW4gb25lIHN0YWNrLCBwbGVhc2Ugc3BlY2lmeSBhIHRhcmdldCBzdGFjay4gUnVuIGNka3RuICR7XG4gICAgICB0YXJnZXRBY3Rpb24gfHwgXCI8dmVyYj5cIlxuICAgIH0gPHN0YWNrPiB3aXRoIG9uZSBvZiB0aGVzZSBzdGFja3M6ICR7c3RhY2tzXG4gICAgICAubWFwKChzKSA9PiBzLm5hbWUpXG4gICAgICAuam9pbihcIiwgXCIpfSBgLFxuICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TXVsdGlwbGVTdGFja3MoXG4gIHN0YWNrczogU3ludGhlc2l6ZWRTdGFja1tdLFxuICBwYXR0ZXJucz86IHN0cmluZ1tdLFxuICB0YXJnZXRBY3Rpb24/OiBzdHJpbmcsXG4pIHtcbiAgaWYgKCFwYXR0ZXJucyB8fCAhcGF0dGVybnMubGVuZ3RoKSB7XG4gICAgaWYgKHN0YWNrcy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiBbc3RhY2tzWzBdXTtcbiAgICB9XG4gICAgdGhyb3cgRXJyb3JzLlVzYWdlKFxuICAgICAgYEZvdW5kIG1vcmUgdGhhbiBvbmUgc3RhY2ssIHBsZWFzZSBzcGVjaWZ5IGEgdGFyZ2V0IHN0YWNrLiBSdW4gY2RrdG4gJHtcbiAgICAgICAgdGFyZ2V0QWN0aW9uIHx8IFwiPHZlcmI+XCJcbiAgICAgIH0gPHN0YWNrPiB3aXRoIG9uZSBvZiB0aGVzZSBzdGFja3M6ICR7c3RhY2tzXG4gICAgICAgIC5tYXAoKHMpID0+IHMubmFtZSlcbiAgICAgICAgLmpvaW4oXCIsIFwiKX0gYCxcbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIHBhdHRlcm5zLmZsYXRNYXAoKHBhdHRlcm4pID0+IHtcbiAgICBjb25zdCBtYXRjaGluZ1N0YWNrcyA9IHN0YWNrcy5maWx0ZXIoKHN0YWNrKSA9PlxuICAgICAgbWluaW1hdGNoKHN0YWNrLm5hbWUsIHBhdHRlcm4pLFxuICAgICk7XG5cbiAgICBpZiAobWF0Y2hpbmdTdGFja3MubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBFcnJvcnMuVXNhZ2UoYENvdWxkIG5vdCBmaW5kIHN0YWNrIGZvciBwYXR0ZXJuICcke3BhdHRlcm59J2ApO1xuICAgIH1cblxuICAgIHJldHVybiBtYXRjaGluZ1N0YWNrcztcbiAgfSk7XG59XG5cbi8vIFJldHVybnMgdGhlIGZpcnN0IHN0YWNrIHRoYXQgaGFzIG5vIHVubWV0IGRlcGVuZGVuY2llc1xuLy8gQW4gdW5tZXQgZGVwZW5kZW5jeSBpcyBhIGRlcGVuZGVuY3kgdGhhdCBoYXMgbm90IGJlZW4gZGVwbG95ZWQgeWV0XG4vLyBJZiB0aGVyZSBpcyBubyB1bmZpbmlzaGVkIHN0YWNrLCByZXR1cm5zIHVuZGVmaW5lZFxuLy8gSWYgdGhlcmUgaXMgbm8gc3RhY2sgcmVhZHkgdG8gYmUgd29ya2VkIG9uLCBpdCByZXR1cm5zIGEgcHJvbWlzZSB0aGF0IHdpbGwgcmVzb2x2ZSBhcyBzb29uIGFzIHRoZXJlIGlzIGEgZm9sbG93LXVwIHN0YWNrIGF2YWlsYWJsZVxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFN0YWNrV2l0aE5vVW5tZXREZXBlbmRlbmNpZXMoXG4gIHN0YWNrRXhlY3V0b3JzOiBDZGt0ZlN0YWNrW10sXG4pOiBQcm9taXNlPENka3RmU3RhY2sgfCB1bmRlZmluZWQ+IHtcbiAgbG9nZ2VyLmRlYnVnKFwiQ2hlY2tpbmcgZm9yIHN0YWNrcyB3aXRoIHVubWV0IGRlcGVuZGVuY2llc1wiKTtcbiAgbG9nZ2VyLmRlYnVnKFwic3RhY2sgZXhlY3V0b3JzOlwiLCBzdGFja0V4ZWN1dG9ycyk7XG4gIGNvbnN0IHBlbmRpbmdTdGFja3MgPSBzdGFja0V4ZWN1dG9ycy5maWx0ZXIoKGV4ZWN1dG9yKSA9PiBleGVjdXRvci5pc1BlbmRpbmcpO1xuICBsb2dnZXIuZGVidWcoXCJwZW5kaW5nIHN0YWNrczpcIiwgc3RhY2tFeGVjdXRvcnMpO1xuXG4gIGlmIChwZW5kaW5nU3RhY2tzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBjb25zdCBjdXJyZW50bHlSZWFkeVN0YWNrID0gcGVuZGluZ1N0YWNrcy5maW5kKChleGVjdXRvcikgPT5cbiAgICBleGVjdXRvci5zdGFjay5kZXBlbmRlbmNpZXMuZXZlcnkoXG4gICAgICAoZGVwZW5kZW5jeSkgPT5cbiAgICAgICAgc3RhY2tFeGVjdXRvcnMuZmluZCgoZXhlY3V0b3IpID0+IGV4ZWN1dG9yLnN0YWNrLm5hbWUgPT09IGRlcGVuZGVuY3kpXG4gICAgICAgICAgPy5jdXJyZW50U3RhdGUgPT09IFwiZG9uZVwiLFxuICAgICksXG4gICk7XG5cbiAgaWYgKGN1cnJlbnRseVJlYWR5U3RhY2spIHtcbiAgICBsb2dnZXIuZGVidWcoXCJGb3VuZCBhIHN0YWNrIHdpdGggbm8gdW5tZXQgZGVwZW5kZW5jaWVzXCIpO1xuICAgIHJldHVybiBjdXJyZW50bHlSZWFkeVN0YWNrO1xuICB9XG5cbiAgY29uc3Qgc3RhY2tFeGVjdXRpb25Qcm9taXNlcyA9IHN0YWNrRXhlY3V0b3JzXG4gICAgLmZpbHRlcigoZXgpID0+IGV4LmN1cnJlbnRXb3JrUHJvbWlzZSlcbiAgICAubWFwKChleCkgPT4gZXguY3VycmVudFdvcmtQcm9taXNlKTtcblxuICBsb2dnZXIuZGVidWcoXG4gICAgYCR7c3RhY2tFeGVjdXRpb25Qcm9taXNlcy5sZW5ndGh9IHN0YWNrcyBhcmUgY3VycmVudGx5IGJ1c3ksIHdhaXRpbmcgZm9yIG9uZSB0byBmaW5pc2hgLFxuICApO1xuXG4gIGlmICghc3RhY2tFeGVjdXRpb25Qcm9taXNlcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgYXdhaXQgZW5zdXJlQWxsU2V0dGxlZEJlZm9yZVRocm93aW5nKFxuICAgIFByb21pc2UucmFjZShzdGFja0V4ZWN1dGlvblByb21pc2VzKSxcbiAgICBzdGFja0V4ZWN1dGlvblByb21pc2VzLFxuICApO1xuXG4gIHJldHVybiBhd2FpdCBnZXRTdGFja1dpdGhOb1VubWV0RGVwZW5kZW5jaWVzKHN0YWNrRXhlY3V0b3JzKTtcbn1cblxuZnVuY3Rpb24gZmluZEFsbERlcGVuZGFudFN0YWNrcyhcbiAgc3RhY2tFeGVjdXRvcnM6IENka3RmU3RhY2tbXSxcbiAgc3RhY2tOYW1lOiBzdHJpbmcsXG4pOiBDZGt0ZlN0YWNrW10ge1xuICByZXR1cm4gc3RhY2tFeGVjdXRvcnMuZmlsdGVyKChpbm5lckV4ZWN1dG9yKSA9PlxuICAgIGlubmVyRXhlY3V0b3Iuc3RhY2suZGVwZW5kZW5jaWVzLmluY2x1ZGVzKHN0YWNrTmFtZSksXG4gICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5kQWxsTmVzdGVkRGVwZW5kYW50U3RhY2tzKFxuICBzdGFja0V4ZWN1dG9yczogQ2RrdGZTdGFja1tdLFxuICBzdGFja05hbWU6IHN0cmluZyxcbiAga25vd25EZXBlbmRhbnRTdGFja05hbWVzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKSxcbik6IENka3RmU3RhY2tbXSB7XG4gIGNvbnN0IGRlcGVuZGFudFN0YWNrcyA9IGZpbmRBbGxEZXBlbmRhbnRTdGFja3Moc3RhY2tFeGVjdXRvcnMsIHN0YWNrTmFtZSk7XG4gIGRlcGVuZGFudFN0YWNrcy5mb3JFYWNoKChzdGFjaykgPT4ge1xuICAgIGlmIChrbm93bkRlcGVuZGFudFN0YWNrTmFtZXMuaGFzKHN0YWNrLnN0YWNrLm5hbWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAga25vd25EZXBlbmRhbnRTdGFja05hbWVzLmFkZChzdGFjay5zdGFjay5uYW1lKTtcbiAgICBmaW5kQWxsTmVzdGVkRGVwZW5kYW50U3RhY2tzKFxuICAgICAgc3RhY2tFeGVjdXRvcnMsXG4gICAgICBzdGFjay5zdGFjay5uYW1lLFxuICAgICAga25vd25EZXBlbmRhbnRTdGFja05hbWVzLFxuICAgICk7XG4gIH0pO1xuXG4gIHJldHVybiBzdGFja0V4ZWN1dG9ycy5maWx0ZXIoKGV4ZWN1dG9yKSA9PlxuICAgIGtub3duRGVwZW5kYW50U3RhY2tOYW1lcy5oYXMoZXhlY3V0b3Iuc3RhY2submFtZSksXG4gICk7XG59XG5cbi8vIFJldHVybnMgdGhlIGZpcnN0IHN0YWNrIHRoYXQgaGFzIG5vIGRlcGVuZGVudHMgdGhhdCBuZWVkIHRvIGJlIGRlc3Ryb3llZCBmaXJzdFxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFN0YWNrV2l0aE5vVW5tZXREZXBlbmRhbnRzKFxuICBzdGFja0V4ZWN1dG9yczogQ2RrdGZTdGFja1tdLFxuKTogUHJvbWlzZTxDZGt0ZlN0YWNrIHwgdW5kZWZpbmVkPiB7XG4gIGxvZ2dlci5kZWJ1ZyhcIkNoZWNraW5nIGZvciBzdGFja3Mgd2l0aCB1bm1ldCBkZXBlbmRhbnRzXCIpO1xuICBsb2dnZXIuZGVidWcoXCJzdGFjayBleGVjdXRvcnM6XCIsIHN0YWNrRXhlY3V0b3JzKTtcbiAgY29uc3QgcGVuZGluZ1N0YWNrcyA9IHN0YWNrRXhlY3V0b3JzLmZpbHRlcigoZXhlY3V0b3IpID0+IGV4ZWN1dG9yLmlzUGVuZGluZyk7XG4gIGxvZ2dlci5kZWJ1ZyhcInBlbmRpbmcgc3RhY2tzOlwiLCBzdGFja0V4ZWN1dG9ycyk7XG5cbiAgaWYgKHBlbmRpbmdTdGFja3MubGVuZ3RoID09PSAwKSB7XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnRseVJlYWR5U3RhY2sgPSBwZW5kaW5nU3RhY2tzLmZpbmQoKGV4ZWN1dG9yKSA9PiB7XG4gICAgY29uc3QgZGVwZW5kYW50U3RhY2tzID0gZmluZEFsbERlcGVuZGFudFN0YWNrcyhcbiAgICAgIHN0YWNrRXhlY3V0b3JzLFxuICAgICAgZXhlY3V0b3Iuc3RhY2submFtZSxcbiAgICApO1xuICAgIHJldHVybiBkZXBlbmRhbnRTdGFja3MuZXZlcnkoKHN0YWNrKSA9PiBzdGFjay5jdXJyZW50U3RhdGUgPT09IFwiZG9uZVwiKTtcbiAgfSk7XG5cbiAgaWYgKGN1cnJlbnRseVJlYWR5U3RhY2spIHtcbiAgICBsb2dnZXIuZGVidWcoXCJGb3VuZCBhIHN0YWNrIHdpdGggbm8gdW5tZXQgZGVwZW5kYW50c1wiKTtcbiAgICByZXR1cm4gY3VycmVudGx5UmVhZHlTdGFjaztcbiAgfVxuICBjb25zdCBzdGFja0V4ZWN1dGlvblByb21pc2VzID0gc3RhY2tFeGVjdXRvcnNcbiAgICAuZmlsdGVyKChleCkgPT4gZXguY3VycmVudFdvcmtQcm9taXNlKVxuICAgIC5tYXAoKGV4KSA9PiBleC5jdXJyZW50V29ya1Byb21pc2UpO1xuXG4gIGxvZ2dlci5kZWJ1ZyhcbiAgICBgJHtzdGFja0V4ZWN1dGlvblByb21pc2VzLmxlbmd0aH0gc3RhY2tzIGFyZSBjdXJyZW50bHkgYnVzeSwgd2FpdGluZyBmb3Igb25lIHRvIGZpbmlzaGAsXG4gICk7XG4gIGlmICghc3RhY2tFeGVjdXRpb25Qcm9taXNlcy5sZW5ndGgpIHtcbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG5cbiAgYXdhaXQgUHJvbWlzZS5yYWNlKHN0YWNrRXhlY3V0aW9uUHJvbWlzZXMpO1xuICByZXR1cm4gYXdhaXQgZ2V0U3RhY2tXaXRoTm9Vbm1ldERlcGVuZGFudHMoc3RhY2tFeGVjdXRvcnMpO1xufVxuXG4vLyBUaHJvd3MgYW4gZXJyb3IgaWYgdGhlcmUgaXMgYSBkZXBlbmRhbnQgc3RhY2sgdGhhdCBpcyBub3QgaW5jbHVkZWRcbmV4cG9ydCBmdW5jdGlvbiBjaGVja0lmQWxsRGVwZW5kYW50c0FyZUluY2x1ZGVkKFxuICBzdGFja3NUb1J1bjogU3ludGhlc2l6ZWRTdGFja1tdLFxuICBhbGxTdGFja3M6IFN5bnRoZXNpemVkU3RhY2tbXSxcbikge1xuICBjb25zdCBhbGxEZXBlbmRhbnRzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIHN0YWNrc1RvUnVuXG4gICAgLm1hcCgoc3RhY2spID0+XG4gICAgICBhbGxTdGFja3MuZmlsdGVyKChzKSA9PiBzLmRlcGVuZGVuY2llcy5pbmNsdWRlcyhzdGFjay5uYW1lKSksXG4gICAgKVxuICAgIC5mbGF0KClcbiAgICAuZm9yRWFjaCgoZGVwZW5kYW50KSA9PiBhbGxEZXBlbmRhbnRzLmFkZChkZXBlbmRhbnQubmFtZSkpO1xuXG4gIGNvbnN0IHN0YWNrTmFtZXMgPSBzdGFja3NUb1J1bi5tYXAoKHN0YWNrKSA9PiBzdGFjay5uYW1lKTtcbiAgY29uc3QgbWlzc2luZ0RlcGVuZGFudHMgPSBbLi4uYWxsRGVwZW5kYW50c10uZmlsdGVyKFxuICAgIChkZXBlbmRhbnQpID0+ICFzdGFja05hbWVzLmluY2x1ZGVzKGRlcGVuZGFudCksXG4gICk7XG5cbiAgaWYgKG1pc3NpbmdEZXBlbmRhbnRzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBFcnJvcnMuVXNhZ2UoXG4gICAgICBgVGhlIGZvbGxvd2luZyBkZXBlbmRhbnQgc3RhY2tzIGFyZSBub3QgaW5jbHVkZWQgaW4gdGhlIHN0YWNrcyB0byBydW46ICR7bWlzc2luZ0RlcGVuZGFudHMuam9pbihcbiAgICAgICAgXCIsIFwiLFxuICAgICAgKX0uIEVpdGhlciBhZGQgdGhlbSBvciBhZGQgdGhlIC0taWdub3JlLW1pc3Npbmctc3RhY2stZGVwZW5kZW5jaWVzIGZsYWcuYCxcbiAgICApO1xuICB9XG59XG5cbi8qKiBcbiAgVGhyb3dzIGFuIGVycm9yIGlmIHRoZXJlIGlzIGEgZGVwZW5kZW5jeSB0aGF0IGlzIG5vdCBpbmNsdWRlZFxuICBDeWNsZXMgYXJlIGRldGVjdGVkIG9uIGRlcGVuZGVuY3kgY3JlYXRpb24gYXQgc3ludGhlc2lzIHRpbWVcbiAgUnVubmluZyB0aGlzIHByZXZlbnRzIHVzIGZyb20gYmVpbmcgaW4gYSBzaXR1YXRpb24gd2hlcmUgd2UgXG4gIGhhdmUgdG8gd2FpdCBmb3IgYSBzdGFjayB0byBiZSBkZXBsb3llZCB0aGF0IGlzIG5vdCBpbmNsdWRlZCB0byBiZSBydW5cbiovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tJZkFsbERlcGVuZGVuY2llc0FyZUluY2x1ZGVkKFxuICBzdGFja3NUb1J1bjogU3ludGhlc2l6ZWRTdGFja1tdLFxuKSB7XG4gIGNvbnN0IGFsbERlcGVuZGVuY2llcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBzdGFja3NUb1J1blxuICAgIC5tYXAoKHN0YWNrKSA9PiBzdGFjay5kZXBlbmRlbmNpZXMpXG4gICAgLmZsYXQoKVxuICAgIC5mb3JFYWNoKChkZXBlbmRlbmN5KSA9PiBhbGxEZXBlbmRlbmNpZXMuYWRkKGRlcGVuZGVuY3kpKTtcblxuICBjb25zdCBzdGFja05hbWVzID0gc3RhY2tzVG9SdW4ubWFwKChzdGFjaykgPT4gc3RhY2submFtZSk7XG4gIGNvbnN0IG1pc3NpbmdEZXBlbmRlbmNpZXMgPSBbLi4uYWxsRGVwZW5kZW5jaWVzXS5maWx0ZXIoXG4gICAgKGRlcGVuZGVuY3kpID0+ICFzdGFja05hbWVzLmluY2x1ZGVzKGRlcGVuZGVuY3kpLFxuICApO1xuXG4gIGlmIChtaXNzaW5nRGVwZW5kZW5jaWVzLmxlbmd0aCA+IDApIHtcbiAgICB0aHJvdyBFcnJvcnMuVXNhZ2UoXG4gICAgICBgVGhlIGZvbGxvd2luZyBkZXBlbmRlbmNpZXMgYXJlIG5vdCBpbmNsdWRlZCBpbiB0aGUgc3RhY2tzIHRvIHJ1bjogJHttaXNzaW5nRGVwZW5kZW5jaWVzLmpvaW4oXG4gICAgICAgIFwiLCBcIixcbiAgICAgICl9LiBFaXRoZXIgYWRkIHRoZW0gb3IgYWRkIHRoZSAtLWlnbm9yZS1taXNzaW5nLXN0YWNrLWRlcGVuZGVuY2llcyBmbGFnLmAsXG4gICAgKTtcbiAgfVxufVxuIl19
|
package/build/lib/init.d.ts
CHANGED
|
@@ -33,5 +33,5 @@ export interface Deps {
|
|
|
33
33
|
cdktf_version: string;
|
|
34
34
|
constructs_version: string;
|
|
35
35
|
}
|
|
36
|
-
export declare function determineDeps(version?: string, dist?: string): Promise<Deps>;
|
|
36
|
+
export declare function determineDeps(version?: string, dist?: string, template?: string): Promise<Deps>;
|
|
37
37
|
//# sourceMappingURL=init.d.ts.map
|
package/build/lib/init.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;CACjC;AACD,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,aAAa,CAAC;AAEnD,MAAM,MAAM,QAAQ,GAAG;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,YAAY,QAAgD,CAAC;AAK1E,eAAO,MAAM,SAAS,EAAE,MAAM,EAAO,CAAC;AAKtC,wBAAsB,IAAI,CAAC,EACzB,YAAY,EACZ,WAAW,EACX,IAAI,EACJ,SAAS,EACT,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,mBAAmB,EACnB,MAAM,GACP,EAAE,QAAQ,
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/lib/init.ts"],"names":[],"mappings":"AAuBA,MAAM,WAAW,YAAY;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,uBAAuB,EAAE,MAAM,CAAC;CACjC;AACD,MAAM,MAAM,OAAO,GAAG,YAAY,GAAG,aAAa,CAAC;AAEnD,MAAM,MAAM,QAAQ,GAAG;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,eAAO,MAAM,YAAY,QAAgD,CAAC;AAK1E,eAAO,MAAM,SAAS,EAAE,MAAM,EAAO,CAAC;AAKtC,wBAAsB,IAAI,CAAC,EACzB,YAAY,EACZ,WAAW,EACX,IAAI,EACJ,SAAS,EACT,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,mBAAmB,EACnB,MAAM,GACP,EAAE,QAAQ,oBAgCV;AAED,MAAM,WAAW,IAAI;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAeD,wBAAsB,aAAa,CACjC,OAAO,GAAE,MAAoB,EAC7B,IAAI,CAAC,EAAE,MAAM,EACb,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,IAAI,CAAC,CA8Ef"}
|
package/build/lib/init.js
CHANGED
|
@@ -15,15 +15,27 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
36
|
+
exports.templates = exports.templatesDir = void 0;
|
|
37
|
+
exports.init = init;
|
|
38
|
+
exports.determineDeps = determineDeps;
|
|
27
39
|
// Copyright (c) HashiCorp, Inc
|
|
28
40
|
// SPDX-License-Identifier: MPL-2.0
|
|
29
41
|
const path = __importStar(require("path"));
|
|
@@ -52,7 +64,7 @@ for (const template of availableTemplates) {
|
|
|
52
64
|
exports.templates.push(template);
|
|
53
65
|
}
|
|
54
66
|
async function init({ cdktfVersion, destination, dist, projectId, projectInfo, templatePath, sendCrashReports, providers, providersForceLocal, silent, }) {
|
|
55
|
-
const deps = await determineDeps(cdktfVersion, dist);
|
|
67
|
+
const deps = await determineDeps(cdktfVersion, dist, path.basename(templatePath));
|
|
56
68
|
const futureFlags = Object.entries(features_1.FUTURE_FLAGS)
|
|
57
69
|
.map(([key, value]) => ` "${key}": "${value}"`)
|
|
58
70
|
.join(`,\n`);
|
|
@@ -77,8 +89,18 @@ async function init({ cdktfVersion, destination, dist, projectId, projectInfo, t
|
|
|
77
89
|
}
|
|
78
90
|
return needsGet;
|
|
79
91
|
}
|
|
80
|
-
|
|
81
|
-
|
|
92
|
+
// Each built-in template only consumes the dist artifact for its own
|
|
93
|
+
// language. Skipping the others lets `cdktn init --dist` work when only
|
|
94
|
+
// some language dists are present (e.g. CI ran `yarn package:js` only).
|
|
95
|
+
const distKeysByTemplate = {
|
|
96
|
+
typescript: ["npm_cdktf"],
|
|
97
|
+
python: ["pypi_cdktf"],
|
|
98
|
+
"python-pip": ["pypi_cdktf"],
|
|
99
|
+
java: ["mvn_cdktf"],
|
|
100
|
+
csharp: ["nuget_cdktf"],
|
|
101
|
+
go: ["go_cdktf"],
|
|
102
|
+
};
|
|
103
|
+
async function determineDeps(version = pkg.version, dist, template) {
|
|
82
104
|
// TS: cdktf-0.10.1-dev.2160938258
|
|
83
105
|
// Py: cdktf-0.10.1.dev1658821493.whl
|
|
84
106
|
const pythonVersion = version
|
|
@@ -94,7 +116,14 @@ async function determineDeps(version = pkg.version, dist) {
|
|
|
94
116
|
nuget_cdktf: path.resolve(dist, "dotnet", `Io.Cdktn.${version}.nupkg`),
|
|
95
117
|
go_cdktf: path.resolve(dist, "go", `cdktn`),
|
|
96
118
|
};
|
|
97
|
-
|
|
119
|
+
// If we know the template, only validate its artifact; otherwise fall
|
|
120
|
+
// back to validating everything (preserves prior behavior for unknown /
|
|
121
|
+
// remote templates).
|
|
122
|
+
const keysToValidate = template && distKeysByTemplate[template]
|
|
123
|
+
? distKeysByTemplate[template]
|
|
124
|
+
: Object.keys(ret);
|
|
125
|
+
for (const key of keysToValidate) {
|
|
126
|
+
const file = ret[key];
|
|
98
127
|
if (!(await fs.pathExists(file))) {
|
|
99
128
|
throw commons_1.Errors.Internal(`unable to find ${file} under the "dist" directory (${dist})`, new Error(), { version });
|
|
100
129
|
}
|
|
@@ -127,5 +156,4 @@ async function determineDeps(version = pkg.version, dist) {
|
|
|
127
156
|
go_cdktf: `v${version}`,
|
|
128
157
|
};
|
|
129
158
|
}
|
|
130
|
-
exports.determineDeps = determineDeps;
|
|
131
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvaW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsMkNBQTZCO0FBQzdCLDZDQUErQjtBQUMvQiw4Q0FBZ0M7QUFDaEMsNENBQXdDO0FBRXhDLG1DQUFnQztBQUNoQyxpREFBa0Q7QUFDbEQsaURBQTZDO0FBQzdDLGlEQUE2QztBQUU3QyxNQUFNLGVBQWUsR0FBRyxHQUFHLEVBQUU7SUFDM0IsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMsNkJBQTZCLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUM7QUFDdkQsQ0FBQyxDQUFDO0FBQ0YsTUFBTSxHQUFHLEdBQUcsZUFBZSxFQUFFLENBQUM7QUFDOUIsTUFBTSxpQkFBaUIsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztBQTJCekMsUUFBQSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztBQUUxRSxNQUFNLGtCQUFrQixHQUFHLEVBQUU7S0FDMUIsV0FBVyxDQUFDLG9CQUFZLENBQUM7S0FDekIsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztBQUN4QixRQUFBLFNBQVMsR0FBYSxFQUFFLENBQUM7QUFDdEMs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akMsTUFBTSxnQkFBTSxDQUFDLFFBQVEsQ0FDbkIsa0JBQWtCLElBQUksZ0NBQWdDLElBQUksR0FBRyxFQUM3RCxJQUFJLEtBQUssRUFBRSxFQUNYLEVBQUUsT0FBTyxFQUFFLENBQ1osQ0FBQztZQUNKLENBQUM7UUFDSCxDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUc7WUFDZixhQUFhLEVBQUUsT0FBTztZQUN0QixrQkFBa0IsRUFBRSxpQkFBaUI7U0FDdEMsQ0FBQztRQUVGLE9BQU87WUFDTCxHQUFHLEdBQUc7WUFDTixHQUFHLFFBQVE7U0FDWixDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksT0FBTyxLQUFLLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLE1BQU0sZ0JBQU0sQ0FBQyxLQUFLLENBQ2hCLHdHQUF3RyxDQUN6RyxDQUFDO0lBQ0osQ0FBQztJQUVELDRFQUE0RTtJQUM1RSxvRUFBb0U7SUFDcEUseUVBQXlFO0lBQ3pFLFdBQVc7SUFDWCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxFQUFFLENBQUM7SUFFNUQsT0FBTztRQUNMLGFBQWEsRUFBRSxPQUFPO1FBQ3RCLGtCQUFrQixFQUFFLGlCQUFpQjtRQUNyQyxTQUFTLEVBQUUsU0FBUyxHQUFHLEVBQUU7UUFDekIsYUFBYSxFQUFFLGFBQWEsR0FBRyxFQUFFO1FBQ2pDLFVBQVUsRUFBRSxVQUFVLGFBQWEsRUFBRTtRQUNyQyxTQUFTLEVBQUUsT0FBTztRQUNsQixXQUFXLEVBQUUsT0FBTztRQUNwQixRQUFRLEVBQUUsSUFBSSxPQUFPLEVBQUU7S0FDeEIsQ0FBQztBQUNKLENBQUM7QUF4RUQsc0NBd0VDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmcy1leHRyYVwiO1xuaW1wb3J0ICogYXMgcGtnVXAgZnJvbSBcInBrZy11cFwiO1xuaW1wb3J0IHsgRXJyb3JzIH0gZnJvbSBcIkBjZGt0bi9jb21tb25zXCI7XG5cbmltcG9ydCB7IHNzY2FmZiB9IGZyb20gXCJzc2NhZmZcIjtcbmltcG9ydCB7IEZVVFVSRV9GTEFHUyB9IGZyb20gXCJjZGt0bi9saWIvZmVhdHVyZXNcIjtcbmltcG9ydCB7IENka3RmQ29uZmlnIH0gZnJvbSBcIi4vY2RrdGYtY29uZmlnXCI7XG5pbXBvcnQgeyBwcm92aWRlckFkZCB9IGZyb20gXCIuL3Byb3ZpZGVyLWFkZFwiO1xuXG5jb25zdCByZWFkUGFja2FnZUpzb24gPSAoKSA9PiB7XG4gIGNvbnN0IHBrZ1BhdGggPSBwa2dVcC5zeW5jKHsgY3dkOiBfX2Rpcm5hbWUgfSk7XG4gIGlmICghcGtnUGF0aCkge1xuICAgIHRocm93IG5ldyBFcnJvcihcInVuYWJsZSB0byBmaW5kIHBhY2thZ2UuanNvblwiKTtcbiAgfVxuXG4gIHJldHVybiBKU09OLnBhcnNlKGZzLnJlYWRGaWxlU3luYyhwa2dQYXRoLCBcInV0Zi04XCIpKTtcbn07XG5jb25zdCBwa2cgPSByZWFkUGFja2FnZUpzb24oKTtcbmNvbnN0IGNvbnN0cnVjdHNWZXJzaW9uID0gcGtnLmRlcGVuZGVuY2llcy5jb25zdHJ1Y3RzO1xuXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsUHJvamVjdCB7XG4gIERlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIE5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZW1vdGVQcm9qZWN0IGV4dGVuZHMgTG9jYWxQcm9qZWN0IHtcbiAgT3JnYW5pemF0aW9uTmFtZTogc3RyaW5nO1xuICBXb3Jrc3BhY2VOYW1lOiBzdHJpbmc7XG4gIFRlcnJhZm9ybVJlbW90ZUhvc3RuYW1lOiBzdHJpbmc7XG59XG5leHBvcnQgdHlwZSBQcm9qZWN0ID0gTG9jYWxQcm9qZWN0IHwgUmVtb3RlUHJvamVjdDtcblxuZXhwb3J0IHR5cGUgSW5pdEFyZ3MgPSB7XG4gIGNka3RmVmVyc2lvbj86IHN0cmluZztcbiAgZGVzdGluYXRpb246IHN0cmluZztcbiAgZGlzdD86IHN0cmluZztcbiAgcHJvdmlkZXJzPzogc3RyaW5nW107XG4gIHByb3ZpZGVyc0ZvcmNlTG9jYWw/OiBib29sZWFuO1xuICBwcm9qZWN0SWQ6IHN0cmluZztcbiAgcHJvamVjdEluZm86IFByb2plY3Q7XG4gIHRlbXBsYXRlUGF0aDogc3RyaW5nO1xuICBzZW5kQ3Jhc2hSZXBvcnRzOiBib29sZWFuO1xuICBzaWxlbnQ/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IGNvbnN0IHRlbXBsYXRlc0RpciA9IHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi5cIiwgXCIuLlwiLCBcInRlbXBsYXRlc1wiKTtcblxuY29uc3QgYXZhaWxhYmxlVGVtcGxhdGVzID0gZnNcbiAgLnJlYWRkaXJTeW5jKHRlbXBsYXRlc0RpcilcbiAgLmZpbHRlcigoeCkgPT4gIXguc3RhcnRzV2l0aChcIi5cIikpO1xuZXhwb3J0IGNvbnN0IHRlbXBsYXRlczogc3RyaW5nW10gPSBbXTtcbmZvciAoY29uc3QgdGVtcGxhdGUgb2YgYXZhaWxhYmxlVGVtcGxhdGVzKSB7XG4gIHRlbXBsYXRlcy5wdXNoKHRlbXBsYXRlKTtcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGluaXQoe1xuICBjZGt0ZlZlcnNpb24sXG4gIGRlc3RpbmF0aW9uLFxuICBkaXN0LFxuICBwcm9qZWN0SWQsXG4gIHByb2plY3RJbmZvLFxuICB0ZW1wbGF0ZVBhdGgsXG4gIHNlbmRDcmFzaFJlcG9ydHMsXG4gIHByb3ZpZGVycyxcbiAgcHJvdmlkZXJzRm9yY2VMb2NhbCxcbiAgc2lsZW50LFxufTogSW5pdEFyZ3MpIHtcbiAgY29uc3QgZGVwczogYW55ID0gYXdhaXQgZGV0ZXJtaW5lRGVwcyhjZGt0ZlZlcnNpb24sIGRpc3QpO1xuXG4gIGNvbnN0IGZ1dHVyZUZsYWdzID0gT2JqZWN0LmVudHJpZXMoRlVUVVJFX0ZMQUdTKVxuICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gYCAgICBcIiR7a2V5fVwiOiBcIiR7dmFsdWV9XCJgKVxuICAgIC5qb2luKGAsXFxuYCk7XG5cbiAgYXdhaXQgc3NjYWZmKHRlbXBsYXRlUGF0aCwgZGVzdGluYXRpb24sIHtcbiAgICAuLi5kZXBzLFxuICAgIC4uLnByb2plY3RJbmZvLFxuICAgIGZ1dHVyZUZsYWdzLFxuICAgIHByb2plY3RJZCxcbiAgICBzZW5kQ3Jhc2hSZXBvcnRzLFxuICAgIHNpbGVudCxcbiAgfSk7XG4gIGNvbnN0IGNka3RmQ29uZmlnID0gQ2RrdGZDb25maWcucmVhZChkZXN0aW5hdGlvbik7XG5cbiAgbGV0IG5lZWRzR2V0ID0gZmFsc2U7XG4gIGlmIChwcm92aWRlcnMgJiYgcHJvdmlkZXJzLmxlbmd0aCkge1xuICAgIG5lZWRzR2V0ID0gYXdhaXQgcHJvdmlkZXJBZGQoe1xuICAgICAgcHJvdmlkZXJzOiBwcm92aWRlcnMsXG4gICAgICBsYW5ndWFnZTogY2RrdGZDb25maWcubGFuZ3VhZ2UsXG4gICAgICBwcm9qZWN0RGlyZWN0b3J5OiBkZXN0aW5hdGlvbixcbiAgICAgIGZvcmNlTG9jYWw6IHByb3ZpZGVyc0ZvcmNlTG9jYWwsXG4gICAgICBkaXN0LFxuICAgIH0pO1xuICB9XG4gIHJldHVybiBuZWVkc0dldDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZXBzIHtcbiAgbnBtX2Nka3RmOiBzdHJpbmc7XG4gIG5wbV9jZGt0Zl9jbGk6IHN0cmluZztcbiAgcHlwaV9jZGt0Zjogc3RyaW5nO1xuICBtdm5fY2RrdGY6IHN0cmluZztcbiAgbnVnZXRfY2RrdGY6IHN0cmluZztcbiAgZ29fY2RrdGY6IHN0cmluZztcbiAgY2RrdGZfdmVyc2lvbjogc3RyaW5nO1xuICBjb25zdHJ1Y3RzX3ZlcnNpb246IHN0cmluZztcbn1cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZXRlcm1pbmVEZXBzKFxuICB2ZXJzaW9uOiBzdHJpbmcgPSBwa2cudmVyc2lvbixcbiAgZGlzdD86IHN0cmluZyxcbik6IFByb21pc2U8RGVwcz4ge1xuICAvLyBUUzogY2RrdGYtMC4xMC4xLWRldi4yMTYwOTM4MjU4XG4gIC8vIFB5OiBjZGt0Zi0wLjEwLjEuZGV2MTY1ODgyMTQ5My53aGxcbiAgY29uc3QgcHl0aG9uVmVyc2lvbiA9IHZlcnNpb25cbiAgICAucmVwbGFjZSgvLXByZVxcLi9nLCBcIi5kZXZcIilcbiAgICAucmVwbGFjZSgvLWRldlxcLi9nLCBcIi5kZXZcIik7XG5cbiAgaWYgKGRpc3QpIHtcbiAgICAvLyBUT0RPOiBXaGF0IGFib3V0IGV4aXN0aW5nIGNka3RmIFRTL1BZIGRlcGVuZGVuY2llcz9cbiAgICBjb25zdCByZXQgPSB7XG4gICAgICBucG1fY2RrdGY6IHBhdGgucmVzb2x2ZShkaXN0LCBcImpzXCIsIGBjZGt0bkAke3ZlcnNpb259LmpzaWkudGd6YCksXG4gICAgICBucG1fY2RrdGZfY2xpOiBwYXRoLnJlc29sdmUoZGlzdCwgXCJqc1wiLCBgY2RrdG4tY2xpLSR7dmVyc2lvbn0udGd6YCksXG4gICAgICBweXBpX2Nka3RmOiBwYXRoLnJlc29sdmUoXG4gICAgICAgIGRpc3QsXG4gICAgICAgIFwicHl0aG9uXCIsXG4gICAgICAgIGBjZGt0bi0ke3B5dGhvblZlcnNpb259LXB5My1ub25lLWFueS53aGxgLFxuICAgICAgKSxcbiAgICAgIG12bl9jZGt0ZjogcGF0aC5yZXNvbHZlKFxuICAgICAgICBkaXN0LFxuICAgICAgICBcImphdmFcIixcbiAgICAgICAgYGlvL2Nka3RuL2Nka3RuLyR7dmVyc2lvbn0vY2RrdG4tJHt2ZXJzaW9ufS5qYXJgLFxuICAgICAgKSxcbiAgICAgIG51Z2V0X2Nka3RmOiBwYXRoLnJlc29sdmUoZGlzdCwgXCJkb3RuZXRcIiwgYElvLkNka3RuLiR7dmVyc2lvbn0ubnVwa2dgKSxcbiAgICAgIGdvX2Nka3RmOiBwYXRoLnJlc29sdmUoZGlzdCwgXCJnb1wiLCBgY2RrdG5gKSxcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBmaWxlIG9mIE9iamVjdC52YWx1ZXMocmV0KSkge1xuICAgICAgaWYgKCEoYXdhaXQgZnMucGF0aEV4aXN0cyhmaWxlKSkpIHtcbiAgICAgICAgdGhyb3cgRXJyb3JzLkludGVybmFsKFxuICAgICAgICAgIGB1bmFibGUgdG8gZmluZCAke2ZpbGV9IHVuZGVyIHRoZSBcImRpc3RcIiBkaXJlY3RvcnkgKCR7ZGlzdH0pYCxcbiAgICAgICAgICBuZXcgRXJyb3IoKSxcbiAgICAgICAgICB7IHZlcnNpb24gfSxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCB2ZXJzaW9ucyA9IHtcbiAgICAgIGNka3RmX3ZlcnNpb246IHZlcnNpb24sXG4gICAgICBjb25zdHJ1Y3RzX3ZlcnNpb246IGNvbnN0cnVjdHNWZXJzaW9uLFxuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4ucmV0LFxuICAgICAgLi4udmVyc2lvbnMsXG4gICAgfTtcbiAgfVxuXG4gIGlmICh2ZXJzaW9uID09PSBcIjAuMC4wXCIpIHtcbiAgICB0aHJvdyBFcnJvcnMuVXNhZ2UoXG4gICAgICBgY2Fubm90IHVzZSB2ZXJzaW9uIDAuMC4wLCB1c2UgLS1jZGt0Zi12ZXJzaW9uLCAtLWRpc3Qgb3IgQ0RLVEZfRElTVCB0byBpbnN0YWxsIGZyb20gYSBcImRpc3RcIiBkaXJlY3RvcnlgLFxuICAgICk7XG4gIH1cblxuICAvLyBkZXRlcm1pbmUgaWYgd2Ugd2FudCBhIHNwZWNpZmljIHBpbm5lZCB2ZXJzaW9uIG9yIGEgdmVyc2lvbiByYW5nZSB3ZSB0YWtlXG4gIC8vIGEgcGlubmVkIHZlcnNpb24gaWYgdmVyc2lvbiBpbmNsdWRlcyBhIGh5cGhlbiB3aGljaCBtZWFucyBpdCBpcyBhXG4gIC8vIHByZS1yZWxlYXNlIChlLmcuIFwiMC4xMi4wLXByZS5lNjgzNGQzXCIpLiBvdGhlcndpc2UsIHdlIHJlcXVpcmUgYSBjYXJldFxuICAvLyB2ZXJzaW9uLlxuICBjb25zdCB2ZXIgPSB2ZXJzaW9uLmluY2x1ZGVzKFwiLVwiKSA/IHZlcnNpb24gOiBgXiR7dmVyc2lvbn1gO1xuXG4gIHJldHVybiB7XG4gICAgY2RrdGZfdmVyc2lvbjogdmVyc2lvbixcbiAgICBjb25zdHJ1Y3RzX3ZlcnNpb246IGNvbnN0cnVjdHNWZXJzaW9uLFxuICAgIG5wbV9jZGt0ZjogYGNka3RuQCR7dmVyfWAsXG4gICAgbnBtX2Nka3RmX2NsaTogYGNka3RuLWNsaUAke3Zlcn1gLFxuICAgIHB5cGlfY2RrdGY6IGBjZGt0bn49JHtweXRob25WZXJzaW9ufWAsXG4gICAgbXZuX2Nka3RmOiB2ZXJzaW9uLFxuICAgIG51Z2V0X2Nka3RmOiB2ZXJzaW9uLFxuICAgIGdvX2Nka3RmOiBgdiR7dmVyc2lvbn1gLFxuICB9O1xufVxuIl19
|
|
159
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvaW5pdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUEwREEsb0JBMkNDO0FBMEJELHNDQWtGQztBQWpORCwrQkFBK0I7QUFDL0IsbUNBQW1DO0FBQ25DLDJDQUE2QjtBQUM3Qiw2Q0FBK0I7QUFDL0IsOENBQWdDO0FBQ2hDLDRDQUF3QztBQUV4QyxtQ0FBZ0M7QUFDaEMsaURBQWtEO0FBQ2xELGlEQUE2QztBQUM3QyxpREFBNkM7QUFFN0MsTUFBTSxlQUFlLEdBQUcsR0FBRyxFQUFFO0lBQzNCLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQztJQUMvQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDYixNQUFNLElBQUksS0FBSyxDQUFDLDZCQUE2QixDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDO0FBQ3ZELENBQUMsQ0FBQztBQUNGLE1BQU0sR0FBRyxHQUFHLGVBQWUsRUFBRSxDQUFDO0FBQzlCLE1BQU0saUJBQWlCLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUM7QUEyQnpDLFFBQUEsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFFMUUsTUFBTSxrQkFBa0IsR0FBRyxFQUFFO0tBQzFCLFdBQVcsQ0FBQyxvQkFBWSxDQUFDO0tBQ3pCLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7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LDRFQUE0RTtJQUM1RSxvRUFBb0U7SUFDcEUseUVBQXlFO0lBQ3pFLFdBQVc7SUFDWCxNQUFNLEdBQUcsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksT0FBTyxFQUFFLENBQUM7SUFFNUQsT0FBTztRQUNMLGFBQWEsRUFBRSxPQUFPO1FBQ3RCLGtCQUFrQixFQUFFLGlCQUFpQjtRQUNyQyxTQUFTLEVBQUUsU0FBUyxHQUFHLEVBQUU7UUFDekIsYUFBYSxFQUFFLGFBQWEsR0FBRyxFQUFFO1FBQ2pDLFVBQVUsRUFBRSxVQUFVLGFBQWEsRUFBRTtRQUNyQyxTQUFTLEVBQUUsT0FBTztRQUNsQixXQUFXLEVBQUUsT0FBTztRQUNwQixRQUFRLEVBQUUsSUFBSSxPQUFPLEVBQUU7S0FDeEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIEhhc2hpQ29ycCwgSW5jXG4vLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzLWV4dHJhXCI7XG5pbXBvcnQgKiBhcyBwa2dVcCBmcm9tIFwicGtnLXVwXCI7XG5pbXBvcnQgeyBFcnJvcnMgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcblxuaW1wb3J0IHsgc3NjYWZmIH0gZnJvbSBcInNzY2FmZlwiO1xuaW1wb3J0IHsgRlVUVVJFX0ZMQUdTIH0gZnJvbSBcImNka3RuL2xpYi9mZWF0dXJlc1wiO1xuaW1wb3J0IHsgQ2RrdGZDb25maWcgfSBmcm9tIFwiLi9jZGt0Zi1jb25maWdcIjtcbmltcG9ydCB7IHByb3ZpZGVyQWRkIH0gZnJvbSBcIi4vcHJvdmlkZXItYWRkXCI7XG5cbmNvbnN0IHJlYWRQYWNrYWdlSnNvbiA9ICgpID0+IHtcbiAgY29uc3QgcGtnUGF0aCA9IHBrZ1VwLnN5bmMoeyBjd2Q6IF9fZGlybmFtZSB9KTtcbiAgaWYgKCFwa2dQYXRoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwidW5hYmxlIHRvIGZpbmQgcGFja2FnZS5qc29uXCIpO1xuICB9XG5cbiAgcmV0dXJuIEpTT04ucGFyc2UoZnMucmVhZEZpbGVTeW5jKHBrZ1BhdGgsIFwidXRmLThcIikpO1xufTtcbmNvbnN0IHBrZyA9IHJlYWRQYWNrYWdlSnNvbigpO1xuY29uc3QgY29uc3RydWN0c1ZlcnNpb24gPSBwa2cuZGVwZW5kZW5jaWVzLmNvbnN0cnVjdHM7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxQcm9qZWN0IHtcbiAgRGVzY3JpcHRpb246IHN0cmluZztcbiAgTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlbW90ZVByb2plY3QgZXh0ZW5kcyBMb2NhbFByb2plY3Qge1xuICBPcmdhbml6YXRpb25OYW1lOiBzdHJpbmc7XG4gIFdvcmtzcGFjZU5hbWU6IHN0cmluZztcbiAgVGVycmFmb3JtUmVtb3RlSG9zdG5hbWU6IHN0cmluZztcbn1cbmV4cG9ydCB0eXBlIFByb2plY3QgPSBMb2NhbFByb2plY3QgfCBSZW1vdGVQcm9qZWN0O1xuXG5leHBvcnQgdHlwZSBJbml0QXJncyA9IHtcbiAgY2RrdGZWZXJzaW9uPzogc3RyaW5nO1xuICBkZXN0aW5hdGlvbjogc3RyaW5nO1xuICBkaXN0Pzogc3RyaW5nO1xuICBwcm92aWRlcnM/OiBzdHJpbmdbXTtcbiAgcHJvdmlkZXJzRm9yY2VMb2NhbD86IGJvb2xlYW47XG4gIHByb2plY3RJZDogc3RyaW5nO1xuICBwcm9qZWN0SW5mbzogUHJvamVjdDtcbiAgdGVtcGxhdGVQYXRoOiBzdHJpbmc7XG4gIHNlbmRDcmFzaFJlcG9ydHM6IGJvb2xlYW47XG4gIHNpbGVudD86IGJvb2xlYW47XG59O1xuXG5leHBvcnQgY29uc3QgdGVtcGxhdGVzRGlyID0gcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLlwiLCBcIi4uXCIsIFwidGVtcGxhdGVzXCIpO1xuXG5jb25zdCBhdmFpbGFibGVUZW1wbGF0ZXMgPSBmc1xuICAucmVhZGRpclN5bmModGVtcGxhdGVzRGlyKVxuICAuZmlsdGVyKCh4KSA9PiAheC5zdGFydHNXaXRoKFwiLlwiKSk7XG5leHBvcnQgY29uc3QgdGVtcGxhdGVzOiBzdHJpbmdbXSA9IFtdO1xuZm9yIChjb25zdCB0ZW1wbGF0ZSBvZiBhdmFpbGFibGVUZW1wbGF0ZXMpIHtcbiAgdGVtcGxhdGVzLnB1c2godGVtcGxhdGUpO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW5pdCh7XG4gIGNka3RmVmVyc2lvbixcbiAgZGVzdGluYXRpb24sXG4gIGRpc3QsXG4gIHByb2plY3RJZCxcbiAgcHJvamVjdEluZm8sXG4gIHRlbXBsYXRlUGF0aCxcbiAgc2VuZENyYXNoUmVwb3J0cyxcbiAgcHJvdmlkZXJzLFxuICBwcm92aWRlcnNGb3JjZUxvY2FsLFxuICBzaWxlbnQsXG59OiBJbml0QXJncykge1xuICBjb25zdCBkZXBzOiBhbnkgPSBhd2FpdCBkZXRlcm1pbmVEZXBzKFxuICAgIGNka3RmVmVyc2lvbixcbiAgICBkaXN0LFxuICAgIHBhdGguYmFzZW5hbWUodGVtcGxhdGVQYXRoKSxcbiAgKTtcblxuICBjb25zdCBmdXR1cmVGbGFncyA9IE9iamVjdC5lbnRyaWVzKEZVVFVSRV9GTEFHUylcbiAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IGAgICAgXCIke2tleX1cIjogXCIke3ZhbHVlfVwiYClcbiAgICAuam9pbihgLFxcbmApO1xuXG4gIGF3YWl0IHNzY2FmZih0ZW1wbGF0ZVBhdGgsIGRlc3RpbmF0aW9uLCB7XG4gICAgLi4uZGVwcyxcbiAgICAuLi5wcm9qZWN0SW5mbyxcbiAgICBmdXR1cmVGbGFncyxcbiAgICBwcm9qZWN0SWQsXG4gICAgc2VuZENyYXNoUmVwb3J0cyxcbiAgICBzaWxlbnQsXG4gIH0pO1xuICBjb25zdCBjZGt0ZkNvbmZpZyA9IENka3RmQ29uZmlnLnJlYWQoZGVzdGluYXRpb24pO1xuXG4gIGxldCBuZWVkc0dldCA9IGZhbHNlO1xuICBpZiAocHJvdmlkZXJzICYmIHByb3ZpZGVycy5sZW5ndGgpIHtcbiAgICBuZWVkc0dldCA9IGF3YWl0IHByb3ZpZGVyQWRkKHtcbiAgICAgIHByb3ZpZGVyczogcHJvdmlkZXJzLFxuICAgICAgbGFuZ3VhZ2U6IGNka3RmQ29uZmlnLmxhbmd1YWdlLFxuICAgICAgcHJvamVjdERpcmVjdG9yeTogZGVzdGluYXRpb24sXG4gICAgICBmb3JjZUxvY2FsOiBwcm92aWRlcnNGb3JjZUxvY2FsLFxuICAgICAgZGlzdCxcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gbmVlZHNHZXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwcyB7XG4gIG5wbV9jZGt0Zjogc3RyaW5nO1xuICBucG1fY2RrdGZfY2xpOiBzdHJpbmc7XG4gIHB5cGlfY2RrdGY6IHN0cmluZztcbiAgbXZuX2Nka3RmOiBzdHJpbmc7XG4gIG51Z2V0X2Nka3RmOiBzdHJpbmc7XG4gIGdvX2Nka3RmOiBzdHJpbmc7XG4gIGNka3RmX3ZlcnNpb246IHN0cmluZztcbiAgY29uc3RydWN0c192ZXJzaW9uOiBzdHJpbmc7XG59XG50eXBlIERpc3RLZXkgPSBFeGNsdWRlPGtleW9mIERlcHMsIFwiY2RrdGZfdmVyc2lvblwiIHwgXCJjb25zdHJ1Y3RzX3ZlcnNpb25cIj47XG5cbi8vIEVhY2ggYnVpbHQtaW4gdGVtcGxhdGUgb25seSBjb25zdW1lcyB0aGUgZGlzdCBhcnRpZmFjdCBmb3IgaXRzIG93blxuLy8gbGFuZ3VhZ2UuIFNraXBwaW5nIHRoZSBvdGhlcnMgbGV0cyBgY2RrdG4gaW5pdCAtLWRpc3RgIHdvcmsgd2hlbiBvbmx5XG4vLyBzb21lIGxhbmd1YWdlIGRpc3RzIGFyZSBwcmVzZW50IChlLmcuIENJIHJhbiBgeWFybiBwYWNrYWdlOmpzYCBvbmx5KS5cbmNvbnN0IGRpc3RLZXlzQnlUZW1wbGF0ZTogUmVjb3JkPHN0cmluZywgRGlzdEtleVtdPiA9IHtcbiAgdHlwZXNjcmlwdDogW1wibnBtX2Nka3RmXCJdLFxuICBweXRob246IFtcInB5cGlfY2RrdGZcIl0sXG4gIFwicHl0aG9uLXBpcFwiOiBbXCJweXBpX2Nka3RmXCJdLFxuICBqYXZhOiBbXCJtdm5fY2RrdGZcIl0sXG4gIGNzaGFycDogW1wibnVnZXRfY2RrdGZcIl0sXG4gIGdvOiBbXCJnb19jZGt0ZlwiXSxcbn07XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZXRlcm1pbmVEZXBzKFxuICB2ZXJzaW9uOiBzdHJpbmcgPSBwa2cudmVyc2lvbixcbiAgZGlzdD86IHN0cmluZyxcbiAgdGVtcGxhdGU/OiBzdHJpbmcsXG4pOiBQcm9taXNlPERlcHM+IHtcbiAgLy8gVFM6IGNka3RmLTAuMTAuMS1kZXYuMjE2MDkzODI1OFxuICAvLyBQeTogY2RrdGYtMC4xMC4xLmRldjE2NTg4MjE0OTMud2hsXG4gIGNvbnN0IHB5dGhvblZlcnNpb24gPSB2ZXJzaW9uXG4gICAgLnJlcGxhY2UoLy1wcmVcXC4vZywgXCIuZGV2XCIpXG4gICAgLnJlcGxhY2UoLy1kZXZcXC4vZywgXCIuZGV2XCIpO1xuXG4gIGlmIChkaXN0KSB7XG4gICAgLy8gVE9ETzogV2hhdCBhYm91dCBleGlzdGluZyBjZGt0ZiBUUy9QWSBkZXBlbmRlbmNpZXM/XG4gICAgY29uc3QgcmV0ID0ge1xuICAgICAgbnBtX2Nka3RmOiBwYXRoLnJlc29sdmUoZGlzdCwgXCJqc1wiLCBgY2RrdG5AJHt2ZXJzaW9ufS5qc2lpLnRnemApLFxuICAgICAgbnBtX2Nka3RmX2NsaTogcGF0aC5yZXNvbHZlKGRpc3QsIFwianNcIiwgYGNka3RuLWNsaS0ke3ZlcnNpb259LnRnemApLFxuICAgICAgcHlwaV9jZGt0ZjogcGF0aC5yZXNvbHZlKFxuICAgICAgICBkaXN0LFxuICAgICAgICBcInB5dGhvblwiLFxuICAgICAgICBgY2RrdG4tJHtweXRob25WZXJzaW9ufS1weTMtbm9uZS1hbnkud2hsYCxcbiAgICAgICksXG4gICAgICBtdm5fY2RrdGY6IHBhdGgucmVzb2x2ZShcbiAgICAgICAgZGlzdCxcbiAgICAgICAgXCJqYXZhXCIsXG4gICAgICAgIGBpby9jZGt0bi9jZGt0bi8ke3ZlcnNpb259L2Nka3RuLSR7dmVyc2lvbn0uamFyYCxcbiAgICAgICksXG4gICAgICBudWdldF9jZGt0ZjogcGF0aC5yZXNvbHZlKGRpc3QsIFwiZG90bmV0XCIsIGBJby5DZGt0bi4ke3ZlcnNpb259Lm51cGtnYCksXG4gICAgICBnb19jZGt0ZjogcGF0aC5yZXNvbHZlKGRpc3QsIFwiZ29cIiwgYGNka3RuYCksXG4gICAgfTtcblxuICAgIC8vIElmIHdlIGtub3cgdGhlIHRlbXBsYXRlLCBvbmx5IHZhbGlkYXRlIGl0cyBhcnRpZmFjdDsgb3RoZXJ3aXNlIGZhbGxcbiAgICAvLyBiYWNrIHRvIHZhbGlkYXRpbmcgZXZlcnl0aGluZyAocHJlc2VydmVzIHByaW9yIGJlaGF2aW9yIGZvciB1bmtub3duIC9cbiAgICAvLyByZW1vdGUgdGVtcGxhdGVzKS5cbiAgICBjb25zdCBrZXlzVG9WYWxpZGF0ZTogRGlzdEtleVtdID1cbiAgICAgIHRlbXBsYXRlICYmIGRpc3RLZXlzQnlUZW1wbGF0ZVt0ZW1wbGF0ZV1cbiAgICAgICAgPyBkaXN0S2V5c0J5VGVtcGxhdGVbdGVtcGxhdGVdXG4gICAgICAgIDogKE9iamVjdC5rZXlzKHJldCkgYXMgRGlzdEtleVtdKTtcblxuICAgIGZvciAoY29uc3Qga2V5IG9mIGtleXNUb1ZhbGlkYXRlKSB7XG4gICAgICBjb25zdCBmaWxlID0gcmV0W2tleV07XG4gICAgICBpZiAoIShhd2FpdCBmcy5wYXRoRXhpc3RzKGZpbGUpKSkge1xuICAgICAgICB0aHJvdyBFcnJvcnMuSW50ZXJuYWwoXG4gICAgICAgICAgYHVuYWJsZSB0byBmaW5kICR7ZmlsZX0gdW5kZXIgdGhlIFwiZGlzdFwiIGRpcmVjdG9yeSAoJHtkaXN0fSlgLFxuICAgICAgICAgIG5ldyBFcnJvcigpLFxuICAgICAgICAgIHsgdmVyc2lvbiB9LFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHZlcnNpb25zID0ge1xuICAgICAgY2RrdGZfdmVyc2lvbjogdmVyc2lvbixcbiAgICAgIGNvbnN0cnVjdHNfdmVyc2lvbjogY29uc3RydWN0c1ZlcnNpb24sXG4gICAgfTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5yZXQsXG4gICAgICAuLi52ZXJzaW9ucyxcbiAgICB9O1xuICB9XG5cbiAgaWYgKHZlcnNpb24gPT09IFwiMC4wLjBcIikge1xuICAgIHRocm93IEVycm9ycy5Vc2FnZShcbiAgICAgIGBjYW5ub3QgdXNlIHZlcnNpb24gMC4wLjAsIHVzZSAtLWNka3RmLXZlcnNpb24sIC0tZGlzdCBvciBDREtURl9ESVNUIHRvIGluc3RhbGwgZnJvbSBhIFwiZGlzdFwiIGRpcmVjdG9yeWAsXG4gICAgKTtcbiAgfVxuXG4gIC8vIGRldGVybWluZSBpZiB3ZSB3YW50IGEgc3BlY2lmaWMgcGlubmVkIHZlcnNpb24gb3IgYSB2ZXJzaW9uIHJhbmdlIHdlIHRha2VcbiAgLy8gYSBwaW5uZWQgdmVyc2lvbiBpZiB2ZXJzaW9uIGluY2x1ZGVzIGEgaHlwaGVuIHdoaWNoIG1lYW5zIGl0IGlzIGFcbiAgLy8gcHJlLXJlbGVhc2UgKGUuZy4gXCIwLjEyLjAtcHJlLmU2ODM0ZDNcIikuIG90aGVyd2lzZSwgd2UgcmVxdWlyZSBhIGNhcmV0XG4gIC8vIHZlcnNpb24uXG4gIGNvbnN0IHZlciA9IHZlcnNpb24uaW5jbHVkZXMoXCItXCIpID8gdmVyc2lvbiA6IGBeJHt2ZXJzaW9ufWA7XG5cbiAgcmV0dXJuIHtcbiAgICBjZGt0Zl92ZXJzaW9uOiB2ZXJzaW9uLFxuICAgIGNvbnN0cnVjdHNfdmVyc2lvbjogY29uc3RydWN0c1ZlcnNpb24sXG4gICAgbnBtX2Nka3RmOiBgY2RrdG5AJHt2ZXJ9YCxcbiAgICBucG1fY2RrdGZfY2xpOiBgY2RrdG4tY2xpQCR7dmVyfWAsXG4gICAgcHlwaV9jZGt0ZjogYGNka3Rufj0ke3B5dGhvblZlcnNpb259YCxcbiAgICBtdm5fY2RrdGY6IHZlcnNpb24sXG4gICAgbnVnZXRfY2RrdGY6IHZlcnNpb24sXG4gICAgZ29fY2RrdGY6IGB2JHt2ZXJzaW9ufWAsXG4gIH07XG59XG4iXX0=
|
|
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
|
@@ -92,4 +102,4 @@ class LocalProviderConstraints {
|
|
|
92
102
|
}
|
|
93
103
|
}
|
|
94
104
|
exports.LocalProviderConstraints = LocalProviderConstraints;
|
|
95
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtcHJvdmlkZXItY29uc3RyYWludHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbGliL2xvY2FsLXByb3ZpZGVyLWNvbnN0cmFpbnRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLCtCQUErQjtBQUMvQixtQ0FBbUM7QUFDbkMsd0RBQTBCO0FBQzFCLGdEQUF3QjtBQUN4Qiw0Q0FBZ0Q7QUFDaEQsaURBQTZDO0FBRTdDLHVDQUF5QjtBQUV6QixNQUFNLGVBQWUsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9CLEtBQUssRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFO0lBQ2pCLFNBQVMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztDQUNoQyxDQUFDLENBQUM7QUFJSCxvQ0FBb0M7QUFDcEMsc0VBQXNFO0FBQ3RFOzs7R0FHRztBQUNILE1BQWEsd0JBQXdCO0lBR25DLElBQVksWUFBWTtRQUN0QixNQUFNLE1BQU0sR0FBRywwQkFBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2xDLE9BQU8sY0FBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLEtBQUssQ0FBQyx3QkFBd0I7UUFDcEMsSUFBSSxlQUFlLENBQUM7UUFDcEIsSUFBSSxDQUFDO1lBQ0gsZUFBZSxHQUFHLE1BQU0sa0JBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNqRSxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNYLGdFQUFnRTtZQUNoRSxnQkFBTSxDQUFDLEtBQUssQ0FBQyx1Q0FBdUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsV0FBVyxHQUFHLFNBQVMsQ0FBQztZQUM3QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksbUJBQW1CLENBQUM7UUFDeEIsSUFBSSxDQUFDO1lBQ0gsbUJBQW1CLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7WUFDekUsbUJBQW1CLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQ2hELE1BQU0sQ0FBQyxPQUFPLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxDQUMvQyxDQUFDLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3JCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDMUMsQ0FBQyxDQUNGLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLE1BQU0sZ0JBQU0sQ0FBQyxRQUFRLENBQ25CLHFFQUFxRSxFQUNyRSxDQUFDLENBQ0YsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUFJLENBQUMsV0FBVyxHQUFHLG1CQUFtQixDQUFDO0lBQ3pDLENBQUM7SUFFTSxLQUFLLENBQUMsMEJBQTBCO1FBQ3JDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQixDQUFDO1FBRUQsTUFBTSxJQUFJLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUV0QyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDMUIsQ0FBQztJQUVNLEtBQUssQ0FBQyxxQkFBcUIsQ0FDaEMsWUFBb0I7UUFFcEIsTUFBTSxXQUFXLEdBQUcsTUFBTSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUU1RCxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDakIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsTUFBTSxrQkFBa0IsR0FDdEIsV0FBVyxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsT0FBTyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDO0NBQ0Y7QUFsRUQsNERBa0VDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluY1xuLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1QTC0yLjBcbmltcG9ydCBmcyBmcm9tIFwiZnMtZXh0cmFcIjtcbmltcG9ydCBwYXRoIGZyb20gXCJwYXRoXCI7XG5pbXBvcnQgeyBFcnJvcnMsIGxvZ2dlciB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHsgQ2RrdGZDb25maWcgfSBmcm9tIFwiLi9jZGt0Zi1jb25maWdcIjtcblxuaW1wb3J0ICogYXMgeiBmcm9tIFwiem9kXCI7XG5cbmNvbnN0IGNvbnN0cmFpbnRzVHlwZSA9IHoub2JqZWN0KHtcbiAgY2RrdGY6IHouc3RyaW5nKCksXG4gIHByb3ZpZGVyczogei5yZWNvcmQoei5zdHJpbmcoKSksXG59KTtcblxuZXhwb3J0IHR5cGUgQ29uc3RyYWludHMgPSB6LmluZmVyPHR5cGVvZiBjb25zdHJhaW50c1R5cGU+O1xuXG4vLyBUT0RPOiBtb3ZlIHRoaXMgdG8gQGNka3RuL2NvbW1vbnNcbi8vIHRyYWNrZWQgaGVyZSBodHRwczovL2dpdGh1Yi5jb20vaGFzaGljb3JwL3RlcnJhZm9ybS1jZGsvaXNzdWVzLzE4MTRcbi8qKlxuICogQ2xhc3MgdG8gaGVscCB3aXRoIHJlYWRpbmcgYGNvbnN0cmFpbnRzLmpzb25gIGZpbGVcbiAqIHB1Ymxpc2hlZCBieSBgcHJvdmlkZXIgZ2V0YCBvciBgcHJvdmlkZXIgYWRkYCBjb21tYW5kc1xuICovXG5leHBvcnQgY2xhc3MgTG9jYWxQcm92aWRlckNvbnN0cmFpbnRzIHtcbiAgcHJpdmF0ZSBjb25zdHJhaW50czogQ29uc3RyYWludHMgfCB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBnZXQganNvbkZpbGVQYXRoKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29uZmlnID0gQ2RrdGZDb25maWcucmVhZCgpO1xuICAgIHJldHVybiBwYXRoLnJlc29sdmUoY29uZmlnLmNvZGVNYWtlck91dHB1dCwgXCJjb25zdHJhaW50cy5qc29uXCIpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyByZWFkTG9jYWxDb25zdHJhaW50c0pzb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgbGV0IGNvbnN0cmFpbnRzSnNvbjtcbiAgICB0cnkge1xuICAgICAgY29uc3RyYWludHNKc29uID0gYXdhaXQgZnMucmVhZEZpbGUodGhpcy5qc29uRmlsZVBhdGgsIFwidXRmOFwiKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICAvLyBJZiB3ZSBjYW5ub3QgcmVhZCB0aGUgY29uc3RyYWludHMuanNvbiBmaWxlLCBpdCBtYXkgbm90IGV4aXN0XG4gICAgICBsb2dnZXIuZGVidWcoXCJjb25zdHJhaW50cy5qc29uIGZpbGUgcmVhZGluZyBlcnJvcjogXCIsIGUpO1xuICAgICAgdGhpcy5jb25zdHJhaW50cyA9IHVuZGVmaW5lZDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgcHJvdmlkZXJDb25zdHJhaW50cztcbiAgICB0cnkge1xuICAgICAgcHJvdmlkZXJDb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzVHlwZS5wYXJzZShKU09OLnBhcnNlKGNvbnN0cmFpbnRzSnNvbikpO1xuICAgICAgcHJvdmlkZXJDb25zdHJhaW50cy5wcm92aWRlcnMgPSBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICAgIE9iamVjdC5lbnRyaWVzKHByb3ZpZGVyQ29uc3RyYWludHMucHJvdmlkZXJzKS5tYXAoXG4gICAgICAgICAgKFtuYW1lLCBjb25zdHJhaW50XSkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIFtuYW1lLnRvTG93ZXJDYXNlKCksIGNvbnN0cmFpbnRdO1xuICAgICAgICAgIH0sXG4gICAgICAgICksXG4gICAgICApO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgdGhyb3cgRXJyb3JzLkV4dGVybmFsKFxuICAgICAgICBcImNvbnN0cmFpbnRzLmpzb24gZmlsZSBpcyBtYWxmb3JtZWQuIFRoZSByb290IG11c3QgYmUgYSBKU09OIG9iamVjdC5cIixcbiAgICAgICAgZSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5jb25zdHJhaW50cyA9IHByb3ZpZGVyQ29uc3RyYWludHM7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgY29uc3RyYWludHNGb3JBbGxQcm92aWRlcnMoKSB7XG4gICAgaWYgKHRoaXMuY29uc3RyYWludHMpIHtcbiAgICAgIHJldHVybiB0aGlzLmNvbnN0cmFpbnRzO1xuICAgIH1cblxuICAgIGF3YWl0IHRoaXMucmVhZExvY2FsQ29uc3RyYWludHNKc29uKCk7XG5cbiAgICByZXR1cm4gdGhpcy5jb25zdHJhaW50cztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBjb25zdHJhaW50Rm9yUHJvdmlkZXIoXG4gICAgcHJvdmlkZXJOYW1lOiBzdHJpbmcsXG4gICk6IFByb21pc2U8c3RyaW5nIHwgbnVsbD4ge1xuICAgIGNvbnN0IGNvbnN0cmFpbnRzID0gYXdhaXQgdGhpcy5jb25zdHJhaW50c0ZvckFsbFByb3ZpZGVycygpO1xuXG4gICAgaWYgKCFjb25zdHJhaW50cykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvdmlkZXJDb25zdHJhaW50ID1cbiAgICAgIGNvbnN0cmFpbnRzLnByb3ZpZGVyc1twcm92aWRlck5hbWUudG9Mb3dlckNhc2UoKV07XG4gICAgaWYgKCFwcm92aWRlck5hbWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiBwcm92aWRlckNvbnN0cmFpbnQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy-machine.d.ts","sourceRoot":"","sources":["../../../src/lib/models/deploy-machine.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"deploy-machine.d.ts","sourceRoot":"","sources":["../../../src/lib/models/deploy-machine.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
7
7
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
8
|
};
|
|
9
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.
|
|
10
|
+
exports.deployMachine = void 0;
|
|
11
|
+
exports.isDeployEvent = isDeployEvent;
|
|
12
|
+
exports.extractVariableNameFromPrompt = extractVariableNameFromPrompt;
|
|
13
|
+
exports.bufferUnterminatedLines = bufferUnterminatedLines;
|
|
14
|
+
exports.handleLineReceived = handleLineReceived;
|
|
15
|
+
exports.terraformPtyService = terraformPtyService;
|
|
16
|
+
exports.createAndStartDeployService = createAndStartDeployService;
|
|
17
|
+
exports.createAndStartDestroyService = createAndStartDestroyService;
|
|
11
18
|
const xstate_1 = require("xstate");
|
|
12
19
|
const commons_1 = require("@cdktn/commons");
|
|
13
20
|
const errors_1 = require("../errors");
|
|
@@ -17,7 +24,6 @@ const interactive_process_1 = require("./interactive-process");
|
|
|
17
24
|
function isDeployEvent(event, type) {
|
|
18
25
|
return event.type === type;
|
|
19
26
|
}
|
|
20
|
-
exports.isDeployEvent = isDeployEvent;
|
|
21
27
|
function extractVariableNameFromPrompt(line) {
|
|
22
28
|
const noColorLine = (0, strip_ansi_1.default)(line);
|
|
23
29
|
const lines = noColorLine.split("\n");
|
|
@@ -27,7 +33,6 @@ function extractVariableNameFromPrompt(line) {
|
|
|
27
33
|
}
|
|
28
34
|
return lineWithVar.split("var.")[1].trim();
|
|
29
35
|
}
|
|
30
|
-
exports.extractVariableNameFromPrompt = extractVariableNameFromPrompt;
|
|
31
36
|
// used to only send completed lines (= with a newline at the end of them) to our logic (#2827)
|
|
32
37
|
function bufferUnterminatedLines(handler) {
|
|
33
38
|
let buffer = "";
|
|
@@ -44,7 +49,6 @@ function bufferUnterminatedLines(handler) {
|
|
|
44
49
|
bufferedReceiverFunction.getBuffer = () => buffer;
|
|
45
50
|
return bufferedReceiverFunction;
|
|
46
51
|
}
|
|
47
|
-
exports.bufferUnterminatedLines = bufferUnterminatedLines;
|
|
48
52
|
function handleLineReceived(send) {
|
|
49
53
|
return (output) => {
|
|
50
54
|
let hideOutput = false;
|
|
@@ -92,7 +96,6 @@ function handleLineReceived(send) {
|
|
|
92
96
|
}
|
|
93
97
|
};
|
|
94
98
|
}
|
|
95
|
-
exports.handleLineReceived = handleLineReceived;
|
|
96
99
|
exports.deployMachine = (0, xstate_1.createMachine)({
|
|
97
100
|
predictableActionArguments: true,
|
|
98
101
|
context: {},
|
|
@@ -214,7 +217,6 @@ function terraformPtyService(_context, event, spawn = interactive_process_1.spaw
|
|
|
214
217
|
};
|
|
215
218
|
};
|
|
216
219
|
}
|
|
217
|
-
exports.terraformPtyService = terraformPtyService;
|
|
218
220
|
function createAndStartDeployService(options) {
|
|
219
221
|
var _a, _b;
|
|
220
222
|
const service = (0, xstate_1.interpret)(exports.deployMachine);
|
|
@@ -247,7 +249,6 @@ function createAndStartDeployService(options) {
|
|
|
247
249
|
service.send({ type: "START", pty: config });
|
|
248
250
|
return service;
|
|
249
251
|
}
|
|
250
|
-
exports.createAndStartDeployService = createAndStartDeployService;
|
|
251
252
|
function createAndStartDestroyService(options) {
|
|
252
253
|
var _a, _b;
|
|
253
254
|
const service = (0, xstate_1.interpret)(exports.deployMachine);
|
|
@@ -279,5 +280,4 @@ function createAndStartDestroyService(options) {
|
|
|
279
280
|
service.send({ type: "START", pty: config });
|
|
280
281
|
return service;
|
|
281
282
|
}
|
|
282
|
-
exports.createAndStartDestroyService = createAndStartDestroyService;
|
|
283
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LW1hY2hpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL21vZGVscy9kZXBsb3ktbWFjaGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7QUFFSCxtQ0FRZ0I7QUFDaEIsNENBQWdEO0FBQ2hELHNDQUE0QztBQUM1Qyw0REFBbUM7QUFDbkMsMkJBQXlCO0FBQ3pCLCtEQUcrQjtBQTRCL0IsU0FBZ0IsYUFBYSxDQUMzQixLQUFrQixFQUNsQixJQUFxQjtJQUVyQixPQUFPLEtBQUssQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO0FBQzdCLENBQUM7QUFMRCxzQ0FLQztBQWdDRCxTQUFnQiw2QkFBNkIsQ0FBQyxJQUFZO0lBQ3hELE1BQU0sV0FBVyxHQUFHLElBQUEsb0JBQVMsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsTUFBTSxnQkFBTSxDQUFDLFFBQVEsQ0FDbkIsMkNBQTJDLElBQUksa0ZBQWtGLENBQ2xJLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzdDLENBQUM7QUFWRCxzRUFVQztBQVdELCtGQUErRjtBQUMvRixTQUFnQix1QkFBdUIsQ0FDckMsT0FBaUM7SUFFakMsSUFBSSxNQUFNLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLFNBQVMsd0JBQXdCLENBQUMsTUFBYztRQUM5QyxNQUFNLElBQUksTUFB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Q0osT0FBTyxFQUFFO1lBQ1AsR0FBRyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1lBQ3BCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBZ0MsRUFBRSwwREFBMEQ7U0FDMUc7S0FDRixDQUFDO0lBRUYsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFN0MsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQztBQWxERCxvRUFrREMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCAoYykgSGFzaGlDb3JwLCBJbmMuXG4gKiBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTVBMLTIuMFxuICovXG5cbmltcG9ydCB7XG4gIGNyZWF0ZU1hY2hpbmUsXG4gIHNlbmQsXG4gIGludGVycHJldCxcbiAgRXZlbnRPYmplY3QsXG4gIGFzc2lnbixcbiAgU2VuZGVyLFxuICBSZWNlaXZlcixcbn0gZnJvbSBcInhzdGF0ZVwiO1xuaW1wb3J0IHsgRXJyb3JzLCBsb2dnZXIgfSBmcm9tIFwiQGNka3RuL2NvbW1vbnNcIjtcbmltcG9ydCB7IG1pc3NpbmdWYXJpYWJsZSB9IGZyb20gXCIuLi9lcnJvcnNcIjtcbmltcG9ydCBzdHJpcEFuc2kgZnJvbSBcInN0cmlwLWFuc2lcIjtcbmltcG9ydCB7IEVPTCB9IGZyb20gXCJvc1wiO1xuaW1wb3J0IHtcbiAgc3Bhd25JbnRlcmFjdGl2ZSxcbiAgSW50ZXJhY3RpdmVTcGF3bkNvbmZpZyxcbn0gZnJvbSBcIi4vaW50ZXJhY3RpdmUtcHJvY2Vzc1wiO1xuXG5pbnRlcmZhY2UgRGVwbG95Q29udGV4dCB7XG4gIGV4aXRDb2RlPzogbnVtYmVyO1xuICAvKipcbiAgICogVGVycmFmb3JtIHdpbGwgZXhpdCB3aXRoIDEgaWYgaXQgd2FzIGNhbmNlbGxlZCwgYnV0IHdlIGRvbid0IHdhbnQgdG8gZmFpbCBpbiB0aGF0IGNhc2VcbiAgICovXG4gIGNhbmNlbGxlZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIERlcGxveUV2ZW50ID1cbiAgfCB7IHR5cGU6IFwiU1RBUlRcIjsgcHR5OiBJbnRlcmFjdGl2ZVNwYXduQ29uZmlnIH1cbiAgfCB7IHR5cGU6IFwiU1RPUFwiIH1cbiAgfCB7IHR5cGU6IFwiU0VORF9MSU5FXCI7IGlucHV0OiBzdHJpbmcgfVxuICB8IHsgdHlwZTogXCJPVVRQVVRfUkVDRUlWRURcIjsgb3V0cHV0OiBzdHJpbmcgfVxuICB8IHsgdHlwZTogXCJBUFBST1ZFRF9FWFRFUk5BTExZXCIgfSAvLyBlLmcuIHZpYSBURkMgVUkgb3IgQVBJXG4gIHwgeyB0eXBlOiBcIlJFSkVDVEVEX0VYVEVSTkFMTFlcIiB9XG4gIHwgeyB0eXBlOiBcIk9WRVJSSURERU5fRVhURVJOQUxMWVwiIH1cbiAgfCB7IHR5cGU6IFwiT1ZFUlJJREVfUkVKRUNURURfRVhURVJOQUxMWVwiIH1cbiAgfCB7IHR5cGU6IFwiT1ZFUlJJREVcIiB9XG4gIHwgeyB0eXBlOiBcIlJFSkVDVF9PVkVSUklERVwiIH1cbiAgfCB7IHR5cGU6IFwiUkVRVUVTVF9BUFBST1ZBTFwiIH1cbiAgfCB7IHR5cGU6IFwiVkFSSUFCTEVfTUlTU0lOR1wiOyB2YXJpYWJsZU5hbWU6IHN0cmluZyB9XG4gIHwgeyB0eXBlOiBcIlJFUVVFU1RfU0VOVElORUxfT1ZFUlJJREVcIiB9XG4gIHwgeyB0eXBlOiBcIkFQUFJPVkVcIiB9XG4gIHwgeyB0eXBlOiBcIlJFSkVDVFwiIH1cbiAgfCB7IHR5cGU6IFwiRVhJVEVEXCI7IGV4aXRDb2RlOiBudW1iZXIgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRGVwbG95RXZlbnQ8RGVwbG95RXZlbnRUeXBlIGV4dGVuZHMgRGVwbG95RXZlbnRbXCJ0eXBlXCJdPihcbiAgZXZlbnQ6IEV2ZW50T2JqZWN0LFxuICB0eXBlOiBEZXBsb3lFdmVudFR5cGUsXG4pOiBldmVudCBpcyBEZXBsb3lFdmVudCAmIHsgdHlwZTogRGVwbG95RXZlbnRUeXBlIH0ge1xuICByZXR1cm4gZXZlbnQudHlwZSA9PT0gdHlwZTtcbn1cblxuZXhwb3J0IHR5cGUgRGVwbG95U3RhdGUgPVxuICB8IHtcbiAgICAgIHZhbHVlOiBcImlkbGVcIjtcbiAgICAgIGNvbnRleHQ6IERlcGxveUNvbnRleHQ7XG4gICAgfVxuICB8IHtcbiAgICAgIHZhbHVlOiBcInJ1bm5pbmdcIjtcbiAgICAgIGNvbnRleHQ6IERlcGxveUNvbnRleHQ7XG4gICAgfVxuICB8IHtcbiAgICAgIHZhbHVlOiB7IHJ1bm5pbmc6IFwicHJvY2Vzc2luZ1wiIH07XG4gICAgICBjb250ZXh0OiBEZXBsb3lDb250ZXh0O1xuICAgIH1cbiAgfCB7XG4gICAgICB2YWx1ZTogeyBydW5uaW5nOiBcImF3YWl0aW5nX2FwcHJvdmFsXCIgfTtcbiAgICAgIGNvbnRleHQ6IERlcGxveUNvbnRleHQ7XG4gICAgfVxuICB8IHtcbiAgICAgIHZhbHVlOiB7IHJ1bm5pbmc6IFwiYXdhaXRpbmdfc2VudGluZWxfb3ZlcnJpZGVcIiB9O1xuICAgICAgY29udGV4dDogRGVwbG95Q29udGV4dDtcbiAgICB9XG4gIHwge1xuICAgICAgdmFsdWU6IFwiZXhpdGVkXCI7XG4gICAgICBjb250ZXh0OiBEZXBsb3lDb250ZXh0ICYgeyBleGl0Q29kZTogbnVtYmVyIH07XG4gICAgfVxuICB8IHtcbiAgICAgIHZhbHVlOiBcInN0b3BwZWRcIjtcbiAgICAgIGNvbnRleHQ6IERlcGxveUNvbnRleHQ7XG4gICAgfTtcblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RWYXJpYWJsZU5hbWVGcm9tUHJvbXB0KGxpbmU6IHN0cmluZykge1xuICBjb25zdCBub0NvbG9yTGluZSA9IHN0cmlwQW5zaShsaW5lKTtcbiAgY29uc3QgbGluZXMgPSBub0NvbG9yTGluZS5zcGxpdChcIlxcblwiKTtcbiAgY29uc3QgbGluZVdpdGhWYXIgPSBsaW5lcy5maW5kKChsaW5lKSA9PiBsaW5lLmluY2x1ZGVzKFwidmFyLlwiKSk7XG4gIGlmICghbGluZVdpdGhWYXIpIHtcbiAgICB0aHJvdyBFcnJvcnMuSW50ZXJuYWwoXG4gICAgICBgQ291bGQgbm90IGZpbmQgdmFyaWFibGUgbmFtZSBpbiBwcm9tcHQ6ICR7bGluZX0uIFRoaXMgaXMgbW9zdCBsaWtlbHkgYSBidWcgaW4gY2RrdG4uIFBsZWFzZSByZXBvcnQgaXQgYXQgaHR0cDovL2Nka3RuLmlvL2lzc3Vlc2AsXG4gICAgKTtcbiAgfVxuICByZXR1cm4gbGluZVdpdGhWYXIuc3BsaXQoXCJ2YXIuXCIpWzFdLnRyaW0oKTtcbn1cblxuaW50ZXJmYWNlIEJ1ZmZlcmVkUmVjZWl2ZXJGdW5jdGlvbiB7XG4gIChvdXRwdXQ6IHN0cmluZyk6IHZvaWQ7XG4gIC8qKlxuICAgKiB1c2VkIHRvIGdldCB0aGUgbGFzdCBidWZmZXIgd2hlbiB0aGUgUFRZIGV4aXRzIHRvIGxvZyBhIGRlYnVnIG1lc3NhZ2UgaWYgdGhlcmUncyBvdXRwdXQgbGVmdCBpbiB0aGVyZVxuICAgKiAobWlnaHQgaGVscCBkZWJ1Z2dpbmcgb24gV2luZG93cyBpZiBFT0wgZnJvbSBOb2RlanMgZG9lc24ndCB3b3JrIGluIFdTTClcbiAgICovXG4gIGdldEJ1ZmZlcjogKCkgPT4gc3RyaW5nO1xufVxuXG4vLyB1c2VkIHRvIG9ubHkgc2VuZCBjb21wbGV0ZWQgbGluZXMgKD0gd2l0aCBhIG5ld2xpbmUgYXQgdGhlIGVuZCBvZiB0aGVtKSB0byBvdXIgbG9naWMgKCMyODI3KVxuZXhwb3J0IGZ1bmN0aW9uIGJ1ZmZlclVudGVybWluYXRlZExpbmVzKFxuICBoYW5kbGVyOiAob3V0cHV0OiBzdHJpbmcpID0+IHZvaWQsXG4pOiBCdWZmZXJlZFJlY2VpdmVyRnVuY3Rpb24ge1xuICBsZXQgYnVmZmVyID0gXCJcIjtcbiAgZnVuY3Rpb24gYnVmZmVyZWRSZWNlaXZlckZ1bmN0aW9uKG91dHB1dDogc3RyaW5nKSB7XG4gICAgYnVmZmVyICs9IG91dHB1dDtcbiAgICBjb25zdCBsaW5lcyA9IGJ1ZmZlci5zcGxpdCgvW1xcblxccl0rLyk7XG5cbiAgICAvLyBpZiB0aGUgc3RyaW5nIGVuZHMgd2l0aCBcXG4gdGhpcyB3aWxsIGJlIGFuIGVtcHR5IHN0cmluZ1xuICAgIC8vIGVsc2UgaXQgd2lsbCBjb250YWluIGFuIFwidW5maW5pc2hlZFwiIGxpbmVcbiAgICAvLyB0aGUgZmFsbGJhY2sgdG8gYW4gZW1wdHkgc3RyaW5nIGlzIHRvIG1ha2UgVFMgaGFwcHkgYW5kIHNob3VsZCBuZXZlciBoYXBwZW5cbiAgICBidWZmZXIgPSBsaW5lcy5wb3AoKSB8fCBcIlwiO1xuXG4gICAgaWYgKGxpbmVzLmxlbmd0aCA+IDApIGhhbmRsZXIobGluZXMuam9pbihFT0wpICsgRU9MKTtcbiAgfVxuICBidWZmZXJlZFJlY2VpdmVyRnVuY3Rpb24uZ2V0QnVmZmVyID0gKCkgPT4gYnVmZmVyO1xuXG4gIHJldHVybiBidWZmZXJlZFJlY2VpdmVyRnVuY3Rpb247XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVMaW5lUmVjZWl2ZWQoc2VuZDogKGV2ZW50OiBEZXBsb3lFdmVudCkgPT4gdm9pZCkge1xuICByZXR1cm4gKG91dHB1dDogc3RyaW5nKSA9PiB7XG4gICAgbGV0IGhpZGVPdXRwdXQgPSBmYWxzZTtcbiAgICBjb25zdCBub0NvbG9yTGluZSA9IHN0cmlwQW5zaShvdXRwdXQpO1xuXG4gICAgLy8gcG9zc2libGUgZXZlbnRzIGJhc2VkIG9uIGxpbmVcbiAgICBpZiAobm9Db2xvckxpbmUuaW5jbHVkZXMoXCJhcHByb3ZlZCB1c2luZyB0aGUgVUkgb3IgQVBJXCIpKSB7XG4gICAgICBzZW5kKHsgdHlwZTogXCJBUFBST1ZFRF9FWFRFUk5BTExZXCIgfSk7XG4gICAgfSBlbHNlIGlmIChub0NvbG9yTGluZS5pbmNsdWRlcyhcImRpc2NhcmRlZCB1c2luZyB0aGUgVUkgb3IgQVBJXCIpKSB7XG4gICAgICBzZW5kKHsgdHlwZTogXCJSRUpFQ1RFRF9FWFRFUk5BTExZXCIgfSk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIG5vQ29sb3JMaW5lLmluY2x1ZGVzKFwiRG8geW91IHdhbnQgdG8gcGVyZm9ybSB0aGVzZSBhY3Rpb25zXCIpIHx8XG4gICAgICBub0NvbG9yTGluZS5pbmNsdWRlcyhcIkRvIHlvdSByZWFsbHkgd2FudCB0byBkZXN0cm95IGFsbCByZXNvdXJjZXM/XCIpIHx8XG4gICAgICBub0NvbG9yTGluZS5pbmNsdWRlcyhcbiAgICAgICAgXCJEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVzdHJveSBhbGwgcmVzb3VyY2VzIGluIHdvcmtzcGFjZVwiLFxuICAgICAgKVxuICAgICkge1xuICAgICAgaGlkZU91dHB1dCA9IHRydWU7XG4gICAgICBzZW5kKHsgdHlwZTogXCJPVVRQVVRfUkVDRUlWRURcIiwgb3V0cHV0IH0pO1xuICAgICAgc2VuZCh7IHR5cGU6IFwiUkVRVUVTVF9BUFBST1ZBTFwiIH0pO1xuICAgIH0gZWxzZSBpZiAobm9Db2xvckxpbmUuaW5jbHVkZXMoXCJ2YXIuXCIpKSB7XG4gICAgICBoaWRlT3V0cHV0ID0gdHJ1ZTtcblxuICAgICAgY29uc3QgdmFyaWFibGVOYW1lID0gZXh0cmFjdFZhcmlhYmxlTmFtZUZyb21Qcm9tcHQob3V0cHV0KTtcbiAgICAgIHNlbmQoe1xuICAgICAgICB0eXBlOiBcIk9VVFBVVF9SRUNFSVZFRFwiLFxuICAgICAgICBvdXRwdXQ6IG1pc3NpbmdWYXJpYWJsZSh2YXJpYWJsZU5hbWUpLFxuICAgICAgfSk7XG4gICAgICBzZW5kKHsgdHlwZTogXCJWQVJJQUJMRV9NSVNTSU5HXCIsIHZhcmlhYmxlTmFtZSB9KTtcbiAgICB9IGVsc2UgaWYgKG5vQ29sb3JMaW5lLmluY2x1ZGVzKFwiRW50ZXIgYSB2YWx1ZTpcIikpIHtcbiAgICAgIC8vIFRoaXMgY29tZXMgYWxvbmcgd2l0aCBhYm92ZSBibG9jaywgYnV0IGlzIGEgc2VwYXJhdGUgbGluZVxuICAgICAgaGlkZU91dHB1dCA9IHRydWU7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIG5vQ29sb3JMaW5lLmluY2x1ZGVzKFxuICAgICAgICBcIkRvIHlvdSB3YW50IHRvIG92ZXJyaWRlIHRoZSBzb2Z0IGZhaWxlZCBwb2xpY3kgY2hlY2s/XCIsXG4gICAgICApXG4gICAgKSB7XG4gICAgICBoaWRlT3V0cHV0ID0gdHJ1ZTtcbiAgICAgIHNlbmQoeyB0eXBlOiBcIk9VVFBVVF9SRUNFSVZFRFwiLCBvdXRwdXQgfSk7XG5cbiAgICAgIHNlbmQoeyB0eXBlOiBcIlJFUVVFU1RfU0VOVElORUxfT1ZFUlJJREVcIiB9KTtcbiAgICB9IGVsc2UgaWYgKG5vQ29sb3JMaW5lLmluY2x1ZGVzKFwib3ZlcnJpZGRlbiB1c2luZyB0aGUgVUkgb3IgQVBJXCIpKSB7XG4gICAgICBzZW5kKHsgdHlwZTogXCJPVkVSUklEREVOX0VYVEVSTkFMTFlcIiB9KTtcbiAgICB9XG5cbiAgICBpZiAoIWhpZGVPdXRwdXQpIHtcbiAgICAgIHNlbmQoe1xuICAgICAgICB0eXBlOiBcIk9VVFBVVF9SRUNFSVZFRFwiLFxuICAgICAgICBvdXRwdXQsXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG59XG5cbmV4cG9ydCBjb25zdCBkZXBsb3lNYWNoaW5lID0gY3JlYXRlTWFjaGluZTxcbiAgRGVwbG95Q29udGV4dCxcbiAgRGVwbG95RXZlbnQsXG4gIERlcGxveVN0YXRlXG4+KFxuICB7XG4gICAgcHJlZGljdGFibGVBY3Rpb25Bcmd1bWVudHM6IHRydWUsXG4gICAgY29udGV4dDoge30sXG4gICAgaW5pdGlhbDogXCJpZGxlXCIsXG4gICAgaWQ6IFwicm9vdFwiLFxuICAgIHN0YXRlczoge1xuICAgICAgaWRsZToge1xuICAgICAgICBvbjoge1xuICAgICAgICAgIFNUQVJUOiB7IHRhcmdldDogXCJydW5uaW5nXCIgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBydW5uaW5nOiB7XG4gICAgICAgIGludm9rZToge1xuICAgICAgICAgIGlkOiBcInB0eVwiLFxuICAgICAgICAgIHNyYzogXCJydW5UZXJyYWZvcm1JblB0eVwiLFxuICAgICAgICB9LFxuICAgICAgICBvbjoge1xuICAgICAgICAgIEVYSVRFRDogXCJleGl0ZWRcIixcbiAgICAgICAgICBTVE9QOiBcInN0b3BwZWRcIixcbiAgICAgICAgfSxcbiAgICAgICAgaW5pdGlhbDogXCJwcm9jZXNzaW5nXCIsXG4gICAgICAgIHN0YXRlczoge1xuICAgICAgICAgIC8vIFRPRE86IHdoYXQgZWxzZSBtaWdodCBURiBDTEkgYmUgYXNraW5nPyBDYW4gd2UgZGV0ZWN0IGFueSBxdWVzdGlvbiBmcm9tIHRoZSBURiBDTEkgdG8gc2hvdyBhIGdvb2QgZXJyb3I/XG4gICAgICAgICAgcHJvY2Vzc2luZzoge1xuICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgUkVRVUVTVF9BUFBST1ZBTDogXCJhd2FpdGluZ19hcHByb3ZhbFwiLFxuICAgICAgICAgICAgICBSRVFVRVNUX1NFTlRJTkVMX09WRVJSSURFOiBcImF3YWl0aW5nX3NlbnRpbmVsX292ZXJyaWRlXCIsXG4gICAgICAgICAgICAgIFZBUklBQkxFX01JU1NJTkc6IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBzZW5kKHsgdHlwZTogXCJFWElURURcIiwgZXhpdENvZGU6IDEgfSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgYXdhaXRpbmdfYXBwcm92YWw6IHtcbiAgICAgICAgICAgIG9uOiB7XG4gICAgICAgICAgICAgIEFQUFJPVkVEX0VYVEVSTkFMTFk6IFwicHJvY2Vzc2luZ1wiLFxuICAgICAgICAgICAgICBSRUpFQ1RFRF9FWFRFUk5BTExZOiB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0OiBcIiNyb290LmV4aXRlZFwiLFxuICAgICAgICAgICAgICAgIGFjdGlvbnM6IGFzc2lnbjxcbiAgICAgICAgICAgICAgICAgIERlcGxveUNvbnRleHQsXG4gICAgICAgICAgICAgICAgICBEZXBsb3lFdmVudCAmIHsgdHlwZTogXCJSRUpFQ1RFRF9FWFRFUk5BTExZXCIgfVxuICAgICAgICAgICAgICAgID4oeyBjYW5jZWxsZWQ6IHRydWUgfSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIEFQUFJPVkU6IHtcbiAgICAgICAgICAgICAgICB0YXJnZXQ6IFwicHJvY2Vzc2luZ1wiLFxuICAgICAgICAgICAgICAgIGFjdGlvbnM6IHNlbmQoXG4gICAgICAgICAgICAgICAgICB7IHR5cGU6IFwiU0VORF9MSU5FXCIsIGlucHV0OiBcInllc1wiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRvOiBcInB0eVwiIH0sXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgUkVKRUNUOiB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0OiBcInByb2Nlc3NpbmdcIixcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICBzZW5kKHsgdHlwZTogXCJTRU5EX0xJTkVcIiwgaW5wdXQ6IFwibm9cIiB9LCB7IHRvOiBcInB0eVwiIH0pLFxuICAgICAgICAgICAgICAgICAgYXNzaWduPERlcGxveUNvbnRleHQsIERlcGxveUV2ZW50ICYgeyB0eXBlOiBcIlJFSkVDVFwiIH0+KHtcbiAgICAgICAgICAgICAgICAgICAgY2FuY2VsbGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhd2FpdGluZ19zZW50aW5lbF9vdmVycmlkZToge1xuICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgT1ZFUlJJRERFTl9FWFRFUk5BTExZOiBcInByb2Nlc3NpbmdcIixcbiAgICAgICAgICAgICAgT1ZFUlJJREVfUkVKRUNURURfRVhURVJOQUxMWToge1xuICAgICAgICAgICAgICAgIHRhcmdldDogXCIjcm9vdC5leGl0ZWRcIixcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBhc3NpZ248XG4gICAgICAgICAgICAgICAgICBEZXBsb3lDb250ZXh0LFxuICAgICAgICAgICAgICAgICAgRGVwbG95RXZlbnQgJiB7IHR5cGU6IFwiT1ZFUlJJREVfUkVKRUNURURfRVhURVJOQUxMWVwiIH1cbiAgICAgICAgICAgICAgICA+KHsgY2FuY2VsbGVkOiB0cnVlIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgYml0IG9mIGEgaGFjaywgYmVjYXVzZSB0aGUgZXh0ZXJuYWwgZGlzY2FyZCBtZXNzYWdlXG4gICAgICAgICAgICAgIC8vIHBvc3RlZCBieSBUZXJyYWZvcm0gVUkgaXMgdGhlIHNhbWUgYXMgZHVyaW5nIGFwcGx5LiBTbywgd2UgY2FwdHVyZSB0aGF0XG4gICAgICAgICAgICAgIC8vIGFuZCBlbWl0IG91ciBvd24gZXZlbnQgdG8gbWFrZSBpdCBtb3JlIHNwZWNpZmljLlxuICAgICAgICAgICAgICBSRUpFQ1RFRF9FWFRFUk5BTExZOiB7XG4gICAgICAgICAgICAgICAgYWN0aW9uczogc2VuZCh7IHR5cGU6IFwiT1ZFUlJJREVfUkVKRUNURURfRVhURVJOQUxMWVwiIH0pLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBPVkVSUklERToge1xuICAgICAgICAgICAgICAgIHRhcmdldDogXCJwcm9jZXNzaW5nXCIsXG4gICAgICAgICAgICAgICAgYWN0aW9uczogc2VuZChcbiAgICAgICAgICAgICAgICAgIHsgdHlwZTogXCJTRU5EX0xJTkVcIiwgaW5wdXQ6IFwib3ZlcnJpZGVcIiB9LFxuICAgICAgICAgICAgICAgICAgeyB0bzogXCJwdHlcIiB9LFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIFJFSkVDVF9PVkVSUklERToge1xuICAgICAgICAgICAgICAgIHRhcmdldDogXCJwcm9jZXNzaW5nXCIsXG4gICAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgc2VuZCh7IHR5cGU6IFwiU0VORF9MSU5FXCIsIGlucHV0OiBcIm5vXCIgfSwgeyB0bzogXCJwdHlcIiB9KSxcbiAgICAgICAgICAgICAgICAgIGFzc2lnbjxcbiAgICAgICAgICAgICAgICAgICAgRGVwbG95Q29udGV4dCxcbiAgICAgICAgICAgICAgICAgICAgRGVwbG95RXZlbnQgJiB7IHR5cGU6IFwiUkVKRUNUX09WRVJSSURFXCIgfVxuICAgICAgICAgICAgICAgICAgPih7XG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbGxlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZXhpdGVkOiB7IHR5cGU6IFwiZmluYWxcIiB9LFxuICAgICAgc3RvcHBlZDogeyB0eXBlOiBcImZpbmFsXCIgfSxcbiAgICB9LFxuICB9LFxuICB7XG4gICAgc2VydmljZXM6IHtcbiAgICAgIHJ1blRlcnJhZm9ybUluUHR5OiAoY29udGV4dCwgZXZlbnQpID0+XG4gICAgICAgIHRlcnJhZm9ybVB0eVNlcnZpY2UoY29udGV4dCwgZXZlbnQsIHNwYXduSW50ZXJhY3RpdmUpLFxuICAgIH0sXG4gIH0sXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gdGVycmFmb3JtUHR5U2VydmljZShcbiAgX2NvbnRleHQ6IERlcGxveUNvbnRleHQsXG4gIGV2ZW50OiBEZXBsb3lFdmVudCxcbiAgc3Bhd24gPSBzcGF3bkludGVyYWN0aXZlLFxuKTogKHNlbmQ6IFNlbmRlcjxEZXBsb3lFdmVudD4sIG9uUmVjZWl2ZTogUmVjZWl2ZXI8RGVwbG95RXZlbnQ+KSA9PiB2b2lkIHtcbiAgcmV0dXJuIChzZW5kOiBTZW5kZXI8RGVwbG95RXZlbnQ+LCBvblJlY2VpdmU6IFJlY2VpdmVyPERlcGxveUV2ZW50PikgPT4ge1xuICAgIGlmIChldmVudC50eXBlICE9PSBcIlNUQVJUXCIpIHtcbiAgICAgIHRocm93IEVycm9ycy5JbnRlcm5hbChcbiAgICAgICAgYFRlcnJhZm9ybSBDTEkgaW52b2NhdGlvbiBzdGF0ZSBtYWNoaW5lOiBVbmV4cGVjdGVkIGV2ZW50IGNhdXNlZCB0cmFuc2l0aW9uIHRvIHRoZSBydW5uaW5nIHN0YXRlOiAke2V2ZW50LnR5cGV9YCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gQ29tbXVuaWNhdGlvbiBmcm9tIHRoZSBwdHkgdG8gdGhlIGNhbGxlclxuICAgIGNvbnN0IHJlY2VpdmVyID0gYnVmZmVyVW50ZXJtaW5hdGVkTGluZXMoaGFuZGxlTGluZVJlY2VpdmVkKHNlbmQpKTtcbiAgICBjb25zdCB7IGV4aXRDb2RlLCBhY3Rpb25zIH0gPSBzcGF3bihldmVudC5wdHksIChkYXRhKSA9PiB7XG4gICAgICByZWNlaXZlcihkYXRhKTtcbiAgICB9KTtcblxuICAgIC8vIENvbW11bmljYXRpb24gZnJvbSB0aGUgY2FsbGVyIHRvIHRoZSBwdHlcbiAgICBvblJlY2VpdmUoKGV2ZW50OiBEZXBsb3lFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LnR5cGUgPT09IFwiU0VORF9MSU5FXCIpIHtcbiAgICAgICAgYWN0aW9ucy53cml0ZUxpbmUoZXZlbnQuaW5wdXQpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZXhpdENvZGUudGhlbigoZXhpdENvZGUpID0+IHtcbiAgICAgIGNvbnN0IGxhc3RCdWZmZXIgPSByZWNlaXZlci5nZXRCdWZmZXIoKTtcbiAgICAgIGlmIChsYXN0QnVmZmVyLmxlbmd0aCA+IDApIHtcbiAgICAgICAgbG9nZ2VyLmRlYnVnKFxuICAgICAgICAgIGBUZXJyYWZvcm0gQ0xJIGV4aXRlZCBidXQgdGhlIGxhc3Qgb3V0cHV0dGVkIGxpbmUgd2FzIG5vdCB0ZXJtaW5hdGVkIHdpdGggYSBuZXdsaW5lIGFuZCBoZW5jZSBpcyBzdGlsbCBpbiB0aGUgYnVmZmVyIGFuZCB3YXNuJ3QgcHJpbnRlZDogXCIke2xhc3RCdWZmZXJ9XCJgLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBzZW5kKHsgdHlwZTogXCJFWElURURcIiwgZXhpdENvZGUgfSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgbG9nZ2VyLnRyYWNlKFwiVGVycmFmb3JtIENMSSBzdGF0ZSBtYWNoaW5lOiBjbGVhbmluZyB1cCBwdHlcIik7XG4gICAgICBhY3Rpb25zLnN0b3AoKTtcbiAgICB9O1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQW5kU3RhcnREZXBsb3lTZXJ2aWNlKG9wdGlvbnM6IHtcbiAgcmVmcmVzaE9ubHk/OiBib29sZWFuO1xuICBwYXJhbGxlbGlzbTogbnVtYmVyO1xuICBleHRyYU9wdGlvbnM6IHN0cmluZ1tdO1xuICB0ZXJyYWZvcm1CaW5hcnlOYW1lOiBzdHJpbmc7XG4gIGF1dG9BcHByb3ZlPzogYm9vbGVhbjtcbiAgbm9Db2xvcj86IGJvb2xlYW47XG4gIHdvcmtkaXI6IHN0cmluZztcbiAgdmFycz86IHN0cmluZ1tdO1xuICB2YXJGaWxlcz86IHN0cmluZ1tdO1xufSkge1xuICBjb25zdCBzZXJ2aWNlID0gaW50ZXJwcmV0KGRlcGxveU1hY2hpbmUpO1xuICBjb25zdCBhcmdzID0gW1xuICAgIFwiYXBwbHlcIixcbiAgICAuLi4ob3B0aW9ucy5hdXRvQXBwcm92ZSA/IFtcIi1hdXRvLWFwcHJvdmVcIl0gOiBbXSksXG4gICAgLy8gXCItaW5wdXQ9ZmFsc2VcIiwgd2UgY2FuJ3QgdXNlIHRoaXMgYW55bW9yZSBidXQgVE9ETzogd2UgbmVlZCB0byBkZXRlY3QgVEYgQ0xJIGFza2luZyBmb3IgbWlzc2luZyBpbnB1dHMgYW5kIGVpdGhlciBhbGxvdyBwYXNzaW5nIHRoZW0gb3Igc3RvcCB0aGVyZSBhbmQgZmFpbFxuXG4gICAgLi4ub3B0aW9ucy5leHRyYU9wdGlvbnMsXG4gICAgLi4uKG9wdGlvbnMucmVmcmVzaE9ubHkgPyBbXCItcmVmcmVzaC1vbmx5XCJdIDogW10pLFxuICAgIC4uLihvcHRpb25zLm5vQ29sb3IgPyBbXCItbm8tY29sb3JcIl0gOiBbXSksXG4gICAgLi4uKG9wdGlvbnMucGFyYWxsZWxpc20gPiAtMVxuICAgICAgPyBbYC1wYXJhbGxlbGlzbT0ke29wdGlvbnMucGFyYWxsZWxpc219YF1cbiAgICAgIDogW10pLFxuICBdO1xuXG4gIG9wdGlvbnMudmFycz8uZm9yRWFjaCgodikgPT4ge1xuICAgIGFyZ3MucHVzaChgLXZhcj0ke3Z9YCk7XG4gIH0pO1xuXG4gIG9wdGlvbnMudmFyRmlsZXM/LmZvckVhY2goKHYpID0+IHtcbiAgICBhcmdzLnB1c2goYC12YXItZmlsZT0ke3Z9YCk7XG4gIH0pO1xuXG4gIGxvZ2dlci5kZWJ1ZyhcbiAgICBgRXhlY3V0aW5nICR7b3B0aW9ucy50ZXJyYWZvcm1CaW5hcnlOYW1lfSAke2FyZ3Muam9pbihcIiBcIil9IGluICR7XG4gICAgICBvcHRpb25zLndvcmtkaXJcbiAgICB9YCxcbiAgKTtcblxuICBjb25zdCBjb25maWc6IEludGVyYWN0aXZlU3Bhd25Db25maWcgPSB7XG4gICAgZmlsZTogb3B0aW9ucy50ZXJyYWZvcm1CaW5hcnlOYW1lLFxuICAgIGFyZ3MsXG4gICAgb3B0aW9uczoge1xuICAgICAgY3dkOiBvcHRpb25zLndvcmtkaXIsXG4gICAgICBlbnY6IHByb2Nlc3MuZW52IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIC8vIFRPRE86IG1ha2UgdGhpcyBleHBsaWNpdCBhbmQgbW92ZSB0byBjYWxsZXIgb3Igd2hhdGV2ZXJcbiAgICB9LFxuICB9O1xuXG4gIHNlcnZpY2Uuc2VuZCh7IHR5cGU6IFwiU1RBUlRcIiwgcHR5OiBjb25maWcgfSk7XG5cbiAgcmV0dXJuIHNlcnZpY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBbmRTdGFydERlc3Ryb3lTZXJ2aWNlKG9wdGlvbnM6IHtcbiAgcGFyYWxsZWxpc206IG51bWJlcjtcbiAgZXh0cmFPcHRpb25zOiBzdHJpbmdbXTtcbiAgdGVycmFmb3JtQmluYXJ5TmFtZTogc3RyaW5nO1xuICBhdXRvQXBwcm92ZT86IGJvb2xlYW47XG4gIG5vQ29sb3I/OiBib29sZWFuO1xuICB3b3JrZGlyOiBzdHJpbmc7XG4gIHZhcnM/OiBzdHJpbmdbXTtcbiAgdmFyRmlsZXM/OiBzdHJpbmdbXTtcbn0pIHtcbiAgY29uc3Qgc2VydmljZSA9IGludGVycHJldChkZXBsb3lNYWNoaW5lKTtcblxuICBjb25zdCBhcmdzID0gW1xuICAgIFwiZGVzdHJveVwiLFxuICAgIC4uLihvcHRpb25zLmF1dG9BcHByb3ZlID8gW1wiLWF1dG8tYXBwcm92ZVwiXSA6IFtdKSxcbiAgICAvLyBcIi1pbnB1dD1mYWxzZVwiLCB3ZSBjYW4ndCB1c2UgdGhpcyBhbnltb3JlIGJ1dCBUT0RPOiB3ZSBuZWVkIHRvIGRldGVjdCBURiBDTEkgYXNraW5nIGZvciBtaXNzaW5nIGlucHV0cyBhbmQgZWl0aGVyIGFsbG93IHBhc3NpbmcgdGhlbSBvciBzdG9wIHRoZXJlIGFuZCBmYWlsXG5cbiAgICAuLi5vcHRpb25zLmV4dHJhT3B0aW9ucyxcbiAgICAuLi4ob3B0aW9ucy5ub0NvbG9yID8gW1wiLW5vLWNvbG9yXCJdIDogW10pLFxuICAgIC4uLihvcHRpb25zLnBhcmFsbGVsaXNtID4gLTFcbiAgICAgID8gW2AtcGFyYWxsZWxpc209JHtvcHRpb25zLnBhcmFsbGVsaXNtfWBdXG4gICAgICA6IFtdKSxcbiAgXTtcblxuICBvcHRpb25zLnZhcnM/LmZvckVhY2goKHYpID0+IHtcbiAgICBhcmdzLnB1c2goYC12YXI9JHt2fWApO1xuICB9KTtcblxuICBvcHRpb25zLnZhckZpbGVzPy5mb3JFYWNoKCh2KSA9PiB7XG4gICAgYXJncy5wdXNoKGAtdmFyLWZpbGU9JHt2fWApO1xuICB9KTtcblxuICBsb2dnZXIuZGVidWcoXG4gICAgYEV4ZWN1dGluZyAke29wdGlvbnMudGVycmFmb3JtQmluYXJ5TmFtZX0gJHthcmdzLmpvaW4oXCIgXCIpfSBpbiAke1xuICAgICAgb3B0aW9ucy53b3JrZGlyXG4gICAgfWAsXG4gICk7XG5cbiAgY29uc3QgY29uZmlnOiBJbnRlcmFjdGl2ZVNwYXduQ29uZmlnID0ge1xuICAgIGZpbGU6IG9wdGlvbnMudGVycmFmb3JtQmluYXJ5TmFtZSxcbiAgICBhcmdzLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIGN3ZDogb3B0aW9ucy53b3JrZGlyLFxuICAgICAgZW52OiBwcm9jZXNzLmVudiBhcyB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LCAvLyBUT0RPOiBtYWtlIHRoaXMgZXhwbGljaXQgYW5kIG1vdmUgdG8gY2FsbGVyIG9yIHdoYXRldmVyXG4gICAgfSxcbiAgfTtcblxuICBzZXJ2aWNlLnNlbmQoeyB0eXBlOiBcIlNUQVJUXCIsIHB0eTogY29uZmlnIH0pO1xuXG4gIHJldHVybiBzZXJ2aWNlO1xufVxuIl19
|
|
283
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LW1hY2hpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL21vZGVscy9kZXBsb3ktbWFjaGluZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7OztHQUdHOzs7Ozs7QUE4Q0gsc0NBS0M7QUFnQ0Qsc0VBVUM7QUFZRCwwREFrQkM7QUFFRCxnREFvREM7QUFzSEQsa0RBeUNDO0FBRUQsa0VBbURDO0FBRUQsb0VBa0RDO0FBdmJELG1DQVFnQjtBQUNoQiw0Q0FBZ0Q7QUFDaEQsc0NBQTRDO0FBQzVDLDREQUFtQztBQUNuQywyQkFBeUI7QUFDekIsK0RBRytCO0FBNEIvQixTQUFnQixhQUFhLENBQzNCLEtBQWtCLEVBQ2xCLElBQXFCO0lBRXJCLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxJQUFJLENBQUM7QUFDN0IsQ0FBQztBQWdDRCxTQUFnQiw2QkFBNkIsQ0FBQyxJQUFZO0lBQ3hELE1BQU0sV0FBVyxHQUFHLElBQUEsb0JBQVMsRUFBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxNQUFNLEtBQUssR0FBRyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RDLE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakIsTUFBTSxnQkFBTSxDQUFDLFFBQVEsQ0FDbkIsMkNBQTJDLElBQUksa0ZBQWtGLENBQ2xJLENBQUM7SUFDSixDQUFDO0lBQ0QsT0FBTyxXQUFXLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0FBQzdDLENBQUM7QUFXRCwrRkFBK0Y7QUFDL0YsU0FBZ0IsdUJBQXVCLENBQ3JDLE9BQWlDO0lBRWpDLElBQUksTUFB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QUNqQyxJQUFJO1FBQ0osT0FBTyxFQUFFO1lBQ1AsR0FBRyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1lBQ3BCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBZ0MsRUFBRSwwREFBMEQ7U0FDMUc7S0FDRixDQUFDO0lBRUYsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFN0MsT0FBTyxPQUFPLENBQUM7QUFDakIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IChjKSBIYXNoaUNvcnAsIEluYy5cbiAqIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNUEwtMi4wXG4gKi9cblxuaW1wb3J0IHtcbiAgY3JlYXRlTWFjaGluZSxcbiAgc2VuZCxcbiAgaW50ZXJwcmV0LFxuICBFdmVudE9iamVjdCxcbiAgYXNzaWduLFxuICBTZW5kZXIsXG4gIFJlY2VpdmVyLFxufSBmcm9tIFwieHN0YXRlXCI7XG5pbXBvcnQgeyBFcnJvcnMsIGxvZ2dlciB9IGZyb20gXCJAY2RrdG4vY29tbW9uc1wiO1xuaW1wb3J0IHsgbWlzc2luZ1ZhcmlhYmxlIH0gZnJvbSBcIi4uL2Vycm9yc1wiO1xuaW1wb3J0IHN0cmlwQW5zaSBmcm9tIFwic3RyaXAtYW5zaVwiO1xuaW1wb3J0IHsgRU9MIH0gZnJvbSBcIm9zXCI7XG5pbXBvcnQge1xuICBzcGF3bkludGVyYWN0aXZlLFxuICBJbnRlcmFjdGl2ZVNwYXduQ29uZmlnLFxufSBmcm9tIFwiLi9pbnRlcmFjdGl2ZS1wcm9jZXNzXCI7XG5cbmludGVyZmFjZSBEZXBsb3lDb250ZXh0IHtcbiAgZXhpdENvZGU/OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUZXJyYWZvcm0gd2lsbCBleGl0IHdpdGggMSBpZiBpdCB3YXMgY2FuY2VsbGVkLCBidXQgd2UgZG9uJ3Qgd2FudCB0byBmYWlsIGluIHRoYXQgY2FzZVxuICAgKi9cbiAgY2FuY2VsbGVkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgRGVwbG95RXZlbnQgPVxuICB8IHsgdHlwZTogXCJTVEFSVFwiOyBwdHk6IEludGVyYWN0aXZlU3Bhd25Db25maWcgfVxuICB8IHsgdHlwZTogXCJTVE9QXCIgfVxuICB8IHsgdHlwZTogXCJTRU5EX0xJTkVcIjsgaW5wdXQ6IHN0cmluZyB9XG4gIHwgeyB0eXBlOiBcIk9VVFBVVF9SRUNFSVZFRFwiOyBvdXRwdXQ6IHN0cmluZyB9XG4gIHwgeyB0eXBlOiBcIkFQUFJPVkVEX0VYVEVSTkFMTFlcIiB9IC8vIGUuZy4gdmlhIFRGQyBVSSBvciBBUElcbiAgfCB7IHR5cGU6IFwiUkVKRUNURURfRVhURVJOQUxMWVwiIH1cbiAgfCB7IHR5cGU6IFwiT1ZFUlJJRERFTl9FWFRFUk5BTExZXCIgfVxuICB8IHsgdHlwZTogXCJPVkVSUklERV9SRUpFQ1RFRF9FWFRFUk5BTExZXCIgfVxuICB8IHsgdHlwZTogXCJPVkVSUklERVwiIH1cbiAgfCB7IHR5cGU6IFwiUkVKRUNUX09WRVJSSURFXCIgfVxuICB8IHsgdHlwZTogXCJSRVFVRVNUX0FQUFJPVkFMXCIgfVxuICB8IHsgdHlwZTogXCJWQVJJQUJMRV9NSVNTSU5HXCI7IHZhcmlhYmxlTmFtZTogc3RyaW5nIH1cbiAgfCB7IHR5cGU6IFwiUkVRVUVTVF9TRU5USU5FTF9PVkVSUklERVwiIH1cbiAgfCB7IHR5cGU6IFwiQVBQUk9WRVwiIH1cbiAgfCB7IHR5cGU6IFwiUkVKRUNUXCIgfVxuICB8IHsgdHlwZTogXCJFWElURURcIjsgZXhpdENvZGU6IG51bWJlciB9O1xuXG5leHBvcnQgZnVuY3Rpb24gaXNEZXBsb3lFdmVudDxEZXBsb3lFdmVudFR5cGUgZXh0ZW5kcyBEZXBsb3lFdmVudFtcInR5cGVcIl0+KFxuICBldmVudDogRXZlbnRPYmplY3QsXG4gIHR5cGU6IERlcGxveUV2ZW50VHlwZSxcbik6IGV2ZW50IGlzIERlcGxveUV2ZW50ICYgeyB0eXBlOiBEZXBsb3lFdmVudFR5cGUgfSB7XG4gIHJldHVybiBldmVudC50eXBlID09PSB0eXBlO1xufVxuXG5leHBvcnQgdHlwZSBEZXBsb3lTdGF0ZSA9XG4gIHwge1xuICAgICAgdmFsdWU6IFwiaWRsZVwiO1xuICAgICAgY29udGV4dDogRGVwbG95Q29udGV4dDtcbiAgICB9XG4gIHwge1xuICAgICAgdmFsdWU6IFwicnVubmluZ1wiO1xuICAgICAgY29udGV4dDogRGVwbG95Q29udGV4dDtcbiAgICB9XG4gIHwge1xuICAgICAgdmFsdWU6IHsgcnVubmluZzogXCJwcm9jZXNzaW5nXCIgfTtcbiAgICAgIGNvbnRleHQ6IERlcGxveUNvbnRleHQ7XG4gICAgfVxuICB8IHtcbiAgICAgIHZhbHVlOiB7IHJ1bm5pbmc6IFwiYXdhaXRpbmdfYXBwcm92YWxcIiB9O1xuICAgICAgY29udGV4dDogRGVwbG95Q29udGV4dDtcbiAgICB9XG4gIHwge1xuICAgICAgdmFsdWU6IHsgcnVubmluZzogXCJhd2FpdGluZ19zZW50aW5lbF9vdmVycmlkZVwiIH07XG4gICAgICBjb250ZXh0OiBEZXBsb3lDb250ZXh0O1xuICAgIH1cbiAgfCB7XG4gICAgICB2YWx1ZTogXCJleGl0ZWRcIjtcbiAgICAgIGNvbnRleHQ6IERlcGxveUNvbnRleHQgJiB7IGV4aXRDb2RlOiBudW1iZXIgfTtcbiAgICB9XG4gIHwge1xuICAgICAgdmFsdWU6IFwic3RvcHBlZFwiO1xuICAgICAgY29udGV4dDogRGVwbG95Q29udGV4dDtcbiAgICB9O1xuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFZhcmlhYmxlTmFtZUZyb21Qcm9tcHQobGluZTogc3RyaW5nKSB7XG4gIGNvbnN0IG5vQ29sb3JMaW5lID0gc3RyaXBBbnNpKGxpbmUpO1xuICBjb25zdCBsaW5lcyA9IG5vQ29sb3JMaW5lLnNwbGl0KFwiXFxuXCIpO1xuICBjb25zdCBsaW5lV2l0aFZhciA9IGxpbmVzLmZpbmQoKGxpbmUpID0+IGxpbmUuaW5jbHVkZXMoXCJ2YXIuXCIpKTtcbiAgaWYgKCFsaW5lV2l0aFZhcikge1xuICAgIHRocm93IEVycm9ycy5JbnRlcm5hbChcbiAgICAgIGBDb3VsZCBub3QgZmluZCB2YXJpYWJsZSBuYW1lIGluIHByb21wdDogJHtsaW5lfS4gVGhpcyBpcyBtb3N0IGxpa2VseSBhIGJ1ZyBpbiBjZGt0bi4gUGxlYXNlIHJlcG9ydCBpdCBhdCBodHRwOi8vY2RrdG4uaW8vaXNzdWVzYCxcbiAgICApO1xuICB9XG4gIHJldHVybiBsaW5lV2l0aFZhci5zcGxpdChcInZhci5cIilbMV0udHJpbSgpO1xufVxuXG5pbnRlcmZhY2UgQnVmZmVyZWRSZWNlaXZlckZ1bmN0aW9uIHtcbiAgKG91dHB1dDogc3RyaW5nKTogdm9pZDtcbiAgLyoqXG4gICAqIHVzZWQgdG8gZ2V0IHRoZSBsYXN0IGJ1ZmZlciB3aGVuIHRoZSBQVFkgZXhpdHMgdG8gbG9nIGEgZGVidWcgbWVzc2FnZSBpZiB0aGVyZSdzIG91dHB1dCBsZWZ0IGluIHRoZXJlXG4gICAqIChtaWdodCBoZWxwIGRlYnVnZ2luZyBvbiBXaW5kb3dzIGlmIEVPTCBmcm9tIE5vZGVqcyBkb2Vzbid0IHdvcmsgaW4gV1NMKVxuICAgKi9cbiAgZ2V0QnVmZmVyOiAoKSA9PiBzdHJpbmc7XG59XG5cbi8vIHVzZWQgdG8gb25seSBzZW5kIGNvbXBsZXRlZCBsaW5lcyAoPSB3aXRoIGEgbmV3bGluZSBhdCB0aGUgZW5kIG9mIHRoZW0pIHRvIG91ciBsb2dpYyAoIzI4MjcpXG5leHBvcnQgZnVuY3Rpb24gYnVmZmVyVW50ZXJtaW5hdGVkTGluZXMoXG4gIGhhbmRsZXI6IChvdXRwdXQ6IHN0cmluZykgPT4gdm9pZCxcbik6IEJ1ZmZlcmVkUmVjZWl2ZXJGdW5jdGlvbiB7XG4gIGxldCBidWZmZXIgPSBcIlwiO1xuICBmdW5jdGlvbiBidWZmZXJlZFJlY2VpdmVyRnVuY3Rpb24ob3V0cHV0OiBzdHJpbmcpIHtcbiAgICBidWZmZXIgKz0gb3V0cHV0O1xuICAgIGNvbnN0IGxpbmVzID0gYnVmZmVyLnNwbGl0KC9bXFxuXFxyXSsvKTtcblxuICAgIC8vIGlmIHRoZSBzdHJpbmcgZW5kcyB3aXRoIFxcbiB0aGlzIHdpbGwgYmUgYW4gZW1wdHkgc3RyaW5nXG4gICAgLy8gZWxzZSBpdCB3aWxsIGNvbnRhaW4gYW4gXCJ1bmZpbmlzaGVkXCIgbGluZVxuICAgIC8vIHRoZSBmYWxsYmFjayB0byBhbiBlbXB0eSBzdHJpbmcgaXMgdG8gbWFrZSBUUyBoYXBweSBhbmQgc2hvdWxkIG5ldmVyIGhhcHBlblxuICAgIGJ1ZmZlciA9IGxpbmVzLnBvcCgpIHx8IFwiXCI7XG5cbiAgICBpZiAobGluZXMubGVuZ3RoID4gMCkgaGFuZGxlcihsaW5lcy5qb2luKEVPTCkgKyBFT0wpO1xuICB9XG4gIGJ1ZmZlcmVkUmVjZWl2ZXJGdW5jdGlvbi5nZXRCdWZmZXIgPSAoKSA9PiBidWZmZXI7XG5cbiAgcmV0dXJuIGJ1ZmZlcmVkUmVjZWl2ZXJGdW5jdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhbmRsZUxpbmVSZWNlaXZlZChzZW5kOiAoZXZlbnQ6IERlcGxveUV2ZW50KSA9PiB2b2lkKSB7XG4gIHJldHVybiAob3V0cHV0OiBzdHJpbmcpID0+IHtcbiAgICBsZXQgaGlkZU91dHB1dCA9IGZhbHNlO1xuICAgIGNvbnN0IG5vQ29sb3JMaW5lID0gc3RyaXBBbnNpKG91dHB1dCk7XG5cbiAgICAvLyBwb3NzaWJsZSBldmVudHMgYmFzZWQgb24gbGluZVxuICAgIGlmIChub0NvbG9yTGluZS5pbmNsdWRlcyhcImFwcHJvdmVkIHVzaW5nIHRoZSBVSSBvciBBUElcIikpIHtcbiAgICAgIHNlbmQoeyB0eXBlOiBcIkFQUFJPVkVEX0VYVEVSTkFMTFlcIiB9KTtcbiAgICB9IGVsc2UgaWYgKG5vQ29sb3JMaW5lLmluY2x1ZGVzKFwiZGlzY2FyZGVkIHVzaW5nIHRoZSBVSSBvciBBUElcIikpIHtcbiAgICAgIHNlbmQoeyB0eXBlOiBcIlJFSkVDVEVEX0VYVEVSTkFMTFlcIiB9KTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbm9Db2xvckxpbmUuaW5jbHVkZXMoXCJEbyB5b3Ugd2FudCB0byBwZXJmb3JtIHRoZXNlIGFjdGlvbnNcIikgfHxcbiAgICAgIG5vQ29sb3JMaW5lLmluY2x1ZGVzKFwiRG8geW91IHJlYWxseSB3YW50IHRvIGRlc3Ryb3kgYWxsIHJlc291cmNlcz9cIikgfHxcbiAgICAgIG5vQ29sb3JMaW5lLmluY2x1ZGVzKFxuICAgICAgICBcIkRvIHlvdSByZWFsbHkgd2FudCB0byBkZXN0cm95IGFsbCByZXNvdXJjZXMgaW4gd29ya3NwYWNlXCIsXG4gICAgICApXG4gICAgKSB7XG4gICAgICBoaWRlT3V0cHV0ID0gdHJ1ZTtcbiAgICAgIHNlbmQoeyB0eXBlOiBcIk9VVFBVVF9SRUNFSVZFRFwiLCBvdXRwdXQgfSk7XG4gICAgICBzZW5kKHsgdHlwZTogXCJSRVFVRVNUX0FQUFJPVkFMXCIgfSk7XG4gICAgfSBlbHNlIGlmIChub0NvbG9yTGluZS5pbmNsdWRlcyhcInZhci5cIikpIHtcbiAgICAgIGhpZGVPdXRwdXQgPSB0cnVlO1xuXG4gICAgICBjb25zdCB2YXJpYWJsZU5hbWUgPSBleHRyYWN0VmFyaWFibGVOYW1lRnJvbVByb21wdChvdXRwdXQpO1xuICAgICAgc2VuZCh7XG4gICAgICAgIHR5cGU6IFwiT1VUUFVUX1JFQ0VJVkVEXCIsXG4gICAgICAgIG91dHB1dDogbWlzc2luZ1ZhcmlhYmxlKHZhcmlhYmxlTmFtZSksXG4gICAgICB9KTtcbiAgICAgIHNlbmQoeyB0eXBlOiBcIlZBUklBQkxFX01JU1NJTkdcIiwgdmFyaWFibGVOYW1lIH0pO1xuICAgIH0gZWxzZSBpZiAobm9Db2xvckxpbmUuaW5jbHVkZXMoXCJFbnRlciBhIHZhbHVlOlwiKSkge1xuICAgICAgLy8gVGhpcyBjb21lcyBhbG9uZyB3aXRoIGFib3ZlIGJsb2NrLCBidXQgaXMgYSBzZXBhcmF0ZSBsaW5lXG4gICAgICBoaWRlT3V0cHV0ID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgbm9Db2xvckxpbmUuaW5jbHVkZXMoXG4gICAgICAgIFwiRG8geW91IHdhbnQgdG8gb3ZlcnJpZGUgdGhlIHNvZnQgZmFpbGVkIHBvbGljeSBjaGVjaz9cIixcbiAgICAgIClcbiAgICApIHtcbiAgICAgIGhpZGVPdXRwdXQgPSB0cnVlO1xuICAgICAgc2VuZCh7IHR5cGU6IFwiT1VUUFVUX1JFQ0VJVkVEXCIsIG91dHB1dCB9KTtcblxuICAgICAgc2VuZCh7IHR5cGU6IFwiUkVRVUVTVF9TRU5USU5FTF9PVkVSUklERVwiIH0pO1xuICAgIH0gZWxzZSBpZiAobm9Db2xvckxpbmUuaW5jbHVkZXMoXCJvdmVycmlkZGVuIHVzaW5nIHRoZSBVSSBvciBBUElcIikpIHtcbiAgICAgIHNlbmQoeyB0eXBlOiBcIk9WRVJSSURERU5fRVhURVJOQUxMWVwiIH0pO1xuICAgIH1cblxuICAgIGlmICghaGlkZU91dHB1dCkge1xuICAgICAgc2VuZCh7XG4gICAgICAgIHR5cGU6IFwiT1VUUFVUX1JFQ0VJVkVEXCIsXG4gICAgICAgIG91dHB1dCxcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IGRlcGxveU1hY2hpbmUgPSBjcmVhdGVNYWNoaW5lPFxuICBEZXBsb3lDb250ZXh0LFxuICBEZXBsb3lFdmVudCxcbiAgRGVwbG95U3RhdGVcbj4oXG4gIHtcbiAgICBwcmVkaWN0YWJsZUFjdGlvbkFyZ3VtZW50czogdHJ1ZSxcbiAgICBjb250ZXh0OiB7fSxcbiAgICBpbml0aWFsOiBcImlkbGVcIixcbiAgICBpZDogXCJyb290XCIsXG4gICAgc3RhdGVzOiB7XG4gICAgICBpZGxlOiB7XG4gICAgICAgIG9uOiB7XG4gICAgICAgICAgU1RBUlQ6IHsgdGFyZ2V0OiBcInJ1bm5pbmdcIiB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHJ1bm5pbmc6IHtcbiAgICAgICAgaW52b2tlOiB7XG4gICAgICAgICAgaWQ6IFwicHR5XCIsXG4gICAgICAgICAgc3JjOiBcInJ1blRlcnJhZm9ybUluUHR5XCIsXG4gICAgICAgIH0sXG4gICAgICAgIG9uOiB7XG4gICAgICAgICAgRVhJVEVEOiBcImV4aXRlZFwiLFxuICAgICAgICAgIFNUT1A6IFwic3RvcHBlZFwiLFxuICAgICAgICB9LFxuICAgICAgICBpbml0aWFsOiBcInByb2Nlc3NpbmdcIixcbiAgICAgICAgc3RhdGVzOiB7XG4gICAgICAgICAgLy8gVE9ETzogd2hhdCBlbHNlIG1pZ2h0IFRGIENMSSBiZSBhc2tpbmc/IENhbiB3ZSBkZXRlY3QgYW55IHF1ZXN0aW9uIGZyb20gdGhlIFRGIENMSSB0byBzaG93IGEgZ29vZCBlcnJvcj9cbiAgICAgICAgICBwcm9jZXNzaW5nOiB7XG4gICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICBSRVFVRVNUX0FQUFJPVkFMOiBcImF3YWl0aW5nX2FwcHJvdmFsXCIsXG4gICAgICAgICAgICAgIFJFUVVFU1RfU0VOVElORUxfT1ZFUlJJREU6IFwiYXdhaXRpbmdfc2VudGluZWxfb3ZlcnJpZGVcIixcbiAgICAgICAgICAgICAgVkFSSUFCTEVfTUlTU0lORzoge1xuICAgICAgICAgICAgICAgIGFjdGlvbnM6IHNlbmQoeyB0eXBlOiBcIkVYSVRFRFwiLCBleGl0Q29kZTogMSB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICBhd2FpdGluZ19hcHByb3ZhbDoge1xuICAgICAgICAgICAgb246IHtcbiAgICAgICAgICAgICAgQVBQUk9WRURfRVhURVJOQUxMWTogXCJwcm9jZXNzaW5nXCIsXG4gICAgICAgICAgICAgIFJFSkVDVEVEX0VYVEVSTkFMTFk6IHtcbiAgICAgICAgICAgICAgICB0YXJnZXQ6IFwiI3Jvb3QuZXhpdGVkXCIsXG4gICAgICAgICAgICAgICAgYWN0aW9uczogYXNzaWduPFxuICAgICAgICAgICAgICAgICAgRGVwbG95Q29udGV4dCxcbiAgICAgICAgICAgICAgICAgIERlcGxveUV2ZW50ICYgeyB0eXBlOiBcIlJFSkVDVEVEX0VYVEVSTkFMTFlcIiB9XG4gICAgICAgICAgICAgICAgPih7IGNhbmNlbGxlZDogdHJ1ZSB9KSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgQVBQUk9WRToge1xuICAgICAgICAgICAgICAgIHRhcmdldDogXCJwcm9jZXNzaW5nXCIsXG4gICAgICAgICAgICAgICAgYWN0aW9uczogc2VuZChcbiAgICAgICAgICAgICAgICAgIHsgdHlwZTogXCJTRU5EX0xJTkVcIiwgaW5wdXQ6IFwieWVzXCIgfSxcbiAgICAgICAgICAgICAgICAgIHsgdG86IFwicHR5XCIgfSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBSRUpFQ1Q6IHtcbiAgICAgICAgICAgICAgICB0YXJnZXQ6IFwicHJvY2Vzc2luZ1wiLFxuICAgICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAgIHNlbmQoeyB0eXBlOiBcIlNFTkRfTElORVwiLCBpbnB1dDogXCJub1wiIH0sIHsgdG86IFwicHR5XCIgfSksXG4gICAgICAgICAgICAgICAgICBhc3NpZ248RGVwbG95Q29udGV4dCwgRGVwbG95RXZlbnQgJiB7IHR5cGU6IFwiUkVKRUNUXCIgfT4oe1xuICAgICAgICAgICAgICAgICAgICBjYW5jZWxsZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGF3YWl0aW5nX3NlbnRpbmVsX292ZXJyaWRlOiB7XG4gICAgICAgICAgICBvbjoge1xuICAgICAgICAgICAgICBPVkVSUklEREVOX0VYVEVSTkFMTFk6IFwicHJvY2Vzc2luZ1wiLFxuICAgICAgICAgICAgICBPVkVSUklERV9SRUpFQ1RFRF9FWFRFUk5BTExZOiB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0OiBcIiNyb290LmV4aXRlZFwiLFxuICAgICAgICAgICAgICAgIGFjdGlvbnM6IGFzc2lnbjxcbiAgICAgICAgICAgICAgICAgIERlcGxveUNvbnRleHQsXG4gICAgICAgICAgICAgICAgICBEZXBsb3lFdmVudCAmIHsgdHlwZTogXCJPVkVSUklERV9SRUpFQ1RFRF9FWFRFUk5BTExZXCIgfVxuICAgICAgICAgICAgICAgID4oeyBjYW5jZWxsZWQ6IHRydWUgfSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBiaXQgb2YgYSBoYWNrLCBiZWNhdXNlIHRoZSBleHRlcm5hbCBkaXNjYXJkIG1lc3NhZ2VcbiAgICAgICAgICAgICAgLy8gcG9zdGVkIGJ5IFRlcnJhZm9ybSBVSSBpcyB0aGUgc2FtZSBhcyBkdXJpbmcgYXBwbHkuIFNvLCB3ZSBjYXB0dXJlIHRoYXRcbiAgICAgICAgICAgICAgLy8gYW5kIGVtaXQgb3VyIG93biBldmVudCB0byBtYWtlIGl0IG1vcmUgc3BlY2lmaWMuXG4gICAgICAgICAgICAgIFJFSkVDVEVEX0VYVEVSTkFMTFk6IHtcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBzZW5kKHsgdHlwZTogXCJPVkVSUklERV9SRUpFQ1RFRF9FWFRFUk5BTExZXCIgfSksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIE9WRVJSSURFOiB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0OiBcInByb2Nlc3NpbmdcIixcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBzZW5kKFxuICAgICAgICAgICAgICAgICAgeyB0eXBlOiBcIlNFTkRfTElORVwiLCBpbnB1dDogXCJvdmVycmlkZVwiIH0sXG4gICAgICAgICAgICAgICAgICB7IHRvOiBcInB0eVwiIH0sXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgUkVKRUNUX09WRVJSSURFOiB7XG4gICAgICAgICAgICAgICAgdGFyZ2V0OiBcInByb2Nlc3NpbmdcIixcbiAgICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICBzZW5kKHsgdHlwZTogXCJTRU5EX0xJTkVcIiwgaW5wdXQ6IFwibm9cIiB9LCB7IHRvOiBcInB0eVwiIH0pLFxuICAgICAgICAgICAgICAgICAgYXNzaWduPFxuICAgICAgICAgICAgICAgICAgICBEZXBsb3lDb250ZXh0LFxuICAgICAgICAgICAgICAgICAgICBEZXBsb3lFdmVudCAmIHsgdHlwZTogXCJSRUpFQ1RfT1ZFUlJJREVcIiB9XG4gICAgICAgICAgICAgICAgICA+KHtcbiAgICAgICAgICAgICAgICAgICAgY2FuY2VsbGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBleGl0ZWQ6IHsgdHlwZTogXCJmaW5hbFwiIH0sXG4gICAgICBzdG9wcGVkOiB7IHR5cGU6IFwiZmluYWxcIiB9LFxuICAgIH0sXG4gIH0sXG4gIHtcbiAgICBzZXJ2aWNlczoge1xuICAgICAgcnVuVGVycmFmb3JtSW5QdHk6IChjb250ZXh0LCBldmVudCkgPT5cbiAgICAgICAgdGVycmFmb3JtUHR5U2VydmljZShjb250ZXh0LCBldmVudCwgc3Bhd25JbnRlcmFjdGl2ZSksXG4gICAgfSxcbiAgfSxcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiB0ZXJyYWZvcm1QdHlTZXJ2aWNlKFxuICBfY29udGV4dDogRGVwbG95Q29udGV4dCxcbiAgZXZlbnQ6IERlcGxveUV2ZW50LFxuICBzcGF3biA9IHNwYXduSW50ZXJhY3RpdmUsXG4pOiAoc2VuZDogU2VuZGVyPERlcGxveUV2ZW50Piwgb25SZWNlaXZlOiBSZWNlaXZlcjxEZXBsb3lFdmVudD4pID0+IHZvaWQge1xuICByZXR1cm4gKHNlbmQ6IFNlbmRlcjxEZXBsb3lFdmVudD4sIG9uUmVjZWl2ZTogUmVjZWl2ZXI8RGVwbG95RXZlbnQ+KSA9PiB7XG4gICAgaWYgKGV2ZW50LnR5cGUgIT09IFwiU1RBUlRcIikge1xuICAgICAgdGhyb3cgRXJyb3JzLkludGVybmFsKFxuICAgICAgICBgVGVycmFmb3JtIENMSSBpbnZvY2F0aW9uIHN0YXRlIG1hY2hpbmU6IFVuZXhwZWN0ZWQgZXZlbnQgY2F1c2VkIHRyYW5zaXRpb24gdG8gdGhlIHJ1bm5pbmcgc3RhdGU6ICR7ZXZlbnQudHlwZX1gLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBDb21tdW5pY2F0aW9uIGZyb20gdGhlIHB0eSB0byB0aGUgY2FsbGVyXG4gICAgY29uc3QgcmVjZWl2ZXIgPSBidWZmZXJVbnRlcm1pbmF0ZWRMaW5lcyhoYW5kbGVMaW5lUmVjZWl2ZWQoc2VuZCkpO1xuICAgIGNvbnN0IHsgZXhpdENvZGUsIGFjdGlvbnMgfSA9IHNwYXduKGV2ZW50LnB0eSwgKGRhdGEpID0+IHtcbiAgICAgIHJlY2VpdmVyKGRhdGEpO1xuICAgIH0pO1xuXG4gICAgLy8gQ29tbXVuaWNhdGlvbiBmcm9tIHRoZSBjYWxsZXIgdG8gdGhlIHB0eVxuICAgIG9uUmVjZWl2ZSgoZXZlbnQ6IERlcGxveUV2ZW50KSA9PiB7XG4gICAgICBpZiAoZXZlbnQudHlwZSA9PT0gXCJTRU5EX0xJTkVcIikge1xuICAgICAgICBhY3Rpb25zLndyaXRlTGluZShldmVudC5pbnB1dCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBleGl0Q29kZS50aGVuKChleGl0Q29kZSkgPT4ge1xuICAgICAgY29uc3QgbGFzdEJ1ZmZlciA9IHJlY2VpdmVyLmdldEJ1ZmZlcigpO1xuICAgICAgaWYgKGxhc3RCdWZmZXIubGVuZ3RoID4gMCkge1xuICAgICAgICBsb2dnZXIuZGVidWcoXG4gICAgICAgICAgYFRlcnJhZm9ybSBDTEkgZXhpdGVkIGJ1dCB0aGUgbGFzdCBvdXRwdXR0ZWQgbGluZSB3YXMgbm90IHRlcm1pbmF0ZWQgd2l0aCBhIG5ld2xpbmUgYW5kIGhlbmNlIGlzIHN0aWxsIGluIHRoZSBidWZmZXIgYW5kIHdhc24ndCBwcmludGVkOiBcIiR7bGFzdEJ1ZmZlcn1cImAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHNlbmQoeyB0eXBlOiBcIkVYSVRFRFwiLCBleGl0Q29kZSB9KTtcbiAgICB9KTtcblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBsb2dnZXIudHJhY2UoXCJUZXJyYWZvcm0gQ0xJIHN0YXRlIG1hY2hpbmU6IGNsZWFuaW5nIHVwIHB0eVwiKTtcbiAgICAgIGFjdGlvbnMuc3RvcCgpO1xuICAgIH07XG4gIH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVBbmRTdGFydERlcGxveVNlcnZpY2Uob3B0aW9uczoge1xuICByZWZyZXNoT25seT86IGJvb2xlYW47XG4gIHBhcmFsbGVsaXNtOiBudW1iZXI7XG4gIGV4dHJhT3B0aW9uczogc3RyaW5nW107XG4gIHRlcnJhZm9ybUJpbmFyeU5hbWU6IHN0cmluZztcbiAgYXV0b0FwcHJvdmU/OiBib29sZWFuO1xuICBub0NvbG9yPzogYm9vbGVhbjtcbiAgd29ya2Rpcjogc3RyaW5nO1xuICB2YXJzPzogc3RyaW5nW107XG4gIHZhckZpbGVzPzogc3RyaW5nW107XG59KSB7XG4gIGNvbnN0IHNlcnZpY2UgPSBpbnRlcnByZXQoZGVwbG95TWFjaGluZSk7XG4gIGNvbnN0IGFyZ3MgPSBbXG4gICAgXCJhcHBseVwiLFxuICAgIC4uLihvcHRpb25zLmF1dG9BcHByb3ZlID8gW1wiLWF1dG8tYXBwcm92ZVwiXSA6IFtdKSxcbiAgICAvLyBcIi1pbnB1dD1mYWxzZVwiLCB3ZSBjYW4ndCB1c2UgdGhpcyBhbnltb3JlIGJ1dCBUT0RPOiB3ZSBuZWVkIHRvIGRldGVjdCBURiBDTEkgYXNraW5nIGZvciBtaXNzaW5nIGlucHV0cyBhbmQgZWl0aGVyIGFsbG93IHBhc3NpbmcgdGhlbSBvciBzdG9wIHRoZXJlIGFuZCBmYWlsXG5cbiAgICAuLi5vcHRpb25zLmV4dHJhT3B0aW9ucyxcbiAgICAuLi4ob3B0aW9ucy5yZWZyZXNoT25seSA/IFtcIi1yZWZyZXNoLW9ubHlcIl0gOiBbXSksXG4gICAgLi4uKG9wdGlvbnMubm9Db2xvciA/IFtcIi1uby1jb2xvclwiXSA6IFtdKSxcbiAgICAuLi4ob3B0aW9ucy5wYXJhbGxlbGlzbSA+IC0xXG4gICAgICA/IFtgLXBhcmFsbGVsaXNtPSR7b3B0aW9ucy5wYXJhbGxlbGlzbX1gXVxuICAgICAgOiBbXSksXG4gIF07XG5cbiAgb3B0aW9ucy52YXJzPy5mb3JFYWNoKCh2KSA9PiB7XG4gICAgYXJncy5wdXNoKGAtdmFyPSR7dn1gKTtcbiAgfSk7XG5cbiAgb3B0aW9ucy52YXJGaWxlcz8uZm9yRWFjaCgodikgPT4ge1xuICAgIGFyZ3MucHVzaChgLXZhci1maWxlPSR7dn1gKTtcbiAgfSk7XG5cbiAgbG9nZ2VyLmRlYnVnKFxuICAgIGBFeGVjdXRpbmcgJHtvcHRpb25zLnRlcnJhZm9ybUJpbmFyeU5hbWV9ICR7YXJncy5qb2luKFwiIFwiKX0gaW4gJHtcbiAgICAgIG9wdGlvbnMud29ya2RpclxuICAgIH1gLFxuICApO1xuXG4gIGNvbnN0IGNvbmZpZzogSW50ZXJhY3RpdmVTcGF3bkNvbmZpZyA9IHtcbiAgICBmaWxlOiBvcHRpb25zLnRlcnJhZm9ybUJpbmFyeU5hbWUsXG4gICAgYXJncyxcbiAgICBvcHRpb25zOiB7XG4gICAgICBjd2Q6IG9wdGlvbnMud29ya2RpcixcbiAgICAgIGVudjogcHJvY2Vzcy5lbnYgYXMgeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSwgLy8gVE9ETzogbWFrZSB0aGlzIGV4cGxpY2l0IGFuZCBtb3ZlIHRvIGNhbGxlciBvciB3aGF0ZXZlclxuICAgIH0sXG4gIH07XG5cbiAgc2VydmljZS5zZW5kKHsgdHlwZTogXCJTVEFSVFwiLCBwdHk6IGNvbmZpZyB9KTtcblxuICByZXR1cm4gc2VydmljZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFuZFN0YXJ0RGVzdHJveVNlcnZpY2Uob3B0aW9uczoge1xuICBwYXJhbGxlbGlzbTogbnVtYmVyO1xuICBleHRyYU9wdGlvbnM6IHN0cmluZ1tdO1xuICB0ZXJyYWZvcm1CaW5hcnlOYW1lOiBzdHJpbmc7XG4gIGF1dG9BcHByb3ZlPzogYm9vbGVhbjtcbiAgbm9Db2xvcj86IGJvb2xlYW47XG4gIHdvcmtkaXI6IHN0cmluZztcbiAgdmFycz86IHN0cmluZ1tdO1xuICB2YXJGaWxlcz86IHN0cmluZ1tdO1xufSkge1xuICBjb25zdCBzZXJ2aWNlID0gaW50ZXJwcmV0KGRlcGxveU1hY2hpbmUpO1xuXG4gIGNvbnN0IGFyZ3MgPSBbXG4gICAgXCJkZXN0cm95XCIsXG4gICAgLi4uKG9wdGlvbnMuYXV0b0FwcHJvdmUgPyBbXCItYXV0by1hcHByb3ZlXCJdIDogW10pLFxuICAgIC8vIFwiLWlucHV0PWZhbHNlXCIsIHdlIGNhbid0IHVzZSB0aGlzIGFueW1vcmUgYnV0IFRPRE86IHdlIG5lZWQgdG8gZGV0ZWN0IFRGIENMSSBhc2tpbmcgZm9yIG1pc3NpbmcgaW5wdXRzIGFuZCBlaXRoZXIgYWxsb3cgcGFzc2luZyB0aGVtIG9yIHN0b3AgdGhlcmUgYW5kIGZhaWxcblxuICAgIC4uLm9wdGlvbnMuZXh0cmFPcHRpb25zLFxuICAgIC4uLihvcHRpb25zLm5vQ29sb3IgPyBbXCItbm8tY29sb3JcIl0gOiBbXSksXG4gICAgLi4uKG9wdGlvbnMucGFyYWxsZWxpc20gPiAtMVxuICAgICAgPyBbYC1wYXJhbGxlbGlzbT0ke29wdGlvbnMucGFyYWxsZWxpc219YF1cbiAgICAgIDogW10pLFxuICBdO1xuXG4gIG9wdGlvbnMudmFycz8uZm9yRWFjaCgodikgPT4ge1xuICAgIGFyZ3MucHVzaChgLXZhcj0ke3Z9YCk7XG4gIH0pO1xuXG4gIG9wdGlvbnMudmFyRmlsZXM/LmZvckVhY2goKHYpID0+IHtcbiAgICBhcmdzLnB1c2goYC12YXItZmlsZT0ke3Z9YCk7XG4gIH0pO1xuXG4gIGxvZ2dlci5kZWJ1ZyhcbiAgICBgRXhlY3V0aW5nICR7b3B0aW9ucy50ZXJyYWZvcm1CaW5hcnlOYW1lfSAke2FyZ3Muam9pbihcIiBcIil9IGluICR7XG4gICAgICBvcHRpb25zLndvcmtkaXJcbiAgICB9YCxcbiAgKTtcblxuICBjb25zdCBjb25maWc6IEludGVyYWN0aXZlU3Bhd25Db25maWcgPSB7XG4gICAgZmlsZTogb3B0aW9ucy50ZXJyYWZvcm1CaW5hcnlOYW1lLFxuICAgIGFyZ3MsXG4gICAgb3B0aW9uczoge1xuICAgICAgY3dkOiBvcHRpb25zLndvcmtkaXIsXG4gICAgICBlbnY6IHByb2Nlc3MuZW52IGFzIHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sIC8vIFRPRE86IG1ha2UgdGhpcyBleHBsaWNpdCBhbmQgbW92ZSB0byBjYWxsZXIgb3Igd2hhdGV2ZXJcbiAgICB9LFxuICB9O1xuXG4gIHNlcnZpY2Uuc2VuZCh7IHR5cGU6IFwiU1RBUlRcIiwgcHR5OiBjb25maWcgfSk7XG5cbiAgcmV0dXJuIHNlcnZpY2U7XG59XG4iXX0=
|