@go-to-k/cdkd 0.284.83 → 0.284.84

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import { d as generateResourceName, f as generateResourceNameWithFallback, g as withStackName, m as looksLikeCdkdGeneratedName, n as getLogger, o as getLiveRenderer, p as getCurrentStackName, u as applyDefaultNameForFallback } from "./logger-C9-E73FI.js";
2
- import { t as getCdkdVersion } from "./version-DI03miJ9.js";
2
+ import { t as getCdkdVersion } from "./version-BJFNb-b3.js";
3
3
  import { AsyncLocalStorage } from "node:async_hooks";
4
4
  import { randomUUID } from "node:crypto";
5
5
  import { CreateBucketCommand, DeleteObjectCommand, DeleteObjectsCommand, GetBucketLocationCommand, GetObjectCommand, HeadBucketCommand, HeadObjectCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchKey, PutBucketEncryptionCommand, PutBucketPolicyCommand, PutObjectCommand, PutPublicAccessBlockCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
@@ -14972,8 +14972,10 @@ function describe(value) {
14972
14972
  //#region src/provisioning/region-check.ts
14973
14973
  /**
14974
14974
  * Verify that the AWS client's region matches the region the resource is
14975
- * expected to live in before treating a `NotFound` error as idempotent
14976
- * delete success.
14975
+ * expected to live in before treating a `NotFound` error as idempotent
14976
+ * delete success (`phase: 'not-found'`), or before issuing a mutating call
14977
+ * against a state-recorded physical id at all (`'pre-delete'` /
14978
+ * `'pre-update'`, issue #2301).
14977
14979
  *
14978
14980
  * Why: a destroy run with the wrong region would otherwise receive
14979
14981
  * `*NotFound` for every resource and silently strip them all from state,
@@ -14982,13 +14984,24 @@ function describe(value) {
14982
14984
  * `us-west-2` removed from state by a destroy that ran with a `us-east-1`
14983
14985
  * client.
14984
14986
  *
14985
- * Behavior:
14987
+ * And a `NotFound` is not the only way that ends badly, which is what the
14988
+ * pre-flight phases add: many physical ids are names rather than ARNs, so the
14989
+ * same name usually EXISTS in the client's region too (the same stack deployed
14990
+ * twice, or cdkd's own `resource-name.ts` deriving an identical name from an
14991
+ * identical stack + logical id). Then the wrong-region call never errors — it
14992
+ * succeeds against the wrong resource. That path is unrecoverable on delete
14993
+ * and a misapplied configuration on update, and neither ever reaches the
14994
+ * `NotFound` branch this helper originally lived on.
14995
+ *
14996
+ * Behavior (identical in every phase):
14986
14997
  * - If `expectedRegion` is unset, this is a no-op (back-compat: existing
14987
14998
  * idempotent semantics preserved for callers that have not been
14988
- * threaded with state region).
14999
+ * threaded with state region). An EMPTY string counts as unset — a caller
15000
+ * typed `region: string` can hand one over, and refusing on it would make
15001
+ * this guard reject its own default.
14989
15002
  * - If `clientRegion` matches `expectedRegion`, returns silently.
14990
15003
  * - Otherwise throws `ProvisioningError` so the caller surfaces the
14991
- * mismatch instead of swallowing the NotFound.
15004
+ * mismatch instead of swallowing the NotFound / issuing the call.
14992
15005
  *
14993
15006
  * @param clientRegion Region resolved from the AWS SDK client config
14994
15007
  * (typically `await client.config.region()`).
@@ -14998,13 +15011,27 @@ function describe(value) {
14998
15011
  * message and on the thrown ProvisioningError.
14999
15012
  * @param logicalId Logical ID of the resource, used in the error message
15000
15013
  * and on the thrown ProvisioningError.
15001
- * @param physicalId Optional physical ID, used in the error message and
15002
- * on the thrown ProvisioningError.
15014
+ * @param physicalId Optional physical ID, carried on the thrown
15015
+ * ProvisioningError.
15016
+ * @param phase Which call is being guarded — see {@link RegionCheckPhase}.
15017
+ * Defaults to the historical `'not-found'` so every pre-#2301 call site
15018
+ * keeps its exact wording.
15003
15019
  */
15004
- function assertRegionMatch(clientRegion, expectedRegion, resourceType, logicalId, physicalId) {
15020
+ function assertRegionMatch(clientRegion, expectedRegion, resourceType, logicalId, physicalId, phase = "not-found") {
15005
15021
  if (!expectedRegion) return;
15006
- if (!clientRegion) throw new ProvisioningError(`Refusing to treat NotFound as idempotent delete success for ${logicalId} (${resourceType}): AWS client region is unknown but stack state expects ${expectedRegion}. The resource may exist in ${expectedRegion} and would be silently removed from state if this NotFound were trusted.`, resourceType, logicalId, physicalId);
15007
- if (clientRegion !== expectedRegion) throw new ProvisioningError(`Refusing to treat NotFound as idempotent delete success for ${logicalId} (${resourceType}): AWS client region ${clientRegion} does not match stack state region ${expectedRegion}. The resource likely still exists in ${expectedRegion}; rerun the destroy with the correct region (e.g. --region ${expectedRegion}).`, resourceType, logicalId, physicalId);
15022
+ if (!clientRegion) throw new ProvisioningError(phase === "not-found" ? `Refusing to treat NotFound as idempotent delete success for ${logicalId} (${resourceType}): AWS client region is unknown but stack state expects ${expectedRegion}. The resource may exist in ${expectedRegion} and would be silently removed from state if this NotFound were trusted.` : `Refusing to ${phaseVerb(phase)} ${logicalId} (${resourceType}): AWS client region is unknown but stack state records the resource in ${expectedRegion}. cdkd cannot confirm that the physical id recorded in state names the resource this client would act on, so the ${phaseVerb(phase)} is not issued. Point the AWS client at ${expectedRegion} (AWS_REGION or your AWS profile) and re-run.`, resourceType, logicalId, physicalId);
15023
+ if (clientRegion !== expectedRegion) throw new ProvisioningError(phase === "not-found" ? `Refusing to treat NotFound as idempotent delete success for ${logicalId} (${resourceType}): AWS client region ${clientRegion} does not match stack state region ${expectedRegion}. The resource likely still exists in ${expectedRegion}; rerun the destroy with the correct region (e.g. --region ${expectedRegion}).` : `Refusing to ${phaseVerb(phase)} ${logicalId} (${resourceType}): AWS client region ${clientRegion} does not match stack state region ${expectedRegion}. The physical id recorded in cdkd state names a resource in ${expectedRegion}, so this ${phaseVerb(phase)} would act on whatever carries that id in ${clientRegion} instead — which for a name-shaped physical id is a different resource that usually exists. Point the AWS client at ${expectedRegion} (AWS_REGION or your AWS profile) and re-run; when the run spans several regions at once (cdkd drift --all), select the stacks in one region per run, because no single client region is correct for all of them. If the recorded region is the wrong one, correct the state record (cdkd state show).`, resourceType, logicalId, physicalId);
15024
+ }
15025
+ /**
15026
+ * The operation a pre-flight phase is about to issue, for the message.
15027
+ *
15028
+ * `'not-found'` is EXCLUDED from the parameter type rather than mapped to a
15029
+ * verb: both call sites already sit in the `else` of a
15030
+ * `phase === 'not-found' ? ... : ...`, so an arm answering for it would be
15031
+ * unreachable, and an unreachable arm is a claim no test can hold to account.
15032
+ */
15033
+ function phaseVerb(phase) {
15034
+ return phase === "pre-update" ? "update" : "delete";
15008
15035
  }
15009
15036
 
15010
15037
  //#endregion
@@ -20478,8 +20505,9 @@ var CloudControlProvider = class {
20478
20505
  /**
20479
20506
  * Update a resource using Cloud Control API
20480
20507
  */
20481
- async update(logicalId, physicalId, resourceType, properties, previousProperties) {
20508
+ async update(logicalId, physicalId, resourceType, properties, previousProperties, context) {
20482
20509
  this.logger.debug(`Updating resource ${logicalId} (${resourceType}), physical ID: ${physicalId}`);
20510
+ await this.assertRecordedRegionAgainstClient("pre-update", context?.expectedRegion, resourceType, logicalId, physicalId);
20483
20511
  try {
20484
20512
  const cleanPreviousProperties = stringifyJsonProperties(resourceType, stripNullValues(previousProperties));
20485
20513
  const cleanProperties = stringifyJsonProperties(resourceType, stripNullValues(properties));
@@ -20538,10 +20566,11 @@ var CloudControlProvider = class {
20538
20566
  async delete(logicalId, physicalId, resourceType, _properties, context) {
20539
20567
  this.logger.debug(`Deleting resource ${logicalId} (${resourceType}), physical ID: ${physicalId}`);
20540
20568
  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);
20569
+ await this.assertRecordedRegionAgainstClient("pre-delete", context?.expectedRegion, resourceType, logicalId, physicalId);
20541
20570
  await this.confirmDeleteTargetIdentity(logicalId, resourceType, physicalId, context);
20542
20571
  if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
20543
20572
  this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
20544
- const { ASGProvider } = await import("./asg-provider-B-KONBYk.js").then((n) => n.n);
20573
+ const { ASGProvider } = await import("./asg-provider-BeELAzdu.js").then((n) => n.n);
20545
20574
  return await new ASGProvider().delete(logicalId, physicalId, resourceType, _properties, context);
20546
20575
  }
20547
20576
  const isProtectedEc2Instance = context?.removeProtection === true && resourceType === "AWS::EC2::Instance";
@@ -20564,7 +20593,7 @@ var CloudControlProvider = class {
20564
20593
  } catch (error) {
20565
20594
  const err = error;
20566
20595
  if (error instanceof CloudControlOperationFailedError && error.ccOperation === "DELETE" && error.ccErrorCode === "NotFound" || err.name === "ResourceNotFoundException" || err.message?.includes("does not exist") || err.message?.includes("not found") || err.message?.includes("NotFound")) {
20567
- assertRegionMatch(await this.cloudControlClient.config.region(), context?.expectedRegion, resourceType, logicalId, physicalId);
20596
+ await this.assertRecordedRegionAgainstClient("not-found", context?.expectedRegion, resourceType, logicalId, physicalId);
20568
20597
  this.logger.debug(`Resource ${logicalId} already deleted (not found), treating as success`);
20569
20598
  return;
20570
20599
  }
@@ -20578,15 +20607,77 @@ var CloudControlProvider = class {
20578
20607
  }
20579
20608
  }
20580
20609
  /**
20610
+ * Refuse a Cloud Control call whose target region cannot be shown to be the
20611
+ * one the state record was written in (issue #2301).
20612
+ *
20613
+ * The ONE place this comparison happens, for all three phases: the
20614
+ * pre-flights at the top of `delete()` and `update()`, and the reactive
20615
+ * `not-found` arm inside `delete()`'s catch block. They can therefore never
20616
+ * disagree about what "unknown region" means, nor about how a region is
20617
+ * SPELLED -- the second one was live before this became shared: the reactive
20618
+ * arm compared raw while the pre-flight folded case, so one correct call
20619
+ * could pass the first and be refused by the second. THREE inputs, THREE outcomes, and they are
20620
+ * deliberately not two:
20621
+ *
20622
+ * - NO recorded region (`undefined`, or an empty / whitespace-only string)
20623
+ * -> PROCEED, and do not even resolve the client region. This is the
20624
+ * guard's OWN default: a `version: 1` state record predates the
20625
+ * region-scoped key layout and carries no region at all, and callers
20626
+ * typed `region: string` (`deploy-engine.ts`'s `stackRegion`) can hand
20627
+ * over `''`. Refusing on the absence would break every ordinary
20628
+ * destroy / update of a pre-v2 record, which is the over-tightening
20629
+ * failure a one-directional fence never sees.
20630
+ * - A recorded region that MATCHES the client -> proceed silently. This is
20631
+ * the ordinary path and it must stay free of new refusals: the whole
20632
+ * fleet of same-region deletes and updates runs through here.
20633
+ * - A recorded region that DIFFERS, or a client region that cannot be
20634
+ * resolved at all -> REFUSE before issuing anything.
20635
+ *
20636
+ * The unresolvable-client-region arm is the one asymmetry worth naming:
20637
+ * {@link CloudControlProvider.confirmDeleteTargetIdentity} PROCEEDS when it
20638
+ * cannot establish a region, and this helper refuses. The two are answering
20639
+ * different questions. That probe asks a remote service where a globally
20640
+ * unique NAME lives, and a least-privilege role that was never granted
20641
+ * `s3:GetBucketLocation` would be stranded by a refusal. Here the caller has
20642
+ * positively recorded a region, the comparison is local and free, and a
20643
+ * client that cannot say where it points cannot be shown to point at that
20644
+ * region -- the same answer `assertRegionMatch` has always given on its
20645
+ * `not-found` phase.
20646
+ *
20647
+ * The refusal is marked non-retryable because it is deterministic: both
20648
+ * loops that wrap these calls -- the destroy runner's own attempt loop and
20649
+ * the deploy engine's / rollback executor's `withRetry` -- would otherwise
20650
+ * spend their full budget re-deriving the same verdict, which reads to a
20651
+ * user as flaky AWS rather than as a refusal.
20652
+ */
20653
+ async assertRecordedRegionAgainstClient(phase, expectedRegion, resourceType, logicalId, physicalId) {
20654
+ const recordedRegion = canonicalizeRegion(expectedRegion?.trim());
20655
+ if (recordedRegion === void 0 || recordedRegion === "") return;
20656
+ let clientRegion;
20657
+ try {
20658
+ clientRegion = canonicalizeRegion((await this.cloudControlClient.config.region())?.trim());
20659
+ } catch (error) {
20660
+ this.logger.debug(`Could not resolve the Cloud Control client region before the ${phase} region check for ${logicalId} (${resourceType}): ${error instanceof Error ? error.message : String(error)}`);
20661
+ clientRegion = void 0;
20662
+ }
20663
+ try {
20664
+ assertRegionMatch(clientRegion, recordedRegion, resourceType, logicalId, physicalId, phase);
20665
+ } catch (error) {
20666
+ throw markNonRetryable(error);
20667
+ }
20668
+ }
20669
+ /**
20581
20670
  * Confirm that the resource `physicalId` names actually lives in the region
20582
20671
  * this destroy is targeting, for the types in
20583
20672
  * {@link CC_DELETE_IDENTITY_CHECKED_TYPES}. No-op for every other type.
20584
20673
  *
20585
20674
  * WHAT THIS GUARDS THAT `assertRegionMatch` DOES NOT
20586
20675
  * ---------------------------------------------------
20587
- * The existing `assertRegionMatch` in the catch block below compares the
20588
- * CLIENT's region against the state's region, and only on the `NotFound`
20589
- * branch. Both halves miss this hazard. An `AWS::S3::Bucket` physical id is
20676
+ * The `assertRegionMatch` comparison which since issue #2301 runs both as
20677
+ * an unconditional pre-flight and on the `NotFound` arm below — compares the
20678
+ * CLIENT's region against the STATE's. That misses this hazard however often
20679
+ * it runs: both of its inputs can agree while the bucket the physical id
20680
+ * names sits somewhere else entirely. An `AWS::S3::Bucket` physical id is
20590
20681
  * a GLOBALLY unique name, so a state record written before the issue #2227 /
20591
20682
  * #2245 guards existed can name a bucket that is ours but lives elsewhere --
20592
20683
  * a cdkd-GENERATED bucket name carries no region or account: for a name cdkd
@@ -29498,7 +29589,10 @@ async function replaySingle(op, stateResources, stackName, ctx, resolver, orphan
29498
29589
  op.resourceType,
29499
29590
  desiredProps ?? {},
29500
29591
  currentProps ?? {},
29501
- { maskSecrets: createSecretMasker(secrets) }
29592
+ {
29593
+ maskSecrets: createSecretMasker(secrets),
29594
+ expectedRegion: ctx.region
29595
+ }
29502
29596
  ], op.logicalId, logger, isInterrupted, secrets);
29503
29597
  stateResources[op.logicalId] = redactRollbackRecord(recordAfterRollbackUpdate(previousState, revertResult), secrets, previousState.properties);
29504
29598
  const rollbackPartial = updatePartialReason(revertResult);
@@ -29651,7 +29745,10 @@ async function replayFailedOperations(failedOps, stateResources, stackName, ctx,
29651
29745
  op.resourceType,
29652
29746
  desiredProps ?? {},
29653
29747
  attemptedProps ?? {},
29654
- { maskSecrets: createSecretMasker(secrets) }
29748
+ {
29749
+ maskSecrets: createSecretMasker(secrets),
29750
+ expectedRegion: ctx.region
29751
+ }
29655
29752
  ], op.logicalId, logger, options.isInterrupted, secrets);
29656
29753
  stateResources[op.logicalId] = redactRollbackRecord(recordAfterRollbackUpdate(prev, revertFailedResult), secrets, prev.properties);
29657
29754
  const revertFailedPartial = updatePartialReason(revertFailedResult);
@@ -31957,7 +32054,10 @@ var DeployEngine = class {
31957
32054
  let result;
31958
32055
  let resultProvisionedBy = updateDecision.provisionedBy;
31959
32056
  try {
31960
- result = await this.withRetry(() => withCurrentResourceSecrets(updateSecrets, () => updateProvider.update(logicalId, currentResource.physicalId, resourceType, updateProps, currentProps, { maskSecrets: createSecretMasker(updateSecrets) })), logicalId, void 0, void 0, updateProvider);
32057
+ result = await this.withRetry(() => withCurrentResourceSecrets(updateSecrets, () => updateProvider.update(logicalId, currentResource.physicalId, resourceType, updateProps, currentProps, {
32058
+ maskSecrets: createSecretMasker(updateSecrets),
32059
+ expectedRegion: this.stackRegion
32060
+ })), logicalId, void 0, void 0, updateProvider);
31961
32061
  } catch (updateError) {
31962
32062
  const msg = updateError instanceof Error ? updateError.message : String(updateError);
31963
32063
  const ccUnsupported = msg.includes("UnsupportedActionException") || msg.includes("does not support UPDATE");
@@ -32050,7 +32150,7 @@ var DeployEngine = class {
32050
32150
  }), logicalId, 3, 5e3, deleteProvider);
32051
32151
  } catch (deleteError) {
32052
32152
  const msg = deleteError instanceof Error ? deleteError.message : String(deleteError);
32053
- if (!isInterruptedWaitError(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"))) this.logger.debug(`Resource ${logicalId} already deleted (${msg}), removing from state`);
32153
+ if (!isInterruptedWaitError(deleteError) && !isMarkedNonRetryable(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"))) this.logger.debug(`Resource ${logicalId} already deleted (${msg}), removing from state`);
32054
32154
  else throw deleteError;
32055
32155
  }
32056
32156
  const deleteSkipped = deleteSkipReason(deleteResult);
@@ -32459,4 +32559,4 @@ var DeployEngine = class {
32459
32559
 
32460
32560
  //#endregion
32461
32561
  export { maskerOrIdentity as $, CFN_TEMPLATE_BODY_LIMIT as $n, maskSecretsInText as $t, renderStatefulReason as A, describeAwsFailure as An, PartialFailureError as Ar, requireConfigString as At, exportAliasCollisionScrubWarning as B, Synthesizer as Bn, normalizeAwsError as Br, INTRINSIC_KEYS as Bt, isFinalSnapshotError as C, getBootstrapMarkerKey as Cn, DynamicReferenceRegionAmbiguousError as Cr, coerceCfnBoolean as Ct, extractDeploymentEventError as D, validateAssetBucketName as Dn, LockError as Dr, replayWarn as Dt, makeCanonicalizePropertiesFn as E, readBootstrapMarkerBody as En, LocalStartServiceError as Er, readConfigString as Et, green as F, partitionSensitiveEnv as Fn, StackTerminationProtectionError as Fr, s3BucketDualStackDomainName as Ft, IAMRoleProvider as G, resolveAutoAssetStorage as Gn, markNonRetryable as Gr, STATE_SOURCED_CROSS_GENERATION_RULES as Gt, secretBearingStateKeyWarning as H, getDefaultStateBucketName as Hn, isMarkedNonRetryable as Hr, withRetry as Ht, red as I, runDockerForeground as In, StateError as Ir, s3BucketRegionalDomainName as It, ProviderRegistry as J, resolveStateBucketWithDefault as Jn, __exportAll as Jr, createSecretMasker as Jt, collectInlinePolicyNamesManagedBySiblings as K, resolveCaptureObservedState as Kn, markRedactedCause as Kr, STATE_SOURCED_READBACK_RULES as Kt, yellow as L, runDockerStreaming as Ln, SynthesisError as Lr, s3BucketWebsiteUrl as Lt, bold as M, dockerSpawnEnvWithSensitive as Mn, ResourceTimeoutError as Mr, producerRegionsFromState as Mt, cyan as N, formatDockerLoginError as Nn, ResourceUpdateNotSupportedError as Nr, s3BucketArn as Nt, MULTI_REGION_RECREATE_BLOCKED_TYPES as O, validateContainerRepoName as On, MissingCdkCliError as Or, requireConfigArray as Ot, gray as P, getDockerCmd as Pn, StackHasActiveImportsError as Pr, s3BucketDomainName as Pt, maskDeep as Q, warnDeprecatedNoPrefixCliFlag as Qn, maskSecretsInError as Qt, collectDeclaredOutputNames as R, AssetManifestLoader as Rn, formatError as Rr, applyRoleArnIfSet as Rt, createPreDeleteFinalSnapshot as S, ensureAssetStorage as Sn, DeployCancelledError as Sr, assertRegionMatch as St, unsupportedFinalSnapshotError as T, parseBootstrapMarker as Tn, LocalMigrateError as Tr, configStringRefusal as Tt, stateKeySecretExposure as U, getLegacyStateBucketName as Un, isRetryableTransientError as Ur, DagBuilder as Ut, isExportAliasCollision as V, synthesisStatusMessage as Vn, withErrorHandling as Vr, describeTypeWithThrottleRetry as Vt, getCurrentResourceSecrets as W, resolveApp as Wn, isThrottlingError as Wr, TemplateParser as Wt, findSilentDropProperties as X, resolveUseCdkBootstrapAssets as Xn, errorCauseChain as Xt, findActionableSilentDrops as Y, resolveStateBucketWithDefaultAndSource as Yn, dynamicReferenceTokens as Yt, createMaskedRetryLogger as Z, stateBucketExistenceConfirmed as Zn, isSingleDynamicReferenceToken as Zt, computeImplicitDeleteEdges as _, escapeRegExp$1 as _n, AssetError as _r, parameterTypeMayLoseSecretIdentity as _t, DeploymentEventsStore as a, rebuildClientForBucketRegion as an, expectedOwnerParam as ar, isInterruptedWaitError as at, buildFinalSnapshotIdentifier as b, BOOTSTRAP_MARKER_PREFIX as bn, CrossAccountSecretRefusalError as br, normalizeAwsTagsToCfn as bt, replayFailedOperations as c, importableOutputs as cn, derivePartitionAndUrlSuffix as cr, slowCcOperationTimeoutMs as ct, updatePartialReason as d, stringifyValue as dn, clearBucketRegionCache as dr, IntrinsicFunctionResolver as dt, redactSecretsForState as en, CFN_TEMPLATE_URL_LIMIT as er, CUSTOM_RESOURCE_RESPONSE_PREFIX as et, UNSPECIFIED_SKIP_REASON as f, WorkGraph as fn, resolveBucketRegion as fr, carriesDynamicReference as ft, IMPLICIT_DELETE_DEPENDENCIES as g, rewriteTemplateAssetReferences as gn, setAwsClients as gr, isUnboundTemplateParameter as gt, maskingRetryLogger as h, loadPublishableAssetManifest as hn, resetAwsClients as hr, getAccountInfo as ht, DeploymentEventsReader as i, S3StateBackend as in, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as ir, interruptWatchListenerCount as it, formatResourceLine as j, buildDockerImage as jn, ProvisioningError as jr, classifyReplaySecretRegion as jt, isStatefulRecreateTargetSync as k, buildDenyExternalAccessPolicy as kn, NestedStackChildDirectDestroyError as kr, requireConfigObject as kt, replayRollback as l, shouldRetainResource as ln, AssemblyReader as lr, disableInstanceApiTermination as lt, withResourceDeadline as m, createAssetRedirectResolver as mn, getAwsClients as mr, coerceParameterTypedValue as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, LockManager as nn, findLargeInlineResources as nr, beginCommandInterruptScope as nt, planFailedOps as o, exportNamesCarriedFrom as on, PARTITION_TABLE as or, startInterruptWatch as ot, deleteSkipReason as p, buildAssetRedirectMap as pn, AwsClients as pr, cfnRefValueFromPhysicalId as pt, clearOnUpdateRemoval as q, resolveSkipPrefix as qn, retryClassificationText as qr, TEMPLATE_SOURCED_RULES as qt, DeployEngine as r, displaySafe as rn, uploadCfnTemplate as rr, endCommandInterruptScope as rt, planRollback as s, importableOutputKeys as sn, canonicalizeRegion as sr, CloudControlProvider as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, scrubResourceRecord as tn, MIGRATE_TMP_PREFIX as tr, DEFAULT_STATE_PREFIX as tt, updatePartialMessage as u, AssetPublisher as un, processStackMessages as ur, isTerminationProtectionPropagationError as ut, ATOMIC_FINAL_SNAPSHOT_TYPES as v, stripControlChars as vn, CdkdError as vr, refStateLookupFromResource as vt, refusesFinalSnapshot as w, isCrossRegionRedirect as wn, LocalInvokeBuildError as wr, configBooleanRefusal as wt, ccRoutedFinalSnapshotError as x, assertAssetBucketRegion as xn, DependencyError as xr, resolveExplicitPhysicalId as xt, PRE_DELETE_SNAPSHOT_TYPES as y, AssetModeResolver as yn, ConfigError as yr, WAFv2WebACLProvider as yt, collectPublishedOutputNames as z, getDockerImageBySourceHash as zn, isCdkdError as zr, DiffCalculator as zt };
32462
- //# sourceMappingURL=deploy-engine-BES1Z20a.js.map
32562
+ //# sourceMappingURL=deploy-engine-Du2CDZop.js.map