@go-to-k/cdkd 0.296.19 → 0.296.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{asg-provider-ha36d8C0.js → asg-provider-D5_Zlj5T.js} +2 -2
- package/dist/{asg-provider-ha36d8C0.js.map → asg-provider-D5_Zlj5T.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-DFGqFKxg.js → deploy-engine-CFgNpsEy.js} +404 -38
- package/dist/deploy-engine-CFgNpsEy.js.map +1 -0
- package/dist/iam-policy-targets-BoZuWtxK.js.map +1 -1
- package/dist/{iam-role-provider-ClhDA-4n.js → iam-role-provider-lZJS9r6W.js} +2 -2
- package/dist/{iam-role-provider-ClhDA-4n.js.map → iam-role-provider-lZJS9r6W.js.map} +1 -1
- package/dist/index.d.ts +75 -27
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/{neptune-provider-DHPdyc-o.js → neptune-provider-DGI_r9C8.js} +2 -2
- package/dist/{neptune-provider-DHPdyc-o.js.map → neptune-provider-DGI_r9C8.js.map} +1 -1
- package/dist/{program-B71EFlzv.js → program-B5hwPYpu.js} +16 -5
- package/dist/program-B5hwPYpu.js.map +1 -0
- package/dist/{provider-classes-ByXP467R.js → provider-classes-D9az4nS4.js} +73 -15
- package/dist/provider-classes-D9az4nS4.js.map +1 -0
- package/dist/{rds-provider-DOBUTuj4.js → rds-provider-CE85wFCg.js} +2 -2
- package/dist/{rds-provider-DOBUTuj4.js.map → rds-provider-CE85wFCg.js.map} +1 -1
- package/dist/{version-DsDA-Fvw.js → version-_h48bvqX.js} +2 -2
- package/dist/{version-DsDA-Fvw.js.map → version-_h48bvqX.js.map} +1 -1
- package/package.json +1 -1
- package/dist/deploy-engine-DFGqFKxg.js.map +0 -1
- package/dist/program-B71EFlzv.js.map +0 -1
- package/dist/provider-classes-ByXP467R.js.map +0 -1
|
@@ -2,7 +2,7 @@ import { r as getAwsClients, s as __exportAll } from "./aws-clients-CnmtbrxD.js"
|
|
|
2
2
|
import { A as UNRENDERABLE, C as looksLikeCdkdGeneratedName, E as withoutGeneratedFallbackName, F as displayStackName, I as isPasteableIdent, M as displayAwsMessage, N as displayIdent, O as SECRET_REF_MAX_CODE_POINTS, P as displaySafe, R as plainIdentOr, S as getCurrentStackName, T as withStackName, V as truncateCodePoints, a as getLogger, b as generateResourceNameWithFallback, d as installLogLineMaskerSource, f as getLiveRenderer, g as applyDefaultNameForFallback, k as STACK_REF_MAX_CODE_POINTS, o as isStdoutReservedForPayload, r as safeStringify$1, t as describeAwsFailure, u as currentLogLineMasker, v as explicitNamePropertyFor, w as withSkipPrefix, x as getCurrentSkipPrefix, y as generateResourceName, z as safeMsg } from "./aws-failure-text-BaWeCWRz.js";
|
|
3
3
|
import { $ as protectedReplacementAdvice, $n as isIamPropagationError, $t as AccountIdUnavailableError, A as isQuotableImportValue, An as commandHole, At as isAuxiliaryMarkOf, B as isTerminalDeleteFailure, Bt as sanitizeRecoveryValue, Ct as RETRY_AUXILIARY_OWNER, Dn as SHELL_ACTIVE, Dt as createdResourceIdentityBeforeFailure, E as assertRegionMatch, Et as createdBeforeFailure, F as resolveExplicitPhysicalId, Fn as plainOrDescribed, G as runDeleteAttempt, Gn as isNameCooldownError, H as observeThenDisableProtection, Hn as isUpdateUnsupportedError, Ht as DEFAULT_STATE_PREFIX, In as quotedOrDescribed, J as DELETION_PROTECTION_DOC_POINTER, Jt as withPasteableAwsProfile, Kn as isRecreateRetryableError, Kt as producerRecordKey, L as ProtectionFlipRegistry, Ln as shellBoundedDisplay, Lt as formatLockExpiry, M as quotedRemedyLogicalId, Mn as isInertUnquoted, Mt as markCreatedBeforeFailure, N as refusalTypeShown, Nn as pasteableCommand, Nt as UNREPRODUCIBLE_LOCK_CLAUSE, On as SHELL_ACTIVE_WHY, Ot as hasCreatedBeforeFailure, Pn as physicalIdShownBesideCommand, Pt as buildForceUnlockCommand, Q as pasteableAwsCommand, Qn as isAmbiguousOutcomeError, Qt as credentialFingerprint, R as compensateProtectionFlip, Rn as shellQuote, Rt as formatLockOperation, St as withDerivedNameMasks, T as RESOURCE_NOT_FOUND, U as protectionFlipKey, Un as hasReplayMayCollide, Ut as injectiveKey, Vt as CUSTOM_RESOURCE_RESPONSE_PREFIX, Wn as isNameCollisionErrorFrom, Xn as formatRetryClassificationSignals, Xt as ambientCredentialConfig, Yn as markReplayMayCollide, Yt as ambientClientDefaults, Zn as isAmbiguousCcHandlerErrorCode, Zt as clientDefaultsFor, _n as ResourceUpdateNotSupportedError, _t as createMaskedLogSinks, ar as isThrottlingError, at as startInterruptWatch, bn as StateError, bt as maskDeep, cr as wrapMaskedAwsError, ct as canonicalizeRoute53QueryName, d as prepareRemovalForUpdate, dn as MacroExpansionError, en as AssetError, er as isRetryableTransientError, f as removalWarning, fn as MalformedProducerRecordRefusalError, ft as logicalIdShown, gn as ResourceTimeoutError, gt as stateOrphanRecordRemedy, hn as ProvisioningError, ht as segmentAfterAnchor, i as holdsSecretDerivedEntry, in as DependencyError, ir as isMarkedNonRetryable, it as isInterruptedWaitError, j as normalizeAwsTagsToCfn, jt as markAuxiliaryFailure, kn as UNSHOWABLE_VALUE, kt as isAuxiliaryFailure, l as withUnchangedSecretPrincipalLists, m as withoutInjectedRemovals, mt as resourceTypeShown, nr as retryClassificationText, on as DynamicReferenceRegionAmbiguousError, or as markNonRetryable, ot as ElapsedBudgetRegistry, qn as isReplayedNameCollisionFrom, rn as CrossAccountSecretRefusalError, sn as IntrinsicResolutionRefusalError, sr as markRedactedCause, st as monotonicNowMs, tn as CdkdError, tr as isTransientServerError, un as LockError, ut as compositeIdSeparatorRefusal, vt as createMaskedRetryLogger, w as withoutServerErrorRetries, wn as normalizeAwsError, wt as carryCreatedBeforeFailure, xn as SynthesisError, xt as maskerOrIdentity, yt as isSecretDerivedValue, z as deleteWithProtectionCompensation, zn as withheldTargetClause, zt as formatLockOwner } from "./iam-policy-targets-BoZuWtxK.js";
|
|
4
4
|
import { a as setAssumedRoleCredentials, i as getPreAssumeEnvCredentials, n as awsClientDefaults, o as setPreAssumeEnvCredentials, r as getAssumedRoleCredentials, s as ambientRegion, t as SECOND_ROLE_PUBLISH_REFUSAL } from "./aws-client-defaults-D0q0z4dG.js";
|
|
5
|
-
import { t as getCdkdVersion } from "./version-
|
|
5
|
+
import { t as getCdkdVersion } from "./version-_h48bvqX.js";
|
|
6
6
|
import { createHash, randomUUID } from "node:crypto";
|
|
7
7
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
8
8
|
import { CreateBucketCommand, DeleteObjectCommand, DeleteObjectsCommand, GetBucketLocationCommand, GetBucketReplicationCommand, GetObjectCommand, HeadBucketCommand, HeadObjectCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchKey, PutBucketEncryptionCommand, PutBucketPolicyCommand, PutObjectCommand, PutPublicAccessBlockCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
|
|
@@ -8436,7 +8436,7 @@ function wildcardOverlapsResolvedPlaintext(send, wildcards, secrets) {
|
|
|
8436
8436
|
|
|
8437
8437
|
//#endregion
|
|
8438
8438
|
//#region src/deployment/secret-redaction/noecho-leaves.ts
|
|
8439
|
-
const SUB_VARIABLE$
|
|
8439
|
+
const SUB_VARIABLE$2 = /\$\{([^}!][^}]*)\}/g;
|
|
8440
8440
|
function intrinsicKeyOf(node) {
|
|
8441
8441
|
const keys = Object.keys(node);
|
|
8442
8442
|
if (keys.length !== 1) return void 0;
|
|
@@ -8463,7 +8463,7 @@ function getAttReadsNoEcho(argument, sources) {
|
|
|
8463
8463
|
return sources.attributeIsNoEcho(target, attribute);
|
|
8464
8464
|
}
|
|
8465
8465
|
function subStringReadsNoEcho(text, variables, sources) {
|
|
8466
|
-
for (const match of text.matchAll(SUB_VARIABLE$
|
|
8466
|
+
for (const match of text.matchAll(SUB_VARIABLE$2)) {
|
|
8467
8467
|
const name = match[1].trim();
|
|
8468
8468
|
if (variables !== void 0 && Object.hasOwn(variables, name)) continue;
|
|
8469
8469
|
if (sources.parameters.has(name)) return true;
|
|
@@ -8511,8 +8511,12 @@ function literalIndex(index) {
|
|
|
8511
8511
|
if (typeof index === "number" && Number.isInteger(index)) return index;
|
|
8512
8512
|
if (typeof index === "string" && /^\d+$/.test(index)) return Number(index);
|
|
8513
8513
|
}
|
|
8514
|
-
function noEchoCoordinatesOf(template, resolved, sources) {
|
|
8514
|
+
function noEchoCoordinatesOf(template, resolved, sources, onCoordinate) {
|
|
8515
8515
|
const coordinates = [];
|
|
8516
|
+
const push = (path, node) => {
|
|
8517
|
+
coordinates.push(path);
|
|
8518
|
+
onCoordinate?.(path, node);
|
|
8519
|
+
};
|
|
8516
8520
|
const ancestors = /* @__PURE__ */ new Set();
|
|
8517
8521
|
const parametersOnly = {
|
|
8518
8522
|
parameters: sources.parameters,
|
|
@@ -8528,14 +8532,14 @@ function noEchoCoordinatesOf(template, resolved, sources) {
|
|
|
8528
8532
|
if (Array.isArray(source)) {
|
|
8529
8533
|
if (!readsNoEchoSource(source, sources)) return;
|
|
8530
8534
|
if (Array.isArray(value) && value.length === source.length) source.forEach((item, index) => walk(item, value[index], [...path, index]));
|
|
8531
|
-
else if (readsNoEchoSource(source, parametersOnly) || source.some(isBareDeclaredGetAtt))
|
|
8535
|
+
else if (readsNoEchoSource(source, parametersOnly) || source.some(isBareDeclaredGetAtt)) push(path, source);
|
|
8532
8536
|
return;
|
|
8533
8537
|
}
|
|
8534
8538
|
const record = source;
|
|
8535
8539
|
const intrinsic = intrinsicKeyOf(record);
|
|
8536
8540
|
if (intrinsic === void 0) {
|
|
8537
8541
|
if (!isPlainObject$4(value)) {
|
|
8538
|
-
if (readsNoEchoSource(record, parametersOnly))
|
|
8542
|
+
if (readsNoEchoSource(record, parametersOnly)) push(path, source);
|
|
8539
8543
|
return;
|
|
8540
8544
|
}
|
|
8541
8545
|
for (const [key, child] of Object.entries(record)) if (Object.hasOwn(value, key)) walk(child, value[key], [...path, key]);
|
|
@@ -8550,7 +8554,7 @@ function noEchoCoordinatesOf(template, resolved, sources) {
|
|
|
8550
8554
|
return;
|
|
8551
8555
|
}
|
|
8552
8556
|
if (isBareDeclaredGetAtt(argument[1]) || isBareDeclaredGetAtt(argument[2])) {
|
|
8553
|
-
|
|
8557
|
+
push(path, source);
|
|
8554
8558
|
return;
|
|
8555
8559
|
}
|
|
8556
8560
|
}
|
|
@@ -8567,10 +8571,10 @@ function noEchoCoordinatesOf(template, resolved, sources) {
|
|
|
8567
8571
|
}
|
|
8568
8572
|
}
|
|
8569
8573
|
if (intrinsic === "Fn::GetAtt") {
|
|
8570
|
-
if (getAttReadsNoEcho(record["Fn::GetAtt"], sources))
|
|
8574
|
+
if (getAttReadsNoEcho(record["Fn::GetAtt"], sources)) push(path, source);
|
|
8571
8575
|
return;
|
|
8572
8576
|
}
|
|
8573
|
-
if (readsNoEchoSource(record, parametersOnly))
|
|
8577
|
+
if (readsNoEchoSource(record, parametersOnly)) push(path, source);
|
|
8574
8578
|
} finally {
|
|
8575
8579
|
ancestors.delete(source);
|
|
8576
8580
|
}
|
|
@@ -8646,6 +8650,31 @@ function maskAtCoordinates(bag, coordinates) {
|
|
|
8646
8650
|
}
|
|
8647
8651
|
return root;
|
|
8648
8652
|
}
|
|
8653
|
+
function replaceAtCoordinates(bag, entries) {
|
|
8654
|
+
let root = bag;
|
|
8655
|
+
for (const { coordinate, value } of entries) {
|
|
8656
|
+
if (!readAt(root, coordinate).found) continue;
|
|
8657
|
+
if (coordinate.length === 0) {
|
|
8658
|
+
root = value;
|
|
8659
|
+
continue;
|
|
8660
|
+
}
|
|
8661
|
+
root = cloneContainer(root);
|
|
8662
|
+
let node = root;
|
|
8663
|
+
for (let i = 0; i <= coordinate.length - 1; i++) {
|
|
8664
|
+
const segment = coordinate[i];
|
|
8665
|
+
const next = i === coordinate.length - 1 ? value : cloneContainer(node[segment]);
|
|
8666
|
+
if (typeof segment === "number") node[segment] = next;
|
|
8667
|
+
else Object.defineProperty(node, segment, {
|
|
8668
|
+
value: next,
|
|
8669
|
+
enumerable: true,
|
|
8670
|
+
writable: true,
|
|
8671
|
+
configurable: true
|
|
8672
|
+
});
|
|
8673
|
+
node = next;
|
|
8674
|
+
}
|
|
8675
|
+
}
|
|
8676
|
+
return root;
|
|
8677
|
+
}
|
|
8649
8678
|
function maskReadbackAtCoordinates(readback, properties, coordinates) {
|
|
8650
8679
|
let result = readback;
|
|
8651
8680
|
for (const coordinate of coordinates) {
|
|
@@ -9932,7 +9961,7 @@ async function withRetry(operation, logicalId, opts = {}) {
|
|
|
9932
9961
|
const backoffThroughThisAttemptMs = propagation ? propagationSleptMs + delay : propagationSleptMs;
|
|
9933
9962
|
opts.logger?.debug(` ⏳ Retrying ${shownId} in ${delay / 1e3}s (attempt ${attempt + 1}/${attemptLimit}${propagation ? `, ${(backoffThroughThisAttemptMs / 1e3).toFixed(2)}s backoff through this attempt` : ""}) - ${message}`);
|
|
9934
9963
|
for (let waited = 0; waited < delay; waited += 1e3) {
|
|
9935
|
-
if (opts.isInterrupted?.()) throw opts.onInterrupted ? opts.onInterrupted() : /* @__PURE__ */ new Error("Interrupted");
|
|
9964
|
+
if (opts.isInterrupted?.()) throw carryCreatedBeforeFailure(previousError, opts.onInterrupted ? opts.onInterrupted() : /* @__PURE__ */ new Error("Interrupted"));
|
|
9936
9965
|
await sleep(Math.min(1e3, delay - waited));
|
|
9937
9966
|
}
|
|
9938
9967
|
if (propagation) {
|
|
@@ -22923,7 +22952,7 @@ var CloudControlProvider = class {
|
|
|
22923
22952
|
const indeterminateGuard = await this.confirmDeleteTargetIdentity(logicalId, resourceType, physicalId, context);
|
|
22924
22953
|
if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
|
|
22925
22954
|
this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
|
|
22926
|
-
const { ASGProvider } = await import("./asg-provider-
|
|
22955
|
+
const { ASGProvider } = await import("./asg-provider-D5_Zlj5T.js");
|
|
22927
22956
|
const delegateRegion = ambientRegion();
|
|
22928
22957
|
let asgProvider = this.asgDeleteDelegates.get(delegateRegion);
|
|
22929
22958
|
if (asgProvider === void 0) {
|
|
@@ -23029,7 +23058,7 @@ var CloudControlProvider = class {
|
|
|
23029
23058
|
const family = SDK_DELETE_FAMILIES.get(resourceType);
|
|
23030
23059
|
const cached = this.sdkDeleteDelegates.get(family);
|
|
23031
23060
|
if (cached !== void 0 && cached.region === ccRegion) return cached.provider;
|
|
23032
|
-
const provider = family === "rds" ? new (await (import("./rds-provider-
|
|
23061
|
+
const provider = family === "rds" ? new (await (import("./rds-provider-CE85wFCg.js"))).RDSProvider({ region: ccRegion }) : new (await (import("./neptune-provider-DGI_r9C8.js"))).NeptuneProvider({ region: ccRegion });
|
|
23033
23062
|
this.sdkDeleteDelegates.set(family, {
|
|
23034
23063
|
region: ccRegion,
|
|
23035
23064
|
provider
|
|
@@ -23923,6 +23952,305 @@ function findResolvedSecretPaths(properties, secrets) {
|
|
|
23923
23952
|
return paths;
|
|
23924
23953
|
}
|
|
23925
23954
|
|
|
23955
|
+
//#endregion
|
|
23956
|
+
//#region src/deployment/noecho-delete-reresolution.ts
|
|
23957
|
+
function readsNoEchoDeleteValues(resourceType) {
|
|
23958
|
+
return resourceType === "AWS::CloudFormation::CustomResource" || resourceType.startsWith("Custom::") || resourceType === "AWS::CloudFormation::Stack";
|
|
23959
|
+
}
|
|
23960
|
+
function isRecord(value) {
|
|
23961
|
+
return value !== null && typeof value === "object" && !Array.isArray(value);
|
|
23962
|
+
}
|
|
23963
|
+
function maskedNoEchoCoordinates(properties, recordedLeaves) {
|
|
23964
|
+
return (recordedLeaves ?? []).filter((coordinate) => carriesSecretMask(valueAtCoordinate(properties, coordinate)));
|
|
23965
|
+
}
|
|
23966
|
+
function applyNoEchoDeleteValues(properties, recordedLeaves, values) {
|
|
23967
|
+
const masked = maskedNoEchoCoordinates(properties, recordedLeaves);
|
|
23968
|
+
if (masked.length === 0) return {
|
|
23969
|
+
payload: properties,
|
|
23970
|
+
unresolved: []
|
|
23971
|
+
};
|
|
23972
|
+
const byKey = new Map((values?.leaves ?? []).map((leaf) => [canonicalJson$3(leaf.coordinate), leaf]));
|
|
23973
|
+
const entries = [];
|
|
23974
|
+
const unresolved = [];
|
|
23975
|
+
for (const coordinate of masked) {
|
|
23976
|
+
const leaf = byKey.get(canonicalJson$3(coordinate));
|
|
23977
|
+
if (leaf === void 0) unresolved.push(coordinate);
|
|
23978
|
+
else entries.push({
|
|
23979
|
+
coordinate,
|
|
23980
|
+
value: leaf.value
|
|
23981
|
+
});
|
|
23982
|
+
}
|
|
23983
|
+
if (unresolved.length > 0) return {
|
|
23984
|
+
payload: properties,
|
|
23985
|
+
unresolved
|
|
23986
|
+
};
|
|
23987
|
+
return {
|
|
23988
|
+
payload: replaceAtCoordinates(properties, entries),
|
|
23989
|
+
unresolved
|
|
23990
|
+
};
|
|
23991
|
+
}
|
|
23992
|
+
function recordLeaves(bag, value) {
|
|
23993
|
+
if (value !== null && typeof value === "object" && !Array.isArray(value)) {
|
|
23994
|
+
for (const child of Object.values(value)) recordLeaves(bag, child);
|
|
23995
|
+
return;
|
|
23996
|
+
}
|
|
23997
|
+
recordLogOnlyParameterValue(bag, value);
|
|
23998
|
+
}
|
|
23999
|
+
function templateNodesAt(templateProperties, shape, noEchoParameters, conditions) {
|
|
24000
|
+
const nodes = /* @__PURE__ */ new Map();
|
|
24001
|
+
noEchoCoordinatesOf(templateProperties ?? {}, shape, {
|
|
24002
|
+
parameters: noEchoParameters,
|
|
24003
|
+
...conditions !== void 0 && { conditions }
|
|
24004
|
+
}, (coordinate, node) => nodes.set(canonicalJson$3(coordinate), node));
|
|
24005
|
+
return nodes;
|
|
24006
|
+
}
|
|
24007
|
+
async function fingerprintsUnchanged(record, templateProperties, coordinate, fingerprinter) {
|
|
24008
|
+
const key = coordinate[0];
|
|
24009
|
+
if (typeof key !== "string") return false;
|
|
24010
|
+
const props = templateProperties !== null && typeof templateProperties === "object" ? templateProperties : {};
|
|
24011
|
+
const raw = record.maskedPropertyFingerprints;
|
|
24012
|
+
if (!(raw !== null && typeof raw === "object" && Object.hasOwn(raw, key))) return true;
|
|
24013
|
+
const recorded = maskedPropertyFingerprintsOf(record).get(key);
|
|
24014
|
+
if (recorded === void 0 || !Object.hasOwn(props, key)) return false;
|
|
24015
|
+
if (recorded !== maskedPropertyFingerprint(props[key])) return false;
|
|
24016
|
+
const bound = maskedPropertyInputFingerprintsOf(record).get(key);
|
|
24017
|
+
if (bound === void 0) return true;
|
|
24018
|
+
const now = fingerprinter === void 0 ? void 0 : await fingerprinter(key);
|
|
24019
|
+
return now !== void 0 && now === bound;
|
|
24020
|
+
}
|
|
24021
|
+
async function noEchoDeleteValuesFromResolved(options) {
|
|
24022
|
+
const { record, templateResource, resolvedProperties } = options;
|
|
24023
|
+
if (!readsNoEchoDeleteValues(record.resourceType)) return void 0;
|
|
24024
|
+
const masked = maskedNoEchoCoordinates(record.properties, noEchoLeavesOf(record));
|
|
24025
|
+
if (masked.length === 0 || templateResource === void 0 || resolvedProperties === void 0) return;
|
|
24026
|
+
if (templateResource.Type !== record.resourceType) return void 0;
|
|
24027
|
+
if (carriesResolvedSecret(options.secrets)) return void 0;
|
|
24028
|
+
const nodes = templateNodesAt(templateResource.Properties, resolvedProperties, options.noEchoParameters, options.conditions);
|
|
24029
|
+
const bag = new Map(options.secrets);
|
|
24030
|
+
carryLogOnlyValues(options.secrets, bag);
|
|
24031
|
+
const templateProps = isRecord(templateResource.Properties) ? templateResource.Properties : {};
|
|
24032
|
+
const fingerprinter = options.inputSources === void 0 ? void 0 : inputFingerprinter(templateProps, options.inputSources);
|
|
24033
|
+
const leaves = [];
|
|
24034
|
+
for (const coordinate of masked) {
|
|
24035
|
+
if (!nodes.has(canonicalJson$3(coordinate))) continue;
|
|
24036
|
+
if (!await fingerprintsUnchanged(record, templateProps, coordinate, fingerprinter)) continue;
|
|
24037
|
+
const value = valueAtCoordinate(resolvedProperties, coordinate);
|
|
24038
|
+
if (value === void 0 || carriesSecretMask(value)) continue;
|
|
24039
|
+
recordLeaves(bag, value);
|
|
24040
|
+
leaves.push({
|
|
24041
|
+
coordinate,
|
|
24042
|
+
value
|
|
24043
|
+
});
|
|
24044
|
+
}
|
|
24045
|
+
if (leaves.length === 0) return void 0;
|
|
24046
|
+
return {
|
|
24047
|
+
leaves,
|
|
24048
|
+
maskSecrets: createSecretMasker(bag)
|
|
24049
|
+
};
|
|
24050
|
+
}
|
|
24051
|
+
const PSEUDO_PARAMETERS = /* @__PURE__ */ new Set([
|
|
24052
|
+
"AWS::Region",
|
|
24053
|
+
"AWS::Partition",
|
|
24054
|
+
"AWS::URLSuffix",
|
|
24055
|
+
"AWS::AccountId",
|
|
24056
|
+
"AWS::StackName"
|
|
24057
|
+
]);
|
|
24058
|
+
const SUB_VARIABLE$1 = /\$\{([^}!][^}]*)\}/g;
|
|
24059
|
+
const PARAMETER_ONLY_INTRINSICS = /* @__PURE__ */ new Set([
|
|
24060
|
+
"Ref",
|
|
24061
|
+
"Fn::Join",
|
|
24062
|
+
"Fn::Sub",
|
|
24063
|
+
"Fn::Select",
|
|
24064
|
+
"Fn::Split",
|
|
24065
|
+
"Fn::Base64"
|
|
24066
|
+
]);
|
|
24067
|
+
function readsParametersOnly(node, declared, refused) {
|
|
24068
|
+
const isParameter = (name) => typeof name === "string" && (declared.has(name) && !refused.has(name) || PSEUDO_PARAMETERS.has(name));
|
|
24069
|
+
const walk = (value) => {
|
|
24070
|
+
if (typeof value === "string") return !value.includes("{{resolve:");
|
|
24071
|
+
if (value === null || typeof value !== "object") return true;
|
|
24072
|
+
if (Array.isArray(value)) return value.every(walk);
|
|
24073
|
+
const record = value;
|
|
24074
|
+
const keys = Object.keys(record);
|
|
24075
|
+
const intrinsic = keys.length === 1 && (keys[0] === "Ref" || keys[0].startsWith("Fn::")) ? keys[0] : void 0;
|
|
24076
|
+
if (keys.includes("Condition")) return false;
|
|
24077
|
+
if (intrinsic === void 0) return Object.values(record).every(walk);
|
|
24078
|
+
if (!PARAMETER_ONLY_INTRINSICS.has(intrinsic)) return false;
|
|
24079
|
+
const argument = record[intrinsic];
|
|
24080
|
+
if (intrinsic === "Ref") return isParameter(argument);
|
|
24081
|
+
if (intrinsic === "Fn::Sub") {
|
|
24082
|
+
const [text, variables] = Array.isArray(argument) ? argument : [argument, void 0];
|
|
24083
|
+
if (typeof text !== "string" || text.includes("{{resolve:")) return false;
|
|
24084
|
+
const local = variables !== null && typeof variables === "object" && !Array.isArray(variables) ? variables : void 0;
|
|
24085
|
+
if (Array.isArray(argument) && argument.length === 2 && local === void 0) return false;
|
|
24086
|
+
for (const match of text.matchAll(SUB_VARIABLE$1)) {
|
|
24087
|
+
const name = match[1];
|
|
24088
|
+
if (local !== void 0 && Object.hasOwn(local, name)) continue;
|
|
24089
|
+
if (!isParameter(name)) return false;
|
|
24090
|
+
}
|
|
24091
|
+
return local === void 0 || Object.values(local).every(walk);
|
|
24092
|
+
}
|
|
24093
|
+
return walk(argument);
|
|
24094
|
+
};
|
|
24095
|
+
return walk(node);
|
|
24096
|
+
}
|
|
24097
|
+
var TemplateNoEchoReresolver = class TemplateNoEchoReresolver {
|
|
24098
|
+
logger = getLogger().child("NoEchoDeleteReresolution");
|
|
24099
|
+
resolver;
|
|
24100
|
+
parametersPromise;
|
|
24101
|
+
noEchoParameters;
|
|
24102
|
+
options;
|
|
24103
|
+
constructor(options) {
|
|
24104
|
+
this.options = options;
|
|
24105
|
+
this.resolver = new IntrinsicFunctionResolver(options.region);
|
|
24106
|
+
const declared = /* @__PURE__ */ new Set();
|
|
24107
|
+
const section = options.template.Parameters;
|
|
24108
|
+
if (section !== null && typeof section === "object") for (const [name, definition] of Object.entries(section)) {
|
|
24109
|
+
const noEcho = definition?.NoEcho;
|
|
24110
|
+
if (noEcho === true || noEcho === "true") declared.add(name);
|
|
24111
|
+
}
|
|
24112
|
+
for (const name of options.inheritedNoEchoParameters ?? []) declared.add(name);
|
|
24113
|
+
this.noEchoParameters = declared;
|
|
24114
|
+
}
|
|
24115
|
+
static usable(template) {
|
|
24116
|
+
return template !== void 0 && template !== null && typeof template === "object" && template.Transform === void 0;
|
|
24117
|
+
}
|
|
24118
|
+
newBag() {
|
|
24119
|
+
const bag = new Map(this.options.inheritedSecrets ?? []);
|
|
24120
|
+
if (this.options.inheritedSecrets !== void 0) carryLogOnlyValues(this.options.inheritedSecrets, bag);
|
|
24121
|
+
return bag;
|
|
24122
|
+
}
|
|
24123
|
+
boundParameters() {
|
|
24124
|
+
this.parametersPromise ??= this.resolver.resolveParameters(this.options.template, this.options.parameters, { inheritedSecrets: this.newBag() }).catch(() => {
|
|
24125
|
+
this.logger.debug(safeMsg`Could not bind the parameters of ${this.options.stackName}'s template; NoEcho ` + `coordinates are not re-resolved for its custom resources' deletes.`);
|
|
24126
|
+
});
|
|
24127
|
+
return this.parametersPromise;
|
|
24128
|
+
}
|
|
24129
|
+
inputSources(parameters) {
|
|
24130
|
+
const { parameterInput, bound } = parameterInputsFor({
|
|
24131
|
+
template: this.options.template,
|
|
24132
|
+
values: parameters,
|
|
24133
|
+
nestedChild: this.options.parameters !== void 0,
|
|
24134
|
+
supplied: this.options.parameters,
|
|
24135
|
+
passedClasses: this.options.passedClasses
|
|
24136
|
+
});
|
|
24137
|
+
return {
|
|
24138
|
+
template: this.options.template,
|
|
24139
|
+
parameterInput,
|
|
24140
|
+
resolve: async (node) => {
|
|
24141
|
+
const secrets = /* @__PURE__ */ new Map();
|
|
24142
|
+
return {
|
|
24143
|
+
value: await this.resolver.resolve(structuredClone(node), {
|
|
24144
|
+
template: this.options.template,
|
|
24145
|
+
resources: {},
|
|
24146
|
+
parameters: bound,
|
|
24147
|
+
stackName: this.options.stackName,
|
|
24148
|
+
recordedSecretValues: secrets,
|
|
24149
|
+
skipDynamicReferences: true
|
|
24150
|
+
}),
|
|
24151
|
+
secrets
|
|
24152
|
+
};
|
|
24153
|
+
}
|
|
24154
|
+
};
|
|
24155
|
+
}
|
|
24156
|
+
async noEchoNeedles() {
|
|
24157
|
+
const bag = this.newBag();
|
|
24158
|
+
const parameters = await this.boundParameters();
|
|
24159
|
+
for (const name of this.noEchoParameters) if (parameters !== void 0 && Object.hasOwn(parameters, name)) recordLogOnlyParameterValue(bag, parameters[name]);
|
|
24160
|
+
return bag;
|
|
24161
|
+
}
|
|
24162
|
+
async valuesFor(logicalId, record) {
|
|
24163
|
+
const masked = maskedNoEchoCoordinates(record.properties, noEchoLeavesOf(record));
|
|
24164
|
+
if (masked.length === 0) return void 0;
|
|
24165
|
+
const resources = this.options.template.Resources;
|
|
24166
|
+
const templateResource = resources !== void 0 && Object.hasOwn(resources, logicalId) ? resources[logicalId] : void 0;
|
|
24167
|
+
if (templateResource?.Type !== record.resourceType) return void 0;
|
|
24168
|
+
const parameters = await this.boundParameters();
|
|
24169
|
+
if (parameters === void 0) return void 0;
|
|
24170
|
+
const nodes = templateNodesAt(templateResource.Properties, record.properties, this.noEchoParameters, void 0);
|
|
24171
|
+
const declared = new Set(Object.keys(this.options.template.Parameters ?? {}));
|
|
24172
|
+
const templateProps = isRecord(templateResource.Properties) ? templateResource.Properties : {};
|
|
24173
|
+
const fingerprinter = inputFingerprinter(templateProps, this.inputSources(parameters));
|
|
24174
|
+
const refused = this.options.maskedParameters ?? /* @__PURE__ */ new Set();
|
|
24175
|
+
const bag = await this.noEchoNeedles();
|
|
24176
|
+
const leaves = [];
|
|
24177
|
+
for (const coordinate of masked) {
|
|
24178
|
+
const key = canonicalJson$3(coordinate);
|
|
24179
|
+
if (!nodes.has(key)) continue;
|
|
24180
|
+
const node = nodes.get(key);
|
|
24181
|
+
if (!readsParametersOnly(node, declared, refused)) continue;
|
|
24182
|
+
if (!await fingerprintsUnchanged(record, templateProps, coordinate, fingerprinter)) continue;
|
|
24183
|
+
let value;
|
|
24184
|
+
try {
|
|
24185
|
+
value = await this.resolver.resolve(structuredClone(node), {
|
|
24186
|
+
template: this.options.template,
|
|
24187
|
+
resources: {},
|
|
24188
|
+
parameters,
|
|
24189
|
+
stackName: this.options.stackName,
|
|
24190
|
+
recordedSecretValues: bag
|
|
24191
|
+
});
|
|
24192
|
+
} catch {
|
|
24193
|
+
this.logger.debug(safeMsg`Could not re-resolve a NoEcho coordinate of ${logicalId} from today's template.`);
|
|
24194
|
+
continue;
|
|
24195
|
+
}
|
|
24196
|
+
if (value === void 0 || carriesSecretMask(value)) continue;
|
|
24197
|
+
recordLeaves(bag, value);
|
|
24198
|
+
leaves.push({
|
|
24199
|
+
coordinate,
|
|
24200
|
+
value
|
|
24201
|
+
});
|
|
24202
|
+
}
|
|
24203
|
+
if (leaves.length === 0) return void 0;
|
|
24204
|
+
return {
|
|
24205
|
+
leaves,
|
|
24206
|
+
maskSecrets: createSecretMasker(bag)
|
|
24207
|
+
};
|
|
24208
|
+
}
|
|
24209
|
+
async forNestedChild(logicalId, row, childStackName, load, extractParameters) {
|
|
24210
|
+
const nested = this.options.nestedTemplates;
|
|
24211
|
+
const templatePath = nested !== void 0 && Object.hasOwn(nested, logicalId) ? nested[logicalId] : void 0;
|
|
24212
|
+
if (templatePath === void 0 || !fs.existsSync(templatePath)) return void 0;
|
|
24213
|
+
try {
|
|
24214
|
+
const child = load(templatePath);
|
|
24215
|
+
if (!TemplateNoEchoReresolver.usable(child.template)) return void 0;
|
|
24216
|
+
const leaves = row.noEchoLeaves ?? [];
|
|
24217
|
+
const replaced = replaceAtCoordinates(row.properties ?? {}, row.values?.leaves ?? []);
|
|
24218
|
+
const parameters = extractParameters(replaced);
|
|
24219
|
+
const inherited = /* @__PURE__ */ new Set();
|
|
24220
|
+
for (const coordinate of leaves) if (coordinate.length >= 2 && coordinate[0] === "Parameters") inherited.add(String(coordinate[1]));
|
|
24221
|
+
const rowParameters = replaced.Parameters;
|
|
24222
|
+
const masked = /* @__PURE__ */ new Set();
|
|
24223
|
+
for (const [name, value] of Object.entries(parameters)) {
|
|
24224
|
+
const raw = rowParameters !== null && typeof rowParameters === "object" && Object.hasOwn(rowParameters, name) ? rowParameters[name] : value;
|
|
24225
|
+
if (carriesSecretMask(raw) || carriesSecretMask(value)) masked.add(name);
|
|
24226
|
+
}
|
|
24227
|
+
const parentNeedles = await this.noEchoNeedles();
|
|
24228
|
+
const inheritedSecrets = this.newBag();
|
|
24229
|
+
for (const name of inherited) if (!masked.has(name) && Object.hasOwn(parameters, name)) {
|
|
24230
|
+
recordLogOnlyParameterValue(inheritedSecrets, parameters[name]);
|
|
24231
|
+
carryLogOnlyValuesCarriedBy(parentNeedles, inheritedSecrets, parameters[name]);
|
|
24232
|
+
}
|
|
24233
|
+
const parameters0 = await this.boundParameters();
|
|
24234
|
+
const rowTemplate = this.options.template.Resources?.[logicalId];
|
|
24235
|
+
const passedClasses = parameters0 === void 0 ? void 0 : await classifyPassedParameters(rowTemplate?.Properties?.Parameters, this.inputSources(parameters0)).catch(() => void 0);
|
|
24236
|
+
return new TemplateNoEchoReresolver({
|
|
24237
|
+
...passedClasses !== void 0 && { passedClasses },
|
|
24238
|
+
template: child.template,
|
|
24239
|
+
stackName: childStackName,
|
|
24240
|
+
region: this.options.region,
|
|
24241
|
+
nestedTemplates: child.nestedTemplates,
|
|
24242
|
+
parameters,
|
|
24243
|
+
inheritedNoEchoParameters: inherited,
|
|
24244
|
+
maskedParameters: masked,
|
|
24245
|
+
inheritedSecrets
|
|
24246
|
+
});
|
|
24247
|
+
} catch {
|
|
24248
|
+
this.logger.debug(safeMsg`Could not load nested stack ${logicalId}'s template to re-resolve its NoEcho values.`);
|
|
24249
|
+
return;
|
|
24250
|
+
}
|
|
24251
|
+
}
|
|
24252
|
+
};
|
|
24253
|
+
|
|
23926
24254
|
//#endregion
|
|
23927
24255
|
//#region src/provisioning/providers/custom-resource-provider.ts
|
|
23928
24256
|
const DELETE_PATH_UNMASKED = void 0;
|
|
@@ -23930,6 +24258,8 @@ const CR_NO_PROPERTIES_SKIP_REASON = "no properties in state — Delete handler
|
|
|
23930
24258
|
const CR_NO_SERVICE_TOKEN_SKIP_REASON = "no ServiceToken in state — Delete handler not invoked";
|
|
23931
24259
|
const CR_MASKED_SERVICE_TOKEN_SKIP_REASON = "masked ServiceToken in state — Delete handler not invoked";
|
|
23932
24260
|
const CR_NOECHO_PROPERTIES_SKIP_REASON = "NoEcho mask in recorded properties — Delete handler not invoked";
|
|
24261
|
+
const CR_MASKED_PROPERTIES_SKIP_REASON = "redaction mask in properties — Delete handler not invoked";
|
|
24262
|
+
const NOECHO_RERESOLUTION_BOUND = "cdkd re-resolves such a coordinate only where it holds the template ('cdkd destroy' with the app), and only while today's template reads a NoEcho parameter there with the property's text and inputs unchanged; an attribute a producer declared NoEcho has no template value to re-resolve.";
|
|
23933
24263
|
function noEchoPropertiesRemedy(context, logicalId) {
|
|
23934
24264
|
return context?.stackDestroy === true ? `cdkd is KEEPING the state record and the run exits non-zero, and every re-run skips it again. Tear down what the handler manages by hand, then drop the record with ${stateOrphanRecordRemedy(context, logicalId)}.` : "This delete is not part of a stack destroy (a 'cdkd deploy' template removal, replacement or rollback, or a 'cdkd rollback'). For a resource removed from the template the record is KEPT and every 'cdkd deploy' skips it again: tear down what the handler manages by hand. " + crDeploySkipTail(logicalId);
|
|
23935
24265
|
}
|
|
@@ -24402,14 +24732,25 @@ var CustomResourceProvider = class CustomResourceProvider {
|
|
|
24402
24732
|
reason: CR_REFERENCE_SERVICE_TOKEN_SKIP_REASON
|
|
24403
24733
|
};
|
|
24404
24734
|
}
|
|
24405
|
-
const
|
|
24406
|
-
|
|
24407
|
-
|
|
24735
|
+
const reresolved = context?.noEchoDeleteValues;
|
|
24736
|
+
const { payload, unresolved } = applyNoEchoDeleteValues(properties, context?.recordedNoEchoLeaves, reresolved);
|
|
24737
|
+
if (unresolved.length > 0) {
|
|
24738
|
+
const maskedNoEchoPaths = unresolved.map((coordinate) => coordinate.join("."));
|
|
24739
|
+
this.logger.warn(safeMsg`Custom resource ${logicalId} is recorded in state with ${maskedNoEchoPaths.join(", ")} ` + `holding the '***' mask of a NoEcho value (a NoEcho parameter, or an attribute declared NoEcho), which cdkd does not keep, so its handler would receive the mask in ResourceProperties; skipping deletion — the handler is not invoked, so anything this custom resource manages is LEFT IN PLACE. ${NOECHO_RERESOLUTION_BOUND} ` + safeMsg`${noEchoPropertiesRemedy(context, logicalId)}`);
|
|
24408
24740
|
return {
|
|
24409
24741
|
outcome: "skipped",
|
|
24410
24742
|
reason: CR_NOECHO_PROPERTIES_SKIP_REASON
|
|
24411
24743
|
};
|
|
24412
24744
|
}
|
|
24745
|
+
if (carriesSecretMask(payload)) {
|
|
24746
|
+
this.logger.warn(safeMsg`Custom resource ${logicalId} is recorded in state with a property holding the ` + "'***' redaction mask, which no NoEcho coordinate of the record names, so cdkd cannot re-resolve it and its handler would receive the mask in ResourceProperties; skipping deletion — the handler is not invoked, so anything this custom resource manages is LEFT IN PLACE. For a record 'cdkd import' or 'cdkd scrub' wrote, a 'cdkd deploy' of the app first records which positions hold a NoEcho value, after which 'cdkd destroy' sends the delete. " + safeMsg`${noEchoPropertiesRemedy(context, logicalId)}`);
|
|
24747
|
+
return {
|
|
24748
|
+
outcome: "skipped",
|
|
24749
|
+
reason: CR_MASKED_PROPERTIES_SKIP_REASON
|
|
24750
|
+
};
|
|
24751
|
+
}
|
|
24752
|
+
const deleteMask = payload === properties ? DELETE_PATH_UNMASKED : reresolved?.maskSecrets;
|
|
24753
|
+
const show = (text) => deleteMask === void 0 ? text : deleteMask(text);
|
|
24413
24754
|
if (!this.isSnsServiceToken(serviceToken) && await this.isBackingLambdaGone(serviceToken)) {
|
|
24414
24755
|
if (context?.stackDestroy === true) {
|
|
24415
24756
|
this.logger.warn(safeMsg`Backing Lambda for custom resource ${logicalId} no longer exists (${serviceToken}), so ` + "its Delete handler cannot be invoked and cdkd cannot confirm the resource was deleted; skipping deletion — anything this custom resource manages may still be LIVE. cdkd is KEEPING the state record and the run exits non-zero, as CloudFormation leaves such a stack DELETE_FAILED. A re-run skips it again unless a function with that exact ARN exists again (e.g. a shared provider stack destroyed before this one, then redeployed). Otherwise confirm by hand that whatever it manages is gone (or tear it down), then drop the record with " + safeMsg`${stateOrphanRecordRemedy(context, logicalId)}.`);
|
|
@@ -24430,10 +24771,10 @@ var CustomResourceProvider = class CustomResourceProvider {
|
|
|
24430
24771
|
LogicalResourceId: logicalId,
|
|
24431
24772
|
PhysicalResourceId: physicalId,
|
|
24432
24773
|
StackId: invocation.stackId,
|
|
24433
|
-
ResourceProperties: this.stringifyProperties(
|
|
24434
|
-
}),
|
|
24774
|
+
ResourceProperties: this.stringifyProperties(payload)
|
|
24775
|
+
}), deleteMask);
|
|
24435
24776
|
if (cfnResponse.Status === "FAILED") {
|
|
24436
|
-
this.logger.warn(`Custom resource delete handler returned FAILED for ${logicalId}: ${cfnResponse.Reason || "Unknown reason"}. The handler reported that it did NOT delete, so anything this custom resource manages is LEFT IN PLACE${handlerSkipRemedy(context, logicalId)}`);
|
|
24777
|
+
this.logger.warn(show(`Custom resource delete handler returned FAILED for ${logicalId}: ${cfnResponse.Reason || "Unknown reason"}. The handler reported that it did NOT delete, so anything this custom resource manages is LEFT IN PLACE${handlerSkipRemedy(context, logicalId)}`));
|
|
24437
24778
|
return {
|
|
24438
24779
|
outcome: "skipped",
|
|
24439
24780
|
reason: CR_DELETE_HANDLER_FAILED_SKIP_REASON
|
|
@@ -24441,7 +24782,7 @@ var CustomResourceProvider = class CustomResourceProvider {
|
|
|
24441
24782
|
}
|
|
24442
24783
|
this.logger.debug(`Successfully deleted custom resource ${logicalId}`);
|
|
24443
24784
|
} catch (error) {
|
|
24444
|
-
this.logger.warn(`Failed to delete custom resource ${logicalId}, but continuing: ${describeAwsFailure(error).detail}. The Delete handler did not complete, so anything this custom resource manages may still be LIVE${handlerSkipRemedy(context, logicalId)}`);
|
|
24785
|
+
this.logger.warn(show(`Failed to delete custom resource ${logicalId}, but continuing: ${describeAwsFailure(error).detail}. The Delete handler did not complete, so anything this custom resource manages may still be LIVE${handlerSkipRemedy(context, logicalId)}`));
|
|
24445
24786
|
return {
|
|
24446
24787
|
outcome: "skipped",
|
|
24447
24788
|
reason: CR_DELETE_INVOKE_FAILED_SKIP_REASON
|
|
@@ -24470,6 +24811,7 @@ var CustomResourceProvider = class CustomResourceProvider {
|
|
|
24470
24811
|
}
|
|
24471
24812
|
async invokeCustomResourceWithRetry(serviceToken, logicalId, operation, buildRequest, mask) {
|
|
24472
24813
|
const watch = startInterruptWatch(`Custom resource ${logicalId}`);
|
|
24814
|
+
const shown = (text) => mask === void 0 ? text : mask(text);
|
|
24473
24815
|
try {
|
|
24474
24816
|
const stackId = await this.resolveSyntheticStackId(logicalId, operation, watch);
|
|
24475
24817
|
let preDeliveryRetries = 0;
|
|
@@ -24494,7 +24836,7 @@ var CustomResourceProvider = class CustomResourceProvider {
|
|
|
24494
24836
|
} catch (error) {
|
|
24495
24837
|
if (delivered || preDeliveryRetries >= this.preDeliveryAuthzMaxRetries || !this.isTransientAuthzThrow(error)) throw error;
|
|
24496
24838
|
const delayMs = Math.min(250 * Math.pow(2, preDeliveryRetries), IAM_PROPAGATION_MAX_DELAY_MS);
|
|
24497
|
-
this.logger.warn(`Custom resource ${operation} for ${logicalId} hit a transient IAM-authorization error before the request was delivered (attempt ${attempt + 1}/${this.preDeliveryAuthzMaxRetries + 1}): ${this.truncateReason(describeAwsFailure(error).detail)}. Retrying in ${delayMs / 1e3}s with a fresh response URL and RequestId.`);
|
|
24839
|
+
this.logger.warn(`Custom resource ${operation} for ${logicalId} hit a transient IAM-authorization error before the request was delivered (attempt ${attempt + 1}/${this.preDeliveryAuthzMaxRetries + 1}): ${this.truncateReason(shown(describeAwsFailure(error).detail))}. Retrying in ${delayMs / 1e3}s with a fresh response URL and RequestId.`);
|
|
24498
24840
|
if (invocation !== void 0) await this.cleanupResponseObject(invocation.responseKey);
|
|
24499
24841
|
preDeliveryRetries += 1;
|
|
24500
24842
|
await this.sleepInterruptibly(delayMs, watch);
|
|
@@ -24505,7 +24847,7 @@ var CustomResourceProvider = class CustomResourceProvider {
|
|
|
24505
24847
|
const logAuthzMatch = logTail === void 0 ? void 0 : this.findTransientAuthzLogLine(logTail);
|
|
24506
24848
|
if (cfnResponse.Status === "FAILED" && failedResponseRetries < this.transientAuthzMaxRetries && (reasonIsAuthz || logAuthzMatch !== void 0)) {
|
|
24507
24849
|
failedResponseRetries += 1;
|
|
24508
|
-
this.logger.warn(`Custom resource ${operation} for ${logicalId} returned a transient IAM-authorization FAILED (attempt ${attempt + 1}/${this.transientAuthzMaxRetries + 1}): ${this.truncateReason(cfnResponse.Reason)}. ` + (logAuthzMatch === void 0 ? "" : `The handler's reason carried no authorization wording; the denial was found in the backing function's log: ${this.truncateReason(logAuthzMatch.line)}. `) + `Recycling the backing function's execution environment and retrying so its next cold start picks up the propagated policy.`);
|
|
24850
|
+
this.logger.warn(`Custom resource ${operation} for ${logicalId} returned a transient IAM-authorization FAILED (attempt ${attempt + 1}/${this.transientAuthzMaxRetries + 1}): ${this.truncateReason(cfnResponse.Reason === void 0 ? void 0 : shown(cfnResponse.Reason))}. ` + (logAuthzMatch === void 0 ? "" : `The handler's reason carried no authorization wording; the denial was found in the backing function's log: ${this.truncateReason(shown(logAuthzMatch.line))}. `) + `Recycling the backing function's execution environment and retrying so its next cold start picks up the propagated policy.`);
|
|
24509
24851
|
await this.recycleBackingFunctionExecEnv(serviceToken, logicalId);
|
|
24510
24852
|
continue;
|
|
24511
24853
|
}
|
|
@@ -24513,7 +24855,7 @@ var CustomResourceProvider = class CustomResourceProvider {
|
|
|
24513
24855
|
...cfnResponse,
|
|
24514
24856
|
Reason: `${cfnResponse.Reason ?? "Unknown reason"} [cdkd: the reason carried no authorization wording, but the backing function's invocation log matched the IAM-authorization signal "${logAuthzMatch.signal}" — see the cdkd warning for the log line, or the function's CloudWatch log group]`
|
|
24515
24857
|
};
|
|
24516
|
-
if (logTail !== void 0 && hasHandlerLogOutput(logTail)) this.logger.warn(`Custom resource ${operation} for ${logicalId} failed and cdkd could not classify the reason. Log tail from the DISPATCH invocation (for the CDK Provider framework's async pattern the failure may have occurred in a later execution, whose log this is not):\n` + this.truncateReason(logTail, CR_LOG_TAIL_WARN_MAX_CHARS));
|
|
24858
|
+
if (logTail !== void 0 && hasHandlerLogOutput(logTail)) this.logger.warn(`Custom resource ${operation} for ${logicalId} failed and cdkd could not classify the reason. Log tail from the DISPATCH invocation (for the CDK Provider framework's async pattern the failure may have occurred in a later execution, whose log this is not):\n` + this.truncateReason(shown(logTail), CR_LOG_TAIL_WARN_MAX_CHARS));
|
|
24517
24859
|
return cfnResponse;
|
|
24518
24860
|
}
|
|
24519
24861
|
} finally {
|
|
@@ -24629,8 +24971,8 @@ var CustomResourceProvider = class CustomResourceProvider {
|
|
|
24629
24971
|
if (lambdaResponse.FunctionError) {
|
|
24630
24972
|
const errorPayload = lambdaResponse.Payload ? Buffer.from(lambdaResponse.Payload).toString() : "Unknown";
|
|
24631
24973
|
const logTail = decodeInvokeLogTail(lambdaResponse.LogResult);
|
|
24632
|
-
if (logTail !== void 0 && hasHandlerLogOutput(logTail)) this.logger.warn(`Backing function log tail for ${logicalId} (${operation}):\n` + this.truncateReason(logTail, CR_LOG_TAIL_WARN_MAX_CHARS));
|
|
24633
|
-
throw new Error(`Lambda function error (${lambdaResponse.FunctionError}): ${errorPayload}`);
|
|
24974
|
+
if (logTail !== void 0 && hasHandlerLogOutput(logTail)) this.logger.warn(`Backing function log tail for ${logicalId} (${operation}):\n` + this.truncateReason(mask === void 0 ? logTail : mask(logTail), CR_LOG_TAIL_WARN_MAX_CHARS));
|
|
24975
|
+
throw new Error(`Lambda function error (${lambdaResponse.FunctionError}): ${mask === void 0 ? errorPayload : mask(errorPayload)}`);
|
|
24634
24976
|
}
|
|
24635
24977
|
let hasDirectPayload = false;
|
|
24636
24978
|
try {
|
|
@@ -32946,7 +33288,7 @@ async function prepareFinalSnapshotForDelete(logicalId, resourceType, currentRes
|
|
|
32946
33288
|
}
|
|
32947
33289
|
throw unsupportedFinalSnapshotError(logicalId, resourceType, "--skip-final-snapshot");
|
|
32948
33290
|
}
|
|
32949
|
-
async function replaceDeleteFirstAndRecreate(logicalId, resourceType, oldResourceType, currentResource, oldDeleteProvider, replaceProvider, replaceProps, secrets, updateReplacePolicy, oldDeleteProvisionedBy) {
|
|
33291
|
+
async function replaceDeleteFirstAndRecreate(logicalId, resourceType, oldResourceType, currentResource, oldDeleteProvider, replaceProvider, replaceProps, secrets, updateReplacePolicy, oldDeleteProvisionedBy, noEchoDeleteValues) {
|
|
32950
33292
|
const createContext = { maskSecrets: createSecretMasker(secrets) };
|
|
32951
33293
|
const finalSnapshotIdentifier = await this.prepareFinalSnapshotForDelete(logicalId, oldResourceType, currentResource, updateReplacePolicy);
|
|
32952
33294
|
let deleteResult;
|
|
@@ -32957,7 +33299,8 @@ async function replaceDeleteFirstAndRecreate(logicalId, resourceType, oldResourc
|
|
|
32957
33299
|
...finalSnapshotIdentifier !== void 0 && { finalSnapshotIdentifier },
|
|
32958
33300
|
...this.replacementDeleteContext(updateReplacePolicy),
|
|
32959
33301
|
recordedAttributes: currentResource.attributes,
|
|
32960
|
-
recordedNoEchoLeaves: currentResource.noEchoLeaves
|
|
33302
|
+
recordedNoEchoLeaves: currentResource.noEchoLeaves,
|
|
33303
|
+
...noEchoDeleteValues !== void 0 && { noEchoDeleteValues }
|
|
32961
33304
|
});
|
|
32962
33305
|
} catch (deleteError) {
|
|
32963
33306
|
throw new Error(maskSecretsInText(`Failed to delete old resource ${logicalId} (${currentResource.physicalId}) during the --replace delete-first fallback: ${deleteError instanceof Error ? deleteError.message : String(deleteError)}`, secrets), { cause: deleteError instanceof Error ? maskSecretsInError(deleteError, secrets) : void 0 });
|
|
@@ -33072,10 +33415,10 @@ async function createFirstThenDeleteOld(input) {
|
|
|
33072
33415
|
if (input.equalIdIsSameResource && createResult.physicalId === currentResource.physicalId) throw markNonRetryable(new CdkdError(maskName(`${displaySafe(logicalId)} (${displaySafe(resourceType)}) requires replacement (${input.trigger}) under a new name, but the create returned the resource being replaced (${displaySafe(currentResource.physicalId)}) instead of a new one, so cdkd cannot tell which name it holds. Nothing was deleted. Delete that resource by hand if it is yours, then re-run the deploy.`), "NAMED_REPLACEMENT_IDEMPOTENT_CREATE"));
|
|
33073
33416
|
if (retainOld) return createResult;
|
|
33074
33417
|
this.logger.info(safeMsg` Deleting old ${logicalId} (${currentResource.physicalId})...`);
|
|
33075
|
-
await this.deleteReplacedAfterCreate(logicalId, input.oldResourceType, currentResource, input.deleteProvider, input.deleteProperties, finalSnapshotIdentifier, input.deletePolicy, secrets, input.deleteProvisionedBy);
|
|
33418
|
+
await this.deleteReplacedAfterCreate(logicalId, input.oldResourceType, currentResource, input.deleteProvider, input.deleteProperties, finalSnapshotIdentifier, input.deletePolicy, secrets, input.deleteProvisionedBy, input.noEchoDeleteValues);
|
|
33076
33419
|
return createResult;
|
|
33077
33420
|
}
|
|
33078
|
-
async function deleteReplacedAfterCreate(logicalId, oldResourceType, currentResource, deleteProvider, deleteProperties, finalSnapshotIdentifier, updateReplacePolicy, secrets, deleteProvisionedBy) {
|
|
33421
|
+
async function deleteReplacedAfterCreate(logicalId, oldResourceType, currentResource, deleteProvider, deleteProperties, finalSnapshotIdentifier, updateReplacePolicy, secrets, deleteProvisionedBy, noEchoDeleteValues) {
|
|
33079
33422
|
let deleteResult = void 0;
|
|
33080
33423
|
let deleteFailed = false;
|
|
33081
33424
|
try {
|
|
@@ -33085,7 +33428,8 @@ async function deleteReplacedAfterCreate(logicalId, oldResourceType, currentReso
|
|
|
33085
33428
|
...finalSnapshotIdentifier !== void 0 && { finalSnapshotIdentifier },
|
|
33086
33429
|
...this.replacementDeleteContext(updateReplacePolicy),
|
|
33087
33430
|
recordedAttributes: currentResource.attributes,
|
|
33088
|
-
recordedNoEchoLeaves: currentResource.noEchoLeaves
|
|
33431
|
+
recordedNoEchoLeaves: currentResource.noEchoLeaves,
|
|
33432
|
+
...noEchoDeleteValues !== void 0 && { noEchoDeleteValues }
|
|
33089
33433
|
});
|
|
33090
33434
|
} catch (deleteError) {
|
|
33091
33435
|
const deleteMsg = maskSecretsInText(deleteError instanceof Error ? deleteError.message : String(deleteError), secrets);
|
|
@@ -37295,6 +37639,15 @@ function recordPreviousNoEchoLeaves(registry, stored, desiredLeaves, resolution,
|
|
|
37295
37639
|
//#endregion
|
|
37296
37640
|
//#region src/deployment/deploy-engine/update-replace.ts
|
|
37297
37641
|
async function updateByReplacement({ change, counts, currentProps, currentResource, dependencies, logicalId, oldResourceType, progress, propertyDrivenReplacement, recreateFlagged, recreateViaCcApi, recreateViaSdkProvider, renderer, resolvedProps, resourceType, stackName, stateResources, template, typeChanged, updateReplacePolicy, updateSecrets, lostWithParent }) {
|
|
37642
|
+
const noEchoDeleteValues = await noEchoDeleteValuesFromResolved({
|
|
37643
|
+
record: currentResource,
|
|
37644
|
+
templateResource: template?.Resources?.[logicalId],
|
|
37645
|
+
resolvedProperties: resolvedProps,
|
|
37646
|
+
noEchoParameters: this.noEchoPositionSources(stateResources, template)?.parameters ?? /* @__PURE__ */ new Set(),
|
|
37647
|
+
conditions: this.noEchoConditions,
|
|
37648
|
+
secrets: updateSecrets,
|
|
37649
|
+
inputSources: template && this.maskedInputSources(template, stateResources, this.noEchoConditions, stackName)
|
|
37650
|
+
});
|
|
37298
37651
|
if (propertyDrivenReplacement && !recreateFlagged && updateReplacePolicy !== "Retain") {
|
|
37299
37652
|
const statefulReason = isStatefulRecreateTargetForReplace(oldResourceType, currentProps, currentResource.observedProperties);
|
|
37300
37653
|
if (statefulReason && this.options.forceStatefulRecreation !== true) {
|
|
@@ -37374,7 +37727,8 @@ async function updateByReplacement({ change, counts, currentProps, currentResour
|
|
|
37374
37727
|
equalIdIsSameResource,
|
|
37375
37728
|
snapshotPolicy: updateReplacePolicy,
|
|
37376
37729
|
deletePolicy: updateReplacePolicy,
|
|
37377
|
-
trigger: recreateFlagName
|
|
37730
|
+
trigger: recreateFlagName,
|
|
37731
|
+
noEchoDeleteValues
|
|
37378
37732
|
});
|
|
37379
37733
|
} else if (recreateFlagged) {
|
|
37380
37734
|
const recreateFlagName = recreateViaCcApi ? "--recreate-via-cc-api" : "--recreate-via-sdk-provider";
|
|
@@ -37393,7 +37747,8 @@ async function updateByReplacement({ change, counts, currentProps, currentResour
|
|
|
37393
37747
|
...recreateFinalSnapshotId !== void 0 && { finalSnapshotIdentifier: recreateFinalSnapshotId },
|
|
37394
37748
|
...this.replacementDeleteContext(updateReplacePolicy),
|
|
37395
37749
|
recordedAttributes: currentResource.attributes,
|
|
37396
|
-
recordedNoEchoLeaves: currentResource.noEchoLeaves
|
|
37750
|
+
recordedNoEchoLeaves: currentResource.noEchoLeaves,
|
|
37751
|
+
...noEchoDeleteValues !== void 0 && { noEchoDeleteValues }
|
|
37397
37752
|
});
|
|
37398
37753
|
} catch (deleteError) {
|
|
37399
37754
|
throw new Error(maskSecretsInText(`Failed to destroy old resource ${logicalId} (${currentResource.physicalId}) during ${recreateFlagName}: ${deleteError instanceof Error ? deleteError.message : String(deleteError)}`, updateSecrets), { cause: deleteError instanceof Error ? maskSecretsInError(deleteError, updateSecrets) : void 0 });
|
|
@@ -37462,7 +37817,7 @@ async function updateByReplacement({ change, counts, currentProps, currentResour
|
|
|
37462
37817
|
if (this.options.replace !== true) throw new CdkdError(`${logicalId} (${resourceType}) requires replacement, but the create-first attempt collided with the existing resource: ${createMsg}. ${nameOrigin.descriptor}, so the CloudFormation-style safe replacement order (create the new resource before deleting the old) cannot reuse the occupied name — CloudFormation refuses this shape with "cannot update a stack when a custom-named resource requires replacing". ${nameOrigin.remedy}, or re-run with \`cdkd deploy --replace\` to delete the old resource FIRST and recreate it under the same name (the resource is briefly unavailable while it is recreated).`, "NAMED_REPLACEMENT_COLLISION");
|
|
37463
37818
|
this.logger.info(` Create-first collided with the existing resource's name and --replace is set — deleting old ${logicalId} (${currentResource.physicalId}) first...`);
|
|
37464
37819
|
deletedOldFirst = true;
|
|
37465
|
-
createResult = await this.replaceDeleteFirstAndRecreate(logicalId, resourceType, oldResourceType, currentResource, oldDeleteProvider, replaceProvider, replaceProps, updateSecrets, updateReplacePolicy, oldDeleteRoute.provisionedBy);
|
|
37820
|
+
createResult = await this.replaceDeleteFirstAndRecreate(logicalId, resourceType, oldResourceType, currentResource, oldDeleteProvider, replaceProvider, replaceProps, updateSecrets, updateReplacePolicy, oldDeleteRoute.provisionedBy, noEchoDeleteValues);
|
|
37466
37821
|
}
|
|
37467
37822
|
if (equalIdIsSameResource && !deletedOldFirst && createResult.physicalId === currentResource.physicalId) {
|
|
37468
37823
|
const idempotentNameOrigin = this.replacementNameOrigin(logicalId, currentResource.physicalId);
|
|
@@ -37470,7 +37825,7 @@ async function updateByReplacement({ change, counts, currentProps, currentResour
|
|
|
37470
37825
|
if (this.options.replace !== true) throw new CdkdError(`${logicalId} (${resourceType}) requires replacement, but its Create API is name-idempotent: the create-first attempt returned the EXISTING resource (${currentResource.physicalId}) instead of creating a new one, so deleting the "old" resource would silently destroy the resource the deploy just reported as created. ${idempotentNameOrigin.descriptor}; ${idempotentNameOrigin.remedy}, or re-run with \`cdkd deploy --replace\` to delete the old resource FIRST and recreate it under the same name (the resource is briefly unavailable while it is recreated). Note: this branch is also reached when the old resource was deleted out-of-band and the physical id is name-derived — there the create was a genuine fresh create; \`--replace\` converges that case too.`, "NAMED_REPLACEMENT_IDEMPOTENT_CREATE");
|
|
37471
37826
|
this.logger.info(` Create-first returned the existing resource (name-idempotent Create API) and --replace is set — deleting old ${logicalId} (${currentResource.physicalId}) first...`);
|
|
37472
37827
|
deletedOldFirst = true;
|
|
37473
|
-
createResult = await this.replaceDeleteFirstAndRecreate(logicalId, resourceType, oldResourceType, currentResource, oldDeleteProvider, replaceProvider, replaceProps, updateSecrets, updateReplacePolicy, oldDeleteRoute.provisionedBy);
|
|
37828
|
+
createResult = await this.replaceDeleteFirstAndRecreate(logicalId, resourceType, oldResourceType, currentResource, oldDeleteProvider, replaceProvider, replaceProps, updateSecrets, updateReplacePolicy, oldDeleteRoute.provisionedBy, noEchoDeleteValues);
|
|
37474
37829
|
}
|
|
37475
37830
|
if (deletedOldFirst) {} else if (updateReplacePolicy === "Retain") {
|
|
37476
37831
|
this.retainedOldOnReplacement.add(logicalId);
|
|
@@ -37487,7 +37842,7 @@ async function updateByReplacement({ change, counts, currentProps, currentResour
|
|
|
37487
37842
|
snapshotBlockedDelete = true;
|
|
37488
37843
|
this.logger.warn(` ⚠ Final snapshot for old ${logicalId} (${currentResource.physicalId}) failed: ${snapshotError instanceof Error ? snapshotError.message : String(snapshotError)}. The old resource was NOT deleted (UpdateReplacePolicy: Snapshot) — delete it manually once you have a snapshot; it is no longer tracked in state.`);
|
|
37489
37844
|
}
|
|
37490
|
-
if (!snapshotBlockedDelete) await this.deleteReplacedAfterCreate(logicalId, oldResourceType, currentResource, oldDeleteProvider, currentResource.properties, cleanupFinalSnapshotId, updateReplacePolicy, updateSecrets, oldDeleteRoute.provisionedBy);
|
|
37845
|
+
if (!snapshotBlockedDelete) await this.deleteReplacedAfterCreate(logicalId, oldResourceType, currentResource, oldDeleteProvider, currentResource.properties, cleanupFinalSnapshotId, updateReplacePolicy, updateSecrets, oldDeleteRoute.provisionedBy, noEchoDeleteValues);
|
|
37491
37846
|
}
|
|
37492
37847
|
}
|
|
37493
37848
|
this.registerNoEchoAttributes(logicalId, createResult, updateSecrets, resolvedProps);
|
|
@@ -37611,6 +37966,15 @@ async function updateInPlace({ conditions, counts, currentProps, currentPropsAsW
|
|
|
37611
37966
|
secrets: updateSecrets
|
|
37612
37967
|
});
|
|
37613
37968
|
const createFirst = !retainOldOnReplace && fallbackNameChange !== void 0;
|
|
37969
|
+
const noEchoDeleteValues = await noEchoDeleteValuesFromResolved({
|
|
37970
|
+
record: currentResource,
|
|
37971
|
+
templateResource: template?.Resources?.[logicalId],
|
|
37972
|
+
resolvedProperties: resolvedProps,
|
|
37973
|
+
noEchoParameters: this.noEchoPositionSources(stateResources, template)?.parameters ?? /* @__PURE__ */ new Set(),
|
|
37974
|
+
conditions: this.noEchoConditions,
|
|
37975
|
+
secrets: updateSecrets,
|
|
37976
|
+
inputSources: template && this.maskedInputSources(template, stateResources, this.noEchoConditions, stackName)
|
|
37977
|
+
});
|
|
37614
37978
|
this.logger.info(retainOldOnReplace ? `UPDATE not supported for ${logicalId} (${resourceType}), replacing (CREATE only — UpdateReplacePolicy: Retain keeps the old resource)` : createFirst ? safeMsg`UPDATE not supported for ${logicalId} (${resourceType}), replacing (CREATE → DELETE — the new name differs from the old resource's)` : `UPDATE not supported for ${logicalId} (${resourceType}), replacing (DELETE → CREATE)`);
|
|
37615
37979
|
if (retainOldOnReplace) await noteRetainedResource(resourceType, logicalId);
|
|
37616
37980
|
if (!retainOldOnReplace && !createFirst) {
|
|
@@ -37624,7 +37988,8 @@ async function updateInPlace({ conditions, counts, currentProps, currentPropsAsW
|
|
|
37624
37988
|
...fallbackFinalSnapshotId !== void 0 && { finalSnapshotIdentifier: fallbackFinalSnapshotId },
|
|
37625
37989
|
...this.replacementDeleteContext(fallbackUpdateReplacePolicy),
|
|
37626
37990
|
recordedAttributes: currentResource.attributes,
|
|
37627
|
-
recordedNoEchoLeaves: currentResource.noEchoLeaves
|
|
37991
|
+
recordedNoEchoLeaves: currentResource.noEchoLeaves,
|
|
37992
|
+
...noEchoDeleteValues !== void 0 && { noEchoDeleteValues }
|
|
37628
37993
|
});
|
|
37629
37994
|
} catch (deleteError) {
|
|
37630
37995
|
const deleteMsg = deleteError instanceof Error ? deleteError.message : String(deleteError);
|
|
@@ -37663,7 +38028,8 @@ async function updateInPlace({ conditions, counts, currentProps, currentPropsAsW
|
|
|
37663
38028
|
}),
|
|
37664
38029
|
snapshotPolicy: template?.Resources?.[logicalId]?.UpdateReplacePolicy ?? currentResource.updateReplacePolicy,
|
|
37665
38030
|
deletePolicy: template?.Resources?.[logicalId]?.UpdateReplacePolicy ?? currentResource.updateReplacePolicy,
|
|
37666
|
-
trigger: "the provisioning layer cannot update it in place"
|
|
38031
|
+
trigger: "the provisioning layer cannot update it in place",
|
|
38032
|
+
noEchoDeleteValues
|
|
37667
38033
|
}) : await this.withRetry(() => withCurrentResourceSecrets(updateSecrets, () => replProvider.create(logicalId, resourceType, replProps, { maskSecrets: createSecretMasker(updateSecrets) })), logicalId, void 0, void 0, replProvider);
|
|
37668
38034
|
} catch (createError) {
|
|
37669
38035
|
if (createFirst) throw createError;
|
|
@@ -40067,5 +40433,5 @@ DeployEngine.prototype.replacementNameOrigin = replacementNameOrigin;
|
|
|
40067
40433
|
DeployEngine.prototype.orphanedNameCollisionAdvice = orphanedNameCollisionAdvice;
|
|
40068
40434
|
|
|
40069
40435
|
//#endregion
|
|
40070
|
-
export { computeParameterTaint as $, isMarkedCoordinate as $a, refuseMalformedResourcePropertiesForDestroy as $i, wouldReturnToSdkProvider as $n, hasReadableExportSet as $o, refStateLookupFromResource as $r, resolveApp as $s, secretNamePrintingBag as $t, beginDeleteWait as A, coerceWarmThroughput as Aa, displayAssemblyPath as Ac, malformedRenderedContainersWarning as Ai, maskingRetryLogger as An, recordNestedStackParameterExpressions as Ao, sendableAssumeRoleCommand as Ar, describeDockerExecFailure as As, removeProtectionTypeList as At, S3_AUTO_DELETE_OBJECTS_TAG as B, replayWarn as Ba, refuseMalformedOrphanRecordsForDestroy as Bi, DBPROXY_TAGS_WHAT as Bn, STATE_SOURCED_CROSS_GENERATION_RULES as Bo, s3BucketWebsiteUrl as Br, redactedDockerCause as Bs, findNestedStackTypeChanges as Bt, recordedProtectionNote as C, findReplacedReadersOfRecreateTargets as Ca, defineOwnKey as Cc, malformedOrphanRecordsRefusalMessage as Ci, noEchoParameterValueSeed as Cn, scrubResourceRecord as Co, producerRegionsFromState as Cr, readBootstrapMarkerBody as Cs, sameJournaledOrphans as Ct, readProtection as D, isStatefulRecreateTargetSync as Da, ownValue as Dc, malformedOrphansWarning as Di, bindingSkippedOutputs as Dn, pathCrossesDottedKey as Do, assertSendableRoleArn as Dr, buildDockerImage as Ds, destroyStackRecordsView as Dt, perType as E, isStatefulRecreateTargetForReplace as Ea, nullPrototypeRecord as Ec, malformedOrphansRefusalMessage as Ei, isExportAliasCollision as En, isUncertifiedBaselineMaskPosition as Eo, assertFlagRoleArn as Er, buildDenyExternalAccessPolicy as Es, awaitInFlightSibling as Et, DELETE_INDEX_WAIT_PROCEED_NOTE as F, coerceCfnInteger as Fa, malformedStateRefusalMessage as Fi, earliestDefined as Fn, recordMaskOnlyValuesIn as Fo, isSettledInstanceState as Fr, getDockerCmd as Fs, isReplacementOrphan as Ft, formatResourceLine as G, templateResourceTypes as Ga, refuseMalformedOutputsForDestroy as Gi, tagMapAsList as Gn, LockManager as Go, isImpossibleEmptyStoredAttribute as Gr, stripControlChars as Gs, redactedDeleteAddressFields as Gt, isTruthyCfnBoolean as H, requireConfigObject as Ha, refuseMalformedOrphansForDestroy as Hi, planTagDiff as Hn, TEMPLATE_SOURCED_RULES as Ho, isUnboundTemplateParameter as Hr, runDockerStreaming as Hs, inheritProducerRegions as Ht, INDEX_SETTLE_POLL_INTERVAL_MS as I, configBooleanRefusal as Ia, previewableOrphanRecords as Ii, ledgerForStack as In, recordNoEchoAttributeValues as Io, s3BucketArn as Ir, isDockerClientEnvKey as Is, planFailedOps as It, cyan as J, canonicalLambdaFunctionName as Ja, refuseMalformedResourceEntriesForDeploy as Ji, stringifyIfAssigned as Jn, rebuildClientForBucketRegion as Jo, isNamelessDynamicReferenceError as Jr, Synthesizer as Js, updatePartialReason as Jt, createReadOnlyAttributeHealerFactory as K, describeTypeWithThrottleRetry as Ka, refuseMalformedResourceAttributesForOrphan as Ki, tagPlanWarning as Kn, isLockInfoExpired as Ko, carriesDynamicReference as Kr, AssetManifestLoader as Ks, redactedDeleteAddressSkip as Kt, deleteTableWithIndexBusyRetry as L, configIntegerRefusal as La, refuseDivergentRecordRegionForDestroy as Li, reserveStackCreateToken as Ln, recordProvenPublicExpression as Lo, s3BucketDomainName as Lr, isMalformedEnvKey as Ls, planRollback as Lt, deleteBudgetKey as M, toCfnInteger as Ma, resolveAssemblyPath as Mc, malformedResourcePropertiesWarning as Mi, findDestructiveChanges as Mn, carriesSecretMask as Mo, applyCallerIdentityCredentials as Mr, dockerSpawnEnvWithSensitive as Ms, recordAfterRollbackUpdate as Mt, resolveDynamoDbDeleteBudgetClock as N, toFiniteNumber as Na, clearBucketRegionCache as Nc, malformedResourcesWarning as Ni, formatDestructiveChange as Nn, provenPublicValue as No, callerEnvCredentials as Nr, finchSecretArgvRefusal as Ns, demoteSupersededOrphans as Nt, DynamoDBGlobalTableProvider as O, renderStatefulReason as Oa, absoluteAssemblyPathEscape as Oc, malformedOutputsRefusalMessage as Oi, DEFAULT_RESOURCE_TIMEOUT_MS as On, identityKeyFor as Oo, explicitRoleArnOrThrow as Or, resolveDockerContextDirectory as Os, getStackRecords as Ot, resolveDynamoDbDeleteBudgetMs as P, coerceCfnBoolean as Pa, resolveBucketRegion as Pc, malformedScrubResourceEntriesRefusalMessage as Pi, RollbackInlinePolicyWriters as Pn, recordMaskOnlyValue as Po, envCredentialsAreAssumedRole as Pr, formatDockerLoginError as Ps, isJournaledOrphan as Pt, yellow as Q, TemplateParser as Qa, refuseMalformedResourceEntriesForOrphan as Qi, isCustomResource as Qn, exportNamesCarriedFrom as Qo, isStalePlaceholderArnAttribute as Qr, loadCdkJson as Qs, orphanRecordsPrintingBag as Qt, waitForIndexesSettled as R, configStringRefusal as Ra, refuseMalformedNestedChildOutputs as Ri, withCreateTokenLedger as Rn, wholeStringLeavesOf as Ro, s3BucketDualStackDomainName as Rr, partitionSensitiveEnv as Rs, replacementNeverSwapped as Rt, recordedProtectionEvidence as S, hasNoCloudControlHandlers as Sa, processStackMessages as Sc, malformedLocalResourcesWarning as Si, isWholeDynamicReferenceValue as Sn, redactSecretsForState as So, classifyReplaySecretRegion as Sr, parseBootstrapMarker as Ss, makeForeignHolderScan as St, isProtectionValueActive as T, MULTI_REGION_RECREATE_BLOCKED_TYPES as Ta, hasPlainPrototype$1 as Tc, malformedOrphanRowsKeptWarning as Ti, collectPublishedOutputNames as Tn, dynamicReferenceTokens as To, applyRoleArnIfSet as Tr, validateContainerRepoName as Ts, replayRollback as Tt, getPriorAttempts as U, requireConfigString as Ua, refuseMalformedOrphansForOrphan as Ui, readTagList as Un, WHOLE_DYNAMIC_REFERENCE_PATTERN as Uo, parameterTypeMayLoseSecretIdentity as Ur, warnFinchArgvExposure as Us, REDACTED_DELETE_ADDRESS_SKIP_REASON as Ut, hasCdkAutoDeleteTag as V, requireConfigArray as Va, refuseMalformedOrphans as Vi, DBPROXY_TAG_OPTIONS as Vn, STATE_SOURCED_READBACK_RULES as Vo, coerceParameterTypedValue as Vr, runDockerForeground as Vs, getCurrentProducerRegions as Vt, markRefusedBeforeApplying as W, prefetchCreateOnlyPropertyPaths as Wa, refuseMalformedOutputs as Wi, refuseMalformedDesiredTags as Wn, isSingleDynamicReferenceToken as Wo, getAccountInfo as Wr, escapeRegExp$3 as Ws, isRedactedRecordedValue as Wt, green as X, sameLambdaFunctionAddress as Xa, refuseMalformedResourceEntriesForImport as Xi, ProviderRegistry as Xn, acceptedCreateOnlyDropsOf as Xo, AWS_NO_VALUE as Xr, getDefaultStateBucketName as Xs, journaledOrphanPrintingBag as Xt, gray as Y, lambdaFunctionNameForMask as Ya, refuseMalformedResourceEntriesForDestroy as Yi, CC_BROKEN_REASON as Yn, splitImportedOps as Yo, keepsSecretReferenceToken as Yr, synthesisStatusMessage as Ys, completedReplayEntries as Yt, red as Z, DagBuilder as Za, refuseMalformedResourceEntriesForImportSave as Zi, ccBrokenReason as Zn, describeRegionValueKind as Zo, cfnRefValueFromPhysicalId as Zr, getLegacyStateBucketName as Zs, maskEventTextWithBoundBags as Zt, makeCanonicalizePropertiesFn as _, findActionableSilentDrops as _a, PARTITION_TABLE as _c, malformedDriftResourcePropertiesWarning as _i, secretBearingStateKeyWarning as _n, createSecretMasker as _o, reEnableInstanceApiTermination as _r, BOOTSTRAP_MARKER_PREFIX as _s, deleteJournaledOrphans as _t, findNestedTemplateTreeDefect as a, refuseMalformedResourcesForExport as aa, resolveUseCdkBootstrapAssets as ac, STATE_REGION_DIVERGED as ai, createPreDeleteFinalSnapshot as an, passedNoEchoParametersOf as ao, unchangedBehindSecretReference as ar, orphansAfterRollback as as, NESTED_PENDING_PARENT_REASON as at, noEchoComparisonForTemplate as b, withoutSilentDropProperties as ba, AssemblyReader as bc, malformedLocalOutputsWarning as bi, exportNameNoEchoParameters as bn, maskSecretsInText as bo, IntrinsicFunctionResolver as br, getBootstrapMarkerKey as bs, journaledOrphanLines as bt, renderNestedTemplateTreeDefect as c, repairMalformedOrphansForReadOnly as ca, ssmResolvedValueType as cc, UNREADABLE_RESOURCES_MAP_ROW as ci, refusesFinalSnapshot as cn, carryLogOnlyValues as co, deleteSkipReason as cr, AssetPublisher as cs, dropSettledNestedJournals as ct, conditionInputsFrom as d, repairMalformedResourcePropertiesForReadOnly as da, MIGRATE_TMP_PREFIX as dc, displayLogicalId as di, DeploymentEventsStore as dn, literalSplitDelimitersOf as do, markWaitAbandoned as dr, WorkGraph as ds, recordDisplacedSkips as dt, refuseMalformedResourcePropertiesForDrift as ea, resolveAutoAssetStorage as ec, parseWebACLArn as ei, stateSecretNameNeedles as en, maskReadbackAtCoordinates as eo, isCustomResourceType as er, hasReasonlessBaselineRefusal as es, namesAnyDeclaredParameter as et, parentSuppliedValues as f, repairMalformedResourcesForReadOnly as fa, findLargeInlineResources as fc, hasReadableOrphans as fi, extractDeploymentEventError as fn, logOnlyValueCount as fo, disableInstanceApiTermination as fr, buildAssetRedirectMap as fs, revertNestedChildFromJournal as ft, mergeNoChangeOutputs as g, withheldAccountClause as ga, expectedOwnerParam as gc, isReadableResourceEntry as gi, secretBearing as gn, shareLogOnlyValues as go, reDisableInstanceApiTermination as gr, AssetModeResolver as gs, withNestedStackContext as gt, keptWholeReasonText as h, unreadableResourceEntries as ha, decodeListingKey as hc, isReadableOrphanRecord as hi, exportAliasCollisionScrubWarning as hn, recordLogOnlyValue as ho, observeThenDisableInstanceApiTermination as hr, rewriteTemplateAssetReferences as hs, getCurrentNestedStackContext as ht, childTemplateLoader as i, refuseMalformedResourcesForDestroy as ia, resolveStateBucketWithDefaultAndSource as ic, JSON_LISTING_HOLE_VALUE as ii, ccRoutedFinalSnapshotError as in, noEchoOutputsComparison as io, slowCcOperationTimeoutMs as ir, isReadableBag as is, planOrphanAdoption as it, compensateRemovedDeletionProtection as j, isWarmThroughputDecrease as ja, renderAssemblyPathEscape as jc, malformedResourceEntriesWarning as ji, constructPathOf as jn, recoverMaskedOutput as jo, AWS_CREDENTIAL_ENV_KEYS as jr, describeDockerFailure as js, orphanDeleteNeedsIdentity as jt, DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS as k, WARM_THROUGHPUT_MEMBERS as ka, describeFileReadFailure as kc, malformedOutputsWarning as ki, DEFAULT_RESOURCE_WARN_AFTER_MS as kn, inheritNestedStackParameterAssociations as ko, isIamRoleArn as kr, describeDockerCapturedOutput as ks, withStackRecords as kt, templateIdentity as l, repairMalformedOutputsForReadOnly as la, CFN_TEMPLATE_BODY_LIMIT as lc, accountArgs as li, unsupportedFinalSnapshotError as ln, createUnionSecretMasker as lo, withIndeterminateGuard as lr, isSensitiveAttributeName as ls, getNestedRevertRun as lt, isSecretBearingReferenceString as m, unreadableOrphanRecords as ma, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as mc, hasReadableResources as mi, displayTextOrWithheld as mn, recordLogOnlyParameterValue as mo, isTerminationProtectionPropagationError as mr, loadPublishableAssetManifest as ms, withNestedRevertRun as mt, IMPLICIT_DELETE_DEPENDENCIES as n, refuseMalformedResourcePropertiesForOrphan as na, resolveSkipPrefix as nc, parameterInputsFor as ni, PRE_DELETE_SNAPSHOT_TYPES as nn, maskedLeafCoordinatesOf as no, withPrintingSecrets as nr, importableOutputKeys as ns, resourcesNamingDeclaredParameter as nt, isAbsoluteAssetPath as o, refuseMalformedState as oa, stateBucketExistenceConfirmed as oc, STATE_RESOURCES_MALFORMED as oi, effectiveDeletionPolicy as on, readsNoEchoSource as oo, UNSPECIFIED_SKIP_REASON as or, orphansCarriedFrom as os, displacedOpClause as ot, readRecordedConditionVerdicts as p, unpreviewableOrphanRecords as pa, uploadCfnTemplate as pc, hasReadableOutputs as pi, WITHHELD_NAME_DISPLAY as pn, printingCorpusOf as po, ec2InstanceProtectionSite as pr, createAssetRedirectResolver as ps, revertedNestedRowIds as pt, bold as q, withRetry as qa, refuseMalformedResourceEntries as qi, definedAttributes as qn, S3StateBackend as qo, carriesFetchableDynamicReference as qr, getDockerImageBySourceHash as qs, updatePartialMessage as qt, computeImplicitDeleteEdges as r, refuseMalformedResourcesForDeploy as ra, resolveStateBucketWithDefault as rc, passedParameterClassesOf as ri, buildFinalSnapshotIdentifier as rn, noEchoLeavesOf as ro, CloudControlProvider as rr, importableOutputs as rs, makeSiblingClaimReader as rt, listNestedTemplateRows as s, repairMalformedOrphanRecordsForReadOnly as sa, warnDeprecatedNoPrefixCliFlag as sc, UNREADABLE_ORPHANS_CONTAINER_ROW as si, isFinalSnapshotError as sn, liveMatchesUnresolvedTokenFrame as so, deleteIndeterminateGuards as sr, shouldRetainResource as ss, displacedPhysicalIdShown as st, DeployEngine as t, refuseMalformedResourcePropertiesForExport as ta, resolveCaptureObservedState as tc, withSharedDrainBudget as ti, ATOMIC_FINAL_SNAPSHOT_TYPES as tn, maskWholeValue as to, getCurrentResourceSecrets as tr, hasUnverifiableParameterRefusal as ts, reachableDivergentParameters as tt, conditionFingerprint as u, repairMalformedResourceEntriesForReadOnly as ua, CFN_TEMPLATE_URL_LIMIT as uc, deployRefusesOrphanRowsReason as ui, DeploymentEventsReader as un, hasMaskableValues as uo, isWaitAbandonedError as ur, stringifyValue as us, nestedChildStackName as ut, withResourceDeadline as v, findSilentDropProperties as va, canonicalizeRegion as vc, malformedExportNamesWarning as vi, secretSafeKeyDisplay as vn, errorCauseChain as vo, DiffCalculator as vr, assertAssetBucketRegion as vs, dropFailedHint as vt, PROTECTION_PROPERTY_BY_TYPE as w, shownType as wa, hasOwnKey as wc, malformedOrphanRecordsWarning as wi, collectDeclaredOutputNames as wn, DYNAMIC_REFERENCE_TOKEN_SCAN as wo, regionLessSecretName as wr, validateAssetBucketName as ws, replayFailedOperations as wt, noEchoParameterNamesOf as x, NO_CC_HANDLERS_REASON as xa, StageLoadError as xc, malformedLocalResourceEntriesWarning as xi, exportNameSecretExposure as xn, markSameGenerationBag as xo, poisonRenderedSpellingsCollidingIn as xr, isCrossRegionRedirect as xs, loadJournaledOrphans as xt, noEchoAttributeNamesOf as y, unwrittenCreateOnlyReplacement as ya, derivePartitionAndUrlSuffix as yc, malformedExportSourceWarning as yi, carriedExportAliasExposure as yn, maskSecretsInError as yo, INTRINSIC_KEYS as yr, ensureAssetStorage as ys, isHandledOrphan as yt, ECR_AUTO_DELETE_IMAGES_TAG as z, readConfigString as za, refuseMalformedOrphanRecords as zi, acquireIdempotencyToken as zn, STATE_SOURCED_BASELINE_RULES as zo, s3BucketRegionalDomainName as zr, redactDockerArgvValues as zs, resolveReplacementOldType as zt };
|
|
40071
|
-
//# sourceMappingURL=deploy-engine-
|
|
40436
|
+
export { computeParameterTaint as $, DagBuilder as $a, refuseMalformedResourceEntriesForImportSave as $i, wouldReturnToSdkProvider as $n, describeRegionValueKind as $o, cfnRefValueFromPhysicalId as $r, getLegacyStateBucketName as $s, secretNamePrintingBag as $t, beginDeleteWait as A, renderStatefulReason as Aa, absoluteAssemblyPathEscape as Ac, malformedOutputsRefusalMessage as Ai, maskingRetryLogger as An, identityKeyFor as Ao, explicitRoleArnOrThrow as Ar, resolveDockerContextDirectory as As, removeProtectionTypeList as At, S3_AUTO_DELETE_OBJECTS_TAG as B, configStringRefusal as Ba, refuseMalformedNestedChildOutputs as Bi, DBPROXY_TAGS_WHAT as Bn, wholeStringLeavesOf as Bo, s3BucketDualStackDomainName as Br, partitionSensitiveEnv as Bs, findNestedStackTypeChanges as Bt, recordedProtectionNote as C, NO_CC_HANDLERS_REASON as Ca, StageLoadError as Cc, malformedLocalResourceEntriesWarning as Ci, noEchoParameterValueSeed as Cn, markSameGenerationBag as Co, poisonRenderedSpellingsCollidingIn as Cr, isCrossRegionRedirect as Cs, sameJournaledOrphans as Ct, readProtection as D, MULTI_REGION_RECREATE_BLOCKED_TYPES as Da, hasPlainPrototype$1 as Dc, malformedOrphanRowsKeptWarning as Di, bindingSkippedOutputs as Dn, dynamicReferenceTokens as Do, applyRoleArnIfSet as Dr, validateContainerRepoName as Ds, destroyStackRecordsView as Dt, perType as E, shownType as Ea, hasOwnKey as Ec, malformedOrphanRecordsWarning as Ei, isExportAliasCollision as En, DYNAMIC_REFERENCE_TOKEN_SCAN as Eo, regionLessSecretName as Er, validateAssetBucketName as Es, awaitInFlightSibling as Et, DELETE_INDEX_WAIT_PROCEED_NOTE as F, toFiniteNumber as Fa, clearBucketRegionCache as Fc, malformedResourcesWarning as Fi, earliestDefined as Fn, provenPublicValue as Fo, callerEnvCredentials as Fr, finchSecretArgvRefusal as Fs, isReplacementOrphan as Ft, formatResourceLine as G, requireConfigString as Ga, refuseMalformedOrphansForOrphan as Gi, tagMapAsList as Gn, WHOLE_DYNAMIC_REFERENCE_PATTERN as Go, parameterTypeMayLoseSecretIdentity as Gr, warnFinchArgvExposure as Gs, redactedDeleteAddressFields as Gt, isTruthyCfnBoolean as H, replayWarn as Ha, refuseMalformedOrphanRecordsForDestroy as Hi, planTagDiff as Hn, STATE_SOURCED_CROSS_GENERATION_RULES as Ho, s3BucketWebsiteUrl as Hr, redactedDockerCause as Hs, inheritProducerRegions as Ht, INDEX_SETTLE_POLL_INTERVAL_MS as I, coerceCfnBoolean as Ia, resolveBucketRegion as Ic, malformedScrubResourceEntriesRefusalMessage as Ii, ledgerForStack as In, recordMaskOnlyValue as Io, envCredentialsAreAssumedRole as Ir, formatDockerLoginError as Is, planFailedOps as It, cyan as J, describeTypeWithThrottleRetry as Ja, refuseMalformedResourceAttributesForOrphan as Ji, stringifyIfAssigned as Jn, isLockInfoExpired as Jo, carriesDynamicReference as Jr, AssetManifestLoader as Js, updatePartialReason as Jt, createReadOnlyAttributeHealerFactory as K, prefetchCreateOnlyPropertyPaths as Ka, refuseMalformedOutputs as Ki, tagPlanWarning as Kn, isSingleDynamicReferenceToken as Ko, getAccountInfo as Kr, escapeRegExp$3 as Ks, redactedDeleteAddressSkip as Kt, deleteTableWithIndexBusyRetry as L, coerceCfnInteger as La, malformedStateRefusalMessage as Li, reserveStackCreateToken as Ln, recordMaskOnlyValuesIn as Lo, isSettledInstanceState as Lr, getDockerCmd as Ls, planRollback as Lt, deleteBudgetKey as M, coerceWarmThroughput as Ma, displayAssemblyPath as Mc, malformedRenderedContainersWarning as Mi, findDestructiveChanges as Mn, recordNestedStackParameterExpressions as Mo, sendableAssumeRoleCommand as Mr, describeDockerExecFailure as Ms, recordAfterRollbackUpdate as Mt, resolveDynamoDbDeleteBudgetClock as N, isWarmThroughputDecrease as Na, renderAssemblyPathEscape as Nc, malformedResourceEntriesWarning as Ni, formatDestructiveChange as Nn, recoverMaskedOutput as No, AWS_CREDENTIAL_ENV_KEYS as Nr, describeDockerFailure as Ns, demoteSupersededOrphans as Nt, DynamoDBGlobalTableProvider as O, isStatefulRecreateTargetForReplace as Oa, nullPrototypeRecord as Oc, malformedOrphansRefusalMessage as Oi, DEFAULT_RESOURCE_TIMEOUT_MS as On, isUncertifiedBaselineMaskPosition as Oo, assertFlagRoleArn as Or, buildDenyExternalAccessPolicy as Os, getStackRecords as Ot, resolveDynamoDbDeleteBudgetMs as P, toCfnInteger as Pa, resolveAssemblyPath as Pc, malformedResourcePropertiesWarning as Pi, RollbackInlinePolicyWriters as Pn, carriesSecretMask as Po, applyCallerIdentityCredentials as Pr, dockerSpawnEnvWithSensitive as Ps, isJournaledOrphan as Pt, yellow as Q, sameLambdaFunctionAddress as Qa, refuseMalformedResourceEntriesForImport as Qi, isCustomResource as Qn, acceptedCreateOnlyDropsOf as Qo, AWS_NO_VALUE as Qr, getDefaultStateBucketName as Qs, orphanRecordsPrintingBag as Qt, waitForIndexesSettled as R, configBooleanRefusal as Ra, previewableOrphanRecords as Ri, withCreateTokenLedger as Rn, recordNoEchoAttributeValues as Ro, s3BucketArn as Rr, isDockerClientEnvKey as Rs, replacementNeverSwapped as Rt, recordedProtectionEvidence as S, withoutSilentDropProperties as Sa, AssemblyReader as Sc, malformedLocalOutputsWarning as Si, isWholeDynamicReferenceValue as Sn, maskSecretsInText as So, IntrinsicFunctionResolver as Sr, getBootstrapMarkerKey as Ss, makeForeignHolderScan as St, isProtectionValueActive as T, findReplacedReadersOfRecreateTargets as Ta, defineOwnKey as Tc, malformedOrphanRecordsRefusalMessage as Ti, collectPublishedOutputNames as Tn, scrubResourceRecord as To, producerRegionsFromState as Tr, readBootstrapMarkerBody as Ts, replayRollback as Tt, getPriorAttempts as U, requireConfigArray as Ua, refuseMalformedOrphans as Ui, readTagList as Un, STATE_SOURCED_READBACK_RULES as Uo, coerceParameterTypedValue as Ur, runDockerForeground as Us, REDACTED_DELETE_ADDRESS_SKIP_REASON as Ut, hasCdkAutoDeleteTag as V, readConfigString as Va, refuseMalformedOrphanRecords as Vi, DBPROXY_TAG_OPTIONS as Vn, STATE_SOURCED_BASELINE_RULES as Vo, s3BucketRegionalDomainName as Vr, redactDockerArgvValues as Vs, getCurrentProducerRegions as Vt, markRefusedBeforeApplying as W, requireConfigObject as Wa, refuseMalformedOrphansForDestroy as Wi, refuseMalformedDesiredTags as Wn, TEMPLATE_SOURCED_RULES as Wo, isUnboundTemplateParameter as Wr, runDockerStreaming as Ws, isRedactedRecordedValue as Wt, green as X, canonicalLambdaFunctionName as Xa, refuseMalformedResourceEntriesForDeploy as Xi, ProviderRegistry as Xn, rebuildClientForBucketRegion as Xo, isNamelessDynamicReferenceError as Xr, Synthesizer as Xs, journaledOrphanPrintingBag as Xt, gray as Y, withRetry as Ya, refuseMalformedResourceEntries as Yi, CC_BROKEN_REASON as Yn, S3StateBackend as Yo, carriesFetchableDynamicReference as Yr, getDockerImageBySourceHash as Ys, completedReplayEntries as Yt, red as Z, lambdaFunctionNameForMask as Za, refuseMalformedResourceEntriesForDestroy as Zi, ccBrokenReason as Zn, splitImportedOps as Zo, keepsSecretReferenceToken as Zr, synthesisStatusMessage as Zs, maskEventTextWithBoundBags as Zt, makeCanonicalizePropertiesFn as _, unreadableResourceEntries as _a, decodeListingKey as _c, isReadableOrphanRecord as _i, secretBearingStateKeyWarning as _n, recordLogOnlyValue as _o, observeThenDisableInstanceApiTermination as _r, rewriteTemplateAssetReferences as _s, deleteJournaledOrphans as _t, findNestedTemplateTreeDefect as a, refuseMalformedResourcesForDeploy as aa, resolveStateBucketWithDefault as ac, passedParameterClassesOf as ai, createPreDeleteFinalSnapshot as an, noEchoLeavesOf as ao, CloudControlProvider as ar, importableOutputs as as, NESTED_PENDING_PARENT_REASON as at, noEchoComparisonForTemplate as b, findSilentDropProperties as ba, canonicalizeRegion as bc, malformedExportNamesWarning as bi, exportNameNoEchoParameters as bn, errorCauseChain as bo, DiffCalculator as br, assertAssetBucketRegion as bs, journaledOrphanLines as bt, renderNestedTemplateTreeDefect as c, refuseMalformedState as ca, stateBucketExistenceConfirmed as cc, STATE_RESOURCES_MALFORMED as ci, refusesFinalSnapshot as cn, readsNoEchoSource as co, UNSPECIFIED_SKIP_REASON as cr, orphansCarriedFrom as cs, dropSettledNestedJournals as ct, conditionInputsFrom as d, repairMalformedOutputsForReadOnly as da, CFN_TEMPLATE_BODY_LIMIT as dc, accountArgs as di, DeploymentEventsStore as dn, createUnionSecretMasker as do, withIndeterminateGuard as dr, isSensitiveAttributeName as ds, recordDisplacedSkips as dt, refuseMalformedResourceEntriesForOrphan as ea, loadCdkJson as ec, isStalePlaceholderArnAttribute as ei, stateSecretNameNeedles as en, TemplateParser as eo, TemplateNoEchoReresolver as er, exportNamesCarriedFrom as es, namesAnyDeclaredParameter as et, parentSuppliedValues as f, repairMalformedResourceEntriesForReadOnly as fa, CFN_TEMPLATE_URL_LIMIT as fc, deployRefusesOrphanRowsReason as fi, extractDeploymentEventError as fn, hasMaskableValues as fo, isWaitAbandonedError as fr, stringifyValue as fs, revertNestedChildFromJournal as ft, mergeNoChangeOutputs as g, unreadableOrphanRecords as ga, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as gc, hasReadableResources as gi, secretBearing as gn, recordLogOnlyParameterValue as go, isTerminationProtectionPropagationError as gr, loadPublishableAssetManifest as gs, withNestedStackContext as gt, keptWholeReasonText as h, unpreviewableOrphanRecords as ha, uploadCfnTemplate as hc, hasReadableOutputs as hi, exportAliasCollisionScrubWarning as hn, printingCorpusOf as ho, ec2InstanceProtectionSite as hr, createAssetRedirectResolver as hs, getCurrentNestedStackContext as ht, childTemplateLoader as i, refuseMalformedResourcePropertiesForOrphan as ia, resolveSkipPrefix as ic, parameterInputsFor as ii, ccRoutedFinalSnapshotError as in, maskedLeafCoordinatesOf as io, withPrintingSecrets as ir, importableOutputKeys as is, planOrphanAdoption as it, compensateRemovedDeletionProtection as j, WARM_THROUGHPUT_MEMBERS as ja, describeFileReadFailure as jc, malformedOutputsWarning as ji, constructPathOf as jn, inheritNestedStackParameterAssociations as jo, isIamRoleArn as jr, describeDockerCapturedOutput as js, orphanDeleteNeedsIdentity as jt, DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS as k, isStatefulRecreateTargetSync as ka, ownValue as kc, malformedOrphansWarning as ki, DEFAULT_RESOURCE_WARN_AFTER_MS as kn, pathCrossesDottedKey as ko, assertSendableRoleArn as kr, buildDockerImage as ks, withStackRecords as kt, templateIdentity as l, repairMalformedOrphanRecordsForReadOnly as la, warnDeprecatedNoPrefixCliFlag as lc, UNREADABLE_ORPHANS_CONTAINER_ROW as li, unsupportedFinalSnapshotError as ln, liveMatchesUnresolvedTokenFrame as lo, deleteIndeterminateGuards as lr, shouldRetainResource as ls, getNestedRevertRun as lt, isSecretBearingReferenceString as m, repairMalformedResourcesForReadOnly as ma, findLargeInlineResources as mc, hasReadableOrphans as mi, displayTextOrWithheld as mn, logOnlyValueCount as mo, disableInstanceApiTermination as mr, buildAssetRedirectMap as ms, withNestedRevertRun as mt, IMPLICIT_DELETE_DEPENDENCIES as n, refuseMalformedResourcePropertiesForDrift as na, resolveAutoAssetStorage as nc, parseWebACLArn as ni, PRE_DELETE_SNAPSHOT_TYPES as nn, maskReadbackAtCoordinates as no, isCustomResourceType as nr, hasReasonlessBaselineRefusal as ns, resourcesNamingDeclaredParameter as nt, isAbsoluteAssetPath as o, refuseMalformedResourcesForDestroy as oa, resolveStateBucketWithDefaultAndSource as oc, JSON_LISTING_HOLE_VALUE as oi, effectiveDeletionPolicy as on, noEchoOutputsComparison as oo, slowCcOperationTimeoutMs as or, isReadableBag as os, displacedOpClause as ot, readRecordedConditionVerdicts as p, repairMalformedResourcePropertiesForReadOnly as pa, MIGRATE_TMP_PREFIX as pc, displayLogicalId as pi, WITHHELD_NAME_DISPLAY as pn, literalSplitDelimitersOf as po, markWaitAbandoned as pr, WorkGraph as ps, revertedNestedRowIds as pt, bold as q, templateResourceTypes as qa, refuseMalformedOutputsForDestroy as qi, definedAttributes as qn, LockManager as qo, isImpossibleEmptyStoredAttribute as qr, stripControlChars as qs, updatePartialMessage as qt, computeImplicitDeleteEdges as r, refuseMalformedResourcePropertiesForExport as ra, resolveCaptureObservedState as rc, withSharedDrainBudget as ri, buildFinalSnapshotIdentifier as rn, maskWholeValue as ro, getCurrentResourceSecrets as rr, hasUnverifiableParameterRefusal as rs, makeSiblingClaimReader as rt, listNestedTemplateRows as s, refuseMalformedResourcesForExport as sa, resolveUseCdkBootstrapAssets as sc, STATE_REGION_DIVERGED as si, isFinalSnapshotError as sn, passedNoEchoParametersOf as so, unchangedBehindSecretReference as sr, orphansAfterRollback as ss, displacedPhysicalIdShown as st, DeployEngine as t, refuseMalformedResourcePropertiesForDestroy as ta, resolveApp as tc, refStateLookupFromResource as ti, ATOMIC_FINAL_SNAPSHOT_TYPES as tn, isMarkedCoordinate as to, readsNoEchoDeleteValues as tr, hasReadableExportSet as ts, reachableDivergentParameters as tt, conditionFingerprint as u, repairMalformedOrphansForReadOnly as ua, ssmResolvedValueType as uc, UNREADABLE_RESOURCES_MAP_ROW as ui, DeploymentEventsReader as un, carryLogOnlyValues as uo, deleteSkipReason as ur, AssetPublisher as us, nestedChildStackName as ut, withResourceDeadline as v, withheldAccountClause as va, expectedOwnerParam as vc, isReadableResourceEntry as vi, secretSafeKeyDisplay as vn, shareLogOnlyValues as vo, reDisableInstanceApiTermination as vr, AssetModeResolver as vs, dropFailedHint as vt, PROTECTION_PROPERTY_BY_TYPE as w, hasNoCloudControlHandlers as wa, processStackMessages as wc, malformedLocalResourcesWarning as wi, collectDeclaredOutputNames as wn, redactSecretsForState as wo, classifyReplaySecretRegion as wr, parseBootstrapMarker as ws, replayFailedOperations as wt, noEchoParameterNamesOf as x, unwrittenCreateOnlyReplacement as xa, derivePartitionAndUrlSuffix as xc, malformedExportSourceWarning as xi, exportNameSecretExposure as xn, maskSecretsInError as xo, INTRINSIC_KEYS as xr, ensureAssetStorage as xs, loadJournaledOrphans as xt, noEchoAttributeNamesOf as y, findActionableSilentDrops as ya, PARTITION_TABLE as yc, malformedDriftResourcePropertiesWarning as yi, carriedExportAliasExposure as yn, createSecretMasker as yo, reEnableInstanceApiTermination as yr, BOOTSTRAP_MARKER_PREFIX as ys, isHandledOrphan as yt, ECR_AUTO_DELETE_IMAGES_TAG as z, configIntegerRefusal as za, refuseDivergentRecordRegionForDestroy as zi, acquireIdempotencyToken as zn, recordProvenPublicExpression as zo, s3BucketDomainName as zr, isMalformedEnvKey as zs, resolveReplacementOldType as zt };
|
|
40437
|
+
//# sourceMappingURL=deploy-engine-CFgNpsEy.js.map
|