aws-cdk 2.1136.0 → 2.1137.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build-info.json +2 -2
- package/lib/cli/cdk-toolkit.js +2 -2
- package/lib/index.js +428 -413
- package/lib/init-templates/.init-version.json +1 -1
- package/package.json +4 -4
package/lib/index.js
CHANGED
|
@@ -3695,7 +3695,7 @@ var require_semver2 = __commonJS({
|
|
|
3695
3695
|
// ../@aws-cdk/cloud-assembly-schema/cli-version.json
|
|
3696
3696
|
var require_cli_version = __commonJS({
|
|
3697
3697
|
"../@aws-cdk/cloud-assembly-schema/cli-version.json"(exports2, module2) {
|
|
3698
|
-
module2.exports = { version: "2.
|
|
3698
|
+
module2.exports = { version: "2.1137.0" };
|
|
3699
3699
|
}
|
|
3700
3700
|
});
|
|
3701
3701
|
|
|
@@ -95072,28 +95072,30 @@ async function createChangeSetAndCleanup(ioHelper, options) {
|
|
|
95072
95072
|
Capabilities: ["CAPABILITY_IAM", "CAPABILITY_NAMED_IAM", "CAPABILITY_AUTO_EXPAND"]
|
|
95073
95073
|
});
|
|
95074
95074
|
await ioHelper.defaults.debug((0, import_node_util2.format)("Initiated creation of changeset: %s; waiting for it to finish creating...", changeSet.Id));
|
|
95075
|
-
const
|
|
95076
|
-
|
|
95077
|
-
|
|
95078
|
-
|
|
95079
|
-
|
|
95080
|
-
|
|
95081
|
-
|
|
95082
|
-
|
|
95083
|
-
|
|
95084
|
-
|
|
95085
|
-
ioHelper,
|
|
95086
|
-
changeSet.Id ?? options.changeSetName,
|
|
95087
|
-
changeSet.StackId ?? options.stack.stackName
|
|
95088
|
-
);
|
|
95089
|
-
if (!options.exists) {
|
|
95090
|
-
await ioHelper.defaults.debug((0, import_node_util2.format)("Deleting empty stack created by diff changeset: %s", changeSet.StackId ?? options.stack.stackName));
|
|
95091
|
-
await options.cfn.deleteStack({
|
|
95092
|
-
StackName: changeSet.StackId ?? options.stack.stackName,
|
|
95093
|
-
ClientRequestToken: (0, import_node_crypto9.randomUUID)()
|
|
95075
|
+
const changeSetId = changeSet.Id ?? options.changeSetName;
|
|
95076
|
+
const stackId = changeSet.StackId ?? options.stack.stackName;
|
|
95077
|
+
try {
|
|
95078
|
+
return await new ChangeSetDescriber({
|
|
95079
|
+
cfn: options.cfn,
|
|
95080
|
+
ioHelper,
|
|
95081
|
+
stackNameOrArn: stackId,
|
|
95082
|
+
changeSetNameOrArn: changeSetId
|
|
95083
|
+
}).waitAndThrowOnProblem({
|
|
95084
|
+
diagnoser: options.diagnoser
|
|
95094
95085
|
});
|
|
95086
|
+
} catch (e6) {
|
|
95087
|
+
await ioHelper.defaults.warn((0, import_node_util2.format)("Change set %s failed: %s", changeSetId, e6));
|
|
95088
|
+
throw e6;
|
|
95089
|
+
} finally {
|
|
95090
|
+
await cleanupOldChangeset(options.cfn, ioHelper, changeSetId, stackId);
|
|
95091
|
+
if (!options.exists) {
|
|
95092
|
+
await ioHelper.defaults.debug((0, import_node_util2.format)("Deleting empty stack created by diff changeset: %s", stackId));
|
|
95093
|
+
await options.cfn.deleteStack({
|
|
95094
|
+
StackName: stackId,
|
|
95095
|
+
ClientRequestToken: (0, import_node_crypto9.randomUUID)()
|
|
95096
|
+
});
|
|
95097
|
+
}
|
|
95095
95098
|
}
|
|
95096
|
-
return createdChangeSet;
|
|
95097
95099
|
}
|
|
95098
95100
|
async function createValidationChangeSet(ioHelper, options) {
|
|
95099
95101
|
const { cfn, bodyParameter, exists, stackExistedBefore, executionRoleArn, diagnoser } = await prepareChangeSetEnv(ioHelper, options);
|
|
@@ -95373,306 +95375,6 @@ var init_checks = __esm({
|
|
|
95373
95375
|
}
|
|
95374
95376
|
});
|
|
95375
95377
|
|
|
95376
|
-
// ../@aws-cdk/toolkit-lib/lib/api/deployments/assets.ts
|
|
95377
|
-
async function addMetadataAssetsToManifest(ioHelper, stack, assetManifest, envResources, reuse) {
|
|
95378
|
-
reuse = reuse || [];
|
|
95379
|
-
const assets = stack.assets;
|
|
95380
|
-
if (assets.length === 0) {
|
|
95381
|
-
return {};
|
|
95382
|
-
}
|
|
95383
|
-
const toolkitInfo = await envResources.lookupToolkit();
|
|
95384
|
-
if (!toolkitInfo.found) {
|
|
95385
|
-
throw new ToolkitError("BootstrapStackRequired", `This stack uses assets, so the toolkit stack must be deployed to the environment (Run "${import_chalk3.default.blue("cdk bootstrap " + stack.environment.name)}")`);
|
|
95386
|
-
}
|
|
95387
|
-
const params = {};
|
|
95388
|
-
for (const asset of assets) {
|
|
95389
|
-
const reuseAsset = reuse.indexOf(asset.id) > -1;
|
|
95390
|
-
if (reuseAsset) {
|
|
95391
|
-
await ioHelper.defaults.debug(`Reusing asset ${asset.id}: ${JSON.stringify(asset)}`);
|
|
95392
|
-
continue;
|
|
95393
|
-
}
|
|
95394
|
-
await ioHelper.defaults.debug(`Preparing asset ${asset.id}: ${JSON.stringify(asset)}`);
|
|
95395
|
-
if (!stack.assembly) {
|
|
95396
|
-
throw new ToolkitError("AssemblyRequired", "Unexpected: stack assembly is required in order to find assets in assembly directory");
|
|
95397
|
-
}
|
|
95398
|
-
Object.assign(params, await prepareAsset(ioHelper, asset, assetManifest, envResources, toolkitInfo));
|
|
95399
|
-
}
|
|
95400
|
-
return params;
|
|
95401
|
-
}
|
|
95402
|
-
async function prepareAsset(ioHelper, asset, assetManifest, envResources, toolkitInfo) {
|
|
95403
|
-
switch (asset.packaging) {
|
|
95404
|
-
case "zip":
|
|
95405
|
-
case "file":
|
|
95406
|
-
return prepareFileAsset(
|
|
95407
|
-
ioHelper,
|
|
95408
|
-
asset,
|
|
95409
|
-
assetManifest,
|
|
95410
|
-
toolkitInfo,
|
|
95411
|
-
asset.packaging === "zip" ? cxschema8.FileAssetPackaging.ZIP_DIRECTORY : cxschema8.FileAssetPackaging.FILE
|
|
95412
|
-
);
|
|
95413
|
-
case "container-image":
|
|
95414
|
-
return prepareDockerImageAsset(asset, assetManifest, envResources);
|
|
95415
|
-
default:
|
|
95416
|
-
throw new ToolkitError("UnsupportedPackaging", `Unsupported packaging type: ${asset.packaging}. You might need to upgrade your aws-cdk toolkit to support this asset type.`);
|
|
95417
|
-
}
|
|
95418
|
-
}
|
|
95419
|
-
async function prepareFileAsset(ioHelper, asset, assetManifest, toolkitInfo, packaging) {
|
|
95420
|
-
const extension = packaging === cxschema8.FileAssetPackaging.ZIP_DIRECTORY ? ".zip" : path18.extname(asset.path);
|
|
95421
|
-
const baseName = `${asset.sourceHash}${extension}`;
|
|
95422
|
-
const s3Prefix = asset.id === asset.sourceHash ? "assets/" : `assets/${asset.id}/`;
|
|
95423
|
-
const key = `${s3Prefix}${baseName}`;
|
|
95424
|
-
const s3url = `s3://${toolkitInfo.bucketName}/${key}`;
|
|
95425
|
-
await ioHelper.defaults.debug(`Storing asset ${asset.path} at ${s3url}`);
|
|
95426
|
-
assetManifest.addFileAsset(asset.sourceHash, {
|
|
95427
|
-
path: asset.path,
|
|
95428
|
-
packaging
|
|
95429
|
-
}, {
|
|
95430
|
-
bucketName: toolkitInfo.bucketName,
|
|
95431
|
-
objectKey: key
|
|
95432
|
-
});
|
|
95433
|
-
return {
|
|
95434
|
-
[asset.s3BucketParameter]: toolkitInfo.bucketName,
|
|
95435
|
-
[asset.s3KeyParameter]: `${s3Prefix}${cxapi3.ASSET_PREFIX_SEPARATOR}${baseName}`,
|
|
95436
|
-
[asset.artifactHashParameter]: asset.sourceHash
|
|
95437
|
-
};
|
|
95438
|
-
}
|
|
95439
|
-
async function prepareDockerImageAsset(asset, assetManifest, envResources) {
|
|
95440
|
-
if (!asset.imageNameParameter && (!asset.repositoryName || !asset.imageTag)) {
|
|
95441
|
-
throw new ToolkitError("InvalidDockerAssetConfig", 'Invalid Docker image asset configuration: "repositoryName" and "imageTag" are required when "imageNameParameter" is left out');
|
|
95442
|
-
}
|
|
95443
|
-
const repositoryName = asset.repositoryName ?? "cdk/" + asset.id.replace(/[:/]/g, "-").toLowerCase();
|
|
95444
|
-
const { repositoryUri: repositoryUri2 } = await envResources.prepareEcrRepository(repositoryName);
|
|
95445
|
-
const imageTag = asset.imageTag ?? asset.sourceHash;
|
|
95446
|
-
assetManifest.addDockerImageAsset(asset.sourceHash, {
|
|
95447
|
-
directory: asset.path,
|
|
95448
|
-
dockerBuildArgs: asset.buildArgs,
|
|
95449
|
-
dockerBuildSecrets: asset.buildSecrets,
|
|
95450
|
-
dockerBuildSsh: asset.buildSsh,
|
|
95451
|
-
dockerBuildTarget: asset.target,
|
|
95452
|
-
dockerFile: asset.file,
|
|
95453
|
-
networkMode: asset.networkMode,
|
|
95454
|
-
platform: asset.platform,
|
|
95455
|
-
dockerOutputs: asset.outputs
|
|
95456
|
-
}, {
|
|
95457
|
-
repositoryName,
|
|
95458
|
-
imageTag
|
|
95459
|
-
});
|
|
95460
|
-
if (!asset.imageNameParameter) {
|
|
95461
|
-
return {};
|
|
95462
|
-
}
|
|
95463
|
-
return { [asset.imageNameParameter]: `${repositoryUri2}:${imageTag}` };
|
|
95464
|
-
}
|
|
95465
|
-
var path18, cxapi3, cxschema8, import_chalk3;
|
|
95466
|
-
var init_assets3 = __esm({
|
|
95467
|
-
"../@aws-cdk/toolkit-lib/lib/api/deployments/assets.ts"() {
|
|
95468
|
-
"use strict";
|
|
95469
|
-
path18 = __toESM(require("path"));
|
|
95470
|
-
cxapi3 = __toESM(require_lib3());
|
|
95471
|
-
cxschema8 = __toESM(require_lib2());
|
|
95472
|
-
import_chalk3 = __toESM(require_source());
|
|
95473
|
-
init_toolkit_error();
|
|
95474
|
-
__name(addMetadataAssetsToManifest, "addMetadataAssetsToManifest");
|
|
95475
|
-
__name(prepareAsset, "prepareAsset");
|
|
95476
|
-
__name(prepareFileAsset, "prepareFileAsset");
|
|
95477
|
-
__name(prepareDockerImageAsset, "prepareDockerImageAsset");
|
|
95478
|
-
}
|
|
95479
|
-
});
|
|
95480
|
-
|
|
95481
|
-
// ../@aws-cdk/toolkit-lib/lib/actions/deploy/private/deployment-method.ts
|
|
95482
|
-
function isChangeSetDeployment(method) {
|
|
95483
|
-
return method?.method === "change-set";
|
|
95484
|
-
}
|
|
95485
|
-
function isExecutingChangeSetDeployment(method) {
|
|
95486
|
-
return isChangeSetDeployment(method) && (method.execute ?? true);
|
|
95487
|
-
}
|
|
95488
|
-
function isNonExecutingChangeSetDeployment(method) {
|
|
95489
|
-
return isChangeSetDeployment(method) && method.execute === false;
|
|
95490
|
-
}
|
|
95491
|
-
function isExecuteChangeSetDeployment(method) {
|
|
95492
|
-
return method?.method === "execute-change-set";
|
|
95493
|
-
}
|
|
95494
|
-
function toExecuteChangeSetDeployment(method) {
|
|
95495
|
-
return {
|
|
95496
|
-
method: "execute-change-set",
|
|
95497
|
-
changeSetName: method.changeSetName ?? DEFAULT_DEPLOY_CHANGE_SET_NAME
|
|
95498
|
-
};
|
|
95499
|
-
}
|
|
95500
|
-
var DEFAULT_DEPLOY_CHANGE_SET_NAME;
|
|
95501
|
-
var init_deployment_method = __esm({
|
|
95502
|
-
"../@aws-cdk/toolkit-lib/lib/actions/deploy/private/deployment-method.ts"() {
|
|
95503
|
-
"use strict";
|
|
95504
|
-
DEFAULT_DEPLOY_CHANGE_SET_NAME = "cdk-deploy-change-set";
|
|
95505
|
-
__name(isChangeSetDeployment, "isChangeSetDeployment");
|
|
95506
|
-
__name(isExecutingChangeSetDeployment, "isExecutingChangeSetDeployment");
|
|
95507
|
-
__name(isNonExecutingChangeSetDeployment, "isNonExecutingChangeSetDeployment");
|
|
95508
|
-
__name(isExecuteChangeSetDeployment, "isExecuteChangeSetDeployment");
|
|
95509
|
-
__name(toExecuteChangeSetDeployment, "toExecuteChangeSetDeployment");
|
|
95510
|
-
}
|
|
95511
|
-
});
|
|
95512
|
-
|
|
95513
|
-
// ../@aws-cdk/toolkit-lib/lib/payloads/hotswap.ts
|
|
95514
|
-
var NonHotswappableReason;
|
|
95515
|
-
var init_hotswap = __esm({
|
|
95516
|
-
"../@aws-cdk/toolkit-lib/lib/payloads/hotswap.ts"() {
|
|
95517
|
-
"use strict";
|
|
95518
|
-
NonHotswappableReason = /* @__PURE__ */ ((NonHotswappableReason2) => {
|
|
95519
|
-
NonHotswappableReason2["TAGS"] = "tags";
|
|
95520
|
-
NonHotswappableReason2["PROPERTIES"] = "properties";
|
|
95521
|
-
NonHotswappableReason2["OUTPUT"] = "output";
|
|
95522
|
-
NonHotswappableReason2["DEPENDENCY_UNSUPPORTED"] = "dependency-unsupported";
|
|
95523
|
-
NonHotswappableReason2["RESOURCE_UNSUPPORTED"] = "resource-unsupported";
|
|
95524
|
-
NonHotswappableReason2["RESOURCE_CREATION"] = "resource-creation";
|
|
95525
|
-
NonHotswappableReason2["RESOURCE_DELETION"] = "resource-deletion";
|
|
95526
|
-
NonHotswappableReason2["RESOURCE_TYPE_CHANGED"] = "resource-type-changed";
|
|
95527
|
-
NonHotswappableReason2["NESTED_STACK_CREATION"] = "nested-stack-creation";
|
|
95528
|
-
return NonHotswappableReason2;
|
|
95529
|
-
})(NonHotswappableReason || {});
|
|
95530
|
-
}
|
|
95531
|
-
});
|
|
95532
|
-
|
|
95533
|
-
// ../@aws-cdk/toolkit-lib/lib/api/hotswap/common.ts
|
|
95534
|
-
function createHotswapPropertyOverrides(props) {
|
|
95535
|
-
return new HotswapPropertyOverrides(new EcsHotswapProperties(
|
|
95536
|
-
props.ecs?.minimumHealthyPercent,
|
|
95537
|
-
props.ecs?.maximumHealthyPercent,
|
|
95538
|
-
props.ecs?.stabilizationTimeoutSeconds
|
|
95539
|
-
));
|
|
95540
|
-
}
|
|
95541
|
-
function classifyChanges(xs, hotswappablePropNames) {
|
|
95542
|
-
const hotswappableProps = {};
|
|
95543
|
-
const nonHotswappableProps = {};
|
|
95544
|
-
for (const [name, propDiff] of Object.entries(xs.propertyUpdates)) {
|
|
95545
|
-
if (hotswappablePropNames.includes(name)) {
|
|
95546
|
-
hotswappableProps[name] = propDiff;
|
|
95547
|
-
} else {
|
|
95548
|
-
nonHotswappableProps[name] = propDiff;
|
|
95549
|
-
}
|
|
95550
|
-
}
|
|
95551
|
-
return new ClassifiedChanges(xs, hotswappableProps, nonHotswappableProps);
|
|
95552
|
-
}
|
|
95553
|
-
function nonHotswappableChange(change, reason, description, nonHotswappableProps, hotswapOnlyVisible = true) {
|
|
95554
|
-
return {
|
|
95555
|
-
hotswappable: false,
|
|
95556
|
-
hotswapOnlyVisible,
|
|
95557
|
-
change: {
|
|
95558
|
-
reason,
|
|
95559
|
-
description,
|
|
95560
|
-
subject: {
|
|
95561
|
-
type: "Resource",
|
|
95562
|
-
logicalId: change.logicalId,
|
|
95563
|
-
resourceType: change.newValue.Type,
|
|
95564
|
-
rejectedProperties: Object.keys(nonHotswappableProps ?? change.propertyUpdates),
|
|
95565
|
-
metadata: change.metadata
|
|
95566
|
-
}
|
|
95567
|
-
}
|
|
95568
|
-
};
|
|
95569
|
-
}
|
|
95570
|
-
function nonHotswappableResource(change) {
|
|
95571
|
-
return {
|
|
95572
|
-
hotswappable: false,
|
|
95573
|
-
change: {
|
|
95574
|
-
reason: "resource-unsupported" /* RESOURCE_UNSUPPORTED */,
|
|
95575
|
-
description: "This resource type is not supported for hotswap deployments",
|
|
95576
|
-
subject: {
|
|
95577
|
-
type: "Resource",
|
|
95578
|
-
logicalId: change.logicalId,
|
|
95579
|
-
resourceType: change.newValue.Type,
|
|
95580
|
-
rejectedProperties: Object.keys(change.propertyUpdates),
|
|
95581
|
-
metadata: change.metadata
|
|
95582
|
-
}
|
|
95583
|
-
}
|
|
95584
|
-
};
|
|
95585
|
-
}
|
|
95586
|
-
var ICON, HotswapPropertyOverrides, EcsHotswapProperties, ClassifiedChanges;
|
|
95587
|
-
var init_common3 = __esm({
|
|
95588
|
-
"../@aws-cdk/toolkit-lib/lib/api/hotswap/common.ts"() {
|
|
95589
|
-
"use strict";
|
|
95590
|
-
init_hotswap();
|
|
95591
|
-
init_toolkit_error();
|
|
95592
|
-
ICON = "\u2728";
|
|
95593
|
-
HotswapPropertyOverrides = class {
|
|
95594
|
-
static {
|
|
95595
|
-
__name(this, "HotswapPropertyOverrides");
|
|
95596
|
-
}
|
|
95597
|
-
// Each supported resource type will have its own properties. Currently this is ECS
|
|
95598
|
-
ecs;
|
|
95599
|
-
constructor(ecs) {
|
|
95600
|
-
this.ecs = ecs;
|
|
95601
|
-
}
|
|
95602
|
-
};
|
|
95603
|
-
EcsHotswapProperties = class {
|
|
95604
|
-
static {
|
|
95605
|
-
__name(this, "EcsHotswapProperties");
|
|
95606
|
-
}
|
|
95607
|
-
// The lower limit on the number of your service's tasks that must remain in the RUNNING state during a deployment, as a percentage of the desiredCount
|
|
95608
|
-
minimumHealthyPercent;
|
|
95609
|
-
// The upper limit on the number of your service's tasks that are allowed in the RUNNING or PENDING state during a deployment, as a percentage of the desiredCount
|
|
95610
|
-
maximumHealthyPercent;
|
|
95611
|
-
// The number of seconds to wait for a single service to reach stable state.
|
|
95612
|
-
stabilizationTimeoutSeconds;
|
|
95613
|
-
constructor(minimumHealthyPercent, maximumHealthyPercent, stabilizationTimeoutSeconds) {
|
|
95614
|
-
if (minimumHealthyPercent !== void 0 && minimumHealthyPercent < 0) {
|
|
95615
|
-
throw new ToolkitError("InvalidEcsMinHealthyPercent", "hotswap-ecs-minimum-healthy-percent can't be a negative number");
|
|
95616
|
-
}
|
|
95617
|
-
if (maximumHealthyPercent !== void 0 && maximumHealthyPercent < 0) {
|
|
95618
|
-
throw new ToolkitError("InvalidEcsMaxHealthyPercent", "hotswap-ecs-maximum-healthy-percent can't be a negative number");
|
|
95619
|
-
}
|
|
95620
|
-
if (stabilizationTimeoutSeconds !== void 0 && stabilizationTimeoutSeconds < 0) {
|
|
95621
|
-
throw new ToolkitError("InvalidEcsStabilizationTimeout", "hotswap-ecs-stabilization-timeout-seconds can't be a negative number");
|
|
95622
|
-
}
|
|
95623
|
-
if (minimumHealthyPercent == void 0) {
|
|
95624
|
-
this.minimumHealthyPercent = 0;
|
|
95625
|
-
} else {
|
|
95626
|
-
this.minimumHealthyPercent = minimumHealthyPercent;
|
|
95627
|
-
}
|
|
95628
|
-
this.maximumHealthyPercent = maximumHealthyPercent;
|
|
95629
|
-
this.stabilizationTimeoutSeconds = stabilizationTimeoutSeconds;
|
|
95630
|
-
}
|
|
95631
|
-
/**
|
|
95632
|
-
* Check if any hotswap properties are defined
|
|
95633
|
-
* @returns true if all properties are undefined, false otherwise
|
|
95634
|
-
*/
|
|
95635
|
-
isEmpty() {
|
|
95636
|
-
return this.minimumHealthyPercent === 0 && this.maximumHealthyPercent === void 0;
|
|
95637
|
-
}
|
|
95638
|
-
};
|
|
95639
|
-
__name(createHotswapPropertyOverrides, "createHotswapPropertyOverrides");
|
|
95640
|
-
ClassifiedChanges = class {
|
|
95641
|
-
constructor(change, hotswappableProps, nonHotswappableProps) {
|
|
95642
|
-
this.change = change;
|
|
95643
|
-
this.hotswappableProps = hotswappableProps;
|
|
95644
|
-
this.nonHotswappableProps = nonHotswappableProps;
|
|
95645
|
-
}
|
|
95646
|
-
change;
|
|
95647
|
-
hotswappableProps;
|
|
95648
|
-
nonHotswappableProps;
|
|
95649
|
-
static {
|
|
95650
|
-
__name(this, "ClassifiedChanges");
|
|
95651
|
-
}
|
|
95652
|
-
reportNonHotswappablePropertyChanges(ret) {
|
|
95653
|
-
const nonHotswappablePropNames = Object.keys(this.nonHotswappableProps);
|
|
95654
|
-
if (nonHotswappablePropNames.length > 0) {
|
|
95655
|
-
const tagOnlyChange = nonHotswappablePropNames.length === 1 && nonHotswappablePropNames[0] === "Tags";
|
|
95656
|
-
const reason = tagOnlyChange ? "tags" /* TAGS */ : "properties" /* PROPERTIES */;
|
|
95657
|
-
const description = tagOnlyChange ? "Tags are not hotswappable" : `resource properties '${nonHotswappablePropNames}' are not hotswappable on this resource type`;
|
|
95658
|
-
ret.push(nonHotswappableChange(
|
|
95659
|
-
this.change,
|
|
95660
|
-
reason,
|
|
95661
|
-
description,
|
|
95662
|
-
this.nonHotswappableProps
|
|
95663
|
-
));
|
|
95664
|
-
}
|
|
95665
|
-
}
|
|
95666
|
-
get namesOfHotswappableProps() {
|
|
95667
|
-
return Object.keys(this.hotswappableProps);
|
|
95668
|
-
}
|
|
95669
|
-
};
|
|
95670
|
-
__name(classifyChanges, "classifyChanges");
|
|
95671
|
-
__name(nonHotswappableChange, "nonHotswappableChange");
|
|
95672
|
-
__name(nonHotswappableResource, "nonHotswappableResource");
|
|
95673
|
-
}
|
|
95674
|
-
});
|
|
95675
|
-
|
|
95676
95378
|
// ../../node_modules/@cdklabs/tskb/lib/sorted-map.js
|
|
95677
95379
|
var require_sorted_map = __commonJS({
|
|
95678
95380
|
"../../node_modules/@cdklabs/tskb/lib/sorted-map.js"(exports2) {
|
|
@@ -97518,12 +97220,12 @@ function defaultResource(resource, statements) {
|
|
|
97518
97220
|
statements.forEach((s2) => s2.resources.replaceStar(resource));
|
|
97519
97221
|
return statements;
|
|
97520
97222
|
}
|
|
97521
|
-
var import_service_spec_types,
|
|
97223
|
+
var import_service_spec_types, import_chalk3, IamChanges;
|
|
97522
97224
|
var init_iam_changes = __esm({
|
|
97523
97225
|
"../@aws-cdk/cloudformation-diff/lib/iam/iam-changes.ts"() {
|
|
97524
97226
|
"use strict";
|
|
97525
97227
|
import_service_spec_types = __toESM(require_lib7());
|
|
97526
|
-
|
|
97228
|
+
import_chalk3 = __toESM(require_source());
|
|
97527
97229
|
init_iam_identity_center();
|
|
97528
97230
|
init_managed_policy();
|
|
97529
97231
|
init_statement();
|
|
@@ -97593,7 +97295,7 @@ var init_iam_changes = __esm({
|
|
|
97593
97295
|
renderedStatement.action,
|
|
97594
97296
|
renderedStatement.principal,
|
|
97595
97297
|
renderedStatement.condition
|
|
97596
|
-
].map((s2) =>
|
|
97298
|
+
].map((s2) => import_chalk3.default.green(s2)));
|
|
97597
97299
|
}
|
|
97598
97300
|
for (const statement of this.statements.removals) {
|
|
97599
97301
|
const renderedStatement = statement.render();
|
|
@@ -97604,7 +97306,7 @@ var init_iam_changes = __esm({
|
|
|
97604
97306
|
renderedStatement.action,
|
|
97605
97307
|
renderedStatement.principal,
|
|
97606
97308
|
renderedStatement.condition
|
|
97607
|
-
].map((s2) =>
|
|
97309
|
+
].map((s2) => import_chalk3.default.red(s2)));
|
|
97608
97310
|
}
|
|
97609
97311
|
ret.sort(makeComparator((row) => [row[1]]));
|
|
97610
97312
|
ret.splice(0, 0, header);
|
|
@@ -97618,14 +97320,14 @@ var init_iam_changes = __esm({
|
|
|
97618
97320
|
"+",
|
|
97619
97321
|
att.identityArn,
|
|
97620
97322
|
att.managedPolicyArn
|
|
97621
|
-
].map((s2) =>
|
|
97323
|
+
].map((s2) => import_chalk3.default.green(s2)));
|
|
97622
97324
|
}
|
|
97623
97325
|
for (const att of this.managedPolicies.removals) {
|
|
97624
97326
|
ret.push([
|
|
97625
97327
|
"-",
|
|
97626
97328
|
att.identityArn,
|
|
97627
97329
|
att.managedPolicyArn
|
|
97628
|
-
].map((s2) =>
|
|
97330
|
+
].map((s2) => import_chalk3.default.red(s2)));
|
|
97629
97331
|
}
|
|
97630
97332
|
ret.sort(makeComparator((row) => [row[1]]));
|
|
97631
97333
|
ret.splice(0, 0, header);
|
|
@@ -97644,7 +97346,7 @@ var init_iam_changes = __esm({
|
|
|
97644
97346
|
att.principalType || "",
|
|
97645
97347
|
att.targetId || "",
|
|
97646
97348
|
att.targetType || ""
|
|
97647
|
-
].map((s2) =>
|
|
97349
|
+
].map((s2) => import_chalk3.default.green(s2)));
|
|
97648
97350
|
}
|
|
97649
97351
|
for (const att of this.ssoAssignments.removals) {
|
|
97650
97352
|
ret.push([
|
|
@@ -97656,7 +97358,7 @@ var init_iam_changes = __esm({
|
|
|
97656
97358
|
att.principalType || "",
|
|
97657
97359
|
att.targetId || "",
|
|
97658
97360
|
att.targetType || ""
|
|
97659
|
-
].map((s2) =>
|
|
97361
|
+
].map((s2) => import_chalk3.default.red(s2)));
|
|
97660
97362
|
}
|
|
97661
97363
|
ret.sort(makeComparator((row) => [row[1]]));
|
|
97662
97364
|
ret.splice(0, 0, header);
|
|
@@ -97675,7 +97377,7 @@ var init_iam_changes = __esm({
|
|
|
97675
97377
|
att.cfnLogicalId || "",
|
|
97676
97378
|
att.ssoInstanceArn || "",
|
|
97677
97379
|
att.accessControlAttributes?.map(formatAccessControlAttribute).join("\n") || ""
|
|
97678
|
-
].map((s2) =>
|
|
97380
|
+
].map((s2) => import_chalk3.default.green(s2)));
|
|
97679
97381
|
}
|
|
97680
97382
|
for (const att of this.ssoInstanceACAConfigs.removals) {
|
|
97681
97383
|
ret.push([
|
|
@@ -97683,7 +97385,7 @@ var init_iam_changes = __esm({
|
|
|
97683
97385
|
att.cfnLogicalId || "",
|
|
97684
97386
|
att.ssoInstanceArn || "",
|
|
97685
97387
|
att.accessControlAttributes?.map(formatAccessControlAttribute).join("\n") || ""
|
|
97686
|
-
].map((s2) =>
|
|
97388
|
+
].map((s2) => import_chalk3.default.red(s2)));
|
|
97687
97389
|
}
|
|
97688
97390
|
ret.sort(makeComparator((row) => [row[1]]));
|
|
97689
97391
|
ret.splice(0, 0, header);
|
|
@@ -97716,7 +97418,7 @@ var init_iam_changes = __esm({
|
|
|
97716
97418
|
att.name || "",
|
|
97717
97419
|
formatSsoPermissionsBoundary(att.ssoPermissionsBoundary),
|
|
97718
97420
|
att.ssoCustomerManagedPolicyReferences?.map(formatManagedPolicyRef).join("\n") || ""
|
|
97719
|
-
].map((s2) =>
|
|
97421
|
+
].map((s2) => import_chalk3.default.green(s2)));
|
|
97720
97422
|
}
|
|
97721
97423
|
for (const att of this.ssoPermissionSets.removals) {
|
|
97722
97424
|
ret.push([
|
|
@@ -97726,7 +97428,7 @@ var init_iam_changes = __esm({
|
|
|
97726
97428
|
att.name || "",
|
|
97727
97429
|
formatSsoPermissionsBoundary(att.ssoPermissionsBoundary),
|
|
97728
97430
|
att.ssoCustomerManagedPolicyReferences?.map(formatManagedPolicyRef).join("\n") || ""
|
|
97729
|
-
].map((s2) =>
|
|
97431
|
+
].map((s2) => import_chalk3.default.red(s2)));
|
|
97730
97432
|
}
|
|
97731
97433
|
ret.sort(makeComparator((row) => [row[1]]));
|
|
97732
97434
|
ret.splice(0, 0, header);
|
|
@@ -98046,11 +97748,11 @@ var init_security_group_rule = __esm({
|
|
|
98046
97748
|
});
|
|
98047
97749
|
|
|
98048
97750
|
// ../@aws-cdk/cloudformation-diff/lib/network/security-group-changes.ts
|
|
98049
|
-
var
|
|
97751
|
+
var import_chalk4, SecurityGroupChanges;
|
|
98050
97752
|
var init_security_group_changes = __esm({
|
|
98051
97753
|
"../@aws-cdk/cloudformation-diff/lib/network/security-group-changes.ts"() {
|
|
98052
97754
|
"use strict";
|
|
98053
|
-
|
|
97755
|
+
import_chalk4 = __toESM(require_source());
|
|
98054
97756
|
init_security_group_rule();
|
|
98055
97757
|
init_diffable();
|
|
98056
97758
|
init_render_intrinsics();
|
|
@@ -98098,7 +97800,7 @@ var init_security_group_changes = __esm({
|
|
|
98098
97800
|
inOut,
|
|
98099
97801
|
rule.describeProtocol(),
|
|
98100
97802
|
rule.describePeer()
|
|
98101
|
-
].map((s2) => plusMin === "+" ?
|
|
97803
|
+
].map((s2) => plusMin === "+" ? import_chalk4.default.green(s2) : import_chalk4.default.red(s2)), "renderRule");
|
|
98102
97804
|
ret.push(...this.ingress.additions.map(renderRule("+", inWord)));
|
|
98103
97805
|
ret.push(...this.egress.additions.map(renderRule("+", outWord)));
|
|
98104
97806
|
ret.push(...this.ingress.removals.map(renderRule("-", inWord)));
|
|
@@ -99373,15 +99075,15 @@ __export(format_foreach_exports, {
|
|
|
99373
99075
|
function isForEachKey(logicalId) {
|
|
99374
99076
|
return logicalId.startsWith("Fn::ForEach::");
|
|
99375
99077
|
}
|
|
99376
|
-
var
|
|
99078
|
+
var import_chalk5, ADDITION, UPDATE, REMOVAL, ForEachDiffFormatter;
|
|
99377
99079
|
var init_format_foreach = __esm({
|
|
99378
99080
|
"../@aws-cdk/cloudformation-diff/lib/format-foreach.ts"() {
|
|
99379
99081
|
"use strict";
|
|
99380
|
-
|
|
99082
|
+
import_chalk5 = __toESM(require_source());
|
|
99381
99083
|
init_util6();
|
|
99382
|
-
ADDITION =
|
|
99383
|
-
UPDATE =
|
|
99384
|
-
REMOVAL =
|
|
99084
|
+
ADDITION = import_chalk5.default.green("[+]");
|
|
99085
|
+
UPDATE = import_chalk5.default.yellow("[~]");
|
|
99086
|
+
REMOVAL = import_chalk5.default.red("[-]");
|
|
99385
99087
|
ForEachDiffFormatter = class {
|
|
99386
99088
|
static {
|
|
99387
99089
|
__name(this, "ForEachDiffFormatter");
|
|
@@ -99394,24 +99096,24 @@ var init_format_foreach = __esm({
|
|
|
99394
99096
|
const changeType = this.getChangeType(oldValue, newValue);
|
|
99395
99097
|
const value2 = newValue ?? oldValue;
|
|
99396
99098
|
if (!Array.isArray(value2) || value2.length < 2) {
|
|
99397
|
-
lines.push(`${this.changeSymbol(changeType)} ${
|
|
99099
|
+
lines.push(`${this.changeSymbol(changeType)} ${import_chalk5.default.cyan(key)} (unrecognized ForEach structure)`);
|
|
99398
99100
|
return lines;
|
|
99399
99101
|
}
|
|
99400
99102
|
const loopName = key.replace("Fn::ForEach::", "");
|
|
99401
99103
|
const [collection, templateObj] = value2;
|
|
99402
99104
|
const entries = Object.entries(templateObj);
|
|
99403
99105
|
if (entries.length === 0) {
|
|
99404
|
-
lines.push(`${this.changeSymbol(changeType)} ${
|
|
99106
|
+
lines.push(`${this.changeSymbol(changeType)} ${import_chalk5.default.cyan(key)} (empty ForEach template)`);
|
|
99405
99107
|
return lines;
|
|
99406
99108
|
}
|
|
99407
99109
|
const [[templateKey, templateValue]] = entries;
|
|
99408
99110
|
const count = Array.isArray(collection) ? `${collection.length} resources` : "dynamic count";
|
|
99409
99111
|
lines.push(
|
|
99410
|
-
`${this.changeSymbol(changeType)} ${
|
|
99112
|
+
`${this.changeSymbol(changeType)} ${import_chalk5.default.cyan(key)} (expands to ${count} at deploy time)`
|
|
99411
99113
|
);
|
|
99412
|
-
lines.push(` Loop variable: ${
|
|
99114
|
+
lines.push(` Loop variable: ${import_chalk5.default.blue(loopName)}`);
|
|
99413
99115
|
lines.push(` Collection: ${this.formatCollection(collection)}`);
|
|
99414
|
-
lines.push(` \u2514\u2500\u2500 ${templateKey} ${
|
|
99116
|
+
lines.push(` \u2514\u2500\u2500 ${templateKey} ${import_chalk5.default.cyan(templateValue?.Type ?? "Unknown")}`);
|
|
99415
99117
|
if (changeType === "update" && oldValue && newValue) {
|
|
99416
99118
|
const oldProps = oldValue[1]?.[Object.keys(oldValue[1])[0]]?.Properties ?? {};
|
|
99417
99119
|
const newProps = newValue[1]?.[Object.keys(newValue[1])[0]]?.Properties ?? {};
|
|
@@ -104116,11 +103818,11 @@ function sum(xs) {
|
|
|
104116
103818
|
}
|
|
104117
103819
|
return total;
|
|
104118
103820
|
}
|
|
104119
|
-
var
|
|
103821
|
+
var import_chalk6, import_string_width, table, tableColor, TABLE_BORDER_CHARACTERS;
|
|
104120
103822
|
var init_format_table = __esm({
|
|
104121
103823
|
"../@aws-cdk/cloudformation-diff/lib/format-table.ts"() {
|
|
104122
103824
|
"use strict";
|
|
104123
|
-
|
|
103825
|
+
import_chalk6 = __toESM(require_source());
|
|
104124
103826
|
import_string_width = __toESM(require_string_width());
|
|
104125
103827
|
table = __toESM(require_src());
|
|
104126
103828
|
__name(formatTable, "formatTable");
|
|
@@ -104128,7 +103830,7 @@ var init_format_table = __esm({
|
|
|
104128
103830
|
__name(buildColumnConfig, "buildColumnConfig");
|
|
104129
103831
|
__name(calculateColumnWidths, "calculateColumnWidths");
|
|
104130
103832
|
__name(sum, "sum");
|
|
104131
|
-
tableColor =
|
|
103833
|
+
tableColor = import_chalk6.default.gray;
|
|
104132
103834
|
TABLE_BORDER_CHARACTERS = {
|
|
104133
103835
|
topBody: tableColor("\u2500"),
|
|
104134
103836
|
topJoin: tableColor("\u252C"),
|
|
@@ -106215,7 +105917,7 @@ function _diffStrings(oldStr, newStr, context) {
|
|
|
106215
105917
|
const patch = structuredPatch(null, null, oldStr, newStr, null, null, { context });
|
|
106216
105918
|
const result2 = new Array();
|
|
106217
105919
|
for (const hunk of patch.hunks) {
|
|
106218
|
-
result2.push(
|
|
105920
|
+
result2.push(import_chalk7.default.magenta(`@@ -${hunk.oldStart},${hunk.oldLines} +${hunk.newStart},${hunk.newLines} @@`));
|
|
106219
105921
|
const baseIndent = _findIndent(hunk.lines);
|
|
106220
105922
|
for (const line of hunk.lines) {
|
|
106221
105923
|
if (line === "\") {
|
|
@@ -106228,10 +105930,10 @@ function _diffStrings(oldStr, newStr, context) {
|
|
|
106228
105930
|
result2.push(`${CONTEXT} ${text}`);
|
|
106229
105931
|
break;
|
|
106230
105932
|
case "+":
|
|
106231
|
-
result2.push(
|
|
105933
|
+
result2.push(import_chalk7.default.bold(`${ADDITION2} ${import_chalk7.default.green(text)}`));
|
|
106232
105934
|
break;
|
|
106233
105935
|
case "-":
|
|
106234
|
-
result2.push(
|
|
105936
|
+
result2.push(import_chalk7.default.bold(`${REMOVAL2} ${import_chalk7.default.red(text)}`));
|
|
106235
105937
|
break;
|
|
106236
105938
|
default:
|
|
106237
105939
|
throw new Error(`Unexpected diff marker: ${marker} (full line: ${line})`);
|
|
@@ -106253,12 +105955,12 @@ function _diffStrings(oldStr, newStr, context) {
|
|
|
106253
105955
|
}
|
|
106254
105956
|
__name(_findIndent, "_findIndent");
|
|
106255
105957
|
}
|
|
106256
|
-
var import_util24,
|
|
105958
|
+
var import_util24, import_chalk7, PATH_METADATA_KEY3, structuredPatch, ADDITION2, CONTEXT, UPDATE2, REMOVAL2, IMPORT, Formatter;
|
|
106257
105959
|
var init_format = __esm({
|
|
106258
105960
|
"../@aws-cdk/cloudformation-diff/lib/format.ts"() {
|
|
106259
105961
|
"use strict";
|
|
106260
105962
|
import_util24 = require("util");
|
|
106261
|
-
|
|
105963
|
+
import_chalk7 = __toESM(require_source());
|
|
106262
105964
|
init_util6();
|
|
106263
105965
|
init_diff_template();
|
|
106264
105966
|
init_format_foreach();
|
|
@@ -106268,11 +105970,11 @@ var init_format = __esm({
|
|
|
106268
105970
|
__name(formatDifferences, "formatDifferences");
|
|
106269
105971
|
__name(formatSecurityChanges, "formatSecurityChanges");
|
|
106270
105972
|
__name(formatSecurityChangesWithBanner, "formatSecurityChangesWithBanner");
|
|
106271
|
-
ADDITION2 =
|
|
106272
|
-
CONTEXT =
|
|
106273
|
-
UPDATE2 =
|
|
106274
|
-
REMOVAL2 =
|
|
106275
|
-
IMPORT =
|
|
105973
|
+
ADDITION2 = import_chalk7.default.green("[+]");
|
|
105974
|
+
CONTEXT = import_chalk7.default.grey("[ ]");
|
|
105975
|
+
UPDATE2 = import_chalk7.default.yellow("[~]");
|
|
105976
|
+
REMOVAL2 = import_chalk7.default.red("[-]");
|
|
105977
|
+
IMPORT = import_chalk7.default.blue("[\u2190]");
|
|
106276
105978
|
Formatter = class {
|
|
106277
105979
|
constructor(stream, logicalToPathMap, diff, context = 3) {
|
|
106278
105980
|
this.stream = stream;
|
|
@@ -106289,10 +105991,10 @@ var init_format = __esm({
|
|
|
106289
105991
|
__name(this, "Formatter");
|
|
106290
105992
|
}
|
|
106291
105993
|
print(fmt, ...args) {
|
|
106292
|
-
this.stream.write(
|
|
105994
|
+
this.stream.write(import_chalk7.default.reset((0, import_util24.format)(fmt, ...args)) + "\n");
|
|
106293
105995
|
}
|
|
106294
105996
|
warning(fmt, ...args) {
|
|
106295
|
-
this.stream.write(
|
|
105997
|
+
this.stream.write(import_chalk7.default.yellow((0, import_util24.format)(fmt, ...args)) + "\n");
|
|
106296
105998
|
}
|
|
106297
105999
|
formatSection(title, entryType, collection, formatter = this.formatDifference.bind(this)) {
|
|
106298
106000
|
if (collection.differenceCount === 0) {
|
|
@@ -106303,7 +106005,7 @@ var init_format = __esm({
|
|
|
106303
106005
|
this.printSectionFooter();
|
|
106304
106006
|
}
|
|
106305
106007
|
printSectionHeader(title) {
|
|
106306
|
-
this.print(
|
|
106008
|
+
this.print(import_chalk7.default.underline(import_chalk7.default.bold(title)));
|
|
106307
106009
|
}
|
|
106308
106010
|
printSectionFooter() {
|
|
106309
106011
|
this.print("");
|
|
@@ -106319,8 +106021,8 @@ var init_format = __esm({
|
|
|
106319
106021
|
return;
|
|
106320
106022
|
}
|
|
106321
106023
|
let value2;
|
|
106322
|
-
const oldValue = this.formatValue(diff.oldValue,
|
|
106323
|
-
const newValue = this.formatValue(diff.newValue,
|
|
106024
|
+
const oldValue = this.formatValue(diff.oldValue, import_chalk7.default.red);
|
|
106025
|
+
const newValue = this.formatValue(diff.newValue, import_chalk7.default.green);
|
|
106324
106026
|
if (diff.isAddition) {
|
|
106325
106027
|
value2 = newValue;
|
|
106326
106028
|
} else if (diff.isUpdate) {
|
|
@@ -106328,7 +106030,7 @@ var init_format = __esm({
|
|
|
106328
106030
|
} else if (diff.isRemoval) {
|
|
106329
106031
|
value2 = oldValue;
|
|
106330
106032
|
}
|
|
106331
|
-
this.print(`${this.formatPrefix(diff)} ${
|
|
106033
|
+
this.print(`${this.formatPrefix(diff)} ${import_chalk7.default.cyan(type)} ${this.formatLogicalId(logicalId)}: ${value2}`);
|
|
106332
106034
|
}
|
|
106333
106035
|
/**
|
|
106334
106036
|
* Print a resource difference for a given logical ID.
|
|
@@ -106351,7 +106053,7 @@ var init_format = __esm({
|
|
|
106351
106053
|
const resourceType = diff.isRemoval ? diff.oldResourceType : diff.newResourceType;
|
|
106352
106054
|
const message2 = [
|
|
106353
106055
|
this.formatResourcePrefix(diff),
|
|
106354
|
-
this.formatValue(resourceType,
|
|
106056
|
+
this.formatValue(resourceType, import_chalk7.default.cyan),
|
|
106355
106057
|
this.formatLogicalId(logicalId),
|
|
106356
106058
|
this.formatImpact(diff.changeImpact),
|
|
106357
106059
|
this.formatMove(diff.move)
|
|
@@ -106382,7 +106084,7 @@ var init_format = __esm({
|
|
|
106382
106084
|
if (diff.isRemoval) {
|
|
106383
106085
|
return REMOVAL2;
|
|
106384
106086
|
}
|
|
106385
|
-
return
|
|
106087
|
+
return import_chalk7.default.reset("[?]");
|
|
106386
106088
|
}
|
|
106387
106089
|
/**
|
|
106388
106090
|
* @param value - the value to be formatted.
|
|
@@ -106406,15 +106108,15 @@ var init_format = __esm({
|
|
|
106406
106108
|
formatImpact(impact) {
|
|
106407
106109
|
switch (impact) {
|
|
106408
106110
|
case "MAY_REPLACE" /* MAY_REPLACE */:
|
|
106409
|
-
return
|
|
106111
|
+
return import_chalk7.default.italic(import_chalk7.default.yellow("may be replaced"));
|
|
106410
106112
|
case "WILL_REPLACE" /* WILL_REPLACE */:
|
|
106411
|
-
return
|
|
106113
|
+
return import_chalk7.default.italic(import_chalk7.default.bold(import_chalk7.default.red("replace")));
|
|
106412
106114
|
case "WILL_DESTROY" /* WILL_DESTROY */:
|
|
106413
|
-
return
|
|
106115
|
+
return import_chalk7.default.italic(import_chalk7.default.bold(import_chalk7.default.red("destroy")));
|
|
106414
106116
|
case "WILL_ORPHAN" /* WILL_ORPHAN */:
|
|
106415
|
-
return
|
|
106117
|
+
return import_chalk7.default.italic(import_chalk7.default.yellow("orphan"));
|
|
106416
106118
|
case "WILL_IMPORT" /* WILL_IMPORT */:
|
|
106417
|
-
return
|
|
106119
|
+
return import_chalk7.default.italic(import_chalk7.default.blue("import"));
|
|
106418
106120
|
case "WILL_UPDATE" /* WILL_UPDATE */:
|
|
106419
106121
|
case "WILL_CREATE" /* WILL_CREATE */:
|
|
106420
106122
|
case "NO_CHANGE" /* NO_CHANGE */:
|
|
@@ -106422,7 +106124,7 @@ var init_format = __esm({
|
|
|
106422
106124
|
}
|
|
106423
106125
|
}
|
|
106424
106126
|
formatMove(move) {
|
|
106425
|
-
return !move ? "" :
|
|
106127
|
+
return !move ? "" : import_chalk7.default.yellow("(OR", import_chalk7.default.italic(import_chalk7.default.bold("move")), `${move.direction} ${move.stackName}.${move.resourceLogicalId} via refactoring)`);
|
|
106426
106128
|
}
|
|
106427
106129
|
/**
|
|
106428
106130
|
* Renders a tree of differences under a particular name.
|
|
@@ -106461,13 +106163,13 @@ var init_format = __esm({
|
|
|
106461
106163
|
this.print("%s %s %s", linePrefix, i6 === 0 ? "\u2514\u2500" : " ", diff[i6]);
|
|
106462
106164
|
}
|
|
106463
106165
|
} else {
|
|
106464
|
-
this.print("%s \u251C\u2500 %s %s", linePrefix, REMOVAL2, this.formatValue(oldObject,
|
|
106465
|
-
this.print("%s \u2514\u2500 %s %s", linePrefix, ADDITION2, this.formatValue(newObject,
|
|
106166
|
+
this.print("%s \u251C\u2500 %s %s", linePrefix, REMOVAL2, this.formatValue(oldObject, import_chalk7.default.red));
|
|
106167
|
+
this.print("%s \u2514\u2500 %s %s", linePrefix, ADDITION2, this.formatValue(newObject, import_chalk7.default.green));
|
|
106466
106168
|
}
|
|
106467
106169
|
} else if (oldObject !== void 0) {
|
|
106468
|
-
this.print("%s \u2514\u2500 %s", linePrefix, this.formatValue(oldObject,
|
|
106170
|
+
this.print("%s \u2514\u2500 %s", linePrefix, this.formatValue(oldObject, import_chalk7.default.red));
|
|
106469
106171
|
} else {
|
|
106470
|
-
this.print("%s \u2514\u2500 %s", linePrefix, this.formatValue(newObject,
|
|
106172
|
+
this.print("%s \u2514\u2500 %s", linePrefix, this.formatValue(newObject, import_chalk7.default.green));
|
|
106471
106173
|
}
|
|
106472
106174
|
return;
|
|
106473
106175
|
}
|
|
@@ -106480,12 +106182,12 @@ var init_format = __esm({
|
|
|
106480
106182
|
const newValue = newObject[key];
|
|
106481
106183
|
const treePrefix = key === lastKey ? "\u2514" : "\u251C";
|
|
106482
106184
|
if (oldValue !== void 0 && newValue !== void 0) {
|
|
106483
|
-
this.print("%s %s\u2500 %s %s:", linePrefix, treePrefix, this.changeTag(oldValue, newValue),
|
|
106185
|
+
this.print("%s %s\u2500 %s %s:", linePrefix, treePrefix, this.changeTag(oldValue, newValue), import_chalk7.default.blue(`.${key}`));
|
|
106484
106186
|
this.formatObjectDiff(oldValue, newValue, `${linePrefix} ${key === lastKey ? " " : "\u2502"}`);
|
|
106485
106187
|
} else if (oldValue !== void 0) {
|
|
106486
|
-
this.print("%s %s\u2500 %s Removed: %s", linePrefix, treePrefix, REMOVAL2,
|
|
106188
|
+
this.print("%s %s\u2500 %s Removed: %s", linePrefix, treePrefix, REMOVAL2, import_chalk7.default.blue(`.${key}`));
|
|
106487
106189
|
} else {
|
|
106488
|
-
this.print("%s %s\u2500 %s Added: %s", linePrefix, treePrefix, ADDITION2,
|
|
106190
|
+
this.print("%s %s\u2500 %s Added: %s", linePrefix, treePrefix, ADDITION2, import_chalk7.default.blue(`.${key}`));
|
|
106489
106191
|
}
|
|
106490
106192
|
}
|
|
106491
106193
|
}
|
|
@@ -106529,7 +106231,7 @@ var init_format = __esm({
|
|
|
106529
106231
|
formatLogicalId(logicalId) {
|
|
106530
106232
|
const normalized = this.normalizedLogicalIdPath(logicalId);
|
|
106531
106233
|
if (normalized) {
|
|
106532
|
-
return `${normalized} ${
|
|
106234
|
+
return `${normalized} ${import_chalk7.default.gray(logicalId)}`;
|
|
106533
106235
|
}
|
|
106534
106236
|
return logicalId;
|
|
106535
106237
|
}
|
|
@@ -106621,7 +106323,7 @@ function formatTypedMappings(stream, mappings) {
|
|
|
106621
106323
|
const rows = mappings.map((m4) => [m4.type, m4.sourcePath, m4.destinationPath]);
|
|
106622
106324
|
const formatter = new Formatter(stream, {});
|
|
106623
106325
|
formatter.print("The following resources were moved or renamed:");
|
|
106624
|
-
formatter.print(
|
|
106326
|
+
formatter.print(import_chalk8.default.green(formatTable(header.concat(rows), void 0)));
|
|
106625
106327
|
formatter.print(" ");
|
|
106626
106328
|
}
|
|
106627
106329
|
}
|
|
@@ -106631,18 +106333,18 @@ function formatAmbiguousMappings(stream, pairs) {
|
|
|
106631
106333
|
formatter.print("Detected ambiguities:");
|
|
106632
106334
|
formatter.print(tables.join("\n\n"));
|
|
106633
106335
|
formatter.print(" ");
|
|
106634
|
-
formatter.print(
|
|
106336
|
+
formatter.print(import_chalk8.default.yellow("Please provide an override file to resolve these ambiguous mappings."));
|
|
106635
106337
|
formatter.print(" ");
|
|
106636
106338
|
function renderTable2([removed, added]) {
|
|
106637
106339
|
return formatTable([["", "Resource"], renderRemoval(removed), renderAddition(added)], void 0);
|
|
106638
106340
|
}
|
|
106639
106341
|
__name(renderTable2, "renderTable");
|
|
106640
106342
|
function renderRemoval(locations) {
|
|
106641
|
-
return [
|
|
106343
|
+
return [import_chalk8.default.red("-"), import_chalk8.default.red(renderLocations(locations))];
|
|
106642
106344
|
}
|
|
106643
106345
|
__name(renderRemoval, "renderRemoval");
|
|
106644
106346
|
function renderAddition(locations) {
|
|
106645
|
-
return [
|
|
106347
|
+
return [import_chalk8.default.green("+"), import_chalk8.default.green(renderLocations(locations))];
|
|
106646
106348
|
}
|
|
106647
106349
|
__name(renderAddition, "renderAddition");
|
|
106648
106350
|
function renderLocations(locs) {
|
|
@@ -106650,11 +106352,11 @@ function formatAmbiguousMappings(stream, pairs) {
|
|
|
106650
106352
|
}
|
|
106651
106353
|
__name(renderLocations, "renderLocations");
|
|
106652
106354
|
}
|
|
106653
|
-
var
|
|
106355
|
+
var import_chalk8;
|
|
106654
106356
|
var init_mappings = __esm({
|
|
106655
106357
|
"../@aws-cdk/cloudformation-diff/lib/mappings.ts"() {
|
|
106656
106358
|
"use strict";
|
|
106657
|
-
|
|
106359
|
+
import_chalk8 = __toESM(require_source());
|
|
106658
106360
|
init_format();
|
|
106659
106361
|
init_format_table();
|
|
106660
106362
|
__name(formatEnvironmentSectionHeader, "formatEnvironmentSectionHeader");
|
|
@@ -106700,6 +106402,306 @@ var require_lib9 = __commonJS({
|
|
|
106700
106402
|
}
|
|
106701
106403
|
});
|
|
106702
106404
|
|
|
106405
|
+
// ../@aws-cdk/toolkit-lib/lib/api/deployments/assets.ts
|
|
106406
|
+
async function addMetadataAssetsToManifest(ioHelper, stack, assetManifest, envResources, reuse) {
|
|
106407
|
+
reuse = reuse || [];
|
|
106408
|
+
const assets = stack.assets;
|
|
106409
|
+
if (assets.length === 0) {
|
|
106410
|
+
return {};
|
|
106411
|
+
}
|
|
106412
|
+
const toolkitInfo = await envResources.lookupToolkit();
|
|
106413
|
+
if (!toolkitInfo.found) {
|
|
106414
|
+
throw new ToolkitError("BootstrapStackRequired", `This stack uses assets, so the toolkit stack must be deployed to the environment (Run "${import_chalk9.default.blue("cdk bootstrap " + stack.environment.name)}")`);
|
|
106415
|
+
}
|
|
106416
|
+
const params = {};
|
|
106417
|
+
for (const asset of assets) {
|
|
106418
|
+
const reuseAsset = reuse.indexOf(asset.id) > -1;
|
|
106419
|
+
if (reuseAsset) {
|
|
106420
|
+
await ioHelper.defaults.debug(`Reusing asset ${asset.id}: ${JSON.stringify(asset)}`);
|
|
106421
|
+
continue;
|
|
106422
|
+
}
|
|
106423
|
+
await ioHelper.defaults.debug(`Preparing asset ${asset.id}: ${JSON.stringify(asset)}`);
|
|
106424
|
+
if (!stack.assembly) {
|
|
106425
|
+
throw new ToolkitError("AssemblyRequired", "Unexpected: stack assembly is required in order to find assets in assembly directory");
|
|
106426
|
+
}
|
|
106427
|
+
Object.assign(params, await prepareAsset(ioHelper, asset, assetManifest, envResources, toolkitInfo));
|
|
106428
|
+
}
|
|
106429
|
+
return params;
|
|
106430
|
+
}
|
|
106431
|
+
async function prepareAsset(ioHelper, asset, assetManifest, envResources, toolkitInfo) {
|
|
106432
|
+
switch (asset.packaging) {
|
|
106433
|
+
case "zip":
|
|
106434
|
+
case "file":
|
|
106435
|
+
return prepareFileAsset(
|
|
106436
|
+
ioHelper,
|
|
106437
|
+
asset,
|
|
106438
|
+
assetManifest,
|
|
106439
|
+
toolkitInfo,
|
|
106440
|
+
asset.packaging === "zip" ? cxschema8.FileAssetPackaging.ZIP_DIRECTORY : cxschema8.FileAssetPackaging.FILE
|
|
106441
|
+
);
|
|
106442
|
+
case "container-image":
|
|
106443
|
+
return prepareDockerImageAsset(asset, assetManifest, envResources);
|
|
106444
|
+
default:
|
|
106445
|
+
throw new ToolkitError("UnsupportedPackaging", `Unsupported packaging type: ${asset.packaging}. You might need to upgrade your aws-cdk toolkit to support this asset type.`);
|
|
106446
|
+
}
|
|
106447
|
+
}
|
|
106448
|
+
async function prepareFileAsset(ioHelper, asset, assetManifest, toolkitInfo, packaging) {
|
|
106449
|
+
const extension = packaging === cxschema8.FileAssetPackaging.ZIP_DIRECTORY ? ".zip" : path18.extname(asset.path);
|
|
106450
|
+
const baseName = `${asset.sourceHash}${extension}`;
|
|
106451
|
+
const s3Prefix = asset.id === asset.sourceHash ? "assets/" : `assets/${asset.id}/`;
|
|
106452
|
+
const key = `${s3Prefix}${baseName}`;
|
|
106453
|
+
const s3url = `s3://${toolkitInfo.bucketName}/${key}`;
|
|
106454
|
+
await ioHelper.defaults.debug(`Storing asset ${asset.path} at ${s3url}`);
|
|
106455
|
+
assetManifest.addFileAsset(asset.sourceHash, {
|
|
106456
|
+
path: asset.path,
|
|
106457
|
+
packaging
|
|
106458
|
+
}, {
|
|
106459
|
+
bucketName: toolkitInfo.bucketName,
|
|
106460
|
+
objectKey: key
|
|
106461
|
+
});
|
|
106462
|
+
return {
|
|
106463
|
+
[asset.s3BucketParameter]: toolkitInfo.bucketName,
|
|
106464
|
+
[asset.s3KeyParameter]: `${s3Prefix}${cxapi3.ASSET_PREFIX_SEPARATOR}${baseName}`,
|
|
106465
|
+
[asset.artifactHashParameter]: asset.sourceHash
|
|
106466
|
+
};
|
|
106467
|
+
}
|
|
106468
|
+
async function prepareDockerImageAsset(asset, assetManifest, envResources) {
|
|
106469
|
+
if (!asset.imageNameParameter && (!asset.repositoryName || !asset.imageTag)) {
|
|
106470
|
+
throw new ToolkitError("InvalidDockerAssetConfig", 'Invalid Docker image asset configuration: "repositoryName" and "imageTag" are required when "imageNameParameter" is left out');
|
|
106471
|
+
}
|
|
106472
|
+
const repositoryName = asset.repositoryName ?? "cdk/" + asset.id.replace(/[:/]/g, "-").toLowerCase();
|
|
106473
|
+
const { repositoryUri: repositoryUri2 } = await envResources.prepareEcrRepository(repositoryName);
|
|
106474
|
+
const imageTag = asset.imageTag ?? asset.sourceHash;
|
|
106475
|
+
assetManifest.addDockerImageAsset(asset.sourceHash, {
|
|
106476
|
+
directory: asset.path,
|
|
106477
|
+
dockerBuildArgs: asset.buildArgs,
|
|
106478
|
+
dockerBuildSecrets: asset.buildSecrets,
|
|
106479
|
+
dockerBuildSsh: asset.buildSsh,
|
|
106480
|
+
dockerBuildTarget: asset.target,
|
|
106481
|
+
dockerFile: asset.file,
|
|
106482
|
+
networkMode: asset.networkMode,
|
|
106483
|
+
platform: asset.platform,
|
|
106484
|
+
dockerOutputs: asset.outputs
|
|
106485
|
+
}, {
|
|
106486
|
+
repositoryName,
|
|
106487
|
+
imageTag
|
|
106488
|
+
});
|
|
106489
|
+
if (!asset.imageNameParameter) {
|
|
106490
|
+
return {};
|
|
106491
|
+
}
|
|
106492
|
+
return { [asset.imageNameParameter]: `${repositoryUri2}:${imageTag}` };
|
|
106493
|
+
}
|
|
106494
|
+
var path18, cxapi3, cxschema8, import_chalk9;
|
|
106495
|
+
var init_assets3 = __esm({
|
|
106496
|
+
"../@aws-cdk/toolkit-lib/lib/api/deployments/assets.ts"() {
|
|
106497
|
+
"use strict";
|
|
106498
|
+
path18 = __toESM(require("path"));
|
|
106499
|
+
cxapi3 = __toESM(require_lib3());
|
|
106500
|
+
cxschema8 = __toESM(require_lib2());
|
|
106501
|
+
import_chalk9 = __toESM(require_source());
|
|
106502
|
+
init_toolkit_error();
|
|
106503
|
+
__name(addMetadataAssetsToManifest, "addMetadataAssetsToManifest");
|
|
106504
|
+
__name(prepareAsset, "prepareAsset");
|
|
106505
|
+
__name(prepareFileAsset, "prepareFileAsset");
|
|
106506
|
+
__name(prepareDockerImageAsset, "prepareDockerImageAsset");
|
|
106507
|
+
}
|
|
106508
|
+
});
|
|
106509
|
+
|
|
106510
|
+
// ../@aws-cdk/toolkit-lib/lib/actions/deploy/private/deployment-method.ts
|
|
106511
|
+
function isChangeSetDeployment(method) {
|
|
106512
|
+
return method?.method === "change-set";
|
|
106513
|
+
}
|
|
106514
|
+
function isExecutingChangeSetDeployment(method) {
|
|
106515
|
+
return isChangeSetDeployment(method) && (method.execute ?? true);
|
|
106516
|
+
}
|
|
106517
|
+
function isNonExecutingChangeSetDeployment(method) {
|
|
106518
|
+
return isChangeSetDeployment(method) && method.execute === false;
|
|
106519
|
+
}
|
|
106520
|
+
function isExecuteChangeSetDeployment(method) {
|
|
106521
|
+
return method?.method === "execute-change-set";
|
|
106522
|
+
}
|
|
106523
|
+
function toExecuteChangeSetDeployment(method) {
|
|
106524
|
+
return {
|
|
106525
|
+
method: "execute-change-set",
|
|
106526
|
+
changeSetName: method.changeSetName ?? DEFAULT_DEPLOY_CHANGE_SET_NAME
|
|
106527
|
+
};
|
|
106528
|
+
}
|
|
106529
|
+
var DEFAULT_DEPLOY_CHANGE_SET_NAME;
|
|
106530
|
+
var init_deployment_method = __esm({
|
|
106531
|
+
"../@aws-cdk/toolkit-lib/lib/actions/deploy/private/deployment-method.ts"() {
|
|
106532
|
+
"use strict";
|
|
106533
|
+
DEFAULT_DEPLOY_CHANGE_SET_NAME = "cdk-deploy-change-set";
|
|
106534
|
+
__name(isChangeSetDeployment, "isChangeSetDeployment");
|
|
106535
|
+
__name(isExecutingChangeSetDeployment, "isExecutingChangeSetDeployment");
|
|
106536
|
+
__name(isNonExecutingChangeSetDeployment, "isNonExecutingChangeSetDeployment");
|
|
106537
|
+
__name(isExecuteChangeSetDeployment, "isExecuteChangeSetDeployment");
|
|
106538
|
+
__name(toExecuteChangeSetDeployment, "toExecuteChangeSetDeployment");
|
|
106539
|
+
}
|
|
106540
|
+
});
|
|
106541
|
+
|
|
106542
|
+
// ../@aws-cdk/toolkit-lib/lib/payloads/hotswap.ts
|
|
106543
|
+
var NonHotswappableReason;
|
|
106544
|
+
var init_hotswap = __esm({
|
|
106545
|
+
"../@aws-cdk/toolkit-lib/lib/payloads/hotswap.ts"() {
|
|
106546
|
+
"use strict";
|
|
106547
|
+
NonHotswappableReason = /* @__PURE__ */ ((NonHotswappableReason2) => {
|
|
106548
|
+
NonHotswappableReason2["TAGS"] = "tags";
|
|
106549
|
+
NonHotswappableReason2["PROPERTIES"] = "properties";
|
|
106550
|
+
NonHotswappableReason2["OUTPUT"] = "output";
|
|
106551
|
+
NonHotswappableReason2["DEPENDENCY_UNSUPPORTED"] = "dependency-unsupported";
|
|
106552
|
+
NonHotswappableReason2["RESOURCE_UNSUPPORTED"] = "resource-unsupported";
|
|
106553
|
+
NonHotswappableReason2["RESOURCE_CREATION"] = "resource-creation";
|
|
106554
|
+
NonHotswappableReason2["RESOURCE_DELETION"] = "resource-deletion";
|
|
106555
|
+
NonHotswappableReason2["RESOURCE_TYPE_CHANGED"] = "resource-type-changed";
|
|
106556
|
+
NonHotswappableReason2["NESTED_STACK_CREATION"] = "nested-stack-creation";
|
|
106557
|
+
return NonHotswappableReason2;
|
|
106558
|
+
})(NonHotswappableReason || {});
|
|
106559
|
+
}
|
|
106560
|
+
});
|
|
106561
|
+
|
|
106562
|
+
// ../@aws-cdk/toolkit-lib/lib/api/hotswap/common.ts
|
|
106563
|
+
function createHotswapPropertyOverrides(props) {
|
|
106564
|
+
return new HotswapPropertyOverrides(new EcsHotswapProperties(
|
|
106565
|
+
props.ecs?.minimumHealthyPercent,
|
|
106566
|
+
props.ecs?.maximumHealthyPercent,
|
|
106567
|
+
props.ecs?.stabilizationTimeoutSeconds
|
|
106568
|
+
));
|
|
106569
|
+
}
|
|
106570
|
+
function classifyChanges(xs, hotswappablePropNames) {
|
|
106571
|
+
const hotswappableProps = {};
|
|
106572
|
+
const nonHotswappableProps = {};
|
|
106573
|
+
for (const [name, propDiff] of Object.entries(xs.propertyUpdates)) {
|
|
106574
|
+
if (hotswappablePropNames.includes(name)) {
|
|
106575
|
+
hotswappableProps[name] = propDiff;
|
|
106576
|
+
} else {
|
|
106577
|
+
nonHotswappableProps[name] = propDiff;
|
|
106578
|
+
}
|
|
106579
|
+
}
|
|
106580
|
+
return new ClassifiedChanges(xs, hotswappableProps, nonHotswappableProps);
|
|
106581
|
+
}
|
|
106582
|
+
function nonHotswappableChange(change, reason, description, nonHotswappableProps, hotswapOnlyVisible = true) {
|
|
106583
|
+
return {
|
|
106584
|
+
hotswappable: false,
|
|
106585
|
+
hotswapOnlyVisible,
|
|
106586
|
+
change: {
|
|
106587
|
+
reason,
|
|
106588
|
+
description,
|
|
106589
|
+
subject: {
|
|
106590
|
+
type: "Resource",
|
|
106591
|
+
logicalId: change.logicalId,
|
|
106592
|
+
resourceType: change.newValue.Type,
|
|
106593
|
+
rejectedProperties: Object.keys(nonHotswappableProps ?? change.propertyUpdates),
|
|
106594
|
+
metadata: change.metadata
|
|
106595
|
+
}
|
|
106596
|
+
}
|
|
106597
|
+
};
|
|
106598
|
+
}
|
|
106599
|
+
function nonHotswappableResource(change) {
|
|
106600
|
+
return {
|
|
106601
|
+
hotswappable: false,
|
|
106602
|
+
change: {
|
|
106603
|
+
reason: "resource-unsupported" /* RESOURCE_UNSUPPORTED */,
|
|
106604
|
+
description: "This resource type is not supported for hotswap deployments",
|
|
106605
|
+
subject: {
|
|
106606
|
+
type: "Resource",
|
|
106607
|
+
logicalId: change.logicalId,
|
|
106608
|
+
resourceType: change.newValue.Type,
|
|
106609
|
+
rejectedProperties: Object.keys(change.propertyUpdates),
|
|
106610
|
+
metadata: change.metadata
|
|
106611
|
+
}
|
|
106612
|
+
}
|
|
106613
|
+
};
|
|
106614
|
+
}
|
|
106615
|
+
var ICON, HotswapPropertyOverrides, EcsHotswapProperties, ClassifiedChanges;
|
|
106616
|
+
var init_common3 = __esm({
|
|
106617
|
+
"../@aws-cdk/toolkit-lib/lib/api/hotswap/common.ts"() {
|
|
106618
|
+
"use strict";
|
|
106619
|
+
init_hotswap();
|
|
106620
|
+
init_toolkit_error();
|
|
106621
|
+
ICON = "\u2728";
|
|
106622
|
+
HotswapPropertyOverrides = class {
|
|
106623
|
+
static {
|
|
106624
|
+
__name(this, "HotswapPropertyOverrides");
|
|
106625
|
+
}
|
|
106626
|
+
// Each supported resource type will have its own properties. Currently this is ECS
|
|
106627
|
+
ecs;
|
|
106628
|
+
constructor(ecs) {
|
|
106629
|
+
this.ecs = ecs;
|
|
106630
|
+
}
|
|
106631
|
+
};
|
|
106632
|
+
EcsHotswapProperties = class {
|
|
106633
|
+
static {
|
|
106634
|
+
__name(this, "EcsHotswapProperties");
|
|
106635
|
+
}
|
|
106636
|
+
// The lower limit on the number of your service's tasks that must remain in the RUNNING state during a deployment, as a percentage of the desiredCount
|
|
106637
|
+
minimumHealthyPercent;
|
|
106638
|
+
// The upper limit on the number of your service's tasks that are allowed in the RUNNING or PENDING state during a deployment, as a percentage of the desiredCount
|
|
106639
|
+
maximumHealthyPercent;
|
|
106640
|
+
// The number of seconds to wait for a single service to reach stable state.
|
|
106641
|
+
stabilizationTimeoutSeconds;
|
|
106642
|
+
constructor(minimumHealthyPercent, maximumHealthyPercent, stabilizationTimeoutSeconds) {
|
|
106643
|
+
if (minimumHealthyPercent !== void 0 && minimumHealthyPercent < 0) {
|
|
106644
|
+
throw new ToolkitError("InvalidEcsMinHealthyPercent", "hotswap-ecs-minimum-healthy-percent can't be a negative number");
|
|
106645
|
+
}
|
|
106646
|
+
if (maximumHealthyPercent !== void 0 && maximumHealthyPercent < 0) {
|
|
106647
|
+
throw new ToolkitError("InvalidEcsMaxHealthyPercent", "hotswap-ecs-maximum-healthy-percent can't be a negative number");
|
|
106648
|
+
}
|
|
106649
|
+
if (stabilizationTimeoutSeconds !== void 0 && stabilizationTimeoutSeconds < 0) {
|
|
106650
|
+
throw new ToolkitError("InvalidEcsStabilizationTimeout", "hotswap-ecs-stabilization-timeout-seconds can't be a negative number");
|
|
106651
|
+
}
|
|
106652
|
+
if (minimumHealthyPercent == void 0) {
|
|
106653
|
+
this.minimumHealthyPercent = 0;
|
|
106654
|
+
} else {
|
|
106655
|
+
this.minimumHealthyPercent = minimumHealthyPercent;
|
|
106656
|
+
}
|
|
106657
|
+
this.maximumHealthyPercent = maximumHealthyPercent;
|
|
106658
|
+
this.stabilizationTimeoutSeconds = stabilizationTimeoutSeconds;
|
|
106659
|
+
}
|
|
106660
|
+
/**
|
|
106661
|
+
* Check if any hotswap properties are defined
|
|
106662
|
+
* @returns true if all properties are undefined, false otherwise
|
|
106663
|
+
*/
|
|
106664
|
+
isEmpty() {
|
|
106665
|
+
return this.minimumHealthyPercent === 0 && this.maximumHealthyPercent === void 0;
|
|
106666
|
+
}
|
|
106667
|
+
};
|
|
106668
|
+
__name(createHotswapPropertyOverrides, "createHotswapPropertyOverrides");
|
|
106669
|
+
ClassifiedChanges = class {
|
|
106670
|
+
constructor(change, hotswappableProps, nonHotswappableProps) {
|
|
106671
|
+
this.change = change;
|
|
106672
|
+
this.hotswappableProps = hotswappableProps;
|
|
106673
|
+
this.nonHotswappableProps = nonHotswappableProps;
|
|
106674
|
+
}
|
|
106675
|
+
change;
|
|
106676
|
+
hotswappableProps;
|
|
106677
|
+
nonHotswappableProps;
|
|
106678
|
+
static {
|
|
106679
|
+
__name(this, "ClassifiedChanges");
|
|
106680
|
+
}
|
|
106681
|
+
reportNonHotswappablePropertyChanges(ret) {
|
|
106682
|
+
const nonHotswappablePropNames = Object.keys(this.nonHotswappableProps);
|
|
106683
|
+
if (nonHotswappablePropNames.length > 0) {
|
|
106684
|
+
const tagOnlyChange = nonHotswappablePropNames.length === 1 && nonHotswappablePropNames[0] === "Tags";
|
|
106685
|
+
const reason = tagOnlyChange ? "tags" /* TAGS */ : "properties" /* PROPERTIES */;
|
|
106686
|
+
const description = tagOnlyChange ? "Tags are not hotswappable" : `resource properties '${nonHotswappablePropNames}' are not hotswappable on this resource type`;
|
|
106687
|
+
ret.push(nonHotswappableChange(
|
|
106688
|
+
this.change,
|
|
106689
|
+
reason,
|
|
106690
|
+
description,
|
|
106691
|
+
this.nonHotswappableProps
|
|
106692
|
+
));
|
|
106693
|
+
}
|
|
106694
|
+
}
|
|
106695
|
+
get namesOfHotswappableProps() {
|
|
106696
|
+
return Object.keys(this.hotswappableProps);
|
|
106697
|
+
}
|
|
106698
|
+
};
|
|
106699
|
+
__name(classifyChanges, "classifyChanges");
|
|
106700
|
+
__name(nonHotswappableChange, "nonHotswappableChange");
|
|
106701
|
+
__name(nonHotswappableResource, "nonHotswappableResource");
|
|
106702
|
+
}
|
|
106703
|
+
});
|
|
106704
|
+
|
|
106703
106705
|
// ../@aws-cdk/toolkit-lib/lib/payloads/bootstrap-environment-progress.ts
|
|
106704
106706
|
var init_bootstrap_environment_progress = __esm({
|
|
106705
106707
|
"../@aws-cdk/toolkit-lib/lib/payloads/bootstrap-environment-progress.ts"() {
|
|
@@ -108639,6 +108641,15 @@ async function canSkipDeploy(deployStackOptions, cloudFormationStack, parameterC
|
|
|
108639
108641
|
await ioHelper.defaults.debug(`${deployName}: stack is in a failure state`);
|
|
108640
108642
|
return false;
|
|
108641
108643
|
}
|
|
108644
|
+
const hotswapCache = await readHotswapTemplateCache(
|
|
108645
|
+
deployStackOptions.stack.assembly.directory,
|
|
108646
|
+
deployStackOptions.stack.stackName,
|
|
108647
|
+
deployStackOptions.stack.template
|
|
108648
|
+
);
|
|
108649
|
+
if (hotswapCache && (0, import_cloudformation_diff.diffTemplate)(hotswapCache.deployedRootTemplate, deployStackOptions.stack.template).differenceCount > 0) {
|
|
108650
|
+
await ioHelper.defaults.debug(`${deployName}: template has changed in relation to last successful hotswap deployment`);
|
|
108651
|
+
return false;
|
|
108652
|
+
}
|
|
108642
108653
|
return true;
|
|
108643
108654
|
}
|
|
108644
108655
|
function compareTags(a6, b6) {
|
|
@@ -108665,12 +108676,13 @@ function hasReplacement(report) {
|
|
|
108665
108676
|
return a6 === "ReplaceAndDelete" || a6 === "ReplaceAndRetain" || a6 === "ReplaceAndSnapshot";
|
|
108666
108677
|
});
|
|
108667
108678
|
}
|
|
108668
|
-
var import_node_crypto10, import_node_util3, import_chalk11, FullCloudFormationDeployment;
|
|
108679
|
+
var import_node_crypto10, import_node_util3, import_cloudformation_diff, import_chalk11, FullCloudFormationDeployment;
|
|
108669
108680
|
var init_deploy_stack = __esm({
|
|
108670
108681
|
"../@aws-cdk/toolkit-lib/lib/api/deployments/deploy-stack.ts"() {
|
|
108671
108682
|
"use strict";
|
|
108672
108683
|
import_node_crypto10 = require("node:crypto");
|
|
108673
108684
|
import_node_util3 = require("node:util");
|
|
108685
|
+
import_cloudformation_diff = __toESM(require_lib9());
|
|
108674
108686
|
import_chalk11 = __toESM(require_source());
|
|
108675
108687
|
init_asset_manifest_builder();
|
|
108676
108688
|
init_asset_publishing();
|
|
@@ -108775,10 +108787,12 @@ var init_deploy_stack = __esm({
|
|
|
108775
108787
|
};
|
|
108776
108788
|
}
|
|
108777
108789
|
if (!execute2) {
|
|
108778
|
-
|
|
108779
|
-
|
|
108780
|
-
|
|
108781
|
-
|
|
108790
|
+
if (!this.options.willExecuteChangeSet) {
|
|
108791
|
+
await this.ioHelper.defaults.info((0, import_node_util3.format)(
|
|
108792
|
+
"Changeset %s created and waiting in review for manual execution (--no-execute)",
|
|
108793
|
+
changeSetDescription.ChangeSetId
|
|
108794
|
+
));
|
|
108795
|
+
}
|
|
108782
108796
|
return {
|
|
108783
108797
|
type: "did-deploy-stack",
|
|
108784
108798
|
noOp: false,
|
|
@@ -110388,6 +110402,7 @@ var init_deployments = __esm({
|
|
|
110388
110402
|
envResources: env3.resources,
|
|
110389
110403
|
tags: options.tags,
|
|
110390
110404
|
deploymentMethod: options.deploymentMethod,
|
|
110405
|
+
willExecuteChangeSet: options.willExecuteChangeSet,
|
|
110391
110406
|
forceDeployment: options.forceDeployment,
|
|
110392
110407
|
parameters: options.parameters,
|
|
110393
110408
|
usePreviousParameters: options.usePreviousParameters,
|
|
@@ -110422,7 +110437,7 @@ var init_deployments = __esm({
|
|
|
110422
110437
|
if (result2.type !== "did-deploy-stack") {
|
|
110423
110438
|
return void 0;
|
|
110424
110439
|
}
|
|
110425
|
-
if (result2.noOp && options.
|
|
110440
|
+
if (result2.noOp && options.willExecuteChangeSet) {
|
|
110426
110441
|
const changeSetName = options.deploymentMethod.changeSetName ?? DEFAULT_DEPLOY_CHANGE_SET_NAME;
|
|
110427
110442
|
await this.cleanupChangeSet(options.stack, changeSetName, options.stackEventPollingInterval);
|
|
110428
110443
|
}
|
|
@@ -291011,12 +291026,12 @@ function obscureDiff(diff) {
|
|
|
291011
291026
|
});
|
|
291012
291027
|
}
|
|
291013
291028
|
}
|
|
291014
|
-
var import_node_util6,
|
|
291029
|
+
var import_node_util6, import_cloudformation_diff2, import_chalk15, DiffFormatter;
|
|
291015
291030
|
var init_diff_formatter = __esm({
|
|
291016
291031
|
"../@aws-cdk/toolkit-lib/lib/api/diff/diff-formatter.ts"() {
|
|
291017
291032
|
"use strict";
|
|
291018
291033
|
import_node_util6 = require("node:util");
|
|
291019
|
-
|
|
291034
|
+
import_cloudformation_diff2 = __toESM(require_lib9());
|
|
291020
291035
|
import_chalk15 = __toESM(require_source());
|
|
291021
291036
|
init_payloads();
|
|
291022
291037
|
init_logical_id_map();
|
|
@@ -291053,7 +291068,7 @@ var init_diff_formatter = __esm({
|
|
|
291053
291068
|
*/
|
|
291054
291069
|
computeDiff(stackName, oldTemplate, newTemplate, changeSet, mappings) {
|
|
291055
291070
|
if (!this.cache.has(stackName)) {
|
|
291056
|
-
const templateDiff = (0,
|
|
291071
|
+
const templateDiff = (0, import_cloudformation_diff2.fullDiff)(oldTemplate, newTemplate, changeSet, this.isImport);
|
|
291057
291072
|
const setMove = /* @__PURE__ */ __name((change, direction, location) => {
|
|
291058
291073
|
if (location != null) {
|
|
291059
291074
|
const [sourceStackName, sourceLogicalId] = location.split(".");
|
|
@@ -291107,8 +291122,8 @@ var init_diff_formatter = __esm({
|
|
|
291107
291122
|
}
|
|
291108
291123
|
let activeDiff = diff;
|
|
291109
291124
|
if (diff.differenceCount && !options.strict) {
|
|
291110
|
-
const mangledNewTemplate = JSON.parse((0,
|
|
291111
|
-
const mangledDiff = (0,
|
|
291125
|
+
const mangledNewTemplate = JSON.parse((0, import_cloudformation_diff2.mangleLikeCloudFormation)(JSON.stringify(newTemplate)));
|
|
291126
|
+
const mangledDiff = (0, import_cloudformation_diff2.fullDiff)(oldTemplate, mangledNewTemplate, changeSet);
|
|
291112
291127
|
filteredChangesCount = Math.max(0, diff.differenceCount - mangledDiff.differenceCount);
|
|
291113
291128
|
if (filteredChangesCount > 0) {
|
|
291114
291129
|
activeDiff = mangledDiff;
|
|
@@ -291121,7 +291136,7 @@ var init_diff_formatter = __esm({
|
|
|
291121
291136
|
const metadataWasFiltered = diffWasNonEmpty && activeDiff.isEmpty;
|
|
291122
291137
|
if (!activeDiff.isEmpty) {
|
|
291123
291138
|
numStacksWithChanges++;
|
|
291124
|
-
(0,
|
|
291139
|
+
(0, import_cloudformation_diff2.formatDifferences)(stream, activeDiff, {
|
|
291125
291140
|
...logicalIdMapFromTemplate(oldTemplate),
|
|
291126
291141
|
...logicalIdMapFromTemplate(newTemplate),
|
|
291127
291142
|
...logicalIdMap
|
|
@@ -291178,7 +291193,7 @@ var init_diff_formatter = __esm({
|
|
|
291178
291193
|
`));
|
|
291179
291194
|
}
|
|
291180
291195
|
try {
|
|
291181
|
-
(0,
|
|
291196
|
+
(0, import_cloudformation_diff2.formatSecurityChanges)(stream, diff, {
|
|
291182
291197
|
...logicalIdMapFromTemplate(newTemplate),
|
|
291183
291198
|
...logicalIdMap
|
|
291184
291199
|
});
|
|
@@ -297452,13 +297467,13 @@ async function listStacks(sdkProvider, environment) {
|
|
|
297452
297467
|
}
|
|
297453
297468
|
function formatEnvironmentSectionHeader2(environment) {
|
|
297454
297469
|
const env3 = `aws://${environment.account}/${environment.region}`;
|
|
297455
|
-
return formatToStream((stream) => (0,
|
|
297470
|
+
return formatToStream((stream) => (0, import_cloudformation_diff3.formatEnvironmentSectionHeader)(stream, env3));
|
|
297456
297471
|
}
|
|
297457
297472
|
function formatTypedMappings2(mappings) {
|
|
297458
|
-
return formatToStream((stream) => (0,
|
|
297473
|
+
return formatToStream((stream) => (0, import_cloudformation_diff3.formatTypedMappings)(stream, mappings));
|
|
297459
297474
|
}
|
|
297460
297475
|
function formatAmbiguousMappings2(paths) {
|
|
297461
|
-
return formatToStream((stream) => (0,
|
|
297476
|
+
return formatToStream((stream) => (0, import_cloudformation_diff3.formatAmbiguousMappings)(stream, paths));
|
|
297462
297477
|
}
|
|
297463
297478
|
function formatToStream(cb) {
|
|
297464
297479
|
const stream = new StringWriteStream();
|
|
@@ -297493,11 +297508,11 @@ async function groupStacks(sdkProvider, localStacks, additionalStackNames) {
|
|
|
297493
297508
|
}
|
|
297494
297509
|
return groups;
|
|
297495
297510
|
}
|
|
297496
|
-
var
|
|
297511
|
+
var import_cloudformation_diff3;
|
|
297497
297512
|
var init_refactoring = __esm({
|
|
297498
297513
|
"../@aws-cdk/toolkit-lib/lib/api/refactoring/index.ts"() {
|
|
297499
297514
|
"use strict";
|
|
297500
|
-
|
|
297515
|
+
import_cloudformation_diff3 = __toESM(require_lib9());
|
|
297501
297516
|
init_util4();
|
|
297502
297517
|
init_plugin2();
|
|
297503
297518
|
init_streams();
|
|
@@ -297813,12 +297828,12 @@ var init_tags2 = __esm({
|
|
|
297813
297828
|
});
|
|
297814
297829
|
|
|
297815
297830
|
// ../@aws-cdk/toolkit-lib/lib/api/drift/drift-formatter.ts
|
|
297816
|
-
var import_node_util7,
|
|
297831
|
+
var import_node_util7, import_cloudformation_diff4, import_client_cloudformation7, import_chalk24, DriftFormatter, ADDITION3, CONTEXT2, UPDATE3, REMOVAL3;
|
|
297817
297832
|
var init_drift_formatter = __esm({
|
|
297818
297833
|
"../@aws-cdk/toolkit-lib/lib/api/drift/drift-formatter.ts"() {
|
|
297819
297834
|
"use strict";
|
|
297820
297835
|
import_node_util7 = require("node:util");
|
|
297821
|
-
|
|
297836
|
+
import_cloudformation_diff4 = __toESM(require_lib9());
|
|
297822
297837
|
import_client_cloudformation7 = __toESM(require_dist_cjs25());
|
|
297823
297838
|
import_chalk24 = __toESM(require_source());
|
|
297824
297839
|
init_logical_id_map();
|
|
@@ -297924,7 +297939,7 @@ ${actualDrifts.length} resource${actualDrifts.length === 1 ? "" : "s"} ${actualD
|
|
|
297924
297939
|
for (let i6 = 0; i6 < propDiffs.length; i6++) {
|
|
297925
297940
|
const diff = propDiffs[i6];
|
|
297926
297941
|
if (!diff.PropertyPath) continue;
|
|
297927
|
-
const difference2 = new
|
|
297942
|
+
const difference2 = new import_cloudformation_diff4.Difference(diff.ExpectedValue, diff.ActualValue);
|
|
297928
297943
|
modified += this.formatTreeDiff(diff.PropertyPath, difference2, i6 === propDiffs.length - 1);
|
|
297929
297944
|
}
|
|
297930
297945
|
}
|
|
@@ -299329,7 +299344,7 @@ var init_toolkit = __esm({
|
|
|
299329
299344
|
const prepareResult = isChangeSetDeployment(options.deploymentMethod) ? await deployments.prepareStack({
|
|
299330
299345
|
...sharedDeployOptions,
|
|
299331
299346
|
deploymentMethod: options.deploymentMethod,
|
|
299332
|
-
|
|
299347
|
+
willExecuteChangeSet: isExecutingChangeSetDeployment(options.deploymentMethod)
|
|
299333
299348
|
}) : void 0;
|
|
299334
299349
|
if (!prepareResult?.noOp) {
|
|
299335
299350
|
const diffChangeSet = isExecuteChangeSetDeployment(options.deploymentMethod) ? (await deployments.describeChangeSet(stack, options.deploymentMethod.changeSetName, prepareResult?.stackArn)).changeSet : prepareResult?.changeSet;
|
|
@@ -308985,13 +309000,13 @@ function effectiveValue(flag) {
|
|
|
308985
309000
|
function defaultValue(flag) {
|
|
308986
309001
|
return flag.unconfiguredBehavesLike?.v2 ?? false;
|
|
308987
309002
|
}
|
|
308988
|
-
var os13, path45,
|
|
309003
|
+
var os13, path45, import_cloudformation_diff5, import_toolkit_lib17, import_chalk32, fs48, import_p_queue, FlagOperations;
|
|
308989
309004
|
var init_operations = __esm({
|
|
308990
309005
|
"lib/commands/flags/operations.ts"() {
|
|
308991
309006
|
"use strict";
|
|
308992
309007
|
os13 = __toESM(require("os"));
|
|
308993
309008
|
path45 = __toESM(require("path"));
|
|
308994
|
-
|
|
309009
|
+
import_cloudformation_diff5 = __toESM(require_lib9());
|
|
308995
309010
|
import_toolkit_lib17 = __toESM(require_lib12());
|
|
308996
309011
|
import_chalk32 = __toESM(require_source());
|
|
308997
309012
|
fs48 = __toESM(require_lib4());
|
|
@@ -309391,7 +309406,7 @@ var init_operations = __esm({
|
|
|
309391
309406
|
String(effectiveValue(flag))
|
|
309392
309407
|
]);
|
|
309393
309408
|
});
|
|
309394
|
-
const formattedTable = (0,
|
|
309409
|
+
const formattedTable = (0, import_cloudformation_diff5.formatTable)(rows, void 0, true);
|
|
309395
309410
|
await this.ioHelper.defaults.info(formattedTable);
|
|
309396
309411
|
}
|
|
309397
309412
|
/** Checks if a flag has a boolean recommended value */
|
|
@@ -310650,7 +310665,7 @@ Do you wish to deploy these changes?`;
|
|
|
310650
310665
|
const prepareResult = isChangeSetDeployment(this.options.deploymentMethod) ? await this.deployments.prepareStack({
|
|
310651
310666
|
...sharedDeployOptions,
|
|
310652
310667
|
deploymentMethod: this.options.deploymentMethod,
|
|
310653
|
-
|
|
310668
|
+
willExecuteChangeSet: isExecutingChangeSetDeployment(this.options.deploymentMethod)
|
|
310654
310669
|
}) : void 0;
|
|
310655
310670
|
if (this.options.requireApproval !== import_cloud_assembly_schema9.RequireApproval.NEVER && !prepareResult?.noOp) {
|
|
310656
310671
|
const currentTemplate = await this.deployments.readCurrentTemplate(stack);
|