@go-to-k/cdkd 0.267.15 → 0.267.17

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-D7oQWXsX.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-D-55wJlE.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-BhY47O9R.js";
4
+ import { t as ASGProvider } from "./asg-provider-CGSEz9er.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";
@@ -2870,6 +2870,7 @@ var IAMManagedPolicyProvider = class {
2870
2870
  attributes: { PolicyArn: policyArn }
2871
2871
  };
2872
2872
  } catch (error) {
2873
+ if (error instanceof CdkdError) throw error;
2873
2874
  const cause = error instanceof Error ? error : void 0;
2874
2875
  throw new ProvisioningError(`Failed to create IAM managed policy ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, policyName, cause);
2875
2876
  }
@@ -7020,8 +7021,28 @@ var SNSTopicProvider = class {
7020
7021
  *
7021
7022
  * SNS topics have limited mutable properties (DisplayName, KmsMasterKeyId, etc.).
7022
7023
  * TopicName is immutable and requires replacement (handled by deployment layer).
7024
+ *
7025
+ * Thin wrapper that maps any AWS SDK failure onto {@link ProvisioningError}
7026
+ * the same way {@link create} and {@link delete} do, so an update failure
7027
+ * carries cdkd's typed error formatting and exit-code handling instead of
7028
+ * surfacing raw (issue #1267). This provider issues many separate `send`
7029
+ * calls across attributes / policies / subscriptions, so the wrap lives at
7030
+ * the boundary and the body stays in {@link applyUpdate}.
7031
+ *
7032
+ * A typed control-flow error is re-thrown untouched: the deploy engine
7033
+ * matches those by class to decide its fallback, so swallowing one into a
7034
+ * ProvisioningError would silently disable that path.
7023
7035
  */
7024
- async update(logicalId, physicalId, _resourceType, properties, previousProperties) {
7036
+ async update(logicalId, physicalId, resourceType, properties, previousProperties) {
7037
+ try {
7038
+ return await this.applyUpdate(logicalId, physicalId, properties, previousProperties);
7039
+ } catch (error) {
7040
+ if (error instanceof CdkdError) throw error;
7041
+ const cause = error instanceof Error ? error : void 0;
7042
+ throw new ProvisioningError(`Failed to update SNS topic ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
7043
+ }
7044
+ }
7045
+ async applyUpdate(logicalId, physicalId, properties, previousProperties) {
7025
7046
  this.logger.debug(`Updating SNS topic ${logicalId}: ${physicalId}`);
7026
7047
  for (const attr of [
7027
7048
  {
@@ -9391,8 +9412,27 @@ var LambdaEventSourceMappingProvider = class {
9391
9412
  }
9392
9413
  /**
9393
9414
  * Update a Lambda Event Source Mapping
9415
+ *
9416
+ * Thin wrapper that maps any AWS SDK failure onto {@link ProvisioningError}
9417
+ * the same way {@link create} and {@link delete} do, so an update failure
9418
+ * carries cdkd's typed error formatting and exit-code handling instead of
9419
+ * surfacing raw (issue #1267). The body lives in {@link applyUpdate} so the
9420
+ * wrap is a boundary concern rather than a large indentation change.
9421
+ *
9422
+ * A typed control-flow error is re-thrown untouched: the deploy engine
9423
+ * matches those by class to decide its fallback, so swallowing one into a
9424
+ * ProvisioningError would silently disable that path.
9394
9425
  */
9395
- async update(logicalId, physicalId, _resourceType, properties, previousProperties) {
9426
+ async update(logicalId, physicalId, resourceType, properties, previousProperties) {
9427
+ try {
9428
+ return await this.applyUpdate(logicalId, physicalId, properties, previousProperties);
9429
+ } catch (error) {
9430
+ if (error instanceof CdkdError) throw error;
9431
+ const cause = error instanceof Error ? error : void 0;
9432
+ throw new ProvisioningError(`Failed to update event source mapping ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
9433
+ }
9434
+ }
9435
+ async applyUpdate(logicalId, physicalId, properties, previousProperties) {
9396
9436
  this.logger.debug(`Updating event source mapping ${logicalId}: ${physicalId}`);
9397
9437
  const updateParams = {
9398
9438
  UUID: physicalId,
@@ -12856,8 +12896,28 @@ var LogsLogGroupProvider = class {
12856
12896
  * class after creation), so a class change throws
12857
12897
  * {@link ResourceUpdateNotSupportedError} instead of being silently
12858
12898
  * dropped; `--replace` recreates the log group under the new class.
12899
+ *
12900
+ * Thin wrapper that maps any AWS SDK failure onto {@link ProvisioningError}
12901
+ * the same way {@link create} and {@link delete} do, so an update failure
12902
+ * carries cdkd's typed error formatting and exit-code handling instead of
12903
+ * surfacing raw (issue #1267). The body lives in {@link applyUpdate} so the
12904
+ * wrap is a boundary concern rather than a large indentation change.
12905
+ *
12906
+ * The {@link ResourceUpdateNotSupportedError} thrown by the LogGroupClass
12907
+ * guard is re-thrown untouched: the deploy engine matches it by class to
12908
+ * fall back to replacement, so swallowing it into a ProvisioningError would
12909
+ * turn a recoverable class change into a hard failure.
12859
12910
  */
12860
- async update(logicalId, physicalId, _resourceType, properties, previousProperties) {
12911
+ async update(logicalId, physicalId, resourceType, properties, previousProperties) {
12912
+ try {
12913
+ return await this.applyUpdate(logicalId, physicalId, properties, previousProperties);
12914
+ } catch (error) {
12915
+ if (error instanceof CdkdError) throw error;
12916
+ const cause = error instanceof Error ? error : void 0;
12917
+ throw new ProvisioningError(`Failed to update log group ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
12918
+ }
12919
+ }
12920
+ async applyUpdate(logicalId, physicalId, properties, previousProperties) {
12861
12921
  this.logger.debug(`Updating log group ${logicalId}: ${physicalId}`);
12862
12922
  const normalizeClass = (v) => typeof v === "string" && v.length > 0 ? v : "STANDARD";
12863
12923
  const prevClass = normalizeClass(previousProperties["LogGroupClass"]);
@@ -14422,8 +14482,30 @@ var EventBridgeBusProvider = class {
14422
14482
  throw new ProvisioningError(`Failed to create EventBus ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, void 0, cause);
14423
14483
  }
14424
14484
  }
14425
- async update(_logicalId, physicalId, _resourceType, properties, previousProperties) {
14426
- this.logger.debug(`Updating EventBus ${_logicalId}: ${physicalId}`);
14485
+ /**
14486
+ * Update an EventBus.
14487
+ *
14488
+ * Thin wrapper that maps any AWS SDK failure onto {@link ProvisioningError}
14489
+ * the same way {@link create} and {@link delete} do, so an update failure
14490
+ * carries cdkd's typed error formatting and exit-code handling instead of
14491
+ * surfacing raw (issue #1267). The body lives in {@link applyUpdate} so the
14492
+ * wrap is a boundary concern rather than a 70-line indentation change.
14493
+ *
14494
+ * A typed control-flow error is re-thrown untouched: the deploy engine
14495
+ * matches those by class to decide its fallback, so swallowing one into a
14496
+ * ProvisioningError would silently disable that path.
14497
+ */
14498
+ async update(logicalId, physicalId, resourceType, properties, previousProperties) {
14499
+ try {
14500
+ return await this.applyUpdate(logicalId, physicalId, properties, previousProperties);
14501
+ } catch (error) {
14502
+ if (error instanceof CdkdError) throw error;
14503
+ const cause = error instanceof Error ? error : void 0;
14504
+ throw new ProvisioningError(`Failed to update EventBus ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
14505
+ }
14506
+ }
14507
+ async applyUpdate(logicalId, physicalId, properties, previousProperties) {
14508
+ this.logger.debug(`Updating EventBus ${logicalId}: ${physicalId}`);
14427
14509
  const descChanged = properties["Description"] !== previousProperties["Description"];
14428
14510
  const kmsChanged = properties["KmsKeyIdentifier"] !== previousProperties["KmsKeyIdentifier"];
14429
14511
  const dlcChanged = JSON.stringify(properties["DeadLetterConfig"]) !== JSON.stringify(previousProperties["DeadLetterConfig"]);
@@ -14750,6 +14832,15 @@ var EC2Provider = class {
14750
14832
  }
14751
14833
  }
14752
14834
  async update(logicalId, physicalId, resourceType, properties, previousProperties) {
14835
+ try {
14836
+ return await this.applyUpdate(logicalId, physicalId, resourceType, properties, previousProperties);
14837
+ } catch (error) {
14838
+ if (error instanceof CdkdError) throw error;
14839
+ const cause = error instanceof Error ? error : void 0;
14840
+ throw new ProvisioningError(`Failed to update EC2 resource ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
14841
+ }
14842
+ }
14843
+ async applyUpdate(logicalId, physicalId, resourceType, properties, previousProperties) {
14753
14844
  switch (resourceType) {
14754
14845
  case "AWS::EC2::VPC": return this.updateVpc(logicalId, physicalId, resourceType, properties, previousProperties);
14755
14846
  case "AWS::EC2::Subnet": return this.updateSubnet(logicalId, physicalId);
@@ -15400,6 +15491,7 @@ var EC2Provider = class {
15400
15491
  ...createResult.attributes && { attributes: createResult.attributes }
15401
15492
  };
15402
15493
  } catch (error) {
15494
+ if (error instanceof CdkdError) throw error;
15403
15495
  const cause = error instanceof Error ? error : void 0;
15404
15496
  throw new ProvisioningError(`Failed to update Route ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
15405
15497
  }
@@ -15654,6 +15746,7 @@ var EC2Provider = class {
15654
15746
  ...createResult.attributes && { attributes: createResult.attributes }
15655
15747
  };
15656
15748
  } catch (error) {
15749
+ if (error instanceof CdkdError) throw error;
15657
15750
  const cause = error instanceof Error ? error : void 0;
15658
15751
  throw new ProvisioningError(`Failed to update SecurityGroupIngress ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
15659
15752
  }
@@ -19845,6 +19938,7 @@ var CloudFrontDistributionProvider = class {
19845
19938
  }
19846
19939
  };
19847
19940
  } catch (error) {
19941
+ if (error instanceof CdkdError) throw error;
19848
19942
  const cause = error instanceof Error ? error : void 0;
19849
19943
  throw new ProvisioningError(`Failed to update CloudFront Distribution ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
19850
19944
  }
@@ -23107,6 +23201,15 @@ var ELBv2Provider = class {
23107
23201
  }
23108
23202
  }
23109
23203
  async update(logicalId, physicalId, resourceType, properties, previousProperties) {
23204
+ try {
23205
+ return await this.applyUpdate(logicalId, physicalId, resourceType, properties, previousProperties);
23206
+ } catch (error) {
23207
+ if (error instanceof CdkdError) throw error;
23208
+ const cause = error instanceof Error ? error : void 0;
23209
+ throw new ProvisioningError(`Failed to update ELBv2 resource ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
23210
+ }
23211
+ }
23212
+ async applyUpdate(logicalId, physicalId, resourceType, properties, previousProperties) {
23110
23213
  switch (resourceType) {
23111
23214
  case "AWS::ElasticLoadBalancingV2::LoadBalancer": return this.updateLoadBalancer(logicalId, physicalId, resourceType, properties, previousProperties);
23112
23215
  case "AWS::ElasticLoadBalancingV2::TargetGroup": return this.updateTargetGroup(logicalId, physicalId, resourceType, properties, previousProperties);
@@ -33261,6 +33364,15 @@ var KinesisStreamConsumerProvider = class {
33261
33364
  * "use cdkd deploy --replace" suggestion.
33262
33365
  */
33263
33366
  async update(logicalId, physicalId, resourceType, properties, previousProperties) {
33367
+ try {
33368
+ return await this.applyUpdate(logicalId, physicalId, resourceType, properties, previousProperties);
33369
+ } catch (error) {
33370
+ if (error instanceof CdkdError) throw error;
33371
+ const cause = error instanceof Error ? error : void 0;
33372
+ throw new ProvisioningError(`Failed to update Kinesis stream consumer ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
33373
+ }
33374
+ }
33375
+ async applyUpdate(logicalId, physicalId, resourceType, properties, previousProperties) {
33264
33376
  const newConsumerName = properties["ConsumerName"];
33265
33377
  const oldConsumerName = previousProperties["ConsumerName"];
33266
33378
  const newStreamArn = properties["StreamARN"];
@@ -37142,6 +37254,15 @@ var FirehoseProvider = class {
37142
37254
  * can `cdkd deploy --replace`.
37143
37255
  */
37144
37256
  async update(logicalId, physicalId, resourceType, properties, previousProperties) {
37257
+ try {
37258
+ return await this.applyUpdate(logicalId, physicalId, resourceType, properties, previousProperties);
37259
+ } catch (error) {
37260
+ if (error instanceof CdkdError) throw error;
37261
+ const cause = error instanceof Error ? error : void 0;
37262
+ throw new ProvisioningError(`Failed to update Firehose delivery stream ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
37263
+ }
37264
+ }
37265
+ async applyUpdate(logicalId, physicalId, resourceType, properties, previousProperties) {
37145
37266
  this.logger.debug(`Updating Firehose delivery stream ${logicalId}: ${physicalId}`);
37146
37267
  const destKey = this.findDestinationKey(properties);
37147
37268
  const prevDestKey = this.findDestinationKey(previousProperties);
@@ -40159,6 +40280,15 @@ var S3TablesProvider = class {
40159
40280
  }
40160
40281
  }
40161
40282
  async update(logicalId, physicalId, resourceType, properties, previousProperties) {
40283
+ try {
40284
+ return await this.applyUpdate(logicalId, physicalId, resourceType, properties, previousProperties);
40285
+ } catch (error) {
40286
+ if (error instanceof CdkdError) throw error;
40287
+ const cause = error instanceof Error ? error : void 0;
40288
+ throw new ProvisioningError(`Failed to update S3 Tables resource ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
40289
+ }
40290
+ }
40291
+ async applyUpdate(logicalId, physicalId, resourceType, properties, previousProperties) {
40162
40292
  if (resourceType === "AWS::S3Tables::Table") await this.applyTableTagsDiff(logicalId, physicalId, resourceType, previousProperties["Tags"], properties["Tags"]);
40163
40293
  else if (resourceType === "AWS::S3Tables::TableBucket") await this.applyTableBucketTagsDiff(logicalId, physicalId, resourceType, previousProperties["Tags"], properties["Tags"]);
40164
40294
  else this.logger.debug(`Update is no-op for ${resourceType} ${logicalId}`);
@@ -41906,6 +42036,7 @@ var ACMCertificateProvider = class {
41906
42036
  }
41907
42037
  };
41908
42038
  } catch (error) {
42039
+ if (error instanceof CdkdError) throw error;
41909
42040
  const cause = error instanceof Error ? error : void 0;
41910
42041
  throw new ProvisioningError(`Failed to create ACM certificate ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, void 0, cause);
41911
42042
  }
@@ -62086,7 +62217,7 @@ function createMigrateCommand() {
62086
62217
  */
62087
62218
  function buildProgram() {
62088
62219
  const program = new Command();
62089
- program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.267.15");
62220
+ program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.267.17");
62090
62221
  program.hook("preAction", (_thisCommand, actionCommand) => {
62091
62222
  const { profile } = actionCommand.optsWithGlobals();
62092
62223
  if (profile !== void 0) process.env["AWS_PROFILE"] = profile;