@aws-cdk/toolkit-lib 0.3.3 → 0.3.5

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.
Files changed (146) hide show
  1. package/api-extractor.json +8 -2
  2. package/build-info.json +2 -2
  3. package/db.json.gz +0 -0
  4. package/lib/actions/bootstrap/private/helpers.js +3 -3
  5. package/lib/actions/diff/index.d.ts +2 -2
  6. package/lib/actions/diff/index.js +1 -1
  7. package/lib/actions/diff/private/helpers.js +8 -8
  8. package/lib/actions/refactor/index.d.ts +44 -0
  9. package/lib/actions/refactor/index.js +1 -1
  10. package/lib/api/aws-auth/awscli-compatible.d.ts +6 -5
  11. package/lib/api/aws-auth/awscli-compatible.js +2 -2
  12. package/lib/api/aws-auth/credential-plugins.d.ts +2 -2
  13. package/lib/api/aws-auth/credential-plugins.js +2 -2
  14. package/lib/api/aws-auth/provider-caching.d.ts +3 -3
  15. package/lib/api/aws-auth/provider-caching.js +1 -1
  16. package/lib/api/aws-auth/sdk-logger.d.ts +8 -2
  17. package/lib/api/aws-auth/sdk-logger.js +4 -4
  18. package/lib/api/aws-auth/sdk-provider.d.ts +4 -3
  19. package/lib/api/aws-auth/sdk-provider.js +2 -2
  20. package/lib/api/aws-auth/sdk.d.ts +7 -6
  21. package/lib/api/aws-auth/sdk.js +4 -4
  22. package/lib/api/aws-auth/tracing.d.ts +2 -2
  23. package/lib/api/aws-auth/tracing.js +1 -1
  24. package/lib/api/aws-auth/types.d.ts +3 -3
  25. package/lib/api/aws-auth/types.js +1 -1
  26. package/lib/api/bootstrap/bootstrap-environment.js +2 -2
  27. package/lib/api/bootstrap/bootstrap-template.yaml +12 -1
  28. package/lib/api/cloud-assembly/environment.js +1 -1
  29. package/lib/api/cloud-assembly/index.d.ts +2 -1
  30. package/lib/api/cloud-assembly/index.js +3 -2
  31. package/lib/api/cloud-assembly/private/context-aware-source.js +3 -3
  32. package/lib/api/cloud-assembly/private/exec.js +3 -3
  33. package/lib/api/cloud-assembly/private/prepare-source.js +4 -4
  34. package/lib/api/cloud-assembly/private/source-builder.d.ts +14 -12
  35. package/lib/api/cloud-assembly/private/source-builder.js +40 -23
  36. package/lib/api/cloud-assembly/private/stack-assembly.js +7 -7
  37. package/lib/api/cloud-assembly/source-builder.d.ts +19 -0
  38. package/lib/api/cloud-assembly/source-builder.js +1 -1
  39. package/lib/api/cloud-assembly/stack-collection.js +2 -2
  40. package/lib/api/cloudformation/evaluate-cloudformation-template.d.ts +1 -1
  41. package/lib/api/cloudformation/evaluate-cloudformation-template.js +2 -2
  42. package/lib/api/cloudformation/stack-helpers.js +2 -2
  43. package/lib/api/cloudformation/template-body-parameter.js +2 -2
  44. package/lib/api/context.js +2 -2
  45. package/lib/api/deployments/asset-publishing.js +2 -2
  46. package/lib/api/deployments/assets.js +5 -6
  47. package/lib/api/deployments/cfn-api.js +3 -3
  48. package/lib/api/deployments/checks.js +2 -2
  49. package/lib/api/deployments/deploy-stack.js +2 -2
  50. package/lib/api/deployments/deployment-result.js +2 -2
  51. package/lib/api/deployments/deployments.js +3 -3
  52. package/lib/api/diff/diff-formatter.js +2 -2
  53. package/lib/api/environment/environment-access.js +2 -2
  54. package/lib/api/environment/environment-resources.js +2 -2
  55. package/lib/api/environment/placeholders.js +1 -1
  56. package/lib/api/garbage-collection/garbage-collector.js +2 -2
  57. package/lib/api/garbage-collection/progress-printer.js +2 -2
  58. package/lib/api/garbage-collection/stack-refresh.js +2 -2
  59. package/lib/api/hotswap/appsync-mapping-templates.js +2 -2
  60. package/lib/api/hotswap/common.d.ts +2 -1
  61. package/lib/api/hotswap/common.js +9 -3
  62. package/lib/api/hotswap/ecs-services.js +3 -2
  63. package/lib/api/hotswap/hotswap-deployments.js +2 -2
  64. package/lib/api/hotswap/lambda-functions.js +2 -2
  65. package/lib/api/index.d.ts +0 -1
  66. package/lib/api/index.js +1 -2
  67. package/lib/api/io/private/index.d.ts +0 -1
  68. package/lib/api/io/private/index.js +1 -2
  69. package/lib/api/io/private/level-priority.js +1 -1
  70. package/lib/api/io/private/span.js +1 -1
  71. package/lib/api/logs-monitor/logs-monitor.js +2 -2
  72. package/lib/api/notices/cached-data-source.d.ts +13 -0
  73. package/lib/api/notices/cached-data-source.js +77 -0
  74. package/lib/api/notices/filter.d.ts +59 -0
  75. package/lib/api/notices/filter.js +189 -0
  76. package/lib/api/notices/index.d.ts +1 -0
  77. package/lib/api/{private.js → notices/index.js} +2 -2
  78. package/lib/api/notices/notices.d.ts +111 -0
  79. package/lib/api/notices/notices.js +131 -0
  80. package/lib/api/notices/types.d.ts +37 -0
  81. package/lib/api/notices/types.js +3 -0
  82. package/lib/api/notices/web-data-source.d.ts +9 -0
  83. package/lib/api/notices/web-data-source.js +70 -0
  84. package/lib/api/plugin/context-provider-plugin.js +1 -1
  85. package/lib/api/plugin/plugin.d.ts +4 -6
  86. package/lib/api/plugin/plugin.js +8 -13
  87. package/lib/api/refactoring/cloudformation.d.ts +23 -0
  88. package/lib/api/refactoring/cloudformation.js +54 -1
  89. package/lib/api/refactoring/exclude.d.ts +29 -0
  90. package/lib/api/refactoring/exclude.js +94 -0
  91. package/lib/api/refactoring/execution.d.ts +7 -0
  92. package/lib/api/refactoring/execution.js +43 -0
  93. package/lib/api/refactoring/index.d.ts +6 -23
  94. package/lib/api/refactoring/index.js +89 -60
  95. package/lib/api/resource-import/importer.js +2 -2
  96. package/lib/api/rwlock.js +2 -2
  97. package/lib/api/settings.js +2 -2
  98. package/lib/api/shared-private.js +31 -6186
  99. package/lib/api/toolkit-info.js +2 -2
  100. package/lib/api/work-graph/work-graph-builder.js +3 -3
  101. package/lib/api/work-graph/work-graph.js +2 -2
  102. package/lib/context-providers/ami.js +2 -2
  103. package/lib/context-providers/cc-api-provider.js +2 -2
  104. package/lib/context-providers/hosted-zones.js +2 -2
  105. package/lib/context-providers/index.js +4 -4
  106. package/lib/context-providers/keys.js +2 -2
  107. package/lib/context-providers/load-balancers.js +2 -2
  108. package/lib/context-providers/security-groups.js +2 -2
  109. package/lib/context-providers/ssm-parameters.js +2 -2
  110. package/lib/context-providers/vpcs.js +3 -3
  111. package/lib/index.d.ts +3 -1
  112. package/lib/index.js +4 -2
  113. package/lib/index_bg.wasm +0 -0
  114. package/lib/payloads/deploy.d.ts +8 -1
  115. package/lib/payloads/deploy.js +1 -1
  116. package/lib/payloads/hotswap.d.ts +1 -0
  117. package/lib/payloads/hotswap.js +1 -1
  118. package/lib/private/activity-printer/base.js +1 -1
  119. package/lib/toolkit/non-interactive-io-host.js +5 -4
  120. package/lib/toolkit/toolkit.d.ts +2 -2
  121. package/lib/toolkit/toolkit.js +82 -37
  122. package/lib/util/directories.js +2 -2
  123. package/lib/util/index.d.ts +1 -0
  124. package/lib/util/index.js +2 -1
  125. package/lib/util/json.js +1 -1
  126. package/lib/util/net.d.ts +9 -0
  127. package/lib/util/net.js +60 -0
  128. package/lib/util/objects.js +2 -2
  129. package/lib/util/types.js +1 -1
  130. package/lib/util/version-range.js +2 -2
  131. package/package.json +31 -31
  132. package/tsdoc.json +20 -0
  133. package/lib/api/io/private/sdk-logger.d.ts +0 -3
  134. package/lib/api/io/private/sdk-logger.js +0 -124
  135. package/lib/api/notices.d.ts +0 -210
  136. package/lib/api/notices.js +0 -430
  137. package/lib/api/private.d.ts +0 -1
  138. package/lib/api/shared-private.js.map +0 -7
  139. package/lib/api/shared-public.d.ts +0 -2139
  140. package/lib/api/shared-public.js +0 -3272
  141. package/lib/api/shared-public.js.map +0 -7
  142. package/lib/private/util.d.ts +0 -1
  143. package/lib/private/util.js +0 -787
  144. package/lib/private/util.js.map +0 -7
  145. /package/lib/{api → toolkit}/toolkit-error.d.ts +0 -0
  146. /package/lib/{api → toolkit}/toolkit-error.js +0 -0
@@ -1,12 +1,13 @@
1
1
  import type { AssemblyDirectoryProps, AssemblySourceProps, ICloudAssemblySource } from '../';
