@go-to-k/cdkd 0.301.5 → 0.301.6

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.
@@ -2,7 +2,7 @@ import { r as getAwsClients, s as __exportAll } from "./aws-clients-B_CEQGE1.js"
2
2
  import { A as UNRENDERABLE, B as safeMsg, C as looksLikeCdkdGeneratedName, D as SAFE_MSG_ALTERED_CHAR, E as withoutGeneratedFallbackName, F as displaySafe, H as terminalSafe, I as displayStackName, L as isPasteableIdent, N as displayAwsMessage, O as SECRET_REF_MAX_CODE_POINTS, P as displayIdent, S as getCurrentStackName, T as withStackName, U as truncateCodePoints, a as getLogger, b as generateResourceNameWithFallback, d as installLogLineMaskerSource, f as getLiveRenderer, g as applyDefaultNameForFallback, j as asIsMessage, k as STACK_REF_MAX_CODE_POINTS, o as isStdoutReservedForPayload, r as safeStringify$1, t as describeAwsFailure, u as currentLogLineMasker, v as explicitNamePropertyFor, w as withSkipPrefix, x as getCurrentSkipPrefix, y as generateResourceName, z as plainIdentOr } from "./aws-failure-text-BEQfs6za.js";
3
3
  import { $ as protectedReplacementAdvice, $t as ambientCredentialConfig, A as isQuotableImportValue, An as SHELL_ACTIVE, At as isAuxiliaryMarkOf, B as isTerminalDeleteFailure, Bn as shellBoundedDisplay, Bt as formatLockOperation, Cn as StateError, Ct as RETRY_AUXILIARY_OWNER, Dn as normalizeAwsError, Dt as createdResourceIdentityBeforeFailure, E as assertRegionMatch, Et as createdBeforeFailure, F as resolveExplicitPhysicalId, Fn as isInertUnquoted, Ft as UNREPRODUCIBLE_LOCK_CLAUSE, G as runDeleteAttempt, Gn as isUpdateUnsupportedError, Gt as DEFAULT_STATE_PREFIX, H as observeThenDisableProtection, Hn as withheldTargetClause, Ht as recoveryCommandFlags, In as pasteableCommand, It as buildForceUnlockCommand, J as DELETION_PROTECTION_DOC_POINTER, Jn as isNameCooldownError, Kn as hasReplayMayCollide, Kt as injectiveKey, L as ProtectionFlipRegistry, Ln as physicalIdShownBesideCommand, M as quotedRemedyLogicalId, Mn as UNSHOWABLE_VALUE, Mt as markCreatedBeforeFailure, N as refusalTypeShown, Nn as commandHole, Ot as hasCreatedBeforeFailure, Pt as replayMadeAnotherResource, Q as pasteableAwsCommand, Qn as markReplayMayCollide, Qt as ambientClientDefaults, R as compensateProtectionFlip, Rn as plainOrDescribed, St as withDerivedNameMasks, T as RESOURCE_NOT_FOUND, U as protectionFlipKey, Ut as sanitizeRecoveryValue, Vn as shellQuote, Vt as formatLockOwner, Wt as CUSTOM_RESOURCE_RESPONSE_PREFIX, Xn as isReplayedNameCollisionFrom, Yn as isRecreateRetryableError, Yt as producerRecordKey, Zt as withPasteableAwsProfile, _t as createMaskedLogSinks, ar as isRetryableTransientError, at as startInterruptWatch, bn as ResourceUpdateNotSupportedError, bt as maskDeep, ct as canonicalizeRoute53QueryName, d as prepareRemovalForUpdate, dr as markNonRetryable, en as clientDefaultsFor, er as formatRetryClassificationSignals, f as removalWarning, fr as markRedactedCause, ft as logicalIdShown, gt as stateOrphanRecordRemedy, hn as MalformedProducerRecordRefusalError, ht as segmentAfterAnchor, i as holdsSecretDerivedEntry, in as CdkdError, ir as isIamPropagationError, it as isInterruptedWaitError, j as normalizeAwsTagsToCfn, jn as SHELL_ACTIVE_WHY, jt as markAuxiliaryFailure, kt as isAuxiliaryFailure, l as withUnchangedSecretPrincipalLists, ln as DynamicReferenceRegionAmbiguousError, lr as isMarkedNonRetryable, m as withoutInjectedRemovals, mn as MacroExpansionError, mt as resourceTypeShown, nn as AccountIdUnavailableError, nr as isAmbiguousOutcomeError, on as CrossAccountSecretRefusalError, or as isTransientServerError, ot as ElapsedBudgetRegistry, pn as LockError, pr as wrapMaskedAwsError, qn as isNameCollisionErrorFrom, rn as AssetError, sn as DependencyError, sr as retryClassificationText, st as monotonicNowMs, tn as credentialFingerprint, tr as isAmbiguousCcHandlerErrorCode, un as IntrinsicResolutionRefusalError, ur as isThrottlingError, ut as compositeIdSeparatorRefusal, vn as ProvisioningError, vt as createMaskedRetryLogger, w as withoutServerErrorRetries, wn as SynthesisError, wt as carryCreatedBeforeFailure, xt as maskerOrIdentity, yn as ResourceTimeoutError, yt as isSecretDerivedValue, z as deleteWithProtectionCompensation, zn as quotedOrDescribed, zt as formatLockExpiry } from "./iam-policy-targets-BkeM7IXi.js";
4
4
  import { a as setAssumedRoleCredentials, i as getPreAssumeEnvCredentials, n as awsClientDefaults, o as setPreAssumeEnvCredentials, r as getAssumedRoleCredentials, s as ambientRegion, t as SECOND_ROLE_PUBLISH_REFUSAL } from "./aws-client-defaults-DBXBcg0J.js";
5
- import { t as getCdkdVersion } from "./version-2jeKJQlt.js";
5
+ import { t as getCdkdVersion } from "./version-CnjZ9J4l.js";
6
6
  import { createHash, randomUUID } from "node:crypto";
7
7
  import { AsyncLocalStorage } from "node:async_hooks";
8
8
  import { CreateBucketCommand, DeleteObjectCommand, DeleteObjectsCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketReplicationCommand, GetObjectCommand, HeadBucketCommand, HeadObjectCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchKey, PutBucketEncryptionCommand, PutBucketLifecycleConfigurationCommand, PutBucketPolicyCommand, PutObjectCommand, PutPublicAccessBlockCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
@@ -10409,6 +10409,34 @@ function wildcardOverlapsResolvedPlaintext(send, wildcards, secrets) {
10409
10409
  return false;
10410
10410
  }
10411
10411
 
10412
+ //#endregion
10413
+ //#region src/deployment/secret-redaction/context.ts
10414
+ const RULES_BY_PROVENANCE = {
10415
+ "template-derived": TEMPLATE_DERIVED_RULES,
10416
+ "template-sourced": TEMPLATE_SOURCED_RULES,
10417
+ "state-readback": STATE_SOURCED_READBACK_RULES,
10418
+ "state-baseline": STATE_SOURCED_BASELINE_RULES,
10419
+ "state-cross-generation": STATE_SOURCED_CROSS_GENERATION_RULES,
10420
+ "state-derived": STATE_DERIVED_RULES
10421
+ };
10422
+ function redactForState(bag, context) {
10423
+ if (context.provenance === "value-scan") return redactSecretsForState(bag, context.secrets);
10424
+ const rules = RULES_BY_PROVENANCE[context.provenance];
10425
+ if (context.provenance !== "template-derived" || context.generation !== "same-generation" || !isPlainBag(bag)) return redactSecretsForState(bag, context.secrets, context.source, rules);
10426
+ const marked = markSameGenerationBag(shallowCopy(bag));
10427
+ const redacted = redactSecretsForState(marked, context.secrets, context.source, rules);
10428
+ return redacted === marked ? shallowCopy(marked) : redacted;
10429
+ }
10430
+ function isPlainBag(bag) {
10431
+ if (Array.isArray(bag)) return true;
10432
+ if (bag === null || typeof bag !== "object") return false;
10433
+ const proto = Object.getPrototypeOf(bag);
10434
+ return proto === Object.prototype || proto === null;
10435
+ }
10436
+ function shallowCopy(bag) {
10437
+ return Array.isArray(bag) ? [...bag] : { ...bag };
10438
+ }
10439
+
10412
10440
  //#endregion
10413
10441
  //#region src/deployment/secret-redaction/noecho-leaves.ts
10414
10442
  const SUB_VARIABLE$2 = /\$\{([^}!][^}]*)\}/g;
@@ -20367,7 +20395,7 @@ function maskSecretsRaw(resolver, text, context) {
20367
20395
  return needled !== text ? "***" : registered;
20368
20396
  }
20369
20397
  function abandonedUnit(resolver, unit, subject, error, context, rawInput, preRedact) {
20370
- const raw = error instanceof Error ? error.message : String(error);
20398
+ const raw = describeAwsFailure(error).detail;
20371
20399
  return {
20372
20400
  unit,
20373
20401
  subject: displayMasked(resolver, subject, context),
@@ -20680,7 +20708,7 @@ var CfnFallbackCache = class {
20680
20708
  };
20681
20709
  return;
20682
20710
  } catch (error) {
20683
- this.deps.logger().warn(`Fn::ImportValue: CloudFormation ListExports fallback failed for export ${quotedRender(displayMasked(this.deps.resolver, exportName, context), "'")} (region ${this.deps.resolverRegion}): ${displayMasked(this.deps.resolver, error instanceof Error ? error.message : String(error), context)}. Grant cloudformation:ListExports to resolve exports from CloudFormation-managed stacks, or pass --no-cfn-fallback to disable the fallback.`);
20711
+ this.deps.logger().warn(`Fn::ImportValue: CloudFormation ListExports fallback failed for export ${quotedRender(displayMasked(this.deps.resolver, exportName, context), "'")} (region ${this.deps.resolverRegion}): ${displayMasked(this.deps.resolver, describeAwsFailure(error).detail, context)}. Grant cloudformation:ListExports to resolve exports from CloudFormation-managed stacks, or pass --no-cfn-fallback to disable the fallback.`);
20684
20712
  return;
20685
20713
  }
20686
20714
  }
