@go-to-k/cdkd 0.315.0 → 0.317.0
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-DpNkEibf.js → asg-provider-WornuySB.js} +6 -7
- package/dist/{asg-provider-DpNkEibf.js.map → asg-provider-WornuySB.js.map} +1 -1
- package/dist/{aws-client-defaults-BX9Y_fKp.js → aws-client-defaults-BLXFsfMa.js} +6 -11
- package/dist/aws-client-defaults-BLXFsfMa.js.map +1 -0
- package/dist/{aws-clients-Bu9EMILF.js → aws-clients-DWpHZk2l.js} +6 -8
- package/dist/aws-clients-DWpHZk2l.js.map +1 -0
- package/dist/{aws-failure-text-agWtoyga.js → aws-failure-text-DiHodi76.js} +8 -15
- package/dist/aws-failure-text-DiHodi76.js.map +1 -0
- package/dist/cli.js +6 -10
- package/dist/cli.js.map +1 -1
- package/dist/{created-resource-sink-QECX8C-Z.js → created-resource-sink-BpB3iPvn.js} +43 -67
- package/dist/created-resource-sink-BpB3iPvn.js.map +1 -0
- package/dist/{db-instance-modify-retry-B1NRKBSQ.js → db-instance-modify-retry-CspmK57I.js} +4 -5
- package/dist/{db-instance-modify-retry-B1NRKBSQ.js.map → db-instance-modify-retry-CspmK57I.js.map} +1 -1
- package/dist/{deploy-engine--bCIMkkk.js → deploy-engine-b0rYBotL.js} +423 -633
- package/dist/deploy-engine-b0rYBotL.js.map +1 -0
- package/dist/{iam-role-provider-s5--ZmBZ.js → iam-role-provider-gTpDZhfz.js} +47 -17
- package/dist/iam-role-provider-gTpDZhfz.js.map +1 -0
- package/dist/index.d.ts +1 -102
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -5
- package/dist/{neptune-provider-BNxotnbp.js → neptune-provider-BfzktOKC.js} +8 -9
- package/dist/{neptune-provider-BNxotnbp.js.map → neptune-provider-BfzktOKC.js.map} +1 -1
- package/dist/{program-CMtAmRyw.js → program-BZ-VVfXu.js} +118 -228
- package/dist/program-BZ-VVfXu.js.map +1 -0
- package/dist/{provider-classes-B8kkAZqJ.js → provider-classes-DGFOKPO9.js} +538 -227
- package/dist/provider-classes-DGFOKPO9.js.map +1 -0
- package/dist/{rds-provider-Cm3dsmFW.js → rds-provider-BUNLNluC.js} +90 -20
- package/dist/rds-provider-BUNLNluC.js.map +1 -0
- package/dist/{version-Caty7J3x.js → version-BkSInxUL.js} +3 -4
- package/dist/{version-Caty7J3x.js.map → version-BkSInxUL.js.map} +1 -1
- package/package.json +8 -8
- package/dist/aws-client-defaults-BX9Y_fKp.js.map +0 -1
- package/dist/aws-clients-Bu9EMILF.js.map +0 -1
- package/dist/aws-failure-text-agWtoyga.js.map +0 -1
- package/dist/created-resource-sink-QECX8C-Z.js.map +0 -1
- package/dist/deploy-engine--bCIMkkk.js.map +0 -1
- package/dist/iam-role-provider-s5--ZmBZ.js.map +0 -1
- package/dist/program-CMtAmRyw.js.map +0 -1
- package/dist/provider-classes-B8kkAZqJ.js.map +0 -1
- package/dist/rds-provider-Cm3dsmFW.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { c as __exportAll, r as getAwsClients } from "./aws-clients-
|
|
2
|
-
import { $ as safeMsg, B as SAFE_MSG_ALTERED_CHAR, C as fallbackNamePropertyFor, D as getCurrentSkipPrefix, E as generatedNameFor, F as withNameGeneration, H as STACK_REF_MAX_CODE_POINTS, I as withSkipPrefix, J as displaySafe, K as displayAwsMessage, L as withStackScope, M as looksLikeCdkdGeneratedName, O as getCurrentStackInstanceId, P as stackInstanceNameSuffix, Q as plainIdentOr, R as withStackScopeBeforeStateRead, S as explicitNamePropertyFor, T as generateResourceNameWithFallback, U as UNRENDERABLE, V as SECRET_REF_MAX_CODE_POINTS, W as asIsMessage, X as isPasteableIdent, Y as displayStackName, a as safeStringify$1, b as currentNameGeneration, c as isStdoutReservedForPayload, f as currentLogLineMasker, j as isNameGeneration, k as getCurrentStackName, m as getLiveRenderer, n as describeAwsFailure, nt as truncateCodePoints, p as installLogLineMaskerSource, q as displayIdent, s as getLogger, t as VERBOSE_POINTER, tt as terminalSafe, v as alternateNamePropertiesFor, y as applyDefaultNameForFallback, z as withoutGeneratedFallbackName } from "./aws-failure-text-
|
|
3
|
-
import { $n as
|
|
4
|
-
import { a as setAssumedRoleCredentials, c as ambientRegion, i as getPreAssumeEnvCredentials, n as awsClientDefaults, o as setPreAssumeEnvCredentials, r as getAssumedRoleCredentials, s as quietS3Logger, t as SECOND_ROLE_PUBLISH_REFUSAL } from "./aws-client-defaults-
|
|
5
|
-
import { t as getCdkdVersion } from "./version-
|
|
1
|
+
import { c as __exportAll, r as getAwsClients } from "./aws-clients-DWpHZk2l.js";
|
|
2
|
+
import { $ as safeMsg, B as SAFE_MSG_ALTERED_CHAR, C as fallbackNamePropertyFor, D as getCurrentSkipPrefix, E as generatedNameFor, F as withNameGeneration, H as STACK_REF_MAX_CODE_POINTS, I as withSkipPrefix, J as displaySafe, K as displayAwsMessage, L as withStackScope, M as looksLikeCdkdGeneratedName, O as getCurrentStackInstanceId, P as stackInstanceNameSuffix, Q as plainIdentOr, R as withStackScopeBeforeStateRead, S as explicitNamePropertyFor, T as generateResourceNameWithFallback, U as UNRENDERABLE, V as SECRET_REF_MAX_CODE_POINTS, W as asIsMessage, X as isPasteableIdent, Y as displayStackName, a as safeStringify$1, b as currentNameGeneration, c as isStdoutReservedForPayload, f as currentLogLineMasker, j as isNameGeneration, k as getCurrentStackName, m as getLiveRenderer, n as describeAwsFailure, nt as truncateCodePoints, p as installLogLineMaskerSource, q as displayIdent, s as getLogger, t as VERBOSE_POINTER, tt as terminalSafe, v as alternateNamePropertiesFor, y as applyDefaultNameForFallback, z as withoutGeneratedFallbackName } from "./aws-failure-text-DiHodi76.js";
|
|
3
|
+
import { $ as isTerminalDeleteFailure, $n as physicalIdShownBesideCommand, $t as formatLockExpiry, An as MalformedProducerRecordRefusalError, Ar as isThrottlingError, At as stateOrphanRecordRemedy, B as normalizeAwsTagsToCfn, Bt as createdBeforeFailure, Cn as DeploymentNotApprovedError, Dr as retryClassificationText, Er as isTransientServerError, Et as logicalIdShown, F as assertRegionMatch, Fn as ResourceUpdateNotSupportedError, Ft as maskerOrIdentity, Gt as markAuxiliaryFailure, H as refusalTypeShown, Hn as isSoftAbort, Ht as hasCreatedBeforeFailure, It as withDerivedNameMasks, Jn as UNSHOWABLE_VALUE, Jt as replayMadeAnotherResource, K as ProtectionFlipRegistry, Kn as SHELL_ACTIVE, Kt as markCreatedBeforeFailure, Lt as RETRY_AUXILIARY_OWNER, M as RESOURCE_NOT_FOUND, Mr as markRedactedCause, Mt as createMaskedRetryLogger, N as isMarkedNotGone, Nn as ProvisioningError, Nr as wrapMaskedAwsError, Nt as isSecretDerivedValue, On as LockError, Ot as resourceTypeShown, P as markNotGone, Pn as ResourceTimeoutError, Pt as maskDeep, Qn as pasteableCommand, Rn as StateError, Rt as carryCreatedBeforeFailure, Sr as isAmbiguousOutcomeError, St as canonicalizeRoute53QueryName, Tn as IntrinsicResolutionRefusalError, Tr as isRetryableTransientError, Un as normalizeAwsError, Ut as isAuxiliaryFailure, V as quotedRemedyLogicalId, Vt as createdResourceIdentityBeforeFailure, W as resolveExplicitPhysicalId, Wt as isAuxiliaryMarkOf, Xt as buildForceUnlockCommand, Y as deleteWithProtectionCompensation, Yn as commandHole, Yt as UNREPRODUCIBLE_LOCK_CLAUSE, Zn as isInertUnquoted, _ as prepareRemovalForUpdate, _n as AssetError, _r as stripControlChars, an as DEFAULT_STATE_PREFIX, bn as CrossAccountSecretRefusalError, br as formatRetryClassificationSignals, bt as isInterruptedWaitError, cr as hasReplayMayCollide, dn as withPasteableAwsProfile, dr as isRecreateRetryableError, dt as pasteableAwsCommand, en as formatLockOperation, er as plainOrDescribed, fn as ambientClientDefaults, fr as isReplayedNameCollisionFrom, ft as protectedReplacementAdvice, gn as AccountIdUnavailableError, gr as escapeRegExp$3, gt as monotonicNowMs, h as withUnchangedSecretPrincipalLists, hn as credentialFingerprint, hr as relayedNameCollision, ht as ElapsedBudgetRegistry, i as reportCreatedResource, in as CUSTOM_RESOURCE_RESPONSE_PREFIX, ir as withheldTargetClause, it as runDeleteAttempt, j as withoutServerErrorRetries, jr as markNonRetryable, jt as createMaskedLogSinks, kn as MacroExpansionError, kr as isMarkedNonRetryable, kt as segmentAfterAnchor, ln as producerRecordKey, lr as isNameCollisionErrorFrom, mn as clientDefaultsFor, mr as markReplayMayCollide, mt as ElapsedBudget, n as clearCreatedReport, nn as recoveryCommandFlags, nr as shellBoundedDisplay, nt as protectionFlipKey, o as retractCreatedResource, on as injectiveKey, pn as ambientCredentialConfig, q as compensateProtectionFlip, qn as SHELL_ACTIVE_WHY, r as collectCreatedResources, rn as sanitizeRecoveryValue, rr as shellQuote, sr as isUpdateUnsupportedError, st as DELETION_PROTECTION_DOC_POINTER, t as CreatedResourceSink, tn as formatLockOwner, tr as quotedOrDescribed, tt as observeThenDisableProtection, u as holdsSecretDerivedEntry, ur as isNameCooldownError, v as removalWarning, vn as CdkdError, wn as DynamicReferenceRegionAmbiguousError, wr as isIamPropagationError, wt as compositeIdSeparatorRefusal, x as withoutInjectedRemovals, xn as DependencyError, xr as isAmbiguousCcHandlerErrorCode, xt as startInterruptWatch, z as isQuotableImportValue, zn as SynthesisError } from "./created-resource-sink-BpB3iPvn.js";
|
|
4
|
+
import { a as setAssumedRoleCredentials, c as ambientRegion, i as getPreAssumeEnvCredentials, n as awsClientDefaults, o as setPreAssumeEnvCredentials, r as getAssumedRoleCredentials, s as quietS3Logger, t as SECOND_ROLE_PUBLISH_REFUSAL } from "./aws-client-defaults-BLXFsfMa.js";
|
|
5
|
+
import { t as getCdkdVersion } from "./version-BkSInxUL.js";
|
|
6
6
|
import { createHash, randomUUID } from "node:crypto";
|
|
7
7
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
8
8
|
import { CreateBucketCommand, DeleteObjectCommand, DeleteObjectsCommand, GetBucketLifecycleConfigurationCommand, GetBucketLocationCommand, GetBucketReplicationCommand, GetObjectCommand, HeadBucketCommand, HeadObjectCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchKey, PutBucketEncryptionCommand, PutBucketLifecycleConfigurationCommand, PutBucketPolicyCommand, PutObjectCommand, PutPublicAccessBlockCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
|
|
@@ -40,7 +40,7 @@ import { DescribeDomainCommand, OpenSearchClient } from "@aws-sdk/client-opensea
|
|
|
40
40
|
import { getSignedUrl } from "@aws-sdk/s3-request-presigner";
|
|
41
41
|
import { ApplicationAutoScalingClient, DeleteScalingPolicyCommand, DeregisterScalableTargetCommand, DescribeScalableTargetsCommand, DescribeScalingPoliciesCommand, PutScalingPolicyCommand, RegisterScalableTargetCommand } from "@aws-sdk/client-application-auto-scaling";
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
// src/utils/aws-region-resolver.ts
|
|
44
44
|
const cache = /* @__PURE__ */ new Map();
|
|
45
45
|
async function readClientRegion(client) {
|
|
46
46
|
try {
|
|
@@ -106,8 +106,7 @@ async function resolveCrossAccountStateBucket(accountId, credentials) {
|
|
|
106
106
|
};
|
|
107
107
|
}
|
|
108
108
|
|
|
109
|
-
|
|
110
|
-
//#region src/utils/injected-aws-region.ts
|
|
109
|
+
// src/utils/injected-aws-region.ts
|
|
111
110
|
let injected;
|
|
112
111
|
function injectAwsRegion(region) {
|
|
113
112
|
injected ??= {
|
|
@@ -132,8 +131,7 @@ function injectedAwsRegionOverride() {
|
|
|
132
131
|
return { AWS_REGION: injected.original };
|
|
133
132
|
}
|
|
134
133
|
|
|
135
|
-
|
|
136
|
-
//#region src/synthesis/app-executor.ts
|
|
134
|
+
// src/synthesis/app-executor.ts
|
|
137
135
|
const CDK_ASM_VERSION = "38.0.0";
|
|
138
136
|
const CONTEXT_OVERFLOW_LIMIT = 32768;
|
|
139
137
|
function stripSurroundingQuotes(token) {
|
|
@@ -228,8 +226,7 @@ var AppExecutor = class {
|
|
|
228
226
|
}
|
|
229
227
|
};
|
|
230
228
|
|
|
231
|
-
|
|
232
|
-
//#region src/types/assembly.ts
|
|
229
|
+
// src/types/assembly.ts
|
|
233
230
|
const ASSEMBLY_REGION_PREFIX = /^[a-z0-9-]+/;
|
|
234
231
|
const CDK_ENVIRONMENT_PATTERN = /aws:\/\/([a-zA-Z0-9@._-]+)\/([a-z0-9-]+)/;
|
|
235
232
|
const CANONICAL_ASSEMBLY_REGION = /^[a-z0-9-]+$/;
|
|
@@ -262,8 +259,7 @@ function unparsableRegionMessage(region, stackName) {
|
|
|
262
259
|
return `${head}\nIf an earlier cdkd version deployed this stack from such an assembly, it recorded the stack's state under that raw region spelling, and a deploy using the canonical spelling will not find that state: it starts the stack from no state at all. 'cdkd state show' and 'cdkd state orphan' still reach that record when '--stack-region' is given the exact raw spelling; 'state orphan' removes the record and leaves its AWS resources in place, unmanaged by cdkd.`;
|
|
263
260
|
}
|
|
264
261
|
|
|
265
|
-
|
|
266
|
-
//#region src/utils/assembly-path.ts
|
|
262
|
+
// src/utils/assembly-path.ts
|
|
267
263
|
function isInside(base, candidate) {
|
|
268
264
|
const rel = path.relative(base, candidate);
|
|
269
265
|
if (rel === "" || rel === "..") return false;
|
|
@@ -408,8 +404,7 @@ function renderAssemblyPathEscape(escape, dir, action = "load", provenanceOverri
|
|
|
408
404
|
return `resolves to ${shownPath}, outside ${shownBase}. ${provenance}`;
|
|
409
405
|
}
|
|
410
406
|
|
|
411
|
-
|
|
412
|
-
//#region src/utils/own-keys.ts
|
|
407
|
+
// src/utils/own-keys.ts
|
|
413
408
|
function hasOwnKey(target, key) {
|
|
414
409
|
return Object.prototype.hasOwnProperty.call(target, key);
|
|
415
410
|
}
|
|
@@ -432,8 +427,7 @@ function nullPrototypeRecord() {
|
|
|
432
427
|
return Object.create(null);
|
|
433
428
|
}
|
|
434
429
|
|
|
435
|
-
|
|
436
|
-
//#region src/utils/json-parse-failure.ts
|
|
430
|
+
// src/utils/json-parse-failure.ts
|
|
437
431
|
function describeJsonParseFailure(err, bytes) {
|
|
438
432
|
const raw = describeAwsFailure(err).detail;
|
|
439
433
|
const at = / (?:in|after) JSON at position (\d+)(?: \(line \d+ column \d+\))?$/.exec(raw);
|
|
@@ -457,8 +451,7 @@ function parseJsonNamingNoBody(body, subject, debug) {
|
|
|
457
451
|
}
|
|
458
452
|
}
|
|
459
453
|
|
|
460
|
-
|
|
461
|
-
//#region src/synthesis/stack-messages.ts
|
|
454
|
+
// src/synthesis/stack-messages.ts
|
|
462
455
|
const MESSAGE_ENTRY_TYPES = {
|
|
463
456
|
"aws:cdk:error": "error",
|
|
464
457
|
"aws:cdk:warning": "warning",
|
|
@@ -518,8 +511,7 @@ function processStackMessages(stacks, logger, options = {}) {
|
|
|
518
511
|
if (hasWarnings && failAt === "warn") throw new SynthesisError("Found warnings (--strict mode)");
|
|
519
512
|
}
|
|
520
513
|
|
|
521
|
-
|
|
522
|
-
//#region src/synthesis/failed-stages.ts
|
|
514
|
+
// src/synthesis/failed-stages.ts
|
|
523
515
|
var StageLoadError = class StageLoadError extends SynthesisError {
|
|
524
516
|
constructor(message) {
|
|
525
517
|
super(message);
|
|
@@ -557,8 +549,7 @@ function renderStagePath(stagePath) {
|
|
|
557
549
|
return displayIdent(stagePath, { maxCodePoints: STACK_REF_MAX_CODE_POINTS });
|
|
558
550
|
}
|
|
559
551
|
|
|
560
|
-
|
|
561
|
-
//#region src/synthesis/assembly-reader.ts
|
|
552
|
+
// src/synthesis/assembly-reader.ts
|
|
562
553
|
function manifestReadFailureText(error) {
|
|
563
554
|
const cause = error instanceof CdkdError ? error.cause : error;
|
|
564
555
|
const code = cause?.code;
|
|
@@ -716,8 +707,7 @@ var AssemblyReader = class {
|
|
|
716
707
|
}
|
|
717
708
|
};
|
|
718
709
|
|
|
719
|
-
|
|
720
|
-
//#region src/synthesis/context-store.ts
|
|
710
|
+
// src/synthesis/context-store.ts
|
|
721
711
|
const CDK_CONTEXT_FILE = "cdk.context.json";
|
|
722
712
|
var ContextStore = class {
|
|
723
713
|
logger = getLogger().child("ContextStore");
|
|
@@ -762,8 +752,7 @@ var ContextStore = class {
|
|
|
762
752
|
}
|
|
763
753
|
};
|
|
764
754
|
|
|
765
|
-
|
|
766
|
-
//#region src/synthesis/context-providers/az-provider.ts
|
|
755
|
+
// src/synthesis/context-providers/az-provider.ts
|
|
767
756
|
var AZContextProvider = class {
|
|
768
757
|
logger = getLogger().child("AZContextProvider");
|
|
769
758
|
awsConfig;
|
|
@@ -787,8 +776,7 @@ var AZContextProvider = class {
|
|
|
787
776
|
}
|
|
788
777
|
};
|
|
789
778
|
|
|
790
|
-
|
|
791
|
-
//#region src/synthesis/context-providers/ssm-provider.ts
|
|
779
|
+
// src/synthesis/context-providers/ssm-provider.ts
|
|
792
780
|
var SSMContextProvider = class {
|
|
793
781
|
logger = getLogger().child("SSMContextProvider");
|
|
794
782
|
awsConfig;
|
|
@@ -821,8 +809,7 @@ var SSMContextProvider = class {
|
|
|
821
809
|
}
|
|
822
810
|
};
|
|
823
811
|
|
|
824
|
-
|
|
825
|
-
//#region src/synthesis/context-providers/hosted-zone-provider.ts
|
|
812
|
+
// src/synthesis/context-providers/hosted-zone-provider.ts
|
|
826
813
|
var HostedZoneContextProvider = class {
|
|
827
814
|
logger = getLogger().child("HostedZoneContextProvider");
|
|
828
815
|
awsConfig;
|
|
@@ -869,8 +856,7 @@ var HostedZoneContextProvider = class {
|
|
|
869
856
|
}
|
|
870
857
|
};
|
|
871
858
|
|
|
872
|
-
|
|
873
|
-
//#region src/synthesis/context-providers/vpc-provider.ts
|
|
859
|
+
// src/synthesis/context-providers/vpc-provider.ts
|
|
874
860
|
var VpcContextProvider = class {
|
|
875
861
|
logger = getLogger().child("VpcContextProvider");
|
|
876
862
|
awsConfig;
|
|
@@ -1017,8 +1003,7 @@ var VpcContextProvider = class {
|
|
|
1017
1003
|
}
|
|
1018
1004
|
};
|
|
1019
1005
|
|
|
1020
|
-
|
|
1021
|
-
//#region src/synthesis/context-providers/cc-api-provider.ts
|
|
1006
|
+
// src/synthesis/context-providers/cc-api-provider.ts
|
|
1022
1007
|
function parseResourceModel(body, typeName) {
|
|
1023
1008
|
try {
|
|
1024
1009
|
return JSON.parse(body);
|
|
@@ -1134,8 +1119,7 @@ var CcApiContextProvider = class {
|
|
|
1134
1119
|
}
|
|
1135
1120
|
};
|
|
1136
1121
|
|
|
1137
|
-
|
|
1138
|
-
//#region src/synthesis/context-providers/ami-provider.ts
|
|
1122
|
+
// src/synthesis/context-providers/ami-provider.ts
|
|
1139
1123
|
var AmiContextProvider = class {
|
|
1140
1124
|
logger = getLogger().child("AmiContextProvider");
|
|
1141
1125
|
awsConfig;
|
|
@@ -1170,8 +1154,7 @@ var AmiContextProvider = class {
|
|
|
1170
1154
|
}
|
|
1171
1155
|
};
|
|
1172
1156
|
|
|
1173
|
-
|
|
1174
|
-
//#region src/synthesis/context-providers/security-group-provider.ts
|
|
1157
|
+
// src/synthesis/context-providers/security-group-provider.ts
|
|
1175
1158
|
var SecurityGroupContextProvider = class {
|
|
1176
1159
|
logger = getLogger().child("SecurityGroupContextProvider");
|
|
1177
1160
|
awsConfig;
|
|
@@ -1219,8 +1202,7 @@ var SecurityGroupContextProvider = class {
|
|
|
1219
1202
|
}
|
|
1220
1203
|
};
|
|
1221
1204
|
|
|
1222
|
-
|
|
1223
|
-
//#region src/synthesis/context-providers/load-balancer-provider.ts
|
|
1205
|
+
// src/synthesis/context-providers/load-balancer-provider.ts
|
|
1224
1206
|
var LoadBalancerContextProvider = class {
|
|
1225
1207
|
logger = getLogger().child("LoadBalancerContextProvider");
|
|
1226
1208
|
awsConfig;
|
|
@@ -1293,8 +1275,7 @@ var LoadBalancerListenerContextProvider = class {
|
|
|
1293
1275
|
}
|
|
1294
1276
|
};
|
|
1295
1277
|
|
|
1296
|
-
|
|
1297
|
-
//#region src/synthesis/context-providers/key-provider.ts
|
|
1278
|
+
// src/synthesis/context-providers/key-provider.ts
|
|
1298
1279
|
var KeyContextProvider = class {
|
|
1299
1280
|
logger = getLogger().child("KeyContextProvider");
|
|
1300
1281
|
awsConfig;
|
|
@@ -1330,8 +1311,7 @@ var KeyContextProvider = class {
|
|
|
1330
1311
|
}
|
|
1331
1312
|
};
|
|
1332
1313
|
|
|
1333
|
-
|
|
1334
|
-
//#region src/synthesis/context-providers/index.ts
|
|
1314
|
+
// src/synthesis/context-providers/index.ts
|
|
1335
1315
|
const PROVIDER_ERROR_KEY = "$providerError";
|
|
1336
1316
|
const TRANSIENT_CONTEXT_KEY = "$dontSaveContext";
|
|
1337
1317
|
var ContextProviderRegistry = class {
|
|
@@ -1384,8 +1364,7 @@ var ContextProviderRegistry = class {
|
|
|
1384
1364
|
}
|
|
1385
1365
|
};
|
|
1386
1366
|
|
|
1387
|
-
|
|
1388
|
-
//#region src/synthesis/macro-detector.ts
|
|
1367
|
+
// src/synthesis/macro-detector.ts
|
|
1389
1368
|
function containsMacro(template) {
|
|
1390
1369
|
if (!template || typeof template !== "object" || Array.isArray(template)) return false;
|
|
1391
1370
|
const t = template;
|
|
@@ -1474,8 +1453,7 @@ function collectFnTransformNames(value, seen, out) {
|
|
|
1474
1453
|
}
|
|
1475
1454
|
}
|
|
1476
1455
|
|
|
1477
|
-
|
|
1478
|
-
//#region src/utils/aws-partition.ts
|
|
1456
|
+
// src/utils/aws-partition.ts
|
|
1479
1457
|
const PARTITION_TABLE = [
|
|
1480
1458
|
{
|
|
1481
1459
|
prefix: "cn-",
|
|
@@ -1531,8 +1509,7 @@ function derivePartitionAndUrlSuffix(region) {
|
|
|
1531
1509
|
};
|
|
1532
1510
|
}
|
|
1533
1511
|
|
|
1534
|
-
|
|
1535
|
-
//#region src/utils/expected-bucket-owner.ts
|
|
1512
|
+
// src/utils/expected-bucket-owner.ts
|
|
1536
1513
|
var expected_bucket_owner_exports = /* @__PURE__ */ __exportAll({
|
|
1537
1514
|
expectedOwnerParam: () => expectedOwnerParam,
|
|
1538
1515
|
recordResolvedAccountId: () => recordResolvedAccountId,
|
|
@@ -1614,8 +1591,7 @@ async function expectedOwnerParam(client) {
|
|
|
1614
1591
|
return owner ? { ExpectedBucketOwner: owner } : {};
|
|
1615
1592
|
}
|
|
1616
1593
|
|
|
1617
|
-
|
|
1618
|
-
//#region src/utils/s3-listing-keys.ts
|
|
1594
|
+
// src/utils/s3-listing-keys.ts
|
|
1619
1595
|
function decodeListingKey(value) {
|
|
1620
1596
|
if (value === void 0) return void 0;
|
|
1621
1597
|
try {
|
|
@@ -1625,8 +1601,7 @@ function decodeListingKey(value) {
|
|
|
1625
1601
|
}
|
|
1626
1602
|
}
|
|
1627
1603
|
|
|
1628
|
-
|
|
1629
|
-
//#region src/state/s3-replication-purge-gap.ts
|
|
1604
|
+
// src/state/s3-replication-purge-gap.ts
|
|
1630
1605
|
const DEFAULT_PURGED_OBJECT_DESCRIPTION = "the body of an object cdkd has just reported as removed";
|
|
1631
1606
|
const replicationProbeCache = /* @__PURE__ */ new Map();
|
|
1632
1607
|
const warnedWarnings = /* @__PURE__ */ new Set();
|
|
@@ -1758,8 +1733,7 @@ async function warnIfPurgeIsReplicated(s3Client, bucket, keys, options = {}) {
|
|
|
1758
1733
|
} catch {}
|
|
1759
1734
|
}
|
|
1760
1735
|
|
|
1761
|
-
|
|
1762
|
-
//#region src/state/s3-noncurrent-version-purge.ts
|
|
1736
|
+
// src/state/s3-noncurrent-version-purge.ts
|
|
1763
1737
|
const CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION = "a custom-resource response object, which is the handler's full cfn-response body including `Data`";
|
|
1764
1738
|
const DELETE_BATCH_SIZE = 1e3;
|
|
1765
1739
|
const MAX_NAMED_FAILURES = 5;
|
|
@@ -1933,8 +1907,7 @@ async function purgeUnderPrefix(s3Client, bucket, prefix, scope, requestFields,
|
|
|
1933
1907
|
} while (keyMarker !== void 0);
|
|
1934
1908
|
}
|
|
1935
1909
|
|
|
1936
|
-
|
|
1937
|
-
//#region src/cli/upload-cfn-template.ts
|
|
1910
|
+
// src/cli/upload-cfn-template.ts
|
|
1938
1911
|
const CFN_TEMPLATE_BODY_LIMIT = 51200;
|
|
1939
1912
|
const CFN_TEMPLATE_URL_LIMIT = 1048576;
|
|
1940
1913
|
const MIGRATE_TMP_PREFIX = "cdkd-migrate-tmp";
|
|
@@ -2020,8 +1993,7 @@ function findLargeInlineResources(template, threshold = LARGE_INLINE_RESOURCE_TH
|
|
|
2020
1993
|
return result;
|
|
2021
1994
|
}
|
|
2022
1995
|
|
|
2023
|
-
|
|
2024
|
-
//#region src/utils/parameter-types.ts
|
|
1996
|
+
// src/utils/parameter-types.ts
|
|
2025
1997
|
function isListParameterType(type) {
|
|
2026
1998
|
if (type === "CommaDelimitedList") return true;
|
|
2027
1999
|
return type.length > 6 && type.startsWith("List<") && type.endsWith(">");
|
|
@@ -2033,8 +2005,7 @@ function ssmResolvedValueType(type) {
|
|
|
2033
2005
|
return inner.length > 0 ? inner : void 0;
|
|
2034
2006
|
}
|
|
2035
2007
|
|
|
2036
|
-
|
|
2037
|
-
//#region src/synthesis/macro-expander.ts
|
|
2008
|
+
// src/synthesis/macro-expander.ts
|
|
2038
2009
|
function displaySafeTransforms(names) {
|
|
2039
2010
|
return names.map((name) => displaySafe(name)).join(", ");
|
|
2040
2011
|
}
|
|
@@ -2259,8 +2230,7 @@ function formatErr(err) {
|
|
|
2259
2230
|
return displayAwsMessage(describeAwsFailure(err).detail);
|
|
2260
2231
|
}
|
|
2261
2232
|
|
|
2262
|
-
|
|
2263
|
-
//#region src/cli/config-loader.ts
|
|
2233
|
+
// src/cli/config-loader.ts
|
|
2264
2234
|
function loadJsonConfig(filePath) {
|
|
2265
2235
|
const logger = getLogger();
|
|
2266
2236
|
if (!existsSync(filePath)) return null;
|
|
@@ -2360,7 +2330,7 @@ async function resolveStateBucketWithDefaultAndSource(cliBucket, region, legacyF
|
|
|
2360
2330
|
logger.debug("No state bucket specified, resolving default from account...");
|
|
2361
2331
|
const { GetCallerIdentityCommand } = await import("@aws-sdk/client-sts");
|
|
2362
2332
|
const { S3Client, HeadBucketCommand, ListObjectsV2Command } = await import("@aws-sdk/client-s3");
|
|
2363
|
-
const { getAwsClients } = await import("./aws-clients-
|
|
2333
|
+
const { getAwsClients } = await import("./aws-clients-DWpHZk2l.js").then((n) => n.n);
|
|
2364
2334
|
const { expectedOwnerParam, recordResolvedAccountId } = await Promise.resolve().then(() => expected_bucket_owner_exports);
|
|
2365
2335
|
const probeDeps = {
|
|
2366
2336
|
HeadBucketCommand,
|
|
@@ -2471,8 +2441,7 @@ async function probeBucket(client, bucketName, deps) {
|
|
|
2471
2441
|
}
|
|
2472
2442
|
}
|
|
2473
2443
|
|
|
2474
|
-
|
|
2475
|
-
//#region src/synthesis/synthesizer.ts
|
|
2444
|
+
// src/synthesis/synthesizer.ts
|
|
2476
2445
|
function isPreSynthesizedAssembly(app) {
|
|
2477
2446
|
const appPath = resolve(app);
|
|
2478
2447
|
return existsSync(appPath) && statSync(appPath).isDirectory();
|
|
@@ -2634,8 +2603,7 @@ function setsEqual(a, b) {
|
|
|
2634
2603
|
return true;
|
|
2635
2604
|
}
|
|
2636
2605
|
|
|
2637
|
-
|
|
2638
|
-
//#region src/assets/absolute-asset-path-warning.ts
|
|
2606
|
+
// src/assets/absolute-asset-path-warning.ts
|
|
2639
2607
|
function warnWholeAssemblyAsSource(w) {
|
|
2640
2608
|
getLogger().child("assets").warn(`${w.subject} has ${w.field} naming the output directory ITSELF: ${displayAssemblyPath(w.outdir)}. cdkd will ${w.sink} — that is the WHOLE assembly, every template and every staged asset, not one asset directory. No CDK synth emits this, so treat this assembly as untrusted unless you wrote that path yourself.`);
|
|
2641
2609
|
}
|
|
@@ -2643,8 +2611,7 @@ function warnAbsoluteAssetPath(w) {
|
|
|
2643
2611
|
getLogger().child("assets").warn(`${w.subject} has an absolute ${w.field} pointing outside the assembly: ${displayAssemblyPath(w.absolute)}` + (w.escape.escape === "symlink" ? ` (through a symbolic link to ${displayAssemblyPath(w.escape.realPath)})` : "") + `. cdkd will ${w.sink}. This is what cdk synth --no-staging emits, and is expected for it; if you did not synthesize with that flag, treat this assembly as untrusted: an absolute source path is honoured as written, so nothing but this line stands between it and that step.`);
|
|
2644
2612
|
}
|
|
2645
2613
|
|
|
2646
|
-
|
|
2647
|
-
//#region src/assets/asset-manifest-loader.ts
|
|
2614
|
+
// src/assets/asset-manifest-loader.ts
|
|
2648
2615
|
function resolveFileAssetSourcePath(manifestDir, asset, opts) {
|
|
2649
2616
|
const { assetOutdir, sink } = opts;
|
|
2650
2617
|
if (isAbsolute$1(asset.source.path)) {
|
|
@@ -2758,8 +2725,7 @@ function extractHashFromImageUri(imageUri) {
|
|
|
2758
2725
|
return /:([a-f0-9]{8,})$/.exec(imageUri)?.[1];
|
|
2759
2726
|
}
|
|
2760
2727
|
|
|
2761
|
-
|
|
2762
|
-
//#region src/assets/file-asset-publisher.ts
|
|
2728
|
+
// src/assets/file-asset-publisher.ts
|
|
2763
2729
|
var FileAssetPublisher = class {
|
|
2764
2730
|
logger = getLogger().child("FileAssetPublisher");
|
|
2765
2731
|
async publish(assetHash, asset, cdkOutputDir, accountId, region, assetOutdir) {
|
|
@@ -2838,8 +2804,7 @@ var FileAssetPublisher = class {
|
|
|
2838
2804
|
}
|
|
2839
2805
|
};
|
|
2840
2806
|
|
|
2841
|
-
|
|
2842
|
-
//#region src/utils/docker-cmd.ts
|
|
2807
|
+
// src/utils/docker-cmd.ts
|
|
2843
2808
|
function getDockerCmd() {
|
|
2844
2809
|
const override = process.env["CDK_DOCKER"];
|
|
2845
2810
|
return override && override.length > 0 ? override : "docker";
|
|
@@ -3477,16 +3442,14 @@ function describeDockerCapturedOutput(error, args, fallback) {
|
|
|
3477
3442
|
return redactDockerArgvInText(capturedStreamText(error, "stderr") || capturedStreamText(error, "stdout") || fallback, args);
|
|
3478
3443
|
}
|
|
3479
3444
|
|
|
3480
|
-
|
|
3481
|
-
//#region src/assets/docker-cache-option.ts
|
|
3445
|
+
// src/assets/docker-cache-option.ts
|
|
3482
3446
|
function cacheOptionToFlag(option) {
|
|
3483
3447
|
let flag = `type=${option.type}`;
|
|
3484
3448
|
if (option.params) for (const [k, v] of Object.entries(option.params)) flag += `,${k}=${v}`;
|
|
3485
3449
|
return flag;
|
|
3486
3450
|
}
|
|
3487
3451
|
|
|
3488
|
-
|
|
3489
|
-
//#region src/assets/manifest-passthrough-warnings.ts
|
|
3452
|
+
// src/assets/manifest-passthrough-warnings.ts
|
|
3490
3453
|
function candidateHostPaths(value, opts) {
|
|
3491
3454
|
const out = [];
|
|
3492
3455
|
for (const part of value.split(",")) {
|
|
@@ -3599,8 +3562,7 @@ function warnUnrecognizedAssetDestination(opts) {
|
|
|
3599
3562
|
getLogger().child("assets").warn(`Asset destination ${opts.kind} ${displayIdent(opts.name)} is not a CDK-bootstrap or cdkd-managed name, so cdkd uploads there exactly as this asset manifest wrote it, with your credentials. That is what a custom bootstrap looks like and is expected for one; if you did not configure it, the manifest chose where your assets go.`);
|
|
3600
3563
|
}
|
|
3601
3564
|
|
|
3602
|
-
|
|
3603
|
-
//#region src/assets/docker-build.ts
|
|
3565
|
+
// src/assets/docker-build.ts
|
|
3604
3566
|
function resolveDockerContextDirectory(opts) {
|
|
3605
3567
|
const { manifestDir, directory, wrapError, assetOutdir, sink, assetId } = opts;
|
|
3606
3568
|
if (isAbsolute$1(directory)) {
|
|
@@ -3722,8 +3684,7 @@ function buildDockerBuildCommand(source, tag, platformOverride) {
|
|
|
3722
3684
|
return args;
|
|
3723
3685
|
}
|
|
3724
3686
|
|
|
3725
|
-
|
|
3726
|
-
//#region src/assets/docker-asset-publisher.ts
|
|
3687
|
+
// src/assets/docker-asset-publisher.ts
|
|
3727
3688
|
function ecrUrlSuffix(region) {
|
|
3728
3689
|
return derivePartitionAndUrlSuffix(region).urlSuffix;
|
|
3729
3690
|
}
|
|
@@ -3881,8 +3842,7 @@ var DockerAssetPublisher = class {
|
|
|
3881
3842
|
}
|
|
3882
3843
|
};
|
|
3883
3844
|
|
|
3884
|
-
|
|
3885
|
-
//#region src/utils/deny-external-access-policy.ts
|
|
3845
|
+
// src/utils/deny-external-access-policy.ts
|
|
3886
3846
|
function buildDenyExternalAccessPolicy(bucketName, accountId, region) {
|
|
3887
3847
|
const { partition } = derivePartitionAndUrlSuffix(region);
|
|
3888
3848
|
return {
|
|
@@ -3898,8 +3858,7 @@ function buildDenyExternalAccessPolicy(bucketName, accountId, region) {
|
|
|
3898
3858
|
};
|
|
3899
3859
|
}
|
|
3900
3860
|
|
|
3901
|
-
|
|
3902
|
-
//#region src/assets/asset-storage.ts
|
|
3861
|
+
// src/assets/asset-storage.ts
|
|
3903
3862
|
const ASSET_SUPPORT_VERSION = 1;
|
|
3904
3863
|
const BOOTSTRAP_MARKER_PREFIX = "cdkd-bootstrap/";
|
|
3905
3864
|
function getCdkdAssetBucketName(accountId, region) {
|
|
@@ -4325,8 +4284,7 @@ var AssetModeResolver = class {
|
|
|
4325
4284
|
}
|
|
4326
4285
|
};
|
|
4327
4286
|
|
|
4328
|
-
|
|
4329
|
-
//#region src/assets/asset-redirect.ts
|
|
4287
|
+
// src/assets/asset-redirect.ts
|
|
4330
4288
|
function flattenAssetPlaceholders(value, accountId, region, partition = "aws") {
|
|
4331
4289
|
return value.replace(/\$\{AWS::AccountId\}/g, accountId).replace(/\$\{AWS::Region\}/g, region).replace(/\$\{AWS::Partition\}/g, partition);
|
|
4332
4290
|
}
|
|
@@ -4596,8 +4554,7 @@ function createAssetRedirectResolver(opts) {
|
|
|
4596
4554
|
};
|
|
4597
4555
|
}
|
|
4598
4556
|
|
|
4599
|
-
|
|
4600
|
-
//#region src/deployment/work-graph.ts
|
|
4557
|
+
// src/deployment/work-graph.ts
|
|
4601
4558
|
var WorkGraph = class {
|
|
4602
4559
|
nodes = /* @__PURE__ */ new Map();
|
|
4603
4560
|
logger = getLogger().child("WorkGraph");
|
|
@@ -4688,8 +4645,7 @@ var WorkGraph = class {
|
|
|
4688
4645
|
}
|
|
4689
4646
|
};
|
|
4690
4647
|
|
|
4691
|
-
|
|
4692
|
-
//#region src/utils/stringify.ts
|
|
4648
|
+
// src/utils/stringify.ts
|
|
4693
4649
|
const SENSITIVE_ATTRIBUTE_NAME = /secret|password|credential/i;
|
|
4694
4650
|
const NON_SENSITIVE_SUFFIX = /(arn|id|name|url|alias|status)$/i;
|
|
4695
4651
|
function isSensitiveAttributeName(attributeName) {
|
|
@@ -4718,8 +4674,7 @@ function stringifyValue(value) {
|
|
|
4718
4674
|
}
|
|
4719
4675
|
}
|
|
4720
4676
|
|
|
4721
|
-
|
|
4722
|
-
//#region src/assets/asset-publisher.ts
|
|
4677
|
+
// src/assets/asset-publisher.ts
|
|
4723
4678
|
var AssetPublisher = class {
|
|
4724
4679
|
logger = getLogger().child("AssetPublisher");
|
|
4725
4680
|
filePublisher = new FileAssetPublisher();
|
|
@@ -4865,8 +4820,7 @@ var AssetPublisher = class {
|
|
|
4865
4820
|
}
|
|
4866
4821
|
};
|
|
4867
4822
|
|
|
4868
|
-
|
|
4869
|
-
//#region src/utils/phase-timings.ts
|
|
4823
|
+
// src/utils/phase-timings.ts
|
|
4870
4824
|
const now = () => globalThis.performance.now();
|
|
4871
4825
|
const PHASE_TIMINGS_ENV = "CDKD_PHASE_TIMINGS";
|
|
4872
4826
|
function phaseTimingsEnabled() {
|
|
@@ -4971,8 +4925,7 @@ function renderPhaseTimings() {
|
|
|
4971
4925
|
return lines;
|
|
4972
4926
|
}
|
|
4973
4927
|
|
|
4974
|
-
|
|
4975
|
-
//#region src/types/state.ts
|
|
4928
|
+
// src/types/state.ts
|
|
4976
4929
|
const STATE_SCHEMA_VERSIONS_READABLE = [
|
|
4977
4930
|
1,
|
|
4978
4931
|
2,
|
|
@@ -5059,8 +5012,7 @@ function orphansAfterRollback(previous, newlyOrphaned) {
|
|
|
5059
5012
|
return { orphans: [...byLogicalId.values()] };
|
|
5060
5013
|
}
|
|
5061
5014
|
|
|
5062
|
-
|
|
5063
|
-
//#region src/types/rollback-journal.ts
|
|
5015
|
+
// src/types/rollback-journal.ts
|
|
5064
5016
|
const ROLLBACK_JOURNAL_VERSION = 1;
|
|
5065
5017
|
function splitImportedOps(ops, segment, except = /* @__PURE__ */ new Set()) {
|
|
5066
5018
|
const marks = segment.importedResources ?? [];
|
|
@@ -5242,8 +5194,7 @@ function parseRollbackJournal(bodyString, stackName) {
|
|
|
5242
5194
|
};
|
|
5243
5195
|
}
|
|
5244
5196
|
|
|
5245
|
-
|
|
5246
|
-
//#region src/state/create-token-ledger.ts
|
|
5197
|
+
// src/state/create-token-ledger.ts
|
|
5247
5198
|
const CREATE_TOKEN_LEDGER_VERSION = 1;
|
|
5248
5199
|
function emptyCreateTokenLedger(nonce) {
|
|
5249
5200
|
return {
|
|
@@ -5294,8 +5245,7 @@ async function notifyStateSaved(stackName, region) {
|
|
|
5294
5245
|
await stateSavedObserver.getStore()?.(stackName, region);
|
|
5295
5246
|
}
|
|
5296
5247
|
|
|
5297
|
-
|
|
5298
|
-
//#region src/state/stack-instance-id.ts
|
|
5248
|
+
// src/state/stack-instance-id.ts
|
|
5299
5249
|
const STACK_INSTANCE_SIBLING_VERSION = 1;
|
|
5300
5250
|
const STACK_INSTANCE_SIBLING_FILE = "stack-instance.json";
|
|
5301
5251
|
const STACK_INSTANCE_ID_PATTERN = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/;
|
|
@@ -5341,8 +5291,7 @@ function withStackInstanceIdWithheld(state) {
|
|
|
5341
5291
|
};
|
|
5342
5292
|
}
|
|
5343
5293
|
|
|
5344
|
-
|
|
5345
|
-
//#region src/state/cross-prefix-stack-scan.ts
|
|
5294
|
+
// src/state/cross-prefix-stack-scan.ts
|
|
5346
5295
|
function journalCanOwnResources(journal) {
|
|
5347
5296
|
return recordCanOwnResources({ resources: {} }, journal);
|
|
5348
5297
|
}
|
|
@@ -5704,8 +5653,7 @@ function applyCrossPrefixScan(result, s, action, warn, info) {
|
|
|
5704
5653
|
}
|
|
5705
5654
|
}
|
|
5706
5655
|
|
|
5707
|
-
|
|
5708
|
-
//#region src/state/earlier-state-versions.ts
|
|
5656
|
+
// src/state/earlier-state-versions.ts
|
|
5709
5657
|
async function readEarlierStateResources(s3, bucket, owner, key, max) {
|
|
5710
5658
|
const versions = ((await s3.send(new ListObjectVersionsCommand({
|
|
5711
5659
|
Bucket: bucket,
|
|
@@ -5775,8 +5723,7 @@ async function listVersionedSubdirectories(s3, bucket, owner, prefix) {
|
|
|
5775
5723
|
}
|
|
5776
5724
|
}
|
|
5777
5725
|
|
|
5778
|
-
|
|
5779
|
-
//#region src/state/retained-time.ts
|
|
5726
|
+
// src/state/retained-time.ts
|
|
5780
5727
|
var RetainedTimeUnconfirmedError = class extends Error {
|
|
5781
5728
|
cause;
|
|
5782
5729
|
constructor(cause) {
|
|
@@ -5786,8 +5733,7 @@ var RetainedTimeUnconfirmedError = class extends Error {
|
|
|
5786
5733
|
}
|
|
5787
5734
|
};
|
|
5788
5735
|
|
|
5789
|
-
|
|
5790
|
-
//#region src/utils/bucket-region-client.ts
|
|
5736
|
+
// src/utils/bucket-region-client.ts
|
|
5791
5737
|
async function rebuildClientForBucketRegion(client, bucket, opts = {}) {
|
|
5792
5738
|
const config = client.config;
|
|
5793
5739
|
if (!config || typeof config.region !== "function") {
|
|
@@ -5825,8 +5771,7 @@ async function rebuildClientForBucketRegion(client, bucket, opts = {}) {
|
|
|
5825
5771
|
return replacement;
|
|
5826
5772
|
}
|
|
5827
5773
|
|
|
5828
|
-
|
|
5829
|
-
//#region src/state/token-free-state.ts
|
|
5774
|
+
// src/state/token-free-state.ts
|
|
5830
5775
|
const tokenFreeStates = /* @__PURE__ */ new WeakSet();
|
|
5831
5776
|
function bodyMayCarryReferences(body) {
|
|
5832
5777
|
return body.includes("{{resolve:") || body.includes("\"referenceProvenance\"") || body.includes("\"outputReferenceProvenance\"");
|
|
@@ -5838,8 +5783,7 @@ function isKnownTokenFreeState(state) {
|
|
|
5838
5783
|
return state !== void 0 && tokenFreeStates.has(state);
|
|
5839
5784
|
}
|
|
5840
5785
|
|
|
5841
|
-
|
|
5842
|
-
//#region src/state/s3-state-backend.ts
|
|
5786
|
+
// src/state/s3-state-backend.ts
|
|
5843
5787
|
function errorDetail$2(error) {
|
|
5844
5788
|
return displaySafe(error instanceof Error ? error.message : error, { asciiOnly: true }) || "<unrenderable>";
|
|
5845
5789
|
}
|
|
@@ -7240,8 +7184,7 @@ function addSupersededIds(segment, ids) {
|
|
|
7240
7184
|
if (merged.size > 0) segment.supersededLogicalIds = [...merged];
|
|
7241
7185
|
}
|
|
7242
7186
|
|
|
7243
|
-
|
|
7244
|
-
//#region src/state/lock-manager.ts
|
|
7187
|
+
// src/state/lock-manager.ts
|
|
7245
7188
|
const MAX_RENEWAL_INTERVAL_MS = 12e4;
|
|
7246
7189
|
const RENEWAL_TTL_FRACTION = 4;
|
|
7247
7190
|
const MIN_RENEWAL_INTERVAL_MS = 1e3;
|
|
@@ -7755,8 +7698,7 @@ function nanIfUncoercible(value) {
|
|
|
7755
7698
|
}
|
|
7756
7699
|
}
|
|
7757
7700
|
|
|
7758
|
-
|
|
7759
|
-
//#region src/deployment/secret-redaction/rules.ts
|
|
7701
|
+
// src/deployment/secret-redaction/rules.ts
|
|
7760
7702
|
const MIN_NEEDLE_LENGTH = 4;
|
|
7761
7703
|
function printingNeedles(values) {
|
|
7762
7704
|
const out = /* @__PURE__ */ new Set();
|
|
@@ -7851,8 +7793,7 @@ function isPlainObject$11(value) {
|
|
|
7851
7793
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
7852
7794
|
}
|
|
7853
7795
|
|
|
7854
|
-
|
|
7855
|
-
//#region src/deployment/secret-redaction/mask-only.ts
|
|
7796
|
+
// src/deployment/secret-redaction/mask-only.ts
|
|
7856
7797
|
const recordedSecretExpressions = /* @__PURE__ */ new Set();
|
|
7857
7798
|
const secretVerdictScopes = /* @__PURE__ */ new Map();
|
|
7858
7799
|
function pinScopedSecretVerdict(scope, expression, secret) {
|
|
@@ -8076,8 +8017,7 @@ function isSecretExpressionByVerdictOrSpelling(expression) {
|
|
|
8076
8017
|
return expression.startsWith("{{resolve:secretsmanager:") || expression.startsWith("{{resolve:ssm-secure:") || isRecordedSecretExpression(expression);
|
|
8077
8018
|
}
|
|
8078
8019
|
|
|
8079
|
-
|
|
8080
|
-
//#region src/deployment/secret-redaction/cross-stack.ts
|
|
8020
|
+
// src/deployment/secret-redaction/cross-stack.ts
|
|
8081
8021
|
const crossStackAssociations = /* @__PURE__ */ new WeakMap();
|
|
8082
8022
|
const CONFLICTING_CROSS_STACK = Symbol("conflicting cross-stack association");
|
|
8083
8023
|
const CROSS_STACK_KEY_SEPARATOR = "\0";
|
|
@@ -8195,8 +8135,7 @@ function storeAssociation(associations, key, expression, plaintext) {
|
|
|
8195
8135
|
if (seen.expression !== expression || seen.plaintext !== plaintext) associations.set(key, CONFLICTING_CROSS_STACK);
|
|
8196
8136
|
}
|
|
8197
8137
|
|
|
8198
|
-
|
|
8199
|
-
//#region src/deployment/secret-redaction/certified-positions.ts
|
|
8138
|
+
// src/deployment/secret-redaction/certified-positions.ts
|
|
8200
8139
|
function plaintextIndexOf(secrets) {
|
|
8201
8140
|
const plaintextOf = /* @__PURE__ */ new Map();
|
|
8202
8141
|
for (const [plaintext, expression] of secrets) plaintextOf.set(expression, plaintextOf.has(expression) ? CONFLICTING_PLAINTEXT : plaintext);
|
|
@@ -8233,8 +8172,7 @@ function positionByCrossStackSource(bag, source, secrets) {
|
|
|
8233
8172
|
return certifiedExpressionForLeaf(secrets, association, bag);
|
|
8234
8173
|
}
|
|
8235
8174
|
|
|
8236
|
-
|
|
8237
|
-
//#region src/deployment/secret-redaction/resolver-outcomes.ts
|
|
8175
|
+
// src/deployment/secret-redaction/resolver-outcomes.ts
|
|
8238
8176
|
const CONFLICTING = Symbol("cdkd.resolver-outcome.conflicting");
|
|
8239
8177
|
const takenBranches = /* @__PURE__ */ new WeakMap();
|
|
8240
8178
|
function recordTakenIfBranch(secrets, source, tookTrueBranch) {
|
|
@@ -8267,8 +8205,7 @@ function droppedArrayElementsOf(secrets, source) {
|
|
|
8267
8205
|
return dropped === CONFLICTING ? void 0 : dropped;
|
|
8268
8206
|
}
|
|
8269
8207
|
|
|
8270
|
-
|
|
8271
|
-
//#region src/deployment/secret-redaction/physical-name-copies.ts
|
|
8208
|
+
// src/deployment/secret-redaction/physical-name-copies.ts
|
|
8272
8209
|
const physicalNameCopiesOf = /* @__PURE__ */ new WeakMap();
|
|
8273
8210
|
function recordPhysicalNameCopy(secrets, physicalId) {
|
|
8274
8211
|
if (physicalId === "") return;
|
|
@@ -8289,8 +8226,7 @@ function physicalNameSpans(names, value) {
|
|
|
8289
8226
|
return spans;
|
|
8290
8227
|
}
|
|
8291
8228
|
|
|
8292
|
-
|
|
8293
|
-
//#region src/deployment/secret-redaction/fresh-noecho.ts
|
|
8229
|
+
// src/deployment/secret-redaction/fresh-noecho.ts
|
|
8294
8230
|
function embedsFreshNoEchoValue(text, secrets, freshClass) {
|
|
8295
8231
|
const fresh = freshNoEchoValuesOf.get(secrets);
|
|
8296
8232
|
if (fresh === void 0) return false;
|
|
@@ -8434,8 +8370,7 @@ function recoverMaskedOutput(identity, stackName, region, outputKey) {
|
|
|
8434
8370
|
return recoverableMaskedOutputs.get(maskedOutputKey(identity, stackName, region, outputKey));
|
|
8435
8371
|
}
|
|
8436
8372
|
|
|
8437
|
-
|
|
8438
|
-
//#region src/deployment/secret-redaction/nested-stack.ts
|
|
8373
|
+
// src/deployment/secret-redaction/nested-stack.ts
|
|
8439
8374
|
const NESTED_STACK_RESOURCE_TYPE$4 = "AWS::CloudFormation::Stack";
|
|
8440
8375
|
const nestedStackParameterExpressions = /* @__PURE__ */ new WeakMap();
|
|
8441
8376
|
const renderedParameterSpellings = /* @__PURE__ */ new WeakMap();
|
|
@@ -9056,8 +8991,7 @@ function carriesChildOnlyPlaintext(value, childSecrets, parentSecrets) {
|
|
|
9056
8991
|
return visit(value);
|
|
9057
8992
|
}
|
|
9058
8993
|
|
|
9059
|
-
|
|
9060
|
-
//#region src/deployment/secret-redaction/placeholder-positions.ts
|
|
8994
|
+
// src/deployment/secret-redaction/placeholder-positions.ts
|
|
9061
8995
|
function keyedPart(source) {
|
|
9062
8996
|
const key = crossStackSourceKey(source);
|
|
9063
8997
|
return key === void 0 ? UNKNOWN_PART : { key };
|
|
@@ -9263,8 +9197,7 @@ function positionByRecordedParameterSpans(bag, source, secrets, associations) {
|
|
|
9263
9197
|
return acceptedPlaceholderRendering(bag, persisted, certified, secrets);
|
|
9264
9198
|
}
|
|
9265
9199
|
|
|
9266
|
-
|
|
9267
|
-
//#region src/deployment/secret-redaction/identity-keys.ts
|
|
9200
|
+
// src/deployment/secret-redaction/identity-keys.ts
|
|
9268
9201
|
const ARRAY_IDENTITY_KEYS = ["Name", "Key"];
|
|
9269
9202
|
function isUniquelyKeyedBy(items, key) {
|
|
9270
9203
|
if (items.length === 0) return false;
|
|
@@ -9287,8 +9220,7 @@ function positionListByCrossStackSource(bag, source, secrets) {
|
|
|
9287
9220
|
return certifiedListForLeaf(secrets, association, bag);
|
|
9288
9221
|
}
|
|
9289
9222
|
|
|
9290
|
-
|
|
9291
|
-
//#region src/deployment/secret-redaction/redact-path.ts
|
|
9223
|
+
// src/deployment/secret-redaction/redact-path.ts
|
|
9292
9224
|
const NEVER_DROPPING_INTRINSICS = /* @__PURE__ */ new Set([
|
|
9293
9225
|
"Fn::Join",
|
|
9294
9226
|
"Fn::Sub",
|
|
@@ -9740,8 +9672,7 @@ function deepEqualJsonValue(a, b) {
|
|
|
9740
9672
|
return false;
|
|
9741
9673
|
}
|
|
9742
9674
|
|
|
9743
|
-
|
|
9744
|
-
//#region src/deployment/secret-redaction/readback-certification.ts
|
|
9675
|
+
// src/deployment/secret-redaction/readback-certification.ts
|
|
9745
9676
|
function renderedDefinitionLiterals(source) {
|
|
9746
9677
|
const keep = /* @__PURE__ */ new Set();
|
|
9747
9678
|
const scalarKeep = /* @__PURE__ */ new Set();
|
|
@@ -9912,8 +9843,7 @@ function refuseUncertifiedReadbackPositions(bag, source, secrets, failClosed, le
|
|
|
9912
9843
|
return refuseAgainstSource(bag, source, failClosed, mark);
|
|
9913
9844
|
}
|
|
9914
9845
|
|
|
9915
|
-
|
|
9916
|
-
//#region src/deployment/secret-redaction/anchors.ts
|
|
9846
|
+
// src/deployment/secret-redaction/anchors.ts
|
|
9917
9847
|
function isDistinguishingAnchor(value) {
|
|
9918
9848
|
if (typeof value === "string") return value !== "";
|
|
9919
9849
|
if (Array.isArray(value)) return value.some(isDistinguishingAnchor);
|
|
@@ -10063,8 +9993,7 @@ function deriveReadbackNeedles(bag, source, secrets, rules) {
|
|
|
10063
9993
|
};
|
|
10064
9994
|
}
|
|
10065
9995
|
|
|
10066
|
-
|
|
10067
|
-
//#region src/deployment/secret-redaction/redact-state.ts
|
|
9996
|
+
// src/deployment/secret-redaction/redact-state.ts
|
|
10068
9997
|
function redactSecretsForState(bag, secrets, source, rules = TEMPLATE_DERIVED_RULES, bagIsSameGeneration = false) {
|
|
10069
9998
|
return flattenEmbeddedNoEchoLeaves(redactSecretsForStatePasses(bag, secrets, source, rules, bagIsSameGeneration), secrets);
|
|
10070
9999
|
}
|
|
@@ -10418,8 +10347,7 @@ function repairEmbeddedPhysicalNamesTowards(stored, target, pairs) {
|
|
|
10418
10347
|
return stored;
|
|
10419
10348
|
}
|
|
10420
10349
|
|
|
10421
|
-
|
|
10422
|
-
//#region src/deployment/secret-redaction/mask-errors.ts
|
|
10350
|
+
// src/deployment/secret-redaction/mask-errors.ts
|
|
10423
10351
|
function maskSecretsInText(text, secrets) {
|
|
10424
10352
|
const logOnly = logOnlyValuesOf.get(secrets);
|
|
10425
10353
|
const noLogOnly = logOnly === void 0 || logOnly.size === 0;
|
|
@@ -10620,8 +10548,7 @@ function createSecretMasker(secrets) {
|
|
|
10620
10548
|
return (text) => maskSecretsInText(text, secrets);
|
|
10621
10549
|
}
|
|
10622
10550
|
|
|
10623
|
-
|
|
10624
|
-
//#region src/deployment/secret-redaction/log-only.ts
|
|
10551
|
+
// src/deployment/secret-redaction/log-only.ts
|
|
10625
10552
|
const logOnlyValuesOf = /* @__PURE__ */ new WeakMap();
|
|
10626
10553
|
function recordLogOnlyValue(secrets, plaintext) {
|
|
10627
10554
|
if (plaintext === "") return;
|
|
@@ -10810,8 +10737,7 @@ function hasMaskableValues(secrets) {
|
|
|
10810
10737
|
return logOnly !== void 0 && logOnly.size > 0;
|
|
10811
10738
|
}
|
|
10812
10739
|
|
|
10813
|
-
|
|
10814
|
-
//#region src/deployment/secret-redaction/reference-provenance.ts
|
|
10740
|
+
// src/deployment/secret-redaction/reference-provenance.ts
|
|
10815
10741
|
const passProvenanceOf = /* @__PURE__ */ new WeakMap();
|
|
10816
10742
|
const MAX_REFERENCE_VERSIONS = 8;
|
|
10817
10743
|
function provenanceTableFor(secrets) {
|
|
@@ -10911,8 +10837,7 @@ function snapshotPassProvenance(secrets) {
|
|
|
10911
10837
|
return out;
|
|
10912
10838
|
}
|
|
10913
10839
|
|
|
10914
|
-
|
|
10915
|
-
//#region src/deployment/secret-redaction/recording.ts
|
|
10840
|
+
// src/deployment/secret-redaction/recording.ts
|
|
10916
10841
|
const scopeMaps = /* @__PURE__ */ new WeakSet();
|
|
10917
10842
|
var WriteThroughSecrets = class extends Map {
|
|
10918
10843
|
pass;
|
|
@@ -10974,8 +10899,7 @@ function recordSecretResolution(secrets, expression, plaintext, options) {
|
|
|
10974
10899
|
if (options.pairEvidence) recordResolvedPair(secrets, expression, plaintext);
|
|
10975
10900
|
}
|
|
10976
10901
|
|
|
10977
|
-
|
|
10978
|
-
//#region src/deployment/secret-redaction/context.ts
|
|
10902
|
+
// src/deployment/secret-redaction/context.ts
|
|
10979
10903
|
const RULES_BY_PROVENANCE = {
|
|
10980
10904
|
"template-derived": TEMPLATE_DERIVED_RULES,
|
|
10981
10905
|
"template-sourced": TEMPLATE_SOURCED_RULES,
|
|
@@ -11010,8 +10934,7 @@ function shallowCopy(bag) {
|
|
|
11010
10934
|
return Array.isArray(bag) ? [...bag] : { ...bag };
|
|
11011
10935
|
}
|
|
11012
10936
|
|
|
11013
|
-
|
|
11014
|
-
//#region src/deployment/secret-redaction/positions.ts
|
|
10937
|
+
// src/deployment/secret-redaction/positions.ts
|
|
11015
10938
|
const SKELETON_WILDCARD = `${DYNAMIC_REFERENCE_INNER_CHAR}*`;
|
|
11016
10939
|
const MAX_SKELETON_WILDCARDS = 3;
|
|
11017
10940
|
const MAX_SKELETON_CANDIDATE_LENGTH = 512;
|
|
@@ -11303,8 +11226,7 @@ function positionByIntrinsicFrame(bag, source, secrets, secretExpressions, bagIs
|
|
|
11303
11226
|
}, bagIsSameGeneration);
|
|
11304
11227
|
}
|
|
11305
11228
|
|
|
11306
|
-
|
|
11307
|
-
//#region src/deployment/secret-redaction/pairs.ts
|
|
11229
|
+
// src/deployment/secret-redaction/pairs.ts
|
|
11308
11230
|
const resolvedPairsOf = /* @__PURE__ */ new WeakMap();
|
|
11309
11231
|
const CONFLICTING_PLAINTEXT = Symbol("conflicting plaintext");
|
|
11310
11232
|
function pairsFor(secrets) {
|
|
@@ -11435,8 +11357,7 @@ function carryRedactionMarks(from, to) {
|
|
|
11435
11357
|
return to;
|
|
11436
11358
|
}
|
|
11437
11359
|
|
|
11438
|
-
|
|
11439
|
-
//#region src/deployment/secret-redaction/unresolved-token-frame.ts
|
|
11360
|
+
// src/deployment/secret-redaction/unresolved-token-frame.ts
|
|
11440
11361
|
function liveMatchesUnresolvedTokenFrame(send, live, unresolvedTokens, secrets) {
|
|
11441
11362
|
const wildcards = dynamicReferenceSpans(send).filter((span) => unresolvedTokens.has(send.slice(span.start, span.end)));
|
|
11442
11363
|
if (wildcards.length === 0) return false;
|
|
@@ -11473,8 +11394,7 @@ function wildcardOverlapsResolvedPlaintext(send, wildcards, secrets) {
|
|
|
11473
11394
|
return false;
|
|
11474
11395
|
}
|
|
11475
11396
|
|
|
11476
|
-
|
|
11477
|
-
//#region src/deployment/secret-redaction/noecho-leaves.ts
|
|
11397
|
+
// src/deployment/secret-redaction/noecho-leaves.ts
|
|
11478
11398
|
const SUB_VARIABLE$2 = /\$\{([^}!][^}]*)\}/g;
|
|
11479
11399
|
function intrinsicKeyOf(node) {
|
|
11480
11400
|
const keys = Object.keys(node);
|
|
@@ -12004,8 +11924,7 @@ function passedNoEchoParametersOf(bag) {
|
|
|
12004
11924
|
return bag === void 0 ? void 0 : passedNoEchoParameters.get(bag);
|
|
12005
11925
|
}
|
|
12006
11926
|
|
|
12007
|
-
|
|
12008
|
-
//#region src/analyzer/template-parser.ts
|
|
11927
|
+
// src/analyzer/template-parser.ts
|
|
12009
11928
|
var TemplateParser = class {
|
|
12010
11929
|
logger = getLogger().child("TemplateParser");
|
|
12011
11930
|
getResourceIds(template) {
|
|
@@ -12179,8 +12098,7 @@ var TemplateParser = class {
|
|
|
12179
12098
|
}
|
|
12180
12099
|
};
|
|
12181
12100
|
|
|
12182
|
-
|
|
12183
|
-
//#region src/analyzer/lambda-vpc-deps.ts
|
|
12101
|
+
// src/analyzer/lambda-vpc-deps.ts
|
|
12184
12102
|
function extractLambdaVpcDeleteDeps(resources) {
|
|
12185
12103
|
const edges = [];
|
|
12186
12104
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -12227,8 +12145,7 @@ function collectRefIds(value, out) {
|
|
|
12227
12145
|
}
|
|
12228
12146
|
}
|
|
12229
12147
|
|
|
12230
|
-
|
|
12231
|
-
//#region src/analyzer/cdk-defensive-deps.ts
|
|
12148
|
+
// src/analyzer/cdk-defensive-deps.ts
|
|
12232
12149
|
const DEFENSIVE_DEPENDS_ON_TYPE_PAIRS = [
|
|
12233
12150
|
{
|
|
12234
12151
|
fromType: "AWS::IAM::Role",
|
|
@@ -12287,8 +12204,7 @@ function defensiveDependsOnToSkip(resource, template) {
|
|
|
12287
12204
|
return skip;
|
|
12288
12205
|
}
|
|
12289
12206
|
|
|
12290
|
-
|
|
12291
|
-
//#region src/analyzer/dag-builder.ts
|
|
12207
|
+
// src/analyzer/dag-builder.ts
|
|
12292
12208
|
const { Graph, alg } = graphlib;
|
|
12293
12209
|
const IAM_ROLE_POLICY_TYPES = /* @__PURE__ */ new Set([
|
|
12294
12210
|
"AWS::IAM::Policy",
|
|
@@ -12531,8 +12447,7 @@ var DagBuilder = class {
|
|
|
12531
12447
|
}
|
|
12532
12448
|
};
|
|
12533
12449
|
|
|
12534
|
-
|
|
12535
|
-
//#region src/utils/lambda-function-name.ts
|
|
12450
|
+
// src/utils/lambda-function-name.ts
|
|
12536
12451
|
function parseLambdaFunctionAddress(value) {
|
|
12537
12452
|
const full = /^arn:([^:]+):lambda:([^:]+):(\d{12}):function:([^:]+)$/.exec(value);
|
|
12538
12453
|
if (full) return {
|
|
@@ -12562,8 +12477,7 @@ function lambdaFunctionNameForMask(value) {
|
|
|
12562
12477
|
return /^(?:arn:[^:]+:lambda:[^:]+:\d{12}:function:|\d{12}:function:)?([A-Za-z0-9_-]+)(?::[^:]+)?$/.exec(value)?.[1] ?? canonicalLambdaFunctionName(value);
|
|
12563
12478
|
}
|
|
12564
12479
|
|
|
12565
|
-
|
|
12566
|
-
//#region src/analyzer/replacement-rules.ts
|
|
12480
|
+
// src/analyzer/replacement-rules.ts
|
|
12567
12481
|
function vpcInstanceTenancyChangeReplaces(oldValue, newValue) {
|
|
12568
12482
|
const tenancyOf = (v) => v == null ? "default" : String(v);
|
|
12569
12483
|
return tenancyOf(newValue) !== "default" && tenancyOf(newValue) !== tenancyOf(oldValue);
|
|
@@ -13156,8 +13070,7 @@ var ReplacementRulesRegistry = class {
|
|
|
13156
13070
|
}
|
|
13157
13071
|
};
|
|
13158
13072
|
|
|
13159
|
-
|
|
13160
|
-
//#region src/deployment/retry.ts
|
|
13073
|
+
// src/deployment/retry.ts
|
|
13161
13074
|
const IAM_PROPAGATION_INITIAL_DELAY_MS = 250;
|
|
13162
13075
|
const IAM_PROPAGATION_MAX_DELAY_MS = 2e3;
|
|
13163
13076
|
const IAM_PROPAGATION_MAX_RETRIES = 26;
|
|
@@ -13253,8 +13166,7 @@ function retryErrorClass(error) {
|
|
|
13253
13166
|
return parts.length > 0 ? `${name} (${parts.join(", ")})` : name;
|
|
13254
13167
|
}
|
|
13255
13168
|
|
|
13256
|
-
|
|
13257
|
-
//#region src/utils/concurrency-limiter.ts
|
|
13169
|
+
// src/utils/concurrency-limiter.ts
|
|
13258
13170
|
var BackgroundTaskCancelledError = class extends Error {
|
|
13259
13171
|
constructor() {
|
|
13260
13172
|
super("Background task cancelled");
|
|
@@ -13378,8 +13290,7 @@ function createConcurrencyLimiter(limit) {
|
|
|
13378
13290
|
};
|
|
13379
13291
|
}
|
|
13380
13292
|
|
|
13381
|
-
|
|
13382
|
-
//#region src/provisioning/describe-type.ts
|
|
13293
|
+
// src/provisioning/describe-type.ts
|
|
13383
13294
|
const describeTypeRetryDelays = {};
|
|
13384
13295
|
const MAX_THROTTLE_RETRIES = 4;
|
|
13385
13296
|
const DESCRIBE_TYPE_MAX_IN_FLIGHT = 20;
|
|
@@ -13436,8 +13347,7 @@ function hasNoRegistrySchema(resourceType) {
|
|
|
13436
13347
|
return resourceType === "AWS::CDK::Metadata" || resourceType === "AWS::CloudFormation::CustomResource" || resourceType.startsWith("Custom::");
|
|
13437
13348
|
}
|
|
13438
13349
|
|
|
13439
|
-
|
|
13440
|
-
//#region src/provisioning/create-only-paths.ts
|
|
13350
|
+
// src/provisioning/create-only-paths.ts
|
|
13441
13351
|
function parseCreateOnlyPropertyPointers(createOnly) {
|
|
13442
13352
|
const result = [];
|
|
13443
13353
|
if (!Array.isArray(createOnly)) return result;
|
|
@@ -13453,8 +13363,7 @@ function unescapeJsonPointerSegment$2(segment) {
|
|
|
13453
13363
|
return segment.replace(/~1/g, "/").replace(/~0/g, "~");
|
|
13454
13364
|
}
|
|
13455
13365
|
|
|
13456
|
-
|
|
13457
|
-
//#region src/provisioning/create-only-snapshot.generated.ts
|
|
13366
|
+
// src/provisioning/create-only-snapshot.generated.ts
|
|
13458
13367
|
const CREATE_ONLY_PATHS_SNAPSHOT = /* @__PURE__ */ new Map([
|
|
13459
13368
|
["AWS::ApiGateway::Account", []],
|
|
13460
13369
|
["AWS::ApiGateway::Authorizer", [["RestApiId"]]],
|
|
@@ -14047,8 +13956,7 @@ const CREATE_ONLY_PATHS_SNAPSHOT = /* @__PURE__ */ new Map([
|
|
|
14047
13956
|
["AWS::WAFv2::WebACL", [["Name"], ["Scope"]]]
|
|
14048
13957
|
]);
|
|
14049
13958
|
|
|
14050
|
-
|
|
14051
|
-
//#region src/provisioning/create-only-properties.ts
|
|
13959
|
+
// src/provisioning/create-only-properties.ts
|
|
14052
13960
|
const createOnlyPropertiesCache = /* @__PURE__ */ new Map();
|
|
14053
13961
|
const inFlightLookups = /* @__PURE__ */ new Map();
|
|
14054
13962
|
function getCreateOnlyPropertyPaths(resourceType) {
|
|
@@ -14168,8 +14076,7 @@ function parseCreateOnlyResponse(resourceType, schema) {
|
|
|
14168
14076
|
return result;
|
|
14169
14077
|
}
|
|
14170
14078
|
|
|
14171
|
-
|
|
14172
|
-
//#region src/provisioning/write-only-properties.ts
|
|
14079
|
+
// src/provisioning/write-only-properties.ts
|
|
14173
14080
|
const writeOnlyPropertiesCache = /* @__PURE__ */ new Map();
|
|
14174
14081
|
const settledWriteOnlyProperties = /* @__PURE__ */ new Map();
|
|
14175
14082
|
const settledUnreadableCreateOnlyPaths = /* @__PURE__ */ new Map();
|
|
@@ -14248,8 +14155,7 @@ function parseRegistrySchema(resourceType, schema) {
|
|
|
14248
14155
|
return parseJsonNamingNoBody(schema, "the DescribeType schema", (line) => getLogger().child("WriteOnlyProperties").debug(safeMsg`${resourceType}: ${line}`));
|
|
14249
14156
|
}
|
|
14250
14157
|
|
|
14251
|
-
|
|
14252
|
-
//#region src/deployment/replacement-name-holder/name-keys.ts
|
|
14158
|
+
// src/deployment/replacement-name-holder/name-keys.ts
|
|
14253
14159
|
const flat = (property) => ({ name: [[property]] });
|
|
14254
14160
|
function ownEntry$1(table, key) {
|
|
14255
14161
|
return Object.hasOwn(table, key) ? table[key] : void 0;
|
|
@@ -14446,8 +14352,7 @@ const SENT_NAME_REWRITTEN = {
|
|
|
14446
14352
|
}
|
|
14447
14353
|
};
|
|
14448
14354
|
|
|
14449
|
-
|
|
14450
|
-
//#region src/deployment/replacement-name-holder/holder-probe.ts
|
|
14355
|
+
// src/deployment/replacement-name-holder/holder-probe.ts
|
|
14451
14356
|
const SHARED_NAME_SPACES = [
|
|
14452
14357
|
/* @__PURE__ */ new Set(["AWS::DynamoDB::Table", "AWS::DynamoDB::GlobalTable"]),
|
|
14453
14358
|
/* @__PURE__ */ new Set([
|
|
@@ -14585,8 +14490,7 @@ const DERIVED_GENERATED_NAMES = {
|
|
|
14585
14490
|
"AWS::SSM::Parameter": derivedEntry("AWS::SSM::Parameter", "ssm-parameter-provider.ts")
|
|
14586
14491
|
};
|
|
14587
14492
|
|
|
14588
|
-
|
|
14589
|
-
//#region src/deployment/replacement-name-holder/rewritten.ts
|
|
14493
|
+
// src/deployment/replacement-name-holder/rewritten.ts
|
|
14590
14494
|
function replayPrefixChoice(input) {
|
|
14591
14495
|
const rewrite = ownEntry$1(SENT_NAME_REWRITTEN, input.resourceType);
|
|
14592
14496
|
if (rewrite === void 0 || input.via === "cc-api") return { kind: "not-applicable" };
|
|
@@ -14739,8 +14643,7 @@ function reverseReplacementTrustsGeneratedName(resourceType) {
|
|
|
14739
14643
|
return GENERATED_NAME_VERBATIM.has(resourceType);
|
|
14740
14644
|
}
|
|
14741
14645
|
|
|
14742
|
-
|
|
14743
|
-
//#region src/deployment/replacement-name-holder/holder.ts
|
|
14646
|
+
// src/deployment/replacement-name-holder/holder.ts
|
|
14744
14647
|
function recordSetHolds(requested, recorded, observed, newPhysicalId, r, v) {
|
|
14745
14648
|
const newRecord = `${v.holderRecord} (${r.shown(newPhysicalId)})`;
|
|
14746
14649
|
const wantName = valueAt(requested, ["Name"]);
|
|
@@ -14879,8 +14782,7 @@ function isPlainName(value) {
|
|
|
14879
14782
|
return !/\s/.test(value) && displayIdent(value, { maxCodePoints: 1152 }) === value;
|
|
14880
14783
|
}
|
|
14881
14784
|
|
|
14882
|
-
|
|
14883
|
-
//#region src/deployment/replacement-name-holder/deploy-name.ts
|
|
14785
|
+
// src/deployment/replacement-name-holder/deploy-name.ts
|
|
14884
14786
|
function nameValue(bag, property) {
|
|
14885
14787
|
const value = bag?.[property];
|
|
14886
14788
|
if (typeof value !== "string" || value === "" || value === "***") return void 0;
|
|
@@ -15028,8 +14930,7 @@ function probeFoundSameId(resourceType, a, b) {
|
|
|
15028
14930
|
return pa !== void 0 && pa === path(b);
|
|
15029
14931
|
}
|
|
15030
14932
|
|
|
15031
|
-
|
|
15032
|
-
//#region src/provisioning/config-shape.ts
|
|
14933
|
+
// src/provisioning/config-shape.ts
|
|
15033
14934
|
function readConfigString(container, key, fallback, containerPath, options) {
|
|
15034
14935
|
if (container === void 0 || container === null) return fallback;
|
|
15035
14936
|
if (!isPlainObject$10(container) || isUnresolvedIntrinsicContainer(container)) {
|
|
@@ -15162,8 +15063,7 @@ function describe(value) {
|
|
|
15162
15063
|
return typeof value === "object" ? "an object" : `a ${typeof value}`;
|
|
15163
15064
|
}
|
|
15164
15065
|
|
|
15165
|
-
|
|
15166
|
-
//#region src/provisioning/dynamodb-warm-throughput.ts
|
|
15066
|
+
// src/provisioning/dynamodb-warm-throughput.ts
|
|
15167
15067
|
const WARM_THROUGHPUT_MEMBERS = ["ReadUnitsPerSecond", "WriteUnitsPerSecond"];
|
|
15168
15068
|
function toFiniteNumber(value) {
|
|
15169
15069
|
if (typeof value === "number") return Number.isFinite(value) ? value : void 0;
|
|
@@ -15209,8 +15109,7 @@ function isWarmThroughputDecrease(desired, live) {
|
|
|
15209
15109
|
return sawDecrease;
|
|
15210
15110
|
}
|
|
15211
15111
|
|
|
15212
|
-
|
|
15213
|
-
//#region src/provisioning/stateful-types.ts
|
|
15112
|
+
// src/provisioning/stateful-types.ts
|
|
15214
15113
|
const STATEFUL_TYPES = /* @__PURE__ */ new Set([
|
|
15215
15114
|
"AWS::RDS::DBInstance",
|
|
15216
15115
|
"AWS::RDS::DBCluster",
|
|
@@ -15372,8 +15271,7 @@ function renderStatefulReason(reason) {
|
|
|
15372
15271
|
}
|
|
15373
15272
|
}
|
|
15374
15273
|
|
|
15375
|
-
|
|
15376
|
-
//#region src/deployment/recreate-target-readers.ts
|
|
15274
|
+
// src/deployment/recreate-target-readers.ts
|
|
15377
15275
|
async function findReplacedReadersOfRecreateTargets(input) {
|
|
15378
15276
|
const conditions = input.conditions;
|
|
15379
15277
|
const resources = Object.create(null);
|
|
@@ -15584,8 +15482,7 @@ function readsOnlyId(value, id) {
|
|
|
15584
15482
|
return !other && ids > 0;
|
|
15585
15483
|
}
|
|
15586
15484
|
|
|
15587
|
-
|
|
15588
|
-
//#region src/deployment/child-of-recreated-parent.ts
|
|
15485
|
+
// src/deployment/child-of-recreated-parent.ts
|
|
15589
15486
|
const LAMBDA_FUNCTION = "AWS::Lambda::Function";
|
|
15590
15487
|
const IAM_ROLE = "AWS::IAM::Role";
|
|
15591
15488
|
const IAM_USER = "AWS::IAM::User";
|
|
@@ -15910,8 +15807,7 @@ function withRecreatedAttachmentsDropped(input) {
|
|
|
15910
15807
|
} : void 0;
|
|
15911
15808
|
}
|
|
15912
15809
|
|
|
15913
|
-
|
|
15914
|
-
//#region src/provisioning/property-coverage.generated.ts
|
|
15810
|
+
// src/provisioning/property-coverage.generated.ts
|
|
15915
15811
|
const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
15916
15812
|
["AWS::ApiGateway::Account", {
|
|
15917
15813
|
handled: /* @__PURE__ */ new Set(["CloudWatchRoleArn"]),
|
|
@@ -16535,10 +16431,11 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
16535
16431
|
"SourceVersion",
|
|
16536
16432
|
"Tags",
|
|
16537
16433
|
"TimeoutInMinutes",
|
|
16434
|
+
"Triggers",
|
|
16538
16435
|
"Visibility",
|
|
16539
16436
|
"VpcConfig"
|
|
16540
16437
|
]),
|
|
16541
|
-
silentDrop: /* @__PURE__ */ new Map(
|
|
16438
|
+
silentDrop: /* @__PURE__ */ new Map(),
|
|
16542
16439
|
createOnlyDrops: /* @__PURE__ */ new Set(),
|
|
16543
16440
|
readOnly: /* @__PURE__ */ new Set(["Arn"]),
|
|
16544
16441
|
ccRouteUnavailable: true
|
|
@@ -16639,6 +16536,7 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
16639
16536
|
"DeletionProtection",
|
|
16640
16537
|
"EnableCloudwatchLogsExports",
|
|
16641
16538
|
"EngineVersion",
|
|
16539
|
+
"GlobalClusterIdentifier",
|
|
16642
16540
|
"KmsKeyId",
|
|
16643
16541
|
"ManageMasterUserPassword",
|
|
16644
16542
|
"MasterUsername",
|
|
@@ -16656,7 +16554,6 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
16656
16554
|
"VpcSecurityGroupIds"
|
|
16657
16555
|
]),
|
|
16658
16556
|
silentDrop: /* @__PURE__ */ new Map([
|
|
16659
|
-
["GlobalClusterIdentifier", "not yet implemented by cdkd"],
|
|
16660
16557
|
["RestoreToTime", "not yet implemented by cdkd"],
|
|
16661
16558
|
["RestoreType", "not yet implemented by cdkd"],
|
|
16662
16559
|
["SnapshotIdentifier", "not yet implemented by cdkd"],
|
|
@@ -17228,6 +17125,7 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
17228
17125
|
"PreferredAvailabilityZone",
|
|
17229
17126
|
"PreferredAvailabilityZones",
|
|
17230
17127
|
"PreferredMaintenanceWindow",
|
|
17128
|
+
"SnapshotArns",
|
|
17231
17129
|
"SnapshotName",
|
|
17232
17130
|
"SnapshotRetentionLimit",
|
|
17233
17131
|
"SnapshotWindow",
|
|
@@ -17235,8 +17133,8 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
17235
17133
|
"TransitEncryptionEnabled",
|
|
17236
17134
|
"VpcSecurityGroupIds"
|
|
17237
17135
|
]),
|
|
17238
|
-
silentDrop: /* @__PURE__ */ new Map([["CacheSecurityGroupNames", "EC2-Classic-only — use VpcSecurityGroupIds for VPC-deployed clusters (EC2-Classic retired 2022-08-15)"]
|
|
17239
|
-
createOnlyDrops: /* @__PURE__ */ new Set(
|
|
17136
|
+
silentDrop: /* @__PURE__ */ new Map([["CacheSecurityGroupNames", "EC2-Classic-only — use VpcSecurityGroupIds for VPC-deployed clusters (EC2-Classic retired 2022-08-15)"]]),
|
|
17137
|
+
createOnlyDrops: /* @__PURE__ */ new Set(),
|
|
17240
17138
|
readOnly: /* @__PURE__ */ new Set(["ConfigurationEndpoint", "RedisEndpoint"]),
|
|
17241
17139
|
ccRouteUnavailable: false
|
|
17242
17140
|
}],
|
|
@@ -17746,6 +17644,7 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
17746
17644
|
"ElasticsearchDestinationConfiguration",
|
|
17747
17645
|
"ExtendedS3DestinationConfiguration",
|
|
17748
17646
|
"HttpEndpointDestinationConfiguration",
|
|
17647
|
+
"IcebergDestinationConfiguration",
|
|
17749
17648
|
"KinesisStreamSourceConfiguration",
|
|
17750
17649
|
"RedshiftDestinationConfiguration",
|
|
17751
17650
|
"S3DestinationConfiguration",
|
|
@@ -17754,7 +17653,6 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
17754
17653
|
]),
|
|
17755
17654
|
silentDrop: /* @__PURE__ */ new Map([
|
|
17756
17655
|
["DatabaseSourceConfiguration", "not yet implemented by cdkd"],
|
|
17757
|
-
["IcebergDestinationConfiguration", "not yet implemented by cdkd"],
|
|
17758
17656
|
["MSKSourceConfiguration", "not yet implemented by cdkd"],
|
|
17759
17657
|
["SnowflakeDestinationConfiguration", "not yet implemented by cdkd"]
|
|
17760
17658
|
]),
|
|
@@ -18234,14 +18132,19 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18234
18132
|
["AWS::RDS::DBInstance", {
|
|
18235
18133
|
handled: /* @__PURE__ */ new Set([
|
|
18236
18134
|
"AllocatedStorage",
|
|
18135
|
+
"AllowMajorVersionUpgrade",
|
|
18237
18136
|
"AutoMinorVersionUpgrade",
|
|
18238
18137
|
"BackupRetentionPeriod",
|
|
18239
18138
|
"CACertificateIdentifier",
|
|
18139
|
+
"CertificateRotationRestart",
|
|
18240
18140
|
"CopyTagsToSnapshot",
|
|
18141
|
+
"DatabaseInsightsMode",
|
|
18241
18142
|
"DBClusterIdentifier",
|
|
18242
18143
|
"DBInstanceClass",
|
|
18243
18144
|
"DBInstanceIdentifier",
|
|
18145
|
+
"DBParameterGroupName",
|
|
18244
18146
|
"DBSubnetGroupName",
|
|
18147
|
+
"DedicatedLogVolume",
|
|
18245
18148
|
"DeletionProtection",
|
|
18246
18149
|
"EnableIAMDatabaseAuthentication",
|
|
18247
18150
|
"EnablePerformanceInsights",
|
|
@@ -18249,6 +18152,7 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18249
18152
|
"EngineVersion",
|
|
18250
18153
|
"Iops",
|
|
18251
18154
|
"KmsKeyId",
|
|
18155
|
+
"LicenseModel",
|
|
18252
18156
|
"ManageMasterUserPassword",
|
|
18253
18157
|
"MasterUsername",
|
|
18254
18158
|
"MasterUserPassword",
|
|
@@ -18257,12 +18161,14 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18257
18161
|
"MonitoringInterval",
|
|
18258
18162
|
"MonitoringRoleArn",
|
|
18259
18163
|
"MultiAZ",
|
|
18164
|
+
"NetworkType",
|
|
18260
18165
|
"OptionGroupName",
|
|
18261
18166
|
"PerformanceInsightsKMSKeyId",
|
|
18262
18167
|
"PerformanceInsightsRetentionPeriod",
|
|
18263
18168
|
"Port",
|
|
18264
18169
|
"PreferredBackupWindow",
|
|
18265
18170
|
"PreferredMaintenanceWindow",
|
|
18171
|
+
"PromotionTier",
|
|
18266
18172
|
"PubliclyAccessible",
|
|
18267
18173
|
"StorageEncrypted",
|
|
18268
18174
|
"StorageThroughput",
|
|
@@ -18272,7 +18178,6 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18272
18178
|
]),
|
|
18273
18179
|
silentDrop: /* @__PURE__ */ new Map([
|
|
18274
18180
|
["AdditionalStorageVolumes", "not yet implemented by cdkd"],
|
|
18275
|
-
["AllowMajorVersionUpgrade", "not yet implemented by cdkd"],
|
|
18276
18181
|
["ApplyImmediately", "cdkd always applies modifications immediately (rds:ModifyDBInstance.ApplyImmediately=true is hardcoded); users wanting maintenance-window deferral should run aws rds modify-db-instance directly"],
|
|
18277
18182
|
["AssociatedRoles", "not yet implemented by cdkd"],
|
|
18278
18183
|
["AutomaticBackupReplicationKmsKeyId", "not yet implemented by cdkd"],
|
|
@@ -18280,17 +18185,13 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18280
18185
|
["AutomaticBackupReplicationRetentionPeriod", "not yet implemented by cdkd"],
|
|
18281
18186
|
["AvailabilityZone", "not yet implemented by cdkd"],
|
|
18282
18187
|
["BackupTarget", "not yet implemented by cdkd"],
|
|
18283
|
-
["CertificateRotationRestart", "not yet implemented by cdkd"],
|
|
18284
18188
|
["CharacterSetName", "not yet implemented by cdkd"],
|
|
18285
18189
|
["CustomIAMInstanceProfile", "not yet implemented by cdkd"],
|
|
18286
|
-
["DatabaseInsightsMode", "not yet implemented by cdkd"],
|
|
18287
18190
|
["DBClusterSnapshotIdentifier", "not yet implemented by cdkd"],
|
|
18288
18191
|
["DBName", "not yet implemented by cdkd"],
|
|
18289
|
-
["DBParameterGroupName", "not yet implemented by cdkd"],
|
|
18290
18192
|
["DBSecurityGroups", "EC2-Classic-only feature retired by AWS (2022-08-15); new accounts cannot use this — use VPCSecurityGroups instead"],
|
|
18291
18193
|
["DBSnapshotIdentifier", "not yet implemented by cdkd"],
|
|
18292
18194
|
["DBSystemId", "not yet implemented by cdkd"],
|
|
18293
|
-
["DedicatedLogVolume", "not yet implemented by cdkd"],
|
|
18294
18195
|
["DeleteAutomatedBackups", "delete-time flag, sent on the delete when the record carries it; kept unhandled so a template declaring it keeps its Cloud Control route. Final snapshots are governed by DeletionPolicy: Snapshot, which this flag does not control"],
|
|
18295
18196
|
["Domain", "not yet implemented by cdkd"],
|
|
18296
18197
|
["DomainAuthSecretArn", "not yet implemented by cdkd"],
|
|
@@ -18300,12 +18201,9 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18300
18201
|
["DomainOu", "not yet implemented by cdkd"],
|
|
18301
18202
|
["EnableCloudwatchLogsExports", "not yet implemented by cdkd"],
|
|
18302
18203
|
["EngineLifecycleSupport", "not yet implemented by cdkd"],
|
|
18303
|
-
["LicenseModel", "not yet implemented by cdkd"],
|
|
18304
18204
|
["MasterUserAuthenticationType", "not yet implemented by cdkd"],
|
|
18305
18205
|
["NcharCharacterSetName", "not yet implemented by cdkd"],
|
|
18306
|
-
["NetworkType", "not yet implemented by cdkd"],
|
|
18307
18206
|
["ProcessorFeatures", "not yet implemented by cdkd"],
|
|
18308
|
-
["PromotionTier", "not yet implemented by cdkd"],
|
|
18309
18207
|
["ReplicaMode", "not yet implemented by cdkd"],
|
|
18310
18208
|
["RestoreTime", "not yet implemented by cdkd"],
|
|
18311
18209
|
["SourceDBClusterIdentifier", "not yet implemented by cdkd"],
|
|
@@ -18824,8 +18722,7 @@ const PROPERTY_COVERAGE_BY_TYPE = /* @__PURE__ */ new Map([
|
|
|
18824
18722
|
}]
|
|
18825
18723
|
]);
|
|
18826
18724
|
|
|
18827
|
-
|
|
18828
|
-
//#region src/provisioning/unsupported-types.generated.ts
|
|
18725
|
+
// src/provisioning/unsupported-types.generated.ts
|
|
18829
18726
|
const NON_PROVISIONABLE_TYPES = /* @__PURE__ */ new Set([
|
|
18830
18727
|
"Alexa::ASK::Skill",
|
|
18831
18728
|
"AWS::AmazonMQ::ConfigurationAssociation",
|
|
@@ -19158,8 +19055,7 @@ const NON_PROVISIONABLE_TYPES = /* @__PURE__ */ new Set([
|
|
|
19158
19055
|
"AWS::WorkSpaces::WorkspaceImage"
|
|
19159
19056
|
]);
|
|
19160
19057
|
|
|
19161
|
-
|
|
19162
|
-
//#region src/provisioning/unsupported-types.ts
|
|
19058
|
+
// src/provisioning/unsupported-types.ts
|
|
19163
19059
|
function isNonProvisionable(resourceType) {
|
|
19164
19060
|
return NON_PROVISIONABLE_TYPES.has(resourceType);
|
|
19165
19061
|
}
|
|
@@ -19192,8 +19088,7 @@ function unsupportedTypeIssueUrl(resourceType) {
|
|
|
19192
19088
|
return `https://github.com/go-to-k/cdkd/issues/new?title=${encodeURIComponent(`Support resource type ${resourceType}`)}&labels=resource-support`;
|
|
19193
19089
|
}
|
|
19194
19090
|
|
|
19195
|
-
|
|
19196
|
-
//#region src/provisioning/property-coverage.ts
|
|
19091
|
+
// src/provisioning/property-coverage.ts
|
|
19197
19092
|
function getPropertyCoverage(resourceType) {
|
|
19198
19093
|
return PROPERTY_COVERAGE_BY_TYPE.get(resourceType);
|
|
19199
19094
|
}
|
|
@@ -19335,8 +19230,7 @@ function findUnrecognizedProperties(resourceType, templateProperties) {
|
|
|
19335
19230
|
return unrecognized.sort((a, b) => a.localeCompare(b));
|
|
19336
19231
|
}
|
|
19337
19232
|
|
|
19338
|
-
|
|
19339
|
-
//#region src/state/malformed-resources-bag.ts
|
|
19233
|
+
// src/state/malformed-resources-bag.ts
|
|
19340
19234
|
const UNREADABLE_RESOURCES_MAP_ROW = "(resources map)";
|
|
19341
19235
|
const STATE_RESOURCES_MALFORMED = "STATE_RESOURCES_MALFORMED";
|
|
19342
19236
|
function hasReadableResources(state) {
|
|
@@ -20145,8 +20039,7 @@ function malformedOrphansForOrphanRefusalMessage(rawStackName, rawRegion, logica
|
|
|
20145
20039
|
return orphanRefusal(stackName, region, recovery, `${stackClause(stackName, region)} holds ${logicalIds.length} rollback-orphan record(s) in 'orphans' that cannot be read — ${namedOrphanRows(logicalIds)} — because the record has no string 'logicalId' or shares it with another row, or its 'state' is not an object, names no resource type, has no non-empty string 'physicalId', or holds a 'properties' or 'attributes' map that is not an object. The record is malformed or truncated. ${verbatim} Those records are not inert: they are what the next 'cdkd deploy' may re-adopt into 'resources' and what 'cdkd diff' previews for adoption, so continuing would report success over damage the next command meets.`, "'cdkd orphan' cannot remove such a record itself: it is not in 'resources', so it has no construct path. Repair the record by hand rather than deleting it — it is the only record that an earlier failed deploy left its resource live in AWS.", ORPHANS_DROP_CAVEAT);
|
|
20146
20040
|
}
|
|
20147
20041
|
|
|
20148
|
-
|
|
20149
|
-
//#region src/deployment/assumed-conditions.ts
|
|
20042
|
+
// src/deployment/assumed-conditions.ts
|
|
20150
20043
|
const assumedConditionNames = /* @__PURE__ */ new WeakMap();
|
|
20151
20044
|
function recordAssumedConditions(conditions, assumed) {
|
|
20152
20045
|
assumedConditionNames.set(conditions, assumed);
|
|
@@ -20155,8 +20048,7 @@ function conditionsAssumedFalse(conditions) {
|
|
|
20155
20048
|
return assumedConditionNames.get(conditions) ?? /* @__PURE__ */ new Set();
|
|
20156
20049
|
}
|
|
20157
20050
|
|
|
20158
|
-
|
|
20159
|
-
//#region src/deployment/noecho-declared.ts
|
|
20051
|
+
// src/deployment/noecho-declared.ts
|
|
20160
20052
|
function isNoEchoDeclared(noEcho) {
|
|
20161
20053
|
return noEcho === true || noEcho === "true";
|
|
20162
20054
|
}
|
|
@@ -20164,8 +20056,7 @@ function declaresNoEcho(definition) {
|
|
|
20164
20056
|
return definition !== null && typeof definition === "object" && isNoEchoDeclared(definition.NoEcho);
|
|
20165
20057
|
}
|
|
20166
20058
|
|
|
20167
|
-
|
|
20168
|
-
//#region src/deployment/masked-property-fingerprints.ts
|
|
20059
|
+
// src/deployment/masked-property-fingerprints.ts
|
|
20169
20060
|
const FINGERPRINT_LAYOUT$1 = 1;
|
|
20170
20061
|
const INPUT_FINGERPRINT_LAYOUT = 2;
|
|
20171
20062
|
function canonicalJson$4(value) {
|
|
@@ -21078,8 +20969,7 @@ function backfillMaskedPropertyFingerprints(resources, template, noEchoParameter
|
|
|
21078
20969
|
return stamped;
|
|
21079
20970
|
}
|
|
21080
20971
|
|
|
21081
|
-
|
|
21082
|
-
//#region src/deployment/drain-budget.ts
|
|
20972
|
+
// src/deployment/drain-budget.ts
|
|
21083
20973
|
const drainDeadlines = new AsyncLocalStorage();
|
|
21084
20974
|
async function withSharedDrainBudget(fn) {
|
|
21085
20975
|
if (drainDeadlines.getStore() !== void 0) return await fn();
|
|
@@ -21090,8 +20980,7 @@ async function withSharedDrainBudget(fn) {
|
|
|
21090
20980
|
}, fn);
|
|
21091
20981
|
}
|
|
21092
20982
|
|
|
21093
|
-
|
|
21094
|
-
//#region src/provisioning/providers/wafv2-arn.ts
|
|
20983
|
+
// src/provisioning/providers/wafv2-arn.ts
|
|
21095
20984
|
function parseWebACLArn(arn) {
|
|
21096
20985
|
const segments = arn.split(":").slice(5).join(":").split("/");
|
|
21097
20986
|
const scopeRaw = segments[0];
|
|
@@ -21103,8 +20992,7 @@ function parseWebACLArn(arn) {
|
|
|
21103
20992
|
};
|
|
21104
20993
|
}
|
|
21105
20994
|
|
|
21106
|
-
|
|
21107
|
-
//#region src/deployment/intrinsic-resolver/ref-values.ts
|
|
20995
|
+
// src/deployment/intrinsic-resolver/ref-values.ts
|
|
21108
20996
|
const AWS_NO_VALUE = Symbol("AWS::NoValue");
|
|
21109
20997
|
const REF_RETURNS_SEGMENT_AFTER_PIPE = /* @__PURE__ */ new Set([
|
|
21110
20998
|
"AWS::ApiGateway::Model",
|
|
@@ -21327,8 +21215,7 @@ function buildUnknownIntrinsicError(key) {
|
|
|
21327
21215
|
return /* @__PURE__ */ new Error(`Unsupported CloudFormation intrinsic function ${shown}: cdkd does not support resolving it yet. Deploying this template would produce a broken value. Please request support by opening an issue: ${issueUrl}`);
|
|
21328
21216
|
}
|
|
21329
21217
|
|
|
21330
|
-
|
|
21331
|
-
//#region src/deployment/stale-attribute-heal.ts
|
|
21218
|
+
// src/deployment/stale-attribute-heal.ts
|
|
21332
21219
|
var StaleAttributeMissSignal = class StaleAttributeMissSignal extends Error {
|
|
21333
21220
|
constructor() {
|
|
21334
21221
|
super("stale attribute miss (internal control flow — must not escape resolveGetAtt)");
|
|
@@ -21373,8 +21260,7 @@ function mergeHealedAttributes(recorded, healed, isStaleValue) {
|
|
|
21373
21260
|
return merged ?? recorded;
|
|
21374
21261
|
}
|
|
21375
21262
|
|
|
21376
|
-
|
|
21377
|
-
//#region src/deployment/intrinsic-resolver/context.ts
|
|
21263
|
+
// src/deployment/intrinsic-resolver/context.ts
|
|
21378
21264
|
function withoutProducerRegions(context) {
|
|
21379
21265
|
if (context?.producerRegions === void 0) return context;
|
|
21380
21266
|
const { producerRegions: _stripped, ...rest } = context;
|
|
@@ -21473,8 +21359,7 @@ const cachedVpcDefaultSecurityGroups = Object.create(null);
|
|
|
21473
21359
|
const cachedCloudFrontDomainNames = Object.create(null);
|
|
21474
21360
|
const cachedSecurityGroupVpcIds = Object.create(null);
|
|
21475
21361
|
|
|
21476
|
-
|
|
21477
|
-
//#region src/deployment/intrinsic-resolver/account-drain.ts
|
|
21362
|
+
// src/deployment/intrinsic-resolver/account-drain.ts
|
|
21478
21363
|
function effectiveAccountInfoRegion(overrideRegion) {
|
|
21479
21364
|
return canonicalizeRegion(overrideRegion || process.env["AWS_REGION"]) || "us-east-1";
|
|
21480
21365
|
}
|
|
@@ -21657,8 +21542,7 @@ function embedsAccountId(value, accountId) {
|
|
|
21657
21542
|
return false;
|
|
21658
21543
|
}
|
|
21659
21544
|
|
|
21660
|
-
|
|
21661
|
-
//#region src/deployment/intrinsic-resolver/support.ts
|
|
21545
|
+
// src/deployment/intrinsic-resolver/support.ts
|
|
21662
21546
|
function collectReferencedParameterNames(template) {
|
|
21663
21547
|
const parser = new TemplateParser();
|
|
21664
21548
|
const referenced = /* @__PURE__ */ new Set();
|
|
@@ -21744,8 +21628,7 @@ function quotedRender(rendered, quote, described = "(not shown: it is not a plai
|
|
|
21744
21628
|
return QUOTABLE_RENDER.test(rendered) ? `${quote}${rendered}${quote}` : described;
|
|
21745
21629
|
}
|
|
21746
21630
|
|
|
21747
|
-
|
|
21748
|
-
//#region src/deployment/intrinsic-resolver/masking.ts
|
|
21631
|
+
// src/deployment/intrinsic-resolver/masking.ts
|
|
21749
21632
|
function maskSecretsRaw(resolver, text, context) {
|
|
21750
21633
|
const registered = registeredLogTwin(resolver, text, context);
|
|
21751
21634
|
const needled = maskNeedlesForLog(resolver, text, context);
|
|
@@ -21915,8 +21798,7 @@ function rememberLogTwin(resolver, context, result, twin) {
|
|
|
21915
21798
|
twins.set(result, existing === void 0 || existing === twin ? twin : "***");
|
|
21916
21799
|
}
|
|
21917
21800
|
|
|
21918
|
-
|
|
21919
|
-
//#region src/deployment/intrinsic-resolver/masking-display.ts
|
|
21801
|
+
// src/deployment/intrinsic-resolver/masking-display.ts
|
|
21920
21802
|
function maskValueLeaves(masker, value, context) {
|
|
21921
21803
|
const done = /* @__PURE__ */ new Map();
|
|
21922
21804
|
const walk = (node) => {
|
|
@@ -21960,8 +21842,7 @@ function displayLeaf(resolver, value, context) {
|
|
|
21960
21842
|
return displayMasked(resolver, logTextOfLeaf(resolver, value, context), context);
|
|
21961
21843
|
}
|
|
21962
21844
|
|
|
21963
|
-
|
|
21964
|
-
//#region src/deployment/secret-region-classification.ts
|
|
21845
|
+
// src/deployment/secret-region-classification.ts
|
|
21965
21846
|
const REPLAY_SECRET_SERVICES = /* @__PURE__ */ new Set([
|
|
21966
21847
|
"secretsmanager",
|
|
21967
21848
|
"ssm",
|
|
@@ -22042,8 +21923,7 @@ function classifyRecordedSecretRegion(expression, consumerRegion, importedProduc
|
|
|
22042
21923
|
};
|
|
22043
21924
|
}
|
|
22044
21925
|
|
|
22045
|
-
|
|
22046
|
-
//#region src/deployment/intrinsic-resolver/cfn-fallback.ts
|
|
21926
|
+
// src/deployment/intrinsic-resolver/cfn-fallback.ts
|
|
22047
21927
|
var CfnFallbackCache = class {
|
|
22048
21928
|
cfnExportsPromises = /* @__PURE__ */ new Map();
|
|
22049
21929
|
cfnStackOutputsCache = /* @__PURE__ */ new Map();
|
|
@@ -22126,8 +22006,7 @@ function describeAvailableOutputs(masker, keys, context) {
|
|
|
22126
22006
|
return hidden > 0 ? `${rendered} (+${hidden} more)` : rendered;
|
|
22127
22007
|
}
|
|
22128
22008
|
|
|
22129
|
-
|
|
22130
|
-
//#region src/utils/caller-credentials.ts
|
|
22009
|
+
// src/utils/caller-credentials.ts
|
|
22131
22010
|
const AWS_CREDENTIAL_ENV_KEYS = [
|
|
22132
22011
|
"AWS_ACCESS_KEY_ID",
|
|
22133
22012
|
"AWS_SECRET_ACCESS_KEY",
|
|
@@ -22164,8 +22043,7 @@ function applyCallerIdentityCredentials(env) {
|
|
|
22164
22043
|
else delete env["AWS_SESSION_TOKEN"];
|
|
22165
22044
|
}
|
|
22166
22045
|
|
|
22167
|
-
|
|
22168
|
-
//#region src/utils/role-arn.ts
|
|
22046
|
+
// src/utils/role-arn.ts
|
|
22169
22047
|
const crossAccountCredentialsCache = /* @__PURE__ */ new Map();
|
|
22170
22048
|
const CRED_EXPIRY_SAFETY_MS = 6e4;
|
|
22171
22049
|
const IAM_ROLE_ARN_RE = /^arn:(aws[a-z0-9-]*):iam::(\d{12}):role\/[\w+=,.@-]+(?:\/[\w+=,.@-]+)*$/;
|
|
@@ -22298,8 +22176,7 @@ async function applyRoleArnIfSet(opts) {
|
|
|
22298
22176
|
}
|
|
22299
22177
|
}
|
|
22300
22178
|
|
|
22301
|
-
|
|
22302
|
-
//#region src/deployment/intrinsic-resolver/stack-state.ts
|
|
22179
|
+
// src/deployment/intrinsic-resolver/stack-state.ts
|
|
22303
22180
|
async function getSameAccountStackState(stackName, region, context) {
|
|
22304
22181
|
if (!context.stateBackend) throw markNonRetryable(/* @__PURE__ */ new Error("Fn::GetStackOutput: state backend is required for cross-stack references"));
|
|
22305
22182
|
return context.stateBackend.getState(stackName, region);
|
|
@@ -22338,8 +22215,7 @@ async function getCrossAccountStackState(roleArn, stackName, region, context) {
|
|
|
22338
22215
|
}).getState(stackName, region);
|
|
22339
22216
|
}
|
|
22340
22217
|
|
|
22341
|
-
|
|
22342
|
-
//#region src/deployment/reference-provenance-record.ts
|
|
22218
|
+
// src/deployment/reference-provenance-record.ts
|
|
22343
22219
|
const SSM_VERSION = /^[0-9]{1,10}$/;
|
|
22344
22220
|
const SECRETS_MANAGER_VERSION = /^[A-Za-z0-9_+=.@/-]{32,64}$/;
|
|
22345
22221
|
function referenceTokensIn(value, into = /* @__PURE__ */ new Set()) {
|
|
@@ -22538,8 +22414,7 @@ function withReferenceProvenance(record, field) {
|
|
|
22538
22414
|
};
|
|
22539
22415
|
}
|
|
22540
22416
|
|
|
22541
|
-
|
|
22542
|
-
//#region src/deployment/intrinsic-resolver/recorded-reference-routes.ts
|
|
22417
|
+
// src/deployment/intrinsic-resolver/recorded-reference-routes.ts
|
|
22543
22418
|
function tokensOf(value) {
|
|
22544
22419
|
const out = /* @__PURE__ */ new Set();
|
|
22545
22420
|
for (const leaf of wholeStringLeavesOf(value)) for (const token of dynamicReferenceTokens(leaf)) out.add(token);
|
|
@@ -22687,8 +22562,7 @@ async function rebuildByToken(value, resolveToken) {
|
|
|
22687
22562
|
return value;
|
|
22688
22563
|
}
|
|
22689
22564
|
|
|
22690
|
-
|
|
22691
|
-
//#region src/deployment/intrinsic-resolver/cross-stack.ts
|
|
22565
|
+
// src/deployment/intrinsic-resolver/cross-stack.ts
|
|
22692
22566
|
async function reresolveCrossStackValue(resolver, value, producerRegion, context, origin, sourceKey, producerOutput, producerRegionLogText) {
|
|
22693
22567
|
if (context.crossStackReads !== void 0 && producerOutput !== void 0 && producerOutput.crossAccount !== true && sourceKey !== void 0) context.crossStackReads.set(sourceKey, {
|
|
22694
22568
|
stackName: producerOutput.stackName,
|
|
@@ -22926,8 +22800,7 @@ function physicalIdsOf(state) {
|
|
|
22926
22800
|
return ids;
|
|
22927
22801
|
}
|
|
22928
22802
|
|
|
22929
|
-
|
|
22930
|
-
//#region src/deployment/intrinsic-resolver/cdk-cross-account-ref.ts
|
|
22803
|
+
// src/deployment/intrinsic-resolver/cdk-cross-account-ref.ts
|
|
22931
22804
|
function producerLookupOver(stacks) {
|
|
22932
22805
|
return (stackName, account, region) => stacks.find((s) => s.stackName === stackName && s.account === account && sameRegion(s.region, region));
|
|
22933
22806
|
}
|
|
@@ -23097,8 +22970,7 @@ function refuseUnreadableCdkCrossAccountRefs(refs, deployed, consumerOf, lookup)
|
|
|
23097
22970
|
}
|
|
23098
22971
|
}
|
|
23099
22972
|
|
|
23100
|
-
|
|
23101
|
-
//#region src/deployment/intrinsic-resolver/stack-output.ts
|
|
22973
|
+
// src/deployment/intrinsic-resolver/stack-output.ts
|
|
23102
22974
|
async function resolveGetStackOutput(resolver, arg, context) {
|
|
23103
22975
|
if (!arg || typeof arg !== "object" || Array.isArray(arg)) throw markNonRetryable(/* @__PURE__ */ new Error(`Fn::GetStackOutput: argument must be an object with StackName/OutputName/Region/RoleArn, got ${arg === null ? "null" : Array.isArray(arg) ? "array" : typeof arg}`));
|
|
23104
22976
|
const args = arg;
|
|
@@ -23285,8 +23157,7 @@ function namedRequestMasks(resolver, pairs, context) {
|
|
|
23285
23157
|
};
|
|
23286
23158
|
}
|
|
23287
23159
|
|
|
23288
|
-
|
|
23289
|
-
//#region src/deployment/intrinsic-resolver/dynamic-ref-lookups.ts
|
|
23160
|
+
// src/deployment/intrinsic-resolver/dynamic-ref-lookups.ts
|
|
23290
23161
|
async function resolveSecretsManagerReference(resolver, inner, context, nameLogText, versionOut, pinVersion) {
|
|
23291
23162
|
const afterService = inner.substring(15);
|
|
23292
23163
|
let secretId;
|
|
@@ -23395,8 +23266,7 @@ function withoutSsmSelector(parameterName) {
|
|
|
23395
23266
|
return selector < 0 ? parameterName : parameterName.slice(0, selector);
|
|
23396
23267
|
}
|
|
23397
23268
|
|
|
23398
|
-
|
|
23399
|
-
//#region src/deployment/intrinsic-resolver/dynamic-refs.ts
|
|
23269
|
+
// src/deployment/intrinsic-resolver/dynamic-refs.ts
|
|
23400
23270
|
var DynamicReferenceCache = class {
|
|
23401
23271
|
cachedDynamicReferences = /* @__PURE__ */ new Map();
|
|
23402
23272
|
warnedUnrecognizedSsmTypes = /* @__PURE__ */ new Set();
|
|
@@ -23596,8 +23466,7 @@ async function resolveDynamicReferencesWithLogTwin(resolver, value, logTwin, con
|
|
|
23596
23466
|
};
|
|
23597
23467
|
}
|
|
23598
23468
|
|
|
23599
|
-
|
|
23600
|
-
//#region src/utils/s3-endpoints.ts
|
|
23469
|
+
// src/utils/s3-endpoints.ts
|
|
23601
23470
|
const S3_WEBSITE_ENDPOINT_LEGACY_DASH_REGIONS = /* @__PURE__ */ new Set([
|
|
23602
23471
|
"ap-northeast-1",
|
|
23603
23472
|
"ap-southeast-1",
|
|
@@ -23629,8 +23498,7 @@ function s3BucketWebsiteUrl(bucketName, region) {
|
|
|
23629
23498
|
return `http://${bucketName}.s3-website${S3_WEBSITE_ENDPOINT_LEGACY_DASH_REGIONS.has(folded) ? "-" : "."}${folded}.${urlSuffix}`;
|
|
23630
23499
|
}
|
|
23631
23500
|
|
|
23632
|
-
|
|
23633
|
-
//#region src/deployment/intrinsic-resolver/getatt-heal.ts
|
|
23501
|
+
// src/deployment/intrinsic-resolver/getatt-heal.ts
|
|
23634
23502
|
function staleRecordRemedy(resolver, outcome, context) {
|
|
23635
23503
|
const touch = "change any property of the resource so its next update re-records the attributes, or re-import it with 'cdkd import'";
|
|
23636
23504
|
if (outcome === void 0) return `Run 'cdkd deploy': it re-reads a stale record's attributes from AWS and heals the record. Otherwise ${touch}.`;
|
|
@@ -23761,8 +23629,7 @@ function healMaskedOwnIdAttribute(resolver, logicalId, resource, attributeName,
|
|
|
23761
23629
|
})();
|
|
23762
23630
|
}
|
|
23763
23631
|
|
|
23764
|
-
|
|
23765
|
-
//#region src/deployment/intrinsic-resolver/getatt-refusals.ts
|
|
23632
|
+
// src/deployment/intrinsic-resolver/getatt-refusals.ts
|
|
23766
23633
|
function refuseUnservedAttribute(resolver, site) {
|
|
23767
23634
|
const { logicalId, attributeName, resourceType, physicalId, context, observed, remedy } = site;
|
|
23768
23635
|
throw new IntrinsicResolutionRefusalError(`Cannot resolve Fn::GetAtt [${displayMasked(resolver, logicalId, context)}, ${displayMasked(resolver, attributeName, context)}] for ${displayMasked(resolver, resourceType, context)}: ${observed}. The physical id ${quotedRender(displayMasked(resolver, physicalId, context), "\"")} is not a usable ${displayMasked(resolver, attributeName, context)}, so cdkd refuses to substitute it. ${remedy}`);
|
|
@@ -23807,8 +23674,7 @@ function guardedPhysicalIdFallback(resolver, logicalId, attributeName, resourceT
|
|
|
23807
23674
|
return physicalId;
|
|
23808
23675
|
}
|
|
23809
23676
|
|
|
23810
|
-
|
|
23811
|
-
//#region src/deployment/intrinsic-resolver/getatt-construct-core.ts
|
|
23677
|
+
// src/deployment/intrinsic-resolver/getatt-construct-core.ts
|
|
23812
23678
|
const NOT_CONSTRUCTED = Symbol("NOT_CONSTRUCTED");
|
|
23813
23679
|
async function constructAttributeForCoreTypes(resolver, resource, attributeName, context, logicalId, resourceType, physicalId, accountId, partition, region) {
|
|
23814
23680
|
if (resourceType === "AWS::DynamoDB::Table" || resourceType === "AWS::DynamoDB::GlobalTable") switch (attributeName) {
|
|
@@ -23961,8 +23827,7 @@ async function constructAttributeForCoreTypes(resolver, resource, attributeName,
|
|
|
23961
23827
|
return NOT_CONSTRUCTED;
|
|
23962
23828
|
}
|
|
23963
23829
|
|
|
23964
|
-
|
|
23965
|
-
//#region src/deployment/intrinsic-resolver/getatt-construct-app.ts
|
|
23830
|
+
// src/deployment/intrinsic-resolver/getatt-construct-app.ts
|
|
23966
23831
|
async function constructAttributeForAppTypes(resolver, resource, attributeName, context, logicalId, resourceType, physicalId, accountId, partition, region) {
|
|
23967
23832
|
if (resourceType === "AWS::Events::Rule") switch (attributeName) {
|
|
23968
23833
|
case "Arn": {
|
|
@@ -24100,14 +23965,12 @@ async function constructAttributeForAppTypes(resolver, resource, attributeName,
|
|
|
24100
23965
|
return NOT_CONSTRUCTED;
|
|
24101
23966
|
}
|
|
24102
23967
|
|
|
24103
|
-
|
|
24104
|
-
//#region src/provisioning/ec2-instance-state.ts
|
|
23968
|
+
// src/provisioning/ec2-instance-state.ts
|
|
24105
23969
|
function isSettledInstanceState(stateName) {
|
|
24106
23970
|
return stateName !== void 0 && stateName !== "pending";
|
|
24107
23971
|
}
|
|
24108
23972
|
|
|
24109
|
-
|
|
24110
|
-
//#region src/deployment/intrinsic-resolver/getatt-construct-compute.ts
|
|
23973
|
+
// src/deployment/intrinsic-resolver/getatt-construct-compute.ts
|
|
24111
23974
|
async function constructAttributeForComputeTypes(resolver, attributeName, context, logicalId, resourceType, physicalId, accountId, partition, region) {
|
|
24112
23975
|
if (resourceType === "AWS::Logs::LogGroup") switch (attributeName) {
|
|
24113
23976
|
case "Arn": return `arn:${partition}:logs:${region}:${accountId}:log-group:${physicalId}:*`;
|
|
@@ -24377,8 +24240,7 @@ const natGatewayAttributeWait = {
|
|
|
24377
24240
|
sleep: (ms) => new Promise((resolve) => setTimeout(resolve, ms))
|
|
24378
24241
|
};
|
|
24379
24242
|
|
|
24380
|
-
|
|
24381
|
-
//#region src/deployment/intrinsic-resolver/functions.ts
|
|
24243
|
+
// src/deployment/intrinsic-resolver/functions.ts
|
|
24382
24244
|
async function resolveIf(resolver, ifArgs, context, source) {
|
|
24383
24245
|
const [conditionName, valueIfTrue, valueIfFalse] = ifArgs;
|
|
24384
24246
|
const resolveBranch = async (branch) => {
|
|
@@ -24637,8 +24499,7 @@ function bigIntToIPv6(_resolver, n) {
|
|
|
24637
24499
|
return parts.join(":");
|
|
24638
24500
|
}
|
|
24639
24501
|
|
|
24640
|
-
|
|
24641
|
-
//#region src/deployment/intrinsic-resolver/parameter-secrets.ts
|
|
24502
|
+
// src/deployment/intrinsic-resolver/parameter-secrets.ts
|
|
24642
24503
|
function recordInheritedParameterSecrets(resolver, parameterName, value, context) {
|
|
24643
24504
|
const inherited = context.inheritedSecrets;
|
|
24644
24505
|
const recorded = context.recordedSecretValues;
|
|
@@ -24917,8 +24778,7 @@ function refuseCoercedInheritedSecret(resolver, name, paramDef, userValue, inher
|
|
|
24917
24778
|
throw markNonRetryable(new IntrinsicResolutionRefusalError(`Nested-stack parameter ${quotedRender(loggedName, "'")} is declared ${QUOTABLE_RENDER.test(loggedType) ? `'Type: ${loggedType}'` : "with a Type that is not a plain identifier"}, but the parent stack resolved a SECRET dynamic reference into it. cdkd keeps a resolved secret out of persisted state by rewriting STRING leaves back to their {{resolve:...}} expression; coercing this value to ${quotedRender(loggedType, "'", "that Type")} destroys the plaintext cdkd would have matched on, so the DECRYPTED secret would be left in the child stack's state.json with nothing to redact it back to. Declare ${quotedRender(loggedName, "'", "the parameter")} as 'Type: String' in the nested stack's template (CDK does this by default for cross-stack references), or stop passing a secret reference into it.`, void 0, "NESTED_STACK_SECRET_PARAMETER_TYPE"));
|
|
24918
24779
|
}
|
|
24919
24780
|
|
|
24920
|
-
|
|
24921
|
-
//#region src/deployment/intrinsic-resolver/refs.ts
|
|
24781
|
+
// src/deployment/intrinsic-resolver/refs.ts
|
|
24922
24782
|
function nameIsNeverAResource(_resolver, logicalId, context) {
|
|
24923
24783
|
if (logicalId.startsWith("AWS::")) return true;
|
|
24924
24784
|
const declared = context.template?.Parameters;
|
|
@@ -24994,8 +24854,7 @@ function noteRefStateMask(resolver, logicalId, key, context) {
|
|
|
24994
24854
|
});
|
|
24995
24855
|
}
|
|
24996
24856
|
|
|
24997
|
-
|
|
24998
|
-
//#region src/deployment/intrinsic-resolver/getatt.ts
|
|
24857
|
+
// src/deployment/intrinsic-resolver/getatt.ts
|
|
24999
24858
|
function pushRedactedAttributeRead(_resolver, context, read) {
|
|
25000
24859
|
const bag = context.redactedAttributeReads;
|
|
25001
24860
|
if (bag === void 0) return;
|
|
@@ -25282,8 +25141,7 @@ async function constructAttribute(resolver, resource, attributeName, context, lo
|
|
|
25282
25141
|
return guardedPhysicalIdFallback(resolver, logicalId, attributeName, resourceType, physicalId, context);
|
|
25283
25142
|
}
|
|
25284
25143
|
|
|
25285
|
-
|
|
25286
|
-
//#region src/deployment/intrinsic-resolver/string-functions.ts
|
|
25144
|
+
// src/deployment/intrinsic-resolver/string-functions.ts
|
|
25287
25145
|
function partParameterSpans(context, part, resolved) {
|
|
25288
25146
|
if (context.recordedSecretValues === void 0) return [];
|
|
25289
25147
|
if (typeof part !== "object" || part === null) return [];
|
|
@@ -25493,8 +25351,7 @@ async function resolveSplit(resolver, splitArgs, context) {
|
|
|
25493
25351
|
return result;
|
|
25494
25352
|
}
|
|
25495
25353
|
|
|
25496
|
-
|
|
25497
|
-
//#region src/deployment/intrinsic-resolver/params-conditions.ts
|
|
25354
|
+
// src/deployment/intrinsic-resolver/params-conditions.ts
|
|
25498
25355
|
async function resolveParameters(resolver, template, userParameters, options) {
|
|
25499
25356
|
const inheritedSecrets = options?.inheritedSecrets;
|
|
25500
25357
|
if (inheritedSecrets && options?.recordPseudoParameters !== false) await recordInheritedPseudoParameterValues(resolver, inheritedSecrets, template);
|
|
@@ -25605,8 +25462,7 @@ async function resolveKeyUnit(resolver, key, val, context, abandoned) {
|
|
|
25605
25462
|
}
|
|
25606
25463
|
}
|
|
25607
25464
|
|
|
25608
|
-
|
|
25609
|
-
//#region src/deployment/intrinsic-resolver/sub.ts
|
|
25465
|
+
// src/deployment/intrinsic-resolver/sub.ts
|
|
25610
25466
|
function subPlaceholderWarning(_resolver, varName, error) {
|
|
25611
25467
|
return `Fn::Sub variable ${varName} could not be resolved (${describeAwsFailure(error).detail}), keeping placeholder`;
|
|
25612
25468
|
}
|
|
@@ -25805,8 +25661,7 @@ async function resolveSub(resolver, subArgs, context, source) {
|
|
|
25805
25661
|
return result;
|
|
25806
25662
|
}
|
|
25807
25663
|
|
|
25808
|
-
|
|
25809
|
-
//#region src/deployment/intrinsic-resolver/clients.ts
|
|
25664
|
+
// src/deployment/intrinsic-resolver/clients.ts
|
|
25810
25665
|
var ResolverClients = class {
|
|
25811
25666
|
regionScopedClients = /* @__PURE__ */ new Map();
|
|
25812
25667
|
serviceDiscoveryClients = /* @__PURE__ */ new Map();
|
|
@@ -25867,8 +25722,7 @@ var ResolverClients = class {
|
|
|
25867
25722
|
}
|
|
25868
25723
|
};
|
|
25869
25724
|
|
|
25870
|
-
|
|
25871
|
-
//#region src/deployment/intrinsic-function-resolver.ts
|
|
25725
|
+
// src/deployment/intrinsic-function-resolver.ts
|
|
25872
25726
|
var IntrinsicFunctionResolver = class IntrinsicFunctionResolver {
|
|
25873
25727
|
logger = getLogger().child("IntrinsicFunctionResolver");
|
|
25874
25728
|
resolverRegion;
|
|
@@ -26034,8 +25888,7 @@ var IntrinsicFunctionResolver = class IntrinsicFunctionResolver {
|
|
|
26034
25888
|
}
|
|
26035
25889
|
};
|
|
26036
25890
|
|
|
26037
|
-
|
|
26038
|
-
//#region src/state/unsettled-properties.ts
|
|
25891
|
+
// src/state/unsettled-properties.ts
|
|
26039
25892
|
function unsettledPropertiesOf(record) {
|
|
26040
25893
|
if (record === null || typeof record !== "object") return /* @__PURE__ */ new Set();
|
|
26041
25894
|
const value = record.unsettledProperties;
|
|
@@ -26130,8 +25983,7 @@ function unsettledContextOf(...records) {
|
|
|
26130
25983
|
};
|
|
26131
25984
|
}
|
|
26132
25985
|
|
|
26133
|
-
|
|
26134
|
-
//#region src/analyzer/read-provenance-promotion.ts
|
|
25986
|
+
// src/analyzer/read-provenance-promotion.ts
|
|
26135
25987
|
function isPlainObject$7(value) {
|
|
26136
25988
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
26137
25989
|
}
|
|
@@ -26225,8 +26077,7 @@ async function readProvenancePromotions(args) {
|
|
|
26225
26077
|
return out;
|
|
26226
26078
|
}
|
|
26227
26079
|
|
|
26228
|
-
|
|
26229
|
-
//#region src/analyzer/diff-calculator.ts
|
|
26080
|
+
// src/analyzer/diff-calculator.ts
|
|
26230
26081
|
const INTRINSIC_KEYS = /* @__PURE__ */ new Set([
|
|
26231
26082
|
"Ref",
|
|
26232
26083
|
"Fn::Sub",
|
|
@@ -26879,8 +26730,7 @@ var DiffCalculator = class DiffCalculator {
|
|
|
26879
26730
|
}
|
|
26880
26731
|
};
|
|
26881
26732
|
|
|
26882
|
-
|
|
26883
|
-
//#region src/provisioning/ec2-termination-protection.ts
|
|
26733
|
+
// src/provisioning/ec2-termination-protection.ts
|
|
26884
26734
|
async function disableInstanceApiTermination(client, instanceId, logger) {
|
|
26885
26735
|
try {
|
|
26886
26736
|
await client.send(new ModifyInstanceAttributeCommand({
|
|
@@ -26948,8 +26798,7 @@ function ec2InstanceProtectionSite(instanceId, region) {
|
|
|
26948
26798
|
};
|
|
26949
26799
|
}
|
|
26950
26800
|
|
|
26951
|
-
|
|
26952
|
-
//#region src/provisioning/wait-abandoned.ts
|
|
26801
|
+
// src/provisioning/wait-abandoned.ts
|
|
26953
26802
|
const WAIT_ABANDONED_MARKER = Symbol.for("cdkd.waitAbandoned");
|
|
26954
26803
|
const ABANDONED_REQUEST = Symbol.for("cdkd.waitAbandoned.request");
|
|
26955
26804
|
const MAX_CAUSE_CHAIN_DEPTH = 5;
|
|
@@ -26986,8 +26835,7 @@ function abandonedRequestOf(error) {
|
|
|
26986
26835
|
}
|
|
26987
26836
|
}
|
|
26988
26837
|
|
|
26989
|
-
|
|
26990
|
-
//#region src/provisioning/ec2-volume-delete.ts
|
|
26838
|
+
// src/provisioning/ec2-volume-delete.ts
|
|
26991
26839
|
async function deleteEc2VolumeDirect(client, volumeId, logicalId, opts) {
|
|
26992
26840
|
const now = opts.now ?? Date.now;
|
|
26993
26841
|
try {
|
|
@@ -27053,8 +26901,7 @@ function errorName(error) {
|
|
|
27053
26901
|
return typeof name === "string" ? name : "";
|
|
27054
26902
|
}
|
|
27055
26903
|
|
|
27056
|
-
|
|
27057
|
-
//#region src/deployment/delete-outcome.ts
|
|
26904
|
+
// src/deployment/delete-outcome.ts
|
|
27058
26905
|
function deleteSkipReason(result) {
|
|
27059
26906
|
if (!result || result.outcome !== "skipped") return void 0;
|
|
27060
26907
|
if (typeof result.reason !== "string") return UNSPECIFIED_SKIP_REASON;
|
|
@@ -27109,8 +26956,7 @@ function deleteIndeterminateGuards(result) {
|
|
|
27109
26956
|
return out;
|
|
27110
26957
|
}
|
|
27111
26958
|
|
|
27112
|
-
|
|
27113
|
-
//#region src/deployment/inline-policy-claims.ts
|
|
26959
|
+
// src/deployment/inline-policy-claims.ts
|
|
27114
26960
|
function isInlinePolicyClaimedByCompletedWriter(args, kind, principal, policyName) {
|
|
27115
26961
|
const { selfLogicalId, writers, changes, stateResources } = args;
|
|
27116
26962
|
for (const [lid, write] of writers) {
|
|
@@ -27614,8 +27460,7 @@ function ownPoliciesChange(change) {
|
|
|
27614
27460
|
return (change?.propertyChanges ?? []).some((c) => c.path === "Policies" && c.inPlacePropagated !== true && c.replacementPropagated !== true);
|
|
27615
27461
|
}
|
|
27616
27462
|
|
|
27617
|
-
|
|
27618
|
-
//#region src/provisioning/json-patch-generator.ts
|
|
27463
|
+
// src/provisioning/json-patch-generator.ts
|
|
27619
27464
|
var JsonPatchGenerator = class {
|
|
27620
27465
|
logger = getLogger().child("JsonPatchGenerator");
|
|
27621
27466
|
generatePatch(previousProperties, desiredProperties) {
|
|
@@ -27670,8 +27515,7 @@ var JsonPatchGenerator = class {
|
|
|
27670
27515
|
}
|
|
27671
27516
|
};
|
|
27672
27517
|
|
|
27673
|
-
|
|
27674
|
-
//#region src/provisioning/guardduty-detector-patch.ts
|
|
27518
|
+
// src/provisioning/guardduty-detector-patch.ts
|
|
27675
27519
|
const DETECTOR_TYPE = "AWS::GuardDuty::Detector";
|
|
27676
27520
|
const READ_BACK_KEYS = ["Features", "DataSources"];
|
|
27677
27521
|
function withGuardDutyDetectorReadBackOps(resourceType, patch, desired, readback) {
|
|
@@ -27726,8 +27570,7 @@ function featureName(entry) {
|
|
|
27726
27570
|
return typeof name === "string" ? name : void 0;
|
|
27727
27571
|
}
|
|
27728
27572
|
|
|
27729
|
-
|
|
27730
|
-
//#region src/provisioning/apigwv2-body-import-patch.ts
|
|
27573
|
+
// src/provisioning/apigwv2-body-import-patch.ts
|
|
27731
27574
|
const API_TYPE = "AWS::ApiGatewayV2::Api";
|
|
27732
27575
|
const DEFINITION_KEYS = ["Body", "BodyS3Location"];
|
|
27733
27576
|
const IMPORT_KEYS = [
|
|
@@ -27778,8 +27621,7 @@ function apiGatewayV2DefinitionObject(location) {
|
|
|
27778
27621
|
};
|
|
27779
27622
|
}
|
|
27780
27623
|
|
|
27781
|
-
|
|
27782
|
-
//#region src/provisioning/secret-reference-immutable.ts
|
|
27624
|
+
// src/provisioning/secret-reference-immutable.ts
|
|
27783
27625
|
const IDENTITY = maskerOrIdentity(void 0);
|
|
27784
27626
|
async function unchangedBehindSecretReference(evidence) {
|
|
27785
27627
|
const { resourceType, key, desired, previous, physicalName, maskSecrets } = evidence;
|
|
@@ -27839,8 +27681,7 @@ function escapeRegExp$1(text) {
|
|
|
27839
27681
|
return text.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
27840
27682
|
}
|
|
27841
27683
|
|
|
27842
|
-
|
|
27843
|
-
//#region src/provisioning/getatt-attributes.generated.ts
|
|
27684
|
+
// src/provisioning/getatt-attributes.generated.ts
|
|
27844
27685
|
const WRITABLE_GETATT_ATTRIBUTES = {
|
|
27845
27686
|
"AWS::Amplify::Branch": ["BranchName"],
|
|
27846
27687
|
"AWS::Amplify::Domain": [
|
|
@@ -27994,8 +27835,7 @@ const SHAPE_MISMATCHED_GETATT_ATTRIBUTES = {
|
|
|
27994
27835
|
"AWS::MediaLive::Input": ["Destinations", "Sources"]
|
|
27995
27836
|
};
|
|
27996
27837
|
|
|
27997
|
-
|
|
27998
|
-
//#region src/provisioning/read-only-properties.ts
|
|
27838
|
+
// src/provisioning/read-only-properties.ts
|
|
27999
27839
|
function isDefinitiveRefusal(error) {
|
|
28000
27840
|
if (isThrottlingError(error)) return false;
|
|
28001
27841
|
let current = error;
|
|
@@ -28062,8 +27902,7 @@ function unescapeJsonPointerSegment(segment) {
|
|
|
28062
27902
|
return segment.replace(/~1/g, "/").replace(/~0/g, "~");
|
|
28063
27903
|
}
|
|
28064
27904
|
|
|
28065
|
-
|
|
28066
|
-
//#region src/provisioning/cc-import-identifier.ts
|
|
27905
|
+
// src/provisioning/cc-import-identifier.ts
|
|
28067
27906
|
const primaryIdentifierCache = /* @__PURE__ */ new Map();
|
|
28068
27907
|
function getPrimaryIdentifierFields(resourceType) {
|
|
28069
27908
|
if (hasNoRegistrySchema(resourceType)) return Promise.resolve(void 0);
|
|
@@ -28124,8 +27963,7 @@ function toCloudControlIdentifier(input) {
|
|
|
28124
27963
|
return identifier;
|
|
28125
27964
|
}
|
|
28126
27965
|
|
|
28127
|
-
|
|
28128
|
-
//#region src/provisioning/cc-protection-properties.ts
|
|
27966
|
+
// src/provisioning/cc-protection-properties.ts
|
|
28129
27967
|
const CC_PROTECTION_PROPERTIES = {
|
|
28130
27968
|
"AWS::DSQL::Cluster": {
|
|
28131
27969
|
property: "DeletionProtectionEnabled",
|
|
@@ -28200,8 +28038,7 @@ function ccProtectionSite(resourceType, physicalId, entry, region) {
|
|
|
28200
28038
|
};
|
|
28201
28039
|
}
|
|
28202
28040
|
|
|
28203
|
-
|
|
28204
|
-
//#region src/provisioning/slow-cc-operation-timeouts.ts
|
|
28041
|
+
// src/provisioning/slow-cc-operation-timeouts.ts
|
|
28205
28042
|
const MINUTE_MS = 6e4;
|
|
28206
28043
|
const SLOW_CC_OPERATION_TIMEOUTS = {
|
|
28207
28044
|
"AWS::OpenSearchService::Domain": {
|
|
@@ -28252,8 +28089,7 @@ function slowCcOperationTimeoutMs(resourceType, operation) {
|
|
|
28252
28089
|
}
|
|
28253
28090
|
}
|
|
28254
28091
|
|
|
28255
|
-
|
|
28256
|
-
//#region src/provisioning/cloud-control-provider.ts
|
|
28092
|
+
// src/provisioning/cloud-control-provider.ts
|
|
28257
28093
|
const JSON_STRING_PROPERTIES = { "AWS::Events::Rule": /* @__PURE__ */ new Set(["EventPattern"]) };
|
|
28258
28094
|
function stringifyJsonProperties(resourceType, properties) {
|
|
28259
28095
|
const jsonProps = JSON_STRING_PROPERTIES[resourceType];
|
|
@@ -28785,7 +28621,7 @@ var CloudControlProvider = class {
|
|
|
28785
28621
|
const indeterminateGuard = await this.confirmDeleteTargetIdentity(logicalId, resourceType, physicalId, context);
|
|
28786
28622
|
if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
|
|
28787
28623
|
this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
|
|
28788
|
-
const { ASGProvider } = await import("./asg-provider-
|
|
28624
|
+
const { ASGProvider } = await import("./asg-provider-WornuySB.js");
|
|
28789
28625
|
const delegateRegion = ambientRegion();
|
|
28790
28626
|
let asgProvider = this.asgDeleteDelegates.get(delegateRegion);
|
|
28791
28627
|
if (asgProvider === void 0) {
|
|
@@ -28894,7 +28730,7 @@ var CloudControlProvider = class {
|
|
|
28894
28730
|
const family = SDK_DELETE_FAMILIES.get(resourceType);
|
|
28895
28731
|
const cached = this.sdkDeleteDelegates.get(family);
|
|
28896
28732
|
if (cached !== void 0 && cached.region === ccRegion) return cached.provider;
|
|
28897
|
-
const provider = family === "rds" ? new (await (import("./rds-provider-
|
|
28733
|
+
const provider = family === "rds" ? new (await (import("./rds-provider-BUNLNluC.js"))).RDSProvider({ region: ccRegion }) : new (await (import("./neptune-provider-BfzktOKC.js"))).NeptuneProvider({ region: ccRegion });
|
|
28898
28734
|
this.sdkDeleteDelegates.set(family, {
|
|
28899
28735
|
region: ccRegion,
|
|
28900
28736
|
provider
|
|
@@ -29831,8 +29667,7 @@ function maskLeavesDeep(value) {
|
|
|
29831
29667
|
return "***";
|
|
29832
29668
|
}
|
|
29833
29669
|
|
|
29834
|
-
|
|
29835
|
-
//#region src/state/state-bucket-lifecycle.ts
|
|
29670
|
+
// src/state/state-bucket-lifecycle.ts
|
|
29836
29671
|
const CUSTOM_RESOURCE_RESPONSE_LIFECYCLE_RULE_ID = "cdkd-custom-resource-responses-expiration";
|
|
29837
29672
|
const CUSTOM_RESOURCE_RESPONSE_EXPIRATION_DAYS = 1;
|
|
29838
29673
|
const CUSTOM_RESOURCE_RESPONSE_LIFECYCLE_PREFIX = `${CUSTOM_RESOURCE_RESPONSE_PREFIX}/cdkd-1`;
|
|
@@ -29949,8 +29784,7 @@ function ensureCustomResourceResponseExpirationOnce(s3, bucket, log) {
|
|
|
29949
29784
|
return run;
|
|
29950
29785
|
}
|
|
29951
29786
|
|
|
29952
|
-
|
|
29953
|
-
//#region src/deployment/resource-secrets-scope.ts
|
|
29787
|
+
// src/deployment/resource-secrets-scope.ts
|
|
29954
29788
|
const currentResourceSecretsStore = new AsyncLocalStorage();
|
|
29955
29789
|
const boundSecretBagsStore = new AsyncLocalStorage();
|
|
29956
29790
|
installLogLineMaskerSource(() => {
|
|
@@ -29970,8 +29804,7 @@ function getCurrentResourceSecrets() {
|
|
|
29970
29804
|
return currentResourceSecretsStore.getStore();
|
|
29971
29805
|
}
|
|
29972
29806
|
|
|
29973
|
-
|
|
29974
|
-
//#region src/provisioning/custom-resource-secure-references.ts
|
|
29807
|
+
// src/provisioning/custom-resource-secure-references.ts
|
|
29975
29808
|
function isCustomResourceType(resourceType) {
|
|
29976
29809
|
return resourceType === "AWS::CloudFormation::CustomResource" || resourceType.startsWith("Custom::");
|
|
29977
29810
|
}
|
|
@@ -30033,8 +29866,7 @@ function findResolvedSecretPaths(properties, secrets) {
|
|
|
30033
29866
|
return paths;
|
|
30034
29867
|
}
|
|
30035
29868
|
|
|
30036
|
-
|
|
30037
|
-
//#region src/deployment/noecho-delete-reresolution.ts
|
|
29869
|
+
// src/deployment/noecho-delete-reresolution.ts
|
|
30038
29870
|
function readsNoEchoDeleteValues(resourceType) {
|
|
30039
29871
|
return resourceType === "AWS::CloudFormation::CustomResource" || resourceType.startsWith("Custom::") || resourceType === "AWS::CloudFormation::Stack";
|
|
30040
29872
|
}
|
|
@@ -30362,8 +30194,7 @@ var TemplateNoEchoReresolver = class TemplateNoEchoReresolver {
|
|
|
30362
30194
|
}
|
|
30363
30195
|
};
|
|
30364
30196
|
|
|
30365
|
-
|
|
30366
|
-
//#region src/provisioning/providers/custom-resource-provider.ts
|
|
30197
|
+
// src/provisioning/providers/custom-resource-provider.ts
|
|
30367
30198
|
function deletePathMasker(callerMask, noEchoMask) {
|
|
30368
30199
|
if (callerMask === void 0) return noEchoMask;
|
|
30369
30200
|
if (noEchoMask === void 0) return callerMask;
|
|
@@ -31406,8 +31237,7 @@ var CustomResourceProvider = class CustomResourceProvider {
|
|
|
31406
31237
|
}
|
|
31407
31238
|
};
|
|
31408
31239
|
|
|
31409
|
-
|
|
31410
|
-
//#region src/provisioning/mutually-exclusive-properties.ts
|
|
31240
|
+
// src/provisioning/mutually-exclusive-properties.ts
|
|
31411
31241
|
const MUTUALLY_EXCLUSIVE_PROPERTIES = /* @__PURE__ */ new Map([["AWS::EC2::Route", [{
|
|
31412
31242
|
properties: [
|
|
31413
31243
|
"DestinationCidrBlock",
|
|
@@ -31453,8 +31283,7 @@ function buildMutuallyExclusiveMessage(logicalId, violation) {
|
|
|
31453
31283
|
return ` - ${logicalId} (${resourceType}) declares ${declared.join(" and ")}\n ${rule.rationale}${winnerNote}\n Declare at most one of: ${rule.properties.join(" / ")}`;
|
|
31454
31284
|
}
|
|
31455
31285
|
|
|
31456
|
-
|
|
31457
|
-
//#region src/provisioning/nested-required.generated.ts
|
|
31286
|
+
// src/provisioning/nested-required.generated.ts
|
|
31458
31287
|
const NESTED_REQUIRED = /* @__PURE__ */ new Map([
|
|
31459
31288
|
["AWS::ApiGateway::Deployment", /* @__PURE__ */ new Map([["StageDescription.Tags", ["Key", "Value"]]])],
|
|
31460
31289
|
["AWS::ApiGateway::Method", /* @__PURE__ */ new Map([
|
|
@@ -32838,8 +32667,7 @@ const NESTED_REQUIRED = /* @__PURE__ */ new Map([
|
|
|
32838
32667
|
])]
|
|
32839
32668
|
]);
|
|
32840
32669
|
|
|
32841
|
-
|
|
32842
|
-
//#region src/provisioning/nested-required.ts
|
|
32670
|
+
// src/provisioning/nested-required.ts
|
|
32843
32671
|
const CFN_ENFORCED_TYPES = /* @__PURE__ */ new Set([
|
|
32844
32672
|
"AWS::ApiGateway::Deployment",
|
|
32845
32673
|
"AWS::ApiGateway::Method",
|
|
@@ -32968,8 +32796,7 @@ function buildNestedRequiredMessage(logicalId, violation) {
|
|
|
32968
32796
|
return ` - ${logicalId} (${violation.resourceType}): ${violation.path} is missing required ${violation.missing.length === 1 ? "member" : "members"} ${violation.missing.join(", ")}`;
|
|
32969
32797
|
}
|
|
32970
32798
|
|
|
32971
|
-
|
|
32972
|
-
//#region src/provisioning/property-shape.generated.ts
|
|
32799
|
+
// src/provisioning/property-shape.generated.ts
|
|
32973
32800
|
const PROPERTY_SHAPES = /* @__PURE__ */ new Map([
|
|
32974
32801
|
["AWS::ApiGateway::Authorizer", "{\"ProviderARNs\":\"array\"}"],
|
|
32975
32802
|
["AWS::ApiGateway::Deployment", "{\"DeploymentCanarySettings\":\"object\",\"DeploymentCanarySettings.StageVariableOverrides\":\"object\",\"StageDescription\":\"object\",\"StageDescription.AccessLogSetting\":\"object\",\"StageDescription.CanarySetting\":\"object\",\"StageDescription.CanarySetting.StageVariableOverrides\":\"object\",\"StageDescription.MethodSettings\":\"array\",\"StageDescription.MethodSettings[]\":\"object\",\"StageDescription.Tags\":\"array\",\"StageDescription.Tags[]\":\"object\",\"StageDescription.Variables\":\"object\"}"],
|
|
@@ -33087,8 +32914,7 @@ const PROPERTY_SHAPES = /* @__PURE__ */ new Map([
|
|
|
33087
32914
|
["AWS::WAFv2::WebACL", "{\"ApplicationConfig\":\"object\",\"ApplicationConfig.Attributes\":\"array\",\"ApplicationConfig.Attributes[]\":\"object\",\"ApplicationConfig.Attributes[].Values\":\"array\",\"AssociationConfig\":\"object\",\"AssociationConfig.RequestBody\":\"object\",\"CaptchaConfig\":\"object\",\"CaptchaConfig.ImmunityTimeProperty\":\"object\",\"ChallengeConfig\":\"object\",\"ChallengeConfig.ImmunityTimeProperty\":\"object\",\"CustomResponseBodies\":\"object\",\"DataProtectionConfig\":\"object\",\"DataProtectionConfig.DataProtections\":\"array\",\"DataProtectionConfig.DataProtections[]\":\"object\",\"DataProtectionConfig.DataProtections[].Field\":\"object\",\"DataProtectionConfig.DataProtections[].Field.FieldKeys\":\"array\",\"DefaultAction\":\"object\",\"DefaultAction.Allow\":\"object\",\"DefaultAction.Allow.CustomRequestHandling\":\"object\",\"DefaultAction.Allow.CustomRequestHandling.InsertHeaders\":\"array\",\"DefaultAction.Allow.CustomRequestHandling.InsertHeaders[]\":\"object\",\"DefaultAction.Block\":\"object\",\"DefaultAction.Block.CustomResponse\":\"object\",\"DefaultAction.Block.CustomResponse.ResponseHeaders\":\"array\",\"DefaultAction.Block.CustomResponse.ResponseHeaders[]\":\"object\",\"MonetizationConfig\":\"object\",\"MonetizationConfig.CryptoConfig\":\"object\",\"MonetizationConfig.CryptoConfig.PaymentNetworks\":\"array\",\"MonetizationConfig.CryptoConfig.PaymentNetworks[]\":\"object\",\"MonetizationConfig.CryptoConfig.PaymentNetworks[].Prices\":\"array\",\"MonetizationConfig.CryptoConfig.PaymentNetworks[].Prices[]\":\"object\",\"OnSourceDDoSProtectionConfig\":\"object\",\"Rules\":\"array\",\"Rules[]\":\"object\",\"Rules[].Action\":\"object\",\"Rules[].Action.Allow\":\"object\",\"Rules[].Action.Allow.CustomRequestHandling\":\"object\",\"Rules[].Action.Allow.CustomRequestHandling.InsertHeaders\":\"array\",\"Rules[].Action.Allow.CustomRequestHandling.InsertHeaders[]\":\"object\",\"Rules[].Action.Block\":\"object\",\"Rules[].Action.Block.CustomResponse\":\"object\",\"Rules[].Action.Block.CustomResponse.ResponseHeaders\":\"array\",\"Rules[].Action.Block.CustomResponse.ResponseHeaders[]\":\"object\",\"Rules[].Action.Captcha\":\"object\",\"Rules[].Action.Captcha.CustomRequestHandling\":\"object\",\"Rules[].Action.Captcha.CustomRequestHandling.InsertHeaders\":\"array\",\"Rules[].Action.Captcha.CustomRequestHandling.InsertHeaders[]\":\"object\",\"Rules[].Action.Challenge\":\"object\",\"Rules[].Action.Challenge.CustomRequestHandling\":\"object\",\"Rules[].Action.Challenge.CustomRequestHandling.InsertHeaders\":\"array\",\"Rules[].Action.Challenge.CustomRequestHandling.InsertHeaders[]\":\"object\",\"Rules[].Action.Count\":\"object\",\"Rules[].Action.Count.CustomRequestHandling\":\"object\",\"Rules[].Action.Count.CustomRequestHandling.InsertHeaders\":\"array\",\"Rules[].Action.Count.CustomRequestHandling.InsertHeaders[]\":\"object\",\"Rules[].Action.Monetize\":\"object\",\"Rules[].CaptchaConfig\":\"object\",\"Rules[].CaptchaConfig.ImmunityTimeProperty\":\"object\",\"Rules[].ChallengeConfig\":\"object\",\"Rules[].ChallengeConfig.ImmunityTimeProperty\":\"object\",\"Rules[].OverrideAction\":\"object\",\"Rules[].OverrideAction.Count\":\"object\",\"Rules[].OverrideAction.None\":\"object\",\"Rules[].RuleLabels\":\"array\",\"Rules[].RuleLabels[]\":\"object\",\"Rules[].Statement\":\"object\",\"Rules[].Statement.AndStatement\":\"object\",\"Rules[].Statement.AndStatement.Statements\":\"array\",\"Rules[].Statement.AsnMatchStatement\":\"object\",\"Rules[].Statement.AsnMatchStatement.AsnList\":\"array\",\"Rules[].Statement.AsnMatchStatement.ForwardedIPConfig\":\"object\",\"Rules[].Statement.ByteMatchStatement\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.AllQueryArguments\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.Body\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.Cookies\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern.All\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies\":\"array\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies\":\"array\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.HeaderOrder\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.Headers\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern.All\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders\":\"array\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders\":\"array\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.JA3Fingerprint\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.JA4Fingerprint\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.JsonBody\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.JsonBody.MatchPattern\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.JsonBody.MatchPattern.All\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths\":\"array\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.Method\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.QueryString\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.SingleHeader\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.SingleQueryArgument\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.UriFragment\":\"object\",\"Rules[].Statement.ByteMatchStatement.FieldToMatch.UriPath\":\"object\",\"Rules[].Statement.ByteMatchStatement.PreParseTextTransformations\":\"array\",\"Rules[].Statement.ByteMatchStatement.PreParseTextTransformations[]\":\"object\",\"Rules[].Statement.ByteMatchStatement.TextTransformations\":\"array\",\"Rules[].Statement.ByteMatchStatement.TextTransformations[]\":\"object\",\"Rules[].Statement.GeoMatchStatement\":\"object\",\"Rules[].Statement.GeoMatchStatement.CountryCodes\":\"array\",\"Rules[].Statement.GeoMatchStatement.ForwardedIPConfig\":\"object\",\"Rules[].Statement.IPSetReferenceStatement\":\"object\",\"Rules[].Statement.IPSetReferenceStatement.IPSetForwardedIPConfig\":\"object\",\"Rules[].Statement.LabelMatchStatement\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ExcludedRules\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ExcludedRules[]\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[]\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.RequestInspection\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.RequestInspection.AddressFields\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.RequestInspection.AddressFields[]\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.RequestInspection.EmailField\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.RequestInspection.PasswordField\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.RequestInspection.PhoneNumberFields\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.RequestInspection.PhoneNumberFields[]\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.RequestInspection.UsernameField\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.ResponseInspection\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.ResponseInspection.BodyContains\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.ResponseInspection.BodyContains.FailureStrings\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.ResponseInspection.BodyContains.SuccessStrings\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.ResponseInspection.Header\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.ResponseInspection.Header.FailureValues\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.ResponseInspection.Header.SuccessValues\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.ResponseInspection.Json\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.ResponseInspection.Json.FailureValues\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.ResponseInspection.Json.SuccessValues\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.ResponseInspection.StatusCode\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.ResponseInspection.StatusCode.FailureCodes\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesACFPRuleSet.ResponseInspection.StatusCode.SuccessCodes\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesATPRuleSet\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesATPRuleSet.RequestInspection\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesATPRuleSet.RequestInspection.PasswordField\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesATPRuleSet.RequestInspection.UsernameField\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesATPRuleSet.ResponseInspection\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesATPRuleSet.ResponseInspection.BodyContains\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesATPRuleSet.ResponseInspection.BodyContains.FailureStrings\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesATPRuleSet.ResponseInspection.BodyContains.SuccessStrings\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesATPRuleSet.ResponseInspection.Header\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesATPRuleSet.ResponseInspection.Header.FailureValues\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesATPRuleSet.ResponseInspection.Header.SuccessValues\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesATPRuleSet.ResponseInspection.Json\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesATPRuleSet.ResponseInspection.Json.FailureValues\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesATPRuleSet.ResponseInspection.Json.SuccessValues\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesATPRuleSet.ResponseInspection.StatusCode\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesATPRuleSet.ResponseInspection.StatusCode.FailureCodes\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesATPRuleSet.ResponseInspection.StatusCode.SuccessCodes\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesAntiDDoSRuleSet\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesAntiDDoSRuleSet.ClientSideActionConfig\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesAntiDDoSRuleSet.ClientSideActionConfig.Challenge\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesAntiDDoSRuleSet.ClientSideActionConfig.Challenge.ExemptUriRegularExpressions\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesAntiDDoSRuleSet.ClientSideActionConfig.Challenge.ExemptUriRegularExpressions[]\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].AWSManagedRulesBotControlRuleSet\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].PasswordField\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.ManagedRuleGroupConfigs[].UsernameField\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[]\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Allow\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Allow.CustomRequestHandling\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Allow.CustomRequestHandling.InsertHeaders\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Allow.CustomRequestHandling.InsertHeaders[]\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Block\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Block.CustomResponse\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Block.CustomResponse.ResponseHeaders\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Block.CustomResponse.ResponseHeaders[]\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Captcha\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Captcha.CustomRequestHandling\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Captcha.CustomRequestHandling.InsertHeaders\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Captcha.CustomRequestHandling.InsertHeaders[]\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Challenge\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Challenge.CustomRequestHandling\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Challenge.CustomRequestHandling.InsertHeaders\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Challenge.CustomRequestHandling.InsertHeaders[]\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Count\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Count.CustomRequestHandling\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Count.CustomRequestHandling.InsertHeaders\":\"array\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Count.CustomRequestHandling.InsertHeaders[]\":\"object\",\"Rules[].Statement.ManagedRuleGroupStatement.RuleActionOverrides[].ActionToUse.Monetize\":\"object\",\"Rules[].Statement.NotStatement\":\"object\",\"Rules[].Statement.OrStatement\":\"object\",\"Rules[].Statement.OrStatement.Statements\":\"array\",\"Rules[].Statement.RateBasedStatement\":\"object\",\"Rules[].Statement.RateBasedStatement.CustomKeys\":\"array\",\"Rules[].Statement.RateBasedStatement.CustomKeys[]\":\"object\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].ASN\":\"object\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].Cookie\":\"object\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].Cookie.TextTransformations\":\"array\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].Cookie.TextTransformations[]\":\"object\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].ForwardedIP\":\"object\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].HTTPMethod\":\"object\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].Header\":\"object\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].Header.TextTransformations\":\"array\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].Header.TextTransformations[]\":\"object\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].IP\":\"object\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].JA3Fingerprint\":\"object\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].JA4Fingerprint\":\"object\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].LabelNamespace\":\"object\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].QueryArgument\":\"object\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].QueryArgument.TextTransformations\":\"array\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].QueryArgument.TextTransformations[]\":\"object\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].QueryString\":\"object\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].QueryString.TextTransformations\":\"array\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].QueryString.TextTransformations[]\":\"object\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].UriPath\":\"object\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].UriPath.TextTransformations\":\"array\",\"Rules[].Statement.RateBasedStatement.CustomKeys[].UriPath.TextTransformations[]\":\"object\",\"Rules[].Statement.RateBasedStatement.ForwardedIPConfig\":\"object\",\"Rules[].Statement.RegexMatchStatement\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.AllQueryArguments\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.Body\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.Cookies\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern.All\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies\":\"array\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies\":\"array\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.HeaderOrder\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.Headers\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern.All\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders\":\"array\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders\":\"array\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.JA3Fingerprint\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.JA4Fingerprint\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.JsonBody\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.JsonBody.MatchPattern\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.JsonBody.MatchPattern.All\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths\":\"array\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.Method\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.QueryString\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.SingleHeader\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.SingleQueryArgument\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.UriFragment\":\"object\",\"Rules[].Statement.RegexMatchStatement.FieldToMatch.UriPath\":\"object\",\"Rules[].Statement.RegexMatchStatement.PreParseTextTransformations\":\"array\",\"Rules[].Statement.RegexMatchStatement.PreParseTextTransformations[]\":\"object\",\"Rules[].Statement.RegexMatchStatement.TextTransformations\":\"array\",\"Rules[].Statement.RegexMatchStatement.TextTransformations[]\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.AllQueryArguments\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Body\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern.All\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies\":\"array\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies\":\"array\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.HeaderOrder\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern.All\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders\":\"array\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders\":\"array\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JA3Fingerprint\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JA4Fingerprint\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.MatchPattern\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.MatchPattern.All\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths\":\"array\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.Method\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.QueryString\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.SingleHeader\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.SingleQueryArgument\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.UriFragment\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.FieldToMatch.UriPath\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.PreParseTextTransformations\":\"array\",\"Rules[].Statement.RegexPatternSetReferenceStatement.PreParseTextTransformations[]\":\"object\",\"Rules[].Statement.RegexPatternSetReferenceStatement.TextTransformations\":\"array\",\"Rules[].Statement.RegexPatternSetReferenceStatement.TextTransformations[]\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.ExcludedRules\":\"array\",\"Rules[].Statement.RuleGroupReferenceStatement.ExcludedRules[]\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides\":\"array\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[]\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Allow\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Allow.CustomRequestHandling\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Allow.CustomRequestHandling.InsertHeaders\":\"array\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Allow.CustomRequestHandling.InsertHeaders[]\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Block\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Block.CustomResponse\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Block.CustomResponse.ResponseHeaders\":\"array\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Block.CustomResponse.ResponseHeaders[]\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Captcha\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Captcha.CustomRequestHandling\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Captcha.CustomRequestHandling.InsertHeaders\":\"array\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Captcha.CustomRequestHandling.InsertHeaders[]\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Challenge\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Challenge.CustomRequestHandling\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Challenge.CustomRequestHandling.InsertHeaders\":\"array\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Challenge.CustomRequestHandling.InsertHeaders[]\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Count\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Count.CustomRequestHandling\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Count.CustomRequestHandling.InsertHeaders\":\"array\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Count.CustomRequestHandling.InsertHeaders[]\":\"object\",\"Rules[].Statement.RuleGroupReferenceStatement.RuleActionOverrides[].ActionToUse.Monetize\":\"object\",\"Rules[].Statement.SizeConstraintStatement\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.AllQueryArguments\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.Body\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.Cookies\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern.All\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies\":\"array\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies\":\"array\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.HeaderOrder\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.Headers\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern.All\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders\":\"array\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders\":\"array\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.JA3Fingerprint\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.JA4Fingerprint\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.JsonBody\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.MatchPattern\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.MatchPattern.All\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths\":\"array\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.Method\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.QueryString\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.SingleHeader\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.SingleQueryArgument\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.UriFragment\":\"object\",\"Rules[].Statement.SizeConstraintStatement.FieldToMatch.UriPath\":\"object\",\"Rules[].Statement.SizeConstraintStatement.PreParseTextTransformations\":\"array\",\"Rules[].Statement.SizeConstraintStatement.PreParseTextTransformations[]\":\"object\",\"Rules[].Statement.SizeConstraintStatement.TextTransformations\":\"array\",\"Rules[].Statement.SizeConstraintStatement.TextTransformations[]\":\"object\",\"Rules[].Statement.SqliMatchStatement\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.AllQueryArguments\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.Body\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.Cookies\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern.All\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies\":\"array\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies\":\"array\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.HeaderOrder\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.Headers\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern.All\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders\":\"array\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders\":\"array\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.JA3Fingerprint\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.JA4Fingerprint\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.JsonBody\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.JsonBody.MatchPattern\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.JsonBody.MatchPattern.All\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths\":\"array\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.Method\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.QueryString\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.SingleHeader\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.SingleQueryArgument\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.UriFragment\":\"object\",\"Rules[].Statement.SqliMatchStatement.FieldToMatch.UriPath\":\"object\",\"Rules[].Statement.SqliMatchStatement.PreParseTextTransformations\":\"array\",\"Rules[].Statement.SqliMatchStatement.PreParseTextTransformations[]\":\"object\",\"Rules[].Statement.SqliMatchStatement.TextTransformations\":\"array\",\"Rules[].Statement.SqliMatchStatement.TextTransformations[]\":\"object\",\"Rules[].Statement.XssMatchStatement\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.AllQueryArguments\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.Body\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.Cookies\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern.All\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern.ExcludedCookies\":\"array\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.Cookies.MatchPattern.IncludedCookies\":\"array\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.HeaderOrder\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.Headers\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern.All\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern.ExcludedHeaders\":\"array\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.Headers.MatchPattern.IncludedHeaders\":\"array\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.JA3Fingerprint\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.JA4Fingerprint\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.JsonBody\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.JsonBody.MatchPattern\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.JsonBody.MatchPattern.All\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.JsonBody.MatchPattern.IncludedPaths\":\"array\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.Method\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.QueryString\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.SingleHeader\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.SingleQueryArgument\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.UriFragment\":\"object\",\"Rules[].Statement.XssMatchStatement.FieldToMatch.UriPath\":\"object\",\"Rules[].Statement.XssMatchStatement.PreParseTextTransformations\":\"array\",\"Rules[].Statement.XssMatchStatement.PreParseTextTransformations[]\":\"object\",\"Rules[].Statement.XssMatchStatement.TextTransformations\":\"array\",\"Rules[].Statement.XssMatchStatement.TextTransformations[]\":\"object\",\"Rules[].VisibilityConfig\":\"object\",\"Tags\":\"array\",\"Tags[]\":\"object\",\"TokenDomains\":\"array\",\"VisibilityConfig\":\"object\"}"]
|
|
33088
32915
|
]);
|
|
33089
32916
|
|
|
33090
|
-
|
|
33091
|
-
//#region src/provisioning/property-shape.ts
|
|
32917
|
+
// src/provisioning/property-shape.ts
|
|
33092
32918
|
const treeCache = /* @__PURE__ */ new Map();
|
|
33093
32919
|
function buildShapeTree(rows) {
|
|
33094
32920
|
const root = { props: /* @__PURE__ */ new Map() };
|
|
@@ -33182,8 +33008,7 @@ function validatePropertyShapes(resources) {
|
|
|
33182
33008
|
throw new Error("Properties validation failed: the following resources declare a property whose kind contradicts the resource type's schema:\n" + lines.join("\n") + "\n\nCloudFormation rejects these templates too. Give each property a list where its schema expects a list and an object where it expects an object.");
|
|
33183
33009
|
}
|
|
33184
33010
|
|
|
33185
|
-
|
|
33186
|
-
//#region src/provisioning/provider-registry.ts
|
|
33011
|
+
// src/provisioning/provider-registry.ts
|
|
33187
33012
|
const STICKY_CC_MIGRATION_EXEMPT = /* @__PURE__ */ new Map([
|
|
33188
33013
|
["AWS::Scheduler::Schedule", {
|
|
33189
33014
|
mode: "cc-broken",
|
|
@@ -33523,8 +33348,7 @@ function isCustomResource(resourceType) {
|
|
|
33523
33348
|
return resourceType.startsWith("Custom::") || resourceType === "AWS::CloudFormation::CustomResource";
|
|
33524
33349
|
}
|
|
33525
33350
|
|
|
33526
|
-
|
|
33527
|
-
//#region src/provisioning/attribute-map.ts
|
|
33351
|
+
// src/provisioning/attribute-map.ts
|
|
33528
33352
|
function definedAttributes(entries) {
|
|
33529
33353
|
const out = {};
|
|
33530
33354
|
for (const [key, value] of Object.entries(entries)) {
|
|
@@ -33538,8 +33362,7 @@ function stringifyIfAssigned(value) {
|
|
|
33538
33362
|
return String(value);
|
|
33539
33363
|
}
|
|
33540
33364
|
|
|
33541
|
-
|
|
33542
|
-
//#region src/provisioning/tag-list.ts
|
|
33365
|
+
// src/provisioning/tag-list.ts
|
|
33543
33366
|
function isScalar(value) {
|
|
33544
33367
|
return typeof value === "string" || typeof value === "number" || typeof value === "boolean";
|
|
33545
33368
|
}
|
|
@@ -33633,8 +33456,7 @@ function recordedTagsUnreadableWarning(resourceType, id, applied) {
|
|
|
33633
33456
|
return safeMsg`The recorded Tags of ${resourceType} ${id} is not a list cdkd can read, so cdkd removed no tag and applied the ${applied} desired tag(s) only. Untag any key the template no longer names yourself.`;
|
|
33634
33457
|
}
|
|
33635
33458
|
|
|
33636
|
-
|
|
33637
|
-
//#region src/provisioning/delete-started.ts
|
|
33459
|
+
// src/provisioning/delete-started.ts
|
|
33638
33460
|
const DELETE_STARTED = Symbol.for("cdkd.deleteStarted");
|
|
33639
33461
|
const MAX_DEPTH = 10;
|
|
33640
33462
|
function markDeleteStarted(error) {
|
|
@@ -33685,8 +33507,7 @@ function isRefusedByName(error) {
|
|
|
33685
33507
|
return false;
|
|
33686
33508
|
}
|
|
33687
33509
|
|
|
33688
|
-
|
|
33689
|
-
//#region src/types/deployment-events.ts
|
|
33510
|
+
// src/types/deployment-events.ts
|
|
33690
33511
|
function extractDeploymentEventError(err) {
|
|
33691
33512
|
if (!(err instanceof Error)) return {
|
|
33692
33513
|
name: "UnknownError",
|
|
@@ -33709,8 +33530,7 @@ function extractDeploymentEventError(err) {
|
|
|
33709
33530
|
return result;
|
|
33710
33531
|
}
|
|
33711
33532
|
|
|
33712
|
-
|
|
33713
|
-
//#region src/state/deployment-events-store.ts
|
|
33533
|
+
// src/state/deployment-events-store.ts
|
|
33714
33534
|
const DEPLOYMENT_EVENTS_MAX_INDEX_RUNS = 20;
|
|
33715
33535
|
const FLUSH_INTERVAL_MS = 2e3;
|
|
33716
33536
|
const FLUSH_EVENT_THRESHOLD = 50;
|
|
@@ -34048,8 +33868,7 @@ var DeploymentEventsReader = class {
|
|
|
34048
33868
|
}
|
|
34049
33869
|
};
|
|
34050
33870
|
|
|
34051
|
-
|
|
34052
|
-
//#region src/deployment/kept-in-history.ts
|
|
33871
|
+
// src/deployment/kept-in-history.ts
|
|
34053
33872
|
function keptInEarlierRecords(records) {
|
|
34054
33873
|
const out = [];
|
|
34055
33874
|
for (const record of records) for (const [logicalId, raw] of Object.entries(record.resources)) {
|
|
@@ -34122,8 +33941,7 @@ async function loadRollbackRetainedCopies(sources, stackName, region) {
|
|
|
34122
33941
|
return rollbackRetainedInEventHistory(await readRecentRuns(sources, stackName, region), stackName);
|
|
34123
33942
|
}
|
|
34124
33943
|
|
|
34125
|
-
|
|
34126
|
-
//#region src/provisioning/providers/idempotency-token.ts
|
|
33944
|
+
// src/provisioning/providers/idempotency-token.ts
|
|
34127
33945
|
const PROCESS_NONCE = randomUUID();
|
|
34128
33946
|
const inFlight$1 = /* @__PURE__ */ new Map();
|
|
34129
33947
|
const generations = /* @__PURE__ */ new Map();
|
|
@@ -34164,8 +33982,7 @@ function stackScopedCreateToken(options) {
|
|
|
34164
33982
|
return `cdkd-${logicalId.slice(0, prefixLength)}-${digest}`;
|
|
34165
33983
|
}
|
|
34166
33984
|
|
|
34167
|
-
|
|
34168
|
-
//#region src/provisioning/providers/create-token-ledger.ts
|
|
33985
|
+
// src/provisioning/providers/create-token-ledger.ts
|
|
34169
33986
|
var CreateTokenLedger = class {
|
|
34170
33987
|
doc;
|
|
34171
33988
|
loadedAbsent = false;
|
|
@@ -34494,8 +34311,7 @@ async function reserveStackCreateToken(options) {
|
|
|
34494
34311
|
};
|
|
34495
34312
|
}
|
|
34496
34313
|
|
|
34497
|
-
|
|
34498
|
-
//#region src/deployment/deploy-value-equality.ts
|
|
34314
|
+
// src/deployment/deploy-value-equality.ts
|
|
34499
34315
|
function isReplacementCeiling(pc) {
|
|
34500
34316
|
return pc.requiresReplacement && (pc.inPlacePropagated === true || pc.replacementPropagated === true);
|
|
34501
34317
|
}
|
|
@@ -34549,8 +34365,7 @@ function deepEqualValue(a, b) {
|
|
|
34549
34365
|
return true;
|
|
34550
34366
|
}
|
|
34551
34367
|
|
|
34552
|
-
|
|
34553
|
-
//#region src/deployment/deploy-engine/provenance-capture.ts
|
|
34368
|
+
// src/deployment/deploy-engine/provenance-capture.ts
|
|
34554
34369
|
var ProvenanceCapture = class {
|
|
34555
34370
|
tasks = /* @__PURE__ */ new Map();
|
|
34556
34371
|
deps;
|
|
@@ -34656,8 +34471,7 @@ function provenanceBaselineOf(state, tokenFree) {
|
|
|
34656
34471
|
};
|
|
34657
34472
|
}
|
|
34658
34473
|
|
|
34659
|
-
|
|
34660
|
-
//#region src/provisioning/final-snapshot.ts
|
|
34474
|
+
// src/provisioning/final-snapshot.ts
|
|
34661
34475
|
const ATOMIC_FINAL_SNAPSHOT_TYPES = /* @__PURE__ */ new Set([
|
|
34662
34476
|
"AWS::RDS::DBInstance",
|
|
34663
34477
|
"AWS::RDS::DBCluster",
|
|
@@ -35008,13 +34822,11 @@ async function createReplicationGroupFinalSnapshot(client, replicationGroupId, l
|
|
|
35008
34822
|
});
|
|
35009
34823
|
}
|
|
35010
34824
|
|
|
35011
|
-
|
|
35012
|
-
//#region src/deployment/rollback-executor/types.ts
|
|
34825
|
+
// src/deployment/rollback-executor/types.ts
|
|
35013
34826
|
const NESTED_STACK_RESOURCE_TYPE$1 = "AWS::CloudFormation::Stack";
|
|
35014
34827
|
const nonEmptyString = (v) => typeof v === "string" && v.length > 0;
|
|
35015
34828
|
|
|
35016
|
-
|
|
35017
|
-
//#region src/deployment/rollback-executor/messages.ts
|
|
34829
|
+
// src/deployment/rollback-executor/messages.ts
|
|
35018
34830
|
function throwIfDeleteSkipped(result, logicalId, physicalId, duringClause, guardScope) {
|
|
35019
34831
|
recordRollbackDeleteGuards(result, logicalId, physicalId, guardScope);
|
|
35020
34832
|
const reason = deleteSkipReason(result);
|
|
@@ -35209,8 +35021,7 @@ function retainedSurvivorMessages(logicalId, resourceType, survivorPhysicalId, s
|
|
|
35209
35021
|
};
|
|
35210
35022
|
}
|
|
35211
35023
|
|
|
35212
|
-
|
|
35213
|
-
//#region src/deployment/rollback-executor/names.ts
|
|
35024
|
+
// src/deployment/rollback-executor/names.ts
|
|
35214
35025
|
function replayPrefixScope(input, logger, mask, restoring) {
|
|
35215
35026
|
const generation = input.nameGeneration;
|
|
35216
35027
|
const inGeneration = (fn) => generation === void 0 ? fn() : withNameGeneration({
|
|
@@ -35376,8 +35187,7 @@ async function prepareCreateRollbackFinalSnapshot(op, provisionedBy, ctx, mask)
|
|
|
35376
35187
|
}
|
|
35377
35188
|
}
|
|
35378
35189
|
|
|
35379
|
-
|
|
35380
|
-
//#region src/deployment/secret-name-needles.ts
|
|
35190
|
+
// src/deployment/secret-name-needles.ts
|
|
35381
35191
|
function secretNameNeedlesOf(logicalId, record, secrets, options) {
|
|
35382
35192
|
const physicalId = typeof record?.physicalId === "string" && record.physicalId !== "" ? record.physicalId : void 0;
|
|
35383
35193
|
const bag = secrets !== void 0 && hasMaskableValues(secrets) ? secrets : void 0;
|
|
@@ -35647,8 +35457,7 @@ function maskEventTextWithBoundBags(event) {
|
|
|
35647
35457
|
return masked;
|
|
35648
35458
|
}
|
|
35649
35459
|
|
|
35650
|
-
|
|
35651
|
-
//#region src/deployment/read-only-attribute-healer.ts
|
|
35460
|
+
// src/deployment/read-only-attribute-healer.ts
|
|
35652
35461
|
async function readRecordAttributes(input) {
|
|
35653
35462
|
const { provider, logicalId, resource, stackName, region } = input;
|
|
35654
35463
|
if (!provider.import) return { kind: "not-attempted" };
|
|
@@ -35709,8 +35518,7 @@ function createReadOnlyAttributeHealerFactory(options) {
|
|
|
35709
35518
|
return (stackName, region) => Object.assign((logicalId, resource) => readOnce(stackName, region, logicalId, resource), { readOnly: true });
|
|
35710
35519
|
}
|
|
35711
35520
|
|
|
35712
|
-
|
|
35713
|
-
//#region src/deployment/deploy-engine/noecho.ts
|
|
35521
|
+
// src/deployment/deploy-engine/noecho.ts
|
|
35714
35522
|
var NoEchoRunState = class {
|
|
35715
35523
|
noEchoAttributeResources = /* @__PURE__ */ new Map();
|
|
35716
35524
|
persistedNoEchoAttributes = /* @__PURE__ */ new Map();
|
|
@@ -36091,8 +35899,7 @@ function noEchoComparisonForTemplate(template, knownConditions, values, resource
|
|
|
36091
35899
|
return (input) => compare(input);
|
|
36092
35900
|
}
|
|
36093
35901
|
|
|
36094
|
-
|
|
36095
|
-
//#region src/deployment/deploy-engine/masking.ts
|
|
35902
|
+
// src/deployment/deploy-engine/masking.ts
|
|
36096
35903
|
var SecretsRunState = class {
|
|
36097
35904
|
perResourceSecrets = /* @__PURE__ */ new Map();
|
|
36098
35905
|
secretNameNeedles = /* @__PURE__ */ new Map();
|
|
@@ -36378,8 +36185,7 @@ function maskedRecordRemedyFor(reads, resources, causeScoped = false) {
|
|
|
36378
36185
|
return [parts.join(" "), ...commandLines].join("\n");
|
|
36379
36186
|
}
|
|
36380
36187
|
|
|
36381
|
-
|
|
36382
|
-
//#region src/deployment/delete-guard-scope.ts
|
|
36188
|
+
// src/deployment/delete-guard-scope.ts
|
|
36383
36189
|
const storage$1 = new AsyncLocalStorage();
|
|
36384
36190
|
function collectDeleteGuards(sink, fn) {
|
|
36385
36191
|
return storage$1.run(sink, fn);
|
|
@@ -36396,8 +36202,7 @@ function reportDeleteGuards(result, target) {
|
|
|
36396
36202
|
});
|
|
36397
36203
|
}
|
|
36398
36204
|
|
|
36399
|
-
|
|
36400
|
-
//#region src/deployment/superseded-resources.ts
|
|
36205
|
+
// src/deployment/superseded-resources.ts
|
|
36401
36206
|
function supersededResourcesOf(state) {
|
|
36402
36207
|
const rows = state?.supersededResources;
|
|
36403
36208
|
if (!Array.isArray(rows)) return [];
|
|
@@ -36521,8 +36326,7 @@ function holdsSupersededResources(record) {
|
|
|
36521
36326
|
return rows !== void 0 && (!Array.isArray(rows) || rows.length > 0);
|
|
36522
36327
|
}
|
|
36523
36328
|
|
|
36524
|
-
|
|
36525
|
-
//#region src/utils/colors.ts
|
|
36329
|
+
// src/utils/colors.ts
|
|
36526
36330
|
const codes = {
|
|
36527
36331
|
reset: "\x1B[0m",
|
|
36528
36332
|
bright: "\x1B[1m",
|
|
@@ -36541,8 +36345,7 @@ const cyan = (s) => `${codes.cyan}${s}${codes.reset}`;
|
|
|
36541
36345
|
const gray = (s) => `${codes.gray}${s}${codes.reset}`;
|
|
36542
36346
|
const bold = (s) => `${codes.bright}${s}${codes.reset}`;
|
|
36543
36347
|
|
|
36544
|
-
|
|
36545
|
-
//#region src/deployment/rollback-executor/replay-scope.ts
|
|
36348
|
+
// src/deployment/rollback-executor/replay-scope.ts
|
|
36546
36349
|
function withReplayDeletePrinting(scope, fn) {
|
|
36547
36350
|
const deployBag = scope.ctx.logOnlyNeedlesFor?.(scope.op.logicalId);
|
|
36548
36351
|
return withPrintingSecrets(scope.secrets, () => deployBag === void 0 ? fn() : withPrintingSecrets(deployBag, fn));
|
|
@@ -36558,8 +36361,7 @@ function noteRolledBackCreate(scope, op, record) {
|
|
|
36558
36361
|
scope.onRolledBackCreate?.(create);
|
|
36559
36362
|
}
|
|
36560
36363
|
|
|
36561
|
-
|
|
36562
|
-
//#region src/deployment/rollback-executor/replaced-survivor.ts
|
|
36364
|
+
// src/deployment/rollback-executor/replaced-survivor.ts
|
|
36563
36365
|
function replacedDeleteFailureVerdict(error) {
|
|
36564
36366
|
if (isDeleteStarted(error)) return "unconfirmed";
|
|
36565
36367
|
return isRefusedByName(error) ? "kept" : "unconfirmed";
|
|
@@ -36606,8 +36408,7 @@ async function readSurvivor(s, oldType) {
|
|
|
36606
36408
|
}
|
|
36607
36409
|
}
|
|
36608
36410
|
|
|
36609
|
-
|
|
36610
|
-
//#region src/deployment/stack-records-scope.ts
|
|
36411
|
+
// src/deployment/stack-records-scope.ts
|
|
36611
36412
|
async function awaitInFlightSibling(view, self, sibling) {
|
|
36612
36413
|
const waiting = view.waiting;
|
|
36613
36414
|
if (waiting === void 0 || waiting.has(sibling.logicalId)) return void 0;
|
|
@@ -36650,8 +36451,7 @@ function replayStackRecordsView(records, orphanLogicalIds = /* @__PURE__ */ new
|
|
|
36650
36451
|
};
|
|
36651
36452
|
}
|
|
36652
36453
|
|
|
36653
|
-
|
|
36654
|
-
//#region src/deployment/deploy-engine/name-collision.ts
|
|
36454
|
+
// src/deployment/deploy-engine/name-collision.ts
|
|
36655
36455
|
function replacementNameOrigin(logicalId, physicalId) {
|
|
36656
36456
|
if (looksLikeCdkdGeneratedName(physicalId, logicalId, getCurrentStackName(), getCurrentStackInstanceId())) return {
|
|
36657
36457
|
descriptor: `The physical name (${physicalId}) was GENERATED by cdkd from the construct's logical id rather than declared in your template, and that derivation has no random component — so the new resource asks for exactly the name the existing one still holds`,
|
|
@@ -36729,8 +36529,7 @@ function isReplacementNameRefusal(error, logicalId) {
|
|
|
36729
36529
|
return false;
|
|
36730
36530
|
}
|
|
36731
36531
|
|
|
36732
|
-
|
|
36733
|
-
//#region src/deployment/deploy-engine/replacement.ts
|
|
36532
|
+
// src/deployment/deploy-engine/replacement.ts
|
|
36734
36533
|
var ReplacementRunState = class {
|
|
36735
36534
|
replacedDeleteSkips = /* @__PURE__ */ new Map();
|
|
36736
36535
|
deferredReplacedDeletes = void 0;
|
|
@@ -37085,8 +36884,7 @@ function warnUnretriedReplacedDeletes(run, deps, why) {
|
|
|
37085
36884
|
for (const [logicalId, entry] of deferred ?? []) withPrintingSecrets(secretNameBagFor(deps.secretsRun(), logicalId), () => deps.logger.warn(safeMsg` ⚠ Failed to delete old resource ${logicalId} (${entry.physicalId}): ${entry.failureMessage} (${noteFor(logicalId)})`));
|
|
37086
36885
|
}
|
|
37087
36886
|
|
|
37088
|
-
|
|
37089
|
-
//#region src/analyzer/refactor-pairing.ts
|
|
36887
|
+
// src/analyzer/refactor-pairing.ts
|
|
37090
36888
|
const UNPAIRABLE_TYPES = /* @__PURE__ */ new Set(["AWS::CDK::Metadata", "AWS::CloudFormation::Stack"]);
|
|
37091
36889
|
function isPairableType(resourceType) {
|
|
37092
36890
|
return !UNPAIRABLE_TYPES.has(resourceType);
|
|
@@ -37256,8 +37054,7 @@ function splitLocation(location) {
|
|
|
37256
37054
|
};
|
|
37257
37055
|
}
|
|
37258
37056
|
|
|
37259
|
-
|
|
37260
|
-
//#region src/analyzer/refactor-hints.ts
|
|
37057
|
+
// src/analyzer/refactor-hints.ts
|
|
37261
37058
|
function findRefactorHints(stacks) {
|
|
37262
37059
|
const hints = /* @__PURE__ */ new Map();
|
|
37263
37060
|
for (const env of new Set(stacks.map((s) => s.env))) {
|
|
@@ -37332,8 +37129,7 @@ function withMovedTo(changes, hints) {
|
|
|
37332
37129
|
});
|
|
37333
37130
|
}
|
|
37334
37131
|
|
|
37335
|
-
|
|
37336
|
-
//#region src/analyzer/destructive-changes.ts
|
|
37132
|
+
// src/analyzer/destructive-changes.ts
|
|
37337
37133
|
const IGNORED_RESOURCE_TYPES = /* @__PURE__ */ new Set(["AWS::CDK::Metadata"]);
|
|
37338
37134
|
const PATH_METADATA_KEY = "aws:cdk:path";
|
|
37339
37135
|
function findDestructiveChanges(stackName, changes, records, template, recreateTargets = /* @__PURE__ */ new Set()) {
|
|
@@ -37408,8 +37204,7 @@ function withConstructPath(record, path) {
|
|
|
37408
37204
|
};
|
|
37409
37205
|
}
|
|
37410
37206
|
|
|
37411
|
-
|
|
37412
|
-
//#region src/deployment/masking-retry-logger.ts
|
|
37207
|
+
// src/deployment/masking-retry-logger.ts
|
|
37413
37208
|
function maskingRetryLogger(logger, secrets) {
|
|
37414
37209
|
return {
|
|
37415
37210
|
debug: (msg) => logger.debug(maskSecretsInText(msg, secrets)),
|
|
@@ -37417,8 +37212,7 @@ function maskingRetryLogger(logger, secrets) {
|
|
|
37417
37212
|
};
|
|
37418
37213
|
}
|
|
37419
37214
|
|
|
37420
|
-
|
|
37421
|
-
//#region src/deployment/deploy-engine/options.ts
|
|
37215
|
+
// src/deployment/deploy-engine/options.ts
|
|
37422
37216
|
const DEFAULT_RESOURCE_WARN_AFTER_MS = 3e5;
|
|
37423
37217
|
const DEFAULT_RESOURCE_TIMEOUT_MS = 18e5;
|
|
37424
37218
|
const DEFAULT_UNSETTLED_REVERT_WAIT = {
|
|
@@ -37426,8 +37220,7 @@ const DEFAULT_UNSETTLED_REVERT_WAIT = {
|
|
|
37426
37220
|
pollMs: 1e4
|
|
37427
37221
|
};
|
|
37428
37222
|
|
|
37429
|
-
|
|
37430
|
-
//#region src/analyzer/skipped-outputs.ts
|
|
37223
|
+
// src/analyzer/skipped-outputs.ts
|
|
37431
37224
|
function canonicalJson$3(value) {
|
|
37432
37225
|
return JSON.stringify(value, (_key, v) => {
|
|
37433
37226
|
if (v !== null && typeof v === "object" && !Array.isArray(v)) {
|
|
@@ -37541,8 +37334,7 @@ function skippedOutputsEqual(a, b) {
|
|
|
37541
37334
|
return aKeys.every((k) => Object.prototype.hasOwnProperty.call(b, k) && a?.[k] === b?.[k]);
|
|
37542
37335
|
}
|
|
37543
37336
|
|
|
37544
|
-
|
|
37545
|
-
//#region src/deployment/outputs-export-alias/names.ts
|
|
37337
|
+
// src/deployment/outputs-export-alias/names.ts
|
|
37546
37338
|
function isOutputSuppressedByCondition(output, conditions) {
|
|
37547
37339
|
return output.Condition !== void 0 && conditions?.[output.Condition] === false;
|
|
37548
37340
|
}
|
|
@@ -37558,8 +37350,7 @@ function isExportAliasCollision(exportName, outputKey, ownedOutputNames) {
|
|
|
37558
37350
|
return exportName !== outputKey && ownedOutputNames.has(exportName);
|
|
37559
37351
|
}
|
|
37560
37352
|
|
|
37561
|
-
|
|
37562
|
-
//#region src/deployment/outputs-export-alias/secret-scan.ts
|
|
37353
|
+
// src/deployment/outputs-export-alias/secret-scan.ts
|
|
37563
37354
|
const MIN_SECRET_NEEDLE = 4;
|
|
37564
37355
|
const SECRET_SCAN_INVISIBLES = /[\p{Cc}\p{Cf}\p{Me}\p{Zl}\p{Zp}\p{Default_Ignorable_Code_Point}]/gu;
|
|
37565
37356
|
const SECRET_DETECTION_ONLY = /\p{Mn}/gu;
|
|
@@ -37678,8 +37469,7 @@ function maskEveryOccurrence(text, exposure) {
|
|
|
37678
37469
|
return maskMatchSpans(text, Array.from(exposure.keys()).filter((value) => value !== ""), "***");
|
|
37679
37470
|
}
|
|
37680
37471
|
|
|
37681
|
-
|
|
37682
|
-
//#region src/deployment/outputs-export-alias/warnings.ts
|
|
37472
|
+
// src/deployment/outputs-export-alias/warnings.ts
|
|
37683
37473
|
function secretBearingExportNameWarning(outputKey, exportName, exposure, secrets, noEchoOnly = false) {
|
|
37684
37474
|
const corpus = printingCorpusOf(secrets ?? exposure);
|
|
37685
37475
|
const name = secretSafeKeyDisplay(exportName, corpus, exposure);
|
|
@@ -37757,8 +37547,7 @@ function exportAliasCollisionScrubWarning(outputKey, exportName, secrets) {
|
|
|
37757
37547
|
return `Output ${ownerDisplay.kind === "withheld" && exportDisplay.kind === "withheld" ? "<the owning output, name withheld: contains a secret>" : displayTextOrWithheld(ownerDisplay)} exports as ${exportDisplay.kind === "withheld" ? shown : `"${shown}"`}, which is also the name of another output in this stack — state cannot say which of the two ${storedUnder} came from, so that key is redacted by value match instead of by template position, and two references resolving to the same value could still collapse there. Rename the export, or the colliding output, and redeploy.`;
|
|
37758
37548
|
}
|
|
37759
37549
|
|
|
37760
|
-
|
|
37761
|
-
//#region src/deployment/deploy-engine/outputs.ts
|
|
37550
|
+
// src/deployment/deploy-engine/outputs.ts
|
|
37762
37551
|
var OutputsRunState = class {
|
|
37763
37552
|
outputSecrets = /* @__PURE__ */ new Map();
|
|
37764
37553
|
outputsPassSecretMaps = [];
|
|
@@ -37925,8 +37714,7 @@ function seedOnlyAliasRefusal(seed) {
|
|
|
37925
37714
|
};
|
|
37926
37715
|
}
|
|
37927
37716
|
|
|
37928
|
-
|
|
37929
|
-
//#region src/analyzer/parameter-dependence.ts
|
|
37717
|
+
// src/analyzer/parameter-dependence.ts
|
|
37930
37718
|
const KNOWN_INTRINSICS = /* @__PURE__ */ new Set([
|
|
37931
37719
|
"Fn::GetAtt",
|
|
37932
37720
|
"Fn::Join",
|
|
@@ -38113,8 +37901,7 @@ function resourcesNamingDeclaredParameter(template) {
|
|
|
38113
37901
|
}
|
|
38114
37902
|
}
|
|
38115
37903
|
|
|
38116
|
-
|
|
38117
|
-
//#region src/deployment/masked-baseline-recapture.ts
|
|
37904
|
+
// src/deployment/masked-baseline-recapture.ts
|
|
38118
37905
|
function isMaskedBaselineRecaptureCandidate(record) {
|
|
38119
37906
|
if (record.observedBaselineRefused === true) return false;
|
|
38120
37907
|
const observed = record.observedProperties;
|
|
@@ -38230,8 +38017,7 @@ function recaptureMaskedBaseline(args) {
|
|
|
38230
38017
|
return changed ? result : void 0;
|
|
38231
38018
|
}
|
|
38232
38019
|
|
|
38233
|
-
|
|
38234
|
-
//#region src/state/name-generation.ts
|
|
38020
|
+
// src/state/name-generation.ts
|
|
38235
38021
|
var MalformedNameGenerationError = class extends Error {
|
|
38236
38022
|
constructor(where, reason = "malformed") {
|
|
38237
38023
|
super(`The state record holds a name generation for ${displayIdent(where)} that is ` + (reason === "exhausted" ? "too large to derive the next one from (the next is not a safe integer). " : "not a non-negative integer. ") + "cdkd does not guess which name the resource was given, since the next replacement's name derives from it; restore the field from an earlier version of state.json.");
|
|
@@ -38360,8 +38146,7 @@ function retiredNameGenerationsLeaving(state, remaining) {
|
|
|
38360
38146
|
}
|
|
38361
38147
|
}
|
|
38362
38148
|
|
|
38363
|
-
|
|
38364
|
-
//#region src/deployment/update-outcome.ts
|
|
38149
|
+
// src/deployment/update-outcome.ts
|
|
38365
38150
|
function updatePartialReason(result) {
|
|
38366
38151
|
if (!result || result.outcome !== "partial") return void 0;
|
|
38367
38152
|
if (typeof result.reason !== "string") return UNSPECIFIED_PARTIAL_REASON;
|
|
@@ -38373,8 +38158,7 @@ function updatePartialMessage(reason) {
|
|
|
38373
38158
|
return `partial (${reason})`;
|
|
38374
38159
|
}
|
|
38375
38160
|
|
|
38376
|
-
|
|
38377
|
-
//#region src/provisioning/redacted-delete-address.ts
|
|
38161
|
+
// src/provisioning/redacted-delete-address.ts
|
|
38378
38162
|
function isRedactedRecordedValue(value) {
|
|
38379
38163
|
if (carriesSecretMask(value)) return true;
|
|
38380
38164
|
let text;
|
|
@@ -38398,8 +38182,7 @@ function redactedDeleteAddressSkip(logger, logicalId, what, redactedFields, cont
|
|
|
38398
38182
|
};
|
|
38399
38183
|
}
|
|
38400
38184
|
|
|
38401
|
-
|
|
38402
|
-
//#region src/deployment/rollback-executor/replay-inline-policy-restore.ts
|
|
38185
|
+
// src/deployment/rollback-executor/replay-inline-policy-restore.ts
|
|
38403
38186
|
async function restoreHeldInlinePolicies(writers, stateResources, stackName, ctx, result, options = {}) {
|
|
38404
38187
|
for (const removal of writers.takeHeldRemovals(stateResources)) await restoreOne(removal, stateResources, stackName, ctx, result, options.refuseAll === true);
|
|
38405
38188
|
}
|
|
@@ -38478,8 +38261,7 @@ function serializedDocument(document) {
|
|
|
38478
38261
|
return isRedactedRecordedValue(document) ? void 0 : JSON.stringify(document);
|
|
38479
38262
|
}
|
|
38480
38263
|
|
|
38481
|
-
|
|
38482
|
-
//#region src/deployment/producer-regions-scope.ts
|
|
38264
|
+
// src/deployment/producer-regions-scope.ts
|
|
38483
38265
|
const producerRegionsStore = new AsyncLocalStorage();
|
|
38484
38266
|
function withProducerRegions(evidence, fn) {
|
|
38485
38267
|
return producerRegionsStore.run(evidence, fn);
|
|
@@ -38502,8 +38284,7 @@ function inheritProducerRegions(own, inherited) {
|
|
|
38502
38284
|
};
|
|
38503
38285
|
}
|
|
38504
38286
|
|
|
38505
|
-
|
|
38506
|
-
//#region src/deployment/rollback-executor/replay-secrets.ts
|
|
38287
|
+
// src/deployment/rollback-executor/replay-secrets.ts
|
|
38507
38288
|
function replayProducerRegionEvidence(ctx) {
|
|
38508
38289
|
return {
|
|
38509
38290
|
regions: ctx.importedProducerRegions ?? [],
|
|
@@ -38617,8 +38398,7 @@ function isPlainRecord$1(value) {
|
|
|
38617
38398
|
return typeof value === "object" && value !== null && !Array.isArray(value) && hasPlainPrototype$1(value);
|
|
38618
38399
|
}
|
|
38619
38400
|
|
|
38620
|
-
|
|
38621
|
-
//#region src/deployment/type-change-guard.ts
|
|
38401
|
+
// src/deployment/type-change-guard.ts
|
|
38622
38402
|
function equalIdNamesDifferentResources(input) {
|
|
38623
38403
|
if (input.resourceType === "AWS::Lambda::Permission") return permissionsOnDifferentFunctions(input.oldProperties, input.newProperties);
|
|
38624
38404
|
if (input.resourceType !== "AWS::Glue::Table" || input.physicalId === void 0) return false;
|
|
@@ -38676,8 +38456,7 @@ function renderNestedStackTypeChangeRefusal(typeChanges, stackName) {
|
|
|
38676
38456
|
return `Refusing to deploy ${stackName}: ` + (typeChanges.length === 1 ? `a resource changes its Type ` : `${typeChanges.length} resources change their Type `) + `into or out of ${NESTED_STACK_RESOURCE_TYPE}, which cdkd does not replace in place.\n${rows.join("\n")}\n Deploy this as two changes instead: give the new resource a DIFFERENT logical id (in CDK, rename the construct) so the existing row is deleted through its own type's provider and the new one is created under its own — or remove the resource in one deploy and add its replacement in the next. There is no flag that overrides this refusal.`;
|
|
38677
38457
|
}
|
|
38678
38458
|
|
|
38679
|
-
|
|
38680
|
-
//#region src/deployment/rollback-executor/orphan-identity.ts
|
|
38459
|
+
// src/deployment/rollback-executor/orphan-identity.ts
|
|
38681
38460
|
const UNIQUE_PHYSICAL_ID_TYPES = /* @__PURE__ */ new Set([
|
|
38682
38461
|
"AWS::EC2::VPC",
|
|
38683
38462
|
"AWS::EC2::Subnet",
|
|
@@ -38767,8 +38546,7 @@ async function askForeignHolder(foreignHolder, op) {
|
|
|
38767
38546
|
}
|
|
38768
38547
|
}
|
|
38769
38548
|
|
|
38770
|
-
|
|
38771
|
-
//#region src/deployment/rollback-executor/plan.ts
|
|
38549
|
+
// src/deployment/rollback-executor/plan.ts
|
|
38772
38550
|
function journaledOldTypes(op) {
|
|
38773
38551
|
return {
|
|
38774
38552
|
stamped: nonEmptyString(op.previousResourceType) ? op.previousResourceType : void 0,
|
|
@@ -39190,8 +38968,7 @@ function someStringLeaf(value, test, depth = 0) {
|
|
|
39190
38968
|
return (Array.isArray(value) ? value : Object.values(value)).some((child) => someStringLeaf(child, test, depth + 1));
|
|
39191
38969
|
}
|
|
39192
38970
|
|
|
39193
|
-
|
|
39194
|
-
//#region src/deployment/rollback-executor/replay-noecho.ts
|
|
38971
|
+
// src/deployment/rollback-executor/replay-noecho.ts
|
|
39195
38972
|
const NOECHO_REPLAY_READBACK_TIMEOUT_MS = 3e4;
|
|
39196
38973
|
const NESTED_STACK_TYPE$3 = "AWS::CloudFormation::Stack";
|
|
39197
38974
|
function coordinatePath(coordinate) {
|
|
@@ -39355,8 +39132,7 @@ function maskRestoredNoEchoRecord(record, baseline, substituted = []) {
|
|
|
39355
39132
|
};
|
|
39356
39133
|
}
|
|
39357
39134
|
|
|
39358
|
-
|
|
39359
|
-
//#region src/deployment/rollback-executor/replay-props.ts
|
|
39135
|
+
// src/deployment/rollback-executor/replay-props.ts
|
|
39360
39136
|
async function resolveReplayProps(props, resolvers, secrets, execCtx, logicalId, record) {
|
|
39361
39137
|
if (props === void 0) return void 0;
|
|
39362
39138
|
const recordedRegions = recordedReferenceRegions(record);
|
|
@@ -39456,8 +39232,7 @@ function refuseMaskedReplayBaseline(props, logicalId, inert = []) {
|
|
|
39456
39232
|
throw new CdkdError(`Cannot roll ${shownLogicalId(logicalId)} back: its recorded baseline holds the redaction mask ('${"***"}'), so cdkd would write that literal to the live resource. There are five ways a baseline comes to hold it. (1) A NoEcho custom-resource value was resolved there: restore the property with 'cdkd deploy' AFTER forcing that custom resource to update (change one of its properties, e.g. a nonce), so its handler runs again and supplies the real value — an ordinary re-deploy leaves the resource unchanged, so the handler does not run and the mask stays. (2) The Fn::Base64 encoding of a secret value (a {{resolve:...}} dynamic reference under Fn::Base64, such as EC2 UserData), which cdkd never records: restore the property with a 'cdkd deploy' that changes this resource, which sends it the encoded value again — a re-deploy that leaves this resource unchanged sends it nothing. Every rollback to such a baseline refuses, so to end this, stop encoding the secret into the property (have the resource read the secret at run time instead — not by writing the secret's plaintext into the template, which cdkd would then record in state in the clear). (3) The value was SPLICED from a masked record of ANOTHER resource — by 'cdkd orphan --force', or by 'cdkd import' resolving an Fn::GetAtt or a Ref over a value the Cloud Control fallback had masked. Repair the record that HOLDS the mask ('cdkd import <stack> --resource <logicalId>=<physicalId> --force', granting cloudformation:DescribeType first if the import warned that it could not read the schema), then re-run whichever command wrote this property. (4) A NoEcho template parameter's value, which cdkd stores only as the mask: restore the property with 'cdkd deploy', which sends the parameter's value again. (5) Two secret values cdkd resolved overlap inside the value, so no single {{resolve:...}} reference renders it and cdkd stored the mask rather than part of a secret: restore the property with a 'cdkd deploy' that changes this resource, which sends it the value again. Every rollback to such a baseline refuses while the two values still overlap there, so to end this, change the property (or rotate one of the secrets) so that they no longer overlap. See https://github.com/go-to-k/cdkd/issues/2449.`, "ROLLBACK_REDACTED_BASELINE");
|
|
39457
39233
|
}
|
|
39458
39234
|
|
|
39459
|
-
|
|
39460
|
-
//#region src/analyzer/drift-normalize.ts
|
|
39235
|
+
// src/analyzer/drift-normalize.ts
|
|
39461
39236
|
function canonicalizeTagListsDeep(v) {
|
|
39462
39237
|
if (Array.isArray(v)) {
|
|
39463
39238
|
const mapped = v.map(canonicalizeTagListsDeep);
|
|
@@ -39544,8 +39319,7 @@ function walkUnordered(v, path, paths) {
|
|
|
39544
39319
|
return v;
|
|
39545
39320
|
}
|
|
39546
39321
|
|
|
39547
|
-
|
|
39548
|
-
//#region src/analyzer/drift-calculator.ts
|
|
39322
|
+
// src/analyzer/drift-calculator.ts
|
|
39549
39323
|
function calculateResourceDrift(stateProperties, awsProperties, options) {
|
|
39550
39324
|
const drifts = [];
|
|
39551
39325
|
const ignore = options?.ignorePaths ?? [];
|
|
@@ -39694,8 +39468,7 @@ function isPlainObject$5(value) {
|
|
|
39694
39468
|
return typeof value === "object" && value !== null;
|
|
39695
39469
|
}
|
|
39696
39470
|
|
|
39697
|
-
|
|
39698
|
-
//#region src/deployment/unsettled-convergence.ts
|
|
39471
|
+
// src/deployment/unsettled-convergence.ts
|
|
39699
39472
|
const MERGE_SEMANTICS_KEYS = /* @__PURE__ */ new Set(["Tags"]);
|
|
39700
39473
|
async function readLive(args, names) {
|
|
39701
39474
|
const { provider, physicalId, logicalId, resourceType, recordedProperties } = args;
|
|
@@ -39873,8 +39646,7 @@ function addedByFailedUpdateWarning(logicalId, resourceType, names) {
|
|
|
39873
39646
|
return safeMsg`${logicalId} (${resourceType}): ${one ? "property" : "properties"} ${names.join(", ")} ${one ? "is" : "are"} set on the resource but in no template: an earlier failed update applied ${one ? "it" : "them"}. cdkd has no default to reset ${one ? "it" : "them"} to, so the value stays; remove it by hand if it should not be there.`;
|
|
39874
39647
|
}
|
|
39875
39648
|
|
|
39876
|
-
|
|
39877
|
-
//#region src/deployment/rollback-executor/replay-retry.ts
|
|
39649
|
+
// src/deployment/rollback-executor/replay-retry.ts
|
|
39878
39650
|
const RECREATE_RETRY_SCHEDULE = {
|
|
39879
39651
|
maxRetries: 8,
|
|
39880
39652
|
initialDelayMs: 2e3,
|
|
@@ -39968,8 +39740,7 @@ function copyClaimingProviderBag(properties) {
|
|
|
39968
39740
|
return isSameGenerationBag(properties) ? markSameGenerationBag(copy) : copy;
|
|
39969
39741
|
}
|
|
39970
39742
|
|
|
39971
|
-
|
|
39972
|
-
//#region src/deployment/rollback-executor/replay-orphan-delete.ts
|
|
39743
|
+
// src/deployment/rollback-executor/replay-orphan-delete.ts
|
|
39973
39744
|
async function replayOrphanFlag(s) {
|
|
39974
39745
|
const { op, stateResources, stackName, ctx, afterOp, logger, mask } = s;
|
|
39975
39746
|
if (op.changeType === "CREATE") {
|
|
@@ -40087,8 +39858,7 @@ async function replayDelete(s) {
|
|
|
40087
39858
|
});
|
|
40088
39859
|
}
|
|
40089
39860
|
|
|
40090
|
-
|
|
40091
|
-
//#region src/deployment/rollback-executor/replay-revert.ts
|
|
39861
|
+
// src/deployment/rollback-executor/replay-revert.ts
|
|
40092
39862
|
async function replayReadopt(s, survivor) {
|
|
40093
39863
|
const { op, stateResources, stackName, ctx, result, inlinePolicyWriters, afterOp, logger, mask } = s;
|
|
40094
39864
|
const oldKind = survivor === void 0 ? "retained" : "surviving";
|
|
@@ -40267,8 +40037,7 @@ async function replayRevert(s) {
|
|
|
40267
40037
|
});
|
|
40268
40038
|
}
|
|
40269
40039
|
|
|
40270
|
-
|
|
40271
|
-
//#region src/deployment/rollback-executor/replay-reverse-replacement.ts
|
|
40040
|
+
// src/deployment/rollback-executor/replay-reverse-replacement.ts
|
|
40272
40041
|
function refuseSameIdParentReversal(s) {
|
|
40273
40042
|
const { op, stateResources, ctx, createdInSegment, orphanLogicalIds } = s;
|
|
40274
40043
|
const children = Object.entries(stateResources).filter(([logicalId, record]) => logicalId !== op.logicalId && !createdInSegment.has(logicalId) && !orphanLogicalIds.has(logicalId) && mayBeStoredIn(record.resourceType, op.resourceType) && (!Array.isArray(record.dependencies) || record.dependencies.includes(op.logicalId))).map(([logicalId]) => logicalId).sort();
|
|
@@ -40666,8 +40435,7 @@ function survivorUnprovenRefusal(s, oldType, verdict) {
|
|
|
40666
40435
|
return ownRemedyError(markNonRetryable(new CdkdError(`Cannot reverse the replacement of ${refusalLogicalId(op.logicalId)} (${refusalResourceType(oldType)}): the deploy did not confirm that it deleted the old resource (${oldShown}), so it may still exist, and ${why}. Nothing was sent and the journal is kept.` + (remedy.offered ? " To keep the new resource in its place instead, re-run with the command below, then delete the old resource by hand if it still exists." : "") + `${remedy.clause}${describedPhysicalIdPointer(oldShown)}` + remedy.line, "REPLACED_SURVIVOR_UNPROVEN")));
|
|
40667
40436
|
}
|
|
40668
40437
|
|
|
40669
|
-
|
|
40670
|
-
//#region src/provisioning/remove-protection-types.ts
|
|
40438
|
+
// src/provisioning/remove-protection-types.ts
|
|
40671
40439
|
const SDK_REMOVE_PROTECTION_TYPES = [
|
|
40672
40440
|
"AWS::Logs::LogGroup",
|
|
40673
40441
|
"AWS::RDS::DBInstance",
|
|
@@ -40692,8 +40460,7 @@ function removeProtectionTypeList() {
|
|
|
40692
40460
|
return `${types.slice(0, -1).join(", ")}, and ${types[types.length - 1]}`;
|
|
40693
40461
|
}
|
|
40694
40462
|
|
|
40695
|
-
|
|
40696
|
-
//#region src/deployment/rollback-executor.ts
|
|
40463
|
+
// src/deployment/rollback-executor.ts
|
|
40697
40464
|
function nonEmptyOrUndefined(items) {
|
|
40698
40465
|
return items.length > 0 ? items : void 0;
|
|
40699
40466
|
}
|
|
@@ -41281,8 +41048,7 @@ async function replayFailedOperations(...args) {
|
|
|
41281
41048
|
return await withProducerRegions(() => replayProducerRegionEvidence(args[3]), () => withStackRecords(replayStackRecordsView(args[1]), () => replayFailedOperationsUnbound(...args)));
|
|
41282
41049
|
}
|
|
41283
41050
|
|
|
41284
|
-
|
|
41285
|
-
//#region src/deployment/deploy-engine/observed-capture.ts
|
|
41051
|
+
// src/deployment/deploy-engine/observed-capture.ts
|
|
41286
41052
|
var ObservedCapture = class {
|
|
41287
41053
|
observedCaptureTasks = /* @__PURE__ */ new Map();
|
|
41288
41054
|
recapturedBaselines = /* @__PURE__ */ new WeakMap();
|
|
@@ -41508,8 +41274,7 @@ function stampReasonlessParameterRefusals(logger, stateResources, template) {
|
|
|
41508
41274
|
if (stamped > 0) logger.debug(safeMsg`${stamped} resource(s) carry an observed-baseline refusal recorded without a reason by an older cdkd, and their template definition reads a template parameter: treated as an unverifiable-parameter refusal (kept until the resource is replaced or re-imported against a CloudFormation stack that proves the parameter).`);
|
|
41509
41275
|
}
|
|
41510
41276
|
|
|
41511
|
-
|
|
41512
|
-
//#region src/deployment/deploy-engine/attribute-healer.ts
|
|
41277
|
+
// src/deployment/deploy-engine/attribute-healer.ts
|
|
41513
41278
|
var AttributeHealer = class {
|
|
41514
41279
|
heals = /* @__PURE__ */ new Map();
|
|
41515
41280
|
healed = /* @__PURE__ */ new Map();
|
|
@@ -41595,8 +41360,7 @@ function healPrintingBag(baseline, logicalId, resource, namingSecrets) {
|
|
|
41595
41360
|
return hit.judge(logicalId);
|
|
41596
41361
|
}
|
|
41597
41362
|
|
|
41598
|
-
|
|
41599
|
-
//#region src/state/pending-moves.ts
|
|
41363
|
+
// src/state/pending-moves.ts
|
|
41600
41364
|
function pendingMovesOutOf(state) {
|
|
41601
41365
|
const raw = state.pendingMovesOut;
|
|
41602
41366
|
if (raw === void 0) return {
|
|
@@ -41630,8 +41394,7 @@ function refusePendingMovesOut(state, stackName, region, command) {
|
|
|
41630
41394
|
throw markNonRetryable(new CdkdError(pendingMovesRefusalMessage(state, stackName, region, command), "REFACTOR_UNFINISHED"));
|
|
41631
41395
|
}
|
|
41632
41396
|
|
|
41633
|
-
|
|
41634
|
-
//#region src/state/refactor-marker.ts
|
|
41397
|
+
// src/state/refactor-marker.ts
|
|
41635
41398
|
function refactorMarkerMovesOf(body) {
|
|
41636
41399
|
const raw = body?.moves;
|
|
41637
41400
|
if (body === null || typeof body !== "object" || !Array.isArray(raw)) return {
|
|
@@ -41725,8 +41488,7 @@ function sameMove(a, b) {
|
|
|
41725
41488
|
return a.fromStack === b.fromStack && a.fromRegion === b.fromRegion && a.from === b.from;
|
|
41726
41489
|
}
|
|
41727
41490
|
|
|
41728
|
-
|
|
41729
|
-
//#region src/deployment/deploy-engine/superseded-retry.ts
|
|
41491
|
+
// src/deployment/deploy-engine/superseded-retry.ts
|
|
41730
41492
|
async function retryCarriedSupersededResources(engine, host, carried, resources, options = {}) {
|
|
41731
41493
|
let changed = false;
|
|
41732
41494
|
if (carried.length === 0) return changed;
|
|
@@ -41788,8 +41550,7 @@ async function retryCarriedSupersededResources(engine, host, carried, resources,
|
|
|
41788
41550
|
return changed;
|
|
41789
41551
|
}
|
|
41790
41552
|
|
|
41791
|
-
|
|
41792
|
-
//#region src/provisioning/name-lookup.ts
|
|
41553
|
+
// src/provisioning/name-lookup.ts
|
|
41793
41554
|
const inFlight = /* @__PURE__ */ new Map();
|
|
41794
41555
|
const waiting = /* @__PURE__ */ new Map();
|
|
41795
41556
|
async function withApiLimit(api, max, fn) {
|
|
@@ -41826,8 +41587,7 @@ function isAccessDeniedError(error) {
|
|
|
41826
41587
|
return name === "AccessDenied" || name === "AccessDeniedException" || name === "AuthorizationError" || name === "UnauthorizedOperation" || status === 403;
|
|
41827
41588
|
}
|
|
41828
41589
|
|
|
41829
|
-
|
|
41830
|
-
//#region src/deployment/generated-name-guard.ts
|
|
41590
|
+
// src/deployment/generated-name-guard.ts
|
|
41831
41591
|
const GROUP_WINDOW_MS = 15;
|
|
41832
41592
|
const DEFAULT_TIMING = {
|
|
41833
41593
|
now: () => Date.now(),
|
|
@@ -42443,8 +42203,7 @@ async function lookupType(input, resourceType, group) {
|
|
|
42443
42203
|
});
|
|
42444
42204
|
}
|
|
42445
42205
|
|
|
42446
|
-
|
|
42447
|
-
//#region src/utils/resource-line.ts
|
|
42206
|
+
// src/utils/resource-line.ts
|
|
42448
42207
|
function formatResourceLine(op, logicalId, resourceType, verbOverride) {
|
|
42449
42208
|
const body = `${bold(displaySafe(logicalId))} ${gray(`(${displaySafe(resourceType)})`)}`;
|
|
42450
42209
|
const verb = verbOverride === void 0 ? void 0 : displaySafe(verbOverride);
|
|
@@ -42456,8 +42215,7 @@ function formatResourceLine(op, logicalId, resourceType, verbOverride) {
|
|
|
42456
42215
|
}
|
|
42457
42216
|
}
|
|
42458
42217
|
|
|
42459
|
-
|
|
42460
|
-
//#region src/deployment/rollback-executor/journaled-orphans.ts
|
|
42218
|
+
// src/deployment/rollback-executor/journaled-orphans.ts
|
|
42461
42219
|
const NONE = {
|
|
42462
42220
|
segments: [],
|
|
42463
42221
|
count: 0
|
|
@@ -42907,8 +42665,7 @@ function sameJournaledOrphans(a, b) {
|
|
|
42907
42665
|
return ka.length === kb.length && ka.every((k, i) => k === kb[i]);
|
|
42908
42666
|
}
|
|
42909
42667
|
|
|
42910
|
-
|
|
42911
|
-
//#region src/provisioning/nested-stack-context.ts
|
|
42668
|
+
// src/provisioning/nested-stack-context.ts
|
|
42912
42669
|
const storage = new AsyncLocalStorage();
|
|
42913
42670
|
function withNestedStackContext(ctx, fn) {
|
|
42914
42671
|
return storage.run(ctx, fn);
|
|
@@ -42932,8 +42689,7 @@ async function collectNestedChildUnaddressed(fn) {
|
|
|
42932
42689
|
};
|
|
42933
42690
|
}
|
|
42934
42691
|
|
|
42935
|
-
|
|
42936
|
-
//#region src/deployment/nested-child-journal.ts
|
|
42692
|
+
// src/deployment/nested-child-journal.ts
|
|
42937
42693
|
const NESTED_PENDING_PARENT_REASON = "nested-pending-parent";
|
|
42938
42694
|
const NESTED_STACK_TYPE$2 = "AWS::CloudFormation::Stack";
|
|
42939
42695
|
const MAX_NESTED_WALK_DEPTH = 32;
|
|
@@ -43254,8 +43010,7 @@ async function revertNestedChildFromJournal(args) {
|
|
|
43254
43010
|
}
|
|
43255
43011
|
}
|
|
43256
43012
|
|
|
43257
|
-
|
|
43258
|
-
//#region src/deployment/retained-readoption.ts
|
|
43013
|
+
// src/deployment/retained-readoption.ts
|
|
43259
43014
|
function keptUnderGeneratedName(resource) {
|
|
43260
43015
|
if (typeof resource.physicalId !== "string" || resource.physicalId === "") return false;
|
|
43261
43016
|
const property = explicitNamePropertyFor(resource.resourceType);
|
|
@@ -43331,8 +43086,7 @@ var KeptForReadoption = class {
|
|
|
43331
43086
|
}
|
|
43332
43087
|
};
|
|
43333
43088
|
|
|
43334
|
-
|
|
43335
|
-
//#region src/deployment/deploy-engine/delete.ts
|
|
43089
|
+
// src/deployment/deploy-engine/delete.ts
|
|
43336
43090
|
const keptByEngine = /* @__PURE__ */ new WeakMap();
|
|
43337
43091
|
async function flushKeptForReadoption(engine) {
|
|
43338
43092
|
await keptByEngine.get(engine)?.flush();
|
|
@@ -43492,8 +43246,7 @@ Drop the record with: ${dropCommand}`);
|
|
|
43492
43246
|
deps.logger.info(safeMsg`${deletePrefix}${formatResourceLine("deleted", logicalId, resourceType)}`);
|
|
43493
43247
|
}
|
|
43494
43248
|
|
|
43495
|
-
|
|
43496
|
-
//#region src/deployment/cc-pending-requests.ts
|
|
43249
|
+
// src/deployment/cc-pending-requests.ts
|
|
43497
43250
|
function hasPendingCloudControlRequest(op) {
|
|
43498
43251
|
return op.pendingCloudControlRequest !== void 0;
|
|
43499
43252
|
}
|
|
@@ -43656,8 +43409,7 @@ function withoutPendingRequest(op) {
|
|
|
43656
43409
|
return rest;
|
|
43657
43410
|
}
|
|
43658
43411
|
|
|
43659
|
-
|
|
43660
|
-
//#region src/deployment/orphan-adoption.ts
|
|
43412
|
+
// src/deployment/orphan-adoption.ts
|
|
43661
43413
|
function templateStillDeclares(template, record, nameProperties) {
|
|
43662
43414
|
const declared = template.Resources?.[record.logicalId];
|
|
43663
43415
|
if (!declared) return false;
|
|
@@ -43805,8 +43557,7 @@ function makeSiblingClaimReader(params) {
|
|
|
43805
43557
|
};
|
|
43806
43558
|
}
|
|
43807
43559
|
|
|
43808
|
-
|
|
43809
|
-
//#region src/deployment/deploy-engine/rollback.ts
|
|
43560
|
+
// src/deployment/deploy-engine/rollback.ts
|
|
43810
43561
|
function redactOperationsForJournal(deps, operations) {
|
|
43811
43562
|
return operations.map((op) => {
|
|
43812
43563
|
const secrets = deps.secretsRun().perResourceSecrets.get(op.logicalId);
|
|
@@ -44351,8 +44102,7 @@ async function orphanUntakenResumes(deps, stackName, finalResources) {
|
|
|
44351
44102
|
}
|
|
44352
44103
|
}
|
|
44353
44104
|
|
|
44354
|
-
|
|
44355
|
-
//#region src/provisioning/canonicalize-properties.ts
|
|
44105
|
+
// src/provisioning/canonicalize-properties.ts
|
|
44356
44106
|
function makeCanonicalizePropertiesFn(registry) {
|
|
44357
44107
|
const logger = getLogger().child("canonicalize-properties");
|
|
44358
44108
|
return (resourceType, properties) => {
|
|
@@ -44366,8 +44116,7 @@ function makeCanonicalizePropertiesFn(registry) {
|
|
|
44366
44116
|
};
|
|
44367
44117
|
}
|
|
44368
44118
|
|
|
44369
|
-
|
|
44370
|
-
//#region src/deployment/no-change-outputs-merge.ts
|
|
44119
|
+
// src/deployment/no-change-outputs-merge.ts
|
|
44371
44120
|
function isSecretBearingReferenceString(value) {
|
|
44372
44121
|
if (typeof value !== "string") return false;
|
|
44373
44122
|
return value.includes("{{resolve:secretsmanager:") || value.includes("{{resolve:ssm-secure:");
|
|
@@ -44441,8 +44190,7 @@ function keptWholeReasonText(reason) {
|
|
|
44441
44190
|
}
|
|
44442
44191
|
}
|
|
44443
44192
|
|
|
44444
|
-
|
|
44445
|
-
//#region src/deployment/output-value-preflight.ts
|
|
44193
|
+
// src/deployment/output-value-preflight.ts
|
|
44446
44194
|
function selectsNoValue(value, conditions, assumed, depth = 0) {
|
|
44447
44195
|
if (depth > 64 || value === null || typeof value !== "object" || Array.isArray(value)) return false;
|
|
44448
44196
|
const keys = Object.keys(value);
|
|
@@ -44463,8 +44211,7 @@ function refuseNoValueOutputs(outputs, conditions) {
|
|
|
44463
44211
|
throw markNonRetryable(/* @__PURE__ */ new Error(`Output ${offending.join(", ")} evaluates to AWS::NoValue, and CloudFormation rejects the template for it ("The Value field of every Outputs member must evaluate to a String") before creating anything. To publish an Output only sometimes, give it a Condition instead of selecting AWS::NoValue in its Value.`));
|
|
44464
44212
|
}
|
|
44465
44213
|
|
|
44466
|
-
|
|
44467
|
-
//#region src/analyzer/security-changes.ts
|
|
44214
|
+
// src/analyzer/security-changes.ts
|
|
44468
44215
|
const RESOURCE_SCRUTINY = {
|
|
44469
44216
|
"AWS::Bedrock::KnowledgeBasePolicy": "ResourcePolicyResource",
|
|
44470
44217
|
"AWS::Bedrock::ResourcePolicy": "ResourcePolicyResource",
|
|
@@ -45438,8 +45185,7 @@ function stdoutSupportsColor(env = process.env, argv = process.argv, isTTY = pro
|
|
|
45438
45185
|
return min > 0;
|
|
45439
45186
|
}
|
|
45440
45187
|
|
|
45441
|
-
|
|
45442
|
-
//#region src/analyzer/security-diff.ts
|
|
45188
|
+
// src/analyzer/security-diff.ts
|
|
45443
45189
|
function isSyntheticChange(pc) {
|
|
45444
45190
|
return pc.replacementPropagated === true || pc.inPlacePropagated === true || pc.noEchoPromoted === true || pc.unsettled === true;
|
|
45445
45191
|
}
|
|
@@ -45597,8 +45343,7 @@ function logicalIdToPath(records, template) {
|
|
|
45597
45343
|
return map;
|
|
45598
45344
|
}
|
|
45599
45345
|
|
|
45600
|
-
|
|
45601
|
-
//#region src/deployment/resource-deadline.ts
|
|
45346
|
+
// src/deployment/resource-deadline.ts
|
|
45602
45347
|
var InvalidResourceDeadlineError = class extends Error {
|
|
45603
45348
|
constructor(message) {
|
|
45604
45349
|
super(message);
|
|
@@ -45698,8 +45443,7 @@ function enclosingDeadlineRemainingMs() {
|
|
|
45698
45443
|
return deadlineScope.getStore()?.remainingMs() ?? Number.POSITIVE_INFINITY;
|
|
45699
45444
|
}
|
|
45700
45445
|
|
|
45701
|
-
|
|
45702
|
-
//#region src/deployment/deployment-approval.ts
|
|
45446
|
+
// src/deployment/deployment-approval.ts
|
|
45703
45447
|
const NESTED_STACK_TYPE$1 = "AWS::CloudFormation::Stack";
|
|
45704
45448
|
async function requireDeploymentApproval(args) {
|
|
45705
45449
|
const level = args.options.requireApproval ?? "never";
|
|
@@ -45805,8 +45549,7 @@ function isNoEchoPromotionOnly(change) {
|
|
|
45805
45549
|
return change.changeType === "UPDATE" && (change.attributeChanges?.length ?? 0) === 0 && (change.propertyChanges?.length ?? 0) > 0 && change.propertyChanges.every((pc) => pc.noEchoPromoted === true);
|
|
45806
45550
|
}
|
|
45807
45551
|
|
|
45808
|
-
|
|
45809
|
-
//#region src/deployment/condition-verdicts.ts
|
|
45552
|
+
// src/deployment/condition-verdicts.ts
|
|
45810
45553
|
function conditionInputsFrom(args) {
|
|
45811
45554
|
return (parameter) => {
|
|
45812
45555
|
if (args.unavailable?.has(parameter)) return void 0;
|
|
@@ -46023,8 +45766,7 @@ function conditionVerdictRecordsEqual(a, b) {
|
|
|
46023
45766
|
return names.every((name) => Object.hasOwn(right, name) && left[name].verdict === right[name].verdict && left[name].fingerprint === right[name].fingerprint);
|
|
46024
45767
|
}
|
|
46025
45768
|
|
|
46026
|
-
|
|
46027
|
-
//#region src/utils/nested-template-cycle.ts
|
|
45769
|
+
// src/utils/nested-template-cycle.ts
|
|
46028
45770
|
const NESTED_STACK_TYPE = "AWS::CloudFormation::Stack";
|
|
46029
45771
|
function isAbsoluteAssetPath(p) {
|
|
46030
45772
|
return path.isAbsolute(p) || p.startsWith("/");
|
|
@@ -46164,8 +45906,7 @@ function renderNestedTemplateTreeDefect(defect, stackName, action) {
|
|
|
46164
45906
|
return `The nested template tree under stack ${displayStackName(stackName)} has nested stack ${displayIdent(defect.logicalId)} (reached through ${renderChain(defect.chain)}) with Metadata['aws:asset:path']=${displayAssemblyPath(defect.assetPath)} which is absolute. ${provenance}`;
|
|
46165
45907
|
}
|
|
46166
45908
|
|
|
46167
|
-
|
|
46168
|
-
//#region src/deployment/nested-output-templates.ts
|
|
45909
|
+
// src/deployment/nested-output-templates.ts
|
|
46169
45910
|
function childTemplateLoader(nestedTemplates) {
|
|
46170
45911
|
if (nestedTemplates === void 0) return void 0;
|
|
46171
45912
|
const read = /* @__PURE__ */ new Map();
|
|
@@ -46201,8 +45942,7 @@ function childIndex(template, templatePath) {
|
|
|
46201
45942
|
return index;
|
|
46202
45943
|
}
|
|
46203
45944
|
|
|
46204
|
-
|
|
46205
|
-
//#region src/deployment/recreate-target-promotion.ts
|
|
45945
|
+
// src/deployment/recreate-target-promotion.ts
|
|
46206
45946
|
function recreateTargetIdsFor(recreateTargets, stackName) {
|
|
46207
45947
|
if (recreateTargets === void 0 || recreateTargets.stackName !== stackName) return void 0;
|
|
46208
45948
|
const ids = /* @__PURE__ */ new Set([...recreateTargets.viaCcApi, ...recreateTargets.viaSdkProvider]);
|
|
@@ -46234,8 +45974,7 @@ function promoteRecreateTargets(changes, recreateTargets, stackName) {
|
|
|
46234
45974
|
};
|
|
46235
45975
|
}
|
|
46236
45976
|
|
|
46237
|
-
|
|
46238
|
-
//#region src/deployment/custom-resource-service-token.ts
|
|
45977
|
+
// src/deployment/custom-resource-service-token.ts
|
|
46239
45978
|
const SERVICE_TOKEN_CHANGE_REFUSED = "CUSTOM_RESOURCE_SERVICE_TOKEN_CHANGED";
|
|
46240
45979
|
function uncomparableToken(value) {
|
|
46241
45980
|
if (value === void 0 || value === null || value === "") return "absent";
|
|
@@ -46343,8 +46082,7 @@ function deferredServiceTokenWarning(row) {
|
|
|
46343
46082
|
return `${displayIdent(row.logicalId)}: its ServiceToken reads a resource this deploy replaces, creates or updates, or a value this preview cannot resolve. If it resolves to a different ARN than the one recorded, cdkd deploy refuses the update before invoking any handler and rolls back. A replaced backing function is already deleted by then and the rollback re-creates it; if that fails, the record names a function that no longer exists.`;
|
|
46344
46083
|
}
|
|
46345
46084
|
|
|
46346
|
-
|
|
46347
|
-
//#region src/deployment/read-provenance-sources.ts
|
|
46085
|
+
// src/deployment/read-provenance-sources.ts
|
|
46348
46086
|
function isPlainObject$3(value) {
|
|
46349
46087
|
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
46350
46088
|
}
|
|
@@ -46404,8 +46142,7 @@ function inheritedProvenanceForChildDiff(args) {
|
|
|
46404
46142
|
return out.size === 0 ? void 0 : out;
|
|
46405
46143
|
}
|
|
46406
46144
|
|
|
46407
|
-
|
|
46408
|
-
//#region src/deployment/dag-executor.ts
|
|
46145
|
+
// src/deployment/dag-executor.ts
|
|
46409
46146
|
var DagExecutor = class {
|
|
46410
46147
|
nodes = /* @__PURE__ */ new Map();
|
|
46411
46148
|
logger = getLogger().child("DagExecutor");
|
|
@@ -46531,8 +46268,7 @@ var DagExecutor = class {
|
|
|
46531
46268
|
}
|
|
46532
46269
|
};
|
|
46533
46270
|
|
|
46534
|
-
|
|
46535
|
-
//#region src/analyzer/implicit-delete-deps.ts
|
|
46271
|
+
// src/analyzer/implicit-delete-deps.ts
|
|
46536
46272
|
const IMPLICIT_DELETE_DEPENDENCIES = {
|
|
46537
46273
|
"AWS::EC2::InternetGateway": ["AWS::EC2::VPCGatewayAttachment", "AWS::EC2::NatGateway"],
|
|
46538
46274
|
"AWS::EC2::VPCGatewayAttachment": ["AWS::EC2::NatGateway"],
|
|
@@ -46596,8 +46332,7 @@ function computeImplicitDeleteEdges(resources) {
|
|
|
46596
46332
|
return edges;
|
|
46597
46333
|
}
|
|
46598
46334
|
|
|
46599
|
-
|
|
46600
|
-
//#region src/deployment/deploy-engine/dependencies.ts
|
|
46335
|
+
// src/deployment/deploy-engine/dependencies.ts
|
|
46601
46336
|
function hasPending(executor) {
|
|
46602
46337
|
for (const node of executor.values()) if (node.state === "pending") return true;
|
|
46603
46338
|
return false;
|
|
@@ -46656,8 +46391,7 @@ function addImplicitDeleteDependencies(deleteIds, state, dependedBy, logger) {
|
|
|
46656
46391
|
}
|
|
46657
46392
|
}
|
|
46658
46393
|
|
|
46659
|
-
|
|
46660
|
-
//#region src/deployment/deploy-engine/record-shape.ts
|
|
46394
|
+
// src/deployment/deploy-engine/record-shape.ts
|
|
46661
46395
|
function auditResolvedAssetReferences(options, logicalId, resourceType, resolvedProps) {
|
|
46662
46396
|
const redirect = options.assetRedirect;
|
|
46663
46397
|
if (!redirect) return;
|
|
@@ -46701,8 +46435,7 @@ function secretNamedAttributesField(result, previous) {
|
|
|
46701
46435
|
return names.length > 0 ? { secretNamedAttributes: names } : {};
|
|
46702
46436
|
}
|
|
46703
46437
|
|
|
46704
|
-
|
|
46705
|
-
//#region src/deployment/prior-attempt-scope.ts
|
|
46438
|
+
// src/deployment/prior-attempt-scope.ts
|
|
46706
46439
|
const priorAttemptStore = new AsyncLocalStorage();
|
|
46707
46440
|
function withPriorAttempts(lookup, fn) {
|
|
46708
46441
|
return priorAttemptStore.run(lookup, fn);
|
|
@@ -46785,8 +46518,7 @@ function isRefusedBeforeApplying(error, logicalId) {
|
|
|
46785
46518
|
return false;
|
|
46786
46519
|
}
|
|
46787
46520
|
|
|
46788
|
-
|
|
46789
|
-
//#region src/deployment/label-routing.ts
|
|
46521
|
+
// src/deployment/label-routing.ts
|
|
46790
46522
|
function deriveLabelRouting(change, existingState, registry, forceCcApi = false) {
|
|
46791
46523
|
try {
|
|
46792
46524
|
if (change.changeType === "DELETE") return existingState?.provisionedBy;
|
|
@@ -46802,8 +46534,7 @@ function deriveLabelRouting(change, existingState, registry, forceCcApi = false)
|
|
|
46802
46534
|
}
|
|
46803
46535
|
}
|
|
46804
46536
|
|
|
46805
|
-
|
|
46806
|
-
//#region src/deployment/deploy-engine/routing.ts
|
|
46537
|
+
// src/deployment/deploy-engine/routing.ts
|
|
46807
46538
|
function isPinnedToCcApi(options, stackName, logicalId) {
|
|
46808
46539
|
return options.pinCcApi?.stackName === stackName && options.pinCcApi.logicalIds.has(logicalId);
|
|
46809
46540
|
}
|
|
@@ -46829,8 +46560,7 @@ function preparePropertiesForCcApi(providerRegistry, resourceType, resolvedProps
|
|
|
46829
46560
|
return applyDefaultNameForFallback(logicalId, resourceType, resolvedProps, underivable);
|
|
46830
46561
|
}
|
|
46831
46562
|
|
|
46832
|
-
|
|
46833
|
-
//#region src/deployment/deploy-engine/resolver-context.ts
|
|
46563
|
+
// src/deployment/deploy-engine/resolver-context.ts
|
|
46834
46564
|
function buildResolverContext(deps, base, stackName) {
|
|
46835
46565
|
const recordedSecretValues = /* @__PURE__ */ new Map();
|
|
46836
46566
|
if (deps.options.inheritedSecrets && deps.options.inheritedSecrets.size > 0) inheritNestedStackParameterAssociations(recordedSecretValues, deps.options.inheritedSecrets);
|
|
@@ -46913,8 +46643,7 @@ function maskedInputSources(deps, template, resources, conditions, stackName) {
|
|
|
46913
46643
|
};
|
|
46914
46644
|
}
|
|
46915
46645
|
|
|
46916
|
-
|
|
46917
|
-
//#region src/deployment/deploy-engine/create.ts
|
|
46646
|
+
// src/deployment/deploy-engine/create.ts
|
|
46918
46647
|
async function provisionCreate(engine, logicalId, change, stateResources, stackName, template, parameterValues, conditions, counts, progress) {
|
|
46919
46648
|
const resourceType = change.resourceType;
|
|
46920
46649
|
const renderer = getLiveRenderer();
|
|
@@ -47192,8 +46921,7 @@ async function resumeAbandonedCreate(engine, args) {
|
|
|
47192
46921
|
return result;
|
|
47193
46922
|
}
|
|
47194
46923
|
|
|
47195
|
-
|
|
47196
|
-
//#region src/provisioning/data-delete-intent.ts
|
|
46924
|
+
// src/provisioning/data-delete-intent.ts
|
|
47197
46925
|
const S3_AUTO_DELETE_OBJECTS_TAG = "aws-cdk:auto-delete-objects";
|
|
47198
46926
|
const ECR_AUTO_DELETE_IMAGES_TAG = "aws-cdk:auto-delete-images";
|
|
47199
46927
|
function hasCdkAutoDeleteTag(properties, tagKey) {
|
|
@@ -47209,8 +46937,7 @@ function isTruthyCfnBoolean(value) {
|
|
|
47209
46937
|
return value === true || value === "true";
|
|
47210
46938
|
}
|
|
47211
46939
|
|
|
47212
|
-
|
|
47213
|
-
//#region src/provisioning/dynamodb-ttl.ts
|
|
46940
|
+
// src/provisioning/dynamodb-ttl.ts
|
|
47214
46941
|
function readTtlSpec(spec) {
|
|
47215
46942
|
if (spec === void 0 || spec === null) return {
|
|
47216
46943
|
enabled: false,
|
|
@@ -47276,8 +47003,7 @@ async function sendTtlWaitingOutRateLimit(send, options) {
|
|
|
47276
47003
|
}
|
|
47277
47004
|
}
|
|
47278
47005
|
|
|
47279
|
-
|
|
47280
|
-
//#region src/provisioning/dynamodb-vector-indexes.ts
|
|
47006
|
+
// src/provisioning/dynamodb-vector-indexes.ts
|
|
47281
47007
|
function vectorIndexesByName(value) {
|
|
47282
47008
|
const out = /* @__PURE__ */ new Map();
|
|
47283
47009
|
if (!Array.isArray(value)) return out;
|
|
@@ -47395,8 +47121,7 @@ function vectorIndexesSettled(live) {
|
|
|
47395
47121
|
return (live ?? []).every((d) => d.IndexStatus === void 0 || d.IndexStatus === "ACTIVE");
|
|
47396
47122
|
}
|
|
47397
47123
|
|
|
47398
|
-
|
|
47399
|
-
//#region src/provisioning/dynamodb-index-busy-delete.ts
|
|
47124
|
+
// src/provisioning/dynamodb-index-busy-delete.ts
|
|
47400
47125
|
function maskedLogger(logger, maskSecrets, name) {
|
|
47401
47126
|
if (maskSecrets === void 0) return logger;
|
|
47402
47127
|
const maskedName = name === void 0 || name === "" ? name : maskSecrets(name);
|
|
@@ -47529,8 +47254,7 @@ async function deleteTableWithIndexBusyRetry(opts) {
|
|
|
47529
47254
|
}
|
|
47530
47255
|
}
|
|
47531
47256
|
|
|
47532
|
-
|
|
47533
|
-
//#region src/provisioning/providers/dynamodb-delete-budget.ts
|
|
47257
|
+
// src/provisioning/providers/dynamodb-delete-budget.ts
|
|
47534
47258
|
const DYNAMODB_DELETE_POLL_RTT_MS = 200;
|
|
47535
47259
|
const DYNAMODB_DELETE_POLL_COST_MS = INDEX_SETTLE_POLL_INTERVAL_MS + 200;
|
|
47536
47260
|
const DYNAMODB_DELETE_BUDGET_MS = 156e4;
|
|
@@ -47643,8 +47367,7 @@ function isResourceNotFoundError(error) {
|
|
|
47643
47367
|
return typeof error === "object" && error !== null && error.name === "ResourceNotFoundException";
|
|
47644
47368
|
}
|
|
47645
47369
|
|
|
47646
|
-
|
|
47647
|
-
//#region src/provisioning/dynamodb-contributor-insights.ts
|
|
47370
|
+
// src/provisioning/dynamodb-contributor-insights.ts
|
|
47648
47371
|
const CONTRIBUTOR_INSIGHTS_KEY = "ContributorInsightsSpecification";
|
|
47649
47372
|
function readContributorInsightsSpec(value, path) {
|
|
47650
47373
|
if (value === void 0 || value === null) return { kind: "absent" };
|
|
@@ -47748,8 +47471,7 @@ function reverseMapIndexContributorInsights(status, mode, declaredBlock) {
|
|
|
47748
47471
|
return block;
|
|
47749
47472
|
}
|
|
47750
47473
|
|
|
47751
|
-
|
|
47752
|
-
//#region src/provisioning/dynamodb-replica-settings.ts
|
|
47474
|
+
// src/provisioning/dynamodb-replica-settings.ts
|
|
47753
47475
|
const PITR_KEY = "PointInTimeRecoverySpecification";
|
|
47754
47476
|
const KINESIS_KEY = "KinesisStreamSpecification";
|
|
47755
47477
|
const TABLE_POLICY_KEY = "ResourcePolicy";
|
|
@@ -48278,8 +48000,7 @@ function keepUnreadReplicaMembers(desired, previous) {
|
|
|
48278
48000
|
} : desired;
|
|
48279
48001
|
}
|
|
48280
48002
|
|
|
48281
|
-
|
|
48282
|
-
//#region src/provisioning/dynamodb-stream-members.ts
|
|
48003
|
+
// src/provisioning/dynamodb-stream-members.ts
|
|
48283
48004
|
const STREAM_SPECIFICATION_KEY$1 = "StreamSpecification";
|
|
48284
48005
|
const STREAM_POLICY_KEY = "ResourcePolicy";
|
|
48285
48006
|
const STREAM_TAGS_KEY = "Tags";
|
|
@@ -48476,8 +48197,7 @@ function canonicalJson(value) {
|
|
|
48476
48197
|
return JSON.stringify(value) ?? "null";
|
|
48477
48198
|
}
|
|
48478
48199
|
|
|
48479
|
-
|
|
48480
|
-
//#region src/provisioning/providers/dynamodb-globaltable-provider.ts
|
|
48200
|
+
// src/provisioning/providers/dynamodb-globaltable-provider.ts
|
|
48481
48201
|
function isTableName(id) {
|
|
48482
48202
|
return /^[A-Za-z0-9_.-]{3,255}$/.test(id);
|
|
48483
48203
|
}
|
|
@@ -48881,6 +48601,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48881
48601
|
toSdkReplicaThroughputOverrides(replica, billingMode, diagnostics, {}, maskSecrets);
|
|
48882
48602
|
}
|
|
48883
48603
|
this.reportThroughputDiagnostics(diagnostics, logicalId, tableName, maskSecrets);
|
|
48604
|
+
let registeredBeforeReplicas = [];
|
|
48884
48605
|
let createdTableId;
|
|
48885
48606
|
try {
|
|
48886
48607
|
createdTableId = (await (await this.getCreateClient()).send(new CreateTableCommand(createParams)))?.TableDescription?.TableId;
|
|
@@ -48893,6 +48614,9 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48893
48614
|
try {
|
|
48894
48615
|
const tableInfo = await this.waitForTableActive(tableName, logicalId, void 0, maskSecrets);
|
|
48895
48616
|
if (createVectorIndexes !== void 0) await this.waitForVectorIndexesSettled(tableName, logicalId, maskSecrets);
|
|
48617
|
+
const scalingSpecs = billingMode === "PROVISIONED" ? collectAutoScalingTargets(wiringProperties, currentRegion) : [];
|
|
48618
|
+
if (wiringReplicas.some((r) => r["Region"] !== currentRegion)) registeredBeforeReplicas = scalingSpecs.filter((spec) => spec.region === currentRegion && spec.dimension.endsWith("WriteCapacityUnits"));
|
|
48619
|
+
if (registeredBeforeReplicas.length > 0) await this.reconcileAutoScalingTargets(tableName, [], registeredBeforeReplicas, currentRegion, void 0, maskSecrets);
|
|
48896
48620
|
for (const replica of wiringReplicas) {
|
|
48897
48621
|
const region = replica["Region"];
|
|
48898
48622
|
if (!region || region === currentRegion) continue;
|
|
@@ -48916,7 +48640,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48916
48640
|
}
|
|
48917
48641
|
}));
|
|
48918
48642
|
if (billingMode === "PROVISIONED") try {
|
|
48919
|
-
await this.reconcileAutoScalingTargets(tableName, [],
|
|
48643
|
+
await this.reconcileAutoScalingTargets(tableName, [], scalingSpecs, currentRegion, new Set(registeredBeforeReplicas.map(autoScalingTargetKey)), maskSecrets);
|
|
48920
48644
|
} catch (autoScalingErr) {
|
|
48921
48645
|
warn(`Auto-scaling registration failed for ${tableName}: ${describeAwsFailure(autoScalingErr).detail}. The table was created successfully; re-run the deploy to register the scaling targets.`);
|
|
48922
48646
|
}
|
|
@@ -48958,12 +48682,13 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
48958
48682
|
warn(`Partial-create cleanup: failed to drop replica ${region} on ${tableName}: ${this.cleanupFailureText(log, `Partial-create cleanup: failed to drop replica ${region} on ${tableName}: `, replicaCleanupErr)} Run: ${pasteableAwsCommand(maskSecrets)`aws dynamodb update-table --table-name ${tableName} --replica-updates 'Delete={RegionName='${region}'}' --region ${currentRegion}`.render()}`);
|
|
48959
48683
|
}
|
|
48960
48684
|
}
|
|
48685
|
+
for (const spec of registeredBeforeReplicas) await this.applyAutoScalingDiff(tableName, spec.dimension, spec.settings, void 0, void 0, spec.indexName, void 0, maskSecrets);
|
|
48961
48686
|
if (createVectorIndexes !== void 0) await this.rollBackCreatedVectorTable(logicalId, tableName, maskSecrets);
|
|
48962
48687
|
else await this.dynamoDBClient.send(new DeleteTableCommand({ TableName: tableName }));
|
|
48963
48688
|
retractCreatedResource(logicalId, resourceType, tableName);
|
|
48964
48689
|
} catch (cleanupErr) {
|
|
48965
48690
|
tableLeftBehind = true;
|
|
48966
|
-
warn(`Partial-create cleanup failed for ${tableName}: ${this.cleanupFailureText(log, `Partial-create cleanup failed for ${tableName}: `, cleanupErr)} To remove the orphaned AWS-side table, run: ` + pasteableAwsCommand(maskSecrets)`aws dynamodb delete-table --table-name ${tableName}`.render());
|
|
48691
|
+
warn(`Partial-create cleanup failed for ${tableName}: ${this.cleanupFailureText(log, `Partial-create cleanup failed for ${tableName}: `, cleanupErr)} ` + (registeredBeforeReplicas.length > 0 ? "Its write scalable targets and scaling policies may still be registered. To remove the table and them, run cdkd rollback --revert-failed." : `To remove the orphaned AWS-side table, run: ` + pasteableAwsCommand(maskSecrets)`aws dynamodb delete-table --table-name ${tableName}`.render()));
|
|
48967
48692
|
}
|
|
48968
48693
|
markAuxiliaryFailure(wiringError, logicalId);
|
|
48969
48694
|
const cause = wiringError instanceof Error ? wiringError : void 0;
|
|
@@ -49083,6 +48808,19 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
49083
48808
|
await new Promise((resolve) => setTimeout(resolve, REPLICA_COPY_RELEASE_POLL_MS));
|
|
49084
48809
|
}
|
|
49085
48810
|
await this.waitForReplicaActive(tableName, region, logicalId, void 0, maskSecrets);
|
|
48811
|
+
const provisionedIndexes = replicaIndexes?.filter((i) => i.ProvisionedThroughputOverride);
|
|
48812
|
+
if (create.ProvisionedThroughputOverride || provisionedIndexes?.length) {
|
|
48813
|
+
await this.waitForGlobalTableSettled(tableName, logicalId, maskSecrets);
|
|
48814
|
+
await this.dynamoDBClient.send(new UpdateTableCommand({
|
|
48815
|
+
TableName: tableName,
|
|
48816
|
+
ReplicaUpdates: [{ Update: {
|
|
48817
|
+
RegionName: region,
|
|
48818
|
+
...create.ProvisionedThroughputOverride && { ProvisionedThroughputOverride: create.ProvisionedThroughputOverride },
|
|
48819
|
+
...provisionedIndexes?.length && { GlobalSecondaryIndexes: provisionedIndexes }
|
|
48820
|
+
} }]
|
|
48821
|
+
}));
|
|
48822
|
+
await this.waitForGlobalTableSettled(tableName, logicalId, maskSecrets);
|
|
48823
|
+
}
|
|
49086
48824
|
if (readReplicaDeletionProtection(replica, region, (message) => this.logger.warn(maskSecrets(message))) === true) await this.setReplicaDeletionProtection(tableName, region, true, logicalId, maskSecrets);
|
|
49087
48825
|
}
|
|
49088
48826
|
async setReplicaDeletionProtection(tableName, region, enabled, logicalId, maskSecrets, budget) {
|
|
@@ -49875,6 +49613,17 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
49875
49613
|
await this.waitForTableActiveAfterUpdate(physicalId, logicalId, void 0, void 0, maskSecrets);
|
|
49876
49614
|
const describeResp = await this.dynamoDBClient.send(new DescribeTableCommand({ TableName: physicalId }));
|
|
49877
49615
|
const tableArn = describeResp.Table?.TableArn;
|
|
49616
|
+
const liveHasCrossRegionReplica = (describeResp.Table?.Replicas ?? []).some((r) => r.RegionName !== void 0 && r.RegionName !== currentRegion);
|
|
49617
|
+
const declaredRegions = declaredCrossRegions(properties, currentRegion);
|
|
49618
|
+
const staysReplicated = liveHasCrossRegionReplica && declaredRegions.length > 0;
|
|
49619
|
+
const literalWriteMoves = staysReplicated && literalWriteSideMoves(properties, previousProperties, currentRegion, describeResp.Table);
|
|
49620
|
+
const statePath = context?.replayingState === true || context?.desiredFromAwsReadback === true;
|
|
49621
|
+
const addsRegionToLiteral = !statePath && properties["BillingMode"] === "PROVISIONED" && !writeSideScaled(properties) && declaredRegions.some((region) => !describeResp.Table?.Replicas?.some((r) => r.RegionName === region));
|
|
49622
|
+
if (literalWriteMoves || addsRegionToLiteral) {
|
|
49623
|
+
const refusal = `AWS::DynamoDB::GlobalTable ${logicalId}: a table with a cross-region replica needs an auto-scaled write side, and this update declares none: CloudFormation refuses a literal WriteCapacityUnits, and DynamoDB refuses every replica update without auto-scaling`;
|
|
49624
|
+
if (statePath) warn(`${refusal}${refusal}. No capacity beyond what a billing flip carries was sent.`);
|
|
49625
|
+
else throw new ProvisioningError(maskSecrets(`${refusal}. Nothing was applied to the table; declare WriteProvisionedThroughputSettings.WriteCapacityAutoScalingSettings`), resourceType, logicalId, physicalId);
|
|
49626
|
+
}
|
|
49878
49627
|
const vectorIndexesChanged = !deepEqual(properties["VectorIndexes"], previousProperties["VectorIndexes"]);
|
|
49879
49628
|
const vectorIndexShape = vectorIndexesShapeDetail(properties["VectorIndexes"]);
|
|
49880
49629
|
if (vectorIndexShape !== void 0 && vectorIndexesChanged) warn(`${vectorIndexShape}; the VectorIndexes change was not applied`);
|
|
@@ -49924,6 +49673,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
49924
49673
|
const desiredCeilings = collectTableOnDemandCeilings(properties, currentRegion, diagnostics, maskSecrets);
|
|
49925
49674
|
const flippingToProvisioned = oldBilling !== newBilling && newBilling === "PROVISIONED";
|
|
49926
49675
|
if (flippingToProvisioned) derivePerCallProvisionedThroughput(properties, currentRegion, "seed", diagnostics, maskSecrets);
|
|
49676
|
+
const tableCapacityChange = !literalWriteMoves && oldBilling === "PROVISIONED" && newBilling === "PROVISIONED" && liveBillingMode === "PROVISIONED" ? readTableCapacityChange(properties, previousProperties, currentRegion, diagnostics, maskSecrets) : void 0;
|
|
49927
49677
|
let desiredGsiUnusable = false;
|
|
49928
49678
|
const onUnusableGsiBlock = (message) => {
|
|
49929
49679
|
desiredGsiUnusable = true;
|
|
@@ -50046,7 +49796,6 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50046
49796
|
TableName: physicalId,
|
|
50047
49797
|
TableClass: tableClassUpdate
|
|
50048
49798
|
}, tableClassFromTemplate, "TableClass", physicalId, logicalId, maskSecrets);
|
|
50049
|
-
const liveHasCrossRegionReplica = (describeResp.Table?.Replicas ?? []).some((r) => r.RegionName !== void 0 && r.RegionName !== currentRegion);
|
|
50050
49799
|
if (sseUpdate?.KMSMasterKeyId !== void 0 && liveHasCrossRegionReplica) {
|
|
50051
49800
|
deferredSseUpdate = sseUpdate;
|
|
50052
49801
|
deferredSseFromTemplate = sseFromTemplate;
|
|
@@ -50110,33 +49859,47 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50110
49859
|
}));
|
|
50111
49860
|
await this.waitForTableActiveAfterUpdate(physicalId, logicalId, void 0, void 0, maskSecrets);
|
|
50112
49861
|
}
|
|
50113
|
-
const readBlockOf = (bag) => localReplicaEntry(bag, currentRegion)?.[TABLE_READ_PROVISIONED_KEY] ?? bag[TABLE_READ_PROVISIONED_KEY];
|
|
50114
|
-
if (oldBilling === "PROVISIONED" && newBilling === "PROVISIONED" && liveBillingMode === "PROVISIONED" && (properties[TABLE_READ_PROVISIONED_KEY] !== void 0 || previousProperties[TABLE_READ_PROVISIONED_KEY] !== void 0) && !deepEqual(readBlockOf(properties), readBlockOf(previousProperties))) {
|
|
50115
|
-
const wantRead = coerceCfnInteger(asRecord(readBlockOf(properties))?.["ReadCapacityUnits"]);
|
|
50116
|
-
const liveThroughput = describeResp.Table?.ProvisionedThroughput;
|
|
50117
|
-
if (wantRead !== void 0 && liveThroughput?.WriteCapacityUnits !== void 0 && wantRead !== liveThroughput.ReadCapacityUnits) {
|
|
50118
|
-
markUnsettled(TABLE_READ_PROVISIONED_KEY);
|
|
50119
|
-
await this.dynamoDBClient.send(new UpdateTableCommand({
|
|
50120
|
-
TableName: physicalId,
|
|
50121
|
-
ProvisionedThroughput: {
|
|
50122
|
-
ReadCapacityUnits: wantRead,
|
|
50123
|
-
WriteCapacityUnits: liveThroughput.WriteCapacityUnits
|
|
50124
|
-
}
|
|
50125
|
-
}));
|
|
50126
|
-
await this.waitForTableActiveAfterUpdate(physicalId, logicalId, void 0, void 0, maskSecrets);
|
|
50127
|
-
}
|
|
50128
|
-
}
|
|
50129
49862
|
const writeAutoScalingOld = (previousProperties["WriteProvisionedThroughputSettings"] ?? {})["WriteCapacityAutoScalingSettings"];
|
|
50130
49863
|
const writeAutoScalingNew = (properties["WriteProvisionedThroughputSettings"] ?? {})["WriteCapacityAutoScalingSettings"];
|
|
50131
49864
|
const effectiveNewAutoScaling = oldBilling === "PROVISIONED" && newBilling === "PAY_PER_REQUEST" ? void 0 : writeAutoScalingNew;
|
|
50132
49865
|
const autoScalingApplied = /* @__PURE__ */ new Set();
|
|
50133
|
-
|
|
49866
|
+
const autoScalingMeaningful = newBilling === "PROVISIONED" || oldBilling === "PROVISIONED";
|
|
49867
|
+
if (literalWriteMoves) autoScalingApplied.add(autoScalingTargetKey({
|
|
49868
|
+
dimension: "dynamodb:table:WriteCapacityUnits",
|
|
49869
|
+
region: currentRegion
|
|
49870
|
+
}));
|
|
49871
|
+
if (autoScalingMeaningful && !literalWriteMoves && !deepEqual(writeAutoScalingOld, effectiveNewAutoScaling)) {
|
|
50134
49872
|
await this.applyAutoScalingDiff(physicalId, "dynamodb:table:WriteCapacityUnits", writeAutoScalingOld, effectiveNewAutoScaling, void 0, void 0, void 0, maskSecrets);
|
|
50135
49873
|
autoScalingApplied.add(autoScalingTargetKey({
|
|
50136
49874
|
dimension: "dynamodb:table:WriteCapacityUnits",
|
|
50137
49875
|
region: currentRegion
|
|
50138
49876
|
}));
|
|
50139
49877
|
}
|
|
49878
|
+
if (tableCapacityChange) {
|
|
49879
|
+
const liveThroughput = describeResp.Table?.ProvisionedThroughput;
|
|
49880
|
+
const sendRead = tableCapacityChange.read ?? liveThroughput?.ReadCapacityUnits;
|
|
49881
|
+
const sendWrite = tableCapacityChange.write ?? liveThroughput?.WriteCapacityUnits;
|
|
49882
|
+
const readMoves = sendRead !== liveThroughput?.ReadCapacityUnits;
|
|
49883
|
+
const writeMoves = sendWrite !== liveThroughput?.WriteCapacityUnits;
|
|
49884
|
+
if (sendRead !== void 0 && sendWrite !== void 0 && (readMoves || writeMoves)) {
|
|
49885
|
+
markUnsettled(...readMoves ? tableCapacityChange.readKeys : [], ...writeMoves ? [TABLE_WRITE_PROVISIONED_KEY] : []);
|
|
49886
|
+
await this.dynamoDBClient.send(new UpdateTableCommand(staysReplicated ? {
|
|
49887
|
+
TableName: physicalId,
|
|
49888
|
+
ReplicaUpdates: [{ Update: {
|
|
49889
|
+
RegionName: currentRegion,
|
|
49890
|
+
ProvisionedThroughputOverride: { ReadCapacityUnits: sendRead }
|
|
49891
|
+
} }]
|
|
49892
|
+
} : {
|
|
49893
|
+
TableName: physicalId,
|
|
49894
|
+
ProvisionedThroughput: {
|
|
49895
|
+
ReadCapacityUnits: sendRead,
|
|
49896
|
+
WriteCapacityUnits: sendWrite
|
|
49897
|
+
}
|
|
49898
|
+
}));
|
|
49899
|
+
if (liveHasCrossRegionReplica) await this.waitForGlobalTableSettled(physicalId, logicalId, maskSecrets);
|
|
49900
|
+
else await this.waitForTableActiveAfterUpdate(physicalId, logicalId, void 0, void 0, maskSecrets);
|
|
49901
|
+
}
|
|
49902
|
+
}
|
|
50140
49903
|
const modeUpdate = replicationModeUpdate(properties, previousProperties);
|
|
50141
49904
|
if (modeUpdate === "DISABLED" && readReplicationMode(properties).kind === "absent") await this.sendReplicationMode(physicalId, logicalId, modeUpdate, maskSecrets);
|
|
50142
49905
|
const replicaDiff = diffReplicas(previousProperties["Replicas"] ?? [], properties["Replicas"] ?? []);
|
|
@@ -50218,7 +49981,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50218
49981
|
TableName: physicalId,
|
|
50219
49982
|
ReplicaUpdates: [{ Update: updateAction }]
|
|
50220
49983
|
}));
|
|
50221
|
-
await this.
|
|
49984
|
+
await this.waitForGlobalTableSettled(physicalId, logicalId, maskSecrets, { region });
|
|
50222
49985
|
}
|
|
50223
49986
|
const addedReplicaRegions = new Set(replicaDiff.added.map((r) => r["Region"]));
|
|
50224
49987
|
if (modeUpdate !== void 0 && readReplicationMode(properties).kind === "usable") await this.sendReplicationMode(physicalId, logicalId, modeUpdate, maskSecrets);
|
|
@@ -50983,12 +50746,15 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
50983
50746
|
let protection;
|
|
50984
50747
|
let disassociationProtection;
|
|
50985
50748
|
let streamArn;
|
|
50749
|
+
let regionalRead;
|
|
50986
50750
|
if (isLocal) {
|
|
50751
|
+
regionalRead = table.ProvisionedThroughput?.ReadCapacityUnits;
|
|
50987
50752
|
protection = table.DeletionProtectionEnabled;
|
|
50988
50753
|
disassociationProtection = table.DisassociationProtectionEnabled;
|
|
50989
50754
|
streamArn = table.LatestStreamArn;
|
|
50990
50755
|
} else try {
|
|
50991
50756
|
const regional = await client.send(new DescribeTableCommand({ TableName: tableNameForSubs }));
|
|
50757
|
+
regionalRead = regional.Table?.ProvisionedThroughput?.ReadCapacityUnits;
|
|
50992
50758
|
protection = regional.Table?.DeletionProtectionEnabled;
|
|
50993
50759
|
disassociationProtection = regional.Table?.DisassociationProtectionEnabled;
|
|
50994
50760
|
streamArn = regional.Table?.LatestStreamArn;
|
|
@@ -51019,6 +50785,7 @@ var DynamoDBGlobalTableProvider = class {
|
|
|
51019
50785
|
const replicaAutoScalingClient = isLocal ? void 0 : this.getRegionalAutoScalingClient(regionLabel);
|
|
51020
50786
|
const readAutoScaling = await this.readAutoScalingSettings(tableNameForSubs, "dynamodb:table:ReadCapacityUnits", replicaAutoScalingClient);
|
|
51021
50787
|
if (readAutoScaling) entry["ReadProvisionedThroughputSettings"] = { ReadCapacityAutoScalingSettings: readAutoScaling };
|
|
50788
|
+
else if (strictFor("Replicas") && regionalRead !== void 0) entry["ReadProvisionedThroughputSettings"] = { ReadCapacityUnits: regionalRead };
|
|
51022
50789
|
}
|
|
51023
50790
|
return entry;
|
|
51024
50791
|
})));
|
|
@@ -51566,6 +51333,7 @@ const REPLICA_SETTING_MEMBERS = [
|
|
|
51566
51333
|
const REPLICATION_MODE_KEY = "GlobalTableSettingsReplicationMode";
|
|
51567
51334
|
const TABLE_READ_ON_DEMAND_KEY = "ReadOnDemandThroughputSettings";
|
|
51568
51335
|
const TABLE_READ_PROVISIONED_KEY = "ReadProvisionedThroughputSettings";
|
|
51336
|
+
const TABLE_WRITE_PROVISIONED_KEY = "WriteProvisionedThroughputSettings";
|
|
51569
51337
|
function readReplicationMode(properties) {
|
|
51570
51338
|
const replicas = Array.isArray(properties["Replicas"]) ? properties["Replicas"] : [];
|
|
51571
51339
|
const declared = replicas.map((entry) => asRecord(entry)?.[REPLICATION_MODE_KEY]).filter((value) => value !== void 0 && value !== null);
|
|
@@ -51712,6 +51480,41 @@ function derivePerCallProvisionedThroughput(properties, region, source = "min",
|
|
|
51712
51480
|
WriteCapacityUnits: write ?? DEFAULT_CAPACITY_UNITS
|
|
51713
51481
|
};
|
|
51714
51482
|
}
|
|
51483
|
+
function declaredCrossRegions(properties, region) {
|
|
51484
|
+
const replicas = properties["Replicas"];
|
|
51485
|
+
return (Array.isArray(replicas) ? replicas : []).map((replica) => asRecord(replica)?.["Region"]).filter((name) => typeof name === "string" && name !== region);
|
|
51486
|
+
}
|
|
51487
|
+
function writeSideScaled(bag) {
|
|
51488
|
+
return asRecord(bag[TABLE_WRITE_PROVISIONED_KEY])?.["WriteCapacityAutoScalingSettings"] !== void 0;
|
|
51489
|
+
}
|
|
51490
|
+
function literalWriteSideMoves(properties, previousProperties, region, live) {
|
|
51491
|
+
if (properties["BillingMode"] !== "PROVISIONED" || writeSideScaled(properties)) return false;
|
|
51492
|
+
if (writeSideScaled(previousProperties)) return true;
|
|
51493
|
+
if (live?.BillingModeSummary?.BillingMode === "PAY_PER_REQUEST") return true;
|
|
51494
|
+
const change = readTableCapacityChange(properties, previousProperties, region, [], (t) => t);
|
|
51495
|
+
return change.write !== void 0 && change.write !== live?.ProvisionedThroughput?.WriteCapacityUnits || change.read !== void 0 && change.read !== live?.ProvisionedThroughput?.ReadCapacityUnits;
|
|
51496
|
+
}
|
|
51497
|
+
function readTableCapacityChange(properties, previousProperties, region, diagnostics, maskSecrets) {
|
|
51498
|
+
const localBlockOf = (bag) => localReplicaEntry(bag, region)?.[TABLE_READ_PROVISIONED_KEY];
|
|
51499
|
+
const readBlockOf = (bag) => localBlockOf(bag) ?? bag[TABLE_READ_PROVISIONED_KEY];
|
|
51500
|
+
const literal = (block, previousBlock, side, blockName) => {
|
|
51501
|
+
if (deepEqual(block, previousBlock)) return void 0;
|
|
51502
|
+
const settings = asRecord(block);
|
|
51503
|
+
if (settings?.[`${side}CapacityAutoScalingSettings`] !== void 0) return void 0;
|
|
51504
|
+
const units = coerceCfnInteger(settings?.[`${side}CapacityUnits`]);
|
|
51505
|
+
if (units === void 0) reportUnresolvedProvisionedCapacity(block, side, "min", { suppressed: "so cdkd sent no capacity for it and the old value stays on AWS" }, diagnostics, { blockName }, maskSecrets);
|
|
51506
|
+
return units;
|
|
51507
|
+
};
|
|
51508
|
+
const read = literal(readBlockOf(properties), readBlockOf(previousProperties), "Read", localBlockOf(properties) !== void 0 ? `Replicas[local].${TABLE_READ_PROVISIONED_KEY}` : TABLE_READ_PROVISIONED_KEY);
|
|
51509
|
+
const write = literal(properties[TABLE_WRITE_PROVISIONED_KEY], previousProperties[TABLE_WRITE_PROVISIONED_KEY], "Write", TABLE_WRITE_PROVISIONED_KEY);
|
|
51510
|
+
const declaredOnReplica = localBlockOf(properties) !== void 0 || localBlockOf(previousProperties) !== void 0;
|
|
51511
|
+
const declaredOnTable = properties[TABLE_READ_PROVISIONED_KEY] !== void 0 || previousProperties[TABLE_READ_PROVISIONED_KEY] !== void 0;
|
|
51512
|
+
return {
|
|
51513
|
+
...read !== void 0 && { read },
|
|
51514
|
+
...write !== void 0 && { write },
|
|
51515
|
+
readKeys: [...declaredOnTable ? [TABLE_READ_PROVISIONED_KEY] : [], ...declaredOnReplica ? ["Replicas"] : []]
|
|
51516
|
+
};
|
|
51517
|
+
}
|
|
51715
51518
|
const DEFAULT_CAPACITY_UNITS = 5;
|
|
51716
51519
|
const DYNAMODB_SCALABLE_DIMENSIONS = /* @__PURE__ */ new Set([
|
|
51717
51520
|
"dynamodb:table:WriteCapacityUnits",
|
|
@@ -52454,8 +52257,7 @@ function lsiListOrEmpty(value) {
|
|
|
52454
52257
|
return value;
|
|
52455
52258
|
}
|
|
52456
52259
|
|
|
52457
|
-
|
|
52458
|
-
//#region src/provisioning/protection-flags.ts
|
|
52260
|
+
// src/provisioning/protection-flags.ts
|
|
52459
52261
|
const PROTECTION_PROPERTY_BY_TYPE = {
|
|
52460
52262
|
"AWS::Logs::LogGroup": "DeletionProtectionEnabled",
|
|
52461
52263
|
"AWS::RDS::DBInstance": "DeletionProtection",
|
|
@@ -52510,8 +52312,7 @@ function isProtectionValueActive(resourceType, value) {
|
|
|
52510
52312
|
return isTruthyCfnBoolean(value);
|
|
52511
52313
|
}
|
|
52512
52314
|
|
|
52513
|
-
|
|
52514
|
-
//#region src/provisioning/recorded-protection.ts
|
|
52315
|
+
// src/provisioning/recorded-protection.ts
|
|
52515
52316
|
const READER_LABELS = {
|
|
52516
52317
|
"AWS::DynamoDB::GlobalTable": "DeletionProtectionEnabled on the table or a replica",
|
|
52517
52318
|
"AWS::ElasticLoadBalancingV2::LoadBalancer": "LoadBalancerAttributes deletion_protection.enabled"
|
|
@@ -52545,8 +52346,7 @@ function recordedProtectionNote(evidence, flags) {
|
|
|
52545
52346
|
return `${evidence}. AWS refuses to delete the resource while that protection is on, and cdkd deploy has no --remove-protection flag to clear it (only cdkd destroy and cdkd state destroy act on one), so ${flags} alone does not remove the old resource: depending on the replacement order, the deploy either fails at that delete or completes leaving the old resource, and its data, in AWS and no longer tracked by cdkd. Read ${DELETION_PROTECTION_DOC_POINTER} before you disable anything, then turn the protection off out of band (the console, or the service's own API) and re-run with ${flags}.`;
|
|
52546
52347
|
}
|
|
52547
52348
|
|
|
52548
|
-
|
|
52549
|
-
//#region src/deployment/deploy-engine/update-replace.ts
|
|
52349
|
+
// src/deployment/deploy-engine/update-replace.ts
|
|
52550
52350
|
async function updateByReplacement(engine, { change, counts, currentProps, currentResource, dependencies, logicalId, oldResourceType, progress, propertyDrivenReplacement, recreateFlagged, recreateViaCcApi, recreateViaSdkProvider, renderer, resolvedProps, resourceType, stackName, stateResources, template, typeChanged, updateReplacePolicy, updateSecrets, lostWithParent, nameGenerationFields }) {
|
|
52551
52351
|
const noEchoDeleteValues = await noEchoDeleteValuesFromResolved({
|
|
52552
52352
|
record: currentResource,
|
|
@@ -52823,8 +52623,7 @@ async function updateByReplacement(engine, { change, counts, currentProps, curre
|
|
|
52823
52623
|
engine.logger.info(replacedLine);
|
|
52824
52624
|
}
|
|
52825
52625
|
|
|
52826
|
-
|
|
52827
|
-
//#region src/provisioning/cc-autoroute-update-remedy.ts
|
|
52626
|
+
// src/provisioning/cc-autoroute-update-remedy.ts
|
|
52828
52627
|
const TYPE_FORMAT = /^[A-Z][A-Za-z0-9]+(::[A-Z][A-Za-z0-9]+)+$/;
|
|
52829
52628
|
const PROPERTY_FORMAT = /^[A-Z][A-Za-z0-9]*$/;
|
|
52830
52629
|
const LOGICAL_ID_FORMAT = /^[A-Za-z][A-Za-z0-9]{0,254}$/;
|
|
@@ -52839,8 +52638,7 @@ function ccAutoRouteUpdateFailureRemedy(logicalId, resourceType, autoRoutedPrope
|
|
|
52839
52638
|
return `\nThis update moved the resource from its SDK provider to Cloud Control API, because the SDK provider does not handle ${shown}. Cloud Control addresses it by the physical id the SDK provider recorded, and for some types that is not an identifier Cloud Control accepts. ` + (nestedChild ? `It is in a nested stack, which --recreate-via-cc-api cannot address: ${preferSdk}, or remove ${them} from the template.` : `Two ways through: re-create the resource on Cloud Control with --recreate-via-cc-api ${id} (destroys and re-creates it), or ${preferSdk}.`);
|
|
52840
52639
|
}
|
|
52841
52640
|
|
|
52842
|
-
|
|
52843
|
-
//#region src/deployment/deploy-engine/update-in-place.ts
|
|
52641
|
+
// src/deployment/deploy-engine/update-in-place.ts
|
|
52844
52642
|
async function updateInPlace(engine, { changedProperties, conditions, counts, currentProps, currentPropsAsWritten, currentResource, dependencies, desiredForSkipCheckAsWritten, logicalId, noEchoHeldPaths, parameterValues, progress, renderer, resolvedProps, resourceType, stackName, stateResources, template, updateReplacePolicy, updateSecrets, reattach }) {
|
|
52845
52643
|
engine.logger.debug(safeMsg`Updating ${logicalId} (${resourceType})`);
|
|
52846
52644
|
const updateDecision = engine.providerRegistry.getProviderFor({
|
|
@@ -53238,12 +53036,10 @@ async function updateInPlace(engine, { changedProperties, conditions, counts, cu
|
|
|
53238
53036
|
engine.logger.info(safeMsg`${updatePrefix}${formatResourceLine("updated", logicalId, resourceType)}`);
|
|
53239
53037
|
}
|
|
53240
53038
|
|
|
53241
|
-
|
|
53242
|
-
//#region src/provisioning/changed-properties-consumers.ts
|
|
53039
|
+
// src/provisioning/changed-properties-consumers.ts
|
|
53243
53040
|
const CHANGED_PROPERTIES_CONSUMER_TYPES = /* @__PURE__ */ new Set(["AWS::ServiceDiscovery::Service"]);
|
|
53244
53041
|
|
|
53245
|
-
|
|
53246
|
-
//#region src/deployment/deploy-engine/read-provenance-moved.ts
|
|
53042
|
+
// src/deployment/deploy-engine/read-provenance-moved.ts
|
|
53247
53043
|
function occurrences(value, token) {
|
|
53248
53044
|
if (typeof value === "string") return value.includes(token) ? value.split(token).length - 1 : 0;
|
|
53249
53045
|
if (Array.isArray(value)) {
|
|
@@ -53354,8 +53150,7 @@ function withRefreshedReadVersions(record, unchanged) {
|
|
|
53354
53150
|
return withReferenceProvenance(record, out);
|
|
53355
53151
|
}
|
|
53356
53152
|
|
|
53357
|
-
|
|
53358
|
-
//#region src/deployment/deploy-engine/update.ts
|
|
53153
|
+
// src/deployment/deploy-engine/update.ts
|
|
53359
53154
|
function isWhollyMask(value) {
|
|
53360
53155
|
if (value === "***") return true;
|
|
53361
53156
|
if (Array.isArray(value)) return value.length > 0 && value.every(isWhollyMask);
|
|
@@ -54039,8 +53834,7 @@ function readsProducerReplacedThisRun(engine, template, logicalId, stateResource
|
|
|
54039
53834
|
});
|
|
54040
53835
|
}
|
|
54041
53836
|
|
|
54042
|
-
|
|
54043
|
-
//#region src/deployment/deploy-engine/provision.ts
|
|
53837
|
+
// src/deployment/deploy-engine/provision.ts
|
|
54044
53838
|
const NESTED_STACK_ROW_TYPE = "AWS::CloudFormation::Stack";
|
|
54045
53839
|
async function provisionResource(engine, logicalId, change, stateResources, stackName, template, parameterValues, conditions, counts, progress) {
|
|
54046
53840
|
const resourceType = change.resourceType;
|
|
@@ -54221,8 +54015,7 @@ async function provisionResourceBody(engine, logicalId, change, stateResources,
|
|
|
54221
54015
|
});
|
|
54222
54016
|
}
|
|
54223
54017
|
|
|
54224
|
-
|
|
54225
|
-
//#region src/deployment/deploy-engine/execute.ts
|
|
54018
|
+
// src/deployment/deploy-engine/execute.ts
|
|
54226
54019
|
const NO_REPLACEMENT_ORPHAN_TYPES = /* @__PURE__ */ new Set([
|
|
54227
54020
|
"AWS::CloudFormation::Stack",
|
|
54228
54021
|
"AWS::SQS::QueuePolicy",
|
|
@@ -54863,8 +54656,7 @@ async function journalOrphanIdentity(engine, orphanOp, carried) {
|
|
|
54863
54656
|
}
|
|
54864
54657
|
}
|
|
54865
54658
|
|
|
54866
|
-
|
|
54867
|
-
//#region src/deployment/deploy-engine/deploy-flow.ts
|
|
54659
|
+
// src/deployment/deploy-engine/deploy-flow.ts
|
|
54868
54660
|
const TAIL_WARM_CONNECTIONS = 3;
|
|
54869
54661
|
async function doDeployWithPrefetch(engine, stackName, template, createOnlyPrefetch) {
|
|
54870
54662
|
const startTime = Date.now();
|
|
@@ -55439,8 +55231,7 @@ async function doDeployWithPrefetch(engine, stackName, template, createOnlyPrefe
|
|
|
55439
55231
|
}
|
|
55440
55232
|
}
|
|
55441
55233
|
|
|
55442
|
-
|
|
55443
|
-
//#region src/deployment/deploy-engine.ts
|
|
55234
|
+
// src/deployment/deploy-engine.ts
|
|
55444
55235
|
const EMPTY_SECRETS = /* @__PURE__ */ new Map();
|
|
55445
55236
|
var InterruptedError = class extends Error {
|
|
55446
55237
|
constructor(reason = "user") {
|
|
@@ -55894,6 +55685,5 @@ function sameGenerationClaimsOf(record) {
|
|
|
55894
55685
|
};
|
|
55895
55686
|
}
|
|
55896
55687
|
|
|
55897
|
-
//#endregion
|
|
55898
55688
|
export { sendTtlWaitingOutRateLimit as $, assertSendableRoleArn as $a, logOnlyValueCount as $c, isCustomResource as $i, hasUnverifiableParameterRefusal as $l, retiredAfterRollback as $n, malformedOrphansWarning as $o, removeSuperseded as $r, isStatefulRecreateTargetForReplace as $s, isHandledOrphan as $t, loadCdkJson as $u, DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS as A, isUsableAttemptedName as Aa, canonicalCoordinates as Ac, nullPrototypeRecord as Ad, unsupportedFinalSnapshotError as Ai, recordNoEchoParameterFreshValue as Al, demoteSupersededOrphans as An, JSON_LISTING_HOLE_VALUE as Ao, movedToHint as Ar, refuseMalformedResourcesForDestroy as As, makeCanonicalizePropertiesFn as At, resolveDockerContextDirectory as Au, deleteTableWithIndexBusyRetry as B, s3BucketDomainName as Ba, readbackPathFor as Bc, resolveBucketRegion as Bd, markDeleteStarted as Bi, CrossPrefixScanCache as Bl, orphanNeedsIdentity as Bn, hasReadableResources as Bo, getStackRecords as Br, unreadableOrphanRecords as Bs, dropSettledNestedJournals as Bt, partitionSensitiveEnv as Bu, planContributorInsightsOp as C, ec2InstanceProtectionSite as Ca, ecsServiceLaunchTypeSetOrChanged as Cc, processStackMessages as Cd, PRE_DELETE_SNAPSHOT_TYPES as Ci, recordPhysicalNameCopy as Cl, recordAfterRollbackUpdate as Cn, lacksRecordedTableArn as Co, DEFAULT_RESOURCE_WARN_AFTER_MS as Cr, refuseMalformedResourceEntriesForImportSave as Cs, enclosingDeadlineExpired as Ct, isCrossRegionRedirect as Cu, reverseMapTableContributorInsights as D, reEnableInstanceApiTermination as Da, sameLambdaFunctionAddress as Dc, defineOwnKey as Dd, effectiveDeletionPolicy as Di, recordMaskOnlyValue as Dl, equalModuloMarkedMask as Dn, parameterInputsFor as Do, formatDestructiveChange as Dr, refuseMalformedResourcePropertiesForExport as Ds, isSecretBearingReferenceString as Dt, validateContainerRepoName as Du, reverseMapIndexContributorInsights as E, reDisableInstanceApiTermination as Ea, lambdaFunctionNameForMask as Ec, utf8ByteLength as Ed, createPreDeleteFinalSnapshot as Ei, provenPublicValue as El, calculateResourceDrift as En, withSharedDrainBudget as Eo, findDestructiveChanges as Er, refuseMalformedResourcePropertiesForDrift as Es, diffSecurity as Et, validateAssetBucketName as Eu, resolveDynamoDbDeleteBudgetClock as F, withoutUnsettledProperties as Fa, maskedLeafCoordinatesOf as Fc, renderAssemblyPathEscape as Fd, acquireIdempotencyToken as Fi, LockManager as Fl, recheckFailedPlan as Fn, accountArgs as Fo, mappingPairs as Fr, repairMalformedOutputsForReadOnly as Fs, keptForRetainedRecord as Ft, finchSecretArgvRefusal as Fu, readbackVectorIndexes as G, producerLookupOver as Ga, markSameGenerationBag as Gc, refuseMalformedDesiredTags as Gi, stackInstanceIdOf as Gl, isRedactedRecordedValue as Gn, malformedExportSourceWarning as Go, gray as Gr, findSilentDropProperties as Gs, revertedNestedRowIds as Gt, runDockerStreaming as Gu, relayedIndexBusyDelete as H, s3BucketRegionalDomainName as Ha, recordedNoEchoValuesOf as Hc, DBPROXY_TAG_OPTIONS as Hi, crossPrefixDeniedWarning as Hl, getCurrentProducerRegions as Hn, isReadableResourceEntry as Ho, replacedDeleteFailureVerdict as Hr, withheldAccountClause as Hs, nestedChildStackName as Ht, redactedCause as Hu, resolveDynamoDbDeleteBudgetMs as I, IntrinsicFunctionResolver as Ia, noEchoCoordinatesOf as Ic, resolveAssemblyPath as Id, DeploymentEventsReader as Ii, isLockInfoExpired as Il, recordUnderIdIsNotOwn as In, deployRefusesOrphanRowsReason as Io, parseMappingFile as Ir, repairMalformedResourceEntriesForReadOnly as Is, recordRetainedForReadoption as It, formatDockerLoginError as Iu, vectorIndexesShapeDetail as J, outputReferenceProvenanceOf as Ja, snapshotPassProvenance as Jc, definedAttributes as Ji, acceptedCreateOnlyDropsOf as Jl, updatePartialMessage as Jn, malformedLocalResourcesWarning as Jo, yellow as Jr, NO_CC_HANDLERS_REASON as Js, getCurrentNestedStackContext as Jt, getDockerImageBySourceHash as Ju, vectorIndexesForCreate as K, refuseUnreadableCdkCrossAccountRefs as Ka, redactForState as Kc, tagMapAsList as Ki, withStackInstanceIdWithheld as Kl, redactedDeleteAddressFields as Kn, malformedLocalOutputsWarning as Ko, green as Kr, unwrittenCreateOnlyReplacement as Ks, withNestedRevertRun as Kt, warnFinchArgvExposure as Ku, DELETE_INDEX_WAIT_PROCEED_NOTE as L, poisonRenderedSpellingsCollidingIn as La, noEchoLeavesOf as Lc, injectAwsRegion as Ld, DeploymentEventsStore as Li, S3StateBackend as Ll, replacementNeverSwapped as Ln, displayLogicalId as Lo, proposeRenames as Lr, repairMalformedResourcePropertiesForReadOnly as Ls, NESTED_PENDING_PARENT_REASON as Lt, getDockerCmd as Lu, beginDeleteWait as M, unsettledItemsOf as Ma, maskAtCoordinates as Mc, absoluteAssemblyPathEscape as Md, ledgerForStack as Mi, wholeStringLeavesOf as Ml, isReplacementOrphan as Mn, STATE_RESOURCES_MALFORMED as Mo, withMovedTo as Mr, refuseMalformedState as Ms, planOrphanAdoption as Mt, describeDockerExecFailure as Mu, compensateRemovedDeletionProtection as N, unsettledPropertiesOf as Na, maskReadbackAtCoordinates as Nc, describeFileReadFailure as Nd, reserveStackCreateToken as Ni, WHOLE_DYNAMIC_REFERENCE_PATTERN as Nl, planFailedOps as Nn, UNREADABLE_ORPHANS_CONTAINER_ROW as No, isPairableType as Nr, repairMalformedOrphanRecordsForReadOnly as Ns, pendingRequestCount as Nt, describeDockerFailure as Nu, stripIndexContributorInsights as O, DiffCalculator as Oa, DagBuilder as Oc, hasOwnKey as Od, isFinalSnapshotError as Oi, recordMaskOnlyValuesIn as Ol, equalModuloMask as On, passedParameterClassesOf as Oo, findRefactorHints as Or, refuseMalformedResourcePropertiesForOrphan as Os, keptWholeReasonText as Ot, buildDenyExternalAccessPolicy as Ou, deleteBudgetKey as P, withUnsettledProperties as Pa, maskWholeValue as Pc, displayAssemblyPath as Pd, withCreateTokenLedger as Pi, isSingleDynamicReferenceToken as Pl, planRollback as Pn, UNREADABLE_RESOURCES_MAP_ROW as Po, looselyEqual as Pr, repairMalformedOrphansForReadOnly as Ps, resolvePendingCloudControlRequests as Pt, dockerSpawnEnvWithSensitive as Pu, readTtlSpec as Q, assertFlagRoleArn as Qa, literalSplitDelimitersOf as Qc, ccBrokenReason as Qi, hasReasonlessBaselineRefusal as Ql, nameScopeOf as Qn, malformedOrphansRefusalMessage as Qo, isSupersededResourceRecord as Qr, MULTI_REGION_RECREATE_BLOCKED_TYPES as Qs, dropFailedHint as Qt, getLegacyStateBucketName as Qu, INDEX_SETTLE_POLL_INTERVAL_MS as R, isSettledInstanceState as Ra, noEchoOutputsComparison as Rc, injectedAwsRegionValue as Rd, extractDeploymentEventError as Ri, rebuildClientForBucketRegion as Rl, resolveReplacementOldType as Rn, hasReadableOrphans as Ro, awaitInFlightSibling as Rr, repairMalformedResourcesForReadOnly as Rs, displacedOpClause as Rt, isDockerClientEnvKey as Ru, indexDeclaresContributorInsights as S, disableInstanceApiTermination as Sa, dbInstanceEngineChangeIsInPlace as Sc, StageLoadError as Sd, ATOMIC_FINAL_SNAPSHOT_TYPES as Si, recordAttributeIdCopy as Sl, removeProtectionTypeList as Sn, isStalePlaceholderArnAttribute as So, DEFAULT_RESOURCE_TIMEOUT_MS as Sr, refuseMalformedResourceEntriesForImport as Ss, readRecordedConditionVerdicts as St, getBootstrapMarkerKey as Su, readContributorInsightsSpec as T, observeThenDisableInstanceApiTermination as Ta, canonicalLambdaFunctionName as Tc, parseFailureDebugDetail as Td, ccRoutedFinalSnapshotError as Ti, carriesSecretMask as Tl, withUnprovenUnsettled as Tn, parseWebACLArn as To, constructPathOf as Tr, refuseMalformedResourcePropertiesForDestroy as Ts, withResourceDeadline as Tt, readBootstrapMarkerBody as Tu, waitForIndexesSettled as U, s3BucketWebsiteUrl as Ua, valueAtCoordinate as Uc, planTagDiff as Ui, isAccessDenied$1 as Ul, inheritProducerRegions as Un, malformedDriftResourcePropertiesWarning as Uo, bold as Ur, findActionableSilentDrops as Us, recordDisplacedSkips as Ut, redactedDockerCause as Uu, maskedLogger as V, s3BucketDualStackDomainName as Va, readsNoEchoSource as Vc, DBPROXY_TAGS_WHAT as Vi, applyCrossPrefixScan as Vl, findNestedStackTypeChanges as Vn, isReadableOrphanRecord as Vo, withStackRecords as Vr, unreadableResourceEntries as Vs, getNestedRevertRun as Vt, redactDockerArgvValues as Vu, planVectorIndexUpdates as W, resolveDynamicReferences as Wa, liveMatchesUnresolvedTokenFrame as Wc, readTagList as Wi, isNotImplemented as Wl, REDACTED_DELETE_ADDRESS_SKIP_REASON as Wn, malformedExportNamesWarning as Wo, cyan as Wr, findHandledUnwrittenCreateOnly as Ws, revertNestedChildFromJournal as Wt, runDockerForeground as Wu, isTtlRateLimited as X, recordedReferenceRegions as Xa, createUnionSecretMasker as Xc, CC_BROKEN_REASON as Xi, exportNamesCarriedFrom as Xl, nameGenerationCarriedFrom as Xn, malformedOrphanRecordsWarning as Xo, deleteSupersededEntry as Xr, findReplacedReadersOfRecreateTargets as Xs, deleteJournaledOrphans as Xt, synthesisStatusMessage as Xu, isTtlAlreadyDisabled as Y, recordedOutputReferenceRegions as Ya, carryLogOnlyValues as Yc, stringifyIfAssigned as Yi, describeRegionValueKind as Yl, updatePartialReason as Yn, malformedOrphanRecordsRefusalMessage as Yo, addSuperseded as Yr, hasNoCloudControlHandlers as Ys, withNestedStackContext as Yt, Synthesizer as Yu, planTimeToLive as Z, applyRoleArnIfSet as Za, hasMaskableValues as Zc, ProviderRegistry as Zi, hasReadableExportSet as Zl, nameGenerationHighWaterOf as Zn, malformedOrphanRowsKeptWarning as Zo, holdsSupersededResources as Zr, shownType as Zs, dropFailedCommands as Zt, getDefaultStateBucketName as Zu, streamMemberRefusals as _, deleteLeftInPlace as _a, prefetchCreateOnlyPropertyPaths as _c, expectedOwnerParam as _d, secretNamePrintingBags as _i, identityKeyFor as _l, pendingMovesOutOf as _n, carriesFetchableDynamicReference as _o, noEchoParameterValueSeed as _r, refuseMalformedOutputsForDestroy as _s, renderNestedTemplateTreeDefect as _t, rewriteTemplateAssetReferences as _u, isProtectionValueActive as a, getCurrentResourceSecrets as aa, toCfnInteger as ac, resolveStateBucketWithDefaultAndSource as ad, noEchoAttributeNamesOf as ai, createSecretMasker as al, chunks as an, callerEnvCredentials as ao, reachableDivergentParameters as ar, malformedResourcesWarning as as, markRefusedBeforeApplying as at, shouldRetainResource as au, CONTRIBUTOR_INSIGHTS_KEY as b, isWaitAbandonedError as ba, withRetry as bc, derivePartitionAndUrlSuffix as bd, stateSecretNameNeedles as bi, recoverMaskedOutput as bl, replayFailedOperations as bn, AWS_NO_VALUE as bo, isExportAliasCollision as br, refuseMalformedResourceEntriesForDeploy as bs, conditionInputsFrom as bt, assertAssetBucketRegion as bu, DynamoDBGlobalTableProvider as c, applyCustomResourceResponseExpiration as ca, coerceCfnInteger as cc, warnDeprecatedNoPrefixCliFlag as cd, noEchoParameterNamesOf as ci, maskSecretsInText as cl, withApiLimit as cn, classifyReplaySecretRegion as co, displayTextOrWithheld as cr, previewableOrphanRecords as cs, crossStackOutputProvenanceSource as ct, renderPhaseTimings as cu, declaredStreamPolicyMember as d, slowCcOperationTimeoutMs as da, configStringRefusal as dc, CFN_TEMPLATE_URL_LIMIT as dd, completedReplayEntries as di, withoutPhysicalNameCopies as dl, refactorMarkerMovesOf as dn, coerceParameterTypedValue as do, secretBearingStateKeyWarning as dr, refuseMalformedOrphanRecords as ds, findServiceTokenRefusals as dt, isSensitiveAttributeName as du, wouldReturnToSdkProvider as ea, isStatefulRecreateTargetSync as ec, resolveApp as ed, supersededAfterRollback as ei, printingCorpusOf as el, journaledOrphanLines as en, explicitRoleArnOrThrow as eo, retiredNameGenerationsAfter as er, malformedOutputsRefusalMessage as es, ECR_AUTO_DELETE_IMAGES_TAG as et, importableOutputKeys as eu, declaredStreamTagsMember as f, onlySecretReferencesDiffer as fa, readConfigString as fc, MIGRATE_TMP_PREFIX as fd, journaledOrphanPrintingBag as fi, DYNAMIC_REFERENCE_TOKEN_SCAN as fl, refactorMarkerRefusalMessage as fn, isUnboundTemplateParameter as fo, secretSafeKeyDisplay as fr, refuseMalformedOrphanRecordsForDestroy as fs, serviceTokenBlockingReason as ft, stringifyValue as fu, streamDeclaresTags as g, deleteIndeterminateGuards as ga, requireConfigString as gc, decodeListingKey as gd, secretNamePrintingBag as gi, spelledKeysOf as gl, hasPendingMovesOut as gn, carriesDynamicReference as go, isWholeDynamicReferenceValue as gr, refuseMalformedOutputs as gs, listNestedTemplateRows as gt, loadPublishableAssetManifest as gu, streamDeclaresPolicy as h, UNSPECIFIED_SKIP_REASON as ha, requireConfigObject as hc, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as hd, orphanRecordsPrintingBag as hi, pathCrossesDottedKey as hl, updateRefactorMarker as hn, isImpossibleEmptyStoredAttribute as ho, exportNameSecretExposure as hr, refuseMalformedOrphansForOrphan as hs, isAbsoluteAssetPath as ht, createAssetRedirectResolver as hu, PROTECTION_PROPERTY_BY_TYPE as i, isCustomResourceType as ia, isWarmThroughputDecrease as ic, resolveStateBucketWithDefault as id, withoutSuperseded as ii, unionOfSecretBags as il, formatResourceLine as in, applyCallerIdentityCredentials as io, namesAnyDeclaredParameter as ir, malformedResourcePropertiesWarning as is, getPriorAttempts as it, orphansCarriedFrom as iu, DYNAMODB_DELETE_POLL_COST_MS as j, unsettledItemsField as ja, isMarkedCoordinate as jc, ownValue as jd, earliestDefined as ji, recordProvenPublicExpression as jl, isJournaledOrphan as jn, STATE_REGION_DIVERGED as jo, rollbackOrphanIds as jr, refuseMalformedResourcesForExport as js, makeSiblingClaimReader as jt, describeDockerCapturedOutput as ju, DYNAMODB_DELETE_DEADLINE_MARGIN_MS as k, INTRINSIC_KEYS as ka, TemplateParser as kc, hasPlainPrototype$1 as kd, refusesFinalSnapshot as ki, recordNoEchoAttributeValues as kl, undeclaredEmptyObservedKeys as kn, declaresNoEcho as ko, hintSidesOf as kr, refuseMalformedResourcesForDeploy as ks, mergeNoChangeOutputs as kt, buildDockerImage as ku, STREAM_POLICY_KEY as l, customResourceResponseExpirationWarning as la, configBooleanRefusal as lc, ssmResolvedValueType as ld, withAttemptedItemsMasked as li, scrubResourceRecord as ll, readRefactorMarker as ln, producerRegionsFromState as lo, exportAliasCollisionScrubWarning as lr, refuseDivergentRecordRegionForDestroy as ls, inheritedProvenanceForChildDiff as lt, timePhase as lu, reverseMapStreamPolicy as m, RollbackInlinePolicyWriters as ma, requireConfigArray as mc, uploadCfnTemplate as md, namingSecretsWithRecordedNoEcho as mi, isUncertifiedBaselineMaskPosition as ml, sameMove as mn, getAccountInfo as mo, exportNameNoEchoParameters as mr, refuseMalformedOrphansForDestroy as ms, findNestedTemplateTreeDefect as mt, buildAssetRedirectMap as mu, recordedProtectionEvidence as n, TemplateNoEchoReresolver as na, WARM_THROUGHPUT_MEMBERS as nc, resolveCaptureObservedState as nd, supersededHolderOf as ni, recordLogOnlyValue as nl, makeForeignHolderScan as nn, sendableAssumeRoleCommand as no, withNameGenerationReached as nr, malformedRenderedContainersWarning as ns, hasCdkAutoDeleteTag as nt, isReadableBag as nu, perType as o, withPrintingSecrets as oa, toFiniteNumber as oc, resolveUseCdkBootstrapAssets as od, noEchoComparisonForTemplate as oi, errorCauseChain as ol, isAccessDeniedError as on, envCredentialsAreAssumedRole as oo, resourcesNamingDeclaredParameter as or, malformedScrubResourceEntriesRefusalMessage as os, IMPLICIT_DELETE_DEPENDENCIES as ot, stackInstanceIdCarriedFrom as ou, planStreamMemberOps as p, unchangedBehindSecretReference as pa, replayWarn as pc, findLargeInlineResources as pd, maskEventTextWithBoundBags as pi, dynamicReferenceTokens as pl, refuseRefactorMarker as pn, parameterTypeMayLoseSecretIdentity as po, carriedExportAliasExposure as pr, refuseMalformedOrphans as ps, childTemplateLoader as pt, WorkGraph as pu, vectorIndexesSettled as q, keepHeldTokenProvenance as qa, recordReferenceProvenanceEntry as qc, tagPlanWarning as qi, splitImportedOps as ql, redactedDeleteAddressSkip as qn, malformedLocalResourceEntriesWarning as qo, red as qr, withoutSilentDropProperties as qs, collectNestedChildUnaddressed as qt, AssetManifestLoader as qu, recordedProtectionNote as r, readsNoEchoDeleteValues as ra, coerceWarmThroughput as rc, resolveSkipPrefix as rd, supersededResourcesOf as ri, shareLogOnlyValues as rl, sameJournaledOrphans as rn, AWS_CREDENTIAL_ENV_KEYS as ro, computeParameterTaint as rr, malformedResourceEntriesWarning as rs, isTruthyCfnBoolean as rt, orphansAfterRollback as ru, readProtection as s, CUSTOM_RESOURCE_RESPONSE_LIFECYCLE_RULE_ID as sa, coerceCfnBoolean as sc, stateBucketExistenceConfirmed as sd, noEchoExactEchoLeavesOf as si, maskSecretsInError as sl, lookupEachName as sn, classifyRecordedSecretRegion as so, WITHHELD_NAME_DISPLAY as sr, malformedStateRefusalMessage as ss, computeImplicitDeleteEdges as st, PhaseClock as su, DeployEngine as t, waitForLambdaFunctionActive as ta, renderStatefulReason as tc, resolveAutoAssetStorage as td, supersededHeldByOtherTypeWarning as ti, recordLogOnlyParameterValue as tl, loadJournaledOrphans as tn, isIamRoleArn as to, retiredNameGenerationsLeaving as tr, malformedOutputsWarning as ts, S3_AUTO_DELETE_OBJECTS_TAG as tt, importableOutputs as tu, STREAM_TAGS_KEY as u, CloudControlProvider as ua, configIntegerRefusal as uc, CFN_TEMPLATE_BODY_LIMIT as ud, createReadOnlyAttributeHealerFactory as ui, withPhysicalNameCopies as ul, readRefactorMarkerOnce as un, regionLessSecretName as uo, secretBearing as ur, refuseMalformedNestedChildOutputs as us, deferredServiceTokenWarning as ut, AssetPublisher as uu, streamPolicyMatchesDeclared as v, deleteSkipReason as va, templateResourceTypes as vc, PARTITION_TABLE as vd, secretNamedAttributeNamesOf as vi, inheritNestedStackParameterAssociations as vl, pendingMovesRefusalMessage as vn, isNamelessDynamicReferenceError as vo, collectDeclaredOutputNames as vr, refuseMalformedResourceAttributesForOrphan as vs, templateIdentity as vt, AssetModeResolver as vu, planIndexContributorInsightsOps as w, isTerminationProtectionPropagationError as wa, emrClusterInstancesReplaced as wc, describeJsonParseFailure as wd, buildFinalSnapshotIdentifier as wi, splitGetAttStringForm as wl, settleUnsettledPrevious as wn, refStateLookupFromResource as wo, maskingRetryLogger as wr, refuseMalformedResourceEntriesForOrphan as ws, enclosingDeadlineRemainingMs as wt, parseBootstrapMarker as wu, contributorInsightsRefusals as x, markWaitAbandoned as xa, blockDeviceMappingsDifferOnlyInDeleteOnTermination as xc, AssemblyReader as xd, storedSecretNameNeedles as xi, physicalNameCopiesOf as xl, replayRollback as xn, cfnRefValueFromPhysicalId as xo, bindingSkippedOutputs as xr, refuseMalformedResourceEntriesForDestroy as xs, parentSuppliedValues as xt, ensureAssetStorage as xu, streamTagsMatchDeclared as y, withIndeterminateGuard as ya, describeTypeWithThrottleRetry as yc, canonicalizeRegion as yd, secretNamedRecordNeedles as yi, recordNestedStackParameterExpressions as yl, refusePendingMovesOut as yn, keepsSecretReferenceToken as yo, collectPublishedOutputNames as yr, refuseMalformedResourceEntries as ys, conditionFingerprint as yt, BOOTSTRAP_MARKER_PREFIX as yu, TABLE_INDEX_NOUN as z, s3BucketArn as za, passedNoEchoParametersOf as zc, clearBucketRegionCache as zd, isRefusedByName as zi, CrossPrefixReadError as zl, seedsDeleteFirstGuard as zn, hasReadableOutputs as zo, destroyStackRecordsView as zr, unpreviewableOrphanRecords as zs, displacedPhysicalIdShown as zt, isMalformedEnvKey as zu };
|
|
55899
|
-
//# sourceMappingURL=deploy-engine
|
|
55689
|
+
//# sourceMappingURL=deploy-engine-b0rYBotL.js.map
|