@go-to-k/cdkd 0.280.24 → 0.280.25

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 requireConfigObject, $t as AssemblyReader, A as green, At as runDockerForeground, B as disableInstanceApiTermination, Bt as resolveCaptureObservedState, C as MULTI_REGION_RECREATE_BLOCKED_TYPES, Cn as StackTerminationProtectionError, Ct as getBootstrapMarkerKey, D as bold, Dt as buildDockerImage, E as formatResourceLine, Et as validateContainerRepoName, F as clearOnUpdateRemoval, Ft as synthesisStatusMessage, G as WAFv2WebACLProvider, Gt as stateBucketExistenceConfirmed, H as IntrinsicFunctionResolver, Ht as resolveStateBucketWithDefault, I as ProviderRegistry, It as getDefaultStateBucketName, J as assertRegionMatch, Jt as CFN_TEMPLATE_URL_LIMIT, K as normalizeAwsTagsToCfn, Kt as warnDeprecatedNoPrefixCliFlag, L as findActionableSilentDrops, Lt as getLegacyStateBucketName, M as yellow, Mt as AssetManifestLoader, N as IAMRoleProvider, Nt as getDockerImageBySourceHash, O as cyan, On as normalizeAwsError, Ot as formatDockerLoginError, P as collectInlinePolicyNamesManagedBySiblings, Pt as Synthesizer, Q as requireConfigArray, Qt as expectedOwnerParam, R as CloudControlProvider, Rt as resolveApp, S as extractDeploymentEventError, Sn as StackHasActiveImportsError, St as ensureAssetStorage, T as renderStatefulReason, Tt as validateAssetBucketName, U as cfnRefValueFromPhysicalId, Ut as resolveStateBucketWithDefaultAndSource, V as isTerminationProtectionPropagationError, Vt as resolveSkipPrefix, W as refStateLookupFromResource, Wt as resolveUseCdkBootstrapAssets, X as readConfigString, Xt as findLargeInlineResources, Y as configStringRefusal, Yt as MIGRATE_TMP_PREFIX, Z as replayWarn, Zt as uploadCfnTemplate, _ as createPreDeleteFinalSnapshot, _n as NestedStackChildDirectDestroyError, _t as createAssetRedirectResolver, a as DeploymentEventsStore, an as resetAwsClients, at as isRetryableTransientError, b as unsupportedFinalSnapshotError, bn as ResourceTimeoutError, bt as AssetModeResolver, c as replayFailedOperations, cn as CdkdError, ct as TemplateParser, d as IMPLICIT_DELETE_DEPENDENCIES, dn as DeployCancelledError, dt as rebuildClientForBucketRegion, en as processStackMessages, et as requireConfigString, f as computeImplicitDeleteEdges, fn as LocalInvokeBuildError$1, ft as shouldRetainResource, g as ccRoutedFinalSnapshotError, gn as MissingCdkCliError, gt as buildAssetRedirectMap, h as buildFinalSnapshotIdentifier, ht as WorkGraph, i as DeploymentEventsReader, in as getAwsClients, it as withRetry, j as red, jt as runDockerStreaming, k as gray, kn as withErrorHandling, kt as getDockerCmd, l as replayRollback, lt as LockManager, m as PRE_DELETE_SNAPSHOT_TYPES, mn as LocalStartServiceError, mt as stringifyValue, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as resolveBucketRegion, nt as DiffCalculator, o as planFailedOps, on as setAwsClients, ot as isThrottlingError, p as ATOMIC_FINAL_SNAPSHOT_TYPES, pn as LocalMigrateError, pt as AssetPublisher, q as resolveExplicitPhysicalId, qt as CFN_TEMPLATE_BODY_LIMIT, r as DeployEngine, rn as AwsClients, rt as describeTypeWithThrottleRetry, s as planRollback, st as DagBuilder, t as DEFAULT_RESOURCE_TIMEOUT_MS, tt as applyRoleArnIfSet, u as withResourceDeadline, ut as S3StateBackend, v as isFinalSnapshotError, vn as PartialFailureError, vt as loadPublishableAssetManifest, w as isStatefulRecreateTargetSync, wt as parseBootstrapMarker, x as makeCanonicalizePropertiesFn, xn as ResourceUpdateNotSupportedError, xt as BOOTSTRAP_MARKER_PREFIX, y as refusesFinalSnapshot, yn as ProvisioningError, yt as rewriteTemplateAssetReferences, z as slowCcOperationTimeoutMs, zt as resolveAutoAssetStorage } from "./deploy-engine-60FIug-P.js";
2
+ import { $ as requireConfigObject, $t as AssemblyReader, A as green, At as runDockerForeground, B as disableInstanceApiTermination, Bt as resolveCaptureObservedState, C as MULTI_REGION_RECREATE_BLOCKED_TYPES, Cn as StackTerminationProtectionError, Ct as getBootstrapMarkerKey, D as bold, Dt as buildDockerImage, E as formatResourceLine, Et as validateContainerRepoName, F as clearOnUpdateRemoval, Ft as synthesisStatusMessage, G as WAFv2WebACLProvider, Gt as stateBucketExistenceConfirmed, H as IntrinsicFunctionResolver, Ht as resolveStateBucketWithDefault, I as ProviderRegistry, It as getDefaultStateBucketName, J as assertRegionMatch, Jt as CFN_TEMPLATE_URL_LIMIT, K as normalizeAwsTagsToCfn, Kt as warnDeprecatedNoPrefixCliFlag, L as findActionableSilentDrops, Lt as getLegacyStateBucketName, M as yellow, Mt as AssetManifestLoader, N as IAMRoleProvider, Nt as getDockerImageBySourceHash, O as cyan, On as normalizeAwsError, Ot as formatDockerLoginError, P as collectInlinePolicyNamesManagedBySiblings, Pt as Synthesizer, Q as requireConfigArray, Qt as expectedOwnerParam, R as CloudControlProvider, Rt as resolveApp, S as extractDeploymentEventError, Sn as StackHasActiveImportsError, St as ensureAssetStorage, T as renderStatefulReason, Tt as validateAssetBucketName, U as cfnRefValueFromPhysicalId, Ut as resolveStateBucketWithDefaultAndSource, V as isTerminationProtectionPropagationError, Vt as resolveSkipPrefix, W as refStateLookupFromResource, Wt as resolveUseCdkBootstrapAssets, X as readConfigString, Xt as findLargeInlineResources, Y as configStringRefusal, Yt as MIGRATE_TMP_PREFIX, Z as replayWarn, Zt as uploadCfnTemplate, _ as createPreDeleteFinalSnapshot, _n as NestedStackChildDirectDestroyError, _t as createAssetRedirectResolver, a as DeploymentEventsStore, an as resetAwsClients, at as isRetryableTransientError, b as unsupportedFinalSnapshotError, bn as ResourceTimeoutError, bt as AssetModeResolver, c as replayFailedOperations, cn as CdkdError, ct as TemplateParser, d as IMPLICIT_DELETE_DEPENDENCIES, dn as DeployCancelledError, dt as rebuildClientForBucketRegion, en as processStackMessages, et as requireConfigString, f as computeImplicitDeleteEdges, fn as LocalInvokeBuildError$1, ft as shouldRetainResource, g as ccRoutedFinalSnapshotError, gn as MissingCdkCliError, gt as buildAssetRedirectMap, h as buildFinalSnapshotIdentifier, ht as WorkGraph, i as DeploymentEventsReader, in as getAwsClients, it as withRetry, j as red, jt as runDockerStreaming, k as gray, kn as withErrorHandling, kt as getDockerCmd, l as replayRollback, lt as LockManager, m as PRE_DELETE_SNAPSHOT_TYPES, mn as LocalStartServiceError, mt as stringifyValue, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as resolveBucketRegion, nt as DiffCalculator, o as planFailedOps, on as setAwsClients, ot as isThrottlingError, p as ATOMIC_FINAL_SNAPSHOT_TYPES, pn as LocalMigrateError, pt as AssetPublisher, q as resolveExplicitPhysicalId, qt as CFN_TEMPLATE_BODY_LIMIT, r as DeployEngine, rn as AwsClients, rt as describeTypeWithThrottleRetry, s as planRollback, st as DagBuilder, t as DEFAULT_RESOURCE_TIMEOUT_MS, tt as applyRoleArnIfSet, u as withResourceDeadline, ut as S3StateBackend, v as isFinalSnapshotError, vn as PartialFailureError, vt as loadPublishableAssetManifest, w as isStatefulRecreateTargetSync, wt as parseBootstrapMarker, x as makeCanonicalizePropertiesFn, xn as ResourceUpdateNotSupportedError, xt as BOOTSTRAP_MARKER_PREFIX, y as refusesFinalSnapshot, yn as ProvisioningError, yt as rewriteTemplateAssetReferences, z as slowCcOperationTimeoutMs, zt as resolveAutoAssetStorage } from "./deploy-engine-DOjLU2Et.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-Dpx4B6UA.js";
4
+ import { t as ASGProvider } from "./asg-provider-Do4MnkQh.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, DeleteBucketEncryptionCommand, DeleteBucketIntelligentTieringConfigurationCommand, DeleteBucketInventoryConfigurationCommand, DeleteBucketLifecycleCommand, DeleteBucketMetricsConfigurationCommand, DeleteBucketOwnershipControlsCommand, DeleteBucketPolicyCommand, DeleteBucketReplicationCommand, DeleteBucketTaggingCommand, DeleteBucketWebsiteCommand, DeleteObjectsCommand, GetBucketAccelerateConfigurationCommand, GetBucketCorsCommand, GetBucketEncryptionCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketLoggingCommand, GetBucketNotificationConfigurationCommand, GetBucketOwnershipControlsCommand, 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";
@@ -35641,6 +35641,31 @@ var AppSyncProvider = class {
35641
35641
  throw new ProvisioningError(message, resourceType, options?.logicalId ?? "");
35642
35642
  }
