@go-to-k/cdkd 0.284.80 → 0.284.81

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-CdU_rRxd.js";
2
+ import { t as getCdkdVersion } from "./version-D91AoEe5.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";
@@ -9646,6 +9646,8 @@ function recordNestedStackParameterExpressions(secrets, resourceType, resolvedPr
9646
9646
  const sourceLeaf = sourceParameters[name];
9647
9647
  if (typeof sourceLeaf === "string" && expression !== sourceLeaf) continue;
9648
9648
  if (expression === resolvedValue) continue;
9649
+ const seenResolvingTo = plaintextIndexOf(secrets).get(expression);
9650
+ if (seenResolvingTo !== void 0 && seenResolvingTo !== resolvedValue) continue;
9649
9651
  if (table === void 0) {
9650
9652
  table = /* @__PURE__ */ new Map();
9651
9653
  nestedStackParameterExpressions.set(secrets, table);
@@ -9705,19 +9707,35 @@ function inheritNestedStackParameterAssociations(childSecrets, parentSecrets) {
9705
9707
  * `parentSecrets` is the INHERITED bag — the parent's own per-resource map, the
9706
9708
  * object this table is keyed by — not the child resource's bag.
9707
9709
  *
9708
- * The same THREE conditions {@link positionByCrossStackSource} applies, for the
9709
- * same reasons; see that function's own notes for why condition 3 is not
9710
- * subsumed by condition 2.
9710
+ * The same THREE conditions the persist side applies, because it is literally
9711
+ * the same code: {@link certifiedExpressionForLeaf} OWNS the question and both
9712
+ * halves call it. See that function for why condition 3 is not subsumed by
9713
+ * condition 2.
9714
+ *
9715
+ * RETURNS AN ARRAY for a LIST-typed parameter (issue
9716
+ * [#2327](https://github.com/go-to-k/cdkd/issues/2327)), through the same
9717
+ * {@link certifiedListForLeaf} the persist side reaches from
9718
+ * {@link positionListByCrossStackSource}. `coerceParameterTypedValue` splits a
9719
+ * `CommaDelimitedList` parameter's STRING into an array before either side sees
9720
+ * it, so a scalar answer here would be compared against an array in state and
9721
+ * report a change forever — this function's own failure mode, one shape over.
9722
+ *
9723
+ * TWO CALLERS, and the widened return type is why the second one asks a
9724
+ * different question. `redactParametersForDiff` assigns the result into a
9725
+ * `Record<string, unknown>` and needs the whole parameter's answer, array
9726
+ * included. `IntrinsicFunctionResolver.recordInheritedParameterSecrets` writes
9727
+ * into a `Map<string, string>` keyed by PLAINTEXT, so it asks this per
9728
+ * PLAINTEXT — passing the carried plaintext rather than the parameter's value —
9729
+ * and keeps only a `string` answer. That is not a workaround for the type: a
9730
+ * plaintext-keyed bag has one slot per plaintext, and the question it needs
9731
+ * answered is "does THIS parameter certify THIS plaintext", which is the same
9732
+ * question for a scalar and for an element of a list.
9711
9733
  */
9712
9734
  function inheritedParameterExpression(parentSecrets, parameterName, resolvedValue) {
9713
- if (typeof resolvedValue !== "string" || resolvedValue === "") return void 0;
9714
- if (!parentSecrets.has(resolvedValue)) return void 0;
9715
9735
  const association = nestedStackParameterExpressions.get(parentSecrets)?.get(parameterName);
9716
9736
  if (association === void 0 || typeof association === "symbol") return void 0;
9717
- if (association.plaintext !== resolvedValue) return void 0;
9718
- const recordedPlaintext = plaintextIndexOf(parentSecrets).get(association.expression);
9719
- if (recordedPlaintext !== void 0 && recordedPlaintext !== resolvedValue) return void 0;
9720
- return association.expression;
9737
+ if (Array.isArray(resolvedValue)) return certifiedListForLeaf(parentSecrets, association, resolvedValue);
9738
+ return certifiedExpressionForLeaf(parentSecrets, association, resolvedValue);
9721
9739
  }
9722
9740
  /**
9723
9741
  * A resolved secret value shorter than this is NOT used as a redaction needle:
@@ -10206,6 +10224,103 @@ function plaintextIndexOf(secrets) {
10206
10224
  return plaintextOf;
10207
10225
  }
10208
10226
  /**
10227
+ * THE THREE CONDITIONS, in ONE place, over one bag and one already-resolved
10228
+ * association (issue [#2327](https://github.com/go-to-k/cdkd/issues/2327)).
10229
+ *
10230
+ * Three call sites ask this same question and every one of them must answer it
10231
+ * identically or the PERSIST side and the DIFF side disagree — which is not a
10232
+ * hypothetical: the two halves must produce the same expression for the same
10233
+ * leaf, or the desired side of the next diff never matches what was persisted
10234
+ * and the resource reports a change on every deploy (issue #2087's symptom,
10235
+ * arriving through a second spelling of one predicate). The sites are
10236
+ * {@link positionByCrossStackSource} (persist, string leaf),
10237
+ * {@link certifiedListForLeaf} (persist and diff, list leaf) and
10238
+ * {@link inheritedParameterExpression} (diff, whole parameter). THIS FUNCTION
10239
+ * OWNS THE QUESTION; none of them re-spells it.
10240
+ *
10241
+ * 1. The leaf's WHOLE value is a recorded secret plaintext. A leaf that merely
10242
+ * EMBEDS a secret is not this shape and must keep going to the value scan,
10243
+ * which rewrites just the substring. This is also what keeps a PUBLIC
10244
+ * reference out (issue #1901): the resolver records a plaintext only on a
10245
+ * proven-secret verdict, so a public parameter's value is not a key here.
10246
+ * The empty string is excluded for the reason the value pass excludes it: it
10247
+ * is not a distinguishing value.
10248
+ * 2. The association is ABOUT THIS LEAF — the plaintext the WRITER recorded
10249
+ * beside the expression equals the leaf. Within one pass this is the only
10250
+ * guard against a bag/source MISALIGNMENT: a readback bag can hold a
10251
+ * DIFFERENT resource's secret while the source leaf still spells this
10252
+ * import, and condition 3 cannot refuse that (it must ACCEPT an expression
10253
+ * absent from the pass's map, since the collapsed loser is absent too).
10254
+ * 3. The match is not DEMONSTRABLY another value's expression, over the
10255
+ * {@link plaintextIndexOf} index. NOT subsumed by condition 2: that one
10256
+ * compares what the WRITER recorded, this one what THIS pass's own map
10257
+ * holds, and they can disagree when one reference answers differently in two
10258
+ * regions (issue #1933). The collapsed LOSER is absent from the index, so it
10259
+ * passes — which is the case this whole mechanism exists to serve.
10260
+ */
10261
+ function certifiedExpressionForLeaf(secrets, association, leaf) {
10262
+ if (typeof leaf !== "string" || leaf === "") return void 0;
10263
+ if (!secrets.has(leaf)) return void 0;
10264
+ if (association.plaintext !== leaf) return void 0;
10265
+ const recordedPlaintext = plaintextIndexOf(secrets).get(association.expression);
10266
+ if (recordedPlaintext !== void 0 && recordedPlaintext !== leaf) return void 0;
10267
+ return association.expression;
10268
+ }
10269
+ /**
10270
+ * Apply {@link certifiedExpressionForLeaf} to every ELEMENT of a list leaf
10271
+ * (issue [#2327](https://github.com/go-to-k/cdkd/issues/2327)).
10272
+ *
10273
+ * WHAT "POSITION" MEANS FOR A LIST ELEMENT, which is the question that killed
10274
+ * the earlier attempt in issue #2012 and has to be answered before any array
10275
+ * may be certified: **it is not the index.** There is no source ARRAY to align
10276
+ * against — a list leaf's source is ONE intrinsic standing for the whole list —
10277
+ * so an index-based pairing would have nothing on the other side to pair WITH,
10278
+ * and inventing one is exactly the fabrication issue #2012 refused. What
10279
+ * certifies an element is its OWN VALUE, through condition 1 and condition 2
10280
+ * above. Order is therefore irrelevant: a reordered array certifies
10281
+ * identically, and an element the conditions do not reach is left exactly where
10282
+ * the value scan would have left it.
10283
+ *
10284
+ * NOTHING IS FABRICATED. The output array has the SAME length and the SAME
10285
+ * element ORDER as the input; every element is either an expression certified
10286
+ * from that element's own recorded plaintext, or the value-scan answer this
10287
+ * module already produces for it. No element is added, dropped, reordered, or
10288
+ * copied from the source — so there is no baseline content here that
10289
+ * `cdkd drift --revert` could push to AWS but AWS never reported. That is the
10290
+ * constraint the issue #2012 review imposed, satisfied structurally rather than
10291
+ * argued around.
10292
+ *
10293
+ * SHARED BY BOTH HALVES, and that sharing is load-bearing rather than tidy: the
10294
+ * persist side reaches it through {@link positionListByCrossStackSource} and
10295
+ * the diff side through {@link inheritedParameterExpression}, with the same
10296
+ * association content on either side ({@link inheritNestedStackParameterAssociations}
10297
+ * copies the parent's rows onto the child bag). Two spellings that agreed on
10298
+ * every case but one would reintroduce the perpetual UPDATE at that one case.
10299
+ *
10300
+ * Returns `undefined` when NO element was certified, so every caller falls
10301
+ * through to the value scan and keeps its identity-return: with an empty
10302
+ * secrets map (the issue #1900 unchanged-resource path) condition 1 refuses
10303
+ * every element, so this costs one walk and changes nothing.
10304
+ */
10305
+ function certifiedListForLeaf(secrets, association, bag) {
10306
+ const certified = bag.map((element) => certifiedExpressionForLeaf(secrets, association, element));
10307
+ if (certified.every((expression) => expression === void 0)) return void 0;
10308
+ return bag.map((element, i) => certified[i] ?? redactSecretsForState(element, secrets));
10309
+ }
10310
+ /**
10311
+ * The association {@link crossStackAssociations} holds for a SOURCE leaf, or
10312
+ * `undefined` when this pass has none (or a poisoned one) for it.
10313
+ */
10314
+ function associationForSource(source, secrets) {
10315
+ const key = crossStackSourceKey(source);
10316
+ if (key === void 0) return void 0;
10317
+ const associations = crossStackAssociations.get(secrets);
10318
+ if (associations === void 0) return void 0;
10319
+ const association = associations.get(key);
10320
+ if (association === void 0 || typeof association === "symbol") return void 0;
10321
+ return association;
10322
+ }
10323
+ /**
10209
10324
  * Position a leaf whose SOURCE is a CROSS-STACK intrinsic object
10210
10325
  * (`Fn::ImportValue` / `Fn::GetStackOutput`), by looking its identity up in the
10211
10326
  * association the RESOLVER recorded while it read the producer (issue
@@ -10224,27 +10339,14 @@ function plaintextIndexOf(secrets) {
10224
10339
  * has to come from the one place that holds both halves at once, which is
10225
10340
  * {@link crossStackAssociations}.
10226
10341
  *
10227
- * Three conditions, mirroring the ones next door, and each removing a different
10228
- * way of being wrong:
10229
- *
10230
- * 1. The bag leaf's WHOLE value is a recorded secret plaintext verbatim
10231
- * condition 1 of {@link positionByIntrinsicSkeleton}. A leaf that merely
10232
- * EMBEDS a secret is not this shape and must keep going to the value scan,
10233
- * which rewrites just the substring. This is also what keeps a PUBLIC
10234
- * reference out (issue #1901): the resolver records a plaintext only on a
10235
- * proven-secret verdict, so a public parameter's value is not a key here.
10236
- * 2. The association is ABOUT THIS BAG — the plaintext the WRITER recorded
10237
- * beside the expression equals the bag leaf. Against another pass this is
10238
- * belt-and-braces, since {@link crossStackAssociations} is scoped to the
10239
- * pass and a foreign entry cannot be reached; within one pass it is the only
10240
- * guard against a bag/source MISALIGNMENT.
10241
- * 3. The match is not DEMONSTRABLY another value's expression — verbatim
10242
- * condition 3 next door, over the same {@link plaintextIndexOf} index. It is
10243
- * what fences a bag/source MISALIGNMENT: on a readback walk the bag leaf can
10244
- * hold a different resource's secret while the source leaf still spells this
10245
- * import, and an association recorded against a plaintext that is not this
10246
- * bag is refused outright. The collapsed LOSER is absent from that index, so
10247
- * it passes — which is the case this whole function exists to serve.
10342
+ * THE THREE CONDITIONS ARE {@link certifiedExpressionForLeaf}'s and are stated
10343
+ * ONLY there. They were re-enumerated here until issue #2327 extracted the
10344
+ * owner, and the copy had already drifted from it three ways within the same
10345
+ * change -- it dropped the empty-string clause, it explained condition 2 by a
10346
+ * scoping story ({@link crossStackAssociations} being per-pass) that is not the
10347
+ * owner's OTHER caller's, and it said "three intrinsic spellings" when
10348
+ * {@link crossStackSourceKey} answers for five. A rationale that drifts inside
10349
+ * one PR is the argument against duplicating it.
10248
10350
  *
10249
10351
  * There is deliberately NO "exactly one candidate" test (the neighbour's
10250
10352
  * condition 2): this is a LOOKUP rather than a search, so the ambiguity that
@@ -10257,23 +10359,16 @@ function plaintextIndexOf(secrets) {
10257
10359
  * bag could not be vouched for, because it rewrote a `{Name: '', Value:
10258
10360
  * 'an-unrelated-literal'}` pair. Nothing here can do that: the answer is never
10259
10361
  * the source subtree, it is an expression a WRITER recorded against this exact
10260
- * leaf identity; the arm fires for exactly three intrinsic spellings; and
10362
+ * leaf identity; the arm fires only for the spellings
10363
+ * {@link crossStackSourceKey} can key; and
10261
10364
  * condition 1 still demands that the bag leaf be a plaintext this pass
10262
10365
  * resolved. Every rejection degrades to {@link positionByIntrinsicSkeleton} and
10263
10366
  * then to the value scan, i.e. to today's behavior.
10264
10367
  */
10265
10368
  function positionByCrossStackSource(bag, source, secrets) {
10266
- if (bag === "" || !secrets.has(bag)) return void 0;
10267
- const key = crossStackSourceKey(source);
10268
- if (key === void 0) return void 0;
10269
- const associations = crossStackAssociations.get(secrets);
10270
- if (associations === void 0) return void 0;
10271
- const association = associations.get(key);
10272
- if (association === void 0 || typeof association === "symbol") return void 0;
10273
- if (association.plaintext !== bag) return void 0;
10274
- const recordedPlaintext = plaintextIndexOf(secrets).get(association.expression);
10275
- if (recordedPlaintext !== void 0 && recordedPlaintext !== bag) return void 0;
10276
- return association.expression;
10369
+ const association = associationForSource(source, secrets);
10370
+ if (association === void 0) return void 0;
10371
+ return certifiedExpressionForLeaf(secrets, association, bag);
10277
10372
  }
10278
10373
  /**
10279
10374
  * Position a leaf whose SOURCE is an intrinsic OBJECT, by matching the shape of
@@ -10457,6 +10552,49 @@ function identityKeyFor(bag, source) {
10457
10552
  for (const key of ARRAY_IDENTITY_KEYS) if (isUniquelyKeyedBy(bag, key) && isUniquelyKeyedBy(source, key)) return key;
10458
10553
  }
10459
10554
  /**
10555
+ * Position the ELEMENTS of an array leaf whose SOURCE is an intrinsic OBJECT,
10556
+ * by the same leaf-identity lookup {@link positionByCrossStackSource} performs
10557
+ * for a string leaf (issue
10558
+ * [#2327](https://github.com/go-to-k/cdkd/issues/2327)).
10559
+ *
10560
+ * A child parameter declared `CommaDelimitedList` is coerced by
10561
+ * `coerceParameterTypedValue` into an ARRAY before any of this runs, so a
10562
+ * leaf the child template spells `{Ref: <Param>}` arrives beside an intrinsic
10563
+ * OBJECT as an array — a shape NO arm matched, which dropped it to the
10564
+ * plaintext-keyed value scan and handed BOTH members of a coinciding pair the
10565
+ * survivor's expression. `docs/cli-reference.md` names `CommaDelimitedList` as
10566
+ * an ALLOWED spelling for a secret-bearing nested-stack parameter, so it is
10567
+ * reachable rather than theoretical.
10568
+ *
10569
+ * The element rule, what it refuses and why nothing is fabricated all live on
10570
+ * {@link certifiedListForLeaf}, which the DIFF side calls too. TWO further
10571
+ * refusals belong to THIS site rather than to the shared rule:
10572
+ *
10573
+ * 1. REFUSAL — a source leaf {@link crossStackSourceKey} cannot key, or one
10574
+ * this pass recorded no association for. Both fall to the value scan, i.e.
10575
+ * to today's behaviour.
10576
+ * 2. REFUSAL — {@link positionByIntrinsicSkeleton} is deliberately NOT tried
10577
+ * element-wise, and the asymmetry with the string arm is structural rather
10578
+ * than caution. {@link intrinsicSkeletonPattern} accepts exactly `Fn::Join`
10579
+ * and `Fn::Sub`, both of which produce a STRING; an array bag beside one of
10580
+ * them is a SHAPE DIVERGENCE, not a position. Matching a per-element pattern
10581
+ * built from text that describes the whole joined string would be a guess of
10582
+ * precisely the kind condition 2 of that function exists to refuse.
10583
+ *
10584
+ * NOT GATED ON `rules`, for the reason the string arm next door is not: the
10585
+ * certification rests on the element being a plaintext THIS pass recorded,
10586
+ * which a previous generation's persisted expression can never be, and it never
10587
+ * depends on the two sides being positionally aligned. In practice only the
10588
+ * TEMPLATE-sourced walks can reach it at all — every STATE-sourced source leaf
10589
+ * is a persisted value, not an intrinsic object — but the safety does not rest
10590
+ * on that.
10591
+ */
10592
+ function positionListByCrossStackSource(bag, source, secrets) {
10593
+ const association = associationForSource(source, secrets);
10594
+ if (association === void 0) return void 0;
10595
+ return certifiedListForLeaf(secrets, association, bag);
10596
+ }
10597
+ /**
10460
10598
  * PATH-based redaction: walk `bag` alongside a SOURCE bag that still carries the
10461
10599
  * unresolved `{{resolve:...}}` expressions, and wherever the source leaf is such
10462
10600
  * a string, persist THAT string verbatim.
@@ -10488,6 +10626,14 @@ function identityKeyFor(bag, source) {
10488
10626
  * recorded secret expressions, THAT is persisted. This is the dominant CDK
10489
10627
  * shape — an L2 secret token renders the ARN as a `Ref`, hence a join.
10490
10628
  *
10629
+ * An ARRAY leaf beside such an intrinsic OBJECT — the shape a
10630
+ * `CommaDelimitedList` nested-stack parameter produces once the child has
10631
+ * coerced it — is positioned ELEMENT-WISE by
10632
+ * {@link positionListByCrossStackSource} (issue #2327). What certifies an
10633
+ * element there is its own recorded plaintext rather than its index, so nothing
10634
+ * is aligned against a source array that does not exist; see that function for
10635
+ * the two shapes it refuses.
10636
+ *
10491
10637
  * The value scan is still applied wherever none can answer: a leaf that merely
10492
10638
  * EMBEDS a secret inside surrounding text, an intrinsic whose skeleton matches
10493
10639
  * zero or several candidates, a cross-stack leaf whose identity is not
@@ -10510,6 +10656,10 @@ function redactByPath(bag, source, secrets, rules, secretExpressions) {
10510
10656
  const positioned = positionByIntrinsicSkeleton(bag, source, secrets, secretExpressions);
10511
10657
  if (positioned !== void 0) return positioned;
10512
10658
  }
10659
+ if (Array.isArray(bag) && isPlainObject$2(source)) {
10660
+ const positionedList = positionListByCrossStackSource(bag, source, secrets);
10661
+ if (positionedList !== void 0) return positionedList;
10662
+ }
10513
10663
  if (Array.isArray(bag) && Array.isArray(source)) {
10514
10664
  const key = identityKeyFor(bag, source);
10515
10665
  if (key !== void 0) {
@@ -17149,8 +17299,10 @@ var IntrinsicFunctionResolver = class IntrinsicFunctionResolver {
17149
17299
  const inherited = context.inheritedSecrets;
17150
17300
  const recorded = context.recordedSecretValues;
17151
17301
  if (!inherited || inherited.size === 0 || !recorded) return;
17152
- const own = inheritedParameterExpression(inherited, parameterName, value);
17153
- for (const [plaintext, expression] of inheritedSecretsCarriedBy(value, inherited)) recorded.set(plaintext, own !== void 0 && plaintext === value ? own : expression);
17302
+ for (const [plaintext, expression] of inheritedSecretsCarriedBy(value, inherited)) {
17303
+ const own = inheritedParameterExpression(inherited, parameterName, plaintext);
17304
+ recorded.set(plaintext, typeof own === "string" ? own : expression);
17305
+ }
17154
17306
  }
17155
17307
  /**
17156
17308
  * Refuse a child parameter whose declared `Type` would COERCE an inherited
@@ -20235,7 +20387,7 @@ var CloudControlProvider = class {
20235
20387
  await this.confirmDeleteTargetIdentity(logicalId, resourceType, physicalId, context);
20236
20388
  if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
20237
20389
  this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
20238
- const { ASGProvider } = await import("./asg-provider-lbqsxGkM.js").then((n) => n.n);
20390
+ const { ASGProvider } = await import("./asg-provider-DW0VKnyp.js").then((n) => n.n);
20239
20391
  return await new ASGProvider().delete(logicalId, physicalId, resourceType, _properties, context);
20240
20392
  }
20241
20393
  const isProtectedEc2Instance = context?.removeProtection === true && resourceType === "AWS::EC2::Instance";
@@ -32149,5 +32301,5 @@ var DeployEngine = class {
32149
32301
  };
32150
32302
 
32151
32303
  //#endregion
32152
- export { maskerOrIdentity as $, CFN_TEMPLATE_URL_LIMIT as $n, redactSecretsForState as $t, renderStatefulReason as A, buildDockerImage as An, ResourceTimeoutError as Ar, classifyReplaySecretRegion as At, exportAliasCollisionScrubWarning as B, synthesisStatusMessage as Bn, isMarkedNonRetryable as Br, describeTypeWithThrottleRetry as Bt, isFinalSnapshotError as C, isCrossRegionRedirect as Cn, LocalMigrateError as Cr, configBooleanRefusal as Ct, extractDeploymentEventError as D, validateContainerRepoName as Dn, NestedStackChildDirectDestroyError as Dr, requireConfigArray as Dt, makeCanonicalizePropertiesFn as E, validateAssetBucketName as En, MissingCdkCliError as Er, replayWarn as Et, green as F, runDockerForeground as Fn, SynthesisError as Fr, s3BucketRegionalDomainName as Ft, IAMRoleProvider as G, resolveCaptureObservedState as Gn, retryClassificationText as Gr, STATE_SOURCED_READBACK_RULES as Gt, secretBearingStateKeyWarning as H, getLegacyStateBucketName as Hn, isThrottlingError as Hr, DagBuilder as Ht, red as I, runDockerStreaming as In, formatError as Ir, s3BucketWebsiteUrl as It, ProviderRegistry as J, resolveStateBucketWithDefaultAndSource as Jn, dynamicReferenceTokens as Jt, collectInlinePolicyNamesManagedBySiblings as K, resolveSkipPrefix as Kn, __exportAll as Kr, TEMPLATE_SOURCED_RULES as Kt, yellow as L, AssetManifestLoader as Ln, isCdkdError as Lr, applyRoleArnIfSet as Lt, bold as M, formatDockerLoginError as Mn, StackHasActiveImportsError as Mr, s3BucketArn as Mt, cyan as N, getDockerCmd as Nn, StackTerminationProtectionError as Nr, s3BucketDomainName as Nt, MULTI_REGION_RECREATE_BLOCKED_TYPES as O, buildDenyExternalAccessPolicy as On, PartialFailureError as Or, requireConfigObject as Ot, gray as P, partitionSensitiveEnv as Pn, StateError as Pr, s3BucketDualStackDomainName as Pt, maskDeep as Q, CFN_TEMPLATE_BODY_LIMIT as Qn, maskSecretsInText as Qt, collectDeclaredOutputNames as R, getDockerImageBySourceHash as Rn, normalizeAwsError as Rr, DiffCalculator as Rt, createPreDeleteFinalSnapshot as S, getBootstrapMarkerKey as Sn, LocalInvokeBuildError as Sr, coerceCfnBoolean as St, unsupportedFinalSnapshotError as T, readBootstrapMarkerBody as Tn, LockError as Tr, readConfigString as Tt, stateKeySecretExposure as U, resolveApp as Un, markNonRetryable as Ur, TemplateParser as Ut, isExportAliasCollision as V, getDefaultStateBucketName as Vn, isRetryableTransientError as Vr, withRetry as Vt, getCurrentResourceSecrets as W, resolveAutoAssetStorage as Wn, markRedactedCause as Wr, STATE_SOURCED_CROSS_GENERATION_RULES as Wt, findSilentDropProperties as X, stateBucketExistenceConfirmed as Xn, isSingleDynamicReferenceToken as Xt, findActionableSilentDrops as Y, resolveUseCdkBootstrapAssets as Yn, errorCauseChain as Yt, createMaskedRetryLogger as Z, warnDeprecatedNoPrefixCliFlag as Zn, maskSecretsInError as Zt, computeImplicitDeleteEdges as _, stripControlChars as _n, ConfigError as _r, refStateLookupFromResource as _t, DeploymentEventsStore as a, exportNamesCarriedFrom as an, canonicalizeRegion as ar, isInterruptedWaitError as at, buildFinalSnapshotIdentifier as b, assertAssetBucketRegion as bn, DeployCancelledError as br, resolveExplicitPhysicalId as bt, replayFailedOperations as c, shouldRetainResource as cn, processStackMessages as cr, slowCcOperationTimeoutMs as ct, updatePartialReason as d, WorkGraph as dn, AwsClients as dr, IntrinsicFunctionResolver as dt, scrubResourceRecord as en, MIGRATE_TMP_PREFIX as er, CUSTOM_RESOURCE_RESPONSE_PREFIX as et, UNSPECIFIED_SKIP_REASON as f, buildAssetRedirectMap as fn, getAwsClients as fr, carriesDynamicReference as ft, IMPLICIT_DELETE_DEPENDENCIES as g, escapeRegExp$1 as gn, CdkdError as gr, parameterTypeMayLoseSecretIdentity as gt, maskingRetryLogger as h, rewriteTemplateAssetReferences as hn, AssetError as hr, isUnboundTemplateParameter as ht, DeploymentEventsReader as i, rebuildClientForBucketRegion as in, PARTITION_TABLE as ir, interruptWatchListenerCount as it, formatResourceLine as j, dockerSpawnEnvWithSensitive as jn, ResourceUpdateNotSupportedError as jr, producerRegionsFromState as jt, isStatefulRecreateTargetSync as k, describeAwsFailure as kn, ProvisioningError as kr, requireConfigString as kt, replayRollback as l, AssetPublisher as ln, clearBucketRegionCache as lr, disableInstanceApiTermination as lt, withResourceDeadline as m, loadPublishableAssetManifest as mn, setAwsClients as mr, getAccountInfo as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, displaySafe as nn, uploadCfnTemplate as nr, beginCommandInterruptScope as nt, planFailedOps as o, importableOutputKeys as on, derivePartitionAndUrlSuffix as or, startInterruptWatch as ot, deleteSkipReason as p, createAssetRedirectResolver as pn, resetAwsClients as pr, cfnRefValueFromPhysicalId as pt, clearOnUpdateRemoval as q, resolveStateBucketWithDefault as qn, createSecretMasker as qt, DeployEngine as r, S3StateBackend as rn, expectedOwnerParam as rr, endCommandInterruptScope as rt, planRollback as s, importableOutputs as sn, AssemblyReader as sr, CloudControlProvider as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, LockManager as tn, findLargeInlineResources as tr, DEFAULT_STATE_PREFIX as tt, updatePartialMessage as u, stringifyValue as un, resolveBucketRegion as ur, isTerminationProtectionPropagationError as ut, ATOMIC_FINAL_SNAPSHOT_TYPES as v, AssetModeResolver as vn, CrossAccountSecretRefusalError as vr, WAFv2WebACLProvider as vt, refusesFinalSnapshot as w, parseBootstrapMarker as wn, LocalStartServiceError as wr, configStringRefusal as wt, ccRoutedFinalSnapshotError as x, ensureAssetStorage as xn, DynamicReferenceRegionAmbiguousError as xr, assertRegionMatch as xt, PRE_DELETE_SNAPSHOT_TYPES as y, BOOTSTRAP_MARKER_PREFIX as yn, DependencyError as yr, normalizeAwsTagsToCfn as yt, collectPublishedOutputNames as z, Synthesizer as zn, withErrorHandling as zr, INTRINSIC_KEYS as zt };
32153
- //# sourceMappingURL=deploy-engine-Dsd8oL2h.js.map
32304
+ export { maskerOrIdentity as $, CFN_TEMPLATE_BODY_LIMIT as $n, maskSecretsInText as $t, renderStatefulReason as A, describeAwsFailure as An, ProvisioningError as Ar, requireConfigString as At, exportAliasCollisionScrubWarning as B, Synthesizer as Bn, withErrorHandling as Br, INTRINSIC_KEYS as Bt, isFinalSnapshotError as C, getBootstrapMarkerKey as Cn, LocalInvokeBuildError as Cr, coerceCfnBoolean as Ct, extractDeploymentEventError as D, validateAssetBucketName as Dn, MissingCdkCliError as Dr, replayWarn as Dt, makeCanonicalizePropertiesFn as E, readBootstrapMarkerBody as En, LockError as Er, readConfigString as Et, green as F, partitionSensitiveEnv as Fn, StateError as Fr, s3BucketDualStackDomainName as Ft, IAMRoleProvider as G, resolveAutoAssetStorage as Gn, markRedactedCause as Gr, STATE_SOURCED_CROSS_GENERATION_RULES as Gt, secretBearingStateKeyWarning as H, getDefaultStateBucketName as Hn, isRetryableTransientError as Hr, withRetry as Ht, red as I, runDockerForeground as In, SynthesisError as Ir, s3BucketRegionalDomainName as It, ProviderRegistry as J, resolveStateBucketWithDefault as Jn, createSecretMasker as Jt, collectInlinePolicyNamesManagedBySiblings as K, resolveCaptureObservedState as Kn, retryClassificationText as Kr, STATE_SOURCED_READBACK_RULES as Kt, yellow as L, runDockerStreaming as Ln, formatError as Lr, s3BucketWebsiteUrl as Lt, bold as M, dockerSpawnEnvWithSensitive as Mn, ResourceUpdateNotSupportedError as Mr, producerRegionsFromState as Mt, cyan as N, formatDockerLoginError as Nn, StackHasActiveImportsError as Nr, s3BucketArn as Nt, MULTI_REGION_RECREATE_BLOCKED_TYPES as O, validateContainerRepoName as On, NestedStackChildDirectDestroyError as Or, requireConfigArray as Ot, gray as P, getDockerCmd as Pn, StackTerminationProtectionError as Pr, s3BucketDomainName as Pt, maskDeep as Q, warnDeprecatedNoPrefixCliFlag as Qn, maskSecretsInError as Qt, collectDeclaredOutputNames as R, AssetManifestLoader as Rn, isCdkdError as Rr, applyRoleArnIfSet as Rt, createPreDeleteFinalSnapshot as S, ensureAssetStorage as Sn, DynamicReferenceRegionAmbiguousError as Sr, assertRegionMatch as St, unsupportedFinalSnapshotError as T, parseBootstrapMarker as Tn, LocalStartServiceError as Tr, configStringRefusal as Tt, stateKeySecretExposure as U, getLegacyStateBucketName as Un, isThrottlingError as Ur, DagBuilder as Ut, isExportAliasCollision as V, synthesisStatusMessage as Vn, isMarkedNonRetryable as Vr, describeTypeWithThrottleRetry as Vt, getCurrentResourceSecrets as W, resolveApp as Wn, markNonRetryable 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, CdkdError as _r, parameterTypeMayLoseSecretIdentity as _t, DeploymentEventsStore as a, rebuildClientForBucketRegion as an, PARTITION_TABLE as ar, isInterruptedWaitError as at, buildFinalSnapshotIdentifier as b, BOOTSTRAP_MARKER_PREFIX as bn, DependencyError as br, normalizeAwsTagsToCfn as bt, replayFailedOperations as c, importableOutputs as cn, AssemblyReader as cr, slowCcOperationTimeoutMs as ct, updatePartialReason as d, stringifyValue as dn, resolveBucketRegion 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, AwsClients as fr, carriesDynamicReference as ft, IMPLICIT_DELETE_DEPENDENCIES as g, rewriteTemplateAssetReferences as gn, AssetError as gr, isUnboundTemplateParameter as gt, maskingRetryLogger as h, loadPublishableAssetManifest as hn, setAwsClients as hr, getAccountInfo as ht, DeploymentEventsReader as i, S3StateBackend as in, expectedOwnerParam as ir, interruptWatchListenerCount as it, formatResourceLine as j, buildDockerImage as jn, ResourceTimeoutError as jr, classifyReplaySecretRegion as jt, isStatefulRecreateTargetSync as k, buildDenyExternalAccessPolicy as kn, PartialFailureError as kr, requireConfigObject as kt, replayRollback as l, shouldRetainResource as ln, processStackMessages as lr, disableInstanceApiTermination as lt, withResourceDeadline as m, createAssetRedirectResolver as mn, resetAwsClients 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, canonicalizeRegion as or, startInterruptWatch as ot, deleteSkipReason as p, buildAssetRedirectMap as pn, getAwsClients as pr, cfnRefValueFromPhysicalId as pt, clearOnUpdateRemoval as q, resolveSkipPrefix as qn, __exportAll 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, derivePartitionAndUrlSuffix 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, clearBucketRegionCache as ur, isTerminationProtectionPropagationError as ut, ATOMIC_FINAL_SNAPSHOT_TYPES as v, stripControlChars as vn, ConfigError as vr, refStateLookupFromResource as vt, refusesFinalSnapshot as w, isCrossRegionRedirect as wn, LocalMigrateError as wr, configBooleanRefusal as wt, ccRoutedFinalSnapshotError as x, assertAssetBucketRegion as xn, DeployCancelledError as xr, resolveExplicitPhysicalId as xt, PRE_DELETE_SNAPSHOT_TYPES as y, AssetModeResolver as yn, CrossAccountSecretRefusalError as yr, WAFv2WebACLProvider as yt, collectPublishedOutputNames as z, getDockerImageBySourceHash as zn, normalizeAwsError as zr, DiffCalculator as zt };
32305
+ //# sourceMappingURL=deploy-engine-DAY3Q6s4.js.map