cdklabs-projen-project-types 0.2.5 → 0.2.7

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 CHANGED
@@ -7815,7 +7815,7 @@
7815
7815
  "kind": "interface",
7816
7816
  "locationInModule": {
7817
7817
  "filename": "src/yarn/typescript-workspace.ts",
7818
- "line": 20
7818
+ "line": 29
7819
7819
  },
7820
7820
  "name": "IWorkspaceReference",
7821
7821
  "namespace": "yarn",
@@ -7824,46 +7824,46 @@
7824
7824
  "abstract": true,
7825
7825
  "docs": {
7826
7826
  "stability": "stable",
7827
- "summary": "The semver range that should be used to reference this package."
7827
+ "summary": "Whether the referenced workspace package is private."
7828
7828
  },
7829
7829
  "immutable": true,
7830
7830
  "locationInModule": {
7831
7831
  "filename": "src/yarn/typescript-workspace.ts",
7832
- "line": 34
7832
+ "line": 33
7833
7833
  },
7834
- "name": "dependencyRange",
7834
+ "name": "isPrivatePackage",
7835
7835
  "type": {
7836
- "primitive": "string"
7836
+ "primitive": "boolean"
7837
7837
  }
7838
7838
  },
7839
7839
  {
7840
7840
  "abstract": true,
7841
7841
  "docs": {
7842
7842
  "stability": "stable",
7843
- "summary": "Whether the referenced workspace package is private."
7843
+ "summary": "The dependency name of the package."
7844
7844
  },
7845
7845
  "immutable": true,
7846
7846
  "locationInModule": {
7847
7847
  "filename": "src/yarn/typescript-workspace.ts",
7848
- "line": 24
7848
+ "line": 38
7849
7849
  },
7850
- "name": "isPrivatePackage",
7850
+ "name": "name",
7851
7851
  "type": {
7852
- "primitive": "boolean"
7852
+ "primitive": "string"
7853
7853
  }
7854
7854
  },
7855
7855
  {
7856
7856
  "abstract": true,
7857
7857
  "docs": {
7858
7858
  "stability": "stable",
7859
- "summary": "The dependency name of the package."
7859
+ "summary": "The directory that holds this package in the monorepo."
7860
7860
  },
7861
7861
  "immutable": true,
7862
7862
  "locationInModule": {
7863
7863
  "filename": "src/yarn/typescript-workspace.ts",
7864
- "line": 29
7864
+ "line": 48
7865
7865
  },
7866
- "name": "name",
7866
+ "name": "outdir",
7867
7867
  "type": {
7868
7868
  "primitive": "string"
7869
7869
  }
@@ -7872,14 +7872,14 @@
7872
7872
  "abstract": true,
7873
7873
  "docs": {
7874
7874
  "stability": "stable",
7875
- "summary": "The directory that holds this package in the monorepo."
7875
+ "summary": "The semver range that should be used to reference this package when it is released."
7876
7876
  },
7877
7877
  "immutable": true,
7878
7878
  "locationInModule": {
7879
7879
  "filename": "src/yarn/typescript-workspace.ts",
7880
- "line": 39
7880
+ "line": 43
7881
7881
  },
7882
- "name": "outdir",
7882
+ "name": "versionType",
7883
7883
  "type": {
7884
7884
  "primitive": "string"
7885
7885
  }
@@ -11327,13 +11327,13 @@
11327
11327
  "datatype": true,
11328
11328
  "docs": {
11329
11329
  "stability": "stable",
11330
- "summary": "Options for the `workspace.reference()` method."
11330
+ "summary": "Options for the `workspace.customizeReference()` method."
11331
11331
  },
11332
11332
  "fqn": "cdklabs-projen-project-types.yarn.ReferenceOptions",
11333
11333
  "kind": "interface",
11334
11334
  "locationInModule": {
11335
11335
  "filename": "src/yarn/typescript-workspace.ts",
11336
- "line": 301
11336
+ "line": 311
11337
11337
  },
11338
11338
  "name": "ReferenceOptions",
11339
11339
  "namespace": "yarn",
@@ -11341,22 +11341,20 @@
11341
11341
  {
11342
11342
  "abstract": true,
11343
11343
  "docs": {
11344
- "custom": {
11345
- "deafult": "false"
11346
- },
11347
- "remarks": "By default, dependencies will be referenced with a `^`, and come install time\na newer version may be installed. Set this to `true` to require exactly the\nversion of this package that is released along with the consuming package.",
11344
+ "default": "'major'",
11345
+ "remarks": "By default, dependencies will be referenced with a `^`, which means that\ncome install time a newer version may be installed.\n\nChoose a different range type to take, for example, an `exact` dependency.",
11348
11346
  "stability": "stable",
11349
- "summary": "Depend on the exact version of this package at release time."
11347
+ "summary": "What type of dependency to take on this package."
11350
11348
  },
11351
11349
  "immutable": true,
11352
11350
  "locationInModule": {
11353
11351
  "filename": "src/yarn/typescript-workspace.ts",
11354
- "line": 311
11352
+ "line": 322
11355
11353
  },
11356
- "name": "exactVersion",
11354
+ "name": "versionType",
11357
11355
  "optional": true,
11358
11356
  "type": {
11359
- "primitive": "boolean"
11357
+ "primitive": "string"
11360
11358
  }
11361
11359
  }
11362
11360
  ],
@@ -11376,7 +11374,7 @@
11376
11374
  },
11377
11375
  "locationInModule": {
11378
11376
  "filename": "src/yarn/typescript-workspace.ts",
11379
- "line": 53
11377
+ "line": 62
11380
11378
  },