35643
35643
  /**
35644
+ * CFn declares `DeltaSyncConfig.BaseTableTTL` / `.DeltaSyncTableTTL` as
35645
+ * STRINGS (CDK's L1 types them `string` too) while the SDK models both as
35646
+ * longs, so the value needs a real conversion rather than a cast — a string
35647
+ * handed to the number member is dropped by the serializer, which is the
35648
+ * silent-drop shape this batch closes.
35649
+ *
35650
+ * A non-numeric value is refused LOUDLY: `Number('abc')` is `NaN`, and NaN
35651
+ * would serialize to `null` and reach AWS as a confusing type error far from
35652
+ * the template line that caused it.
35653
+ *
35654
+ * `Number()` alone is NOT that refusal, which is the trap this guard exists
35655
+ * for: it coerces `''` / `' '` / `null` / `[]` / `false` to `0` and `true`
35656
+ * to `1`, all of which are finite. An unresolved intrinsic or an empty CFn
35657
+ * value would therefore have deployed a live data source with a ZERO-minute
35658
+ * delta-sync TTL — the "validate the FIELD, not just the container" class in
35659
+ * .claude/rules/providers.md. So the accepted shapes are enumerated instead:
35660
+ * a finite NUMBER, or a NON-BLANK string that parses to one.
35661
+ */
35662
+ toDeltaSyncTtl(value, path, logicalId, resourceType) {
35663
+ const numeric = typeof value === "number" ? value : typeof value === "string" ? value.trim() : void 0;
35664
+ const parsed = numeric === void 0 || numeric === "" ? NaN : Number(numeric);
35665
+ if (!Number.isFinite(parsed)) throw new ProvisioningError(`${resourceType} ${path} must be a number of minutes (CFn types it as a string), got ${JSON.stringify(value)} — cdkd refuses to drop it silently`, resourceType, logicalId);
35666
+ return parsed;
35667
+ }
35668
+ /**
35644
35669
  * NOTE: `awsRegion` / `defaultAction` are passed through VERBATIM, including
35645
35670
  * when the template omits them. cdkd deliberately does NOT substitute a
35646
35671
  * default: `DefaultAction` decides whether an unauthenticated request is
@@ -35985,15 +36010,40 @@ var AppSyncProvider = class {
35985
36010
  if (properties["Description"] !== void 0) input.description = properties["Description"];
35986
36011
  if (properties["ServiceRoleArn"] !== void 0) input.serviceRoleArn = properties["ServiceRoleArn"];
35987
36012
  const dynamo = this.asObject(properties["DynamoDBConfig"], "DynamoDBConfig", { logicalId }, resourceType);
35988
- if (dynamo) input.dynamodbConfig = {
35989
- tableName: dynamo["TableName"],
35990
- awsRegion: dynamo["AwsRegion"],
35991
- ...dynamo["UseCallerCredentials"] !== void 0 ? { useCallerCredentials: dynamo["UseCallerCredentials"] } : {}
35992
- };
36013
+ if (dynamo) {
36014
+ const ddbConfig = {
36015
+ tableName: dynamo["TableName"],
36016
+ awsRegion: dynamo["AwsRegion"],
36017
+ ...dynamo["UseCallerCredentials"] !== void 0 ? { useCallerCredentials: dynamo["UseCallerCredentials"] } : {},
36018
+ ...dynamo["Versioned"] !== void 0 ? { versioned: dynamo["Versioned"] } : {}
36019
+ };
36020
+ const delta = this.asObject(dynamo["DeltaSyncConfig"], "DynamoDBConfig.DeltaSyncConfig", { logicalId }, resourceType);
36021
+ if (delta) {
36022
+ const deltaConfig = {};
36023
+ if (delta["BaseTableTTL"] !== void 0) deltaConfig.baseTableTTL = this.toDeltaSyncTtl(delta["BaseTableTTL"], "DynamoDBConfig.DeltaSyncConfig.BaseTableTTL", logicalId, resourceType);
36024
+ if (delta["DeltaSyncTableName"] !== void 0) deltaConfig.deltaSyncTableName = delta["DeltaSyncTableName"];
36025
+ if (delta["DeltaSyncTableTTL"] !== void 0) deltaConfig.deltaSyncTableTTL = this.toDeltaSyncTtl(delta["DeltaSyncTableTTL"], "DynamoDBConfig.DeltaSyncConfig.DeltaSyncTableTTL", logicalId, resourceType);
36026
+ ddbConfig.deltaSyncConfig = deltaConfig;
36027
+ }
36028
+ input.dynamodbConfig = ddbConfig;
36029
+ }
35993
36030
  const lambda = this.asObject(properties["LambdaConfig"], "LambdaConfig", { logicalId }, resourceType);
35994
36031
  if (lambda) input.lambdaConfig = { lambdaFunctionArn: lambda["LambdaFunctionArn"] };
35995
36032
  const http = this.asObject(properties["HttpConfig"], "HttpConfig", { logicalId }, resourceType);
35996
- if (http) input.httpConfig = { endpoint: http["Endpoint"] };
36033
+ if (http) {
36034
+ const httpConfig = { endpoint: http["Endpoint"] };
36035
+ const auth = this.asObject(http["AuthorizationConfig"], "HttpConfig.AuthorizationConfig", { logicalId }, resourceType);
36036
+ if (auth) {
36037
+ const authConfig = { authorizationType: auth["AuthorizationType"] };
36038
+ const iam = this.asObject(auth["AwsIamConfig"], "HttpConfig.AuthorizationConfig.AwsIamConfig", { logicalId }, resourceType);
36039
+ if (iam) authConfig.awsIamConfig = {
36040
+ ...iam["SigningRegion"] !== void 0 ? { signingRegion: iam["SigningRegion"] } : {},
36041
+ ...iam["SigningServiceName"] !== void 0 ? { signingServiceName: iam["SigningServiceName"] } : {}
36042
+ };
36043
+ httpConfig.authorizationConfig = authConfig;
36044
+ }
36045
+ input.httpConfig = httpConfig;
36046
+ }
35997
36047
  const es = this.asObject(properties["ElasticsearchConfig"], "ElasticsearchConfig", { logicalId }, resourceType);
35998
36048
  if (es) input.elasticsearchConfig = {
35999
36049
  endpoint: es["Endpoint"],
@@ -36470,10 +36520,36 @@ var AppSyncProvider = class {
36470
36520
  if (ds.dynamodbConfig.tableName !== void 0) dynamo["TableName"] = ds.dynamodbConfig.tableName;
36471
36521
  if (ds.dynamodbConfig.awsRegion !== void 0) dynamo["AwsRegion"] = ds.dynamodbConfig.awsRegion;
36472
36522
  if (ds.dynamodbConfig.useCallerCredentials !== void 0) dynamo["UseCallerCredentials"] = ds.dynamodbConfig.useCallerCredentials;
36523
+ if (ds.dynamodbConfig.versioned !== void 0) dynamo["Versioned"] = ds.dynamodbConfig.versioned;
36524
+ const delta = ds.dynamodbConfig.deltaSyncConfig;
36525
+ if (delta) {
36526
+ const deltaOut = {};
36527
+ if (delta.baseTableTTL !== void 0) deltaOut["BaseTableTTL"] = String(delta.baseTableTTL);
36528
+ if (delta.deltaSyncTableName !== void 0) deltaOut["DeltaSyncTableName"] = delta.deltaSyncTableName;
36529
+ if (delta.deltaSyncTableTTL !== void 0) deltaOut["DeltaSyncTableTTL"] = String(delta.deltaSyncTableTTL);
36530
+ if (Object.keys(deltaOut).length > 0) dynamo["DeltaSyncConfig"] = deltaOut;
36531
+ }
36473
36532
  if (Object.keys(dynamo).length > 0) result["DynamoDBConfig"] = dynamo;
36474
36533
  }
36475
36534
  if (ds.lambdaConfig?.lambdaFunctionArn !== void 0) result["LambdaConfig"] = { LambdaFunctionArn: ds.lambdaConfig.lambdaFunctionArn };
36476
- if (ds.httpConfig?.endpoint !== void 0) result["HttpConfig"] = { Endpoint: ds.httpConfig.endpoint };
36535
+ if (ds.httpConfig) {
36536
+ const httpOut = {};
36537
+ if (ds.httpConfig.endpoint !== void 0) httpOut["Endpoint"] = ds.httpConfig.endpoint;
36538
+ const authRead = ds.httpConfig.authorizationConfig;
36539
+ if (authRead) {
36540
+ const authOut = {};
36541
+ if (authRead.authorizationType !== void 0) authOut["AuthorizationType"] = authRead.authorizationType;
36542
+ const iamRead = authRead.awsIamConfig;
36543
+ if (iamRead) {
36544
+ const iamOut = {};
36545
+ if (iamRead.signingRegion !== void 0) iamOut["SigningRegion"] = iamRead.signingRegion;
36546
+ if (iamRead.signingServiceName !== void 0) iamOut["SigningServiceName"] = iamRead.signingServiceName;
36547
+ if (Object.keys(iamOut).length > 0) authOut["AwsIamConfig"] = iamOut;
36548
+ }
36549
+ if (Object.keys(authOut).length > 0) httpOut["AuthorizationConfig"] = authOut;
36550
+ }
36551
+ if (Object.keys(httpOut).length > 0) result["HttpConfig"] = httpOut;
36552
+ }
36477
36553
  if (ds.elasticsearchConfig) {
36478
36554
  const es = {};
36479
36555
  if (ds.elasticsearchConfig.endpoint !== void 0) es["Endpoint"] = ds.elasticsearchConfig.endpoint;
@@ -70341,7 +70417,7 @@ function createMigrateCommand() {
70341
70417
  */
70342
70418
  function buildProgram() {
70343
70419
  const program = new Command();
70344
- program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.280.24");
70420
+ program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version("0.280.25");
70345
70421
  program.hook("preAction", (_thisCommand, actionCommand) => {
70346
70422
  const { profile } = actionCommand.optsWithGlobals();
70347
70423
  if (profile !== void 0) process.env["AWS_PROFILE"] = profile;