cdk-import 0.2.183 → 0.2.186
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/README.md +14 -6
- package/lib/cfn-resource-generator.d.ts +1 -1
- package/lib/cfn-resource-generator.js +4 -3
- package/lib/cli.js +30 -7
- package/lib/index.d.ts +8 -4
- package/lib/index.js +19 -10
- package/lib/type-info.d.ts +14 -4
- package/lib/type-info.js +1 -1
- package/package.json +5 -5
package/README.md
CHANGED
|
@@ -15,8 +15,8 @@ npm install -g cdk-import
|
|
|
15
15
|
|
|
16
16
|
## Usage
|
|
17
17
|
|
|
18
|
-
There are currently two sources that resources can be generated from. The subcommand
|
|
19
|
-
`cfn` is used to import from CloudFormation Registry,
|
|
18
|
+
There are currently two sources that resources can be generated from. The subcommand
|
|
19
|
+
`cfn` is used to import from CloudFormation Registry,
|
|
20
20
|
`sc` is used to import AWS Service Catalog products.
|
|
21
21
|
There are shared general options for output directories and target language.
|
|
22
22
|
You will need `AWS_REGION` variable configured in your environment.
|
|
@@ -44,6 +44,7 @@ Usage:
|
|
|
44
44
|
Options:
|
|
45
45
|
-l, --language Output programming language [string]
|
|
46
46
|
-o, --outdir Output directory [string] [default: "."]
|
|
47
|
+
-s, --schema-file Read schema from a file (instead of CFN registry) [string]
|
|
47
48
|
--go-module Module name (required if language is "golang") [string]
|
|
48
49
|
--java-package Java package name (required if language is "java") [string]
|
|
49
50
|
--csharp-namespace C# namespace (optional if language is "csharp", [string]
|
|
@@ -57,6 +58,13 @@ languages: `typescript`, `java`, `python`, `csharp` and `golang`.
|
|
|
57
58
|
Output will be generated relative to `--outdir` which defaults to the current
|
|
58
59
|
working directory.
|
|
59
60
|
|
|
61
|
+
By default, the resource schema will be read from the AWS CloudFormation Registry,
|
|
62
|
+
using the current AWS credentials (configured using environment variables). If
|
|
63
|
+
you have a copy of the JSON schema that describes the resource properties
|
|
64
|
+
in a local file, you can pass `--schema-file` to specify the file. This will
|
|
65
|
+
bypass the query to the CloudFormation Registry. It expects the exact same
|
|
66
|
+
`Schema` contents as returned by `DescribeType`.
|
|
67
|
+
|
|
60
68
|
The following section describes language-specific behavior.
|
|
61
69
|
|
|
62
70
|
### Java
|
|
@@ -86,7 +94,7 @@ is based on the name of the resource (`AWSQS::EKS::Cluster` =>
|
|
|
86
94
|
For example:
|
|
87
95
|
|
|
88
96
|
```shell
|
|
89
|
-
cdk-import -l python AWSQS::EKS::Cluster
|
|
97
|
+
cdk-import -l python AWSQS::EKS::Cluster
|
|
90
98
|
```
|
|
91
99
|
|
|
92
100
|
Will generate a subdirectory `awsqs_eks_cluster` with a Python module that can
|
|
@@ -100,7 +108,7 @@ resource name (`AWSQS::EKS::Cluster`).
|
|
|
100
108
|
For example:
|
|
101
109
|
|
|
102
110
|
```shell
|
|
103
|
-
cdk-import -l csharp AWSQS::EKS::Cluster
|
|
111
|
+
cdk-import -l csharp AWSQS::EKS::Cluster
|
|
104
112
|
```
|
|
105
113
|
|
|
106
114
|
Will generate a directory `AWSQS::EKS::Cluster` with a `.csproj`. This can be
|
|
@@ -170,12 +178,12 @@ cdk-import cfn AWSQS::CheckPoint::CloudGuardQS::MODULE
|
|
|
170
178
|
|
|
171
179
|
## AWS Service Catalog Usage
|
|
172
180
|
|
|
173
|
-
The cdk-import tool generates a user friendly version of a provisioned product that becomes
|
|
181
|
+
The cdk-import tool generates a user friendly version of a provisioned product that becomes
|
|
174
182
|
a normal cdk construct that you can use within a cdk app.
|
|
175
183
|
You can currently either specify a specific product version or generate all available products.
|
|
176
184
|
The tool will call APIs and attempt to resolve default artifact and launch path for a product,
|
|
177
185
|
if a singular product version or launch path cannot be resolved, it will throw an error.
|
|
178
|
-
You will need Service Catalog end-user read permissions to call these APIs.
|
|
186
|
+
You will need Service Catalog end-user read permissions to call these APIs.
|
|
179
187
|
|
|
180
188
|
```shell
|
|
181
189
|
Usage:
|
|
@@ -17,7 +17,7 @@ export declare class CfnResourceGenerator {
|
|
|
17
17
|
* @param typeDef the type info containing the source url
|
|
18
18
|
* @param schema the schema of the resource type for input and output properties
|
|
19
19
|
*/
|
|
20
|
-
constructor(typeName: string, typeDef: TypeInfo, schema: any);
|
|
20
|
+
constructor(typeName: string, typeDef: TypeInfo | undefined, schema: any);
|
|
21
21
|
/**
|
|
22
22
|
* Render the type into a TypeScript class fil defining the props and the L1 construct
|
|
23
23
|
*
|
|
@@ -108,12 +108,13 @@ class CfnResourceGenerator {
|
|
|
108
108
|
code.line();
|
|
109
109
|
}
|
|
110
110
|
emitConstructClass(code) {
|
|
111
|
+
var _a, _b;
|
|
111
112
|
code.line('/**');
|
|
112
113
|
code.line(` * A CloudFormation \`${this.typeName}\``);
|
|
113
114
|
code.line(' *');
|
|
114
115
|
code.line(` * @cloudformationResource ${this.typeName}`);
|
|
115
116
|
code.line(' * @stability external');
|
|
116
|
-
if (this.typeDef.SourceUrl) {
|
|
117
|
+
if ((_a = this.typeDef) === null || _a === void 0 ? void 0 : _a.SourceUrl) {
|
|
117
118
|
code.line(` * @link ${this.typeDef.SourceUrl}`);
|
|
118
119
|
}
|
|
119
120
|
code.line(' */');
|
|
@@ -132,7 +133,7 @@ class CfnResourceGenerator {
|
|
|
132
133
|
for (const prop of this.resourceAttributes) {
|
|
133
134
|
code.line('/**');
|
|
134
135
|
code.line(` * Attribute \`${this.typeName}.${prop}\``);
|
|
135
|
-
if (this.typeDef.SourceUrl) {
|
|
136
|
+
if ((_b = this.typeDef) === null || _b === void 0 ? void 0 : _b.SourceUrl) {
|
|
136
137
|
code.line(` * @link ${this.typeDef.SourceUrl}`);
|
|
137
138
|
}
|
|
138
139
|
code.line(' */');
|
|
@@ -198,4 +199,4 @@ class CfnResourceGenerator {
|
|
|
198
199
|
}
|
|
199
200
|
}
|
|
200
201
|
exports.CfnResourceGenerator = CfnResourceGenerator;
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZuLXJlc291cmNlLWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jZm4tcmVzb3VyY2UtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQThCO0FBQzlCLCtDQUFpQztBQUNqQyx5Q0FBMEM7QUFFMUMsaUNBQTBDO0FBRTFDOztHQUVHO0FBQ0gsTUFBYSxvQkFBb0I7SUFRL0I7Ozs7O09BS0c7SUFDSCxZQUE2QixRQUFnQixFQUFtQixPQUFpQixFQUFtQixNQUFXOztRQUFsRixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQW1CLFlBQU8sR0FBUCxPQUFPLENBQVU7UUFBbUIsV0FBTSxHQUFOLE1BQU0sQ0FBSztRQUM3RyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBQSx1QkFBZ0IsRUFBQyxRQUFRLENBQUMsQ0FBQztRQUNwRCw2SkFBNko7UUFDN0osOEhBQThIO1FBQzlILElBQUksQ0FBQyxrQkFBa0IsR0FBRyx5QkFBYSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsQ0FBQztRQUMxRixJQUFJLENBQUMsZUFBZSxHQUFHLHlCQUFhLENBQUMsaUJBQWlCLENBQUMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLE9BQU8sQ0FBQyxDQUFDO1FBRTFGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBQzlDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLEtBQUssRUFBVSxDQUFDO1FBRTlDLE1BQU0sS0FBSyxHQUFHLE1BQUEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLG1DQUFJLEVBQUUsQ0FBQztRQUMzQyxNQUFNLGNBQWMsR0FBYSxJQUFJLENBQUMsTUFBTSxDQUFDLGtCQUFrQjtZQUM3RCxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENB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SSxDQUFDLElBQUksRUFBRTtnQkFDakIsS0FBSyxRQUFRO29CQUNYLE9BQU8sUUFBUSxDQUFDO2dCQUNsQixLQUFLLE9BQU87b0JBQ1YsT0FBTyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDbkQsS0FBSyxRQUFRO29CQUNYLE9BQU8sUUFBUSxDQUFDO2dCQUNsQixLQUFLLFNBQVM7b0JBQ1osT0FBTyxRQUFRLENBQUM7Z0JBQ2xCO29CQUNFLE9BQU8sS0FBSyxDQUFDO2FBQ2hCO1NBQ0Y7UUFDRCxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDL0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLENBQUMsQ0FBQztTQUNsRDtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztDQUVGO0FBL0xELG9EQStMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHBhc2NhbCB9IGZyb20gJ2Nhc2UnO1xuaW1wb3J0ICogYXMgajJqIGZyb20gJ2pzb24yanNpaSc7XG5pbXBvcnQgeyBUeXBlR2VuZXJhdG9yIH0gZnJvbSAnanNvbjJqc2lpJztcbmltcG9ydCB7IFR5cGVJbmZvIH0gZnJvbSAnLi90eXBlLWluZm8nO1xuaW1wb3J0IHsgc2FuaXRpemVUeXBlTmFtZSB9IGZyb20gJy4vdXRpbCc7XG5cbi8qKlxuICogR2VuZXJhdG9yIHRvIGVtaXQgY2xhc3NlcyBhbmQgdHlwZXMgZm9yIHRoZSBMMSBjb25zdHJ1Y3Qgb2YgdGhlIGdpdmVuIHJlc291cmNlIHR5cGVcbiAqL1xuZXhwb3J0IGNsYXNzIENmblJlc291cmNlR2VuZXJhdG9yIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplZFR5cGVOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VBdHRyaWJ1dGVzOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZVByb3BlcnRpZXM6IHN0cmluZ1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IGNvbnN0cnVjdENsYXNzTmFtZTogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHByb3BzU3RydWN0TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gdHlwZU5hbWUgdGhlIG5hbWUgb2YgdGhlIENGTiByZXNvdXJjZSB0eXBlIChlLmcuIEFXU1FTOjpFS1M6OkNsdXN0ZXIpXG4gICAqIEBwYXJhbSB0eXBlRGVmIHRoZSB0eXBlIGluZm8gY29udGFpbmluZyB0aGUgc291cmNlIHVybFxuICAgKiBAcGFyYW0gc2NoZW1hIHRoZSBzY2hlbWEgb2YgdGhlIHJlc291cmNlIHR5cGUgZm9yIGlucHV0IGFuZCBvdXRwdXQgcHJvcGVydGllc1xuICAgKi9cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0eXBlTmFtZTogc3RyaW5nLCBwcml2YXRlIHJlYWRvbmx5IHR5cGVEZWY6IFR5cGVJbmZvLCBwcml2YXRlIHJlYWRvbmx5IHNjaGVtYTogYW55KSB7XG4gICAgdGhpcy5zYW5pdGl6ZWRUeXBlTmFtZSA9IHNhbml0aXplVHlwZU5hbWUodHlwZU5hbWUpO1xuICAgIC8vIHRoaXMucmVzb3VyY2VBdHRyaWJ1dGVzID0gdGhpcy5zY2hlbWEucmVhZE9ubHlQcm9wZXJ0aWVzID8gdGhpcy5zY2hlbWEucmVhZE9ubHlQcm9wZXJ0aWVzLm1hcCgocHJvcDogc3RyaW5nKSA9PiBwcm9wLnJlcGxhY2UoL15cXC9wcm9wZXJ0aWVzXFwvLywgJycpKSA6IFtdO1xuICAgIC8vIHRoaXMucmVzb3VyY2VQcm9wZXJ0aWVzID0gT2JqZWN0LmtleXModGhpcy5zY2hlbWEucHJvcGVydGllcykuZmlsdGVyKHByb3AgPT4gdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMuaW5kZXhPZihwcm9wKSA9PT0gLTEpO1xuICAgIHRoaXMuY29uc3RydWN0Q2xhc3NOYW1lID0gVHlwZUdlbmVyYXRvci5ub3JtYWxpemVUeXBlTmFtZShgQ2ZuJHt0aGlzLnNhbml0aXplZFR5cGVOYW1lfWApO1xuICAgIHRoaXMucHJvcHNTdHJ1Y3ROYW1lID0gVHlwZUdlbmVyYXRvci5ub3JtYWxpemVUeXBlTmFtZShgJHt0aGlzLmNvbnN0cnVjdENsYXNzTmFtZX1Qcm9wc2ApO1xuXG4gICAgdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIHRoaXMucmVzb3VyY2VQcm9wZXJ0aWVzID0gbmV3IEFycmF5PHN0cmluZz4oKTtcblxuICAgIGNvbnN0IHByb3BzID0gdGhpcy5zY2hlbWEucHJvcGVydGllcyA/PyB7fTtcbiAgICBjb25zdCBhdHRyaWJ1dGVOYW1lczogc3RyaW5nW10gPSB0aGlzLnNjaGVtYS5yZWFkT25seVByb3BlcnRpZXNcbiAgICAgID8gdGhpcy5zY2hlbWEucmVhZE9ubHlQcm9wZXJ0aWVzLm1hcCgocHJvcDogc3RyaW5nKSA9PiBwcm9wLnJlcGxhY2UoL15cXC9wcm9wZXJ0aWVzXFwvLywgJycpKVxuICAgICAgOiBbXTtcblxuICAgIGZvciAoY29uc3QgYXR0ciBvZiBhdHRyaWJ1dGVOYW1lcykge1xuICAgICAgY29uc3QgZGVmID0gcHJvcHNbYXR0cl07XG4gICAgICBpZiAoIWRlZikge1xuICAgICAgICBjb25zb2xlLndhcm4oYFVucmVzb2x2YWJsZSByZWFkLW9ubHkgcHJvcGVydHkgKGF0dHJpYnV0ZSkgJHt0eXBlTmFtZX0uJHthdHRyfWApO1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8gdmVyaWZ5IHRoYXQgdGhlIHR5cGUgb2YgdGhlIGF0dHJpYnV0ZSBpcyBhIHByaW1pdGl2ZVxuICAgICAgaWYgKGRlZi50eXBlICE9PSAnc3RyaW5nJyAmJiBkZWYudHlwZSAhPT0gJ251bWJlcicpIHtcbiAgICAgICAgY29uc29sZS53YXJuKGBVbnN1cHBvcnRlZCB0eXBlICR7SlNPTi5zdHJpbmdpZnkoZGVmKX0gZm9yIHJlYWQtb25seSBwcm9wZXJ0eSAoYXR0cmlidXRlKSAke3R5cGVOYW1lfS4ke2F0dHJ9YCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJlc291cmNlQXR0cmlidXRlcy5wdXNoKGF0dHIpO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgcHJvcCBvZiBPYmplY3Qua2V5cyhwcm9wcykpIHtcbiAgICAgIC8vIGlmIHRoaXMgaXMgYSByZWFkLW9ubHkgcHJvcGVydHksIGNvbnNpZGVyIGl0IGFuIGF0dHJpYnV0ZVxuICAgICAgaWYgKGF0dHJpYnV0ZU5hbWVzLmluY2x1ZGVzKHByb3ApKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnJlc291cmNlUHJvcGVydGllcy5wdXNoKHByb3ApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXIgdGhlIHR5cGUgaW50byBhIFR5cGVTY3JpcHQgY2xhc3MgZmlsIGRlZmluaW5nIHRoZSBwcm9wcyBhbmQgdGhlIEwxIGNvbnN0cnVjdFxuICAgKlxuICAgKiBAcmV0dXJucyB0aGUgcmVuZGVyZWQgY2xhc3MgZmlsZSBjb250ZW50XG4gICAqL1xuICBwdWJsaWMgcmVuZGVyKCk6IHN0cmluZyB7XG4gICAgY29uc3QgY29kZSA9IG5ldyBqMmouQ29kZSgpO1xuICAgIHRoaXMuZW1pdEltcG9ydHMoY29kZSk7XG4gICAgdGhpcy5lbWl0RGVmaW5pdGlvblR5cGVzKGNvZGUpO1xuICAgIHRoaXMuZW1pdENvbnN0cnVjdENsYXNzKGNvZGUpO1xuICAgIHJldHVybiBjb2RlLnJlbmRlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0SW1wb3J0cyhjb2RlOiBqMmouQ29kZSkge1xuICAgIGNvZGUubGluZSgnLy8gR2VuZXJhdGVkIGJ5IGNkay1pbXBvcnQnKTtcbiAgICBjb2RlLmxpbmUoXCJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1wiKTtcbiAgICBjb2RlLmxpbmUoXCJpbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1wiKTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdERlZmluaXRpb25UeXBlcyhjb2RlOiBqMmouQ29kZSkge1xuICAgIGNvbnN0IGdlbiA9IG5ldyBqMmouVHlwZUdlbmVyYXRvcih7XG4gICAgICBkZWZpbml0aW9uczogdGhpcy5zY2hlbWEuZGVmaW5pdGlvbnMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzY2hlbWEgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuc2NoZW1hKSk7XG4gICAgZm9yIChjb25zdCBwcm9wIG9mIHRoaXMucmVzb3VyY2VBdHRyaWJ1dGVzKSB7XG4gICAgICAvLyBSZW1vdmUgYXR0cmlidXRlcyB0aGF0IGNhbm5vdCBiZSB3cml0dGVuIGJ1dCBhcmUgdXNlZCBhcyBhdHRyaWJ1dGVzXG4gICAgICAvLyBUaGVzZSBzaG91bGQgbm90IGJlIHBhcnQgb2YgdGhlIFByb3BzIHN0cnVjdFxuICAgICAgZGVsZXRlIHNjaGVtYS5wcm9wZXJ0aWVzW3Byb3BdO1xuICAgIH1cblxuICAgIGdlbi5lbWl0VHlwZSh0aGlzLnByb3BzU3RydWN0TmFtZSwgc2NoZW1hKTtcblxuICAgIGdlbi5yZW5kZXJUb0NvZGUoY29kZSk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDb25zdHJ1Y3RDbGFzcyhjb2RlOiBqMmouQ29kZSkge1xuICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgY29kZS5saW5lKGAgKiBBIENsb3VkRm9ybWF0aW9uIFxcYCR7dGhpcy50eXBlTmFtZX1cXGBgKTtcbiAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgY29kZS5saW5lKGAgKiBAY2xvdWRmb3JtYXRpb25SZXNvdXJjZSAke3RoaXMudHlwZU5hbWV9YCk7XG4gICAgY29kZS5saW5lKCcgKiBAc3RhYmlsaXR5IGV4dGVybmFsJyk7XG4gICAgaWYgKHRoaXMudHlwZURlZi5Tb3VyY2VVcmwpIHtcbiAgICAgIGNvZGUubGluZShgICogQGxpbmsgJHt0aGlzLnR5cGVEZWYuU291cmNlVXJsfWApO1xuICAgIH1cbiAgICBjb2RlLmxpbmUoJyAqLycpO1xuICAgIGNvZGUub3BlbkJsb2NrKGBleHBvcnQgY2xhc3MgJHt0aGlzLmNvbnN0cnVjdENsYXNzTmFtZX0gZXh0ZW5kcyBjZGsuQ2ZuUmVzb3VyY2VgKTtcbiAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgIGNvZGUubGluZSgnKiBUaGUgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgdHlwZSBuYW1lIGZvciB0aGlzIHJlc291cmNlIGNsYXNzLicpO1xuICAgIGNvZGUubGluZSgnKi8nKTtcbiAgICBjb2RlLmxpbmUoYHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0ZOX1JFU09VUkNFX1RZUEVfTkFNRSA9IFwiJHt0aGlzLnR5cGVOYW1lfVwiO2ApO1xuICAgIGNvZGUubGluZSgpO1xuXG4gICAgLy8gZW1pdCBhIFwicHJvcHNcIiBwcm9wZXJ0eSB3aGljaCBpbmNsdWRlcyB0aGUgc2V0IG9mIHByb3BzIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3JcbiAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgIGNvZGUubGluZSgnICogUmVzb3VyY2UgcHJvcHMuJyk7XG4gICAgY29kZS5saW5lKCcgKi8nKTtcbiAgICBjb2RlLmxpbmUoYHB1YmxpYyByZWFkb25seSBwcm9wczogJHt0aGlzLnByb3BzU3RydWN0TmFtZX07YCk7XG4gICAgY29kZS5saW5lKCk7XG5cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMpIHtcbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqIEF0dHJpYnV0ZSBcXGAke3RoaXMudHlwZU5hbWV9LiR7cHJvcH1cXGBgKTtcbiAgICAgIGlmICh0aGlzLnR5cGVEZWYuU291cmNlVXJsKSB7XG4gICAgICAgIGNvZGUubGluZShgICogQGxpbmsgJHt0aGlzLnR5cGVEZWYuU291cmNlVXJsfWApO1xuICAgICAgfVxuICAgICAgY29kZS5saW5lKCcgKi8nKTtcbiAgICAgIGNvZGUubGluZShgcHVibGljIHJlYWRvbmx5IGF0dHIke3Bhc2NhbChwcm9wKX06ICR7dGhpcy5nZXRUeXBlT2ZQcm9wZXJ0eShwcm9wKX07YCk7XG4gICAgfVxuXG4gICAgY29kZS5saW5lKCk7XG5cbiAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgIGNvZGUubGluZShgICogQ3JlYXRlIGEgbmV3IFxcYCR7dGhpcy50eXBlTmFtZX1cXGAuYCk7XG4gICAgY29kZS5saW5lKCcgKicpO1xuICAgIGNvZGUubGluZSgnICogQHBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkJyk7XG4gICAgY29kZS5saW5lKCcgKiBAcGFyYW0gaWQgICAgLSBzY29wZWQgaWQgb2YgdGhlIHJlc291cmNlJyk7XG4gICAgY29kZS5saW5lKCcgKiBAcGFyYW0gcHJvcHMgLSByZXNvdXJjZSBwcm9wZXJ0aWVzJyk7XG4gICAgY29kZS5saW5lKCcgKi8nKTtcbiAgICBjb2RlLm9wZW5CbG9jayhgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogJHt0aGlzLnByb3BzU3RydWN0TmFtZX0pYCk7XG4gICAgY29kZS5saW5lKGBzdXBlcihzY29wZSwgaWQsIHsgdHlwZTogJHt0aGlzLmNvbnN0cnVjdENsYXNzTmFtZX0uQ0ZOX1JFU09VUkNFX1RZUEVfTkFNRSwgcHJvcGVydGllczogdG9Kc29uXyR7dGhpcy5wcm9wc1N0cnVjdE5hbWV9KHByb3BzKSEgfSk7YCk7XG4gICAgY29kZS5saW5lKCcnKTtcbiAgICBjb2RlLmxpbmUoJ3RoaXMucHJvcHMgPSBwcm9wczsnKTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMpIHtcbiAgICAgIGNvbnN0IHByb3BlcnR5TmFtZSA9IGBhdHRyJHtwYXNjYWwocHJvcCl9YDtcbiAgICAgIGNvZGUubGluZShgdGhpcy4ke3Byb3BlcnR5TmFtZX0gPSAke3RoaXMucmVuZGVyR2V0QXR0KHByb3ApfTtgKTtcbiAgICB9XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG5cbiAgICAvLyBDbG9zZSBjb25zdHJ1Y3QgY2xhc3NcbiAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyR2V0QXR0KHByb3A6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgYXR0cmlidXRlVHlwZSA9IHRoaXMuZ2V0VHlwZU9mUHJvcGVydHkocHJvcCk7XG4gICAgY29uc3QgY29uc3RydWN0b3JBcmd1bWVudHMgPSBgdGhpcy5nZXRBdHQoJyR7cHJvcH0nKWA7XG4gICAgaWYgKGF0dHJpYnV0ZVR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gYGNkay5Ub2tlbi5hc1N0cmluZygke2NvbnN0cnVjdG9yQXJndW1lbnRzfSlgO1xuICAgIH1cbiAgICBpZiAoYXR0cmlidXRlVHlwZSA9PT0gJ3N0cmluZ1tdJykge1xuICAgICAgcmV0dXJuIGBjZGsuVG9rZW4uYXNMaXN0KCR7Y29uc3RydWN0b3JBcmd1bWVudHN9KWA7XG4gICAgfVxuICAgIGlmIChhdHRyaWJ1dGVUeXBlID09PSAnbnVtYmVyJykge1xuICAgICAgcmV0dXJuIGBjZGsuVG9rZW4uYXNOdW1iZXIoJHtjb25zdHJ1Y3RvckFyZ3VtZW50c30pYDtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnN0cnVjdG9yQXJndW1lbnRzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRUeXBlT2ZQcm9wZXJ0eShwcm9wOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRUeXBlRnJvbVNjaGVtYSh0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzW3Byb3BdKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VHlwZUZyb21TY2hlbWEocHJvcDogYW55KTogc3RyaW5nIHtcbiAgICBpZiAocHJvcC50eXBlKSB7XG4gICAgICBzd2l0Y2ggKHByb3AudHlwZSkge1xuICAgICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICAgIHJldHVybiAnc3RyaW5nJztcbiAgICAgICAgY2FzZSAnYXJyYXknOlxuICAgICAgICAgIHJldHVybiBgJHt0aGlzLmdldFR5cGVGcm9tU2NoZW1hKHByb3AuaXRlbXMpfVtdYDtcbiAgICAgICAgY2FzZSAnbnVtYmVyJzpcbiAgICAgICAgICByZXR1cm4gJ251bWJlcic7XG4gICAgICAgIGNhc2UgJ2ludGVnZXInOlxuICAgICAgICAgIHJldHVybiAnbnVtYmVyJztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICByZXR1cm4gJ2FueSc7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChwcm9wLmhhc093blByb3BlcnR5KCckcmVmJykpIHtcbiAgICAgIHJldHVybiBwcm9wLiRyZWYucmVwbGFjZSgvI1xcL2RlZmluaXRpb25zXFwvLywgJycpO1xuICAgIH1cbiAgICByZXR1cm4gJ2FueSc7XG4gIH1cblxufVxuIl19
|
|
202
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2ZuLXJlc291cmNlLWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9jZm4tcmVzb3VyY2UtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsK0JBQThCO0FBQzlCLCtDQUFpQztBQUNqQyx5Q0FBMEM7QUFFMUMsaUNBQTBDO0FBRTFDOztHQUVHO0FBQ0gsTUFBYSxvQkFBb0I7SUFRL0I7Ozs7O09BS0c7SUFDSCxZQUE2QixRQUFnQixFQUFtQixPQUE2QixFQUFtQixNQUFXOztRQUE5RixhQUFRLEdBQVIsUUFBUSxDQUFRO1FBQW1CLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBQW1CLFdBQU0sR0FBTixNQUFNLENBQUs7UUFDekgsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUEsdUJBQWdCLEVBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEQsNkpBQTZKO1FBQzdKLDhIQUE4SDtRQUM5SCxJQUFJLENBQUMsa0JBQWtCLEdBQUcseUJBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLENBQUM7UUFDMUYsSUFBSSxDQUFDLGVBQWUsR0FBRyx5QkFBYSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixPQUFPLENBQUMsQ0FBQztRQUUxRixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUM5QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxLQUFLLEVBQVUsQ0FBQztRQUU5QyxNQUFNLEtBQUssR0FBRyxNQUFBLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxtQ0FBSSxFQUFFLENBQUM7UUFDM0MsTUFBTSxjQUFjLEdBQWEsSUFBSSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0I7WUFDN0QsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsa0JBQWtCLENBQUMsR0FBRyxD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O1lBQ2IsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNqQixLQUFLLFFBQVE7b0JBQ1gsT0FBTyxRQUFRLENBQUM7Z0JBQ2xCLEtBQUssT0FBTztvQkFDVixPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUNuRCxLQUFLLFFBQVE7b0JBQ1gsT0FBTyxRQUFRLENBQUM7Z0JBQ2xCLEtBQUssU0FBUztvQkFDWixPQUFPLFFBQVEsQ0FBQztnQkFDbEI7b0JBQ0UsT0FBTyxLQUFLLENBQUM7YUFDaEI7U0FDRjtRQUNELElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUMvQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQ2xEO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0NBRUY7QUEvTEQsb0RBK0xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcGFzY2FsIH0gZnJvbSAnY2FzZSc7XG5pbXBvcnQgKiBhcyBqMmogZnJvbSAnanNvbjJqc2lpJztcbmltcG9ydCB7IFR5cGVHZW5lcmF0b3IgfSBmcm9tICdqc29uMmpzaWknO1xuaW1wb3J0IHsgVHlwZUluZm8gfSBmcm9tICcuL3R5cGUtaW5mbyc7XG5pbXBvcnQgeyBzYW5pdGl6ZVR5cGVOYW1lIH0gZnJvbSAnLi91dGlsJztcblxuLyoqXG4gKiBHZW5lcmF0b3IgdG8gZW1pdCBjbGFzc2VzIGFuZCB0eXBlcyBmb3IgdGhlIEwxIGNvbnN0cnVjdCBvZiB0aGUgZ2l2ZW4gcmVzb3VyY2UgdHlwZVxuICovXG5leHBvcnQgY2xhc3MgQ2ZuUmVzb3VyY2VHZW5lcmF0b3Ige1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgc2FuaXRpemVkVHlwZU5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZUF0dHJpYnV0ZXM6IHN0cmluZ1tdO1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlUHJvcGVydGllczogc3RyaW5nW107XG4gIHByaXZhdGUgcmVhZG9ubHkgY29uc3RydWN0Q2xhc3NOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcHJvcHNTdHJ1Y3ROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqXG4gICAqIEBwYXJhbSB0eXBlTmFtZSB0aGUgbmFtZSBvZiB0aGUgQ0ZOIHJlc291cmNlIHR5cGUgKGUuZy4gQVdTUVM6OkVLUzo6Q2x1c3RlcilcbiAgICogQHBhcmFtIHR5cGVEZWYgdGhlIHR5cGUgaW5mbyBjb250YWluaW5nIHRoZSBzb3VyY2UgdXJsXG4gICAqIEBwYXJhbSBzY2hlbWEgdGhlIHNjaGVtYSBvZiB0aGUgcmVzb3VyY2UgdHlwZSBmb3IgaW5wdXQgYW5kIG91dHB1dCBwcm9wZXJ0aWVzXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHR5cGVOYW1lOiBzdHJpbmcsIHByaXZhdGUgcmVhZG9ubHkgdHlwZURlZjogVHlwZUluZm8gfCB1bmRlZmluZWQsIHByaXZhdGUgcmVhZG9ubHkgc2NoZW1hOiBhbnkpIHtcbiAgICB0aGlzLnNhbml0aXplZFR5cGVOYW1lID0gc2FuaXRpemVUeXBlTmFtZSh0eXBlTmFtZSk7XG4gICAgLy8gdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMgPSB0aGlzLnNjaGVtYS5yZWFkT25seVByb3BlcnRpZXMgPyB0aGlzLnNjaGVtYS5yZWFkT25seVByb3BlcnRpZXMubWFwKChwcm9wOiBzdHJpbmcpID0+IHByb3AucmVwbGFjZSgvXlxcL3Byb3BlcnRpZXNcXC8vLCAnJykpIDogW107XG4gICAgLy8gdGhpcy5yZXNvdXJjZVByb3BlcnRpZXMgPSBPYmplY3Qua2V5cyh0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzKS5maWx0ZXIocHJvcCA9PiB0aGlzLnJlc291cmNlQXR0cmlidXRlcy5pbmRleE9mKHByb3ApID09PSAtMSk7XG4gICAgdGhpcy5jb25zdHJ1Y3RDbGFzc05hbWUgPSBUeXBlR2VuZXJhdG9yLm5vcm1hbGl6ZVR5cGVOYW1lKGBDZm4ke3RoaXMuc2FuaXRpemVkVHlwZU5hbWV9YCk7XG4gICAgdGhpcy5wcm9wc1N0cnVjdE5hbWUgPSBUeXBlR2VuZXJhdG9yLm5vcm1hbGl6ZVR5cGVOYW1lKGAke3RoaXMuY29uc3RydWN0Q2xhc3NOYW1lfVByb3BzYCk7XG5cbiAgICB0aGlzLnJlc291cmNlQXR0cmlidXRlcyA9IG5ldyBBcnJheTxzdHJpbmc+KCk7XG4gICAgdGhpcy5yZXNvdXJjZVByb3BlcnRpZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuXG4gICAgY29uc3QgcHJvcHMgPSB0aGlzLnNjaGVtYS5wcm9wZXJ0aWVzID8/IHt9O1xuICAgIGNvbnN0IGF0dHJpYnV0ZU5hbWVzOiBzdHJpbmdbXSA9IHRoaXMuc2NoZW1hLnJlYWRPbmx5UHJvcGVydGllc1xuICAgICAgPyB0aGlzLnNjaGVtYS5yZWFkT25seVByb3BlcnRpZXMubWFwKChwcm9wOiBzdHJpbmcpID0+IHByb3AucmVwbGFjZSgvXlxcL3Byb3BlcnRpZXNcXC8vLCAnJykpXG4gICAgICA6IFtdO1xuXG4gICAgZm9yIChjb25zdCBhdHRyIG9mIGF0dHJpYnV0ZU5hbWVzKSB7XG4gICAgICBjb25zdCBkZWYgPSBwcm9wc1thdHRyXTtcbiAgICAgIGlmICghZGVmKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihgVW5yZXNvbHZhYmxlIHJlYWQtb25seSBwcm9wZXJ0eSAoYXR0cmlidXRlKSAke3R5cGVOYW1lfS4ke2F0dHJ9YCk7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICAvLyB2ZXJpZnkgdGhhdCB0aGUgdHlwZSBvZiB0aGUgYXR0cmlidXRlIGlzIGEgcHJpbWl0aXZlXG4gICAgICBpZiAoZGVmLnR5cGUgIT09ICdzdHJpbmcnICYmIGRlZi50eXBlICE9PSAnbnVtYmVyJykge1xuICAgICAgICBjb25zb2xlLndhcm4oYFVuc3VwcG9ydGVkIHR5cGUgJHtKU09OLnN0cmluZ2lmeShkZWYpfSBmb3IgcmVhZC1vbmx5IHByb3BlcnR5IChhdHRyaWJ1dGUpICR7dHlwZU5hbWV9LiR7YXR0cn1gKTtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucmVzb3VyY2VBdHRyaWJ1dGVzLnB1c2goYXR0cik7XG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBwcm9wIG9mIE9iamVjdC5rZXlzKHByb3BzKSkge1xuICAgICAgLy8gaWYgdGhpcyBpcyBhIHJlYWQtb25seSBwcm9wZXJ0eSwgY29uc2lkZXIgaXQgYW4gYXR0cmlidXRlXG4gICAgICBpZiAoYXR0cmlidXRlTmFtZXMuaW5jbHVkZXMocHJvcCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIHRoaXMucmVzb3VyY2VQcm9wZXJ0aWVzLnB1c2gocHJvcCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlciB0aGUgdHlwZSBpbnRvIGEgVHlwZVNjcmlwdCBjbGFzcyBmaWwgZGVmaW5pbmcgdGhlIHByb3BzIGFuZCB0aGUgTDEgY29uc3RydWN0XG4gICAqXG4gICAqIEByZXR1cm5zIHRoZSByZW5kZXJlZCBjbGFzcyBmaWxlIGNvbnRlbnRcbiAgICovXG4gIHB1YmxpYyByZW5kZXIoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb2RlID0gbmV3IGoyai5Db2RlKCk7XG4gICAgdGhpcy5lbWl0SW1wb3J0cyhjb2RlKTtcbiAgICB0aGlzLmVtaXREZWZpbml0aW9uVHlwZXMoY29kZSk7XG4gICAgdGhpcy5lbWl0Q29uc3RydWN0Q2xhc3MoY29kZSk7XG4gICAgcmV0dXJuIGNvZGUucmVuZGVyKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRJbXBvcnRzKGNvZGU6IGoyai5Db2RlKSB7XG4gICAgY29kZS5saW5lKCcvLyBHZW5lcmF0ZWQgYnkgY2RrLWltcG9ydCcpO1xuICAgIGNvZGUubGluZShcImltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XCIpO1xuICAgIGNvZGUubGluZShcImltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XCIpO1xuICAgIGNvZGUubGluZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RGVmaW5pdGlvblR5cGVzKGNvZGU6IGoyai5Db2RlKSB7XG4gICAgY29uc3QgZ2VuID0gbmV3IGoyai5UeXBlR2VuZXJhdG9yKHtcbiAgICAgIGRlZmluaXRpb25zOiB0aGlzLnNjaGVtYS5kZWZpbml0aW9ucyxcbiAgICB9KTtcblxuICAgIGNvbnN0IHNjaGVtYSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy5zY2hlbWEpKTtcbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMpIHtcbiAgICAgIC8vIFJlbW92ZSBhdHRyaWJ1dGVzIHRoYXQgY2Fubm90IGJlIHdyaXR0ZW4gYnV0IGFyZSB1c2VkIGFzIGF0dHJpYnV0ZXNcbiAgICAgIC8vIFRoZXNlIHNob3VsZCBub3QgYmUgcGFydCBvZiB0aGUgUHJvcHMgc3RydWN0XG4gICAgICBkZWxldGUgc2NoZW1hLnByb3BlcnRpZXNbcHJvcF07XG4gICAgfVxuXG4gICAgZ2VuLmVtaXRUeXBlKHRoaXMucHJvcHNTdHJ1Y3ROYW1lLCBzY2hlbWEpO1xuXG4gICAgZ2VuLnJlbmRlclRvQ29kZShjb2RlKTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdENvbnN0cnVjdENsYXNzKGNvZGU6IGoyai5Db2RlKSB7XG4gICAgY29kZS5saW5lKCcvKionKTtcbiAgICBjb2RlLmxpbmUoYCAqIEEgQ2xvdWRGb3JtYXRpb24gXFxgJHt0aGlzLnR5cGVOYW1lfVxcYGApO1xuICAgIGNvZGUubGluZSgnIConKTtcbiAgICBjb2RlLmxpbmUoYCAqIEBjbG91ZGZvcm1hdGlvblJlc291cmNlICR7dGhpcy50eXBlTmFtZX1gKTtcbiAgICBjb2RlLmxpbmUoJyAqIEBzdGFiaWxpdHkgZXh0ZXJuYWwnKTtcbiAgICBpZiAodGhpcy50eXBlRGVmPy5Tb3VyY2VVcmwpIHtcbiAgICAgIGNvZGUubGluZShgICogQGxpbmsgJHt0aGlzLnR5cGVEZWYuU291cmNlVXJsfWApO1xuICAgIH1cbiAgICBjb2RlLmxpbmUoJyAqLycpO1xuICAgIGNvZGUub3BlbkJsb2NrKGBleHBvcnQgY2xhc3MgJHt0aGlzLmNvbnN0cnVjdENsYXNzTmFtZX0gZXh0ZW5kcyBjZGsuQ2ZuUmVzb3VyY2VgKTtcbiAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgIGNvZGUubGluZSgnKiBUaGUgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgdHlwZSBuYW1lIGZvciB0aGlzIHJlc291cmNlIGNsYXNzLicpO1xuICAgIGNvZGUubGluZSgnKi8nKTtcbiAgICBjb2RlLmxpbmUoYHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQ0ZOX1JFU09VUkNFX1RZUEVfTkFNRSA9IFwiJHt0aGlzLnR5cGVOYW1lfVwiO2ApO1xuICAgIGNvZGUubGluZSgpO1xuXG4gICAgLy8gZW1pdCBhIFwicHJvcHNcIiBwcm9wZXJ0eSB3aGljaCBpbmNsdWRlcyB0aGUgc2V0IG9mIHByb3BzIHBhc3NlZCB0byB0aGUgY29uc3RydWN0b3JcbiAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgIGNvZGUubGluZSgnICogUmVzb3VyY2UgcHJvcHMuJyk7XG4gICAgY29kZS5saW5lKCcgKi8nKTtcbiAgICBjb2RlLmxpbmUoYHB1YmxpYyByZWFkb25seSBwcm9wczogJHt0aGlzLnByb3BzU3RydWN0TmFtZX07YCk7XG4gICAgY29kZS5saW5lKCk7XG5cbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMpIHtcbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqIEF0dHJpYnV0ZSBcXGAke3RoaXMudHlwZU5hbWV9LiR7cHJvcH1cXGBgKTtcbiAgICAgIGlmICh0aGlzLnR5cGVEZWY/LlNvdXJjZVVybCkge1xuICAgICAgICBjb2RlLmxpbmUoYCAqIEBsaW5rICR7dGhpcy50eXBlRGVmLlNvdXJjZVVybH1gKTtcbiAgICAgIH1cbiAgICAgIGNvZGUubGluZSgnICovJyk7XG4gICAgICBjb2RlLmxpbmUoYHB1YmxpYyByZWFkb25seSBhdHRyJHtwYXNjYWwocHJvcCl9OiAke3RoaXMuZ2V0VHlwZU9mUHJvcGVydHkocHJvcCl9O2ApO1xuICAgIH1cblxuICAgIGNvZGUubGluZSgpO1xuXG4gICAgY29kZS5saW5lKCcvKionKTtcbiAgICBjb2RlLmxpbmUoYCAqIENyZWF0ZSBhIG5ldyBcXGAke3RoaXMudHlwZU5hbWV9XFxgLmApO1xuICAgIGNvZGUubGluZSgnIConKTtcbiAgICBjb2RlLmxpbmUoJyAqIEBwYXJhbSBzY29wZSAtIHNjb3BlIGluIHdoaWNoIHRoaXMgcmVzb3VyY2UgaXMgZGVmaW5lZCcpO1xuICAgIGNvZGUubGluZSgnICogQHBhcmFtIGlkICAgIC0gc2NvcGVkIGlkIG9mIHRoZSByZXNvdXJjZScpO1xuICAgIGNvZGUubGluZSgnICogQHBhcmFtIHByb3BzIC0gcmVzb3VyY2UgcHJvcGVydGllcycpO1xuICAgIGNvZGUubGluZSgnICovJyk7XG4gICAgY29kZS5vcGVuQmxvY2soYGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6ICR7dGhpcy5wcm9wc1N0cnVjdE5hbWV9KWApO1xuICAgIGNvZGUubGluZShgc3VwZXIoc2NvcGUsIGlkLCB7IHR5cGU6ICR7dGhpcy5jb25zdHJ1Y3RDbGFzc05hbWV9LkNGTl9SRVNPVVJDRV9UWVBFX05BTUUsIHByb3BlcnRpZXM6IHRvSnNvbl8ke3RoaXMucHJvcHNTdHJ1Y3ROYW1lfShwcm9wcykhIH0pO2ApO1xuICAgIGNvZGUubGluZSgnJyk7XG4gICAgY29kZS5saW5lKCd0aGlzLnByb3BzID0gcHJvcHM7Jyk7XG4gICAgY29kZS5saW5lKCk7XG4gICAgZm9yIChjb25zdCBwcm9wIG9mIHRoaXMucmVzb3VyY2VBdHRyaWJ1dGVzKSB7XG4gICAgICBjb25zdCBwcm9wZXJ0eU5hbWUgPSBgYXR0ciR7cGFzY2FsKHByb3ApfWA7XG4gICAgICBjb2RlLmxpbmUoYHRoaXMuJHtwcm9wZXJ0eU5hbWV9ID0gJHt0aGlzLnJlbmRlckdldEF0dChwcm9wKX07YCk7XG4gICAgfVxuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuXG4gICAgLy8gQ2xvc2UgY29uc3RydWN0IGNsYXNzXG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlckdldEF0dChwcm9wOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IGF0dHJpYnV0ZVR5cGUgPSB0aGlzLmdldFR5cGVPZlByb3BlcnR5KHByb3ApO1xuICAgIGNvbnN0IGNvbnN0cnVjdG9yQXJndW1lbnRzID0gYHRoaXMuZ2V0QXR0KCcke3Byb3B9JylgO1xuICAgIGlmIChhdHRyaWJ1dGVUeXBlID09PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGBjZGsuVG9rZW4uYXNTdHJpbmcoJHtjb25zdHJ1Y3RvckFyZ3VtZW50c30pYDtcbiAgICB9XG4gICAgaWYgKGF0dHJpYnV0ZVR5cGUgPT09ICdzdHJpbmdbXScpIHtcbiAgICAgIHJldHVybiBgY2RrLlRva2VuLmFzTGlzdCgke2NvbnN0cnVjdG9yQXJndW1lbnRzfSlgO1xuICAgIH1cbiAgICBpZiAoYXR0cmlidXRlVHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHJldHVybiBgY2RrLlRva2VuLmFzTnVtYmVyKCR7Y29uc3RydWN0b3JBcmd1bWVudHN9KWA7XG4gICAgfVxuICAgIHJldHVybiBjb25zdHJ1Y3RvckFyZ3VtZW50cztcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VHlwZU9mUHJvcGVydHkocHJvcDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0VHlwZUZyb21TY2hlbWEodGhpcy5zY2hlbWEucHJvcGVydGllc1twcm9wXSk7XG4gIH1cblxuICBwcml2YXRlIGdldFR5cGVGcm9tU2NoZW1hKHByb3A6IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKHByb3AudHlwZSkge1xuICAgICAgc3dpdGNoIChwcm9wLnR5cGUpIHtcbiAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICByZXR1cm4gJ3N0cmluZyc7XG4gICAgICAgIGNhc2UgJ2FycmF5JzpcbiAgICAgICAgICByZXR1cm4gYCR7dGhpcy5nZXRUeXBlRnJvbVNjaGVtYShwcm9wLml0ZW1zKX1bXWA7XG4gICAgICAgIGNhc2UgJ251bWJlcic6XG4gICAgICAgICAgcmV0dXJuICdudW1iZXInO1xuICAgICAgICBjYXNlICdpbnRlZ2VyJzpcbiAgICAgICAgICByZXR1cm4gJ251bWJlcic7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuICdhbnknO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAocHJvcC5oYXNPd25Qcm9wZXJ0eSgnJHJlZicpKSB7XG4gICAgICByZXR1cm4gcHJvcC4kcmVmLnJlcGxhY2UoLyNcXC9kZWZpbml0aW9uc1xcLy8sICcnKTtcbiAgICB9XG4gICAgcmV0dXJuICdhbnknO1xuICB9XG5cbn1cbiJdfQ==
|
package/lib/cli.js
CHANGED
|
@@ -51,15 +51,17 @@ const args = (0, minimist_1.default)(parsedCommandsAndArgv.argv, {
|
|
|
51
51
|
'product-id',
|
|
52
52
|
'provisioning-artifact-id',
|
|
53
53
|
'path-id',
|
|
54
|
+
'schema-file',
|
|
54
55
|
],
|
|
55
56
|
boolean: [
|
|
56
57
|
'help',
|
|
57
58
|
'private',
|
|
58
59
|
],
|
|
59
60
|
alias: {
|
|
60
|
-
outdir: 'o',
|
|
61
|
-
|
|
62
|
-
|
|
61
|
+
'outdir': 'o',
|
|
62
|
+
'schema-file': 's',
|
|
63
|
+
'help': 'h',
|
|
64
|
+
'language': 'l',
|
|
63
65
|
},
|
|
64
66
|
});
|
|
65
67
|
function showHelp() {
|
|
@@ -70,6 +72,7 @@ function showHelp() {
|
|
|
70
72
|
console.log('General options:');
|
|
71
73
|
console.log(' -l, --language Output programming language [string]');
|
|
72
74
|
console.log(' -o, --outdir Output directory [string]');
|
|
75
|
+
console.log(' -s, --schema-file Read schema from a file (instead of CFN registry) [string]');
|
|
73
76
|
console.log(' --go-module Go module name (required if language is "golang") [string]');
|
|
74
77
|
console.log(' --java-package Java package name (required if language is "java") [string]');
|
|
75
78
|
console.log(' --csharp-namespace C# namespace (optional if language is "csharp", [string]');
|
|
@@ -86,6 +89,7 @@ function showCfnHelp() {
|
|
|
86
89
|
console.log('Options:');
|
|
87
90
|
console.log(' -l, --language Output programming language [string]');
|
|
88
91
|
console.log(' -o, --outdir Output directory [string] [default: "."]');
|
|
92
|
+
console.log(' -s, --schema-file Read schema from a file (instead of CFN registry) [string]');
|
|
89
93
|
console.log(' --go-module Go module name (required if language is "golang") [string]');
|
|
90
94
|
console.log(' --java-package Java package name (required if language is "java") [string]');
|
|
91
95
|
console.log(' --csharp-namespace C# namespace (optional if language is "csharp", [string]');
|
|
@@ -144,6 +148,14 @@ function showSCHelp() {
|
|
|
144
148
|
}
|
|
145
149
|
void (async () => {
|
|
146
150
|
var _a, _b;
|
|
151
|
+
if (args.help && subCommand === 'cfn') {
|
|
152
|
+
showCfnHelp();
|
|
153
|
+
process.exit(1);
|
|
154
|
+
}
|
|
155
|
+
if (args.help && subCommand === 'sc') {
|
|
156
|
+
showSCHelp();
|
|
157
|
+
process.exit(1);
|
|
158
|
+
}
|
|
147
159
|
if (args.help || !subCommand) {
|
|
148
160
|
showHelp();
|
|
149
161
|
process.exit(1);
|
|
@@ -162,9 +174,20 @@ void (async () => {
|
|
|
162
174
|
try {
|
|
163
175
|
const [resourceName, resourceVersion] = args._[0].split('@');
|
|
164
176
|
const workdir = await fs.mkdtemp(path.join(os.tmpdir(), 'cdk-import'));
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
177
|
+
let typeInfo;
|
|
178
|
+
if (args['schema-file']) {
|
|
179
|
+
typeInfo = {
|
|
180
|
+
TypeName: resourceName,
|
|
181
|
+
Schema: await fs.readFile(args['schema-file'], { encoding: 'utf-8' }),
|
|
182
|
+
};
|
|
183
|
+
}
|
|
184
|
+
else {
|
|
185
|
+
typeInfo = await (0, _1.readResourceDefinitionFromRegistry)(resourceName, resourceVersion, {
|
|
186
|
+
private: args.private,
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
const typeName = (0, _1.importResourceType)(typeInfo, {
|
|
190
|
+
outdir: args.outdir,
|
|
168
191
|
});
|
|
169
192
|
await (0, languages_1.renderCode)({
|
|
170
193
|
srcdir: workdir,
|
|
@@ -224,4 +247,4 @@ void (async () => {
|
|
|
224
247
|
}
|
|
225
248
|
}
|
|
226
249
|
})();
|
|
227
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLGdEQUFrQztBQUNsQyx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLCtDQUFpQztBQUNqQyx3REFBZ0M7QUFDaEMsNkRBQW9EO0FBQ3BELHdCQUFzRTtBQUN0RSwyQ0FBOEQ7QUFFOUQsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixRQUFRLEVBQUU7UUFDUixFQUFFLEVBQUUsSUFBSTtRQUNSLEdBQUcsRUFBRSxJQUFJO0tBQ1Y7Q0FDRixDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxJQUFBLG1DQUFhLEVBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRixNQUFNLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFckQsTUFBTSxJQUFJLEdBQUcsSUFBQSxrQkFBUSxFQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRTtJQUNoRCxNQUFNLEVBQUU7UUFDTixRQUFRO1FBQ1IsVUFBVTtRQUNWLGdCQUFnQjtRQUNoQixZQUFZO1FBQ1osMEJBQTBCO1FBQzFCLFNBQVM7S0FDVjtJQUNELE9BQU8sRUFBRTtRQUNQLE1BQU07UUFDTixTQUFTO0tBQ1Y7SUFDRCxLQUFLLEVBQUU7UUFDTCxNQUFNLEVBQUUsR0FBRztRQUNYLElBQUksRUFBRSxHQUFHO1FBQ1QsUUFBUSxFQUFFLEdBQUc7S0FDZDtDQUNGLENBQUMsQ0FBQztBQUVILFNBQVMsUUFBUTtJQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7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Q0FBQyxRQUFRLG1DQUFJLFlBQVk7b0JBQ3ZDLE1BQU0sRUFBRSxNQUFBLElBQUksQ0FBQyxNQUFNLG1DQUFJLGVBQWU7b0JBQ3RDLFFBQVEsRUFBRSxPQUFPO29CQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQztvQkFDM0IsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSxNQUFBLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQ0FBSSxPQUFPO2lCQUNyRCxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ0osT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqQjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakI7S0FDRjtBQUNILENBQUMsQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy9wcm9taXNlcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2FzZXV0aWwgZnJvbSAnY2FzZSc7XG5pbXBvcnQgbWluaW1pc3QgZnJvbSAnbWluaW1pc3QnO1xuaW1wb3J0IHsgcGFyc2VDb21tYW5kcyB9IGZyb20gJ21pbmltaXN0LXN1YmNvbW1hbmQnO1xuaW1wb3J0IHsgaW1wb3J0UmVzb3VyY2VUeXBlLCBpbXBvcnRQcm9kdWN0cywgaW1wb3J0UHJvZHVjdCB9IGZyb20gJy4nO1xuaW1wb3J0IHsgcmVuZGVyQ29kZSwgU1VQUE9SVEVEX0xBTkdVQUdFUyB9IGZyb20gJy4vbGFuZ3VhZ2VzJztcblxuY29uc3QgY29tbWFuZERlZmludGlvbiA9IHtcbiAgY29tbWFuZHM6IHtcbiAgICBzYzogbnVsbCxcbiAgICBjZm46IG51bGwsXG4gIH0sXG59O1xuXG5jb25zdCBwYXJzZWRDb21tYW5kc0FuZEFyZ3YgPSBwYXJzZUNvbW1hbmRzKGNvbW1hbmREZWZpbnRpb24sIHByb2Nlc3MuYXJndi5zbGljZSgyKSk7XG5jb25zdCBzdWJDb21tYW5kID0gcGFyc2VkQ29tbWFuZHNBbmRBcmd2LmNvbW1hbmRzWzBdO1xuXG5jb25zdCBhcmdzID0gbWluaW1pc3QocGFyc2VkQ29tbWFuZHNBbmRBcmd2LmFyZ3YsIHtcbiAgc3RyaW5nOiBbXG4gICAgJ291dGRpcicsXG4gICAgJ2xhbmd1YWdlJyxcbiAgICAnZ28tbW9kdWxlLW5hbWUnLFxuICAgICdwcm9kdWN0LWlkJyxcbiAgICAncHJvdmlzaW9uaW5nLWFydGlmYWN0LWlkJyxcbiAgICAncGF0aC1pZCcsXG4gIF0sXG4gIGJvb2xlYW46IFtcbiAgICAnaGVscCcsXG4gICAgJ3ByaXZhdGUnLFxuICBdLFxuICBhbGlhczoge1xuICAgIG91dGRpcjogJ28nLFxuICAgIGhlbHA6ICdoJyxcbiAgICBsYW5ndWFnZTogJ2wnLFxuICB9LFxufSk7XG5cbmZ1bmN0aW9uIHNob3dIZWxwKCkge1xuICBjb25zb2xlLmxvZygnJyk7XG4gIGNvbnNvbGUubG9nKCdVc2FnZTonKTtcbiAgY29uc29sZS5sb2coJyAgY2RrLWltcG9ydCBTVUJDT01NQU5EIChjZm4gb3Igc2MpIFtwYXJhbWV0ZXJzXScpO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZygnR2VuZXJhbCBvcHRpb25zOicpO1xuICBjb25zb2xlLmxvZygnICAtbCwgLS1sYW5ndWFnZSAgICAgT3V0cHV0IHByb2dyYW1taW5nIGxhbmd1YWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC1vLCAtLW91dGRpciAgICAgICBPdXRwdXQgZGlyZWN0b3J5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0cmluZ10nKTtcbiAgY29uc29sZS5sb2coJyAgLS1nby1tb2R1bGUgICAgICAgIEdvIG1vZHVsZSBuYW1lIChyZXF1aXJlZCBpZiBsYW5ndWFnZSBpcyBcImdvbGFuZ1wiKSAgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC0tamF2YS1wYWNrYWdlICAgICBKYXZhIHBhY2thZ2UgbmFtZSAocmVxdWlyZWQgaWYgbGFuZ3VhZ2UgaXMgXCJqYXZhXCIpICAgICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAtLWNzaGFycC1uYW1lc3BhY2UgQyMgbmFtZXNwYWNlIChvcHRpb25hbCBpZiBsYW5ndWFnZSBpcyBcImNzaGFycFwiLCAgICAgICAgICAgW3N0cmluZ10nKTtcbiAgY29uc29sZS5sb2coJyAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRzIHRvIHJlc291cmNlIG5hbWUuJyk7XG4gIGNvbnNvbGUubG9nKCcgIC1oLCAtLWhlbHAgICAgICAgICBTaG93IHVzYWdlIGluZm8gKGluY2x1ZGUgc3ViY29tbWFuZCB0byBzZWUgc3BlY2lmaWMgaGVscCkgW2Jvb2xlYW5dJyk7XG4gIGNvbnNvbGUubG9nKCcnKTtcbiAgY29uc29sZS5sb2coKTtcbn1cblxuZnVuY3Rpb24gc2hvd0NmbkhlbHAoKSB7XG4gIGNvbnNvbGUubG9nKCcnKTtcbiAgY29uc29sZS5sb2coJ1VzYWdlOicpO1xuICBjb25zb2xlLmxvZygnICBjZGstaW1wb3J0IGNmbiAtbCBMQU5HVUFHRSBSRVNPVVJDRS1OQU1FW0BWRVJTSU9OXScpO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZygnT3B0aW9uczonKTtcbiAgY29uc29sZS5sb2coJyAgLWwsIC0tbGFuZ3VhZ2UgICAgIE91dHB1dCBwcm9ncmFtbWluZyBsYW5ndWFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAtbywgLS1vdXRkaXIgICAgICAgT3V0cHV0IGRpcmVjdG9yeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddICBbZGVmYXVsdDogXCIuXCJdJyk7XG4gIGNvbnNvbGUubG9nKCcgIC0tZ28tbW9kdWxlICAgICAgICBHbyBtb2R1bGUgbmFtZSAocmVxdWlyZWQgaWYgbGFuZ3VhZ2UgaXMgXCJnb2xhbmdcIikgICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAtLWphdmEtcGFja2FnZSAgICAgSmF2YSBwYWNrYWdlIG5hbWUgKHJlcXVpcmVkIGlmIGxhbmd1YWdlIGlzIFwiamF2YVwiKSAgICAgW3N0cmluZ10nKTtcbiAgY29uc29sZS5sb2coJyAgLS1jc2hhcnAtbmFtZXNwYWNlIEMjIG5hbWVzcGFjZSAob3B0aW9uYWwgaWYgbGFuZ3VhZ2UgaXMgXCJjc2hhcnBcIiwgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0cyB0byByZXNvdXJjZSBuYW1lLicpO1xuICBjb25zb2xlLmxvZygnICAtLXByaXZhdGUgICAgICAgICAgSW1wb3J0IHR5cGVzIHJlZ2lzdGVyZWQgaW4geW91ciBBV1MgYWNjb3VudCBhbmQgcmVnaW9uIFtib29sZWFuXScpO1xuICBjb25zb2xlLmxvZygnICAtaCwgLS1oZWxwICAgICAgICAgU2hvdyB0aGlzIHVzYWdlIGluZm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtib29sZWFuXScpO1xuICBjb25zb2xlLmxvZygnJyk7XG4gIGNvbnNvbGUubG9nKCdFeGFtcGxlczonKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coJyAgR2VuZXJhdGVzIGNvbnN0cnVjdHMgZm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBBV1NRUzo6RUtTOjpDbHVzdGVyIGluIFR5cGVTY3JpcHQ6Jyk7XG4gIGNvbnNvbGUubG9nKCcgICAgY2RrLWltcG9ydCBjZm4gLWwgdHlwZXNjcmlwdCBBV1NRUzo6RUtTOjpDbHVzdGVyJyk7XG4gIGNvbnNvbGUubG9nKCk7XG4gIGNvbnNvbGUubG9nKCcgIEdlbmVyYXRlcyBjb25zdHJ1Y3QgaW4gR28gZm9yIGEgc3BlY2lmaWMgcmVzb3VyY2UgdmVyc2lvbjonKTtcbiAgY29uc29sZS5sb2coJyAgICBjZGstaW1wb3J0IGNmbiAtbCBnb2xhbmcgLS1nby1tb2R1bGUgXCJnaXRodWIuY29tL2FjY291bnQvcmVwb1wiIEFXU1FTOjpFS1M6OkNsdXN0ZXJAMS4yLjAnKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coJyAgR2VuZXJhdGVzIGNvbnN0cnVjdCBpbiBQeXRob24gdW5kZXIgdGhlIFwic3JjXCIgc3ViZm9sZGVyIGluc3RlYWQgb2Ygd29ya2luZyBkaXJlY3Rvcnk6Jyk7XG4gIGNvbnNvbGUubG9nKCcgICAgY2RrLWltcG9ydCBjZm4gLWwgcHl0aG9uIC1vIHNyYyBBV1NRUzo6RUtTOjpDbHVzdGVyJyk7XG4gIGNvbnNvbGUubG9nKCk7XG4gIGNvbnNvbGUubG9nKCcgIEdlbmVyYXRlcyBjb25zdHJ1Y3QgaW4gSmF2YSBhbmQgaWRlbnRpZmllcyB0aGUgcmVzb3VyY2UgdHlwZSBieSBpdHMgQVJOOicpO1xuICBjb25zb2xlLmxvZygnICAgIGNkay1pbXBvcnQgY2ZuIC1sIGphdmEgLS1qYXZhLXBhY2thZ2UgXCJjb20uYWNtZS5teXByb2plY3RcIiBhcm46YXdzOmNsb3VkZm9ybWF0aW9uOi4uLicpO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZygnICBHZW5lcmF0ZXMgY29uc3RydWN0IGZvciBhIHByaXZhdGUgdHlwZTonKTtcbiAgY29uc29sZS5sb2coJyAgICBjZGstaW1wb3J0IGNmbiAtbCB0eXBlc2NyaXB0IC0tcHJpdmF0ZSBBY21lOjpTdXBlclNlcnZpY2U6OkZyaWVuZDo6TU9EVUxFJyk7XG4gIGNvbnNvbGUubG9nKCk7XG59XG5cbmZ1bmN0aW9uIHNob3dTQ0hlbHAoKSB7XG4gIGNvbnNvbGUubG9nKCcnKTtcbiAgY29uc29sZS5sb2coJ1VzYWdlOicpO1xuICBjb25zb2xlLmxvZygnICBjZGstaW1wb3J0IHNjIC1sIExBTkdVQUdFJyk7XG4gIGNvbnNvbGUubG9nKCcgIGNkay1pbXBvcnQgc2MgLWwgTEFOR1VBR0UgLXByIFBST0RVQ1QtSUQgLXBhIFBST1ZJU0lPTklORy1BUlRJRkFDVC1JRCAtbHAgTEFVTkNILVBBVEgtSUQnKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coJ09wdGlvbnM6Jyk7XG4gIGNvbnNvbGUubG9nKCcgIC1sLCAtLWxhbmd1YWdlICAgICAgICAgICAgICAgICAgT3V0cHV0IHByb2dyYW1taW5nIGxhbmd1YWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC1vLCAtLW91dGRpciAgICAgICAgICAgICAgICAgICAgT3V0cHV0IGRpcmVjdG9yeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC0tcHJvZHVjdC1pZCAgICAgICAgICAgICAgICAgICAgUHJvZHVjdCBJZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC0tcHJvdmlzaW9uaW5nLWFydGlmYWN0LWlkICAgICAgUHJvdmlzaW9uaW5nIGFydGlmYWN0IElkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC0tcGF0aC1pZCAgICAgICAgICAgICAgICAgICAgICAgTGF1bmNoIHBhdGggSWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC0tZ28tbW9kdWxlICAgICAgICAgICAgICAgICAgICAgR28gbW9kdWxlIG5hbWUgKHJlcXVpcmVkIGlmIGxhbmd1YWdlIGlzIFwiZ29sYW5nXCIpICAgICAgW3N0cmluZ10nKTtcbiAgY29uc29sZS5sb2coJyAgLS1qYXZhLXBhY2thZ2UgICAgICAgICAgICAgICAgICBKYXZhIHBhY2thZ2UgbmFtZSAocmVxdWlyZWQgaWYgbGFuZ3VhZ2UgaXMgXCJqYXZhXCIpICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAtLWNzaGFycC1uYW1lc3BhY2UgICAgICAgICAgICAgIEMjIG5hbWVzcGFjZSAob3B0aW9uYWwgaWYgbGFuZ3VhZ2UgaXMgXCJjc2hhcnBcIiwgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHMgdG8gcmVzb3VyY2UgbmFtZS4nKTtcbiAgY29uc29sZS5sb2coJyAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICAgICBTaG93IHRoaXMgdXNhZ2UgaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Jvb2xlYW5dJyk7XG4gIGNvbnNvbGUubG9nKCcnKTtcbiAgY29uc29sZS5sb2coJ0V4YW1wbGVzOicpO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZygnICBHZW5lcmF0ZXMgY29uc3RydWN0cyBmb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHByb2R1Y3RzIGluIFR5cGVTY3JpcHQ6Jyk7XG4gIGNvbnNvbGUubG9nKCcgICAgY2RrLWltcG9ydCBzYyAtbCB0eXBlc2NyaXB0Jyk7XG4gIGNvbnNvbGUubG9nKCk7XG4gIGNvbnNvbGUubG9nKCcgIEdlbmVyYXRlcyBjb25zdHJ1Y3QgaW4gR28gZm9yIGEgc3BlY2lmaWMgcHJvZHVjdCB2ZXJzaW9uOicpO1xuICBjb25zb2xlLmxvZygnICAgIGNkay1pbXBvcnQgc2MgLWwgZ29sYW5nIC0tZ28tbW9kdWxlIFwiZ2l0aHViLmNvbS9hY2NvdW50L3JlcG9cIiAtcHIgcHJvZC1hYmMxMjMgLXBhIHBhLWFiYzEyMyAtbHAgbHAtYWJjMTIzJyk7XG4gIGNvbnNvbGUubG9nKCk7XG4gIGNvbnNvbGUubG9nKCcgIEdlbmVyYXRlcyBjb25zdHJ1Y3RzIGluIFB5dGhvbiB1bmRlciB0aGUgXCJzcmNcIiBzdWJmb2xkZXIgaW5zdGVhZCBvZiB3b3JraW5nIGRpcmVjdG9yeTonKTtcbiAgY29uc29sZS5sb2coJyAgICBjZGstaW1wb3J0IHNjIC1sIHB5dGhvbiAtbyAuL3NyYycpO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZygpO1xufVxuXG52b2lkIChhc3luYyAoKSA9PiB7XG4gIGlmIChhcmdzLmhlbHAgfHwgIXN1YkNvbW1hbmQpIHtcbiAgICBzaG93SGVscCgpO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfVxuXG4gIGlmICghYXJncy5sYW5ndWFnZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyByZXF1aXJlZCBvcHRpb246IC0tbGFuZ3VhZ2UuIFN1cHBvcnRlZCBsYW5ndWFnZXM6ICR7U1VQUE9SVEVEX0xBTkdVQUdFUy5qb2luKCcsICcpfWApO1xuICB9XG5cbiAgaWYgKFNVUFBPUlRFRF9MQU5HVUFHRVMuaW5kZXhPZihhcmdzLmxhbmd1YWdlKSA9PT0gLTEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGxhbmd1YWdlICR7YXJncy5sYW5ndWFnZX0uIFN1cHBvcnRlZDogJHtTVVBQT1JURURfTEFOR1VBR0VTLmpvaW4oJywgJyl9YCk7XG4gIH1cblxuICBpZiAoc3ViQ29tbWFuZCA9PSAnY2ZuJykge1xuICAgIGlmIChhcmdzLl8ubGVuZ3RoICE9PSAxKSB7XG4gICAgICBzaG93Q2ZuSGVscCgpO1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBbcmVzb3VyY2VOYW1lLCByZXNvdXJjZVZlcnNpb25dID0gYXJncy5fWzBdLnNwbGl0KCdAJyk7XG4gICAgICBjb25zdCB3b3JrZGlyID0gYXdhaXQgZnMubWtkdGVtcChwYXRoLmpvaW4ob3MudG1wZGlyKCksICdjZGstaW1wb3J0JykpO1xuICAgICAgY29uc3QgdHlwZU5hbWUgPSBhd2FpdCBpbXBvcnRSZXNvdXJjZVR5cGUocmVzb3VyY2VOYW1lLCByZXNvdXJjZVZlcnNpb24sIHtcbiAgICAgICAgb3V0ZGlyOiB3b3JrZGlyLFxuICAgICAgICBwcml2YXRlOiBhcmdzLnByaXZhdGUsXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgcmVuZGVyQ29kZSh7XG4gICAgICAgIHNyY2Rpcjogd29ya2RpcixcbiAgICAgICAgbGFuZ3VhZ2U6IGFyZ3MubGFuZ3VhZ2UsXG4gICAgICAgIG91dGRpcjogYXJncy5vdXRkaXIgPz8gJy4nLFxuICAgICAgICB0eXBlTmFtZTogdHlwZU5hbWUsXG4gICAgICAgIGdvTW9kdWxlOiBhcmdzWydnby1tb2R1bGUnXSxcbiAgICAgICAgamF2YVBhY2thZ2U6IGFyZ3NbJ2phdmEtcGFja2FnZSddLFxuICAgICAgICBjc2hhcnBOYW1lc3BhY2U6IGFyZ3NbJ2NzaGFycC1uYW1lc3BhY2UnXSA/PyB0eXBlTmFtZSwgLy8gYWxyZWFkeSBBV1M6OkZvbzo6QmFyXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gIH1cblxuICBpZiAoc3ViQ29tbWFuZCA9PSAnc2MnKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHdvcmtkaXIgPSBhd2FpdCBmcy5ta2R0ZW1wKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ2Nkay1pbXBvcnQnKSk7XG4gICAgICBjb25zdCBwcEFyZ3MgPSBbYXJnc1sncHJvZHVjdC1pZCddLCBhcmdzWydwcm92aXNpb25pbmctYXJ0aWZhY3QtaWQnXSwgYXJnc1sncGF0aC1pZCddXS5maWx0ZXIocGFyYW0gPT4gcGFyYW0gIT0gdW5kZWZpbmVkKTtcblxuICAgICAgaWYgKGFyZ3MuaGVscCB8fCAocHBBcmdzLmxlbmd0aCA+IDAgJiYgcHBBcmdzLmxlbmd0aCAhPSAzKSkge1xuICAgICAgICBzaG93U0NIZWxwKCk7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHByb2R1Y3RzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgaWYgKHBwQXJncy5sZW5ndGggPT0gMykge1xuICAgICAgICBwcm9kdWN0cy5wdXNoKFxuICAgICAgICAgIGF3YWl0IGltcG9ydFByb2R1Y3Qoe1xuICAgICAgICAgICAgb3V0ZGlyOiB3b3JrZGlyLFxuICAgICAgICAgICAgcHJvZHVjdElkOiBhcmdzWydwcm9kdWN0LWlkJ10sXG4gICAgICAgICAgICBsYXVuY2hQYXRoSWQ6IGFyZ3NbJ3BhdGgtaWQnXSxcbiAgICAgICAgICAgIHByb3Zpc2lvbmluZ0FydGlmYWN0SWQ6IGFyZ3NbJ3Byb3Zpc2lvbmluZy1hcnRpZmFjdC1pZCddLFxuICAgICAgICAgIH0pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb2R1Y3RzLnB1c2goXG4gICAgICAgICAgLi4uYXdhaXQgaW1wb3J0UHJvZHVjdHMoe1xuICAgICAgICAgICAgb3V0ZGlyOiB3b3JrZGlyLFxuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9kdWN0cy5tYXAoYXN5bmMgKHByb2R1Y3QpID0+IHtcbiAgICAgICAgY29uc3QgcHJvZHVjdERpciA9IHBhdGguam9pbih3b3JrZGlyLCBjYXNldXRpbC5oZWFkZXIocHJvZHVjdCkudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIGF3YWl0IHJlbmRlckNvZGUoe1xuICAgICAgICAgIHNyY2RpcjogcHJvZHVjdERpcixcbiAgICAgICAgICBsYW5ndWFnZTogYXJncy5sYW5ndWFnZSA/PyAndHlwZXNjcmlwdCcsXG4gICAgICAgICAgb3V0ZGlyOiBhcmdzLm91dGRpciA/PyAnLi9zYy1wcm9kdWN0cycsXG4gICAgICAgICAgdHlwZU5hbWU6IHByb2R1Y3QsXG4gICAgICAgICAgZ29Nb2R1bGU6IGFyZ3NbJ2dvLW1vZHVsZSddLFxuICAgICAgICAgIGphdmFQYWNrYWdlOiBhcmdzWydqYXZhLXBhY2thZ2UnXSxcbiAgICAgICAgICBjc2hhcnBOYW1lc3BhY2U6IGFyZ3NbJ2NzaGFycC1uYW1lc3BhY2UnXSA/PyBwcm9kdWN0LFxuICAgICAgICB9KTtcbiAgICAgIH0pKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgwKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gIH1cbn0pKCk7XG4iXX0=
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLGdEQUFrQztBQUNsQyx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLCtDQUFpQztBQUNqQyx3REFBZ0M7QUFDaEMsNkRBQW9EO0FBQ3BELHdCQUEwRztBQUMxRywyQ0FBOEQ7QUFHOUQsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixRQUFRLEVBQUU7UUFDUixFQUFFLEVBQUUsSUFBSTtRQUNSLEdBQUcsRUFBRSxJQUFJO0tBQ1Y7Q0FDRixDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxJQUFBLG1DQUFhLEVBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRixNQUFNLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFckQsTUFBTSxJQUFJLEdBQUcsSUFBQSxrQkFBUSxFQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRTtJQUNoRCxNQUFNLEVBQUU7UUFDTixRQUFRO1FBQ1IsVUFBVTtRQUNWLGdCQUFnQjtRQUNoQixZQUFZO1FBQ1osMEJBQTBCO1FBQzFCLFNBQVM7UUFDVCxhQUFhO0tBQ2Q7SUFDRCxPQUFPLEVBQUU7UUFDUCxNQUFNO1FBQ04sU0FBUztLQUNWO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsUUFBUSxFQUFFLEdBQUc7UUFDYixhQUFhLEVBQUUsR0FBRztRQUNsQixNQUFNLEVBQUUsR0FBRztRQUNYLFVBQVUsRUFBRSxHQUFHO0tBQ2hCO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsU0FBUyxRQUFRO0lBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoQixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RCLE9BQU8s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Q0FBQztZQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakI7UUFBQyxPQUFPLENBQUMsRUFBRTtZQUNWLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDZixPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ2pCO0tBQ0Y7QUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGNhc2V1dGlsIGZyb20gJ2Nhc2UnO1xuaW1wb3J0IG1pbmltaXN0IGZyb20gJ21pbmltaXN0JztcbmltcG9ydCB7IHBhcnNlQ29tbWFuZHMgfSBmcm9tICdtaW5pbWlzdC1zdWJjb21tYW5kJztcbmltcG9ydCB7IGltcG9ydFJlc291cmNlVHlwZSwgaW1wb3J0UHJvZHVjdHMsIGltcG9ydFByb2R1Y3QsIHJlYWRSZXNvdXJjZURlZmluaXRpb25Gcm9tUmVnaXN0cnkgfSBmcm9tICcuJztcbmltcG9ydCB7IHJlbmRlckNvZGUsIFNVUFBPUlRFRF9MQU5HVUFHRVMgfSBmcm9tICcuL2xhbmd1YWdlcyc7XG5pbXBvcnQgeyBUeXBlSW5mbyB9IGZyb20gJy4vdHlwZS1pbmZvJztcblxuY29uc3QgY29tbWFuZERlZmludGlvbiA9IHtcbiAgY29tbWFuZHM6IHtcbiAgICBzYzogbnVsbCxcbiAgICBjZm46IG51bGwsXG4gIH0sXG59O1xuXG5jb25zdCBwYXJzZWRDb21tYW5kc0FuZEFyZ3YgPSBwYXJzZUNvbW1hbmRzKGNvbW1hbmREZWZpbnRpb24sIHByb2Nlc3MuYXJndi5zbGljZSgyKSk7XG5jb25zdCBzdWJDb21tYW5kID0gcGFyc2VkQ29tbWFuZHNBbmRBcmd2LmNvbW1hbmRzWzBdO1xuXG5jb25zdCBhcmdzID0gbWluaW1pc3QocGFyc2VkQ29tbWFuZHNBbmRBcmd2LmFyZ3YsIHtcbiAgc3RyaW5nOiBbXG4gICAgJ291dGRpcicsXG4gICAgJ2xhbmd1YWdlJyxcbiAgICAnZ28tbW9kdWxlLW5hbWUnLFxuICAgICdwcm9kdWN0LWlkJyxcbiAgICAncHJvdmlzaW9uaW5nLWFydGlmYWN0LWlkJyxcbiAgICAncGF0aC1pZCcsXG4gICAgJ3NjaGVtYS1maWxlJyxcbiAgXSxcbiAgYm9vbGVhbjogW1xuICAgICdoZWxwJyxcbiAgICAncHJpdmF0ZScsXG4gIF0sXG4gIGFsaWFzOiB7XG4gICAgJ291dGRpcic6ICdvJyxcbiAgICAnc2NoZW1hLWZpbGUnOiAncycsXG4gICAgJ2hlbHAnOiAnaCcsXG4gICAgJ2xhbmd1YWdlJzogJ2wnLFxuICB9LFxufSk7XG5cbmZ1bmN0aW9uIHNob3dIZWxwKCkge1xuICBjb25zb2xlLmxvZygnJyk7XG4gIGNvbnNvbGUubG9nKCdVc2FnZTonKTtcbiAgY29uc29sZS5sb2coJyAgY2RrLWltcG9ydCBTVUJDT01NQU5EIChjZm4gb3Igc2MpIFtwYXJhbWV0ZXJzXScpO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZygnR2VuZXJhbCBvcHRpb25zOicpO1xuICBjb25zb2xlLmxvZygnICAtbCwgLS1sYW5ndWFnZSAgICAgT3V0cHV0IHByb2dyYW1taW5nIGxhbmd1YWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC1vLCAtLW91dGRpciAgICAgICBPdXRwdXQgZGlyZWN0b3J5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0cmluZ10nKTtcbiAgY29uc29sZS5sb2coJyAgLXMsIC0tc2NoZW1hLWZpbGUgIFJlYWQgc2NoZW1hIGZyb20gYSBmaWxlIChpbnN0ZWFkIG9mIENGTiByZWdpc3RyeSkgICAgICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAtLWdvLW1vZHVsZSAgICAgICAgR28gbW9kdWxlIG5hbWUgKHJlcXVpcmVkIGlmIGxhbmd1YWdlIGlzIFwiZ29sYW5nXCIpICAgICAgICAgW3N0cmluZ10nKTtcbiAgY29uc29sZS5sb2coJyAgLS1qYXZhLXBhY2thZ2UgICAgIEphdmEgcGFja2FnZSBuYW1lIChyZXF1aXJlZCBpZiBsYW5ndWFnZSBpcyBcImphdmFcIikgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC0tY3NoYXJwLW5hbWVzcGFjZSBDIyBuYW1lc3BhY2UgKG9wdGlvbmFsIGlmIGxhbmd1YWdlIGlzIFwiY3NoYXJwXCIsICAgICAgICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHMgdG8gcmVzb3VyY2UgbmFtZS4nKTtcbiAgY29uc29sZS5sb2coJyAgLWgsIC0taGVscCAgICAgICAgIFNob3cgdXNhZ2UgaW5mbyAoaW5jbHVkZSBzdWJjb21tYW5kIHRvIHNlZSBzcGVjaWZpYyBoZWxwKSBbYm9vbGVhbl0nKTtcbiAgY29uc29sZS5sb2coJycpO1xuICBjb25zb2xlLmxvZygpO1xufVxuXG5mdW5jdGlvbiBzaG93Q2ZuSGVscCgpIHtcbiAgY29uc29sZS5sb2coJycpO1xuICBjb25zb2xlLmxvZygnVXNhZ2U6Jyk7XG4gIGNvbnNvbGUubG9nKCcgIGNkay1pbXBvcnQgY2ZuIC1sIExBTkdVQUdFIFJFU09VUkNFLU5BTUVbQFZFUlNJT05dJyk7XG4gIGNvbnNvbGUubG9nKCk7XG4gIGNvbnNvbGUubG9nKCdPcHRpb25zOicpO1xuICBjb25zb2xlLmxvZygnICAtbCwgLS1sYW5ndWFnZSAgICAgT3V0cHV0IHByb2dyYW1taW5nIGxhbmd1YWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC1vLCAtLW91dGRpciAgICAgICBPdXRwdXQgZGlyZWN0b3J5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0cmluZ10gIFtkZWZhdWx0OiBcIi5cIl0nKTtcbiAgY29uc29sZS5sb2coJyAgLXMsIC0tc2NoZW1hLWZpbGUgIFJlYWQgc2NoZW1hIGZyb20gYSBmaWxlIChpbnN0ZWFkIG9mIENGTiByZWdpc3RyeSkgICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAtLWdvLW1vZHVsZSAgICAgICAgR28gbW9kdWxlIG5hbWUgKHJlcXVpcmVkIGlmIGxhbmd1YWdlIGlzIFwiZ29sYW5nXCIpICAgICAgW3N0cmluZ10nKTtcbiAgY29uc29sZS5sb2coJyAgLS1qYXZhLXBhY2thZ2UgICAgIEphdmEgcGFja2FnZSBuYW1lIChyZXF1aXJlZCBpZiBsYW5ndWFnZSBpcyBcImphdmFcIikgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC0tY3NoYXJwLW5hbWVzcGFjZSBDIyBuYW1lc3BhY2UgKG9wdGlvbmFsIGlmIGxhbmd1YWdlIGlzIFwiY3NoYXJwXCIsICAgICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHMgdG8gcmVzb3VyY2UgbmFtZS4nKTtcbiAgY29uc29sZS5sb2coJyAgLS1wcml2YXRlICAgICAgICAgIEltcG9ydCB0eXBlcyByZWdpc3RlcmVkIGluIHlvdXIgQVdTIGFjY291bnQgYW5kIHJlZ2lvbiBbYm9vbGVhbl0nKTtcbiAgY29uc29sZS5sb2coJyAgLWgsIC0taGVscCAgICAgICAgIFNob3cgdGhpcyB1c2FnZSBpbmZvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbYm9vbGVhbl0nKTtcbiAgY29uc29sZS5sb2coJycpO1xuICBjb25zb2xlLmxvZygnRXhhbXBsZXM6Jyk7XG4gIGNvbnNvbGUubG9nKCk7XG4gIGNvbnNvbGUubG9nKCcgIEdlbmVyYXRlcyBjb25zdHJ1Y3RzIGZvciB0aGUgbGF0ZXN0IHZlcnNpb24gQVdTUVM6OkVLUzo6Q2x1c3RlciBpbiBUeXBlU2NyaXB0OicpO1xuICBjb25zb2xlLmxvZygnICAgIGNkay1pbXBvcnQgY2ZuIC1sIHR5cGVzY3JpcHQgQVdTUVM6OkVLUzo6Q2x1c3RlcicpO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZygnICBHZW5lcmF0ZXMgY29uc3RydWN0IGluIEdvIGZvciBhIHNwZWNpZmljIHJlc291cmNlIHZlcnNpb246Jyk7XG4gIGNvbnNvbGUubG9nKCcgICAgY2RrLWltcG9ydCBjZm4gLWwgZ29sYW5nIC0tZ28tbW9kdWxlIFwiZ2l0aHViLmNvbS9hY2NvdW50L3JlcG9cIiBBV1NRUzo6RUtTOjpDbHVzdGVyQDEuMi4wJyk7XG4gIGNvbnNvbGUubG9nKCk7XG4gIGNvbnNvbGUubG9nKCcgIEdlbmVyYXRlcyBjb25zdHJ1Y3QgaW4gUHl0aG9uIHVuZGVyIHRoZSBcInNyY1wiIHN1YmZvbGRlciBpbnN0ZWFkIG9mIHdvcmtpbmcgZGlyZWN0b3J5OicpO1xuICBjb25zb2xlLmxvZygnICAgIGNkay1pbXBvcnQgY2ZuIC1sIHB5dGhvbiAtbyBzcmMgQVdTUVM6OkVLUzo6Q2x1c3RlcicpO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZygnICBHZW5lcmF0ZXMgY29uc3RydWN0IGluIEphdmEgYW5kIGlkZW50aWZpZXMgdGhlIHJlc291cmNlIHR5cGUgYnkgaXRzIEFSTjonKTtcbiAgY29uc29sZS5sb2coJyAgICBjZGstaW1wb3J0IGNmbiAtbCBqYXZhIC0tamF2YS1wYWNrYWdlIFwiY29tLmFjbWUubXlwcm9qZWN0XCIgYXJuOmF3czpjbG91ZGZvcm1hdGlvbjouLi4nKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coJyAgR2VuZXJhdGVzIGNvbnN0cnVjdCBmb3IgYSBwcml2YXRlIHR5cGU6Jyk7XG4gIGNvbnNvbGUubG9nKCcgICAgY2RrLWltcG9ydCBjZm4gLWwgdHlwZXNjcmlwdCAtLXByaXZhdGUgQWNtZTo6U3VwZXJTZXJ2aWNlOjpGcmllbmQ6Ok1PRFVMRScpO1xuICBjb25zb2xlLmxvZygpO1xufVxuXG5mdW5jdGlvbiBzaG93U0NIZWxwKCkge1xuICBjb25zb2xlLmxvZygnJyk7XG4gIGNvbnNvbGUubG9nKCdVc2FnZTonKTtcbiAgY29uc29sZS5sb2coJyAgY2RrLWltcG9ydCBzYyAtbCBMQU5HVUFHRScpO1xuICBjb25zb2xlLmxvZygnICBjZGstaW1wb3J0IHNjIC1sIExBTkdVQUdFIC1wciBQUk9EVUNULUlEIC1wYSBQUk9WSVNJT05JTkctQVJUSUZBQ1QtSUQgLWxwIExBVU5DSC1QQVRILUlEJyk7XG4gIGNvbnNvbGUubG9nKCk7XG4gIGNvbnNvbGUubG9nKCdPcHRpb25zOicpO1xuICBjb25zb2xlLmxvZygnICAtbCwgLS1sYW5ndWFnZSAgICAgICAgICAgICAgICAgIE91dHB1dCBwcm9ncmFtbWluZyBsYW5ndWFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAtbywgLS1vdXRkaXIgICAgICAgICAgICAgICAgICAgIE91dHB1dCBkaXJlY3RvcnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAtLXByb2R1Y3QtaWQgICAgICAgICAgICAgICAgICAgIFByb2R1Y3QgSWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAtLXByb3Zpc2lvbmluZy1hcnRpZmFjdC1pZCAgICAgIFByb3Zpc2lvbmluZyBhcnRpZmFjdCBJZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAtLXBhdGgtaWQgICAgICAgICAgICAgICAgICAgICAgIExhdW5jaCBwYXRoIElkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAtLWdvLW1vZHVsZSAgICAgICAgICAgICAgICAgICAgIEdvIG1vZHVsZSBuYW1lIChyZXF1aXJlZCBpZiBsYW5ndWFnZSBpcyBcImdvbGFuZ1wiKSAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC0tamF2YS1wYWNrYWdlICAgICAgICAgICAgICAgICAgSmF2YSBwYWNrYWdlIG5hbWUgKHJlcXVpcmVkIGlmIGxhbmd1YWdlIGlzIFwiamF2YVwiKSAgICAgW3N0cmluZ10nKTtcbiAgY29uc29sZS5sb2coJyAgLS1jc2hhcnAtbmFtZXNwYWNlICAgICAgICAgICAgICBDIyBuYW1lc3BhY2UgKG9wdGlvbmFsIGlmIGxhbmd1YWdlIGlzIFwiY3NoYXJwXCIsICAgICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRzIHRvIHJlc291cmNlIG5hbWUuJyk7XG4gIGNvbnNvbGUubG9nKCcgIC1oLCAtLWhlbHAgICAgICAgICAgICAgICAgICAgICAgU2hvdyB0aGlzIHVzYWdlIGluZm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtib29sZWFuXScpO1xuICBjb25zb2xlLmxvZygnJyk7XG4gIGNvbnNvbGUubG9nKCdFeGFtcGxlczonKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coJyAgR2VuZXJhdGVzIGNvbnN0cnVjdHMgZm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBvZiBwcm9kdWN0cyBpbiBUeXBlU2NyaXB0OicpO1xuICBjb25zb2xlLmxvZygnICAgIGNkay1pbXBvcnQgc2MgLWwgdHlwZXNjcmlwdCcpO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZygnICBHZW5lcmF0ZXMgY29uc3RydWN0IGluIEdvIGZvciBhIHNwZWNpZmljIHByb2R1Y3QgdmVyc2lvbjonKTtcbiAgY29uc29sZS5sb2coJyAgICBjZGstaW1wb3J0IHNjIC1sIGdvbGFuZyAtLWdvLW1vZHVsZSBcImdpdGh1Yi5jb20vYWNjb3VudC9yZXBvXCIgLXByIHByb2QtYWJjMTIzIC1wYSBwYS1hYmMxMjMgLWxwIGxwLWFiYzEyMycpO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZygnICBHZW5lcmF0ZXMgY29uc3RydWN0cyBpbiBQeXRob24gdW5kZXIgdGhlIFwic3JjXCIgc3ViZm9sZGVyIGluc3RlYWQgb2Ygd29ya2luZyBkaXJlY3Rvcnk6Jyk7XG4gIGNvbnNvbGUubG9nKCcgICAgY2RrLWltcG9ydCBzYyAtbCBweXRob24gLW8gLi9zcmMnKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coKTtcbn1cblxudm9pZCAoYXN5bmMgKCkgPT4ge1xuICBpZiAoYXJncy5oZWxwICYmIHN1YkNvbW1hbmQgPT09ICdjZm4nKSB7XG4gICAgc2hvd0NmbkhlbHAoKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cbiAgaWYgKGFyZ3MuaGVscCAmJiBzdWJDb21tYW5kID09PSAnc2MnKSB7XG4gICAgc2hvd1NDSGVscCgpO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfVxuICBpZiAoYXJncy5oZWxwIHx8ICFzdWJDb21tYW5kKSB7XG4gICAgc2hvd0hlbHAoKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cblxuICBpZiAoIWFyZ3MubGFuZ3VhZ2UpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgcmVxdWlyZWQgb3B0aW9uOiAtLWxhbmd1YWdlLiBTdXBwb3J0ZWQgbGFuZ3VhZ2VzOiAke1NVUFBPUlRFRF9MQU5HVUFHRVMuam9pbignLCAnKX1gKTtcbiAgfVxuXG4gIGlmIChTVVBQT1JURURfTEFOR1VBR0VTLmluZGV4T2YoYXJncy5sYW5ndWFnZSkgPT09IC0xKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBsYW5ndWFnZSAke2FyZ3MubGFuZ3VhZ2V9LiBTdXBwb3J0ZWQ6ICR7U1VQUE9SVEVEX0xBTkdVQUdFUy5qb2luKCcsICcpfWApO1xuICB9XG5cbiAgaWYgKHN1YkNvbW1hbmQgPT0gJ2NmbicpIHtcbiAgICBpZiAoYXJncy5fLmxlbmd0aCAhPT0gMSkge1xuICAgICAgc2hvd0NmbkhlbHAoKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgW3Jlc291cmNlTmFtZSwgcmVzb3VyY2VWZXJzaW9uXSA9IGFyZ3MuX1swXS5zcGxpdCgnQCcpO1xuICAgICAgY29uc3Qgd29ya2RpciA9IGF3YWl0IGZzLm1rZHRlbXAocGF0aC5qb2luKG9zLnRtcGRpcigpLCAnY2RrLWltcG9ydCcpKTtcblxuICAgICAgbGV0IHR5cGVJbmZvOiBUeXBlSW5mbztcbiAgICAgIGlmIChhcmdzWydzY2hlbWEtZmlsZSddKSB7XG4gICAgICAgIHR5cGVJbmZvID0ge1xuICAgICAgICAgIFR5cGVOYW1lOiByZXNvdXJjZU5hbWUsXG4gICAgICAgICAgU2NoZW1hOiBhd2FpdCBmcy5yZWFkRmlsZShhcmdzWydzY2hlbWEtZmlsZSddLCB7IGVuY29kaW5nOiAndXRmLTgnIH0pLFxuICAgICAgICB9O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdHlwZUluZm8gPSBhd2FpdCByZWFkUmVzb3VyY2VEZWZpbml0aW9uRnJvbVJlZ2lzdHJ5KHJlc291cmNlTmFtZSwgcmVzb3VyY2VWZXJzaW9uLCB7XG4gICAgICAgICAgcHJpdmF0ZTogYXJncy5wcml2YXRlLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdHlwZU5hbWUgPSBpbXBvcnRSZXNvdXJjZVR5cGUodHlwZUluZm8sIHtcbiAgICAgICAgb3V0ZGlyOiBhcmdzLm91dGRpcixcbiAgICAgIH0pO1xuXG4gICAgICBhd2FpdCByZW5kZXJDb2RlKHtcbiAgICAgICAgc3JjZGlyOiB3b3JrZGlyLFxuICAgICAgICBsYW5ndWFnZTogYXJncy5sYW5ndWFnZSxcbiAgICAgICAgb3V0ZGlyOiBhcmdzLm91dGRpciA/PyAnLicsXG4gICAgICAgIHR5cGVOYW1lOiB0eXBlTmFtZSxcbiAgICAgICAgZ29Nb2R1bGU6IGFyZ3NbJ2dvLW1vZHVsZSddLFxuICAgICAgICBqYXZhUGFja2FnZTogYXJnc1snamF2YS1wYWNrYWdlJ10sXG4gICAgICAgIGNzaGFycE5hbWVzcGFjZTogYXJnc1snY3NoYXJwLW5hbWVzcGFjZSddID8/IHR5cGVOYW1lLCAvLyBhbHJlYWR5IEFXUzo6Rm9vOjpCYXJcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cbiAgfVxuXG4gIGlmIChzdWJDb21tYW5kID09ICdzYycpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qgd29ya2RpciA9IGF3YWl0IGZzLm1rZHRlbXAocGF0aC5qb2luKG9zLnRtcGRpcigpLCAnY2RrLWltcG9ydCcpKTtcbiAgICAgIGNvbnN0IHBwQXJncyA9IFthcmdzWydwcm9kdWN0LWlkJ10sIGFyZ3NbJ3Byb3Zpc2lvbmluZy1hcnRpZmFjdC1pZCddLCBhcmdzWydwYXRoLWlkJ11dLmZpbHRlcihwYXJhbSA9PiBwYXJhbSAhPSB1bmRlZmluZWQpO1xuXG4gICAgICBpZiAoYXJncy5oZWxwIHx8IChwcEFyZ3MubGVuZ3RoID4gMCAmJiBwcEFyZ3MubGVuZ3RoICE9IDMpKSB7XG4gICAgICAgIHNob3dTQ0hlbHAoKTtcbiAgICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgICAgfVxuXG4gICAgICBsZXQgcHJvZHVjdHM6IHN0cmluZ1tdID0gW107XG4gICAgICBpZiAocHBBcmdzLmxlbmd0aCA9PSAzKSB7XG4gICAgICAgIHByb2R1Y3RzLnB1c2goXG4gICAgICAgICAgYXdhaXQgaW1wb3J0UHJvZHVjdCh7XG4gICAgICAgICAgICBvdXRkaXI6IHdvcmtkaXIsXG4gICAgICAgICAgICBwcm9kdWN0SWQ6IGFyZ3NbJ3Byb2R1Y3QtaWQnXSxcbiAgICAgICAgICAgIGxhdW5jaFBhdGhJZDogYXJnc1sncGF0aC1pZCddLFxuICAgICAgICAgICAgcHJvdmlzaW9uaW5nQXJ0aWZhY3RJZDogYXJnc1sncHJvdmlzaW9uaW5nLWFydGlmYWN0LWlkJ10sXG4gICAgICAgICAgfSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcHJvZHVjdHMucHVzaChcbiAgICAgICAgICAuLi5hd2FpdCBpbXBvcnRQcm9kdWN0cyh7XG4gICAgICAgICAgICBvdXRkaXI6IHdvcmtkaXIsXG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIGF3YWl0IFByb21pc2UuYWxsKHByb2R1Y3RzLm1hcChhc3luYyAocHJvZHVjdCkgPT4ge1xuICAgICAgICBjb25zdCBwcm9kdWN0RGlyID0gcGF0aC5qb2luKHdvcmtkaXIsIGNhc2V1dGlsLmhlYWRlcihwcm9kdWN0KS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgICAgYXdhaXQgcmVuZGVyQ29kZSh7XG4gICAgICAgICAgc3JjZGlyOiBwcm9kdWN0RGlyLFxuICAgICAgICAgIGxhbmd1YWdlOiBhcmdzLmxhbmd1YWdlID8/ICd0eXBlc2NyaXB0JyxcbiAgICAgICAgICBvdXRkaXI6IGFyZ3Mub3V0ZGlyID8/ICcuL3NjLXByb2R1Y3RzJyxcbiAgICAgICAgICB0eXBlTmFtZTogcHJvZHVjdCxcbiAgICAgICAgICBnb01vZHVsZTogYXJnc1snZ28tbW9kdWxlJ10sXG4gICAgICAgICAgamF2YVBhY2thZ2U6IGFyZ3NbJ2phdmEtcGFja2FnZSddLFxuICAgICAgICAgIGNzaGFycE5hbWVzcGFjZTogYXJnc1snY3NoYXJwLW5hbWVzcGFjZSddID8/IHByb2R1Y3QsXG4gICAgICAgIH0pO1xuICAgICAgfSkpO1xuICAgICAgcHJvY2Vzcy5leGl0KDApO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKGUpO1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cbiAgfVxufSkoKTtcbiJdfQ==
|
package/lib/index.d.ts
CHANGED
|
@@ -1,20 +1,24 @@
|
|
|
1
1
|
import { DescribeResourceTypeOptions } from './cfn-registry';
|
|
2
2
|
import { DescribeProductAggregateOptions } from './service-catalog';
|
|
3
|
+
import { TypeInfo } from './type-info';
|
|
3
4
|
export interface ImportResourceTypeOptions extends DescribeResourceTypeOptions {
|
|
4
5
|
/**
|
|
5
6
|
* @default "."
|
|
6
7
|
*/
|
|
7
8
|
readonly outdir?: string;
|
|
8
9
|
}
|
|
10
|
+
/**
|
|
11
|
+
* Load the resource definition from the CFN registry
|
|
12
|
+
*/
|
|
13
|
+
export declare function readResourceDefinitionFromRegistry(resourceName: string, _resourceVersion: string, options?: DescribeResourceTypeOptions): Promise<TypeInfo>;
|
|
9
14
|
/**
|
|
10
15
|
* Entry point to import CFN resource types
|
|
11
16
|
*
|
|
12
|
-
* @param
|
|
13
|
-
* @param
|
|
14
|
-
* @param outdir the out folder to use (defaults to the current directory)
|
|
17
|
+
* @param typeInfo the schema and metadata information for the type
|
|
18
|
+
* @param options options for code generation
|
|
15
19
|
* @returns name of the resource type
|
|
16
20
|
*/
|
|
17
|
-
export declare function importResourceType(
|
|
21
|
+
export declare function importResourceType(typeInfo: TypeInfo, options: ImportResourceTypeOptions): string;
|
|
18
22
|
/**
|
|
19
23
|
* Configure options for importing products into your local workspace
|
|
20
24
|
*/
|
package/lib/index.js
CHANGED
|
@@ -23,7 +23,7 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.importProducts = exports.importProduct = exports.importResourceType = void 0;
|
|
26
|
+
exports.importProducts = exports.importProduct = exports.importResourceType = exports.readResourceDefinitionFromRegistry = void 0;
|
|
27
27
|
const fs = __importStar(require("fs"));
|
|
28
28
|
const path = __importStar(require("path"));
|
|
29
29
|
const caseutil = __importStar(require("case"));
|
|
@@ -31,23 +31,32 @@ const cfn_registry_1 = require("./cfn-registry");
|
|
|
31
31
|
const cfn_resource_generator_1 = require("./cfn-resource-generator");
|
|
32
32
|
const sc_construct_generator_1 = require("./sc-construct-generator");
|
|
33
33
|
const service_catalog_1 = require("./service-catalog");
|
|
34
|
+
/**
|
|
35
|
+
* Load the resource definition from the CFN registry
|
|
36
|
+
*/
|
|
37
|
+
async function readResourceDefinitionFromRegistry(resourceName, _resourceVersion, options) {
|
|
38
|
+
const type = await (0, cfn_registry_1.describeResourceType)(resourceName, options);
|
|
39
|
+
return {
|
|
40
|
+
TypeName: resourceName,
|
|
41
|
+
Schema: type.Schema,
|
|
42
|
+
SourceUrl: type.SourceUrl,
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
exports.readResourceDefinitionFromRegistry = readResourceDefinitionFromRegistry;
|
|
34
46
|
/**
|
|
35
47
|
* Entry point to import CFN resource types
|
|
36
48
|
*
|
|
37
|
-
* @param
|
|
38
|
-
* @param
|
|
39
|
-
* @param outdir the out folder to use (defaults to the current directory)
|
|
49
|
+
* @param typeInfo the schema and metadata information for the type
|
|
50
|
+
* @param options options for code generation
|
|
40
51
|
* @returns name of the resource type
|
|
41
52
|
*/
|
|
42
|
-
|
|
53
|
+
function importResourceType(typeInfo, options) {
|
|
43
54
|
var _a;
|
|
55
|
+
const gen = new cfn_resource_generator_1.CfnResourceGenerator(typeInfo.TypeName, typeInfo, JSON.parse(typeInfo.Schema));
|
|
44
56
|
const outdir = (_a = options.outdir) !== null && _a !== void 0 ? _a : '.';
|
|
45
|
-
const type = await (0, cfn_registry_1.describeResourceType)(resourceName, options);
|
|
46
|
-
const typeSchema = JSON.parse(type.Schema);
|
|
47
|
-
const gen = new cfn_resource_generator_1.CfnResourceGenerator(type.TypeName, type, typeSchema);
|
|
48
57
|
fs.mkdirSync(outdir, { recursive: true });
|
|
49
58
|
fs.writeFileSync(path.join(outdir, 'index.ts'), gen.render());
|
|
50
|
-
return
|
|
59
|
+
return typeInfo.TypeName;
|
|
51
60
|
}
|
|
52
61
|
exports.importResourceType = importResourceType;
|
|
53
62
|
;
|
|
@@ -95,4 +104,4 @@ async function importProducts(options) {
|
|
|
95
104
|
}
|
|
96
105
|
exports.importProducts = importProducts;
|
|
97
106
|
;
|
|
98
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLCtDQUFpQztBQUNqQyxpREFBbUY7QUFDbkYscUVBQWdFO0FBQ2hFLHFFQUF3RjtBQUN4Rix1REFBc0g7QUFVdEg7O0dBRUc7QUFDSSxLQUFLLFVBQVUsa0NBQWtDLENBQ3RELFlBQW9CLEVBQ3BCLGdCQUF3QixFQUN4QixPQUFxQztJQUNyQyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsbUNBQW9CLEVBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRS9ELE9BQU87UUFDTCxRQUFRLEVBQUUsWUFBWTtRQUN0QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07UUFDbkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO0tBQzFCLENBQUM7QUFDSixDQUFDO0FBWEQsZ0ZBV0M7QUFFRDs7Ozs7O0dBTUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FBQyxRQUFrQixFQUFFLE9BQWtDOztJQUN2RixNQUFNLEdBQUcsR0FBRyxJQUFJLDZDQUFvQixDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7SUFFL0YsTUFBTSxNQUFNLEdBQUcsTUFBQSxPQUFPLENBQUMsTUFBTSxtQ0FBSSxHQUFHLENBQUM7SUFDckMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMxQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRTlELE9BQU8sUUFBUSxDQUFDLFFBQVEsQ0FBQztBQUMzQixDQUFDO0FBUkQsZ0RBUUM7QUFBQSxDQUFDO0FBYUY7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxhQUFhLENBQUMsT0FBNkI7O0lBQy9ELE1BQU0sTUFBTSxHQUFHLE1BQUEsT0FBTyxDQUFDLE1BQU0sbUNBQUksR0FBRyxDQUFDO0lBRXJDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBQSwwQ0FBd0IsRUFBQyxPQUFPLENBQUMsQ0FBQztJQUV4RCxNQUFNLEdBQUcsR0FBRyxJQUFJLHFFQUE0QyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQVEsRUFBRSxVQUFVLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUVoRSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFDbEIsQ0FBQztBQVhELHNDQVdDO0FBQUEsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsY0FBYyxDQUFDLE9BQTZCOztJQUNoRSxNQUFNLE1BQU0sR0FBRyxNQUFBLE9BQU8sQ0FBQyxNQUFNLG1DQUFJLEdBQUcsQ0FBQztJQUNyQyxJQUFJLGVBQWUsR0FBYSxFQUFFLENBQUM7SUFFbkMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUEsd0NBQXNCLEdBQUUsQ0FBQztJQUV6RCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4RCxJQUFJO1lBQ0YsTUFBTSxjQUFjLEdBQUcsTUFBTSxhQUFhLENBQUM7Z0JBQ3pDLE1BQU0sRUFBRSxNQUFNO2dCQUNkLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBVTthQUM5QixDQUFDLENBQUM7WUFDSCxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3RDO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUksQ0FBVyxDQUFDLE9BQU8sd0JBQXdCLE9BQU8sQ0FBQyxTQUFTLEtBQUssQ0FBQyxDQUFDO1lBQ25GLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0ZBQWdGLENBQUMsQ0FBQztTQUMvRjtJQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFSixPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBcEJELHdDQW9CQztBQUFBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2FzZXV0aWwgZnJvbSAnY2FzZSc7XG5pbXBvcnQgeyBkZXNjcmliZVJlc291cmNlVHlwZSwgRGVzY3JpYmVSZXNvdXJjZVR5cGVPcHRpb25zIH0gZnJvbSAnLi9jZm4tcmVnaXN0cnknO1xuaW1wb3J0IHsgQ2ZuUmVzb3VyY2VHZW5lcmF0b3IgfSBmcm9tICcuL2Nmbi1yZXNvdXJjZS1nZW5lcmF0b3InO1xuaW1wb3J0IHsgU2VydmljZUNhdGFsb2dQcm92aXNpb25pbmdDb25zdHJ1Y3RHZW5lcmF0b3IgfSBmcm9tICcuL3NjLWNvbnN0cnVjdC1nZW5lcmF0b3InO1xuaW1wb3J0IHsgZGVzY3JpYmVQcm9kdWN0QWdncmVnYXRlLCBEZXNjcmliZVByb2R1Y3RBZ2dyZWdhdGVPcHRpb25zLCBmZXRjaEF2YWlsYWJsZVByb2R1Y3RzIH0gZnJvbSAnLi9zZXJ2aWNlLWNhdGFsb2cnO1xuaW1wb3J0IHsgVHlwZUluZm8gfSBmcm9tICcuL3R5cGUtaW5mbyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0UmVzb3VyY2VUeXBlT3B0aW9ucyBleHRlbmRzIERlc2NyaWJlUmVzb3VyY2VUeXBlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBAZGVmYXVsdCBcIi5cIlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0ZGlyPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIExvYWQgdGhlIHJlc291cmNlIGRlZmluaXRpb24gZnJvbSB0aGUgQ0ZOIHJlZ2lzdHJ5XG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZWFkUmVzb3VyY2VEZWZpbml0aW9uRnJvbVJlZ2lzdHJ5KFxuICByZXNvdXJjZU5hbWU6IHN0cmluZyxcbiAgX3Jlc291cmNlVmVyc2lvbjogc3RyaW5nLFxuICBvcHRpb25zPzogRGVzY3JpYmVSZXNvdXJjZVR5cGVPcHRpb25zKTogUHJvbWlzZTxUeXBlSW5mbz4ge1xuICBjb25zdCB0eXBlID0gYXdhaXQgZGVzY3JpYmVSZXNvdXJjZVR5cGUocmVzb3VyY2VOYW1lLCBvcHRpb25zKTtcblxuICByZXR1cm4ge1xuICAgIFR5cGVOYW1lOiByZXNvdXJjZU5hbWUsXG4gICAgU2NoZW1hOiB0eXBlLlNjaGVtYSxcbiAgICBTb3VyY2VVcmw6IHR5cGUuU291cmNlVXJsLFxuICB9O1xufVxuXG4vKipcbiAqIEVudHJ5IHBvaW50IHRvIGltcG9ydCBDRk4gcmVzb3VyY2UgdHlwZXNcbiAqXG4gKiBAcGFyYW0gdHlwZUluZm8gdGhlIHNjaGVtYSBhbmQgbWV0YWRhdGEgaW5mb3JtYXRpb24gZm9yIHRoZSB0eXBlXG4gKiBAcGFyYW0gb3B0aW9ucyBvcHRpb25zIGZvciBjb2RlIGdlbmVyYXRpb25cbiAqIEByZXR1cm5zIG5hbWUgb2YgdGhlIHJlc291cmNlIHR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGltcG9ydFJlc291cmNlVHlwZSh0eXBlSW5mbzogVHlwZUluZm8sIG9wdGlvbnM6IEltcG9ydFJlc291cmNlVHlwZU9wdGlvbnMpOiBzdHJpbmcge1xuICBjb25zdCBnZW4gPSBuZXcgQ2ZuUmVzb3VyY2VHZW5lcmF0b3IodHlwZUluZm8uVHlwZU5hbWUsIHR5cGVJbmZvLCBKU09OLnBhcnNlKHR5cGVJbmZvLlNjaGVtYSkpO1xuXG4gIGNvbnN0IG91dGRpciA9IG9wdGlvbnMub3V0ZGlyID8/ICcuJztcbiAgZnMubWtkaXJTeW5jKG91dGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKG91dGRpciwgJ2luZGV4LnRzJyksIGdlbi5yZW5kZXIoKSk7XG5cbiAgcmV0dXJuIHR5cGVJbmZvLlR5cGVOYW1lO1xufTtcblxuLyoqXG4gKiBDb25maWd1cmUgb3B0aW9ucyBmb3IgaW1wb3J0aW5nIHByb2R1Y3RzIGludG8geW91ciBsb2NhbCB3b3Jrc3BhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbXBvcnRQcm9kdWN0T3B0aW9ucyBleHRlbmRzIERlc2NyaWJlUHJvZHVjdEFnZ3JlZ2F0ZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGZvbGRlciBpbiB3aGljaCBwcm9kdWN0IGNvbnN0cnVjdHMgKGFzIHNlcGFyYXRlIGNsYXNzIGZpbGVzKSB3aWxsIGJlIG91dHB1dCB0by5cbiAgICogQGRlZmF1bHQgXCIuL3NjLXByb2R1Y3RzXCJcbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBFbnRyeSBwb2ludCB0byBpbXBvcnQgU2VydmljZSBDYXRhbG9nIHByb2R1Y3QgcmVzb3VyY2UuXG4gKlxuICogQHJldHVybnMgbmFtZSBvZiB0aGUgcHJvZHVjdCB2ZXJzaW9uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbXBvcnRQcm9kdWN0KG9wdGlvbnM6IEltcG9ydFByb2R1Y3RPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3Qgb3V0ZGlyID0gb3B0aW9ucy5vdXRkaXIgPz8gJy4nO1xuXG4gIGNvbnN0IHByb2R1Y3QgPSBhd2FpdCBkZXNjcmliZVByb2R1Y3RBZ2dyZWdhdGUob3B0aW9ucyk7XG5cbiAgY29uc3QgZ2VuID0gbmV3IFNlcnZpY2VDYXRhbG9nUHJvdmlzaW9uaW5nQ29uc3RydWN0R2VuZXJhdG9yKHByb2R1Y3QpO1xuICBmcy5ta2RpclN5bmMob3V0ZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgY29uc3QgcHJvZERpciA9IGZzLm1rZGlyU3luYyhwYXRoLmpvaW4ob3V0ZGlyLCBjYXNldXRpbC5oZWFkZXIoZ2VuLm5hbWUpLnRvTG93ZXJDYXNlKCkpLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4ocHJvZERpciEsICdpbmRleC50cycpLCBnZW4ucmVuZGVyKCkpO1xuXG4gIHJldHVybiBnZW4ubmFtZTtcbn07XG5cbi8qKlxuICogRW50cnkgcG9pbnQgdG8gaW1wb3J0IGFsbCBhdmFpbGFibGUgU2VydmljZSBDYXRhbG9nIHByb2R1Y3QgcmVzb3VyY2VzIHdpdGggYERFRkFVTFRgIHBhcmFtZXRlcnMuXG4gKlxuICogQHJldHVybnMgbmFtZXMgb2YgdGhlIHByb2R1Y3QgdmVyc2lvbnNcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGltcG9ydFByb2R1Y3RzKG9wdGlvbnM6IEltcG9ydFByb2R1Y3RPcHRpb25zKTogUHJvbWlzZTxzdHJpbmdbXT4ge1xuICBjb25zdCBvdXRkaXIgPSBvcHRpb25zLm91dGRpciA/PyAnLic7XG4gIGxldCBwcm9kdWN0VmVyc2lvbnM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3QgYXZhaWxhYmxlUHJvZHVjdHMgPSBhd2FpdCBmZXRjaEF2YWlsYWJsZVByb2R1Y3RzKCk7XG5cbiAgYXdhaXQgUHJvbWlzZS5hbGwoYXZhaWxhYmxlUHJvZHVjdHMubWFwKGFzeW5jIChwcm9kdWN0KSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHByb2R1Y3RWZXJzaW9uID0gYXdhaXQgaW1wb3J0UHJvZHVjdCh7XG4gICAgICAgIG91dGRpcjogb3V0ZGlyLFxuICAgICAgICBwcm9kdWN0SWQ6IHByb2R1Y3QuUHJvZHVjdElkISxcbiAgICAgIH0pO1xuICAgICAgcHJvZHVjdFZlcnNpb25zLnB1c2gocHJvZHVjdFZlcnNpb24pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGNvbnNvbGUubG9nKGAkeyhlIGFzIEVycm9yKS5tZXNzYWdlfSBTa2lwcGluZyBpbXBvcnQgZm9yICR7cHJvZHVjdC5Qcm9kdWN0SWR9Li4uYCk7XG4gICAgICBjb25zb2xlLmxvZygndHJ5IGltcG9ydGluZyBkaXJlY3RseSB2aWEgLS1wcm9kdWN0LWlkLCAtLXByb3Zpc2lvbmluZy1hcnRpZmFjdC1pZCwgLS1wYXRoLWlkJyk7XG4gICAgfVxuICB9KSk7XG5cbiAgcmV0dXJuIHByb2R1Y3RWZXJzaW9ucztcbn07XG4iXX0=
|
package/lib/type-info.d.ts
CHANGED
|
@@ -2,10 +2,20 @@
|
|
|
2
2
|
* Interface to specify additional type information
|
|
3
3
|
*/
|
|
4
4
|
export interface TypeInfo {
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* The name of the resource type
|
|
7
|
+
*
|
|
8
|
+
* Looks like 'AWS::<Service>::<Resource>'.
|
|
9
|
+
*/
|
|
6
10
|
TypeName: string;
|
|
7
|
-
/**
|
|
8
|
-
|
|
9
|
-
|
|
11
|
+
/**
|
|
12
|
+
* The URL of the source code of the resource type
|
|
13
|
+
*
|
|
14
|
+
* `undefined` if using a local schema file.
|
|
15
|
+
*/
|
|
16
|
+
SourceUrl?: string;
|
|
17
|
+
/**
|
|
18
|
+
* The JSON schema of the resource type as JSON encoded string
|
|
19
|
+
*/
|
|
10
20
|
Schema: string;
|
|
11
21
|
}
|
package/lib/type-info.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZS1pbmZvLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3R5cGUtaW5mby50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBJbnRlcmZhY2UgdG8gc3BlY2lmeSBhZGRpdGlvbmFsIHR5cGUgaW5mb3JtYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUeXBlSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgcmVzb3VyY2UgdHlwZVxuICAgKlxuICAgKiBMb29rcyBsaWtlICdBV1M6OjxTZXJ2aWNlPjo6PFJlc291cmNlPicuXG4gICovXG4gIFR5cGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBVUkwgb2YgdGhlIHNvdXJjZSBjb2RlIG9mIHRoZSByZXNvdXJjZSB0eXBlXG4gICAqXG4gICAqIGB1bmRlZmluZWRgIGlmIHVzaW5nIGEgbG9jYWwgc2NoZW1hIGZpbGUuXG4gICAqL1xuICBTb3VyY2VVcmw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBKU09OIHNjaGVtYSBvZiB0aGUgcmVzb3VyY2UgdHlwZSBhcyBKU09OIGVuY29kZWQgc3RyaW5nXG4gICAqL1xuICBTY2hlbWE6IHN0cmluZztcbn0iXX0=
|
package/package.json
CHANGED
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"jsii": "^1.59.0",
|
|
42
42
|
"json-schema": "^0.4.0",
|
|
43
43
|
"npm-check-updates": "^12",
|
|
44
|
-
"projen": "^0.56.
|
|
44
|
+
"projen": "^0.56.35",
|
|
45
45
|
"standard-version": "^9",
|
|
46
46
|
"ts-jest": "^27",
|
|
47
47
|
"ts-node": "^10.8.0",
|
|
@@ -49,11 +49,11 @@
|
|
|
49
49
|
},
|
|
50
50
|
"dependencies": {
|
|
51
51
|
"aws-cdk-lib": "^2.25.0",
|
|
52
|
-
"aws-sdk": "^2.
|
|
52
|
+
"aws-sdk": "^2.1145.0",
|
|
53
53
|
"case": "^1.6.3",
|
|
54
54
|
"constructs": "^10",
|
|
55
|
-
"jsii-srcmak": "^0.1.
|
|
56
|
-
"json2jsii": "^0.3.
|
|
55
|
+
"jsii-srcmak": "^0.1.573",
|
|
56
|
+
"json2jsii": "^0.3.22",
|
|
57
57
|
"minimist": "^1.2.6",
|
|
58
58
|
"minimist-subcommand": "^3.0.2",
|
|
59
59
|
"proxy-agent": "^5.0.0"
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
},
|
|
64
64
|
"main": "lib/index.js",
|
|
65
65
|
"license": "Apache-2.0",
|
|
66
|
-
"version": "0.2.
|
|
66
|
+
"version": "0.2.186",
|
|
67
67
|
"jest": {
|
|
68
68
|
"testMatch": [
|
|
69
69
|
"<rootDir>/src/**/__tests__/**/*.ts?(x)",
|