@@ -20708,7 +20736,7 @@ var CfnFallbackCache = class {
20708
20736
  try {
20709
20737
  return await fetch;
20710
20738
  } catch (error) {
20711
- const message = error instanceof Error ? error.message : String(error);
20739
+ const message = describeAwsFailure(error).detail;
20712
20740
  const resolver = this.deps.resolver;
20713
20741
  const cfnNameMask = positionalNameMask(resolver, [[stackName, displayMasked(resolver, stackName, context)], [region, displayMasked(resolver, loggedRegionText, context)]]);
20714
20742
  this.deps.logger().warn(`Fn::GetStackOutput: CloudFormation DescribeStacks fallback failed for stack ${displayMaskedIdent(resolver, stackName, context, STACK_REF_MAX_CODE_POINTS)} (${displayMaskedIdent(resolver, loggedRegionText, context)}): ${displayAwsMessage(displayMasked(resolver, cfnNameMask ? cfnNameMask(message) : message, context))}. Grant cloudformation:DescribeStacks to resolve outputs from CloudFormation-managed stacks, or pass --no-cfn-fallback to disable the fallback.`);
@@ -21266,7 +21294,7 @@ async function readsPinnedVersion(token, pin, { resolver, context }) {
21266
21294
  return !served.includes("{{resolve:") && served.length < 4 ? "short" : "read";
21267
21295
  } catch (err) {
21268
21296
  if (isDeliberateResolutionRefusal(err)) throw err;
21269
- resolver.logger.debug(safeMsg`Pinned read of ${displayMasked(resolver, token, context)} failed: ${displayMasked(resolver, err instanceof Error ? err.message : String(err), context)}`);
21297
+ resolver.logger.debug(safeMsg`Pinned read of ${displayMasked(resolver, token, context)} failed: ${displayMasked(resolver, describeAwsFailure(err).detail, context)}`);
21270
21298
  if (!isThrottlingError(err)) {
21271
21299
  if (failed === void 0) {
21272
21300
  failed = /* @__PURE__ */ new Set();
@@ -21386,7 +21414,7 @@ async function resolveImportValue(resolver, importValueArg, context) {
21386
21414
  try {
21387
21415
  entry = await context.exportIndex.lookup(exportName);
21388
21416
  } catch (err) {
21389
- resolver.logger.warn(`Exports index lookup failed for ${quotedRender(loggedExportName, "'", "an export whose name is not a plain identifier")}: ${displayMasked(resolver, err instanceof Error ? err.message : String(err), context)}; falling back to state.json scan`);
21417
+ resolver.logger.warn(`Exports index lookup failed for ${quotedRender(loggedExportName, "'", "an export whose name is not a plain identifier")}: ${displayMasked(resolver, describeAwsFailure(err).detail, context)}; falling back to state.json scan`);
21390
21418
  entry = void 0;
21391
21419
  }
21392
21420
  if (entry && (!context.stackName || entry.producerStack !== context.stackName)) {
@@ -21428,7 +21456,7 @@ async function resolveImportValue(resolver, importValueArg, context) {
21428
21456
  producerStack: refStack,
21429
21457
  producerRegion: lookupRegion
21430
21458
  }).catch((err) => {
21431
- resolver.logger.debug(`Failed to patch exports index for ${quotedRender(displayMasked(resolver, exportName, context), "'", "an export whose name is not a plain identifier")}: ${displayMasked(resolver, err instanceof Error ? err.message : String(err), context)}`);
21459
+ resolver.logger.debug(`Failed to patch exports index for ${quotedRender(displayMasked(resolver, exportName, context), "'", "an export whose name is not a plain identifier")}: ${displayMasked(resolver, describeAwsFailure(err).detail, context)}`);
21432
21460
  });
21433
21461
  recordImport(resolver, context, exportName, refStack, lookupRegion);
21434
21462
  found = {
@@ -21440,7 +21468,7 @@ async function resolveImportValue(resolver, importValueArg, context) {
21440
21468
  break;
21441
21469
  }
21442
21470
  } catch (error) {
21443
- resolver.logger.warn(`Failed to read state for stack ${displayMasked(resolver, refStack, context)}: ${displayMasked(resolver, error instanceof Error ? error.message : String(error), context)}`);
21471
+ resolver.logger.warn(`Failed to read state for stack ${displayMasked(resolver, refStack, context)}: ${displayMasked(resolver, describeAwsFailure(error).detail, context)}`);
21444
21472
  continue;
21445
21473
  }
21446
21474
  }
@@ -21655,7 +21683,7 @@ function describeInnermostAwsError(error) {
21655
21683
  if (cause === null || typeof cause !== "object") break;
21656
21684
  innermost = cause;
21657
21685
  }
21658
- if (!(innermost instanceof Error)) return displayAwsMessage(String(innermost));
21686
+ if (!(innermost instanceof Error)) return displayAwsMessage(safeStringify$1(innermost));
21659
21687
  const code = innermost.Code;
21660
21688
  const name = typeof code === "string" && code !== "" ? code : innermost.name;
21661
21689
  const message = displayAwsMessage(innermost.message);
@@ -22016,7 +22044,7 @@ async function resolveDynamicReferencesWithLogTwin(resolver, value, logTwin, con
22016
22044
  if (context?.abandonedResolutions !== void 0) {
22017
22045
  const bag = context.abandonedResolutions;
22018
22046
  for (const { placeholder, because } of takeKeptPlaceholdersInsideReferences(bag, value)) {
22019
- const reason = because instanceof Error ? because.message : String(because);
22047
+ const reason = describeAwsFailure(because).detail;
22020
22048
  bag.push(abandonedUnit(resolver, "placeholder", placeholder, new Error(`Fn::Sub kept the placeholder ${placeholder} (${reason}) inside a {{resolve:...}} reference, so that reference was never resolved`, { cause: because }), context, value));
22021
22049
  }
22022
22050
  }
@@ -22338,7 +22366,10 @@ function isMaskedOwnIdCopy(record, key, recorded, healed, producerSecrets) {
22338
22366
  if (!healed.endsWith(physicalId)) return false;
22339
22367
  if (!OWN_ID_ARN_PREFIX.test(healed.slice(0, healed.length - physicalId.length))) return false;
22340
22368
  if (producerSecrets === void 0 || !hasMaskableValues(producerSecrets)) return false;
22341
- return withPhysicalNameCopies(producerSecrets, [physicalId], () => redactSecretsForState(healed, producerSecrets)) === healed;
22369
+ return withPhysicalNameCopies(producerSecrets, [physicalId], () => redactForState(healed, {
22370
+ provenance: "value-scan",
22371
+ secrets: producerSecrets
22372
+ })) === healed;
22342
22373
  }
22343
22374
  function healMaskedOwnIdAttribute(resolver, logicalId, resource, attributeName, stored, context) {
22344
22375
  if (stored !== "***" || context.attributeHealer === void 0) return void 0;
@@ -22371,7 +22402,7 @@ function describeFailureObserved(resolver, read, err, context) {
22371
22402
  const name = displaySafe(err instanceof Error && err.name ? err.name : "Error", { asciiOnly: true }).slice(0, 64).trim() || "Error";
22372
22403
  const status = err?.$metadata?.httpStatusCode;
22373
22404
  const errorClass = typeof status === "number" && Number.isInteger(status) ? `${name}, HTTP ${status}` : name;
22374
- resolver.logger.debug(`${read} failed (${errorClass}): ${displayMasked(resolver, err instanceof Error ? err.message : String(err), context)}`);
22405
+ resolver.logger.debug(`${read} failed (${errorClass}): ${displayMasked(resolver, describeAwsFailure(err).detail, context)}`);
22375
22406
  return `${read} failed (${errorClass}); re-run with --verbose for the AWS error text`;
22376
22407
  }
22377
22408
  function guardedPhysicalIdFallback(resolver, logicalId, attributeName, resourceType, physicalId, context) {
@@ -22461,7 +22492,7 @@ async function constructAttributeForCoreTypes(resolver, resource, attributeName,
22461
22492
  resolver.logger.warn(`VPC ${loggedId} IPv6 CIDR did not reach 'associated' state after ${maxAttempts} attempts`);
22462
22493
  return [];
22463
22494
  } catch (error) {
22464
- resolver.logger.warn(`Failed to fetch VPC Ipv6CidrBlocks for ${displayMasked(resolver, physicalId, context)}: ${displayMasked(resolver, error instanceof Error ? error.message : String(error), context)}`);
22495
+ resolver.logger.warn(`Failed to fetch VPC Ipv6CidrBlocks for ${displayMasked(resolver, physicalId, context)}: ${displayMasked(resolver, describeAwsFailure(error).detail, context)}`);
22465
22496
  return [];
22466
22497
  }
22467
22498
  case "DefaultSecurityGroup": {
@@ -22844,7 +22875,7 @@ async function constructAttributeForComputeTypes(resolver, attributeName, contex
22844
22875
  const value = attributeName === "LatestVersionNumber" ? lt?.LatestVersionNumber : lt?.DefaultVersionNumber;
22845
22876
  if (value !== void 0 && value !== null) return String(value);
22846
22877
  } catch (err) {
22847
- resolver.logger.warn(`DescribeLaunchTemplates(${displayMasked(resolver, physicalId, context)}) failed for ${displayMasked(resolver, attributeName, context)}: ${displayMasked(resolver, err instanceof Error ? err.message : String(err), context)}`);
22878
+ resolver.logger.warn(`DescribeLaunchTemplates(${displayMasked(resolver, physicalId, context)}) failed for ${displayMasked(resolver, attributeName, context)}: ${displayMasked(resolver, describeAwsFailure(err).detail, context)}`);
22848
22879
  }
22849
22880
  return attributeName === "LatestVersionNumber" ? "$Latest" : "$Default";
22850
22881
  }
@@ -23062,7 +23093,7 @@ async function resolveGetAZs(resolver, value, context) {
23062
23093
  } catch (error) {
23063
23094
  const loggedRegion = displayMasked(resolver, loggedRegionText ?? region, context);
23064
23095
  const masks = namedRequestMasks(resolver, [[region, loggedRegion]], context);
23065
- throw new Error(`Fn::GetAZs: failed to describe availability zones for region ${quotedRender(loggedRegion, "'")}: ${masks.text(error instanceof Error ? error.message : String(error))}`);
23096
+ throw new Error(`Fn::GetAZs: failed to describe availability zones for region ${quotedRender(loggedRegion, "'")}: ${masks.text(describeAwsFailure(error).detail)}`);
23066
23097
  }
23067
23098
  if (azNames.length === 0) throw markNonRetryable(/* @__PURE__ */ new Error(`Fn::GetAZs: no availability zones returned for region ${quotedRender(displayMasked(resolver, loggedRegionText ?? region, context), "'")}. Either the region is not enabled on this account (opt-in regions must be enabled before use), or the request was answered by a different region's endpoint.`));
23068
23099
  cachedAvailabilityZones.set(azCacheKey, azNames);
@@ -24098,7 +24129,7 @@ async function evaluateConditions(resolver, context) {
24098
24129
  for (const name of Object.keys(templateConditions)) try {
24099
24130
  await withSharedDrainBudget(() => evaluateByName(name));
24100
24131
  } catch (error) {
24101
- resolver.logger.warn(displayMasked(resolver, `Failed to evaluate condition ${name}: ${error instanceof Error ? error.message : String(error)}, assuming false`, maskingContext));
24132
+ resolver.logger.warn(displayMasked(resolver, `Failed to evaluate condition ${name}: ${describeAwsFailure(error).detail}, assuming false`, maskingContext));
24102
24133
  conditions[name] = false;
24103
24134
  assumed.add(name);
24104
24135
  inProgress.delete(name);
@@ -24118,7 +24149,7 @@ async function resolveKeyUnit(resolver, key, val, context, abandoned) {
24118
24149
  //#endregion
24119
24150
  //#region src/deployment/intrinsic-resolver/sub.ts
24120
24151
  function subPlaceholderWarning(_resolver, varName, error) {
24121
- return `Fn::Sub variable ${varName} could not be resolved (${error instanceof Error ? error.message : String(error)}), keeping placeholder`;
24152
+ return `Fn::Sub variable ${varName} could not be resolved (${describeAwsFailure(error).detail}), keeping placeholder`;
24122
24153
  }
24123
24154
  function subPlaceholderNamesADeclaredTemplateEntity(resolver, varName, context) {
24124
24155
  const firstDot = varName.indexOf(".");
@@ -26967,7 +26998,7 @@ var CloudControlProvider = class {
26967
26998
  const indeterminateGuard = await this.confirmDeleteTargetIdentity(logicalId, resourceType, physicalId, context);
26968
26999
  if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
26969
27000
  this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
26970
- const { ASGProvider } = await import("./asg-provider-DHB498Xq.js");
27001
+ const { ASGProvider } = await import("./asg-provider-GNiE6dR1.js");
26971
27002
  const delegateRegion = ambientRegion();
26972
27003
  let asgProvider = this.asgDeleteDelegates.get(delegateRegion);
26973
27004
  if (asgProvider === void 0) {
@@ -27073,7 +27104,7 @@ var CloudControlProvider = class {
27073
27104
  const family = SDK_DELETE_FAMILIES.get(resourceType);
27074
27105
  const cached = this.sdkDeleteDelegates.get(family);
27075
27106
  if (cached !== void 0 && cached.region === ccRegion) return cached.provider;
27076
- const provider = family === "rds" ? new (await (import("./rds-provider-CxB94DZy.js"))).RDSProvider({ region: ccRegion }) : new (await (import("./neptune-provider-CXhoiT-P.js"))).NeptuneProvider({ region: ccRegion });
27107
+ const provider = family === "rds" ? new (await (import("./rds-provider-DBW972HG.js"))).RDSProvider({ region: ccRegion }) : new (await (import("./neptune-provider-DUaw7kpj.js"))).NeptuneProvider({ region: ccRegion });
27077
27108
  this.sdkDeleteDelegates.set(family, {
27078
27109
  region: ccRegion,
27079
27110
  provider
@@ -32713,7 +32744,7 @@ function ownRemedyError(error) {
32713
32744
  }
32714
32745
  function rollbackFailureText(error) {
32715
32746
  if (error instanceof Error && OWN_REMEDY_ERRORS.has(error)) return error.message.split("\n").map((line) => displaySafe(line)).join("\n");
32716
- return displaySafe(error instanceof Error ? error.message : String(error));
32747
+ return displaySafe(describeAwsFailure(error).detail);
32717
32748
  }
32718
32749
  function collisionText(msg) {
32719
32750
  return displayAwsMessage(displaySafe(msg).replace(/[\s\p{Cf}\p{Default_Ignorable_Code_Point}\u2800]{2,}/gu, " "));
@@ -33706,7 +33737,14 @@ function redactOutputsBag(deps, outputs) {
33706
33737
  absorbOutputsPassSecrets(deps);
33707
33738
  if (deps.outputsRun().outputSecrets.size === 0) return maskOutputsByPosition(deps.noEchoRun(), deps.noEchoDeps(), outputs);
33708
33739
  const outputsRun = deps.outputsRun();
33709
- return maskOutputsByPosition(deps.noEchoRun(), deps.noEchoDeps(), redactSecretsForState(outputs, outputsRun.outputSecrets, outputsRun.outputsSourceUsable ? outputsRun.outputsTemplateSource : void 0, TEMPLATE_SOURCED_RULES));
33740
+ return maskOutputsByPosition(deps.noEchoRun(), deps.noEchoDeps(), redactForState(outputs, outputsRun.outputsSourceUsable ? {
33741
+ provenance: "template-sourced",
33742
+ secrets: outputsRun.outputSecrets,
33743
+ source: outputsRun.outputsTemplateSource
33744
+ } : {
33745
+ provenance: "value-scan",
33746
+ secrets: outputsRun.outputSecrets
33747
+ }));
33710
33748
  }
33711
33749
  function registerNoEchoAttributes(run, deps, logicalId, result, secrets, ownProperties) {
33712
33750
  const declared = recordNoEchoAttributeValues(result, secrets, ownProperties);
@@ -34088,7 +34126,7 @@ async function replaceDeleteFirstAndRecreate(run, deps, logicalId, resourceType,
34088
34126
  }));
34089
34127
  } catch (deleteError) {
34090
34128
  const shownSecrets = unionOfSecretBags([secrets, printingSecretsFor(deps.secretsRun(), logicalId)]);
34091
- throw new Error(safeMsg`Failed to delete old resource ${maskSecretsInText(logicalId, shownSecrets)} ` + safeMsg`(${maskSecretsInText(currentResource.physicalId, shownSecrets)}) ` + `during the --replace delete-first fallback: ` + safeMsg`${asIsMessage(maskSecretsInText(deleteError instanceof Error ? deleteError.message : String(deleteError), shownSecrets))}`, { cause: deleteError instanceof Error ? maskSecretsInError(deleteError, secrets) : void 0 });
34129
+ throw new Error(safeMsg`Failed to delete old resource ${maskSecretsInText(logicalId, shownSecrets)} ` + safeMsg`(${maskSecretsInText(currentResource.physicalId, shownSecrets)}) ` + `during the --replace delete-first fallback: ` + safeMsg`${asIsMessage(maskSecretsInText(describeAwsFailure(deleteError).detail, shownSecrets))}`, { cause: deleteError instanceof Error ? maskSecretsInError(deleteError, secrets) : void 0 });
34092
34130
  }
34093
34131
  reportDeleteGuards(deleteResult, {
34094
34132
  physicalId: currentResource.physicalId,
@@ -34112,7 +34150,7 @@ async function replaceDeleteFirstAndRecreate(run, deps, logicalId, resourceType,
34112
34150
  });
34113
34151
  } catch (recreateError) {
34114
34152
  const shownSecrets = unionOfSecretBags([secrets, printingSecretsFor(deps.secretsRun(), logicalId)]);
34115
- throw new Error(safeMsg`Failed to re-create ${maskSecretsInText(logicalId, shownSecrets)} after the ` + safeMsg`--replace delete-first fallback already deleted the old resource (${maskSecretsInText(currentResource.physicalId, shownSecrets)}). ` + safeMsg`Re-run the deploy to create it fresh. Cause: ${asIsMessage(maskSecretsInText(recreateError instanceof Error ? recreateError.message : String(recreateError), shownSecrets))}`, { cause: recreateError instanceof Error ? maskSecretsInError(recreateError, secrets) : void 0 });
34153
+ throw new Error(safeMsg`Failed to re-create ${maskSecretsInText(logicalId, shownSecrets)} after the ` + safeMsg`--replace delete-first fallback already deleted the old resource (${maskSecretsInText(currentResource.physicalId, shownSecrets)}). ` + safeMsg`Re-run the deploy to create it fresh. Cause: ${asIsMessage(maskSecretsInText(describeAwsFailure(recreateError).detail, shownSecrets))}`, { cause: recreateError instanceof Error ? maskSecretsInError(recreateError, secrets) : void 0 });
34116
34154
  }
34117
34155
  }
34118
34156
  function typeChangeNameQuestion(resourceType, input) {
@@ -34178,7 +34216,7 @@ async function checkedReplacementNameChange(deps, input) {
34178
34216
  }), logicalId, void 0, void 0, input.createProvider);
34179
34217
  } catch (probeError) {
34180
34218
  if (probeErrorMeansNameHeld(resourceType, probeError)) throw markNonRetryable(new CdkdError(maskName(`${subject} requires replacement, and S3 answered 403 Forbidden for bucket ${displaySafe(change.desiredName)}: another account owns that name, or a bucket of this account denies this identity \`s3:ListBucket\`, or the request's credentials were rejected. Nothing was created or deleted. Choose another name, or if the bucket is yours grant \`s3:ListBucket\` on it (or delete it) and re-run.`), "NAMED_REPLACEMENT_COLLISION", probeError instanceof Error ? probeError : void 0));
34181
- throw markNonRetryable(new CdkdError(maskName(`${subject} requires replacement under a new name, and ${adoptsText}, but cdkd could not check whether another resource already holds it: ${displayAwsMessage(maskName(probeError instanceof Error ? probeError.message : String(probeError)))}. Nothing was created or deleted. Re-run the deploy once the check can succeed.`), "NAMED_REPLACEMENT_COLLISION", probeError instanceof Error ? probeError : void 0));
34219
+ throw markNonRetryable(new CdkdError(maskName(`${subject} requires replacement under a new name, and ${adoptsText}, but cdkd could not check whether another resource already holds it: ${displayAwsMessage(maskName(describeAwsFailure(probeError).detail))}. Nothing was created or deleted. Re-run the deploy once the check can succeed.`), "NAMED_REPLACEMENT_COLLISION", probeError instanceof Error ? probeError : void 0));
34182
34220
  }
34183
34221
  if (found === null) return change;
34184
34222
  if (!typeChanged && probeFoundSameId(resourceType, found.physicalId, currentResource.physicalId)) return;
@@ -34195,7 +34233,7 @@ async function createFirstThenDeleteOld(run, deps, input) {
34195
34233
  createResult = await deps.withRetry(() => withCurrentResourceSecrets(secrets, () => input.createProvider.create(logicalId, resourceType, input.createProps, { maskSecrets: createSecretMasker(secrets) })), logicalId, void 0, void 0, input.createProvider);
34196
34234
  } catch (createError) {
34197
34235
  if (!isNameCollisionErrorFrom(createError, logicalId)) throw createError;
34198
- const createMsg = displayAwsMessage(maskName(createError instanceof Error ? createError.message : String(createError)));
34236
+ const createMsg = displayAwsMessage(maskName(describeAwsFailure(createError).detail));
34199
34237
  throw markNonRetryable(new CdkdError(maskName(`${displaySafe(logicalId)} (${displaySafe(resourceType)}) requires replacement (${input.trigger}), and cdkd created the new resource first because its name differs, but the create collided: ${createMsg}. If the collision is on the requested name: ${renderReplacementNameChange(input.change, input.createProps)}. Nothing was deleted` + (retainOld ? ` (UpdateReplacePolicy: Retain keeps the old resource in place)` : "") + ". Choose a name no other resource holds, or delete the resource holding it if it is yours."), "NAMED_REPLACEMENT_COLLISION", createError instanceof Error ? createError : void 0));
34200
34238
  }
34201
34239
  if (input.equalIdIsSameResource && createResult.physicalId === currentResource.physicalId) throw markNonRetryable(new CdkdError(maskName(`${displaySafe(logicalId)} (${displaySafe(resourceType)}) requires replacement (${input.trigger}) under a new name, but the create returned the resource being replaced (${displaySafe(currentResource.physicalId)}) instead of a new one, so cdkd cannot tell which name it holds. Nothing was deleted. Delete that resource by hand if it is yours, then re-run the deploy.`), "NAMED_REPLACEMENT_IDEMPOTENT_CREATE"));
@@ -34221,7 +34259,7 @@ async function deleteReplacedAfterCreate(run, deps, logicalId, oldResourceType,
34221
34259
  maskSecrets: createUnionSecretMasker([secrets, secretNameBagFor(deps.secretsRun(), logicalId)])
34222
34260
  }));
34223
34261
  } catch (deleteError) {
34224
- const deleteMsg = maskSecretsInText(deleteError instanceof Error ? deleteError.message : String(deleteError), secrets);
34262
+ const deleteMsg = maskSecretsInText(describeAwsFailure(deleteError).detail, secrets);
34225
34263
  deleteFailed = true;
34226
34264
  run.replacedOldMaySurvive.set(logicalId, run.replacedOldMaySurvive.get(logicalId) === "unconfirmed" ? "unconfirmed" : replacedDeleteFailureVerdict(deleteError));
34227
34265
  const deferred = run.deferredReplacedDeletes;
@@ -34762,7 +34800,7 @@ var ForwardingSecrets = class extends Map {
34762
34800
  };
34763
34801
  function handleOutputResolutionFailure(deps, error, outputKey, outputs, secrets, inheritedSecrets) {
34764
34802
  const union = unionOfSecretBags([inheritedSecrets, secrets]);
34765
- const detail = maskSecretsInText(error instanceof Error ? error.message || error.name : String(error), union);
34803
+ const detail = maskSecretsInText(error instanceof Error ? error.message || error.name : safeStringify$1(error), union);
34766
34804
  if (deps.options.strictGetAtt) {
34767
34805
  const cause = typeof error === "string" ? maskSecretsInText(error, union) : maskSecretsInError(error, union);
34768
34806
  throw new Error(safeMsg`Failed to resolve output ${outputKey} ` + `(--strict-getatt promotes output resolution failures to deploy errors; ` + safeMsg`drop the flag to skip the output instead): ${asIsMessage(detail)}`, cause instanceof Error || typeof cause === "string" ? { cause } : {});
@@ -35161,8 +35199,16 @@ function recaptureMaskedBaseline(args) {
35161
35199
  const { previous, readback, properties, secrets } = args;
35162
35200
  const admissible = new Set(secretReferenceTokensOf(properties));
35163
35201
  for (const leaf of wholeStringLeavesOf(properties)) if (leaf.includes("{{resolve:")) admissible.add(leaf);
35164
- if (!reproducesBaseline(redactSecretsForState(readback, /* @__PURE__ */ new Map(), properties, STATE_SOURCED_BASELINE_RULES), previous, admissible)) return void 0;
35165
- const certified = redactSecretsForState(readback, secrets, properties, STATE_SOURCED_BASELINE_RULES);
35202
+ if (!reproducesBaseline(redactForState(readback, {
35203
+ provenance: "state-baseline",
35204
+ secrets: /* @__PURE__ */ new Map(),
35205
+ source: properties
35206
+ }), previous, admissible)) return void 0;
35207
+ const certified = redactForState(readback, {
35208
+ provenance: "state-baseline",
35209
+ secrets,
35210
+ source: properties
35211
+ });
35166
35212
  let changed = false;
35167
35213
  const overlay = (old, fresh) => {
35168
35214
  if (old === "***") {
@@ -35408,7 +35454,11 @@ function redactRollbackRecord(record, secrets, journaledProps, journaledAttribut
35408
35454
  if (secrets.size === 0) return record;
35409
35455
  const positioned = journaledProps === void 0 ? record : {
35410
35456
  ...record,
35411
- properties: redactSecretsForState(record.properties, secrets, journaledProps, STATE_DERIVED_RULES)
35457
+ properties: redactForState(record.properties, {
35458
+ provenance: "state-derived",
35459
+ secrets,
35460
+ source: journaledProps
35461
+ })
35412
35462
  };
35413
35463
  return keepPersistedPlainRecordLeaves(scrubResourceRecord(positioned, secrets), record, {
35414
35464
  properties: journaledProps,
@@ -36705,7 +36755,7 @@ async function replayReverseReplacement(s) {
36705
36755
  });
36706
36756
  } catch (recreateError) {
36707
36757
  await deleteMarkedRecreate(recreateError, recreateCleanup);
36708
- throw new Error(mask(`Failed to re-create the old ${safe(op.logicalId)} after the new resource (${mask(current.physicalId)}) was already deleted: ${displaySafe(recreateError instanceof Error ? recreateError.message : String(recreateError))}. The resource is now absent — fix forward by re-deploying the stack.`), { cause: maskSecretsInError(recreateError instanceof Error ? recreateError : void 0, secrets) });
36758
+ throw new Error(mask(`Failed to re-create the old ${safe(op.logicalId)} after the new resource (${mask(current.physicalId)}) was already deleted: ${displaySafe(describeAwsFailure(recreateError).detail)}. The resource is now absent — fix forward by re-deploying the stack.`), { cause: maskSecretsInError(recreateError instanceof Error ? recreateError : void 0, secrets) });
36709
36759
  }
36710
36760
  };
36711
36761
  let deletedNewFirst = false;
@@ -36722,7 +36772,7 @@ async function replayReverseReplacement(s) {
36722
36772
  });
36723
36773
  } catch (createError) {
36724
36774
  const deletedMade = await deleteMarkedRecreate(createError, recreateCleanup);
36725
- const msg = createError instanceof Error ? createError.message : String(createError);
36775
+ const msg = describeAwsFailure(createError).detail;
36726
36776
  if (!isNameCollisionErrorFrom(createError, op.logicalId) || deletedMade) throw createError;
36727
36777
  const holder = inOriginalPrefix(() => reverseReplacementNewHoldsName({
36728
36778
  oldResourceType: oldType,
@@ -36816,8 +36866,8 @@ async function replayReverseReplacement(s) {
36816
36866
  }));
36817
36867
  throwIfDeleteSkipped(deleteNewAfterRecreate, op.logicalId, current.physicalId, "while deleting the new resource after re-creating the old one", newDeleteGuardScope(deleteNewAfterRecreateRoute.provisionedBy));
36818
36868
  } catch (deleteError) {
36819
- logger.warn(mask(` Rollback: old ${safe(op.logicalId)} re-created, but deleting the new resource (${displaySafe(mask(current.physicalId))}) failed: ${displaySafe(deleteError instanceof Error ? deleteError.message : String(deleteError))}. Delete it manually — it is no longer tracked in state.`));
36820
- survivorReason = `The replacement's new ${op.resourceType} (${current.physicalId}) could not be deleted after the old resource was re-created: ${deleteError instanceof Error ? deleteError.message : String(deleteError)}. It is live, still billing, and no longer tracked by cdkd — delete it yourself.`;
36869
+ logger.warn(mask(` Rollback: old ${safe(op.logicalId)} re-created, but deleting the new resource (${displaySafe(mask(current.physicalId))}) failed: ${displaySafe(describeAwsFailure(deleteError).detail)}. Delete it manually — it is no longer tracked in state.`));
36870
+ survivorReason = `The replacement's new ${op.resourceType} (${current.physicalId}) could not be deleted after the old resource was re-created: ${describeAwsFailure(deleteError).detail}. It is live, still billing, and no longer tracked by cdkd — delete it yourself.`;
36821
36871
  result.warnings++;
36822
36872
  }
36823
36873
  const recreatedId = displaySafe(mask(String(createResult.physicalId)));
@@ -36858,7 +36908,7 @@ async function deleteMarkedRecreate(error, s) {
36858
36908
  }));
36859
36909
  failure = deleteSkipReason(outcome);
36860
36910
  } catch (deleteError) {
36861
- failure = deleteError instanceof Error ? deleteError.message : String(deleteError);
36911
+ failure = describeAwsFailure(deleteError).detail;
36862
36912
  }
36863
36913
  if (failure === void 0) return true;
36864
36914
  s.logger.warn(safeMsg` Rollback: could not delete ${id}, which the failed re-create of ${shown} made before ` + safeMsg`failing (${s.mask(failure)}); no record holds it — delete it yourself`);
@@ -37394,7 +37444,7 @@ var ObservedCapture = class {
37394
37444
  this.deps.printingSecretsFor(logicalId),
37395
37445
  this.deps.fingerprintNoEchoValues()
37396
37446
  ]);
37397
- this.deps.logger.debug(safeMsg`observedProperties capture for ${mask(logicalId)} (${mask(resourceType)}) failed: ${asIsMessage(mask(err instanceof Error ? err.message : String(err)))} — drift will fall back to template properties for this resource until the next successful deploy.`);
37447
+ this.deps.logger.debug(safeMsg`observedProperties capture for ${mask(logicalId)} (${mask(resourceType)}) failed: ${asIsMessage(mask(describeAwsFailure(err).detail))} — drift will fall back to template properties for this resource until the next successful deploy.`);
37398
37448
  });
37399
37449
  const promise = secrets === void 0 ? read() : withCurrentResourceSecrets(secrets, read);
37400
37450
  this.observedCaptureTasks.set(logicalId, promise);
@@ -38363,7 +38413,7 @@ async function loadJournaledOrphans(stateBackend, stackName, region, rollbackOrp
38363
38413
  if (!journal) return NONE;
38364
38414
  segments = journal.segments;
38365
38415
  } catch (err) {
38366
- const detail = err instanceof Error ? err.message : String(err);
38416
+ const detail = describeAwsFailure(err).detail;
38367
38417
  logger.warn(safeMsg`Could not read the stack's rollback journal (${displaySafe(detail)}); ` + safeMsg`no resource it records for a failed CREATE is deleted, and ${options.unreadableOutcome ?? "a destroy that proceeds removes the journal with the state"}.`);
38368
38418
  return {
38369
38419
  ...NONE,
@@ -38775,7 +38825,7 @@ async function markSuperseded(stateBackend, stackName, region, ids) {
38775
38825
  } catch {}
38776
38826
  }
38777
38827
  function errorDetail(err) {
38778
- return displaySafe(err instanceof Error ? err.message : String(err));
38828
+ return displaySafe(describeAwsFailure(err).detail);
38779
38829
  }
38780
38830
  function isHandledOrphan(handled, segment, op) {
38781
38831
  return handled.some((h) => h.segment.timestamp === segment.timestamp && h.segment.runId === segment.runId && h.op.logicalId === op.logicalId && h.op.changeType === op.changeType && h.op.resourceType === op.resourceType && h.op.physicalId === op.physicalId);
@@ -39307,7 +39357,7 @@ Drop the record with: ${dropCommand}`);
39307
39357
  maskSecrets: createUnionSecretMasker([secretNameBagFor(deps.secretsRun(), logicalId)])
39308
39358
  }), logicalId, 3, 5e3, deleteProvider);
39309
39359
  } catch (deleteError) {
39310
- const msg = deleteError instanceof Error ? deleteError.message : String(deleteError);
39360
+ const msg = describeAwsFailure(deleteError).detail;
39311
39361
  if (!isInterruptedWaitError(deleteError) && !isMarkedNonRetryable(deleteError) && !isWaitAbandonedError(deleteError) && (msg.includes("does not exist") || msg.includes("was not found") || msg.includes("not found") || msg.includes("No policy found") || msg.includes("NoSuchEntity") || msg.includes("NotFoundException") || msg.includes("ResourceNotFoundException"))) deps.logger.debug(safeMsg`Resource ${logicalId} already deleted (${asIsMessage(msg)}), removing from state`);
39312
39362
  else throw deleteError;
39313
39363
  }
@@ -40231,7 +40281,7 @@ async function deleteRollbackJournalBestEffort(deps, stackName, supersededLogica
40231
40281
  try {
40232
40282
  deleted = await deps.stateBackend.deleteRollbackJournal(stackName, deps.stackRegion);
40233
40283
  } catch (err) {
40234
- deps.logger.debug(safeMsg`Failed to delete rollback journal for ${displayStackName(stackName)}: ${err instanceof Error ? err.message : String(err)}`);
40284
+ deps.logger.debug(safeMsg`Failed to delete rollback journal for ${displayStackName(stackName)}: ${describeAwsFailure(err).detail}`);
40235
40285
  deleted = false;
40236
40286
  }
40237
40287
  if (deleted !== false) return true;
@@ -40239,7 +40289,7 @@ async function deleteRollbackJournalBestEffort(deps, stackName, supersededLogica
40239
40289
  try {
40240
40290
  await deps.stateBackend.markRollbackJournalSuperseded(stackName, deps.stackRegion, supersededLogicalIds);
40241
40291
  } catch (markErr) {
40242
- deps.logger.debug(safeMsg`Failed to record superseded logical ids on the rollback journal for ${displayStackName(stackName)}: ${markErr instanceof Error ? markErr.message : String(markErr)}`);
40292
+ deps.logger.debug(safeMsg`Failed to record superseded logical ids on the rollback journal for ${displayStackName(stackName)}: ${describeAwsFailure(markErr).detail}`);
40243
40293
  }
40244
40294
  return false;
40245
40295
  }
@@ -40248,7 +40298,7 @@ async function settleJournalAfterCleanRollback(deps, stackName, failedOperations
40248
40298
  try {
40249
40299
  await deps.stateBackend.popRollbackJournalSegment(stackName, deps.stackRegion);
40250
40300
  } catch (err) {
40251
- deps.logger.debug(safeMsg`Failed to pop the rollback journal segment after the clean rollback: ${asIsMessage(err instanceof Error ? err.message : String(err))}`);
40301
+ deps.logger.debug(safeMsg`Failed to pop the rollback journal segment after the clean rollback: ${asIsMessage(describeAwsFailure(err).detail)}`);
40252
40302
  return false;
40253
40303
  }
40254
40304
  return true;
@@ -40256,7 +40306,7 @@ async function settleJournalAfterCleanRollback(deps, stackName, failedOperations
40256
40306
  try {
40257
40307
  await deps.stateBackend.popRollbackJournalSegment(stackName, deps.stackRegion);
40258
40308
  } catch (err) {
40259
- deps.logger.warn(safeMsg`Failed to settle the rollback journal after the clean rollback: ${err instanceof Error ? err.message : String(err)}. ` + `The journal keeps the full segment; a later rollback replay is idempotent.`);
40309
+ deps.logger.warn(safeMsg`Failed to settle the rollback journal after the clean rollback: ${describeAwsFailure(err).detail}. ` + `The journal keeps the full segment; a later rollback replay is idempotent.`);
40260
40310
  return false;
40261
40311
  }
40262
40312
  if (!await writeRollbackJournalSegment(deps, stackName, [], failedOperations, "auto-rollback-clean", initialDeploy)) return true;
@@ -40331,7 +40381,7 @@ async function writeRollbackJournalSegment(deps, stackName, completedOperations,
40331
40381
  deps.logger.debug(safeMsg`Rollback journal segment written (${reason})`);
40332
40382
  return true;
40333
40383
  } catch (journalError) {
40334
- deps.logger.warn(safeMsg`Failed to write rollback journal: ${asIsMessage(journalError instanceof Error ? journalError.message : String(journalError))}. ` + `'cdkd rollback' will NOT be able to revert this deploy — use 'cdkd deploy' to resume or 'cdkd destroy' to clean up.`);
40384
+ deps.logger.warn(safeMsg`Failed to write rollback journal: ${asIsMessage(describeAwsFailure(journalError).detail)}. ` + `'cdkd rollback' will NOT be able to revert this deploy — use 'cdkd deploy' to resume or 'cdkd destroy' to clean up.`);
40335
40385
  return false;
40336
40386
  }
40337
40387
  }
@@ -42035,7 +42085,10 @@ function deployConditionInputs(parameterValues, inheritedSecrets, shadowedBy = /
42035
42085
  unavailable.add(name);
42036
42086
  continue;
42037
42087
  }
42038
- const redacted = redactSecretsForState(value, inheritedSecrets);
42088
+ const redacted = redactForState(value, {
42089
+ provenance: "value-scan",
42090
+ secrets: inheritedSecrets
42091
+ });
42039
42092
  if (!containsNeedle(value)) {
42040
42093
  if (redacted !== value) unavailable.add(name);
42041
42094
  continue;
@@ -42968,7 +43021,10 @@ function maskedInputSources(deps, template, resources, conditions, stackName) {
42968
43021
  const targetSecrets = target === void 0 ? void 0 : deps.secretsRun().perResourceSecrets.get(target);
42969
43022
  if (targetSecrets !== void 0 && hasMaskableValues(targetSecrets)) {
42970
43023
  const probe = { value };
42971
- const redacted = redactSecretsForState(probe, targetSecrets);
43024
+ const redacted = redactForState(probe, {
43025
+ provenance: "value-scan",
43026
+ secrets: targetSecrets
43027
+ });
42972
43028
  if (JSON.stringify(redacted) !== JSON.stringify(probe)) return {
42973
43029
  value,
42974
43030
  keepAsWritten: true
@@ -43177,7 +43233,7 @@ async function refuseTakenCreateName(engine, input) {
43177
43233
  if (probeErrorMeansNameHeld(resourceType, probeError)) return refuse(`${subject} is created with ${named}, and S3 answered 403 Forbidden for that bucket: another account owns that name, or a bucket of this account denies this identity \`s3:ListBucket\`, or the request's credentials were rejected. Nothing was created. Choose another name, or if the bucket is yours grant \`s3:ListBucket\` on it (or delete it) and re-run.`, probeError);
43178
43234
  const status = probeError?.$metadata?.httpStatusCode;
43179
43235
  if (resourceType === "AWS::S3::Bucket" && status === 301) return refuse(`${subject} is created with ${named}, and S3 answered 301 for that bucket: a bucket of that name already exists in another region. Nothing was created. Choose another name, or delete that bucket if it is yours and re-run.`, probeError);
43180
- return refuse(`${subject} is created with ${named}, and ${adoptsText}, but cdkd could not check whether another resource already holds it: ${displayAwsMessage(maskName(probeError instanceof Error ? probeError.message : String(probeError)))}. Nothing was created. Re-run the deploy once the check can succeed.`, probeError);
43236
+ return refuse(`${subject} is created with ${named}, and ${adoptsText}, but cdkd could not check whether another resource already holds it: ${displayAwsMessage(maskName(describeAwsFailure(probeError).detail))}. Nothing was created. Re-run the deploy once the check can succeed.`, probeError);
43181
43237
  }
43182
43238
  if (found === null) return;
43183
43239
  const holderId = found.physicalId;
@@ -46126,7 +46182,7 @@ async function updateByReplacement(engine, { change, counts, currentProps, curre
46126
46182
  }));
46127
46183
  } catch (deleteError) {
46128
46184
  const shownSecrets = unionOfSecretBags([updateSecrets, printingSecretsFor(engine.secretsRun, logicalId)]);
46129
- throw new Error(safeMsg`Failed to destroy old resource ${maskSecretsInText(logicalId, shownSecrets)} ` + safeMsg`(${maskSecretsInText(currentResource.physicalId, shownSecrets)}) during ${recreateFlagName}: ` + safeMsg`${asIsMessage(maskSecretsInText(deleteError instanceof Error ? deleteError.message : String(deleteError), shownSecrets))}`, { cause: deleteError instanceof Error ? maskSecretsInError(deleteError, updateSecrets) : void 0 });
46185
+ throw new Error(safeMsg`Failed to destroy old resource ${maskSecretsInText(logicalId, shownSecrets)} ` + safeMsg`(${maskSecretsInText(currentResource.physicalId, shownSecrets)}) during ${recreateFlagName}: ` + safeMsg`${asIsMessage(maskSecretsInText(describeAwsFailure(deleteError).detail, shownSecrets))}`, { cause: deleteError instanceof Error ? maskSecretsInError(deleteError, updateSecrets) : void 0 });
46130
46186
  }
46131
46187
  reportDeleteGuards(recreateDeleteResult, {
46132
46188
  physicalId: currentResource.physicalId,
@@ -46159,7 +46215,7 @@ async function updateByReplacement(engine, { change, counts, currentProps, curre
46159
46215
  try {
46160
46216
  createResult = await engine.withRetry(() => withCurrentResourceSecrets(updateSecrets, () => replaceProvider.create(logicalId, resourceType, replaceProps, { maskSecrets: createSecretMasker(updateSecrets) })), logicalId, void 0, void 0, replaceProvider);
46161
46217
  } catch (createError) {
46162
- const createMsg = displayAwsMessage(maskSecretsInText(createError instanceof Error ? createError.message : String(createError), updateSecrets));
46218
+ const createMsg = displayAwsMessage(maskSecretsInText(describeAwsFailure(createError).detail, updateSecrets));
46163
46219
  const createSentence = createMsg.endsWith(".") ? createMsg.slice(0, -1) : createMsg;
46164
46220
  if (!isNameCollisionErrorFrom(createError, logicalId)) throw createError;
46165
46221
  const nameOrigin = replacementNameOrigin(logicalId, currentResource.physicalId);
@@ -46217,7 +46273,7 @@ async function updateByReplacement(engine, { change, counts, currentProps, curre
46217
46273
  if (snapshotError instanceof CdkdError && snapshotError.code === "FINAL_SNAPSHOT_UNSUPPORTED") throw snapshotError;
46218
46274
  snapshotBlockedDelete = true;
46219
46275
  engine.replacementRun.replacedOldMaySurvive.set(logicalId, "kept");
46220
- engine.logger.warn(safeMsg` ⚠ Final snapshot for old ${logicalId} (${currentResource.physicalId}) ` + safeMsg`failed: ${asIsMessage(snapshotError instanceof Error ? snapshotError.message : String(snapshotError))}. ` + "The old resource was NOT deleted (UpdateReplacePolicy: Snapshot) — delete it manually once you have a snapshot; it is no longer tracked in state.");
46276
+ engine.logger.warn(safeMsg` ⚠ Final snapshot for old ${logicalId} (${currentResource.physicalId}) ` + safeMsg`failed: ${asIsMessage(describeAwsFailure(snapshotError).detail)}. ` + "The old resource was NOT deleted (UpdateReplacePolicy: Snapshot) — delete it manually once you have a snapshot; it is no longer tracked in state.");
46221
46277
  }
46222
46278
  if (!snapshotBlockedDelete) await deleteReplacedAfterCreate(engine.replacementRun, engine.replacementDeps(), logicalId, oldResourceType, currentResource, oldDeleteProvider, currentResource.properties, cleanupFinalSnapshotId, updateReplacePolicy, updateSecrets, oldDeleteRoute.provisionedBy, noEchoDeleteValues);
46223
46279
  }
@@ -46388,7 +46444,7 @@ async function updateInPlace(engine, { conditions, counts, currentProps, current
46388
46444
  maskSecrets: createUnionSecretMasker([updateSecrets, secretNameBagFor(engine.secretsRun, logicalId)])
46389
46445
  }));
46390
46446
  } catch (deleteError) {
46391
- const deleteMsg = deleteError instanceof Error ? deleteError.message : String(deleteError);
46447
+ const deleteMsg = describeAwsFailure(deleteError).detail;
46392
46448
  if (!isWaitAbandonedError(deleteError) && !isInterruptedWaitError(deleteError) && !isMarkedNonRetryable(deleteError) && (deleteMsg.includes("does not exist") || deleteMsg.includes("not found") || deleteMsg.includes("NotFound"))) engine.logger.debug(safeMsg`Old resource ${logicalId} already gone, proceeding with CREATE`);
46393
46449
  else throw deleteError;
46394
46450
  }
@@ -46431,7 +46487,7 @@ async function updateInPlace(engine, { conditions, counts, currentProps, current
46431
46487
  if (createFirst) throw createError;
46432
46488
  if (!retainOldOnReplace) {
46433
46489
  const shownSecrets = unionOfSecretBags([updateSecrets, printingSecretsFor(engine.secretsRun, logicalId)]);
46434
- throw new Error(safeMsg`Failed to create ${maskSecretsInText(logicalId, shownSecrets)} after the ` + safeMsg`UPDATE-not-supported replacement: the old resource (${maskSecretsInText(currentResource.physicalId, shownSecrets)}) ` + safeMsg`is now gone. Re-run the deploy to create it fresh. Cause: ${asIsMessage(maskSecretsInText(createError instanceof Error ? createError.message : String(createError), shownSecrets))}`, { cause: createError instanceof Error ? createError : void 0 });
46490
+ throw new Error(safeMsg`Failed to create ${maskSecretsInText(logicalId, shownSecrets)} after the ` + safeMsg`UPDATE-not-supported replacement: the old resource (${maskSecretsInText(currentResource.physicalId, shownSecrets)}) ` + safeMsg`is now gone. Re-run the deploy to create it fresh. Cause: ${asIsMessage(maskSecretsInText(describeAwsFailure(createError).detail, shownSecrets))}`, { cause: createError instanceof Error ? createError : void 0 });
46435
46491
  }
46436
46492
  if (!isNameCollisionErrorFrom(createError, logicalId)) throw createError;
46437
46493
  const nameHeldElsewhere = replacementRequestsDifferentName({
@@ -46769,8 +46825,18 @@ async function provisionUpdate(engine, logicalId, change, stateResources, stackN
46769
46825
  ]), fingerprints));
46770
46826
  if (resourceType === "AWS::CloudFormation::Stack") recordPassedNoEchoParameters(updateSecrets, desiredProps["Parameters"], noEchoPositionSources(engine.noEchoRun, stateResources));
46771
46827
  if (fingerprintSources !== void 0 && resourceType === "AWS::CloudFormation::Stack") recordPassedParameterClasses(updateSecrets, await classifyPassedParameters(desiredProps["Parameters"], fingerprintSources));
46772
- const desiredForSkipCheck = maskAtCoordinates(redactSecretsForState(markSameGenerationBag({ ...resolvedProps }), updateSecrets, desiredProps), comparisonCoordinates);
46773
- const legacyDesired = withoutPhysicalNameCopies(updateSecrets, () => maskAtCoordinates(redactSecretsForState(markSameGenerationBag({ ...resolvedProps }), updateSecrets, desiredProps), comparisonCoordinates));
46828
+ const desiredForSkipCheck = maskAtCoordinates(redactForState(resolvedProps, {
46829
+ provenance: "template-derived",
46830
+ secrets: updateSecrets,
46831
+ source: desiredProps,
46832
+ generation: "same-generation"
46833
+ }), comparisonCoordinates);
46834
+ const legacyDesired = withoutPhysicalNameCopies(updateSecrets, () => maskAtCoordinates(redactForState(resolvedProps, {
46835
+ provenance: "template-derived",
46836
+ secrets: updateSecrets,
46837
+ source: desiredProps,
46838
+ generation: "same-generation"
46839
+ }), comparisonCoordinates));
46774
46840
  const copies = physicalNameCopiesOf.get(updateSecrets);
46775
46841
  const regionEvidence = getCurrentProducerRegions()?.();
46776
46842
  const recordOwnSecrets = copies !== void 0 && copies.size > 0 && regionEvidence?.complete === true && recordHoldsEmbeddedReference(currentResource) ? await resolveRecordSecrets({
@@ -46784,7 +46850,12 @@ async function provisionUpdate(engine, logicalId, change, stateResources, stackN
46784
46850
  if (repaired !== bag[key]) bag[key] = repaired;
46785
46851
  }
46786
46852
  if (overlapRuleAnswered(updateSecrets)) {
46787
- const legacyOverlapBag = withLegacyOverlapScan(updateSecrets, () => maskAtCoordinates(redactSecretsForState(markSameGenerationBag({ ...resolvedProps }), updateSecrets, desiredProps), comparisonCoordinates));
46853
+ const legacyOverlapBag = withLegacyOverlapScan(updateSecrets, () => maskAtCoordinates(redactForState(resolvedProps, {
46854
+ provenance: "template-derived",
46855
+ secrets: updateSecrets,
46856
+ source: desiredProps,
46857
+ generation: "same-generation"
46858
+ }), comparisonCoordinates));
46788
46859
  const legacyOverlap = legacyReferenceLeavesOnly(legacyOverlapBag);
46789
46860
  for (const bag of new Set(repairable)) for (const key of Object.keys(bag)) {
46790
46861
  const repaired = repairPhysicalNameCopyLeaves(bag[key], legacyOverlap[key], desiredForSkipCheck[key]);
@@ -46811,7 +46882,12 @@ async function provisionUpdate(engine, logicalId, change, stateResources, stackN
46811
46882
  const createOnlyEvidence = acceptedCreateOnlyDropsOf(currentResource);
46812
46883
  const recordedAsWritten = currentResource.provisionedBy === "cc-api" ? currentProps : withoutUnwrittenSilentDropProperties(resourceType, currentProps, desiredForSkipCheck, allowedForRecord, createOnlyEvidence);
46813
46884
  const unmarkedRecord = noEchoLeavesOf(currentResource) === void 0;
46814
- const todayAsWritten = unmarkedRecord || witnessNormalize(recordedAsWritten, void 0, desiredForSkipCheckAsWritten).differing.length > 0 ? redactSecretsForState(markSameGenerationBag({ ...resolvedProps }), withoutNoEchoParameterEntries(updateSecrets), desiredProps) : void 0;
46885
+ const todayAsWritten = unmarkedRecord || witnessNormalize(recordedAsWritten, void 0, desiredForSkipCheckAsWritten).differing.length > 0 ? redactForState(resolvedProps, {
46886
+ provenance: "template-derived",
46887
+ secrets: withoutNoEchoParameterEntries(updateSecrets),
46888
+ source: desiredProps,
46889
+ generation: "same-generation"
46890
+ }) : void 0;
46815
46891
  const witness = todayAsWritten === void 0 ? void 0 : witnessNormalize(recordedAsWritten, todayAsWritten, desiredForSkipCheckAsWritten);
46816
46892
  const currentPropsAsWritten = witness === void 0 ? recordedAsWritten : witness.current;
46817
46893
  const witnessMigrates = unmarkedRecord || (witness?.confirmed.length ?? 0) > 0;
@@ -47406,7 +47482,7 @@ async function provisionResource(engine, logicalId, change, stateResources, stac
47406
47482
  });
47407
47483
  } catch (error) {
47408
47484
  renderer.removeTask(logicalId);
47409
- const message = error instanceof Error ? error.message : String(error);
47485
+ const message = describeAwsFailure(error).detail;
47410
47486
  const shownMessage = maskForResource(engine.secretsRun, logicalId, message);
47411
47487
  const shownId = safeMsg`${logicalId}`;
47412
47488
  engine.logger.error(maskForResource(engine.secretsRun, logicalId, `Failed to ${change.changeType.toLowerCase()} ${shownId}: ${shownMessage}`));
@@ -47488,7 +47564,7 @@ async function executeDeployment(engine, template, currentState, changes, dag, e
47488
47564
  if (migrate) pendingMigration = false;
47489
47565
  engine.logger.debug(safeMsg`State saved after ${logicalId}`);
47490
47566
  } catch (error) {
47491
- engine.logger.warn(safeMsg`Failed to save state after ${logicalId}: ${asIsMessage(error instanceof Error ? error.message : String(error))}`);
47567
+ engine.logger.warn(safeMsg`Failed to save state after ${logicalId}: ${asIsMessage(describeAwsFailure(error).detail)}`);
47492
47568
  }
47493
47569
  });
47494
47570
  };
@@ -47818,7 +47894,7 @@ async function executeDeployment(engine, template, currentState, changes, dag, e
47818
47894
  if (migrate) pendingMigration = false;
47819
47895
  engine.logger.debug("Partial state saved before rollback (orphaned resource tracking)");
47820
47896
  } catch (saveError) {
47821
- engine.logger.warn(safeMsg`Failed to save partial state before rollback: ${asIsMessage(saveError instanceof Error ? saveError.message : String(saveError))}`);
47897
+ engine.logger.warn(safeMsg`Failed to save partial state before rollback: ${asIsMessage(describeAwsFailure(saveError).detail)}`);
47822
47898
  }
47823
47899
  let autoRollbackClean = false;
47824
47900
  let autoRollbackJournaled = false;
@@ -47866,7 +47942,7 @@ async function executeDeployment(engine, template, currentState, changes, dag, e
47866
47942
  engine.logger.debug("State saved after deployment failure");
47867
47943
  if (autoRollbackClean) await settleNestedChildrenAfterCleanRollback(engine.rollbackDeps(), stackName, rollbackSettledNested, await settleJournalAfterCleanRollback(engine.rollbackDeps(), stackName, rollbackRemainingFailedOps, initialDeploy));
47868
47944
  } catch (saveError) {
47869
- engine.logger.debug(safeMsg`Retrying state save after rollback (ETag mismatch): ${asIsMessage(saveError instanceof Error ? saveError.message : String(saveError))}`);
47945
+ engine.logger.debug(safeMsg`Retrying state save after rollback (ETag mismatch): ${asIsMessage(describeAwsFailure(saveError).detail)}`);
47870
47946
  try {
47871
47947
  const freshEtag = (await engine.stateBackend.getState(stackName, engine.stackRegion))?.etag;
47872
47948
  const postRollbackState = {
@@ -47885,7 +47961,7 @@ async function executeDeployment(engine, template, currentState, changes, dag, e
47885
47961
  engine.logger.debug("State saved after deployment failure (retry succeeded)");
47886
47962
  if (autoRollbackClean) await settleNestedChildrenAfterCleanRollback(engine.rollbackDeps(), stackName, rollbackSettledNested, await settleJournalAfterCleanRollback(engine.rollbackDeps(), stackName, rollbackRemainingFailedOps, initialDeploy));
47887
47963
  } catch (retryError) {
47888
- engine.logger.warn(safeMsg`Failed to save state after rollback: ${asIsMessage(retryError instanceof Error ? retryError.message : String(retryError))}`);
47964
+ engine.logger.warn(safeMsg`Failed to save state after rollback: ${asIsMessage(describeAwsFailure(retryError).detail)}`);
47889
47965
  }
47890
47966
  }
47891
47967
  throw error;
@@ -47940,13 +48016,13 @@ async function persistStateAfterOutputFailure(engine, stackName, currentState, n
47940
48016
  });
47941
48017
  engine.logger.debug("State saved after output resolution failure");
47942
48018
  } catch (saveError) {
47943
- engine.logger.debug(safeMsg`Retrying state save after output resolution failure (ETag mismatch): ${asIsMessage(saveError instanceof Error ? saveError.message : String(saveError))}`);
48019
+ engine.logger.debug(safeMsg`Retrying state save after output resolution failure (ETag mismatch): ${asIsMessage(describeAwsFailure(saveError).detail)}`);
47944
48020
  try {
47945
48021
  const freshEtag = (await engine.stateBackend.getState(stackName, engine.stackRegion))?.etag;
47946
48022
  await engine.stateBackend.saveState(stackName, engine.stackRegion, engine.withParentInfo(buildState()), { ...freshEtag !== void 0 && { expectedEtag: freshEtag } });
47947
48023
  engine.logger.debug("State saved after output resolution failure (retry succeeded)");
47948
48024
  } catch (retryError) {
47949
- engine.logger.warn(safeMsg`Failed to save state after output resolution failure: ${asIsMessage(retryError instanceof Error ? retryError.message : String(retryError))} — resources were provisioned but not recorded; run deploy again to reconcile.`);
48025
+ engine.logger.warn(safeMsg`Failed to save state after output resolution failure: ${asIsMessage(describeAwsFailure(retryError).detail)} — resources were provisioned but not recorded; run deploy again to reconcile.`);
47950
48026
  }
47951
48027
  }
47952
48028
  }
@@ -48282,7 +48358,7 @@ async function doDeployWithPrefetch(engine, stackName, template, createOnlyPrefe
48282
48358
  else if (healedAttributesPending) engine.logger.debug("Persisted attributes re-read from AWS for a stale record (no-change path)");
48283
48359
  else engine.logger.debug("Persisted skipped-outputs record (no outputs-value diff, no-change path)");
48284
48360
  } catch (saveError) {
48285
- engine.logger.warn(safeMsg`Failed to persist no-change state update: ${asIsMessage(saveError instanceof Error ? saveError.message : String(saveError))} — drift baseline / outputs will be re-resolved on next deploy.`);
48361
+ engine.logger.warn(safeMsg`Failed to persist no-change state update: ${asIsMessage(describeAwsFailure(saveError).detail)} — drift baseline / outputs will be re-resolved on next deploy.`);
48286
48362
  }
48287
48363
  }
48288
48364
  return {
@@ -48441,7 +48517,7 @@ async function doDeployWithPrefetch(engine, stackName, template, createOnlyPrefe
48441
48517
  await engine.lockManager.releaseLock(stackName, engine.stackRegion);
48442
48518
  engine.logger.debug("Lock released");
48443
48519
  } catch (lockError) {
48444
- engine.logger.warn(safeMsg`Failed to release lock: ${asIsMessage(lockError instanceof Error ? lockError.message : String(lockError))}`);
48520
+ engine.logger.warn(safeMsg`Failed to release lock: ${asIsMessage(describeAwsFailure(lockError).detail)}`);
48445
48521
  }
48446
48522
  }
48447
48523
  }
@@ -48765,7 +48841,10 @@ var DeployEngine = class {
48765
48841
  redactCrossStackReads(state) {
48766
48842
  if (state.imports === void 0 && state.outputReads === void 0) return {};
48767
48843
  const secrets = allRecordedSecrets(this.secretsRun, this.maskingDeps());
48768
- const redact = (value) => redactSecretsForState(value, secrets);
48844
+ const redact = (value) => redactForState(value, {
48845
+ provenance: "value-scan",
48846
+ secrets
48847
+ });
48769
48848
  return {
48770
48849
  ...state.imports === void 0 ? {} : { imports: state.imports.map((entry) => ({
48771
48850
  ...entry,
@@ -48782,7 +48861,10 @@ var DeployEngine = class {
48782
48861
  absorbOutputsPassSecrets(this.maskingDeps());
48783
48862
  const secrets = allRecordedSecrets(this.secretsRun, this.maskingDeps());
48784
48863
  if (secrets.size === 0) return (name) => name;
48785
- return (name) => redactSecretsForState(name, secrets);
48864
+ return (name) => redactForState(name, {
48865
+ provenance: "value-scan",
48866
+ secrets
48867
+ });
48786
48868
  }
48787
48869
  withParentInfo(state) {
48788
48870
  const redacted = this.redactStateForPersist(state);
@@ -48859,5 +48941,5 @@ var DeployEngine = class {
48859
48941
  };
48860
48942
 
48861
48943
  //#endregion
48862
- export { resolvePendingCloudControlRequests as $, repairMalformedOutputsForReadOnly as $a, redactedDockerCause as $c, accountArgs as $i, buildFinalSnapshotIdentifier as $n, readbackPathFor as $o, DiffCalculator as $r, S3StateBackend as $s, namesAnyDeclaredParameter as $t, findServiceTokenRefusals as A, refuseMalformedOrphanRecordsForDestroy as Aa, assertAssetBucketRegion as Ac, coerceParameterTypedValue as Ai, expectedOwnerParam as Al, gray as An, replayWarn as Ao, isCustomResourceType as Ar, inheritNestedStackParameterAssociations as As, removeProtectionTypeList as At, parentSuppliedValues as B, refuseMalformedResourceEntriesForImport as Ba, resolveDockerContextDirectory as Bc, cfnRefValueFromPhysicalId as Bi, nullPrototypeRecord as Bl, journaledOrphanPrintingBag as Bn, sameLambdaFunctionAddress as Bo, UNSPECIFIED_SKIP_REASON as Br, recordMaskOnlyValuesIn as Bs, resolveReplacementOldType as Bt, getPriorAttempts as C, malformedResourcesWarning as Ca, WorkGraph as Cc, applyCallerIdentityCredentials as Ci, CFN_TEMPLATE_BODY_LIMIT as Cl, awaitInFlightSibling as Cn, toFiniteNumber as Co, ProviderRegistry as Cr, withPhysicalNameCopies as Cs, formatResourceLine as Ct, crossStackOutputProvenanceSource as D, refuseDivergentRecordRegionForDestroy as Da, rewriteTemplateAssetReferences as Dc, classifyReplaySecretRegion as Di, uploadCfnTemplate as Dl, replacedDeleteFailureVerdict as Dn, configIntegerRefusal as Do, waitForLambdaFunctionActive as Dr, isUncertifiedBaselineMaskPosition as Ds, withApiLimit as Dt, computeImplicitDeleteEdges as E, previewableOrphanRecords as Ea, loadPublishableAssetManifest as Ec, classifyRecordedSecretRegion as Ei, findLargeInlineResources as El, withStackRecords as En, configBooleanRefusal as Eo, wouldReturnToSdkProvider as Er, dynamicReferenceTokens as Es, lookupEachName as Et, listNestedTemplateRows as F, refuseMalformedOutputsForDestroy as Fa, readBootstrapMarkerBody as Fc, carriesDynamicReference as Fi, StageLoadError as Fl, noEchoComparisonForTemplate as Fn, templateResourceTypes as Fo, customResourceResponseExpirationWarning as Fr, recordPhysicalNameCopy as Fs, planFailedOps as Ft, keptWholeReasonText as G, refuseMalformedResourcePropertiesForExport as Ga, finchSecretArgvRefusal as Gc, parameterInputsFor as Gi, renderAssemblyPathEscape as Gl, secretNamePrintingBags as Gn, maskAtCoordinates as Go, isWaitAbandonedError as Gr, STATE_SOURCED_BASELINE_RULES as Gs, inheritProducerRegions as Gt, withResourceDeadline as H, refuseMalformedResourceEntriesForOrphan as Ha, describeDockerExecFailure as Hc, refStateLookupFromResource as Hi, absoluteAssemblyPathEscape as Hl, namingSecretsWithRecordedNoEcho as Hn, TemplateParser as Ho, deleteLeftInPlace as Hr, recordNoEchoParameterFreshValue as Hs, orphanNeedsIdentity as Ht, renderNestedTemplateTreeDefect as I, refuseMalformedResourceAttributesForOrphan as Ia, validateAssetBucketName as Ic, carriesFetchableDynamicReference as Ii, processStackMessages as Il, noEchoExactEchoLeavesOf as In, describeTypeWithThrottleRetry as Io, CloudControlProvider as Ir, splitGetAttStringForm as Is, planRollback as It, makeSiblingClaimReader as J, refuseMalformedResourcesForDestroy as Ja, isDockerClientEnvKey as Jc, JSON_LISTING_HOLE_VALUE as Ji, injectedAwsRegionValue as Jl, stateSecretNameNeedles as Jn, maskedLeafCoordinatesOf as Jo, ec2InstanceProtectionSite as Jr, TEMPLATE_SOURCED_RULES as Js, redactedDeleteAddressFields as Jt, mergeNoChangeOutputs as K, refuseMalformedResourcePropertiesForOrphan as Ka, formatDockerLoginError as Kc, passedParameterClassesOf as Ki, resolveAssemblyPath as Kl, secretNamedAttributeNamesOf as Kn, maskReadbackAtCoordinates as Ko, markWaitAbandoned as Kr, STATE_SOURCED_CROSS_GENERATION_RULES as Ks, REDACTED_DELETE_ADDRESS_SKIP_REASON as Kt, templateIdentity as L, refuseMalformedResourceEntries as La, validateContainerRepoName as Lc, isNamelessDynamicReferenceError as Li, defineOwnKey as Ll, noEchoParameterNamesOf as Ln, withRetry as Lo, slowCcOperationTimeoutMs as Lr, carriesSecretMask as Ls, recheckFailedPlan as Lt, childTemplateLoader as M, refuseMalformedOrphansForDestroy as Ma, getBootstrapMarkerKey as Mc, parameterTypeMayLoseSecretIdentity as Mi, canonicalizeRegion as Ml, red as Mn, requireConfigObject as Mo, withPrintingSecrets as Mr, recoverMaskedOutput as Ms, demoteSupersededOrphans as Mt, findNestedTemplateTreeDefect as N, refuseMalformedOrphansForOrphan as Na, isCrossRegionRedirect as Nc, getAccountInfo as Ni, derivePartitionAndUrlSuffix as Nl, yellow as Nn, requireConfigString as No, CUSTOM_RESOURCE_RESPONSE_LIFECYCLE_RULE_ID as Nr, physicalNameCopiesOf as Ns, isJournaledOrphan as Nt, inheritedProvenanceForChildDiff as O, refuseMalformedNestedChildOutputs as Oa, AssetModeResolver as Oc, producerRegionsFromState as Oi, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as Ol, bold as On, configStringRefusal as Oo, TemplateNoEchoReresolver as Or, pathCrossesDottedKey as Os, replayFailedOperations as Ot, isAbsoluteAssetPath as P, refuseMalformedOutputs as Pa, parseBootstrapMarker as Pc, isImpossibleEmptyStoredAttribute as Pi, AssemblyReader as Pl, noEchoAttributeNamesOf as Pn, prefetchCreateOnlyPropertyPaths as Po, applyCustomResourceResponseExpiration as Pr, recordAttributeIdCopy as Ps, isReplacementOrphan as Pt, pendingRequestCount as Q, repairMalformedOrphansForReadOnly as Qa, redactedCause as Qc, UNREADABLE_RESOURCES_MAP_ROW as Qi, PRE_DELETE_SNAPSHOT_TYPES as Qn, passedNoEchoParametersOf as Qo, reEnableInstanceApiTermination as Qr, isLockInfoExpired as Qs, computeParameterTaint as Qt, conditionFingerprint as R, refuseMalformedResourceEntriesForDeploy as Ra, buildDenyExternalAccessPolicy as Rc, keepsSecretReferenceToken as Ri, hasOwnKey as Rl, createReadOnlyAttributeHealerFactory as Rn, canonicalLambdaFunctionName as Ro, unchangedBehindSecretReference as Rr, provenPublicValue as Rs, recordUnderIdIsNotOwn as Rt, isTruthyCfnBoolean as S, malformedResourcePropertiesWarning as Sa, stringifyValue as Sc, AWS_CREDENTIAL_ENV_KEYS as Si, ssmResolvedValueType as Sl, formatDestructiveChange as Sn, toCfnInteger as So, CC_BROKEN_REASON as Sr, scrubResourceRecord as Ss, sameJournaledOrphans as St, IMPLICIT_DELETE_DEPENDENCIES as T, malformedStateRefusalMessage as Ta, createAssetRedirectResolver as Tc, envCredentialsAreAssumedRole as Ti, MIGRATE_TMP_PREFIX as Tl, getStackRecords as Tn, coerceCfnInteger as To, isCustomResource as Tr, DYNAMIC_REFERENCE_TOKEN_SCAN as Ts, isAccessDeniedError as Tt, diffSecurity as U, refuseMalformedResourcePropertiesForDestroy as Ua, describeDockerFailure as Uc, parseWebACLArn as Ui, describeFileReadFailure as Ul, orphanRecordsPrintingBag as Un, canonicalCoordinates as Uo, deleteSkipReason as Ur, recordProvenPublicExpression as Us, findNestedStackTypeChanges as Ut, readRecordedConditionVerdicts as V, refuseMalformedResourceEntriesForImportSave as Va, describeDockerCapturedOutput as Vc, isStalePlaceholderArnAttribute as Vi, ownValue as Vl, maskEventTextWithBoundBags as Vn, DagBuilder as Vo, deleteIndeterminateGuards as Vr, recordNoEchoAttributeValues as Vs, seedsDeleteFirstGuard as Vt, isSecretBearingReferenceString as W, refuseMalformedResourcePropertiesForDrift as Wa, dockerSpawnEnvWithSensitive as Wc, withSharedDrainBudget as Wi, displayAssemblyPath as Wl, secretNamePrintingBag as Wn, isMarkedCoordinate as Wo, withIndeterminateGuard as Wr, wholeStringLeavesOf as Ws, getCurrentProducerRegions as Wt, DeploymentEventsReader as X, refuseMalformedState as Xa, partitionSensitiveEnv as Xc, STATE_RESOURCES_MALFORMED as Xi, resolveBucketRegion as Xl, extractDeploymentEventError as Xn, noEchoLeavesOf as Xo, observeThenDisableInstanceApiTermination as Xr, isSingleDynamicReferenceToken as Xs, updatePartialMessage as Xt, planOrphanAdoption as Y, refuseMalformedResourcesForExport as Ya, isMalformedEnvKey as Yc, STATE_REGION_DIVERGED as Yi, clearBucketRegionCache as Yl, storedSecretNameNeedles as Yn, noEchoCoordinatesOf as Yo, isTerminationProtectionPropagationError as Yr, WHOLE_DYNAMIC_REFERENCE_PATTERN as Ys, redactedDeleteAddressSkip as Yt, DeploymentEventsStore as Z, repairMalformedOrphanRecordsForReadOnly as Za, redactDockerArgvValues as Zc, UNREADABLE_ORPHANS_CONTAINER_ROW as Zi, ATOMIC_FINAL_SNAPSHOT_TYPES as Zn, noEchoOutputsComparison as Zo, reDisableInstanceApiTermination as Zr, LockManager as Zs, updatePartialReason as Zt, deleteTableWithIndexBusyRetry as _, malformedOrphansWarning as _a, orphansAfterRollback as _c, assertFlagRoleArn as _i, resolveStateBucketWithDefault as _l, DEFAULT_RESOURCE_TIMEOUT_MS as _n, isStatefulRecreateTargetSync as _o, refuseMalformedDesiredTags as _r, maskSecretsInText as _s, dropFailedHint as _t, isProtectionValueActive as a, isReadableOrphanRecord as aa, isAccessDenied$1 as ac, s3BucketDomainName as ai, stripForDisplay as al, secretBearing as an, unreadableResourceEntries as ao, unsupportedFinalSnapshotError as ar, createUnionSecretMasker as as, dropSettledNestedJournals as at, S3_AUTO_DELETE_OBJECTS_TAG as b, malformedRenderedContainersWarning as ba, AssetPublisher as bc, isIamRoleArn as bi, stateBucketExistenceConfirmed as bl, constructPathOf as bn, coerceWarmThroughput as bo, definedAttributes as br, snapshotPassProvenance as bs, loadJournaledOrphans as bt, DynamoDBGlobalTableProvider as c, malformedExportNamesWarning as ca, acceptedCreateOnlyDropsOf as cc, s3BucketWebsiteUrl as ci, Synthesizer as cl, carriedExportAliasExposure as cn, findSilentDropProperties as co, reserveStackCreateToken as cr, logOnlyValueCount as cs, recordDisplacedSkips as ct, compensateRemovedDeletionProtection as d, malformedLocalResourceEntriesWarning as da, hasReadableExportSet as dc, refuseUnreadableCdkCrossAccountRefs as di, getLegacyStateBucketName as dl, isWholeDynamicReferenceValue as dn, NO_CC_HANDLERS_REASON as do, isRefusedByName as dr, recordLogOnlyValue as ds, withNestedRevertRun as dt, deployRefusesOrphanRowsReason as ea, rebuildClientForBucketRegion as ec, INTRINSIC_KEYS as ei, runDockerForeground as el, reachableDivergentParameters as en, repairMalformedResourceEntriesForReadOnly as eo, ccRoutedFinalSnapshotError as er, readsNoEchoSource as es, keptForReadoption as et, deleteBudgetKey as f, malformedLocalResourcesWarning as fa, hasReasonlessBaselineRefusal as fc, keepHeldTokenProvenance as fi, loadCdkJson as fl, noEchoParameterValueSeed as fn, hasNoCloudControlHandlers as fo, markDeleteStarted as fr, shareLogOnlyValues as fs, collectNestedChildUnaddressed as ft, INDEX_SETTLE_POLL_INTERVAL_MS as g, malformedOrphansRefusalMessage as ga, isReadableBag as gc, applyRoleArnIfSet as gi, resolveSkipPrefix as gl, bindingSkippedOutputs as gn, isStatefulRecreateTargetForReplace as go, readTagList as gr, maskSecretsInError as gs, dropFailedCommands as gt, DELETE_INDEX_WAIT_PROCEED_NOTE as h, malformedOrphanRowsKeptWarning as ha, importableOutputs as hc, recordedReferenceRegions as hi, resolveCaptureObservedState as hl, isExportAliasCollision as hn, MULTI_REGION_RECREATE_BLOCKED_TYPES as ho, planTagDiff as hr, errorCauseChain as hs, deleteJournaledOrphans as ht, PROTECTION_PROPERTY_BY_TYPE as i, hasReadableResources as ia, crossPrefixDeniedWarning as ic, s3BucketArn as ii, stripControlChars as il, exportAliasCollisionScrubWarning as in, unreadableOrphanRecords as io, refusesFinalSnapshot as ir, carryLogOnlyValues as is, displacedPhysicalIdShown as it, serviceTokenBlockingReason as j, refuseMalformedOrphans as ja, ensureAssetStorage as jc, isUnboundTemplateParameter as ji, PARTITION_TABLE as jl, green as jn, requireConfigArray as jo, getCurrentResourceSecrets as jr, recordNestedStackParameterExpressions as js, recordAfterRollbackUpdate as jt, deferredServiceTokenWarning as k, refuseMalformedOrphanRecords as ka, BOOTSTRAP_MARKER_PREFIX as kc, regionLessSecretName as ki, decodeListingKey as kl, cyan as kn, readConfigString as ko, readsNoEchoDeleteValues as kr, identityKeyFor as ks, replayRollback as kt, DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS as l, malformedExportSourceWarning as la, describeRegionValueKind as lc, resolveDynamicReferences as li, synthesisStatusMessage as ll, exportNameNoEchoParameters as ln, unwrittenCreateOnlyReplacement as lo, withCreateTokenLedger as lr, printingCorpusOf as ls, revertNestedChildFromJournal as lt, resolveDynamoDbDeleteBudgetMs as m, malformedOrphanRecordsWarning as ma, importableOutputKeys as mc, recordedOutputReferenceRegions as mi, resolveAutoAssetStorage as ml, collectPublishedOutputNames as mn, shownType as mo, DBPROXY_TAG_OPTIONS as mr, createSecretMasker as ms, withNestedStackContext as mt, recordedProtectionEvidence as n, hasReadableOrphans as na, CrossPrefixScanCache as nc, poisonRenderedSpellingsCollidingIn as ni, warnFinchArgvExposure as nl, WITHHELD_NAME_DISPLAY as nn, repairMalformedResourcesForReadOnly as no, effectiveDeletionPolicy as nr, valueAtCoordinate as ns, NESTED_PENDING_PARENT_REASON as nt, perType as o, isReadableResourceEntry as oa, isNotImplemented as oc, s3BucketDualStackDomainName as oi, AssetManifestLoader as ol, secretBearingStateKeyWarning as on, withheldAccountClause as oo, earliestDefined as or, hasMaskableValues as os, getNestedRevertRun as ot, resolveDynamoDbDeleteBudgetClock as p, malformedOrphanRecordsRefusalMessage as pa, hasUnverifiableParameterRefusal as pc, outputReferenceProvenanceOf as pi, resolveApp as pl, collectDeclaredOutputNames as pn, findReplacedReadersOfRecreateTargets as po, DBPROXY_TAGS_WHAT as pr, unionOfSecretBags as ps, getCurrentNestedStackContext as pt, makeCanonicalizePropertiesFn as q, refuseMalformedResourcesForDeploy as qa, getDockerCmd as qc, declaresNoEcho as qi, injectAwsRegion as ql, secretNamedRecordNeedles as qn, maskWholeValue as qo, disableInstanceApiTermination as qr, STATE_SOURCED_READBACK_RULES as qs, isRedactedRecordedValue as qt, recordedProtectionNote as r, hasReadableOutputs as ra, applyCrossPrefixScan as rc, isSettledInstanceState as ri, escapeRegExp$3 as rl, displayTextOrWithheld as rn, unpreviewableOrphanRecords as ro, isFinalSnapshotError as rr, liveMatchesUnresolvedTokenFrame as rs, displacedOpClause as rt, readProtection as s, malformedDriftResourcePropertiesWarning as sa, splitImportedOps as sc, s3BucketRegionalDomainName as si, getDockerImageBySourceHash as sl, secretSafeKeyDisplay as sn, findActionableSilentDrops as so, ledgerForStack as sr, literalSplitDelimitersOf as ss, nestedChildStackName as st, DeployEngine as t, displayLogicalId as ta, CrossPrefixReadError as tc, IntrinsicFunctionResolver as ti, runDockerStreaming as tl, resourcesNamingDeclaredParameter as tn, repairMalformedResourcePropertiesForReadOnly as to, createPreDeleteFinalSnapshot as tr, recordedNoEchoValuesOf as ts, recordRetainedForReadoption as tt, beginDeleteWait as u, malformedLocalOutputsWarning as ua, exportNamesCarriedFrom as uc, producerLookupOver as ui, getDefaultStateBucketName as ul, exportNameSecretExposure as un, withoutSilentDropProperties as uo, acquireIdempotencyToken as ur, recordLogOnlyParameterValue as us, revertedNestedRowIds as ut, waitForIndexesSettled as v, malformedOutputsRefusalMessage as va, orphansCarriedFrom as vc, assertSendableRoleArn as vi, resolveStateBucketWithDefaultAndSource as vl, DEFAULT_RESOURCE_WARN_AFTER_MS as vn, renderStatefulReason as vo, tagMapAsList as vr, markSameGenerationBag as vs, isHandledOrphan as vt, markRefusedBeforeApplying as w, malformedScrubResourceEntriesRefusalMessage as wa, buildAssetRedirectMap as wc, callerEnvCredentials as wi, CFN_TEMPLATE_URL_LIMIT as wl, destroyStackRecordsView as wn, coerceCfnBoolean as wo, ccBrokenReason as wr, withoutPhysicalNameCopies as ws, chunks as wt, hasCdkAutoDeleteTag as x, malformedResourceEntriesWarning as xa, isSensitiveAttributeName as xc, sendableAssumeRoleCommand as xi, warnDeprecatedNoPrefixCliFlag as xl, findDestructiveChanges as xn, isWarmThroughputDecrease as xo, stringifyIfAssigned as xr, redactSecretsForState as xs, makeForeignHolderScan as xt, ECR_AUTO_DELETE_IMAGES_TAG as y, malformedOutputsWarning as ya, shouldRetainResource as yc, explicitRoleArnOrThrow as yi, resolveUseCdkBootstrapAssets as yl, maskingRetryLogger as yn, WARM_THROUGHPUT_MEMBERS as yo, tagPlanWarning as yr, recordReferenceProvenanceEntry as ys, journaledOrphanLines as yt, conditionInputsFrom as z, refuseMalformedResourceEntriesForDestroy as za, buildDockerImage as zc, AWS_NO_VALUE as zi, hasPlainPrototype$1 as zl, completedReplayEntries as zn, lambdaFunctionNameForMask as zo, RollbackInlinePolicyWriters as zr, recordMaskOnlyValue as zs, replacementNeverSwapped as zt };
48863
- //# sourceMappingURL=deploy-engine-HAvm8vSI.js.map
48944
+ export { resolvePendingCloudControlRequests as $, repairMalformedOutputsForReadOnly as $a, warnFinchArgvExposure as $c, accountArgs as $i, buildFinalSnapshotIdentifier as $n, readbackPathFor as $o, DiffCalculator as $r, CrossPrefixScanCache as $s, namesAnyDeclaredParameter as $t, findServiceTokenRefusals as A, refuseMalformedOrphanRecordsForDestroy as Aa, isCrossRegionRedirect as Ac, coerceParameterTypedValue as Ai, derivePartitionAndUrlSuffix as Al, gray as An, replayWarn as Ao, isCustomResourceType as Ar, inheritNestedStackParameterAssociations as As, removeProtectionTypeList as At, parentSuppliedValues as B, refuseMalformedResourceEntriesForImport as Ba, describeDockerFailure as Bc, cfnRefValueFromPhysicalId as Bi, describeFileReadFailure as Bl, journaledOrphanPrintingBag as Bn, sameLambdaFunctionAddress as Bo, UNSPECIFIED_SKIP_REASON as Br, recordMaskOnlyValuesIn as Bs, resolveReplacementOldType as Bt, getPriorAttempts as C, malformedResourcesWarning as Ca, loadPublishableAssetManifest as Cc, applyCallerIdentityCredentials as Ci, findLargeInlineResources as Cl, awaitInFlightSibling as Cn, toFiniteNumber as Co, ProviderRegistry as Cr, withPhysicalNameCopies as Cs, formatResourceLine as Ct, crossStackOutputProvenanceSource as D, refuseDivergentRecordRegionForDestroy as Da, assertAssetBucketRegion as Dc, classifyReplaySecretRegion as Di, expectedOwnerParam as Dl, replacedDeleteFailureVerdict as Dn, configIntegerRefusal as Do, waitForLambdaFunctionActive as Dr, isUncertifiedBaselineMaskPosition as Ds, withApiLimit as Dt, computeImplicitDeleteEdges as E, previewableOrphanRecords as Ea, BOOTSTRAP_MARKER_PREFIX as Ec, classifyRecordedSecretRegion as Ei, decodeListingKey as El, withStackRecords as En, configBooleanRefusal as Eo, wouldReturnToSdkProvider as Er, dynamicReferenceTokens as Es, lookupEachName as Et, listNestedTemplateRows as F, refuseMalformedOutputsForDestroy as Fa, buildDenyExternalAccessPolicy as Fc, carriesDynamicReference as Fi, hasOwnKey as Fl, noEchoComparisonForTemplate as Fn, templateResourceTypes as Fo, customResourceResponseExpirationWarning as Fr, recordPhysicalNameCopy as Fs, planFailedOps as Ft, keptWholeReasonText as G, refuseMalformedResourcePropertiesForExport as Ga, isDockerClientEnvKey as Gc, parameterInputsFor as Gi, injectedAwsRegionValue as Gl, secretNamePrintingBags as Gn, maskAtCoordinates as Go, isWaitAbandonedError as Gr, STATE_SOURCED_CROSS_GENERATION_RULES as Gs, inheritProducerRegions as Gt, withResourceDeadline as H, refuseMalformedResourceEntriesForOrphan as Ha, finchSecretArgvRefusal as Hc, refStateLookupFromResource as Hi, renderAssemblyPathEscape as Hl, namingSecretsWithRecordedNoEcho as Hn, TemplateParser as Ho, deleteLeftInPlace as Hr, recordNoEchoParameterFreshValue as Hs, orphanNeedsIdentity as Ht, renderNestedTemplateTreeDefect as I, refuseMalformedResourceAttributesForOrphan as Ia, buildDockerImage as Ic, carriesFetchableDynamicReference as Ii, hasPlainPrototype$1 as Il, noEchoExactEchoLeavesOf as In, describeTypeWithThrottleRetry as Io, CloudControlProvider as Ir, splitGetAttStringForm as Is, planRollback as It, makeSiblingClaimReader as J, refuseMalformedResourcesForDestroy as Ja, redactDockerArgvValues as Jc, JSON_LISTING_HOLE_VALUE as Ji, stateSecretNameNeedles as Jn, maskedLeafCoordinatesOf as Jo, ec2InstanceProtectionSite as Jr, LockManager as Js, redactedDeleteAddressFields as Jt, mergeNoChangeOutputs as K, refuseMalformedResourcePropertiesForOrphan as Ka, isMalformedEnvKey as Kc, passedParameterClassesOf as Ki, clearBucketRegionCache as Kl, secretNamedAttributeNamesOf as Kn, maskReadbackAtCoordinates as Ko, markWaitAbandoned as Kr, WHOLE_DYNAMIC_REFERENCE_PATTERN as Ks, REDACTED_DELETE_ADDRESS_SKIP_REASON as Kt, templateIdentity as L, refuseMalformedResourceEntries as La, resolveDockerContextDirectory as Lc, isNamelessDynamicReferenceError as Li, nullPrototypeRecord as Ll, noEchoParameterNamesOf as Ln, withRetry as Lo, slowCcOperationTimeoutMs as Lr, carriesSecretMask as Ls, recheckFailedPlan as Lt, childTemplateLoader as M, refuseMalformedOrphansForDestroy as Ma, readBootstrapMarkerBody as Mc, parameterTypeMayLoseSecretIdentity as Mi, StageLoadError as Ml, red as Mn, requireConfigObject as Mo, withPrintingSecrets as Mr, recoverMaskedOutput as Ms, demoteSupersededOrphans as Mt, findNestedTemplateTreeDefect as N, refuseMalformedOrphansForOrphan as Na, validateAssetBucketName as Nc, getAccountInfo as Ni, processStackMessages as Nl, yellow as Nn, requireConfigString as No, CUSTOM_RESOURCE_RESPONSE_LIFECYCLE_RULE_ID as Nr, physicalNameCopiesOf as Ns, isJournaledOrphan as Nt, inheritedProvenanceForChildDiff as O, refuseMalformedNestedChildOutputs as Oa, ensureAssetStorage as Oc, producerRegionsFromState as Oi, PARTITION_TABLE as Ol, bold as On, configStringRefusal as Oo, TemplateNoEchoReresolver as Or, pathCrossesDottedKey as Os, replayFailedOperations as Ot, isAbsoluteAssetPath as P, refuseMalformedOutputs as Pa, validateContainerRepoName as Pc, isImpossibleEmptyStoredAttribute as Pi, defineOwnKey as Pl, noEchoAttributeNamesOf as Pn, prefetchCreateOnlyPropertyPaths as Po, applyCustomResourceResponseExpiration as Pr, recordAttributeIdCopy as Ps, isReplacementOrphan as Pt, pendingRequestCount as Q, repairMalformedOrphansForReadOnly as Qa, runDockerStreaming as Qc, UNREADABLE_RESOURCES_MAP_ROW as Qi, PRE_DELETE_SNAPSHOT_TYPES as Qn, passedNoEchoParametersOf as Qo, reEnableInstanceApiTermination as Qr, CrossPrefixReadError as Qs, computeParameterTaint as Qt, conditionFingerprint as R, refuseMalformedResourceEntriesForDeploy as Ra, describeDockerCapturedOutput as Rc, keepsSecretReferenceToken as Ri, ownValue as Rl, createReadOnlyAttributeHealerFactory as Rn, canonicalLambdaFunctionName as Ro, unchangedBehindSecretReference as Rr, provenPublicValue as Rs, recordUnderIdIsNotOwn as Rt, isTruthyCfnBoolean as S, malformedResourcePropertiesWarning as Sa, createAssetRedirectResolver as Sc, AWS_CREDENTIAL_ENV_KEYS as Si, MIGRATE_TMP_PREFIX as Sl, formatDestructiveChange as Sn, toCfnInteger as So, CC_BROKEN_REASON as Sr, scrubResourceRecord as Ss, sameJournaledOrphans as St, IMPLICIT_DELETE_DEPENDENCIES as T, malformedStateRefusalMessage as Ta, AssetModeResolver as Tc, envCredentialsAreAssumedRole as Ti, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as Tl, getStackRecords as Tn, coerceCfnInteger as To, isCustomResource as Tr, DYNAMIC_REFERENCE_TOKEN_SCAN as Ts, isAccessDeniedError as Tt, diffSecurity as U, refuseMalformedResourcePropertiesForDestroy as Ua, formatDockerLoginError as Uc, parseWebACLArn as Ui, resolveAssemblyPath as Ul, orphanRecordsPrintingBag as Un, canonicalCoordinates as Uo, deleteSkipReason as Ur, recordProvenPublicExpression as Us, findNestedStackTypeChanges as Ut, readRecordedConditionVerdicts as V, refuseMalformedResourceEntriesForImportSave as Va, dockerSpawnEnvWithSensitive as Vc, isStalePlaceholderArnAttribute as Vi, displayAssemblyPath as Vl, maskEventTextWithBoundBags as Vn, DagBuilder as Vo, deleteIndeterminateGuards as Vr, recordNoEchoAttributeValues as Vs, seedsDeleteFirstGuard as Vt, isSecretBearingReferenceString as W, refuseMalformedResourcePropertiesForDrift as Wa, getDockerCmd as Wc, withSharedDrainBudget as Wi, injectAwsRegion as Wl, secretNamePrintingBag as Wn, isMarkedCoordinate as Wo, withIndeterminateGuard as Wr, wholeStringLeavesOf as Ws, getCurrentProducerRegions as Wt, DeploymentEventsReader as X, refuseMalformedState as Xa, redactedDockerCause as Xc, STATE_RESOURCES_MALFORMED as Xi, extractDeploymentEventError as Xn, noEchoLeavesOf as Xo, observeThenDisableInstanceApiTermination as Xr, S3StateBackend as Xs, updatePartialMessage as Xt, planOrphanAdoption as Y, refuseMalformedResourcesForExport as Ya, redactedCause as Yc, STATE_REGION_DIVERGED as Yi, storedSecretNameNeedles as Yn, noEchoCoordinatesOf as Yo, isTerminationProtectionPropagationError as Yr, isLockInfoExpired as Ys, redactedDeleteAddressSkip as Yt, DeploymentEventsStore as Z, repairMalformedOrphanRecordsForReadOnly as Za, runDockerForeground as Zc, UNREADABLE_ORPHANS_CONTAINER_ROW as Zi, ATOMIC_FINAL_SNAPSHOT_TYPES as Zn, noEchoOutputsComparison as Zo, reDisableInstanceApiTermination as Zr, rebuildClientForBucketRegion as Zs, updatePartialReason as Zt, deleteTableWithIndexBusyRetry as _, malformedOrphansWarning as _a, AssetPublisher as _c, assertFlagRoleArn as _i, stateBucketExistenceConfirmed as _l, DEFAULT_RESOURCE_TIMEOUT_MS as _n, isStatefulRecreateTargetSync as _o, refuseMalformedDesiredTags as _r, maskSecretsInError as _s, dropFailedHint as _t, isProtectionValueActive as a, isReadableOrphanRecord as aa, acceptedCreateOnlyDropsOf as ac, s3BucketDomainName as ai, Synthesizer as al, secretBearing as an, unreadableResourceEntries as ao, unsupportedFinalSnapshotError as ar, carryLogOnlyValues as as, dropSettledNestedJournals as at, S3_AUTO_DELETE_OBJECTS_TAG as b, malformedRenderedContainersWarning as ba, WorkGraph as bc, isIamRoleArn as bi, CFN_TEMPLATE_BODY_LIMIT as bl, constructPathOf as bn, coerceWarmThroughput as bo, definedAttributes as br, recordReferenceProvenanceEntry as bs, loadJournaledOrphans as bt, DynamoDBGlobalTableProvider as c, malformedExportNamesWarning as ca, hasReadableExportSet as cc, s3BucketWebsiteUrl as ci, getLegacyStateBucketName as cl, carriedExportAliasExposure as cn, findSilentDropProperties as co, reserveStackCreateToken as cr, literalSplitDelimitersOf as cs, recordDisplacedSkips as ct, compensateRemovedDeletionProtection as d, malformedLocalResourceEntriesWarning as da, importableOutputKeys as dc, refuseUnreadableCdkCrossAccountRefs as di, resolveAutoAssetStorage as dl, isWholeDynamicReferenceValue as dn, NO_CC_HANDLERS_REASON as do, isRefusedByName as dr, recordLogOnlyParameterValue as ds, withNestedRevertRun as dt, deployRefusesOrphanRowsReason as ea, applyCrossPrefixScan as ec, INTRINSIC_KEYS as ei, escapeRegExp$3 as el, reachableDivergentParameters as en, repairMalformedResourceEntriesForReadOnly as eo, ccRoutedFinalSnapshotError as er, readsNoEchoSource as es, keptForReadoption as et, deleteBudgetKey as f, malformedLocalResourcesWarning as fa, importableOutputs as fc, keepHeldTokenProvenance as fi, resolveCaptureObservedState as fl, noEchoParameterValueSeed as fn, hasNoCloudControlHandlers as fo, markDeleteStarted as fr, recordLogOnlyValue as fs, collectNestedChildUnaddressed as ft, INDEX_SETTLE_POLL_INTERVAL_MS as g, malformedOrphansRefusalMessage as ga, shouldRetainResource as gc, applyRoleArnIfSet as gi, resolveUseCdkBootstrapAssets as gl, bindingSkippedOutputs as gn, isStatefulRecreateTargetForReplace as go, readTagList as gr, errorCauseChain as gs, dropFailedCommands as gt, DELETE_INDEX_WAIT_PROCEED_NOTE as h, malformedOrphanRowsKeptWarning as ha, orphansCarriedFrom as hc, recordedReferenceRegions as hi, resolveStateBucketWithDefaultAndSource as hl, isExportAliasCollision as hn, MULTI_REGION_RECREATE_BLOCKED_TYPES as ho, planTagDiff as hr, createSecretMasker as hs, deleteJournaledOrphans as ht, PROTECTION_PROPERTY_BY_TYPE as i, hasReadableResources as ia, splitImportedOps as ic, s3BucketArn as ii, getDockerImageBySourceHash as il, exportAliasCollisionScrubWarning as in, unreadableOrphanRecords as io, refusesFinalSnapshot as ir, liveMatchesUnresolvedTokenFrame as is, displacedPhysicalIdShown as it, serviceTokenBlockingReason as j, refuseMalformedOrphans as ja, parseBootstrapMarker as jc, isUnboundTemplateParameter as ji, AssemblyReader as jl, green as jn, requireConfigArray as jo, getCurrentResourceSecrets as jr, recordNestedStackParameterExpressions as js, recordAfterRollbackUpdate as jt, deferredServiceTokenWarning as k, refuseMalformedOrphanRecords as ka, getBootstrapMarkerKey as kc, regionLessSecretName as ki, canonicalizeRegion as kl, cyan as kn, readConfigString as ko, readsNoEchoDeleteValues as kr, identityKeyFor as ks, replayRollback as kt, DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS as l, malformedExportSourceWarning as la, hasReasonlessBaselineRefusal as lc, resolveDynamicReferences as li, loadCdkJson as ll, exportNameNoEchoParameters as ln, unwrittenCreateOnlyReplacement as lo, withCreateTokenLedger as lr, logOnlyValueCount as ls, revertNestedChildFromJournal as lt, resolveDynamoDbDeleteBudgetMs as m, malformedOrphanRecordsWarning as ma, orphansAfterRollback as mc, recordedOutputReferenceRegions as mi, resolveStateBucketWithDefault as ml, collectPublishedOutputNames as mn, shownType as mo, DBPROXY_TAG_OPTIONS as mr, unionOfSecretBags as ms, withNestedStackContext as mt, recordedProtectionEvidence as n, hasReadableOrphans as na, isAccessDenied$1 as nc, poisonRenderedSpellingsCollidingIn as ni, stripForDisplay as nl, WITHHELD_NAME_DISPLAY as nn, repairMalformedResourcesForReadOnly as no, effectiveDeletionPolicy as nr, valueAtCoordinate as ns, NESTED_PENDING_PARENT_REASON as nt, perType as o, isReadableResourceEntry as oa, describeRegionValueKind as oc, s3BucketDualStackDomainName as oi, synthesisStatusMessage as ol, secretBearingStateKeyWarning as on, withheldAccountClause as oo, earliestDefined as or, createUnionSecretMasker as os, getNestedRevertRun as ot, resolveDynamoDbDeleteBudgetClock as p, malformedOrphanRecordsRefusalMessage as pa, isReadableBag as pc, outputReferenceProvenanceOf as pi, resolveSkipPrefix as pl, collectDeclaredOutputNames as pn, findReplacedReadersOfRecreateTargets as po, DBPROXY_TAGS_WHAT as pr, shareLogOnlyValues as ps, getCurrentNestedStackContext as pt, makeCanonicalizePropertiesFn as q, refuseMalformedResourcesForDeploy as qa, partitionSensitiveEnv as qc, declaresNoEcho as qi, resolveBucketRegion as ql, secretNamedRecordNeedles as qn, maskWholeValue as qo, disableInstanceApiTermination as qr, isSingleDynamicReferenceToken as qs, isRedactedRecordedValue as qt, recordedProtectionNote as r, hasReadableOutputs as ra, isNotImplemented as rc, isSettledInstanceState as ri, AssetManifestLoader as rl, displayTextOrWithheld as rn, unpreviewableOrphanRecords as ro, isFinalSnapshotError as rr, redactForState as rs, displacedOpClause as rt, readProtection as s, malformedDriftResourcePropertiesWarning as sa, exportNamesCarriedFrom as sc, s3BucketRegionalDomainName as si, getDefaultStateBucketName as sl, secretSafeKeyDisplay as sn, findActionableSilentDrops as so, ledgerForStack as sr, hasMaskableValues as ss, nestedChildStackName as st, DeployEngine as t, displayLogicalId as ta, crossPrefixDeniedWarning as tc, IntrinsicFunctionResolver as ti, stripControlChars as tl, resourcesNamingDeclaredParameter as tn, repairMalformedResourcePropertiesForReadOnly as to, createPreDeleteFinalSnapshot as tr, recordedNoEchoValuesOf as ts, recordRetainedForReadoption as tt, beginDeleteWait as u, malformedLocalOutputsWarning as ua, hasUnverifiableParameterRefusal as uc, producerLookupOver as ui, resolveApp as ul, exportNameSecretExposure as un, withoutSilentDropProperties as uo, acquireIdempotencyToken as ur, printingCorpusOf as us, revertedNestedRowIds as ut, waitForIndexesSettled as v, malformedOutputsRefusalMessage as va, isSensitiveAttributeName as vc, assertSendableRoleArn as vi, warnDeprecatedNoPrefixCliFlag as vl, DEFAULT_RESOURCE_WARN_AFTER_MS as vn, renderStatefulReason as vo, tagMapAsList as vr, maskSecretsInText as vs, isHandledOrphan as vt, markRefusedBeforeApplying as w, malformedScrubResourceEntriesRefusalMessage as wa, rewriteTemplateAssetReferences as wc, callerEnvCredentials as wi, uploadCfnTemplate as wl, destroyStackRecordsView as wn, coerceCfnBoolean as wo, ccBrokenReason as wr, withoutPhysicalNameCopies as ws, chunks as wt, hasCdkAutoDeleteTag as x, malformedResourceEntriesWarning as xa, buildAssetRedirectMap as xc, sendableAssumeRoleCommand as xi, CFN_TEMPLATE_URL_LIMIT as xl, findDestructiveChanges as xn, isWarmThroughputDecrease as xo, stringifyIfAssigned as xr, snapshotPassProvenance as xs, makeForeignHolderScan as xt, ECR_AUTO_DELETE_IMAGES_TAG as y, malformedOutputsWarning as ya, stringifyValue as yc, explicitRoleArnOrThrow as yi, ssmResolvedValueType as yl, maskingRetryLogger as yn, WARM_THROUGHPUT_MEMBERS as yo, tagPlanWarning as yr, markSameGenerationBag as ys, journaledOrphanLines as yt, conditionInputsFrom as z, refuseMalformedResourceEntriesForDestroy as za, describeDockerExecFailure as zc, AWS_NO_VALUE as zi, absoluteAssemblyPathEscape as zl, completedReplayEntries as zn, lambdaFunctionNameForMask as zo, RollbackInlinePolicyWriters as zr, recordMaskOnlyValue as zs, replacementNeverSwapped as zt };
48945
+ //# sourceMappingURL=deploy-engine-D1z0QUsv.js.map