projen-cdktf-hybrid-construct 0.1.63 → 0.1.66
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 +48 -32
- package/.projenrc.ts +1 -2
- package/API.md +13 -0
- package/CHANGELOG.md +2 -2
- package/lib/hybrid-module.d.ts +4 -0
- package/lib/hybrid-module.js +14 -14
- package/lib/publishing.d.ts +23 -4
- package/lib/publishing.js +13 -12
- package/lib/terraform-module.js +4 -4
- package/package.json +3 -6
- package/releasetag.txt +1 -1
- package/version.txt +1 -1
- package/node_modules/uuid/CHANGELOG.md +0 -229
- package/node_modules/uuid/CONTRIBUTING.md +0 -18
- package/node_modules/uuid/LICENSE.md +0 -9
- package/node_modules/uuid/README.md +0 -505
- package/node_modules/uuid/dist/bin/uuid +0 -2
- package/node_modules/uuid/dist/esm-browser/index.js +0 -9
- package/node_modules/uuid/dist/esm-browser/md5.js +0 -215
- package/node_modules/uuid/dist/esm-browser/nil.js +0 -1
- package/node_modules/uuid/dist/esm-browser/parse.js +0 -35
- package/node_modules/uuid/dist/esm-browser/regex.js +0 -1
- package/node_modules/uuid/dist/esm-browser/rng.js +0 -19
- package/node_modules/uuid/dist/esm-browser/sha1.js +0 -96
- package/node_modules/uuid/dist/esm-browser/stringify.js +0 -30
- package/node_modules/uuid/dist/esm-browser/v1.js +0 -95
- package/node_modules/uuid/dist/esm-browser/v3.js +0 -4
- package/node_modules/uuid/dist/esm-browser/v35.js +0 -64
- package/node_modules/uuid/dist/esm-browser/v4.js +0 -24
- package/node_modules/uuid/dist/esm-browser/v5.js +0 -4
- package/node_modules/uuid/dist/esm-browser/validate.js +0 -7
- package/node_modules/uuid/dist/esm-browser/version.js +0 -11
- package/node_modules/uuid/dist/esm-node/index.js +0 -9
- package/node_modules/uuid/dist/esm-node/md5.js +0 -13
- package/node_modules/uuid/dist/esm-node/nil.js +0 -1
- package/node_modules/uuid/dist/esm-node/parse.js +0 -35
- package/node_modules/uuid/dist/esm-node/regex.js +0 -1
- package/node_modules/uuid/dist/esm-node/rng.js +0 -12
- package/node_modules/uuid/dist/esm-node/sha1.js +0 -13
- package/node_modules/uuid/dist/esm-node/stringify.js +0 -29
- package/node_modules/uuid/dist/esm-node/v1.js +0 -95
- package/node_modules/uuid/dist/esm-node/v3.js +0 -4
- package/node_modules/uuid/dist/esm-node/v35.js +0 -64
- package/node_modules/uuid/dist/esm-node/v4.js +0 -24
- package/node_modules/uuid/dist/esm-node/v5.js +0 -4
- package/node_modules/uuid/dist/esm-node/validate.js +0 -7
- package/node_modules/uuid/dist/esm-node/version.js +0 -11
- package/node_modules/uuid/dist/index.js +0 -79
- package/node_modules/uuid/dist/md5-browser.js +0 -223
- package/node_modules/uuid/dist/md5.js +0 -23
- package/node_modules/uuid/dist/nil.js +0 -8
- package/node_modules/uuid/dist/parse.js +0 -45
- package/node_modules/uuid/dist/regex.js +0 -8
- package/node_modules/uuid/dist/rng-browser.js +0 -26
- package/node_modules/uuid/dist/rng.js +0 -24
- package/node_modules/uuid/dist/sha1-browser.js +0 -104
- package/node_modules/uuid/dist/sha1.js +0 -23
- package/node_modules/uuid/dist/stringify.js +0 -39
- package/node_modules/uuid/dist/umd/uuid.min.js +0 -1
- package/node_modules/uuid/dist/umd/uuidNIL.min.js +0 -1
- package/node_modules/uuid/dist/umd/uuidParse.min.js +0 -1
- package/node_modules/uuid/dist/umd/uuidStringify.min.js +0 -1
- package/node_modules/uuid/dist/umd/uuidValidate.min.js +0 -1
- package/node_modules/uuid/dist/umd/uuidVersion.min.js +0 -1
- package/node_modules/uuid/dist/umd/uuidv1.min.js +0 -1
- package/node_modules/uuid/dist/umd/uuidv3.min.js +0 -1
- package/node_modules/uuid/dist/umd/uuidv4.min.js +0 -1
- package/node_modules/uuid/dist/umd/uuidv5.min.js +0 -1
- package/node_modules/uuid/dist/uuid-bin.js +0 -85
- package/node_modules/uuid/dist/v1.js +0 -107
- package/node_modules/uuid/dist/v3.js +0 -16
- package/node_modules/uuid/dist/v35.js +0 -78
- package/node_modules/uuid/dist/v4.js +0 -37
- package/node_modules/uuid/dist/v5.js +0 -16
- package/node_modules/uuid/dist/validate.js +0 -17
- package/node_modules/uuid/dist/version.js +0 -21
- package/node_modules/uuid/package.json +0 -135
- package/node_modules/uuid/wrapper.mjs +0 -10
package/.jsii
CHANGED
@@ -7,8 +7,7 @@
|
|
7
7
|
]
|
8
8
|
},
|
9
9
|
"bundled": {
|
10
|
-
"change-case": "^4.1.2"
|
11
|
-
"uuid": "^8.3.2"
|
10
|
+
"change-case": "^4.1.2"
|
12
11
|
},
|
13
12
|
"dependencies": {
|
14
13
|
"projen": ">= 0.53.6"
|
@@ -93,7 +92,7 @@
|
|
93
92
|
"kind": "interface",
|
94
93
|
"locationInModule": {
|
95
94
|
"filename": "src/hybrid-module.ts",
|
96
|
-
"line":
|
95
|
+
"line": 6
|
97
96
|
},
|
98
97
|
"name": "ConstructExamplesOption",
|
99
98
|
"properties": [
|
@@ -105,7 +104,7 @@
|
|
105
104
|
"immutable": true,
|
106
105
|
"locationInModule": {
|
107
106
|
"filename": "src/hybrid-module.ts",
|
108
|
-
"line":
|
107
|
+
"line": 8
|
109
108
|
},
|
110
109
|
"name": "enabled",
|
111
110
|
"type": {
|
@@ -120,7 +119,7 @@
|
|
120
119
|
"immutable": true,
|
121
120
|
"locationInModule": {
|
122
121
|
"filename": "src/hybrid-module.ts",
|
123
|
-
"line":
|
122
|
+
"line": 10
|
124
123
|
},
|
125
124
|
"name": "folder",
|
126
125
|
"optional": true,
|
@@ -148,7 +147,7 @@
|
|
148
147
|
},
|
149
148
|
"locationInModule": {
|
150
149
|
"filename": "src/hybrid-module.ts",
|
151
|
-
"line":
|
150
|
+
"line": 166
|
152
151
|
},
|
153
152
|
"parameters": [
|
154
153
|
{
|
@@ -162,7 +161,7 @@
|
|
162
161
|
"kind": "class",
|
163
162
|
"locationInModule": {
|
164
163
|
"filename": "src/hybrid-module.ts",
|
165
|
-
"line":
|
164
|
+
"line": 165
|
166
165
|
},
|
167
166
|
"name": "HybridModule",
|
168
167
|
"symbolId": "src/hybrid-module:HybridModule"
|
@@ -180,7 +179,7 @@
|
|
180
179
|
"kind": "interface",
|
181
180
|
"locationInModule": {
|
182
181
|
"filename": "src/hybrid-module.ts",
|
183
|
-
"line":
|
182
|
+
"line": 24
|
184
183
|
},
|
185
184
|
"name": "HybridModuleOptions",
|
186
185
|
"properties": [
|
@@ -197,7 +196,7 @@
|
|
197
196
|
"immutable": true,
|
198
197
|
"locationInModule": {
|
199
198
|
"filename": "src/hybrid-module.ts",
|
200
|
-
"line":
|
199
|
+
"line": 30
|
201
200
|
},
|
202
201
|
"name": "cdktfVersion",
|
203
202
|
"optional": true,
|
@@ -218,7 +217,7 @@
|
|
218
217
|
"immutable": true,
|
219
218
|
"locationInModule": {
|
220
219
|
"filename": "src/hybrid-module.ts",
|
221
|
-
"line":
|
220
|
+
"line": 50
|
222
221
|
},
|
223
222
|
"name": "constructExamples",
|
224
223
|
"optional": true,
|
@@ -236,7 +235,7 @@
|
|
236
235
|
"immutable": true,
|
237
236
|
"locationInModule": {
|
238
237
|
"filename": "src/hybrid-module.ts",
|
239
|
-
"line":
|
238
|
+
"line": 36
|
240
239
|
},
|
241
240
|
"name": "constructVersion",
|
242
241
|
"optional": true,
|
@@ -253,7 +252,7 @@
|
|
253
252
|
"immutable": true,
|
254
253
|
"locationInModule": {
|
255
254
|
"filename": "src/hybrid-module.ts",
|
256
|
-
"line":
|
255
|
+
"line": 57
|
257
256
|
},
|
258
257
|
"name": "projectId",
|
259
258
|
"optional": true,
|
@@ -261,6 +260,23 @@
|
|
261
260
|
"primitive": "string"
|
262
261
|
}
|
263
262
|
},
|
263
|
+
{
|
264
|
+
"abstract": true,
|
265
|
+
"docs": {
|
266
|
+
"stability": "stable",
|
267
|
+
"summary": "If set a terraform plan is being run as part of the tests."
|
268
|
+
},
|
269
|
+
"immutable": true,
|
270
|
+
"locationInModule": {
|
271
|
+
"filename": "src/hybrid-module.ts",
|
272
|
+
"line": 62
|
273
|
+
},
|
274
|
+
"name": "runPlan",
|
275
|
+
"optional": true,
|
276
|
+
"type": {
|
277
|
+
"primitive": "boolean"
|
278
|
+
}
|
279
|
+
},
|
264
280
|
{
|
265
281
|
"abstract": true,
|
266
282
|
"docs": {
|
@@ -274,7 +290,7 @@
|
|
274
290
|
"immutable": true,
|
275
291
|
"locationInModule": {
|
276
292
|
"filename": "src/hybrid-module.ts",
|
277
|
-
"line":
|
293
|
+
"line": 43
|
278
294
|
},
|
279
295
|
"name": "terraformExamples",
|
280
296
|
"optional": true,
|
@@ -295,7 +311,7 @@
|
|
295
311
|
"kind": "interface",
|
296
312
|
"locationInModule": {
|
297
313
|
"filename": "src/hybrid-module.ts",
|
298
|
-
"line":
|
314
|
+
"line": 13
|
299
315
|
},
|
300
316
|
"name": "TerraformExamplesOption",
|
301
317
|
"properties": [
|
@@ -307,7 +323,7 @@
|
|
307
323
|
"immutable": true,
|
308
324
|
"locationInModule": {
|
309
325
|
"filename": "src/hybrid-module.ts",
|
310
|
-
"line":
|
326
|
+
"line": 15
|
311
327
|
},
|
312
328
|
"name": "enabled",
|
313
329
|
"type": {
|
@@ -322,7 +338,7 @@
|
|
322
338
|
"immutable": true,
|
323
339
|
"locationInModule": {
|
324
340
|
"filename": "src/hybrid-module.ts",
|
325
|
-
"line":
|
341
|
+
"line": 21
|
326
342
|
},
|
327
343
|
"name": "exampleCode",
|
328
344
|
"optional": true,
|
@@ -338,7 +354,7 @@
|
|
338
354
|
"immutable": true,
|
339
355
|
"locationInModule": {
|
340
356
|
"filename": "src/hybrid-module.ts",
|
341
|
-
"line":
|
357
|
+
"line": 17
|
342
358
|
},
|
343
359
|
"name": "folder",
|
344
360
|
"optional": true,
|
@@ -354,7 +370,7 @@
|
|
354
370
|
"immutable": true,
|
355
371
|
"locationInModule": {
|
356
372
|
"filename": "src/hybrid-module.ts",
|
357
|
-
"line":
|
373
|
+
"line": 19
|
358
374
|
},
|
359
375
|
"name": "providerConfig",
|
360
376
|
"optional": true,
|
@@ -382,7 +398,7 @@
|
|
382
398
|
},
|
383
399
|
"locationInModule": {
|
384
400
|
"filename": "src/terraform-module.ts",
|
385
|
-
"line":
|
401
|
+
"line": 50
|
386
402
|
},
|
387
403
|
"parameters": [
|
388
404
|
{
|
@@ -396,7 +412,7 @@
|
|
396
412
|
"kind": "class",
|
397
413
|
"locationInModule": {
|
398
414
|
"filename": "src/terraform-module.ts",
|
399
|
-
"line":
|
415
|
+
"line": 49
|
400
416
|
},
|
401
417
|
"name": "TerraformModule",
|
402
418
|
"symbolId": "src/terraform-module:TerraformModule"
|
@@ -414,7 +430,7 @@
|
|
414
430
|
"kind": "interface",
|
415
431
|
"locationInModule": {
|
416
432
|
"filename": "src/terraform-module.ts",
|
417
|
-
"line":
|
433
|
+
"line": 15
|
418
434
|
},
|
419
435
|
"name": "TerraformModuleOptions",
|
420
436
|
"properties": [
|
@@ -430,7 +446,7 @@
|
|
430
446
|
"immutable": true,
|
431
447
|
"locationInModule": {
|
432
448
|
"filename": "src/terraform-module.ts",
|
433
|
-
"line":
|
449
|
+
"line": 38
|
434
450
|
},
|
435
451
|
"name": "terraformModules",
|
436
452
|
"type": {
|
@@ -455,7 +471,7 @@
|
|
455
471
|
"immutable": true,
|
456
472
|
"locationInModule": {
|
457
473
|
"filename": "src/terraform-module.ts",
|
458
|
-
"line":
|
474
|
+
"line": 21
|
459
475
|
},
|
460
476
|
"name": "cdktfVersion",
|
461
477
|
"optional": true,
|
@@ -473,7 +489,7 @@
|
|
473
489
|
"immutable": true,
|
474
490
|
"locationInModule": {
|
475
491
|
"filename": "src/terraform-module.ts",
|
476
|
-
"line":
|
492
|
+
"line": 27
|
477
493
|
},
|
478
494
|
"name": "constructVersion",
|
479
495
|
"optional": true,
|
@@ -489,7 +505,7 @@
|
|
489
505
|
"immutable": true,
|
490
506
|
"locationInModule": {
|
491
507
|
"filename": "src/terraform-module.ts",
|
492
|
-
"line":
|
508
|
+
"line": 41
|
493
509
|
},
|
494
510
|
"name": "projectId",
|
495
511
|
"optional": true,
|
@@ -506,7 +522,7 @@
|
|
506
522
|
"immutable": true,
|
507
523
|
"locationInModule": {
|
508
524
|
"filename": "src/terraform-module.ts",
|
509
|
-
"line":
|
525
|
+
"line": 32
|
510
526
|
},
|
511
527
|
"name": "terraformProviders",
|
512
528
|
"optional": true,
|
@@ -532,7 +548,7 @@
|
|
532
548
|
"kind": "interface",
|
533
549
|
"locationInModule": {
|
534
550
|
"filename": "src/terraform-module.ts",
|
535
|
-
"line":
|
551
|
+
"line": 6
|
536
552
|
},
|
537
553
|
"name": "TerraformVersionConstraint",
|
538
554
|
"properties": [
|
@@ -544,7 +560,7 @@
|
|
544
560
|
"immutable": true,
|
545
561
|
"locationInModule": {
|
546
562
|
"filename": "src/terraform-module.ts",
|
547
|
-
"line":
|
563
|
+
"line": 8
|
548
564
|
},
|
549
565
|
"name": "name",
|
550
566
|
"type": {
|
@@ -559,7 +575,7 @@
|
|
559
575
|
"immutable": true,
|
560
576
|
"locationInModule": {
|
561
577
|
"filename": "src/terraform-module.ts",
|
562
|
-
"line":
|
578
|
+
"line": 10
|
563
579
|
},
|
564
580
|
"name": "source",
|
565
581
|
"type": {
|
@@ -574,7 +590,7 @@
|
|
574
590
|
"immutable": true,
|
575
591
|
"locationInModule": {
|
576
592
|
"filename": "src/terraform-module.ts",
|
577
|
-
"line":
|
593
|
+
"line": 12
|
578
594
|
},
|
579
595
|
"name": "version",
|
580
596
|
"type": {
|
@@ -585,6 +601,6 @@
|
|
585
601
|
"symbolId": "src/terraform-module:TerraformVersionConstraint"
|
586
602
|
}
|
587
603
|
},
|
588
|
-
"version": "0.1.
|
589
|
-
"fingerprint": "
|
604
|
+
"version": "0.1.66",
|
605
|
+
"fingerprint": "d21YBvDFGEQ7Qc23NlA8Qye2tMA7CS5kOiyPZQyxXlA="
|
590
606
|
}
|
package/.projenrc.ts
CHANGED
@@ -35,14 +35,13 @@ project.addTask("buildExample", {
|
|
35
35
|
});
|
36
36
|
|
37
37
|
project.addPeerDeps("projen@>= 0.53.6");
|
38
|
-
project.addBundledDeps("
|
38
|
+
project.addBundledDeps("change-case");
|
39
39
|
project.addDevDeps(
|
40
40
|
"fs-extra",
|
41
41
|
"glob",
|
42
42
|
"projen@0.53.6",
|
43
43
|
"@types/fs-extra",
|
44
44
|
"@types/glob",
|
45
|
-
"@types/uuid",
|
46
45
|
"@types/change-case"
|
47
46
|
);
|
48
47
|
|
package/API.md
CHANGED
@@ -204,6 +204,7 @@ const hybridModuleOptions: HybridModuleOptions = { ... }
|
|
204
204
|
| <code><a href="#projen-cdktf-hybrid-construct.HybridModuleOptions.property.constructExamples">constructExamples</a></code> | <code><a href="#projen-cdktf-hybrid-construct.ConstructExamplesOption">ConstructExamplesOption</a></code> | If set a construct examples folder will be created. |
|
205
205
|
| <code><a href="#projen-cdktf-hybrid-construct.HybridModuleOptions.property.constructVersion">constructVersion</a></code> | <code>string</code> | Construct version to use. |
|
206
206
|
| <code><a href="#projen-cdktf-hybrid-construct.HybridModuleOptions.property.projectId">projectId</a></code> | <code>string</code> | If set a terraform examples folder will be created Defaults to a uuid string as cdktf would Mostly used for testing to have a predictable result. |
|
207
|
+
| <code><a href="#projen-cdktf-hybrid-construct.HybridModuleOptions.property.runPlan">runPlan</a></code> | <code>boolean</code> | If set a terraform plan is being run as part of the tests. |
|
207
208
|
| <code><a href="#projen-cdktf-hybrid-construct.HybridModuleOptions.property.terraformExamples">terraformExamples</a></code> | <code><a href="#projen-cdktf-hybrid-construct.TerraformExamplesOption">TerraformExamplesOption</a></code> | If set a terraform examples folder will be created. |
|
208
209
|
|
209
210
|
---
|
@@ -2311,6 +2312,18 @@ If set a terraform examples folder will be created Defaults to a uuid string as
|
|
2311
2312
|
|
2312
2313
|
---
|
2313
2314
|
|
2315
|
+
##### `runPlan`<sup>Optional</sup> <a name="runPlan" id="projen-cdktf-hybrid-construct.HybridModuleOptions.property.runPlan"></a>
|
2316
|
+
|
2317
|
+
```typescript
|
2318
|
+
public readonly runPlan: boolean;
|
2319
|
+
```
|
2320
|
+
|
2321
|
+
- *Type:* boolean
|
2322
|
+
|
2323
|
+
If set a terraform plan is being run as part of the tests.
|
2324
|
+
|
2325
|
+
---
|
2326
|
+
|
2314
2327
|
##### `terraformExamples`<sup>Optional</sup> <a name="terraformExamples" id="projen-cdktf-hybrid-construct.HybridModuleOptions.property.terraformExamples"></a>
|
2315
2328
|
|
2316
2329
|
```typescript
|
package/CHANGELOG.md
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
|
2
|
-
### [0.1.
|
2
|
+
### [0.1.66](https://github.com/DanielMSchmidt/projen-cdktf-hybrid-construct/compare/v0.1.65...v0.1.66) (2022-05-09)
|
3
3
|
|
4
4
|
|
5
5
|
### Bug Fixes
|
6
6
|
|
7
|
-
*
|
7
|
+
* fix publishing to github ([92ef352](https://github.com/DanielMSchmidt/projen-cdktf-hybrid-construct/commit/92ef352256ad10e4022848ae1273ebe76d0bbe16))
|
package/lib/hybrid-module.d.ts
CHANGED
@@ -39,6 +39,10 @@ export interface HybridModuleOptions extends ConstructLibraryOptions {
|
|
39
39
|
* Mostly used for testing to have a predictable result
|
40
40
|
*/
|
41
41
|
readonly projectId?: string;
|
42
|
+
/**
|
43
|
+
* If set a terraform plan is being run as part of the tests
|
44
|
+
*/
|
45
|
+
readonly runPlan?: boolean;
|
42
46
|
}
|
43
47
|
/**
|
44
48
|
* Hybrid CDKTF Construct / Terraform Module
|
package/lib/hybrid-module.js
CHANGED
@@ -6,7 +6,6 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
6
|
const path = require("path");
|
7
7
|
const projen_1 = require("projen");
|
8
8
|
const cdk_1 = require("projen/lib/cdk");
|
9
|
-
const uuid_1 = require("uuid");
|
10
9
|
const defaults_1 = require("./defaults");
|
11
10
|
const constructSrcCode = `
|
12
11
|
import { Construct } from "constructs";
|
@@ -144,7 +143,8 @@ module "eks_managed_node_group" {
|
|
144
143
|
terraformProviders: ["hashicorp/null@3.1.1"],
|
145
144
|
terraformModules: [],
|
146
145
|
output: "modules",
|
147
|
-
projectId: options.projectId ||
|
146
|
+
projectId: options.projectId ||
|
147
|
+
"hybrid-module-fb734dba-eac9-466c-96bb-7eb9c406c28a",
|
148
148
|
}, null, 2),
|
149
149
|
"__tests__/index-test.ts": constructTestCode.trim(),
|
150
150
|
},
|
@@ -174,15 +174,14 @@ terraform {
|
|
174
174
|
});
|
175
175
|
new HCLFile(this, path.join(examplesFolder, "provider.tf"), providerConfig);
|
176
176
|
this.gitignore.addPatterns(`${examplesFolder}/.terraform`, `${examplesFolder}/.terraform.lock.hcl`);
|
177
|
-
new ScriptFile(this, "./scripts/tf-module-test.sh",
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
terraform -chdir=${examplesFolder} plan
|
177
|
+
new ScriptFile(this, "./scripts/tf-module-test.sh", `#!/bin/bash
|
178
|
+
# This script is created by projen, do not edit it directly.
|
179
|
+
set -e
|
180
|
+
|
181
|
+
terraform -chdir=${examplesFolder} init --upgrade
|
182
|
+
terraform -chdir=${examplesFolder} fmt
|
183
|
+
terraform -chdir=${examplesFolder} validate
|
184
|
+
${options.runPlan ? `terraform -chdir=${examplesFolder} plan` : ""}
|
186
185
|
`);
|
187
186
|
this.testTask.exec("./scripts/tf-module-test.sh");
|
188
187
|
(_c = this.jest) === null || _c === void 0 ? void 0 : _c.addIgnorePattern(examplesFolder);
|
@@ -241,7 +240,8 @@ app.synth();
|
|
241
240
|
"cdktf.json": JSON.stringify({
|
242
241
|
language: "typescript",
|
243
242
|
app: `npx ts-node --project ${levels}/tsconfig.dev.json index.ts`,
|
244
|
-
projectId: options.projectId ||
|
243
|
+
projectId: options.projectId ||
|
244
|
+
"hybrid-module-fb734dba-eac9-466c-96bb-7eb9c406c28a",
|
245
245
|
}, null, 2),
|
246
246
|
"README.md": constructReadmeDocs.trim(),
|
247
247
|
},
|
@@ -318,5 +318,5 @@ done
|
|
318
318
|
}
|
319
319
|
exports.HybridModule = HybridModule;
|
320
320
|
_a = JSII_RTTI_SYMBOL_1;
|
321
|
-
HybridModule[_a] = { fqn: "projen-cdktf-hybrid-construct.HybridModule", version: "0.1.
|
322
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlicmlkLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oeWJyaWQtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLG1DQUFpRTtBQUNqRSx3Q0FBc0U7QUFDdEUsK0JBQWtDO0FBQ2xDLHlDQUFzQztBQXdEdEMsTUFBTSxnQkFBZ0IsR0FBRzs7Ozs7Ozs7Ozs7O0NBWXhCLENBQUM7QUFFRixNQUFNLGlCQUFpQixHQUFHOzs7Ozs7Ozs7Ozs7Ozs7OztDQWlCekIsQ0FBQztBQUVGLE1BQU0sYUFBYSxHQUFHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBc0JyQixDQUFDO0FBRUYsTUFBTSxtQkFBbUIsR0FBRzs7Ozs7Ozs7O0tBU3ZCLENBQUM7QUFFTixNQUFNLFVBQVcsU0FBUSxpQkFBUTtJQUMvQixZQUFZLE9BQWdCLEVBQUUsUUFBZ0IsRUFBVSxPQUFlO1FBQ3JFLEtBQUssQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFO1lBQ3ZCLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUMsQ0FBQztRQUhtRCxZQUFPLEdBQVAsT0FBTyxDQUFRO0lBSXZFLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxDQUFZO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0NBQ0Y7QUFFRCxNQUFNLE9BQVEsU0FBUSxpQkFBUTtJQUM1QixZQUFZLE9BQWdCLEVBQUUsUUFBZ0IsRUFBVSxPQUFlO1FBQ3JFLEtBQUssQ0FBQyxPQUFPLEVBQUUsUUFBUSxFQUFFO1lBQ3ZCLFVBQVUsRUFBRSxLQUFLO1lBQ2pCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsUUFBUSxFQUFFLEtBQUs7U0FDaEIsQ0FBQyxDQUFDO1FBTG1ELFlBQU8sR0FBUCxPQUFPLENBQVE7SUFNdkUsQ0FBQztJQUVTLGlCQUFpQixDQUFDLENBQVk7UUFDdEMsT0FBTztFQUNULElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNm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LENBQUMsSUFBSSwwQ0FBRSxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUU7SUFDdEMsQ0FBQzs7QUF0UUgsb0NBdVFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tIFwicGF0aFwiO1xuaW1wb3J0IHsgRmlsZUJhc2UsIElSZXNvbHZlciwgUHJvamVjdCwgU2FtcGxlRGlyIH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgSnNpaVByb2plY3QsIENvbnN0cnVjdExpYnJhcnlPcHRpb25zIH0gZnJvbSBcInByb2plbi9saWIvY2RrXCI7XG5pbXBvcnQgeyB2NCBhcyB1dWlkIH0gZnJvbSBcInV1aWRcIjtcbmltcG9ydCB7IGRlZmF1bHRzIH0gZnJvbSBcIi4vZGVmYXVsdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBDb25zdHJ1Y3RFeGFtcGxlc09wdGlvbiB7XG4gIC8vIElmIHNldCBjb25zdHJ1Y3QgZXhhbXBsZXMgd2lsbCBiZSByZW5kZXJlZFxuICByZWFkb25seSBlbmFibGVkOiBib29sZWFuO1xuICAvLyBQYXRoIGZvciB0aGUgY29uc3RydWN0IGV4YW1wbGVzXG4gIHJlYWRvbmx5IGZvbGRlcj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUZXJyYWZvcm1FeGFtcGxlc09wdGlvbiB7XG4gIC8vIElmIHNldCB0ZXJyYWZvcm0gZXhhbXBsZXMgd2lsbCBiZSByZW5kZXJlZFxuICByZWFkb25seSBlbmFibGVkOiBib29sZWFuO1xuICAvLyBQYXRoIGZvciB0aGUgdGVycmFmb3JtIGV4YW1wbGVzXG4gIHJlYWRvbmx5IGZvbGRlcj86IHN0cmluZztcbiAgLy8gVGhlIEhDTCBjb25maWcgZmlsZSB0byB1c2UgZm9yIHRoZSB0ZXJyYWZvcm0gcHJvdmlkZXJcbiAgcmVhZG9ubHkgcHJvdmlkZXJDb25maWc/OiBzdHJpbmc7XG4gIC8vIEhDTCBleGFtcGxlIGNvbmZpZ1xuICByZWFkb25seSBleGFtcGxlQ29kZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBIeWJyaWRNb2R1bGVPcHRpb25zIGV4dGVuZHMgQ29uc3RydWN0TGlicmFyeU9wdGlvbnMge1xuICAvKipcbiAgICogTWluaW11bSB0YXJnZXQgdmVyc2lvbiBvZiB0aGlzIGxpYnJhcnkuXG4gICAqIEBkZWZhdWx0IFwiXjAuMTAuMVwiXG4gICAqIEBmZWF0dXJlZFxuICAgKi9cbiAgcmVhZG9ubHkgY2RrdGZWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3QgdmVyc2lvbiB0byB1c2VcbiAgICogQGRlZmF1bHQgXCJeMTAuMC4xMlwiXG4gICAqL1xuICByZWFkb25seSBjb25zdHJ1Y3RWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgYSB0ZXJyYWZvcm0gZXhhbXBsZXMgZm9sZGVyIHdpbGwgYmUgY3JlYXRlZFxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICogQGZlYXR1cmVkXG4gICAqL1xuICByZWFkb25seSB0ZXJyYWZvcm1FeGFtcGxlcz86IFRlcnJhZm9ybUV4YW1wbGVzT3B0aW9uO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgYSBjb25zdHJ1Y3QgZXhhbXBsZXMgZm9sZGVyIHdpbGwgYmUgY3JlYXRlZFxuICAgKiBAZGVmYXVsdCB1bmRlZmluZWRcbiAgICogQGZlYXR1cmVkXG4gICAqL1xuICByZWFkb25seSBjb25zdHJ1Y3RFeGFtcGxlcz86IENvbnN0cnVjdEV4YW1wbGVzT3B0aW9uO1xuXG4gIC8qKlxuICAgKiBJZiBzZXQgYSB0ZXJyYWZvcm0gZXhhbXBsZXMgZm9sZGVyIHdpbGwgYmUgY3JlYXRlZFxuICAgKkRlZmF1bHRzIHRvIGEgdXVpZCBzdHJpbmcgYXMgY2RrdGYgd291bGRcbiAgICogTW9zdGx5IHVzZWQgZm9yIHRlc3RpbmcgdG8gaGF2ZSBhIHByZWRpY3RhYmxlIHJlc3VsdFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVjdElkPzogc3RyaW5nO1xufVxuXG5jb25zdCBjb25zdHJ1Y3RTcmNDb2RlID0gYFxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBNeUNvbnN0cnVjdE9wdGlvbnMge1xuICByZWFkb25seSBwcm9wZXJ0eUE6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIE15Q29uc3RydWN0IGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHVibGljIGNvbmZpZzogTXlDb25zdHJ1Y3RPcHRpb25zKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgfVxufVxuYDtcblxuY29uc3QgY29uc3RydWN0VGVzdENvZGUgPSBgXG5pbXBvcnQgeyBUZXN0aW5nIH0gZnJvbSBcImNka3RmXCI7XG5pbXBvcnQgXCJjZGt0Zi9saWIvdGVzdGluZy9hZGFwdGVycy9qZXN0XCI7XG5pbXBvcnQgeyBNeUNvbnN0cnVjdCB9IGZyb20gXCIuLi9cIjtcblxuLy8gVG8gbGVhcm4gbW9yZSBhYm91dCB0ZXN0aW5nIHNlZSBjZGsudGYvdGVzdGluZ1xuZGVzY3JpYmUoXCJNeUNvbnN0cnVjdFwiLCAoKSA9PiB7XG4gIGl0KFwic2hvdWxkIHN5bnRoZXNpemVcIiwgKCkgPT4ge1xuICAgIGV4cGVjdChcbiAgICAgIFRlc3Rpbmcuc3ludGhTY29wZSgoc2NvcGUpID0+IHtcbiAgICAgICAgbmV3IE15Q29uc3RydWN0KHNjb3BlLCBcIm15LWNvbnN0cnVjdFwiLCB7XG4gICAgICAgICAgcHJvcGVydHlBOiBcInZhbHVlQVwiLFxuICAgICAgICB9KTtcbiAgICAgIH0pXG4gICAgKS50b01hdGNoU25hcHNob3QoKTtcbiAgfSk7XG59KTtcbmA7XG5cbmNvbnN0IG1vZHVsZVNyY0NvZGUgPSBgXG5pbXBvcnQgeyBBcHAgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBURk1vZHVsZVN0YWNrIH0gZnJvbSBcImNka3RmLXRmLW1vZHVsZS1zdGFja1wiO1xuaW1wb3J0IHsgTXlDb25zdHJ1Y3QgfSBmcm9tIFwiLi9pbmRleFwiO1xuXG5jbGFzcyBNeUF3ZXNvbWVNb2R1bGUgZXh0ZW5kcyBURk1vZHVsZVN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBuZXcgTXlDb25zdHJ1Y3QodGhpcywgXCJteS1jb25zdHJ1Y3RcIiwge1xuICAgICAgcHJvcGVydHlBOiBcInZhbHVlQVwiLFxuICAgIH0pO1xuICB9XG59XG5cbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcbi8vIFRoaXMgaXMgdGhlIG5hbWUgdGhlIG1vZHVsZSBjYW4gYmUgZm91bmQgdW5kZXIuIFxuLy8gV2UgZXhwZWN0IGEgXCJteS1hd2Vzb21lLW1vZHVsZS5tZFwiIGZpbGUgaW4gdGhpcyBkaXJlY3RvcnkuXG4vLyBUaGUgUkVBRE1FLm1kIGZpbGUgd2lsbCBiZSBnZW5lcmF0ZWQgZnJvbSB0aGlzIGZpbGUuXG5uZXcgTXlBd2Vzb21lTW9kdWxlKGFwcCwgXCJteS1hd2Vzb21lLW1vZHVsZVwiKTtcbmFwcC5zeW50aCgpO1xuYDtcblxuY29uc3QgdGVycmFmb3JtUmVhZG1lRG9jcyA9IGBcbiMgUGxlYXNlIGFkZCBoZXJlIHNvbWUgcHVyZSBIQ0wgdGVzdHMgZm9yIHlvdXIgbW9kdWxlcyBpbiBvcmRlciB0byB0ZXN0IEhDTCBJbnRlcm9wZXJhYmlsaXR5XG5cbkV4YW1wbGVzOlxuXG5tb2R1bGUgXCJteV9hd2Vzb21lX3Rlc3RcIiB7XG4gIHNvdXJjZSA9IFwiLi4vbW9kdWxlcy9teS1hd2Vzb21lLW1vZHVsZXNcIlxuICAuLi52YXJpYWJsZXMuLi5cbn1cbiAgICBgO1xuXG5jbGFzcyBTY3JpcHRGaWxlIGV4dGVuZHMgRmlsZUJhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBmaWxlUGF0aDogc3RyaW5nLCBwcml2YXRlIGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHN1cGVyKHByb2plY3QsIGZpbGVQYXRoLCB7XG4gICAgICBleGVjdXRhYmxlOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVDb250ZW50KF86IElSZXNvbHZlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuY29udGVudDtcbiAgfVxufVxuXG5jbGFzcyBIQ0xGaWxlIGV4dGVuZHMgRmlsZUJhc2Uge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBQcm9qZWN0LCBmaWxlUGF0aDogc3RyaW5nLCBwcml2YXRlIGNvbnRlbnQ6IHN0cmluZykge1xuICAgIHN1cGVyKHByb2plY3QsIGZpbGVQYXRoLCB7XG4gICAgICBleGVjdXRhYmxlOiBmYWxzZSxcbiAgICAgIGNvbW1pdHRlZDogdHJ1ZSxcbiAgICAgIHJlYWRvbmx5OiBmYWxzZSwgLy8gdGVycmFmb3JtIGZtdCBtaWdodCB3YW50IHRvIG92ZXJ3cml0ZSBpdFxuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIHN5bnRoZXNpemVDb250ZW50KF86IElSZXNvbHZlcik6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIGAjIFRoaXMgZmlsZSBpcyBtYW5hZ2VkIGJ5IHByb2plbi4gRG8gbm90IGVkaXQsIGNoYW5nZSB0aGUgLnByb2plbnJjIGZpbGUgaW5zdGVhZC5cbiR7dGhpcy5jb250ZW50fWA7XG4gIH1cbn1cblxuLyoqXG4gKiBIeWJyaWQgQ0RLVEYgQ29uc3RydWN0IC8gVGVycmFmb3JtIE1vZHVsZVxuICpcbiAqIEBwamlkIGh5YnJpZC1tb2R1bGVcbiAqL1xuZXhwb3J0IGNsYXNzIEh5YnJpZE1vZHVsZSBleHRlbmRzIEpzaWlQcm9qZWN0IHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogSHlicmlkTW9kdWxlT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLmRlZmF1bHRzLFxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIGVzbGludE9wdGlvbnM6IE9iamVjdC5hc3NpZ24oe30sIG9wdGlvbnMuZXNsaW50T3B0aW9ucywge1xuICAgICAgICBsaW50UHJvamVuUmM6IGZhbHNlLFxuICAgICAgfSksXG4gICAgICBwb3N0QnVpbGRTdGVwczogW10sXG4gICAgfSk7XG4gICAgY29uc3QgY29uc3RydWN0VmVyc2lvbiA9IG9wdGlvbnMuY29uc3RydWN0VmVyc2lvbiB8fCBcIl4xMC4wLjEwN1wiO1xuICAgIGNvbnN0IGNka3RmVmVyc2lvbiA9IG9wdGlvbnMuY2RrdGZWZXJzaW9uIHx8IFwiXjAuMTAuMVwiO1xuXG4gICAgdGhpcy5hZGRQZWVyRGVwcyhgY29uc3RydWN0c0Ake2NvbnN0cnVjdFZlcnNpb259YCwgYGNka3RmQCR7Y2RrdGZWZXJzaW9ufWApO1xuICAgIHRoaXMuYWRkRGV2RGVwcyhgY2RrdGYtY2xpQCR7Y2RrdGZWZXJzaW9ufWAsIFwidHMtbm9kZVwiKTtcbiAgICB0aGlzLmFkZEtleXdvcmRzKFwiY2RrXCIsIFwiY2RrdGZcIiwgXCJjZGt0Zi1oeWJyaWRcIiwgXCJ0ZXJyYWZvcm1cIik7XG4gICAgdGhpcy5zZXRTY3JpcHQoXCJ0ZXJyYWZvcm06dGVzdFwiLCBcIi4vc2NyaXB0cy90Zi1tb2R1bGUtdGVzdC5zaFwiKTtcblxuICAgIC8vIE1vZHVsZSBFbnRyeXBvaW50XG4gICAgdGhpcy5hZGREZXBzKFwiY2RrdGYtdGYtbW9kdWxlLXN0YWNrXCIpO1xuICAgIGNvbnN0IG1vZHVsZURvY3MgPSBgXG4jIE15IEF3ZXNvbWUgTW9kdWxlXG5cbiMjIFVzYWdlXG5cblxcYFxcYFxcYGhjbFxubW9kdWxlIFwiZWtzX21hbmFnZWRfbm9kZV9ncm91cFwiIHtcbiAgc291cmNlID0gXCIke1xuICAgIG9wdGlvbnMucmVwb3NpdG9yeVVybFxuICAgICAgPy5yZXBsYWNlKFwiaHR0cHM6Ly9naXRodWIuY29tL1wiLCBcIlwiKVxuICAgICAgLnJlcGxhY2UoXCJodHRwOi8vZ2l0aHViLmNvbS9cIiwgXCJcIilcbiAgICAgIC5yZXBsYWNlKFwiZ2l0aHViLmNvbS9cIiwgXCJcIikgfHwgXCJteS1naXRodWItcmVwb1wiXG4gIH0vL21vZHVsZXMvbXktYXdlc29tZS1tb2R1bGVcIlxuXG59XG5cXGBcXGBcXGBcbiAgICBgO1xuXG4gICAgbmV3IFNhbXBsZURpcih0aGlzLCB0aGlzLnNyY2Rpciwge1xuICAgICAgZmlsZXM6IHtcbiAgICAgICAgXCJpbmRleC50c1wiOiBjb25zdHJ1Y3RTcmNDb2RlLnRyaW0oKSxcbiAgICAgICAgXCJ0Zk1vZHVsZXMudHNcIjogbW9kdWxlU3JjQ29kZS50cmltKCksXG4gICAgICAgIFwibXktYXdlc29tZS1tb2R1bGUubWRcIjogbW9kdWxlRG9jcy50cmltKCksXG4gICAgICAgIFwiY2RrdGYuanNvblwiOiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICB7XG4gICAgICAgICAgICBsYW5ndWFnZTogXCJ0eXBlc2NyaXB0XCIsXG4gICAgICAgICAgICBhcHA6IFwibnB4IHRzLW5vZGUgdGZNb2R1bGVzLnRzXCIsXG4gICAgICAgICAgICB0ZXJyYWZvcm1Qcm92aWRlcnM6IFtcImhhc2hpY29ycC9udWxsQDMuMS4xXCJdLCAvLyBXZSBuZWVkIGF0IGxlYXN0IGEgcHJvdmlkZXIgZm9yIGdldCB0byBzdWNjZWVkXG4gICAgICAgICAgICB0ZXJyYWZvcm1Nb2R1bGVzOiBbXSxcbiAgICAgICAgICAgIG91dHB1dDogXCJtb2R1bGVzXCIsXG4gICAgICAgICAgICBwcm9qZWN0SWQ6IG9wdGlvbnMucHJvamVjdElkIHx8IHV1aWQoKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG51bGwsXG4gICAgICAgICAgMlxuICAgICAgICApLFxuICAgICAgICBcIl9fdGVzdHNfXy9pbmRleC10ZXN0LnRzXCI6IGNvbnN0cnVjdFRlc3RDb2RlLnRyaW0oKSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAob3B0aW9ucy50ZXJyYWZvcm1FeGFtcGxlcyAmJiBvcHRpb25zLnRlcnJhZm9ybUV4YW1wbGVzLmVuYWJsZWQpIHtcbiAgICAgIGNvbnN0IHByb3ZpZGVyQ29uZmlnID1cbiAgICAgICAgb3B0aW9ucy50ZXJyYWZvcm1FeGFtcGxlcy5wcm92aWRlckNvbmZpZyB8fFxuICAgICAgICBgXG50ZXJyYWZvcm0ge1xuICAjIFRlcnJhZm9ybSBiaW5hcnkgdmVyc2lvbiBjb25zdHJhaW50XG4gIHJlcXVpcmVkX3ZlcnNpb24gPSBcIn4+IDEuMS4wXCJcblxuICAjIERlZmluZSBhbGwgbmVlZGVkIHByb3ZpZGVycyBoZXJlLCB5b3UgY2FuIGZpbmQgYWxsIGF2YWlsYWJsZSBwcm92aWRlcnMgaGVyZTpcbiAgIyBodHRwczovL3JlZ2lzdHJ5LnRlcnJhZm9ybS5pby9cbiAgcmVxdWlyZWRfcHJvdmlkZXJzIHt9XG59XG5cbiMgSW5pdGlhbGl6ZSB5b3VyIHByb3ZpZGVyIGhlcmVcblxuYC50cmltKCk7XG4gICAgICBjb25zdCBleGFtcGxlc0ZvbGRlciA9XG4gICAgICAgIG9wdGlvbnMudGVycmFmb3JtRXhhbXBsZXMuZm9sZGVyIHx8IFwidGVycmFmb3JtLWV4YW1wbGVzXCI7XG5cbiAgICAgIG5ldyBTYW1wbGVEaXIodGhpcywgZXhhbXBsZXNGb2xkZXIsIHtcbiAgICAgICAgZmlsZXM6IHtcbiAgICAgICAgICBcIm1haW4udGZcIjpcbiAgICAgICAgICAgIG9wdGlvbnMudGVycmFmb3JtRXhhbXBsZXMuZXhhbXBsZUNvZGUgfHxcbiAgICAgICAgICAgIGAjIENvbmZpZ3VyZSB5b3UgbW9kdWxlIGhlcmVgLFxuICAgICAgICAgIFwiUkVBRE1FLm1kXCI6IHRlcnJhZm9ybVJlYWRtZURvY3MudHJpbSgpLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIG5ldyBIQ0xGaWxlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBwYXRoLmpvaW4oZXhhbXBsZXNGb2xkZXIsIFwicHJvdmlkZXIudGZcIiksXG4gICAgICAgIHByb3ZpZGVyQ29uZmlnXG4gICAgICApO1xuXG4gICAgICB0aGlzLmdpdGlnbm9yZS5hZGRQYXR0ZXJucyhcbiAgICAgICAgYCR7ZXhhbXBsZXNGb2xkZXJ9Ly50ZXJyYWZvcm1gLFxuICAgICAgICBgJHtleGFtcGxlc0ZvbGRlcn0vLnRlcnJhZm9ybS5sb2NrLmhjbGBcbiAgICAgICk7XG5cbiAgICAgIG5ldyBTY3JpcHRGaWxlKFxuICAgICAgICB0aGlzLFxuICAgICAgICBcIi4vc2NyaXB0cy90Zi1tb2R1bGUtdGVzdC5zaFwiLFxuICAgICAgICBgXG4gICMhL2Jpbi9iYXNoXG4gICMgVGhpcyBzY3JpcHQgaXMgY3JlYXRlZCBieSBwcm9qZW4sIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5LlxuICBzZXQgLWVcbiAgXG4gIHRlcnJhZm9ybSAtY2hkaXI9JHtleGFtcGxlc0ZvbGRlcn0gaW5pdCAtLXVwZ3JhZGVcbiAgdGVycmFmb3JtIC1jaGRpcj0ke2V4YW1wbGVzRm9sZGVyfSBmbXRcbiAgdGVycmFmb3JtIC1jaGRpcj0ke2V4YW1wbGVzRm9sZGVyfSB2YWxpZGF0ZVxuICB0ZXJyYWZvcm0gLWNoZGlyPSR7ZXhhbXBsZXNGb2xkZXJ9IHBsYW4gICAgIFxuICAgICAgICAgIGBcbiAgICAgICk7XG5cbiAgICAgIHRoaXMudGVzdFRhc2suZXhlYyhcIi4vc2NyaXB0cy90Zi1tb2R1bGUtdGVzdC5zaFwiKTtcbiAgICAgIHRoaXMuamVzdD8uYWRkSWdub3JlUGF0dGVybihleGFtcGxlc0ZvbGRlcik7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuY29uc3RydWN0RXhhbXBsZXMgJiYgb3B0aW9ucy5jb25zdHJ1Y3RFeGFtcGxlcy5lbmFibGVkKSB7XG4gICAgICBjb25zdCBjb25zdHJ1Y3RFeGFtcGxlRm9sZGVyID1cbiAgICAgICAgb3B0aW9ucy5jb25zdHJ1Y3RFeGFtcGxlcy5mb2xkZXIgfHwgXCJjb25zdHJ1Y3QtZXhhbXBsZXNcIjtcblxuICAgICAgY29uc3QgbGV2ZWxzID0gY29uc3RydWN0RXhhbXBsZUZvbGRlclxuICAgICAgICAuc3BsaXQoXCIvXCIpXG4gICAgICAgIC5zcGxpY2UoMCwgMSlcbiAgICAgICAgLm1hcCgoKSA9PiBcIi4uXCIpXG4gICAgICAgIC5qb2luKFwiL1wiKTtcblxuICAgICAgY29uc3QgY29uc3RydWN0UmVhZG1lRG9jcyA9IGBcbiMgQ29uc3RydWN0IEV4YW1wbGVzXG5cbkV4YW1wbGUgdXNlLWNhc2VzIGZvciB0aGUgQ29uc3RydWN0IGxpYnJhcnkuXG5cbi0gW0Jhc2ljIFVzYWdlXSguL2Jhc2ljLnRzKVxuXG5UbyBlbnN1cmUgYWxsIGV4YW1wbGVzIGFyZSB3b3JraW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRoZSBbaW5kZXgudHNdKC4vaW5kZXgudHMpIGZpbGUgaXMgaW1wb3J0aW5nIGFsbCBvZiB0aGVtLlxuYDtcblxuICAgICAgY29uc3QgY29uc3RydWN0RXhhbXBsZUNvZGUgPSBgXG5pbXBvcnQgeyBUZXJyYWZvcm1TdGFjayB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuaW1wb3J0IHsgTXlDb25zdHJ1Y3QgfSBmcm9tIFwiJHtsZXZlbHN9L3NyYy9cIjtcblxuZXhwb3J0IGNsYXNzIEJhc2ljRXhhbXBsZSBleHRlbmRzIFRlcnJhZm9ybVN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgbmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIG5hbWUpO1xuXG4gICAgbmV3IE15Q29uc3RydWN0KHRoaXMsIFwibXktY29uc3RydWN0XCIsIHtcbiAgICAgIHByb3BlcnR5QTogXCJ2YWx1ZUFcIixcbiAgICB9KTtcbiAgfVxufVxuXG5cbmA7XG5cbiAgICAgIGNvbnN0IGV4YW1wbGVDb2xsZWN0aW9uQ29kZSA9IGBcbi8vIFRoaXMgZmlsZSB3aWxsIGJlIHN5bnRoZXNpemVkIHRvIGNoZWNrIGlmIGFsbCBleGFtcGxlcyBhcmUgd29ya2luZ1xuXG5pbXBvcnQgeyBBcHAgfSBmcm9tIFwiY2RrdGZcIjtcbi8vIEFsbCBleGFtcGxlcyBuZWVkIHRvIGJlIGltcG9ydGVkIGhlcmVcbmltcG9ydCB7IEJhc2ljRXhhbXBsZSB9IGZyb20gXCIuL2Jhc2ljXCI7XG5cbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcblxuLy8gQWxsIGV4YW1wbGVzIG5lZWQgdG8gYmUgaW5pdGlhbGl6ZWQgaGVyZVxubmV3IEJhc2ljRXhhbXBsZShhcHAsIFwiYmFzaWMtZXhhbXBsZVwiKTtcbmFwcC5zeW50aCgpO1xuYDtcblxuICAgICAgbmV3IFNhbXBsZURpcih0aGlzLCBjb25zdHJ1Y3RFeGFtcGxlRm9sZGVyLCB7XG4gICAgICAgIGZpbGVzOiB7XG4gICAgICAgICAgXCJpbmRleC50c1wiOiBleGFtcGxlQ29sbGVjdGlvbkNvZGUudHJpbSgpLFxuICAgICAgICAgIFwiYmFzaWMudHNcIjogY29uc3RydWN0RXhhbXBsZUNvZGUudHJpbSgpLFxuICAgICAgICAgIFwiY2RrdGYuanNvblwiOiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGFuZ3VhZ2U6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgICAgICAgICBhcHA6IGBucHggdHMtbm9kZSAtLXByb2plY3QgJHtsZXZlbHN9L3RzY29uZmlnLmRldi5qc29uIGluZGV4LnRzYCxcbiAgICAgICAgICAgICAgcHJvamVjdElkOiBvcHRpb25zLnByb2plY3RJZCB8fCB1dWlkKCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgbnVsbCxcbiAgICAgICAgICAgIDJcbiAgICAgICAgICApLFxuICAgICAgICAgIFwiUkVBRE1FLm1kXCI6IGNvbnN0cnVjdFJlYWRtZURvY3MudHJpbSgpLFxuICAgICAgICB9LFxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMudGVzdFRhc2suZXhlYyhgY2RrdGYgc3ludGhgLCB7XG4gICAgICAgIGN3ZDogY29uc3RydWN0RXhhbXBsZUZvbGRlcixcbiAgICAgIH0pO1xuICAgICAgdGhpcy5naXRpZ25vcmUuYWRkUGF0dGVybnMoYCR7Y29uc3RydWN0RXhhbXBsZUZvbGRlcn0vY2RrdGYub3V0YCk7XG4gICAgfVxuXG4gICAgdGhpcy5naXRpZ25vcmUuYWRkUGF0dGVybnMoXCJzcmMvLmdlblwiLCBcInNyYy9jZGt0Zi5vdXRcIiwgXCJzcmMvbW9kdWxlc1wiKTtcbiAgICB0aGlzLmNvbXBpbGVUYXNrLnByZXBlbmRFeGVjKFwiY2RrdGYgZ2V0XCIsIHtcbiAgICAgIGN3ZDogdGhpcy5zcmNkaXIsXG4gICAgfSk7XG4gICAgdGhpcy5jb21waWxlVGFzay5leGVjKFwiY2RrdGYgc3ludGhcIiwge1xuICAgICAgY3dkOiB0aGlzLnNyY2RpcixcbiAgICAgIG5hbWU6IFwiU3ludGhlc2l6ZSBtb2R1bGUgSENMXCIsXG4gICAgfSk7XG5cbiAgICBuZXcgU2NyaXB0RmlsZShcbiAgICAgIHRoaXMsXG4gICAgICBcInNjcmlwdHMvY29weS1tb2R1bGVzLnNoXCIsXG4gICAgICBgXG4jIS9iaW4vYmFzaFxuIyBUaGlzIHNjcmlwdCBpcyBjcmVhdGVkIGJ5IHByb2plbiwgZG8gbm90IGVkaXQgaXQgZGlyZWN0bHkuXG5zZXQgLWVcblxuU0NSSVBUUEFUSD1cIiQoIGNkIC0tIFwiJChkaXJuYW1lIFwiJDBcIilcIiA+L2Rldi9udWxsIDI+JjEgOyBwd2QgLVAgKVwiXG5cbiMgY2hlY2sgaWYgdGhlIG1vZHVsZSBmb2xkZXIgaGFzIGJlZW4gZ2VuZXJhdGVkIGFzIGV4cGVjdGVkXG5NT0RVTEVTX0ZPTERFUj0kKCBjZCAtLSBcIiRTQ1JJUFRQQVRILy4uL3NyYy9tb2R1bGVzL3N0YWNrc1wiID4vZGV2L251bGwgMj4mMSA7IHB3ZCAtUCApXG5TUkNfRk9MREVSPSQoIGNkIC0tIFwiJFNDUklQVFBBVEgvLi4vc3JjL1wiID4vZGV2L251bGwgMj4mMSA7IHB3ZCAtUCApXG5UQVJHRVRfRk9MREVSPVwiJFNDUklQVFBBVEgvLi4vbW9kdWxlc1wiXG5cbmlmIFsgISAtZCBcIiRNT0RVTEVTX0ZPTERFUlwiIF07IHRoZW5cbiAgZWNobyBcIkV4cGVjdGVkIG1vZHVsZSBmb2xkZXIgdG8gZXhpc3QgYXQgJE1PRFVMRVNfRk9MREVSXCJcbiAgZXhpdCAxXG5maVxuXG5jZCBcIiRNT0RVTEVTX0ZPTERFUlwiXG5mb3IgZCBpbiAqLyA7IGRvXG4gICAgWyAtTCBcIlxcJHtkJS99XCIgXSAmJiBjb250aW51ZVxuXG4gICAgZGlybmFtZT1cIlxcJHtkJS99XCJcblxuXG4gICAgIyBDaGVjayBpZiBldmVyeXRoaW5nIGlzIGluIHBsYWNlXG4gICAgaWYgWyAhIC1mIFwiJE1PRFVMRVNfRk9MREVSLyRkaXJuYW1lL2Nkay50Zi5qc29uXCIgXTsgdGhlblxuICAgICAgZWNobyBcIkV4cGVjdGVkIGNvZGUgZm9yICRkaXJuYW1lIGF0IGNkay50Zi5qc29uIHRvIGV4aXN0IGF0ICRNT0RVTEVTX0ZPTERFUi8kZGlybmFtZVwiXG4gICAgICBleGl0IDFcbiAgICBmaVxuXG4gICAgaWYgWyAhIC1mIFwiJFNSQ19GT0xERVIvJGRpcm5hbWUubWRcIiBdOyB0aGVuXG4gICAgICBlY2hvIFwiRXhwZWN0ZWQgRG9jdW1lbnRhdGlvbiBmb3IgJGRpcm5hbWUgYXQgJGRpcm5hbWUubWQgdG8gZXhpc3QgYXQgJFNSQ19GT0xERVIvJGRpcm5hbWUubWRcIlxuICAgICAgZXhpdCAxXG4gICAgZmlcblxuICAgICMgQ29weSBtb2R1bGUgYW5kIHJlYWRtZSB0b2dldGhlclxuICAgIGVjaG8gXCJDb3B5aW5nIENvZGUgYW5kIFJFQURNRSBmb3IgbW9kdWxlICRkaXJuYW1lXCJcbiAgICBta2RpciAtcCBcIiRUQVJHRVRfRk9MREVSXCJcbiAgICBta2RpciAtcCBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lXCJcbiAgICBjcCBcIiRNT0RVTEVTX0ZPTERFUi8kZGlybmFtZS9jZGsudGYuanNvblwiIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWUvY2RrLnRmLmpzb25cIlxuICAgIGNwIFwiJFNSQ19GT0xERVIvJGRpcm5hbWUubWRcIiBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lL1JFQURNRS5tZFwiXG5cbiAgICAjIEFkZCBSRUFETUUgaGNsIGRvY3NcbiAgICBpZiB3aGljaCB0ZXJyYWZvcm0tZG9jcyA+L2Rldi9udWxsOyB0aGVuXG4gICAgICB0ZXJyYWZvcm0tZG9jcyBtYXJrZG93biB0YWJsZSAtLW91dHB1dC1maWxlIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWUvUkVBRE1FLm1kXCIgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZVwiIFxuICAgIGVsc2VcbiAgICAgIGRvY2tlciBydW4gLS1ybSAtLXZvbHVtZSBcIiRTQ1JJUFRQQVRILy4uL21vZHVsZXM6L3RlcnJhZm9ybS1kb2NzXCIgLXUgJChpZCAtdSkgcXVheS5pby90ZXJyYWZvcm0tZG9jcy90ZXJyYWZvcm0tZG9jczowLjE2LjAgbWFya2Rvd24gdGFibGUgLS1vdXRwdXQtZmlsZSBcIi90ZXJyYWZvcm0tZG9jcy8kZGlybmFtZS9SRUFETUUubWRcIiAvdGVycmFmb3JtLWRvY3MvJGRpcm5hbWVcbiAgICBmaVxuZG9uZVxuYC50cmltKClcbiAgICApO1xuICAgIHRoaXMuY29tcGlsZVRhc2suZXhlYyhcIi4vc2NyaXB0cy9jb3B5LW1vZHVsZXMuc2hcIiwge1xuICAgICAgbmFtZTogXCJDb3B5IEhDTCBNb2R1bGVzXCIsXG4gICAgfSk7XG5cbiAgICAvLyBpZ25vcmUgZGlzdCBpbiB0ZXN0c1xuICAgIHRoaXMuamVzdD8uYWRkSWdub3JlUGF0dGVybihcImRpc3RcIik7XG4gIH1cbn1cbiJdfQ==
|
321
|
+
HybridModule[_a] = { fqn: "projen-cdktf-hybrid-construct.HybridModule", version: "0.1.66" };
|
322
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHlicmlkLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9oeWJyaWQtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLG1DQUFpRTtBQUNqRSx3Q0FBc0U7QUFDdEUseUNBQXNDO0FBNkR0QyxNQUFNLGdCQUFnQixHQUFHOzs7Ozs7Ozs7Ozs7Q0FZeEIsQ0FBQztBQUVGLE1BQU0saUJBQWlCLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBaUJ6QixDQUFDO0FBRUYsTUFBTSxhQUFhLEdBQUc7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzQnJCLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUFHOzs7Ozs7Ozs7S0FTdkIsQ0FBQztBQUVOLE1BQU0sVUFBVyxTQUFRLGlCQUFRO0lBQy9CLFlBQVksT0FBZ0IsRUFBRSxRQUFnQixFQUFVLE9BQWU7UUFDckUsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUU7WUFDdkIsVUFBVSxFQUFFLElBQUk7U0FDakIsQ0FBQyxDQUFDO1FBSG1ELFlBQU8sR0FBUCxPQUFPLENBQVE7SUFJdkUsQ0FBQztJQUVTLGlCQUFpQixDQUFDLENBQVk7UUFDdEMsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7Q0FDRjtBQUVELE1BQU0sT0FBUSxTQUFRLGlCQUFRO0lBQzVCLFlBQVksT0FBZ0IsRUFBRSxRQUFnQixFQUFVLE9BQWU7UUFDckUsS0FBSyxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUU7WUFDdkIsVUFBVSxFQUFFLEtBQUs7WUFDakIsU0FBUyxFQUFFLElBQUk7WUFDZixRQUFRLEVBQUUsS0FBSztTQUNoQixDQUFDLENBQUM7UUFMbUQsWUFBTyxHQUFQLE9BQU8sQ0FBUTtJQU12RSxDQUFDO0lBRVMsaUJBQWlCLENBQUMsQ0FBWTtRQUN0QyxPQUFPO0VBQ1QsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2YsQ0FBQztDQUNGO0FB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a0I7U0FDekIsQ0FBQyxDQUFDO1FBRUgsdUJBQXVCO1FBQ3ZCLE1BQUEsSUFBSSxDQUFDLElBQUksMENBQUUsZ0JBQWdCLENBQUMsTUFBTSxFQUFFO0lBQ3RDLENBQUM7O0FBelFILG9DQTBRQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIjtcbmltcG9ydCB7IEZpbGVCYXNlLCBJUmVzb2x2ZXIsIFByb2plY3QsIFNhbXBsZURpciB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IEpzaWlQcm9qZWN0LCBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB9IGZyb20gXCJwcm9qZW4vbGliL2Nka1wiO1xuaW1wb3J0IHsgZGVmYXVsdHMgfSBmcm9tIFwiLi9kZWZhdWx0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbnN0cnVjdEV4YW1wbGVzT3B0aW9uIHtcbiAgLy8gSWYgc2V0IGNvbnN0cnVjdCBleGFtcGxlcyB3aWxsIGJlIHJlbmRlcmVkXG4gIHJlYWRvbmx5IGVuYWJsZWQ6IGJvb2xlYW47XG4gIC8vIFBhdGggZm9yIHRoZSBjb25zdHJ1Y3QgZXhhbXBsZXNcbiAgcmVhZG9ubHkgZm9sZGVyPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFRlcnJhZm9ybUV4YW1wbGVzT3B0aW9uIHtcbiAgLy8gSWYgc2V0IHRlcnJhZm9ybSBleGFtcGxlcyB3aWxsIGJlIHJlbmRlcmVkXG4gIHJlYWRvbmx5IGVuYWJsZWQ6IGJvb2xlYW47XG4gIC8vIFBhdGggZm9yIHRoZSB0ZXJyYWZvcm0gZXhhbXBsZXNcbiAgcmVhZG9ubHkgZm9sZGVyPzogc3RyaW5nO1xuICAvLyBUaGUgSENMIGNvbmZpZyBmaWxlIHRvIHVzZSBmb3IgdGhlIHRlcnJhZm9ybSBwcm92aWRlclxuICByZWFkb25seSBwcm92aWRlckNvbmZpZz86IHN0cmluZztcbiAgLy8gSENMIGV4YW1wbGUgY29uZmlnXG4gIHJlYWRvbmx5IGV4YW1wbGVDb2RlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEh5YnJpZE1vZHVsZU9wdGlvbnMgZXh0ZW5kcyBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNaW5pbXVtIHRhcmdldCB2ZXJzaW9uIG9mIHRoaXMgbGlicmFyeS5cbiAgICogQGRlZmF1bHQgXCJeMC4xMC4xXCJcbiAgICogQGZlYXR1cmVkXG4gICAqL1xuICByZWFkb25seSBjZGt0ZlZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdCB2ZXJzaW9uIHRvIHVzZVxuICAgKiBAZGVmYXVsdCBcIl4xMC4wLjEyXCJcbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHNldCBhIHRlcnJhZm9ybSBleGFtcGxlcyBmb2xkZXIgd2lsbCBiZSBjcmVhdGVkXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKiBAZmVhdHVyZWRcbiAgICovXG4gIHJlYWRvbmx5IHRlcnJhZm9ybUV4YW1wbGVzPzogVGVycmFmb3JtRXhhbXBsZXNPcHRpb247XG5cbiAgLyoqXG4gICAqIElmIHNldCBhIGNvbnN0cnVjdCBleGFtcGxlcyBmb2xkZXIgd2lsbCBiZSBjcmVhdGVkXG4gICAqIEBkZWZhdWx0IHVuZGVmaW5lZFxuICAgKiBAZmVhdHVyZWRcbiAgICovXG4gIHJlYWRvbmx5IGNvbnN0cnVjdEV4YW1wbGVzPzogQ29uc3RydWN0RXhhbXBsZXNPcHRpb247XG5cbiAgLyoqXG4gICAqIElmIHNldCBhIHRlcnJhZm9ybSBleGFtcGxlcyBmb2xkZXIgd2lsbCBiZSBjcmVhdGVkXG4gICAqRGVmYXVsdHMgdG8gYSB1dWlkIHN0cmluZyBhcyBjZGt0ZiB3b3VsZFxuICAgKiBNb3N0bHkgdXNlZCBmb3IgdGVzdGluZyB0byBoYXZlIGEgcHJlZGljdGFibGUgcmVzdWx0XG4gICAqL1xuICByZWFkb25seSBwcm9qZWN0SWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIElmIHNldCBhIHRlcnJhZm9ybSBwbGFuIGlzIGJlaW5nIHJ1biBhcyBwYXJ0IG9mIHRoZSB0ZXN0c1xuICAgKi9cbiAgcmVhZG9ubHkgcnVuUGxhbj86IGJvb2xlYW47XG59XG5cbmNvbnN0IGNvbnN0cnVjdFNyY0NvZGUgPSBgXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE15Q29uc3RydWN0T3B0aW9ucyB7XG4gIHJlYWRvbmx5IHByb3BlcnR5QTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTXlDb25zdHJ1Y3QgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwdWJsaWMgY29uZmlnOiBNeUNvbnN0cnVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuICB9XG59XG5gO1xuXG5jb25zdCBjb25zdHJ1Y3RUZXN0Q29kZSA9IGBcbmltcG9ydCB7IFRlc3RpbmcgfSBmcm9tIFwiY2RrdGZcIjtcbmltcG9ydCBcImNka3RmL2xpYi90ZXN0aW5nL2FkYXB0ZXJzL2plc3RcIjtcbmltcG9ydCB7IE15Q29uc3RydWN0IH0gZnJvbSBcIi4uL1wiO1xuXG4vLyBUbyBsZWFybiBtb3JlIGFib3V0IHRlc3Rpbmcgc2VlIGNkay50Zi90ZXN0aW5nXG5kZXNjcmliZShcIk15Q29uc3RydWN0XCIsICgpID0+IHtcbiAgaXQoXCJzaG91bGQgc3ludGhlc2l6ZVwiLCAoKSA9PiB7XG4gICAgZXhwZWN0KFxuICAgICAgVGVzdGluZy5zeW50aFNjb3BlKChzY29wZSkgPT4ge1xuICAgICAgICBuZXcgTXlDb25zdHJ1Y3Qoc2NvcGUsIFwibXktY29uc3RydWN0XCIsIHtcbiAgICAgICAgICBwcm9wZXJ0eUE6IFwidmFsdWVBXCIsXG4gICAgICAgIH0pO1xuICAgICAgfSlcbiAgICApLnRvTWF0Y2hTbmFwc2hvdCgpO1xuICB9KTtcbn0pO1xuYDtcblxuY29uc3QgbW9kdWxlU3JjQ29kZSA9IGBcbmltcG9ydCB7IEFwcCB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCB7IFRGTW9kdWxlU3RhY2sgfSBmcm9tIFwiY2RrdGYtdGYtbW9kdWxlLXN0YWNrXCI7XG5pbXBvcnQgeyBNeUNvbnN0cnVjdCB9IGZyb20gXCIuL2luZGV4XCI7XG5cbmNsYXNzIE15QXdlc29tZU1vZHVsZSBleHRlbmRzIFRGTW9kdWxlU3RhY2sge1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIG5ldyBNeUNvbnN0cnVjdCh0aGlzLCBcIm15LWNvbnN0cnVjdFwiLCB7XG4gICAgICBwcm9wZXJ0eUE6IFwidmFsdWVBXCIsXG4gICAgfSk7XG4gIH1cbn1cblxuY29uc3QgYXBwID0gbmV3IEFwcCgpO1xuLy8gVGhpcyBpcyB0aGUgbmFtZSB0aGUgbW9kdWxlIGNhbiBiZSBmb3VuZCB1bmRlci4gXG4vLyBXZSBleHBlY3QgYSBcIm15LWF3ZXNvbWUtbW9kdWxlLm1kXCIgZmlsZSBpbiB0aGlzIGRpcmVjdG9yeS5cbi8vIFRoZSBSRUFETUUubWQgZmlsZSB3aWxsIGJlIGdlbmVyYXRlZCBmcm9tIHRoaXMgZmlsZS5cbm5ldyBNeUF3ZXNvbWVNb2R1bGUoYXBwLCBcIm15LWF3ZXNvbWUtbW9kdWxlXCIpO1xuYXBwLnN5bnRoKCk7XG5gO1xuXG5jb25zdCB0ZXJyYWZvcm1SZWFkbWVEb2NzID0gYFxuIyBQbGVhc2UgYWRkIGhlcmUgc29tZSBwdXJlIEhDTCB0ZXN0cyBmb3IgeW91ciBtb2R1bGVzIGluIG9yZGVyIHRvIHRlc3QgSENMIEludGVyb3BlcmFiaWxpdHlcblxuRXhhbXBsZXM6XG5cbm1vZHVsZSBcIm15X2F3ZXNvbWVfdGVzdFwiIHtcbiAgc291cmNlID0gXCIuLi9tb2R1bGVzL215LWF3ZXNvbWUtbW9kdWxlc1wiXG4gIC4uLnZhcmlhYmxlcy4uLlxufVxuICAgIGA7XG5cbmNsYXNzIFNjcmlwdEZpbGUgZXh0ZW5kcyBGaWxlQmFzZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIGZpbGVQYXRoOiBzdHJpbmcsIHByaXZhdGUgY29udGVudDogc3RyaW5nKSB7XG4gICAgc3VwZXIocHJvamVjdCwgZmlsZVBhdGgsIHtcbiAgICAgIGV4ZWN1dGFibGU6IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUNvbnRlbnQoXzogSVJlc29sdmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5jb250ZW50O1xuICB9XG59XG5cbmNsYXNzIEhDTEZpbGUgZXh0ZW5kcyBGaWxlQmFzZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IFByb2plY3QsIGZpbGVQYXRoOiBzdHJpbmcsIHByaXZhdGUgY29udGVudDogc3RyaW5nKSB7XG4gICAgc3VwZXIocHJvamVjdCwgZmlsZVBhdGgsIHtcbiAgICAgIGV4ZWN1dGFibGU6IGZhbHNlLFxuICAgICAgY29tbWl0dGVkOiB0cnVlLFxuICAgICAgcmVhZG9ubHk6IGZhbHNlLCAvLyB0ZXJyYWZvcm0gZm10IG1pZ2h0IHdhbnQgdG8gb3ZlcndyaXRlIGl0XG4gICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc3ludGhlc2l6ZUNvbnRlbnQoXzogSVJlc29sdmVyKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gYCMgVGhpcyBmaWxlIGlzIG1hbmFnZWQgYnkgcHJvamVuLiBEbyBub3QgZWRpdCwgY2hhbmdlIHRoZSAucHJvamVucmMgZmlsZSBpbnN0ZWFkLlxuJHt0aGlzLmNvbnRlbnR9YDtcbiAgfVxufVxuXG4vKipcbiAqIEh5YnJpZCBDREtURiBDb25zdHJ1Y3QgLyBUZXJyYWZvcm0gTW9kdWxlXG4gKlxuICogQHBqaWQgaHlicmlkLW1vZHVsZVxuICovXG5leHBvcnQgY2xhc3MgSHlicmlkTW9kdWxlIGV4dGVuZHMgSnNpaVByb2plY3Qge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBIeWJyaWRNb2R1bGVPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgZXNsaW50T3B0aW9uczogT2JqZWN0LmFzc2lnbih7fSwgb3B0aW9ucy5lc2xpbnRPcHRpb25zLCB7XG4gICAgICAgIGxpbnRQcm9qZW5SYzogZmFsc2UsXG4gICAgICB9KSxcbiAgICAgIHBvc3RCdWlsZFN0ZXBzOiBbXSxcbiAgICB9KTtcbiAgICBjb25zdCBjb25zdHJ1Y3RWZXJzaW9uID0gb3B0aW9ucy5jb25zdHJ1Y3RWZXJzaW9uIHx8IFwiXjEwLjAuMTA3XCI7XG4gICAgY29uc3QgY2RrdGZWZXJzaW9uID0gb3B0aW9ucy5jZGt0ZlZlcnNpb24gfHwgXCJeMC4xMC4xXCI7XG5cbiAgICB0aGlzLmFkZFBlZXJEZXBzKGBjb25zdHJ1Y3RzQCR7Y29uc3RydWN0VmVyc2lvbn1gLCBgY2RrdGZAJHtjZGt0ZlZlcnNpb259YCk7XG4gICAgdGhpcy5hZGREZXZEZXBzKGBjZGt0Zi1jbGlAJHtjZGt0ZlZlcnNpb259YCwgXCJ0cy1ub2RlXCIpO1xuICAgIHRoaXMuYWRkS2V5d29yZHMoXCJjZGtcIiwgXCJjZGt0ZlwiLCBcImNka3RmLWh5YnJpZFwiLCBcInRlcnJhZm9ybVwiKTtcbiAgICB0aGlzLnNldFNjcmlwdChcInRlcnJhZm9ybTp0ZXN0XCIsIFwiLi9zY3JpcHRzL3RmLW1vZHVsZS10ZXN0LnNoXCIpO1xuXG4gICAgLy8gTW9kdWxlIEVudHJ5cG9pbnRcbiAgICB0aGlzLmFkZERlcHMoXCJjZGt0Zi10Zi1tb2R1bGUtc3RhY2tcIik7XG4gICAgY29uc3QgbW9kdWxlRG9jcyA9IGBcbiMgTXkgQXdlc29tZSBNb2R1bGVcblxuIyMgVXNhZ2VcblxuXFxgXFxgXFxgaGNsXG5tb2R1bGUgXCJla3NfbWFuYWdlZF9ub2RlX2dyb3VwXCIge1xuICBzb3VyY2UgPSBcIiR7XG4gICAgb3B0aW9ucy5yZXBvc2l0b3J5VXJsXG4gICAgICA/LnJlcGxhY2UoXCJodHRwczovL2dpdGh1Yi5jb20vXCIsIFwiXCIpXG4gICAgICAucmVwbGFjZShcImh0dHA6Ly9naXRodWIuY29tL1wiLCBcIlwiKVxuICAgICAgLnJlcGxhY2UoXCJnaXRodWIuY29tL1wiLCBcIlwiKSB8fCBcIm15LWdpdGh1Yi1yZXBvXCJcbiAgfS8vbW9kdWxlcy9teS1hd2Vzb21lLW1vZHVsZVwiXG5cbn1cblxcYFxcYFxcYFxuICAgIGA7XG5cbiAgICBuZXcgU2FtcGxlRGlyKHRoaXMsIHRoaXMuc3JjZGlyLCB7XG4gICAgICBmaWxlczoge1xuICAgICAgICBcImluZGV4LnRzXCI6IGNvbnN0cnVjdFNyY0NvZGUudHJpbSgpLFxuICAgICAgICBcInRmTW9kdWxlcy50c1wiOiBtb2R1bGVTcmNDb2RlLnRyaW0oKSxcbiAgICAgICAgXCJteS1hd2Vzb21lLW1vZHVsZS5tZFwiOiBtb2R1bGVEb2NzLnRyaW0oKSxcbiAgICAgICAgXCJjZGt0Zi5qc29uXCI6IEpTT04uc3RyaW5naWZ5KFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGxhbmd1YWdlOiBcInR5cGVzY3JpcHRcIixcbiAgICAgICAgICAgIGFwcDogXCJucHggdHMtbm9kZSB0Zk1vZHVsZXMudHNcIixcbiAgICAgICAgICAgIHRlcnJhZm9ybVByb3ZpZGVyczogW1wiaGFzaGljb3JwL251bGxAMy4xLjFcIl0sIC8vIFdlIG5lZWQgYXQgbGVhc3QgYSBwcm92aWRlciBmb3IgZ2V0IHRvIHN1Y2NlZWRcbiAgICAgICAgICAgIHRlcnJhZm9ybU1vZHVsZXM6IFtdLFxuICAgICAgICAgICAgb3V0cHV0OiBcIm1vZHVsZXNcIixcbiAgICAgICAgICAgIHByb2plY3RJZDpcbiAgICAgICAgICAgICAgb3B0aW9ucy5wcm9qZWN0SWQgfHxcbiAgICAgICAgICAgICAgXCJoeWJyaWQtbW9kdWxlLWZiNzM0ZGJhLWVhYzktNDY2Yy05NmJiLTdlYjljNDA2YzI4YVwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgbnVsbCxcbiAgICAgICAgICAyXG4gICAgICAgICksXG4gICAgICAgIFwiX190ZXN0c19fL2luZGV4LXRlc3QudHNcIjogY29uc3RydWN0VGVzdENvZGUudHJpbSgpLFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmIChvcHRpb25zLnRlcnJhZm9ybUV4YW1wbGVzICYmIG9wdGlvbnMudGVycmFmb3JtRXhhbXBsZXMuZW5hYmxlZCkge1xuICAgICAgY29uc3QgcHJvdmlkZXJDb25maWcgPVxuICAgICAgICBvcHRpb25zLnRlcnJhZm9ybUV4YW1wbGVzLnByb3ZpZGVyQ29uZmlnIHx8XG4gICAgICAgIGBcbnRlcnJhZm9ybSB7XG4gICMgVGVycmFmb3JtIGJpbmFyeSB2ZXJzaW9uIGNvbnN0cmFpbnRcbiAgcmVxdWlyZWRfdmVyc2lvbiA9IFwifj4gMS4xLjBcIlxuXG4gICMgRGVmaW5lIGFsbCBuZWVkZWQgcHJvdmlkZXJzIGhlcmUsIHlvdSBjYW4gZmluZCBhbGwgYXZhaWxhYmxlIHByb3ZpZGVycyBoZXJlOlxuICAjIGh0dHBzOi8vcmVnaXN0cnkudGVycmFmb3JtLmlvL1xuICByZXF1aXJlZF9wcm92aWRlcnMge31cbn1cblxuIyBJbml0aWFsaXplIHlvdXIgcHJvdmlkZXIgaGVyZVxuXG5gLnRyaW0oKTtcbiAgICAgIGNvbnN0IGV4YW1wbGVzRm9sZGVyID1cbiAgICAgICAgb3B0aW9ucy50ZXJyYWZvcm1FeGFtcGxlcy5mb2xkZXIgfHwgXCJ0ZXJyYWZvcm0tZXhhbXBsZXNcIjtcblxuICAgICAgbmV3IFNhbXBsZURpcih0aGlzLCBleGFtcGxlc0ZvbGRlciwge1xuICAgICAgICBmaWxlczoge1xuICAgICAgICAgIFwibWFpbi50ZlwiOlxuICAgICAgICAgICAgb3B0aW9ucy50ZXJyYWZvcm1FeGFtcGxlcy5leGFtcGxlQ29kZSB8fFxuICAgICAgICAgICAgYCMgQ29uZmlndXJlIHlvdSBtb2R1bGUgaGVyZWAsXG4gICAgICAgICAgXCJSRUFETUUubWRcIjogdGVycmFmb3JtUmVhZG1lRG9jcy50cmltKCksXG4gICAgICAgIH0sXG4gICAgICB9KTtcblxuICAgICAgbmV3IEhDTEZpbGUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIHBhdGguam9pbihleGFtcGxlc0ZvbGRlciwgXCJwcm92aWRlci50ZlwiKSxcbiAgICAgICAgcHJvdmlkZXJDb25maWdcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuZ2l0aWdub3JlLmFkZFBhdHRlcm5zKFxuICAgICAgICBgJHtleGFtcGxlc0ZvbGRlcn0vLnRlcnJhZm9ybWAsXG4gICAgICAgIGAke2V4YW1wbGVzRm9sZGVyfS8udGVycmFmb3JtLmxvY2suaGNsYFxuICAgICAgKTtcblxuICAgICAgbmV3IFNjcmlwdEZpbGUoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiLi9zY3JpcHRzL3RmLW1vZHVsZS10ZXN0LnNoXCIsXG4gICAgICAgIGAjIS9iaW4vYmFzaFxuIyBUaGlzIHNjcmlwdCBpcyBjcmVhdGVkIGJ5IHByb2plbiwgZG8gbm90IGVkaXQgaXQgZGlyZWN0bHkuXG5zZXQgLWVcblxudGVycmFmb3JtIC1jaGRpcj0ke2V4YW1wbGVzRm9sZGVyfSBpbml0IC0tdXBncmFkZVxudGVycmFmb3JtIC1jaGRpcj0ke2V4YW1wbGVzRm9sZGVyfSBmbXRcbnRlcnJhZm9ybSAtY2hkaXI9JHtleGFtcGxlc0ZvbGRlcn0gdmFsaWRhdGVcbiR7b3B0aW9ucy5ydW5QbGFuID8gYHRlcnJhZm9ybSAtY2hkaXI9JHtleGFtcGxlc0ZvbGRlcn0gcGxhbmAgOiBcIlwifVxuICAgICAgICAgIGBcbiAgICAgICk7XG5cbiAgICAgIHRoaXMudGVzdFRhc2suZXhlYyhcIi4vc2NyaXB0cy90Zi1tb2R1bGUtdGVzdC5zaFwiKTtcbiAgICAgIHRoaXMuamVzdD8uYWRkSWdub3JlUGF0dGVybihleGFtcGxlc0ZvbGRlcik7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuY29uc3RydWN0RXhhbXBsZXMgJiYgb3B0aW9ucy5jb25zdHJ1Y3RFeGFtcGxlcy5lbmFibGVkKSB7XG4gICAgICBjb25zdCBjb25zdHJ1Y3RFeGFtcGxlRm9sZGVyID1cbiAgICAgICAgb3B0aW9ucy5jb25zdHJ1Y3RFeGFtcGxlcy5mb2xkZXIgfHwgXCJjb25zdHJ1Y3QtZXhhbXBsZXNcIjtcblxuICAgICAgY29uc3QgbGV2ZWxzID0gY29uc3RydWN0RXhhbXBsZUZvbGRlclxuICAgICAgICAuc3BsaXQoXCIvXCIpXG4gICAgICAgIC5zcGxpY2UoMCwgMSlcbiAgICAgICAgLm1hcCgoKSA9PiBcIi4uXCIpXG4gICAgICAgIC5qb2luKFwiL1wiKTtcblxuICAgICAgY29uc3QgY29uc3RydWN0UmVhZG1lRG9jcyA9IGBcbiMgQ29uc3RydWN0IEV4YW1wbGVzXG5cbkV4YW1wbGUgdXNlLWNhc2VzIGZvciB0aGUgQ29uc3RydWN0IGxpYnJhcnkuXG5cbi0gW0Jhc2ljIFVzYWdlXSguL2Jhc2ljLnRzKVxuXG5UbyBlbnN1cmUgYWxsIGV4YW1wbGVzIGFyZSB3b3JraW5nLCBwbGVhc2UgbWFrZSBzdXJlIHRoZSBbaW5kZXgudHNdKC4vaW5kZXgudHMpIGZpbGUgaXMgaW1wb3J0aW5nIGFsbCBvZiB0aGVtLlxuYDtcblxuICAgICAgY29uc3QgY29uc3RydWN0RXhhbXBsZUNvZGUgPSBgXG5pbXBvcnQgeyBUZXJyYWZvcm1TdGFjayB9IGZyb20gXCJjZGt0ZlwiO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcblxuaW1wb3J0IHsgTXlDb25zdHJ1Y3QgfSBmcm9tIFwiJHtsZXZlbHN9L3NyYy9cIjtcblxuZXhwb3J0IGNsYXNzIEJhc2ljRXhhbXBsZSBleHRlbmRzIFRlcnJhZm9ybVN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgbmFtZTogc3RyaW5nKSB7XG4gICAgc3VwZXIoc2NvcGUsIG5hbWUpO1xuXG4gICAgbmV3IE15Q29uc3RydWN0KHRoaXMsIFwibXktY29uc3RydWN0XCIsIHtcbiAgICAgIHByb3BlcnR5QTogXCJ2YWx1ZUFcIixcbiAgICB9KTtcbiAgfVxufVxuXG5cbmA7XG5cbiAgICAgIGNvbnN0IGV4YW1wbGVDb2xsZWN0aW9uQ29kZSA9IGBcbi8vIFRoaXMgZmlsZSB3aWxsIGJlIHN5bnRoZXNpemVkIHRvIGNoZWNrIGlmIGFsbCBleGFtcGxlcyBhcmUgd29ya2luZ1xuXG5pbXBvcnQgeyBBcHAgfSBmcm9tIFwiY2RrdGZcIjtcbi8vIEFsbCBleGFtcGxlcyBuZWVkIHRvIGJlIGltcG9ydGVkIGhlcmVcbmltcG9ydCB7IEJhc2ljRXhhbXBsZSB9IGZyb20gXCIuL2Jhc2ljXCI7XG5cbmNvbnN0IGFwcCA9IG5ldyBBcHAoKTtcblxuLy8gQWxsIGV4YW1wbGVzIG5lZWQgdG8gYmUgaW5pdGlhbGl6ZWQgaGVyZVxubmV3IEJhc2ljRXhhbXBsZShhcHAsIFwiYmFzaWMtZXhhbXBsZVwiKTtcbmFwcC5zeW50aCgpO1xuYDtcblxuICAgICAgbmV3IFNhbXBsZURpcih0aGlzLCBjb25zdHJ1Y3RFeGFtcGxlRm9sZGVyLCB7XG4gICAgICAgIGZpbGVzOiB7XG4gICAgICAgICAgXCJpbmRleC50c1wiOiBleGFtcGxlQ29sbGVjdGlvbkNvZGUudHJpbSgpLFxuICAgICAgICAgIFwiYmFzaWMudHNcIjogY29uc3RydWN0RXhhbXBsZUNvZGUudHJpbSgpLFxuICAgICAgICAgIFwiY2RrdGYuanNvblwiOiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbGFuZ3VhZ2U6IFwidHlwZXNjcmlwdFwiLFxuICAgICAgICAgICAgICBhcHA6IGBucHggdHMtbm9kZSAtLXByb2plY3QgJHtsZXZlbHN9L3RzY29uZmlnLmRldi5qc29uIGluZGV4LnRzYCxcbiAgICAgICAgICAgICAgcHJvamVjdElkOlxuICAgICAgICAgICAgICAgIG9wdGlvbnMucHJvamVjdElkIHx8XG4gICAgICAgICAgICAgICAgXCJoeWJyaWQtbW9kdWxlLWZiNzM0ZGJhLWVhYzktNDY2Yy05NmJiLTdlYjljNDA2YzI4YVwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAyXG4gICAgICAgICAgKSxcbiAgICAgICAgICBcIlJFQURNRS5tZFwiOiBjb25zdHJ1Y3RSZWFkbWVEb2NzLnRyaW0oKSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnRlc3RUYXNrLmV4ZWMoYGNka3RmIHN5bnRoYCwge1xuICAgICAgICBjd2Q6IGNvbnN0cnVjdEV4YW1wbGVGb2xkZXIsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuZ2l0aWdub3JlLmFkZFBhdHRlcm5zKGAke2NvbnN0cnVjdEV4YW1wbGVGb2xkZXJ9L2Nka3RmLm91dGApO1xuICAgIH1cblxuICAgIHRoaXMuZ2l0aWdub3JlLmFkZFBhdHRlcm5zKFwic3JjLy5nZW5cIiwgXCJzcmMvY2RrdGYub3V0XCIsIFwic3JjL21vZHVsZXNcIik7XG4gICAgdGhpcy5jb21waWxlVGFzay5wcmVwZW5kRXhlYyhcImNka3RmIGdldFwiLCB7XG4gICAgICBjd2Q6IHRoaXMuc3JjZGlyLFxuICAgIH0pO1xuICAgIHRoaXMuY29tcGlsZVRhc2suZXhlYyhcImNka3RmIHN5bnRoXCIsIHtcbiAgICAgIGN3ZDogdGhpcy5zcmNkaXIsXG4gICAgICBuYW1lOiBcIlN5bnRoZXNpemUgbW9kdWxlIEhDTFwiLFxuICAgIH0pO1xuXG4gICAgbmV3IFNjcmlwdEZpbGUoXG4gICAgICB0aGlzLFxuICAgICAgXCJzY3JpcHRzL2NvcHktbW9kdWxlcy5zaFwiLFxuICAgICAgYFxuIyEvYmluL2Jhc2hcbiMgVGhpcyBzY3JpcHQgaXMgY3JlYXRlZCBieSBwcm9qZW4sIGRvIG5vdCBlZGl0IGl0IGRpcmVjdGx5Llxuc2V0IC1lXG5cblNDUklQVFBBVEg9XCIkKCBjZCAtLSBcIiQoZGlybmFtZSBcIiQwXCIpXCIgPi9kZXYvbnVsbCAyPiYxIDsgcHdkIC1QIClcIlxuXG4jIGNoZWNrIGlmIHRoZSBtb2R1bGUgZm9sZGVyIGhhcyBiZWVuIGdlbmVyYXRlZCBhcyBleHBlY3RlZFxuTU9EVUxFU19GT0xERVI9JCggY2QgLS0gXCIkU0NSSVBUUEFUSC8uLi9zcmMvbW9kdWxlcy9zdGFja3NcIiA+L2Rldi9udWxsIDI+JjEgOyBwd2QgLVAgKVxuU1JDX0ZPTERFUj0kKCBjZCAtLSBcIiRTQ1JJUFRQQVRILy4uL3NyYy9cIiA+L2Rldi9udWxsIDI+JjEgOyBwd2QgLVAgKVxuVEFSR0VUX0ZPTERFUj1cIiRTQ1JJUFRQQVRILy4uL21vZHVsZXNcIlxuXG5pZiBbICEgLWQgXCIkTU9EVUxFU19GT0xERVJcIiBdOyB0aGVuXG4gIGVjaG8gXCJFeHBlY3RlZCBtb2R1bGUgZm9sZGVyIHRvIGV4aXN0IGF0ICRNT0RVTEVTX0ZPTERFUlwiXG4gIGV4aXQgMVxuZmlcblxuY2QgXCIkTU9EVUxFU19GT0xERVJcIlxuZm9yIGQgaW4gKi8gOyBkb1xuICAgIFsgLUwgXCJcXCR7ZCUvfVwiIF0gJiYgY29udGludWVcblxuICAgIGRpcm5hbWU9XCJcXCR7ZCUvfVwiXG5cblxuICAgICMgQ2hlY2sgaWYgZXZlcnl0aGluZyBpcyBpbiBwbGFjZVxuICAgIGlmIFsgISAtZiBcIiRNT0RVTEVTX0ZPTERFUi8kZGlybmFtZS9jZGsudGYuanNvblwiIF07IHRoZW5cbiAgICAgIGVjaG8gXCJFeHBlY3RlZCBjb2RlIGZvciAkZGlybmFtZSBhdCBjZGsudGYuanNvbiB0byBleGlzdCBhdCAkTU9EVUxFU19GT0xERVIvJGRpcm5hbWVcIlxuICAgICAgZXhpdCAxXG4gICAgZmlcblxuICAgIGlmIFsgISAtZiBcIiRTUkNfRk9MREVSLyRkaXJuYW1lLm1kXCIgXTsgdGhlblxuICAgICAgZWNobyBcIkV4cGVjdGVkIERvY3VtZW50YXRpb24gZm9yICRkaXJuYW1lIGF0ICRkaXJuYW1lLm1kIHRvIGV4aXN0IGF0ICRTUkNfRk9MREVSLyRkaXJuYW1lLm1kXCJcbiAgICAgIGV4aXQgMVxuICAgIGZpXG5cbiAgICAjIENvcHkgbW9kdWxlIGFuZCByZWFkbWUgdG9nZXRoZXJcbiAgICBlY2hvIFwiQ29weWluZyBDb2RlIGFuZCBSRUFETUUgZm9yIG1vZHVsZSAkZGlybmFtZVwiXG4gICAgbWtkaXIgLXAgXCIkVEFSR0VUX0ZPTERFUlwiXG4gICAgbWtkaXIgLXAgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZVwiXG4gICAgY3AgXCIkTU9EVUxFU19GT0xERVIvJGRpcm5hbWUvY2RrLnRmLmpzb25cIiBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lL2Nkay50Zi5qc29uXCJcbiAgICBjcCBcIiRTUkNfRk9MREVSLyRkaXJuYW1lLm1kXCIgXCIkVEFSR0VUX0ZPTERFUi8kZGlybmFtZS9SRUFETUUubWRcIlxuXG4gICAgIyBBZGQgUkVBRE1FIGhjbCBkb2NzXG4gICAgaWYgd2hpY2ggdGVycmFmb3JtLWRvY3MgPi9kZXYvbnVsbDsgdGhlblxuICAgICAgdGVycmFmb3JtLWRvY3MgbWFya2Rvd24gdGFibGUgLS1vdXRwdXQtZmlsZSBcIiRUQVJHRVRfRk9MREVSLyRkaXJuYW1lL1JFQURNRS5tZFwiIFwiJFRBUkdFVF9GT0xERVIvJGRpcm5hbWVcIiBcbiAgICBlbHNlXG4gICAgICBkb2NrZXIgcnVuIC0tcm0gLS12b2x1bWUgXCIkU0NSSVBUUEFUSC8uLi9tb2R1bGVzOi90ZXJyYWZvcm0tZG9jc1wiIC11ICQoaWQgLXUpIHF1YXkuaW8vdGVycmFmb3JtLWRvY3MvdGVycmFmb3JtLWRvY3M6MC4xNi4wIG1hcmtkb3duIHRhYmxlIC0tb3V0cHV0LWZpbGUgXCIvdGVycmFmb3JtLWRvY3MvJGRpcm5hbWUvUkVBRE1FLm1kXCIgL3RlcnJhZm9ybS1kb2NzLyRkaXJuYW1lXG4gICAgZmlcbmRvbmVcbmAudHJpbSgpXG4gICAgKTtcbiAgICB0aGlzLmNvbXBpbGVUYXNrLmV4ZWMoXCIuL3NjcmlwdHMvY29weS1tb2R1bGVzLnNoXCIsIHtcbiAgICAgIG5hbWU6IFwiQ29weSBIQ0wgTW9kdWxlc1wiLFxuICAgIH0pO1xuXG4gICAgLy8gaWdub3JlIGRpc3QgaW4gdGVzdHNcbiAgICB0aGlzLmplc3Q/LmFkZElnbm9yZVBhdHRlcm4oXCJkaXN0XCIpO1xuICB9XG59XG4iXX0=
|
package/lib/publishing.d.ts
CHANGED
@@ -9,12 +9,31 @@ declare type AtomicObject = Function | Promise<any> | Date | RegExp | Boolean |
|
|
9
9
|
declare type Mutable<T> = T extends AtomicObject ? T : T extends ReadonlyMap<infer K, infer V> ? Map<Mutable<K>, Mutable<V>> : T extends ReadonlySet<infer V> ? Set<Mutable<V>> : T extends object ? {
|
10
10
|
-readonly [K in keyof T]: Mutable<T[K]>;
|
11
11
|
} : T;
|
12
|
-
declare type
|
13
|
-
export declare function publishToRegistries(options: PublishOptions):
|
14
|
-
export declare
|
12
|
+
declare type PublishingConfig = Mutable<Pick<ConstructLibraryOptions, "publishToPypi" | "publishToMaven" | "publishToNuget" | "releaseToNpm" | "npmRegistryUrl">>;
|
13
|
+
export declare function publishToRegistries(options: PublishOptions): PublishingConfig;
|
14
|
+
export declare type GithubRegistry = "npm" | "maven";
|
15
|
+
declare type GitHubPublishOptions = {
|
16
|
+
/**
|
17
|
+
* The GitHub repository of this project.
|
18
|
+
*/
|
19
|
+
repositoryName: string;
|
20
|
+
/**
|
21
|
+
* The GitHub owner of this project.
|
22
|
+
*/
|
23
|
+
repositoryOwner: string;
|
24
|
+
/**
|
25
|
+
* Registries to publish to
|
26
|
+
*/
|
27
|
+
registries: GithubRegistry[];
|
28
|
+
};
|
29
|
+
export declare type GitHubPublishConfig = {
|
30
|
+
name: string;
|
31
|
+
repositoryUrl: string;
|
32
|
+
} & PublishingConfig;
|
33
|
+
export declare function publishToGithubPackages(options: GitHubPublishOptions): GitHubPublishConfig;
|
15
34
|
export declare type ArtifactoryPublishOptions = PublishOptions & {
|
16
35
|
artifactoryApiUrl: string;
|
17
36
|
artifactoryRepository?: string;
|
18
37
|
};
|
19
|
-
export declare function publishToArtifactory(options: ArtifactoryPublishOptions):
|
38
|
+
export declare function publishToArtifactory(options: ArtifactoryPublishOptions): PublishingConfig;
|
20
39
|
export {};
|
package/lib/publishing.js
CHANGED
@@ -33,22 +33,23 @@ function publishToRegistries(options) {
|
|
33
33
|
}
|
34
34
|
exports.publishToRegistries = publishToRegistries;
|
35
35
|
function publishToGithubPackages(options) {
|
36
|
-
const { registries } = options;
|
37
|
-
const config = publishToRegistries(
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
// Seems like projen does not support github packages on nuget yet: https://github.dev/projen/projen/blob/14f37ec704afdc5143e6a2954c1250b1f0ccaddf/src/release/publisher.ts#L343
|
43
|
-
throw new Error("Github Packages does support nuget packages, but this library does not yet support it");
|
44
|
-
}
|
36
|
+
const { registries, repositoryName, repositoryOwner } = options;
|
37
|
+
const config = publishToRegistries({
|
38
|
+
name: repositoryName,
|
39
|
+
namespace: repositoryOwner,
|
40
|
+
registries,
|
41
|
+
});
|
45
42
|
if (registries.includes("npm")) {
|
46
43
|
config.npmRegistryUrl = "https://npm.pkg.github.com";
|
47
44
|
}
|
48
45
|
if (registries.includes("maven")) {
|
49
|
-
config.publishToMaven.mavenRepositoryUrl =
|
46
|
+
config.publishToMaven.mavenRepositoryUrl = `https://maven.pkg.github.com/${repositoryOwner}/${repositoryName}`;
|
50
47
|
}
|
51
|
-
return
|
48
|
+
return {
|
49
|
+
...config,
|
50
|
+
repositoryUrl: `https://github.com/${repositoryOwner}/${repositoryName}.git`,
|
51
|
+
name: `@${repositoryOwner}/${repositoryName}`,
|
52
|
+
};
|
52
53
|
}
|
53
54
|
exports.publishToGithubPackages = publishToGithubPackages;
|
54
55
|
function publishToArtifactory(options) {
|
@@ -73,4 +74,4 @@ function publishToArtifactory(options) {
|
|
73
74
|
return config;
|
74
75
|
}
|
75
76
|
exports.publishToArtifactory = publishToArtifactory;
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGlzaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wdWJsaXNoaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF5QztBQXlDekMsU0FBZ0IsbUJBQW1CLENBQUMsT0FBdUI7SUFDekQsTUFBTSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQ2hELE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDekQsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0MsTUFBTSxNQUFNLEdBQXFCO1FBQy9CLFlBQVksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztLQUN6QyxDQUFDO0lBRUYsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQy9CLE1BQU0sQ0FBQyxhQUFhLEdBQUc7WUFDckIsUUFBUSxFQUFFLEdBQUcsa0JBQWtCLElBQUksYUFBYSxFQUFFO1lBQ2xELE1BQU0sRUFBRSxHQUFHLGtCQUFrQixJQUFJLGFBQWEsRUFBRTtTQUNqRCxDQUFDO0tBQ0g7SUFFRCxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUU7UUFDaEMsTUFBTSxDQUFDLGNBQWMsR0FBRztZQUN0QixXQUFXLEVBQUUsT0FBTyxrQkFBa0IsSUFBSSxhQUFhLEVBQUU7WUFDekQsWUFBWSxFQUFFLE9BQU8sa0JBQWtCLEVBQUU7WUFDekMsZUFBZSxFQUFFLGFBQWE7U0FDL0IsQ0FBQztLQUNIO0lBRUQsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ2hDLE1BQU0sU0FBUyxHQUFHLEdBQUcsd0JBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSx3QkFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDakUsTUFBTSxDQUFDLGNBQWMsR0FBRztZQUN0QixlQUFlLEVBQUUsU0FBUztZQUMxQixTQUFTLEVBQUUsU0FBUztTQUNyQixDQUFDO0tBQ0g7SUFDRCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBL0JELGtEQStCQztBQXlCRCxTQUFnQix1QkFBdUIsQ0FDckMsT0FBNkI7SUFFN0IsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLEdBQUcsT0FBTyxDQUFDO0lBQ2hFLE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDO1FBQ2pDLElBQUksRUFBRSxjQUFjO1FBQ3BCLFNBQVMsRUFBRSxlQUFlO1FBQzFCLFVBQVU7S0FDWCxDQUFDLENBQUM7SUFFSCxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDOUIsTUFBTSxDQUFDLGNBQWMsR0FBRyw0QkFBNEIsQ0FBQztLQUN0RDtJQUVELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNoQyxNQUFNLENBQUMsY0FBZSxDQUFDLGtCQUFrQixHQUFHLGdDQUFnQyxlQUFlLElBQUksY0FBYyxFQUFFLENBQUM7S0FDakg7SUFFRCxPQUFPO1FBQ0wsR0FBRyxNQUFNO1FBQ1QsYUFBYSxFQUFFLHNCQUFzQixlQUFlLElBQUksY0FBYyxNQUFNO1FBQzVFLElBQUksRUFBRSxJQUFJLGVBQWUsSUFBSSxjQUFjLEVBQUU7S0FDOUMsQ0FBQztBQUNKLENBQUM7QUF2QkQsMERBdUJDO0FBVUQsU0FBZ0Isb0JBQW9CLENBQ2xDLE9BQWtDO0lBRWxDLE1BQU0sRUFDSixVQUFVLEVBQ1YsaUJBQWlCLEVBQ2pCLHFCQUFxQixHQUFHLE9BQU8sQ0FBQyxTQUFTLEdBQzFDLEdBQUcsT0FBTyxDQUFDO0lBQ1osTUFBTSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFNUMsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1FBQzlCLE1BQU0sQ0FBQyxjQUFjLEdBQUcsR0FBRyxpQkFBaUIsUUFBUSxxQkFBcUIsR0FBRyxDQUFDO0tBQzlFO0lBRUQsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO1FBQy9CLE1BQU0sQ0FBQyxhQUFjLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxpQkFBaUIsU0FBUyxxQkFBcUIsR0FBRyxDQUFDO0tBQ2hHO0lBRUQsSUFBSSxVQUFVLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ2hDLE1BQU0sSUFBSSxLQUFLLENBQ2IsbUZBQW1GLENBQ3BGLENBQUM7UUFDRix5RUFBeUU7UUFDekUsdUhBQXVIO1FBQ3ZILHVFQUF1RTtLQUN4RTtJQUVELElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNoQyw0S0FBNEs7UUFDNUssTUFBTSxJQUFJLEtBQUssQ0FDYixtRkFBbUYsQ0FDcEYsQ0FBQztLQUNIO0lBRUQsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQW5DRCxvREFtQ0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwYXNjYWxDYXNlIH0gZnJvbSBcImNoYW5nZS1jYXNlXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB9IGZyb20gXCJwcm9qZW4vbGliL2Nka1wiO1xuXG5leHBvcnQgdHlwZSBSZWdpc3RyeSA9IFwibnBtXCIgfCBcIm1hdmVuXCIgfCBcIm51Z2V0XCIgfCBcInB5cGlcIjtcblxuZXhwb3J0IHR5cGUgUHVibGlzaE9wdGlvbnMgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbmFtZXNwYWNlOiBzdHJpbmc7XG4gIHJlZ2lzdHJpZXM6IFJlZ2lzdHJ5W107XG59O1xuXG50eXBlIEF0b21pY09iamVjdCA9XG4gIHwgRnVuY3Rpb25cbiAgfCBQcm9taXNlPGFueT5cbiAgfCBEYXRlXG4gIHwgUmVnRXhwXG4gIHwgQm9vbGVhblxuICB8IE51bWJlclxuICB8IFN0cmluZztcblxudHlwZSBNdXRhYmxlPFQ+ID0gVCBleHRlbmRzIEF0b21pY09iamVjdFxuICA/IFRcbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlNYXA8aW5mZXIgSywgaW5mZXIgVj4gLy8gTWFwIGV4dGVuZHMgUmVhZG9ubHlNYXBcbiAgPyBNYXA8TXV0YWJsZTxLPiwgTXV0YWJsZTxWPj5cbiAgOiBUIGV4dGVuZHMgUmVhZG9ubHlTZXQ8aW5mZXIgVj4gLy8gU2V0IGV4dGVuZHMgUmVhZG9ubHlTZXRcbiAgPyBTZXQ8TXV0YWJsZTxWPj5cbiAgOiBUIGV4dGVuZHMgb2JqZWN0XG4gID8geyAtcmVhZG9ubHkgW0sgaW4ga2V5b2YgVF06IE11dGFibGU8VFtLXT4gfVxuICA6IFQ7XG5cbnR5cGUgUHVibGlzaGluZ0NvbmZpZyA9IE11dGFibGU8XG4gIFBpY2s8XG4gICAgQ29uc3RydWN0TGlicmFyeU9wdGlvbnMsXG4gICAgfCBcInB1Ymxpc2hUb1B5cGlcIlxuICAgIHwgXCJwdWJsaXNoVG9NYXZlblwiXG4gICAgfCBcInB1Ymxpc2hUb051Z2V0XCJcbiAgICB8IFwicmVsZWFzZVRvTnBtXCJcbiAgICB8IFwibnBtUmVnaXN0cnlVcmxcIlxuICA+XG4+O1xuXG5leHBvcnQgZnVuY3Rpb24gcHVibGlzaFRvUmVnaXN0cmllcyhvcHRpb25zOiBQdWJsaXNoT3B0aW9ucyk6IFB1Ymxpc2hpbmdDb25maWcge1xuICBjb25zdCB7IG5hbWUsIG5hbWVzcGFjZSwgcmVnaXN0cmllcyB9ID0gb3B0aW9ucztcbiAgY29uc3Qgc2FuaXRpemVkTmFtZXNwYWNlID0gbmFtZXNwYWNlLnJlcGxhY2UoLy0vZ2ksIFwiX1wiKTtcbiAgY29uc3Qgc2FuaXRpemVkTmFtZSA9IG5hbWUucmVwbGFjZSgvLS9naSwgXCJfXCIpO1xuICBjb25zdCBjb25maWc6IFB1Ymxpc2hpbmdDb25maWcgPSB7XG4gICAgcmVsZWFzZVRvTnBtOiByZWdpc3RyaWVzLmluY2x1ZGVzKFwibnBtXCIpLFxuICB9O1xuXG4gIGlmIChyZWdpc3RyaWVzLmluY2x1ZGVzKFwicHlwaVwiKSkge1xuICAgIGNvbmZpZy5wdWJsaXNoVG9QeXBpID0ge1xuICAgICAgZGlzdE5hbWU6IGAke3Nhbml0aXplZE5hbWVzcGFjZX0tJHtzYW5pdGl6ZWROYW1lfWAsXG4gICAgICBtb2R1bGU6IGAke3Nhbml0aXplZE5hbWVzcGFjZX1fJHtzYW5pdGl6ZWROYW1lfWAsXG4gICAgfTtcbiAgfVxuXG4gIGlmIChyZWdpc3RyaWVzLmluY2x1ZGVzKFwibWF2ZW5cIikpIHtcbiAgICBjb25maWcucHVibGlzaFRvTWF2ZW4gPSB7XG4gICAgICBqYXZhUGFja2FnZTogYGNvbS4ke3Nhbml0aXplZE5hbWVzcGFjZX0uJHtzYW5pdGl6ZWROYW1lfWAsXG4gICAgICBtYXZlbkdyb3VwSWQ6IGBjb20uJHtzYW5pdGl6ZWROYW1lc3BhY2V9YCxcbiAgICAgIG1hdmVuQXJ0aWZhY3RJZDogc2FuaXRpemVkTmFtZSxcbiAgICB9O1xuICB9XG5cbiAgaWYgKHJlZ2lzdHJpZXMuaW5jbHVkZXMoXCJudWdldFwiKSkge1xuICAgIGNvbnN0IG51Z2V0TmFtZSA9IGAke3Bhc2NhbENhc2UobmFtZXNwYWNlKX0uJHtwYXNjYWxDYXNlKG5hbWUpfWA7XG4gICAgY29uZmlnLnB1Ymxpc2hUb051Z2V0ID0ge1xuICAgICAgZG90TmV0TmFtZXNwYWNlOiBudWdldE5hbWUsXG4gICAgICBwYWNrYWdlSWQ6IG51Z2V0TmFtZSxcbiAgICB9O1xuICB9XG4gIHJldHVybiBjb25maWc7XG59XG5cbmV4cG9ydCB0eXBlIEdpdGh1YlJlZ2lzdHJ5ID0gXCJucG1cIiB8IFwibWF2ZW5cIjtcbnR5cGUgR2l0SHViUHVibGlzaE9wdGlvbnMgPSB7XG4gIC8qKlxuICAgKiBUaGUgR2l0SHViIHJlcG9zaXRvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICAgKi9cbiAgcmVwb3NpdG9yeU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEdpdEh1YiBvd25lciBvZiB0aGlzIHByb2plY3QuXG4gICAqL1xuICByZXBvc2l0b3J5T3duZXI6IHN0cmluZztcblxuICAvKipcbiAgICogUmVnaXN0cmllcyB0byBwdWJsaXNoIHRvXG4gICAqL1xuICByZWdpc3RyaWVzOiBHaXRodWJSZWdpc3RyeVtdO1xufTtcblxuZXhwb3J0IHR5cGUgR2l0SHViUHVibGlzaENvbmZpZyA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICByZXBvc2l0b3J5VXJsOiBzdHJpbmc7XG59ICYgUHVibGlzaGluZ0NvbmZpZztcblxuZXhwb3J0IGZ1bmN0aW9uIHB1Ymxpc2hUb0dpdGh1YlBhY2thZ2VzKFxuICBvcHRpb25zOiBHaXRIdWJQdWJsaXNoT3B0aW9uc1xuKTogR2l0SHViUHVibGlzaENvbmZpZyB7XG4gIGNvbnN0IHsgcmVnaXN0cmllcywgcmVwb3NpdG9yeU5hbWUsIHJlcG9zaXRvcnlPd25lciB9ID0gb3B0aW9ucztcbiAgY29uc3QgY29uZmlnID0gcHVibGlzaFRvUmVnaXN0cmllcyh7XG4gICAgbmFtZTogcmVwb3NpdG9yeU5hbWUsXG4gICAgbmFtZXNwYWNlOiByZXBvc2l0b3J5T3duZXIsXG4gICAgcmVnaXN0cmllcyxcbiAgfSk7XG5cbiAgaWYgKHJlZ2lzdHJpZXMuaW5jbHVkZXMoXCJucG1cIikpIHtcbiAgICBjb25maWcubnBtUmVnaXN0cnlVcmwgPSBcImh0dHBzOi8vbnBtLnBrZy5naXRodWIuY29tXCI7XG4gIH1cblxuICBpZiAocmVnaXN0cmllcy5pbmNsdWRlcyhcIm1hdmVuXCIpKSB7XG4gICAgY29uZmlnLnB1Ymxpc2hUb01hdmVuIS5tYXZlblJlcG9zaXRvcnlVcmwgPSBgaHR0cHM6Ly9tYXZlbi5wa2cuZ2l0aHViLmNvbS8ke3JlcG9zaXRvcnlPd25lcn0vJHtyZXBvc2l0b3J5TmFtZX1gO1xuICB9XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5jb25maWcsXG4gICAgcmVwb3NpdG9yeVVybDogYGh0dHBzOi8vZ2l0aHViLmNvbS8ke3JlcG9zaXRvcnlPd25lcn0vJHtyZXBvc2l0b3J5TmFtZX0uZ2l0YCxcbiAgICBuYW1lOiBgQCR7cmVwb3NpdG9yeU93bmVyfS8ke3JlcG9zaXRvcnlOYW1lfWAsXG4gIH07XG59XG5cbmV4cG9ydCB0eXBlIEFydGlmYWN0b3J5UHVibGlzaE9wdGlvbnMgPSBQdWJsaXNoT3B0aW9ucyAmIHtcbiAgLy8gVGhlIGFydGlmYWN0b3J5IHVybCB0byBwdWJsaXNoIHRvLCBlLmcuIFwiaHR0cHM6Ly9hcnRpZmFjdG9yeS5leGFtcGxlLmNvbS9hcnRpZmFjdG9yeS9hcGlcIlxuICBhcnRpZmFjdG9yeUFwaVVybDogc3RyaW5nO1xuXG4gIC8vIE5hbWUgb2YgdGhlIGFydGlmYWN0b3J5IHJlcG9zaXRvcnkgdG8gcHVibGlzaCB0bywgZGVmYXVsdHMgdG8gdGhlIG5hbWVzcGFjZVxuICBhcnRpZmFjdG9yeVJlcG9zaXRvcnk/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gcHVibGlzaFRvQXJ0aWZhY3RvcnkoXG4gIG9wdGlvbnM6IEFydGlmYWN0b3J5UHVibGlzaE9wdGlvbnNcbik6IFB1Ymxpc2hpbmdDb25maWcge1xuICBjb25zdCB7XG4gICAgcmVnaXN0cmllcyxcbiAgICBhcnRpZmFjdG9yeUFwaVVybCxcbiAgICBhcnRpZmFjdG9yeVJlcG9zaXRvcnkgPSBvcHRpb25zLm5hbWVzcGFjZSxcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGNvbmZpZyA9IHB1Ymxpc2hUb1JlZ2lzdHJpZXMob3B0aW9ucyk7XG5cbiAgaWYgKHJlZ2lzdHJpZXMuaW5jbHVkZXMoXCJucG1cIikpIHtcbiAgICBjb25maWcubnBtUmVnaXN0cnlVcmwgPSBgJHthcnRpZmFjdG9yeUFwaVVybH0vbnBtLyR7YXJ0aWZhY3RvcnlSZXBvc2l0b3J5fS9gO1xuICB9XG5cbiAgaWYgKHJlZ2lzdHJpZXMuaW5jbHVkZXMoXCJweXBpXCIpKSB7XG4gICAgY29uZmlnLnB1Ymxpc2hUb1B5cGkhLnR3aW5lUmVnaXN0cnlVcmwgPSBgJHthcnRpZmFjdG9yeUFwaVVybH0vcHlwaS8ke2FydGlmYWN0b3J5UmVwb3NpdG9yeX0vYDtcbiAgfVxuXG4gIGlmIChyZWdpc3RyaWVzLmluY2x1ZGVzKFwibWF2ZW5cIikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIkFydGlmYWN0b3J5IGRvZXMgc3VwcG9ydCBtYXZlbiBwYWNrYWdlcywgYnV0IHRoaXMgbGlicmFyeSBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBpdFwiXG4gICAgKTtcbiAgICAvLyBXaXRoIG5vIGNoYW5jZSB0byB0ZXN0IGl0IHRoZSBkb2NzIGRvbnQgdGVsbCBtZSBlbm91Z2ggdG8gaW1wbGVtZW50IGl0XG4gICAgLy8gaHR0cHM6Ly93d3cuamZyb2cuY29tL2NvbmZsdWVuY2UvZGlzcGxheS9KRlJPRy9NYXZlbitSZXBvc2l0b3J5I01hdmVuUmVwb3NpdG9yeS1SZXNvbHZpbmdBcnRpZmFjdHNUaHJvdWdoQXJ0aWZhY3RvcnlcbiAgICAvLyBjb25maWcucHVibGlzaFRvTWF2ZW4hLm1hdmVuUmVwb3NpdG9yeVVybCA9IGAke2FydGlmYWN0b3J5QXBpVXJsfS9gO1xuICB9XG5cbiAgaWYgKHJlZ2lzdHJpZXMuaW5jbHVkZXMoXCJudWdldFwiKSkge1xuICAgIC8vIFNlZW1zIGxpa2UgcHJvamVuIGRvZXMgbm90IHN1cHBvcnQgYXJ0aWZhY3Rvcnkgb24gbnVnZXQgeWV0OiBodHRwczovL2dpdGh1Yi5kZXYvcHJvamVuL3Byb2plbi9ibG9iLzE0ZjM3ZWM3MDRhZmRjNTE0M2U2YTI5NTRjMTI1MGIxZjBjY2FkZGYvc3JjL3JlbGVhc2UvcHVibGlzaGVyLnRzI0wzNDNcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBcIkFydGlmYWN0b3J5IGRvZXMgc3VwcG9ydCBudWdldCBwYWNrYWdlcywgYnV0IHRoaXMgbGlicmFyeSBkb2VzIG5vdCB5ZXQgc3VwcG9ydCBpdFwiXG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiBjb25maWc7XG59XG4iXX0=
|