@go-to-k/cdkd 0.294.14 → 0.295.1

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.
Files changed (24) hide show
  1. package/dist/{asg-provider-DQkUXvQl.js → asg-provider-CbwOK2TQ.js} +2 -2
  2. package/dist/{asg-provider-DQkUXvQl.js.map → asg-provider-CbwOK2TQ.js.map} +1 -1
  3. package/dist/cli.js +2 -2
  4. package/dist/{deploy-engine--YvYB0qw.js → deploy-engine-DG-oC9YK.js} +287 -43
  5. package/dist/deploy-engine-DG-oC9YK.js.map +1 -0
  6. package/dist/{iam-role-provider-CirnOQ6Q.js → iam-role-provider-DUZtt9lH.js} +2 -2
  7. package/dist/{iam-role-provider-CirnOQ6Q.js.map → iam-role-provider-DUZtt9lH.js.map} +1 -1
  8. package/dist/index.d.ts +9 -3
  9. package/dist/index.d.ts.map +1 -1
  10. package/dist/index.js +2 -2
  11. package/dist/{neptune-provider-B51VlQxH.js → neptune-provider-TnGNCeLX.js} +2 -2
  12. package/dist/{neptune-provider-B51VlQxH.js.map → neptune-provider-TnGNCeLX.js.map} +1 -1
  13. package/dist/{program-DhvgK2CV.js → program-DfJFegS1.js} +113 -21
  14. package/dist/program-DfJFegS1.js.map +1 -0
  15. package/dist/{provider-classes-DmmgFCgs.js → provider-classes-DUw5QAWI.js} +242 -37
  16. package/dist/provider-classes-DUw5QAWI.js.map +1 -0
  17. package/dist/{rds-provider-xB2NA923.js → rds-provider-COCDd7bS.js} +2 -2
  18. package/dist/{rds-provider-xB2NA923.js.map → rds-provider-COCDd7bS.js.map} +1 -1
  19. package/dist/{version-CLicSzp8.js → version-Bqzsng8Y.js} +2 -2
  20. package/dist/{version-CLicSzp8.js.map → version-Bqzsng8Y.js.map} +1 -1
  21. package/package.json +4 -4
  22. package/dist/deploy-engine--YvYB0qw.js.map +0 -1
  23. package/dist/program-DhvgK2CV.js.map +0 -1
  24. package/dist/provider-classes-DmmgFCgs.js.map +0 -1
@@ -2,7 +2,7 @@ import { r as getAwsClients, s as __exportAll } from "./aws-clients-CnmtbrxD.js"
2
2
  import { A as displaySafe, E as UNRENDERABLE, F as safeMsg, L as truncateCodePoints, M as isPasteableIdent, O as displayAwsMessage, P as plainIdentOr, S as withoutGeneratedFallbackName, T as STACK_REF_MAX_CODE_POINTS, _ as getCurrentSkipPrefix, b as withSkipPrefix, c as getLiveRenderer, f as applyDefaultNameForFallback, g as generateResourceNameWithFallback, h as generateResourceName, j as displayStackName, k as displayIdent, m as explicitNamePropertyFor, n as getLogger, r as isStdoutReservedForPayload, s as installLogLineMaskerSource, v as getCurrentStackName, w as SECRET_REF_MAX_CODE_POINTS, x as withStackName, y as looksLikeCdkdGeneratedName } from "./logger-B46YMG0h.js";
3
3
  import { $t as StateError, A as isTerminalDeleteFailure, An as isAmbiguousCcHandlerErrorCode, At as clientDefaultsFor, Bn as isMarkedNonRetryable, Bt as IntrinsicResolutionRefusalError, C as refusalTypeShown, Cn as isNameCollisionErrorFrom, D as ProtectionFlipRegistry, Dt as withPasteableAwsProfile, En as isReplayedNameCollisionFrom, Fn as retryClassificationText, Gt as MalformedProducerRecordRefusalError, H as pasteableAwsCommand, Hn as markNonRetryable, In as describeAwsFailure, It as CrossAccountSecretRefusalError, J as isInterruptedWaitError, Jt as ProvisioningError, Lt as DependencyError, M as observeThenDisableProtection, Mn as isIamPropagationError, Mt as AccountIdUnavailableError, N as protectionFlipKey, Nn as isRetryableTransientError, Nt as AssetError, O as compensateProtectionFlip, On as markReplayMayCollide, Ot as ambientClientDefaults, Pn as isTransientServerError, Pt as CdkdError, Q as canonicalizeRoute53QueryName, R as DELETION_PROTECTION_DOC_POINTER, Rn as safeStringify$1, S as quotedRemedyLogicalId, Sn as hasReplayMayCollide, St as injectiveKey, T as resolveExplicitPhysicalId, Tn as isRecreateRetryableError, Tt as producerRecordKey, U as protectedReplacementAdvice, Un as markRedactedCause, Ut as LockError, Vn as isThrottlingError, Wn as wrapMaskedAwsError, Wt as MacroExpansionError, X as ElapsedBudgetRegistry, Xt as ResourceUpdateNotSupportedError, Y as startInterruptWatch, Yt as ResourceTimeoutError, Z as monotonicNowMs, _n as shellQuote, _t as formatLockOperation, at as segmentAfterAnchor, b as isQuotableImportValue, bt as CUSTOM_RESOURCE_RESPONSE_PREFIX, cn as UNSHOWABLE_VALUE, ct as isSecretDerivedValue, d as prepareRemovalForUpdate, dn as isInertUnquoted, dt as withDerivedNameMasks, en as SynthesisError, et as compositeIdSeparatorRefusal, f as removalWarning, fn as pasteableCommand, ft as UNREPRODUCIBLE_LOCK_CLAUSE, g as assertRegionMatch, gn as shellBoundedDisplay, gt as formatLockExpiry, h as RESOURCE_NOT_FOUND, hn as quotedOrDescribed, i as holdsSecretDerivedEntry, it as resourceTypeShown, jn as isAmbiguousOutcomeError, jt as credentialFingerprint, k as deleteWithProtectionCompensation, kn as formatRetryClassificationSignals, kt as ambientCredentialConfig, l as withUnchangedSecretPrincipalLists, ln as commandHole, lt as maskDeep, m as withoutInjectedRemovals, mn as plainOrDescribed, nt as logicalIdShown, on as SHELL_ACTIVE, ot as createMaskedLogSinks, pn as physicalIdShownBesideCommand, pt as buildForceUnlockCommand, rn as normalizeAwsError, sn as SHELL_ACTIVE_WHY, st as createMaskedRetryLogger, ut as maskerOrIdentity, vn as withheldTargetClause, vt as formatLockOwner, wn as isNameCooldownError, x as normalizeAwsTagsToCfn, xn as isUpdateUnsupportedError, xt as DEFAULT_STATE_PREFIX, yt as sanitizeRecoveryValue, zt as DynamicReferenceRegionAmbiguousError } from "./iam-policy-targets-CMSQGQnm.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-D0q0z4dG.js";
5
- import { t as getCdkdVersion } from "./version-CLicSzp8.js";
5
+ import { t as getCdkdVersion } from "./version-Bqzsng8Y.js";
6
6
  import { createHash, randomUUID } from "node:crypto";
7
7
  import { AsyncLocalStorage } from "node:async_hooks";
