@go-to-k/cdkd 0.284.4 → 0.284.5

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.
@@ -10659,6 +10659,29 @@ function maskSecretsInText(text, secrets) {
10659
10659
  if (!regex) return text;
10660
10660
  return text.replace(regex, "***");
10661
10661
  }
10662
+ /**
10663
+ * Bind a {@link RecordedSecretValues} bag into a {@link SecretMasker} for a
10664
+ * caller to hand to a provider.
10665
+ *
10666
+ * The bag is captured BY REFERENCE and read on every call, and there is
10667
+ * deliberately NO `secrets.size === 0` short-circuit here: collapsing an empty
10668
+ * bag to the identity function at BIND time would go permanently blind to
10669
+ * everything added afterwards. {@link maskSecretsInText} makes that check at
10670
+ * CALL time, where it is correct and costs a `Map.size` read.
10671
+ *
10672
+ * Stated as a property rather than a live requirement, because it is worth
10673
+ * being exact about: every caller today FILLS its bag before binding — the
10674
+ * rollback executor's arms run `resolveReplayProps` first and only then build
10675
+ * the masker, and the deploy engine resolves before it calls the provider — so
10676
+ * a bind-time short-circuit would pass every existing integration. It is the
10677
+ * ORDER, not the reference capture, that makes them work now, and the order is
10678
+ * the kind of thing a later refactor reverses without noticing. The unit test
10679
+ * `masks values added to the bag AFTER the masker was built` is what holds the
10680
+ * property up on its own.
10681
+ */
10682
+ function createSecretMasker(secrets) {
10683
+ return (text) => maskSecretsInText(text, secrets);
10684
+ }
10662
10685
 
10663
10686
  //#endregion
10664
10687
  //#region src/provisioning/config-shape.ts
@@ -15595,7 +15618,7 @@ var CloudControlProvider = class {
15595
15618
  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);
15596
15619
  if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
15597
15620
  this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
15598
- const { ASGProvider } = await import("./asg-provider-C0L3_pHn.js").then((n) => n.n);
15621
+ const { ASGProvider } = await import("./asg-provider-C1NtROYt.js").then((n) => n.n);
15599
15622
  return await new ASGProvider().delete(logicalId, physicalId, resourceType, _properties, context);
15600
15623
  }
15601
15624
  const isProtectedEc2Instance = context?.removeProtection === true && resourceType === "AWS::EC2::Instance";
@@ -22201,21 +22224,52 @@ const SKIP_FINAL_SNAPSHOT_FLAG = "--skip-final-snapshot";
22201
22224
  * engine's five sites (CREATE, the property-driven replacement, the
22202
22225
  * `--recreate-via-*` destroy-then-create, the `--replace` delete-first
22203
22226
  * fallback, and the update-failure replacement) are all driven by freshly
22204
- * resolved TEMPLATE properties, so they deliberately pass no context and the
22205
- * refusal stands where the user can edit the input.
22227
+ * resolved TEMPLATE properties, so they never set THIS FLAG and the refusal
22228
+ * stands where the user can edit the input. They DO pass a context — since
22229
+ * issue #1932 every create site REACHED FROM THE ENGINE carries a
22230
+ * `maskSecrets` capability — so the invariant is "no `replayingState`", not
22231
+ * "no context object". (A provider that re-creates inside its own `update()`
22232
+ * still passes none; see `CreateContext`.)
22206
22233
  *
22207
22234
  * The remaining call sites are the providers that re-create inside their own
22208
22235
  * `update()` (`this.create(...)` in ACM certificate / IAM managed policy / IAM
22209
22236
  * role / Lambda permission / SNS subscription). Those are NOT template-driven
22210
22237
  * — this executor's `revert` arm calls `provider.update(...)` with
22211
22238
  * `previousState.properties`, so they forward a STATE record on a replay — but
22212
- * they CANNOT receive a context, because `update()` has no context parameter.
22239
+ * they CANNOT receive a `CreateContext`: `update()`'s own context is an
22240
+ * `UpdateContext`, which carries no `replayingState` to forward.
22213
22241
  * The constraint that follows is on providers, not on this constant: a
