@go-to-k/cdkd 0.285.9 → 0.285.11

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/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { Br as StateError, Bt as DiffCalculator, Cr as ConfigError, Fr as ProvisioningError, Gt as TemplateParser, Hr as formatError, K as ProviderRegistry, Sr as CdkdError, Tr as DependencyError, U as IAMRoleProvider, Un as Synthesizer, Ur as isCdkdError, Vr as SynthesisError, Wr as normalizeAwsError, Wt as DagBuilder, _r as AwsClients, at as CloudControlProvider, br as setAwsClients, gr as resolveBucketRegion, hr as clearBucketRegionCache, jr as LockError, on as LockManager, pn as AssetPublisher, pr as AssemblyReader, r as DeployEngine, sn as S3StateBackend, vr as getAwsClients, xr as AssetError, yr as resetAwsClients } from "./deploy-engine-BhBR2d3w.js";
1
+ import { Br as StateError, Bt as DiffCalculator, Cr as ConfigError, Fr as ProvisioningError, Gt as TemplateParser, Hr as formatError, K as ProviderRegistry, Sr as CdkdError, Tr as DependencyError, U as IAMRoleProvider, Un as Synthesizer, Ur as isCdkdError, Vr as SynthesisError, Wr as normalizeAwsError, Wt as DagBuilder, _r as AwsClients, at as CloudControlProvider, br as setAwsClients, gr as resolveBucketRegion, hr as clearBucketRegionCache, jr as LockError, on as LockManager, pn as AssetPublisher, pr as AssemblyReader, r as DeployEngine, sn as S3StateBackend, vr as getAwsClients, xr as AssetError, yr as resetAwsClients } from "./deploy-engine-CJdl4I5l.js";
2
2
  import { a as setLogger, n as getLogger, t as ConsoleLogger } from "./logger-Dw-3y48G.js";
3
3
 
4
4
  export { AssemblyReader, AssetError, AssetPublisher, AwsClients, CdkdError, CloudControlProvider, ConfigError, ConsoleLogger, DagBuilder, DependencyError, DeployEngine, DiffCalculator, IAMRoleProvider, LockError, LockManager, ProviderRegistry, ProvisioningError, S3StateBackend, StateError, SynthesisError, Synthesizer, TemplateParser, clearBucketRegionCache, formatError, getAwsClients, getLogger, isCdkdError, normalizeAwsError, resetAwsClients, resolveBucketRegion, setAwsClients, setLogger };