8
8
  import { CreateBucketCommand, DeleteObjectCommand, DeleteObjectsCommand, GetBucketLocationCommand, GetBucketReplicationCommand, GetObjectCommand, HeadBucketCommand, HeadObjectCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchKey, PutBucketEncryptionCommand, PutBucketPolicyCommand, PutObjectCommand, PutPublicAccessBlockCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
@@ -2705,7 +2705,7 @@ var FileAssetPublisher = class {
2705
2705
 
2706
2706
  //#endregion
2707
2707
  //#region src/utils/regexp.ts
2708
- function escapeRegExp$2(value) {
2708
+ function escapeRegExp$3(value) {
2709
2709
  return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
2710
2710
  }
2711
2711
  function stripControlChars(value) {
@@ -3123,7 +3123,7 @@ function trailingShortFlagOfCluster(arg) {
3123
3123
  for (const flag of ARGV_VALUE_BEARING_FLAGS) if (flag.length === 2 && flag.startsWith("-") && flag[1] !== "-" && flag[1] === last) return flag;
3124
3124
  }
3125
3125
  const ARGV_VALUE_TOKEN_RE = (() => {
3126
- const alternation = [...ARGV_VALUE_BEARING_FLAGS].sort((a, b) => b.length - a.length || a.localeCompare(b)).map(escapeRegExp$2).join("|");
3126
+ const alternation = [...ARGV_VALUE_BEARING_FLAGS].sort((a, b) => b.length - a.length || a.localeCompare(b)).map(escapeRegExp$3).join("|");
3127
3127
  if (alternation.length === 0 || [...ARGV_VALUE_BEARING_FLAGS].some((f) => f.trim() === "")) throw new Error("ARGV_VALUE_BEARING_FLAGS is empty or holds an empty flag: the token scan would match every k=v");
3128
3128
  return new RegExp(`(^|\\s)(${alternation})(\\s+|=)([^\\s=]*)=\\S*`, "g");
3129
3129
  })();
@@ -4133,10 +4133,10 @@ function flattenAssetPlaceholders(value, accountId, region, partition = "aws") {
4133
4133
  return value.replace(/\$\{AWS::AccountId\}/g, accountId).replace(/\$\{AWS::Region\}/g, region).replace(/\$\{AWS::Partition\}/g, partition);
4134
4134
  }
4135
4135
  function isDefaultBootstrapBucketName(name, accountId, region) {
4136
- return new RegExp(`^cdk-[a-z0-9]+-assets-${accountId}-${escapeRegExp$2(region)}$`).test(name);
4136
+ return new RegExp(`^cdk-[a-z0-9]+-assets-${accountId}-${escapeRegExp$3(region)}$`).test(name);
4137
4137
  }
4138
4138
  function isDefaultBootstrapRepoName(name, accountId, region) {
4139
- return new RegExp(`^cdk-[a-z0-9]+-container-assets-${accountId}-${escapeRegExp$2(region)}$`).test(name);
4139
+ return new RegExp(`^cdk-[a-z0-9]+-container-assets-${accountId}-${escapeRegExp$3(region)}$`).test(name);
4140
4140
  }
4141
4141
  function buildAssetRedirectMap(manifest, marker, accountId, region, partition = "aws") {
4142
4142
  const buckets = /* @__PURE__ */ new Map();
@@ -4145,7 +4145,7 @@ function buildAssetRedirectMap(manifest, marker, accountId, region, partition =
4145
4145
  const addForms = (rawName, flattened, target) => {
4146
4146
  sources.set(flattened, target);
4147
4147
  if (rawName !== flattened) sources.set(rawName, target);
4148
- const suffixRe = new RegExp(`-${accountId}-${escapeRegExp$2(region)}$`);
4148
+ const suffixRe = new RegExp(`-${accountId}-${escapeRegExp$3(region)}$`);
4149
4149
  for (const suffix of [
4150
4150
  "-${AWS::AccountId}-${AWS::Region}",
4151
4151
  `-\${AWS::AccountId}-${region}`,
@@ -4186,7 +4186,7 @@ function buildAssetRedirectMap(manifest, marker, accountId, region, partition =
4186
4186
  };
4187
4187
  }
4188
4188
  function buildBoundaryRegex(source) {
4189
- return new RegExp(`(?<![A-Za-z0-9_.-])${escapeRegExp$2(source)}(?![A-Za-z0-9_-])`, "g");
4189
+ return new RegExp(`(?<![A-Za-z0-9_.-])${escapeRegExp$3(source)}(?![A-Za-z0-9_-])`, "g");
4190
4190
  }
4191
4191
  function rewriteString(value, map, counter) {
4192
4192
  let result = value;
@@ -4803,6 +4803,14 @@ function refuseMalformedOperation(shownStack, where, op) {
4803
4803
  const attempted = o["attemptedProperties"];
4804
4804
  if (attempted !== void 0 && (typeof attempted !== "object" || attempted === null || Array.isArray(attempted))) fail("attemptedProperties", attempted, "an object when present");
4805
4805
  if (o["oldResourceRetained"] !== void 0 && typeof o["oldResourceRetained"] !== "boolean") fail("oldResourceRetained", o["oldResourceRetained"], "a boolean when present");
4806
+ if (o["physicalIdRecoveredFromError"] !== void 0 && typeof o["physicalIdRecoveredFromError"] !== "boolean") fail("physicalIdRecoveredFromError", o["physicalIdRecoveredFromError"], "a boolean when present");
4807
+ if (o["physicalIdRecoveredFromError"] !== void 0 && o["changeType"] !== "CREATE") refuseMalformed(shownStack, `${where}.physicalIdRecoveredFromError is only valid on a CREATE (got changeType ${kind(o["changeType"])}).`);
4808
+ if (o["deletionPolicy"] !== void 0 && ![
4809
+ "Delete",
4810
+ "Retain",
4811
+ "Snapshot",
4812
+ "RetainExceptOnCreate"
4813
+ ].includes(o["deletionPolicy"])) fail("deletionPolicy", o["deletionPolicy"], "one of Delete, Retain, Snapshot, RetainExceptOnCreate when present");
4806
4814
  if (o["previousResourceType"] !== void 0 && typeof o["previousResourceType"] !== "string") fail("previousResourceType", o["previousResourceType"], "a string when present");
4807
4815
  }
4808
4816
  function kind(v) {
@@ -6151,13 +6159,13 @@ function nanIfUncoercible(value) {
6151
6159
  //#endregion
6152
6160
  //#region src/deployment/secret-redaction/rules.ts
6153
6161
  const MIN_NEEDLE_LENGTH = 4;
6154
- function escapeRegExp$1(value) {
6162
+ function escapeRegExp$2(value) {
6155
6163
  return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
6156
6164
  }
6157
6165
  function buildNeedleRegex(values) {
6158
6166
  const needles = Array.from(new Set(values)).filter((v) => v.length >= 4).sort((a, b) => b.length - a.length);
6159
6167
  if (needles.length === 0) return void 0;
6160
- return new RegExp(needles.map(escapeRegExp$1).join("|"), "g");
6168
+ return new RegExp(needles.map(escapeRegExp$2).join("|"), "g");
6161
6169
  }
6162
6170
  const TEMPLATE_DERIVED_RULES = {
6163
6171
  descendArrays: true,
@@ -7323,7 +7331,7 @@ function intrinsicSkeletonPattern(source) {
7323
7331
  return anchoredSkeletonPattern(segments);
7324
7332
  }
7325
7333
  function anchoredSkeletonPattern(segments) {
7326
- const body = joinSkeletonSegments(segments.map((segment) => segment === UNKNOWN_PART ? SKELETON_WILDCARD : escapeRegExp$1(segment)));
7334
+ const body = joinSkeletonSegments(segments.map((segment) => segment === UNKNOWN_PART ? SKELETON_WILDCARD : escapeRegExp$2(segment)));
7327
7335
  return body === void 0 ? void 0 : new RegExp(`^${body}$`);
7328
7336
  }
7329
7337
  const UNKNOWN_PART = Symbol("unknown intrinsic part");
@@ -9129,6 +9137,77 @@ function isAuxiliaryFailure(error) {
9129
9137
  } catch {}
9130
9138
  return false;
9131
9139
  }
9140
+ const CREATED_BEFORE_FAILURE = Symbol.for("cdkd.createdBeforeFailure");
9141
+ function markCreatedBeforeFailure(error, ownerLogicalId, resourceType, physicalId) {
9142
+ try {
9143
+ if (typeof error !== "object" || error === null || !Object.isExtensible(error)) return error;
9144
+ if (physicalId === "") return error;
9145
+ Object.defineProperty(error, CREATED_BEFORE_FAILURE, {
9146
+ value: Object.freeze({
9147
+ logicalId: ownerLogicalId,
9148
+ resourceType,
9149
+ physicalId
9150
+ }),
9151
+ enumerable: false,
9152
+ writable: false,
9153
+ configurable: true
9154
+ });
9155
+ } catch {}
9156
+ return error;
9157
+ }
9158
+ function createdMarkOn(link) {
9159
+ const value = link[CREATED_BEFORE_FAILURE];
9160
+ if (typeof value !== "object" || value === null) return void 0;
9161
+ const { logicalId, resourceType, physicalId } = value;
9162
+ if (typeof logicalId !== "string" || typeof resourceType !== "string" || typeof physicalId !== "string" || physicalId === "") return;
9163
+ return {
9164
+ logicalId,
9165
+ resourceType,
9166
+ physicalId
9167
+ };
9168
+ }
9169
+ function createdBeforeFailure(error, logicalId, resourceType) {
9170
+ try {
9171
+ let current = error;
9172
+ for (let depth = 0; depth < 10 && typeof current === "object" && current !== null; depth++) {
9173
+ const mark = createdMarkOn(current);
9174
+ if (mark) return mark.logicalId === logicalId && mark.resourceType === resourceType ? mark.physicalId : void 0;
9175
+ const own = Object.getOwnPropertyDescriptor(current, "logicalId");
9176
+ if (typeof own?.value === "string" && own.value !== logicalId && !isAuxiliaryMarkOf(current, logicalId)) return;
9177
+ current = current.cause;
9178
+ }
9179
+ } catch {}
9180
+ }
9181
+ function hasCreatedBeforeFailure(error) {
9182
+ try {
9183
+ let current = error;
9184
+ for (let depth = 0; depth < 10 && typeof current === "object" && current !== null; depth++) {
9185
+ if (createdMarkOn(current)) return true;
9186
+ current = current.cause;
9187
+ }
9188
+ } catch {}
9189
+ return false;
9190
+ }
9191
+ function carryCreatedBeforeFailure(from, to) {
9192
+ try {
9193
+ if (typeof to !== "object" || to === null) return to;
9194
+ let current = from;
9195
+ let mark;
9196
+ for (let depth = 0; depth < 10 && typeof current === "object" && current !== null && !mark; depth++) {
9197
+ mark = createdMarkOn(current);
9198
+ current = current.cause;
9199
+ }
9200
+ if (!mark) return to;
9201
+ let probe = to;
9202
+ for (let depth = 0; depth < 10 && typeof probe === "object" && probe !== null; depth++) {
9203
+ if (createdMarkOn(probe)) return to;
9204
+ probe = probe.cause;
9205
+ }
9206
+ return markCreatedBeforeFailure(to, mark.logicalId, mark.resourceType, mark.physicalId);
9207
+ } catch {
9208
+ return to;
9209
+ }
9210
+ }
9132
9211
  function markAuxiliaryFailure(error, ownerLogicalId) {
9133
9212
  try {
9134
9213
  let current = error;
@@ -9175,11 +9254,14 @@ async function withRetry(operation, logicalId, opts = {}) {
9175
9254
  let nameCooldownSleptMs = 0;
9176
9255
  let serverErrorRetries = 0;
9177
9256
  let replayMayCollide = false;
9257
+ let previousError;
9178
9258
  const settle = (error) => replayMayCollide ? markReplayMayCollide(markAuxiliaryFailure(error, RETRY_AUXILIARY_OWNER)) : error;
9179
9259
  for (let attempt = 0; attempt <= attemptCeiling; attempt++) try {
9180
9260
  return await operation();
9181
9261
  } catch (error) {
9182
9262
  lastError = error;
9263
+ const carried = carryCreatedBeforeFailure(previousError, error);
9264
+ if (hasCreatedBeforeFailure(carried) || !hasCreatedBeforeFailure(previousError)) previousError = carried;
9183
9265
  if (isAuxiliaryFailure(error) || hasReplayMayCollide(error) || isAmbiguousOutcomeError(error)) replayMayCollide = true;
9184
9266
  const message = describeAwsFailure(error).detail;
9185
9267
  const classifyText = retryClassificationText(error);
@@ -15663,6 +15745,16 @@ function malformedDestroyResourceEntriesRefusalMessage(rawStackName, rawRegion,
15663
15745
  const region = absentIfEmpty(rawRegion);
15664
15746
  return `${namedEntriesClause(stackName, region, logicalIds)} 'cdkd destroy' DELETES what this map names, so it refuses rather than continuing: a null row stops the run on a bare TypeError in the listing above the prompt; a false, 0 or empty-string row is SKIPPED as 'not found in state' and the record removed with its resource still live in AWS; and any other row it cannot read, unless its own deletion policy retains it, is routed to a provider on whatever its type field holds — nothing, or a non-string — with a physical id nothing checked, so its delete either fails on a type-lookup error that names the row but not what is wrong with its record, after every readable row not retained was deleted, or is counted done, the record removed and success reported with its resource still live. Nothing was deleted or written FOR THIS STACK. Repair the row first; 'cdkd state orphan' drops the whole record with every resource left standing, which is more than this row asks for. ${inspectClause(stackName, region, recovery)}Inspect the record with: ` + inspectCommand(stackName, region, recovery);
15665
15747
  }
15748
+ function refuseMalformedResourcePropertiesForDestroy(state, stackName, region, recovery) {
15749
+ const unreadable = unreadableResourcePropertyBags(state);
15750
+ if (unreadable.length === 0) return;
15751
+ throw markNonRetryable(new CdkdError(malformedDestroyResourcePropertiesRefusalMessage(stackName, region, unreadable, recovery), STATE_RESOURCES_MALFORMED));
15752
+ }
15753
+ function malformedDestroyResourcePropertiesRefusalMessage(rawStackName, rawRegion, logicalIds, recovery) {
15754
+ const stackName = absentIfEmpty(rawStackName);
15755
+ const region = absentIfEmpty(rawRegion);
15756
+ return `${namedPropertyBagsDiagnosis(stackName, region, logicalIds)} 'cdkd destroy' hands that map to the resource's delete, which reads keys off it — whether an RDS DB instance takes a final snapshot, whether an ECR repository is emptied first — so it refuses rather than continuing: the provider would get the torn value as it stands, and reading the map as EMPTY answers each of those keys as absent, a delete that fails or takes the wrong branch after every resource ordered before it was deleted. Nothing was deleted or written FOR THIS STACK. Repair the map first; 'cdkd state orphan' drops the whole record with every resource left standing, which is more than this asks for. ${inspectClause(stackName, region, recovery)}Inspect the record with: ` + inspectCommand(stackName, region, recovery);
15757
+ }
15666
15758
  function refuseMalformedResourceEntriesForImport(state, reimportedLogicalIds, stackName, region, recovery) {
15667
15759
  const reimported = new Set(reimportedLogicalIds);
15668
15760
  const unreadable = unreadableResourceEntries(state).filter((id) => !reimported.has(id));
@@ -21381,13 +21473,13 @@ function resolvesReference(desired, previous, mask) {
21381
21473
  rest = rest.slice(at + token.length);
21382
21474
  }
21383
21475
  literals.push(rest);
21384
- const pattern = literals.map(escapeRegExp).join("[\\s\\S]*");
21476
+ const pattern = literals.map(escapeRegExp$1).join("[\\s\\S]*");
21385
21477
  return new RegExp(`^${pattern}$`).test(desired);
21386
21478
  }
21387
21479
  function isPlainObject$1(value) {
21388
21480
  return typeof value === "object" && value !== null && !Array.isArray(value);
21389
21481
  }
21390
- function escapeRegExp(text) {
21482
+ function escapeRegExp$1(text) {
21391
21483
  return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
21392
21484
  }
21393
21485
 
@@ -21795,7 +21887,10 @@ function isCcConflict(error) {
21795
21887
  }
21796
21888
  var CloudControlProvider = class {
21797
21889
  cloudControlClient;
21798
- logger = getLogger().child("CloudControlProvider");
21890
+ baseLogger = getLogger().child("CloudControlProvider");
21891
+ get logger() {
21892
+ return idLogScope.getStore() ?? this.baseLogger;
21893
+ }
21799
21894
  patchGenerator = new JsonPatchGenerator();
21800
21895
  warnedUnresolvableSchemaTypes = /* @__PURE__ */ new Set();
21801
21896
  protectionFlips = new ProtectionFlipRegistry();
@@ -21810,7 +21905,12 @@ var CloudControlProvider = class {
21810
21905
  const awsClients = getAwsClients();
21811
21906
  this.cloudControlClient = awsClients.cloudControl;
21812
21907
  }
21813
- async create(logicalId, resourceType, properties) {
21908
+ async create(logicalId, resourceType, properties, context) {
21909
+ const mask = maskerOrIdentity(context?.maskSecrets);
21910
+ const idLog = new IdScrubLog(this.logger, mask, holdsSecretDerivedLeaf(properties, mask));
21911
+ return inIdLogScope(idLog, () => this.createInIdLogScope(logicalId, resourceType, properties, idLog));
21912
+ }
21913
+ async createInIdLogScope(logicalId, resourceType, properties, idLog) {
21814
21914
  this.logger.debug(`Creating resource ${logicalId} (${resourceType})`);
21815
21915
  try {
21816
21916
  const ccProperties = stringifyJsonProperties(resourceType, stripNullValues(properties));
@@ -21824,6 +21924,7 @@ var CloudControlProvider = class {
21824
21924
  this.logger.debug(`Create request submitted for ${logicalId}, token: ${createResponse.ProgressEvent.RequestToken}`);
21825
21925
  const progressEvent = await this.waitForOperation(createResponse.ProgressEvent.RequestToken, logicalId, "CREATE", resourceType);
21826
21926
  if (!progressEvent.Identifier) throw new ProvisioningError(`Failed to create resource ${logicalId}: No physical ID returned`, resourceType, logicalId);
21927
+ idLog.addId(progressEvent.Identifier);
21827
21928
  this.logger.debug(`Created resource ${logicalId}, physical ID: ${progressEvent.Identifier}`);
21828
21929
  const result = { physicalId: progressEvent.Identifier };
21829
21930
  if (progressEvent.ResourceModel) result.attributes = this.parseResourceModel(progressEvent.ResourceModel);
@@ -21831,6 +21932,7 @@ var CloudControlProvider = class {
21831
21932
  result.attributes = await this.enrichResourceAttributes(resourceType, progressEvent.Identifier, result.attributes);
21832
21933
  return result;
21833
21934
  } catch (error) {
21935
+ idLog.addId(identifierCarriedBy(error));
21834
21936
  await this.cleanupFailedCreateRemnant(error, resourceType, logicalId);
21835
21937
  this.handleError(error, "CREATE", resourceType, logicalId);
21836
21938
  }
@@ -21851,7 +21953,10 @@ var CloudControlProvider = class {
21851
21953
  } catch (cleanupError) {
21852
21954
  const message = cleanupError instanceof Error ? cleanupError.message : String(cleanupError);
21853
21955
  if (isWaitAbandonedError(cleanupError)) {
21854
- this.logger.warn(`Could not confirm whether the remnant ${error.physicalId} left by the failed CREATE of ${logicalId} was removed (a retry may fail with AlreadyExists until it is removed manually): ${displaySafe(message)}`);
21956
+ const line = `Could not confirm whether the remnant ${error.physicalId} left by the failed CREATE of ${logicalId} was removed (a retry may fail with AlreadyExists until it is removed manually): ${displaySafe(message)}`;
21957
+ const log = this.logger;
21958
+ if (log instanceof IdScrubLog) log.warnKeepingResume(line, abandonedRequestTokens(cleanupError));
21959
+ else log.warn(line);
21855
21960
  return;
21856
21961
  }
21857
21962
  if (isNotFoundMessage(message)) {
@@ -21862,7 +21967,12 @@ var CloudControlProvider = class {
21862
21967
  }
21863
21968
  }
21864
21969
  async update(logicalId, physicalId, resourceType, properties, previousProperties, context) {
21865
- const idLog = updateIdLogSink(this.logger, physicalId, properties, previousProperties, context?.maskSecrets);
21970
+ const mask = maskerOrIdentity(context?.maskSecrets);
21971
+ const idLog = new IdScrubLog(this.logger, mask, holdsSecretDerivedLeaf(properties, mask) || holdsSecretDerivedLeaf(previousProperties, mask));
21972
+ idLog.addId(physicalId);
21973
+ return inIdLogScope(idLog, () => this.updateInIdLogScope(logicalId, physicalId, resourceType, properties, previousProperties, context, idLog));
21974
+ }
21975
+ async updateInIdLogScope(logicalId, physicalId, resourceType, properties, previousProperties, context, idLog) {
21866
21976
  idLog.debug(`Updating resource ${logicalId} (${resourceType}), physical ID: ${physicalId}`);
21867
21977
  await this.assertRecordedRegionAgainstClient("pre-update", context?.expectedRegion, resourceType, logicalId, physicalId);
21868
21978
  try {
@@ -21936,26 +22046,41 @@ var CloudControlProvider = class {
21936
22046
  this.handleError(error, "UPDATE", resourceType, logicalId, physicalId);
21937
22047
  }
21938
22048
  }
21939
- async delete(logicalId, physicalId, resourceType, _properties, context) {
22049
+ async delete(logicalId, physicalId, resourceType, properties, context) {
22050
+ const mask = maskerOrIdentity(void 0);
22051
+ const idLog = new IdScrubLog(this.logger, mask, holdsSecretDerivedLeaf(properties, mask));
22052
+ idLog.addId(physicalId);
22053
+ const result = await inIdLogScope(idLog, () => this.deleteInIdLogScope(logicalId, physicalId, resourceType, properties, context));
22054
+ if (!idLog.withheld || !result) return result;
22055
+ return {
22056
+ ...result,
22057
+ ...result.outcome === "skipped" && { reason: idLog.scrub(result.reason) },
22058
+ ...Array.isArray(result.indeterminateGuards) && { indeterminateGuards: result.indeterminateGuards.map((guard) => ({
22059
+ ...guard,
22060
+ reason: idLog.scrub(guard.reason)
22061
+ })) }
22062
+ };
22063
+ }
22064
+ async deleteInIdLogScope(logicalId, physicalId, resourceType, properties, context) {
21940
22065
  this.logger.debug(`Deleting resource ${logicalId} (${resourceType}), physical ID: ${physicalId}`);
21941
22066
  if (context?.finalSnapshotIdentifier !== void 0) throw new ProvisioningError(`${logicalId} (${resourceType}) requires a final snapshot (DeletionPolicy: Snapshot), but the Cloud Control API delete route has no final-snapshot parameter. Re-run with --skip-final-snapshot after snapshotting manually, or retain the resource.`, resourceType, logicalId, physicalId);
21942
22067
  await this.assertRecordedRegionAgainstClient("pre-delete", context?.expectedRegion, resourceType, logicalId, physicalId);
21943
22068
  const indeterminateGuard = await this.confirmDeleteTargetIdentity(logicalId, resourceType, physicalId, context);
21944
22069
  if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
21945
22070
  this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
21946
- const { ASGProvider } = await import("./asg-provider-DQkUXvQl.js");
22071
+ const { ASGProvider } = await import("./asg-provider-CbwOK2TQ.js");
21947
22072
  const delegateRegion = ambientRegion();
21948
22073
  let asgProvider = this.asgDeleteDelegates.get(delegateRegion);
21949
22074
  if (asgProvider === void 0) {
21950
22075
  asgProvider = new ASGProvider();
21951
22076
  this.asgDeleteDelegates.set(delegateRegion, asgProvider);
21952
22077
  }
21953
- return withIndeterminateGuard(await asgProvider.delete(logicalId, physicalId, resourceType, _properties, context), indeterminateGuard);
22078
+ return withIndeterminateGuard(await asgProvider.delete(logicalId, physicalId, resourceType, properties, context), indeterminateGuard);
21954
22079
  }
21955
22080
  if ((context?.deletionPolicy === "Delete" || context?.skipFinalSnapshot === true) && SDK_DELETE_FAMILIES.has(resourceType)) {
21956
- if (deletesThroughSdkProvider(resourceType, _properties)) {
22081
+ if (deletesThroughSdkProvider(resourceType, properties)) {
21957
22082
  const delegate = await this.sdkDeleteDelegateInCcRegion(resourceType, logicalId, physicalId);
21958
- return withIndeterminateGuard(await delegate.delete(logicalId, physicalId, resourceType, _properties, context), indeterminateGuard);
22083
+ return withIndeterminateGuard(await delegate.delete(logicalId, physicalId, resourceType, properties, context), indeterminateGuard);
21959
22084
  }
21960
22085
  this.logger.warn(safeMsg`${logicalId} (${resourceType}) records a GlobalClusterIdentifier cdkd cannot detach it from, so it is deleted through ` + `Cloud Control, which handles the global-cluster membership. Its handler ` + safeMsg`can take a manual final snapshot of ${physicalId}, which cdkd does not record; ` + `delete it yourself if you do not want it.`);
21961
22086
  }
@@ -22049,7 +22174,7 @@ var CloudControlProvider = class {
22049
22174
  const family = SDK_DELETE_FAMILIES.get(resourceType);
22050
22175
  const cached = this.sdkDeleteDelegates.get(family);
22051
22176
  if (cached !== void 0 && cached.region === ccRegion) return cached.provider;
22052
- const provider = family === "rds" ? new (await (import("./rds-provider-xB2NA923.js"))).RDSProvider({ region: ccRegion }) : new (await (import("./neptune-provider-B51VlQxH.js"))).NeptuneProvider({ region: ccRegion });
22177
+ const provider = family === "rds" ? new (await (import("./rds-provider-COCDd7bS.js"))).RDSProvider({ region: ccRegion }) : new (await (import("./neptune-provider-TnGNCeLX.js"))).NeptuneProvider({ region: ccRegion });
22053
22178
  this.sdkDeleteDelegates.set(family, {
22054
22179
  region: ccRegion,
22055
22180
  provider
@@ -22752,20 +22877,94 @@ var CloudControlProvider = class {
22752
22877
  return masked;
22753
22878
  }
22754
22879
  };
22755
- function updateIdLogSink(logger, physicalId, properties, previousProperties, maskSecrets) {
22756
- const mask = maskerOrIdentity(maskSecrets);
22757
- const raw = updateIdWithheld(properties, previousProperties, mask) ? [physicalId, ...physicalId.split("|")].filter((needle) => needle !== "") : [];
22758
- const masked = raw.map((needle) => mask(needle));
22759
- const needles = [.../* @__PURE__ */ new Set([...raw, ...masked.filter((m, i) => m !== "" && m !== raw[i] && m !== "***")])].sort((a, b) => b.length - a.length);
22760
- const scrub = (message) => needles.reduce((text, needle) => text.split(needle).join("***"), mask(message));
22761
- return {
22762
- debug: (message) => logger.debug(scrub(message)),
22763
- warn: (message) => logger.warn(scrub(message)),
22764
- withheld: needles.length > 0
22765
- };
22880
+ var IdScrubLog = class {
22881
+ needles = [];
22882
+ base;
22883
+ mask;
22884
+ evidence;
22885
+ constructor(base, mask, evidence) {
22886
+ this.base = base;
22887
+ this.mask = mask;
22888
+ this.evidence = evidence;
22889
+ }
22890
+ get withheld() {
22891
+ return this.needles.length > 0;
22892
+ }
22893
+ addId(id) {
22894
+ if (!this.evidence || id === void 0 || id === "") return;
22895
+ const parts = [id, ...id.split("|")].filter((needle) => needle !== "");
22896
+ const raw = [...new Set(parts.flatMap((part) => [
22897
+ part,
22898
+ displaySafe(part),
22899
+ displaySafe(part, { asciiOnly: true })
22900
+ ]))].filter((needle) => needle !== "" && needle !== "***");
22901
+ const masked = raw.map((needle) => this.mask(needle));
22902
+ this.needles = [.../* @__PURE__ */ new Set([
22903
+ ...this.needles,
22904
+ ...raw,
22905
+ ...masked.filter((m, i) => m !== "" && m !== raw[i] && m !== "***")
22906
+ ])].sort((a, b) => b.length - a.length);
22907
+ }
22908
+ scrub = (text) => this.needles.reduce((out, needle) => out.split(needle).join("***"), this.mask(text));
22909
+ scrubKeepingResume(text, requestTokens) {
22910
+ const tokens = requestTokens.filter((token) => token !== "");
22911
+ if (tokens.length === 0) return this.scrub(text);
22912
+ const keep = new RegExp(`(${[RESUME_COMMAND.source, ...tokens.map(escapeRegExp)].join("|")})`);
22913
+ return text.split(keep).map((segment, i) => i % 2 === 1 ? this.mask(segment) : this.scrub(segment)).join("");
22914
+ }
22915
+ scrubError(error) {
22916
+ if (this.needles.length === 0 || !(error instanceof Error)) return error;
22917
+ const original = errorCauseChain(error);
22918
+ const tokens = abandonedRequestTokens(error);
22919
+ const scrubbed = maskSecretsInError(error, /* @__PURE__ */ new Map(), (text) => this.scrubKeepingResume(text, tokens));
22920
+ const clones = errorCauseChain(scrubbed);
22921
+ original.forEach((link, i) => {
22922
+ const clone = clones[i];
22923
+ if (clone === void 0 || clone === link) return;
22924
+ for (const key of VERBATIM_ERROR_FIELDS) {
22925
+ const descriptor = Object.getOwnPropertyDescriptor(link, key);
22926
+ if (descriptor === void 0 || typeof descriptor.value !== "string") continue;
22927
+ try {
22928
+ Object.defineProperty(clone, key, descriptor);
22929
+ } catch {}
22930
+ }
22931
+ });
22932
+ return scrubbed;
22933
+ }
22934
+ warnKeepingResume(message, requestTokens) {
22935
+ this.base.warn(this.scrubKeepingResume(message, requestTokens));
22936
+ }
22937
+ debug(message) {
22938
+ this.base.debug(this.scrub(message));
22939
+ }
22940
+ info(message) {
22941
+ this.base.info(this.scrub(message));
22942
+ }
22943
+ warn(message) {
22944
+ this.base.warn(this.scrub(message));
22945
+ }
22946
+ error(message) {
22947
+ this.base.error(this.scrub(message));
22948
+ }
22949
+ };
22950
+ const VERBATIM_ERROR_FIELDS = ["logicalId", "resourceType"];
22951
+ function escapeRegExp(text) {
22952
+ return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
22953
+ }
22954
+ const RESUME_COMMAND = /aws(?: --profile (?:'(?:[^'\n]|'\\'')*'|\S+))? cloudcontrol get-resource-request-status --request-token \S+(?: --region \S+)?/;
22955
+ function abandonedRequestTokens(error) {
22956
+ return error instanceof Error ? errorCauseChain(error).flatMap((link) => link instanceof CloudControlWaitAbandonedError ? [link.requestToken] : []) : [];
22766
22957
  }
22767
- function updateIdWithheld(properties, previousProperties, mask) {
22768
- return holdsSecretDerivedLeaf(properties, mask) || holdsSecretDerivedLeaf(previousProperties, mask);
22958
+ const idLogScope = new AsyncLocalStorage();
22959
+ async function inIdLogScope(idLog, fn) {
22960
+ try {
22961
+ return await idLogScope.run(idLog, fn);
22962
+ } catch (error) {
22963
+ throw idLog.scrubError(error);
22964
+ }
22965
+ }
22966
+ function identifierCarriedBy(error) {
22967
+ return error instanceof ProvisioningError ? error.physicalId : void 0;
22769
22968
  }
22770
22969
  function holdsSecretDerivedLeaf(value, mask, depth = 0) {
22771
22970
  if (typeof value === "string") return isSecretDerivedValue(value, mask);
@@ -28154,6 +28353,15 @@ function classifyFailedOp(op, stateResources) {
28154
28353
  const current = stateResources[op.logicalId];
28155
28354
  if (op.changeType === "CREATE") {
28156
28355
  if (!op.physicalId) return "skip-failed-unknown";
28356
+ if (op.physicalIdRecoveredFromError === false) return "skip-failed-superseded";
28357
+ if (op.physicalIdRecoveredFromError === true) {
28358
+ if (current) return current.physicalId === op.physicalId ? "skip-failed-noop" : "skip-failed-mismatch";
28359
+ if (stateHoldsPhysicalId(stateResources, op.resourceType, op.physicalId)) return "skip-failed-noop";
28360
+ const orphanPolicy = effectiveDeletionPolicy(op.resourceType, op.deletionPolicy, op.attemptedProperties);
28361
+ if (orphanPolicy === "Retain") return "orphan-failed-create-retain";
28362
+ if (orphanPolicy === "Snapshot") return "delete-failed-create-with-final-snapshot";
28363
+ return "delete-failed-create";
28364
+ }
28157
28365
  if (!current) return "skip-failed-noop";
28158
28366
  if (current.physicalId !== op.physicalId) return "skip-failed-mismatch";
28159
28367
  const policy = effectiveDeletionPolicy(current.resourceType, current.deletionPolicy, current.properties);
@@ -28165,6 +28373,28 @@ function classifyFailedOp(op, stateResources) {
28165
28373
  if (isTypeChangeOp(op)) return "skip-failed-type-change";
28166
28374
  return "revert-failed-update";
28167
28375
  }
28376
+ function stateHoldsPhysicalId(stateResources, resourceType, physicalId) {
28377
+ return Object.values(stateResources).some((r) => r?.resourceType === resourceType && r.physicalId === physicalId);
28378
+ }
28379
+ function demoteSupersededOrphans(segments, orphans = []) {
28380
+ let demoted = 0;
28381
+ segments.forEach((segment, s) => {
28382
+ for (const op of segment.failedOperations ?? []) {
28383
+ if (op.changeType !== "CREATE" || op.physicalIdRecoveredFromError !== true) continue;
28384
+ if (segments.slice(s + 1).some((t) => (t.operations ?? []).some((o) => mayOwn(o, op, true)) || (t.failedOperations ?? []).some((o) => mayOwn(o, op, false))) || segments.slice(s).some((t) => t.supersededLogicalIds?.includes(op.logicalId) === true) || orphans.some((o) => o?.logicalId === op.logicalId || o?.state?.resourceType === op.resourceType && o.state?.physicalId === op.physicalId)) {
28385
+ op.physicalIdRecoveredFromError = false;
28386
+ demoted++;
28387
+ }
28388
+ }
28389
+ });
28390
+ return demoted;
28391
+ }
28392
+ function mayOwn(o, orphan, completed) {
28393
+ if (o?.resourceType !== orphan.resourceType) return false;
28394
+ if (completed && o.changeType === "CREATE") return true;
28395
+ if (o.physicalId === orphan.physicalId) return true;
28396
+ return o.previousState?.physicalId === orphan.physicalId;
28397
+ }
28168
28398
  function planFailedOps(failedOps, stateResources) {
28169
28399
  return failedOps.map((op) => ({
28170
28400
  op,
@@ -28997,6 +29227,10 @@ async function replayFailedOperationsUnbound(failedOps, stateResources, stackNam
28997
29227
  logger.warn(safeMsg` Rollback: Skipping failed CREATE of ${shownLogicalId(op.logicalId)} (${refusalResourceType(op.resourceType)}) — it recorded ${mask(String(op.physicalId))}, which is not the resource state tracks under this id; manual attention may be required`);
28998
29228
  recordRollbackSkip(skipScope, op, "The failed CREATE recorded a physical id other than the one state now tracks under this logical id, so the rollback left it as it is; manual attention may be required.");
28999
29229
  break;
29230
+ case "skip-failed-superseded":
29231
+ logger.warn(safeMsg` Rollback: Skipping failed CREATE of ${shownLogicalId(op.logicalId)} (${refusalResourceType(op.resourceType)}) — it created ${mask(String(op.physicalId))} before failing, and a later deploy or rollback may own a resource under that id now; if it is not in use, delete it manually`);
29232
+ recordRollbackSkip(skipScope, op, "The failed CREATE created its resource before failing, but a later deploy or rollback may own a resource under that id now, so the rollback left it as it is; manual attention may be required.");
29233
+ break;
29000
29234
  case "skip-failed-unknown":
29001
29235
  logger.warn(` Rollback: failed CREATE of ${safe(op.logicalId)} (${safe(op.resourceType)}) recorded no physical id — if it was partially created in AWS, delete it manually`);
29002
29236
  recordRollbackSkip(skipScope, op, "The failed CREATE recorded no physical id, so the rollback cannot address it; if it was partially created in AWS, delete it manually.");
@@ -29024,7 +29258,7 @@ async function replayFailedOperationsUnbound(failedOps, stateResources, stackNam
29024
29258
  }
29025
29259
  delete stateResources[op.logicalId];
29026
29260
  await noteRetainedResource(op.resourceType, op.logicalId);
29027
- logger.info(` Rollback: leaving partially-created ${safe(op.logicalId)} (${safe(op.resourceType)}) in AWS (DeletionPolicy: Retain) — removed from state`);
29261
+ logger.info(` Rollback: leaving partially-created ${safe(op.logicalId)} (${safe(op.resourceType)}) in AWS (DeletionPolicy: Retain)` + (failedCreateRecord ? " — removed from state" : " — it was never in state"));
29028
29262
  await options.afterOp?.(op.logicalId);
29029
29263
  ctx.recordEvent?.({
29030
29264
  eventType: "ROLLBACK_RESOURCE_SUCCEEDED",
@@ -29165,7 +29399,7 @@ async function replayFailedOperationsUnbound(failedOps, stateResources, stackNam
29165
29399
  error: maskedRollbackEventError(revertError, mask)
29166
29400
  });
29167
29401
  }
29168
- inlinePolicyWriters.noteOutcome(op, action === "skip-failed-noop" || action === "skip-failed-mismatch" || ownRecord(stateResources, op.logicalId) !== recordBefore);
29402
+ inlinePolicyWriters.noteOutcome(op, action === "skip-failed-noop" || action === "skip-failed-mismatch" || action === "skip-failed-superseded" || ownRecord(stateResources, op.logicalId) !== recordBefore);
29169
29403
  }
29170
29404
  if (result.interrupted) await restoreHeldInlinePolicies(inlinePolicyWriters, stateResources, stackName, ctx, result, { refuseAll: true });
29171
29405
  if (emitEnvelope) ctx.recordEvent?.({
@@ -30850,6 +31084,7 @@ function priorAttemptsInJournal(journal, logicalId, resourceType) {
30850
31084
  }
30851
31085
  function recordedAsNewResource(op) {
30852
31086
  if (typeof op.physicalId !== "string" || op.physicalId === "") return false;
31087
+ if (op.physicalIdRecoveredFromError === true) return false;
30853
31088
  if (op.changeType === "CREATE") return true;
30854
31089
  const previous = op.previousState?.physicalId;
30855
31090
  return typeof previous === "string" && previous !== op.physicalId;
@@ -34979,15 +35214,20 @@ async function executeDeployment(template, currentState, changes, dag, execution
34979
35214
  this.interrupted = true;
34980
35215
  this.interruptCause ??= "sibling-failure";
34981
35216
  const refused = isRefusedBeforeApplying(provisionError, logicalId);
34982
- const physicalId = newResources[logicalId]?.physicalId ?? previousState?.physicalId;
34983
- if (refused && change.changeType === "CREATE" && physicalId === void 0) throw provisionError;
35217
+ const statePhysicalId = newResources[logicalId]?.physicalId ?? previousState?.physicalId;
35218
+ if (refused && change.changeType === "CREATE" && statePhysicalId === void 0) throw provisionError;
35219
+ const createdId = change.changeType === "CREATE" && statePhysicalId === void 0 ? createdBeforeFailure(provisionError, logicalId, change.resourceType) : void 0;
34984
35220
  failedOperations.push({
34985
35221
  logicalId,
34986
35222
  changeType: change.changeType,
34987
35223
  resourceType: change.resourceType,
34988
- provisionedBy: newResources[logicalId]?.provisionedBy ?? previousState?.provisionedBy,
35224
+ provisionedBy: createdId !== void 0 ? "sdk" : newResources[logicalId]?.provisionedBy ?? previousState?.provisionedBy,
34989
35225
  ...previousState && { previousState },
34990
- physicalId,
35226
+ physicalId: createdId ?? statePhysicalId,
35227
+ ...createdId !== void 0 && {
35228
+ physicalIdRecoveredFromError: true,
35229
+ deletionPolicy: journaledOrphanPolicy(this.extractTemplateAttributes(template, logicalId).deletionPolicy)
35230
+ },
34991
35231
  ...!refused && { attemptedProperties: this.attemptedResolvedProps.get(logicalId) }
34992
35232
  });
34993
35233
  throw provisionError;
@@ -35265,6 +35505,10 @@ async function persistStateAfterOutputFailure(stackName, currentState, newResour
35265
35505
  }
35266
35506
  }
35267
35507
  }
35508
+ function journaledOrphanPolicy(policy) {
35509
+ if (policy === void 0) return void 0;
35510
+ return policy === "Delete" || policy === "Retain" || policy === "Snapshot" || policy === "RetainExceptOnCreate" ? policy : "Retain";
35511
+ }
35268
35512
 
35269
35513
  //#endregion
35270
35514
  //#region src/provisioning/canonicalize-properties.ts
@@ -36654,5 +36898,5 @@ DeployEngine.prototype.replacementNameOrigin = replacementNameOrigin;
36654
36898
  DeployEngine.prototype.orphanedNameCollisionAdvice = orphanedNameCollisionAdvice;
36655
36899
 
36656
36900
  //#endregion
36657
- export { resourcesNamingDeclaredParameter as $, wholeStringLeavesOf as $a, isWarmThroughputDecrease as $i, explicitRoleArnOrThrow as $n, partitionSensitiveEnv as $o, malformedOutputsWarning as $r, noEchoParameterValueSeed as $t, resolveDynamoDbDeleteBudgetClock as A, printingCorpusOf as Aa, repairMalformedOrphanRecordsForReadOnly as Ai, ccProtectionRegistryTypes as An, rewriteTemplateAssetReferences as Ao, STATE_REGION_DIVERGED as Ar, expectedOwnerParam as As, ccRoutedFinalSnapshotError as At, getPriorAttempts as B, scrubResourceRecord as Ba, findSilentDropProperties as Bi, isTerminationProtectionPropagationError as Bn, validateContainerRepoName as Bo, isReadableResourceEntry as Br, nullPrototypeRecord as Bs, updatePartialMessage as Bt, perType as C, inheritNestedStackParameterAssociations as Ca, refuseMalformedResourcePropertiesForDrift as Ci, ProviderRegistry as Cn, AssetPublisher as Co, isStalePlaceholderArnAttribute as Cr, CFN_TEMPLATE_BODY_LIMIT as Cs, resolveReplacementOldType as Ct, beginDeleteWait as D, hasMaskableValues as Da, refuseMalformedResourcesForDestroy as Di, getCurrentResourceSecrets as Dn, buildAssetRedirectMap as Do, parameterInputsFor as Dr, uploadCfnTemplate as Ds, ATOMIC_FINAL_SNAPSHOT_TYPES as Dt, DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS as E, createUnionSecretMasker as Ea, refuseMalformedResourcesForDeploy as Ei, isCustomResourceType as En, WorkGraph as Eo, withSharedDrainBudget as Er, findLargeInlineResources as Es, inheritProducerRegions as Et, waitForIndexesSettled as F, errorCauseChain as Fa, repairMalformedResourcesForReadOnly as Fi, withIndeterminateGuard as Fn, getBootstrapMarkerKey as Fo, displayLogicalId as Fr, StageLoadError as Fs, unsupportedFinalSnapshotError as Ft, cyan as G, pathCrossesDottedKey as Ga, findReplacedReadersOfRecreateTargets as Gi, INTRINSIC_KEYS as Gn, describeDockerExecFailure as Go, malformedLocalResourceEntriesWarning as Gr, renderAssemblyPathEscape as Gs, WITHHELD_NAME_DISPLAY as Gt, formatResourceLine as H, DYNAMIC_REFERENCE_TOKEN_SCAN as Ha, withoutSilentDropProperties as Hi, reDisableInstanceApiTermination as Hn, buildDockerImage as Ho, malformedExportNamesWarning as Hr, absoluteAssemblyPathEscape as Hs, DeploymentEventsReader as Ht, ECR_AUTO_DELETE_IMAGES_TAG as I, maskSecretsInError as Ia, unpreviewableOrphanRecords as Ii, isWaitAbandonedError as In, isCrossRegionRedirect as Io, hasReadableOrphans as Ir, processStackMessages as Is, REDACTED_DELETE_ADDRESS_SKIP_REASON as It, red as J, provenPublicValue as Ja, isStatefulRecreateTargetForReplace as Ji, producerRegionsFromState as Jn, finchSecretArgvRefusal as Jo, malformedOrphanRecordsWarning as Jr, resolveBucketRegion as Js, secretBearing as Jt, gray as K, identityKeyFor as Ka, shownType as Ki, IntrinsicFunctionResolver as Kn, describeDockerFailure as Ko, malformedLocalResourcesWarning as Kr, resolveAssemblyPath as Ks, displayTextOrWithheld as Kt, S3_AUTO_DELETE_OBJECTS_TAG as L, maskSecretsInText as La, unreadableOrphanRecords as Li, markWaitAbandoned as Ln, parseBootstrapMarker as Lo, hasReadableOutputs as Lr, defineOwnKey as Ls, isRedactedRecordedValue as Lt, DELETE_INDEX_WAIT_PROCEED_NOTE as M, recordLogOnlyValue as Ma, repairMalformedOutputsForReadOnly as Mi, UNSPECIFIED_SKIP_REASON as Mn, BOOTSTRAP_MARKER_PREFIX as Mo, UNREADABLE_ORPHANS_CONTAINER_ROW as Mr, canonicalizeRegion as Ms, effectiveDeletionPolicy as Mt, INDEX_SETTLE_POLL_INTERVAL_MS as N, shareLogOnlyValues as Na, repairMalformedResourceEntriesForReadOnly as Ni, deleteIndeterminateGuards as Nn, assertAssetBucketRegion as No, UNREADABLE_RESOURCES_MAP_ROW as Nr, derivePartitionAndUrlSuffix as Ns, isFinalSnapshotError as Nt, compensateRemovedDeletionProtection as O, literalSplitDelimitersOf as Oa, refuseMalformedResourcesForExport as Oi, CloudControlProvider as On, createAssetRedirectResolver as Oo, passedParameterClassesOf as Or, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as Os, PRE_DELETE_SNAPSHOT_TYPES as Ot, deleteTableWithIndexBusyRetry as P, createSecretMasker as Pa, repairMalformedResourcePropertiesForReadOnly as Pi, deleteSkipReason as Pn, ensureAssetStorage as Po, deployRefusesOrphanRowsReason as Pr, AssemblyReader as Ps, refusesFinalSnapshot as Pt, reachableDivergentParameters as Q, recordProvenPublicExpression as Qa, coerceWarmThroughput as Qi, assertSendableRoleArn as Qn, isMalformedEnvKey as Qo, malformedOutputsRefusalMessage as Qr, isWholeDynamicReferenceValue as Qt, hasCdkAutoDeleteTag as R, markSameGenerationBag as Ra, unreadableResourceEntries as Ri, disableInstanceApiTermination as Rn, readBootstrapMarkerBody as Ro, hasReadableResources as Rr, hasOwnKey as Rs, redactedDeleteAddressFields as Rt, isProtectionValueActive as S, liveMatchesUnresolvedTokenFrame as Sa, refuseMalformedResourceEntriesForOrphan as Si, CC_BROKEN_REASON as Sn, shouldRetainResource as So, cfnRefValueFromPhysicalId as Sr, ssmResolvedValueType as Ss, planRollback as St, DynamoDBGlobalTableProvider as T, carryLogOnlyValues as Ta, refuseMalformedResourcePropertiesForOrphan as Ti, wouldReturnToSdkProvider as Tn, stringifyValue as To, parseWebACLArn as Tr, MIGRATE_TMP_PREFIX as Ts, getCurrentProducerRegions as Tt, createReadOnlyAttributeHealerFactory as U, dynamicReferenceTokens as Ua, NO_CC_HANDLERS_REASON as Ui, reEnableInstanceApiTermination as Un, resolveDockerContextDirectory as Uo, malformedExportSourceWarning as Ur, describeFileReadFailure as Us, DeploymentEventsStore as Ut, markRefusedBeforeApplying as V, recoverMaskedOutput as Va, unwrittenCreateOnlyReplacement as Vi, observeThenDisableInstanceApiTermination as Vn, buildDenyExternalAccessPolicy as Vo, malformedDriftResourcePropertiesWarning as Vr, ownValue as Vs, updatePartialReason as Vt, bold as W, isUncertifiedBaselineMaskPosition as Wa, hasNoCloudControlHandlers as Wi, DiffCalculator as Wn, describeDockerCapturedOutput as Wo, malformedLocalOutputsWarning as Wr, displayAssemblyPath as Ws, extractDeploymentEventError as Wt, computeParameterTaint as X, recordMaskOnlyValuesIn as Xa, renderStatefulReason as Xi, applyRoleArnIfSet as Xn, getDockerCmd as Xo, malformedOrphansRefusalMessage as Xr, secretSafeKeyDisplay as Xt, yellow as Y, recordMaskOnlyValue as Ya, isStatefulRecreateTargetSync as Yi, regionLessSecretName as Yn, formatDockerLoginError as Yo, malformedOrphanRowsKeptWarning as Yr, secretBearingStateKeyWarning as Yt, namesAnyDeclaredParameter as Z, recordNoEchoAttributeValues as Za, WARM_THROUGHPUT_MEMBERS as Zi, assertFlagRoleArn as Zn, isDockerClientEnvKey as Zo, malformedOrphansWarning as Zr, exportNameSecretExposure as Zt, makeCanonicalizePropertiesFn as _, canonicalLambdaFunctionName as _a, refuseMalformedResourceEntries as _i, refuseMalformedDesiredTags as _n, importableOutputKeys as _o, carriesDynamicReference as _r, resolveStateBucketWithDefault as _s, destroyStackRecordsView as _t, findNestedTemplateTreeDefect as a, configIntegerRefusal as aa, malformedStateRefusalMessage as ai, DEFAULT_RESOURCE_WARN_AFTER_MS as an, isSingleDynamicReferenceToken as ao, envCredentialsAreAssumedRole as ar, escapeRegExp$2 as as, dropSettledNestedJournals as at, recordedProtectionNote as b, DagBuilder as ba, refuseMalformedResourceEntriesForImport as bi, definedAttributes as bn, orphansAfterRollback as bo, keepsSecretReferenceToken as br, stateBucketExistenceConfirmed as bs, recordAfterRollbackUpdate as bt, renderNestedTemplateTreeDefect as c, replayWarn as ca, refuseMalformedNestedChildOutputs as ci, earliestDefined as cn, S3StateBackend as co, s3BucketDomainName as cr, getDockerImageBySourceHash as cs, recordDisplacedSkips as ct, conditionInputsFrom as d, requireConfigString as da, refuseMalformedOrphans as di, withCreateTokenLedger as dn, acceptedCreateOnlyDropsOf as do, s3BucketWebsiteUrl as dr, getDefaultStateBucketName as ds, withNestedRevertRun as dt, toCfnInteger as ea, malformedRenderedContainersWarning as ei, collectDeclaredOutputNames as en, STATE_SOURCED_BASELINE_RULES as eo, isIamRoleArn as er, redactDockerArgvValues as es, makeSiblingClaimReader as et, parentSuppliedValues as f, prefetchCreateOnlyPropertyPaths as fa, refuseMalformedOrphansForDestroy as fi, acquireIdempotencyToken as fn, describeRegionValueKind as fo, coerceParameterTypedValue as fr, getLegacyStateBucketName as fs, getCurrentNestedStackContext as ft, mergeNoChangeOutputs as g, markAuxiliaryFailure as ga, refuseMalformedResourceAttributesForOrphan as gi, readTagList as gn, hasUnverifiableParameterRefusal as go, isImpossibleEmptyStoredAttribute as gr, resolveSkipPrefix as gs, awaitInFlightSibling as gt, keptWholeReasonText as h, withRetry as ha, refuseMalformedOutputsForDestroy as hi, planTagDiff as hn, hasReasonlessBaselineRefusal as ho, getAccountInfo as hr, resolveCaptureObservedState as hs, replayRollback as ht, childTemplateLoader as i, configBooleanRefusal as ia, malformedScrubResourceEntriesRefusalMessage as ii, DEFAULT_RESOURCE_TIMEOUT_MS as in, WHOLE_DYNAMIC_REFERENCE_PATTERN as io, callerEnvCredentials as ir, warnFinchArgvExposure as is, displacedPhysicalIdShown as it, resolveDynamoDbDeleteBudgetMs as j, recordLogOnlyParameterValue as ja, repairMalformedOrphansForReadOnly as ji, unchangedBehindSecretReference as jn, AssetModeResolver as jo, STATE_RESOURCES_MALFORMED as jr, PARTITION_TABLE as js, createPreDeleteFinalSnapshot as jt, deleteBudgetKey as k, logOnlyValueCount as ka, refuseMalformedState as ki, slowCcOperationTimeoutMs as kn, loadPublishableAssetManifest as ko, JSON_LISTING_HOLE_VALUE as kr, decodeListingKey as ks, buildFinalSnapshotIdentifier as kt, templateIdentity as l, requireConfigArray as la, refuseMalformedOrphanRecords as li, ledgerForStack as ln, rebuildClientForBucketRegion as lo, s3BucketDualStackDomainName as lr, Synthesizer as ls, revertNestedChildFromJournal as lt, isSecretBearingReferenceString as m, describeTypeWithThrottleRetry as ma, refuseMalformedOutputs as mi, DBPROXY_TAG_OPTIONS as mn, hasReadableExportSet as mo, parameterTypeMayLoseSecretIdentity as mr, resolveAutoAssetStorage as ms, replayFailedOperations as mt, IMPLICIT_DELETE_DEPENDENCIES as n, coerceCfnBoolean as na, malformedResourcePropertiesWarning as ni, isExportAliasCollision as nn, STATE_SOURCED_READBACK_RULES as no, AWS_CREDENTIAL_ENV_KEYS as nr, runDockerForeground as ns, NESTED_PENDING_PARENT_REASON as nt, isAbsoluteAssetPath as o, configStringRefusal as oa, previewableOrphanRecords as oi, maskingRetryLogger as on, LockManager as oo, isSettledInstanceState as or, stripControlChars as os, getNestedRevertRun as ot, readRecordedConditionVerdicts as p, templateResourceTypes as pa, refuseMalformedOrphansForOrphan as pi, DBPROXY_TAGS_WHAT as pn, exportNamesCarriedFrom as po, isUnboundTemplateParameter as pr, resolveApp as ps, withNestedStackContext as pt, green as q, carriesSecretMask as qa, MULTI_REGION_RECREATE_BLOCKED_TYPES as qi, classifyReplaySecretRegion as qn, dockerSpawnEnvWithSensitive as qo, malformedOrphanRecordsRefusalMessage as qr, clearBucketRegionCache as qs, exportAliasCollisionScrubWarning as qt, computeImplicitDeleteEdges as r, coerceCfnInteger as ra, malformedResourcesWarning as ri, bindingSkippedOutputs as rn, TEMPLATE_SOURCED_RULES as ro, applyCallerIdentityCredentials as rr, runDockerStreaming as rs, displacedOpClause as rt, listNestedTemplateRows as s, readConfigString as sa, refuseDivergentRecordRegionForDestroy as si, RollbackInlinePolicyWriters as sn, isLockInfoExpired as so, s3BucketArn as sr, AssetManifestLoader as ss, nestedChildStackName as st, DeployEngine as t, toFiniteNumber as ta, malformedResourceEntriesWarning as ti, collectPublishedOutputNames as tn, STATE_SOURCED_CROSS_GENERATION_RULES as to, sendableAssumeRoleCommand as tr, redactedDockerCause as ts, planOrphanAdoption as tt, conditionFingerprint as u, requireConfigObject as ua, refuseMalformedOrphanRecordsForDestroy as ui, reserveStackCreateToken as un, splitImportedOps as uo, s3BucketRegionalDomainName as ur, synthesisStatusMessage as us, revertedNestedRowIds as ut, withResourceDeadline as v, lambdaFunctionNameForMask as va, refuseMalformedResourceEntriesForDeploy as vi, tagMapAsList as vn, importableOutputs as vo, carriesFetchableDynamicReference as vr, resolveStateBucketWithDefaultAndSource as vs, getStackRecords as vt, readProtection as w, recordNestedStackParameterExpressions as wa, refuseMalformedResourcePropertiesForExport as wi, ccBrokenReason as wn, isSensitiveAttributeName as wo, refStateLookupFromResource as wr, CFN_TEMPLATE_URL_LIMIT as ws, findNestedStackTypeChanges as wt, PROTECTION_PROPERTY_BY_TYPE as x, TemplateParser as xa, refuseMalformedResourceEntriesForImportSave as xi, stringifyIfAssigned as xn, orphansCarriedFrom as xo, AWS_NO_VALUE as xr, warnDeprecatedNoPrefixCliFlag as xs, planFailedOps as xt, recordedProtectionEvidence as y, sameLambdaFunctionAddress as ya, refuseMalformedResourceEntriesForDestroy as yi, tagPlanWarning as yn, isReadableBag as yo, isNamelessDynamicReferenceError as yr, resolveUseCdkBootstrapAssets as ys, withStackRecords as yt, isTruthyCfnBoolean as z, redactSecretsForState as za, findActionableSilentDrops as zi, ec2InstanceProtectionSite as zn, validateAssetBucketName as zo, isReadableOrphanRecord as zr, hasPlainPrototype$1 as zs, redactedDeleteAddressSkip as zt };
36658
- //# sourceMappingURL=deploy-engine--YvYB0qw.js.map
36901
+ export { resourcesNamingDeclaredParameter as $, recordMaskOnlyValuesIn as $a, WARM_THROUGHPUT_MEMBERS as $i, assertSendableRoleArn as $n, getDockerCmd as $o, malformedOutputsRefusalMessage as $r, isWholeDynamicReferenceValue as $t, resolveDynamoDbDeleteBudgetClock as A, hasMaskableValues as Aa, refuseMalformedResourcesForExport as Ai, slowCcOperationTimeoutMs as An, buildAssetRedirectMap as Ao, JSON_LISTING_HOLE_VALUE as Ar, uploadCfnTemplate as As, buildFinalSnapshotIdentifier as At, getPriorAttempts as B, maskSecretsInText as Ba, unreadableResourceEntries as Bi, ec2InstanceProtectionSite as Bn, parseBootstrapMarker as Bo, isReadableOrphanRecord as Br, defineOwnKey as Bs, redactedDeleteAddressSkip as Bt, perType as C, DagBuilder as Ca, refuseMalformedResourceEntriesForOrphan as Ci, CC_BROKEN_REASON as Cn, orphansAfterRollback as Co, cfnRefValueFromPhysicalId as Cr, stateBucketExistenceConfirmed as Cs, planRollback as Ct, beginDeleteWait as D, recordNestedStackParameterExpressions as Da, refuseMalformedResourcePropertiesForOrphan as Di, isCustomResourceType as Dn, isSensitiveAttributeName as Do, withSharedDrainBudget as Dr, CFN_TEMPLATE_URL_LIMIT as Ds, inheritProducerRegions as Dt, DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS as E, inheritNestedStackParameterAssociations as Ea, refuseMalformedResourcePropertiesForExport as Ei, wouldReturnToSdkProvider as En, AssetPublisher as Eo, parseWebACLArn as Er, CFN_TEMPLATE_BODY_LIMIT as Es, getCurrentProducerRegions as Et, waitForIndexesSettled as F, recordLogOnlyValue as Fa, repairMalformedResourceEntriesForReadOnly as Fi, deleteSkipReason as Fn, BOOTSTRAP_MARKER_PREFIX as Fo, deployRefusesOrphanRowsReason as Fr, canonicalizeRegion as Fs, refusesFinalSnapshot as Ft, cyan as G, DYNAMIC_REFERENCE_TOKEN_SCAN as Ga, NO_CC_HANDLERS_REASON as Gi, DiffCalculator as Gn, buildDockerImage as Go, malformedLocalOutputsWarning as Gr, absoluteAssemblyPathEscape as Gs, extractDeploymentEventError as Gt, formatResourceLine as H, redactSecretsForState as Ha, findSilentDropProperties as Hi, observeThenDisableInstanceApiTermination as Hn, validateAssetBucketName as Ho, malformedDriftResourcePropertiesWarning as Hr, hasPlainPrototype$1 as Hs, updatePartialReason as Ht, ECR_AUTO_DELETE_IMAGES_TAG as I, shareLogOnlyValues as Ia, repairMalformedResourcePropertiesForReadOnly as Ii, withIndeterminateGuard as In, assertAssetBucketRegion as Io, displayLogicalId as Ir, derivePartitionAndUrlSuffix as Is, unsupportedFinalSnapshotError as It, red as J, pathCrossesDottedKey as Ja, shownType as Ji, classifyReplaySecretRegion as Jn, describeDockerExecFailure as Jo, malformedOrphanRecordsRefusalMessage as Jr, renderAssemblyPathEscape as Js, exportAliasCollisionScrubWarning as Jt, gray as K, dynamicReferenceTokens as Ka, hasNoCloudControlHandlers as Ki, INTRINSIC_KEYS as Kn, resolveDockerContextDirectory as Ko, malformedLocalResourceEntriesWarning as Kr, describeFileReadFailure as Ks, WITHHELD_NAME_DISPLAY as Kt, S3_AUTO_DELETE_OBJECTS_TAG as L, createSecretMasker as La, repairMalformedResourcesForReadOnly as Li, isWaitAbandonedError as Ln, ensureAssetStorage as Lo, hasReadableOrphans as Lr, AssemblyReader as Ls, REDACTED_DELETE_ADDRESS_SKIP_REASON as Lt, DELETE_INDEX_WAIT_PROCEED_NOTE as M, logOnlyValueCount as Ma, repairMalformedOrphanRecordsForReadOnly as Mi, unchangedBehindSecretReference as Mn, loadPublishableAssetManifest as Mo, STATE_RESOURCES_MALFORMED as Mr, decodeListingKey as Ms, createPreDeleteFinalSnapshot as Mt, INDEX_SETTLE_POLL_INTERVAL_MS as N, printingCorpusOf as Na, repairMalformedOrphansForReadOnly as Ni, UNSPECIFIED_SKIP_REASON as Nn, rewriteTemplateAssetReferences as No, UNREADABLE_ORPHANS_CONTAINER_ROW as Nr, expectedOwnerParam as Ns, effectiveDeletionPolicy as Nt, compensateRemovedDeletionProtection as O, carryLogOnlyValues as Oa, refuseMalformedResourcesForDeploy as Oi, getCurrentResourceSecrets as On, stringifyValue as Oo, parameterInputsFor as Or, MIGRATE_TMP_PREFIX as Os, ATOMIC_FINAL_SNAPSHOT_TYPES as Ot, deleteTableWithIndexBusyRetry as P, recordLogOnlyParameterValue as Pa, repairMalformedOutputsForReadOnly as Pi, deleteIndeterminateGuards as Pn, AssetModeResolver as Po, UNREADABLE_RESOURCES_MAP_ROW as Pr, PARTITION_TABLE as Ps, isFinalSnapshotError as Pt, reachableDivergentParameters as Q, recordMaskOnlyValue as Qa, renderStatefulReason as Qi, assertFlagRoleArn as Qn, formatDockerLoginError as Qo, malformedOrphansWarning as Qr, exportNameSecretExposure as Qt, hasCdkAutoDeleteTag as R, errorCauseChain as Ra, unpreviewableOrphanRecords as Ri, markWaitAbandoned as Rn, getBootstrapMarkerKey as Ro, hasReadableOutputs as Rr, StageLoadError as Rs, isRedactedRecordedValue as Rt, isProtectionValueActive as S, sameLambdaFunctionAddress as Sa, refuseMalformedResourceEntriesForImportSave as Si, stringifyIfAssigned as Sn, isReadableBag as So, AWS_NO_VALUE as Sr, resolveUseCdkBootstrapAssets as Ss, planFailedOps as St, DynamoDBGlobalTableProvider as T, liveMatchesUnresolvedTokenFrame as Ta, refuseMalformedResourcePropertiesForDrift as Ti, ccBrokenReason as Tn, shouldRetainResource as To, refStateLookupFromResource as Tr, ssmResolvedValueType as Ts, findNestedStackTypeChanges as Tt, createReadOnlyAttributeHealerFactory as U, scrubResourceRecord as Ua, unwrittenCreateOnlyReplacement as Ui, reDisableInstanceApiTermination as Un, validateContainerRepoName as Uo, malformedExportNamesWarning as Ur, nullPrototypeRecord as Us, DeploymentEventsReader as Ut, markRefusedBeforeApplying as V, markSameGenerationBag as Va, findActionableSilentDrops as Vi, isTerminationProtectionPropagationError as Vn, readBootstrapMarkerBody as Vo, isReadableResourceEntry as Vr, hasOwnKey as Vs, updatePartialMessage as Vt, bold as W, recoverMaskedOutput as Wa, withoutSilentDropProperties as Wi, reEnableInstanceApiTermination as Wn, buildDenyExternalAccessPolicy as Wo, malformedExportSourceWarning as Wr, ownValue as Ws, DeploymentEventsStore as Wt, computeParameterTaint as X, carriesSecretMask as Xa, isStatefulRecreateTargetForReplace as Xi, regionLessSecretName as Xn, dockerSpawnEnvWithSensitive as Xo, malformedOrphanRowsKeptWarning as Xr, clearBucketRegionCache as Xs, secretBearingStateKeyWarning as Xt, yellow as Y, identityKeyFor as Ya, MULTI_REGION_RECREATE_BLOCKED_TYPES as Yi, producerRegionsFromState as Yn, describeDockerFailure as Yo, malformedOrphanRecordsWarning as Yr, resolveAssemblyPath as Ys, secretBearing as Yt, namesAnyDeclaredParameter as Z, provenPublicValue as Za, isStatefulRecreateTargetSync as Zi, applyRoleArnIfSet as Zn, finchSecretArgvRefusal as Zo, malformedOrphansRefusalMessage as Zr, resolveBucketRegion as Zs, secretSafeKeyDisplay as Zt, makeCanonicalizePropertiesFn as _, withRetry as _a, refuseMalformedResourceAttributesForOrphan as _i, readTagList as _n, hasReadableExportSet as _o, isImpossibleEmptyStoredAttribute as _r, resolveAutoAssetStorage as _s, destroyStackRecordsView as _t, findNestedTemplateTreeDefect as a, coerceCfnInteger as aa, malformedScrubResourceEntriesRefusalMessage as ai, DEFAULT_RESOURCE_TIMEOUT_MS as an, STATE_SOURCED_READBACK_RULES as ao, callerEnvCredentials as ar, runDockerForeground as as, dropSettledNestedJournals as at, recordedProtectionNote as b, canonicalLambdaFunctionName as ba, refuseMalformedResourceEntriesForDestroy as bi, tagPlanWarning as bn, importableOutputKeys as bo, isNamelessDynamicReferenceError as br, resolveStateBucketWithDefault as bs, recordAfterRollbackUpdate as bt, renderNestedTemplateTreeDefect as c, configStringRefusal as ca, refuseDivergentRecordRegionForDestroy as ci, RollbackInlinePolicyWriters as cn, isSingleDynamicReferenceToken as co, s3BucketArn as cr, escapeRegExp$3 as cs, recordDisplacedSkips as ct, conditionInputsFrom as d, requireConfigArray as da, refuseMalformedOrphanRecordsForDestroy as di, reserveStackCreateToken as dn, S3StateBackend as do, s3BucketRegionalDomainName as dr, getDockerImageBySourceHash as ds, withNestedRevertRun as dt, coerceWarmThroughput as ea, malformedOutputsWarning as ei, noEchoParameterValueSeed as en, recordNoEchoAttributeValues as eo, explicitRoleArnOrThrow as er, isDockerClientEnvKey as es, makeSiblingClaimReader as et, parentSuppliedValues as f, requireConfigObject as fa, refuseMalformedOrphans as fi, withCreateTokenLedger as fn, rebuildClientForBucketRegion as fo, s3BucketWebsiteUrl as fr, Synthesizer as fs, getCurrentNestedStackContext as ft, mergeNoChangeOutputs as g, describeTypeWithThrottleRetry as ga, refuseMalformedOutputsForDestroy as gi, planTagDiff as gn, exportNamesCarriedFrom as go, getAccountInfo as gr, resolveApp as gs, awaitInFlightSibling as gt, keptWholeReasonText as h, templateResourceTypes as ha, refuseMalformedOutputs as hi, DBPROXY_TAG_OPTIONS as hn, describeRegionValueKind as ho, parameterTypeMayLoseSecretIdentity as hr, getLegacyStateBucketName as hs, replayRollback as ht, childTemplateLoader as i, coerceCfnBoolean as ia, malformedResourcesWarning as ii, bindingSkippedOutputs as in, STATE_SOURCED_CROSS_GENERATION_RULES as io, applyCallerIdentityCredentials as ir, redactedDockerCause as is, displacedPhysicalIdShown as it, resolveDynamoDbDeleteBudgetMs as j, literalSplitDelimitersOf as ja, refuseMalformedState as ji, ccProtectionRegistryTypes as jn, createAssetRedirectResolver as jo, STATE_REGION_DIVERGED as jr, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as js, ccRoutedFinalSnapshotError as jt, deleteBudgetKey as k, createUnionSecretMasker as ka, refuseMalformedResourcesForDestroy as ki, CloudControlProvider as kn, WorkGraph as ko, passedParameterClassesOf as kr, findLargeInlineResources as ks, PRE_DELETE_SNAPSHOT_TYPES as kt, templateIdentity as l, readConfigString as la, refuseMalformedNestedChildOutputs as li, earliestDefined as ln, LockManager as lo, s3BucketDomainName as lr, stripControlChars as ls, revertNestedChildFromJournal as lt, isSecretBearingReferenceString as m, prefetchCreateOnlyPropertyPaths as ma, refuseMalformedOrphansForOrphan as mi, DBPROXY_TAGS_WHAT as mn, acceptedCreateOnlyDropsOf as mo, isUnboundTemplateParameter as mr, getDefaultStateBucketName as ms, replayFailedOperations as mt, IMPLICIT_DELETE_DEPENDENCIES as n, toCfnInteger as na, malformedResourceEntriesWarning as ni, collectPublishedOutputNames as nn, wholeStringLeavesOf as no, sendableAssumeRoleCommand as nr, partitionSensitiveEnv as ns, NESTED_PENDING_PARENT_REASON as nt, isAbsoluteAssetPath as o, configBooleanRefusal as oa, malformedStateRefusalMessage as oi, DEFAULT_RESOURCE_WARN_AFTER_MS as on, TEMPLATE_SOURCED_RULES as oo, envCredentialsAreAssumedRole as or, runDockerStreaming as os, getNestedRevertRun as ot, readRecordedConditionVerdicts as p, requireConfigString as pa, refuseMalformedOrphansForDestroy as pi, acquireIdempotencyToken as pn, splitImportedOps as po, coerceParameterTypedValue as pr, synthesisStatusMessage as ps, withNestedStackContext as pt, green as q, isUncertifiedBaselineMaskPosition as qa, findReplacedReadersOfRecreateTargets as qi, IntrinsicFunctionResolver as qn, describeDockerCapturedOutput as qo, malformedLocalResourcesWarning as qr, displayAssemblyPath as qs, displayTextOrWithheld as qt, computeImplicitDeleteEdges as r, toFiniteNumber as ra, malformedResourcePropertiesWarning as ri, isExportAliasCollision as rn, STATE_SOURCED_BASELINE_RULES as ro, AWS_CREDENTIAL_ENV_KEYS as rr, redactDockerArgvValues as rs, displacedOpClause as rt, listNestedTemplateRows as s, configIntegerRefusal as sa, previewableOrphanRecords as si, maskingRetryLogger as sn, WHOLE_DYNAMIC_REFERENCE_PATTERN as so, isSettledInstanceState as sr, warnFinchArgvExposure as ss, nestedChildStackName as st, DeployEngine as t, isWarmThroughputDecrease as ta, malformedRenderedContainersWarning as ti, collectDeclaredOutputNames as tn, recordProvenPublicExpression as to, isIamRoleArn as tr, isMalformedEnvKey as ts, planOrphanAdoption as tt, conditionFingerprint as u, replayWarn as ua, refuseMalformedOrphanRecords as ui, ledgerForStack as un, isLockInfoExpired as uo, s3BucketDualStackDomainName as ur, AssetManifestLoader as us, revertedNestedRowIds as ut, withResourceDeadline as v, markAuxiliaryFailure as va, refuseMalformedResourceEntries as vi, refuseMalformedDesiredTags as vn, hasReasonlessBaselineRefusal as vo, carriesDynamicReference as vr, resolveCaptureObservedState as vs, getStackRecords as vt, readProtection as w, TemplateParser as wa, refuseMalformedResourcePropertiesForDestroy as wi, ProviderRegistry as wn, orphansCarriedFrom as wo, isStalePlaceholderArnAttribute as wr, warnDeprecatedNoPrefixCliFlag as ws, resolveReplacementOldType as wt, PROTECTION_PROPERTY_BY_TYPE as x, lambdaFunctionNameForMask as xa, refuseMalformedResourceEntriesForImport as xi, definedAttributes as xn, importableOutputs as xo, keepsSecretReferenceToken as xr, resolveStateBucketWithDefaultAndSource as xs, demoteSupersededOrphans as xt, recordedProtectionEvidence as y, markCreatedBeforeFailure as ya, refuseMalformedResourceEntriesForDeploy as yi, tagMapAsList as yn, hasUnverifiableParameterRefusal as yo, carriesFetchableDynamicReference as yr, resolveSkipPrefix as ys, withStackRecords as yt, isTruthyCfnBoolean as z, maskSecretsInError as za, unreadableOrphanRecords as zi, disableInstanceApiTermination as zn, isCrossRegionRedirect as zo, hasReadableResources as zr, processStackMessages as zs, redactedDeleteAddressFields as zt };
36902
+ //# sourceMappingURL=deploy-engine-DG-oC9YK.js.map