@aws-cdk/toolkit-lib 0.4.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/README.md +65 -51
  2. package/build-info.json +2 -2
  3. package/db.json.gz +0 -0
  4. package/lib/actions/diff/private/helpers.d.ts +2 -2
  5. package/lib/actions/diff/private/helpers.js +3 -3
  6. package/lib/actions/drift/index.d.ts +4 -2
  7. package/lib/actions/drift/index.js +1 -1
  8. package/lib/actions/refactor/index.d.ts +25 -21
  9. package/lib/actions/refactor/index.js +54 -1
  10. package/lib/actions/watch/index.d.ts +26 -3
  11. package/lib/actions/watch/index.js +1 -1
  12. package/lib/actions/watch/private/helpers.d.ts +6 -4
  13. package/lib/actions/watch/private/helpers.js +37 -6
  14. package/lib/api/aws-auth/account-cache.d.ts +1 -1
  15. package/lib/api/aws-auth/account-cache.js +2 -2
  16. package/lib/api/aws-auth/awscli-compatible.d.ts +1 -1
  17. package/lib/api/aws-auth/awscli-compatible.js +2 -2
  18. package/lib/api/cloud-assembly/environment.d.ts +1 -1
  19. package/lib/api/cloud-assembly/environment.js +2 -2
  20. package/lib/api/cloud-assembly/private/prepare-source.js +2 -2
  21. package/lib/api/cloudformation/template-body-parameter.d.ts +2 -2
  22. package/lib/api/cloudformation/template-body-parameter.js +3 -3
  23. package/lib/api/deployments/cfn-api.d.ts +8 -8
  24. package/lib/api/deployments/cfn-api.js +15 -15
  25. package/lib/api/drift/drift-formatter.d.ts +4 -4
  26. package/lib/api/drift/drift-formatter.js +5 -5
  27. package/lib/api/hotswap/hotswap-deployments.js +2 -2
  28. package/lib/api/io/private/level-priority.d.ts +2 -2
  29. package/lib/api/io/private/level-priority.js +3 -3
  30. package/lib/api/io/toolkit-action.d.ts +1 -1
  31. package/lib/api/io/toolkit-action.js +1 -1
  32. package/lib/api/logs-monitor/logs-monitor.d.ts +1 -0
  33. package/lib/api/logs-monitor/logs-monitor.js +5 -3
  34. package/lib/api/notices/notices.d.ts +1 -1
  35. package/lib/api/notices/notices.js +2 -2
  36. package/lib/api/refactoring/context.d.ts +22 -0
  37. package/lib/api/refactoring/context.js +129 -0
  38. package/lib/api/refactoring/exclude.d.ts +11 -6
  39. package/lib/api/refactoring/exclude.js +14 -10
  40. package/lib/api/refactoring/execution.d.ts +1 -1
  41. package/lib/api/refactoring/execution.js +50 -25
  42. package/lib/api/refactoring/index.d.ts +7 -28
  43. package/lib/api/refactoring/index.js +23 -146
  44. package/lib/api/resource-import/importer.d.ts +5 -5
  45. package/lib/api/resource-import/importer.js +6 -6
  46. package/lib/api/resource-metadata/resource-metadata.d.ts +2 -2
  47. package/lib/api/resource-metadata/resource-metadata.js +3 -3
  48. package/lib/context-providers/cc-api-provider.js +23 -14
  49. package/lib/context-providers/ssm-parameters.d.ts +4 -4
  50. package/lib/context-providers/ssm-parameters.js +5 -5
  51. package/lib/index_bg.wasm +0 -0
  52. package/lib/toolkit/private/index.d.ts +2 -2
  53. package/lib/toolkit/private/index.js +3 -3
  54. package/lib/toolkit/toolkit-error.d.ts +16 -2
  55. package/lib/toolkit/toolkit-error.js +33 -9
  56. package/lib/toolkit/toolkit.d.ts +15 -22
  57. package/lib/toolkit/toolkit.js +94 -68
  58. package/lib/util/bool.d.ts +1 -1
  59. package/lib/util/bool.js +2 -2
  60. package/lib/util/bytes.d.ts +2 -2
  61. package/lib/util/bytes.js +3 -3
  62. package/lib/util/cloudformation.d.ts +2 -2
  63. package/lib/util/cloudformation.js +3 -3
  64. package/lib/util/format-error.d.ts +1 -1
  65. package/lib/util/format-error.js +6 -2
  66. package/lib/util/net.d.ts +1 -1
  67. package/lib/util/net.js +2 -2
  68. package/lib/util/objects.d.ts +3 -3
  69. package/lib/util/objects.js +4 -4
  70. package/lib/util/yaml-cfn.d.ts +2 -2
  71. package/lib/util/yaml-cfn.js +3 -3
  72. package/package.json +16 -16
package/README.md CHANGED
@@ -1,20 +1,4 @@
1
1
  # AWS CDK Toolkit Library
