projen-pipelines 0.0.27 → 0.0.29
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/.gitattributes +1 -1
- package/.jsii +1259 -0
- package/.projenrc.ts +10 -7
- package/API.md +705 -451
- package/lib/awscdk/base.d.ts +10 -11
- package/lib/awscdk/base.js +20 -20
- package/lib/awscdk/github.d.ts +9 -8
- package/lib/awscdk/github.js +16 -15
- package/lib/awscdk/gitlab.d.ts +9 -8
- package/lib/awscdk/gitlab.js +17 -18
- package/lib/awscdk/index.js +3 -7
- package/lib/index.js +3 -7
- package/lib/release.js +9 -12
- package/package.json +35 -10
package/lib/awscdk/base.d.ts
CHANGED
|
@@ -33,6 +33,9 @@ export interface DeploymentStage {
|
|
|
33
33
|
readonly env: Environment;
|
|
34
34
|
readonly manualApproval?: boolean;
|
|
35
35
|
}
|
|
36
|
+
export interface StageOptions {
|
|
37
|
+
readonly env: Environment;
|
|
38
|
+
}
|
|
36
39
|
/**
|
|
37
40
|
* The CDKPipelineOptions interface is designed to provide configuration
|
|
38
41
|
* options for a CDK (Cloud Development Kit) pipeline. It allows the definition
|
|
@@ -54,12 +57,8 @@ export interface CDKPipelineOptions {
|
|
|
54
57
|
*/
|
|
55
58
|
readonly pkgNamespace: string;
|
|
56
59
|
readonly stages: DeploymentStage[];
|
|
57
|
-
readonly personalStage?:
|
|
58
|
-
|
|
59
|
-
};
|
|
60
|
-
readonly featureStages?: {
|
|
61
|
-
readonly env: Environment;
|
|
62
|
-
};
|
|
60
|
+
readonly personalStage?: StageOptions;
|
|
61
|
+
readonly featureStages?: StageOptions;
|
|
63
62
|
readonly preInstallCommands?: string[];
|
|
64
63
|
readonly preSynthCommands?: string[];
|
|
65
64
|
readonly postSynthCommands?: string[];
|
|
@@ -73,12 +72,12 @@ export declare abstract class CDKPipeline extends Component {
|
|
|
73
72
|
private baseOptions;
|
|
74
73
|
readonly stackPrefix: string;
|
|
75
74
|
constructor(app: awscdk.AwsCdkTypeScriptApp, baseOptions: CDKPipelineOptions);
|
|
76
|
-
protected
|
|
77
|
-
protected
|
|
78
|
-
protected
|
|
75
|
+
protected renderInstallCommands(): string[];
|
|
76
|
+
protected renderInstallPackageCommands(packageName: string, runPreInstallCommands?: boolean): string[];
|
|
77
|
+
protected renderSynthCommands(): string[];
|
|
79
78
|
protected getAssetUploadCommands(needsVersionedArtifacts: boolean): string[];
|
|
80
|
-
protected
|
|
81
|
-
protected
|
|
79
|
+
protected renderDeployCommands(stageName: string): string[];
|
|
80
|
+
protected renderDiffCommands(stageName: string): string[];
|
|
82
81
|
/**
|
|
83
82
|
* This method generates the entry point for the application, including interfaces and classes
|
|
84
83
|
* necessary to set up the pipeline and define the AWS CDK stacks for different environments.
|
package/lib/awscdk/base.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var _a;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.CDKPipeline = exports.PipelineEngine = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
4
6
|
const projen_1 = require("projen");
|
|
5
7
|
const common_1 = require("projen/lib/common");
|
|
6
8
|
const javascript_1 = require("projen/lib/javascript");
|
|
@@ -16,14 +18,13 @@ var PipelineEngine;
|
|
|
16
18
|
PipelineEngine[PipelineEngine["GITLAB"] = 1] = "GITLAB";
|
|
17
19
|
// /** Create AWS CodeCatalyst workflows */
|
|
18
20
|
// CODE_CATALYST,
|
|
19
|
-
})(PipelineEngine
|
|
21
|
+
})(PipelineEngine = exports.PipelineEngine || (exports.PipelineEngine = {}));
|
|
20
22
|
/**
|
|
21
23
|
* The CDKPipeline class extends the Component class and sets up the necessary configuration for deploying AWS CDK (Cloud Development Kit) applications across multiple stages.
|
|
22
24
|
* It also manages tasks such as publishing CDK assets, bumping version based on git tags, and cleaning up conflicting tasks.
|
|
23
25
|
*/
|
|
24
26
|
class CDKPipeline extends projen_1.Component {
|
|
25
27
|
constructor(app, baseOptions) {
|
|
26
|
-
var _a, _b, _c;
|
|
27
28
|
super(app);
|
|
28
29
|
this.app = app;
|
|
29
30
|
this.baseOptions = baseOptions;
|
|
@@ -31,10 +32,10 @@ class CDKPipeline extends projen_1.Component {
|
|
|
31
32
|
this.app.addDevDeps('@types/standard-version', 'standard-version', 'cdk-assets');
|
|
32
33
|
// this.app.addDeps(
|
|
33
34
|
// );
|
|
34
|
-
this.stackPrefix =
|
|
35
|
+
this.stackPrefix = baseOptions.stackPrefix ?? app.name;
|
|
35
36
|
// Removes the compiled cloud assembly before each synth
|
|
36
|
-
|
|
37
|
-
|
|
37
|
+
this.project.tasks.tryFind('synth')?.prependExec(`rm -rf ${this.app.cdkConfig.cdkout}`);
|
|
38
|
+
this.project.tasks.tryFind('synth:silent')?.prependExec(`rm -rf ${this.app.cdkConfig.cdkout}`);
|
|
38
39
|
// Remove tasks that might conflict with the pipeline process
|
|
39
40
|
this.project.removeTask('deploy');
|
|
40
41
|
this.project.removeTask('diff');
|
|
@@ -55,16 +56,14 @@ class CDKPipeline extends projen_1.Component {
|
|
|
55
56
|
// Creates a specialized CDK App class
|
|
56
57
|
this.createApplicationEntrypoint();
|
|
57
58
|
}
|
|
58
|
-
|
|
59
|
-
var _a;
|
|
59
|
+
renderInstallCommands() {
|
|
60
60
|
return [
|
|
61
|
-
...(
|
|
61
|
+
...(this.baseOptions.preInstallCommands ?? []),
|
|
62
62
|
`npx projen ${this.app.package.installCiTask.name}`,
|
|
63
63
|
];
|
|
64
64
|
}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const commands = runPreInstallCommands ? (_a = this.baseOptions.preInstallCommands) !== null && _a !== void 0 ? _a : [] : [];
|
|
65
|
+
renderInstallPackageCommands(packageName, runPreInstallCommands = false) {
|
|
66
|
+
const commands = runPreInstallCommands ? this.baseOptions.preInstallCommands ?? [] : [];
|
|
68
67
|
switch (this.app.package.packageManager) {
|
|
69
68
|
case javascript_1.NodePackageManager.YARN:
|
|
70
69
|
case javascript_1.NodePackageManager.YARN2:
|
|
@@ -80,18 +79,17 @@ class CDKPipeline extends projen_1.Component {
|
|
|
80
79
|
}
|
|
81
80
|
return commands;
|
|
82
81
|
}
|
|
83
|
-
|
|
84
|
-
var _a, _b;
|
|
82
|
+
renderSynthCommands() {
|
|
85
83
|
return [
|
|
86
|
-
...this.
|
|
87
|
-
...(
|
|
84
|
+
...this.renderInstallCommands(),
|
|
85
|
+
...(this.baseOptions.preSynthCommands ?? []),
|
|
88
86
|
'npx projen build',
|
|
89
|
-
...(
|
|
87
|
+
...(this.baseOptions.postSynthCommands ?? []),
|
|
90
88
|
];
|
|
91
89
|
}
|
|
92
90
|
getAssetUploadCommands(needsVersionedArtifacts) {
|
|
93
91
|
return [
|
|
94
|
-
...this.
|
|
92
|
+
...this.renderInstallCommands(),
|
|
95
93
|
'npx projen publish:assets',
|
|
96
94
|
...(needsVersionedArtifacts ? [
|
|
97
95
|
'npx projen bump',
|
|
@@ -99,12 +97,12 @@ class CDKPipeline extends projen_1.Component {
|
|
|
99
97
|
] : []),
|
|
100
98
|
];
|
|
101
99
|
}
|
|
102
|
-
|
|
100
|
+
renderDeployCommands(stageName) {
|
|
103
101
|
return [
|
|
104
102
|
`npx projen deploy:${stageName}`,
|
|
105
103
|
];
|
|
106
104
|
}
|
|
107
|
-
|
|
105
|
+
renderDiffCommands(stageName) {
|
|
108
106
|
return [
|
|
109
107
|
`npx projen diff:${stageName}`,
|
|
110
108
|
];
|
|
@@ -273,4 +271,6 @@ ${appCode}
|
|
|
273
271
|
}
|
|
274
272
|
}
|
|
275
273
|
exports.CDKPipeline = CDKPipeline;
|
|
276
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBcUQ7QUFDckQsOENBQWtEO0FBQ2xELHNEQUEyRDtBQXVCM0Q7OztHQUdHO0FBQ0gsSUFBWSxjQU9YO0FBUEQsV0FBWSxjQUFjO0lBQ3hCLDRCQUE0QjtJQUM1Qix1REFBTSxDQUFBO0lBQ04sb0NBQW9DO0lBQ3BDLHVEQUFNLENBQUE7SUFDTiwyQ0FBMkM7SUFDM0MsaUJBQWlCO0FBQ25CLENBQUMsRUFQVyxjQUFjLDhCQUFkLGNBQWMsUUFPekI7QUFrRUQ7OztHQUdHO0FBQ0gsTUFBc0IsV0FBWSxTQUFRLGtCQUFTO0lBSWpELFlBQXNCLEdBQStCLEVBQVUsV0FBK0I7O1FBQzVGLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQURTLFFBQUcsR0FBSCxHQUFHLENBQTRCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBRzVGLCtCQUErQjtRQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FDakIseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQixZQUFZLENBQ2IsQ0FBQztRQUNGLG9CQUFvQjtRQUNwQixLQUFLO1FBRUwsSUFBSSxDQUFDLFdBQVcsR0FBRyxNQUFBLFdBQVcsQ0FBQyxXQUFXLG1DQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFFdkQsd0RBQXdEO1FBQ3hELE1BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQywwQ0FBRSxXQUFXLENBQUMsVUFBVSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3hGLE1BQUEsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQywwQ0FBRSxXQUFXLENBQUMsVUFBVSxJQUFJLENBQUMsR0FBRyxDQUFD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U0FDakQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNPLGtCQUFrQjtRQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRTtZQUNyQyxJQUFJLEVBQUUseURBQXlELElBQUksQ0FBQyxXQUFXLFVBQVU7U0FDMUYsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFO1lBQ25DLElBQUksRUFBRSxZQUFZLElBQUksQ0FBQyxXQUFXLFVBQVU7U0FDN0MsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUU7WUFDdEMsSUFBSSxFQUFFLGVBQWUsSUFBSSxDQUFDLFdBQVcsVUFBVTtTQUNoRCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sbUJBQW1CLENBQUMsS0FBc0I7UUFDbEQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsVUFBVSxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxFQUFFLGFBQWEsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxzREFBc0QsSUFBSSxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO1NBQ25JLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3pDLElBQUksRUFBRSxhQUFhLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sU0FBUyxJQUFJLENBQUMsV0FBVyxJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUU7U0FDdEYsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBclJELGtDQXFSQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVGV4dEZpbGUsIGF3c2NkayB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBQUk9KRU5fTUFSS0VSIH0gZnJvbSAncHJvamVuL2xpYi9jb21tb24nO1xuaW1wb3J0IHsgTm9kZVBhY2thZ2VNYW5hZ2VyIH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcblxuLyoqXG4gKiBUaGUgRW52aXJvbm1lbnQgaW50ZXJmYWNlIGlzIGRlc2lnbmVkIHRvIGhvbGQgQVdTIHJlbGF0ZWQgaW5mb3JtYXRpb25cbiAqIGZvciBhIHNwZWNpZmljIGRlcGxveW1lbnQgZW52aXJvbm1lbnQgd2l0aGluIHlvdXIgaW5mcmFzdHJ1Y3R1cmUuXG4gKiBFYWNoIGVudmlyb25tZW50IHJlcXVpcmVzIGEgc3BlY2lmaWMgYWNjb3VudCBhbmQgcmVnaW9uIGZvciBpdHMgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50IHtcbiAgLyoqXG4gICAqIFRoZSBBV1MgQWNjb3VudCBJRCBhc3NvY2lhdGVkIHdpdGggdGhlIGVudmlyb25tZW50LiBJdCdzIGltcG9ydGFudCBiZWNhdXNlXG4gICAqIGRpZmZlcmVudCBzZXJ2aWNlcyBvciBmZWF0dXJlcyBjb3VsZCBoYXZlIGRpc3RpbmN0IHBlcm1pc3Npb25zIGFuZCBzZXR0aW5nc1xuICAgKiBpbiBkaWZmZXJlbnQgYWNjb3VudHMuXG4gICAqL1xuICByZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgUmVnaW9uIGZvciB0aGUgZW52aXJvbm1lbnQuIFRoaXMgZGV0ZXJtaW5lcyB3aGVyZSB5b3VyIHJlc291cmNlc1xuICAgKiBhcmUgY3JlYXRlZCBhbmQgd2hlcmUgeW91ciBhcHBsaWNhdGlvbiB3aWxsIHJ1bi4gSXQgY2FuIGFmZmVjdCBsYXRlbmN5LFxuICAgKiBhdmFpbGFiaWxpdHksIGFuZCBwcmljaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIENJL0NEIHRvb2xpbmcgdXNlZCB0byBydW4geW91ciBwaXBlbGluZS5cbiAqIFRoZSBjb21wb25lbnQgd2lsbCByZW5kZXIgd29ya2Zsb3dzIGZvciB0aGUgZ2l2ZW4gc3lzdGVtXG4gKi9cbmV4cG9ydCBlbnVtIFBpcGVsaW5lRW5naW5lIHtcbiAgLyoqIENyZWF0ZSBHaXRIdWIgYWN0aW9ucyAqL1xuICBHSVRIVUIsXG4gIC8qKiBDcmVhdGUgYSAuZ2l0bGFiLWNpLnlhbWwgZmlsZSAqL1xuICBHSVRMQUIsXG4gIC8vIC8qKiBDcmVhdGUgQVdTIENvZGVDYXRhbHlzdCB3b3JrZmxvd3MgKi9cbiAgLy8gQ09ERV9DQVRBTFlTVCxcbn1cblxuLy8gLyoqXG4vLyAgKiBEZXNjcmliZXMgdGhlIHR5cGUgb2YgcGlwZWxpbmUgdGhhdCB3aWxsIGJlIGNyZWF0ZWRcbi8vICAqL1xuLy8gZXhwb3J0IGVudW0gRGVwbG95bWVudFR5cGUge1xuLy8gICAvKiogRGVwbG95IGV2ZXJ5IGNvbW1pdCBhcyBmYXIgYXMgcG9zc2libGU7IGhvcGVmdWxseSBpbnRvIHByb2R1Y3Rpb24gKi9cbi8vICAgQ09OVElOVU9VU19ERVBMT1lNRU5ULFxuLy8gICAvKiogQnVpbGQgZXZlcnkgY29tbWl0IGFuZCBwcmVwYXJlIGFsbCBhc3NldHMgZm9yIGEgbGF0ZXIgZGVwbG95bWVudCAqL1xuLy8gICBDT05USU5VT1VTX0RFTElWRVJZLFxuLy8gfVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveW1lbnRTdGFnZSB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZW52OiBFbnZpcm9ubWVudDtcbiAgcmVhZG9ubHkgbWFudWFsQXBwcm92YWw/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFRoZSBDREtQaXBlbGluZU9wdGlvbnMgaW50ZXJmYWNlIGlzIGRlc2lnbmVkIHRvIHByb3ZpZGUgY29uZmlndXJhdGlvblxuICogb3B0aW9ucyBmb3IgYSBDREsgKENsb3VkIERldmVsb3BtZW50IEtpdCkgcGlwZWxpbmUuIEl0IGFsbG93cyB0aGUgZGVmaW5pdGlvblxuICogb2Ygc2V0dGluZ3Mgc3VjaCBhcyB0aGUgc3RhY2sgcHJlZml4IGFuZCBwYWNrYWdlIG5hbWVzcGFjZSB0byBiZSB1c2VkIGluIHRoZVxuICogQVdTIHN0YWNrLCBhbG9uZyB3aXRoIHRoZSBlbnZpcm9ubWVudHMgY29uZmlndXJhdGlvbiB0byBiZSB1c2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENES1BpcGVsaW5lT3B0aW9ucyB7XG5cbiAgLyoqXG4gICAqIFRoaXMgZmllbGQgaXMgdXNlZCB0byBkZWZpbmUgYSBwcmVmaXggZm9yIHRoZSBBV1MgU3RhY2sgcmVzb3VyY2VzIGNyZWF0ZWRcbiAgICogZHVyaW5nIHRoZSBwaXBlbGluZSdzIG9wZXJhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgcHJvamVjdCBuYW1lXG4gICAqL1xuICByZWFkb25seSBzdGFja1ByZWZpeD86IHN0cmluZztcblxuICAvKipcbiAgICogVGhpcyBmaWVsZCBkZXRlcm1pbmVzIHRoZSBOUE0gbmFtZXNwYWNlIHRvIGJlIHVzZWQgd2hlbiBwYWNrYWdpbmcgQ0RLIGNsb3VkXG4gICAqIGFzc2VtYmxpZXMuIEEgbmFtZXNwYWNlIGhlbHBzIGdyb3VwIHJlbGF0ZWQgcmVzb3VyY2VzIHRvZ2V0aGVyLCBwcm92aWRpbmdcbiAgICogYmV0dGVyIG9yZ2FuaXphdGlvbiBhbmQgZWFzZSBvZiBtYW5hZ2VtZW50LlxuICAgKi9cbiAgcmVhZG9ubHkgcGtnTmFtZXNwYWNlOiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgc3RhZ2VzOiBEZXBsb3ltZW50U3RhZ2VbXTtcblxuICByZWFkb25seSBwZXJzb25hbFN0YWdlPzoge1xuICAgIHJlYWRvbmx5IGVudjogRW52aXJvbm1lbnQ7XG4gIH07XG5cbiAgcmVhZG9ubHkgZmVhdHVyZVN0YWdlcz86IHtcbiAgICByZWFkb25seSBlbnY6IEVudmlyb25tZW50O1xuICB9O1xuXG4gIC8vIC8qKlxuICAvLyAgKiBUaGlzIGZpZWxkIHNwZWNpZmllcyB0aGUgdHlwZSBvZiBwaXBlbGluZSB0byBjcmVhdGUuIElmIHNldCB0byBDT05USU5VT1VTX0RFUExPWU1FTlQsXG4gIC8vICAqIGV2ZXJ5IGNvbW1pdCBpcyBkZXBsb3llZCBhcyBmYXIgYXMgcG9zc2libGUsIGhvcGVmdWxseSBpbnRvIHByb2R1Y3Rpb24uIElmIHNldCB0b1xuICAvLyAgKiBDT05USU5VT1VTX0RFTElWRVJZLCBldmVyeSBjb21taXQgaXMgYnVpbHQgYW5kIGFsbCBhc3NldHMgYXJlIHByZXBhcmVkIGZvciBhIGxhdGVyIGRlcGxveW1lbnQuXG4gIC8vICAqXG4gIC8vICAqIEBkZWZhdWx0IENPTlRJTlVPVVNfREVMSVZFUllcbiAgLy8gICovXG4gIC8vIHJlYWRvbmx5IGRlcGxveW1lbnRUeXBlPzogRGVwbG95bWVudFR5cGU7XG5cbiAgcmVhZG9ubHkgcHJlSW5zdGFsbENvbW1hbmRzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IHByZVN5bnRoQ29tbWFuZHM/OiBzdHJpbmdbXTtcbiAgcmVhZG9ubHkgcG9zdFN5bnRoQ29tbWFuZHM/OiBzdHJpbmdbXTtcblxufVxuXG4vKipcbiAqIFRoZSBDREtQaXBlbGluZSBjbGFzcyBleHRlbmRzIHRoZSBDb21wb25lbnQgY2xhc3MgYW5kIHNldHMgdXAgdGhlIG5lY2Vzc2FyeSBjb25maWd1cmF0aW9uIGZvciBkZXBsb3lpbmcgQVdTIENESyAoQ2xvdWQgRGV2ZWxvcG1lbnQgS2l0KSBhcHBsaWNhdGlvbnMgYWNyb3NzIG11bHRpcGxlIHN0YWdlcy5cbiAqIEl0IGFsc28gbWFuYWdlcyB0YXNrcyBzdWNoIGFzIHB1Ymxpc2hpbmcgQ0RLIGFzc2V0cywgYnVtcGluZyB2ZXJzaW9uIGJhc2VkIG9uIGdpdCB0YWdzLCBhbmQgY2xlYW5pbmcgdXAgY29uZmxpY3RpbmcgdGFza3MuXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDREtQaXBlbGluZSBleHRlbmRzIENvbXBvbmVudCB7XG5cbiAgcHVibGljIHJlYWRvbmx5IHN0YWNrUHJlZml4OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIGFwcDogYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHAsIHByaXZhdGUgYmFzZU9wdGlvbnM6IENES1BpcGVsaW5lT3B0aW9ucykge1xuICAgIHN1cGVyKGFwcCk7XG5cbiAgICAvLyBBZGQgZGV2ZWxvcG1lbnQgZGVwZW5kZW5jaWVzXG4gICAgdGhpcy5hcHAuYWRkRGV2RGVwcyhcbiAgICAgICdAdHlwZXMvc3RhbmRhcmQtdmVyc2lvbicsXG4gICAgICAnc3RhbmRhcmQtdmVyc2lvbicsXG4gICAgICAnY2RrLWFzc2V0cycsXG4gICAgKTtcbiAgICAvLyB0aGlzLmFwcC5hZGREZXBzKFxuICAgIC8vICk7XG5cbiAgICB0aGlzLnN0YWNrUHJlZml4ID0gYmFzZU9wdGlvbnMuc3RhY2tQcmVmaXggPz8gYXBwLm5hbWU7XG5cbiAgICAvLyBSZW1vdmVzIHRoZSBjb21waWxlZCBjbG91ZCBhc3NlbWJseSBiZWZvcmUgZWFjaCBzeW50aFxuICAgIHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKCdzeW50aCcpPy5wcmVwZW5kRXhlYyhgcm0gLXJmICR7dGhpcy5hcHAuY2RrQ29uZmlnLmNka291dH1gKTtcbiAgICB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZCgnc3ludGg6c2lsZW50Jyk/LnByZXBlbmRFeGVjKGBybSAtcmYgJHt0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0fWApO1xuXG4gICAgLy8gUmVtb3ZlIHRhc2tzIHRoYXQgbWlnaHQgY29uZmxpY3Qgd2l0aCB0aGUgcGlwZWxpbmUgcHJvY2Vzc1xuICAgIHRoaXMucHJvamVjdC5yZW1vdmVUYXNrKCdkZXBsb3knKTtcbiAgICB0aGlzLnByb2plY3QucmVtb3ZlVGFzaygnZGlmZicpO1xuICAgIHRoaXMucHJvamVjdC5yZW1vdmVUYXNrKCdkZXN0cm95Jyk7XG4gICAgdGhpcy5wcm9qZWN0LnJlbW92ZVRhc2soJ3dhdGNoJyk7XG5cbiAgICAvLyBDcmVhdGVzIGRpZmZlcmVudCBkZXBsb3ltZW50IHN0YWdlc1xuICAgIGlmIChiYXNlT3B0aW9ucy5wZXJzb25hbFN0YWdlKSB7XG4gICAgICB0aGlzLmNyZWF0ZVBlcnNvbmFsU3RhZ2UoKTtcbiAgICB9XG4gICAgaWYgKGJhc2VPcHRpb25zLmZlYXR1cmVTdGFnZXMpIHtcbiAgICAgIHRoaXMuY3JlYXRlRmVhdHVyZVN0YWdlKCk7XG4gICAgfVxuICAgIGZvciAoY29uc3Qgc3RhZ2Ugb2YgYmFzZU9wdGlvbnMuc3RhZ2VzKSB7XG4gICAgICB0aGlzLmNyZWF0ZVBpcGVsaW5lU3RhZ2Uoc3RhZ2UpO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZXMgdGFza3MgdG8gaGFuZGxlIHRoZSByZWxlYXNlIHByb2Nlc3NcbiAgICB0aGlzLmNyZWF0ZVJlbGVhc2VUYXNrcygpO1xuXG4gICAgLy8gQ3JlYXRlcyBhIHNwZWNpYWxpemVkIENESyBBcHAgY2xhc3NcbiAgICB0aGlzLmNyZWF0ZUFwcGxpY2F0aW9uRW50cnlwb2ludCgpO1xuXG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0SW5zdGFsbENvbW1hbmRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4uKHRoaXMuYmFzZU9wdGlvbnMucHJlSW5zdGFsbENvbW1hbmRzID8/IFtdKSxcbiAgICAgIGBucHggcHJvamVuICR7dGhpcy5hcHAucGFja2FnZS5pbnN0YWxsQ2lUYXNrLm5hbWV9YCxcbiAgICBdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldEluc3RhbGxQYWNrYWdlQ29tbWFuZHMocGFja2FnZU5hbWU6IHN0cmluZywgcnVuUHJlSW5zdGFsbENvbW1hbmRzOiBib29sZWFuID0gZmFsc2UpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgY29tbWFuZHMgPSBydW5QcmVJbnN0YWxsQ29tbWFuZHMgPyB0aGlzLmJhc2VPcHRpb25zLnByZUluc3RhbGxDb21tYW5kcyA/PyBbXSA6IFtdO1xuXG4gICAgc3dpdGNoICh0aGlzLmFwcC5wYWNrYWdlLnBhY2thZ2VNYW5hZ2VyKSB7XG4gICAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5ZQVJOOlxuICAgICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTjI6XG4gICAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5ZQVJOX0JFUlJZOlxuICAgICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTl9DTEFTU0lDOlxuICAgICAgICBjb21tYW5kcy5wdXNoKGB5YXJuIGFkZCAke3BhY2thZ2VOYW1lfWApO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLk5QTTpcbiAgICAgICAgY29tbWFuZHMucHVzaChgbnBtIGluc3RhbGwgJHtwYWNrYWdlTmFtZX1gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGluc3RhbGwgc2NyaXB0cyBmb3IgcGFja2FnZU1hbmFnZXI6ICcgKyB0aGlzLmFwcC5wYWNrYWdlLnBhY2thZ2VNYW5hZ2VyKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbW1hbmRzO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFN5bnRoQ29tbWFuZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbXG4gICAgICAuLi50aGlzLmdldEluc3RhbGxDb21tYW5kcygpLFxuICAgICAgLi4uKHRoaXMuYmFzZU9wdGlvbnMucHJlU3ludGhDb21tYW5kcyA/PyBbXSksXG4gICAgICAnbnB4IHByb2plbiBidWlsZCcsXG4gICAgICAuLi4odGhpcy5iYXNlT3B0aW9ucy5wb3N0U3ludGhDb21tYW5kcyA/PyBbXSksXG4gICAgXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRBc3NldFVwbG9hZENvbW1hbmRzKG5lZWRzVmVyc2lvbmVkQXJ0aWZhY3RzOiBib29sZWFuKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbXG4gICAgICAuLi50aGlzLmdldEluc3RhbGxDb21tYW5kcygpLFxuICAgICAgJ25weCBwcm9qZW4gcHVibGlzaDphc3NldHMnLFxuICAgICAgLi4uKG5lZWRzVmVyc2lvbmVkQXJ0aWZhY3RzID8gW1xuICAgICAgICAnbnB4IHByb2plbiBidW1wJyxcbiAgICAgICAgJ25weCBwcm9qZW4gcmVsZWFzZTpwdXNoLWFzc2VtYmx5JyxcbiAgICAgIF0gOiBbXSksXG4gICAgXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREZXBsb3lDb21tYW5kcyhzdGFnZU5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAgYG5weCBwcm9qZW4gZGVwbG95OiR7c3RhZ2VOYW1lfWAsXG4gICAgXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREaWZmQ29tbWFuZHMoc3RhZ2VOYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIGBucHggcHJvamVuIGRpZmY6JHtzdGFnZU5hbWV9YCxcbiAgICBdO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIGdlbmVyYXRlcyB0aGUgZW50cnkgcG9pbnQgZm9yIHRoZSBhcHBsaWNhdGlvbiwgaW5jbHVkaW5nIGludGVyZmFjZXMgYW5kIGNsYXNzZXNcbiAgICogbmVjZXNzYXJ5IHRvIHNldCB1cCB0aGUgcGlwZWxpbmUgYW5kIGRlZmluZSB0aGUgQVdTIENESyBzdGFja3MgZm9yIGRpZmZlcmVudCBlbnZpcm9ubWVudHMuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlQXBwbGljYXRpb25FbnRyeXBvaW50KCkge1xuICAgIGxldCBwcm9wc0NvZGUgPSAnJztcbiAgICBsZXQgYXBwQ29kZSA9ICcnO1xuXG4gICAgaWYgKHRoaXMuYmFzZU9wdGlvbnMucGVyc29uYWxTdGFnZSkge1xuICAgICAgcHJvcHNDb2RlICs9IGAgIC8qKiBUaGlzIGZ1bmN0aW9uIHdpbGwgYmUgdXNlZCB0byBnZW5lcmF0ZSBhIHBlcnNvbmFsIHN0YWNrLiAqL1xuICBwcm92aWRlUGVyc29uYWxTdGFjazogKGFwcDogQXBwLCBzdGFja0lkOiBzdHJpbmcsIHByb3BzOiBQaXBlbGluZUFwcFN0YWNrUHJvcHMpID0+IFN0YWNrO1xuYDtcbiAgICAgIGFwcENvZGUgKz0gYCAgICAvLyBJZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgVVNFUiBpcyBzZXQgYW5kIGEgZnVuY3Rpb24gaXMgcHJvdmlkZWQgZm9yIGNyZWF0aW5nIGEgcGVyc29uYWwgc3RhY2ssIGl0IGlzIGNhbGxlZCB3aXRoIG5lY2Vzc2FyeSBhcmd1bWVudHMuXG4gICAgaWYgKHByb3BzLnByb3ZpZGVQZXJzb25hbFN0YWNrICYmIHByb2Nlc3MuZW52LlVTRVIpIHtcbiAgICAgIGNvbnN0IHN0YWdlTmFtZSA9ICdwZXJzb25hbC0nICsgcHJvY2Vzcy5lbnYuVVNFUi50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xcXFxcXC8vZywgJy0nKTtcbiAgICAgIHByb3BzLnByb3ZpZGVQZXJzb25hbFN0YWNrKHRoaXMsICcke3RoaXMuc3RhY2tQcmVmaXh9LXBlcnNvbmFsJywgeyBlbnY6ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5iYXNlT3B0aW9ucy5wZXJzb25hbFN0YWdlLmVudil9LCBzdGFja05hbWU6IFxcYCR7dGhpcy5zdGFja1ByZWZpeH0tXFwke3N0YWdlTmFtZX1cXGAsIHN0YWdlTmFtZSB9KTtcbiAgICB9XG5gO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmJhc2VPcHRpb25zLmZlYXR1cmVTdGFnZXMpIHtcbiAgICAgIHByb3BzQ29kZSArPSBgICAvKiogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHVzZWQgdG8gZ2VuZXJhdGUgYSBmZWF0dXJlIHN0YWNrLiAqL1xuICBwcm92aWRlRmVhdHVyZVN0YWNrOiAoYXBwOiBBcHAsIHN0YWNrSWQ6IHN0cmluZywgcHJvcHM6IFBpcGVsaW5lQXBwU3RhY2tQcm9wcykgPT4gU3RhY2s7XG5gO1xuICAgICAgYXBwQ29kZSArPSBgICAgIC8vIElmIHRoZSBlbnZpcm9ubWVudCB2YXJpYWJsZSBCUkFOQ0ggaXMgc2V0IGFuZCBhIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGZvciBjcmVhdGluZyBhIGZlYXR1cmUgc3RhY2ssIGl0IGlzIGNhbGxlZCB3aXRoIG5lY2Vzc2FyeSBhcmd1bWVudHMuXG4gICAgaWYgKHByb3BzLnByb3ZpZGVGZWF0dXJlU3RhY2sgJiYgcHJvY2Vzcy5lbnYuQlJBTkNIKSB7XG4gICAgICBjb25zdCBzdGFnZU5hbWUgPSAnZmVhdHVyZS0nICsgcHJvY2Vzcy5lbnYuQlJBTkNILnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxcXFxcLy9nLCAnLScpO1xuICAgICAgcHJvcHMucHJvdmlkZUZlYXR1cmVTdGFjayh0aGlzLCAnJHt0aGlzLnN0YWNrUHJlZml4fS1mZWF0dXJlJywgeyBlbnY6ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5iYXNlT3B0aW9ucy5mZWF0dXJlU3RhZ2VzLmVudil9LCBzdGFja05hbWU6IFxcYCR7dGhpcy5zdGFja1ByZWZpeH0tXFwke3N0YWdlTmFtZX1cXGAsIHN0YWdlTmFtZSB9KTtcbiAgICB9XG5gO1xuICAgIH1cblxuICAgIGZvciAoY29uc3Qgc3RhZ2Ugb2YgdGhpcy5iYXNlT3B0aW9ucy5zdGFnZXMpIHtcbiAgICAgIGNvbnN0IG5hbWVVcHBlckZpcnN0ID0gYCR7c3RhZ2UubmFtZS5jaGFyQXQoMCkudG9VcHBlckNhc2UoKX0ke3N0YWdlLm5hbWUuc3Vic3RyaW5nKDEpfWA7XG5cbiAgICAgIHByb3BzQ29kZSArPSBgICAvKiogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHVzZWQgdG8gZ2VuZXJhdGUgYSAke3N0YWdlLm5hbWV9IHN0YWNrLiAqL1xuICBwcm92aWRlJHtuYW1lVXBwZXJGaXJzdH1TdGFjazogKGFwcDogQXBwLCBzdGFja0lkOiBzdHJpbmcsIHByb3BzOiBQaXBlbGluZUFwcFN0YWNrUHJvcHMpID0+IFN0YWNrO1xuYDtcbiAgICAgIGFwcENvZGUgKz0gYCAgICAvLyBJZiBhIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGZvciBjcmVhdGluZyBhICR7c3RhZ2UubmFtZX0gc3RhY2ssIGl0IGlzIGNhbGxlZCB3aXRoIG5lY2Vzc2FyeSBhcmd1bWVudHMuXG4gICAgaWYgKHByb3BzLnByb3ZpZGUke25hbWVVcHBlckZpcnN0fVN0YWNrKSB7XG4gICAgICBwcm9wcy5wcm92aWRlJHtuYW1lVXBwZXJGaXJzdH1TdGFjayh0aGlzLCAnJHt0aGlzLnN0YWNrUHJlZml4fS0ke3N0YWdlLm5hbWV9JywgeyBlbnY6ICR7SlNPTi5zdHJpbmdpZnkoc3RhZ2UuZW52KX0sIHN0YWNrTmFtZTogJyR7dGhpcy5zdGFja1ByZWZpeH0tJHtzdGFnZS5uYW1lfScsIHN0YWdlTmFtZTogJyR7c3RhZ2UubmFtZX0nIH0pO1xuICAgIH1cbmA7XG4gICAgfVxuXG4gICAgY29uc3QgYXBwRmlsZSA9IG5ldyBUZXh0RmlsZSh0aGlzLnByb2plY3QsIGAke3RoaXMuYXBwLnNyY2Rpcn0vYXBwLnRzYCk7XG4gICAgYXBwRmlsZS5hZGRMaW5lKGAvLyAke1BST0pFTl9NQVJLRVJ9XG4vKiBlc2xpbnQtZGlzYWJsZSAqL1xuaW1wb3J0IHsgQXBwLCBBcHBQcm9wcywgU3RhY2ssIFN0YWNrUHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbi8qKlxuICogUGlwZWxpbmVBcHBQcm9wcyBpcyBhbiBleHRlbnNpb24gb2YgQXBwUHJvcHMsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIEFXUyBDREsgY29yZS5cbiAqIEl0IGluY2x1ZGVzIG9wdGlvbmFsIGZ1bmN0aW9ucyB0byBwcm92aWRlIEFXUyBTdGFja3MgZm9yIGRpZmZlcmVudCBzdGFnZXMuXG4gKlxuICogVXNlIHRoZXNlIGZ1bmN0aW9ucyB0byBpbnN0YW50aWF0ZSB5b3VyIGFwcGxpY2F0aW9uIHN0YWNrcyB3aXRoIHRoZSBwYXJhbWV0ZXJzIGZvclxuICogZWFjaCBzdGFnZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVsaW5lQXBwUHJvcHMgZXh0ZW5kcyBBcHBQcm9wcyB7XG4ke3Byb3BzQ29kZX1cbn1cblxuLyoqXG4gKiBQaXBlbGluZUFwcFN0YWNrUHJvcHMgaXMgYW4gZXh0ZW5zaW9uIG9mIFN0YWNrUHJvcHMsIHdoaWNoIGlzIHBhcnQgb2YgdGhlIEFXUyBDREsgY29yZS5cbiAqIEl0IGluY2x1ZGVzIGFuIGFkZGl0aW9uYWwgcHJvcGVydHkgdG8gc3BlY2lmeSB0aGUgc3RhZ2UgbmFtZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUFwcFN0YWNrUHJvcHMgZXh0ZW5kcyBTdGFja1Byb3BzIHtcbiAgc3RhZ2VOYW1lOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIFBpcGVsaW5lQXBwIGNsYXNzIGV4dGVuZHMgdGhlIEFwcCBjbGFzcyBmcm9tIEFXUyBDREsgYW5kIG92ZXJyaWRlcyB0aGUgY29uc3RydWN0b3IgdG8gc3VwcG9ydFxuICogZGlmZmVyZW50IHN0YWdlcyBvZiB0aGUgYXBwbGljYXRpb24gKGRldmVsb3BtZW50LCBwcm9kdWN0aW9uLCBwZXJzb25hbCwgZmVhdHVyZSkgYnkgaW52b2tpbmcgdGhlIHByb3ZpZGVkXG4gKiBzdGFjay1wcm92aWRpbmcgZnVuY3Rpb25zIGZyb20gdGhlIHByb3BzLlxuICovXG5leHBvcnQgY2xhc3MgUGlwZWxpbmVBcHAgZXh0ZW5kcyBBcHAge1xuICBjb25zdHJ1Y3Rvcihwcm9wczogUGlwZWxpbmVBcHBQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuJHthcHBDb2RlfVxuXG4gIH1cbn1cbmApO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHNldHMgdXAgdGFza3MgdG8gcHVibGlzaCBDREsgYXNzZXRzIHRvIGFsbCBhY2NvdW50cyBhbmQgaGFuZGxlIHZlcnNpb25pbmcsIGluY2x1ZGluZyBidW1waW5nIHRoZSB2ZXJzaW9uXG4gICAqIGJhc2VkIG9uIHRoZSBsYXRlc3QgZ2l0IHRhZyBhbmQgcHVzaGluZyB0aGUgQ0RLIGFzc2VtYmx5IHRvIHRoZSBwYWNrYWdlIHJlcG9zaXRvcnkuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlUmVsZWFzZVRhc2tzKCkge1xuICAgIC8vIFRhc2sgdG8gcHVibGlzaCB0aGUgQ0RLIGFzc2V0cyB0byBhbGwgYWNjb3VudHNcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygncHVibGlzaDphc3NldHMnLCB7XG4gICAgICBzdGVwczogdGhpcy5iYXNlT3B0aW9ucy5zdGFnZXMubWFwKHN0YWdlID0+ICh7XG4gICAgICAgIGV4ZWM6IGBucHggY2RrLWFzc2V0cyAtcCAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9LyR7dGhpcy5zdGFja1ByZWZpeH0tJHtzdGFnZS5uYW1lfS5hc3NldHMuanNvbiBwdWJsaXNoYCxcbiAgICAgIH0pKSxcbiAgICB9KTtcblxuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKCdidW1wJywge1xuICAgICAgZGVzY3JpcHRpb246ICdCdW1wcyB2ZXJzaW9uIGJhc2VkIG9uIGxhdGVzdCBnaXQgdGFnJyxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBleGVjOiAncGlwZWxpbmVzLXJlbGVhc2UgYnVtcCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBleGVjOiAnZ2l0IHB1c2ggLS10YWdzJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ3JlbGVhc2U6cHVzaC1hc3NlbWJseScsIHtcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBleGVjOiBgcGlwZWxpbmVzLXJlbGVhc2UgY3JlYXRlLW1hbmlmZXN0IFwiJHt0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0fVwiICBcIiR7dGhpcy5iYXNlT3B0aW9ucy5wa2dOYW1lc3BhY2V9XCJgLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY3dkOiB0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0LFxuICAgICAgICAgIGV4ZWM6ICducG0gdmVyc2lvbiAtLW5vLWdpdC10YWctdmVyc2lvbiBmcm9tLWdpdCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjd2Q6IHRoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXQsXG4gICAgICAgICAgZXhlYzogJ25wbSBwdWJsaXNoJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2Qgc2V0cyB1cCB0YXNrcyBmb3IgdGhlIHBlcnNvbmFsIGRlcGxveW1lbnQgc3RhZ2UsIGluY2x1ZGluZyBkZXBsb3ltZW50LCB3YXRjaGluZyBmb3IgY2hhbmdlcyxcbiAgICogY29tcGFyaW5nIGNoYW5nZXMgKGRpZmYpLCBhbmQgZGVzdHJveWluZyB0aGUgc3RhY2sgd2hlbiBubyBsb25nZXIgbmVlZGVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVBlcnNvbmFsU3RhZ2UoKSB7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ2RlcGxveTpwZXJzb25hbCcsIHtcbiAgICAgIGV4ZWM6IGBjZGsgZGVwbG95ICR7dGhpcy5zdGFja1ByZWZpeH0tcGVyc29uYWxgLFxuICAgIH0pO1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKCd3YXRjaDpwZXJzb25hbCcsIHtcbiAgICAgIGV4ZWM6IGBjZGsgZGVwbG95IC0td2F0Y2ggLS1ob3Rzd2FwICR7dGhpcy5zdGFja1ByZWZpeH0tcGVyc29uYWxgLFxuICAgIH0pO1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKCdkaWZmOnBlcnNvbmFsJywge1xuICAgICAgZXhlYzogYGNkayBkaWZmICR7dGhpcy5zdGFja1ByZWZpeH0tcGVyc29uYWxgLFxuICAgIH0pO1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKCdkZXN0cm95OnBlcnNvbmFsJywge1xuICAgICAgZXhlYzogYGNkayBkZXN0cm95ICR7dGhpcy5zdGFja1ByZWZpeH0tcGVyc29uYWxgLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHNldHMgdXAgdGFza3MgZm9yIHRoZSBmZWF0dXJlIGRlcGxveW1lbnQgc3RhZ2UsIGluY2x1ZGluZyBkZXBsb3ltZW50LCBjb21wYXJpbmcgY2hhbmdlcyAoZGlmZiksXG4gICAqIGFuZCBkZXN0cm95aW5nIHRoZSBzdGFjayB3aGVuIG5vIGxvbmdlciBuZWVkZWQuXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlRmVhdHVyZVN0YWdlKCkge1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKCdkZXBsb3k6ZmVhdHVyZScsIHtcbiAgICAgIGV4ZWM6IGBjZGsgLS1wcm9ncmVzcyBldmVudHMgLS1yZXF1aXJlLWFwcHJvdmFsIG5ldmVyIGRlcGxveSAke3RoaXMuc3RhY2tQcmVmaXh9LWZlYXR1cmVgLFxuICAgIH0pO1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKCdkaWZmOmZlYXR1cmUnLCB7XG4gICAgICBleGVjOiBgY2RrIGRpZmYgJHt0aGlzLnN0YWNrUHJlZml4fS1mZWF0dXJlYCxcbiAgICB9KTtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygnZGVzdHJveTpmZWF0dXJlJywge1xuICAgICAgZXhlYzogYGNkayBkZXN0cm95ICR7dGhpcy5zdGFja1ByZWZpeH0tZmVhdHVyZWAsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogVGhpcyBtZXRob2Qgc2V0cyB1cCB0YXNrcyBmb3IgdGhlIGdlbmVyYWwgcGlwZWxpbmUgc3RhZ2VzIChkZXYsIHByb2QpLCBpbmNsdWRpbmcgZGVwbG95bWVudCBhbmQgY29tcGFyaW5nIGNoYW5nZXMgKGRpZmYpLlxuICAgKiBAcGFyYW0ge0RlcGxveVN0YWdlT3B0aW9uc30gc3RhZ2UgLSBUaGUgc3RhZ2UgdG8gY3JlYXRlXG4gICAqL1xuICBwcm90ZWN0ZWQgY3JlYXRlUGlwZWxpbmVTdGFnZShzdGFnZTogRGVwbG95bWVudFN0YWdlKSB7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soYGRlcGxveToke3N0YWdlLm5hbWV9YCwge1xuICAgICAgZXhlYzogYGNkayAtLWFwcCAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9IC0tcHJvZ3Jlc3MgZXZlbnRzIC0tcmVxdWlyZS1hcHByb3ZhbCBuZXZlciBkZXBsb3kgJHt0aGlzLnN0YWNrUHJlZml4fS0ke3N0YWdlLm5hbWV9YCxcbiAgICB9KTtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzayhgZGlmZjoke3N0YWdlLm5hbWV9YCwge1xuICAgICAgZXhlYzogYGNkayAtLWFwcCAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9IGRpZmYgJHt0aGlzLnN0YWNrUHJlZml4fS0ke3N0YWdlLm5hbWV9YCxcbiAgICB9KTtcbiAgfVxufSJdfQ==
|
|
274
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
275
|
+
CDKPipeline[_a] = { fqn: "projen-pipelines.CDKPipeline", version: "0.0.29" };
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9hd3NjZGsvYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFxRDtBQUNyRCw4Q0FBa0Q7QUFDbEQsc0RBQTJEO0FBdUIzRDs7O0dBR0c7QUFDSCxJQUFZLGNBT1g7QUFQRCxXQUFZLGNBQWM7SUFDeEIsNEJBQTRCO0lBQzVCLHVEQUFNLENBQUE7SUFDTixvQ0FBb0M7SUFDcEMsdURBQU0sQ0FBQTtJQUNOLDJDQUEyQztJQUMzQyxpQkFBaUI7QUFDbkIsQ0FBQyxFQVBXLGNBQWMsR0FBZCxzQkFBYyxLQUFkLHNCQUFjLFFBT3pCO0FBa0VEOzs7R0FHRztBQUNILE1BQXNCLFdBQVksU0FBUSxrQkFBUztJQUlqRCxZQUFzQixHQUErQixFQUFVLFdBQStCO1FBQzVGLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQURTLFFBQUcsR0FBSCxHQUFHLENBQTRCO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBRzVGLCtCQUErQjtRQUMvQixJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FDakIseUJBQXlCLEVBQ3pCLGtCQUFrQixFQUNsQixZQUFZLENBQ2IsQ0FBQztRQUNGLG9CQUFvQjtRQUNwQixLQUFLO1FBRUwsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsV0FBVyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFFdkQsd0RBQXdEO1FBQ3hELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxXQUFXLENBQUMsVUFBVSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsRUFBRSxXQUFXLENBQUMsVUFBVSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMs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ckMsSUFBSSxFQUFFLHlEQUF5RCxJQUFJLENBQUMsV0FBVyxVQUFVO1NBQzFGLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRTtZQUNuQyxJQUFJLEVBQUUsWUFBWSxJQUFJLENBQUMsV0FBVyxVQUFVO1NBQzdDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFO1lBQ3RDLElBQUksRUFBRSxlQUFlLElBQUksQ0FBQyxXQUFXLFVBQVU7U0FDaEQsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7T0FHRztJQUNPLG1CQUFtQixDQUFDLEtBQXNCO1FBQ2xELElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFVBQVUsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQzNDLElBQUksRUFBRSxhQUFhLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sc0RBQXNELElBQUksQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLElBQUksRUFBRTtTQUNuSSxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN6QyxJQUFJLEVBQUUsYUFBYSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxNQUFNLFNBQVMsSUFBSSxDQUFDLFdBQVcsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO1NBQ3RGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBcFJILGtDQXFSQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVGV4dEZpbGUsIGF3c2NkayB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBQUk9KRU5fTUFSS0VSIH0gZnJvbSAncHJvamVuL2xpYi9jb21tb24nO1xuaW1wb3J0IHsgTm9kZVBhY2thZ2VNYW5hZ2VyIH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcblxuLyoqXG4gKiBUaGUgRW52aXJvbm1lbnQgaW50ZXJmYWNlIGlzIGRlc2lnbmVkIHRvIGhvbGQgQVdTIHJlbGF0ZWQgaW5mb3JtYXRpb25cbiAqIGZvciBhIHNwZWNpZmljIGRlcGxveW1lbnQgZW52aXJvbm1lbnQgd2l0aGluIHlvdXIgaW5mcmFzdHJ1Y3R1cmUuXG4gKiBFYWNoIGVudmlyb25tZW50IHJlcXVpcmVzIGEgc3BlY2lmaWMgYWNjb3VudCBhbmQgcmVnaW9uIGZvciBpdHMgcmVzb3VyY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50IHtcbiAgLyoqXG4gICAqIFRoZSBBV1MgQWNjb3VudCBJRCBhc3NvY2lhdGVkIHdpdGggdGhlIGVudmlyb25tZW50LiBJdCdzIGltcG9ydGFudCBiZWNhdXNlXG4gICAqIGRpZmZlcmVudCBzZXJ2aWNlcyBvciBmZWF0dXJlcyBjb3VsZCBoYXZlIGRpc3RpbmN0IHBlcm1pc3Npb25zIGFuZCBzZXR0aW5nc1xuICAgKiBpbiBkaWZmZXJlbnQgYWNjb3VudHMuXG4gICAqL1xuICByZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgUmVnaW9uIGZvciB0aGUgZW52aXJvbm1lbnQuIFRoaXMgZGV0ZXJtaW5lcyB3aGVyZSB5b3VyIHJlc291cmNlc1xuICAgKiBhcmUgY3JlYXRlZCBhbmQgd2hlcmUgeW91ciBhcHBsaWNhdGlvbiB3aWxsIHJ1bi4gSXQgY2FuIGFmZmVjdCBsYXRlbmN5LFxuICAgKiBhdmFpbGFiaWxpdHksIGFuZCBwcmljaW5nLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIENJL0NEIHRvb2xpbmcgdXNlZCB0byBydW4geW91ciBwaXBlbGluZS5cbiAqIFRoZSBjb21wb25lbnQgd2lsbCByZW5kZXIgd29ya2Zsb3dzIGZvciB0aGUgZ2l2ZW4gc3lzdGVtXG4gKi9cbmV4cG9ydCBlbnVtIFBpcGVsaW5lRW5naW5lIHtcbiAgLyoqIENyZWF0ZSBHaXRIdWIgYWN0aW9ucyAqL1xuICBHSVRIVUIsXG4gIC8qKiBDcmVhdGUgYSAuZ2l0bGFiLWNpLnlhbWwgZmlsZSAqL1xuICBHSVRMQUIsXG4gIC8vIC8qKiBDcmVhdGUgQVdTIENvZGVDYXRhbHlzdCB3b3JrZmxvd3MgKi9cbiAgLy8gQ09ERV9DQVRBTFlTVCxcbn1cblxuLy8gLyoqXG4vLyAgKiBEZXNjcmliZXMgdGhlIHR5cGUgb2YgcGlwZWxpbmUgdGhhdCB3aWxsIGJlIGNyZWF0ZWRcbi8vICAqL1xuLy8gZXhwb3J0IGVudW0gRGVwbG95bWVudFR5cGUge1xuLy8gICAvKiogRGVwbG95IGV2ZXJ5IGNvbW1pdCBhcyBmYXIgYXMgcG9zc2libGU7IGhvcGVmdWxseSBpbnRvIHByb2R1Y3Rpb24gKi9cbi8vICAgQ09OVElOVU9VU19ERVBMT1lNRU5ULFxuLy8gICAvKiogQnVpbGQgZXZlcnkgY29tbWl0IGFuZCBwcmVwYXJlIGFsbCBhc3NldHMgZm9yIGEgbGF0ZXIgZGVwbG95bWVudCAqL1xuLy8gICBDT05USU5VT1VTX0RFTElWRVJZLFxuLy8gfVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveW1lbnRTdGFnZSB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZW52OiBFbnZpcm9ubWVudDtcbiAgcmVhZG9ubHkgbWFudWFsQXBwcm92YWw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWdlT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGVudjogRW52aXJvbm1lbnQ7XG59XG5cbi8qKlxuICogVGhlIENES1BpcGVsaW5lT3B0aW9ucyBpbnRlcmZhY2UgaXMgZGVzaWduZWQgdG8gcHJvdmlkZSBjb25maWd1cmF0aW9uXG4gKiBvcHRpb25zIGZvciBhIENESyAoQ2xvdWQgRGV2ZWxvcG1lbnQgS2l0KSBwaXBlbGluZS4gSXQgYWxsb3dzIHRoZSBkZWZpbml0aW9uXG4gKiBvZiBzZXR0aW5ncyBzdWNoIGFzIHRoZSBzdGFjayBwcmVmaXggYW5kIHBhY2thZ2UgbmFtZXNwYWNlIHRvIGJlIHVzZWQgaW4gdGhlXG4gKiBBV1Mgc3RhY2ssIGFsb25nIHdpdGggdGhlIGVudmlyb25tZW50cyBjb25maWd1cmF0aW9uIHRvIGJlIHVzZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ0RLUGlwZWxpbmVPcHRpb25zIHtcblxuICAvKipcbiAgICogVGhpcyBmaWVsZCBpcyB1c2VkIHRvIGRlZmluZSBhIHByZWZpeCBmb3IgdGhlIEFXUyBTdGFjayByZXNvdXJjZXMgY3JlYXRlZFxuICAgKiBkdXJpbmcgdGhlIHBpcGVsaW5lJ3Mgb3BlcmF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBwcm9qZWN0IG5hbWVcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrUHJlZml4Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGlzIGZpZWxkIGRldGVybWluZXMgdGhlIE5QTSBuYW1lc3BhY2UgdG8gYmUgdXNlZCB3aGVuIHBhY2thZ2luZyBDREsgY2xvdWRcbiAgICogYXNzZW1ibGllcy4gQSBuYW1lc3BhY2UgaGVscHMgZ3JvdXAgcmVsYXRlZCByZXNvdXJjZXMgdG9nZXRoZXIsIHByb3ZpZGluZ1xuICAgKiBiZXR0ZXIgb3JnYW5pemF0aW9uIGFuZCBlYXNlIG9mIG1hbmFnZW1lbnQuXG4gICAqL1xuICByZWFkb25seSBwa2dOYW1lc3BhY2U6IHN0cmluZztcblxuICByZWFkb25seSBzdGFnZXM6IERlcGxveW1lbnRTdGFnZVtdO1xuXG4gIHJlYWRvbmx5IHBlcnNvbmFsU3RhZ2U/OiBTdGFnZU9wdGlvbnM7XG5cbiAgcmVhZG9ubHkgZmVhdHVyZVN0YWdlcz86IFN0YWdlT3B0aW9ucztcblxuICAvLyAvKipcbiAgLy8gICogVGhpcyBmaWVsZCBzcGVjaWZpZXMgdGhlIHR5cGUgb2YgcGlwZWxpbmUgdG8gY3JlYXRlLiBJZiBzZXQgdG8gQ09OVElOVU9VU19ERVBMT1lNRU5ULFxuICAvLyAgKiBldmVyeSBjb21taXQgaXMgZGVwbG95ZWQgYXMgZmFyIGFzIHBvc3NpYmxlLCBob3BlZnVsbHkgaW50byBwcm9kdWN0aW9uLiBJZiBzZXQgdG9cbiAgLy8gICogQ09OVElOVU9VU19ERUxJVkVSWSwgZXZlcnkgY29tbWl0IGlzIGJ1aWx0IGFuZCBhbGwgYXNzZXRzIGFyZSBwcmVwYXJlZCBmb3IgYSBsYXRlciBkZXBsb3ltZW50LlxuICAvLyAgKlxuICAvLyAgKiBAZGVmYXVsdCBDT05USU5VT1VTX0RFTElWRVJZXG4gIC8vICAqL1xuICAvLyByZWFkb25seSBkZXBsb3ltZW50VHlwZT86IERlcGxveW1lbnRUeXBlO1xuXG4gIHJlYWRvbmx5IHByZUluc3RhbGxDb21tYW5kcz86IHN0cmluZ1tdO1xuICByZWFkb25seSBwcmVTeW50aENvbW1hbmRzPzogc3RyaW5nW107XG4gIHJlYWRvbmx5IHBvc3RTeW50aENvbW1hbmRzPzogc3RyaW5nW107XG5cbn1cblxuLyoqXG4gKiBUaGUgQ0RLUGlwZWxpbmUgY2xhc3MgZXh0ZW5kcyB0aGUgQ29tcG9uZW50IGNsYXNzIGFuZCBzZXRzIHVwIHRoZSBuZWNlc3NhcnkgY29uZmlndXJhdGlvbiBmb3IgZGVwbG95aW5nIEFXUyBDREsgKENsb3VkIERldmVsb3BtZW50IEtpdCkgYXBwbGljYXRpb25zIGFjcm9zcyBtdWx0aXBsZSBzdGFnZXMuXG4gKiBJdCBhbHNvIG1hbmFnZXMgdGFza3Mgc3VjaCBhcyBwdWJsaXNoaW5nIENESyBhc3NldHMsIGJ1bXBpbmcgdmVyc2lvbiBiYXNlZCBvbiBnaXQgdGFncywgYW5kIGNsZWFuaW5nIHVwIGNvbmZsaWN0aW5nIHRhc2tzLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ0RLUGlwZWxpbmUgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIHB1YmxpYyByZWFkb25seSBzdGFja1ByZWZpeDogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBhcHA6IGF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwLCBwcml2YXRlIGJhc2VPcHRpb25zOiBDREtQaXBlbGluZU9wdGlvbnMpIHtcbiAgICBzdXBlcihhcHApO1xuXG4gICAgLy8gQWRkIGRldmVsb3BtZW50IGRlcGVuZGVuY2llc1xuICAgIHRoaXMuYXBwLmFkZERldkRlcHMoXG4gICAgICAnQHR5cGVzL3N0YW5kYXJkLXZlcnNpb24nLFxuICAgICAgJ3N0YW5kYXJkLXZlcnNpb24nLFxuICAgICAgJ2Nkay1hc3NldHMnLFxuICAgICk7XG4gICAgLy8gdGhpcy5hcHAuYWRkRGVwcyhcbiAgICAvLyApO1xuXG4gICAgdGhpcy5zdGFja1ByZWZpeCA9IGJhc2VPcHRpb25zLnN0YWNrUHJlZml4ID8/IGFwcC5uYW1lO1xuXG4gICAgLy8gUmVtb3ZlcyB0aGUgY29tcGlsZWQgY2xvdWQgYXNzZW1ibHkgYmVmb3JlIGVhY2ggc3ludGhcbiAgICB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZCgnc3ludGgnKT8ucHJlcGVuZEV4ZWMoYHJtIC1yZiAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9YCk7XG4gICAgdGhpcy5wcm9qZWN0LnRhc2tzLnRyeUZpbmQoJ3N5bnRoOnNpbGVudCcpPy5wcmVwZW5kRXhlYyhgcm0gLXJmICR7dGhpcy5hcHAuY2RrQ29uZmlnLmNka291dH1gKTtcblxuICAgIC8vIFJlbW92ZSB0YXNrcyB0aGF0IG1pZ2h0IGNvbmZsaWN0IHdpdGggdGhlIHBpcGVsaW5lIHByb2Nlc3NcbiAgICB0aGlzLnByb2plY3QucmVtb3ZlVGFzaygnZGVwbG95Jyk7XG4gICAgdGhpcy5wcm9qZWN0LnJlbW92ZVRhc2soJ2RpZmYnKTtcbiAgICB0aGlzLnByb2plY3QucmVtb3ZlVGFzaygnZGVzdHJveScpO1xuICAgIHRoaXMucHJvamVjdC5yZW1vdmVUYXNrKCd3YXRjaCcpO1xuXG4gICAgLy8gQ3JlYXRlcyBkaWZmZXJlbnQgZGVwbG95bWVudCBzdGFnZXNcbiAgICBpZiAoYmFzZU9wdGlvbnMucGVyc29uYWxTdGFnZSkge1xuICAgICAgdGhpcy5jcmVhdGVQZXJzb25hbFN0YWdlKCk7XG4gICAgfVxuICAgIGlmIChiYXNlT3B0aW9ucy5mZWF0dXJlU3RhZ2VzKSB7XG4gICAgICB0aGlzLmNyZWF0ZUZlYXR1cmVTdGFnZSgpO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHN0YWdlIG9mIGJhc2VPcHRpb25zLnN0YWdlcykge1xuICAgICAgdGhpcy5jcmVhdGVQaXBlbGluZVN0YWdlKHN0YWdlKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGVzIHRhc2tzIHRvIGhhbmRsZSB0aGUgcmVsZWFzZSBwcm9jZXNzXG4gICAgdGhpcy5jcmVhdGVSZWxlYXNlVGFza3MoKTtcblxuICAgIC8vIENyZWF0ZXMgYSBzcGVjaWFsaXplZCBDREsgQXBwIGNsYXNzXG4gICAgdGhpcy5jcmVhdGVBcHBsaWNhdGlvbkVudHJ5cG9pbnQoKTtcblxuICB9XG5cbiAgcHJvdGVjdGVkIHJlbmRlckluc3RhbGxDb21tYW5kcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLih0aGlzLmJhc2VPcHRpb25zLnByZUluc3RhbGxDb21tYW5kcyA/PyBbXSksXG4gICAgICBgbnB4IHByb2plbiAke3RoaXMuYXBwLnBhY2thZ2UuaW5zdGFsbENpVGFzay5uYW1lfWAsXG4gICAgXTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJJbnN0YWxsUGFja2FnZUNvbW1hbmRzKHBhY2thZ2VOYW1lOiBzdHJpbmcsIHJ1blByZUluc3RhbGxDb21tYW5kczogYm9vbGVhbiA9IGZhbHNlKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGNvbW1hbmRzID0gcnVuUHJlSW5zdGFsbENvbW1hbmRzID8gdGhpcy5iYXNlT3B0aW9ucy5wcmVJbnN0YWxsQ29tbWFuZHMgPz8gW10gOiBbXTtcblxuICAgIHN3aXRjaCAodGhpcy5hcHAucGFja2FnZS5wYWNrYWdlTWFuYWdlcikge1xuICAgICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTjpcbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLllBUk4yOlxuICAgICAgY2FzZSBOb2RlUGFja2FnZU1hbmFnZXIuWUFSTl9CRVJSWTpcbiAgICAgIGNhc2UgTm9kZVBhY2thZ2VNYW5hZ2VyLllBUk5fQ0xBU1NJQzpcbiAgICAgICAgY29tbWFuZHMucHVzaChgeWFybiBhZGQgJHtwYWNrYWdlTmFtZX1gKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIE5vZGVQYWNrYWdlTWFuYWdlci5OUE06XG4gICAgICAgIGNvbW1hbmRzLnB1c2goYG5wbSBpbnN0YWxsICR7cGFja2FnZU5hbWV9YCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBpbnN0YWxsIHNjcmlwdHMgZm9yIHBhY2thZ2VNYW5hZ2VyOiAnICsgdGhpcy5hcHAucGFja2FnZS5wYWNrYWdlTWFuYWdlcik7XG4gICAgfVxuICAgIHJldHVybiBjb21tYW5kcztcbiAgfVxuXG4gIHByb3RlY3RlZCByZW5kZXJTeW50aENvbW1hbmRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4udGhpcy5yZW5kZXJJbnN0YWxsQ29tbWFuZHMoKSxcbiAgICAgIC4uLih0aGlzLmJhc2VPcHRpb25zLnByZVN5bnRoQ29tbWFuZHMgPz8gW10pLFxuICAgICAgJ25weCBwcm9qZW4gYnVpbGQnLFxuICAgICAgLi4uKHRoaXMuYmFzZU9wdGlvbnMucG9zdFN5bnRoQ29tbWFuZHMgPz8gW10pLFxuICAgIF07XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0QXNzZXRVcGxvYWRDb21tYW5kcyhuZWVkc1ZlcnNpb25lZEFydGlmYWN0czogYm9vbGVhbik6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4udGhpcy5yZW5kZXJJbnN0YWxsQ29tbWFuZHMoKSxcbiAgICAgICducHggcHJvamVuIHB1Ymxpc2g6YXNzZXRzJyxcbiAgICAgIC4uLihuZWVkc1ZlcnNpb25lZEFydGlmYWN0cyA/IFtcbiAgICAgICAgJ25weCBwcm9qZW4gYnVtcCcsXG4gICAgICAgICducHggcHJvamVuIHJlbGVhc2U6cHVzaC1hc3NlbWJseScsXG4gICAgICBdIDogW10pLFxuICAgIF07XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVyRGVwbG95Q29tbWFuZHMoc3RhZ2VOYW1lOiBzdHJpbmcpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIGBucHggcHJvamVuIGRlcGxveToke3N0YWdlTmFtZX1gLFxuICAgIF07XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVuZGVyRGlmZkNvbW1hbmRzKHN0YWdlTmFtZTogc3RyaW5nKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbXG4gICAgICBgbnB4IHByb2plbiBkaWZmOiR7c3RhZ2VOYW1lfWAsXG4gICAgXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBnZW5lcmF0ZXMgdGhlIGVudHJ5IHBvaW50IGZvciB0aGUgYXBwbGljYXRpb24sIGluY2x1ZGluZyBpbnRlcmZhY2VzIGFuZCBjbGFzc2VzXG4gICAqIG5lY2Vzc2FyeSB0byBzZXQgdXAgdGhlIHBpcGVsaW5lIGFuZCBkZWZpbmUgdGhlIEFXUyBDREsgc3RhY2tzIGZvciBkaWZmZXJlbnQgZW52aXJvbm1lbnRzLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUFwcGxpY2F0aW9uRW50cnlwb2ludCgpIHtcbiAgICBsZXQgcHJvcHNDb2RlID0gJyc7XG4gICAgbGV0IGFwcENvZGUgPSAnJztcblxuICAgIGlmICh0aGlzLmJhc2VPcHRpb25zLnBlcnNvbmFsU3RhZ2UpIHtcbiAgICAgIHByb3BzQ29kZSArPSBgICAvKiogVGhpcyBmdW5jdGlvbiB3aWxsIGJlIHVzZWQgdG8gZ2VuZXJhdGUgYSBwZXJzb25hbCBzdGFjay4gKi9cbiAgcHJvdmlkZVBlcnNvbmFsU3RhY2s6IChhcHA6IEFwcCwgc3RhY2tJZDogc3RyaW5nLCBwcm9wczogUGlwZWxpbmVBcHBTdGFja1Byb3BzKSA9PiBTdGFjaztcbmA7XG4gICAgICBhcHBDb2RlICs9IGAgICAgLy8gSWYgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIFVTRVIgaXMgc2V0IGFuZCBhIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGZvciBjcmVhdGluZyBhIHBlcnNvbmFsIHN0YWNrLCBpdCBpcyBjYWxsZWQgd2l0aCBuZWNlc3NhcnkgYXJndW1lbnRzLlxuICAgIGlmIChwcm9wcy5wcm92aWRlUGVyc29uYWxTdGFjayAmJiBwcm9jZXNzLmVudi5VU0VSKSB7XG4gICAgICBjb25zdCBzdGFnZU5hbWUgPSAncGVyc29uYWwtJyArIHByb2Nlc3MuZW52LlVTRVIudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXFxcXFwvL2csICctJyk7XG4gICAgICBwcm9wcy5wcm92aWRlUGVyc29uYWxTdGFjayh0aGlzLCAnJHt0aGlzLnN0YWNrUHJlZml4fS1wZXJzb25hbCcsIHsgZW52OiAke0pTT04uc3RyaW5naWZ5KHRoaXMuYmFzZU9wdGlvbnMucGVyc29uYWxTdGFnZS5lbnYpfSwgc3RhY2tOYW1lOiBcXGAke3RoaXMuc3RhY2tQcmVmaXh9LVxcJHtzdGFnZU5hbWV9XFxgLCBzdGFnZU5hbWUgfSk7XG4gICAgfVxuYDtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5iYXNlT3B0aW9ucy5mZWF0dXJlU3RhZ2VzKSB7XG4gICAgICBwcm9wc0NvZGUgKz0gYCAgLyoqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB1c2VkIHRvIGdlbmVyYXRlIGEgZmVhdHVyZSBzdGFjay4gKi9cbiAgcHJvdmlkZUZlYXR1cmVTdGFjazogKGFwcDogQXBwLCBzdGFja0lkOiBzdHJpbmcsIHByb3BzOiBQaXBlbGluZUFwcFN0YWNrUHJvcHMpID0+IFN0YWNrO1xuYDtcbiAgICAgIGFwcENvZGUgKz0gYCAgICAvLyBJZiB0aGUgZW52aXJvbm1lbnQgdmFyaWFibGUgQlJBTkNIIGlzIHNldCBhbmQgYSBmdW5jdGlvbiBpcyBwcm92aWRlZCBmb3IgY3JlYXRpbmcgYSBmZWF0dXJlIHN0YWNrLCBpdCBpcyBjYWxsZWQgd2l0aCBuZWNlc3NhcnkgYXJndW1lbnRzLlxuICAgIGlmIChwcm9wcy5wcm92aWRlRmVhdHVyZVN0YWNrICYmIHByb2Nlc3MuZW52LkJSQU5DSCkge1xuICAgICAgY29uc3Qgc3RhZ2VOYW1lID0gJ2ZlYXR1cmUtJyArIHByb2Nlc3MuZW52LkJSQU5DSC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xcXFxcXC8vZywgJy0nKTtcbiAgICAgIHByb3BzLnByb3ZpZGVGZWF0dXJlU3RhY2sodGhpcywgJyR7dGhpcy5zdGFja1ByZWZpeH0tZmVhdHVyZScsIHsgZW52OiAke0pTT04uc3RyaW5naWZ5KHRoaXMuYmFzZU9wdGlvbnMuZmVhdHVyZVN0YWdlcy5lbnYpfSwgc3RhY2tOYW1lOiBcXGAke3RoaXMuc3RhY2tQcmVmaXh9LVxcJHtzdGFnZU5hbWV9XFxgLCBzdGFnZU5hbWUgfSk7XG4gICAgfVxuYDtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHN0YWdlIG9mIHRoaXMuYmFzZU9wdGlvbnMuc3RhZ2VzKSB7XG4gICAgICBjb25zdCBuYW1lVXBwZXJGaXJzdCA9IGAke3N0YWdlLm5hbWUuY2hhckF0KDApLnRvVXBwZXJDYXNlKCl9JHtzdGFnZS5uYW1lLnN1YnN0cmluZygxKX1gO1xuXG4gICAgICBwcm9wc0NvZGUgKz0gYCAgLyoqIFRoaXMgZnVuY3Rpb24gd2lsbCBiZSB1c2VkIHRvIGdlbmVyYXRlIGEgJHtzdGFnZS5uYW1lfSBzdGFjay4gKi9cbiAgcHJvdmlkZSR7bmFtZVVwcGVyRmlyc3R9U3RhY2s6IChhcHA6IEFwcCwgc3RhY2tJZDogc3RyaW5nLCBwcm9wczogUGlwZWxpbmVBcHBTdGFja1Byb3BzKSA9PiBTdGFjaztcbmA7XG4gICAgICBhcHBDb2RlICs9IGAgICAgLy8gSWYgYSBmdW5jdGlvbiBpcyBwcm92aWRlZCBmb3IgY3JlYXRpbmcgYSAke3N0YWdlLm5hbWV9IHN0YWNrLCBpdCBpcyBjYWxsZWQgd2l0aCBuZWNlc3NhcnkgYXJndW1lbnRzLlxuICAgIGlmIChwcm9wcy5wcm92aWRlJHtuYW1lVXBwZXJGaXJzdH1TdGFjaykge1xuICAgICAgcHJvcHMucHJvdmlkZSR7bmFtZVVwcGVyRmlyc3R9U3RhY2sodGhpcywgJyR7dGhpcy5zdGFja1ByZWZpeH0tJHtzdGFnZS5uYW1lfScsIHsgZW52OiAke0pTT04uc3RyaW5naWZ5KHN0YWdlLmVudil9LCBzdGFja05hbWU6ICcke3RoaXMuc3RhY2tQcmVmaXh9LSR7c3RhZ2UubmFtZX0nLCBzdGFnZU5hbWU6ICcke3N0YWdlLm5hbWV9JyB9KTtcbiAgICB9XG5gO1xuICAgIH1cblxuICAgIGNvbnN0IGFwcEZpbGUgPSBuZXcgVGV4dEZpbGUodGhpcy5wcm9qZWN0LCBgJHt0aGlzLmFwcC5zcmNkaXJ9L2FwcC50c2ApO1xuICAgIGFwcEZpbGUuYWRkTGluZShgLy8gJHtQUk9KRU5fTUFSS0VSfVxuLyogZXNsaW50LWRpc2FibGUgKi9cbmltcG9ydCB7IEFwcCwgQXBwUHJvcHMsIFN0YWNrLCBTdGFja1Byb3BzIH0gZnJvbSAnYXdzLWNkay1saWInO1xuXG4vKipcbiAqIFBpcGVsaW5lQXBwUHJvcHMgaXMgYW4gZXh0ZW5zaW9uIG9mIEFwcFByb3BzLCB3aGljaCBpcyBwYXJ0IG9mIHRoZSBBV1MgQ0RLIGNvcmUuXG4gKiBJdCBpbmNsdWRlcyBvcHRpb25hbCBmdW5jdGlvbnMgdG8gcHJvdmlkZSBBV1MgU3RhY2tzIGZvciBkaWZmZXJlbnQgc3RhZ2VzLlxuICpcbiAqIFVzZSB0aGVzZSBmdW5jdGlvbnMgdG8gaW5zdGFudGlhdGUgeW91ciBhcHBsaWNhdGlvbiBzdGFja3Mgd2l0aCB0aGUgcGFyYW1ldGVycyBmb3JcbiAqIGVhY2ggc3RhZ2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUFwcFByb3BzIGV4dGVuZHMgQXBwUHJvcHMge1xuJHtwcm9wc0NvZGV9XG59XG5cbi8qKlxuICogUGlwZWxpbmVBcHBTdGFja1Byb3BzIGlzIGFuIGV4dGVuc2lvbiBvZiBTdGFja1Byb3BzLCB3aGljaCBpcyBwYXJ0IG9mIHRoZSBBV1MgQ0RLIGNvcmUuXG4gKiBJdCBpbmNsdWRlcyBhbiBhZGRpdGlvbmFsIHByb3BlcnR5IHRvIHNwZWNpZnkgdGhlIHN0YWdlIG5hbWUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZWxpbmVBcHBTdGFja1Byb3BzIGV4dGVuZHMgU3RhY2tQcm9wcyB7XG4gIHN0YWdlTmFtZTogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSBQaXBlbGluZUFwcCBjbGFzcyBleHRlbmRzIHRoZSBBcHAgY2xhc3MgZnJvbSBBV1MgQ0RLIGFuZCBvdmVycmlkZXMgdGhlIGNvbnN0cnVjdG9yIHRvIHN1cHBvcnRcbiAqIGRpZmZlcmVudCBzdGFnZXMgb2YgdGhlIGFwcGxpY2F0aW9uIChkZXZlbG9wbWVudCwgcHJvZHVjdGlvbiwgcGVyc29uYWwsIGZlYXR1cmUpIGJ5IGludm9raW5nIHRoZSBwcm92aWRlZFxuICogc3RhY2stcHJvdmlkaW5nIGZ1bmN0aW9ucyBmcm9tIHRoZSBwcm9wcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFBpcGVsaW5lQXBwIGV4dGVuZHMgQXBwIHtcbiAgY29uc3RydWN0b3IocHJvcHM6IFBpcGVsaW5lQXBwUHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiR7YXBwQ29kZX1cblxuICB9XG59XG5gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBzZXRzIHVwIHRhc2tzIHRvIHB1Ymxpc2ggQ0RLIGFzc2V0cyB0byBhbGwgYWNjb3VudHMgYW5kIGhhbmRsZSB2ZXJzaW9uaW5nLCBpbmNsdWRpbmcgYnVtcGluZyB0aGUgdmVyc2lvblxuICAgKiBiYXNlZCBvbiB0aGUgbGF0ZXN0IGdpdCB0YWcgYW5kIHB1c2hpbmcgdGhlIENESyBhc3NlbWJseSB0byB0aGUgcGFja2FnZSByZXBvc2l0b3J5LlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVJlbGVhc2VUYXNrcygpIHtcbiAgICAvLyBUYXNrIHRvIHB1Ymxpc2ggdGhlIENESyBhc3NldHMgdG8gYWxsIGFjY291bnRzXG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ3B1Ymxpc2g6YXNzZXRzJywge1xuICAgICAgc3RlcHM6IHRoaXMuYmFzZU9wdGlvbnMuc3RhZ2VzLm1hcChzdGFnZSA9PiAoe1xuICAgICAgICBleGVjOiBgbnB4IGNkay1hc3NldHMgLXAgJHt0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0fS8ke3RoaXMuc3RhY2tQcmVmaXh9LSR7c3RhZ2UubmFtZX0uYXNzZXRzLmpzb24gcHVibGlzaGAsXG4gICAgICB9KSksXG4gICAgfSk7XG5cbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygnYnVtcCcsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnQnVtcHMgdmVyc2lvbiBiYXNlZCBvbiBsYXRlc3QgZ2l0IHRhZycsXG4gICAgICBzdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgZXhlYzogJ3BpcGVsaW5lcy1yZWxlYXNlIGJ1bXAnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZXhlYzogJ2dpdCBwdXNoIC0tdGFncycsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKCdyZWxlYXNlOnB1c2gtYXNzZW1ibHknLCB7XG4gICAgICBzdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgZXhlYzogYHBpcGVsaW5lcy1yZWxlYXNlIGNyZWF0ZS1tYW5pZmVzdCBcIiR7dGhpcy5hcHAuY2RrQ29uZmlnLmNka291dH1cIiAgXCIke3RoaXMuYmFzZU9wdGlvbnMucGtnTmFtZXNwYWNlfVwiYCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGN3ZDogdGhpcy5hcHAuY2RrQ29uZmlnLmNka291dCxcbiAgICAgICAgICBleGVjOiAnbnBtIHZlcnNpb24gLS1uby1naXQtdGFnLXZlcnNpb24gZnJvbS1naXQnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY3dkOiB0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0LFxuICAgICAgICAgIGV4ZWM6ICducG0gcHVibGlzaCcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHNldHMgdXAgdGFza3MgZm9yIHRoZSBwZXJzb25hbCBkZXBsb3ltZW50IHN0YWdlLCBpbmNsdWRpbmcgZGVwbG95bWVudCwgd2F0Y2hpbmcgZm9yIGNoYW5nZXMsXG4gICAqIGNvbXBhcmluZyBjaGFuZ2VzIChkaWZmKSwgYW5kIGRlc3Ryb3lpbmcgdGhlIHN0YWNrIHdoZW4gbm8gbG9uZ2VyIG5lZWRlZC5cbiAgICovXG4gIHByb3RlY3RlZCBjcmVhdGVQZXJzb25hbFN0YWdlKCkge1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKCdkZXBsb3k6cGVyc29uYWwnLCB7XG4gICAgICBleGVjOiBgY2RrIGRlcGxveSAke3RoaXMuc3RhY2tQcmVmaXh9LXBlcnNvbmFsYCxcbiAgICB9KTtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygnd2F0Y2g6cGVyc29uYWwnLCB7XG4gICAgICBleGVjOiBgY2RrIGRlcGxveSAtLXdhdGNoIC0taG90c3dhcCAke3RoaXMuc3RhY2tQcmVmaXh9LXBlcnNvbmFsYCxcbiAgICB9KTtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygnZGlmZjpwZXJzb25hbCcsIHtcbiAgICAgIGV4ZWM6IGBjZGsgZGlmZiAke3RoaXMuc3RhY2tQcmVmaXh9LXBlcnNvbmFsYCxcbiAgICB9KTtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygnZGVzdHJveTpwZXJzb25hbCcsIHtcbiAgICAgIGV4ZWM6IGBjZGsgZGVzdHJveSAke3RoaXMuc3RhY2tQcmVmaXh9LXBlcnNvbmFsYCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIG1ldGhvZCBzZXRzIHVwIHRhc2tzIGZvciB0aGUgZmVhdHVyZSBkZXBsb3ltZW50IHN0YWdlLCBpbmNsdWRpbmcgZGVwbG95bWVudCwgY29tcGFyaW5nIGNoYW5nZXMgKGRpZmYpLFxuICAgKiBhbmQgZGVzdHJveWluZyB0aGUgc3RhY2sgd2hlbiBubyBsb25nZXIgbmVlZGVkLlxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZUZlYXR1cmVTdGFnZSgpIHtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygnZGVwbG95OmZlYXR1cmUnLCB7XG4gICAgICBleGVjOiBgY2RrIC0tcHJvZ3Jlc3MgZXZlbnRzIC0tcmVxdWlyZS1hcHByb3ZhbCBuZXZlciBkZXBsb3kgJHt0aGlzLnN0YWNrUHJlZml4fS1mZWF0dXJlYCxcbiAgICB9KTtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygnZGlmZjpmZWF0dXJlJywge1xuICAgICAgZXhlYzogYGNkayBkaWZmICR7dGhpcy5zdGFja1ByZWZpeH0tZmVhdHVyZWAsXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ2Rlc3Ryb3k6ZmVhdHVyZScsIHtcbiAgICAgIGV4ZWM6IGBjZGsgZGVzdHJveSAke3RoaXMuc3RhY2tQcmVmaXh9LWZlYXR1cmVgLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgbWV0aG9kIHNldHMgdXAgdGFza3MgZm9yIHRoZSBnZW5lcmFsIHBpcGVsaW5lIHN0YWdlcyAoZGV2LCBwcm9kKSwgaW5jbHVkaW5nIGRlcGxveW1lbnQgYW5kIGNvbXBhcmluZyBjaGFuZ2VzIChkaWZmKS5cbiAgICogQHBhcmFtIHtEZXBsb3lTdGFnZU9wdGlvbnN9IHN0YWdlIC0gVGhlIHN0YWdlIHRvIGNyZWF0ZVxuICAgKi9cbiAgcHJvdGVjdGVkIGNyZWF0ZVBpcGVsaW5lU3RhZ2Uoc3RhZ2U6IERlcGxveW1lbnRTdGFnZSkge1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKGBkZXBsb3k6JHtzdGFnZS5uYW1lfWAsIHtcbiAgICAgIGV4ZWM6IGBjZGsgLS1hcHAgJHt0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0fSAtLXByb2dyZXNzIGV2ZW50cyAtLXJlcXVpcmUtYXBwcm92YWwgbmV2ZXIgZGVwbG95ICR7dGhpcy5zdGFja1ByZWZpeH0tJHtzdGFnZS5uYW1lfWAsXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soYGRpZmY6JHtzdGFnZS5uYW1lfWAsIHtcbiAgICAgIGV4ZWM6IGBjZGsgLS1hcHAgJHt0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0fSBkaWZmICR7dGhpcy5zdGFja1ByZWZpeH0tJHtzdGFnZS5uYW1lfWAsXG4gICAgfSk7XG4gIH1cbn0iXX0=
|
package/lib/awscdk/github.d.ts
CHANGED
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import { awscdk } from 'projen';
|
|
2
2
|
import { CDKPipeline, CDKPipelineOptions, DeploymentStage } from './base';
|
|
3
|
-
export interface
|
|
4
|
-
readonly
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
[stage: string]: string;
|
|
10
|
-
};
|
|
3
|
+
export interface GithubIamRoleConfig {
|
|
4
|
+
readonly default?: string;
|
|
5
|
+
readonly synth?: string;
|
|
6
|
+
readonly assetPublishing?: string;
|
|
7
|
+
readonly deployment?: {
|
|
8
|
+
[stage: string]: string;
|
|
11
9
|
};
|
|
12
10
|
}
|
|
11
|
+
export interface GithubCDKPipelineOptions extends CDKPipelineOptions {
|
|
12
|
+
readonly iamRoleArns: GithubIamRoleConfig;
|
|
13
|
+
}
|
|
13
14
|
export declare class GithubCDKPipeline extends CDKPipeline {
|
|
14
15
|
private options;
|
|
15
16
|
readonly needsVersionedArtifacts: boolean;
|
package/lib/awscdk/github.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var _a;
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
4
|
exports.GithubCDKPipeline = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
4
6
|
const workflows_model_1 = require("projen/lib/github/workflows-model");
|
|
5
7
|
const base_1 = require("./base");
|
|
6
8
|
class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
@@ -11,7 +13,7 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
11
13
|
this.deploymentWorkflow = this.app.github.addWorkflow('deploy');
|
|
12
14
|
this.deploymentWorkflow.on({
|
|
13
15
|
push: {
|
|
14
|
-
branches: ['main'],
|
|
16
|
+
branches: ['main'],
|
|
15
17
|
},
|
|
16
18
|
workflowDispatch: {},
|
|
17
19
|
});
|
|
@@ -23,12 +25,11 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
23
25
|
}
|
|
24
26
|
}
|
|
25
27
|
createSynth() {
|
|
26
|
-
var _a;
|
|
27
28
|
const steps = [{
|
|
28
29
|
name: 'Checkout',
|
|
29
30
|
uses: 'actions/checkout@v3',
|
|
30
31
|
}];
|
|
31
|
-
if (
|
|
32
|
+
if (this.options.iamRoleArns?.synth) {
|
|
32
33
|
steps.push({
|
|
33
34
|
name: 'AWS Credentials',
|
|
34
35
|
uses: 'aws-actions/configure-aws-credentials@master',
|
|
@@ -39,7 +40,7 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
39
40
|
},
|
|
40
41
|
});
|
|
41
42
|
}
|
|
42
|
-
steps.push(...this.
|
|
43
|
+
steps.push(...this.renderSynthCommands().map(cmd => ({
|
|
43
44
|
run: cmd,
|
|
44
45
|
})));
|
|
45
46
|
steps.push({
|
|
@@ -60,7 +61,6 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
60
61
|
});
|
|
61
62
|
}
|
|
62
63
|
createAssetUpload() {
|
|
63
|
-
var _a, _b, _c;
|
|
64
64
|
this.deploymentWorkflow.addJob('assetUpload', {
|
|
65
65
|
name: 'Publish assets to AWS',
|
|
66
66
|
needs: ['synth'],
|
|
@@ -82,7 +82,7 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
82
82
|
name: 'AWS Credentials',
|
|
83
83
|
uses: 'aws-actions/configure-aws-credentials@master',
|
|
84
84
|
with: {
|
|
85
|
-
'role-to-assume':
|
|
85
|
+
'role-to-assume': this.options.iamRoleArns?.assetPublishing ?? this.options.iamRoleArns?.default,
|
|
86
86
|
'role-session-name': 'GitHubAction',
|
|
87
87
|
'aws-region': 'us-east-1',
|
|
88
88
|
},
|
|
@@ -99,7 +99,6 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
99
99
|
});
|
|
100
100
|
}
|
|
101
101
|
createDeployment(stage) {
|
|
102
|
-
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
103
102
|
if (stage.manualApproval === true) {
|
|
104
103
|
// Create new workflow for deployment
|
|
105
104
|
const stageWorkflow = this.app.github.addWorkflow(`release-${stage.name}`);
|
|
@@ -127,21 +126,21 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
127
126
|
name: 'AWS Credentials',
|
|
128
127
|
uses: 'aws-actions/configure-aws-credentials@master',
|
|
129
128
|
with: {
|
|
130
|
-
'role-to-assume':
|
|
129
|
+
'role-to-assume': this.options.iamRoleArns?.deployment?.[stage.name] ?? this.options.iamRoleArns?.default,
|
|
131
130
|
'role-session-name': 'GitHubAction',
|
|
132
131
|
'aws-region': stage.env.region,
|
|
133
132
|
},
|
|
134
133
|
},
|
|
135
|
-
...this.
|
|
134
|
+
...this.renderInstallCommands().map(cmd => ({
|
|
136
135
|
run: cmd,
|
|
137
136
|
})),
|
|
138
|
-
...this.
|
|
137
|
+
...this.renderInstallPackageCommands(`${this.options.pkgNamespace}/${this.app.name}@\${{github.event.inputs.version}}`).map(cmd => ({
|
|
139
138
|
run: cmd,
|
|
140
139
|
})),
|
|
141
140
|
{
|
|
142
141
|
run: `mv ./node_modules/${this.options.pkgNamespace}/${this.app.name} ${this.app.cdkConfig.cdkout}`,
|
|
143
142
|
},
|
|
144
|
-
...this.
|
|
143
|
+
...this.renderDeployCommands(stage.name).map(cmd => ({
|
|
145
144
|
run: cmd,
|
|
146
145
|
}))],
|
|
147
146
|
});
|
|
@@ -163,7 +162,7 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
163
162
|
name: 'AWS Credentials',
|
|
164
163
|
uses: 'aws-actions/configure-aws-credentials@master',
|
|
165
164
|
with: {
|
|
166
|
-
'role-to-assume':
|
|
165
|
+
'role-to-assume': this.options.iamRoleArns?.deployment?.[stage.name] ?? this.options.iamRoleArns?.default,
|
|
167
166
|
'role-session-name': 'GitHubAction',
|
|
168
167
|
'aws-region': stage.env.region,
|
|
169
168
|
},
|
|
@@ -174,10 +173,10 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
174
173
|
path: `${this.app.cdkConfig.cdkout}/`,
|
|
175
174
|
},
|
|
176
175
|
},
|
|
177
|
-
...this.
|
|
176
|
+
...this.renderInstallCommands().map(cmd => ({
|
|
178
177
|
run: cmd,
|
|
179
178
|
})),
|
|
180
|
-
...this.
|
|
179
|
+
...this.renderDeployCommands(stage.name).map(cmd => ({
|
|
181
180
|
run: cmd,
|
|
182
181
|
}))],
|
|
183
182
|
});
|
|
@@ -186,4 +185,6 @@ class GithubCDKPipeline extends base_1.CDKPipeline {
|
|
|
186
185
|
}
|
|
187
186
|
}
|
|
188
187
|
exports.GithubCDKPipeline = GithubCDKPipeline;
|
|
189
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3c2Nkay9naXRodWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsdUVBQTJFO0FBQzNFLGlDQUEwRTtBQVkxRSxNQUFhLGlCQUFrQixTQUFRLGtCQUFXO0lBT2hELFlBQVksR0FBK0IsRUFBVSxPQUFpQztRQUNwRixLQUFLLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRCtCLFlBQU8sR0FBUCxPQUFPLENBQTBCO1FBRjlFLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztRQUt0QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFPLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLENBQUM7WUFDekIsSUFBSSxFQUFFO2dCQUNKLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQyxFQUFFLGdDQUFnQzthQUNyRDtZQUNELGdCQUFnQixFQUFFLEVBQUU7U0FDckIsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLHVCQUF1QixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLEtBQUssSUFBSSxDQUFDLEtBQUssU0FBUyxDQUFDO1FBRXRHLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUV6QixLQUFLLE1BQU0sS0FBSyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsQ0FBQztJQUNILENBQUM7SUFFTyxXQUFXOztRQUNqQixNQUFNLEtBQUssR0FBYyxDQUFDO2dCQUN4QixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsSUFBSSxF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QyxDQUFDO3dCQUN2QyxHQUFHLEVBQUUsR0FBRztxQkFDVCxDQUFDLENBQUM7b0JBQ0gsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7d0JBQ2hELEdBQUcsRUFBRSxHQUFHO3FCQUNULENBQUMsQ0FBQyxDQUFDO2FBQ0wsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWxNRCw4Q0FrTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhd3NjZGsgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgR2l0aHViV29ya2Zsb3cgfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yic7XG5pbXBvcnQgeyBKb2JQZXJtaXNzaW9uLCBKb2JTdGVwIH0gZnJvbSAncHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsJztcbmltcG9ydCB7IENES1BpcGVsaW5lLCBDREtQaXBlbGluZU9wdGlvbnMsIERlcGxveW1lbnRTdGFnZSB9IGZyb20gJy4vYmFzZSc7XG5cblxuZXhwb3J0IGludGVyZmFjZSBHaXRodWJDREtQaXBlbGluZU9wdGlvbnMgZXh0ZW5kcyBDREtQaXBlbGluZU9wdGlvbnMge1xuICByZWFkb25seSBpYW1Sb2xlQXJuczoge1xuICAgIHJlYWRvbmx5IGRlZmF1bHQ/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgc3ludGg/OiBzdHJpbmc7XG4gICAgcmVhZG9ubHkgYXNzZXRQdWJsaXNoaW5nPzogc3RyaW5nO1xuICAgIHJlYWRvbmx5IGRlcGxveW1lbnQ/OiB7IFtzdGFnZTogc3RyaW5nXTogc3RyaW5nIH07XG4gIH07XG59XG5cbmV4cG9ydCBjbGFzcyBHaXRodWJDREtQaXBlbGluZSBleHRlbmRzIENES1BpcGVsaW5lIHtcblxuICBwdWJsaWMgcmVhZG9ubHkgbmVlZHNWZXJzaW9uZWRBcnRpZmFjdHM6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBkZXBsb3ltZW50V29ya2Zsb3c6IEdpdGh1YldvcmtmbG93O1xuICBwcml2YXRlIGRlcGxveW1lbnRTdGFnZXM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoYXBwOiBhd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcCwgcHJpdmF0ZSBvcHRpb25zOiBHaXRodWJDREtQaXBlbGluZU9wdGlvbnMpIHtcbiAgICBzdXBlcihhcHAsIG9wdGlvbnMpO1xuXG4gICAgdGhpcy5kZXBsb3ltZW50V29ya2Zsb3cgPSB0aGlzLmFwcC5naXRodWIhLmFkZFdvcmtmbG93KCdkZXBsb3knKTtcbiAgICB0aGlzLmRlcGxveW1lbnRXb3JrZmxvdy5vbih7XG4gICAgICBwdXNoOiB7XG4gICAgICAgIGJyYW5jaGVzOiBbJ21haW4nXSwgLy8gVE9ETyB1c2UgZGVmYXVsdFJlbGVhc2VCcmFuY2hcbiAgICAgIH0sXG4gICAgICB3b3JrZmxvd0Rpc3BhdGNoOiB7fSxcbiAgICB9KTtcblxuICAgIHRoaXMubmVlZHNWZXJzaW9uZWRBcnRpZmFjdHMgPSB0aGlzLm9wdGlvbnMuc3RhZ2VzLmZpbmQocyA9PiBzLm1hbnVhbEFwcHJvdmFsID09PSB0cnVlKSAhPT0gdW5kZWZpbmVkO1xuXG4gICAgdGhpcy5jcmVhdGVTeW50aCgpO1xuXG4gICAgdGhpcy5jcmVhdGVBc3NldFVwbG9hZCgpO1xuXG4gICAgZm9yIChjb25zdCBzdGFnZSBvZiBvcHRpb25zLnN0YWdlcykge1xuICAgICAgdGhpcy5jcmVhdGVEZXBsb3ltZW50KHN0YWdlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVN5bnRoKCk6IHZvaWQge1xuICAgIGNvbnN0IHN0ZXBzOiBKb2JTdGVwW10gPSBbe1xuICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgIHVzZXM6ICdhY3Rpb25zL2NoZWNrb3V0QHYzJyxcbiAgICB9XTtcblxuICAgIGlmICh0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LnN5bnRoKSB7XG4gICAgICBzdGVwcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ0FXUyBDcmVkZW50aWFscycsXG4gICAgICAgIHVzZXM6ICdhd3MtYWN0aW9ucy9jb25maWd1cmUtYXdzLWNyZWRlbnRpYWxzQG1hc3RlcicsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAncm9sZS10by1hc3N1bWUnOiB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnMuc3ludGgsXG4gICAgICAgICAgJ3JvbGUtc2Vzc2lvbi1uYW1lJzogJ0dpdEh1YkFjdGlvbicsXG4gICAgICAgICAgJ2F3cy1yZWdpb24nOiAndXMtZWFzdC0xJyxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0ZXBzLnB1c2goLi4udGhpcy5nZXRTeW50aENvbW1hbmRzKCkubWFwKGNtZCA9PiAoe1xuICAgICAgcnVuOiBjbWQsXG4gICAgfSkpKTtcblxuICAgIHN0ZXBzLnB1c2goe1xuICAgICAgdXNlczogJ2FjdGlvbnMvdXBsb2FkLWFydGlmYWN0QHYzJyxcbiAgICAgIHdpdGg6IHtcbiAgICAgICAgbmFtZTogJ2Nsb3VkLWFzc2VtYmx5JyxcbiAgICAgICAgcGF0aDogYCR7dGhpcy5hcHAuY2RrQ29uZmlnLmNka291dH0vYCxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICB0aGlzLmRlcGxveW1lbnRXb3JrZmxvdy5hZGRKb2IoJ3N5bnRoJywge1xuICAgICAgbmFtZTogJ1N5bnRoIENESyBhcHBsaWNhdGlvbicsXG4gICAgICBydW5zT246IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgZW52OiB7XG4gICAgICAgIENJOiAndHJ1ZScsXG4gICAgICB9LFxuICAgICAgcGVybWlzc2lvbnM6IHsgaWRUb2tlbjogSm9iUGVybWlzc2lvbi5XUklURSwgY29udGVudHM6IEpvYlBlcm1pc3Npb24uUkVBRCB9LFxuICAgICAgc3RlcHMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlQXNzZXRVcGxvYWQoKTogdm9pZCB7XG4gICAgdGhpcy5kZXBsb3ltZW50V29ya2Zsb3cuYWRkSm9iKCdhc3NldFVwbG9hZCcsIHtcbiAgICAgIG5hbWU6ICdQdWJsaXNoIGFzc2V0cyB0byBBV1MnLFxuICAgICAgbmVlZHM6IFsnc3ludGgnXSxcbiAgICAgIHJ1bnNPbjogWyd1YnVudHUtbGF0ZXN0J10sXG4gICAgICBlbnY6IHtcbiAgICAgICAgQ0k6ICd0cnVlJyxcbiAgICAgIH0sXG4gICAgICBwZXJtaXNzaW9uczogeyBpZFRva2VuOiBKb2JQZXJtaXNzaW9uLldSSVRFLCBjb250ZW50czogdGhpcy5uZWVkc1ZlcnNpb25lZEFydGlmYWN0cyA/IEpvYlBlcm1pc3Npb24uV1JJVEUgOiBKb2JQZXJtaXNzaW9uLlJFQUQgfSxcbiAgICAgIHN0ZXBzOiBbe1xuICAgICAgICBuYW1lOiAnQ2hlY2tvdXQnLFxuICAgICAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2MycsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAnZmV0Y2gtZGVwdGgnOiAwLFxuICAgICAgICB9LFxuICAgICAgfSwge1xuICAgICAgICBuYW1lOiAnU2V0dXAgR0lUIGlkZW50aXR5JyxcbiAgICAgICAgcnVuOiAnZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgXCJnaXRodWItYWN0aW9uc1wiICYmIGdpdCBjb25maWcgLS1nbG9iYWwgdXNlci5lbWFpbCBcImdpdGh1Yi1hY3Rpb25zQGdpdGh1Yi5jb21cIicsXG4gICAgICB9LCB7XG4gICAgICAgIG5hbWU6ICdBV1MgQ3JlZGVudGlhbHMnLFxuICAgICAgICB1c2VzOiAnYXdzLWFjdGlvbnMvY29uZmlndXJlLWF3cy1jcmVkZW50aWFsc0BtYXN0ZXInLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgJ3JvbGUtdG8tYXNzdW1lJzogdGhpcy5vcHRpb25zLmlhbVJvbGVBcm5zPy5hc3NldFB1Ymxpc2hpbmcgPz8gdGhpcy5vcHRpb25zLmlhbVJvbGVBcm5zPy5kZWZhdWx0LFxuICAgICAgICAgICdyb2xlLXNlc3Npb24tbmFtZSc6ICdHaXRIdWJBY3Rpb24nLFxuICAgICAgICAgICdhd3MtcmVnaW9uJzogJ3VzLWVhc3QtMScsXG4gICAgICAgIH0sXG4gICAgICB9LCB7XG4gICAgICAgIHVzZXM6ICdhY3Rpb25zL2Rvd25sb2FkLWFydGlmYWN0QHYzJyxcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIG5hbWU6ICdjbG91ZC1hc3NlbWJseScsXG4gICAgICAgICAgcGF0aDogYCR7dGhpcy5hcHAuY2RrQ29uZmlnLmNka291dH0vYCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICAuLi50aGlzLmdldEFzc2V0VXBsb2FkQ29tbWFuZHModGhpcy5uZWVkc1ZlcnNpb25lZEFydGlmYWN0cykubWFwKGNtZCA9PiAoe1xuICAgICAgICBydW46IGNtZCxcbiAgICAgIH0pKV0sXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgY3JlYXRlRGVwbG95bWVudChzdGFnZTogRGVwbG95bWVudFN0YWdlKTogdm9pZCB7XG4gICAgaWYgKHN0YWdlLm1hbnVhbEFwcHJvdmFsID09PSB0cnVlKSB7XG4gICAgICAvLyBDcmVhdGUgbmV3IHdvcmtmbG93IGZvciBkZXBsb3ltZW50XG4gICAgICBjb25zdCBzdGFnZVdvcmtmbG93ID0gdGhpcy5hcHAuZ2l0aHViIS5hZGRXb3JrZmxvdyhgcmVsZWFzZS0ke3N0YWdlLm5hbWV9YCk7XG4gICAgICBzdGFnZVdvcmtmbG93Lm9uKHtcbiAgICAgICAgd29ya2Zsb3dEaXNwYXRjaDoge1xuICAgICAgICAgIGlucHV0czoge1xuICAgICAgICAgICAgdmVyc2lvbjoge1xuICAgICAgICAgICAgICBkZXNjcmlwdGlvbjogJ1BhY2thZ2UgdmVyc2lvbicsXG4gICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgICBzdGFnZVdvcmtmbG93LmFkZEpvYignZGVwbG95Jywge1xuICAgICAgICBuYW1lOiBgUmVsZWFzZSBzdGFnZSAke3N0YWdlLm5hbWV9IHRvIEFXU2AsXG4gICAgICAgIHJ1bnNPbjogWyd1YnVudHUtbGF0ZXN0J10sXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIENJOiAndHJ1ZScsXG4gICAgICAgIH0sXG4gICAgICAgIHBlcm1pc3Npb25zOiB7IGlkVG9rZW46IEpvYlBlcm1pc3Npb24uV1JJVEUsIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQgfSxcbiAgICAgICAgc3RlcHM6IFt7XG4gICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2MycsXG4gICAgICAgIH0sIHtcbiAgICAgICAgICBuYW1lOiAnQVdTIENyZWRlbnRpYWxzJyxcbiAgICAgICAgICB1c2VzOiAnYXdzLWFjdGlvbnMvY29uZmlndXJlLWF3cy1jcmVkZW50aWFsc0BtYXN0ZXInLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICdyb2xlLXRvLWFzc3VtZSc6IHRoaXMub3B0aW9ucy5pYW1Sb2xlQXJucz8uZGVwbG95bWVudD8uW3N0YWdlLm5hbWVdID8/IHRoaXMub3B0aW9ucy5pYW1Sb2xlQXJucz8uZGVmYXVsdCxcbiAgICAgICAgICAgICdyb2xlLXNlc3Npb24tbmFtZSc6ICdHaXRIdWJBY3Rpb24nLFxuICAgICAgICAgICAgJ2F3cy1yZWdpb24nOiBzdGFnZS5lbnYucmVnaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnRoaXMuZ2V0SW5zdGFsbENvbW1hbmRzKCkubWFwKGNtZCA9PiAoe1xuICAgICAgICAgIHJ1bjogY21kLFxuICAgICAgICB9KSksXG4gICAgICAgIC4uLnRoaXMuZ2V0SW5zdGFsbFBhY2thZ2VDb21tYW5kcyhgJHt0aGlzLm9wdGlvbnMucGtnTmFtZXNwYWNlfS8ke3RoaXMuYXBwLm5hbWV9QFxcJHt7Z2l0aHViLmV2ZW50LmlucHV0cy52ZXJzaW9ufX1gKS5tYXAoY21kID0+ICh7XG4gICAgICAgICAgcnVuOiBjbWQsXG4gICAgICAgIH0pKSxcbiAgICAgICAge1xuICAgICAgICAgIHJ1bjogYG12IC4vbm9kZV9tb2R1bGVzLyR7dGhpcy5vcHRpb25zLnBrZ05hbWVzcGFjZX0vJHt0aGlzLmFwcC5uYW1lfSAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9YCxcbiAgICAgICAgfSxcbiAgICAgICAgLi4udGhpcy5nZXREZXBsb3lDb21tYW5kcyhzdGFnZS5uYW1lKS5tYXAoY21kID0+ICh7XG4gICAgICAgICAgcnVuOiBjbWQsXG4gICAgICAgIH0pKV0sXG4gICAgICB9KTtcblxuICAgIH0gZWxzZSB7XG4gICAgICAvLyBBZGQgZGVwbG95bWVudCB0byBDSS9DRCB3b3JrZmxvd1xuICAgICAgdGhpcy5kZXBsb3ltZW50V29ya2Zsb3cuYWRkSm9iKGBkZXBsb3ktJHtzdGFnZS5uYW1lfWAsIHtcbiAgICAgICAgbmFtZTogYERlcGxveSBzdGFnZSAke3N0YWdlLm5hbWV9IHRvIEFXU2AsXG4gICAgICAgIG5lZWRzOiB0aGlzLmRlcGxveW1lbnRTdGFnZXMubGVuZ3RoID4gMCA/IFsnYXNzZXRVcGxvYWQnLCBgZGVwbG95LSR7dGhpcy5kZXBsb3ltZW50U3RhZ2VzLmF0KC0xKSF9YF0gOiBbJ2Fzc2V0VXBsb2FkJ10sXG4gICAgICAgIHJ1bnNPbjogWyd1YnVudHUtbGF0ZXN0J10sXG4gICAgICAgIGVudjoge1xuICAgICAgICAgIENJOiAndHJ1ZScsXG4gICAgICAgIH0sXG4gICAgICAgIHBlcm1pc3Npb25zOiB7IGlkVG9rZW46IEpvYlBlcm1pc3Npb24uV1JJVEUsIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQgfSxcbiAgICAgICAgc3RlcHM6IFt7XG4gICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2MycsXG4gICAgICAgIH0sIHtcbiAgICAgICAgICBuYW1lOiAnQVdTIENyZWRlbnRpYWxzJyxcbiAgICAgICAgICB1c2VzOiAnYXdzLWFjdGlvbnMvY29uZmlndXJlLWF3cy1jcmVkZW50aWFsc0BtYXN0ZXInLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICdyb2xlLXRvLWFzc3VtZSc6IHRoaXMub3B0aW9ucy5pYW1Sb2xlQXJucz8uZGVwbG95bWVudD8uW3N0YWdlLm5hbWVdID8/IHRoaXMub3B0aW9ucy5pYW1Sb2xlQXJucz8uZGVmYXVsdCxcbiAgICAgICAgICAgICdyb2xlLXNlc3Npb24tbmFtZSc6ICdHaXRIdWJBY3Rpb24nLFxuICAgICAgICAgICAgJ2F3cy1yZWdpb24nOiBzdGFnZS5lbnYucmVnaW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sIHtcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9kb3dubG9hZC1hcnRpZmFjdEB2MycsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgbmFtZTogJ2Nsb3VkLWFzc2VtYmx5JyxcbiAgICAgICAgICAgIHBhdGg6IGAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9L2AsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLi4udGhpcy5nZXRJbnN0YWxsQ29tbWFuZHMoKS5tYXAoY21kID0+ICh7XG4gICAgICAgICAgcnVuOiBjbWQsXG4gICAgICAgIH0pKSxcbiAgICAgICAgLi4udGhpcy5nZXREZXBsb3lDb21tYW5kcyhzdGFnZS5uYW1lKS5tYXAoY21kID0+ICh7XG4gICAgICAgICAgcnVuOiBjbWQsXG4gICAgICAgIH0pKV0sXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZGVwbG95bWVudFN0YWdlcy5wdXNoKHN0YWdlLm5hbWUpO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
188
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
189
|
+
GithubCDKPipeline[_a] = { fqn: "projen-pipelines.GithubCDKPipeline", version: "0.0.29" };
|
|
190
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2l0aHViLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3c2Nkay9naXRodWIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFFQSx1RUFBMkU7QUFDM0UsaUNBQTBFO0FBYTFFLE1BQWEsaUJBQWtCLFNBQVEsa0JBQVc7SUFPaEQsWUFBWSxHQUErQixFQUFVLE9BQWlDO1FBQ3BGLEtBQUssQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFEK0IsWUFBTyxHQUFQLE9BQU8sQ0FBMEI7UUFGOUUscUJBQWdCLEdBQWEsRUFBRSxDQUFDO1FBS3RDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU8sQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUN6QixJQUFJLEVBQUU7Z0JBQ0osUUFBUSxFQUFFLENBQUMsTUFBTSxDQUFDO2FBQ25CO1lBQ0QsZ0JBQWdCLEVBQUUsRUFBRTtTQUNyQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsdUJBQXVCLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsS0FBSyxJQUFJLENBQUMsS0FBSyxTQUFTLENBQUM7UUFFdEcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRW5CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1FBRXpCLEtBQUssTUFBTSxLQUFLLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUNsQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDOUI7SUFDSCxDQUFDO0lBRU8sV0FBVztRQUNqQixNQUFNLEtBQUssR0FBYyxDQUFDO2dCQUN4QixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsSUFBSSxFQUFFLHFCQUFxQjthQUM1QixDQUFD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QUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO3dCQUNuRCxHQUFHLEVBQUUsR0FBRztxQkFDVCxDQUFDLENBQUMsQ0FBQzthQUNMLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hDO0lBQ0gsQ0FBQzs7QUFqTUgsOENBa01DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXdzY2RrIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IEdpdGh1YldvcmtmbG93IH0gZnJvbSAncHJvamVuL2xpYi9naXRodWInO1xuaW1wb3J0IHsgSm9iUGVybWlzc2lvbiwgSm9iU3RlcCB9IGZyb20gJ3Byb2plbi9saWIvZ2l0aHViL3dvcmtmbG93cy1tb2RlbCc7XG5pbXBvcnQgeyBDREtQaXBlbGluZSwgQ0RLUGlwZWxpbmVPcHRpb25zLCBEZXBsb3ltZW50U3RhZ2UgfSBmcm9tICcuL2Jhc2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdpdGh1YklhbVJvbGVDb25maWcge1xuICByZWFkb25seSBkZWZhdWx0Pzogc3RyaW5nO1xuICByZWFkb25seSBzeW50aD86IHN0cmluZztcbiAgcmVhZG9ubHkgYXNzZXRQdWJsaXNoaW5nPzogc3RyaW5nO1xuICByZWFkb25seSBkZXBsb3ltZW50PzogeyBbc3RhZ2U6IHN0cmluZ106IHN0cmluZyB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEdpdGh1YkNES1BpcGVsaW5lT3B0aW9ucyBleHRlbmRzIENES1BpcGVsaW5lT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGlhbVJvbGVBcm5zOiBHaXRodWJJYW1Sb2xlQ29uZmlnO1xufVxuXG5leHBvcnQgY2xhc3MgR2l0aHViQ0RLUGlwZWxpbmUgZXh0ZW5kcyBDREtQaXBlbGluZSB7XG5cbiAgcHVibGljIHJlYWRvbmx5IG5lZWRzVmVyc2lvbmVkQXJ0aWZhY3RzOiBib29sZWFuO1xuXG4gIHByaXZhdGUgZGVwbG95bWVudFdvcmtmbG93OiBHaXRodWJXb3JrZmxvdztcbiAgcHJpdmF0ZSBkZXBsb3ltZW50U3RhZ2VzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKGFwcDogYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHAsIHByaXZhdGUgb3B0aW9uczogR2l0aHViQ0RLUGlwZWxpbmVPcHRpb25zKSB7XG4gICAgc3VwZXIoYXBwLCBvcHRpb25zKTtcblxuICAgIHRoaXMuZGVwbG95bWVudFdvcmtmbG93ID0gdGhpcy5hcHAuZ2l0aHViIS5hZGRXb3JrZmxvdygnZGVwbG95Jyk7XG4gICAgdGhpcy5kZXBsb3ltZW50V29ya2Zsb3cub24oe1xuICAgICAgcHVzaDoge1xuICAgICAgICBicmFuY2hlczogWydtYWluJ10sIC8vIFRPRE8gdXNlIGRlZmF1bHRSZWxlYXNlQnJhbmNoXG4gICAgICB9LFxuICAgICAgd29ya2Zsb3dEaXNwYXRjaDoge30sXG4gICAgfSk7XG5cbiAgICB0aGlzLm5lZWRzVmVyc2lvbmVkQXJ0aWZhY3RzID0gdGhpcy5vcHRpb25zLnN0YWdlcy5maW5kKHMgPT4gcy5tYW51YWxBcHByb3ZhbCA9PT0gdHJ1ZSkgIT09IHVuZGVmaW5lZDtcblxuICAgIHRoaXMuY3JlYXRlU3ludGgoKTtcblxuICAgIHRoaXMuY3JlYXRlQXNzZXRVcGxvYWQoKTtcblxuICAgIGZvciAoY29uc3Qgc3RhZ2Ugb2Ygb3B0aW9ucy5zdGFnZXMpIHtcbiAgICAgIHRoaXMuY3JlYXRlRGVwbG95bWVudChzdGFnZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVTeW50aCgpOiB2b2lkIHtcbiAgICBjb25zdCBzdGVwczogSm9iU3RlcFtdID0gW3tcbiAgICAgIG5hbWU6ICdDaGVja291dCcsXG4gICAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2MycsXG4gICAgfV07XG5cbiAgICBpZiAodGhpcy5vcHRpb25zLmlhbVJvbGVBcm5zPy5zeW50aCkge1xuICAgICAgc3RlcHMucHVzaCh7XG4gICAgICAgIG5hbWU6ICdBV1MgQ3JlZGVudGlhbHMnLFxuICAgICAgICB1c2VzOiAnYXdzLWFjdGlvbnMvY29uZmlndXJlLWF3cy1jcmVkZW50aWFsc0BtYXN0ZXInLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgJ3JvbGUtdG8tYXNzdW1lJzogdGhpcy5vcHRpb25zLmlhbVJvbGVBcm5zLnN5bnRoLFxuICAgICAgICAgICdyb2xlLXNlc3Npb24tbmFtZSc6ICdHaXRIdWJBY3Rpb24nLFxuICAgICAgICAgICdhd3MtcmVnaW9uJzogJ3VzLWVhc3QtMScsXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBzdGVwcy5wdXNoKC4uLnRoaXMucmVuZGVyU3ludGhDb21tYW5kcygpLm1hcChjbWQgPT4gKHtcbiAgICAgIHJ1bjogY21kLFxuICAgIH0pKSk7XG5cbiAgICBzdGVwcy5wdXNoKHtcbiAgICAgIHVzZXM6ICdhY3Rpb25zL3VwbG9hZC1hcnRpZmFjdEB2MycsXG4gICAgICB3aXRoOiB7XG4gICAgICAgIG5hbWU6ICdjbG91ZC1hc3NlbWJseScsXG4gICAgICAgIHBhdGg6IGAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9L2AsXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgdGhpcy5kZXBsb3ltZW50V29ya2Zsb3cuYWRkSm9iKCdzeW50aCcsIHtcbiAgICAgIG5hbWU6ICdTeW50aCBDREsgYXBwbGljYXRpb24nLFxuICAgICAgcnVuc09uOiBbJ3VidW50dS1sYXRlc3QnXSxcbiAgICAgIGVudjoge1xuICAgICAgICBDSTogJ3RydWUnLFxuICAgICAgfSxcbiAgICAgIHBlcm1pc3Npb25zOiB7IGlkVG9rZW46IEpvYlBlcm1pc3Npb24uV1JJVEUsIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQgfSxcbiAgICAgIHN0ZXBzLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZUFzc2V0VXBsb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuZGVwbG95bWVudFdvcmtmbG93LmFkZEpvYignYXNzZXRVcGxvYWQnLCB7XG4gICAgICBuYW1lOiAnUHVibGlzaCBhc3NldHMgdG8gQVdTJyxcbiAgICAgIG5lZWRzOiBbJ3N5bnRoJ10sXG4gICAgICBydW5zT246IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgZW52OiB7XG4gICAgICAgIENJOiAndHJ1ZScsXG4gICAgICB9LFxuICAgICAgcGVybWlzc2lvbnM6IHsgaWRUb2tlbjogSm9iUGVybWlzc2lvbi5XUklURSwgY29udGVudHM6IHRoaXMubmVlZHNWZXJzaW9uZWRBcnRpZmFjdHMgPyBKb2JQZXJtaXNzaW9uLldSSVRFIDogSm9iUGVybWlzc2lvbi5SRUFEIH0sXG4gICAgICBzdGVwczogW3tcbiAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgdXNlczogJ2FjdGlvbnMvY2hlY2tvdXRAdjMnLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgJ2ZldGNoLWRlcHRoJzogMCxcbiAgICAgICAgfSxcbiAgICAgIH0sIHtcbiAgICAgICAgbmFtZTogJ1NldHVwIEdJVCBpZGVudGl0eScsXG4gICAgICAgIHJ1bjogJ2dpdCBjb25maWcgLS1nbG9iYWwgdXNlci5uYW1lIFwiZ2l0aHViLWFjdGlvbnNcIiAmJiBnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgXCJnaXRodWItYWN0aW9uc0BnaXRodWIuY29tXCInLFxuICAgICAgfSwge1xuICAgICAgICBuYW1lOiAnQVdTIENyZWRlbnRpYWxzJyxcbiAgICAgICAgdXNlczogJ2F3cy1hY3Rpb25zL2NvbmZpZ3VyZS1hd3MtY3JlZGVudGlhbHNAbWFzdGVyJyxcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgICdyb2xlLXRvLWFzc3VtZSc6IHRoaXMub3B0aW9ucy5pYW1Sb2xlQXJucz8uYXNzZXRQdWJsaXNoaW5nID8/IHRoaXMub3B0aW9ucy5pYW1Sb2xlQXJucz8uZGVmYXVsdCxcbiAgICAgICAgICAncm9sZS1zZXNzaW9uLW5hbWUnOiAnR2l0SHViQWN0aW9uJyxcbiAgICAgICAgICAnYXdzLXJlZ2lvbic6ICd1cy1lYXN0LTEnLFxuICAgICAgICB9LFxuICAgICAgfSwge1xuICAgICAgICB1c2VzOiAnYWN0aW9ucy9kb3dubG9hZC1hcnRpZmFjdEB2MycsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICBuYW1lOiAnY2xvdWQtYXNzZW1ibHknLFxuICAgICAgICAgIHBhdGg6IGAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9L2AsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgLi4udGhpcy5nZXRBc3NldFVwbG9hZENvbW1hbmRzKHRoaXMubmVlZHNWZXJzaW9uZWRBcnRpZmFjdHMpLm1hcChjbWQgPT4gKHtcbiAgICAgICAgcnVuOiBjbWQsXG4gICAgICB9KSldLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGNyZWF0ZURlcGxveW1lbnQoc3RhZ2U6IERlcGxveW1lbnRTdGFnZSk6IHZvaWQge1xuICAgIGlmIChzdGFnZS5tYW51YWxBcHByb3ZhbCA9PT0gdHJ1ZSkge1xuICAgICAgLy8gQ3JlYXRlIG5ldyB3b3JrZmxvdyBmb3IgZGVwbG95bWVudFxuICAgICAgY29uc3Qgc3RhZ2VXb3JrZmxvdyA9IHRoaXMuYXBwLmdpdGh1YiEuYWRkV29ya2Zsb3coYHJlbGVhc2UtJHtzdGFnZS5uYW1lfWApO1xuICAgICAgc3RhZ2VXb3JrZmxvdy5vbih7XG4gICAgICAgIHdvcmtmbG93RGlzcGF0Y2g6IHtcbiAgICAgICAgICBpbnB1dHM6IHtcbiAgICAgICAgICAgIHZlcnNpb246IHtcbiAgICAgICAgICAgICAgZGVzY3JpcHRpb246ICdQYWNrYWdlIHZlcnNpb24nLFxuICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgc3RhZ2VXb3JrZmxvdy5hZGRKb2IoJ2RlcGxveScsIHtcbiAgICAgICAgbmFtZTogYFJlbGVhc2Ugc3RhZ2UgJHtzdGFnZS5uYW1lfSB0byBBV1NgLFxuICAgICAgICBydW5zT246IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBDSTogJ3RydWUnLFxuICAgICAgICB9LFxuICAgICAgICBwZXJtaXNzaW9uczogeyBpZFRva2VuOiBKb2JQZXJtaXNzaW9uLldSSVRFLCBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFEIH0sXG4gICAgICAgIHN0ZXBzOiBbe1xuICAgICAgICAgIG5hbWU6ICdDaGVja291dCcsXG4gICAgICAgICAgdXNlczogJ2FjdGlvbnMvY2hlY2tvdXRAdjMnLFxuICAgICAgICB9LCB7XG4gICAgICAgICAgbmFtZTogJ0FXUyBDcmVkZW50aWFscycsXG4gICAgICAgICAgdXNlczogJ2F3cy1hY3Rpb25zL2NvbmZpZ3VyZS1hd3MtY3JlZGVudGlhbHNAbWFzdGVyJyxcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAncm9sZS10by1hc3N1bWUnOiB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlcGxveW1lbnQ/LltzdGFnZS5uYW1lXSA/PyB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlZmF1bHQsXG4gICAgICAgICAgICAncm9sZS1zZXNzaW9uLW5hbWUnOiAnR2l0SHViQWN0aW9uJyxcbiAgICAgICAgICAgICdhd3MtcmVnaW9uJzogc3RhZ2UuZW52LnJlZ2lvbixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICAuLi50aGlzLnJlbmRlckluc3RhbGxDb21tYW5kcygpLm1hcChjbWQgPT4gKHtcbiAgICAgICAgICBydW46IGNtZCxcbiAgICAgICAgfSkpLFxuICAgICAgICAuLi50aGlzLnJlbmRlckluc3RhbGxQYWNrYWdlQ29tbWFuZHMoYCR7dGhpcy5vcHRpb25zLnBrZ05hbWVzcGFjZX0vJHt0aGlzLmFwcC5uYW1lfUBcXCR7e2dpdGh1Yi5ldmVudC5pbnB1dHMudmVyc2lvbn19YCkubWFwKGNtZCA9PiAoe1xuICAgICAgICAgIHJ1bjogY21kLFxuICAgICAgICB9KSksXG4gICAgICAgIHtcbiAgICAgICAgICBydW46IGBtdiAuL25vZGVfbW9kdWxlcy8ke3RoaXMub3B0aW9ucy5wa2dOYW1lc3BhY2V9LyR7dGhpcy5hcHAubmFtZX0gJHt0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0fWAsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnRoaXMucmVuZGVyRGVwbG95Q29tbWFuZHMoc3RhZ2UubmFtZSkubWFwKGNtZCA9PiAoe1xuICAgICAgICAgIHJ1bjogY21kLFxuICAgICAgICB9KSldLFxuICAgICAgfSk7XG5cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQWRkIGRlcGxveW1lbnQgdG8gQ0kvQ0Qgd29ya2Zsb3dcbiAgICAgIHRoaXMuZGVwbG95bWVudFdvcmtmbG93LmFkZEpvYihgZGVwbG95LSR7c3RhZ2UubmFtZX1gLCB7XG4gICAgICAgIG5hbWU6IGBEZXBsb3kgc3RhZ2UgJHtzdGFnZS5uYW1lfSB0byBBV1NgLFxuICAgICAgICBuZWVkczogdGhpcy5kZXBsb3ltZW50U3RhZ2VzLmxlbmd0aCA+IDAgPyBbJ2Fzc2V0VXBsb2FkJywgYGRlcGxveS0ke3RoaXMuZGVwbG95bWVudFN0YWdlcy5hdCgtMSkhfWBdIDogWydhc3NldFVwbG9hZCddLFxuICAgICAgICBydW5zT246IFsndWJ1bnR1LWxhdGVzdCddLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICBDSTogJ3RydWUnLFxuICAgICAgICB9LFxuICAgICAgICBwZXJtaXNzaW9uczogeyBpZFRva2VuOiBKb2JQZXJtaXNzaW9uLldSSVRFLCBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFEIH0sXG4gICAgICAgIHN0ZXBzOiBbe1xuICAgICAgICAgIG5hbWU6ICdDaGVja291dCcsXG4gICAgICAgICAgdXNlczogJ2FjdGlvbnMvY2hlY2tvdXRAdjMnLFxuICAgICAgICB9LCB7XG4gICAgICAgICAgbmFtZTogJ0FXUyBDcmVkZW50aWFscycsXG4gICAgICAgICAgdXNlczogJ2F3cy1hY3Rpb25zL2NvbmZpZ3VyZS1hd3MtY3JlZGVudGlhbHNAbWFzdGVyJyxcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAncm9sZS10by1hc3N1bWUnOiB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlcGxveW1lbnQ/LltzdGFnZS5uYW1lXSA/PyB0aGlzLm9wdGlvbnMuaWFtUm9sZUFybnM/LmRlZmF1bHQsXG4gICAgICAgICAgICAncm9sZS1zZXNzaW9uLW5hbWUnOiAnR2l0SHViQWN0aW9uJyxcbiAgICAgICAgICAgICdhd3MtcmVnaW9uJzogc3RhZ2UuZW52LnJlZ2lvbixcbiAgICAgICAgICB9LFxuICAgICAgICB9LCB7XG4gICAgICAgICAgdXNlczogJ2FjdGlvbnMvZG93bmxvYWQtYXJ0aWZhY3RAdjMnLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgIG5hbWU6ICdjbG91ZC1hc3NlbWJseScsXG4gICAgICAgICAgICBwYXRoOiBgJHt0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0fS9gLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnRoaXMucmVuZGVySW5zdGFsbENvbW1hbmRzKCkubWFwKGNtZCA9PiAoe1xuICAgICAgICAgIHJ1bjogY21kLFxuICAgICAgICB9KSksXG4gICAgICAgIC4uLnRoaXMucmVuZGVyRGVwbG95Q29tbWFuZHMoc3RhZ2UubmFtZSkubWFwKGNtZCA9PiAoe1xuICAgICAgICAgIHJ1bjogY21kLFxuICAgICAgICB9KSldLFxuICAgICAgfSk7XG4gICAgICB0aGlzLmRlcGxveW1lbnRTdGFnZXMucHVzaChzdGFnZS5uYW1lKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
package/lib/awscdk/gitlab.d.ts
CHANGED
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { awscdk, gitlab } from 'projen';
|
|
2
2
|
import { CDKPipeline, CDKPipelineOptions, DeploymentStage } from './base';
|
|
3
|
-
export interface
|
|
4
|
-
readonly
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
[stage: string]: string;
|
|
10
|
-
};
|
|
3
|
+
export interface GitlabIamRoleConfig {
|
|
4
|
+
readonly default?: string;
|
|
5
|
+
readonly synth?: string;
|
|
6
|
+
readonly assetPublishing?: string;
|
|
7
|
+
readonly deployment?: {
|
|
8
|
+
[stage: string]: string;
|
|
11
9
|
};
|
|
10
|
+
}
|
|
11
|
+
export interface GitlabCDKPipelineOptions extends CDKPipelineOptions {
|
|
12
|
+
readonly iamRoleArns: GitlabIamRoleConfig;
|
|
12
13
|
readonly image?: string;
|
|
13
14
|
}
|
|
14
15
|
export declare class GitlabCDKPipeline extends CDKPipeline {
|