deployable-awscdk-app-ts 0.1.680 → 0.1.682
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 +108 -30
- package/API.md +53 -0
- package/lib/index.d.ts +8 -1
- package/lib/index.js +22 -80
- package/lib/steps.d.ts +196 -11
- package/lib/steps.js +503 -154
- package/lib/types.d.ts +13 -0
- package/lib/types.js +7 -1
- package/package.json +1 -1
package/.jsii
CHANGED
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
"deployable-awscdk-app-ts.utils": {
|
|
115
115
|
"locationInModule": {
|
|
116
116
|
"filename": "src/index.ts",
|
|
117
|
-
"line":
|
|
117
|
+
"line": 8
|
|
118
118
|
},
|
|
119
119
|
"symbolId": "src/utils:"
|
|
120
120
|
}
|
|
@@ -135,7 +135,7 @@
|
|
|
135
135
|
"kind": "interface",
|
|
136
136
|
"locationInModule": {
|
|
137
137
|
"filename": "src/types.ts",
|
|
138
|
-
"line":
|
|
138
|
+
"line": 111
|
|
139
139
|
},
|
|
140
140
|
"name": "AWSCredentials",
|
|
141
141
|
"properties": [
|
|
@@ -149,7 +149,7 @@
|
|
|
149
149
|
"immutable": true,
|
|
150
150
|
"locationInModule": {
|
|
151
151
|
"filename": "src/types.ts",
|
|
152
|
-
"line":
|
|
152
|
+
"line": 139
|
|
153
153
|
},
|
|
154
154
|
"name": "region",
|
|
155
155
|
"type": {
|
|
@@ -166,7 +166,7 @@
|
|
|
166
166
|
"immutable": true,
|
|
167
167
|
"locationInModule": {
|
|
168
168
|
"filename": "src/types.ts",
|
|
169
|
-
"line":
|
|
169
|
+
"line": 116
|
|
170
170
|
},
|
|
171
171
|
"name": "accessKeyIdSecretName",
|
|
172
172
|
"optional": true,
|
|
@@ -184,7 +184,7 @@
|
|
|
184
184
|
"immutable": true,
|
|
185
185
|
"locationInModule": {
|
|
186
186
|
"filename": "src/types.ts",
|
|
187
|
-
"line":
|
|
187
|
+
"line": 133
|
|
188
188
|
},
|
|
189
189
|
"name": "assumeRoleDurationSeconds",
|
|
190
190
|
"optional": true,
|
|
@@ -201,7 +201,7 @@
|
|
|
201
201
|
"immutable": true,
|
|
202
202
|
"locationInModule": {
|
|
203
203
|
"filename": "src/types.ts",
|
|
204
|
-
"line":
|
|
204
|
+
"line": 127
|
|
205
205
|
},
|
|
206
206
|
"name": "roleToAssume",
|
|
207
207
|
"optional": true,
|
|
@@ -219,7 +219,7 @@
|
|
|
219
219
|
"immutable": true,
|
|
220
220
|
"locationInModule": {
|
|
221
221
|
"filename": "src/types.ts",
|
|
222
|
-
"line":
|
|
222
|
+
"line": 122
|
|
223
223
|
},
|
|
224
224
|
"name": "secretAccessKeySecretName",
|
|
225
225
|
"optional": true,
|
|
@@ -230,6 +230,34 @@
|
|
|
230
230
|
],
|
|
231
231
|
"symbolId": "src/types:AWSCredentials"
|
|
232
232
|
},
|
|
233
|
+
"deployable-awscdk-app-ts.DeployJobStrategy": {
|
|
234
|
+
"assembly": "deployable-awscdk-app-ts",
|
|
235
|
+
"docs": {
|
|
236
|
+
"stability": "stable"
|
|
237
|
+
},
|
|
238
|
+
"fqn": "deployable-awscdk-app-ts.DeployJobStrategy",
|
|
239
|
+
"kind": "enum",
|
|
240
|
+
"locationInModule": {
|
|
241
|
+
"filename": "src/types.ts",
|
|
242
|
+
"line": 26
|
|
243
|
+
},
|
|
244
|
+
"members": [
|
|
245
|
+
{
|
|
246
|
+
"docs": {
|
|
247
|
+
"stability": "stable"
|
|
248
|
+
},
|
|
249
|
+
"name": "MATRIX"
|
|
250
|
+
},
|
|
251
|
+
{
|
|
252
|
+
"docs": {
|
|
253
|
+
"stability": "stable"
|
|
254
|
+
},
|
|
255
|
+
"name": "MULTI_JOB"
|
|
256
|
+
}
|
|
257
|
+
],
|
|
258
|
+
"name": "DeployJobStrategy",
|
|
259
|
+
"symbolId": "src/types:DeployJobStrategy"
|
|
260
|
+
},
|
|
233
261
|
"deployable-awscdk-app-ts.DeployOptions": {
|
|
234
262
|
"assembly": "deployable-awscdk-app-ts",
|
|
235
263
|
"datatype": true,
|
|
@@ -240,7 +268,7 @@
|
|
|
240
268
|
"kind": "interface",
|
|
241
269
|
"locationInModule": {
|
|
242
270
|
"filename": "src/types.ts",
|
|
243
|
-
"line":
|
|
271
|
+
"line": 31
|
|
244
272
|
},
|
|
245
273
|
"name": "DeployOptions",
|
|
246
274
|
"properties": [
|
|
@@ -253,7 +281,7 @@
|
|
|
253
281
|
"immutable": true,
|
|
254
282
|
"locationInModule": {
|
|
255
283
|
"filename": "src/types.ts",
|
|
256
|
-
"line":
|
|
284
|
+
"line": 35
|
|
257
285
|
},
|
|
258
286
|
"name": "environments",
|
|
259
287
|
"type": {
|
|
@@ -275,7 +303,7 @@
|
|
|
275
303
|
"immutable": true,
|
|
276
304
|
"locationInModule": {
|
|
277
305
|
"filename": "src/types.ts",
|
|
278
|
-
"line":
|
|
306
|
+
"line": 61
|
|
279
307
|
},
|
|
280
308
|
"name": "environmentVariableName",
|
|
281
309
|
"optional": true,
|
|
@@ -283,6 +311,24 @@
|
|
|
283
311
|
"primitive": "string"
|
|
284
312
|
}
|
|
285
313
|
},
|
|
314
|
+
{
|
|
315
|
+
"abstract": true,
|
|
316
|
+
"docs": {
|
|
317
|
+
"default": "\"matrix\"",
|
|
318
|
+
"stability": "stable",
|
|
319
|
+
"summary": "Deployment job strategy, whether to use a matrix job or multiple jobs for each environment."
|
|
320
|
+
},
|
|
321
|
+
"immutable": true,
|
|
322
|
+
"locationInModule": {
|
|
323
|
+
"filename": "src/types.ts",
|
|
324
|
+
"line": 80
|
|
325
|
+
},
|
|
326
|
+
"name": "jobStrategy",
|
|
327
|
+
"optional": true,
|
|
328
|
+
"type": {
|
|
329
|
+
"fqn": "deployable-awscdk-app-ts.DeployJobStrategy"
|
|
330
|
+
}
|
|
331
|
+
},
|
|
286
332
|
{
|
|
287
333
|
"abstract": true,
|
|
288
334
|
"docs": {
|
|
@@ -294,7 +340,7 @@
|
|
|
294
340
|
"immutable": true,
|
|
295
341
|
"locationInModule": {
|
|
296
342
|
"filename": "src/types.ts",
|
|
297
|
-
"line":
|
|
343
|
+
"line": 74
|
|
298
344
|
},
|
|
299
345
|
"name": "method",
|
|
300
346
|
"optional": true,
|
|
@@ -313,7 +359,7 @@
|
|
|
313
359
|
"immutable": true,
|
|
314
360
|
"locationInModule": {
|
|
315
361
|
"filename": "src/types.ts",
|
|
316
|
-
"line":
|
|
362
|
+
"line": 54
|
|
317
363
|
},
|
|
318
364
|
"name": "npmConfigEnvironment",
|
|
319
365
|
"optional": true,
|
|
@@ -332,7 +378,7 @@
|
|
|
332
378
|
"immutable": true,
|
|
333
379
|
"locationInModule": {
|
|
334
380
|
"filename": "src/types.ts",
|
|
335
|
-
"line":
|
|
381
|
+
"line": 43
|
|
336
382
|
},
|
|
337
383
|
"name": "stackPattern",
|
|
338
384
|
"optional": true,
|
|
@@ -350,7 +396,7 @@
|
|
|
350
396
|
"immutable": true,
|
|
351
397
|
"locationInModule": {
|
|
352
398
|
"filename": "src/types.ts",
|
|
353
|
-
"line":
|
|
399
|
+
"line": 68
|
|
354
400
|
},
|
|
355
401
|
"name": "taskToRunPreInstall",
|
|
356
402
|
"optional": true,
|
|
@@ -374,7 +420,7 @@
|
|
|
374
420
|
},
|
|
375
421
|
"locationInModule": {
|
|
376
422
|
"filename": "src/index.ts",
|
|
377
|
-
"line":
|
|
423
|
+
"line": 27
|
|
378
424
|
},
|
|
379
425
|
"parameters": [
|
|
380
426
|
{
|
|
@@ -388,7 +434,7 @@
|
|
|
388
434
|
"kind": "class",
|
|
389
435
|
"locationInModule": {
|
|
390
436
|
"filename": "src/index.ts",
|
|
391
|
-
"line":
|
|
437
|
+
"line": 10
|
|
392
438
|
},
|
|
393
439
|
"methods": [
|
|
394
440
|
{
|
|
@@ -398,7 +444,7 @@
|
|
|
398
444
|
},
|
|
399
445
|
"locationInModule": {
|
|
400
446
|
"filename": "src/index.ts",
|
|
401
|
-
"line":
|
|
447
|
+
"line": 90
|
|
402
448
|
},
|
|
403
449
|
"name": "addEnvironments",
|
|
404
450
|
"parameters": [
|
|
@@ -423,11 +469,43 @@
|
|
|
423
469
|
},
|
|
424
470
|
"locationInModule": {
|
|
425
471
|
"filename": "src/index.ts",
|
|
426
|
-
"line":
|
|
472
|
+
"line": 74
|
|
427
473
|
},
|
|
428
474
|
"name": "synth",
|
|
429
475
|
"overrides": "projen.Project"
|
|
430
476
|
},
|
|
477
|
+
{
|
|
478
|
+
"docs": {
|
|
479
|
+
"stability": "stable",
|
|
480
|
+
"summary": "Update environment deployment dependencies."
|
|
481
|
+
},
|
|
482
|
+
"locationInModule": {
|
|
483
|
+
"filename": "src/index.ts",
|
|
484
|
+
"line": 154
|
|
485
|
+
},
|
|
486
|
+
"name": "updateEnvironmentDeploymentDependencies",
|
|
487
|
+
"parameters": [
|
|
488
|
+
{
|
|
489
|
+
"docs": {
|
|
490
|
+
"summary": "an object defining dependencies between environments."
|
|
491
|
+
},
|
|
492
|
+
"name": "environmentDependencies",
|
|
493
|
+
"type": {
|
|
494
|
+
"collection": {
|
|
495
|
+
"elementtype": {
|
|
496
|
+
"collection": {
|
|
497
|
+
"elementtype": {
|
|
498
|
+
"primitive": "string"
|
|
499
|
+
},
|
|
500
|
+
"kind": "array"
|
|
501
|
+
}
|
|
502
|
+
},
|
|
503
|
+
"kind": "map"
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
]
|
|
508
|
+
},
|
|
431
509
|
{
|
|
432
510
|
"docs": {
|
|
433
511
|
"stability": "stable",
|
|
@@ -435,7 +513,7 @@
|
|
|
435
513
|
},
|
|
436
514
|
"locationInModule": {
|
|
437
515
|
"filename": "src/index.ts",
|
|
438
|
-
"line":
|
|
516
|
+
"line": 106
|
|
439
517
|
},
|
|
440
518
|
"name": "updatePostDeployWorkflowScriptToEnvironments",
|
|
441
519
|
"parameters": [
|
|
@@ -472,7 +550,7 @@
|
|
|
472
550
|
},
|
|
473
551
|
"locationInModule": {
|
|
474
552
|
"filename": "src/index.ts",
|
|
475
|
-
"line":
|
|
553
|
+
"line": 123
|
|
476
554
|
},
|
|
477
555
|
"name": "updatePreDeployWorkflowScriptToEnvironments",
|
|
478
556
|
"parameters": [
|
|
@@ -513,7 +591,7 @@
|
|
|
513
591
|
"immutable": true,
|
|
514
592
|
"locationInModule": {
|
|
515
593
|
"filename": "src/index.ts",
|
|
516
|
-
"line":
|
|
594
|
+
"line": 15
|
|
517
595
|
},
|
|
518
596
|
"name": "deployWorkflowTask",
|
|
519
597
|
"type": {
|
|
@@ -529,7 +607,7 @@
|
|
|
529
607
|
"immutable": true,
|
|
530
608
|
"locationInModule": {
|
|
531
609
|
"filename": "src/index.ts",
|
|
532
|
-
"line":
|
|
610
|
+
"line": 66
|
|
533
611
|
},
|
|
534
612
|
"name": "majorNodeVersion",
|
|
535
613
|
"type": {
|
|
@@ -542,7 +620,7 @@
|
|
|
542
620
|
},
|
|
543
621
|
"locationInModule": {
|
|
544
622
|
"filename": "src/index.ts",
|
|
545
|
-
"line":
|
|
623
|
+
"line": 21
|
|
546
624
|
},
|
|
547
625
|
"name": "deployOptions",
|
|
548
626
|
"protected": true,
|
|
@@ -637,7 +715,7 @@
|
|
|
637
715
|
"kind": "interface",
|
|
638
716
|
"locationInModule": {
|
|
639
717
|
"filename": "src/types.ts",
|
|
640
|
-
"line":
|
|
718
|
+
"line": 83
|
|
641
719
|
},
|
|
642
720
|
"name": "EnvironmentOptions",
|
|
643
721
|
"properties": [
|
|
@@ -650,7 +728,7 @@
|
|
|
650
728
|
"immutable": true,
|
|
651
729
|
"locationInModule": {
|
|
652
730
|
"filename": "src/types.ts",
|
|
653
|
-
"line":
|
|
731
|
+
"line": 92
|
|
654
732
|
},
|
|
655
733
|
"name": "awsCredentials",
|
|
656
734
|
"type": {
|
|
@@ -666,7 +744,7 @@
|
|
|
666
744
|
"immutable": true,
|
|
667
745
|
"locationInModule": {
|
|
668
746
|
"filename": "src/types.ts",
|
|
669
|
-
"line":
|
|
747
|
+
"line": 87
|
|
670
748
|
},
|
|
671
749
|
"name": "name",
|
|
672
750
|
"type": {
|
|
@@ -683,7 +761,7 @@
|
|
|
683
761
|
"immutable": true,
|
|
684
762
|
"locationInModule": {
|
|
685
763
|
"filename": "src/types.ts",
|
|
686
|
-
"line":
|
|
764
|
+
"line": 100
|
|
687
765
|
},
|
|
688
766
|
"name": "postDeployWorkflowScript",
|
|
689
767
|
"optional": true,
|
|
@@ -701,7 +779,7 @@
|
|
|
701
779
|
"immutable": true,
|
|
702
780
|
"locationInModule": {
|
|
703
781
|
"filename": "src/types.ts",
|
|
704
|
-
"line":
|
|
782
|
+
"line": 108
|
|
705
783
|
},
|
|
706
784
|
"name": "preDeployWorkflowScript",
|
|
707
785
|
"optional": true,
|
|
@@ -713,6 +791,6 @@
|
|
|
713
791
|
"symbolId": "src/types:EnvironmentOptions"
|
|
714
792
|
}
|
|
715
793
|
},
|
|
716
|
-
"version": "0.1.
|
|
717
|
-
"fingerprint": "
|
|
794
|
+
"version": "0.1.682",
|
|
795
|
+
"fingerprint": "JRXmy0g4pl0iRZbaqy/CEWxFsIne7m3e7HNr2FIFIZ0="
|
|
718
796
|
}
|
package/API.md
CHANGED
|
@@ -60,6 +60,7 @@ new DeployableAwsCdkTypeScriptApp(options: DeployableAwsCdkTypeScriptAppOptions)
|
|
|
60
60
|
| <code><a href="#deployable-awscdk-app-ts.DeployableAwsCdkTypeScriptApp.setScript">setScript</a></code> | Replaces the contents of an npm package.json script. |
|
|
61
61
|
| <code><a href="#deployable-awscdk-app-ts.DeployableAwsCdkTypeScriptApp.addCdkDependency">addCdkDependency</a></code> | Adds an AWS CDK module dependencies. |
|
|
62
62
|
| <code><a href="#deployable-awscdk-app-ts.DeployableAwsCdkTypeScriptApp.addEnvironments">addEnvironments</a></code> | Add new environments to the application. |
|
|
63
|
+
| <code><a href="#deployable-awscdk-app-ts.DeployableAwsCdkTypeScriptApp.updateEnvironmentDeploymentDependencies">updateEnvironmentDeploymentDependencies</a></code> | Update environment deployment dependencies. |
|
|
63
64
|
| <code><a href="#deployable-awscdk-app-ts.DeployableAwsCdkTypeScriptApp.updatePostDeployWorkflowScriptToEnvironments">updatePostDeployWorkflowScriptToEnvironments</a></code> | Updates the postDeployWorkflowScript for environments. |
|
|
64
65
|
| <code><a href="#deployable-awscdk-app-ts.DeployableAwsCdkTypeScriptApp.updatePreDeployWorkflowScriptToEnvironments">updatePreDeployWorkflowScriptToEnvironments</a></code> | Updates the preDeployWorkflowScript for environments. |
|
|
65
66
|
|
|
@@ -614,6 +615,22 @@ list of environment options.
|
|
|
614
615
|
|
|
615
616
|
---
|
|
616
617
|
|
|
618
|
+
##### `updateEnvironmentDeploymentDependencies` <a name="updateEnvironmentDeploymentDependencies" id="deployable-awscdk-app-ts.DeployableAwsCdkTypeScriptApp.updateEnvironmentDeploymentDependencies"></a>
|
|
619
|
+
|
|
620
|
+
```typescript
|
|
621
|
+
public updateEnvironmentDeploymentDependencies(environmentDependencies: {[ key: string ]: string[]}): void
|
|
622
|
+
```
|
|
623
|
+
|
|
624
|
+
Update environment deployment dependencies.
|
|
625
|
+
|
|
626
|
+
###### `environmentDependencies`<sup>Required</sup> <a name="environmentDependencies" id="deployable-awscdk-app-ts.DeployableAwsCdkTypeScriptApp.updateEnvironmentDeploymentDependencies.parameter.environmentDependencies"></a>
|
|
627
|
+
|
|
628
|
+
- *Type:* {[ key: string ]: string[]}
|
|
629
|
+
|
|
630
|
+
an object defining dependencies between environments.
|
|
631
|
+
|
|
632
|
+
---
|
|
633
|
+
|
|
617
634
|
##### `updatePostDeployWorkflowScriptToEnvironments` <a name="updatePostDeployWorkflowScriptToEnvironments" id="deployable-awscdk-app-ts.DeployableAwsCdkTypeScriptApp.updatePostDeployWorkflowScriptToEnvironments"></a>
|
|
618
635
|
|
|
619
636
|
```typescript
|
|
@@ -4588,6 +4605,7 @@ const deployOptions: DeployOptions = { ... }
|
|
|
4588
4605
|
| --- | --- | --- |
|
|
4589
4606
|
| <code><a href="#deployable-awscdk-app-ts.DeployOptions.property.environments">environments</a></code> | <code><a href="#deployable-awscdk-app-ts.EnvironmentOptions">EnvironmentOptions</a>[]</code> | Environment settings to deploy to. |
|
|
4590
4607
|
| <code><a href="#deployable-awscdk-app-ts.DeployOptions.property.environmentVariableName">environmentVariableName</a></code> | <code>string</code> | Name of the environment variable used to set the deploy environment name. |
|
|
4608
|
+
| <code><a href="#deployable-awscdk-app-ts.DeployOptions.property.jobStrategy">jobStrategy</a></code> | <code><a href="#deployable-awscdk-app-ts.DeployJobStrategy">DeployJobStrategy</a></code> | Deployment job strategy, whether to use a matrix job or multiple jobs for each environment. |
|
|
4591
4609
|
| <code><a href="#deployable-awscdk-app-ts.DeployOptions.property.method">method</a></code> | <code>string</code> | How to perform the deployment. |
|
|
4592
4610
|
| <code><a href="#deployable-awscdk-app-ts.DeployOptions.property.npmConfigEnvironment">npmConfigEnvironment</a></code> | <code>string</code> | npm config name to set as the environment name This might be useful in deployment process. |
|
|
4593
4611
|
| <code><a href="#deployable-awscdk-app-ts.DeployOptions.property.stackPattern">stackPattern</a></code> | <code>string</code> | Regex for stacks to be deployed. |
|
|
@@ -4620,6 +4638,19 @@ Name of the environment variable used to set the deploy environment name.
|
|
|
4620
4638
|
|
|
4621
4639
|
---
|
|
4622
4640
|
|
|
4641
|
+
##### `jobStrategy`<sup>Optional</sup> <a name="jobStrategy" id="deployable-awscdk-app-ts.DeployOptions.property.jobStrategy"></a>
|
|
4642
|
+
|
|
4643
|
+
```typescript
|
|
4644
|
+
public readonly jobStrategy: DeployJobStrategy;
|
|
4645
|
+
```
|
|
4646
|
+
|
|
4647
|
+
- *Type:* <a href="#deployable-awscdk-app-ts.DeployJobStrategy">DeployJobStrategy</a>
|
|
4648
|
+
- *Default:* "matrix"
|
|
4649
|
+
|
|
4650
|
+
Deployment job strategy, whether to use a matrix job or multiple jobs for each environment.
|
|
4651
|
+
|
|
4652
|
+
---
|
|
4653
|
+
|
|
4623
4654
|
##### `method`<sup>Optional</sup> <a name="method" id="deployable-awscdk-app-ts.DeployOptions.property.method"></a>
|
|
4624
4655
|
|
|
4625
4656
|
```typescript
|
|
@@ -4765,3 +4796,25 @@ The script/task to run before deployment of the environment in the workflow If n
|
|
|
4765
4796
|
|
|
4766
4797
|
|
|
4767
4798
|
|
|
4799
|
+
## Enums <a name="Enums" id="Enums"></a>
|
|
4800
|
+
|
|
4801
|
+
### DeployJobStrategy <a name="DeployJobStrategy" id="deployable-awscdk-app-ts.DeployJobStrategy"></a>
|
|
4802
|
+
|
|
4803
|
+
#### Members <a name="Members" id="Members"></a>
|
|
4804
|
+
|
|
4805
|
+
| **Name** | **Description** |
|
|
4806
|
+
| --- | --- |
|
|
4807
|
+
| <code><a href="#deployable-awscdk-app-ts.DeployJobStrategy.MATRIX">MATRIX</a></code> | *No description.* |
|
|
4808
|
+
| <code><a href="#deployable-awscdk-app-ts.DeployJobStrategy.MULTI_JOB">MULTI_JOB</a></code> | *No description.* |
|
|
4809
|
+
|
|
4810
|
+
---
|
|
4811
|
+
|
|
4812
|
+
##### `MATRIX` <a name="MATRIX" id="deployable-awscdk-app-ts.DeployJobStrategy.MATRIX"></a>
|
|
4813
|
+
|
|
4814
|
+
---
|
|
4815
|
+
|
|
4816
|
+
|
|
4817
|
+
##### `MULTI_JOB` <a name="MULTI_JOB" id="deployable-awscdk-app-ts.DeployJobStrategy.MULTI_JOB"></a>
|
|
4818
|
+
|
|
4819
|
+
---
|
|
4820
|
+
|
package/lib/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { awscdk, Task } from 'projen';
|
|
2
|
-
import { DeployableAwsCdkTypeScriptAppOptions, DeployOptions, EnvironmentOptions } from './types';
|
|
2
|
+
import { DeployableAwsCdkTypeScriptAppOptions, DeployOptions, EnvironmentDeploymentDependencies, EnvironmentOptions } from './types';
|
|
3
3
|
export * from './types';
|
|
4
4
|
export * as utils from './utils';
|
|
5
5
|
export declare class DeployableAwsCdkTypeScriptApp extends awscdk.AwsCdkTypeScriptApp {
|
|
@@ -13,6 +13,8 @@ export declare class DeployableAwsCdkTypeScriptApp extends awscdk.AwsCdkTypeScri
|
|
|
13
13
|
private readonly workflowNodeVersion?;
|
|
14
14
|
protected deployOptions: DeployOptions;
|
|
15
15
|
private readonly codeArtifactOptions?;
|
|
16
|
+
private readonly deployJobStrategy;
|
|
17
|
+
private environmentDependencies;
|
|
16
18
|
constructor(options: DeployableAwsCdkTypeScriptAppOptions);
|
|
17
19
|
/**
|
|
18
20
|
* return the major node version set for the project
|
|
@@ -40,4 +42,9 @@ export declare class DeployableAwsCdkTypeScriptApp extends awscdk.AwsCdkTypeScri
|
|
|
40
42
|
*/
|
|
41
43
|
updatePreDeployWorkflowScriptToEnvironments(script: string, environmentNameFilter?: string[]): void;
|
|
42
44
|
private addDeployJobs;
|
|
45
|
+
/**
|
|
46
|
+
* Update environment deployment dependencies
|
|
47
|
+
* @param environmentDependencies an object defining dependencies between environments
|
|
48
|
+
*/
|
|
49
|
+
updateEnvironmentDeploymentDependencies(environmentDependencies: EnvironmentDeploymentDependencies): void;
|
|
43
50
|
}
|
package/lib/index.js
CHANGED
|
@@ -18,9 +18,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
18
18
|
exports.DeployableAwsCdkTypeScriptApp = exports.utils = void 0;
|
|
19
19
|
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
20
20
|
const projen_1 = require("projen");
|
|
21
|
-
const
|
|
22
|
-
const
|
|
23
|
-
const steps = require("./steps");
|
|
21
|
+
const steps_1 = require("./steps");
|
|
22
|
+
const types_1 = require("./types");
|
|
24
23
|
const utils_1 = require("./utils");
|
|
25
24
|
__exportStar(require("./types"), exports);
|
|
26
25
|
exports.utils = require("./utils");
|
|
@@ -37,6 +36,7 @@ class DeployableAwsCdkTypeScriptApp extends projen_1.awscdk.AwsCdkTypeScriptApp
|
|
|
37
36
|
this.workflowNodeVersion = options.workflowNodeVersion;
|
|
38
37
|
this.deployOptions = options.deployOptions ?? { environments: [] };
|
|
39
38
|
this.codeArtifactOptions = options.codeArtifactOptions;
|
|
39
|
+
this.deployJobStrategy = this.deployOptions.jobStrategy ?? types_1.DeployJobStrategy.MATRIX;
|
|
40
40
|
this.addDevDeps('deployable-awscdk-app-ts');
|
|
41
41
|
if (!deployable) {
|
|
42
42
|
this.logger.warn('The project is explicitly set to not release, make sure this is desired setting');
|
|
@@ -128,85 +128,27 @@ class DeployableAwsCdkTypeScriptApp extends projen_1.awscdk.AwsCdkTypeScriptApp
|
|
|
128
128
|
this.updateEnvironments(newEnvironments);
|
|
129
129
|
}
|
|
130
130
|
addDeployJobs() {
|
|
131
|
-
|
|
132
|
-
this.
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
assumeRoleDurationSeconds: awsCredentials.assumeRoleDurationSeconds || 900,
|
|
140
|
-
} : undefined;
|
|
141
|
-
const accessKeyIdSecretName = awsCredentials.accessKeyIdSecretName ?? 'AWS_ACCESS_KEY_ID';
|
|
142
|
-
const secretAccessKeySecretName = awsCredentials.secretAccessKeySecretName ?? 'AWS_SECRET_ACCESS_KEY';
|
|
143
|
-
const hasPostDeployTask = environmentOptions.postDeployWorkflowScript ? 'true' : 'false';
|
|
144
|
-
const hasPreDeployTask = environmentOptions.preDeployWorkflowScript ? 'true' : 'false';
|
|
145
|
-
return {
|
|
146
|
-
environment: environmentOptions.name,
|
|
147
|
-
accessKeyIdSecretName,
|
|
148
|
-
secretAccessKeySecretName,
|
|
149
|
-
region: awsCredentials.region,
|
|
150
|
-
assumeRole,
|
|
151
|
-
hasPostDeployTask,
|
|
152
|
-
postDeploymentScript: environmentOptions.postDeployWorkflowScript || '',
|
|
153
|
-
hasPreDeployTask,
|
|
154
|
-
preDeploymentScript: environmentOptions.preDeployWorkflowScript || '',
|
|
155
|
-
...assumeRoleSettings,
|
|
156
|
-
};
|
|
131
|
+
const stepFactory = new steps_1.DeployableAwsCdkTypeScriptAppStepsFactory(this, {
|
|
132
|
+
authProvider: this.codeArtifactOptions?.authProvider,
|
|
133
|
+
checkActiveDeployment: this.checkActiveDeployment,
|
|
134
|
+
deployOptions: this.deployOptions,
|
|
135
|
+
preInstallTaskName: this.deployOptions.taskToRunPreInstall,
|
|
136
|
+
npmConfigEnvironment: this.deployOptions.npmConfigEnvironment,
|
|
137
|
+
jobStrategy: this.deployJobStrategy,
|
|
138
|
+
environmentDependencies: this.environmentDependencies,
|
|
157
139
|
});
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
needs: [
|
|
168
|
-
'release_github',
|
|
169
|
-
],
|
|
170
|
-
permissions: {
|
|
171
|
-
contents: workflows_model_1.JobPermission.READ,
|
|
172
|
-
deployments: workflows_model_1.JobPermission.READ,
|
|
173
|
-
idToken: this.codeArtifactOptions?.authProvider === javascript_1.CodeArtifactAuthProvider.GITHUB_OIDC ? workflows_model_1.JobPermission.WRITE : undefined,
|
|
174
|
-
},
|
|
175
|
-
strategy: {
|
|
176
|
-
maxParallel: 1,
|
|
177
|
-
matrix: {
|
|
178
|
-
domain: {
|
|
179
|
-
environment: include.map(e => e.environment),
|
|
180
|
-
},
|
|
181
|
-
include,
|
|
182
|
-
},
|
|
183
|
-
},
|
|
184
|
-
environment: {
|
|
185
|
-
name: '${{ matrix.environment }}',
|
|
186
|
-
},
|
|
187
|
-
env: deployJobEnv,
|
|
188
|
-
steps: [],
|
|
189
|
-
};
|
|
190
|
-
jobDefinition.steps.push(steps.checkoutStep());
|
|
191
|
-
const { taskToRunPreInstall } = this.deployOptions;
|
|
192
|
-
if (taskToRunPreInstall) {
|
|
193
|
-
jobDefinition.steps.push(steps.preInstallDependenciesStep(taskToRunPreInstall, this.checkActiveDeployment));
|
|
194
|
-
}
|
|
195
|
-
jobDefinition.steps.push(...this.package.project.renderWorkflowSetup());
|
|
196
|
-
if (this.checkActiveDeployment) {
|
|
197
|
-
jobDefinition.steps.push(steps.checkActiveDeploymentStep());
|
|
198
|
-
}
|
|
199
|
-
jobDefinition.steps.push(...steps.setAwsCredentialsSteps(this.checkActiveDeployment, this.codeArtifactOptions?.authProvider));
|
|
200
|
-
if (this.deployOptions.npmConfigEnvironment) {
|
|
201
|
-
jobDefinition.steps.push(steps.setNpmConfig(this.deployOptions.npmConfigEnvironment, '${{ matrix.environment }}', this.checkActiveDeployment));
|
|
202
|
-
}
|
|
203
|
-
jobDefinition.steps.push(steps.preDeploymentStep(this.checkActiveDeployment, this.package.packageManager));
|
|
204
|
-
jobDefinition.steps.push(steps.deploymentStep(this.checkActiveDeployment, this.package.packageManager));
|
|
205
|
-
jobDefinition.steps.push(steps.postDeploymentStep(this.checkActiveDeployment, this.package.packageManager));
|
|
206
|
-
this.release?.addJobs({ deploy: jobDefinition });
|
|
140
|
+
this.release?.addJobs(stepFactory.deploymentJobs);
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Update environment deployment dependencies
|
|
144
|
+
* @param environmentDependencies an object defining dependencies between environments
|
|
145
|
+
*/
|
|
146
|
+
updateEnvironmentDeploymentDependencies(environmentDependencies) {
|
|
147
|
+
steps_1.DeployableAwsCdkTypeScriptAppStepsFactory.validateEnvironmentDeploymentDependencies(this.deployOptions, environmentDependencies);
|
|
148
|
+
this.environmentDependencies = environmentDependencies;
|
|
207
149
|
}
|
|
208
150
|
}
|
|
209
151
|
exports.DeployableAwsCdkTypeScriptApp = DeployableAwsCdkTypeScriptApp;
|
|
210
152
|
_a = JSII_RTTI_SYMBOL_1;
|
|
211
|
-
DeployableAwsCdkTypeScriptApp[_a] = { fqn: "deployable-awscdk-app-ts.DeployableAwsCdkTypeScriptApp", version: "0.1.
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFnRDtBQUNoRCx1RUFBdUU7QUFDdkUsc0RBQW1HO0FBQ25HLGlDQUFpQztBQUVqQyxtQ0FBOEM7QUFFOUMsMENBQXdCO0FBQ3hCLG1DQUFpQztBQUVqQyxNQUFhLDZCQUE4QixTQUFRLGVBQU0sQ0FBQyxtQkFBbUI7SUFjM0UsWUFBWSxPQUE2QztRQUN2RCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQztRQUMzQyxLQUFLLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixPQUFPLEVBQUUsVUFBVTtTQUNwQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDO1FBQ25ELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxPQUFPLENBQUMscUJBQXFCLElBQUksS0FBSyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUM7UUFDdkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ25FLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUM7UUFDdkQsSUFBSSxDQUFDLFVBQVUsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBRTVDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUFBLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGlGQUFpRixDQUFDLENBQUM7UUFBQSxDQUFDO1FBRXZILElBQUksSUFBSSxDQUFDLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIs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QUFDLElBQUksQ0FBQyxLQUFLLENBQUMseUJBQXlCLEVBQUUsQ0FBQyxDQUFDO1FBQUEsQ0FBQztRQUU5RixhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFFOUgsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFBQSxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsb0JBQW9CLEVBQUUsMkJBQTJCLEVBQUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztRQUFBLENBQUM7UUFFOUwsYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDM0csYUFBYSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQ3hHLGFBQWEsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBRTVHLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFFbkQsQ0FBQzs7QUEvTUgsc0VBZ05DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXdzY2RrLCBUYXNrLCBUZXh0RmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBKb2IsIEpvYlBlcm1pc3Npb24gfSBmcm9tICdwcm9qZW4vbGliL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWwnO1xuaW1wb3J0IHsgQ29kZUFydGlmYWN0QXV0aFByb3ZpZGVyLCBDb2RlQXJ0aWZhY3RPcHRpb25zLCBOb2RlUHJvamVjdCB9IGZyb20gJ3Byb2plbi9saWIvamF2YXNjcmlwdCc7XG5pbXBvcnQgKiBhcyBzdGVwcyBmcm9tICcuL3N0ZXBzJztcbmltcG9ydCB7IERlcGxveWFibGVBd3NDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucywgRGVwbG95T3B0aW9ucywgRW52aXJvbm1lbnRPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRNYWpvck5vZGVWZXJzaW9uIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogYXMgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBEZXBsb3lhYmxlQXdzQ2RrVHlwZVNjcmlwdEFwcCBleHRlbmRzIGF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwIHtcblxuICAvKipcbiAgICogVGFzayB0byBkZXBsb3kgeW91ciBhcHAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVwbG95V29ya2Zsb3dUYXNrOiBUYXNrO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVwbG95YWJsZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBnZW5lcmF0ZU52bXJjOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrQWN0aXZlRGVwbG95bWVudDogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSB3b3JrZmxvd05vZGVWZXJzaW9uPzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgZGVwbG95T3B0aW9uczogRGVwbG95T3B0aW9ucztcbiAgcHJpdmF0ZSByZWFkb25seSBjb2RlQXJ0aWZhY3RPcHRpb25zPzogQ29kZUFydGlmYWN0T3B0aW9ucztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBEZXBsb3lhYmxlQXdzQ2RrVHlwZVNjcmlwdEFwcE9wdGlvbnMpIHtcbiAgICBjb25zdCBkZXBsb3lhYmxlID0gb3B0aW9ucy5yZWxlYXNlID8/IHRydWU7XG4gICAgc3VwZXIoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIHJlbGVhc2U6IGRlcGxveWFibGUsXG4gICAgfSk7XG4gICAgdGhpcy5kZXBsb3lhYmxlID0gZGVwbG95YWJsZTtcbiAgICB0aGlzLmdlbmVyYXRlTnZtcmMgPSBvcHRpb25zLmdlbmVyYXRlTnZtcmMgPz8gdHJ1ZTtcbiAgICB0aGlzLmNoZWNrQWN0aXZlRGVwbG95bWVudCA9IG9wdGlvbnMuY2hlY2tBY3RpdmVEZXBsb3ltZW50ID8/IGZhbHNlO1xuICAgIHRoaXMud29ya2Zsb3dOb2RlVmVyc2lvbiA9IG9wdGlvbnMud29ya2Zsb3dOb2RlVmVyc2lvbjtcbiAgICB0aGlzLmRlcGxveU9wdGlvbnMgPSBvcHRpb25zLmRlcGxveU9wdGlvbnMgPz8geyBlbnZpcm9ubWVudHM6IFtdIH07XG4gICAgdGhpcy5jb2RlQXJ0aWZhY3RPcHRpb25zID0gb3B0aW9ucy5jb2RlQXJ0aWZhY3RPcHRpb25zO1xuICAgIHRoaXMuYWRkRGV2RGVwcygnZGVwbG95YWJsZS1hd3NjZGstYXBwLXRzJyk7XG5cbiAgICBpZiAoIWRlcGxveWFibGUpIHt0aGlzLmxvZ2dlci53YXJuKCdUaGUgcHJvamVjdCBpcyBleHBsaWNpdGx5IHNldCB0byBub3QgcmVsZWFzZSwgbWFrZSBzdXJlIHRoaXMgaXMgZGVzaXJlZCBzZXR0aW5nJyk7fVxuXG4gICAgaWYgKHRoaXMuZ2VuZXJhdGVOdm1yYyAmJiAhdGhpcy53b3JrZmxvd05vZGVWZXJzaW9uKSB7dGhpcy53b3JrZmxvd05vZGVWZXJzaW9uID0gJzE0LjE4LjEnO31cblxuICAgIGlmICh0aGlzLmRlcGxveU9wdGlvbnMubnBtQ29uZmlnRW52aXJvbm1lbnQgJiYgdGhpcy5tYWpvck5vZGVWZXJzaW9uID49IDE4KSB7dGhyb3cgbmV3IEVycm9yKGBucG1Db25maWdFbnZpcm9ubWVudCBpcyBub3Qgc3VwcG9ydGVkIGZvciBub2RlIHZlcnNpb25zIGFib3ZlIHZlcnNpb24gMTguIEN1cnJlbnQgdmVyc2lvbiBpcyAke3RoaXMubm9kZVZlcnNpb259YCk7fVxuXG4gICAgY29uc3QgZGVwbG95QXJndW1lbnQgPSB0aGlzLmRlcGxveU9wdGlvbnMuc3RhY2tQYXR0ZXJuID8gYCAke3RoaXMuZGVwbG95T3B0aW9ucy5zdGFja1BhdHRlcm59YDogJyc7XG4gICAgY29uc3QgZGVwbG95Q29tbWFuZCA9IGBjZGsgZGVwbG95JHtkZXBsb3lBcmd1bWVudH0gJHt0aGlzLmdldE1ldGhvZEFyZ3VtZW50KCl9IC0tcmVxdWlyZS1hcHByb3ZhbCBuZXZlcmA7XG4gICAgY29uc3QgcmVxdWlyZWRFbnYgPSB0aGlzLmRlcGxveU9wdGlvbnMubnBtQ29uZmlnRW52aXJvbm1lbnQgPyBbYG5wbV9jb25maWdfJHt0aGlzLmRlcGxveU9wdGlvbnMubnBtQ29uZmlnRW52aXJvbm1lbnR9YF0gOiB1bmRlZmluZWQ7XG4gICAgdGhpcy5kZXBsb3lXb3JrZmxvd1Rhc2sgPSB0aGlzLmFkZFRhc2soJ2RlcGxveTp3b3JrZmxvdycsIHtcbiAgICAgIHJlcXVpcmVkRW52LFxuICAgICAgZXhlYzogZGVwbG95Q29tbWFuZCxcbiAgICB9KTtcbiAgICB0aGlzLmFkZFRhc2soJ2RlcGxveTpob3Rzd2FwJywge1xuICAgICAgcmVxdWlyZWRFbnYsXG4gICAgICBleGVjOiBgJHtkZXBsb3lDb21tYW5kfSAtLWhvdHN3YXBgLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIHJldHVybiB0aGUgbWFqb3Igbm9kZSB2ZXJzaW9uIHNldCBmb3IgdGhlIHByb2plY3RcbiAgICogQGRlZmF1bHQgMTZcbiAgICovXG4gIGdldCBtYWpvck5vZGVWZXJzaW9uKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIGdldE1ham9yTm9kZVZlcnNpb24odGhpcy5ub2RlVmVyc2lvbik7XG4gIH1cblxuICBwcml2YXRlIGdldE1ldGhvZEFyZ3VtZW50KCkge1xuICAgIHJldHVybiBgLS1tZXRob2QgJHt0aGlzLmRlcGxveU9wdGlvbnMubWV0aG9kID8/ICdjaGFuZ2Utc2V0J31gO1xuICB9XG5cbiAgc3ludGgoKSB7XG4gICAgaWYgKHRoaXMuZGVwbG95YWJsZSkge3RoaXMuYWRkRGVwbG95Sm9icygpO31cblxuICAgIGlmICh0aGlzLmdlbmVyYXRlTnZtcmMpIHtcbiAgICAgIG5ldyBUZXh0RmlsZSh0aGlzLCAnLm52bXJjJywge1xuICAgICAgICBsaW5lczogW3RoaXMud29ya2Zsb3dOb2RlVmVyc2lvbiA/PyAnJ10sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBzdXBlci5zeW50aCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBuZXcgZW52aXJvbm1lbnRzIHRvIHRoZSBhcHBsaWNhdGlvblxuICAgKiBAcGFyYW0gaXRlbXMgbGlzdCBvZiBlbnZpcm9ubWVudCBvcHRpb25zXG4gICAqL1xuICBhZGRFbnZpcm9ubWVudHMoLi4uaXRlbXM6IEVudmlyb25tZW50T3B0aW9uc1tdKSB7XG4gICAgdGhpcy5kZXBsb3lPcHRpb25zLmVudmlyb25tZW50cy5wdXNoKC4uLml0ZW1zKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRW52aXJvbm1lbnRzKG5ld0Vudmlyb25tZW50czogRW52aXJvbm1lbnRPcHRpb25zW10pIHtcbiAgICB0aGlzLmRlcGxveU9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLmRlcGxveU9wdGlvbnMsXG4gICAgICBlbnZpcm9ubWVudHM6IG5ld0Vudmlyb25tZW50cyxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHBvc3REZXBsb3lXb3JrZmxvd1NjcmlwdCBmb3IgZW52aXJvbm1lbnRzXG4gICAqIEBwYXJhbSBzY3JpcHQgdGhlIHNjcmlwdCB0byBiZSBhZGRlZCwgZm9yIGV4YW1wbGUgXCJwb3N0OmRlcGxveVwiXG4gICAqIEBwYXJhbSBlbnZpcm9ubWVudE5hbWVGaWx0ZXIgdGhlIG5hbWUgb2YgZW52aXJvbm1lbnRzIHRvIGFkZCB0aGUgc2NyaXB0cyB0bywgaWYgbm90IHByb3ZpZGVkIG9yIGVtcHR5IHdpbGwgdXBkYXRlIGFsbFxuICAgKi9cbiAgdXBkYXRlUG9zdERlcGxveVdvcmtmbG93U2NyaXB0VG9FbnZpcm9ubWVudHMoc2NyaXB0OiBzdHJpbmcsIGVudmlyb25tZW50TmFtZUZpbHRlcj86IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgbmV3RW52aXJvbm1lbnRzID0gdGhpcy5kZXBsb3lPcHRpb25zLmVudmlyb25tZW50cy5tYXAoZW52aXJvbm1lbnQgPT4ge1xuICAgICAgaWYgKGVudmlyb25tZW50TmFtZUZpbHRlciAmJiBlbnZpcm9ubWVudE5hbWVGaWx0ZXIubGVuZ3RoID4gMCAmJiAhZW52aXJvbm1lbnROYW1lRmlsdGVyLmluY2x1ZGVzKGVudmlyb25tZW50Lm5hbWUpKSB7cmV0dXJuIGVudmlyb25tZW50O31cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZW52aXJvbm1lbnQsXG4gICAgICAgIHBvc3REZXBsb3lXb3JrZmxvd1NjcmlwdDogc2NyaXB0LFxuICAgICAgfTtcbiAgICB9KTtcbiAgICB0aGlzLnVwZGF0ZUVudmlyb25tZW50cyhuZXdFbnZpcm9ubWVudHMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZXMgdGhlIHByZURlcGxveVdvcmtmbG93U2NyaXB0IGZvciBlbnZpcm9ubWVudHNcbiAgICogQHBhcmFtIHNjcmlwdCB0aGUgc2NyaXB0IHRvIGJlIGFkZGVkLCBmb3IgZXhhbXBsZSBcInByZTpkZXBsb3lcIlxuICAgKiBAcGFyYW0gZW52aXJvbm1lbnROYW1lRmlsdGVyIHRoZSBuYW1lIG9mIGVudmlyb25tZW50cyB0byBhZGQgdGhlIHNjcmlwdHMgdG8sIGlmIG5vdCBwcm92aWRlZCBvciBlbXB0eSB3aWxsIHVwZGF0ZSBhbGxcbiAgICovXG4gIHVwZGF0ZVByZURlcGxveVdvcmtmbG93U2NyaXB0VG9FbnZpcm9ubWVudHMoc2NyaXB0OiBzdHJpbmcsIGVudmlyb25tZW50TmFtZUZpbHRlcj86IHN0cmluZ1tdKSB7XG4gICAgY29uc3QgbmV3RW52aXJvbm1lbnRzID0gdGhpcy5kZXBsb3lPcHRpb25zLmVudmlyb25tZW50cy5tYXAoZW52aXJvbm1lbnQgPT4ge1xuICAgICAgaWYgKGVudmlyb25tZW50TmFtZUZpbHRlciAmJiBlbnZpcm9ubWVudE5hbWVGaWx0ZXIubGVuZ3RoID4gMCAmJiAhZW52aXJvbm1lbnROYW1lRmlsdGVyLmluY2x1ZGVzKGVudmlyb25tZW50Lm5hbWUpKSB7cmV0dXJuIGVudmlyb25tZW50O31cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZW52aXJvbm1lbnQsXG4gICAgICAgIHByZURlcGxveVdvcmtmbG93U2NyaXB0OiBzY3JpcHQsXG4gICAgICB9O1xuICAgIH0pO1xuICAgIHRoaXMudXBkYXRlRW52aXJvbm1lbnRzKG5ld0Vudmlyb25tZW50cyk7XG4gIH1cblxuICBwcml2YXRlIGFkZERlcGxveUpvYnMoKSB7XG5cbiAgICBpZiAodGhpcy5kZXBsb3lPcHRpb25zLmVudmlyb25tZW50cy5sZW5ndGggPT09IDApIHt0aGlzLmxvZ2dlci53YXJuKCdUaGUgcHJvamVjdCBkb2VzIG5vdCBoYXZlIGFueSBlbnZpcm9ubWVudCBzZXQsIG1ha2Ugc3VyZSB0aGlzIGlzIGRlc2lyZWQgc2V0dGluZycpO31cblxuICAgIGNvbnN0IGluY2x1ZGUgPSB0aGlzLmRlcGxveU9wdGlvbnMuZW52aXJvbm1lbnRzLm1hcChlbnZpcm9ubWVudE9wdGlvbnMgPT4ge1xuICAgICAgY29uc3QgeyBhd3NDcmVkZW50aWFscyB9ID0gZW52aXJvbm1lbnRPcHRpb25zO1xuXG4gICAgICBjb25zdCBhc3N1bWVSb2xlID0gYXdzQ3JlZGVudGlhbHMucm9sZVRvQXNzdW1lID8gJ3RydWUnIDogJ2ZhbHNlJztcblxuICAgICAgY29uc3QgYXNzdW1lUm9sZVNldHRpbmdzID0gYXdzQ3JlZGVudGlhbHMucm9sZVRvQXNzdW1lID8ge1xuICAgICAgICByb2xlVG9Bc3N1bWU6IGF3c0NyZWRlbnRpYWxzLnJvbGVUb0Fzc3VtZSxcbiAgICAgICAgYXNzdW1lUm9sZUR1cmF0aW9uU2Vjb25kczogYXdzQ3JlZGVudGlhbHMuYXNzdW1lUm9sZUR1cmF0aW9uU2Vjb25kcyB8fCA5MDAsXG4gICAgICB9OiB1bmRlZmluZWQ7XG5cbiAgICAgIGNvbnN0IGFjY2Vzc0tleUlkU2VjcmV0TmFtZSA9IGF3c0NyZWRlbnRpYWxzLmFjY2Vzc0tleUlkU2VjcmV0TmFtZSA/PyAnQVdTX0FDQ0VTU19LRVlfSUQnO1xuICAgICAgY29uc3Qgc2VjcmV0QWNjZXNzS2V5U2VjcmV0TmFtZSA9IGF3c0NyZWRlbnRpYWxzLnNlY3JldEFjY2Vzc0tleVNlY3JldE5hbWUgPz8gJ0FXU19TRUNSRVRfQUNDRVNTX0tFWSc7XG5cbiAgICAgIGNvbnN0IGhhc1Bvc3REZXBsb3lUYXNrID0gZW52aXJvbm1lbnRPcHRpb25zLnBvc3REZXBsb3lXb3JrZmxvd1NjcmlwdCA/ICd0cnVlJyA6ICdmYWxzZSc7XG4gICAgICBjb25zdCBoYXNQcmVEZXBsb3lUYXNrID0gZW52aXJvbm1lbnRPcHRpb25zLnByZURlcGxveVdvcmtmbG93U2NyaXB0ID8gJ3RydWUnIDogJ2ZhbHNlJztcblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZW52aXJvbm1lbnQ6IGVudmlyb25tZW50T3B0aW9ucy5uYW1lLFxuICAgICAgICBhY2Nlc3NLZXlJZFNlY3JldE5hbWUsXG4gICAgICAgIHNlY3JldEFjY2Vzc0tleVNlY3JldE5hbWUsXG4gICAgICAgIHJlZ2lvbjogYXdzQ3JlZGVudGlhbHMucmVnaW9uLFxuICAgICAgICBhc3N1bWVSb2xlLFxuICAgICAgICBoYXNQb3N0RGVwbG95VGFzayxcbiAgICAgICAgcG9zdERlcGxveW1lbnRTY3JpcHQ6IGVudmlyb25tZW50T3B0aW9ucy5wb3N0RGVwbG95V29ya2Zsb3dTY3JpcHQgfHwgJycsXG4gICAgICAgIGhhc1ByZURlcGxveVRhc2ssXG4gICAgICAgIHByZURlcGxveW1lbnRTY3JpcHQ6IGVudmlyb25tZW50T3B0aW9ucy5wcmVEZXBsb3lXb3JrZmxvd1NjcmlwdCB8fCAnJyxcbiAgICAgICAgLi4uYXNzdW1lUm9sZVNldHRpbmdzLFxuICAgICAgfTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGRlcGxveUpvYkVudiA9IHRoaXMuZGVwbG95T3B0aW9ucy5lbnZpcm9ubWVudFZhcmlhYmxlTmFtZSA/IHtcbiAgICAgIFt0aGlzLmRlcGxveU9wdGlvbnMuZW52aXJvbm1lbnRWYXJpYWJsZU5hbWVdOiAnJHt7IG1hdHJpeC5lbnZpcm9ubWVudCB9fScsXG4gICAgfSA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGpvYkRlZmluaXRpb246IEpvYiA9IHtcbiAgICAgIHJ1bnNPbjogWyd1YnVudHUtbGF0ZXN0J10sXG4gICAgICBjb25jdXJyZW5jeToge1xuICAgICAgICAnZ3JvdXAnOiAnJHt7IG1hdHJpeC5lbnZpcm9ubWVudCB9fS1kZXBsb3knLFxuICAgICAgICAnY2FuY2VsLWluLXByb2dyZXNzJzogZmFsc2UsXG4gICAgICB9LFxuICAgICAgbmVlZHM6IFtcbiAgICAgICAgJ3JlbGVhc2VfZ2l0aHViJyxcbiAgICAgIF0sXG4gICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICBjb250ZW50czogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgICBkZXBsb3ltZW50czogSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgICBpZFRva2VuOiB0aGlzLmNvZGVBcnRpZmFjdE9wdGlvbnM/LmF1dGhQcm92aWRlciA9PT0gQ29kZUFydGlmYWN0QXV0aFByb3ZpZGVyLkdJVEhVQl9PSURDID8gSm9iUGVybWlzc2lvbi5XUklURSA6IHVuZGVmaW5lZCxcbiAgICAgIH0sXG4gICAgICBzdHJhdGVneToge1xuICAgICAgICBtYXhQYXJhbGxlbDogMSxcbiAgICAgICAgbWF0cml4OiB7XG4gICAgICAgICAgZG9tYWluOiB7XG4gICAgICAgICAgICBlbnZpcm9ubWVudDogaW5jbHVkZS5tYXAoZSA9PiBlLmVudmlyb25tZW50KSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIGluY2x1ZGUsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgbmFtZTogJyR7eyBtYXRyaXguZW52aXJvbm1lbnQgfX0nLFxuICAgICAgfSxcbiAgICAgIGVudjogZGVwbG95Sm9iRW52LFxuICAgICAgc3RlcHM6IFtdLFxuICAgIH07XG5cbiAgICBqb2JEZWZpbml0aW9uLnN0ZXBzLnB1c2goc3RlcHMuY2hlY2tvdXRTdGVwKCkpO1xuXG4gICAgY29uc3QgeyB0YXNrVG9SdW5QcmVJbnN0YWxsIH0gPSB0aGlzLmRlcGxveU9wdGlvbnM7XG4gICAgaWYgKHRhc2tUb1J1blByZUluc3RhbGwpIHtqb2JEZWZpbml0aW9uLnN0ZXBzLnB1c2goc3RlcHMucHJlSW5zdGFsbERlcGVuZGVuY2llc1N0ZXAodGFza1RvUnVuUHJlSW5zdGFsbCwgdGhpcy5jaGVja0FjdGl2ZURlcGxveW1lbnQpKTt9XG5cbiAgICBqb2JEZWZpbml0aW9uLnN0ZXBzLnB1c2goLi4uKHRoaXMucGFja2FnZS5wcm9qZWN0IGFzIE5vZGVQcm9qZWN0KS5yZW5kZXJXb3JrZmxvd1NldHVwKCkpO1xuXG4gICAgaWYgKHRoaXMuY2hlY2tBY3RpdmVEZXBsb3ltZW50KSB7am9iRGVmaW5pdGlvbi5zdGVwcy5wdXNoKHN0ZXBzLmNoZWNrQWN0aXZlRGVwbG95bWVudFN0ZXAoKSk7fVxuXG4gICAgam9iRGVmaW5pdGlvbi5zdGVwcy5wdXNoKC4uLnN0ZXBzLnNldEF3c0NyZWRlbnRpYWxzU3RlcHModGhpcy5jaGVja0FjdGl2ZURlcGxveW1lbnQsIHRoaXMuY29kZUFydGlmYWN0T3B0aW9ucz8uYXV0aFByb3ZpZGVyKSk7XG5cbiAgICBpZiAodGhpcy5kZXBsb3lPcHRpb25zLm5wbUNvbmZpZ0Vudmlyb25tZW50KSB7am9iRGVmaW5pdGlvbi5zdGVwcy5wdXNoKHN0ZXBzLnNldE5wbUNvbmZpZyh0aGlzLmRlcGxveU9wdGlvbnMubnBtQ29uZmlnRW52aXJvbm1lbnQsICcke3sgbWF0cml4LmVudmlyb25tZW50IH19JywgdGhpcy5jaGVja0FjdGl2ZURlcGxveW1lbnQpKTt9XG5cbiAgICBqb2JEZWZpbml0aW9uLnN0ZXBzLnB1c2goc3RlcHMucHJlRGVwbG95bWVudFN0ZXAodGhpcy5jaGVja0FjdGl2ZURlcGxveW1lbnQsIHRoaXMucGFja2FnZS5wYWNrYWdlTWFuYWdlcikpO1xuICAgIGpvYkRlZmluaXRpb24uc3RlcHMucHVzaChzdGVwcy5kZXBsb3ltZW50U3RlcCh0aGlzLmNoZWNrQWN0aXZlRGVwbG95bWVudCwgdGhpcy5wYWNrYWdlLnBhY2thZ2VNYW5hZ2VyKSk7XG4gICAgam9iRGVmaW5pdGlvbi5zdGVwcy5wdXNoKHN0ZXBzLnBvc3REZXBsb3ltZW50U3RlcCh0aGlzLmNoZWNrQWN0aXZlRGVwbG95bWVudCwgdGhpcy5wYWNrYWdlLnBhY2thZ2VNYW5hZ2VyKSk7XG5cbiAgICB0aGlzLnJlbGVhc2U/LmFkZEpvYnMoeyBkZXBsb3k6IGpvYkRlZmluaXRpb24gfSk7XG5cbiAgfVxufSJdfQ==
|
|
153
|
+
DeployableAwsCdkTypeScriptApp[_a] = { fqn: "deployable-awscdk-app-ts.DeployableAwsCdkTypeScriptApp", version: "0.1.682" };
|
|
154
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLG1DQUFnRDtBQUVoRCxtQ0FBb0U7QUFDcEUsbUNBQXdKO0FBQ3hKLG1DQUE4QztBQUU5QywwQ0FBd0I7QUFDeEIsbUNBQWlDO0FBRWpDLE1BQWEsNkJBQThCLFNBQVEsZUFBTSxDQUFDLG1CQUFtQjtJQWlCM0UsWUFBWSxPQUE2QztRQUN2RCxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQztRQUMzQyxLQUFLLENBQUM7WUFDSixHQUFHLE9BQU87WUFDVixPQUFPLEVBQUUsVUFBVTtTQUNwQixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksSUFBSSxDQUFDO1FBQ25ELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxPQUFPLENBQUMscUJBQXFCLElBQUksS0FBSyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUM7UUFDdkQsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsYUFBYSxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsRUFBRSxDQUFDO1FBQ25FLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUM7UUFDdkQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxJQUFJLHlCQUFpQixDQUFDLE1BQU0sQ0FBQztRQUVwRixJQUFJLENBQUMsVUFBVSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFNUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQUEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUZBQWlGLENBQUMs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QUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksdUNBQXVDLENBQUMsdUJBQTBEO1FBQ3ZHLGlEQUF5QyxDQUFDLHlDQUF5QyxDQUNqRixJQUFJLENBQUMsYUFBYSxFQUNsQix1QkFBdUIsQ0FDeEIsQ0FBQztRQUVGLElBQUksQ0FBQyx1QkFBdUIsR0FBRyx1QkFBdUIsQ0FBQztJQUN6RCxDQUFDOztBQXZKSCxzRUF3SkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhd3NjZGssIFRhc2ssIFRleHRGaWxlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IENvZGVBcnRpZmFjdE9wdGlvbnMgfSBmcm9tICdwcm9qZW4vbGliL2phdmFzY3JpcHQnO1xuaW1wb3J0IHsgRGVwbG95YWJsZUF3c0Nka1R5cGVTY3JpcHRBcHBTdGVwc0ZhY3RvcnkgfSBmcm9tICcuL3N0ZXBzJztcbmltcG9ydCB7IERlcGxveWFibGVBd3NDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucywgRGVwbG95Sm9iU3RyYXRlZ3ksIERlcGxveU9wdGlvbnMsIEVudmlyb25tZW50RGVwbG95bWVudERlcGVuZGVuY2llcywgRW52aXJvbm1lbnRPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBnZXRNYWpvck5vZGVWZXJzaW9uIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMnO1xuZXhwb3J0ICogYXMgdXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBEZXBsb3lhYmxlQXdzQ2RrVHlwZVNjcmlwdEFwcCBleHRlbmRzIGF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwIHtcblxuICAvKipcbiAgICogVGFzayB0byBkZXBsb3kgeW91ciBhcHAuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZGVwbG95V29ya2Zsb3dUYXNrOiBUYXNrO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVwbG95YWJsZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBnZW5lcmF0ZU52bXJjOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrQWN0aXZlRGVwbG95bWVudDogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSB3b3JrZmxvd05vZGVWZXJzaW9uPzogc3RyaW5nO1xuICBwcm90ZWN0ZWQgZGVwbG95T3B0aW9uczogRGVwbG95T3B0aW9ucztcbiAgcHJpdmF0ZSByZWFkb25seSBjb2RlQXJ0aWZhY3RPcHRpb25zPzogQ29kZUFydGlmYWN0T3B0aW9ucztcbiAgcHJpdmF0ZSByZWFkb25seSBkZXBsb3lKb2JTdHJhdGVneTogRGVwbG95Sm9iU3RyYXRlZ3k7XG5cbiAgcHJpdmF0ZSBlbnZpcm9ubWVudERlcGVuZGVuY2llczogRW52aXJvbm1lbnREZXBsb3ltZW50RGVwZW5kZW5jaWVzIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IERlcGxveWFibGVBd3NDZGtUeXBlU2NyaXB0QXBwT3B0aW9ucykge1xuICAgIGNvbnN0IGRlcGxveWFibGUgPSBvcHRpb25zLnJlbGVhc2UgPz8gdHJ1ZTtcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgcmVsZWFzZTogZGVwbG95YWJsZSxcbiAgICB9KTtcbiAgICB0aGlzLmRlcGxveWFibGUgPSBkZXBsb3lhYmxlO1xuICAgIHRoaXMuZ2VuZXJhdGVOdm1yYyA9IG9wdGlvbnMuZ2VuZXJhdGVOdm1yYyA/PyB0cnVlO1xuICAgIHRoaXMuY2hlY2tBY3RpdmVEZXBsb3ltZW50ID0gb3B0aW9ucy5jaGVja0FjdGl2ZURlcGxveW1lbnQgPz8gZmFsc2U7XG4gICAgdGhpcy53b3JrZmxvd05vZGVWZXJzaW9uID0gb3B0aW9ucy53b3JrZmxvd05vZGVWZXJzaW9uO1xuICAgIHRoaXMuZGVwbG95T3B0aW9ucyA9IG9wdGlvbnMuZGVwbG95T3B0aW9ucyA/PyB7IGVudmlyb25tZW50czogW10gfTtcbiAgICB0aGlzLmNvZGVBcnRpZmFjdE9wdGlvbnMgPSBvcHRpb25zLmNvZGVBcnRpZmFjdE9wdGlvbnM7XG4gICAgdGhpcy5kZXBsb3lKb2JTdHJhdGVneSA9IHRoaXMuZGVwbG95T3B0aW9ucy5qb2JTdHJhdGVneSA/PyBEZXBsb3lKb2JTdHJhdGVneS5NQVRSSVg7XG5cbiAgICB0aGlzLmFkZERldkRlcHMoJ2RlcGxveWFibGUtYXdzY2RrLWFwcC10cycpO1xuXG4gICAgaWYgKCFkZXBsb3lhYmxlKSB7dGhpcy5sb2dnZXIud2FybignVGhlIHByb2plY3QgaXMgZXhwbGljaXRseSBzZXQgdG8gbm90IHJlbGVhc2UsIG1ha2Ugc3VyZSB0aGlzIGlzIGRlc2lyZWQgc2V0dGluZycpO31cblxuICAgIGlmICh0aGlzLmdlbmVyYXRlTnZtcmMgJiYgIXRoaXMud29ya2Zsb3dOb2RlVmVyc2lvbikge3RoaXMud29ya2Zsb3dOb2RlVmVyc2lvbiA9ICcxNC4xOC4xJzt9XG5cbiAgICBpZiAodGhpcy5kZXBsb3lPcHRpb25zLm5wbUNvbmZpZ0Vudmlyb25tZW50ICYmIHRoaXMubWFqb3JOb2RlVmVyc2lvbiA+PSAxOCkge3Rocm93IG5ldyBFcnJvcihgbnBtQ29uZmlnRW52aXJvbm1lbnQgaXMgbm90IHN1cHBvcnRlZCBmb3Igbm9kZSB2ZXJzaW9ucyBhYm92ZSB2ZXJzaW9uIDE4LiBDdXJyZW50IHZlcnNpb24gaXMgJHt0aGlzLm5vZGVWZXJzaW9ufWApO31cblxuICAgIGNvbnN0IGRlcGxveUFyZ3VtZW50ID0gdGhpcy5kZXBsb3lPcHRpb25zLnN0YWNrUGF0dGVybiA/IGAgJHt0aGlzLmRlcGxveU9wdGlvbnMuc3RhY2tQYXR0ZXJufWA6ICcnO1xuICAgIGNvbnN0IGRlcGxveUNvbW1hbmQgPSBgY2RrIGRlcGxveSR7ZGVwbG95QXJndW1lbnR9ICR7dGhpcy5nZXRNZXRob2RBcmd1bWVudCgpfSAtLXJlcXVpcmUtYXBwcm92YWwgbmV2ZXJgO1xuICAgIGNvbnN0IHJlcXVpcmVkRW52ID0gdGhpcy5kZXBsb3lPcHRpb25zLm5wbUNvbmZpZ0Vudmlyb25tZW50ID8gW2BucG1fY29uZmlnXyR7dGhpcy5kZXBsb3lPcHRpb25zLm5wbUNvbmZpZ0Vudmlyb25tZW50fWBdIDogdW5kZWZpbmVkO1xuICAgIHRoaXMuZGVwbG95V29ya2Zsb3dUYXNrID0gdGhpcy5hZGRUYXNrKCdkZXBsb3k6d29ya2Zsb3cnLCB7XG4gICAgICByZXF1aXJlZEVudixcbiAgICAgIGV4ZWM6IGRlcGxveUNvbW1hbmQsXG4gICAgfSk7XG4gICAgdGhpcy5hZGRUYXNrKCdkZXBsb3k6aG90c3dhcCcsIHtcbiAgICAgIHJlcXVpcmVkRW52LFxuICAgICAgZXhlYzogYCR7ZGVwbG95Q29tbWFuZH0gLS1ob3Rzd2FwYCxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiByZXR1cm4gdGhlIG1ham9yIG5vZGUgdmVyc2lvbiBzZXQgZm9yIHRoZSBwcm9qZWN0XG4gICAqIEBkZWZhdWx0IDE2XG4gICAqL1xuICBnZXQgbWFqb3JOb2RlVmVyc2lvbigpOiBudW1iZXIge1xuICAgIHJldHVybiBnZXRNYWpvck5vZGVWZXJzaW9uKHRoaXMubm9kZVZlcnNpb24pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRNZXRob2RBcmd1bWVudCgpIHtcbiAgICByZXR1cm4gYC0tbWV0aG9kICR7dGhpcy5kZXBsb3lPcHRpb25zLm1ldGhvZCA/PyAnY2hhbmdlLXNldCd9YDtcbiAgfVxuXG4gIHN5bnRoKCkge1xuICAgIGlmICh0aGlzLmRlcGxveWFibGUpIHt0aGlzLmFkZERlcGxveUpvYnMoKTt9XG5cbiAgICBpZiAodGhpcy5nZW5lcmF0ZU52bXJjKSB7XG4gICAgICBuZXcgVGV4dEZpbGUodGhpcywgJy5udm1yYycsIHtcbiAgICAgICAgbGluZXM6IFt0aGlzLndvcmtmbG93Tm9kZVZlcnNpb24gPz8gJyddLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3VwZXIuc3ludGgoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgbmV3IGVudmlyb25tZW50cyB0byB0aGUgYXBwbGljYXRpb25cbiAgICogQHBhcmFtIGl0ZW1zIGxpc3Qgb2YgZW52aXJvbm1lbnQgb3B0aW9uc1xuICAgKi9cbiAgYWRkRW52aXJvbm1lbnRzKC4uLml0ZW1zOiBFbnZpcm9ubWVudE9wdGlvbnNbXSkge1xuICAgIHRoaXMuZGVwbG95T3B0aW9ucy5lbnZpcm9ubWVudHMucHVzaCguLi5pdGVtcyk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUVudmlyb25tZW50cyhuZXdFbnZpcm9ubWVudHM6IEVudmlyb25tZW50T3B0aW9uc1tdKSB7XG4gICAgdGhpcy5kZXBsb3lPcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5kZXBsb3lPcHRpb25zLFxuICAgICAgZW52aXJvbm1lbnRzOiBuZXdFbnZpcm9ubWVudHMsXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwb3N0RGVwbG95V29ya2Zsb3dTY3JpcHQgZm9yIGVudmlyb25tZW50c1xuICAgKiBAcGFyYW0gc2NyaXB0IHRoZSBzY3JpcHQgdG8gYmUgYWRkZWQsIGZvciBleGFtcGxlIFwicG9zdDpkZXBsb3lcIlxuICAgKiBAcGFyYW0gZW52aXJvbm1lbnROYW1lRmlsdGVyIHRoZSBuYW1lIG9mIGVudmlyb25tZW50cyB0byBhZGQgdGhlIHNjcmlwdHMgdG8sIGlmIG5vdCBwcm92aWRlZCBvciBlbXB0eSB3aWxsIHVwZGF0ZSBhbGxcbiAgICovXG4gIHVwZGF0ZVBvc3REZXBsb3lXb3JrZmxvd1NjcmlwdFRvRW52aXJvbm1lbnRzKHNjcmlwdDogc3RyaW5nLCBlbnZpcm9ubWVudE5hbWVGaWx0ZXI/OiBzdHJpbmdbXSkge1xuICAgIGNvbnN0IG5ld0Vudmlyb25tZW50cyA9IHRoaXMuZGVwbG95T3B0aW9ucy5lbnZpcm9ubWVudHMubWFwKGVudmlyb25tZW50ID0+IHtcbiAgICAgIGlmIChlbnZpcm9ubWVudE5hbWVGaWx0ZXIgJiYgZW52aXJvbm1lbnROYW1lRmlsdGVyLmxlbmd0aCA+IDAgJiYgIWVudmlyb25tZW50TmFtZUZpbHRlci5pbmNsdWRlcyhlbnZpcm9ubWVudC5uYW1lKSkge3JldHVybiBlbnZpcm9ubWVudDt9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmVudmlyb25tZW50LFxuICAgICAgICBwb3N0RGVwbG95V29ya2Zsb3dTY3JpcHQ6IHNjcmlwdCxcbiAgICAgIH07XG4gICAgfSk7XG4gICAgdGhpcy51cGRhdGVFbnZpcm9ubWVudHMobmV3RW52aXJvbm1lbnRzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBwcmVEZXBsb3lXb3JrZmxvd1NjcmlwdCBmb3IgZW52aXJvbm1lbnRzXG4gICAqIEBwYXJhbSBzY3JpcHQgdGhlIHNjcmlwdCB0byBiZSBhZGRlZCwgZm9yIGV4YW1wbGUgXCJwcmU6ZGVwbG95XCJcbiAgICogQHBhcmFtIGVudmlyb25tZW50TmFtZUZpbHRlciB0aGUgbmFtZSBvZiBlbnZpcm9ubWVudHMgdG8gYWRkIHRoZSBzY3JpcHRzIHRvLCBpZiBub3QgcHJvdmlkZWQgb3IgZW1wdHkgd2lsbCB1cGRhdGUgYWxsXG4gICAqL1xuICB1cGRhdGVQcmVEZXBsb3lXb3JrZmxvd1NjcmlwdFRvRW52aXJvbm1lbnRzKHNjcmlwdDogc3RyaW5nLCBlbnZpcm9ubWVudE5hbWVGaWx0ZXI/OiBzdHJpbmdbXSkge1xuICAgIGNvbnN0IG5ld0Vudmlyb25tZW50cyA9IHRoaXMuZGVwbG95T3B0aW9ucy5lbnZpcm9ubWVudHMubWFwKGVudmlyb25tZW50ID0+IHtcbiAgICAgIGlmIChlbnZpcm9ubWVudE5hbWVGaWx0ZXIgJiYgZW52aXJvbm1lbnROYW1lRmlsdGVyLmxlbmd0aCA+IDAgJiYgIWVudmlyb25tZW50TmFtZUZpbHRlci5pbmNsdWRlcyhlbnZpcm9ubWVudC5uYW1lKSkge3JldHVybiBlbnZpcm9ubWVudDt9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmVudmlyb25tZW50LFxuICAgICAgICBwcmVEZXBsb3lXb3JrZmxvd1NjcmlwdDogc2NyaXB0LFxuICAgICAgfTtcbiAgICB9KTtcbiAgICB0aGlzLnVwZGF0ZUVudmlyb25tZW50cyhuZXdFbnZpcm9ubWVudHMpO1xuICB9XG5cbiAgcHJpdmF0ZSBhZGREZXBsb3lKb2JzKCkge1xuXG4gICAgY29uc3Qgc3RlcEZhY3RvcnkgPSBuZXcgRGVwbG95YWJsZUF3c0Nka1R5cGVTY3JpcHRBcHBTdGVwc0ZhY3RvcnkodGhpcywge1xuICAgICAgYXV0aFByb3ZpZGVyOiB0aGlzLmNvZGVBcnRpZmFjdE9wdGlvbnM/LmF1dGhQcm92aWRlcixcbiAgICAgIGNoZWNrQWN0aXZlRGVwbG95bWVudDogdGhpcy5jaGVja0FjdGl2ZURlcGxveW1lbnQsXG4gICAgICBkZXBsb3lPcHRpb25zOiB0aGlzLmRlcGxveU9wdGlvbnMsXG4gICAgICBwcmVJbnN0YWxsVGFza05hbWU6IHRoaXMuZGVwbG95T3B0aW9ucy50YXNrVG9SdW5QcmVJbnN0YWxsLFxuICAgICAgbnBtQ29uZmlnRW52aXJvbm1lbnQ6IHRoaXMuZGVwbG95T3B0aW9ucy5ucG1Db25maWdFbnZpcm9ubWVudCxcbiAgICAgIGpvYlN0cmF0ZWd5OiB0aGlzLmRlcGxveUpvYlN0cmF0ZWd5LFxuICAgICAgZW52aXJvbm1lbnREZXBlbmRlbmNpZXM6IHRoaXMuZW52aXJvbm1lbnREZXBlbmRlbmNpZXMsXG4gICAgfSk7XG5cbiAgICB0aGlzLnJlbGVhc2U/LmFkZEpvYnMoc3RlcEZhY3RvcnkuZGVwbG95bWVudEpvYnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBlbnZpcm9ubWVudCBkZXBsb3ltZW50IGRlcGVuZGVuY2llc1xuICAgKiBAcGFyYW0gZW52aXJvbm1lbnREZXBlbmRlbmNpZXMgYW4gb2JqZWN0IGRlZmluaW5nIGRlcGVuZGVuY2llcyBiZXR3ZWVuIGVudmlyb25tZW50c1xuICAgKi9cbiAgcHVibGljIHVwZGF0ZUVudmlyb25tZW50RGVwbG95bWVudERlcGVuZGVuY2llcyhlbnZpcm9ubWVudERlcGVuZGVuY2llczogRW52aXJvbm1lbnREZXBsb3ltZW50RGVwZW5kZW5jaWVzKSB7XG4gICAgRGVwbG95YWJsZUF3c0Nka1R5cGVTY3JpcHRBcHBTdGVwc0ZhY3RvcnkudmFsaWRhdGVFbnZpcm9ubWVudERlcGxveW1lbnREZXBlbmRlbmNpZXMoXG4gICAgICB0aGlzLmRlcGxveU9wdGlvbnMsXG4gICAgICBlbnZpcm9ubWVudERlcGVuZGVuY2llcyxcbiAgICApO1xuXG4gICAgdGhpcy5lbnZpcm9ubWVudERlcGVuZGVuY2llcyA9IGVudmlyb25tZW50RGVwZW5kZW5jaWVzO1xuICB9XG59Il19
|