@aws-cdk/toolkit-lib 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +16 -0
  3. package/README.md +432 -0
  4. package/build-info.json +4 -0
  5. package/db.json.gz +0 -0
  6. package/lib/actions/deploy/index.d.ts +178 -0
  7. package/lib/actions/deploy/index.js +78 -0
  8. package/lib/actions/deploy/private/deploy-options.d.ts +78 -0
  9. package/lib/actions/deploy/private/deploy-options.js +3 -0
  10. package/lib/actions/deploy/private/helpers.d.ts +15 -0
  11. package/lib/actions/deploy/private/helpers.js +41 -0
  12. package/lib/actions/deploy/private/index.d.ts +2 -0
  13. package/lib/actions/deploy/private/index.js +19 -0
  14. package/lib/actions/destroy/index.d.ts +17 -0
  15. package/lib/actions/destroy/index.js +3 -0
  16. package/lib/actions/diff/index.d.ts +83 -0
  17. package/lib/actions/diff/index.js +45 -0
  18. package/lib/actions/diff/private/helpers.d.ts +7 -0
  19. package/lib/actions/diff/private/helpers.js +20 -0
  20. package/lib/actions/diff/private/index.d.ts +1 -0
  21. package/lib/actions/diff/private/index.js +18 -0
  22. package/lib/actions/import/index.d.ts +21 -0
  23. package/lib/actions/import/index.js +3 -0
  24. package/lib/actions/index.d.ts +6 -0
  25. package/lib/actions/index.js +23 -0
  26. package/lib/actions/list/index.d.ts +7 -0
  27. package/lib/actions/list/index.js +3 -0
  28. package/lib/actions/rollback/index.d.ts +39 -0
  29. package/lib/actions/rollback/index.js +3 -0
  30. package/lib/actions/synth/index.d.ts +12 -0
  31. package/lib/actions/synth/index.js +3 -0
  32. package/lib/actions/watch/index.d.ts +35 -0
  33. package/lib/actions/watch/index.js +3 -0
  34. package/lib/actions/watch/private/helpers.d.ts +4 -0
  35. package/lib/actions/watch/private/helpers.js +8 -0
  36. package/lib/actions/watch/private/index.d.ts +1 -0
  37. package/lib/actions/watch/private/index.js +18 -0
  38. package/lib/api/aws-auth/index.d.ts +1 -0
  39. package/lib/api/aws-auth/index.js +18 -0
  40. package/lib/api/aws-auth/types.d.ts +32 -0
  41. package/lib/api/aws-auth/types.js +3 -0
  42. package/lib/api/aws-cdk.d.ts +25 -0
  43. package/lib/api/aws-cdk.js +9329 -0
  44. package/lib/api/aws-cdk.js.map +7 -0
  45. package/lib/api/cloud-assembly/index.d.ts +3 -0
  46. package/lib/api/cloud-assembly/index.js +20 -0
  47. package/lib/api/cloud-assembly/private/cached-source.d.ts +15 -0
  48. package/lib/api/cloud-assembly/private/cached-source.js +25 -0
  49. package/lib/api/cloud-assembly/private/context-aware-source.d.ts +45 -0
  50. package/lib/api/cloud-assembly/private/context-aware-source.js +89 -0
  51. package/lib/api/cloud-assembly/private/exec.d.ts +13 -0
  52. package/lib/api/cloud-assembly/private/exec.js +56 -0
  53. package/lib/api/cloud-assembly/private/identity-source.d.ts +10 -0
  54. package/lib/api/cloud-assembly/private/identity-source.js +17 -0
  55. package/lib/api/cloud-assembly/private/index.d.ts +8 -0
  56. package/lib/api/cloud-assembly/private/index.js +25 -0
  57. package/lib/api/cloud-assembly/private/prepare-source.d.ts +52 -0
  58. package/lib/api/cloud-assembly/private/prepare-source.js +166 -0
  59. package/lib/api/cloud-assembly/private/source-builder.d.ts +29 -0
  60. package/lib/api/cloud-assembly/private/source-builder.js +121 -0
  61. package/lib/api/cloud-assembly/private/stack-assembly.d.ts +30 -0
  62. package/lib/api/cloud-assembly/private/stack-assembly.js +94 -0
  63. package/lib/api/cloud-assembly/private/stack-selectors.d.ts +2 -0
  64. package/lib/api/cloud-assembly/private/stack-selectors.js +8 -0
  65. package/lib/api/cloud-assembly/source-builder.d.ts +113 -0
  66. package/lib/api/cloud-assembly/source-builder.js +3 -0
  67. package/lib/api/cloud-assembly/stack-selector.d.ts +81 -0
  68. package/lib/api/cloud-assembly/stack-selector.js +64 -0
  69. package/lib/api/cloud-assembly/types.d.ts +7 -0
  70. package/lib/api/cloud-assembly/types.js +3 -0
  71. package/lib/api/errors.d.ts +44 -0
  72. package/lib/api/errors.js +82 -0
  73. package/lib/api/io/index.d.ts +2 -0
  74. package/lib/api/io/index.js +19 -0
  75. package/lib/api/io/io-host.d.ts +15 -0
  76. package/lib/api/io/io-host.js +3 -0
  77. package/lib/api/io/io-message.d.ts +59 -0
  78. package/lib/api/io/io-message.js +3 -0
  79. package/lib/api/io/private/codes.d.ts +37 -0
  80. package/lib/api/io/private/codes.js +48 -0
  81. package/lib/api/io/private/index.d.ts +6 -0
  82. package/lib/api/io/private/index.js +23 -0
  83. package/lib/api/io/private/level-priority.d.ts +11 -0
  84. package/lib/api/io/private/level-priority.js +33 -0
  85. package/lib/api/io/private/logger.d.ts +40 -0
  86. package/lib/api/io/private/logger.js +211 -0
  87. package/lib/api/io/private/messages.d.ts +64 -0
  88. package/lib/api/io/private/messages.js +159 -0
  89. package/lib/api/io/private/timer.d.ts +29 -0
  90. package/lib/api/io/private/timer.js +54 -0
  91. package/lib/api/io/private/types.d.ts +25 -0
  92. package/lib/api/io/private/types.js +3 -0
  93. package/lib/index.d.ts +6 -0
  94. package/lib/index.js +25 -0
  95. package/lib/index_bg.wasm +0 -0
  96. package/lib/toolkit/index.d.ts +1 -0
  97. package/lib/toolkit/index.js +18 -0
  98. package/lib/toolkit/private/index.d.ts +9 -0
  99. package/lib/toolkit/private/index.js +3 -0
  100. package/lib/toolkit/toolkit.d.ts +142 -0
  101. package/lib/toolkit/toolkit.js +644 -0
  102. package/package.json +147 -0
