@go-to-k/cdkd 0.290.40 → 0.290.42

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.
@@ -1,8 +1,8 @@
1
- import { $ as yellow, $i as CrossAccountSecretRefusalError, $n as TemplateParser, $r as validateAssetBucketName, $t as requireConfigObject, A as createPreDeleteFinalSnapshot, Ai as ssmResolvedValueType, An as malformedResourcePropertiesWarning, Ar as hasReasonlessBaselineRefusal, At as carriesDynamicReference, B as isStatefulRecreateTargetSync, Bi as canonicalizeRegion, Bn as refuseMalformedResourcesForDestroy, Br as WorkGraph, Bt as isSettledInstanceState, C as namesAnyDeclaredParameter, Ca as isThrottlingError, Ci as resolveCaptureObservedState, Cn as malformedExportSourceWarning, Cr as forceQuitRecoveryClause, Ct as slowCcOperationTimeoutMs, D as PRE_DELETE_SNAPSHOT_TYPES, Da as retryClassificationText, Di as resolveUseCdkBootstrapAssets, Dn as malformedOutputsWarning, Dr as DEFAULT_STATE_PREFIX, Dt as disableInstanceApiTermination, E as ATOMIC_FINAL_SNAPSHOT_TYPES, Ea as markRedactedCause, Ei as resolveStateBucketWithDefaultAndSource, En as malformedOutputsRefusalMessage, Er as CUSTOM_RESOURCE_RESPONSE_PREFIX, Et as deleteSkipReason, F as extractDeploymentEventError, Fi as uploadCfnTemplate, Fn as refuseMalformedNestedChildOutputs, Fr as orphansAfterRollback, Ft as isImpossibleEmptyStoredAttribute, G as toCfnInteger, Gi as resolveBucketRegion, Gn as repairMalformedResourcesForReadOnly, Gr as AssetModeResolver, Gt as coerceCfnBoolean, H as WARM_THROUGHPUT_MEMBERS, Hi as AssemblyReader, Hn as repairMalformedOutputsForReadOnly, Hr as createAssetRedirectResolver, Ht as normalizeAwsTagsToCfn, I as makeSiblingClaimReader, Ii as CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION, In as refuseMalformedOutputs, Ir as orphansCarriedFrom, It as isNamelessDynamicReferenceError, J as bold, Ji as resetAwsClients, Jn as findActionableSilentDrops, Jr as ensureAssetStorage, Jt as configIntegerRefusal, K as toFiniteNumber, Ki as AwsClients, Kn as safeRegion, Kr as BOOTSTRAP_MARKER_PREFIX, Kt as coerceCfnInteger, L as planOrphanAdoption, Li as decodeListingKey, Ln as refuseMalformedOutputsForDestroy, Lr as shouldRetainResource, Lt as isUnboundTemplateParameter, M as refusesFinalSnapshot, Mi as CFN_TEMPLATE_URL_LIMIT, Mn as malformedStateRefusalMessage, Mr as importableOutputKeys, Mt as cfnRefValueFromPhysicalId, N as unsupportedFinalSnapshotError, Ni as MIGRATE_TMP_PREFIX, Nn as producerRecordKey, Nr as importableOutputs, Nt as coerceParameterTypedValue, O as buildFinalSnapshotIdentifier, Oa as describeAwsFailure, Oi as stateBucketExistenceConfirmed, On as malformedRenderedContainersWarning, Or as exportNamesCarriedFrom, Ot as isTerminationProtectionPropagationError, P as makeCanonicalizePropertiesFn, Pi as findLargeInlineResources, Pn as refuseDivergentRecordRegionForDestroy, Pr as isReadableBag, Pt as getAccountInfo, Q as red, Qn as DagBuilder, Qr as readBootstrapMarkerBody, Qt as requireConfigArray, R as MULTI_REGION_RECREATE_BLOCKED_TYPES, Ri as expectedOwnerParam, Rn as refuseMalformedResourceEntries, Rr as AssetPublisher, Rt as parameterTypeMayLoseSecretIdentity, S as computeParameterTaint, Sa as isRetryableTransientError, Si as resolveAutoAssetStorage, Sn as malformedExportNamesWarning, Sr as buildLockContentionMessage, St as isWaitAbandonedError, T as resourcesNamingDeclaredParameter, Ta as markNonRetryable, Ti as resolveStateBucketWithDefault, Tn as malformedOrphanRecordsWarning, Tr as shellQuote, Tt as deleteIndeterminateGuards, U as coerceWarmThroughput$1, Ui as processStackMessages, Un as repairMalformedResourceEntriesForReadOnly, Ur as loadPublishableAssetManifest, Ut as resolveExplicitPhysicalId, V as renderStatefulReason, Vi as derivePartitionAndUrlSuffix, Vn as refuseMalformedState, Vr as buildAssetRedirectMap, Vt as WAFv2WebACLProvider, W as isWarmThroughputDecrease, Wn as repairMalformedResourcePropertiesForReadOnly, Wr as rewriteTemplateAssetReferences, Wt as assertRegionMatch, X as gray, Xn as describeTypeWithThrottleRetry, Xr as isCrossRegionRedirect, Xt as readConfigString, Y as cyan, Yi as setAwsClients, Yn as findSilentDropProperties, Yr as getBootstrapMarkerKey, Yt as configStringRefusal, Z as green, Zi as CdkdError, Zn as withRetry, Zr as parseBootstrapMarker, Zt as replayWarn, _ as bagHoldsSecretExpression, _i as Synthesizer, _n as UNREADABLE_RESOURCES_MAP_ROW, _r as LockManager, _t as endCommandInterruptScope, a as DeploymentEventsStore, aa as LocalStartServiceError, ai as describeDockerFailure, an as s3BucketDomainName, ar as createSecretMasker, at as secretBearingStateKeyWarning, b as mergeNoChangeOutputs, ba as withErrorHandling, bi as getLegacyStateBucketName, bn as hasReadableResources, br as UNREPRODUCIBLE_LOCK_CLAUSE, bt as startInterruptWatch, c as replayFailedOperations, ca as NestedStackChildDirectDestroyError, ci as getDockerCmd, cn as s3BucketWebsiteUrl, cr as identityKeyFor, ct as IAMRoleProvider, d as updatePartialMessage, da as ResourceTimeoutError, di as runDockerForeground, dn as applyCallerIdentityCredentials, dr as maskSecretsInError, dt as ProviderRegistry, ei as validateContainerRepoName, en as requireConfigString, er as STATE_SOURCED_BASELINE_RULES, et as collectDeclaredOutputNames, f as updatePartialReason, fa as ResourceUpdateNotSupportedError, fi as runDockerStreaming, fn as callerEnvCredentials, fr as maskSecretsInText, ft as wouldReturnToSdkProvider, g as computeImplicitDeleteEdges, ga as SynthesisError, gi as getDockerImageBySourceHash, gn as STATE_RESOURCES_MALFORMED, gr as scrubResourceRecord, gt as beginCommandInterruptScope, h as IMPLICIT_DELETE_DEPENDENCIES, hi as AssetManifestLoader, hn as INTRINSIC_KEYS, hr as redactSecretsForState, ht as maskerOrIdentity, i as DeploymentEventsReader, ia as LocalInvokeBuildError$1, ii as describeDockerExecFailure, in as s3BucketArn, ir as carriesSecretMask, it as secretBearing, j as isFinalSnapshotError, ji as CFN_TEMPLATE_BODY_LIMIT, jn as malformedResourcesWarning, jr as hasUnverifiableParameterRefusal, jt as carriesFetchableDynamicReference, k as ccRoutedFinalSnapshotError, ka as safeStringify, ki as warnDeprecatedNoPrefixCliFlag, kn as malformedResourceEntriesWarning, kr as hasReadableExportSet, kt as IntrinsicFunctionResolver, l as replayRollback, la as PartialFailureError, li as partitionSensitiveEnv, ln as applyRoleArnIfSet, lr as isSingleDynamicReferenceToken, lt as collectInlinePolicyNamesManagedBySiblings, m as maskingRetryLogger, ma as StackTerminationProtectionError, mi as stripControlChars, mn as DiffCalculator, mr as recoverMaskedOutput, mt as maskDeep, n as DEFAULT_RESOURCE_WARN_AFTER_MS, na as DynamicReferenceRegionAmbiguousError, ni as buildDockerImage, nn as producerRegionsFromState, nr as STATE_SOURCED_READBACK_RULES, nt as exportAliasCollisionScrubWarning, o as planFailedOps, oi as dockerSpawnEnvWithSensitive, on as s3BucketDualStackDomainName, or as dynamicReferenceTokens, ot as secretSafeKeyDisplay, p as withResourceDeadline, pa as StackHasActiveImportsError, pi as escapeRegExp, pn as envCredentialsAreAssumedRole, pr as recordMaskOnlyValue, pt as createMaskedRetryLogger, q as formatResourceLine, qi as getAwsClients, qn as safeStackName, qr as assertAssetBucketRegion, qt as configBooleanRefusal, r as DeployEngine, ra as IntrinsicResolutionRefusalError, ri as describeDockerCapturedOutput, rn as withSharedDrainBudget, rr as TEMPLATE_SOURCED_RULES, rt as isExportAliasCollision, s as planRollback, sa as MalformedProducerRecordRefusalError, si as formatDockerLoginError, sn as s3BucketRegionalDomainName, sr as errorCauseChain, st as getCurrentResourceSecrets, t as DEFAULT_RESOURCE_TIMEOUT_MS, ta as DeployCancelledError, ti as buildDenyExternalAccessPolicy, tn as classifyReplaySecretRegion, tr as STATE_SOURCED_CROSS_GENERATION_RULES, tt as collectPublishedOutputNames, u as resolveReplacementOldType, ua as ProvisioningError, ui as redactDockerArgvValues, un as AWS_CREDENTIAL_ENV_KEYS, ur as markSameGenerationBag, ut as clearOnUpdateRemoval, v as isSecretBearingReferenceString, vi as synthesisStatusMessage, vn as displayLogicalId, vr as S3StateBackend, vt as interruptWatchListenerCount, w as reachableDivergentParameters, wa as isTransientServerError, wi as resolveSkipPrefix, wn as malformedLocalOutputsWarning, wr as formatLockExpiry, wt as UNSPECIFIED_SKIP_REASON, x as bindingSkippedOutputs, xa as isMarkedNonRetryable, xi as resolveApp, xn as isReadableResourceEntry, xr as buildForceUnlockCommand, xt as CloudControlProvider, y as keptWholeReasonText, ya as normalizeAwsError, yi as getDefaultStateBucketName, yn as hasReadableOutputs, yr as rebuildClientForBucketRegion, yt as isInterruptedWaitError, z as isStatefulRecreateTargetForReplace, zi as PARTITION_TABLE, zn as refuseMalformedResourcePropertiesForOrphan, zr as stringifyValue, zt as refStateLookupFromResource } from "./deploy-engine-DJxLBuTb.js";
2
- import { C as displayAwsMessage, D as truncateCodePoints, E as isPasteableIdent, S as UNRENDERABLE, T as displaySafe, _ as withSkipPrefix, b as SECRET_REF_MAX_CODE_POINTS, c as PATTERN_B_NAME_OPTIONS, f as explicitNamePropertyFor, h as getCurrentStackName, i as reserveStdoutForPayload, l as PATTERN_B_NAME_PROPERTIES, m as generateResourceNameWithFallback, n as getLogger, o as runStackBuffered, p as generateResourceName, s as getLiveRenderer, u as PATTERN_B_RESOURCE_TYPES, v as withStackName, w as displayIdent, x as STACK_REF_MAX_CODE_POINTS } from "./logger-BkcLg0jL.js";
1
+ import { $ as yellow, $n as STATE_SOURCED_BASELINE_RULES, $r as validateContainerRepoName, $t as requireConfigObject, A as createPreDeleteFinalSnapshot, Aa as retryClassificationText, Ai as CFN_TEMPLATE_BODY_LIMIT, An as malformedResourcePropertiesWarning, Ar as hasUnverifiableParameterRefusal, At as carriesDynamicReference, B as isStatefulRecreateTargetSync, Bi as decodeListingKey, Bn as refuseMalformedState, Br as buildAssetRedirectMap, Bt as isSettledInstanceState, C as namesAnyDeclaredParameter, Ca as withErrorHandling, Ci as resolveSkipPrefix, Cn as malformedExportSourceWarning, Cr as formatLockExpiry, Ct as slowCcOperationTimeoutMs, D as PRE_DELETE_SNAPSHOT_TYPES, Da as isTransientServerError, Di as stateBucketExistenceConfirmed, Dn as malformedOutputsWarning, Dr as exportNamesCarriedFrom, Dt as disableInstanceApiTermination, E as ATOMIC_FINAL_SNAPSHOT_TYPES, Ea as isThrottlingError, Ei as resolveUseCdkBootstrapAssets, En as malformedOutputsRefusalMessage, Er as DEFAULT_STATE_PREFIX, Et as deleteSkipReason, F as extractDeploymentEventError, Fi as CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION, Fn as refuseMalformedOutputs, Fr as orphansCarriedFrom, Ft as isImpossibleEmptyStoredAttribute, G as toCfnInteger, Gi as AssemblyReader, Gn as safeRegion, Gr as BOOTSTRAP_MARKER_PREFIX, Gt as coerceCfnBoolean, H as WARM_THROUGHPUT_MEMBERS, Hi as PARTITION_TABLE, Hn as repairMalformedResourceEntriesForReadOnly, Hr as loadPublishableAssetManifest, Ht as normalizeAwsTagsToCfn, I as makeSiblingClaimReader, Ii as injectiveKey, In as refuseMalformedOutputsForDestroy, Ir as shouldRetainResource, It as isNamelessDynamicReferenceError, J as bold, Ji as resolveBucketRegion, Jn as findSilentDropProperties, Jr as getBootstrapMarkerKey, Jt as configIntegerRefusal, K as toFiniteNumber, Ki as processStackMessages, Kn as safeStackName, Kr as assertAssetBucketRegion, Kt as coerceCfnInteger, L as planOrphanAdoption, Li as injectiveKeyPrefix, Ln as refuseMalformedResourceEntries, Lr as AssetPublisher, Lt as isUnboundTemplateParameter, M as refusesFinalSnapshot, Ma as safeStringify, Mi as MIGRATE_TMP_PREFIX, Mn as malformedStateRefusalMessage, Mr as importableOutputs, Mt as cfnRefValueFromPhysicalId, N as unsupportedFinalSnapshotError, Ni as findLargeInlineResources, Nn as refuseDivergentRecordRegionForDestroy, Nr as isReadableBag, Nt as coerceParameterTypedValue, O as buildFinalSnapshotIdentifier, Oa as markNonRetryable, Oi as warnDeprecatedNoPrefixCliFlag, On as malformedRenderedContainersWarning, Or as hasReadableExportSet, Ot as isTerminationProtectionPropagationError, P as makeCanonicalizePropertiesFn, Pi as uploadCfnTemplate, Pn as refuseMalformedNestedChildOutputs, Pr as orphansAfterRollback, Pt as getAccountInfo, Q as red, Qi as setAwsClients, Qn as TemplateParser, Qr as validateAssetBucketName, Qt as requireConfigArray, R as MULTI_REGION_RECREATE_BLOCKED_TYPES, Ri as producerCoordinateKey, Rn as refuseMalformedResourcePropertiesForOrphan, Rr as stringifyValue, Rt as parameterTypeMayLoseSecretIdentity, S as computeParameterTaint, Sa as normalizeAwsError, Si as resolveCaptureObservedState, Sn as malformedExportNamesWarning, Sr as forceQuitRecoveryClause, St as isWaitAbandonedError, T as resourcesNamingDeclaredParameter, Ta as isRetryableTransientError, Ti as resolveStateBucketWithDefaultAndSource, Tn as malformedOrphanRecordsWarning, Tr as CUSTOM_RESOURCE_RESPONSE_PREFIX, Tt as deleteIndeterminateGuards, U as coerceWarmThroughput$1, Ui as canonicalizeRegion, Un as repairMalformedResourcePropertiesForReadOnly, Ur as rewriteTemplateAssetReferences, Ut as resolveExplicitPhysicalId, V as renderStatefulReason, Vi as expectedOwnerParam, Vn as repairMalformedOutputsForReadOnly, Vr as createAssetRedirectResolver, Vt as WAFv2WebACLProvider, W as isWarmThroughputDecrease, Wi as derivePartitionAndUrlSuffix, Wn as repairMalformedResourcesForReadOnly, Wr as AssetModeResolver, Wt as assertRegionMatch, X as gray, Xi as getAwsClients, Xn as withRetry, Xr as parseBootstrapMarker, Xt as readConfigString, Y as cyan, Yi as AwsClients, Yn as describeTypeWithThrottleRetry, Yr as isCrossRegionRedirect, Yt as configStringRefusal, Z as green, Zi as resetAwsClients, Zn as DagBuilder, Zr as readBootstrapMarkerBody, Zt as replayWarn, _ as bagHoldsSecretExpression, _a as StackTerminationProtectionError, _i as synthesisStatusMessage, _n as UNREADABLE_RESOURCES_MAP_ROW, _r as S3StateBackend, _t as endCommandInterruptScope, a as DeploymentEventsStore, aa as DynamicReferenceRegionAmbiguousError, ai as dockerSpawnEnvWithSensitive, an as s3BucketDomainName, ar as dynamicReferenceTokens, at as secretBearingStateKeyWarning, b as mergeNoChangeOutputs, bi as resolveApp, bn as hasReadableResources, br as buildForceUnlockCommand, bt as startInterruptWatch, c as replayFailedOperations, ca as LocalStartServiceError, ci as partitionSensitiveEnv, cn as s3BucketWebsiteUrl, cr as isSingleDynamicReferenceToken, ct as IAMRoleProvider, d as updatePartialMessage, da as NestedStackChildDirectDestroyError, di as runDockerStreaming, dn as applyCallerIdentityCredentials, dr as maskSecretsInText, dt as ProviderRegistry, ea as CdkdError, ei as buildDenyExternalAccessPolicy, en as requireConfigString, er as STATE_SOURCED_CROSS_GENERATION_RULES, et as collectDeclaredOutputNames, f as updatePartialReason, fa as PartialFailureError, fi as escapeRegExp, fn as callerEnvCredentials, fr as recordMaskOnlyValue, ft as wouldReturnToSdkProvider, g as computeImplicitDeleteEdges, ga as StackHasActiveImportsError, gi as Synthesizer, gn as STATE_RESOURCES_MALFORMED, gr as LockManager, gt as beginCommandInterruptScope, h as IMPLICIT_DELETE_DEPENDENCIES, ha as ResourceUpdateNotSupportedError, hi as getDockerImageBySourceHash, hn as INTRINSIC_KEYS, hr as scrubResourceRecord, ht as maskerOrIdentity, i as DeploymentEventsReader, ia as DeployCancelledError, ii as describeDockerFailure, in as s3BucketArn, ir as createSecretMasker, it as secretBearing, j as isFinalSnapshotError, ja as describeAwsFailure, ji as CFN_TEMPLATE_URL_LIMIT, jn as malformedResourcesWarning, jr as importableOutputKeys, jt as carriesFetchableDynamicReference, k as ccRoutedFinalSnapshotError, ka as markRedactedCause, ki as ssmResolvedValueType, kn as malformedResourceEntriesWarning, kr as hasReasonlessBaselineRefusal, kt as IntrinsicFunctionResolver, l as replayRollback, li as redactDockerArgvValues, ln as applyRoleArnIfSet, lr as markSameGenerationBag, lt as collectInlinePolicyNamesManagedBySiblings, m as maskingRetryLogger, ma as ResourceTimeoutError, mi as AssetManifestLoader, mn as DiffCalculator, mr as redactSecretsForState, mt as maskDeep, n as DEFAULT_RESOURCE_WARN_AFTER_MS, na as CrossAccountSecretRefusalError, ni as describeDockerCapturedOutput, nn as producerRegionsFromState, nr as TEMPLATE_SOURCED_RULES, nt as exportAliasCollisionScrubWarning, o as planFailedOps, oa as IntrinsicResolutionRefusalError, oi as formatDockerLoginError, on as s3BucketDualStackDomainName, or as errorCauseChain, ot as secretSafeKeyDisplay, p as withResourceDeadline, pa as ProvisioningError, pi as stripControlChars, pn as envCredentialsAreAssumedRole, pr as recoverMaskedOutput, pt as createMaskedRetryLogger, q as formatResourceLine, qn as findActionableSilentDrops, qr as ensureAssetStorage, qt as configBooleanRefusal, r as DeployEngine, ri as describeDockerExecFailure, rn as withSharedDrainBudget, rr as carriesSecretMask, rt as isExportAliasCollision, s as planRollback, sa as LocalInvokeBuildError$1, si as getDockerCmd, sn as s3BucketRegionalDomainName, sr as identityKeyFor, st as getCurrentResourceSecrets, t as DEFAULT_RESOURCE_TIMEOUT_MS, ti as buildDockerImage, tn as classifyReplaySecretRegion, tr as STATE_SOURCED_READBACK_RULES, tt as collectPublishedOutputNames, u as resolveReplacementOldType, ua as MalformedProducerRecordRefusalError, ui as runDockerForeground, un as AWS_CREDENTIAL_ENV_KEYS, ur as maskSecretsInError, ut as clearOnUpdateRemoval, v as isSecretBearingReferenceString, vi as getDefaultStateBucketName, vn as displayLogicalId, vr as rebuildClientForBucketRegion, vt as interruptWatchListenerCount, w as reachableDivergentParameters, wa as isMarkedNonRetryable, wi as resolveStateBucketWithDefault, wn as malformedLocalOutputsWarning, wr as shellQuote, wt as UNSPECIFIED_SKIP_REASON, x as bindingSkippedOutputs, xi as resolveAutoAssetStorage, xn as isReadableResourceEntry, xr as buildLockContentionMessage, xt as CloudControlProvider, y as keptWholeReasonText, ya as SynthesisError, yi as getLegacyStateBucketName, yn as hasReadableOutputs, yr as UNREPRODUCIBLE_LOCK_CLAUSE, yt as isInterruptedWaitError, z as isStatefulRecreateTargetForReplace, zi as producerRecordKey, zn as refuseMalformedResourcesForDestroy, zr as WorkGraph, zt as refStateLookupFromResource } from "./deploy-engine-C1dgx124.js";
2
+ import { C as displayAwsMessage, D as truncateCodePoints, E as isPasteableIdent, S as UNRENDERABLE, T as displaySafe, _ as withSkipPrefix, b as SECRET_REF_MAX_CODE_POINTS, c as PATTERN_B_NAME_OPTIONS, f as explicitNamePropertyFor, h as getCurrentStackName, i as reserveStdoutForPayload, l as PATTERN_B_NAME_PROPERTIES, m as generateResourceNameWithFallback, n as getLogger, o as runStackBuffered, p as generateResourceName, s as getLiveRenderer, u as PATTERN_B_RESOURCE_TYPES, v as withStackName, w as displayIdent, x as STACK_REF_MAX_CODE_POINTS } from "./logger-D-2HeLmd.js";
3
3
  import { n as awsClientDefaults } from "./aws-client-defaults-BoIxyCir.js";
