@aws-cdk/toolkit-lib 0.3.7 → 1.0.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.
- package/README.md +70 -51
- package/api-extractor.json +1 -1
- package/build-info.json +2 -2
- package/db.json.gz +0 -0
- package/lib/actions/deploy/index.d.ts +106 -34
- package/lib/actions/deploy/index.js +2 -17
- package/lib/actions/deploy/private/deploy-options.d.ts +1 -90
- package/lib/actions/deploy/private/deploy-options.js +1 -1
- package/lib/actions/deploy/private/helpers.d.ts +1 -6
- package/lib/actions/deploy/private/helpers.js +1 -9
- package/lib/actions/diff/index.d.ts +1 -9
- package/lib/actions/diff/index.js +1 -1
- package/lib/actions/diff/private/helpers.d.ts +2 -1
- package/lib/actions/diff/private/helpers.js +6 -6
- package/lib/actions/drift/index.d.ts +52 -0
- package/lib/actions/drift/index.js +3 -0
- package/lib/actions/index.d.ts +1 -0
- package/lib/actions/index.js +2 -1
- package/lib/actions/watch/index.d.ts +7 -1
- package/lib/actions/watch/index.js +1 -1
- package/lib/api/aws-auth/awscli-compatible.d.ts +4 -4
- package/lib/api/aws-auth/awscli-compatible.js +7 -9
- package/lib/api/aws-auth/base-credentials.d.ts +109 -0
- package/lib/api/aws-auth/base-credentials.js +79 -0
- package/lib/api/aws-auth/credential-plugins.js +3 -3
- package/lib/api/aws-auth/index.d.ts +1 -0
- package/lib/api/aws-auth/index.js +2 -1
- package/lib/api/aws-auth/private/index.d.ts +0 -1
- package/lib/api/aws-auth/private/index.js +1 -2
- package/lib/api/aws-auth/sdk-provider.d.ts +23 -27
- package/lib/api/aws-auth/sdk-provider.js +19 -16
- package/lib/api/aws-auth/sdk.d.ts +9 -5
- package/lib/api/aws-auth/sdk.js +6 -3
- package/lib/api/aws-auth/types.d.ts +7 -87
- package/lib/api/aws-auth/types.js +1 -74
- package/lib/api/bootstrap/bootstrap-environment.d.ts +1 -1
- package/lib/api/bootstrap/bootstrap-environment.js +8 -9
- package/lib/api/bootstrap/deploy-bootstrap.d.ts +1 -1
- package/lib/api/bootstrap/deploy-bootstrap.js +4 -5
- package/lib/api/cloud-assembly/context-store.d.ts +78 -0
- package/lib/api/cloud-assembly/context-store.js +160 -0
- package/lib/api/cloud-assembly/environment.d.ts +19 -16
- package/lib/api/cloud-assembly/environment.js +21 -12
- package/lib/api/cloud-assembly/index.d.ts +1 -0
- package/lib/api/cloud-assembly/index.js +2 -1
- package/lib/api/cloud-assembly/private/context-aware-source.d.ts +3 -10
- package/lib/api/cloud-assembly/private/context-aware-source.js +6 -11
- package/lib/api/cloud-assembly/private/exec.d.ts +1 -1
- package/lib/api/cloud-assembly/private/exec.js +2 -5
- package/lib/api/cloud-assembly/private/helpers.d.ts +9 -0
- package/lib/api/cloud-assembly/private/helpers.js +44 -0
- package/lib/api/cloud-assembly/private/index.d.ts +0 -1
- package/lib/api/cloud-assembly/private/index.js +1 -2
- package/lib/api/cloud-assembly/private/prepare-source.d.ts +27 -16
- package/lib/api/cloud-assembly/private/prepare-source.js +49 -46
- package/lib/api/cloud-assembly/private/stack-assembly.d.ts +1 -1
- package/lib/api/cloud-assembly/private/stack-assembly.js +1 -1
- package/lib/api/cloud-assembly/source-builder.d.ts +142 -14
- package/lib/api/cloud-assembly/source-builder.js +307 -1
- package/lib/api/cloud-assembly/stack-assembly.js +3 -4
- package/lib/api/cloudformation/template-body-parameter.d.ts +1 -1
- package/lib/api/cloudformation/template-body-parameter.js +4 -5
- package/lib/api/context.d.ts +1 -1
- package/lib/api/context.js +1 -1
- package/lib/api/deployments/asset-publishing.js +15 -16
- package/lib/api/deployments/assets.d.ts +1 -1
- package/lib/api/deployments/assets.js +4 -5
- package/lib/api/deployments/cfn-api.d.ts +1 -1
- package/lib/api/deployments/cfn-api.js +14 -15
- package/lib/api/deployments/checks.d.ts +1 -1
- package/lib/api/deployments/checks.js +3 -4
- package/lib/api/deployments/deploy-stack.d.ts +14 -3
- package/lib/api/deployments/deploy-stack.js +73 -49
- package/lib/api/deployments/deployments.d.ts +13 -2
- package/lib/api/deployments/deployments.js +10 -9
- package/lib/api/deployments/index.d.ts +0 -1
- package/lib/api/deployments/index.js +1 -2
- package/lib/api/diff/diff-formatter.d.ts +3 -3
- package/lib/api/diff/diff-formatter.js +6 -6
- package/lib/api/drift/drift-formatter.d.ts +81 -0
- package/lib/api/drift/drift-formatter.js +201 -0
- package/lib/api/drift/drift.d.ts +12 -0
- package/lib/api/drift/drift.js +63 -0
- package/lib/api/drift/index.d.ts +2 -0
- package/lib/api/drift/index.js +19 -0
- package/lib/api/environment/environment-access.d.ts +1 -1
- package/lib/api/environment/environment-access.js +3 -4
- package/lib/api/environment/environment-resources.d.ts +1 -1
- package/lib/api/environment/environment-resources.js +5 -6
- package/lib/api/garbage-collection/garbage-collector.js +44 -35
- package/lib/api/garbage-collection/progress-printer.d.ts +1 -1
- package/lib/api/garbage-collection/progress-printer.js +3 -4
- package/lib/api/garbage-collection/stack-refresh.d.ts +1 -1
- package/lib/api/garbage-collection/stack-refresh.js +3 -4
- package/lib/api/hotswap/common.d.ts +9 -4
- package/lib/api/hotswap/common.js +11 -4
- package/lib/api/hotswap/ecs-services.js +2 -2
- package/lib/api/hotswap/hotswap-deployments.js +3 -3
- package/lib/api/index.d.ts +1 -0
- package/lib/api/index.js +2 -1
- package/lib/api/io/io-host.d.ts +15 -1
- package/lib/api/io/io-host.js +1 -1
- package/lib/api/io/io-message.d.ts +7 -10
- package/lib/api/io/io-message.js +1 -1
- package/lib/api/io/private/io-default-messages.d.ts +7 -3
- package/lib/api/io/private/io-default-messages.js +23 -21
- package/lib/api/io/private/io-helper.d.ts +4 -4
- package/lib/api/io/private/io-helper.js +18 -14
- package/lib/api/io/private/messages.d.ts +18 -14
- package/lib/api/io/private/messages.js +52 -54
- package/lib/api/io/private/span.d.ts +18 -11
- package/lib/api/io/private/span.js +60 -42
- package/lib/api/io/toolkit-action.d.ts +1 -1
- package/lib/api/io/toolkit-action.js +1 -1
- package/lib/api/logs-monitor/find-cloudwatch-logs.js +2 -3
- package/lib/api/notices/cached-data-source.js +2 -1
- package/lib/api/notices/filter.d.ts +1 -1
- package/lib/api/notices/filter.js +2 -3
- package/lib/api/notices/notices.d.ts +17 -4
- package/lib/api/notices/notices.js +2 -2
- package/lib/api/notices/web-data-source.d.ts +30 -3
- package/lib/api/notices/web-data-source.js +37 -10
- package/lib/api/refactoring/cloudformation.d.ts +7 -5
- package/lib/api/refactoring/cloudformation.js +1 -1
- package/lib/api/refactoring/digest.d.ts +2 -2
- package/lib/api/refactoring/digest.js +25 -61
- package/lib/api/refactoring/execution.d.ts +1 -1
- package/lib/api/refactoring/execution.js +50 -25
- package/lib/api/refactoring/graph.d.ts +15 -0
- package/lib/api/refactoring/graph.js +108 -0
- package/lib/api/refactoring/index.js +12 -6
- package/lib/api/resource-import/importer.d.ts +2 -1
- package/lib/api/resource-import/importer.js +28 -28
- package/lib/api/resource-import/migrator.js +4 -4
- package/lib/api/toolkit-info.d.ts +1 -1
- package/lib/api/toolkit-info.js +3 -4
- package/lib/api/work-graph/work-graph.d.ts +1 -1
- package/lib/api/work-graph/work-graph.js +4 -5
- package/lib/context-providers/index.d.ts +1 -2
- package/lib/context-providers/index.js +6 -4
- package/lib/index_bg.wasm +0 -0
- package/lib/payloads/context.d.ts +0 -1
- package/lib/payloads/context.js +1 -1
- package/lib/payloads/deploy.d.ts +2 -2
- package/lib/payloads/deploy.js +1 -1
- package/lib/payloads/destroy.d.ts +3 -3
- package/lib/payloads/destroy.js +1 -1
- package/lib/payloads/diff.d.ts +46 -5
- package/lib/payloads/diff.js +1 -1
- package/lib/payloads/drift.d.ts +12 -0
- package/lib/payloads/drift.js +3 -0
- package/lib/payloads/gc.d.ts +12 -0
- package/lib/payloads/gc.js +3 -0
- package/lib/payloads/import.d.ts +45 -0
- package/lib/payloads/import.js +3 -0
- package/lib/payloads/index.d.ts +3 -0
- package/lib/payloads/index.js +4 -1
- package/lib/payloads/rollback.d.ts +2 -2
- package/lib/payloads/rollback.js +1 -1
- package/lib/payloads/stack-activity.d.ts +2 -2
- package/lib/payloads/stack-activity.js +1 -1
- package/lib/payloads/types.d.ts +10 -0
- package/lib/payloads/types.js +1 -1
- package/lib/toolkit/non-interactive-io-host.js +2 -2
- package/lib/toolkit/private/index.d.ts +2 -1
- package/lib/toolkit/private/index.js +1 -1
- package/lib/toolkit/toolkit.d.ts +9 -2
- package/lib/toolkit/toolkit.js +169 -92
- package/lib/util/objects.d.ts +4 -0
- package/lib/util/objects.js +8 -1
- package/package.json +13 -16
- package/lib/actions/import/index.d.ts +0 -21
- package/lib/actions/import/index.js +0 -3
- package/lib/api/aws-auth/proxy-agent.d.ts +0 -13
- package/lib/api/aws-auth/proxy-agent.js +0 -54
- package/lib/api/cloud-assembly/private/source-builder.d.ts +0 -52
- package/lib/api/cloud-assembly/private/source-builder.js +0 -262
- package/lib/api/deployments/deployment-method.d.ts +0 -24
- package/lib/api/deployments/deployment-method.js +0 -3
- package/lib/api/shared-private.d.ts +0 -8
- package/lib/api/shared-private.js +0 -32
package/README.md
CHANGED
|
@@ -1,20 +1,4 @@
|
|
|
1
1
|
# AWS CDK Toolkit Library
|
|
2
|
-
<!--BEGIN STABILITY BANNER-->
|
|
3
|
-
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-

