cdk-import 0.0.33 → 0.1.0
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/.gitattributes +1 -1
- package/README.md +114 -514
- package/lib/cfn-resource-generator.js +7 -6
- package/lib/cli.js +46 -10
- package/lib/index.d.ts +2 -1
- package/lib/index.js +4 -3
- package/lib/languages.d.ts +16 -0
- package/lib/languages.js +67 -0
- package/lib/util.d.ts +0 -7
- package/lib/util.js +2 -12
- package/package.json +8 -7
package/.gitattributes
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
/.github/workflows/build.yml linguist-generated
|
|
9
9
|
/.github/workflows/release.yml linguist-generated
|
|
10
10
|
/.github/workflows/stale.yml linguist-generated
|
|
11
|
-
/.github/workflows/upgrade.yml
|
|
11
|
+
/.github/workflows/upgrade-main.yml linguist-generated
|
|
12
12
|
/.gitignore linguist-generated
|
|
13
13
|
/.mergify.yml linguist-generated
|
|
14
14
|
/.npmignore linguist-generated
|
package/README.md
CHANGED
|
@@ -1,545 +1,144 @@
|
|
|
1
1
|
# cdk-import
|
|
2
2
|
|
|
3
|
-
> Generates CDK L1 constructs for public CloudFormation Registry types and
|
|
4
|
-
|
|
5
|
-
NOTE: This is part of the implementation of [RFC](https://github.com/aws/aws-cdk-rfcs/pull/356)
|
|
3
|
+
> Generates CDK L1 constructs for public CloudFormation Registry types and
|
|
4
|
+
> modules.
|
|
6
5
|
|
|
7
6
|
## Installation
|
|
8
7
|
|
|
9
8
|
```shell
|
|
10
|
-
|
|
9
|
+
npm install -g cdk-import
|
|
11
10
|
```
|
|
12
11
|
|
|
13
12
|
## Usage
|
|
14
13
|
|
|
15
14
|
```shell
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
Usage:
|
|
16
|
+
cdk-import -l LANGUAGE RESOURCE-NAME[@VERSION]
|
|
18
17
|
|
|
19
18
|
Options:
|
|
20
|
-
-
|
|
21
|
-
-
|
|
19
|
+
-l, --language Output programming language [string]
|
|
20
|
+
-o, --outdir Output directory [string] [default: "."]
|
|
21
|
+
--go-module Module name (required if language is "golang") [string]
|
|
22
|
+
--java-package Java package name (required if language is "java") [string]
|
|
23
|
+
-h, --help Show this usage info [boolean]
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The `--language` option specifies the output programming language. Supported
|
|
27
|
+
languages: `typescript`, `java`, `python`, `csharp` and `golang`.
|
|
28
|
+
|
|
29
|
+
Output will be generated relative to `--outdir` which defaults to the current
|
|
30
|
+
working directory.
|
|
31
|
+
|
|
32
|
+
The following section describes language-specific behavior.
|
|
33
|
+
|
|
34
|
+
### Java
|
|
35
|
+
|
|
36
|
+
The `--java-package` option is required and should include the Java package name
|
|
37
|
+
to use for generated classes. Normally, this will be a sub-package of your
|
|
38
|
+
project's package.
|
|
22
39
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
40
|
+
Java source files are generates in Maven-compatible structure under
|
|
41
|
+
`$outdir/src/main/java/PACKAGE/` where `PACKAGE` is based on `--java-package`.
|
|
42
|
+
|
|
43
|
+
For example:
|
|
44
|
+
|
|
45
|
+
```shell
|
|
46
|
+
cdk-import -l java --java-package com.foo.bar.resources AWSQS::EKS::Cluster
|
|
26
47
|
```
|
|
27
48
|
|
|
28
|
-
|
|
29
|
-
|
|
49
|
+
Will generate class source files under `src/main/java/com/foo/bar/resources`.
|
|
50
|
+
All the classes will be under the package `com.foo.bar.resources`.
|
|
51
|
+
|
|
52
|
+
### Python
|
|
53
|
+
|
|
54
|
+
A Python submodule is generated under `$outdir/MODULE_NAME/` where `MODULE_NAME`
|
|
55
|
+
is based on the name of the resource (`AWSQS::EKS::Cluster` =>
|
|
56
|
+
`awsqs_eks_cluster`).
|
|
30
57
|
|
|
31
58
|
For example:
|
|
32
59
|
|
|
33
60
|
```shell
|
|
34
|
-
|
|
61
|
+
cdk-import -l python AWSQS::EKS::Cluster
|
|
35
62
|
```
|
|
36
63
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* A unique name for your cluster.
|
|
51
|
-
*
|
|
52
|
-
* @schema CfnClusterProps#Name
|
|
53
|
-
*/
|
|
54
|
-
readonly name?: string;
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role. This provides permissions for Amazon EKS to call other AWS APIs.
|
|
58
|
-
*
|
|
59
|
-
* @schema CfnClusterProps#RoleArn
|
|
60
|
-
*/
|
|
61
|
-
readonly roleArn: string;
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Name of the AWS Identity and Access Management (IAM) role used for clusters that have the public endpoint disabled. this provides permissions for Lambda to be invoked and attach to the cluster VPC
|
|
65
|
-
*
|
|
66
|
-
* @schema CfnClusterProps#LambdaRoleName
|
|
67
|
-
*/
|
|
68
|
-
readonly lambdaRoleName?: string;
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Desired Kubernetes version for your cluster. If you don't specify this value, the cluster uses the latest version from Amazon EKS.
|
|
72
|
-
*
|
|
73
|
-
* @schema CfnClusterProps#Version
|
|
74
|
-
*/
|
|
75
|
-
readonly version?: string;
|
|
76
|
-
|
|
77
|
-
/**
|
|
78
|
-
* Network configuration for Amazon EKS cluster.
|
|
79
|
-
*
|
|
80
|
-
*
|
|
81
|
-
*
|
|
82
|
-
* @schema CfnClusterProps#KubernetesNetworkConfig
|
|
83
|
-
*/
|
|
84
|
-
readonly kubernetesNetworkConfig?: CfnClusterPropsKubernetesNetworkConfig;
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* An object that represents the virtual private cloud (VPC) configuration to use for an Amazon EKS cluster.
|
|
88
|
-
*
|
|
89
|
-
* @schema CfnClusterProps#ResourcesVpcConfig
|
|
90
|
-
*/
|
|
91
|
-
readonly resourcesVpcConfig: CfnClusterPropsResourcesVpcConfig;
|
|
92
|
-
|
|
93
|
-
/**
|
|
94
|
-
* Enables exporting of logs from the Kubernetes control plane to Amazon CloudWatch Logs. By default, logs from the cluster control plane are not exported to CloudWatch Logs. The valid log types are api, audit, authenticator, controllerManager, and scheduler.
|
|
95
|
-
*
|
|
96
|
-
* @schema CfnClusterProps#EnabledClusterLoggingTypes
|
|
97
|
-
*/
|
|
98
|
-
readonly enabledClusterLoggingTypes?: string[];
|
|
99
|
-
|
|
100
|
-
/**
|
|
101
|
-
* Encryption configuration for the cluster.
|
|
102
|
-
*
|
|
103
|
-
* @schema CfnClusterProps#EncryptionConfig
|
|
104
|
-
*/
|
|
105
|
-
readonly encryptionConfig?: EncryptionConfigEntry[];
|
|
106
|
-
|
|
107
|
-
/**
|
|
108
|
-
* @schema CfnClusterProps#KubernetesApiAccess
|
|
109
|
-
*/
|
|
110
|
-
readonly kubernetesApiAccess?: CfnClusterPropsKubernetesApiAccess;
|
|
111
|
-
|
|
112
|
-
/**
|
|
113
|
-
* @schema CfnClusterProps#Tags
|
|
114
|
-
*/
|
|
115
|
-
readonly tags?: CfnClusterPropsTags[];
|
|
116
|
-
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
/**
|
|
120
|
-
* Converts an object of type 'CfnClusterProps' to JSON representation.
|
|
121
|
-
*/
|
|
122
|
-
/* eslint-disable max-len, quote-props */
|
|
123
|
-
export function toJson_CfnClusterProps(obj: CfnClusterProps | undefined): Record<string, any> | undefined {
|
|
124
|
-
if (obj === undefined) { return undefined; }
|
|
125
|
-
const result = {
|
|
126
|
-
'Name': obj.name,
|
|
127
|
-
'RoleArn': obj.roleArn,
|
|
128
|
-
'LambdaRoleName': obj.lambdaRoleName,
|
|
129
|
-
'Version': obj.version,
|
|
130
|
-
'KubernetesNetworkConfig': toJson_CfnClusterPropsKubernetesNetworkConfig(obj.kubernetesNetworkConfig),
|
|
131
|
-
'ResourcesVpcConfig': toJson_CfnClusterPropsResourcesVpcConfig(obj.resourcesVpcConfig),
|
|
132
|
-
'EnabledClusterLoggingTypes': obj.enabledClusterLoggingTypes?.map(y => y),
|
|
133
|
-
'EncryptionConfig': obj.encryptionConfig?.map(y => toJson_EncryptionConfigEntry(y)),
|
|
134
|
-
'KubernetesApiAccess': toJson_CfnClusterPropsKubernetesApiAccess(obj.kubernetesApiAccess),
|
|
135
|
-
'Tags': obj.tags?.map(y => toJson_CfnClusterPropsTags(y)),
|
|
136
|
-
};
|
|
137
|
-
// filter undefined values
|
|
138
|
-
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
139
|
-
}
|
|
140
|
-
/* eslint-enable max-len, quote-props */
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Network configuration for Amazon EKS cluster.
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
*
|
|
147
|
-
* @schema CfnClusterPropsKubernetesNetworkConfig
|
|
148
|
-
*/
|
|
149
|
-
export interface CfnClusterPropsKubernetesNetworkConfig {
|
|
150
|
-
/**
|
|
151
|
-
* Specify the range from which cluster services will receive IPv4 addresses.
|
|
152
|
-
*
|
|
153
|
-
* @schema CfnClusterPropsKubernetesNetworkConfig#ServiceIpv4Cidr
|
|
154
|
-
*/
|
|
155
|
-
readonly serviceIpv4Cidr?: string;
|
|
156
|
-
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Converts an object of type 'CfnClusterPropsKubernetesNetworkConfig' to JSON representation.
|
|
161
|
-
*/
|
|
162
|
-
/* eslint-disable max-len, quote-props */
|
|
163
|
-
export function toJson_CfnClusterPropsKubernetesNetworkConfig(obj: CfnClusterPropsKubernetesNetworkConfig | undefined): Record<string, any> | undefined {
|
|
164
|
-
if (obj === undefined) { return undefined; }
|
|
165
|
-
const result = {
|
|
166
|
-
'ServiceIpv4Cidr': obj.serviceIpv4Cidr,
|
|
167
|
-
};
|
|
168
|
-
// filter undefined values
|
|
169
|
-
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
170
|
-
}
|
|
171
|
-
/* eslint-enable max-len, quote-props */
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* An object that represents the virtual private cloud (VPC) configuration to use for an Amazon EKS cluster.
|
|
175
|
-
*
|
|
176
|
-
* @schema CfnClusterPropsResourcesVpcConfig
|
|
177
|
-
*/
|
|
178
|
-
export interface CfnClusterPropsResourcesVpcConfig {
|
|
179
|
-
/**
|
|
180
|
-
* Specify one or more security groups for the cross-account elastic network interfaces that Amazon EKS creates to use to allow communication between your worker nodes and the Kubernetes control plane. If you don't specify a security group, the default security group for your VPC is used.
|
|
181
|
-
*
|
|
182
|
-
* @schema CfnClusterPropsResourcesVpcConfig#SecurityGroupIds
|
|
183
|
-
*/
|
|
184
|
-
readonly securityGroupIds?: string[];
|
|
185
|
-
|
|
186
|
-
/**
|
|
187
|
-
* Specify subnets for your Amazon EKS worker nodes. Amazon EKS creates cross-account elastic network interfaces in these subnets to allow communication between your worker nodes and the Kubernetes control plane.
|
|
188
|
-
*
|
|
189
|
-
* @schema CfnClusterPropsResourcesVpcConfig#SubnetIds
|
|
190
|
-
*/
|
|
191
|
-
readonly subnetIds: string[];
|
|
192
|
-
|
|
193
|
-
/**
|
|
194
|
-
* Set this value to false to disable public access to your cluster's Kubernetes API server endpoint. If you disable public access, your cluster's Kubernetes API server can only receive requests from within the cluster VPC. The default value for this parameter is true , which enables public access for your Kubernetes API server.
|
|
195
|
-
*
|
|
196
|
-
* @schema CfnClusterPropsResourcesVpcConfig#EndpointPublicAccess
|
|
197
|
-
*/
|
|
198
|
-
readonly endpointPublicAccess?: boolean;
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* Set this value to true to enable private access for your cluster's Kubernetes API server endpoint. If you enable private access, Kubernetes API requests from within your cluster's VPC use the private VPC endpoint. The default value for this parameter is false , which disables private access for your Kubernetes API server. If you disable private access and you have worker nodes or AWS Fargate pods in the cluster, then ensure that publicAccessCidrs includes the necessary CIDR blocks for communication with the worker nodes or Fargate pods.
|
|
202
|
-
*
|
|
203
|
-
* @schema CfnClusterPropsResourcesVpcConfig#EndpointPrivateAccess
|
|
204
|
-
*/
|
|
205
|
-
readonly endpointPrivateAccess?: boolean;
|
|
206
|
-
|
|
207
|
-
/**
|
|
208
|
-
* The CIDR blocks that are allowed access to your cluster's public Kubernetes API server endpoint. Communication to the endpoint from addresses outside of the CIDR blocks that you specify is denied. The default value is 0.0.0.0/0 . If you've disabled private endpoint access and you have worker nodes or AWS Fargate pods in the cluster, then ensure that you specify the necessary CIDR blocks.
|
|
209
|
-
*
|
|
210
|
-
* @schema CfnClusterPropsResourcesVpcConfig#PublicAccessCidrs
|
|
211
|
-
*/
|
|
212
|
-
readonly publicAccessCidrs?: string[];
|
|
213
|
-
|
|
214
|
-
}
|
|
215
|
-
|
|
216
|
-
/**
|
|
217
|
-
* Converts an object of type 'CfnClusterPropsResourcesVpcConfig' to JSON representation.
|
|
218
|
-
*/
|
|
219
|
-
/* eslint-disable max-len, quote-props */
|
|
220
|
-
export function toJson_CfnClusterPropsResourcesVpcConfig(obj: CfnClusterPropsResourcesVpcConfig | undefined): Record<string, any> | undefined {
|
|
221
|
-
if (obj === undefined) { return undefined; }
|
|
222
|
-
const result = {
|
|
223
|
-
'SecurityGroupIds': obj.securityGroupIds?.map(y => y),
|
|
224
|
-
'SubnetIds': obj.subnetIds?.map(y => y),
|
|
225
|
-
'EndpointPublicAccess': obj.endpointPublicAccess,
|
|
226
|
-
'EndpointPrivateAccess': obj.endpointPrivateAccess,
|
|
227
|
-
'PublicAccessCidrs': obj.publicAccessCidrs?.map(y => y),
|
|
228
|
-
};
|
|
229
|
-
// filter undefined values
|
|
230
|
-
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
231
|
-
}
|
|
232
|
-
/* eslint-enable max-len, quote-props */
|
|
233
|
-
|
|
234
|
-
/**
|
|
235
|
-
* The encryption configuration for the cluster.
|
|
236
|
-
*
|
|
237
|
-
* @schema EncryptionConfigEntry
|
|
238
|
-
*/
|
|
239
|
-
export interface EncryptionConfigEntry {
|
|
240
|
-
/**
|
|
241
|
-
* Specifies the resources to be encrypted. The only supported value is \\"secrets\\".
|
|
242
|
-
*
|
|
243
|
-
* @schema EncryptionConfigEntry#Resources
|
|
244
|
-
*/
|
|
245
|
-
readonly resources?: string[];
|
|
246
|
-
|
|
247
|
-
/**
|
|
248
|
-
* @schema EncryptionConfigEntry#Provider
|
|
249
|
-
*/
|
|
250
|
-
readonly provider?: Provider;
|
|
251
|
-
|
|
252
|
-
}
|
|
253
|
-
|
|
254
|
-
/**
|
|
255
|
-
* Converts an object of type 'EncryptionConfigEntry' to JSON representation.
|
|
256
|
-
*/
|
|
257
|
-
/* eslint-disable max-len, quote-props */
|
|
258
|
-
export function toJson_EncryptionConfigEntry(obj: EncryptionConfigEntry | undefined): Record<string, any> | undefined {
|
|
259
|
-
if (obj === undefined) { return undefined; }
|
|
260
|
-
const result = {
|
|
261
|
-
'Resources': obj.resources?.map(y => y),
|
|
262
|
-
'Provider': toJson_Provider(obj.provider),
|
|
263
|
-
};
|
|
264
|
-
// filter undefined values
|
|
265
|
-
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
266
|
-
}
|
|
267
|
-
/* eslint-enable max-len, quote-props */
|
|
268
|
-
|
|
269
|
-
/**
|
|
270
|
-
* @schema CfnClusterPropsKubernetesApiAccess
|
|
271
|
-
*/
|
|
272
|
-
export interface CfnClusterPropsKubernetesApiAccess {
|
|
273
|
-
/**
|
|
274
|
-
* @schema CfnClusterPropsKubernetesApiAccess#Roles
|
|
275
|
-
*/
|
|
276
|
-
readonly roles?: KubernetesApiAccessEntry[];
|
|
277
|
-
|
|
278
|
-
/**
|
|
279
|
-
* @schema CfnClusterPropsKubernetesApiAccess#Users
|
|
280
|
-
*/
|
|
281
|
-
readonly users?: KubernetesApiAccessEntry[];
|
|
282
|
-
|
|
283
|
-
}
|
|
284
|
-
|
|
285
|
-
/**
|
|
286
|
-
* Converts an object of type 'CfnClusterPropsKubernetesApiAccess' to JSON representation.
|
|
287
|
-
*/
|
|
288
|
-
/* eslint-disable max-len, quote-props */
|
|
289
|
-
export function toJson_CfnClusterPropsKubernetesApiAccess(obj: CfnClusterPropsKubernetesApiAccess | undefined): Record<string, any> | undefined {
|
|
290
|
-
if (obj === undefined) { return undefined; }
|
|
291
|
-
const result = {
|
|
292
|
-
'Roles': obj.roles?.map(y => toJson_KubernetesApiAccessEntry(y)),
|
|
293
|
-
'Users': obj.users?.map(y => toJson_KubernetesApiAccessEntry(y)),
|
|
294
|
-
};
|
|
295
|
-
// filter undefined values
|
|
296
|
-
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
297
|
-
}
|
|
298
|
-
/* eslint-enable max-len, quote-props */
|
|
299
|
-
|
|
300
|
-
/**
|
|
301
|
-
* @schema CfnClusterPropsTags
|
|
302
|
-
*/
|
|
303
|
-
export interface CfnClusterPropsTags {
|
|
304
|
-
/**
|
|
305
|
-
* @schema CfnClusterPropsTags#Value
|
|
306
|
-
*/
|
|
307
|
-
readonly value: string;
|
|
308
|
-
|
|
309
|
-
/**
|
|
310
|
-
* @schema CfnClusterPropsTags#Key
|
|
311
|
-
*/
|
|
312
|
-
readonly key: string;
|
|
313
|
-
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
/**
|
|
317
|
-
* Converts an object of type 'CfnClusterPropsTags' to JSON representation.
|
|
318
|
-
*/
|
|
319
|
-
/* eslint-disable max-len, quote-props */
|
|
320
|
-
export function toJson_CfnClusterPropsTags(obj: CfnClusterPropsTags | undefined): Record<string, any> | undefined {
|
|
321
|
-
if (obj === undefined) { return undefined; }
|
|
322
|
-
const result = {
|
|
323
|
-
'Value': obj.value,
|
|
324
|
-
'Key': obj.key,
|
|
325
|
-
};
|
|
326
|
-
// filter undefined values
|
|
327
|
-
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
328
|
-
}
|
|
329
|
-
/* eslint-enable max-len, quote-props */
|
|
330
|
-
|
|
331
|
-
/**
|
|
332
|
-
* AWS Key Management Service (AWS KMS) customer master key (CMK). Either the ARN or the alias can be used.
|
|
333
|
-
*
|
|
334
|
-
* @schema Provider
|
|
335
|
-
*/
|
|
336
|
-
export interface Provider {
|
|
337
|
-
/**
|
|
338
|
-
* Amazon Resource Name (ARN) or alias of the customer master key (CMK). The CMK must be symmetric, created in the same region as the cluster, and if the CMK was created in a different account, the user must have access to the CMK.
|
|
339
|
-
*
|
|
340
|
-
* @schema Provider#KeyArn
|
|
341
|
-
*/
|
|
342
|
-
readonly keyArn?: string;
|
|
343
|
-
|
|
344
|
-
}
|
|
345
|
-
|
|
346
|
-
/**
|
|
347
|
-
* Converts an object of type 'Provider' to JSON representation.
|
|
348
|
-
*/
|
|
349
|
-
/* eslint-disable max-len, quote-props */
|
|
350
|
-
export function toJson_Provider(obj: Provider | undefined): Record<string, any> | undefined {
|
|
351
|
-
if (obj === undefined) { return undefined; }
|
|
352
|
-
const result = {
|
|
353
|
-
'KeyArn': obj.keyArn,
|
|
354
|
-
};
|
|
355
|
-
// filter undefined values
|
|
356
|
-
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
357
|
-
}
|
|
358
|
-
/* eslint-enable max-len, quote-props */
|
|
359
|
-
|
|
360
|
-
/**
|
|
361
|
-
* @schema KubernetesApiAccessEntry
|
|
362
|
-
*/
|
|
363
|
-
export interface KubernetesApiAccessEntry {
|
|
364
|
-
/**
|
|
365
|
-
* @schema KubernetesApiAccessEntry#Arn
|
|
366
|
-
*/
|
|
367
|
-
readonly arn?: string;
|
|
368
|
-
|
|
369
|
-
/**
|
|
370
|
-
* @schema KubernetesApiAccessEntry#Username
|
|
371
|
-
*/
|
|
372
|
-
readonly username?: string;
|
|
373
|
-
|
|
374
|
-
/**
|
|
375
|
-
* @schema KubernetesApiAccessEntry#Groups
|
|
376
|
-
*/
|
|
377
|
-
readonly groups?: string[];
|
|
378
|
-
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
/**
|
|
382
|
-
* Converts an object of type 'KubernetesApiAccessEntry' to JSON representation.
|
|
383
|
-
*/
|
|
384
|
-
/* eslint-disable max-len, quote-props */
|
|
385
|
-
export function toJson_KubernetesApiAccessEntry(obj: KubernetesApiAccessEntry | undefined): Record<string, any> | undefined {
|
|
386
|
-
if (obj === undefined) { return undefined; }
|
|
387
|
-
const result = {
|
|
388
|
-
'Arn': obj.arn,
|
|
389
|
-
'Username': obj.username,
|
|
390
|
-
'Groups': obj.groups?.map(y => y),
|
|
391
|
-
};
|
|
392
|
-
// filter undefined values
|
|
393
|
-
return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
|
|
394
|
-
}
|
|
395
|
-
/* eslint-enable max-len, quote-props */
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
/**
|
|
399
|
-
* A CloudFormation \`AWSQS::EKS::Cluster\`
|
|
400
|
-
*
|
|
401
|
-
* @cloudformationResource AWSQS::EKS::Cluster
|
|
402
|
-
* @stability external
|
|
403
|
-
* @link https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
|
|
404
|
-
*/
|
|
405
|
-
export class CfnCluster extends cdk.CfnResource {
|
|
406
|
-
/**
|
|
407
|
-
* The CloudFormation resource type name for this resource class.
|
|
408
|
-
*/
|
|
409
|
-
public static readonly CFN_RESOURCE_TYPE_NAME = \\"AWSQS::EKS::Cluster\\";
|
|
410
|
-
|
|
411
|
-
/**
|
|
412
|
-
* \`AWSQS::EKS::Cluster.Name\`
|
|
413
|
-
* A unique name for your cluster.
|
|
414
|
-
* @link https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
|
|
415
|
-
*/
|
|
416
|
-
public readonly name: string | undefined;
|
|
417
|
-
/**
|
|
418
|
-
* \`AWSQS::EKS::Cluster.RoleArn\`
|
|
419
|
-
* Amazon Resource Name (ARN) of the AWS Identity and Access Management (IAM) role. This provides permissions for Amazon EKS to call other AWS APIs.
|
|
420
|
-
* @link https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
|
|
421
|
-
*/
|
|
422
|
-
public readonly roleArn: string;
|
|
423
|
-
/**
|
|
424
|
-
* \`AWSQS::EKS::Cluster.LambdaRoleName\`
|
|
425
|
-
* Name of the AWS Identity and Access Management (IAM) role used for clusters that have the public endpoint disabled. this provides permissions for Lambda to be invoked and attach to the cluster VPC
|
|
426
|
-
* @link https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
|
|
427
|
-
*/
|
|
428
|
-
public readonly lambdaRoleName: string | undefined;
|
|
429
|
-
/**
|
|
430
|
-
* \`AWSQS::EKS::Cluster.Version\`
|
|
431
|
-
* Desired Kubernetes version for your cluster. If you don't specify this value, the cluster uses the latest version from Amazon EKS.
|
|
432
|
-
* @link https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
|
|
433
|
-
*/
|
|
434
|
-
public readonly version: string | undefined;
|
|
435
|
-
/**
|
|
436
|
-
* \`AWSQS::EKS::Cluster.KubernetesNetworkConfig\`
|
|
437
|
-
* Network configuration for Amazon EKS cluster.
|
|
438
|
-
* @link https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
|
|
439
|
-
*/
|
|
440
|
-
public readonly kubernetesNetworkConfig: any | undefined;
|
|
441
|
-
/**
|
|
442
|
-
* \`AWSQS::EKS::Cluster.ResourcesVpcConfig\`
|
|
443
|
-
* An object that represents the virtual private cloud (VPC) configuration to use for an Amazon EKS cluster.
|
|
444
|
-
* @link https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
|
|
445
|
-
*/
|
|
446
|
-
public readonly resourcesVpcConfig: any;
|
|
447
|
-
/**
|
|
448
|
-
* \`AWSQS::EKS::Cluster.EnabledClusterLoggingTypes\`
|
|
449
|
-
* Enables exporting of logs from the Kubernetes control plane to Amazon CloudWatch Logs. By default, logs from the cluster control plane are not exported to CloudWatch Logs. The valid log types are api, audit, authenticator, controllerManager, and scheduler.
|
|
450
|
-
* @link https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
|
|
451
|
-
*/
|
|
452
|
-
public readonly enabledClusterLoggingTypes: string[] | undefined;
|
|
453
|
-
/**
|
|
454
|
-
* \`AWSQS::EKS::Cluster.EncryptionConfig\`
|
|
455
|
-
* Encryption configuration for the cluster.
|
|
456
|
-
* @link https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
|
|
457
|
-
*/
|
|
458
|
-
public readonly encryptionConfig: EncryptionConfigEntry[] | undefined;
|
|
459
|
-
/**
|
|
460
|
-
* \`AWSQS::EKS::Cluster.KubernetesApiAccess\`
|
|
461
|
-
* @link https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
|
|
462
|
-
*/
|
|
463
|
-
public readonly kubernetesApiAccess: any | undefined;
|
|
464
|
-
/**
|
|
465
|
-
* \`AWSQS::EKS::Cluster.Tags\`
|
|
466
|
-
* @link https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
|
|
467
|
-
*/
|
|
468
|
-
public readonly tags: any[] | undefined;
|
|
469
|
-
/**
|
|
470
|
-
* Attribute \`AWSQS::EKS::Cluster.Arn\`
|
|
471
|
-
* @link https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
|
|
472
|
-
*/
|
|
473
|
-
public readonly attrArn: string;
|
|
474
|
-
/**
|
|
475
|
-
* Attribute \`AWSQS::EKS::Cluster.Endpoint\`
|
|
476
|
-
* @link https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
|
|
477
|
-
*/
|
|
478
|
-
public readonly attrEndpoint: string;
|
|
479
|
-
/**
|
|
480
|
-
* Attribute \`AWSQS::EKS::Cluster.ClusterSecurityGroupId\`
|
|
481
|
-
* @link https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
|
|
482
|
-
*/
|
|
483
|
-
public readonly attrClusterSecurityGroupId: string;
|
|
484
|
-
/**
|
|
485
|
-
* Attribute \`AWSQS::EKS::Cluster.CertificateAuthorityData\`
|
|
486
|
-
* @link https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
|
|
487
|
-
*/
|
|
488
|
-
public readonly attrCertificateAuthorityData: string;
|
|
489
|
-
/**
|
|
490
|
-
* Attribute \`AWSQS::EKS::Cluster.EncryptionConfigKeyArn\`
|
|
491
|
-
* @link https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
|
|
492
|
-
*/
|
|
493
|
-
public readonly attrEncryptionConfigKeyArn: string;
|
|
494
|
-
/**
|
|
495
|
-
* Attribute \`AWSQS::EKS::Cluster.OIDCIssuerURL\`
|
|
496
|
-
* @link https://github.com/aws-quickstart/quickstart-amazon-eks-cluster-resource-provider.git
|
|
497
|
-
*/
|
|
498
|
-
public readonly attrOidcIssuerUrl: string;
|
|
499
|
-
|
|
500
|
-
/**
|
|
501
|
-
* Create a new \`AWSQS::EKS::Cluster\`.
|
|
502
|
-
*
|
|
503
|
-
* @param scope - scope in which this resource is defined
|
|
504
|
-
* @param id - scoped id of the resource
|
|
505
|
-
* @param props - resource properties
|
|
506
|
-
*/
|
|
507
|
-
constructor(scope: cdk.Construct, id: string, props: CfnClusterProps) {
|
|
508
|
-
super(scope, id, { type: CfnCluster.CFN_RESOURCE_TYPE_NAME, properties: toJson_CfnClusterProps(props)! });
|
|
509
|
-
|
|
510
|
-
this.name = props.name;
|
|
511
|
-
this.roleArn = props.roleArn;
|
|
512
|
-
this.lambdaRoleName = props.lambdaRoleName;
|
|
513
|
-
this.version = props.version;
|
|
514
|
-
this.kubernetesNetworkConfig = props.kubernetesNetworkConfig;
|
|
515
|
-
this.resourcesVpcConfig = props.resourcesVpcConfig;
|
|
516
|
-
this.enabledClusterLoggingTypes = props.enabledClusterLoggingTypes;
|
|
517
|
-
this.encryptionConfig = props.encryptionConfig;
|
|
518
|
-
this.kubernetesApiAccess = props.kubernetesApiAccess;
|
|
519
|
-
this.tags = props.tags;
|
|
520
|
-
this.attrArn = cdk.Token.asString(this.getAtt('Arn'));
|
|
521
|
-
this.attrEndpoint = cdk.Token.asString(this.getAtt('Endpoint'));
|
|
522
|
-
this.attrClusterSecurityGroupId = cdk.Token.asString(this.getAtt('ClusterSecurityGroupId'));
|
|
523
|
-
this.attrCertificateAuthorityData = cdk.Token.asString(this.getAtt('CertificateAuthorityData'));
|
|
524
|
-
this.attrEncryptionConfigKeyArn = cdk.Token.asString(this.getAtt('EncryptionConfigKeyArn'));
|
|
525
|
-
this.attrOidcIssuerUrl = cdk.Token.asString(this.getAtt('OIDCIssuerURL'));
|
|
526
|
-
}
|
|
527
|
-
}
|
|
64
|
+
Will generate a subdirectory `awsqs_eks_cluster` with a Python module that can
|
|
65
|
+
be `import`ed.
|
|
66
|
+
|
|
67
|
+
### CSharp
|
|
68
|
+
|
|
69
|
+
A `.csproj` is generated under `$outdir/RESOURCE/` where `RESOURCE` is the
|
|
70
|
+
resource name (`AWSQS::EKS::Cluster`).
|
|
71
|
+
|
|
72
|
+
For example:
|
|
73
|
+
|
|
74
|
+
```shell
|
|
75
|
+
cdk-import -l csharp AWSQS::EKS::Cluster
|
|
528
76
|
```
|
|
529
77
|
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
78
|
+
Will generate a directory `AWSQS::EKS::Cluster` with a `.csproj`. This can be
|
|
79
|
+
used in a .NET solution.
|
|
80
|
+
|
|
81
|
+
### TypeScript
|
|
82
|
+
|
|
83
|
+
A TypeScript file will be generated under `$outdir/MODULE` where `MODULE` is
|
|
84
|
+
derived from the resource name.
|
|
85
|
+
|
|
86
|
+
For example:
|
|
87
|
+
|
|
88
|
+
```shell
|
|
89
|
+
cdk-import -l typescript -o src AWSQS::EKS::Cluster
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Will generate a file `src/awsqs-eks-cluster.ts` (note the usage of `-o` above).
|
|
93
|
+
|
|
94
|
+
### Go
|
|
95
|
+
|
|
96
|
+
If `-l golang` is used, the `--go-module` option is required and must reflect
|
|
97
|
+
the Go module name of the parent project module.
|
|
98
|
+
|
|
99
|
+
A Go submodule will be generated under `$outdir/PACKAGE` where `PACKAGE` is
|
|
100
|
+
derived from the resource name (`AWSQS::EKS::Cluster` => `awsqs-eks-cluster`).
|
|
101
|
+
|
|
102
|
+
For example:
|
|
103
|
+
|
|
104
|
+
```shell
|
|
105
|
+
cdk-import -l golang --go-module "github.com/foo/bar" AWSQS::EKS::Cluster
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Will generate a Go module under: `awsqs-eks-cluster`.
|
|
109
|
+
|
|
110
|
+
## Examples
|
|
111
|
+
|
|
112
|
+
Generates constructs for the latest version AWSQS::EKS::Cluster in TypeScript:
|
|
533
113
|
|
|
534
114
|
```shell
|
|
535
|
-
|
|
536
|
-
awsqs-checkpoint-cloudguardqs-module.ts
|
|
115
|
+
cdk-import -l typescript AWSQS::EKS::Cluster
|
|
537
116
|
```
|
|
538
117
|
|
|
539
|
-
|
|
118
|
+
Generates construct in Go for a specific resource version:
|
|
540
119
|
|
|
541
|
-
|
|
542
|
-
-
|
|
120
|
+
```shell
|
|
121
|
+
cdk-import -l golang --go-module "github.com/account/repo" AWSQS::EKS::Cluster@1.2.0
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Generates construct in Python under the "src" subfolder instead of working
|
|
125
|
+
directory:
|
|
126
|
+
|
|
127
|
+
```shell
|
|
128
|
+
cdk-import -l python -o src AWSQS::EKS::Cluster
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Generates construct in Java and identifies the resource type by its ARN:
|
|
132
|
+
|
|
133
|
+
```shell
|
|
134
|
+
cdk-import -l java --java-package "com.acme.myproject" arn:aws:cloudformation:...
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Modules are also supported:
|
|
138
|
+
|
|
139
|
+
```shell
|
|
140
|
+
cdk-import AWSQS::CheckPoint::CloudGuardQS::MODULE
|
|
141
|
+
```
|
|
543
142
|
|
|
544
143
|
## Contributing
|
|
545
144
|
|
|
@@ -547,7 +146,8 @@ See [CONTRIBUTING](CONTRIBUTING.md)
|
|
|
547
146
|
|
|
548
147
|
## Security
|
|
549
148
|
|
|
550
|
-
See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more
|
|
149
|
+
See [CONTRIBUTING](CONTRIBUTING.md#security-issue-notifications) for more
|
|
150
|
+
information.
|
|
551
151
|
|
|
552
152
|
## License
|
|
553
153
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CfnResourceGenerator = void 0;
|
|
4
|
-
const
|
|
4
|
+
const case_1 = require("case");
|
|
5
5
|
const j2j = require("json2jsii");
|
|
6
6
|
const util_1 = require("./util");
|
|
7
7
|
/**
|
|
@@ -37,6 +37,7 @@ class CfnResourceGenerator {
|
|
|
37
37
|
return code.render();
|
|
38
38
|
}
|
|
39
39
|
emitImports(code) {
|
|
40
|
+
code.line('// Generated by cdk-import');
|
|
40
41
|
code.line("import * as cdk from '@aws-cdk/core';");
|
|
41
42
|
code.line();
|
|
42
43
|
}
|
|
@@ -78,14 +79,14 @@ class CfnResourceGenerator {
|
|
|
78
79
|
}
|
|
79
80
|
code.line(` * @link ${this.typeDef.SourceUrl}`);
|
|
80
81
|
code.line(' */');
|
|
81
|
-
code.line(`public readonly ${
|
|
82
|
+
code.line(`public readonly ${(0, case_1.camel)(prop)}: ${this.getTypeOfProperty(prop)}${optionalMarker};`);
|
|
82
83
|
}
|
|
83
84
|
for (const prop of this.resourceAttributes) {
|
|
84
85
|
code.line('/**');
|
|
85
86
|
code.line(` * Attribute \`${this.typeName}.${prop}\``);
|
|
86
87
|
code.line(` * @link ${this.typeDef.SourceUrl}`);
|
|
87
88
|
code.line(' */');
|
|
88
|
-
code.line(`public readonly attr${
|
|
89
|
+
code.line(`public readonly attr${(0, case_1.pascal)(prop)}: ${this.getTypeOfProperty(prop)};`);
|
|
89
90
|
}
|
|
90
91
|
code.line();
|
|
91
92
|
code.line('/**');
|
|
@@ -99,10 +100,10 @@ class CfnResourceGenerator {
|
|
|
99
100
|
code.line(`super(scope, id, { type: ${this.constructClassName}.CFN_RESOURCE_TYPE_NAME, properties: toJson_${this.propsStructName}(props)! });`);
|
|
100
101
|
code.line('');
|
|
101
102
|
for (const prop of this.resourceProperties) {
|
|
102
|
-
code.line(`this.${
|
|
103
|
+
code.line(`this.${(0, case_1.camel)(prop)} = props.${(0, case_1.camel)(prop)};`);
|
|
103
104
|
}
|
|
104
105
|
for (const prop of this.resourceAttributes) {
|
|
105
|
-
const propertyName = `attr${
|
|
106
|
+
const propertyName = `attr${(0, case_1.pascal)(prop)}`;
|
|
106
107
|
code.line(`this.${propertyName} = ${this.renderGetAtt(prop)};`);
|
|
107
108
|
}
|
|
108
109
|
code.closeBlock();
|
|
@@ -144,4 +145,4 @@ class CfnResourceGenerator {
|
|
|
144
145
|
}
|
|
145
146
|
}
|
|
146
147
|
exports.CfnResourceGenerator = CfnResourceGenerator;
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZuLXJlc291cmNlLWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jZm4tcmVzb3VyY2UtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVDQUF1QztBQUN2QyxpQ0FBaUM7QUFFakMsaUNBQTBDO0FBRTFDOztHQUVHO0FBQ0gsTUFBYSxvQkFBb0I7SUFRL0I7Ozs7O09BS0c7SUFDSCxZQUE2QixRQUFnQixFQUFtQixPQUFpQixFQUFtQixNQUFXO1FBQWxGLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBbUIsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUFtQixXQUFNLEdBQU4sTUFBTSxDQUFLO1FBQzdHLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFBLHVCQUFnQixFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDMUosSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0gsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekQsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsT0FBTyxD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LENBQUM7Q0FFRjtBQTFKRCxvREEwSkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjYW1lbGNhc2UgZnJvbSAnY2FtZWxjYXNlJztcbmltcG9ydCAqIGFzIGoyaiBmcm9tICdqc29uMmpzaWknO1xuaW1wb3J0IHsgVHlwZUluZm8gfSBmcm9tICcuL3R5cGUtaW5mbyc7XG5pbXBvcnQgeyBzYW5pdGl6ZVR5cGVOYW1lIH0gZnJvbSAnLi91dGlsJztcblxuLyoqXG4gKiBHZW5lcmF0b3IgdG8gZW1pdCBjbGFzc2VzIGFuZCB0eXBlcyBmb3IgdGhlIEwxIGNvbnN0cnVjdCBvZiB0aGUgZ2l2ZW4gcmVzb3VyY2UgdHlwZVxuICovXG5leHBvcnQgY2xhc3MgQ2ZuUmVzb3VyY2VHZW5lcmF0b3Ige1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVkVHlwZU5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZUF0dHJpYnV0ZXM6IHN0cmluZ1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlUHJvcGVydGllczogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uc3RydWN0Q2xhc3NOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHNTdHJ1Y3ROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB0eXBlTmFtZSB0aGUgbmFtZSBvZiB0aGUgQ0ZOIHJlc291cmNlIHR5cGUgKGUuZy4gQVdTUVM6OkVLUzo6Q2x1c3RlcilcbiAgICogQHBhcmFtIHR5cGVEZWYgdGhlIHR5cGUgaW5mbyBjb250YWluaW5nIHRoZSBzb3VyY2UgdXJsXG4gICAqIEBwYXJhbSBzY2hlbWEgdGhlIHNjaGVtYSBvZiB0aGUgcmVzb3VyY2UgdHlwZSBmb3IgaW5wdXQgYW5kIG91dHB1dCBwcm9wZXJ0aWVzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHR5cGVOYW1lOiBzdHJpbmcsIHByaXZhdGUgcmVhZG9ubHkgdHlwZURlZjogVHlwZUluZm8sIHByaXZhdGUgcmVhZG9ubHkgc2NoZW1hOiBhbnkpIHtcbiAgICB0aGlzLnNhbml0aXplZFR5cGVOYW1lID0gc2FuaXRpemVUeXBlTmFtZSh0eXBlTmFtZSk7XG4gICAgdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMgPSB0aGlzLnNjaGVtYS5yZWFkT25seVByb3BlcnRpZXMgPyB0aGlzLnNjaGVtYS5yZWFkT25seVByb3BlcnRpZXMubWFwKChwcm9wOiBzdHJpbmcpID0+IHByb3AucmVwbGFjZSgvXlxcL3Byb3BlcnRpZXNcXC8vLCAnJykpIDogW107XG4gICAgdGhpcy5yZXNvdXJjZVByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyh0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzKS5maWx0ZXIocHJvcCA9PiB0aGlzLnJlc291cmNlQXR0cmlidXRlcy5pbmRleE9mKHByb3ApID09PSAtMSk7XG4gICAgdGhpcy5jb25zdHJ1Y3RDbGFzc05hbWUgPSBgQ2ZuJHt0aGlzLnNhbml0aXplZFR5cGVOYW1lfWA7XG4gICAgdGhpcy5wcm9wc1N0cnVjdE5hbWUgPSBgJHt0aGlzLmNvbnN0cnVjdENsYXNzTmFtZX1Qcm9wc2A7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSB0eXBlIGludG8gYSBUeXBlU2NyaXB0IGNsYXNzIGZpbCBkZWZpbmluZyB0aGUgcHJvcHMgYW5kIHRoZSBMMSBjb25zdHJ1Y3RcbiAgICpcbiAgICogQHJldHVybnMgdGhlIHJlbmRlcmVkIGNsYXNzIGZpbGUgY29udGVudFxuICAgKi9cbiAgcHVibGljIHJlbmRlcigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvZGUgPSBuZXcgajJqLkNvZGUoKTtcbiAgICB0aGlzLmVtaXRJbXBvcnRzKGNvZGUpO1xuICAgIHRoaXMuZW1pdERlZmluaXRpb25UeXBlcyhjb2RlKTtcbiAgICB0aGlzLmVtaXRDb25zdHJ1Y3RDbGFzcyhjb2RlKTtcbiAgICByZXR1cm4gY29kZS5yZW5kZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEltcG9ydHMoY29kZTogajJqLkNvZGUpIHtcbiAgICBjb2RlLmxpbmUoXCJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnQGF3cy1jZGsvY29yZSc7XCIpO1xuICAgIGNvZGUubGluZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RGVmaW5pdGlvblR5cGVzKGNvZGU6IGoyai5Db2RlKSB7XG4gICAgY29uc3QgZ2VuID0gbmV3IGoyai5UeXBlR2VuZXJhdG9yKHtcbiAgICAgIGRlZmluaXRpb25zOiB0aGlzLnNjaGVtYS5kZWZpbml0aW9ucyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zY2hlbWEpKTtcbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMpIHtcbiAgICAgIC8vIFJlbW92ZSBhdHRyaWJ1dGVzIHRoYXQgY2Fubm90IGJlIHdyaXR0ZW4gYnV0IGFyZSB1c2VkIGFzIGF0dHJpYnV0ZXNcbiAgICAgIC8vIFRoZXNlIHNob3VsZCBub3QgYmUgcGFydCBvZiB0aGUgUHJvcHMgc3RydWN0XG4gICAgICBkZWxldGUgc2NoZW1hLnByb3BlcnRpZXNbcHJvcF07XG4gICAgfVxuXG4gICAgZ2VuLmVtaXRUeXBlKHRoaXMucHJvcHNTdHJ1Y3ROYW1lLCBzY2hlbWEpO1xuXG4gICAgZ2VuLnJlbmRlclRvQ29kZShjb2RlKTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdENvbnN0cnVjdENsYXNzKGNvZGU6IGoyai5Db2RlKSB7XG4gICAgY29kZS5saW5lKCcvKionKTtcbiAgICBjb2RlLmxpbmUoYCAqIEEgQ2xvdWRGb3JtYXRpb24gXFxgJHt0aGlzLnR5cGVOYW1lfVxcYGApO1xuICAgIGNvZGUubGluZSgnIConKTtcbiAgICBjb2RlLmxpbmUoYCAqIEBjbG91ZGZvcm1hdGlvblJlc291cmNlICR7dGhpcy50eXBlTmFtZX1gKTtcbiAgICBjb2RlLmxpbmUoJyAqIEBzdGFiaWxpdHkgZXh0ZXJuYWwnKTtcbiAgICBjb2RlLmxpbmUoYCAqIEBsaW5rICR7dGhpcy50eXBlRGVmLlNvdXJjZVVybH1gKTtcbiAgICBjb2RlLmxpbmUoJyAqLycpO1xuICAgIGNvZGUub3BlbkJsb2NrKGBleHBvcnQgY2xhc3MgJHt0aGlzLmNvbnN0cnVjdENsYXNzTmFtZX0gZXh0ZW5kcyBjZGsuQ2ZuUmVzb3VyY2VgKTtcbiAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgIGNvZGUubGluZSgnKiBUaGUgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgdHlwZSBuYW1lIGZvciB0aGlzIHJlc291cmNlIGNsYXNzLicpO1xuICAgIGNvZGUubGluZSgnKi8nKTtcbiAgICBjb2RlLmxpbmUoYHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0ZOX1JFU09VUkNFX1RZUEVfTkFNRSA9IFwiJHt0aGlzLnR5cGVOYW1lfVwiO2ApO1xuICAgIGNvZGUubGluZSgpO1xuXG4gICAgZm9yIChjb25zdCBwcm9wIG9mIHRoaXMucmVzb3VyY2VQcm9wZXJ0aWVzKSB7XG4gICAgICBjb25zdCBvcHRpb25hbE1hcmtlciA9IHRoaXMuc2NoZW1hLnJlcXVpcmVkPy5pbmRleE9mKHByb3ApID09PSAtMSA/ICcgfCB1bmRlZmluZWQnIDogJyc7XG4gICAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgICAgY29kZS5saW5lKGAgKiBcXGAke3RoaXMudHlwZU5hbWV9LiR7cHJvcH1cXGBgKTtcbiAgICAgIGlmICh0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzW3Byb3BdLmRlc2NyaXB0aW9uKSB7XG4gICAgICAgIGNvZGUubGluZShgICogJHt0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzW3Byb3BdLmRlc2NyaXB0aW9ufWApO1xuICAgICAgfVxuICAgICAgY29kZS5saW5lKGAgKiBAbGluayAke3RoaXMudHlwZURlZi5Tb3VyY2VVcmx9YCk7XG4gICAgICBjb2RlLmxpbmUoJyAqLycpO1xuICAgICAgY29kZS5saW5lKGBwdWJsaWMgcmVhZG9ubHkgJHtjYW1lbGNhc2UocHJvcCl9OiAke3RoaXMuZ2V0VHlwZU9mUHJvcGVydHkocHJvcCl9JHtvcHRpb25hbE1hcmtlcn07YCk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wIG9mIHRoaXMucmVzb3VyY2VBdHRyaWJ1dGVzKSB7XG4gICAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgICAgY29kZS5saW5lKGAgKiBBdHRyaWJ1dGUgXFxgJHt0aGlzLnR5cGVOYW1lfS4ke3Byb3B9XFxgYCk7XG4gICAgICBjb2RlLmxpbmUoYCAqIEBsaW5rICR7dGhpcy50eXBlRGVmLlNvdXJjZVVybH1gKTtcbiAgICAgIGNvZGUubGluZSgnICovJyk7XG4gICAgICBjb2RlLmxpbmUoYHB1YmxpYyByZWFkb25seSBhdHRyJHtjYW1lbGNhc2UocHJvcCwgeyBwYXNjYWxDYXNlOiB0cnVlIH0pfTogJHt0aGlzLmdldFR5cGVPZlByb3BlcnR5KHByb3ApfTtgKTtcbiAgICB9XG5cbiAgICBjb2RlLmxpbmUoKTtcblxuICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgY29kZS5saW5lKGAgKiBDcmVhdGUgYSBuZXcgXFxgJHt0aGlzLnR5cGVOYW1lfVxcYC5gKTtcbiAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgY29kZS5saW5lKCcgKiBAcGFyYW0gc2NvcGUgLSBzY29wZSBpbiB3aGljaCB0aGlzIHJlc291cmNlIGlzIGRlZmluZWQnKTtcbiAgICBjb2RlLmxpbmUoJyAqIEBwYXJhbSBpZCAgICAtIHNjb3BlZCBpZCBvZiB0aGUgcmVzb3VyY2UnKTtcbiAgICBjb2RlLmxpbmUoJyAqIEBwYXJhbSBwcm9wcyAtIHJlc291cmNlIHByb3BlcnRpZXMnKTtcbiAgICBjb2RlLmxpbmUoJyAqLycpO1xuICAgIGNvZGUub3BlbkJsb2NrKGBjb25zdHJ1Y3RvcihzY29wZTogY2RrLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6ICR7dGhpcy5wcm9wc1N0cnVjdE5hbWV9KWApO1xuICAgIGNvZGUubGluZShgc3VwZXIoc2NvcGUsIGlkLCB7IHR5cGU6ICR7dGhpcy5jb25zdHJ1Y3RDbGFzc05hbWV9LkNGTl9SRVNPVVJDRV9UWVBFX05BTUUsIHByb3BlcnRpZXM6IHRvSnNvbl8ke3RoaXMucHJvcHNTdHJ1Y3ROYW1lfShwcm9wcykhIH0pO2ApO1xuICAgIGNvZGUubGluZSgnJyk7XG4gICAgZm9yIChjb25zdCBwcm9wIG9mIHRoaXMucmVzb3VyY2VQcm9wZXJ0aWVzKSB7XG4gICAgICBjb2RlLmxpbmUoYHRoaXMuJHtjYW1lbGNhc2UocHJvcCl9ID0gcHJvcHMuJHtjYW1lbGNhc2UocHJvcCl9O2ApO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMpIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGBhdHRyJHtjYW1lbGNhc2UocHJvcCwgeyBwYXNjYWxDYXNlOiB0cnVlIH0pfWA7XG4gICAgICBjb2RlLmxpbmUoYHRoaXMuJHtwcm9wZXJ0eU5hbWV9ID0gJHt0aGlzLnJlbmRlckdldEF0dChwcm9wKX07YCk7XG4gICAgfVxuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuXG4gICAgLy8gQ2xvc2UgY29uc3RydWN0IGNsYXNzXG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckdldEF0dChwcm9wOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGF0dHJpYnV0ZVR5cGUgPSB0aGlzLmdldFR5cGVPZlByb3BlcnR5KHByb3ApO1xuICAgIGNvbnN0IGNvbnN0cnVjdG9yQXJndW1lbnRzID0gYHRoaXMuZ2V0QXR0KCcke3Byb3B9JylgO1xuICAgIGlmIChhdHRyaWJ1dGVUeXBlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGBjZGsuVG9rZW4uYXNTdHJpbmcoJHtjb25zdHJ1Y3RvckFyZ3VtZW50c30pYDtcbiAgICB9XG4gICAgaWYgKGF0dHJpYnV0ZVR5cGUgPT09ICdzdHJpbmdbXScpIHtcbiAgICAgIHJldHVybiBgY2RrLlRva2VuLmFzTGlzdCgke2NvbnN0cnVjdG9yQXJndW1lbnRzfSlgO1xuICAgIH1cbiAgICBpZiAoYXR0cmlidXRlVHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBgY2RrLlRva2VuLmFzTnVtYmVyKCR7Y29uc3RydWN0b3JBcmd1bWVudHN9KWA7XG4gICAgfVxuICAgIHJldHVybiBjb25zdHJ1Y3RvckFyZ3VtZW50cztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VHlwZU9mUHJvcGVydHkocHJvcDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VHlwZUZyb21TY2hlbWEodGhpcy5zY2hlbWEucHJvcGVydGllc1twcm9wXSk7XG4gIH1cblxuICBwcml2YXRlIGdldFR5cGVGcm9tU2NoZW1hKHByb3A6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKHByb3AudHlwZSkge1xuICAgICAgc3dpdGNoIChwcm9wLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICByZXR1cm4gJ3N0cmluZyc7XG4gICAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXRUeXBlRnJvbVNjaGVtYShwcm9wLml0ZW1zKX1bXWA7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuICdhbnknO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcC5oYXNPd25Qcm9wZXJ0eSgnJHJlZicpKSB7XG4gICAgICByZXR1cm4gcHJvcC4kcmVmLnJlcGxhY2UoLyNcXC9kZWZpbml0aW9uc1xcLy8sICcnKTtcbiAgICB9XG4gICAgcmV0dXJuICdhbnknO1xuICB9XG5cbn1cbiJdfQ==
|
|
148
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZuLXJlc291cmNlLWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jZm4tcmVzb3VyY2UtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLCtCQUFxQztBQUNyQyxpQ0FBaUM7QUFFakMsaUNBQTBDO0FBRTFDOztHQUVHO0FBQ0gsTUFBYSxvQkFBb0I7SUFRL0I7Ozs7O09BS0c7SUFDSCxZQUE2QixRQUFnQixFQUFtQixPQUFpQixFQUFtQixNQUFXO1FBQWxGLGFBQVEsR0FBUixRQUFRLENBQVE7UUFBbUIsWUFBTyxHQUFQLE9BQU8sQ0FBVTtRQUFtQixXQUFNLEdBQU4sTUFBTSxDQUFLO1FBQzdHLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFBLHVCQUFnQixFQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDMUosSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0gsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDekQsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsT0FBTyxD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QUFDO0lBQ2YsQ0FBQztDQUVGO0FBM0pELG9EQTJKQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNhbWVsLCBwYXNjYWwgfSBmcm9tICdjYXNlJztcbmltcG9ydCAqIGFzIGoyaiBmcm9tICdqc29uMmpzaWknO1xuaW1wb3J0IHsgVHlwZUluZm8gfSBmcm9tICcuL3R5cGUtaW5mbyc7XG5pbXBvcnQgeyBzYW5pdGl6ZVR5cGVOYW1lIH0gZnJvbSAnLi91dGlsJztcblxuLyoqXG4gKiBHZW5lcmF0b3IgdG8gZW1pdCBjbGFzc2VzIGFuZCB0eXBlcyBmb3IgdGhlIEwxIGNvbnN0cnVjdCBvZiB0aGUgZ2l2ZW4gcmVzb3VyY2UgdHlwZVxuICovXG5leHBvcnQgY2xhc3MgQ2ZuUmVzb3VyY2VHZW5lcmF0b3Ige1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVkVHlwZU5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZUF0dHJpYnV0ZXM6IHN0cmluZ1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlUHJvcGVydGllczogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uc3RydWN0Q2xhc3NOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHNTdHJ1Y3ROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB0eXBlTmFtZSB0aGUgbmFtZSBvZiB0aGUgQ0ZOIHJlc291cmNlIHR5cGUgKGUuZy4gQVdTUVM6OkVLUzo6Q2x1c3RlcilcbiAgICogQHBhcmFtIHR5cGVEZWYgdGhlIHR5cGUgaW5mbyBjb250YWluaW5nIHRoZSBzb3VyY2UgdXJsXG4gICAqIEBwYXJhbSBzY2hlbWEgdGhlIHNjaGVtYSBvZiB0aGUgcmVzb3VyY2UgdHlwZSBmb3IgaW5wdXQgYW5kIG91dHB1dCBwcm9wZXJ0aWVzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHR5cGVOYW1lOiBzdHJpbmcsIHByaXZhdGUgcmVhZG9ubHkgdHlwZURlZjogVHlwZUluZm8sIHByaXZhdGUgcmVhZG9ubHkgc2NoZW1hOiBhbnkpIHtcbiAgICB0aGlzLnNhbml0aXplZFR5cGVOYW1lID0gc2FuaXRpemVUeXBlTmFtZSh0eXBlTmFtZSk7XG4gICAgdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMgPSB0aGlzLnNjaGVtYS5yZWFkT25seVByb3BlcnRpZXMgPyB0aGlzLnNjaGVtYS5yZWFkT25seVByb3BlcnRpZXMubWFwKChwcm9wOiBzdHJpbmcpID0+IHByb3AucmVwbGFjZSgvXlxcL3Byb3BlcnRpZXNcXC8vLCAnJykpIDogW107XG4gICAgdGhpcy5yZXNvdXJjZVByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyh0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzKS5maWx0ZXIocHJvcCA9PiB0aGlzLnJlc291cmNlQXR0cmlidXRlcy5pbmRleE9mKHByb3ApID09PSAtMSk7XG4gICAgdGhpcy5jb25zdHJ1Y3RDbGFzc05hbWUgPSBgQ2ZuJHt0aGlzLnNhbml0aXplZFR5cGVOYW1lfWA7XG4gICAgdGhpcy5wcm9wc1N0cnVjdE5hbWUgPSBgJHt0aGlzLmNvbnN0cnVjdENsYXNzTmFtZX1Qcm9wc2A7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSB0eXBlIGludG8gYSBUeXBlU2NyaXB0IGNsYXNzIGZpbCBkZWZpbmluZyB0aGUgcHJvcHMgYW5kIHRoZSBMMSBjb25zdHJ1Y3RcbiAgICpcbiAgICogQHJldHVybnMgdGhlIHJlbmRlcmVkIGNsYXNzIGZpbGUgY29udGVudFxuICAgKi9cbiAgcHVibGljIHJlbmRlcigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvZGUgPSBuZXcgajJqLkNvZGUoKTtcbiAgICB0aGlzLmVtaXRJbXBvcnRzKGNvZGUpO1xuICAgIHRoaXMuZW1pdERlZmluaXRpb25UeXBlcyhjb2RlKTtcbiAgICB0aGlzLmVtaXRDb25zdHJ1Y3RDbGFzcyhjb2RlKTtcbiAgICByZXR1cm4gY29kZS5yZW5kZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEltcG9ydHMoY29kZTogajJqLkNvZGUpIHtcbiAgICBjb2RlLmxpbmUoJy8vIEdlbmVyYXRlZCBieSBjZGstaW1wb3J0Jyk7XG4gICAgY29kZS5saW5lKFwiaW1wb3J0ICogYXMgY2RrIGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1wiKTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdERlZmluaXRpb25UeXBlcyhjb2RlOiBqMmouQ29kZSkge1xuICAgIGNvbnN0IGdlbiA9IG5ldyBqMmouVHlwZUdlbmVyYXRvcih7XG4gICAgICBkZWZpbml0aW9uczogdGhpcy5zY2hlbWEuZGVmaW5pdGlvbnMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzY2hlbWEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuc2NoZW1hKSk7XG4gICAgZm9yIChjb25zdCBwcm9wIG9mIHRoaXMucmVzb3VyY2VBdHRyaWJ1dGVzKSB7XG4gICAgICAvLyBSZW1vdmUgYXR0cmlidXRlcyB0aGF0IGNhbm5vdCBiZSB3cml0dGVuIGJ1dCBhcmUgdXNlZCBhcyBhdHRyaWJ1dGVzXG4gICAgICAvLyBUaGVzZSBzaG91bGQgbm90IGJlIHBhcnQgb2YgdGhlIFByb3BzIHN0cnVjdFxuICAgICAgZGVsZXRlIHNjaGVtYS5wcm9wZXJ0aWVzW3Byb3BdO1xuICAgIH1cblxuICAgIGdlbi5lbWl0VHlwZSh0aGlzLnByb3BzU3RydWN0TmFtZSwgc2NoZW1hKTtcblxuICAgIGdlbi5yZW5kZXJUb0NvZGUoY29kZSk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDb25zdHJ1Y3RDbGFzcyhjb2RlOiBqMmouQ29kZSkge1xuICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgY29kZS5saW5lKGAgKiBBIENsb3VkRm9ybWF0aW9uIFxcYCR7dGhpcy50eXBlTmFtZX1cXGBgKTtcbiAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgY29kZS5saW5lKGAgKiBAY2xvdWRmb3JtYXRpb25SZXNvdXJjZSAke3RoaXMudHlwZU5hbWV9YCk7XG4gICAgY29kZS5saW5lKCcgKiBAc3RhYmlsaXR5IGV4dGVybmFsJyk7XG4gICAgY29kZS5saW5lKGAgKiBAbGluayAke3RoaXMudHlwZURlZi5Tb3VyY2VVcmx9YCk7XG4gICAgY29kZS5saW5lKCcgKi8nKTtcbiAgICBjb2RlLm9wZW5CbG9jayhgZXhwb3J0IGNsYXNzICR7dGhpcy5jb25zdHJ1Y3RDbGFzc05hbWV9IGV4dGVuZHMgY2RrLkNmblJlc291cmNlYCk7XG4gICAgY29kZS5saW5lKCcvKionKTtcbiAgICBjb2RlLmxpbmUoJyogVGhlIENsb3VkRm9ybWF0aW9uIHJlc291cmNlIHR5cGUgbmFtZSBmb3IgdGhpcyByZXNvdXJjZSBjbGFzcy4nKTtcbiAgICBjb2RlLmxpbmUoJyovJyk7XG4gICAgY29kZS5saW5lKGBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IENGTl9SRVNPVVJDRV9UWVBFX05BTUUgPSBcIiR7dGhpcy50eXBlTmFtZX1cIjtgKTtcbiAgICBjb2RlLmxpbmUoKTtcblxuICAgIGZvciAoY29uc3QgcHJvcCBvZiB0aGlzLnJlc291cmNlUHJvcGVydGllcykge1xuICAgICAgY29uc3Qgb3B0aW9uYWxNYXJrZXIgPSB0aGlzLnNjaGVtYS5yZXF1aXJlZD8uaW5kZXhPZihwcm9wKSA9PT0gLTEgPyAnIHwgdW5kZWZpbmVkJyA6ICcnO1xuICAgICAgY29kZS5saW5lKCcvKionKTtcbiAgICAgIGNvZGUubGluZShgICogXFxgJHt0aGlzLnR5cGVOYW1lfS4ke3Byb3B9XFxgYCk7XG4gICAgICBpZiAodGhpcy5zY2hlbWEucHJvcGVydGllc1twcm9wXS5kZXNjcmlwdGlvbikge1xuICAgICAgICBjb2RlLmxpbmUoYCAqICR7dGhpcy5zY2hlbWEucHJvcGVydGllc1twcm9wXS5kZXNjcmlwdGlvbn1gKTtcbiAgICAgIH1cbiAgICAgIGNvZGUubGluZShgICogQGxpbmsgJHt0aGlzLnR5cGVEZWYuU291cmNlVXJsfWApO1xuICAgICAgY29kZS5saW5lKCcgKi8nKTtcbiAgICAgIGNvZGUubGluZShgcHVibGljIHJlYWRvbmx5ICR7Y2FtZWwocHJvcCl9OiAke3RoaXMuZ2V0VHlwZU9mUHJvcGVydHkocHJvcCl9JHtvcHRpb25hbE1hcmtlcn07YCk7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wIG9mIHRoaXMucmVzb3VyY2VBdHRyaWJ1dGVzKSB7XG4gICAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgICAgY29kZS5saW5lKGAgKiBBdHRyaWJ1dGUgXFxgJHt0aGlzLnR5cGVOYW1lfS4ke3Byb3B9XFxgYCk7XG4gICAgICBjb2RlLmxpbmUoYCAqIEBsaW5rICR7dGhpcy50eXBlRGVmLlNvdXJjZVVybH1gKTtcbiAgICAgIGNvZGUubGluZSgnICovJyk7XG4gICAgICBjb2RlLmxpbmUoYHB1YmxpYyByZWFkb25seSBhdHRyJHtwYXNjYWwocHJvcCl9OiAke3RoaXMuZ2V0VHlwZU9mUHJvcGVydHkocHJvcCl9O2ApO1xuICAgIH1cblxuICAgIGNvZGUubGluZSgpO1xuXG4gICAgY29kZS5saW5lKCcvKionKTtcbiAgICBjb2RlLmxpbmUoYCAqIENyZWF0ZSBhIG5ldyBcXGAke3RoaXMudHlwZU5hbWV9XFxgLmApO1xuICAgIGNvZGUubGluZSgnIConKTtcbiAgICBjb2RlLmxpbmUoJyAqIEBwYXJhbSBzY29wZSAtIHNjb3BlIGluIHdoaWNoIHRoaXMgcmVzb3VyY2UgaXMgZGVmaW5lZCcpO1xuICAgIGNvZGUubGluZSgnICogQHBhcmFtIGlkICAgIC0gc2NvcGVkIGlkIG9mIHRoZSByZXNvdXJjZScpO1xuICAgIGNvZGUubGluZSgnICogQHBhcmFtIHByb3BzIC0gcmVzb3VyY2UgcHJvcGVydGllcycpO1xuICAgIGNvZGUubGluZSgnICovJyk7XG4gICAgY29kZS5vcGVuQmxvY2soYGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogJHt0aGlzLnByb3BzU3RydWN0TmFtZX0pYCk7XG4gICAgY29kZS5saW5lKGBzdXBlcihzY29wZSwgaWQsIHsgdHlwZTogJHt0aGlzLmNvbnN0cnVjdENsYXNzTmFtZX0uQ0ZOX1JFU09VUkNFX1RZUEVfTkFNRSwgcHJvcGVydGllczogdG9Kc29uXyR7dGhpcy5wcm9wc1N0cnVjdE5hbWV9KHByb3BzKSEgfSk7YCk7XG4gICAgY29kZS5saW5lKCcnKTtcbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5yZXNvdXJjZVByb3BlcnRpZXMpIHtcbiAgICAgIGNvZGUubGluZShgdGhpcy4ke2NhbWVsKHByb3ApfSA9IHByb3BzLiR7Y2FtZWwocHJvcCl9O2ApO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMpIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGBhdHRyJHtwYXNjYWwocHJvcCl9YDtcbiAgICAgIGNvZGUubGluZShgdGhpcy4ke3Byb3BlcnR5TmFtZX0gPSAke3RoaXMucmVuZGVyR2V0QXR0KHByb3ApfTtgKTtcbiAgICB9XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG5cbiAgICAvLyBDbG9zZSBjb25zdHJ1Y3QgY2xhc3NcbiAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyR2V0QXR0KHByb3A6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgYXR0cmlidXRlVHlwZSA9IHRoaXMuZ2V0VHlwZU9mUHJvcGVydHkocHJvcCk7XG4gICAgY29uc3QgY29uc3RydWN0b3JBcmd1bWVudHMgPSBgdGhpcy5nZXRBdHQoJyR7cHJvcH0nKWA7XG4gICAgaWYgKGF0dHJpYnV0ZVR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gYGNkay5Ub2tlbi5hc1N0cmluZygke2NvbnN0cnVjdG9yQXJndW1lbnRzfSlgO1xuICAgIH1cbiAgICBpZiAoYXR0cmlidXRlVHlwZSA9PT0gJ3N0cmluZ1tdJykge1xuICAgICAgcmV0dXJuIGBjZGsuVG9rZW4uYXNMaXN0KCR7Y29uc3RydWN0b3JBcmd1bWVudHN9KWA7XG4gICAgfVxuICAgIGlmIChhdHRyaWJ1dGVUeXBlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIGBjZGsuVG9rZW4uYXNOdW1iZXIoJHtjb25zdHJ1Y3RvckFyZ3VtZW50c30pYDtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnN0cnVjdG9yQXJndW1lbnRzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUeXBlT2ZQcm9wZXJ0eShwcm9wOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUeXBlRnJvbVNjaGVtYSh0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzW3Byb3BdKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VHlwZUZyb21TY2hlbWEocHJvcDogYW55KTogc3RyaW5nIHtcbiAgICBpZiAocHJvcC50eXBlKSB7XG4gICAgICBzd2l0Y2ggKHByb3AudHlwZSkge1xuICAgICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICAgIHJldHVybiAnc3RyaW5nJztcbiAgICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgICAgIHJldHVybiBgJHt0aGlzLmdldFR5cGVGcm9tU2NoZW1hKHByb3AuaXRlbXMpfVtdYDtcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gJ2FueSc7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wLmhhc093blByb3BlcnR5KCckcmVmJykpIHtcbiAgICAgIHJldHVybiBwcm9wLiRyZWYucmVwbGFjZSgvI1xcL2RlZmluaXRpb25zXFwvLywgJycpO1xuICAgIH1cbiAgICByZXR1cm4gJ2FueSc7XG4gIH1cblxufVxuIl19
|
package/lib/cli.js
CHANGED
|
@@ -1,11 +1,17 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
"use strict";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const fs = require("fs/promises");
|
|
5
|
+
const os = require("os");
|
|
6
|
+
const path = require("path");
|
|
4
7
|
const minimist = require("minimist");
|
|
5
8
|
const _1 = require(".");
|
|
9
|
+
const languages_1 = require("./languages");
|
|
6
10
|
const args = minimist(process.argv.slice(2), {
|
|
7
11
|
string: [
|
|
8
12
|
'outdir',
|
|
13
|
+
'language',
|
|
14
|
+
'go-module-name',
|
|
9
15
|
],
|
|
10
16
|
boolean: [
|
|
11
17
|
'help',
|
|
@@ -13,34 +19,64 @@ const args = minimist(process.argv.slice(2), {
|
|
|
13
19
|
alias: {
|
|
14
20
|
outdir: 'o',
|
|
15
21
|
help: 'h',
|
|
22
|
+
language: 'l',
|
|
16
23
|
},
|
|
17
24
|
});
|
|
18
25
|
function showHelp() {
|
|
19
26
|
console.log('');
|
|
20
|
-
console.log('Usage:
|
|
21
|
-
console.log('');
|
|
27
|
+
console.log('Usage:');
|
|
28
|
+
console.log(' cdk-import -l LANGUAGE RESOURCE-NAME[@VERSION]');
|
|
29
|
+
console.log();
|
|
22
30
|
console.log('Options:');
|
|
23
|
-
console.log(' -
|
|
24
|
-
console.log(' -
|
|
31
|
+
console.log(' -l, --language Output programming language [string]');
|
|
32
|
+
console.log(' -o, --outdir Output directory [string] [default: "."]');
|
|
33
|
+
console.log(' --go-module Go module name (required if language is "golang") [string]');
|
|
34
|
+
console.log(' --java-package Java package name (required if language is "java") [string]');
|
|
35
|
+
console.log(' -h, --help Show this usage info [boolean]');
|
|
25
36
|
console.log('');
|
|
26
37
|
console.log('Examples:');
|
|
27
|
-
console.log(
|
|
28
|
-
console.log('
|
|
29
|
-
console.log('
|
|
30
|
-
console.log(
|
|
38
|
+
console.log();
|
|
39
|
+
console.log(' Generates constructs for the latest version AWSQS::EKS::Cluster in TypeScript:');
|
|
40
|
+
console.log(' cdk-import -l typescript AWSQS::EKS::Cluster');
|
|
41
|
+
console.log();
|
|
42
|
+
console.log(' Generates construct in Go for a specific resource version:');
|
|
43
|
+
console.log(' cdk-import -l golang --go-module "github.com/account/repo" AWSQS::EKS::Cluster@1.2.0');
|
|
44
|
+
console.log();
|
|
45
|
+
console.log(' Generates construct in Python under the "src" subfolder instead of working directory:');
|
|
46
|
+
console.log(' cdk-import -l python -o src AWSQS::EKS::Cluster');
|
|
47
|
+
console.log();
|
|
48
|
+
console.log(' Generates construct in Java and identifies the resource type by its ARN:');
|
|
49
|
+
console.log(' cdk-import -l java --java-package "com.acme.myproject" arn:aws:cloudformation:...');
|
|
50
|
+
console.log();
|
|
31
51
|
}
|
|
32
52
|
void (async () => {
|
|
53
|
+
var _a;
|
|
33
54
|
if (args.help || args._.length !== 1) {
|
|
34
55
|
showHelp();
|
|
35
56
|
process.exit(1);
|
|
36
57
|
}
|
|
58
|
+
if (!args.language) {
|
|
59
|
+
throw new Error(`Missing required option: --language. Supported languages: ${languages_1.SUPPORTED_LANGUAGES.join(',')}`);
|
|
60
|
+
}
|
|
61
|
+
if (languages_1.SUPPORTED_LANGUAGES.indexOf(args.language) === -1) {
|
|
62
|
+
throw new Error(`Unsupported language ${args.language}. Supported: ${languages_1.SUPPORTED_LANGUAGES.join(',')}`);
|
|
63
|
+
}
|
|
37
64
|
try {
|
|
38
65
|
const [resourceName, resourceVersion] = args._[0].split('@');
|
|
39
|
-
await (
|
|
66
|
+
const workdir = await fs.mkdtemp(path.join(os.tmpdir(), 'cdk-import'));
|
|
67
|
+
const typeName = await (0, _1.importResourceType)(resourceName, resourceVersion, workdir);
|
|
68
|
+
await (0, languages_1.renderCode)({
|
|
69
|
+
srcdir: workdir,
|
|
70
|
+
language: args.language,
|
|
71
|
+
outdir: (_a = args.outdir) !== null && _a !== void 0 ? _a : '.',
|
|
72
|
+
typeName: typeName,
|
|
73
|
+
goModule: args['go-module'],
|
|
74
|
+
javaPacakge: args['java-package'],
|
|
75
|
+
});
|
|
40
76
|
}
|
|
41
77
|
catch (e) {
|
|
42
78
|
console.log(e);
|
|
43
79
|
process.exit(1);
|
|
44
80
|
}
|
|
45
81
|
})();
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxrQ0FBa0M7QUFDbEMseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3QixxQ0FBcUM7QUFDckMsd0JBQXVDO0FBQ3ZDLDJDQUE4RDtBQUc5RCxNQUFNLElBQUksR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDM0MsTUFBTSxFQUFFO1FBQ04sUUFBUTtRQUNSLFVBQVU7UUFDVixnQkFBZ0I7S0FDakI7SUFDRCxPQUFPLEVBQUU7UUFDUCxNQUFNO0tBQ1A7SUFDRCxLQUFLLEVBQUU7UUFDTCxNQUFNLEVBQUUsR0FBRztRQUNYLElBQUksRUFBRSxHQUFHO1FBQ1QsUUFBUSxFQUFFLEdBQUc7S0FDZDtDQUNGLENBQUMsQ0FBQztBQUVILFNBQVMsUUFBUTtJQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7SUFDaEUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLGtGQUFrRixDQUFDLENBQUM7SUFDaEcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrR0FBa0csQ0FBQyxDQUFDO0lBQ2hILE9BQU8sQ0FBQyxHQUFHLENBQUMsa0ZBQWtGLENBQUMsQ0FBQztJQUNoRyxPQUFPLENBQUMsR0FBRyxDQUFDLGtGQUFrRixDQUFDLENBQUM7SUFDaEcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtRkFBbUYsQ0FBQyxDQUFDO0lBQ2pHLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUN6QixPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLGtGQUFrRixDQUFDLENBQUM7SUFDaEcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrREFBa0QsQ0FBQyxDQUFDO0lBQ2hFLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsOERBQThELENBQUMsQ0FBQztJQUM1RSxPQUFPLENBQUMsR0FBRyxDQUFDLDBGQUEwRixDQUFDLENBQUM7SUFDeEcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5RkFBeUYsQ0FBQyxDQUFDO0lBQ3ZHLE9BQU8sQ0FBQyxHQUFHLENBQUMscURBQXFELENBQUMsQ0FBQztJQUNuRSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLDRFQUE0RSxDQUFDLENBQUM7SUFDMUYsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1RkFBdUYsQ0FBQyxDQUFDO0lBQ3JHLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztBQUNoQixDQUFDO0FBRUQsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFOztJQUNmLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7UUFDcEMsUUFBUSxFQUFFLENBQUM7UUFDWCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0tBQ2pCO0lBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7UUFDbEIsTUFBTSxJQUFJLEtBQUssQ0FBQyw2REFBNkQsK0JBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUMvRztJQUVELElBQUksK0JBQW1CLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtRQUNyRCxNQUFNLElBQUksS0FBSyxDQUFDLHdCQUF3QixJQUFJLENBQUMsUUFBUSxnQkFBZ0IsK0JBQW1CLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztLQUN2RztJQUVELElBQUk7UUFDRixNQUFNLENBQUMsWUFBWSxFQUFFLGVBQWUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdELE1BQU0sT0FBTyxHQUFHLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ3ZFLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSxxQkFBa0IsRUFBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBQ2xGLE1BQU0sSUFBQSxzQkFBVSxFQUFDO1lBQ2YsTUFBTSxFQUFFLE9BQU87WUFDZixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsTUFBTSxFQUFFLE1BQUEsSUFBSSxDQUFDLE1BQU0sbUNBQUksR0FBRztZQUMxQixRQUFRLEVBQUUsUUFBUTtZQUNsQixRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQztZQUMzQixXQUFXLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQztTQUNsQyxDQUFDLENBQUM7S0FDSjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakI7QUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIG1pbmltaXN0IGZyb20gJ21pbmltaXN0JztcbmltcG9ydCB7IGltcG9ydFJlc291cmNlVHlwZSB9IGZyb20gJy4nO1xuaW1wb3J0IHsgcmVuZGVyQ29kZSwgU1VQUE9SVEVEX0xBTkdVQUdFUyB9IGZyb20gJy4vbGFuZ3VhZ2VzJztcblxuXG5jb25zdCBhcmdzID0gbWluaW1pc3QocHJvY2Vzcy5hcmd2LnNsaWNlKDIpLCB7XG4gIHN0cmluZzogW1xuICAgICdvdXRkaXInLFxuICAgICdsYW5ndWFnZScsXG4gICAgJ2dvLW1vZHVsZS1uYW1lJyxcbiAgXSxcbiAgYm9vbGVhbjogW1xuICAgICdoZWxwJyxcbiAgXSxcbiAgYWxpYXM6IHtcbiAgICBvdXRkaXI6ICdvJyxcbiAgICBoZWxwOiAnaCcsXG4gICAgbGFuZ3VhZ2U6ICdsJyxcbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBzaG93SGVscCgpIHtcbiAgY29uc29sZS5sb2coJycpO1xuICBjb25zb2xlLmxvZygnVXNhZ2U6Jyk7XG4gIGNvbnNvbGUubG9nKCcgIGNkay1pbXBvcnQgLWwgTEFOR1VBR0UgUkVTT1VSQ0UtTkFNRVtAVkVSU0lPTl0nKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coJ09wdGlvbnM6Jyk7XG4gIGNvbnNvbGUubG9nKCcgIC1sLCAtLWxhbmd1YWdlICAgICBPdXRwdXQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgICAgICAgICAgICAgICAgICAgICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAtbywgLS1vdXRkaXIgICAgICAgT3V0cHV0IGRpcmVjdG9yeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0cmluZ10gIFtkZWZhdWx0OiBcIi5cIl0nKTtcbiAgY29uc29sZS5sb2coJyAgLS1nby1tb2R1bGUgICAgICAgIEdvIG1vZHVsZSBuYW1lIChyZXF1aXJlZCBpZiBsYW5ndWFnZSBpcyBcImdvbGFuZ1wiKSAgW3N0cmluZ10nKTtcbiAgY29uc29sZS5sb2coJyAgLS1qYXZhLXBhY2thZ2UgICAgIEphdmEgcGFja2FnZSBuYW1lIChyZXF1aXJlZCBpZiBsYW5ndWFnZSBpcyBcImphdmFcIikgW3N0cmluZ10nKTtcbiAgY29uc29sZS5sb2coJyAgLWgsIC0taGVscCAgICAgICAgIFNob3cgdGhpcyB1c2FnZSBpbmZvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtib29sZWFuXScpO1xuICBjb25zb2xlLmxvZygnJyk7XG4gIGNvbnNvbGUubG9nKCdFeGFtcGxlczonKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coJyAgR2VuZXJhdGVzIGNvbnN0cnVjdHMgZm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBBV1NRUzo6RUtTOjpDbHVzdGVyIGluIFR5cGVTY3JpcHQ6Jyk7XG4gIGNvbnNvbGUubG9nKCcgICAgY2RrLWltcG9ydCAtbCB0eXBlc2NyaXB0IEFXU1FTOjpFS1M6OkNsdXN0ZXInKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coJyAgR2VuZXJhdGVzIGNvbnN0cnVjdCBpbiBHbyBmb3IgYSBzcGVjaWZpYyByZXNvdXJjZSB2ZXJzaW9uOicpO1xuICBjb25zb2xlLmxvZygnICAgIGNkay1pbXBvcnQgLWwgZ29sYW5nIC0tZ28tbW9kdWxlIFwiZ2l0aHViLmNvbS9hY2NvdW50L3JlcG9cIiBBV1NRUzo6RUtTOjpDbHVzdGVyQDEuMi4wJyk7XG4gIGNvbnNvbGUubG9nKCk7XG4gIGNvbnNvbGUubG9nKCcgIEdlbmVyYXRlcyBjb25zdHJ1Y3QgaW4gUHl0aG9uIHVuZGVyIHRoZSBcInNyY1wiIHN1YmZvbGRlciBpbnN0ZWFkIG9mIHdvcmtpbmcgZGlyZWN0b3J5OicpO1xuICBjb25zb2xlLmxvZygnICAgIGNkay1pbXBvcnQgLWwgcHl0aG9uIC1vIHNyYyBBV1NRUzo6RUtTOjpDbHVzdGVyJyk7XG4gIGNvbnNvbGUubG9nKCk7XG4gIGNvbnNvbGUubG9nKCcgIEdlbmVyYXRlcyBjb25zdHJ1Y3QgaW4gSmF2YSBhbmQgaWRlbnRpZmllcyB0aGUgcmVzb3VyY2UgdHlwZSBieSBpdHMgQVJOOicpO1xuICBjb25zb2xlLmxvZygnICAgIGNkay1pbXBvcnQgLWwgamF2YSAtLWphdmEtcGFja2FnZSBcImNvbS5hY21lLm15cHJvamVjdFwiIGFybjphd3M6Y2xvdWRmb3JtYXRpb246Li4uJyk7XG4gIGNvbnNvbGUubG9nKCk7XG59XG5cbnZvaWQgKGFzeW5jICgpID0+IHtcbiAgaWYgKGFyZ3MuaGVscCB8fCBhcmdzLl8ubGVuZ3RoICE9PSAxKSB7XG4gICAgc2hvd0hlbHAoKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cblxuICBpZiAoIWFyZ3MubGFuZ3VhZ2UpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgcmVxdWlyZWQgb3B0aW9uOiAtLWxhbmd1YWdlLiBTdXBwb3J0ZWQgbGFuZ3VhZ2VzOiAke1NVUFBPUlRFRF9MQU5HVUFHRVMuam9pbignLCcpfWApO1xuICB9XG5cbiAgaWYgKFNVUFBPUlRFRF9MQU5HVUFHRVMuaW5kZXhPZihhcmdzLmxhbmd1YWdlKSA9PT0gLTEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGxhbmd1YWdlICR7YXJncy5sYW5ndWFnZX0uIFN1cHBvcnRlZDogJHtTVVBQT1JURURfTEFOR1VBR0VTLmpvaW4oJywnKX1gKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgW3Jlc291cmNlTmFtZSwgcmVzb3VyY2VWZXJzaW9uXSA9IGFyZ3MuX1swXS5zcGxpdCgnQCcpO1xuICAgIGNvbnN0IHdvcmtkaXIgPSBhd2FpdCBmcy5ta2R0ZW1wKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ2Nkay1pbXBvcnQnKSk7XG4gICAgY29uc3QgdHlwZU5hbWUgPSBhd2FpdCBpbXBvcnRSZXNvdXJjZVR5cGUocmVzb3VyY2VOYW1lLCByZXNvdXJjZVZlcnNpb24sIHdvcmtkaXIpO1xuICAgIGF3YWl0IHJlbmRlckNvZGUoe1xuICAgICAgc3JjZGlyOiB3b3JrZGlyLFxuICAgICAgbGFuZ3VhZ2U6IGFyZ3MubGFuZ3VhZ2UsXG4gICAgICBvdXRkaXI6IGFyZ3Mub3V0ZGlyID8/ICcuJyxcbiAgICAgIHR5cGVOYW1lOiB0eXBlTmFtZSxcbiAgICAgIGdvTW9kdWxlOiBhcmdzWydnby1tb2R1bGUnXSxcbiAgICAgIGphdmFQYWNha2dlOiBhcmdzWydqYXZhLXBhY2thZ2UnXSxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUubG9nKGUpO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfVxufSkoKTtcbiJdfQ==
|
package/lib/index.d.ts
CHANGED
|
@@ -4,5 +4,6 @@
|
|
|
4
4
|
* @param resourceName the name or ARN of the resource type
|
|
5
5
|
* @param resourceVersion the version of the resource type
|
|
6
6
|
* @param outdir the out folder to use (defaults to the current directory)
|
|
7
|
+
* @returns name of the resource type
|
|
7
8
|
*/
|
|
8
|
-
export declare function importResourceType(resourceName: string, resourceVersion: string, outdir?: string): Promise<
|
|
9
|
+
export declare function importResourceType(resourceName: string, resourceVersion: string, outdir?: string): Promise<string>;
|
package/lib/index.js
CHANGED
|
@@ -5,21 +5,22 @@ const fs = require("fs");
|
|
|
5
5
|
const path = require("path");
|
|
6
6
|
const cfn_registry_1 = require("./cfn-registry");
|
|
7
7
|
const cfn_resource_generator_1 = require("./cfn-resource-generator");
|
|
8
|
-
const util_1 = require("./util");
|
|
9
8
|
/**
|
|
10
9
|
* Entry point to import CFN resource types
|
|
11
10
|
*
|
|
12
11
|
* @param resourceName the name or ARN of the resource type
|
|
13
12
|
* @param resourceVersion the version of the resource type
|
|
14
13
|
* @param outdir the out folder to use (defaults to the current directory)
|
|
14
|
+
* @returns name of the resource type
|
|
15
15
|
*/
|
|
16
16
|
async function importResourceType(resourceName, resourceVersion, outdir = '.') {
|
|
17
17
|
const type = await (0, cfn_registry_1.describeResourceType)(resourceName, resourceVersion);
|
|
18
18
|
const typeSchema = JSON.parse(type.Schema);
|
|
19
19
|
const gen = new cfn_resource_generator_1.CfnResourceGenerator(type.TypeName, type, typeSchema);
|
|
20
20
|
fs.mkdirSync(outdir, { recursive: true });
|
|
21
|
-
fs.writeFileSync(path.join(outdir,
|
|
21
|
+
fs.writeFileSync(path.join(outdir, 'index.ts'), gen.render());
|
|
22
|
+
return type.TypeName;
|
|
22
23
|
}
|
|
23
24
|
exports.importResourceType = importResourceType;
|
|
24
25
|
;
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUJBQXlCO0FBQ3pCLDZCQUE2QjtBQUM3QixpREFBc0Q7QUFDdEQscUVBQWdFO0FBRWhFOzs7Ozs7O0dBT0c7QUFDSSxLQUFLLFVBQVUsa0JBQWtCLENBQUMsWUFBb0IsRUFBRSxlQUF1QixFQUFFLFNBQWlCLEdBQUc7SUFDMUcsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFBLG1DQUFvQixFQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsQ0FBQztJQUV2RSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFPLENBQUMsQ0FBQztJQUU1QyxNQUFNLEdBQUcsR0FBRyxJQUFJLDZDQUFvQixDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBRXRFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFFMUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUU5RCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7QUFDdkIsQ0FBQztBQVpELGdEQVlDO0FBQUEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBkZXNjcmliZVJlc291cmNlVHlwZSB9IGZyb20gJy4vY2ZuLXJlZ2lzdHJ5JztcbmltcG9ydCB7IENmblJlc291cmNlR2VuZXJhdG9yIH0gZnJvbSAnLi9jZm4tcmVzb3VyY2UtZ2VuZXJhdG9yJztcblxuLyoqXG4gKiBFbnRyeSBwb2ludCB0byBpbXBvcnQgQ0ZOIHJlc291cmNlIHR5cGVzXG4gKlxuICogQHBhcmFtIHJlc291cmNlTmFtZSB0aGUgbmFtZSBvciBBUk4gb2YgdGhlIHJlc291cmNlIHR5cGVcbiAqIEBwYXJhbSByZXNvdXJjZVZlcnNpb24gdGhlIHZlcnNpb24gb2YgdGhlIHJlc291cmNlIHR5cGVcbiAqIEBwYXJhbSBvdXRkaXIgdGhlIG91dCBmb2xkZXIgdG8gdXNlIChkZWZhdWx0cyB0byB0aGUgY3VycmVudCBkaXJlY3RvcnkpXG4gKiBAcmV0dXJucyBuYW1lIG9mIHRoZSByZXNvdXJjZSB0eXBlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbXBvcnRSZXNvdXJjZVR5cGUocmVzb3VyY2VOYW1lOiBzdHJpbmcsIHJlc291cmNlVmVyc2lvbjogc3RyaW5nLCBvdXRkaXI6IHN0cmluZyA9ICcuJyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIGNvbnN0IHR5cGUgPSBhd2FpdCBkZXNjcmliZVJlc291cmNlVHlwZShyZXNvdXJjZU5hbWUsIHJlc291cmNlVmVyc2lvbik7XG5cbiAgY29uc3QgdHlwZVNjaGVtYSA9IEpTT04ucGFyc2UodHlwZS5TY2hlbWEhKTtcblxuICBjb25zdCBnZW4gPSBuZXcgQ2ZuUmVzb3VyY2VHZW5lcmF0b3IodHlwZS5UeXBlTmFtZSwgdHlwZSwgdHlwZVNjaGVtYSk7XG5cbiAgZnMubWtkaXJTeW5jKG91dGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG5cbiAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4ob3V0ZGlyLCAnaW5kZXgudHMnKSwgZ2VuLnJlbmRlcigpKTtcblxuICByZXR1cm4gdHlwZS5UeXBlTmFtZTtcbn07XG4iXX0=
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const SUPPORTED_LANGUAGES: string[];
|
|
2
|
+
export interface RenderCodeOptions {
|
|
3
|
+
readonly srcdir: string;
|
|
4
|
+
readonly outdir: string;
|
|
5
|
+
readonly language: string;
|
|
6
|
+
readonly typeName: string;
|
|
7
|
+
/**
|
|
8
|
+
* The name of the Go module to use for the generated code. Required if `language` is `golang`.
|
|
9
|
+
*/
|
|
10
|
+
readonly goModule?: string;
|
|
11
|
+
/**
|
|
12
|
+
* The name of the Java package to use for the generated code. Required if `language` is `java`.
|
|
13
|
+
*/
|
|
14
|
+
readonly javaPacakge?: string;
|
|
15
|
+
}
|
|
16
|
+
export declare function renderCode(options: RenderCodeOptions): Promise<void>;
|
package/lib/languages.js
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.renderCode = exports.SUPPORTED_LANGUAGES = void 0;
|
|
4
|
+
const fs = require("fs/promises");
|
|
5
|
+
const path = require("path");
|
|
6
|
+
const caseutil = require("case");
|
|
7
|
+
const jsii_srcmak_1 = require("jsii-srcmak");
|
|
8
|
+
const cdkDeps = [
|
|
9
|
+
'@aws-cdk/cloud-assembly-schema',
|
|
10
|
+
'@aws-cdk/core',
|
|
11
|
+
'@aws-cdk/cx-api',
|
|
12
|
+
'@aws-cdk/region-info',
|
|
13
|
+
'constructs',
|
|
14
|
+
];
|
|
15
|
+
exports.SUPPORTED_LANGUAGES = [
|
|
16
|
+
'typescript',
|
|
17
|
+
'python',
|
|
18
|
+
'java',
|
|
19
|
+
'csharp',
|
|
20
|
+
'golang',
|
|
21
|
+
];
|
|
22
|
+
async function renderCode(options) {
|
|
23
|
+
const srcmakopts = {
|
|
24
|
+
deps: cdkDeps.map(x => path.dirname(require.resolve(`${x}/package.json`))),
|
|
25
|
+
};
|
|
26
|
+
switch (options.language) {
|
|
27
|
+
case 'typescript':
|
|
28
|
+
await fs.mkdir(options.outdir, { recursive: true });
|
|
29
|
+
return fs.copyFile(path.join(options.srcdir, 'index.ts'), path.join(options.outdir, `${caseutil.header(options.typeName).toLowerCase()}.ts`));
|
|
30
|
+
case 'python':
|
|
31
|
+
srcmakopts.python = {
|
|
32
|
+
outdir: options.outdir,
|
|
33
|
+
moduleName: caseutil.snake(options.typeName),
|
|
34
|
+
};
|
|
35
|
+
break;
|
|
36
|
+
case 'csharp':
|
|
37
|
+
srcmakopts.csharp = {
|
|
38
|
+
outdir: options.outdir,
|
|
39
|
+
namespace: options.typeName, // already AWS::Foo::Bar
|
|
40
|
+
};
|
|
41
|
+
break;
|
|
42
|
+
case 'java':
|
|
43
|
+
if (!options.javaPacakge) {
|
|
44
|
+
throw new Error('Java package name (`--java-package`) must be specified (e.g. "com.foo.bar.my.resource")');
|
|
45
|
+
}
|
|
46
|
+
srcmakopts.java = {
|
|
47
|
+
outdir: options.outdir,
|
|
48
|
+
package: options.javaPacakge,
|
|
49
|
+
};
|
|
50
|
+
break;
|
|
51
|
+
case 'golang':
|
|
52
|
+
if (!options.goModule) {
|
|
53
|
+
throw new Error('Go module name (--go-module) is required (e.g. "github.com/foo/bar")');
|
|
54
|
+
}
|
|
55
|
+
srcmakopts.golang = {
|
|
56
|
+
outdir: options.outdir,
|
|
57
|
+
packageName: caseutil.lower(options.typeName, '-'),
|
|
58
|
+
moduleName: options.goModule,
|
|
59
|
+
};
|
|
60
|
+
break;
|
|
61
|
+
default:
|
|
62
|
+
throw new Error(`Unsupported language: ${options.language}`);
|
|
63
|
+
}
|
|
64
|
+
await (0, jsii_srcmak_1.srcmak)(options.srcdir, srcmakopts);
|
|
65
|
+
}
|
|
66
|
+
exports.renderCode = renderCode;
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xhbmd1YWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxrQ0FBa0M7QUFDbEMsNkJBQTZCO0FBQzdCLGlDQUFpQztBQUNqQyw2Q0FBOEM7QUFFOUMsTUFBTSxPQUFPLEdBQUc7SUFDZCxnQ0FBZ0M7SUFDaEMsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixzQkFBc0I7SUFDdEIsWUFBWTtDQUNiLENBQUM7QUFFVyxRQUFBLG1CQUFtQixHQUFHO0lBQ2pDLFlBQVk7SUFDWixRQUFRO0lBQ1IsTUFBTTtJQUNOLFFBQVE7SUFDUixRQUFRO0NBQ1QsQ0FBQztBQW1CSyxLQUFLLFVBQVUsVUFBVSxDQUFDLE9BQTBCO0lBQ3pELE1BQU0sVUFBVSxHQUFZO1FBQzFCLElBQUksRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO0tBQzNFLENBQUM7SUFFRixRQUFRLE9BQU8sQ0FBQyxRQUFRLEVBQUU7UUFDeEIsS0FBSyxZQUFZO1lBQ2YsTUFBTSxFQUFFLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUNwRCxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBRWhKLEtBQUssUUFBUTtZQUNYLFVBQVUsQ0FBQyxNQUFNLEdBQUc7Z0JBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtnQkFDdEIsVUFBVSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQzthQUM3QyxDQUFDO1lBQ0YsTUFBTTtRQUVSLEtBQUssUUFBUTtZQUNYLFVBQVUsQ0FBQyxNQUFNLEdBQUc7Z0JBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtnQkFDdEIsU0FBUyxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsd0JBQXdCO2FBQ3RELENBQUM7WUFDRixNQUFNO1FBRVIsS0FBSyxNQUFNO1lBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7Z0JBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUZBQXlGLENBQUMsQ0FBQzthQUM1RztZQUVELFVBQVUsQ0FBQyxJQUFJLEdBQUc7Z0JBQ2hCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtnQkFDdEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2FBQzdCLENBQUM7WUFDRixNQUFNO1FBRVIsS0FBSyxRQUFRO1lBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7Z0JBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0VBQXNFLENBQUMsQ0FBQzthQUN6RjtZQUVELFVBQVUsQ0FBQyxNQUFNLEdBQUc7Z0JBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtnQkFDdEIsV0FBVyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUM7Z0JBQ2xELFVBQVUsRUFBRSxPQUFPLENBQUMsUUFBUTthQUM3QixDQUFDO1lBQ0YsTUFBTTtRQUVSO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7S0FDaEU7SUFFRCxNQUFNLElBQUEsb0JBQU0sRUFBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFwREQsZ0NBb0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGNhc2V1dGlsIGZyb20gJ2Nhc2UnO1xuaW1wb3J0IHsgc3JjbWFrLCBPcHRpb25zIH0gZnJvbSAnanNpaS1zcmNtYWsnO1xuXG5jb25zdCBjZGtEZXBzID0gW1xuICAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJyxcbiAgJ0Bhd3MtY2RrL2NvcmUnLFxuICAnQGF3cy1jZGsvY3gtYXBpJyxcbiAgJ0Bhd3MtY2RrL3JlZ2lvbi1pbmZvJyxcbiAgJ2NvbnN0cnVjdHMnLFxuXTtcblxuZXhwb3J0IGNvbnN0IFNVUFBPUlRFRF9MQU5HVUFHRVMgPSBbXG4gICd0eXBlc2NyaXB0JyxcbiAgJ3B5dGhvbicsXG4gICdqYXZhJyxcbiAgJ2NzaGFycCcsXG4gICdnb2xhbmcnLFxuXTtcblxuZXhwb3J0IGludGVyZmFjZSBSZW5kZXJDb2RlT3B0aW9ucyB7XG4gIHJlYWRvbmx5IHNyY2Rpcjogc3RyaW5nO1xuICByZWFkb25seSBvdXRkaXI6IHN0cmluZztcbiAgcmVhZG9ubHkgbGFuZ3VhZ2U6IHN0cmluZztcbiAgcmVhZG9ubHkgdHlwZU5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEdvIG1vZHVsZSB0byB1c2UgZm9yIHRoZSBnZW5lcmF0ZWQgY29kZS4gUmVxdWlyZWQgaWYgYGxhbmd1YWdlYCBpcyBgZ29sYW5nYC5cbiAgICovXG4gIHJlYWRvbmx5IGdvTW9kdWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgSmF2YSBwYWNrYWdlIHRvIHVzZSBmb3IgdGhlIGdlbmVyYXRlZCBjb2RlLiBSZXF1aXJlZCBpZiBgbGFuZ3VhZ2VgIGlzIGBqYXZhYC5cbiAgICovXG4gIHJlYWRvbmx5IGphdmFQYWNha2dlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVuZGVyQ29kZShvcHRpb25zOiBSZW5kZXJDb2RlT3B0aW9ucykge1xuICBjb25zdCBzcmNtYWtvcHRzOiBPcHRpb25zID0ge1xuICAgIGRlcHM6IGNka0RlcHMubWFwKHggPT4gcGF0aC5kaXJuYW1lKHJlcXVpcmUucmVzb2x2ZShgJHt4fS9wYWNrYWdlLmpzb25gKSkpLFxuICB9O1xuXG4gIHN3aXRjaCAob3B0aW9ucy5sYW5ndWFnZSkge1xuICAgIGNhc2UgJ3R5cGVzY3JpcHQnOlxuICAgICAgYXdhaXQgZnMubWtkaXIob3B0aW9ucy5vdXRkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICAgICAgcmV0dXJuIGZzLmNvcHlGaWxlKHBhdGguam9pbihvcHRpb25zLnNyY2RpciwgJ2luZGV4LnRzJyksIHBhdGguam9pbihvcHRpb25zLm91dGRpciwgYCR7Y2FzZXV0aWwuaGVhZGVyKG9wdGlvbnMudHlwZU5hbWUpLnRvTG93ZXJDYXNlKCl9LnRzYCkpO1xuXG4gICAgY2FzZSAncHl0aG9uJzpcbiAgICAgIHNyY21ha29wdHMucHl0aG9uID0ge1xuICAgICAgICBvdXRkaXI6IG9wdGlvbnMub3V0ZGlyLFxuICAgICAgICBtb2R1bGVOYW1lOiBjYXNldXRpbC5zbmFrZShvcHRpb25zLnR5cGVOYW1lKSxcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2NzaGFycCc6XG4gICAgICBzcmNtYWtvcHRzLmNzaGFycCA9IHtcbiAgICAgICAgb3V0ZGlyOiBvcHRpb25zLm91dGRpcixcbiAgICAgICAgbmFtZXNwYWNlOiBvcHRpb25zLnR5cGVOYW1lLCAvLyBhbHJlYWR5IEFXUzo6Rm9vOjpCYXJcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2phdmEnOlxuICAgICAgaWYgKCFvcHRpb25zLmphdmFQYWNha2dlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSmF2YSBwYWNrYWdlIG5hbWUgKGAtLWphdmEtcGFja2FnZWApIG11c3QgYmUgc3BlY2lmaWVkIChlLmcuIFwiY29tLmZvby5iYXIubXkucmVzb3VyY2VcIiknKTtcbiAgICAgIH1cblxuICAgICAgc3JjbWFrb3B0cy5qYXZhID0ge1xuICAgICAgICBvdXRkaXI6IG9wdGlvbnMub3V0ZGlyLFxuICAgICAgICBwYWNrYWdlOiBvcHRpb25zLmphdmFQYWNha2dlLFxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZ29sYW5nJzpcbiAgICAgIGlmICghb3B0aW9ucy5nb01vZHVsZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dvIG1vZHVsZSBuYW1lICgtLWdvLW1vZHVsZSkgaXMgcmVxdWlyZWQgKGUuZy4gXCJnaXRodWIuY29tL2Zvby9iYXJcIiknKTtcbiAgICAgIH1cblxuICAgICAgc3JjbWFrb3B0cy5nb2xhbmcgPSB7XG4gICAgICAgIG91dGRpcjogb3B0aW9ucy5vdXRkaXIsXG4gICAgICAgIHBhY2thZ2VOYW1lOiBjYXNldXRpbC5sb3dlcihvcHRpb25zLnR5cGVOYW1lLCAnLScpLFxuICAgICAgICBtb2R1bGVOYW1lOiBvcHRpb25zLmdvTW9kdWxlLFxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgbGFuZ3VhZ2U6ICR7b3B0aW9ucy5sYW5ndWFnZX1gKTtcbiAgfVxuXG4gIGF3YWl0IHNyY21hayhvcHRpb25zLnNyY2Rpciwgc3JjbWFrb3B0cyk7XG59XG4iXX0=
|
package/lib/util.d.ts
CHANGED
|
@@ -5,10 +5,3 @@
|
|
|
5
5
|
* @returns the name to use as class name
|
|
6
6
|
*/
|
|
7
7
|
export declare function sanitizeTypeName(typeName: string): string;
|
|
8
|
-
/**
|
|
9
|
-
* convert the type name to a file name by kebap-casing and removing `::`
|
|
10
|
-
*
|
|
11
|
-
* @param typeName the name of the resource type
|
|
12
|
-
* @returns the name to use as file name
|
|
13
|
-
*/
|
|
14
|
-
export declare function sanitizeFileName(typeName: string): string;
|
package/lib/util.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.sanitizeTypeName = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* convert the type name to a TypeScript class name by camel-casing and removing `::`
|
|
6
6
|
*
|
|
@@ -13,14 +13,4 @@ function sanitizeTypeName(typeName) {
|
|
|
13
13
|
return lastPart.substr(0, 1).toUpperCase() + lastPart.substr(1).toLowerCase();
|
|
14
14
|
}
|
|
15
15
|
exports.sanitizeTypeName = sanitizeTypeName;
|
|
16
|
-
|
|
17
|
-
* convert the type name to a file name by kebap-casing and removing `::`
|
|
18
|
-
*
|
|
19
|
-
* @param typeName the name of the resource type
|
|
20
|
-
* @returns the name to use as file name
|
|
21
|
-
*/
|
|
22
|
-
function sanitizeFileName(typeName) {
|
|
23
|
-
return `${typeName.replace(/::/g, '-').toLowerCase()}.ts`;
|
|
24
|
-
}
|
|
25
|
-
exports.sanitizeFileName = sanitizeFileName;
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBOzs7OztHQUtHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsUUFBZ0I7SUFDL0MsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6QyxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDaEYsQ0FBQztBQUpELDRDQUlDO0FBRUQ7Ozs7O0dBS0c7QUFDSCxTQUFnQixnQkFBZ0IsQ0FBQyxRQUFnQjtJQUMvQyxPQUFPLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQztBQUM1RCxDQUFDO0FBRkQsNENBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJcbi8qKlxuICogY29udmVydCB0aGUgdHlwZSBuYW1lIHRvIGEgVHlwZVNjcmlwdCBjbGFzcyBuYW1lIGJ5IGNhbWVsLWNhc2luZyBhbmQgcmVtb3ZpbmcgYDo6YFxuICpcbiAqIEBwYXJhbSB0eXBlTmFtZSB0aGUgbmFtZSBvZiB0aGUgcmVzb3VyY2UgdHlwZVxuICogQHJldHVybnMgdGhlIG5hbWUgdG8gdXNlIGFzIGNsYXNzIG5hbWVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHNhbml0aXplVHlwZU5hbWUodHlwZU5hbWU6IHN0cmluZykge1xuICBjb25zdCBwYXJ0cyA9IHR5cGVOYW1lLnNwbGl0KCc6OicpO1xuICBjb25zdCBsYXN0UGFydCA9IHBhcnRzW3BhcnRzLmxlbmd0aCAtIDFdO1xuICByZXR1cm4gbGFzdFBhcnQuc3Vic3RyKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyBsYXN0UGFydC5zdWJzdHIoMSkudG9Mb3dlckNhc2UoKTtcbn1cblxuLyoqXG4gKiBjb252ZXJ0IHRoZSB0eXBlIG5hbWUgdG8gYSBmaWxlIG5hbWUgYnkga2ViYXAtY2FzaW5nIGFuZCByZW1vdmluZyBgOjpgXG4gKlxuICogQHBhcmFtIHR5cGVOYW1lIHRoZSBuYW1lIG9mIHRoZSByZXNvdXJjZSB0eXBlXG4gKiBAcmV0dXJucyB0aGUgbmFtZSB0byB1c2UgYXMgZmlsZSBuYW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZUZpbGVOYW1lKHR5cGVOYW1lOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGAke3R5cGVOYW1lLnJlcGxhY2UoLzo6L2csICctJykudG9Mb3dlckNhc2UoKX0udHNgO1xufSJdfQ==
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy91dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBOzs7OztHQUtHO0FBQ0gsU0FBZ0IsZ0JBQWdCLENBQUMsUUFBZ0I7SUFDL0MsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN6QyxPQUFPLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7QUFDaEYsQ0FBQztBQUpELDRDQUlDIiwic291cmNlc0NvbnRlbnQiOlsiXG4vKipcbiAqIGNvbnZlcnQgdGhlIHR5cGUgbmFtZSB0byBhIFR5cGVTY3JpcHQgY2xhc3MgbmFtZSBieSBjYW1lbC1jYXNpbmcgYW5kIHJlbW92aW5nIGA6OmBcbiAqXG4gKiBAcGFyYW0gdHlwZU5hbWUgdGhlIG5hbWUgb2YgdGhlIHJlc291cmNlIHR5cGVcbiAqIEByZXR1cm5zIHRoZSBuYW1lIHRvIHVzZSBhcyBjbGFzcyBuYW1lXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBzYW5pdGl6ZVR5cGVOYW1lKHR5cGVOYW1lOiBzdHJpbmcpIHtcbiAgY29uc3QgcGFydHMgPSB0eXBlTmFtZS5zcGxpdCgnOjonKTtcbiAgY29uc3QgbGFzdFBhcnQgPSBwYXJ0c1twYXJ0cy5sZW5ndGggLSAxXTtcbiAgcmV0dXJuIGxhc3RQYXJ0LnN1YnN0cigwLCAxKS50b1VwcGVyQ2FzZSgpICsgbGFzdFBhcnQuc3Vic3RyKDEpLnRvTG93ZXJDYXNlKCk7XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -15,21 +15,21 @@
|
|
|
15
15
|
"bump": "npx projen bump",
|
|
16
16
|
"unbump": "npx projen unbump",
|
|
17
17
|
"publish:github": "npx projen publish:github",
|
|
18
|
-
"upgrade": "npx projen upgrade",
|
|
19
18
|
"default": "npx projen default",
|
|
20
19
|
"watch": "npx projen watch",
|
|
21
20
|
"package": "npx projen package",
|
|
22
21
|
"eslint": "npx projen eslint",
|
|
23
22
|
"publish:npm": "npx projen publish:npm",
|
|
24
23
|
"release": "npx projen release",
|
|
24
|
+
"upgrade": "npx projen upgrade",
|
|
25
25
|
"projen": "npx projen"
|
|
26
26
|
},
|
|
27
27
|
"devDependencies": {
|
|
28
28
|
"@aws-cdk/core": "^1.125.0",
|
|
29
29
|
"@types/jest": "^26.0.24",
|
|
30
30
|
"@types/node": "^14.17.0",
|
|
31
|
-
"@typescript-eslint/eslint-plugin": "^4.
|
|
32
|
-
"@typescript-eslint/parser": "^4.
|
|
31
|
+
"@typescript-eslint/eslint-plugin": "^4.33.0",
|
|
32
|
+
"@typescript-eslint/parser": "^4.33.0",
|
|
33
33
|
"aws-sdk-mock": "^5.4.0",
|
|
34
34
|
"eslint": "^7.32.0",
|
|
35
35
|
"eslint-import-resolver-node": "^0.3.6",
|
|
@@ -39,15 +39,16 @@
|
|
|
39
39
|
"jest-junit": "^12",
|
|
40
40
|
"json-schema": "^0.3.0",
|
|
41
41
|
"npm-check-updates": "^11",
|
|
42
|
-
"projen": "^0.
|
|
42
|
+
"projen": "^0.29.5",
|
|
43
43
|
"standard-version": "^9",
|
|
44
44
|
"ts-jest": "^27.0.5",
|
|
45
45
|
"ts-node": "^10.2.1",
|
|
46
46
|
"typescript": "^4.4.3"
|
|
47
47
|
},
|
|
48
48
|
"dependencies": {
|
|
49
|
-
"aws-sdk": "^2.
|
|
50
|
-
"
|
|
49
|
+
"aws-sdk": "^2.1000.0",
|
|
50
|
+
"case": "^1.6.3",
|
|
51
|
+
"jsii-srcmak": "^0.1.357",
|
|
51
52
|
"json2jsii": "^0.2.33",
|
|
52
53
|
"minimist": "^1.2.5",
|
|
53
54
|
"proxy-agent": "^5.0.0"
|
|
@@ -55,7 +56,7 @@
|
|
|
55
56
|
"bundledDependencies": [],
|
|
56
57
|
"main": "lib/index.js",
|
|
57
58
|
"license": "Apache-2.0",
|
|
58
|
-
"version": "0.0
|
|
59
|
+
"version": "0.1.0",
|
|
59
60
|
"jest": {
|
|
60
61
|
"testMatch": [
|
|
61
62
|
"**/__tests__/**/*.ts?(x)",
|