projen-pipelines 0.1.1 → 0.2.0
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/.jsii +749 -640
- package/API.md +579 -323
- package/lib/awscdk/base.d.ts +33 -8
- package/lib/awscdk/base.js +86 -35
- package/lib/awscdk/bash.js +11 -16
- package/lib/awscdk/codecatalyst.d.ts +0 -17
- package/lib/awscdk/codecatalyst.js +23 -27
- package/lib/awscdk/github.d.ts +0 -21
- package/lib/awscdk/github.js +15 -65
- package/lib/awscdk/gitlab.d.ts +0 -27
- package/lib/awscdk/gitlab.js +19 -64
- package/lib/steps/artifact-steps.js +2 -2
- package/lib/steps/aws-assume-role.step.d.ts +3 -1
- package/lib/steps/aws-assume-role.step.js +17 -2
- package/lib/steps/registries.d.ts +11 -1
- package/lib/steps/registries.js +21 -4
- package/lib/steps/set-env.step.d.ts +14 -0
- package/lib/steps/set-env.step.js +44 -0
- package/lib/steps/step.d.ts +30 -0
- package/lib/steps/step.js +112 -6
- package/package.json +1 -1
package/lib/steps/step.js
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var _a, _b;
|
|
2
|
+
var _a, _b, _c, _d;
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.SimpleCommandStep = exports.PipelineStep = void 0;
|
|
4
|
+
exports.StepSequence = exports.ProjenScriptStep = exports.SimpleCommandStep = exports.PipelineStep = void 0;
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const engines_1 = require("../engines");
|
|
6
7
|
/**
|
|
7
8
|
* Abstract class defining the structure of a pipeline step.
|
|
8
9
|
*/
|
|
@@ -42,7 +43,7 @@ class PipelineStep {
|
|
|
42
43
|
}
|
|
43
44
|
exports.PipelineStep = PipelineStep;
|
|
44
45
|
_a = JSII_RTTI_SYMBOL_1;
|
|
45
|
-
PipelineStep[_a] = { fqn: "projen-pipelines.PipelineStep", version: "0.
|
|
46
|
+
PipelineStep[_a] = { fqn: "projen-pipelines.PipelineStep", version: "0.2.0" };
|
|
46
47
|
/**
|
|
47
48
|
* Concrete implementation of PipelineStep that executes simple commands.
|
|
48
49
|
*/
|
|
@@ -54,7 +55,7 @@ class SimpleCommandStep extends PipelineStep {
|
|
|
54
55
|
*/
|
|
55
56
|
constructor(project, commands) {
|
|
56
57
|
super(project);
|
|
57
|
-
this.commands = commands;
|
|
58
|
+
this.commands = [...commands];
|
|
58
59
|
}
|
|
59
60
|
/**
|
|
60
61
|
* Converts the step into a GitLab CI configuration.
|
|
@@ -98,5 +99,110 @@ class SimpleCommandStep extends PipelineStep {
|
|
|
98
99
|
}
|
|
99
100
|
exports.SimpleCommandStep = SimpleCommandStep;
|
|
100
101
|
_b = JSII_RTTI_SYMBOL_1;
|
|
101
|
-
SimpleCommandStep[_b] = { fqn: "projen-pipelines.SimpleCommandStep", version: "0.
|
|
102
|
-
|
|
102
|
+
SimpleCommandStep[_b] = { fqn: "projen-pipelines.SimpleCommandStep", version: "0.2.0" };
|
|
103
|
+
class ProjenScriptStep extends SimpleCommandStep {
|
|
104
|
+
constructor(project, scriptName, args) {
|
|
105
|
+
super(project, [`npx projen ${scriptName}${args ? ` ${args}` : ''}`]);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
exports.ProjenScriptStep = ProjenScriptStep;
|
|
109
|
+
_c = JSII_RTTI_SYMBOL_1;
|
|
110
|
+
ProjenScriptStep[_c] = { fqn: "projen-pipelines.ProjenScriptStep", version: "0.2.0" };
|
|
111
|
+
// Add class that is a sequence of pipleine steps but is a pipeline step in itself
|
|
112
|
+
class StepSequence extends PipelineStep {
|
|
113
|
+
/**
|
|
114
|
+
* Constructs a sequence of pipeline steps.
|
|
115
|
+
* @param project - The projen project reference.
|
|
116
|
+
* @param steps - The sequence of pipeline steps.
|
|
117
|
+
*/
|
|
118
|
+
constructor(project, steps) {
|
|
119
|
+
super(project);
|
|
120
|
+
this.steps = [...steps];
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Converts the sequence of steps into a GitLab CI configuration.
|
|
124
|
+
*/
|
|
125
|
+
toGitlab() {
|
|
126
|
+
const extensions = [];
|
|
127
|
+
const commands = [];
|
|
128
|
+
const needs = [];
|
|
129
|
+
const env = {};
|
|
130
|
+
for (const step of this.steps) {
|
|
131
|
+
const stepConfig = step.toGitlab();
|
|
132
|
+
extensions.push(...stepConfig.extensions);
|
|
133
|
+
commands.push(...stepConfig.commands);
|
|
134
|
+
needs.push(...stepConfig.needs);
|
|
135
|
+
Object.assign(env, stepConfig.env);
|
|
136
|
+
}
|
|
137
|
+
return {
|
|
138
|
+
extensions,
|
|
139
|
+
commands,
|
|
140
|
+
needs: Array.from(new Set(needs)),
|
|
141
|
+
env,
|
|
142
|
+
};
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Converts the sequence of steps into a Bash script configuration.
|
|
146
|
+
*/
|
|
147
|
+
toBash() {
|
|
148
|
+
const commands = [];
|
|
149
|
+
for (const step of this.steps) {
|
|
150
|
+
const stepConfig = step.toBash();
|
|
151
|
+
commands.push(...stepConfig.commands);
|
|
152
|
+
}
|
|
153
|
+
return { commands };
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Converts the sequence of steps into a GitHub Actions step configuration.
|
|
157
|
+
*/
|
|
158
|
+
toGithub() {
|
|
159
|
+
const needs = [];
|
|
160
|
+
const steps = [];
|
|
161
|
+
const env = {};
|
|
162
|
+
const permissions = [];
|
|
163
|
+
for (const step of this.steps) {
|
|
164
|
+
const stepConfig = step.toGithub();
|
|
165
|
+
needs.push(...stepConfig.needs);
|
|
166
|
+
steps.push(...stepConfig.steps);
|
|
167
|
+
if (stepConfig.permissions) {
|
|
168
|
+
permissions.push(stepConfig.permissions);
|
|
169
|
+
}
|
|
170
|
+
Object.assign(env, stepConfig.env);
|
|
171
|
+
}
|
|
172
|
+
return {
|
|
173
|
+
needs: Array.from(new Set(needs)),
|
|
174
|
+
steps,
|
|
175
|
+
env,
|
|
176
|
+
permissions: (0, engines_1.mergeJobPermissions)(...permissions),
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Converts the sequence of steps into a CodeCatalyst Actions step configuration.
|
|
181
|
+
*/
|
|
182
|
+
toCodeCatalyst() {
|
|
183
|
+
const needs = [];
|
|
184
|
+
const commands = [];
|
|
185
|
+
const env = {};
|
|
186
|
+
for (const step of this.steps) {
|
|
187
|
+
const stepConfig = step.toCodeCatalyst();
|
|
188
|
+
needs.push(...stepConfig.needs);
|
|
189
|
+
commands.push(...stepConfig.commands);
|
|
190
|
+
Object.assign(env, stepConfig.env);
|
|
191
|
+
}
|
|
192
|
+
return {
|
|
193
|
+
needs: Array.from(new Set(needs)),
|
|
194
|
+
commands,
|
|
195
|
+
env,
|
|
196
|
+
};
|
|
197
|
+
}
|
|
198
|
+
addSteps(...steps) {
|
|
199
|
+
this.steps.push(...steps);
|
|
200
|
+
}
|
|
201
|
+
prependSteps(...steps) {
|
|
202
|
+
this.steps.unshift(...steps);
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
exports.StepSequence = StepSequence;
|
|
206
|
+
_d = JSII_RTTI_SYMBOL_1;
|
|
207
|
+
StepSequence[_d] = { fqn: "projen-pipelines.StepSequence", version: "0.2.0" };
|
|
208
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9zdGVwcy9zdGVwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBR0Esd0NBQWlEO0FBK0RqRDs7R0FFRztBQUNILE1BQXNCLFlBQVk7SUFFaEM7OztPQUdHO0lBQ0gsWUFBc0IsT0FBZ0I7UUFBaEIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNwQywyREFBMkQ7SUFDN0QsQ0FBQztJQUVEOztPQUVHO0lBQ0ksUUFBUTtRQUNiLE1BQU0sSUFBSSxLQUFLLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxRQUFRO1FBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWM7UUFDbkIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU07UUFDWCxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUM7SUFDN0MsQ0FBQzs7QUFwQ0gsb0NBcUNDOzs7QUFFRDs7R0FFRztBQUNILE1BQWEsaUJBQWtCLFNBQVEsWUFBWTtJQUlqRDs7OztPQUlHO0lBQ0gsWUFBWSxPQUFnQixFQUFFLFFBQWtCO1FBQzlDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7T0FFRztJQUNJLFFBQVE7UUFDYixPQUFPO1lBQ0wsVUFBVSxFQUFFLEVBQUUsRUFBRSw2Q0FBNkM7WUFDN0QsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsc0JBQXNCO1lBQy9DLEtBQUssRUFBRSxFQUFFLEVBQUUsbUJBQW1CO1lBQzlCLEdBQUcsRUFBRSxFQUFFLEVBQUUsNEJBQTRCO1NBQ3RDLENBQUM7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Q0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN6QyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxPQUFPO1lBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDakMsUUFBUTtZQUNSLEdBQUc7U0FDSixDQUFDO0lBQ0osQ0FBQztJQUVNLFFBQVEsQ0FBQyxHQUFHLEtBQXFCO1FBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVNLFlBQVksQ0FBQyxHQUFHLEtBQXFCO1FBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7QUFwR0gsb0NBcUdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvamVjdCB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBKb2JQZXJtaXNzaW9ucywgSm9iU3RlcCB9IGZyb20gJ3Byb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbCc7XG5pbXBvcnQgeyBOZWVkIH0gZnJvbSAncHJvamVuL2xpYi9naXRsYWInO1xuaW1wb3J0IHsgbWVyZ2VKb2JQZXJtaXNzaW9ucyB9IGZyb20gJy4uL2VuZ2luZXMnO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gaW50ZXJmYWNlIGZvciBhIEdpdExhYiBDSSBzdGVwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdGxhYlN0ZXBDb25maWcge1xuXG4gIC8qKiBMaXN0IG9mIGpvYiBleHRlbnNpb25zIHJlbGF0ZWQgdG8gdGhlIHN0ZXAuICovXG4gIHJlYWRvbmx5IGV4dGVuc2lvbnM6IHN0cmluZ1tdO1xuXG4gIC8qKiBEZXBlbmRlbmNpZXMgd2hpY2ggbmVlZCB0byBiZSBjb21wbGV0ZWQgYmVmb3JlIHRoaXMgc3RlcC4gKi9cbiAgcmVhZG9ubHkgbmVlZHM6IE5lZWRbXTtcblxuICAvKiogU2hlbGwgY29tbWFuZHMgdG8gZXhlY3V0ZSBpbiB0aGlzIHN0ZXAuICovXG4gIHJlYWRvbmx5IGNvbW1hbmRzOiBzdHJpbmdbXTtcblxuICAvKiogQWRkaXRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXMgdG8gc2V0IGZvciB0aGlzIHN0ZXAuICovXG4gIHJlYWRvbmx5IGVudjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGludGVyZmFjZSBmb3IgYSBHaXRIdWIgQWN0aW9ucyBzdGVwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdGh1YlN0ZXBDb25maWcge1xuXG4gIC8qKiBEZXBlbmRlbmNpZXMgd2hpY2ggbmVlZCB0byBiZSBjb21wbGV0ZWQgYmVmb3JlIHRoaXMgc3RlcC4gKi9cbiAgcmVhZG9ubHkgbmVlZHM6IHN0cmluZ1tdO1xuXG4gIC8qKiBDb21tYW5kcyB3cmFwcGVkIGFzIEdpdEh1YiBBY3Rpb24gam9iIHN0ZXBzLiAqL1xuICByZWFkb25seSBzdGVwczogSm9iU3RlcFtdO1xuXG4gIC8qKiBBZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlhYmxlcyB0byBzZXQgZm9yIHRoaXMgc3RlcC4gKi9cbiAgcmVhZG9ubHkgZW52OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKiBBZGRpdGlvbmFsIGpvYiBwZXJtaXNzaW9ucyBuZWVkZWQgKi9cbiAgcmVhZG9ubHkgcGVybWlzc2lvbnM/OiBKb2JQZXJtaXNzaW9ucztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGludGVyZmFjZSBmb3IgYSBDb2RlQ2F0YWx5c3QgQWN0aW9ucyBzdGVwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvZGVDYXRhbHlzdFN0ZXBDb25maWcge1xuXG4gIC8qKiBEZXBlbmRlbmNpZXMgd2hpY2ggbmVlZCB0byBiZSBjb21wbGV0ZWQgYmVmb3JlIHRoaXMgc3RlcC4gKi9cbiAgcmVhZG9ubHkgbmVlZHM6IHN0cmluZ1tdO1xuXG4gIC8qKiBDb21tYW5kcyB3cmFwcGVkIGFzIEdpdEh1YiBBY3Rpb24gam9iIHN0ZXBzLiAqL1xuICByZWFkb25seSBjb21tYW5kczogc3RyaW5nW107XG5cbiAgLyoqIEFkZGl0aW9uYWwgZW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIHNldCBmb3IgdGhpcyBzdGVwLiAqL1xuICByZWFkb25seSBlbnY6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGludGVyZmFjZSBmb3IgYSBiYXNoIHNjcmlwdCBzdGVwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2hTdGVwQ29uZmlnIHtcblxuICAvKiogU2hlbGwgY29tbWFuZHMgdG8gZXhlY3V0ZS4gKi9cbiAgcmVhZG9ubHkgY29tbWFuZHM6IHN0cmluZ1tdO1xufVxuXG4vKipcbiAqIEFic3RyYWN0IGNsYXNzIGRlZmluaW5nIHRoZSBzdHJ1Y3R1cmUgb2YgYSBwaXBlbGluZSBzdGVwLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUGlwZWxpbmVTdGVwIHtcblxuICAvKipcbiAgICogSW5pdGlhbGl6ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgYSBQaXBlbGluZVN0ZXAgd2l0aCBhIHJlZmVyZW5jZSB0byBhIHByb2plbiBwcm9qZWN0LlxuICAgKiBAcGFyYW0gcHJvamVjdCAtIFRoZSBwcm9qZW4gcHJvamVjdCByZWZlcmVuY2UuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgcHJvamVjdDogUHJvamVjdCkge1xuICAgIC8vIENvbnN0cnVjdG9yIGNhbiBiZSBleHRlbmRlZCB0byBpbmNsdWRlIG1vcmUgc2V0dXAgbG9naWMuXG4gIH1cblxuICAvKipcbiAgICogR2VuZXJhdGVzIGEgY29uZmlndXJhdGlvbiBmb3IgYSBHaXRMYWIgQ0kgc3RlcC4gU2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuXG4gICAqL1xuICBwdWJsaWMgdG9HaXRsYWIoKTogR2l0bGFiU3RlcENvbmZpZyB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIGNvbmZpZ3VyYXRpb24gZm9yIGEgR2l0SHViIEFjdGlvbnMgc3RlcC4gU2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuXG4gICAqL1xuICBwdWJsaWMgdG9HaXRodWIoKTogR2l0aHViU3RlcENvbmZpZyB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIGNvbmZpZ3VyYXRpb24gZm9yIGEgQ29kZUNhdGFseXN0IEFjdGlvbnMgc3RlcC4gU2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuXG4gICAqL1xuICBwdWJsaWMgdG9Db2RlQ2F0YWx5c3QoKTogQ29kZUNhdGFseXN0U3RlcENvbmZpZyB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlcyBhIGNvbmZpZ3VyYXRpb24gZm9yIGEgYmFzaCBzY3JpcHQgc3RlcC4gU2hvdWxkIGJlIGltcGxlbWVudGVkIGJ5IHN1YmNsYXNzZXMuXG4gICAqL1xuICBwdWJsaWMgdG9CYXNoKCk6IEJhc2hTdGVwQ29uZmlnIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBDb25jcmV0ZSBpbXBsZW1lbnRhdGlvbiBvZiBQaXBlbGluZVN0ZXAgdGhhdCBleGVjdXRlcyBzaW1wbGUgY29tbWFuZHMuXG4gKi9cbmV4cG9ydCBjbGFzcyBTaW1wbGVDb21tYW5kU3RlcCBleHRlbmRzIFBpcGVsaW5lU3RlcCB7XG5cbiAgcHJvdGVjdGVkIGNvbW1hbmRzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhIHNpbXBsZSBjb21tYW5kIHN0ZXAgd2l0aCBhIHNwZWNpZmllZCBzZXQgb2YgY29tbWFuZHMuXG4gICAqIEBwYXJhbSBwcm9qZWN0IC0gVGhlIHByb2plbiBwcm9qZWN0IHJlZmVyZW5jZS5cbiAgICogQHBhcmFtIGNvbW1hbmRzIC0gU2hlbGwgY29tbWFuZHMgdG8gZXhlY3V0ZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIGNvbW1hbmRzOiBzdHJpbmdbXSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuICAgIHRoaXMuY29tbWFuZHMgPSBbLi4uY29tbWFuZHNdO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBzdGVwIGludG8gYSBHaXRMYWIgQ0kgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyB0b0dpdGxhYigpOiBHaXRsYWJTdGVwQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgZXh0ZW5zaW9uczogW10sIC8vIE5vIGpvYiBleHRlbnNpb25zIHNwZWNpZmllZCBmb3IgdGhpcyBzdGVwLlxuICAgICAgY29tbWFuZHM6IHRoaXMuY29tbWFuZHMsIC8vIENvbW1hbmRzIHRvIGJlIHJ1bi5cbiAgICAgIG5lZWRzOiBbXSwgLy8gTm8gZGVwZW5kZW5jaWVzLlxuICAgICAgZW52OiB7fSwgLy8gTm8gZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIHN0ZXAgaW50byBhIEJhc2ggc2NyaXB0IGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBwdWJsaWMgdG9CYXNoKCk6IEJhc2hTdGVwQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgY29tbWFuZHM6IHRoaXMuY29tbWFuZHMsIC8vIENvbW1hbmRzIHRvIGJlIHJ1bi5cbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBzdGVwIGludG8gYSBHaXRIdWIgQWN0aW9ucyBzdGVwIGNvbmZpZ3VyYXRpb24uXG4gICAqL1xuICBwdWJsaWMgdG9HaXRodWIoKTogR2l0aHViU3RlcENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5lZWRzOiBbXSwgLy8gTm8gZGVwZW5kZW5jaWVzLlxuICAgICAgc3RlcHM6IHRoaXMuY29tbWFuZHMubWFwKGMgPT4gKHsgcnVuOiBjIH0pKSwgLy8gTWFwcyBlYWNoIGNvbW1hbmQgaW50byBhIEdpdEh1YiBBY3Rpb24gam9iIHN0ZXAuXG4gICAgICBlbnY6IHt9LCAvLyBObyBlbnZpcm9ubWVudCB2YXJpYWJsZXMuXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgc3RlcCBpbnRvIGEgQ29kZUNhdGFseXN0IEFjdGlvbnMgc3RlcCBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIHRvQ29kZUNhdGFseXN0KCk6IENvZGVDYXRhbHlzdFN0ZXBDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBuZWVkczogW10sIC8vIE5vIGRlcGVuZGVuY2llcy5cbiAgICAgIGNvbW1hbmRzOiB0aGlzLmNvbW1hbmRzLm1hcChjID0+IChjKSksIC8vIE1hcHMgZWFjaCBjb21tYW5kIGludG8gYSBDb2RlQ2F0YWx5c3QgQWN0aW9uIGpvYiBzdGVwLlxuICAgICAgZW52OiB7fSwgLy8gTm8gZW52aXJvbm1lbnQgdmFyaWFibGVzLlxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGNsYXNzIFByb2plblNjcmlwdFN0ZXAgZXh0ZW5kcyBTaW1wbGVDb21tYW5kU3RlcCB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIHNjcmlwdE5hbWU6IHN0cmluZywgYXJncz86IHN0cmluZykge1xuICAgIHN1cGVyKHByb2plY3QsIFtgbnB4IHByb2plbiAke3NjcmlwdE5hbWV9JHthcmdzID8gYCAke2FyZ3N9YCA6ICcnfWBdKTtcbiAgfVxufVxuXG4vLyBBZGQgY2xhc3MgdGhhdCBpcyBhIHNlcXVlbmNlIG9mIHBpcGxlaW5lIHN0ZXBzIGJ1dCBpcyBhIHBpcGVsaW5lIHN0ZXAgaW4gaXRzZWxmXG5leHBvcnQgY2xhc3MgU3RlcFNlcXVlbmNlIGV4dGVuZHMgUGlwZWxpbmVTdGVwIHtcblxuICBwcm90ZWN0ZWQgc3RlcHM6IFBpcGVsaW5lU3RlcFtdO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGEgc2VxdWVuY2Ugb2YgcGlwZWxpbmUgc3RlcHMuXG4gICAqIEBwYXJhbSBwcm9qZWN0IC0gVGhlIHByb2plbiBwcm9qZWN0IHJlZmVyZW5jZS5cbiAgICogQHBhcmFtIHN0ZXBzIC0gVGhlIHNlcXVlbmNlIG9mIHBpcGVsaW5lIHN0ZXBzLlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgc3RlcHM6IFBpcGVsaW5lU3RlcFtdKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG4gICAgdGhpcy5zdGVwcyA9IFsuLi5zdGVwc107XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIHNlcXVlbmNlIG9mIHN0ZXBzIGludG8gYSBHaXRMYWIgQ0kgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyB0b0dpdGxhYigpOiBHaXRsYWJTdGVwQ29uZmlnIHtcbiAgICBjb25zdCBleHRlbnNpb25zOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGNvbW1hbmRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IG5lZWRzOiBOZWVkW10gPSBbXTtcbiAgICBjb25zdCBlbnY6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBmb3IgKGNvbnN0IHN0ZXAgb2YgdGhpcy5zdGVwcykge1xuICAgICAgY29uc3Qgc3RlcENvbmZpZyA9IHN0ZXAudG9HaXRsYWIoKTtcbiAgICAgIGV4dGVuc2lvbnMucHVzaCguLi5zdGVwQ29uZmlnLmV4dGVuc2lvbnMpO1xuICAgICAgY29tbWFuZHMucHVzaCguLi5zdGVwQ29uZmlnLmNvbW1hbmRzKTtcbiAgICAgIG5lZWRzLnB1c2goLi4uc3RlcENvbmZpZy5uZWVkcyk7XG4gICAgICBPYmplY3QuYXNzaWduKGVudiwgc3RlcENvbmZpZy5lbnYpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgZXh0ZW5zaW9ucyxcbiAgICAgIGNvbW1hbmRzLFxuICAgICAgbmVlZHM6IEFycmF5LmZyb20obmV3IFNldChuZWVkcykpLFxuICAgICAgZW52LFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogQ29udmVydHMgdGhlIHNlcXVlbmNlIG9mIHN0ZXBzIGludG8gYSBCYXNoIHNjcmlwdCBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIHRvQmFzaCgpOiBCYXNoU3RlcENvbmZpZyB7XG4gICAgY29uc3QgY29tbWFuZHM6IHN0cmluZ1tdID0gW107XG4gICAgZm9yIChjb25zdCBzdGVwIG9mIHRoaXMuc3RlcHMpIHtcbiAgICAgIGNvbnN0IHN0ZXBDb25maWcgPSBzdGVwLnRvQmFzaCgpO1xuICAgICAgY29tbWFuZHMucHVzaCguLi5zdGVwQ29uZmlnLmNvbW1hbmRzKTtcbiAgICB9XG4gICAgcmV0dXJuIHsgY29tbWFuZHMgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0cyB0aGUgc2VxdWVuY2Ugb2Ygc3RlcHMgaW50byBhIEdpdEh1YiBBY3Rpb25zIHN0ZXAgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHB1YmxpYyB0b0dpdGh1YigpOiBHaXRodWJTdGVwQ29uZmlnIHtcbiAgICBjb25zdCBuZWVkczogc3RyaW5nW10gPSBbXTtcbiAgICBjb25zdCBzdGVwczogSm9iU3RlcFtdID0gW107XG4gICAgY29uc3QgZW52OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9ID0ge307XG4gICAgY29uc3QgcGVybWlzc2lvbnM6IEpvYlBlcm1pc3Npb25zW10gPSBbXTtcbiAgICBmb3IgKGNvbnN0IHN0ZXAgb2YgdGhpcy5zdGVwcykge1xuICAgICAgY29uc3Qgc3RlcENvbmZpZyA9IHN0ZXAudG9HaXRodWIoKTtcbiAgICAgIG5lZWRzLnB1c2goLi4uc3RlcENvbmZpZy5uZWVkcyk7XG4gICAgICBzdGVwcy5wdXNoKC4uLnN0ZXBDb25maWcuc3RlcHMpO1xuICAgICAgaWYgKHN0ZXBDb25maWcucGVybWlzc2lvbnMpIHtcbiAgICAgICAgcGVybWlzc2lvbnMucHVzaChzdGVwQ29uZmlnLnBlcm1pc3Npb25zKTtcbiAgICAgIH1cbiAgICAgIE9iamVjdC5hc3NpZ24oZW52LCBzdGVwQ29uZmlnLmVudik7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBuZWVkczogQXJyYXkuZnJvbShuZXcgU2V0KG5lZWRzKSksXG4gICAgICBzdGVwcyxcbiAgICAgIGVudixcbiAgICAgIHBlcm1pc3Npb25zOiBtZXJnZUpvYlBlcm1pc3Npb25zKC4uLnBlcm1pc3Npb25zKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBzZXF1ZW5jZSBvZiBzdGVwcyBpbnRvIGEgQ29kZUNhdGFseXN0IEFjdGlvbnMgc3RlcCBjb25maWd1cmF0aW9uLlxuICAgKi9cbiAgcHVibGljIHRvQ29kZUNhdGFseXN0KCk6IENvZGVDYXRhbHlzdFN0ZXBDb25maWcge1xuICAgIGNvbnN0IG5lZWRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGNvbW1hbmRzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGNvbnN0IGVudjogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSA9IHt9O1xuICAgIGZvciAoY29uc3Qgc3RlcCBvZiB0aGlzLnN0ZXBzKSB7XG4gICAgICBjb25zdCBzdGVwQ29uZmlnID0gc3RlcC50b0NvZGVDYXRhbHlzdCgpO1xuICAgICAgbmVlZHMucHVzaCguLi5zdGVwQ29uZmlnLm5lZWRzKTtcbiAgICAgIGNvbW1hbmRzLnB1c2goLi4uc3RlcENvbmZpZy5jb21tYW5kcyk7XG4gICAgICBPYmplY3QuYXNzaWduKGVudiwgc3RlcENvbmZpZy5lbnYpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgbmVlZHM6IEFycmF5LmZyb20obmV3IFNldChuZWVkcykpLFxuICAgICAgY29tbWFuZHMsXG4gICAgICBlbnYsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBhZGRTdGVwcyguLi5zdGVwczogUGlwZWxpbmVTdGVwW10pIHtcbiAgICB0aGlzLnN0ZXBzLnB1c2goLi4uc3RlcHMpO1xuICB9XG5cbiAgcHVibGljIHByZXBlbmRTdGVwcyguLi5zdGVwczogUGlwZWxpbmVTdGVwW10pIHtcbiAgICB0aGlzLnN0ZXBzLnVuc2hpZnQoLi4uc3RlcHMpO1xuICB9XG59Il19
|