projen-pipelines 0.0.0 → 0.0.1
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 +4 -3
- package/API.md +55 -3
- package/lib/pipeline.d.ts +4 -4
- package/lib/pipeline.js +18 -17
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -88,6 +88,7 @@
|
|
|
88
88
|
"types": {
|
|
89
89
|
"projen-pipelines.CDKPipeline": {
|
|
90
90
|
"assembly": "projen-pipelines",
|
|
91
|
+
"base": "projen.Component",
|
|
91
92
|
"docs": {
|
|
92
93
|
"stability": "stable"
|
|
93
94
|
},
|
|
@@ -102,7 +103,7 @@
|
|
|
102
103
|
},
|
|
103
104
|
"parameters": [
|
|
104
105
|
{
|
|
105
|
-
"name": "
|
|
106
|
+
"name": "app",
|
|
106
107
|
"type": {
|
|
107
108
|
"fqn": "projen.awscdk.AwsCdkTypeScriptApp"
|
|
108
109
|
}
|
|
@@ -310,6 +311,6 @@
|
|
|
310
311
|
"symbolId": "src/pipeline:EnvironmentMap"
|
|
311
312
|
}
|
|
312
313
|
},
|
|
313
|
-
"version": "0.0.
|
|
314
|
-
"fingerprint": "
|
|
314
|
+
"version": "0.0.1",
|
|
315
|
+
"fingerprint": "2LYbS7mnYEB7BvVsmfx7xZ2z3b2bi5G6OW2IkIWWAjs="
|
|
315
316
|
}
|
package/API.md
CHANGED
|
@@ -163,17 +163,17 @@ public readonly prod: Environment;
|
|
|
163
163
|
```typescript
|
|
164
164
|
import { CDKPipeline } from 'projen-pipelines'
|
|
165
165
|
|
|
166
|
-
new CDKPipeline(
|
|
166
|
+
new CDKPipeline(app: AwsCdkTypeScriptApp, props: CDKPipelineOptions)
|
|
167
167
|
```
|
|
168
168
|
|
|
169
169
|
| **Name** | **Type** | **Description** |
|
|
170
170
|
| --- | --- | --- |
|
|
171
|
-
| <code><a href="#projen-pipelines.CDKPipeline.Initializer.parameter.
|
|
171
|
+
| <code><a href="#projen-pipelines.CDKPipeline.Initializer.parameter.app">app</a></code> | <code>projen.awscdk.AwsCdkTypeScriptApp</code> | *No description.* |
|
|
172
172
|
| <code><a href="#projen-pipelines.CDKPipeline.Initializer.parameter.props">props</a></code> | <code><a href="#projen-pipelines.CDKPipelineOptions">CDKPipelineOptions</a></code> | *No description.* |
|
|
173
173
|
|
|
174
174
|
---
|
|
175
175
|
|
|
176
|
-
##### `
|
|
176
|
+
##### `app`<sup>Required</sup> <a name="app" id="projen-pipelines.CDKPipeline.Initializer.parameter.app"></a>
|
|
177
177
|
|
|
178
178
|
- *Type:* projen.awscdk.AwsCdkTypeScriptApp
|
|
179
179
|
|
|
@@ -185,8 +185,60 @@ new CDKPipeline(project: AwsCdkTypeScriptApp, props: CDKPipelineOptions)
|
|
|
185
185
|
|
|
186
186
|
---
|
|
187
187
|
|
|
188
|
+
#### Methods <a name="Methods" id="Methods"></a>
|
|
188
189
|
|
|
190
|
+
| **Name** | **Description** |
|
|
191
|
+
| --- | --- |
|
|
192
|
+
| <code><a href="#projen-pipelines.CDKPipeline.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
|
|
193
|
+
| <code><a href="#projen-pipelines.CDKPipeline.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
|
|
194
|
+
| <code><a href="#projen-pipelines.CDKPipeline.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
|
|
189
195
|
|
|
196
|
+
---
|
|
197
|
+
|
|
198
|
+
##### `postSynthesize` <a name="postSynthesize" id="projen-pipelines.CDKPipeline.postSynthesize"></a>
|
|
199
|
+
|
|
200
|
+
```typescript
|
|
201
|
+
public postSynthesize(): void
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Called after synthesis.
|
|
205
|
+
|
|
206
|
+
Order is *not* guaranteed.
|
|
207
|
+
|
|
208
|
+
##### `preSynthesize` <a name="preSynthesize" id="projen-pipelines.CDKPipeline.preSynthesize"></a>
|
|
209
|
+
|
|
210
|
+
```typescript
|
|
211
|
+
public preSynthesize(): void
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
Called before synthesis.
|
|
215
|
+
|
|
216
|
+
##### `synthesize` <a name="synthesize" id="projen-pipelines.CDKPipeline.synthesize"></a>
|
|
217
|
+
|
|
218
|
+
```typescript
|
|
219
|
+
public synthesize(): void
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
Synthesizes files to the project output directory.
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
#### Properties <a name="Properties" id="Properties"></a>
|
|
226
|
+
|
|
227
|
+
| **Name** | **Type** | **Description** |
|
|
228
|
+
| --- | --- | --- |
|
|
229
|
+
| <code><a href="#projen-pipelines.CDKPipeline.property.project">project</a></code> | <code>projen.Project</code> | *No description.* |
|
|
230
|
+
|
|
231
|
+
---
|
|
232
|
+
|
|
233
|
+
##### `project`<sup>Required</sup> <a name="project" id="projen-pipelines.CDKPipeline.property.project"></a>
|
|
234
|
+
|
|
235
|
+
```typescript
|
|
236
|
+
public readonly project: Project;
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
- *Type:* projen.Project
|
|
240
|
+
|
|
241
|
+
---
|
|
190
242
|
|
|
191
243
|
|
|
192
244
|
|
package/lib/pipeline.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { awscdk } from 'projen';
|
|
1
|
+
import { Component, awscdk } from 'projen';
|
|
2
2
|
export interface Environment {
|
|
3
3
|
readonly account: string;
|
|
4
4
|
readonly region: string;
|
|
@@ -14,10 +14,10 @@ export interface CDKPipelineOptions {
|
|
|
14
14
|
readonly pkgNamespace: string;
|
|
15
15
|
readonly environments: EnvironmentMap;
|
|
16
16
|
}
|
|
17
|
-
export declare class CDKPipeline {
|
|
18
|
-
private
|
|
17
|
+
export declare class CDKPipeline extends Component {
|
|
18
|
+
private app;
|
|
19
19
|
private props;
|
|
20
|
-
constructor(
|
|
20
|
+
constructor(app: awscdk.AwsCdkTypeScriptApp, props: CDKPipelineOptions);
|
|
21
21
|
private createApplicationEntrypoint;
|
|
22
22
|
private createReleaseTasks;
|
|
23
23
|
private createPersonalStage;
|
package/lib/pipeline.js
CHANGED
|
@@ -5,16 +5,17 @@ exports.CDKPipeline = void 0;
|
|
|
5
5
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
const projen_1 = require("projen");
|
|
7
7
|
const common_1 = require("projen/lib/common");
|
|
8
|
-
class CDKPipeline {
|
|
9
|
-
constructor(
|
|
10
|
-
|
|
8
|
+
class CDKPipeline extends projen_1.Component {
|
|
9
|
+
constructor(app, props) {
|
|
10
|
+
super(app);
|
|
11
|
+
this.app = app;
|
|
11
12
|
this.props = props;
|
|
12
|
-
this.
|
|
13
|
-
// this.
|
|
13
|
+
this.app.addDevDeps('@types/standard-version', 'standard-version', 'cdk-assets');
|
|
14
|
+
// this.app.addDeps(
|
|
14
15
|
// );
|
|
15
16
|
// Remove assembly before synth
|
|
16
|
-
this.project.tasks.tryFind('synth')?.prependExec(`rm -rf ${this.
|
|
17
|
-
this.project.tasks.tryFind('synth:silent')?.prependExec(`rm -rf ${this.
|
|
17
|
+
this.project.tasks.tryFind('synth')?.prependExec(`rm -rf ${this.app.cdkConfig.cdkout}`);
|
|
18
|
+
this.project.tasks.tryFind('synth:silent')?.prependExec(`rm -rf ${this.app.cdkConfig.cdkout}`);
|
|
18
19
|
// Remove conflicting tasks
|
|
19
20
|
this.project.removeTask('deploy');
|
|
20
21
|
this.project.removeTask('diff');
|
|
@@ -28,7 +29,7 @@ class CDKPipeline {
|
|
|
28
29
|
this.createApplicationEntrypoint();
|
|
29
30
|
}
|
|
30
31
|
createApplicationEntrypoint() {
|
|
31
|
-
const appFile = new projen_1.TextFile(this.project, `${this.
|
|
32
|
+
const appFile = new projen_1.TextFile(this.project, `${this.app.srcdir}/app.ts`);
|
|
32
33
|
appFile.addLine(`// ${common_1.PROJEN_MARKER}
|
|
33
34
|
/* eslint-disable object-curly-spacing */
|
|
34
35
|
/* eslint-disable comma-spacing */
|
|
@@ -75,10 +76,10 @@ export class PipelineApp extends App {
|
|
|
75
76
|
this.project.addTask('publish:assets', {
|
|
76
77
|
steps: [
|
|
77
78
|
{
|
|
78
|
-
exec: `npx cdk-assets -p ${this.
|
|
79
|
+
exec: `npx cdk-assets -p ${this.app.cdkConfig.cdkout}/${this.props.stackPrefix}-dev.assets.json publish`,
|
|
79
80
|
},
|
|
80
81
|
{
|
|
81
|
-
exec: `npx cdk-assets -p ${this.
|
|
82
|
+
exec: `npx cdk-assets -p ${this.app.cdkConfig.cdkout}/${this.props.stackPrefix}-prod.assets.json publish`,
|
|
82
83
|
},
|
|
83
84
|
],
|
|
84
85
|
});
|
|
@@ -96,14 +97,14 @@ export class PipelineApp extends App {
|
|
|
96
97
|
this.project.addTask('release:push-assembly', {
|
|
97
98
|
steps: [
|
|
98
99
|
{
|
|
99
|
-
exec: `pipelines-release create-manifest "${this.
|
|
100
|
+
exec: `pipelines-release create-manifest "${this.app.cdkConfig.cdkout}" "${this.props.pkgNamespace}"`,
|
|
100
101
|
},
|
|
101
102
|
{
|
|
102
|
-
cwd: this.
|
|
103
|
+
cwd: this.app.cdkConfig.cdkout,
|
|
103
104
|
exec: 'npm version --no-git-tag-version from-git',
|
|
104
105
|
},
|
|
105
106
|
{
|
|
106
|
-
cwd: this.
|
|
107
|
+
cwd: this.app.cdkConfig.cdkout,
|
|
107
108
|
exec: 'npm publish',
|
|
108
109
|
},
|
|
109
110
|
],
|
|
@@ -136,14 +137,14 @@ export class PipelineApp extends App {
|
|
|
136
137
|
}
|
|
137
138
|
createPipelineStage(stageName) {
|
|
138
139
|
this.project.addTask(`deploy:${stageName}`, {
|
|
139
|
-
exec: `cdk --app ${this.
|
|
140
|
+
exec: `cdk --app ${this.app.cdkConfig.cdkout} --progress events --require-approval never deploy ${this.props.stackPrefix}-${stageName}`,
|
|
140
141
|
});
|
|
141
142
|
this.project.addTask(`diff:${stageName}`, {
|
|
142
|
-
exec: `cdk --app ${this.
|
|
143
|
+
exec: `cdk --app ${this.app.cdkConfig.cdkout} diff ${this.props.stackPrefix}-${stageName}`,
|
|
143
144
|
});
|
|
144
145
|
}
|
|
145
146
|
}
|
|
146
147
|
_a = JSII_RTTI_SYMBOL_1;
|
|
147
|
-
CDKPipeline[_a] = { fqn: "projen-pipelines.CDKPipeline", version: "0.0.
|
|
148
|
+
CDKPipeline[_a] = { fqn: "projen-pipelines.CDKPipeline", version: "0.0.1" };
|
|
148
149
|
exports.CDKPipeline = CDKPipeline;
|
|
149
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGlwZWxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBMEM7QUFDMUMsOENBQWtEO0FBb0JsRCxNQUFhLFdBQVc7SUFFdEIsWUFBb0IsT0FBbUMsRUFBVSxLQUF5QjtRQUF0RSxZQUFPLEdBQVAsT0FBTyxDQUE0QjtRQUFVLFVBQUssR0FBTCxLQUFLLENBQW9CO1FBRXhGLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUNyQix5QkFBeUIsRUFDekIsa0JBQWtCLEVBQ2xCLFlBQVksQ0FDYixDQUFDO1FBQ0Ysd0JBQXdCO1FBQ3hCLEtBQUs7UUFFTCwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLFdBQVcsQ0FBQyxVQUFVLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDNUYsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxVQUFVLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFFbkcsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1FBRTNCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRTFCLElBQUksQ0FBQyxt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QUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLHNEQUFzRCxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxTQUFTLEVBQUU7U0FDNUksQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxTQUFTLEVBQUUsRUFBRTtZQUN4QyxJQUFJLEVBQUUsYUFBYSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLFNBQVMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLElBQUksU0FBUyxFQUFFO1NBQy9GLENBQUMsQ0FBQztJQUNMLENBQUM7Ozs7QUF6SlUsa0NBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBUZXh0RmlsZSwgYXdzY2RrIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IFBST0pFTl9NQVJLRVIgfSBmcm9tICdwcm9qZW4vbGliL2NvbW1vbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnQge1xuICByZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHJlZ2lvbjogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50TWFwIHtcbiAgcmVhZG9ubHkgcGVyc29uYWw6IEVudmlyb25tZW50O1xuICByZWFkb25seSBmZWF0dXJlOiBFbnZpcm9ubWVudDtcbiAgcmVhZG9ubHkgZGV2OiBFbnZpcm9ubWVudDtcbiAgcmVhZG9ubHkgcHJvZDogRW52aXJvbm1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ0RLUGlwZWxpbmVPcHRpb25zIHtcbiAgcmVhZG9ubHkgc3RhY2tQcmVmaXg6IHN0cmluZztcbiAgcmVhZG9ubHkgcGtnTmFtZXNwYWNlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGVudmlyb25tZW50czogRW52aXJvbm1lbnRNYXA7XG59XG5cbmV4cG9ydCBjbGFzcyBDREtQaXBlbGluZSB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwcm9qZWN0OiBhd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcCwgcHJpdmF0ZSBwcm9wczogQ0RLUGlwZWxpbmVPcHRpb25zKSB7XG5cbiAgICB0aGlzLnByb2plY3QuYWRkRGV2RGVwcyhcbiAgICAgICdAdHlwZXMvc3RhbmRhcmQtdmVyc2lvbicsXG4gICAgICAnc3RhbmRhcmQtdmVyc2lvbicsXG4gICAgICAnY2RrLWFzc2V0cycsXG4gICAgKTtcbiAgICAvLyB0aGlzLnByb2plY3QuYWRkRGVwcyhcbiAgICAvLyApO1xuXG4gICAgLy8gUmVtb3ZlIGFzc2VtYmx5IGJlZm9yZSBzeW50aFxuICAgIHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKCdzeW50aCcpPy5wcmVwZW5kRXhlYyhgcm0gLXJmICR7dGhpcy5wcm9qZWN0LmNka0NvbmZpZy5jZGtvdXR9YCk7XG4gICAgdGhpcy5wcm9qZWN0LnRhc2tzLnRyeUZpbmQoJ3N5bnRoOnNpbGVudCcpPy5wcmVwZW5kRXhlYyhgcm0gLXJmICR7dGhpcy5wcm9qZWN0LmNka0NvbmZpZy5jZGtvdXR9YCk7XG5cbiAgICAvLyBSZW1vdmUgY29uZmxpY3RpbmcgdGFza3NcbiAgICB0aGlzLnByb2plY3QucmVtb3ZlVGFzaygnZGVwbG95Jyk7XG4gICAgdGhpcy5wcm9qZWN0LnJlbW92ZVRhc2soJ2RpZmYnKTtcbiAgICB0aGlzLnByb2plY3QucmVtb3ZlVGFzaygnZGVzdHJveScpO1xuICAgIHRoaXMucHJvamVjdC5yZW1vdmVUYXNrKCd3YXRjaCcpO1xuXG4gICAgdGhpcy5jcmVhdGVQZXJzb25hbFN0YWdlKCk7XG5cbiAgICB0aGlzLmNyZWF0ZUZlYXR1cmVTdGFnZSgpO1xuXG4gICAgdGhpcy5jcmVhdGVQaXBlbGluZVN0YWdlKCdkZXYnKTtcbiAgICB0aGlzLmNyZWF0ZVBpcGVsaW5lU3RhZ2UoJ3Byb2QnKTtcblxuICAgIHRoaXMuY3JlYXRlUmVsZWFzZVRhc2tzKCk7XG5cbiAgICB0aGlzLmNyZWF0ZUFwcGxpY2F0aW9uRW50cnlwb2ludCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVBcHBsaWNhdGlvbkVudHJ5cG9pbnQoKSB7XG4gICAgY29uc3QgYXBwRmlsZSA9IG5ldyBUZXh0RmlsZSh0aGlzLnByb2plY3QsIGAke3RoaXMucHJvamVjdC5zcmNkaXJ9L2FwcC50c2ApO1xuICAgIGFwcEZpbGUuYWRkTGluZShgLy8gJHtQUk9KRU5fTUFSS0VSfVxuLyogZXNsaW50LWRpc2FibGUgb2JqZWN0LWN1cmx5LXNwYWNpbmcgKi9cbi8qIGVzbGludC1kaXNhYmxlIGNvbW1hLXNwYWNpbmcgKi9cbi8qIGVzbGludC1kaXNhYmxlIHF1b3RlcyAqL1xuLyogZXNsaW50LWRpc2FibGUga2V5LXNwYWNpbmcgKi9cbi8qIGVzbGludC1kaXNhYmxlIHF1b3RlLXByb3BzICovXG5pbXBvcnQgeyBBcHAsIEFwcFByb3BzLCBTdGFjaywgU3RhY2tQcm9wcyB9IGZyb20gJ2F3cy1jZGstbGliJztcblxuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUFwcFByb3BzIGV4dGVuZHMgQXBwUHJvcHMge1xuICBwcm92aWRlRGV2U3RhY2s/OiAoYXBwOiBBcHAsIHN0YWNrSWQ6IHN0cmluZywgcHJvcHM6IFBpcGVsaW5lQXBwU3RhY2tQcm9wcykgPT4gU3RhY2s7XG4gIHByb3ZpZGVQcm9kU3RhY2s/OiAoYXBwOiBBcHAsIHN0YWNrSWQ6IHN0cmluZywgcHJvcHM6IFBpcGVsaW5lQXBwU3RhY2tQcm9wcykgPT4gU3RhY2s7XG4gIHByb3ZpZGVQZXJzb25hbFN0YWNrPzogKGFwcDogQXBwLCBzdGFja0lkOiBzdHJpbmcsIHByb3BzOiBQaXBlbGluZUFwcFN0YWNrUHJvcHMpID0+IFN0YWNrO1xuICBwcm92aWRlRmVhdHVyZVN0YWNrPzogKGFwcDogQXBwLCBzdGFja0lkOiBzdHJpbmcsIHByb3BzOiBQaXBlbGluZUFwcFN0YWNrUHJvcHMpID0+IFN0YWNrO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVsaW5lQXBwU3RhY2tQcm9wcyBleHRlbmRzIFN0YWNrUHJvcHMge1xuICBzdGFnZU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFBpcGVsaW5lQXBwIGV4dGVuZHMgQXBwIHtcbiAgY29uc3RydWN0b3IocHJvcHM6IFBpcGVsaW5lQXBwUHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICBpZiAocHJvcHMucHJvdmlkZURldlN0YWNrKSB7XG4gICAgICBwcm9wcy5wcm92aWRlRGV2U3RhY2sodGhpcywgJyR7dGhpcy5wcm9wcy5zdGFja1ByZWZpeH0tZGV2JywgeyBlbnY6ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5wcm9wcy5lbnZpcm9ubWVudHMuZGV2KX0sIHN0YWNrTmFtZTogJyR7dGhpcy5wcm9wcy5zdGFja1ByZWZpeH0tZGV2Jywgc3RhZ2VOYW1lOiAnZGV2JyB9KTtcbiAgICB9XG4gICAgaWYgKHByb3BzLnByb3ZpZGVQcm9kU3RhY2spIHtcbiAgICAgIHByb3BzLnByb3ZpZGVQcm9kU3RhY2sodGhpcywgJyR7dGhpcy5wcm9wcy5zdGFja1ByZWZpeH0tcHJvZCcsIHsgZW52OiAke0pTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMuZW52aXJvbm1lbnRzLnByb2QpfSwgc3RhY2tOYW1lOiAnJHt0aGlzLnByb3BzLnN0YWNrUHJlZml4fS1wcm9kJywgc3RhZ2VOYW1lOiAncHJvZCcgfSk7XG4gICAgfVxuICAgIGlmIChwcm9wcy5wcm92aWRlUGVyc29uYWxTdGFjayAmJiBwcm9jZXNzLmVudi5VU0VSKSB7XG4gICAgICBjb25zdCBzdGFnZU5hbWUgPSAncGVyc29uYWwtJyArIHByb2Nlc3MuZW52LlVTRVIudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXFxcXFwvL2csICctJyk7XG4gICAgICBwcm9wcy5wcm92aWRlUGVyc29uYWxTdGFjayh0aGlzLCAnJHt0aGlzLnByb3BzLnN0YWNrUHJlZml4fS1wZXJzb25hbCcsIHsgZW52OiAke0pTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMuZW52aXJvbm1lbnRzLnBlcnNvbmFsKX0sIHN0YWNrTmFtZTogXFxgJHt0aGlzLnByb3BzLnN0YWNrUHJlZml4fS1cXCR7c3RhZ2VOYW1lfVxcYCwgc3RhZ2VOYW1lIH0pO1xuICAgIH1cbiAgICBpZiAocHJvcHMucHJvdmlkZUZlYXR1cmVTdGFjayAmJiBwcm9jZXNzLmVudi5CUkFOQ0gpIHtcbiAgICAgIGNvbnN0IHN0YWdlTmFtZSA9ICdmZWF0dXJlLScgKyBwcm9jZXNzLmVudi5CUkFOQ0gudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXFxcXFwvL2csICctJyk7XG4gICAgICBwcm9wcy5wcm92aWRlRmVhdHVyZVN0YWNrKHRoaXMsICcke3RoaXMucHJvcHMuc3RhY2tQcmVmaXh9LWZlYXR1cmUnLCB7IGVudjogJHtKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLmVudmlyb25tZW50cy5mZWF0dXJlKX0sIHN0YWNrTmFtZTogXFxgJHt0aGlzLnByb3BzLnN0YWNrUHJlZml4fS1cXCR7c3RhZ2VOYW1lfVxcYCwgc3RhZ2VOYW1lIH0pO1xuICAgIH1cbiAgfVxufVxuYCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJlbGVhc2VUYXNrcygpIHtcbiAgICAvLyBUYXNrIHRvIHB1Ymxpc2ggdGhlIENESyBhc3NldHMgdG8gYWxsIGFjY291bnRzXG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ3B1Ymxpc2g6YXNzZXRzJywge1xuICAgICAgc3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV4ZWM6IGBucHggY2RrLWFzc2V0cyAtcCAke3RoaXMucHJvamVjdC5jZGtDb25maWcuY2Rrb3V0fS8ke3RoaXMucHJvcHMuc3RhY2tQcmVmaXh9LWRldi5hc3NldHMuanNvbiBwdWJsaXNoYCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGV4ZWM6IGBucHggY2RrLWFzc2V0cyAtcCAke3RoaXMucHJvamVjdC5jZGtDb25maWcuY2Rrb3V0fS8ke3RoaXMucHJvcHMuc3RhY2tQcmVmaXh9LXByb2QuYXNzZXRzLmpzb24gcHVibGlzaGAsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuXG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ2J1bXAnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0J1bXBzIHZlcnNpb24gYmFzZWQgb24gbGF0ZXN0IGdpdCB0YWcnLFxuICAgICAgc3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV4ZWM6ICdwaXBlbGluZXMtcmVsZWFzZSBidW1wJyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIGV4ZWM6ICdnaXQgcHVzaCAtLXRhZ3MnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygncmVsZWFzZTpwdXNoLWFzc2VtYmx5Jywge1xuICAgICAgc3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV4ZWM6IGBwaXBlbGluZXMtcmVsZWFzZSBjcmVhdGUtbWFuaWZlc3QgXCIke3RoaXMucHJvamVjdC5jZGtDb25maWcuY2Rrb3V0fVwiICBcIiR7dGhpcy5wcm9wcy5wa2dOYW1lc3BhY2V9XCJgLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY3dkOiB0aGlzLnByb2plY3QuY2RrQ29uZmlnLmNka291dCxcbiAgICAgICAgICBleGVjOiAnbnBtIHZlcnNpb24gLS1uby1naXQtdGFnLXZlcnNpb24gZnJvbS1naXQnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY3dkOiB0aGlzLnByb2plY3QuY2RrQ29uZmlnLmNka291dCxcbiAgICAgICAgICBleGVjOiAnbnBtIHB1Ymxpc2gnLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUGVyc29uYWxTdGFnZSgpIHtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygnZGVwbG95OnBlcnNvbmFsJywge1xuICAgICAgZXhlYzogYGNkayBkZXBsb3kgJHt0aGlzLnByb3BzLnN0YWNrUHJlZml4fS1wZXJzb25hbGAsXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ3dhdGNoOnBlcnNvbmFsJywge1xuICAgICAgZXhlYzogYGNkayBkZXBsb3kgLS13YXRjaCAtLWhvdHN3YXAgJHt0aGlzLnByb3BzLnN0YWNrUHJlZml4fS1wZXJzb25hbGAsXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ2RpZmY6cGVyc29uYWwnLCB7XG4gICAgICBleGVjOiBgY2RrIGRpZmYgJHt0aGlzLnByb3BzLnN0YWNrUHJlZml4fS1wZXJzb25hbGAsXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ2Rlc3Ryb3k6cGVyc29uYWwnLCB7XG4gICAgICBleGVjOiBgY2RrIGRlc3Ryb3kgJHt0aGlzLnByb3BzLnN0YWNrUHJlZml4fS1wZXJzb25hbGAsXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUZlYXR1cmVTdGFnZSgpIHtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygnZGVwbG95OmZlYXR1cmUnLCB7XG4gICAgICBleGVjOiBgY2RrIC0tcHJvZ3Jlc3MgZXZlbnRzIC0tcmVxdWlyZS1hcHByb3ZhbCBuZXZlciBkZXBsb3kgJHt0aGlzLnByb3BzLnN0YWNrUHJlZml4fS1mZWF0dXJlYCxcbiAgICB9KTtcbiAgICB0aGlzLnByb2plY3QuYWRkVGFzaygnZGlmZjpmZWF0dXJlJywge1xuICAgICAgZXhlYzogYGNkayBkaWZmICR7dGhpcy5wcm9wcy5zdGFja1ByZWZpeH0tZmVhdHVyZWAsXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ2Rlc3Ryb3k6ZmVhdHVyZScsIHtcbiAgICAgIGV4ZWM6IGBjZGsgZGVzdHJveSAke3RoaXMucHJvcHMuc3RhY2tQcmVmaXh9LWZlYXR1cmVgLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQaXBlbGluZVN0YWdlKHN0YWdlTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soYGRlcGxveToke3N0YWdlTmFtZX1gLCB7XG4gICAgICBleGVjOiBgY2RrIC0tYXBwICR7dGhpcy5wcm9qZWN0LmNka0NvbmZpZy5jZGtvdXR9IC0tcHJvZ3Jlc3MgZXZlbnRzIC0tcmVxdWlyZS1hcHByb3ZhbCBuZXZlciBkZXBsb3kgJHt0aGlzLnByb3BzLnN0YWNrUHJlZml4fS0ke3N0YWdlTmFtZX1gLFxuICAgIH0pO1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKGBkaWZmOiR7c3RhZ2VOYW1lfWAsIHtcbiAgICAgIGV4ZWM6IGBjZGsgLS1hcHAgJHt0aGlzLnByb2plY3QuY2RrQ29uZmlnLmNka291dH0gZGlmZiAke3RoaXMucHJvcHMuc3RhY2tQcmVmaXh9LSR7c3RhZ2VOYW1lfWAsXG4gICAgfSk7XG4gIH1cbn0iXX0=
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZWxpbmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvcGlwZWxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxtQ0FBcUQ7QUFDckQsOENBQWtEO0FBb0JsRCxNQUFhLFdBQVksU0FBUSxrQkFBUztJQUV4QyxZQUFvQixHQUErQixFQUFVLEtBQXlCO1FBQ3BGLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQURPLFFBQUcsR0FBSCxHQUFHLENBQTRCO1FBQVUsVUFBSyxHQUFMLEtBQUssQ0FBb0I7UUFHcEYsSUFBSSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQ2pCLHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIsWUFBWSxDQUNiLENBQUM7UUFDRixvQkFBb0I7UUFDcEIsS0FBSztRQUVMLCtCQUErQjtRQUMvQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUUsV0FBVyxDQUFDLFVBQVUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsV0FBVyxDQUFDLFVBQVUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUUvRiwyQkFBMkI7UUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFakMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFM0IsSUFB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QUFVLFNBQVMsRUFBRSxFQUFFO1lBQzFDLElBQUksRUFBRSxhQUFhLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sc0RBQXNELElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxJQUFJLFNBQVMsRUFBRTtTQUN4SSxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLFNBQVMsRUFBRSxFQUFFO1lBQ3hDLElBQUksRUFBRSxhQUFhLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sU0FBUyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsSUFBSSxTQUFTLEVBQUU7U0FDM0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7OztBQTFKVSxrQ0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVGV4dEZpbGUsIGF3c2NkayB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBQUk9KRU5fTUFSS0VSIH0gZnJvbSAncHJvamVuL2xpYi9jb21tb24nO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50IHtcbiAgcmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudE1hcCB7XG4gIHJlYWRvbmx5IHBlcnNvbmFsOiBFbnZpcm9ubWVudDtcbiAgcmVhZG9ubHkgZmVhdHVyZTogRW52aXJvbm1lbnQ7XG4gIHJlYWRvbmx5IGRldjogRW52aXJvbm1lbnQ7XG4gIHJlYWRvbmx5IHByb2Q6IEVudmlyb25tZW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENES1BpcGVsaW5lT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHN0YWNrUHJlZml4OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHBrZ05hbWVzcGFjZTogc3RyaW5nO1xuICByZWFkb25seSBlbnZpcm9ubWVudHM6IEVudmlyb25tZW50TWFwO1xufVxuXG5leHBvcnQgY2xhc3MgQ0RLUGlwZWxpbmUgZXh0ZW5kcyBDb21wb25lbnQge1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgYXBwOiBhd3NjZGsuQXdzQ2RrVHlwZVNjcmlwdEFwcCwgcHJpdmF0ZSBwcm9wczogQ0RLUGlwZWxpbmVPcHRpb25zKSB7XG4gICAgc3VwZXIoYXBwKTtcblxuICAgIHRoaXMuYXBwLmFkZERldkRlcHMoXG4gICAgICAnQHR5cGVzL3N0YW5kYXJkLXZlcnNpb24nLFxuICAgICAgJ3N0YW5kYXJkLXZlcnNpb24nLFxuICAgICAgJ2Nkay1hc3NldHMnLFxuICAgICk7XG4gICAgLy8gdGhpcy5hcHAuYWRkRGVwcyhcbiAgICAvLyApO1xuXG4gICAgLy8gUmVtb3ZlIGFzc2VtYmx5IGJlZm9yZSBzeW50aFxuICAgIHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKCdzeW50aCcpPy5wcmVwZW5kRXhlYyhgcm0gLXJmICR7dGhpcy5hcHAuY2RrQ29uZmlnLmNka291dH1gKTtcbiAgICB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZCgnc3ludGg6c2lsZW50Jyk/LnByZXBlbmRFeGVjKGBybSAtcmYgJHt0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0fWApO1xuXG4gICAgLy8gUmVtb3ZlIGNvbmZsaWN0aW5nIHRhc2tzXG4gICAgdGhpcy5wcm9qZWN0LnJlbW92ZVRhc2soJ2RlcGxveScpO1xuICAgIHRoaXMucHJvamVjdC5yZW1vdmVUYXNrKCdkaWZmJyk7XG4gICAgdGhpcy5wcm9qZWN0LnJlbW92ZVRhc2soJ2Rlc3Ryb3knKTtcbiAgICB0aGlzLnByb2plY3QucmVtb3ZlVGFzaygnd2F0Y2gnKTtcblxuICAgIHRoaXMuY3JlYXRlUGVyc29uYWxTdGFnZSgpO1xuXG4gICAgdGhpcy5jcmVhdGVGZWF0dXJlU3RhZ2UoKTtcblxuICAgIHRoaXMuY3JlYXRlUGlwZWxpbmVTdGFnZSgnZGV2Jyk7XG4gICAgdGhpcy5jcmVhdGVQaXBlbGluZVN0YWdlKCdwcm9kJyk7XG5cbiAgICB0aGlzLmNyZWF0ZVJlbGVhc2VUYXNrcygpO1xuXG4gICAgdGhpcy5jcmVhdGVBcHBsaWNhdGlvbkVudHJ5cG9pbnQoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlQXBwbGljYXRpb25FbnRyeXBvaW50KCkge1xuICAgIGNvbnN0IGFwcEZpbGUgPSBuZXcgVGV4dEZpbGUodGhpcy5wcm9qZWN0LCBgJHt0aGlzLmFwcC5zcmNkaXJ9L2FwcC50c2ApO1xuICAgIGFwcEZpbGUuYWRkTGluZShgLy8gJHtQUk9KRU5fTUFSS0VSfVxuLyogZXNsaW50LWRpc2FibGUgb2JqZWN0LWN1cmx5LXNwYWNpbmcgKi9cbi8qIGVzbGludC1kaXNhYmxlIGNvbW1hLXNwYWNpbmcgKi9cbi8qIGVzbGludC1kaXNhYmxlIHF1b3RlcyAqL1xuLyogZXNsaW50LWRpc2FibGUga2V5LXNwYWNpbmcgKi9cbi8qIGVzbGludC1kaXNhYmxlIHF1b3RlLXByb3BzICovXG5pbXBvcnQgeyBBcHAsIEFwcFByb3BzLCBTdGFjaywgU3RhY2tQcm9wcyB9IGZyb20gJ2F3cy1jZGstbGliJztcblxuZXhwb3J0IGludGVyZmFjZSBQaXBlbGluZUFwcFByb3BzIGV4dGVuZHMgQXBwUHJvcHMge1xuICBwcm92aWRlRGV2U3RhY2s/OiAoYXBwOiBBcHAsIHN0YWNrSWQ6IHN0cmluZywgcHJvcHM6IFBpcGVsaW5lQXBwU3RhY2tQcm9wcykgPT4gU3RhY2s7XG4gIHByb3ZpZGVQcm9kU3RhY2s/OiAoYXBwOiBBcHAsIHN0YWNrSWQ6IHN0cmluZywgcHJvcHM6IFBpcGVsaW5lQXBwU3RhY2tQcm9wcykgPT4gU3RhY2s7XG4gIHByb3ZpZGVQZXJzb25hbFN0YWNrPzogKGFwcDogQXBwLCBzdGFja0lkOiBzdHJpbmcsIHByb3BzOiBQaXBlbGluZUFwcFN0YWNrUHJvcHMpID0+IFN0YWNrO1xuICBwcm92aWRlRmVhdHVyZVN0YWNrPzogKGFwcDogQXBwLCBzdGFja0lkOiBzdHJpbmcsIHByb3BzOiBQaXBlbGluZUFwcFN0YWNrUHJvcHMpID0+IFN0YWNrO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBpcGVsaW5lQXBwU3RhY2tQcm9wcyBleHRlbmRzIFN0YWNrUHJvcHMge1xuICBzdGFnZU5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFBpcGVsaW5lQXBwIGV4dGVuZHMgQXBwIHtcbiAgY29uc3RydWN0b3IocHJvcHM6IFBpcGVsaW5lQXBwUHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG5cbiAgICBpZiAocHJvcHMucHJvdmlkZURldlN0YWNrKSB7XG4gICAgICBwcm9wcy5wcm92aWRlRGV2U3RhY2sodGhpcywgJyR7dGhpcy5wcm9wcy5zdGFja1ByZWZpeH0tZGV2JywgeyBlbnY6ICR7SlNPTi5zdHJpbmdpZnkodGhpcy5wcm9wcy5lbnZpcm9ubWVudHMuZGV2KX0sIHN0YWNrTmFtZTogJyR7dGhpcy5wcm9wcy5zdGFja1ByZWZpeH0tZGV2Jywgc3RhZ2VOYW1lOiAnZGV2JyB9KTtcbiAgICB9XG4gICAgaWYgKHByb3BzLnByb3ZpZGVQcm9kU3RhY2spIHtcbiAgICAgIHByb3BzLnByb3ZpZGVQcm9kU3RhY2sodGhpcywgJyR7dGhpcy5wcm9wcy5zdGFja1ByZWZpeH0tcHJvZCcsIHsgZW52OiAke0pTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMuZW52aXJvbm1lbnRzLnByb2QpfSwgc3RhY2tOYW1lOiAnJHt0aGlzLnByb3BzLnN0YWNrUHJlZml4fS1wcm9kJywgc3RhZ2VOYW1lOiAncHJvZCcgfSk7XG4gICAgfVxuICAgIGlmIChwcm9wcy5wcm92aWRlUGVyc29uYWxTdGFjayAmJiBwcm9jZXNzLmVudi5VU0VSKSB7XG4gICAgICBjb25zdCBzdGFnZU5hbWUgPSAncGVyc29uYWwtJyArIHByb2Nlc3MuZW52LlVTRVIudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXFxcXFwvL2csICctJyk7XG4gICAgICBwcm9wcy5wcm92aWRlUGVyc29uYWxTdGFjayh0aGlzLCAnJHt0aGlzLnByb3BzLnN0YWNrUHJlZml4fS1wZXJzb25hbCcsIHsgZW52OiAke0pTT04uc3RyaW5naWZ5KHRoaXMucHJvcHMuZW52aXJvbm1lbnRzLnBlcnNvbmFsKX0sIHN0YWNrTmFtZTogXFxgJHt0aGlzLnByb3BzLnN0YWNrUHJlZml4fS1cXCR7c3RhZ2VOYW1lfVxcYCwgc3RhZ2VOYW1lIH0pO1xuICAgIH1cbiAgICBpZiAocHJvcHMucHJvdmlkZUZlYXR1cmVTdGFjayAmJiBwcm9jZXNzLmVudi5CUkFOQ0gpIHtcbiAgICAgIGNvbnN0IHN0YWdlTmFtZSA9ICdmZWF0dXJlLScgKyBwcm9jZXNzLmVudi5CUkFOQ0gudG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXFxcXFwvL2csICctJyk7XG4gICAgICBwcm9wcy5wcm92aWRlRmVhdHVyZVN0YWNrKHRoaXMsICcke3RoaXMucHJvcHMuc3RhY2tQcmVmaXh9LWZlYXR1cmUnLCB7IGVudjogJHtKU09OLnN0cmluZ2lmeSh0aGlzLnByb3BzLmVudmlyb25tZW50cy5mZWF0dXJlKX0sIHN0YWNrTmFtZTogXFxgJHt0aGlzLnByb3BzLnN0YWNrUHJlZml4fS1cXCR7c3RhZ2VOYW1lfVxcYCwgc3RhZ2VOYW1lIH0pO1xuICAgIH1cbiAgfVxufVxuYCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVJlbGVhc2VUYXNrcygpIHtcbiAgICAvLyBUYXNrIHRvIHB1Ymxpc2ggdGhlIENESyBhc3NldHMgdG8gYWxsIGFjY291bnRzXG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ3B1Ymxpc2g6YXNzZXRzJywge1xuICAgICAgc3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIGV4ZWM6IGBucHggY2RrLWFzc2V0cyAtcCAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9LyR7dGhpcy5wcm9wcy5zdGFja1ByZWZpeH0tZGV2LmFzc2V0cy5qc29uIHB1Ymxpc2hgLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgZXhlYzogYG5weCBjZGstYXNzZXRzIC1wICR7dGhpcy5hcHAuY2RrQ29uZmlnLmNka291dH0vJHt0aGlzLnByb3BzLnN0YWNrUHJlZml4fS1wcm9kLmFzc2V0cy5qc29uIHB1Ymxpc2hgLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKCdidW1wJywge1xuICAgICAgZGVzY3JpcHRpb246ICdCdW1wcyB2ZXJzaW9uIGJhc2VkIG9uIGxhdGVzdCBnaXQgdGFnJyxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBleGVjOiAncGlwZWxpbmVzLXJlbGVhc2UgYnVtcCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBleGVjOiAnZ2l0IHB1c2ggLS10YWdzJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ3JlbGVhc2U6cHVzaC1hc3NlbWJseScsIHtcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBleGVjOiBgcGlwZWxpbmVzLXJlbGVhc2UgY3JlYXRlLW1hbmlmZXN0IFwiJHt0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0fVwiICBcIiR7dGhpcy5wcm9wcy5wa2dOYW1lc3BhY2V9XCJgLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgY3dkOiB0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0LFxuICAgICAgICAgIGV4ZWM6ICducG0gdmVyc2lvbiAtLW5vLWdpdC10YWctdmVyc2lvbiBmcm9tLWdpdCcsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBjd2Q6IHRoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXQsXG4gICAgICAgICAgZXhlYzogJ25wbSBwdWJsaXNoJyxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZVBlcnNvbmFsU3RhZ2UoKSB7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ2RlcGxveTpwZXJzb25hbCcsIHtcbiAgICAgIGV4ZWM6IGBjZGsgZGVwbG95ICR7dGhpcy5wcm9wcy5zdGFja1ByZWZpeH0tcGVyc29uYWxgLFxuICAgIH0pO1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKCd3YXRjaDpwZXJzb25hbCcsIHtcbiAgICAgIGV4ZWM6IGBjZGsgZGVwbG95IC0td2F0Y2ggLS1ob3Rzd2FwICR7dGhpcy5wcm9wcy5zdGFja1ByZWZpeH0tcGVyc29uYWxgLFxuICAgIH0pO1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKCdkaWZmOnBlcnNvbmFsJywge1xuICAgICAgZXhlYzogYGNkayBkaWZmICR7dGhpcy5wcm9wcy5zdGFja1ByZWZpeH0tcGVyc29uYWxgLFxuICAgIH0pO1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKCdkZXN0cm95OnBlcnNvbmFsJywge1xuICAgICAgZXhlYzogYGNkayBkZXN0cm95ICR7dGhpcy5wcm9wcy5zdGFja1ByZWZpeH0tcGVyc29uYWxgLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVGZWF0dXJlU3RhZ2UoKSB7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ2RlcGxveTpmZWF0dXJlJywge1xuICAgICAgZXhlYzogYGNkayAtLXByb2dyZXNzIGV2ZW50cyAtLXJlcXVpcmUtYXBwcm92YWwgbmV2ZXIgZGVwbG95ICR7dGhpcy5wcm9wcy5zdGFja1ByZWZpeH0tZmVhdHVyZWAsXG4gICAgfSk7XG4gICAgdGhpcy5wcm9qZWN0LmFkZFRhc2soJ2RpZmY6ZmVhdHVyZScsIHtcbiAgICAgIGV4ZWM6IGBjZGsgZGlmZiAke3RoaXMucHJvcHMuc3RhY2tQcmVmaXh9LWZlYXR1cmVgLFxuICAgIH0pO1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKCdkZXN0cm95OmZlYXR1cmUnLCB7XG4gICAgICBleGVjOiBgY2RrIGRlc3Ryb3kgJHt0aGlzLnByb3BzLnN0YWNrUHJlZml4fS1mZWF0dXJlYCxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUGlwZWxpbmVTdGFnZShzdGFnZU5hbWU6IHN0cmluZykge1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKGBkZXBsb3k6JHtzdGFnZU5hbWV9YCwge1xuICAgICAgZXhlYzogYGNkayAtLWFwcCAke3RoaXMuYXBwLmNka0NvbmZpZy5jZGtvdXR9IC0tcHJvZ3Jlc3MgZXZlbnRzIC0tcmVxdWlyZS1hcHByb3ZhbCBuZXZlciBkZXBsb3kgJHt0aGlzLnByb3BzLnN0YWNrUHJlZml4fS0ke3N0YWdlTmFtZX1gLFxuICAgIH0pO1xuICAgIHRoaXMucHJvamVjdC5hZGRUYXNrKGBkaWZmOiR7c3RhZ2VOYW1lfWAsIHtcbiAgICAgIGV4ZWM6IGBjZGsgLS1hcHAgJHt0aGlzLmFwcC5jZGtDb25maWcuY2Rrb3V0fSBkaWZmICR7dGhpcy5wcm9wcy5zdGFja1ByZWZpeH0tJHtzdGFnZU5hbWV9YCxcbiAgICB9KTtcbiAgfVxufSJdfQ==
|