@go-to-k/cdkd 0.267.11 → 0.267.12

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/dist/cli.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
- import { $ as WorkGraph, $t as NestedStackChildDirectDestroyError, A as slowCcOperationTimeoutMs, At as CFN_TEMPLATE_BODY_LIMIT, B as applyRoleArnIfSet, Bt as AwsClients, C as yellow, Ct as resolveAutoAssetStorage, D as ProviderRegistry, Dt as resolveStateBucketWithDefaultAndSource, E as clearOnUpdateRemoval, Et as resolveStateBucketWithDefault, F as refStateLookupFromResource, Ft as expectedOwnerParam, G as DagBuilder, Gt as CdkdError, H as describeTypeWithThrottleRetry, Ht as resetAwsClients, I as WAFv2WebACLProvider, It as AssemblyReader, J as S3StateBackend, Jt as LocalInvokeBuildError$1, K as TemplateParser, L as normalizeAwsTagsToCfn, Lt as processStackMessages, M as isTerminationProtectionPropagationError, Mt as MIGRATE_TMP_PREFIX, N as IntrinsicFunctionResolver, Nt as findLargeInlineResources, O as findActionableSilentDrops, Ot as resolveUseCdkBootstrapAssets, P as cfnRefValueFromPhysicalId, Pt as uploadCfnTemplate, Q as stringifyValue, Qt as MissingCdkCliError, R as resolveExplicitPhysicalId, S as red, St as resolveApp, T as collectInlinePolicyNamesManagedBySiblings, Tt as resolveSkipPrefix, U as withRetry, Ut as setAwsClients, V as DiffCalculator, Vt as getAwsClients, W as isRetryableTransientError, X as shouldRetainResource, Xt as LocalStartServiceError, Y as rebuildClientForBucketRegion, Yt as LocalMigrateError, Z as AssetPublisher, _ as formatResourceLine, _t as getDockerImageBySourceHash, a as DeploymentEventsStore, an as StackTerminationProtectionError, at as BOOTSTRAP_MARKER_PREFIX, b as gray, bt as getDefaultStateBucketName, c as replayFailedOperations, ct as parseBootstrapMarker, d as IMPLICIT_DELETE_DEPENDENCIES, dn as withErrorHandling, dt as buildDockerImage, en as PartialFailureError, et as buildAssetRedirectMap, f as computeImplicitDeleteEdges, ft as formatDockerLoginError, g as renderStatefulReason, gt as AssetManifestLoader, h as isStatefulRecreateTargetSync, ht as runDockerStreaming, i as DeploymentEventsReader, in as StackHasActiveImportsError, it as AssetModeResolver, j as disableInstanceApiTermination, jt as CFN_TEMPLATE_URL_LIMIT, k as CloudControlProvider, kt as warnDeprecatedNoPrefixCliFlag, l as replayRollback, lt as validateAssetBucketName, m as MULTI_REGION_RECREATE_BLOCKED_TYPES, mt as runDockerForeground, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as ResourceTimeoutError, nt as loadPublishableAssetManifest, o as planFailedOps, ot as ensureAssetStorage, p as extractDeploymentEventError, pt as getDockerCmd, q as LockManager, r as DeployEngine, rn as ResourceUpdateNotSupportedError, rt as rewriteTemplateAssetReferences, s as planRollback, st as getBootstrapMarkerKey, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as ProvisioningError, tt as createAssetRedirectResolver, u as withResourceDeadline, un as normalizeAwsError, ut as validateContainerRepoName, v as bold, vt as Synthesizer, w as IAMRoleProvider, wt as resolveCaptureObservedState, x as green, xt as getLegacyStateBucketName, y as cyan, yt as synthesisStatusMessage, z as assertRegionMatch, zt as resolveBucketRegion } from "./deploy-engine-ChJTdrUr.js";
2
+ import { $ as WorkGraph, $t as NestedStackChildDirectDestroyError, A as slowCcOperationTimeoutMs, At as CFN_TEMPLATE_BODY_LIMIT, B as applyRoleArnIfSet, Bt as AwsClients, C as yellow, Ct as resolveAutoAssetStorage, D as ProviderRegistry, Dt as resolveStateBucketWithDefaultAndSource, E as clearOnUpdateRemoval, Et as resolveStateBucketWithDefault, F as refStateLookupFromResource, Ft as expectedOwnerParam, G as DagBuilder, Gt as CdkdError, H as describeTypeWithThrottleRetry, Ht as resetAwsClients, I as WAFv2WebACLProvider, It as AssemblyReader, J as S3StateBackend, Jt as LocalInvokeBuildError$1, K as TemplateParser, L as normalizeAwsTagsToCfn, Lt as processStackMessages, M as isTerminationProtectionPropagationError, Mt as MIGRATE_TMP_PREFIX, N as IntrinsicFunctionResolver, Nt as findLargeInlineResources, O as findActionableSilentDrops, Ot as resolveUseCdkBootstrapAssets, P as cfnRefValueFromPhysicalId, Pt as uploadCfnTemplate, Q as stringifyValue, Qt as MissingCdkCliError, R as resolveExplicitPhysicalId, S as red, St as resolveApp, T as collectInlinePolicyNamesManagedBySiblings, Tt as resolveSkipPrefix, U as withRetry, Ut as setAwsClients, V as DiffCalculator, Vt as getAwsClients, W as isRetryableTransientError, X as shouldRetainResource, Xt as LocalStartServiceError, Y as rebuildClientForBucketRegion, Yt as LocalMigrateError, Z as AssetPublisher, _ as formatResourceLine, _t as getDockerImageBySourceHash, a as DeploymentEventsStore, an as StackTerminationProtectionError, at as BOOTSTRAP_MARKER_PREFIX, b as gray, bt as getDefaultStateBucketName, c as replayFailedOperations, ct as parseBootstrapMarker, d as IMPLICIT_DELETE_DEPENDENCIES, dn as withErrorHandling, dt as buildDockerImage, en as PartialFailureError, et as buildAssetRedirectMap, f as computeImplicitDeleteEdges, ft as formatDockerLoginError, g as renderStatefulReason, gt as AssetManifestLoader, h as isStatefulRecreateTargetSync, ht as runDockerStreaming, i as DeploymentEventsReader, in as StackHasActiveImportsError, it as AssetModeResolver, j as disableInstanceApiTermination, jt as CFN_TEMPLATE_URL_LIMIT, k as CloudControlProvider, kt as warnDeprecatedNoPrefixCliFlag, l as replayRollback, lt as validateAssetBucketName, m as MULTI_REGION_RECREATE_BLOCKED_TYPES, mt as runDockerForeground, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as ResourceTimeoutError, nt as loadPublishableAssetManifest, o as planFailedOps, ot as ensureAssetStorage, p as extractDeploymentEventError, pt as getDockerCmd, q as LockManager, r as DeployEngine, rn as ResourceUpdateNotSupportedError, rt as rewriteTemplateAssetReferences, s as planRollback, st as getBootstrapMarkerKey, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as ProvisioningError, tt as createAssetRedirectResolver, u as withResourceDeadline, un as normalizeAwsError, ut as validateContainerRepoName, v as bold, vt as Synthesizer, w as IAMRoleProvider, wt as resolveCaptureObservedState, x as green, xt as getLegacyStateBucketName, y as cyan, yt as synthesisStatusMessage, z as assertRegionMatch, zt as resolveBucketRegion } from "./deploy-engine-CqnKG1Ta.js";
3
3
  import { a as getLiveRenderer, c as PATTERN_B_RESOURCE_TYPES, d as generateResourceNameWithFallback, f as withSkipPrefix, i as runStackBuffered, n as getLogger, o as PATTERN_B_NAME_OPTIONS, p as withStackName, s as PATTERN_B_NAME_PROPERTIES, u as generateResourceName } from "./logger-BYMEE-BS.js";