@@ -1,8 +1,8 @@
1
- import { $ as DEFAULT_STATE_PREFIX, $n as resolveUseCdkBootstrapAssets, $t as isSingleDynamicReferenceToken, A as bold, An as validateAssetBucketName, Ar as LocalStartServiceError, At as requireConfigObject, B as secretBearingStateKeyWarning, Bn as runDockerStreaming, Bt as DiffCalculator, C as unsupportedFinalSnapshotError, Cn as BOOTSTRAP_MARKER_PREFIX, Ct as assertRegionMatch, D as isStatefulRecreateTargetSync, Dn as isCrossRegionRedirect, Dr as DynamicReferenceRegionAmbiguousError, Dt as readConfigString, E as MULTI_REGION_RECREATE_BLOCKED_TYPES, En as getBootstrapMarkerKey, Er as DeployCancelledError, Et as configStringRefusal, F as yellow, Fn as dockerSpawnEnvWithSensitive, Fr as ProvisioningError, Ft as s3BucketDomainName, G as clearOnUpdateRemoval, Gn as getDefaultStateBucketName, Gr as withErrorHandling, Gt as TemplateParser, H as getCurrentResourceSecrets, Hn as getDockerImageBySourceHash, Ht as describeTypeWithThrottleRetry, I as collectDeclaredOutputNames, In as formatDockerLoginError, Ir as ResourceTimeoutError, It as s3BucketDualStackDomainName, J as findSilentDropProperties, Jn as resolveAutoAssetStorage, Jr as isThrottlingError, Jt as TEMPLATE_SOURCED_RULES, K as ProviderRegistry, Kn as getLegacyStateBucketName, Kr as isMarkedNonRetryable, Kt as STATE_SOURCED_CROSS_GENERATION_RULES, L as collectPublishedOutputNames, Ln as getDockerCmd, Lr as ResourceUpdateNotSupportedError, Lt as s3BucketRegionalDomainName, M as gray, Mn as buildDenyExternalAccessPolicy, Mr as MissingCdkCliError, Mt as classifyReplaySecretRegion, N as green, Nn as describeAwsFailure, Nr as NestedStackChildDirectDestroyError, Nt as producerRegionsFromState, O as renderStatefulReason, On as parseBootstrapMarker, Or as LocalInvokeBuildError$1, Ot as replayWarn, P as red, Pn as buildDockerImage, Pr as PartialFailureError, Pt as s3BucketArn, Q as CUSTOM_RESOURCE_RESPONSE_PREFIX, Qn as resolveStateBucketWithDefaultAndSource, Qr as retryClassificationText, Qt as errorCauseChain, R as exportAliasCollisionScrubWarning, Rn as partitionSensitiveEnv, Rr as StackHasActiveImportsError, Rt as s3BucketWebsiteUrl, S as refusesFinalSnapshot, Sn as AssetModeResolver, Sr as CdkdError, St as resolveExplicitPhysicalId, T as extractDeploymentEventError, Tn as ensureAssetStorage, Tt as configBooleanRefusal, U as IAMRoleProvider, Un as Synthesizer, Ut as withRetry, V as stateKeySecretExposure, Vn as AssetManifestLoader, Vt as INTRINSIC_KEYS, W as collectInlinePolicyNamesManagedBySiblings, Wn as synthesisStatusMessage, Wr as normalizeAwsError, Wt as DagBuilder, X as maskDeep, Xn as resolveSkipPrefix, Xr as markNonRetryable, Xt as createSecretMasker, Y as createMaskedRetryLogger, Yn as resolveCaptureObservedState, Yr as isTransientServerError, Yt as carriesSecretMask, Z as maskerOrIdentity, Zn as resolveStateBucketWithDefault, Zr as markRedactedCause, Zt as dynamicReferenceTokens, _ as PRE_DELETE_SNAPSHOT_TYPES, _n as createAssetRedirectResolver, _r as AwsClients, _t as isUnboundTemplateParameter, a as DeploymentEventsStore, an as scrubResourceRecord, ar as findLargeInlineResources, at as CloudControlProvider, b as createPreDeleteFinalSnapshot, bn as escapeRegExp, br as setAwsClients, bt as WAFv2WebACLProvider, c as replayFailedOperations, cn as rebuildClientForBucketRegion, cr as displaySafe, ct as deleteIndeterminateGuards, d as updatePartialReason, dn as importableOutputs, dr as canonicalizeRegion, dt as isTerminationProtectionPropagationError, en as maskSecretsInError, er as stateBucketExistenceConfirmed, et as beginCommandInterruptScope, f as withResourceDeadline, fn as shouldRetainResource, fr as derivePartitionAndUrlSuffix, ft as IntrinsicFunctionResolver, g as ATOMIC_FINAL_SNAPSHOT_TYPES, gn as buildAssetRedirectMap, gr as resolveBucketRegion, gt as getAccountInfo, h as computeImplicitDeleteEdges, hn as WorkGraph, ht as coerceParameterTypedValue, i as DeploymentEventsReader, in as redactSecretsForState, ir as MIGRATE_TMP_PREFIX, it as startInterruptWatch, j as cyan, jn as validateContainerRepoName, jt as requireConfigString, k as formatResourceLine, kn as readBootstrapMarkerBody, kr as LocalMigrateError, kt as requireConfigArray, l as replayRollback, ln as exportNamesCarriedFrom, lr as expectedOwnerParam, lt as deleteSkipReason, m as IMPLICIT_DELETE_DEPENDENCIES, mn as stringifyValue, mr as processStackMessages, mt as cfnRefValueFromPhysicalId, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as recordMaskOnlyValue, nr as CFN_TEMPLATE_BODY_LIMIT, nt as interruptWatchListenerCount, o as planFailedOps, on as LockManager, or as uploadCfnTemplate, ot as slowCcOperationTimeoutMs, p as maskingRetryLogger, pn as AssetPublisher, pr as AssemblyReader, pt as carriesDynamicReference, q as findActionableSilentDrops, qn as resolveApp, qr as isRetryableTransientError, qt as STATE_SOURCED_READBACK_RULES, r as DeployEngine, rn as recoverMaskedOutput, rr as CFN_TEMPLATE_URL_LIMIT, rt as isInterruptedWaitError, s as planRollback, sn as S3StateBackend, sr as CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION, st as UNSPECIFIED_SKIP_REASON, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as maskSecretsInText, tr as warnDeprecatedNoPrefixCliFlag, tt as endCommandInterruptScope, u as updatePartialMessage, un as importableOutputKeys, ur as PARTITION_TABLE, ut as disableInstanceApiTermination, v as buildFinalSnapshotIdentifier, vn as loadPublishableAssetManifest, vr as getAwsClients, vt as parameterTypeMayLoseSecretIdentity, w as makeCanonicalizePropertiesFn, wn as assertAssetBucketRegion, wr as CrossAccountSecretRefusalError, wt as coerceCfnBoolean, x as isFinalSnapshotError, xn as stripControlChars, xt as normalizeAwsTagsToCfn, y as ccRoutedFinalSnapshotError, yn as rewriteTemplateAssetReferences, yr as resetAwsClients, yt as refStateLookupFromResource, z as isExportAliasCollision, zn as runDockerForeground, zr as StackTerminationProtectionError, zt as applyRoleArnIfSet } from "./deploy-engine-BhBR2d3w.js";
1
+ import { $ as DEFAULT_STATE_PREFIX, $n as resolveUseCdkBootstrapAssets, $t as isSingleDynamicReferenceToken, A as bold, An as validateAssetBucketName, Ar as LocalStartServiceError, At as requireConfigObject, B as secretBearingStateKeyWarning, Bn as runDockerStreaming, Bt as DiffCalculator, C as unsupportedFinalSnapshotError, Cn as BOOTSTRAP_MARKER_PREFIX, Ct as assertRegionMatch, D as isStatefulRecreateTargetSync, Dn as isCrossRegionRedirect, Dr as DynamicReferenceRegionAmbiguousError, Dt as readConfigString, E as MULTI_REGION_RECREATE_BLOCKED_TYPES, En as getBootstrapMarkerKey, Er as DeployCancelledError, Et as configStringRefusal, F as yellow, Fn as dockerSpawnEnvWithSensitive, Fr as ProvisioningError, Ft as s3BucketDomainName, G as clearOnUpdateRemoval, Gn as getDefaultStateBucketName, Gr as withErrorHandling, Gt as TemplateParser, H as getCurrentResourceSecrets, Hn as getDockerImageBySourceHash, Ht as describeTypeWithThrottleRetry, I as collectDeclaredOutputNames, In as formatDockerLoginError, Ir as ResourceTimeoutError, It as s3BucketDualStackDomainName, J as findSilentDropProperties, Jn as resolveAutoAssetStorage, Jr as isThrottlingError, Jt as TEMPLATE_SOURCED_RULES, K as ProviderRegistry, Kn as getLegacyStateBucketName, Kr as isMarkedNonRetryable, Kt as STATE_SOURCED_CROSS_GENERATION_RULES, L as collectPublishedOutputNames, Ln as getDockerCmd, Lr as ResourceUpdateNotSupportedError, Lt as s3BucketRegionalDomainName, M as gray, Mn as buildDenyExternalAccessPolicy, Mr as MissingCdkCliError, Mt as classifyReplaySecretRegion, N as green, Nn as describeAwsFailure, Nr as NestedStackChildDirectDestroyError, Nt as producerRegionsFromState, O as renderStatefulReason, On as parseBootstrapMarker, Or as LocalInvokeBuildError$1, Ot as replayWarn, P as red, Pn as buildDockerImage, Pr as PartialFailureError, Pt as s3BucketArn, Q as CUSTOM_RESOURCE_RESPONSE_PREFIX, Qn as resolveStateBucketWithDefaultAndSource, Qr as retryClassificationText, Qt as errorCauseChain, R as exportAliasCollisionScrubWarning, Rn as partitionSensitiveEnv, Rr as StackHasActiveImportsError, Rt as s3BucketWebsiteUrl, S as refusesFinalSnapshot, Sn as AssetModeResolver, Sr as CdkdError, St as resolveExplicitPhysicalId, T as extractDeploymentEventError, Tn as ensureAssetStorage, Tt as configBooleanRefusal, U as IAMRoleProvider, Un as Synthesizer, Ut as withRetry, V as stateKeySecretExposure, Vn as AssetManifestLoader, Vt as INTRINSIC_KEYS, W as collectInlinePolicyNamesManagedBySiblings, Wn as synthesisStatusMessage, Wr as normalizeAwsError, Wt as DagBuilder, X as maskDeep, Xn as resolveSkipPrefix, Xr as markNonRetryable, Xt as createSecretMasker, Y as createMaskedRetryLogger, Yn as resolveCaptureObservedState, Yr as isTransientServerError, Yt as carriesSecretMask, Z as maskerOrIdentity, Zn as resolveStateBucketWithDefault, Zr as markRedactedCause, Zt as dynamicReferenceTokens, _ as PRE_DELETE_SNAPSHOT_TYPES, _n as createAssetRedirectResolver, _r as AwsClients, _t as isUnboundTemplateParameter, a as DeploymentEventsStore, an as scrubResourceRecord, ar as findLargeInlineResources, at as CloudControlProvider, b as createPreDeleteFinalSnapshot, bn as escapeRegExp, br as setAwsClients, bt as WAFv2WebACLProvider, c as replayFailedOperations, cn as rebuildClientForBucketRegion, cr as displaySafe, ct as deleteIndeterminateGuards, d as updatePartialReason, dn as importableOutputs, dr as canonicalizeRegion, dt as isTerminationProtectionPropagationError, en as maskSecretsInError, er as stateBucketExistenceConfirmed, et as beginCommandInterruptScope, f as withResourceDeadline, fn as shouldRetainResource, fr as derivePartitionAndUrlSuffix, ft as IntrinsicFunctionResolver, g as ATOMIC_FINAL_SNAPSHOT_TYPES, gn as buildAssetRedirectMap, gr as resolveBucketRegion, gt as getAccountInfo, h as computeImplicitDeleteEdges, hn as WorkGraph, ht as coerceParameterTypedValue, i as DeploymentEventsReader, in as redactSecretsForState, ir as MIGRATE_TMP_PREFIX, it as startInterruptWatch, j as cyan, jn as validateContainerRepoName, jt as requireConfigString, k as formatResourceLine, kn as readBootstrapMarkerBody, kr as LocalMigrateError, kt as requireConfigArray, l as replayRollback, ln as exportNamesCarriedFrom, lr as expectedOwnerParam, lt as deleteSkipReason, m as IMPLICIT_DELETE_DEPENDENCIES, mn as stringifyValue, mr as processStackMessages, mt as cfnRefValueFromPhysicalId, n as DEFAULT_RESOURCE_WARN_AFTER_MS, nn as recordMaskOnlyValue, nr as CFN_TEMPLATE_BODY_LIMIT, nt as interruptWatchListenerCount, o as planFailedOps, on as LockManager, or as uploadCfnTemplate, ot as slowCcOperationTimeoutMs, p as maskingRetryLogger, pn as AssetPublisher, pr as AssemblyReader, pt as carriesDynamicReference, q as findActionableSilentDrops, qn as resolveApp, qr as isRetryableTransientError, qt as STATE_SOURCED_READBACK_RULES, r as DeployEngine, rn as recoverMaskedOutput, rr as CFN_TEMPLATE_URL_LIMIT, rt as isInterruptedWaitError, s as planRollback, sn as S3StateBackend, sr as CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION, st as UNSPECIFIED_SKIP_REASON, t as DEFAULT_RESOURCE_TIMEOUT_MS, tn as maskSecretsInText, tr as warnDeprecatedNoPrefixCliFlag, tt as endCommandInterruptScope, u as updatePartialMessage, un as importableOutputKeys, ur as PARTITION_TABLE, ut as disableInstanceApiTermination, v as buildFinalSnapshotIdentifier, vn as loadPublishableAssetManifest, vr as getAwsClients, vt as parameterTypeMayLoseSecretIdentity, w as makeCanonicalizePropertiesFn, wn as assertAssetBucketRegion, wr as CrossAccountSecretRefusalError, wt as coerceCfnBoolean, x as isFinalSnapshotError, xn as stripControlChars, xt as normalizeAwsTagsToCfn, y as ccRoutedFinalSnapshotError, yn as rewriteTemplateAssetReferences, yr as resetAwsClients, yt as refStateLookupFromResource, z as isExportAliasCollision, zn as runDockerForeground, zr as StackTerminationProtectionError, zt as applyRoleArnIfSet } from "./deploy-engine-CJdl4I5l.js";
2
2
  import { _ as withStackName, c as PATTERN_B_NAME_OPTIONS, f as generateResourceName, g as withSkipPrefix, i as reserveStdoutForPayload, l as PATTERN_B_NAME_PROPERTIES, m as getCurrentStackName, n as getLogger, o as runStackBuffered, p as generateResourceNameWithFallback, s as getLiveRenderer, u as PATTERN_B_RESOURCE_TYPES } from "./logger-Dw-3y48G.js";
