@aws-cdk/toolkit-lib 0.3.1 → 0.3.3
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 +1 -1
- package/build-info.json +2 -2
- package/db.json.gz +0 -0
- package/lib/actions/bootstrap/index.d.ts +1 -1
- package/lib/actions/bootstrap/index.js +5 -5
- package/lib/actions/deploy/index.d.ts +1 -1
- package/lib/actions/deploy/index.js +1 -1
- package/lib/actions/deploy/private/deploy-options.d.ts +1 -1
- package/lib/actions/deploy/private/deploy-options.js +1 -1
- package/lib/actions/deploy/private/helpers.d.ts +3 -2
- package/lib/actions/deploy/private/helpers.js +3 -3
- package/lib/actions/diff/private/helpers.d.ts +5 -9
- package/lib/actions/diff/private/helpers.js +6 -23
- package/lib/api/aws-auth/account-cache.d.ts +41 -0
- package/lib/api/aws-auth/account-cache.js +108 -0
- package/lib/api/aws-auth/awscli-compatible.d.ts +70 -0
- package/lib/api/aws-auth/awscli-compatible.js +250 -0
- package/lib/api/aws-auth/cached.d.ts +11 -0
- package/lib/api/aws-auth/cached.js +26 -0
- package/lib/api/aws-auth/credential-plugins.d.ts +38 -0
- package/lib/api/aws-auth/credential-plugins.js +154 -0
- package/lib/api/aws-auth/private/index.d.ts +11 -0
- package/lib/api/aws-auth/private/index.js +37 -0
- package/lib/api/aws-auth/provider-caching.d.ts +13 -0
- package/lib/api/aws-auth/provider-caching.js +24 -0
- package/lib/api/aws-auth/proxy-agent.d.ts +13 -0
- package/lib/api/aws-auth/proxy-agent.js +54 -0
- package/lib/api/aws-auth/sdk-logger.d.ts +69 -0
- package/lib/api/aws-auth/sdk-logger.js +128 -0
- package/lib/api/aws-auth/sdk-provider.d.ts +195 -0
- package/lib/api/aws-auth/sdk-provider.js +373 -0
- package/lib/api/aws-auth/sdk.d.ts +235 -0
- package/lib/api/aws-auth/sdk.js +391 -0
- package/lib/api/aws-auth/tracing.d.ts +11 -0
- package/lib/api/aws-auth/tracing.js +60 -0
- package/lib/api/aws-auth/types.d.ts +79 -1
- package/lib/api/aws-auth/types.js +74 -1
- package/lib/api/aws-auth/user-agent.d.ts +7 -0
- package/lib/api/aws-auth/user-agent.js +20 -0
- package/lib/api/aws-auth/util.d.ts +6 -0
- package/lib/api/aws-auth/util.js +21 -0
- package/lib/api/bootstrap/bootstrap-environment.d.ts +35 -0
- package/lib/api/bootstrap/bootstrap-environment.js +323 -0
- package/lib/api/bootstrap/bootstrap-props.d.ts +130 -0
- package/lib/api/bootstrap/bootstrap-props.js +14 -0
- package/lib/api/bootstrap/deploy-bootstrap.d.ts +39 -0
- package/lib/api/bootstrap/deploy-bootstrap.js +147 -0
- package/lib/api/bootstrap/index.d.ts +3 -0
- package/lib/api/bootstrap/index.js +23 -0
- package/lib/api/bootstrap/legacy-template.d.ts +2 -0
- package/lib/api/bootstrap/legacy-template.js +82 -0
- package/lib/api/cloud-assembly/environment.d.ts +43 -0
- package/lib/api/cloud-assembly/environment.js +127 -0
- package/lib/api/cloud-assembly/index.d.ts +1 -1
- package/lib/api/cloud-assembly/index.js +3 -3
- package/lib/api/cloud-assembly/private/context-aware-source.d.ts +1 -1
- package/lib/api/cloud-assembly/private/context-aware-source.js +5 -5
- package/lib/api/cloud-assembly/private/prepare-source.d.ts +2 -1
- package/lib/api/cloud-assembly/private/prepare-source.js +14 -12
- package/lib/api/cloud-assembly/private/readable-assembly.d.ts +1 -1
- package/lib/api/cloud-assembly/private/readable-assembly.js +1 -1
- package/lib/api/cloud-assembly/private/source-builder.js +10 -8
- package/lib/api/cloud-assembly/private/stack-assembly.d.ts +2 -1
- package/lib/api/cloud-assembly/private/stack-assembly.js +10 -9
- package/lib/api/cloud-assembly/stack-assembly.d.ts +55 -0
- package/lib/api/cloud-assembly/stack-assembly.js +139 -0
- package/lib/api/cloud-assembly/stack-collection.d.ts +27 -0
- package/lib/api/cloud-assembly/stack-collection.js +112 -0
- package/lib/api/cloud-assembly/stack-selector.d.ts +81 -2
- package/lib/api/cloud-assembly/stack-selector.js +62 -5
- package/lib/api/cloudformation/evaluate-cloudformation-template.d.ts +85 -0
- package/lib/api/cloudformation/evaluate-cloudformation-template.js +456 -0
- package/lib/api/cloudformation/index.d.ts +4 -0
- package/lib/api/cloudformation/index.js +21 -0
- package/lib/api/cloudformation/nested-stack-helpers.d.ts +25 -0
- package/lib/api/cloudformation/nested-stack-helpers.js +86 -0
- package/lib/api/cloudformation/stack-helpers.d.ts +96 -0
- package/lib/api/cloudformation/stack-helpers.js +163 -0
- package/lib/api/cloudformation/template-body-parameter.d.ts +22 -0
- package/lib/api/cloudformation/template-body-parameter.js +104 -0
- package/lib/api/context.d.ts +40 -0
- package/lib/api/context.js +84 -0
- package/lib/api/deployments/asset-manifest-builder.d.ts +8 -0
- package/lib/api/deployments/asset-manifest-builder.js +33 -0
- package/lib/api/deployments/asset-publishing.d.ts +60 -0
- package/lib/api/deployments/asset-publishing.js +144 -0
- package/lib/api/deployments/assets.d.ts +11 -0
- package/lib/api/deployments/assets.js +109 -0
- package/lib/api/deployments/cfn-api.d.ts +145 -0
- package/lib/api/deployments/cfn-api.js +444 -0
- package/lib/api/deployments/checks.d.ts +9 -0
- package/lib/api/deployments/checks.js +72 -0
- package/lib/api/deployments/deploy-stack.d.ts +164 -0
- package/lib/api/deployments/deploy-stack.js +490 -0
- package/lib/api/deployments/deployment-method.d.ts +24 -0
- package/lib/api/deployments/deployment-method.js +3 -0
- package/lib/api/deployments/deployment-result.d.ts +21 -0
- package/lib/api/deployments/deployment-result.js +10 -0
- package/lib/api/deployments/deployments.d.ts +289 -0
- package/lib/api/deployments/deployments.js +355 -0
- package/lib/api/deployments/index.d.ts +6 -0
- package/lib/api/deployments/index.js +27 -0
- package/lib/api/diff/diff-formatter.d.ts +147 -0
- package/lib/api/diff/diff-formatter.js +225 -0
- package/lib/api/diff/index.d.ts +1 -0
- package/lib/api/diff/index.js +18 -0
- package/lib/api/environment/environment-access.d.ts +139 -0
- package/lib/api/environment/environment-access.js +205 -0
- package/lib/api/environment/environment-resources.d.ts +75 -0
- package/lib/api/environment/environment-resources.js +213 -0
- package/lib/api/environment/index.d.ts +3 -0
- package/lib/api/environment/index.js +20 -0
- package/lib/api/environment/placeholders.d.ts +10 -0
- package/lib/api/environment/placeholders.js +23 -0
- package/lib/api/garbage-collection/garbage-collector.d.ts +158 -0
- package/lib/api/garbage-collection/garbage-collector.js +614 -0
- package/lib/api/garbage-collection/index.d.ts +3 -0
- package/lib/api/garbage-collection/index.js +21 -0
- package/lib/api/garbage-collection/progress-printer.d.ts +23 -0
- package/lib/api/garbage-collection/progress-printer.js +80 -0
- package/lib/api/garbage-collection/stack-refresh.d.ts +49 -0
- package/lib/api/garbage-collection/stack-refresh.js +152 -0
- package/lib/api/hotswap/appsync-mapping-templates.d.ts +4 -0
- package/lib/api/hotswap/appsync-mapping-templates.js +162 -0
- package/lib/api/hotswap/code-build-projects.d.ts +4 -0
- package/lib/api/hotswap/code-build-projects.js +62 -0
- package/lib/api/hotswap/common.d.ts +89 -0
- package/lib/api/hotswap/common.js +137 -0
- package/lib/api/hotswap/ecs-services.d.ts +4 -0
- package/lib/api/hotswap/ecs-services.js +159 -0
- package/lib/api/hotswap/hotswap-deployments.d.ts +17 -0
- package/lib/api/hotswap/hotswap-deployments.js +441 -0
- package/lib/api/hotswap/index.d.ts +2 -0
- package/lib/api/hotswap/index.js +19 -0
- package/lib/api/hotswap/lambda-functions.d.ts +4 -0
- package/lib/api/hotswap/lambda-functions.js +297 -0
- package/lib/api/hotswap/s3-bucket-deployments.d.ts +5 -0
- package/lib/api/hotswap/s3-bucket-deployments.js +117 -0
- package/lib/api/hotswap/stepfunctions-state-machines.d.ts +4 -0
- package/lib/api/hotswap/stepfunctions-state-machines.js +48 -0
- package/lib/api/index.d.ts +25 -0
- package/lib/api/index.js +42 -0
- package/lib/api/io/index.d.ts +3 -1
- package/lib/api/io/index.js +18 -1
- package/lib/api/io/io-host.d.ts +15 -0
- package/lib/api/io/io-host.js +3 -0
- package/lib/api/io/io-message.d.ts +76 -0
- package/lib/api/io/io-message.js +3 -0
- package/lib/api/io/private/index.d.ts +7 -1
- package/lib/api/io/private/index.js +8 -5
- package/lib/api/io/private/io-default-messages.d.ts +21 -0
- package/lib/api/io/private/io-default-messages.js +59 -0
- package/lib/api/io/private/io-helper.d.ts +32 -0
- package/lib/api/io/private/io-helper.js +51 -0
- package/lib/api/io/private/level-priority.d.ts +11 -0
- package/lib/api/io/private/level-priority.js +33 -0
- package/lib/api/io/private/message-maker.d.ts +89 -0
- package/lib/api/io/private/message-maker.js +60 -0
- package/lib/api/io/private/messages.d.ts +178 -0
- package/lib/api/io/private/messages.js +534 -0
- package/lib/api/io/private/span.d.ts +93 -0
- package/lib/api/io/private/span.js +87 -0
- package/lib/api/io/private/testing/fake-io-host.d.ts +28 -0
- package/lib/api/io/private/testing/fake-io-host.js +41 -0
- package/lib/api/io/private/testing/index.d.ts +2 -0
- package/lib/api/io/private/testing/index.js +19 -0
- package/lib/api/io/private/testing/test-io-host.d.ts +27 -0
- package/lib/api/io/private/testing/test-io-host.js +61 -0
- package/lib/api/io/private/types.d.ts +4 -0
- package/lib/api/io/private/types.js +3 -0
- package/lib/api/io/toolkit-action.d.ts +4 -0
- package/lib/api/io/toolkit-action.js +3 -0
- package/lib/api/logs-monitor/find-cloudwatch-logs.d.ts +25 -0
- package/lib/api/logs-monitor/find-cloudwatch-logs.js +95 -0
- package/lib/api/logs-monitor/index.d.ts +2 -0
- package/lib/api/logs-monitor/index.js +19 -0
- package/lib/api/logs-monitor/logs-monitor.d.ts +76 -0
- package/lib/api/logs-monitor/logs-monitor.js +194 -0
- package/lib/api/notices.d.ts +210 -0
- package/lib/api/notices.js +430 -0
- package/lib/api/plugin/context-provider-plugin.d.ts +6 -0
- package/lib/api/plugin/context-provider-plugin.js +7 -0
- package/lib/api/plugin/index.d.ts +3 -0
- package/lib/api/plugin/index.js +20 -0
- package/lib/api/plugin/mode.d.ts +4 -0
- package/lib/api/plugin/mode.js +9 -0
- package/lib/api/plugin/plugin.d.ts +72 -0
- package/lib/api/plugin/plugin.js +132 -0
- package/lib/api/private.d.ts +1 -0
- package/lib/api/private.js +18 -0
- package/lib/api/refactoring/cloudformation.d.ts +15 -0
- package/lib/api/refactoring/cloudformation.js +3 -0
- package/lib/api/refactoring/digest.d.ts +26 -0
- package/lib/api/refactoring/digest.js +175 -0
- package/lib/api/refactoring/index.d.ts +51 -0
- package/lib/api/refactoring/index.js +223 -0
- package/lib/api/require-approval.d.ts +17 -0
- package/lib/api/require-approval.js +22 -0
- package/lib/api/resource-import/importer.d.ts +216 -0
- package/lib/api/resource-import/importer.js +331 -0
- package/lib/api/resource-import/index.d.ts +2 -0
- package/lib/api/resource-import/index.js +19 -0
- package/lib/api/resource-import/migrator.d.ts +26 -0
- package/lib/api/resource-import/migrator.js +73 -0
- package/lib/api/resource-metadata/index.d.ts +1 -0
- package/lib/api/resource-metadata/index.js +18 -0
- package/lib/api/resource-metadata/resource-metadata.d.ts +24 -0
- package/lib/api/resource-metadata/resource-metadata.js +42 -0
- package/lib/api/rwlock.d.ts +60 -0
- package/lib/api/rwlock.js +204 -0
- package/lib/api/settings.d.ts +26 -0
- package/lib/api/settings.js +107 -0
- package/lib/api/shared-private.d.ts +8 -5
- package/lib/api/shared-private.js +2921 -9246
- package/lib/api/shared-private.js.map +4 -4
- package/lib/api/shared-public.d.ts +179 -37
- package/lib/api/shared-public.js +3106 -16
- package/lib/api/shared-public.js.map +4 -4
- package/lib/api/stack-events/index.d.ts +4 -0
- package/lib/api/stack-events/index.js +23 -0
- package/lib/api/stack-events/stack-activity-monitor.d.ts +100 -0
- package/lib/api/stack-events/stack-activity-monitor.js +164 -0
- package/lib/api/stack-events/stack-event-poller.d.ts +69 -0
- package/lib/api/stack-events/stack-event-poller.js +130 -0
- package/lib/api/stack-events/stack-progress-monitor.d.ts +48 -0
- package/lib/api/stack-events/stack-progress-monitor.js +98 -0
- package/lib/api/stack-events/stack-status.d.ts +42 -0
- package/lib/api/stack-events/stack-status.js +90 -0
- package/lib/api/streams.d.ts +7 -0
- package/lib/api/streams.js +24 -0
- package/lib/api/tags.d.ts +9 -0
- package/lib/api/tags.js +10 -0
- package/lib/api/toolkit-error.d.ts +86 -0
- package/lib/api/toolkit-error.js +132 -0
- package/lib/api/toolkit-info.d.ts +52 -0
- package/lib/api/toolkit-info.js +157 -0
- package/lib/api/tree.d.ts +31 -0
- package/lib/api/tree.js +37 -0
- package/lib/api/work-graph/index.d.ts +3 -0
- package/lib/api/work-graph/index.js +20 -0
- package/lib/api/work-graph/work-graph-builder.d.ts +34 -0
- package/lib/api/work-graph/work-graph-builder.js +172 -0
- package/lib/api/work-graph/work-graph-types.d.ts +50 -0
- package/lib/api/work-graph/work-graph-types.js +13 -0
- package/lib/api/work-graph/work-graph.d.ts +72 -0
- package/lib/api/work-graph/work-graph.js +349 -0
- package/lib/context-providers/ami.d.ts +13 -0
- package/lib/context-providers/ami.js +52 -0
- package/lib/context-providers/availability-zones.d.ts +13 -0
- package/lib/context-providers/availability-zones.js +29 -0
- package/lib/context-providers/cc-api-provider.d.ts +30 -0
- package/lib/context-providers/cc-api-provider.js +145 -0
- package/lib/context-providers/endpoint-service-availability-zones.d.ts +13 -0
- package/lib/context-providers/endpoint-service-availability-zones.js +35 -0
- package/lib/context-providers/hosted-zones.d.ts +12 -0
- package/lib/context-providers/hosted-zones.js +69 -0
- package/lib/context-providers/index.d.ts +44 -0
- package/lib/context-providers/index.js +128 -0
- package/lib/context-providers/keys.d.ts +13 -0
- package/lib/context-providers/keys.js +54 -0
- package/lib/context-providers/load-balancers.d.ts +20 -0
- package/lib/context-providers/load-balancers.js +161 -0
- package/lib/context-providers/security-groups.d.ts +9 -0
- package/lib/context-providers/security-groups.js +69 -0
- package/lib/context-providers/ssm-parameters.d.ts +25 -0
- package/lib/context-providers/ssm-parameters.js +61 -0
- package/lib/context-providers/vpcs.d.ts +13 -0
- package/lib/context-providers/vpcs.js +291 -0
- package/lib/index.d.ts +1 -0
- package/lib/index.js +2 -1
- package/lib/index_bg.wasm +0 -0
- package/lib/payloads/bootstrap-environment-progress.d.ts +17 -0
- package/lib/payloads/bootstrap-environment-progress.js +3 -0
- package/lib/payloads/context.d.ts +9 -0
- package/lib/payloads/context.js +3 -0
- package/lib/payloads/deploy.d.ts +43 -0
- package/lib/payloads/deploy.js +3 -0
- package/lib/payloads/destroy.d.ts +23 -0
- package/lib/payloads/destroy.js +3 -0
- package/lib/payloads/diff.d.ts +31 -0
- package/lib/payloads/diff.js +22 -0
- package/lib/payloads/hotswap.d.ts +211 -0
- package/lib/payloads/hotswap.js +43 -0
- package/lib/payloads/index.d.ts +17 -0
- package/lib/payloads/index.js +34 -0
- package/lib/payloads/list.d.ts +4 -0
- package/lib/payloads/list.js +3 -0
- package/lib/payloads/logs-monitor.d.ts +33 -0
- package/lib/payloads/logs-monitor.js +3 -0
- package/lib/payloads/progress.d.ts +14 -0
- package/lib/payloads/progress.js +3 -0
- package/lib/payloads/refactor.d.ts +14 -0
- package/lib/payloads/refactor.js +3 -0
- package/lib/payloads/rollback.d.ts +17 -0
- package/lib/payloads/rollback.js +3 -0
- package/lib/payloads/sdk-trace.d.ts +20 -0
- package/lib/payloads/sdk-trace.js +3 -0
- package/lib/payloads/stack-activity.d.ts +53 -0
- package/lib/payloads/stack-activity.js +3 -0
- package/lib/payloads/stack-details.d.ts +17 -0
- package/lib/payloads/stack-details.js +3 -0
- package/lib/payloads/synth.d.ts +7 -0
- package/lib/payloads/synth.js +3 -0
- package/lib/payloads/types.d.ts +95 -0
- package/lib/payloads/types.js +3 -0
- package/lib/payloads/watch.d.ts +27 -0
- package/lib/payloads/watch.js +3 -0
- package/lib/private/activity-printer/base.d.ts +50 -0
- package/lib/private/activity-printer/base.js +120 -0
- package/lib/private/activity-printer/current.d.ts +26 -0
- package/lib/private/activity-printer/current.js +122 -0
- package/lib/private/activity-printer/display.d.ts +13 -0
- package/lib/private/activity-printer/display.js +81 -0
- package/lib/private/activity-printer/history.d.ts +32 -0
- package/lib/private/activity-printer/history.js +109 -0
- package/lib/private/activity-printer/index.d.ts +3 -0
- package/lib/private/activity-printer/index.js +20 -0
- package/lib/private/index.d.ts +1 -0
- package/lib/private/index.js +18 -0
- package/lib/private/util.d.ts +1 -1
- package/lib/private/util.js +22 -22
- package/lib/private/util.js.map +2 -2
- package/lib/toolkit/private/index.d.ts +2 -0
- package/lib/toolkit/private/index.js +1 -1
- package/lib/toolkit/toolkit.d.ts +16 -0
- package/lib/toolkit/toolkit.js +158 -124
- package/lib/toolkit/types.d.ts +0 -55
- package/lib/toolkit/types.js +1 -1
- package/lib/util/archive.d.ts +1 -0
- package/lib/util/archive.js +86 -0
- package/lib/util/arrays.d.ts +14 -0
- package/lib/util/arrays.js +36 -0
- package/lib/util/bool.d.ts +7 -0
- package/lib/util/bool.js +13 -0
- package/lib/util/bytes.d.ts +8 -0
- package/lib/util/bytes.js +21 -0
- package/lib/util/cloudformation.d.ts +16 -0
- package/lib/util/cloudformation.js +36 -0
- package/lib/util/content-hash.d.ts +5 -0
- package/lib/util/content-hash.js +43 -0
- package/lib/util/directories.d.ts +22 -0
- package/lib/util/directories.js +59 -0
- package/lib/util/format-error.d.ts +9 -0
- package/lib/util/format-error.js +22 -0
- package/lib/util/index.d.ts +18 -0
- package/lib/util/index.js +35 -0
- package/lib/util/json.d.ts +48 -0
- package/lib/util/json.js +68 -0
- package/lib/util/objects.d.ts +65 -0
- package/lib/util/objects.js +230 -0
- package/lib/util/package-info.d.ts +3 -0
- package/lib/util/package-info.js +22 -0
- package/lib/util/parallel.d.ts +6 -0
- package/lib/util/parallel.js +48 -0
- package/lib/util/serialize.d.ts +27 -0
- package/lib/util/serialize.js +86 -0
- package/lib/util/string-manipulation.d.ts +18 -0
- package/lib/util/string-manipulation.js +46 -0
- package/lib/util/type-brands.d.ts +39 -0
- package/lib/util/type-brands.js +39 -0
- package/lib/util/types.d.ts +27 -0
- package/lib/util/types.js +25 -0
- package/lib/util/version-range.d.ts +2 -0
- package/lib/util/version-range.js +36 -0
- package/lib/util/yaml-cfn.d.ts +15 -0
- package/lib/util/yaml-cfn.js +58 -0
- package/package.json +12 -13
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StackProgressMonitor = void 0;
|
|
4
|
+
const util = require("util");
|
|
5
|
+
const util_1 = require("../../util");
|
|
6
|
+
/**
|
|
7
|
+
* Monitors stack progress.s
|
|
8
|
+
*/
|
|
9
|
+
class StackProgressMonitor {
|
|
10
|
+
/**
|
|
11
|
+
* Previous completion state observed by logical ID
|
|
12
|
+
*
|
|
13
|
+
* We use this to detect that if we see a DELETE_COMPLETE after a
|
|
14
|
+
* CREATE_COMPLETE, it's actually a rollback and we should DECREASE
|
|
15
|
+
* resourcesDone instead of increase it
|
|
16
|
+
*/
|
|
17
|
+
resourcesPrevCompleteState = {};
|
|
18
|
+
/**
|
|
19
|
+
* Count of resources that have reported a _COMPLETE status
|
|
20
|
+
*/
|
|
21
|
+
resourcesDone = 0;
|
|
22
|
+
/**
|
|
23
|
+
* How many digits we need to represent the total count (for lining up the status reporting)
|
|
24
|
+
*/
|
|
25
|
+
resourceDigits = 0;
|
|
26
|
+
/**
|
|
27
|
+
* Number of expected resources in the monitor.
|
|
28
|
+
*/
|
|
29
|
+
resourcesTotal;
|
|
30
|
+
constructor(resourcesTotal) {
|
|
31
|
+
// +1 because the stack also emits a "COMPLETE" event at the end, and that wasn't
|
|
32
|
+
// counted yet. This makes it line up with the amount of events we expect.
|
|
33
|
+
this.resourcesTotal = resourcesTotal ? resourcesTotal + 1 : undefined;
|
|
34
|
+
// How many digits does this number take to represent?
|
|
35
|
+
this.resourceDigits = this.resourcesTotal ? Math.ceil(Math.log10(this.resourcesTotal)) : 0;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Report the stack progress
|
|
39
|
+
*/
|
|
40
|
+
get progress() {
|
|
41
|
+
return {
|
|
42
|
+
total: this.total,
|
|
43
|
+
completed: this.completed,
|
|
44
|
+
formatted: this.formatted,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* The total number of progress monitored resources.
|
|
49
|
+
*/
|
|
50
|
+
get total() {
|
|
51
|
+
return this.resourcesTotal;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The number of completed resources.
|
|
55
|
+
*/
|
|
56
|
+
get completed() {
|
|
57
|
+
return this.resourcesDone;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Report the current progress as a [34/42] string, or just [34] if the total is unknown
|
|
61
|
+
*/
|
|
62
|
+
get formatted() {
|
|
63
|
+
if (this.resourcesTotal == null) {
|
|
64
|
+
// Don't have total, show simple count and hope the human knows
|
|
65
|
+
return (0, util_1.padLeft)(3, util.format('%s', this.resourcesDone)); // max 500 resources
|
|
66
|
+
}
|
|
67
|
+
return util.format('%s/%s', (0, util_1.padLeft)(this.resourceDigits, this.resourcesDone.toString()), (0, util_1.padLeft)(this.resourceDigits, this.resourcesTotal.toString()));
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Process as stack event and update the progress state.
|
|
71
|
+
*/
|
|
72
|
+
process(event) {
|
|
73
|
+
const status = event.ResourceStatus;
|
|
74
|
+
if (!status || !event.LogicalResourceId) {
|
|
75
|
+
return;
|
|
76
|
+
}
|
|
77
|
+
if (status.endsWith('_COMPLETE_CLEANUP_IN_PROGRESS')) {
|
|
78
|
+
this.resourcesDone++;
|
|
79
|
+
}
|
|
80
|
+
if (status.endsWith('_COMPLETE')) {
|
|
81
|
+
const prevState = this.resourcesPrevCompleteState[event.LogicalResourceId];
|
|
82
|
+
if (!prevState) {
|
|
83
|
+
this.resourcesDone++;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
// If we completed this before and we're completing it AGAIN, means we're rolling back.
|
|
87
|
+
// Protect against silly underflow.
|
|
88
|
+
this.resourcesDone--;
|
|
89
|
+
if (this.resourcesDone < 0) {
|
|
90
|
+
this.resourcesDone = 0;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
this.resourcesPrevCompleteState[event.LogicalResourceId] = status;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.StackProgressMonitor = StackProgressMonitor;
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stcHJvZ3Jlc3MtbW9uaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0YWNrLXByb2dyZXNzLW1vbml0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQTZCO0FBRzdCLHFDQUFxQztBQUVyQzs7R0FFRztBQUNILE1BQWEsb0JBQW9CO0lBQy9COzs7Ozs7T0FNRztJQUNLLDBCQUEwQixHQUEyQixFQUFFLENBQUM7SUFFaEU7O09BRUc7SUFDSyxhQUFhLEdBQVcsQ0FBQyxDQUFDO0lBRWxDOztPQUVHO0lBQ2MsY0FBYyxHQUFXLENBQUMsQ0FBQztJQUU1Qzs7T0FFRztJQUNjLGNBQWMsQ0FBVTtJQUV6QyxZQUFZLGNBQXVCO1FBQ2pDLGlGQUFpRjtRQUNqRiwwRUFBMEU7UUFDMUUsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUMsQ0FBQyxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUV0RSxzREFBc0Q7UUFDdEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFFBQVE7UUFDakIsT0FBTztZQUNMLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSztZQUNqQixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7WUFDekIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1NBQzFCLENBQUM7SUFDSixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLEtBQUs7UUFDZCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFXLFNBQVM7UUFDbEIsSUFBSSxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ2hDLCtEQUErRDtZQUMvRCxPQUFPLElBQUEsY0FBTyxFQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLG9CQUFvQjtRQUNoRixDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUNoQixPQUFPLEVBQ1AsSUFBQSxjQUFPLEVBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQzNELElBQUEsY0FBTyxFQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUM3RCxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0ksT0FBTyxDQUFDLEtBQWlCO1FBQzlCLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDcEMsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3hDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLCtCQUErQixDQUFDLEVBQUUsQ0FBQztZQUNyRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdkIsQ0FBQztRQUVELElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsQ0FBQztZQUMzRSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLENBQUM7aUJBQU0sQ0FBQztnQkFDTix1RkFBdUY7Z0JBQ3ZGLG1DQUFtQztnQkFDbkMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUNyQixJQUFJLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixDQUFDO1lBQ0gsQ0FBQztZQUNELElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsR0FBRyxNQUFNLENBQUM7UUFDcEUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQXZHRCxvREF1R0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dGlsIGZyb20gJ3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0V2ZW50IH0gZnJvbSAnQGF3cy1zZGsvY2xpZW50LWNsb3VkZm9ybWF0aW9uJztcbmltcG9ydCB0eXBlIHsgU3RhY2tQcm9ncmVzcyB9IGZyb20gJy4uLy4uL3BheWxvYWRzL3Byb2dyZXNzJztcbmltcG9ydCB7IHBhZExlZnQgfSBmcm9tICcuLi8uLi91dGlsJztcblxuLyoqXG4gKiBNb25pdG9ycyBzdGFjayBwcm9ncmVzcy5zXG4gKi9cbmV4cG9ydCBjbGFzcyBTdGFja1Byb2dyZXNzTW9uaXRvciB7XG4gIC8qKlxuICAgKiBQcmV2aW91cyBjb21wbGV0aW9uIHN0YXRlIG9ic2VydmVkIGJ5IGxvZ2ljYWwgSURcbiAgICpcbiAgICogV2UgdXNlIHRoaXMgdG8gZGV0ZWN0IHRoYXQgaWYgd2Ugc2VlIGEgREVMRVRFX0NPTVBMRVRFIGFmdGVyIGFcbiAgICogQ1JFQVRFX0NPTVBMRVRFLCBpdCdzIGFjdHVhbGx5IGEgcm9sbGJhY2sgYW5kIHdlIHNob3VsZCBERUNSRUFTRVxuICAgKiByZXNvdXJjZXNEb25lIGluc3RlYWQgb2YgaW5jcmVhc2UgaXRcbiAgICovXG4gIHByaXZhdGUgcmVzb3VyY2VzUHJldkNvbXBsZXRlU3RhdGU6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICAvKipcbiAgICogQ291bnQgb2YgcmVzb3VyY2VzIHRoYXQgaGF2ZSByZXBvcnRlZCBhIF9DT01QTEVURSBzdGF0dXNcbiAgICovXG4gIHByaXZhdGUgcmVzb3VyY2VzRG9uZTogbnVtYmVyID0gMDtcblxuICAvKipcbiAgICogSG93IG1hbnkgZGlnaXRzIHdlIG5lZWQgdG8gcmVwcmVzZW50IHRoZSB0b3RhbCBjb3VudCAoZm9yIGxpbmluZyB1cCB0aGUgc3RhdHVzIHJlcG9ydGluZylcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVzb3VyY2VEaWdpdHM6IG51bWJlciA9IDA7XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBleHBlY3RlZCByZXNvdXJjZXMgaW4gdGhlIG1vbml0b3IuXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlc1RvdGFsPzogbnVtYmVyO1xuXG4gIGNvbnN0cnVjdG9yKHJlc291cmNlc1RvdGFsPzogbnVtYmVyKSB7XG4gICAgLy8gKzEgYmVjYXVzZSB0aGUgc3RhY2sgYWxzbyBlbWl0cyBhIFwiQ09NUExFVEVcIiBldmVudCBhdCB0aGUgZW5kLCBhbmQgdGhhdCB3YXNuJ3RcbiAgICAvLyBjb3VudGVkIHlldC4gVGhpcyBtYWtlcyBpdCBsaW5lIHVwIHdpdGggdGhlIGFtb3VudCBvZiBldmVudHMgd2UgZXhwZWN0LlxuICAgIHRoaXMucmVzb3VyY2VzVG90YWwgPSByZXNvdXJjZXNUb3RhbCA/IHJlc291cmNlc1RvdGFsICsgMSA6IHVuZGVmaW5lZDtcblxuICAgIC8vIEhvdyBtYW55IGRpZ2l0cyBkb2VzIHRoaXMgbnVtYmVyIHRha2UgdG8gcmVwcmVzZW50P1xuICAgIHRoaXMucmVzb3VyY2VEaWdpdHMgPSB0aGlzLnJlc291cmNlc1RvdGFsID8gTWF0aC5jZWlsKE1hdGgubG9nMTAodGhpcy5yZXNvdXJjZXNUb3RhbCkpIDogMDtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBvcnQgdGhlIHN0YWNrIHByb2dyZXNzXG4gICAqL1xuICBwdWJsaWMgZ2V0IHByb2dyZXNzKCk6IFN0YWNrUHJvZ3Jlc3Mge1xuICAgIHJldHVybiB7XG4gICAgICB0b3RhbDogdGhpcy50b3RhbCxcbiAgICAgIGNvbXBsZXRlZDogdGhpcy5jb21wbGV0ZWQsXG4gICAgICBmb3JtYXR0ZWQ6IHRoaXMuZm9ybWF0dGVkLFxuICAgIH07XG4gIH1cblxuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiBwcm9ncmVzcyBtb25pdG9yZWQgcmVzb3VyY2VzLlxuICAgKi9cbiAgcHVibGljIGdldCB0b3RhbCgpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLnJlc291cmNlc1RvdGFsO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgY29tcGxldGVkIHJlc291cmNlcy5cbiAgICovXG4gIHB1YmxpYyBnZXQgY29tcGxldGVkKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMucmVzb3VyY2VzRG9uZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXBvcnQgdGhlIGN1cnJlbnQgcHJvZ3Jlc3MgYXMgYSBbMzQvNDJdIHN0cmluZywgb3IganVzdCBbMzRdIGlmIHRoZSB0b3RhbCBpcyB1bmtub3duXG4gICAqL1xuICBwdWJsaWMgZ2V0IGZvcm1hdHRlZCgpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnJlc291cmNlc1RvdGFsID09IG51bGwpIHtcbiAgICAgIC8vIERvbid0IGhhdmUgdG90YWwsIHNob3cgc2ltcGxlIGNvdW50IGFuZCBob3BlIHRoZSBodW1hbiBrbm93c1xuICAgICAgcmV0dXJuIHBhZExlZnQoMywgdXRpbC5mb3JtYXQoJyVzJywgdGhpcy5yZXNvdXJjZXNEb25lKSk7IC8vIG1heCA1MDAgcmVzb3VyY2VzXG4gICAgfVxuXG4gICAgcmV0dXJuIHV0aWwuZm9ybWF0KFxuICAgICAgJyVzLyVzJyxcbiAgICAgIHBhZExlZnQodGhpcy5yZXNvdXJjZURpZ2l0cywgdGhpcy5yZXNvdXJjZXNEb25lLnRvU3RyaW5nKCkpLFxuICAgICAgcGFkTGVmdCh0aGlzLnJlc291cmNlRGlnaXRzLCB0aGlzLnJlc291cmNlc1RvdGFsLnRvU3RyaW5nKCkpLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogUHJvY2VzcyBhcyBzdGFjayBldmVudCBhbmQgdXBkYXRlIHRoZSBwcm9ncmVzcyBzdGF0ZS5cbiAgICovXG4gIHB1YmxpYyBwcm9jZXNzKGV2ZW50OiBTdGFja0V2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc3RhdHVzID0gZXZlbnQuUmVzb3VyY2VTdGF0dXM7XG4gICAgaWYgKCFzdGF0dXMgfHwgIWV2ZW50LkxvZ2ljYWxSZXNvdXJjZUlkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHN0YXR1cy5lbmRzV2l0aCgnX0NPTVBMRVRFX0NMRUFOVVBfSU5fUFJPR1JFU1MnKSkge1xuICAgICAgdGhpcy5yZXNvdXJjZXNEb25lKys7XG4gICAgfVxuXG4gICAgaWYgKHN0YXR1cy5lbmRzV2l0aCgnX0NPTVBMRVRFJykpIHtcbiAgICAgIGNvbnN0IHByZXZTdGF0ZSA9IHRoaXMucmVzb3VyY2VzUHJldkNvbXBsZXRlU3RhdGVbZXZlbnQuTG9naWNhbFJlc291cmNlSWRdO1xuICAgICAgaWYgKCFwcmV2U3RhdGUpIHtcbiAgICAgICAgdGhpcy5yZXNvdXJjZXNEb25lKys7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJZiB3ZSBjb21wbGV0ZWQgdGhpcyBiZWZvcmUgYW5kIHdlJ3JlIGNvbXBsZXRpbmcgaXQgQUdBSU4sIG1lYW5zIHdlJ3JlIHJvbGxpbmcgYmFjay5cbiAgICAgICAgLy8gUHJvdGVjdCBhZ2FpbnN0IHNpbGx5IHVuZGVyZmxvdy5cbiAgICAgICAgdGhpcy5yZXNvdXJjZXNEb25lLS07XG4gICAgICAgIGlmICh0aGlzLnJlc291cmNlc0RvbmUgPCAwKSB7XG4gICAgICAgICAgdGhpcy5yZXNvdXJjZXNEb25lID0gMDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgdGhpcy5yZXNvdXJjZXNQcmV2Q29tcGxldGVTdGF0ZVtldmVudC5Mb2dpY2FsUmVzb3VyY2VJZF0gPSBzdGF0dXM7XG4gICAgfVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { type Stack } from '@aws-sdk/client-cloudformation';
|
|
2
|
+
/**
|
|
3
|
+
* A utility class to inspect CloudFormation stack statuses.
|
|
4
|
+
*
|
|
5
|
+
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html
|
|
6
|
+
*/
|
|
7
|
+
export declare class StackStatus {
|
|
8
|
+
readonly name: string;
|
|
9
|
+
readonly reason?: string | undefined;
|
|
10
|
+
static fromStackDescription(description: Stack): StackStatus;
|
|
11
|
+
constructor(name: string, reason?: string | undefined);
|
|
12
|
+
get isCreationFailure(): boolean;
|
|
13
|
+
get isDeleted(): boolean;
|
|
14
|
+
get isFailure(): boolean;
|
|
15
|
+
get isInProgress(): boolean;
|
|
16
|
+
get isReviewInProgress(): boolean;
|
|
17
|
+
get isNotFound(): boolean;
|
|
18
|
+
get isDeploySuccess(): boolean;
|
|
19
|
+
get isRollbackSuccess(): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Whether the stack is in a paused state due to `--no-rollback`.
|
|
22
|
+
*
|
|
23
|
+
* The possible actions here are retrying a new `--no-rollback` deployment, or initiating a rollback.
|
|
24
|
+
*/
|
|
25
|
+
get rollbackChoice(): RollbackChoice;
|
|
26
|
+
get isRollbackable(): boolean;
|
|
27
|
+
toString(): string;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Describe the current rollback options for this state
|
|
31
|
+
*/
|
|
32
|
+
export declare enum RollbackChoice {
|
|
33
|
+
START_ROLLBACK = 0,
|
|
34
|
+
CONTINUE_UPDATE_ROLLBACK = 1,
|
|
35
|
+
/**
|
|
36
|
+
* A sign that stack creation AND its rollback have failed.
|
|
37
|
+
*
|
|
38
|
+
* There is no way to recover from this, other than recreating the stack.
|
|
39
|
+
*/
|
|
40
|
+
ROLLBACK_FAILED = 2,
|
|
41
|
+
NONE = 3
|
|
42
|
+
}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RollbackChoice = exports.StackStatus = void 0;
|
|
4
|
+
const client_cloudformation_1 = require("@aws-sdk/client-cloudformation");
|
|
5
|
+
/**
|
|
6
|
+
* A utility class to inspect CloudFormation stack statuses.
|
|
7
|
+
*
|
|
8
|
+
* @see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-describing-stacks.html
|
|
9
|
+
*/
|
|
10
|
+
class StackStatus {
|
|
11
|
+
name;
|
|
12
|
+
reason;
|
|
13
|
+
static fromStackDescription(description) {
|
|
14
|
+
return new StackStatus(description.StackStatus, description.StackStatusReason);
|
|
15
|
+
}
|
|
16
|
+
constructor(name, reason) {
|
|
17
|
+
this.name = name;
|
|
18
|
+
this.reason = reason;
|
|
19
|
+
}
|
|
20
|
+
get isCreationFailure() {
|
|
21
|
+
return this.name === client_cloudformation_1.StackStatus.ROLLBACK_COMPLETE || this.name === client_cloudformation_1.StackStatus.ROLLBACK_FAILED;
|
|
22
|
+
}
|
|
23
|
+
get isDeleted() {
|
|
24
|
+
return this.name.startsWith('DELETE_');
|
|
25
|
+
}
|
|
26
|
+
get isFailure() {
|
|
27
|
+
return this.name.endsWith('FAILED');
|
|
28
|
+
}
|
|
29
|
+
get isInProgress() {
|
|
30
|
+
return this.name.endsWith('_IN_PROGRESS') && !this.isReviewInProgress;
|
|
31
|
+
}
|
|
32
|
+
get isReviewInProgress() {
|
|
33
|
+
return this.name === client_cloudformation_1.StackStatus.REVIEW_IN_PROGRESS;
|
|
34
|
+
}
|
|
35
|
+
get isNotFound() {
|
|
36
|
+
return this.name === 'NOT_FOUND';
|
|
37
|
+
}
|
|
38
|
+
get isDeploySuccess() {
|
|
39
|
+
return (!this.isNotFound &&
|
|
40
|
+
(this.name === client_cloudformation_1.StackStatus.CREATE_COMPLETE ||
|
|
41
|
+
this.name === client_cloudformation_1.StackStatus.UPDATE_COMPLETE ||
|
|
42
|
+
this.name === client_cloudformation_1.StackStatus.IMPORT_COMPLETE));
|
|
43
|
+
}
|
|
44
|
+
get isRollbackSuccess() {
|
|
45
|
+
return this.name === client_cloudformation_1.StackStatus.ROLLBACK_COMPLETE || this.name === client_cloudformation_1.StackStatus.UPDATE_ROLLBACK_COMPLETE;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Whether the stack is in a paused state due to `--no-rollback`.
|
|
49
|
+
*
|
|
50
|
+
* The possible actions here are retrying a new `--no-rollback` deployment, or initiating a rollback.
|
|
51
|
+
*/
|
|
52
|
+
get rollbackChoice() {
|
|
53
|
+
switch (this.name) {
|
|
54
|
+
case client_cloudformation_1.StackStatus.CREATE_FAILED:
|
|
55
|
+
case client_cloudformation_1.StackStatus.UPDATE_FAILED:
|
|
56
|
+
return RollbackChoice.START_ROLLBACK;
|
|
57
|
+
case client_cloudformation_1.StackStatus.UPDATE_ROLLBACK_FAILED:
|
|
58
|
+
return RollbackChoice.CONTINUE_UPDATE_ROLLBACK;
|
|
59
|
+
case client_cloudformation_1.StackStatus.ROLLBACK_FAILED:
|
|
60
|
+
// Unfortunately there is no option to continue a failed rollback without
|
|
61
|
+
// a stable target state.
|
|
62
|
+
return RollbackChoice.ROLLBACK_FAILED;
|
|
63
|
+
default:
|
|
64
|
+
return RollbackChoice.NONE;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
get isRollbackable() {
|
|
68
|
+
return [RollbackChoice.START_ROLLBACK, RollbackChoice.CONTINUE_UPDATE_ROLLBACK].includes(this.rollbackChoice);
|
|
69
|
+
}
|
|
70
|
+
toString() {
|
|
71
|
+
return this.name + (this.reason ? ` (${this.reason})` : '');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
exports.StackStatus = StackStatus;
|
|
75
|
+
/**
|
|
76
|
+
* Describe the current rollback options for this state
|
|
77
|
+
*/
|
|
78
|
+
var RollbackChoice;
|
|
79
|
+
(function (RollbackChoice) {
|
|
80
|
+
RollbackChoice[RollbackChoice["START_ROLLBACK"] = 0] = "START_ROLLBACK";
|
|
81
|
+
RollbackChoice[RollbackChoice["CONTINUE_UPDATE_ROLLBACK"] = 1] = "CONTINUE_UPDATE_ROLLBACK";
|
|
82
|
+
/**
|
|
83
|
+
* A sign that stack creation AND its rollback have failed.
|
|
84
|
+
*
|
|
85
|
+
* There is no way to recover from this, other than recreating the stack.
|
|
86
|
+
*/
|
|
87
|
+
RollbackChoice[RollbackChoice["ROLLBACK_FAILED"] = 2] = "ROLLBACK_FAILED";
|
|
88
|
+
RollbackChoice[RollbackChoice["NONE"] = 3] = "NONE";
|
|
89
|
+
})(RollbackChoice || (exports.RollbackChoice = RollbackChoice = {}));
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhY2stc3RhdHVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhY2stc3RhdHVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDBFQUF5RjtBQUV6Rjs7OztHQUlHO0FBQ0gsTUFBYSxXQUFXO0lBTUo7SUFDQTtJQU5YLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxXQUFrQjtRQUNuRCxPQUFPLElBQUksV0FBVyxDQUFDLFdBQVcsQ0FBQyxXQUFZLEVBQUUsV0FBVyxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUVELFlBQ2tCLElBQVksRUFDWixNQUFlO1FBRGYsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFdBQU0sR0FBTixNQUFNLENBQVM7SUFFakMsQ0FBQztJQUVELElBQUksaUJBQWlCO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxtQ0FBWSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssbUNBQVksQ0FBQyxlQUFlLENBQUM7SUFDcEcsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUM7SUFDeEUsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxtQ0FBWSxDQUFDLGtCQUFrQixDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLFVBQVU7UUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDO0lBQ25DLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxDQUNMLENBQUMsSUFBSSxDQUFDLFVBQVU7WUFDaEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLG1DQUFZLENBQUMsZUFBZTtnQkFDekMsSUFBSSxDQUFDLElBQUksS0FBSyxtQ0FBWSxDQUFDLGVBQWU7Z0JBQzFDLElBQUksQ0FBQyxJQUFJLEtBQUssbUNBQVksQ0FBQyxlQUFlLENBQUMsQ0FDOUMsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssbUNBQVksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLG1DQUFZLENBQUMsd0JBQXdCLENBQUM7SUFDN0csQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFJLGNBQWM7UUFDaEIsUUFBUSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDbEIsS0FBSyxtQ0FBWSxDQUFDLGFBQWEsQ0FBQztZQUNoQyxLQUFLLG1DQUFZLENBQUMsYUFBYTtnQkFDN0IsT0FBTyxjQUFjLENBQUMsY0FBYyxDQUFDO1lBQ3ZDLEtBQUssbUNBQVksQ0FBQyxzQkFBc0I7Z0JBQ3RDLE9BQU8sY0FBYyxDQUFDLHdCQUF3QixDQUFDO1lBQ2pELEtBQUssbUNBQVksQ0FBQyxlQUFlO2dCQUMvQix5RUFBeUU7Z0JBQ3pFLHlCQUF5QjtnQkFDekIsT0FBTyxjQUFjLENBQUMsZUFBZSxDQUFDO1lBQ3hDO2dCQUNFLE9BQU8sY0FBYyxDQUFDLElBQUksQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxjQUFjLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFFTSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRjtBQTVFRCxrQ0E0RUM7QUFFRDs7R0FFRztBQUNILElBQVksY0FVWDtBQVZELFdBQVksY0FBYztJQUN4Qix1RUFBYyxDQUFBO0lBQ2QsMkZBQXdCLENBQUE7SUFDeEI7Ozs7T0FJRztJQUNILHlFQUFlLENBQUE7SUFDZixtREFBSSxDQUFBO0FBQ04sQ0FBQyxFQVZXLGNBQWMsOEJBQWQsY0FBYyxRQVV6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgU3RhY2ssIFN0YWNrU3RhdHVzIGFzIF9TdGFja1N0YXR1cyB9IGZyb20gJ0Bhd3Mtc2RrL2NsaWVudC1jbG91ZGZvcm1hdGlvbic7XG5cbi8qKlxuICogQSB1dGlsaXR5IGNsYXNzIHRvIGluc3BlY3QgQ2xvdWRGb3JtYXRpb24gc3RhY2sgc3RhdHVzZXMuXG4gKlxuICogQHNlZSBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tZGVzY3JpYmluZy1zdGFja3MuaHRtbFxuICovXG5leHBvcnQgY2xhc3MgU3RhY2tTdGF0dXMge1xuICBwdWJsaWMgc3RhdGljIGZyb21TdGFja0Rlc2NyaXB0aW9uKGRlc2NyaXB0aW9uOiBTdGFjaykge1xuICAgIHJldHVybiBuZXcgU3RhY2tTdGF0dXMoZGVzY3JpcHRpb24uU3RhY2tTdGF0dXMhLCBkZXNjcmlwdGlvbi5TdGFja1N0YXR1c1JlYXNvbik7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcmVhZG9ubHkgbmFtZTogc3RyaW5nLFxuICAgIHB1YmxpYyByZWFkb25seSByZWFzb24/OiBzdHJpbmcsXG4gICkge1xuICB9XG5cbiAgZ2V0IGlzQ3JlYXRpb25GYWlsdXJlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5hbWUgPT09IF9TdGFja1N0YXR1cy5ST0xMQkFDS19DT01QTEVURSB8fCB0aGlzLm5hbWUgPT09IF9TdGFja1N0YXR1cy5ST0xMQkFDS19GQUlMRUQ7XG4gIH1cblxuICBnZXQgaXNEZWxldGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm5hbWUuc3RhcnRzV2l0aCgnREVMRVRFXycpO1xuICB9XG5cbiAgZ2V0IGlzRmFpbHVyZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lLmVuZHNXaXRoKCdGQUlMRUQnKTtcbiAgfVxuXG4gIGdldCBpc0luUHJvZ3Jlc3MoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmFtZS5lbmRzV2l0aCgnX0lOX1BST0dSRVNTJykgJiYgIXRoaXMuaXNSZXZpZXdJblByb2dyZXNzO1xuICB9XG5cbiAgZ2V0IGlzUmV2aWV3SW5Qcm9ncmVzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lID09PSBfU3RhY2tTdGF0dXMuUkVWSUVXX0lOX1BST0dSRVNTO1xuICB9XG5cbiAgZ2V0IGlzTm90Rm91bmQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMubmFtZSA9PT0gJ05PVF9GT1VORCc7XG4gIH1cblxuICBnZXQgaXNEZXBsb3lTdWNjZXNzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICAhdGhpcy5pc05vdEZvdW5kICYmXG4gICAgICAodGhpcy5uYW1lID09PSBfU3RhY2tTdGF0dXMuQ1JFQVRFX0NPTVBMRVRFIHx8XG4gICAgICAgIHRoaXMubmFtZSA9PT0gX1N0YWNrU3RhdHVzLlVQREFURV9DT01QTEVURSB8fFxuICAgICAgICB0aGlzLm5hbWUgPT09IF9TdGFja1N0YXR1cy5JTVBPUlRfQ09NUExFVEUpXG4gICAgKTtcbiAgfVxuXG4gIGdldCBpc1JvbGxiYWNrU3VjY2VzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5uYW1lID09PSBfU3RhY2tTdGF0dXMuUk9MTEJBQ0tfQ09NUExFVEUgfHwgdGhpcy5uYW1lID09PSBfU3RhY2tTdGF0dXMuVVBEQVRFX1JPTExCQUNLX0NPTVBMRVRFO1xuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHN0YWNrIGlzIGluIGEgcGF1c2VkIHN0YXRlIGR1ZSB0byBgLS1uby1yb2xsYmFja2AuXG4gICAqXG4gICAqIFRoZSBwb3NzaWJsZSBhY3Rpb25zIGhlcmUgYXJlIHJldHJ5aW5nIGEgbmV3IGAtLW5vLXJvbGxiYWNrYCBkZXBsb3ltZW50LCBvciBpbml0aWF0aW5nIGEgcm9sbGJhY2suXG4gICAqL1xuICBnZXQgcm9sbGJhY2tDaG9pY2UoKTogUm9sbGJhY2tDaG9pY2Uge1xuICAgIHN3aXRjaCAodGhpcy5uYW1lKSB7XG4gICAgICBjYXNlIF9TdGFja1N0YXR1cy5DUkVBVEVfRkFJTEVEOlxuICAgICAgY2FzZSBfU3RhY2tTdGF0dXMuVVBEQVRFX0ZBSUxFRDpcbiAgICAgICAgcmV0dXJuIFJvbGxiYWNrQ2hvaWNlLlNUQVJUX1JPTExCQUNLO1xuICAgICAgY2FzZSBfU3RhY2tTdGF0dXMuVVBEQVRFX1JPTExCQUNLX0ZBSUxFRDpcbiAgICAgICAgcmV0dXJuIFJvbGxiYWNrQ2hvaWNlLkNPTlRJTlVFX1VQREFURV9ST0xMQkFDSztcbiAgICAgIGNhc2UgX1N0YWNrU3RhdHVzLlJPTExCQUNLX0ZBSUxFRDpcbiAgICAgICAgLy8gVW5mb3J0dW5hdGVseSB0aGVyZSBpcyBubyBvcHRpb24gdG8gY29udGludWUgYSBmYWlsZWQgcm9sbGJhY2sgd2l0aG91dFxuICAgICAgICAvLyBhIHN0YWJsZSB0YXJnZXQgc3RhdGUuXG4gICAgICAgIHJldHVybiBSb2xsYmFja0Nob2ljZS5ST0xMQkFDS19GQUlMRUQ7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gUm9sbGJhY2tDaG9pY2UuTk9ORTtcbiAgICB9XG4gIH1cblxuICBnZXQgaXNSb2xsYmFja2FibGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFtSb2xsYmFja0Nob2ljZS5TVEFSVF9ST0xMQkFDSywgUm9sbGJhY2tDaG9pY2UuQ09OVElOVUVfVVBEQVRFX1JPTExCQUNLXS5pbmNsdWRlcyh0aGlzLnJvbGxiYWNrQ2hvaWNlKTtcbiAgfVxuXG4gIHB1YmxpYyB0b1N0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm5hbWUgKyAodGhpcy5yZWFzb24gPyBgICgke3RoaXMucmVhc29ufSlgIDogJycpO1xuICB9XG59XG5cbi8qKlxuICogRGVzY3JpYmUgdGhlIGN1cnJlbnQgcm9sbGJhY2sgb3B0aW9ucyBmb3IgdGhpcyBzdGF0ZVxuICovXG5leHBvcnQgZW51bSBSb2xsYmFja0Nob2ljZSB7XG4gIFNUQVJUX1JPTExCQUNLLFxuICBDT05USU5VRV9VUERBVEVfUk9MTEJBQ0ssXG4gIC8qKlxuICAgKiBBIHNpZ24gdGhhdCBzdGFjayBjcmVhdGlvbiBBTkQgaXRzIHJvbGxiYWNrIGhhdmUgZmFpbGVkLlxuICAgKlxuICAgKiBUaGVyZSBpcyBubyB3YXkgdG8gcmVjb3ZlciBmcm9tIHRoaXMsIG90aGVyIHRoYW4gcmVjcmVhdGluZyB0aGUgc3RhY2suXG4gICAqL1xuICBST0xMQkFDS19GQUlMRUQsXG4gIE5PTkUsXG59XG4iXX0=
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.StringWriteStream = void 0;
|
|
4
|
+
const node_stream_1 = require("node:stream");
|
|
5
|
+
/*
|
|
6
|
+
* Custom writable stream that collects text into a string buffer.
|
|
7
|
+
* Used on classes that take in and directly write to a stream, but
|
|
8
|
+
* we intend to capture the output rather than print.
|
|
9
|
+
*/
|
|
10
|
+
class StringWriteStream extends node_stream_1.Writable {
|
|
11
|
+
buffer = [];
|
|
12
|
+
constructor() {
|
|
13
|
+
super();
|
|
14
|
+
}
|
|
15
|
+
_write(chunk, _encoding, callback) {
|
|
16
|
+
this.buffer.push(chunk.toString());
|
|
17
|
+
callback();
|
|
18
|
+
}
|
|
19
|
+
toString() {
|
|
20
|
+
return this.buffer.join('');
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
exports.StringWriteStream = StringWriteStream;
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyZWFtcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInN0cmVhbXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQXVDO0FBRXZDOzs7O0dBSUc7QUFDSCxNQUFhLGlCQUFrQixTQUFRLHNCQUFRO0lBQ3JDLE1BQU0sR0FBYSxFQUFFLENBQUM7SUFFOUI7UUFDRSxLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxNQUFNLENBQUMsS0FBVSxFQUFFLFNBQWlCLEVBQUUsUUFBd0M7UUFDNUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDbkMsUUFBUSxFQUFFLENBQUM7SUFDYixDQUFDO0lBRUQsUUFBUTtRQUNOLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztDQUNGO0FBZkQsOENBZUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBXcml0YWJsZSB9IGZyb20gJ25vZGU6c3RyZWFtJztcblxuLypcbiAqIEN1c3RvbSB3cml0YWJsZSBzdHJlYW0gdGhhdCBjb2xsZWN0cyB0ZXh0IGludG8gYSBzdHJpbmcgYnVmZmVyLlxuICogVXNlZCBvbiBjbGFzc2VzIHRoYXQgdGFrZSBpbiBhbmQgZGlyZWN0bHkgd3JpdGUgdG8gYSBzdHJlYW0sIGJ1dFxuICogd2UgaW50ZW5kIHRvIGNhcHR1cmUgdGhlIG91dHB1dCByYXRoZXIgdGhhbiBwcmludC5cbiAqL1xuZXhwb3J0IGNsYXNzIFN0cmluZ1dyaXRlU3RyZWFtIGV4dGVuZHMgV3JpdGFibGUge1xuICBwcml2YXRlIGJ1ZmZlcjogc3RyaW5nW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgX3dyaXRlKGNodW5rOiBhbnksIF9lbmNvZGluZzogc3RyaW5nLCBjYWxsYmFjazogKGVycm9yPzogRXJyb3IgfCBudWxsKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5idWZmZXIucHVzaChjaHVuay50b1N0cmluZygpKTtcbiAgICBjYWxsYmFjaygpO1xuICB9XG5cbiAgdG9TdHJpbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5idWZmZXIuam9pbignJyk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type * as cxapi from '@aws-cdk/cx-api';
|
|
2
|
+
/**
|
|
3
|
+
* @returns an array with the tags available in the stack metadata.
|
|
4
|
+
*/
|
|
5
|
+
export declare function tagsForStack(stack: cxapi.CloudFormationStackArtifact): Tag[];
|
|
6
|
+
export interface Tag {
|
|
7
|
+
readonly Key: string;
|
|
8
|
+
readonly Value: string;
|
|
9
|
+
}
|
package/lib/api/tags.js
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.tagsForStack = tagsForStack;
|
|
4
|
+
/**
|
|
5
|
+
* @returns an array with the tags available in the stack metadata.
|
|
6
|
+
*/
|
|
7
|
+
function tagsForStack(stack) {
|
|
8
|
+
return Object.entries(stack.tags).map(([Key, Value]) => ({ Key, Value }));
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRhZ3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFLQSxvQ0FFQztBQUxEOztHQUVHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLEtBQXdDO0lBQ25FLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQzVFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5cbi8qKlxuICogQHJldHVybnMgYW4gYXJyYXkgd2l0aCB0aGUgdGFncyBhdmFpbGFibGUgaW4gdGhlIHN0YWNrIG1ldGFkYXRhLlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGFnc0ZvclN0YWNrKHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QpOiBUYWdbXSB7XG4gIHJldHVybiBPYmplY3QuZW50cmllcyhzdGFjay50YWdzKS5tYXAoKFtLZXksIFZhbHVlXSkgPT4gKHsgS2V5LCBWYWx1ZSB9KSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbiAgcmVhZG9ubHkgS2V5OiBzdHJpbmc7XG4gIHJlYWRvbmx5IFZhbHVlOiBzdHJpbmc7XG59XG4iXX0=
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import type * as cxapi from '@aws-cdk/cx-api';
|
|
2
|
+
/**
|
|
3
|
+
* Represents a general toolkit error in the AWS CDK Toolkit.
|
|
4
|
+
*/
|
|
5
|
+
export declare class ToolkitError extends Error {
|
|
6
|
+
/**
|
|
7
|
+
* Determines if a given error is an instance of ToolkitError.
|
|
8
|
+
*/
|
|
9
|
+
static isToolkitError(x: any): x is ToolkitError;
|
|
10
|
+
/**
|
|
11
|
+
* Determines if a given error is an instance of AuthenticationError.
|
|
12
|
+
*/
|
|
13
|
+
static isAuthenticationError(x: any): x is AuthenticationError;
|
|
14
|
+
/**
|
|
15
|
+
* Determines if a given error is an instance of AssemblyError.
|
|
16
|
+
*/
|
|
17
|
+
static isAssemblyError(x: any): x is AssemblyError;
|
|
18
|
+
/**
|
|
19
|
+
* Determines if a given error is an instance of AssemblyError.
|
|
20
|
+
*/
|
|
21
|
+
static isContextProviderError(x: any): x is ContextProviderError;
|
|
22
|
+
/**
|
|
23
|
+
* An AssemblyError with an original error as cause
|
|
24
|
+
*/
|
|
25
|
+
static withCause(message: string, error: unknown): ToolkitError;
|
|
26
|
+
/**
|
|
27
|
+
* The type of the error, defaults to "toolkit".
|
|
28
|
+
*/
|
|
29
|
+
readonly type: string;
|
|
30
|
+
/**
|
|
31
|
+
* Denotes the source of the error as the toolkit.
|
|
32
|
+
*/
|
|
33
|
+
readonly source: 'toolkit' | 'user';
|
|
34
|
+
/**
|
|
35
|
+
* The specific original cause of the error, if available
|
|
36
|
+
*/
|
|
37
|
+
readonly cause?: unknown;
|
|
38
|
+
constructor(message: string, type?: string, cause?: unknown);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Represents an authentication-specific error in the AWS CDK Toolkit.
|
|
42
|
+
*/
|
|
43
|
+
export declare class AuthenticationError extends ToolkitError {
|
|
44
|
+
/**
|
|
45
|
+
* Denotes the source of the error as user.
|
|
46
|
+
*/
|
|
47
|
+
readonly source = "user";
|
|
48
|
+
constructor(message: string);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Represents an error causes by cloud assembly synthesis
|
|
52
|
+
*
|
|
53
|
+
* This includes errors thrown during app execution, as well as failing annotations.
|
|
54
|
+
*/
|
|
55
|
+
export declare class AssemblyError extends ToolkitError {
|
|
56
|
+
/**
|
|
57
|
+
* An AssemblyError with an original error as cause
|
|
58
|
+
*/
|
|
59
|
+
static withCause(message: string, error: unknown): AssemblyError;
|
|
60
|
+
/**
|
|
61
|
+
* An AssemblyError with a list of stacks as cause
|
|
62
|
+
*/
|
|
63
|
+
static withStacks(message: string, stacks?: cxapi.CloudFormationStackArtifact[]): AssemblyError;
|
|
64
|
+
/**
|
|
65
|
+
* Denotes the source of the error as user.
|
|
66
|
+
*/
|
|
67
|
+
readonly source = "user";
|
|
68
|
+
/**
|
|
69
|
+
* The stacks that caused the error, if available
|
|
70
|
+
*
|
|
71
|
+
* The `messages` property of each `cxapi.CloudFormationStackArtifact` will contain the respective errors.
|
|
72
|
+
* Absence indicates synthesis didn't fully complete.
|
|
73
|
+
*/
|
|
74
|
+
readonly stacks?: cxapi.CloudFormationStackArtifact[];
|
|
75
|
+
private constructor();
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Represents an error originating from a Context Provider
|
|
79
|
+
*/
|
|
80
|
+
export declare class ContextProviderError extends ToolkitError {
|
|
81
|
+
/**
|
|
82
|
+
* Denotes the source of the error as user.
|
|
83
|
+
*/
|
|
84
|
+
readonly source = "user";
|
|
85
|
+
constructor(message: string);
|
|
86
|
+
}
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ContextProviderError = exports.AssemblyError = exports.AuthenticationError = exports.ToolkitError = void 0;
|
|
4
|
+
const TOOLKIT_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.ToolkitError');
|
|
5
|
+
const AUTHENTICATION_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.AuthenticationError');
|
|
6
|
+
const ASSEMBLY_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.AssemblyError');
|
|
7
|
+
const CONTEXT_PROVIDER_ERROR_SYMBOL = Symbol.for('@aws-cdk/toolkit-lib.ContextProviderError');
|
|
8
|
+
/**
|
|
9
|
+
* Represents a general toolkit error in the AWS CDK Toolkit.
|
|
10
|
+
*/
|
|
11
|
+
class ToolkitError extends Error {
|
|
12
|
+
/**
|
|
13
|
+
* Determines if a given error is an instance of ToolkitError.
|
|
14
|
+
*/
|
|
15
|
+
static isToolkitError(x) {
|
|
16
|
+
return x !== null && typeof (x) === 'object' && TOOLKIT_ERROR_SYMBOL in x;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Determines if a given error is an instance of AuthenticationError.
|
|
20
|
+
*/
|
|
21
|
+
static isAuthenticationError(x) {
|
|
22
|
+
return this.isToolkitError(x) && AUTHENTICATION_ERROR_SYMBOL in x;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Determines if a given error is an instance of AssemblyError.
|
|
26
|
+
*/
|
|
27
|
+
static isAssemblyError(x) {
|
|
28
|
+
return this.isToolkitError(x) && ASSEMBLY_ERROR_SYMBOL in x;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Determines if a given error is an instance of AssemblyError.
|
|
32
|
+
*/
|
|
33
|
+
static isContextProviderError(x) {
|
|
34
|
+
return this.isToolkitError(x) && CONTEXT_PROVIDER_ERROR_SYMBOL in x;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* An AssemblyError with an original error as cause
|
|
38
|
+
*/
|
|
39
|
+
static withCause(message, error) {
|
|
40
|
+
return new ToolkitError(message, 'toolkit', error);
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The type of the error, defaults to "toolkit".
|
|
44
|
+
*/
|
|
45
|
+
type;
|
|
46
|
+
/**
|
|
47
|
+
* Denotes the source of the error as the toolkit.
|
|
48
|
+
*/
|
|
49
|
+
source;
|
|
50
|
+
/**
|
|
51
|
+
* The specific original cause of the error, if available
|
|
52
|
+
*/
|
|
53
|
+
cause;
|
|
54
|
+
constructor(message, type = 'toolkit', cause) {
|
|
55
|
+
super(message);
|
|
56
|
+
Object.setPrototypeOf(this, ToolkitError.prototype);
|
|
57
|
+
Object.defineProperty(this, TOOLKIT_ERROR_SYMBOL, { value: true });
|
|
58
|
+
this.name = new.target.name;
|
|
59
|
+
this.type = type;
|
|
60
|
+
this.source = 'toolkit';
|
|
61
|
+
this.cause = cause;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.ToolkitError = ToolkitError;
|
|
65
|
+
/**
|
|
66
|
+
* Represents an authentication-specific error in the AWS CDK Toolkit.
|
|
67
|
+
*/
|
|
68
|
+
class AuthenticationError extends ToolkitError {
|
|
69
|
+
/**
|
|
70
|
+
* Denotes the source of the error as user.
|
|
71
|
+
*/
|
|
72
|
+
source = 'user';
|
|
73
|
+
constructor(message) {
|
|
74
|
+
super(message, 'authentication');
|
|
75
|
+
Object.setPrototypeOf(this, AuthenticationError.prototype);
|
|
76
|
+
Object.defineProperty(this, AUTHENTICATION_ERROR_SYMBOL, { value: true });
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
exports.AuthenticationError = AuthenticationError;
|
|
80
|
+
/**
|
|
81
|
+
* Represents an error causes by cloud assembly synthesis
|
|
82
|
+
*
|
|
83
|
+
* This includes errors thrown during app execution, as well as failing annotations.
|
|
84
|
+
*/
|
|
85
|
+
class AssemblyError extends ToolkitError {
|
|
86
|
+
/**
|
|
87
|
+
* An AssemblyError with an original error as cause
|
|
88
|
+
*/
|
|
89
|
+
static withCause(message, error) {
|
|
90
|
+
return new AssemblyError(message, undefined, error);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* An AssemblyError with a list of stacks as cause
|
|
94
|
+
*/
|
|
95
|
+
static withStacks(message, stacks) {
|
|
96
|
+
return new AssemblyError(message, stacks);
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Denotes the source of the error as user.
|
|
100
|
+
*/
|
|
101
|
+
source = 'user';
|
|
102
|
+
/**
|
|
103
|
+
* The stacks that caused the error, if available
|
|
104
|
+
*
|
|
105
|
+
* The `messages` property of each `cxapi.CloudFormationStackArtifact` will contain the respective errors.
|
|
106
|
+
* Absence indicates synthesis didn't fully complete.
|
|
107
|
+
*/
|
|
108
|
+
stacks;
|
|
109
|
+
constructor(message, stacks, cause) {
|
|
110
|
+
super(message, 'assembly', cause);
|
|
111
|
+
Object.setPrototypeOf(this, AssemblyError.prototype);
|
|
112
|
+
Object.defineProperty(this, ASSEMBLY_ERROR_SYMBOL, { value: true });
|
|
113
|
+
this.stacks = stacks;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
exports.AssemblyError = AssemblyError;
|
|
117
|
+
/**
|
|
118
|
+
* Represents an error originating from a Context Provider
|
|
119
|
+
*/
|
|
120
|
+
class ContextProviderError extends ToolkitError {
|
|
121
|
+
/**
|
|
122
|
+
* Denotes the source of the error as user.
|
|
123
|
+
*/
|
|
124
|
+
source = 'user';
|
|
125
|
+
constructor(message) {
|
|
126
|
+
super(message, 'context-provider');
|
|
127
|
+
Object.setPrototypeOf(this, ContextProviderError.prototype);
|
|
128
|
+
Object.defineProperty(this, CONTEXT_PROVIDER_ERROR_SYMBOL, { value: true });
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
exports.ContextProviderError = ContextProviderError;
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC1lcnJvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInRvb2xraXQtZXJyb3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLG1DQUFtQyxDQUFDLENBQUM7QUFDN0UsTUFBTSwyQkFBMkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7QUFDM0YsTUFBTSxxQkFBcUIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLG9DQUFvQyxDQUFDLENBQUM7QUFDL0UsTUFBTSw2QkFBNkIsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLDJDQUEyQyxDQUFDLENBQUM7QUFFOUY7O0dBRUc7QUFDSCxNQUFhLFlBQWEsU0FBUSxLQUFLO0lBQ3JDOztPQUVHO0lBQ0ksTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFNO1FBQ2pDLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxPQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxJQUFJLG9CQUFvQixJQUFJLENBQUMsQ0FBQztJQUMzRSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBTTtRQUN4QyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUksMkJBQTJCLElBQUksQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBTTtRQUNsQyxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLElBQUkscUJBQXFCLElBQUksQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFNO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsSUFBSSw2QkFBNkIsSUFBSSxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFNBQVMsQ0FBQyxPQUFlLEVBQUUsS0FBYztRQUNyRCxPQUFPLElBQUksWUFBWSxDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOztPQUVHO0lBQ2EsSUFBSSxDQUFTO0lBRTdCOztPQUVHO0lBQ2EsTUFBTSxDQUFxQjtJQUUzQzs7T0FFRztJQUNhLEtBQUssQ0FBVztJQUVoQyxZQUFZLE9BQWUsRUFBRSxPQUFlLFNBQVMsRUFBRSxLQUFlO1FBQ3BFLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNmLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNwRCxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxvQkFBb0IsRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxJQUFJLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDNUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7UUFDeEIsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztDQUNGO0FBNURELG9DQTREQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxtQkFBb0IsU0FBUSxZQUFZO0lBQ25EOztPQUVHO0lBQ2EsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUVoQyxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzNELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLDJCQUEyQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztDQUNGO0FBWEQsa0RBV0M7QUFFRDs7OztHQUlHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsWUFBWTtJQUM3Qzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxTQUFTLENBQUMsT0FBZSxFQUFFLEtBQWM7UUFDckQsT0FBTyxJQUFJLGFBQWEsQ0FBQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxVQUFVLENBQUMsT0FBZSxFQUFFLE1BQTRDO1FBQ3BGLE9BQU8sSUFBSSxhQUFhLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7T0FFRztJQUNhLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFFaEM7Ozs7O09BS0c7SUFDYSxNQUFNLENBQXVDO0lBRTdELFlBQW9CLE9BQWUsRUFBRSxNQUE0QyxFQUFFLEtBQWU7UUFDaEcsS0FBSyxDQUFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDbEMsTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLHFCQUFxQixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDdkIsQ0FBQztDQUNGO0FBbENELHNDQWtDQztBQUVEOztHQUVHO0FBQ0gsTUFBYSxvQkFBcUIsU0FBUSxZQUFZO0lBQ3BEOztPQUVHO0lBQ2EsTUFBTSxHQUFHLE1BQU0sQ0FBQztJQUVoQyxZQUFZLE9BQWU7UUFDekIsS0FBSyxDQUFDLE9BQU8sRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVELE1BQU0sQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLDZCQUE2QixFQUFFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDOUUsQ0FBQztDQUNGO0FBWEQsb0RBV0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5cbmNvbnN0IFRPT0xLSVRfRVJST1JfU1lNQk9MID0gU3ltYm9sLmZvcignQGF3cy1jZGsvdG9vbGtpdC1saWIuVG9vbGtpdEVycm9yJyk7XG5jb25zdCBBVVRIRU5USUNBVElPTl9FUlJPUl9TWU1CT0wgPSBTeW1ib2wuZm9yKCdAYXdzLWNkay90b29sa2l0LWxpYi5BdXRoZW50aWNhdGlvbkVycm9yJyk7XG5jb25zdCBBU1NFTUJMWV9FUlJPUl9TWU1CT0wgPSBTeW1ib2wuZm9yKCdAYXdzLWNkay90b29sa2l0LWxpYi5Bc3NlbWJseUVycm9yJyk7XG5jb25zdCBDT05URVhUX1BST1ZJREVSX0VSUk9SX1NZTUJPTCA9IFN5bWJvbC5mb3IoJ0Bhd3MtY2RrL3Rvb2xraXQtbGliLkNvbnRleHRQcm92aWRlckVycm9yJyk7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGdlbmVyYWwgdG9vbGtpdCBlcnJvciBpbiB0aGUgQVdTIENESyBUb29sa2l0LlxuICovXG5leHBvcnQgY2xhc3MgVG9vbGtpdEVycm9yIGV4dGVuZHMgRXJyb3Ige1xuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhIGdpdmVuIGVycm9yIGlzIGFuIGluc3RhbmNlIG9mIFRvb2xraXRFcnJvci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNUb29sa2l0RXJyb3IoeDogYW55KTogeCBpcyBUb29sa2l0RXJyb3Ige1xuICAgIHJldHVybiB4ICE9PSBudWxsICYmIHR5cGVvZih4KSA9PT0gJ29iamVjdCcgJiYgVE9PTEtJVF9FUlJPUl9TWU1CT0wgaW4geDtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIGlmIGEgZ2l2ZW4gZXJyb3IgaXMgYW4gaW5zdGFuY2Ugb2YgQXV0aGVudGljYXRpb25FcnJvci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgaXNBdXRoZW50aWNhdGlvbkVycm9yKHg6IGFueSk6IHggaXMgQXV0aGVudGljYXRpb25FcnJvciB7XG4gICAgcmV0dXJuIHRoaXMuaXNUb29sa2l0RXJyb3IoeCkgJiYgQVVUSEVOVElDQVRJT05fRVJST1JfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhIGdpdmVuIGVycm9yIGlzIGFuIGluc3RhbmNlIG9mIEFzc2VtYmx5RXJyb3IuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGlzQXNzZW1ibHlFcnJvcih4OiBhbnkpOiB4IGlzIEFzc2VtYmx5RXJyb3Ige1xuICAgIHJldHVybiB0aGlzLmlzVG9vbGtpdEVycm9yKHgpICYmIEFTU0VNQkxZX0VSUk9SX1NZTUJPTCBpbiB4O1xuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSBnaXZlbiBlcnJvciBpcyBhbiBpbnN0YW5jZSBvZiBBc3NlbWJseUVycm9yLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBpc0NvbnRleHRQcm92aWRlckVycm9yKHg6IGFueSk6IHggaXMgQ29udGV4dFByb3ZpZGVyRXJyb3Ige1xuICAgIHJldHVybiB0aGlzLmlzVG9vbGtpdEVycm9yKHgpICYmIENPTlRFWFRfUFJPVklERVJfRVJST1JfU1lNQk9MIGluIHg7XG4gIH1cblxuICAvKipcbiAgICogQW4gQXNzZW1ibHlFcnJvciB3aXRoIGFuIG9yaWdpbmFsIGVycm9yIGFzIGNhdXNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGhDYXVzZShtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiB1bmtub3duKTogVG9vbGtpdEVycm9yIHtcbiAgICByZXR1cm4gbmV3IFRvb2xraXRFcnJvcihtZXNzYWdlLCAndG9vbGtpdCcsIGVycm9yKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiB0aGUgZXJyb3IsIGRlZmF1bHRzIHRvIFwidG9vbGtpdFwiLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHR5cGU6IHN0cmluZztcblxuICAvKipcbiAgICogRGVub3RlcyB0aGUgc291cmNlIG9mIHRoZSBlcnJvciBhcyB0aGUgdG9vbGtpdC5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2U6ICd0b29sa2l0JyB8ICd1c2VyJztcblxuICAvKipcbiAgICogVGhlIHNwZWNpZmljIG9yaWdpbmFsIGNhdXNlIG9mIHRoZSBlcnJvciwgaWYgYXZhaWxhYmxlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2F1c2U/OiB1bmtub3duO1xuXG4gIGNvbnN0cnVjdG9yKG1lc3NhZ2U6IHN0cmluZywgdHlwZTogc3RyaW5nID0gJ3Rvb2xraXQnLCBjYXVzZT86IHVua25vd24pIHtcbiAgICBzdXBlcihtZXNzYWdlKTtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgVG9vbGtpdEVycm9yLnByb3RvdHlwZSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIFRPT0xLSVRfRVJST1JfU1lNQk9MLCB7IHZhbHVlOiB0cnVlIH0pO1xuICAgIHRoaXMubmFtZSA9IG5ldy50YXJnZXQubmFtZTtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMuc291cmNlID0gJ3Rvb2xraXQnO1xuICAgIHRoaXMuY2F1c2UgPSBjYXVzZTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gYXV0aGVudGljYXRpb24tc3BlY2lmaWMgZXJyb3IgaW4gdGhlIEFXUyBDREsgVG9vbGtpdC5cbiAqL1xuZXhwb3J0IGNsYXNzIEF1dGhlbnRpY2F0aW9uRXJyb3IgZXh0ZW5kcyBUb29sa2l0RXJyb3Ige1xuICAvKipcbiAgICogRGVub3RlcyB0aGUgc291cmNlIG9mIHRoZSBlcnJvciBhcyB1c2VyLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHNvdXJjZSA9ICd1c2VyJztcblxuICBjb25zdHJ1Y3RvcihtZXNzYWdlOiBzdHJpbmcpIHtcbiAgICBzdXBlcihtZXNzYWdlLCAnYXV0aGVudGljYXRpb24nKTtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQXV0aGVudGljYXRpb25FcnJvci5wcm90b3R5cGUpO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0aGlzLCBBVVRIRU5USUNBVElPTl9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGVycm9yIGNhdXNlcyBieSBjbG91ZCBhc3NlbWJseSBzeW50aGVzaXNcbiAqXG4gKiBUaGlzIGluY2x1ZGVzIGVycm9ycyB0aHJvd24gZHVyaW5nIGFwcCBleGVjdXRpb24sIGFzIHdlbGwgYXMgZmFpbGluZyBhbm5vdGF0aW9ucy5cbiAqL1xuZXhwb3J0IGNsYXNzIEFzc2VtYmx5RXJyb3IgZXh0ZW5kcyBUb29sa2l0RXJyb3Ige1xuICAvKipcbiAgICogQW4gQXNzZW1ibHlFcnJvciB3aXRoIGFuIG9yaWdpbmFsIGVycm9yIGFzIGNhdXNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGhDYXVzZShtZXNzYWdlOiBzdHJpbmcsIGVycm9yOiB1bmtub3duKTogQXNzZW1ibHlFcnJvciB7XG4gICAgcmV0dXJuIG5ldyBBc3NlbWJseUVycm9yKG1lc3NhZ2UsIHVuZGVmaW5lZCwgZXJyb3IpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFuIEFzc2VtYmx5RXJyb3Igd2l0aCBhIGxpc3Qgb2Ygc3RhY2tzIGFzIGNhdXNlXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHdpdGhTdGFja3MobWVzc2FnZTogc3RyaW5nLCBzdGFja3M/OiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RbXSk6IEFzc2VtYmx5RXJyb3Ige1xuICAgIHJldHVybiBuZXcgQXNzZW1ibHlFcnJvcihtZXNzYWdlLCBzdGFja3MpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbm90ZXMgdGhlIHNvdXJjZSBvZiB0aGUgZXJyb3IgYXMgdXNlci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2UgPSAndXNlcic7XG5cbiAgLyoqXG4gICAqIFRoZSBzdGFja3MgdGhhdCBjYXVzZWQgdGhlIGVycm9yLCBpZiBhdmFpbGFibGVcbiAgICpcbiAgICogVGhlIGBtZXNzYWdlc2AgcHJvcGVydHkgb2YgZWFjaCBgY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0YCB3aWxsIGNvbnRhaW4gdGhlIHJlc3BlY3RpdmUgZXJyb3JzLlxuICAgKiBBYnNlbmNlIGluZGljYXRlcyBzeW50aGVzaXMgZGlkbid0IGZ1bGx5IGNvbXBsZXRlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YWNrcz86IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nLCBzdGFja3M/OiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3RbXSwgY2F1c2U/OiB1bmtub3duKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgJ2Fzc2VtYmx5JywgY2F1c2UpO1xuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLCBBc3NlbWJseUVycm9yLnByb3RvdHlwZSk7XG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHRoaXMsIEFTU0VNQkxZX0VSUk9SX1NZTUJPTCwgeyB2YWx1ZTogdHJ1ZSB9KTtcbiAgICB0aGlzLnN0YWNrcyA9IHN0YWNrcztcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYW4gZXJyb3Igb3JpZ2luYXRpbmcgZnJvbSBhIENvbnRleHQgUHJvdmlkZXJcbiAqL1xuZXhwb3J0IGNsYXNzIENvbnRleHRQcm92aWRlckVycm9yIGV4dGVuZHMgVG9vbGtpdEVycm9yIHtcbiAgLyoqXG4gICAqIERlbm90ZXMgdGhlIHNvdXJjZSBvZiB0aGUgZXJyb3IgYXMgdXNlci5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzb3VyY2UgPSAndXNlcic7XG5cbiAgY29uc3RydWN0b3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgc3VwZXIobWVzc2FnZSwgJ2NvbnRleHQtcHJvdmlkZXInKTtcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcywgQ29udGV4dFByb3ZpZGVyRXJyb3IucHJvdG90eXBlKTtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGhpcywgQ09OVEVYVF9QUk9WSURFUl9FUlJPUl9TWU1CT0wsIHsgdmFsdWU6IHRydWUgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type * as cxapi from '@aws-cdk/cx-api';
|
|
2
|
+
import type { SDK } from './aws-auth/private';
|
|
3
|
+
import type { CloudFormationStack } from './cloudformation';
|
|
4
|
+
import { type IoHelper } from './io/private';
|
|
5
|
+
export declare const DEFAULT_TOOLKIT_STACK_NAME = "CDKToolkit";
|
|
6
|
+
/**
|
|
7
|
+
* Information on the Bootstrap stack of the environment we're deploying to.
|
|
8
|
+
*
|
|
9
|
+
* This class serves to:
|
|
10
|
+
*
|
|
11
|
+
* - Inspect the bootstrap stack, and return various properties of it for successful
|
|
12
|
+
* asset deployment (in case of legacy-synthesized stacks).
|
|
13
|
+
* - Validate the version of the target environment, and nothing else (in case of
|
|
14
|
+
* default-synthesized stacks).
|
|
15
|
+
*
|
|
16
|
+
* An object of this type might represent a bootstrap stack that could not be found.
|
|
17
|
+
* This is not an issue unless any members are used that require the bootstrap stack
|
|
18
|
+
* to have been found, in which case an error is thrown (default-synthesized stacks
|
|
19
|
+
* should never run into this as they don't need information from the bootstrap
|
|
20
|
+
* stack, all information is already encoded into the Cloud Assembly Manifest).
|
|
21
|
+
*
|
|
22
|
+
* Nevertheless, an instance of this class exists to serve as a cache for SSM
|
|
23
|
+
* parameter lookups (otherwise, the "bootstrap stack version" parameter would
|
|
24
|
+
* need to be read repeatedly).
|
|
25
|
+
*
|
|
26
|
+
* Called "ToolkitInfo" for historical reasons.
|
|
27
|
+
*
|
|
28
|
+
*/
|
|
29
|
+
export declare abstract class ToolkitInfo {
|
|
30
|
+
static determineName(overrideName?: string): string;
|
|
31
|
+
static lookup(environment: cxapi.Environment, sdk: SDK, ioHelper: IoHelper, stackName: string | undefined): Promise<ToolkitInfo>;
|
|
32
|
+
static fromStack(stack: CloudFormationStack): ToolkitInfo;
|
|
33
|
+
static bootstrapStackNotFoundInfo(stackName: string): ToolkitInfo;
|
|
34
|
+
static bootstrapStackLookupError(stackName: string, e: Error): ToolkitInfo;
|
|
35
|
+
abstract readonly found: boolean;
|
|
36
|
+
abstract readonly bucketUrl: string;
|
|
37
|
+
abstract readonly bucketName: string;
|
|
38
|
+
abstract readonly repositoryName: string;
|
|
39
|
+
abstract readonly version: number;
|
|
40
|
+
abstract readonly variant: string;
|
|
41
|
+
abstract readonly bootstrapStack: CloudFormationStack;
|
|
42
|
+
abstract readonly stackName: string;
|
|
43
|
+
constructor();
|
|
44
|
+
}
|
|
45
|
+
export interface EcrRepositoryInfo {
|
|
46
|
+
repositoryUri: string;
|
|
47
|
+
}
|
|
48
|
+
export interface EcrCredentials {
|
|
49
|
+
username: string;
|
|
50
|
+
password: string;
|
|
51
|
+
endpoint: string;
|
|
52
|
+
}
|