@go-to-k/cdkd 0.284.72 → 0.284.73
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.
- package/dist/{asg-provider-DcAqfBUo.js → asg-provider-xXB0aei5.js} +2 -2
- package/dist/{asg-provider-DcAqfBUo.js.map → asg-provider-xXB0aei5.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-Bc0FBOuJ.js → deploy-engine-DjcVPGO-.js} +208 -5
- package/dist/deploy-engine-DjcVPGO-.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/{program-B2i8bJUJ.js → program-BlS4t1DG.js} +4 -4
- package/dist/{program-B2i8bJUJ.js.map → program-BlS4t1DG.js.map} +1 -1
- package/dist/{version-DY_eLvXB.js → version-NRgaYAmx.js} +2 -2
- package/dist/{version-DY_eLvXB.js.map → version-NRgaYAmx.js.map} +1 -1
- package/package.json +1 -1
- package/dist/deploy-engine-Bc0FBOuJ.js.map +0 -1
|
@@ -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-
|
|
2
|
+
import { t as getCdkdVersion } from "./version-NRgaYAmx.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, ListObjectsV2Command, NoSuchKey, PutBucketEncryptionCommand, PutBucketPolicyCommand, PutObjectCommand, PutPublicAccessBlockCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
|
|
@@ -5873,7 +5873,7 @@ function readBucketRegionHeader(error) {
|
|
|
5873
5873
|
* The API answers with an EMPTY constraint for `us-east-1` and the legacy `EU`
|
|
5874
5874
|
* alias for `eu-west-1`; every other region comes back verbatim.
|
|
5875
5875
|
*/
|
|
5876
|
-
function bucketLocationToRegion(constraint) {
|
|
5876
|
+
function bucketLocationToRegion$1(constraint) {
|
|
5877
5877
|
if (!constraint) return "us-east-1";
|
|
5878
5878
|
if (constraint === "EU") return "eu-west-1";
|
|
5879
5879
|
return constraint;
|
|
@@ -5938,7 +5938,7 @@ async function assertAssetBucketRegion(s3Client, bucketName, expectedRegion, acc
|
|
|
5938
5938
|
const fromHeader = readBucketRegionHeader(cause);
|
|
5939
5939
|
if (fromHeader) actual = canonicalizeRegion(fromHeader);
|
|
5940
5940
|
else try {
|
|
5941
|
-
actual = canonicalizeRegion(bucketLocationToRegion((await s3Client.send(new GetBucketLocationCommand({
|
|
5941
|
+
actual = canonicalizeRegion(bucketLocationToRegion$1((await s3Client.send(new GetBucketLocationCommand({
|
|
5942
5942
|
Bucket: bucketName,
|
|
5943
5943
|
ExpectedBucketOwner: accountId
|
|
5944
5944
|
}))).LocationConstraint));
|
|
@@ -19194,6 +19194,110 @@ function describeJsonKeys(document) {
|
|
|
19194
19194
|
const suffix = pattern.lastIndex < document.length && keys.length >= MAX_LOGGED_MODEL_KEYS ? ", ..." : "";
|
|
19195
19195
|
return `keys: ${keys.join(", ")}${suffix}`;
|
|
19196
19196
|
}
|
|
19197
|
+
/**
|
|
19198
|
+
* Resource types whose Cloud-Control-routed DELETE gets a pre-flight
|
|
19199
|
+
* IDENTITY confirmation -- proof that the physical id the state record names
|
|
19200
|
+
* denotes a resource in the region this destroy is targeting -- before
|
|
19201
|
+
* `DeleteResource` is issued (issue #2283).
|
|
19202
|
+
*
|
|
19203
|
+
* WHY THIS IS A HOOK HERE AND NOT A ROUTING CHANGE
|
|
19204
|
+
* ------------------------------------------------
|
|
19205
|
+
* The issue offered two shapes and called the routing change "much smaller":
|
|
19206
|
+
* stop letting `AWS::S3::Bucket` reach Cloud Control at all, now that
|
|
19207
|
+
* `S3BucketProvider` carries its own region guard (issues #2227 / #2245).
|
|
19208
|
+
* Reading `provider-registry.ts` settles it the other way, for two reasons:
|
|
19209
|
+
*
|
|
19210
|
+
* 1. There is no per-type "CC auto-route list" to remove the type FROM. The
|
|
19211
|
+
* route at `provider-registry.ts` step 3-5 is the generic issue #614
|
|
19212
|
+
* silent-drop rule: a type WITH an SDK provider goes to Cloud Control
|
|
19213
|
+
* exactly when its template uses a property that provider would silently
|
|
19214
|
+
* DROP. Suppressing it for buckets means `disableCcApiFallback` on
|
|
19215
|
+
* `S3BucketProvider`, which converts those deploys from "provisioned
|
|
19216
|
+
* correctly via CC" into a hard `buildUnroutableSilentDropMessage` throw.
|
|
19217
|
+
* That is a strictly larger behaviour change than this guard, and it
|
|
19218
|
+
* regresses the bug #614 was filed for.
|
|
19219
|
+
*
|
|
19220
|
+
* 2. It would not even close the hazard. Step 2 of `getProviderFor` is the
|
|
19221
|
+
* STICKY rule: a resource whose state says `provisionedBy: 'cc-api'`
|
|
19222
|
+
* routes to this provider BEFORE the SDK provider is ever consulted, and
|
|
19223
|
+
* `disableCcApiFallback` is not read on that path. The poisoned pre-guard
|
|
19224
|
+
* state record the issue is about is precisely a record that already says
|
|
19225
|
+
* `cc-api`, so it would still arrive here. Only adding the type to
|
|
19226
|
+
* `STICKY_CC_MIGRATION_EXEMPT` would divert it -- and that set is reserved
|
|
19227
|
+
* for types whose CC routing is BROKEN, which would then send the
|
|
19228
|
+
* silent-drop property back down the dropping path on the next deploy.
|
|
19229
|
+
*
|
|
19230
|
+
* So the confirmation belongs where the delete is actually issued. The set is
|
|
19231
|
+
* a set rather than an `if` because the hazard is not S3-specific in kind: any
|
|
19232
|
+
* type whose physical id is globally unique but whose RESOURCE is regional can
|
|
19233
|
+
* be named by a state record that denotes something in another region.
|
|
19234
|
+
* `AWS::S3::Bucket` is the only instance recorded so far (issue #2283).
|
|
19235
|
+
*/
|
|
19236
|
+
const CC_DELETE_IDENTITY_CHECKED_TYPES = /* @__PURE__ */ new Set(["AWS::S3::Bucket"]);
|
|
19237
|
+
/**
|
|
19238
|
+
* Whether a Cloud-Control-routed DELETE of `resourceType` is preceded by the
|
|
19239
|
+
* pre-flight identity confirmation described on
|
|
19240
|
+
* {@link CC_DELETE_IDENTITY_CHECKED_TYPES}.
|
|
19241
|
+
*
|
|
19242
|
+
* Exported so the routing decision is assertable in BOTH polarities: the
|
|
19243
|
+
* guarded type, and a control type that must keep issuing its `DeleteResource`
|
|
19244
|
+
* with no extra probe and no new IAM dependency.
|
|
19245
|
+
*/
|
|
19246
|
+
function requiresCcDeleteIdentityCheck(resourceType) {
|
|
19247
|
+
return CC_DELETE_IDENTITY_CHECKED_TYPES.has(resourceType);
|
|
19248
|
+
}
|
|
19249
|
+
/**
|
|
19250
|
+
* The region a `GetBucketLocation` answer denotes, canonicalized.
|
|
19251
|
+
*
|
|
19252
|
+
* Two legacy wire shapes, both still returned, which is why this is a function
|
|
19253
|
+
* rather than a field read: a bucket in `us-east-1` answers with an EMPTY /
|
|
19254
|
+
* null `LocationConstraint` (absent therefore means `us-east-1`, never
|
|
19255
|
+
* "unknown" -- folding it to unknown would make the commonest region
|
|
19256
|
+
* permanently indeterminate), and `EU` is a legacy alias for `eu-west-1`.
|
|
19257
|
+
*
|
|
19258
|
+
* THREE copies of this fold exist and neither of the other two is reusable
|
|
19259
|
+
* here:
|
|
19260
|
+
*
|
|
19261
|
+
* - `providers/s3-bucket-provider.ts`'s private twin is the SDK route's
|
|
19262
|
+
* guard, reached by a different routing decision, and it additionally
|
|
19263
|
+
* reads `x-amz-bucket-region` off a `CreateBucket` 409 -- a signal that
|
|
19264
|
+
* does not exist on this path, where the probe is a PRE-flight with no
|
|
19265
|
+
* prior error to read. Folding them together would export a create-shaped
|
|
19266
|
+
* API into a delete-only call site.
|
|
19267
|
+
* - `utils/aws-region-resolver.ts:147` holds only the us-east-1 HALF of the
|
|
19268
|
+
* fold, inline (`response.LocationConstraint || 'us-east-1'`, with no `EU`
|
|
19269
|
+
* case at all), and is wrong here twice
|
|
19270
|
+
* over: it is fail-OPEN by contract (it never throws and returns
|
|
19271
|
+
* `fallbackRegion` on a failed probe, which would report this deploy's own
|
|
19272
|
+
* region and let the foreign bucket through), and it passes
|
|
19273
|
+
* `ExpectedBucketOwner`, which is the opposite of what this probe needs --
|
|
19274
|
+
* see {@link CloudControlProvider.confirmDeleteTargetIdentity}. It also
|
|
19275
|
+
* caches, so a second call in one process would skip the probe entirely.
|
|
19276
|
+
*
|
|
19277
|
+
* Each copy is pinned by unit tests on its own side, for exactly the fold it
|
|
19278
|
+
* carries: `s3-bucket-provider-already-owned-region.test.ts:223-224` for the
|
|
19279
|
+
* SDK twin's `''` / `null` spellings, `aws-region-resolver.test.ts:66` / `:74`
|
|
19280
|
+
* for the resolver's us-east-1 half, and this module's own suite for all three
|
|
19281
|
+
* us-east-1 spellings plus both polarities of the `EU` alias.
|
|
19282
|
+
*/
|
|
19283
|
+
function bucketLocationToRegion(constraint) {
|
|
19284
|
+
const value = canonicalizeRegion((constraint ?? "").trim());
|
|
19285
|
+
if (value === "") return "us-east-1";
|
|
19286
|
+
if (value === "eu") return "eu-west-1";
|
|
19287
|
+
return value;
|
|
19288
|
+
}
|
|
19289
|
+
/**
|
|
19290
|
+
* Whether an S3 error means the NAMED BUCKET IS ABSENT, as opposed to the
|
|
19291
|
+
* probe being unable to answer.
|
|
19292
|
+
*
|
|
19293
|
+
* The wire CODE alone, never a message match. Collapsing "absent" into "could
|
|
19294
|
+
* not answer" (or the reverse) is the failure mode the issue #2245 review
|
|
19295
|
+
* named: a bare 404 from a proxy, `AWS_ENDPOINT_URL`, or an S3-compatible
|
|
19296
|
+
* gateway must not be read as a positive statement about a bucket's region.
|
|
19297
|
+
*/
|
|
19298
|
+
function isNoSuchBucketError(error) {
|
|
19299
|
+
return error?.name === "NoSuchBucket";
|
|
19300
|
+
}
|
|
19197
19301
|
var CloudControlProvider = class {
|
|
19198
19302
|
cloudControlClient;
|
|
19199
19303
|
logger = getLogger().child("CloudControlProvider");
|
|
@@ -19352,9 +19456,10 @@ var CloudControlProvider = class {
|
|
|
19352
19456
|
async delete(logicalId, physicalId, resourceType, _properties, context) {
|
|
19353
19457
|
this.logger.debug(`Deleting resource ${logicalId} (${resourceType}), physical ID: ${physicalId}`);
|
|
19354
19458
|
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);
|
|
19459
|
+
await this.confirmDeleteTargetIdentity(logicalId, resourceType, physicalId, context);
|
|
19355
19460
|
if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
|
|
19356
19461
|
this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
|
|
19357
|
-
const { ASGProvider } = await import("./asg-provider-
|
|
19462
|
+
const { ASGProvider } = await import("./asg-provider-xXB0aei5.js").then((n) => n.n);
|
|
19358
19463
|
return await new ASGProvider().delete(logicalId, physicalId, resourceType, _properties, context);
|
|
19359
19464
|
}
|
|
19360
19465
|
const isProtectedEc2Instance = context?.removeProtection === true && resourceType === "AWS::EC2::Instance";
|
|
@@ -19391,6 +19496,104 @@ var CloudControlProvider = class {
|
|
|
19391
19496
|
}
|
|
19392
19497
|
}
|
|
19393
19498
|
/**
|
|
19499
|
+
* Confirm that the resource `physicalId` names actually lives in the region
|
|
19500
|
+
* this destroy is targeting, for the types in
|
|
19501
|
+
* {@link CC_DELETE_IDENTITY_CHECKED_TYPES}. No-op for every other type.
|
|
19502
|
+
*
|
|
19503
|
+
* WHAT THIS GUARDS THAT `assertRegionMatch` DOES NOT
|
|
19504
|
+
* ---------------------------------------------------
|
|
19505
|
+
* The existing `assertRegionMatch` in the catch block below compares the
|
|
19506
|
+
* CLIENT's region against the state's region, and only on the `NotFound`
|
|
19507
|
+
* branch. Both halves miss this hazard. An `AWS::S3::Bucket` physical id is
|
|
19508
|
+
* a GLOBALLY unique name, so a state record written before the issue #2227 /
|
|
19509
|
+
* #2245 guards existed can name a bucket that is ours but lives elsewhere --
|
|
19510
|
+
* a cdkd-GENERATED bucket name carries no region or account: for a name cdkd
|
|
19511
|
+
* derives itself, `resource-name.ts:240` builds
|
|
19512
|
+
* `` `${currentStackName}-${name}` `` whenever `resource-name.ts:239`'s
|
|
19513
|
+
* `shouldPrefix` holds, so the same stack deployed to two regions produces
|
|
19514
|
+
* the same bucket name by construction. (That guard has a second, unrelated
|
|
19515
|
+
* path -- it also drops the prefix when there is no ambient stack name at
|
|
19516
|
+
* all -- so it is quoted here rather than enumerated.) And a delete of such a bucket is NOT expected to come back
|
|
19517
|
+
* `NotFound`: the mechanism issues #2245 / #2283 record is that S3 follows
|
|
19518
|
+
* the region redirect for a body-bearing operation, so the delete lands on
|
|
19519
|
+
* the live bucket in the other region and this catch block is never entered.
|
|
19520
|
+
* Nothing downstream can undo that, which is why the confirmation is
|
|
19521
|
+
* pre-flight rather than a wider net around the existing handler. The live
|
|
19522
|
+
* arm in `tests/integration/s3-lifecycle` (phase 0c) is what holds that
|
|
19523
|
+
* mechanism to account on THIS route.
|
|
19524
|
+
*
|
|
19525
|
+
* THE PROBE HAS THREE OUTCOMES AND ALL THREE ARE DISTINCT
|
|
19526
|
+
* -------------------------------------------------------
|
|
19527
|
+
* - ANSWERED, region matches -> proceed silently. The hot path costs one
|
|
19528
|
+
* `GetBucketLocation`.
|
|
19529
|
+
* - ANSWERED, region differs -> REFUSE, non-retryable. Both retry loops
|
|
19530
|
+
* that wrap a `delete()` honour the marker and would otherwise re-run the
|
|
19531
|
+
* whole delete for their full budget before surfacing the same
|
|
19532
|
+
* deterministic message, which reads as flaky AWS: the destroy path's own
|
|
19533
|
+
* loop (`destroy-runner.ts:1328`, which runs FOUR attempts -- `attempt`
|
|
19534
|
+
* goes 0..`maxAttempts` and `maxAttempts` is 3 at `:1326` -- with
|
|
19535
|
+
* `isMarkedNonRetryable` gating both of its retryable arms at `:1372`)
|
|
19536
|
+
* and the deploy engine's `withRetry` (`retry.ts:332`) on the
|
|
19537
|
+
* replacement-delete path.
|
|
19538
|
+
* - COULD NOT ANSWER -> proceed, but WARN at default verbosity. Refusing
|
|
19539
|
+
* would strand destroys for least-privilege roles that never granted
|
|
19540
|
+
* `s3:GetBucketLocation`, with no escape hatch. But proceeding SILENTLY
|
|
19541
|
+
* is what the issue #2245 review rejected: a bucket policy denying
|
|
19542
|
+
* `s3:GetBucketLocation` -- settable by anyone holding
|
|
19543
|
+
* `s3:PutBucketPolicy` on the target -- would disable this guard while
|
|
19544
|
+
* the operator's output stayed identical to a normal destroy. Failing
|
|
19545
|
+
* closed on 403 alone is not the answer either, because a missing IAM
|
|
19546
|
+
* grant and a hostile `Deny` are the same wire response.
|
|
19547
|
+
*
|
|
19548
|
+
* A bucket that is ABSENT is a fourth thing and is NOT the warning case: the
|
|
19549
|
+
* name denotes nothing, so there is nothing to delete in the wrong region,
|
|
19550
|
+
* and the `DeleteResource` below reaches its existing `NotFound` /
|
|
19551
|
+
* `assertRegionMatch` handling. Warning there would fire on every ordinary
|
|
19552
|
+
* re-run of an already-completed destroy.
|
|
19553
|
+
*
|
|
19554
|
+
* `GetBucketLocation` and not `HeadBucket`: a cross-region `HeadBucket` 301s
|
|
19555
|
+
* and SDK v3's region-redirect middleware mishandles the empty-body HEAD
|
|
19556
|
+
* response, yielding a synthetic `name: 'Unknown'`. That would land every
|
|
19557
|
+
* foreign-region bucket -- the exact case this exists to catch -- in the
|
|
19558
|
+
* indeterminate arm, which PROCEEDS. `src/utils/aws-region-resolver.ts`
|
|
19559
|
+
* records the same finding, and the SDK-side guard re-learned it the
|
|
19560
|
+
* expensive way.
|
|
19561
|
+
*/
|
|
19562
|
+
async confirmDeleteTargetIdentity(logicalId, resourceType, physicalId, context) {
|
|
19563
|
+
if (!requiresCcDeleteIdentityCheck(resourceType)) return;
|
|
19564
|
+
const recordedRegion = context?.expectedRegion?.trim();
|
|
19565
|
+
let expectedRegion = recordedRegion === void 0 || recordedRegion === "" ? void 0 : recordedRegion;
|
|
19566
|
+
if (expectedRegion === void 0) try {
|
|
19567
|
+
const clientRegion = (await this.cloudControlClient.config.region())?.trim();
|
|
19568
|
+
expectedRegion = clientRegion === void 0 || clientRegion === "" ? void 0 : clientRegion;
|
|
19569
|
+
} catch (error) {
|
|
19570
|
+
this.logger.debug(`Could not resolve the Cloud Control client region while confirming ${physicalId}: ${error instanceof Error ? error.message : String(error)}`);
|
|
19571
|
+
expectedRegion = void 0;
|
|
19572
|
+
}
|
|
19573
|
+
if (expectedRegion === void 0) {
|
|
19574
|
+
this.logger.warn(`Could not confirm that ${resourceType} ${physicalId} (${logicalId}) is the resource this destroy targets: neither the stack state nor the AWS client reports a region. Proceeding with the delete.`);
|
|
19575
|
+
return;
|
|
19576
|
+
}
|
|
19577
|
+
const wantRegion = canonicalizeRegion(expectedRegion);
|
|
19578
|
+
let actualRegion;
|
|
19579
|
+
try {
|
|
19580
|
+
actualRegion = bucketLocationToRegion((await getAwsClients().s3.send(new GetBucketLocationCommand({ Bucket: physicalId }))).LocationConstraint);
|
|
19581
|
+
} catch (error) {
|
|
19582
|
+
if (isNoSuchBucketError(error)) {
|
|
19583
|
+
this.logger.debug(`Bucket ${physicalId} (${logicalId}) is already absent; leaving the delete to the Cloud Control idempotency path`);
|
|
19584
|
+
return;
|
|
19585
|
+
}
|
|
19586
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
19587
|
+
this.logger.warn(`Could not confirm which region S3 bucket ${physicalId} (${logicalId}) lives in before deleting it: ${reason}. S3 bucket names are globally unique, so cdkd cannot rule out that this name denotes a bucket in another region. Grant s3:GetBucketLocation on the bucket to enable the check. Proceeding with the delete.`);
|
|
19588
|
+
return;
|
|
19589
|
+
}
|
|
19590
|
+
if (actualRegion === wantRegion) {
|
|
19591
|
+
this.logger.debug(`Confirmed S3 bucket ${physicalId} (${logicalId}) lives in ${wantRegion} before deleting it`);
|
|
19592
|
+
return;
|
|
19593
|
+
}
|
|
19594
|
+
throw markNonRetryable(new ProvisioningError(`Refusing to delete S3 bucket ${physicalId} for ${logicalId} (${resourceType}): the bucket carrying that name lives in ${actualRegion}, while this destroy targets ${wantRegion}. S3 bucket names are globally unique, so a physical id recorded in cdkd state can denote a bucket in a different region. S3 follows the region redirect for a body-bearing operation, so issuing this delete risks destroying the live bucket in ${actualRegion} instead, unrecoverably, rather than reporting the bucket absent. Confirm the physical id recorded in cdkd state (cdkd state show) and correct the record: --region does not change this comparison, which reads the region stored in the state file, so re-running the destroy with a different flag value will not resolve it.`, resourceType, logicalId, physicalId));
|
|
19595
|
+
}
|
|
19596
|
+
/**
|
|
19394
19597
|
* Set a registry-declared deletion-protection property to its "off" value
|
|
19395
19598
|
* in-place via a CC UpdateResource patch (issues #1312 / #1314).
|
|
19396
19599
|
* Best-effort: failures are logged at warn and swallowed — the subsequent
|
|
@@ -31141,4 +31344,4 @@ var DeployEngine = class {
|
|
|
31141
31344
|
|
|
31142
31345
|
//#endregion
|
|
31143
31346
|
export { maskerOrIdentity as $, findLargeInlineResources as $n, scrubResourceRecord as $t, renderStatefulReason as A, formatDockerLoginError as An, StackHasActiveImportsError as Ar, producerRegionsFromState as At, exportAliasCollisionScrubWarning as B, getLegacyStateBucketName as Bn, isThrottlingError as Br, withRetry as Bt, isFinalSnapshotError as C, parseBootstrapMarker as Cn, LockError as Cr, configStringRefusal as Ct, extractDeploymentEventError as D, buildDenyExternalAccessPolicy as Dn, ProvisioningError as Dr, requireConfigObject as Dt, makeCanonicalizePropertiesFn as E, validateContainerRepoName as En, PartialFailureError as Er, requireConfigArray as Et, green as F, AssetManifestLoader as Fn, isCdkdError as Fr, s3BucketWebsiteUrl as Ft, IAMRoleProvider as G, resolveStateBucketWithDefault as Gn, TEMPLATE_SOURCED_RULES as Gt, secretBearingStateKeyWarning as H, resolveAutoAssetStorage as Hn, __exportAll as Hr, TemplateParser as Ht, red as I, getDockerImageBySourceHash as In, normalizeAwsError as Ir, applyRoleArnIfSet as It, ProviderRegistry as J, stateBucketExistenceConfirmed as Jn, errorCauseChain as Jt, collectInlinePolicyNamesManagedBySiblings as K, resolveStateBucketWithDefaultAndSource as Kn, createSecretMasker as Kt, yellow as L, Synthesizer as Ln, withErrorHandling as Lr, DiffCalculator as Lt, bold as M, partitionSensitiveEnv as Mn, StateError as Mr, s3BucketDomainName as Mt, cyan as N, runDockerForeground as Nn, SynthesisError as Nr, s3BucketDualStackDomainName as Nt, MULTI_REGION_RECREATE_BLOCKED_TYPES as O, buildDockerImage as On, ResourceTimeoutError as Or, requireConfigString as Ot, gray as P, runDockerStreaming as Pn, formatError as Pr, s3BucketRegionalDomainName as Pt, maskDeep as Q, MIGRATE_TMP_PREFIX as Qn, redactSecretsForState as Qt, collectDeclaredOutputNames as R, synthesisStatusMessage as Rn, isMarkedNonRetryable as Rr, INTRINSIC_KEYS as Rt, createPreDeleteFinalSnapshot as S, isCrossRegionRedirect as Sn, LocalStartServiceError as Sr, configBooleanRefusal as St, unsupportedFinalSnapshotError as T, validateAssetBucketName as Tn, NestedStackChildDirectDestroyError as Tr, replayWarn as Tt, stateKeySecretExposure as U, resolveCaptureObservedState as Un, STATE_SOURCED_CROSS_GENERATION_RULES as Ut, isExportAliasCollision as V, resolveApp as Vn, markNonRetryable as Vr, DagBuilder as Vt, getCurrentResourceSecrets as W, resolveSkipPrefix as Wn, STATE_SOURCED_READBACK_RULES as Wt, findSilentDropProperties as X, CFN_TEMPLATE_BODY_LIMIT as Xn, maskSecretsInError as Xt, findActionableSilentDrops as Y, warnDeprecatedNoPrefixCliFlag as Yn, isSingleDynamicReferenceToken as Yt, createMaskedRetryLogger as Z, CFN_TEMPLATE_URL_LIMIT as Zn, maskSecretsInText as Zt, computeImplicitDeleteEdges as _, AssetModeResolver as _n, DependencyError as _r, WAFv2WebACLProvider as _t, DeploymentEventsStore as a, importableOutputKeys as an, AssemblyReader as ar, isInterruptedWaitError as at, buildFinalSnapshotIdentifier as b, ensureAssetStorage as bn, LocalInvokeBuildError as br, assertRegionMatch as bt, replayFailedOperations as c, AssetPublisher as cn, resolveBucketRegion as cr, slowCcOperationTimeoutMs as ct, updatePartialReason as d, buildAssetRedirectMap as dn, resetAwsClients as dr, IntrinsicFunctionResolver as dt, LockManager as en, uploadCfnTemplate as er, CUSTOM_RESOURCE_RESPONSE_PREFIX as et, UNSPECIFIED_SKIP_REASON as f, createAssetRedirectResolver as fn, setAwsClients as fr, carriesDynamicReference as ft, IMPLICIT_DELETE_DEPENDENCIES as g, stripControlChars as gn, CrossAccountSecretRefusalError as gr, refStateLookupFromResource as gt, maskingRetryLogger as h, escapeRegExp$1 as hn, ConfigError as hr, parameterTypeMayLoseSecretIdentity as ht, DeploymentEventsReader as i, exportNamesCarriedFrom as in, derivePartitionAndUrlSuffix as ir, interruptWatchListenerCount as it, formatResourceLine as j, getDockerCmd as jn, StackTerminationProtectionError as jr, s3BucketArn as jt, isStatefulRecreateTargetSync as k, dockerSpawnEnvWithSensitive as kn, ResourceUpdateNotSupportedError as kr, classifyReplaySecretRegion as kt, replayRollback as l, stringifyValue as ln, AwsClients as lr, disableInstanceApiTermination as lt, withResourceDeadline as m, rewriteTemplateAssetReferences as mn, CdkdError as mr, getAccountInfo as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, S3StateBackend as nn, PARTITION_TABLE as nr, beginCommandInterruptScope as nt, planFailedOps as o, importableOutputs as on, processStackMessages as or, startInterruptWatch as ot, deleteSkipReason as p, loadPublishableAssetManifest as pn, AssetError as pr, cfnRefValueFromPhysicalId as pt, clearOnUpdateRemoval as q, resolveUseCdkBootstrapAssets as qn, dynamicReferenceTokens as qt, DeployEngine as r, rebuildClientForBucketRegion as rn, canonicalizeRegion as rr, endCommandInterruptScope as rt, planRollback as s, shouldRetainResource as sn, clearBucketRegionCache as sr, CloudControlProvider as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, displaySafe as tn, expectedOwnerParam as tr, DEFAULT_STATE_PREFIX as tt, updatePartialMessage as u, WorkGraph as un, getAwsClients as ur, isTerminationProtectionPropagationError as ut, ATOMIC_FINAL_SNAPSHOT_TYPES as v, BOOTSTRAP_MARKER_PREFIX as vn, DeployCancelledError as vr, normalizeAwsTagsToCfn as vt, refusesFinalSnapshot as w, readBootstrapMarkerBody as wn, MissingCdkCliError as wr, readConfigString as wt, ccRoutedFinalSnapshotError as x, getBootstrapMarkerKey as xn, LocalMigrateError as xr, coerceCfnBoolean as xt, PRE_DELETE_SNAPSHOT_TYPES as y, assertAssetBucketRegion as yn, DynamicReferenceRegionAmbiguousError as yr, resolveExplicitPhysicalId as yt, collectPublishedOutputNames as z, getDefaultStateBucketName as zn, isRetryableTransientError as zr, describeTypeWithThrottleRetry as zt };
|
|
31144
|
-
//# sourceMappingURL=deploy-engine-
|
|
31347
|
+
//# sourceMappingURL=deploy-engine-DjcVPGO-.js.map
|