22214
22242
  * provider with a create-side pre-flight refusal must not re-create inside
22215
22243
  * `update()`. See `CreateContext` in `src/types/resource.ts`.
22216
22244
  */
22217
22245
  const REPLAYING_STATE_CREATE_CONTEXT = { replayingState: true };
22218
22246
  /**
22247
+ * The rollback arms' {@link CreateContext}, with this op's secret masker bound
22248
+ * in (issue #1932 item 3).
22249
+ *
22250
+ * The rollback path needs this MORE than the forward deploy does, not less:
22251
+ * {@link resolveReplayProps} deliberately re-resolves every redacted
22252
+ * `{{resolve:...}}` expression back to plaintext before handing the bag to a
22253
+ * provider, so a replayed bag is guaranteed to carry the concrete secret
22254
+ * whenever the resource has one. Leaving the masker off here would have left
22255
+ * the contract applied at one caller and absent at the one whose bag is
22256
+ * provably plaintext.
22257
+ *
22258
+ * Spreads the shared constant rather than mutating it: `maskSecrets` is
22259
+ * per-op, and a module-level object is shared by every op in the run.
22260
+ *
22261
+ * Called AFTER `resolveReplayProps` has filled `secrets` at every call site, so
22262
+ * the masker sees this op's re-resolved values. `createSecretMasker` reads the
22263
+ * bag by reference on every call and so does not depend on that ordering, but
22264
+ * the ordering is what makes it correct here without relying on that.
22265
+ */
22266
+ function replayingStateCreateContext(secrets) {
22267
+ return {
22268
+ ...REPLAYING_STATE_CREATE_CONTEXT,
22269
+ maskSecrets: createSecretMasker(secrets)
22270
+ };
22271
+ }
22272
+ /**
22219
22273
  * Which provisioning layer a delete must be judged against: the CURRENT
22220
22274
  * state record wins (it is what state says AWS holds right now), with the
22221
22275
  * journaled op's routing as the legacy-state fallback. Shared by both
@@ -22770,7 +22824,7 @@ async function replaySingle(op, stateResources, stackName, ctx, resolver, orphan
22770
22824
  let deletedNewFirst = false;
22771
22825
  let createResult;
22772
22826
  try {
22773
- createResult = await withRetry(() => createProvider.create(op.logicalId, op.resourceType, { ...resolvedPrevProps }, REPLAYING_STATE_CREATE_CONTEXT), op.logicalId, {
22827
+ createResult = await withRetry(() => createProvider.create(op.logicalId, op.resourceType, { ...resolvedPrevProps }, replayingStateCreateContext(secrets)), op.logicalId, {
22774
22828
  ...RECREATE_RETRY_SCHEDULE,
22775
22829
  logger,
22776
22830
  ...isInterrupted && {
@@ -22793,7 +22847,7 @@ async function replaySingle(op, stateResources, stackName, ctx, resolver, orphan
22793
22847
  delete stateResources[op.logicalId];
22794
22848
  await afterOp?.(op.logicalId);
22795
22849
  try {
22796
- createResult = await withRetry(() => createProvider.create(op.logicalId, op.resourceType, { ...resolvedPrevProps }, REPLAYING_STATE_CREATE_CONTEXT), op.logicalId, {
22850
+ createResult = await withRetry(() => createProvider.create(op.logicalId, op.resourceType, { ...resolvedPrevProps }, replayingStateCreateContext(secrets)), op.logicalId, {
22797
22851
  ...RECREATE_RETRY_SCHEDULE,
22798
22852
  logger,
22799
22853
  ...isInterrupted && {
@@ -22866,7 +22920,8 @@ async function replaySingle(op, stateResources, stackName, ctx, resolver, orphan
22866
22920
  current.physicalId,
22867
22921
  op.resourceType,
22868
22922
  desiredProps ?? {},
22869
- currentProps ?? {}
22923
+ currentProps ?? {},
22924
+ { maskSecrets: createSecretMasker(secrets) }
22870
22925
  ], op.logicalId, logger, isInterrupted);
22871
22926
  stateResources[op.logicalId] = redactRollbackRecord(recordAfterRollbackUpdate(previousState, revertResult), secrets, previousState.properties);
22872
22927
  const rollbackPartial = updatePartialReason(revertResult);
@@ -23009,7 +23064,8 @@ async function replayFailedOperations(failedOps, stateResources, stackName, ctx,
23009
23064
  current.physicalId,
23010
23065
  op.resourceType,
23011
23066
  desiredProps ?? {},
23012
- attemptedProps ?? {}
23067
+ attemptedProps ?? {},
23068
+ { maskSecrets: createSecretMasker(secrets) }
23013
23069
  ], op.logicalId, logger, options.isInterrupted);
23014
23070
  stateResources[op.logicalId] = redactRollbackRecord(recordAfterRollbackUpdate(prev, revertFailedResult), secrets, prev.properties);
23015
23071
  const revertFailedPartial = updatePartialReason(revertFailedResult);
@@ -23140,7 +23196,7 @@ const FLUSH_INTERVAL_MS = 2e3;
23140
23196
  const FLUSH_EVENT_THRESHOLD = 50;
23141
23197
  /** Build-time cdkd version, with a dev fallback for non-built contexts. */