4
- import { t as getCdkdVersion } from "./version-CEKVu0mE.js";
5
- import { a as renderDisableCommand, i as protectedReplacementAdvice, r as UNNAMEABLE_ID_CLAUSE, t as ASGProvider } from "./asg-provider-DPTeR_IT.js";
4
+ import { t as getCdkdVersion } from "./version-Divizw1k.js";
5
+ import { a as renderDisableCommand, i as protectedReplacementAdvice, r as UNNAMEABLE_ID_CLAUSE, t as ASGProvider } from "./asg-provider-Cms9Daqn.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, NotFound, 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";
@@ -18131,7 +18131,11 @@ function resolveDynamoDbDeleteBudgetClock() {
18131
18131
  * the first's spent allowance. In practice `destroy-runner.ts` builds a fresh
18132
18132
  * provider (and therefore a fresh registry) per region, so the collision is not
18133
18133
  * reachable today — but that is an invariant of the CALLER, enforced nowhere,
18134
- * and the fix costs one string concat. `\0` cannot appear in either component.
18134
+ * and the fix costs one string concat. The key is ENCODED rather than
18135
+ * separated, so it does not rest on what can appear in either component --
18136
+ * both come from a state record, which `parseStateBody` reads as an unchecked
18137
+ * cast, so the claim this sentence used to make was about AWS rather than
18138
+ * about what arrives here (go-to-k/cdkd#3496).
18135
18139
  *
18136
18140
  * `region` is the STATE's region (`DeleteContext.expectedRegion`), which is
18137
18141
  * available synchronously at the top of `delete()` — unlike the client's own
@@ -18140,7 +18144,7 @@ function resolveDynamoDbDeleteBudgetClock() {
18140
18144
  * which degrades to the old bare-name key rather than failing.
18141
18145
  */
18142
18146
  function deleteBudgetKey(physicalId, region) {
18143
- return `${region ?? ""}\u0000${physicalId}`;
18147
+ return injectiveKey(region ?? "", physicalId);
18144
18148
  }
18145
18149
  /**
18146
18150
  * The poll cap a wait may actually use: its own constant, or what the shared
@@ -23397,7 +23401,7 @@ var DynamoDBGlobalTableProvider = class {
23397
23401
  * repeated `DescribeTable` calls.
23398
23402
  */
23399
23403
  async getAttribute(physicalId, _resourceType, attributeName) {
23400
- const cacheKey = `${physicalId}::${attributeName}`;
23404
+ const cacheKey = injectiveKey(physicalId, attributeName);
23401
23405
  if (this.attributeCache.has(cacheKey)) return this.attributeCache.get(cacheKey);
23402
23406
  try {
23403
23407
  const resp = await this.dynamoDBClient.send(new DescribeTableCommand({ TableName: physicalId }));
@@ -28575,7 +28579,7 @@ const generations = /* @__PURE__ */ new Map();
28575
28579
  * long-lived process cannot grow the map without bound.
28576
28580
  */
28577
28581
  const MAX_TRACKED_GENERATIONS = 1e5;
28578
- const tokenKey = (scope, logicalId, maxLength, charset) => `${scope}\u0000${process.env["AWS_REGION"] ?? ""}\u0000${getCurrentStackName() ?? ""}\u0000${logicalId}\u0000${maxLength}\u0000${charset}`;
28582
+ const tokenKey = (scope, logicalId, maxLength, charset) => injectiveKey(scope, process.env["AWS_REGION"] ?? "", getCurrentStackName() ?? "", logicalId, maxLength, charset);
28579
28583
  const derive = (key, generation, maxLength, charset) => {
28580
28584
  const digest = createHash("sha256").update(`${PROCESS_NONCE}\u0000${key}\u0000${generation}`).digest("hex");
28581
28585
  return `cdkd${charset === "alphanumeric" ? "" : "-"}${digest}`.slice(0, maxLength);
@@ -42392,7 +42396,7 @@ var RDSDBProxyProvider = class {
42392
42396
  throw new ProvisioningError(`Timed out waiting for DBProxy ${physicalId} to fully delete`, resourceType, logicalId, physicalId);
42393
42397
  }
42394
42398
  async getAttribute(physicalId, _resourceType, attributeName) {
42395
- const cacheKey = `${physicalId}:${attributeName}`;
42399
+ const cacheKey = injectiveKey(physicalId, attributeName);
42396
42400
  const cached = this.attributeCache.get(cacheKey);
42397
42401
  if (cached !== void 0) return cached;
42398
42402
  if (attributeName !== "Endpoint" && attributeName !== "DBProxyArn" && attributeName !== "VpcId") {
@@ -42467,7 +42471,7 @@ var RDSDBProxyProvider = class {
42467
42471
  const newMap = this.toTagMap(newTags);
42468
42472
  if (oldMap.size === newMap.size && [...oldMap.keys()].every((k) => newMap.has(k)) && [...oldMap.entries()].every(([k, v]) => newMap.get(k) === v)) return;
42469
42473
  const client = this.getClient();
42470
- const arnCacheKey = `${physicalId}:DBProxyArn`;
42474
+ const arnCacheKey = injectiveKey(physicalId, "DBProxyArn");
42471
42475
  let arn = this.attributeCache.get(arnCacheKey);
42472
42476
  if (!arn) try {
42473
42477
  arn = (await client.send(new DescribeDBProxiesCommand({ DBProxyName: physicalId }))).DBProxies?.[0]?.DBProxyArn;
@@ -42534,7 +42538,8 @@ var RDSDBProxyProvider = class {
42534
42538
  }
42535
42539
  }
42536
42540
  invalidateAttributeCache(physicalId) {
42537
- for (const key of this.attributeCache.keys()) if (key.startsWith(`${physicalId}:`)) this.attributeCache.delete(key);
42541
+ const encodedPrefix = injectiveKeyPrefix(physicalId);
42542
+ for (const key of this.attributeCache.keys()) if (key.startsWith(encodedPrefix)) this.attributeCache.delete(key);
42538
42543
  }
42539
42544
  wrapError(error, op, resourceType, logicalId, physicalId) {
42540
42545
  const message = error instanceof Error ? error.message : String(error);
@@ -42717,7 +42722,7 @@ var RDSDBProxyEndpointProvider = class {
42717
42722
  throw new ProvisioningError(`Timed out waiting for DBProxyEndpoint ${physicalId} to fully delete`, resourceType, logicalId, physicalId);
42718
42723
  }
42719
42724
  async getAttribute(physicalId, _resourceType, attributeName) {
42720
- const cacheKey = `${physicalId}:${attributeName}`;
42725
+ const cacheKey = injectiveKey(physicalId, attributeName);
42721
42726
  const cached = this.attributeCache.get(cacheKey);
42722
42727
  if (cached !== void 0) return cached;
42723
42728
  if (attributeName !== "Endpoint" && attributeName !== "DBProxyEndpointArn" && attributeName !== "IsDefault" && attributeName !== "VpcId") {
@@ -42778,7 +42783,7 @@ var RDSDBProxyEndpointProvider = class {
42778
42783
  const newMap = this.toTagMap(newTags);
42779
42784
  if (oldMap.size === newMap.size && [...oldMap.keys()].every((k) => newMap.has(k)) && [...oldMap.entries()].every(([k, v]) => newMap.get(k) === v)) return;
42780
42785
  const client = this.getClient();
42781
- const arnCacheKey = `${physicalId}:DBProxyEndpointArn`;
42786
+ const arnCacheKey = injectiveKey(physicalId, "DBProxyEndpointArn");
42782
42787
  let arn = this.attributeCache.get(arnCacheKey);
42783
42788
  if (!arn) try {
42784
42789
  arn = (await client.send(new DescribeDBProxyEndpointsCommand({ DBProxyEndpointName: physicalId }))).DBProxyEndpoints?.[0]?.DBProxyEndpointArn;
@@ -42846,7 +42851,8 @@ var RDSDBProxyEndpointProvider = class {
42846
42851
  }
42847
42852
  }
42848
42853
  invalidateAttributeCache(physicalId) {
42849
- for (const key of this.attributeCache.keys()) if (key.startsWith(`${physicalId}:`)) this.attributeCache.delete(key);
42854
+ const encodedPrefix = injectiveKeyPrefix(physicalId);
42855
+ for (const key of this.attributeCache.keys()) if (key.startsWith(encodedPrefix)) this.attributeCache.delete(key);
42850
42856
  }
42851
42857
  wrapError(error, op, resourceType, logicalId, physicalId) {
42852
42858
  const message = error instanceof Error ? error.message : String(error);
@@ -70023,6 +70029,12 @@ function malformedRecordsAuditedError(stackNames, outputStackNames) {
70023
70029
  if (outputStackNames.length > 0) parts.push(`${outputStackNames.length} stack(s) were audited with an EMPTY outputs bag because their state record has no readable 'outputs' map: ${safeNames(outputStackNames)}. The report above describes their resources only — nothing is known about the values their outputs hold, and those values are what the exports index republishes to consumer stacks, so this run cannot certify them clean.`);
70024
70030
  return new ScrubRefusalError(`${parts.join(" ")} See the warnings above for the record to inspect.`, STATE_RESOURCES_MALFORMED);
70025
70031
  }
70032
+ /**
70033
+ * Exported for its unit fence alone — no second production caller. The
70034
+ * collision it must not have (go-to-k/cdkd#3323) is only observable from
70035
+ * whether two queries SHARE a promise, which driving a whole `scrubStack`
70036
+ * fixture cannot show without asserting on a much larger outcome.
70037
+ */
70026
70038
  function memoizeCrossStackStateReads(backend) {
70027
70039
  const view = Object.create(backend);
70028
70040
  let listed;
@@ -70032,7 +70044,7 @@ function memoizeCrossStackStateReads(backend) {
70032
70044
  return listed;
70033
70045
  };
70034
70046
  view.getState = (stackName, stateRegion) => {
70035
- const key = `${stackName}\u0000${stateRegion}`;
70047
+ const key = producerRecordKey(stackName, stateRegion);
70036
70048
  let pending = states.get(key);
70037
70049
  if (!pending) {
70038
70050
  pending = backend.getState(stackName, stateRegion);
@@ -70383,7 +70395,7 @@ function storedValueCarriesNoPlaintext(stored) {
70383
70395
  * selection.
70384
70396
  */
70385
70397
  function producerPublishesSecretExpression(templates, exportOwners, producerStack, key) {
70386
- const seen = /* @__PURE__ */ new Set([`${producerStack}\u0000${key}`]);
70398
+ const seen = /* @__PURE__ */ new Set([producerCoordinateKey(producerStack, key)]);
70387
70399
  const queue = [{
70388
70400
  stack: producerStack,
70389
70401
  key,
@@ -70424,7 +70436,7 @@ function producerPublishesSecretExpression(templates, exportOwners, producerStac
70424
70436
  };
70425
70437
  }
70426
70438
  for (const hop of collectReExportHops(subject, templates, exportOwners)) {
70427
- const id = `${hop.stack}\u0000${hop.key}`;
70439
+ const id = producerCoordinateKey(hop.stack, hop.key);
70428
70440
  if (seen.has(id)) continue;
70429
70441
  seen.add(id);
70430
70442
  queue.push({
@@ -71128,7 +71140,7 @@ function makeCrossStackPrePass(deps) {
71128
71140
  */
71129
71141
  const warnedDamagedProducers = /* @__PURE__ */ new Set();
71130
71142
  const secretExpressionVerdict = (stack, key) => {
71131
- const id = `${stack}\u0000${key}`;
71143
+ const id = producerCoordinateKey(stack, key);
71132
71144
  let verdict = verdicts.get(id);
71133
71145
  if (!verdict) {
71134
71146
  verdict = producerPublishesSecretExpression(producerTemplates, exportOwners, stack, key);
@@ -76678,6 +76690,14 @@ function createStateMigrateCommand() {
76678
76690
  //#endregion
76679
76691
  //#region src/cli/commands/state-list-tree.ts
76680
76692
  /**
76693
+ * Helpers for `cdkd state list --tree`: reconstruct the parent → child stack
76694
+ * tree from a flat list of state records and render it.
76695
+ *
76696
+ * The actual S3 reads happen in {@link import('./state.js')} — this module
76697
+ * stays pure / synchronous so the tree-building logic can be unit-tested
76698
+ * without mocking the state backend.
76699
+ */
76700
+ /**
76681
76701
  * How deep a node may sit below its root, counting the root as 0.
76682
76702
  *
76683
76703
  * A node that would sit deeper is made a root instead (see
@@ -76742,7 +76762,7 @@ const MAX_STACK_TREE_DEPTH = 100;
76742
76762
  * runs.
76743
76763
  */
76744
76764
  function buildStackTree(entries) {
76745
- const refKey = (stackName, region) => `${stackName}\0${region ?? ""}`;
76765
+ const refKey = (stackName, region) => producerRecordKey(stackName, region ?? "");
76746
76766
  const byKey = /* @__PURE__ */ new Map();
76747
76767
  for (const entry of entries) byKey.set(refKey(entry.stackName, entry.region), {
76748
76768
  ...entry,
@@ -81686,7 +81706,7 @@ function renderStateBlock(state, lockInfo, withLegend) {
81686
81706
  * `--show-nested` render.
81687
81707
  */
81688
81708
  async function loadLocksForTree(tree, lockManager, rootLock) {
81689
- const nodeKey = (node) => `${node.stackName}\0${node.region}`;
81709
+ const nodeKey = (node) => producerRecordKey(node.stackName, node.region);
81690
81710
  const rootKey = nodeKey(tree);
81691
81711
  const flat = [];
81692
81712
  const collect = (node) => {
@@ -82728,7 +82748,7 @@ async function findJournalCandidates(backend, prefix) {
82728
82748
  if (segments.length !== 2) continue;
82729
82749
  const [stackName, region] = segments;
82730
82750
  if (!stackName || !region) continue;
82731
- const dedupe = `${stackName}\0${region}`;
82751
+ const dedupe = producerRecordKey(stackName, region);
82732
82752
  if (seen.has(dedupe)) continue;
82733
82753
  seen.add(dedupe);
82734
82754
  refs.push({
@@ -84989,7 +85009,7 @@ var AttributeFetcher = class {
84989
85009
  * success path returns `{ ok: true, value, fromCache: true }`.
84990
85010
  */
84991
85011
  async getAtt(orphanLogicalId, attribute) {
84992
- const cacheKey = `${orphanLogicalId}\0${attribute}`;
85012
+ const cacheKey = injectiveKey(orphanLogicalId, attribute);
84993
85013
  if (this.cache.has(cacheKey)) return {
84994
85014
  ok: true,
84995
85015
  value: this.cache.get(cacheKey)
@@ -85047,7 +85067,7 @@ var AttributeFetcher = class {
85047
85067
  this.logger.warn(`--force: live fetch failed for '${orphanLogicalId}.${attribute}' (${reason}); falling back to cached value from state.attributes.`);
85048
85068
  if (carriesDynamicReference(cached)) this.logger.warn(`--force: the cached value for '${orphanLogicalId}.${attribute}' is an UNRESOLVED dynamic reference (a nested stack's redacted output, issue #2055). It is being written into the referring resource's state VERBATIM — cdkd cannot re-resolve it from here. Re-run without --force once the live attribute is readable, or fix the referring property by hand.`);
85049
85069
  if (carriesSecretMask(cached)) this.logger.warn(`--force: the cached value for '${orphanLogicalId}.${attribute}' is the REDACTION MASK ('${"***"}'), not the attribute's value — cdkd redacted it into state and cannot recover it. It is being written into the referring resource's state VERBATIM, so that row now records a value the live resource does not have: the next 'cdkd diff' / 'cdkd deploy' reports a spurious change there (a REPLACEMENT if the property is create-only), 'cdkd rollback' refuses the record as a replay baseline, and 'cdkd export' blocks it. Re-run without --force once the live attribute is readable, re-import the record that holds the mask, or fix the referring property by hand.`);
85050
- const cacheKey = `${orphanLogicalId}\0${attribute}`;
85070
+ const cacheKey = injectiveKey(orphanLogicalId, attribute);
85051
85071
  this.cache.set(cacheKey, cached);
85052
85072
  return {
85053
85073
  ok: true,
@@ -87649,12 +87669,14 @@ async function loadStateForStack(stackName, synthRegion, opts) {
87649
87669
  /**
87650
87670
  * Issue #1836: EXACT match first, case-insensitive second.
87651
87671
  *
87652
- * `S3StateBackend.listStacks` dedupes on the EXACT `{stack}\0{region}` pair,
87653
- * so `cdkd/MyStack/US-EAST-1/state.json` and
87654
- * `cdkd/MyStack/us-east-1/state.json` are two DISTINCT refs — and
87655
- * ListObjectsV2 returns them in ASCII order, i.e. the upper-cased one FIRST.
87656
- * A fold-only `find` therefore hands `--stack-region us-east-1` the OTHER
87657
- * record, silently reading state the user did not name; the pre-fold `===`
87672
+ * `S3StateBackend.listStacks` dedupes on the EXACT `(stack, region)` PAIR
87673
+ * — through `producerRecordKey` since go-to-k/cdkd#3323, by a separator
87674
+ * before that; what this note needs is only that the match is exact — so
87675
+ * `cdkd/MyStack/US-EAST-1/state.json` and
87676
+ * `cdkd/MyStack/us-east-1/state.json` are two DISTINCT refs, and
87677
+ * ListObjectsV2 returns them in ASCII order, i.e. the upper-cased one
87678
+ * FIRST. A fold-only `find` therefore hands `--stack-region us-east-1` the
87679
+ * OTHER record, silently reading state the user did not name; the pre-fold `===`
87658
87680
  * got that case right. So the fold is the RECOVERY for a case mismatch, never
87659
87681
  * an override of a spelling that exists verbatim.
87660
87682
  *
@@ -97212,4 +97234,4 @@ function buildProgram() {
97212
97234
 
97213
97235
  //#endregion
97214
97236
  export { buildProgram };
97215
- //# sourceMappingURL=program-BmtaBtO_.js.map
97237
+ //# sourceMappingURL=program-HtHlEaZm.js.map