cdklabs-projen-project-types 0.2.10 → 0.2.11

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
@@ -119,6 +119,73 @@
119
119
  }
120
120
  },
121
121
  "types": {
122
+ "cdklabs-projen-project-types.AtmosphereOptions": {
123
+ "assembly": "cdklabs-projen-project-types",
124
+ "datatype": true,
125
+ "docs": {
126
+ "stability": "stable",
127
+ "summary": "Options for atmosphere service usage."
128
+ },
129
+ "fqn": "cdklabs-projen-project-types.AtmosphereOptions",
130
+ "kind": "interface",
131
+ "locationInModule": {
132
+ "filename": "src/cdk-cli-integ-tests.ts",
133
+ "line": 8
134
+ },
135
+ "name": "AtmosphereOptions",
136
+ "properties": [
137
+ {
138
+ "abstract": true,
139
+ "docs": {
140
+ "stability": "stable",
141
+ "summary": "Atmosphere service endpoint."
142
+ },
143
+ "immutable": true,
144
+ "locationInModule": {
145
+ "filename": "src/cdk-cli-integ-tests.ts",
146
+ "line": 12
147
+ },
148
+ "name": "endpoint",
149
+ "type": {
150
+ "primitive": "string"
151
+ }
152
+ },
153
+ {
154
+ "abstract": true,
155
+ "docs": {
156
+ "remarks": "Must be allow listed\non the service endpoint.",
157
+ "stability": "stable",
158
+ "summary": "OIDC role to assume prior to using atmosphere."
159
+ },
160
+ "immutable": true,
161
+ "locationInModule": {
162
+ "filename": "src/cdk-cli-integ-tests.ts",
163
+ "line": 21
164
+ },
165
+ "name": "oidcRoleArn",
166
+ "type": {
167
+ "primitive": "string"
168
+ }
169
+ },
170
+ {
171
+ "abstract": true,
172
+ "docs": {
173
+ "stability": "stable",
174
+ "summary": "Which pool to retrieve environments from."
175
+ },
176
+ "immutable": true,
177
+ "locationInModule": {
178
+ "filename": "src/cdk-cli-integ-tests.ts",
179
+ "line": 16
180
+ },
181
+ "name": "pool",
182
+ "type": {
183
+ "primitive": "string"
184
+ }
185
+ }
186
+ ],
187
+ "symbolId": "src/cdk-cli-integ-tests:AtmosphereOptions"
188
+ },
122
189
  "cdklabs-projen-project-types.CdkCliIntegTestsWorkflow": {
123
190
  "assembly": "cdklabs-projen-project-types",
124
191
  "base": "projen.Component",
@@ -134,7 +201,7 @@
134
201
  },
135
202
  "locationInModule": {
136
203
  "filename": "src/cdk-cli-integ-tests.ts",
137
- "line": 81
204
+ "line": 107
138
205
  },
139
206
  "parameters": [
140
207
  {
@@ -154,7 +221,7 @@
154
221
  "kind": "class",
155
222
  "locationInModule": {
156
223
  "filename": "src/cdk-cli-integ-tests.ts",
157
- "line": 80
224
+ "line": 106
158
225
  },
159
226
  "name": "CdkCliIntegTestsWorkflow",
160
227
  "symbolId": "src/cdk-cli-integ-tests:CdkCliIntegTestsWorkflow"
@@ -169,7 +236,7 @@
169
236
  "kind": "interface",
170
237
  "locationInModule": {
171
238
  "filename": "src/cdk-cli-integ-tests.ts",
172
- "line": 5
239
+ "line": 24
173
240
  },
174
241
  "name": "CdkCliIntegTestsWorkflowProps",
175
242
  "properties": [
@@ -183,7 +250,7 @@
183
250
  "immutable": true,
184
251
  "locationInModule": {
185
252
  "filename": "src/cdk-cli-integ-tests.ts",
186
- "line": 21
253
+ "line": 40
187
254
  },
188
255
  "name": "approvalEnvironment",
189
256
  "type": {
@@ -199,7 +266,7 @@
199
266
  "immutable": true,
200
267
  "locationInModule": {
201
268
  "filename": "src/cdk-cli-integ-tests.ts",
202
- "line": 9
269
+ "line": 28
203
270
  },
204
271
  "name": "buildRunsOn",
205
272
  "type": {
@@ -216,7 +283,7 @@
216
283
  "immutable": true,
217
284
  "locationInModule": {
218
285
  "filename": "src/cdk-cli-integ-tests.ts",
219
- "line": 39
286
+ "line": 58
220
287
  },
221
288
  "name": "localPackages",
222
289
  "type": {
@@ -237,7 +304,7 @@
237
304
  "immutable": true,
238
305
  "locationInModule": {
239
306
  "filename": "src/cdk-cli-integ-tests.ts",
240
- "line": 44
307
+ "line": 63
241
308
  },
242
309
  "name": "sourceRepo",
243
310
  "type": {
@@ -254,7 +321,7 @@
254
321
  "immutable": true,
255
322
  "locationInModule": {
256
323
  "filename": "src/cdk-cli-integ-tests.ts",
257
- "line": 32
324
+ "line": 51
258
325
  },
259
326
  "name": "testEnvironment",
260
327
  "type": {
@@ -270,7 +337,7 @@
270
337
  "immutable": true,
271
338
  "locationInModule": {
272
339
  "filename": "src/cdk-cli-integ-tests.ts",
273
- "line": 14
340
+ "line": 33
274
341
  },
275
342
  "name": "testRunsOn",
276
343
  "type": {
@@ -287,7 +354,7 @@
287
354
  "immutable": true,
288
355
  "locationInModule": {
289
356
  "filename": "src/cdk-cli-integ-tests.ts",
290
- "line": 51
357
+ "line": 70
291
358
  },
292
359
  "name": "allowUpstreamVersions",
293
360
  "optional": true,
@@ -299,6 +366,24 @@
299
366
  "kind": "array"
300
367
  }
301
368
  }
369
+ },
370
+ {
371
+ "abstract": true,
372
+ "docs": {
373
+ "default": "- atmosphere is not used",
374
+ "stability": "stable",
375
+ "summary": "Enable atmosphere service to retrieve AWS test environments."
376
+ },
377
+ "immutable": true,
378
+ "locationInModule": {
379
+ "filename": "src/cdk-cli-integ-tests.ts",
380
+ "line": 77
381
+ },
382
+ "name": "enableAtmosphere",
383
+ "optional": true,
384
+ "type": {
385
+ "fqn": "cdklabs-projen-project-types.AtmosphereOptions"
386
+ }
302
387
  }
303
388
  ],
304
389
  "symbolId": "src/cdk-cli-integ-tests:CdkCliIntegTestsWorkflowProps"
@@ -14672,6 +14757,6 @@
14672
14757
  "symbolId": "src/yarn/typescript-workspace-release:WorkspaceReleaseOptions"
14673
14758
  }
14674
14759
  },
14675
- "version": "0.2.10",
14676
- "fingerprint": "PzCpqIWeLspkZaM/jPDlKcuc/GE/izbhLVwkxakjy/c="
14760
+ "version": "0.2.11",
14761
+ "fingerprint": "rCAqPpgd0D5i1jatXVWjrXoSYA28to9lLbhUD7DqgvU="
14677
14762
  }
package/API.md CHANGED
@@ -14764,6 +14764,67 @@ public readonly version: Version;
14764
14764
 
14765
14765
  ## Structs <a name="Structs" id="Structs"></a>
14766
14766
 
14767
+ ### AtmosphereOptions <a name="AtmosphereOptions" id="cdklabs-projen-project-types.AtmosphereOptions"></a>
14768
+
14769
+ Options for atmosphere service usage.
14770
+
14771
+ #### Initializer <a name="Initializer" id="cdklabs-projen-project-types.AtmosphereOptions.Initializer"></a>
14772
+
14773
+ ```typescript
14774
+ import { AtmosphereOptions } from 'cdklabs-projen-project-types'
14775
+
14776
+ const atmosphereOptions: AtmosphereOptions = { ... }
14777
+ ```
14778
+
14779
+ #### Properties <a name="Properties" id="Properties"></a>
14780
+
14781
+ | **Name** | **Type** | **Description** |
14782
+ | --- | --- | --- |
14783
+ | <code><a href="#cdklabs-projen-project-types.AtmosphereOptions.property.endpoint">endpoint</a></code> | <code>string</code> | Atmosphere service endpoint. |
14784
+ | <code><a href="#cdklabs-projen-project-types.AtmosphereOptions.property.oidcRoleArn">oidcRoleArn</a></code> | <code>string</code> | OIDC role to assume prior to using atmosphere. |
14785
+ | <code><a href="#cdklabs-projen-project-types.AtmosphereOptions.property.pool">pool</a></code> | <code>string</code> | Which pool to retrieve environments from. |
14786
+
14787
+ ---
14788
+
14789
+ ##### `endpoint`<sup>Required</sup> <a name="endpoint" id="cdklabs-projen-project-types.AtmosphereOptions.property.endpoint"></a>
14790
+
14791
+ ```typescript
14792
+ public readonly endpoint: string;
14793
+ ```
14794
+
14795
+ - *Type:* string
14796
+
14797
+ Atmosphere service endpoint.
14798
+
14799
+ ---
14800
+
14801
+ ##### `oidcRoleArn`<sup>Required</sup> <a name="oidcRoleArn" id="cdklabs-projen-project-types.AtmosphereOptions.property.oidcRoleArn"></a>
14802
+
14803
+ ```typescript
14804
+ public readonly oidcRoleArn: string;
14805
+ ```
14806
+
14807
+ - *Type:* string
14808
+
14809
+ OIDC role to assume prior to using atmosphere.
14810
+
14811
+ Must be allow listed
14812
+ on the service endpoint.
14813
+
14814
+ ---
14815
+
14816
+ ##### `pool`<sup>Required</sup> <a name="pool" id="cdklabs-projen-project-types.AtmosphereOptions.property.pool"></a>
14817
+
14818
+ ```typescript
14819
+ public readonly pool: string;
14820
+ ```
14821
+
14822
+ - *Type:* string
14823
+
14824
+ Which pool to retrieve environments from.
14825
+
14826
+ ---
14827
+
14767
14828
  ### CdkCliIntegTestsWorkflowProps <a name="CdkCliIntegTestsWorkflowProps" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps"></a>
14768
14829
 
14769
14830
  #### Initializer <a name="Initializer" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.Initializer"></a>
@@ -14785,6 +14846,7 @@ const cdkCliIntegTestsWorkflowProps: CdkCliIntegTestsWorkflowProps = { ... }
14785
14846
  | <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.testEnvironment">testEnvironment</a></code> | <code>string</code> | GitHub environment name for running the tests. |
14786
14847
  | <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.testRunsOn">testRunsOn</a></code> | <code>string</code> | Runners for the workflow. |
14787
14848
  | <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.allowUpstreamVersions">allowUpstreamVersions</a></code> | <code>string[]</code> | If given, allows accessing upstream versions of these packages. |
14849
+ | <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.enableAtmosphere">enableAtmosphere</a></code> | <code><a href="#cdklabs-projen-project-types.AtmosphereOptions">AtmosphereOptions</a></code> | Enable atmosphere service to retrieve AWS test environments. |
14788
14850
 
14789
14851
  ---
14790
14852
 
@@ -14883,6 +14945,19 @@ If given, allows accessing upstream versions of these packages.
14883
14945
 
14884
14946
  ---
14885
14947
 
14948
+ ##### `enableAtmosphere`<sup>Optional</sup> <a name="enableAtmosphere" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.enableAtmosphere"></a>
14949
+
14950
+ ```typescript
14951
+ public readonly enableAtmosphere: AtmosphereOptions;
14952
+ ```
14953
+
14954
+ - *Type:* <a href="#cdklabs-projen-project-types.AtmosphereOptions">AtmosphereOptions</a>
14955
+ - *Default:* atmosphere is not used
14956
+
14957
+ Enable atmosphere service to retrieve AWS test environments.
14958
+
14959
+ ---
14960
+
14886
14961
  ### CdkCommonOptions <a name="CdkCommonOptions" id="cdklabs-projen-project-types.CdkCommonOptions"></a>
14887
14962
 
14888
14963
  CdkCommonOptions.
@@ -1,4 +1,22 @@
1
1
  import { Component, javascript } from 'projen';
2
+ /**
3
+ * Options for atmosphere service usage.
4
+ */
5
+ export interface AtmosphereOptions {
6
+ /**
7
+ * Atmosphere service endpoint.
8
+ */
9
+ readonly endpoint: string;
10
+ /**
11
+ * Which pool to retrieve environments from.
12
+ */
13
+ readonly pool: string;
14
+ /**
15
+ * OIDC role to assume prior to using atmosphere. Must be allow listed
16
+ * on the service endpoint.
17
+ */
18
+ readonly oidcRoleArn: string;
19
+ }
2
20
  export interface CdkCliIntegTestsWorkflowProps {
3
21
  /**
4
22
  * Runners for the workflow
@@ -40,6 +58,12 @@ export interface CdkCliIntegTestsWorkflowProps {
40
58
  * @default - No upstream versions
41
59
  */
42
60
  readonly allowUpstreamVersions?: string[];
61
+ /**
62
+ * Enable atmosphere service to retrieve AWS test environments.
63
+ *
64
+ * @default - atmosphere is not used
65
+ */
66
+ readonly enableAtmosphere?: AtmosphereOptions;
43
67
  }
44
68
  /**
45
69
  * Add a workflow for running the tests
@@ -233,7 +233,7 @@ class CdkCliIntegTestsWorkflow extends projen_1.Component {
233
233
  'aws-region': 'us-east-1',
234
234
  'role-duration-seconds': 4 * 60 * 60,
235
235
  // Expect this in Environment Variables
236
- 'role-to-assume': '${{ vars.AWS_ROLE_TO_ASSUME_FOR_TESTING }}',
236
+ 'role-to-assume': props.enableAtmosphere ? props.enableAtmosphere.oidcRoleArn : '${{ vars.AWS_ROLE_TO_ASSUME_FOR_TESTING }}',
237
237
  'role-session-name': 'run-tests@aws-cdk-cli-integ',
238
238
  'output-credentials': true,
239
239
  },
@@ -308,13 +308,19 @@ class CdkCliIntegTestsWorkflow extends projen_1.Component {
308
308
  'bin/run-suite --use-cli-release=${{ steps.versions.outputs.cli_version }} --framework-version=${{ steps.versions.outputs.lib_version }} ${{ matrix.suite }}',
309
309
  ].join('\n'),
310
310
  env: {
311
- // Concurrency only for long-running cli-integ-tests
312
- JEST_TEST_CONCURRENT: "${{ matrix.suite == 'cli-integ-tests' && 'true' || 'false' }}",
313
311
  JSII_SILENCE_WARNING_DEPRECATED_NODE_VERSION: 'true',
314
312
  JSII_SILENCE_WARNING_UNTESTED_NODE_VERSION: 'true',
315
313
  JSII_SILENCE_WARNING_KNOWN_BROKEN_NODE_VERSION: 'true',
316
314
  DOCKERHUB_DISABLED: 'true',
317
- AWS_REGIONS: ['us-east-2', 'eu-west-1', 'eu-north-1', 'ap-northeast-1', 'ap-south-1'].join(','),
315
+ ...(props.enableAtmosphere ?
316
+ {
317
+ CDK_INTEG_ATMOSPHERE_ENABLED: 'true',
318
+ CDK_INTEG_ATMOSPHERE_ENDPOINT: props.enableAtmosphere.endpoint,
319
+ CDK_INTEG_ATMOSPHERE_POOL: props.enableAtmosphere.pool,
320
+ } :
321
+ {
322
+ AWS_REGIONS: ['us-east-2', 'eu-west-1', 'eu-north-1', 'ap-northeast-1', 'ap-south-1'].join(','),
323
+ }),
318
324
  CDK_MAJOR_VERSION: '2',
319
325
  RELEASE_TAG: 'latest',
320
326
  GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}',
@@ -348,5 +354,5 @@ class CdkCliIntegTestsWorkflow extends projen_1.Component {
348
354
  }
349
355
  exports.CdkCliIntegTestsWorkflow = CdkCliIntegTestsWorkflow;
350
356
  _a = JSII_RTTI_SYMBOL_1;
351
- CdkCliIntegTestsWorkflow[_a] = { fqn: "cdklabs-projen-project-types.CdkCliIntegTestsWorkflow", version: "0.2.10" };
352
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNsaS1pbnRlZy10ZXN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jZGstY2xpLWludGVnLXRlc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQXVEO0FBRXZELE1BQU0sZ0JBQWdCLEdBQUcsNEVBQTRFLENBQUM7QUFtRHRHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBQ0gsTUFBYSx3QkFBeUIsU0FBUSxrQkFBUztJQUNyRCxZQUFZLElBQTRCLEVBQUUsS0FBb0M7UUFDNUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRVosTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN6QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0MsYUFBcUIsQ0FBQyxRQUFrQyxDQUFDO1FBRTNELEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDeEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN4RixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDbEIsaUJBQWlCLEVBQUU7Z0JBQ2pCLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQzthQUNuQjtZQUNELG9FQUFvRTtZQUNwRSxVQUFVLEVBQUUsRUFBRTtZQUNkLDhDQUE4QztZQUM5QyxnQkFBZ0IsRUFBRSxFQUFF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LGNBQWM7b0JBQzVLLElBQUksRUFBRSxnQ0FBZ0M7b0JBQ3RDLEdBQUcsRUFBRSxRQUFRO2lCQUNkO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOztBQWpVSCw0REFrVUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGdpdGh1YiwgamF2YXNjcmlwdCB9IGZyb20gJ3Byb2plbic7XG5cbmNvbnN0IE5PVF9GTEFHR0VEX0VYUFIgPSBcIiFjb250YWlucyhnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LmxhYmVscy4qLm5hbWUsICdwci9leGVtcHQtaW50ZWctdGVzdCcpXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrQ2xpSW50ZWdUZXN0c1dvcmtmbG93UHJvcHMge1xuICAvKipcbiAgICogUnVubmVycyBmb3IgdGhlIHdvcmtmbG93XG4gICAqL1xuICByZWFkb25seSBidWlsZFJ1bnNPbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSdW5uZXJzIGZvciB0aGUgd29ya2Zsb3dcbiAgICovXG4gIHJlYWRvbmx5IHRlc3RSdW5zT246IHN0cmluZztcblxuICAvKipcbiAgICogR2l0SHViIGVudmlyb25tZW50IG5hbWUgZm9yIGFwcHJvdmFsc1xuICAgKlxuICAgKiBNVVNUIGJlIGNvbmZpZ3VyZWQgdG8gcmVxdWlyZSBtYW51YWwgYXBwcm92YWwuXG4gICAqL1xuICByZWFkb25seSBhcHByb3ZhbEVudmlyb25tZW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdpdEh1YiBlbnZpcm9ubWVudCBuYW1lIGZvciBydW5uaW5nIHRoZSB0ZXN0c1xuICAgKlxuICAgKiBNVVNUIGJlIGNvbmZpZ3VyZWQgd2l0aG91dCBhcHByb3ZhbHMsIGFuZCB3aXRoIHRoZSBmb2xsb3dpbmcgdmFycyBhbmQgc2VjcmV0czpcbiAgICpcbiAgICogLSB2YXJzOiBBV1NfUk9MRV9UT19BU1NVTUVfRk9SX1RFU1RJTkdcbiAgICpcbiAgICogQW5kIHRoZSByb2xlIG5lZWRzIHRvIGJlIGNvbmZpZ3VyZWQgdG8gYWxsb3cgdGhlIEFzc3VtZVJvbGUgb3BlcmF0aW9uLlxuICAgKi9cbiAgcmVhZG9ubHkgdGVzdEVudmlyb25tZW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhY2thZ2VzIHRoYXQgYXJlIGxvY2FsbHkgdHJhbnNmZXJlZCAod2Ugd2lsbCBuZXZlciB1c2UgdGhlIHVwc3RyZWFtIHZlcnNpb25zKVxuICAgKlxuICAgKiBUYWtlcyBwYWNrYWdlIG5hbWVzOyB0aGVzZSBhcmUgZXhwZWN0ZWQgdG8gbGl2ZSBpbiBgcGFja2FnZXMvPE5BTUU+L2Rpc3QvanNgLlxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYWxQYWNrYWdlczogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBvZmZpY2lhbCByZXBvIHRoaXMgd29ya2Zsb3cgaXMgdXNlZCBmb3JcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZVJlcG86IHN0cmluZztcblxuICAvKipcbiAgICogSWYgZ2l2ZW4sIGFsbG93cyBhY2Nlc3NpbmcgdXBzdHJlYW0gdmVyc2lvbnMgb2YgdGhlc2UgcGFja2FnZXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBObyB1cHN0cmVhbSB2ZXJzaW9uc1xuICAgKi9cbiAgcmVhZG9ubHkgYWxsb3dVcHN0cmVhbVZlcnNpb25zPzogc3RyaW5nW107XG59XG5cbi8qKlxuICogQWRkIGEgd29ya2Zsb3cgZm9yIHJ1bm5pbmcgdGhlIHRlc3RzXG4gKlxuICogVGhpcyBNVVNUIGJlIGEgc2VwYXJhdGUgd29ya2Zsb3cgdGhhdCBydW5zIGluIHByaXZpbGVnZWQgY29udGV4dC4gV2UgaGF2ZSBhIGNvdXBsZVxuICogb2Ygb3B0aW9uczpcbiAqXG4gKiAtIGB3b3JrZmxvd19ydW5gOiB3ZSBjYW4gdHJpZ2dlciBhIHByaXZpbGVnZWQgd29ya2Zsb3cgcnVuIGFmdGVyIHRoZSB1bnByaXZpbGVnZWRcbiAqICAgYHB1bGxfcmVxdWVzdGAgd29ya2Zsb3cgZmluaXNoZXMgYW5kIHJldXNlIGl0cyBvdXRwdXQgYXJ0aWZhY3RzLiBUaGVcbiAqICAgcHJvYmxlbSBpcyB0aGF0IHRoZSBzZWNvbmQgcnVuIGlzIGRpc2Nvbm5lY3RlZCBmcm9tIHRoZSBQUiBzbyB3ZSB3b3VsZCBuZWVkXG4gKiAgIHRvIHNjcmlwdCBpbiB2aXNpYmlsaXR5IGZvciBhcHByb3ZhbHMgYW5kIHN1Y2Nlc3MgKGJ5IHBvc3RpbmcgY29tbWVudHMsIGZvclxuICogICBleGFtcGxlKVxuICogLSBVc2Ugb25seSBhIGBwdWxsX3JlcXVlc3RfdGFyZ2V0YCB3b3JrZmxvdyBvbiB0aGUgUFI6IHRoaXMgZWl0aGVyIHdvdWxkIHJ1blxuICogICBhIHByaXZpbGVnZWQgd29ya2Zsb3cgb24gYW55IHVzZXIgY29kZSBzdWJtaXNzaW9uIChtaWdodCBiZSBmaW5lIGdpdmVuIHRoZVxuICogICB3b3JrZmxvdydzIGBwZXJtaXNzaW9uc2AsIGJ1dCBJJ20gc3VyZSB0aGlzIHdpbGwgbWFrZSBvdXIgc2VjdXJpdHkgdGVhbSB1bmVhc3lcbiAqICAgYW55d2F5KSwgT1IgdGhpcyB3b3VsZCBtZWFuIGFueSBidWlsZCBuZWVkcyBodW1hbiBjb25maXJtYXRpb24gd2hpY2ggbWVhbnMgc2xvd1xuICogICBmZWVkYmFjay5cbiAqIC0gVXNlIGEgYHB1bGxfcmVxdWVzdGAgZm9yIGEgcmVndWxhciBmYXN0LWZlZWRiYWNrIGJ1aWxkLCBhbmQgYSBzZXBhcmF0ZVxuICogICBgcHVsbF9yZXF1ZXN0X3RhcmdldGAgZm9yIHRoZSBpbnRlZyB0ZXN0cy4gVGhpcyBtZWFucyB3ZSdyZSBidWlsZGluZyB0d2ljZS5cbiAqXG4gKiBVbHRpbWF0ZWx5LCBvdXIgYnVpbGQgaXNuJ3QgaGVhdnkgZW5vdWdoIHRvIHB1dCBpbiBhIGxvdCBvZiBlZmZvcnQgZGVkdXBpbmdcbiAqIGl0LCBzbyB3ZSdsbCBnbyB3aXRoIHRoZSBzaW1wbGVzdCBzb2x1dGlvbiB3aGljaCBpcyB0aGUgbGFzdCBvbmU6IDJcbiAqIGluZGVwZW5kZW50IHdvcmtmbG93cy5cbiAqXG4gKiBwcm9qZW4gZG9lc24ndCBtYWtlIGl0IGVhc3kgdG8gY29weSB0aGUgcmVsZXZhbnQgcGFydHMgb2YgdGhlICdidWlsZCcgd29ya2Zsb3csXG4gKiBzbyB0aGV5J3JlIHVuZm9ydHVuYXRlbHkgZHVwbGljYXRlZCBoZXJlLlxuICovXG5leHBvcnQgY2xhc3MgQ2RrQ2xpSW50ZWdUZXN0c1dvcmtmbG93IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgY29uc3RydWN0b3IocmVwbzogamF2YXNjcmlwdC5Ob2RlUHJvamVjdCwgcHJvcHM6IENka0NsaUludGVnVGVzdHNXb3JrZmxvd1Byb3BzKSB7XG4gICAgc3VwZXIocmVwbyk7XG5cbiAgICBjb25zdCBidWlsZFdvcmtmbG93ID0gcmVwby5idWlsZFdvcmtmbG93O1xuICAgIGNvbnN0IHJ1blRlc3RzV29ya2Zsb3cgPSByZXBvLmdpdGh1Yj8uYWRkV29ya2Zsb3coJ2ludGVnJyk7XG4gICAgaWYgKCFidWlsZFdvcmtmbG93IHx8ICFydW5UZXN0c1dvcmtmbG93KSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0V4cGVjdGVkIGJ1aWxkIGFuZCBydW4gdGVzdHMgd29ya2Zsb3cnKTtcbiAgICB9XG4gICAgKChidWlsZFdvcmtmbG93IGFzIGFueSkud29ya2Zsb3cgYXMgZ2l0aHViLkdpdGh1YldvcmtmbG93KTtcblxuICAgIHByb3BzLmFsbG93VXBzdHJlYW1WZXJzaW9ucz8uZm9yRWFjaCgocGFjaykgPT4ge1xuICAgICAgaWYgKCFwcm9wcy5sb2NhbFBhY2thZ2VzLmluY2x1ZGVzKHBhY2spKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgUGFja2FnZSBpbiBhbGxvd1Vwc3RyZWFtVmVyc2lvbnMgYnV0IG5vdCBpbiBsb2NhbFBhY2thZ2VzOiAke3BhY2t9YCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBydW5UZXN0c1dvcmtmbG93Lm9uKHtcbiAgICAgIHB1bGxSZXF1ZXN0VGFyZ2V0OiB7XG4gICAgICAgIGJyYW5jaGVzOiBbJ21haW4nXSxcbiAgICAgIH0sXG4gICAgICAvLyBOZWVkcyB0byB0cmlnZ2VyIGFuZCByZXBvcnQgc3VjY2VzcyBvbiBtZXJnZSBxdWV1ZSBidWlsZHMgYXMgd2VsbFxuICAgICAgbWVyZ2VHcm91cDoge30sXG4gICAgICAvLyBOZXZlciBodXJ0cyB0byBiZSBhYmxlIHRvIHJ1biB0aGlzIG1hbnVhbGx5XG4gICAgICB3b3JrZmxvd0Rpc3BhdGNoOiB7fSxcbiAgICB9KTtcbiAgICAvLyBUaGUgJ2J1aWxkJyBwYXJ0IHJ1bnMgb24gdGhlICdpbnRlZy1hcHByb3ZhbCcgZW52aXJvbm1lbnQsIHdoaWNoIHJlcXVpcmVzXG4gICAgLy8gYXBwcm92YWwuIFRoZSBhY3R1YWwgcnVucyBhY2Nlc3MgdGhlIHJlYWwgZW52aXJvbm1lbnQsIG5vdCByZXF1aXJpbmcgYXBwcm92YWxcbiAgICAvLyBhbnltb3JlLlxuICAgIC8vXG4gICAgLy8gVGhpcyBpcyBmb3IgMiByZWFzb25zOlxuICAgIC8vIC0gVGhlIGJ1aWxkIGpvYiBpcyB0aGUgZmlyc3Qgb25lIHRoYXQgcnVucy4gVGhhdCBtZWFucyB5b3UgZ2V0IGFza2VkIGFwcHJvdmFsXG4gICAgLy8gICBpbW1lZGlhdGVseSBhZnRlciBwdXNoLCBpbnN0ZWFkIG9mIDUgbWludXRlcyBsYXRlciBhZnRlciB0aGUgYnVpbGQgY29tcGxldGVzLlxuICAgIC8vIC0gVGhlIGJ1aWxkIGpvYiBpcyBvbmx5IG9uZSBqb2IsIHZlcnN1cyB0aGUgdGVzdHMgd2hpY2ggYXJlIGEgbWF0cml4IGJ1aWxkLlxuICAgIC8vICAgSWYgdGhlIG1hdHJpeCB0ZXN0IGpvYiBuZWVkcyBhcHByb3ZhbCwgdGhlIFB1bGwgUmVxdWVzdCB0aW1lbGluZSBnZXRzIHNwYW1tZWRcbiAgICAvLyAgIHdpdGggYW4gYXBwcm92YWwgcmVxdWVzdCBmb3IgZXZlcnkgaW5kaXZpZHVhbCBydW4uXG4gICAgY29uc3QgSk9CX1BSRVBBUkUgPSAncHJlcGFyZSc7XG4gICAgcnVuVGVzdHNXb3JrZmxvdy5hZGRKb2IoSk9CX1BSRVBBUkUsIHtcbiAgICAgIGVudmlyb25tZW50OiBwcm9wcy5hcHByb3ZhbEVudmlyb25tZW50LFxuICAgICAgcnVuc09uOiBbcHJvcHMuYnVpbGRSdW5zT25dLFxuICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgY29udGVudHM6IGdpdGh1Yi53b3JrZmxvd3MuSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgfSxcbiAgICAgIGVudjoge1xuICAgICAgICBDSTogJ3RydWUnLFxuICAgICAgfSxcbiAgICAgIC8vIERvbid0IHJ1biBhZ2FpbiBvbiB0aGUgbWVyZ2UgcXVldWUsIHdlIGFscmVhZHkgZ290IGNvbmZpcm1hdGlvbiB0aGF0IGl0IHdvcmtzIGFuZCB0aGVcbiAgICAgIC8vIHRlc3RzIGFyZSBxdWl0ZSBleHBlbnNpdmUuXG4gICAgICBpZjogYGdpdGh1Yi5ldmVudF9uYW1lICE9ICdtZXJnZV9ncm91cCcgJiYgJHtOT1RfRkxBR0dFRF9FWFBSfWAsXG4gICAgICBzdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2NCcsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgLy8gSU1QT1JUQU5UISBUaGlzIG11c3QgYmUgYGhlYWQuc2hhYCBub3QgYGhlYWQucmVmYCwgb3RoZXJ3aXNlIHdlXG4gICAgICAgICAgICAvLyBhcmUgdnVsbmVyYWJsZSB0byBhIFRPQ1RPVSBhdHRhY2suXG4gICAgICAgICAgICByZWY6ICcke3sgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5oZWFkLnNoYSB9fScsXG4gICAgICAgICAgICByZXBvc2l0b3J5OiAnJHt7IGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QuaGVhZC5yZXBvLmZ1bGxfbmFtZSB9fScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gV2UgdXNlZCB0byBmZXRjaCB0YWdzIGZyb20gdGhlIHJlcG8gdXNpbmcgJ2NoZWNrb3V0JywgYnV0IGlmIGl0J3MgYSBmb3JrXG4gICAgICAgIC8vIHRoZSB0YWdzIHdvbid0IGJlIHRoZXJlLCBzbyB3ZSBoYXZlIHRvIGZldGNoIHRoZW0gZnJvbSB1cHN0cmVhbS5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gVGhlIHRhZ3MgYXJlIG5lY2Vzc2FyeSB0byByZWFsaXN0aWNhbGx5IGJ1bXAgdmVyc2lvbnNcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdGZXRjaCB0YWdzIGZyb20gb3JpZ2luIHJlcG8nLFxuICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgLy8gQ2FuIGJlIGVpdGhlciBhd3MvYXdzLWNkay1jbGkgb3IgYXdzL2F3cy1jZGstY2xpLXRlc3RpbmdcbiAgICAgICAgICAgIC8vIChNdXN0IGNsb25lIG92ZXIgSFRUUFMgYmVjYXVzZSB3ZSBoYXZlIG5vIFNTSCBhdXRoIHNldCB1cClcbiAgICAgICAgICAgIGBnaXQgcmVtb3RlIGFkZCB1cHN0cmVhbSBodHRwczovL2dpdGh1Yi5jb20vJHtwcm9wcy5zb3VyY2VSZXBvfS5naXRgLFxuICAgICAgICAgICAgJ2dpdCBmZXRjaCB1cHN0cmVhbSBcXCdyZWZzL3RhZ3MvKjpyZWZzL3RhZ3MvKlxcJycsXG4gICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdTZXR1cCBOb2RlLmpzJyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9zZXR1cC1ub2RlQHY0JyxcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAnbm9kZS12ZXJzaW9uJzogJ2x0cy8qJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0luc3RhbGwgZGVwZW5kZW5jaWVzJyxcbiAgICAgICAgICBydW46ICd5YXJuIGluc3RhbGwgLS1jaGVjay1maWxlcycsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQnVtcCB0byByZWFsaXN0aWMgdmVyc2lvbnMnLFxuICAgICAgICAgIHJ1bjogJ3lhcm4gd29ya3NwYWNlcyBydW4gYnVtcCcsXG4gICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICBURVNUSU5HX0NBTkRJREFURTogJ3RydWUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnYnVpbGQnLFxuICAgICAgICAgIHJ1bjogJ25weCBwcm9qZW4gYnVpbGQnLFxuICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgdG8gcHJldmVudCBwcm9qZW4gZnJvbSByZXNldHRpbmcgdGhlIHZlcnNpb24gbnVtYmVycyB0b1xuICAgICAgICAgICAgLy8gMC4wLjAgZHVyaW5nIGl0cyBzeW50aGVzaXMuXG4gICAgICAgICAgICBSRUxFQVNFOiAndHJ1ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdVcGxvYWQgYXJ0aWZhY3QnLFxuICAgICAgICAgIHVzZXM6ICdhY3Rpb25zL3VwbG9hZC1hcnRpZmFjdEB2NC40LjAnLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgIG5hbWU6ICdidWlsZC1hcnRpZmFjdCcsXG4gICAgICAgICAgICBwYXRoOiAncGFja2FnZXMvKiovZGlzdC9qcy8qLnRneicsXG4gICAgICAgICAgICBvdmVyd3JpdGU6ICd0cnVlJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHZlcmRhY2Npb0NvbmZpZyA9IHtcbiAgICAgIHN0b3JhZ2U6ICcuL3N0b3JhZ2UnLFxuICAgICAgYXV0aDogeyBodHBhc3N3ZDogeyBmaWxlOiAnLi9odHBhc3N3ZCcgfSB9LFxuICAgICAgdXBsaW5rczogeyBucG1qczogeyB1cmw6ICdodHRwczovL3JlZ2lzdHJ5Lm5wbWpzLm9yZy8nIH0gfSxcbiAgICAgIHBhY2thZ2VzOiB7fSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPixcbiAgICB9O1xuXG4gICAgZm9yIChjb25zdCBwYWNrIG9mIHByb3BzLmxvY2FsUGFja2FnZXMpIHtcbiAgICAgIGNvbnN0IGFsbG93VXBzdHJlYW0gPSBwcm9wcy5hbGxvd1Vwc3RyZWFtVmVyc2lvbnM/LmluY2x1ZGVzKHBhY2spO1xuXG4gICAgICB2ZXJkYWNjaW9Db25maWcucGFja2FnZXNbcGFja10gPSB7XG4gICAgICAgIGFjY2VzczogJyRhbGwnLFxuICAgICAgICBwdWJsaXNoOiAnJGFsbCcsXG4gICAgICAgIHByb3h5OiBhbGxvd1Vwc3RyZWFtID8gJ25wbWpzJyA6ICdub25lJyxcbiAgICAgIH07XG4gICAgfTtcbiAgICB2ZXJkYWNjaW9Db25maWcucGFja2FnZXNbJyoqJ10gPSB7XG4gICAgICBhY2Nlc3M6ICckYWxsJyxcbiAgICAgIHByb3h5OiAnbnBtanMnLFxuICAgIH07XG5cbiAgICAvLyBiYXNoIG9ubHkgZXhwYW5kcyB7Li4ufSBpZiB0aGVyZSdzIGEgLCBpbiB0aGVyZSwgb3RoZXJ3aXNlIGl0IHdpbGwgbGVhdmUgdGhlXG4gICAgLy8gYnJhY2VzIGluIGxpdGVyYWxseS4gU28gd2UgbmVlZCB0byBkbyBjYXNlIGFuYWx5c2lzIGhlcmUuIFRoYW5rcywgSSBoYXRlIGl0LlxuICAgIGNvbnN0IHRhcmJhbGxCYXNoRXhwciA9IHByb3BzLmxvY2FsUGFja2FnZXMubGVuZ3RoID09PSAxXG4gICAgICA/IGBwYWNrYWdlcy8ke3Byb3BzLmxvY2FsUGFja2FnZXNbMF19L2Rpc3QvanMvKi50Z3pgXG4gICAgICA6IGBwYWNrYWdlcy97JHtwcm9wcy5sb2NhbFBhY2thZ2VzLmpvaW4oJywnKX19L2Rpc3QvanMvKi50Z3pgO1xuXG4gICAgLy8gV2UgY3JlYXRlIGEgbWF0cml4IGpvYiBmb3IgdGhlIHRlc3QuXG4gICAgLy8gVGhpcyBqb2Igd2lsbCBydW4gYWxsIHRoZSBkaWZmZXJlbnQgdGVzdCBzdWl0ZXMgaW4gcGFyYWxsZWwuXG4gICAgY29uc3QgSk9CX0lOVEVHX01BVFJJWCA9ICdpbnRlZ19tYXRyaXgnO1xuICAgIHJ1blRlc3RzV29ya2Zsb3cuYWRkSm9iKEpPQl9JTlRFR19NQVRSSVgsIHtcbiAgICAgIGVudmlyb25tZW50OiBwcm9wcy50ZXN0RW52aXJvbm1lbnQsXG4gICAgICBydW5zT246IFtwcm9wcy50ZXN0UnVuc09uXSxcbiAgICAgIG5lZWRzOiBbSk9CX1BSRVBBUkVdLFxuICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgY29udGVudHM6IGdpdGh1Yi53b3JrZmxvd3MuSm9iUGVybWlzc2lvbi5SRUFELFxuICAgICAgICBpZFRva2VuOiBnaXRodWIud29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uV1JJVEUsXG4gICAgICB9LFxuICAgICAgZW52OiB7XG4gICAgICAgIC8vIE90aGVyd2lzZSBNYXZlbiBpcyB0b28gbm9pc3lcbiAgICAgICAgTUFWRU5fQVJHUzogJy0tbm8tdHJhbnNmZXItcHJvZ3Jlc3MnLFxuICAgICAgICAvLyBUaGlzIGlzIG5vdCBhY3R1YWxseSBhIGNhbmFyeSwgYnV0IHRoaXMgcHJldmVudHMgdGhlIHRlc3RzIGZyb20gbWFraW5nXG4gICAgICAgIC8vIGFzc3VtcHRpb25zIGFib3V0IHRoZSBhdmFpbGFiaWxpdHkgb2Ygc291cmNlIHBhY2thZ2VzLlxuICAgICAgICBJU19DQU5BUlk6ICd0cnVlJyxcbiAgICAgICAgQ0k6ICd0cnVlJyxcbiAgICAgICAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgYmVjYXVzZSB0aGUgbmV3IHZlcnNpb25pbmcgb2YgQGF3cy1jZGsvY2xpLWxpYi1hbHBoYVxuICAgICAgICAvLyBtYXRjaGVzIHRoZSBDTEkgYW5kIG5vdCB0aGUgZnJhbWV3b3JrLlxuICAgICAgICBDTElfTElCX1ZFUlNJT05fTUlSUk9SU19DTEk6ICd0cnVlJyxcbiAgICAgIH0sXG4gICAgICAvLyBEb24ndCBydW4gYWdhaW4gb24gdGhlIG1lcmdlIHF1ZXVlLCB3ZSBhbHJlYWR5IGdvdCBjb25maXJtYXRpb24gdGhhdCBpdCB3b3JrcyBhbmQgdGhlXG4gICAgICAvLyB0ZXN0cyBhcmUgcXVpdGUgZXhwZW5zaXZlLlxuICAgICAgaWY6IGBnaXRodWIuZXZlbnRfbmFtZSAhPSAnbWVyZ2VfZ3JvdXAnICYmICR7Tk9UX0ZMQUdHRURfRVhQUn1gLFxuICAgICAgc3RyYXRlZ3k6IHtcbiAgICAgICAgZmFpbEZhc3Q6IGZhbHNlLFxuICAgICAgICBtYXRyaXg6IHtcbiAgICAgICAgICBkb21haW46IHtcbiAgICAgICAgICAgIHN1aXRlOiBbXG4gICAgICAgICAgICAgICdjbGktaW50ZWctdGVzdHMnLFxuICAgICAgICAgICAgICAnaW5pdC1jc2hhcnAnLFxuICAgICAgICAgICAgICAnaW5pdC1mc2hhcnAnLFxuICAgICAgICAgICAgICAnaW5pdC1nbycsXG4gICAgICAgICAgICAgICdpbml0LWphdmEnLFxuICAgICAgICAgICAgICAnaW5pdC1qYXZhc2NyaXB0JyxcbiAgICAgICAgICAgICAgJ2luaXQtcHl0aG9uJyxcbiAgICAgICAgICAgICAgJ2luaXQtdHlwZXNjcmlwdC1hcHAnLFxuICAgICAgICAgICAgICAnaW5pdC10eXBlc2NyaXB0LWxpYicsXG4gICAgICAgICAgICAgICd0b29sLWludGVncmF0aW9ucycsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgc3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdEb3dubG9hZCBidWlsZCBhcnRpZmFjdHMnLFxuICAgICAgICAgIHVzZXM6ICdhY3Rpb25zL2Rvd25sb2FkLWFydGlmYWN0QHY0JyxcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICBuYW1lOiAnYnVpbGQtYXJ0aWZhY3QnLFxuICAgICAgICAgICAgcGF0aDogJ3BhY2thZ2VzJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ1NldCB1cCBKREsgMTgnLFxuICAgICAgICAgIGlmOiAnbWF0cml4LnN1aXRlID09IFxcJ2luaXQtamF2YVxcJyB8fCBtYXRyaXguc3VpdGUgPT0gXFwnY2xpLWludGVnLXRlc3RzXFwnJyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9zZXR1cC1qYXZhQHY0JyxcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAnamF2YS12ZXJzaW9uJzogJzE4JyxcbiAgICAgICAgICAgICdkaXN0cmlidXRpb24nOiAnY29ycmV0dG8nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQXV0aGVudGljYXRlIFZpYSBPSURDIFJvbGUnLFxuICAgICAgICAgIGlkOiAnY3JlZHMnLFxuICAgICAgICAgIHVzZXM6ICdhd3MtYWN0aW9ucy9jb25maWd1cmUtYXdzLWNyZWRlbnRpYWxzQHY0JyxcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAnYXdzLXJlZ2lvbic6ICd1cy1lYXN0LTEnLFxuICAgICAgICAgICAgJ3JvbGUtZHVyYXRpb24tc2Vjb25kcyc6IDQgKiA2MCAqIDYwLFxuICAgICAgICAgICAgLy8gRXhwZWN0IHRoaXMgaW4gRW52aXJvbm1lbnQgVmFyaWFibGVzXG4gICAgICAgICAgICAncm9sZS10by1hc3N1bWUnOiAnJHt7IHZhcnMuQVdTX1JPTEVfVE9fQVNTVU1FX0ZPUl9URVNUSU5HIH19JyxcbiAgICAgICAgICAgICdyb2xlLXNlc3Npb24tbmFtZSc6ICdydW4tdGVzdHNAYXdzLWNkay1jbGktaW50ZWcnLFxuICAgICAgICAgICAgJ291dHB1dC1jcmVkZW50aWFscyc6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgZm9yIHRoZSBpbml0IHRlc3RzIHRvIHN1Y2NlZWQsIHRoZXkgc2V0IHVwIGEgZ2l0IHJlcG8uXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnU2V0IGdpdCBpZGVudGl0eScsXG4gICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAnZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgXCJhd3MtY2RrLWNsaS1pbnRlZ1wiJyxcbiAgICAgICAgICAgICdnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgXCJub3JlcGx5QGV4YW1wbGUuY29tXCInLFxuICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnSW5zdGFsbCBWZXJkYWNjaW8nLFxuICAgICAgICAgIHJ1bjogJ25wbSBpbnN0YWxsIC1nIHZlcmRhY2NpbyBwbTInLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0NyZWF0ZSBWZXJkYWNjaW8gY29uZmlnJyxcbiAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICdta2RpciAtcCAkSE9NRS8uY29uZmlnL3ZlcmRhY2NpbycsXG4gICAgICAgICAgICBgZWNobyAnJHtKU09OLnN0cmluZ2lmeSh2ZXJkYWNjaW9Db25maWcpfScgPiAkSE9NRS8uY29uZmlnL3ZlcmRhY2Npby9jb25maWcueWFtbGAsXG4gICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdTdGFydCBWZXJkYWNjaW8nLFxuICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgJ3BtMiBzdGFydCB2ZXJkYWNjaW8gLS0gLS1jb25maWcgJEhPTUUvLmNvbmZpZy92ZXJkYWNjaW8vY29uZmlnLnlhbWwnLFxuICAgICAgICAgICAgJ3NsZWVwIDUgIyBXYWl0IGZvciBWZXJkYWNjaW8gdG8gc3RhcnQnLFxuICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQ29uZmlndXJlIG5wbSB0byB1c2UgbG9jYWwgcmVnaXN0cnknLFxuICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgLy8gVGhpcyB0b2tlbiBpcyBhIGJvZ3VzIHRva2VuLiBJdCBkb2Vzbid0IHJlcHJlc2VudCBhbnkgYWN0dWFsIHNlY3JldCwgaXQganVzdCBuZWVkcyB0byBleGlzdC5cbiAgICAgICAgICAgICdlY2hvIFxcJy8vbG9jYWxob3N0OjQ4NzMvOl9hdXRoVG9rZW49XCJNV1JqTkRVM09URTFOVGxqWVdVeU9URmtNV0prT0dVeVlUSXdaV013TlRJNllUZ3daamt5TkRFME56Z3dZV1F6TlE9PVwiXFwnID4gfi8ubnBtcmMnLFxuICAgICAgICAgICAgJ2VjaG8gXFwncmVnaXN0cnk9aHR0cDovL2xvY2FsaG9zdDo0ODczL1xcJyA+PiB+Ly5ucG1yYycsXG4gICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdGaW5kIGFuIGxvY2FsbHkgcHVibGlzaCBhbGwgdGFyYmFsbHMnLFxuICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgYGZvciBwa2cgaW4gJHt0YXJiYWxsQmFzaEV4cHJ9OyBkb2AsXG4gICAgICAgICAgICAnICBucG0gcHVibGlzaCAkcGtnJyxcbiAgICAgICAgICAgICdkb25lJyxcbiAgICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0Rvd25sb2FkIGFuZCBpbnN0YWxsIHRoZSB0ZXN0IGFydGlmYWN0JyxcbiAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICducG0gaW5zdGFsbCBAYXdzLWNkay10ZXN0aW5nL2NsaS1pbnRlZycsXG4gICAgICAgICAgICAvLyBNb3ZlIHRoZSBpbnN0YWxsZWQgZmlsZXMgdG8gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LCBiZWNhdXNlIGFzXG4gICAgICAgICAgICAvLyBjdXJyZW50bHkgY29uZmlndXJlZCB0aGUgdGVzdHMgd29uJ3QgcnVuIGZyb20gYW4gaW5zdGFsbGVkXG4gICAgICAgICAgICAvLyBub2RlX21vZHVsZXMgZGlyZWN0b3J5LlxuICAgICAgICAgICAgJ212IC4vbm9kZV9tb2R1bGVzL0Bhd3MtY2RrLXRlc3RpbmcvY2xpLWludGVnLyogLicsXG4gICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdEZXRlcm1pbmUgbGF0ZXN0IHBhY2thZ2UgdmVyc2lvbnMnLFxuICAgICAgICAgIGlkOiAndmVyc2lvbnMnLFxuICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgJ0NMSV9WRVJTSU9OPSQoY2QgJHtUTVBESVI6LS90bXB9ICYmIG5wbSB2aWV3IGF3cy1jZGsgdmVyc2lvbiknLFxuICAgICAgICAgICAgJ2VjaG8gXCJDTEkgdmVyc2lvbjogJHtDTElfVkVSU0lPTn1cIicsXG4gICAgICAgICAgICAnZWNobyBcImNsaV92ZXJzaW9uPSR7Q0xJX1ZFUlNJT059XCIgPj4gJEdJVEhVQl9PVVRQVVQnLFxuICAgICAgICAgICAgJ0xJQl9WRVJTSU9OPSQoY2QgJHtUTVBESVI6LS90bXB9ICYmIG5wbSB2aWV3IGF3cy1jZGstbGliIHZlcnNpb24pJyxcbiAgICAgICAgICAgICdlY2hvIFwibGliIHZlcnNpb246ICR7TElCX1ZFUlNJT059XCInLFxuICAgICAgICAgICAgJ2VjaG8gXCJsaWJfdmVyc2lvbj0ke0xJQl9WRVJTSU9OfVwiID4+ICRHSVRIVUJfT1VUUFVUJyxcbiAgICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ1J1biB0aGUgdGVzdCBzdWl0ZTogJHt7IG1hdHJpeC5zdWl0ZSB9fScsXG4gICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAnYmluL3J1bi1zdWl0ZSAtLXVzZS1jbGktcmVsZWFzZT0ke3sgc3RlcHMudmVyc2lvbnMub3V0cHV0cy5jbGlfdmVyc2lvbiB9fSAtLWZyYW1ld29yay12ZXJzaW9uPSR7eyBzdGVwcy52ZXJzaW9ucy5vdXRwdXRzLmxpYl92ZXJzaW9uIH19ICR7eyBtYXRyaXguc3VpdGUgfX0nLFxuICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICAvLyBDb25jdXJyZW5jeSBvbmx5IGZvciBsb25nLXJ1bm5pbmcgY2xpLWludGVnLXRlc3RzXG4gICAgICAgICAgICBKRVNUX1RFU1RfQ09OQ1VSUkVOVDogXCIke3sgbWF0cml4LnN1aXRlID09ICdjbGktaW50ZWctdGVzdHMnICYmICd0cnVlJyB8fCAnZmFsc2UnIH19XCIsXG4gICAgICAgICAgICBKU0lJX1NJTEVOQ0VfV0FSTklOR19ERVBSRUNBVEVEX05PREVfVkVSU0lPTjogJ3RydWUnLFxuICAgICAgICAgICAgSlNJSV9TSUxFTkNFX1dBUk5JTkdfVU5URVNURURfTk9ERV9WRVJTSU9OOiAndHJ1ZScsXG4gICAgICAgICAgICBKU0lJX1NJTEVOQ0VfV0FSTklOR19LTk9XTl9CUk9LRU5fTk9ERV9WRVJTSU9OOiAndHJ1ZScsXG4gICAgICAgICAgICBET0NLRVJIVUJfRElTQUJMRUQ6ICd0cnVlJyxcbiAgICAgICAgICAgIEFXU19SRUdJT05TOiBbJ3VzLWVhc3QtMicsICdldS13ZXN0LTEnLCAnZXUtbm9ydGgtMScsICdhcC1ub3J0aGVhc3QtMScsICdhcC1zb3V0aC0xJ10uam9pbignLCcpLFxuICAgICAgICAgICAgQ0RLX01BSk9SX1ZFUlNJT046ICcyJyxcbiAgICAgICAgICAgIFJFTEVBU0VfVEFHOiAnbGF0ZXN0JyxcbiAgICAgICAgICAgIEdJVEhVQl9UT0tFTjogJyR7eyBzZWNyZXRzLkdJVEhVQl9UT0tFTiB9fScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICAvLyBBZGQgYSBqb2IgdGhhdCBjb2xsYXRlcyBhbGwgbWF0cml4IGpvYnMgaW50byBhIHNpbmdsZSBzdGF0dXNcbiAgICAvLyBUaGlzIGlzIHJlcXVpcmVkIHNvIHRoYXQgd2UgY2FuIHNldHVwIHJlcXVpcmVkIHN0YXR1cyBjaGVja3NcbiAgICAvLyBhbmQgaWYgd2UgZXZlciBjaGFuZ2UgdGhlIHRlc3QgbWF0cml4LCB3ZSBkb24ndCBuZWVkIHRvIHVwZGF0ZVxuICAgIC8vIHRoZSBzdGF0dXMgY2hlY2sgY29uZmlndXJhdGlvbi5cbiAgICBydW5UZXN0c1dvcmtmbG93LmFkZEpvYignaW50ZWcnLCB7XG4gICAgICBwZXJtaXNzaW9uczoge30sXG4gICAgICBydW5zT246IFtwcm9wcy50ZXN0UnVuc09uXSxcbiAgICAgIG5lZWRzOiBbSk9CX1BSRVBBUkUsIEpPQl9JTlRFR19NQVRSSVhdLFxuICAgICAgaWY6ICdhbHdheXMoKScsXG4gICAgICBzdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0ludGVnIHRlc3QgcmVzdWx0JyxcbiAgICAgICAgICBydW46IGBlY2hvIFxcJHt7IG5lZWRzLiR7Sk9CX0lOVEVHX01BVFJJWH0ucmVzdWx0IH19YCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIC8vIERvbid0IGZhaWwgdGhlIGpvYiBpZiB0aGUgdGVzdCB3YXMgc3VjY2Vzc2Z1bCBvciBpbnRlbnRpb25hbGx5IHNraXBwZWRcbiAgICAgICAgICBpZjogYFxcJHt7ICEoY29udGFpbnMoZnJvbUpTT04oJ1tcInN1Y2Nlc3NcIiwgXCJza2lwcGVkXCJdJyksIG5lZWRzLiR7Sk9CX1BSRVBBUkV9LnJlc3VsdCkgJiYgY29udGFpbnMoZnJvbUpTT04oJ1tcInN1Y2Nlc3NcIiwgXCJza2lwcGVkXCJdJyksIG5lZWRzLiR7Sk9CX0lOVEVHX01BVFJJWH0ucmVzdWx0KSkgfX1gLFxuICAgICAgICAgIG5hbWU6ICdTZXQgc3RhdHVzIGJhc2VkIG9uIG1hdHJpeCBqb2InLFxuICAgICAgICAgIHJ1bjogJ2V4aXQgMScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
357
+ CdkCliIntegTestsWorkflow[_a] = { fqn: "cdklabs-projen-project-types.CdkCliIntegTestsWorkflow", version: "0.2.11" };
358
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNsaS1pbnRlZy10ZXN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jZGstY2xpLWludGVnLXRlc3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQXVEO0FBRXZELE1BQU0sZ0JBQWdCLEdBQUcsNEVBQTRFLENBQUM7QUE2RXRHOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBeUJHO0FBQ0gsTUFBYSx3QkFBeUIsU0FBUSxrQkFBUztJQUNyRCxZQUFZLElBQTRCLEVBQUUsS0FBb0M7UUFDNUUsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRVosTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN6QyxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNELElBQUksQ0FBQyxhQUFhLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hDLE1BQU0sSUFBSSxLQUFLLENBQUMsdUNBQXVDLENBQUMsQ0FBQztRQUMzRCxDQUFDO1FBQ0MsYUFBcUIsQ0FBQyxRQUFrQyxDQUFDO1FBRTNELEtBQUssQ0FBQyxxQkFBcUIsRUFBRSxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM1QyxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDeEMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUN4RixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7WUFDbEIsaUJBQWlCLEVBQUU7Z0JBQ2pCLFFBQVEsRUFBRSxDQUFDLE1BQU0sQ0FBQzthQUNuQjtZQUNELG9FQUFvRTtZQUNwRSxVQUFVLEVBQUUsRUFBRTtZQUNkLDhDQUE4QztZQUM5QyxnQkFBZ0IsRUFBRSxFQUFF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LEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDMUIsS0FBSyxFQUFFLENBQUMsV0FBVyxFQUFFLGdCQUFnQixDQUFDO1lBQ3RDLEVBQUUsRUFBRSxVQUFVO1lBQ2QsS0FBSyxFQUFFO2dCQUNMO29CQUNFLElBQUksRUFBRSxtQkFBbUI7b0JBQ3pCLEdBQUcsRUFBRSxtQkFBbUIsZ0JBQWdCLFlBQVk7aUJBQ3JEO2dCQUNEO29CQUNFLHlFQUF5RTtvQkFDekUsRUFBRSxFQUFFLDZEQUE2RCxXQUFXLGtFQUFrRSxnQkFBZ0IsY0FBYztvQkFDNUssSUFBSSxFQUFFLGdDQUFnQztvQkFDdEMsR0FBRyxFQUFFLFFBQVE7aUJBQ2Q7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBdlVILDREQXdVQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZ2l0aHViLCBqYXZhc2NyaXB0IH0gZnJvbSAncHJvamVuJztcblxuY29uc3QgTk9UX0ZMQUdHRURfRVhQUiA9IFwiIWNvbnRhaW5zKGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QubGFiZWxzLioubmFtZSwgJ3ByL2V4ZW1wdC1pbnRlZy10ZXN0JylcIjtcblxuLyoqXG4gKiBPcHRpb25zIGZvciBhdG1vc3BoZXJlIHNlcnZpY2UgdXNhZ2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXRtb3NwaGVyZU9wdGlvbnMge1xuICAvKipcbiAgICogQXRtb3NwaGVyZSBzZXJ2aWNlIGVuZHBvaW50LlxuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnQ6IHN0cmluZztcbiAgLyoqXG4gICAqIFdoaWNoIHBvb2wgdG8gcmV0cmlldmUgZW52aXJvbm1lbnRzIGZyb20uXG4gICAqL1xuICByZWFkb25seSBwb29sOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBPSURDIHJvbGUgdG8gYXNzdW1lIHByaW9yIHRvIHVzaW5nIGF0bW9zcGhlcmUuIE11c3QgYmUgYWxsb3cgbGlzdGVkXG4gICAqIG9uIHRoZSBzZXJ2aWNlIGVuZHBvaW50LlxuICAgKi9cbiAgcmVhZG9ubHkgb2lkY1JvbGVBcm46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZGtDbGlJbnRlZ1Rlc3RzV29ya2Zsb3dQcm9wcyB7XG4gIC8qKlxuICAgKiBSdW5uZXJzIGZvciB0aGUgd29ya2Zsb3dcbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkUnVuc09uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJ1bm5lcnMgZm9yIHRoZSB3b3JrZmxvd1xuICAgKi9cbiAgcmVhZG9ubHkgdGVzdFJ1bnNPbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBHaXRIdWIgZW52aXJvbm1lbnQgbmFtZSBmb3IgYXBwcm92YWxzXG4gICAqXG4gICAqIE1VU1QgYmUgY29uZmlndXJlZCB0byByZXF1aXJlIG1hbnVhbCBhcHByb3ZhbC5cbiAgICovXG4gIHJlYWRvbmx5IGFwcHJvdmFsRW52aXJvbm1lbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogR2l0SHViIGVudmlyb25tZW50IG5hbWUgZm9yIHJ1bm5pbmcgdGhlIHRlc3RzXG4gICAqXG4gICAqIE1VU1QgYmUgY29uZmlndXJlZCB3aXRob3V0IGFwcHJvdmFscywgYW5kIHdpdGggdGhlIGZvbGxvd2luZyB2YXJzIGFuZCBzZWNyZXRzOlxuICAgKlxuICAgKiAtIHZhcnM6IEFXU19ST0xFX1RPX0FTU1VNRV9GT1JfVEVTVElOR1xuICAgKlxuICAgKiBBbmQgdGhlIHJvbGUgbmVlZHMgdG8gYmUgY29uZmlndXJlZCB0byBhbGxvdyB0aGUgQXNzdW1lUm9sZSBvcGVyYXRpb24uXG4gICAqL1xuICByZWFkb25seSB0ZXN0RW52aXJvbm1lbnQ6IHN0cmluZztcblxuICAvKipcbiAgICogUGFja2FnZXMgdGhhdCBhcmUgbG9jYWxseSB0cmFuc2ZlcmVkICh3ZSB3aWxsIG5ldmVyIHVzZSB0aGUgdXBzdHJlYW0gdmVyc2lvbnMpXG4gICAqXG4gICAqIFRha2VzIHBhY2thZ2UgbmFtZXM7IHRoZXNlIGFyZSBleHBlY3RlZCB0byBsaXZlIGluIGBwYWNrYWdlcy88TkFNRT4vZGlzdC9qc2AuXG4gICAqL1xuICByZWFkb25seSBsb2NhbFBhY2thZ2VzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIG9mZmljaWFsIHJlcG8gdGhpcyB3b3JrZmxvdyBpcyB1c2VkIGZvclxuICAgKi9cbiAgcmVhZG9ubHkgc291cmNlUmVwbzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBJZiBnaXZlbiwgYWxsb3dzIGFjY2Vzc2luZyB1cHN0cmVhbSB2ZXJzaW9ucyBvZiB0aGVzZSBwYWNrYWdlc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vIHVwc3RyZWFtIHZlcnNpb25zXG4gICAqL1xuICByZWFkb25seSBhbGxvd1Vwc3RyZWFtVmVyc2lvbnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogRW5hYmxlIGF0bW9zcGhlcmUgc2VydmljZSB0byByZXRyaWV2ZSBBV1MgdGVzdCBlbnZpcm9ubWVudHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYXRtb3NwaGVyZSBpcyBub3QgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlQXRtb3NwaGVyZT86IEF0bW9zcGhlcmVPcHRpb25zO1xufVxuXG4vKipcbiAqIEFkZCBhIHdvcmtmbG93IGZvciBydW5uaW5nIHRoZSB0ZXN0c1xuICpcbiAqIFRoaXMgTVVTVCBiZSBhIHNlcGFyYXRlIHdvcmtmbG93IHRoYXQgcnVucyBpbiBwcml2aWxlZ2VkIGNvbnRleHQuIFdlIGhhdmUgYSBjb3VwbGVcbiAqIG9mIG9wdGlvbnM6XG4gKlxuICogLSBgd29ya2Zsb3dfcnVuYDogd2UgY2FuIHRyaWdnZXIgYSBwcml2aWxlZ2VkIHdvcmtmbG93IHJ1biBhZnRlciB0aGUgdW5wcml2aWxlZ2VkXG4gKiAgIGBwdWxsX3JlcXVlc3RgIHdvcmtmbG93IGZpbmlzaGVzIGFuZCByZXVzZSBpdHMgb3V0cHV0IGFydGlmYWN0cy4gVGhlXG4gKiAgIHByb2JsZW0gaXMgdGhhdCB0aGUgc2Vjb25kIHJ1biBpcyBkaXNjb25uZWN0ZWQgZnJvbSB0aGUgUFIgc28gd2Ugd291bGQgbmVlZFxuICogICB0byBzY3JpcHQgaW4gdmlzaWJpbGl0eSBmb3IgYXBwcm92YWxzIGFuZCBzdWNjZXNzIChieSBwb3N0aW5nIGNvbW1lbnRzLCBmb3JcbiAqICAgZXhhbXBsZSlcbiAqIC0gVXNlIG9ubHkgYSBgcHVsbF9yZXF1ZXN0X3RhcmdldGAgd29ya2Zsb3cgb24gdGhlIFBSOiB0aGlzIGVpdGhlciB3b3VsZCBydW5cbiAqICAgYSBwcml2aWxlZ2VkIHdvcmtmbG93IG9uIGFueSB1c2VyIGNvZGUgc3VibWlzc2lvbiAobWlnaHQgYmUgZmluZSBnaXZlbiB0aGVcbiAqICAgd29ya2Zsb3cncyBgcGVybWlzc2lvbnNgLCBidXQgSSdtIHN1cmUgdGhpcyB3aWxsIG1ha2Ugb3VyIHNlY3VyaXR5IHRlYW0gdW5lYXN5XG4gKiAgIGFueXdheSksIE9SIHRoaXMgd291bGQgbWVhbiBhbnkgYnVpbGQgbmVlZHMgaHVtYW4gY29uZmlybWF0aW9uIHdoaWNoIG1lYW5zIHNsb3dcbiAqICAgZmVlZGJhY2suXG4gKiAtIFVzZSBhIGBwdWxsX3JlcXVlc3RgIGZvciBhIHJlZ3VsYXIgZmFzdC1mZWVkYmFjayBidWlsZCwgYW5kIGEgc2VwYXJhdGVcbiAqICAgYHB1bGxfcmVxdWVzdF90YXJnZXRgIGZvciB0aGUgaW50ZWcgdGVzdHMuIFRoaXMgbWVhbnMgd2UncmUgYnVpbGRpbmcgdHdpY2UuXG4gKlxuICogVWx0aW1hdGVseSwgb3VyIGJ1aWxkIGlzbid0IGhlYXZ5IGVub3VnaCB0byBwdXQgaW4gYSBsb3Qgb2YgZWZmb3J0IGRlZHVwaW5nXG4gKiBpdCwgc28gd2UnbGwgZ28gd2l0aCB0aGUgc2ltcGxlc3Qgc29sdXRpb24gd2hpY2ggaXMgdGhlIGxhc3Qgb25lOiAyXG4gKiBpbmRlcGVuZGVudCB3b3JrZmxvd3MuXG4gKlxuICogcHJvamVuIGRvZXNuJ3QgbWFrZSBpdCBlYXN5IHRvIGNvcHkgdGhlIHJlbGV2YW50IHBhcnRzIG9mIHRoZSAnYnVpbGQnIHdvcmtmbG93LFxuICogc28gdGhleSdyZSB1bmZvcnR1bmF0ZWx5IGR1cGxpY2F0ZWQgaGVyZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENka0NsaUludGVnVGVzdHNXb3JrZmxvdyBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHJlcG86IGphdmFzY3JpcHQuTm9kZVByb2plY3QsIHByb3BzOiBDZGtDbGlJbnRlZ1Rlc3RzV29ya2Zsb3dQcm9wcykge1xuICAgIHN1cGVyKHJlcG8pO1xuXG4gICAgY29uc3QgYnVpbGRXb3JrZmxvdyA9IHJlcG8uYnVpbGRXb3JrZmxvdztcbiAgICBjb25zdCBydW5UZXN0c1dvcmtmbG93ID0gcmVwby5naXRodWI/LmFkZFdvcmtmbG93KCdpbnRlZycpO1xuICAgIGlmICghYnVpbGRXb3JrZmxvdyB8fCAhcnVuVGVzdHNXb3JrZmxvdykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFeHBlY3RlZCBidWlsZCBhbmQgcnVuIHRlc3RzIHdvcmtmbG93Jyk7XG4gICAgfVxuICAgICgoYnVpbGRXb3JrZmxvdyBhcyBhbnkpLndvcmtmbG93IGFzIGdpdGh1Yi5HaXRodWJXb3JrZmxvdyk7XG5cbiAgICBwcm9wcy5hbGxvd1Vwc3RyZWFtVmVyc2lvbnM/LmZvckVhY2goKHBhY2spID0+IHtcbiAgICAgIGlmICghcHJvcHMubG9jYWxQYWNrYWdlcy5pbmNsdWRlcyhwYWNrKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFBhY2thZ2UgaW4gYWxsb3dVcHN0cmVhbVZlcnNpb25zIGJ1dCBub3QgaW4gbG9jYWxQYWNrYWdlczogJHtwYWNrfWApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgcnVuVGVzdHNXb3JrZmxvdy5vbih7XG4gICAgICBwdWxsUmVxdWVzdFRhcmdldDoge1xuICAgICAgICBicmFuY2hlczogWydtYWluJ10sXG4gICAgICB9LFxuICAgICAgLy8gTmVlZHMgdG8gdHJpZ2dlciBhbmQgcmVwb3J0IHN1Y2Nlc3Mgb24gbWVyZ2UgcXVldWUgYnVpbGRzIGFzIHdlbGxcbiAgICAgIG1lcmdlR3JvdXA6IHt9LFxuICAgICAgLy8gTmV2ZXIgaHVydHMgdG8gYmUgYWJsZSB0byBydW4gdGhpcyBtYW51YWxseVxuICAgICAgd29ya2Zsb3dEaXNwYXRjaDoge30sXG4gICAgfSk7XG4gICAgLy8gVGhlICdidWlsZCcgcGFydCBydW5zIG9uIHRoZSAnaW50ZWctYXBwcm92YWwnIGVudmlyb25tZW50LCB3aGljaCByZXF1aXJlc1xuICAgIC8vIGFwcHJvdmFsLiBUaGUgYWN0dWFsIHJ1bnMgYWNjZXNzIHRoZSByZWFsIGVudmlyb25tZW50LCBub3QgcmVxdWlyaW5nIGFwcHJvdmFsXG4gICAgLy8gYW55bW9yZS5cbiAgICAvL1xuICAgIC8vIFRoaXMgaXMgZm9yIDIgcmVhc29uczpcbiAgICAvLyAtIFRoZSBidWlsZCBqb2IgaXMgdGhlIGZpcnN0IG9uZSB0aGF0IHJ1bnMuIFRoYXQgbWVhbnMgeW91IGdldCBhc2tlZCBhcHByb3ZhbFxuICAgIC8vICAgaW1tZWRpYXRlbHkgYWZ0ZXIgcHVzaCwgaW5zdGVhZCBvZiA1IG1pbnV0ZXMgbGF0ZXIgYWZ0ZXIgdGhlIGJ1aWxkIGNvbXBsZXRlcy5cbiAgICAvLyAtIFRoZSBidWlsZCBqb2IgaXMgb25seSBvbmUgam9iLCB2ZXJzdXMgdGhlIHRlc3RzIHdoaWNoIGFyZSBhIG1hdHJpeCBidWlsZC5cbiAgICAvLyAgIElmIHRoZSBtYXRyaXggdGVzdCBqb2IgbmVlZHMgYXBwcm92YWwsIHRoZSBQdWxsIFJlcXVlc3QgdGltZWxpbmUgZ2V0cyBzcGFtbWVkXG4gICAgLy8gICB3aXRoIGFuIGFwcHJvdmFsIHJlcXVlc3QgZm9yIGV2ZXJ5IGluZGl2aWR1YWwgcnVuLlxuICAgIGNvbnN0IEpPQl9QUkVQQVJFID0gJ3ByZXBhcmUnO1xuICAgIHJ1blRlc3RzV29ya2Zsb3cuYWRkSm9iKEpPQl9QUkVQQVJFLCB7XG4gICAgICBlbnZpcm9ubWVudDogcHJvcHMuYXBwcm92YWxFbnZpcm9ubWVudCxcbiAgICAgIHJ1bnNPbjogW3Byb3BzLmJ1aWxkUnVuc09uXSxcbiAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgIGNvbnRlbnRzOiBnaXRodWIud29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uUkVBRCxcbiAgICAgIH0sXG4gICAgICBlbnY6IHtcbiAgICAgICAgQ0k6ICd0cnVlJyxcbiAgICAgIH0sXG4gICAgICAvLyBEb24ndCBydW4gYWdhaW4gb24gdGhlIG1lcmdlIHF1ZXVlLCB3ZSBhbHJlYWR5IGdvdCBjb25maXJtYXRpb24gdGhhdCBpdCB3b3JrcyBhbmQgdGhlXG4gICAgICAvLyB0ZXN0cyBhcmUgcXVpdGUgZXhwZW5zaXZlLlxuICAgICAgaWY6IGBnaXRodWIuZXZlbnRfbmFtZSAhPSAnbWVyZ2VfZ3JvdXAnICYmICR7Tk9UX0ZMQUdHRURfRVhQUn1gLFxuICAgICAgc3RlcHM6IFtcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdDaGVja291dCcsXG4gICAgICAgICAgdXNlczogJ2FjdGlvbnMvY2hlY2tvdXRAdjQnLFxuICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgIC8vIElNUE9SVEFOVCEgVGhpcyBtdXN0IGJlIGBoZWFkLnNoYWAgbm90IGBoZWFkLnJlZmAsIG90aGVyd2lzZSB3ZVxuICAgICAgICAgICAgLy8gYXJlIHZ1bG5lcmFibGUgdG8gYSBUT0NUT1UgYXR0YWNrLlxuICAgICAgICAgICAgcmVmOiAnJHt7IGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QuaGVhZC5zaGEgfX0nLFxuICAgICAgICAgICAgcmVwb3NpdG9yeTogJyR7eyBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LmhlYWQucmVwby5mdWxsX25hbWUgfX0nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIC8vIFdlIHVzZWQgdG8gZmV0Y2ggdGFncyBmcm9tIHRoZSByZXBvIHVzaW5nICdjaGVja291dCcsIGJ1dCBpZiBpdCdzIGEgZm9ya1xuICAgICAgICAvLyB0aGUgdGFncyB3b24ndCBiZSB0aGVyZSwgc28gd2UgaGF2ZSB0byBmZXRjaCB0aGVtIGZyb20gdXBzdHJlYW0uXG4gICAgICAgIC8vXG4gICAgICAgIC8vIFRoZSB0YWdzIGFyZSBuZWNlc3NhcnkgdG8gcmVhbGlzdGljYWxseSBidW1wIHZlcnNpb25zXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnRmV0Y2ggdGFncyBmcm9tIG9yaWdpbiByZXBvJyxcbiAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgIC8vIENhbiBiZSBlaXRoZXIgYXdzL2F3cy1jZGstY2xpIG9yIGF3cy9hd3MtY2RrLWNsaS10ZXN0aW5nXG4gICAgICAgICAgICAvLyAoTXVzdCBjbG9uZSBvdmVyIEhUVFBTIGJlY2F1c2Ugd2UgaGF2ZSBubyBTU0ggYXV0aCBzZXQgdXApXG4gICAgICAgICAgICBgZ2l0IHJlbW90ZSBhZGQgdXBzdHJlYW0gaHR0cHM6Ly9naXRodWIuY29tLyR7cHJvcHMuc291cmNlUmVwb30uZ2l0YCxcbiAgICAgICAgICAgICdnaXQgZmV0Y2ggdXBzdHJlYW0gXFwncmVmcy90YWdzLyo6cmVmcy90YWdzLypcXCcnLFxuICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnU2V0dXAgTm9kZS5qcycsXG4gICAgICAgICAgdXNlczogJ2FjdGlvbnMvc2V0dXAtbm9kZUB2NCcsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgJ25vZGUtdmVyc2lvbic6ICdsdHMvKicsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdJbnN0YWxsIGRlcGVuZGVuY2llcycsXG4gICAgICAgICAgcnVuOiAneWFybiBpbnN0YWxsIC0tY2hlY2stZmlsZXMnLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0J1bXAgdG8gcmVhbGlzdGljIHZlcnNpb25zJyxcbiAgICAgICAgICBydW46ICd5YXJuIHdvcmtzcGFjZXMgcnVuIGJ1bXAnLFxuICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgVEVTVElOR19DQU5ESURBVEU6ICd0cnVlJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ2J1aWxkJyxcbiAgICAgICAgICBydW46ICducHggcHJvamVuIGJ1aWxkJyxcbiAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgIC8vIFRoaXMgaXMgbmVjZXNzYXJ5IHRvIHByZXZlbnQgcHJvamVuIGZyb20gcmVzZXR0aW5nIHRoZSB2ZXJzaW9uIG51bWJlcnMgdG9cbiAgICAgICAgICAgIC8vIDAuMC4wIGR1cmluZyBpdHMgc3ludGhlc2lzLlxuICAgICAgICAgICAgUkVMRUFTRTogJ3RydWUnLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnVXBsb2FkIGFydGlmYWN0JyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy91cGxvYWQtYXJ0aWZhY3RAdjQuNC4wJyxcbiAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICBuYW1lOiAnYnVpbGQtYXJ0aWZhY3QnLFxuICAgICAgICAgICAgcGF0aDogJ3BhY2thZ2VzLyoqL2Rpc3QvanMvKi50Z3onLFxuICAgICAgICAgICAgb3ZlcndyaXRlOiAndHJ1ZScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBjb25zdCB2ZXJkYWNjaW9Db25maWcgPSB7XG4gICAgICBzdG9yYWdlOiAnLi9zdG9yYWdlJyxcbiAgICAgIGF1dGg6IHsgaHRwYXNzd2Q6IHsgZmlsZTogJy4vaHRwYXNzd2QnIH0gfSxcbiAgICAgIHVwbGlua3M6IHsgbnBtanM6IHsgdXJsOiAnaHR0cHM6Ly9yZWdpc3RyeS5ucG1qcy5vcmcvJyB9IH0sXG4gICAgICBwYWNrYWdlczoge30gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG4gICAgfTtcblxuICAgIGZvciAoY29uc3QgcGFjayBvZiBwcm9wcy5sb2NhbFBhY2thZ2VzKSB7XG4gICAgICBjb25zdCBhbGxvd1Vwc3RyZWFtID0gcHJvcHMuYWxsb3dVcHN0cmVhbVZlcnNpb25zPy5pbmNsdWRlcyhwYWNrKTtcblxuICAgICAgdmVyZGFjY2lvQ29uZmlnLnBhY2thZ2VzW3BhY2tdID0ge1xuICAgICAgICBhY2Nlc3M6ICckYWxsJyxcbiAgICAgICAgcHVibGlzaDogJyRhbGwnLFxuICAgICAgICBwcm94eTogYWxsb3dVcHN0cmVhbSA/ICducG1qcycgOiAnbm9uZScsXG4gICAgICB9O1xuICAgIH07XG4gICAgdmVyZGFjY2lvQ29uZmlnLnBhY2thZ2VzWycqKiddID0ge1xuICAgICAgYWNjZXNzOiAnJGFsbCcsXG4gICAgICBwcm94eTogJ25wbWpzJyxcbiAgICB9O1xuXG4gICAgLy8gYmFzaCBvbmx5IGV4cGFuZHMgey4uLn0gaWYgdGhlcmUncyBhICwgaW4gdGhlcmUsIG90aGVyd2lzZSBpdCB3aWxsIGxlYXZlIHRoZVxuICAgIC8vIGJyYWNlcyBpbiBsaXRlcmFsbHkuIFNvIHdlIG5lZWQgdG8gZG8gY2FzZSBhbmFseXNpcyBoZXJlLiBUaGFua3MsIEkgaGF0ZSBpdC5cbiAgICBjb25zdCB0YXJiYWxsQmFzaEV4cHIgPSBwcm9wcy5sb2NhbFBhY2thZ2VzLmxlbmd0aCA9PT0gMVxuICAgICAgPyBgcGFja2FnZXMvJHtwcm9wcy5sb2NhbFBhY2thZ2VzWzBdfS9kaXN0L2pzLyoudGd6YFxuICAgICAgOiBgcGFja2FnZXMveyR7cHJvcHMubG9jYWxQYWNrYWdlcy5qb2luKCcsJyl9fS9kaXN0L2pzLyoudGd6YDtcblxuICAgIC8vIFdlIGNyZWF0ZSBhIG1hdHJpeCBqb2IgZm9yIHRoZSB0ZXN0LlxuICAgIC8vIFRoaXMgam9iIHdpbGwgcnVuIGFsbCB0aGUgZGlmZmVyZW50IHRlc3Qgc3VpdGVzIGluIHBhcmFsbGVsLlxuICAgIGNvbnN0IEpPQl9JTlRFR19NQVRSSVggPSAnaW50ZWdfbWF0cml4JztcbiAgICBydW5UZXN0c1dvcmtmbG93LmFkZEpvYihKT0JfSU5URUdfTUFUUklYLCB7XG4gICAgICBlbnZpcm9ubWVudDogcHJvcHMudGVzdEVudmlyb25tZW50LFxuICAgICAgcnVuc09uOiBbcHJvcHMudGVzdFJ1bnNPbl0sXG4gICAgICBuZWVkczogW0pPQl9QUkVQQVJFXSxcbiAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgIGNvbnRlbnRzOiBnaXRodWIud29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uUkVBRCxcbiAgICAgICAgaWRUb2tlbjogZ2l0aHViLndvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLldSSVRFLFxuICAgICAgfSxcbiAgICAgIGVudjoge1xuICAgICAgICAvLyBPdGhlcndpc2UgTWF2ZW4gaXMgdG9vIG5vaXN5XG4gICAgICAgIE1BVkVOX0FSR1M6ICctLW5vLXRyYW5zZmVyLXByb2dyZXNzJyxcbiAgICAgICAgLy8gVGhpcyBpcyBub3QgYWN0dWFsbHkgYSBjYW5hcnksIGJ1dCB0aGlzIHByZXZlbnRzIHRoZSB0ZXN0cyBmcm9tIG1ha2luZ1xuICAgICAgICAvLyBhc3N1bXB0aW9ucyBhYm91dCB0aGUgYXZhaWxhYmlsaXR5IG9mIHNvdXJjZSBwYWNrYWdlcy5cbiAgICAgICAgSVNfQ0FOQVJZOiAndHJ1ZScsXG4gICAgICAgIENJOiAndHJ1ZScsXG4gICAgICAgIC8vIFRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIG5ldyB2ZXJzaW9uaW5nIG9mIEBhd3MtY2RrL2NsaS1saWItYWxwaGFcbiAgICAgICAgLy8gbWF0Y2hlcyB0aGUgQ0xJIGFuZCBub3QgdGhlIGZyYW1ld29yay5cbiAgICAgICAgQ0xJX0xJQl9WRVJTSU9OX01JUlJPUlNfQ0xJOiAndHJ1ZScsXG4gICAgICB9LFxuICAgICAgLy8gRG9uJ3QgcnVuIGFnYWluIG9uIHRoZSBtZXJnZSBxdWV1ZSwgd2UgYWxyZWFkeSBnb3QgY29uZmlybWF0aW9uIHRoYXQgaXQgd29ya3MgYW5kIHRoZVxuICAgICAgLy8gdGVzdHMgYXJlIHF1aXRlIGV4cGVuc2l2ZS5cbiAgICAgIGlmOiBgZ2l0aHViLmV2ZW50X25hbWUgIT0gJ21lcmdlX2dyb3VwJyAmJiAke05PVF9GTEFHR0VEX0VYUFJ9YCxcbiAgICAgIHN0cmF0ZWd5OiB7XG4gICAgICAgIGZhaWxGYXN0OiBmYWxzZSxcbiAgICAgICAgbWF0cml4OiB7XG4gICAgICAgICAgZG9tYWluOiB7XG4gICAgICAgICAgICBzdWl0ZTogW1xuICAgICAgICAgICAgICAnY2xpLWludGVnLXRlc3RzJyxcbiAgICAgICAgICAgICAgJ2luaXQtY3NoYXJwJyxcbiAgICAgICAgICAgICAgJ2luaXQtZnNoYXJwJyxcbiAgICAgICAgICAgICAgJ2luaXQtZ28nLFxuICAgICAgICAgICAgICAnaW5pdC1qYXZhJyxcbiAgICAgICAgICAgICAgJ2luaXQtamF2YXNjcmlwdCcsXG4gICAgICAgICAgICAgICdpbml0LXB5dGhvbicsXG4gICAgICAgICAgICAgICdpbml0LXR5cGVzY3JpcHQtYXBwJyxcbiAgICAgICAgICAgICAgJ2luaXQtdHlwZXNjcmlwdC1saWInLFxuICAgICAgICAgICAgICAndG9vbC1pbnRlZ3JhdGlvbnMnLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHN0ZXBzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnRG93bmxvYWQgYnVpbGQgYXJ0aWZhY3RzJyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9kb3dubG9hZC1hcnRpZmFjdEB2NCcsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgbmFtZTogJ2J1aWxkLWFydGlmYWN0JyxcbiAgICAgICAgICAgIHBhdGg6ICdwYWNrYWdlcycsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdTZXQgdXAgSkRLIDE4JyxcbiAgICAgICAgICBpZjogJ21hdHJpeC5zdWl0ZSA9PSBcXCdpbml0LWphdmFcXCcgfHwgbWF0cml4LnN1aXRlID09IFxcJ2NsaS1pbnRlZy10ZXN0c1xcJycsXG4gICAgICAgICAgdXNlczogJ2FjdGlvbnMvc2V0dXAtamF2YUB2NCcsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgJ2phdmEtdmVyc2lvbic6ICcxOCcsXG4gICAgICAgICAgICAnZGlzdHJpYnV0aW9uJzogJ2NvcnJldHRvJyxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0F1dGhlbnRpY2F0ZSBWaWEgT0lEQyBSb2xlJyxcbiAgICAgICAgICBpZDogJ2NyZWRzJyxcbiAgICAgICAgICB1c2VzOiAnYXdzLWFjdGlvbnMvY29uZmlndXJlLWF3cy1jcmVkZW50aWFsc0B2NCcsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgJ2F3cy1yZWdpb24nOiAndXMtZWFzdC0xJyxcbiAgICAgICAgICAgICdyb2xlLWR1cmF0aW9uLXNlY29uZHMnOiA0ICogNjAgKiA2MCxcbiAgICAgICAgICAgIC8vIEV4cGVjdCB0aGlzIGluIEVudmlyb25tZW50IFZhcmlhYmxlc1xuICAgICAgICAgICAgJ3JvbGUtdG8tYXNzdW1lJzogcHJvcHMuZW5hYmxlQXRtb3NwaGVyZSA/IHByb3BzLmVuYWJsZUF0bW9zcGhlcmUub2lkY1JvbGVBcm4gOiAnJHt7IHZhcnMuQVdTX1JPTEVfVE9fQVNTVU1FX0ZPUl9URVNUSU5HIH19JyxcbiAgICAgICAgICAgICdyb2xlLXNlc3Npb24tbmFtZSc6ICdydW4tdGVzdHNAYXdzLWNkay1jbGktaW50ZWcnLFxuICAgICAgICAgICAgJ291dHB1dC1jcmVkZW50aWFscyc6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgLy8gVGhpcyBpcyBuZWNlc3NhcnkgZm9yIHRoZSBpbml0IHRlc3RzIHRvIHN1Y2NlZWQsIHRoZXkgc2V0IHVwIGEgZ2l0IHJlcG8uXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnU2V0IGdpdCBpZGVudGl0eScsXG4gICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAnZ2l0IGNvbmZpZyAtLWdsb2JhbCB1c2VyLm5hbWUgXCJhd3MtY2RrLWNsaS1pbnRlZ1wiJyxcbiAgICAgICAgICAgICdnaXQgY29uZmlnIC0tZ2xvYmFsIHVzZXIuZW1haWwgXCJub3JlcGx5QGV4YW1wbGUuY29tXCInLFxuICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnSW5zdGFsbCBWZXJkYWNjaW8nLFxuICAgICAgICAgIHJ1bjogJ25wbSBpbnN0YWxsIC1nIHZlcmRhY2NpbyBwbTInLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0NyZWF0ZSBWZXJkYWNjaW8gY29uZmlnJyxcbiAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICdta2RpciAtcCAkSE9NRS8uY29uZmlnL3ZlcmRhY2NpbycsXG4gICAgICAgICAgICBgZWNobyAnJHtKU09OLnN0cmluZ2lmeSh2ZXJkYWNjaW9Db25maWcpfScgPiAkSE9NRS8uY29uZmlnL3ZlcmRhY2Npby9jb25maWcueWFtbGAsXG4gICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdTdGFydCBWZXJkYWNjaW8nLFxuICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgJ3BtMiBzdGFydCB2ZXJkYWNjaW8gLS0gLS1jb25maWcgJEhPTUUvLmNvbmZpZy92ZXJkYWNjaW8vY29uZmlnLnlhbWwnLFxuICAgICAgICAgICAgJ3NsZWVwIDUgIyBXYWl0IGZvciBWZXJkYWNjaW8gdG8gc3RhcnQnLFxuICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQ29uZmlndXJlIG5wbSB0byB1c2UgbG9jYWwgcmVnaXN0cnknLFxuICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgLy8gVGhpcyB0b2tlbiBpcyBhIGJvZ3VzIHRva2VuLiBJdCBkb2Vzbid0IHJlcHJlc2VudCBhbnkgYWN0dWFsIHNlY3JldCwgaXQganVzdCBuZWVkcyB0byBleGlzdC5cbiAgICAgICAgICAgICdlY2hvIFxcJy8vbG9jYWxob3N0OjQ4NzMvOl9hdXRoVG9rZW49XCJNV1JqTkRVM09URTFOVGxqWVdVeU9URmtNV0prT0dVeVlUSXdaV013TlRJNllUZ3daamt5TkRFME56Z3dZV1F6TlE9PVwiXFwnID4gfi8ubnBtcmMnLFxuICAgICAgICAgICAgJ2VjaG8gXFwncmVnaXN0cnk9aHR0cDovL2xvY2FsaG9zdDo0ODczL1xcJyA+PiB+Ly5ucG1yYycsXG4gICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdGaW5kIGFuIGxvY2FsbHkgcHVibGlzaCBhbGwgdGFyYmFsbHMnLFxuICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgYGZvciBwa2cgaW4gJHt0YXJiYWxsQmFzaEV4cHJ9OyBkb2AsXG4gICAgICAgICAgICAnICBucG0gcHVibGlzaCAkcGtnJyxcbiAgICAgICAgICAgICdkb25lJyxcbiAgICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0Rvd25sb2FkIGFuZCBpbnN0YWxsIHRoZSB0ZXN0IGFydGlmYWN0JyxcbiAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICducG0gaW5zdGFsbCBAYXdzLWNkay10ZXN0aW5nL2NsaS1pbnRlZycsXG4gICAgICAgICAgICAvLyBNb3ZlIHRoZSBpbnN0YWxsZWQgZmlsZXMgdG8gdGhlIGN1cnJlbnQgZGlyZWN0b3J5LCBiZWNhdXNlIGFzXG4gICAgICAgICAgICAvLyBjdXJyZW50bHkgY29uZmlndXJlZCB0aGUgdGVzdHMgd29uJ3QgcnVuIGZyb20gYW4gaW5zdGFsbGVkXG4gICAgICAgICAgICAvLyBub2RlX21vZHVsZXMgZGlyZWN0b3J5LlxuICAgICAgICAgICAgJ212IC4vbm9kZV9tb2R1bGVzL0Bhd3MtY2RrLXRlc3RpbmcvY2xpLWludGVnLyogLicsXG4gICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG5hbWU6ICdEZXRlcm1pbmUgbGF0ZXN0IHBhY2thZ2UgdmVyc2lvbnMnLFxuICAgICAgICAgIGlkOiAndmVyc2lvbnMnLFxuICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgJ0NMSV9WRVJTSU9OPSQoY2QgJHtUTVBESVI6LS90bXB9ICYmIG5wbSB2aWV3IGF3cy1jZGsgdmVyc2lvbiknLFxuICAgICAgICAgICAgJ2VjaG8gXCJDTEkgdmVyc2lvbjogJHtDTElfVkVSU0lPTn1cIicsXG4gICAgICAgICAgICAnZWNobyBcImNsaV92ZXJzaW9uPSR7Q0xJX1ZFUlNJT059XCIgPj4gJEdJVEhVQl9PVVRQVVQnLFxuICAgICAgICAgICAgJ0xJQl9WRVJTSU9OPSQoY2QgJHtUTVBESVI6LS90bXB9ICYmIG5wbSB2aWV3IGF3cy1jZGstbGliIHZlcnNpb24pJyxcbiAgICAgICAgICAgICdlY2hvIFwibGliIHZlcnNpb246ICR7TElCX1ZFUlNJT059XCInLFxuICAgICAgICAgICAgJ2VjaG8gXCJsaWJfdmVyc2lvbj0ke0xJQl9WRVJTSU9OfVwiID4+ICRHSVRIVUJfT1VUUFVUJyxcbiAgICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ1J1biB0aGUgdGVzdCBzdWl0ZTogJHt7IG1hdHJpeC5zdWl0ZSB9fScsXG4gICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAnYmluL3J1bi1zdWl0ZSAtLXVzZS1jbGktcmVsZWFzZT0ke3sgc3RlcHMudmVyc2lvbnMub3V0cHV0cy5jbGlfdmVyc2lvbiB9fSAtLWZyYW1ld29yay12ZXJzaW9uPSR7eyBzdGVwcy52ZXJzaW9ucy5vdXRwdXRzLmxpYl92ZXJzaW9uIH19ICR7eyBtYXRyaXguc3VpdGUgfX0nLFxuICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICBKU0lJX1NJTEVOQ0VfV0FSTklOR19ERVBSRUNBVEVEX05PREVfVkVSU0lPTjogJ3RydWUnLFxuICAgICAgICAgICAgSlNJSV9TSUxFTkNFX1dBUk5JTkdfVU5URVNURURfTk9ERV9WRVJTSU9OOiAndHJ1ZScsXG4gICAgICAgICAgICBKU0lJX1NJTEVOQ0VfV0FSTklOR19LTk9XTl9CUk9LRU5fTk9ERV9WRVJTSU9OOiAndHJ1ZScsXG4gICAgICAgICAgICBET0NLRVJIVUJfRElTQUJMRUQ6ICd0cnVlJyxcbiAgICAgICAgICAgIC4uLihwcm9wcy5lbmFibGVBdG1vc3BoZXJlID9cbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIENES19JTlRFR19BVE1PU1BIRVJFX0VOQUJMRUQ6ICd0cnVlJyxcbiAgICAgICAgICAgICAgICBDREtfSU5URUdfQVRNT1NQSEVSRV9FTkRQT0lOVDogcHJvcHMuZW5hYmxlQXRtb3NwaGVyZS5lbmRwb2ludCxcbiAgICAgICAgICAgICAgICBDREtfSU5URUdfQVRNT1NQSEVSRV9QT09MOiBwcm9wcy5lbmFibGVBdG1vc3BoZXJlLnBvb2wsXG4gICAgICAgICAgICAgIH0gOlxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgQVdTX1JFR0lPTlM6IFsndXMtZWFzdC0yJywgJ2V1LXdlc3QtMScsICdldS1ub3J0aC0xJywgJ2FwLW5vcnRoZWFzdC0xJywgJ2FwLXNvdXRoLTEnXS5qb2luKCcsJyksXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgQ0RLX01BSk9SX1ZFUlNJT046ICcyJyxcbiAgICAgICAgICAgIFJFTEVBU0VfVEFHOiAnbGF0ZXN0JyxcbiAgICAgICAgICAgIEdJVEhVQl9UT0tFTjogJyR7eyBzZWNyZXRzLkdJVEhVQl9UT0tFTiB9fScsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICAvLyBBZGQgYSBqb2IgdGhhdCBjb2xsYXRlcyBhbGwgbWF0cml4IGpvYnMgaW50byBhIHNpbmdsZSBzdGF0dXNcbiAgICAvLyBUaGlzIGlzIHJlcXVpcmVkIHNvIHRoYXQgd2UgY2FuIHNldHVwIHJlcXVpcmVkIHN0YXR1cyBjaGVja3NcbiAgICAvLyBhbmQgaWYgd2UgZXZlciBjaGFuZ2UgdGhlIHRlc3QgbWF0cml4LCB3ZSBkb24ndCBuZWVkIHRvIHVwZGF0ZVxuICAgIC8vIHRoZSBzdGF0dXMgY2hlY2sgY29uZmlndXJhdGlvbi5cbiAgICBydW5UZXN0c1dvcmtmbG93LmFkZEpvYignaW50ZWcnLCB7XG4gICAgICBwZXJtaXNzaW9uczoge30sXG4gICAgICBydW5zT246IFtwcm9wcy50ZXN0UnVuc09uXSxcbiAgICAgIG5lZWRzOiBbSk9CX1BSRVBBUkUsIEpPQl9JTlRFR19NQVRSSVhdLFxuICAgICAgaWY6ICdhbHdheXMoKScsXG4gICAgICBzdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0ludGVnIHRlc3QgcmVzdWx0JyxcbiAgICAgICAgICBydW46IGBlY2hvIFxcJHt7IG5lZWRzLiR7Sk9CX0lOVEVHX01BVFJJWH0ucmVzdWx0IH19YCxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIC8vIERvbid0IGZhaWwgdGhlIGpvYiBpZiB0aGUgdGVzdCB3YXMgc3VjY2Vzc2Z1bCBvciBpbnRlbnRpb25hbGx5IHNraXBwZWRcbiAgICAgICAgICBpZjogYFxcJHt7ICEoY29udGFpbnMoZnJvbUpTT04oJ1tcInN1Y2Nlc3NcIiwgXCJza2lwcGVkXCJdJyksIG5lZWRzLiR7Sk9CX1BSRVBBUkV9LnJlc3VsdCkgJiYgY29udGFpbnMoZnJvbUpTT04oJ1tcInN1Y2Nlc3NcIiwgXCJza2lwcGVkXCJdJyksIG5lZWRzLiR7Sk9CX0lOVEVHX01BVFJJWH0ucmVzdWx0KSkgfX1gLFxuICAgICAgICAgIG5hbWU6ICdTZXQgc3RhdHVzIGJhc2VkIG9uIG1hdHJpeCBqb2InLFxuICAgICAgICAgIHJ1bjogJ2V4aXQgMScsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
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.10" };
58
+ CdkConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdkConstructLibrary", version: "0.2.11" };
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.10" };
74
+ CdkTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdkTypeScriptProject", version: "0.2.11" };
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.10" };
123
+ CdklabsConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdklabsConstructLibrary", version: "0.2.11" };
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.10" };
143
+ CdklabsTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdklabsTypeScriptProject", version: "0.2.11" };
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.10" };
166
+ CdklabsJsiiProject[_c] = { fqn: "cdklabs-projen-project-types.CdklabsJsiiProject", version: "0.2.11" };
167
167
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrbGFicy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jZGtsYWJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQWdDO0FBQ2hDLHNEQUF1RDtBQUN2RCwwQ0FBNEM7QUFFNUMsSUFBWSxZQUtYO0FBTEQsV0FBWSxZQUFZO0lBQ3RCLG1EQUFNLENBQUE7SUFDTiwrQ0FBSSxDQUFBO0lBQ0osbURBQU0sQ0FBQTtJQUNOLDJDQUFFLENBQUE7QUFDSixDQUFDLEVBTFcsWUFBWSw0QkFBWixZQUFZLFFBS3ZCO0FBQUEsQ0FBQztBQUVGLCtCQUllO0FBR2YsaUNBQXdDO0FBQ3hDLHdDQUF3QztBQUN4QyxtQ0FBMkM7QUFFM0Msd0VBQXdFO0FBQ3hFLE1BQU0sa0JBQWtCLEdBQUc7SUFDekIsTUFBTSxFQUFFLHFCQUFxQjtJQUM3QixVQUFVLEVBQUUscUJBQXFCO0lBQ2pDLGFBQWEsRUFBRSx3QkFBd0I7SUFDdkMsV0FBVyxFQUFFLHdCQUF3QjtJQUNyQyxrQkFBa0IsRUFBRSxJQUFJO0NBQ3pCLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUE0QztJQUNuRSxtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLG1CQUFtQixFQUFFLE9BQU87SUFDNUIsV0FBVyxFQUFFO1FBQ1gsY0FBYyxFQUFFLDJCQUFjLENBQUMsTUFBTTtLQUN0QztJQUNELG9CQUFvQixFQUFFLE1BQU07SUFDNUIsbUZBQW1GO0lBQ25GLHdGQUF3RjtJQUN4RixvREFBb0Q7SUFDcEQsaUJBQWlCLEVBQUUsMEJBQWlCLENBQUMsZ0JBQWdCLEVBQUU7SUFDdkQsV0FBVyxFQUFFLE1BQU07Q0FDcEIsQ0FBQztBQUVGLFNBQVMsK0JBQStCLENBQUMsY0FBc0IsRUFBRSxLQUFzQjtJQUNyRixNQUFNLGVBQWUsR0FBRyxJQUFBLGVBQVEsRUFBQyxjQUFjLENBQUMsQ0FBQztJQUVqRCxPQUFPLHdCQUF3QixDQUFDLFNBQVMsRUFB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QU0sYUFBYSxHQUFHLElBQUEsZ0JBQVMsRUFBQztZQUM5QixFQUFFO1lBQ0YsbUJBQW1CO1lBQ25CLDZCQUE2QjtZQUM3QixPQUFPO1lBQ1Asa0JBQWtCO1NBQ25CLENBQThCLENBQUM7UUFFaEMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7O0FBZEgsZ0RBZUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBiYXNlbmFtZSB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgVXBkYXRlU25hcHNob3QgfSBmcm9tICdwcm9qZW4vbGliL2phdmFzY3JpcHQnO1xuaW1wb3J0IHsgZGVlcE1lcmdlIH0gZnJvbSAncHJvamVuL2xpYi91dGlsJztcblxuZXhwb3J0IGVudW0gSnNpaUxhbmd1YWdlIHtcbiAgUFlUSE9OLFxuICBKQVZBLFxuICBET1RORVQsXG4gIEdPLFxufTtcblxuaW1wb3J0IHtcbiAgQ2RrQ29uc3RydWN0TGlicmFyeSxcbiAgQ2RrVHlwZVNjcmlwdFByb2plY3QsXG4gIENka1R5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyxcbn0gZnJvbSAnLi9jZGsnO1xuaW1wb3J0IHsgQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnMgfSBmcm9tICcuL2Nkay1jb25zdHJ1Y3QtbGlicmFyeS1vcHRpb25zJztcbmltcG9ydCB7IENka0pzaWlQcm9qZWN0T3B0aW9ucyB9IGZyb20gJy4vY2RrLWpzaWktb3B0aW9ucyc7XG5pbXBvcnQgeyBDZGtKc2lpUHJvamVjdCB9IGZyb20gJy4vanNpaSc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L29yZGVyXG5pbXBvcnQgeyBSZWxlYXNhYmxlQ29tbWl0cyB9IGZyb20gJ3Byb2plbic7XG5cbi8vIG92ZXJyaWRlIHRoZXNlIHByb3BlcnRpZXMgbm8gbWF0dGVyIHdoYXQgdmFsdWVzIGFyZSBnaXZlbiBjbGllbnQtc2lkZVxuY29uc3QgY2RrbGFic0ZvcmNlZFByb3BzID0ge1xuICBhdXRob3I6ICdBbWF6b24gV2ViIFNlcnZpY2VzJyxcbiAgYXV0aG9yTmFtZTogJ0FtYXpvbiBXZWIgU2VydmljZXMnLFxuICBhdXRob3JBZGRyZXNzOiAnYXdzLWNkay1kZXZAYW1hem9uLmNvbScsXG4gIGF1dGhvckVtYWlsOiAnYXdzLWNkay1kZXZAYW1hem9uLmNvbScsXG4gIGF1dGhvck9yZ2FuaXphdGlvbjogdHJ1ZSxcbn07XG5cbmNvbnN0IGNka2xhYnNEZWZhdWx0UHJvcHM6IFBhcnRpYWw8Q2RrbGFic0NvbnN0cnVjdExpYnJhcnlPcHRpb25zPiA9IHtcbiAgYXV0b0FwcHJvdmVVcGdyYWRlczogdHJ1ZSxcbiAgbWluTm9kZVZlcnNpb246ICcxOC4xMi4wJyxcbiAgd29ya2Zsb3dOb2RlVmVyc2lvbjogJ2x0cy8qJyxcbiAgamVzdE9wdGlvbnM6IHtcbiAgICB1cGRhdGVTbmFwc2hvdDogVXBkYXRlU25hcHNob3QuQUxXQVlTLFxuICB9LFxuICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogJ21haW4nLFxuICAvLyBEZWZhdWx0IGlzIHRvIHJlbGVhc2Ugb25seSBmZWF0dXJlcyBhbmQgZml4ZXMuIElmIHdlIGRvbid0IGRvIHRoaXMsIGV2ZXJ5IHByb2plblxuICAvLyBwcm9qZWN0IHdpbGwgYmFzaWNhbGx5IHJlbGVhc2UgZXZlcnkgZGF5LCBiZWNhdXNlIGl0IHdpbGwgc2VlIGRldkRlcGVuZGVuY2llcyB1cGRhdGVzXG4gIC8vIGV2ZXJ5IGRheSwgZXZlbiB0aG91Z2ggdGhvc2UgYXJlIG5vdCBpbnRlcmVzdGluZy5cbiAgcmVsZWFzYWJsZUNvbW1pdHM6IFJlbGVhc2FibGVDb21taXRzLmZlYXR1cmVzQW5kRml4ZXMoKSxcbiAganNpaVZlcnNpb246ICd+NS43Jyxcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdHMobnBtUGFja2FnZU5hbWU6IHN0cmluZywgbGFuZ3M/OiBKc2lpTGFuZ3VhZ2VbXSkge1xuICBjb25zdCBwYWNrYWdlQmFzZW5hbWUgPSBiYXNlbmFtZShucG1QYWNrYWdlTmFtZSk7XG5cbiAgcmV0dXJuIGNyZWF0ZVB1Ymxpc2hpbmdEZWZhdWx0cygnY2RrbGFicycsIHBhY2thZ2VCYXNlbmFtZSwgQm9vbGVhbihwYWNrYWdlQmFzZW5hbWUgIT09IG5wbVBhY2thZ2VOYW1lKSwgbGFuZ3MpO1xufTtcblxuZnVuY3Rpb24gY3JlYXRlUHVibGlzaGluZ0RlZmF1bHRzKG5hbWVzcGFjZTogc3RyaW5nLCBwYWNrYWdlQmFzZW5hbWU6IHN0cmluZywgYWx3YXlzVXNlTmFtZXNwYWNlID0gdHJ1ZSwgbGFuZ3M/OiBKc2lpTGFuZ3VhZ2VbXSkge1xuICBjb25zdCBwaVB5UHJlZml4ID0gYWx3YXlzVXNlTmFtZXNwYWNlID8gYCR7bmFtZXNwYWNlfS5gIDogJyc7XG4gIGNvbnN0IG51Z2V0UHJlZml4ID0gYWx3YXlzVXNlTmFtZXNwYWNlID8gYCR7dXBwZXJDYXNlTmFtZShuYW1lc3BhY2UpfS5gIDogYCR7dXBwZXJDYXNlTmFtZShuYW1lc3BhY2UpfWA7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5wdWJsaXNoTGFuZ3VhZ2VXcmFwcGVyKEpzaWlMYW5ndWFnZS5QWVRIT04sIHtcbiAgICAgIHB1Ymxpc2hUb1B5cGk6IHtcbiAgICAgICAgZGlzdE5hbWU6IGAke3BpUHlQcmVmaXh9JHtwYWNrYWdlQmFzZW5hbWV9YCxcbiAgICAgICAgbW9kdWxlOiBgJHtwaVB5UHJlZml4fSR7Y2hhbmdlRGVsaW1pdGVyKHBhY2thZ2VCYXNlbmFtZSwgJ18nKX1gLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi5wdWJsaXNoTGFuZ3VhZ2VXcmFwcGVyKEpzaWlMYW5ndWFnZS5KQVZBLCB7XG4gICAgICBwdWJsaXNoVG9NYXZlbjoge1xuICAgICAgICBqYXZhUGFja2FnZTogYGlvLmdpdGh1Yi4ke25hbWVzcGFjZX0uJHtjaGFuZ2VEZWxpbWl0ZXIocGFja2FnZUJhc2VuYW1lLCAnLicpfWAsXG4gICAgICAgIG1hdmVuR3JvdXBJZDogYGlvLmdpdGh1Yi4ke25hbWVzcGFjZX1gLFxuICAgICAgICBtYXZlbkFydGlmYWN0SWQ6IHBhY2thZ2VCYXNlbmFtZSxcbiAgICAgICAgbWF2ZW5FbmRwb2ludDogJ2h0dHBzOi8vczAxLm9zcy5zb25hdHlwZS5vcmcnLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi5wdWJsaXNoTGFuZ3VhZ2VXcmFwcGVyKEpzaWlMYW5ndWFnZS5ET1RORVQsIHtcbiAgICAgIHB1Ymxpc2hUb051Z2V0OiB7XG4gICAgICAgIGRvdE5ldE5hbWVzcGFjZTogYCR7bnVnZXRQcmVmaXh9JHt1cHBlckNhc2VOYW1lKHBhY2thZ2VCYXNlbmFtZSl9YCxcbiAgICAgICAgcGFja2FnZUlkOiBgJHtudWdldFByZWZpeH0ke3VwcGVyQ2FzZU5hbWUocGFja2FnZUJhc2VuYW1lKX1gLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi5wdWJsaXNoTGFuZ3VhZ2VXcmFwcGVyKEpzaWlMYW5ndWFnZS5HTywge1xuICAgICAgcHVibGlzaFRvR286IHtcbiAgICAgICAgbW9kdWxlTmFtZTogYGdpdGh1Yi5jb20vJHtuYW1lc3BhY2V9LyR7cGFja2FnZUJhc2VuYW1lfS1nb2AsXG4gICAgICB9LFxuICAgIH0pLFxuICB9O1xuXG4gIGZ1bmN0aW9uIHB1Ymxpc2hMYW5ndWFnZVdyYXBwZXIobGFuZzogSnNpaUxhbmd1YWdlLCBvYmo6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICByZXR1cm4gcHVibGlzaExhbmd1YWdlKGxhbmcpID8gb2JqIDoge307XG4gIH1cblxuICBmdW5jdGlvbiBwdWJsaXNoTGFuZ3VhZ2UobGFuZzogSnNpaUxhbmd1YWdlKTogYm9vbGVhbiB7XG4gICAgLy8gbGFuZ3Mgbm90IHNwZWNpZmllZCA9PT0gYWxsIGxhbmd1YWdlcyBwdWJsaXNoZWRcbiAgICBpZiAoIWxhbmdzKSB7IHJldHVybiB0cnVlOyB9XG4gICAgaWYgKGxhbmdzLmluY2x1ZGVzKGxhbmcpKSB7IHJldHVybiB0cnVlOyB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBwZXJDYXNlTmFtZShzdHI6IHN0cmluZykge1xuICAgIGxldCB3b3JkcyA9IHN0ci5zcGxpdCgnLScpO1xuICAgIHdvcmRzID0gd29yZHMubWFwKCh3KSA9PiB3WzBdLnRvVXBwZXJDYXNlKCkgKyB3LnN1YnN0cmluZygxKSk7XG4gICAgcmV0dXJuIHdvcmRzLmpvaW4oJycpO1xuICB9XG5cbiAgZnVuY3Rpb24gY2hhbmdlRGVsaW1pdGVyKHN0cjogc3RyaW5nLCBkZWxpbTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHN0ci5zcGxpdCgnLScpLmpvaW4oZGVsaW0pO1xuICB9XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIENka2xhYnNQdWJsaXNoaW5nUHJvamVjdE9wdGlvbnMge1xuICAvKipcbiAgICogU2V0IGRlZmF1bHQgcHVibGlzaGluZyBwcm9wZXJ0aWVzLiBTZXR0aW5nIHRoaXMgcHJvcGVydHkgZ3VhcmFudGVlc1xuICAgKiB0aGF0IHlvdXIgcHJvamVjdCB3aWxsIGhhdmUgcmVhc29uYWJsZSBwdWJsaXNoaW5nIG5hbWVzLiBZb3UgY2FuIGNob29zZVxuICAgKiB0byBtb2RpZnkgdGhlbSBob3dldmVyIHlvdSB3aXNoIHdpdGggdGhlIHRyYWRpdGlvbmFsIGBwdWJsaXNoVG9QeXBpYCxcbiAgICogYHB1Ymxpc2hUb01hdmVuYCwgYHB1Ymxpc2hUb051Z2V0YCwgYW5kIGBwdWJsaXNoVG9Hb2AgcHJvcGVydGllcywgYW5kXG4gICAqIHlvdXIgY29uZmlndXJhdGlvbiB3aWxsIGJlIHJlc3BlY3RlZC5cbiAgICpcbiAgICogVGhpcyBzaG91bGQgYmUgc2V0IHRvIGZhbHNlIG9ubHkgaWYgeW91IGRvIG5vdCBwbGFuIG9uIHJlbGVhc2luZyB0aGUgcGFja2FnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgc3BlY2lmaWMgbGFuZ3VhZ2VzIHRvIHB1Ymxpc2ggdG8uIFRoaXMgY2FuIGJlIHVzZWQgd2hlbiB0aGUgbGlicmFyeVxuICAgKiBpcyBleHBlcmltZW50YWwgb25seSwgYmVjYXVzZSBzdGFibGUgbGlicmFyaWVzIG11c3QgcHVibGlzaCB0byBhbGwganNpaSBsYW5ndWFnZXMuXG4gICAqIFRoaXMgc2hvdWxkIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBgY2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0czogdHJ1ZWA7IG90aGVyd2lzZVxuICAgKiBpdCBpcyBhIG5vLW9wLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFsbCBqc2lpIHRhcmdldCBsYW5ndWFnZXNcbiAgICovXG4gIHJlYWRvbmx5IGpzaWlUYXJnZXRMYW5ndWFnZXM/OiBKc2lpTGFuZ3VhZ2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZGtsYWJzQ29uc3RydWN0TGlicmFyeU9wdGlvbnMgZXh0ZW5kcyBDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucywgQ2RrbGFic1B1Ymxpc2hpbmdQcm9qZWN0T3B0aW9ucyB7IH1cblxuLyoqXG4gKiBDcmVhdGUgYSBDZGtsYWJzIENvbnN0cnVjdCBMaWJyYXJ5IFByb2plY3RcbiAqXG4gKiBAcGppZCBjZGtsYWJzLWNvbnN0cnVjdC1saWJcbiAqL1xuZXhwb3J0IGNsYXNzIENka2xhYnNDb25zdHJ1Y3RMaWJyYXJ5IGV4dGVuZHMgQ2RrQ29uc3RydWN0TGlicmFyeSB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka2xhYnNDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucykge1xuICAgIGNvbnN0IGNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdFByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gKG9wdGlvbnMuY2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0cyA/PyB0cnVlKSA/XG4gICAgICBjcmVhdGVDZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRzKG9wdGlvbnMubmFtZSwgb3B0aW9ucy5qc2lpVGFyZ2V0TGFuZ3VhZ2VzKSA6IHt9O1xuXG4gICAgLy8gdGhlIGxlZnRtb3N0IG9iamVjdCBpcyBtdXRhdGVkIGFuZCByZXR1cm5lZCBieSBkZWVwTWVyZ2VcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gZGVlcE1lcmdlKFtcbiAgICAgIHt9LFxuICAgICAgY2RrbGFic0RlZmF1bHRQcm9wcyxcbiAgICAgIGNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdFByb3BzLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNka2xhYnNGb3JjZWRQcm9wcyxcbiAgICBdKSBhcyBDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucztcblxuICAgIHN1cGVyKG1lcmdlZE9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrbGFic1R5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyBleHRlbmRzIENka1R5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyB7IH1cblxuLyoqXG4gKiBDcmVhdGUgYSBDZGtsYWJzIFR5cGVTY3JpcHQgUHJvamVjdFxuICpcbiAqIEBwamlkIGNka2xhYnMtdHMtcHJvalxuICovXG5leHBvcnQgY2xhc3MgQ2RrbGFic1R5cGVTY3JpcHRQcm9qZWN0IGV4dGVuZHMgQ2RrVHlwZVNjcmlwdFByb2plY3Qge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtsYWJzVHlwZVNjcmlwdFByb2plY3RPcHRpb25zKSB7XG4gICAgLy8gdGhlIGxlZnRtb3N0IG9iamVjdCBpcyBtdXRhdGVkIGFuZCByZXR1cm5lZCBieSBkZWVwTWVyZ2VcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gZGVlcE1lcmdlKFtcbiAgICAgIHt9LFxuICAgICAgY2RrbGFic0RlZmF1bHRQcm9wcyxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBjZGtsYWJzRm9yY2VkUHJvcHMsXG4gICAgXSkgYXMgQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnM7XG5cbiAgICBzdXBlcihtZXJnZWRPcHRpb25zKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENka2xhYnNKc2lpUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBDZGtKc2lpUHJvamVjdE9wdGlvbnMsIENka2xhYnNQdWJsaXNoaW5nUHJvamVjdE9wdGlvbnMgeyB9XG5cbi8qKlxuICogQ3JlYXRlIGEgQ2RrbGFicyBKc2lpIFByb2plY3RcbiAqXG4gKiBAcGppZCBjZGtsYWJzLWpzaWktcHJvalxuICovXG5leHBvcnQgY2xhc3MgQ2RrbGFic0pzaWlQcm9qZWN0IGV4dGVuZHMgQ2RrSnNpaVByb2plY3Qge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtsYWJzSnNpaVByb2plY3RPcHRpb25zKSB7XG4gICAgY29uc3QgY2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0UHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSAob3B0aW9ucy5jZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRzID8/IHRydWUpID9cbiAgICAgIGNyZWF0ZUNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdHMob3B0aW9ucy5uYW1lLCBvcHRpb25zLmpzaWlUYXJnZXRMYW5ndWFnZXMpIDoge307XG4gICAgLy8gdGhlIGxlZnRtb3N0IG9iamVjdCBpcyBtdXRhdGVkIGFuZCByZXR1cm5lZCBieSBkZWVwTWVyZ2VcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gZGVlcE1lcmdlKFtcbiAgICAgIHt9LFxuICAgICAgY2RrbGFic0RlZmF1bHRQcm9wcyxcbiAgICAgIGNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdFByb3BzLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNka2xhYnNGb3JjZWRQcm9wcyxcbiAgICBdKSBhcyBDZGtsYWJzSnNpaVByb2plY3RPcHRpb25zO1xuXG4gICAgc3VwZXIobWVyZ2VkT3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
package/lib/jsii.js CHANGED
@@ -28,5 +28,5 @@ class CdkJsiiProject extends projen_1.cdk.JsiiProject {
28
28
  }
29
29
  exports.CdkJsiiProject = CdkJsiiProject;
30
30
  _a = JSII_RTTI_SYMBOL_1;
31
- CdkJsiiProject[_a] = { fqn: "cdklabs-projen-project-types.CdkJsiiProject", version: "0.2.10" };
31
+ CdkJsiiProject[_a] = { fqn: "cdklabs-projen-project-types.CdkJsiiProject", version: "0.2.11" };
32
32
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoianNpaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9qc2lpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQTZCO0FBRTdCLHFEQUF3RjtBQUV4Rjs7OztHQUlHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsWUFBRyxDQUFDLFdBQVc7SUFHakQsWUFBWSxPQUE4QjtRQUN4QyxNQUFNLElBQUksR0FBRyxJQUFBLDBDQUF5QixFQUFDO1lBQ3JDLEdBQUcsT0FBTztZQUNWLGtEQUFrRDtZQUNsRCxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQUMsYUFBYTtTQUN4RCxDQUFDLENBQUM7UUFDSCxLQUFLLENBQUM7WUFDSixHQUFHLElBQUk7WUFDUCxzREFBc0Q7WUFDdEQsYUFBYSxFQUFFLElBQUksQ0FBQyxVQUFVO1NBQy9CLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUU1QixJQUFBLDBDQUF5QixFQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDOztBQWpCSCx3Q0FrQkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjZGsgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQ2RrSnNpaVByb2plY3RPcHRpb25zIH0gZnJvbSAnLi9jZGstanNpaS1vcHRpb25zJztcbmltcG9ydCB7IGNvbmZpZ3VyZUNvbW1vbkNvbXBvbmVudHMsIHdpdGhDb21tb25PcHRpb25zRGVmYXVsdHMgfSBmcm9tICcuL2NvbW1vbi1vcHRpb25zJztcblxuLyoqXG4gKiBDcmVhdGUgYSBDZGsgSnNpaSBKc2lpIHByb2plY3RcbiAqXG4gKiBAcGppZCBjZGstanNpaS1wcm9qXG4gKi9cbmV4cG9ydCBjbGFzcyBDZGtKc2lpUHJvamVjdCBleHRlbmRzIGNkay5Kc2lpUHJvamVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBwcml2YXRlOiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka0pzaWlQcm9qZWN0T3B0aW9ucykge1xuICAgIGNvbnN0IG9wdHMgPSB3aXRoQ29tbW9uT3B0aW9uc0RlZmF1bHRzKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICAvLyBhbHNvIGFjY2VwdCB0aGUgZGVwcmVjYXRlZCByZXBvc2l0b3J5VXJsIG9wdGlvblxuICAgICAgcmVwb3NpdG9yeTogb3B0aW9ucy5yZXBvc2l0b3J5ID8/IG9wdGlvbnMucmVwb3NpdG9yeVVybCxcbiAgICB9KTtcbiAgICBzdXBlcih7XG4gICAgICAuLi5vcHRzLFxuICAgICAgLy8gdXBzdHJlYW0gSnNpaVByb2plY3QgdXNlcyBhIGRpZmZlcmVudCBuYW1lIGZvciB0aGlzXG4gICAgICByZXBvc2l0b3J5VXJsOiBvcHRzLnJlcG9zaXRvcnksXG4gICAgfSk7XG4gICAgdGhpcy5wcml2YXRlID0gb3B0cy5wcml2YXRlO1xuXG4gICAgY29uZmlndXJlQ29tbW9uQ29tcG9uZW50cyh0aGlzLCBvcHRzKTtcbiAgfVxufVxuIl19
package/lib/rosetta.js CHANGED
@@ -48,5 +48,5 @@ class Rosetta extends projen_1.Component {
48
48
  }
49
49
  exports.Rosetta = Rosetta;
50
50
  _a = JSII_RTTI_SYMBOL_1;
51
- Rosetta[_a] = { fqn: "cdklabs-projen-project-types.Rosetta", version: "0.2.10" };
51
+ Rosetta[_a] = { fqn: "cdklabs-projen-project-types.Rosetta", version: "0.2.11" };
52
52
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9zZXR0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yb3NldHRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsbUNBQW9EO0FBa0JwRDs7Ozs7R0FLRztBQUNILE1BQWEsT0FBUSxTQUFRLGtCQUFTO0lBQ3BDLFlBQVksT0FBd0IsRUFBRSxVQUEwQixFQUFFO1FBQ2hFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVmLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDO1FBRXRDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNaLE9BQU8sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHVHQUF1RyxDQUFDLENBQUM7UUFDL0gsQ0FBQztRQUVELGFBQWE7UUFDYixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUM7UUFDeEYsT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUvQixNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLGlCQUFpQixFQUFFO1lBQ3JELFdBQVcsRUFBRSxzQkFBc0I7WUFDbkMsSUFBSSxFQUFFLHNDQUFzQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxFQUFFO1NBQzlFLENBQUMsQ0FBQztRQUNILE9BQU8sQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzNDLE9BQU8sQ0FBQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4QyxJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLDRCQUE0QixFQUFFO1lBQ3BELFFBQVEsRUFBRTtnQkFDUixxREFBcUQ7Z0JBQ3JELHlDQUF5QztnQkFDekMsVUFBVTtnQkFDVixVQUFVO2dCQUNWLHVCQUF1QjtnQkFDdkIsRUFBRTtnQkFDRiwrQkFBK0I7Z0JBQy9CLCtDQUErQztnQkFDL0MsdUJBQXVCO2dCQUN2QixFQUFFO2dCQUNGLGNBQWM7Z0JBQ2QsS0FBSztnQkFDTCxHQUFHO2FBQ0osQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2IsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLFlBQVksQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O0FBdENILDBCQXVDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgU2FtcGxlRmlsZSwgY2RrIH0gZnJvbSAncHJvamVuJztcblxuZXhwb3J0IGludGVyZmFjZSBSb3NldHRhT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBFbmFibGUgb3IgZGlzYWJsZSBzdHJpY3QgbW9kZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RyaWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU2V0IGFuIGV4cGxpY2l0IHZlcnNpb24gb2Ygcm9zZXR0YS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyB2ZXJzaW9uIGlzIHNldCwgdXNlIGF1dG9tYXRpYyBkZXRlY3Rpb25cbiAgICovXG4gIHJlYWRvbmx5IHZlcnNpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogVGhlIFJvc2V0dGEgY29tcG9uZW50IGFkZHMgYnVpbHRpbiByb3NldHRhIHN1cHBvcnRcbiAqIGZvciBhIGNvbnN0cnVjdCBsaWJyYXJ5LiBTaW5jZSBDb25zdHJ1Y3RIdWIgd2lsbCBydW5cbiAqIHJvc2V0dGEgZm9yIHJlYWwsIHRoaXMganVzdCBhZGRzIGEgY2hlY2sgdG8gdGhlIGJ1aWxkIHRvXG4gKiBlbnN1cmUgdGhhdCByb3NldHRhIHdpbGwgcnVuIHN1Y2Nlc3NmdWxseVxuICovXG5leHBvcnQgY2xhc3MgUm9zZXR0YSBleHRlbmRzIENvbXBvbmVudCB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IGNkay5Kc2lpUHJvamVjdCwgb3B0aW9uczogUm9zZXR0YU9wdGlvbnMgPSB7fSkge1xuICAgIHN1cGVyKHByb2plY3QpO1xuXG4gICAgY29uc3Qgc3RyaWN0ID0gb3B0aW9ucy5zdHJpY3QgPz8gdHJ1ZTtcblxuICAgIGlmICghc3RyaWN0KSB7XG4gICAgICBwcm9qZWN0LmxvZ2dlci53YXJuKCdSb3NldHRhIGlzIE5PVCBvcGVyYXRpbmcgaW4gc3RyaWN0IG1vZGUuIFdlIGFyZSBnb2luZyB0byBlbmZvcmNlIHRoaXMgc29vbi5cXG5QbGVhc2UgZml4IGFueSBleGFtcGxlcy4nKTtcbiAgICB9XG5cbiAgICAvLyBBZGQgRGV2RGVwXG4gICAgY29uc3Qgcm9zZXR0YURlcCA9IG9wdGlvbnMudmVyc2lvbiA/IGBqc2lpLXJvc2V0dGFAJHtvcHRpb25zLnZlcnNpb259YCA6ICdqc2lpLXJvc2V0dGEnO1xuICAgIHByb2plY3QuYWRkRGV2RGVwcyhyb3NldHRhRGVwKTtcblxuICAgIGNvbnN0IHJvc2V0dGFUYXNrID0gcHJvamVjdC5hZGRUYXNrKCdyb3NldHRhOmV4dHJhY3QnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1Rlc3Qgcm9zZXR0YSBleHRyYWN0JyxcbiAgICAgIGV4ZWM6IGB5YXJuIC0tc2lsZW50IGpzaWktcm9zZXR0YSBleHRyYWN0ICR7c3RyaWN0ID8gJy0tc3RyaWN0JyA6ICcnfWAudHJpbSgpLFxuICAgIH0pO1xuICAgIHByb2plY3QucG9zdENvbXBpbGVUYXNrLnNwYXduKHJvc2V0dGFUYXNrKTtcbiAgICBwcm9qZWN0LmFkZEdpdElnbm9yZSgnLmpzaWkudGFibC5qc29uJyk7XG4gICAgbmV3IFNhbXBsZUZpbGUocHJvamVjdCwgJ3Jvc2V0dGEvZGVmYXVsdC50cy1maXh0dXJlJywge1xuICAgICAgY29udGVudHM6IFtcbiAgICAgICAgJy8vIEZpeHR1cmUgd2l0aCBwYWNrYWdlcyBpbXBvcnRlZCwgYnV0IG5vdGhpbmcgZWxzZScsXG4gICAgICAgIFwiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XCIsXG4gICAgICAgICdpbXBvcnQgeycsXG4gICAgICAgICcgIFN0YWNrLCcsXG4gICAgICAgIFwifSBmcm9tICdhd3MtY2RrLWxpYic7XCIsXG4gICAgICAgICcnLFxuICAgICAgICAnY2xhc3MgRml4dHVyZSBleHRlbmRzIFN0YWNrIHsnLFxuICAgICAgICAnICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKSB7JyxcbiAgICAgICAgJyAgICBzdXBlcihzY29wZSwgaWQpOycsXG4gICAgICAgICcnLFxuICAgICAgICAnICAgIC8vLyBoZXJlJyxcbiAgICAgICAgJyAgfScsXG4gICAgICAgICd9JyxcbiAgICAgIF0uam9pbignXFxuJyksXG4gICAgfSk7XG4gICAgcHJvamVjdC5hZGRHaXRJZ25vcmUoJyEvcm9zZXR0YS9kZWZhdWx0LnRzLWZpeHR1cmUnKTtcbiAgfVxufVxuIl19
@@ -271,7 +271,7 @@ class MonorepoRelease extends projen_1.Component {
271
271
  }
272
272
  exports.MonorepoRelease = MonorepoRelease;
273
273
  _a = JSII_RTTI_SYMBOL_1;
274
- MonorepoRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.MonorepoRelease", version: "0.2.10" };
274
+ MonorepoRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.MonorepoRelease", version: "0.2.11" };
275
275
  function slugify(x) {
276
276
  return x.replace(/[^a-zA-Z0-9_-]/g, '-').replace(/^[0-9-]+/, '');
277
277
  }
@@ -222,7 +222,7 @@ class Monorepo extends projen_1.typescript.TypeScriptProject {
222
222
  }
223
223
  exports.Monorepo = Monorepo;
224
224
  _a = JSII_RTTI_SYMBOL_1;
225
- Monorepo[_a] = { fqn: "cdklabs-projen-project-types.yarn.Monorepo", version: "0.2.10" };
225
+ Monorepo[_a] = { fqn: "cdklabs-projen-project-types.yarn.Monorepo", version: "0.2.11" };
226
226
  function getObjFromFile(project, file) {
227
227
  return project.tryFindObjectFile(file)?.obj;
228
228
  }
@@ -257,5 +257,5 @@ class CdkLabsMonorepo extends Monorepo {
257
257
  }
258
258
  exports.CdkLabsMonorepo = CdkLabsMonorepo;
259
259
  _b = JSII_RTTI_SYMBOL_1;
260
- CdkLabsMonorepo[_b] = { fqn: "cdklabs-projen-project-types.yarn.CdkLabsMonorepo", version: "0.2.10" };
260
+ CdkLabsMonorepo[_b] = { fqn: "cdklabs-projen-project-types.yarn.CdkLabsMonorepo", version: "0.2.11" };
261
261
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9ub3JlcG8uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMveWFybi9tb25vcmVwby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUE2QztBQUM3QyxtQ0FBc0c7QUFFdEcseURBQXFEO0FBQ3JELDZCQUEwQjtBQUcxQixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDRDQUE0QyxDQUFDLENBQUM7QUFFOUU7O0dBRUc7QUFDSCxNQUFhLFFBQVMsU0FBUSxtQkFBVSxDQUFDLGlCQUFpQjtJQUNqRCxNQUFNLENBQUMsVUFBVSxDQUFDLENBQVU7UUFDakMsT0FBTyxPQUFPLENBQUMsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLFFBQVEsSUFBSSxZQUFZLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQWVELFlBQVksT0FBd0I7UUFDbEMsS0FBSyxDQUFDO1lBQ0osR0FBRyxPQUFPO1lBQ1YsY0FBYyxFQUFFLG1CQUFVLENBQUMsa0JBQWtCLENBQUMsWUFBWTtZQUMxRCxVQUFVLEVBQUUsS0FBSztZQUNqQixJQUFJLEVBQUUsS0FBSztZQUNYLE1BQU0sRUFBRSxLQUFLO1lBQ2IsT0FBTyxFQUFFLEtBQUs7U0FDZixDQUFDLENBQUM7UUFYRyxhQUFRLEdBQUcsSUFBSSxLQUFLLEVBQXVCLENBQUM7UUFDNUMsNEJBQXVCLEdBQUcsSUFBSSxLQUFLLEVBQWlCLENBQUM7UUFZM0QsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFFM0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ3hDLE1BQU0sV0FBVyxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUUvRDs7V0FFRztRQUNILElBQUksT0FBTyxDQUFDLFFB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K0I7UUFDekMsS0FBSyxDQUFDO1lBQ0osVUFBVSxFQUFFLElBQUk7WUFFaEIsbUJBQW1CLEVBQUUsSUFBSTtZQUN6QixrQkFBa0IsRUFBRTtnQkFDbEIsZ0JBQWdCLEVBQUUsQ0FBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUM7Z0JBQ3pFLE1BQU0sRUFBRSxjQUFjO2FBQ3ZCO1lBQ0QsR0FBRyxPQUFPO1lBQ1YsYUFBYSxFQUFFO2dCQUNiLEdBQUcsT0FBTyxDQUFDLGFBQWE7Z0JBQ3hCLE9BQU8sRUFBRSxLQUFLO2FBQ2Y7WUFDRCw2R0FBNkc7WUFDN0csK0ZBQStGO1lBQy9GLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxtQkFBbUIsSUFBSSxPQUFPO1NBQzVELENBQUMsQ0FBQztRQUVILElBQUksZUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUU7WUFDMUIsZ0JBQWdCLEVBQUU7Z0JBQ2hCLGlCQUFpQixFQUFFLGVBQU0sQ0FBQyxpQkFBaUIsQ0FBQyx1QkFBdUIsQ0FBQyxFQUFFLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxDQUFDO2FBQ3ZHO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF6QkgsMENBMEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aFBvc2l4IGZyb20gJ25vZGU6cGF0aC9wb3NpeCc7XG5pbXBvcnQgeyBKc29uRmlsZSwgUHJvamVjdCwgamF2YXNjcmlwdCwgdHlwZXNjcmlwdCwgZ2l0aHViLCBEZXBlbmRlbmN5VHlwZSwgSnNvblBhdGNoIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IE1vbm9yZXBvT3B0aW9ucyB9IGZyb20gJy4vbW9ub3JlcG8tb3B0aW9ucyc7XG5pbXBvcnQgeyBNb25vcmVwb1JlbGVhc2UgfSBmcm9tICcuL21vbm9yZXBvLXJlbGVhc2UnO1xuaW1wb3J0IHsgTnggfSBmcm9tICcuL254JztcbmltcG9ydCB7IFR5cGVTY3JpcHRXb3Jrc3BhY2UgfSBmcm9tICcuL3R5cGVzY3JpcHQtd29ya3NwYWNlJztcblxuY29uc3QgTU9OT1JFUE9fU1lNID0gU3ltYm9sLmZvcignY2RrbGFicy1wcm9qZW4tcHJvamVjdC10eXBlcy55YXJuLk1vbm9yZXBvJyk7XG5cbi8qKlxuICogQSBtb25vcmVwbyB1c2luZyB5YXJuIHdvcmtzcGFjZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBNb25vcmVwbyBleHRlbmRzIHR5cGVzY3JpcHQuVHlwZVNjcmlwdFByb2plY3Qge1xuICBwdWJsaWMgc3RhdGljIGlzTW9ub3JlcG8oeDogUHJvamVjdCk6IHggaXMgTW9ub3JlcG8ge1xuICAgIHJldHVybiBCb29sZWFuKHggJiYgdHlwZW9mIHggPT09ICdvYmplY3QnICYmIE1PTk9SRVBPX1NZTSBpbiB4KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgTW9ub3JlcG8gUmVsZWFzZSBjb21wb25lbnRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBtb25vcmVwb1JlbGVhc2U/OiBNb25vcmVwb1JlbGVhc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgd2hlcmUgdGhlIGFjdHVhbCBjb2RlIGZvciB0aGUgcGFja2FnZSBsaXZlcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByZXBvc2l0b3J5VXJsPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgcHJvamVjdHMgPSBuZXcgQXJyYXk8VHlwZVNjcmlwdFdvcmtzcGFjZT4oKTtcbiAgcHJpdmF0ZSBwb3N0SW5zdGFsbERlcGVuZGVuY2llcyA9IG5ldyBBcnJheTwoKSA9PiBib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE1vbm9yZXBvT3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBwYWNrYWdlTWFuYWdlcjogamF2YXNjcmlwdC5Ob2RlUGFja2FnZU1hbmFnZXIuWUFSTl9DTEFTU0lDLFxuICAgICAgc2FtcGxlQ29kZTogZmFsc2UsXG4gICAgICBqZXN0OiBmYWxzZSxcbiAgICAgIGVzbGludDogZmFsc2UsXG4gICAgICByZWxlYXNlOiBmYWxzZSxcbiAgICB9KTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBNT05PUkVQT19TWU0sIHsgdmFsdWU6IHRydWUgfSk7XG5cbiAgICB0aGlzLnJlcG9zaXRvcnlVcmwgPSBvcHRpb25zLnJlcG9zaXRvcnk7XG4gICAgY29uc3QgYnVpbGRXaXRoTnggPSBCb29sZWFuKG9wdGlvbnMubnggJiYgb3B0aW9ucy5idWlsZFdpdGhOeCk7XG5cbiAgICAvKipcbiAgICAgKiBQcmV0dGllciBmb3JtYXR0aW5nXG4gICAgICovXG4gICAgaWYgKG9wdGlvbnMucHJldHRpZXIpIHtcbiAgICAgIHRoaXMuYWRkRGV2RGVwcygnZXNsaW50LWNvbmZpZy1wcmV0dGllcicsICdlc2xpbnQtcGx1Z2luLXByZXR0aWVyJyk7XG4gICAgICBuZXcgSnNvbkZpbGUodGhpcywgJy5lc2xpbnRyYy5qc29uJywge1xuICAgICAgICBhbGxvd0NvbW1lbnRzOiB0cnVlLFxuICAgICAgICBvYmo6IHtcbiAgICAgICAgICBwbHVnaW5zOiBbJ0B0eXBlc2NyaXB0LWVzbGludCcsICdwcmV0dGllciddLFxuICAgICAgICAgIHBhcnNlcjogJ0B0eXBlc2NyaXB0LWVzbGludC9wYXJzZXInLFxuICAgICAgICAgIHBhcnNlck9wdGlvbnM6IHtcbiAgICAgICAgICAgIGVjbWFWZXJzaW9uOiAyMDE4LFxuICAgICAgICAgICAgc291cmNlVHlwZTogJ21vZHVsZScsXG4gICAgICAgICAgICBwcm9qZWN0OiAnLi90c2NvbmZpZy5kZXYuanNvbicsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBpZ25vcmVQYXR0ZXJuczogWychLnByb2plbnJjLnRzJ10sXG4gICAgICAgICAgZXh0ZW5kczogWydwbHVnaW46cHJldHRpZXIvcmVjb21tZW5kZWQnXSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgICAgdGhpcy50YXNrcy5hZGRUYXNrKCdmbXQnLCB7IGV4ZWM6ICdlc2xpbnQgLS1leHQgLnRzIC0tZml4IC0tbm8tZXJyb3Itb24tdW5tYXRjaGVkLXBhdHRlcm4gcHJvamVucmMgLnByb2plbnJjLnRzJyB9KTtcblxuICAgICAgdGhpcy52c2NvZGU/LmV4dGVuc2lvbnMuYWRkUmVjb21tZW5kYXRpb25zKCdlc2JlbnAucHJldHRpZXItdnNjb2RlJywgJ2RiYWV1bWVyLnZzY29kZS1lc2xpbnQnKTtcbiAgICAgIHRoaXMudnNjb2RlPy5zZXR0aW5ncy5hZGRTZXR0aW5nKCdlZGl0b3IuZGVmYXVsdEZvcm1hdHRlcicsICdlc2JlbnAucHJldHRpZXItdnNjb2RlJyk7XG4gICAgICB0aGlzLnZzY29kZT8uc2V0dGluZ3MuYWRkU2V0dGluZygnZXNsaW50LmZvcm1hdC5lbmFibGUnLCB0cnVlKTtcbiAgICAgIHRoaXMudnNjb2RlPy5zZXR0aW5ncy5hZGRTZXR0aW5ncyh7ICdlZGl0b3IuZGVmYXVsdEZvcm1hdHRlcic6ICdkYmFldW1lci52c2NvZGUtZXNsaW50JyB9LCBbXG4gICAgICAgICdqYXZhc2NyaXB0JyxcbiAgICAgICAgJ3R5cGVzY3JpcHQnLFxuICAgICAgXSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIGEgVlNDb2RlIFdvcmtzcGFjZVxuICAgICAqL1xuICAgIGlmIChvcHRpb25zLnZzY29kZVdvcmtzcGFjZSkge1xuICAgICAgY29uc3Qgd29ya3NwYWNlRmlsZSA9IGAke3RoaXMubmFtZX0uY29kZS13b3Jrc3BhY2VgO1xuICAgICAgbmV3IEpzb25GaWxlKHRoaXMsIHdvcmtzcGFjZUZpbGUsIHtcbiAgICAgICAgYWxsb3dDb21tZW50czogdHJ1ZSxcbiAgICAgICAgb2JqOiAoKSA9PiAoe1xuICAgICAgICAgIGZvbGRlcnM6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGZvbGRlcnM6IEFycmF5PHtcbiAgICAgICAgICAgICAgcGF0aDogc3RyaW5nO1xuICAgICAgICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICAgICAgfT4gPSB0aGlzLnByb2plY3RzXG4gICAgICAgICAgICAgIC5zb3J0KChwMSwgcDIpID0+IHAxLm5hbWUubG9jYWxlQ29tcGFyZShwMi5uYW1lKSlcbiAgICAgICAgICAgICAgLm1hcCgocCkgPT4gKHsgcGF0aDogcC53b3Jrc3BhY2VEaXJlY3RvcnkgfSkpO1xuXG4gICAgICAgICAgICBpZiAob3B0aW9ucy52c2NvZGVXb3Jrc3BhY2VPcHRpb25zPy5pbmNsdWRlUm9vdFdvcmtzcGFjZSkge1xuICAgICAgICAgICAgICBmb2xkZXJzLnVuc2hpZnQoeyBwYXRoOiAnLicsIG5hbWU6IG9wdGlvbnMudnNjb2RlV29ya3NwYWNlT3B0aW9ucz8ucm9vdFdvcmtzcGFjZU5hbWUgPz8gJzxyb290PicgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmb2xkZXJzO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgc2V0dGluZ3M6ICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNldHRpbmdzID0gKGdldE9iakZyb21GaWxlKHRoaXMsICcudnNjb2RlL3NldHRpbmdzLmpzb24nKSA/PyB7fSkgYXMgYW55O1xuICAgICAgICAgICAgaWYgKG9wdGlvbnMudnNjb2RlV29ya3NwYWNlT3B0aW9ucz8uaW5jbHVkZVJvb3RXb3Jrc3BhY2UgJiYgdGhpcy5wcm9qZWN0cy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgc2V0dGluZ3NbJ2ZpbGVzLmV4Y2x1ZGUnXSA9IHRoaXMucHJvamVjdHMucmVkdWNlKChleGNsdWRlcywgcCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAuLi5leGNsdWRlcyxcbiAgICAgICAgICAgICAgICAgIFtwLndvcmtzcGFjZURpcmVjdG9yeS5zcGxpdChwYXRoUG9zaXguc2VwKVswXV06IHRydWUsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgfSwgc2V0dGluZ3NbJ2ZpbGVzLmV4Y2x1ZGUnXSA/PyB7fSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gc2V0dGluZ3M7XG4gICAgICAgICAgfSxcbiAgICAgICAgICBleHRlbnNpb25zOiAoKSA9PiBnZXRPYmpGcm9tRmlsZSh0aGlzLCAnLnZzY29kZS9leHRlbnNpb25zLmpzb24nKSxcbiAgICAgICAgfSksXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUYXNrc1xuICAgICAqL1xuICAgIC8vIGJ1aWxkIHRhc2tcbiAgICB0aGlzLnRhc2tzLnJlbW92ZVRhc2soJ2J1aWxkJyk7XG4gICAgY29uc3QgZm10VGFzayA9IHRoaXMudGFza3MudHJ5RmluZCgnZm10Jyk7XG4gICAgY29uc3QgYnVpbGRUYXNrID0gdGhpcy50YXNrcy5hZGRUYXNrKCdidWlsZCcpO1xuICAgIGlmICh0aGlzLmRlZmF1bHRUYXNrKSB7XG4gICAgICBidWlsZFRhc2suc3Bhd24odGhpcy5kZWZhdWx0VGFzayk7XG4gICAgfVxuICAgIGlmIChmbXRUYXNrKSB7XG4gICAgICBidWlsZFRhc2suc3Bhd24oZm10VGFzayk7XG4gICAgfVxuICAgIGlmIChidWlsZFdpdGhOeCkge1xuICAgICAgYnVpbGRUYXNrLmV4ZWMoJ254IHJ1bi1tYW55IC10IGJ1aWxkJyk7XG4gICAgICB0aGlzLmdpdGh1Yj8udHJ5RmluZFdvcmtmbG93KCdidWlsZCcpPy5maWxlPy5wYXRjaChcbiAgICAgICAgSnNvblBhdGNoLmFkZCgnL2pvYnMvYnVpbGQvZW52L05YX1NLSVBfTlhfQ0FDSEUnLCAndHJ1ZScpLFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgYnVpbGRUYXNrLmV4ZWMoJ3lhcm4gd29ya3NwYWNlcyBydW4gYnVpbGQnKTtcbiAgICB9XG5cbiAgICAvLyBSdW4gaW4gYWxsIHdvcmtzcGFjZXMgdGFza3NcbiAgICB0aGlzLnRhc2tzLnRyeUZpbmQoJ2NvbXBpbGUnKT8ucmVzZXQoJ3lhcm4gd29ya3NwYWNlcyBydW4gY29tcGlsZScpO1xuICAgIHRoaXMudGFza3MudHJ5RmluZCgncGFja2FnZScpPy5yZXNldCgneWFybiB3b3Jrc3BhY2VzIHJ1biBwYWNrYWdlJyk7XG4gICAgdGhpcy50YXNrcy50cnlGaW5kKCd0ZXN0Jyk/LnJlc2V0KCd5YXJuIHdvcmtzcGFjZXMgcnVuIHRlc3QnKTtcbiAgICB0aGlzLmFkZFRhc2soJ3J1bicsIHtcbiAgICAgIGV4ZWM6ICd5YXJuIHdvcmtzcGFjZXMgcnVuJyxcbiAgICAgIHJlY2VpdmVBcmdzOiB0cnVlLFxuICAgIH0pO1xuXG4gICAgLy8gVXBncmFkZSBhbGwgcGFja2FnZXNcbiAgICB0aGlzLnRhc2tzLnJlbW92ZVRhc2soJ3VwZ3JhZGUnKTtcbiAgICB0aGlzLnRhc2tzLmFkZFRhc2soJ3VwZ3JhZGUnLCB7XG4gICAgICBlbnY6IHsgQ0k6ICcwJyB9LFxuICAgICAgZGVzY3JpcHRpb246ICdVcGdyYWRlIGRlcGVuZGVuY2llcyBpbiBhbGwgd29ya3NwYWNlcycsXG4gICAgICBzdGVwczogW1xuICAgICAgICAvLyBJdCBpcyBub3Qgc2FmZSBhbnltb3JlIHRvIGhhdmUgJ25wbS1jaGVjay11cGRhdGVzJyBpbiBhIFlhcm4gMSBkZXBlbmRlbmN5IHRyZWUsIHNvIHJ1biBpdCBpbiBhIHNlcGFyYXRlXG4gICAgICAgIC8vIHRyZWUgYnkgdXNpbmcgbnB4LlxuICAgICAgICB7IGV4ZWM6ICducHggbnBtLWNoZWNrLXVwZGF0ZXNAMTYgLS1kZXA9ZGV2LG9wdGlvbmFsLHBlZXIscHJvZCxidW5kbGUgLS11cGdyYWRlIC0tdGFyZ2V0PW1pbm9yJyB9LFxuICAgICAgICB7IGV4ZWM6ICd5YXJuIHdvcmtzcGFjZXMgcnVuIGNoZWNrLWZvci11cGRhdGVzJyB9LFxuICAgICAgICB7IGV4ZWM6ICd5YXJuIGluc3RhbGwgLS1jaGVjay1maWxlcycgfSxcbiAgICAgICAgeyBleGVjOiAneWFybiB1cGdyYWRlJyB9LFxuICAgICAgICB7IHNwYXduOiAnZGVmYXVsdCcgfSxcbiAgICAgICAgeyBzcGF3bjogJ3Bvc3QtdXBncmFkZScgfSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICAvLyBDbGVhbiB1cCB0YXNrcyBub3QgcmVxdWlyZWQgYXQgdG9wLWxldmVsXG4gICAgdGhpcy50YXNrcy5yZW1vdmVUYXNrKCdlamVjdCcpO1xuICAgIHRoaXMudGFza3MucmVtb3ZlVGFzaygnd2F0Y2gnKTtcbiAgICB0aGlzLnRhc2tzLnJlbW92ZVRhc2soJ3ByZS1jb21waWxlJyk7XG4gICAgdGhpcy50YXNrcy5yZW1vdmVUYXNrKCdwb3N0LWNvbXBpbGUnKTtcblxuICAgIC8vIE54XG4gICAgaWYgKG9wdGlvbnMubngpIHtcbiAgICAgIG5ldyBOeCh0aGlzLCB7XG4gICAgICAgIGRlZmF1bHRCYXNlOiBvcHRpb25zLmRlZmF1bHRSZWxlYXNlQnJhbmNoLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gUmVsZWFzZSBXb3JrZmxvd1xuICAgIGlmIChvcHRpb25zLnJlbGVhc2UpIHtcbiAgICAgIHRoaXMubW9ub3JlcG9SZWxlYXNlID0gbmV3IE1vbm9yZXBvUmVsZWFzZSh0aGlzLCB7XG4gICAgICAgIHdvcmtmbG93UnVuc09uOiBvcHRpb25zLndvcmtmbG93UnVuc09uLFxuICAgICAgICBidWlsZFdpdGhOeCxcbiAgICAgICAgLi4ub3B0aW9ucy5yZWxlYXNlT3B0aW9ucyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlcihwcm9qZWN0OiBUeXBlU2NyaXB0V29ya3NwYWNlKSB7XG4gICAgdGhpcy5wcm9qZWN0cy5wdXNoKHByb2plY3QpO1xuICB9XG5cbiAgcHVibGljIHN5bnRoKCkge1xuICAgIHRoaXMuZmluYWxFc2NhcGVIYXRjaGVzKCk7XG4gICAgc3VwZXIuc3ludGgoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbGxvd3MgYSBzdWIgcHJvamVjdCB0byByZXF1ZXN0IGluc3RhbGxhdGlvbiBvZiBkZXBlbmRlbmN5IGF0IHRoZSBNb25vcmVwbyByb290XG4gICAqIFRoZXkgbXVzdCBwcm92aWRlIGEgZnVuY3Rpb24gdGhhdCBpcyBleGVjdXRlZCBhZnRlciBkZXBlbmRlbmNpZXMgaGF2ZSBiZWVuIGluc3RhbGxlZFxuICAgKiBJZiB0aGlzIGZ1bmN0aW9uIHJldHVybnMgdHJ1ZSwgdGhlIGluc3RhbGwgY29tbWFuZCBpcyBydW4gZm9yIGEgc2Vjb25kIHRpbWUgYWZ0ZXIgYWxsIHN1YiBwcm9qZWN0IHJlcXVlc3RzIGhhdmUgcnVuLlxuICAgKiBUaGlzIGlzIHVzZWQgdG8gcmVzb2x2ZSBkZXBlbmRlbmN5IHZlcnNpb25zIGZyb20gYCpgIHRvIGEgY29uY3JldGUgdmVyc2lvbiBjb25zdHJhaW50LlxuICAgKi9cbiAgcHVibGljIHJlcXVlc3RJbnN0YWxsRGVwZW5kZW5jaWVzKHJlc29sdmVyOiBJRGVwZW5kZW5jeVJlc29sdmVyKSB7XG4gICAgdGhpcy5wb3N0SW5zdGFsbERlcGVuZGVuY2llcy5wdXNoKHJlc29sdmVyLnJlc29sdmVEZXBzQW5kV3JpdGVQYWNrYWdlSnNvbik7XG4gIH1cblxuICAvKipcbiAgICogQ29kZSB0aGF0IG5lZWRzIHRvIHJ1biBqdXN0IGJlZm9yZSBzeW50aCwgYnV0IGFmdGVyIGFsbCBvdGhlciBjb2RlXG4gICAqL1xuICBwcml2YXRlIGZpbmFsRXNjYXBlSGF0Y2hlcygpIHtcbiAgICAvLyBHZXQgdGhlIE9iamVjdEZpbGVcbiAgICB0aGlzLnBhY2thZ2UuYWRkRmllbGQoJ3ByaXZhdGUnLCB0cnVlKTtcbiAgICB0aGlzLnBhY2thZ2UuYWRkRmllbGQoJ3dvcmtzcGFjZXMnLCB7XG4gICAgICBwYWNrYWdlczogdGhpcy5wcm9qZWN0cy5tYXAoKHApID0+IHAud29ya3NwYWNlRGlyZWN0b3J5KSxcbiAgICAgIC4uLnRoaXMucmVuZGVyTm9Ib2lzdCgpLFxuICAgIH0pO1xuXG4gICAgdGhpcy50c2NvbmZpZz8uZmlsZS5hZGRPdmVycmlkZSgnaW5jbHVkZScsIFtdKTtcbiAgICB0aGlzLnRzY29uZmlnRGV2Py5maWxlLmFkZE92ZXJyaWRlKCdpbmNsdWRlJywgWycucHJvamVucmMudHMnLCAncHJvamVucmMvKiovKi50cyddKTtcbiAgICBmb3IgKGNvbnN0IHRzY29uZmlnIG9mIFt0aGlzLnRzY29uZmlnLCB0aGlzLnRzY29uZmlnRGV2XSkge1xuICAgICAgdHNjb25maWc/LmZpbGUuYWRkT3ZlcnJpZGUoXG4gICAgICAgICdyZWZlcmVuY2VzJyxcbiAgICAgICAgdGhpcy5wcm9qZWN0cy5tYXAoKHApID0+ICh7IHBhdGg6IHAud29ya3NwYWNlRGlyZWN0b3J5IH0pKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5wYWNrYWdlLmFkZEZpZWxkKCdqZXN0Jywge1xuICAgICAgcHJvamVjdHM6IHRoaXMucHJvamVjdHMubWFwKChwKSA9PiBgPHJvb3REaXI+LyR7cC53b3Jrc3BhY2VEaXJlY3Rvcnl9YCksXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSAnbm9ob2lzdCcgZGlyZWN0aXZlXG4gICAqXG4gICAqIEJ1bmRsZWQgZGVwZW5kZW5jaWVzIG11c3QgYmUgbm9ob2lzdCdlZCwgb3RoZXJ3aXNlIE5QTSBzaWxlbnRseSB3b24ndCBidW5kbGUgdGhlbS5cbiAgICpcbiAgICogUmVuZGVycyBhbiBvYmplY3QgdGhhdCBzaG91bGQgYmUgbWl4ZWQgaW50byB0aGUgYHdvcmtzcGFjZXNgIG9iamVjdC5cbiAgICovXG4gIHByaXZhdGUgcmVuZGVyTm9Ib2lzdCgpOiBhbnkge1xuICAgIGNvbnN0IG5vaG9pc3QgPSB0aGlzLnByb2plY3RzLmZsYXRNYXAoKHApID0+XG4gICAgICBwLmRlcHMuYWxsXG4gICAgICAgIC5maWx0ZXIoKGRlcCkgPT4gZGVwLnR5cGUgPT09IERlcGVuZGVuY3lUeXBlLkJVTkRMRUQpXG4gICAgICAgIC5mbGF0TWFwKChkZXApID0+IFtcbiAgICAgICAgICBgJHtwLm5hbWV9LyR7ZGVwLm5hbWV9YCxcbiAgICAgICAgICBgJHtwLm5hbWV9LyR7ZGVwLm5hbWV9LyoqYCxcbiAgICAgICAgXSksXG4gICAgKTtcbiAgICByZXR1cm4gbm9ob2lzdC5sZW5ndGggPiAwID8geyBub2hvaXN0IH0gOiB1bmRlZmluZWQ7XG4gIH1cblxuICAvKipcbiAgICogSG9va3MgaW50byB0aGUgaW5zdGFsbCBkZXBlbmRlbmNpZXMgY3ljbGVcbiAgICovXG4gIHB1YmxpYyBwb3N0U3ludGhlc2l6ZSgpIHtcbiAgICBpZiAodGhpcy5wb3N0SW5zdGFsbERlcGVuZGVuY2llcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG5vZGVQa2c6IGFueSA9IHRoaXMucGFja2FnZTtcbiAgICAgIG5vZGVQa2cuaW5zdGFsbERlcGVuZGVuY2llcygpO1xuXG4gICAgICBjb25zdCBjb21wbGV0ZWRSZXF1ZXN0cyA9IHRoaXMucG9zdEluc3RhbGxEZXBlbmRlbmNpZXMubWFwKChyZXF1ZXN0KSA9PiByZXF1ZXN0KCkpO1xuICAgICAgaWYgKGNvbXBsZXRlZFJlcXVlc3RzLnNvbWUoQm9vbGVhbikpIHtcbiAgICAgICAgbm9kZVBrZy5pbnN0YWxsRGVwZW5kZW5jaWVzKCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucG9zdEluc3RhbGxEZXBlbmRlbmNpZXMgPSBbXTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRGVwZW5kZW5jeVJlc29sdmVyIHtcbiAgcmVzb2x2ZURlcHNBbmRXcml0ZVBhY2thZ2VKc29uKCk6IGJvb2xlYW47XG59XG5cbmZ1bmN0aW9uIGdldE9iakZyb21GaWxlKHByb2plY3Q6IFByb2plY3QsIGZpbGU6IHN0cmluZyk6IG9iamVjdCB7XG4gIHJldHVybiAocHJvamVjdC50cnlGaW5kT2JqZWN0RmlsZShmaWxlKSBhcyBhbnkpPy5vYmo7XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgQ2RrTGFic01vbm9yZXBvXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrTGFic01vbm9yZXBvT3B0aW9ucyBleHRlbmRzIE1vbm9yZXBvT3B0aW9ucyB7fVxuXG4vKipcbiAqIE9waW5pb25hdGVkIGltcGxlbWVudGF0aW9uIG9mIHlhcm4uTW9ub3JlcG9cbiAqIEBwamlkIGNka2xhYnMteWFybi1tb25vcmVwb1xuICovXG5leHBvcnQgY2xhc3MgQ2RrTGFic01vbm9yZXBvIGV4dGVuZHMgTW9ub3JlcG8ge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtMYWJzTW9ub3JlcG9PcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgcHJvamVucmNUczogdHJ1ZSxcblxuICAgICAgYXV0b0FwcHJvdmVVcGdyYWRlczogdHJ1ZSxcbiAgICAgIGF1dG9BcHByb3ZlT3B0aW9uczoge1xuICAgICAgICBhbGxvd2VkVXNlcm5hbWVzOiBbJ2dpdGh1Yi1ib3QnLCAnY2RrbGFicy1hdXRvbWF0aW9uJywgJ2RlcGVuZGFib3RbYm90XSddLFxuICAgICAgICBzZWNyZXQ6ICdHSVRIVUJfVE9LRU4nLFxuICAgICAgfSxcbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBnaXRodWJPcHRpb25zOiB7XG4gICAgICAgIC4uLm9wdGlvbnMuZ2l0aHViT3B0aW9ucyxcbiAgICAgICAgbWVyZ2lmeTogZmFsc2UsXG4gICAgICB9LFxuICAgICAgLy8gRGV2aWF0aW9uIGZyb20gdXBzdHJlYW0gcHJvamVuOiB1cHN0cmVhbSBwcm9qZW4gZGVmYXVsdHMgdG8gbWluTm9kZVZlcnNpb24sIGJ1dCB3ZSBoYXZlIHRvbyBtYW55IHdvcmtmbG93c1xuICAgICAgLy8gdGhhdCB1c2UgdG9vbHMgdGhhdCB3YW50IGEgcmVjZW50IE5vZGUgdmVyc2lvbiwgc28gZGVmYXVsdCB0byBhIHJlYXNvbmFibGUgZmxvYXRpbmcgdmVyc2lvbi5cbiAgICAgIHdvcmtmbG93Tm9kZVZlcnNpb246IG9wdGlvbnMud29ya2Zsb3dOb2RlVmVyc2lvbiA/PyAnbHRzLyonLFxuICAgIH0pO1xuXG4gICAgbmV3IGdpdGh1Yi5NZXJnZVF1ZXVlKHRoaXMsIHtcbiAgICAgIGF1dG9RdWV1ZU9wdGlvbnM6IHtcbiAgICAgICAgcHJvamVuQ3JlZGVudGlhbHM6IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tUGVyc29uYWxBY2Nlc3NUb2tlbih7IHNlY3JldDogJ1BST0pFTl9HSVRIVUJfVE9LRU4nIH0pLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -115,5 +115,5 @@ class WorkspaceRelease extends projen_1.Component {
115
115
  }
116
116
  exports.WorkspaceRelease = WorkspaceRelease;
117
117
  _a = JSII_RTTI_SYMBOL_1;
118
- WorkspaceRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.WorkspaceRelease", version: "0.2.10" };
118
+ WorkspaceRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.WorkspaceRelease", version: "0.2.11" };
119
119
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXNjcmlwdC13b3Jrc3BhY2UtcmVsZWFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy95YXJuL3R5cGVzY3JpcHQtd29ya3NwYWNlLXJlbGVhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxrQ0FBa0M7QUFDbEMsbUNBQW9HO0FBQ3BHLGlFQUErRTtBQW9CL0UsTUFBYSxnQkFBaUIsU0FBUSxrQkFBUztJQUs3QyxZQUFtQixPQUE0QixFQUFFLE9BQWdDO1FBQy9FLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1FBRXpCLCtEQUErRDtRQUMvRCxtRUFBbUU7UUFDbkUsMEVBQTBFO1FBQzFFLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGdCQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRTtnQkFDekMsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLDRDQUE0QztnQkFDOUUsa0JBQWtCLEVBQUUsT0FBTyxDQUFDLGtCQUFrQjtnQkFDOUMsZ0JBQWdCLEVBQUU7b0JBQ2hCLElBQUksRUFBRSxHQUFHLEVBQUUsMEZBQTBGO2lCQUN0RztnQkFDRCxpREFBaUQ7Z0JBQ2pELG9EQUFvRDtnQkFDcEQsdURBQXVEO2dCQUN2RCxTQUFTLEVBQUUsR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHO2dCQUU3QixrRUFBa0U7Z0JBQ2xFLHlFQUF5RTtnQkFDekUsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixJQUFJLDBCQUFpQixDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUM7Z0JBRWxGLGtCQUFrQixFQUFFLE9BQU8sQ0FBQyxrQkFBa0I7YUFDL0MsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGdCQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxTQUFTLEVB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TyxDQUFDLE1BQU0sRUFBRTtnQkFDN0IsV0FBVyxFQUFFLHNDQUFzQzthQUNwRCxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSyxnQkFBZ0I7UUFDdEIsT0FBTyxDQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFO2dCQUMvQixXQUFXLEVBQUUsZ0RBQWdEO2FBQzlELENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQzs7QUE3SEgsNENBOEhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBSZWxlYXNhYmxlQ29tbWl0cywgVGFzaywgVmVyc2lvbiwgVmVyc2lvbkJyYW5jaE9wdGlvbnMsIHJlbGVhc2UgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgR2F0aGVyVmVyc2lvbnMsIEdhdGhlclZlcnNpb25zT3B0aW9ucyB9IGZyb20gJy4vZ2F0aGVyLXZlcnNpb25zLnRhc2snO1xuaW1wb3J0IHsgVHlwZVNjcmlwdFdvcmtzcGFjZSB9IGZyb20gJy4vdHlwZXNjcmlwdC13b3Jrc3BhY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFdvcmtzcGFjZVJlbGVhc2VPcHRpb25zIHtcbiAgcmVhZG9ubHkgcHJpdmF0ZTogYm9vbGVhbjtcblxuICAvKiogQGRlZmF1bHQgJ2x0cy8qJyAqL1xuICByZWFkb25seSB3b3JrZmxvd05vZGVWZXJzaW9uPzogc3RyaW5nO1xuICByZWFkb25seSBwdWJsaXNoVG9OcG0/OiBib29sZWFuO1xuICByZWFkb25seSBucG1EaXN0VGFnPzogc3RyaW5nO1xuICByZWFkb25seSByZWxlYXNhYmxlQ29tbWl0cz86IFJlbGVhc2FibGVDb21taXRzO1xuICByZWFkb25seSBuZXh0VmVyc2lvbkNvbW1hbmQ/OiBzdHJpbmc7XG4gIHJlYWRvbmx5IHZlcnNpb25CcmFuY2hPcHRpb25zOiBWZXJzaW9uQnJhbmNoT3B0aW9ucztcblxuICAvKipcbiAgICogRm9yIHJ1bnRpbWUgYW5kIHBlZXIgZGVwZW5kZW5jaWVzLCB0aGUgdHlwZSBvZiBkZXBlbmRlbmN5IHdlIHRha2Ugb24gZWFjaCBwYWNrYWdlXG4gICAqL1xuICByZWFkb25seSByZXBvUnVudGltZURlcGVuZGVuY2llcz86IEdhdGhlclZlcnNpb25zT3B0aW9uc1sncmVwb1J1bnRpbWVEZXBlbmRlbmNpZXMnXTtcbn1cblxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZVJlbGVhc2UgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgcHVibGlzaGVyPzogcmVsZWFzZS5QdWJsaXNoZXI7XG4gIHB1YmxpYyByZWFkb25seSB2ZXJzaW9uPzogVmVyc2lvbjtcbiAgcHVibGljIHJlYWRvbmx5IHdvcmtzcGFjZTogVHlwZVNjcmlwdFdvcmtzcGFjZTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IocHJvamVjdDogVHlwZVNjcmlwdFdvcmtzcGFjZSwgb3B0aW9uczogV29ya3NwYWNlUmVsZWFzZU9wdGlvbnMpIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcbiAgICB0aGlzLndvcmtzcGFjZSA9IHByb2plY3Q7XG5cbiAgICAvLyBUaGUgcm9vdCBwYWNrYWdlIGlzIHJlbGVhc2UtYXdhcmUuIEVpdGhlciB3ZSBjcmVhdGUgYSBwcm9wZXJcbiAgICAvLyAneWFybiByZWxlYXNlJyB0YXNrIGhlcmUsIG9yIHdlIGNyZWF0ZSBhIGZha2Ugb25lIHRoYXQganVzdCBkb2VzXG4gICAgLy8gYSAnYnVpbGQnICh3aWxsIGJlIHJ1biBpbiBkZXBlbmRlbmN5IG9yZGVyIGJ5IHRoZSBwYXJlbnQgcmVsZWFzZSB0YXNrKS5cbiAgICBpZiAoIW9wdGlvbnMucHJpdmF0ZSkge1xuICAgICAgdGhpcy52ZXJzaW9uID0gbmV3IFZlcnNpb24odGhpcy53b3Jrc3BhY2UsIHtcbiAgICAgICAgdmVyc2lvbklucHV0RmlsZTogJ3BhY2thZ2UuanNvbicsIC8vIHRoaXMgaXMgd2hlcmUgXCJ2ZXJzaW9uXCIgaXMgc2V0IGFmdGVyIGJ1bXBcbiAgICAgICAgYXJ0aWZhY3RzRGlyZWN0b3J5OiBwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSxcbiAgICAgICAgdmVyc2lvbnJjT3B0aW9uczoge1xuICAgICAgICAgIHBhdGg6ICcuJywgLy8gSW4gYSBtb25vcmVwbywgd2Ugd2FudCBzdGFuZGFyZC12ZXJzaW9uIHRvIG9ubHkgY29uc2lkZXIgdGhlIGRpcmVjdG9yeSBvZiB0aGUgd29ya3NwYWNlXG4gICAgICAgIH0sXG4gICAgICAgIC8vIFRoaXMgbWl4ZXMgdGhlIHBhY2thZ2UgbmFtZSBpbnRvIHRoZSB0YWcgbmFtZSxcbiAgICAgICAgLy8gc28gdGhhdCB3ZSBjYW4gZ2l2ZSBwYWNrYWdlcyBpbmRpdmlkdWFsIHZlcnNpb25zLlxuICAgICAgICAvLyBUYWdzIGVuZCB1cCBsb29raW5nIGxpa2UgdGhpczogQHNjb3BlL3BhY2thZ2VAdjEuMi4zXG4gICAgICAgIHRhZ1ByZWZpeDogYCR7cHJvamVjdC5uYW1lfUBgLFxuXG4gICAgICAgIC8vIEluIGEgbW9ub3JlcG8sIG9ubHkgY29uc2lkZXIgY2hhbmdlcyByZWxldmFudCB0byB0aGUgc3VicHJvamVjdFxuICAgICAgICAvLyBQYXRoIGlzIHJlbGF0aXZlIHRvIHRoZSBzdWJwcm9qZWN0IG91dGRpciwgc28gJy4nIGlzIHdoYXQgd2Ugd2FudCBoZXJlXG4gICAgICAgIHJlbGVhc2FibGVDb21taXRzOiBvcHRpb25zLnJlbGVhc2FibGVDb21taXRzID8/IFJlbGVhc2FibGVDb21taXRzLmV2ZXJ5Q29tbWl0KCcuJyksXG5cbiAgICAgICAgbmV4dFZlcnNpb25Db21tYW5kOiBvcHRpb25zLm5leHRWZXJzaW9uQ29tbWFuZCxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnB1Ymxpc2hlciA9IG5ldyByZWxlYXNlLlB1Ymxpc2hlcih0aGlzLndvcmtzcGFjZSwge1xuICAgICAgICBhcnRpZmFjdE5hbWU6IHByb2plY3QuYXJ0aWZhY3RzRGlyZWN0b3J5LFxuICAgICAgICBjb25kaXRpb246ICduZWVkcy5yZWxlYXNlLm91dHB1dHMubGF0ZXN0X2NvbW1pdCA9PSBnaXRodWIuc2hhJyxcbiAgICAgICAgYnVpbGRKb2JJZDogJ3JlbGVhc2UnLFxuICAgICAgICB3b3JrZmxvd05vZGVWZXJzaW9uOiBvcHRpb25zLndvcmtmbG93Tm9kZVZlcnNpb24gPz8gJ2x0cy8qJyxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnB1Ymxpc2hlci5wdWJsaXNoVG9HaXRIdWJSZWxlYXNlcyh7XG4gICAgICAgIGNoYW5nZWxvZ0ZpbGU6IHBhdGgucG9zaXguam9pbihwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSwgdGhpcy52ZXJzaW9uLmNoYW5nZWxvZ0ZpbGVOYW1lKSxcbiAgICAgICAgdmVyc2lvbkZpbGU6IHBhdGgucG9zaXguam9pbihwcm9qZWN0LmFydGlmYWN0c0RpcmVjdG9yeSwgdGhpcy52ZXJzaW9uLnZlcnNpb25GaWxlTmFtZSksXG4gICAgICAgIHJlbGVhc2VUYWdGaWxlOiBwYXRoLnBvc2l4LmpvaW4ocHJvamVjdC5hcnRpZmFjdHNEaXJlY3RvcnksIHRoaXMudmVyc2lvbi5yZWxlYXNlVGFnRmlsZU5hbWUpLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIEdpdEh1YiBSZWxlYXNlcyBjb21lcyBmb3IgZnJlZSB3aXRoIGEgYFJlbGVhc2VgIGNvbXBvbmVudCwgTlBNIG11c3QgYmUgYWRkZWQgZXhwbGljaXRseVxuICAgICAgaWYgKG9wdGlvbnMucHVibGlzaFRvTnBtID8/IHRydWUpIHtcbiAgICAgICAgdGhpcy5wdWJsaXNoZXIucHVibGlzaFRvTnBtKHtcbiAgICAgICAgICByZWdpc3RyeTogcHJvamVjdC5wYWNrYWdlLm5wbVJlZ2lzdHJ5LFxuICAgICAgICAgIG5wbVRva2VuU2VjcmV0OiBwcm9qZWN0LnBhY2thZ2UubnBtVG9rZW5TZWNyZXQsXG4gICAgICAgICAgbnBtUHJvdmVuYW5jZTogcHJvamVjdC5wYWNrYWdlLm5wbVByb3ZlbmFuY2UsXG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoaXMgdGFza3Mgc2V0cyBhbGwgbG9jYWwgZGVwZW5kZW5jaWVzIHRvIHRoZWlyIGN1cnJlbnQgdmVyc2lvblxuICAgIC8vIEluIHRoZSBtb25vcmVwbyB3ZSBjYWxsIHRoaXMgdGFzayBpbiB0b3BvbG9naWNhbCBvcmRlci5cbiAgICAvLyBUaGVyZWZvciBpdCBpcyBndWFyYW50ZWVkIHRoYXQgYW55IGxvY2FsIHBhY2thZ2VzIGEgcGFja2FnZSBkZXBlbmRzIG9uLFxuICAgIC8vIGFscmVhZHkgaGF2ZSBiZWVuIGJ1bXBlZC5cbiAgICBjb25zdCBnYXRoZXJWZXJzaW9ucyA9IHByb2plY3QuYWRkVGFzaygnZ2F0aGVyLXZlcnNpb25zJywge1xuICAgICAgc3RlcHM6IFtuZXcgR2F0aGVyVmVyc2lvbnMocHJvamVjdCwge1xuICAgICAgICByZXBvUnVudGltZURlcGVuZGVuY2llczogb3B0aW9ucy5yZXBvUnVudGltZURlcGVuZGVuY2llcyA/PyB7fSxcbiAgICAgIH0pXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IGJ1bXBUYXNrID0gdGhpcy5vYnRhaW5CdW1wVGFzaygpO1xuICAgIGJ1bXBUYXNrLnByZXBlbmRTcGF3bihnYXRoZXJWZXJzaW9ucyk7XG4gICAgLy8gVGhlIGJ1bXBUYXNrIG5lZWRzIHRvIGJlIGV4ZWN1dGVkIHdpdGggZW52aXJvbm1lbnQgdmFyaWFibGVzIHRoYXQgY29udHJvbFxuICAgIC8vIHZlcnNpb24gaW5mb3JtYXRpb24uIFRoZXNlIGFyZSBub3QgcGFydCBvZiB0aGUgdXBzdHJlYW0gdGFzayBpdHNlbGYgeWV0LFxuICAgIC8vIHNpbmNlIHRoZXkgYXJlIHBhcnQgb2YgdGhlIGludm9jYXRpb24gdGhlcmUuIFdlIGFsc28gbmVlZCB0byBtYWtlIHRoZW0gcGFydFxuICAgIC8vIG9mIHRoZSBpbnZvY2F0aW9uIGhlcmUuXG4gICAgaWYgKHRoaXMudmVyc2lvbikge1xuICAgICAgaWYgKG9wdGlvbnMudmVyc2lvbkJyYW5jaE9wdGlvbnM/LnRhZ1ByZWZpeCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0RvIG5vdCBzZXQgdmVyc2lvbkJyYW5jaE9wdGlvbnMudGFnUHJlZml4OyBpdCBpcyBjb25maWd1cmVkIGFub3RoZXIgd2F5Jyk7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLnZlcnNpb24uZW52Rm9yQnJhbmNoKHtcbiAgICAgICAgLi4ub3B0aW9ucy52ZXJzaW9uQnJhbmNoT3B0aW9ucyxcbiAgICAgIH0pKSkge1xuICAgICAgICBidW1wVGFzay5lbnYoa2V5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuXG5cbiAgICAvLyBBZnRlciB3ZSBoYXZlIHVuYnVtcGVkIHBhY2thZ2UgdmVyc2lvbnMgYmFjayB0byBeMC4wLjAsXG4gICAgLy8gd2UgY2FuIHJ1biB0aGUgZ2F0aGVyLXZlcnNpb25zIHRhc2sgYWdhaW4gd2hpY2ggd2lsbCBub3cgcmVwbGFjZSB0aGUgdG8tYmUtcmVsZWFzZSB2ZXJzaW9ucyB3aXRoIF4wLjAuMFxuICAgIC8vXG4gICAgLy8gV2UgbmVlZCB0byBzZXQgYW4gZW52aXJvbm1lbnQgdmFyaWFibGUgdG8gZ2V0IGBnYXRoZXJWZXJzaW9uc2AgdG8gYmVoYXZlIGRpZmZlcmVudGx5IGluIHRoZSB1bmJ1bXBcbiAgICAvLyBpbnZvY2F0aW9uIChpbiB0aGUgYnVtcCBpbnZvY2F0aW9uLCBpdCBtYXkgY2hhbmdlIHRoZSBwYWNrYWdlLmpzb24gZGVwZW5kZW5jeSByYW5nZSBmcm9tIGBeMC4wLjBgIHRvIGAxLjIuM2A7XG4gICAgLy8gdXNpbmcgYSBkaWZmZXJlbnQgcmFuZ2Ugc3ltYm9sKSwgYnV0IHdoZW4gdW5idW1waW5nIGl0IG11c3QgYWx3YXlzIHJlc2V0IGJhY2sgdG8gdGhlIGBeMC4wLjBgIHZlcnNpb24uXG4gICAgdGhpcy5vYnRhaW5VbmJ1bXBUYXNrKCkuc3Bhd24oZ2F0aGVyVmVyc2lvbnMsIHtcbiAgICAgIGVudjoge1xuICAgICAgICBSRVNFVF9WRVJTSU9OUzogJ3RydWUnLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGJ1bXAgdmVyc2lvbiB0YXNrXG4gICAqXG4gICAqIElmIHRoaXMgaXMgYSBwcml2YXRlIHBhY2thZ2UsIGl0IHdvbid0IGhhdmUgYSBidW1wIHRhc2sgeWV0LlxuICAgKiBTbyBpbnN0ZWFkIHdlIGNyZWF0ZSBhbiBlbXB0eSBvbmUgdGhhdCBjYW4gYmUgY2FsbGVkIGZyb20gdGhlIG1vbm9yZXBvIHJvb3RcbiAgICogYW5kIHNlcnZlIGFzIGEgY29udGFpbmVyIGZvciBvdGhlciBzdGVwcyB0aGF0IG5lZWQgdG8gb2NjdXIgYXMgcGFydCBvZiB0aGUgcmVsZWFzZVxuICAgKi9cbiAgcHJpdmF0ZSBvYnRhaW5CdW1wVGFzaygpOiBUYXNrIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy53b3Jrc3BhY2UudGFza3MudHJ5RmluZCgnYnVtcCcpID8/XG4gICAgICB0aGlzLndvcmtzcGFjZS5hZGRUYXNrKCdidW1wJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ0J1bXBzIHZlcnNpb25zIG9mIGxvY2FsIGRlcGVuZGVuY2llcycsXG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSB1bmJ1bXAgdmVyc2lvbiB0YXNrXG4gICAqLlxuICAgKiBJZiB0aGlzIGlzIGEgcHJpdmF0ZSBwYWNrYWdlLCBpdCB3b24ndCBoYXZlIGEgYnVtcCB0YXNrIHlldFxuICAgKiBTbyBpbnN0ZWFkIHdlIGNyZWF0ZSBhbiBlbXB0eSBvbmUgdGhhdCBjYW4gYmUgY2FsbGVkIGZyb20gdGhlIG1vbm9yZXBvIHJvb3RcbiAgICogYW5kIHNlcnZlIGFzIGEgY29udGFpbmVyIGZvciBvdGhlciBzdGVwcyB0aGF0IG5lZWQgdG8gb2NjdXIgYXMgcGFydCBvZiB0aGUgcmVsZWFzZVxuICAgKi9cbiAgcHJpdmF0ZSBvYnRhaW5VbmJ1bXBUYXNrKCk6IFRhc2sge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLndvcmtzcGFjZS50YXNrcy50cnlGaW5kKCd1bmJ1bXAnKSA/P1xuICAgICAgdGhpcy53b3Jrc3BhY2UuYWRkVGFzaygndW5idW1wJywge1xuICAgICAgICBkZXNjcmlwdGlvbjogJ1Jlc2V0cyB2ZXJzaW9ucyBvZiBsb2NhbCBkZXBlbmRlbmNpZXMgdG8gMC4wLjAnLFxuICAgICAgfSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -209,7 +209,7 @@ class TypeScriptWorkspace extends projen_1.typescript.TypeScriptProject {
209
209
  }
210
210
  exports.TypeScriptWorkspace = TypeScriptWorkspace;
211
211
  _a = JSII_RTTI_SYMBOL_1;
212
- TypeScriptWorkspace[_a] = { fqn: "cdklabs-projen-project-types.yarn.TypeScriptWorkspace", version: "0.2.10" };
212
+ TypeScriptWorkspace[_a] = { fqn: "cdklabs-projen-project-types.yarn.TypeScriptWorkspace", version: "0.2.11" };
213
213
  function packageNames(xs) {
214
214
  if (!xs) {
215
215
  return undefined;
package/package.json CHANGED
@@ -74,7 +74,7 @@
74
74
  "publishConfig": {
75
75
  "access": "public"
76
76
  },
77
- "version": "0.2.10",
77
+ "version": "0.2.11",
78
78
  "jest": {
79
79
  "coverageProvider": "v8",
80
80
  "testMatch": [