|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
110
|
+
const appDetails = await cdk.list(cx);
|
|
126
111
|
```
|
|
127
112
|
|
|
128
|
-
You can also
|
|
113
|
+
You can also query information about the synthesized _Cloud Assembly_:
|
|
129
114
|
|
|
130
115
|
```ts
|
|
131
|
-
|
|
132
|
-
|
|
116
|
+
const cloudAssembly = await cx.produce();
|
|
117
|
+
const template = cloudAssembly.getStack("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
|
|
274
|
+
#### Default `NonInteractiveIoHost`
|
|
251
275
|
|
|
252
|
-
By default the CDK Toolkit Library will use a `
|
|
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
|
|
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: {
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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;
|
|
@@ -331,6 +360,11 @@ const cx = await cdk.fromAssemblyBuilder(async () => {
|
|
|
331
360
|
});
|
|
332
361
|
```
|
|
333
362
|
|
|
363
|
+
> Note that synthesis using the `AssemblyBuilder` is not safe to be performed
|
|
364
|
+
> concurrently, since it mutates the globally shared `process.env`. You can set
|
|
365
|
+
> `clobberEnv: false` to avoid this, but your builder function will need to do a
|
|
366
|
+
> bit more work. See the documentation of `clobberEnv` for an example.
|
|
367
|
+
|
|
334
368
|
Existing _Cloud Assembly_ directories can be used as source like this:
|
|
335
369
|
|
|
336
370
|
```ts
|
|
@@ -407,26 +441,11 @@ try {
|
|
|
407
441
|
});
|
|
408
442
|
|
|
409
443
|
} catch (error) {
|
|
410
|
-
|
|
411
|
-
if (ToolkitError.
|
|
412
|
-
|
|
413
|
-
console.error('AWS credentials error:', error.message);
|
|
414
|
-
|
|
415
|
-
} else if (ToolkitError.isAssemblyError(error)) {
|
|
416
|
-
// Handle errors from your CDK app
|
|
417
|
-
console.error('CDK app error:', error.message);
|
|
418
|
-
|
|
419
|
-
} else if (ToolkitError.isContextProviderError(error)) {
|
|
420
|
-
// Handle errors from context providers
|
|
421
|
-
console.error('Context provider error:', error.message);
|
|
422
|
-
|
|
423
|
-
} else if (ToolkitError.isToolkitError(error)) {
|
|
424
|
-
// Handle all other Toolkit errors
|
|
425
|
-
console.error('Generic Toolkit error:', error.message);
|
|
426
|
-
|
|
444
|
+
// Handle user error
|
|
445
|
+
if (ToolkitError.isToolkitError(error) && error.source === 'user') {
|
|
446
|
+
console.error('Hey, something is wrong with your app!', error.message);
|
|
427
447
|
} else {
|
|
428
|
-
|
|
429
|
-
console.error('Unexpected error:', error);
|
|
448
|
+
throw error;
|
|
430
449
|
}
|
|
431
450
|
}
|
|
432
451
|
```
|
package/api-extractor.json
CHANGED
package/build-info.json
CHANGED
package/db.json.gz
CHANGED
|
Binary file
|
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { StackSelector } from '../../api/cloud-assembly';
|
|
2
2
|
import type { Tag } from '../../api/tags';
|
|
3
|
-
export type DeploymentMethod =
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
export type DeploymentMethod = DirectDeployment | ChangeSetDeployment | HotswapDeployment;
|
|
4
|
+
/**
|
|
5
|
+
* Use stack APIs to the deploy stack changes
|
|
6
|
+
*/
|
|
7
|
+
export interface DirectDeployment {
|
|
8
8
|
readonly method: 'direct';
|
|
9
9
|
}
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Use change-set APIs to deploy a stack changes
|
|
12
|
+
*/
|
|
13
|
+
export interface ChangeSetDeployment {
|
|
14
14
|
readonly method: 'change-set';
|
|
15
15
|
/**
|
|
16
16
|
* Whether to execute the changeset or leave it in review.
|
|
@@ -23,6 +23,34 @@ export interface ChangeSetDeploymentMethod {
|
|
|
23
23
|
* If not provided, a name will be generated automatically.
|
|
24
24
|
*/
|
|
25
25
|
readonly changeSetName?: string;
|
|
26
|
+
/**
|
|
27
|
+
* Indicates if the change set imports resources that already exist.
|
|
28
|
+
*
|
|
29
|
+
* @default false
|
|
30
|
+
*/
|
|
31
|
+
readonly importExistingResources?: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Perform a 'hotswap' deployment to deploy a stack changes
|
|
35
|
+
*
|
|
36
|
+
* A 'hotswap' deployment will attempt to short-circuit CloudFormation
|
|
37
|
+
* and update the affected resources like Lambda functions directly.
|
|
38
|
+
*/
|
|
39
|
+
export interface HotswapDeployment {
|
|
40
|
+
readonly method: 'hotswap';
|
|
41
|
+
/**
|
|
42
|
+
* Represents configuration property overrides for hotswap deployments.
|
|
43
|
+
* Currently only supported by ECS.
|
|
44
|
+
*
|
|
45
|
+
* @default - no overrides
|
|
46
|
+
*/
|
|
47
|
+
readonly properties?: HotswapProperties;
|
|
48
|
+
/**
|
|
49
|
+
* Fall back to a CloudFormation deployment when a non-hotswappable change is detected
|
|
50
|
+
*
|
|
51
|
+
* @default - do not fall back to a CloudFormation deployment
|
|
52
|
+
*/
|
|
53
|
+
readonly fallback?: DirectDeployment | ChangeSetDeployment;
|
|
26
54
|
}
|
|
27
55
|
/**
|
|
28
56
|
* When to build assets
|
|
@@ -40,20 +68,6 @@ export declare enum AssetBuildTime {
|
|
|
40
68
|
*/
|
|
41
69
|
JUST_IN_TIME = "just-in-time"
|
|
42
70
|
}
|
|
43
|
-
export declare enum HotswapMode {
|
|
44
|
-
/**
|
|
45
|
-
* Will fall back to CloudFormation when a non-hotswappable change is detected
|
|
46
|
-
*/
|
|
47
|
-
FALL_BACK = "fall-back",
|
|
48
|
-
/**
|
|
49
|
-
* Will not fall back to CloudFormation when a non-hotswappable change is detected
|
|
50
|
-
*/
|
|
51
|
-
HOTSWAP_ONLY = "hotswap-only",
|
|
52
|
-
/**
|
|
53
|
-
* Will not attempt to hotswap anything and instead go straight to CloudFormation
|
|
54
|
-
*/
|
|
55
|
-
FULL_DEPLOYMENT = "full-deployment"
|
|
56
|
-
}
|
|
57
71
|
export declare class StackParameters {
|
|
58
72
|
/**
|
|
59
73
|
* Use only existing parameters on the stack.
|
|
@@ -75,6 +89,67 @@ export declare class StackParameters {
|
|
|
75
89
|
readonly keepExistingParameters: boolean;
|
|
76
90
|
private constructor();
|
|
77
91
|
}
|
|
92
|
+
export interface BaseDeployOptions {
|
|
93
|
+
/**
|
|
94
|
+
* Criteria for selecting stacks to deploy
|
|
95
|
+
*
|
|
96
|
+
* @default - all stacks
|
|
97
|
+
*/
|
|
98
|
+
readonly stacks?: StackSelector;
|
|
99
|
+
/**
|
|
100
|
+
* Role to pass to CloudFormation for deployment
|
|
101
|
+
*/
|
|
102
|
+
readonly roleArn?: string;
|
|
103
|
+
/**
|
|
104
|
+
* Deploy even if the deployed template is identical to the one we are about to deploy.
|
|
105
|
+
*
|
|
106
|
+
* @default false
|
|
107
|
+
*/
|
|
108
|
+
readonly forceDeployment?: boolean;
|
|
109
|
+
/**
|
|
110
|
+
* Deployment method
|
|
111
|
+
*
|
|
112
|
+
* @default ChangeSetDeployment
|
|
113
|
+
*/
|
|
114
|
+
readonly deploymentMethod?: DeploymentMethod;
|
|
115
|
+
/**
|
|
116
|
+
* Rollback failed deployments
|
|
117
|
+
*
|
|
118
|
+
* @default true
|
|
119
|
+
*/
|
|
120
|
+
readonly rollback?: boolean;
|
|
121
|
+
/**
|
|
122
|
+
* Automatically orphan resources that failed during rollback
|
|
123
|
+
*
|
|
124
|
+
* Has no effect if `rollback` is `false`.
|
|
125
|
+
*
|
|
126
|
+
* @default false
|
|
127
|
+
*/
|
|
128
|
+
readonly orphanFailedResourcesDuringRollback?: boolean;
|
|
129
|
+
/**
|
|
130
|
+
* Force asset publishing even if the assets have not changed
|
|
131
|
+
* @default false
|
|
132
|
+
*/
|
|
133
|
+
readonly forceAssetPublishing?: boolean;
|
|
134
|
+
/**
|
|
135
|
+
* Reuse the assets with the given asset IDs
|
|
136
|
+
*/
|
|
137
|
+
readonly reuseAssets?: string[];
|
|
138
|
+
/**
|
|
139
|
+
* Maximum number of simultaneous deployments (dependency permitting) to execute.
|
|
140
|
+
* The default is '1', which executes all deployments serially.
|
|
141
|
+
*
|
|
142
|
+
* @default 1
|
|
143
|
+
*/
|
|
144
|
+
readonly concurrency?: number;
|
|
145
|
+
/**
|
|
146
|
+
* Whether to send logs from all CloudWatch log groups in the template
|
|
147
|
+
* to the IoHost
|
|
148
|
+
*
|
|
149
|
+
* @default - false
|
|
150
|
+
*/
|
|
151
|
+
readonly traceLogs?: boolean;
|
|
152
|
+
}
|
|
78
153
|
export interface DeployOptions extends BaseDeployOptions {
|
|
79
154
|
/**
|
|
80
155
|
* ARNs of SNS topics that CloudFormation will notify with stack related events
|
|
@@ -110,13 +185,6 @@ export interface DeployOptions extends BaseDeployOptions {
|
|
|
110
185
|
* @default AssetBuildTime.ALL_BEFORE_DEPLOY
|
|
111
186
|
*/
|
|
112
187
|
readonly assetBuildTime?: AssetBuildTime;
|
|
113
|
-
/**
|
|
114
|
-
* Represents configuration property overrides for hotswap deployments.
|
|
115
|
-
* Currently only supported by ECS.
|
|
116
|
-
*
|
|
117
|
-
* @default - no overrides
|
|
118
|
-
*/
|
|
119
|
-
readonly hotswapProperties?: HotswapProperties;
|
|
120
188
|
}
|
|
121
189
|
/**
|
|
122
190
|
* Property overrides for ECS hotswaps
|
|
@@ -126,12 +194,16 @@ export interface EcsHotswapProperties {
|
|
|
126
194
|
* The lower limit on the number of your service's tasks that must remain
|
|
127
195
|
* in the RUNNING state during a deployment, as a percentage of the desiredCount.
|
|
128
196
|
*/
|
|
129
|
-
readonly minimumHealthyPercent
|
|
197
|
+
readonly minimumHealthyPercent?: number;
|
|
130
198
|
/**
|
|
131
199
|
* The upper limit on the number of your service's tasks that are allowed
|
|
132
200
|
* in the RUNNING or PENDING state during a deployment, as a percentage of the desiredCount.
|
|
133
201
|
*/
|
|
134
|
-
readonly maximumHealthyPercent
|
|
202
|
+
readonly maximumHealthyPercent?: number;
|
|
203
|
+
/**
|
|
204
|
+
* The number of seconds to wait for a single service to reach stable state.
|
|
205
|
+
*/
|
|
206
|
+
readonly stabilizationTimeoutSeconds?: number;
|
|
135
207
|
}
|
|
136
208
|
/**
|
|
137
209
|
* Property overrides for hotswap deployments.
|
|
@@ -140,5 +212,5 @@ export interface HotswapProperties {
|
|
|
140
212
|
/**
|
|
141
213
|
* ECS specific hotswap property overrides
|
|
142
214
|
*/
|
|
143
|
-
readonly ecs
|
|
215
|
+
readonly ecs?: EcsHotswapProperties;
|
|
144
216
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.StackParameters = exports.
|
|
3
|
+
exports.StackParameters = exports.AssetBuildTime = void 0;
|
|
4
4
|
/**
|
|
5
5
|
* When to build assets
|
|
6
6
|
*/
|
|
@@ -18,21 +18,6 @@ var AssetBuildTime;
|
|
|
18
18
|
*/
|
|
19
19
|
AssetBuildTime["JUST_IN_TIME"] = "just-in-time";
|
|
20
20
|
})(AssetBuildTime || (exports.AssetBuildTime = AssetBuildTime = {}));
|
|
21
|
-
var HotswapMode;
|
|
22
|
-
(function (HotswapMode) {
|
|
23
|
-
/**
|
|
24
|
-
* Will fall back to CloudFormation when a non-hotswappable change is detected
|
|
25
|
-
*/
|
|
26
|
-
HotswapMode["FALL_BACK"] = "fall-back";
|
|
27
|
-
/**
|
|
28
|
-
* Will not fall back to CloudFormation when a non-hotswappable change is detected
|
|
29
|
-
*/
|
|
30
|
-
HotswapMode["HOTSWAP_ONLY"] = "hotswap-only";
|
|
31
|
-
/**
|
|
32
|
-
* Will not attempt to hotswap anything and instead go straight to CloudFormation
|
|
33
|
-
*/
|
|
34
|
-
HotswapMode["FULL_DEPLOYMENT"] = "full-deployment";
|
|
35
|
-
})(HotswapMode || (exports.HotswapMode = HotswapMode = {}));
|
|
36
21
|
class StackParameters {
|
|
37
22
|
/**
|
|
38
23
|
* Use only existing parameters on the stack.
|
|
@@ -60,4 +45,4 @@ class StackParameters {
|
|
|
60
45
|
}
|
|
61
46
|
}
|
|
62
47
|
exports.StackParameters = StackParameters;
|
|
63
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFnQ0E7O0dBRUc7QUFDSCxJQUFZLGNBYVg7QUFiRCxXQUFZLGNBQWM7SUFDeEI7Ozs7O09BS0c7SUFDSCx5REFBdUMsQ0FBQTtJQUV2Qzs7T0FFRztJQUNILCtDQUE2QixDQUFBO0FBQy9CLENBQUMsRUFiVyxjQUFjLDhCQUFkLGNBQWMsUUFhekI7QUFFRCxJQUFZLFdBZVg7QUFmRCxXQUFZLFdBQVc7SUFDckI7O09BRUc7SUFDSCxzQ0FBdUIsQ0FBQTtJQUV2Qjs7T0FFRztJQUNILDRDQUE2QixDQUFBO0lBRTdCOztPQUVHO0lBQ0gsa0RBQW1DLENBQUE7QUFDckMsQ0FBQyxFQWZXLFdBQVcsMkJBQVgsV0FBVyxRQWV0QjtBQUVELE1BQWEsZUFBZTtJQUMxQjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZO1FBQ3hCLE9BQU8sSUFBSSxlQUFlLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBOEM7UUFDbEUsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUE4QztRQUN2RSxPQUFPLElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRWUsVUFBVSxDQUFrQztJQUM1QyxzQkFBc0IsQ0FBVTtJQUVoRCxZQUFvQixNQUE4QyxFQUFFLHFCQUFxQixHQUFHLElBQUk7UUFDOUYsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHFCQUFxQixDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FDRjtBQTdCRCwwQ0E2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJhc2VEZXBsb3lPcHRpb25zIH0gZnJvbSAnLi9wcml2YXRlL2RlcGxveS1vcHRpb25zJztcbmltcG9ydCB0eXBlIHsgVGFnIH0gZnJvbSAnLi4vLi4vYXBpL3RhZ3MnO1xuXG5leHBvcnQgdHlwZSBEZXBsb3ltZW50TWV0aG9kID0gRGlyZWN0RGVwbG95bWVudE1ldGhvZCB8IENoYW5nZVNldERlcGxveW1lbnRNZXRob2Q7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlyZWN0RGVwbG95bWVudE1ldGhvZCB7XG4gIC8qKlxuICAgKiBVc2Ugc3RhY2sgQVBJcyB0byB0aGUgZGVwbG95IHN0YWNrIGNoYW5nZXNcbiAgICovXG4gIHJlYWRvbmx5IG1ldGhvZDogJ2RpcmVjdCc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2hhbmdlU2V0RGVwbG95bWVudE1ldGhvZCB7XG4gIC8qKlxuICAgKiBVc2UgY2hhbmdlLXNldCBBUElTIHRvIGRlcGxveSBhIHN0YWNrIGNoYW5nZXNcbiAgICovXG4gIHJlYWRvbmx5IG1ldGhvZDogJ2NoYW5nZS1zZXQnO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGV4ZWN1dGUgdGhlIGNoYW5nZXNldCBvciBsZWF2ZSBpdCBpbiByZXZpZXcuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGV4ZWN1dGU/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbCBuYW1lIHRvIHVzZSBmb3IgdGhlIENsb3VkRm9ybWF0aW9uIGNoYW5nZSBzZXQuXG4gICAqIElmIG5vdCBwcm92aWRlZCwgYSBuYW1lIHdpbGwgYmUgZ2VuZXJhdGVkIGF1dG9tYXRpY2FsbHkuXG4gICAqL1xuICByZWFkb25seSBjaGFuZ2VTZXROYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFdoZW4gdG8gYnVpbGQgYXNzZXRzXG4gKi9cbmV4cG9ydCBlbnVtIEFzc2V0QnVpbGRUaW1lIHtcbiAgLyoqXG4gICAqIEJ1aWxkIGFsbCBhc3NldHMgYmVmb3JlIGRlcGxveWluZyB0aGUgZmlyc3Qgc3RhY2tcbiAgICpcbiAgICogVGhpcyBpcyBpbnRlbmRlZCBmb3IgZXhwZW5zaXZlIERvY2tlciBpbWFnZSBidWlsZHM7IHNvIHRoYXQgaWYgdGhlIERvY2tlciBpbWFnZSBidWlsZFxuICAgKiBmYWlscywgbm8gc3RhY2tzIGFyZSB1bm5lY2Vzc2FyaWx5IGRlcGxveWVkICh3aXRoIHRoZSBhdHRlbmRhbnQgd2FpdCB0aW1lKS5cbiAgICovXG4gIEFMTF9CRUZPUkVfREVQTE9ZID0gJ2FsbC1iZWZvcmUtZGVwbG95JyxcblxuICAvKipcbiAgICogQnVpbGQgYXNzZXRzIGp1c3QtaW4tdGltZSwgYmVmb3JlIHB1Ymxpc2hpbmdcbiAgICovXG4gIEpVU1RfSU5fVElNRSA9ICdqdXN0LWluLXRpbWUnLFxufVxuXG5leHBvcnQgZW51bSBIb3Rzd2FwTW9kZSB7XG4gIC8qKlxuICAgKiBXaWxsIGZhbGwgYmFjayB0byBDbG91ZEZvcm1hdGlvbiB3aGVuIGEgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2UgaXMgZGV0ZWN0ZWRcbiAgICovXG4gIEZBTExfQkFDSyA9ICdmYWxsLWJhY2snLFxuXG4gIC8qKlxuICAgKiBXaWxsIG5vdCBmYWxsIGJhY2sgdG8gQ2xvdWRGb3JtYXRpb24gd2hlbiBhIG5vbi1ob3Rzd2FwcGFibGUgY2hhbmdlIGlzIGRldGVjdGVkXG4gICAqL1xuICBIT1RTV0FQX09OTFkgPSAnaG90c3dhcC1vbmx5JyxcblxuICAvKipcbiAgICogV2lsbCBub3QgYXR0ZW1wdCB0byBob3Rzd2FwIGFueXRoaW5nIGFuZCBpbnN0ZWFkIGdvIHN0cmFpZ2h0IHRvIENsb3VkRm9ybWF0aW9uXG4gICAqL1xuICBGVUxMX0RFUExPWU1FTlQgPSAnZnVsbC1kZXBsb3ltZW50Jyxcbn1cblxuZXhwb3J0IGNsYXNzIFN0YWNrUGFyYW1ldGVycyB7XG4gIC8qKlxuICAgKiBVc2Ugb25seSBleGlzdGluZyBwYXJhbWV0ZXJzIG9uIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb25seUV4aXN0aW5nKCkge1xuICAgIHJldHVybiBuZXcgU3RhY2tQYXJhbWV0ZXJzKHt9LCB0cnVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVc2UgZXhhY3RseSB0aGVzZSBwYXJhbWV0ZXJzIGFuZCByZW1vdmUgYW55IG90aGVyIGV4aXN0aW5nIHBhcmFtZXRlcnMgZnJvbSB0aGUgc3RhY2suXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGV4YWN0bHkocGFyYW1zOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSkge1xuICAgIHJldHVybiBuZXcgU3RhY2tQYXJhbWV0ZXJzKHBhcmFtcywgZmFsc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZSBhZGRpdGlvbmFsIHBhcmFtZXRlcnMgZm9yIHRoZSBzdGFjaywgd2hpbGUga2VlcGluZyBleGlzdGluZyBwYXJhbWV0ZXJzIGZvciB1bnNwZWNpZmllZCB2YWx1ZXMuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGhFeGlzdGluZyhwYXJhbXM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9KSB7XG4gICAgcmV0dXJuIG5ldyBTdGFja1BhcmFtZXRlcnMocGFyYW1zLCB0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBwYXJhbWV0ZXJzOiBNYXA8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+O1xuICBwdWJsaWMgcmVhZG9ubHkga2VlcEV4aXN0aW5nUGFyYW1ldGVyczogYm9vbGVhbjtcblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHBhcmFtczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0sIHVzZVByZXZpb3VzUGFyYW1ldGVycyA9IHRydWUpIHtcbiAgICB0aGlzLmtlZXBFeGlzdGluZ1BhcmFtZXRlcnMgPSB1c2VQcmV2aW91c1BhcmFtZXRlcnM7XG4gICAgdGhpcy5wYXJhbWV0ZXJzID0gbmV3IE1hcChPYmplY3QuZW50cmllcyhwYXJhbXMpKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveU9wdGlvbnMgZXh0ZW5kcyBCYXNlRGVwbG95T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBUk5zIG9mIFNOUyB0b3BpY3MgdGhhdCBDbG91ZEZvcm1hdGlvbiB3aWxsIG5vdGlmeSB3aXRoIHN0YWNrIHJlbGF0ZWQgZXZlbnRzXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25Bcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRhZ3MgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiBmb3IgZGVwbG95bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IFRhZ1tdO1xuXG4gIC8qKlxuICAgKiBTdGFjayBwYXJhbWV0ZXJzIGZvciBDbG91ZEZvcm1hdGlvbiB1c2VkIGF0IGRlcGxveSB0aW1lXG4gICAqIEBkZWZhdWx0IFN0YWNrUGFyYW1ldGVycy5vbmx5RXhpc3RpbmcoKVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IFN0YWNrUGFyYW1ldGVycztcblxuICAvKipcbiAgICogUGF0aCB0byBmaWxlIHdoZXJlIHN0YWNrIG91dHB1dHMgd2lsbCBiZSB3cml0dGVuIGFmdGVyIGEgc3VjY2Vzc2Z1bCBkZXBsb3kgYXMgSlNPTlxuICAgKiBAZGVmYXVsdCAtIE91dHB1dHMgYXJlIG5vdCB3cml0dGVuIHRvIGFueSBmaWxlXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRzRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQnVpbGQvcHVibGlzaCBhc3NldHMgZm9yIGEgc2luZ2xlIHN0YWNrIGluIHBhcmFsbGVsXG4gICAqXG4gICAqIEluZGVwZW5kZW50IG9mIHdoZXRoZXIgc3RhY2tzIGFyZSBiZWluZyBkb25lIGluIHBhcmFsbGVsIG9yIG5vLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhc3NldFBhcmFsbGVsaXNtPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hlbiB0byBidWlsZCBhc3NldHNcbiAgICpcbiAgICogVGhlIGRlZmF1bHQgaXMgdGhlIERvY2tlci1mcmllbmRseSBkZWZhdWx0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBBc3NldEJ1aWxkVGltZS5BTExfQkVGT1JFX0RFUExPWVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRCdWlsZFRpbWU/OiBBc3NldEJ1aWxkVGltZTtcblxuICAvKipcbiAgICogUmVwcmVzZW50cyBjb25maWd1cmF0aW9uIHByb3BlcnR5IG92ZXJyaWRlcyBmb3IgaG90c3dhcCBkZXBsb3ltZW50cy5cbiAgICogQ3VycmVudGx5IG9ubHkgc3VwcG9ydGVkIGJ5IEVDUy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBvdmVycmlkZXNcbiAgICovXG4gIHJlYWRvbmx5IGhvdHN3YXBQcm9wZXJ0aWVzPzogSG90c3dhcFByb3BlcnRpZXM7XG59XG5cbi8qKlxuICogUHJvcGVydHkgb3ZlcnJpZGVzIGZvciBFQ1MgaG90c3dhcHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFY3NIb3Rzd2FwUHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBUaGUgbG93ZXIgbGltaXQgb24gdGhlIG51bWJlciBvZiB5b3VyIHNlcnZpY2UncyB0YXNrcyB0aGF0IG11c3QgcmVtYWluXG4gICAqIGluIHRoZSBSVU5OSU5HIHN0YXRlIGR1cmluZyBhIGRlcGxveW1lbnQsIGFzIGEgcGVyY2VudGFnZSBvZiB0aGUgZGVzaXJlZENvdW50LlxuICAgKi9cbiAgcmVhZG9ubHkgbWluaW11bUhlYWx0aHlQZXJjZW50OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB1cHBlciBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIHlvdXIgc2VydmljZSdzIHRhc2tzIHRoYXQgYXJlIGFsbG93ZWRcbiAgICogaW4gdGhlIFJVTk5JTkcgb3IgUEVORElORyBzdGF0ZSBkdXJpbmcgYSBkZXBsb3ltZW50LCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGRlc2lyZWRDb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IG1heGltdW1IZWFsdGh5UGVyY2VudDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFByb3BlcnR5IG92ZXJyaWRlcyBmb3IgaG90c3dhcCBkZXBsb3ltZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3Rzd2FwUHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBFQ1Mgc3BlY2lmaWMgaG90c3dhcCBwcm9wZXJ0eSBvdmVycmlkZXNcbiAgICovXG4gIHJlYWRvbmx5IGVjczogRWNzSG90c3dhcFByb3BlcnRpZXM7XG59XG4iXX0=
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFnRUE7O0dBRUc7QUFDSCxJQUFZLGNBYVg7QUFiRCxXQUFZLGNBQWM7SUFDeEI7Ozs7O09BS0c7SUFDSCx5REFBdUMsQ0FBQTtJQUV2Qzs7T0FFRztJQUNILCtDQUE2QixDQUFBO0FBQy9CLENBQUMsRUFiVyxjQUFjLDhCQUFkLGNBQWMsUUFhekI7QUFFRCxNQUFhLGVBQWU7SUFDMUI7O09BRUc7SUFDSSxNQUFNLENBQUMsWUFBWTtRQUN4QixPQUFPLElBQUksZUFBZSxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQThDO1FBQ2xFLE9BQU8sSUFBSSxlQUFlLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZLENBQUMsTUFBOEM7UUFDdkUsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDM0MsQ0FBQztJQUVlLFVBQVUsQ0FBa0M7SUFDNUMsc0JBQXNCLENBQVU7SUFFaEQsWUFBb0IsTUFBOEMsRUFBRSxxQkFBcUIsR0FBRyxJQUFJO1FBQzlGLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxxQkFBcUIsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwRCxDQUFDO0NBQ0Y7QUE3QkQsMENBNkJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcbmltcG9ydCB0eXBlIHsgVGFnIH0gZnJvbSAnLi4vLi4vYXBpL3RhZ3MnO1xuXG5leHBvcnQgdHlwZSBEZXBsb3ltZW50TWV0aG9kID0gRGlyZWN0RGVwbG95bWVudCB8IENoYW5nZVNldERlcGxveW1lbnQgfCBIb3Rzd2FwRGVwbG95bWVudDtcblxuLyoqXG4gKiBVc2Ugc3RhY2sgQVBJcyB0byB0aGUgZGVwbG95IHN0YWNrIGNoYW5nZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEaXJlY3REZXBsb3ltZW50IHtcbiAgcmVhZG9ubHkgbWV0aG9kOiAnZGlyZWN0Jztcbn1cblxuLyoqXG4gKiBVc2UgY2hhbmdlLXNldCBBUElzIHRvIGRlcGxveSBhIHN0YWNrIGNoYW5nZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VTZXREZXBsb3ltZW50IHtcbiAgcmVhZG9ubHkgbWV0aG9kOiAnY2hhbmdlLXNldCc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZXhlY3V0ZSB0aGUgY2hhbmdlc2V0IG9yIGxlYXZlIGl0IGluIHJldmlldy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhlY3V0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG5hbWUgdG8gdXNlIGZvciB0aGUgQ2xvdWRGb3JtYXRpb24gY2hhbmdlIHNldC5cbiAgICogSWYgbm90IHByb3ZpZGVkLCBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseS5cbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZVNldE5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgY2hhbmdlIHNldCBpbXBvcnRzIHJlc291cmNlcyB0aGF0IGFscmVhZHkgZXhpc3QuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBpbXBvcnRFeGlzdGluZ1Jlc291cmNlcz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogUGVyZm9ybSBhICdob3Rzd2FwJyBkZXBsb3ltZW50IHRvIGRlcGxveSBhIHN0YWNrIGNoYW5nZXNcbiAqXG4gKiBBICdob3Rzd2FwJyBkZXBsb3ltZW50IHdpbGwgYXR0ZW1wdCB0byBzaG9ydC1jaXJjdWl0IENsb3VkRm9ybWF0aW9uXG4gKiBhbmQgdXBkYXRlIHRoZSBhZmZlY3RlZCByZXNvdXJjZXMgbGlrZSBMYW1iZGEgZnVuY3Rpb25zIGRpcmVjdGx5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEhvdHN3YXBEZXBsb3ltZW50IHtcbiAgcmVhZG9ubHkgbWV0aG9kOiAnaG90c3dhcCc7XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgY29uZmlndXJhdGlvbiBwcm9wZXJ0eSBvdmVycmlkZXMgZm9yIGhvdHN3YXAgZGVwbG95bWVudHMuXG4gICAqIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRlZCBieSBFQ1MuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gb3ZlcnJpZGVzXG4gICAqL1xuICByZWFkb25seSBwcm9wZXJ0aWVzPzogSG90c3dhcFByb3BlcnRpZXM7XG5cbiAgLyoqXG4gICAqIEZhbGwgYmFjayB0byBhIENsb3VkRm9ybWF0aW9uIGRlcGxveW1lbnQgd2hlbiBhIG5vbi1ob3Rzd2FwcGFibGUgY2hhbmdlIGlzIGRldGVjdGVkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZG8gbm90IGZhbGwgYmFjayB0byBhIENsb3VkRm9ybWF0aW9uIGRlcGxveW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGZhbGxiYWNrPzogRGlyZWN0RGVwbG95bWVudCB8IENoYW5nZVNldERlcGxveW1lbnQ7XG59XG5cbi8qKlxuICogV2hlbiB0byBidWlsZCBhc3NldHNcbiAqL1xuZXhwb3J0IGVudW0gQXNzZXRCdWlsZFRpbWUge1xuICAvKipcbiAgICogQnVpbGQgYWxsIGFzc2V0cyBiZWZvcmUgZGVwbG95aW5nIHRoZSBmaXJzdCBzdGFja1xuICAgKlxuICAgKiBUaGlzIGlzIGludGVuZGVkIGZvciBleHBlbnNpdmUgRG9ja2VyIGltYWdlIGJ1aWxkczsgc28gdGhhdCBpZiB0aGUgRG9ja2VyIGltYWdlIGJ1aWxkXG4gICAqIGZhaWxzLCBubyBzdGFja3MgYXJlIHVubmVjZXNzYXJpbHkgZGVwbG95ZWQgKHdpdGggdGhlIGF0dGVuZGFudCB3YWl0IHRpbWUpLlxuICAgKi9cbiAgQUxMX0JFRk9SRV9ERVBMT1kgPSAnYWxsLWJlZm9yZS1kZXBsb3knLFxuXG4gIC8qKlxuICAgKiBCdWlsZCBhc3NldHMganVzdC1pbi10aW1lLCBiZWZvcmUgcHVibGlzaGluZ1xuICAgKi9cbiAgSlVTVF9JTl9USU1FID0gJ2p1c3QtaW4tdGltZScsXG59XG5cbmV4cG9ydCBjbGFzcyBTdGFja1BhcmFtZXRlcnMge1xuICAvKipcbiAgICogVXNlIG9ubHkgZXhpc3RpbmcgcGFyYW1ldGVycyBvbiB0aGUgc3RhY2suXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG9ubHlFeGlzdGluZygpIHtcbiAgICByZXR1cm4gbmV3IFN0YWNrUGFyYW1ldGVycyh7fSwgdHJ1ZSk7XG4gIH1cblxuICAvKipcbiAgICogVXNlIGV4YWN0bHkgdGhlc2UgcGFyYW1ldGVycyBhbmQgcmVtb3ZlIGFueSBvdGhlciBleGlzdGluZyBwYXJhbWV0ZXJzIGZyb20gdGhlIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBleGFjdGx5KHBhcmFtczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0pIHtcbiAgICByZXR1cm4gbmV3IFN0YWNrUGFyYW1ldGVycyhwYXJhbXMsIGZhbHNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmUgYWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgc3RhY2ssIHdoaWxlIGtlZXBpbmcgZXhpc3RpbmcgcGFyYW1ldGVycyBmb3IgdW5zcGVjaWZpZWQgdmFsdWVzLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoRXhpc3RpbmcocGFyYW1zOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSkge1xuICAgIHJldHVybiBuZXcgU3RhY2tQYXJhbWV0ZXJzKHBhcmFtcywgdHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgcmVhZG9ubHkgcGFyYW1ldGVyczogTWFwPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgcHVibGljIHJlYWRvbmx5IGtlZXBFeGlzdGluZ1BhcmFtZXRlcnM6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwYXJhbXM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9LCB1c2VQcmV2aW91c1BhcmFtZXRlcnMgPSB0cnVlKSB7XG4gICAgdGhpcy5rZWVwRXhpc3RpbmdQYXJhbWV0ZXJzID0gdXNlUHJldmlvdXNQYXJhbWV0ZXJzO1xuICAgIHRoaXMucGFyYW1ldGVycyA9IG5ldyBNYXAoT2JqZWN0LmVudHJpZXMocGFyYW1zKSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlRGVwbG95T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDcml0ZXJpYSBmb3Igc2VsZWN0aW5nIHN0YWNrcyB0byBkZXBsb3lcbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbGwgc3RhY2tzXG4gICAqL1xuICByZWFkb25seSBzdGFja3M/OiBTdGFja1NlbGVjdG9yO1xuXG4gIC8qKlxuICAgKiBSb2xlIHRvIHBhc3MgdG8gQ2xvdWRGb3JtYXRpb24gZm9yIGRlcGxveW1lbnRcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIERlcGxveSBldmVuIGlmIHRoZSBkZXBsb3llZCB0ZW1wbGF0ZSBpcyBpZGVudGljYWwgdG8gdGhlIG9uZSB3ZSBhcmUgYWJvdXQgdG8gZGVwbG95LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgZm9yY2VEZXBsb3ltZW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGVwbG95bWVudCBtZXRob2RcbiAgICpcbiAgICogQGRlZmF1bHQgQ2hhbmdlU2V0RGVwbG95bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95bWVudE1ldGhvZD86IERlcGxveW1lbnRNZXRob2Q7XG5cbiAgLyoqXG4gICAqIFJvbGxiYWNrIGZhaWxlZCBkZXBsb3ltZW50c1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSByb2xsYmFjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEF1dG9tYXRpY2FsbHkgb3JwaGFuIHJlc291cmNlcyB0aGF0IGZhaWxlZCBkdXJpbmcgcm9sbGJhY2tcbiAgICpcbiAgICogSGFzIG5vIGVmZmVjdCBpZiBgcm9sbGJhY2tgIGlzIGBmYWxzZWAuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBvcnBoYW5GYWlsZWRSZXNvdXJjZXNEdXJpbmdSb2xsYmFjaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEZvcmNlIGFzc2V0IHB1Ymxpc2hpbmcgZXZlbiBpZiB0aGUgYXNzZXRzIGhhdmUgbm90IGNoYW5nZWRcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlQXNzZXRQdWJsaXNoaW5nPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmV1c2UgdGhlIGFzc2V0cyB3aXRoIHRoZSBnaXZlbiBhc3NldCBJRHNcbiAgICovXG4gIHJlYWRvbmx5IHJldXNlQXNzZXRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE1heGltdW0gbnVtYmVyIG9mIHNpbXVsdGFuZW91cyBkZXBsb3ltZW50cyAoZGVwZW5kZW5jeSBwZXJtaXR0aW5nKSB0byBleGVjdXRlLlxuICAgKiBUaGUgZGVmYXVsdCBpcyAnMScsIHdoaWNoIGV4ZWN1dGVzIGFsbCBkZXBsb3ltZW50cyBzZXJpYWxseS5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgY29uY3VycmVuY3k/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2VuZCBsb2dzIGZyb20gYWxsIENsb3VkV2F0Y2ggbG9nIGdyb3VwcyBpbiB0aGUgdGVtcGxhdGVcbiAgICogdG8gdGhlIElvSG9zdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSB0cmFjZUxvZ3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveU9wdGlvbnMgZXh0ZW5kcyBCYXNlRGVwbG95T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBBUk5zIG9mIFNOUyB0b3BpY3MgdGhhdCBDbG91ZEZvcm1hdGlvbiB3aWxsIG5vdGlmeSB3aXRoIHN0YWNrIHJlbGF0ZWQgZXZlbnRzXG4gICAqL1xuICByZWFkb25seSBub3RpZmljYXRpb25Bcm5zPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRhZ3MgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiBmb3IgZGVwbG95bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IFRhZ1tdO1xuXG4gIC8qKlxuICAgKiBTdGFjayBwYXJhbWV0ZXJzIGZvciBDbG91ZEZvcm1hdGlvbiB1c2VkIGF0IGRlcGxveSB0aW1lXG4gICAqIEBkZWZhdWx0IFN0YWNrUGFyYW1ldGVycy5vbmx5RXhpc3RpbmcoKVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IFN0YWNrUGFyYW1ldGVycztcblxuICAvKipcbiAgICogUGF0aCB0byBmaWxlIHdoZXJlIHN0YWNrIG91dHB1dHMgd2lsbCBiZSB3cml0dGVuIGFmdGVyIGEgc3VjY2Vzc2Z1bCBkZXBsb3kgYXMgSlNPTlxuICAgKiBAZGVmYXVsdCAtIE91dHB1dHMgYXJlIG5vdCB3cml0dGVuIHRvIGFueSBmaWxlXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRzRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQnVpbGQvcHVibGlzaCBhc3NldHMgZm9yIGEgc2luZ2xlIHN0YWNrIGluIHBhcmFsbGVsXG4gICAqXG4gICAqIEluZGVwZW5kZW50IG9mIHdoZXRoZXIgc3RhY2tzIGFyZSBiZWluZyBkb25lIGluIHBhcmFsbGVsIG9yIG5vLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhc3NldFBhcmFsbGVsaXNtPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hlbiB0byBidWlsZCBhc3NldHNcbiAgICpcbiAgICogVGhlIGRlZmF1bHQgaXMgdGhlIERvY2tlci1mcmllbmRseSBkZWZhdWx0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBBc3NldEJ1aWxkVGltZS5BTExfQkVGT1JFX0RFUExPWVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRCdWlsZFRpbWU/OiBBc3NldEJ1aWxkVGltZTtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0eSBvdmVycmlkZXMgZm9yIEVDUyBob3Rzd2Fwc1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEVjc0hvdHN3YXBQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIFRoZSBsb3dlciBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIHlvdXIgc2VydmljZSdzIHRhc2tzIHRoYXQgbXVzdCByZW1haW5cbiAgICogaW4gdGhlIFJVTk5JTkcgc3RhdGUgZHVyaW5nIGEgZGVwbG95bWVudCwgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBkZXNpcmVkQ291bnQuXG4gICAqL1xuICByZWFkb25seSBtaW5pbXVtSGVhbHRoeVBlcmNlbnQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB1cHBlciBsaW1pdCBvbiB0aGUgbnVtYmVyIG9mIHlvdXIgc2VydmljZSdzIHRhc2tzIHRoYXQgYXJlIGFsbG93ZWRcbiAgICogaW4gdGhlIFJVTk5JTkcgb3IgUEVORElORyBzdGF0ZSBkdXJpbmcgYSBkZXBsb3ltZW50LCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGRlc2lyZWRDb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IG1heGltdW1IZWFsdGh5UGVyY2VudD86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBzZWNvbmRzIHRvIHdhaXQgZm9yIGEgc2luZ2xlIHNlcnZpY2UgdG8gcmVhY2ggc3RhYmxlIHN0YXRlLlxuICAgKi9cbiAgcmVhZG9ubHkgc3RhYmlsaXphdGlvblRpbWVvdXRTZWNvbmRzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFByb3BlcnR5IG92ZXJyaWRlcyBmb3IgaG90c3dhcCBkZXBsb3ltZW50cy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBIb3Rzd2FwUHJvcGVydGllcyB7XG4gIC8qKlxuICAgKiBFQ1Mgc3BlY2lmaWMgaG90c3dhcCBwcm9wZXJ0eSBvdmVycmlkZXNcbiAgICovXG4gIHJlYWRvbmx5IGVjcz86IEVjc0hvdHN3YXBQcm9wZXJ0aWVzO1xufVxuIl19
|
|
@@ -1,90 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import type { StackSelector } from '../../../api/cloud-assembly';
|
|
3
|
-
import type { CloudWatchLogEventMonitor } from '../../../api/logs-monitor/logs-monitor';
|
|
4
|
-
export interface BaseDeployOptions {
|
|
5
|
-
/**
|
|
6
|
-
* Criteria for selecting stacks to deploy
|
|
7
|
-
*
|
|
8
|
-
* @default - all stacks
|
|
9
|
-
*/
|
|
10
|
-
readonly stacks?: StackSelector;
|
|
11
|
-
/**
|
|
12
|
-
* Role to pass to CloudFormation for deployment
|
|
13
|
-
*/
|
|
14
|
-
readonly roleArn?: string;
|
|
15
|
-
/**
|
|
16
|
-
* Deploy even if the deployed template is identical to the one we are about to deploy.
|
|
17
|
-
*
|
|
18
|
-
* @default false
|
|
19
|
-
*/
|
|
20
|
-
readonly forceDeployment?: boolean;
|
|
21
|
-
/**
|
|
22
|
-
* Deployment method
|
|
23
|
-
*/
|
|
24
|
-
readonly deploymentMethod?: DeploymentMethod;
|
|
25
|
-
/**
|
|
26
|
-
* Whether to perform a 'hotswap' deployment.
|
|
27
|
-
* A 'hotswap' deployment will attempt to short-circuit CloudFormation
|
|
28
|
-
* and update the affected resources like Lambda functions directly.
|
|
29
|
-
*
|
|
30
|
-
* @default - no hotswap
|
|
31
|
-
*/
|
|
32
|
-
readonly hotswap?: HotswapMode;
|
|
33
|
-
/**
|
|
34
|
-
* Rollback failed deployments
|
|
35
|
-
*
|
|
36
|
-
* @default true
|
|
37
|
-
*/
|
|
38
|
-
readonly rollback?: boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Automatically orphan resources that failed during rollback
|
|
41
|
-
*
|
|
42
|
-
* Has no effect if `rollback` is `false`.
|
|
43
|
-
*
|
|
44
|
-
* @default false
|
|
45
|
-
*/
|
|
46
|
-
readonly orphanFailedResourcesDuringRollback?: boolean;
|
|
47
|
-
/**
|
|
48
|
-
* Force asset publishing even if the assets have not changed
|
|
49
|
-
* @default false
|
|
50
|
-
*/
|
|
51
|
-
readonly forceAssetPublishing?: boolean;
|
|
52
|
-
/**
|
|
53
|
-
* Reuse the assets with the given asset IDs
|
|
54
|
-
*/
|
|
55
|
-
readonly reuseAssets?: string[];
|
|
56
|
-
/**
|
|
57
|
-
* Maximum number of simultaneous deployments (dependency permitting) to execute.
|
|
58
|
-
* The default is '1', which executes all deployments serially.
|
|
59
|
-
*
|
|
60
|
-
* @default 1
|
|
61
|
-
*/
|
|
62
|
-
readonly concurrency?: number;
|
|
63
|
-
/**
|
|
64
|
-
* Whether to send logs from all CloudWatch log groups in the template
|
|
65
|
-
* to the IoHost
|
|
66
|
-
*
|
|
67
|
-
* @default - false
|
|
68
|
-
*/
|
|
69
|
-
readonly traceLogs?: boolean;
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Deploy options needed by the watch command.
|
|
73
|
-
* Intentionally not exported because these options are not
|
|
74
|
-
* meant to be public facing.
|
|
75
|
-
*/
|
|
76
|
-
export interface ExtendedDeployOptions extends DeployOptions {
|
|
77
|
-
/**
|
|
78
|
-
* The extra string to append to the User-Agent header when performing AWS SDK calls.
|
|
79
|
-
*
|
|
80
|
-
* @default - nothing extra is appended to the User-Agent header
|
|
81
|
-
*/
|
|
82
|
-
readonly extraUserAgent?: string;
|
|
83
|
-
/**
|
|
84
|
-
* Allows adding CloudWatch log groups to the log monitor via
|
|
85
|
-
* cloudWatchLogMonitor.setLogGroups();
|
|
86
|
-
*
|
|
87
|
-
* @default - not monitoring CloudWatch logs
|
|
88
|
-
*/
|
|
89
|
-
readonly cloudWatchLogMonitor?: CloudWatchLogEventMonitor;
|
|
90
|
-
}
|
|
1
|
+
export {};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXBsb3ktb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXBsb3lPcHRpb25zIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHR5cGUgeyBDbG91ZFdhdGNoTG9nRXZlbnRNb25pdG9yIH0gZnJvbSAnLi4vLi4vLi4vYXBpL2xvZ3MtbW9uaXRvci9sb2dzLW1vbml0b3InO1xuXG4vKipcbiAqIERlcGxveSBvcHRpb25zIG5lZWRlZCBieSB0aGUgd2F0Y2ggY29tbWFuZC5cbiAqXG4gKiBUaGVzZSBvcHRpb25zIGFyZSBub3QgcHVibGljIGZhY2luZy5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlRGVwbG95T3B0aW9ucyBleHRlbmRzIERlcGxveU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGV4dHJhIHN0cmluZyB0byBhcHBlbmQgdG8gdGhlIFVzZXItQWdlbnQgaGVhZGVyIHdoZW4gcGVyZm9ybWluZyBBV1MgU0RLIGNhbGxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vdGhpbmcgZXh0cmEgaXMgYXBwZW5kZWQgdG8gdGhlIFVzZXItQWdlbnQgaGVhZGVyXG4gICAqL1xuICByZWFkb25seSBleHRyYVVzZXJBZ2VudD86IHN0cmluZztcblxuICAvKipcbiAgICogQWxsb3dzIGFkZGluZyBDbG91ZFdhdGNoIGxvZyBncm91cHMgdG8gdGhlIGxvZyBtb25pdG9yIHZpYVxuICAgKiBjbG91ZFdhdGNoTG9nTW9uaXRvci5zZXRMb2dHcm91cHMoKTtcbiAgICpcbiAgICogQGRlZmF1bHQgLSBub3QgbW9uaXRvcmluZyBDbG91ZFdhdGNoIGxvZ3NcbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkV2F0Y2hMb2dNb25pdG9yPzogQ2xvdWRXYXRjaExvZ0V2ZW50TW9uaXRvcjtcbn1cbiJdfQ==
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import type { DeployOptions
|
|
1
|
+
import type { DeployOptions } from '..';
|
|
2
2
|
import type { Deployments } from '../../../api/deployments';
|
|
3
|
-
import { HotswapPropertyOverrides } from '../../../api/hotswap';
|
|
4
3
|
import type { WorkGraph } from '../../../api/work-graph';
|
|
5
4
|
export declare function buildParameterMap(parameters?: Map<string, string | undefined>): {
|
|
6
5
|
[name: string]: {
|
|
@@ -11,7 +10,3 @@ export declare function buildParameterMap(parameters?: Map<string, string | unde
|
|
|
11
10
|
* Remove the asset publishing and building from the work graph for assets that are already in place
|
|
12
11
|
*/
|
|
13
12
|
export declare function removePublishedAssetsFromWorkGraph(graph: WorkGraph, deployments: Deployments, options: DeployOptions): Promise<void>;
|
|
14
|
-
/**
|
|
15
|
-
* Create the HotswapPropertyOverrides class out of the Interface exposed to users
|
|
16
|
-
*/
|
|
17
|
-
export declare function createHotswapPropertyOverrides(hotswapProperties: HotswapProperties): HotswapPropertyOverrides;
|
|
@@ -2,8 +2,6 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.buildParameterMap = buildParameterMap;
|
|
4
4
|
exports.removePublishedAssetsFromWorkGraph = removePublishedAssetsFromWorkGraph;
|
|
5
|
-
exports.createHotswapPropertyOverrides = createHotswapPropertyOverrides;
|
|
6
|
-
const hotswap_1 = require("../../../api/hotswap");
|
|
7
5
|
function buildParameterMap(parameters) {
|
|
8
6
|
const parameterMap = {};
|
|
9
7
|
parameterMap['*'] = {};
|
|
@@ -32,10 +30,4 @@ async function removePublishedAssetsFromWorkGraph(graph, deployments, options) {
|
|
|
32
30
|
stackName: assetNode.parentStack.stackName,
|
|
33
31
|
}));
|
|
34
32
|
}
|
|
35
|
-
|
|
36
|
-
* Create the HotswapPropertyOverrides class out of the Interface exposed to users
|
|
37
|
-
*/
|
|
38
|
-
function createHotswapPropertyOverrides(hotswapProperties) {
|
|
39
|
-
return new hotswap_1.HotswapPropertyOverrides(new hotswap_1.EcsHotswapProperties(hotswapProperties.ecs.minimumHealthyPercent, hotswapProperties.ecs.maximumHealthyPercent));
|
|
40
|
-
}
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSw4Q0FvQkM7QUFLRCxnRkFNQztBQUtELHdFQUtDO0FBNUNELGtEQUFzRjtBQUd0RixTQUFnQixpQkFBaUIsQ0FBQyxVQUE0QztJQUM1RSxNQUFNLFlBQVksR0FFZCxFQUFFLENBQUM7SUFDUCxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRXZCLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFpQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUsa0NBQWtDLENBQUMsS0FBZ0IsRUFBRSxXQUF3QixFQUFFLE9BQXNCO0lBQ3pILE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRTtRQUM1SCxLQUFLLEVBQUUsU0FBUyxDQUFDLFdBQVc7UUFDNUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLFNBQVMsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVM7S0FDM0MsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiw4QkFBOEIsQ0FBQyxpQkFBb0M7SUFDakYsT0FBTyxJQUFJLGtDQUF3QixDQUFDLElBQUksOEJBQW9CLENBQzFELGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFDM0MsaUJBQWlCLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUM1QyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXBsb3lPcHRpb25zLCBIb3Rzd2FwUHJvcGVydGllcyB9IGZyb20gJy4uJztcbmltcG9ydCB0eXBlIHsgRGVwbG95bWVudHMgfSBmcm9tICcuLi8uLi8uLi9hcGkvZGVwbG95bWVudHMnO1xuaW1wb3J0IHsgRWNzSG90c3dhcFByb3BlcnRpZXMsIEhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlcyB9IGZyb20gJy4uLy4uLy4uL2FwaS9ob3Rzd2FwJztcbmltcG9ydCB0eXBlIHsgV29ya0dyYXBoIH0gZnJvbSAnLi4vLi4vLi4vYXBpL3dvcmstZ3JhcGgnO1xuXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRQYXJhbWV0ZXJNYXAocGFyYW1ldGVycz86IE1hcDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4pOiB7IFtuYW1lOiBzdHJpbmddOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSB9IHtcbiAgY29uc3QgcGFyYW1ldGVyTWFwOiB7XG4gICAgW25hbWU6IHN0cmluZ106IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9O1xuICB9ID0ge307XG4gIHBhcmFtZXRlck1hcFsnKiddID0ge307XG5cbiAgY29uc3QgZW50cmllcyA9IHBhcmFtZXRlcnM/LmVudHJpZXMoKSA/PyBbXTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgZW50cmllcykge1xuICAgIGNvbnN0IFtzdGFjaywgcGFyYW1ldGVyXSA9IGtleS5zcGxpdCgnOicsIDIpIGFzIFtzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZF07XG4gICAgaWYgKCFwYXJhbWV0ZXIpIHtcbiAgICAgIHBhcmFtZXRlck1hcFsnKiddW3N0YWNrXSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoIXBhcmFtZXRlck1hcFtzdGFja10pIHtcbiAgICAgICAgcGFyYW1ldGVyTWFwW3N0YWNrXSA9IHt9O1xuICAgICAgfVxuICAgICAgcGFyYW1ldGVyTWFwW3N0YWNrXVtwYXJhbWV0ZXJdID0gdmFsdWU7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHBhcmFtZXRlck1hcDtcbn1cblxuLyoqXG4gKiBSZW1vdmUgdGhlIGFzc2V0IHB1Ymxpc2hpbmcgYW5kIGJ1aWxkaW5nIGZyb20gdGhlIHdvcmsgZ3JhcGggZm9yIGFzc2V0cyB0aGF0IGFyZSBhbHJlYWR5IGluIHBsYWNlXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiByZW1vdmVQdWJsaXNoZWRBc3NldHNGcm9tV29ya0dyYXBoKGdyYXBoOiBXb3JrR3JhcGgsIGRlcGxveW1lbnRzOiBEZXBsb3ltZW50cywgb3B0aW9uczogRGVwbG95T3B0aW9ucykge1xuICBhd2FpdCBncmFwaC5yZW1vdmVVbm5lY2Vzc2FyeUFzc2V0cyhhc3NldE5vZGUgPT4gZGVwbG95bWVudHMuaXNTaW5nbGVBc3NldFB1Ymxpc2hlZChhc3NldE5vZGUuYXNzZXRNYW5pZmVzdCwgYXNzZXROb2RlLmFzc2V0LCB7XG4gICAgc3RhY2s6IGFzc2V0Tm9kZS5wYXJlbnRTdGFjayxcbiAgICByb2xlQXJuOiBvcHRpb25zLnJvbGVBcm4sXG4gICAgc3RhY2tOYW1lOiBhc3NldE5vZGUucGFyZW50U3RhY2suc3RhY2tOYW1lLFxuICB9KSk7XG59XG5cbi8qKlxuICogQ3JlYXRlIHRoZSBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMgY2xhc3Mgb3V0IG9mIHRoZSBJbnRlcmZhY2UgZXhwb3NlZCB0byB1c2Vyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzKGhvdHN3YXBQcm9wZXJ0aWVzOiBIb3Rzd2FwUHJvcGVydGllcyk6IEhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlcyB7XG4gIHJldHVybiBuZXcgSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzKG5ldyBFY3NIb3Rzd2FwUHJvcGVydGllcyhcbiAgICBob3Rzd2FwUHJvcGVydGllcy5lY3MubWluaW11bUhlYWx0aHlQZXJjZW50LFxuICAgIGhvdHN3YXBQcm9wZXJ0aWVzLmVjcy5tYXhpbXVtSGVhbHRoeVBlcmNlbnQsXG4gICkpO1xufVxuIl19
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFJQSw4Q0FvQkM7QUFLRCxnRkFNQztBQS9CRCxTQUFnQixpQkFBaUIsQ0FBQyxVQUE0QztJQUM1RSxNQUFNLFlBQVksR0FFZCxFQUFFLENBQUM7SUFDUCxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRXZCLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFpQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUsa0NBQWtDLENBQUMsS0FBZ0IsRUFBRSxXQUF3QixFQUFFLE9BQXNCO0lBQ3pILE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRTtRQUM1SCxLQUFLLEVBQUUsU0FBUyxDQUFDLFdBQVc7UUFDNUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLFNBQVMsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVM7S0FDM0MsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEZXBsb3lPcHRpb25zIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHR5cGUgeyBEZXBsb3ltZW50cyB9IGZyb20gJy4uLy4uLy4uL2FwaS9kZXBsb3ltZW50cyc7XG5pbXBvcnQgdHlwZSB7IFdvcmtHcmFwaCB9IGZyb20gJy4uLy4uLy4uL2FwaS93b3JrLWdyYXBoJztcblxuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkUGFyYW1ldGVyTWFwKHBhcmFtZXRlcnM/OiBNYXA8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KTogeyBbbmFtZTogc3RyaW5nXTogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0gfSB7XG4gIGNvbnN0IHBhcmFtZXRlck1hcDoge1xuICAgIFtuYW1lOiBzdHJpbmddOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfTtcbiAgfSA9IHt9O1xuICBwYXJhbWV0ZXJNYXBbJyonXSA9IHt9O1xuXG4gIGNvbnN0IGVudHJpZXMgPSBwYXJhbWV0ZXJzPy5lbnRyaWVzKCkgPz8gW107XG4gIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGVudHJpZXMpIHtcbiAgICBjb25zdCBbc3RhY2ssIHBhcmFtZXRlcl0gPSBrZXkuc3BsaXQoJzonLCAyKSBhcyBbc3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWRdO1xuICAgIGlmICghcGFyYW1ldGVyKSB7XG4gICAgICBwYXJhbWV0ZXJNYXBbJyonXVtzdGFja10gPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKCFwYXJhbWV0ZXJNYXBbc3RhY2tdKSB7XG4gICAgICAgIHBhcmFtZXRlck1hcFtzdGFja10gPSB7fTtcbiAgICAgIH1cbiAgICAgIHBhcmFtZXRlck1hcFtzdGFja11bcGFyYW1ldGVyXSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBwYXJhbWV0ZXJNYXA7XG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBhc3NldCBwdWJsaXNoaW5nIGFuZCBidWlsZGluZyBmcm9tIHRoZSB3b3JrIGdyYXBoIGZvciBhc3NldHMgdGhhdCBhcmUgYWxyZWFkeSBpbiBwbGFjZVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcmVtb3ZlUHVibGlzaGVkQXNzZXRzRnJvbVdvcmtHcmFwaChncmFwaDogV29ya0dyYXBoLCBkZXBsb3ltZW50czogRGVwbG95bWVudHMsIG9wdGlvbnM6IERlcGxveU9wdGlvbnMpIHtcbiAgYXdhaXQgZ3JhcGgucmVtb3ZlVW5uZWNlc3NhcnlBc3NldHMoYXNzZXROb2RlID0+IGRlcGxveW1lbnRzLmlzU2luZ2xlQXNzZXRQdWJsaXNoZWQoYXNzZXROb2RlLmFzc2V0TWFuaWZlc3QsIGFzc2V0Tm9kZS5hc3NldCwge1xuICAgIHN0YWNrOiBhc3NldE5vZGUucGFyZW50U3RhY2ssXG4gICAgcm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgIHN0YWNrTmFtZTogYXNzZXROb2RlLnBhcmVudFN0YWNrLnN0YWNrTmFtZSxcbiAgfSkpO1xufVxuIl19
|