3
3
  import { t as awsClientDefaults } from "./aws-client-defaults-D-iYiIJ6.js";
4
- import { t as getCdkdVersion } from "./version-BWsyP2sq.js";
5
- import { t as ASGProvider } from "./asg-provider-hNkWDuAJ.js";
4
+ import { t as getCdkdVersion } from "./version-CHHsJMqE.js";
5
+ import { t as ASGProvider } from "./asg-provider--XFrKRbw.js";
6
6
  import { AsyncLocalStorage } from "node:async_hooks";
7
7
  import { createHash, randomBytes, randomUUID } from "node:crypto";
8
8
  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";
@@ -42,6 +42,7 @@ import { Command, Option } from "commander";
42
42
  import * as readline$1 from "node:readline/promises";
43
43
  import readline from "node:readline/promises";
44
44
  import { writeFileSync as writeFileSync$1 } from "fs";
45
+ import { Document, Pair, Scalar, YAMLMap, YAMLSeq, isScalar, parse, stringify, visit } from "yaml";
45
46
  import * as zlib from "node:zlib";
46
47
  import { ApplicationAutoScalingClient, DeleteScalingPolicyCommand, DeregisterScalableTargetCommand, DescribeScalableTargetsCommand, DescribeScalingPoliciesCommand, PutScalingPolicyCommand, RegisterScalableTargetCommand } from "@aws-sdk/client-application-auto-scaling";
