@aws-cdk/toolkit-lib 0.3.2 → 0.3.4
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/api-extractor.json +3 -0
- 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/bootstrap/private/helpers.js +3 -3
- 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/index.d.ts +1 -1
- package/lib/actions/diff/index.js +1 -1
- package/lib/actions/diff/private/helpers.d.ts +5 -9
- package/lib/actions/diff/private/helpers.js +13 -30
- package/lib/actions/refactor/index.d.ts +12 -0
- package/lib/actions/refactor/index.js +1 -1
- 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/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 +5 -4
- package/lib/api/cloud-assembly/private/context-aware-source.d.ts +1 -1
- package/lib/api/cloud-assembly/private/context-aware-source.js +7 -7
- package/lib/api/cloud-assembly/private/exec.js +3 -3
- package/lib/api/cloud-assembly/private/prepare-source.d.ts +2 -1
- package/lib/api/cloud-assembly/private/prepare-source.js +17 -15
- 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.d.ts +10 -8
- package/lib/api/cloud-assembly/private/source-builder.js +43 -24
- package/lib/api/cloud-assembly/private/stack-assembly.d.ts +2 -1
- package/lib/api/cloud-assembly/private/stack-assembly.js +16 -15
- package/lib/api/cloud-assembly/source-builder.d.ts +19 -0
- package/lib/api/cloud-assembly/source-builder.js +1 -1
- 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 +108 -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 +24 -0
- package/lib/api/index.js +41 -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/sdk-logger.d.ts +1 -1
- package/lib/api/io/private/sdk-logger.js +6 -6
- 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/cached-data-source.d.ts +13 -0
- package/lib/api/notices/cached-data-source.js +77 -0
- package/lib/api/notices/filter.d.ts +59 -0
- package/lib/api/notices/filter.js +189 -0
- package/lib/api/notices/index.d.ts +1 -0
- package/lib/api/notices/index.js +18 -0
- package/lib/api/notices/notices.d.ts +111 -0
- package/lib/api/notices/notices.js +131 -0
- package/lib/api/notices/types.d.ts +37 -0
- package/lib/api/notices/types.js +3 -0
- package/lib/api/notices/web-data-source.d.ts +9 -0
- package/lib/api/notices/web-data-source.js +70 -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 +70 -0
- package/lib/api/plugin/plugin.js +127 -0
- package/lib/api/private.d.ts +1 -0
- package/lib/api/private.js +18 -0
- package/lib/api/refactoring/cloudformation.d.ts +38 -0
- package/lib/api/refactoring/cloudformation.js +56 -0
- package/lib/api/refactoring/digest.d.ts +26 -0
- package/lib/api/refactoring/digest.js +175 -0
- package/lib/api/refactoring/exclude.d.ts +29 -0
- package/lib/api/refactoring/exclude.js +94 -0
- package/lib/api/refactoring/index.d.ts +32 -0
- package/lib/api/refactoring/index.js +191 -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 -6
- package/lib/api/shared-private.js +31 -12561
- 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-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 +4 -1
- package/lib/index.js +5 -2
- 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 +50 -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 +212 -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/toolkit/non-interactive-io-host.js +5 -4
- package/lib/toolkit/private/index.d.ts +2 -1
- package/lib/toolkit/private/index.js +1 -1
- package/lib/toolkit/toolkit-error.d.ts +86 -0
- package/lib/toolkit/toolkit-error.js +132 -0
- package/lib/toolkit/toolkit.d.ts +2 -2
- package/lib/toolkit/toolkit.js +161 -130
- 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 +19 -0
- package/lib/util/index.js +36 -0
- package/lib/util/json.d.ts +48 -0
- package/lib/util/json.js +68 -0
- package/lib/util/net.d.ts +9 -0
- package/lib/util/net.js +60 -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 +26 -28
- package/tsdoc.json +15 -0
- package/lib/api/shared-private.js.map +0 -7
- package/lib/api/shared-public.d.ts +0 -2159
- package/lib/api/shared-public.js +0 -1110
- package/lib/api/shared-public.js.map +0 -7
- package/lib/private/util.d.ts +0 -1
- package/lib/private/util.js +0 -787
- package/lib/private/util.js.map +0 -7
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Context = exports.PROJECT_CONTEXT = exports.TRANSIENT_CONTEXT_KEY = void 0;
|
|
4
|
+
const settings_1 = require("./settings");
|
|
5
|
+
const toolkit_error_1 = require("../toolkit/toolkit-error");
|
|
6
|
+
var settings_2 = require("./settings");
|
|
7
|
+
Object.defineProperty(exports, "TRANSIENT_CONTEXT_KEY", { enumerable: true, get: function () { return settings_2.TRANSIENT_CONTEXT_KEY; } });
|
|
8
|
+
exports.PROJECT_CONTEXT = 'cdk.context.json';
|
|
9
|
+
/**
|
|
10
|
+
* Class that supports overlaying property bags
|
|
11
|
+
*
|
|
12
|
+
* Reads come from the first property bag that can has the given key,
|
|
13
|
+
* writes go to the first property bag that is not readonly. A write
|
|
14
|
+
* will remove the value from all property bags after the first
|
|
15
|
+
* writable one.
|
|
16
|
+
*/
|
|
17
|
+
class Context {
|
|
18
|
+
bags;
|
|
19
|
+
fileNames;
|
|
20
|
+
constructor(...bags) {
|
|
21
|
+
this.bags = bags.length > 0 ? bags.map((b) => b.bag) : [new settings_1.Settings()];
|
|
22
|
+
this.fileNames =
|
|
23
|
+
bags.length > 0 ? bags.map((b) => b.fileName) : ['default'];
|
|
24
|
+
}
|
|
25
|
+
get keys() {
|
|
26
|
+
return Object.keys(this.all);
|
|
27
|
+
}
|
|
28
|
+
has(key) {
|
|
29
|
+
return this.keys.indexOf(key) > -1;
|
|
30
|
+
}
|
|
31
|
+
get all() {
|
|
32
|
+
let ret = new settings_1.Settings();
|
|
33
|
+
// In reverse order so keys to the left overwrite keys to the right of them
|
|
34
|
+
for (const bag of [...this.bags].reverse()) {
|
|
35
|
+
ret = ret.merge(bag);
|
|
36
|
+
}
|
|
37
|
+
return ret.all;
|
|
38
|
+
}
|
|
39
|
+
get(key) {
|
|
40
|
+
for (const bag of this.bags) {
|
|
41
|
+
const v = bag.get([key]);
|
|
42
|
+
if (v !== undefined) {
|
|
43
|
+
return v;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return undefined;
|
|
47
|
+
}
|
|
48
|
+
set(key, value) {
|
|
49
|
+
for (const bag of this.bags) {
|
|
50
|
+
if (bag.readOnly) {
|
|
51
|
+
continue;
|
|
52
|
+
}
|
|
53
|
+
// All bags past the first one have the value erased
|
|
54
|
+
bag.set([key], value);
|
|
55
|
+
value = undefined;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
unset(key) {
|
|
59
|
+
this.set(key, undefined);
|
|
60
|
+
}
|
|
61
|
+
clear() {
|
|
62
|
+
for (const key of this.keys) {
|
|
63
|
+
this.unset(key);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Save a specific context file
|
|
68
|
+
*/
|
|
69
|
+
async save(fileName) {
|
|
70
|
+
const index = this.fileNames.indexOf(fileName);
|
|
71
|
+
// File not found, don't do anything in this scenario
|
|
72
|
+
if (index === -1) {
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
const bag = this.bags[index];
|
|
76
|
+
if (bag.readOnly) {
|
|
77
|
+
throw new toolkit_error_1.ToolkitError(`Context file ${fileName} is read only!`);
|
|
78
|
+
}
|
|
79
|
+
await bag.save(fileName);
|
|
80
|
+
return this;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
exports.Context = Context;
|
|
84
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXNDO0FBQ3RDLDREQUF3RDtBQUV4RCx1Q0FBbUQ7QUFBMUMsaUhBQUEscUJBQXFCLE9BQUE7QUFDakIsUUFBQSxlQUFlLEdBQUcsa0JBQWtCLENBQUM7QUFlbEQ7Ozs7Ozs7R0FPRztBQUNILE1BQWEsT0FBTztJQUNELElBQUksQ0FBYTtJQUNqQixTQUFTLENBQXlCO0lBRW5ELFlBQVksR0FBRyxJQUFrQjtRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxtQkFBUSxFQUFFLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsU0FBUztZQUNaLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELElBQVcsSUFBSTtRQUNiLE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVNLEdBQUcsQ0FBQyxHQUFXO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELElBQVcsR0FBRztRQUNaLElBQUksR0FBRyxHQUFHLElBQUksbUJBQVEsRUFBRSxDQUFDO1FBRXpCLDJFQUEyRTtRQUMzRSxLQUFLLE1BQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUMzQyxHQUFHLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUN2QixDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDO0lBQ2pCLENBQUM7SUFFTSxHQUFHLENBQUMsR0FBVztRQUNwQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QixNQUFNLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN6QixJQUFJLENBQUMsS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFDcEIsT0FBTyxDQUFDLENBQUM7WUFDWCxDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFTSxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQVU7UUFDaEMsS0FBSyxNQUFNLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDNUIsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7Z0JBQ2pCLFNBQVM7WUFDWCxDQUFDO1lBRUQsb0RBQW9EO1lBQ3BELEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN0QixLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLEdBQVc7UUFDdEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVNLEtBQUs7UUFDVixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQWdCO1FBQ2hDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRS9DLHFEQUFxRDtRQUNyRCxJQUFJLEtBQUssS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ2pCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUVELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDN0IsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDakIsTUFBTSxJQUFJLDRCQUFZLENBQUMsZ0JBQWdCLFFBQVEsZ0JBQWdCLENBQUMsQ0FBQztRQUNuRSxDQUFDO1FBRUQsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBaEZELDBCQWdGQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNldHRpbmdzIH0gZnJvbSAnLi9zZXR0aW5ncyc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuXG5leHBvcnQgeyBUUkFOU0lFTlRfQ09OVEVYVF9LRVkgfSBmcm9tICcuL3NldHRpbmdzJztcbmV4cG9ydCBjb25zdCBQUk9KRUNUX0NPTlRFWFQgPSAnY2RrLmNvbnRleHQuanNvbic7XG5cbmludGVyZmFjZSBDb250ZXh0QmFnIHtcbiAgLyoqXG4gICAqIFRoZSBmaWxlIG5hbWUgb2YgdGhlIGNvbnRleHQuIFdpbGwgYmUgdXNlZCB0byBwb3RlbnRpYWxseVxuICAgKiBzYXZlIG5ldyBjb250ZXh0IGJhY2sgdG8gdGhlIG9yaWdpbmFsIGZpbGUuXG4gICAqL1xuICBmaWxlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGNvbnRleHQgdmFsdWVzLlxuICAgKi9cbiAgYmFnOiBTZXR0aW5ncztcbn1cblxuLyoqXG4gKiBDbGFzcyB0aGF0IHN1cHBvcnRzIG92ZXJsYXlpbmcgcHJvcGVydHkgYmFnc1xuICpcbiAqIFJlYWRzIGNvbWUgZnJvbSB0aGUgZmlyc3QgcHJvcGVydHkgYmFnIHRoYXQgY2FuIGhhcyB0aGUgZ2l2ZW4ga2V5LFxuICogd3JpdGVzIGdvIHRvIHRoZSBmaXJzdCBwcm9wZXJ0eSBiYWcgdGhhdCBpcyBub3QgcmVhZG9ubHkuIEEgd3JpdGVcbiAqIHdpbGwgcmVtb3ZlIHRoZSB2YWx1ZSBmcm9tIGFsbCBwcm9wZXJ0eSBiYWdzIGFmdGVyIHRoZSBmaXJzdFxuICogd3JpdGFibGUgb25lLlxuICovXG5leHBvcnQgY2xhc3MgQ29udGV4dCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgYmFnczogU2V0dGluZ3NbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBmaWxlTmFtZXM6IChzdHJpbmcgfCB1bmRlZmluZWQpW107XG5cbiAgY29uc3RydWN0b3IoLi4uYmFnczogQ29udGV4dEJhZ1tdKSB7XG4gICAgdGhpcy5iYWdzID0gYmFncy5sZW5ndGggPiAwID8gYmFncy5tYXAoKGIpID0+IGIuYmFnKSA6IFtuZXcgU2V0dGluZ3MoKV07XG4gICAgdGhpcy5maWxlTmFtZXMgPVxuICAgICAgYmFncy5sZW5ndGggPiAwID8gYmFncy5tYXAoKGIpID0+IGIuZmlsZU5hbWUpIDogWydkZWZhdWx0J107XG4gIH1cblxuICBwdWJsaWMgZ2V0IGtleXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmFsbCk7XG4gIH1cblxuICBwdWJsaWMgaGFzKGtleTogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMua2V5cy5pbmRleE9mKGtleSkgPiAtMTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYWxsKCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIGxldCByZXQgPSBuZXcgU2V0dGluZ3MoKTtcblxuICAgIC8vIEluIHJldmVyc2Ugb3JkZXIgc28ga2V5cyB0byB0aGUgbGVmdCBvdmVyd3JpdGUga2V5cyB0byB0aGUgcmlnaHQgb2YgdGhlbVxuICAgIGZvciAoY29uc3QgYmFnIG9mIFsuLi50aGlzLmJhZ3NdLnJldmVyc2UoKSkge1xuICAgICAgcmV0ID0gcmV0Lm1lcmdlKGJhZyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHJldC5hbGw7XG4gIH1cblxuICBwdWJsaWMgZ2V0KGtleTogc3RyaW5nKTogYW55IHtcbiAgICBmb3IgKGNvbnN0IGJhZyBvZiB0aGlzLmJhZ3MpIHtcbiAgICAgIGNvbnN0IHYgPSBiYWcuZ2V0KFtrZXldKTtcbiAgICAgIGlmICh2ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmV0dXJuIHY7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0KGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgZm9yIChjb25zdCBiYWcgb2YgdGhpcy5iYWdzKSB7XG4gICAgICBpZiAoYmFnLnJlYWRPbmx5KSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICAvLyBBbGwgYmFncyBwYXN0IHRoZSBmaXJzdCBvbmUgaGF2ZSB0aGUgdmFsdWUgZXJhc2VkXG4gICAgICBiYWcuc2V0KFtrZXldLCB2YWx1ZSk7XG4gICAgICB2YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdW5zZXQoa2V5OiBzdHJpbmcpIHtcbiAgICB0aGlzLnNldChrZXksIHVuZGVmaW5lZCk7XG4gIH1cblxuICBwdWJsaWMgY2xlYXIoKSB7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgdGhpcy5rZXlzKSB7XG4gICAgICB0aGlzLnVuc2V0KGtleSk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNhdmUgYSBzcGVjaWZpYyBjb250ZXh0IGZpbGVcbiAgICovXG4gIHB1YmxpYyBhc3luYyBzYXZlKGZpbGVOYW1lOiBzdHJpbmcpOiBQcm9taXNlPHRoaXM+IHtcbiAgICBjb25zdCBpbmRleCA9IHRoaXMuZmlsZU5hbWVzLmluZGV4T2YoZmlsZU5hbWUpO1xuXG4gICAgLy8gRmlsZSBub3QgZm91bmQsIGRvbid0IGRvIGFueXRoaW5nIGluIHRoaXMgc2NlbmFyaW9cbiAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBjb25zdCBiYWcgPSB0aGlzLmJhZ3NbaW5kZXhdO1xuICAgIGlmIChiYWcucmVhZE9ubHkpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoYENvbnRleHQgZmlsZSAke2ZpbGVOYW1lfSBpcyByZWFkIG9ubHkhYCk7XG4gICAgfVxuXG4gICAgYXdhaXQgYmFnLnNhdmUoZmlsZU5hbWUpO1xuICAgIHJldHVybiB0aGlzO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as cxschema from '@aws-cdk/cloud-assembly-schema';
|
|
2
|
+
import { AssetManifest } from 'cdk-assets';
|
|
3
|
+
export declare class AssetManifestBuilder {
|
|
4
|
+
private readonly manifest;
|
|
5
|
+
addFileAsset(id: string, source: cxschema.FileSource, destination: cxschema.FileDestination): void;
|
|
6
|
+
addDockerImageAsset(id: string, source: cxschema.DockerImageSource, destination: cxschema.DockerImageDestination): void;
|
|
7
|
+
toManifest(directory: string): AssetManifest;
|
|
8
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AssetManifestBuilder = void 0;
|
|
4
|
+
const cxschema = require("@aws-cdk/cloud-assembly-schema");
|
|
5
|
+
const cdk_assets_1 = require("cdk-assets");
|
|
6
|
+
class AssetManifestBuilder {
|
|
7
|
+
manifest = {
|
|
8
|
+
version: cxschema.Manifest.version(),
|
|
9
|
+
files: {},
|
|
10
|
+
dockerImages: {},
|
|
11
|
+
};
|
|
12
|
+
addFileAsset(id, source, destination) {
|
|
13
|
+
this.manifest.files[id] = {
|
|
14
|
+
source,
|
|
15
|
+
destinations: {
|
|
16
|
+
current: destination,
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
addDockerImageAsset(id, source, destination) {
|
|
21
|
+
this.manifest.dockerImages[id] = {
|
|
22
|
+
source,
|
|
23
|
+
destinations: {
|
|
24
|
+
current: destination,
|
|
25
|
+
},
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
toManifest(directory) {
|
|
29
|
+
return new cdk_assets_1.AssetManifest(directory, this.manifest);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.AssetManifestBuilder = AssetManifestBuilder;
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtbWFuaWZlc3QtYnVpbGRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFzc2V0LW1hbmlmZXN0LWJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQTJEO0FBQzNELDJDQUEyQztBQUUzQyxNQUFhLG9CQUFvQjtJQUNkLFFBQVEsR0FBMkI7UUFDbEQsT0FBTyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFO1FBQ3BDLEtBQUssRUFBRSxFQUFFO1FBQ1QsWUFBWSxFQUFFLEVBQUU7S0FDakIsQ0FBQztJQUVLLFlBQVksQ0FBQyxFQUFVLEVBQUUsTUFBMkIsRUFBRSxXQUFxQztRQUNoRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQU0sQ0FBQyxFQUFFLENBQUMsR0FBRztZQUN6QixNQUFNO1lBQ04sWUFBWSxFQUFFO2dCQUNaLE9BQU8sRUFBRSxXQUFXO2FBQ3JCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxFQUFVLEVBQUUsTUFBa0MsRUFBRSxXQUE0QztRQUNySCxJQUFJLENBQUMsUUFBUSxDQUFDLFlBQWEsQ0FBQyxFQUFFLENBQUMsR0FBRztZQUNoQyxNQUFNO1lBQ04sWUFBWSxFQUFFO2dCQUNaLE9BQU8sRUFBRSxXQUFXO2FBQ3JCO1NBQ0YsQ0FBQztJQUNKLENBQUM7SUFFTSxVQUFVLENBQUMsU0FBaUI7UUFDakMsT0FBTyxJQUFJLDBCQUFhLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyRCxDQUFDO0NBQ0Y7QUE1QkQsb0RBNEJDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3hzY2hlbWEgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCB7IEFzc2V0TWFuaWZlc3QgfSBmcm9tICdjZGstYXNzZXRzJztcblxuZXhwb3J0IGNsYXNzIEFzc2V0TWFuaWZlc3RCdWlsZGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBtYW5pZmVzdDogY3hzY2hlbWEuQXNzZXRNYW5pZmVzdCA9IHtcbiAgICB2ZXJzaW9uOiBjeHNjaGVtYS5NYW5pZmVzdC52ZXJzaW9uKCksXG4gICAgZmlsZXM6IHt9LFxuICAgIGRvY2tlckltYWdlczoge30sXG4gIH07XG5cbiAgcHVibGljIGFkZEZpbGVBc3NldChpZDogc3RyaW5nLCBzb3VyY2U6IGN4c2NoZW1hLkZpbGVTb3VyY2UsIGRlc3RpbmF0aW9uOiBjeHNjaGVtYS5GaWxlRGVzdGluYXRpb24pIHtcbiAgICB0aGlzLm1hbmlmZXN0LmZpbGVzIVtpZF0gPSB7XG4gICAgICBzb3VyY2UsXG4gICAgICBkZXN0aW5hdGlvbnM6IHtcbiAgICAgICAgY3VycmVudDogZGVzdGluYXRpb24sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgYWRkRG9ja2VySW1hZ2VBc3NldChpZDogc3RyaW5nLCBzb3VyY2U6IGN4c2NoZW1hLkRvY2tlckltYWdlU291cmNlLCBkZXN0aW5hdGlvbjogY3hzY2hlbWEuRG9ja2VySW1hZ2VEZXN0aW5hdGlvbikge1xuICAgIHRoaXMubWFuaWZlc3QuZG9ja2VySW1hZ2VzIVtpZF0gPSB7XG4gICAgICBzb3VyY2UsXG4gICAgICBkZXN0aW5hdGlvbnM6IHtcbiAgICAgICAgY3VycmVudDogZGVzdGluYXRpb24sXG4gICAgICB9LFxuICAgIH07XG4gIH1cblxuICBwdWJsaWMgdG9NYW5pZmVzdChkaXJlY3Rvcnk6IHN0cmluZyk6IEFzc2V0TWFuaWZlc3Qge1xuICAgIHJldHVybiBuZXcgQXNzZXRNYW5pZmVzdChkaXJlY3RvcnksIHRoaXMubWFuaWZlc3QpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { type Environment } from '@aws-cdk/cx-api';
|
|
2
|
+
import type { ClientOptions, EventType, Account, AssetManifest, IAws, IECRClient, IPublishProgress, IPublishProgressListener, IS3Client, ISecretsManagerClient } from 'cdk-assets';
|
|
3
|
+
import type { SdkProvider } from '../aws-auth/private';
|
|
4
|
+
import type { IoHelper } from '../io/private';
|
|
5
|
+
interface PublishAssetsOptions {
|
|
6
|
+
/**
|
|
7
|
+
* Whether to build/publish assets in parallel
|
|
8
|
+
*
|
|
9
|
+
* @default true To remain backward compatible.
|
|
10
|
+
*/
|
|
11
|
+
readonly parallel?: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Whether cdk-assets is allowed to do cross account publishing.
|
|
14
|
+
*/
|
|
15
|
+
readonly allowCrossAccount: boolean;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Use cdk-assets to publish all assets in the given manifest.
|
|
19
|
+
*
|
|
20
|
+
* @deprecated used in legacy deployments only, should be migrated at some point
|
|
21
|
+
*/
|
|
22
|
+
export declare function publishAssets(manifest: AssetManifest, sdk: SdkProvider, targetEnv: Environment, options: PublishAssetsOptions, ioHelper: IoHelper): Promise<void>;
|
|
23
|
+
export declare class PublishingAws implements IAws {
|
|
24
|
+
/**
|
|
25
|
+
* The base SDK to work with
|
|
26
|
+
*/
|
|
27
|
+
private readonly aws;
|
|
28
|
+
/**
|
|
29
|
+
* Environment where the stack we're deploying is going
|
|
30
|
+
*/
|
|
31
|
+
private readonly targetEnv;
|
|
32
|
+
private sdkCache;
|
|
33
|
+
constructor(
|
|
34
|
+
/**
|
|
35
|
+
* The base SDK to work with
|
|
36
|
+
*/
|
|
37
|
+
aws: SdkProvider,
|
|
38
|
+
/**
|
|
39
|
+
* Environment where the stack we're deploying is going
|
|
40
|
+
*/
|
|
41
|
+
targetEnv: Environment);
|
|
42
|
+
discoverPartition(): Promise<string>;
|
|
43
|
+
discoverDefaultRegion(): Promise<string>;
|
|
44
|
+
discoverCurrentAccount(): Promise<Account>;
|
|
45
|
+
discoverTargetAccount(options: ClientOptions): Promise<Account>;
|
|
46
|
+
s3Client(options: ClientOptions): Promise<IS3Client>;
|
|
47
|
+
ecrClient(options: ClientOptions): Promise<IECRClient>;
|
|
48
|
+
secretsManagerClient(options: ClientOptions): Promise<ISecretsManagerClient>;
|
|
49
|
+
/**
|
|
50
|
+
* Get an SDK appropriate for the given client options
|
|
51
|
+
*/
|
|
52
|
+
private sdk;
|
|
53
|
+
}
|
|
54
|
+
export declare abstract class BasePublishProgressListener implements IPublishProgressListener {
|
|
55
|
+
protected readonly ioHelper: IoHelper;
|
|
56
|
+
constructor(ioHelper: IoHelper);
|
|
57
|
+
protected abstract getMessage(type: EventType, event: IPublishProgress): string;
|
|
58
|
+
onPublishEvent(type: EventType, event: IPublishProgress): void;
|
|
59
|
+
}
|
|
60
|
+
export {};
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BasePublishProgressListener = exports.PublishingAws = void 0;
|
|
4
|
+
exports.publishAssets = publishAssets;
|
|
5
|
+
const cx_api_1 = require("@aws-cdk/cx-api");
|
|
6
|
+
const cdk_assets_1 = require("cdk-assets");
|
|
7
|
+
const toolkit_error_1 = require("../../toolkit/toolkit-error");
|
|
8
|
+
const private_1 = require("../io/private");
|
|
9
|
+
const plugin_1 = require("../plugin");
|
|
10
|
+
/**
|
|
11
|
+
* Use cdk-assets to publish all assets in the given manifest.
|
|
12
|
+
*
|
|
13
|
+
* @deprecated used in legacy deployments only, should be migrated at some point
|
|
14
|
+
*/
|
|
15
|
+
async function publishAssets(manifest, sdk, targetEnv, options, ioHelper) {
|
|
16
|
+
// This shouldn't really happen (it's a programming error), but we don't have
|
|
17
|
+
// the types here to guide us. Do an runtime validation to be super super sure.
|
|
18
|
+
if (targetEnv.account === undefined ||
|
|
19
|
+
targetEnv.account === cx_api_1.UNKNOWN_ACCOUNT ||
|
|
20
|
+
targetEnv.region === undefined ||
|
|
21
|
+
targetEnv.account === cx_api_1.UNKNOWN_REGION) {
|
|
22
|
+
throw new toolkit_error_1.ToolkitError(`Asset publishing requires resolved account and region, got ${JSON.stringify(targetEnv)}`);
|
|
23
|
+
}
|
|
24
|
+
const publisher = new cdk_assets_1.AssetPublishing(manifest, {
|
|
25
|
+
aws: new PublishingAws(sdk, targetEnv),
|
|
26
|
+
progressListener: new PublishingProgressListener(ioHelper),
|
|
27
|
+
throwOnError: false,
|
|
28
|
+
publishInParallel: options.parallel ?? true,
|
|
29
|
+
buildAssets: true,
|
|
30
|
+
publishAssets: true,
|
|
31
|
+
quiet: false,
|
|
32
|
+
});
|
|
33
|
+
await publisher.publish({ allowCrossAccount: options.allowCrossAccount });
|
|
34
|
+
if (publisher.hasFailures) {
|
|
35
|
+
throw new toolkit_error_1.ToolkitError('Failed to publish one or more assets. See the error messages above for more information.');
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
class PublishingAws {
|
|
39
|
+
aws;
|
|
40
|
+
targetEnv;
|
|
41
|
+
sdkCache = new Map();
|
|
42
|
+
constructor(
|
|
43
|
+
/**
|
|
44
|
+
* The base SDK to work with
|
|
45
|
+
*/
|
|
46
|
+
aws,
|
|
47
|
+
/**
|
|
48
|
+
* Environment where the stack we're deploying is going
|
|
49
|
+
*/
|
|
50
|
+
targetEnv) {
|
|
51
|
+
this.aws = aws;
|
|
52
|
+
this.targetEnv = targetEnv;
|
|
53
|
+
}
|
|
54
|
+
async discoverPartition() {
|
|
55
|
+
return (await this.aws.baseCredentialsPartition(this.targetEnv, plugin_1.Mode.ForWriting)) ?? 'aws';
|
|
56
|
+
}
|
|
57
|
+
async discoverDefaultRegion() {
|
|
58
|
+
return this.targetEnv.region;
|
|
59
|
+
}
|
|
60
|
+
async discoverCurrentAccount() {
|
|
61
|
+
const account = await this.aws.defaultAccount();
|
|
62
|
+
return (account ?? {
|
|
63
|
+
accountId: '<unknown account>',
|
|
64
|
+
partition: 'aws',
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
async discoverTargetAccount(options) {
|
|
68
|
+
return (await this.sdk(options)).currentAccount();
|
|
69
|
+
}
|
|
70
|
+
async s3Client(options) {
|
|
71
|
+
return (await this.sdk(options)).s3();
|
|
72
|
+
}
|
|
73
|
+
async ecrClient(options) {
|
|
74
|
+
return (await this.sdk(options)).ecr();
|
|
75
|
+
}
|
|
76
|
+
async secretsManagerClient(options) {
|
|
77
|
+
return (await this.sdk(options)).secretsManager();
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Get an SDK appropriate for the given client options
|
|
81
|
+
*/
|
|
82
|
+
async sdk(options) {
|
|
83
|
+
const env = {
|
|
84
|
+
...this.targetEnv,
|
|
85
|
+
region: options.region ?? this.targetEnv.region, // Default: same region as the stack
|
|
86
|
+
};
|
|
87
|
+
const cacheKeyMap = {
|
|
88
|
+
env, // region, name, account
|
|
89
|
+
assumeRuleArn: options.assumeRoleArn,
|
|
90
|
+
assumeRoleExternalId: options.assumeRoleExternalId,
|
|
91
|
+
quiet: options.quiet,
|
|
92
|
+
};
|
|
93
|
+
if (options.assumeRoleAdditionalOptions) {
|
|
94
|
+
cacheKeyMap.assumeRoleAdditionalOptions = options.assumeRoleAdditionalOptions;
|
|
95
|
+
}
|
|
96
|
+
const cacheKey = JSON.stringify(cacheKeyMap);
|
|
97
|
+
const maybeSdk = this.sdkCache.get(cacheKey);
|
|
98
|
+
if (maybeSdk) {
|
|
99
|
+
return maybeSdk;
|
|
100
|
+
}
|
|
101
|
+
const sdk = (await this.aws.forEnvironment(env, plugin_1.Mode.ForWriting, {
|
|
102
|
+
assumeRoleArn: options.assumeRoleArn,
|
|
103
|
+
assumeRoleExternalId: options.assumeRoleExternalId,
|
|
104
|
+
assumeRoleAdditionalOptions: options.assumeRoleAdditionalOptions,
|
|
105
|
+
}, options.quiet)).sdk;
|
|
106
|
+
this.sdkCache.set(cacheKey, sdk);
|
|
107
|
+
return sdk;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
exports.PublishingAws = PublishingAws;
|
|
111
|
+
const EVENT_TO_MSG_MAKER = {
|
|
112
|
+
build: private_1.IO.DEFAULT_TOOLKIT_DEBUG,
|
|
113
|
+
cached: private_1.IO.DEFAULT_TOOLKIT_DEBUG,
|
|
114
|
+
check: private_1.IO.DEFAULT_TOOLKIT_DEBUG,
|
|
115
|
+
debug: private_1.IO.DEFAULT_TOOLKIT_DEBUG,
|
|
116
|
+
fail: private_1.IO.DEFAULT_TOOLKIT_ERROR,
|
|
117
|
+
found: private_1.IO.DEFAULT_TOOLKIT_DEBUG,
|
|
118
|
+
start: private_1.IO.DEFAULT_TOOLKIT_INFO,
|
|
119
|
+
success: private_1.IO.DEFAULT_TOOLKIT_INFO,
|
|
120
|
+
upload: private_1.IO.DEFAULT_TOOLKIT_DEBUG,
|
|
121
|
+
shell_open: private_1.IO.DEFAULT_TOOLKIT_DEBUG,
|
|
122
|
+
shell_stderr: false,
|
|
123
|
+
shell_stdout: false,
|
|
124
|
+
shell_close: false,
|
|
125
|
+
};
|
|
126
|
+
class BasePublishProgressListener {
|
|
127
|
+
ioHelper;
|
|
128
|
+
constructor(ioHelper) {
|
|
129
|
+
this.ioHelper = ioHelper;
|
|
130
|
+
}
|
|
131
|
+
onPublishEvent(type, event) {
|
|
132
|
+
const maker = EVENT_TO_MSG_MAKER[type];
|
|
133
|
+
if (maker) {
|
|
134
|
+
void this.ioHelper.notify(maker.msg(this.getMessage(type, event)));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
exports.BasePublishProgressListener = BasePublishProgressListener;
|
|
139
|
+
class PublishingProgressListener extends BasePublishProgressListener {
|
|
140
|
+
getMessage(type, event) {
|
|
141
|
+
return `[${event.percentComplete}%] ${type}: ${event.message}`;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXQtcHVibGlzaGluZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImFzc2V0LXB1Ymxpc2hpbmcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBeUNBLHNDQStCQztBQXhFRCw0Q0FBb0Y7QUFhcEYsMkNBRW9CO0FBQ3BCLCtEQUEyRDtBQUczRCwyQ0FBbUM7QUFDbkMsc0NBQWlDO0FBZ0JqQzs7OztHQUlHO0FBQ0ksS0FBSyxVQUFVLGFBQWEsQ0FDakMsUUFBdUIsRUFDdkIsR0FBZ0IsRUFDaEIsU0FBc0IsRUFDdEIsT0FBNkIsRUFDN0IsUUFBa0I7SUFFbEIsNkVBQTZFO0lBQzdFLCtFQUErRTtJQUMvRSxJQUNFLFNBQVMsQ0FBQyxPQUFPLEtBQUssU0FBUztRQUMvQixTQUFTLENBQUMsT0FBTyxLQUFLLHdCQUFlO1FBQ3JDLFNBQVMsQ0FBQyxNQUFNLEtBQUssU0FBUztRQUM5QixTQUFTLENBQUMsT0FBTyxLQUFLLHVCQUFjLEVBQ3BDLENBQUM7UUFDRCxNQUFNLElBQUksNEJBQVksQ0FBQyw4REFBOEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDcEgsQ0FBQztJQUVELE1BQU0sU0FBUyxHQUFHLElBQUksNEJBQWUsQ0FBQyxRQUFRLEVBQUU7UUFDOUMsR0FBRyxFQUFFLElBQUksYUFBYSxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUM7UUFDdEMsZ0JBQWdCLEVBQUUsSUFBSSwwQkFBMEIsQ0FBQyxRQUFRLENBQUM7UUFDMUQsWUFBWSxFQUFFLEtBQUs7UUFDbkIsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLFFBQVEsSUFBSSxJQUFJO1FBQzNDLFdBQVcsRUFBRSxJQUFJO1FBQ2pCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLEtBQUssRUFBRSxLQUFLO0tBQ2IsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixFQUFF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SUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLEtBQUssSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQWZELGtFQWVDO0FBRUQsTUFBTSwwQkFBMkIsU0FBUSwyQkFBMkI7SUFDeEQsVUFBVSxDQUFDLElBQWUsRUFBRSxLQUF1QjtRQUMzRCxPQUFPLElBQUksS0FBSyxDQUFDLGVBQWUsTUFBTSxJQUFJLEtBQUssS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2pFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHR5cGUgRW52aXJvbm1lbnQsIFVOS05PV05fQUNDT1VOVCwgVU5LTk9XTl9SRUdJT04gfSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0IHR5cGUge1xuICBDbGllbnRPcHRpb25zLFxuICBFdmVudFR5cGUsXG4gIEFjY291bnQsXG4gIEFzc2V0TWFuaWZlc3QsXG4gIElBd3MsXG4gIElFQ1JDbGllbnQsXG4gIElQdWJsaXNoUHJvZ3Jlc3MsXG4gIElQdWJsaXNoUHJvZ3Jlc3NMaXN0ZW5lcixcbiAgSVMzQ2xpZW50LFxuICBJU2VjcmV0c01hbmFnZXJDbGllbnQsXG59IGZyb20gJ2Nkay1hc3NldHMnO1xuaW1wb3J0IHtcbiAgQXNzZXRQdWJsaXNoaW5nLFxufSBmcm9tICdjZGstYXNzZXRzJztcbmltcG9ydCB7IFRvb2xraXRFcnJvciB9IGZyb20gJy4uLy4uL3Rvb2xraXQvdG9vbGtpdC1lcnJvcic7XG5pbXBvcnQgdHlwZSB7IFNESywgU2RrUHJvdmlkZXIgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgSW9NZXNzYWdlTWFrZXIsIElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgeyBJTyB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHsgTW9kZSB9IGZyb20gJy4uL3BsdWdpbic7XG5cbmludGVyZmFjZSBQdWJsaXNoQXNzZXRzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIGJ1aWxkL3B1Ymxpc2ggYXNzZXRzIGluIHBhcmFsbGVsXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWUgVG8gcmVtYWluIGJhY2t3YXJkIGNvbXBhdGlibGUuXG4gICAqL1xuICByZWFkb25seSBwYXJhbGxlbD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgY2RrLWFzc2V0cyBpcyBhbGxvd2VkIHRvIGRvIGNyb3NzIGFjY291bnQgcHVibGlzaGluZy5cbiAgICovXG4gIHJlYWRvbmx5IGFsbG93Q3Jvc3NBY2NvdW50OiBib29sZWFuO1xufVxuXG4vKipcbiAqIFVzZSBjZGstYXNzZXRzIHRvIHB1Ymxpc2ggYWxsIGFzc2V0cyBpbiB0aGUgZ2l2ZW4gbWFuaWZlc3QuXG4gKlxuICogQGRlcHJlY2F0ZWQgdXNlZCBpbiBsZWdhY3kgZGVwbG95bWVudHMgb25seSwgc2hvdWxkIGJlIG1pZ3JhdGVkIGF0IHNvbWUgcG9pbnRcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHB1Ymxpc2hBc3NldHMoXG4gIG1hbmlmZXN0OiBBc3NldE1hbmlmZXN0LFxuICBzZGs6IFNka1Byb3ZpZGVyLFxuICB0YXJnZXRFbnY6IEVudmlyb25tZW50LFxuICBvcHRpb25zOiBQdWJsaXNoQXNzZXRzT3B0aW9ucyxcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuKSB7XG4gIC8vIFRoaXMgc2hvdWxkbid0IHJlYWxseSBoYXBwZW4gKGl0J3MgYSBwcm9ncmFtbWluZyBlcnJvciksIGJ1dCB3ZSBkb24ndCBoYXZlXG4gIC8vIHRoZSB0eXBlcyBoZXJlIHRvIGd1aWRlIHVzLiBEbyBhbiBydW50aW1lIHZhbGlkYXRpb24gdG8gYmUgc3VwZXIgc3VwZXIgc3VyZS5cbiAgaWYgKFxuICAgIHRhcmdldEVudi5hY2NvdW50ID09PSB1bmRlZmluZWQgfHxcbiAgICB0YXJnZXRFbnYuYWNjb3VudCA9PT0gVU5LTk9XTl9BQ0NPVU5UIHx8XG4gICAgdGFyZ2V0RW52LnJlZ2lvbiA9PT0gdW5kZWZpbmVkIHx8XG4gICAgdGFyZ2V0RW52LmFjY291bnQgPT09IFVOS05PV05fUkVHSU9OXG4gICkge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoYEFzc2V0IHB1Ymxpc2hpbmcgcmVxdWlyZXMgcmVzb2x2ZWQgYWNjb3VudCBhbmQgcmVnaW9uLCBnb3QgJHtKU09OLnN0cmluZ2lmeSh0YXJnZXRFbnYpfWApO1xuICB9XG5cbiAgY29uc3QgcHVibGlzaGVyID0gbmV3IEFzc2V0UHVibGlzaGluZyhtYW5pZmVzdCwge1xuICAgIGF3czogbmV3IFB1Ymxpc2hpbmdBd3Moc2RrLCB0YXJnZXRFbnYpLFxuICAgIHByb2dyZXNzTGlzdGVuZXI6IG5ldyBQdWJsaXNoaW5nUHJvZ3Jlc3NMaXN0ZW5lcihpb0hlbHBlciksXG4gICAgdGhyb3dPbkVycm9yOiBmYWxzZSxcbiAgICBwdWJsaXNoSW5QYXJhbGxlbDogb3B0aW9ucy5wYXJhbGxlbCA/PyB0cnVlLFxuICAgIGJ1aWxkQXNzZXRzOiB0cnVlLFxuICAgIHB1Ymxpc2hBc3NldHM6IHRydWUsXG4gICAgcXVpZXQ6IGZhbHNlLFxuICB9KTtcbiAgYXdhaXQgcHVibGlzaGVyLnB1Ymxpc2goeyBhbGxvd0Nyb3NzQWNjb3VudDogb3B0aW9ucy5hbGxvd0Nyb3NzQWNjb3VudCB9KTtcbiAgaWYgKHB1Ymxpc2hlci5oYXNGYWlsdXJlcykge1xuICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ0ZhaWxlZCB0byBwdWJsaXNoIG9uZSBvciBtb3JlIGFzc2V0cy4gU2VlIHRoZSBlcnJvciBtZXNzYWdlcyBhYm92ZSBmb3IgbW9yZSBpbmZvcm1hdGlvbi4nKTtcbiAgfVxufVxuXG5leHBvcnQgY2xhc3MgUHVibGlzaGluZ0F3cyBpbXBsZW1lbnRzIElBd3Mge1xuICBwcml2YXRlIHNka0NhY2hlOiBNYXA8U3RyaW5nLCBTREs+ID0gbmV3IE1hcCgpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIFNESyB0byB3b3JrIHdpdGhcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGF3czogU2RrUHJvdmlkZXIsXG5cbiAgICAvKipcbiAgICAgKiBFbnZpcm9ubWVudCB3aGVyZSB0aGUgc3RhY2sgd2UncmUgZGVwbG95aW5nIGlzIGdvaW5nXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB0YXJnZXRFbnY6IEVudmlyb25tZW50LFxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkaXNjb3ZlclBhcnRpdGlvbigpOiBQcm9taXNlPHN0cmluZz4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5hd3MuYmFzZUNyZWRlbnRpYWxzUGFydGl0aW9uKHRoaXMudGFyZ2V0RW52LCBNb2RlLkZvcldyaXRpbmcpKSA/PyAnYXdzJztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkaXNjb3ZlckRlZmF1bHRSZWdpb24oKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy50YXJnZXRFbnYucmVnaW9uO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRpc2NvdmVyQ3VycmVudEFjY291bnQoKTogUHJvbWlzZTxBY2NvdW50PiB7XG4gICAgY29uc3QgYWNjb3VudCA9IGF3YWl0IHRoaXMuYXdzLmRlZmF1bHRBY2NvdW50KCk7XG4gICAgcmV0dXJuIChcbiAgICAgIGFjY291bnQgPz8ge1xuICAgICAgICBhY2NvdW50SWQ6ICc8dW5rbm93biBhY2NvdW50PicsXG4gICAgICAgIHBhcnRpdGlvbjogJ2F3cycsXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkaXNjb3ZlclRhcmdldEFjY291bnQob3B0aW9uczogQ2xpZW50T3B0aW9ucyk6IFByb21pc2U8QWNjb3VudD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5zZGsob3B0aW9ucykpLmN1cnJlbnRBY2NvdW50KCk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgczNDbGllbnQob3B0aW9uczogQ2xpZW50T3B0aW9ucyk6IFByb21pc2U8SVMzQ2xpZW50PiB7XG4gICAgcmV0dXJuIChhd2FpdCB0aGlzLnNkayhvcHRpb25zKSkuczMoKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBlY3JDbGllbnQob3B0aW9uczogQ2xpZW50T3B0aW9ucyk6IFByb21pc2U8SUVDUkNsaWVudD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5zZGsob3B0aW9ucykpLmVjcigpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHNlY3JldHNNYW5hZ2VyQ2xpZW50KG9wdGlvbnM6IENsaWVudE9wdGlvbnMpOiBQcm9taXNlPElTZWNyZXRzTWFuYWdlckNsaWVudD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5zZGsob3B0aW9ucykpLnNlY3JldHNNYW5hZ2VyKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IGFuIFNESyBhcHByb3ByaWF0ZSBmb3IgdGhlIGdpdmVuIGNsaWVudCBvcHRpb25zXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHNkayhvcHRpb25zOiBDbGllbnRPcHRpb25zKTogUHJvbWlzZTxTREs+IHtcbiAgICBjb25zdCBlbnYgPSB7XG4gICAgICAuLi50aGlzLnRhcmdldEVudixcbiAgICAgIHJlZ2lvbjogb3B0aW9ucy5yZWdpb24gPz8gdGhpcy50YXJnZXRFbnYucmVnaW9uLCAvLyBEZWZhdWx0OiBzYW1lIHJlZ2lvbiBhcyB0aGUgc3RhY2tcbiAgICB9O1xuXG4gICAgY29uc3QgY2FjaGVLZXlNYXA6IGFueSA9IHtcbiAgICAgIGVudiwgLy8gcmVnaW9uLCBuYW1lLCBhY2NvdW50XG4gICAgICBhc3N1bWVSdWxlQXJuOiBvcHRpb25zLmFzc3VtZVJvbGVBcm4sXG4gICAgICBhc3N1bWVSb2xlRXh0ZXJuYWxJZDogb3B0aW9ucy5hc3N1bWVSb2xlRXh0ZXJuYWxJZCxcbiAgICAgIHF1aWV0OiBvcHRpb25zLnF1aWV0LFxuICAgIH07XG5cbiAgICBpZiAob3B0aW9ucy5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnMpIHtcbiAgICAgIGNhY2hlS2V5TWFwLmFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9ucyA9IG9wdGlvbnMuYXNzdW1lUm9sZUFkZGl0aW9uYWxPcHRpb25zO1xuICAgIH1cblxuICAgIGNvbnN0IGNhY2hlS2V5ID0gSlNPTi5zdHJpbmdpZnkoY2FjaGVLZXlNYXApO1xuXG4gICAgY29uc3QgbWF5YmVTZGsgPSB0aGlzLnNka0NhY2hlLmdldChjYWNoZUtleSk7XG4gICAgaWYgKG1heWJlU2RrKSB7XG4gICAgICByZXR1cm4gbWF5YmVTZGs7XG4gICAgfVxuXG4gICAgY29uc3Qgc2RrID0gKFxuICAgICAgYXdhaXQgdGhpcy5hd3MuZm9yRW52aXJvbm1lbnQoXG4gICAgICAgIGVudixcbiAgICAgICAgTW9kZS5Gb3JXcml0aW5nLFxuICAgICAgICB7XG4gICAgICAgICAgYXNzdW1lUm9sZUFybjogb3B0aW9ucy5hc3N1bWVSb2xlQXJuLFxuICAgICAgICAgIGFzc3VtZVJvbGVFeHRlcm5hbElkOiBvcHRpb25zLmFzc3VtZVJvbGVFeHRlcm5hbElkLFxuICAgICAgICAgIGFzc3VtZVJvbGVBZGRpdGlvbmFsT3B0aW9uczogb3B0aW9ucy5hc3N1bWVSb2xlQWRkaXRpb25hbE9wdGlvbnMsXG4gICAgICAgIH0sXG4gICAgICAgIG9wdGlvbnMucXVpZXQsXG4gICAgICApXG4gICAgKS5zZGs7XG4gICAgdGhpcy5zZGtDYWNoZS5zZXQoY2FjaGVLZXksIHNkayk7XG5cbiAgICByZXR1cm4gc2RrO1xuICB9XG59XG5cbmNvbnN0IEVWRU5UX1RPX01TR19NQUtFUjogUmVjb3JkPEV2ZW50VHlwZSwgSW9NZXNzYWdlTWFrZXI8YW55PiB8IGZhbHNlPiA9IHtcbiAgYnVpbGQ6IElPLkRFRkFVTFRfVE9PTEtJVF9ERUJVRyxcbiAgY2FjaGVkOiBJTy5ERUZBVUxUX1RPT0xLSVRfREVCVUcsXG4gIGNoZWNrOiBJTy5ERUZBVUxUX1RPT0xLSVRfREVCVUcsXG4gIGRlYnVnOiBJTy5ERUZBVUxUX1RPT0xLSVRfREVCVUcsXG4gIGZhaWw6IElPLkRFRkFVTFRfVE9PTEtJVF9FUlJPUixcbiAgZm91bmQ6IElPLkRFRkFVTFRfVE9PTEtJVF9ERUJVRyxcbiAgc3RhcnQ6IElPLkRFRkFVTFRfVE9PTEtJVF9JTkZPLFxuICBzdWNjZXNzOiBJTy5ERUZBVUxUX1RPT0xLSVRfSU5GTyxcbiAgdXBsb2FkOiBJTy5ERUZBVUxUX1RPT0xLSVRfREVCVUcsXG4gIHNoZWxsX29wZW46IElPLkRFRkFVTFRfVE9PTEtJVF9ERUJVRyxcbiAgc2hlbGxfc3RkZXJyOiBmYWxzZSxcbiAgc2hlbGxfc3Rkb3V0OiBmYWxzZSxcbiAgc2hlbGxfY2xvc2U6IGZhbHNlLFxufTtcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VQdWJsaXNoUHJvZ3Jlc3NMaXN0ZW5lciBpbXBsZW1lbnRzIElQdWJsaXNoUHJvZ3Jlc3NMaXN0ZW5lciB7XG4gIHByb3RlY3RlZCByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG5cbiAgY29uc3RydWN0b3IoaW9IZWxwZXI6IElvSGVscGVyKSB7XG4gICAgdGhpcy5pb0hlbHBlciA9IGlvSGVscGVyO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGdldE1lc3NhZ2UodHlwZTogRXZlbnRUeXBlLCBldmVudDogSVB1Ymxpc2hQcm9ncmVzcyk6IHN0cmluZztcblxuICBwdWJsaWMgb25QdWJsaXNoRXZlbnQodHlwZTogRXZlbnRUeXBlLCBldmVudDogSVB1Ymxpc2hQcm9ncmVzcyk6IHZvaWQge1xuICAgIGNvbnN0IG1ha2VyID0gRVZFTlRfVE9fTVNHX01BS0VSW3R5cGVdO1xuICAgIGlmIChtYWtlcikge1xuICAgICAgdm9pZCB0aGlzLmlvSGVscGVyLm5vdGlmeShtYWtlci5tc2codGhpcy5nZXRNZXNzYWdlKHR5cGUsIGV2ZW50KSkpO1xuICAgIH1cbiAgfVxufVxuXG5jbGFzcyBQdWJsaXNoaW5nUHJvZ3Jlc3NMaXN0ZW5lciBleHRlbmRzIEJhc2VQdWJsaXNoUHJvZ3Jlc3NMaXN0ZW5lciB7XG4gIHByb3RlY3RlZCBnZXRNZXNzYWdlKHR5cGU6IEV2ZW50VHlwZSwgZXZlbnQ6IElQdWJsaXNoUHJvZ3Jlc3MpOiBzdHJpbmcge1xuICAgIHJldHVybiBgWyR7ZXZlbnQucGVyY2VudENvbXBsZXRlfSVdICR7dHlwZX06ICR7ZXZlbnQubWVzc2FnZX1gO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as cxapi from '@aws-cdk/cx-api';
|
|
2
|
+
import type { AssetManifestBuilder } from './asset-manifest-builder';
|
|
3
|
+
import type { EnvironmentResources } from '../environment';
|
|
4
|
+
import { type IoHelper } from '../io/private';
|
|
5
|
+
/**
|
|
6
|
+
* Take the metadata assets from the given stack and add them to the given asset manifest
|
|
7
|
+
*
|
|
8
|
+
* Returns the CloudFormation parameters that need to be sent to the template to
|
|
9
|
+
* pass Asset coordinates.
|
|
10
|
+
*/
|
|
11
|
+
export declare function addMetadataAssetsToManifest(ioHelper: IoHelper, stack: cxapi.CloudFormationStackArtifact, assetManifest: AssetManifestBuilder, envResources: EnvironmentResources, reuse?: string[]): Promise<Record<string, string>>;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.addMetadataAssetsToManifest = addMetadataAssetsToManifest;
|
|
4
|
+
const path = require("path");
|
|
5
|
+
const cxschema = require("@aws-cdk/cloud-assembly-schema");
|
|
6
|
+
const cxapi = require("@aws-cdk/cx-api");
|
|
7
|
+
const chalk = require("chalk");
|
|
8
|
+
const toolkit_error_1 = require("../../toolkit/toolkit-error");
|
|
9
|
+
const private_1 = require("../io/private");
|
|
10
|
+
/**
|
|
11
|
+
* Take the metadata assets from the given stack and add them to the given asset manifest
|
|
12
|
+
*
|
|
13
|
+
* Returns the CloudFormation parameters that need to be sent to the template to
|
|
14
|
+
* pass Asset coordinates.
|
|
15
|
+
*/
|
|
16
|
+
async function addMetadataAssetsToManifest(ioHelper, stack, assetManifest, envResources, reuse) {
|
|
17
|
+
reuse = reuse || [];
|
|
18
|
+
const assets = stack.assets;
|
|
19
|
+
if (assets.length === 0) {
|
|
20
|
+
return {};
|
|
21
|
+
}
|
|
22
|
+
const toolkitInfo = await envResources.lookupToolkit();
|
|
23
|
+
if (!toolkitInfo.found) {
|
|
24
|
+
// eslint-disable-next-line @stylistic/max-len
|
|
25
|
+
throw new toolkit_error_1.ToolkitError(`This stack uses assets, so the toolkit stack must be deployed to the environment (Run "${chalk.blue('cdk bootstrap ' + stack.environment.name)}")`);
|
|
26
|
+
}
|
|
27
|
+
const params = {};
|
|
28
|
+
for (const asset of assets) {
|
|
29
|
+
// FIXME: Should have excluded by construct path here instead of by unique ID, preferably using
|
|
30
|
+
// minimatch so we can support globs. Maybe take up during artifact refactoring.
|
|
31
|
+
const reuseAsset = reuse.indexOf(asset.id) > -1;
|
|
32
|
+
if (reuseAsset) {
|
|
33
|
+
await ioHelper.notify(private_1.IO.DEFAULT_TOOLKIT_DEBUG.msg(`Reusing asset ${asset.id}: ${JSON.stringify(asset)}`));
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
await ioHelper.notify(private_1.IO.DEFAULT_TOOLKIT_DEBUG.msg(`Preparing asset ${asset.id}: ${JSON.stringify(asset)}`));
|
|
37
|
+
if (!stack.assembly) {
|
|
38
|
+
throw new toolkit_error_1.ToolkitError('Unexpected: stack assembly is required in order to find assets in assembly directory');
|
|
39
|
+
}
|
|
40
|
+
Object.assign(params, await prepareAsset(ioHelper, asset, assetManifest, envResources, toolkitInfo));
|
|
41
|
+
}
|
|
42
|
+
return params;
|
|
43
|
+
}
|
|
44
|
+
// eslint-disable-next-line @stylistic/max-len
|
|
45
|
+
async function prepareAsset(ioHelper, asset, assetManifest, envResources, toolkitInfo) {
|
|
46
|
+
switch (asset.packaging) {
|
|
47
|
+
case 'zip':
|
|
48
|
+
case 'file':
|
|
49
|
+
return prepareFileAsset(ioHelper, asset, assetManifest, toolkitInfo, asset.packaging === 'zip' ? cxschema.FileAssetPackaging.ZIP_DIRECTORY : cxschema.FileAssetPackaging.FILE);
|
|
50
|
+
case 'container-image':
|
|
51
|
+
return prepareDockerImageAsset(asset, assetManifest, envResources);
|
|
52
|
+
default:
|
|
53
|
+
// eslint-disable-next-line @stylistic/max-len
|
|
54
|
+
throw new toolkit_error_1.ToolkitError(`Unsupported packaging type: ${asset.packaging}. You might need to upgrade your aws-cdk toolkit to support this asset type.`);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
async function prepareFileAsset(ioHelper, asset, assetManifest, toolkitInfo, packaging) {
|
|
58
|
+
const extension = packaging === cxschema.FileAssetPackaging.ZIP_DIRECTORY ? '.zip' : path.extname(asset.path);
|
|
59
|
+
const baseName = `${asset.sourceHash}${extension}`;
|
|
60
|
+
// Simplify key: assets/abcdef/abcdef.zip is kinda silly and unnecessary, so if they're the same just pick one component.
|
|
61
|
+
const s3Prefix = asset.id === asset.sourceHash ? 'assets/' : `assets/${asset.id}/`;
|
|
62
|
+
const key = `${s3Prefix}${baseName}`;
|
|
63
|
+
const s3url = `s3://${toolkitInfo.bucketName}/${key}`;
|
|
64
|
+
await ioHelper.notify(private_1.IO.DEFAULT_TOOLKIT_DEBUG.msg(`Storing asset ${asset.path} at ${s3url}`));
|
|
65
|
+
assetManifest.addFileAsset(asset.sourceHash, {
|
|
66
|
+
path: asset.path,
|
|
67
|
+
packaging,
|
|
68
|
+
}, {
|
|
69
|
+
bucketName: toolkitInfo.bucketName,
|
|
70
|
+
objectKey: key,
|
|
71
|
+
});
|
|
72
|
+
return {
|
|
73
|
+
[asset.s3BucketParameter]: toolkitInfo.bucketName,
|
|
74
|
+
[asset.s3KeyParameter]: `${s3Prefix}${cxapi.ASSET_PREFIX_SEPARATOR}${baseName}`,
|
|
75
|
+
[asset.artifactHashParameter]: asset.sourceHash,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
async function prepareDockerImageAsset(asset, assetManifest, envResources) {
|
|
79
|
+
// Pre-1.21.0, repositoryName can be specified by the user or can be left out, in which case we make
|
|
80
|
+
// a per-asset repository which will get adopted and cleaned up along with the stack.
|
|
81
|
+
// Post-1.21.0, repositoryName will always be specified and it will be a shared repository between
|
|
82
|
+
// all assets, and asset will have imageTag specified as well. Validate the combination.
|
|
83
|
+
if (!asset.imageNameParameter && (!asset.repositoryName || !asset.imageTag)) {
|
|
84
|
+
throw new toolkit_error_1.ToolkitError('Invalid Docker image asset configuration: "repositoryName" and "imageTag" are required when "imageNameParameter" is left out');
|
|
85
|
+
}
|
|
86
|
+
const repositoryName = asset.repositoryName ?? 'cdk/' + asset.id.replace(/[:/]/g, '-').toLowerCase();
|
|
87
|
+
// Make sure the repository exists, since the 'cdk-assets' tool will not create it for us.
|
|
88
|
+
const { repositoryUri } = await envResources.prepareEcrRepository(repositoryName);
|
|
89
|
+
const imageTag = asset.imageTag ?? asset.sourceHash;
|
|
90
|
+
assetManifest.addDockerImageAsset(asset.sourceHash, {
|
|
91
|
+
directory: asset.path,
|
|
92
|
+
dockerBuildArgs: asset.buildArgs,
|
|
93
|
+
dockerBuildSsh: asset.buildSsh,
|
|
94
|
+
dockerBuildTarget: asset.target,
|
|
95
|
+
dockerFile: asset.file,
|
|
96
|
+
networkMode: asset.networkMode,
|
|
97
|
+
platform: asset.platform,
|
|
98
|
+
dockerOutputs: asset.outputs,
|
|
99
|
+
}, {
|
|
100
|
+
repositoryName,
|
|
101
|
+
imageTag,
|
|
102
|
+
});
|
|
103
|
+
if (!asset.imageNameParameter) {
|
|
104
|
+
return {};
|
|
105
|
+
}
|
|
106
|
+
return { [asset.imageNameParameter]: `${repositoryUri}:${imageTag}` };
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXNzZXRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXNzZXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBZ0JBLGtFQXlDQztBQXpERCw2QkFBNkI7QUFDN0IsMkRBQTJEO0FBQzNELHlDQUF5QztBQUN6QywrQkFBK0I7QUFFL0IsK0RBQTJEO0FBRTNELDJDQUFrRDtBQUdsRDs7Ozs7R0FLRztBQUNJLEtBQUssVUFBVSwyQkFBMkIsQ0FDL0MsUUFBa0IsRUFDbEIsS0FBd0MsRUFDeEMsYUFBbUMsRUFDbkMsWUFBa0MsRUFDbEMsS0FBZ0I7SUFFaEIsS0FBSyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7SUFDcEIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztJQUU1QixJQUFJLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDeEIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsTUFBTSxXQUFXLEdBQUcsTUFBTSxZQUFZLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN2Qiw4Q0FBOEM7UUFDOUMsTUFBTSxJQUFJLDRCQUFZLENBQUMsMEZBQTBGLEtBQUssQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLFdBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDL0ssQ0FBQztJQUVELE1BQU0sTUFBTSxHQUEyQixFQUFFLENBQUM7SUFFMUMsS0FBSyxNQUFNLEtBQUssSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUMzQiwrRkFBK0Y7UUFDL0YsZ0ZBQWdGO1FBQ2hGLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRWhELElBQUksVUFBVSxFQUFFLENBQUM7WUFDZixNQUFNLFFBQVEsQ0FBQyxNQUFNLENBQUMs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S0FBSyxDQUFDLFNBQVM7UUFDaEMsY0FBYyxFQUFFLEtBQUssQ0FBQyxRQUFRO1FBQzlCLGlCQUFpQixFQUFFLEtBQUssQ0FBQyxNQUFNO1FBQy9CLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSTtRQUN0QixXQUFXLEVBQUUsS0FBSyxDQUFDLFdBQVc7UUFDOUIsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1FBQ3hCLGFBQWEsRUFBRSxLQUFLLENBQUMsT0FBTztLQUM3QixFQUFFO1FBQ0QsY0FBYztRQUNkLFFBQVE7S0FDVCxDQUFDLENBQUM7SUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDOUIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBQ0QsT0FBTyxFQUFFLENBQUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsR0FBRyxhQUFhLElBQUksUUFBUSxFQUFFLEVBQUUsQ0FBQztBQUN4RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHR5cGUgeyBBc3NldE1hbmlmZXN0QnVpbGRlciB9IGZyb20gJy4vYXNzZXQtbWFuaWZlc3QtYnVpbGRlcic7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHR5cGUgeyBFbnZpcm9ubWVudFJlc291cmNlcyB9IGZyb20gJy4uL2Vudmlyb25tZW50JztcbmltcG9ydCB7IElPLCB0eXBlIElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IFRvb2xraXRJbmZvIH0gZnJvbSAnLi4vdG9vbGtpdC1pbmZvJztcblxuLyoqXG4gKiBUYWtlIHRoZSBtZXRhZGF0YSBhc3NldHMgZnJvbSB0aGUgZ2l2ZW4gc3RhY2sgYW5kIGFkZCB0aGVtIHRvIHRoZSBnaXZlbiBhc3NldCBtYW5pZmVzdFxuICpcbiAqIFJldHVybnMgdGhlIENsb3VkRm9ybWF0aW9uIHBhcmFtZXRlcnMgdGhhdCBuZWVkIHRvIGJlIHNlbnQgdG8gdGhlIHRlbXBsYXRlIHRvXG4gKiBwYXNzIEFzc2V0IGNvb3JkaW5hdGVzLlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gYWRkTWV0YWRhdGFBc3NldHNUb01hbmlmZXN0KFxuICBpb0hlbHBlcjogSW9IZWxwZXIsXG4gIHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QsXG4gIGFzc2V0TWFuaWZlc3Q6IEFzc2V0TWFuaWZlc3RCdWlsZGVyLFxuICBlbnZSZXNvdXJjZXM6IEVudmlyb25tZW50UmVzb3VyY2VzLFxuICByZXVzZT86IHN0cmluZ1tdLFxuKTogUHJvbWlzZTxSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PiB7XG4gIHJldXNlID0gcmV1c2UgfHwgW107XG4gIGNvbnN0IGFzc2V0cyA9IHN0YWNrLmFzc2V0cztcblxuICBpZiAoYXNzZXRzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGNvbnN0IHRvb2xraXRJbmZvID0gYXdhaXQgZW52UmVzb3VyY2VzLmxvb2t1cFRvb2xraXQoKTtcbiAgaWYgKCF0b29sa2l0SW5mby5mb3VuZCkge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAc3R5bGlzdGljL21heC1sZW5cbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGBUaGlzIHN0YWNrIHVzZXMgYXNzZXRzLCBzbyB0aGUgdG9vbGtpdCBzdGFjayBtdXN0IGJlIGRlcGxveWVkIHRvIHRoZSBlbnZpcm9ubWVudCAoUnVuIFwiJHtjaGFsay5ibHVlKCdjZGsgYm9vdHN0cmFwICcgKyBzdGFjay5lbnZpcm9ubWVudCEubmFtZSl9XCIpYCk7XG4gIH1cblxuICBjb25zdCBwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fTtcblxuICBmb3IgKGNvbnN0IGFzc2V0IG9mIGFzc2V0cykge1xuICAgIC8vIEZJWE1FOiBTaG91bGQgaGF2ZSBleGNsdWRlZCBieSBjb25zdHJ1Y3QgcGF0aCBoZXJlIGluc3RlYWQgb2YgYnkgdW5pcXVlIElELCBwcmVmZXJhYmx5IHVzaW5nXG4gICAgLy8gbWluaW1hdGNoIHNvIHdlIGNhbiBzdXBwb3J0IGdsb2JzLiBNYXliZSB0YWtlIHVwIGR1cmluZyBhcnRpZmFjdCByZWZhY3RvcmluZy5cbiAgICBjb25zdCByZXVzZUFzc2V0ID0gcmV1c2UuaW5kZXhPZihhc3NldC5pZCkgPiAtMTtcblxuICAgIGlmIChyZXVzZUFzc2V0KSB7XG4gICAgICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uREVGQVVMVF9UT09MS0lUX0RFQlVHLm1zZyhgUmV1c2luZyBhc3NldCAke2Fzc2V0LmlkfTogJHtKU09OLnN0cmluZ2lmeShhc3NldCl9YCkpO1xuICAgICAgY29udGludWU7XG4gICAgfVxuXG4gICAgYXdhaXQgaW9IZWxwZXIubm90aWZ5KElPLkRFRkFVTFRfVE9PTEtJVF9ERUJVRy5tc2coYFByZXBhcmluZyBhc3NldCAke2Fzc2V0LmlkfTogJHtKU09OLnN0cmluZ2lmeShhc3NldCl9YCkpO1xuICAgIGlmICghc3RhY2suYXNzZW1ibHkpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoJ1VuZXhwZWN0ZWQ6IHN0YWNrIGFzc2VtYmx5IGlzIHJlcXVpcmVkIGluIG9yZGVyIHRvIGZpbmQgYXNzZXRzIGluIGFzc2VtYmx5IGRpcmVjdG9yeScpO1xuICAgIH1cblxuICAgIE9iamVjdC5hc3NpZ24ocGFyYW1zLCBhd2FpdCBwcmVwYXJlQXNzZXQoaW9IZWxwZXIsIGFzc2V0LCBhc3NldE1hbmlmZXN0LCBlbnZSZXNvdXJjZXMsIHRvb2xraXRJbmZvKSk7XG4gIH1cblxuICByZXR1cm4gcGFyYW1zO1xufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHN0eWxpc3RpYy9tYXgtbGVuXG5hc3luYyBmdW5jdGlvbiBwcmVwYXJlQXNzZXQoXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbiAgYXNzZXQ6IGN4c2NoZW1hLkFzc2V0TWV0YWRhdGFFbnRyeSxcbiAgYXNzZXRNYW5pZmVzdDogQXNzZXRNYW5pZmVzdEJ1aWxkZXIsXG4gIGVudlJlc291cmNlczogRW52aXJvbm1lbnRSZXNvdXJjZXMsXG4gIHRvb2xraXRJbmZvOiBUb29sa2l0SW5mbyxcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuICBzd2l0Y2ggKGFzc2V0LnBhY2thZ2luZykge1xuICAgIGNhc2UgJ3ppcCc6XG4gICAgY2FzZSAnZmlsZSc6XG4gICAgICByZXR1cm4gcHJlcGFyZUZpbGVBc3NldChcbiAgICAgICAgaW9IZWxwZXIsXG4gICAgICAgIGFzc2V0LFxuICAgICAgICBhc3NldE1hbmlmZXN0LFxuICAgICAgICB0b29sa2l0SW5mbyxcbiAgICAgICAgYXNzZXQucGFja2FnaW5nID09PSAnemlwJyA/IGN4c2NoZW1hLkZpbGVBc3NldFBhY2thZ2luZy5aSVBfRElSRUNUT1JZIDogY3hzY2hlbWEuRmlsZUFzc2V0UGFja2FnaW5nLkZJTEUpO1xuICAgIGNhc2UgJ2NvbnRhaW5lci1pbWFnZSc6XG4gICAgICByZXR1cm4gcHJlcGFyZURvY2tlckltYWdlQXNzZXQoYXNzZXQsIGFzc2V0TWFuaWZlc3QsIGVudlJlc291cmNlcyk7XG4gICAgZGVmYXVsdDpcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAc3R5bGlzdGljL21heC1sZW5cbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoYFVuc3VwcG9ydGVkIHBhY2thZ2luZyB0eXBlOiAkeyhhc3NldCBhcyBhbnkpLnBhY2thZ2luZ30uIFlvdSBtaWdodCBuZWVkIHRvIHVwZ3JhZGUgeW91ciBhd3MtY2RrIHRvb2xraXQgdG8gc3VwcG9ydCB0aGlzIGFzc2V0IHR5cGUuYCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcHJlcGFyZUZpbGVBc3NldChcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuICBhc3NldDogY3hzY2hlbWEuRmlsZUFzc2V0TWV0YWRhdGFFbnRyeSxcbiAgYXNzZXRNYW5pZmVzdDogQXNzZXRNYW5pZmVzdEJ1aWxkZXIsXG4gIHRvb2xraXRJbmZvOiBUb29sa2l0SW5mbyxcbiAgcGFja2FnaW5nOiBjeHNjaGVtYS5GaWxlQXNzZXRQYWNrYWdpbmcsXG4pOiBQcm9taXNlPFJlY29yZDxzdHJpbmcsIHN0cmluZz4+IHtcbiAgY29uc3QgZXh0ZW5zaW9uID0gcGFja2FnaW5nID09PSBjeHNjaGVtYS5GaWxlQXNzZXRQYWNrYWdpbmcuWklQX0RJUkVDVE9SWSA/ICcuemlwJyA6IHBhdGguZXh0bmFtZShhc3NldC5wYXRoKTtcbiAgY29uc3QgYmFzZU5hbWUgPSBgJHthc3NldC5zb3VyY2VIYXNofSR7ZXh0ZW5zaW9ufWA7XG4gIC8vIFNpbXBsaWZ5IGtleTogYXNzZXRzL2FiY2RlZi9hYmNkZWYuemlwIGlzIGtpbmRhIHNpbGx5IGFuZCB1bm5lY2Vzc2FyeSwgc28gaWYgdGhleSdyZSB0aGUgc2FtZSBqdXN0IHBpY2sgb25lIGNvbXBvbmVudC5cbiAgY29uc3QgczNQcmVmaXggPSBhc3NldC5pZCA9PT0gYXNzZXQuc291cmNlSGFzaCA/ICdhc3NldHMvJyA6IGBhc3NldHMvJHthc3NldC5pZH0vYDtcbiAgY29uc3Qga2V5ID0gYCR7czNQcmVmaXh9JHtiYXNlTmFtZX1gO1xuICBjb25zdCBzM3VybCA9IGBzMzovLyR7dG9vbGtpdEluZm8uYnVja2V0TmFtZX0vJHtrZXl9YDtcblxuICBhd2FpdCBpb0hlbHBlci5ub3RpZnkoSU8uREVGQVVMVF9UT09MS0lUX0RFQlVHLm1zZyhgU3RvcmluZyBhc3NldCAke2Fzc2V0LnBhdGh9IGF0ICR7czN1cmx9YCkpO1xuXG4gIGFzc2V0TWFuaWZlc3QuYWRkRmlsZUFzc2V0KGFzc2V0LnNvdXJjZUhhc2gsIHtcbiAgICBwYXRoOiBhc3NldC5wYXRoLFxuICAgIHBhY2thZ2luZyxcbiAgfSwge1xuICAgIGJ1Y2tldE5hbWU6IHRvb2xraXRJbmZvLmJ1Y2tldE5hbWUsXG4gICAgb2JqZWN0S2V5OiBrZXksXG4gIH0pO1xuXG4gIHJldHVybiB7XG4gICAgW2Fzc2V0LnMzQnVja2V0UGFyYW1ldGVyXTogdG9vbGtpdEluZm8uYnVja2V0TmFtZSxcbiAgICBbYXNzZXQuczNLZXlQYXJhbWV0ZXJdOiBgJHtzM1ByZWZpeH0ke2N4YXBpLkFTU0VUX1BSRUZJWF9TRVBBUkFUT1J9JHtiYXNlTmFtZX1gLFxuICAgIFthc3NldC5hcnRpZmFjdEhhc2hQYXJhbWV0ZXJdOiBhc3NldC5zb3VyY2VIYXNoLFxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBwcmVwYXJlRG9ja2VySW1hZ2VBc3NldChcbiAgYXNzZXQ6IGN4c2NoZW1hLkNvbnRhaW5lckltYWdlQXNzZXRNZXRhZGF0YUVudHJ5LFxuICBhc3NldE1hbmlmZXN0OiBBc3NldE1hbmlmZXN0QnVpbGRlcixcbiAgZW52UmVzb3VyY2VzOiBFbnZpcm9ubWVudFJlc291cmNlcyk6IFByb21pc2U8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4ge1xuICAvLyBQcmUtMS4yMS4wLCByZXBvc2l0b3J5TmFtZSBjYW4gYmUgc3BlY2lmaWVkIGJ5IHRoZSB1c2VyIG9yIGNhbiBiZSBsZWZ0IG91dCwgaW4gd2hpY2ggY2FzZSB3ZSBtYWtlXG4gIC8vIGEgcGVyLWFzc2V0IHJlcG9zaXRvcnkgd2hpY2ggd2lsbCBnZXQgYWRvcHRlZCBhbmQgY2xlYW5lZCB1cCBhbG9uZyB3aXRoIHRoZSBzdGFjay5cbiAgLy8gUG9zdC0xLjIxLjAsIHJlcG9zaXRvcnlOYW1lIHdpbGwgYWx3YXlzIGJlIHNwZWNpZmllZCBhbmQgaXQgd2lsbCBiZSBhIHNoYXJlZCByZXBvc2l0b3J5IGJldHdlZW5cbiAgLy8gYWxsIGFzc2V0cywgYW5kIGFzc2V0IHdpbGwgaGF2ZSBpbWFnZVRhZyBzcGVjaWZpZWQgYXMgd2VsbC4gVmFsaWRhdGUgdGhlIGNvbWJpbmF0aW9uLlxuICBpZiAoIWFzc2V0LmltYWdlTmFtZVBhcmFtZXRlciAmJiAoIWFzc2V0LnJlcG9zaXRvcnlOYW1lIHx8ICFhc3NldC5pbWFnZVRhZykpIHtcbiAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKCdJbnZhbGlkIERvY2tlciBpbWFnZSBhc3NldCBjb25maWd1cmF0aW9uOiBcInJlcG9zaXRvcnlOYW1lXCIgYW5kIFwiaW1hZ2VUYWdcIiBhcmUgcmVxdWlyZWQgd2hlbiBcImltYWdlTmFtZVBhcmFtZXRlclwiIGlzIGxlZnQgb3V0Jyk7XG4gIH1cblxuICBjb25zdCByZXBvc2l0b3J5TmFtZSA9IGFzc2V0LnJlcG9zaXRvcnlOYW1lID8/ICdjZGsvJyArIGFzc2V0LmlkLnJlcGxhY2UoL1s6L10vZywgJy0nKS50b0xvd2VyQ2FzZSgpO1xuXG4gIC8vIE1ha2Ugc3VyZSB0aGUgcmVwb3NpdG9yeSBleGlzdHMsIHNpbmNlIHRoZSAnY2RrLWFzc2V0cycgdG9vbCB3aWxsIG5vdCBjcmVhdGUgaXQgZm9yIHVzLlxuICBjb25zdCB7IHJlcG9zaXRvcnlVcmkgfSA9IGF3YWl0IGVudlJlc291cmNlcy5wcmVwYXJlRWNyUmVwb3NpdG9yeShyZXBvc2l0b3J5TmFtZSk7XG4gIGNvbnN0IGltYWdlVGFnID0gYXNzZXQuaW1hZ2VUYWcgPz8gYXNzZXQuc291cmNlSGFzaDtcblxuICBhc3NldE1hbmlmZXN0LmFkZERvY2tlckltYWdlQXNzZXQoYXNzZXQuc291cmNlSGFzaCwge1xuICAgIGRpcmVjdG9yeTogYXNzZXQucGF0aCxcbiAgICBkb2NrZXJCdWlsZEFyZ3M6IGFzc2V0LmJ1aWxkQXJncyxcbiAgICBkb2NrZXJCdWlsZFNzaDogYXNzZXQuYnVpbGRTc2gsXG4gICAgZG9ja2VyQnVpbGRUYXJnZXQ6IGFzc2V0LnRhcmdldCxcbiAgICBkb2NrZXJGaWxlOiBhc3NldC5maWxlLFxuICAgIG5ldHdvcmtNb2RlOiBhc3NldC5uZXR3b3JrTW9kZSxcbiAgICBwbGF0Zm9ybTogYXNzZXQucGxhdGZvcm0sXG4gICAgZG9ja2VyT3V0cHV0czogYXNzZXQub3V0cHV0cyxcbiAgfSwge1xuICAgIHJlcG9zaXRvcnlOYW1lLFxuICAgIGltYWdlVGFnLFxuICB9KTtcblxuICBpZiAoIWFzc2V0LmltYWdlTmFtZVBhcmFtZXRlcikge1xuICAgIHJldHVybiB7fTtcbiAgfVxuICByZXR1cm4geyBbYXNzZXQuaW1hZ2VOYW1lUGFyYW1ldGVyXTogYCR7cmVwb3NpdG9yeVVyaX06JHtpbWFnZVRhZ31gIH07XG59XG4iXX0=
|