@go-to-k/cdkd 0.267.14 → 0.267.16

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-BbcBkfds.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-BjGr3po1.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-dQRoK5OE.js";
4
+ import { t as ASGProvider } from "./asg-provider-Ge0MCN5U.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";
@@ -7020,8 +7020,28 @@ var SNSTopicProvider = class {
7020
7020
  *
7021
7021
  * SNS topics have limited mutable properties (DisplayName, KmsMasterKeyId, etc.).
7022
7022
  * TopicName is immutable and requires replacement (handled by deployment layer).
7023
+ *
7024
+ * Thin wrapper that maps any AWS SDK failure onto {@link ProvisioningError}
7025
+ * the same way {@link create} and {@link delete} do, so an update failure
7026
+ * carries cdkd's typed error formatting and exit-code handling instead of
7027
+ * surfacing raw (issue #1267). This provider issues many separate `send`
7028
+ * calls across attributes / policies / subscriptions, so the wrap lives at
7029
+ * the boundary and the body stays in {@link applyUpdate}.
7030
+ *
7031
+ * A typed control-flow error is re-thrown untouched: the deploy engine
7032
+ * matches those by class to decide its fallback, so swallowing one into a
7033
+ * ProvisioningError would silently disable that path.
7023
7034
  */
7024
- async update(logicalId, physicalId, _resourceType, properties, previousProperties) {
7035
+ async update(logicalId, physicalId, resourceType, properties, previousProperties) {
7036
+ try {
7037
+ return await this.applyUpdate(logicalId, physicalId, properties, previousProperties);
7038
+ } catch (error) {
7039
+ if (error instanceof CdkdError) throw error;
7040
+ const cause = error instanceof Error ? error : void 0;
7041
+ throw new ProvisioningError(`Failed to update SNS topic ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
7042
+ }
7043
+ }
7044
+ async applyUpdate(logicalId, physicalId, properties, previousProperties) {
7025
7045
  this.logger.debug(`Updating SNS topic ${logicalId}: ${physicalId}`);
7026
7046
  for (const attr of [
7027
7047
  {
@@ -9042,7 +9062,7 @@ var LambdaUrlProvider = class {
9042
9062
  /**
9043
9063
  * Update a Lambda Function URL
9044
9064
  */
9045
- async update(logicalId, physicalId, _resourceType, properties, previousProperties) {
9065
+ async update(logicalId, physicalId, resourceType, properties, previousProperties) {
9046
9066
  this.logger.debug(`Updating Lambda URL ${logicalId}: ${physicalId}`);
9047
9067
  const handled = this.handledProperties.get("AWS::Lambda::Url") ?? /* @__PURE__ */ new Set();
9048
9068
  let changed = false;
@@ -9067,15 +9087,20 @@ var LambdaUrlProvider = class {
9067
9087
  const prevCorsBuilt = prevCorsRaw ? this.buildCorsConfig(prevCorsRaw) : void 0;
9068
9088
  const corsParam = clearOnUpdateRemoval(newCorsBuilt && Object.keys(newCorsBuilt).length > 0 ? newCorsBuilt : void 0, prevCorsBuilt && Object.keys(prevCorsBuilt).length > 0 ? prevCorsBuilt : void 0, {});
9069
9089
  if (corsParam !== void 0) updateParams.Cors = corsParam;
9070
- const response = await this.lambdaClient.send(new UpdateFunctionUrlConfigCommand(updateParams));
9071
- return {
9072
- physicalId,
9073
- wasReplaced: false,
9074
- attributes: {
9075
- FunctionUrl: response.FunctionUrl,
9076
- FunctionArn: response.FunctionArn
9077
- }
9078
- };
9090
+ try {
9091
+ const response = await this.lambdaClient.send(new UpdateFunctionUrlConfigCommand(updateParams));
9092
+ return {
9093
+ physicalId,
9094
+ wasReplaced: false,
9095
+ attributes: {
9096
+ FunctionUrl: response.FunctionUrl,
9097
+ FunctionArn: response.FunctionArn
9098
+ }
9099
+ };
9100
+ } catch (error) {
9101
+ const cause = error instanceof Error ? error : void 0;
9102
+ throw new ProvisioningError(`Failed to update Lambda URL ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
9103
+ }
9079
9104
  }
9080
9105
  /**
9081
9106
  * Delete a Lambda Function URL
@@ -9386,8 +9411,27 @@ var LambdaEventSourceMappingProvider = class {
9386
9411
  }
9387
9412
  /**
9388
9413
  * Update a Lambda Event Source Mapping
9414
+ *
9415
+ * Thin wrapper that maps any AWS SDK failure onto {@link ProvisioningError}
9416
+ * the same way {@link create} and {@link delete} do, so an update failure
9417
+ * carries cdkd's typed error formatting and exit-code handling instead of
9418
+ * surfacing raw (issue #1267). The body lives in {@link applyUpdate} so the
9419
+ * wrap is a boundary concern rather than a large indentation change.
9420
+ *
9421
+ * A typed control-flow error is re-thrown untouched: the deploy engine
9422
+ * matches those by class to decide its fallback, so swallowing one into a
9423
+ * ProvisioningError would silently disable that path.
9389
9424
  */
9390
- async update(logicalId, physicalId, _resourceType, properties, previousProperties) {
9425
+ async update(logicalId, physicalId, resourceType, properties, previousProperties) {
9426
+ try {
9427
+ return await this.applyUpdate(logicalId, physicalId, properties, previousProperties);
9428
+ } catch (error) {
9429
+ if (error instanceof CdkdError) throw error;
9430
+ const cause = error instanceof Error ? error : void 0;
9431
+ throw new ProvisioningError(`Failed to update event source mapping ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
9432
+ }
9433
+ }
9434
+ async applyUpdate(logicalId, physicalId, properties, previousProperties) {
9391
9435
  this.logger.debug(`Updating event source mapping ${logicalId}: ${physicalId}`);
9392
9436
  const updateParams = {
9393
9437
  UUID: physicalId,
@@ -12851,8 +12895,28 @@ var LogsLogGroupProvider = class {
12851
12895
  * class after creation), so a class change throws
12852
12896
  * {@link ResourceUpdateNotSupportedError} instead of being silently
12853
12897
  * dropped; `--replace` recreates the log group under the new class.
12898
+ *
12899
+ * Thin wrapper that maps any AWS SDK failure onto {@link ProvisioningError}
12900
+ * the same way {@link create} and {@link delete} do, so an update failure
12901
+ * carries cdkd's typed error formatting and exit-code handling instead of
12902
+ * surfacing raw (issue #1267). The body lives in {@link applyUpdate} so the
12903
+ * wrap is a boundary concern rather than a large indentation change.
12904
+ *
12905
+ * The {@link ResourceUpdateNotSupportedError} thrown by the LogGroupClass
12906
+ * guard is re-thrown untouched: the deploy engine matches it by class to
12907
+ * fall back to replacement, so swallowing it into a ProvisioningError would
12908
+ * turn a recoverable class change into a hard failure.
12854
12909
  */
12855
- async update(logicalId, physicalId, _resourceType, properties, previousProperties) {
12910
+ async update(logicalId, physicalId, resourceType, properties, previousProperties) {
12911
+ try {
12912
+ return await this.applyUpdate(logicalId, physicalId, properties, previousProperties);
12913
+ } catch (error) {
12914
+ if (error instanceof CdkdError) throw error;
12915
+ const cause = error instanceof Error ? error : void 0;
12916
+ throw new ProvisioningError(`Failed to update log group ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
12917
+ }
12918
+ }
12919
+ async applyUpdate(logicalId, physicalId, properties, previousProperties) {
12856
12920
  this.logger.debug(`Updating log group ${logicalId}: ${physicalId}`);
12857
12921
  const normalizeClass = (v) => typeof v === "string" && v.length > 0 ? v : "STANDARD";
12858
12922
  const prevClass = normalizeClass(previousProperties["LogGroupClass"]);
@@ -14417,8 +14481,30 @@ var EventBridgeBusProvider = class {
14417
14481
  throw new ProvisioningError(`Failed to create EventBus ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, void 0, cause);
14418
14482
  }
14419
14483
  }
14420
- async update(_logicalId, physicalId, _resourceType, properties, previousProperties) {
14421
- this.logger.debug(`Updating EventBus ${_logicalId}: ${physicalId}`);
14484
+ /**
14485
+ * Update an EventBus.
14486
+ *
14487
+ * Thin wrapper that maps any AWS SDK failure onto {@link ProvisioningError}
14488
+ * the same way {@link create} and {@link delete} do, so an update failure
14489
+ * carries cdkd's typed error formatting and exit-code handling instead of
14490
+ * surfacing raw (issue #1267). The body lives in {@link applyUpdate} so the
14491
+ * wrap is a boundary concern rather than a 70-line indentation change.
14492
+ *
14493
+ * A typed control-flow error is re-thrown untouched: the deploy engine
14494
+ * matches those by class to decide its fallback, so swallowing one into a
14495
+ * ProvisioningError would silently disable that path.
14496
+ */
14497
+ async update(logicalId, physicalId, resourceType, properties, previousProperties) {
14498
+ try {
14499
+ return await this.applyUpdate(logicalId, physicalId, properties, previousProperties);
14500
+ } catch (error) {
14501
+ if (error instanceof CdkdError) throw error;
14502
+ const cause = error instanceof Error ? error : void 0;
14503
+ throw new ProvisioningError(`Failed to update EventBus ${logicalId}: ${error instanceof Error ? error.message : String(error)}`, resourceType, logicalId, physicalId, cause);
14504
+ }
14505
+ }
14506
+ async applyUpdate(logicalId, physicalId, properties, previousProperties) {
14507
+ this.logger.debug(`Updating EventBus ${logicalId}: ${physicalId}`);
14422
14508
  const descChanged = properties["Description"] !== previousProperties["Description"];
14423
14509
  const kmsChanged = properties["KmsKeyIdentifier"] !== previousProperties["KmsKeyIdentifier"];
14424
14510
  const dlcChanged = JSON.stringify(properties["DeadLetterConfig"]) !== JSON.stringify(previousProperties["DeadLetterConfig"]);
@@ -62081,7 +62167,7 @@ function createMigrateCommand() {
62081
62167
  */
62082
62168
  function buildProgram() {
62083
62169
  const program = new Command();
62084
- program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.267.14");
62170
+ program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.267.16");
62085
62171
  program.hook("preAction", (_thisCommand, actionCommand) => {
62086
62172
  const { profile } = actionCommand.optsWithGlobals();
62087
62173
  if (profile !== void 0) process.env["AWS_PROFILE"] = profile;