47
48
  import { ApiGatewayV2Client, CreateApiCommand, CreateAuthorizerCommand as CreateAuthorizerCommand$1, CreateIntegrationCommand, CreateRouteCommand as CreateRouteCommand$1, CreateStageCommand as CreateStageCommand$1, DeleteAccessLogSettingsCommand, DeleteApiCommand, DeleteAuthorizerCommand as DeleteAuthorizerCommand$1, DeleteCorsConfigurationCommand, DeleteIntegrationCommand, DeleteRouteCommand as DeleteRouteCommand$1, DeleteRouteRequestParameterCommand, DeleteRouteSettingsCommand, DeleteStageCommand as DeleteStageCommand$1, GetApiCommand, GetAuthorizerCommand as GetAuthorizerCommand$1, GetIntegrationCommand, GetRouteCommand, GetStageCommand as GetStageCommand$1, NotFoundException as NotFoundException$3, UpdateApiCommand, UpdateAuthorizerCommand as UpdateAuthorizerCommand$1, UpdateIntegrationCommand, UpdateRouteCommand, UpdateStageCommand as UpdateStageCommand$1 } from "@aws-sdk/client-apigatewayv2";
@@ -52,7 +53,7 @@ import { AddTagsToResourceCommand as AddTagsToResourceCommand$4, CreateDBCluster
52
53
  import { AddCustomAttributesCommand, CognitoIdentityProviderClient, CreateUserPoolCommand, DeleteUserPoolCommand, DescribeUserPoolCommand, GetUserPoolMfaConfigCommand, ListUserPoolsCommand, ResourceNotFoundException as ResourceNotFoundException$9, SetUserPoolMfaConfigCommand, UpdateUserPoolCommand } from "@aws-sdk/client-cognito-identity-provider";
53
54
  import { CreateHttpNamespaceCommand, CreatePrivateDnsNamespaceCommand, CreatePublicDnsNamespaceCommand, CreateServiceCommand as CreateServiceCommand$1, DeleteNamespaceCommand, DeleteServiceAttributesCommand, DeleteServiceCommand as DeleteServiceCommand$1, GetNamespaceCommand, GetOperationCommand, GetServiceAttributesCommand, GetServiceCommand, ListNamespacesCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$14, NamespaceNotFound, ResourceInUse, ServiceDiscoveryClient, ServiceNotFound, TagResourceCommand as TagResourceCommand$15, UntagResourceCommand as UntagResourceCommand$15, UpdateHttpNamespaceCommand, UpdatePrivateDnsNamespaceCommand, UpdatePublicDnsNamespaceCommand, UpdateServiceAttributesCommand, UpdateServiceCommand as UpdateServiceCommand$1 } from "@aws-sdk/client-servicediscovery";
54
55
  import { AppSyncClient, CreateApiKeyCommand, CreateDataSourceCommand, CreateGraphqlApiCommand, CreateResolverCommand, DeleteApiKeyCommand, DeleteDataSourceCommand, DeleteGraphqlApiCommand, DeleteResolverCommand, GetDataSourceCommand, GetGraphqlApiCommand, GetGraphqlApiEnvironmentVariablesCommand, GetIntrospectionSchemaCommand, GetResolverCommand, ListApiKeysCommand, NotFoundException as NotFoundException$4, PutGraphqlApiEnvironmentVariablesCommand, StartSchemaCreationCommand, TagResourceCommand as TagResourceCommand$16, UntagResourceCommand as UntagResourceCommand$16, UpdateApiKeyCommand, UpdateDataSourceCommand, UpdateGraphqlApiCommand, UpdateResolverCommand } from "@aws-sdk/client-appsync";
55
- import { parse, print } from "graphql";
56
+ import { parse as parse$1, print } from "graphql";
56
57
  import { ConcurrentModificationException, CrawlerRunningException, CreateConnectionCommand, CreateCrawlerCommand, CreateDatabaseCommand, CreateJobCommand, CreateSecurityConfigurationCommand, CreateTableCommand as CreateTableCommand$1, CreateTriggerCommand, CreateWorkflowCommand, DeleteConnectionCommand, DeleteCrawlerCommand, DeleteDatabaseCommand, DeleteJobCommand, DeleteSecurityConfigurationCommand, DeleteTableCommand as DeleteTableCommand$1, DeleteTriggerCommand, DeleteWorkflowCommand, EntityNotFoundException, GetConnectionCommand, GetCrawlerCommand, GetDatabaseCommand, GetJobCommand, GetSecurityConfigurationCommand, GetTableCommand, GetTagsCommand, GetTriggerCommand, GetWorkflowCommand, GlueClient, StartCrawlerScheduleCommand, StartTriggerCommand, StopCrawlerCommand, StopCrawlerScheduleCommand, StopTriggerCommand, UpdateConnectionCommand, UpdateCrawlerCommand, UpdateDatabaseCommand, UpdateJobCommand, UpdateTableCommand as UpdateTableCommand$1, UpdateTriggerCommand, UpdateWorkflowCommand } from "@aws-sdk/client-glue";
57
58
  import { BudgetsClient, CreateBudgetCommand, CreateNotificationCommand, CreateSubscriberCommand, DeleteBudgetCommand, DeleteNotificationCommand, DeleteSubscriberCommand, DescribeBudgetCommand, DuplicateRecordException, NotFoundException as NotFoundException$5, TagResourceCommand as TagResourceCommand$17, UntagResourceCommand as UntagResourceCommand$17, UpdateBudgetCommand } from "@aws-sdk/client-budgets";
58
59
  import { AddTagsToStreamCommand, CreateStreamCommand, DecreaseStreamRetentionPeriodCommand, DeleteStreamCommand, DeregisterStreamConsumerCommand, DescribeStreamCommand, DescribeStreamConsumerCommand, DescribeStreamSummaryCommand, DisableEnhancedMonitoringCommand, EnableEnhancedMonitoringCommand, IncreaseStreamRetentionPeriodCommand, KinesisClient, ListTagsForResourceCommand as ListTagsForResourceCommand$15, ListTagsForStreamCommand, RegisterStreamConsumerCommand, RemoveTagsFromStreamCommand, ResourceNotFoundException as ResourceNotFoundException$10, StartStreamEncryptionCommand, StopStreamEncryptionCommand, TagResourceCommand as TagResourceCommand$18, UntagResourceCommand as UntagResourceCommand$18, UpdateMaxRecordSizeCommand, UpdateShardCountCommand, UpdateStreamModeCommand } from "@aws-sdk/client-kinesis";
@@ -69,7 +70,6 @@ import { CreateLifecyclePolicyCommand, DLMClient, DeleteLifecyclePolicyCommand a
69
70
  import { CreateVectorBucketCommand, DeleteIndexCommand, DeleteVectorBucketCommand, GetVectorBucketCommand, ListIndexesCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$17, S3VectorsClient, TagResourceCommand as TagResourceCommand$22, UntagResourceCommand as UntagResourceCommand$22 } from "@aws-sdk/client-s3vectors";
70
71
  import { ListTagsForResourceCommand as ListTagsForResourceCommand$18, S3ControlClient, TagResourceCommand as TagResourceCommand$23, UntagResourceCommand as UntagResourceCommand$23 } from "@aws-sdk/client-s3-control";
71
72
  import { CreateNamespaceCommand, CreateTableBucketCommand, CreateTableCommand as CreateTableCommand$2, DeleteNamespaceCommand as DeleteNamespaceCommand$1, DeleteTableBucketCommand, DeleteTableCommand as DeleteTableCommand$2, GetNamespaceCommand as GetNamespaceCommand$1, GetTableBucketCommand, GetTableCommand as GetTableCommand$1, ListNamespacesCommand as ListNamespacesCommand$1, ListTableBucketsCommand, ListTablesCommand, ListTagsForResourceCommand as ListTagsForResourceCommand$19, NotFoundException as NotFoundException$6, S3TablesClient, TagResourceCommand as TagResourceCommand$24, UntagResourceCommand as UntagResourceCommand$24 } from "@aws-sdk/client-s3tables";
72
- import { Document, Pair, Scalar, YAMLMap, YAMLSeq, parse as parse$1, stringify } from "yaml";
73
73
  import { createLocalStartAgentCoreCommand, createLocalStartCloudFrontCommand, createLocalStateProvider, getEmbedConfig, isCfnFlagPresent, listTargets, rejectExplicitCfnStackWithMultipleStacks, resolveCfnFallbackRegion, setEmbedConfig, substituteAgainstState, substituteAgainstStateAsync, substituteEnvVarsFromState, substituteEnvVarsFromStateAsync } from "cdk-local";
74
74
  import { A2A_CONTAINER_PORT, A2A_PATH, AGENTCORE_A2A_PROTOCOL, AGENTCORE_AGUI_PROTOCOL, AGENTCORE_MCP_PROTOCOL, ConnectionRegistry, EcsTaskResolutionError, HOST_GATEWAY_MIN_VERSION, LocalInvokeBuildError, MCP_CONTAINER_PORT, MCP_PATH, a2aInvokeOnce, addAlbSpecificOptions, addCommonEcsServiceOptions, addStartServiceSpecificOptions, albStrategy, architectureToPlatform, attachAuthorizers, attachStageContext, availableApiIdentifiers, bufferToBody, buildAgentCoreCodeImage, buildCognitoJwksUrl, buildConnectEvent, buildContainerImage, buildCorsConfigByApiId, buildCorsConfigFromCloudFrontChain, buildDisconnectEvent, buildJwksUrlFromIssuer, buildMessageEvent, buildMgmtEndpointEnvUrl, buildStageMap, classifySourceChange, createAuthorizerCache, createFileWatcher, createFileWatcher as createFileWatcher$1, createJwksCache, createWatchPredicates, defaultCredentialsLoader, derivePseudoParametersFromRegion, discoverRoutes, discoverWebSocketApis, downloadAndExtractS3Bundle, filterRoutesByApiIdentifier, groupRoutesByServer, handleConnectionsRequest, invokeAgentCore, invokeAgentCoreWs, materializeLayerFromArn, mcpInvokeOnce, parseConnectionsPath, parseSelectionExpressionPath, pickAgentCoreCandidateStack, pickAgentCoreCandidateStack as pickAgentCoreCandidateStack$1, probeHostGatewaySupport, readMtlsMaterialsFromDisk, resolveAgentCoreTarget, resolveEnvVars, resolveHostGatewayExtraHosts, resolveRuntimeCodeMountPath, resolveRuntimeFileExtension, resolveRuntimeImage, resolveSingleTarget, resolveWatchConfig, runEcsServiceEmulator, signAgentCoreInvocation, startApiServer, substituteImagePlaceholders, tryResolveImageFnJoin, verifyJwtViaDiscovery, waitForAgentCorePing } from "cdk-local/internal";
75
75
  import { createServer } from "node:net";
@@ -1749,47 +1749,205 @@ function createBootstrapCommand() {
1749
1749
  //#endregion
1750
1750
  //#region src/utils/yaml.ts
1751
1751
  /**
1752
- * Simple JSON to YAML converter (CDK CLI compatible output)
1752
+ * JSON to YAML rendering (CDK CLI compatible output)
1753
1753
  *
1754
1754
  * Used by `synth` (CloudFormation template) and `list` (long output) for
1755
- * human-friendly YAML rendering. Matches the quoting style of CDK CLI:
1756
- * single-quote JSON-like / multi-line strings, double-quote strings whose
1757
- * literal content collides with YAML scalar keywords.
1758
- */
1759
- function toYaml(obj, indent = 0) {
1760
- const prefix = " ".repeat(indent);
1761
- if (obj === null || obj === void 0) return "null\n";
1762
- if (typeof obj === "boolean") return `${obj}\n`;
1763
- if (typeof obj === "number") return `"${obj}"\n`;
1764
- if (typeof obj === "string") {
1765
- if (obj.includes("\n")) return `'${obj.replace(/'/g, "''")}'\n`;
1766
- if (obj.startsWith("{") || obj.startsWith("[") || obj.startsWith("\"")) return `'${obj.replace(/'/g, "''")}'\n`;
1767
- if (obj.includes("#") || obj === "" || obj === "true" || obj === "false" || obj === "null") return `"${obj}"\n`;
1768
- return `${obj}\n`;
1769
- }
1770
- if (Array.isArray(obj)) {
1771
- if (obj.length === 0) return "[]\n";
1772
- let result = "\n";
1773
- for (const item of obj) {
1774
- const value = toYaml(item, indent + 1).trimStart();
1775
- result += `${prefix}- ${value}`;
1776
- }
1755
+ * human-friendly YAML rendering.
1756
+ *
1757
+ * Issue [#2421](https://github.com/go-to-k/cdkd/issues/2421): this was a
1758
+ * hand-rolled emitter whose "needs quoting" predicate covered four cases (an
1759
+ * embedded newline, a leading `{` / `[` / `"`, and the literals containing
1760
+ * `#` / empty / `true` / `false` / `null`). Every other YAML indicator was
1761
+ * emitted bare, so `AllowedOrigins: ['*']` rendered as `- *` — an alias node,
1762
+ * which a parser rejects with `BAD_ALIAS`. `cdkd synth` writes this output to
1763
+ * stdout, so `cdkd synth | yq` failed on the repo's own minimal fixture.
1764
+ *
1765
+ * The fix is a change of INSTRUMENT rather than a wider predicate: quoting a
1766
+ * YAML scalar correctly is a solved problem with an unbounded number of
1767
+ * spellings to get wrong one at a time, and the `yaml` package is already a
1768
+ * runtime dependency — the same library the AWS CDK CLI does this job with
1769
+ * (`@aws-cdk/toolkit-lib/lib/util/yaml-cfn.ts`: `yaml.stringify(obj, {
1770
+ * schema: 'yaml-1.1' })` at fold width 0). So "CDK CLI compatible" is now
1771
+ * produced by the library CDK CLI uses rather than approximated. The SCHEMA
1772
+ * differs from CDK CLI's deliberately; `EMIT_OPTIONS` below carries the
1773
+ * measurement and the reason, including the one input class whose rendering
1774
+ * that choice does change.
1775
+ *
1776
+ * Measured consequence on `tests/integration/basic` (2026-09-03): of 182
1777
+ * lines, only the defect and its mirror move — `- *` becomes `- "*"`, numbers
1778
+ * stop being emitted as strings (`ExpirationInDays: 90`, not `"90"`), numeric
1779
+ * STRINGS start being quoted (`schemaVersion: "2.2"`), and the document no
1780
+ * longer opens with a blank line. Indentation, key order and sequence style
1781
+ * are byte-identical to the hand-rolled output.
1782
+ *
1783
+ * One further contract change, recorded because it is silent rather than
1784
+ * because it is reachable: an `undefined` OBJECT VALUE is now OMITTED
1785
+ * (`{ a: undefined, b: 1 }` renders `b: 1`) where the hand-rolled emitter
1786
+ * wrote `a: null`. That matches what `JSON.stringify` does, so the YAML and
1787
+ * `--json` spellings of `cdkd list` agree, and neither consumer can produce
1788
+ * one today — `synth` passes assembly JSON, and `list`'s record is built with
1789
+ * `??` defaults.
1790
+ *
1791
+ * NOT the same job as `src/cli/yaml-cfn.ts`, which emits CFn intrinsics as
1792
+ * shorthand tags (`!Ref`) for `cdkd export` / `import`. `cdk synth` prints
1793
+ * the long form (`Fn::GetAtt`), and so does this.
1794
+ */
1795
+ /**
1796
+ * The emit options, and the READERS the output has to survive.
1797
+ *
1798
+ * The correctness here comes from `READER_SCHEMAS` — the oracle below quotes
1799
+ * anything EITHER reader would hand back changed — and NOT from the emitting
1800
+ * schema. That split matters, because neither schema resolves a superset of
1801
+ * the other:
1802
+ *
1803
+ * - 1.2 core added `0o` octal, for which 1.1 has no resolver, so `'0o17'`
1804
+ * emitted bare under 1.1 would come back as the number 15 from a default
1805
+ * reader — the finding that produced this oracle, and the reason the list
1806
+ * is a list. It is currently INERT, because emitting under `core` means the
1807
+ * library has already applied core's own resolvers: measured, dropping
1808
+ * `'core'` from this list reds nothing while dropping `'yaml-1.1'` reds. It
1809
+ * stays because the emit schema has already moved once in this file's
1810
+ * history, and this list is what would keep the guarantee standing if it
1811
+ * moves again;
1812
+ * - 1.1 resolves `yes` / `no` / `on` / `off` and timestamps, which 1.2 leaves
1813
+ * alone, so those must be quoted for `yq`'s sake even though a 1.2 reader
1814
+ * would not have re-typed them.
1815
+ *
1816
+ * Emitting under `core` rather than the CDK CLI's `yaml-1.1` is therefore a
1817
+ * deliberate choice and not a drift from parity, because 1.1 carries one tag
1818
+ * that DEFEATS the oracle: `<<` is the MERGE key, and its tag's `stringify`
1819
+ * returns the literal `<<` while ignoring the node's style, so the
1820
+ * `QUOTE_DOUBLE` the oracle sets on that key is silently discarded and
1821
+ * `{'<<': 'v'}` still emits `<<: v` — which a 1.1 reader rejects with `Merge
1822
+ * sources must be maps`. Under `core` there is no merge tag, the forced
1823
+ * quotes survive, and the output is `"<<": v`.
1824
+ *
1825
+ * Parity is preserved in fact rather than by the option name, and it was
1826
+ * MEASURED rather than argued (2026-09-03): with the oracle in place, both
1827
+ * this repo's real templates — `tests/integration/basic` and
1828
+ * `tests/integration/local-invoke` — render BYTE-IDENTICALLY under the two
1829
+ * schemas, as does every probe tried except `<<` itself. What changes is only
1830
+ * which layer does the quoting: under `core` the library emits `yes` bare and
1831
+ * the oracle quotes it; under 1.1 the library quoted it directly.
1832
+ *
1833
+ * This was found by a review round, after a first cut had `yaml-1.1` here and
1834
+ * a test suite that could not see the difference — the four-position
1835
+ * round-trip loop parses under 1.2, where `<<:` is an ordinary key, and the
1836
+ * 1.1 arm covered only the map-VALUE position. Both now run all four
1837
+ * positions under both readers.
1838
+ */
1839
+ const EMIT_OPTIONS = {
1840
+ schema: "core",
1841
+ lineWidth: 0,
1842
+ aliasDuplicateObjects: false
1843
+ };
1844
+ const READER_SCHEMAS = ["yaml-1.1", "core"];
1845
+ /**
1846
+ * The oracle PARSES, and a parse can warn as well as throw — so the probe
1847
+ * reads have to be silenced or the probe becomes an output side effect.
1848
+ *
1849
+ * Measured: a date-shaped map KEY emits bare under `core`, and probing it
1850
+ * under the 1.1 reader resolves it to a `Date`, at which point `yaml` calls
1851
+ * `process.emitWarning` (`Keys with collection values will be stringified`).
1852
+ * That reached the real stderr — 254 bytes on a GREEN unit run, against this
1853
+ * repo's "a green run must print nothing" rule, and on `cdkd synth` for any
1854
+ * template carrying such a key. The oracle only ever reads the parsed VALUE,
1855
+ * so it has no use for the diagnostics.
1856
+ *
1857
+ * `silent` is NOT diagnostics-only, though, and the difference is recorded
1858
+ * here because it changes what the `catch`es below mean. `parse` re-throws
1859
+ * `doc.errors[0]` only when the level is not `silent` (`yaml`'s
1860
+ * `public-api.js`), so under it a `DUPLICATE_KEY` / `TAB_AS_INDENT` /
1861
+ * `BLOCK_AS_IMPLICIT_KEY` document RETURNS a partially-composed value instead
1862
+ * of throwing. The oracle's answer is unaffected — it degrades "threw" into
1863
+ * "came back different", which is the same `false` — and that was measured
1864
+ * rather than argued: over a 91,033-string corpus in review, 0 verdicts flip,
1865
+ * and of the 487 strings whose emission fails a loud parse, none has a silent
1866
+ * parse returning the ORIGINAL value, which is the only shape that could
1867
+ * produce a wrong `true`.
1868
+ *
1869
+ * What still throws under `silent` is a `toJS`-time error, because that runs
1870
+ * AFTER the error check — which is exactly the `<<` merge failure the key
1871
+ * oracle depends on. Verified: `parse('<<: v', { schema: 'yaml-1.1',
1872
+ * logLevel: 'silent' })` still raises `Merge sources must be maps`.
1873
+ */
1874
+ const READER_OPTIONS = { logLevel: "silent" };
1875
+ /**
1876
+ * Templates repeat their scalars heavily (`AWS::S3::Bucket`, a region, a
1877
+ * logical id), and each miss costs one emit plus one parse per reader. Keyed
1878
+ * by the exact string, and the wrapped predicates are pure functions of it.
1879
+ */
1880
+ function memoize(fn) {
1881
+ const cache = /* @__PURE__ */ new Map();
1882
+ return (value) => {
1883
+ const hit = cache.get(value);
1884
+ if (hit !== void 0) return hit;
1885
+ const result = fn(value);
1886
+ cache.set(value, result);
1777
1887
  return result;
1778
- }
1779
- if (typeof obj === "object") {
1780
- const entries = Object.entries(obj);
1781
- if (entries.length === 0) return "{}\n";
1782
- let result = "\n";
1783
- for (const [key, value] of entries) {
1784
- const safeKey = key.includes(" ") ? `"${key}"` : key;
1785
- const isContainer = typeof value === "object" && value !== null;
1786
- const isEmptyContainer = isContainer && (Array.isArray(value) ? value.length === 0 : Object.keys(value).length === 0);
1787
- if (isContainer && !isEmptyContainer) result += `${prefix}${safeKey}:${toYaml(value, indent + 1)}`;
1788
- else result += `${prefix}${safeKey}: ${toYaml(value, indent + 1).trimStart()}`;
1888
+ };
1889
+ }
1890
+ /**
1891
+ * Would this string, emitted plain, come back as the same string from EVERY
1892
+ * reader above?
1893
+ *
1894
+ * The library answers it, for both resolvers, rather than a predicate spelled
1895
+ * out here. The defect being fixed WAS a hand-written must-quote list missing
1896
+ * entries, and a second list with two more entries on it is the same artifact
1897
+ * with the same failure mode; asking whether the value survives the trip has
1898
+ * no spellings to miss.
1899
+ *
1900
+ * There are two of these because position decides the question. A string can
1901
+ * be special as a KEY while ordinary as a value: `<<` is the merge key under
1902
+ * 1.1, so `{'<<': 'v'}` emitted plain makes a 1.1 reader fail with `Merge
1903
+ * sources must be maps`, while a bare `<<` in value position is just a
1904
+ * string.
1905
+ */
1906
+ const valueRoundTripsPlain = memoize((value) => {
1907
+ const emitted = stringify(value, EMIT_OPTIONS);
1908
+ return READER_SCHEMAS.every((schema) => {
1909
+ try {
1910
+ return parse(emitted, {
1911
+ schema,
1912
+ ...READER_OPTIONS
1913
+ }) === value;
1914
+ } catch {
1915
+ return false;
1789
1916
  }
1790
- return result;
1791
- }
1792
- return `${stringifyValue(obj)}\n`;
1917
+ });
1918
+ });
1919
+ const keyRoundTripsPlain = memoize((key) => {
1920
+ const probe = "cdkd-probe";
1921
+ const emitted = stringify({ [key]: probe }, EMIT_OPTIONS);
1922
+ return READER_SCHEMAS.every((schema) => {
1923
+ let back;
1924
+ try {
1925
+ back = parse(emitted, {
1926
+ schema,
1927
+ ...READER_OPTIONS
1928
+ });
1929
+ } catch {
1930
+ return false;
1931
+ }
1932
+ if (back === null || typeof back !== "object" || Array.isArray(back)) return false;
1933
+ const record = back;
1934
+ const keys = Object.keys(record);
1935
+ return keys.length === 1 && keys[0] === key && record[key] === probe;
1936
+ });
1937
+ });
1938
+ function toYaml(obj) {
1939
+ const doc = new Document(obj, EMIT_OPTIONS);
1940
+ visit(doc, {
1941
+ Scalar(key, node) {
1942
+ if (key === "key") return;
1943
+ if (typeof node.value === "string" && !valueRoundTripsPlain(node.value)) node.type = Scalar.QUOTE_DOUBLE;
1944
+ },
1945
+ Pair(_, pair) {
1946
+ const { key } = pair;
1947
+ if (isScalar(key) && typeof key.value === "string" && !keyRoundTripsPlain(key.value)) key.type = Scalar.QUOTE_DOUBLE;
1948
+ }
1949
+ });
1950
+ return doc.toString(EMIT_OPTIONS);
1793
1951
  }
1794
1952
 
1795
1953
  //#endregion
@@ -2010,8 +2168,7 @@ function emitStructured(payload, asJson) {
2010
2168
  process.stdout.write(`${JSON.stringify(payload, null, 2)}\n`);
2011
2169
  return;
2012
2170
  }
2013
- const yaml = toYaml(payload).replace(/^\n/, "");
2014
- process.stdout.write(yaml);
2171
+ process.stdout.write(toYaml(payload));
2015
2172
  }
2016
2173
  /**
2017
2174
  * Create list command
@@ -46518,7 +46675,7 @@ var AppSyncProvider = class {
46518
46675
  */
46519
46676
  canonicalizeSdl(sdl, source) {
46520
46677
  try {
46521
- return print(parse(sdl));
46678
+ return print(parse$1(sdl));
46522
46679
  } catch (err) {
46523
46680
  this.logger.debug(`Failed to parse ${source} SDL via graphql-js (falling back to raw): ${err instanceof Error ? err.message : String(err)}`);
46524
46681
  return sdl;
@@ -62816,7 +62973,7 @@ function parseCfnTemplate(text) {
62816
62973
  throw new Error(`Template is not valid JSON. Cause: ${err instanceof Error ? err.message : String(err)}`);
62817
62974
  }
62818
62975
  else try {
62819
- parsed = parse$1(body, { customTags: CUSTOM_TAGS });
62976
+ parsed = parse(body, { customTags: CUSTOM_TAGS });
62820
62977
  } catch (err) {
62821
62978
  throw new Error(`Template is not valid YAML. Cause: ${err instanceof Error ? err.message : String(err)}`);
62822
62979
  }
@@ -75996,10 +76153,6 @@ async function eventsPruneCommand(stackName, options) {
75996
76153
  const totalRuns = (await reader.listRuns(stackName, targetRegion)).length;
75997
76154
  const scope = options.all ? `ALL ${totalRuns} run(s)` : options.keep !== void 0 && olderThanMs !== void 0 ? `runs beyond the newest ${options.keep} AND older than ${options.olderThan}` : options.keep !== void 0 ? `runs beyond the newest ${options.keep}` : olderThanMs !== void 0 ? `runs older than ${options.olderThan}` : `runs beyond the newest ${20}`;
75998
76155
  if (options.yes !== true) {
75999
- if (!process.stdin.isTTY) {
76000
- logger.info(gray(`Refusing to prune deployment-event history for ${stackName} (${targetRegion}) without confirmation on a non-interactive terminal. Re-run with --yes to proceed.`));
76001
- return;
76002
- }
76003
76156
  if (!await confirmPrompt$2(`Prune deployment-event history for ${cyan(stackName)} ${gray(`(${targetRegion})`)}: ${scope}?`)) {
76004
76157
  logger.info(gray("Aborted; nothing was deleted."));
76005
76158
  return;
@@ -76019,18 +76172,16 @@ async function eventsPruneCommand(stackName, options) {
76019
76172
  awsClients.destroy();
76020
76173
  }
76021
76174
  }
76022
- /** Minimal `(y/N)` confirmation prompt. */
76175
+ /**
76176
+ * Minimal `(y/N)` prune confirmation, delegating to the shared guarded helper.
76177
+ *
76178
+ * Exported for unit testing, matching the nine siblings issue #2275 folded —
76179
+ * `tests/unit/cli/non-interactive-confirm-guards.test.ts` drives each command's
76180
+ * wrapper directly, which is how the refusal wording and the never-settling
76181
+ * hang fence are checked per site.
76182
+ */
76023
76183
  async function confirmPrompt$2(prompt) {
76024
- const rl = readline$1.createInterface({
76025
- input: process.stdin,
76026
- output: process.stdout
76027
- });
76028
- try {
76029
- const ans = await rl.question(`${prompt} [y/N] `);
76030
- return /^y(es)?$/i.test(ans.trim());
76031
- } finally {
76032
- rl.close();
76033
- }
76184
+ return confirmOrRefuse(prompt, { refusal: "The cdkd events prune confirmation prompt cannot run in a non-interactive environment. Pass -y / --yes to confirm the prune, or run the command from a real terminal. Nothing has been deleted." });
76034
76185
  }
76035
76186
  /** Human-readable run listing (newest first). */
76036
76187
  function printRunList(stackName, region, runs) {
@@ -89364,7 +89515,7 @@ function createMigrateCommand() {
89364
89515
  */
89365
89516
  function buildProgram() {
89366
89517
  const program = new Command();
89367
- program.name("cdkd").description("CDK Direct - Deploy AWS CDK apps directly via SDK/Cloud Control API").version(getCdkdVersion());
89518
+ program.name("cdkd").description("Drop-in CDK CLI for existing CDK apps - up to 15x faster deploys via direct AWS SDK calls instead of CloudFormation").version(getCdkdVersion());
89368
89519
  program.hook("preAction", (_thisCommand, actionCommand) => {
89369
89520
  const { profile } = actionCommand.optsWithGlobals();
89370
89521
  if (profile !== void 0) process.env["AWS_PROFILE"] = profile;
@@ -89393,4 +89544,4 @@ function buildProgram() {
89393
89544
 
89394
89545
  //#endregion
89395
89546
  export { buildProgram };
89396
- //# sourceMappingURL=program-B9vnKc3N.js.map
89547
+ //# sourceMappingURL=program-BeYoZQIP.js.map