cdk-import 0.2.162 → 0.2.165

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  # cdk-import
2
2
 
3
- > Generates CDK L1 constructs for public CloudFormation Registry types and
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,39 @@ 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
+ You will need `AWS_REGION` variable configured in your environment.
19
+
14
20
  ```shell
15
21
  Usage:
16
- cdk-import -l LANGUAGE RESOURCE-NAME[@VERSION]
22
+ cdk-import SUBCOMMAND (cfn or sc) [parameters]
23
+
24
+ General Options:
25
+ -l, --language Output programming language [string]
26
+ -o, --outdir Output directory [string]
27
+ --go-module Go module name (required if language is "golang") [string]
28
+ --java-package Java package name (required if language is "java") [string]
29
+ --csharp-namespace C# namespace (optional if language is "csharp", [string]
30
+ defaults to resource name.)
31
+ -h, --help Show usage info (include subcommand to see specific help) [boolean]
32
+ ```
33
+
34
+ ## CloudFormation Registry Usage
35
+
36
+ ```shell
37
+ Usage:
38
+ cdk-import cfn -l LANGUAGE RESOURCE-NAME[@VERSION]
17
39
 
18
40
  Options:
19
41
  -l, --language Output programming language [string]
20
42
  -o, --outdir Output directory [string] [default: "."]
21
43
  --go-module Module name (required if language is "golang") [string]
22
44
  --java-package Java package name (required if language is "java") [string]
45
+ --csharp-namespace C# namespace (optional if language is "csharp", [string]
46
+ defaults to resource name.)
23
47
  -h, --help Show this usage info [boolean]
24
48
  ```
25
49
 
@@ -112,34 +136,78 @@ Will generate a Go module under: `awsqs-eks-cluster`.
112
136
  Generates constructs for the latest version AWSQS::EKS::Cluster in TypeScript:
113
137
 
114
138
  ```shell
115
- cdk-import -l typescript AWSQS::EKS::Cluster
139
+ cdk-import cfn -l typescript AWSQS::EKS::Cluster
116
140
  ```
117
141
 
118
142
  Generates construct in Go for a specific resource version:
119
143
 
120
144
  ```shell
121
- cdk-import -l golang --go-module "github.com/account/repo" AWSQS::EKS::Cluster@1.2.0
145
+ cdk-import cfn -l golang --go-module "github.com/account/repo" AWSQS::EKS::Cluster@1.2.0
122
146
  ```
123
147
 
124
148
  Generates construct in Python under the "src" subfolder instead of working
125
149
  directory:
126
150
 
127
151
  ```shell
128
- cdk-import -l python -o src AWSQS::EKS::Cluster
152
+ cdk-import cfn -l python -o src AWSQS::EKS::Cluster
129
153
  ```
130
154
 
131
155
  Generates construct in Java and identifies the resource type by its ARN:
132
156
 
133
157
  ```shell
134
- cdk-import -l java --java-package "com.acme.myproject" arn:aws:cloudformation:...
158
+ cdk-import cfn -l java --java-package "com.acme.myproject" arn:aws:cloudformation:...
135
159
  ```
136
160
 
137
161
  Modules are also supported:
138
162
 
139
163
  ```shell
140
- cdk-import AWSQS::CheckPoint::CloudGuardQS::MODULE
164
+ cdk-import cfn AWSQS::CheckPoint::CloudGuardQS::MODULE
165
+ ```
166
+
167
+ ## AWS Service Catalog Usage
168
+
169
+ The cdk-import tool generates a user friendly version of a provisioned product that becomes
170
+ a normal cdk construct that you can use within a cdk app.
171
+ You can currently either specify a specific product version or generate all available products.
172
+ The tool will call APIs and attempt to resolve default artifact and launch path for a product,
173
+ if a singular product version or launch path cannot be resolved, it will throw an error.
174
+ You will need Service Catalog end-user read permissions to call these APIs.
175
+
176
+ ```shell
177
+ Usage:
178
+ cdk-import sc -l LANGUAGE
179
+ cdk-import sc -l LANGUAGE --product-id PRODUCT-ID --provisioning-artifact-id PROVISIONING-ARTIFACT-ID --path-id LAUNCH-PATH-ID
180
+
181
+ Options:
182
+ -l, --language Output programming language [string]
183
+ -o, --outdir Output directory (default "./sc-products") [string]
184
+ --product-id Product Id [string]
185
+ --provisioning-artifact-id Provisioning artifact Id [string]
186
+ --path-id Launch path Id [string]
187
+ --go-module Module name (required if language is "golang") [string]
188
+ --java-package Java package name (required if language is "java") [string]
189
+ --csharp-namespace C# namespace (optional if language is "csharp", [string]
190
+ defaults to resource name.)
191
+ -h, --help Show this usage info [boolean]
141
192
  ```
142
193
 
194
+ The `--language` option specifies the output programming language. Supported
195
+ languages: `typescript`, `java`, `python`, `csharp` and `golang`.
196
+
197
+ If you are using `csharp`, you must specify a `--csharp-namespace` within your project.
198
+
199
+ Output will be generated relative to `--outdir` which defaults to the current
200
+ working directory under `./sc-products`.
201
+
202
+ ## Examples
203
+
204
+ Generates constructs in python for the latest product versions as importable modules in your local workspace.
205
+
206
+ ```shell
207
+ cdk-import sc -l python -o .
208
+ ```
209
+
210
+
143
211
  ## Contributing
144
212
 
145
213
  See [CONTRIBUTING](CONTRIBUTING.md)
@@ -151,4 +219,4 @@ information.
151
219
 
152
220
  ## License
153
221
 
