cdklabs-projen-project-types 0.2.15 → 0.2.17
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 +10 -297
- package/API.md +0 -396
- package/lib/cdk.js +2 -2
- package/lib/cdklabs.js +3 -3
- package/lib/index.d.ts +0 -1
- package/lib/index.js +1 -2
- package/lib/jsii.js +1 -1
- package/lib/rosetta.js +1 -1
- package/lib/yarn/monorepo-release.js +1 -1
- package/lib/yarn/monorepo.js +2 -2
- package/lib/yarn/typescript-workspace-release.js +1 -1
- package/lib/yarn/typescript-workspace.js +4 -2
- package/package.json +7 -7
- package/lib/cdk-cli-integ-tests.d.ts +0 -102
- package/lib/cdk-cli-integ-tests.js +0 -362
package/API.md
CHANGED
|
@@ -2,194 +2,6 @@
|
|
|
2
2
|
|
|
3
3
|
## Constructs <a name="Constructs" id="Constructs"></a>
|
|
4
4
|
|
|
5
|
-
### CdkCliIntegTestsWorkflow <a name="CdkCliIntegTestsWorkflow" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflow"></a>
|
|
6
|
-
|
|
7
|
-
Add a workflow for running the tests.
|
|
8
|
-
|
|
9
|
-
This MUST be a separate workflow that runs in privileged context. We have a couple
|
|
10
|
-
of options:
|
|
11
|
-
|
|
12
|
-
- `workflow_run`: we can trigger a privileged workflow run after the unprivileged
|
|
13
|
-
`pull_request` workflow finishes and reuse its output artifacts. The
|
|
14
|
-
problem is that the second run is disconnected from the PR so we would need
|
|
15
|
-
to script in visibility for approvals and success (by posting comments, for
|
|
16
|
-
example)
|
|
17
|
-
- Use only a `pull_request_target` workflow on the PR: this either would run
|
|
18
|
-
a privileged workflow on any user code submission (might be fine given the
|
|
19
|
-
workflow's `permissions`, but I'm sure this will make our security team uneasy
|
|
20
|
-
anyway), OR this would mean any build needs human confirmation which means slow
|
|
21
|
-
feedback.
|
|
22
|
-
- Use a `pull_request` for a regular fast-feedback build, and a separate
|
|
23
|
-
`pull_request_target` for the integ tests. This means we're building twice.
|
|
24
|
-
|
|
25
|
-
Ultimately, our build isn't heavy enough to put in a lot of effort deduping
|
|
26
|
-
it, so we'll go with the simplest solution which is the last one: 2
|
|
27
|
-
independent workflows.
|
|
28
|
-
|
|
29
|
-
projen doesn't make it easy to copy the relevant parts of the 'build' workflow,
|
|
30
|
-
so they're unfortunately duplicated here.
|
|
31
|
-
|
|
32
|
-
#### Initializers <a name="Initializers" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.Initializer"></a>
|
|
33
|
-
|
|
34
|
-
```typescript
|
|
35
|
-
import { CdkCliIntegTestsWorkflow } from 'cdklabs-projen-project-types'
|
|
36
|
-
|
|
37
|
-
new CdkCliIntegTestsWorkflow(repo: NodeProject, props: CdkCliIntegTestsWorkflowProps)
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
| **Name** | **Type** | **Description** |
|
|
41
|
-
| --- | --- | --- |
|
|
42
|
-
| <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.Initializer.parameter.repo">repo</a></code> | <code>projen.javascript.NodeProject</code> | *No description.* |
|
|
43
|
-
| <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.Initializer.parameter.props">props</a></code> | <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps">CdkCliIntegTestsWorkflowProps</a></code> | *No description.* |
|
|
44
|
-
|
|
45
|
-
---
|
|
46
|
-
|
|
47
|
-
##### `repo`<sup>Required</sup> <a name="repo" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.Initializer.parameter.repo"></a>
|
|
48
|
-
|
|
49
|
-
- *Type:* projen.javascript.NodeProject
|
|
50
|
-
|
|
51
|
-
---
|
|
52
|
-
|
|
53
|
-
##### `props`<sup>Required</sup> <a name="props" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.Initializer.parameter.props"></a>
|
|
54
|
-
|
|
55
|
-
- *Type:* <a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps">CdkCliIntegTestsWorkflowProps</a>
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
#### Methods <a name="Methods" id="Methods"></a>
|
|
60
|
-
|
|
61
|
-
| **Name** | **Description** |
|
|
62
|
-
| --- | --- |
|
|
63
|
-
| <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.toString">toString</a></code> | Returns a string representation of this construct. |
|
|
64
|
-
| <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.postSynthesize">postSynthesize</a></code> | Called after synthesis. |
|
|
65
|
-
| <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.preSynthesize">preSynthesize</a></code> | Called before synthesis. |
|
|
66
|
-
| <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.synthesize">synthesize</a></code> | Synthesizes files to the project output directory. |
|
|
67
|
-
|
|
68
|
-
---
|
|
69
|
-
|
|
70
|
-
##### `toString` <a name="toString" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.toString"></a>
|
|
71
|
-
|
|
72
|
-
```typescript
|
|
73
|
-
public toString(): string
|
|
74
|
-
```
|
|
75
|
-
|
|
76
|
-
Returns a string representation of this construct.
|
|
77
|
-
|
|
78
|
-
##### `postSynthesize` <a name="postSynthesize" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.postSynthesize"></a>
|
|
79
|
-
|
|
80
|
-
```typescript
|
|
81
|
-
public postSynthesize(): void
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
Called after synthesis.
|
|
85
|
-
|
|
86
|
-
Order is *not* guaranteed.
|
|
87
|
-
|
|
88
|
-
##### `preSynthesize` <a name="preSynthesize" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.preSynthesize"></a>
|
|
89
|
-
|
|
90
|
-
```typescript
|
|
91
|
-
public preSynthesize(): void
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
Called before synthesis.
|
|
95
|
-
|
|
96
|
-
##### `synthesize` <a name="synthesize" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.synthesize"></a>
|
|
97
|
-
|
|
98
|
-
```typescript
|
|
99
|
-
public synthesize(): void
|
|
100
|
-
```
|
|
101
|
-
|
|
102
|
-
Synthesizes files to the project output directory.
|
|
103
|
-
|
|
104
|
-
#### Static Functions <a name="Static Functions" id="Static Functions"></a>
|
|
105
|
-
|
|
106
|
-
| **Name** | **Description** |
|
|
107
|
-
| --- | --- |
|
|
108
|
-
| <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
|
|
109
|
-
| <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.isComponent">isComponent</a></code> | Test whether the given construct is a component. |
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
##### `isConstruct` <a name="isConstruct" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.isConstruct"></a>
|
|
114
|
-
|
|
115
|
-
```typescript
|
|
116
|
-
import { CdkCliIntegTestsWorkflow } from 'cdklabs-projen-project-types'
|
|
117
|
-
|
|
118
|
-
CdkCliIntegTestsWorkflow.isConstruct(x: any)
|
|
119
|
-
```
|
|
120
|
-
|
|
121
|
-
Checks if `x` is a construct.
|
|
122
|
-
|
|
123
|
-
Use this method instead of `instanceof` to properly detect `Construct`
|
|
124
|
-
instances, even when the construct library is symlinked.
|
|
125
|
-
|
|
126
|
-
Explanation: in JavaScript, multiple copies of the `constructs` library on
|
|
127
|
-
disk are seen as independent, completely different libraries. As a
|
|
128
|
-
consequence, the class `Construct` in each copy of the `constructs` library
|
|
129
|
-
is seen as a different class, and an instance of one class will not test as
|
|
130
|
-
`instanceof` the other class. `npm install` will not create installations
|
|
131
|
-
like this, but users may manually symlink construct libraries together or
|
|
132
|
-
use a monorepo tool: in those cases, multiple copies of the `constructs`
|
|
133
|
-
library can be accidentally installed, and `instanceof` will behave
|
|
134
|
-
unpredictably. It is safest to avoid using `instanceof`, and using
|
|
135
|
-
this type-testing method instead.
|
|
136
|
-
|
|
137
|
-
###### `x`<sup>Required</sup> <a name="x" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.isConstruct.parameter.x"></a>
|
|
138
|
-
|
|
139
|
-
- *Type:* any
|
|
140
|
-
|
|
141
|
-
Any object.
|
|
142
|
-
|
|
143
|
-
---
|
|
144
|
-
|
|
145
|
-
##### `isComponent` <a name="isComponent" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.isComponent"></a>
|
|
146
|
-
|
|
147
|
-
```typescript
|
|
148
|
-
import { CdkCliIntegTestsWorkflow } from 'cdklabs-projen-project-types'
|
|
149
|
-
|
|
150
|
-
CdkCliIntegTestsWorkflow.isComponent(x: any)
|
|
151
|
-
```
|
|
152
|
-
|
|
153
|
-
Test whether the given construct is a component.
|
|
154
|
-
|
|
155
|
-
###### `x`<sup>Required</sup> <a name="x" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.isComponent.parameter.x"></a>
|
|
156
|
-
|
|
157
|
-
- *Type:* any
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
#### Properties <a name="Properties" id="Properties"></a>
|
|
162
|
-
|
|
163
|
-
| **Name** | **Type** | **Description** |
|
|
164
|
-
| --- | --- | --- |
|
|
165
|
-
| <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
|
|
166
|
-
| <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.property.project">project</a></code> | <code>projen.Project</code> | *No description.* |
|
|
167
|
-
|
|
168
|
-
---
|
|
169
|
-
|
|
170
|
-
##### `node`<sup>Required</sup> <a name="node" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.property.node"></a>
|
|
171
|
-
|
|
172
|
-
```typescript
|
|
173
|
-
public readonly node: Node;
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
- *Type:* constructs.Node
|
|
177
|
-
|
|
178
|
-
The tree node.
|
|
179
|
-
|
|
180
|
-
---
|
|
181
|
-
|
|
182
|
-
##### `project`<sup>Required</sup> <a name="project" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflow.property.project"></a>
|
|
183
|
-
|
|
184
|
-
```typescript
|
|
185
|
-
public readonly project: Project;
|
|
186
|
-
```
|
|
187
|
-
|
|
188
|
-
- *Type:* projen.Project
|
|
189
|
-
|
|
190
|
-
---
|
|
191
|
-
|
|
192
|
-
|
|
193
5
|
### CdkConstructLibrary <a name="CdkConstructLibrary" id="cdklabs-projen-project-types.CdkConstructLibrary"></a>
|
|
194
6
|
|
|
195
7
|
Create a Cdk Construct Library Project.
|
|
@@ -14764,214 +14576,6 @@ public readonly version: Version;
|
|
|
14764
14576
|
|
|
14765
14577
|
## Structs <a name="Structs" id="Structs"></a>
|
|
14766
14578
|
|
|
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
|
-
|
|
14828
|
-
### CdkCliIntegTestsWorkflowProps <a name="CdkCliIntegTestsWorkflowProps" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps"></a>
|
|
14829
|
-
|
|
14830
|
-
#### Initializer <a name="Initializer" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.Initializer"></a>
|
|
14831
|
-
|
|
14832
|
-
```typescript
|
|
14833
|
-
import { CdkCliIntegTestsWorkflowProps } from 'cdklabs-projen-project-types'
|
|
14834
|
-
|
|
14835
|
-
const cdkCliIntegTestsWorkflowProps: CdkCliIntegTestsWorkflowProps = { ... }
|
|
14836
|
-
```
|
|
14837
|
-
|
|
14838
|
-
#### Properties <a name="Properties" id="Properties"></a>
|
|
14839
|
-
|
|
14840
|
-
| **Name** | **Type** | **Description** |
|
|
14841
|
-
| --- | --- | --- |
|
|
14842
|
-
| <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.approvalEnvironment">approvalEnvironment</a></code> | <code>string</code> | GitHub environment name for approvals. |
|
|
14843
|
-
| <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.buildRunsOn">buildRunsOn</a></code> | <code>string</code> | Runners for the workflow. |
|
|
14844
|
-
| <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.localPackages">localPackages</a></code> | <code>string[]</code> | Packages that are locally transfered (we will never use the upstream versions). |
|
|
14845
|
-
| <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.sourceRepo">sourceRepo</a></code> | <code>string</code> | The official repo this workflow is used for. |
|
|
14846
|
-
| <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.testEnvironment">testEnvironment</a></code> | <code>string</code> | GitHub environment name for running the tests. |
|
|
14847
|
-
| <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.testRunsOn">testRunsOn</a></code> | <code>string</code> | Runners for the workflow. |
|
|
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. |
|
|
14850
|
-
| <code><a href="#cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.maxWorkers">maxWorkers</a></code> | <code>string</code> | Specifies the maximum number of workers the worker-pool will spawn for running tests. |
|
|
14851
|
-
|
|
14852
|
-
---
|
|
14853
|
-
|
|
14854
|
-
##### `approvalEnvironment`<sup>Required</sup> <a name="approvalEnvironment" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.approvalEnvironment"></a>
|
|
14855
|
-
|
|
14856
|
-
```typescript
|
|
14857
|
-
public readonly approvalEnvironment: string;
|
|
14858
|
-
```
|
|
14859
|
-
|
|
14860
|
-
- *Type:* string
|
|
14861
|
-
|
|
14862
|
-
GitHub environment name for approvals.
|
|
14863
|
-
|
|
14864
|
-
MUST be configured to require manual approval.
|
|
14865
|
-
|
|
14866
|
-
---
|
|
14867
|
-
|
|
14868
|
-
##### `buildRunsOn`<sup>Required</sup> <a name="buildRunsOn" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.buildRunsOn"></a>
|
|
14869
|
-
|
|
14870
|
-
```typescript
|
|
14871
|
-
public readonly buildRunsOn: string;
|
|
14872
|
-
```
|
|
14873
|
-
|
|
14874
|
-
- *Type:* string
|
|
14875
|
-
|
|
14876
|
-
Runners for the workflow.
|
|
14877
|
-
|
|
14878
|
-
---
|
|
14879
|
-
|
|
14880
|
-
##### `localPackages`<sup>Required</sup> <a name="localPackages" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.localPackages"></a>
|
|
14881
|
-
|
|
14882
|
-
```typescript
|
|
14883
|
-
public readonly localPackages: string[];
|
|
14884
|
-
```
|
|
14885
|
-
|
|
14886
|
-
- *Type:* string[]
|
|
14887
|
-
|
|
14888
|
-
Packages that are locally transfered (we will never use the upstream versions).
|
|
14889
|
-
|
|
14890
|
-
Takes package names; these are expected to live in `packages/<NAME>/dist/js`.
|
|
14891
|
-
|
|
14892
|
-
---
|
|
14893
|
-
|
|
14894
|
-
##### `sourceRepo`<sup>Required</sup> <a name="sourceRepo" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.sourceRepo"></a>
|
|
14895
|
-
|
|
14896
|
-
```typescript
|
|
14897
|
-
public readonly sourceRepo: string;
|
|
14898
|
-
```
|
|
14899
|
-
|
|
14900
|
-
- *Type:* string
|
|
14901
|
-
|
|
14902
|
-
The official repo this workflow is used for.
|
|
14903
|
-
|
|
14904
|
-
---
|
|
14905
|
-
|
|
14906
|
-
##### `testEnvironment`<sup>Required</sup> <a name="testEnvironment" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.testEnvironment"></a>
|
|
14907
|
-
|
|
14908
|
-
```typescript
|
|
14909
|
-
public readonly testEnvironment: string;
|
|
14910
|
-
```
|
|
14911
|
-
|
|
14912
|
-
- *Type:* string
|
|
14913
|
-
|
|
14914
|
-
GitHub environment name for running the tests.
|
|
14915
|
-
|
|
14916
|
-
MUST be configured without approvals, and with the following vars and secrets:
|
|
14917
|
-
|
|
14918
|
-
- vars: AWS_ROLE_TO_ASSUME_FOR_TESTING
|
|
14919
|
-
|
|
14920
|
-
And the role needs to be configured to allow the AssumeRole operation.
|
|
14921
|
-
|
|
14922
|
-
---
|
|
14923
|
-
|
|
14924
|
-
##### `testRunsOn`<sup>Required</sup> <a name="testRunsOn" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.testRunsOn"></a>
|
|
14925
|
-
|
|
14926
|
-
```typescript
|
|
14927
|
-
public readonly testRunsOn: string;
|
|
14928
|
-
```
|
|
14929
|
-
|
|
14930
|
-
- *Type:* string
|
|
14931
|
-
|
|
14932
|
-
Runners for the workflow.
|
|
14933
|
-
|
|
14934
|
-
---
|
|
14935
|
-
|
|
14936
|
-
##### `allowUpstreamVersions`<sup>Optional</sup> <a name="allowUpstreamVersions" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.allowUpstreamVersions"></a>
|
|
14937
|
-
|
|
14938
|
-
```typescript
|
|
14939
|
-
public readonly allowUpstreamVersions: string[];
|
|
14940
|
-
```
|
|
14941
|
-
|
|
14942
|
-
- *Type:* string[]
|
|
14943
|
-
- *Default:* No upstream versions
|
|
14944
|
-
|
|
14945
|
-
If given, allows accessing upstream versions of these packages.
|
|
14946
|
-
|
|
14947
|
-
---
|
|
14948
|
-
|
|
14949
|
-
##### `enableAtmosphere`<sup>Optional</sup> <a name="enableAtmosphere" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.enableAtmosphere"></a>
|
|
14950
|
-
|
|
14951
|
-
```typescript
|
|
14952
|
-
public readonly enableAtmosphere: AtmosphereOptions;
|
|
14953
|
-
```
|
|
14954
|
-
|
|
14955
|
-
- *Type:* <a href="#cdklabs-projen-project-types.AtmosphereOptions">AtmosphereOptions</a>
|
|
14956
|
-
- *Default:* atmosphere is not used
|
|
14957
|
-
|
|
14958
|
-
Enable atmosphere service to retrieve AWS test environments.
|
|
14959
|
-
|
|
14960
|
-
---
|
|
14961
|
-
|
|
14962
|
-
##### `maxWorkers`<sup>Optional</sup> <a name="maxWorkers" id="cdklabs-projen-project-types.CdkCliIntegTestsWorkflowProps.property.maxWorkers"></a>
|
|
14963
|
-
|
|
14964
|
-
```typescript
|
|
14965
|
-
public readonly maxWorkers: string;
|
|
14966
|
-
```
|
|
14967
|
-
|
|
14968
|
-
- *Type:* string
|
|
14969
|
-
- *Default:* the cli integ test package determines a sensible default
|
|
14970
|
-
|
|
14971
|
-
Specifies the maximum number of workers the worker-pool will spawn for running tests.
|
|
14972
|
-
|
|
14973
|
-
---
|
|
14974
|
-
|
|
14975
14579
|
### CdkCommonOptions <a name="CdkCommonOptions" id="cdklabs-projen-project-types.CdkCommonOptions"></a>
|
|
14976
14580
|
|
|
14977
14581
|
CdkCommonOptions.
|
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.
|
|
58
|
+
CdkConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdkConstructLibrary", version: "0.2.17" };
|
|
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.
|
|
74
|
+
CdkTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdkTypeScriptProject", version: "0.2.17" };
|
|
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.
|
|
123
|
+
CdklabsConstructLibrary[_a] = { fqn: "cdklabs-projen-project-types.CdklabsConstructLibrary", version: "0.2.17" };
|
|
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.
|
|
143
|
+
CdklabsTypeScriptProject[_b] = { fqn: "cdklabs-projen-project-types.CdklabsTypeScriptProject", version: "0.2.17" };
|
|
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.
|
|
166
|
+
CdklabsJsiiProject[_c] = { fqn: "cdklabs-projen-project-types.CdklabsJsiiProject", version: "0.2.17" };
|
|
167
167
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrbGFicy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jZGtsYWJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsK0JBQWdDO0FBQ2hDLHNEQUF1RDtBQUN2RCwwQ0FBNEM7QUFFNUMsSUFBWSxZQUtYO0FBTEQsV0FBWSxZQUFZO0lBQ3RCLG1EQUFNLENBQUE7SUFDTiwrQ0FBSSxDQUFBO0lBQ0osbURBQU0sQ0FBQTtJQUNOLDJDQUFFLENBQUE7QUFDSixDQUFDLEVBTFcsWUFBWSw0QkFBWixZQUFZLFFBS3ZCO0FBQUEsQ0FBQztBQUVGLCtCQUllO0FBR2YsaUNBQXdDO0FBQ3hDLHdDQUF3QztBQUN4QyxtQ0FBMkM7QUFFM0Msd0VBQXdFO0FBQ3hFLE1BQU0sa0JBQWtCLEdBQUc7SUFDekIsTUFBTSxFQUFFLHFCQUFxQjtJQUM3QixVQUFVLEVBQUUscUJBQXFCO0lBQ2pDLGFBQWEsRUFBRSx3QkFBd0I7SUFDdkMsV0FBVyxFQUFFLHdCQUF3QjtJQUNyQyxrQkFBa0IsRUFBRSxJQUFJO0NBQ3pCLENBQUM7QUFFRixNQUFNLG1CQUFtQixHQUE0QztJQUNuRSxtQkFBbUIsRUFBRSxJQUFJO0lBQ3pCLGNBQWMsRUFBRSxTQUFTO0lBQ3pCLG1CQUFtQixFQUFFLE9BQU87SUFDNUIsV0FBVyxFQUFFO1FBQ1gsY0FBYyxFQUFFLDJCQUFjLENBQUMsTUFBTTtLQUN0QztJQUNELG9CQUFvQixFQUFFLE1BQU07SUFDNUIsbUZBQW1GO0lBQ25GLHdGQUF3RjtJQUN4RixvREFBb0Q7SUFDcEQsaUJBQWlCLEVBQUUsMEJBQWlCLENBQUMsZ0JBQWdCLEVBQUU7SUFDdkQsV0FBVyxFQUFFLE1BQU07Q0FDcEIsQ0FBQztBQUVGLFNBQVMsK0JBQStCLENBQUMsY0FBc0IsRUFBRSxLQUFzQjtJQUNyRixNQUFNLGVBQWUsR0FBRyxJQUFBLGVBQVEsRUFBQyxjQUFjLENBQUMsQ0FBQztJQUVqRCxPQUFPLHdCQUF3QixDQUFDLFNBQVMsRUFB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QU0sYUFBYSxHQUFHLElBQUEsZ0JBQVMsRUFBQztZQUM5QixFQUFFO1lBQ0YsbUJBQW1CO1lBQ25CLDZCQUE2QjtZQUM3QixPQUFPO1lBQ1Asa0JBQWtCO1NBQ25CLENBQThCLENBQUM7UUFFaEMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7O0FBZEgsZ0RBZUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBiYXNlbmFtZSB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgVXBkYXRlU25hcHNob3QgfSBmcm9tICdwcm9qZW4vbGliL2phdmFzY3JpcHQnO1xuaW1wb3J0IHsgZGVlcE1lcmdlIH0gZnJvbSAncHJvamVuL2xpYi91dGlsJztcblxuZXhwb3J0IGVudW0gSnNpaUxhbmd1YWdlIHtcbiAgUFlUSE9OLFxuICBKQVZBLFxuICBET1RORVQsXG4gIEdPLFxufTtcblxuaW1wb3J0IHtcbiAgQ2RrQ29uc3RydWN0TGlicmFyeSxcbiAgQ2RrVHlwZVNjcmlwdFByb2plY3QsXG4gIENka1R5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyxcbn0gZnJvbSAnLi9jZGsnO1xuaW1wb3J0IHsgQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnMgfSBmcm9tICcuL2Nkay1jb25zdHJ1Y3QtbGlicmFyeS1vcHRpb25zJztcbmltcG9ydCB7IENka0pzaWlQcm9qZWN0T3B0aW9ucyB9IGZyb20gJy4vY2RrLWpzaWktb3B0aW9ucyc7XG5pbXBvcnQgeyBDZGtKc2lpUHJvamVjdCB9IGZyb20gJy4vanNpaSc7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgaW1wb3J0L29yZGVyXG5pbXBvcnQgeyBSZWxlYXNhYmxlQ29tbWl0cyB9IGZyb20gJ3Byb2plbic7XG5cbi8vIG92ZXJyaWRlIHRoZXNlIHByb3BlcnRpZXMgbm8gbWF0dGVyIHdoYXQgdmFsdWVzIGFyZSBnaXZlbiBjbGllbnQtc2lkZVxuY29uc3QgY2RrbGFic0ZvcmNlZFByb3BzID0ge1xuICBhdXRob3I6ICdBbWF6b24gV2ViIFNlcnZpY2VzJyxcbiAgYXV0aG9yTmFtZTogJ0FtYXpvbiBXZWIgU2VydmljZXMnLFxuICBhdXRob3JBZGRyZXNzOiAnYXdzLWNkay1kZXZAYW1hem9uLmNvbScsXG4gIGF1dGhvckVtYWlsOiAnYXdzLWNkay1kZXZAYW1hem9uLmNvbScsXG4gIGF1dGhvck9yZ2FuaXphdGlvbjogdHJ1ZSxcbn07XG5cbmNvbnN0IGNka2xhYnNEZWZhdWx0UHJvcHM6IFBhcnRpYWw8Q2RrbGFic0NvbnN0cnVjdExpYnJhcnlPcHRpb25zPiA9IHtcbiAgYXV0b0FwcHJvdmVVcGdyYWRlczogdHJ1ZSxcbiAgbWluTm9kZVZlcnNpb246ICcxOC4xMi4wJyxcbiAgd29ya2Zsb3dOb2RlVmVyc2lvbjogJ2x0cy8qJyxcbiAgamVzdE9wdGlvbnM6IHtcbiAgICB1cGRhdGVTbmFwc2hvdDogVXBkYXRlU25hcHNob3QuQUxXQVlTLFxuICB9LFxuICBkZWZhdWx0UmVsZWFzZUJyYW5jaDogJ21haW4nLFxuICAvLyBEZWZhdWx0IGlzIHRvIHJlbGVhc2Ugb25seSBmZWF0dXJlcyBhbmQgZml4ZXMuIElmIHdlIGRvbid0IGRvIHRoaXMsIGV2ZXJ5IHByb2plblxuICAvLyBwcm9qZWN0IHdpbGwgYmFzaWNhbGx5IHJlbGVhc2UgZXZlcnkgZGF5LCBiZWNhdXNlIGl0IHdpbGwgc2VlIGRldkRlcGVuZGVuY2llcyB1cGRhdGVzXG4gIC8vIGV2ZXJ5IGRheSwgZXZlbiB0aG91Z2ggdGhvc2UgYXJlIG5vdCBpbnRlcmVzdGluZy5cbiAgcmVsZWFzYWJsZUNvbW1pdHM6IFJlbGVhc2FibGVDb21taXRzLmZlYXR1cmVzQW5kRml4ZXMoKSxcbiAganNpaVZlcnNpb246ICd+NS43Jyxcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdHMobnBtUGFja2FnZU5hbWU6IHN0cmluZywgbGFuZ3M/OiBKc2lpTGFuZ3VhZ2VbXSkge1xuICBjb25zdCBwYWNrYWdlQmFzZW5hbWUgPSBiYXNlbmFtZShucG1QYWNrYWdlTmFtZSk7XG5cbiAgcmV0dXJuIGNyZWF0ZVB1Ymxpc2hpbmdEZWZhdWx0cygnY2RrbGFicycsIHBhY2thZ2VCYXNlbmFtZSwgQm9vbGVhbihwYWNrYWdlQmFzZW5hbWUgIT09IG5wbVBhY2thZ2VOYW1lKSwgbGFuZ3MpO1xufTtcblxuZnVuY3Rpb24gY3JlYXRlUHVibGlzaGluZ0RlZmF1bHRzKG5hbWVzcGFjZTogc3RyaW5nLCBwYWNrYWdlQmFzZW5hbWU6IHN0cmluZywgYWx3YXlzVXNlTmFtZXNwYWNlID0gdHJ1ZSwgbGFuZ3M/OiBKc2lpTGFuZ3VhZ2VbXSkge1xuICBjb25zdCBwaVB5UHJlZml4ID0gYWx3YXlzVXNlTmFtZXNwYWNlID8gYCR7bmFtZXNwYWNlfS5gIDogJyc7XG4gIGNvbnN0IG51Z2V0UHJlZml4ID0gYWx3YXlzVXNlTmFtZXNwYWNlID8gYCR7dXBwZXJDYXNlTmFtZShuYW1lc3BhY2UpfS5gIDogYCR7dXBwZXJDYXNlTmFtZShuYW1lc3BhY2UpfWA7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5wdWJsaXNoTGFuZ3VhZ2VXcmFwcGVyKEpzaWlMYW5ndWFnZS5QWVRIT04sIHtcbiAgICAgIHB1Ymxpc2hUb1B5cGk6IHtcbiAgICAgICAgZGlzdE5hbWU6IGAke3BpUHlQcmVmaXh9JHtwYWNrYWdlQmFzZW5hbWV9YCxcbiAgICAgICAgbW9kdWxlOiBgJHtwaVB5UHJlZml4fSR7Y2hhbmdlRGVsaW1pdGVyKHBhY2thZ2VCYXNlbmFtZSwgJ18nKX1gLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi5wdWJsaXNoTGFuZ3VhZ2VXcmFwcGVyKEpzaWlMYW5ndWFnZS5KQVZBLCB7XG4gICAgICBwdWJsaXNoVG9NYXZlbjoge1xuICAgICAgICBqYXZhUGFja2FnZTogYGlvLmdpdGh1Yi4ke25hbWVzcGFjZX0uJHtjaGFuZ2VEZWxpbWl0ZXIocGFja2FnZUJhc2VuYW1lLCAnLicpfWAsXG4gICAgICAgIG1hdmVuR3JvdXBJZDogYGlvLmdpdGh1Yi4ke25hbWVzcGFjZX1gLFxuICAgICAgICBtYXZlbkFydGlmYWN0SWQ6IHBhY2thZ2VCYXNlbmFtZSxcbiAgICAgICAgbWF2ZW5FbmRwb2ludDogJ2h0dHBzOi8vczAxLm9zcy5zb25hdHlwZS5vcmcnLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi5wdWJsaXNoTGFuZ3VhZ2VXcmFwcGVyKEpzaWlMYW5ndWFnZS5ET1RORVQsIHtcbiAgICAgIHB1Ymxpc2hUb051Z2V0OiB7XG4gICAgICAgIGRvdE5ldE5hbWVzcGFjZTogYCR7bnVnZXRQcmVmaXh9JHt1cHBlckNhc2VOYW1lKHBhY2thZ2VCYXNlbmFtZSl9YCxcbiAgICAgICAgcGFja2FnZUlkOiBgJHtudWdldFByZWZpeH0ke3VwcGVyQ2FzZU5hbWUocGFja2FnZUJhc2VuYW1lKX1gLFxuICAgICAgfSxcbiAgICB9KSxcbiAgICAuLi5wdWJsaXNoTGFuZ3VhZ2VXcmFwcGVyKEpzaWlMYW5ndWFnZS5HTywge1xuICAgICAgcHVibGlzaFRvR286IHtcbiAgICAgICAgbW9kdWxlTmFtZTogYGdpdGh1Yi5jb20vJHtuYW1lc3BhY2V9LyR7cGFja2FnZUJhc2VuYW1lfS1nb2AsXG4gICAgICB9LFxuICAgIH0pLFxuICB9O1xuXG4gIGZ1bmN0aW9uIHB1Ymxpc2hMYW5ndWFnZVdyYXBwZXIobGFuZzogSnNpaUxhbmd1YWdlLCBvYmo6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICByZXR1cm4gcHVibGlzaExhbmd1YWdlKGxhbmcpID8gb2JqIDoge307XG4gIH1cblxuICBmdW5jdGlvbiBwdWJsaXNoTGFuZ3VhZ2UobGFuZzogSnNpaUxhbmd1YWdlKTogYm9vbGVhbiB7XG4gICAgLy8gbGFuZ3Mgbm90IHNwZWNpZmllZCA9PT0gYWxsIGxhbmd1YWdlcyBwdWJsaXNoZWRcbiAgICBpZiAoIWxhbmdzKSB7IHJldHVybiB0cnVlOyB9XG4gICAgaWYgKGxhbmdzLmluY2x1ZGVzKGxhbmcpKSB7IHJldHVybiB0cnVlOyB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgZnVuY3Rpb24gdXBwZXJDYXNlTmFtZShzdHI6IHN0cmluZykge1xuICAgIGxldCB3b3JkcyA9IHN0ci5zcGxpdCgnLScpO1xuICAgIHdvcmRzID0gd29yZHMubWFwKCh3KSA9PiB3WzBdLnRvVXBwZXJDYXNlKCkgKyB3LnN1YnN0cmluZygxKSk7XG4gICAgcmV0dXJuIHdvcmRzLmpvaW4oJycpO1xuICB9XG5cbiAgZnVuY3Rpb24gY2hhbmdlRGVsaW1pdGVyKHN0cjogc3RyaW5nLCBkZWxpbTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHN0ci5zcGxpdCgnLScpLmpvaW4oZGVsaW0pO1xuICB9XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIENka2xhYnNQdWJsaXNoaW5nUHJvamVjdE9wdGlvbnMge1xuICAvKipcbiAgICogU2V0IGRlZmF1bHQgcHVibGlzaGluZyBwcm9wZXJ0aWVzLiBTZXR0aW5nIHRoaXMgcHJvcGVydHkgZ3VhcmFudGVlc1xuICAgKiB0aGF0IHlvdXIgcHJvamVjdCB3aWxsIGhhdmUgcmVhc29uYWJsZSBwdWJsaXNoaW5nIG5hbWVzLiBZb3UgY2FuIGNob29zZVxuICAgKiB0byBtb2RpZnkgdGhlbSBob3dldmVyIHlvdSB3aXNoIHdpdGggdGhlIHRyYWRpdGlvbmFsIGBwdWJsaXNoVG9QeXBpYCxcbiAgICogYHB1Ymxpc2hUb01hdmVuYCwgYHB1Ymxpc2hUb051Z2V0YCwgYW5kIGBwdWJsaXNoVG9Hb2AgcHJvcGVydGllcywgYW5kXG4gICAqIHlvdXIgY29uZmlndXJhdGlvbiB3aWxsIGJlIHJlc3BlY3RlZC5cbiAgICpcbiAgICogVGhpcyBzaG91bGQgYmUgc2V0IHRvIGZhbHNlIG9ubHkgaWYgeW91IGRvIG5vdCBwbGFuIG9uIHJlbGVhc2luZyB0aGUgcGFja2FnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgc3BlY2lmaWMgbGFuZ3VhZ2VzIHRvIHB1Ymxpc2ggdG8uIFRoaXMgY2FuIGJlIHVzZWQgd2hlbiB0aGUgbGlicmFyeVxuICAgKiBpcyBleHBlcmltZW50YWwgb25seSwgYmVjYXVzZSBzdGFibGUgbGlicmFyaWVzIG11c3QgcHVibGlzaCB0byBhbGwganNpaSBsYW5ndWFnZXMuXG4gICAqIFRoaXMgc2hvdWxkIGJlIHVzZWQgaW4gY29uanVuY3Rpb24gd2l0aCBgY2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0czogdHJ1ZWA7IG90aGVyd2lzZVxuICAgKiBpdCBpcyBhIG5vLW9wLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFsbCBqc2lpIHRhcmdldCBsYW5ndWFnZXNcbiAgICovXG4gIHJlYWRvbmx5IGpzaWlUYXJnZXRMYW5ndWFnZXM/OiBKc2lpTGFuZ3VhZ2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZGtsYWJzQ29uc3RydWN0TGlicmFyeU9wdGlvbnMgZXh0ZW5kcyBDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucywgQ2RrbGFic1B1Ymxpc2hpbmdQcm9qZWN0T3B0aW9ucyB7IH1cblxuLyoqXG4gKiBDcmVhdGUgYSBDZGtsYWJzIENvbnN0cnVjdCBMaWJyYXJ5IFByb2plY3RcbiAqXG4gKiBAcGppZCBjZGtsYWJzLWNvbnN0cnVjdC1saWJcbiAqL1xuZXhwb3J0IGNsYXNzIENka2xhYnNDb25zdHJ1Y3RMaWJyYXJ5IGV4dGVuZHMgQ2RrQ29uc3RydWN0TGlicmFyeSB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IENka2xhYnNDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucykge1xuICAgIGNvbnN0IGNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdFByb3BzOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0gKG9wdGlvbnMuY2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0cyA/PyB0cnVlKSA/XG4gICAgICBjcmVhdGVDZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRzKG9wdGlvbnMubmFtZSwgb3B0aW9ucy5qc2lpVGFyZ2V0TGFuZ3VhZ2VzKSA6IHt9O1xuXG4gICAgLy8gdGhlIGxlZnRtb3N0IG9iamVjdCBpcyBtdXRhdGVkIGFuZCByZXR1cm5lZCBieSBkZWVwTWVyZ2VcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gZGVlcE1lcmdlKFtcbiAgICAgIHt9LFxuICAgICAgY2RrbGFic0RlZmF1bHRQcm9wcyxcbiAgICAgIGNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdFByb3BzLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNka2xhYnNGb3JjZWRQcm9wcyxcbiAgICBdKSBhcyBDZGtDb25zdHJ1Y3RMaWJyYXJ5T3B0aW9ucztcblxuICAgIHN1cGVyKG1lcmdlZE9wdGlvbnMpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrbGFic1R5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyBleHRlbmRzIENka1R5cGVTY3JpcHRQcm9qZWN0T3B0aW9ucyB7IH1cblxuLyoqXG4gKiBDcmVhdGUgYSBDZGtsYWJzIFR5cGVTY3JpcHQgUHJvamVjdFxuICpcbiAqIEBwamlkIGNka2xhYnMtdHMtcHJvalxuICovXG5leHBvcnQgY2xhc3MgQ2RrbGFic1R5cGVTY3JpcHRQcm9qZWN0IGV4dGVuZHMgQ2RrVHlwZVNjcmlwdFByb2plY3Qge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtsYWJzVHlwZVNjcmlwdFByb2plY3RPcHRpb25zKSB7XG4gICAgLy8gdGhlIGxlZnRtb3N0IG9iamVjdCBpcyBtdXRhdGVkIGFuZCByZXR1cm5lZCBieSBkZWVwTWVyZ2VcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gZGVlcE1lcmdlKFtcbiAgICAgIHt9LFxuICAgICAgY2RrbGFic0RlZmF1bHRQcm9wcyxcbiAgICAgIG9wdGlvbnMsXG4gICAgICBjZGtsYWJzRm9yY2VkUHJvcHMsXG4gICAgXSkgYXMgQ2RrQ29uc3RydWN0TGlicmFyeU9wdGlvbnM7XG5cbiAgICBzdXBlcihtZXJnZWRPcHRpb25zKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENka2xhYnNKc2lpUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBDZGtKc2lpUHJvamVjdE9wdGlvbnMsIENka2xhYnNQdWJsaXNoaW5nUHJvamVjdE9wdGlvbnMgeyB9XG5cbi8qKlxuICogQ3JlYXRlIGEgQ2RrbGFicyBKc2lpIFByb2plY3RcbiAqXG4gKiBAcGppZCBjZGtsYWJzLWpzaWktcHJvalxuICovXG5leHBvcnQgY2xhc3MgQ2RrbGFic0pzaWlQcm9qZWN0IGV4dGVuZHMgQ2RrSnNpaVByb2plY3Qge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtsYWJzSnNpaVByb2plY3RPcHRpb25zKSB7XG4gICAgY29uc3QgY2RrbGFic1B1Ymxpc2hpbmdEZWZhdWx0UHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT4gPSAob3B0aW9ucy5jZGtsYWJzUHVibGlzaGluZ0RlZmF1bHRzID8/IHRydWUpID9cbiAgICAgIGNyZWF0ZUNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdHMob3B0aW9ucy5uYW1lLCBvcHRpb25zLmpzaWlUYXJnZXRMYW5ndWFnZXMpIDoge307XG4gICAgLy8gdGhlIGxlZnRtb3N0IG9iamVjdCBpcyBtdXRhdGVkIGFuZCByZXR1cm5lZCBieSBkZWVwTWVyZ2VcbiAgICBjb25zdCBtZXJnZWRPcHRpb25zID0gZGVlcE1lcmdlKFtcbiAgICAgIHt9LFxuICAgICAgY2RrbGFic0RlZmF1bHRQcm9wcyxcbiAgICAgIGNka2xhYnNQdWJsaXNoaW5nRGVmYXVsdFByb3BzLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIGNka2xhYnNGb3JjZWRQcm9wcyxcbiAgICBdKSBhcyBDZGtsYWJzSnNpaVByb2plY3RPcHRpb25zO1xuXG4gICAgc3VwZXIobWVyZ2VkT3B0aW9ucyk7XG4gIH1cbn1cbiJdfQ==
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -23,6 +23,5 @@ __exportStar(require("./common-options"), exports);
|
|
|
23
23
|
__exportStar(require("./jsii"), exports);
|
|
24
24
|
__exportStar(require("./cdklabs"), exports);
|
|
25
25
|
__exportStar(require("./rosetta"), exports);
|
|
26
|
-
__exportStar(require("./cdk-cli-integ-tests"), exports);
|
|
27
26
|
exports.yarn = require("./yarn");
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3Q0FBc0I7QUFDdEIsdURBQXFDO0FBQ3JDLGtFQUFnRDtBQUNoRCxxREFBbUM7QUFDbkMsbURBQWlDO0FBQ2pDLHlDQUF1QjtBQUN2Qiw0Q0FBMEI7QUFDMUIsNENBQTBCO0FBRTFCLGlDQUErQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vY2RrJztcbmV4cG9ydCAqIGZyb20gJy4vY2RrLWNvbW1vbi1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vY2RrLWNvbnN0cnVjdC1saWJyYXJ5LW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9jZGstanNpaS1vcHRpb25zJztcbmV4cG9ydCAqIGZyb20gJy4vY29tbW9uLW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9qc2lpJztcbmV4cG9ydCAqIGZyb20gJy4vY2RrbGFicyc7XG5leHBvcnQgKiBmcm9tICcuL3Jvc2V0dGEnO1xuXG5leHBvcnQgKiBhcyB5YXJuIGZyb20gJy4veWFybic7XG4iXX0=
|
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.
|
|
31
|
+
CdkJsiiProject[_a] = { fqn: "cdklabs-projen-project-types.CdkJsiiProject", version: "0.2.17" };
|
|
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.
|
|
51
|
+
Rosetta[_a] = { fqn: "cdklabs-projen-project-types.Rosetta", version: "0.2.17" };
|
|
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.
|
|
274
|
+
MonorepoRelease[_a] = { fqn: "cdklabs-projen-project-types.yarn.MonorepoRelease", version: "0.2.17" };
|
|
275
275
|
function slugify(x) {
|
|
276
276
|
return x.replace(/[^a-zA-Z0-9_-]/g, '-').replace(/^[0-9-]+/, '');
|
|
277
277
|
}
|
package/lib/yarn/monorepo.js
CHANGED
|
@@ -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.
|
|
225
|
+
Monorepo[_a] = { fqn: "cdklabs-projen-project-types.yarn.Monorepo", version: "0.2.17" };
|
|
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.
|
|
260
|
+
CdkLabsMonorepo[_b] = { fqn: "cdklabs-projen-project-types.yarn.CdkLabsMonorepo", version: "0.2.17" };
|
|
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
|