@go-to-k/cdkd 0.283.3 → 0.283.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.
@@ -8234,6 +8234,84 @@ const THROTTLING_ERROR_NAMES = /* @__PURE__ */ new Set([
8234
8234
  "TransactionInProgressException"
8235
8235
  ]);
8236
8236
  /**
8237
+ * Marker for an error cdkd raised as a DELIBERATE refusal rather than as a
8238
+ * relayed AWS failure (issue [#1778](https://github.com/go-to-k/cdkd/issues/1778)).
8239
+ *
8240
+ * Every classifier below is SUBSTRING-based, which is the right shape for
8241
+ * relaying a vendor's message and the wrong one for cdkd's own prose: a
8242
+ * refusal message is assembled from values cdkd does not control — a provider
8243
+ * `reason`, a state-borne physicalId, a template logical id — and any of them
8244
+ * can happen to contain a retryable pattern. Measured: a resource named
8245
+ * `MyDependencyViolationSub` puts `DependencyViolation` in the message, so a
8246
+ * deterministic refusal was classified transient and burned the whole backoff
8247
+ * schedule before failing exactly as it would have immediately. Keeping the
8248
+ * offending values OUT of the message narrows that surface but cannot close
8249
+ * it, because a message with no identifiers at all is not diagnosable.
8250
+ *
8251
+ * A marker inverts the burden: the raiser STATES that the error is terminal,
8252
+ * so no wording can make it retryable. Deliberately a `Symbol.for` key —
8253
+ * global-registry symbols survive a duplicated module instance (dual
8254
+ * bundling), where a module-local symbol would silently stop matching — and
8255
+ * non-enumerable, so it cannot leak into a serialized error payload.
8256
+ */
8257
+ const NON_RETRYABLE_MARKER = Symbol.for("cdkd.nonRetryable");
8258
+ /**
8259
+ * Mark a cdkd-authored refusal as terminal and return it, for
8260
+ * `throw markNonRetryable(new ProvisioningError(...))`.
8261
+ *
8262
+ * Reach for it when the error means "this cannot succeed on a retry" as a
8263
+ * matter of cdkd's own logic — NOT for a relayed AWS failure, whose
8264
+ * retryability is the classifiers' business.
8265
+ *
8266
+ * KNOWN LIVE INSTANCE NOT YET COVERED: `ResourceUpdateNotSupportedError`
8267
+ * (`src/utils/error-handler.ts`) interpolates the logical id and is thrown by
8268
+ * ~20 providers from inside the retried `update()` in `deploy-engine.ts`, so a
8269
+ * stack with a resource named e.g. `MyDependencyViolationSub` burns the full
8270
+ * ~47s backoff schedule before the `--replace` fallback is even reached. That
8271
+ * is a LIVE occurrence of the class this marker exists for, unlike the
8272
+ * latent-today SNS abort that motivated it. Marking it belongs in that error's
8273
+ * constructor, in a file this change does not own; tracked separately.
8274
+ */
8275
+ function markNonRetryable(error) {
8276
+ if (!Object.isExtensible(error)) return error;
8277
+ Object.defineProperty(error, NON_RETRYABLE_MARKER, {
8278
+ value: true,
8279
+ enumerable: false,
8280
+ configurable: true,
8281
+ writable: false
8282
+ });
8283
+ return error;
8284
+ }
8285
+ /**
8286
+ * True when the error, or anything in its bounded `.cause` chain, was marked
8287
+ * by {@link markNonRetryable}.
8288
+ *
8289
+ * The chain walk mirrors {@link isThrottlingError}'s: cdkd wraps errors, so a
8290
+ * marked refusal can end up one or more links deep, and a marker that stopped
8291
+ * counting after a single wrap would be a fence that quietly falls open.
8292
+ *
8293
+ * That reach is DIRECTIONAL, and the upward direction is a hazard worth
8294
+ * stating. Downward — a marked refusal wrapped by an outer error — is the
8295
+ * intended case and stays terminal. UPWARD is the inverse: wrapping a marked
8296
+ * refusal as the `cause` of a genuinely RETRYABLE outer error
8297
+ * (`new Error(msg, { cause: markedRefusal })`) makes the outer error terminal
8298
+ * too, because this walk finds the marker on the cause. Unconstructible today
8299
+ * (`ProvisioningError` is built with no `cause` at the one marking site), and
8300
+ * the failure is fail-fast rather than silent, but a future wrapper that
8301
+ * carries a marked cause into a transient error would stop retrying something
8302
+ * that should retry. Strip or re-raise the cause there rather than nesting it.
8303
+ */
8304
+ function isMarkedNonRetryable(error) {
8305
+ let current = error;
8306
+ for (let depth = 0; depth < 5 && current != null; depth++) {
8307
+ if (typeof current === "object" || typeof current === "function") {
8308
+ if (current[NON_RETRYABLE_MARKER] === true) return true;
8309
+ }
8310
+ current = current.cause;
8311
+ }
8312
+ return false;
8313
+ }
8314
+ /**
8237
8315
  * Walk the error + its `.cause` chain (bounded) looking for a rate-limit
8238
8316
  * signal — either an AWS SDK v3 throttling error `name`
8239
8317
  * ({@link THROTTLING_ERROR_NAMES}) or a retryable HTTP status
@@ -8262,6 +8340,10 @@ function isThrottlingError(error) {
8262
8340
  * Determine whether an AWS error should be retried.
8263
8341
  *
8264
8342
  * Checks (in order):
8343
+ * 0. {@link isMarkedNonRetryable} — a cdkd-authored refusal is terminal by
8344
+ * declaration, ahead of every message / name heuristic below. FIRST on
8345
+ * purpose: the marker states the error cannot succeed on a retry, so
8346
+ * nothing a later check reads out of the message can overturn it.
8265
8347
  * 1. Rate-limit signal on the error or any wrapped cause — throttling error
8266
8348
  * `name` or retryable HTTP status (most AWS throttles are HTTP 400, not
8267
8349
  * 429, so the name check carries most of the weight). See
@@ -8269,6 +8351,7 @@ function isThrottlingError(error) {
8269
8351
  * 2. Substring match against {@link RETRYABLE_ERROR_MESSAGE_PATTERNS}
8270
8352
  */
