cdk-import 0.2.160 → 0.2.163
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 +68 -9
- package/lib/cli.js +141 -30
- package/lib/index.js +14 -7
- package/lib/languages.d.ts +4 -0
- package/lib/languages.js +2 -2
- package/lib/sc-construct-generator.d.ts +1 -0
- package/lib/sc-construct-generator.js +12 -2
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# cdk-import
|
|
2
2
|
|
|
3
|
-
> Generates CDK
|
|
4
|
-
> modules.
|
|
3
|
+
> Generates CDK constructs from sources such as public CloudFormation Registry types and
|
|
4
|
+
> modules (L1s) as well as AWS Service Catalog product versions.
|
|
5
5
|
|
|
6
6
|
## Installation
|
|
7
7
|
|
|
@@ -11,15 +11,38 @@ npm install -g cdk-import
|
|
|
11
11
|
|
|
12
12
|
## Usage
|
|
13
13
|
|
|
14
|
+
There are currently two sources that resources can be generated from. The subcommand
|
|
15
|
+
`cfn` is used to import from CloudFormation Registry,
|
|
16
|
+
`sc` is used to import AWS Service Catalog products.
|
|
17
|
+
There are shared general options for output directories and target language.
|
|
18
|
+
|
|
19
|
+
```shell
|
|
20
|
+
Usage:
|
|
21
|
+
cdk-import SUBCOMMAND (cfn or sc) [parameters]
|
|
22
|
+
|
|
23
|
+
General Options:
|
|
24
|
+
-l, --language Output programming language [string]
|
|
25
|
+
-o, --outdir Output directory [string]
|
|
26
|
+
--go-module Go module name (required if language is "golang") [string]
|
|
27
|
+
--java-package Java package name (required if language is "java") [string]
|
|
28
|
+
--csharp-namespace C# namespace (optional if language is "csharp", [string]
|
|
29
|
+
defaults to resource name.)
|
|
30
|
+
-h, --help Show usage info (include subcommand to see specific help) [boolean]
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## CloudFormation Registry Usage
|
|
34
|
+
|
|
14
35
|
```shell
|
|
15
36
|
Usage:
|
|
16
|
-
cdk-import -l LANGUAGE RESOURCE-NAME[@VERSION]
|
|
37
|
+
cdk-import cfn -l LANGUAGE RESOURCE-NAME[@VERSION]
|
|
17
38
|
|
|
18
39
|
Options:
|
|
19
40
|
-l, --language Output programming language [string]
|
|
20
41
|
-o, --outdir Output directory [string] [default: "."]
|
|
21
42
|
--go-module Module name (required if language is "golang") [string]
|
|
22
43
|
--java-package Java package name (required if language is "java") [string]
|
|
44
|
+
--csharp-namespace C# namespace (optional if language is "csharp", [string]
|
|
45
|
+
defaults to resource name.)
|
|
23
46
|
-h, --help Show this usage info [boolean]
|
|
24
47
|
```
|
|
25
48
|
|
|
@@ -112,34 +135,70 @@ Will generate a Go module under: `awsqs-eks-cluster`.
|
|
|
112
135
|
Generates constructs for the latest version AWSQS::EKS::Cluster in TypeScript:
|
|
113
136
|
|
|
114
137
|
```shell
|
|
115
|
-
cdk-import -l typescript AWSQS::EKS::Cluster
|
|
138
|
+
cdk-import cfn -l typescript AWSQS::EKS::Cluster
|
|
116
139
|
```
|
|
117
140
|
|
|
118
141
|
Generates construct in Go for a specific resource version:
|
|
119
142
|
|
|
120
143
|
```shell
|
|
121
|
-
cdk-import -l golang --go-module "github.com/account/repo" AWSQS::EKS::Cluster@1.2.0
|
|
144
|
+
cdk-import cfn -l golang --go-module "github.com/account/repo" AWSQS::EKS::Cluster@1.2.0
|
|
122
145
|
```
|
|
123
146
|
|
|
124
147
|
Generates construct in Python under the "src" subfolder instead of working
|
|
125
148
|
directory:
|
|
126
149
|
|
|
127
150
|
```shell
|
|
128
|
-
cdk-import -l python -o src AWSQS::EKS::Cluster
|
|
151
|
+
cdk-import cfn -l python -o src AWSQS::EKS::Cluster
|
|
129
152
|
```
|
|
130
153
|
|
|
131
154
|
Generates construct in Java and identifies the resource type by its ARN:
|
|
132
155
|
|
|
133
156
|
```shell
|
|
134
|
-
cdk-import -l java --java-package "com.acme.myproject" arn:aws:cloudformation:...
|
|
157
|
+
cdk-import cfn -l java --java-package "com.acme.myproject" arn:aws:cloudformation:...
|
|
135
158
|
```
|
|
136
159
|
|
|
137
160
|
Modules are also supported:
|
|
138
161
|
|
|
139
162
|
```shell
|
|
140
|
-
cdk-import AWSQS::CheckPoint::CloudGuardQS::MODULE
|
|
163
|
+
cdk-import cfn AWSQS::CheckPoint::CloudGuardQS::MODULE
|
|
141
164
|
```
|
|
142
165
|
|
|
166
|
+
## AWS Service Catalog Usage
|
|
167
|
+
|
|
168
|
+
The cdk-import tool generates a user friendly version of a provisioned product
|
|
169
|
+
that can be used like a normal cdk construct within a cdk app.
|
|
170
|
+
You can currently either specify a specific product version or generate all available products
|
|
171
|
+
The tool will call APIs and attempt to resolve default artifact and launch path for a product,
|
|
172
|
+
if a singular product version or launch path cannot be resolved, it will throw an error.
|
|
173
|
+
You will need Service Catalog end-user read permissions to call these APIs.
|
|
174
|
+
|
|
175
|
+
```shell
|
|
176
|
+
Usage:
|
|
177
|
+
cdk-import sc -l LANGUAGE
|
|
178
|
+
cdk-import sc -l LANGUAGE --product-id PRODUCT-ID --provisioning-artifact-id PROVISIONING-ARTIFACT-ID --path-id LAUNCH-PATH-ID
|
|
179
|
+
|
|
180
|
+
Options:
|
|
181
|
+
-l, --language Output programming language [string]
|
|
182
|
+
-o, --outdir Output directory (default "./sc-products") [string]
|
|
183
|
+
--product-id Product Id [string]
|
|
184
|
+
--provisioning-artifact-id Provisioning artifact Id [string]
|
|
185
|
+
--path-id Launch path Id [string]
|
|
186
|
+
--go-module Module name (required if language is "golang") [string]
|
|
187
|
+
--java-package Java package name (required if language is "java") [string]
|
|
188
|
+
--csharp-namespace C# namespace (optional if language is "csharp", [string]
|
|
189
|
+
defaults to resource name.)
|
|
190
|
+
-h, --help Show this usage info [boolean]
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
The `--language` option specifies the output programming language. Supported
|
|
194
|
+
languages: `typescript`, `java`, `python`, `csharp` and `golang`.
|
|
195
|
+
|
|
196
|
+
If you are using `csharp`, you must specify a `--csharp-namespace` within your project.
|
|
197
|
+
|
|
198
|
+
Output will be generated relative to `--outdir` which defaults to the current
|
|
199
|
+
working directory under `./sc-products`.
|
|
200
|
+
|
|
201
|
+
|
|
143
202
|
## Contributing
|
|
144
203
|
|
|
145
204
|
See [CONTRIBUTING](CONTRIBUTING.md)
|
|
@@ -151,4 +210,4 @@ information.
|
|
|
151
210
|
|
|
152
211
|
## License
|
|
153
212
|
|
|
154
|
-
This project is licensed under the Apache-2.0 License.
|
|
213
|
+
This project is licensed under the Apache-2.0 License.
|
package/lib/cli.js
CHANGED
|
@@ -30,14 +30,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
30
30
|
const fs = __importStar(require("fs/promises"));
|
|
31
31
|
const os = __importStar(require("os"));
|
|
32
32
|
const path = __importStar(require("path"));
|
|
33
|
+
const caseutil = __importStar(require("case"));
|
|
33
34
|
const minimist_1 = __importDefault(require("minimist"));
|
|
35
|
+
const minimist_subcommand_1 = require("minimist-subcommand");
|
|
34
36
|
const _1 = require(".");
|
|
35
37
|
const languages_1 = require("./languages");
|
|
36
|
-
const
|
|
38
|
+
const commandDefintion = {
|
|
39
|
+
commands: {
|
|
40
|
+
sc: null,
|
|
41
|
+
cfn: null,
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
const parsedCommandsAndArgv = (0, minimist_subcommand_1.parseCommands)(commandDefintion, process.argv.slice(2));
|
|
45
|
+
const subCommand = parsedCommandsAndArgv.commands[0];
|
|
46
|
+
const args = (0, minimist_1.default)(parsedCommandsAndArgv.argv, {
|
|
37
47
|
string: [
|
|
38
48
|
'outdir',
|
|
39
49
|
'language',
|
|
40
50
|
'go-module-name',
|
|
51
|
+
'product-id',
|
|
52
|
+
'provisioning-artifact-id',
|
|
53
|
+
'path-id',
|
|
41
54
|
],
|
|
42
55
|
boolean: [
|
|
43
56
|
'help',
|
|
@@ -52,65 +65,163 @@ const args = (0, minimist_1.default)(process.argv.slice(2), {
|
|
|
52
65
|
function showHelp() {
|
|
53
66
|
console.log('');
|
|
54
67
|
console.log('Usage:');
|
|
55
|
-
console.log(' cdk-import
|
|
68
|
+
console.log(' cdk-import SUBCOMMAND (cfn or sc) [parameters]');
|
|
69
|
+
console.log();
|
|
70
|
+
console.log('General options:');
|
|
71
|
+
console.log(' -l, --language Output programming language [string]');
|
|
72
|
+
console.log(' -o, --outdir Output directory [string]');
|
|
73
|
+
console.log(' --go-module Go module name (required if language is "golang") [string]');
|
|
74
|
+
console.log(' --java-package Java package name (required if language is "java") [string]');
|
|
75
|
+
console.log(' --csharp-namespace C# namespace (optional if language is "csharp", [string]');
|
|
76
|
+
console.log(' defaults to resource name.');
|
|
77
|
+
console.log(' -h, --help Show usage info (include subcommand to see specific help) [boolean]');
|
|
78
|
+
console.log('');
|
|
79
|
+
console.log();
|
|
80
|
+
}
|
|
81
|
+
function showCfnHelp() {
|
|
82
|
+
console.log('');
|
|
83
|
+
console.log('Usage:');
|
|
84
|
+
console.log(' cdk-import cfn -l LANGUAGE RESOURCE-NAME[@VERSION]');
|
|
56
85
|
console.log();
|
|
57
86
|
console.log('Options:');
|
|
58
87
|
console.log(' -l, --language Output programming language [string]');
|
|
59
88
|
console.log(' -o, --outdir Output directory [string] [default: "."]');
|
|
60
89
|
console.log(' --go-module Go module name (required if language is "golang") [string]');
|
|
61
90
|
console.log(' --java-package Java package name (required if language is "java") [string]');
|
|
91
|
+
console.log(' --csharp-namespace C# namespace (optional if language is "csharp", [string]');
|
|
92
|
+
console.log(' defaults to resource name.');
|
|
62
93
|
console.log(' --private Import types registered in your AWS account and region [boolean]');
|
|
63
94
|
console.log(' -h, --help Show this usage info [boolean]');
|
|
64
95
|
console.log('');
|
|
65
96
|
console.log('Examples:');
|
|
66
97
|
console.log();
|
|
67
98
|
console.log(' Generates constructs for the latest version AWSQS::EKS::Cluster in TypeScript:');
|
|
68
|
-
console.log(' cdk-import -l typescript AWSQS::EKS::Cluster');
|
|
99
|
+
console.log(' cdk-import cfn -l typescript AWSQS::EKS::Cluster');
|
|
69
100
|
console.log();
|
|
70
101
|
console.log(' Generates construct in Go for a specific resource version:');
|
|
71
|
-
console.log(' cdk-import -l golang --go-module "github.com/account/repo" AWSQS::EKS::Cluster@1.2.0');
|
|
102
|
+
console.log(' cdk-import cfn -l golang --go-module "github.com/account/repo" AWSQS::EKS::Cluster@1.2.0');
|
|
72
103
|
console.log();
|
|
73
104
|
console.log(' Generates construct in Python under the "src" subfolder instead of working directory:');
|
|
74
|
-
console.log(' cdk-import -l python -o src AWSQS::EKS::Cluster');
|
|
105
|
+
console.log(' cdk-import cfn -l python -o src AWSQS::EKS::Cluster');
|
|
75
106
|
console.log();
|
|
76
107
|
console.log(' Generates construct in Java and identifies the resource type by its ARN:');
|
|
77
|
-
console.log(' cdk-import -l java --java-package "com.acme.myproject" arn:aws:cloudformation:...');
|
|
108
|
+
console.log(' cdk-import cfn -l java --java-package "com.acme.myproject" arn:aws:cloudformation:...');
|
|
78
109
|
console.log();
|
|
79
110
|
console.log(' Generates construct for a private type:');
|
|
80
|
-
console.log(' cdk-import -l typescript --private Acme::SuperService::Friend::MODULE');
|
|
111
|
+
console.log(' cdk-import cfn -l typescript --private Acme::SuperService::Friend::MODULE');
|
|
112
|
+
console.log();
|
|
113
|
+
}
|
|
114
|
+
function showSCHelp() {
|
|
115
|
+
console.log('');
|
|
116
|
+
console.log('Usage:');
|
|
117
|
+
console.log(' cdk-import sc -l LANGUAGE');
|
|
118
|
+
console.log(' cdk-import sc -l LANGUAGE -pr PRODUCT-ID -pa PROVISIONING-ARTIFACT-ID -lp LAUNCH-PATH-ID');
|
|
119
|
+
console.log();
|
|
120
|
+
console.log('Options:');
|
|
121
|
+
console.log(' -l, --language Output programming language [string]');
|
|
122
|
+
console.log(' -o, --outdir Output directory [string]');
|
|
123
|
+
console.log(' --product-id Product Id [string]');
|
|
124
|
+
console.log(' --provisioning-artifact-id Provisioning artifact Id [string]');
|
|
125
|
+
console.log(' --path-id Launch path Id [string]');
|
|
126
|
+
console.log(' --go-module Go module name (required if language is "golang") [string]');
|
|
127
|
+
console.log(' --java-package Java package name (required if language is "java") [string]');
|
|
128
|
+
console.log(' --csharp-namespace C# namespace (optional if language is "csharp", [string]');
|
|
129
|
+
console.log(' defaults to resource name.');
|
|
130
|
+
console.log(' -h, --help Show this usage info [boolean]');
|
|
131
|
+
console.log('');
|
|
132
|
+
console.log('Examples:');
|
|
133
|
+
console.log();
|
|
134
|
+
console.log(' Generates constructs for the latest version of products in TypeScript:');
|
|
135
|
+
console.log(' cdk-import sc -l typescript');
|
|
136
|
+
console.log();
|
|
137
|
+
console.log(' Generates construct in Go for a specific product version:');
|
|
138
|
+
console.log(' cdk-import sc -l golang --go-module "github.com/account/repo" -pr prod-abc123 -pa pa-abc123 -lp lp-abc123');
|
|
139
|
+
console.log();
|
|
140
|
+
console.log(' Generates constructs in Python under the "src" subfolder instead of working directory:');
|
|
141
|
+
console.log(' cdk-import sc -l python -o ./src');
|
|
142
|
+
console.log();
|
|
81
143
|
console.log();
|
|
82
144
|
}
|
|
83
145
|
void (async () => {
|
|
84
|
-
var _a;
|
|
85
|
-
if (args.help ||
|
|
146
|
+
var _a, _b;
|
|
147
|
+
if (args.help || !subCommand) {
|
|
86
148
|
showHelp();
|
|
87
149
|
process.exit(1);
|
|
88
150
|
}
|
|
89
151
|
if (!args.language) {
|
|
90
|
-
throw new Error(`Missing required option: --language. Supported languages: ${languages_1.SUPPORTED_LANGUAGES.join(',')}`);
|
|
152
|
+
throw new Error(`Missing required option: --language. Supported languages: ${languages_1.SUPPORTED_LANGUAGES.join(', ')}`);
|
|
91
153
|
}
|
|
92
154
|
if (languages_1.SUPPORTED_LANGUAGES.indexOf(args.language) === -1) {
|
|
93
|
-
throw new Error(`Unsupported language ${args.language}. Supported: ${languages_1.SUPPORTED_LANGUAGES.join(',')}`);
|
|
155
|
+
throw new Error(`Unsupported language ${args.language}. Supported: ${languages_1.SUPPORTED_LANGUAGES.join(', ')}`);
|
|
94
156
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
157
|
+
if (subCommand == 'cfn') {
|
|
158
|
+
if (args._.length !== 1) {
|
|
159
|
+
showCfnHelp();
|
|
160
|
+
process.exit(1);
|
|
161
|
+
}
|
|
162
|
+
try {
|
|
163
|
+
const [resourceName, resourceVersion] = args._[0].split('@');
|
|
164
|
+
const workdir = await fs.mkdtemp(path.join(os.tmpdir(), 'cdk-import'));
|
|
165
|
+
const typeName = await (0, _1.importResourceType)(resourceName, resourceVersion, {
|
|
166
|
+
outdir: workdir,
|
|
167
|
+
private: args.private,
|
|
168
|
+
});
|
|
169
|
+
await (0, languages_1.renderCode)({
|
|
170
|
+
srcdir: workdir,
|
|
171
|
+
language: args.language,
|
|
172
|
+
outdir: (_a = args.outdir) !== null && _a !== void 0 ? _a : '.',
|
|
173
|
+
typeName: typeName,
|
|
174
|
+
goModule: args['go-module'],
|
|
175
|
+
javaPackage: args['java-package'],
|
|
176
|
+
csharpNamespace: (_b = args['csharp-namespace']) !== null && _b !== void 0 ? _b : typeName, // already AWS::Foo::Bar
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
catch (e) {
|
|
180
|
+
console.log(e);
|
|
181
|
+
process.exit(1);
|
|
182
|
+
}
|
|
110
183
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
184
|
+
if (subCommand == 'sc') {
|
|
185
|
+
try {
|
|
186
|
+
const workdir = await fs.mkdtemp(path.join(os.tmpdir(), 'cdk-import'));
|
|
187
|
+
const ppArgs = [args['product-id'], args['provisioning-artifact-id'], args['path-id']].filter(param => param != undefined);
|
|
188
|
+
if (args.help || (ppArgs.length > 0 && ppArgs.length != 3)) {
|
|
189
|
+
showSCHelp();
|
|
190
|
+
process.exit(1);
|
|
191
|
+
}
|
|
192
|
+
let products = [];
|
|
193
|
+
if (ppArgs.length == 3) {
|
|
194
|
+
products.push(await (0, _1.importProduct)({
|
|
195
|
+
outdir: workdir,
|
|
196
|
+
productId: args['product-id'],
|
|
197
|
+
launchPathId: args['path-id'],
|
|
198
|
+
provisioningArtifactId: args['provisioning-artifact-id'],
|
|
199
|
+
}));
|
|
200
|
+
}
|
|
201
|
+
else {
|
|
202
|
+
products.push(...await (0, _1.importProducts)({
|
|
203
|
+
outdir: workdir,
|
|
204
|
+
}));
|
|
205
|
+
}
|
|
206
|
+
await Promise.all(products.map(async (product) => {
|
|
207
|
+
var _a, _b, _c;
|
|
208
|
+
const productDir = path.join(workdir, caseutil.header(product).toLowerCase());
|
|
209
|
+
await (0, languages_1.renderCode)({
|
|
210
|
+
srcdir: productDir,
|
|
211
|
+
language: (_a = args.language) !== null && _a !== void 0 ? _a : 'typescript',
|
|
212
|
+
outdir: (_b = args.outdir) !== null && _b !== void 0 ? _b : './sc-products',
|
|
213
|
+
typeName: product,
|
|
214
|
+
goModule: args['go-module'],
|
|
215
|
+
javaPackage: args['java-package'],
|
|
216
|
+
csharpNamespace: (_c = args['csharp-namespace']) !== null && _c !== void 0 ? _c : product,
|
|
217
|
+
});
|
|
218
|
+
}));
|
|
219
|
+
process.exit(0);
|
|
220
|
+
}
|
|
221
|
+
catch (e) {
|
|
222
|
+
console.log(e);
|
|
223
|
+
process.exit(1);
|
|
224
|
+
}
|
|
114
225
|
}
|
|
115
226
|
})();
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLGdEQUFrQztBQUNsQyx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLHdEQUFnQztBQUNoQyx3QkFBdUM7QUFDdkMsMkNBQThEO0FBRTlELE1BQU0sSUFBSSxHQUFHLElBQUEsa0JBQVEsRUFBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUMzQyxNQUFNLEVBQUU7UUFDTixRQUFRO1FBQ1IsVUFBVTtRQUNWLGdCQUFnQjtLQUNqQjtJQUNELE9BQU8sRUFBRTtRQUNQLE1BQU07UUFDTixTQUFTO0tBQ1Y7SUFDRCxLQUFLLEVBQUU7UUFDTCxNQUFNLEVBQUUsR0FBRztRQUNYLElBQUksRUFBRSxHQUFHO1FBQ1QsUUFBUSxFQUFFLEdBQUc7S0FDZDtDQUNGLENBQUMsQ0FBQztBQUVILFNBQVMsUUFBUTtJQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7SUFDaEUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLHNGQUFzRixDQUFDLENBQUM7SUFDcEcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxzR0FBc0csQ0FBQyxDQUFDO0lBQ3BILE9BQU8sQ0FBQyxHQUFHLENBQUMsc0ZBQXNGLENBQUMsQ0FBQztJQUNwRyxPQUFPLENBQUMsR0FBRyxDQUFDLHNGQUFzRixDQUFDLENBQUM7SUFDcEcsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1RkFBdUYsQ0FBQyxDQUFDO0lB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SjtJQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDakI7QUFDSCxDQUFDLENBQUMsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiIyEvdXNyL2Jpbi9lbnYgbm9kZVxuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0ICogYXMgb3MgZnJvbSAnb3MnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBtaW5pbWlzdCBmcm9tICdtaW5pbWlzdCc7XG5pbXBvcnQgeyBpbXBvcnRSZXNvdXJjZVR5cGUgfSBmcm9tICcuJztcbmltcG9ydCB7IHJlbmRlckNvZGUsIFNVUFBPUlRFRF9MQU5HVUFHRVMgfSBmcm9tICcuL2xhbmd1YWdlcyc7XG5cbmNvbnN0IGFyZ3MgPSBtaW5pbWlzdChwcm9jZXNzLmFyZ3Yuc2xpY2UoMiksIHtcbiAgc3RyaW5nOiBbXG4gICAgJ291dGRpcicsXG4gICAgJ2xhbmd1YWdlJyxcbiAgICAnZ28tbW9kdWxlLW5hbWUnLFxuICBdLFxuICBib29sZWFuOiBbXG4gICAgJ2hlbHAnLFxuICAgICdwcml2YXRlJyxcbiAgXSxcbiAgYWxpYXM6IHtcbiAgICBvdXRkaXI6ICdvJyxcbiAgICBoZWxwOiAnaCcsXG4gICAgbGFuZ3VhZ2U6ICdsJyxcbiAgfSxcbn0pO1xuXG5mdW5jdGlvbiBzaG93SGVscCgpIHtcbiAgY29uc29sZS5sb2coJycpO1xuICBjb25zb2xlLmxvZygnVXNhZ2U6Jyk7XG4gIGNvbnNvbGUubG9nKCcgIGNkay1pbXBvcnQgLWwgTEFOR1VBR0UgUkVTT1VSQ0UtTkFNRVtAVkVSU0lPTl0nKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coJ09wdGlvbnM6Jyk7XG4gIGNvbnNvbGUubG9nKCcgIC1sLCAtLWxhbmd1YWdlICAgICBPdXRwdXQgcHJvZ3JhbW1pbmcgbGFuZ3VhZ2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0cmluZ10nKTtcbiAgY29uc29sZS5sb2coJyAgLW8sIC0tb3V0ZGlyICAgICAgIE91dHB1dCBkaXJlY3RvcnkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RyaW5nXSAgW2RlZmF1bHQ6IFwiLlwiXScpO1xuICBjb25zb2xlLmxvZygnICAtLWdvLW1vZHVsZSAgICAgICAgR28gbW9kdWxlIG5hbWUgKHJlcXVpcmVkIGlmIGxhbmd1YWdlIGlzIFwiZ29sYW5nXCIpICAgICAgW3N0cmluZ10nKTtcbiAgY29uc29sZS5sb2coJyAgLS1qYXZhLXBhY2thZ2UgICAgIEphdmEgcGFja2FnZSBuYW1lIChyZXF1aXJlZCBpZiBsYW5ndWFnZSBpcyBcImphdmFcIikgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC0tcHJpdmF0ZSAgICAgICAgICBJbXBvcnQgdHlwZXMgcmVnaXN0ZXJlZCBpbiB5b3VyIEFXUyBhY2NvdW50IGFuZCByZWdpb24gW2Jvb2xlYW5dJyk7XG4gIGNvbnNvbGUubG9nKCcgIC1oLCAtLWhlbHAgICAgICAgICBTaG93IHRoaXMgdXNhZ2UgaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Jvb2xlYW5dJyk7XG4gIGNvbnNvbGUubG9nKCcnKTtcbiAgY29uc29sZS5sb2coJ0V4YW1wbGVzOicpO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZygnICBHZW5lcmF0ZXMgY29uc3RydWN0cyBmb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIEFXU1FTOjpFS1M6OkNsdXN0ZXIgaW4gVHlwZVNjcmlwdDonKTtcbiAgY29uc29sZS5sb2coJyAgICBjZGstaW1wb3J0IC1sIHR5cGVzY3JpcHQgQVdTUVM6OkVLUzo6Q2x1c3RlcicpO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZygnICBHZW5lcmF0ZXMgY29uc3RydWN0IGluIEdvIGZvciBhIHNwZWNpZmljIHJlc291cmNlIHZlcnNpb246Jyk7XG4gIGNvbnNvbGUubG9nKCcgICAgY2RrLWltcG9ydCAtbCBnb2xhbmcgLS1nby1tb2R1bGUgXCJnaXRodWIuY29tL2FjY291bnQvcmVwb1wiIEFXU1FTOjpFS1M6OkNsdXN0ZXJAMS4yLjAnKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coJyAgR2VuZXJhdGVzIGNvbnN0cnVjdCBpbiBQeXRob24gdW5kZXIgdGhlIFwic3JjXCIgc3ViZm9sZGVyIGluc3RlYWQgb2Ygd29ya2luZyBkaXJlY3Rvcnk6Jyk7XG4gIGNvbnNvbGUubG9nKCcgICAgY2RrLWltcG9ydCAtbCBweXRob24gLW8gc3JjIEFXU1FTOjpFS1M6OkNsdXN0ZXInKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coJyAgR2VuZXJhdGVzIGNvbnN0cnVjdCBpbiBKYXZhIGFuZCBpZGVudGlmaWVzIHRoZSByZXNvdXJjZSB0eXBlIGJ5IGl0cyBBUk46Jyk7XG4gIGNvbnNvbGUubG9nKCcgICAgY2RrLWltcG9ydCAtbCBqYXZhIC0tamF2YS1wYWNrYWdlIFwiY29tLmFjbWUubXlwcm9qZWN0XCIgYXJuOmF3czpjbG91ZGZvcm1hdGlvbjouLi4nKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coJyAgR2VuZXJhdGVzIGNvbnN0cnVjdCBmb3IgYSBwcml2YXRlIHR5cGU6Jyk7XG4gIGNvbnNvbGUubG9nKCcgICAgY2RrLWltcG9ydCAtbCB0eXBlc2NyaXB0IC0tcHJpdmF0ZSBBY21lOjpTdXBlclNlcnZpY2U6OkZyaWVuZDo6TU9EVUxFJyk7XG4gIGNvbnNvbGUubG9nKCk7XG59XG5cbnZvaWQgKGFzeW5jICgpID0+IHtcbiAgaWYgKGFyZ3MuaGVscCB8fCBhcmdzLl8ubGVuZ3RoICE9PSAxKSB7XG4gICAgc2hvd0hlbHAoKTtcbiAgICBwcm9jZXNzLmV4aXQoMSk7XG4gIH1cblxuICBpZiAoIWFyZ3MubGFuZ3VhZ2UpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1pc3NpbmcgcmVxdWlyZWQgb3B0aW9uOiAtLWxhbmd1YWdlLiBTdXBwb3J0ZWQgbGFuZ3VhZ2VzOiAke1NVUFBPUlRFRF9MQU5HVUFHRVMuam9pbignLCcpfWApO1xuICB9XG5cbiAgaWYgKFNVUFBPUlRFRF9MQU5HVUFHRVMuaW5kZXhPZihhcmdzLmxhbmd1YWdlKSA9PT0gLTEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGxhbmd1YWdlICR7YXJncy5sYW5ndWFnZX0uIFN1cHBvcnRlZDogJHtTVVBQT1JURURfTEFOR1VBR0VTLmpvaW4oJywnKX1gKTtcbiAgfVxuXG4gIHRyeSB7XG4gICAgY29uc3QgW3Jlc291cmNlTmFtZSwgcmVzb3VyY2VWZXJzaW9uXSA9IGFyZ3MuX1swXS5zcGxpdCgnQCcpO1xuICAgIGNvbnN0IHdvcmtkaXIgPSBhd2FpdCBmcy5ta2R0ZW1wKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ2Nkay1pbXBvcnQnKSk7XG4gICAgY29uc3QgdHlwZU5hbWUgPSBhd2FpdCBpbXBvcnRSZXNvdXJjZVR5cGUocmVzb3VyY2VOYW1lLCByZXNvdXJjZVZlcnNpb24sIHtcbiAgICAgIG91dGRpcjogd29ya2RpcixcbiAgICAgIHByaXZhdGU6IGFyZ3MucHJpdmF0ZSxcbiAgICB9KTtcblxuICAgIGF3YWl0IHJlbmRlckNvZGUoe1xuICAgICAgc3JjZGlyOiB3b3JrZGlyLFxuICAgICAgbGFuZ3VhZ2U6IGFyZ3MubGFuZ3VhZ2UsXG4gICAgICBvdXRkaXI6IGFyZ3Mub3V0ZGlyID8/ICcuJyxcbiAgICAgIHR5cGVOYW1lOiB0eXBlTmFtZSxcbiAgICAgIGdvTW9kdWxlOiBhcmdzWydnby1tb2R1bGUnXSxcbiAgICAgIGphdmFQYWNrYWdlOiBhcmdzWydqYXZhLXBhY2thZ2UnXSxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGNvbnNvbGUubG9nKGUpO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfVxufSkoKTtcbiJdfQ==
|
|
227
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NsaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUNBLGdEQUFrQztBQUNsQyx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLCtDQUFpQztBQUNqQyx3REFBZ0M7QUFDaEMsNkRBQW9EO0FBQ3BELHdCQUFzRTtBQUN0RSwyQ0FBOEQ7QUFFOUQsTUFBTSxnQkFBZ0IsR0FBRztJQUN2QixRQUFRLEVBQUU7UUFDUixFQUFFLEVBQUUsSUFBSTtRQUNSLEdBQUcsRUFBRSxJQUFJO0tBQ1Y7Q0FDRixDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxJQUFBLG1DQUFhLEVBQUMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUNyRixNQUFNLFVBQVUsR0FBRyxxQkFBcUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFckQsTUFBTSxJQUFJLEdBQUcsSUFBQSxrQkFBUSxFQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRTtJQUNoRCxNQUFNLEVBQUU7UUFDTixRQUFRO1FBQ1IsVUFBVTtRQUNWLGdCQUFnQjtRQUNoQixZQUFZO1FBQ1osMEJBQTBCO1FBQzFCLFNBQVM7S0FDVjtJQUNELE9BQU8sRUFBRTtRQUNQLE1BQU07UUFDTixTQUFTO0tBQ1Y7SUFDRCxLQUFLLEVBQUU7UUFDTCxNQUFNLEVBQUUsR0FBRztRQUNYLElBQUksRUFBRSxHQUFHO1FBQ1QsUUFBUSxFQUFFLEdBQUc7S0FDZDtDQUNGLENBQUMsQ0FBQztBQUVILFNBQVMsUUFBUTtJQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDaEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN0QixPQUFPLENBQUMsR0FBRyxDQUFDLGtEQUFrRCxDQUFDLENBQUM7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Q0FBQyxRQUFRLG1DQUFJLFlBQVk7b0JBQ3ZDLE1BQU0sRUFBRSxNQUFBLElBQUksQ0FBQyxNQUFNLG1DQUFJLGVBQWU7b0JBQ3RDLFFBQVEsRUFBRSxPQUFPO29CQUNqQixRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQztvQkFDM0IsV0FBVyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUM7b0JBQ2pDLGVBQWUsRUFBRSxNQUFBLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxtQ0FBSSxPQUFPO2lCQUNyRCxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ0osT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNqQjtRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1YsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNmLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDakI7S0FDRjtBQUNILENBQUMsQ0FBQyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjIS91c3IvYmluL2VudiBub2RlXG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy9wcm9taXNlcyc7XG5pbXBvcnQgKiBhcyBvcyBmcm9tICdvcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2FzZXV0aWwgZnJvbSAnY2FzZSc7XG5pbXBvcnQgbWluaW1pc3QgZnJvbSAnbWluaW1pc3QnO1xuaW1wb3J0IHsgcGFyc2VDb21tYW5kcyB9IGZyb20gJ21pbmltaXN0LXN1YmNvbW1hbmQnO1xuaW1wb3J0IHsgaW1wb3J0UmVzb3VyY2VUeXBlLCBpbXBvcnRQcm9kdWN0cywgaW1wb3J0UHJvZHVjdCB9IGZyb20gJy4nO1xuaW1wb3J0IHsgcmVuZGVyQ29kZSwgU1VQUE9SVEVEX0xBTkdVQUdFUyB9IGZyb20gJy4vbGFuZ3VhZ2VzJztcblxuY29uc3QgY29tbWFuZERlZmludGlvbiA9IHtcbiAgY29tbWFuZHM6IHtcbiAgICBzYzogbnVsbCxcbiAgICBjZm46IG51bGwsXG4gIH0sXG59O1xuXG5jb25zdCBwYXJzZWRDb21tYW5kc0FuZEFyZ3YgPSBwYXJzZUNvbW1hbmRzKGNvbW1hbmREZWZpbnRpb24sIHByb2Nlc3MuYXJndi5zbGljZSgyKSk7XG5jb25zdCBzdWJDb21tYW5kID0gcGFyc2VkQ29tbWFuZHNBbmRBcmd2LmNvbW1hbmRzWzBdO1xuXG5jb25zdCBhcmdzID0gbWluaW1pc3QocGFyc2VkQ29tbWFuZHNBbmRBcmd2LmFyZ3YsIHtcbiAgc3RyaW5nOiBbXG4gICAgJ291dGRpcicsXG4gICAgJ2xhbmd1YWdlJyxcbiAgICAnZ28tbW9kdWxlLW5hbWUnLFxuICAgICdwcm9kdWN0LWlkJyxcbiAgICAncHJvdmlzaW9uaW5nLWFydGlmYWN0LWlkJyxcbiAgICAncGF0aC1pZCcsXG4gIF0sXG4gIGJvb2xlYW46IFtcbiAgICAnaGVscCcsXG4gICAgJ3ByaXZhdGUnLFxuICBdLFxuICBhbGlhczoge1xuICAgIG91dGRpcjogJ28nLFxuICAgIGhlbHA6ICdoJyxcbiAgICBsYW5ndWFnZTogJ2wnLFxuICB9LFxufSk7XG5cbmZ1bmN0aW9uIHNob3dIZWxwKCkge1xuICBjb25zb2xlLmxvZygnJyk7XG4gIGNvbnNvbGUubG9nKCdVc2FnZTonKTtcbiAgY29uc29sZS5sb2coJyAgY2RrLWltcG9ydCBTVUJDT01NQU5EIChjZm4gb3Igc2MpIFtwYXJhbWV0ZXJzXScpO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZygnR2VuZXJhbCBvcHRpb25zOicpO1xuICBjb25zb2xlLmxvZygnICAtbCwgLS1sYW5ndWFnZSAgICAgT3V0cHV0IHByb2dyYW1taW5nIGxhbmd1YWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC1vLCAtLW91dGRpciAgICAgICBPdXRwdXQgZGlyZWN0b3J5ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3N0cmluZ10nKTtcbiAgY29uc29sZS5sb2coJyAgLS1nby1tb2R1bGUgICAgICAgIEdvIG1vZHVsZSBuYW1lIChyZXF1aXJlZCBpZiBsYW5ndWFnZSBpcyBcImdvbGFuZ1wiKSAgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC0tamF2YS1wYWNrYWdlICAgICBKYXZhIHBhY2thZ2UgbmFtZSAocmVxdWlyZWQgaWYgbGFuZ3VhZ2UgaXMgXCJqYXZhXCIpICAgICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAtLWNzaGFycC1uYW1lc3BhY2UgQyMgbmFtZXNwYWNlIChvcHRpb25hbCBpZiBsYW5ndWFnZSBpcyBcImNzaGFycFwiLCAgICAgICAgICAgW3N0cmluZ10nKTtcbiAgY29uc29sZS5sb2coJyAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHRzIHRvIHJlc291cmNlIG5hbWUuJyk7XG4gIGNvbnNvbGUubG9nKCcgIC1oLCAtLWhlbHAgICAgICAgICBTaG93IHVzYWdlIGluZm8gKGluY2x1ZGUgc3ViY29tbWFuZCB0byBzZWUgc3BlY2lmaWMgaGVscCkgW2Jvb2xlYW5dJyk7XG4gIGNvbnNvbGUubG9nKCcnKTtcbiAgY29uc29sZS5sb2coKTtcbn1cblxuZnVuY3Rpb24gc2hvd0NmbkhlbHAoKSB7XG4gIGNvbnNvbGUubG9nKCcnKTtcbiAgY29uc29sZS5sb2coJ1VzYWdlOicpO1xuICBjb25zb2xlLmxvZygnICBjZGstaW1wb3J0IGNmbiAtbCBMQU5HVUFHRSBSRVNPVVJDRS1OQU1FW0BWRVJTSU9OXScpO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZygnT3B0aW9uczonKTtcbiAgY29uc29sZS5sb2coJyAgLWwsIC0tbGFuZ3VhZ2UgICAgIE91dHB1dCBwcm9ncmFtbWluZyBsYW5ndWFnZSAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAtbywgLS1vdXRkaXIgICAgICAgT3V0cHV0IGRpcmVjdG9yeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddICBbZGVmYXVsdDogXCIuXCJdJyk7XG4gIGNvbnNvbGUubG9nKCcgIC0tZ28tbW9kdWxlICAgICAgICBHbyBtb2R1bGUgbmFtZSAocmVxdWlyZWQgaWYgbGFuZ3VhZ2UgaXMgXCJnb2xhbmdcIikgICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAtLWphdmEtcGFja2FnZSAgICAgSmF2YSBwYWNrYWdlIG5hbWUgKHJlcXVpcmVkIGlmIGxhbmd1YWdlIGlzIFwiamF2YVwiKSAgICAgW3N0cmluZ10nKTtcbiAgY29uc29sZS5sb2coJyAgLS1jc2hhcnAtbmFtZXNwYWNlIEMjIG5hbWVzcGFjZSAob3B0aW9uYWwgaWYgbGFuZ3VhZ2UgaXMgXCJjc2hhcnBcIiwgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgICAgICAgICAgICAgICAgICAgICBkZWZhdWx0cyB0byByZXNvdXJjZSBuYW1lLicpO1xuICBjb25zb2xlLmxvZygnICAtLXByaXZhdGUgICAgICAgICAgSW1wb3J0IHR5cGVzIHJlZ2lzdGVyZWQgaW4geW91ciBBV1MgYWNjb3VudCBhbmQgcmVnaW9uIFtib29sZWFuXScpO1xuICBjb25zb2xlLmxvZygnICAtaCwgLS1oZWxwICAgICAgICAgU2hvdyB0aGlzIHVzYWdlIGluZm8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtib29sZWFuXScpO1xuICBjb25zb2xlLmxvZygnJyk7XG4gIGNvbnNvbGUubG9nKCdFeGFtcGxlczonKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coJyAgR2VuZXJhdGVzIGNvbnN0cnVjdHMgZm9yIHRoZSBsYXRlc3QgdmVyc2lvbiBBV1NRUzo6RUtTOjpDbHVzdGVyIGluIFR5cGVTY3JpcHQ6Jyk7XG4gIGNvbnNvbGUubG9nKCcgICAgY2RrLWltcG9ydCBjZm4gLWwgdHlwZXNjcmlwdCBBV1NRUzo6RUtTOjpDbHVzdGVyJyk7XG4gIGNvbnNvbGUubG9nKCk7XG4gIGNvbnNvbGUubG9nKCcgIEdlbmVyYXRlcyBjb25zdHJ1Y3QgaW4gR28gZm9yIGEgc3BlY2lmaWMgcmVzb3VyY2UgdmVyc2lvbjonKTtcbiAgY29uc29sZS5sb2coJyAgICBjZGstaW1wb3J0IGNmbiAtbCBnb2xhbmcgLS1nby1tb2R1bGUgXCJnaXRodWIuY29tL2FjY291bnQvcmVwb1wiIEFXU1FTOjpFS1M6OkNsdXN0ZXJAMS4yLjAnKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coJyAgR2VuZXJhdGVzIGNvbnN0cnVjdCBpbiBQeXRob24gdW5kZXIgdGhlIFwic3JjXCIgc3ViZm9sZGVyIGluc3RlYWQgb2Ygd29ya2luZyBkaXJlY3Rvcnk6Jyk7XG4gIGNvbnNvbGUubG9nKCcgICAgY2RrLWltcG9ydCBjZm4gLWwgcHl0aG9uIC1vIHNyYyBBV1NRUzo6RUtTOjpDbHVzdGVyJyk7XG4gIGNvbnNvbGUubG9nKCk7XG4gIGNvbnNvbGUubG9nKCcgIEdlbmVyYXRlcyBjb25zdHJ1Y3QgaW4gSmF2YSBhbmQgaWRlbnRpZmllcyB0aGUgcmVzb3VyY2UgdHlwZSBieSBpdHMgQVJOOicpO1xuICBjb25zb2xlLmxvZygnICAgIGNkay1pbXBvcnQgY2ZuIC1sIGphdmEgLS1qYXZhLXBhY2thZ2UgXCJjb20uYWNtZS5teXByb2plY3RcIiBhcm46YXdzOmNsb3VkZm9ybWF0aW9uOi4uLicpO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZygnICBHZW5lcmF0ZXMgY29uc3RydWN0IGZvciBhIHByaXZhdGUgdHlwZTonKTtcbiAgY29uc29sZS5sb2coJyAgICBjZGstaW1wb3J0IGNmbiAtbCB0eXBlc2NyaXB0IC0tcHJpdmF0ZSBBY21lOjpTdXBlclNlcnZpY2U6OkZyaWVuZDo6TU9EVUxFJyk7XG4gIGNvbnNvbGUubG9nKCk7XG59XG5cbmZ1bmN0aW9uIHNob3dTQ0hlbHAoKSB7XG4gIGNvbnNvbGUubG9nKCcnKTtcbiAgY29uc29sZS5sb2coJ1VzYWdlOicpO1xuICBjb25zb2xlLmxvZygnICBjZGstaW1wb3J0IHNjIC1sIExBTkdVQUdFJyk7XG4gIGNvbnNvbGUubG9nKCcgIGNkay1pbXBvcnQgc2MgLWwgTEFOR1VBR0UgLXByIFBST0RVQ1QtSUQgLXBhIFBST1ZJU0lPTklORy1BUlRJRkFDVC1JRCAtbHAgTEFVTkNILVBBVEgtSUQnKTtcbiAgY29uc29sZS5sb2coKTtcbiAgY29uc29sZS5sb2coJ09wdGlvbnM6Jyk7XG4gIGNvbnNvbGUubG9nKCcgIC1sLCAtLWxhbmd1YWdlICAgICAgICAgICAgICAgICAgT3V0cHV0IHByb2dyYW1taW5nIGxhbmd1YWdlICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC1vLCAtLW91dGRpciAgICAgICAgICAgICAgICAgICAgT3V0cHV0IGRpcmVjdG9yeSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC0tcHJvZHVjdC1pZCAgICAgICAgICAgICAgICAgICAgUHJvZHVjdCBJZCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC0tcHJvdmlzaW9uaW5nLWFydGlmYWN0LWlkICAgICAgUHJvdmlzaW9uaW5nIGFydGlmYWN0IElkICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC0tcGF0aC1pZCAgICAgICAgICAgICAgICAgICAgICAgTGF1bmNoIHBhdGggSWQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgIC0tZ28tbW9kdWxlICAgICAgICAgICAgICAgICAgICAgR28gbW9kdWxlIG5hbWUgKHJlcXVpcmVkIGlmIGxhbmd1YWdlIGlzIFwiZ29sYW5nXCIpICAgICAgW3N0cmluZ10nKTtcbiAgY29uc29sZS5sb2coJyAgLS1qYXZhLXBhY2thZ2UgICAgICAgICAgICAgICAgICBKYXZhIHBhY2thZ2UgbmFtZSAocmVxdWlyZWQgaWYgbGFuZ3VhZ2UgaXMgXCJqYXZhXCIpICAgICBbc3RyaW5nXScpO1xuICBjb25zb2xlLmxvZygnICAtLWNzaGFycC1uYW1lc3BhY2UgICAgICAgICAgICAgIEMjIG5hbWVzcGFjZSAob3B0aW9uYWwgaWYgbGFuZ3VhZ2UgaXMgXCJjc2hhcnBcIiwgICAgICAgIFtzdHJpbmddJyk7XG4gIGNvbnNvbGUubG9nKCcgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdHMgdG8gcmVzb3VyY2UgbmFtZS4nKTtcbiAgY29uc29sZS5sb2coJyAgLWgsIC0taGVscCAgICAgICAgICAgICAgICAgICAgICBTaG93IHRoaXMgdXNhZ2UgaW5mbyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Jvb2xlYW5dJyk7XG4gIGNvbnNvbGUubG9nKCcnKTtcbiAgY29uc29sZS5sb2coJ0V4YW1wbGVzOicpO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZygnICBHZW5lcmF0ZXMgY29uc3RydWN0cyBmb3IgdGhlIGxhdGVzdCB2ZXJzaW9uIG9mIHByb2R1Y3RzIGluIFR5cGVTY3JpcHQ6Jyk7XG4gIGNvbnNvbGUubG9nKCcgICAgY2RrLWltcG9ydCBzYyAtbCB0eXBlc2NyaXB0Jyk7XG4gIGNvbnNvbGUubG9nKCk7XG4gIGNvbnNvbGUubG9nKCcgIEdlbmVyYXRlcyBjb25zdHJ1Y3QgaW4gR28gZm9yIGEgc3BlY2lmaWMgcHJvZHVjdCB2ZXJzaW9uOicpO1xuICBjb25zb2xlLmxvZygnICAgIGNkay1pbXBvcnQgc2MgLWwgZ29sYW5nIC0tZ28tbW9kdWxlIFwiZ2l0aHViLmNvbS9hY2NvdW50L3JlcG9cIiAtcHIgcHJvZC1hYmMxMjMgLXBhIHBhLWFiYzEyMyAtbHAgbHAtYWJjMTIzJyk7XG4gIGNvbnNvbGUubG9nKCk7XG4gIGNvbnNvbGUubG9nKCcgIEdlbmVyYXRlcyBjb25zdHJ1Y3RzIGluIFB5dGhvbiB1bmRlciB0aGUgXCJzcmNcIiBzdWJmb2xkZXIgaW5zdGVhZCBvZiB3b3JraW5nIGRpcmVjdG9yeTonKTtcbiAgY29uc29sZS5sb2coJyAgICBjZGstaW1wb3J0IHNjIC1sIHB5dGhvbiAtbyAuL3NyYycpO1xuICBjb25zb2xlLmxvZygpO1xuICBjb25zb2xlLmxvZygpO1xufVxuXG52b2lkIChhc3luYyAoKSA9PiB7XG4gIGlmIChhcmdzLmhlbHAgfHwgIXN1YkNvbW1hbmQpIHtcbiAgICBzaG93SGVscCgpO1xuICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgfVxuXG4gIGlmICghYXJncy5sYW5ndWFnZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTWlzc2luZyByZXF1aXJlZCBvcHRpb246IC0tbGFuZ3VhZ2UuIFN1cHBvcnRlZCBsYW5ndWFnZXM6ICR7U1VQUE9SVEVEX0xBTkdVQUdFUy5qb2luKCcsICcpfWApO1xuICB9XG5cbiAgaWYgKFNVUFBPUlRFRF9MQU5HVUFHRVMuaW5kZXhPZihhcmdzLmxhbmd1YWdlKSA9PT0gLTEpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGxhbmd1YWdlICR7YXJncy5sYW5ndWFnZX0uIFN1cHBvcnRlZDogJHtTVVBQT1JURURfTEFOR1VBR0VTLmpvaW4oJywgJyl9YCk7XG4gIH1cblxuICBpZiAoc3ViQ29tbWFuZCA9PSAnY2ZuJykge1xuICAgIGlmIChhcmdzLl8ubGVuZ3RoICE9PSAxKSB7XG4gICAgICBzaG93Q2ZuSGVscCgpO1xuICAgICAgcHJvY2Vzcy5leGl0KDEpO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBbcmVzb3VyY2VOYW1lLCByZXNvdXJjZVZlcnNpb25dID0gYXJncy5fWzBdLnNwbGl0KCdAJyk7XG4gICAgICBjb25zdCB3b3JrZGlyID0gYXdhaXQgZnMubWtkdGVtcChwYXRoLmpvaW4ob3MudG1wZGlyKCksICdjZGstaW1wb3J0JykpO1xuICAgICAgY29uc3QgdHlwZU5hbWUgPSBhd2FpdCBpbXBvcnRSZXNvdXJjZVR5cGUocmVzb3VyY2VOYW1lLCByZXNvdXJjZVZlcnNpb24sIHtcbiAgICAgICAgb3V0ZGlyOiB3b3JrZGlyLFxuICAgICAgICBwcml2YXRlOiBhcmdzLnByaXZhdGUsXG4gICAgICB9KTtcblxuICAgICAgYXdhaXQgcmVuZGVyQ29kZSh7XG4gICAgICAgIHNyY2Rpcjogd29ya2RpcixcbiAgICAgICAgbGFuZ3VhZ2U6IGFyZ3MubGFuZ3VhZ2UsXG4gICAgICAgIG91dGRpcjogYXJncy5vdXRkaXIgPz8gJy4nLFxuICAgICAgICB0eXBlTmFtZTogdHlwZU5hbWUsXG4gICAgICAgIGdvTW9kdWxlOiBhcmdzWydnby1tb2R1bGUnXSxcbiAgICAgICAgamF2YVBhY2thZ2U6IGFyZ3NbJ2phdmEtcGFja2FnZSddLFxuICAgICAgICBjc2hhcnBOYW1lc3BhY2U6IGFyZ3NbJ2NzaGFycC1uYW1lc3BhY2UnXSA/PyB0eXBlTmFtZSwgLy8gYWxyZWFkeSBBV1M6OkZvbzo6QmFyXG4gICAgICB9KTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gIH1cblxuICBpZiAoc3ViQ29tbWFuZCA9PSAnc2MnKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHdvcmtkaXIgPSBhd2FpdCBmcy5ta2R0ZW1wKHBhdGguam9pbihvcy50bXBkaXIoKSwgJ2Nkay1pbXBvcnQnKSk7XG4gICAgICBjb25zdCBwcEFyZ3MgPSBbYXJnc1sncHJvZHVjdC1pZCddLCBhcmdzWydwcm92aXNpb25pbmctYXJ0aWZhY3QtaWQnXSwgYXJnc1sncGF0aC1pZCddXS5maWx0ZXIocGFyYW0gPT4gcGFyYW0gIT0gdW5kZWZpbmVkKTtcblxuICAgICAgaWYgKGFyZ3MuaGVscCB8fCAocHBBcmdzLmxlbmd0aCA+IDAgJiYgcHBBcmdzLmxlbmd0aCAhPSAzKSkge1xuICAgICAgICBzaG93U0NIZWxwKCk7XG4gICAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICAgIH1cblxuICAgICAgbGV0IHByb2R1Y3RzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgaWYgKHBwQXJncy5sZW5ndGggPT0gMykge1xuICAgICAgICBwcm9kdWN0cy5wdXNoKFxuICAgICAgICAgIGF3YWl0IGltcG9ydFByb2R1Y3Qoe1xuICAgICAgICAgICAgb3V0ZGlyOiB3b3JrZGlyLFxuICAgICAgICAgICAgcHJvZHVjdElkOiBhcmdzWydwcm9kdWN0LWlkJ10sXG4gICAgICAgICAgICBsYXVuY2hQYXRoSWQ6IGFyZ3NbJ3BhdGgtaWQnXSxcbiAgICAgICAgICAgIHByb3Zpc2lvbmluZ0FydGlmYWN0SWQ6IGFyZ3NbJ3Byb3Zpc2lvbmluZy1hcnRpZmFjdC1pZCddLFxuICAgICAgICAgIH0pKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHByb2R1Y3RzLnB1c2goXG4gICAgICAgICAgLi4uYXdhaXQgaW1wb3J0UHJvZHVjdHMoe1xuICAgICAgICAgICAgb3V0ZGlyOiB3b3JrZGlyLFxuICAgICAgICAgIH0pLFxuICAgICAgICApO1xuICAgICAgfVxuXG4gICAgICBhd2FpdCBQcm9taXNlLmFsbChwcm9kdWN0cy5tYXAoYXN5bmMgKHByb2R1Y3QpID0+IHtcbiAgICAgICAgY29uc3QgcHJvZHVjdERpciA9IHBhdGguam9pbih3b3JrZGlyLCBjYXNldXRpbC5oZWFkZXIocHJvZHVjdCkudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgIGF3YWl0IHJlbmRlckNvZGUoe1xuICAgICAgICAgIHNyY2RpcjogcHJvZHVjdERpcixcbiAgICAgICAgICBsYW5ndWFnZTogYXJncy5sYW5ndWFnZSA/PyAndHlwZXNjcmlwdCcsXG4gICAgICAgICAgb3V0ZGlyOiBhcmdzLm91dGRpciA/PyAnLi9zYy1wcm9kdWN0cycsXG4gICAgICAgICAgdHlwZU5hbWU6IHByb2R1Y3QsXG4gICAgICAgICAgZ29Nb2R1bGU6IGFyZ3NbJ2dvLW1vZHVsZSddLFxuICAgICAgICAgIGphdmFQYWNrYWdlOiBhcmdzWydqYXZhLXBhY2thZ2UnXSxcbiAgICAgICAgICBjc2hhcnBOYW1lc3BhY2U6IGFyZ3NbJ2NzaGFycC1uYW1lc3BhY2UnXSA/PyBwcm9kdWN0LFxuICAgICAgICB9KTtcbiAgICAgIH0pKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgwKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBjb25zb2xlLmxvZyhlKTtcbiAgICAgIHByb2Nlc3MuZXhpdCgxKTtcbiAgICB9XG4gIH1cbn0pKCk7XG4iXX0=
|
package/lib/index.js
CHANGED
|
@@ -62,7 +62,8 @@ async function importProduct(options) {
|
|
|
62
62
|
const product = await (0, service_catalog_1.describeProductAggregate)(options);
|
|
63
63
|
const gen = new sc_construct_generator_1.ServiceCatalogProvisioningConstructGenerator(product);
|
|
64
64
|
fs.mkdirSync(outdir, { recursive: true });
|
|
65
|
-
fs.
|
|
65
|
+
const prodDir = fs.mkdirSync(path.join(outdir, caseutil.header(gen.name).toLowerCase()), { recursive: true });
|
|
66
|
+
fs.writeFileSync(path.join(prodDir, 'index.ts'), gen.render());
|
|
66
67
|
return gen.name;
|
|
67
68
|
}
|
|
68
69
|
exports.importProduct = importProduct;
|
|
@@ -78,14 +79,20 @@ async function importProducts(options) {
|
|
|
78
79
|
let productVersions = [];
|
|
79
80
|
const availableProducts = await (0, service_catalog_1.fetchAvailableProducts)();
|
|
80
81
|
await Promise.all(availableProducts.map(async (product) => {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
82
|
+
try {
|
|
83
|
+
const productVersion = await importProduct({
|
|
84
|
+
outdir: outdir,
|
|
85
|
+
productId: product.ProductId,
|
|
86
|
+
});
|
|
87
|
+
productVersions.push(productVersion);
|
|
88
|
+
}
|
|
89
|
+
catch (e) {
|
|
90
|
+
console.log(`${e.message} Skipping import for ${product.ProductId}...`);
|
|
91
|
+
console.log('try importing directly via --product-id, --provisioning-artifact-id, --path-id');
|
|
92
|
+
}
|
|
86
93
|
}));
|
|
87
94
|
return productVersions;
|
|
88
95
|
}
|
|
89
96
|
exports.importProducts = importProducts;
|
|
90
97
|
;
|
|
91
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLCtDQUFpQztBQUNqQyxpREFBbUY7QUFDbkYscUVBQWdFO0FBQ2hFLHFFQUF3RjtBQUN4Rix1REFBc0g7QUFTdEg7Ozs7Ozs7R0FPRztBQUNJLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxZQUFvQixFQUFFLGdCQUF3QixFQUFFLE9BQWtDOztJQUN6SCxNQUFNLE1BQU0sR0FBRyxNQUFBLE9BQU8sQ0FBQyxNQUFNLG1DQUFJLEdBQUcsQ0FBQztJQUNyQyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsbUNBQW9CLEVBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRS9ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU8sQ0FBQyxDQUFDO0lBRTVDLE1BQU0sR0FBRyxHQUFHLElBQUksNkNBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFdEUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUxQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRTlELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztBQUN2QixDQUFDO0FBYkQsZ0RBYUM7QUFBQSxDQUFDO0FBYUY7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxhQUFhLENBQUMsT0FBNkI7O0lBQy9ELE1BQU0sTUFBTSxHQUFHLE1BQUEsT0FBTyxDQUFDLE1BQU0sbUNBQUksR0FBRyxDQUFDO0lBRXJDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBQSwwQ0FBd0IsRUFBQyxPQUFPLENBQUMsQ0FBQztJQUV4RCxNQUFNLEdBQUcsR0FBRyxJQUFJLHFFQUE0QyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQVEsRUFBRSxVQUFVLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUVoRSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFDbEIsQ0FBQztBQVhELHNDQVdDO0FBQUEsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsY0FBYyxDQUFDLE9BQTZCOztJQUNoRSxNQUFNLE1BQU0sR0FBRyxNQUFBLE9BQU8sQ0FBQyxNQUFNLG1DQUFJLEdBQUcsQ0FBQztJQUNyQyxJQUFJLGVBQWUsR0FBYSxFQUFFLENBQUM7SUFFbkMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUEsd0NBQXNCLEdBQUUsQ0FBQztJQUV6RCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4RCxJQUFJO1lBQ0YsTUFBTSxjQUFjLEdBQUcsTUFBTSxhQUFhLENBQUM7Z0JBQ3pDLE1BQU0sRUFBRSxNQUFNO2dCQUNkLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBVTthQUM5QixDQUFDLENBQUM7WUFDSCxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3RDO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUksQ0FBVyxDQUFDLE9BQU8sd0JBQXdCLE9BQU8sQ0FBQyxTQUFTLEtBQUssQ0FBQyxDQUFDO1lBQ25GLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0ZBQWdGLENBQUMsQ0FBQztTQUMvRjtJQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFSixPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBcEJELHdDQW9CQztBQUFBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2FzZXV0aWwgZnJvbSAnY2FzZSc7XG5pbXBvcnQgeyBkZXNjcmliZVJlc291cmNlVHlwZSwgRGVzY3JpYmVSZXNvdXJjZVR5cGVPcHRpb25zIH0gZnJvbSAnLi9jZm4tcmVnaXN0cnknO1xuaW1wb3J0IHsgQ2ZuUmVzb3VyY2VHZW5lcmF0b3IgfSBmcm9tICcuL2Nmbi1yZXNvdXJjZS1nZW5lcmF0b3InO1xuaW1wb3J0IHsgU2VydmljZUNhdGFsb2dQcm92aXNpb25pbmdDb25zdHJ1Y3RHZW5lcmF0b3IgfSBmcm9tICcuL3NjLWNvbnN0cnVjdC1nZW5lcmF0b3InO1xuaW1wb3J0IHsgZGVzY3JpYmVQcm9kdWN0QWdncmVnYXRlLCBEZXNjcmliZVByb2R1Y3RBZ2dyZWdhdGVPcHRpb25zLCBmZXRjaEF2YWlsYWJsZVByb2R1Y3RzIH0gZnJvbSAnLi9zZXJ2aWNlLWNhdGFsb2cnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydFJlc291cmNlVHlwZU9wdGlvbnMgZXh0ZW5kcyBEZXNjcmliZVJlc291cmNlVHlwZU9wdGlvbnMge1xuICAvKipcbiAgICogQGRlZmF1bHQgXCIuXCJcbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBFbnRyeSBwb2ludCB0byBpbXBvcnQgQ0ZOIHJlc291cmNlIHR5cGVzXG4gKlxuICogQHBhcmFtIHJlc291cmNlTmFtZSB0aGUgbmFtZSBvciBBUk4gb2YgdGhlIHJlc291cmNlIHR5cGVcbiAqIEBwYXJhbSBfcmVzb3VyY2VWZXJzaW9uIHRoZSB2ZXJzaW9uIG9mIHRoZSByZXNvdXJjZSB0eXBlIChpZ25vcmVkIGZvciBub3cpXG4gKiBAcGFyYW0gb3V0ZGlyIHRoZSBvdXQgZm9sZGVyIHRvIHVzZSAoZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgZGlyZWN0b3J5KVxuICogQHJldHVybnMgbmFtZSBvZiB0aGUgcmVzb3VyY2UgdHlwZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW1wb3J0UmVzb3VyY2VUeXBlKHJlc291cmNlTmFtZTogc3RyaW5nLCBfcmVzb3VyY2VWZXJzaW9uOiBzdHJpbmcsIG9wdGlvbnM6IEltcG9ydFJlc291cmNlVHlwZU9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBvdXRkaXIgPSBvcHRpb25zLm91dGRpciA/PyAnLic7XG4gIGNvbnN0IHR5cGUgPSBhd2FpdCBkZXNjcmliZVJlc291cmNlVHlwZShyZXNvdXJjZU5hbWUsIG9wdGlvbnMpO1xuXG4gIGNvbnN0IHR5cGVTY2hlbWEgPSBKU09OLnBhcnNlKHR5cGUuU2NoZW1hISk7XG5cbiAgY29uc3QgZ2VuID0gbmV3IENmblJlc291cmNlR2VuZXJhdG9yKHR5cGUuVHlwZU5hbWUsIHR5cGUsIHR5cGVTY2hlbWEpO1xuXG4gIGZzLm1rZGlyU3luYyhvdXRkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKG91dGRpciwgJ2luZGV4LnRzJyksIGdlbi5yZW5kZXIoKSk7XG5cbiAgcmV0dXJuIHR5cGUuVHlwZU5hbWU7XG59O1xuXG4vKipcbiAqIENvbmZpZ3VyZSBvcHRpb25zIGZvciBpbXBvcnRpbmcgcHJvZHVjdHMgaW50byB5b3VyIGxvY2FsIHdvcmtzcGFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydFByb2R1Y3RPcHRpb25zIGV4dGVuZHMgRGVzY3JpYmVQcm9kdWN0QWdncmVnYXRlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyIGluIHdoaWNoIHByb2R1Y3QgY29uc3RydWN0cyAoYXMgc2VwYXJhdGUgY2xhc3MgZmlsZXMpIHdpbGwgYmUgb3V0cHV0IHRvLlxuICAgKiBAZGVmYXVsdCBcIi4vc2MtcHJvZHVjdHNcIlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0ZGlyPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEVudHJ5IHBvaW50IHRvIGltcG9ydCBTZXJ2aWNlIENhdGFsb2cgcHJvZHVjdCByZXNvdXJjZS5cbiAqXG4gKiBAcmV0dXJucyBuYW1lIG9mIHRoZSBwcm9kdWN0IHZlcnNpb25cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGltcG9ydFByb2R1Y3Qob3B0aW9uczogSW1wb3J0UHJvZHVjdE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBvdXRkaXIgPSBvcHRpb25zLm91dGRpciA/PyAnLic7XG5cbiAgY29uc3QgcHJvZHVjdCA9IGF3YWl0IGRlc2NyaWJlUHJvZHVjdEFnZ3JlZ2F0ZShvcHRpb25zKTtcblxuICBjb25zdCBnZW4gPSBuZXcgU2VydmljZUNhdGFsb2dQcm92aXNpb25pbmdDb25zdHJ1Y3RHZW5lcmF0b3IocHJvZHVjdCk7XG4gIGZzLm1rZGlyU3luYyhvdXRkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBjb25zdCBwcm9kRGlyID0gZnMubWtkaXJTeW5jKHBhdGguam9pbihvdXRkaXIsIGNhc2V1dGlsLmhlYWRlcihnZW4ubmFtZSkudG9Mb3dlckNhc2UoKSksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihwcm9kRGlyISwgJ2luZGV4LnRzJyksIGdlbi5yZW5kZXIoKSk7XG5cbiAgcmV0dXJuIGdlbi5uYW1lO1xufTtcblxuLyoqXG4gKiBFbnRyeSBwb2ludCB0byBpbXBvcnQgYWxsIGF2YWlsYWJsZSBTZXJ2aWNlIENhdGFsb2cgcHJvZHVjdCByZXNvdXJjZXMgd2l0aCBgREVGQVVMVGAgcGFyYW1ldGVycy5cbiAqXG4gKiBAcmV0dXJucyBuYW1lcyBvZiB0aGUgcHJvZHVjdCB2ZXJzaW9uc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW1wb3J0UHJvZHVjdHMob3B0aW9uczogSW1wb3J0UHJvZHVjdE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIGNvbnN0IG91dGRpciA9IG9wdGlvbnMub3V0ZGlyID8/ICcuJztcbiAgbGV0IHByb2R1Y3RWZXJzaW9uczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdCBhdmFpbGFibGVQcm9kdWN0cyA9IGF3YWl0IGZldGNoQXZhaWxhYmxlUHJvZHVjdHMoKTtcblxuICBhd2FpdCBQcm9taXNlLmFsbChhdmFpbGFibGVQcm9kdWN0cy5tYXAoYXN5bmMgKHByb2R1Y3QpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcHJvZHVjdFZlcnNpb24gPSBhd2FpdCBpbXBvcnRQcm9kdWN0KHtcbiAgICAgICAgb3V0ZGlyOiBvdXRkaXIsXG4gICAgICAgIHByb2R1Y3RJZDogcHJvZHVjdC5Qcm9kdWN0SWQhLFxuICAgICAgfSk7XG4gICAgICBwcm9kdWN0VmVyc2lvbnMucHVzaChwcm9kdWN0VmVyc2lvbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5sb2coYCR7KGUgYXMgRXJyb3IpLm1lc3NhZ2V9IFNraXBwaW5nIGltcG9ydCBmb3IgJHtwcm9kdWN0LlByb2R1Y3RJZH0uLi5gKTtcbiAgICAgIGNvbnNvbGUubG9nKCd0cnkgaW1wb3J0aW5nIGRpcmVjdGx5IHZpYSAtLXByb2R1Y3QtaWQsIC0tcHJvdmlzaW9uaW5nLWFydGlmYWN0LWlkLCAtLXBhdGgtaWQnKTtcbiAgICB9XG4gIH0pKTtcblxuICByZXR1cm4gcHJvZHVjdFZlcnNpb25zO1xufTtcbiJdfQ==
|
package/lib/languages.d.ts
CHANGED
|
@@ -12,5 +12,9 @@ export interface RenderCodeOptions {
|
|
|
12
12
|
* The name of the Java package to use for the generated code. Required if `language` is `java`.
|
|
13
13
|
*/
|
|
14
14
|
readonly javaPackage?: string;
|
|
15
|
+
/**
|
|
16
|
+
* The name of the C# namespace to use for the generated code. Required if `language` is `csharp`.
|
|
17
|
+
*/
|
|
18
|
+
readonly csharpNamespace?: string;
|
|
15
19
|
}
|
|
16
20
|
export declare function renderCode(options: RenderCodeOptions): Promise<void>;
|
package/lib/languages.js
CHANGED
|
@@ -56,7 +56,7 @@ async function renderCode(options) {
|
|
|
56
56
|
case 'csharp':
|
|
57
57
|
srcmakopts.csharp = {
|
|
58
58
|
outdir: options.outdir,
|
|
59
|
-
namespace: options.
|
|
59
|
+
namespace: options.csharpNamespace,
|
|
60
60
|
};
|
|
61
61
|
break;
|
|
62
62
|
case 'java':
|
|
@@ -84,4 +84,4 @@ async function renderCode(options) {
|
|
|
84
84
|
await (0, jsii_srcmak_1.srcmak)(options.srcdir, srcmakopts);
|
|
85
85
|
}
|
|
86
86
|
exports.renderCode = renderCode;
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xhbmd1YWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUFrQztBQUNsQywyQ0FBNkI7QUFDN0IsK0NBQWlDO0FBQ2pDLDZDQUE4QztBQUU5QyxNQUFNLE9BQU8sR0FBRztJQUNkLGFBQWE7SUFDYixZQUFZO0NBQ2IsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsWUFBWTtJQUNaLFFBQVE7SUFDUixNQUFNO0lBQ04sUUFBUTtJQUNSLFFBQVE7Q0FDVCxDQUFDO0FBd0JLLEtBQUssVUFBVSxVQUFVLENBQUMsT0FBMEI7SUFDekQsTUFBTSxVQUFVLEdBQVk7UUFDMUIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7S0FDM0UsQ0FBQztJQUVGLFFBQVEsT0FBTyxDQUFDLFFBQVEsRUFBRTtRQUN4QixLQUFLLFlBQVk7WUFDZixNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFaEosS0FBSyxRQUFRO1lBQ1gsVUFBVSxDQUFDLE1BQU0sR0FBRztnQkFDbEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixVQUFVLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO2FBQzdDLENBQUM7WUFDRixNQUFNO1FBRVIsS0FBSyxRQUFRO1lBQ1gsVUFBVSxDQUFDLE1BQU0sR0FBRztnQkFDbEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixTQUFTLEVBQUUsT0FBTyxDQUFDLGVBQWdCO2FBQ3BDLENBQUM7WUFDRixNQUFNO1FBRVIsS0FBSyxNQUFNO1lBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7Z0JBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUZBQXlGLENBQUMsQ0FBQzthQUM1RztZQUVELFVBQVUsQ0FBQyxJQUFJLEdBQUc7Z0JBQ2hCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtnQkFDdEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2FBQzdCLENBQUM7WUFDRixNQUFNO1FBRVIsS0FBSyxRQUFRO1lBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7Z0JBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0VBQXNFLENBQUMsQ0FBQzthQUN6RjtZQUVELFVBQVUsQ0FBQyxNQUFNLEdBQUc7Z0JBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtnQkFDdEIsV0FBVyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUM7Z0JBQ2xELFVBQVUsRUFBRSxPQUFPLENBQUMsUUFBUTthQUM3QixDQUFDO1lBQ0YsTUFBTTtRQUVSO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7S0FDaEU7SUFFRCxNQUFNLElBQUEsb0JBQU0sRUFBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFwREQsZ0NBb0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGNhc2V1dGlsIGZyb20gJ2Nhc2UnO1xuaW1wb3J0IHsgc3JjbWFrLCBPcHRpb25zIH0gZnJvbSAnanNpaS1zcmNtYWsnO1xuXG5jb25zdCBjZGtEZXBzID0gW1xuICAnYXdzLWNkay1saWInLFxuICAnY29uc3RydWN0cycsXG5dO1xuXG5leHBvcnQgY29uc3QgU1VQUE9SVEVEX0xBTkdVQUdFUyA9IFtcbiAgJ3R5cGVzY3JpcHQnLFxuICAncHl0aG9uJyxcbiAgJ2phdmEnLFxuICAnY3NoYXJwJyxcbiAgJ2dvbGFuZycsXG5dO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlckNvZGVPcHRpb25zIHtcbiAgcmVhZG9ubHkgc3JjZGlyOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG91dGRpcjogc3RyaW5nO1xuICByZWFkb25seSBsYW5ndWFnZTogc3RyaW5nO1xuICByZWFkb25seSB0eXBlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgR28gbW9kdWxlIHRvIHVzZSBmb3IgdGhlIGdlbmVyYXRlZCBjb2RlLiBSZXF1aXJlZCBpZiBgbGFuZ3VhZ2VgIGlzIGBnb2xhbmdgLlxuICAgKi9cbiAgcmVhZG9ubHkgZ29Nb2R1bGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBKYXZhIHBhY2thZ2UgdG8gdXNlIGZvciB0aGUgZ2VuZXJhdGVkIGNvZGUuIFJlcXVpcmVkIGlmIGBsYW5ndWFnZWAgaXMgYGphdmFgLlxuICAgKi9cbiAgcmVhZG9ubHkgamF2YVBhY2thZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBDIyBuYW1lc3BhY2UgdG8gdXNlIGZvciB0aGUgZ2VuZXJhdGVkIGNvZGUuIFJlcXVpcmVkIGlmIGBsYW5ndWFnZWAgaXMgYGNzaGFycGAuXG4gICAqL1xuICByZWFkb25seSBjc2hhcnBOYW1lc3BhY2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXJDb2RlKG9wdGlvbnM6IFJlbmRlckNvZGVPcHRpb25zKSB7XG4gIGNvbnN0IHNyY21ha29wdHM6IE9wdGlvbnMgPSB7XG4gICAgZGVwczogY2RrRGVwcy5tYXAoeCA9PiBwYXRoLmRpcm5hbWUocmVxdWlyZS5yZXNvbHZlKGAke3h9L3BhY2thZ2UuanNvbmApKSksXG4gIH07XG5cbiAgc3dpdGNoIChvcHRpb25zLmxhbmd1YWdlKSB7XG4gICAgY2FzZSAndHlwZXNjcmlwdCc6XG4gICAgICBhd2FpdCBmcy5ta2RpcihvcHRpb25zLm91dGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICByZXR1cm4gZnMuY29weUZpbGUocGF0aC5qb2luKG9wdGlvbnMuc3JjZGlyLCAnaW5kZXgudHMnKSwgcGF0aC5qb2luKG9wdGlvbnMub3V0ZGlyLCBgJHtjYXNldXRpbC5oZWFkZXIob3B0aW9ucy50eXBlTmFtZSkudG9Mb3dlckNhc2UoKX0udHNgKSk7XG5cbiAgICBjYXNlICdweXRob24nOlxuICAgICAgc3JjbWFrb3B0cy5weXRob24gPSB7XG4gICAgICAgIG91dGRpcjogb3B0aW9ucy5vdXRkaXIsXG4gICAgICAgIG1vZHVsZU5hbWU6IGNhc2V1dGlsLnNuYWtlKG9wdGlvbnMudHlwZU5hbWUpLFxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnY3NoYXJwJzpcbiAgICAgIHNyY21ha29wdHMuY3NoYXJwID0ge1xuICAgICAgICBvdXRkaXI6IG9wdGlvbnMub3V0ZGlyLFxuICAgICAgICBuYW1lc3BhY2U6IG9wdGlvbnMuY3NoYXJwTmFtZXNwYWNlISxcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2phdmEnOlxuICAgICAgaWYgKCFvcHRpb25zLmphdmFQYWNrYWdlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSmF2YSBwYWNrYWdlIG5hbWUgKGAtLWphdmEtcGFja2FnZWApIG11c3QgYmUgc3BlY2lmaWVkIChlLmcuIFwiY29tLmZvby5iYXIubXkucmVzb3VyY2VcIiknKTtcbiAgICAgIH1cblxuICAgICAgc3JjbWFrb3B0cy5qYXZhID0ge1xuICAgICAgICBvdXRkaXI6IG9wdGlvbnMub3V0ZGlyLFxuICAgICAgICBwYWNrYWdlOiBvcHRpb25zLmphdmFQYWNrYWdlLFxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZ29sYW5nJzpcbiAgICAgIGlmICghb3B0aW9ucy5nb01vZHVsZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dvIG1vZHVsZSBuYW1lICgtLWdvLW1vZHVsZSkgaXMgcmVxdWlyZWQgKGUuZy4gXCJnaXRodWIuY29tL2Zvby9iYXJcIiknKTtcbiAgICAgIH1cblxuICAgICAgc3JjbWFrb3B0cy5nb2xhbmcgPSB7XG4gICAgICAgIG91dGRpcjogb3B0aW9ucy5vdXRkaXIsXG4gICAgICAgIHBhY2thZ2VOYW1lOiBjYXNldXRpbC5sb3dlcihvcHRpb25zLnR5cGVOYW1lLCAnLScpLFxuICAgICAgICBtb2R1bGVOYW1lOiBvcHRpb25zLmdvTW9kdWxlLFxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgbGFuZ3VhZ2U6ICR7b3B0aW9ucy5sYW5ndWFnZX1gKTtcbiAgfVxuXG4gIGF3YWl0IHNyY21hayhvcHRpb25zLnNyY2Rpciwgc3JjbWFrb3B0cyk7XG59XG4iXX0=
|
|
@@ -199,6 +199,14 @@ class ServiceCatalogProvisioningConstructGenerator {
|
|
|
199
199
|
product.Owner && code.line(` * Owner: ${product.Owner}`);
|
|
200
200
|
code.line(' */');
|
|
201
201
|
}
|
|
202
|
+
emitSynthesizerValidation(code) {
|
|
203
|
+
code.line('const synthesizer: cdk.IStackSynthesizer = cdk.Stack.of(this).synthesizer;');
|
|
204
|
+
code.line('const supportedSynthesizers = [cdk.CliCredentialsStackSynthesizer, cdk.LegacyStackSynthesizer, cdk.BootstraplessSynthesizer];');
|
|
205
|
+
code.line();
|
|
206
|
+
code.line('if (!supportedSynthesizers.some(supportedSynthesizer => synthesizer instanceof supportedSynthesizer)) {');
|
|
207
|
+
code.line(' throw Error(`${synthesizer.constructor.name} not supported. Please use one of the supported synthesizers: ${supportedSynthesizers.map(synth => synth.name)}`);');
|
|
208
|
+
code.line('}');
|
|
209
|
+
}
|
|
202
210
|
emitConstructClass(code) {
|
|
203
211
|
var _a;
|
|
204
212
|
this.emitProductDescription(code);
|
|
@@ -224,7 +232,9 @@ class ServiceCatalogProvisioningConstructGenerator {
|
|
|
224
232
|
code.line(' */');
|
|
225
233
|
code.openBlock(`constructor(scope: constructs.Construct, id: string${this.hasParameters ? ', props: ' + this.propsStructName : ''})`);
|
|
226
234
|
code.line('super(scope, id);');
|
|
227
|
-
code.line(
|
|
235
|
+
code.line();
|
|
236
|
+
this.emitSynthesizerValidation(code);
|
|
237
|
+
code.line();
|
|
228
238
|
code.line("this.provisionedProduct = new sc.CfnCloudFormationProvisionedProduct(this, 'Resource', {");
|
|
229
239
|
code.line(' provisionedProductName: this.node.id,');
|
|
230
240
|
if (this.productDataAggregate.provisioningArtifact.Name) {
|
|
@@ -263,4 +273,4 @@ class ServiceCatalogProvisioningConstructGenerator {
|
|
|
263
273
|
}
|
|
264
274
|
}
|
|
265
275
|
exports.ServiceCatalogProvisioningConstructGenerator = ServiceCatalogProvisioningConstructGenerator;
|
|
266
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY29uc3RydWN0LWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zYy1jb25zdHJ1Y3QtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsK0JBQStDO0FBQy9DLCtDQUFpQztBQVdqQzs7R0FFRztBQUNILE1BQWEsNENBQTRDO0lBY3ZEOztPQUVHO0lBQ0gsWUFBWSxXQUFpQztRQUMzQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsV0FBVyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFBLGFBQU0sRUFBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLElBQUssQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsT0FBTyxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBa0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsOEJBQStCLENBQUM7UUFDbkYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLDhCQUErQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENB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Q0FBQyxDQUFDO1NBQzNCO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLDBEQUEwRCxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLElBQUksQ0FBQywrSEFBK0gsQ0FBQyxDQUFDO1FBQzNJLElBQUksQ0FBQyxJQUFJLENBQUMsbUdBQW1HLENBQUMsQ0FBQztRQUMvRyxNQUFBLElBQUksQ0FBQyxVQUFVLDBDQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBQSxZQUFLLEVBQUMsTUFBTSxDQUFDLEdBQUksQ0FBQyxtRkFBbUYsTUFBTSxDQUFDLEdBQUksTUFBTSxDQUFDLENBQUM7UUFDNUksQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFFbEIsd0JBQXdCO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNwQixDQUFDO0NBQ0Y7QUFwUUQsb0dBb1FDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUHJvdmlzaW9uaW5nQXJ0aWZhY3RPdXRwdXRzLCBQcm92aXNpb25pbmdBcnRpZmFjdFBhcmFtZXRlcnMgfSBmcm9tICdhd3Mtc2RrL2NsaWVudHMvc2VydmljZWNhdGFsb2cnO1xuaW1wb3J0IHsgcGFzY2FsLCBjYW1lbCwgY29uc3RhbnQgfSBmcm9tICdjYXNlJztcbmltcG9ydCAqIGFzIGoyaiBmcm9tICdqc29uMmpzaWknO1xuaW1wb3J0IHsgUHJvZHVjdERhdGFBZ2dyZWdhdGUgfSBmcm9tICcuL3NlcnZpY2UtY2F0YWxvZyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBlbnVtIGZvciBDbG91ZEZvcm1hdGlvbiBwYXJhbWV0ZXIgaW5wdXRzIHRoYXQgaGF2ZSBwcmVkZWZpbmVkIGFsbG93ZWQgdmFsdWVzLlxuICovXG50eXBlIEVudW1EZWZpbml0aW9uID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGFsbG93ZWRWYWx1ZXM6IHN0cmluZ1tdO1xufTtcblxuLyoqXG4gKiBHZW5lcmF0b3IgdG8gZW1pdCBjbGFzc2VzIGFuZCBpbmZvcm1hdGlvbiBvbiBwcm92aXNpb25pbmcgZGV0YWlscyBmb3IgYSBwcm9kdWN0LlxuICovXG5leHBvcnQgY2xhc3MgU2VydmljZUNhdGFsb2dQcm92aXNpb25pbmdDb25zdHJ1Y3RHZW5lcmF0b3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3REYXRhQWdncmVnYXRlOiBQcm9kdWN0RGF0YUFnZ3JlZ2F0ZTtcbiAgcHJpdmF0ZSByZWFkb25seSBoYXNQYXJhbWV0ZXJzOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplZFR5cGVOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VBdHRyaWJ1dGVzOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25zdHJ1Y3RDbGFzc05hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wc1N0cnVjdE5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBlbnVtczogRW51bURlZmluaXRpb25bXTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXJhbWV0ZXJzOiBQcm92aXNpb25pbmdBcnRpZmFjdFBhcmFtZXRlcnM7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEF0dHJpYnV0ZXM6IFNldDxzdHJpbmc+O1xuICBwcml2YXRlIHJlYWRvbmx5IG91dHB1dEtleXM6IFByb3Zpc2lvbmluZ0FydGlmYWN0T3V0cHV0cztcbiAgcHJpdmF0ZSByZWFkb25seSBvdXRwdXREZXNjcmlwdGlvbnM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWR9O1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gcHJvZHVjdERhdGEgdGhlIGFnZ3JlZ2F0ZSBkZXRhaWxzIG9uIGEgcHJvZHVjdCB3aXRoIGluZm9ybWF0aW9uIG9uIGlucHV0cyBhbmQgb3V0cHV0cyBvZiB0aGUgdGVtcGxhdGUuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9kdWN0RGF0YTogUHJvZHVjdERhdGFBZ2dyZWdhdGUpIHtcbiAgICB0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlID0gcHJvZHVjdERhdGE7XG4gICAgdGhpcy5zYW5pdGl6ZWRUeXBlTmFtZSA9IHBhc2NhbCh0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLnByb2R1Y3QuTmFtZSEpO1xuICAgIHRoaXMuY29uc3RydWN0Q2xhc3NOYW1lID0gajJqLlR5cGVHZW5lcmF0b3Iubm9ybWFsaXplVHlwZU5hbWUodGhpcy5zYW5pdGl6ZWRUeXBlTmFtZSk7XG4gICAgdGhpcy5wcm9wc1N0cnVjdE5hbWUgPSBqMmouVHlwZUdlbmVyYXRvci5ub3JtYWxpemVUeXBlTmFtZShgJHt0aGlzLmNvbnN0cnVjdENsYXNzTmFtZX1Qcm9wc2ApO1xuICAgIHRoaXMubmFtZSA9IHRoaXMuc2FuaXRpemVkVHlwZU5hbWU7XG4gICAgdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIHRoaXMuZW51bXMgPSBuZXcgQXJyYXk8RW51bURlZmluaXRpb24+KCk7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gdGhpcy5wcm9kdWN0RGF0YUFnZ3JlZ2F0ZS5wYXJhbXMuUHJvdmlzaW9uaW5nQXJ0aWZhY3RQYXJhbWV0ZXJzITtcbiAgICB0aGlzLmhhc1BhcmFtZXRlcnMgPSB0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLnBhcmFtcy5Qcm92aXNpb25pbmdBcnRpZmFjdFBhcmFtZXRlcnMhLmxlbmd0aCA+IDA7XG4gICAgdGhpcy5vdXRwdXRLZXlzID0gdGhpcy5wcm9kdWN0RGF0YUFnZ3JlZ2F0ZS5wYXJhbXMuUHJvdmlzaW9uaW5nQXJ0aWZhY3RPdXRwdXRLZXlzITtcbiAgICB0aGlzLm91dHB1dERlc2NyaXB0aW9ucyA9IHRoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucGFyYW1zLlByb3Zpc2lvbmluZ0FydGlmYWN0T3V0cHV0S2V5cyEucmVkdWNlKChvYmosIGtleSkgPT4ge1xuICAgICAgb2JqW2NhbWVsKGtleS5LZXkhKV0gPSBrZXkuRGVzY3JpcHRpb247XG4gICAgICByZXR1cm4gb2JqO1xuICAgIH0sIHt9IGFzIHtba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWR9KTtcblxuICAgIHRoaXMuZGVmYXVsdEF0dHJpYnV0ZXMgPSBuZXcgU2V0PHN0cmluZz4oWydwcm92aXNpb25lZFByb2R1Y3RJZCcsICdjbG91ZEZvcm1hdGlvblN0YWNrQXJuJywgJ3JlY29yZElkJ10pO1xuXG4gICAgdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMucHVzaChcbiAgICAgIC4uLnRoaXMuZGVmYXVsdEF0dHJpYnV0ZXMsXG4gICAgICAuLi50aGlzLm91dHB1dEtleXMubWFwKGtleSA9PiBjYW1lbChrZXkuS2V5ISkpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSB0eXBlIGludG8gYSBUeXBlU2NyaXB0IGNsYXNzIGZpbGUgZGVmaW5pbmcgdGhlIHByb3BzIGFuZCB0aGUgd3JhcHBlZCBMMSBjb25zdHJ1Y3QgQVdTOjpTZXJ2aWNlQ2F0YWxvZzo6Q2xvdWRGb3JtYXRpb25Qcm92aXNpb25lZFByb2R1Y3QuXG4gICAqXG4gICAqIEByZXR1cm5zIHRoZSByZW5kZXJlZCBjbGFzcyBmaWxlIGNvbnRlbnRcbiAgICovXG4gIHB1YmxpYyByZW5kZXIoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb2RlID0gbmV3IGoyai5Db2RlKCk7XG4gICAgdGhpcy5lbWl0SW1wb3J0cyhjb2RlKTtcbiAgICB0aGlzLmVtaXRJbnRlcmZhY2UoY29kZSk7XG4gICAgdGhpcy5lbWl0QmFzZShjb2RlKTtcbiAgICBpZiAodGhpcy5oYXNQYXJhbWV0ZXJzKSB7XG4gICAgICB0aGlzLmVtaXRQYXJhbWV0ZXJNYXAoY29kZSk7XG4gICAgICB0aGlzLmVtaXREZWZpbml0aW9uVHlwZXMoY29kZSk7XG4gICAgfVxuICAgIHRoaXMuZW1pdENvbnN0cnVjdENsYXNzKGNvZGUpO1xuICAgIHRoaXMuZW51bXMubGVuZ3RoICYmIHRoaXMuZW1pdEVudW1zKGNvZGUpO1xuICAgIHJldHVybiBjb2RlLnJlbmRlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0SW1wb3J0cyhjb2RlOiBqMmouQ29kZSkge1xuICAgIGNvZGUubGluZSgnLy8gR2VuZXJhdGVkIGJ5IGNkay1pbXBvcnQnKTtcbiAgICBjb2RlLmxpbmUoXCJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1wiKTtcbiAgICBjb2RlLmxpbmUoXCJpbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1wiKTtcbiAgICBjb2RlLmxpbmUoXCJpbXBvcnQgKiBhcyBzYyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VydmljZWNhdGFsb2cnO1wiKTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEludGVyZmFjZShjb2RlOiBqMmouQ29kZSkge1xuICAgIGNvZGUub3BlbkJsb2NrKGBleHBvcnQgaW50ZXJmYWNlIEkke3RoaXMuY29uc3RydWN0Q2xhc3NOYW1lfSBleHRlbmRzIGNkay5JUmVzb3VyY2VgKTtcbiAgICB0aGlzLnJlc291cmNlQXR0cmlidXRlcy5mb3JFYWNoKGF0dHIgPT4ge1xuICAgICAgY29kZS5saW5lKGByZWFkb25seSAke2F0dHJ9OiBzdHJpbmc7YCk7XG4gICAgfSk7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRCYXNlKGNvZGU6IGoyai5Db2RlKSB7XG4gICAgY29kZS5vcGVuQmxvY2soYGFic3RyYWN0IGNsYXNzICR7dGhpcy5jb25zdHJ1Y3RDbGFzc05hbWV9QmFzZSBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIEkke3RoaXMuY29uc3RydWN0Q2xhc3NOYW1lfWApO1xuICAgIHRoaXMucmVzb3VyY2VBdHRyaWJ1dGVzLmZvckVhY2goYXR0ciA9PiB7XG4gICAgICBjb2RlLmxpbmUoYHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSAke2F0dHJ9OiBzdHJpbmc7YCk7XG4gICAgfSk7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRQYXJhbWV0ZXJzKGNvZGU6IGoyai5Db2RlKSB7XG4gICAgY29kZS5saW5lKCcgIHByb3Zpc2lvbmluZ1BhcmFtZXRlcnM6Jyk7XG4gICAgY29kZS5saW5lKCcgICAgT2JqZWN0LmVudHJpZXMocHJvcHMpLm1hcCgoW2ssIHZdKSA9PiB7Jyk7XG4gICAgY29kZS5saW5lKCcgICAgICByZXR1cm4geycpO1xuICAgIGNvZGUubGluZSgnICAgICAgICBrZXk6IFBhcmFtZXRlcktleXMudmFsdWVPZihrKSBhcyBzdHJpbmcsJyk7XG4gICAgY29kZS5saW5lKCcgICAgICAgIHZhbHVlOiB2IGFzIHN0cmluZywnKTtcbiAgICBjb2RlLmxpbmUoJyAgICAgIH0nKTtcbiAgICBjb2RlLmxpbmUoJyAgICB9KSwnKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFBhcmFtZXRlck1hcChjb2RlOiBqMmouQ29kZSkge1xuICAgIGNvZGUub3BlbkJsb2NrKCdlbnVtIFBhcmFtZXRlcktleXMnKTtcbiAgICB0aGlzLnBhcmFtZXRlcnM/LmZvckVhY2gocCA9PiB7XG4gICAgICBjb2RlLmxpbmUoYCR7Y2FtZWwocC5QYXJhbWV0ZXJLZXkhKX0gPSAnJHtwLlBhcmFtZXRlcktleX0nLGApO1xuICAgIH0pO1xuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIGNvZGUubGluZSgpO1xuICAgIGNvZGUub3BlbkJsb2NrKCduYW1lc3BhY2UgUGFyYW1ldGVyS2V5cycpO1xuICAgIGNvZGUubGluZSgnY29uc3QgcmV2ZXJzZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBQYXJhbWV0ZXJLZXlzPigpOycpO1xuICAgIGNvZGUubGluZSgnT2JqZWN0LmtleXMoUGFyYW1ldGVyS2V5cykuZm9yRWFjaCgoczogc3RyaW5nKSA9PiB7Jyk7XG4gICAgY29kZS5saW5lKCcgIGNvbnN0IGUgPSAoPGFueT5QYXJhbWV0ZXJLZXlzKVtzXTsnKTtcbiAgICBjb2RlLmxpbmUoJyAgcmV2ZXJzZU1hcC5zZXQocywgZSk7Jyk7XG4gICAgY29kZS5saW5lKCd9KTsnKTtcbiAgICBjb2RlLmxpbmUoJ2V4cG9ydCBmdW5jdGlvbiB2YWx1ZU9mKHN0cjogc3RyaW5nKSB7Jyk7XG4gICAgY29kZS5saW5lKCcgIHJldHVybiByZXZlcnNlTWFwLmdldChzdHIpOycpO1xuICAgIGNvZGUubGluZSgnfScpO1xuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RGVmaW5pdGlvblR5cGVzKGNvZGU6IGoyai5Db2RlKSB7XG4gICAgY29kZS5vcGVuQmxvY2soYGV4cG9ydCBpbnRlcmZhY2UgJHt0aGlzLmNvbnN0cnVjdENsYXNzTmFtZX1Qcm9wc2ApO1xuICAgIHRoaXMucGFyYW1ldGVycyEuZm9yRWFjaChwYSA9PiB7XG4gICAgICBsZXQgb3B0aW9uYWwgPSAnJztcbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqICR7cGFzY2FsKHBhLlBhcmFtZXRlcktleSEpfWApO1xuICAgICAgaWYgKHBhLkRlc2NyaXB0aW9uKSB7XG4gICAgICAgIGNvZGUubGluZSgnIConKTtcbiAgICAgICAgY29kZS5saW5lKGAgKiAke3BhLkRlc2NyaXB0aW9ufWApO1xuICAgICAgfVxuICAgICAgaWYgKHBhLlBhcmFtZXRlckNvbnN0cmFpbnRzPy5Db25zdHJhaW50RGVzY3JpcHRpb24pIHtcbiAgICAgICAgY29kZS5saW5lKCcgKicpO1xuICAgICAgICBjb2RlLmxpbmUoYCAqICR7cGEuUGFyYW1ldGVyQ29uc3RyYWludHM/LkNvbnN0cmFpbnREZXNjcmlwdGlvbn1gKTtcbiAgICAgIH1cbiAgICAgIGlmIChwYS5EZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgb3B0aW9uYWwgKz0gJz8nO1xuICAgICAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgICAgIGNvZGUubGluZShgICogQGRlZmF1bHQgJHtwYS5EZWZhdWx0VmFsdWV9YCk7XG4gICAgICB9XG4gICAgICBpZiAocGEuUGFyYW1ldGVyQ29uc3RyYWludHM/LkFsbG93ZWRWYWx1ZXM/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLmVudW1zLnB1c2goe1xuICAgICAgICAgIG5hbWU6IHBhLlBhcmFtZXRlcktleSEsXG4gICAgICAgICAgYWxsb3dlZFZhbHVlczogcGEuUGFyYW1ldGVyQ29uc3RyYWludHMuQWxsb3dlZFZhbHVlcyxcbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICBjb2RlLmxpbmUoJyAqLycpO1xuICAgICAgY29kZS5saW5lKGByZWFkb25seSAke2NhbWVsKHBhLlBhcmFtZXRlcktleSEpfSR7b3B0aW9uYWx9OiAke3BhLlBhcmFtZXRlckNvbnN0cmFpbnRzPy5BbGxvd2VkVmFsdWVzPy5sZW5ndGggPyB0aGlzLmNvbnN0cnVjdENsYXNzTmFtZSArICcuJyArIHBhLlBhcmFtZXRlcktleSA6ICdzdHJpbmcnfTtgKTtcbiAgICAgIGNvZGUubGluZSgpO1xuICAgIH0pO1xuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRW51bVZhbHVlKHZhbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoTnVtYmVyKHZhbCkpIHtcbiAgICAgIHJldHVybiBjb25zdGFudChgVkFMVUVfJHt2YWx9YCk7XG4gICAgfSBlbHNlIGlmIChOdW1iZXIodmFsLmNoYXJBdCgwKSkpIHtcbiAgICAgIHJldHVybiBgJyR7Y29uc3RhbnQodmFsKX0nYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGNvbnN0YW50KHZhbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RW51bXMoY29kZTogajJqLkNvZGUpIHtcbiAgICBjb2RlLmxpbmUoKTtcbiAgICBjb2RlLm9wZW5CbG9jayhgZXhwb3J0IG5hbWVzcGFjZSAke3RoaXMuY29uc3RydWN0Q2xhc3NOYW1lfWApO1xuICAgIHRoaXMuZW51bXMuZm9yRWFjaCggZSA9PiB7XG4gICAgICBjb2RlLmxpbmUoKTtcbiAgICAgIGNvZGUub3BlbkJsb2NrKGBleHBvcnQgZW51bSAke2UubmFtZX1gKTtcbiAgICAgIGUuYWxsb3dlZFZhbHVlcy5mb3JFYWNoKHZhbCA9PiB7XG4gICAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICAgIGNvZGUubGluZShgICogJHt2YWx9YCk7XG4gICAgICAgIGNvZGUubGluZSgnICovJyk7XG4gICAgICAgIGNvZGUubGluZShgJHt0aGlzLnJlc29sdmVFbnVtVmFsdWUodmFsKX0gPSAnJHt2YWx9JyxgKTtcbiAgICAgICAgY29kZS5saW5lKCk7XG4gICAgICB9KTtcbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgICAgY29kZS5saW5lKCk7XG4gICAgfSk7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRQcm9kdWN0RGVzY3JpcHRpb24oY29kZTogajJqLkNvZGUpIHtcbiAgICBjb25zdCBwcm9kdWN0ID0gdGhpcy5wcm9kdWN0RGF0YUFnZ3JlZ2F0ZS5wcm9kdWN0O1xuICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgY29kZS5saW5lKGAgKiAke3RoaXMuc2FuaXRpemVkVHlwZU5hbWV9YCk7XG4gICAgY29kZS5saW5lKCcgKicpO1xuICAgIGlmIChwcm9kdWN0LlNob3J0RGVzY3JpcHRpb24pIHtcbiAgICAgIGNvZGUubGluZShgICogJHtwcm9kdWN0LlNob3J0RGVzY3JpcHRpb259YCk7XG4gICAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgfVxuICAgIHByb2R1Y3QuU3VwcG9ydERlc2NyaXB0aW9uICYmIGNvZGUubGluZShgICogJHtwcm9kdWN0LlN1cHBvcnREZXNjcmlwdGlvbn1gKTtcbiAgICBwcm9kdWN0LlN1cHBvcnRFbWFpbCAmJiBjb2RlLmxpbmUoYCAqIFN1cHBvcnQgRW1haWw6ICR7cHJvZHVjdC5TdXBwb3J0RW1haWx9YCk7XG4gICAgcHJvZHVjdC5TdXBwb3J0VXJsICYmIGNvZGUubGluZShgICogU3VwcG9ydCBVcmw6ICR7cHJvZHVjdC5TdXBwb3J0VXJsfWApO1xuICAgIHByb2R1Y3QuRGlzdHJpYnV0b3IgJiYgY29kZS5saW5lKGAgKiBEaXN0cmlidXRvcjogJHtwcm9kdWN0LkRpc3RyaWJ1dG9yfWApO1xuICAgIHByb2R1Y3QuT3duZXIgJiYgY29kZS5saW5lKGAgKiBPd25lcjogJHtwcm9kdWN0Lk93bmVyfWApO1xuICAgIGNvZGUubGluZSgnICovJyk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRDb25zdHJ1Y3RDbGFzcyhjb2RlOiBqMmouQ29kZSkge1xuICAgIHRoaXMuZW1pdFByb2R1Y3REZXNjcmlwdGlvbihjb2RlKTtcbiAgICBjb2RlLm9wZW5CbG9jayhgZXhwb3J0IGNsYXNzICR7dGhpcy5jb25zdHJ1Y3RDbGFzc05hbWV9IGV4dGVuZHMgJHt0aGlzLmNvbnN0cnVjdENsYXNzTmFtZX1CYXNlYCk7XG4gICAgZm9yIChjb25zdCBwcm9wIG9mIHRoaXMucmVzb3VyY2VBdHRyaWJ1dGVzKSB7XG4gICAgICBpZiAodGhpcy5vdXRwdXREZXNjcmlwdGlvbnNbcHJvcF0pIHtcbiAgICAgICAgY29kZS5saW5lKCcvKionKTtcbiAgICAgICAgY29kZS5saW5lKGAgKiAke3RoaXMub3V0cHV0RGVzY3JpcHRpb25zW3Byb3BdfWApO1xuICAgICAgICBjb2RlLmxpbmUoJyAqLycpO1xuICAgICAgfVxuICAgICAgY29kZS5saW5lKGBwdWJsaWMgcmVhZG9ubHkgJHtwcm9wfTogc3RyaW5nO2ApO1xuICAgIH1cbiAgICBjb2RlLmxpbmUoJ3ByaXZhdGUgcmVhZG9ubHkgcHJvdmlzaW9uZWRQcm9kdWN0OiBzYy5DZm5DbG91ZEZvcm1hdGlvblByb3Zpc2lvbmVkUHJvZHVjdDsnKTtcbiAgICBjb2RlLmxpbmUoKTtcblxuICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgY29kZS5saW5lKGAgKiBDcmVhdGUgYSBuZXcgU2VydmljZSBDYXRhbG9nIFxcYCR7dGhpcy5zYW5pdGl6ZWRUeXBlTmFtZX1cXGAgcHJvZHVjdC5gKTtcbiAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgY29kZS5saW5lKCcgKiBAcGFyYW0gc2NvcGUgLSBzY29wZSBpbiB3aGljaCB0aGlzIHJlc291cmNlIGlzIGRlZmluZWQnKTtcbiAgICBjb2RlLmxpbmUoJyAqIEBwYXJhbSBpZCAgICAtIHNjb3BlZCBpZCBvZiB0aGUgcmVzb3VyY2UnKTtcbiAgICBpZiAodGhpcy5oYXNQYXJhbWV0ZXJzKSB7XG4gICAgICBjb2RlLmxpbmUoJyAqIEBwYXJhbSBwcm9wcyAtIHJlc291cmNlIHByb3BlcnRpZXMnKTtcbiAgICB9XG4gICAgY29kZS5saW5lKCcgKi8nKTtcbiAgICBjb2RlLm9wZW5CbG9jayhgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nJHt0aGlzLmhhc1BhcmFtZXRlcnMgPyAnLCBwcm9wczogJyArIHRoaXMucHJvcHNTdHJ1Y3ROYW1lIDogJyd9KWApO1xuICAgIGNvZGUubGluZSgnc3VwZXIoc2NvcGUsIGlkKTsnKTtcbiAgICBjb2RlLmxpbmUoJycpO1xuICAgIGNvZGUubGluZShcInRoaXMucHJvdmlzaW9uZWRQcm9kdWN0ID0gbmV3IHNjLkNmbkNsb3VkRm9ybWF0aW9uUHJvdmlzaW9uZWRQcm9kdWN0KHRoaXMsICdSZXNvdXJjZScsIHtcIik7XG4gICAgY29kZS5saW5lKCcgIHByb3Zpc2lvbmVkUHJvZHVjdE5hbWU6IHRoaXMubm9kZS5pZCwnKTtcblxuICAgIGlmICh0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLnByb3Zpc2lvbmluZ0FydGlmYWN0Lk5hbWUpIHtcbiAgICAgIGNvZGUubGluZShgICBwcm92aXNpb25pbmdBcnRpZmFjdE5hbWU6ICcke3RoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucHJvdmlzaW9uaW5nQXJ0aWZhY3QuTmFtZSF9JyxgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29kZS5saW5lKGAgIHByb3Zpc2lvbmluZ0FydGlmYWN0SWQ6ICcke3RoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucHJvdmlzaW9uaW5nQXJ0aWZhY3QuSWQhfScsYCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucHJvZHVjdC5OYW1lKSB7XG4gICAgICBjb2RlLmxpbmUoYCAgcHJvZHVjdE5hbWU6ICcke3RoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucHJvZHVjdC5OYW1lIX0nLGApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb2RlLmxpbmUoYCAgcHJvZHVjdElkOiAnJHt0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLnByb2R1Y3QuUHJvZHVjdElkIX0nLGApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLmxhdW5jaFBhdGguTmFtZSkge1xuICAgICAgY29kZS5saW5lKGAgIHBhdGhOYW1lOiAnJHt0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLmxhdW5jaFBhdGguTmFtZSF9JyxgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29kZS5saW5lKGAgIHBhdGhJZDogJyR7dGhpcy5wcm9kdWN0RGF0YUFnZ3JlZ2F0ZS5sYXVuY2hQYXRoLklkIX0nLGApO1xuICAgIH1cblxuICAgIC8vIGdlbmVyYXRlIHByb3Zpc2lvbmluZyBwYXJhbWV0ZXJzIGZyb20gcHJvcHMgdG8gYXZvaWQgcmVkdW5kYW50IGRlZmF1bHRzXG4gICAgaWYgKHRoaXMuaGFzUGFyYW1ldGVycykge1xuICAgICAgdGhpcy5lbWl0UGFyYW1ldGVycyhjb2RlKTtcbiAgICB9XG5cbiAgICBjb2RlLmxpbmUoJ30pOycpO1xuICAgIGNvZGUubGluZSgpO1xuICAgIGNvZGUubGluZSgndGhpcy5wcm92aXNpb25lZFByb2R1Y3RJZCA9IHRoaXMucHJvdmlzaW9uZWRQcm9kdWN0LnJlZjsnKTtcbiAgICBjb2RlLmxpbmUoXCJ0aGlzLmNsb3VkRm9ybWF0aW9uU3RhY2tBcm4gPSBjZGsuVG9rZW4uYXNTdHJpbmcoY2RrLkZuLmdldEF0dCh0aGlzLnByb3Zpc2lvbmVkUHJvZHVjdC5sb2dpY2FsSWQsICdDbG91ZGZvcm1hdGlvblN0YWNrQXJuJykpO1wiKTtcbiAgICBjb2RlLmxpbmUoXCJ0aGlzLnJlY29yZElkID0gY2RrLlRva2VuLmFzU3RyaW5nKGNkay5Gbi5nZXRBdHQodGhpcy5wcm92aXNpb25lZFByb2R1Y3QubG9naWNhbElkLCAnUmVjb3JkSWQnKSk7XCIpO1xuICAgIHRoaXMub3V0cHV0S2V5cz8uZm9yRWFjaChvdXRwdXQgPT4ge1xuICAgICAgY29kZS5saW5lKGB0aGlzLiR7Y2FtZWwob3V0cHV0LktleSEpfSA9IGNkay5Ub2tlbi5hc1N0cmluZyhjZGsuRm4uZ2V0QXR0KHRoaXMucHJvdmlzaW9uZWRQcm9kdWN0LmxvZ2ljYWxJZCwgJ091dHB1dHMuJHtvdXRwdXQuS2V5IX0nKSk7YCk7XG4gICAgfSk7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG5cbiAgICAvLyBDbG9zZSBjb25zdHJ1Y3QgY2xhc3NcbiAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgfVxufVxuIl19
|
|
276
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2MtY29uc3RydWN0LWdlbmVyYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9zYy1jb25zdHJ1Y3QtZ2VuZXJhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQ0EsK0JBQStDO0FBQy9DLCtDQUFpQztBQVdqQzs7R0FFRztBQUNILE1BQWEsNENBQTRDO0lBY3ZEOztPQUVHO0lBQ0gsWUFBWSxXQUFpQztRQUMzQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsV0FBVyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFBLGFBQU0sRUFBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLElBQUssQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RGLElBQUksQ0FBQyxlQUFlLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsT0FBTyxDQUFDLENBQUM7UUFDOUYsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUM7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFDOUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBa0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsOEJBQStCLENBQUM7UUFDbkYsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsTUFBTSxDQUFDLDhCQUErQixDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7UUFDakcsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENB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aXNpb25pbmdBcnRpZmFjdFBhcmFtZXRlcnMgfSBmcm9tICdhd3Mtc2RrL2NsaWVudHMvc2VydmljZWNhdGFsb2cnO1xuaW1wb3J0IHsgcGFzY2FsLCBjYW1lbCwgY29uc3RhbnQgfSBmcm9tICdjYXNlJztcbmltcG9ydCAqIGFzIGoyaiBmcm9tICdqc29uMmpzaWknO1xuaW1wb3J0IHsgUHJvZHVjdERhdGFBZ2dyZWdhdGUgfSBmcm9tICcuL3NlcnZpY2UtY2F0YWxvZyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBlbnVtIGZvciBDbG91ZEZvcm1hdGlvbiBwYXJhbWV0ZXIgaW5wdXRzIHRoYXQgaGF2ZSBwcmVkZWZpbmVkIGFsbG93ZWQgdmFsdWVzLlxuICovXG50eXBlIEVudW1EZWZpbml0aW9uID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIGFsbG93ZWRWYWx1ZXM6IHN0cmluZ1tdO1xufTtcblxuLyoqXG4gKiBHZW5lcmF0b3IgdG8gZW1pdCBjbGFzc2VzIGFuZCBpbmZvcm1hdGlvbiBvbiBwcm92aXNpb25pbmcgZGV0YWlscyBmb3IgYSBwcm9kdWN0LlxuICovXG5leHBvcnQgY2xhc3MgU2VydmljZUNhdGFsb2dQcm92aXNpb25pbmdDb25zdHJ1Y3RHZW5lcmF0b3Ige1xuICBwcml2YXRlIHJlYWRvbmx5IHByb2R1Y3REYXRhQWdncmVnYXRlOiBQcm9kdWN0RGF0YUFnZ3JlZ2F0ZTtcbiAgcHJpdmF0ZSByZWFkb25seSBoYXNQYXJhbWV0ZXJzOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IHNhbml0aXplZFR5cGVOYW1lOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VBdHRyaWJ1dGVzOiBzdHJpbmdbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBjb25zdHJ1Y3RDbGFzc05hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBwcm9wc1N0cnVjdE5hbWU6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBlbnVtczogRW51bURlZmluaXRpb25bXTtcbiAgcHJpdmF0ZSByZWFkb25seSBwYXJhbWV0ZXJzOiBQcm92aXNpb25pbmdBcnRpZmFjdFBhcmFtZXRlcnM7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmYXVsdEF0dHJpYnV0ZXM6IFNldDxzdHJpbmc+O1xuICBwcml2YXRlIHJlYWRvbmx5IG91dHB1dEtleXM6IFByb3Zpc2lvbmluZ0FydGlmYWN0T3V0cHV0cztcbiAgcHJpdmF0ZSByZWFkb25seSBvdXRwdXREZXNjcmlwdGlvbnM6IHtba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWR9O1xuICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAcGFyYW0gcHJvZHVjdERhdGEgdGhlIGFnZ3JlZ2F0ZSBkZXRhaWxzIG9uIGEgcHJvZHVjdCB3aXRoIGluZm9ybWF0aW9uIG9uIGlucHV0cyBhbmQgb3V0cHV0cyBvZiB0aGUgdGVtcGxhdGUuXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9kdWN0RGF0YTogUHJvZHVjdERhdGFBZ2dyZWdhdGUpIHtcbiAgICB0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlID0gcHJvZHVjdERhdGE7XG4gICAgdGhpcy5zYW5pdGl6ZWRUeXBlTmFtZSA9IHBhc2NhbCh0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLnByb2R1Y3QuTmFtZSEpO1xuICAgIHRoaXMuY29uc3RydWN0Q2xhc3NOYW1lID0gajJqLlR5cGVHZW5lcmF0b3Iubm9ybWFsaXplVHlwZU5hbWUodGhpcy5zYW5pdGl6ZWRUeXBlTmFtZSk7XG4gICAgdGhpcy5wcm9wc1N0cnVjdE5hbWUgPSBqMmouVHlwZUdlbmVyYXRvci5ub3JtYWxpemVUeXBlTmFtZShgJHt0aGlzLmNvbnN0cnVjdENsYXNzTmFtZX1Qcm9wc2ApO1xuICAgIHRoaXMubmFtZSA9IHRoaXMuc2FuaXRpemVkVHlwZU5hbWU7XG4gICAgdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMgPSBuZXcgQXJyYXk8c3RyaW5nPigpO1xuICAgIHRoaXMuZW51bXMgPSBuZXcgQXJyYXk8RW51bURlZmluaXRpb24+KCk7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gdGhpcy5wcm9kdWN0RGF0YUFnZ3JlZ2F0ZS5wYXJhbXMuUHJvdmlzaW9uaW5nQXJ0aWZhY3RQYXJhbWV0ZXJzITtcbiAgICB0aGlzLmhhc1BhcmFtZXRlcnMgPSB0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLnBhcmFtcy5Qcm92aXNpb25pbmdBcnRpZmFjdFBhcmFtZXRlcnMhLmxlbmd0aCA+IDA7XG4gICAgdGhpcy5vdXRwdXRLZXlzID0gdGhpcy5wcm9kdWN0RGF0YUFnZ3JlZ2F0ZS5wYXJhbXMuUHJvdmlzaW9uaW5nQXJ0aWZhY3RPdXRwdXRLZXlzITtcbiAgICB0aGlzLm91dHB1dERlc2NyaXB0aW9ucyA9IHRoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucGFyYW1zLlByb3Zpc2lvbmluZ0FydGlmYWN0T3V0cHV0S2V5cyEucmVkdWNlKChvYmosIGtleSkgPT4ge1xuICAgICAgb2JqW2NhbWVsKGtleS5LZXkhKV0gPSBrZXkuRGVzY3JpcHRpb247XG4gICAgICByZXR1cm4gb2JqO1xuICAgIH0sIHt9IGFzIHtba2V5OiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWR9KTtcblxuICAgIHRoaXMuZGVmYXVsdEF0dHJpYnV0ZXMgPSBuZXcgU2V0PHN0cmluZz4oWydwcm92aXNpb25lZFByb2R1Y3RJZCcsICdjbG91ZEZvcm1hdGlvblN0YWNrQXJuJywgJ3JlY29yZElkJ10pO1xuXG4gICAgdGhpcy5yZXNvdXJjZUF0dHJpYnV0ZXMucHVzaChcbiAgICAgIC4uLnRoaXMuZGVmYXVsdEF0dHJpYnV0ZXMsXG4gICAgICAuLi50aGlzLm91dHB1dEtleXMubWFwKGtleSA9PiBjYW1lbChrZXkuS2V5ISkpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVyIHRoZSB0eXBlIGludG8gYSBUeXBlU2NyaXB0IGNsYXNzIGZpbGUgZGVmaW5pbmcgdGhlIHByb3BzIGFuZCB0aGUgd3JhcHBlZCBMMSBjb25zdHJ1Y3QgQVdTOjpTZXJ2aWNlQ2F0YWxvZzo6Q2xvdWRGb3JtYXRpb25Qcm92aXNpb25lZFByb2R1Y3QuXG4gICAqXG4gICAqIEByZXR1cm5zIHRoZSByZW5kZXJlZCBjbGFzcyBmaWxlIGNvbnRlbnRcbiAgICovXG4gIHB1YmxpYyByZW5kZXIoKTogc3RyaW5nIHtcbiAgICBjb25zdCBjb2RlID0gbmV3IGoyai5Db2RlKCk7XG4gICAgdGhpcy5lbWl0SW1wb3J0cyhjb2RlKTtcbiAgICB0aGlzLmVtaXRJbnRlcmZhY2UoY29kZSk7XG4gICAgdGhpcy5lbWl0QmFzZShjb2RlKTtcbiAgICBpZiAodGhpcy5oYXNQYXJhbWV0ZXJzKSB7XG4gICAgICB0aGlzLmVtaXRQYXJhbWV0ZXJNYXAoY29kZSk7XG4gICAgICB0aGlzLmVtaXREZWZpbml0aW9uVHlwZXMoY29kZSk7XG4gICAgfVxuICAgIHRoaXMuZW1pdENvbnN0cnVjdENsYXNzKGNvZGUpO1xuICAgIHRoaXMuZW51bXMubGVuZ3RoICYmIHRoaXMuZW1pdEVudW1zKGNvZGUpO1xuICAgIHJldHVybiBjb2RlLnJlbmRlcigpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0SW1wb3J0cyhjb2RlOiBqMmouQ29kZSkge1xuICAgIGNvZGUubGluZSgnLy8gR2VuZXJhdGVkIGJ5IGNkay1pbXBvcnQnKTtcbiAgICBjb2RlLmxpbmUoXCJpbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1wiKTtcbiAgICBjb2RlLmxpbmUoXCJpbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gJ2NvbnN0cnVjdHMnO1wiKTtcbiAgICBjb2RlLmxpbmUoXCJpbXBvcnQgKiBhcyBzYyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VydmljZWNhdGFsb2cnO1wiKTtcbiAgICBjb2RlLmxpbmUoKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdEludGVyZmFjZShjb2RlOiBqMmouQ29kZSkge1xuICAgIGNvZGUub3BlbkJsb2NrKGBleHBvcnQgaW50ZXJmYWNlIEkke3RoaXMuY29uc3RydWN0Q2xhc3NOYW1lfSBleHRlbmRzIGNkay5JUmVzb3VyY2VgKTtcbiAgICB0aGlzLnJlc291cmNlQXR0cmlidXRlcy5mb3JFYWNoKGF0dHIgPT4ge1xuICAgICAgY29kZS5saW5lKGByZWFkb25seSAke2F0dHJ9OiBzdHJpbmc7YCk7XG4gICAgfSk7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRCYXNlKGNvZGU6IGoyai5Db2RlKSB7XG4gICAgY29kZS5vcGVuQmxvY2soYGFic3RyYWN0IGNsYXNzICR7dGhpcy5jb25zdHJ1Y3RDbGFzc05hbWV9QmFzZSBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIEkke3RoaXMuY29uc3RydWN0Q2xhc3NOYW1lfWApO1xuICAgIHRoaXMucmVzb3VyY2VBdHRyaWJ1dGVzLmZvckVhY2goYXR0ciA9PiB7XG4gICAgICBjb2RlLmxpbmUoYHB1YmxpYyBhYnN0cmFjdCByZWFkb25seSAke2F0dHJ9OiBzdHJpbmc7YCk7XG4gICAgfSk7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRQYXJhbWV0ZXJzKGNvZGU6IGoyai5Db2RlKSB7XG4gICAgY29kZS5saW5lKCcgIHByb3Zpc2lvbmluZ1BhcmFtZXRlcnM6Jyk7XG4gICAgY29kZS5saW5lKCcgICAgT2JqZWN0LmVudHJpZXMocHJvcHMpLm1hcCgoW2ssIHZdKSA9PiB7Jyk7XG4gICAgY29kZS5saW5lKCcgICAgICByZXR1cm4geycpO1xuICAgIGNvZGUubGluZSgnICAgICAgICBrZXk6IFBhcmFtZXRlcktleXMudmFsdWVPZihrKSBhcyBzdHJpbmcsJyk7XG4gICAgY29kZS5saW5lKCcgICAgICAgIHZhbHVlOiB2IGFzIHN0cmluZywnKTtcbiAgICBjb2RlLmxpbmUoJyAgICAgIH0nKTtcbiAgICBjb2RlLmxpbmUoJyAgICB9KSwnKTtcbiAgfVxuXG4gIHByaXZhdGUgZW1pdFBhcmFtZXRlck1hcChjb2RlOiBqMmouQ29kZSkge1xuICAgIGNvZGUub3BlbkJsb2NrKCdlbnVtIFBhcmFtZXRlcktleXMnKTtcbiAgICB0aGlzLnBhcmFtZXRlcnM/LmZvckVhY2gocCA9PiB7XG4gICAgICBjb2RlLmxpbmUoYCR7Y2FtZWwocC5QYXJhbWV0ZXJLZXkhKX0gPSAnJHtwLlBhcmFtZXRlcktleX0nLGApO1xuICAgIH0pO1xuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgIGNvZGUubGluZSgpO1xuICAgIGNvZGUub3BlbkJsb2NrKCduYW1lc3BhY2UgUGFyYW1ldGVyS2V5cycpO1xuICAgIGNvZGUubGluZSgnY29uc3QgcmV2ZXJzZU1hcCA9IG5ldyBNYXA8c3RyaW5nLCBQYXJhbWV0ZXJLZXlzPigpOycpO1xuICAgIGNvZGUubGluZSgnT2JqZWN0LmtleXMoUGFyYW1ldGVyS2V5cykuZm9yRWFjaCgoczogc3RyaW5nKSA9PiB7Jyk7XG4gICAgY29kZS5saW5lKCcgIGNvbnN0IGUgPSAoPGFueT5QYXJhbWV0ZXJLZXlzKVtzXTsnKTtcbiAgICBjb2RlLmxpbmUoJyAgcmV2ZXJzZU1hcC5zZXQocywgZSk7Jyk7XG4gICAgY29kZS5saW5lKCd9KTsnKTtcbiAgICBjb2RlLmxpbmUoJ2V4cG9ydCBmdW5jdGlvbiB2YWx1ZU9mKHN0cjogc3RyaW5nKSB7Jyk7XG4gICAgY29kZS5saW5lKCcgIHJldHVybiByZXZlcnNlTWFwLmdldChzdHIpOycpO1xuICAgIGNvZGUubGluZSgnfScpO1xuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RGVmaW5pdGlvblR5cGVzKGNvZGU6IGoyai5Db2RlKSB7XG4gICAgY29kZS5vcGVuQmxvY2soYGV4cG9ydCBpbnRlcmZhY2UgJHt0aGlzLmNvbnN0cnVjdENsYXNzTmFtZX1Qcm9wc2ApO1xuICAgIHRoaXMucGFyYW1ldGVycyEuZm9yRWFjaChwYSA9PiB7XG4gICAgICBsZXQgb3B0aW9uYWwgPSAnJztcbiAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICBjb2RlLmxpbmUoYCAqICR7cGFzY2FsKHBhLlBhcmFtZXRlcktleSEpfWApO1xuICAgICAgaWYgKHBhLkRlc2NyaXB0aW9uKSB7XG4gICAgICAgIGNvZGUubGluZSgnIConKTtcbiAgICAgICAgY29kZS5saW5lKGAgKiAke3BhLkRlc2NyaXB0aW9ufWApO1xuICAgICAgfVxuICAgICAgaWYgKHBhLlBhcmFtZXRlckNvbnN0cmFpbnRzPy5Db25zdHJhaW50RGVzY3JpcHRpb24pIHtcbiAgICAgICAgY29kZS5saW5lKCcgKicpO1xuICAgICAgICBjb2RlLmxpbmUoYCAqICR7cGEuUGFyYW1ldGVyQ29uc3RyYWludHM/LkNvbnN0cmFpbnREZXNjcmlwdGlvbn1gKTtcbiAgICAgIH1cbiAgICAgIGlmIChwYS5EZWZhdWx0VmFsdWUpIHtcbiAgICAgICAgb3B0aW9uYWwgKz0gJz8nO1xuICAgICAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgICAgIGNvZGUubGluZShgICogQGRlZmF1bHQgJHtwYS5EZWZhdWx0VmFsdWV9YCk7XG4gICAgICB9XG4gICAgICBpZiAocGEuUGFyYW1ldGVyQ29uc3RyYWludHM/LkFsbG93ZWRWYWx1ZXM/Lmxlbmd0aCkge1xuICAgICAgICB0aGlzLmVudW1zLnB1c2goe1xuICAgICAgICAgIG5hbWU6IHBhLlBhcmFtZXRlcktleSEsXG4gICAgICAgICAgYWxsb3dlZFZhbHVlczogcGEuUGFyYW1ldGVyQ29uc3RyYWludHMuQWxsb3dlZFZhbHVlcyxcbiAgICAgICAgfSk7XG4gICAgICB9O1xuXG4gICAgICBjb2RlLmxpbmUoJyAqLycpO1xuICAgICAgY29kZS5saW5lKGByZWFkb25seSAke2NhbWVsKHBhLlBhcmFtZXRlcktleSEpfSR7b3B0aW9uYWx9OiAke3BhLlBhcmFtZXRlckNvbnN0cmFpbnRzPy5BbGxvd2VkVmFsdWVzPy5sZW5ndGggPyB0aGlzLmNvbnN0cnVjdENsYXNzTmFtZSArICcuJyArIHBhLlBhcmFtZXRlcktleSA6ICdzdHJpbmcnfTtgKTtcbiAgICAgIGNvZGUubGluZSgpO1xuICAgIH0pO1xuICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlRW51bVZhbHVlKHZhbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoTnVtYmVyKHZhbCkpIHtcbiAgICAgIHJldHVybiBjb25zdGFudChgVkFMVUVfJHt2YWx9YCk7XG4gICAgfSBlbHNlIGlmIChOdW1iZXIodmFsLmNoYXJBdCgwKSkpIHtcbiAgICAgIHJldHVybiBgJyR7Y29uc3RhbnQodmFsKX0nYDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGNvbnN0YW50KHZhbCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RW51bXMoY29kZTogajJqLkNvZGUpIHtcbiAgICBjb2RlLmxpbmUoKTtcbiAgICBjb2RlLm9wZW5CbG9jayhgZXhwb3J0IG5hbWVzcGFjZSAke3RoaXMuY29uc3RydWN0Q2xhc3NOYW1lfWApO1xuICAgIHRoaXMuZW51bXMuZm9yRWFjaCggZSA9PiB7XG4gICAgICBjb2RlLmxpbmUoKTtcbiAgICAgIGNvZGUub3BlbkJsb2NrKGBleHBvcnQgZW51bSAke2UubmFtZX1gKTtcbiAgICAgIGUuYWxsb3dlZFZhbHVlcy5mb3JFYWNoKHZhbCA9PiB7XG4gICAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICAgIGNvZGUubGluZShgICogJHt2YWx9YCk7XG4gICAgICAgIGNvZGUubGluZSgnICovJyk7XG4gICAgICAgIGNvZGUubGluZShgJHt0aGlzLnJlc29sdmVFbnVtVmFsdWUodmFsKX0gPSAnJHt2YWx9JyxgKTtcbiAgICAgICAgY29kZS5saW5lKCk7XG4gICAgICB9KTtcbiAgICAgIGNvZGUuY2xvc2VCbG9jaygpO1xuICAgICAgY29kZS5saW5lKCk7XG4gICAgfSk7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG4gICAgY29kZS5saW5lKCk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRQcm9kdWN0RGVzY3JpcHRpb24oY29kZTogajJqLkNvZGUpIHtcbiAgICBjb25zdCBwcm9kdWN0ID0gdGhpcy5wcm9kdWN0RGF0YUFnZ3JlZ2F0ZS5wcm9kdWN0O1xuICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgY29kZS5saW5lKGAgKiAke3RoaXMuc2FuaXRpemVkVHlwZU5hbWV9YCk7XG4gICAgY29kZS5saW5lKCcgKicpO1xuICAgIGlmIChwcm9kdWN0LlNob3J0RGVzY3JpcHRpb24pIHtcbiAgICAgIGNvZGUubGluZShgICogJHtwcm9kdWN0LlNob3J0RGVzY3JpcHRpb259YCk7XG4gICAgICBjb2RlLmxpbmUoJyAqJyk7XG4gICAgfVxuICAgIHByb2R1Y3QuU3VwcG9ydERlc2NyaXB0aW9uICYmIGNvZGUubGluZShgICogJHtwcm9kdWN0LlN1cHBvcnREZXNjcmlwdGlvbn1gKTtcbiAgICBwcm9kdWN0LlN1cHBvcnRFbWFpbCAmJiBjb2RlLmxpbmUoYCAqIFN1cHBvcnQgRW1haWw6ICR7cHJvZHVjdC5TdXBwb3J0RW1haWx9YCk7XG4gICAgcHJvZHVjdC5TdXBwb3J0VXJsICYmIGNvZGUubGluZShgICogU3VwcG9ydCBVcmw6ICR7cHJvZHVjdC5TdXBwb3J0VXJsfWApO1xuICAgIHByb2R1Y3QuRGlzdHJpYnV0b3IgJiYgY29kZS5saW5lKGAgKiBEaXN0cmlidXRvcjogJHtwcm9kdWN0LkRpc3RyaWJ1dG9yfWApO1xuICAgIHByb2R1Y3QuT3duZXIgJiYgY29kZS5saW5lKGAgKiBPd25lcjogJHtwcm9kdWN0Lk93bmVyfWApO1xuICAgIGNvZGUubGluZSgnICovJyk7XG4gIH1cblxuICBwcml2YXRlIGVtaXRTeW50aGVzaXplclZhbGlkYXRpb24oY29kZTogajJqLkNvZGUpIHtcbiAgICBjb2RlLmxpbmUoJ2NvbnN0IHN5bnRoZXNpemVyOiBjZGsuSVN0YWNrU3ludGhlc2l6ZXIgPSBjZGsuU3RhY2sub2YodGhpcykuc3ludGhlc2l6ZXI7Jyk7XG4gICAgY29kZS5saW5lKCdjb25zdCBzdXBwb3J0ZWRTeW50aGVzaXplcnMgPSBbY2RrLkNsaUNyZWRlbnRpYWxzU3RhY2tTeW50aGVzaXplciwgY2RrLkxlZ2FjeVN0YWNrU3ludGhlc2l6ZXIsIGNkay5Cb290c3RyYXBsZXNzU3ludGhlc2l6ZXJdOycpO1xuICAgIGNvZGUubGluZSgpO1xuICAgIGNvZGUubGluZSgnaWYgKCFzdXBwb3J0ZWRTeW50aGVzaXplcnMuc29tZShzdXBwb3J0ZWRTeW50aGVzaXplciA9PiBzeW50aGVzaXplciBpbnN0YW5jZW9mIHN1cHBvcnRlZFN5bnRoZXNpemVyKSkgeycpO1xuICAgIGNvZGUubGluZSgnICB0aHJvdyBFcnJvcihgJHtzeW50aGVzaXplci5jb25zdHJ1Y3Rvci5uYW1lfSBub3Qgc3VwcG9ydGVkLiBQbGVhc2UgdXNlIG9uZSBvZiB0aGUgc3VwcG9ydGVkIHN5bnRoZXNpemVyczogJHtzdXBwb3J0ZWRTeW50aGVzaXplcnMubWFwKHN5bnRoID0+IHN5bnRoLm5hbWUpfWApOycpO1xuICAgIGNvZGUubGluZSgnfScpO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0Q29uc3RydWN0Q2xhc3MoY29kZTogajJqLkNvZGUpIHtcbiAgICB0aGlzLmVtaXRQcm9kdWN0RGVzY3JpcHRpb24oY29kZSk7XG4gICAgY29kZS5vcGVuQmxvY2soYGV4cG9ydCBjbGFzcyAke3RoaXMuY29uc3RydWN0Q2xhc3NOYW1lfSBleHRlbmRzICR7dGhpcy5jb25zdHJ1Y3RDbGFzc05hbWV9QmFzZWApO1xuICAgIGZvciAoY29uc3QgcHJvcCBvZiB0aGlzLnJlc291cmNlQXR0cmlidXRlcykge1xuICAgICAgaWYgKHRoaXMub3V0cHV0RGVzY3JpcHRpb25zW3Byb3BdKSB7XG4gICAgICAgIGNvZGUubGluZSgnLyoqJyk7XG4gICAgICAgIGNvZGUubGluZShgICogJHt0aGlzLm91dHB1dERlc2NyaXB0aW9uc1twcm9wXX1gKTtcbiAgICAgICAgY29kZS5saW5lKCcgKi8nKTtcbiAgICAgIH1cbiAgICAgIGNvZGUubGluZShgcHVibGljIHJlYWRvbmx5ICR7cHJvcH06IHN0cmluZztgKTtcbiAgICB9XG4gICAgY29kZS5saW5lKCdwcml2YXRlIHJlYWRvbmx5IHByb3Zpc2lvbmVkUHJvZHVjdDogc2MuQ2ZuQ2xvdWRGb3JtYXRpb25Qcm92aXNpb25lZFByb2R1Y3Q7Jyk7XG4gICAgY29kZS5saW5lKCk7XG5cbiAgICBjb2RlLmxpbmUoJy8qKicpO1xuICAgIGNvZGUubGluZShgICogQ3JlYXRlIGEgbmV3IFNlcnZpY2UgQ2F0YWxvZyBcXGAke3RoaXMuc2FuaXRpemVkVHlwZU5hbWV9XFxgIHByb2R1Y3QuYCk7XG4gICAgY29kZS5saW5lKCcgKicpO1xuICAgIGNvZGUubGluZSgnICogQHBhcmFtIHNjb3BlIC0gc2NvcGUgaW4gd2hpY2ggdGhpcyByZXNvdXJjZSBpcyBkZWZpbmVkJyk7XG4gICAgY29kZS5saW5lKCcgKiBAcGFyYW0gaWQgICAgLSBzY29wZWQgaWQgb2YgdGhlIHJlc291cmNlJyk7XG4gICAgaWYgKHRoaXMuaGFzUGFyYW1ldGVycykge1xuICAgICAgY29kZS5saW5lKCcgKiBAcGFyYW0gcHJvcHMgLSByZXNvdXJjZSBwcm9wZXJ0aWVzJyk7XG4gICAgfVxuICAgIGNvZGUubGluZSgnICovJyk7XG4gICAgY29kZS5vcGVuQmxvY2soYGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZyR7dGhpcy5oYXNQYXJhbWV0ZXJzID8gJywgcHJvcHM6ICcgKyB0aGlzLnByb3BzU3RydWN0TmFtZSA6ICcnfSlgKTtcbiAgICBjb2RlLmxpbmUoJ3N1cGVyKHNjb3BlLCBpZCk7Jyk7XG4gICAgY29kZS5saW5lKCk7XG4gICAgdGhpcy5lbWl0U3ludGhlc2l6ZXJWYWxpZGF0aW9uKGNvZGUpO1xuICAgIGNvZGUubGluZSgpO1xuICAgIGNvZGUubGluZShcInRoaXMucHJvdmlzaW9uZWRQcm9kdWN0ID0gbmV3IHNjLkNmbkNsb3VkRm9ybWF0aW9uUHJvdmlzaW9uZWRQcm9kdWN0KHRoaXMsICdSZXNvdXJjZScsIHtcIik7XG4gICAgY29kZS5saW5lKCcgIHByb3Zpc2lvbmVkUHJvZHVjdE5hbWU6IHRoaXMubm9kZS5pZCwnKTtcblxuICAgIGlmICh0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLnByb3Zpc2lvbmluZ0FydGlmYWN0Lk5hbWUpIHtcbiAgICAgIGNvZGUubGluZShgICBwcm92aXNpb25pbmdBcnRpZmFjdE5hbWU6ICcke3RoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucHJvdmlzaW9uaW5nQXJ0aWZhY3QuTmFtZSF9JyxgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29kZS5saW5lKGAgIHByb3Zpc2lvbmluZ0FydGlmYWN0SWQ6ICcke3RoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucHJvdmlzaW9uaW5nQXJ0aWZhY3QuSWQhfScsYCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucHJvZHVjdC5OYW1lKSB7XG4gICAgICBjb2RlLmxpbmUoYCAgcHJvZHVjdE5hbWU6ICcke3RoaXMucHJvZHVjdERhdGFBZ2dyZWdhdGUucHJvZHVjdC5OYW1lIX0nLGApO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb2RlLmxpbmUoYCAgcHJvZHVjdElkOiAnJHt0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLnByb2R1Y3QuUHJvZHVjdElkIX0nLGApO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLmxhdW5jaFBhdGguTmFtZSkge1xuICAgICAgY29kZS5saW5lKGAgIHBhdGhOYW1lOiAnJHt0aGlzLnByb2R1Y3REYXRhQWdncmVnYXRlLmxhdW5jaFBhdGguTmFtZSF9JyxgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29kZS5saW5lKGAgIHBhdGhJZDogJyR7dGhpcy5wcm9kdWN0RGF0YUFnZ3JlZ2F0ZS5sYXVuY2hQYXRoLklkIX0nLGApO1xuICAgIH1cblxuICAgIC8vIGdlbmVyYXRlIHByb3Zpc2lvbmluZyBwYXJhbWV0ZXJzIGZyb20gcHJvcHMgdG8gYXZvaWQgcmVkdW5kYW50IGRlZmF1bHRzXG4gICAgaWYgKHRoaXMuaGFzUGFyYW1ldGVycykge1xuICAgICAgdGhpcy5lbWl0UGFyYW1ldGVycyhjb2RlKTtcbiAgICB9XG5cbiAgICBjb2RlLmxpbmUoJ30pOycpO1xuICAgIGNvZGUubGluZSgpO1xuICAgIGNvZGUubGluZSgndGhpcy5wcm92aXNpb25lZFByb2R1Y3RJZCA9IHRoaXMucHJvdmlzaW9uZWRQcm9kdWN0LnJlZjsnKTtcbiAgICBjb2RlLmxpbmUoXCJ0aGlzLmNsb3VkRm9ybWF0aW9uU3RhY2tBcm4gPSBjZGsuVG9rZW4uYXNTdHJpbmcoY2RrLkZuLmdldEF0dCh0aGlzLnByb3Zpc2lvbmVkUHJvZHVjdC5sb2dpY2FsSWQsICdDbG91ZGZvcm1hdGlvblN0YWNrQXJuJykpO1wiKTtcbiAgICBjb2RlLmxpbmUoXCJ0aGlzLnJlY29yZElkID0gY2RrLlRva2VuLmFzU3RyaW5nKGNkay5Gbi5nZXRBdHQodGhpcy5wcm92aXNpb25lZFByb2R1Y3QubG9naWNhbElkLCAnUmVjb3JkSWQnKSk7XCIpO1xuICAgIHRoaXMub3V0cHV0S2V5cz8uZm9yRWFjaChvdXRwdXQgPT4ge1xuICAgICAgY29kZS5saW5lKGB0aGlzLiR7Y2FtZWwob3V0cHV0LktleSEpfSA9IGNkay5Ub2tlbi5hc1N0cmluZyhjZGsuRm4uZ2V0QXR0KHRoaXMucHJvdmlzaW9uZWRQcm9kdWN0LmxvZ2ljYWxJZCwgJ091dHB1dHMuJHtvdXRwdXQuS2V5IX0nKSk7YCk7XG4gICAgfSk7XG4gICAgY29kZS5jbG9zZUJsb2NrKCk7XG5cbiAgICAvLyBDbG9zZSBjb25zdHJ1Y3QgY2xhc3NcbiAgICBjb2RlLmNsb3NlQmxvY2soKTtcbiAgfVxufVxuIl19
|
package/package.json
CHANGED
|
@@ -40,18 +40,19 @@
|
|
|
40
40
|
"jest-junit": "^13",
|
|
41
41
|
"json-schema": "^0.4.0",
|
|
42
42
|
"npm-check-updates": "^12",
|
|
43
|
-
"projen": "^0.55.
|
|
43
|
+
"projen": "^0.55.3",
|
|
44
44
|
"standard-version": "^9",
|
|
45
45
|
"ts-jest": "^27",
|
|
46
46
|
"ts-node": "^10.7.0",
|
|
47
47
|
"typescript": "^4.6.4"
|
|
48
48
|
},
|
|
49
49
|
"dependencies": {
|
|
50
|
-
"aws-sdk": "^2.
|
|
50
|
+
"aws-sdk": "^2.1127.0",
|
|
51
51
|
"case": "^1.6.3",
|
|
52
52
|
"jsii-srcmak": "^0.1.548",
|
|
53
|
-
"json2jsii": "^0.3.
|
|
53
|
+
"json2jsii": "^0.3.1",
|
|
54
54
|
"minimist": "^1.2.6",
|
|
55
|
+
"minimist-subcommand": "^3.0.2",
|
|
55
56
|
"proxy-agent": "^5.0.0"
|
|
56
57
|
},
|
|
57
58
|
"engines": {
|
|
@@ -59,7 +60,7 @@
|
|
|
59
60
|
},
|
|
60
61
|
"main": "lib/index.js",
|
|
61
62
|
"license": "Apache-2.0",
|
|
62
|
-
"version": "0.2.
|
|
63
|
+
"version": "0.2.163",
|
|
63
64
|
"jest": {
|
|
64
65
|
"testMatch": [
|
|
65
66
|
"<rootDir>/src/**/__tests__/**/*.ts?(x)",
|