23142
23198
  function getCdkdVersion() {
23143
- return "0.284.4";
23199
+ return "0.284.5";
23144
23200
  }
23145
23201
  /**
23146
23202
  * Generate a time-sortable unique run id, e.g.
@@ -24908,7 +24964,7 @@ var DeployEngine = class {
24908
24964
  * #960 follow-up) and the name-idempotent same-id guard (issue #1238) so
24909
24965
  * the two --replace escape hatches cannot drift apart.
24910
24966
  */
24911
- async replaceDeleteFirstAndRecreate(logicalId, resourceType, currentResource, oldDeleteProvider, replaceProvider, replaceProps, updateReplacePolicy) {
24967
+ async replaceDeleteFirstAndRecreate(logicalId, resourceType, currentResource, oldDeleteProvider, replaceProvider, replaceProps, createContext, updateReplacePolicy) {
24912
24968
  const finalSnapshotIdentifier = await this.prepareFinalSnapshotForDelete(logicalId, resourceType, currentResource, updateReplacePolicy);
24913
24969
  let deleteResult;
24914
24970
  try {
@@ -24925,7 +24981,7 @@ var DeployEngine = class {
24925
24981
  this.logger.info(` ${green("✓")} Old resource deleted`);
24926
24982
  this.logger.info(` Re-creating ${logicalId}...`);
24927
24983
  try {
24928
- return await withRetry(() => this.withRetry(() => replaceProvider.create(logicalId, resourceType, replaceProps), logicalId, void 0, void 0, replaceProvider), logicalId, {
24984
+ return await withRetry(() => this.withRetry(() => replaceProvider.create(logicalId, resourceType, replaceProps, createContext), logicalId, void 0, void 0, replaceProvider), logicalId, {
24929
24985
  maxRetries: 8,
24930
24986
  initialDelayMs: 2e3,
24931
24987
  maxDelayMs: 1e4,
@@ -24959,6 +25015,7 @@ var DeployEngine = class {
24959
25015
  }, stackName);
24960
25016
  const resolvedProps = await this.resolver.resolve(desiredProps, context);
24961
25017
  this.perResourceTemplateProps.set(logicalId, desiredProps);
25018
+ const createSecrets = context.recordedSecretValues ?? /* @__PURE__ */ new Map();
24962
25019
  if (context.recordedSecretValues) this.perResourceSecrets.set(logicalId, context.recordedSecretValues);
24963
25020
  this.auditResolvedAssetReferences(logicalId, resourceType, resolvedProps);
24964
25021
  this.attemptedResolvedProps.set(logicalId, resolvedProps);
@@ -24968,7 +25025,7 @@ var DeployEngine = class {
24968
25025
  });
24969
25026
  const createProvider = createDecision.provider;
24970
25027
  const createProps = createDecision.provisionedBy === "cc-api" ? this.preparePropertiesForCcApi(resourceType, resolvedProps, logicalId) : resolvedProps;
24971
- const result = await this.withRetry(() => createProvider.create(logicalId, resourceType, createProps), logicalId, void 0, void 0, createProvider);
25028
+ const result = await this.withRetry(() => createProvider.create(logicalId, resourceType, createProps, { maskSecrets: createSecretMasker(createSecrets) }), logicalId, void 0, void 0, createProvider);
24972
25029
  const dependencies = this.extractAllDependencies(template, logicalId);
24973
25030
  const templateAttrs = this.extractTemplateAttributes(template, logicalId);
24974
25031
  stateResources[logicalId] = {
@@ -25079,7 +25136,7 @@ var DeployEngine = class {
25079
25136
  this.logger.info(` ${green("✓")} Old resource deleted`);
25080
25137
  }
25081
25138
  this.logger.info(` Creating new ${logicalId}...`);
25082
- createResult = await withRetry(() => this.withRetry(() => replaceProvider.create(logicalId, resourceType, replaceProps), logicalId, void 0, void 0, replaceProvider), logicalId, {
25139
+ createResult = await withRetry(() => this.withRetry(() => replaceProvider.create(logicalId, resourceType, replaceProps, { maskSecrets: createSecretMasker(updateSecrets) }), logicalId, void 0, void 0, replaceProvider), logicalId, {
25083
25140
  maxRetries: 8,
25084
25141
  initialDelayMs: 2e3,
25085
25142
  maxDelayMs: 1e4,
@@ -25093,7 +25150,7 @@ var DeployEngine = class {
25093
25150
  this.logger.info(` Creating new ${logicalId}...`);
25094
25151
  let deletedOldFirst = false;
25095
25152
  try {
25096
- createResult = await this.withRetry(() => replaceProvider.create(logicalId, resourceType, replaceProps), logicalId, void 0, void 0, replaceProvider);
25153
+ createResult = await this.withRetry(() => replaceProvider.create(logicalId, resourceType, replaceProps, { maskSecrets: createSecretMasker(updateSecrets) }), logicalId, void 0, void 0, replaceProvider);
25097
25154
  } catch (createError) {
25098
25155
  const createMsg = createError instanceof Error ? createError.message : String(createError);
25099
25156
  if (!isNameCollisionError(createMsg)) throw createError;
@@ -25102,7 +25159,7 @@ var DeployEngine = class {
25102
25159
  if (this.options.replace !== true) throw new CdkdError(`${logicalId} (${resourceType}) requires replacement, but the create-first attempt collided with the existing resource: ${createMsg}. ${nameOrigin.descriptor}, so the CloudFormation-style safe replacement order (create the new resource before deleting the old) cannot reuse the occupied name — CloudFormation refuses this shape with "cannot update a stack when a custom-named resource requires replacing". ${nameOrigin.remedy}, or re-run with \`cdkd deploy --replace\` to delete the old resource FIRST and recreate it under the same name (the resource is briefly unavailable while it is recreated).`, "NAMED_REPLACEMENT_COLLISION");
25103
25160
  this.logger.info(` Create-first collided with the existing resource's name and --replace is set — deleting old ${logicalId} (${currentResource.physicalId}) first...`);
25104
25161
  deletedOldFirst = true;
25105
- createResult = await this.replaceDeleteFirstAndRecreate(logicalId, resourceType, currentResource, oldDeleteProvider, replaceProvider, replaceProps, updateReplacePolicy);
25162
+ createResult = await this.replaceDeleteFirstAndRecreate(logicalId, resourceType, currentResource, oldDeleteProvider, replaceProvider, replaceProps, { maskSecrets: createSecretMasker(updateSecrets) }, updateReplacePolicy);
25106
25163
  }
25107
25164
  if (!deletedOldFirst && createResult.physicalId === currentResource.physicalId) {
25108
25165
  const idempotentNameOrigin = this.replacementNameOrigin(logicalId, currentResource.physicalId);
@@ -25110,7 +25167,7 @@ var DeployEngine = class {
25110
25167
  if (this.options.replace !== true) throw new CdkdError(`${logicalId} (${resourceType}) requires replacement, but its Create API is name-idempotent: the create-first attempt returned the EXISTING resource (${currentResource.physicalId}) instead of creating a new one, so deleting the "old" resource would silently destroy the resource the deploy just reported as created. ${idempotentNameOrigin.descriptor}; ${idempotentNameOrigin.remedy}, or re-run with \`cdkd deploy --replace\` to delete the old resource FIRST and recreate it under the same name (the resource is briefly unavailable while it is recreated). Note: this branch is also reached when the old resource was deleted out-of-band and the physical id is name-derived — there the create was a genuine fresh create; \`--replace\` converges that case too.`, "NAMED_REPLACEMENT_IDEMPOTENT_CREATE");
25111
25168
  this.logger.info(` Create-first returned the existing resource (name-idempotent Create API) and --replace is set — deleting old ${logicalId} (${currentResource.physicalId}) first...`);
25112
25169
  deletedOldFirst = true;
25113
- createResult = await this.replaceDeleteFirstAndRecreate(logicalId, resourceType, currentResource, oldDeleteProvider, replaceProvider, replaceProps, updateReplacePolicy);
25170
+ createResult = await this.replaceDeleteFirstAndRecreate(logicalId, resourceType, currentResource, oldDeleteProvider, replaceProvider, replaceProps, { maskSecrets: createSecretMasker(updateSecrets) }, updateReplacePolicy);
25114
25171
  }
25115
25172
  if (deletedOldFirst) {} else if (updateReplacePolicy === "Retain") this.logger.info(` Retaining old ${logicalId} (${currentResource.physicalId}) - UpdateReplacePolicy: Retain`);
25116
25173
  else {
@@ -25170,7 +25227,7 @@ var DeployEngine = class {
25170
25227
  let result;
25171
25228
  let resultProvisionedBy = updateDecision.provisionedBy;
25172
25229
  try {
25173
- result = await this.withRetry(() => updateProvider.update(logicalId, currentResource.physicalId, resourceType, updateProps, currentProps), logicalId, void 0, void 0, updateProvider);
25230
+ result = await this.withRetry(() => updateProvider.update(logicalId, currentResource.physicalId, resourceType, updateProps, currentProps, { maskSecrets: createSecretMasker(updateSecrets) }), logicalId, void 0, void 0, updateProvider);
25174
25231
  } catch (updateError) {
25175
25232
  const msg = updateError instanceof Error ? updateError.message : String(updateError);
25176
25233
  const ccUnsupported = msg.includes("UnsupportedActionException") || msg.includes("does not support UPDATE");
@@ -25202,7 +25259,7 @@ var DeployEngine = class {
25202
25259
  });
25203
25260
  const replProvider = replDecision.provider;
25204
25261
  const replProps = replDecision.provisionedBy === "cc-api" ? this.preparePropertiesForCcApi(resourceType, resolvedProps, logicalId) : resolvedProps;
25205
- const createResult = await this.withRetry(() => replProvider.create(logicalId, resourceType, replProps), logicalId, void 0, void 0, replProvider);
25262
+ const createResult = await this.withRetry(() => replProvider.create(logicalId, resourceType, replProps, { maskSecrets: createSecretMasker(updateSecrets) }), logicalId, void 0, void 0, replProvider);
25206
25263
  const replacementResult = {
25207
25264
  physicalId: createResult.physicalId,
25208
25265
  wasReplaced: true,
@@ -25607,5 +25664,5 @@ var DeployEngine = class {
25607
25664
  };
25608
25665
 
25609
25666
  //#endregion
25610
- export { IntrinsicFunctionResolver as $, StackTerminationProtectionError as $n, buildDenyExternalAccessPolicy as $t, formatResourceLine as A, processStackMessages as An, withRetry as At, isExportAliasCollision as B, DependencyError as Bn, buildAssetRedirectMap as Bt, refusesFinalSnapshot as C, findLargeInlineResources as Cn, s3BucketDualStackDomainName as Ct, MULTI_REGION_RECREATE_BLOCKED_TYPES as D, canonicalizeRegion as Dn, DiffCalculator as Dt, extractDeploymentEventError as E, PARTITION_TABLE as En, applyRoleArnIfSet as Et, red as F, resetAwsClients as Fn, rebuildClientForBucketRegion as Ft, clearOnUpdateRemoval as G, LockError as Gn, stripControlChars as Gt, stateKeySecretExposure as H, LocalInvokeBuildError as Hn, loadPublishableAssetManifest as Ht, yellow as I, setAwsClients as In, shouldRetainResource as It, findSilentDropProperties as J, PartialFailureError as Jn, ensureAssetStorage as Jt, ProviderRegistry as K, MissingCdkCliError as Kn, AssetModeResolver as Kt, collectDeclaredOutputNames as L, AssetError as Ln, AssetPublisher as Lt, cyan as M, resolveBucketRegion as Mn, TemplateParser as Mt, gray as N, AwsClients as Nn, LockManager as Nt, isStatefulRecreateTargetSync as O, derivePartitionAndUrlSuffix as On, INTRINSIC_KEYS as Ot, green as P, getAwsClients as Pn, S3StateBackend as Pt, isTerminationProtectionPropagationError as Q, StackHasActiveImportsError as Qn, validateContainerRepoName as Qt, collectPublishedOutputNames as R, CdkdError as Rn, stringifyValue as Rt, isFinalSnapshotError as S, MIGRATE_TMP_PREFIX as Sn, s3BucketDomainName as St, makeCanonicalizePropertiesFn as T, expectedOwnerParam as Tn, s3BucketWebsiteUrl as Tt, IAMRoleProvider as U, LocalMigrateError as Un, rewriteTemplateAssetReferences as Ut, secretBearingStateKeyWarning as V, DeployCancelledError as Vn, createAssetRedirectResolver as Vt, collectInlinePolicyNamesManagedBySiblings as W, LocalStartServiceError as Wn, escapeRegExp$1 as Wt, slowCcOperationTimeoutMs as X, ResourceTimeoutError as Xn, parseBootstrapMarker as Xt, CloudControlProvider as Y, ProvisioningError as Yn, getBootstrapMarkerKey as Yt, disableInstanceApiTermination as Z, ResourceUpdateNotSupportedError as Zn, validateAssetBucketName as Zt, ATOMIC_FINAL_SNAPSHOT_TYPES as _, resolveUseCdkBootstrapAssets as _n, TEMPLATE_SOURCED_RULES as _t, DeploymentEventsStore as a, AssetManifestLoader as an, withErrorHandling as ar, resolveExplicitPhysicalId as at, ccRoutedFinalSnapshotError as b, CFN_TEMPLATE_BODY_LIMIT as bn, scrubResourceRecord as bt, replayFailedOperations as c, synthesisStatusMessage as cn, isThrottlingError as cr, configBooleanRefusal as ct, updatePartialReason as d, resolveApp as dn, replayWarn as dt, buildDockerImage as en, StateError as er, cfnRefValueFromPhysicalId as et, UNSPECIFIED_SKIP_REASON as f, resolveAutoAssetStorage as fn, requireConfigArray as ft, computeImplicitDeleteEdges as g, resolveStateBucketWithDefaultAndSource as gn, STATE_SOURCED_READBACK_RULES as gt, IMPLICIT_DELETE_DEPENDENCIES as h, resolveStateBucketWithDefault as hn, STATE_SOURCED_CROSS_GENERATION_RULES as ht, DeploymentEventsReader as i, runDockerStreaming as in, normalizeAwsError as ir, normalizeAwsTagsToCfn as it, bold as j, clearBucketRegionCache as jn, DagBuilder as jt, renderStatefulReason as k, AssemblyReader as kn, describeTypeWithThrottleRetry as kt, replayRollback as l, getDefaultStateBucketName as ln, markNonRetryable as lr, configStringRefusal as lt, withResourceDeadline as m, resolveSkipPrefix as mn, requireConfigString as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, getDockerCmd as nn, formatError as nr, refStateLookupFromResource as nt, planFailedOps as o, getDockerImageBySourceHash as on, isMarkedNonRetryable as or, assertRegionMatch as ot, deleteSkipReason as p, resolveCaptureObservedState as pn, requireConfigObject as pt, findActionableSilentDrops as q, NestedStackChildDirectDestroyError as qn, BOOTSTRAP_MARKER_PREFIX as qt, DeployEngine as r, runDockerForeground as rn, isCdkdError as rr, WAFv2WebACLProvider as rt, planRollback as s, Synthesizer as sn, isRetryableTransientError as sr, coerceCfnBoolean as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, formatDockerLoginError as tn, SynthesisError as tr, getAccountInfo as tt, updatePartialMessage as u, getLegacyStateBucketName as un, __exportAll as ur, readConfigString as ut, PRE_DELETE_SNAPSHOT_TYPES as v, stateBucketExistenceConfirmed as vn, maskSecretsInText as vt, unsupportedFinalSnapshotError as w, uploadCfnTemplate as wn, s3BucketRegionalDomainName as wt, createPreDeleteFinalSnapshot as x, CFN_TEMPLATE_URL_LIMIT as xn, s3BucketArn as xt, buildFinalSnapshotIdentifier as y, warnDeprecatedNoPrefixCliFlag as yn, redactSecretsForState as yt, exportAliasCollisionScrubWarning as z, ConfigError as zn, WorkGraph as zt };
25611
- //# sourceMappingURL=deploy-engine-3Z7P1hKs.js.map
25667
+ export { IntrinsicFunctionResolver as $, StackHasActiveImportsError as $n, validateContainerRepoName as $t, formatResourceLine as A, AssemblyReader as An, describeTypeWithThrottleRetry as At, isExportAliasCollision as B, ConfigError as Bn, WorkGraph as Bt, refusesFinalSnapshot as C, MIGRATE_TMP_PREFIX as Cn, s3BucketDomainName as Ct, MULTI_REGION_RECREATE_BLOCKED_TYPES as D, PARTITION_TABLE as Dn, applyRoleArnIfSet as Dt, extractDeploymentEventError as E, expectedOwnerParam as En, s3BucketWebsiteUrl as Et, red as F, getAwsClients as Fn, S3StateBackend as Ft, clearOnUpdateRemoval as G, LocalStartServiceError as Gn, escapeRegExp$1 as Gt, stateKeySecretExposure as H, DeployCancelledError as Hn, createAssetRedirectResolver as Ht, yellow as I, resetAwsClients as In, rebuildClientForBucketRegion as It, findSilentDropProperties as J, NestedStackChildDirectDestroyError as Jn, BOOTSTRAP_MARKER_PREFIX as Jt, ProviderRegistry as K, LockError as Kn, stripControlChars as Kt, collectDeclaredOutputNames as L, setAwsClients as Ln, shouldRetainResource as Lt, cyan as M, clearBucketRegionCache as Mn, DagBuilder as Mt, gray as N, resolveBucketRegion as Nn, TemplateParser as Nt, isStatefulRecreateTargetSync as O, canonicalizeRegion as On, DiffCalculator as Ot, green as P, AwsClients as Pn, LockManager as Pt, isTerminationProtectionPropagationError as Q, ResourceUpdateNotSupportedError as Qn, validateAssetBucketName as Qt, collectPublishedOutputNames as R, AssetError as Rn, AssetPublisher as Rt, isFinalSnapshotError as S, CFN_TEMPLATE_URL_LIMIT as Sn, s3BucketArn as St, makeCanonicalizePropertiesFn as T, uploadCfnTemplate as Tn, s3BucketRegionalDomainName as Tt, IAMRoleProvider as U, LocalInvokeBuildError as Un, loadPublishableAssetManifest as Ut, secretBearingStateKeyWarning as V, DependencyError as Vn, buildAssetRedirectMap as Vt, collectInlinePolicyNamesManagedBySiblings as W, LocalMigrateError as Wn, rewriteTemplateAssetReferences as Wt, slowCcOperationTimeoutMs as X, ProvisioningError as Xn, getBootstrapMarkerKey as Xt, CloudControlProvider as Y, PartialFailureError as Yn, ensureAssetStorage as Yt, disableInstanceApiTermination as Z, ResourceTimeoutError as Zn, parseBootstrapMarker as Zt, ATOMIC_FINAL_SNAPSHOT_TYPES as _, resolveStateBucketWithDefaultAndSource as _n, TEMPLATE_SOURCED_RULES as _t, DeploymentEventsStore as a, runDockerStreaming as an, normalizeAwsError as ar, resolveExplicitPhysicalId as at, ccRoutedFinalSnapshotError as b, warnDeprecatedNoPrefixCliFlag as bn, redactSecretsForState as bt, replayFailedOperations as c, Synthesizer as cn, isRetryableTransientError as cr, configBooleanRefusal as ct, updatePartialReason as d, getLegacyStateBucketName as dn, __exportAll as dr, replayWarn as dt, buildDenyExternalAccessPolicy as en, StackTerminationProtectionError as er, cfnRefValueFromPhysicalId as et, UNSPECIFIED_SKIP_REASON as f, resolveApp as fn, requireConfigArray as ft, computeImplicitDeleteEdges as g, resolveStateBucketWithDefault as gn, STATE_SOURCED_READBACK_RULES as gt, IMPLICIT_DELETE_DEPENDENCIES as h, resolveSkipPrefix as hn, STATE_SOURCED_CROSS_GENERATION_RULES as ht, DeploymentEventsReader as i, runDockerForeground as in, isCdkdError as ir, normalizeAwsTagsToCfn as it, bold as j, processStackMessages as jn, withRetry as jt, renderStatefulReason as k, derivePartitionAndUrlSuffix as kn, INTRINSIC_KEYS as kt, replayRollback as l, synthesisStatusMessage as ln, isThrottlingError as lr, configStringRefusal as lt, withResourceDeadline as m, resolveCaptureObservedState as mn, requireConfigString as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, formatDockerLoginError as nn, SynthesisError as nr, refStateLookupFromResource as nt, planFailedOps as o, AssetManifestLoader as on, withErrorHandling as or, assertRegionMatch as ot, deleteSkipReason as p, resolveAutoAssetStorage as pn, requireConfigObject as pt, findActionableSilentDrops as q, MissingCdkCliError as qn, AssetModeResolver as qt, DeployEngine as r, getDockerCmd as rn, formatError as rr, WAFv2WebACLProvider as rt, planRollback as s, getDockerImageBySourceHash as sn, isMarkedNonRetryable as sr, coerceCfnBoolean as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, buildDockerImage as tn, StateError as tr, getAccountInfo as tt, updatePartialMessage as u, getDefaultStateBucketName as un, markNonRetryable as ur, readConfigString as ut, PRE_DELETE_SNAPSHOT_TYPES as v, resolveUseCdkBootstrapAssets as vn, createSecretMasker as vt, unsupportedFinalSnapshotError as w, findLargeInlineResources as wn, s3BucketDualStackDomainName as wt, createPreDeleteFinalSnapshot as x, CFN_TEMPLATE_BODY_LIMIT as xn, scrubResourceRecord as xt, buildFinalSnapshotIdentifier as y, stateBucketExistenceConfirmed as yn, maskSecretsInText as yt, exportAliasCollisionScrubWarning as z, CdkdError as zn, stringifyValue as zt };
25668
+ //# sourceMappingURL=deploy-engine-BKSfYWps.js.map