8271
8353
  function isRetryableTransientError(error, message) {
8354
+ if (isMarkedNonRetryable(error)) return false;
8272
8355
  if (isThrottlingError(error)) return true;
8273
8356
  return RETRYABLE_ERROR_MESSAGE_PATTERNS.some((p) => message.includes(p));
8274
8357
  }
@@ -8448,7 +8531,11 @@ const defaultSleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
8448
8531
  * a throttle backs OFF exponentially for that attempt instead of hammering.
8449
8532
  *
8450
8533
  * Non-retryable errors are rethrown immediately. The transient-error
8451
- * classifier is `isRetryableTransientError` from ./retryable-errors.ts.
8534
+ * classifier is `isRetryableTransientError` from ./retryable-errors.ts, or
8535
+ * `opts.isRetryable` when the caller supplies one — EXCEPT for an error marked
8536
+ * by `markNonRetryable`, which is rethrown ahead of either, so a deliberate
8537
+ * cdkd refusal cannot be turned back into a retry by a custom classifier
8538
+ * (issue #1778).
8452
8539
  */
8453
8540
  async function withRetry(operation, logicalId, opts = {}) {
8454
8541
  const maxRetries = opts.maxRetries ?? 8;
@@ -8464,6 +8551,7 @@ async function withRetry(operation, logicalId, opts = {}) {
8464
8551
  } catch (error) {
8465
8552
  lastError = error;
8466
8553
  const message = error instanceof Error ? error.message : String(error);
8554
+ if (isMarkedNonRetryable(error)) throw error;
8467
8555
  const retryable = opts.isRetryable ? opts.isRetryable(message, error) : isRetryableTransientError(error, message);
8468
8556
  const propagation = defaultSchedule && isIamPropagationError(message);
8469
8557
  if (propagation) sawPropagation = true;
@@ -13775,7 +13863,11 @@ var CloudControlProvider = class {
13775
13863
  if (error.ccErrorCode === "ResourceConflict") return;
13776
13864
  this.logger.info(`CREATE of ${logicalId} failed after materializing ${error.physicalId}; deleting the remnant so a retry can re-create it`);
13777
13865
  try {
13778
- await this.delete(logicalId, error.physicalId, resourceType);
13866
+ const cleanupResult = await this.delete(logicalId, error.physicalId, resourceType);
13867
+ if (cleanupResult?.outcome === "skipped") {
13868
+ this.logger.warn(`Skipped deleting the remnant ${error.physicalId} left by the failed CREATE of ${logicalId}: ${cleanupResult.reason} — a retry may fail with AlreadyExists until it is removed manually`);
13869
+ return;
13870
+ }
13779
13871
  this.logger.debug(`Removed failed-create remnant ${error.physicalId} for ${logicalId}`);
13780
13872
  } catch (cleanupError) {
13781
13873
  const message = cleanupError instanceof Error ? cleanupError.message : String(cleanupError);
@@ -13845,9 +13937,8 @@ var CloudControlProvider = class {
13845
13937
  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);
13846
13938
  if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
13847
13939
  this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
13848
- const { ASGProvider } = await import("./asg-provider-CtmogXk9.js").then((n) => n.n);
13849
- await new ASGProvider().delete(logicalId, physicalId, resourceType, _properties, context);
13850
- return;
13940
+ const { ASGProvider } = await import("./asg-provider-B9eSuRPc.js").then((n) => n.n);
13941
+ return await new ASGProvider().delete(logicalId, physicalId, resourceType, _properties, context);
13851
13942
  }
13852
13943
  const isProtectedEc2Instance = context?.removeProtection === true && resourceType === "AWS::EC2::Instance";
13853
13944
  if (isProtectedEc2Instance) await disableInstanceApiTermination(getAwsClients().ec2, physicalId, this.logger);
@@ -14506,6 +14597,32 @@ var CloudControlProvider = class {
14506
14597
  //#endregion
14507
14598
  //#region src/provisioning/providers/custom-resource-provider.ts
14508
14599
  /**
14600
+ * The short `ResourceDeleteResult.reason` the no-properties DELETE arm reports
14601
+ * (issue [#1770](https://github.com/go-to-k/cdkd/issues/1770)).
14602
+ *
14603
+ * Rendered inline on the destroy status line, so it is the SHORT form; the full
14604
+ * remediation sentence goes out as the `logger.warn` beside it.
14605
+ */
14606
+ const CR_NO_PROPERTIES_SKIP_REASON = "no properties in state — Delete handler not invoked";
14607
+ /**
14608
+ * Sibling of {@link CR_NO_PROPERTIES_SKIP_REASON} for the arm where properties
14609
+ * exist but carry no `ServiceToken`. Distinct because the repair differs: one
14610
+ * record lost everything, the other lost the one field that names the handler.
14611
+ */
14612
+ const CR_NO_SERVICE_TOKEN_SKIP_REASON = "no ServiceToken in state — Delete handler not invoked";
14613
+ /**
14614
+ * The deploy-side caveat both skip warnings in this file carry (issue
14615
+ * [#1762](https://github.com/go-to-k/cdkd/issues/1762)).
14616
+ *
14617
+ * "Repair state.json and re-run" is only true on DESTROY, where the skip KEEPS
14618
+ * the record. The same arms are ALSO reached from `deploy-engine.ts` and
14619
+ * `rollback-executor.ts`, which discard the delete result and DROP the record —
14620
+ * there the id is gone, so re-running cannot help and the resource has to be
14621
+ * torn down by hand. Mirrors the caveat `compositeIdFormatMessage` already
14622
+ * carries for the composite-id family.
14623
+ */
14624
+ const DEPLOY_SKIP_CAVEAT = "NOTE this arm is ALSO reached from cdkd deploy (the DELETE of a resource removed from the template, plus the replacement / rollback deletes), which DROP the state record and report success (https://github.com/go-to-k/cdkd/issues/1762) — there, tear the resource down by hand.";
14625
+ /**
14509
14626
  * Type guard to validate Lambda response payload structure
14510
14627
  */
14511
14628
  function isCustomResourceResponsePayload(value) {
@@ -14931,13 +15048,19 @@ var CustomResourceProvider = class CustomResourceProvider {
14931
15048
  async delete(logicalId, physicalId, resourceType, properties, _context) {
14932
15049
  this.logger.debug(`Deleting custom resource ${logicalId}: ${physicalId} (${resourceType})`);
14933
15050
  if (!properties) {
14934
- this.logger.warn(`No properties available for custom resource ${logicalId}, skipping deletion`);
14935
- return;
15051
+ this.logger.warn(`No properties available for custom resource ${logicalId}, skipping deletion — the handler is never invoked, so anything this custom resource manages is LEFT IN PLACE. Restore the record's properties in state.json and re-run, or tear the resource down by hand. ${DEPLOY_SKIP_CAVEAT}`);
15052
+ return {
15053
+ outcome: "skipped",
15054
+ reason: CR_NO_PROPERTIES_SKIP_REASON
15055
+ };
14936
15056
  }
14937
15057
  const serviceToken = properties["ServiceToken"];
14938
15058
  if (!serviceToken) {
14939
- this.logger.warn(`No ServiceToken found for custom resource ${logicalId}, skipping deletion`);
14940
- return;
15059
+ this.logger.warn(`No ServiceToken found for custom resource ${logicalId}, skipping deletion — there is no handler to send the Delete request to, so anything this custom resource manages is LEFT IN PLACE. Restore ServiceToken in state.json and re-run, or tear the resource down by hand. ${DEPLOY_SKIP_CAVEAT}`);
15060
+ return {
15061
+ outcome: "skipped",
15062
+ reason: CR_NO_SERVICE_TOKEN_SKIP_REASON
15063
+ };
14941
15064
  }
14942
15065
  if (typeof serviceToken !== "string") throw new ProvisioningError(`Custom Resource ${logicalId}: ServiceToken is not a resolved string ARN (got ${typeof serviceToken}). This usually indicates state was written by a pre-fix cdkd import; re-run \`cdkd import\` or \`cdkd state orphan <stack>\` to recover.`, resourceType, logicalId, physicalId);
14943
15066
  if (!this.isSnsServiceToken(serviceToken) && await this.isBackingLambdaGone(serviceToken)) {
@@ -15881,7 +16004,11 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
15881
16004
  "TreatMissingData",
15882
16005
  "Unit"
15883
16006
  ]),
15884
- silentDrop: /* @__PURE__ */ new Map([["EvaluationCriteria", "Absent from both the SDK PutMetricAlarm input and the aws-cdk-lib CfnAlarm L1 (a newer CFn-schema-only property ahead of SDK/CDK support); no wire path to forward it and no CDK app can emit it."], ["EvaluationInterval", "Absent from both the SDK PutMetricAlarm input and the aws-cdk-lib CfnAlarm L1 (a newer CFn-schema-only property ahead of SDK/CDK support); no wire path to forward it and no CDK app can emit it."]])
16007
+ silentDrop: /* @__PURE__ */ new Map([
16008
+ ["EvaluationCriteria", "Absent from both the SDK PutMetricAlarm input and the aws-cdk-lib CfnAlarm L1 (a newer CFn-schema-only property ahead of SDK/CDK support); no wire path to forward it and no CDK app can emit it."],
16009
+ ["EvaluationInterval", "Absent from both the SDK PutMetricAlarm input and the aws-cdk-lib CfnAlarm L1 (a newer CFn-schema-only property ahead of SDK/CDK support); no wire path to forward it and no CDK app can emit it."],
16010
+ ["EvaluationWindow", "not yet implemented by cdkd"]
16011
+ ])
15885
16012
  }],
15886
16013
  ["AWS::CloudWatch::AnomalyDetector", {
15887
16014
  handled: /* @__PURE__ */ new Set([
@@ -15970,7 +16097,11 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
15970
16097
  "WebAuthnRelyingPartyID",
15971
16098
  "WebAuthnUserVerification"
15972
16099
  ]),
15973
- silentDrop: /* @__PURE__ */ new Map([["WebAuthnFactorConfiguration", "No SDK wire path: @aws-sdk/client-cognito-identity-provider has no field accepting SINGLE_FACTOR | MULTI_FACTOR_WITH_USER_VERIFICATION (not on CreateUserPool/UpdateUserPool, nor SetUserPoolMfaConfig.WebAuthnConfiguration which only carries RelyingPartyId/UserVerification); CC-API-registry-only property"]])
16100
+ silentDrop: /* @__PURE__ */ new Map([
16101
+ ["IssuerConfiguration", "not yet implemented by cdkd"],
16102
+ ["KeyConfiguration", "not yet implemented by cdkd"],
16103
+ ["WebAuthnFactorConfiguration", "No SDK wire path: @aws-sdk/client-cognito-identity-provider has no field accepting SINGLE_FACTOR | MULTI_FACTOR_WITH_USER_VERIFICATION (not on CreateUserPool/UpdateUserPool, nor SetUserPoolMfaConfig.WebAuthnConfiguration which only carries RelyingPartyId/UserVerification); CC-API-registry-only property"]
16104
+ ])
15974
16105
  }],
15975
16106
  ["AWS::DLM::LifecyclePolicy", {
15976
16107
  handled: /* @__PURE__ */ new Set([
@@ -16219,7 +16350,7 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
16219
16350
  "VpcEndpointId",
16220
16351
  "VpcPeeringConnectionId"
16221
16352
  ]),
16222
- silentDrop: /* @__PURE__ */ new Map()
16353
+ silentDrop: /* @__PURE__ */ new Map([["OdbNetworkArn", "not yet implemented by cdkd"]])
16223
16354
  }],
16224
16355
  ["AWS::EC2::RouteTable", {
16225
16356
  handled: /* @__PURE__ */ new Set(["Tags", "VpcId"]),
@@ -16290,7 +16421,11 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
16290
16421
  "InstanceTenancy",
16291
16422
  "Tags"
16292
16423
  ]),
16293
- silentDrop: /* @__PURE__ */ new Map([["Ipv4IpamPoolId", "not yet implemented by cdkd"], ["Ipv4NetmaskLength", "not yet implemented by cdkd"]])
16424
+ silentDrop: /* @__PURE__ */ new Map([
16425
+ ["Ipv4IpamPoolId", "not yet implemented by cdkd"],
16426
+ ["Ipv4NetmaskLength", "not yet implemented by cdkd"],
16427
+ ["VpcEncryptionControl", "not yet implemented by cdkd"]
16428
+ ])
16294
16429
  }],
16295
16430
  ["AWS::EC2::VPCGatewayAttachment", {
16296
16431
  handled: /* @__PURE__ */ new Set(["InternetGatewayId", "VpcId"]),
@@ -16464,7 +16599,7 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
16464
16599
  "Protocol",
16465
16600
  "SslPolicy"
16466
16601
  ]),
16467
- silentDrop: /* @__PURE__ */ new Map()
16602
+ silentDrop: /* @__PURE__ */ new Map([["Tags", "not yet implemented by cdkd"]])
16468
16603
  }],
16469
16604
  ["AWS::ElasticLoadBalancingV2::LoadBalancer", {
16470
16605
  handled: /* @__PURE__ */ new Set([
@@ -17034,6 +17169,8 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
17034
17169
  ["CopyTagsToSnapshot", "not yet implemented by cdkd"],
17035
17170
  ["DBInstanceParameterGroupName", "not yet implemented by cdkd"],
17036
17171
  ["EnableCloudwatchLogsExports", "not yet implemented by cdkd"],
17172
+ ["GlobalClusterIdentifier", "not yet implemented by cdkd"],
17173
+ ["NetworkType", "not yet implemented by cdkd"],
17037
17174
  ["RestoreToTime", "not yet implemented by cdkd"],
17038
17175
  ["RestoreType", "not yet implemented by cdkd"],
17039
17176
  ["ServerlessScalingConfiguration", "not yet implemented by cdkd"],
@@ -17577,6 +17714,7 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
17577
17714
  silentDrop: /* @__PURE__ */ new Map([
17578
17715
  ["ApplicationConfig", "not yet implemented by cdkd"],
17579
17716
  ["DataProtectionConfig", "not yet implemented by cdkd"],
17717
+ ["MonetizationConfig", "not yet implemented by cdkd"],
17580
17718
  ["OnSourceDDoSProtectionConfig", "not yet implemented by cdkd"]
17581
17719
  ])
17582
17720
  }]
@@ -18306,7 +18444,8 @@ var IAMRoleProvider = class {
18306
18444
  this.logger.debug(`${reason} changed, replacing role: ${physicalId} (${reason}: ${reason === "RoleName" ? `${physicalId} -> ${newRoleName}` : `${oldPath} -> ${newPath}`})`);
18307
18445
  const createResult = await this.create(logicalId, resourceType, properties);
18308
18446
  try {
18309
- await this.delete(logicalId, physicalId, resourceType);
18447
+ const deleteResult = await this.delete(logicalId, physicalId, resourceType);
18448
+ if (deleteResult?.outcome === "skipped") this.logger.warn(`Skipped deleting old role ${physicalId} during replacement: ${deleteResult.reason}. The old role may be orphaned and require manual cleanup.`);
18310
18449
  } catch (error) {
18311
18450
  this.logger.warn(`Failed to delete old role ${physicalId} during replacement: ${String(error)}. The old role may be orphaned and require manual cleanup.`);
18312
18451
  }
@@ -20762,7 +20901,7 @@ const FLUSH_INTERVAL_MS = 2e3;
20762
20901
  const FLUSH_EVENT_THRESHOLD = 50;
20763
20902
  /** Build-time cdkd version, with a dev fallback for non-built contexts. */
20764
20903
  function getCdkdVersion() {
20765
- return "0.283.3";
20904
+ return "0.283.5";
20766
20905
  }
20767
20906
  /**
20768
20907
  * Generate a time-sortable unique run id, e.g.
@@ -22930,5 +23069,5 @@ var DeployEngine = class {
22930
23069
  };
22931
23070
 
22932
23071
  //#endregion
22933
- export { configStringRefusal as $, resolveStateBucketWithDefaultAndSource as $t, green as A, NestedStackChildDirectDestroyError as An, BOOTSTRAP_MARKER_PREFIX as At, slowCcOperationTimeoutMs as B, isCdkdError as Bn, runDockerForeground as Bt, MULTI_REGION_RECREATE_BLOCKED_TYPES as C, DependencyError as Cn, stringifyValue as Ct, bold as D, LocalStartServiceError as Dn, loadPublishableAssetManifest as Dt, formatResourceLine as E, LocalMigrateError as En, createAssetRedirectResolver as Et, clearOnUpdateRemoval as F, StackHasActiveImportsError as Fn, validateContainerRepoName as Ft, getAccountInfo as G, synthesisStatusMessage as Gt, isTerminationProtectionPropagationError as H, withErrorHandling as Hn, AssetManifestLoader as Ht, ProviderRegistry as I, StackTerminationProtectionError as In, buildDenyExternalAccessPolicy as It, normalizeAwsTagsToCfn as J, resolveApp as Jt, refStateLookupFromResource as K, getDefaultStateBucketName as Kt, findActionableSilentDrops as L, StateError as Ln, buildDockerImage as Lt, yellow as M, ProvisioningError as Mn, getBootstrapMarkerKey as Mt, IAMRoleProvider as N, ResourceTimeoutError as Nn, parseBootstrapMarker as Nt, cyan as O, LockError as On, rewriteTemplateAssetReferences as Ot, collectInlinePolicyNamesManagedBySiblings as P, ResourceUpdateNotSupportedError as Pn, validateAssetBucketName as Pt, configBooleanRefusal as Q, resolveStateBucketWithDefault as Qt, findSilentDropProperties as R, SynthesisError as Rn, formatDockerLoginError as Rt, extractDeploymentEventError as S, ConfigError as Sn, AssetPublisher as St, renderStatefulReason as T, LocalInvokeBuildError as Tn, buildAssetRedirectMap as Tt, IntrinsicFunctionResolver as U, __exportAll as Un, getDockerImageBySourceHash as Ut, disableInstanceApiTermination as V, normalizeAwsError as Vn, runDockerStreaming as Vt, cfnRefValueFromPhysicalId as W, Synthesizer as Wt, assertRegionMatch as X, resolveCaptureObservedState as Xt, resolveExplicitPhysicalId as Y, resolveAutoAssetStorage as Yt, coerceCfnBoolean as Z, resolveSkipPrefix as Zt, createPreDeleteFinalSnapshot as _, getAwsClients as _n, TemplateParser as _t, DeploymentEventsStore as a, MIGRATE_TMP_PREFIX as an, s3BucketArn as at, unsupportedFinalSnapshotError as b, AssetError as bn, rebuildClientForBucketRegion as bt, replayFailedOperations as c, expectedOwnerParam as cn, s3BucketRegionalDomainName as ct, IMPLICIT_DELETE_DEPENDENCIES as d, derivePartitionAndUrlSuffix as dn, DiffCalculator as dt, resolveUseCdkBootstrapAssets as en, readConfigString as et, computeImplicitDeleteEdges as f, AssemblyReader as fn, describeTypeWithThrottleRetry as ft, ccRoutedFinalSnapshotError as g, AwsClients as gn, DagBuilder as gt, buildFinalSnapshotIdentifier as h, resolveBucketRegion as hn, isThrottlingError as ht, DeploymentEventsReader as i, CFN_TEMPLATE_URL_LIMIT as in, requireConfigString as it, red as j, PartialFailureError as jn, ensureAssetStorage as jt, gray as k, MissingCdkCliError as kn, AssetModeResolver as kt, replayRollback as l, PARTITION_TABLE as ln, s3BucketWebsiteUrl as lt, PRE_DELETE_SNAPSHOT_TYPES as m, clearBucketRegionCache as mn, isRetryableTransientError as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, warnDeprecatedNoPrefixCliFlag as nn, requireConfigArray as nt, planFailedOps as o, findLargeInlineResources as on, s3BucketDomainName as ot, ATOMIC_FINAL_SNAPSHOT_TYPES as p, processStackMessages as pn, withRetry as pt, WAFv2WebACLProvider as q, getLegacyStateBucketName as qt, DeployEngine as r, CFN_TEMPLATE_BODY_LIMIT as rn, requireConfigObject as rt, planRollback as s, uploadCfnTemplate as sn, s3BucketDualStackDomainName as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, stateBucketExistenceConfirmed as tn, replayWarn as tt, withResourceDeadline as u, canonicalizeRegion as un, applyRoleArnIfSet as ut, isFinalSnapshotError as v, resetAwsClients as vn, LockManager as vt, isStatefulRecreateTargetSync as w, DeployCancelledError as wn, WorkGraph as wt, makeCanonicalizePropertiesFn as x, CdkdError as xn, shouldRetainResource as xt, refusesFinalSnapshot as y, setAwsClients as yn, S3StateBackend as yt, CloudControlProvider as z, formatError as zn, getDockerCmd as zt };
22934
- //# sourceMappingURL=deploy-engine-DxpS3fJ9.js.map
23072
+ export { configStringRefusal as $, resolveSkipPrefix as $t, green as A, LockError as An, rewriteTemplateAssetReferences as At, slowCcOperationTimeoutMs as B, SynthesisError as Bn, formatDockerLoginError as Bt, MULTI_REGION_RECREATE_BLOCKED_TYPES as C, CdkdError as Cn, shouldRetainResource as Ct, bold as D, LocalInvokeBuildError as Dn, buildAssetRedirectMap as Dt, formatResourceLine as E, DeployCancelledError as En, WorkGraph as Et, clearOnUpdateRemoval as F, ResourceTimeoutError as Fn, parseBootstrapMarker as Ft, getAccountInfo as G, __exportAll as Gn, getDockerImageBySourceHash as Gt, isTerminationProtectionPropagationError as H, isCdkdError as Hn, runDockerForeground as Ht, ProviderRegistry as I, ResourceUpdateNotSupportedError as In, validateAssetBucketName as It, normalizeAwsTagsToCfn as J, getDefaultStateBucketName as Jt, refStateLookupFromResource as K, Synthesizer as Kt, findActionableSilentDrops as L, StackHasActiveImportsError as Ln, validateContainerRepoName as Lt, yellow as M, NestedStackChildDirectDestroyError as Mn, BOOTSTRAP_MARKER_PREFIX as Mt, IAMRoleProvider as N, PartialFailureError as Nn, ensureAssetStorage as Nt, cyan as O, LocalMigrateError as On, createAssetRedirectResolver as Ot, collectInlinePolicyNamesManagedBySiblings as P, ProvisioningError as Pn, getBootstrapMarkerKey as Pt, configBooleanRefusal as Q, resolveCaptureObservedState as Qt, findSilentDropProperties as R, StackTerminationProtectionError as Rn, buildDenyExternalAccessPolicy as Rt, extractDeploymentEventError as S, AssetError as Sn, rebuildClientForBucketRegion as St, renderStatefulReason as T, DependencyError as Tn, stringifyValue as Tt, IntrinsicFunctionResolver as U, normalizeAwsError as Un, runDockerStreaming as Ut, disableInstanceApiTermination as V, formatError as Vn, getDockerCmd as Vt, cfnRefValueFromPhysicalId as W, withErrorHandling as Wn, AssetManifestLoader as Wt, assertRegionMatch as X, resolveApp as Xt, resolveExplicitPhysicalId as Y, getLegacyStateBucketName as Yt, coerceCfnBoolean as Z, resolveAutoAssetStorage as Zt, createPreDeleteFinalSnapshot as _, resolveBucketRegion as _n, markNonRetryable as _t, DeploymentEventsStore as a, CFN_TEMPLATE_BODY_LIMIT as an, s3BucketArn as at, unsupportedFinalSnapshotError as b, resetAwsClients as bn, LockManager as bt, replayFailedOperations as c, findLargeInlineResources as cn, s3BucketRegionalDomainName as ct, IMPLICIT_DELETE_DEPENDENCIES as d, PARTITION_TABLE as dn, DiffCalculator as dt, resolveStateBucketWithDefault as en, readConfigString as et, computeImplicitDeleteEdges as f, canonicalizeRegion as fn, describeTypeWithThrottleRetry as ft, ccRoutedFinalSnapshotError as g, clearBucketRegionCache as gn, isThrottlingError as gt, buildFinalSnapshotIdentifier as h, processStackMessages as hn, isRetryableTransientError as ht, DeploymentEventsReader as i, warnDeprecatedNoPrefixCliFlag as in, requireConfigString as it, red as j, MissingCdkCliError as jn, AssetModeResolver as jt, gray as k, LocalStartServiceError as kn, loadPublishableAssetManifest as kt, replayRollback as l, uploadCfnTemplate as ln, s3BucketWebsiteUrl as lt, PRE_DELETE_SNAPSHOT_TYPES as m, AssemblyReader as mn, isMarkedNonRetryable as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, resolveUseCdkBootstrapAssets as nn, requireConfigArray as nt, planFailedOps as o, CFN_TEMPLATE_URL_LIMIT as on, s3BucketDomainName as ot, ATOMIC_FINAL_SNAPSHOT_TYPES as p, derivePartitionAndUrlSuffix as pn, withRetry as pt, WAFv2WebACLProvider as q, synthesisStatusMessage as qt, DeployEngine as r, stateBucketExistenceConfirmed as rn, requireConfigObject as rt, planRollback as s, MIGRATE_TMP_PREFIX as sn, s3BucketDualStackDomainName as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, resolveStateBucketWithDefaultAndSource as tn, replayWarn as tt, withResourceDeadline as u, expectedOwnerParam as un, applyRoleArnIfSet as ut, isFinalSnapshotError as v, AwsClients as vn, DagBuilder as vt, isStatefulRecreateTargetSync as w, ConfigError as wn, AssetPublisher as wt, makeCanonicalizePropertiesFn as x, setAwsClients as xn, S3StateBackend as xt, refusesFinalSnapshot as y, getAwsClients as yn, TemplateParser as yt, CloudControlProvider as z, StateError as zn, buildDockerImage as zt };
23073
+ //# sourceMappingURL=deploy-engine-BcwNPlSk.js.map