@go-to-k/cdkd 0.291.19 → 0.291.21
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-Dpki2-Xd.js → asg-provider-HsFVvUCB.js} +2 -2
- package/dist/{asg-provider-Dpki2-Xd.js.map → asg-provider-HsFVvUCB.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-OgrMdBRR.js → deploy-engine-BAOtjfHX.js} +161 -137
- package/dist/deploy-engine-BAOtjfHX.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/{program-L-XPPVLA.js → program-C6B7leIq.js} +108 -36
- package/dist/{program-L-XPPVLA.js.map → program-C6B7leIq.js.map} +1 -1
- package/dist/{version-2QIPw29e.js → version-ELgusB_X.js} +2 -2
- package/dist/{version-2QIPw29e.js.map → version-ELgusB_X.js.map} +1 -1
- package/package.json +1 -1
- package/dist/deploy-engine-OgrMdBRR.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { n as isVersionOnlyInvocation, t as getCdkdVersion } from "./version-
|
|
2
|
+
import { n as isVersionOnlyInvocation, t as getCdkdVersion } from "./version-ELgusB_X.js";
|
|
3
3
|
|
|
4
4
|
//#region src/cli/pipe-close-handler.ts
|
|
5
5
|
/**
|
|
@@ -74,7 +74,7 @@ async function main() {
|
|
|
74
74
|
console.log(getCdkdVersion());
|
|
75
75
|
return;
|
|
76
76
|
}
|
|
77
|
-
const { buildProgram } = await import("./program-
|
|
77
|
+
const { buildProgram } = await import("./program-C6B7leIq.js");
|
|
78
78
|
const program = buildProgram();
|
|
79
79
|
const args = reorderArgs(process.argv);
|
|
80
80
|
await program.parseAsync(args);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { C as displayAwsMessage, D as isPasteableIdent, E as displayStackName, O as truncateCodePoints, S as UNRENDERABLE, T as displaySafe, d as applyDefaultNameForFallback, f as explicitNamePropertyFor, g as looksLikeCdkdGeneratedName, h as getCurrentStackName, m as generateResourceNameWithFallback, n as getLogger, p as generateResourceName, r as isStdoutReservedForPayload, s as getLiveRenderer, v as withStackName, w as displayIdent, x as STACK_REF_MAX_CODE_POINTS, y as withoutGeneratedFallbackName } from "./logger-Bt0RGDfb.js";
|
|
2
2
|
import { a as setAssumedRoleCredentials, c as currentStackAwsScope, i as getPreAssumeEnvCredentials, l as runInStackAwsScope, n as awsClientDefaults, o as setPreAssumeEnvCredentials, r as getAssumedRoleCredentials, s as ambientRegion, t as SECOND_ROLE_PUBLISH_REFUSAL } from "./aws-client-defaults-jISU4PHo.js";
|
|
3
|
-
import { t as getCdkdVersion } from "./version-
|
|
3
|
+
import { t as getCdkdVersion } from "./version-ELgusB_X.js";
|
|
4
4
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
5
5
|
import { createHash, randomUUID } from "node:crypto";
|
|
6
6
|
import { CreateBucketCommand, DeleteObjectCommand, DeleteObjectsCommand, GetBucketLocationCommand, GetBucketReplicationCommand, GetObjectCommand, HeadBucketCommand, HeadObjectCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchKey, PutBucketEncryptionCommand, PutBucketPolicyCommand, PutObjectCommand, PutPublicAccessBlockCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
|
|
@@ -9797,20 +9797,31 @@ function buildDockerBuildCommand(source, tag, platformOverride) {
|
|
|
9797
9797
|
function ecrUrlSuffix(region) {
|
|
9798
9798
|
return derivePartitionAndUrlSuffix(region).urlSuffix;
|
|
9799
9799
|
}
|
|
9800
|
+
/** An AWS account id: exactly twelve digits. */
|
|
9801
|
+
const ACCOUNT_ID = /^\d{12}$/;
|
|
9800
9802
|
/**
|
|
9801
|
-
*
|
|
9802
|
-
*
|
|
9803
|
-
*
|
|
9804
|
-
|
|
9805
|
-
|
|
9806
|
-
|
|
9807
|
-
*
|
|
9803
|
+
* The DNS-label charset a region id is drawn from (a trailing hyphen is not
|
|
9804
|
+
* refused; the host stays under the AWS-owned suffix either way).
|
|
9805
|
+
* `src/utils/ecr-uri.ts` holds the same class for the pull side.
|
|
9806
|
+
*/
|
|
9807
|
+
const REGION_LABEL = /^[A-Za-z0-9][A-Za-z0-9-]*$/;
|
|
9808
|
+
/**
|
|
9809
|
+
* The ECR registry host an asset is pushed to. The push URI AND the
|
|
9810
|
+
* `docker login` endpoint are both built from this one value, so the login
|
|
9811
|
+
* always targets the host the push uses (issue #3681).
|
|
9808
9812
|
*
|
|
9809
|
-
*
|
|
9810
|
-
*
|
|
9811
|
-
*
|
|
9813
|
+
* The region comes from the asset manifest, and the ECR password is sent to
|
|
9814
|
+
* this host, so both halves are charset-gated HERE: a region like
|
|
9815
|
+
* `x.example.com/` would otherwise name a host AWS does not own. The suffix is
|
|
9816
|
+
* the AWS-owned one `derivePartitionAndUrlSuffix` returns. A known-region
|
|
9817
|
+
* check is deliberately absent, so a region cdkd has not heard of yet still
|
|
9818
|
+
* publishes.
|
|
9812
9819
|
*/
|
|
9813
|
-
|
|
9820
|
+
function ecrRegistryHost(accountId, region) {
|
|
9821
|
+
if (typeof accountId !== "string" || !ACCOUNT_ID.test(accountId)) throw new AssetError(`Refusing to publish a Docker image asset: ${displayIdent(accountId)} is not a 12-digit AWS account id`);
|
|
9822
|
+
if (typeof region !== "string" || region.length > 63 || !REGION_LABEL.test(region)) throw new AssetError(`Refusing to publish a Docker image asset: the destination region ${displayIdent(region)} is not a valid AWS region id`);
|
|
9823
|
+
return `${accountId}.dkr.ecr.${region}.${ecrUrlSuffix(region)}`;
|
|
9824
|
+
}
|
|
9814
9825
|
/**
|
|
9815
9826
|
* Whether a `docker push` failure looks like an ECR authentication failure
|
|
9816
9827
|
* (missing / stale / expired credential) rather than a network / repo / other
|
|
@@ -9840,7 +9851,8 @@ var DockerAssetPublisher = class {
|
|
|
9840
9851
|
const repositoryName = this.resolvePlaceholders(dest.repositoryName, accountId, region);
|
|
9841
9852
|
const imageTag = this.resolvePlaceholders(dest.imageTag, accountId, region);
|
|
9842
9853
|
const destRegion = dest.region ? this.resolvePlaceholders(dest.region, accountId, region) : region;
|
|
9843
|
-
const
|
|
9854
|
+
const registryHost = ecrRegistryHost(accountId, destRegion);
|
|
9855
|
+
const ecrUri = `${registryHost}/${repositoryName}:${imageTag}`;
|
|
9844
9856
|
this.logger.debug(`Publishing Docker image ${asset.displayName || assetHash} → ${ecrUri}`);
|
|
9845
9857
|
const client = new ECRClient({
|
|
9846
9858
|
...ambientClientDefaults(),
|
|
@@ -9853,7 +9865,7 @@ var DockerAssetPublisher = class {
|
|
|
9853
9865
|
}
|
|
9854
9866
|
const localTag = `cdkd-asset-${assetHash}`;
|
|
9855
9867
|
await this.buildImage(asset, cdkOutputDir, localTag, cdkOutputDir);
|
|
9856
|
-
await this.tagAndPushWithLazyLogin(client, localTag, ecrUri,
|
|
9868
|
+
await this.tagAndPushWithLazyLogin(client, localTag, ecrUri, registryHost);
|
|
9857
9869
|
this.logger.debug(`✅ Published: ${ecrUri}`);
|
|
9858
9870
|
} finally {
|
|
9859
9871
|
client.destroy();
|
|
@@ -9880,7 +9892,8 @@ var DockerAssetPublisher = class {
|
|
|
9880
9892
|
const repositoryName = this.resolvePlaceholders(dest.repositoryName, accountId, region);
|
|
9881
9893
|
const imageTag = this.resolvePlaceholders(dest.imageTag, accountId, region);
|
|
9882
9894
|
const destRegion = dest.region ? this.resolvePlaceholders(dest.region, accountId, region) : region;
|
|
9883
|
-
const
|
|
9895
|
+
const registryHost = ecrRegistryHost(accountId, destRegion);
|
|
9896
|
+
const ecrUri = `${registryHost}/${repositoryName}:${imageTag}`;
|
|
9884
9897
|
const client = new ECRClient({
|
|
9885
9898
|
...ambientClientDefaults(),
|
|
9886
9899
|
region: destRegion
|
|
@@ -9890,7 +9903,7 @@ var DockerAssetPublisher = class {
|
|
|
9890
9903
|
this.logger.debug(`Image already exists, skipping: ${ecrUri}`);
|
|
9891
9904
|
continue;
|
|
9892
9905
|
}
|
|
9893
|
-
await this.tagAndPushWithLazyLogin(client, localTag, ecrUri,
|
|
9906
|
+
await this.tagAndPushWithLazyLogin(client, localTag, ecrUri, registryHost);
|
|
9894
9907
|
this.logger.debug(`✅ Published: ${ecrUri}`);
|
|
9895
9908
|
} finally {
|
|
9896
9909
|
client.destroy();
|
|
@@ -9957,18 +9970,17 @@ var DockerAssetPublisher = class {
|
|
|
9957
9970
|
* round-trip (~3.3s saved). We attempt the push FIRST and only pay the login
|
|
9958
9971
|
* when it is actually needed:
|
|
9959
9972
|
*
|
|
9960
|
-
* 1.
|
|
9961
|
-
*
|
|
9962
|
-
*
|
|
9963
|
-
* 2.
|
|
9964
|
-
*
|
|
9965
|
-
*
|
|
9966
|
-
* login and retry the push ONCE.
|
|
9973
|
+
* 1. Push optimistically. A login earlier in this process (or session)
|
|
9974
|
+
* left a credential in docker's store, so a repeat push to the same
|
|
9975
|
+
* registry needs no new login — docker's store is the only login cache.
|
|
9976
|
+
* 2. On a NON-auth failure (network, repo-not-found, etc.) surface the
|
|
9977
|
+
* error unchanged. On an auth failure (no pre-existing cred, OR a
|
|
9978
|
+
* stale/expired cred), log in to ECR and retry the push ONCE.
|
|
9967
9979
|
*
|
|
9968
9980
|
* A stale cred and a missing cred take the SAME branch, so cdkd never
|
|
9969
9981
|
* fail-hard on an expired credential — it re-logs in and retries.
|
|
9970
9982
|
*/
|
|
9971
|
-
async tagAndPushWithLazyLogin(client, localTag, fullUri,
|
|
9983
|
+
async tagAndPushWithLazyLogin(client, localTag, fullUri, registryHost) {
|
|
9972
9984
|
await this.tagImage(localTag, fullUri);
|
|
9973
9985
|
try {
|
|
9974
9986
|
await this.pushImage(fullUri);
|
|
@@ -9978,34 +9990,23 @@ var DockerAssetPublisher = class {
|
|
|
9978
9990
|
if (!isDockerAuthFailure(e.stderr || e.message || String(err))) throw err;
|
|
9979
9991
|
this.logger.debug(`Docker push to ${fullUri} failed with an auth error; logging in to ECR and retrying`);
|
|
9980
9992
|
}
|
|
9981
|
-
await this.ecrLogin(client,
|
|
9993
|
+
await this.ecrLogin(client, registryHost);
|
|
9982
9994
|
await this.pushImage(fullUri);
|
|
9983
9995
|
}
|
|
9984
9996
|
/**
|
|
9985
|
-
* Authenticate with ECR via `docker login --password-stdin
|
|
9997
|
+
* Authenticate with ECR via `docker login --password-stdin`, against
|
|
9998
|
+
* `registryHost` — the host the push targets (`ecrRegistryHost`).
|
|
9986
9999
|
*
|
|
9987
|
-
*
|
|
9988
|
-
*
|
|
9989
|
-
*
|
|
9990
|
-
* (mirrors `cdk-assets`). ECR tokens are valid ~12h and a deploy process is
|
|
9991
|
-
* short-lived, so this is safe. Keyed per registry so cross-account /
|
|
9992
|
-
* cross-region assets each get their own login.
|
|
9993
|
-
*
|
|
9994
|
-
* `force: true` bypasses the per-process cache short-circuit — used by the
|
|
9995
|
-
* lazy-login retry after a push fails auth, where the cached entry may hold a
|
|
9996
|
-
* token that AWS has already expired.
|
|
10000
|
+
* Called only after a push failed auth, so it always logs in: a repeat push
|
|
10001
|
+
* to a registry already logged in to succeeds on the credential docker
|
|
10002
|
+
* stored and never reaches here (#1193).
|
|
9997
10003
|
*/
|
|
9998
|
-
async ecrLogin(client,
|
|
9999
|
-
const registryKey = `${accountId}.dkr.ecr.${region}.${ecrUrlSuffix(region)}`;
|
|
10000
|
-
if (!options.force && loggedInRegistries.has(registryKey)) {
|
|
10001
|
-
this.logger.debug(`Reusing cached ECR login for ${registryKey}`);
|
|
10002
|
-
return;
|
|
10003
|
-
}
|
|
10004
|
+
async ecrLogin(client, registryHost) {
|
|
10004
10005
|
const authData = (await client.send(new GetAuthorizationTokenCommand({}))).authorizationData?.[0];
|
|
10005
10006
|
if (!authData?.authorizationToken) throw new AssetError("Failed to get ECR authorization token");
|
|
10006
10007
|
const [username, password] = Buffer.from(authData.authorizationToken, "base64").toString().split(":");
|
|
10007
10008
|
if (!username || password === void 0) throw new AssetError("ECR authorization token has unexpected shape (missing username/password)");
|
|
10008
|
-
const endpoint =
|
|
10009
|
+
const endpoint = `https://${registryHost}`;
|
|
10009
10010
|
const loginArgs = [
|
|
10010
10011
|
"login",
|
|
10011
10012
|
"--username",
|
|
@@ -10015,7 +10016,6 @@ var DockerAssetPublisher = class {
|
|
|
10015
10016
|
];
|
|
10016
10017
|
try {
|
|
10017
10018
|
await runDockerStreaming(loginArgs, { input: password });
|
|
10018
|
-
loggedInRegistries.add(registryKey);
|
|
10019
10019
|
} catch (err) {
|
|
10020
10020
|
throw new AssetError(`ECR login failed: ${formatDockerLoginError(describeDockerFailure(err, loginArgs), endpoint)}`, redactedDockerCause(err, loginArgs));
|
|
10021
10021
|
}
|
|
@@ -27600,6 +27600,88 @@ function mergeHealedAttributes(recorded, healed, isStaleValue) {
|
|
|
27600
27600
|
return merged ?? recorded;
|
|
27601
27601
|
}
|
|
27602
27602
|
|
|
27603
|
+
//#endregion
|
|
27604
|
+
//#region src/provisioning/attribute-map.ts
|
|
27605
|
+
/**
|
|
27606
|
+
* The ONE spelling of the attribute-map rule an SDK provider's `create()` /
|
|
27607
|
+
* `update()` / `import()` result follows (issue #3077, closing the `?? ''`
|
|
27608
|
+
* shape `docs/provider-development.md` forbids under "Never store an
|
|
27609
|
+
* empty-string placeholder"):
|
|
27610
|
+
*
|
|
27611
|
+
* an attribute cdkd could not read back is ABSENT from the map — never
|
|
27612
|
+
* recorded as the empty string, and never as a present-but-`undefined` key.
|
|
27613
|
+
*
|
|
27614
|
+
* The consumers of `ResourceState.attributes` all key off exactly that
|
|
27615
|
+
* distinction, and a sentinel puts every one of them on the wrong branch:
|
|
27616
|
+
*
|
|
27617
|
+
* - the deploy engine persists the map as-is, so `''` becomes the recorded
|
|
27618
|
+
* value of a field AWS never assigned;
|
|
27619
|
+
* - the intrinsic resolver serves a stored attribute whenever it is not
|
|
27620
|
+
* `undefined`, so `''` shadows `constructAttribute` forever — the
|
|
27621
|
+
* `AWS::EC2::Instance` IP / DNS / AZ arm re-describes the instance from
|
|
27622
|
+
* AWS only on a MISS, the `Arn` arms of the RDS family rebuild the ARN
|
|
27623
|
+
* only on a MISS;
|
|
27624
|
+
* - the Outputs export pass publishes whatever the resolver returned, so a
|
|
27625
|
+
* stored `''` is exported to every `Fn::ImportValue` consumer.
|
|
27626
|
+
*
|
|
27627
|
+
* It exists as a MODULE rather than a per-provider idiom because the rule was
|
|
27628
|
+
* prose and 96 attribute-position `?? ''` / `|| ''` / bare `''` sites across
|
|
27629
|
+
* 18 providers shipped anyway (measured 2026-09-14 with the TypeScript-compiler
|
|
27630
|
+
* walk that is now `tests/unit/provisioning/attribute-map.test.ts`). A helper
|
|
27631
|
+
* that DROPS the key is the one form a provider cannot spell wrong by habit.
|
|
27632
|
+
*
|
|
27633
|
+
* Two values are treated as "not read back":
|
|
27634
|
+
*
|
|
27635
|
+
* - `undefined`: the SDK's spelling of an unassigned optional member.
|
|
27636
|
+
* - `null`: no AWS SDK v3 read-back reports a scalar attribute as `null`, and
|
|
27637
|
+
* a stored `null` takes the resolver's "not `undefined`" hit branch exactly
|
|
27638
|
+
* like `''` does.
|
|
27639
|
+
*
|
|
27640
|
+
* Every other value is kept verbatim — INCLUDING an empty string AWS itself
|
|
27641
|
+
* reported (`false`, `0`, an empty array and an object likewise). The helper
|
|
27642
|
+
* stops cdkd MANUFACTURING `''` for a field it never read; a `''` that came
|
|
27643
|
+
* off the wire is a known value with a meaning the provider owns. The EC2
|
|
27644
|
+
* Instance provider is where that distinction is load-bearing: a `running`
|
|
27645
|
+
* instance with no public address is described with `PublicDnsName: ''` and
|
|
27646
|
+
* no `PublicIpAddress`, and CloudFormation answers `''` for both — a KNOWN
|
|
27647
|
+
* empty, recorded as such so a reference does not degrade to the instance id
|
|
27648
|
+
* on every resolution — while the same `''` on a `pending` instance means
|
|
27649
|
+
* "not yet", which that provider maps to `undefined` BEFORE calling this
|
|
27650
|
+
* helper (its `describedInstanceAttributes`). A caller that knows a `''`
|
|
27651
|
+
* means "unknown" is the one that must say so; this helper cannot tell.
|
|
27652
|
+
*
|
|
27653
|
+
* Deliberately NOT a general "compact this record" utility: it is scoped to
|
|
27654
|
+
* attribute maps. A property bag keeps its `undefined`-valued keys out by other
|
|
27655
|
+
* means (`.claude/rules/provider-property-fidelity.md`, "Remove the key rather
|
|
27656
|
+
* than setting it to `undefined`").
|
|
27657
|
+
*
|
|
27658
|
+
* A LEAF module (imports nothing) so every provider can take it without adding
|
|
27659
|
+
* an edge to the provider import ring.
|
|
27660
|
+
*/
|
|
27661
|
+
/**
|
|
27662
|
+
* Build an attribute map from read-back values, omitting every key whose value
|
|
27663
|
+
* is `undefined` or `null`.
|
|
27664
|
+
*/
|
|
27665
|
+
function definedAttributes(entries) {
|
|
27666
|
+
const out = {};
|
|
27667
|
+
for (const [key, value] of Object.entries(entries)) {
|
|
27668
|
+
if (value === void 0 || value === null) continue;
|
|
27669
|
+
out[key] = value;
|
|
27670
|
+
}
|
|
27671
|
+
return out;
|
|
27672
|
+
}
|
|
27673
|
+
/**
|
|
27674
|
+
* `String(value)` for a numeric read-back whose CloudFormation attribute is a
|
|
27675
|
+
* string (`Endpoint.Port`), or `undefined` when the field is unassigned — so
|
|
27676
|
+
* `definedAttributes` drops the key instead of recording the literal
|
|
27677
|
+
* `'undefined'`, which is what `String(described?.Port ?? '')` yields once its
|
|
27678
|
+
* `?? ''` is merely deleted.
|
|
27679
|
+
*/
|
|
27680
|
+
function stringifyIfAssigned(value) {
|
|
27681
|
+
if (value === void 0 || value === null) return void 0;
|
|
27682
|
+
return String(value);
|
|
27683
|
+
}
|
|
27684
|
+
|
|
27603
27685
|
//#endregion
|
|
27604
27686
|
//#region src/provisioning/config-shape.ts
|
|
27605
27687
|
/**
|
|
@@ -28741,13 +28823,23 @@ var WAFv2WebACLProvider = class {
|
|
|
28741
28823
|
}))).Summary;
|
|
28742
28824
|
if (!summary?.ARN || !summary?.Id) throw new Error("CreateWebACL did not return Summary with ARN and Id");
|
|
28743
28825
|
this.logger.debug(`Successfully created WAFv2 WebACL ${logicalId}: ${summary.ARN}`);
|
|
28826
|
+
let labelNamespace;
|
|
28827
|
+
try {
|
|
28828
|
+
labelNamespace = (await this.getClient().send(new GetWebACLCommand({
|
|
28829
|
+
Id: summary.Id,
|
|
28830
|
+
Name: name,
|
|
28831
|
+
Scope: scope
|
|
28832
|
+
}))).WebACL?.LabelNamespace;
|
|
28833
|
+
} catch (readError) {
|
|
28834
|
+
this.logger.debug(`Could not read the label namespace of ${logicalId} after create: ${describeAwsFailure(readError).detail}`);
|
|
28835
|
+
}
|
|
28744
28836
|
return {
|
|
28745
28837
|
physicalId: summary.ARN,
|
|
28746
|
-
attributes: {
|
|
28838
|
+
attributes: definedAttributes({
|
|
28747
28839
|
Arn: summary.ARN,
|
|
28748
28840
|
Id: summary.Id,
|
|
28749
|
-
LabelNamespace:
|
|
28750
|
-
}
|
|
28841
|
+
LabelNamespace: labelNamespace
|
|
28842
|
+
})
|
|
28751
28843
|
};
|
|
28752
28844
|
} catch (error) {
|
|
28753
28845
|
if (error instanceof ProvisioningError) throw error;
|
|
@@ -28945,19 +29037,33 @@ var WAFv2WebACLProvider = class {
|
|
|
28945
29037
|
*
|
|
28946
29038
|
* Lookup order:
|
|
28947
29039
|
* 1. `--resource <id>=<arn>` override → verify with `GetWebACL` (parses
|
|
28948
|
-
* Name/Id/Scope back out of the ARN).
|
|
29040
|
+
* Name/Id/Scope back out of the ARN). CloudFormation's compound
|
|
29041
|
+
* `name|id|scope` physical id — what `--migrate-from-cloudformation`
|
|
29042
|
+
* passes — is accepted too and recorded under the ARN (issue #3627).
|
|
28949
29043
|
*/
|
|
28950
29044
|
async import(input) {
|
|
28951
29045
|
if (input.knownPhysicalId) try {
|
|
28952
|
-
const
|
|
28953
|
-
|
|
29046
|
+
const compound = /^([^|]+)\|([^|]+)\|(REGIONAL|CLOUDFRONT)$/.exec(input.knownPhysicalId);
|
|
29047
|
+
const { id, name, scope } = compound ? {
|
|
29048
|
+
name: compound[1],
|
|
29049
|
+
id: compound[2],
|
|
29050
|
+
scope: compound[3]
|
|
29051
|
+
} : parseWebACLArn(input.knownPhysicalId);
|
|
29052
|
+
if (!id || !name) return null;
|
|
29053
|
+
const resp = await this.getClient().send(new GetWebACLCommand({
|
|
28954
29054
|
Id: id,
|
|
28955
29055
|
Name: name,
|
|
28956
29056
|
Scope: scope
|
|
28957
29057
|
}));
|
|
29058
|
+
const arn = resp.WebACL?.ARN;
|
|
29059
|
+
if (!arn) return null;
|
|
28958
29060
|
return {
|
|
28959
|
-
physicalId:
|
|
28960
|
-
attributes: {
|
|
29061
|
+
physicalId: arn,
|
|
29062
|
+
attributes: definedAttributes({
|
|
29063
|
+
Arn: arn,
|
|
29064
|
+
Id: resp.WebACL?.Id,
|
|
29065
|
+
LabelNamespace: resp.WebACL?.LabelNamespace
|
|
29066
|
+
})
|
|
28961
29067
|
};
|
|
28962
29068
|
} catch (err) {
|
|
28963
29069
|
if (err instanceof WAFNonexistentItemException) return null;
|
|
@@ -36898,7 +37004,7 @@ var CloudControlProvider = class {
|
|
|
36898
37004
|
const indeterminateGuard = await this.confirmDeleteTargetIdentity(logicalId, resourceType, physicalId, context);
|
|
36899
37005
|
if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
|
|
36900
37006
|
this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
|
|
36901
|
-
const { ASGProvider } = await import("./asg-provider-
|
|
37007
|
+
const { ASGProvider } = await import("./asg-provider-HsFVvUCB.js").then((n) => n.n);
|
|
36902
37008
|
const asgProvider = new ASGProvider();
|
|
36903
37009
|
return withIndeterminateGuard(await asgProvider.delete(logicalId, physicalId, resourceType, _properties, context), indeterminateGuard);
|
|
36904
37010
|
}
|
|
@@ -42501,88 +42607,6 @@ function isCustomResource(resourceType) {
|
|
|
42501
42607
|
return resourceType.startsWith("Custom::") || resourceType === "AWS::CloudFormation::CustomResource";
|
|
42502
42608
|
}
|
|
42503
42609
|
|
|
42504
|
-
//#endregion
|
|
42505
|
-
//#region src/provisioning/attribute-map.ts
|
|
42506
|
-
/**
|
|
42507
|
-
* The ONE spelling of the attribute-map rule an SDK provider's `create()` /
|
|
42508
|
-
* `update()` / `import()` result follows (issue #3077, closing the `?? ''`
|
|
42509
|
-
* shape `docs/provider-development.md` forbids under "Never store an
|
|
42510
|
-
* empty-string placeholder"):
|
|
42511
|
-
*
|
|
42512
|
-
* an attribute cdkd could not read back is ABSENT from the map — never
|
|
42513
|
-
* recorded as the empty string, and never as a present-but-`undefined` key.
|
|
42514
|
-
*
|
|
42515
|
-
* The consumers of `ResourceState.attributes` all key off exactly that
|
|
42516
|
-
* distinction, and a sentinel puts every one of them on the wrong branch:
|
|
42517
|
-
*
|
|
42518
|
-
* - the deploy engine persists the map as-is, so `''` becomes the recorded
|
|
42519
|
-
* value of a field AWS never assigned;
|
|
42520
|
-
* - the intrinsic resolver serves a stored attribute whenever it is not
|
|
42521
|
-
* `undefined`, so `''` shadows `constructAttribute` forever — the
|
|
42522
|
-
* `AWS::EC2::Instance` IP / DNS / AZ arm re-describes the instance from
|
|
42523
|
-
* AWS only on a MISS, the `Arn` arms of the RDS family rebuild the ARN
|
|
42524
|
-
* only on a MISS;
|
|
42525
|
-
* - the Outputs export pass publishes whatever the resolver returned, so a
|
|
42526
|
-
* stored `''` is exported to every `Fn::ImportValue` consumer.
|
|
42527
|
-
*
|
|
42528
|
-
* It exists as a MODULE rather than a per-provider idiom because the rule was
|
|
42529
|
-
* prose and 96 attribute-position `?? ''` / `|| ''` / bare `''` sites across
|
|
42530
|
-
* 18 providers shipped anyway (measured 2026-09-14 with the TypeScript-compiler
|
|
42531
|
-
* walk that is now `tests/unit/provisioning/attribute-map.test.ts`). A helper
|
|
42532
|
-
* that DROPS the key is the one form a provider cannot spell wrong by habit.
|
|
42533
|
-
*
|
|
42534
|
-
* Two values are treated as "not read back":
|
|
42535
|
-
*
|
|
42536
|
-
* - `undefined`: the SDK's spelling of an unassigned optional member.
|
|
42537
|
-
* - `null`: no AWS SDK v3 read-back reports a scalar attribute as `null`, and
|
|
42538
|
-
* a stored `null` takes the resolver's "not `undefined`" hit branch exactly
|
|
42539
|
-
* like `''` does.
|
|
42540
|
-
*
|
|
42541
|
-
* Every other value is kept verbatim — INCLUDING an empty string AWS itself
|
|
42542
|
-
* reported (`false`, `0`, an empty array and an object likewise). The helper
|
|
42543
|
-
* stops cdkd MANUFACTURING `''` for a field it never read; a `''` that came
|
|
42544
|
-
* off the wire is a known value with a meaning the provider owns. The EC2
|
|
42545
|
-
* Instance provider is where that distinction is load-bearing: a `running`
|
|
42546
|
-
* instance with no public address is described with `PublicDnsName: ''` and
|
|
42547
|
-
* no `PublicIpAddress`, and CloudFormation answers `''` for both — a KNOWN
|
|
42548
|
-
* empty, recorded as such so a reference does not degrade to the instance id
|
|
42549
|
-
* on every resolution — while the same `''` on a `pending` instance means
|
|
42550
|
-
* "not yet", which that provider maps to `undefined` BEFORE calling this
|
|
42551
|
-
* helper (its `describedInstanceAttributes`). A caller that knows a `''`
|
|
42552
|
-
* means "unknown" is the one that must say so; this helper cannot tell.
|
|
42553
|
-
*
|
|
42554
|
-
* Deliberately NOT a general "compact this record" utility: it is scoped to
|
|
42555
|
-
* attribute maps. A property bag keeps its `undefined`-valued keys out by other
|
|
42556
|
-
* means (`.claude/rules/provider-property-fidelity.md`, "Remove the key rather
|
|
42557
|
-
* than setting it to `undefined`").
|
|
42558
|
-
*
|
|
42559
|
-
* A LEAF module (imports nothing) so every provider can take it without adding
|
|
42560
|
-
* an edge to the provider import ring.
|
|
42561
|
-
*/
|
|
42562
|
-
/**
|
|
42563
|
-
* Build an attribute map from read-back values, omitting every key whose value
|
|
42564
|
-
* is `undefined` or `null`.
|
|
42565
|
-
*/
|
|
42566
|
-
function definedAttributes(entries) {
|
|
42567
|
-
const out = {};
|
|
42568
|
-
for (const [key, value] of Object.entries(entries)) {
|
|
42569
|
-
if (value === void 0 || value === null) continue;
|
|
42570
|
-
out[key] = value;
|
|
42571
|
-
}
|
|
42572
|
-
return out;
|
|
42573
|
-
}
|
|
42574
|
-
/**
|
|
42575
|
-
* `String(value)` for a numeric read-back whose CloudFormation attribute is a
|
|
42576
|
-
* string (`Endpoint.Port`), or `undefined` when the field is unassigned — so
|
|
42577
|
-
* `definedAttributes` drops the key instead of recording the literal
|
|
42578
|
-
* `'undefined'`, which is what `String(described?.Port ?? '')` yields once its
|
|
42579
|
-
* `?? ''` is merely deleted.
|
|
42580
|
-
*/
|
|
42581
|
-
function stringifyIfAssigned(value) {
|
|
42582
|
-
if (value === void 0 || value === null) return void 0;
|
|
42583
|
-
return String(value);
|
|
42584
|
-
}
|
|
42585
|
-
|
|
42586
42610
|
//#endregion
|
|
42587
42611
|
//#region src/provisioning/update-removal.ts
|
|
42588
42612
|
/**
|
|
@@ -52397,5 +52421,5 @@ var DeployEngine = class DeployEngine {
|
|
|
52397
52421
|
};
|
|
52398
52422
|
|
|
52399
52423
|
//#endregion
|
|
52400
|
-
export { yellow as $, MalformedProducerRecordRefusalError as $a, resolveSkipPrefix as $i, refuseMalformedOutputsForDestroy as $n, hasReadableExportSet as $r, readConfigString as $t, createPreDeleteFinalSnapshot as A, ownValue as Aa, describeDockerFailure as Ai, malformedExportSourceWarning as An, identityKeyFor as Ar, disableInstanceApiTermination as At, isStatefulRecreateTargetSync as B, runWithStackAwsClients as Ba, runDockerStreaming as Bi, malformedResourceEntriesWarning as Bn, redactSecretsForState as Br, isUnboundTemplateParameter as Bt, namesAnyDeclaredParameter as C, failedStageNote as Ca, validateAssetBucketName as Ci, displayLogicalId as Cn, safeStringify$1 as Co, STATE_SOURCED_CROSS_GENERATION_RULES as Cr, CloudControlProvider as Ct, PRE_DELETE_SNAPSHOT_TYPES as D, hasOwnKey as Da, resolveDockerContextDirectory as Di, isReadableOrphanRecord as Dn, createSecretMasker as Dr, deleteIndeterminateGuards as Dt, ATOMIC_FINAL_SNAPSHOT_TYPES as E, defineOwnKey as Ea, buildDockerImage as Ei, hasReadableResources as En, carriesSecretMask as Er, UNSPECIFIED_SKIP_REASON as Et, extractDeploymentEventError as F, clearBucketRegionCache as Fa, isDockerClientEnvKey as Fi, malformedOrphansRefusalMessage as Fn, maskSecretsInText as Fr, cfnRefValueFromPhysicalId as Ft, toCfnInteger as G, CrossAccountSecretRefusalError as Ga, getDockerImageBySourceHash as Gi, refuseDivergentRecordRegionForDestroy as Gn, UNREPRODUCIBLE_LOCK_CLAUSE as Gr, normalizeAwsTagsToCfn as Gt, WARM_THROUGHPUT_MEMBERS as H, AssetError as Ha, escapeRegExp$1 as Hi, malformedResourcesWarning as Hn, LockManager as Hr, refStateLookupFromResource as Ht, makeSiblingClaimReader as I, resolveBucketRegion as Ia, isMalformedEnvKey as Ii, malformedOrphansWarning as In, pathCrossesDottedKey as Ir, coerceParameterTypedValue as It, bold as J, DynamicReferenceRegionAmbiguousError as Ja, getDefaultStateBucketName as Ji, refuseMalformedOrphanRecordsForDestroy as Jn, forceQuitRecoveryClause as Jr, coerceCfnBoolean as Jt, toFiniteNumber as K, DependencyError as Ka, Synthesizer as Ki, refuseMalformedNestedChildOutputs as Kn, buildForceUnlockCommand as Kr, resolveExplicitPhysicalId as Kt, planOrphanAdoption as L, AwsClients as La, partitionSensitiveEnv as Li, malformedOutputsRefusalMessage as Ln, recordMaskOnlyValue as Lr, getAccountInfo as Lt, refusesFinalSnapshot as M, displayAssemblyPath as Ma, finchSecretArgvRefusal as Mi, malformedOrphanRecordsRefusalMessage as Mn, isUncertifiedBaselineMaskPosition as Mr, IntrinsicFunctionResolver as Mt, unsupportedFinalSnapshotError as N, renderAssemblyPathEscape as Na, formatDockerLoginError as Ni, malformedOrphanRecordsWarning as Nn, markSameGenerationBag as Nr, carriesDynamicReference as Nt, buildFinalSnapshotIdentifier as O, hasPlainPrototype$1 as Oa, describeDockerCapturedOutput as Oi, isReadableResourceEntry as On, dynamicReferenceTokens as Or, deleteSkipReason as Ot, makeCanonicalizePropertiesFn as P, resolveAssemblyPath as Pa, getDockerCmd as Pi, malformedOrphanRowsKeptWarning as Pn, maskSecretsInError as Pr, carriesFetchableDynamicReference as Pt, red as Q, LockError as Qa, resolveCaptureObservedState as Qi, refuseMalformedOutputs as Qn, exportNamesCarriedFrom as Qr, configStringRefusal as Qt, MULTI_REGION_RECREATE_BLOCKED_TYPES as R, getAwsClients as Ra, redactDockerArgvValues as Ri, malformedOutputsWarning as Rn, recordMaskOnlyValuesIn as Rr, isImpossibleEmptyStoredAttribute as Rt, computeParameterTaint as S, AssemblyReader as Sa, readBootstrapMarkerBody as Si, deployRefusesOrphanRowsReason as Sn, describeAwsFailure as So, STATE_SOURCED_BASELINE_RULES as Sr, startInterruptWatch as St, resourcesNamingDeclaredParameter as T, processStackMessages as Ta, buildDenyExternalAccessPolicy as Ti, hasReadableOutputs as Tn, TEMPLATE_SOURCED_RULES as Tr, ccProtectionRegistryTypes as Tt, coerceWarmThroughput as U, CdkdError as Ua, stripControlChars as Ui, malformedStateRefusalMessage as Un, S3StateBackend as Ur, isSettledInstanceState as Ut, renderStatefulReason as V, setAwsClients as Va, warnFinchArgvExposure as Vi, malformedResourcePropertiesWarning as Vn, scrubResourceRecord as Vr, parameterTypeMayLoseSecretIdentity as Vt, isWarmThroughputDecrease as W, ConfigError as Wa, AssetManifestLoader as Wi, previewableOrphanRecords as Wn, rebuildClientForBucketRegion as Wr, WAFv2WebACLProvider as Wt, gray as X, LocalInvokeBuildError as Xa, resolveApp as Xi, refuseMalformedOrphansForDestroy as Xn, CUSTOM_RESOURCE_RESPONSE_PREFIX as Xr, configBooleanRefusal as Xt, cyan as Y, IntrinsicResolutionRefusalError as Ya, getLegacyStateBucketName as Yi, refuseMalformedOrphans as Yn, formatLockExpiry as Yr, coerceCfnInteger as Yt, green as Z, LocalStartServiceError as Za, resolveAutoAssetStorage as Zi, refuseMalformedOrphansForOrphan as Zn, DEFAULT_STATE_PREFIX as Zr, configIntegerRefusal as Zt, bagHoldsSecretExpression as _, expectedOwnerParam as _a, assertAssetBucketRegion as _i, DiffCalculator as _n, isThrottlingError as _o, findSilentDropProperties as _r, maskerOrIdentity as _t, DeploymentEventsStore as a, ssmResolvedValueType as aa, orphansAfterRollback as ai, producerRegionsFromState as an, StackHasActiveImportsError as ao, refuseMalformedState as ar, secretBearingStateKeyWarning as at, mergeNoChangeOutputs as b, derivePartitionAndUrlSuffix as ba, isCrossRegionRedirect as bi, UNREADABLE_ORPHANS_CONTAINER_ROW as bn, markRedactedCause as bo, DagBuilder as br, interruptWatchListenerCount as bt, replayFailedOperations as c, MIGRATE_TMP_PREFIX as ca, AssetPublisher as ci, s3BucketDomainName as cn, SynthesisError as co, repairMalformedOutputsForReadOnly as cr, IAMRoleProvider as ct, updatePartialMessage as d, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as da, buildAssetRedirectMap as di, s3BucketWebsiteUrl as dn, normalizeAwsError as do, repairMalformedResourcesForReadOnly as dr, definedAttributes as dt, resolveStateBucketWithDefault as ea, hasReasonlessBaselineRefusal as ei, replayWarn as en, NestedStackChildDirectDestroyError as eo, refuseMalformedResourceAttributesForOrphan as er, collectDeclaredOutputNames as et, updatePartialReason as f, injectiveKey as fa, createAssetRedirectResolver as fi, applyRoleArnIfSet as fn, withErrorHandling as fo, safeRegion as fr, stringifyIfAssigned as ft, computeImplicitDeleteEdges as g, decodeListingKey as ga, BOOTSTRAP_MARKER_PREFIX as gi, envCredentialsAreAssumedRole as gn, isRetryableTransientError as go, findActionableSilentDrops as gr, maskDeep as gt, IMPLICIT_DELETE_DEPENDENCIES as h, producerRecordKey as ha, AssetModeResolver as hi, callerEnvCredentials as hn, isMarkedNonRetryable as ho, unreadableOrphanRecords as hr, createMaskedRetryLogger as ht, DeploymentEventsReader as i, warnDeprecatedNoPrefixCliFlag as ia, isReadableBag as ii, classifyReplaySecretRegion as in, ResourceUpdateNotSupportedError as io, refuseMalformedResourcesForDestroy as ir, secretBearing as it, isFinalSnapshotError as j, absoluteAssemblyPathEscape as ja, dockerSpawnEnvWithSensitive as ji, malformedLocalOutputsWarning as jn, isSingleDynamicReferenceToken as jr, isTerminationProtectionPropagationError as jt, ccRoutedFinalSnapshotError as k, nullPrototypeRecord as ka, describeDockerExecFailure as ki, malformedExportNamesWarning as kn, errorCauseChain as kr, isWaitAbandonedError as kt, replayRollback as l, findLargeInlineResources as la, stringifyValue as li, s3BucketDualStackDomainName as ln, formatError as lo, repairMalformedResourceEntriesForReadOnly as lr, collectInlinePolicyNamesManagedBySiblings as lt, maskingRetryLogger as m, producerCoordinateKey as ma, rewriteTemplateAssetReferences as mi, applyCallerIdentityCredentials as mn, shellQuote as mo, unpreviewableOrphanRecords as mr, wouldReturnToSdkProvider as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, resolveUseCdkBootstrapAssets as na, importableOutputKeys as ni, requireConfigObject as nn, ProvisioningError as no, refuseMalformedResourceEntriesForOrphan as nr, exportAliasCollisionScrubWarning as nt, planFailedOps as o, CFN_TEMPLATE_BODY_LIMIT as oa, orphansCarriedFrom as oi, withSharedDrainBudget as on, StackTerminationProtectionError as oo, repairMalformedOrphanRecordsForReadOnly as or, secretSafeKeyDisplay as ot, withResourceDeadline as p, injectiveKeyPrefix as pa, loadPublishableAssetManifest as pi, AWS_CREDENTIAL_ENV_KEYS as pn, pasteableCommand as po, safeStackName as pr, ProviderRegistry as pt, formatResourceLine as q, DeployCancelledError as qa, synthesisStatusMessage as qi, refuseMalformedOrphanRecords as qn, buildLockContentionMessage as qr, assertRegionMatch as qt, DeployEngine as r, stateBucketExistenceConfirmed as ra, importableOutputs as ri, requireConfigString as rn, ResourceTimeoutError as ro, refuseMalformedResourcePropertiesForOrphan as rr, isExportAliasCollision as rt, planRollback as s, CFN_TEMPLATE_URL_LIMIT as sa, shouldRetainResource as si, s3BucketArn as sn, StateError as so, repairMalformedOrphansForReadOnly as sr, getCurrentResourceSecrets as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, resolveStateBucketWithDefaultAndSource as ta, hasUnverifiableParameterRefusal as ti, requireConfigArray as tn, PartialFailureError as to, refuseMalformedResourceEntries as tr, collectPublishedOutputNames as tt, resolveReplacementOldType as u, uploadCfnTemplate as ua, WorkGraph as ui, s3BucketRegionalDomainName as un, isCdkdError as uo, repairMalformedResourcePropertiesForReadOnly as ur, clearOnUpdateRemoval as ut, isSecretBearingReferenceString as v, PARTITION_TABLE as va, ensureAssetStorage as vi, INTRINSIC_KEYS as vn, isTransientServerError as vo, describeTypeWithThrottleRetry as vr, beginCommandInterruptScope as vt, reachableDivergentParameters as w, globMatches as wa, validateContainerRepoName as wi, hasReadableOrphans as wn, __exportAll as wo, STATE_SOURCED_READBACK_RULES as wr, slowCcOperationTimeoutMs as wt, bindingSkippedOutputs as x, ambientClientDefaults as xa, parseBootstrapMarker as xi, UNREADABLE_RESOURCES_MAP_ROW as xn, retryClassificationText as xo, TemplateParser as xr, isInterruptedWaitError as xt, keptWholeReasonText as y, canonicalizeRegion as ya, getBootstrapMarkerKey as yi, STATE_RESOURCES_MALFORMED as yn, markNonRetryable as yo, withRetry as yr, endCommandInterruptScope as yt, isStatefulRecreateTargetForReplace as z, resetAwsClients as za, runDockerForeground as zi, malformedRenderedContainersWarning as zn, recoverMaskedOutput as zr, isNamelessDynamicReferenceError as zt };
|
|
52401
|
-
//# sourceMappingURL=deploy-engine-
|
|
52424
|
+
export { yellow as $, MalformedProducerRecordRefusalError as $a, resolveSkipPrefix as $i, refuseMalformedOutputsForDestroy as $n, hasReadableExportSet as $r, requireConfigArray as $t, createPreDeleteFinalSnapshot as A, ownValue as Aa, describeDockerFailure as Ai, malformedExportSourceWarning as An, identityKeyFor as Ar, IntrinsicFunctionResolver as At, isStatefulRecreateTargetSync as B, runWithStackAwsClients as Ba, runDockerStreaming as Bi, malformedResourceEntriesWarning as Bn, redactSecretsForState as Br, refStateLookupFromResource as Bt, namesAnyDeclaredParameter as C, failedStageNote as Ca, validateAssetBucketName as Ci, displayLogicalId as Cn, safeStringify$1 as Co, STATE_SOURCED_CROSS_GENERATION_RULES as Cr, ccProtectionRegistryTypes as Ct, PRE_DELETE_SNAPSHOT_TYPES as D, hasOwnKey as Da, resolveDockerContextDirectory as Di, isReadableOrphanRecord as Dn, createSecretMasker as Dr, isWaitAbandonedError as Dt, ATOMIC_FINAL_SNAPSHOT_TYPES as E, defineOwnKey as Ea, buildDockerImage as Ei, hasReadableResources as En, carriesSecretMask as Er, deleteSkipReason as Et, extractDeploymentEventError as F, clearBucketRegionCache as Fa, isDockerClientEnvKey as Fi, malformedOrphansRefusalMessage as Fn, maskSecretsInText as Fr, getAccountInfo as Ft, toCfnInteger as G, CrossAccountSecretRefusalError as Ga, getDockerImageBySourceHash as Gi, refuseDivergentRecordRegionForDestroy as Gn, UNREPRODUCIBLE_LOCK_CLAUSE as Gr, assertRegionMatch as Gt, WARM_THROUGHPUT_MEMBERS as H, AssetError as Ha, escapeRegExp$1 as Hi, malformedResourcesWarning as Hn, LockManager as Hr, WAFv2WebACLProvider as Ht, makeSiblingClaimReader as I, resolveBucketRegion as Ia, isMalformedEnvKey as Ii, malformedOrphansWarning as In, pathCrossesDottedKey as Ir, isImpossibleEmptyStoredAttribute as It, bold as J, DynamicReferenceRegionAmbiguousError as Ja, getDefaultStateBucketName as Ji, refuseMalformedOrphanRecordsForDestroy as Jn, forceQuitRecoveryClause as Jr, configBooleanRefusal as Jt, toFiniteNumber as K, DependencyError as Ka, Synthesizer as Ki, refuseMalformedNestedChildOutputs as Kn, buildForceUnlockCommand as Kr, coerceCfnBoolean as Kt, planOrphanAdoption as L, AwsClients as La, partitionSensitiveEnv as Li, malformedOutputsRefusalMessage as Ln, recordMaskOnlyValue as Lr, isNamelessDynamicReferenceError as Lt, refusesFinalSnapshot as M, displayAssemblyPath as Ma, finchSecretArgvRefusal as Mi, malformedOrphanRecordsRefusalMessage as Mn, isUncertifiedBaselineMaskPosition as Mr, carriesFetchableDynamicReference as Mt, unsupportedFinalSnapshotError as N, renderAssemblyPathEscape as Na, formatDockerLoginError as Ni, malformedOrphanRecordsWarning as Nn, markSameGenerationBag as Nr, cfnRefValueFromPhysicalId as Nt, buildFinalSnapshotIdentifier as O, hasPlainPrototype$1 as Oa, describeDockerCapturedOutput as Oi, isReadableResourceEntry as On, dynamicReferenceTokens as Or, disableInstanceApiTermination as Ot, makeCanonicalizePropertiesFn as P, resolveAssemblyPath as Pa, getDockerCmd as Pi, malformedOrphanRowsKeptWarning as Pn, maskSecretsInError as Pr, coerceParameterTypedValue as Pt, red as Q, LockError as Qa, resolveCaptureObservedState as Qi, refuseMalformedOutputs as Qn, exportNamesCarriedFrom as Qr, replayWarn as Qt, MULTI_REGION_RECREATE_BLOCKED_TYPES as R, getAwsClients as Ra, redactDockerArgvValues as Ri, malformedOutputsWarning as Rn, recordMaskOnlyValuesIn as Rr, isUnboundTemplateParameter as Rt, computeParameterTaint as S, AssemblyReader as Sa, readBootstrapMarkerBody as Si, deployRefusesOrphanRowsReason as Sn, describeAwsFailure as So, STATE_SOURCED_BASELINE_RULES as Sr, slowCcOperationTimeoutMs as St, resourcesNamingDeclaredParameter as T, processStackMessages as Ta, buildDenyExternalAccessPolicy as Ti, hasReadableOutputs as Tn, TEMPLATE_SOURCED_RULES as Tr, deleteIndeterminateGuards as Tt, coerceWarmThroughput as U, CdkdError as Ua, stripControlChars as Ui, malformedStateRefusalMessage as Un, S3StateBackend as Ur, normalizeAwsTagsToCfn as Ut, renderStatefulReason as V, setAwsClients as Va, warnFinchArgvExposure as Vi, malformedResourcePropertiesWarning as Vn, scrubResourceRecord as Vr, isSettledInstanceState as Vt, isWarmThroughputDecrease as W, ConfigError as Wa, AssetManifestLoader as Wi, previewableOrphanRecords as Wn, rebuildClientForBucketRegion as Wr, resolveExplicitPhysicalId as Wt, gray as X, LocalInvokeBuildError as Xa, resolveApp as Xi, refuseMalformedOrphansForDestroy as Xn, CUSTOM_RESOURCE_RESPONSE_PREFIX as Xr, configStringRefusal as Xt, cyan as Y, IntrinsicResolutionRefusalError as Ya, getLegacyStateBucketName as Yi, refuseMalformedOrphans as Yn, formatLockExpiry as Yr, configIntegerRefusal as Yt, green as Z, LocalStartServiceError as Za, resolveAutoAssetStorage as Zi, refuseMalformedOrphansForOrphan as Zn, DEFAULT_STATE_PREFIX as Zr, readConfigString as Zt, bagHoldsSecretExpression as _, expectedOwnerParam as _a, assertAssetBucketRegion as _i, DiffCalculator as _n, isThrottlingError as _o, findSilentDropProperties as _r, endCommandInterruptScope as _t, DeploymentEventsStore as a, ssmResolvedValueType as aa, orphansAfterRollback as ai, producerRegionsFromState as an, StackHasActiveImportsError as ao, refuseMalformedState as ar, secretBearingStateKeyWarning as at, mergeNoChangeOutputs as b, derivePartitionAndUrlSuffix as ba, isCrossRegionRedirect as bi, UNREADABLE_ORPHANS_CONTAINER_ROW as bn, markRedactedCause as bo, DagBuilder as br, startInterruptWatch as bt, replayFailedOperations as c, MIGRATE_TMP_PREFIX as ca, AssetPublisher as ci, s3BucketDomainName as cn, SynthesisError as co, repairMalformedOutputsForReadOnly as cr, IAMRoleProvider as ct, updatePartialMessage as d, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as da, buildAssetRedirectMap as di, s3BucketWebsiteUrl as dn, normalizeAwsError as do, repairMalformedResourcesForReadOnly as dr, ProviderRegistry as dt, resolveStateBucketWithDefault as ea, hasReasonlessBaselineRefusal as ei, requireConfigObject as en, NestedStackChildDirectDestroyError as eo, refuseMalformedResourceAttributesForOrphan as er, collectDeclaredOutputNames as et, updatePartialReason as f, injectiveKey as fa, createAssetRedirectResolver as fi, applyRoleArnIfSet as fn, withErrorHandling as fo, safeRegion as fr, wouldReturnToSdkProvider as ft, computeImplicitDeleteEdges as g, decodeListingKey as ga, BOOTSTRAP_MARKER_PREFIX as gi, envCredentialsAreAssumedRole as gn, isRetryableTransientError as go, findActionableSilentDrops as gr, beginCommandInterruptScope as gt, IMPLICIT_DELETE_DEPENDENCIES as h, producerRecordKey as ha, AssetModeResolver as hi, callerEnvCredentials as hn, isMarkedNonRetryable as ho, unreadableOrphanRecords as hr, maskerOrIdentity as ht, DeploymentEventsReader as i, warnDeprecatedNoPrefixCliFlag as ia, isReadableBag as ii, classifyReplaySecretRegion as in, ResourceUpdateNotSupportedError as io, refuseMalformedResourcesForDestroy as ir, secretBearing as it, isFinalSnapshotError as j, absoluteAssemblyPathEscape as ja, dockerSpawnEnvWithSensitive as ji, malformedLocalOutputsWarning as jn, isSingleDynamicReferenceToken as jr, carriesDynamicReference as jt, ccRoutedFinalSnapshotError as k, nullPrototypeRecord as ka, describeDockerExecFailure as ki, malformedExportNamesWarning as kn, errorCauseChain as kr, isTerminationProtectionPropagationError as kt, replayRollback as l, findLargeInlineResources as la, stringifyValue as li, s3BucketDualStackDomainName as ln, formatError as lo, repairMalformedResourceEntriesForReadOnly as lr, collectInlinePolicyNamesManagedBySiblings as lt, maskingRetryLogger as m, producerCoordinateKey as ma, rewriteTemplateAssetReferences as mi, applyCallerIdentityCredentials as mn, shellQuote as mo, unpreviewableOrphanRecords as mr, maskDeep as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, resolveUseCdkBootstrapAssets as na, importableOutputKeys as ni, definedAttributes as nn, ProvisioningError as no, refuseMalformedResourceEntriesForOrphan as nr, exportAliasCollisionScrubWarning as nt, planFailedOps as o, CFN_TEMPLATE_BODY_LIMIT as oa, orphansCarriedFrom as oi, withSharedDrainBudget as on, StackTerminationProtectionError as oo, repairMalformedOrphanRecordsForReadOnly as or, secretSafeKeyDisplay as ot, withResourceDeadline as p, injectiveKeyPrefix as pa, loadPublishableAssetManifest as pi, AWS_CREDENTIAL_ENV_KEYS as pn, pasteableCommand as po, safeStackName as pr, createMaskedRetryLogger as pt, formatResourceLine as q, DeployCancelledError as qa, synthesisStatusMessage as qi, refuseMalformedOrphanRecords as qn, buildLockContentionMessage as qr, coerceCfnInteger as qt, DeployEngine as r, stateBucketExistenceConfirmed as ra, importableOutputs as ri, stringifyIfAssigned as rn, ResourceTimeoutError as ro, refuseMalformedResourcePropertiesForOrphan as rr, isExportAliasCollision as rt, planRollback as s, CFN_TEMPLATE_URL_LIMIT as sa, shouldRetainResource as si, s3BucketArn as sn, StateError as so, repairMalformedOrphansForReadOnly as sr, getCurrentResourceSecrets as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, resolveStateBucketWithDefaultAndSource as ta, hasUnverifiableParameterRefusal as ti, requireConfigString as tn, PartialFailureError as to, refuseMalformedResourceEntries as tr, collectPublishedOutputNames as tt, resolveReplacementOldType as u, uploadCfnTemplate as ua, WorkGraph as ui, s3BucketRegionalDomainName as un, isCdkdError as uo, repairMalformedResourcePropertiesForReadOnly as ur, clearOnUpdateRemoval as ut, isSecretBearingReferenceString as v, PARTITION_TABLE as va, ensureAssetStorage as vi, INTRINSIC_KEYS as vn, isTransientServerError as vo, describeTypeWithThrottleRetry as vr, interruptWatchListenerCount as vt, reachableDivergentParameters as w, globMatches as wa, validateContainerRepoName as wi, hasReadableOrphans as wn, __exportAll as wo, STATE_SOURCED_READBACK_RULES as wr, UNSPECIFIED_SKIP_REASON as wt, bindingSkippedOutputs as x, ambientClientDefaults as xa, parseBootstrapMarker as xi, UNREADABLE_RESOURCES_MAP_ROW as xn, retryClassificationText as xo, TemplateParser as xr, CloudControlProvider as xt, keptWholeReasonText as y, canonicalizeRegion as ya, getBootstrapMarkerKey as yi, STATE_RESOURCES_MALFORMED as yn, markNonRetryable as yo, withRetry as yr, isInterruptedWaitError as yt, isStatefulRecreateTargetForReplace as z, resetAwsClients as za, runDockerForeground as zi, malformedRenderedContainersWarning as zn, recoverMaskedOutput as zr, parameterTypeMayLoseSecretIdentity as zt };
|
|
52425
|
+
//# sourceMappingURL=deploy-engine-BAOtjfHX.js.map
|