2
- <!--BEGIN STABILITY BANNER-->
3
-
4
- ---
5
-
6
- ![@aws-cdk/toolkit-lib: Developer Preview](./assets/toolkit--lib-developer_preview-important.svg)
7
-
8
- > The APIs in this module are experimental and under active development.
9
- > They are subject to non-backward compatible changes or removal in future versions.
10
- > The package follows the [Semantic Versioning](https://semver.org/) model for [major version zero](https://semver.org/#spec-item-4).
11
- > Accordingly, breaking changes will be introduced in minor versions and announced in the release notes.
12
- > This means that while you may use them, you may need to update
13
- > your source code when upgrading to a newer version of this package.
14
-
15
- ---
16
-
17
- <!--END STABILITY BANNER-->
18
2
 
19
3
  The AWS Cloud Development Kit (AWS CDK) Toolkit Library enables you to perform CDK actions requiring programmatic access on AWS. You can use the AWS CDK Toolkit Library to implement actions such as bootstrapping, synthesizing, and deploying through code rather than command-line interface (CLI) commands. With this library, you can create custom tools, build specialized CLI applications, and integrate CDK programmatic access capabilities into your development workflows.
20
4
 
@@ -54,7 +38,7 @@ The _Cloud Assembly Source_ is a fundamental CDK Toolkit component that defines
54
38
  For example, CDK apps may need to be synthesized multiple times with additional context values before they are ready.
55
39
  Once created, you can use your _Cloud Assembly Source_ to perform actions with the CDK Toolkit.
56
40
 
57
- The following is an example of creating a _Cloud Assembly Source_ using an inline _assembly builder function_:
41
+ The following is an example of creating a _Cloud Assembly Source_ using the _assembly builder function_:
58
42
 
59
43
  ```ts
60
44
  import * as core from 'aws-cdk-lib/core';
@@ -112,24 +96,25 @@ because the _Cloud Assembly_ does not have to be produced multiple times.
112
96
 
113
97
  ```ts
114
98
  declare const cdk: Toolkit;
115
- declare const cx: ICloudAssemblySource;
99
+ declare const source: ICloudAssemblySource;
116
100
 
117
101
  // Will run the CDK app defined in the Cloud Assembly Source
118
102
  // This is an expensive and slow operation
119
- const cxSnap = await cdk.synth(cx, {
103
+ // But its result can be stored and re-used
104
+ const cx = await cdk.synth(source, {
120
105
  validateStacks: true, // set to `false` to not throw an error if stacks in the assembly contain error annotations
121
106
  })
122
107
 
123
108
  // Will use the previously synthesized Cloud Assembly
124
109
  // This is now a cheap and fast operation
125
- const cxSnap = await cdk.list(cxSnap);
110
+ const appDetails = await cdk.list(cx);
126
111
  ```
127
112
 
128
- You can also use the snapshot to query information about the synthesized _Cloud Assembly_:
113
+ You can also query information about the synthesized _Cloud Assembly_:
129
114
 
130
115
  ```ts
131
- declare const cloudAssembly = await cxSnap.produce();
132
- declare const template = cloudAssembly.getStack("my-stack").template;
116
+ const cloudAssembly = await cx.produce();
117
+ const template = cloudAssembly.getStackByName("my-stack").template;
133
118
  ```
134
119
 
135
120
  ### list
@@ -149,6 +134,23 @@ const details = await cdk.list(cx, {
149
134
  });
150
135
  ```
151
136
 
137
+ ### diff
138
+
139
+ You can create a diff of your app to gain detailed insights into what will be changing in the next deployment.
140
+
141
+ ```ts
142
+ declare const cdk: Toolkit;
143
+ declare const cx: ICloudAssemblySource;
144
+
145
+ const stackDiffs = await cdk.diff(cx, {
146
+ // optionally provide a stack selector to control which stacks you want to create a diff for
147
+ stacks: {
148
+ strategy: StackSelectionStrategy.PATTERN_MUST_MATCH,
149
+ patterns: ["my-stack"],
150
+ }
151
+ });
152
+ ```
153
+
152
154
  ### deploy
153
155
 
154
156
  Deployment is the process of provisioning or updating your infrastructure in AWS using the CloudFormation templates and assets produced during synthesis.
@@ -194,6 +196,28 @@ await cdk.watch(cx, {
194
196
  })
195
197
  ```
196
198
 
199
+ ### drift
200
+
201
+ Drift detection is crucial for maintaining infrastructure reliability.
202
+ It identifies when your deployed resources have been modified outside of your CDK code.
203
+ This allows you to quickly address unauthorized changes.
204
+ Such changes could lead to security vulnerabilities, compliance issues, or unexpected behavior in your cloud environment.
205
+
206
+ Use the drift operation to detect such drift in your CDK applications:
207
+
208
+ ```ts
209
+ declare const cdk: Toolkit;
210
+ declare const cx: ICloudAssemblySource;
211
+
212
+ const stackDrifts = await cdk.drift(cx, {
213
+ // optionally provide a stack selector to control which stacks are checked for drift
214
+ stacks: {
215
+ strategy: StackSelectionStrategy.PATTERN_MUST_MATCH,
216
+ patterns: ["my-stack"],
217
+ }
218
+ });
219
+ ```
220
+
197
221
  ### destroy
198
222
 
199
223
  Use the destroy feature to remove CDK stacks and their associated resources from AWS:
@@ -247,36 +271,40 @@ The CDK Toolkit awaits the completion of each call, allowing clients to perform
247
271
  When you implement an `IoHost` interface, you can either process these communications (for example, logging to CloudWatch or prompting users for input) or return immediately without taking action.
248
272
  If your implementation doesn’t provide a response to a request, the CDK Toolkit proceeds with a default value.
249
273
 
250
- #### Default IoHost
274
+ #### Default `NonInteractiveIoHost`
251
275
 
252
- By default the CDK Toolkit Library will use a `IoHost` implantation that mimics the behavior of the AWS CDK Toolkit CLI.
276
+ By default the CDK Toolkit Library will use a `NonInteractiveIoHost ` implementation that mimics the behavior of the AWS CDK Toolkit CLI.
277
+ This `NonInteractiveIoHost` is available for you as a base implementation to extend on.
253
278
 
254
279
  ### Configure your AWS profile
255
280
 
256
281
  The Toolkit internally uses AWS SDK Clients to make necessary API calls to AWS.
257
- Authentication configuration is loaded automatically from the environment, but you can explicitly specify the profile to be used:
282
+ Authentication configuration is loaded automatically from the environment, but you can explicitly specify the base credentials to be used:
258
283
 
259
284
  ```ts
260
- import { Toolkit } from '@aws-cdk/toolkit-lib';
285
+ import { Toolkit, BaseCredentials } from '@aws-cdk/toolkit-lib';
261
286
 
262
287
  const cdk = new Toolkit({
263
- sdkConfig: { profile: "my-profile" },
288
+ sdkConfig: {
289
+ baseCredentials: BaseCredentials.awsCliCompatible({ profile: "my-profile" })
290
+ },
264
291
  });
265
292
  ```
266
293
 
267
294
  ### Configure a proxy for SDK calls
268
295
 
269
296
  The Toolkit internally uses AWS SDK Clients to make necessary API calls to AWS.
270
- You can specify a proxy configuration for all SDK calls:
297
+ You can specify a Node.js Agent to configure SDK calls.
298
+ This allows you to configure third-party packages like [`proxy-agent`](https://www.npmjs.com/package/proxy-agent) to proxy all SDK calls:
271
299
 
272
300
  ```ts
301
+ import { ProxyAgent } from 'proxy-agent';
273
302
  import { Toolkit } from '@aws-cdk/toolkit-lib';
274
303
 
275
304
  const cdk = new Toolkit({
276
305
  sdkConfig: {
277
306
  httpOptions: {
278
- proxyAddress: "https://example.com",
279
- caBundlePath: "path/to/ca/bundle",
307
+ agent: new ProxyAgent(),
280
308
  },
281
309
  },
282
310
  });
@@ -316,7 +344,8 @@ await cdk.fromCdkApp("ts-node app.ts");
316
344
  await cdk.fromCdkApp("python app.py");
317
345
  ```
318
346
 
319
- Alternatively a inline `AssemblyBuilder` function can be used to build a CDK app on-the-fly.
347
+ The `AssemblyBuilder` function provides basic Toolkit features like Lookups, but otherwise allows you to implement any custom source.
348
+ For example you build an inline CDK app on-the-fly:
320
349
 
321
350
  ```ts
322
351
  declare const cdk: Toolkit;
@@ -412,26 +441,11 @@ try {
412
441
  });
413
442
 
414
443
  } catch (error) {
415
-
416
- if (ToolkitError.isAuthenticationError(error)) {
417
- // Handle credential issues
418
- console.error('AWS credentials error:', error.message);
419
-
420
- } else if (ToolkitError.isAssemblyError(error)) {
421
- // Handle errors from your CDK app
422
- console.error('CDK app error:', error.message);
423
-
424
- } else if (ToolkitError.isContextProviderError(error)) {
425
- // Handle errors from context providers
426
- console.error('Context provider error:', error.message);
427
-
428
- } else if (ToolkitError.isToolkitError(error)) {
429
- // Handle all other Toolkit errors
430
- console.error('Generic Toolkit error:', error.message);
431
-
444
+ // Handle user error
445
+ if (ToolkitError.isToolkitError(error) && error.source === 'user') {
446
+ console.error('Hey, something is wrong with your app!', error.message);
432
447
  } else {
433
- // Handle unexpected errors
434
- console.error('Unexpected error:', error);
448
+ throw error;
435
449
  }
436
450
  }
437
451
  ```
package/build-info.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "comment": "Generated at 2025-05-28T18:47:47Z by build-info.sh",
3
- "commit": "f227c9b"
2
+ "comment": "Generated at 2025-06-05T08:53:05Z by build-info.sh",
3
+ "commit": "e629e30"
4
4
  }
package/db.json.gz CHANGED
Binary file
@@ -9,8 +9,8 @@ export declare function prepareDiff(ioHelper: IoHelper, stacks: StackCollection,
9
9
  * Appends all properties from obj2 to obj1.
10
10
  * obj2 values take priority in the case of collisions.
11
11
  *
12
- * @param obj1 The object to modify
13
- * @param obj2 The object to consume
12
+ * @param obj1 - The object to modify
13
+ * @param obj2 - The object to consume
14
14
  *
15
15
  * @returns obj1 with all properties from obj2
16
16
  */
@@ -103,8 +103,8 @@ async function changeSetDiff(ioHelper, deployments, stack, sdkProvider, resource
103
103
  * Appends all properties from obj2 to obj1.
104
104
  * obj2 values take priority in the case of collisions.
105
105
  *
106
- * @param obj1 The object to modify
107
- * @param obj2 The object to consume
106
+ * @param obj1 - The object to modify
107
+ * @param obj2 - The object to consume
108
108
  *
109
109
  * @returns obj1 with all properties from obj2
110
110
  */
@@ -116,4 +116,4 @@ function appendObject(obj1, obj2) {
116
116
  // Return the modified obj1
117
117
  return obj1;
118
118
  }
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsa0NBaUJDO0FBb0lELG9DQVdDO0FBL0tELCtCQUErQjtBQUMvQiw2QkFBNkI7QUFFN0IsMEJBQWdDO0FBSWhDLDJEQUEyRDtBQUkzRCxrRUFBMEY7QUFDMUYsa0VBQThEO0FBQzlELHdDQUF5RTtBQUV6RSxTQUFnQixXQUFXLENBQ3pCLFFBQWtCLEVBQ2xCLE1BQXVCLEVBQ3ZCLFdBQXdCLEVBQ3hCLFdBQXdCLEVBQ3hCLE9BQW9CO0lBRXBCLFFBQVEsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksY0FBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hFLEtBQUssWUFBWTtZQUNmLE9BQU8sYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4QyxLQUFLLGVBQWU7WUFDbEIsT0FBTyxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3RSxLQUFLLFlBQVk7WUFDZixPQUFPLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVFO1lBQ0UsTUFBTSxJQUFJLDRCQUFZLENBQUMsSUFBQSx5QkFBa0IsRUFBQyx1QkFBdUIsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0FBQ0gsQ0FBQztBQUVELEtBQUssVUFBVSxhQUFhLENBQUMsTUFBdUIsRUFBRSxPQUFvQjtJQUN4RSxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBeUIsQ0FBQztJQUU5RSw4Q0FBOEM7SUFDOUMsSUFBSSxNQUFNLENBQUMsVUFB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QUEyQjtJQUUzQiwwREFBMEQ7SUFDMUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcbmltcG9ydCB0eXBlIHsgQ2hhbmdlU2V0RGlmZk9wdGlvbnMsIERpZmZPcHRpb25zLCBMb2NhbEZpbGVEaWZmT3B0aW9ucyB9IGZyb20gJy4uJztcbmltcG9ydCB7IERpZmZNZXRob2QgfSBmcm9tICcuLic7XG5pbXBvcnQgdHlwZSB7IFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0NvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9hcGkvY2xvdWQtYXNzZW1ibHkvc3RhY2stY29sbGVjdGlvbic7XG5pbXBvcnQgdHlwZSB7IERlcGxveW1lbnRzIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2RlcGxveW1lbnRzJztcbmltcG9ydCAqIGFzIGNmbkFwaSBmcm9tICcuLi8uLi8uLi9hcGkvZGVwbG95bWVudHMvY2ZuLWFwaSc7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlSW5mbyB9IGZyb20gJy4uLy4uLy4uL2FwaS9kaWZmJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi8uLi8uLi9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlc1RvSW1wb3J0IH0gZnJvbSAnLi4vLi4vLi4vYXBpL3Jlc291cmNlLWltcG9ydCc7XG5pbXBvcnQgeyByZW1vdmVOb25JbXBvcnRSZXNvdXJjZXMsIFJlc291cmNlTWlncmF0b3IgfSBmcm9tICcuLi8uLi8uLi9hcGkvcmVzb3VyY2UtaW1wb3J0JztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBkZXNlcmlhbGl6ZVN0cnVjdHVyZSwgZm9ybWF0RXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlRGlmZihcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBzdGFja3M6IFN0YWNrQ29sbGVjdGlvbixcbiAgZGVwbG95bWVudHM6IERlcGxveW1lbnRzLFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIG9wdGlvbnM6IERpZmZPcHRpb25zLFxuKTogUHJvbWlzZTxUZW1wbGF0ZUluZm9bXT4ge1xuICBzd2l0Y2ggKG9wdGlvbnMubWV0aG9kPy5tZXRob2QgPz8gRGlmZk1ldGhvZC5DaGFuZ2VTZXQoKS5tZXRob2QpIHtcbiAgICBjYXNlICdsb2NhbC1maWxlJzpcbiAgICAgIHJldHVybiBsb2NhbEZpbGVEaWZmKHN0YWNrcywgb3B0aW9ucyk7XG4gICAgY2FzZSAndGVtcGxhdGUtb25seSc6XG4gICAgICByZXR1cm4gY2ZuRGlmZihpb0hlbHBlciwgc3RhY2tzLCBkZXBsb3ltZW50cywgb3B0aW9ucywgc2RrUHJvdmlkZXIsIGZhbHNlKTtcbiAgICBjYXNlICdjaGFuZ2Utc2V0JzpcbiAgICAgIHJldHVybiBjZm5EaWZmKGlvSGVscGVyLCBzdGFja3MsIGRlcGxveW1lbnRzLCBvcHRpb25zLCBzZGtQcm92aWRlciwgdHJ1ZSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoZm9ybWF0RXJyb3JNZXNzYWdlKGBVbmtub3duIGRpZmYgbWV0aG9kICR7b3B0aW9ucy5tZXRob2R9YCkpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvY2FsRmlsZURpZmYoc3RhY2tzOiBTdGFja0NvbGxlY3Rpb24sIG9wdGlvbnM6IERpZmZPcHRpb25zKTogUHJvbWlzZTxUZW1wbGF0ZUluZm9bXT4ge1xuICBjb25zdCBtZXRob2RPcHRpb25zID0gKG9wdGlvbnMubWV0aG9kPy5vcHRpb25zID8/IHt9KSBhcyBMb2NhbEZpbGVEaWZmT3B0aW9ucztcblxuICAvLyBDb21wYXJlIHNpbmdsZSBzdGFjayBhZ2FpbnN0IGZpeGVkIHRlbXBsYXRlXG4gIGlmIChzdGFja3Muc3RhY2tDb3VudCAhPT0gMSkge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAnQ2FuIG9ubHkgc2VsZWN0IG9uZSBzdGFjayB3aGVuIGNvbXBhcmluZyB0byBmaXhlZCB0ZW1wbGF0ZS4gVXNlIC0tZXhjbHVzaXZlbHkgdG8gYXZvaWQgc2VsZWN0aW5nIG11bHRpcGxlIHN0YWNrcy4nLFxuICAgICk7XG4gIH1cblxuICBpZiAoIShhd2FpdCBmcy5wYXRoRXhpc3RzKG1ldGhvZE9wdGlvbnMucGF0aCkpKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihgVGhlcmUgaXMgbm8gZmlsZSBhdCAke21ldGhvZE9wdGlvbnMucGF0aH1gKTtcbiAgfVxuXG4gIGNvbnN0IGZpbGUgPSBmcy5yZWFkRmlsZVN5bmMobWV0aG9kT3B0aW9ucy5wYXRoKS50b1N0cmluZygpO1xuICBjb25zdCB0ZW1wbGF0ZSA9IGRlc2VyaWFsaXplU3RydWN0dXJlKGZpbGUpO1xuXG4gIHJldHVybiBbe1xuICAgIG9sZFRlbXBsYXRlOiB0ZW1wbGF0ZSxcbiAgICBuZXdUZW1wbGF0ZTogc3RhY2tzLmZpcnN0U3RhY2ssXG4gIH1dO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjZm5EaWZmKFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIHN0YWNrczogU3RhY2tDb2xsZWN0aW9uLFxuICBkZXBsb3ltZW50czogRGVwbG95bWVudHMsXG4gIG9wdGlvbnM6IERpZmZPcHRpb25zLFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIGluY2x1ZGVDaGFuZ2VTZXQ6IGJvb2xlYW4sXG4pOiBQcm9taXNlPFRlbXBsYXRlSW5mb1tdPiB7XG4gIGNvbnN0IHRlbXBsYXRlSW5mb3MgPSBbXTtcbiAgY29uc3QgbWV0aG9kT3B0aW9ucyA9IChvcHRpb25zLm1ldGhvZD8ub3B0aW9ucyA/PyB7fSkgYXMgQ2hhbmdlU2V0RGlmZk9wdGlvbnM7XG5cbiAgLy8gQ29tcGFyZSBOIHN0YWNrcyBhZ2FpbnN0IGRlcGxveWVkIHRlbXBsYXRlc1xuICBmb3IgKGNvbnN0IHN0YWNrIG9mIHN0YWNrcy5zdGFja0FydGlmYWN0cykge1xuICAgIGNvbnN0IHRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcyA9IGF3YWl0IGRlcGxveW1lbnRzLnJlYWRDdXJyZW50VGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzKFxuICAgICAgc3RhY2ssXG4gICAgICBtZXRob2RPcHRpb25zLmNvbXBhcmVBZ2FpbnN0UHJvY2Vzc2VkVGVtcGxhdGUsXG4gICAgKTtcbiAgICBjb25zdCBjdXJyZW50VGVtcGxhdGUgPSB0ZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MuZGVwbG95ZWRSb290VGVtcGxhdGU7XG4gICAgY29uc3QgbmVzdGVkU3RhY2tzID0gdGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzLm5lc3RlZFN0YWNrcztcblxuICAgIGNvbnN0IG1pZ3JhdG9yID0gbmV3IFJlc291cmNlTWlncmF0b3IoeyBkZXBsb3ltZW50cywgaW9IZWxwZXIgfSk7XG4gICAgY29uc3QgcmVzb3VyY2VzVG9JbXBvcnQgPSBhd2FpdCBtaWdyYXRvci50cnlHZXRSZXNvdXJjZXMoYXdhaXQgZGVwbG95bWVudHMucmVzb2x2ZUVudmlyb25tZW50KHN0YWNrKSk7XG4gICAgaWYgKHJlc291cmNlc1RvSW1wb3J0KSB7XG4gICAgICByZW1vdmVOb25JbXBvcnRSZXNvdXJjZXMoc3RhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGNoYW5nZVNldCA9IGluY2x1ZGVDaGFuZ2VTZXQgPyBhd2FpdCBjaGFuZ2VTZXREaWZmKFxuICAgICAgaW9IZWxwZXIsXG4gICAgICBkZXBsb3ltZW50cyxcbiAgICAgIHN0YWNrLFxuICAgICAgc2RrUHJvdmlkZXIsXG4gICAgICByZXNvdXJjZXNUb0ltcG9ydCxcbiAgICAgIG1ldGhvZE9wdGlvbnMucGFyYW1ldGVycyxcbiAgICAgIG1ldGhvZE9wdGlvbnMuZmFsbGJhY2tUb1RlbXBsYXRlLFxuICAgICAgbWV0aG9kT3B0aW9ucy5pbXBvcnRFeGlzdGluZ1Jlc291cmNlcyxcbiAgICApIDogdW5kZWZpbmVkO1xuXG4gICAgdGVtcGxhdGVJbmZvcy5wdXNoKHtcbiAgICAgIG9sZFRlbXBsYXRlOiBjdXJyZW50VGVtcGxhdGUsXG4gICAgICBuZXdUZW1wbGF0ZTogc3RhY2ssXG4gICAgICBpc0ltcG9ydDogISFyZXNvdXJjZXNUb0ltcG9ydCxcbiAgICAgIG5lc3RlZFN0YWNrcyxcbiAgICAgIGNoYW5nZVNldCxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0ZW1wbGF0ZUluZm9zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjaGFuZ2VTZXREaWZmKFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIGRlcGxveW1lbnRzOiBEZXBsb3ltZW50cyxcbiAgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyLFxuICByZXNvdXJjZXNUb0ltcG9ydD86IFJlc291cmNlc1RvSW1wb3J0LFxuICBwYXJhbWV0ZXJzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSA9IHt9LFxuICBmYWxsQmFja1RvVGVtcGxhdGU6IGJvb2xlYW4gPSB0cnVlLFxuICBpbXBvcnRFeGlzdGluZ1Jlc291cmNlczogYm9vbGVhbiA9IGZhbHNlLFxuKTogUHJvbWlzZTxhbnkgfCB1bmRlZmluZWQ+IHtcbiAgbGV0IHN0YWNrRXhpc3RzID0gZmFsc2U7XG4gIHRyeSB7XG4gICAgc3RhY2tFeGlzdHMgPSBhd2FpdCBkZXBsb3ltZW50cy5zdGFja0V4aXN0cyh7XG4gICAgICBzdGFjayxcbiAgICAgIGRlcGxveU5hbWU6IHN0YWNrLnN0YWNrTmFtZSxcbiAgICAgIHRyeUxvb2t1cFJvbGU6IHRydWUsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGlmICghZmFsbEJhY2tUb1RlbXBsYXRlKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGBkZXNjcmliZVN0YWNrcyBjYWxsIGZhaWxlZCB3aXRoICR7ZX0gZm9yICR7c3RhY2suc3RhY2tOYW1lfSwgc2V0IGZhbGxCYWNrVG9UZW1wbGF0ZSB0byB0cnVlIG9yIHVzZSBEaWZmTWV0aG9kLnRlbXBsYXRlT25seSB0byBiYXNlIHRoZSBkaWZmIG9uIHRlbXBsYXRlIGRpZmZlcmVuY2VzLmApO1xuICAgIH1cblxuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBDaGVja2luZyBpZiB0aGUgc3RhY2sgJHtzdGFjay5zdGFja05hbWV9IGV4aXN0cyBiZWZvcmUgY3JlYXRpbmcgdGhlIGNoYW5nZXNldCBoYXMgZmFpbGVkLCB3aWxsIGJhc2UgdGhlIGRpZmYgb24gdGVtcGxhdGUgZGlmZmVyZW5jZXMuXFxuYCk7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoZm9ybWF0RXJyb3JNZXNzYWdlKGUpKTtcbiAgICBzdGFja0V4aXN0cyA9IGZhbHNlO1xuICB9XG5cbiAgaWYgKHN0YWNrRXhpc3RzKSB7XG4gICAgcmV0dXJuIGNmbkFwaS5jcmVhdGVEaWZmQ2hhbmdlU2V0KGlvSGVscGVyLCB7XG4gICAgICBzdGFjayxcbiAgICAgIHV1aWQ6IHV1aWQudjQoKSxcbiAgICAgIGRlcGxveW1lbnRzLFxuICAgICAgd2lsbEV4ZWN1dGU6IGZhbHNlLFxuICAgICAgc2RrUHJvdmlkZXIsXG4gICAgICBwYXJhbWV0ZXJzOiBwYXJhbWV0ZXJzLFxuICAgICAgcmVzb3VyY2VzVG9JbXBvcnQsXG4gICAgICBmYWlsT25FcnJvcjogIWZhbGxCYWNrVG9UZW1wbGF0ZSxcbiAgICAgIGltcG9ydEV4aXN0aW5nUmVzb3VyY2VzLFxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGlmICghZmFsbEJhY2tUb1RlbXBsYXRlKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGB0aGUgc3RhY2sgJyR7c3RhY2suc3RhY2tOYW1lfScgaGFzIG5vdCBiZWVuIGRlcGxveWVkIHRvIENsb3VkRm9ybWF0aW9uLCBzZXQgZmFsbEJhY2tUb1RlbXBsYXRlIHRvIHRydWUgb3IgdXNlIERpZmZNZXRob2QudGVtcGxhdGVPbmx5IHRvIGJhc2UgdGhlIGRpZmYgb24gdGVtcGxhdGUgZGlmZmVyZW5jZXMuYCk7XG4gICAgfVxuXG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYHRoZSBzdGFjayAnJHtzdGFjay5zdGFja05hbWV9JyBoYXMgbm90IGJlZW4gZGVwbG95ZWQgdG8gQ2xvdWRGb3JtYXRpb24sIHNraXBwaW5nIGNoYW5nZXNldCBjcmVhdGlvbi5gKTtcbiAgICByZXR1cm47XG4gIH1cbn1cblxuLyoqXG4gKiBBcHBlbmRzIGFsbCBwcm9wZXJ0aWVzIGZyb20gb2JqMiB0byBvYmoxLlxuICogb2JqMiB2YWx1ZXMgdGFrZSBwcmlvcml0eSBpbiB0aGUgY2FzZSBvZiBjb2xsaXNpb25zLlxuICpcbiAqIEBwYXJhbSBvYmoxIFRoZSBvYmplY3QgdG8gbW9kaWZ5XG4gKiBAcGFyYW0gb2JqMiBUaGUgb2JqZWN0IHRvIGNvbnN1bWVcbiAqXG4gKiBAcmV0dXJucyBvYmoxIHdpdGggYWxsIHByb3BlcnRpZXMgZnJvbSBvYmoyXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhcHBlbmRPYmplY3Q8VD4oXG4gIG9iajE6IHsgW25hbWU6IHN0cmluZ106IFQgfSxcbiAgb2JqMjogeyBbbmFtZTogc3RyaW5nXTogVCB9LFxuKTogeyBbbmFtZTogc3RyaW5nXTogVCB9IHtcbiAgLy8gRGlyZWN0bHkgbW9kaWZ5IG9iajEgYnkgYWRkaW5nIGFsbCBwcm9wZXJ0aWVzIGZyb20gb2JqMlxuICBmb3IgKGNvbnN0IGtleSBpbiBvYmoyKSB7XG4gICAgb2JqMVtrZXldID0gb2JqMltrZXldO1xuICB9XG5cbiAgLy8gUmV0dXJuIHRoZSBtb2RpZmllZCBvYmoxXG4gIHJldHVybiBvYmoxO1xufVxuIl19
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFnQkEsa0NBaUJDO0FBb0lELG9DQVdDO0FBL0tELCtCQUErQjtBQUMvQiw2QkFBNkI7QUFFN0IsMEJBQWdDO0FBSWhDLDJEQUEyRDtBQUkzRCxrRUFBMEY7QUFDMUYsa0VBQThEO0FBQzlELHdDQUF5RTtBQUV6RSxTQUFnQixXQUFXLENBQ3pCLFFBQWtCLEVBQ2xCLE1BQXVCLEVBQ3ZCLFdBQXdCLEVBQ3hCLFdBQXdCLEVBQ3hCLE9BQW9CO0lBRXBCLFFBQVEsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLElBQUksY0FBVSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hFLEtBQUssWUFBWTtZQUNmLE9BQU8sYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN4QyxLQUFLLGVBQWU7WUFDbEIsT0FBTyxPQUFPLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM3RSxLQUFLLFlBQVk7WUFDZixPQUFPLE9BQU8sQ0FBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzVFO1lBQ0UsTUFBTSxJQUFJLDRCQUFZLENBQUMsSUFBQSx5QkFBa0IsRUFBQyx1QkFBdUIsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN4RixDQUFDO0FBQ0gsQ0FBQztBQUVELEtBQUssVUFBVSxhQUFhLENBQUMsTUFBdUIsRUFBRSxPQUFvQjtJQUN4RSxNQUFNLGFBQWEsR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBeUIsQ0FBQztJQUU5RSw4Q0FBOEM7SUFDOUMsSUFBSSxNQUFNLENBQUMsVUFB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QUEyQjtJQUUzQiwwREFBMEQ7SUFDMUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0ICogYXMgZnMgZnJvbSAnZnMtZXh0cmEnO1xuaW1wb3J0ICogYXMgdXVpZCBmcm9tICd1dWlkJztcbmltcG9ydCB0eXBlIHsgQ2hhbmdlU2V0RGlmZk9wdGlvbnMsIERpZmZPcHRpb25zLCBMb2NhbEZpbGVEaWZmT3B0aW9ucyB9IGZyb20gJy4uJztcbmltcG9ydCB7IERpZmZNZXRob2QgfSBmcm9tICcuLic7XG5pbXBvcnQgdHlwZSB7IFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0NvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi8uLi9hcGkvY2xvdWQtYXNzZW1ibHkvc3RhY2stY29sbGVjdGlvbic7XG5pbXBvcnQgdHlwZSB7IERlcGxveW1lbnRzIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2RlcGxveW1lbnRzJztcbmltcG9ydCAqIGFzIGNmbkFwaSBmcm9tICcuLi8uLi8uLi9hcGkvZGVwbG95bWVudHMvY2ZuLWFwaSc7XG5pbXBvcnQgdHlwZSB7IFRlbXBsYXRlSW5mbyB9IGZyb20gJy4uLy4uLy4uL2FwaS9kaWZmJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi8uLi8uLi9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlc1RvSW1wb3J0IH0gZnJvbSAnLi4vLi4vLi4vYXBpL3Jlc291cmNlLWltcG9ydCc7XG5pbXBvcnQgeyByZW1vdmVOb25JbXBvcnRSZXNvdXJjZXMsIFJlc291cmNlTWlncmF0b3IgfSBmcm9tICcuLi8uLi8uLi9hcGkvcmVzb3VyY2UtaW1wb3J0JztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgeyBkZXNlcmlhbGl6ZVN0cnVjdHVyZSwgZm9ybWF0RXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbCc7XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlRGlmZihcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBzdGFja3M6IFN0YWNrQ29sbGVjdGlvbixcbiAgZGVwbG95bWVudHM6IERlcGxveW1lbnRzLFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIG9wdGlvbnM6IERpZmZPcHRpb25zLFxuKTogUHJvbWlzZTxUZW1wbGF0ZUluZm9bXT4ge1xuICBzd2l0Y2ggKG9wdGlvbnMubWV0aG9kPy5tZXRob2QgPz8gRGlmZk1ldGhvZC5DaGFuZ2VTZXQoKS5tZXRob2QpIHtcbiAgICBjYXNlICdsb2NhbC1maWxlJzpcbiAgICAgIHJldHVybiBsb2NhbEZpbGVEaWZmKHN0YWNrcywgb3B0aW9ucyk7XG4gICAgY2FzZSAndGVtcGxhdGUtb25seSc6XG4gICAgICByZXR1cm4gY2ZuRGlmZihpb0hlbHBlciwgc3RhY2tzLCBkZXBsb3ltZW50cywgb3B0aW9ucywgc2RrUHJvdmlkZXIsIGZhbHNlKTtcbiAgICBjYXNlICdjaGFuZ2Utc2V0JzpcbiAgICAgIHJldHVybiBjZm5EaWZmKGlvSGVscGVyLCBzdGFja3MsIGRlcGxveW1lbnRzLCBvcHRpb25zLCBzZGtQcm92aWRlciwgdHJ1ZSk7XG4gICAgZGVmYXVsdDpcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoZm9ybWF0RXJyb3JNZXNzYWdlKGBVbmtub3duIGRpZmYgbWV0aG9kICR7b3B0aW9ucy5tZXRob2R9YCkpO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGxvY2FsRmlsZURpZmYoc3RhY2tzOiBTdGFja0NvbGxlY3Rpb24sIG9wdGlvbnM6IERpZmZPcHRpb25zKTogUHJvbWlzZTxUZW1wbGF0ZUluZm9bXT4ge1xuICBjb25zdCBtZXRob2RPcHRpb25zID0gKG9wdGlvbnMubWV0aG9kPy5vcHRpb25zID8/IHt9KSBhcyBMb2NhbEZpbGVEaWZmT3B0aW9ucztcblxuICAvLyBDb21wYXJlIHNpbmdsZSBzdGFjayBhZ2FpbnN0IGZpeGVkIHRlbXBsYXRlXG4gIGlmIChzdGFja3Muc3RhY2tDb3VudCAhPT0gMSkge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoXG4gICAgICAnQ2FuIG9ubHkgc2VsZWN0IG9uZSBzdGFjayB3aGVuIGNvbXBhcmluZyB0byBmaXhlZCB0ZW1wbGF0ZS4gVXNlIC0tZXhjbHVzaXZlbHkgdG8gYXZvaWQgc2VsZWN0aW5nIG11bHRpcGxlIHN0YWNrcy4nLFxuICAgICk7XG4gIH1cblxuICBpZiAoIShhd2FpdCBmcy5wYXRoRXhpc3RzKG1ldGhvZE9wdGlvbnMucGF0aCkpKSB7XG4gICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihgVGhlcmUgaXMgbm8gZmlsZSBhdCAke21ldGhvZE9wdGlvbnMucGF0aH1gKTtcbiAgfVxuXG4gIGNvbnN0IGZpbGUgPSBmcy5yZWFkRmlsZVN5bmMobWV0aG9kT3B0aW9ucy5wYXRoKS50b1N0cmluZygpO1xuICBjb25zdCB0ZW1wbGF0ZSA9IGRlc2VyaWFsaXplU3RydWN0dXJlKGZpbGUpO1xuXG4gIHJldHVybiBbe1xuICAgIG9sZFRlbXBsYXRlOiB0ZW1wbGF0ZSxcbiAgICBuZXdUZW1wbGF0ZTogc3RhY2tzLmZpcnN0U3RhY2ssXG4gIH1dO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjZm5EaWZmKFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIHN0YWNrczogU3RhY2tDb2xsZWN0aW9uLFxuICBkZXBsb3ltZW50czogRGVwbG95bWVudHMsXG4gIG9wdGlvbnM6IERpZmZPcHRpb25zLFxuICBzZGtQcm92aWRlcjogU2RrUHJvdmlkZXIsXG4gIGluY2x1ZGVDaGFuZ2VTZXQ6IGJvb2xlYW4sXG4pOiBQcm9taXNlPFRlbXBsYXRlSW5mb1tdPiB7XG4gIGNvbnN0IHRlbXBsYXRlSW5mb3MgPSBbXTtcbiAgY29uc3QgbWV0aG9kT3B0aW9ucyA9IChvcHRpb25zLm1ldGhvZD8ub3B0aW9ucyA/PyB7fSkgYXMgQ2hhbmdlU2V0RGlmZk9wdGlvbnM7XG5cbiAgLy8gQ29tcGFyZSBOIHN0YWNrcyBhZ2FpbnN0IGRlcGxveWVkIHRlbXBsYXRlc1xuICBmb3IgKGNvbnN0IHN0YWNrIG9mIHN0YWNrcy5zdGFja0FydGlmYWN0cykge1xuICAgIGNvbnN0IHRlbXBsYXRlV2l0aE5lc3RlZFN0YWNrcyA9IGF3YWl0IGRlcGxveW1lbnRzLnJlYWRDdXJyZW50VGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzKFxuICAgICAgc3RhY2ssXG4gICAgICBtZXRob2RPcHRpb25zLmNvbXBhcmVBZ2FpbnN0UHJvY2Vzc2VkVGVtcGxhdGUsXG4gICAgKTtcbiAgICBjb25zdCBjdXJyZW50VGVtcGxhdGUgPSB0ZW1wbGF0ZVdpdGhOZXN0ZWRTdGFja3MuZGVwbG95ZWRSb290VGVtcGxhdGU7XG4gICAgY29uc3QgbmVzdGVkU3RhY2tzID0gdGVtcGxhdGVXaXRoTmVzdGVkU3RhY2tzLm5lc3RlZFN0YWNrcztcblxuICAgIGNvbnN0IG1pZ3JhdG9yID0gbmV3IFJlc291cmNlTWlncmF0b3IoeyBkZXBsb3ltZW50cywgaW9IZWxwZXIgfSk7XG4gICAgY29uc3QgcmVzb3VyY2VzVG9JbXBvcnQgPSBhd2FpdCBtaWdyYXRvci50cnlHZXRSZXNvdXJjZXMoYXdhaXQgZGVwbG95bWVudHMucmVzb2x2ZUVudmlyb25tZW50KHN0YWNrKSk7XG4gICAgaWYgKHJlc291cmNlc1RvSW1wb3J0KSB7XG4gICAgICByZW1vdmVOb25JbXBvcnRSZXNvdXJjZXMoc3RhY2spO1xuICAgIH1cblxuICAgIGNvbnN0IGNoYW5nZVNldCA9IGluY2x1ZGVDaGFuZ2VTZXQgPyBhd2FpdCBjaGFuZ2VTZXREaWZmKFxuICAgICAgaW9IZWxwZXIsXG4gICAgICBkZXBsb3ltZW50cyxcbiAgICAgIHN0YWNrLFxuICAgICAgc2RrUHJvdmlkZXIsXG4gICAgICByZXNvdXJjZXNUb0ltcG9ydCxcbiAgICAgIG1ldGhvZE9wdGlvbnMucGFyYW1ldGVycyxcbiAgICAgIG1ldGhvZE9wdGlvbnMuZmFsbGJhY2tUb1RlbXBsYXRlLFxuICAgICAgbWV0aG9kT3B0aW9ucy5pbXBvcnRFeGlzdGluZ1Jlc291cmNlcyxcbiAgICApIDogdW5kZWZpbmVkO1xuXG4gICAgdGVtcGxhdGVJbmZvcy5wdXNoKHtcbiAgICAgIG9sZFRlbXBsYXRlOiBjdXJyZW50VGVtcGxhdGUsXG4gICAgICBuZXdUZW1wbGF0ZTogc3RhY2ssXG4gICAgICBpc0ltcG9ydDogISFyZXNvdXJjZXNUb0ltcG9ydCxcbiAgICAgIG5lc3RlZFN0YWNrcyxcbiAgICAgIGNoYW5nZVNldCxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiB0ZW1wbGF0ZUluZm9zO1xufVxuXG5hc3luYyBmdW5jdGlvbiBjaGFuZ2VTZXREaWZmKFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIGRlcGxveW1lbnRzOiBEZXBsb3ltZW50cyxcbiAgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCxcbiAgc2RrUHJvdmlkZXI6IFNka1Byb3ZpZGVyLFxuICByZXNvdXJjZXNUb0ltcG9ydD86IFJlc291cmNlc1RvSW1wb3J0LFxuICBwYXJhbWV0ZXJzOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSA9IHt9LFxuICBmYWxsQmFja1RvVGVtcGxhdGU6IGJvb2xlYW4gPSB0cnVlLFxuICBpbXBvcnRFeGlzdGluZ1Jlc291cmNlczogYm9vbGVhbiA9IGZhbHNlLFxuKTogUHJvbWlzZTxhbnkgfCB1bmRlZmluZWQ+IHtcbiAgbGV0IHN0YWNrRXhpc3RzID0gZmFsc2U7XG4gIHRyeSB7XG4gICAgc3RhY2tFeGlzdHMgPSBhd2FpdCBkZXBsb3ltZW50cy5zdGFja0V4aXN0cyh7XG4gICAgICBzdGFjayxcbiAgICAgIGRlcGxveU5hbWU6IHN0YWNrLnN0YWNrTmFtZSxcbiAgICAgIHRyeUxvb2t1cFJvbGU6IHRydWUsXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgIGlmICghZmFsbEJhY2tUb1RlbXBsYXRlKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGBkZXNjcmliZVN0YWNrcyBjYWxsIGZhaWxlZCB3aXRoICR7ZX0gZm9yICR7c3RhY2suc3RhY2tOYW1lfSwgc2V0IGZhbGxCYWNrVG9UZW1wbGF0ZSB0byB0cnVlIG9yIHVzZSBEaWZmTWV0aG9kLnRlbXBsYXRlT25seSB0byBiYXNlIHRoZSBkaWZmIG9uIHRlbXBsYXRlIGRpZmZlcmVuY2VzLmApO1xuICAgIH1cblxuICAgIGF3YWl0IGlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGBDaGVja2luZyBpZiB0aGUgc3RhY2sgJHtzdGFjay5zdGFja05hbWV9IGV4aXN0cyBiZWZvcmUgY3JlYXRpbmcgdGhlIGNoYW5nZXNldCBoYXMgZmFpbGVkLCB3aWxsIGJhc2UgdGhlIGRpZmYgb24gdGVtcGxhdGUgZGlmZmVyZW5jZXMuXFxuYCk7XG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoZm9ybWF0RXJyb3JNZXNzYWdlKGUpKTtcbiAgICBzdGFja0V4aXN0cyA9IGZhbHNlO1xuICB9XG5cbiAgaWYgKHN0YWNrRXhpc3RzKSB7XG4gICAgcmV0dXJuIGNmbkFwaS5jcmVhdGVEaWZmQ2hhbmdlU2V0KGlvSGVscGVyLCB7XG4gICAgICBzdGFjayxcbiAgICAgIHV1aWQ6IHV1aWQudjQoKSxcbiAgICAgIGRlcGxveW1lbnRzLFxuICAgICAgd2lsbEV4ZWN1dGU6IGZhbHNlLFxuICAgICAgc2RrUHJvdmlkZXIsXG4gICAgICBwYXJhbWV0ZXJzOiBwYXJhbWV0ZXJzLFxuICAgICAgcmVzb3VyY2VzVG9JbXBvcnQsXG4gICAgICBmYWlsT25FcnJvcjogIWZhbGxCYWNrVG9UZW1wbGF0ZSxcbiAgICAgIGltcG9ydEV4aXN0aW5nUmVzb3VyY2VzLFxuICAgIH0pO1xuICB9IGVsc2Uge1xuICAgIGlmICghZmFsbEJhY2tUb1RlbXBsYXRlKSB7XG4gICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGB0aGUgc3RhY2sgJyR7c3RhY2suc3RhY2tOYW1lfScgaGFzIG5vdCBiZWVuIGRlcGxveWVkIHRvIENsb3VkRm9ybWF0aW9uLCBzZXQgZmFsbEJhY2tUb1RlbXBsYXRlIHRvIHRydWUgb3IgdXNlIERpZmZNZXRob2QudGVtcGxhdGVPbmx5IHRvIGJhc2UgdGhlIGRpZmYgb24gdGVtcGxhdGUgZGlmZmVyZW5jZXMuYCk7XG4gICAgfVxuXG4gICAgYXdhaXQgaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoYHRoZSBzdGFjayAnJHtzdGFjay5zdGFja05hbWV9JyBoYXMgbm90IGJlZW4gZGVwbG95ZWQgdG8gQ2xvdWRGb3JtYXRpb24sIHNraXBwaW5nIGNoYW5nZXNldCBjcmVhdGlvbi5gKTtcbiAgICByZXR1cm47XG4gIH1cbn1cblxuLyoqXG4gKiBBcHBlbmRzIGFsbCBwcm9wZXJ0aWVzIGZyb20gb2JqMiB0byBvYmoxLlxuICogb2JqMiB2YWx1ZXMgdGFrZSBwcmlvcml0eSBpbiB0aGUgY2FzZSBvZiBjb2xsaXNpb25zLlxuICpcbiAqIEBwYXJhbSBvYmoxIC0gVGhlIG9iamVjdCB0byBtb2RpZnlcbiAqIEBwYXJhbSBvYmoyIC0gVGhlIG9iamVjdCB0byBjb25zdW1lXG4gKlxuICogQHJldHVybnMgb2JqMSB3aXRoIGFsbCBwcm9wZXJ0aWVzIGZyb20gb2JqMlxuICovXG5leHBvcnQgZnVuY3Rpb24gYXBwZW5kT2JqZWN0PFQ+KFxuICBvYmoxOiB7IFtuYW1lOiBzdHJpbmddOiBUIH0sXG4gIG9iajI6IHsgW25hbWU6IHN0cmluZ106IFQgfSxcbik6IHsgW25hbWU6IHN0cmluZ106IFQgfSB7XG4gIC8vIERpcmVjdGx5IG1vZGlmeSBvYmoxIGJ5IGFkZGluZyBhbGwgcHJvcGVydGllcyBmcm9tIG9iajJcbiAgZm9yIChjb25zdCBrZXkgaW4gb2JqMikge1xuICAgIG9iajFba2V5XSA9IG9iajJba2V5XTtcbiAgfVxuXG4gIC8vIFJldHVybiB0aGUgbW9kaWZpZWQgb2JqMVxuICByZXR1cm4gb2JqMTtcbn1cbiJdfQ==
@@ -1,9 +1,11 @@
1
1
  import type { StackSelector } from '../../api/cloud-assembly';
2
2
  export interface DriftOptions {
3
3
  /**
4
- * Criteria for selecting stacks to check for drift
4
+ * Select stacks to check for drift
5
+ *
6
+ * @default - all stacks
5
7
  */
6
- readonly stacks: StackSelector;
8
+ readonly stacks?: StackSelector;
7
9
  }
8
10
  /**
9
11
  * The different types of drift as formatted drift output
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBEcmlmdE9wdGlvbnMge1xuICAvKipcbiAgICogQ3JpdGVyaWEgZm9yIHNlbGVjdGluZyBzdGFja3MgdG8gY2hlY2sgZm9yIGRyaWZ0XG4gICAqL1xuICByZWFkb25seSBzdGFja3M6IFN0YWNrU2VsZWN0b3I7XG59XG5cbi8qKlxuICogVGhlIGRpZmZlcmVudCB0eXBlcyBvZiBkcmlmdCBhcyBmb3JtYXR0ZWQgZHJpZnQgb3V0cHV0XG4gKlxuICogQSBtaXNzaW5nIHR5cGUgaW1wbGllcyBubyBkcmlmdCBvZiB0aGlzIHR5cGUuXG4gKiBJZiBubyBkcmlmdCB3YXMgZGV0ZWN0ZWQgYXQgYWxsLCBhbGwgd2lsbCBiZSBtaXNzaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZvcm1hdHRlZERyaWZ0IHtcbiAgLyoqXG4gICAqIFJlc291cmNlcyB0aGF0IGhhdmUgbm90IGNoYW5nZWRcbiAgICovXG4gIHJlYWRvbmx5IHVuY2hhbmdlZD86IHN0cmluZztcblxuICAvKipcbiAgICogUmVzb3VyY2VzIHRoYXQgd2VyZSBub3QgY2hlY2tlZCBmb3IgZHJpZnRcbiAgICovXG4gIHJlYWRvbmx5IHVuY2hlY2tlZD86IHN0cmluZztcblxuICAvKipcbiAgICogUmVzb3VyY2VzIHdpdGggZHJpZnRcbiAgICovXG4gIHJlYWRvbmx5IG1vZGlmaWVkPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBSZXNvdXJjZXMgdGhhdCBoYXZlIGJlZW4gZGVsZXRlZCAoZHJpZnQpXG4gICAqL1xuICByZWFkb25seSBkZWxldGVkPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIENvbWJpbmVkIGRyaWZ0IGZvciBzZWxlY3RlZCBzdGFja3Mgb2YgdGhlIGFwcFxuICovXG5leHBvcnQgaW50ZXJmYWNlIERyaWZ0UmVzdWx0IHtcbiAgLyoqXG4gICAqIE51bWJlciBvZiByZXNvdXJjZXMgd2l0aCBkcmlmdC4gSWYgdW5kZWZpbmVkLCB0aGVuIGFuIGVycm9yIG9jY3VycmVkXG4gICAqIGFuZCByZXNvdXJjZXMgd2VyZSBub3QgcHJvcGVybHkgY2hlY2tlZCBmb3IgZHJpZnQuXG4gICAqL1xuICByZWFkb25seSBudW1SZXNvdXJjZXNXaXRoRHJpZnQ6IG51bWJlcjtcblxuICAvKipcbiAgICogSG93IG1hbnkgcmVzb3VyY2VzIHdlcmUgbm90IGNoZWNrZWQgZm9yIGRyaWZ0LiBJZiB1bmRlZmluZWQsIHRoZW4gYW5cbiAgICogZXJyb3Igb2NjdXJyZWQgYW5kIHJlc291cmNlcyB3ZXJlIG5vdCBwcm9wZXJseSBjaGVja2VkIGZvciBkcmlmdC5cbiAgICovXG4gIHJlYWRvbmx5IG51bVJlc291cmNlc1VuY2hlY2tlZDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBDb21wbGV0ZSBmb3JtYXR0ZWQgZHJpZnRcbiAgICovXG4gIHJlYWRvbmx5IGZvcm1hdHRlZERyaWZ0OiBGb3JtYXR0ZWREcmlmdDtcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBEcmlmdE9wdGlvbnMge1xuICAvKipcbiAgICogU2VsZWN0IHN0YWNrcyB0byBjaGVjayBmb3IgZHJpZnRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbGwgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBzdGFja3M/OiBTdGFja1NlbGVjdG9yO1xufVxuXG4vKipcbiAqIFRoZSBkaWZmZXJlbnQgdHlwZXMgb2YgZHJpZnQgYXMgZm9ybWF0dGVkIGRyaWZ0IG91dHB1dFxuICpcbiAqIEEgbWlzc2luZyB0eXBlIGltcGxpZXMgbm8gZHJpZnQgb2YgdGhpcyB0eXBlLlxuICogSWYgbm8gZHJpZnQgd2FzIGRldGVjdGVkIGF0IGFsbCwgYWxsIHdpbGwgYmUgbWlzc2luZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGb3JtYXR0ZWREcmlmdCB7XG4gIC8qKlxuICAgKiBSZXNvdXJjZXMgdGhhdCBoYXZlIG5vdCBjaGFuZ2VkXG4gICAqL1xuICByZWFkb25seSB1bmNoYW5nZWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlcyB0aGF0IHdlcmUgbm90IGNoZWNrZWQgZm9yIGRyaWZ0XG4gICAqL1xuICByZWFkb25seSB1bmNoZWNrZWQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFJlc291cmNlcyB3aXRoIGRyaWZ0XG4gICAqL1xuICByZWFkb25seSBtb2RpZmllZD86IHN0cmluZztcblxuICAvKipcbiAgICogUmVzb3VyY2VzIHRoYXQgaGF2ZSBiZWVuIGRlbGV0ZWQgKGRyaWZ0KVxuICAgKi9cbiAgcmVhZG9ubHkgZGVsZXRlZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBDb21iaW5lZCBkcmlmdCBmb3Igc2VsZWN0ZWQgc3RhY2tzIG9mIHRoZSBhcHBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEcmlmdFJlc3VsdCB7XG4gIC8qKlxuICAgKiBOdW1iZXIgb2YgcmVzb3VyY2VzIHdpdGggZHJpZnQuIElmIHVuZGVmaW5lZCwgdGhlbiBhbiBlcnJvciBvY2N1cnJlZFxuICAgKiBhbmQgcmVzb3VyY2VzIHdlcmUgbm90IHByb3Blcmx5IGNoZWNrZWQgZm9yIGRyaWZ0LlxuICAgKi9cbiAgcmVhZG9ubHkgbnVtUmVzb3VyY2VzV2l0aERyaWZ0OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIEhvdyBtYW55IHJlc291cmNlcyB3ZXJlIG5vdCBjaGVja2VkIGZvciBkcmlmdC4gSWYgdW5kZWZpbmVkLCB0aGVuIGFuXG4gICAqIGVycm9yIG9jY3VycmVkIGFuZCByZXNvdXJjZXMgd2VyZSBub3QgcHJvcGVybHkgY2hlY2tlZCBmb3IgZHJpZnQuXG4gICAqL1xuICByZWFkb25seSBudW1SZXNvdXJjZXNVbmNoZWNrZWQ6IG51bWJlcjtcblxuICAvKipcbiAgICogQ29tcGxldGUgZm9ybWF0dGVkIGRyaWZ0XG4gICAqL1xuICByZWFkb25seSBmb3JtYXR0ZWREcmlmdDogRm9ybWF0dGVkRHJpZnQ7XG59XG4iXX0=
@@ -1,4 +1,27 @@
1
1
  import type { StackSelector } from '../../api/cloud-assembly';
2
+ /**
3
+ * The source of the resource mappings to be used for refactoring.
4
+ */
5
+ export declare class MappingSource {
6
+ /**
7
+ * The mapping will be automatically generated based on a comparison of
8
+ * the deployed stacks and the local stacks.
9
+ *
10
+ * @param exclude - A list of resource locations to exclude from the mapping.
11
+ */
12
+ static auto(exclude?: string[]): MappingSource;
13
+ /**
14
+ * An explicitly provided list of mappings, which will be used for refactoring.
15
+ */
16
+ static explicit(groups: MappingGroup[]): MappingSource;
17
+ /**
18
+ * An explicitly provided list of mappings, which will be used for refactoring,
19
+ * but in reverse, that is, the source locations will become the destination
20
+ * locations and vice versa.
21
+ */
22
+ static reverse(groups: MappingGroup[]): MappingSource;
23
+ private constructor();
24
+ }
2
25
  export interface RefactorOptions {
3
26
  /**
4
27
  * Whether to only show the proposed refactor, without applying it
@@ -13,28 +36,9 @@ export interface RefactorOptions {
13
36
  */
14
37
  stacks?: StackSelector;
15
38
  /**
16
- * A list of resources that will not be part of the refactor.
17
- * Elements of this list must be the _destination_ locations
18
- * that should be excluded, i.e., the location to which a
19
- * resource would be moved if the refactor were to happen.
20
- *
21
- * The format of the locations in the file can be either:
22
- *
23
- * - Stack name and logical ID (e.g. `Stack1.MyQueue`)
24
- * - A construct path (e.g. `Stack1/Foo/Bar/Resource`).
25
- */
26
- exclude?: string[];
27
- /**
28
- * An explicit mapping to be used by the toolkit (as opposed to letting the
29
- * toolkit itself compute the mapping).
30
- */
31
- mappings?: MappingGroup[];
32
- /**
33
- * Modifies the behavior of the 'mappings' option by swapping source and
34
- * destination locations. This is useful when you want to undo a refactor
35
- * that was previously applied.
39
+ * How the toolkit should obtain the mappings
36
40
  */
37
- revert?: boolean;
41
+ mappingSource?: MappingSource;
38
42
  }
39
43
  export interface MappingGroup {
40
44
  /**
@@ -1,3 +1,56 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBSZWZhY3Rvck9wdGlvbnMge1xuICAvKipcbiAgICogV2hldGhlciB0byBvbmx5IHNob3cgdGhlIHByb3Bvc2VkIHJlZmFjdG9yLCB3aXRob3V0IGFwcGx5aW5nIGl0XG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBkcnlSdW4/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBDcml0ZXJpYSBmb3Igc2VsZWN0aW5nIHN0YWNrcyB0byBkZXBsb3lcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbGwgc3RhY2tzXG4gICAqL1xuICBzdGFja3M/OiBTdGFja1NlbGVjdG9yO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgcmVzb3VyY2VzIHRoYXQgd2lsbCBub3QgYmUgcGFydCBvZiB0aGUgcmVmYWN0b3IuXG4gICAqIEVsZW1lbnRzIG9mIHRoaXMgbGlzdCBtdXN0IGJlIHRoZSBfZGVzdGluYXRpb25fIGxvY2F0aW9uc1xuICAgKiB0aGF0IHNob3VsZCBiZSBleGNsdWRlZCwgaS5lLiwgdGhlIGxvY2F0aW9uIHRvIHdoaWNoIGFcbiAgICogcmVzb3VyY2Ugd291bGQgYmUgbW92ZWQgaWYgdGhlIHJlZmFjdG9yIHdlcmUgdG8gaGFwcGVuLlxuICAgKlxuICAgKiBUaGUgZm9ybWF0IG9mIHRoZSBsb2NhdGlvbnMgaW4gdGhlIGZpbGUgY2FuIGJlIGVpdGhlcjpcbiAgICpcbiAgICogLSBTdGFjayBuYW1lIGFuZCBsb2dpY2FsIElEIChlLmcuIGBTdGFjazEuTXlRdWV1ZWApXG4gICAqIC0gQSBjb25zdHJ1Y3QgcGF0aCAoZS5nLiBgU3RhY2sxL0Zvby9CYXIvUmVzb3VyY2VgKS5cbiAgICovXG4gIGV4Y2x1ZGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQW4gZXhwbGljaXQgbWFwcGluZyB0byBiZSB1c2VkIGJ5IHRoZSB0b29sa2l0IChhcyBvcHBvc2VkIHRvIGxldHRpbmcgdGhlXG4gICAqIHRvb2xraXQgaXRzZWxmIGNvbXB1dGUgdGhlIG1hcHBpbmcpLlxuICAgKi9cbiAgbWFwcGluZ3M/OiBNYXBwaW5nR3JvdXBbXTtcblxuICAvKipcbiAgICogTW9kaWZpZXMgdGhlIGJlaGF2aW9yIG9mIHRoZSAnbWFwcGluZ3MnIG9wdGlvbiBieSBzd2FwcGluZyBzb3VyY2UgYW5kXG4gICAqIGRlc3RpbmF0aW9uIGxvY2F0aW9ucy4gVGhpcyBpcyB1c2VmdWwgd2hlbiB5b3Ugd2FudCB0byB1bmRvIGEgcmVmYWN0b3JcbiAgICogdGhhdCB3YXMgcHJldmlvdXNseSBhcHBsaWVkLlxuICAgKi9cbiAgcmV2ZXJ0PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYXBwaW5nR3JvdXAge1xuICAvKipcbiAgICogVGhlIGFjY291bnQgSUQgb2YgdGhlIGVudmlyb25tZW50IGluIHdoaWNoIHRoZSBtYXBwaW5nIGlzIHZhbGlkLlxuICAgKi9cbiAgYWNjb3VudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcmVnaW9uIG9mIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGUgbWFwcGluZyBpcyB2YWxpZC5cbiAgICovXG4gIHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGNvbGxlY3Rpb24gb2YgcmVzb3VyY2UgbWFwcGluZ3MsIHdoZXJlIGVhY2gga2V5IGlzIHRoZSBzb3VyY2UgbG9jYXRpb25cbiAgICogYW5kIHRoZSB2YWx1ZSBpcyB0aGUgZGVzdGluYXRpb24gbG9jYXRpb24uIExvY2F0aW9ucyBtdXN0IGJlIGluIHRoZSBmb3JtYXRcbiAgICogYFN0YWNrTmFtZS5Mb2dpY2FsSWRgLiBUaGUgc291cmNlIG11c3QgcmVmZXIgdG8gYSBsb2NhdGlvbiB3aGVyZSB0aGVyZSBpc1xuICAgKiBhIHJlc291cmNlIGN1cnJlbnRseSBkZXBsb3llZCwgd2hpbGUgdGhlIGRlc3RpbmF0aW9uIG11c3QgcmVmZXIgdG8gYVxuICAgKiBsb2NhdGlvbiB0aGF0IGlzIG5vdCBhbHJlYWR5IG9jY3VwaWVkIGJ5IGFueSByZXNvdXJjZS5cbiAgICpcbiAgICovXG4gIHJlc291cmNlczoge1xuICAgIFtrZXk6IHN0cmluZ106IHN0cmluZztcbiAgfTtcbn1cbiJdfQ==
3
+ exports.MappingSource = void 0;
4
+ const refactoring_1 = require("../../api/refactoring");
5
+ /**
6
+ * The source of the resource mappings to be used for refactoring.
7
+ */
8
+ class MappingSource {
9
+ /**
10
+ * The mapping will be automatically generated based on a comparison of
11
+ * the deployed stacks and the local stacks.
12
+ *
13
+ * @param exclude - A list of resource locations to exclude from the mapping.
14
+ */
15
+ static auto(exclude = []) {
16
+ const excludeList = new refactoring_1.InMemoryExcludeList(exclude);
17
+ return new MappingSource('auto', [], excludeList);
18
+ }
19
+ /**
20
+ * An explicitly provided list of mappings, which will be used for refactoring.
21
+ */
22
+ static explicit(groups) {
23
+ return new MappingSource('explicit', groups, new refactoring_1.NeverExclude());
24
+ }
25
+ /**
26
+ * An explicitly provided list of mappings, which will be used for refactoring,
27
+ * but in reverse, that is, the source locations will become the destination
28
+ * locations and vice versa.
29
+ */
30
+ static reverse(groups) {
31
+ const reverseGroups = groups.map((group) => ({
32
+ ...group,
33
+ resources: Object.fromEntries(Object.entries(group.resources).map(([src, dst]) => [dst, src])),
34
+ }));
35
+ return MappingSource.explicit(reverseGroups);
36
+ }
37
+ /**
38
+ * @internal
39
+ */
40
+ source;
41
+ /**
42
+ * @internal
43
+ */
44
+ groups;
45
+ /**
46
+ * @internal
47
+ */
48
+ exclude;
49
+ constructor(source, groups, exclude) {
50
+ this.source = source;
51
+ this.groups = groups;
52
+ this.exclude = exclude;
53
+ }
54
+ }
55
+ exports.MappingSource = MappingSource;
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFQSx1REFBMEU7QUFJMUU7O0dBRUc7QUFDSCxNQUFhLGFBQWE7SUFDeEI7Ozs7O09BS0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQW9CLEVBQUU7UUFDdkMsTUFBTSxXQUFXLEdBQUcsSUFBSSxpQ0FBbUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRCxPQUFPLElBQUksYUFBYSxDQUFDLE1BQU0sRUFBRSxFQUFFLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFzQjtRQUMzQyxPQUFPLElBQUksYUFBYSxDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsSUFBSSwwQkFBWSxFQUFFLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBc0I7UUFDMUMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMzQyxHQUFHLEtBQUs7WUFDUixTQUFTLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztTQUMvRixDQUFDLENBQUMsQ0FBQztRQUVKLE9BQU8sYUFBYSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRUQ7O09BRUc7SUFDYSxNQUFNLENBQWM7SUFFcEM7O09BRUc7SUFDYSxNQUFNLENBQWlCO0lBRXZDOztPQUVHO0lBQ2EsT0FBTyxDQUFjO0lBRXJDLFlBQW9CLE1BQW1CLEVBQUUsTUFBc0IsRUFBRSxPQUFvQjtRQUNuRixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztJQUN6QixDQUFDO0NBQ0Y7QUFyREQsc0NBcURDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB0eXBlIHsgRXhjbHVkZUxpc3QgfSBmcm9tICcuLi8uLi9hcGkvcmVmYWN0b3JpbmcnO1xuaW1wb3J0IHsgSW5NZW1vcnlFeGNsdWRlTGlzdCwgTmV2ZXJFeGNsdWRlIH0gZnJvbSAnLi4vLi4vYXBpL3JlZmFjdG9yaW5nJztcblxudHlwZSBNYXBwaW5nVHlwZSA9ICdhdXRvJyB8ICdleHBsaWNpdCc7XG5cbi8qKlxuICogVGhlIHNvdXJjZSBvZiB0aGUgcmVzb3VyY2UgbWFwcGluZ3MgdG8gYmUgdXNlZCBmb3IgcmVmYWN0b3JpbmcuXG4gKi9cbmV4cG9ydCBjbGFzcyBNYXBwaW5nU291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBtYXBwaW5nIHdpbGwgYmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgYmFzZWQgb24gYSBjb21wYXJpc29uIG9mXG4gICAqIHRoZSBkZXBsb3llZCBzdGFja3MgYW5kIHRoZSBsb2NhbCBzdGFja3MuXG4gICAqXG4gICAqIEBwYXJhbSBleGNsdWRlIC0gQSBsaXN0IG9mIHJlc291cmNlIGxvY2F0aW9ucyB0byBleGNsdWRlIGZyb20gdGhlIG1hcHBpbmcuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGF1dG8oZXhjbHVkZTogc3RyaW5nW10gPSBbXSk6IE1hcHBpbmdTb3VyY2Uge1xuICAgIGNvbnN0IGV4Y2x1ZGVMaXN0ID0gbmV3IEluTWVtb3J5RXhjbHVkZUxpc3QoZXhjbHVkZSk7XG4gICAgcmV0dXJuIG5ldyBNYXBwaW5nU291cmNlKCdhdXRvJywgW10sIGV4Y2x1ZGVMaXN0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbiBleHBsaWNpdGx5IHByb3ZpZGVkIGxpc3Qgb2YgbWFwcGluZ3MsIHdoaWNoIHdpbGwgYmUgdXNlZCBmb3IgcmVmYWN0b3JpbmcuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGV4cGxpY2l0KGdyb3VwczogTWFwcGluZ0dyb3VwW10pOiBNYXBwaW5nU291cmNlIHtcbiAgICByZXR1cm4gbmV3IE1hcHBpbmdTb3VyY2UoJ2V4cGxpY2l0JywgZ3JvdXBzLCBuZXcgTmV2ZXJFeGNsdWRlKCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFuIGV4cGxpY2l0bHkgcHJvdmlkZWQgbGlzdCBvZiBtYXBwaW5ncywgd2hpY2ggd2lsbCBiZSB1c2VkIGZvciByZWZhY3RvcmluZyxcbiAgICogYnV0IGluIHJldmVyc2UsIHRoYXQgaXMsIHRoZSBzb3VyY2UgbG9jYXRpb25zIHdpbGwgYmVjb21lIHRoZSBkZXN0aW5hdGlvblxuICAgKiBsb2NhdGlvbnMgYW5kIHZpY2UgdmVyc2EuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJldmVyc2UoZ3JvdXBzOiBNYXBwaW5nR3JvdXBbXSk6IE1hcHBpbmdTb3VyY2Uge1xuICAgIGNvbnN0IHJldmVyc2VHcm91cHMgPSBncm91cHMubWFwKChncm91cCkgPT4gKHtcbiAgICAgIC4uLmdyb3VwLFxuICAgICAgcmVzb3VyY2VzOiBPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoZ3JvdXAucmVzb3VyY2VzKS5tYXAoKFtzcmMsIGRzdF0pID0+IFtkc3QsIHNyY10pKSxcbiAgICB9KSk7XG5cbiAgICByZXR1cm4gTWFwcGluZ1NvdXJjZS5leHBsaWNpdChyZXZlcnNlR3JvdXBzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2U6IE1hcHBpbmdUeXBlO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBncm91cHM6IE1hcHBpbmdHcm91cFtdO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBleGNsdWRlOiBFeGNsdWRlTGlzdDtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHNvdXJjZTogTWFwcGluZ1R5cGUsIGdyb3VwczogTWFwcGluZ0dyb3VwW10sIGV4Y2x1ZGU6IEV4Y2x1ZGVMaXN0KSB7XG4gICAgdGhpcy5zb3VyY2UgPSBzb3VyY2U7XG4gICAgdGhpcy5ncm91cHMgPSBncm91cHM7XG4gICAgdGhpcy5leGNsdWRlID0gZXhjbHVkZTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJlZmFjdG9yT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIG9ubHkgc2hvdyB0aGUgcHJvcG9zZWQgcmVmYWN0b3IsIHdpdGhvdXQgYXBwbHlpbmcgaXRcbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGRyeVJ1bj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENyaXRlcmlhIGZvciBzZWxlY3Rpbmcgc3RhY2tzIHRvIGRlcGxveVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFsbCBzdGFja3NcbiAgICovXG4gIHN0YWNrcz86IFN0YWNrU2VsZWN0b3I7XG5cbiAgLyoqXG4gICAqIEhvdyB0aGUgdG9vbGtpdCBzaG91bGQgb2J0YWluIHRoZSBtYXBwaW5nc1xuICAgKi9cbiAgbWFwcGluZ1NvdXJjZT86IE1hcHBpbmdTb3VyY2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFwcGluZ0dyb3VwIHtcbiAgLyoqXG4gICAqIFRoZSBhY2NvdW50IElEIG9mIHRoZSBlbnZpcm9ubWVudCBpbiB3aGljaCB0aGUgbWFwcGluZyBpcyB2YWxpZC5cbiAgICovXG4gIGFjY291bnQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlZ2lvbiBvZiB0aGUgZW52aXJvbm1lbnQgaW4gd2hpY2ggdGhlIG1hcHBpbmcgaXMgdmFsaWQuXG4gICAqL1xuICByZWdpb246IHN0cmluZztcblxuICAvKipcbiAgICogQSBjb2xsZWN0aW9uIG9mIHJlc291cmNlIG1hcHBpbmdzLCB3aGVyZSBlYWNoIGtleSBpcyB0aGUgc291cmNlIGxvY2F0aW9uXG4gICAqIGFuZCB0aGUgdmFsdWUgaXMgdGhlIGRlc3RpbmF0aW9uIGxvY2F0aW9uLiBMb2NhdGlvbnMgbXVzdCBiZSBpbiB0aGUgZm9ybWF0XG4gICAqIGBTdGFja05hbWUuTG9naWNhbElkYC4gVGhlIHNvdXJjZSBtdXN0IHJlZmVyIHRvIGEgbG9jYXRpb24gd2hlcmUgdGhlcmUgaXNcbiAgICogYSByZXNvdXJjZSBjdXJyZW50bHkgZGVwbG95ZWQsIHdoaWxlIHRoZSBkZXN0aW5hdGlvbiBtdXN0IHJlZmVyIHRvIGFcbiAgICogbG9jYXRpb24gdGhhdCBpcyBub3QgYWxyZWFkeSBvY2N1cGllZCBieSBhbnkgcmVzb3VyY2UuXG4gICAqXG4gICAqL1xuICByZXNvdXJjZXM6IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmc7XG4gIH07XG59XG4iXX0=
@@ -3,19 +3,22 @@ export interface WatchOptions extends BaseDeployOptions {
3
3
  /**
4
4
  * Watch the files in this list
5
5
  *
6
- * @default - []
6
+ * @default - all files in the watchDir
7
7
  */
8
8
  readonly include?: string[];
9
9
  /**
10
10
  * Ignore watching the files in this list
11
11
  *
12
- * @default - []
12
+ * Hidden files (those whose names begin with a dot `.`) are always excluded,
13
+ * irrespectively of this option.
14
+ *
15
+ * @default - default patterns excluding likely irrelevant files for all CDK supported programming languages, this list will change over time
13
16
  */
14
17
  readonly exclude?: string[];
15
18
  /**
16
19
  * The root directory used for watch.
17
20
  *
18
- * @default process.cwd()
21
+ * @default - the current working directory
19
22
  */
20
23
  readonly watchDir?: string;
21
24
  /**
@@ -25,3 +28,23 @@ export interface WatchOptions extends BaseDeployOptions {
25
28
  */
26
29
  readonly deploymentMethod?: DeploymentMethod;
27
30
  }
31
+ /**
32
+ * The result of a `cdk.watch()` operation.
33
+ */
34
+ export interface IWatcher extends AsyncDisposable {
35
+ /**
36
+ * Stop the watcher and wait for the current watch iteration to complete.
37
+ *
38
+ * An alias for `[Symbol.asyncDispose]`, as a more readable alternative for
39
+ * environments that don't support the Disposable APIs yet.
40
+ */
41
+ dispose(): Promise<void>;
42
+ /**
43
+ * Wait for the watcher to stop.
44
+ *
45
+ * The watcher will only stop if `dispose()` or `[Symbol.asyncDispose]()` are called.
46
+ *
47
+ * If neither of those is called, awaiting this promise will wait forever.
48
+ */
49
+ waitForEnd(): Promise<void>;
50
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXBsb3ltZW50TWV0aG9kLCBCYXNlRGVwbG95T3B0aW9ucyB9IGZyb20gJy4uL2RlcGxveSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2F0Y2hPcHRpb25zIGV4dGVuZHMgQmFzZURlcGxveU9wdGlvbnMge1xuICAvKipcbiAgICogV2F0Y2ggdGhlIGZpbGVzIGluIHRoaXMgbGlzdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFtdXG4gICAqL1xuICByZWFkb25seSBpbmNsdWRlPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIElnbm9yZSB3YXRjaGluZyB0aGUgZmlsZXMgaW4gdGhpcyBsaXN0XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gW11cbiAgICovXG4gIHJlYWRvbmx5IGV4Y2x1ZGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIHJvb3QgZGlyZWN0b3J5IHVzZWQgZm9yIHdhdGNoLlxuICAgKlxuICAgKiBAZGVmYXVsdCBwcm9jZXNzLmN3ZCgpXG4gICAqL1xuICByZWFkb25seSB3YXRjaERpcj86IHN0cmluZztcblxuICAvKipcbiAgICogRGVwbG95bWVudCBtZXRob2RcbiAgICpcbiAgICogQGRlZmF1bHQgSG90c3dhcERlcGxveW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnRNZXRob2Q/OiBEZXBsb3ltZW50TWV0aG9kO1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXBsb3ltZW50TWV0aG9kLCBCYXNlRGVwbG95T3B0aW9ucyB9IGZyb20gJy4uL2RlcGxveSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgV2F0Y2hPcHRpb25zIGV4dGVuZHMgQmFzZURlcGxveU9wdGlvbnMge1xuICAvKipcbiAgICogV2F0Y2ggdGhlIGZpbGVzIGluIHRoaXMgbGlzdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFsbCBmaWxlcyBpbiB0aGUgd2F0Y2hEaXJcbiAgICovXG4gIHJlYWRvbmx5IGluY2x1ZGU/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogSWdub3JlIHdhdGNoaW5nIHRoZSBmaWxlcyBpbiB0aGlzIGxpc3RcbiAgICpcbiAgICogSGlkZGVuIGZpbGVzICh0aG9zZSB3aG9zZSBuYW1lcyBiZWdpbiB3aXRoIGEgZG90IGAuYCkgYXJlIGFsd2F5cyBleGNsdWRlZCxcbiAgICogaXJyZXNwZWN0aXZlbHkgb2YgdGhpcyBvcHRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGVmYXVsdCBwYXR0ZXJucyBleGNsdWRpbmcgbGlrZWx5IGlycmVsZXZhbnQgZmlsZXMgZm9yIGFsbCBDREsgc3VwcG9ydGVkIHByb2dyYW1taW5nIGxhbmd1YWdlcywgdGhpcyBsaXN0IHdpbGwgY2hhbmdlIG92ZXIgdGltZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhjbHVkZT86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgcm9vdCBkaXJlY3RvcnkgdXNlZCBmb3Igd2F0Y2guXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnlcbiAgICovXG4gIHJlYWRvbmx5IHdhdGNoRGlyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXBsb3ltZW50IG1ldGhvZFxuICAgKlxuICAgKiBAZGVmYXVsdCBIb3Rzd2FwRGVwbG95bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95bWVudE1ldGhvZD86IERlcGxveW1lbnRNZXRob2Q7XG59XG5cbi8qKlxuICogVGhlIHJlc3VsdCBvZiBhIGBjZGsud2F0Y2goKWAgb3BlcmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElXYXRjaGVyIGV4dGVuZHMgQXN5bmNEaXNwb3NhYmxlIHtcbiAgLyoqXG4gICAqIFN0b3AgdGhlIHdhdGNoZXIgYW5kIHdhaXQgZm9yIHRoZSBjdXJyZW50IHdhdGNoIGl0ZXJhdGlvbiB0byBjb21wbGV0ZS5cbiAgICpcbiAgICogQW4gYWxpYXMgZm9yIGBbU3ltYm9sLmFzeW5jRGlzcG9zZV1gLCBhcyBhIG1vcmUgcmVhZGFibGUgYWx0ZXJuYXRpdmUgZm9yXG4gICAqIGVudmlyb25tZW50cyB0aGF0IGRvbid0IHN1cHBvcnQgdGhlIERpc3Bvc2FibGUgQVBJcyB5ZXQuXG4gICAqL1xuICBkaXNwb3NlKCk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIFdhaXQgZm9yIHRoZSB3YXRjaGVyIHRvIHN0b3AuXG4gICAqXG4gICAqIFRoZSB3YXRjaGVyIHdpbGwgb25seSBzdG9wIGlmIGBkaXNwb3NlKClgIG9yIGBbU3ltYm9sLmFzeW5jRGlzcG9zZV0oKWAgYXJlIGNhbGxlZC5cbiAgICpcbiAgICogSWYgbmVpdGhlciBvZiB0aG9zZSBpcyBjYWxsZWQsIGF3YWl0aW5nIHRoaXMgcHJvbWlzZSB3aWxsIHdhaXQgZm9yZXZlci5cbiAgICovXG4gIHdhaXRGb3JFbmQoKTogUHJvbWlzZTx2b2lkPjtcbn1cbiJdfQ==
@@ -1,4 +1,6 @@
1
- export declare function patternsArrayForWatch(patterns: string | string[] | undefined, options: {
2
- rootDir: string;
3
- returnRootDirIfEmpty: boolean;
4
- }): string[];
1
+ /**
2
+ * A list of generic files that normally don't need to be watched.
3
+ * This list is agnostic to the used programming language and should only match files
4
+ * that are unlikely to be valid files in any of the supported languages.
5
+ */
6
+ export declare const WATCH_EXCLUDE_DEFAULTS: string[];
@@ -1,8 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.patternsArrayForWatch = patternsArrayForWatch;
4
- function patternsArrayForWatch(patterns, options) {
5
- const patternsArray = patterns !== undefined ? (Array.isArray(patterns) ? patterns : [patterns]) : [];
6
- return patternsArray.length > 0 ? patternsArray : options.returnRootDirIfEmpty ? [options.rootDir] : [];
7
- }
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxzREFNQztBQU5ELFNBQWdCLHFCQUFxQixDQUNuQyxRQUF1QyxFQUN2QyxPQUEyRDtJQUUzRCxNQUFNLGFBQWEsR0FBYSxRQUFRLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDaEgsT0FBTyxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDMUcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBmdW5jdGlvbiBwYXR0ZXJuc0FycmF5Rm9yV2F0Y2goXG4gIHBhdHRlcm5zOiBzdHJpbmcgfCBzdHJpbmdbXSB8IHVuZGVmaW5lZCxcbiAgb3B0aW9uczogeyByb290RGlyOiBzdHJpbmc7IHJldHVyblJvb3REaXJJZkVtcHR5OiBib29sZWFuIH0sXG4pOiBzdHJpbmdbXSB7XG4gIGNvbnN0IHBhdHRlcm5zQXJyYXk6IHN0cmluZ1tdID0gcGF0dGVybnMgIT09IHVuZGVmaW5lZCA/IChBcnJheS5pc0FycmF5KHBhdHRlcm5zKSA/IHBhdHRlcm5zIDogW3BhdHRlcm5zXSkgOiBbXTtcbiAgcmV0dXJuIHBhdHRlcm5zQXJyYXkubGVuZ3RoID4gMCA/IHBhdHRlcm5zQXJyYXkgOiBvcHRpb25zLnJldHVyblJvb3REaXJJZkVtcHR5ID8gW29wdGlvbnMucm9vdERpcl0gOiBbXTtcbn1cbiJdfQ==
3
+ exports.WATCH_EXCLUDE_DEFAULTS = void 0;
4
+ /**
5
+ * A list of generic files that normally don't need to be watched.
6
+ * This list is agnostic to the used programming language and should only match files
7
+ * that are unlikely to be valid files in any of the supported languages.
8
+ */
9
+ exports.WATCH_EXCLUDE_DEFAULTS = [
10
+ // CDK
11
+ 'README.md',
12
+ 'cdk*.json',
13
+ // JS
14
+ 'package*.json',
15
+ 'yarn.lock',
16
+ 'pnpm-lock.yaml',
17
+ 'bun.lockb',
18
+ 'bun.lock',
19
+ 'deno.lock',
20
+ // TS
21
+ 'tsconfig*.json',
22
+ '**/*.d.ts',
23
+ 'test',
24
+ // Python
25
+ 'requirements*.txt',
26
+ 'source.bat',
27
+ '**/__init__.py',
28
+ '**/__pycache__',
29
+ 'tests',
30
+ // C# & F#
31
+ '**/*.sln',
32
+ '**/*.csproj',
33
+ '**/*.fsproj',
34
+ // Go
35
+ 'go.mod',
36
+ 'go.sum',
37
+ '**/*test.go',
38
+ ];
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7Ozs7R0FJRztBQUNVLFFBQUEsc0JBQXNCLEdBQUc7SUFDcEMsTUFBTTtJQUNOLFdBQVc7SUFDWCxXQUFXO0lBQ1gsS0FBSztJQUNMLGVBQWU7SUFDZixXQUFXO0lBQ1gsZ0JBQWdCO0lBQ2hCLFdBQVc7SUFDWCxVQUFVO0lBQ1YsV0FBVztJQUNYLEtBQUs7SUFDTCxnQkFBZ0I7SUFDaEIsV0FBVztJQUNYLE1BQU07SUFDTixTQUFTO0lBQ1QsbUJBQW1CO0lBQ25CLFlBQVk7SUFDWixnQkFBZ0I7SUFDaEIsZ0JBQWdCO0lBQ2hCLE9BQU87SUFDUCxVQUFVO0lBQ1YsVUFBVTtJQUNWLGFBQWE7SUFDYixhQUFhO0lBQ2IsS0FBSztJQUNMLFFBQVE7SUFDUixRQUFRO0lBQ1IsYUFBYTtDQUNkLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEEgbGlzdCBvZiBnZW5lcmljIGZpbGVzIHRoYXQgbm9ybWFsbHkgZG9uJ3QgbmVlZCB0byBiZSB3YXRjaGVkLlxuICogVGhpcyBsaXN0IGlzIGFnbm9zdGljIHRvIHRoZSB1c2VkIHByb2dyYW1taW5nIGxhbmd1YWdlIGFuZCBzaG91bGQgb25seSBtYXRjaCBmaWxlc1xuICogdGhhdCBhcmUgdW5saWtlbHkgdG8gYmUgdmFsaWQgZmlsZXMgaW4gYW55IG9mIHRoZSBzdXBwb3J0ZWQgbGFuZ3VhZ2VzLlxuICovXG5leHBvcnQgY29uc3QgV0FUQ0hfRVhDTFVERV9ERUZBVUxUUyA9IFtcbiAgLy8gQ0RLXG4gICdSRUFETUUubWQnLFxuICAnY2RrKi5qc29uJyxcbiAgLy8gSlNcbiAgJ3BhY2thZ2UqLmpzb24nLFxuICAneWFybi5sb2NrJyxcbiAgJ3BucG0tbG9jay55YW1sJyxcbiAgJ2J1bi5sb2NrYicsXG4gICdidW4ubG9jaycsXG4gICdkZW5vLmxvY2snLFxuICAvLyBUU1xuICAndHNjb25maWcqLmpzb24nLFxuICAnKiovKi5kLnRzJyxcbiAgJ3Rlc3QnLFxuICAvLyBQeXRob25cbiAgJ3JlcXVpcmVtZW50cyoudHh0JyxcbiAgJ3NvdXJjZS5iYXQnLFxuICAnKiovX19pbml0X18ucHknLFxuICAnKiovX19weWNhY2hlX18nLFxuICAndGVzdHMnLFxuICAvLyBDIyAmIEYjXG4gICcqKi8qLnNsbicsXG4gICcqKi8qLmNzcHJvaicsXG4gICcqKi8qLmZzcHJvaicsXG4gIC8vIEdvXG4gICdnby5tb2QnLFxuICAnZ28uc3VtJyxcbiAgJyoqLyp0ZXN0LmdvJyxcbl07XG4iXX0=
@@ -17,7 +17,7 @@ export declare class AccountAccessKeyCache {
17
17
  private readonly cacheFile;
18
18
  private readonly debug;
19
19
  /**
20
- * @param filePath Path to the cache file
20
+ * @param filePath - Path to the cache file
21
21
  */
22
22
  constructor(filePath: string | undefined, debugFn: (msg: string) => Promise<void>);
23
23
  /**