11381
11379
  "parameters": [
11382
11380
  {
@@ -11393,7 +11391,7 @@
11393
11391
  "kind": "class",
11394
11392
  "locationInModule": {
11395
11393
  "filename": "src/yarn/typescript-workspace.ts",
11396
- "line": 45
11394
+ "line": 54
11397
11395
  },
11398
11396
  "methods": [
11399
11397
  {
@@ -11404,7 +11402,7 @@
11404
11402
  },
11405
11403
  "locationInModule": {
11406
11404
  "filename": "src/yarn/typescript-workspace.ts",
11407
- "line": 259
11405
+ "line": 271
11408
11406
  },
11409
11407
  "name": "addEslintRcFix",
11410
11408
  "protected": true
@@ -11416,7 +11414,7 @@
11416
11414
  },
11417
11415
  "locationInModule": {
11418
11416
  "filename": "src/yarn/typescript-workspace.ts",
11419
- "line": 245
11417
+ "line": 257
11420
11418
  },
11421
11419
  "name": "addTsconfigDevFix",
11422
11420
  "protected": true
@@ -11428,7 +11426,7 @@
11428
11426
  },
11429
11427
  "locationInModule": {
11430
11428
  "filename": "src/yarn/typescript-workspace.ts",
11431
- "line": 286
11429
+ "line": 298
11432
11430
  },
11433
11431
  "name": "customizeReference",
11434
11432
  "parameters": [
@@ -11454,7 +11452,7 @@
11454
11452
  },
11455
11453
  "locationInModule": {
11456
11454
  "filename": "src/yarn/typescript-workspace.ts",
11457
- "line": 277
11455
+ "line": 289
11458
11456
  },
11459
11457
  "name": "workspaceDependencies",
11460
11458
  "parameters": [
@@ -11493,7 +11491,7 @@
11493
11491
  "immutable": true,
11494
11492
  "locationInModule": {
11495
11493
  "filename": "src/yarn/typescript-workspace.ts",
11496
- "line": 47
11494
+ "line": 56
11497
11495
  },
11498
11496
  "name": "bundledDeps",
11499
11497
  "type": {
@@ -11508,33 +11506,33 @@
11508
11506
  {
11509
11507
  "docs": {
11510
11508
  "stability": "stable",
11511
- "summary": "The semver range that should be used to reference this package."
11509
+ "summary": "Whether the referenced workspace package is private."
11512
11510
  },
11513
11511
  "immutable": true,
11514
11512
  "locationInModule": {
11515
11513
  "filename": "src/yarn/typescript-workspace.ts",
11516
- "line": 49
11514
+ "line": 57
11517
11515
  },
11518
- "name": "dependencyRange",
11516
+ "name": "isPrivatePackage",
11519
11517
  "overrides": "cdklabs-projen-project-types.yarn.IWorkspaceReference",
11520
11518
  "type": {
11521
- "primitive": "string"
11519
+ "primitive": "boolean"
11522
11520
  }
11523
11521
  },
11524
11522
  {
11525
11523
  "docs": {
11526
11524
  "stability": "stable",
11527
- "summary": "Whether the referenced workspace package is private."
11525
+ "summary": "The semver range that should be used to reference this package when it is released."
11528
11526
  },
11529
11527
  "immutable": true,
11530
11528
  "locationInModule": {
11531
11529
  "filename": "src/yarn/typescript-workspace.ts",
11532
- "line": 48
11530
+ "line": 58
11533
11531
  },
11534
- "name": "isPrivatePackage",
11532
+ "name": "versionType",
11535
11533
  "overrides": "cdklabs-projen-project-types.yarn.IWorkspaceReference",
11536
11534
  "type": {
11537
- "primitive": "boolean"
11535
+ "primitive": "string"
11538
11536
  }
11539
11537
  },
11540
11538
  {
@@ -11544,7 +11542,7 @@
11544
11542
  "immutable": true,
11545
11543
  "locationInModule": {
11546
11544
  "filename": "src/yarn/typescript-workspace.ts",
11547
- "line": 46
11545
+ "line": 55
11548
11546
  },
11549
11547
  "name": "workspaceDirectory",
11550
11548
  "type": {
@@ -14412,7 +14410,7 @@
14412
14410
  },
14413
14411
  "locationInModule": {
14414
14412
  "filename": "src/yarn/typescript-workspace-release.ts",
14415
- "line": 23
14413
+ "line": 28
14416
14414
  },
14417
14415
  "parameters": [
14418
14416
  {
@@ -14432,7 +14430,7 @@
14432
14430
  "kind": "class",
14433
14431
  "locationInModule": {
14434
14432
  "filename": "src/yarn/typescript-workspace-release.ts",
14435
- "line": 18
14433
+ "line": 23
14436
14434
  },
14437
14435
  "name": "WorkspaceRelease",
14438
14436
  "namespace": "yarn",
@@ -14444,7 +14442,7 @@
14444
14442
  "immutable": true,
14445
14443
  "locationInModule": {
14446
14444
  "filename": "src/yarn/typescript-workspace-release.ts",
14447
- "line": 21
14445
+ "line": 26
14448
14446
  },
14449
14447
  "name": "workspace",
14450
14448
  "type": {
@@ -14458,7 +14456,7 @@
14458
14456
  "immutable": true,
14459
14457
  "locationInModule": {
14460
14458
  "filename": "src/yarn/typescript-workspace-release.ts",
14461
- "line": 19
14459
+ "line": 24
14462
14460
  },
14463
14461
  "name": "publisher",
14464
14462
  "optional": true,
@@ -14473,7 +14471,7 @@
14473
14471
  "immutable": true,
14474
14472
  "locationInModule": {
14475
14473
  "filename": "src/yarn/typescript-workspace-release.ts",
14476
- "line": 20
14474
+ "line": 25
14477
14475
  },
14478
14476
  "name": "version",
14479
14477
  "optional": true,
@@ -14593,6 +14591,28 @@
14593
14591
  "fqn": "projen.ReleasableCommits"
14594
14592
  }
14595
14593
  },
14594
+ {
14595
+ "abstract": true,
14596
+ "docs": {
14597
+ "stability": "stable",
14598
+ "summary": "For runtime and peer dependencies, the type of dependency we take on each package."
14599
+ },
14600
+ "immutable": true,
14601
+ "locationInModule": {
14602
+ "filename": "src/yarn/typescript-workspace-release.ts",
14603
+ "line": 20
14604
+ },
14605
+ "name": "repoRuntimeDependencies",
14606
+ "optional": true,
14607
+ "type": {
14608
+ "collection": {
14609
+ "elementtype": {
14610
+ "primitive": "string"
14611
+ },
14612
+ "kind": "map"
14613
+ }
14614
+ }
14615
+ },
14596
14616
  {
14597
14617
  "abstract": true,
14598
14618
  "docs": {
@@ -14614,6 +14634,6 @@
14614
14634
  "symbolId": "src/yarn/typescript-workspace-release:WorkspaceReleaseOptions"
14615
14635
  }
14616
14636
  },
14617
- "version": "0.2.5",
14618
- "fingerprint": "1F7arwjF6S88vRJEvOOh3B9lUuA6h2gRnS4+kZlFWwo="
14637
+ "version": "0.2.7",
14638
+ "fingerprint": "a7wy+NrC2+eorMzZbbXJ2/cB9aGrrADVxhd+DubFZ1w="
14619
14639
  }
package/API.md CHANGED
@@ -13728,8 +13728,8 @@ When given a project, this it the project itself.
13728
13728
  | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspace.property.tsconfig">tsconfig</a></code> | <code>projen.javascript.TypescriptConfig</code> | *No description.* |
13729
13729
  | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspace.property.tsconfigEslint">tsconfigEslint</a></code> | <code>projen.javascript.TypescriptConfig</code> | *No description.* |
13730
13730
  | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspace.property.bundledDeps">bundledDeps</a></code> | <code>string[]</code> | *No description.* |
13731
- | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspace.property.dependencyRange">dependencyRange</a></code> | <code>string</code> | The semver range that should be used to reference this package. |
13732
13731
  | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspace.property.isPrivatePackage">isPrivatePackage</a></code> | <code>boolean</code> | Whether the referenced workspace package is private. |
13732
+ | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspace.property.versionType">versionType</a></code> | <code>string</code> | The semver range that should be used to reference this package when it is released. |
13733
13733
  | <code><a href="#cdklabs-projen-project-types.yarn.TypeScriptWorkspace.property.workspaceDirectory">workspaceDirectory</a></code> | <code>string</code> | *No description.* |
13734
13734
 
13735
13735
  ---
@@ -14494,27 +14494,27 @@ public readonly bundledDeps: string[];
14494
14494
 
14495
14495
  ---
14496
14496
 
14497
- ##### `dependencyRange`<sup>Required</sup> <a name="dependencyRange" id="cdklabs-projen-project-types.yarn.TypeScriptWorkspace.property.dependencyRange"></a>
14497
+ ##### `isPrivatePackage`<sup>Required</sup> <a name="isPrivatePackage" id="cdklabs-projen-project-types.yarn.TypeScriptWorkspace.property.isPrivatePackage"></a>
14498
14498
 
14499
14499
  ```typescript
14500
- public readonly dependencyRange: string;
14500
+ public readonly isPrivatePackage: boolean;
14501
14501
  ```
14502
14502
 
14503
- - *Type:* string
14503
+ - *Type:* boolean
14504
14504
 
14505
- The semver range that should be used to reference this package.
14505
+ Whether the referenced workspace package is private.
14506
14506
 
14507
14507
  ---
14508
14508
 
14509
- ##### `isPrivatePackage`<sup>Required</sup> <a name="isPrivatePackage" id="cdklabs-projen-project-types.yarn.TypeScriptWorkspace.property.isPrivatePackage"></a>
14509
+ ##### `versionType`<sup>Required</sup> <a name="versionType" id="cdklabs-projen-project-types.yarn.TypeScriptWorkspace.property.versionType"></a>
14510
14510
 
14511
14511
  ```typescript
14512
- public readonly isPrivatePackage: boolean;
14512
+ public readonly versionType: string;
14513
14513
  ```
14514
14514
 
14515
- - *Type:* boolean
14515
+ - *Type:* string
14516
14516
 
14517
- Whether the referenced workspace package is private.
14517
+ The semver range that should be used to reference this package when it is released.
14518
14518
 
14519
14519
  ---
14520
14520
 
@@ -35676,7 +35676,7 @@ Github Runner Group selection options.
35676
35676
 
35677
35677
  ### ReferenceOptions <a name="ReferenceOptions" id="cdklabs-projen-project-types.yarn.ReferenceOptions"></a>
35678
35678
 
35679
- Options for the `workspace.reference()` method.
35679
+ Options for the `workspace.customizeReference()` method.
35680
35680
 
35681
35681
  #### Initializer <a name="Initializer" id="cdklabs-projen-project-types.yarn.ReferenceOptions.Initializer"></a>
35682
35682
 
@@ -35690,23 +35690,25 @@ const referenceOptions: yarn.ReferenceOptions = { ... }
35690
35690
 
35691
35691
  | **Name** | **Type** | **Description** |
35692
35692
  | --- | --- | --- |
35693
- | <code><a href="#cdklabs-projen-project-types.yarn.ReferenceOptions.property.exactVersion">exactVersion</a></code> | <code>boolean</code> | Depend on the exact version of this package at release time. |
35693
+ | <code><a href="#cdklabs-projen-project-types.yarn.ReferenceOptions.property.versionType">versionType</a></code> | <code>string</code> | What type of dependency to take on this package. |
35694
35694
 
35695
35695
  ---
35696
35696
 
35697
- ##### `exactVersion`<sup>Optional</sup> <a name="exactVersion" id="cdklabs-projen-project-types.yarn.ReferenceOptions.property.exactVersion"></a>
35697
+ ##### `versionType`<sup>Optional</sup> <a name="versionType" id="cdklabs-projen-project-types.yarn.ReferenceOptions.property.versionType"></a>
35698
35698
 
35699
35699
  ```typescript
35700
- public readonly exactVersion: boolean;
35700
+ public readonly versionType: string;
35701
35701
  ```
35702
35702
 
35703
- - *Type:* boolean
35703
+ - *Type:* string
35704
+ - *Default:* 'major'
35705
+
35706
+ What type of dependency to take on this package.
35704
35707
 
35705
- Depend on the exact version of this package at release time.
35708
+ By default, dependencies will be referenced with a `^`, which means that
35709
+ come install time a newer version may be installed.
35706
35710
 
35707
- By default, dependencies will be referenced with a `^`, and come install time
35708
- a newer version may be installed. Set this to `true` to require exactly the
35709
- version of this package that is released along with the consuming package.
35711
+ Choose a different range type to take, for example, an `exact` dependency.
35710
35712
 
35711
35713
  ---
35712
35714
 
@@ -38064,6 +38066,7 @@ const workspaceReleaseOptions: yarn.WorkspaceReleaseOptions = { ... }
38064
38066
  | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.npmDistTag">npmDistTag</a></code> | <code>string</code> | *No description.* |
38065
38067
  | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.publishToNpm">publishToNpm</a></code> | <code>boolean</code> | *No description.* |
38066
38068
  | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.releasableCommits">releasableCommits</a></code> | <code>projen.ReleasableCommits</code> | *No description.* |
38069
+ | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.repoRuntimeDependencies">repoRuntimeDependencies</a></code> | <code>{[ key: string ]: string}</code> | For runtime and peer dependencies, the type of dependency we take on each package. |
38067
38070
  | <code><a href="#cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.workflowNodeVersion">workflowNodeVersion</a></code> | <code>string</code> | *No description.* |
38068
38071
 
38069
38072
  ---
@@ -38128,6 +38131,18 @@ public readonly releasableCommits: ReleasableCommits;
38128
38131
 
38129
38132
  ---
38130
38133
 
38134
+ ##### `repoRuntimeDependencies`<sup>Optional</sup> <a name="repoRuntimeDependencies" id="cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.repoRuntimeDependencies"></a>
38135
+
38136
+ ```typescript
38137
+ public readonly repoRuntimeDependencies: {[ key: string ]: string};
38138
+ ```
38139
+
38140
+ - *Type:* {[ key: string ]: string}
38141
+
38142
+ For runtime and peer dependencies, the type of dependency we take on each package.
38143
+
38144
+ ---
38145
+
38131
38146
  ##### `workflowNodeVersion`<sup>Optional</sup> <a name="workflowNodeVersion" id="cdklabs-projen-project-types.yarn.WorkspaceReleaseOptions.property.workflowNodeVersion"></a>
38132
38147
 
38133
38148
  ```typescript
@@ -38181,22 +38196,10 @@ different behavior.
38181
38196
 
38182
38197
  | **Name** | **Type** | **Description** |
38183
38198
  | --- | --- | --- |
38184
- | <code><a href="#cdklabs-projen-project-types.yarn.IWorkspaceReference.property.dependencyRange">dependencyRange</a></code> | <code>string</code> | The semver range that should be used to reference this package. |
38185
38199
  | <code><a href="#cdklabs-projen-project-types.yarn.IWorkspaceReference.property.isPrivatePackage">isPrivatePackage</a></code> | <code>boolean</code> | Whether the referenced workspace package is private. |
38186
38200
  | <code><a href="#cdklabs-projen-project-types.yarn.IWorkspaceReference.property.name">name</a></code> | <code>string</code> | The dependency name of the package. |
38187
38201
  | <code><a href="#cdklabs-projen-project-types.yarn.IWorkspaceReference.property.outdir">outdir</a></code> | <code>string</code> | The directory that holds this package in the monorepo. |
38188
-
38189
- ---
38190
-
38191
- ##### `dependencyRange`<sup>Required</sup> <a name="dependencyRange" id="cdklabs-projen-project-types.yarn.IWorkspaceReference.property.dependencyRange"></a>
38192
-
38193
- ```typescript
38194
- public readonly dependencyRange: string;
38195
- ```
38196
-
38197
- - *Type:* string
38198
-
38199
- The semver range that should be used to reference this package.
38202
+ | <code><a href="#cdklabs-projen-project-types.yarn.IWorkspaceReference.property.versionType">versionType</a></code> | <code>string</code> | The semver range that should be used to reference this package when it is released. |
38200
38203
 
38201
38204
  ---
38202
38205
 
@@ -38236,6 +38239,18 @@ The directory that holds this package in the monorepo.
38236
38239
 
38237
38240
  ---
38238
38241
 
38242
+ ##### `versionType`<sup>Required</sup> <a name="versionType" id="cdklabs-projen-project-types.yarn.IWorkspaceReference.property.versionType"></a>
38243
+
38244
+ ```typescript
38245
+ public readonly versionType: string;
38246
+ ```
38247
+
38248
+ - *Type:* string
38249
+
38250
+ The semver range that should be used to reference this package when it is released.
38251
+
38252
+ ---
38253
+
38239
38254
  ## Enums <a name="Enums" id="Enums"></a>
38240
38255
 
38241
38256
  ### JsiiLanguage <a name="JsiiLanguage" id="cdklabs-projen-project-types.JsiiLanguage"></a>
@@ -348,5 +348,5 @@ class CdkCliIntegTestsWorkflow extends projen_1.Component {
348
348
  }
349
349
  exports.CdkCliIntegTestsWorkflow = CdkCliIntegTestsWorkflow;
350
350
  _a = JSII_RTTI_SYMBOL_1;
351
- CdkCliIntegTestsWorkflow[_a] = { fqn: "cdklabs-projen-project-types.CdkCliIntegTestsWorkflow", version: "0.2.5" };
351
+ CdkCliIntegTestsWorkflow[_a] = { fqn: "cdklabs-projen-project-types.CdkCliIntegTestsWorkflow", version: "0.2.7" };
352
352
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNsaS1pbnRlZy10ZXN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jZGstY2xpLWludGVnLXRlc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQXVEO0FBRXZELE1BQU0sZ0JBQWdCLEdBQUcsNEVBQTRFLENBQUM7QUFtRHRHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBQ0gsTUFBYSx3QkFBeUIsU0FBUSxrQkFBUztJQUNyRCxZQUFZLElBQTRCLEVBQUUsS0FBb0M7UUFDNUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRVosTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN6QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0MsYUFBcUIsQ0FBQyxRQUFrQyxDQUFDO1FBRTNELEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDeEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN4RixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDbEIsaUJBQWlCLEVBQUU7Z0JBQ2pCLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQzthQUNuQjtZQUNELG9FQUFvRTtZQUNwRSxVQUFVLEVBQUUsRUFBRTtZQUNkLDhDQUE4QztZQUM5QyxnQkFBZ0IsRUFBRSxFQUFF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LGNBQWM7b0JBQzVLLElBQUksRUFBRSxnQ0FBZ0M7b0JBQ3RDLEdBQUcsRUFBRSxRQUFRO2lCQUNkO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOztBQWpVSCw0REFrVUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGdpdGh1YiwgamF2YXNjcmlwdCB9IGZyb20gJ3Byb2plbic7XG5cbmNvbnN0IE5PVF9GTEFHR0VEX0VYUFIgPSBcIiFjb250YWlucyhnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LmxhYmVscy4qLm5hbWUsICdwci9leGVtcHQtaW50ZWctdGVzdCcpXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrQ2xpSW50ZWdUZXN0c1dvcmtmbG93UHJvcHMge1xuICAvKipcbiAgICogUnVubmVycyBmb3IgdGhlIHdvcmtmbG93XG4gICAqL1xuICByZWFkb25seSBidWlsZFJ1bnNPbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSdW5uZXJzIGZvciB0aGUgd29ya2Zsb3dcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RSdW5zT246IHN0cmluZztcblxuICAvKipcbiAgICogR2l0SHViIGVudmlyb25tZW50IG5hbWUgZm9yIGFwcHJvdmFsc1xuICAgKlxuICAgKiBNVVNUIGJlIGNvbmZpZ3VyZWQgdG8gcmVxdWlyZSBtYW51YWwgYXBwcm92YWwuXG4gICAqL1xuICByZWFkb25seSBhcHByb3ZhbEVudmlyb25tZW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdpdEh1YiBlbnZpcm9ubWVudCBuYW1lIGZvciBydW5uaW5nIHRoZSB0ZXN0c1xuICAgKlxuICAgKiBNVVNUIGJlIGNvbmZpZ3VyZWQgd2l0aG91dCBhcHByb3ZhbHMsIGFuZCB3aXRoIHRoZSBmb2xsb3dpbmcgdmFycyBhbmQgc2VjcmV0czpcbiAgICpcbiAgICogLSB2YXJzOiBBV1NfUk9MRV9UT19BU1NVTUVfRk9SX1RFU1RJTkdcbiAgICpcbiAgICogQW5kIHRoZSByb2xlIG5lZWRzIHRvIGJlIGNvbmZpZ3VyZWQgdG8gYWxsb3cgdGhlIEFzc3VtZVJvbGUgb3BlcmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdEVudmlyb25tZW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhY2thZ2VzIHRoYXQgYXJlIGxvY2FsbHkgdHJhbnNmZXJlZCAod2Ugd2lsbCBuZXZlciB1c2UgdGhlIHVwc3RyZWFtIHZlcnNpb25zKVxuICAgKlxuICAgKiBUYWtlcyBwYWNrYWdlIG5hbWVzOyB0aGVzZSBhcmUgZXhwZWN0ZWQgdG8gbGl2ZSBpbiBgcGFja2FnZXMvPE5BTUU+L2Rpc3QvanNgLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYWxQYWNrYWdlczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBvZmZpY2lhbCByZXBvIHRoaXMgd29ya2Zsb3cgaXMgdXNlZCBmb3JcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZVJlcG86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgZ2l2ZW4sIGFsbG93cyBhY2Nlc3NpbmcgdXBzdHJlYW0gdmVyc2lvbnMgb2YgdGhlc2UgcGFja2FnZXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyB1cHN0cmVhbSB2ZXJzaW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dVcHN0cmVhbVZlcnNpb25zPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogQWRkIGEgd29ya2Zsb3cgZm9yIHJ1bm5pbmcgdGhlIHRlc3RzXG4gKlxuICogVGhpcyBNVVNUIGJlIGEgc2VwYXJhdGUgd29ya2Zsb3cgdGhhdCBydW5zIGluIHByaXZpbGVnZWQgY29udGV4dC4gV2UgaGF2ZSBhIGNvdXBsZVxuICogb2Ygb3B0aW9uczpcbiAqXG4gKiAtIGB3b3JrZmxvd19ydW5gOiB3ZSBjYW4gdHJpZ2dlciBhIHByaXZpbGVnZWQgd29ya2Zsb3cgcnVuIGFmdGVyIHRoZSB1bnByaXZpbGVnZWRcbiAqICAgYHB1bGxfcmVxdWVzdGAgd29ya2Zsb3cgZmluaXNoZXMgYW5kIHJldXNlIGl0cyBvdXRwdXQgYXJ0aWZhY3RzLiBUaGVcbiAqICAgcHJvYmxlbSBpcyB0aGF0IHRoZSBzZWNvbmQgcnVuIGlzIGRpc2Nvbm5lY3RlZCBmcm9tIHRoZSBQUiBzbyB3ZSB3b3VsZCBuZWVkXG4gKiAgIHRvIHNjcmlwdCBpbiB2aXNpYmlsaXR5IGZvciBhcHByb3ZhbHMgYW5kIHN1Y2Nlc3MgKGJ5IHBvc3RpbmcgY29tbWVudHMsIGZvclxuICogICBleGFtcGxlKVxuICogLSBVc2Ugb25seSBhIGBwdWxsX3JlcXVlc3RfdGFyZ2V0YCB3b3JrZmxvdyBvbiB0aGUgUFI6IHRoaXMgZWl0aGVyIHdvdWxkIHJ1blxuICogICBhIHByaXZpbGVnZWQgd29ya2Zsb3cgb24gYW55IHVzZXIgY29kZSBzdWJtaXNzaW9uIChtaWdodCBiZSBmaW5lIGdpdmVuIHRoZVxuICogICB3b3JrZmxvdydzIGBwZXJtaXNzaW9uc2AsIGJ1dCBJJ20gc3VyZSB0aGlzIHdpbGwgbWFrZSBvdXIgc2VjdXJpdHkgdGVhbSB1bmVhc3lcbiAqICAgYW55d2F5KSwgT1IgdGhpcyB3b3VsZCBtZWFuIGFueSBidWlsZCBuZWVkcyBodW1hbiBjb25maXJtYXRpb24gd2hpY2ggbWVhbnMgc2xvd1xuICogICBmZWVkYmFjay5cbiAqIC0gVXNlIGEgYHB1bGxfcmVxdWVzdGAgZm9yIGEgcmVndWxhciBmYXN0LWZlZWRiYWNrIGJ1aWxkLCBhbmQgYSBzZXBhcmF0ZVxuICogICBgcHVsbF9yZXF1ZXN0X3RhcmdldGAgZm9yIHRoZSBpbnRlZyB0ZXN0cy4gVGhpcyBtZWFucyB3ZSdyZSBidWlsZGluZyB0d2ljZS5cbiAqXG4gKiBVbHRpbWF0ZWx5LCBvdXIgYnVpbGQgaXNuJ3QgaGVhdnkgZW5vdWdoIHRvIHB1dCBpbiBhIGxvdCBvZiBlZmZvcnQgZGVkdXBpbmdcbiAqIGl0LCBzbyB3ZSdsbCBnbyB3aXRoIHRoZSBzaW1wbGVzdCBzb2x1dGlvbiB3aGljaCBpcyB0aGUgbGFzdCBvbmU6IDJcbiAqIGluZGVwZW5kZW50IHdvcmtmbG93cy5cbiAqXG4gKiBwcm9qZW4gZG9lc24ndCBtYWtlIGl0IGVhc3kgdG8gY29weSB0aGUgcmVsZXZhbnQgcGFydHMgb2YgdGhlICdidWlsZCcgd29ya2Zsb3csXG4gKiBzbyB0aGV5J3JlIHVuZm9ydHVuYXRlbHkgZHVwbGljYXRlZCBoZXJlLlxuICovXG5leHBvcnQgY2xhc3MgQ2RrQ2xpSW50ZWdUZXN0c1dvcmtmbG93IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocmVwbzogamF2YXNjcmlwdC5Ob2RlUHJvamVjdCwgcHJvcHM6IENka0NsaUludGVnVGVzdHNXb3JrZmxvd1Byb3BzKSB7XG4gICAgc3VwZXIocmVwbyk7XG5cbiAgICBjb25zdCBidWlsZFdvcmtmbG93ID0gcmVwby5idWlsZFdvcmtmbG93O1xuICAgIGNvbnN0IHJ1blRlc3RzV29ya2Zsb3cgPSByZXBvLmdpdGh1Yj8uYWRkV29ya2Zsb3coJ2ludGVnJyk7XG4gICAgaWYgKCFidWlsZFdvcmtmbG93IHx8ICFydW5UZXN0c1dvcmtmbG93KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGJ1aWxkIGFuZCBydW4gdGVzdHMgd29ya2Zsb3cnKTtcbiAgICB9XG4gICAgKChidWlsZFdvcmtmbG93IGFzIGFueSkud29ya2Zsb3cgYXMgZ2l0aHViLkdpdGh1YldvcmtmbG93KTtcblxuICAgIHByb3BzLmFsbG93VXBzdHJlYW1WZXJzaW9ucz8uZm9yRWFjaCgocGFjaykgPT4ge1xuICAgICAgaWYgKCFwcm9wcy5sb2NhbFBhY2thZ2VzLmluY2x1ZGVzKHBhY2spKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUGFja2FnZSBpbiBhbGxvd1Vwc3RyZWFtVmVyc2lvbnMgYnV0IG5vdCBpbiBsb2NhbFBhY2thZ2VzOiAke3BhY2t9YCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBydW5UZXN0c1dvcmtmbG93Lm9uKHtcbiAgICAgIHB1bGxSZXF1ZXN0VGFyZ2V0OiB7XG4gICAgICAgIGJyYW5jaGVzOiBbJ21haW4nXSxcbiAgICAgIH0sXG4gICAgICAvLyBOZWVkcyB0byB0cmlnZ2VyIGFuZCByZXBvcnQgc3VjY2VzcyBvbiBtZXJnZSBxdWV1ZSBidWlsZHMgYXMgd2VsbFxuICAgICAgbWVyZ2VHcm91cDoge30sXG4gICAgICAvLyBOZXZlciBodXJ0cyB0byBiZSBhYmxlIHRvIHJ1biB0aGlzIG1hbnVhbGx5XG4gICAgICB3b3JrZmxvd0Rpc3BhdGNoOiB7fSxcbiAgICB9KTtcbiAgICAvLyBUaGUgJ2J1aWxkJyBwYXJ0IHJ1bnMgb24gdGhlICdpbnRlZy1hcHByb3ZhbCcgZW52aXJvbm1lbnQsIHdoaWNoIHJlcXVpcmVzXG4gICAgLy8gYXBwcm92YWwuIFRoZSBhY3R1YWwgcnVucyBhY2Nlc3MgdGhlIHJlYWwgZW52aXJvbm1lbnQsIG5vdCByZXF1aXJpbmcgYXBwcm92YWxcbiAgICAvLyBhbnltb3JlLlxuICAgIC8vXG4gICAgLy8gVGhpcyBpcyBmb3IgMiByZWFzb25zOlxuICAgIC8vIC0gVGhlIGJ1aWxkIGpvYiBpcyB0aGUgZmlyc3Qgb25lIHRoYXQgcnVucy4gVGhhdCBtZWFucyB5b3UgZ2V0IGFza2VkIGFwcHJvdmFsXG4gICAgLy8gICBpbW1lZGlhdGVseSBhZnRlciBwdXNoLCBpbnN0ZWFkIG9mIDUgbWludXRlcyBsYXRlciBhZnRlciB0aGUgYnVpbGQgY29tcGxldGVzLlxuICAgIC8vIC0gVGhlIGJ1aWxkIGpvYiBpcyBvbmx5IG9uZSBqb2IsIHZlcnN1cyB0aGUgdGVzdHMgd2hpY2ggYXJlIGEgbWF0cml4IGJ1aWxkLlxuICAgIC8vICAgSWYgdGhlIG1hdHJpeCB0ZXN0IGpvYiBuZWVkcyBhcHByb3ZhbCwgdGhlIFB1bGwgUmVxdWVzdCB0aW1lbGluZSBnZXRzIHNwYW1tZWRcbiAgICAvLyAgIHdpdGggYW4gYXBwcm92YWwgcmVxdWVzdCBmb3IgZXZlcnkgaW5kaXZpZHVhbCBydW4uXG4gICAgY29uc3QgSk9CX1BSRVBBUkUgPSAncHJlcGFyZSc7XG4gICAgcnVuVGVzdHNXb3JrZmxvdy5hZGRKb2IoSk9CX1BSRVBBUkUsIHtcbiAgICAgIGVudmlyb25tZW50OiBwcm9wcy5hcHByb3ZhbEVudmlyb25tZW50LFxuICAgICAgcnVuc09uOiBbcHJvcHMuYnVpbGRSdW5zT25dLFxuICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgY29udGVudHM6IGdpdGh1Yi53b3JrZmxvd3MuSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgfSxcbiAgICAgIGVudjoge1xuICAgICAgICBDSTogJ3RydWUnLFxuICAgICAgfSxcbiAgICAgIC8vIERvbid0IHJ1biBhZ2FpbiBvbiB0aGUgbWVyZ2UgcXVldWUsIHdlIGFscmVhZHkgZ290IGNvbmZpcm1hdGlvbiB0aGF0IGl0IHdvcmtzIGFuZCB0aGVcbiAgICAgIC8vIHRlc3RzIGFyZSBxdWl0ZSBleHBlbnNpdmUuXG4gICAgICBpZjogYGdpdGh1Yi5ldmVudF9uYW1lICE9ICdtZXJnZV9ncm91cCcgJiYgJHtOT1RfRkxBR0dFRF9FWFBSfWAsXG4gICAgICBzdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2NCcsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgLy8gSU1QT1JUQU5UISBUaGlzIG11c3QgYmUgYGhlYWQuc2hhYCBub3QgYGhlYWQucmVmYCwgb3RoZXJ3aXNlIHdlXG4gICAgICAgICAgICAvLyBhcmUgdnVsbmVyYWJsZSB0byBhIFRPQ1RPVSBhdHRhY2suXG4gICAgICAgICAgICByZWY6ICcke3sgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5oZWFkLnNoYSB9fScsXG4gICAgICAgICAgICByZXBvc2l0b3J5OiAnJHt7IGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QuaGVhZC5yZXBvLmZ1bGxfbmFtZSB9fScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gV2UgdXNlZCB0byBmZXRjaCB0YWdzIGZyb20gdGhlIHJlcG8gdXNpbmcgJ2NoZWNrb3V0JywgYnV0IGlmIGl0J3MgYSBmb3JrXG4gICAgICAgIC8vIHRoZSB0YWdzIHdvbid0IGJlIHRoZXJlLCBzbyB3ZSBoYXZlIHRvIGZldGNoIHRoZW0gZnJvbSB1cHN0cmVhbS5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gVGhlIHRhZ3MgYXJlIG5lY2Vzc2FyeSB0byByZWFsaXN0aWNhbGx5IGJ1bXAgdmVyc2lvbnNcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdGZXRjaCB0YWdzIGZyb20gb3JpZ2luIHJlcG8nLFxuICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgLy8gQ2FuIGJlIGVpdGhlciBhd3MvYXdzLWNkay1jbGkgb3IgYXdzL2F3cy1jZGstY2xpLXRlc3RpbmdcbiAgICAgICAgICAgIC8vIChNdXN0IGNsb25lIG92ZXIgSFRUUFMgYmVjYXVzZSB3ZSBoYXZlIG5vIFNTSCBhdXRoIHNldCB1cClcbiAgICAgICAgICAgIGBnaXQgcmVtb3RlIGFkZCB1cHN0cmVhbSBodHRwczovL2dpdGh1Yi5jb20vJHtwcm9wcy5zb3VyY2VSZXBvfS5naXRgLFxuICAgICAgICAgICAgJ2dpdCBmZXRjaCB1cHN0cmVhbSBcXCdyZWZzL3RhZ3MvKjpyZWZzL3RhZ3MvKlxcJycsXG4gICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdTZXR1cCBOb2RlLmpzJyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9zZXR1cC1ub2RlQHY0JyxcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAnbm9kZS12ZXJzaW9uJzogJ2x0cy8qJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0luc3RhbGwgZGVwZW5kZW5jaWVzJyxcbiAgICAgICAgICBydW46ICd5YXJuIGluc3RhbGwgLS1jaGVjay1maWxlcycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQnVtcCB0byByZWFsaXN0aWMgdmVyc2lvbnMnLFxuICAgICAgICAgIHJ1bjogJ3lhcm4gd29ya3NwYWNlcyBydW4gYnVtcCcsXG4gICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICBURVNUSU5HX0NBTkRJREFURTogJ3RydWUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnYnVpbGQnLFxuICAgICAgICAgIHJ1bjogJ25weCBwcm9qZW4gYnVpbGQnLFxuICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgdG8gcHJldmVudCBwcm9qZW4gZnJvbSByZXNldHRpbmcgdGhlIHZlcnNpb24gbnVtYmVycyB0b1xuICAgICAgICAgICAgLy8gMC4wLjAgZHVyaW5nIGl0cyBzeW50aGVzaXMuXG4gICAgICAgICAgICBSRUxFQVNFOiAndHJ1ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdVcGxvYWQgYXJ0aWZhY3QnLFxuICAgICAgICAgIHVzZXM6ICdhY3Rpb25zL3VwbG9hZC1hcnRpZmFjdEB2NC40LjAnLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgIG5hbWU6ICdidWlsZC1hcnRpZmFjdCcsXG4gICAgICAgICAgICBwYXRoOiAncGFja2FnZXMvKiovZGlzdC9qcy8qLnRneicsXG4gICAgICAgICAgICBvdmVyd3JpdGU6ICd0cnVlJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHZlcmRhY2Npb0NvbmZpZyA9IHtcbiAgICAgIHN0b3JhZ2U6ICcuL3N0b3JhZ2UnLFxuICAgICAgYXV0aDogeyBodHBhc3N3ZDogeyBmaWxlOiAnLi9odHBhc3N3ZCcgfSB9LFxuICAgICAgdXBsaW5rczogeyBucG1qczogeyB1cmw6ICdodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8nIH0gfSxcbiAgICAgIHBhY2thZ2VzOiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBwYWNrIG9mIHByb3BzLmxvY2FsUGFja2FnZXMpIHtcbiAgICAgIGNvbnN0IGFsbG93VXBzdHJlYW0gPSBwcm9wcy5hbGxvd1Vwc3RyZWFtVmVyc2lvbnM/LmluY2x1ZGVzKHBhY2spO1xuXG4gICAgICB2ZXJkYWNjaW9Db25maWcucGFja2FnZXNbcGFja10gPSB7XG4gICAgICAgIGFjY2VzczogJyRhbGwnLFxuICAgICAgICBwdWJsaXNoOiAnJGFsbCcsXG4gICAgICAgIHByb3h5OiBhbGxvd1Vwc3RyZWFtID8gJ25wbWpzJyA6ICdub25lJyxcbiAgICAgIH07XG4gICAgfTtcbiAgICB2ZXJkYWNjaW9Db25maWcucGFja2FnZXNbJyoqJ10gPSB7XG4gICAgICBhY2Nlc3M6ICckYWxsJyxcbiAgICAgIHByb3h5OiAnbnBtanMnLFxuICAgIH07XG5cbiAgICAvLyBiYXNoIG9ubHkgZXhwYW5kcyB7Li4ufSBpZiB0aGVyZSdzIGEgLCBpbiB0aGVyZSwgb3RoZXJ3aXNlIGl0IHdpbGwgbGVhdmUgdGhlXG4gICAgLy8gYnJhY2VzIGluIGxpdGVyYWxseS4gU28gd2UgbmVlZCB0byBkbyBjYXNlIGFuYWx5c2lzIGhlcmUuIFRoYW5rcywgSSBoYXRlIGl0LlxuICAgIGNvbnN0IHRhcmJhbGxCYXNoRXhwciA9IHByb3BzLmxvY2FsUGFja2FnZXMubGVuZ3RoID09PSAxXG4gICAgICA/IGBwYWNrYWdlcy8ke3Byb3BzLmxvY2FsUGFja2FnZXNbMF19L2Rpc3QvanMvKi50Z3pgXG4gICAgICA6IGBwYWNrYWdlcy97JHtwcm9wcy5sb2NhbFBhY2thZ2VzLmpvaW4oJywnKX19L2Rpc3QvanMvKi50Z3pgO1xuXG4gICAgLy8gV2UgY3JlYXRlIGEgbWF0cml4IGpvYiBmb3IgdGhlIHRlc3QuXG4gICAgLy8gVGhpcyBqb2Igd2lsbCBydW4gYWxsIHRoZSBkaWZmZXJlbnQgdGVzdCBzdWl0ZXMgaW4gcGFyYWxsZWwuXG4gICAgY29uc3QgSk9CX0lOVEVHX01BVFJJWCA9ICdpbnRlZ19tYXRyaXgnO1xuICAgIHJ1blRlc3RzV29ya2Zsb3cuYWRkSm9iKEpPQl9JTlRFR19NQVRSSVgsIHtcbiAgICAgIGVudmlyb25tZW50OiBwcm9wcy50ZXN0RW52aXJvbm1lbnQsXG4gICAgICBydW5zT246IFtwcm9wcy50ZXN0UnVuc09uXSxcbiAgICAgIG5lZWRzOiBbSk9CX1BSRVBBUkVdLFxuICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgY29udGVudHM6IGdpdGh1Yi53b3JrZmxvd3MuSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgICBpZFRva2VuOiBnaXRodWIud29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICB9LFxuICAgICAgZW52OiB7XG4gICAgICAgIC8vIE90aGVyd2lzZSBNYXZlbiBpcyB0b28gbm9pc3lcbiAgICAgICAgTUFWRU5fQVJHUzogJy0tbm8tdHJhbnNmZXItcHJvZ3Jlc3MnLFxuICAgICAgICAvLyBUaGlzIGlzIG5vdCBhY3R1YWxseSBhIGNhbmFyeSwgYnV0IHRoaXMgcHJldmVudHMgdGhlIHRlc3RzIGZyb20gbWFraW5nXG4gICAgICAgIC8vIGFzc3VtcHRpb25zIGFib3V0IHRoZSBhdmFpbGFiaWxpdHkgb2Ygc291cmNlIHBhY2thZ2VzLlxuICAgICAgICBJU19DQU5BUlk6ICd0cnVlJyxcbiAgICAgICAgQ0k6ICd0cnVlJyxcbiAgICAgICAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgbmV3IHZlcnNpb25pbmcgb2YgQGF3cy1jZGsvY2xpLWxpYi1hbHBoYVxuICAgICAgICAvLyBtYXRjaGVzIHRoZSBDTEkgYW5kIG5vdCB0aGUgZnJhbWV3b3JrLlxuICAgICAgICBDTElfTElCX1ZFUlNJT05fTUlSUk9SU19DTEk6ICd0cnVlJyxcbiAgICAgIH0sXG4gICAgICAvLyBEb24ndCBydW4gYWdhaW4gb24gdGhlIG1lcmdlIHF1ZXVlLCB3ZSBhbHJlYWR5IGdvdCBjb25maXJtYXRpb24gdGhhdCBpdCB3b3JrcyBhbmQgdGhlXG4gICAgICAvLyB0ZXN0cyBhcmUgcXVpdGUgZXhwZW5zaXZlLlxuICAgICAgaWY6IGBnaXRodWIuZXZlbnRfbmFtZSAhPSAnbWVyZ2VfZ3JvdXAnICYmICR7Tk9UX0ZMQUdHRURfRVhQUn1gLFxuICAgICAgc3RyYXRlZ3k6IHtcbiAgICAgICAgZmFpbEZhc3Q6IGZhbHNlLFxuICAgICAgICBtYXRyaXg6IHtcbiAgICAgICAgICBkb21haW46IHtcbiAgICAgICAgICAgIHN1aXRlOiBbXG4gICAgICAgICAgICAgICdjbGktaW50ZWctdGVzdHMnLFxuICAgICAgICAgICAgICAnaW5pdC1jc2hhcnAnLFxuICAgICAgICAgICAgICAnaW5pdC1mc2hhcnAnLFxuICAgICAgICAgICAgICAnaW5pdC1nbycsXG4gICAgICAgICAgICAgICdpbml0LWphdmEnLFxuICAgICAgICAgICAgICAnaW5pdC1qYXZhc2NyaXB0JyxcbiAgICAgICAgICAgICAgJ2luaXQtcHl0aG9uJyxcbiAgICAgICAgICAgICAgJ2luaXQtdHlwZXNjcmlwdC1hcHAnLFxuICAgICAgICAgICAgICAnaW5pdC10eXBlc2NyaXB0LWxpYicsXG4gICAgICAgICAgICAgICd0b29sLWludGVncmF0aW9ucycsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdEb3dubG9hZCBidWlsZCBhcnRpZmFjdHMnLFxuICAgICAgICAgIHVzZXM6ICdhY3Rpb25zL2Rvd25sb2FkLWFydGlmYWN0QHY0JyxcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICBuYW1lOiAnYnVpbGQtYXJ0aWZhY3QnLFxuICAgICAgICAgICAgcGF0aDogJ3BhY2thZ2VzJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ1NldCB1cCBKREsgMTgnLFxuICAgICAgICAgIGlmOiAnbWF0cml4LnN1aXRlID09IFxcJ2luaXQtamF2YVxcJyB8fCBtYXRyaXguc3VpdGUgPT0gXFwnY2xpLWludGVnLXRlc3RzXFwnJyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9zZXR1cC1qYXZhQHY0JyxcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAnamF2YS12ZXJzaW9uJzogJzE4JyxcbiAgICAgICAgICAgICdkaXN0cmlidXRpb24nOiAnY29ycmV0dG8nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQXV0aGVudGljYXRlIFZpYSBPSURDIFJvbGUnLFxuICAgICAgICAgIGlkOiAnY3JlZHMnLFxuICAgICAgICAgIHVzZXM6ICdhd3MtYWN0aW9ucy9jb25maWd1cmUtYXdzLWNyZWRlbnRpYWxzQHY0JyxcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAnYXdzLXJlZ2lvbic6ICd1cy1lYXN0LTEnLFxuICAgICAgICAgICAgJ3JvbGUtZHVyYXRpb24tc2Vjb25kcyc6IDQgKiA2MCAqIDYwLFxuICAgICAgICAgICAgLy8gRXhwZWN0IHRoaXMgaW4gRW52aXJvbm1lbnQgVmFyaWFibGVzXG4gICAgICAgICAgICAncm9sZS10by1hc3N1bWUnOiAnJHt7IHZhcnMuQVdTX1JPTEVfVE9fQVNTVU1FX0ZPUl9URVNUSU5HIH19JyxcbiAgICAgICAgICAgICdyb2xlLXNlc3Npb24tbmFtZSc6ICdydW4tdGVzdHNAYXdzLWNkay1jbGktaW50ZWcnLFxuICAgICAgICAgICAgJ291dHB1dC1jcmVkZW50aWFscyc6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgZm9yIHRoZSBpbml0IHRlc3RzIHRvIHN1Y2NlZWQsIHRoZXkgc2V0IHVwIGEgZ2l0IHJlcG8uXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnU2V0IGdpdCBpZGVudGl0eScsXG4gICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAnZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgXCJhd3MtY2RrLWNsaS1pbnRlZ1wiJyxcbiAgICAgICAgICAgICdnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgXCJub3JlcGx5QGV4YW1wbGUuY29tXCInLFxuICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnSW5zdGFsbCBWZXJkYWNjaW8nLFxuICAgICAgICAgIHJ1bjogJ25wbSBpbnN0YWxsIC1nIHZlcmRhY2NpbyBwbTInLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0NyZWF0ZSBWZXJkYWNjaW8gY29uZmlnJyxcbiAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICdta2RpciAtcCAkSE9NRS8uY29uZmlnL3ZlcmRhY2NpbycsXG4gICAgICAgICAgICBgZWNobyAnJHtKU09OLnN0cmluZ2lmeSh2ZXJkYWNjaW9Db25maWcpfScgPiAkSE9NRS8uY29uZmlnL3ZlcmRhY2Npby9jb25maWcueWFtbGAsXG4gICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdTdGFydCBWZXJkYWNjaW8nLFxuICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgJ3BtMiBzdGFydCB2ZXJkYWNjaW8gLS0gLS1jb25maWcgJEhPTUUvLmNvbmZpZy92ZXJkYWNjaW8vY29uZmlnLnlhbWwnLFxuICAgICAgICAgICAgJ3NsZWVwIDUgIyBXYWl0IGZvciBWZXJkYWNjaW8gdG8gc3RhcnQnLFxuICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQ29uZmlndXJlIG5wbSB0byB1c2UgbG9jYWwgcmVnaXN0cnknLFxuICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgLy8gVGhpcyB0b2tlbiBpcyBhIGJvZ3VzIHRva2VuLiBJdCBkb2Vzbid0IHJlcHJlc2VudCBhbnkgYWN0dWFsIHNlY3JldCwgaXQganVzdCBuZWVkcyB0byBleGlzdC5cbiAgICAgICAgICAgICdlY2hvIFxcJy8vbG9jYWxob3N0OjQ4NzMvOl9hdXRoVG9rZW49XCJNV1JqTkRVM09URTFOVGxqWVdVeU9URmtNV0prT0dVeVlUSXdaV013TlRJNllUZ3daamt5TkRFME56Z3dZV1F6TlE9PVwiXFwnID4gfi8ubnBtcmMnLFxuICAgICAgICAgICAgJ2VjaG8gXFwncmVnaXN0cnk9aHR0cDovL2xvY2FsaG9zdDo0ODczL1xcJyA+PiB+Ly5ucG1yYycsXG4gICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdGaW5kIGFuIGxvY2FsbHkgcHVibGlzaCBhbGwgdGFyYmFsbHMnLFxuICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgYGZvciBwa2cgaW4gJHt0YXJiYWxsQmFzaEV4cHJ9OyBkb2AsXG4gICAgICAgICAgICAnICBucG0gcHVibGlzaCAkcGtnJyxcbiAgICAgICAgICAgICdkb25lJyxcbiAgICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0Rvd25sb2FkIGFuZCBpbnN0YWxsIHRoZSB0ZXN0IGFydGlmYWN0JyxcbiAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICducG0gaW5zdGFsbCBAYXdzLWNkay10ZXN0aW5nL2NsaS1pbnRlZycsXG4gICAgICAgICAgICAvLyBNb3ZlIHRoZSBpbnN0YWxsZWQgZmlsZXMgdG8gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LCBiZWNhdXNlIGFzXG4gICAgICAgICAgICAvLyBjdXJyZW50bHkgY29uZmlndXJlZCB0aGUgdGVzdHMgd29uJ3QgcnVuIGZyb20gYW4gaW5zdGFsbGVkXG4gICAgICAgICAgICAvLyBub2RlX21vZHVsZXMgZGlyZWN0b3J5LlxuICAgICAgICAgICAgJ212IC4vbm9kZV9tb2R1bGVzL0Bhd3MtY2RrLXRlc3RpbmcvY2xpLWludGVnLyogLicsXG4gICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdEZXRlcm1pbmUgbGF0ZXN0IHBhY2thZ2UgdmVyc2lvbnMnLFxuICAgICAgICAgIGlkOiAndmVyc2lvbnMnLFxuICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgJ0NMSV9WRVJTSU9OPSQoY2QgJHtUTVBESVI6LS90bXB9ICYmIG5wbSB2aWV3IGF3cy1jZGsgdmVyc2lvbiknLFxuICAgICAgICAgICAgJ2VjaG8gXCJDTEkgdmVyc2lvbjogJHtDTElfVkVSU0lPTn1cIicsXG4gICAgICAgICAgICAnZWNobyBcImNsaV92ZXJzaW9uPSR7Q0xJX1ZFUlNJT059XCIgPj4gJEdJVEhVQl9PVVRQVVQnLFxuICAgICAgICAgICAgJ0xJQl9WRVJTSU9OPSQoY2QgJHtUTVBESVI6LS90bXB9ICYmIG5wbSB2aWV3IGF3cy1jZGstbGliIHZlcnNpb24pJyxcbiAgICAgICAgICAgICdlY2hvIFwibGliIHZlcnNpb246ICR7TElCX1ZFUlNJT059XCInLFxuICAgICAgICAgICAgJ2VjaG8gXCJsaWJfdmVyc2lvbj0ke0xJQl9WRVJTSU9OfVwiID4+ICRHSVRIVUJfT1VUUFVUJyxcbiAgICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ1J1biB0aGUgdGVzdCBzdWl0ZTogJHt7IG1hdHJpeC5zdWl0ZSB9fScsXG4gICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAnYmluL3J1bi1zdWl0ZSAtLXVzZS1jbGktcmVsZWFzZT0ke3sgc3RlcHMudmVyc2lvbnMub3V0cHV0cy5jbGlfdmVyc2lvbiB9fSAtLWZyYW1ld29yay12ZXJzaW9uPSR7eyBzdGVwcy52ZXJzaW9ucy5vdXRwdXRzLmxpYl92ZXJzaW9uIH19ICR7eyBtYXRyaXguc3VpdGUgfX0nLFxuICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICAvLyBDb25jdXJyZW5jeSBvbmx5IGZvciBsb25nLXJ1bm5pbmcgY2xpLWludGVnLXRlc3RzXG4gICAgICAgICAgICBKRVNUX1RFU1RfQ09OQ1VSUkVOVDogXCIke3sgbWF0cml4LnN1aXRlID09ICdjbGktaW50ZWctdGVzdHMnICYmICd0cnVlJyB8fCAnZmFsc2UnIH19XCIsXG4gICAgICAgICAgICBKU0lJX1NJTEVOQ0VfV0FSTklOR19ERVBSRUNBVEVEX05PREVfVkVSU0lPTjogJ3RydWUnLFxuICAgICAgICAgICAgSlNJSV9TSUxFTkNFX1dBUk5JTkdfVU5URVNURURfTk9ERV9WRVJTSU9OOiAndHJ1ZScsXG4gICAgICAgICAgICBKU0lJX1NJTEVOQ0VfV0FSTklOR19LTk9XTl9CUk9LRU5fTk9ERV9WRVJTSU9OOiAndHJ1ZScsXG4gICAgICAgICAgICBET0NLRVJIVUJfRElTQUJMRUQ6ICd0cnVlJyxcbiAgICAgICAgICAgIEFXU19SRUdJT05TOiBbJ3VzLWVhc3QtMicsICdldS13ZXN0LTEnLCAnZXUtbm9ydGgtMScsICdhcC1ub3J0aGVhc3QtMScsICdhcC1zb3V0aC0xJ10uam9pbignLCcpLFxuICAgICAgICAgICAgQ0RLX01BSk9SX1ZFUlNJT046ICcyJyxcbiAgICAgICAgICAgIFJFTEVBU0VfVEFHOiAnbGF0ZXN0JyxcbiAgICAgICAgICAgIEdJVEhVQl9UT0tFTjogJyR7eyBzZWNyZXRzLkdJVEhVQl9UT0tFTiB9fScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICAvLyBBZGQgYSBqb2IgdGhhdCBjb2xsYXRlcyBhbGwgbWF0cml4IGpvYnMgaW50byBhIHNpbmdsZSBzdGF0dXNcbiAgICAvLyBUaGlzIGlzIHJlcXVpcmVkIHNvIHRoYXQgd2UgY2FuIHNldHVwIHJlcXVpcmVkIHN0YXR1cyBjaGVja3NcbiAgICAvLyBhbmQgaWYgd2UgZXZlciBjaGFuZ2UgdGhlIHRlc3QgbWF0cml4LCB3ZSBkb24ndCBuZWVkIHRvIHVwZGF0ZVxuICAgIC8vIHRoZSBzdGF0dXMgY2hlY2sgY29uZmlndXJhdGlvbi5cbiAgICBydW5UZXN0c1dvcmtmbG93LmFkZEpvYignaW50ZWcnLCB7XG4gICAgICBwZXJtaXNzaW9uczoge30sXG4gICAgICBydW5zT246IFtwcm9wcy50ZXN0UnVuc09uXSxcbiAgICAgIG5lZWRzOiBbSk9CX1BSRVBBUkUsIEpPQl9JTlRFR19NQVRSSVhdLFxuICAgICAgaWY6ICdhbHdheXMoKScsXG4gICAgICBzdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0ludGVnIHRlc3QgcmVzdWx0JyxcbiAgICAgICAgICBydW46IGBlY2hvIFxcJHt7IG5lZWRzLiR7Sk9CX0lOVEVHX01BVFJJWH0ucmVzdWx0IH19YCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIC8vIERvbid0IGZhaWwgdGhlIGpvYiBpZiB0aGUgdGVzdCB3YXMgc3VjY2Vzc2Z1bCBvciBpbnRlbnRpb25hbGx5IHNraXBwZWRcbiAgICAgICAgICBpZjogYFxcJHt7ICEoY29udGFpbnMoZnJvbUpTT04oJ1tcInN1Y2Nlc3NcIiwgXCJza2lwcGVkXCJdJyksIG5lZWRzLiR7Sk9CX1BSRVBBUkV9LnJlc3VsdCkgJiYgY29udGFpbnMoZnJvbUpTT04oJ1tcInN1Y2Nlc3NcIiwgXCJza2lwcGVkXCJdJyksIG5lZWRzLiR7Sk9CX0lOVEVHX01BVFJJWH0ucmVzdWx0KSkgfX1gLFxuICAgICAgICAgIG5hbWU6ICdTZXQgc3RhdHVzIGJhc2VkIG9uIG1hdHJpeCBqb2InLFxuICAgICAgICAgIHJ1bjogJ2V4aXQgMScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
package/lib/cdk.js CHANGED
@@ -55,7 +55,7 @@ class CdkConstructLibrary extends projen_1.awscdk.AwsCdkConstructLibrary {
55
55
  }
56
56
  exports.CdkConstructLibrary = CdkConstructLibrary;
57
57
  _a = JSII_RTTI_SYMBOL_1;
58
- CdkConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdkConstructLibrary", version: "0.2.5" };
58
+ CdkConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdkConstructLibrary", version: "0.2.7" };
59
59
  /**
60
60
  * Create a Cdk TypeScript Project
61
61
  *
@@ -71,5 +71,5 @@ class CdkTypeScriptProject extends projen_1.typescript.TypeScriptProject {
71
71
  }
72
72
  exports.CdkTypeScriptProject = CdkTypeScriptProject;
73
73
  _b = JSII_RTTI_SYMBOL_1;
74
- CdkTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdkTypeScriptProject", version: "0.2.5" };
74
+ CdkTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdkTypeScriptProject", version: "0.2.7" };
75
75
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Nkay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFpRDtBQUdqRCxxREFBd0Y7QUFDeEYsaURBQTZDO0FBQzdDLHVDQUFvQztBQUdwQzs7OztHQUlHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxlQUFNLENBQUMsc0JBQXNCO0lBQzVELE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxPQUFtQztRQUN0RSxNQUFNLE1BQU0sR0FBYSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzQixNQUFNLENBQUMsSUFBSSxDQUFDLCtEQUErRCxDQUFDLENBQUM7UUFDL0UsQ0FBQztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDNUIsTUFBTSxDQUFDLElBQUksQ0FBQyw4REFBOEQsQ0FBQyxDQUFDO1FBQzlFLENBQUM7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsOERBQThELENBQUMsQ0FBQztRQUM5RSxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN6QixNQUFNLENBQUMsSUFBSSxDQUFDLDJEQUEyRCxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFJRCxZQUFZLE9BQW1DO1FBQzdDLElBQUksT0FBTyxDQUFDLFNBQVMsS0FBSyxZQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQy9DLE1BQU0sTUFBTSxHQUFHLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xFLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDdEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxvRkFBb0YsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDN0gsQ0FBQztRQUNILENBQUM7UUFFRCxNQUFNLElBQUksR0FBRyxJQUFBLDBDQUF5QixFQUFDO1lBQ3JDLEdBQUcsT0FBTztZQUNWLGtEQUFrRDtZQUNsRCxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsYUFBYTtTQUN4RCxDQUFDLENBQUM7UUFFSCxLQUFLLENBQUM7WUFDSixTQUFTLEVBQUUsWUFBRyxDQUFDLFNBQVMsQ0FBQyxZQUFZO1lBQ3JDLHNEQUFzRDtZQUN0RCxhQUFhLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDOUIsR0FBRyxJQUFJO1NBQ1IsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBRTVCLElBQUksaUJBQU8sQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBQzFDLElBQUksMEJBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixJQUFBLDBDQUF5QixFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDOztBQTdDSCxrREE4Q0M7OztBQUlEOzs7O0dBSUc7QUFDSCxNQUFhLG9CQUFxQixTQUFRLG1CQUFVLENBQUMsaUJBQWlCO0lBR3BFLFlBQVksT0FBb0M7UUFDOUMsTUFBTSxJQUFJLEdBQUcsSUFBQSwwQ0FBeUIsRUFBQyxPQUFPLENBQUMsQ0FBQztRQUNoRCxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDWixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFNUIsSUFBQSwwQ0FBeUIsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDeEMsQ0FBQzs7QUFUSCxvREFVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF3c2NkaywgY2RrLCB0eXBlc2NyaXB0IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IENka0NvbW1vbk9wdGlvbnMgfSBmcm9tICcuL2Nkay1jb21tb24tb3B0aW9ucyc7XG5pbXBvcnQgeyBDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyB9IGZyb20gJy4vY2RrLWNvbnN0cnVjdC1saWJyYXJ5LW9wdGlvbnMnO1xuaW1wb3J0IHsgY29uZmlndXJlQ29tbW9uQ29tcG9uZW50cywgd2l0aENvbW1vbk9wdGlvbnNEZWZhdWx0cyB9IGZyb20gJy4vY29tbW9uLW9wdGlvbnMnO1xuaW1wb3J0IHsgSW50ZWdSdW5uZXIgfSBmcm9tICcuL2ludGVnLXJ1bm5lcic7XG5pbXBvcnQgeyBSb3NldHRhIH0gZnJvbSAnLi9yb3NldHRhJztcblxuXG4vKipcbiAqIENyZWF0ZSBhIENkayBDb25zdHJ1Y3QgTGlicmFyeSBQcm9qZWN0XG4gKlxuICogQHBqaWQgY2RrLWNvbnN0cnVjdC1saWJcbiAqL1xuZXhwb3J0IGNsYXNzIENka0NvbnN0cnVjdExpYnJhcnkgZXh0ZW5kcyBhd3NjZGsuQXdzQ2RrQ29uc3RydWN0TGlicmFyeSB7XG4gIHByaXZhdGUgc3RhdGljIHN0YWJpbGl0eVJlcXVpcmVtZW50cyhvcHRpb25zOiBDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucyk6IHN0cmluZ1tdIHtcbiAgICBjb25zdCBlcnJvcnM6IHN0cmluZ1tdID0gW107XG4gICAgaWYgKCFvcHRpb25zLnB1Ymxpc2hUb1B5cGkpIHtcbiAgICAgIGVycm9ycy5wdXNoKCdQdWJsaXNoaW5nIEVycm9yOiBwcm9qZWN0IG5vdCBjb25maWd1cmVkIHRvIHB1Ymxpc2ggdG8gUHl0aG9uJyk7XG4gICAgfVxuICAgIGlmICghb3B0aW9ucy5wdWJsaXNoVG9NYXZlbikge1xuICAgICAgZXJyb3JzLnB1c2goJ1B1Ymxpc2hpbmcgRXJyb3I6IHByb2plY3Qgbm90IGNvbmZpZ3VyZWQgdG8gcHVibGlzaCB0byBNYXZlbicpO1xuICAgIH1cbiAgICBpZiAoIW9wdGlvbnMucHVibGlzaFRvTnVnZXQpIHtcbiAgICAgIGVycm9ycy5wdXNoKCdQdWJsaXNoaW5nIEVycm9yOiBwcm9qZWN0IG5vdCBjb25maWd1cmVkIHRvIHB1Ymxpc2ggdG8gTnVnZXQnKTtcbiAgICB9XG4gICAgaWYgKCFvcHRpb25zLnB1Ymxpc2hUb0dvKSB7XG4gICAgICBlcnJvcnMucHVzaCgnUHVibGlzaGluZyBFcnJvcjogcHJvamVjdCBub3QgY29uZmlndXJlZCB0byBwdWJsaXNoIHRvIEdvJyk7XG4gICAgfVxuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcHJpdmF0ZTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucykge1xuICAgIGlmIChvcHRpb25zLnN0YWJpbGl0eSA9PT0gY2RrLlN0YWJpbGl0eS5TVEFCTEUpIHtcbiAgICAgIGNvbnN0IGVycm9ycyA9IENka0NvbnN0cnVjdExpYnJhcnkuc3RhYmlsaXR5UmVxdWlyZW1lbnRzKG9wdGlvbnMpO1xuICAgICAgaWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIHByb2plY3QgZG9lcyBub3QgcGFzcyBzdGFiaWxpdHkgcmVxdWlyZW1lbnRzIGR1ZSB0byB0aGUgZm9sbG93aW5nIGVycm9yczpcXG4gICR7ZXJyb3JzLmpvaW4oJ1xcbiAgJyl9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0cyA9IHdpdGhDb21tb25PcHRpb25zRGVmYXVsdHMoe1xuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIC8vIGFsc28gYWNjZXB0IHRoZSBkZXByZWNhdGVkIHJlcG9zaXRvcnlVcmwgb3B0aW9uXG4gICAgICByZXBvc2l0b3J5OiBvcHRpb25zLnJlcG9zaXRvcnkgPz8gb3B0aW9ucy5yZXBvc2l0b3J5VXJsLFxuICAgIH0pO1xuXG4gICAgc3VwZXIoe1xuICAgICAgc3RhYmlsaXR5OiBjZGsuU3RhYmlsaXR5LkVYUEVSSU1FTlRBTCxcbiAgICAgIC8vIHVwc3RyZWFtIEpzaWlQcm9qZWN0IHVzZXMgYSBkaWZmZXJlbnQgbmFtZSBmb3IgdGhpc1xuICAgICAgcmVwb3NpdG9yeVVybDogb3B0cy5yZXBvc2l0b3J5LFxuICAgICAgLi4ub3B0cyxcbiAgICB9KTtcbiAgICB0aGlzLnByaXZhdGUgPSBvcHRzLnByaXZhdGU7XG5cbiAgICBuZXcgUm9zZXR0YSh0aGlzLCBvcHRpb25zLnJvc2V0dGFPcHRpb25zKTtcbiAgICBuZXcgSW50ZWdSdW5uZXIodGhpcyk7XG4gICAgY29uZmlndXJlQ29tbW9uQ29tcG9uZW50cyh0aGlzLCBvcHRzKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENka1R5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3RPcHRpb25zLCBDZGtDb21tb25PcHRpb25zIHsgfVxuXG4vKipcbiAqIENyZWF0ZSBhIENkayBUeXBlU2NyaXB0IFByb2plY3RcbiAqXG4gKiBAcGppZCBjZGstdHMtcHJvalxuICovXG5leHBvcnQgY2xhc3MgQ2RrVHlwZVNjcmlwdFByb2plY3QgZXh0ZW5kcyB0eXBlc2NyaXB0LlR5cGVTY3JpcHRQcm9qZWN0IHtcbiAgcHVibGljIHJlYWRvbmx5IHByaXZhdGU6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrVHlwZVNjcmlwdFByb2plY3RPcHRpb25zKSB7XG4gICAgY29uc3Qgb3B0cyA9IHdpdGhDb21tb25PcHRpb25zRGVmYXVsdHMob3B0aW9ucyk7XG4gICAgc3VwZXIob3B0cyk7XG4gICAgdGhpcy5wcml2YXRlID0gb3B0cy5wcml2YXRlO1xuXG4gICAgY29uZmlndXJlQ29tbW9uQ29tcG9uZW50cyh0aGlzLCBvcHRzKTtcbiAgfVxufVxuIl19
package/lib/cdklabs.js CHANGED
@@ -120,7 +120,7 @@ class CdklabsConstructLibrary extends cdk_1.CdkConstructLibrary {
120
120
  }
121
121
  exports.CdklabsConstructLibrary = CdklabsConstructLibrary;
122
122
  _a = JSII_RTTI_SYMBOL_1;
123
- CdklabsConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdklabsConstructLibrary", version: "0.2.5" };
123
+ CdklabsConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdklabsConstructLibrary", version: "0.2.7" };
124
124
  /**
125
125
  * Create a Cdklabs TypeScript Project
126
126
  *
@@ -140,7 +140,7 @@ class CdklabsTypeScriptProject extends cdk_1.CdkTypeScriptProject {
140
140
  }
141
141
  exports.CdklabsTypeScriptProject = CdklabsTypeScriptProject;
142
142
  _b = JSII_RTTI_SYMBOL_1;
143
- CdklabsTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdklabsTypeScriptProject", version: "0.2.5" };
143
+ CdklabsTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdklabsTypeScriptProject", version: "0.2.7" };
144
144
  /**
145
145
  * Create a Cdklabs Jsii Project
146
146
  *
@@ -163,5 +163,5 @@ class CdklabsJsiiProject extends jsii_1.CdkJsiiProject {
163
163
  }
164
164
  exports.CdklabsJsiiProject = CdklabsJsiiProject;
165
165
  _c = JSII_RTTI_SYMBOL_1;
166
- CdklabsJsiiProject[_c] = { fqn: "cdklabs-projen-project-types.CdklabsJsiiProject", version: "0.2.5" };
166
+ CdklabsJsiiProject[_c] = { fqn: "cdklabs-projen-project-types.CdklabsJsiiProject", version: "0.2.7" };
167
167
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrbGFicy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jZGtsYWJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQWdDO0FBQ2hDLHNEQUF1RDtBQUN2RCwwQ0FBNEM7QUFFNUMsSUFBWSxZQUtYO0FBTEQsV0FBWSxZQUFZO0lBQ3RCLG1EQUFNLENBQUE7SUFDTiwrQ0FBSSxDQUFBO0lBQ0osbURBQU0sQ0FBQTtJQUNOLDJDQUFFLENBQUE7QUFDSixDQUFDLEVBTFcsWUFBWSw0QkFBWixZQUFZLFFBS3ZCO0FBQUEsQ0FBQztBQUVGLCtCQUllO0FBR2YsaUNBQXdDO0FBQ3hDLHdDQUF3QztBQUN4QyxtQ0FBMkM7QUFFM0Msd0VBQXdFO0FBQ3hFLE1BQU0sa0JBQWtCLEdBQUc7SUFDekIsTUFBTSxFQUFFLHFCQUFxQjtJQUM3QixVQUFVLEVBQUUscUJBQXFCO0lBQ2pDLGFBQWEsRUFBRSx3QkFBd0I7SUFDdkMsV0FBVyxFQUFFLHdCQUF3QjtJQUNyQyxrQkFBa0IsRUFBRSxJQUFJO0NBQ3pCLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUE0QztJQUNuRSxtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLG1CQUFtQixFQUFFLE9BQU87SUFDNUIsV0FBVyxFQUFFO1FBQ1gsY0FBYyxFQUFFLDJCQUFjLENBQUMsTUFBTTtLQUN0QztJQUNELG9CQUFvQixFQUFFLE1BQU07SUFDNUIsbUZBQW1GO0lBQ25GLHdGQUF3RjtJQUN4RixvREFBb0Q7SUFDcEQsaUJBQWlCLEVBQUUsMEJBQWlCLENBQUMsZ0JBQWdCLEVBQUU7SUFDdkQsV0FBVyxFQUFFLE1BQU07Q0FDcEIsQ0FBQztBQUVGLFNBQVMsK0JBQStCLENBQUMsY0FBc0IsRUFBRSxLQUFzQjtJQUNyRixNQUFNLGVBQWUsR0FBRyxJQUFBLGVBQVEsRUFBQyxjQUFjLENBQUMsQ0FBQztJQUVqRCxPQUFPLHdCQUF3QixDQUFDLFNBQVMsRUFB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QU0sYUFBYSxHQUFHLElBQUEsZ0JBQVMsRUFBQztZQUM5QixFQUFFO1lBQ0YsbUJBQW1CO1lBQ25CLDZCQUE2QjtZQUM3QixPQUFPO1lBQ1Asa0JBQWtCO1NBQ25CLENBQThCLENBQUM7UUFFaEMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7O0FBZEgsZ0RBZUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBiYXNlbmFtZSB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgVXBkYXRlU25hcHNob3QgfSBmcm9tICdwcm9qZW4vbGliL2phdmFzY3JpcHQnO1xuaW1wb3J0IHsgZGVlcE1lcmdlIH0gZnJvbSAncHJvamVuL2xpYi91dGlsJztcblxuZXhwb3J0IGVudW0gSnNpaUxhbmd1YWdlIHtcbiAgUFlUSE9OLFxuICBKQVZBLFxuICBET1RORVQsXG4gIEdPLFxufTtcblxuaW1wb3J0IHtcbiAgQ2RrQ29uc3RydWN0TGlicmFyeSxcbiAgQ2RrVHlwZVNjcmlwdFByb2plY3QsXG4gIENka1R5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyxcbn0gZnJvbSAnLi9jZGsnO1xuaW1wb3J0IHsgQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnMgfSBmcm9tICcuL2Nkay1jb25zdHJ1Y3QtbGlicmFyeS1vcHRpb25zJztcbmltcG9ydCB7IENka0pzaWlQcm9qZWN0T3B0aW9ucyB9IGZyb20gJy4vY2RrLWpzaWktb3B0aW9ucyc7XG5pbXBvcnQgeyBDZGtKc2lpUHJvamVjdCB9IGZyb20gJy4vanNpaSc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L29yZGVyXG5pbXBvcnQgeyBSZWxlYXNhYmxlQ29tbWl0cyB9IGZyb20gJ3Byb2plbic7XG5cbi8vIG92ZXJyaWRlIHRoZXNlIHByb3BlcnRpZXMgbm8gbWF0dGVyIHdoYXQgdmFsdWVzIGFyZSBnaXZlbiBjbGllbnQtc2lkZVxuY29uc3QgY2RrbGFic0ZvcmNlZFByb3BzID0ge1xuICBhdXRob3I6ICdBbWF6b24gV2ViIFNlcnZpY2VzJyxcbiAgYXV0aG9yTmFtZTogJ0FtYXpvbiBXZWIgU2VydmljZXMnLFxuICBhdXRob3JBZGRyZXNzOiAnYXdzLWNkay1kZXZAYW1hem9uLmNvbScsXG4gIGF1dGhvckVtYWlsOiAnYXdzLWNkay1kZXZAYW1hem9uLmNvbScsXG4gIGF1dGhvck9yZ2FuaXphdGlvbjogdHJ1ZSxcbn07XG5cbmNvbnN0IGNka2xhYnNEZWZhdWx0UHJvcHM6IFBhcnRpYWw8Q2RrbGFic0NvbnN0cnVjdExpYnJhcnlPcHRpb25zPiA9IHtcbiAgYXV0b0FwcHJvdmVVcGdyYWRlczogdHJ1ZSxcbiAgbWluTm9kZVZlcnNpb246ICcxOC4xMi4wJyxcbiAgd29ya2Zsb3dOb2RlVmVyc2lvbjogJ2x0cy8qJyxcbiAgamVzdE9wdGlvbnM6IHtcbiAgICB1cGRhdGVTbmFwc2hvdDogVXBkYXRlU25hcHNob3QuQUxXQVlTLFxuICB9LFxuICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogJ21haW4nLFxuICAvLyBEZWZhdWx0IGlzIHRvIHJlbGVhc2Ugb25seSBmZWF0dXJlcyBhbmQgZml4ZXMuIElmIHdlIGRvbid0IGRvIHRoaXMsIGV2ZXJ5IHByb2plblxuICAvLyBwcm9qZWN0IHdpbGwgYmFzaWNhbGx5IHJlbGVhc2UgZXZlcnkgZGF5LCBiZWNhdXNlIGl0IHdpbGwgc2VlIGRldkRlcGVuZGVuY2llcyB1cGRhdGVzXG4gIC8vIGV2ZXJ5IGRheSwgZXZlbiB0aG91Z2ggdGhvc2UgYXJlIG5vdCBpbnRlcmVzdGluZy5cbiAgcmVsZWFzYWJsZUNvbW1pdHM6IFJlbGVhc2FibGVDb21taXRzLmZlYXR1cmVzQW5kRml4ZXMoKSxcbiAganNpaVZlcnNpb246ICd+NS43Jyxcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdHMobnBtUGFja2FnZU5hbWU6IHN0cmluZywgbGFuZ3M/OiBKc2lpTGFuZ3VhZ2VbXSkge1xuICBjb25zdCBwYWNrYWdlQmFzZW5hbWUgPSBiYXNlbmFtZShucG1QYWNrYWdlTmFtZSk7XG5cbiAgcmV0dXJuIGNyZWF0ZVB1Ymxpc2hpbmdEZWZhdWx0cygnY2RrbGFicycsIHBhY2thZ2VCYXNlbmFtZSwgQm9vbGVhbihwYWNrYWdlQmFzZW5hbWUgIT09IG5wbVBhY2thZ2VOYW1lKSwgbGFuZ3MpO1xufTtcblxuZnVuY3Rpb24gY3JlYXRlUHVibGlzaGluZ0RlZmF1bHRzKG5hbWVzcGFjZTogc3RyaW5nLCBwYWNrYWdlQmFzZW5hbWU6IHN0cmluZywgYWx3YXlzVXNlTmFtZXNwYWNlID0gdHJ1ZSwgbGFuZ3M/OiBKc2lpTGFuZ3VhZ2VbXSkge1xuICBjb25zdCBwaVB5UHJlZml4ID0gYWx3YXlzVXNlTmFtZXNwYWNlID8gYCR7bmFtZXNwYWNlfS5gIDogJyc7XG4gIGNvbnN0IG51Z2V0UHJlZml4ID0gYWx3YXlzVXNlTmFtZXNwYWNlID8gYCR7dXBwZXJDYXNlTmFtZShuYW1lc3BhY2UpfS5gIDogYCR7dXBwZXJDYXNlTmFtZShuYW1lc3BhY2UpfWA7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5wdWJsaXNoTGFuZ3VhZ2VXcmFwcGVyKEpzaWlMYW5ndWFnZS5QWVRIT04sIHtcbiAgICAgIHB1Ymxpc2hUb1B5cGk6IHtcbiAgICAgICAgZGlzdE5hbWU6IGAke3BpUHlQcmVmaXh9JHtwYWNrYWdlQmFzZW5hbWV9YCxcbiAgICAgICAgbW9kdWxlOiBgJHtwaVB5UHJlZml4fSR7Y2hhbmdlRGVsaW1pdGVyKHBhY2thZ2VCYXNlbmFtZSwgJ18nKX1gLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi5wdWJsaXNoTGFuZ3VhZ2VXcmFwcGVyKEpzaWlMYW5ndWFnZS5KQVZBLCB7XG4gICAgICBwdWJsaXNoVG9NYXZlbjoge1xuICAgICAgICBqYXZhUGFja2FnZTogYGlvLmdpdGh1Yi4ke25hbWVzcGFjZX0uJHtjaGFuZ2VEZWxpbWl0ZXIocGFja2FnZUJhc2VuYW1lLCAnLicpfWAsXG4gICAgICAgIG1hdmVuR3JvdXBJZDogYGlvLmdpdGh1Yi4ke25hbWVzcGFjZX1gLFxuICAgICAgICBtYXZlbkFydGlmYWN0SWQ6IHBhY2thZ2VCYXNlbmFtZSxcbiAgICAgICAgbWF2ZW5FbmRwb2ludDogJ2h0dHBzOi8vczAxLm9zcy5zb25hdHlwZS5vcmcnLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi5wdWJsaXNoTGFuZ3VhZ2VXcmFwcGVyKEpzaWlMYW5ndWFnZS5ET1RORVQsIHtcbiAgICAgIHB1Ymxpc2hUb051Z2V0OiB7XG4gICAgICAgIGRvdE5ldE5hbWVzcGFjZTogYCR7bnVnZXRQcmVmaXh9JHt1cHBlckNhc2VOYW1lKHBhY2thZ2VCYXNlbmFtZSl9YCxcbiAgICAgICAgcGFja2FnZUlkOiBgJHtudWdldFByZWZpeH0ke3VwcGVyQ2FzZU5hbWUocGFja2FnZUJhc2VuYW1lKX1gLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi5wdWJsaXNoTGFuZ3VhZ2VXcmFwcGVyKEpzaWlMYW5ndWFnZS5HTywge1xuICAgICAgcHVibGlzaFRvR286IHtcbiAgICAgICAgbW9kdWxlTmFtZTogYGdpdGh1Yi5jb20vJHtuYW1lc3BhY2V9LyR7cGFja2FnZUJhc2VuYW1lfS1nb2AsXG4gICAgICB9LFxuICAgIH0pLFxuICB9O1xuXG4gIGZ1bmN0aW9uIHB1Ymxpc2hMYW5ndWFnZVdyYXBwZXIobGFuZzogSnNpaUxhbmd1YWdlLCBvYmo6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICByZXR1cm4gcHVibGlzaExhbmd1YWdlKGxhbmcpID8gb2JqIDoge307XG4gIH1cblxuICBmdW5jdGlvbiBwdWJsaXNoTGFuZ3VhZ2UobGFuZzogSnNpaUxhbmd1YWdlKTogYm9vbGVhbiB7XG4gICAgLy8gbGFuZ3Mgbm90IHNwZWNpZmllZCA9PT0gYWxsIGxhbmd1YWdlcyBwdWJsaXNoZWRcbiAgICBpZiAoIWxhbmdzKSB7IHJldHVybiB0cnVlOyB9XG4gICAgaWYgKGxhbmdzLmluY2x1ZGVzKGxhbmcpKSB7IHJldHVybiB0cnVlOyB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBwZXJDYXNlTmFtZShzdHI6IHN0cmluZykge1xuICAgIGxldCB3b3JkcyA9IHN0ci5zcGxpdCgnLScpO1xuICAgIHdvcmRzID0gd29yZHMubWFwKCh3KSA9PiB3WzBdLnRvVXBwZXJDYXNlKCkgKyB3LnN1YnN0cmluZygxKSk7XG4gICAgcmV0dXJuIHdvcmRzLmpvaW4oJycpO1xuICB9XG5cbiAgZnVuY3Rpb24gY2hhbmdlRGVsaW1pdGVyKHN0cjogc3RyaW5nLCBkZWxpbTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHN0ci5zcGxpdCgnLScpLmpvaW4oZGVsaW0pO1xuICB9XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIENka2xhYnNQdWJsaXNoaW5nUHJvamVjdE9wdGlvbnMge1xuICAvKipcbiAgICogU2V0IGRlZmF1bHQgcHVibGlzaGluZyBwcm9wZXJ0aWVzLiBTZXR0aW5nIHRoaXMgcHJvcGVydHkgZ3VhcmFudGVlc1xuICAgKiB0aGF0IHlvdXIgcHJvamVjdCB3aWxsIGhhdmUgcmVhc29uYWJsZSBwdWJsaXNoaW5nIG5hbWVzLiBZb3UgY2FuIGNob29zZVxuICAgKiB0byBtb2RpZnkgdGhlbSBob3dldmVyIHlvdSB3aXNoIHdpdGggdGhlIHRyYWRpdGlvbmFsIGBwdWJsaXNoVG9QeXBpYCxcbiAgICogYHB1Ymxpc2hUb01hdmVuYCwgYHB1Ymxpc2hUb051Z2V0YCwgYW5kIGBwdWJsaXNoVG9Hb2AgcHJvcGVydGllcywgYW5kXG4gICAqIHlvdXIgY29uZmlndXJhdGlvbiB3aWxsIGJlIHJlc3BlY3RlZC5cbiAgICpcbiAgICogVGhpcyBzaG91bGQgYmUgc2V0IHRvIGZhbHNlIG9ubHkgaWYgeW91IGRvIG5vdCBwbGFuIG9uIHJlbGVhc2luZyB0aGUgcGFja2FnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgc3BlY2lmaWMgbGFuZ3VhZ2VzIHRvIHB1Ymxpc2ggdG8uIFRoaXMgY2FuIGJlIHVzZWQgd2hlbiB0aGUgbGlicmFyeVxuICAgKiBpcyBleHBlcmltZW50YWwgb25seSwgYmVjYXVzZSBzdGFibGUgbGlicmFyaWVzIG11c3QgcHVibGlzaCB0byBhbGwganNpaSBsYW5ndWFnZXMuXG4gICAqIFRoaXMgc2hvdWxkIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBgY2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0czogdHJ1ZWA7IG90aGVyd2lzZVxuICAgKiBpdCBpcyBhIG5vLW9wLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFsbCBqc2lpIHRhcmdldCBsYW5ndWFnZXNcbiAgICovXG4gIHJlYWRvbmx5IGpzaWlUYXJnZXRMYW5ndWFnZXM/OiBKc2lpTGFuZ3VhZ2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZGtsYWJzQ29uc3RydWN0TGlicmFyeU9wdGlvbnMgZXh0ZW5kcyBDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucywgQ2RrbGFic1B1Ymxpc2hpbmdQcm9qZWN0T3B0aW9ucyB7IH1cblxuLyoqXG4gKiBDcmVhdGUgYSBDZGtsYWJzIENvbnN0cnVjdCBMaWJyYXJ5IFByb2plY3RcbiAqXG4gKiBAcGppZCBjZGtsYWJzLWNvbnN0cnVjdC1saWJcbiAqL1xuZXhwb3J0IGNsYXNzIENka2xhYnNDb25zdHJ1Y3RMaWJyYXJ5IGV4dGVuZHMgQ2RrQ29uc3RydWN0TGlicmFyeSB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka2xhYnNDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucykge1xuICAgIGNvbnN0IGNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdFByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gKG9wdGlvbnMuY2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0cyA/PyB0cnVlKSA/XG4gICAgICBjcmVhdGVDZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRzKG9wdGlvbnMubmFtZSwgb3B0aW9ucy5qc2lpVGFyZ2V0TGFuZ3VhZ2VzKSA6IHt9O1xuXG4gICAgLy8gdGhlIGxlZnRtb3N0IG9iamVjdCBpcyBtdXRhdGVkIGFuZCByZXR1cm5lZCBieSBkZWVwTWVyZ2VcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gZGVlcE1lcmdlKFtcbiAgICAgIHt9LFxuICAgICAgY2RrbGFic0RlZmF1bHRQcm9wcyxcbiAgICAgIGNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdFByb3BzLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNka2xhYnNGb3JjZWRQcm9wcyxcbiAgICBdKSBhcyBDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucztcblxuICAgIHN1cGVyKG1lcmdlZE9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrbGFic1R5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyBleHRlbmRzIENka1R5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyB7IH1cblxuLyoqXG4gKiBDcmVhdGUgYSBDZGtsYWJzIFR5cGVTY3JpcHQgUHJvamVjdFxuICpcbiAqIEBwamlkIGNka2xhYnMtdHMtcHJvalxuICovXG5leHBvcnQgY2xhc3MgQ2RrbGFic1R5cGVTY3JpcHRQcm9qZWN0IGV4dGVuZHMgQ2RrVHlwZVNjcmlwdFByb2plY3Qge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtsYWJzVHlwZVNjcmlwdFByb2plY3RPcHRpb25zKSB7XG4gICAgLy8gdGhlIGxlZnRtb3N0IG9iamVjdCBpcyBtdXRhdGVkIGFuZCByZXR1cm5lZCBieSBkZWVwTWVyZ2VcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gZGVlcE1lcmdlKFtcbiAgICAgIHt9LFxuICAgICAgY2RrbGFic0RlZmF1bHRQcm9wcyxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBjZGtsYWJzRm9yY2VkUHJvcHMsXG4gICAgXSkgYXMgQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnM7XG5cbiAgICBzdXBlcihtZXJnZWRPcHRpb25zKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENka2xhYnNKc2lpUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBDZGtKc2lpUHJvamVjdE9wdGlvbnMsIENka2xhYnNQdWJsaXNoaW5nUHJvamVjdE9wdGlvbnMgeyB9XG5cbi8qKlxuICogQ3JlYXRlIGEgQ2RrbGFicyBKc2lpIFByb2plY3RcbiAqXG4gKiBAcGppZCBjZGtsYWJzLWpzaWktcHJvalxuICovXG5leHBvcnQgY2xhc3MgQ2RrbGFic0pzaWlQcm9qZWN0IGV4dGVuZHMgQ2RrSnNpaVByb2plY3Qge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtsYWJzSnNpaVByb2plY3RPcHRpb25zKSB7XG4gICAgY29uc3QgY2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0UHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSAob3B0aW9ucy5jZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRzID8/IHRydWUpID9cbiAgICAgIGNyZWF0ZUNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdHMob3B0aW9ucy5uYW1lLCBvcHRpb25zLmpzaWlUYXJnZXRMYW5ndWFnZXMpIDoge307XG4gICAgLy8gdGhlIGxlZnRtb3N0IG9iamVjdCBpcyBtdXRhdGVkIGFuZCByZXR1cm5lZCBieSBkZWVwTWVyZ2VcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gZGVlcE1lcmdlKFtcbiAgICAgIHt9LFxuICAgICAgY2RrbGFic0RlZmF1bHRQcm9wcyxcbiAgICAgIGNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdFByb3BzLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNka2xhYnNGb3JjZWRQcm9wcyxcbiAgICBdKSBhcyBDZGtsYWJzSnNpaVByb2plY3RPcHRpb25zO1xuXG4gICAgc3VwZXIobWVyZ2VkT3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==