4
- import { t as ASGProvider } from "./asg-provider-CKDQjSTS.js";
4
+ import { t as ASGProvider } from "./asg-provider-BSt-wWnn.js";
5
5
  import { AsyncLocalStorage } from "node:async_hooks";
6
6
  import { createHash, randomBytes, randomUUID } from "node:crypto";
7
7
  import { CopyObjectCommand, CreateBucketCommand, DeleteBucketAnalyticsConfigurationCommand, DeleteBucketCommand, DeleteBucketCorsCommand, DeleteBucketIntelligentTieringConfigurationCommand, DeleteBucketInventoryConfigurationCommand, DeleteBucketLifecycleCommand, DeleteBucketMetricsConfigurationCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, DeleteBucketWebsiteCommand, DeleteObjectsCommand, GetBucketAccelerateConfigurationCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketLoggingCommand, GetBucketNotificationConfigurationCommand, GetBucketPolicyCommand, GetBucketReplicationCommand, GetBucketTaggingCommand, GetBucketVersioningCommand, GetBucketWebsiteCommand, GetObjectCommand, GetObjectLockConfigurationCommand, GetPublicAccessBlockCommand, HeadBucketCommand, ListBucketAnalyticsConfigurationsCommand, ListBucketIntelligentTieringConfigurationsCommand, ListBucketInventoryConfigurationsCommand, ListBucketMetricsConfigurationsCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchBucket, PutBucketAccelerateConfigurationCommand, PutBucketAnalyticsConfigurationCommand, PutBucketCorsCommand, PutBucketEncryptionCommand, PutBucketIntelligentTieringConfigurationCommand, PutBucketInventoryConfigurationCommand, PutBucketLifecycleConfigurationCommand, PutBucketLoggingCommand, PutBucketMetricsConfigurationCommand, PutBucketNotificationConfigurationCommand, PutBucketOwnershipControlsCommand, PutBucketPolicyCommand, PutBucketReplicationCommand, PutBucketTaggingCommand, PutBucketVersioningCommand, PutBucketWebsiteCommand, PutObjectCommand, PutObjectLockConfigurationCommand, PutPublicAccessBlockCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
@@ -28060,7 +28060,7 @@ var ElastiCacheProvider = class {
28060
28060
  }
28061
28061
  async update(logicalId, physicalId, resourceType, properties, previousProperties) {
28062
28062
  switch (resourceType) {
28063
- case "AWS::ElastiCache::SubnetGroup": return this.updateSubnetGroup(logicalId, physicalId, resourceType, properties);
28063
+ case "AWS::ElastiCache::SubnetGroup": return this.updateSubnetGroup(logicalId, physicalId, resourceType, properties, previousProperties);
28064
28064
  case "AWS::ElastiCache::CacheCluster": return this.updateCacheCluster(logicalId, physicalId, resourceType, properties, previousProperties);
28065
28065
  default: throw new ProvisioningError(`Unsupported resource type: ${resourceType}`, resourceType, logicalId, physicalId);
28066
28066
  }
@@ -28094,12 +28094,12 @@ var ElastiCacheProvider = class {
28094
28094
  throw new ProvisioningError(`Failed to create CacheSubnetGroup ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, cacheSubnetGroupName, cause);
28095
28095
  }
28096
28096
  }
28097
- async updateSubnetGroup(logicalId, physicalId, resourceType, properties) {
28097
+ async updateSubnetGroup(logicalId, physicalId, resourceType, properties, previousProperties) {
28098
28098
  this.logger.debug(`Updating CacheSubnetGroup ${logicalId}: ${physicalId}`);
28099
28099
  try {
28100
28100
  await this.getClient().send(new ModifyCacheSubnetGroupCommand({
28101
28101
  CacheSubnetGroupName: physicalId,
28102
- CacheSubnetGroupDescription: properties["Description"] ?? properties["CacheSubnetGroupDescription"],
28102
+ CacheSubnetGroupDescription: clearOnUpdateRemoval(properties["Description"] ?? properties["CacheSubnetGroupDescription"], previousProperties["Description"] ?? previousProperties["CacheSubnetGroupDescription"], `Subnet group for ${logicalId}`),
28103
28103
  SubnetIds: properties["SubnetIds"]
28104
28104
  }));
28105
28105
  this.logger.debug(`Successfully updated CacheSubnetGroup ${logicalId}`);
@@ -28189,6 +28189,8 @@ var ElastiCacheProvider = class {
28189
28189
  try {
28190
28190
  const rawSgIds = properties["VpcSecurityGroupIds"];
28191
28191
  const sgIds = rawSgIds && rawSgIds.length > 0 ? rawSgIds : void 0;
28192
+ const notificationTopicArn = properties["NotificationTopicArn"];
28193
+ const notificationRemoved = notificationTopicArn === void 0 && previousProperties["NotificationTopicArn"] != null;
28192
28194
  await this.getClient().send(new ModifyCacheClusterCommand({
28193
28195
  CacheClusterId: physicalId,
28194
28196
  NumCacheNodes: properties["NumCacheNodes"] != null ? Number(properties["NumCacheNodes"]) : void 0,
@@ -28196,11 +28198,13 @@ var ElastiCacheProvider = class {
28196
28198
  CacheParameterGroupName: properties["CacheParameterGroupName"],
28197
28199
  EngineVersion: properties["EngineVersion"],
28198
28200
  PreferredMaintenanceWindow: properties["PreferredMaintenanceWindow"],
28199
- SnapshotRetentionLimit: properties["SnapshotRetentionLimit"] != null ? Number(properties["SnapshotRetentionLimit"]) : void 0,
28201
+ SnapshotRetentionLimit: clearOnUpdateRemoval(properties["SnapshotRetentionLimit"] != null ? Number(properties["SnapshotRetentionLimit"]) : void 0, previousProperties["SnapshotRetentionLimit"] != null ? Number(previousProperties["SnapshotRetentionLimit"]) : void 0, 0),
28200
28202
  SnapshotWindow: properties["SnapshotWindow"],
28201
- AutoMinorVersionUpgrade: properties["AutoMinorVersionUpgrade"],
28202
- NotificationTopicArn: properties["NotificationTopicArn"],
28203
- LogDeliveryConfigurations: properties["LogDeliveryConfigurations"],
28203
+ AutoMinorVersionUpgrade: clearOnUpdateRemoval(properties["AutoMinorVersionUpgrade"], previousProperties["AutoMinorVersionUpgrade"], true),
28204
+ NotificationTopicArn: notificationTopicArn,
28205
+ ...notificationRemoved && { NotificationTopicStatus: "inactive" },
28206
+ ...notificationTopicArn !== void 0 && { NotificationTopicStatus: "active" },
28207
+ LogDeliveryConfigurations: this.buildLogDeliveryConfigurationsForUpdate(properties["LogDeliveryConfigurations"], previousProperties["LogDeliveryConfigurations"]),
28204
28208
  IpDiscovery: properties["IpDiscovery"],
28205
28209
  ApplyImmediately: true
28206
28210
  }));
@@ -28246,6 +28250,30 @@ var ElastiCacheProvider = class {
28246
28250
  }
28247
28251
  }
28248
28252
  /**
28253
+ * Build the `LogDeliveryConfigurations` input for ModifyCacheCluster so a
28254
+ * log type REMOVED from the template is explicitly disabled (issue #1160).
28255
+ *
28256
+ * ModifyCacheCluster applies each request entry to ONLY its own LogType
28257
+ * (per-entry merge semantics), so both a whole-property removal and a
28258
+ * per-entry removal would silently keep the live delivery config. The
28259
+ * documented disable sentinel is `{ LogType, Enabled: false }`
28260
+ * (LogDeliveryConfigurationRequest doc: "Specify if log delivery is
28261
+ * enabled. Default true."). Kept / added entries pass through unchanged;
28262
+ * previously-configured log types missing from the new template get a
28263
+ * disable entry appended. Returns `undefined` when there is nothing to
28264
+ * send (no change).
28265
+ */
28266
+ buildLogDeliveryConfigurationsForUpdate(newConfigs, previousConfigs) {
28267
+ const kept = newConfigs ?? [];
28268
+ const keptLogTypes = new Set(kept.map((c) => c.LogType).filter((t) => t !== void 0));
28269
+ const disables = (previousConfigs ?? []).filter((c) => c.LogType !== void 0 && !keptLogTypes.has(c.LogType)).map((c) => ({
28270
+ LogType: c.LogType,
28271
+ Enabled: false
28272
+ }));
28273
+ const merged = [...kept, ...disables];
28274
+ return merged.length > 0 ? merged : void 0;
28275
+ }
28276
+ /**
28249
28277
  * Apply a diff between old and new CFn-shape Tags arrays via ElastiCache's
28250
28278
  * `AddTagsToResource` / `RemoveTagsFromResource` APIs (keyed by
28251
28279
  * `ResourceName=arn`).
@@ -28389,7 +28417,7 @@ var ElastiCacheProvider = class {
28389
28417
  if (cluster.SnapshotRetentionLimit !== void 0) result["SnapshotRetentionLimit"] = cluster.SnapshotRetentionLimit;
28390
28418
  if (cluster.SnapshotWindow !== void 0) result["SnapshotWindow"] = cluster.SnapshotWindow;
28391
28419
  if (cluster.AutoMinorVersionUpgrade !== void 0) result["AutoMinorVersionUpgrade"] = cluster.AutoMinorVersionUpgrade;
28392
- if (cluster.NotificationConfiguration?.TopicArn !== void 0) result["NotificationTopicArn"] = cluster.NotificationConfiguration.TopicArn;
28420
+ if (cluster.NotificationConfiguration?.TopicArn !== void 0 && cluster.NotificationConfiguration.TopicStatus !== "inactive") result["NotificationTopicArn"] = cluster.NotificationConfiguration.TopicArn;
28393
28421
  if (cluster.IpDiscovery !== void 0) result["IpDiscovery"] = cluster.IpDiscovery;
28394
28422
  if (cluster.NetworkType !== void 0) result["NetworkType"] = cluster.NetworkType;
28395
28423
  if (cluster.Engine === "redis" && cluster.TransitEncryptionEnabled !== void 0) result["TransitEncryptionEnabled"] = cluster.TransitEncryptionEnabled;
@@ -61986,7 +62014,7 @@ function createMigrateCommand() {
61986
62014
  */
61987
62015
  function buildProgram() {
61988
62016
  const program = new Command();
61989
- program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.267.11");
62017
+ program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.267.12");
61990
62018
  program.hook("preAction", (_thisCommand, actionCommand) => {
61991
62019
  const { profile } = actionCommand.optsWithGlobals();
61992
62020
  if (profile !== void 0) process.env["AWS_PROFILE"] = profile;