2
- import type { AssemblyBuilder } from '../source-builder';
2
+ import type { AssemblyBuilder, FromCdkAppOptions } from '../source-builder';
3
3
  export declare abstract class CloudAssemblySourceBuilder {
4
4
  /**
5
5
  * Create a Cloud Assembly from a Cloud Assembly builder function.
6
6
  *
7
- * A temporary output directory will be created if no output directory is
8
- * explicitly given. This directory will be cleaned up if synthesis fails, or
9
- * when the Cloud Assembly produced by this source is disposed.
7
+ * The output directory will be evaluated with respect to the working
8
+ * directory if relative. If not given, it will synthesize into a temporary
9
+ * system directory. The temporary directory will be cleaned up, unless
10
+ * `disposeOutdir: false`.
10
11
  *
11
12
  * A write lock will be acquired on the output directory for the duration of
12
13
  * the CDK app synthesis (which means that no two apps can synthesize at the
@@ -14,8 +15,8 @@ export declare abstract class CloudAssemblySourceBuilder {
14
15
  * directory. This means that while the CloudAssembly is being used, no CDK
15
16
  * app synthesis can take place into that directory.
16
17
  *
17
- * @param builder the builder function
18
- * @param props additional configuration properties
18
+ * @param builder - the builder function
19
+ * @param props - additional configuration properties
19
20
  * @returns the CloudAssembly source
20
21
  */
21
22
  fromAssemblyBuilder(builder: AssemblyBuilder, props?: AssemblySourceProps): Promise<ICloudAssemblySource>;
@@ -26,16 +27,17 @@ export declare abstract class CloudAssemblySourceBuilder {
26
27
  * the CloudAssembly is being used, no CDK app synthesis can take place into
27
28
  * that directory.
28
29
  *
29
- * @param directory the directory of a already produced Cloud Assembly.
30
+ * @param directory - directory the directory of a already produced Cloud Assembly.
30
31
  * @returns the CloudAssembly source
31
32
  */
32
33
  fromAssemblyDirectory(directory: string, props?: AssemblyDirectoryProps): Promise<ICloudAssemblySource>;
33
34
  /**
34
35
  * Use a directory containing an AWS CDK app as source.
35
36
  *
36
- * A temporary output directory will be created if no output directory is
37
- * explicitly given. This directory will be cleaned up if synthesis fails, or
38
- * when the Cloud Assembly produced by this source is disposed.
37
+ * The output directory will be evaluated with respect to the working
38
+ * directory if relative. If not given, it will synthesize into a `cdk.out`
39
+ * subdirectory. This directory will not be cleaned up, unless
40
+ * `disposeOutdir: true`.
39
41
  *
40
42
  * A write lock will be acquired on the output directory for the duration of
41
43
  * the CDK app synthesis (which means that no two apps can synthesize at the
@@ -43,8 +45,8 @@ export declare abstract class CloudAssemblySourceBuilder {
43
45
  * directory. This means that while the CloudAssembly is being used, no CDK
44
46
  * app synthesis can take place into that directory.
45
47
  *
46
- * @param props additional configuration properties
48
+ * @param props - additional configuration properties
47
49
  * @returns the CloudAssembly source
48
50
  */
49
- fromCdkApp(app: string, props?: AssemblySourceProps): Promise<ICloudAssemblySource>;
51
+ fromCdkApp(app: string, props?: FromCdkAppOptions): Promise<ICloudAssemblySource>;
50
52
  }
@@ -53,24 +53,26 @@ var __disposeResources = (this && this.__disposeResources) || (function (Suppres
53
53
  });
54
54
  Object.defineProperty(exports, "__esModule", { value: true });
55
55
  exports.CloudAssemblySourceBuilder = void 0;
56
+ const path = require("path");
56
57
  const cxapi = require("@aws-cdk/cx-api");
57
58
  const fs = require("fs-extra");
58
59
  const context_aware_source_1 = require("./context-aware-source");
59
60
  const exec_1 = require("./exec");
60
61
  const prepare_source_1 = require("./prepare-source");
61
- const private_1 = require("../../io/private");
62
- const shared_public_1 = require("../../shared-public");
62
+ const toolkit_error_1 = require("../../../toolkit/toolkit-error");
63
63
  const readable_assembly_1 = require("./readable-assembly");
64
64
  const context_1 = require("../../context");
65
+ const private_1 = require("../../io/private");
65
66
  const rwlock_1 = require("../../rwlock");
66
67
  const settings_1 = require("../../settings");
67
68
  class CloudAssemblySourceBuilder {
68
69
  /**
69
70
  * Create a Cloud Assembly from a Cloud Assembly builder function.
70
71
  *
71
- * A temporary output directory will be created if no output directory is
72
- * explicitly given. This directory will be cleaned up if synthesis fails, or
73
- * when the Cloud Assembly produced by this source is disposed.
72
+ * The output directory will be evaluated with respect to the working
73
+ * directory if relative. If not given, it will synthesize into a temporary
74
+ * system directory. The temporary directory will be cleaned up, unless
75
+ * `disposeOutdir: false`.
74
76
  *
75
77
  * A write lock will be acquired on the output directory for the duration of
76
78
  * the CDK app synthesis (which means that no two apps can synthesize at the
@@ -78,8 +80,8 @@ class CloudAssemblySourceBuilder {
78
80
  * directory. This means that while the CloudAssembly is being used, no CDK
79
81
  * app synthesis can take place into that directory.
80
82
  *
81
- * @param builder the builder function
82
- * @param props additional configuration properties
83
+ * @param builder - the builder function
84
+ * @param props - additional configuration properties
83
85
  * @returns the CloudAssembly source
84
86
  */
85
87
  async fromAssemblyBuilder(builder, props = {}) {
@@ -90,11 +92,13 @@ class CloudAssemblySourceBuilder {
90
92
  context,
91
93
  lookups: props.lookups,
92
94
  };
95
+ const workingDirectory = props.workingDirectory ?? process.cwd();
96
+ const outdir = props.outdir ? path.resolve(workingDirectory, props.outdir) : undefined;
93
97
  return new context_aware_source_1.ContextAwareCloudAssemblySource({
94
98
  produce: async () => {
95
99
  const env_1 = { stack: [], error: void 0, hasError: false };
96
100
  try {
97
- const execution = __addDisposableResource(env_1, await prepare_source_1.ExecutionEnvironment.create(services, { outdir: props.outdir }), true);
101
+ const execution = __addDisposableResource(env_1, await prepare_source_1.ExecutionEnvironment.create(services, { outdir }), true);
98
102
  const env = await execution.defaultEnvVars();
99
103
  const assembly = await execution.changeDir(async () => execution.withContext(context.all, env, props.synthOptions ?? {}, async (envWithContext, ctx) => execution.withEnv(envWithContext, async () => {
100
104
  try {
@@ -105,19 +109,20 @@ class CloudAssemblySourceBuilder {
105
109
  }
106
110
  catch (error) {
107
111
  // re-throw toolkit errors unchanged
108
- if (shared_public_1.ToolkitError.isToolkitError(error)) {
112
+ if (toolkit_error_1.ToolkitError.isToolkitError(error)) {
109
113
  throw error;
110
114
  }
111
115
  // otherwise, wrap into an assembly error
112
- throw shared_public_1.AssemblyError.withCause('Assembly builder failed', error);
116
+ throw toolkit_error_1.AssemblyError.withCause('Assembly builder failed', error);
113
117
  }
114
- })), props.workingDirectory);
118
+ })), workingDirectory);
115
119
  // Convert what we got to the definitely correct type we're expecting, a cxapi.CloudAssembly
116
120
  const asm = cxapi.CloudAssembly.isCloudAssembly(assembly)
117
121
  ? assembly
118
122
  : await (0, prepare_source_1.assemblyFromDirectory)(assembly.directory, services.ioHelper, props.loadAssemblyOptions);
119
123
  const success = await execution.markSuccessful();
120
- return new readable_assembly_1.ReadableCloudAssembly(asm, success.readLock, { deleteOnDispose: execution.outDirIsTemporary });
124
+ const deleteOnDispose = props.disposeOutdir ?? execution.outDirIsTemporary;
125
+ return new readable_assembly_1.ReadableCloudAssembly(asm, success.readLock, { deleteOnDispose });
121
126
  }
122
127
  catch (e_1) {
123
128
  env_1.error = e_1;
@@ -138,7 +143,7 @@ class CloudAssemblySourceBuilder {
138
143
  * the CloudAssembly is being used, no CDK app synthesis can take place into
139
144
  * that directory.
140
145
  *
141
- * @param directory the directory of a already produced Cloud Assembly.
146
+ * @param directory - directory the directory of a already produced Cloud Assembly.
142
147
  * @returns the CloudAssembly source
143
148
  */
144
149
  async fromAssemblyDirectory(directory, props = {}) {
@@ -167,9 +172,10 @@ class CloudAssemblySourceBuilder {
167
172
  /**
168
173
  * Use a directory containing an AWS CDK app as source.
169
174
  *
170
- * A temporary output directory will be created if no output directory is
171
- * explicitly given. This directory will be cleaned up if synthesis fails, or
172
- * when the Cloud Assembly produced by this source is disposed.
175
+ * The output directory will be evaluated with respect to the working
176
+ * directory if relative. If not given, it will synthesize into a `cdk.out`
177
+ * subdirectory. This directory will not be cleaned up, unless
178
+ * `disposeOutdir: true`.
173
179
  *
174
180
  * A write lock will be acquired on the output directory for the duration of
175
181
  * the CDK app synthesis (which means that no two apps can synthesize at the
@@ -177,7 +183,7 @@ class CloudAssemblySourceBuilder {
177
183
  * directory. This means that while the CloudAssembly is being used, no CDK
178
184
  * app synthesis can take place into that directory.
179
185
  *
180
- * @param props additional configuration properties
186
+ * @param props - additional configuration properties
181
187
  * @returns the CloudAssembly source
182
188
  */
183
189
  async fromCdkApp(app, props = {}) {
@@ -189,6 +195,8 @@ class CloudAssemblySourceBuilder {
189
195
  context,
190
196
  lookups: props.lookups,
191
197
  };
198
+ const workingDirectory = props.workingDirectory ?? process.cwd();
199
+ const outdir = path.resolve(workingDirectory, props.outdir ?? 'cdk.out');
192
200
  return new context_aware_source_1.ContextAwareCloudAssemblySource({
193
201
  produce: async () => {
194
202
  const env_2 = { stack: [], error: void 0, hasError: false };
@@ -198,16 +206,18 @@ class CloudAssemblySourceBuilder {
198
206
  // if (build) {
199
207
  // await execInChildProcess(build, { cwd: props.workingDirectory });
200
208
  // }
201
- const outdir = props.outdir ?? 'cdk.out';
202
209
  try {
203
210
  fs.mkdirpSync(outdir);
204
211
  }
205
212
  catch (e) {
206
- throw new shared_public_1.ToolkitError(`Could not create output directory at '${outdir}' (${e.message}).`);
213
+ throw new toolkit_error_1.ToolkitError(`Could not create output directory at '${outdir}' (${e.message}).`);
207
214
  }
208
215
  const execution = __addDisposableResource(env_2, await prepare_source_1.ExecutionEnvironment.create(services, { outdir }), true);
209
216
  const commandLine = await execution.guessExecutable(app);
210
- const env = await execution.defaultEnvVars();
217
+ const env = noUndefined({
218
+ ...await execution.defaultEnvVars(),
219
+ ...props.env,
220
+ });
211
221
  return await execution.withContext(context.all, env, props.synthOptions, async (envWithContext, _ctx) => {
212
222
  await (0, exec_1.execInChildProcess)(commandLine.join(' '), {
213
223
  eventPublisher: async (type, line) => {
@@ -221,11 +231,12 @@ class CloudAssemblySourceBuilder {
221
231
  }
222
232
  },
223
233
  extraEnv: envWithContext,
224
- cwd: props.workingDirectory,
234
+ cwd: workingDirectory,
225
235
  });
226
236
  const asm = await (0, prepare_source_1.assemblyFromDirectory)(outdir, services.ioHelper, props.loadAssemblyOptions);
227
237
  const success = await execution.markSuccessful();
228
- return new readable_assembly_1.ReadableCloudAssembly(asm, success.readLock, { deleteOnDispose: execution.outDirIsTemporary });
238
+ const deleteOnDispose = props.disposeOutdir ?? execution.outDirIsTemporary;
239
+ return new readable_assembly_1.ReadableCloudAssembly(asm, success.readLock, { deleteOnDispose });
229
240
  });
230
241
  }
231
242
  catch (e_2) {
@@ -242,4 +253,10 @@ class CloudAssemblySourceBuilder {
242
253
  }
243
254
  }
244
255
  exports.CloudAssemblySourceBuilder = CloudAssemblySourceBuilder;
245
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEseUNBQXlDO0FBQ3pDLCtCQUErQjtBQUcvQixpRUFBeUU7QUFDekUsaUNBQTRDO0FBQzVDLHFEQUErRTtBQUUvRSw4Q0FBc0M7QUFDdEMsdURBQWtFO0FBRWxFLDJEQUE0RDtBQUM1RCwyQ0FBd0M7QUFDeEMseUNBQXNDO0FBQ3RDLDZDQUEwQztBQUUxQyxNQUFzQiwwQkFBMEI7SUFROUM7Ozs7Ozs7Ozs7Ozs7Ozs7T0FnQkc7SUFDSSxLQUFLLENBQUMsbUJBQW1CLENBQzlCLE9BQXdCLEVBQ3hCLFFBQTZCLEVBQUU7UUFFL0IsTUFBTSxRQUFRLEdBQUcsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNwRCxNQUFNLE9BQU8sR0FBRyxJQUFJLGlCQUFPLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxtQkFBUSxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3hFLE1BQU0sb0JBQW9CLEdBQW1DO1lBQzNELFFBQVE7WUFDUixPQUFPO1lBQ1AsT0FBTyxFQUFFLEtBQUssQ0FBQyxPQUFPO1NBQ3ZCLENBQUM7UUFFRixPQUFPLElBQUksc0RBQStCLENBQ3hDO1lBQ0UsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFOzs7b0JBQ2xCLE1BQVksU0FBUyxrQ0FBRyxNQUFNLHFDQUFvQixDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLE9BQUEsQ0FBQztvQkFFOUYsTUFBTSxHQUFHLEdBQUcsTUFBTSxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQzdDLE1BQU0sUUFBUSxHQUFH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RyxDQUFDLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7YUFDSjtTQUNGLEVBQ0Qsb0JBQW9CLENBQ3JCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUF4TEQsZ0VBd0xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCB0eXBlIHsgQXNzZW1ibHlEaXJlY3RvcnlQcm9wcywgQXNzZW1ibHlTb3VyY2VQcm9wcywgSUNsb3VkQXNzZW1ibHlTb3VyY2UgfSBmcm9tICcuLi8nO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5UHJvcHMgfSBmcm9tICcuL2NvbnRleHQtYXdhcmUtc291cmNlJztcbmltcG9ydCB7IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2UgfSBmcm9tICcuL2NvbnRleHQtYXdhcmUtc291cmNlJztcbmltcG9ydCB7IGV4ZWNJbkNoaWxkUHJvY2VzcyB9IGZyb20gJy4vZXhlYyc7XG5pbXBvcnQgeyBFeGVjdXRpb25FbnZpcm9ubWVudCwgYXNzZW1ibHlGcm9tRGlyZWN0b3J5IH0gZnJvbSAnLi9wcmVwYXJlLXNvdXJjZSc7XG5pbXBvcnQgdHlwZSB7IFRvb2xraXRTZXJ2aWNlcyB9IGZyb20gJy4uLy4uLy4uL3Rvb2xraXQvcHJpdmF0ZSc7XG5pbXBvcnQgeyBJTyB9IGZyb20gJy4uLy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yLCBBc3NlbWJseUVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkLXB1YmxpYyc7XG5pbXBvcnQgdHlwZSB7IEFzc2VtYmx5QnVpbGRlciB9IGZyb20gJy4uL3NvdXJjZS1idWlsZGVyJztcbmltcG9ydCB7IFJlYWRhYmxlQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4vcmVhZGFibGUtYXNzZW1ibHknO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gJy4uLy4uL2NvbnRleHQnO1xuaW1wb3J0IHsgUldMb2NrIH0gZnJvbSAnLi4vLi4vcndsb2NrJztcbmltcG9ydCB7IFNldHRpbmdzIH0gZnJvbSAnLi4vLi4vc2V0dGluZ3MnO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2xvdWRBc3NlbWJseVNvdXJjZUJ1aWxkZXIge1xuICAvKipcbiAgICogSGVscGVyIHRvIHByb3ZpZGUgdGhlIENsb3VkQXNzZW1ibHlTb3VyY2VCdWlsZGVyIHdpdGggcmVxdWlyZWQgdG9vbGtpdCBzZXJ2aWNlc1xuICAgKiBAaW50ZXJuYWxcbiAgICogQGRlcHJlY2F0ZWQgdGhpcyBzaG91bGQgbW92ZSB0byB0aGUgdG9vbGtpdCByZWFsbHkuXG4gICAqL1xuICBwcm90ZWN0ZWQgYWJzdHJhY3Qgc291cmNlQnVpbGRlclNlcnZpY2VzKCk6IFByb21pc2U8VG9vbGtpdFNlcnZpY2VzPjtcblxuICAvKipcbiAgICogQ3JlYXRlIGEgQ2xvdWQgQXNzZW1ibHkgZnJvbSBhIENsb3VkIEFzc2VtYmx5IGJ1aWxkZXIgZnVuY3Rpb24uXG4gICAqXG4gICAqIEEgdGVtcG9yYXJ5IG91dHB1dCBkaXJlY3Rvcnkgd2lsbCBiZSBjcmVhdGVkIGlmIG5vIG91dHB1dCBkaXJlY3RvcnkgaXNcbiAgICogZXhwbGljaXRseSBnaXZlbi4gVGhpcyBkaXJlY3Rvcnkgd2lsbCBiZSBjbGVhbmVkIHVwIGlmIHN5bnRoZXNpcyBmYWlscywgb3JcbiAgICogd2hlbiB0aGUgQ2xvdWQgQXNzZW1ibHkgcHJvZHVjZWQgYnkgdGhpcyBzb3VyY2UgaXMgZGlzcG9zZWQuXG4gICAqXG4gICAqIEEgd3JpdGUgbG9jayB3aWxsIGJlIGFjcXVpcmVkIG9uIHRoZSBvdXRwdXQgZGlyZWN0b3J5IGZvciB0aGUgZHVyYXRpb24gb2ZcbiAgICogdGhlIENESyBhcHAgc3ludGhlc2lzICh3aGljaCBtZWFucyB0aGF0IG5vIHR3byBhcHBzIGNhbiBzeW50aGVzaXplIGF0IHRoZVxuICAgKiBzYW1lIHRpbWUpLCBhbmQgYWZ0ZXIgc3ludGhlc2lzIGEgcmVhZCBsb2NrIHdpbGwgYmUgYWNxdWlyZWQgb24gdGhlXG4gICAqIGRpcmVjdG9yeS4gVGhpcyBtZWFucyB0aGF0IHdoaWxlIHRoZSBDbG91ZEFzc2VtYmx5IGlzIGJlaW5nIHVzZWQsIG5vIENES1xuICAgKiBhcHAgc3ludGhlc2lzIGNhbiB0YWtlIHBsYWNlIGludG8gdGhhdCBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBwYXJhbSBidWlsZGVyIHRoZSBidWlsZGVyIGZ1bmN0aW9uXG4gICAqIEBwYXJhbSBwcm9wcyBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICAgKiBAcmV0dXJucyB0aGUgQ2xvdWRBc3NlbWJseSBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBhc3luYyBmcm9tQXNzZW1ibHlCdWlsZGVyKFxuICAgIGJ1aWxkZXI6IEFzc2VtYmx5QnVpbGRlcixcbiAgICBwcm9wczogQXNzZW1ibHlTb3VyY2VQcm9wcyA9IHt9LFxuICApOiBQcm9taXNlPElDbG91ZEFzc2VtYmx5U291cmNlPiB7XG4gICAgY29uc3Qgc2VydmljZXMgPSBhd2FpdCB0aGlzLnNvdXJjZUJ1aWxkZXJTZXJ2aWNlcygpO1xuICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgQ29udGV4dCh7IGJhZzogbmV3IFNldHRpbmdzKHByb3BzLmNvbnRleHQgPz8ge30pIH0pO1xuICAgIGNvbnN0IGNvbnRleHRBc3NlbWJseVByb3BzOiBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5UHJvcHMgPSB7XG4gICAgICBzZXJ2aWNlcyxcbiAgICAgIGNvbnRleHQsXG4gICAgICBsb29rdXBzOiBwcm9wcy5sb29rdXBzLFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2UoXG4gICAgICB7XG4gICAgICAgIHByb2R1Y2U6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICBhd2FpdCB1c2luZyBleGVjdXRpb24gPSBhd2FpdCBFeGVjdXRpb25FbnZpcm9ubWVudC5jcmVhdGUoc2VydmljZXMsIHsgb3V0ZGlyOiBwcm9wcy5vdXRkaXIgfSk7XG5cbiAgICAgICAgICBjb25zdCBlbnYgPSBhd2FpdCBleGVjdXRpb24uZGVmYXVsdEVudlZhcnMoKTtcbiAgICAgICAgICBjb25zdCBhc3NlbWJseSA9IGF3YWl0IGV4ZWN1dGlvbi5jaGFuZ2VEaXIoYXN5bmMgKCkgPT5cbiAgICAgICAgICAgIGV4ZWN1dGlvbi53aXRoQ29udGV4dChjb250ZXh0LmFsbCwgZW52LCBwcm9wcy5zeW50aE9wdGlvbnMgPz8ge30sIGFzeW5jIChlbnZXaXRoQ29udGV4dCwgY3R4KSA9PlxuICAgICAgICAgICAgICBleGVjdXRpb24ud2l0aEVudihlbnZXaXRoQ29udGV4dCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gYXdhaXQgYnVpbGRlcih7XG4gICAgICAgICAgICAgICAgICAgIG91dGRpcjogZXhlY3V0aW9uLm91dGRpcixcbiAgICAgICAgICAgICAgICAgICAgY29udGV4dDogY3R4LFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyb3I6IHVua25vd24pIHtcbiAgICAgICAgICAgICAgICAgIC8vIHJlLXRocm93IHRvb2xraXQgZXJyb3JzIHVuY2hhbmdlZFxuICAgICAgICAgICAgICAgICAgaWYgKFRvb2xraXRFcnJvci5pc1Rvb2xraXRFcnJvcihlcnJvcikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAvLyBvdGhlcndpc2UsIHdyYXAgaW50byBhbiBhc3NlbWJseSBlcnJvclxuICAgICAgICAgICAgICAgICAgdGhyb3cgQXNzZW1ibHlFcnJvci53aXRoQ2F1c2UoJ0Fzc2VtYmx5IGJ1aWxkZXIgZmFpbGVkJywgZXJyb3IpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApLCBwcm9wcy53b3JraW5nRGlyZWN0b3J5KTtcblxuICAgICAgICAgIC8vIENvbnZlcnQgd2hhdCB3ZSBnb3QgdG8gdGhlIGRlZmluaXRlbHkgY29ycmVjdCB0eXBlIHdlJ3JlIGV4cGVjdGluZywgYSBjeGFwaS5DbG91ZEFzc2VtYmx5XG4gICAgICAgICAgY29uc3QgYXNtID0gY3hhcGkuQ2xvdWRBc3NlbWJseS5pc0Nsb3VkQXNzZW1ibHkoYXNzZW1ibHkpXG4gICAgICAgICAgICA/IGFzc2VtYmx5XG4gICAgICAgICAgICA6IGF3YWl0IGFzc2VtYmx5RnJvbURpcmVjdG9yeShhc3NlbWJseS5kaXJlY3RvcnksIHNlcnZpY2VzLmlvSGVscGVyLCBwcm9wcy5sb2FkQXNzZW1ibHlPcHRpb25zKTtcblxuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCBleGVjdXRpb24ubWFya1N1Y2Nlc3NmdWwoKTtcbiAgICAgICAgICByZXR1cm4gbmV3IFJlYWRhYmxlQ2xvdWRBc3NlbWJseShhc20sIHN1Y2Nlc3MucmVhZExvY2ssIHsgZGVsZXRlT25EaXNwb3NlOiBleGVjdXRpb24ub3V0RGlySXNUZW1wb3JhcnkgfSk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgY29udGV4dEFzc2VtYmx5UHJvcHMsXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgQ2xvdWQgQXNzZW1ibHkgZnJvbSBhbiBleGlzdGluZyBhc3NlbWJseSBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEEgcmVhZCBsb2NrIHdpbGwgYmUgYWNxdWlyZWQgZm9yIHRoZSBkaXJlY3RvcnkuIFRoaXMgbWVhbnMgdGhhdCB3aGlsZVxuICAgKiB0aGUgQ2xvdWRBc3NlbWJseSBpcyBiZWluZyB1c2VkLCBubyBDREsgYXBwIHN5bnRoZXNpcyBjYW4gdGFrZSBwbGFjZSBpbnRvXG4gICAqIHRoYXQgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAcGFyYW0gZGlyZWN0b3J5IHRoZSBkaXJlY3Rvcnkgb2YgYSBhbHJlYWR5IHByb2R1Y2VkIENsb3VkIEFzc2VtYmx5LlxuICAgKiBAcmV0dXJucyB0aGUgQ2xvdWRBc3NlbWJseSBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBhc3luYyBmcm9tQXNzZW1ibHlEaXJlY3RvcnkoZGlyZWN0b3J5OiBzdHJpbmcsIHByb3BzOiBBc3NlbWJseURpcmVjdG9yeVByb3BzID0ge30pOiBQcm9taXNlPElDbG91ZEFzc2VtYmx5U291cmNlPiB7XG4gICAgY29uc3Qgc2VydmljZXM6IFRvb2xraXRTZXJ2aWNlcyA9IGF3YWl0IHRoaXMuc291cmNlQnVpbGRlclNlcnZpY2VzKCk7XG4gICAgY29uc3QgY29udGV4dEFzc2VtYmx5UHJvcHM6IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcyA9IHtcbiAgICAgIHNlcnZpY2VzLFxuICAgICAgY29udGV4dDogbmV3IENvbnRleHQoKSwgLy8gQHRvZG8gdGhlcmUgaXMgcHJvYmFibHkgYSBkaWZmZXJlbmNlIGJldHdlZW4gY29udGV4dGF3YXJlIGFuZCBjb250ZXh0bG9va3VwIHNvdXJjZXNcbiAgICAgIGxvb2t1cHM6IGZhbHNlLFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2UoXG4gICAgICB7XG4gICAgICAgIHByb2R1Y2U6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAvLyBAdG9kbyBidWlsZFxuICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTAxNTAubXNnKCctLWFwcCBwb2ludHMgdG8gYSBjbG91ZCBhc3NlbWJseSwgc28gd2UgYnlwYXNzIHN5bnRoJykpO1xuXG4gICAgICAgICAgY29uc3QgcmVhZExvY2sgPSBhd2FpdCBuZXcgUldMb2NrKGRpcmVjdG9yeSkuYWNxdWlyZVJlYWQoKTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgY29uc3QgYXNtID0gYXdhaXQgYXNzZW1ibHlGcm9tRGlyZWN0b3J5KGRpcmVjdG9yeSwgc2VydmljZXMuaW9IZWxwZXIsIHByb3BzLmxvYWRBc3NlbWJseU9wdGlvbnMpO1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWFkYWJsZUNsb3VkQXNzZW1ibHkoYXNtLCByZWFkTG9jaywgeyBkZWxldGVPbkRpc3Bvc2U6IGZhbHNlIH0pO1xuICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIGF3YWl0IHJlYWRMb2NrLnJlbGVhc2UoKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGNvbnRleHRBc3NlbWJseVByb3BzLFxuICAgICk7XG4gIH1cbiAgLyoqXG4gICAqIFVzZSBhIGRpcmVjdG9yeSBjb250YWluaW5nIGFuIEFXUyBDREsgYXBwIGFzIHNvdXJjZS5cbiAgICpcbiAgICogQSB0ZW1wb3Jhcnkgb3V0cHV0IGRpcmVjdG9yeSB3aWxsIGJlIGNyZWF0ZWQgaWYgbm8gb3V0cHV0IGRpcmVjdG9yeSBpc1xuICAgKiBleHBsaWNpdGx5IGdpdmVuLiBUaGlzIGRpcmVjdG9yeSB3aWxsIGJlIGNsZWFuZWQgdXAgaWYgc3ludGhlc2lzIGZhaWxzLCBvclxuICAgKiB3aGVuIHRoZSBDbG91ZCBBc3NlbWJseSBwcm9kdWNlZCBieSB0aGlzIHNvdXJjZSBpcyBkaXNwb3NlZC5cbiAgICpcbiAgICogQSB3cml0ZSBsb2NrIHdpbGwgYmUgYWNxdWlyZWQgb24gdGhlIG91dHB1dCBkaXJlY3RvcnkgZm9yIHRoZSBkdXJhdGlvbiBvZlxuICAgKiB0aGUgQ0RLIGFwcCBzeW50aGVzaXMgKHdoaWNoIG1lYW5zIHRoYXQgbm8gdHdvIGFwcHMgY2FuIHN5bnRoZXNpemUgYXQgdGhlXG4gICAqIHNhbWUgdGltZSksIGFuZCBhZnRlciBzeW50aGVzaXMgYSByZWFkIGxvY2sgd2lsbCBiZSBhY3F1aXJlZCBvbiB0aGVcbiAgICogZGlyZWN0b3J5LiAgVGhpcyBtZWFucyB0aGF0IHdoaWxlIHRoZSBDbG91ZEFzc2VtYmx5IGlzIGJlaW5nIHVzZWQsIG5vIENES1xuICAgKiBhcHAgc3ludGhlc2lzIGNhbiB0YWtlIHBsYWNlIGludG8gdGhhdCBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyBhZGRpdGlvbmFsIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllc1xuICAgKiBAcmV0dXJucyB0aGUgQ2xvdWRBc3NlbWJseSBzb3VyY2VcbiAgICovXG4gIHB1YmxpYyBhc3luYyBmcm9tQ2RrQXBwKGFwcDogc3RyaW5nLCBwcm9wczogQXNzZW1ibHlTb3VyY2VQcm9wcyA9IHt9KTogUHJvbWlzZTxJQ2xvdWRBc3NlbWJseVNvdXJjZT4ge1xuICAgIGNvbnN0IHNlcnZpY2VzOiBUb29sa2l0U2VydmljZXMgPSBhd2FpdCB0aGlzLnNvdXJjZUJ1aWxkZXJTZXJ2aWNlcygpO1xuICAgIC8vIEB0b2RvIHRoaXMgZGVmaW5pdGVseSBuZWVkcyB0byByZWFkIGZpbGVzIGZyb20gdGhlIENXRFxuICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgQ29udGV4dCh7IGJhZzogbmV3IFNldHRpbmdzKHByb3BzLmNvbnRleHQgPz8ge30pIH0pO1xuICAgIGNvbnN0IGNvbnRleHRBc3NlbWJseVByb3BzOiBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5UHJvcHMgPSB7XG4gICAgICBzZXJ2aWNlcyxcbiAgICAgIGNvbnRleHQsXG4gICAgICBsb29rdXBzOiBwcm9wcy5sb29rdXBzLFxuICAgIH07XG5cbiAgICByZXR1cm4gbmV3IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2UoXG4gICAgICB7XG4gICAgICAgIHByb2R1Y2U6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAvLyBAdG9kbyBidWlsZFxuICAgICAgICAgIC8vIGNvbnN0IGJ1aWxkID0gdGhpcy5wcm9wcy5jb25maWd1cmF0aW9uLnNldHRpbmdzLmdldChbJ2J1aWxkJ10pO1xuICAgICAgICAgIC8vIGlmIChidWlsZCkge1xuICAgICAgICAgIC8vICAgYXdhaXQgZXhlY0luQ2hpbGRQcm9jZXNzKGJ1aWxkLCB7IGN3ZDogcHJvcHMud29ya2luZ0RpcmVjdG9yeSB9KTtcbiAgICAgICAgICAvLyB9XG5cbiAgICAgICAgICBjb25zdCBvdXRkaXIgPSBwcm9wcy5vdXRkaXIgPz8gJ2Nkay5vdXQnO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBmcy5ta2RpcnBTeW5jKG91dGRpcik7XG4gICAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGBDb3VsZCBub3QgY3JlYXRlIG91dHB1dCBkaXJlY3RvcnkgYXQgJyR7b3V0ZGlyfScgKCR7ZS5tZXNzYWdlfSkuYCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYXdhaXQgdXNpbmcgZXhlY3V0aW9uID0gYXdhaXQgRXhlY3V0aW9uRW52aXJvbm1lbnQuY3JlYXRlKHNlcnZpY2VzLCB7IG91dGRpciB9KTtcblxuICAgICAgICAgIGNvbnN0IGNvbW1hbmRMaW5lID0gYXdhaXQgZXhlY3V0aW9uLmd1ZXNzRXhlY3V0YWJsZShhcHApO1xuICAgICAgICAgIGNvbnN0IGVudiA9IGF3YWl0IGV4ZWN1dGlvbi5kZWZhdWx0RW52VmFycygpO1xuICAgICAgICAgIHJldHVybiBhd2FpdCBleGVjdXRpb24ud2l0aENvbnRleHQoY29udGV4dC5hbGwsIGVudiwgcHJvcHMuc3ludGhPcHRpb25zLCBhc3luYyAoZW52V2l0aENvbnRleHQsIF9jdHgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IGV4ZWNJbkNoaWxkUHJvY2Vzcyhjb21tYW5kTGluZS5qb2luKCcgJyksIHtcbiAgICAgICAgICAgICAgZXZlbnRQdWJsaXNoZXI6IGFzeW5jICh0eXBlLCBsaW5lKSA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgICBjYXNlICdkYXRhX3N0ZG91dCc6XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTEwMDEubXNnKGxpbmUpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlICdkYXRhX3N0ZGVycic6XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfRTEwMDIubXNnKGxpbmUpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBleHRyYUVudjogZW52V2l0aENvbnRleHQsXG4gICAgICAgICAgICAgIGN3ZDogcHJvcHMud29ya2luZ0RpcmVjdG9yeSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBhc20gPSBhd2FpdCBhc3NlbWJseUZyb21EaXJlY3Rvcnkob3V0ZGlyLCBzZXJ2aWNlcy5pb0hlbHBlciwgcHJvcHMubG9hZEFzc2VtYmx5T3B0aW9ucyk7XG5cbiAgICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCBleGVjdXRpb24ubWFya1N1Y2Nlc3NmdWwoKTtcbiAgICAgICAgICAgIHJldHVybiBuZXcgUmVhZGFibGVDbG91ZEFzc2VtYmx5KGFzbSwgc3VjY2Vzcy5yZWFkTG9jaywgeyBkZWxldGVPbkRpc3Bvc2U6IGV4ZWN1dGlvbi5vdXREaXJJc1RlbXBvcmFyeSB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjb250ZXh0QXNzZW1ibHlQcm9wcyxcbiAgICApO1xuICB9XG59XG5cbiJdfQ==
256
+ /**
257
+ * Remove undefined values from a dictionary
258
+ */
259
+ function noUndefined(xs) {
260
+ return Object.fromEntries(Object.entries(xs).filter(([_, v]) => v !== undefined));
261
+ }
262
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkJBQTZCO0FBQzdCLHlDQUF5QztBQUN6QywrQkFBK0I7QUFHL0IsaUVBQXlFO0FBQ3pFLGlDQUE0QztBQUM1QyxxREFBK0U7QUFDL0Usa0VBQTZFO0FBRTdFLDJEQUE0RDtBQUU1RCwyQ0FBd0M7QUFDeEMsOENBQXNDO0FBQ3RDLHlDQUFzQztBQUN0Qyw2Q0FBMEM7QUFFMUMsTUFBc0IsMEJBQTBCO0lBUTlDOzs7Ozs7Ozs7Ozs7Ozs7OztPQWlCRztJQUNJLEtBQUssQ0FBQyxtQkFBbUIsQ0FDOUIsT0FBd0IsRUFDeEIsUUFBNkIsRUFBRTtRQUUvQixNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQ3BELE1BQU0sT0FBTyxHQUFHLElBQUksaUJBQU8sQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLG1CQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEUsTUFBTSxvQkFBb0IsR0FBbUM7WUFDM0QsUUFBUTtZQUNSLE9BQU87WUFDUCxPQUFPLEVBQUUsS0FBSyxDQUFDLE9BQU87U0FDdkIsQ0FBQztRQUVGLE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixJQUFJLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNqRSxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRXZGLE9BQU8sSUFBSSxzREFBK0IsQ0FDeEM7WUFDRSxPQUFPLEVBQUUsS0FBSyxJQUFJLEVBQUU7OztvQkFDbEIsTUFBWSxTQUFTLGtDQUFHLE1BQU0scUNBQW9CLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxDQUFDLE9BQUEsQ0FBQztvQkFFaEYsTUFBTSxHQUFHLEdBQUcsTUFBTSxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQzdDLE1BQU0sUUFBUSxHQUFHLE1BQU0sU0FBUyxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUNwRCxTQUFTLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssQ0FBQyxZQUFZLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxjQUFjLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FDOUYsU0FBUyxDQUFDLE9BQU8sQ0FBQyxjQUFjLEVBQUUsS0FBSyxJQUFJLEVBQUU7d0JBQzNDLElBQUksQ0FBQzs0QkFDSCxPQUFPLE1BQU0sT0FBTyxDQUFDO2dDQUNuQixNQUFNLEVBQUUsU0FBUyxDQUFDLE1BQU07Z0NBQ3hCLE9BQU8sRUFBRSxHQUFHOzZCQUNiLENBQUMsQ0FBQzt3QkFDTCxDQUFDO3dCQUFDLE9BQU8sS0FBYyxFQUFFLENBQUM7NEJBQ3hCLG9DQUFvQzs0QkFDcEMsSUFBSSw0QkFBWSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO2dDQUN2QyxNQUFNLEtBQUssQ0FBQzs0QkFDZCxDQUFDOzRCQUNELHlDQUF5Qzs0QkFDekMsTUFBTSw2QkFBYSxDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsRUFBRSxLQUFLLENBQUMsQ0FBQzt3QkFDbEUsQ0FBQztvQkFDSCxDQUFDLENBQUMsQ0FDSCxFQUFFLGdCQUFnQixDQUFDLENBQUM7b0JBRXZCLDRGQUE0RjtvQkFDNUYsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDO3dCQUN2RCxDQUFDLENBQUMsUUFBUTt3QkFDVixDQUFDLENBQUMsTUFBTSxJQUFBLHNDQUFxQixFQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztvQkFFbEcsTUFBTSxPQUFPLEdBQUcsTUFBTSxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7b0JBQ2pELE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksU0FBUyxDQUFDLGlCQUFpQixDQUFDO29CQUMzRSxPQUFPLElBQUkseUNBQXFCLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDOzs7Ozs7Ozs7OzthQUM5RTtTQUNGLEVBQ0Qsb0JBQW9CLENBQ3JCLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksS0FBSyxDQUFDLHFCQUFxQixDQUFDLFNBQWlCLEVBQUUsUUFBZ0MsRUFBRTtRQUN0RixNQUFNLFFBQVEsR0FBb0IsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNyRSxNQUFNLG9CQUFvQixHQUFtQztZQUMzRCxRQUFRO1lBQ1IsT0FBTyxFQUFFLElBQUksaUJBQU8sRUFBRSxFQUFFLHNGQUFzRjtZQUM5RyxPQUFPLEVBQUUsS0FBSztTQUNmLENBQUM7UUFFRixPQUFPLElBQUksc0RBQStCLENBQ3hDO1lBQ0UsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUNsQixjQUFjO2dCQUNkLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxzREFBc0QsQ0FBQyxDQUFDLENBQUM7Z0JBRWxILE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBSSxlQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzNELElBQUksQ0FBQztvQkFDSCxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUEsc0NBQXFCLEVBQUMsU0FBUyxFQUFFLFFBQVEsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7b0JBQ2pHLE9BQU8sSUFBSSx5Q0FBcUIsQ0FBQyxHQUFHLEVBQUUsUUFBUSxFQUFFLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7Z0JBQzlFLENBQUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDWCxNQUFNLFFBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDekIsTUFBTSxDQUFDLENBQUM7Z0JBQ1YsQ0FBQztZQUNILENBQUM7U0FDRixFQUNELG9CQUFvQixDQUNyQixDQUFDO0lBQ0osQ0FBQztJQUNEOzs7Ozs7Ozs7Ozs7Ozs7O09BZ0JHO0lBQ0ksS0FBSyxDQUFDLFVBQVUsQ0FBQyxHQUFXLEVBQUUsUUFBMkIsRUFBRTtRQUNoRSxNQUFNLFFBQVEsR0FBb0IsTUFBTSxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNyRSx5REFBeUQ7UUFDekQsTUFBTSxPQUFPLEdBQUcsSUFBSSxpQkFBTyxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksbUJBQVEsQ0FBQyxLQUFLLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4RSxNQUFNLG9CQUFvQixHQUFtQztZQUMzRCxRQUFRO1lBQ1IsT0FBTztZQUNQLE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztTQUN2QixDQUFDO1FBRUYsTUFBTSxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLElBQUksT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBQ2pFLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLE1BQU0sSUFBSSxTQUFTLENBQUMsQ0FBQztRQUV6RSxPQUFPLElBQUksc0RBQStCLENBQ3hDO1lBQ0UsT0FBTyxFQUFFLEtBQUssSUFBSSxFQUFFOzs7b0JBQ2xCLGNBQWM7b0JBQ2Qsa0VBQWtFO29CQUNsRSxlQUFlO29CQUNmLHNFQUFzRTtvQkFDdEUsSUFBSTtvQkFFSixJQUFJLENBQUM7d0JBQ0gsRUFBRSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztvQkFDeEIsQ0FBQztvQkFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO3dCQUNoQixNQUFNLElBQUksNEJBQVksQ0FBQyx5Q0FBeUMsTUFBTSxNQUFNLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxDQUFDO29CQUM3RixDQUFDO29CQUVELE1BQVksU0FBUyxrQ0FBRyxNQUFNLHFDQUFvQixDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsQ0FBQyxPQUFBLENBQUM7b0JBRWhGLE1BQU0sV0FBVyxHQUFHLE1BQU0sU0FBUyxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDekQsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDO3dCQUN0QixHQUFHLE1BQU0sU0FBUyxDQUFDLGNBQWMsRUFBRTt3QkFDbkMsR0FBRyxLQUFLLENBQUMsR0FBRztxQkFDYixDQUFDLENBQUM7b0JBQ0gsT0FBTyxNQUFNLFNBQVMsQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsS0FBSyxDQUFDLFlBQVksRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxFQUFFO3dCQUN0RyxNQUFNLElBQUEseUJBQWtCLEVBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRTs0QkFDOUMsY0FBYyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUU7Z0NBQ25DLFFBQVEsSUFBSSxFQUFFLENBQUM7b0NBQ2IsS0FBSyxhQUFhO3dDQUNoQixNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQzt3Q0FDaEUsTUFBTTtvQ0FDUixLQUFLLGFBQWE7d0NBQ2hCLE1BQU0sUUFBUSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBRSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO3dDQUNoRSxNQUFNO2dDQUNWLENBQUM7NEJBQ0gsQ0FBQzs0QkFDRCxRQUFRLEVBQUUsY0FBYzs0QkFDeEIsR0FBRyxFQUFFLGdCQUFnQjt5QkFDdEIsQ0FBQyxDQUFDO3dCQUVILE1BQU0sR0FBRyxHQUFHLE1BQU0sSUFBQSxzQ0FBcUIsRUFBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQzt3QkFFOUYsTUFBTSxPQUFPLEdBQUcsTUFBTSxTQUFTLENBQUMsY0FBYyxFQUFFLENBQUM7d0JBQ2pELE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxhQUFhLElBQUksU0FBUyxDQUFDLGlCQUFpQixDQUFDO3dCQUMzRSxPQUFPLElBQUkseUNBQXFCLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxlQUFlLEVBQUUsQ0FBQyxDQUFDO29CQUMvRSxDQUFDLENBQUMsQ0FBQzs7Ozs7Ozs7Ozs7YUFDSjtTQUNGLEVBQ0Qsb0JBQW9CLENBQ3JCLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFwTUQsZ0VBb01DO0FBRUQ7O0dBRUc7QUFDSCxTQUFTLFdBQVcsQ0FBSSxFQUFxQjtJQUMzQyxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFRLENBQUM7QUFDM0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0IHR5cGUgeyBBc3NlbWJseURpcmVjdG9yeVByb3BzLCBBc3NlbWJseVNvdXJjZVByb3BzLCBJQ2xvdWRBc3NlbWJseVNvdXJjZSB9IGZyb20gJy4uLyc7XG5pbXBvcnQgdHlwZSB7IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcyB9IGZyb20gJy4vY29udGV4dC1hd2FyZS1zb3VyY2UnO1xuaW1wb3J0IHsgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVNvdXJjZSB9IGZyb20gJy4vY29udGV4dC1hd2FyZS1zb3VyY2UnO1xuaW1wb3J0IHsgZXhlY0luQ2hpbGRQcm9jZXNzIH0gZnJvbSAnLi9leGVjJztcbmltcG9ydCB7IEV4ZWN1dGlvbkVudmlyb25tZW50LCBhc3NlbWJseUZyb21EaXJlY3RvcnkgfSBmcm9tICcuL3ByZXBhcmUtc291cmNlJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciwgQXNzZW1ibHlFcnJvciB9IGZyb20gJy4uLy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgdHlwZSB7IEFzc2VtYmx5QnVpbGRlciwgRnJvbUNka0FwcE9wdGlvbnMgfSBmcm9tICcuLi9zb3VyY2UtYnVpbGRlcic7XG5pbXBvcnQgeyBSZWFkYWJsZUNsb3VkQXNzZW1ibHkgfSBmcm9tICcuL3JlYWRhYmxlLWFzc2VtYmx5JztcbmltcG9ydCB0eXBlIHsgVG9vbGtpdFNlcnZpY2VzIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC9wcml2YXRlJztcbmltcG9ydCB7IENvbnRleHQgfSBmcm9tICcuLi8uLi9jb250ZXh0JztcbmltcG9ydCB7IElPIH0gZnJvbSAnLi4vLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBSV0xvY2sgfSBmcm9tICcuLi8uLi9yd2xvY2snO1xuaW1wb3J0IHsgU2V0dGluZ3MgfSBmcm9tICcuLi8uLi9zZXR0aW5ncyc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDbG91ZEFzc2VtYmx5U291cmNlQnVpbGRlciB7XG4gIC8qKlxuICAgKiBIZWxwZXIgdG8gcHJvdmlkZSB0aGUgQ2xvdWRBc3NlbWJseVNvdXJjZUJ1aWxkZXIgd2l0aCByZXF1aXJlZCB0b29sa2l0IHNlcnZpY2VzXG4gICAqIEBpbnRlcm5hbFxuICAgKiBAZGVwcmVjYXRlZCB0aGlzIHNob3VsZCBtb3ZlIHRvIHRoZSB0b29sa2l0IHJlYWxseS5cbiAgICovXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBzb3VyY2VCdWlsZGVyU2VydmljZXMoKTogUHJvbWlzZTxUb29sa2l0U2VydmljZXM+O1xuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBDbG91ZCBBc3NlbWJseSBmcm9tIGEgQ2xvdWQgQXNzZW1ibHkgYnVpbGRlciBmdW5jdGlvbi5cbiAgICpcbiAgICogVGhlIG91dHB1dCBkaXJlY3Rvcnkgd2lsbCBiZSBldmFsdWF0ZWQgd2l0aCByZXNwZWN0IHRvIHRoZSB3b3JraW5nXG4gICAqIGRpcmVjdG9yeSBpZiByZWxhdGl2ZS4gSWYgbm90IGdpdmVuLCBpdCB3aWxsIHN5bnRoZXNpemUgaW50byBhIHRlbXBvcmFyeVxuICAgKiBzeXN0ZW0gZGlyZWN0b3J5LiBUaGUgdGVtcG9yYXJ5IGRpcmVjdG9yeSB3aWxsIGJlIGNsZWFuZWQgdXAsIHVubGVzc1xuICAgKiBgZGlzcG9zZU91dGRpcjogZmFsc2VgLlxuICAgKlxuICAgKiBBIHdyaXRlIGxvY2sgd2lsbCBiZSBhY3F1aXJlZCBvbiB0aGUgb3V0cHV0IGRpcmVjdG9yeSBmb3IgdGhlIGR1cmF0aW9uIG9mXG4gICAqIHRoZSBDREsgYXBwIHN5bnRoZXNpcyAod2hpY2ggbWVhbnMgdGhhdCBubyB0d28gYXBwcyBjYW4gc3ludGhlc2l6ZSBhdCB0aGVcbiAgICogc2FtZSB0aW1lKSwgYW5kIGFmdGVyIHN5bnRoZXNpcyBhIHJlYWQgbG9jayB3aWxsIGJlIGFjcXVpcmVkIG9uIHRoZVxuICAgKiBkaXJlY3RvcnkuIFRoaXMgbWVhbnMgdGhhdCB3aGlsZSB0aGUgQ2xvdWRBc3NlbWJseSBpcyBiZWluZyB1c2VkLCBubyBDREtcbiAgICogYXBwIHN5bnRoZXNpcyBjYW4gdGFrZSBwbGFjZSBpbnRvIHRoYXQgZGlyZWN0b3J5LlxuICAgKlxuICAgKiBAcGFyYW0gYnVpbGRlciAtIHRoZSBidWlsZGVyIGZ1bmN0aW9uXG4gICAqIEBwYXJhbSBwcm9wcyAtIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm5zIHRoZSBDbG91ZEFzc2VtYmx5IHNvdXJjZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZyb21Bc3NlbWJseUJ1aWxkZXIoXG4gICAgYnVpbGRlcjogQXNzZW1ibHlCdWlsZGVyLFxuICAgIHByb3BzOiBBc3NlbWJseVNvdXJjZVByb3BzID0ge30sXG4gICk6IFByb21pc2U8SUNsb3VkQXNzZW1ibHlTb3VyY2U+IHtcbiAgICBjb25zdCBzZXJ2aWNlcyA9IGF3YWl0IHRoaXMuc291cmNlQnVpbGRlclNlcnZpY2VzKCk7XG4gICAgY29uc3QgY29udGV4dCA9IG5ldyBDb250ZXh0KHsgYmFnOiBuZXcgU2V0dGluZ3MocHJvcHMuY29udGV4dCA/PyB7fSkgfSk7XG4gICAgY29uc3QgY29udGV4dEFzc2VtYmx5UHJvcHM6IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlQcm9wcyA9IHtcbiAgICAgIHNlcnZpY2VzLFxuICAgICAgY29udGV4dCxcbiAgICAgIGxvb2t1cHM6IHByb3BzLmxvb2t1cHMsXG4gICAgfTtcblxuICAgIGNvbnN0IHdvcmtpbmdEaXJlY3RvcnkgPSBwcm9wcy53b3JraW5nRGlyZWN0b3J5ID8/IHByb2Nlc3MuY3dkKCk7XG4gICAgY29uc3Qgb3V0ZGlyID0gcHJvcHMub3V0ZGlyID8gcGF0aC5yZXNvbHZlKHdvcmtpbmdEaXJlY3RvcnksIHByb3BzLm91dGRpcikgOiB1bmRlZmluZWQ7XG5cbiAgICByZXR1cm4gbmV3IENvbnRleHRBd2FyZUNsb3VkQXNzZW1ibHlTb3VyY2UoXG4gICAgICB7XG4gICAgICAgIHByb2R1Y2U6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICBhd2FpdCB1c2luZyBleGVjdXRpb24gPSBhd2FpdCBFeGVjdXRpb25FbnZpcm9ubWVudC5jcmVhdGUoc2VydmljZXMsIHsgb3V0ZGlyIH0pO1xuXG4gICAgICAgICAgY29uc3QgZW52ID0gYXdhaXQgZXhlY3V0aW9uLmRlZmF1bHRFbnZWYXJzKCk7XG4gICAgICAgICAgY29uc3QgYXNzZW1ibHkgPSBhd2FpdCBleGVjdXRpb24uY2hhbmdlRGlyKGFzeW5jICgpID0+XG4gICAgICAgICAgICBleGVjdXRpb24ud2l0aENvbnRleHQoY29udGV4dC5hbGwsIGVudiwgcHJvcHMuc3ludGhPcHRpb25zID8/IHt9LCBhc3luYyAoZW52V2l0aENvbnRleHQsIGN0eCkgPT5cbiAgICAgICAgICAgICAgZXhlY3V0aW9uLndpdGhFbnYoZW52V2l0aENvbnRleHQsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIGF3YWl0IGJ1aWxkZXIoe1xuICAgICAgICAgICAgICAgICAgICBvdXRkaXI6IGV4ZWN1dGlvbi5vdXRkaXIsXG4gICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IGN0eCxcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yOiB1bmtub3duKSB7XG4gICAgICAgICAgICAgICAgICAvLyByZS10aHJvdyB0b29sa2l0IGVycm9ycyB1bmNoYW5nZWRcbiAgICAgICAgICAgICAgICAgIGlmIChUb29sa2l0RXJyb3IuaXNUb29sa2l0RXJyb3IoZXJyb3IpKSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgLy8gb3RoZXJ3aXNlLCB3cmFwIGludG8gYW4gYXNzZW1ibHkgZXJyb3JcbiAgICAgICAgICAgICAgICAgIHRocm93IEFzc2VtYmx5RXJyb3Iud2l0aENhdXNlKCdBc3NlbWJseSBidWlsZGVyIGZhaWxlZCcsIGVycm9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKSwgd29ya2luZ0RpcmVjdG9yeSk7XG5cbiAgICAgICAgICAvLyBDb252ZXJ0IHdoYXQgd2UgZ290IHRvIHRoZSBkZWZpbml0ZWx5IGNvcnJlY3QgdHlwZSB3ZSdyZSBleHBlY3RpbmcsIGEgY3hhcGkuQ2xvdWRBc3NlbWJseVxuICAgICAgICAgIGNvbnN0IGFzbSA9IGN4YXBpLkNsb3VkQXNzZW1ibHkuaXNDbG91ZEFzc2VtYmx5KGFzc2VtYmx5KVxuICAgICAgICAgICAgPyBhc3NlbWJseVxuICAgICAgICAgICAgOiBhd2FpdCBhc3NlbWJseUZyb21EaXJlY3RvcnkoYXNzZW1ibHkuZGlyZWN0b3J5LCBzZXJ2aWNlcy5pb0hlbHBlciwgcHJvcHMubG9hZEFzc2VtYmx5T3B0aW9ucyk7XG5cbiAgICAgICAgICBjb25zdCBzdWNjZXNzID0gYXdhaXQgZXhlY3V0aW9uLm1hcmtTdWNjZXNzZnVsKCk7XG4gICAgICAgICAgY29uc3QgZGVsZXRlT25EaXNwb3NlID0gcHJvcHMuZGlzcG9zZU91dGRpciA/PyBleGVjdXRpb24ub3V0RGlySXNUZW1wb3Jhcnk7XG4gICAgICAgICAgcmV0dXJuIG5ldyBSZWFkYWJsZUNsb3VkQXNzZW1ibHkoYXNtLCBzdWNjZXNzLnJlYWRMb2NrLCB7IGRlbGV0ZU9uRGlzcG9zZSB9KTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjb250ZXh0QXNzZW1ibHlQcm9wcyxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBDbG91ZCBBc3NlbWJseSBmcm9tIGFuIGV4aXN0aW5nIGFzc2VtYmx5IGRpcmVjdG9yeS5cbiAgICpcbiAgICogQSByZWFkIGxvY2sgd2lsbCBiZSBhY3F1aXJlZCBmb3IgdGhlIGRpcmVjdG9yeS4gVGhpcyBtZWFucyB0aGF0IHdoaWxlXG4gICAqIHRoZSBDbG91ZEFzc2VtYmx5IGlzIGJlaW5nIHVzZWQsIG5vIENESyBhcHAgc3ludGhlc2lzIGNhbiB0YWtlIHBsYWNlIGludG9cbiAgICogdGhhdCBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBwYXJhbSBkaXJlY3RvcnkgLSBkaXJlY3RvcnkgdGhlIGRpcmVjdG9yeSBvZiBhIGFscmVhZHkgcHJvZHVjZWQgQ2xvdWQgQXNzZW1ibHkuXG4gICAqIEByZXR1cm5zIHRoZSBDbG91ZEFzc2VtYmx5IHNvdXJjZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZyb21Bc3NlbWJseURpcmVjdG9yeShkaXJlY3Rvcnk6IHN0cmluZywgcHJvcHM6IEFzc2VtYmx5RGlyZWN0b3J5UHJvcHMgPSB7fSk6IFByb21pc2U8SUNsb3VkQXNzZW1ibHlTb3VyY2U+IHtcbiAgICBjb25zdCBzZXJ2aWNlczogVG9vbGtpdFNlcnZpY2VzID0gYXdhaXQgdGhpcy5zb3VyY2VCdWlsZGVyU2VydmljZXMoKTtcbiAgICBjb25zdCBjb250ZXh0QXNzZW1ibHlQcm9wczogQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVByb3BzID0ge1xuICAgICAgc2VydmljZXMsXG4gICAgICBjb250ZXh0OiBuZXcgQ29udGV4dCgpLCAvLyBAdG9kbyB0aGVyZSBpcyBwcm9iYWJseSBhIGRpZmZlcmVuY2UgYmV0d2VlbiBjb250ZXh0YXdhcmUgYW5kIGNvbnRleHRsb29rdXAgc291cmNlc1xuICAgICAgbG9va3VwczogZmFsc2UsXG4gICAgfTtcblxuICAgIHJldHVybiBuZXcgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVNvdXJjZShcbiAgICAgIHtcbiAgICAgICAgcHJvZHVjZTogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIC8vIEB0b2RvIGJ1aWxkXG4gICAgICAgICAgYXdhaXQgc2VydmljZXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19BU1NFTUJMWV9JMDE1MC5tc2coJy0tYXBwIHBvaW50cyB0byBhIGNsb3VkIGFzc2VtYmx5LCBzbyB3ZSBieXBhc3Mgc3ludGgnKSk7XG5cbiAgICAgICAgICBjb25zdCByZWFkTG9jayA9IGF3YWl0IG5ldyBSV0xvY2soZGlyZWN0b3J5KS5hY3F1aXJlUmVhZCgpO1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBjb25zdCBhc20gPSBhd2FpdCBhc3NlbWJseUZyb21EaXJlY3RvcnkoZGlyZWN0b3J5LCBzZXJ2aWNlcy5pb0hlbHBlciwgcHJvcHMubG9hZEFzc2VtYmx5T3B0aW9ucyk7XG4gICAgICAgICAgICByZXR1cm4gbmV3IFJlYWRhYmxlQ2xvdWRBc3NlbWJseShhc20sIHJlYWRMb2NrLCB7IGRlbGV0ZU9uRGlzcG9zZTogZmFsc2UgfSk7XG4gICAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgYXdhaXQgcmVhZExvY2sucmVsZWFzZSgpO1xuICAgICAgICAgICAgdGhyb3cgZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgY29udGV4dEFzc2VtYmx5UHJvcHMsXG4gICAgKTtcbiAgfVxuICAvKipcbiAgICogVXNlIGEgZGlyZWN0b3J5IGNvbnRhaW5pbmcgYW4gQVdTIENESyBhcHAgYXMgc291cmNlLlxuICAgKlxuICAgKiBUaGUgb3V0cHV0IGRpcmVjdG9yeSB3aWxsIGJlIGV2YWx1YXRlZCB3aXRoIHJlc3BlY3QgdG8gdGhlIHdvcmtpbmdcbiAgICogZGlyZWN0b3J5IGlmIHJlbGF0aXZlLiBJZiBub3QgZ2l2ZW4sIGl0IHdpbGwgc3ludGhlc2l6ZSBpbnRvIGEgYGNkay5vdXRgXG4gICAqIHN1YmRpcmVjdG9yeS4gVGhpcyBkaXJlY3Rvcnkgd2lsbCBub3QgYmUgY2xlYW5lZCB1cCwgdW5sZXNzXG4gICAqIGBkaXNwb3NlT3V0ZGlyOiB0cnVlYC5cbiAgICpcbiAgICogQSB3cml0ZSBsb2NrIHdpbGwgYmUgYWNxdWlyZWQgb24gdGhlIG91dHB1dCBkaXJlY3RvcnkgZm9yIHRoZSBkdXJhdGlvbiBvZlxuICAgKiB0aGUgQ0RLIGFwcCBzeW50aGVzaXMgKHdoaWNoIG1lYW5zIHRoYXQgbm8gdHdvIGFwcHMgY2FuIHN5bnRoZXNpemUgYXQgdGhlXG4gICAqIHNhbWUgdGltZSksIGFuZCBhZnRlciBzeW50aGVzaXMgYSByZWFkIGxvY2sgd2lsbCBiZSBhY3F1aXJlZCBvbiB0aGVcbiAgICogZGlyZWN0b3J5LiAgVGhpcyBtZWFucyB0aGF0IHdoaWxlIHRoZSBDbG91ZEFzc2VtYmx5IGlzIGJlaW5nIHVzZWQsIG5vIENES1xuICAgKiBhcHAgc3ludGhlc2lzIGNhbiB0YWtlIHBsYWNlIGludG8gdGhhdCBkaXJlY3RvcnkuXG4gICAqXG4gICAqIEBwYXJhbSBwcm9wcyAtIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzXG4gICAqIEByZXR1cm5zIHRoZSBDbG91ZEFzc2VtYmx5IHNvdXJjZVxuICAgKi9cbiAgcHVibGljIGFzeW5jIGZyb21DZGtBcHAoYXBwOiBzdHJpbmcsIHByb3BzOiBGcm9tQ2RrQXBwT3B0aW9ucyA9IHt9KTogUHJvbWlzZTxJQ2xvdWRBc3NlbWJseVNvdXJjZT4ge1xuICAgIGNvbnN0IHNlcnZpY2VzOiBUb29sa2l0U2VydmljZXMgPSBhd2FpdCB0aGlzLnNvdXJjZUJ1aWxkZXJTZXJ2aWNlcygpO1xuICAgIC8vIEB0b2RvIHRoaXMgZGVmaW5pdGVseSBuZWVkcyB0byByZWFkIGZpbGVzIGZyb20gdGhlIENXRFxuICAgIGNvbnN0IGNvbnRleHQgPSBuZXcgQ29udGV4dCh7IGJhZzogbmV3IFNldHRpbmdzKHByb3BzLmNvbnRleHQgPz8ge30pIH0pO1xuICAgIGNvbnN0IGNvbnRleHRBc3NlbWJseVByb3BzOiBDb250ZXh0QXdhcmVDbG91ZEFzc2VtYmx5UHJvcHMgPSB7XG4gICAgICBzZXJ2aWNlcyxcbiAgICAgIGNvbnRleHQsXG4gICAgICBsb29rdXBzOiBwcm9wcy5sb29rdXBzLFxuICAgIH07XG5cbiAgICBjb25zdCB3b3JraW5nRGlyZWN0b3J5ID0gcHJvcHMud29ya2luZ0RpcmVjdG9yeSA/PyBwcm9jZXNzLmN3ZCgpO1xuICAgIGNvbnN0IG91dGRpciA9IHBhdGgucmVzb2x2ZSh3b3JraW5nRGlyZWN0b3J5LCBwcm9wcy5vdXRkaXIgPz8gJ2Nkay5vdXQnKTtcblxuICAgIHJldHVybiBuZXcgQ29udGV4dEF3YXJlQ2xvdWRBc3NlbWJseVNvdXJjZShcbiAgICAgIHtcbiAgICAgICAgcHJvZHVjZTogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIC8vIEB0b2RvIGJ1aWxkXG4gICAgICAgICAgLy8gY29uc3QgYnVpbGQgPSB0aGlzLnByb3BzLmNvbmZpZ3VyYXRpb24uc2V0dGluZ3MuZ2V0KFsnYnVpbGQnXSk7XG4gICAgICAgICAgLy8gaWYgKGJ1aWxkKSB7XG4gICAgICAgICAgLy8gICBhd2FpdCBleGVjSW5DaGlsZFByb2Nlc3MoYnVpbGQsIHsgY3dkOiBwcm9wcy53b3JraW5nRGlyZWN0b3J5IH0pO1xuICAgICAgICAgIC8vIH1cblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICBmcy5ta2RpcnBTeW5jKG91dGRpcik7XG4gICAgICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGBDb3VsZCBub3QgY3JlYXRlIG91dHB1dCBkaXJlY3RvcnkgYXQgJyR7b3V0ZGlyfScgKCR7ZS5tZXNzYWdlfSkuYCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYXdhaXQgdXNpbmcgZXhlY3V0aW9uID0gYXdhaXQgRXhlY3V0aW9uRW52aXJvbm1lbnQuY3JlYXRlKHNlcnZpY2VzLCB7IG91dGRpciB9KTtcblxuICAgICAgICAgIGNvbnN0IGNvbW1hbmRMaW5lID0gYXdhaXQgZXhlY3V0aW9uLmd1ZXNzRXhlY3V0YWJsZShhcHApO1xuICAgICAgICAgIGNvbnN0IGVudiA9IG5vVW5kZWZpbmVkKHtcbiAgICAgICAgICAgIC4uLmF3YWl0IGV4ZWN1dGlvbi5kZWZhdWx0RW52VmFycygpLFxuICAgICAgICAgICAgLi4ucHJvcHMuZW52LFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBhd2FpdCBleGVjdXRpb24ud2l0aENvbnRleHQoY29udGV4dC5hbGwsIGVudiwgcHJvcHMuc3ludGhPcHRpb25zLCBhc3luYyAoZW52V2l0aENvbnRleHQsIF9jdHgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IGV4ZWNJbkNoaWxkUHJvY2Vzcyhjb21tYW5kTGluZS5qb2luKCcgJyksIHtcbiAgICAgICAgICAgICAgZXZlbnRQdWJsaXNoZXI6IGFzeW5jICh0eXBlLCBsaW5lKSA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICAgICAgICAgICAgICBjYXNlICdkYXRhX3N0ZG91dCc6XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTEwMDEubXNnKGxpbmUpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICBjYXNlICdkYXRhX3N0ZGVycic6XG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNlcnZpY2VzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfRTEwMDIubXNnKGxpbmUpKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBleHRyYUVudjogZW52V2l0aENvbnRleHQsXG4gICAgICAgICAgICAgIGN3ZDogd29ya2luZ0RpcmVjdG9yeSxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICBjb25zdCBhc20gPSBhd2FpdCBhc3NlbWJseUZyb21EaXJlY3Rvcnkob3V0ZGlyLCBzZXJ2aWNlcy5pb0hlbHBlciwgcHJvcHMubG9hZEFzc2VtYmx5T3B0aW9ucyk7XG5cbiAgICAgICAgICAgIGNvbnN0IHN1Y2Nlc3MgPSBhd2FpdCBleGVjdXRpb24ubWFya1N1Y2Nlc3NmdWwoKTtcbiAgICAgICAgICAgIGNvbnN0IGRlbGV0ZU9uRGlzcG9zZSA9IHByb3BzLmRpc3Bvc2VPdXRkaXIgPz8gZXhlY3V0aW9uLm91dERpcklzVGVtcG9yYXJ5O1xuICAgICAgICAgICAgcmV0dXJuIG5ldyBSZWFkYWJsZUNsb3VkQXNzZW1ibHkoYXNtLCBzdWNjZXNzLnJlYWRMb2NrLCB7IGRlbGV0ZU9uRGlzcG9zZSB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBjb250ZXh0QXNzZW1ibHlQcm9wcyxcbiAgICApO1xuICB9XG59XG5cbi8qKlxuICogUmVtb3ZlIHVuZGVmaW5lZCB2YWx1ZXMgZnJvbSBhIGRpY3Rpb25hcnlcbiAqL1xuZnVuY3Rpb24gbm9VbmRlZmluZWQ8QT4oeHM6IFJlY29yZDxzdHJpbmcsIEE+KTogUmVjb3JkPHN0cmluZywgTm9uTnVsbGFibGU8QT4+IHtcbiAgcmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyh4cykuZmlsdGVyKChbXywgdl0pID0+IHYgIT09IHVuZGVmaW5lZCkpIGFzIGFueTtcbn1cbiJdfQ==
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StackAssembly = void 0;
4
4
  require("../../../private/dispose-polyfill");
5
5
  const semver_1 = require("semver");
6
- const shared_public_1 = require("../../shared-public");
6
+ const toolkit_error_1 = require("../../../toolkit/toolkit-error");
7
7
  const stack_assembly_1 = require("../stack-assembly");
8
8
  const stack_collection_1 = require("../stack-collection");
9
9
  const stack_selector_1 = require("../stack-selector");
@@ -38,7 +38,7 @@ class StackAssembly extends stack_assembly_1.BaseStackAssembly {
38
38
  const topLevelStacks = asm.stacks;
39
39
  const allStacks = (0, semver_1.major)(asm.version) < 10 ? asm.stacks : asm.stacksRecursively;
40
40
  if (allStacks.length === 0 && (selector.failOnEmpty ?? true)) {
41
- throw new shared_public_1.ToolkitError('This app contains no stacks');
41
+ throw new toolkit_error_1.ToolkitError('This app contains no stacks');
42
42
  }
43
43
  const extend = expandToExtendEnum(selector.expand);
44
44
  const patterns = StackAssembly.sanitizePatterns(selector.patterns ?? []);
@@ -48,13 +48,13 @@ class StackAssembly extends stack_assembly_1.BaseStackAssembly {
48
48
  case stack_selector_1.StackSelectionStrategy.MAIN_ASSEMBLY:
49
49
  if (topLevelStacks.length < 1) {
50
50
  // @todo text should probably be handled in io host
51
- throw new shared_public_1.ToolkitError('No stack found in the main cloud assembly. Use "list" to print manifest');
51
+ throw new toolkit_error_1.ToolkitError('No stack found in the main cloud assembly. Use "list" to print manifest');
52
52
  }
53
53
  return this.extendStacks(topLevelStacks, allStacks, extend);
54
54
  case stack_selector_1.StackSelectionStrategy.ONLY_SINGLE:
55
55
  if (topLevelStacks.length !== 1) {
56
56
  // @todo text should probably be handled in io host
57
- throw new shared_public_1.ToolkitError('Since this app includes more than a single stack, specify which stacks to use (wildcards are supported) or specify `--all`\n' +
57
+ throw new toolkit_error_1.ToolkitError('Since this app includes more than a single stack, specify which stacks to use (wildcards are supported) or specify `--all`\n' +
58
58
  `Stacks: ${allStacks.map(x => x.hierarchicalId).join(' · ')}`);
59
59
  }
60
60
  return new stack_collection_1.StackCollection(this, topLevelStacks);
@@ -63,12 +63,12 @@ class StackAssembly extends stack_assembly_1.BaseStackAssembly {
63
63
  if (selector.strategy === stack_selector_1.StackSelectionStrategy.PATTERN_MUST_MATCH_SINGLE
64
64
  && matched.stackCount !== 1) {
65
65
  // @todo text should probably be handled in io host
66
- throw new shared_public_1.ToolkitError(`Stack selection is ambiguous, please choose a specific stack for import [${allStacks.map(x => x.hierarchicalId).join(',')}]`);
66
+ throw new toolkit_error_1.ToolkitError(`Stack selection is ambiguous, please choose a specific stack for import [${allStacks.map(x => x.hierarchicalId).join(',')}]`);
67
67
  }
68
68
  if (selector.strategy === stack_selector_1.StackSelectionStrategy.PATTERN_MUST_MATCH
69
69
  && matched.stackCount < 1) {
70
70
  // @todo text should probably be handled in io host
71
- throw new shared_public_1.ToolkitError(`Stack selection is ambiguous, please choose a specific stack for import [${allStacks.map(x => x.hierarchicalId).join(',')}]`);
71
+ throw new toolkit_error_1.ToolkitError(`Stack selection is ambiguous, please choose a specific stack for import [${allStacks.map(x => x.hierarchicalId).join(',')}]`);
72
72
  }
73
73
  return matched;
74
74
  }
@@ -107,4 +107,4 @@ function expandToExtendEnum(extend) {
107
107
  return undefined;
108
108
  }
109
109
  }
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMkM7QUFDM0MsbUNBQStCO0FBRS9CLHVEQUFtRDtBQUNuRCxzREFBMkc7QUFDM0csMERBQXNEO0FBRXRELHNEQUFpRjtBQUdqRjs7R0FFRztBQUNILE1BQWEsYUFBYyxTQUFRLGtDQUFpQjtJQUNyQjtJQUE3QixZQUE2QixJQUE0QixFQUFFLFFBQWtCO1FBQzNFLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRFQsU0FBSSxHQUFKLElBQUksQ0FBd0I7SUFFekQsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBdUI7UUFDakQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMxQixNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUEsY0FBSyxFQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdB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Q0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHlCQUF5QjtRQUM5QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekMsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Q0FDRjtBQXBHRCxzQ0FvR0M7QUFFRCxTQUFTLGtCQUFrQixDQUFDLE1BQTZCO0lBQ3ZELFFBQVEsTUFBTSxFQUFFLENBQUM7UUFDZixLQUFLLHFDQUFvQixDQUFDLFVBQVU7WUFDbEMsT0FBTyx1Q0FBeUIsQ0FBQyxVQUFVLENBQUM7UUFDOUMsS0FBSyxxQ0FBb0IsQ0FBQyxRQUFRO1lBQ2hDLE9BQU8sdUNBQXlCLENBQUMsUUFBUSxDQUFDO1FBQzVDLEtBQUsscUNBQW9CLENBQUMsSUFBSTtZQUM1QixPQUFPLHVDQUF5QixDQUFDLElBQUksQ0FBQztRQUN4QztZQUNFLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuLi8uLi8uLi9wcml2YXRlL2Rpc3Bvc2UtcG9seWZpbGwnO1xuaW1wb3J0IHsgbWFqb3IgfSBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uLy4uL3NoYXJlZC1wcml2YXRlJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3NoYXJlZC1wdWJsaWMnO1xuaW1wb3J0IHsgQmFzZVN0YWNrQXNzZW1ibHksIEV4dGVuZGVkU3RhY2tTZWxlY3Rpb24gYXMgQ2xpRXh0ZW5kZWRTdGFja1NlbGVjdGlvbiB9IGZyb20gJy4uL3N0YWNrLWFzc2VtYmx5JztcbmltcG9ydCB7IFN0YWNrQ29sbGVjdGlvbiB9IGZyb20gJy4uL3N0YWNrLWNvbGxlY3Rpb24nO1xuaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vc3RhY2stc2VsZWN0b3InO1xuaW1wb3J0IHsgRXhwYW5kU3RhY2tTZWxlY3Rpb24sIFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kgfSBmcm9tICcuLi9zdGFjay1zZWxlY3Rvcic7XG5pbXBvcnQgdHlwZSB7IElSZWFkYWJsZUNsb3VkQXNzZW1ibHkgfSBmcm9tICcuLi90eXBlcyc7XG5cbi8qKlxuICogQSBzaW5nbGUgQ2xvdWQgQXNzZW1ibHkgd3JhcHBlZCB0byBwcm92aWRlIGFkZGl0aW9uYWwgc3RhY2sgb3BlcmF0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0YWNrQXNzZW1ibHkgZXh0ZW5kcyBCYXNlU3RhY2tBc3NlbWJseSBpbXBsZW1lbnRzIElSZWFkYWJsZUNsb3VkQXNzZW1ibHkge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9hc206IElSZWFkYWJsZUNsb3VkQXNzZW1ibHksIGlvSGVscGVyOiBJb0hlbHBlcikge1xuICAgIHN1cGVyKF9hc20uY2xvdWRBc3NlbWJseSwgaW9IZWxwZXIpO1xuICB9XG5cbiAgcHVibGljIGdldCBjbG91ZEFzc2VtYmx5KCkge1xuICAgIHJldHVybiB0aGlzLl9hc20uY2xvdWRBc3NlbWJseTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBfdW5sb2NrKCkge1xuICAgIHJldHVybiB0aGlzLl9hc20uX3VubG9jaygpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc3Bvc2UoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FzbS5kaXNwb3NlKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgW1N5bWJvbC5hc3luY0Rpc3Bvc2VdKCkge1xuICAgIHJldHVybiB0aGlzLmRpc3Bvc2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXByb3ZlZCBzdGFjayBzZWxlY3Rpb24gaW50ZXJmYWNlIHdpdGggYSBzaW5nbGUgc2VsZWN0b3JcbiAgICogQHRocm93cyB3aGVuIHRoZSBhc3NlbWJseSBkb2VzIG5vdCBjb250YWluIGFueSBzdGFja3MsIHVubGVzcyBgc2VsZWN0b3IuZmFpbE9uRW1wdHlgIGlzIGBmYWxzZWBcbiAgICogQHRocm93cyB3aGVuIGluZGl2aWR1YWwgc2VsZWN0aW9uIHN0cmF0ZWdpZXMgYXJlIG5vdCBzYXRpc2ZpZWRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzZWxlY3RTdGFja3NWMihzZWxlY3RvcjogU3RhY2tTZWxlY3Rvcik6IFByb21pc2U8U3RhY2tDb2xsZWN0aW9uPiB7XG4gICAgY29uc3QgYXNtID0gdGhpcy5hc3NlbWJseTtcbiAgICBjb25zdCB0b3BMZXZlbFN0YWNrcyA9IGFzbS5zdGFja3M7XG4gICAgY29uc3QgYWxsU3RhY2tzID0gbWFqb3IoYXNtLnZlcnNpb24pIDwgMTAgPyBhc20uc3RhY2tzIDogYXNtLnN0YWNrc1JlY3Vyc2l2ZWx5O1xuXG4gICAgaWYgKGFsbFN0YWNrcy5sZW5ndGggPT09IDAgJiYgKHNlbGVjdG9yLmZhaWxPbkVtcHR5ID8/IHRydWUpKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdUaGlzIGFwcCBjb250YWlucyBubyBzdGFja3MnKTtcbiAgICB9XG5cbiAgICBjb25zdCBleHRlbmQgPSBleHBhbmRUb0V4dGVuZEVudW0oc2VsZWN0b3IuZXhwYW5kKTtcbiAgICBjb25zdCBwYXR0ZXJucyA9IFN0YWNrQXNzZW1ibHkuc2FuaXRpemVQYXR0ZXJucyhzZWxlY3Rvci5wYXR0ZXJucyA/PyBbXSk7XG5cbiAgICBzd2l0Y2ggKHNlbGVjdG9yLnN0cmF0ZWd5KSB7XG4gICAgICBjYXNlIFN0YWNrU2VsZWN0aW9uU3RyYXRlZ3kuQUxMX1NUQUNLUzpcbiAgICAgICAgcmV0dXJuIG5ldyBTdGFja0NvbGxlY3Rpb24odGhpcywgYWxsU3RhY2tzKTtcbiAgICAgIGNhc2UgU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5NQUlOX0FTU0VNQkxZOlxuICAgICAgICBpZiAodG9wTGV2ZWxTdGFja3MubGVuZ3RoIDwgMSkge1xuICAgICAgICAgIC8vIEB0b2RvIHRleHQgc2hvdWxkIHByb2JhYmx5IGJlIGhhbmRsZWQgaW4gaW8gaG9zdFxuICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ05vIHN0YWNrIGZvdW5kIGluIHRoZSBtYWluIGNsb3VkIGFzc2VtYmx5LiBVc2UgXCJsaXN0XCIgdG8gcHJpbnQgbWFuaWZlc3QnKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5leHRlbmRTdGFja3ModG9wTGV2ZWxTdGFja3MsIGFsbFN0YWNrcywgZXh0ZW5kKTtcbiAgICAgIGNhc2UgU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5PTkxZX1NJTkdMRTpcbiAgICAgICAgaWYgKHRvcExldmVsU3RhY2tzLmxlbmd0aCAhPT0gMSkge1xuICAgICAgICAgIC8vIEB0b2RvIHRleHQgc2hvdWxkIHByb2JhYmx5IGJlIGhhbmRsZWQgaW4gaW8gaG9zdFxuICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1NpbmNlIHRoaXMgYXBwIGluY2x1ZGVzIG1vcmUgdGhhbiBhIHNpbmdsZSBzdGFjaywgc3BlY2lmeSB3aGljaCBzdGFja3MgdG8gdXNlICh3aWxkY2FyZHMgYXJlIHN1cHBvcnRlZCkgb3Igc3BlY2lmeSBgLS1hbGxgXFxuJyArXG4gICAgICAgICAgYFN0YWNrczogJHthbGxTdGFja3MubWFwKHggPT4geC5oaWVyYXJjaGljYWxJZCkuam9pbignIMK3ICcpfWApO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBuZXcgU3RhY2tDb2xsZWN0aW9uKHRoaXMsIHRvcExldmVsU3RhY2tzKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnN0IG1hdGNoZWQgPSBhd2FpdCB0aGlzLnNlbGVjdE1hdGNoaW5nU3RhY2tzKGFsbFN0YWNrcywgcGF0dGVybnMsIGV4dGVuZCk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBzZWxlY3Rvci5zdHJhdGVneSA9PT0gU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5QQVRURVJOX01VU1RfTUFUQ0hfU0lOR0xFXG4gICAgICAgICAgJiYgbWF0Y2hlZC5zdGFja0NvdW50ICE9PSAxXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIEB0b2RvIHRleHQgc2hvdWxkIHByb2JhYmx5IGJlIGhhbmRsZWQgaW4gaW8gaG9zdFxuICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAgICAgICBgU3RhY2sgc2VsZWN0aW9uIGlzIGFtYmlndW91cywgcGxlYXNlIGNob29zZSBhIHNwZWNpZmljIHN0YWNrIGZvciBpbXBvcnQgWyR7YWxsU3RhY2tzLm1hcCh4ID0+IHguaGllcmFyY2hpY2FsSWQpLmpvaW4oJywnKX1dYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICBzZWxlY3Rvci5zdHJhdGVneSA9PT0gU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5QQVRURVJOX01VU1RfTUFUQ0hcbiAgICAgICAgICAmJiBtYXRjaGVkLnN0YWNrQ291bnQgPCAxXG4gICAgICAgICkge1xuICAgICAgICAgIC8vIEB0b2RvIHRleHQgc2hvdWxkIHByb2JhYmx5IGJlIGhhbmRsZWQgaW4gaW8gaG9zdFxuICAgICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAgICAgICBgU3RhY2sgc2VsZWN0aW9uIGlzIGFtYmlndW91cywgcGxlYXNlIGNob29zZSBhIHNwZWNpZmljIHN0YWNrIGZvciBpbXBvcnQgWyR7YWxsU3RhY2tzLm1hcCh4ID0+IHguaGllcmFyY2hpY2FsSWQpLmpvaW4oJywnKX1dYCxcbiAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG1hdGNoZWQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhbGwgc3RhY2tzLlxuICAgKlxuICAgKiBUaGlzIG1ldGhvZCBuZXZlciB0aHJvd3MgYW5kIGNhbiBzYWZlbHkgYmUgdXNlZCBhcyBhIGJhc2lzIGZvciBvdGhlciBjYWxjdWxhdGlvbnMuXG4gICAqXG4gICAqIEByZXR1cm5zIGEgYFN0YWNrQ29sbGVjdGlvbmAgb2YgYWxsIHN0YWNrc1xuICAgKi9cbiAgcHVibGljIHNlbGVjdEFsbFN0YWNrcygpIHtcbiAgICBjb25zdCBhbGxTdGFja3MgPSBtYWpvcih0aGlzLmFzc2VtYmx5LnZlcnNpb24pIDwgMTAgPyB0aGlzLmFzc2VtYmx5LnN0YWNrcyA6IHRoaXMuYXNzZW1ibHkuc3RhY2tzUmVjdXJzaXZlbHk7XG4gICAgcmV0dXJuIG5ldyBTdGFja0NvbGxlY3Rpb24odGhpcywgYWxsU3RhY2tzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3QgYWxsIHN0YWNrcyB0aGF0IGhhdmUgdGhlIHZhbGlkYXRlT25TeW50aCBmbGFnIGV0LlxuICAgKlxuICAgKiBAcmV0dXJucyBhIGBTdGFja0NvbGxlY3Rpb25gIG9mIGFsbCBzdGFja3MgdGhhdCBuZWVkcyB0byBiZSB2YWxpZGF0ZWRcbiAgICovXG4gIHB1YmxpYyBzZWxlY3RTdGFja3NGb3JWYWxpZGF0aW9uKCkge1xuICAgIGNvbnN0IGFsbFN0YWNrcyA9IHRoaXMuc2VsZWN0QWxsU3RhY2tzKCk7XG4gICAgcmV0dXJuIGFsbFN0YWNrcy5maWx0ZXIoKGFydCkgPT4gYXJ0LnZhbGlkYXRlT25TeW50aCA/PyBmYWxzZSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZXhwYW5kVG9FeHRlbmRFbnVtKGV4dGVuZD86IEV4cGFuZFN0YWNrU2VsZWN0aW9uKTogQ2xpRXh0ZW5kZWRTdGFja1NlbGVjdGlvbiB8IHVuZGVmaW5lZCB7XG4gIHN3aXRjaCAoZXh0ZW5kKSB7XG4gICAgY2FzZSBFeHBhbmRTdGFja1NlbGVjdGlvbi5ET1dOU1RSRUFNOlxuICAgICAgcmV0dXJuIENsaUV4dGVuZGVkU3RhY2tTZWxlY3Rpb24uRG93bnN0cmVhbTtcbiAgICBjYXNlIEV4cGFuZFN0YWNrU2VsZWN0aW9uLlVQU1RSRUFNOlxuICAgICAgcmV0dXJuIENsaUV4dGVuZGVkU3RhY2tTZWxlY3Rpb24uVXBzdHJlYW07XG4gICAgY2FzZSBFeHBhbmRTdGFja1NlbGVjdGlvbi5OT05FOlxuICAgICAgcmV0dXJuIENsaUV4dGVuZGVkU3RhY2tTZWxlY3Rpb24uTm9uZTtcbiAgICBkZWZhdWx0OlxuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIl19
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stYXNzZW1ibHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzdGFjay1hc3NlbWJseS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2Q0FBMkM7QUFDM0MsbUNBQStCO0FBQy9CLGtFQUE4RDtBQUU5RCxzREFBMkc7QUFDM0csMERBQXNEO0FBRXRELHNEQUFpRjtBQUdqRjs7R0FFRztBQUNILE1BQWEsYUFBYyxTQUFRLGtDQUFpQjtJQUNyQjtJQUE3QixZQUE2QixJQUE0QixFQUFFLFFBQWtCO1FBQzNFLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBRFQsU0FBSSxHQUFKLElBQUksQ0FBd0I7SUFFekQsQ0FBQztJQUVELElBQVcsYUFBYTtRQUN0QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQ2pDLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTztRQUNsQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUFPO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRU0sS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztRQUNoQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLEtBQUssQ0FBQyxjQUFjLENBQUMsUUFBdUI7UUFDakQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMxQixNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUEsY0FBSyxFQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdB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Q0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLHlCQUF5QjtRQUM5QixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDekMsT0FBTyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUM7Q0FDRjtBQXBHRCxzQ0FvR0M7QUFFRCxTQUFTLGtCQUFrQixDQUFDLE1BQTZCO0lBQ3ZELFFBQVEsTUFBTSxFQUFFLENBQUM7UUFDZixLQUFLLHFDQUFvQixDQUFDLFVBQVU7WUFDbEMsT0FBTyx1Q0FBeUIsQ0FBQyxVQUFVLENBQUM7UUFDOUMsS0FBSyxxQ0FBb0IsQ0FBQyxRQUFRO1lBQ2hDLE9BQU8sdUNBQXlCLENBQUMsUUFBUSxDQUFDO1FBQzVDLEtBQUsscUNBQW9CLENBQUMsSUFBSTtZQUM1QixPQUFPLHVDQUF5QixDQUFDLElBQUksQ0FBQztRQUN4QztZQUNFLE9BQU8sU0FBUyxDQUFDO0lBQ3JCLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuLi8uLi8uLi9wcml2YXRlL2Rpc3Bvc2UtcG9seWZpbGwnO1xuaW1wb3J0IHsgbWFqb3IgfSBmcm9tICdzZW12ZXInO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi8uLi9zaGFyZWQtcHJpdmF0ZSc7XG5pbXBvcnQgeyBCYXNlU3RhY2tBc3NlbWJseSwgRXh0ZW5kZWRTdGFja1NlbGVjdGlvbiBhcyBDbGlFeHRlbmRlZFN0YWNrU2VsZWN0aW9uIH0gZnJvbSAnLi4vc3RhY2stYXNzZW1ibHknO1xuaW1wb3J0IHsgU3RhY2tDb2xsZWN0aW9uIH0gZnJvbSAnLi4vc3RhY2stY29sbGVjdGlvbic7XG5pbXBvcnQgdHlwZSB7IFN0YWNrU2VsZWN0b3IgfSBmcm9tICcuLi9zdGFjay1zZWxlY3Rvcic7XG5pbXBvcnQgeyBFeHBhbmRTdGFja1NlbGVjdGlvbiwgU3RhY2tTZWxlY3Rpb25TdHJhdGVneSB9IGZyb20gJy4uL3N0YWNrLXNlbGVjdG9yJztcbmltcG9ydCB0eXBlIHsgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB9IGZyb20gJy4uL3R5cGVzJztcblxuLyoqXG4gKiBBIHNpbmdsZSBDbG91ZCBBc3NlbWJseSB3cmFwcGVkIHRvIHByb3ZpZGUgYWRkaXRpb25hbCBzdGFjayBvcGVyYXRpb25zLlxuICovXG5leHBvcnQgY2xhc3MgU3RhY2tBc3NlbWJseSBleHRlbmRzIEJhc2VTdGFja0Fzc2VtYmx5IGltcGxlbWVudHMgSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2FzbTogSVJlYWRhYmxlQ2xvdWRBc3NlbWJseSwgaW9IZWxwZXI6IElvSGVscGVyKSB7XG4gICAgc3VwZXIoX2FzbS5jbG91ZEFzc2VtYmx5LCBpb0hlbHBlcik7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNsb3VkQXNzZW1ibHkoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FzbS5jbG91ZEFzc2VtYmx5O1xuICB9XG5cbiAgcHVibGljIGFzeW5jIF91bmxvY2soKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FzbS5fdW5sb2NrKCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGlzcG9zZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fYXNtLmRpc3Bvc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBbU3ltYm9sLmFzeW5jRGlzcG9zZV0oKSB7XG4gICAgcmV0dXJuIHRoaXMuZGlzcG9zZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcHJvdmVkIHN0YWNrIHNlbGVjdGlvbiBpbnRlcmZhY2Ugd2l0aCBhIHNpbmdsZSBzZWxlY3RvclxuICAgKiBAdGhyb3dzIHdoZW4gdGhlIGFzc2VtYmx5IGRvZXMgbm90IGNvbnRhaW4gYW55IHN0YWNrcywgdW5sZXNzIGBzZWxlY3Rvci5mYWlsT25FbXB0eWAgaXMgYGZhbHNlYFxuICAgKiBAdGhyb3dzIHdoZW4gaW5kaXZpZHVhbCBzZWxlY3Rpb24gc3RyYXRlZ2llcyBhcmUgbm90IHNhdGlzZmllZFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHNlbGVjdFN0YWNrc1YyKHNlbGVjdG9yOiBTdGFja1NlbGVjdG9yKTogUHJvbWlzZTxTdGFja0NvbGxlY3Rpb24+IHtcbiAgICBjb25zdCBhc20gPSB0aGlzLmFzc2VtYmx5O1xuICAgIGNvbnN0IHRvcExldmVsU3RhY2tzID0gYXNtLnN0YWNrcztcbiAgICBjb25zdCBhbGxTdGFja3MgPSBtYWpvcihhc20udmVyc2lvbikgPCAxMCA/IGFzbS5zdGFja3MgOiBhc20uc3RhY2tzUmVjdXJzaXZlbHk7XG5cbiAgICBpZiAoYWxsU3RhY2tzLmxlbmd0aCA9PT0gMCAmJiAoc2VsZWN0b3IuZmFpbE9uRW1wdHkgPz8gdHJ1ZSkpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1RoaXMgYXBwIGNvbnRhaW5zIG5vIHN0YWNrcycpO1xuICAgIH1cblxuICAgIGNvbnN0IGV4dGVuZCA9IGV4cGFuZFRvRXh0ZW5kRW51bShzZWxlY3Rvci5leHBhbmQpO1xuICAgIGNvbnN0IHBhdHRlcm5zID0gU3RhY2tBc3NlbWJseS5zYW5pdGl6ZVBhdHRlcm5zKHNlbGVjdG9yLnBhdHRlcm5zID8/IFtdKTtcblxuICAgIHN3aXRjaCAoc2VsZWN0b3Iuc3RyYXRlZ3kpIHtcbiAgICAgIGNhc2UgU3RhY2tTZWxlY3Rpb25TdHJhdGVneS5BTExfU1RBQ0tTOlxuICAgICAgICByZXR1cm4gbmV3IFN0YWNrQ29sbGVjdGlvbih0aGlzLCBhbGxTdGFja3MpO1xuICAgICAgY2FzZSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5Lk1BSU5fQVNTRU1CTFk6XG4gICAgICAgIGlmICh0b3BMZXZlbFN0YWNrcy5sZW5ndGggPCAxKSB7XG4gICAgICAgICAgLy8gQHRvZG8gdGV4dCBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBpbiBpbyBob3N0XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignTm8gc3RhY2sgZm91bmQgaW4gdGhlIG1haW4gY2xvdWQgYXNzZW1ibHkuIFVzZSBcImxpc3RcIiB0byBwcmludCBtYW5pZmVzdCcpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmV4dGVuZFN0YWNrcyh0b3BMZXZlbFN0YWNrcywgYWxsU3RhY2tzLCBleHRlbmQpO1xuICAgICAgY2FzZSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5Lk9OTFlfU0lOR0xFOlxuICAgICAgICBpZiAodG9wTGV2ZWxTdGFja3MubGVuZ3RoICE9PSAxKSB7XG4gICAgICAgICAgLy8gQHRvZG8gdGV4dCBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBpbiBpbyBob3N0XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcignU2luY2UgdGhpcyBhcHAgaW5jbHVkZXMgbW9yZSB0aGFuIGEgc2luZ2xlIHN0YWNrLCBzcGVjaWZ5IHdoaWNoIHN0YWNrcyB0byB1c2UgKHdpbGRjYXJkcyBhcmUgc3VwcG9ydGVkKSBvciBzcGVjaWZ5IGAtLWFsbGBcXG4nICtcbiAgICAgICAgICBgU3RhY2tzOiAke2FsbFN0YWNrcy5tYXAoeCA9PiB4LmhpZXJhcmNoaWNhbElkKS5qb2luKCcgwrcgJyl9YCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIG5ldyBTdGFja0NvbGxlY3Rpb24odGhpcywgdG9wTGV2ZWxTdGFja3MpO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgY29uc3QgbWF0Y2hlZCA9IGF3YWl0IHRoaXMuc2VsZWN0TWF0Y2hpbmdTdGFja3MoYWxsU3RhY2tzLCBwYXR0ZXJucywgZXh0ZW5kKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlbGVjdG9yLnN0cmF0ZWd5ID09PSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LlBBVFRFUk5fTVVTVF9NQVRDSF9TSU5HTEVcbiAgICAgICAgICAmJiBtYXRjaGVkLnN0YWNrQ291bnQgIT09IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gQHRvZG8gdGV4dCBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBpbiBpbyBob3N0XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICAgICAgIGBTdGFjayBzZWxlY3Rpb24gaXMgYW1iaWd1b3VzLCBwbGVhc2UgY2hvb3NlIGEgc3BlY2lmaWMgc3RhY2sgZm9yIGltcG9ydCBbJHthbGxTdGFja3MubWFwKHggPT4geC5oaWVyYXJjaGljYWxJZCkuam9pbignLCcpfV1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgIHNlbGVjdG9yLnN0cmF0ZWd5ID09PSBTdGFja1NlbGVjdGlvblN0cmF0ZWd5LlBBVFRFUk5fTVVTVF9NQVRDSFxuICAgICAgICAgICYmIG1hdGNoZWQuc3RhY2tDb3VudCA8IDFcbiAgICAgICAgKSB7XG4gICAgICAgICAgLy8gQHRvZG8gdGV4dCBzaG91bGQgcHJvYmFibHkgYmUgaGFuZGxlZCBpbiBpbyBob3N0XG4gICAgICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihcbiAgICAgICAgICAgIGBTdGFjayBzZWxlY3Rpb24gaXMgYW1iaWd1b3VzLCBwbGVhc2UgY2hvb3NlIGEgc3BlY2lmaWMgc3RhY2sgZm9yIGltcG9ydCBbJHthbGxTdGFja3MubWFwKHggPT4geC5oaWVyYXJjaGljYWxJZCkuam9pbignLCcpfV1gLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbWF0Y2hlZDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0IGFsbCBzdGFja3MuXG4gICAqXG4gICAqIFRoaXMgbWV0aG9kIG5ldmVyIHRocm93cyBhbmQgY2FuIHNhZmVseSBiZSB1c2VkIGFzIGEgYmFzaXMgZm9yIG90aGVyIGNhbGN1bGF0aW9ucy5cbiAgICpcbiAgICogQHJldHVybnMgYSBgU3RhY2tDb2xsZWN0aW9uYCBvZiBhbGwgc3RhY2tzXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0QWxsU3RhY2tzKCkge1xuICAgIGNvbnN0IGFsbFN0YWNrcyA9IG1ham9yKHRoaXMuYXNzZW1ibHkudmVyc2lvbikgPCAxMCA/IHRoaXMuYXNzZW1ibHkuc3RhY2tzIDogdGhpcy5hc3NlbWJseS5zdGFja3NSZWN1cnNpdmVseTtcbiAgICByZXR1cm4gbmV3IFN0YWNrQ29sbGVjdGlvbih0aGlzLCBhbGxTdGFja3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNlbGVjdCBhbGwgc3RhY2tzIHRoYXQgaGF2ZSB0aGUgdmFsaWRhdGVPblN5bnRoIGZsYWcgZXQuXG4gICAqXG4gICAqIEByZXR1cm5zIGEgYFN0YWNrQ29sbGVjdGlvbmAgb2YgYWxsIHN0YWNrcyB0aGF0IG5lZWRzIHRvIGJlIHZhbGlkYXRlZFxuICAgKi9cbiAgcHVibGljIHNlbGVjdFN0YWNrc0ZvclZhbGlkYXRpb24oKSB7XG4gICAgY29uc3QgYWxsU3RhY2tzID0gdGhpcy5zZWxlY3RBbGxTdGFja3MoKTtcbiAgICByZXR1cm4gYWxsU3RhY2tzLmZpbHRlcigoYXJ0KSA9PiBhcnQudmFsaWRhdGVPblN5bnRoID8/IGZhbHNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBleHBhbmRUb0V4dGVuZEVudW0oZXh0ZW5kPzogRXhwYW5kU3RhY2tTZWxlY3Rpb24pOiBDbGlFeHRlbmRlZFN0YWNrU2VsZWN0aW9uIHwgdW5kZWZpbmVkIHtcbiAgc3dpdGNoIChleHRlbmQpIHtcbiAgICBjYXNlIEV4cGFuZFN0YWNrU2VsZWN0aW9uLkRPV05TVFJFQU06XG4gICAgICByZXR1cm4gQ2xpRXh0ZW5kZWRTdGFja1NlbGVjdGlvbi5Eb3duc3RyZWFtO1xuICAgIGNhc2UgRXhwYW5kU3RhY2tTZWxlY3Rpb24uVVBTVFJFQU06XG4gICAgICByZXR1cm4gQ2xpRXh0ZW5kZWRTdGFja1NlbGVjdGlvbi5VcHN0cmVhbTtcbiAgICBjYXNlIEV4cGFuZFN0YWNrU2VsZWN0aW9uLk5PTkU6XG4gICAgICByZXR1cm4gQ2xpRXh0ZW5kZWRTdGFja1NlbGVjdGlvbi5Ob25lO1xuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG4iXX0=
@@ -72,6 +72,25 @@ export interface AssemblySourceProps {
72
72
  * Options to configure loading of the assembly after it has been synthesized
73
73
  */
74
74
  readonly loadAssemblyOptions?: LoadAssemblyOptions;
75
+ /**
76
+ * Delete the `outdir` when the assembly is disposed
77
+ *
78
+ * @default - `true` if `outdir` is not given, `false` otherwise
79
+ */
80
+ readonly disposeOutdir?: boolean;
81
+ }
82
+ /**
83
+ * Options for the `fromCdkApp` Assembly Source constructor
84
+ */
85
+ export interface FromCdkAppOptions extends AssemblySourceProps {
86
+ /**
87
+ * Additional environment variables
88
+ *
89
+ * These environment variables will be set in addition to the environment
90
+ * variables currently set in the process. A value of `undefined` will
91
+ * unset a particular environment variable.
92
+ */
93
+ readonly env?: Record<string, string | undefined>;
75
94
  }
76
95
  /**
77
96
  * Settings that are passed to a CDK app via the context
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdGhlIGJ1aWxkZXIgZnVuY3Rpb24gcmVjZWl2ZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZW1ibHlCdWlsZGVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIG91dHB1dCBkaXJlY3RvcnkgaW50byB3aGljaCB0byB0aGUgYnVpbGRlciBhcHAgd2lsbCBlbWl0IHN5bnRoZXNpemVkIGFydGlmYWN0cy5cbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbnRleHQgcHJvdmlkZWQgdHAgdGhlIGJ1aWxkZXIgYXBwIHRvIHN5bnRoZXNpemUgdGhlIENsb3VkIEFzc2VtYmx5LCBpbmNsdWRpbmcgbG9va2VkLXVwIGNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgc3ludGhlc2lzIHBhcmFtZXRlcnMgYW5kIHByb2R1Y2VzIGEgQ2xvdWQgQXNzZW1ibHlcbiAqXG4gKiBNb3N0IHR5cGljYWxseSwgdGhlIHByb3BlcnRpZXMgcGFzc2VkIGhlcmUgd2lsbCBiZSB1c2VkIHRvIGNvbnN0cnVjdCBhXG4gKiBgY2RrLkFwcGAsIGFuZCB0aGUgcmV0dXJuIHZhbHVlIGlzIHRoZSByZXR1cm4gdmFsdWUgb2YgYGFwcC5zeW50aCgpYC5cbiAqL1xuZXhwb3J0IHR5cGUgQXNzZW1ibHlCdWlsZGVyID0gKHByb3BzOiBBc3NlbWJseUJ1aWxkZXJQcm9wcykgPT4gUHJvbWlzZTxjeHNjaGVtYS5JQ2xvdWRBc3NlbWJseT47XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgY3JlYXRpbmcgYSBDTEkgZnJvbSBhbiBBV1MgQ0RLIEFwcCBkaXJlY3RvcnlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseURpcmVjdG9yeVByb3BzIHtcbiAgLyoqXG4gICAqIE9wdGlvbnMgdG8gY29uZmlndXJlIGxvYWRpbmcgb2YgdGhlIGFzc2VtYmx5IGFmdGVyIGl0IGhhcyBiZWVuIHN5bnRoZXNpemVkXG4gICAqL1xuICByZWFkb25seSBsb2FkQXNzZW1ibHlPcHRpb25zPzogTG9hZEFzc2VtYmx5T3B0aW9ucztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBjcmVhdGluZyBhIENMSSBmcm9tIGFuIEFXUyBDREsgQXBwIGRpcmVjdG9yeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2VtYmx5U291cmNlUHJvcHMge1xuICAvKipcbiAgICogRXhlY3V0ZSB0aGUgYXBwbGljYXRpb24gaW4gdGhpcyB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5XG4gICAqL1xuICByZWFkb25seSB3b3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgc3ludGhlc2l6ZWQgY2xvdWQgYXNzZW1ibHkgaW50byBhIGRpcmVjdG9yeVxuICAgKlxuICAgKiBAZGVmYXVsdCBjZGsub3V0XG4gICAqL1xuICByZWFkb25seSBvdXRkaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gY29udGV4dCBsb29rdXBzLlxuICAgKlxuICAgKiBTeW50aGVzaXMgZmFpbHMgaWYgdGhpcyBpcyBkaXNhYmxlZCBhbmQgY29udGV4dCBsb29rdXBzIG5lZWQgdG8gYmUgcGVyZm9ybWVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBsb29rdXBzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29udGV4dCB2YWx1ZXMgZm9yIHRoZSBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQ29udGV4dCBjYW4gYmUgcmVhZCBpbiB0aGUgYXBwIGZyb20gYW55IGNvbnN0cnVjdCB1c2luZyBgbm9kZS5nZXRDb250ZXh0KGtleSlgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvbnRleHRcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ/OiB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9O1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIHRoYXQgYXJlIHBhc3NlZCB0aHJvdWdoIHRoZSBjb250ZXh0IHRvIGEgQ0RLIGFwcCBvbiBzeW50aFxuICAgKi9cbiAgcmVhZG9ubHkgc3ludGhPcHRpb25zPzogQXBwU3ludGhPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIHRvIGNvbmZpZ3VyZSBsb2FkaW5nIG9mIHRoZSBhc3NlbWJseSBhZnRlciBpdCBoYXMgYmVlbiBzeW50aGVzaXplZFxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZEFzc2VtYmx5T3B0aW9ucz86IExvYWRBc3NlbWJseU9wdGlvbnM7XG59XG5cbi8qKlxuICogU2V0dGluZ3MgdGhhdCBhcmUgcGFzc2VkIHRvIGEgQ0RLIGFwcCB2aWEgdGhlIGNvbnRleHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBTeW50aE9wdGlvbnMge1xuICAvKipcbiAgICogRGVidWcgdGhlIENESyBhcHAuXG4gICAqIExvZ3MgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBkdXJpbmcgc3ludGhlc2lzLCBzdWNoIGFzIGNyZWF0aW9uIHN0YWNrIHRyYWNlcyBvZiB0b2tlbnMuXG4gICAqIFRoaXMgYWxzbyBzZXRzIHRoZSBgQ0RLX0RFQlVHYCBlbnYgdmFyaWFibGUgYW5kIHdpbGwgc2xvdyBkb3duIHN5bnRoZXNpcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRlYnVnPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgZW1iZWRkaW5nIG9mIHRoZSBcImF3czpjZGs6cGF0aFwiIGluIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIG1ldGFkYXRhLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwYXRoTWV0YWRhdGE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgdGhlIGNvbGxlY3Rpb24gYW5kIHJlcG9ydGluZyBvZiB2ZXJzaW9uIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uUmVwb3J0aW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hlIGVuYWJsZWQsIGBhd3M6YXNzZXQ6eHh4YCBtZXRhZGF0YSBlbnRyaWVzIGFyZSBhZGRlZCB0byB0aGUgdGVtcGxhdGUuXG4gICAqXG4gICAqIERpc2FibGluZyB0aGlzIGNhbiBiZSB1c2VmdWwgaW4gY2VydGFpbiBjYXNlcyBsaWtlIGludGVncmF0aW9uIHRlc3RzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhc3NldE1ldGFkYXRhPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGFzc2V0IHN0YWdpbmcuXG4gICAqXG4gICAqIERpc2FibGluZyBhc3NldCBzdGFnaW5nIG1lYW5zIHRoYXQgY29weWFibGUgYXNzZXRzIHdpbGwgbm90IGJlIGNvcGllZCB0byB0aGVcbiAgICogb3V0cHV0IGRpcmVjdG9yeSBhbmQgd2lsbCBiZSByZWZlcmVuY2VkIHdpdGggYWJzb2x1dGUgcGF0aHMuXG4gICAqXG4gICAqIE5vdCBjb3BpZWQgdG8gdGhlIG91dHB1dCBkaXJlY3Rvcnk6IHRoaXMgaXMgc28gdXNlcnMgY2FuIGl0ZXJhdGUgb24gdGhlXG4gICAqIExhbWJkYSBzb3VyY2UgYW5kIHJ1biBTQU0gQ0xJIHdpdGhvdXQgaGF2aW5nIHRvIHJlLXJ1biBDREsgKG5vdGU6IHdlXG4gICAqIGNhbm5vdCBhY2hpZXZlIHRoaXMgZm9yIGJ1bmRsZWQgYXNzZXRzLCBpZiBhc3NldHMgYXJlIGJ1bmRsZWQgdGhleVxuICAgKiB3aWxsIGhhdmUgdG8gcmUtcnVuIENESyBDTEkgdG8gcmUtYnVuZGxlIHVwZGF0ZWQgdmVyc2lvbnMpLlxuICAgKlxuICAgKiBBYnNvbHV0ZSBwYXRoOiBTQU0gQ0xJIGV4cGVjdHMgYGN3ZGAtcmVsYXRpdmUgcGF0aHMgaW4gYSByZXNvdXJjZSdzXG4gICAqIGBhd3M6YXNzZXQ6cGF0aGAgbWV0YWRhdGEuIEluIG9yZGVyIHRvIGJlIHByZWRpY3RhYmxlLCB3ZSB3aWxsIGFsd2F5cyBvdXRwdXRcbiAgICogYWJzb2x1dGUgcGF0aHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0U3RhZ2luZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNlbGVjdCB3aGljaCBzdGFja3Mgc2hvdWxkIGhhdmUgYXNzZXQgYnVuZGxpbmcgZW5hYmxlZFxuICAgKlxuICAgKiBAZGVmYXVsdCBbXCIqKlwiXSAtIGFsbCBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IGJ1bmRsaW5nRm9yU3RhY2tzPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gY29uZmlndXJlIGxvYWRpbmcgb2YgdGhlIGFzc2VtYmx5IGFmdGVyIGl0IGhhcyBiZWVuIHN5bnRoZXNpemVkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEFzc2VtYmx5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDaGVjayB0aGUgVG9vbGtpdCBzdXBwb3J0cyB0aGUgQ2xvdWQgQXNzZW1ibHkgU2NoZW1hIHZlcnNpb25cbiAgICpcbiAgICogV2hlbiBkaXNhYmxlZCwgYWxsb3dzIHRvIFRvb2xraXQgdG8gcmVhZCBhIG5ld2VyIGNsb3VkIGFzc2VtYmx5IHRoYW4gdGhlIENYIEFQSSBpcyBkZXNpZ25lZFxuICAgKiB0byBzdXBwb3J0LiBZb3VyIGFwcGxpY2F0aW9uIG1heSBub3QgYmUgYXdhcmUgb2YgYWxsIGZlYXR1cmVzIHRoYXQgaW4gdXNlIGluIHRoZSBDbG91ZCBBc3NlbWJseS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tWZXJzaW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVmFsaWRhdGUgZW51bXMgdG8gb25seSBoYXZlIGtub3duIHZhbHVlc1xuICAgKlxuICAgKiBXaGVuIGRpc2FibGVkLCB0aGUgVG9vbGtpdCBtYXkgcmVhZCBlbnVtIHZhbHVlcyBpdCBkb2Vzbid0IGtub3cgYWJvdXQgeWV0LlxuICAgKiBZb3Ugd2lsbCBoYXZlIHRvIG1ha2Ugc3VyZSB0byBhbHdheXMgY2hlY2sgdGhlIHZhbHVlcyBvZiBlbnVtcyB5b3UgZW5jb3VudGVyIGluIHRoZSBtYW5pZmVzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tFbnVtcz86IGJvb2xlYW47XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLWJ1aWxkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzb3VyY2UtYnVpbGRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeHNjaGVtYSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1zY2hlbWEnO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgdGhlIGJ1aWxkZXIgZnVuY3Rpb24gcmVjZWl2ZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZW1ibHlCdWlsZGVyUHJvcHMge1xuICAvKipcbiAgICogVGhlIG91dHB1dCBkaXJlY3RvcnkgaW50byB3aGljaCB0byB0aGUgYnVpbGRlciBhcHAgd2lsbCBlbWl0IHN5bnRoZXNpemVkIGFydGlmYWN0cy5cbiAgICovXG4gIHJlYWRvbmx5IG91dGRpcj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbnRleHQgcHJvdmlkZWQgdHAgdGhlIGJ1aWxkZXIgYXBwIHRvIHN5bnRoZXNpemUgdGhlIENsb3VkIEFzc2VtYmx5LCBpbmNsdWRpbmcgbG9va2VkLXVwIGNvbnRleHQuXG4gICAqL1xuICByZWFkb25seSBjb250ZXh0PzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbn1cblxuLyoqXG4gKiBBIGZ1bmN0aW9uIHRoYXQgdGFrZXMgc3ludGhlc2lzIHBhcmFtZXRlcnMgYW5kIHByb2R1Y2VzIGEgQ2xvdWQgQXNzZW1ibHlcbiAqXG4gKiBNb3N0IHR5cGljYWxseSwgdGhlIHByb3BlcnRpZXMgcGFzc2VkIGhlcmUgd2lsbCBiZSB1c2VkIHRvIGNvbnN0cnVjdCBhXG4gKiBgY2RrLkFwcGAsIGFuZCB0aGUgcmV0dXJuIHZhbHVlIGlzIHRoZSByZXR1cm4gdmFsdWUgb2YgYGFwcC5zeW50aCgpYC5cbiAqL1xuZXhwb3J0IHR5cGUgQXNzZW1ibHlCdWlsZGVyID0gKHByb3BzOiBBc3NlbWJseUJ1aWxkZXJQcm9wcykgPT4gUHJvbWlzZTxjeHNjaGVtYS5JQ2xvdWRBc3NlbWJseT47XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgY3JlYXRpbmcgYSBDTEkgZnJvbSBhbiBBV1MgQ0RLIEFwcCBkaXJlY3RvcnlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBc3NlbWJseURpcmVjdG9yeVByb3BzIHtcbiAgLyoqXG4gICAqIE9wdGlvbnMgdG8gY29uZmlndXJlIGxvYWRpbmcgb2YgdGhlIGFzc2VtYmx5IGFmdGVyIGl0IGhhcyBiZWVuIHN5bnRoZXNpemVkXG4gICAqL1xuICByZWFkb25seSBsb2FkQXNzZW1ibHlPcHRpb25zPzogTG9hZEFzc2VtYmx5T3B0aW9ucztcbn1cblxuLyoqXG4gKiBDb25maWd1cmF0aW9uIGZvciBjcmVhdGluZyBhIENMSSBmcm9tIGFuIEFXUyBDREsgQXBwIGRpcmVjdG9yeVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFzc2VtYmx5U291cmNlUHJvcHMge1xuICAvKipcbiAgICogRXhlY3V0ZSB0aGUgYXBwbGljYXRpb24gaW4gdGhpcyB3b3JraW5nIGRpcmVjdG9yeS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5XG4gICAqL1xuICByZWFkb25seSB3b3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgc3ludGhlc2l6ZWQgY2xvdWQgYXNzZW1ibHkgaW50byBhIGRpcmVjdG9yeVxuICAgKlxuICAgKiBAZGVmYXVsdCBjZGsub3V0XG4gICAqL1xuICByZWFkb25seSBvdXRkaXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBlcmZvcm0gY29udGV4dCBsb29rdXBzLlxuICAgKlxuICAgKiBTeW50aGVzaXMgZmFpbHMgaWYgdGhpcyBpcyBkaXNhYmxlZCBhbmQgY29udGV4dCBsb29rdXBzIG5lZWQgdG8gYmUgcGVyZm9ybWVkLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBsb29rdXBzPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29udGV4dCB2YWx1ZXMgZm9yIHRoZSBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQ29udGV4dCBjYW4gYmUgcmVhZCBpbiB0aGUgYXBwIGZyb20gYW55IGNvbnN0cnVjdCB1c2luZyBgbm9kZS5nZXRDb250ZXh0KGtleSlgLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGNvbnRleHRcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHQ/OiB7XG4gICAgW2tleTogc3RyaW5nXTogYW55O1xuICB9O1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIHRoYXQgYXJlIHBhc3NlZCB0aHJvdWdoIHRoZSBjb250ZXh0IHRvIGEgQ0RLIGFwcCBvbiBzeW50aFxuICAgKi9cbiAgcmVhZG9ubHkgc3ludGhPcHRpb25zPzogQXBwU3ludGhPcHRpb25zO1xuXG4gIC8qKlxuICAgKiBPcHRpb25zIHRvIGNvbmZpZ3VyZSBsb2FkaW5nIG9mIHRoZSBhc3NlbWJseSBhZnRlciBpdCBoYXMgYmVlbiBzeW50aGVzaXplZFxuICAgKi9cbiAgcmVhZG9ubHkgbG9hZEFzc2VtYmx5T3B0aW9ucz86IExvYWRBc3NlbWJseU9wdGlvbnM7XG5cbiAgLyoqXG4gICAqIERlbGV0ZSB0aGUgYG91dGRpcmAgd2hlbiB0aGUgYXNzZW1ibHkgaXMgZGlzcG9zZWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBgdHJ1ZWAgaWYgYG91dGRpcmAgaXMgbm90IGdpdmVuLCBgZmFsc2VgIG90aGVyd2lzZVxuICAgKi9cbiAgcmVhZG9ubHkgZGlzcG9zZU91dGRpcj86IGJvb2xlYW47XG59XG5cbi8qKlxuICogT3B0aW9ucyBmb3IgdGhlIGBmcm9tQ2RrQXBwYCBBc3NlbWJseSBTb3VyY2UgY29uc3RydWN0b3JcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGcm9tQ2RrQXBwT3B0aW9ucyBleHRlbmRzIEFzc2VtYmx5U291cmNlUHJvcHMge1xuICAvKipcbiAgICogQWRkaXRpb25hbCBlbnZpcm9ubWVudCB2YXJpYWJsZXNcbiAgICpcbiAgICogVGhlc2UgZW52aXJvbm1lbnQgdmFyaWFibGVzIHdpbGwgYmUgc2V0IGluIGFkZGl0aW9uIHRvIHRoZSBlbnZpcm9ubWVudFxuICAgKiB2YXJpYWJsZXMgY3VycmVudGx5IHNldCBpbiB0aGUgcHJvY2Vzcy4gQSB2YWx1ZSBvZiBgdW5kZWZpbmVkYCB3aWxsXG4gICAqIHVuc2V0IGEgcGFydGljdWxhciBlbnZpcm9ubWVudCB2YXJpYWJsZS5cbiAgICovXG4gIHJlYWRvbmx5IGVudj86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD47XG59XG5cbi8qKlxuICogU2V0dGluZ3MgdGhhdCBhcmUgcGFzc2VkIHRvIGEgQ0RLIGFwcCB2aWEgdGhlIGNvbnRleHRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBcHBTeW50aE9wdGlvbnMge1xuICAvKipcbiAgICogRGVidWcgdGhlIENESyBhcHAuXG4gICAqIExvZ3MgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBkdXJpbmcgc3ludGhlc2lzLCBzdWNoIGFzIGNyZWF0aW9uIHN0YWNrIHRyYWNlcyBvZiB0b2tlbnMuXG4gICAqIFRoaXMgYWxzbyBzZXRzIHRoZSBgQ0RLX0RFQlVHYCBlbnYgdmFyaWFibGUgYW5kIHdpbGwgc2xvdyBkb3duIHN5bnRoZXNpcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRlYnVnPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlcyB0aGUgZW1iZWRkaW5nIG9mIHRoZSBcImF3czpjZGs6cGF0aFwiIGluIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIG1ldGFkYXRhLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBwYXRoTWV0YWRhdGE/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgdGhlIGNvbGxlY3Rpb24gYW5kIHJlcG9ydGluZyBvZiB2ZXJzaW9uIGluZm9ybWF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSB2ZXJzaW9uUmVwb3J0aW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hlIGVuYWJsZWQsIGBhd3M6YXNzZXQ6eHh4YCBtZXRhZGF0YSBlbnRyaWVzIGFyZSBhZGRlZCB0byB0aGUgdGVtcGxhdGUuXG4gICAqXG4gICAqIERpc2FibGluZyB0aGlzIGNhbiBiZSB1c2VmdWwgaW4gY2VydGFpbiBjYXNlcyBsaWtlIGludGVncmF0aW9uIHRlc3RzLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhc3NldE1ldGFkYXRhPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRW5hYmxlIGFzc2V0IHN0YWdpbmcuXG4gICAqXG4gICAqIERpc2FibGluZyBhc3NldCBzdGFnaW5nIG1lYW5zIHRoYXQgY29weWFibGUgYXNzZXRzIHdpbGwgbm90IGJlIGNvcGllZCB0byB0aGVcbiAgICogb3V0cHV0IGRpcmVjdG9yeSBhbmQgd2lsbCBiZSByZWZlcmVuY2VkIHdpdGggYWJzb2x1dGUgcGF0aHMuXG4gICAqXG4gICAqIE5vdCBjb3BpZWQgdG8gdGhlIG91dHB1dCBkaXJlY3Rvcnk6IHRoaXMgaXMgc28gdXNlcnMgY2FuIGl0ZXJhdGUgb24gdGhlXG4gICAqIExhbWJkYSBzb3VyY2UgYW5kIHJ1biBTQU0gQ0xJIHdpdGhvdXQgaGF2aW5nIHRvIHJlLXJ1biBDREsgKG5vdGU6IHdlXG4gICAqIGNhbm5vdCBhY2hpZXZlIHRoaXMgZm9yIGJ1bmRsZWQgYXNzZXRzLCBpZiBhc3NldHMgYXJlIGJ1bmRsZWQgdGhleVxuICAgKiB3aWxsIGhhdmUgdG8gcmUtcnVuIENESyBDTEkgdG8gcmUtYnVuZGxlIHVwZGF0ZWQgdmVyc2lvbnMpLlxuICAgKlxuICAgKiBBYnNvbHV0ZSBwYXRoOiBTQU0gQ0xJIGV4cGVjdHMgYGN3ZGAtcmVsYXRpdmUgcGF0aHMgaW4gYSByZXNvdXJjZSdzXG4gICAqIGBhd3M6YXNzZXQ6cGF0aGAgbWV0YWRhdGEuIEluIG9yZGVyIHRvIGJlIHByZWRpY3RhYmxlLCB3ZSB3aWxsIGFsd2F5cyBvdXRwdXRcbiAgICogYWJzb2x1dGUgcGF0aHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0U3RhZ2luZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNlbGVjdCB3aGljaCBzdGFja3Mgc2hvdWxkIGhhdmUgYXNzZXQgYnVuZGxpbmcgZW5hYmxlZFxuICAgKlxuICAgKiBAZGVmYXVsdCBbXCIqKlwiXSAtIGFsbCBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IGJ1bmRsaW5nRm9yU3RhY2tzPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIE9wdGlvbnMgdG8gY29uZmlndXJlIGxvYWRpbmcgb2YgdGhlIGFzc2VtYmx5IGFmdGVyIGl0IGhhcyBiZWVuIHN5bnRoZXNpemVkXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9hZEFzc2VtYmx5T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDaGVjayB0aGUgVG9vbGtpdCBzdXBwb3J0cyB0aGUgQ2xvdWQgQXNzZW1ibHkgU2NoZW1hIHZlcnNpb25cbiAgICpcbiAgICogV2hlbiBkaXNhYmxlZCwgYWxsb3dzIHRvIFRvb2xraXQgdG8gcmVhZCBhIG5ld2VyIGNsb3VkIGFzc2VtYmx5IHRoYW4gdGhlIENYIEFQSSBpcyBkZXNpZ25lZFxuICAgKiB0byBzdXBwb3J0LiBZb3VyIGFwcGxpY2F0aW9uIG1heSBub3QgYmUgYXdhcmUgb2YgYWxsIGZlYXR1cmVzIHRoYXQgaW4gdXNlIGluIHRoZSBDbG91ZCBBc3NlbWJseS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tWZXJzaW9uPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVmFsaWRhdGUgZW51bXMgdG8gb25seSBoYXZlIGtub3duIHZhbHVlc1xuICAgKlxuICAgKiBXaGVuIGRpc2FibGVkLCB0aGUgVG9vbGtpdCBtYXkgcmVhZCBlbnVtIHZhbHVlcyBpdCBkb2Vzbid0IGtub3cgYWJvdXQgeWV0LlxuICAgKiBZb3Ugd2lsbCBoYXZlIHRvIG1ha2Ugc3VyZSB0byBhbHdheXMgY2hlY2sgdGhlIHZhbHVlcyBvZiBlbnVtcyB5b3UgZW5jb3VudGVyIGluIHRoZSBtYW5pZmVzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2hlY2tFbnVtcz86IGJvb2xlYW47XG59XG4iXX0=
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StackCollection = void 0;
4
4
  const cx_api_1 = require("@aws-cdk/cx-api");
5
- const toolkit_error_1 = require("../toolkit-error");
5
+ const toolkit_error_1 = require("../../toolkit/toolkit-error");
6
6
  /**
7
7
  * A collection of stacks and related artifacts
8
8
  *
@@ -109,4 +109,4 @@ class StackCollection {
109
109
  }
110
110
  }
111
111
  exports.StackCollection = StackCollection;
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLWNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNENBQXdEO0FBQ3hELG9EQUErRDtBQUkvRDs7Ozs7O0dBTUc7QUFDSCxNQUFhLGVBQWU7SUFDRTtJQUEwQztJQUF0RSxZQUE0QixRQUF3QixFQUFrQixjQUFtRDtRQUE3RixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUFrQixtQkFBYyxHQUFkLGNBQWMsQ0FBcUM7SUFDekgsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSw0QkFBWSxDQUFDLDhFQUE4RSxDQUFDLENBQUM7UUFDekcsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsTUFBTSxPQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUVuQyxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QyxNQUFNLElBQUksR0FBaUI7Z0JBQ3pCLEVBQUUsRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLEtB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R0FBRyxJQUFJLENBQUM7d0JBQ2hCLE1BQU0sTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDOUIsTUFBTTtvQkFDUixLQUFLLDhCQUFxQixDQUFDLEtBQUs7d0JBQzlCLE1BQU0sR0FBRyxJQUFJLENBQUM7d0JBQ2QsTUFBTSxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO3dCQUMvQixNQUFNO29CQUNSLEtBQUssOEJBQXFCLENBQUMsSUFBSTt3QkFDN0IsTUFBTSxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO3dCQUM5QixNQUFNO2dCQUNWLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksTUFBTSxJQUFJLE1BQU0sSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMvQixNQUFNLDZCQUFhLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUVELElBQUksUUFBUSxJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNsQyxNQUFNLDZCQUFhLENBQUMsVUFBVSxDQUFDLGdDQUFnQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4RixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBakhELDBDQWlIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCB7IFN5bnRoZXNpc01lc3NhZ2VMZXZlbCB9IGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgeyBBc3NlbWJseUVycm9yLCBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi90b29sa2l0LWVycm9yJztcbmltcG9ydCB0eXBlIHsgSVN0YWNrQXNzZW1ibHkgfSBmcm9tICcuL3N0YWNrLWFzc2VtYmx5JztcbmltcG9ydCB7IHR5cGUgU3RhY2tEZXRhaWxzIH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMvc3RhY2stZGV0YWlscyc7XG5cbi8qKlxuICogQSBjb2xsZWN0aW9uIG9mIHN0YWNrcyBhbmQgcmVsYXRlZCBhcnRpZmFjdHNcbiAqXG4gKiBJbiBwcmFjdGljZSwgbm90IGFsbCBhcnRpZmFjdHMgaW4gdGhlIENsb3VkQXNzZW1ibHkgYXJlIGNyZWF0ZWQgZXF1YWw7XG4gKiBzdGFja3MgY2FuIGJlIHNlbGVjdGVkIGluZGVwZW5kZW50bHksIGJ1dCBvdGhlciBhcnRpZmFjdHMgc3VjaCBhcyBhc3NldFxuICogYnVuZGxlcyBjYW5ub3QuXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFja0NvbGxlY3Rpb24ge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgYXNzZW1ibHk6IElTdGFja0Fzc2VtYmx5LCBwdWJsaWMgcmVhZG9ubHkgc3RhY2tBcnRpZmFjdHM6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdKSB7XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YWNrQ291bnQoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2tBcnRpZmFjdHMubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdldCBmaXJzdFN0YWNrKCkge1xuICAgIGlmICh0aGlzLnN0YWNrQ291bnQgPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdTdGFja0NvbGxlY3Rpb24gY29udGFpbnMgbm8gc3RhY2sgYXJ0aWZhY3RzICh0cnlpbmcgdG8gYWNjZXNzIHRoZSBmaXJzdCBvbmUpJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnN0YWNrQXJ0aWZhY3RzWzBdO1xuICB9XG5cbiAgcHVibGljIGdldCBzdGFja0lkcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2tBcnRpZmFjdHMubWFwKHMgPT4gcy5pZCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGhpZXJhcmNoaWNhbElkcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhY2tBcnRpZmFjdHMubWFwKHMgPT4gcy5oaWVyYXJjaGljYWxJZCk7XG4gIH1cblxuICBwdWJsaWMgd2l0aERlcGVuZGVuY2llcygpOiBTdGFja0RldGFpbHNbXSB7XG4gICAgY29uc3QgYWxsRGF0YTogU3RhY2tEZXRhaWxzW10gPSBbXTtcblxuICAgIGZvciAoY29uc3Qgc3RhY2sgb2YgdGhpcy5zdGFja0FydGlmYWN0cykge1xuICAgICAgY29uc3QgZGF0YTogU3RhY2tEZXRhaWxzID0ge1xuICAgICAgICBpZDogc3RhY2suZGlzcGxheU5hbWUgPz8gc3RhY2suaWQsXG4gICAgICAgIG5hbWU6IHN0YWNrLnN0YWNrTmFtZSxcbiAgICAgICAgZW52aXJvbm1lbnQ6IHN0YWNrLmVudmlyb25tZW50LFxuICAgICAgICBkZXBlbmRlbmNpZXM6IFtdLFxuICAgICAgfTtcblxuICAgICAgZm9yIChjb25zdCBkZXBlbmRlbmN5SWQgb2Ygc3RhY2suZGVwZW5kZW5jaWVzLm1hcCh4ID0+IHguaWQpKSB7XG4gICAgICAgIGlmIChkZXBlbmRlbmN5SWQuaW5jbHVkZXMoJy5hc3NldHMnKSkge1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZGVwU3RhY2sgPSB0aGlzLmFzc2VtYmx5LnN0YWNrQnlJZChkZXBlbmRlbmN5SWQpO1xuXG4gICAgICAgIGlmIChkZXBTdGFjay5maXJzdFN0YWNrLmRlcGVuZGVuY2llcy5maWx0ZXIoKGRlcCkgPT4gIShkZXAuaWQpLmluY2x1ZGVzKCcuYXNzZXRzJykpLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICBmb3IgKGNvbnN0IHN0YWNrRGV0YWlsIG9mIGRlcFN0YWNrLndpdGhEZXBlbmRlbmNpZXMoKSkge1xuICAgICAgICAgICAgZGF0YS5kZXBlbmRlbmNpZXMucHVzaCh7XG4gICAgICAgICAgICAgIGlkOiBzdGFja0RldGFpbC5pZCxcbiAgICAgICAgICAgICAgZGVwZW5kZW5jaWVzOiBzdGFja0RldGFpbC5kZXBlbmRlbmNpZXMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZGF0YS5kZXBlbmRlbmNpZXMucHVzaCh7XG4gICAgICAgICAgICBpZDogZGVwU3RhY2suZmlyc3RTdGFjay5kaXNwbGF5TmFtZSA/PyBkZXBTdGFjay5maXJzdFN0YWNrLmlkLFxuICAgICAgICAgICAgZGVwZW5kZW5jaWVzOiBbXSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBhbGxEYXRhLnB1c2goZGF0YSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFsbERhdGE7XG4gIH1cblxuICBwdWJsaWMgcmV2ZXJzZWQoKSB7XG4gICAgY29uc3QgYXJ0cyA9IFsuLi50aGlzLnN0YWNrQXJ0aWZhY3RzXTtcbiAgICBhcnRzLnJldmVyc2UoKTtcbiAgICByZXR1cm4gbmV3IFN0YWNrQ29sbGVjdGlvbih0aGlzLmFzc2VtYmx5LCBhcnRzKTtcbiAgfVxuXG4gIHB1YmxpYyBmaWx0ZXIocHJlZGljYXRlOiAoYXJ0OiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QpID0+IGJvb2xlYW4pOiBTdGFja0NvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgU3RhY2tDb2xsZWN0aW9uKHRoaXMuYXNzZW1ibHksIHRoaXMuc3RhY2tBcnRpZmFjdHMuZmlsdGVyKHByZWRpY2F0ZSkpO1xuICB9XG5cbiAgcHVibGljIGNvbmNhdCguLi5vdGhlcnM6IFN0YWNrQ29sbGVjdGlvbltdKTogU3RhY2tDb2xsZWN0aW9uIHtcbiAgICByZXR1cm4gbmV3IFN0YWNrQ29sbGVjdGlvbih0aGlzLmFzc2VtYmx5LCB0aGlzLnN0YWNrQXJ0aWZhY3RzLmNvbmNhdCguLi5vdGhlcnMubWFwKG8gPT4gby5zdGFja0FydGlmYWN0cykpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeHRyYWN0cyAnYXdzOmNkazp3YXJuaW5nfGluZm98ZXJyb3InIG1ldGFkYXRhIGVudHJpZXMgZnJvbSB0aGUgc3RhY2sgc3ludGhlc2lzXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgdmFsaWRhdGVNZXRhZGF0YShcbiAgICBmYWlsQXQ6ICd3YXJuJyB8ICdlcnJvcicgfCAnbm9uZScgPSAnZXJyb3InLFxuICAgIGxvZ2dlcjogKGxldmVsOiAnaW5mbycgfCAnZXJyb3InIHwgJ3dhcm4nLCBtc2c6IGN4YXBpLlN5bnRoZXNpc01lc3NhZ2UpID0+IFByb21pc2U8dm9pZD4gPSBhc3luYyAoKSA9PiB7XG4gICAgfSxcbiAgKSB7XG4gICAgbGV0IHdhcm5pbmdzID0gZmFsc2U7XG4gICAgbGV0IGVycm9ycyA9IGZhbHNlO1xuXG4gICAgZm9yIChjb25zdCBzdGFjayBvZiB0aGlzLnN0YWNrQXJ0aWZhY3RzKSB7XG4gICAgICBmb3IgKGNvbnN0IG1lc3NhZ2Ugb2Ygc3RhY2subWVzc2FnZXMpIHtcbiAgICAgICAgc3dpdGNoIChtZXNzYWdlLmxldmVsKSB7XG4gICAgICAgICAgY2FzZSBTeW50aGVzaXNNZXNzYWdlTGV2ZWwuV0FSTklORzpcbiAgICAgICAgICAgIHdhcm5pbmdzID0gdHJ1ZTtcbiAgICAgICAgICAgIGF3YWl0IGxvZ2dlcignd2FybicsIG1lc3NhZ2UpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBTeW50aGVzaXNNZXNzYWdlTGV2ZWwuRVJST1I6XG4gICAgICAgICAgICBlcnJvcnMgPSB0cnVlO1xuICAgICAgICAgICAgYXdhaXQgbG9nZ2VyKCdlcnJvcicsIG1lc3NhZ2UpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSBTeW50aGVzaXNNZXNzYWdlTGV2ZWwuSU5GTzpcbiAgICAgICAgICAgIGF3YWl0IGxvZ2dlcignaW5mbycsIG1lc3NhZ2UpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZXJyb3JzICYmIGZhaWxBdCAhPSAnbm9uZScpIHtcbiAgICAgIHRocm93IEFzc2VtYmx5RXJyb3Iud2l0aFN0YWNrcygnRm91bmQgZXJyb3JzJywgdGhpcy5zdGFja0FydGlmYWN0cyk7XG4gICAgfVxuXG4gICAgaWYgKHdhcm5pbmdzICYmIGZhaWxBdCA9PT0gJ3dhcm4nKSB7XG4gICAgICB0aHJvdyBBc3NlbWJseUVycm9yLndpdGhTdGFja3MoJ0ZvdW5kIHdhcm5pbmdzICgtLXN0cmljdCBtb2RlKScsIHRoaXMuc3RhY2tBcnRpZmFjdHMpO1xuICAgIH1cbiAgfVxufVxuIl19
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLWNvbGxlY3Rpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNENBQXdEO0FBR3hELCtEQUEwRTtBQUUxRTs7Ozs7O0dBTUc7QUFDSCxNQUFhLGVBQWU7SUFDRTtJQUEwQztJQUF0RSxZQUE0QixRQUF3QixFQUFrQixjQUFtRDtRQUE3RixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUFrQixtQkFBYyxHQUFkLGNBQWMsQ0FBcUM7SUFDekgsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNuQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsSUFBSSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3hCLE1BQU0sSUFBSSw0QkFBWSxDQUFDLDhFQUE4RSxDQUFDLENBQUM7UUFDekcsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFTSxnQkFBZ0I7UUFDckIsTUFBTSxPQUFPLEdBQW1CLEVBQUUsQ0FBQztRQUVuQyxLQUFLLE1BQU0sS0FBSyxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QyxNQUFNLElBQUksR0FBaUI7Z0JBQ3pCLEVBQUUsRUFBRSxLQUFLLENBQUMsV0FBVyxJQUFJLEtB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R0FBRyxJQUFJLENBQUM7d0JBQ2hCLE1BQU0sTUFBTSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQzt3QkFDOUIsTUFBTTtvQkFDUixLQUFLLDhCQUFxQixDQUFDLEtBQUs7d0JBQzlCLE1BQU0sR0FBRyxJQUFJLENBQUM7d0JBQ2QsTUFBTSxNQUFNLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxDQUFDO3dCQUMvQixNQUFNO29CQUNSLEtBQUssOEJBQXFCLENBQUMsSUFBSTt3QkFDN0IsTUFBTSxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO3dCQUM5QixNQUFNO2dCQUNWLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksTUFBTSxJQUFJLE1BQU0sSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUMvQixNQUFNLDZCQUFhLENBQUMsVUFBVSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDdEUsQ0FBQztRQUVELElBQUksUUFBUSxJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUNsQyxNQUFNLDZCQUFhLENBQUMsVUFBVSxDQUFDLGdDQUFnQyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUN4RixDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBakhELDBDQWlIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcbmltcG9ydCB7IFN5bnRoZXNpc01lc3NhZ2VMZXZlbCB9IGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgdHlwZSB7IElTdGFja0Fzc2VtYmx5IH0gZnJvbSAnLi9zdGFjay1hc3NlbWJseSc7XG5pbXBvcnQgeyB0eXBlIFN0YWNrRGV0YWlscyB9IGZyb20gJy4uLy4uL3BheWxvYWRzL3N0YWNrLWRldGFpbHMnO1xuaW1wb3J0IHsgQXNzZW1ibHlFcnJvciwgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcblxuLyoqXG4gKiBBIGNvbGxlY3Rpb24gb2Ygc3RhY2tzIGFuZCByZWxhdGVkIGFydGlmYWN0c1xuICpcbiAqIEluIHByYWN0aWNlLCBub3QgYWxsIGFydGlmYWN0cyBpbiB0aGUgQ2xvdWRBc3NlbWJseSBhcmUgY3JlYXRlZCBlcXVhbDtcbiAqIHN0YWNrcyBjYW4gYmUgc2VsZWN0ZWQgaW5kZXBlbmRlbnRseSwgYnV0IG90aGVyIGFydGlmYWN0cyBzdWNoIGFzIGFzc2V0XG4gKiBidW5kbGVzIGNhbm5vdC5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0YWNrQ29sbGVjdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBhc3NlbWJseTogSVN0YWNrQXNzZW1ibHksIHB1YmxpYyByZWFkb25seSBzdGFja0FydGlmYWN0czogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0W10pIHtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgc3RhY2tDb3VudCgpIHtcbiAgICByZXR1cm4gdGhpcy5zdGFja0FydGlmYWN0cy5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGZpcnN0U3RhY2soKSB7XG4gICAgaWYgKHRoaXMuc3RhY2tDb3VudCA8IDEpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1N0YWNrQ29sbGVjdGlvbiBjb250YWlucyBubyBzdGFjayBhcnRpZmFjdHMgKHRyeWluZyB0byBhY2Nlc3MgdGhlIGZpcnN0IG9uZSknKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc3RhY2tBcnRpZmFjdHNbMF07XG4gIH1cblxuICBwdWJsaWMgZ2V0IHN0YWNrSWRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5zdGFja0FydGlmYWN0cy5tYXAocyA9PiBzLmlkKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGllcmFyY2hpY2FsSWRzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gdGhpcy5zdGFja0FydGlmYWN0cy5tYXAocyA9PiBzLmhpZXJhcmNoaWNhbElkKTtcbiAgfVxuXG4gIHB1YmxpYyB3aXRoRGVwZW5kZW5jaWVzKCk6IFN0YWNrRGV0YWlsc1tdIHtcbiAgICBjb25zdCBhbGxEYXRhOiBTdGFja0RldGFpbHNbXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBzdGFjayBvZiB0aGlzLnN0YWNrQXJ0aWZhY3RzKSB7XG4gICAgICBjb25zdCBkYXRhOiBTdGFja0RldGFpbHMgPSB7XG4gICAgICAgIGlkOiBzdGFjay5kaXNwbGF5TmFtZSA/PyBzdGFjay5pZCxcbiAgICAgICAgbmFtZTogc3RhY2suc3RhY2tOYW1lLFxuICAgICAgICBlbnZpcm9ubWVudDogc3RhY2suZW52aXJvbm1lbnQsXG4gICAgICAgIGRlcGVuZGVuY2llczogW10sXG4gICAgICB9O1xuXG4gICAgICBmb3IgKGNvbnN0IGRlcGVuZGVuY3lJZCBvZiBzdGFjay5kZXBlbmRlbmNpZXMubWFwKHggPT4geC5pZCkpIHtcbiAgICAgICAgaWYgKGRlcGVuZGVuY3lJZC5pbmNsdWRlcygnLmFzc2V0cycpKSB7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBkZXBTdGFjayA9IHRoaXMuYXNzZW1ibHkuc3RhY2tCeUlkKGRlcGVuZGVuY3lJZCk7XG5cbiAgICAgICAgaWYgKGRlcFN0YWNrLmZpcnN0U3RhY2suZGVwZW5kZW5jaWVzLmZpbHRlcigoZGVwKSA9PiAhKGRlcC5pZCkuaW5jbHVkZXMoJy5hc3NldHMnKSkubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGZvciAoY29uc3Qgc3RhY2tEZXRhaWwgb2YgZGVwU3RhY2sud2l0aERlcGVuZGVuY2llcygpKSB7XG4gICAgICAgICAgICBkYXRhLmRlcGVuZGVuY2llcy5wdXNoKHtcbiAgICAgICAgICAgICAgaWQ6IHN0YWNrRGV0YWlsLmlkLFxuICAgICAgICAgICAgICBkZXBlbmRlbmNpZXM6IHN0YWNrRGV0YWlsLmRlcGVuZGVuY2llcyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBkYXRhLmRlcGVuZGVuY2llcy5wdXNoKHtcbiAgICAgICAgICAgIGlkOiBkZXBTdGFjay5maXJzdFN0YWNrLmRpc3BsYXlOYW1lID8/IGRlcFN0YWNrLmZpcnN0U3RhY2suaWQsXG4gICAgICAgICAgICBkZXBlbmRlbmNpZXM6IFtdLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGFsbERhdGEucHVzaChkYXRhKTtcbiAgICB9XG5cbiAgICByZXR1cm4gYWxsRGF0YTtcbiAgfVxuXG4gIHB1YmxpYyByZXZlcnNlZCgpIHtcbiAgICBjb25zdCBhcnRzID0gWy4uLnRoaXMuc3RhY2tBcnRpZmFjdHNdO1xuICAgIGFydHMucmV2ZXJzZSgpO1xuICAgIHJldHVybiBuZXcgU3RhY2tDb2xsZWN0aW9uKHRoaXMuYXNzZW1ibHksIGFydHMpO1xuICB9XG5cbiAgcHVibGljIGZpbHRlcihwcmVkaWNhdGU6IChhcnQ6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCkgPT4gYm9vbGVhbik6IFN0YWNrQ29sbGVjdGlvbiB7XG4gICAgcmV0dXJuIG5ldyBTdGFja0NvbGxlY3Rpb24odGhpcy5hc3NlbWJseSwgdGhpcy5zdGFja0FydGlmYWN0cy5maWx0ZXIocHJlZGljYXRlKSk7XG4gIH1cblxuICBwdWJsaWMgY29uY2F0KC4uLm90aGVyczogU3RhY2tDb2xsZWN0aW9uW10pOiBTdGFja0NvbGxlY3Rpb24ge1xuICAgIHJldHVybiBuZXcgU3RhY2tDb2xsZWN0aW9uKHRoaXMuYXNzZW1ibHksIHRoaXMuc3RhY2tBcnRpZmFjdHMuY29uY2F0KC4uLm90aGVycy5tYXAobyA9PiBvLnN0YWNrQXJ0aWZhY3RzKSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4dHJhY3RzICdhd3M6Y2RrOndhcm5pbmd8aW5mb3xlcnJvcicgbWV0YWRhdGEgZW50cmllcyBmcm9tIHRoZSBzdGFjayBzeW50aGVzaXNcbiAgICovXG4gIHB1YmxpYyBhc3luYyB2YWxpZGF0ZU1ldGFkYXRhKFxuICAgIGZhaWxBdDogJ3dhcm4nIHwgJ2Vycm9yJyB8ICdub25lJyA9ICdlcnJvcicsXG4gICAgbG9nZ2VyOiAobGV2ZWw6ICdpbmZvJyB8ICdlcnJvcicgfCAnd2FybicsIG1zZzogY3hhcGkuU3ludGhlc2lzTWVzc2FnZSkgPT4gUHJvbWlzZTx2b2lkPiA9IGFzeW5jICgpID0+IHtcbiAgICB9LFxuICApIHtcbiAgICBsZXQgd2FybmluZ3MgPSBmYWxzZTtcbiAgICBsZXQgZXJyb3JzID0gZmFsc2U7XG5cbiAgICBmb3IgKGNvbnN0IHN0YWNrIG9mIHRoaXMuc3RhY2tBcnRpZmFjdHMpIHtcbiAgICAgIGZvciAoY29uc3QgbWVzc2FnZSBvZiBzdGFjay5tZXNzYWdlcykge1xuICAgICAgICBzd2l0Y2ggKG1lc3NhZ2UubGV2ZWwpIHtcbiAgICAgICAgICBjYXNlIFN5bnRoZXNpc01lc3NhZ2VMZXZlbC5XQVJOSU5HOlxuICAgICAgICAgICAgd2FybmluZ3MgPSB0cnVlO1xuICAgICAgICAgICAgYXdhaXQgbG9nZ2VyKCd3YXJuJywgbWVzc2FnZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFN5bnRoZXNpc01lc3NhZ2VMZXZlbC5FUlJPUjpcbiAgICAgICAgICAgIGVycm9ycyA9IHRydWU7XG4gICAgICAgICAgICBhd2FpdCBsb2dnZXIoJ2Vycm9yJywgbWVzc2FnZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBjYXNlIFN5bnRoZXNpc01lc3NhZ2VMZXZlbC5JTkZPOlxuICAgICAgICAgICAgYXdhaXQgbG9nZ2VyKCdpbmZvJywgbWVzc2FnZSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChlcnJvcnMgJiYgZmFpbEF0ICE9ICdub25lJykge1xuICAgICAgdGhyb3cgQXNzZW1ibHlFcnJvci53aXRoU3RhY2tzKCdGb3VuZCBlcnJvcnMnLCB0aGlzLnN0YWNrQXJ0aWZhY3RzKTtcbiAgICB9XG5cbiAgICBpZiAod2FybmluZ3MgJiYgZmFpbEF0ID09PSAnd2FybicpIHtcbiAgICAgIHRocm93IEFzc2VtYmx5RXJyb3Iud2l0aFN0YWNrcygnRm91bmQgd2FybmluZ3MgKC0tc3RyaWN0IG1vZGUpJywgdGhpcy5zdGFja0FydGlmYWN0cyk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1,8 +1,8 @@
1
1
  import type { CloudFormationStackArtifact } from '@aws-cdk/cx-api';
2
2
  import type { Export, StackResourceSummary } from '@aws-sdk/client-cloudformation';
3
- import type { SDK } from '../aws-auth/private';
4
3
  import type { NestedStackTemplates } from './nested-stack-helpers';
5
4
  import type { Template } from './stack-helpers';
5
+ import type { SDK } from '../aws-auth/private';
6
6
  import type { ResourceMetadata } from '../resource-metadata';
7
7
  export interface ListStackResources {
8
8
  listStackResources(): Promise<StackResourceSummary[]>;