@@ -0,0 +1,178 @@
1
+ import type { BaseDeployOptions } from './private/deploy-options';
2
+ import type { StackActivityProgress, Tag } from '../../api/aws-cdk';
3
+ export type DeploymentMethod = DirectDeploymentMethod | ChangeSetDeploymentMethod;
4
+ export interface DirectDeploymentMethod {
5
+ /**
6
+ * Use stack APIs to the deploy stack changes
7
+ */
8
+ readonly method: 'direct';
9
+ }
10
+ export interface ChangeSetDeploymentMethod {
11
+ /**
12
+ * Use change-set APIS to deploy a stack changes
13
+ */
14
+ readonly method: 'change-set';
15
+ /**
16
+ * Whether to execute the changeset or leave it in review.
17
+ *
18
+ * @default true
19
+ */
20
+ readonly execute?: boolean;
21
+ /**
22
+ * Optional name to use for the CloudFormation change set.
23
+ * If not provided, a name will be generated automatically.
24
+ */
25
+ readonly changeSetName?: string;
26
+ }
27
+ /**
28
+ * When to build assets
29
+ */
30
+ export declare enum AssetBuildTime {
31
+ /**
32
+ * Build all assets before deploying the first stack
33
+ *
34
+ * This is intended for expensive Docker image builds; so that if the Docker image build
35
+ * fails, no stacks are unnecessarily deployed (with the attendant wait time).
36
+ */
37
+ ALL_BEFORE_DEPLOY = "all-before-deploy",
38
+ /**
39
+ * Build assets just-in-time, before publishing
40
+ */
41
+ JUST_IN_TIME = "just-in-time"
42
+ }
43
+ export declare enum RequireApproval {
44
+ /**
45
+ * Never require any security approvals
46
+ */
47
+ NEVER = "never",
48
+ /**
49
+ * Any security changes require an approval
50
+ */
51
+ ANY_CHANGE = "any-change",
52
+ /**
53
+ * Require approval only for changes that are access broadening
54
+ */
55
+ BROADENING = "broadening"
56
+ }
57
+ export declare enum HotswapMode {
58
+ /**
59
+ * Will fall back to CloudFormation when a non-hotswappable change is detected
60
+ */
61
+ FALL_BACK = "fall-back",
62
+ /**
63
+ * Will not fall back to CloudFormation when a non-hotswappable change is detected
64
+ */
65
+ HOTSWAP_ONLY = "hotswap-only",
66
+ /**
67
+ * Will not attempt to hotswap anything and instead go straight to CloudFormation
68
+ */
69
+ FULL_DEPLOYMENT = "full-deployment"
70
+ }
71
+ export declare class StackParameters {
72
+ /**
73
+ * Use only existing parameters on the stack.
74
+ */
75
+ static onlyExisting(): StackParameters;
76
+ /**
77
+ * Use exactly these parameters and remove any other existing parameters from the stack.
78
+ */
79
+ static exactly(params: {
80
+ [name: string]: string | undefined;
81
+ }): StackParameters;
82
+ /**
83
+ * Define additional parameters for the stack, while keeping existing parameters for unspecified values.
84
+ */
85
+ static withExisting(params: {
86
+ [name: string]: string | undefined;
87
+ }): StackParameters;
88
+ readonly parameters: Map<string, string | undefined>;
89
+ readonly keepExistingParameters: boolean;
90
+ private constructor();
91
+ }
92
+ export interface DeployOptions extends BaseDeployOptions {
93
+ /**
94
+ * ARNs of SNS topics that CloudFormation will notify with stack related events
95
+ */
96
+ readonly notificationArns?: string[];
97
+ /**
98
+ * Require a confirmation for security relevant changes before continuing with the deployment
99
+ *
100
+ * @default RequireApproval.NEVER
101
+ * @deprecated in future a message containing the full diff will be emitted and a response requested.
102
+ * Approval workflows should be implemented in the `IIoHost`.
103
+ */
104
+ readonly requireApproval?: RequireApproval;
105
+ /**
106
+ * Tags to pass to CloudFormation for deployment
107
+ */
108
+ readonly tags?: Tag[];
109
+ /**
110
+ * Stack parameters for CloudFormation used at deploy time
111
+ * @default StackParameters.onlyExisting()
112
+ */
113
+ readonly parameters?: StackParameters;
114
+ /**
115
+ * Path to file where stack outputs will be written after a successful deploy as JSON
116
+ * @default - Outputs are not written to any file
117
+ */
118
+ readonly outputsFile?: string;
119
+ /**
120
+ * Build/publish assets for a single stack in parallel
121
+ *
122
+ * Independent of whether stacks are being done in parallel or no.
123
+ *
124
+ * @default true
125
+ */
126
+ readonly assetParallelism?: boolean;
127
+ /**
128
+ * When to build assets
129
+ *
130
+ * The default is the Docker-friendly default.
131
+ *
132
+ * @default AssetBuildTime.ALL_BEFORE_DEPLOY
133
+ */
134
+ readonly assetBuildTime?: AssetBuildTime;
135
+ /**
136
+ * Change stack watcher output to CI mode.
137
+ *
138
+ * @deprecated Implement in IoHost instead
139
+ */
140
+ readonly ci?: boolean;
141
+ /**
142
+ * Display mode for stack deployment progress.
143
+ *
144
+ * @deprecated Implement in IoHost instead
145
+ */
146
+ readonly progress?: StackActivityProgress;
147
+ /**
148
+ * Represents configuration property overrides for hotswap deployments.
149
+ * Currently only supported by ECS.
150
+ *
151
+ * @default - no overrides
152
+ */
153
+ readonly hotswapProperties?: HotswapProperties;
154
+ }
155
+ /**
156
+ * Property overrides for ECS hotswaps
157
+ */
158
+ export interface EcsHotswapProperties {
159
+ /**
160
+ * The lower limit on the number of your service's tasks that must remain
161
+ * in the RUNNING state during a deployment, as a percentage of the desiredCount.
162
+ */
163
+ readonly minimumHealthyPercent: number;
164
+ /**
165
+ * The upper limit on the number of your service's tasks that are allowed
166
+ * in the RUNNING or PENDING state during a deployment, as a percentage of the desiredCount.
167
+ */
168
+ readonly maximumHealthyPercent: number;
169
+ }
170
+ /**
171
+ * Property overrides for hotswap deployments.
172
+ */
173
+ export interface HotswapProperties {
174
+ /**
175
+ * ECS specific hotswap property overrides
176
+ */
177
+ readonly ecs: EcsHotswapProperties;
178
+ }
@@ -0,0 +1,78 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StackParameters = exports.HotswapMode = exports.RequireApproval = exports.AssetBuildTime = void 0;
4
+ /**
5
+ * When to build assets
6
+ */
7
+ var AssetBuildTime;
8
+ (function (AssetBuildTime) {
9
+ /**
10
+ * Build all assets before deploying the first stack
11
+ *
12
+ * This is intended for expensive Docker image builds; so that if the Docker image build
13
+ * fails, no stacks are unnecessarily deployed (with the attendant wait time).
14
+ */
15
+ AssetBuildTime["ALL_BEFORE_DEPLOY"] = "all-before-deploy";
16
+ /**
17
+ * Build assets just-in-time, before publishing
18
+ */
19
+ AssetBuildTime["JUST_IN_TIME"] = "just-in-time";
20
+ })(AssetBuildTime || (exports.AssetBuildTime = AssetBuildTime = {}));
21
+ var RequireApproval;
22
+ (function (RequireApproval) {
23
+ /**
24
+ * Never require any security approvals
25
+ */
26
+ RequireApproval["NEVER"] = "never";
27
+ /**
28
+ * Any security changes require an approval
29
+ */
30
+ RequireApproval["ANY_CHANGE"] = "any-change";
31
+ /**
32
+ * Require approval only for changes that are access broadening
33
+ */
34
+ RequireApproval["BROADENING"] = "broadening";
35
+ })(RequireApproval || (exports.RequireApproval = RequireApproval = {}));
36
+ var HotswapMode;
37
+ (function (HotswapMode) {
38
+ /**
39
+ * Will fall back to CloudFormation when a non-hotswappable change is detected
40
+ */
41
+ HotswapMode["FALL_BACK"] = "fall-back";
42
+ /**
43
+ * Will not fall back to CloudFormation when a non-hotswappable change is detected
44
+ */
45
+ HotswapMode["HOTSWAP_ONLY"] = "hotswap-only";
46
+ /**
47
+ * Will not attempt to hotswap anything and instead go straight to CloudFormation
48
+ */
49
+ HotswapMode["FULL_DEPLOYMENT"] = "full-deployment";
50
+ })(HotswapMode || (exports.HotswapMode = HotswapMode = {}));
51
+ class StackParameters {
52
+ /**
53
+ * Use only existing parameters on the stack.
54
+ */
55
+ static onlyExisting() {
56
+ return new StackParameters({}, true);
57
+ }
58
+ /**
59
+ * Use exactly these parameters and remove any other existing parameters from the stack.
60
+ */
61
+ static exactly(params) {
62
+ return new StackParameters(params, false);
63
+ }
64
+ /**
65
+ * Define additional parameters for the stack, while keeping existing parameters for unspecified values.
66
+ */
67
+ static withExisting(params) {
68
+ return new StackParameters(params, true);
69
+ }
70
+ parameters;
71
+ keepExistingParameters;
72
+ constructor(params, usePreviousParameters = true) {
73
+ this.keepExistingParameters = usePreviousParameters;
74
+ this.parameters = new Map(Object.entries(params));
75
+ }
76
+ }
77
+ exports.StackParameters = StackParameters;
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFnQ0E7O0dBRUc7QUFDSCxJQUFZLGNBYVg7QUFiRCxXQUFZLGNBQWM7SUFDeEI7Ozs7O09BS0c7SUFDSCx5REFBdUMsQ0FBQTtJQUV2Qzs7T0FFRztJQUNILCtDQUE2QixDQUFBO0FBQy9CLENBQUMsRUFiVyxjQUFjLDhCQUFkLGNBQWMsUUFhekI7QUFFRCxJQUFZLGVBYVg7QUFiRCxXQUFZLGVBQWU7SUFDekI7O09BRUc7SUFDSCxrQ0FBZSxDQUFBO0lBQ2Y7O09BRUc7SUFDSCw0Q0FBeUIsQ0FBQTtJQUN6Qjs7T0FFRztJQUNILDRDQUF5QixDQUFBO0FBQzNCLENBQUMsRUFiVyxlQUFlLCtCQUFmLGVBQWUsUUFhMUI7QUFFRCxJQUFZLFdBZVg7QUFmRCxXQUFZLFdBQVc7SUFDckI7O09BRUc7SUFDSCxzQ0FBdUIsQ0FBQTtJQUV2Qjs7T0FFRztJQUNILDRDQUE2QixDQUFBO0lBRTdCOztPQUVHO0lBQ0gsa0RBQW1DLENBQUE7QUFDckMsQ0FBQyxFQWZXLFdBQVcsMkJBQVgsV0FBVyxRQWV0QjtBQUVELE1BQWEsZUFBZTtJQUMxQjs7T0FFRztJQUNJLE1BQU0sQ0FBQyxZQUFZO1FBQ3hCLE9BQU8sSUFBSSxlQUFlLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBOEM7UUFDbEUsT0FBTyxJQUFJLGVBQWUsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLFlBQVksQ0FBQyxNQUE4QztRQUN2RSxPQUFPLElBQUksZUFBZSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRWUsVUFBVSxDQUFrQztJQUM1QyxzQkFBc0IsQ0FBVTtJQUVoRCxZQUFvQixNQUE4QyxFQUFFLHFCQUFxQixHQUFHLElBQUk7UUFDOUYsSUFBSSxDQUFDLHNCQUFzQixHQUFHLHFCQUFxQixDQUFDO1FBQ3BELElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO0lBQ3BELENBQUM7Q0FDRjtBQTdCRCwwQ0E2QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEJhc2VEZXBsb3lPcHRpb25zIH0gZnJvbSAnLi9wcml2YXRlL2RlcGxveS1vcHRpb25zJztcbmltcG9ydCB0eXBlIHsgU3RhY2tBY3Rpdml0eVByb2dyZXNzLCBUYWcgfSBmcm9tICcuLi8uLi9hcGkvYXdzLWNkayc7XG5cbmV4cG9ydCB0eXBlIERlcGxveW1lbnRNZXRob2QgPSBEaXJlY3REZXBsb3ltZW50TWV0aG9kIHwgQ2hhbmdlU2V0RGVwbG95bWVudE1ldGhvZDtcblxuZXhwb3J0IGludGVyZmFjZSBEaXJlY3REZXBsb3ltZW50TWV0aG9kIHtcbiAgLyoqXG4gICAqIFVzZSBzdGFjayBBUElzIHRvIHRoZSBkZXBsb3kgc3RhY2sgY2hhbmdlc1xuICAgKi9cbiAgcmVhZG9ubHkgbWV0aG9kOiAnZGlyZWN0Jztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaGFuZ2VTZXREZXBsb3ltZW50TWV0aG9kIHtcbiAgLyoqXG4gICAqIFVzZSBjaGFuZ2Utc2V0IEFQSVMgdG8gZGVwbG95IGEgc3RhY2sgY2hhbmdlc1xuICAgKi9cbiAgcmVhZG9ubHkgbWV0aG9kOiAnY2hhbmdlLXNldCc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZXhlY3V0ZSB0aGUgY2hhbmdlc2V0IG9yIGxlYXZlIGl0IGluIHJldmlldy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhlY3V0ZT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE9wdGlvbmFsIG5hbWUgdG8gdXNlIGZvciB0aGUgQ2xvdWRGb3JtYXRpb24gY2hhbmdlIHNldC5cbiAgICogSWYgbm90IHByb3ZpZGVkLCBhIG5hbWUgd2lsbCBiZSBnZW5lcmF0ZWQgYXV0b21hdGljYWxseS5cbiAgICovXG4gIHJlYWRvbmx5IGNoYW5nZVNldE5hbWU/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogV2hlbiB0byBidWlsZCBhc3NldHNcbiAqL1xuZXhwb3J0IGVudW0gQXNzZXRCdWlsZFRpbWUge1xuICAvKipcbiAgICogQnVpbGQgYWxsIGFzc2V0cyBiZWZvcmUgZGVwbG95aW5nIHRoZSBmaXJzdCBzdGFja1xuICAgKlxuICAgKiBUaGlzIGlzIGludGVuZGVkIGZvciBleHBlbnNpdmUgRG9ja2VyIGltYWdlIGJ1aWxkczsgc28gdGhhdCBpZiB0aGUgRG9ja2VyIGltYWdlIGJ1aWxkXG4gICAqIGZhaWxzLCBubyBzdGFja3MgYXJlIHVubmVjZXNzYXJpbHkgZGVwbG95ZWQgKHdpdGggdGhlIGF0dGVuZGFudCB3YWl0IHRpbWUpLlxuICAgKi9cbiAgQUxMX0JFRk9SRV9ERVBMT1kgPSAnYWxsLWJlZm9yZS1kZXBsb3knLFxuXG4gIC8qKlxuICAgKiBCdWlsZCBhc3NldHMganVzdC1pbi10aW1lLCBiZWZvcmUgcHVibGlzaGluZ1xuICAgKi9cbiAgSlVTVF9JTl9USU1FID0gJ2p1c3QtaW4tdGltZScsXG59XG5cbmV4cG9ydCBlbnVtIFJlcXVpcmVBcHByb3ZhbCB7XG4gIC8qKlxuICAgKiBOZXZlciByZXF1aXJlIGFueSBzZWN1cml0eSBhcHByb3ZhbHNcbiAgICovXG4gIE5FVkVSID0gJ25ldmVyJyxcbiAgLyoqXG4gICAqIEFueSBzZWN1cml0eSBjaGFuZ2VzIHJlcXVpcmUgYW4gYXBwcm92YWxcbiAgICovXG4gIEFOWV9DSEFOR0UgPSAnYW55LWNoYW5nZScsXG4gIC8qKlxuICAgKiBSZXF1aXJlIGFwcHJvdmFsIG9ubHkgZm9yIGNoYW5nZXMgdGhhdCBhcmUgYWNjZXNzIGJyb2FkZW5pbmdcbiAgICovXG4gIEJST0FERU5JTkcgPSAnYnJvYWRlbmluZycsXG59XG5cbmV4cG9ydCBlbnVtIEhvdHN3YXBNb2RlIHtcbiAgLyoqXG4gICAqIFdpbGwgZmFsbCBiYWNrIHRvIENsb3VkRm9ybWF0aW9uIHdoZW4gYSBub24taG90c3dhcHBhYmxlIGNoYW5nZSBpcyBkZXRlY3RlZFxuICAgKi9cbiAgRkFMTF9CQUNLID0gJ2ZhbGwtYmFjaycsXG5cbiAgLyoqXG4gICAqIFdpbGwgbm90IGZhbGwgYmFjayB0byBDbG91ZEZvcm1hdGlvbiB3aGVuIGEgbm9uLWhvdHN3YXBwYWJsZSBjaGFuZ2UgaXMgZGV0ZWN0ZWRcbiAgICovXG4gIEhPVFNXQVBfT05MWSA9ICdob3Rzd2FwLW9ubHknLFxuXG4gIC8qKlxuICAgKiBXaWxsIG5vdCBhdHRlbXB0IHRvIGhvdHN3YXAgYW55dGhpbmcgYW5kIGluc3RlYWQgZ28gc3RyYWlnaHQgdG8gQ2xvdWRGb3JtYXRpb25cbiAgICovXG4gIEZVTExfREVQTE9ZTUVOVCA9ICdmdWxsLWRlcGxveW1lbnQnLFxufVxuXG5leHBvcnQgY2xhc3MgU3RhY2tQYXJhbWV0ZXJzIHtcbiAgLyoqXG4gICAqIFVzZSBvbmx5IGV4aXN0aW5nIHBhcmFtZXRlcnMgb24gdGhlIHN0YWNrLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvbmx5RXhpc3RpbmcoKSB7XG4gICAgcmV0dXJuIG5ldyBTdGFja1BhcmFtZXRlcnMoe30sIHRydWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFVzZSBleGFjdGx5IHRoZXNlIHBhcmFtZXRlcnMgYW5kIHJlbW92ZSBhbnkgb3RoZXIgZXhpc3RpbmcgcGFyYW1ldGVycyBmcm9tIHRoZSBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZXhhY3RseShwYXJhbXM6IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9KSB7XG4gICAgcmV0dXJuIG5ldyBTdGFja1BhcmFtZXRlcnMocGFyYW1zLCBmYWxzZSk7XG4gIH1cblxuICAvKipcbiAgICogRGVmaW5lIGFkZGl0aW9uYWwgcGFyYW1ldGVycyBmb3IgdGhlIHN0YWNrLCB3aGlsZSBrZWVwaW5nIGV4aXN0aW5nIHBhcmFtZXRlcnMgZm9yIHVuc3BlY2lmaWVkIHZhbHVlcy5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgd2l0aEV4aXN0aW5nKHBhcmFtczogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH0pIHtcbiAgICByZXR1cm4gbmV3IFN0YWNrUGFyYW1ldGVycyhwYXJhbXMsIHRydWUpO1xuICB9XG5cbiAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlcnM6IE1hcDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD47XG4gIHB1YmxpYyByZWFkb25seSBrZWVwRXhpc3RpbmdQYXJhbWV0ZXJzOiBib29sZWFuO1xuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocGFyYW1zOiB7IFtuYW1lOiBzdHJpbmddOiBzdHJpbmcgfCB1bmRlZmluZWQgfSwgdXNlUHJldmlvdXNQYXJhbWV0ZXJzID0gdHJ1ZSkge1xuICAgIHRoaXMua2VlcEV4aXN0aW5nUGFyYW1ldGVycyA9IHVzZVByZXZpb3VzUGFyYW1ldGVycztcbiAgICB0aGlzLnBhcmFtZXRlcnMgPSBuZXcgTWFwKE9iamVjdC5lbnRyaWVzKHBhcmFtcykpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95T3B0aW9ucyBleHRlbmRzIEJhc2VEZXBsb3lPcHRpb25zIHtcbiAgLyoqXG4gICAqIEFSTnMgb2YgU05TIHRvcGljcyB0aGF0IENsb3VkRm9ybWF0aW9uIHdpbGwgbm90aWZ5IHdpdGggc3RhY2sgcmVsYXRlZCBldmVudHNcbiAgICovXG4gIHJlYWRvbmx5IG5vdGlmaWNhdGlvbkFybnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogUmVxdWlyZSBhIGNvbmZpcm1hdGlvbiBmb3Igc2VjdXJpdHkgcmVsZXZhbnQgY2hhbmdlcyBiZWZvcmUgY29udGludWluZyB3aXRoIHRoZSBkZXBsb3ltZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IFJlcXVpcmVBcHByb3ZhbC5ORVZFUlxuICAgKiBAZGVwcmVjYXRlZCBpbiBmdXR1cmUgYSBtZXNzYWdlIGNvbnRhaW5pbmcgdGhlIGZ1bGwgZGlmZiB3aWxsIGJlIGVtaXR0ZWQgYW5kIGEgcmVzcG9uc2UgcmVxdWVzdGVkLlxuICAgKiBBcHByb3ZhbCB3b3JrZmxvd3Mgc2hvdWxkIGJlIGltcGxlbWVudGVkIGluIHRoZSBgSUlvSG9zdGAuXG4gICAqL1xuICByZWFkb25seSByZXF1aXJlQXBwcm92YWw/OiBSZXF1aXJlQXBwcm92YWw7XG5cbiAgLyoqXG4gICAqIFRhZ3MgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiBmb3IgZGVwbG95bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IFRhZ1tdO1xuXG4gIC8qKlxuICAgKiBTdGFjayBwYXJhbWV0ZXJzIGZvciBDbG91ZEZvcm1hdGlvbiB1c2VkIGF0IGRlcGxveSB0aW1lXG4gICAqIEBkZWZhdWx0IFN0YWNrUGFyYW1ldGVycy5vbmx5RXhpc3RpbmcoKVxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYW1ldGVycz86IFN0YWNrUGFyYW1ldGVycztcblxuICAvKipcbiAgICogUGF0aCB0byBmaWxlIHdoZXJlIHN0YWNrIG91dHB1dHMgd2lsbCBiZSB3cml0dGVuIGFmdGVyIGEgc3VjY2Vzc2Z1bCBkZXBsb3kgYXMgSlNPTlxuICAgKiBAZGVmYXVsdCAtIE91dHB1dHMgYXJlIG5vdCB3cml0dGVuIHRvIGFueSBmaWxlXG4gICAqL1xuICByZWFkb25seSBvdXRwdXRzRmlsZT86IHN0cmluZztcblxuICAvKipcbiAgICogQnVpbGQvcHVibGlzaCBhc3NldHMgZm9yIGEgc2luZ2xlIHN0YWNrIGluIHBhcmFsbGVsXG4gICAqXG4gICAqIEluZGVwZW5kZW50IG9mIHdoZXRoZXIgc3RhY2tzIGFyZSBiZWluZyBkb25lIGluIHBhcmFsbGVsIG9yIG5vLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBhc3NldFBhcmFsbGVsaXNtPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogV2hlbiB0byBidWlsZCBhc3NldHNcbiAgICpcbiAgICogVGhlIGRlZmF1bHQgaXMgdGhlIERvY2tlci1mcmllbmRseSBkZWZhdWx0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBBc3NldEJ1aWxkVGltZS5BTExfQkVGT1JFX0RFUExPWVxuICAgKi9cbiAgcmVhZG9ubHkgYXNzZXRCdWlsZFRpbWU/OiBBc3NldEJ1aWxkVGltZTtcblxuICAvKipcbiAgICogQ2hhbmdlIHN0YWNrIHdhdGNoZXIgb3V0cHV0IHRvIENJIG1vZGUuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIEltcGxlbWVudCBpbiBJb0hvc3QgaW5zdGVhZFxuICAgKi9cbiAgcmVhZG9ubHkgY2k/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEaXNwbGF5IG1vZGUgZm9yIHN0YWNrIGRlcGxveW1lbnQgcHJvZ3Jlc3MuXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIEltcGxlbWVudCBpbiBJb0hvc3QgaW5zdGVhZFxuICAgKi9cbiAgcmVhZG9ubHkgcHJvZ3Jlc3M/OiBTdGFja0FjdGl2aXR5UHJvZ3Jlc3M7XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgY29uZmlndXJhdGlvbiBwcm9wZXJ0eSBvdmVycmlkZXMgZm9yIGhvdHN3YXAgZGVwbG95bWVudHMuXG4gICAqIEN1cnJlbnRseSBvbmx5IHN1cHBvcnRlZCBieSBFQ1MuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gb3ZlcnJpZGVzXG4gICAqL1xuICByZWFkb25seSBob3Rzd2FwUHJvcGVydGllcz86IEhvdHN3YXBQcm9wZXJ0aWVzO1xufVxuXG4vKipcbiAqIFByb3BlcnR5IG92ZXJyaWRlcyBmb3IgRUNTIGhvdHN3YXBzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWNzSG90c3dhcFByb3BlcnRpZXMge1xuICAvKipcbiAgICogVGhlIGxvd2VyIGxpbWl0IG9uIHRoZSBudW1iZXIgb2YgeW91ciBzZXJ2aWNlJ3MgdGFza3MgdGhhdCBtdXN0IHJlbWFpblxuICAgKiBpbiB0aGUgUlVOTklORyBzdGF0ZSBkdXJpbmcgYSBkZXBsb3ltZW50LCBhcyBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGRlc2lyZWRDb3VudC5cbiAgICovXG4gIHJlYWRvbmx5IG1pbmltdW1IZWFsdGh5UGVyY2VudDogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgdXBwZXIgbGltaXQgb24gdGhlIG51bWJlciBvZiB5b3VyIHNlcnZpY2UncyB0YXNrcyB0aGF0IGFyZSBhbGxvd2VkXG4gICAqIGluIHRoZSBSVU5OSU5HIG9yIFBFTkRJTkcgc3RhdGUgZHVyaW5nIGEgZGVwbG95bWVudCwgYXMgYSBwZXJjZW50YWdlIG9mIHRoZSBkZXNpcmVkQ291bnQuXG4gICAqL1xuICByZWFkb25seSBtYXhpbXVtSGVhbHRoeVBlcmNlbnQ6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQcm9wZXJ0eSBvdmVycmlkZXMgZm9yIGhvdHN3YXAgZGVwbG95bWVudHMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSG90c3dhcFByb3BlcnRpZXMge1xuICAvKipcbiAgICogRUNTIHNwZWNpZmljIGhvdHN3YXAgcHJvcGVydHkgb3ZlcnJpZGVzXG4gICAqL1xuICByZWFkb25seSBlY3M6IEVjc0hvdHN3YXBQcm9wZXJ0aWVzO1xufVxuIl19
@@ -0,0 +1,78 @@
1
+ import { DeploymentMethod, DeployOptions, HotswapMode } from '..';
2
+ import type { CloudWatchLogEventMonitor } from '../../../api/aws-cdk';
3
+ import type { StackSelector } from '../../../api/cloud-assembly';
4
+ export interface BaseDeployOptions {
5
+ /**
6
+ * Criteria for selecting stacks to deploy
7
+ *
8
+ * @default - all stacks
9
+ */
10
+ readonly stacks?: StackSelector;
11
+ /**
12
+ * Role to pass to CloudFormation for deployment
13
+ */
14
+ readonly roleArn?: string;
15
+ /**
16
+ * Always deploy, even if templates are identical.
17
+ *
18
+ * @default false
19
+ * @deprecated the options currently covers multiple different functionalities and will be split out in future
20
+ */
21
+ readonly force?: boolean;
22
+ /**
23
+ * Deployment method
24
+ */
25
+ readonly deploymentMethod?: DeploymentMethod;
26
+ /**
27
+ * Whether to perform a 'hotswap' deployment.
28
+ * A 'hotswap' deployment will attempt to short-circuit CloudFormation
29
+ * and update the affected resources like Lambda functions directly.
30
+ *
31
+ * @default - no hotswap
32
+ */
33
+ readonly hotswap?: HotswapMode;
34
+ /**
35
+ * Rollback failed deployments
36
+ *
37
+ * @default true
38
+ */
39
+ readonly rollback?: boolean;
40
+ /**
41
+ * Reuse the assets with the given asset IDs
42
+ */
43
+ readonly reuseAssets?: string[];
44
+ /**
45
+ * Maximum number of simultaneous deployments (dependency permitting) to execute.
46
+ * The default is '1', which executes all deployments serially.
47
+ *
48
+ * @default 1
49
+ */
50
+ readonly concurrency?: number;
51
+ /**
52
+ * Whether to send logs from all CloudWatch log groups in the template
53
+ * to the IoHost
54
+ *
55
+ * @default - false
56
+ */
57
+ readonly traceLogs?: boolean;
58
+ }
59
+ /**
60
+ * Deploy options needed by the watch command.
61
+ * Intentionally not exported because these options are not
62
+ * meant to be public facing.
63
+ */
64
+ export interface ExtendedDeployOptions extends DeployOptions {
65
+ /**
66
+ * The extra string to append to the User-Agent header when performing AWS SDK calls.
67
+ *
68
+ * @default - nothing extra is appended to the User-Agent header
69
+ */
70
+ readonly extraUserAgent?: string;
71
+ /**
72
+ * Allows adding CloudWatch log groups to the log monitor via
73
+ * cloudWatchLogMonitor.setLogGroups();
74
+ *
75
+ * @default - not monitoring CloudWatch logs
76
+ */
77
+ readonly cloudWatchLogMonitor?: CloudWatchLogEventMonitor;
78
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkZXBsb3ktb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVwbG95bWVudE1ldGhvZCwgRGVwbG95T3B0aW9ucywgSG90c3dhcE1vZGUgfSBmcm9tICcuLic7XG5pbXBvcnQgdHlwZSB7IENsb3VkV2F0Y2hMb2dFdmVudE1vbml0b3IgfSBmcm9tICcuLi8uLi8uLi9hcGkvYXdzLWNkayc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrU2VsZWN0b3IgfSBmcm9tICcuLi8uLi8uLi9hcGkvY2xvdWQtYXNzZW1ibHknO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VEZXBsb3lPcHRpb25zIHtcbiAgLyoqXG4gICAqIENyaXRlcmlhIGZvciBzZWxlY3Rpbmcgc3RhY2tzIHRvIGRlcGxveVxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFsbCBzdGFja3NcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrcz86IFN0YWNrU2VsZWN0b3I7XG5cbiAgLyoqXG4gICAqIFJvbGUgdG8gcGFzcyB0byBDbG91ZEZvcm1hdGlvbiBmb3IgZGVwbG95bWVudFxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogQWx3YXlzIGRlcGxveSwgZXZlbiBpZiB0ZW1wbGF0ZXMgYXJlIGlkZW50aWNhbC5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICogQGRlcHJlY2F0ZWQgdGhlIG9wdGlvbnMgY3VycmVudGx5IGNvdmVycyBtdWx0aXBsZSBkaWZmZXJlbnQgZnVuY3Rpb25hbGl0aWVzIGFuZCB3aWxsIGJlIHNwbGl0IG91dCBpbiBmdXR1cmVcbiAgICovXG4gIHJlYWRvbmx5IGZvcmNlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogRGVwbG95bWVudCBtZXRob2RcbiAgICovXG4gIHJlYWRvbmx5IGRlcGxveW1lbnRNZXRob2Q/OiBEZXBsb3ltZW50TWV0aG9kO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHBlcmZvcm0gYSAnaG90c3dhcCcgZGVwbG95bWVudC5cbiAgICogQSAnaG90c3dhcCcgZGVwbG95bWVudCB3aWxsIGF0dGVtcHQgdG8gc2hvcnQtY2lyY3VpdCBDbG91ZEZvcm1hdGlvblxuICAgKiBhbmQgdXBkYXRlIHRoZSBhZmZlY3RlZCByZXNvdXJjZXMgbGlrZSBMYW1iZGEgZnVuY3Rpb25zIGRpcmVjdGx5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGhvdHN3YXBcbiAgICovXG4gIHJlYWRvbmx5IGhvdHN3YXA/OiBIb3Rzd2FwTW9kZTtcblxuICAvKipcbiAgICogUm9sbGJhY2sgZmFpbGVkIGRlcGxveW1lbnRzXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGxiYWNrPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogUmV1c2UgdGhlIGFzc2V0cyB3aXRoIHRoZSBnaXZlbiBhc3NldCBJRHNcbiAgICovXG4gIHJlYWRvbmx5IHJldXNlQXNzZXRzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIE1heGltdW0gbnVtYmVyIG9mIHNpbXVsdGFuZW91cyBkZXBsb3ltZW50cyAoZGVwZW5kZW5jeSBwZXJtaXR0aW5nKSB0byBleGVjdXRlLlxuICAgKiBUaGUgZGVmYXVsdCBpcyAnMScsIHdoaWNoIGV4ZWN1dGVzIGFsbCBkZXBsb3ltZW50cyBzZXJpYWxseS5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgcmVhZG9ubHkgY29uY3VycmVuY3k/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc2VuZCBsb2dzIGZyb20gYWxsIENsb3VkV2F0Y2ggbG9nIGdyb3VwcyBpbiB0aGUgdGVtcGxhdGVcbiAgICogdG8gdGhlIElvSG9zdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGZhbHNlXG4gICAqL1xuICByZWFkb25seSB0cmFjZUxvZ3M/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIERlcGxveSBvcHRpb25zIG5lZWRlZCBieSB0aGUgd2F0Y2ggY29tbWFuZC5cbiAqIEludGVudGlvbmFsbHkgbm90IGV4cG9ydGVkIGJlY2F1c2UgdGhlc2Ugb3B0aW9ucyBhcmUgbm90XG4gKiBtZWFudCB0byBiZSBwdWJsaWMgZmFjaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV4dGVuZGVkRGVwbG95T3B0aW9ucyBleHRlbmRzIERlcGxveU9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGV4dHJhIHN0cmluZyB0byBhcHBlbmQgdG8gdGhlIFVzZXItQWdlbnQgaGVhZGVyIHdoZW4gcGVyZm9ybWluZyBBV1MgU0RLIGNhbGxzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vdGhpbmcgZXh0cmEgaXMgYXBwZW5kZWQgdG8gdGhlIFVzZXItQWdlbnQgaGVhZGVyXG4gICAqL1xuICByZWFkb25seSBleHRyYVVzZXJBZ2VudD86IHN0cmluZztcblxuICAvKipcbiAgICogQWxsb3dzIGFkZGluZyBDbG91ZFdhdGNoIGxvZyBncm91cHMgdG8gdGhlIGxvZyBtb25pdG9yIHZpYVxuICAgKiBjbG91ZFdhdGNoTG9nTW9uaXRvci5zZXRMb2dHcm91cHMoKTtcbiAgICpcbiAgICogQGRlZmF1bHQgLSBub3QgbW9uaXRvcmluZyBDbG91ZFdhdGNoIGxvZ3NcbiAgICovXG4gIHJlYWRvbmx5IGNsb3VkV2F0Y2hMb2dNb25pdG9yPzogQ2xvdWRXYXRjaExvZ0V2ZW50TW9uaXRvcjtcbn1cbiJdfQ==
@@ -0,0 +1,15 @@
1
+ import { DeployOptions, HotswapProperties } from '..';
2
+ import { Deployments, HotswapPropertyOverrides, type WorkGraph } from '../../../api/aws-cdk';
3
+ export declare function buildParameterMap(parameters?: Map<string, string | undefined>): {
4
+ [name: string]: {
5
+ [name: string]: string | undefined;
6
+ };
7
+ };
8
+ /**
9
+ * Remove the asset publishing and building from the work graph for assets that are already in place
10
+ */
11
+ export declare function removePublishedAssets(graph: WorkGraph, deployments: Deployments, options: DeployOptions): Promise<void>;
12
+ /**
13
+ * Create the HotswapPropertyOverrides class out of the Interface exposed to users
14
+ */
15
+ export declare function createHotswapPropertyOverrides(hotswapProperties: HotswapProperties): HotswapPropertyOverrides;
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.buildParameterMap = buildParameterMap;
4
+ exports.removePublishedAssets = removePublishedAssets;
5
+ exports.createHotswapPropertyOverrides = createHotswapPropertyOverrides;
6
+ const aws_cdk_1 = require("../../../api/aws-cdk");
7
+ function buildParameterMap(parameters) {
8
+ const parameterMap = {};
9
+ parameterMap['*'] = {};
10
+ const entries = parameters?.entries() ?? [];
11
+ for (const [key, value] of entries) {
12
+ const [stack, parameter] = key.split(':', 2);
13
+ if (!parameter) {
14
+ parameterMap['*'][stack] = value;
15
+ }
16
+ else {
17
+ if (!parameterMap[stack]) {
18
+ parameterMap[stack] = {};
19
+ }
20
+ parameterMap[stack][parameter] = value;
21
+ }
22
+ }
23
+ return parameterMap;
24
+ }
25
+ /**
26
+ * Remove the asset publishing and building from the work graph for assets that are already in place
27
+ */
28
+ async function removePublishedAssets(graph, deployments, options) {
29
+ await graph.removeUnnecessaryAssets(assetNode => deployments.isSingleAssetPublished(assetNode.assetManifest, assetNode.asset, {
30
+ stack: assetNode.parentStack,
31
+ roleArn: options.roleArn,
32
+ stackName: assetNode.parentStack.stackName,
33
+ }));
34
+ }
35
+ /**
36
+ * Create the HotswapPropertyOverrides class out of the Interface exposed to users
37
+ */
38
+ function createHotswapPropertyOverrides(hotswapProperties) {
39
+ return new aws_cdk_1.HotswapPropertyOverrides(new aws_cdk_1.EcsHotswapProperties(hotswapProperties.ecs.minimumHealthyPercent, hotswapProperties.ecs.maximumHealthyPercent));
40
+ }
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSw4Q0FvQkM7QUFLRCxzREFNQztBQUtELHdFQUtDO0FBM0NELGtEQUFtSDtBQUVuSCxTQUFnQixpQkFBaUIsQ0FBQyxVQUE0QztJQUM1RSxNQUFNLFlBQVksR0FFZCxFQUFFLENBQUM7SUFDUCxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBRXZCLE1BQU0sT0FBTyxHQUFHLFVBQVUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDNUMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE9BQU8sRUFBRSxDQUFDO1FBQ25DLE1BQU0sQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFpQyxDQUFDO1FBQzdFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNmLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDbkMsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7Z0JBQ3pCLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7WUFDM0IsQ0FBQztZQUNELFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDekMsQ0FBQztJQUNILENBQUM7SUFFRCxPQUFPLFlBQVksQ0FBQztBQUN0QixDQUFDO0FBRUQ7O0dBRUc7QUFDSSxLQUFLLFVBQVUscUJBQXFCLENBQUMsS0FBZ0IsRUFBRSxXQUF3QixFQUFFLE9BQXNCO0lBQzVHLE1BQU0sS0FBSyxDQUFDLHVCQUF1QixDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLHNCQUFzQixDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRTtRQUM1SCxLQUFLLEVBQUUsU0FBUyxDQUFDLFdBQVc7UUFDNUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1FBQ3hCLFNBQVMsRUFBRSxTQUFTLENBQUMsV0FBVyxDQUFDLFNBQVM7S0FDM0MsQ0FBQyxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiw4QkFBOEIsQ0FBQyxpQkFBb0M7SUFDakYsT0FBTyxJQUFJLGtDQUF3QixDQUFDLElBQUksOEJBQW9CLENBQzFELGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsRUFDM0MsaUJBQWlCLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUM1QyxDQUFDLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVwbG95T3B0aW9ucywgSG90c3dhcFByb3BlcnRpZXMgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBEZXBsb3ltZW50cywgRWNzSG90c3dhcFByb3BlcnRpZXMsIEhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlcywgdHlwZSBXb3JrR3JhcGggfSBmcm9tICcuLi8uLi8uLi9hcGkvYXdzLWNkayc7XG5cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFBhcmFtZXRlck1hcChwYXJhbWV0ZXJzPzogTWFwPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPik6IHsgW25hbWU6IHN0cmluZ106IHsgW25hbWU6IHN0cmluZ106IHN0cmluZyB8IHVuZGVmaW5lZCB9IH0ge1xuICBjb25zdCBwYXJhbWV0ZXJNYXA6IHtcbiAgICBbbmFtZTogc3RyaW5nXTogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG4gIH0gPSB7fTtcbiAgcGFyYW1ldGVyTWFwWycqJ10gPSB7fTtcblxuICBjb25zdCBlbnRyaWVzID0gcGFyYW1ldGVycz8uZW50cmllcygpID8/IFtdO1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBlbnRyaWVzKSB7XG4gICAgY29uc3QgW3N0YWNrLCBwYXJhbWV0ZXJdID0ga2V5LnNwbGl0KCc6JywgMikgYXMgW3N0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkXTtcbiAgICBpZiAoIXBhcmFtZXRlcikge1xuICAgICAgcGFyYW1ldGVyTWFwWycqJ11bc3RhY2tdID0gdmFsdWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICghcGFyYW1ldGVyTWFwW3N0YWNrXSkge1xuICAgICAgICBwYXJhbWV0ZXJNYXBbc3RhY2tdID0ge307XG4gICAgICB9XG4gICAgICBwYXJhbWV0ZXJNYXBbc3RhY2tdW3BhcmFtZXRlcl0gPSB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gcGFyYW1ldGVyTWFwO1xufVxuXG4vKipcbiAqIFJlbW92ZSB0aGUgYXNzZXQgcHVibGlzaGluZyBhbmQgYnVpbGRpbmcgZnJvbSB0aGUgd29yayBncmFwaCBmb3IgYXNzZXRzIHRoYXQgYXJlIGFscmVhZHkgaW4gcGxhY2VcbiAqL1xuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJlbW92ZVB1Ymxpc2hlZEFzc2V0cyhncmFwaDogV29ya0dyYXBoLCBkZXBsb3ltZW50czogRGVwbG95bWVudHMsIG9wdGlvbnM6IERlcGxveU9wdGlvbnMpIHtcbiAgYXdhaXQgZ3JhcGgucmVtb3ZlVW5uZWNlc3NhcnlBc3NldHMoYXNzZXROb2RlID0+IGRlcGxveW1lbnRzLmlzU2luZ2xlQXNzZXRQdWJsaXNoZWQoYXNzZXROb2RlLmFzc2V0TWFuaWZlc3QsIGFzc2V0Tm9kZS5hc3NldCwge1xuICAgIHN0YWNrOiBhc3NldE5vZGUucGFyZW50U3RhY2ssXG4gICAgcm9sZUFybjogb3B0aW9ucy5yb2xlQXJuLFxuICAgIHN0YWNrTmFtZTogYXNzZXROb2RlLnBhcmVudFN0YWNrLnN0YWNrTmFtZSxcbiAgfSkpO1xufVxuXG4vKipcbiAqIENyZWF0ZSB0aGUgSG90c3dhcFByb3BlcnR5T3ZlcnJpZGVzIGNsYXNzIG91dCBvZiB0aGUgSW50ZXJmYWNlIGV4cG9zZWQgdG8gdXNlcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlcyhob3Rzd2FwUHJvcGVydGllczogSG90c3dhcFByb3BlcnRpZXMpOiBIb3Rzd2FwUHJvcGVydHlPdmVycmlkZXMge1xuICByZXR1cm4gbmV3IEhvdHN3YXBQcm9wZXJ0eU92ZXJyaWRlcyhuZXcgRWNzSG90c3dhcFByb3BlcnRpZXMoXG4gICAgaG90c3dhcFByb3BlcnRpZXMuZWNzLm1pbmltdW1IZWFsdGh5UGVyY2VudCxcbiAgICBob3Rzd2FwUHJvcGVydGllcy5lY3MubWF4aW11bUhlYWx0aHlQZXJjZW50LFxuICApKTtcbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './deploy-options';
2
+ export * from './helpers';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./deploy-options"), exports);
18
+ __exportStar(require("./helpers"), exports);
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbURBQWlDO0FBQ2pDLDRDQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZGVwbG95LW9wdGlvbnMnO1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzJztcblxuIl19
@@ -0,0 +1,17 @@
1
+ import type { StackSelector } from '../../api/cloud-assembly';
2
+ export interface DestroyOptions {
3
+ /**
4
+ * Criteria for selecting stacks to deploy
5
+ */
6
+ readonly stacks: StackSelector;
7
+ /**
8
+ * The arn of the IAM role to use
9
+ */
10
+ readonly roleArn?: string;
11
+ /**
12
+ * Change stack watcher output to CI mode.
13
+ *
14
+ * @deprecated Implement in IoHost instead
15
+ */
16
+ readonly ci?: boolean;
17
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdG9yIH0gZnJvbSAnLi4vLi4vYXBpL2Nsb3VkLWFzc2VtYmx5JztcblxuZXhwb3J0IGludGVyZmFjZSBEZXN0cm95T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBDcml0ZXJpYSBmb3Igc2VsZWN0aW5nIHN0YWNrcyB0byBkZXBsb3lcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrczogU3RhY2tTZWxlY3RvcjtcblxuICAvKipcbiAgICogVGhlIGFybiBvZiB0aGUgSUFNIHJvbGUgdG8gdXNlXG4gICAqL1xuICByZWFkb25seSByb2xlQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDaGFuZ2Ugc3RhY2sgd2F0Y2hlciBvdXRwdXQgdG8gQ0kgbW9kZS5cbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgSW1wbGVtZW50IGluIElvSG9zdCBpbnN0ZWFkXG4gICAqL1xuICByZWFkb25seSBjaT86IGJvb2xlYW47XG59XG4iXX0=
@@ -0,0 +1,83 @@
1
+ import type { StackSelector } from '../../api/cloud-assembly';
2
+ export interface CloudFormationDiffOptions {
3
+ /**
4
+ * Whether to run the diff against the template after the CloudFormation Transforms inside it have been executed
5
+ * (as opposed to the original template, the default, which contains the unprocessed Transforms).
6
+ *
7
+ * @default false
8
+ */
9
+ readonly compareAgainstProcessedTemplate?: boolean;
10
+ }
11
+ export interface ChangeSetDiffOptions extends CloudFormationDiffOptions {
12
+ /**
13
+ * Enable falling back to template-based diff in case creating the changeset is not possible or results in an error.
14
+ *
15
+ * Should be used for stacks containing nested stacks or when change set permissions aren't available.
16
+ *
17
+ * @default true
18
+ */
19
+ readonly fallbackToTemplate?: boolean;
20
+ /**
21
+ * Additional parameters for CloudFormation when creating a diff change set
22
+ *
23
+ * @default {}
24
+ */
25
+ readonly parameters?: {
26
+ [name: string]: string | undefined;
27
+ };
28
+ }
29
+ export declare class DiffMethod {
30
+ readonly method: 'change-set' | 'template-only' | 'local-file';
31
+ readonly options: ChangeSetDiffOptions | CloudFormationDiffOptions | {
32
+ path: string;
33
+ };
34
+ /**
35
+ * Use a changeset to compute the diff.
36
+ *
37
+ * This will create, analyze, and subsequently delete a changeset against the CloudFormation stack.
38
+ */
39
+ static ChangeSet(options?: ChangeSetDiffOptions): DiffMethod;
40
+ static TemplateOnly(options?: CloudFormationDiffOptions): DiffMethod;
41
+ static LocalFile(path: string): DiffMethod;
42
+ private constructor();
43
+ }
44
+ export interface DiffOptions {
45
+ /**
46
+ * Select the stacks
47
+ */
48
+ readonly stacks: StackSelector;
49
+ /**
50
+ * The mode to create a stack diff.
51
+ *
52
+ * Use changeset diff for the highest fidelity, including analyze resource replacements.
53
+ * In this mode, diff will use the deploy role instead of the lookup role.
54
+ *
55
+ * Use template-only diff for a faster, less accurate diff that doesn't require
56
+ * permissions to create a change-set.
57
+ *
58
+ * Use local-template diff for a fast, local-only diff that doesn't require
59
+ * any permissions or internet access.
60
+ *
61
+ * @default DiffMode.ChangeSet
62
+ */
63
+ readonly method: DiffMethod;
64
+ /**
65
+ * Strict diff mode
66
+ * When enabled, this will not filter out AWS::CDK::Metadata resources, mangled non-ASCII characters, or the CheckBootstrapVersionRule.
67
+ *
68
+ * @default false
69
+ */
70
+ readonly strict?: boolean;
71
+ /**
72
+ * How many lines of context to show in the diff
73
+ *
74
+ * @default 3
75
+ */
76
+ readonly contextLines?: number;
77
+ /**
78
+ * Only include broadened security changes in the diff
79
+ *
80
+ * @default false
81
+ */
82
+ readonly securityOnly?: boolean;
83
+ }
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DiffMethod = void 0;
4
+ class DiffMethod {
5
+ method;
6
+ options;
7
+ /**
8
+ * Use a changeset to compute the diff.
9
+ *
10
+ * This will create, analyze, and subsequently delete a changeset against the CloudFormation stack.
11
+ */
12
+ static ChangeSet(options = {}) {
13
+ return new class extends DiffMethod {
14
+ options;
15
+ constructor(opts) {
16
+ super('change-set', opts);
17
+ this.options = opts;
18
+ }
19
+ }(options);
20
+ }
21
+ static TemplateOnly(options = {}) {
22
+ return new class extends DiffMethod {
23
+ options;
24
+ constructor(opts) {
25
+ super('template-only', opts);
26
+ this.options = opts;
27
+ }
28
+ }(options);
29
+ }
30
+ static LocalFile(path) {
31
+ return new class extends DiffMethod {
32
+ options;
33
+ constructor(opts) {
34
+ super('local-file', opts);
35
+ this.options = opts;
36
+ }
37
+ }({ path });
38
+ }
39
+ constructor(method, options) {
40
+ this.method = method;
41
+ this.options = options;
42
+ }
43
+ }
44
+ exports.DiffMethod = DiffMethod;
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE4QkEsTUFBYSxVQUFVO0lBcUNIO0lBQ0E7SUFyQ2xCOzs7O09BSUc7SUFDSSxNQUFNLENBQUMsU0FBUyxDQUFDLFVBQWdDLEVBQUU7UUFDeEQsT0FBTyxJQUFJLEtBQU0sU0FBUSxVQUFVO1lBQ1IsT0FBTyxDQUF1QjtZQUN2RCxZQUFtQixJQUEwQjtnQkFDM0MsS0FBSyxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUMsQ0FBQztnQkFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDdEIsQ0FBQztTQUNGLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDYixDQUFDO0lBRU0sTUFBTSxDQUFDLFlBQVksQ0FBQyxVQUFxQyxFQUFFO1FBQ2hFLE9BQU8sSUFBSSxLQUFNLFNBQVEsVUFBVTtZQUNSLE9BQU8sQ0FBNEI7WUFDNUQsWUFBbUIsSUFBK0I7Z0JBQ2hELEtBQUssQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBWTtRQUNsQyxPQUFPLElBQUksS0FBTSxTQUFRLFVBQVU7WUFDUixPQUFPLENBQW1CO1lBQ25ELFlBQW1CLElBQXNCO2dCQUN2QyxLQUFLLENBQUMsWUFBWSxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztZQUN0QixDQUFDO1NBQ0YsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDZCxDQUFDO0lBRUQsWUFDa0IsTUFBcUQsRUFDckQsT0FBNEU7UUFENUUsV0FBTSxHQUFOLE1BQU0sQ0FBK0M7UUFDckQsWUFBTyxHQUFQLE9BQU8sQ0FBcUU7SUFFOUYsQ0FBQztDQUNGO0FBekNELGdDQXlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3RhY2tTZWxlY3RvciB9IGZyb20gJy4uLy4uL2FwaS9jbG91ZC1hc3NlbWJseSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRGb3JtYXRpb25EaWZmT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJ1biB0aGUgZGlmZiBhZ2FpbnN0IHRoZSB0ZW1wbGF0ZSBhZnRlciB0aGUgQ2xvdWRGb3JtYXRpb24gVHJhbnNmb3JtcyBpbnNpZGUgaXQgaGF2ZSBiZWVuIGV4ZWN1dGVkXG4gICAqIChhcyBvcHBvc2VkIHRvIHRoZSBvcmlnaW5hbCB0ZW1wbGF0ZSwgdGhlIGRlZmF1bHQsIHdoaWNoIGNvbnRhaW5zIHRoZSB1bnByb2Nlc3NlZCBUcmFuc2Zvcm1zKS5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNvbXBhcmVBZ2FpbnN0UHJvY2Vzc2VkVGVtcGxhdGU/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENoYW5nZVNldERpZmZPcHRpb25zIGV4dGVuZHMgQ2xvdWRGb3JtYXRpb25EaWZmT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBFbmFibGUgZmFsbGluZyBiYWNrIHRvIHRlbXBsYXRlLWJhc2VkIGRpZmYgaW4gY2FzZSBjcmVhdGluZyB0aGUgY2hhbmdlc2V0IGlzIG5vdCBwb3NzaWJsZSBvciByZXN1bHRzIGluIGFuIGVycm9yLlxuICAgKlxuICAgKiBTaG91bGQgYmUgdXNlZCBmb3Igc3RhY2tzIGNvbnRhaW5pbmcgbmVzdGVkIHN0YWNrcyBvciB3aGVuIGNoYW5nZSBzZXQgcGVybWlzc2lvbnMgYXJlbid0IGF2YWlsYWJsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZmFsbGJhY2tUb1RlbXBsYXRlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWRkaXRpb25hbCBwYXJhbWV0ZXJzIGZvciBDbG91ZEZvcm1hdGlvbiB3aGVuIGNyZWF0aW5nIGEgZGlmZiBjaGFuZ2Ugc2V0XG4gICAqXG4gICAqIEBkZWZhdWx0IHt9XG4gICAqL1xuICByZWFkb25seSBwYXJhbWV0ZXJzPzogeyBbbmFtZTogc3RyaW5nXTogc3RyaW5nIHwgdW5kZWZpbmVkIH07XG59XG5cbmV4cG9ydCBjbGFzcyBEaWZmTWV0aG9kIHtcbiAgLyoqXG4gICAqIFVzZSBhIGNoYW5nZXNldCB0byBjb21wdXRlIHRoZSBkaWZmLlxuICAgKlxuICAgKiBUaGlzIHdpbGwgY3JlYXRlLCBhbmFseXplLCBhbmQgc3Vic2VxdWVudGx5IGRlbGV0ZSBhIGNoYW5nZXNldCBhZ2FpbnN0IHRoZSBDbG91ZEZvcm1hdGlvbiBzdGFjay5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgQ2hhbmdlU2V0KG9wdGlvbnM6IENoYW5nZVNldERpZmZPcHRpb25zID0ge30pOiBEaWZmTWV0aG9kIHtcbiAgICByZXR1cm4gbmV3IGNsYXNzIGV4dGVuZHMgRGlmZk1ldGhvZCB7XG4gICAgICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgb3B0aW9uczogQ2hhbmdlU2V0RGlmZk9wdGlvbnM7XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogQ2hhbmdlU2V0RGlmZk9wdGlvbnMpIHtcbiAgICAgICAgc3VwZXIoJ2NoYW5nZS1zZXQnLCBvcHRzKTtcbiAgICAgICAgdGhpcy5vcHRpb25zID0gb3B0cztcbiAgICAgIH1cbiAgICB9KG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBUZW1wbGF0ZU9ubHkob3B0aW9uczogQ2xvdWRGb3JtYXRpb25EaWZmT3B0aW9ucyA9IHt9KTogRGlmZk1ldGhvZCB7XG4gICAgcmV0dXJuIG5ldyBjbGFzcyBleHRlbmRzIERpZmZNZXRob2Qge1xuICAgICAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IG9wdGlvbnM6IENsb3VkRm9ybWF0aW9uRGlmZk9wdGlvbnM7XG4gICAgICBwdWJsaWMgY29uc3RydWN0b3Iob3B0czogQ2xvdWRGb3JtYXRpb25EaWZmT3B0aW9ucykge1xuICAgICAgICBzdXBlcigndGVtcGxhdGUtb25seScsIG9wdHMpO1xuICAgICAgICB0aGlzLm9wdGlvbnMgPSBvcHRzO1xuICAgICAgfVxuICAgIH0ob3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIExvY2FsRmlsZShwYXRoOiBzdHJpbmcpOiBEaWZmTWV0aG9kIHtcbiAgICByZXR1cm4gbmV3IGNsYXNzIGV4dGVuZHMgRGlmZk1ldGhvZCB7XG4gICAgICBwdWJsaWMgb3ZlcnJpZGUgcmVhZG9ubHkgb3B0aW9uczogeyBwYXRoOiBzdHJpbmcgfTtcbiAgICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRzOiB7IHBhdGg6IHN0cmluZyB9KSB7XG4gICAgICAgIHN1cGVyKCdsb2NhbC1maWxlJywgb3B0cyk7XG4gICAgICAgIHRoaXMub3B0aW9ucyA9IG9wdHM7XG4gICAgICB9XG4gICAgfSh7IHBhdGggfSk7XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyByZWFkb25seSBtZXRob2Q6ICdjaGFuZ2Utc2V0JyB8ICd0ZW1wbGF0ZS1vbmx5JyB8ICdsb2NhbC1maWxlJyxcbiAgICBwdWJsaWMgcmVhZG9ubHkgb3B0aW9uczogQ2hhbmdlU2V0RGlmZk9wdGlvbnMgfCBDbG91ZEZvcm1hdGlvbkRpZmZPcHRpb25zIHwgeyBwYXRoOiBzdHJpbmcgfSxcbiAgKSB7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBEaWZmT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTZWxlY3QgdGhlIHN0YWNrc1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tzOiBTdGFja1NlbGVjdG9yO1xuXG4gIC8qKlxuICAgKiBUaGUgbW9kZSB0byBjcmVhdGUgYSBzdGFjayBkaWZmLlxuICAgKlxuICAgKiBVc2UgY2hhbmdlc2V0IGRpZmYgZm9yIHRoZSBoaWdoZXN0IGZpZGVsaXR5LCBpbmNsdWRpbmcgYW5hbHl6ZSByZXNvdXJjZSByZXBsYWNlbWVudHMuXG4gICAqIEluIHRoaXMgbW9kZSwgZGlmZiB3aWxsIHVzZSB0aGUgZGVwbG95IHJvbGUgaW5zdGVhZCBvZiB0aGUgbG9va3VwIHJvbGUuXG4gICAqXG4gICAqIFVzZSB0ZW1wbGF0ZS1vbmx5IGRpZmYgZm9yIGEgZmFzdGVyLCBsZXNzIGFjY3VyYXRlIGRpZmYgdGhhdCBkb2Vzbid0IHJlcXVpcmVcbiAgICogcGVybWlzc2lvbnMgdG8gY3JlYXRlIGEgY2hhbmdlLXNldC5cbiAgICpcbiAgICogVXNlIGxvY2FsLXRlbXBsYXRlIGRpZmYgZm9yIGEgZmFzdCwgbG9jYWwtb25seSBkaWZmIHRoYXQgZG9lc24ndCByZXF1aXJlXG4gICAqIGFueSBwZXJtaXNzaW9ucyBvciBpbnRlcm5ldCBhY2Nlc3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IERpZmZNb2RlLkNoYW5nZVNldFxuICAgKi9cbiAgcmVhZG9ubHkgbWV0aG9kOiBEaWZmTWV0aG9kO1xuXG4gIC8qKlxuICAgKiBTdHJpY3QgZGlmZiBtb2RlXG4gICAqIFdoZW4gZW5hYmxlZCwgdGhpcyB3aWxsIG5vdCBmaWx0ZXIgb3V0IEFXUzo6Q0RLOjpNZXRhZGF0YSByZXNvdXJjZXMsIG1hbmdsZWQgbm9uLUFTQ0lJIGNoYXJhY3RlcnMsIG9yIHRoZSBDaGVja0Jvb3RzdHJhcFZlcnNpb25SdWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc3RyaWN0PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogSG93IG1hbnkgbGluZXMgb2YgY29udGV4dCB0byBzaG93IGluIHRoZSBkaWZmXG4gICAqXG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRleHRMaW5lcz86IG51bWJlcjtcblxuICAvKipcbiAgICogT25seSBpbmNsdWRlIGJyb2FkZW5lZCBzZWN1cml0eSBjaGFuZ2VzIGluIHRoZSBkaWZmXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eU9ubHk/OiBib29sZWFuO1xufVxuIl19
@@ -0,0 +1,7 @@
1
+ import { DescribeChangeSetOutput } from '@aws-cdk/cloudformation-diff';
2
+ import * as cxapi from '@aws-cdk/cx-api';
3
+ import { RequireApproval } from '../../deploy';
4
+ /**
5
+ * Return whether the diff has security-impacting changes that need confirmation
6
+ */
7
+ export declare function diffRequiresApproval(oldTemplate: any, newTemplate: cxapi.CloudFormationStackArtifact, requireApproval: RequireApproval, changeSet?: DescribeChangeSetOutput): boolean;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.diffRequiresApproval = diffRequiresApproval;
4
+ const cloudformation_diff_1 = require("@aws-cdk/cloudformation-diff");
5
+ const errors_1 = require("../../../api/errors");
6
+ const deploy_1 = require("../../deploy");
7
+ /**
8
+ * Return whether the diff has security-impacting changes that need confirmation
9
+ */
10
+ function diffRequiresApproval(oldTemplate, newTemplate, requireApproval, changeSet) {
11
+ // @todo return or print the full diff.
12
+ const diff = (0, cloudformation_diff_1.fullDiff)(oldTemplate, newTemplate.template, changeSet);
13
+ switch (requireApproval) {
14
+ case deploy_1.RequireApproval.NEVER: return false;
15
+ case deploy_1.RequireApproval.ANY_CHANGE: return diff.permissionsAnyChanges;
16
+ case deploy_1.RequireApproval.BROADENING: return diff.permissionsBroadened;
17
+ default: throw new errors_1.ToolkitError(`Unrecognized approval level: ${requireApproval}`);
18
+ }
19
+ }
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhlbHBlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxvREFlQztBQXZCRCxzRUFBaUY7QUFFakYsZ0RBQW1EO0FBQ25ELHlDQUErQztBQUUvQzs7R0FFRztBQUNILFNBQWdCLG9CQUFvQixDQUNsQyxXQUFnQixFQUNoQixXQUE4QyxFQUM5QyxlQUFnQyxFQUNoQyxTQUFtQztJQUVuQyx1Q0FBdUM7SUFDdkMsTUFBTSxJQUFJLEdBQUcsSUFBQSw4QkFBUSxFQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBRXBFLFFBQVEsZUFBZSxFQUFFLENBQUM7UUFDeEIsS0FBSyx3QkFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sS0FBSyxDQUFDO1FBQ3pDLEtBQUssd0JBQWUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztRQUNuRSxLQUFLLHdCQUFlLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7UUFDbEUsT0FBTyxDQUFDLENBQUMsTUFBTSxJQUFJLHFCQUFZLENBQUMsZ0NBQWdDLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFDckYsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXNjcmliZUNoYW5nZVNldE91dHB1dCwgZnVsbERpZmYgfSBmcm9tICdAYXdzLWNkay9jbG91ZGZvcm1hdGlvbi1kaWZmJztcbmltcG9ydCAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi8uLi9hcGkvZXJyb3JzJztcbmltcG9ydCB7IFJlcXVpcmVBcHByb3ZhbCB9IGZyb20gJy4uLy4uL2RlcGxveSc7XG5cbi8qKlxuICogUmV0dXJuIHdoZXRoZXIgdGhlIGRpZmYgaGFzIHNlY3VyaXR5LWltcGFjdGluZyBjaGFuZ2VzIHRoYXQgbmVlZCBjb25maXJtYXRpb25cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRpZmZSZXF1aXJlc0FwcHJvdmFsKFxuICBvbGRUZW1wbGF0ZTogYW55LFxuICBuZXdUZW1wbGF0ZTogY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0LFxuICByZXF1aXJlQXBwcm92YWw6IFJlcXVpcmVBcHByb3ZhbCxcbiAgY2hhbmdlU2V0PzogRGVzY3JpYmVDaGFuZ2VTZXRPdXRwdXQsXG4pOiBib29sZWFuIHtcbiAgLy8gQHRvZG8gcmV0dXJuIG9yIHByaW50IHRoZSBmdWxsIGRpZmYuXG4gIGNvbnN0IGRpZmYgPSBmdWxsRGlmZihvbGRUZW1wbGF0ZSwgbmV3VGVtcGxhdGUudGVtcGxhdGUsIGNoYW5nZVNldCk7XG5cbiAgc3dpdGNoIChyZXF1aXJlQXBwcm92YWwpIHtcbiAgICBjYXNlIFJlcXVpcmVBcHByb3ZhbC5ORVZFUjogcmV0dXJuIGZhbHNlO1xuICAgIGNhc2UgUmVxdWlyZUFwcHJvdmFsLkFOWV9DSEFOR0U6IHJldHVybiBkaWZmLnBlcm1pc3Npb25zQW55Q2hhbmdlcztcbiAgICBjYXNlIFJlcXVpcmVBcHByb3ZhbC5CUk9BREVOSU5HOiByZXR1cm4gZGlmZi5wZXJtaXNzaW9uc0Jyb2FkZW5lZDtcbiAgICBkZWZhdWx0OiB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGBVbnJlY29nbml6ZWQgYXBwcm92YWwgbGV2ZWw6ICR7cmVxdWlyZUFwcHJvdmFsfWApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1 @@
1
+ export * from './helpers';