projen-pipelines 0.0.61 → 0.0.63
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 +346 -141
- package/API.md +259 -15
- package/README.md +14 -0
- package/lib/awscdk/base.d.ts +32 -3
- package/lib/awscdk/base.js +29 -2
- package/lib/awscdk/bash.js +2 -2
- package/lib/awscdk/github.d.ts +6 -1
- package/lib/awscdk/github.js +146 -124
- package/lib/awscdk/gitlab.d.ts +6 -1
- package/lib/awscdk/gitlab.js +95 -50
- package/lib/awscdk/index.js +7 -3
- package/lib/engine.js +2 -2
- package/lib/index.js +7 -3
- package/lib/release.js +7 -7
- package/lib/steps/artifact-steps.d.ts +21 -0
- package/lib/steps/artifact-steps.js +56 -0
- package/lib/steps/aws-assume-role.step.d.ts +22 -0
- package/lib/steps/aws-assume-role.step.js +42 -0
- package/lib/steps/index.js +7 -3
- package/lib/steps/step.d.ts +14 -6
- package/lib/steps/step.js +29 -9
- package/package.json +16 -19
package/lib/awscdk/gitlab.js
CHANGED
|
@@ -6,6 +6,8 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
|
6
6
|
const projen_1 = require("projen");
|
|
7
7
|
const base_1 = require("./base");
|
|
8
8
|
const engine_1 = require("../engine");
|
|
9
|
+
const steps_1 = require("../steps");
|
|
10
|
+
const aws_assume_role_step_1 = require("../steps/aws-assume-role.step");
|
|
9
11
|
/**
|
|
10
12
|
* The GitlabCDKPipeline class extends CDKPipeline to provide a way to configure and execute
|
|
11
13
|
* AWS CDK deployment pipelines within GitLab CI/CD environments. It integrates IAM role management,
|
|
@@ -37,6 +39,9 @@ class GitlabCDKPipeline extends base_1.CDKPipeline {
|
|
|
37
39
|
for (const stage of options.stages) {
|
|
38
40
|
this.createDeployment(stage);
|
|
39
41
|
}
|
|
42
|
+
for (const stage of (options.independentStages ?? [])) {
|
|
43
|
+
this.createIndependentDeployment(stage);
|
|
44
|
+
}
|
|
40
45
|
}
|
|
41
46
|
/**
|
|
42
47
|
* Sets up base job snippets for artifact handling and AWS configuration.
|
|
@@ -72,6 +77,7 @@ class GitlabCDKPipeline extends base_1.CDKPipeline {
|
|
|
72
77
|
},
|
|
73
78
|
variables: {
|
|
74
79
|
CI: 'true',
|
|
80
|
+
// NPM_REGISTRY: 'xxx'
|
|
75
81
|
},
|
|
76
82
|
beforeScript: [
|
|
77
83
|
`check_variables_defined() {
|
|
@@ -84,8 +90,9 @@ class GitlabCDKPipeline extends base_1.CDKPipeline {
|
|
|
84
90
|
|
|
85
91
|
awslogin() {
|
|
86
92
|
roleArn=\${1: -\${AWS_ROLE_ARN}}
|
|
93
|
+
sessionName=\${2:-GitLabRunner-\${CI_PROJECT_ID}-\${CI_PIPELINE_ID}}
|
|
87
94
|
check_variables_defined roleArn AWS_TOKEN
|
|
88
|
-
export $(printf "AWS_ACCESS_KEY_ID=%s AWS_SECRET_ACCESS_KEY=%s AWS_SESSION_TOKEN=%s" $(aws sts assume-role-with-web-identity --role-arn \${roleArn} --role-session-name "
|
|
95
|
+
export $(printf "AWS_ACCESS_KEY_ID=%s AWS_SECRET_ACCESS_KEY=%s AWS_SESSION_TOKEN=%s" $(aws sts assume-role-with-web-identity --role-arn \${roleArn} --role-session-name "\${sessionName}" --web-identity-token \${AWS_TOKEN} --duration-seconds 3600 --query 'Credentials.[AccessKeyId,SecretAccessKey,SessionToken]' --output text))
|
|
89
96
|
# TODO CODE ARTIFACT
|
|
90
97
|
}
|
|
91
98
|
`,
|
|
@@ -100,34 +107,27 @@ awslogin() {
|
|
|
100
107
|
* configured to be cached as artifacts.
|
|
101
108
|
*/
|
|
102
109
|
createSynth() {
|
|
103
|
-
const
|
|
110
|
+
const steps = [];
|
|
104
111
|
if (this.options.iamRoleArns?.synth) {
|
|
105
|
-
|
|
112
|
+
steps.push(new aws_assume_role_step_1.AwsAssumeRoleStep(this.project, {
|
|
113
|
+
roleArn: this.options.iamRoleArns.synth,
|
|
114
|
+
}));
|
|
106
115
|
}
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
script.push(...this.renderInstallCommands());
|
|
114
|
-
const preSynthSteps = (this.options.preSynthSteps ?? []).map(s => s.toGitlab());
|
|
115
|
-
script.push(...preSynthSteps.flatMap(s => s.commands));
|
|
116
|
-
extensions.push(...preSynthSteps.flatMap(s => s.extensions));
|
|
117
|
-
needs.push(...preSynthSteps.flatMap(s => s.needs));
|
|
118
|
-
script.push(...this.renderSynthCommands());
|
|
119
|
-
const postSynthSteps = (this.options.postSynthSteps ?? []).map(s => s.toGitlab());
|
|
120
|
-
script.push(...postSynthSteps.flatMap(s => s.commands));
|
|
121
|
-
extensions.push(...postSynthSteps.flatMap(s => s.extensions));
|
|
122
|
-
needs.push(...postSynthSteps.flatMap(s => s.needs));
|
|
116
|
+
steps.push(...this.options.preInstallSteps ?? []);
|
|
117
|
+
steps.push(new steps_1.SimpleCommandStep(this.project, this.renderInstallCommands()));
|
|
118
|
+
steps.push(...this.options.preSynthSteps ?? []);
|
|
119
|
+
steps.push(new steps_1.SimpleCommandStep(this.project, this.renderSynthCommands()));
|
|
120
|
+
steps.push(...this.options.postSynthSteps ?? []);
|
|
121
|
+
const gitlabSteps = steps.map(s => s.toGitlab());
|
|
123
122
|
this.config.addStages('synth');
|
|
124
123
|
this.config.addJobs({
|
|
125
124
|
synth: {
|
|
126
|
-
extends: extensions,
|
|
127
|
-
needs: needs,
|
|
125
|
+
extends: ['.aws_base', '.artifacts_cdk', ...gitlabSteps.flatMap(s => s.extensions)],
|
|
126
|
+
needs: gitlabSteps.flatMap(s => s.needs),
|
|
128
127
|
stage: 'synth',
|
|
129
128
|
tags: this.options.runnerTags?.synth ?? this.options.runnerTags?.default,
|
|
130
|
-
script,
|
|
129
|
+
script: gitlabSteps.flatMap(s => s.commands),
|
|
130
|
+
variables: gitlabSteps.reduce((acc, step) => ({ ...acc, ...step.env }), {}),
|
|
131
131
|
},
|
|
132
132
|
});
|
|
133
133
|
}
|
|
@@ -138,22 +138,25 @@ awslogin() {
|
|
|
138
138
|
* of the 'synth' stage, ensuring assets are only published after successful synthesis.
|
|
139
139
|
*/
|
|
140
140
|
createAssetUpload() {
|
|
141
|
-
const
|
|
141
|
+
const steps = [];
|
|
142
142
|
if (this.options.iamRoleArns?.assetPublishing) {
|
|
143
|
-
|
|
143
|
+
steps.push(new aws_assume_role_step_1.AwsAssumeRoleStep(this.project, {
|
|
144
|
+
roleArn: this.options.iamRoleArns.assetPublishing,
|
|
145
|
+
}));
|
|
144
146
|
}
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
147
|
+
steps.push(...this.options.preInstallSteps ?? []);
|
|
148
|
+
steps.push(new steps_1.SimpleCommandStep(this.project, this.renderInstallCommands()));
|
|
149
|
+
steps.push(new steps_1.SimpleCommandStep(this.project, this.getAssetUploadCommands(this.needsVersionedArtifacts)));
|
|
150
|
+
const gitlabSteps = steps.map(s => s.toGitlab());
|
|
149
151
|
this.config.addStages('publish_assets');
|
|
150
152
|
this.config.addJobs({
|
|
151
153
|
publish_assets: {
|
|
152
|
-
extends: ['.aws_base', ...
|
|
154
|
+
extends: ['.aws_base', ...gitlabSteps.flatMap(s => s.extensions)],
|
|
153
155
|
stage: 'publish_assets',
|
|
154
156
|
tags: this.options.runnerTags?.assetPublishing ?? this.options.runnerTags?.default,
|
|
155
|
-
needs: [{ job: 'synth', artifacts: true }, ...
|
|
156
|
-
script,
|
|
157
|
+
needs: [{ job: 'synth', artifacts: true }, ...gitlabSteps.flatMap(s => s.needs)],
|
|
158
|
+
script: gitlabSteps.flatMap(s => s.commands),
|
|
159
|
+
variables: gitlabSteps.reduce((acc, step) => ({ ...acc, ...step.env }), {}),
|
|
157
160
|
},
|
|
158
161
|
});
|
|
159
162
|
}
|
|
@@ -166,11 +169,28 @@ awslogin() {
|
|
|
166
169
|
* @param {DeploymentStage} stage - The deployment stage configuration to set up.
|
|
167
170
|
*/
|
|
168
171
|
createDeployment(stage) {
|
|
169
|
-
const
|
|
172
|
+
const diffSteps = [
|
|
173
|
+
new aws_assume_role_step_1.AwsAssumeRoleStep(this.project, {
|
|
174
|
+
roleArn: this.options.iamRoleArns?.diff?.[stage.name]
|
|
175
|
+
?? this.options.iamRoleArns?.deployment?.[stage.name]
|
|
176
|
+
?? this.options.iamRoleArns?.default,
|
|
177
|
+
}),
|
|
178
|
+
...this.options.preInstallSteps ?? [],
|
|
179
|
+
new steps_1.SimpleCommandStep(this.project, this.renderInstallCommands()),
|
|
180
|
+
new steps_1.SimpleCommandStep(this.project, this.renderDiffCommands(stage.name)),
|
|
181
|
+
].map(s => s.toGitlab());
|
|
182
|
+
const deploySteps = [
|
|
183
|
+
new aws_assume_role_step_1.AwsAssumeRoleStep(this.project, {
|
|
184
|
+
roleArn: this.options.iamRoleArns?.deployment?.[stage.name] ?? this.options.iamRoleArns?.default,
|
|
185
|
+
}),
|
|
186
|
+
...this.options.preInstallSteps ?? [],
|
|
187
|
+
new steps_1.SimpleCommandStep(this.project, this.renderInstallCommands()),
|
|
188
|
+
new steps_1.SimpleCommandStep(this.project, this.renderDeployCommands(stage.name)),
|
|
189
|
+
].map(s => s.toGitlab());
|
|
170
190
|
this.config.addStages(stage.name);
|
|
171
191
|
this.config.addJobs({
|
|
172
192
|
[`diff-${stage.name}`]: {
|
|
173
|
-
extends: ['.aws_base', ...
|
|
193
|
+
extends: ['.aws_base', ...diffSteps.flatMap(s => s.extensions)],
|
|
174
194
|
stage: stage.name,
|
|
175
195
|
tags: this.options.runnerTags?.diff?.[stage.name] ?? this.options.runnerTags?.deployment?.[stage.name] ?? this.options.runnerTags?.default,
|
|
176
196
|
only: {
|
|
@@ -179,17 +199,13 @@ awslogin() {
|
|
|
179
199
|
needs: [
|
|
180
200
|
{ job: 'synth', artifacts: true },
|
|
181
201
|
{ job: 'publish_assets' },
|
|
182
|
-
...
|
|
183
|
-
],
|
|
184
|
-
script: [
|
|
185
|
-
`awslogin '${this.options.iamRoleArns?.diff?.[stage.name] ?? this.options.iamRoleArns?.deployment?.[stage.name] ?? this.options.iamRoleArns?.default}'`,
|
|
186
|
-
...preInstallSteps.flatMap(s => s.commands),
|
|
187
|
-
...this.renderInstallCommands(),
|
|
188
|
-
...this.renderDiffCommands(stage.name),
|
|
202
|
+
...diffSteps.flatMap(s => s.needs),
|
|
189
203
|
],
|
|
204
|
+
script: diffSteps.flatMap(s => s.commands),
|
|
205
|
+
variables: diffSteps.reduce((acc, step) => ({ ...acc, ...step.env }), {}),
|
|
190
206
|
},
|
|
191
207
|
[`deploy-${stage.name}`]: {
|
|
192
|
-
extends: ['.aws_base', '.artifacts_cdkdeploy', ...
|
|
208
|
+
extends: ['.aws_base', '.artifacts_cdkdeploy', ...deploySteps.flatMap(s => s.extensions)],
|
|
193
209
|
stage: stage.name,
|
|
194
210
|
tags: this.options.runnerTags?.deployment?.[stage.name] ?? this.options.runnerTags?.default,
|
|
195
211
|
...stage.manualApproval && {
|
|
@@ -202,23 +218,52 @@ awslogin() {
|
|
|
202
218
|
{ job: 'synth', artifacts: true },
|
|
203
219
|
{ job: 'publish_assets' },
|
|
204
220
|
{ job: `diff-${stage.name}` },
|
|
205
|
-
...
|
|
206
|
-
],
|
|
207
|
-
script: [
|
|
208
|
-
`awslogin '${this.options.iamRoleArns?.deployment?.[stage.name] ?? this.options.iamRoleArns?.default}'`,
|
|
209
|
-
...preInstallSteps.flatMap(s => s.commands),
|
|
210
|
-
...this.renderInstallCommands(),
|
|
211
|
-
...this.renderDeployCommands(stage.name),
|
|
221
|
+
...deploySteps.flatMap(s => s.needs),
|
|
212
222
|
],
|
|
223
|
+
script: deploySteps.flatMap(s => s.commands),
|
|
224
|
+
variables: deploySteps.reduce((acc, step) => ({ ...acc, ...step.env }), {}),
|
|
213
225
|
},
|
|
214
226
|
});
|
|
215
227
|
this.deploymentStages.push(stage.name);
|
|
216
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* Creates a job to deploy the CDK application to AWS.
|
|
231
|
+
* @param stage - The independent stage to create.
|
|
232
|
+
*/
|
|
233
|
+
createIndependentDeployment(stage) {
|
|
234
|
+
const steps = [
|
|
235
|
+
new aws_assume_role_step_1.AwsAssumeRoleStep(this.project, {
|
|
236
|
+
roleArn: this.options.iamRoleArns?.deployment?.[stage.name] ?? this.options.iamRoleArns?.default,
|
|
237
|
+
region: stage.env.region,
|
|
238
|
+
}),
|
|
239
|
+
...this.options.preInstallSteps ?? [],
|
|
240
|
+
new steps_1.SimpleCommandStep(this.project, this.renderInstallCommands()),
|
|
241
|
+
...this.options.preSynthSteps ?? [],
|
|
242
|
+
new steps_1.SimpleCommandStep(this.project, this.renderSynthCommands()),
|
|
243
|
+
...this.options.postSynthSteps ?? [],
|
|
244
|
+
new steps_1.SimpleCommandStep(this.project, this.renderDiffCommands(stage.name)),
|
|
245
|
+
...stage.postDiffSteps ?? [],
|
|
246
|
+
new steps_1.SimpleCommandStep(this.project, this.renderDeployCommands(stage.name)),
|
|
247
|
+
...stage.postDeploySteps ?? [],
|
|
248
|
+
].map(s => s.toGitlab());
|
|
249
|
+
this.config.addStages(stage.name);
|
|
250
|
+
this.config.addJobs({
|
|
251
|
+
[`deploy-${stage.name}`]: {
|
|
252
|
+
extends: ['.aws_base', '.artifacts_cdkdeploy', ...steps.flatMap(s => s.extensions)],
|
|
253
|
+
stage: stage.name,
|
|
254
|
+
tags: this.options.runnerTags?.deployment?.[stage.name] ?? this.options.runnerTags?.default,
|
|
255
|
+
when: projen_1.gitlab.JobWhen.MANUAL,
|
|
256
|
+
needs: steps.flatMap(s => s.needs),
|
|
257
|
+
script: steps.flatMap(s => s.commands),
|
|
258
|
+
variables: steps.reduce((acc, step) => ({ ...acc, ...step.env }), {}),
|
|
259
|
+
},
|
|
260
|
+
});
|
|
261
|
+
}
|
|
217
262
|
engineType() {
|
|
218
263
|
return engine_1.PipelineEngine.GITLAB;
|
|
219
264
|
}
|
|
220
265
|
}
|
|
221
266
|
exports.GitlabCDKPipeline = GitlabCDKPipeline;
|
|
222
267
|
_a = JSII_RTTI_SYMBOL_1;
|
|
223
|
-
GitlabCDKPipeline[_a] = { fqn: "projen-pipelines.GitlabCDKPipeline", version: "0.0.
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0bGFiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3c2Nkay9naXRsYWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBd0M7QUFDeEMsaUNBQTBFO0FBQzFFLHNDQUEyQztBQW1EM0M7Ozs7R0FJRztBQUNILE1BQWEsaUJBQWtCLFNBQVEsa0JBQVc7SUFjaEQ7Ozs7OztPQU1HO0lBQ0gsWUFBWSxHQUErQixFQUFVLE9BQWlDO1FBQ3BGLEtBQUssQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFEK0IsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFWdEYsNENBQTRDO1FBQ3BDLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztRQVl0Qyx1Q0FBdUM7UUFDdkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGVBQU0sQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUU7WUFDaEQsTUFBTSxFQUFFLEVBQUU7WUFDVixJQUFJLEVBQUUsRUFBRTtTQUNULENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyx1QkFBdUIsR0FBRyxLQUFLLENBQUMsQ0FBQyw2Q0FBNkM7UUFDbkYsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBSyxJQUFJLDZDQUE2QyxDQUFDO1FBRS9FLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVyQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFbkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFFekIsS0FBSyxNQUFNLEtBQUssSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ08sYUFBYTtRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUNsQixnQkFBZ0IsRUFBRTtnQkFDaEIsU0FBUyxFQUFFO29CQUNULElBQUksRUFBRSxl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O2lCQUN4QjtnQkFDRCxLQUFLLEVBQUU7b0JBQ0wsRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUU7b0JBQ2pDLEVBQUUsR0FBRyxFQUFFLGdCQUFnQixFQUFFO29CQUN6QixFQUFFLEdBQUcsRUFBRSxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRTtvQkFDN0IsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztpQkFDekM7Z0JBQ0QsTUFBTSxFQUFFO29CQUNOLGFBQWEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sR0FBRztvQkFDdkcsR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztvQkFDM0MsR0FBRyxJQUFJLENBQUMscUJBQXFCLEVBQUU7b0JBQy9CLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUM7aUJBQ3pDO2FBQ0Y7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRU0sVUFBVTtRQUNmLE9BQU8sdUJBQWMsQ0FBQyxNQUFNLENBQUM7SUFDL0IsQ0FBQzs7QUE3T0gsOENBK09DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXdzY2RrLCBnaXRsYWIgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQ0RLUGlwZWxpbmUsIENES1BpcGVsaW5lT3B0aW9ucywgRGVwbG95bWVudFN0YWdlIH0gZnJvbSAnLi9iYXNlJztcbmltcG9ydCB7IFBpcGVsaW5lRW5naW5lIH0gZnJvbSAnLi4vZW5naW5lJztcblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBJQU0gcm9sZXMgdXNlZCB3aXRoaW4gdGhlIEdpdExhYiBDSS9DRCBwaXBlbGluZSBmb3IgdmFyaW91cyBzdGFnZXMuXG4gKiBBbGxvd3Mgc3BlY2lmeWluZyBkaWZmZXJlbnQgSUFNIHJvbGVzIGZvciBzeW50aGVzaXMsIGFzc2V0IHB1Ymxpc2hpbmcsIGFuZCBkZXBsb3ltZW50IHN0YWdlcyxcbiAqIHByb3ZpZGluZyBncmFudWxhciBjb250cm9sIG92ZXIgcGVybWlzc2lvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0bGFiSWFtUm9sZUNvbmZpZyB7XG4gIC8qKiBEZWZhdWx0IElBTSByb2xlIEFSTiB1c2VkIGlmIHNwZWNpZmljIHN0YWdlIHJvbGUgaXMgbm90IHByb3ZpZGVkLiAqL1xuICByZWFkb25seSBkZWZhdWx0Pzogc3RyaW5nO1xuICAvKiogSUFNIHJvbGUgQVJOIGZvciB0aGUgc3ludGhlc2lzIHN0YWdlLiAqL1xuICByZWFkb25seSBzeW50aD86IHN0cmluZztcbiAgLyoqIElBTSByb2xlIEFSTiBmb3IgdGhlIGFzc2V0IHB1Ymxpc2hpbmcgc3RhZ2UuICovXG4gIHJlYWRvbmx5IGFzc2V0UHVibGlzaGluZz86IHN0cmluZztcbiAgLyoqIEEgbWFwIG9mIHN0YWdlIG5hbWVzIHRvIElBTSByb2xlIEFSTnMgZm9yIHRoZSBkaWZmIG9wZXJhdGlvbi4gKi9cbiAgcmVhZG9ubHkgZGlmZj86IHsgW3N0YWdlOiBzdHJpbmddOiBzdHJpbmcgfTtcbiAgLyoqIEEgbWFwIG9mIHN0YWdlIG5hbWVzIHRvIElBTSByb2xlIEFSTnMgZm9yIHRoZSBkZXBsb3ltZW50IG9wZXJhdGlvbi4gKi9cbiAgcmVhZG9ubHkgZGVwbG95bWVudD86IHsgW3N0YWdlOiBzdHJpbmddOiBzdHJpbmcgfTtcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBHaXRMYWIgcnVubmVyIHRhZ3MgdXNlZCB3aXRoaW4gdGhlIENJL0NEIHBpcGVsaW5lIGZvciB2YXJpb3VzIHN0YWdlcy5cbiAqIFRoaXMgYWxsb3dzIGZvciBzcGVjaWZ5aW5nIGRpZmZlcmVudCBydW5uZXJzIGJhc2VkIG9uIHRoZSB0YWdzIGZvciBkaWZmZXJlbnQgc3RhZ2VzIG9mIHRoZSBwaXBlbGluZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRsYWJSdW5uZXJUYWdzIHtcbiAgLyoqIERlZmF1bHQgcnVubmVyIHRhZ3MgdXNlZCBpZiBzcGVjaWZpYyBzdGFnZSB0YWdzIGFyZSBub3QgcHJvdmlkZWQuICovXG4gIHJlYWRvbmx5IGRlZmF1bHQ/OiBzdHJpbmdbXTtcbiAgLyoqIFJ1bm5lciB0YWdzIGZvciB0aGUgc3ludGhlc2lzIHN0YWdlLiAqL1xuICByZWFkb25seSBzeW50aD86IHN0cmluZ1tdO1xuICAvKiogUnVubmVyIHRhZ3MgZm9yIHRoZSBhc3NldCBwdWJsaXNoaW5nIHN0YWdlLiAqL1xuICByZWFkb25seSBhc3NldFB1Ymxpc2hpbmc/OiBzdHJpbmdbXTtcbiAgLyoqIEEgbWFwIG9mIHN0YWdlIG5hbWVzIHRvIHJ1bm5lciB0YWdzIGZvciB0aGUgZGlmZiBvcGVyYXRpb24uICovXG4gIHJlYWRvbmx5IGRpZmY/OiB7IFtzdGFnZTogc3RyaW5nXTogc3RyaW5nW10gfTtcbiAgLyoqIEEgbWFwIG9mIHN0YWdlIG5hbWVzIHRvIHJ1bm5lciB0YWdzIGZvciB0aGUgZGVwbG95bWVudCBvcGVyYXRpb24uICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnQ/OiB7IFtzdGFnZTogc3RyaW5nXTogc3RyaW5nW10gfTtcbn1cblxuLyoqXG4gKiBPcHRpb25zIGZvciBjb25maWd1cmluZyB0aGUgR2l0TGFiIENESyBwaXBlbGluZSwgZXh0ZW5kaW5nIHRoZSBiYXNlIENESyBwaXBlbGluZSBvcHRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdGxhYkNES1BpcGVsaW5lT3B0aW9ucyBleHRlbmRzIENES1BpcGVsaW5lT3B0aW9ucyB7XG4gIC8qKiBJQU0gcm9sZSBBUk5zIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBwaXBlbGluZS4gKi9cbiAgcmVhZG9ubHkgaWFtUm9sZUFybnM6IEdpdGxhYklhbVJvbGVDb25maWc7XG4gIC8qKiBSdW5uZXIgdGFncyBjb25maWd1cmF0aW9uIGZvciB0aGUgcGlwZWxpbmUuICovXG4gIHJlYWRvbmx5IHJ1bm5lclRhZ3M/OiBHaXRsYWJSdW5uZXJUYWdzO1xuICAvKiogVGhlIERvY2tlciBpbWFnZSB0byB1c2UgZm9yIHJ1bm5pbmcgdGhlIHBpcGVsaW5lIGpvYnMuICovXG4gIHJlYWRvbmx5IGltYWdlPzogc3RyaW5nO1xuXG4gIC8vIHJlYWRvbmx5IHB1Ymxpc2hlZENsb3VkQXNzZW1ibGllcz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogVGhlIEdpdGxhYkNES1BpcGVsaW5lIGNsYXNzIGV4dGVuZHMgQ0RLUGlwZWxpbmUgdG8gcHJvdmlkZSBhIHdheSB0byBjb25maWd1cmUgYW5kIGV4ZWN1dGVcbiAqIEFXUyBDREsgZGVwbG95bWVudCBwaXBlbGluZXMgd2l0aGluIEdpdExhYiBDSS9DRCBlbnZpcm9ubWVudHMuIEl0IGludGVncmF0ZXMgSUFNIHJvbGUgbWFuYWdlbWVudCxcbiAqIHJ1bm5lciBjb25maWd1cmF0aW9uLCBhbmQgZGVmaW5lcyBzdGFnZXMgYW5kIGpvYnMgZm9yIHRoZSBkZXBsb3ltZW50IHdvcmtmbG93LlxuICovXG5leHBvcnQgY2xhc3MgR2l0bGFiQ0RLUGlwZWxpbmUgZXh0ZW5kcyBDREtQaXBlbGluZSB7XG5cbiAgLyoqIEluZGljYXRlcyBpZiB2ZXJzaW9uZWQgYXJ0aWZhY3RzIGFyZSByZXF1aXJlZC4gQ3VycmVudGx5IHNldCB0byBmYWxzZSAgKi9cbiAgcHVibGljIHJlYWRvbmx5IG5lZWRzVmVyc2lvbmVkQXJ0aWZhY3RzOiBib29sZWFuO1xuXG4gIC8qKiBUaGUgRG9ja2VyIGltYWdlIHVzZWQgZm9yIHBpcGVsaW5lIGpvYnMuIERlZmF1bHRzIHRvIGEgc3BlY2lmaWVkIGltYWdlIG9yIGEgZGVmYXVsdCB2YWx1ZS4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGpvYkltYWdlOiBzdHJpbmc7XG5cbiAgLyoqIEdpdExhYiBDSS9DRCBjb25maWd1cmF0aW9uIG9iamVjdC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGNvbmZpZzogZ2l0bGFiLkdpdGxhYkNvbmZpZ3VyYXRpb247XG5cbiAgLyoqIExpc3Qgb2YgZGVwbG95bWVudCBzdGFnZXMgYXMgc3RyaW5ncy4gKi9cbiAgcHJpdmF0ZSBkZXBsb3ltZW50U3RhZ2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3RzIGFuIGluc3RhbmNlIG9mIEdpdGxhYkNES1BpcGVsaW5lLCBpbml0aWFsaXppbmcgdGhlIEdpdExhYiBDSS9DRCBjb25maWd1cmF0aW9uXG4gICAqIGFuZCBzZXR0aW5nIHVwIHRoZSBuZWNlc3Nhcnkgc3RhZ2VzIGFuZCBqb2JzIGZvciBBV1MgQ0RLIGRlcGxveW1lbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7YXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHB9IGFwcCAtIFRoZSBBV1MgQ0RLIGFwcCBhc3NvY2lhdGVkIHdpdGggdGhlIHBpcGVsaW5lLlxuICAgKiBAcGFyYW0ge0dpdGxhYkNES1BpcGVsaW5lT3B0aW9uc30gb3B0aW9ucyAtIENvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIHBpcGVsaW5lLlxuICAgKi9cbiAgY29uc3RydWN0b3IoYXBwOiBhd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcCwgcHJpdmF0ZSBvcHRpb25zOiBHaXRsYWJDREtQaXBlbGluZU9wdGlvbnMpIHtcbiAgICBzdXBlcihhcHAsIG9wdGlvbnMpO1xuXG4gICAgLy8gVE9ETyB1c2UgZXhpc3RpbmcgY29uZmlnIGlmIHBvc3NpYmxlXG4gICAgdGhpcy5jb25maWcgPSBuZXcgZ2l0bGFiLkdpdGxhYkNvbmZpZ3VyYXRpb24oYXBwLCB7XG4gICAgICBzdGFnZXM6IFtdLFxuICAgICAgam9iczoge30sXG4gICAgfSk7XG5cbiAgICB0aGlzLm5lZWRzVmVyc2lvbmVkQXJ0aWZhY3RzID0gZmFsc2U7IC8vIG9wdGlvbnMucHVibGlzaGVkQ2xvdWRBc3NlbWJsaWVzID8/IGZhbHNlO1xuICAgIHRoaXMuam9iSW1hZ2UgPSBvcHRpb25zLmltYWdlID8/ICdpbWFnZToganNpaS9zdXBlcmNoYWluOjEtYnVzdGVyLXNsaW0tbm9kZTE4JztcblxuICAgIHRoaXMuc2V0dXBTbmlwcGV0cygpO1xuXG4gICAgdGhpcy5jcmVhdGVTeW50aCgpO1xuXG4gICAgdGhpcy5jcmVhdGVBc3NldFVwbG9hZCgpO1xuXG4gICAgZm9yIChjb25zdCBzdGFnZSBvZiBvcHRpb25zLnN0YWdlcykge1xuICAgICAgdGhpcy5jcmVhdGVEZXBsb3ltZW50KHN0YWdlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB1cCBiYXNlIGpvYiBzbmlwcGV0cyBmb3IgYXJ0aWZhY3QgaGFuZGxpbmcgYW5kIEFXUyBjb25maWd1cmF0aW9uLlxuICAgKiBUaGlzIG1ldGhvZCBkZWZpbmVzIHJldXNhYmxlIGpvYiBjb25maWd1cmF0aW9ucyB0byBiZSBleHRlbmRlZCBieSBzcGVjaWZpYyBwaXBlbGluZSBqb2JzLFxuICAgKiBmYWNpbGl0YXRpbmcgYXJ0aWZhY3QgY2FjaGluZyBhbmQgQVdTIGF1dGhlbnRpY2F0aW9uIHNldHVwLlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldHVwU25pcHBldHMoKSB7XG4gICAgdGhpcy5jb25maWcuYWRkSm9icyh7XG4gICAgICAnLmFydGlmYWN0c19jZGsnOiB7XG4gICAgICAgIGFydGlmYWN0czoge1xuICAgICAgICAgIHdoZW46IGdpdGxhYi5DYWNoZVdoZW4uT05fU1VDQ0VTUyxcbiAgICAgICAgICBleHBpcmVJbjogJzMwIGRheXMnLFxuICAgICAgICAgIG5hbWU6ICdDREsgQXNzZW1ibHkgLSAkQ0lfSk9CX05BTUUtJENJX0NPTU1JVF9SRUZfU0xVRycsXG4gICAgICAgICAgdW50cmFja2VkOiBmYWxzZSxcbiAgICAgICAgICBwYXRoczogWydjZGsub3V0J10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgJy5hcnRpZmFjdHNfY2RrZGVwbG95Jzoge1xuICAgICAgICBhcnRpZmFjdHM6IHtcbiAgICAgICAgICB3aGVuOiBnaXRsYWIuQ2FjaGVXaGVuLk9OX1NVQ0NFU1MsXG4gICAgICAgICAgZXhwaXJlSW46ICczMCBkYXlzJyxcbiAgICAgICAgICBuYW1lOiAnQ0RLIE91dHB1dHMgLSAkQ0lfSk9CX05BTUUtJENJX0NPTU1JVF9SRUZfU0xVRycsXG4gICAgICAgICAgdW50cmFja2VkOiBmYWxzZSxcbiAgICAgICAgICBwYXRoczogWydjZGstb3V0cHV0cy0qLmpzb24nXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICAnLmF3c19iYXNlJzoge1xuICAgICAgICBpbWFnZTogeyBuYW1lOiB0aGlzLmpvYkltYWdlIH0sXG4gICAgICAgIGlkVG9rZW5zOiB7XG4gICAgICAgICAgQVdTX1RPS0VOOiB7XG4gICAgICAgICAgICBhdWQ6ICdodHRwczovL3N0cy5hbWF6b25hd3MuY29tJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICBDSTogJ3RydWUnLFxuICAgICAgICAgIC8vIE5QTV9SRUdJU1RSWTogJ3h4eCdcbiAgICAgICAgfSxcbiAgICAgICAgYmVmb3JlU2NyaXB0OiBbXG4gICAgICAgICAgYGNoZWNrX3ZhcmlhYmxlc19kZWZpbmVkKCkge1xuICBmb3IgdmFyIGluIFwiJEBcIjsgZG9cbiAgICBpZiBbIC16IFwiJChldmFsIFwiZWNobyBcXFxcJCR2YXJcIilcIiBdOyB0aGVuXG4gICAgICBsb2dfZmF0YWwgXCJcXCR7dmFyfSBub3QgZGVmaW5lZFwiO1xuICAgIGZpXG4gIGRvbmVcbn1cblxuYXdzbG9naW4oKSB7XG4gIHJvbGVBcm49XFwkezE6IC1cXCR7QVdTX1JPTEVfQVJOfX1cbiAgY2hlY2tfdmFyaWFibGVzX2RlZmluZWQgcm9sZUFybiBBV1NfVE9LRU5cbiAgZXhwb3J0ICQocHJpbnRmIFwiQVdTX0FDQ0VTU19LRVlfSUQ9JXMgQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZPSVzIEFXU19TRVNTSU9OX1RPS0VOPSVzXCIgJChhd3Mgc3RzIGFzc3VtZS1yb2xlLXdpdGgtd2ViLWlkZW50aXR5IC0tcm9sZS1hcm4gXFwke3JvbGVBcm59IC0tcm9sZS1zZXNzaW9uLW5hbWUgXCJHaXRMYWJSdW5uZXItXFwke0NJX1BST0pFQ1RfSUR9LVxcJHtDSV9QSVBFTElORV9JRH1cIiAtLXdlYi1pZGVudGl0eS10b2tlbiBcXCR7QVdTX1RPS0VOfSAtLWR1cmF0aW9uLXNlY29uZHMgMzYwMCAtLXF1ZXJ5ICdDcmVkZW50aWFscy5bQWNjZXNzS2V5SWQsU2VjcmV0QWNjZXNzS2V5LFNlc3Npb25Ub2tlbl0nIC0tb3V0cHV0IHRleHQpKVxuICAjIFRPRE8gQ09ERSBBUlRJRkFDVFxufVxuYCxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlcyB0aGUgJ3N5bnRoJyBzdGFnZSBvZiB0aGUgcGlwZWxpbmUgdG8gc3ludGhlc2l6ZSBBV1MgQ0RLIGFwcGxpY2F0aW9ucy5cbiAgICogVGhpcyBtZXRob2QgY29uZmlndXJlcyB0aGUgam9iIHRvIGV4ZWN1dGUgQ0RLIHN5bnRoZXNpcywgYXBwbHlpbmcgdGhlIGFwcHJvcHJpYXRlIElBTSByb2xlXG4gICAqIGZvciBBV1MgY29tbWFuZHMgYW5kIHNwZWNpZnlpbmcgcnVubmVyIHRhZ3MgZm9yIGpvYiBleGVjdXRpb24uIFRoZSBzeW50aGVzaXplZCBvdXRwdXRzIGFyZVxuICAgKiBjb25maWd1cmVkIHRvIGJlIGNhY2hlZCBhcyBhcnRpZmFjdHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlU3ludGgoKTogdm9pZCB7XG4gICAgY29uc3Qgc2NyaXB0ID0gWydlY2hvIFwiUnVubmluZyBDREsgc3ludGhcIiddO1xuICAgIGlmICh0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LnN5bnRoKSB7XG4gICAgICBzY3JpcHQucHVzaChgYXdzbG9naW4gJyR7dGhpcy5vcHRpb25zLmlhbVJvbGVBcm5zLnN5bnRofSdgKTtcbiAgICB9XG4gICAgY29uc3QgZXh0ZW5zaW9ucyA9IFsnLmF3c19iYXNlJywgJy5hcnRpZmFjdHNfY2RrJ107XG4gICAgY29uc3QgbmVlZHMgPSBbXTtcblxuICAgIGNvbnN0IHByZUluc3RhbGxTdGVwcyA9ICh0aGlzLm9wdGlvbnMucHJlSW5zdGFsbFN0ZXBzID8/IFtdKS5tYXAocyA9PiBzLnRvR2l0bGFiKCkpO1xuICAgIHNjcmlwdC5wdXNoKC4uLnByZUluc3RhbGxTdGVwcy5mbGF0TWFwKHMgPT4gcy5jb21tYW5kcykpO1xuICAgIGV4dGVuc2lvbnMucHVzaCguLi5wcmVJbnN0YWxsU3RlcHMuZmxhdE1hcChzID0+IHMuZXh0ZW5zaW9ucykpO1xuICAgIG5lZWRzLnB1c2goLi4ucHJlSW5zdGFsbFN0ZXBzLmZsYXRNYXAocyA9PiBzLm5lZWRzKSk7XG5cbiAgICBzY3JpcHQucHVzaCguLi50aGlzLnJlbmRlckluc3RhbGxDb21tYW5kcygpKTtcblxuICAgIGNvbnN0IHByZVN5bnRoU3RlcHMgPSAodGhpcy5vcHRpb25zLnByZVN5bnRoU3RlcHMgPz8gW10pLm1hcChzID0+IHMudG9HaXRsYWIoKSk7XG4gICAgc2NyaXB0LnB1c2goLi4ucHJlU3ludGhTdGVwcy5mbGF0TWFwKHMgPT4gcy5jb21tYW5kcykpO1xuICAgIGV4dGVuc2lvbnMucHVzaCguLi5wcmVTeW50aFN0ZXBzLmZsYXRNYXAocyA9PiBzLmV4dGVuc2lvbnMpKTtcbiAgICBuZWVkcy5wdXNoKC4uLnByZVN5bnRoU3RlcHMuZmxhdE1hcChzID0+IHMubmVlZHMpKTtcblxuICAgIHNjcmlwdC5wdXNoKC4uLnRoaXMucmVuZGVyU3ludGhDb21tYW5kcygpKTtcblxuICAgIGNvbnN0IHBvc3RTeW50aFN0ZXBzID0gKHRoaXMub3B0aW9ucy5wb3N0U3ludGhTdGVwcyA/PyBbXSkubWFwKHMgPT4gcy50b0dpdGxhYigpKTtcbiAgICBzY3JpcHQucHVzaCguLi5wb3N0U3ludGhTdGVwcy5mbGF0TWFwKHMgPT4gcy5jb21tYW5kcykpO1xuICAgIGV4dGVuc2lvbnMucHVzaCguLi5wb3N0U3ludGhTdGVwcy5mbGF0TWFwKHMgPT4gcy5leHRlbnNpb25zKSk7XG4gICAgbmVlZHMucHVzaCguLi5wb3N0U3ludGhTdGVwcy5mbGF0TWFwKHMgPT4gcy5uZWVkcykpO1xuXG4gICAgdGhpcy5jb25maWcuYWRkU3RhZ2VzKCdzeW50aCcpO1xuICAgIHRoaXMuY29uZmlnLmFkZEpvYnMoe1xuICAgICAgc3ludGg6IHtcbiAgICAgICAgZXh0ZW5kczogZXh0ZW5zaW9ucyxcbiAgICAgICAgbmVlZHM6IG5lZWRzLFxuICAgICAgICBzdGFnZTogJ3N5bnRoJyxcbiAgICAgICAgdGFnczogdGhpcy5vcHRpb25zLnJ1bm5lclRhZ3M/LnN5bnRoID8/IHRoaXMub3B0aW9ucy5ydW5uZXJUYWdzPy5kZWZhdWx0LFxuICAgICAgICBzY3JpcHQsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgdGhlIGFzc2V0IHB1Ymxpc2hpbmcgc3RhZ2Ugb2YgdGhlIHBpcGVsaW5lLlxuICAgKiBUaGlzIG1ldGhvZCBjb25maWd1cmVzIGEgam9iIHRvIHVwbG9hZCBzeW50aGVzaXplZCBhc3NldHMgdG8gQVdTLCBoYW5kbGluZyBJQU0gcm9sZVxuICAgKiBhdXRoZW50aWNhdGlvbiBhbmQgc3BlY2lmeWluZyBydW5uZXIgdGFncy4gSXQgZGVwZW5kcyBvbiB0aGUgc3VjY2Vzc2Z1bCBjb21wbGV0aW9uXG4gICAqIG9mIHRoZSAnc3ludGgnIHN0YWdlLCBlbnN1cmluZyBhc3NldHMgYXJlIG9ubHkgcHVibGlzaGVkIGFmdGVyIHN1Y2Nlc3NmdWwgc3ludGhlc2lzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUFzc2V0VXBsb2FkKCk6IHZvaWQge1xuICAgIGNvbnN0IHNjcmlwdCA9IFsnZWNobyBcIlB1Ymxpc2ggYXNzZXRzIHRvIEFXU1wiJ107XG4gICAgaWYgKHRoaXMub3B0aW9ucy5pYW1Sb2xlQXJucz8uYXNzZXRQdWJsaXNoaW5nKSB7XG4gICAgICBzY3JpcHQucHVzaChgYXdzbG9naW4gJyR7dGhpcy5vcHRpb25zLmlhbVJvbGVBcm5zLmFzc2V0UHVibGlzaGluZ30nYCk7XG4gICAgfVxuICAgIGNvbnN0IHByZUluc3RhbGxTdGVwcyA9ICh0aGlzLm9wdGlvbnMucHJlSW5zdGFsbFN0ZXBzID8/IFtdKS5tYXAocyA9PiBzLnRvR2l0bGFiKCkpO1xuICAgIHNjcmlwdC5wdXNoKC4uLnByZUluc3RhbGxTdGVwcy5mbGF0TWFwKHMgPT4gcy5jb21tYW5kcykpO1xuXG4gICAgc2NyaXB0LnB1c2goLi4udGhpcy5yZW5kZXJJbnN0YWxsQ29tbWFuZHMoKSk7XG4gICAgc2NyaXB0LnB1c2goLi4udGhpcy5nZXRBc3NldFVwbG9hZENvbW1hbmRzKHRoaXMubmVlZHNWZXJzaW9uZWRBcnRpZmFjdHMpKTtcblxuICAgIHRoaXMuY29uZmlnLmFkZFN0YWdlcygncHVibGlzaF9hc3NldHMnKTtcbiAgICB0aGlzLmNvbmZpZy5hZGRKb2JzKHtcbiAgICAgIHB1Ymxpc2hfYXNzZXRzOiB7XG4gICAgICAgIGV4dGVuZHM6IFsnLmF3c19iYXNlJywgLi4ucHJlSW5zdGFsbFN0ZXBzLmZsYXRNYXAocyA9PiBzLmV4dGVuc2lvbnMpXSxcbiAgICAgICAgc3RhZ2U6ICdwdWJsaXNoX2Fzc2V0cycsXG4gICAgICAgIHRhZ3M6IHRoaXMub3B0aW9ucy5ydW5uZXJUYWdzPy5hc3NldFB1Ymxpc2hpbmcgPz8gdGhpcy5vcHRpb25zLnJ1bm5lclRhZ3M/LmRlZmF1bHQsXG4gICAgICAgIG5lZWRzOiBbeyBqb2I6ICdzeW50aCcsIGFydGlmYWN0czogdHJ1ZSB9LCAuLi5wcmVJbnN0YWxsU3RlcHMuZmxhdE1hcChzID0+IHMubmVlZHMpXSxcbiAgICAgICAgc2NyaXB0LFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEeW5hbWljYWxseSBjcmVhdGVzIGRlcGxveW1lbnQgc3RhZ2VzIGJhc2VkIG9uIHRoZSBkZXBsb3ltZW50IGNvbmZpZ3VyYXRpb24uXG4gICAqIEZvciBlYWNoIHByb3ZpZGVkIGRlcGxveW1lbnQgc3RhZ2UsIHRoaXMgbWV0aG9kIHNldHMgdXAgam9icyBmb3IgJ2RpZmYnIGFuZCAnZGVwbG95JyBhY3Rpb25zLFxuICAgKiBhcHBseWluZyB0aGUgY29ycmVjdCBJQU0gcm9sZXMgYW5kIHJ1bm5lciB0YWdzLiBJdCBzdXBwb3J0cyBjb25kaXRpb25hbCBtYW51YWwgYXBwcm92YWwgZm9yXG4gICAqIGRlcGxveW1lbnQgc3RhZ2VzLCBwcm92aWRpbmcgZmxleGliaWxpdHkgaW4gdGhlIGRlcGxveW1lbnQgd29ya2Zsb3cuXG4gICAqXG4gICAqIEBwYXJhbSB7RGVwbG95bWVudFN0YWdlfSBzdGFnZSAtIFRoZSBkZXBsb3ltZW50IHN0YWdlIGNvbmZpZ3VyYXRpb24gdG8gc2V0IHVwLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZURlcGxveW1lbnQoc3RhZ2U6IERlcGxveW1lbnRTdGFnZSk6IHZvaWQge1xuICAgIGNvbnN0IHByZUluc3RhbGxTdGVwcyA9ICh0aGlzLm9wdGlvbnMucHJlSW5zdGFsbFN0ZXBzID8/IFtdKS5tYXAocyA9PiBzLnRvR2l0bGFiKCkpO1xuXG4gICAgdGhpcy5jb25maWcuYWRkU3RhZ2VzKHN0YWdlLm5hbWUpO1xuICAgIHRoaXMuY29uZmlnLmFkZEpvYnMoe1xuICAgICAgW2BkaWZmLSR7c3RhZ2UubmFtZX1gXToge1xuICAgICAgICBleHRlbmRzOiBbJy5hd3NfYmFzZScsIC4uLnByZUluc3RhbGxTdGVwcy5mbGF0TWFwKHMgPT4gcy5leHRlbnNpb25zKV0sXG4gICAgICAgIHN0YWdlOiBzdGFnZS5uYW1lLFxuICAgICAgICB0YWdzOiB0aGlzLm9wdGlvbnMucnVubmVyVGFncz8uZGlmZj8uW3N0YWdlLm5hbWVdID8/IHRoaXMub3B0aW9ucy5ydW5uZXJUYWdzPy5kZXBsb3ltZW50Py5bc3RhZ2UubmFtZV0gPz8gdGhpcy5vcHRpb25zLnJ1bm5lclRhZ3M/LmRlZmF1bHQsXG4gICAgICAgIG9ubHk6IHtcbiAgICAgICAgICByZWZzOiBbdGhpcy5icmFuY2hOYW1lXSxcbiAgICAgICAgfSxcbiAgICAgICAgbmVlZHM6IFtcbiAgICAgICAgICB7IGpvYjogJ3N5bnRoJywgYXJ0aWZhY3RzOiB0cnVlIH0sXG4gICAgICAgICAgeyBqb2I6ICdwdWJsaXNoX2Fzc2V0cycgfSxcbiAgICAgICAgICAuLi5wcmVJbnN0YWxsU3RlcHMuZmxhdE1hcChzID0+IHMubmVlZHMpLFxuICAgICAgICBdLFxuICAgICAgICBzY3JpcHQ6IFtcbiAgICAgICAgICBgYXdzbG9naW4gJyR7dGhpcy5vcHRpb25zLmlhbVJvbGVBcm5zPy5kaWZmPy5bc3RhZ2UubmFtZV0gPz8gdGhpcy5vcHRpb25zLmlhbVJvbGVBcm5zPy5kZXBsb3ltZW50Py5bc3RhZ2UubmFtZV0gPz8gdGhpcy5vcHRpb25zLmlhbVJvbGVBcm5zPy5kZWZhdWx0fSdgLFxuICAgICAgICAgIC4uLnByZUluc3RhbGxTdGVwcy5mbGF0TWFwKHMgPT4gcy5jb21tYW5kcyksXG4gICAgICAgICAgLi4udGhpcy5yZW5kZXJJbnN0YWxsQ29tbWFuZHMoKSxcbiAgICAgICAgICAuLi50aGlzLnJlbmRlckRpZmZDb21tYW5kcyhzdGFnZS5uYW1lKSxcbiAgICAgICAgXSxcblxuICAgICAgfSxcbiAgICAgIFtgZGVwbG95LSR7c3RhZ2UubmFtZX1gXToge1xuICAgICAgICBleHRlbmRzOiBbJy5hd3NfYmFzZScsICcuYXJ0aWZhY3RzX2Nka2RlcGxveScsIC4uLnByZUluc3RhbGxTdGVwcy5mbGF0TWFwKHMgPT4gcy5leHRlbnNpb25zKV0sXG4gICAgICAgIHN0YWdlOiBzdGFnZS5uYW1lLFxuICAgICAgICB0YWdzOiB0aGlzLm9wdGlvbnMucnVubmVyVGFncz8uZGVwbG95bWVudD8uW3N0YWdlLm5hbWVdID8/IHRoaXMub3B0aW9ucy5ydW5uZXJUYWdzPy5kZWZhdWx0LFxuICAgICAgICAuLi5zdGFnZS5tYW51YWxBcHByb3ZhbCAmJiB7XG4gICAgICAgICAgd2hlbjogZ2l0bGFiLkpvYldoZW4uTUFOVUFMLFxuICAgICAgICB9LFxuICAgICAgICBvbmx5OiB7XG4gICAgICAgICAgcmVmczogW3RoaXMuYnJhbmNoTmFtZV0sXG4gICAgICAgIH0sXG4gICAgICAgIG5lZWRzOiBbXG4gICAgICAgICAgeyBqb2I6ICdzeW50aCcsIGFydGlmYWN0czogdHJ1ZSB9LFxuICAgICAgICAgIHsgam9iOiAncHVibGlzaF9hc3NldHMnIH0sXG4gICAgICAgICAgeyBqb2I6IGBkaWZmLSR7c3RhZ2UubmFtZX1gIH0sXG4gICAgICAgICAgLi4ucHJlSW5zdGFsbFN0ZXBzLmZsYXRNYXAocyA9PiBzLm5lZWRzKSxcbiAgICAgICAgXSxcbiAgICAgICAgc2NyaXB0OiBbXG4gICAgICAgICAgYGF3c2xvZ2luICcke3RoaXMub3B0aW9ucy5pYW1Sb2xlQXJucz8uZGVwbG95bWVudD8uW3N0YWdlLm5hbWVdID8/IHRoaXMub3B0aW9ucy5pYW1Sb2xlQXJucz8uZGVmYXVsdH0nYCxcbiAgICAgICAgICAuLi5wcmVJbnN0YWxsU3RlcHMuZmxhdE1hcChzID0+IHMuY29tbWFuZHMpLFxuICAgICAgICAgIC4uLnRoaXMucmVuZGVySW5zdGFsbENvbW1hbmRzKCksXG4gICAgICAgICAgLi4udGhpcy5yZW5kZXJEZXBsb3lDb21tYW5kcyhzdGFnZS5uYW1lKSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5kZXBsb3ltZW50U3RhZ2VzLnB1c2goc3RhZ2UubmFtZSk7XG4gIH1cblxuICBwdWJsaWMgZW5naW5lVHlwZSgpOiBQaXBlbGluZUVuZ2luZSB7XG4gICAgcmV0dXJuIFBpcGVsaW5lRW5naW5lLkdJVExBQjtcbiAgfVxuXG59XG5cbiJdfQ==
|
|
268
|
+
GitlabCDKPipeline[_a] = { fqn: "projen-pipelines.GitlabCDKPipeline", version: "0.0.63" };
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0bGFiLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3c2Nkay9naXRsYWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBd0M7QUFDeEMsaUNBQTRGO0FBQzVGLHNDQUEyQztBQUMzQyxvQ0FBMkQ7QUFDM0Qsd0VBQWtFO0FBbURsRTs7OztHQUlHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSxrQkFBVztJQWNoRDs7Ozs7O09BTUc7SUFDSCxZQUFZLEdBQStCLEVBQVUsT0FBaUM7UUFDcEYsS0FBSyxDQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUQrQixZQUFPLEdBQVAsT0FBTyxDQUEwQjtRQVZ0Riw0Q0FBNEM7UUFDcEMscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBWXRDLHVDQUF1QztRQUN2QyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksZUFBTSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRTtZQUNoRCxNQUFNLEVBQUUsRUFBRTtZQUNWLElBQUksRUFBRSxFQUFFO1NBQ1QsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLHVCQUF1QixHQUFHLEtBQUssQ0FBQyxDQUFDLDZDQUE2QztRQUNuRixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksNkNBQTZDLENBQUM7UUFFL0UsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6QixLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUVELEtBQUssTUFBTSxLQUFLLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUN0RCxJQUFJLENB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Q0FBQyxFQUFFLEdBQUcsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO2FBQ3RFO1NBQ0YsQ0FBQyxDQUFDO0lBRUwsQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLHVCQUFjLENBQUMsTUFBTSxDQUFDO0lBQy9CLENBQUM7O0FBL1JILDhDQWlTQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF3c2NkaywgZ2l0bGFiIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IENES1BpcGVsaW5lLCBDREtQaXBlbGluZU9wdGlvbnMsIERlcGxveW1lbnRTdGFnZSwgSW5kZXBlbmRlbnRTdGFnZSB9IGZyb20gJy4vYmFzZSc7XG5pbXBvcnQgeyBQaXBlbGluZUVuZ2luZSB9IGZyb20gJy4uL2VuZ2luZSc7XG5pbXBvcnQgeyBQaXBlbGluZVN0ZXAsIFNpbXBsZUNvbW1hbmRTdGVwIH0gZnJvbSAnLi4vc3RlcHMnO1xuaW1wb3J0IHsgQXdzQXNzdW1lUm9sZVN0ZXAgfSBmcm9tICcuLi9zdGVwcy9hd3MtYXNzdW1lLXJvbGUuc3RlcCc7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgSUFNIHJvbGVzIHVzZWQgd2l0aGluIHRoZSBHaXRMYWIgQ0kvQ0QgcGlwZWxpbmUgZm9yIHZhcmlvdXMgc3RhZ2VzLlxuICogQWxsb3dzIHNwZWNpZnlpbmcgZGlmZmVyZW50IElBTSByb2xlcyBmb3Igc3ludGhlc2lzLCBhc3NldCBwdWJsaXNoaW5nLCBhbmQgZGVwbG95bWVudCBzdGFnZXMsXG4gKiBwcm92aWRpbmcgZ3JhbnVsYXIgY29udHJvbCBvdmVyIHBlcm1pc3Npb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdpdGxhYklhbVJvbGVDb25maWcge1xuICAvKiogRGVmYXVsdCBJQU0gcm9sZSBBUk4gdXNlZCBpZiBzcGVjaWZpYyBzdGFnZSByb2xlIGlzIG5vdCBwcm92aWRlZC4gKi9cbiAgcmVhZG9ubHkgZGVmYXVsdD86IHN0cmluZztcbiAgLyoqIElBTSByb2xlIEFSTiBmb3IgdGhlIHN5bnRoZXNpcyBzdGFnZS4gKi9cbiAgcmVhZG9ubHkgc3ludGg/OiBzdHJpbmc7XG4gIC8qKiBJQU0gcm9sZSBBUk4gZm9yIHRoZSBhc3NldCBwdWJsaXNoaW5nIHN0YWdlLiAqL1xuICByZWFkb25seSBhc3NldFB1Ymxpc2hpbmc/OiBzdHJpbmc7XG4gIC8qKiBBIG1hcCBvZiBzdGFnZSBuYW1lcyB0byBJQU0gcm9sZSBBUk5zIGZvciB0aGUgZGlmZiBvcGVyYXRpb24uICovXG4gIHJlYWRvbmx5IGRpZmY/OiB7IFtzdGFnZTogc3RyaW5nXTogc3RyaW5nIH07XG4gIC8qKiBBIG1hcCBvZiBzdGFnZSBuYW1lcyB0byBJQU0gcm9sZSBBUk5zIGZvciB0aGUgZGVwbG95bWVudCBvcGVyYXRpb24uICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnQ/OiB7IFtzdGFnZTogc3RyaW5nXTogc3RyaW5nIH07XG59XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgR2l0TGFiIHJ1bm5lciB0YWdzIHVzZWQgd2l0aGluIHRoZSBDSS9DRCBwaXBlbGluZSBmb3IgdmFyaW91cyBzdGFnZXMuXG4gKiBUaGlzIGFsbG93cyBmb3Igc3BlY2lmeWluZyBkaWZmZXJlbnQgcnVubmVycyBiYXNlZCBvbiB0aGUgdGFncyBmb3IgZGlmZmVyZW50IHN0YWdlcyBvZiB0aGUgcGlwZWxpbmUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2l0bGFiUnVubmVyVGFncyB7XG4gIC8qKiBEZWZhdWx0IHJ1bm5lciB0YWdzIHVzZWQgaWYgc3BlY2lmaWMgc3RhZ2UgdGFncyBhcmUgbm90IHByb3ZpZGVkLiAqL1xuICByZWFkb25seSBkZWZhdWx0Pzogc3RyaW5nW107XG4gIC8qKiBSdW5uZXIgdGFncyBmb3IgdGhlIHN5bnRoZXNpcyBzdGFnZS4gKi9cbiAgcmVhZG9ubHkgc3ludGg/OiBzdHJpbmdbXTtcbiAgLyoqIFJ1bm5lciB0YWdzIGZvciB0aGUgYXNzZXQgcHVibGlzaGluZyBzdGFnZS4gKi9cbiAgcmVhZG9ubHkgYXNzZXRQdWJsaXNoaW5nPzogc3RyaW5nW107XG4gIC8qKiBBIG1hcCBvZiBzdGFnZSBuYW1lcyB0byBydW5uZXIgdGFncyBmb3IgdGhlIGRpZmYgb3BlcmF0aW9uLiAqL1xuICByZWFkb25seSBkaWZmPzogeyBbc3RhZ2U6IHN0cmluZ106IHN0cmluZ1tdIH07XG4gIC8qKiBBIG1hcCBvZiBzdGFnZSBuYW1lcyB0byBydW5uZXIgdGFncyBmb3IgdGhlIGRlcGxveW1lbnQgb3BlcmF0aW9uLiAqL1xuICByZWFkb25seSBkZXBsb3ltZW50PzogeyBbc3RhZ2U6IHN0cmluZ106IHN0cmluZ1tdIH07XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgY29uZmlndXJpbmcgdGhlIEdpdExhYiBDREsgcGlwZWxpbmUsIGV4dGVuZGluZyB0aGUgYmFzZSBDREsgcGlwZWxpbmUgb3B0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHaXRsYWJDREtQaXBlbGluZU9wdGlvbnMgZXh0ZW5kcyBDREtQaXBlbGluZU9wdGlvbnMge1xuICAvKiogSUFNIHJvbGUgQVJOcyBjb25maWd1cmF0aW9uIGZvciB0aGUgcGlwZWxpbmUuICovXG4gIHJlYWRvbmx5IGlhbVJvbGVBcm5zOiBHaXRsYWJJYW1Sb2xlQ29uZmlnO1xuICAvKiogUnVubmVyIHRhZ3MgY29uZmlndXJhdGlvbiBmb3IgdGhlIHBpcGVsaW5lLiAqL1xuICByZWFkb25seSBydW5uZXJUYWdzPzogR2l0bGFiUnVubmVyVGFncztcbiAgLyoqIFRoZSBEb2NrZXIgaW1hZ2UgdG8gdXNlIGZvciBydW5uaW5nIHRoZSBwaXBlbGluZSBqb2JzLiAqL1xuICByZWFkb25seSBpbWFnZT86IHN0cmluZztcblxuICAvLyByZWFkb25seSBwdWJsaXNoZWRDbG91ZEFzc2VtYmxpZXM/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBHaXRsYWJDREtQaXBlbGluZSBjbGFzcyBleHRlbmRzIENES1BpcGVsaW5lIHRvIHByb3ZpZGUgYSB3YXkgdG8gY29uZmlndXJlIGFuZCBleGVjdXRlXG4gKiBBV1MgQ0RLIGRlcGxveW1lbnQgcGlwZWxpbmVzIHdpdGhpbiBHaXRMYWIgQ0kvQ0QgZW52aXJvbm1lbnRzLiBJdCBpbnRlZ3JhdGVzIElBTSByb2xlIG1hbmFnZW1lbnQsXG4gKiBydW5uZXIgY29uZmlndXJhdGlvbiwgYW5kIGRlZmluZXMgc3RhZ2VzIGFuZCBqb2JzIGZvciB0aGUgZGVwbG95bWVudCB3b3JrZmxvdy5cbiAqL1xuZXhwb3J0IGNsYXNzIEdpdGxhYkNES1BpcGVsaW5lIGV4dGVuZHMgQ0RLUGlwZWxpbmUge1xuXG4gIC8qKiBJbmRpY2F0ZXMgaWYgdmVyc2lvbmVkIGFydGlmYWN0cyBhcmUgcmVxdWlyZWQuIEN1cnJlbnRseSBzZXQgdG8gZmFsc2UgICovXG4gIHB1YmxpYyByZWFkb25seSBuZWVkc1ZlcnNpb25lZEFydGlmYWN0czogYm9vbGVhbjtcblxuICAvKiogVGhlIERvY2tlciBpbWFnZSB1c2VkIGZvciBwaXBlbGluZSBqb2JzLiBEZWZhdWx0cyB0byBhIHNwZWNpZmllZCBpbWFnZSBvciBhIGRlZmF1bHQgdmFsdWUuICovXG4gIHB1YmxpYyByZWFkb25seSBqb2JJbWFnZTogc3RyaW5nO1xuXG4gIC8qKiBHaXRMYWIgQ0kvQ0QgY29uZmlndXJhdGlvbiBvYmplY3QuICovXG4gIHB1YmxpYyByZWFkb25seSBjb25maWc6IGdpdGxhYi5HaXRsYWJDb25maWd1cmF0aW9uO1xuXG4gIC8qKiBMaXN0IG9mIGRlcGxveW1lbnQgc3RhZ2VzIGFzIHN0cmluZ3MuICovXG4gIHByaXZhdGUgZGVwbG95bWVudFN0YWdlczogc3RyaW5nW10gPSBbXTtcblxuICAvKipcbiAgICogQ29uc3RydWN0cyBhbiBpbnN0YW5jZSBvZiBHaXRsYWJDREtQaXBlbGluZSwgaW5pdGlhbGl6aW5nIHRoZSBHaXRMYWIgQ0kvQ0QgY29uZmlndXJhdGlvblxuICAgKiBhbmQgc2V0dGluZyB1cCB0aGUgbmVjZXNzYXJ5IHN0YWdlcyBhbmQgam9icyBmb3IgQVdTIENESyBkZXBsb3ltZW50LlxuICAgKlxuICAgKiBAcGFyYW0ge2F3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwfSBhcHAgLSBUaGUgQVdTIENESyBhcHAgYXNzb2NpYXRlZCB3aXRoIHRoZSBwaXBlbGluZS5cbiAgICogQHBhcmFtIHtHaXRsYWJDREtQaXBlbGluZU9wdGlvbnN9IG9wdGlvbnMgLSBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBwaXBlbGluZS5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGFwcDogYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHAsIHByaXZhdGUgb3B0aW9uczogR2l0bGFiQ0RLUGlwZWxpbmVPcHRpb25zKSB7XG4gICAgc3VwZXIoYXBwLCBvcHRpb25zKTtcblxuICAgIC8vIFRPRE8gdXNlIGV4aXN0aW5nIGNvbmZpZyBpZiBwb3NzaWJsZVxuICAgIHRoaXMuY29uZmlnID0gbmV3IGdpdGxhYi5HaXRsYWJDb25maWd1cmF0aW9uKGFwcCwge1xuICAgICAgc3RhZ2VzOiBbXSxcbiAgICAgIGpvYnM6IHt9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5uZWVkc1ZlcnNpb25lZEFydGlmYWN0cyA9IGZhbHNlOyAvLyBvcHRpb25zLnB1Ymxpc2hlZENsb3VkQXNzZW1ibGllcyA/PyBmYWxzZTtcbiAgICB0aGlzLmpvYkltYWdlID0gb3B0aW9ucy5pbWFnZSA/PyAnaW1hZ2U6IGpzaWkvc3VwZXJjaGFpbjoxLWJ1c3Rlci1zbGltLW5vZGUxOCc7XG5cbiAgICB0aGlzLnNldHVwU25pcHBldHMoKTtcblxuICAgIHRoaXMuY3JlYXRlU3ludGgoKTtcblxuICAgIHRoaXMuY3JlYXRlQXNzZXRVcGxvYWQoKTtcblxuICAgIGZvciAoY29uc3Qgc3RhZ2Ugb2Ygb3B0aW9ucy5zdGFnZXMpIHtcbiAgICAgIHRoaXMuY3JlYXRlRGVwbG95bWVudChzdGFnZSk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBzdGFnZSBvZiAob3B0aW9ucy5pbmRlcGVuZGVudFN0YWdlcyA/PyBbXSkpIHtcbiAgICAgIHRoaXMuY3JlYXRlSW5kZXBlbmRlbnREZXBsb3ltZW50KHN0YWdlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB1cCBiYXNlIGpvYiBzbmlwcGV0cyBmb3IgYXJ0aWZhY3QgaGFuZGxpbmcgYW5kIEFXUyBjb25maWd1cmF0aW9uLlxuICAgKiBUaGlzIG1ldGhvZCBkZWZpbmVzIHJldXNhYmxlIGpvYiBjb25maWd1cmF0aW9ucyB0byBiZSBleHRlbmRlZCBieSBzcGVjaWZpYyBwaXBlbGluZSBqb2JzLFxuICAgKiBmYWNpbGl0YXRpbmcgYXJ0aWZhY3QgY2FjaGluZyBhbmQgQVdTIGF1dGhlbnRpY2F0aW9uIHNldHVwLlxuICAgKi9cbiAgcHJvdGVjdGVkIHNldHVwU25pcHBldHMoKSB7XG4gICAgdGhpcy5jb25maWcuYWRkSm9icyh7XG4gICAgICAnLmFydGlmYWN0c19jZGsnOiB7XG4gICAgICAgIGFydGlmYWN0czoge1xuICAgICAgICAgIHdoZW46IGdpdGxhYi5DYWNoZVdoZW4uT05fU1VDQ0VTUyxcbiAgICAgICAgICBleHBpcmVJbjogJzMwIGRheXMnLFxuICAgICAgICAgIG5hbWU6ICdDREsgQXNzZW1ibHkgLSAkQ0lfSk9CX05BTUUtJENJX0NPTU1JVF9SRUZfU0xVRycsXG4gICAgICAgICAgdW50cmFja2VkOiBmYWxzZSxcbiAgICAgICAgICBwYXRoczogWydjZGsub3V0J10sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgJy5hcnRpZmFjdHNfY2RrZGVwbG95Jzoge1xuICAgICAgICBhcnRpZmFjdHM6IHtcbiAgICAgICAgICB3aGVuOiBnaXRsYWIuQ2FjaGVXaGVuLk9OX1NVQ0NFU1MsXG4gICAgICAgICAgZXhwaXJlSW46ICczMCBkYXlzJyxcbiAgICAgICAgICBuYW1lOiAnQ0RLIE91dHB1dHMgLSAkQ0lfSk9CX05BTUUtJENJX0NPTU1JVF9SRUZfU0xVRycsXG4gICAgICAgICAgdW50cmFja2VkOiBmYWxzZSxcbiAgICAgICAgICBwYXRoczogWydjZGstb3V0cHV0cy0qLmpzb24nXSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICAnLmF3c19iYXNlJzoge1xuICAgICAgICBpbWFnZTogeyBuYW1lOiB0aGlzLmpvYkltYWdlIH0sXG4gICAgICAgIGlkVG9rZW5zOiB7XG4gICAgICAgICAgQVdTX1RPS0VOOiB7XG4gICAgICAgICAgICBhdWQ6ICdodHRwczovL3N0cy5hbWF6b25hd3MuY29tJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICBDSTogJ3RydWUnLFxuICAgICAgICAgIC8vIE5QTV9SRUdJU1RSWTogJ3h4eCdcbiAgICAgICAgfSxcbiAgICAgICAgYmVmb3JlU2NyaXB0OiBbXG4gICAgICAgICAgYGNoZWNrX3ZhcmlhYmxlc19kZWZpbmVkKCkge1xuICBmb3IgdmFyIGluIFwiJEBcIjsgZG9cbiAgICBpZiBbIC16IFwiJChldmFsIFwiZWNobyBcXFxcJCR2YXJcIilcIiBdOyB0aGVuXG4gICAgICBsb2dfZmF0YWwgXCJcXCR7dmFyfSBub3QgZGVmaW5lZFwiO1xuICAgIGZpXG4gIGRvbmVcbn1cblxuYXdzbG9naW4oKSB7XG4gIHJvbGVBcm49XFwkezE6IC1cXCR7QVdTX1JPTEVfQVJOfX1cbiAgc2Vzc2lvbk5hbWU9XFwkezI6LUdpdExhYlJ1bm5lci1cXCR7Q0lfUFJPSkVDVF9JRH0tXFwke0NJX1BJUEVMSU5FX0lEfX1cbiAgY2hlY2tfdmFyaWFibGVzX2RlZmluZWQgcm9sZUFybiBBV1NfVE9LRU5cbiAgZXhwb3J0ICQocHJpbnRmIFwiQVdTX0FDQ0VTU19LRVlfSUQ9JXMgQVdTX1NFQ1JFVF9BQ0NFU1NfS0VZPSVzIEFXU19TRVNTSU9OX1RPS0VOPSVzXCIgJChhd3Mgc3RzIGFzc3VtZS1yb2xlLXdpdGgtd2ViLWlkZW50aXR5IC0tcm9sZS1hcm4gXFwke3JvbGVBcm59IC0tcm9sZS1zZXNzaW9uLW5hbWUgXCJcXCR7c2Vzc2lvbk5hbWV9XCIgLS13ZWItaWRlbnRpdHktdG9rZW4gXFwke0FXU19UT0tFTn0gLS1kdXJhdGlvbi1zZWNvbmRzIDM2MDAgLS1xdWVyeSAnQ3JlZGVudGlhbHMuW0FjY2Vzc0tleUlkLFNlY3JldEFjY2Vzc0tleSxTZXNzaW9uVG9rZW5dJyAtLW91dHB1dCB0ZXh0KSlcbiAgIyBUT0RPIENPREUgQVJUSUZBQ1Rcbn1cbmAsXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgdGhlICdzeW50aCcgc3RhZ2Ugb2YgdGhlIHBpcGVsaW5lIHRvIHN5bnRoZXNpemUgQVdTIENESyBhcHBsaWNhdGlvbnMuXG4gICAqIFRoaXMgbWV0aG9kIGNvbmZpZ3VyZXMgdGhlIGpvYiB0byBleGVjdXRlIENESyBzeW50aGVzaXMsIGFwcGx5aW5nIHRoZSBhcHByb3ByaWF0ZSBJQU0gcm9sZVxuICAgKiBmb3IgQVdTIGNvbW1hbmRzIGFuZCBzcGVjaWZ5aW5nIHJ1bm5lciB0YWdzIGZvciBqb2IgZXhlY3V0aW9uLiBUaGUgc3ludGhlc2l6ZWQgb3V0cHV0cyBhcmVcbiAgICogY29uZmlndXJlZCB0byBiZSBjYWNoZWQgYXMgYXJ0aWZhY3RzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVN5bnRoKCk6IHZvaWQge1xuICAgIGNvbnN0IHN0ZXBzOiBQaXBlbGluZVN0ZXBbXSA9IFtdO1xuXG4gICAgaWYgKHRoaXMub3B0aW9ucy5pYW1Sb2xlQXJucz8uc3ludGgpIHtcbiAgICAgIHN0ZXBzLnB1c2gobmV3IEF3c0Fzc3VtZVJvbGVTdGVwKHRoaXMucHJvamVjdCwge1xuICAgICAgICByb2xlQXJuOiB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnMuc3ludGgsXG4gICAgICB9KSk7XG4gICAgfVxuICAgIHN0ZXBzLnB1c2goLi4udGhpcy5vcHRpb25zLnByZUluc3RhbGxTdGVwcyA/PyBbXSk7XG4gICAgc3RlcHMucHVzaChuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlckluc3RhbGxDb21tYW5kcygpKSk7XG5cbiAgICBzdGVwcy5wdXNoKC4uLnRoaXMub3B0aW9ucy5wcmVTeW50aFN0ZXBzID8/IFtdKTtcbiAgICBzdGVwcy5wdXNoKG5ldyBTaW1wbGVDb21tYW5kU3RlcCh0aGlzLnByb2plY3QsIHRoaXMucmVuZGVyU3ludGhDb21tYW5kcygpKSk7XG4gICAgc3RlcHMucHVzaCguLi50aGlzLm9wdGlvbnMucG9zdFN5bnRoU3RlcHMgPz8gW10pO1xuXG4gICAgY29uc3QgZ2l0bGFiU3RlcHMgPSBzdGVwcy5tYXAocyA9PiBzLnRvR2l0bGFiKCkpO1xuXG4gICAgdGhpcy5jb25maWcuYWRkU3RhZ2VzKCdzeW50aCcpO1xuICAgIHRoaXMuY29uZmlnLmFkZEpvYnMoe1xuICAgICAgc3ludGg6IHtcbiAgICAgICAgZXh0ZW5kczogWycuYXdzX2Jhc2UnLCAnLmFydGlmYWN0c19jZGsnLCAuLi5naXRsYWJTdGVwcy5mbGF0TWFwKHMgPT4gcy5leHRlbnNpb25zKV0sXG4gICAgICAgIG5lZWRzOiBnaXRsYWJTdGVwcy5mbGF0TWFwKHMgPT4gcy5uZWVkcyksXG4gICAgICAgIHN0YWdlOiAnc3ludGgnLFxuICAgICAgICB0YWdzOiB0aGlzLm9wdGlvbnMucnVubmVyVGFncz8uc3ludGggPz8gdGhpcy5vcHRpb25zLnJ1bm5lclRhZ3M/LmRlZmF1bHQsXG4gICAgICAgIHNjcmlwdDogZ2l0bGFiU3RlcHMuZmxhdE1hcChzID0+IHMuY29tbWFuZHMpLFxuICAgICAgICB2YXJpYWJsZXM6IGdpdGxhYlN0ZXBzLnJlZHVjZSgoYWNjLCBzdGVwKSA9PiAoeyAuLi5hY2MsIC4uLnN0ZXAuZW52IH0pLCB7fSksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdXAgdGhlIGFzc2V0IHB1Ymxpc2hpbmcgc3RhZ2Ugb2YgdGhlIHBpcGVsaW5lLlxuICAgKiBUaGlzIG1ldGhvZCBjb25maWd1cmVzIGEgam9iIHRvIHVwbG9hZCBzeW50aGVzaXplZCBhc3NldHMgdG8gQVdTLCBoYW5kbGluZyBJQU0gcm9sZVxuICAgKiBhdXRoZW50aWNhdGlvbiBhbmQgc3BlY2lmeWluZyBydW5uZXIgdGFncy4gSXQgZGVwZW5kcyBvbiB0aGUgc3VjY2Vzc2Z1bCBjb21wbGV0aW9uXG4gICAqIG9mIHRoZSAnc3ludGgnIHN0YWdlLCBlbnN1cmluZyBhc3NldHMgYXJlIG9ubHkgcHVibGlzaGVkIGFmdGVyIHN1Y2Nlc3NmdWwgc3ludGhlc2lzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUFzc2V0VXBsb2FkKCk6IHZvaWQge1xuICAgIGNvbnN0IHN0ZXBzID0gW107XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmlhbVJvbGVBcm5zPy5hc3NldFB1Ymxpc2hpbmcpIHtcbiAgICAgIHN0ZXBzLnB1c2gobmV3IEF3c0Fzc3VtZVJvbGVTdGVwKHRoaXMucHJvamVjdCwge1xuICAgICAgICByb2xlQXJuOiB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnMuYXNzZXRQdWJsaXNoaW5nLFxuICAgICAgfSkpO1xuICAgIH1cbiAgICBzdGVwcy5wdXNoKC4uLnRoaXMub3B0aW9ucy5wcmVJbnN0YWxsU3RlcHMgPz8gW10pO1xuICAgIHN0ZXBzLnB1c2gobmV3IFNpbXBsZUNvbW1hbmRTdGVwKHRoaXMucHJvamVjdCwgdGhpcy5yZW5kZXJJbnN0YWxsQ29tbWFuZHMoKSkpO1xuICAgIHN0ZXBzLnB1c2gobmV3IFNpbXBsZUNvbW1hbmRTdGVwKHRoaXMucHJvamVjdCwgdGhpcy5nZXRBc3NldFVwbG9hZENvbW1hbmRzKHRoaXMubmVlZHNWZXJzaW9uZWRBcnRpZmFjdHMpKSk7XG5cbiAgICBjb25zdCBnaXRsYWJTdGVwcyA9IHN0ZXBzLm1hcChzID0+IHMudG9HaXRsYWIoKSk7XG5cbiAgICB0aGlzLmNvbmZpZy5hZGRTdGFnZXMoJ3B1Ymxpc2hfYXNzZXRzJyk7XG4gICAgdGhpcy5jb25maWcuYWRkSm9icyh7XG4gICAgICBwdWJsaXNoX2Fzc2V0czoge1xuICAgICAgICBleHRlbmRzOiBbJy5hd3NfYmFzZScsIC4uLmdpdGxhYlN0ZXBzLmZsYXRNYXAocyA9PiBzLmV4dGVuc2lvbnMpXSxcbiAgICAgICAgc3RhZ2U6ICdwdWJsaXNoX2Fzc2V0cycsXG4gICAgICAgIHRhZ3M6IHRoaXMub3B0aW9ucy5ydW5uZXJUYWdzPy5hc3NldFB1Ymxpc2hpbmcgPz8gdGhpcy5vcHRpb25zLnJ1bm5lclRhZ3M/LmRlZmF1bHQsXG4gICAgICAgIG5lZWRzOiBbeyBqb2I6ICdzeW50aCcsIGFydGlmYWN0czogdHJ1ZSB9LCAuLi5naXRsYWJTdGVwcy5mbGF0TWFwKHMgPT4gcy5uZWVkcyldLFxuICAgICAgICBzY3JpcHQ6IGdpdGxhYlN0ZXBzLmZsYXRNYXAocyA9PiBzLmNvbW1hbmRzKSxcbiAgICAgICAgdmFyaWFibGVzOiBnaXRsYWJTdGVwcy5yZWR1Y2UoKGFjYywgc3RlcCkgPT4gKHsgLi4uYWNjLCAuLi5zdGVwLmVudiB9KSwge30pLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEeW5hbWljYWxseSBjcmVhdGVzIGRlcGxveW1lbnQgc3RhZ2VzIGJhc2VkIG9uIHRoZSBkZXBsb3ltZW50IGNvbmZpZ3VyYXRpb24uXG4gICAqIEZvciBlYWNoIHByb3ZpZGVkIGRlcGxveW1lbnQgc3RhZ2UsIHRoaXMgbWV0aG9kIHNldHMgdXAgam9icyBmb3IgJ2RpZmYnIGFuZCAnZGVwbG95JyBhY3Rpb25zLFxuICAgKiBhcHBseWluZyB0aGUgY29ycmVjdCBJQU0gcm9sZXMgYW5kIHJ1bm5lciB0YWdzLiBJdCBzdXBwb3J0cyBjb25kaXRpb25hbCBtYW51YWwgYXBwcm92YWwgZm9yXG4gICAqIGRlcGxveW1lbnQgc3RhZ2VzLCBwcm92aWRpbmcgZmxleGliaWxpdHkgaW4gdGhlIGRlcGxveW1lbnQgd29ya2Zsb3cuXG4gICAqXG4gICAqIEBwYXJhbSB7RGVwbG95bWVudFN0YWdlfSBzdGFnZSAtIFRoZSBkZXBsb3ltZW50IHN0YWdlIGNvbmZpZ3VyYXRpb24gdG8gc2V0IHVwLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZURlcGxveW1lbnQoc3RhZ2U6IERlcGxveW1lbnRTdGFnZSk6IHZvaWQge1xuICAgIGNvbnN0IGRpZmZTdGVwcyA9IFtcbiAgICAgIG5ldyBBd3NBc3N1bWVSb2xlU3RlcCh0aGlzLnByb2plY3QsIHtcbiAgICAgICAgcm9sZUFybjogdGhpcy5vcHRpb25zLmlhbVJvbGVBcm5zPy5kaWZmPy5bc3RhZ2UubmFtZV1cbiAgICAgICAgICA/PyB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlcGxveW1lbnQ/LltzdGFnZS5uYW1lXVxuICAgICAgICAgID8/IHRoaXMub3B0aW9ucy5pYW1Sb2xlQXJucz8uZGVmYXVsdCEsXG4gICAgICB9KSxcbiAgICAgIC4uLnRoaXMub3B0aW9ucy5wcmVJbnN0YWxsU3RlcHMgPz8gW10sXG4gICAgICBuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlckluc3RhbGxDb21tYW5kcygpKSxcbiAgICAgIG5ldyBTaW1wbGVDb21tYW5kU3RlcCh0aGlzLnByb2plY3QsIHRoaXMucmVuZGVyRGlmZkNvbW1hbmRzKHN0YWdlLm5hbWUpKSxcbiAgICBdLm1hcChzID0+IHMudG9HaXRsYWIoKSk7XG5cblxuICAgIGNvbnN0IGRlcGxveVN0ZXBzID0gW1xuICAgICAgbmV3IEF3c0Fzc3VtZVJvbGVTdGVwKHRoaXMucHJvamVjdCwge1xuICAgICAgICByb2xlQXJuOiB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlcGxveW1lbnQ/LltzdGFnZS5uYW1lXSA/PyB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlZmF1bHQhLFxuICAgICAgfSksXG4gICAgICAuLi50aGlzLm9wdGlvbnMucHJlSW5zdGFsbFN0ZXBzID8/IFtdLFxuICAgICAgbmV3IFNpbXBsZUNvbW1hbmRTdGVwKHRoaXMucHJvamVjdCwgdGhpcy5yZW5kZXJJbnN0YWxsQ29tbWFuZHMoKSksXG4gICAgICBuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlckRlcGxveUNvbW1hbmRzKHN0YWdlLm5hbWUpKSxcbiAgICBdLm1hcChzID0+IHMudG9HaXRsYWIoKSk7XG5cbiAgICB0aGlzLmNvbmZpZy5hZGRTdGFnZXMoc3RhZ2UubmFtZSk7XG4gICAgdGhpcy5jb25maWcuYWRkSm9icyh7XG4gICAgICBbYGRpZmYtJHtzdGFnZS5uYW1lfWBdOiB7XG4gICAgICAgIGV4dGVuZHM6IFsnLmF3c19iYXNlJywgLi4uZGlmZlN0ZXBzLmZsYXRNYXAocyA9PiBzLmV4dGVuc2lvbnMpXSxcbiAgICAgICAgc3RhZ2U6IHN0YWdlLm5hbWUsXG4gICAgICAgIHRhZ3M6IHRoaXMub3B0aW9ucy5ydW5uZXJUYWdzPy5kaWZmPy5bc3RhZ2UubmFtZV0gPz8gdGhpcy5vcHRpb25zLnJ1bm5lclRhZ3M/LmRlcGxveW1lbnQ/LltzdGFnZS5uYW1lXSA/PyB0aGlzLm9wdGlvbnMucnVubmVyVGFncz8uZGVmYXVsdCxcbiAgICAgICAgb25seToge1xuICAgICAgICAgIHJlZnM6IFt0aGlzLmJyYW5jaE5hbWVdLFxuICAgICAgICB9LFxuICAgICAgICBuZWVkczogW1xuICAgICAgICAgIHsgam9iOiAnc3ludGgnLCBhcnRpZmFjdHM6IHRydWUgfSxcbiAgICAgICAgICB7IGpvYjogJ3B1Ymxpc2hfYXNzZXRzJyB9LFxuICAgICAgICAgIC4uLmRpZmZTdGVwcy5mbGF0TWFwKHMgPT4gcy5uZWVkcyksXG4gICAgICAgIF0sXG4gICAgICAgIHNjcmlwdDogZGlmZlN0ZXBzLmZsYXRNYXAocyA9PiBzLmNvbW1hbmRzKSxcbiAgICAgICAgdmFyaWFibGVzOiBkaWZmU3RlcHMucmVkdWNlKChhY2MsIHN0ZXApID0+ICh7IC4uLmFjYywgLi4uc3RlcC5lbnYgfSksIHt9KSxcbiAgICAgIH0sXG4gICAgICBbYGRlcGxveS0ke3N0YWdlLm5hbWV9YF06IHtcbiAgICAgICAgZXh0ZW5kczogWycuYXdzX2Jhc2UnLCAnLmFydGlmYWN0c19jZGtkZXBsb3knLCAuLi5kZXBsb3lTdGVwcy5mbGF0TWFwKHMgPT4gcy5leHRlbnNpb25zKV0sXG4gICAgICAgIHN0YWdlOiBzdGFnZS5uYW1lLFxuICAgICAgICB0YWdzOiB0aGlzLm9wdGlvbnMucnVubmVyVGFncz8uZGVwbG95bWVudD8uW3N0YWdlLm5hbWVdID8/IHRoaXMub3B0aW9ucy5ydW5uZXJUYWdzPy5kZWZhdWx0LFxuICAgICAgICAuLi5zdGFnZS5tYW51YWxBcHByb3ZhbCAmJiB7XG4gICAgICAgICAgd2hlbjogZ2l0bGFiLkpvYldoZW4uTUFOVUFMLFxuICAgICAgICB9LFxuICAgICAgICBvbmx5OiB7XG4gICAgICAgICAgcmVmczogW3RoaXMuYnJhbmNoTmFtZV0sXG4gICAgICAgIH0sXG4gICAgICAgIG5lZWRzOiBbXG4gICAgICAgICAgeyBqb2I6ICdzeW50aCcsIGFydGlmYWN0czogdHJ1ZSB9LFxuICAgICAgICAgIHsgam9iOiAncHVibGlzaF9hc3NldHMnIH0sXG4gICAgICAgICAgeyBqb2I6IGBkaWZmLSR7c3RhZ2UubmFtZX1gIH0sXG4gICAgICAgICAgLi4uZGVwbG95U3RlcHMuZmxhdE1hcChzID0+IHMubmVlZHMpLFxuICAgICAgICBdLFxuICAgICAgICBzY3JpcHQ6IGRlcGxveVN0ZXBzLmZsYXRNYXAocyA9PiBzLmNvbW1hbmRzKSxcbiAgICAgICAgdmFyaWFibGVzOiBkZXBsb3lTdGVwcy5yZWR1Y2UoKGFjYywgc3RlcCkgPT4gKHsgLi4uYWNjLCAuLi5zdGVwLmVudiB9KSwge30pLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLmRlcGxveW1lbnRTdGFnZXMucHVzaChzdGFnZS5uYW1lKTtcbiAgfVxuXG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBqb2IgdG8gZGVwbG95IHRoZSBDREsgYXBwbGljYXRpb24gdG8gQVdTLlxuICAgKiBAcGFyYW0gc3RhZ2UgLSBUaGUgaW5kZXBlbmRlbnQgc3RhZ2UgdG8gY3JlYXRlLlxuICAgKi9cbiAgcHVibGljIGNyZWF0ZUluZGVwZW5kZW50RGVwbG95bWVudChzdGFnZTogSW5kZXBlbmRlbnRTdGFnZSk6IHZvaWQge1xuICAgIGNvbnN0IHN0ZXBzID0gW1xuICAgICAgbmV3IEF3c0Fzc3VtZVJvbGVTdGVwKHRoaXMucHJvamVjdCwge1xuICAgICAgICByb2xlQXJuOiB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlcGxveW1lbnQ/LltzdGFnZS5uYW1lXSA/PyB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlZmF1bHQhLFxuICAgICAgICByZWdpb246IHN0YWdlLmVudi5yZWdpb24sXG4gICAgICB9KSxcbiAgICAgIC4uLnRoaXMub3B0aW9ucy5wcmVJbnN0YWxsU3RlcHMgPz8gW10sXG4gICAgICBuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlckluc3RhbGxDb21tYW5kcygpKSxcblxuICAgICAgLi4udGhpcy5vcHRpb25zLnByZVN5bnRoU3RlcHMgPz8gW10sXG4gICAgICBuZXcgU2ltcGxlQ29tbWFuZFN0ZXAodGhpcy5wcm9qZWN0LCB0aGlzLnJlbmRlclN5bnRoQ29tbWFuZHMoKSksXG4gICAgICAuLi50aGlzLm9wdGlvbnMucG9zdFN5bnRoU3RlcHMgPz8gW10sXG5cbiAgICAgIG5ldyBTaW1wbGVDb21tYW5kU3RlcCh0aGlzLnByb2plY3QsIHRoaXMucmVuZGVyRGlmZkNvbW1hbmRzKHN0YWdlLm5hbWUpKSxcbiAgICAgIC4uLnN0YWdlLnBvc3REaWZmU3RlcHMgPz8gW10sXG5cbiAgICAgIG5ldyBTaW1wbGVDb21tYW5kU3RlcCh0aGlzLnByb2plY3QsIHRoaXMucmVuZGVyRGVwbG95Q29tbWFuZHMoc3RhZ2UubmFtZSkpLFxuICAgICAgLi4uc3RhZ2UucG9zdERlcGxveVN0ZXBzID8/IFtdLFxuICAgIF0ubWFwKHMgPT4gcy50b0dpdGxhYigpKTtcblxuICAgIHRoaXMuY29uZmlnLmFkZFN0YWdlcyhzdGFnZS5uYW1lKTtcbiAgICB0aGlzLmNvbmZpZy5hZGRKb2JzKHtcbiAgICAgIFtgZGVwbG95LSR7c3RhZ2UubmFtZX1gXToge1xuICAgICAgICBleHRlbmRzOiBbJy5hd3NfYmFzZScsICcuYXJ0aWZhY3RzX2Nka2RlcGxveScsIC4uLnN0ZXBzLmZsYXRNYXAocyA9PiBzLmV4dGVuc2lvbnMpXSxcbiAgICAgICAgc3RhZ2U6IHN0YWdlLm5hbWUsXG4gICAgICAgIHRhZ3M6IHRoaXMub3B0aW9ucy5ydW5uZXJUYWdzPy5kZXBsb3ltZW50Py5bc3RhZ2UubmFtZV0gPz8gdGhpcy5vcHRpb25zLnJ1bm5lclRhZ3M/LmRlZmF1bHQsXG4gICAgICAgIHdoZW46IGdpdGxhYi5Kb2JXaGVuLk1BTlVBTCxcbiAgICAgICAgbmVlZHM6IHN0ZXBzLmZsYXRNYXAocyA9PiBzLm5lZWRzKSxcbiAgICAgICAgc2NyaXB0OiBzdGVwcy5mbGF0TWFwKHMgPT4gcy5jb21tYW5kcyksXG4gICAgICAgIHZhcmlhYmxlczogc3RlcHMucmVkdWNlKChhY2MsIHN0ZXApID0+ICh7IC4uLmFjYywgLi4uc3RlcC5lbnYgfSksIHt9KSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgfVxuXG4gIHB1YmxpYyBlbmdpbmVUeXBlKCk6IFBpcGVsaW5lRW5naW5lIHtcbiAgICByZXR1cm4gUGlwZWxpbmVFbmdpbmUuR0lUTEFCO1xuICB9XG5cbn1cblxuIl19
|
package/lib/awscdk/index.js
CHANGED
|
@@ -1,17 +1,21 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
8
12
|
}));
|
|
9
13
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
15
|
};
|
|
12
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
17
|
__exportStar(require("./base"), exports);
|
|
14
18
|
__exportStar(require("./github"), exports);
|
|
15
19
|
__exportStar(require("./gitlab"), exports);
|
|
16
20
|
__exportStar(require("./bash"), exports);
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvYXdzY2RrL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx5Q0FBdUI7QUFDdkIsMkNBQXlCO0FBQ3pCLDJDQUF5QjtBQUN6Qix5Q0FBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2Jhc2UnO1xuZXhwb3J0ICogZnJvbSAnLi9naXRodWInO1xuZXhwb3J0ICogZnJvbSAnLi9naXRsYWInO1xuZXhwb3J0ICogZnJvbSAnLi9iYXNoJztcbiJdfQ==
|
package/lib/engine.js
CHANGED
|
@@ -15,5 +15,5 @@ var PipelineEngine;
|
|
|
15
15
|
// CODE_CATALYST,
|
|
16
16
|
/** Create bash scripts */
|
|
17
17
|
PipelineEngine[PipelineEngine["BASH"] = 2] = "BASH";
|
|
18
|
-
})(PipelineEngine
|
|
19
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
18
|
+
})(PipelineEngine || (exports.PipelineEngine = PipelineEngine = {}));
|
|
19
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5naW5lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2VuZ2luZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQTs7O0dBR0c7QUFDSCxJQUFZLGNBU1g7QUFURCxXQUFZLGNBQWM7SUFDeEIsNEJBQTRCO0lBQzVCLHVEQUFNLENBQUE7SUFDTixvQ0FBb0M7SUFDcEMsdURBQU0sQ0FBQTtJQUNOLDJDQUEyQztJQUMzQyxpQkFBaUI7SUFDakIsMEJBQTBCO0lBQzFCLG1EQUFJLENBQUE7QUFDTixDQUFDLEVBVFcsY0FBYyw4QkFBZCxjQUFjLFFBU3pCIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIFRoZSBDSS9DRCB0b29saW5nIHVzZWQgdG8gcnVuIHlvdXIgcGlwZWxpbmUuXG4gKiBUaGUgY29tcG9uZW50IHdpbGwgcmVuZGVyIHdvcmtmbG93cyBmb3IgdGhlIGdpdmVuIHN5c3RlbVxuICovXG5leHBvcnQgZW51bSBQaXBlbGluZUVuZ2luZSB7XG4gIC8qKiBDcmVhdGUgR2l0SHViIGFjdGlvbnMgKi9cbiAgR0lUSFVCLFxuICAvKiogQ3JlYXRlIGEgLmdpdGxhYi1jaS55YW1sIGZpbGUgKi9cbiAgR0lUTEFCLFxuICAvLyAvKiogQ3JlYXRlIEFXUyBDb2RlQ2F0YWx5c3Qgd29ya2Zsb3dzICovXG4gIC8vIENPREVfQ0FUQUxZU1QsXG4gIC8qKiBDcmVhdGUgYmFzaCBzY3JpcHRzICovXG4gIEJBU0gsXG59Il19
|
package/lib/index.js
CHANGED
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
8
12
|
}));
|
|
9
13
|
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
10
|
-
for (var p in m) if (p !== "default" && !
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
11
15
|
};
|
|
12
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
17
|
__exportStar(require("./engine"), exports);
|
|
14
18
|
__exportStar(require("./steps"), exports);
|
|
15
19
|
__exportStar(require("./awscdk"), exports);
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDJDQUF5QjtBQUN6QiwwQ0FBd0I7QUFDeEIsMkNBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9lbmdpbmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zdGVwcyc7XG5leHBvcnQgKiBmcm9tICcuL2F3c2Nkayc7Il19
|
package/lib/release.js
CHANGED
|
@@ -5,19 +5,19 @@ const fs_1 = require("fs");
|
|
|
5
5
|
const path_1 = require("path");
|
|
6
6
|
const stdVer = require("standard-version");
|
|
7
7
|
function createManifest(outDir, namespace) {
|
|
8
|
-
const projectInfo = JSON.parse(fs_1.readFileSync(path_1.join('package.json')).toString('utf-8'));
|
|
8
|
+
const projectInfo = JSON.parse((0, fs_1.readFileSync)((0, path_1.join)('package.json')).toString('utf-8'));
|
|
9
9
|
const assemblyManifest = JSON.stringify({
|
|
10
10
|
name: `${namespace}/${projectInfo.name}`,
|
|
11
11
|
author: projectInfo.author,
|
|
12
12
|
license: projectInfo.license,
|
|
13
13
|
version: '0.0.0',
|
|
14
14
|
}, null, 2);
|
|
15
|
-
fs_1.writeFileSync(path_1.join(outDir, 'package.json'), assemblyManifest, { encoding: 'utf-8' });
|
|
16
|
-
const rcFile = path_1.join(outDir, '.npmrc');
|
|
17
|
-
if (fs_1.existsSync(rcFile)) {
|
|
18
|
-
fs_1.rmSync(rcFile, { force: true });
|
|
15
|
+
(0, fs_1.writeFileSync)((0, path_1.join)(outDir, 'package.json'), assemblyManifest, { encoding: 'utf-8' });
|
|
16
|
+
const rcFile = (0, path_1.join)(outDir, '.npmrc');
|
|
17
|
+
if ((0, fs_1.existsSync)(rcFile)) {
|
|
18
|
+
(0, fs_1.rmSync)(rcFile, { force: true });
|
|
19
19
|
}
|
|
20
|
-
fs_1.copyFileSync('.npmrc', rcFile);
|
|
20
|
+
(0, fs_1.copyFileSync)('.npmrc', rcFile);
|
|
21
21
|
}
|
|
22
22
|
function bumpVersion() {
|
|
23
23
|
void stdVer({
|
|
@@ -43,4 +43,4 @@ switch (process.argv[2]) {
|
|
|
43
43
|
console.log('Cannot find command: ' + process.argv[2]);
|
|
44
44
|
break;
|
|
45
45
|
}
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
46
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWxlYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUVBLDJCQUFtRjtBQUNuRiwrQkFBNEI7QUFDNUIsMkNBQTJDO0FBRTNDLFNBQVMsY0FBYyxDQUFDLE1BQWMsRUFBRSxTQUFpQjtJQUN2RCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUEsaUJBQVksRUFBQyxJQUFBLFdBQUksRUFBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN0QyxJQUFJLEVBQUUsR0FBRyxTQUFTLElBQUksV0FBVyxDQUFDLElBQUksRUFBRTtRQUN4QyxNQUFNLEVBQUUsV0FBVyxDQUFDLE1BQU07UUFDMUIsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPO1FBQzVCLE9BQU8sRUFBRSxPQUFPO0tBQ2pCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ1osSUFBQSxrQkFBYSxFQUFDLElBQUEsV0FBSSxFQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBRXJGLE1BQU0sTUFBTSxHQUFHLElBQUEsV0FBSSxFQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN0QyxJQUFJLElBQUEsZUFBVSxFQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDdkIsSUFBQSxXQUFNLEVBQUMsTUFBTSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUNELElBQUEsaUJBQVksRUFBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDakMsQ0FBQztBQUVELFNBQVMsV0FBVztJQUNsQixLQUFLLE1BQU0sQ0FBQztRQUNWLFlBQVksRUFBRSxFQUFFO1FBQ2hCLFNBQVMsRUFBRSxFQUFFO1FBQ2IsSUFBSSxFQUFFO1lBQ0osTUFBTSxFQUFFLElBQUk7WUFDWixTQUFTLEVBQUUsSUFBSTtTQUNoQjtRQUNELFlBQVksRUFBRSxLQUFLO1FBQ25CLGNBQWMsRUFBRSxJQUFJO1FBQ3BCLFNBQVMsRUFBRSxFQUFFO0tBQ2QsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBRUQsUUFBUSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDeEIsS0FBSyxpQkFBaUI7UUFDcEIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pELE1BQU07SUFDUixLQUFLLE1BQU07UUFDVCxXQUFXLEVBQUUsQ0FBQztRQUNkLE1BQU07SUFDUjtRQUNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELE1BQU07QUFDVixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuXG5pbXBvcnQgeyBjb3B5RmlsZVN5bmMsIGV4aXN0c1N5bmMsIHJlYWRGaWxlU3luYywgd3JpdGVGaWxlU3luYywgcm1TeW5jIH0gZnJvbSAnZnMnO1xuaW1wb3J0IHsgam9pbiB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgc3RkVmVyIGZyb20gJ3N0YW5kYXJkLXZlcnNpb24nO1xuXG5mdW5jdGlvbiBjcmVhdGVNYW5pZmVzdChvdXREaXI6IHN0cmluZywgbmFtZXNwYWNlOiBzdHJpbmcpIHtcbiAgY29uc3QgcHJvamVjdEluZm8gPSBKU09OLnBhcnNlKHJlYWRGaWxlU3luYyhqb2luKCdwYWNrYWdlLmpzb24nKSkudG9TdHJpbmcoJ3V0Zi04JykpO1xuICBjb25zdCBhc3NlbWJseU1hbmlmZXN0ID0gSlNPTi5zdHJpbmdpZnkoe1xuICAgIG5hbWU6IGAke25hbWVzcGFjZX0vJHtwcm9qZWN0SW5mby5uYW1lfWAsXG4gICAgYXV0aG9yOiBwcm9qZWN0SW5mby5hdXRob3IsXG4gICAgbGljZW5zZTogcHJvamVjdEluZm8ubGljZW5zZSxcbiAgICB2ZXJzaW9uOiAnMC4wLjAnLFxuICB9LCBudWxsLCAyKTtcbiAgd3JpdGVGaWxlU3luYyhqb2luKG91dERpciwgJ3BhY2thZ2UuanNvbicpLCBhc3NlbWJseU1hbmlmZXN0LCB7IGVuY29kaW5nOiAndXRmLTgnIH0pO1xuXG4gIGNvbnN0IHJjRmlsZSA9IGpvaW4ob3V0RGlyLCAnLm5wbXJjJyk7XG4gIGlmIChleGlzdHNTeW5jKHJjRmlsZSkpIHtcbiAgICBybVN5bmMocmNGaWxlLCB7IGZvcmNlOiB0cnVlIH0pO1xuICB9XG4gIGNvcHlGaWxlU3luYygnLm5wbXJjJywgcmNGaWxlKTtcbn1cblxuZnVuY3Rpb24gYnVtcFZlcnNpb24oKSB7XG4gIHZvaWQgc3RkVmVyKHtcbiAgICBwYWNrYWdlRmlsZXM6IFtdLFxuICAgIGJ1bXBGaWxlczogW10sXG4gICAgc2tpcDoge1xuICAgICAgY29tbWl0OiB0cnVlLFxuICAgICAgY2hhbmdlbG9nOiB0cnVlLFxuICAgIH0sXG4gICAgZmlyc3RSZWxlYXNlOiBmYWxzZSxcbiAgICBnaXRUYWdGYWxsYmFjazogdHJ1ZSxcbiAgICB0YWdQcmVmaXg6ICcnLFxuICB9KS50aGVuKGNvbnNvbGUubG9nKS5jYXRjaChjb25zb2xlLmVycm9yKTtcbn1cblxuc3dpdGNoIChwcm9jZXNzLmFyZ3ZbMl0pIHtcbiAgY2FzZSAnY3JlYXRlLW1hbmlmZXN0JzpcbiAgICBjcmVhdGVNYW5pZmVzdChwcm9jZXNzLmFyZ3ZbM10sIHByb2Nlc3MuYXJndls0XSk7XG4gICAgYnJlYWs7XG4gIGNhc2UgJ2J1bXAnOlxuICAgIGJ1bXBWZXJzaW9uKCk7XG4gICAgYnJlYWs7XG4gIGRlZmF1bHQ6XG4gICAgY29uc29sZS5sb2coJ0Nhbm5vdCBmaW5kIGNvbW1hbmQ6ICcgKyBwcm9jZXNzLmFyZ3ZbMl0pO1xuICAgIGJyZWFrO1xufVxuIl19
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { Project } from 'projen';
|
|
2
|
+
import { GithubStepConfig, GitlabStepConfig, PipelineStep } from './step';
|
|
3
|
+
export interface DownloadArtifactStepConfig {
|
|
4
|
+
readonly name: string;
|
|
5
|
+
readonly path: string;
|
|
6
|
+
}
|
|
7
|
+
export declare class DownloadArtifactStep extends PipelineStep {
|
|
8
|
+
private readonly config;
|
|
9
|
+
constructor(project: Project, config: DownloadArtifactStepConfig);
|
|
10
|
+
toGitlab(): GitlabStepConfig;
|
|
11
|
+
toGithub(): GithubStepConfig;
|
|
12
|
+
}
|
|
13
|
+
export interface UploadArtifactStepConfig {
|
|
14
|
+
readonly name: string;
|
|
15
|
+
readonly path: string;
|
|
16
|
+
}
|
|
17
|
+
export declare class UploadArtifactStep extends PipelineStep {
|
|
18
|
+
private readonly config;
|
|
19
|
+
constructor(project: Project, config: UploadArtifactStepConfig);
|
|
20
|
+
toGithub(): GithubStepConfig;
|
|
21
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UploadArtifactStep = exports.DownloadArtifactStep = void 0;
|
|
4
|
+
const step_1 = require("./step");
|
|
5
|
+
class DownloadArtifactStep extends step_1.PipelineStep {
|
|
6
|
+
constructor(project, config) {
|
|
7
|
+
super(project);
|
|
8
|
+
this.config = config;
|
|
9
|
+
}
|
|
10
|
+
toGitlab() {
|
|
11
|
+
// Nothing to do; artifact is already downloaded for you
|
|
12
|
+
return {
|
|
13
|
+
env: {},
|
|
14
|
+
extensions: [],
|
|
15
|
+
needs: [],
|
|
16
|
+
commands: [],
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
toGithub() {
|
|
20
|
+
return {
|
|
21
|
+
steps: [{
|
|
22
|
+
name: 'Download Artifact',
|
|
23
|
+
uses: 'actions/download-artifact@v4',
|
|
24
|
+
with: {
|
|
25
|
+
name: this.config.name,
|
|
26
|
+
path: this.config.path,
|
|
27
|
+
},
|
|
28
|
+
}],
|
|
29
|
+
needs: [],
|
|
30
|
+
env: {},
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
exports.DownloadArtifactStep = DownloadArtifactStep;
|
|
35
|
+
class UploadArtifactStep extends step_1.PipelineStep {
|
|
36
|
+
constructor(project, config) {
|
|
37
|
+
super(project);
|
|
38
|
+
this.config = config;
|
|
39
|
+
}
|
|
40
|
+
toGithub() {
|
|
41
|
+
return {
|
|
42
|
+
steps: [{
|
|
43
|
+
name: 'Upload Artifact',
|
|
44
|
+
uses: 'actions/upload-artifact@v4',
|
|
45
|
+
with: {
|
|
46
|
+
name: this.config.name,
|
|
47
|
+
path: this.config.path,
|
|
48
|
+
},
|
|
49
|
+
}],
|
|
50
|
+
needs: [],
|
|
51
|
+
env: {},
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
exports.UploadArtifactStep = UploadArtifactStep;
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ0aWZhY3Qtc3RlcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RlcHMvYXJ0aWZhY3Qtc3RlcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUNBQTBFO0FBTzFFLE1BQWEsb0JBQXFCLFNBQVEsbUJBQVk7SUFFcEQsWUFBWSxPQUFnQixFQUFtQixNQUFrQztRQUMvRSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFEOEIsV0FBTSxHQUFOLE1BQU0sQ0FBNEI7SUFFakYsQ0FBQztJQUVNLFFBQVE7UUFDYix3REFBd0Q7UUFDeEQsT0FBTztZQUNMLEdBQUcsRUFBRSxFQUFFO1lBQ1AsVUFBVSxFQUFFLEVBQUU7WUFDZCxLQUFLLEVBQUUsRUFBRTtZQUNULFFBQVEsRUFBRSxFQUFFO1NBQ2IsQ0FBQztJQUNKLENBQUM7SUFDTSxRQUFRO1FBQ2IsT0FBTztZQUNMLEtBQUssRUFBRSxDQUFDO29CQUNOLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLElBQUksRUFBRSw4QkFBOEI7b0JBQ3BDLElBQUksRUFBRTt3QkFDSixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO3dCQUN0QixJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJO3FCQUN2QjtpQkFDRixDQUFDO1lBQ0YsS0FBSyxFQUFFLEVBQUU7WUFDVCxHQUFHLEVBQUUsRUFBRTtTQUNSLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUE3QkQsb0RBNkJDO0FBUUQsTUFBYSxrQkFBbUIsU0FBUSxtQkFBWTtJQUVsRCxZQUFZLE9BQWdCLEVBQW1CLE1BQWdDO1FBQzdFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUQ4QixXQUFNLEdBQU4sTUFBTSxDQUEwQjtJQUUvRSxDQUFDO0lBRU0sUUFBUTtRQUNiLE9BQU87WUFDTCxLQUFLLEVBQUUsQ0FBQztvQkFDTixJQUFJLEVBQUUsaUJBQWlCO29CQUN2QixJQUFJLEVBQUUsNEJBQTRCO29CQUNsQyxJQUFJLEVBQUU7d0JBQ0osSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTt3QkFDdEIsSUFBSSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSTtxQkFDdkI7aUJBQ0YsQ0FBQztZQUNGLEtBQUssRUFBRSxFQUFFO1lBQ1QsR0FBRyxFQUFFLEVBQUU7U0FDUixDQUFDO0lBQ0osQ0FBQztDQUVGO0FBckJELGdEQXFCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2plY3QgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgR2l0aHViU3RlcENvbmZpZywgR2l0bGFiU3RlcENvbmZpZywgUGlwZWxpbmVTdGVwIH0gZnJvbSAnLi9zdGVwJztcblxuZXhwb3J0IGludGVyZmFjZSBEb3dubG9hZEFydGlmYWN0U3RlcENvbmZpZyB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgcGF0aDogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgRG93bmxvYWRBcnRpZmFjdFN0ZXAgZXh0ZW5kcyBQaXBlbGluZVN0ZXAge1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIHByaXZhdGUgcmVhZG9ubHkgY29uZmlnOiBEb3dubG9hZEFydGlmYWN0U3RlcENvbmZpZykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuICB9XG5cbiAgcHVibGljIHRvR2l0bGFiKCk6IEdpdGxhYlN0ZXBDb25maWcge1xuICAgIC8vIE5vdGhpbmcgdG8gZG87IGFydGlmYWN0IGlzIGFscmVhZHkgZG93bmxvYWRlZCBmb3IgeW91XG4gICAgcmV0dXJuIHtcbiAgICAgIGVudjoge30sXG4gICAgICBleHRlbnNpb25zOiBbXSxcbiAgICAgIG5lZWRzOiBbXSxcbiAgICAgIGNvbW1hbmRzOiBbXSxcbiAgICB9O1xuICB9XG4gIHB1YmxpYyB0b0dpdGh1YigpOiBHaXRodWJTdGVwQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RlcHM6IFt7XG4gICAgICAgIG5hbWU6ICdEb3dubG9hZCBBcnRpZmFjdCcsXG4gICAgICAgIHVzZXM6ICdhY3Rpb25zL2Rvd25sb2FkLWFydGlmYWN0QHY0JyxcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIG5hbWU6IHRoaXMuY29uZmlnLm5hbWUsXG4gICAgICAgICAgcGF0aDogdGhpcy5jb25maWcucGF0aCxcbiAgICAgICAgfSxcbiAgICAgIH1dLFxuICAgICAgbmVlZHM6IFtdLFxuICAgICAgZW52OiB7fSxcbiAgICB9O1xuICB9XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRBcnRpZmFjdFN0ZXBDb25maWcge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBhdGg6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFVwbG9hZEFydGlmYWN0U3RlcCBleHRlbmRzIFBpcGVsaW5lU3RlcCB7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IFVwbG9hZEFydGlmYWN0U3RlcENvbmZpZykge1xuICAgIHN1cGVyKHByb2plY3QpO1xuICB9XG5cbiAgcHVibGljIHRvR2l0aHViKCk6IEdpdGh1YlN0ZXBDb25maWcge1xuICAgIHJldHVybiB7XG4gICAgICBzdGVwczogW3tcbiAgICAgICAgbmFtZTogJ1VwbG9hZCBBcnRpZmFjdCcsXG4gICAgICAgIHVzZXM6ICdhY3Rpb25zL3VwbG9hZC1hcnRpZmFjdEB2NCcsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICBuYW1lOiB0aGlzLmNvbmZpZy5uYW1lLFxuICAgICAgICAgIHBhdGg6IHRoaXMuY29uZmlnLnBhdGgsXG4gICAgICAgIH0sXG4gICAgICB9XSxcbiAgICAgIG5lZWRzOiBbXSxcbiAgICAgIGVudjoge30sXG4gICAgfTtcbiAgfVxuXG59Il19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Project } from 'projen';
|
|
2
|
+
import { GithubStepConfig, GitlabStepConfig, PipelineStep } from './step';
|
|
3
|
+
/**
|
|
4
|
+
* Configuration for an AWS AssumeRoleStep
|
|
5
|
+
*/
|
|
6
|
+
export interface AwsAssumeRoleStepConfig {
|
|
7
|
+
/** The ARN of the role to assume */
|
|
8
|
+
readonly roleArn: string;
|
|
9
|
+
/** An identifier for the assumed role session */
|
|
10
|
+
readonly sessionName?: string;
|
|
11
|
+
/** The AWS region that should be set */
|
|
12
|
+
readonly region?: string;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* A step that assumes a role in AWS
|
|
16
|
+
*/
|
|
17
|
+
export declare class AwsAssumeRoleStep extends PipelineStep {
|
|
18
|
+
private readonly config;
|
|
19
|
+
constructor(project: Project, config: AwsAssumeRoleStepConfig);
|
|
20
|
+
toGitlab(): GitlabStepConfig;
|
|
21
|
+
toGithub(): GithubStepConfig;
|
|
22
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AwsAssumeRoleStep = void 0;
|
|
4
|
+
const step_1 = require("./step");
|
|
5
|
+
/**
|
|
6
|
+
* A step that assumes a role in AWS
|
|
7
|
+
*/
|
|
8
|
+
class AwsAssumeRoleStep extends step_1.PipelineStep {
|
|
9
|
+
constructor(project, config) {
|
|
10
|
+
super(project);
|
|
11
|
+
this.config = config;
|
|
12
|
+
}
|
|
13
|
+
toGitlab() {
|
|
14
|
+
return {
|
|
15
|
+
env: {
|
|
16
|
+
...this.config.region ? { AWS_REGION: this.config.region } : {},
|
|
17
|
+
},
|
|
18
|
+
commands: [
|
|
19
|
+
`awslogin ${this.config.roleArn} ${this.config.sessionName ?? ''}`,
|
|
20
|
+
],
|
|
21
|
+
extensions: [],
|
|
22
|
+
needs: [],
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
toGithub() {
|
|
26
|
+
return {
|
|
27
|
+
steps: [{
|
|
28
|
+
name: 'AWS Credentials',
|
|
29
|
+
uses: 'aws-actions/configure-aws-credentials@master',
|
|
30
|
+
with: {
|
|
31
|
+
'role-to-assume': this.config.roleArn,
|
|
32
|
+
'role-session-name': this.config.sessionName ?? 'GitHubAction',
|
|
33
|
+
...this.config.region ? { 'aws-region': this.config.region } : {},
|
|
34
|
+
},
|
|
35
|
+
}],
|
|
36
|
+
needs: [],
|
|
37
|
+
env: {},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.AwsAssumeRoleStep = AwsAssumeRoleStep;
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFzc3VtZS1yb2xlLnN0ZXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvc3RlcHMvYXdzLWFzc3VtZS1yb2xlLnN0ZXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsaUNBQTBFO0FBZTFFOztHQUVHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSxtQkFBWTtJQUVqRCxZQUFZLE9BQWdCLEVBQW1CLE1BQStCO1FBQzVFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUQ4QixXQUFNLEdBQU4sTUFBTSxDQUF5QjtJQUU5RSxDQUFDO0lBRU0sUUFBUTtRQUNiLE9BQU87WUFDTCxHQUFHLEVBQUU7Z0JBQ0gsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTthQUNoRTtZQUNELFFBQVEsRUFBRTtnQkFDUixZQUFZLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxJQUFJLEVBQUUsRUFBRTthQUNuRTtZQUNELFVBQVUsRUFBRSxFQUFFO1lBQ2QsS0FBSyxFQUFFLEVBQUU7U0FDVixDQUFDO0lBQ0osQ0FBQztJQUVNLFFBQVE7UUFDYixPQUFPO1lBQ0wsS0FBSyxFQUFFLENBQUM7b0JBQ04sSUFBSSxFQUFFLGlCQUFpQjtvQkFDdkIsSUFBSSxFQUFFLDhDQUE4QztvQkFDcEQsSUFBSSxFQUFFO3dCQUNKLGdCQUFnQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTzt3QkFDckMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLElBQUksY0FBYzt3QkFDOUQsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRTtxQkFDbEU7aUJBQ0YsQ0FBQztZQUNGLEtBQUssRUFBRSxFQUFFO1lBQ1QsR0FBRyxFQUFFLEVBQUU7U0FDUixDQUFDO0lBQ0osQ0FBQztDQUVGO0FBbkNELDhDQW1DQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByb2plY3QgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgR2l0aHViU3RlcENvbmZpZywgR2l0bGFiU3RlcENvbmZpZywgUGlwZWxpbmVTdGVwIH0gZnJvbSAnLi9zdGVwJztcblxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGFuIEFXUyBBc3N1bWVSb2xlU3RlcFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF3c0Fzc3VtZVJvbGVTdGVwQ29uZmlnIHtcbiAgLyoqIFRoZSBBUk4gb2YgdGhlIHJvbGUgdG8gYXNzdW1lICovXG4gIHJlYWRvbmx5IHJvbGVBcm46IHN0cmluZztcbiAgLyoqIEFuIGlkZW50aWZpZXIgZm9yIHRoZSBhc3N1bWVkIHJvbGUgc2Vzc2lvbiAqL1xuICByZWFkb25seSBzZXNzaW9uTmFtZT86IHN0cmluZztcbiAgLyoqIFRoZSBBV1MgcmVnaW9uIHRoYXQgc2hvdWxkIGJlIHNldCAqL1xuICByZWFkb25seSByZWdpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQSBzdGVwIHRoYXQgYXNzdW1lcyBhIHJvbGUgaW4gQVdTXG4gKi9cbmV4cG9ydCBjbGFzcyBBd3NBc3N1bWVSb2xlU3RlcCBleHRlbmRzIFBpcGVsaW5lU3RlcCB7XG5cbiAgY29uc3RydWN0b3IocHJvamVjdDogUHJvamVjdCwgcHJpdmF0ZSByZWFkb25seSBjb25maWc6IEF3c0Fzc3VtZVJvbGVTdGVwQ29uZmlnKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG4gIH1cblxuICBwdWJsaWMgdG9HaXRsYWIoKTogR2l0bGFiU3RlcENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGVudjoge1xuICAgICAgICAuLi50aGlzLmNvbmZpZy5yZWdpb24gPyB7IEFXU19SRUdJT046IHRoaXMuY29uZmlnLnJlZ2lvbiB9IDoge30sXG4gICAgICB9LFxuICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgYGF3c2xvZ2luICR7dGhpcy5jb25maWcucm9sZUFybn0gJHt0aGlzLmNvbmZpZy5zZXNzaW9uTmFtZSA/PyAnJ31gLFxuICAgICAgXSxcbiAgICAgIGV4dGVuc2lvbnM6IFtdLFxuICAgICAgbmVlZHM6IFtdLFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdG9HaXRodWIoKTogR2l0aHViU3RlcENvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHN0ZXBzOiBbe1xuICAgICAgICBuYW1lOiAnQVdTIENyZWRlbnRpYWxzJyxcbiAgICAgICAgdXNlczogJ2F3cy1hY3Rpb25zL2NvbmZpZ3VyZS1hd3MtY3JlZGVudGlhbHNAbWFzdGVyJyxcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgICdyb2xlLXRvLWFzc3VtZSc6IHRoaXMuY29uZmlnLnJvbGVBcm4sXG4gICAgICAgICAgJ3JvbGUtc2Vzc2lvbi1uYW1lJzogdGhpcy5jb25maWcuc2Vzc2lvbk5hbWUgPz8gJ0dpdEh1YkFjdGlvbicsXG4gICAgICAgICAgLi4udGhpcy5jb25maWcucmVnaW9uID8geyAnYXdzLXJlZ2lvbic6IHRoaXMuY29uZmlnLnJlZ2lvbiB9IDoge30sXG4gICAgICAgIH0sXG4gICAgICB9XSxcbiAgICAgIG5lZWRzOiBbXSxcbiAgICAgIGVudjoge30sXG4gICAgfTtcbiAgfVxuXG59Il19
|