154
- This project is licensed under the Apache-2.0 License.
222
+ 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 args = (0, minimist_1.default)(process.argv.slice(2), {
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 -l LANGUAGE RESOURCE-NAME[@VERSION]');
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 || args._.length !== 1) {
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
- try {
96
- const [resourceName, resourceVersion] = args._[0].split('@');
97
- const workdir = await fs.mkdtemp(path.join(os.tmpdir(), 'cdk-import'));
98
- const typeName = await (0, _1.importResourceType)(resourceName, resourceVersion, {
99
- outdir: workdir,
100
- private: args.private,
101
- });
102
- await (0, languages_1.renderCode)({
103
- srcdir: workdir,
104
- language: args.language,
105
- outdir: (_a = args.outdir) !== null && _a !== void 0 ? _a : '.',
106
- typeName: typeName,
107
- goModule: args['go-module'],
108
- javaPackage: args['java-package'],
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
- catch (e) {
112
- console.log(e);
113
- process.exit(1);
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.writeFileSync(path.join(outdir, `${caseutil.header(gen.name).toLowerCase()}.ts`), gen.render());
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
- const productVersion = await importProduct({
82
- outdir: outdir,
83
- productId: product.ProductId,
84
- });
85
- productVersions.push(productVersion);
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLCtDQUFpQztBQUNqQyxpREFBbUY7QUFDbkYscUVBQWdFO0FBQ2hFLHFFQUF3RjtBQUN4Rix1REFBc0g7QUFTdEg7Ozs7Ozs7R0FPRztBQUNJLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxZQUFvQixFQUFFLGdCQUF3QixFQUFFLE9BQWtDOztJQUN6SCxNQUFNLE1BQU0sR0FBRyxNQUFBLE9BQU8sQ0FBQyxNQUFNLG1DQUFJLEdBQUcsQ0FBQztJQUNyQyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsbUNBQW9CLEVBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRS9ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU8sQ0FBQyxDQUFDO0lBRTVDLE1BQU0sR0FBRyxHQUFHLElBQUksNkNBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFdEUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUxQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRTlELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztBQUN2QixDQUFDO0FBYkQsZ0RBYUM7QUFBQSxDQUFDO0FBYUY7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxhQUFhLENBQUMsT0FBNkI7O0lBQy9ELE1BQU0sTUFBTSxHQUFHLE1BQUEsT0FBTyxDQUFDLE1BQU0sbUNBQUksR0FBRyxDQUFDO0lBRXJDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBQSwwQ0FBd0IsRUFBQyxPQUFPLENBQUMsQ0FBQztJQUV4RCxNQUFNLEdBQUcsR0FBRyxJQUFJLHFFQUE0QyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUVuRyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFDbEIsQ0FBQztBQVZELHNDQVVDO0FBQUEsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsY0FBYyxDQUFDLE9BQTZCOztJQUNoRSxNQUFNLE1BQU0sR0FBRyxNQUFBLE9BQU8sQ0FBQyxNQUFNLG1DQUFJLEdBQUcsQ0FBQztJQUNyQyxJQUFJLGVBQWUsR0FBYSxFQUFFLENBQUM7SUFFbkMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUEsd0NBQXNCLEdBQUUsQ0FBQztJQUV6RCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4RCxNQUFNLGNBQWMsR0FBRyxNQUFNLGFBQWEsQ0FBRTtZQUMxQyxNQUFNLEVBQUUsTUFBTTtZQUNkLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBVTtTQUM5QixDQUFDLENBQUM7UUFDSCxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFSixPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBZkQsd0NBZUM7QUFBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGNhc2V1dGlsIGZyb20gJ2Nhc2UnO1xuaW1wb3J0IHsgZGVzY3JpYmVSZXNvdXJjZVR5cGUsIERlc2NyaWJlUmVzb3VyY2VUeXBlT3B0aW9ucyB9IGZyb20gJy4vY2ZuLXJlZ2lzdHJ5JztcbmltcG9ydCB7IENmblJlc291cmNlR2VuZXJhdG9yIH0gZnJvbSAnLi9jZm4tcmVzb3VyY2UtZ2VuZXJhdG9yJztcbmltcG9ydCB7IFNlcnZpY2VDYXRhbG9nUHJvdmlzaW9uaW5nQ29uc3RydWN0R2VuZXJhdG9yIH0gZnJvbSAnLi9zYy1jb25zdHJ1Y3QtZ2VuZXJhdG9yJztcbmltcG9ydCB7IGRlc2NyaWJlUHJvZHVjdEFnZ3JlZ2F0ZSwgRGVzY3JpYmVQcm9kdWN0QWdncmVnYXRlT3B0aW9ucywgZmV0Y2hBdmFpbGFibGVQcm9kdWN0cyB9IGZyb20gJy4vc2VydmljZS1jYXRhbG9nJztcblxuZXhwb3J0IGludGVyZmFjZSBJbXBvcnRSZXNvdXJjZVR5cGVPcHRpb25zIGV4dGVuZHMgRGVzY3JpYmVSZXNvdXJjZVR5cGVPcHRpb25zIHtcbiAgLyoqXG4gICAqIEBkZWZhdWx0IFwiLlwiXG4gICAqL1xuICByZWFkb25seSBvdXRkaXI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogRW50cnkgcG9pbnQgdG8gaW1wb3J0IENGTiByZXNvdXJjZSB0eXBlc1xuICpcbiAqIEBwYXJhbSByZXNvdXJjZU5hbWUgdGhlIG5hbWUgb3IgQVJOIG9mIHRoZSByZXNvdXJjZSB0eXBlXG4gKiBAcGFyYW0gX3Jlc291cmNlVmVyc2lvbiB0aGUgdmVyc2lvbiBvZiB0aGUgcmVzb3VyY2UgdHlwZSAoaWdub3JlZCBmb3Igbm93KVxuICogQHBhcmFtIG91dGRpciB0aGUgb3V0IGZvbGRlciB0byB1c2UgKGRlZmF1bHRzIHRvIHRoZSBjdXJyZW50IGRpcmVjdG9yeSlcbiAqIEByZXR1cm5zIG5hbWUgb2YgdGhlIHJlc291cmNlIHR5cGVcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGltcG9ydFJlc291cmNlVHlwZShyZXNvdXJjZU5hbWU6IHN0cmluZywgX3Jlc291cmNlVmVyc2lvbjogc3RyaW5nLCBvcHRpb25zOiBJbXBvcnRSZXNvdXJjZVR5cGVPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3Qgb3V0ZGlyID0gb3B0aW9ucy5vdXRkaXIgPz8gJy4nO1xuICBjb25zdCB0eXBlID0gYXdhaXQgZGVzY3JpYmVSZXNvdXJjZVR5cGUocmVzb3VyY2VOYW1lLCBvcHRpb25zKTtcblxuICBjb25zdCB0eXBlU2NoZW1hID0gSlNPTi5wYXJzZSh0eXBlLlNjaGVtYSEpO1xuXG4gIGNvbnN0IGdlbiA9IG5ldyBDZm5SZXNvdXJjZUdlbmVyYXRvcih0eXBlLlR5cGVOYW1lLCB0eXBlLCB0eXBlU2NoZW1hKTtcblxuICBmcy5ta2RpclN5bmMob3V0ZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcblxuICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihvdXRkaXIsICdpbmRleC50cycpLCBnZW4ucmVuZGVyKCkpO1xuXG4gIHJldHVybiB0eXBlLlR5cGVOYW1lO1xufTtcblxuLyoqXG4gKiBDb25maWd1cmUgb3B0aW9ucyBmb3IgaW1wb3J0aW5nIHByb2R1Y3RzIGludG8geW91ciBsb2NhbCB3b3Jrc3BhY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbXBvcnRQcm9kdWN0T3B0aW9ucyBleHRlbmRzIERlc2NyaWJlUHJvZHVjdEFnZ3JlZ2F0ZU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGZvbGRlciBpbiB3aGljaCBwcm9kdWN0IGNvbnN0cnVjdHMgKGFzIHNlcGFyYXRlIGNsYXNzIGZpbGVzKSB3aWxsIGJlIG91dHB1dCB0by5cbiAgICogQGRlZmF1bHQgXCIuL3NjLXByb2R1Y3RzXCJcbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBFbnRyeSBwb2ludCB0byBpbXBvcnQgU2VydmljZSBDYXRhbG9nIHByb2R1Y3QgcmVzb3VyY2UuXG4gKlxuICogQHJldHVybnMgbmFtZSBvZiB0aGUgcHJvZHVjdCB2ZXJzaW9uXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBpbXBvcnRQcm9kdWN0KG9wdGlvbnM6IEltcG9ydFByb2R1Y3RPcHRpb25zKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgY29uc3Qgb3V0ZGlyID0gb3B0aW9ucy5vdXRkaXIgPz8gJy4nO1xuXG4gIGNvbnN0IHByb2R1Y3QgPSBhd2FpdCBkZXNjcmliZVByb2R1Y3RBZ2dyZWdhdGUob3B0aW9ucyk7XG5cbiAgY29uc3QgZ2VuID0gbmV3IFNlcnZpY2VDYXRhbG9nUHJvdmlzaW9uaW5nQ29uc3RydWN0R2VuZXJhdG9yKHByb2R1Y3QpO1xuICBmcy5ta2RpclN5bmMob3V0ZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgZnMud3JpdGVGaWxlU3luYyhwYXRoLmpvaW4ob3V0ZGlyLCBgJHtjYXNldXRpbC5oZWFkZXIoZ2VuLm5hbWUpLnRvTG93ZXJDYXNlKCl9LnRzYCksIGdlbi5yZW5kZXIoKSk7XG5cbiAgcmV0dXJuIGdlbi5uYW1lO1xufTtcblxuLyoqXG4gKiBFbnRyeSBwb2ludCB0byBpbXBvcnQgYWxsIGF2YWlsYWJsZSBTZXJ2aWNlIENhdGFsb2cgcHJvZHVjdCByZXNvdXJjZXMgd2l0aCBgREVGQVVMVGAgcGFyYW1ldGVycy5cbiAqXG4gKiBAcmV0dXJucyBuYW1lcyBvZiB0aGUgcHJvZHVjdCB2ZXJzaW9uc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW1wb3J0UHJvZHVjdHMob3B0aW9uczogSW1wb3J0UHJvZHVjdE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIGNvbnN0IG91dGRpciA9IG9wdGlvbnMub3V0ZGlyID8/ICcuJztcbiAgbGV0IHByb2R1Y3RWZXJzaW9uczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdCBhdmFpbGFibGVQcm9kdWN0cyA9IGF3YWl0IGZldGNoQXZhaWxhYmxlUHJvZHVjdHMoKTtcblxuICBhd2FpdCBQcm9taXNlLmFsbChhdmFpbGFibGVQcm9kdWN0cy5tYXAoYXN5bmMgKHByb2R1Y3QpID0+IHtcbiAgICBjb25zdCBwcm9kdWN0VmVyc2lvbiA9IGF3YWl0IGltcG9ydFByb2R1Y3QoIHtcbiAgICAgIG91dGRpcjogb3V0ZGlyLFxuICAgICAgcHJvZHVjdElkOiBwcm9kdWN0LlByb2R1Y3RJZCEsXG4gICAgfSk7XG4gICAgcHJvZHVjdFZlcnNpb25zLnB1c2gocHJvZHVjdFZlcnNpb24pO1xuICB9KSk7XG5cbiAgcmV0dXJuIHByb2R1Y3RWZXJzaW9ucztcbn07XG4iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx1Q0FBeUI7QUFDekIsMkNBQTZCO0FBQzdCLCtDQUFpQztBQUNqQyxpREFBbUY7QUFDbkYscUVBQWdFO0FBQ2hFLHFFQUF3RjtBQUN4Rix1REFBc0g7QUFTdEg7Ozs7Ozs7R0FPRztBQUNJLEtBQUssVUFBVSxrQkFBa0IsQ0FBQyxZQUFvQixFQUFFLGdCQUF3QixFQUFFLE9BQWtDOztJQUN6SCxNQUFNLE1BQU0sR0FBRyxNQUFBLE9BQU8sQ0FBQyxNQUFNLG1DQUFJLEdBQUcsQ0FBQztJQUNyQyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUEsbUNBQW9CLEVBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBRS9ELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU8sQ0FBQyxDQUFDO0lBRTVDLE1BQU0sR0FBRyxHQUFHLElBQUksNkNBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFFdEUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztJQUUxQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRTlELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztBQUN2QixDQUFDO0FBYkQsZ0RBYUM7QUFBQSxDQUFDO0FBYUY7Ozs7R0FJRztBQUNJLEtBQUssVUFBVSxhQUFhLENBQUMsT0FBNkI7O0lBQy9ELE1BQU0sTUFBTSxHQUFHLE1BQUEsT0FBTyxDQUFDLE1BQU0sbUNBQUksR0FBRyxDQUFDO0lBRXJDLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBQSwwQ0FBd0IsRUFBQyxPQUFPLENBQUMsQ0FBQztJQUV4RCxNQUFNLEdBQUcsR0FBRyxJQUFJLHFFQUE0QyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3RFLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUMsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxFQUFFLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUcsRUFBRSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQVEsRUFBRSxVQUFVLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUVoRSxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7QUFDbEIsQ0FBQztBQVhELHNDQVdDO0FBQUEsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSSxLQUFLLFVBQVUsY0FBYyxDQUFDLE9BQTZCOztJQUNoRSxNQUFNLE1BQU0sR0FBRyxNQUFBLE9BQU8sQ0FBQyxNQUFNLG1DQUFJLEdBQUcsQ0FBQztJQUNyQyxJQUFJLGVBQWUsR0FBYSxFQUFFLENBQUM7SUFFbkMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLElBQUEsd0NBQXNCLEdBQUUsQ0FBQztJQUV6RCxNQUFNLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsRUFBRTtRQUN4RCxJQUFJO1lBQ0YsTUFBTSxjQUFjLEdBQUcsTUFBTSxhQUFhLENBQUM7Z0JBQ3pDLE1BQU0sRUFBRSxNQUFNO2dCQUNkLFNBQVMsRUFBRSxPQUFPLENBQUMsU0FBVTthQUM5QixDQUFDLENBQUM7WUFDSCxlQUFlLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3RDO1FBQUMsT0FBTyxDQUFDLEVBQUU7WUFDVixPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUksQ0FBVyxDQUFDLE9BQU8sd0JBQXdCLE9BQU8sQ0FBQyxTQUFTLEtBQUssQ0FBQyxDQUFDO1lBQ25GLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0ZBQWdGLENBQUMsQ0FBQztTQUMvRjtJQUNILENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFSixPQUFPLGVBQWUsQ0FBQztBQUN6QixDQUFDO0FBcEJELHdDQW9CQztBQUFBLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2FzZXV0aWwgZnJvbSAnY2FzZSc7XG5pbXBvcnQgeyBkZXNjcmliZVJlc291cmNlVHlwZSwgRGVzY3JpYmVSZXNvdXJjZVR5cGVPcHRpb25zIH0gZnJvbSAnLi9jZm4tcmVnaXN0cnknO1xuaW1wb3J0IHsgQ2ZuUmVzb3VyY2VHZW5lcmF0b3IgfSBmcm9tICcuL2Nmbi1yZXNvdXJjZS1nZW5lcmF0b3InO1xuaW1wb3J0IHsgU2VydmljZUNhdGFsb2dQcm92aXNpb25pbmdDb25zdHJ1Y3RHZW5lcmF0b3IgfSBmcm9tICcuL3NjLWNvbnN0cnVjdC1nZW5lcmF0b3InO1xuaW1wb3J0IHsgZGVzY3JpYmVQcm9kdWN0QWdncmVnYXRlLCBEZXNjcmliZVByb2R1Y3RBZ2dyZWdhdGVPcHRpb25zLCBmZXRjaEF2YWlsYWJsZVByb2R1Y3RzIH0gZnJvbSAnLi9zZXJ2aWNlLWNhdGFsb2cnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydFJlc291cmNlVHlwZU9wdGlvbnMgZXh0ZW5kcyBEZXNjcmliZVJlc291cmNlVHlwZU9wdGlvbnMge1xuICAvKipcbiAgICogQGRlZmF1bHQgXCIuXCJcbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcbn1cblxuLyoqXG4gKiBFbnRyeSBwb2ludCB0byBpbXBvcnQgQ0ZOIHJlc291cmNlIHR5cGVzXG4gKlxuICogQHBhcmFtIHJlc291cmNlTmFtZSB0aGUgbmFtZSBvciBBUk4gb2YgdGhlIHJlc291cmNlIHR5cGVcbiAqIEBwYXJhbSBfcmVzb3VyY2VWZXJzaW9uIHRoZSB2ZXJzaW9uIG9mIHRoZSByZXNvdXJjZSB0eXBlIChpZ25vcmVkIGZvciBub3cpXG4gKiBAcGFyYW0gb3V0ZGlyIHRoZSBvdXQgZm9sZGVyIHRvIHVzZSAoZGVmYXVsdHMgdG8gdGhlIGN1cnJlbnQgZGlyZWN0b3J5KVxuICogQHJldHVybnMgbmFtZSBvZiB0aGUgcmVzb3VyY2UgdHlwZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW1wb3J0UmVzb3VyY2VUeXBlKHJlc291cmNlTmFtZTogc3RyaW5nLCBfcmVzb3VyY2VWZXJzaW9uOiBzdHJpbmcsIG9wdGlvbnM6IEltcG9ydFJlc291cmNlVHlwZU9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBvdXRkaXIgPSBvcHRpb25zLm91dGRpciA/PyAnLic7XG4gIGNvbnN0IHR5cGUgPSBhd2FpdCBkZXNjcmliZVJlc291cmNlVHlwZShyZXNvdXJjZU5hbWUsIG9wdGlvbnMpO1xuXG4gIGNvbnN0IHR5cGVTY2hlbWEgPSBKU09OLnBhcnNlKHR5cGUuU2NoZW1hISk7XG5cbiAgY29uc3QgZ2VuID0gbmV3IENmblJlc291cmNlR2VuZXJhdG9yKHR5cGUuVHlwZU5hbWUsIHR5cGUsIHR5cGVTY2hlbWEpO1xuXG4gIGZzLm1rZGlyU3luYyhvdXRkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuXG4gIGZzLndyaXRlRmlsZVN5bmMocGF0aC5qb2luKG91dGRpciwgJ2luZGV4LnRzJyksIGdlbi5yZW5kZXIoKSk7XG5cbiAgcmV0dXJuIHR5cGUuVHlwZU5hbWU7XG59O1xuXG4vKipcbiAqIENvbmZpZ3VyZSBvcHRpb25zIGZvciBpbXBvcnRpbmcgcHJvZHVjdHMgaW50byB5b3VyIGxvY2FsIHdvcmtzcGFjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltcG9ydFByb2R1Y3RPcHRpb25zIGV4dGVuZHMgRGVzY3JpYmVQcm9kdWN0QWdncmVnYXRlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgZm9sZGVyIGluIHdoaWNoIHByb2R1Y3QgY29uc3RydWN0cyAoYXMgc2VwYXJhdGUgY2xhc3MgZmlsZXMpIHdpbGwgYmUgb3V0cHV0IHRvLlxuICAgKiBAZGVmYXVsdCBcIi4vc2MtcHJvZHVjdHNcIlxuICAgKi9cbiAgcmVhZG9ubHkgb3V0ZGlyPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIEVudHJ5IHBvaW50IHRvIGltcG9ydCBTZXJ2aWNlIENhdGFsb2cgcHJvZHVjdCByZXNvdXJjZS5cbiAqXG4gKiBAcmV0dXJucyBuYW1lIG9mIHRoZSBwcm9kdWN0IHZlcnNpb25cbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGltcG9ydFByb2R1Y3Qob3B0aW9uczogSW1wb3J0UHJvZHVjdE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZz4ge1xuICBjb25zdCBvdXRkaXIgPSBvcHRpb25zLm91dGRpciA/PyAnLic7XG5cbiAgY29uc3QgcHJvZHVjdCA9IGF3YWl0IGRlc2NyaWJlUHJvZHVjdEFnZ3JlZ2F0ZShvcHRpb25zKTtcblxuICBjb25zdCBnZW4gPSBuZXcgU2VydmljZUNhdGFsb2dQcm92aXNpb25pbmdDb25zdHJ1Y3RHZW5lcmF0b3IocHJvZHVjdCk7XG4gIGZzLm1rZGlyU3luYyhvdXRkaXIsIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBjb25zdCBwcm9kRGlyID0gZnMubWtkaXJTeW5jKHBhdGguam9pbihvdXRkaXIsIGNhc2V1dGlsLmhlYWRlcihnZW4ubmFtZSkudG9Mb3dlckNhc2UoKSksIHsgcmVjdXJzaXZlOiB0cnVlIH0pO1xuICBmcy53cml0ZUZpbGVTeW5jKHBhdGguam9pbihwcm9kRGlyISwgJ2luZGV4LnRzJyksIGdlbi5yZW5kZXIoKSk7XG5cbiAgcmV0dXJuIGdlbi5uYW1lO1xufTtcblxuLyoqXG4gKiBFbnRyeSBwb2ludCB0byBpbXBvcnQgYWxsIGF2YWlsYWJsZSBTZXJ2aWNlIENhdGFsb2cgcHJvZHVjdCByZXNvdXJjZXMgd2l0aCBgREVGQVVMVGAgcGFyYW1ldGVycy5cbiAqXG4gKiBAcmV0dXJucyBuYW1lcyBvZiB0aGUgcHJvZHVjdCB2ZXJzaW9uc1xuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaW1wb3J0UHJvZHVjdHMob3B0aW9uczogSW1wb3J0UHJvZHVjdE9wdGlvbnMpOiBQcm9taXNlPHN0cmluZ1tdPiB7XG4gIGNvbnN0IG91dGRpciA9IG9wdGlvbnMub3V0ZGlyID8/ICcuJztcbiAgbGV0IHByb2R1Y3RWZXJzaW9uczogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdCBhdmFpbGFibGVQcm9kdWN0cyA9IGF3YWl0IGZldGNoQXZhaWxhYmxlUHJvZHVjdHMoKTtcblxuICBhd2FpdCBQcm9taXNlLmFsbChhdmFpbGFibGVQcm9kdWN0cy5tYXAoYXN5bmMgKHByb2R1Y3QpID0+IHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcHJvZHVjdFZlcnNpb24gPSBhd2FpdCBpbXBvcnRQcm9kdWN0KHtcbiAgICAgICAgb3V0ZGlyOiBvdXRkaXIsXG4gICAgICAgIHByb2R1Y3RJZDogcHJvZHVjdC5Qcm9kdWN0SWQhLFxuICAgICAgfSk7XG4gICAgICBwcm9kdWN0VmVyc2lvbnMucHVzaChwcm9kdWN0VmVyc2lvbik7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgY29uc29sZS5sb2coYCR7KGUgYXMgRXJyb3IpLm1lc3NhZ2V9IFNraXBwaW5nIGltcG9ydCBmb3IgJHtwcm9kdWN0LlByb2R1Y3RJZH0uLi5gKTtcbiAgICAgIGNvbnNvbGUubG9nKCd0cnkgaW1wb3J0aW5nIGRpcmVjdGx5IHZpYSAtLXByb2R1Y3QtaWQsIC0tcHJvdmlzaW9uaW5nLWFydGlmYWN0LWlkLCAtLXBhdGgtaWQnKTtcbiAgICB9XG4gIH0pKTtcblxuICByZXR1cm4gcHJvZHVjdFZlcnNpb25zO1xufTtcbiJdfQ==
@@ -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.typeName, // already AWS::Foo::Bar
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xhbmd1YWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUFrQztBQUNsQywyQ0FBNkI7QUFDN0IsK0NBQWlDO0FBQ2pDLDZDQUE4QztBQUU5QyxNQUFNLE9BQU8sR0FBRztJQUNkLGFBQWE7SUFDYixZQUFZO0NBQ2IsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsWUFBWTtJQUNaLFFBQVE7SUFDUixNQUFNO0lBQ04sUUFBUTtJQUNSLFFBQVE7Q0FDVCxDQUFDO0FBbUJLLEtBQUssVUFBVSxVQUFVLENBQUMsT0FBMEI7SUFDekQsTUFBTSxVQUFVLEdBQVk7UUFDMUIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7S0FDM0UsQ0FBQztJQUVGLFFBQVEsT0FBTyxDQUFDLFFBQVEsRUFBRTtRQUN4QixLQUFLLFlBQVk7WUFDZixNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFaEosS0FBSyxRQUFRO1lBQ1gsVUFBVSxDQUFDLE1BQU0sR0FBRztnQkFDbEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixVQUFVLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO2FBQzdDLENBQUM7WUFDRixNQUFNO1FBRVIsS0FBSyxRQUFRO1lBQ1gsVUFBVSxDQUFDLE1BQU0sR0FBRztnQkFDbEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixTQUFTLEVBQUUsT0FBTyxDQUFDLFFBQVEsRUFBRSx3QkFBd0I7YUFDdEQsQ0FBQztZQUNGLE1BQU07UUFFUixLQUFLLE1BQU07WUFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtnQkFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyx5RkFBeUYsQ0FBQyxDQUFDO2FBQzVHO1lBRUQsVUFBVSxDQUFDLElBQUksR0FBRztnQkFDaEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixPQUFPLEVBQUUsT0FBTyxDQUFDLFdBQVc7YUFDN0IsQ0FBQztZQUNGLE1BQU07UUFFUixLQUFLLFFBQVE7WUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRTtnQkFDckIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzRUFBc0UsQ0FBQyxDQUFDO2FBQ3pGO1lBRUQsVUFBVSxDQUFDLE1BQU0sR0FBRztnQkFDbEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixXQUFXLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQztnQkFDbEQsVUFBVSxFQUFFLE9BQU8sQ0FBQyxRQUFRO2FBQzdCLENBQUM7WUFDRixNQUFNO1FBRVI7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztLQUNoRTtJQUVELE1BQU0sSUFBQSxvQkFBTSxFQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7QUFDM0MsQ0FBQztBQXBERCxnQ0FvREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBmcyBmcm9tICdmcy9wcm9taXNlcyc7XG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgY2FzZXV0aWwgZnJvbSAnY2FzZSc7XG5pbXBvcnQgeyBzcmNtYWssIE9wdGlvbnMgfSBmcm9tICdqc2lpLXNyY21hayc7XG5cbmNvbnN0IGNka0RlcHMgPSBbXG4gICdhd3MtY2RrLWxpYicsXG4gICdjb25zdHJ1Y3RzJyxcbl07XG5cbmV4cG9ydCBjb25zdCBTVVBQT1JURURfTEFOR1VBR0VTID0gW1xuICAndHlwZXNjcmlwdCcsXG4gICdweXRob24nLFxuICAnamF2YScsXG4gICdjc2hhcnAnLFxuICAnZ29sYW5nJyxcbl07XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVuZGVyQ29kZU9wdGlvbnMge1xuICByZWFkb25seSBzcmNkaXI6IHN0cmluZztcbiAgcmVhZG9ubHkgb3V0ZGlyOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGxhbmd1YWdlOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHR5cGVOYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBHbyBtb2R1bGUgdG8gdXNlIGZvciB0aGUgZ2VuZXJhdGVkIGNvZGUuIFJlcXVpcmVkIGlmIGBsYW5ndWFnZWAgaXMgYGdvbGFuZ2AuXG4gICAqL1xuICByZWFkb25seSBnb01vZHVsZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEphdmEgcGFja2FnZSB0byB1c2UgZm9yIHRoZSBnZW5lcmF0ZWQgY29kZS4gUmVxdWlyZWQgaWYgYGxhbmd1YWdlYCBpcyBgamF2YWAuXG4gICAqL1xuICByZWFkb25seSBqYXZhUGFja2FnZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbmRlckNvZGUob3B0aW9uczogUmVuZGVyQ29kZU9wdGlvbnMpIHtcbiAgY29uc3Qgc3JjbWFrb3B0czogT3B0aW9ucyA9IHtcbiAgICBkZXBzOiBjZGtEZXBzLm1hcCh4ID0+IHBhdGguZGlybmFtZShyZXF1aXJlLnJlc29sdmUoYCR7eH0vcGFja2FnZS5qc29uYCkpKSxcbiAgfTtcblxuICBzd2l0Y2ggKG9wdGlvbnMubGFuZ3VhZ2UpIHtcbiAgICBjYXNlICd0eXBlc2NyaXB0JzpcbiAgICAgIGF3YWl0IGZzLm1rZGlyKG9wdGlvbnMub3V0ZGlyLCB7IHJlY3Vyc2l2ZTogdHJ1ZSB9KTtcbiAgICAgIHJldHVybiBmcy5jb3B5RmlsZShwYXRoLmpvaW4ob3B0aW9ucy5zcmNkaXIsICdpbmRleC50cycpLCBwYXRoLmpvaW4ob3B0aW9ucy5vdXRkaXIsIGAke2Nhc2V1dGlsLmhlYWRlcihvcHRpb25zLnR5cGVOYW1lKS50b0xvd2VyQ2FzZSgpfS50c2ApKTtcblxuICAgIGNhc2UgJ3B5dGhvbic6XG4gICAgICBzcmNtYWtvcHRzLnB5dGhvbiA9IHtcbiAgICAgICAgb3V0ZGlyOiBvcHRpb25zLm91dGRpcixcbiAgICAgICAgbW9kdWxlTmFtZTogY2FzZXV0aWwuc25ha2Uob3B0aW9ucy50eXBlTmFtZSksXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdjc2hhcnAnOlxuICAgICAgc3JjbWFrb3B0cy5jc2hhcnAgPSB7XG4gICAgICAgIG91dGRpcjogb3B0aW9ucy5vdXRkaXIsXG4gICAgICAgIG5hbWVzcGFjZTogb3B0aW9ucy50eXBlTmFtZSwgLy8gYWxyZWFkeSBBV1M6OkZvbzo6QmFyXG4gICAgICB9O1xuICAgICAgYnJlYWs7XG5cbiAgICBjYXNlICdqYXZhJzpcbiAgICAgIGlmICghb3B0aW9ucy5qYXZhUGFja2FnZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0phdmEgcGFja2FnZSBuYW1lIChgLS1qYXZhLXBhY2thZ2VgKSBtdXN0IGJlIHNwZWNpZmllZCAoZS5nLiBcImNvbS5mb28uYmFyLm15LnJlc291cmNlXCIpJyk7XG4gICAgICB9XG5cbiAgICAgIHNyY21ha29wdHMuamF2YSA9IHtcbiAgICAgICAgb3V0ZGlyOiBvcHRpb25zLm91dGRpcixcbiAgICAgICAgcGFja2FnZTogb3B0aW9ucy5qYXZhUGFja2FnZSxcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2dvbGFuZyc6XG4gICAgICBpZiAoIW9wdGlvbnMuZ29Nb2R1bGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdHbyBtb2R1bGUgbmFtZSAoLS1nby1tb2R1bGUpIGlzIHJlcXVpcmVkIChlLmcuIFwiZ2l0aHViLmNvbS9mb28vYmFyXCIpJyk7XG4gICAgICB9XG5cbiAgICAgIHNyY21ha29wdHMuZ29sYW5nID0ge1xuICAgICAgICBvdXRkaXI6IG9wdGlvbnMub3V0ZGlyLFxuICAgICAgICBwYWNrYWdlTmFtZTogY2FzZXV0aWwubG93ZXIob3B0aW9ucy50eXBlTmFtZSwgJy0nKSxcbiAgICAgICAgbW9kdWxlTmFtZTogb3B0aW9ucy5nb01vZHVsZSxcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGRlZmF1bHQ6XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIGxhbmd1YWdlOiAke29wdGlvbnMubGFuZ3VhZ2V9YCk7XG4gIH1cblxuICBhd2FpdCBzcmNtYWsob3B0aW9ucy5zcmNkaXIsIHNyY21ha29wdHMpO1xufVxuIl19
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2xhbmd1YWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGdEQUFrQztBQUNsQywyQ0FBNkI7QUFDN0IsK0NBQWlDO0FBQ2pDLDZDQUE4QztBQUU5QyxNQUFNLE9BQU8sR0FBRztJQUNkLGFBQWE7SUFDYixZQUFZO0NBQ2IsQ0FBQztBQUVXLFFBQUEsbUJBQW1CLEdBQUc7SUFDakMsWUFBWTtJQUNaLFFBQVE7SUFDUixNQUFNO0lBQ04sUUFBUTtJQUNSLFFBQVE7Q0FDVCxDQUFDO0FBd0JLLEtBQUssVUFBVSxVQUFVLENBQUMsT0FBMEI7SUFDekQsTUFBTSxVQUFVLEdBQVk7UUFDMUIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7S0FDM0UsQ0FBQztJQUVGLFFBQVEsT0FBTyxDQUFDLFFBQVEsRUFBRTtRQUN4QixLQUFLLFlBQVk7WUFDZixNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3BELE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFaEosS0FBSyxRQUFRO1lBQ1gsVUFBVSxDQUFDLE1BQU0sR0FBRztnQkFDbEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixVQUFVLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO2FBQzdDLENBQUM7WUFDRixNQUFNO1FBRVIsS0FBSyxRQUFRO1lBQ1gsVUFBVSxDQUFDLE1BQU0sR0FBRztnQkFDbEIsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNO2dCQUN0QixTQUFTLEVBQUUsT0FBTyxDQUFDLGVBQWdCO2FBQ3BDLENBQUM7WUFDRixNQUFNO1FBRVIsS0FBSyxNQUFNO1lBQ1QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7Z0JBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMseUZBQXlGLENBQUMsQ0FBQzthQUM1RztZQUVELFVBQVUsQ0FBQyxJQUFJLEdBQUc7Z0JBQ2hCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtnQkFDdEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxXQUFXO2FBQzdCLENBQUM7WUFDRixNQUFNO1FBRVIsS0FBSyxRQUFRO1lBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7Z0JBQ3JCLE1BQU0sSUFBSSxLQUFLLENBQUMsc0VBQXNFLENBQUMsQ0FBQzthQUN6RjtZQUVELFVBQVUsQ0FBQyxNQUFNLEdBQUc7Z0JBQ2xCLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTTtnQkFDdEIsV0FBVyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUM7Z0JBQ2xELFVBQVUsRUFBRSxPQUFPLENBQUMsUUFBUTthQUM3QixDQUFDO1lBQ0YsTUFBTTtRQUVSO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FBQyx5QkFBeUIsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7S0FDaEU7SUFFRCxNQUFNLElBQUEsb0JBQU0sRUFBQyxPQUFPLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzNDLENBQUM7QUFwREQsZ0NBb0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMvcHJvbWlzZXMnO1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGNhc2V1dGlsIGZyb20gJ2Nhc2UnO1xuaW1wb3J0IHsgc3JjbWFrLCBPcHRpb25zIH0gZnJvbSAnanNpaS1zcmNtYWsnO1xuXG5jb25zdCBjZGtEZXBzID0gW1xuICAnYXdzLWNkay1saWInLFxuICAnY29uc3RydWN0cycsXG5dO1xuXG5leHBvcnQgY29uc3QgU1VQUE9SVEVEX0xBTkdVQUdFUyA9IFtcbiAgJ3R5cGVzY3JpcHQnLFxuICAncHl0aG9uJyxcbiAgJ2phdmEnLFxuICAnY3NoYXJwJyxcbiAgJ2dvbGFuZycsXG5dO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlbmRlckNvZGVPcHRpb25zIHtcbiAgcmVhZG9ubHkgc3JjZGlyOiBzdHJpbmc7XG4gIHJlYWRvbmx5IG91dGRpcjogc3RyaW5nO1xuICByZWFkb25seSBsYW5ndWFnZTogc3RyaW5nO1xuICByZWFkb25seSB0eXBlTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgR28gbW9kdWxlIHRvIHVzZSBmb3IgdGhlIGdlbmVyYXRlZCBjb2RlLiBSZXF1aXJlZCBpZiBgbGFuZ3VhZ2VgIGlzIGBnb2xhbmdgLlxuICAgKi9cbiAgcmVhZG9ubHkgZ29Nb2R1bGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBKYXZhIHBhY2thZ2UgdG8gdXNlIGZvciB0aGUgZ2VuZXJhdGVkIGNvZGUuIFJlcXVpcmVkIGlmIGBsYW5ndWFnZWAgaXMgYGphdmFgLlxuICAgKi9cbiAgcmVhZG9ubHkgamF2YVBhY2thZ2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBDIyBuYW1lc3BhY2UgdG8gdXNlIGZvciB0aGUgZ2VuZXJhdGVkIGNvZGUuIFJlcXVpcmVkIGlmIGBsYW5ndWFnZWAgaXMgYGNzaGFycGAuXG4gICAqL1xuICByZWFkb25seSBjc2hhcnBOYW1lc3BhY2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW5kZXJDb2RlKG9wdGlvbnM6IFJlbmRlckNvZGVPcHRpb25zKSB7XG4gIGNvbnN0IHNyY21ha29wdHM6IE9wdGlvbnMgPSB7XG4gICAgZGVwczogY2RrRGVwcy5tYXAoeCA9PiBwYXRoLmRpcm5hbWUocmVxdWlyZS5yZXNvbHZlKGAke3h9L3BhY2thZ2UuanNvbmApKSksXG4gIH07XG5cbiAgc3dpdGNoIChvcHRpb25zLmxhbmd1YWdlKSB7XG4gICAgY2FzZSAndHlwZXNjcmlwdCc6XG4gICAgICBhd2FpdCBmcy5ta2RpcihvcHRpb25zLm91dGRpciwgeyByZWN1cnNpdmU6IHRydWUgfSk7XG4gICAgICByZXR1cm4gZnMuY29weUZpbGUocGF0aC5qb2luKG9wdGlvbnMuc3JjZGlyLCAnaW5kZXgudHMnKSwgcGF0aC5qb2luKG9wdGlvbnMub3V0ZGlyLCBgJHtjYXNldXRpbC5oZWFkZXIob3B0aW9ucy50eXBlTmFtZSkudG9Mb3dlckNhc2UoKX0udHNgKSk7XG5cbiAgICBjYXNlICdweXRob24nOlxuICAgICAgc3JjbWFrb3B0cy5weXRob24gPSB7XG4gICAgICAgIG91dGRpcjogb3B0aW9ucy5vdXRkaXIsXG4gICAgICAgIG1vZHVsZU5hbWU6IGNhc2V1dGlsLnNuYWtlKG9wdGlvbnMudHlwZU5hbWUpLFxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnY3NoYXJwJzpcbiAgICAgIHNyY21ha29wdHMuY3NoYXJwID0ge1xuICAgICAgICBvdXRkaXI6IG9wdGlvbnMub3V0ZGlyLFxuICAgICAgICBuYW1lc3BhY2U6IG9wdGlvbnMuY3NoYXJwTmFtZXNwYWNlISxcbiAgICAgIH07XG4gICAgICBicmVhaztcblxuICAgIGNhc2UgJ2phdmEnOlxuICAgICAgaWYgKCFvcHRpb25zLmphdmFQYWNrYWdlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignSmF2YSBwYWNrYWdlIG5hbWUgKGAtLWphdmEtcGFja2FnZWApIG11c3QgYmUgc3BlY2lmaWVkIChlLmcuIFwiY29tLmZvby5iYXIubXkucmVzb3VyY2VcIiknKTtcbiAgICAgIH1cblxuICAgICAgc3JjbWFrb3B0cy5qYXZhID0ge1xuICAgICAgICBvdXRkaXI6IG9wdGlvbnMub3V0ZGlyLFxuICAgICAgICBwYWNrYWdlOiBvcHRpb25zLmphdmFQYWNrYWdlLFxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgY2FzZSAnZ29sYW5nJzpcbiAgICAgIGlmICghb3B0aW9ucy5nb01vZHVsZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0dvIG1vZHVsZSBuYW1lICgtLWdvLW1vZHVsZSkgaXMgcmVxdWlyZWQgKGUuZy4gXCJnaXRodWIuY29tL2Zvby9iYXJcIiknKTtcbiAgICAgIH1cblxuICAgICAgc3JjbWFrb3B0cy5nb2xhbmcgPSB7XG4gICAgICAgIG91dGRpcjogb3B0aW9ucy5vdXRkaXIsXG4gICAgICAgIHBhY2thZ2VOYW1lOiBjYXNldXRpbC5sb3dlcihvcHRpb25zLnR5cGVOYW1lLCAnLScpLFxuICAgICAgICBtb2R1bGVOYW1lOiBvcHRpb25zLmdvTW9kdWxlLFxuICAgICAgfTtcbiAgICAgIGJyZWFrO1xuXG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5zdXBwb3J0ZWQgbGFuZ3VhZ2U6ICR7b3B0aW9ucy5sYW5ndWFnZX1gKTtcbiAgfVxuXG4gIGF3YWl0IHNyY21hayhvcHRpb25zLnNyY2Rpciwgc3JjbWFrb3B0cyk7XG59XG4iXX0=
package/package.json CHANGED
@@ -30,7 +30,7 @@
30
30
  "@types/node": "^14",
31
31
  "@typescript-eslint/eslint-plugin": "^5",
32
32
  "@typescript-eslint/parser": "^5",
33
- "aws-cdk-lib": "^2.22.0",
33
+ "aws-cdk-lib": "^2.23.0",
34
34
  "constructs": "^10",
35
35
  "eslint": "^8",
36
36
  "eslint-import-resolver-node": "^0.3.6",
@@ -40,18 +40,21 @@
40
40
  "jest-junit": "^13",
41
41
  "json-schema": "^0.4.0",
42
42
  "npm-check-updates": "^12",
43
- "projen": "^0.55.3",
43
+ "projen": "^0.55.7",
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.1127.0",
50
+ "aws-cdk-lib": "^2.23.0",
51
+ "aws-sdk": "^2.1128.0",
51
52
  "case": "^1.6.3",
52
- "jsii-srcmak": "^0.1.548",
53
- "json2jsii": "^0.3.1",
53
+ "constructs": "^10",
54
+ "jsii-srcmak": "^0.1.549",
55
+ "json2jsii": "^0.3.3",
54
56
  "minimist": "^1.2.6",
57
+ "minimist-subcommand": "^3.0.2",
55
58
  "proxy-agent": "^5.0.0"
56
59
  },
57
60
  "engines": {
@@ -59,7 +62,7 @@
59
62
  },
60
63
  "main": "lib/index.js",
61
64
  "license": "Apache-2.0",
62
- "version": "0.2.162",
65
+ "version": "0.2.165",
63
66
  "jest": {
64
67
  "testMatch": [
65
68
  "<rootDir>/src/**/__tests__/**/*.ts?(x)",