@go-to-k/cdkd 0.296.4 → 0.296.6
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-BSdCtfW_.js → asg-provider-C1TlpooI.js} +4 -4
- package/dist/{asg-provider-BSdCtfW_.js.map → asg-provider-C1TlpooI.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-HCnNEpdp.js → deploy-engine-BPcBCyUE.js} +315 -140
- package/dist/deploy-engine-BPcBCyUE.js.map +1 -0
- package/dist/{iam-policy-targets-DSDSdxXz.js → iam-policy-targets-td1X_kKN.js} +2 -2
- package/dist/{iam-policy-targets-DSDSdxXz.js.map → iam-policy-targets-td1X_kKN.js.map} +1 -1
- package/dist/{iam-role-provider-Be0s-qBx.js → iam-role-provider-CVIClaZV.js} +4 -4
- package/dist/{iam-role-provider-Be0s-qBx.js.map → iam-role-provider-CVIClaZV.js.map} +1 -1
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -4
- package/dist/{logger-Dvc7ddKe.js → logger-DAaB7GFO.js} +2 -2
- package/dist/{logger-Dvc7ddKe.js.map → logger-DAaB7GFO.js.map} +1 -1
- package/dist/{neptune-provider-ChV-yRZP.js → neptune-provider-CvY6ekmg.js} +4 -4
- package/dist/{neptune-provider-ChV-yRZP.js.map → neptune-provider-CvY6ekmg.js.map} +1 -1
- package/dist/{program-CwSdIG3b.js → program-CAlg2KEF.js} +28 -23
- package/dist/program-CAlg2KEF.js.map +1 -0
- package/dist/{provider-classes-DXBYMcmp.js → provider-classes-oRTqcSCp.js} +287 -17
- package/dist/provider-classes-oRTqcSCp.js.map +1 -0
- package/dist/{rds-provider-DzPUon_U.js → rds-provider-DeGFzOUc.js} +4 -4
- package/dist/{rds-provider-DzPUon_U.js.map → rds-provider-DeGFzOUc.js.map} +1 -1
- package/dist/{version-D557_3cB.js → version-BgqcIKdb.js} +2 -2
- package/dist/{version-D557_3cB.js.map → version-BgqcIKdb.js.map} +1 -1
- package/package.json +1 -1
- package/dist/deploy-engine-HCnNEpdp.js.map +0 -1
- package/dist/program-CwSdIG3b.js.map +0 -1
- package/dist/provider-classes-DXBYMcmp.js.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { r as getAwsClients, s as __exportAll } from "./aws-clients-CnmtbrxD.js";
|
|
2
|
-
import { A as
|
|
3
|
-
import { $n as markRedactedCause, $t as LockError, A as isTerminalDeleteFailure, At as CUSTOM_RESOURCE_RESPONSE_PREFIX, Bn as isAmbiguousCcHandlerErrorCode, Bt as clientDefaultsFor, C as refusalTypeShown, Cn as physicalIdShownBesideCommand, Ct as buildForceUnlockCommand, D as ProtectionFlipRegistry, Dn as shellQuote, Dt as formatLockOperation, En as shellBoundedDisplay, Et as formatLockExpiry, Fn as isRecreateRetryableError, Ft as producerRecordKey, Gn as retryClassificationText, H as pasteableAwsCommand, Hn as isIamPropagationError, Ht as AccountIdUnavailableError, In as isReplayedNameCollisionFrom, J as isInterruptedWaitError, Jn as safeStringify$1, Kn as describeAwsFailure, Kt as CrossAccountSecretRefusalError, Lt as withPasteableAwsProfile, M as observeThenDisableProtection, Mn as hasReplayMayCollide, Mt as injectiveKey, N as protectionFlipKey, Nn as isNameCollisionErrorFrom, O as compensateProtectionFlip, On as withheldTargetClause, Ot as formatLockOwner, Pn as isNameCooldownError, Q as canonicalizeRoute53QueryName, Qn as markNonRetryable, R as DELETION_PROTECTION_DOC_POINTER, Rn as markReplayMayCollide, Rt as ambientClientDefaults, S as quotedRemedyLogicalId, Sn as pasteableCommand, St as UNREPRODUCIBLE_LOCK_CLAUSE, T as resolveExplicitPhysicalId, Tn as quotedOrDescribed, U as protectedReplacementAdvice, Un as isRetryableTransientError, Ut as AssetError, Vn as isAmbiguousOutcomeError, Vt as credentialFingerprint, Wn as isTransientServerError, Wt as CdkdError, X as ElapsedBudgetRegistry, Xn as isMarkedNonRetryable, Xt as IntrinsicResolutionRefusalError, Y as startInterruptWatch, Yt as DynamicReferenceRegionAmbiguousError, Z as monotonicNowMs, Zn as isThrottlingError, _n as SHELL_ACTIVE_WHY, _t as hasCreatedBeforeFailure, an as ResourceTimeoutError, at as segmentAfterAnchor, b as isQuotableImportValue, bt as markAuxiliaryFailure, ct as createMaskedRetryLogger, d as prepareRemovalForUpdate, dt as maskerOrIdentity, en as MacroExpansionError, er as wrapMaskedAwsError, et as compositeIdSeparatorRefusal, f as removalWarning, ft as withDerivedNameMasks, g as assertRegionMatch, gn as SHELL_ACTIVE, gt as createdBeforeFailure, h as RESOURCE_NOT_FOUND, i as holdsSecretDerivedEntry, in as ProvisioningError, it as resourceTypeShown, jn as isUpdateUnsupportedError, jt as DEFAULT_STATE_PREFIX, k as deleteWithProtectionCompensation, kt as sanitizeRecoveryValue, l as withUnchangedSecretPrincipalLists, ln as StateError, lt as isSecretDerivedValue, m as withoutInjectedRemovals, mt as carryCreatedBeforeFailure, nt as logicalIdShown, on as ResourceUpdateNotSupportedError, ot as stateOrphanRecordRemedy, pn as normalizeAwsError, pt as RETRY_AUXILIARY_OWNER, qt as DependencyError, st as createMaskedLogSinks, tn as MalformedProducerRecordRefusalError, un as SynthesisError, ut as maskDeep, vn as UNSHOWABLE_VALUE, vt as isAuxiliaryFailure, wn as plainOrDescribed, x as normalizeAwsTagsToCfn, xn as isInertUnquoted, xt as markCreatedBeforeFailure, yn as commandHole, yt as isAuxiliaryMarkOf, zn as formatRetryClassificationSignals, zt as ambientCredentialConfig } from "./iam-policy-targets-
|
|
2
|
+
import { A as displayIdent, C as withoutGeneratedFallbackName, D as UNRENDERABLE, E as STACK_REF_MAX_CODE_POINTS, F as plainIdentOr, I as safeMsg, M as displayStackName, N as isPasteableIdent, R as truncateCodePoints, S as withStackName, T as SECRET_REF_MAX_CODE_POINTS, _ as generateResourceNameWithFallback, b as looksLikeCdkdGeneratedName, c as installLogLineMaskerSource, g as generateResourceName, h as explicitNamePropertyFor, j as displaySafe, k as displayAwsMessage, l as getLiveRenderer, n as getLogger, p as applyDefaultNameForFallback, r as isStdoutReservedForPayload, s as currentLogLineMasker, v as getCurrentSkipPrefix, x as withSkipPrefix, y as getCurrentStackName } from "./logger-DAaB7GFO.js";
|
|
3
|
+
import { $n as markRedactedCause, $t as LockError, A as isTerminalDeleteFailure, At as CUSTOM_RESOURCE_RESPONSE_PREFIX, Bn as isAmbiguousCcHandlerErrorCode, Bt as clientDefaultsFor, C as refusalTypeShown, Cn as physicalIdShownBesideCommand, Ct as buildForceUnlockCommand, D as ProtectionFlipRegistry, Dn as shellQuote, Dt as formatLockOperation, En as shellBoundedDisplay, Et as formatLockExpiry, Fn as isRecreateRetryableError, Ft as producerRecordKey, Gn as retryClassificationText, H as pasteableAwsCommand, Hn as isIamPropagationError, Ht as AccountIdUnavailableError, In as isReplayedNameCollisionFrom, J as isInterruptedWaitError, Jn as safeStringify$1, Kn as describeAwsFailure, Kt as CrossAccountSecretRefusalError, Lt as withPasteableAwsProfile, M as observeThenDisableProtection, Mn as hasReplayMayCollide, Mt as injectiveKey, N as protectionFlipKey, Nn as isNameCollisionErrorFrom, O as compensateProtectionFlip, On as withheldTargetClause, Ot as formatLockOwner, Pn as isNameCooldownError, Q as canonicalizeRoute53QueryName, Qn as markNonRetryable, R as DELETION_PROTECTION_DOC_POINTER, Rn as markReplayMayCollide, Rt as ambientClientDefaults, S as quotedRemedyLogicalId, Sn as pasteableCommand, St as UNREPRODUCIBLE_LOCK_CLAUSE, T as resolveExplicitPhysicalId, Tn as quotedOrDescribed, U as protectedReplacementAdvice, Un as isRetryableTransientError, Ut as AssetError, Vn as isAmbiguousOutcomeError, Vt as credentialFingerprint, Wn as isTransientServerError, Wt as CdkdError, X as ElapsedBudgetRegistry, Xn as isMarkedNonRetryable, Xt as IntrinsicResolutionRefusalError, Y as startInterruptWatch, Yt as DynamicReferenceRegionAmbiguousError, Z as monotonicNowMs, Zn as isThrottlingError, _n as SHELL_ACTIVE_WHY, _t as hasCreatedBeforeFailure, an as ResourceTimeoutError, at as segmentAfterAnchor, b as isQuotableImportValue, bt as markAuxiliaryFailure, ct as createMaskedRetryLogger, d as prepareRemovalForUpdate, dt as maskerOrIdentity, en as MacroExpansionError, er as wrapMaskedAwsError, et as compositeIdSeparatorRefusal, f as removalWarning, ft as withDerivedNameMasks, g as assertRegionMatch, gn as SHELL_ACTIVE, gt as createdBeforeFailure, h as RESOURCE_NOT_FOUND, i as holdsSecretDerivedEntry, in as ProvisioningError, it as resourceTypeShown, jn as isUpdateUnsupportedError, jt as DEFAULT_STATE_PREFIX, k as deleteWithProtectionCompensation, kt as sanitizeRecoveryValue, l as withUnchangedSecretPrincipalLists, ln as StateError, lt as isSecretDerivedValue, m as withoutInjectedRemovals, mt as carryCreatedBeforeFailure, nt as logicalIdShown, on as ResourceUpdateNotSupportedError, ot as stateOrphanRecordRemedy, pn as normalizeAwsError, pt as RETRY_AUXILIARY_OWNER, qt as DependencyError, st as createMaskedLogSinks, tn as MalformedProducerRecordRefusalError, un as SynthesisError, ut as maskDeep, vn as UNSHOWABLE_VALUE, vt as isAuxiliaryFailure, wn as plainOrDescribed, x as normalizeAwsTagsToCfn, xn as isInertUnquoted, xt as markCreatedBeforeFailure, yn as commandHole, yt as isAuxiliaryMarkOf, zn as formatRetryClassificationSignals, zt as ambientCredentialConfig } from "./iam-policy-targets-td1X_kKN.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-BgqcIKdb.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";
|
|
@@ -15777,6 +15777,15 @@ function hasStringPhysicalId(entry) {
|
|
|
15777
15777
|
const physicalId = entry.physicalId;
|
|
15778
15778
|
return typeof physicalId === "string" && physicalId !== "";
|
|
15779
15779
|
}
|
|
15780
|
+
function hasAddressablePhysicalId(entry) {
|
|
15781
|
+
const physicalId = entry.physicalId;
|
|
15782
|
+
return typeof physicalId === "string" && physicalId.trim() !== "";
|
|
15783
|
+
}
|
|
15784
|
+
function unaddressableUpdateRefusalMessage(rawStackName, rawRegion, logicalId, resourceType) {
|
|
15785
|
+
const stackName = absentIfEmpty(rawStackName);
|
|
15786
|
+
const region = absentIfEmpty(rawRegion);
|
|
15787
|
+
return `${stackClause(stackName, region)} holds a record for ${displayIdent(logicalId)} (${displayIdent(resourceType)}) with no non-empty string 'physicalId', so cdkd cannot address that resource in AWS and did not try to update it. 'cdkd deploy' fails on it rather than skipping it, since a skipped update would end the deploy without the template's change. Nothing was sent for this resource. Repair the record's 'physicalId' and re-run. ${inspectClause(stackName, region)}Inspect the record with: ` + inspectCommand(stackName, region);
|
|
15788
|
+
}
|
|
15780
15789
|
function unpreviewableOrphanRecords(state) {
|
|
15781
15790
|
if (!Array.isArray(state.orphans)) return [];
|
|
15782
15791
|
const rows = state.orphans;
|
|
@@ -21291,6 +21300,11 @@ function deleteSkipReason(result) {
|
|
|
21291
21300
|
const trimmed = result.reason.trim();
|
|
21292
21301
|
return trimmed === "" ? UNSPECIFIED_SKIP_REASON : trimmed;
|
|
21293
21302
|
}
|
|
21303
|
+
function deleteLeftInPlace(result) {
|
|
21304
|
+
if (result === void 0 || result.outcome !== "deleted") return void 0;
|
|
21305
|
+
const left = result.leftInPlace;
|
|
21306
|
+
return typeof left === "string" && left.length > 0 ? left : void 0;
|
|
21307
|
+
}
|
|
21294
21308
|
const UNSPECIFIED_SKIP_REASON = "no reason reported by the provider";
|
|
21295
21309
|
function deleteSkippedMessage(logicalId, physicalId, reason, duringClause, opts) {
|
|
21296
21310
|
return `cdkd did not confirm ${plainOrDescribed(logicalId, "logical id")} (${opts?.commandFreeLine === true ? displayIdent(physicalId, { maxCodePoints: 613 }) : skipPhysicalIdShown(physicalId)}) was deleted ${duringClause}, so it may still exist: ${skipReasonShown(reason)}`;
|
|
@@ -22036,7 +22050,7 @@ var CloudControlProvider = class {
|
|
|
22036
22050
|
const indeterminateGuard = await this.confirmDeleteTargetIdentity(logicalId, resourceType, physicalId, context);
|
|
22037
22051
|
if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
|
|
22038
22052
|
this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
|
|
22039
|
-
const { ASGProvider } = await import("./asg-provider-
|
|
22053
|
+
const { ASGProvider } = await import("./asg-provider-C1TlpooI.js");
|
|
22040
22054
|
const delegateRegion = ambientRegion();
|
|
22041
22055
|
let asgProvider = this.asgDeleteDelegates.get(delegateRegion);
|
|
22042
22056
|
if (asgProvider === void 0) {
|
|
@@ -22142,7 +22156,7 @@ var CloudControlProvider = class {
|
|
|
22142
22156
|
const family = SDK_DELETE_FAMILIES.get(resourceType);
|
|
22143
22157
|
const cached = this.sdkDeleteDelegates.get(family);
|
|
22144
22158
|
if (cached !== void 0 && cached.region === ccRegion) return cached.provider;
|
|
22145
|
-
const provider = family === "rds" ? new (await (import("./rds-provider-
|
|
22159
|
+
const provider = family === "rds" ? new (await (import("./rds-provider-DeGFzOUc.js"))).RDSProvider({ region: ccRegion }) : new (await (import("./neptune-provider-CvY6ekmg.js"))).NeptuneProvider({ region: ccRegion });
|
|
22146
22160
|
this.sdkDeleteDelegates.set(family, {
|
|
22147
22161
|
region: ccRegion,
|
|
22148
22162
|
provider
|
|
@@ -23322,6 +23336,9 @@ function describeCfnResponseBody(body, parsed) {
|
|
|
23322
23336
|
const line = `Status=${capForLog(status)} PhysicalResourceId=${capForLog(physicalId)} ${dataPart}`;
|
|
23323
23337
|
return line.length > DESCRIBE_MAX_LINE_CHARS ? `${line.slice(0, DESCRIBE_MAX_LINE_CHARS)}...(${line.length} chars total)` : line;
|
|
23324
23338
|
}
|
|
23339
|
+
function respondedPhysicalId(response) {
|
|
23340
|
+
return hasAddressablePhysicalId({ physicalId: response.PhysicalResourceId }) ? response.PhysicalResourceId : void 0;
|
|
23341
|
+
}
|
|
23325
23342
|
var CustomResourceProvider = class CustomResourceProvider {
|
|
23326
23343
|
lambdaClient;
|
|
23327
23344
|
snsClient;
|
|
@@ -23428,7 +23445,7 @@ var CustomResourceProvider = class CustomResourceProvider {
|
|
|
23428
23445
|
ResourceProperties: this.stringifyProperties(properties)
|
|
23429
23446
|
}), maskerOrIdentity(context?.maskSecrets));
|
|
23430
23447
|
if (cfnResponse.Status === "FAILED") throw new Error(`Custom resource handler returned FAILED: ${cfnResponse.Reason || "Unknown reason"}`);
|
|
23431
|
-
const physicalId = cfnResponse
|
|
23448
|
+
const physicalId = respondedPhysicalId(cfnResponse) ?? logicalId;
|
|
23432
23449
|
const attributes = cfnResponse.Data || {};
|
|
23433
23450
|
this.logger.debug(`Successfully created custom resource ${logicalId}: ${physicalId}`);
|
|
23434
23451
|
return {
|
|
@@ -23461,7 +23478,7 @@ var CustomResourceProvider = class CustomResourceProvider {
|
|
|
23461
23478
|
OldResourceProperties: this.stringifyProperties(previousProperties)
|
|
23462
23479
|
}), maskerOrIdentity(context?.maskSecrets));
|
|
23463
23480
|
if (cfnResponse.Status === "FAILED") throw new Error(`Custom resource handler returned FAILED: ${cfnResponse.Reason || "Unknown reason"}`);
|
|
23464
|
-
const newPhysicalId = cfnResponse
|
|
23481
|
+
const newPhysicalId = respondedPhysicalId(cfnResponse) ?? physicalId;
|
|
23465
23482
|
const wasReplaced = newPhysicalId !== physicalId;
|
|
23466
23483
|
const attributes = cfnResponse.Data || {};
|
|
23467
23484
|
this.logger.debug(`Successfully updated custom resource ${logicalId}: ${newPhysicalId}${wasReplaced ? " (replaced)" : ""}`);
|
|
@@ -27429,44 +27446,6 @@ var DeploymentEventsReader = class {
|
|
|
27429
27446
|
}
|
|
27430
27447
|
};
|
|
27431
27448
|
|
|
27432
|
-
//#endregion
|
|
27433
|
-
//#region src/deployment/update-outcome.ts
|
|
27434
|
-
function updatePartialReason(result) {
|
|
27435
|
-
if (!result || result.outcome !== "partial") return void 0;
|
|
27436
|
-
if (typeof result.reason !== "string") return UNSPECIFIED_PARTIAL_REASON;
|
|
27437
|
-
const trimmed = result.reason.trim();
|
|
27438
|
-
return trimmed === "" ? UNSPECIFIED_PARTIAL_REASON : trimmed;
|
|
27439
|
-
}
|
|
27440
|
-
const UNSPECIFIED_PARTIAL_REASON = "provider reported a partial update without a reason";
|
|
27441
|
-
function updatePartialMessage(reason) {
|
|
27442
|
-
return `partial (${reason})`;
|
|
27443
|
-
}
|
|
27444
|
-
|
|
27445
|
-
//#endregion
|
|
27446
|
-
//#region src/provisioning/redacted-delete-address.ts
|
|
27447
|
-
function isRedactedRecordedValue(value) {
|
|
27448
|
-
if (carriesSecretMask(value)) return true;
|
|
27449
|
-
let text;
|
|
27450
|
-
try {
|
|
27451
|
-
text = typeof value === "string" ? value : JSON.stringify(value);
|
|
27452
|
-
} catch {
|
|
27453
|
-
return false;
|
|
27454
|
-
}
|
|
27455
|
-
return text !== void 0 && dynamicReferenceTokens(text).length > 0;
|
|
27456
|
-
}
|
|
27457
|
-
const REDACTED_DELETE_ADDRESS_SKIP_REASON = "redacted address property in state — no delete issued";
|
|
27458
|
-
function redactedDeleteAddressFields(fields) {
|
|
27459
|
-
return Object.keys(fields).filter((key) => isRedactedRecordedValue(fields[key]));
|
|
27460
|
-
}
|
|
27461
|
-
function redactedDeleteAddressSkip(logger, logicalId, what, redactedFields, context) {
|
|
27462
|
-
if (redactedFields.length === 0) return void 0;
|
|
27463
|
-
logger.warn(safeMsg`${what} ${logicalId} is recorded in state with ${redactedFields.join(", ")} ` + "redacted (the '***' mask of a NoEcho value it read, or a secret '{{resolve:...}}' reference), which names nothing in AWS; skipping deletion — no AWS call is issued, so the resource is LEFT IN PLACE unless a parent resource this run also deletes removes it (then only the record is stale). Re-deploying records the same redaction again. The state record is KEPT and the run reports the skip: on 'cdkd destroy' / 'cdkd state destroy' (which exits non-zero) and, since issue 1762, on the plain DELETE of a resource removed from the template during cdkd deploy. Remove the resource by hand, " + safeMsg`then drop the record with ${stateOrphanRecordRemedy(context, logicalId)}. ` + "NOTE a deploy-side REPLACEMENT or rollback delete instead FAILS the resource (https://github.com/go-to-k/cdkd/issues/1762) — the old resource is left untracked there, so remove it by hand.");
|
|
27464
|
-
return {
|
|
27465
|
-
outcome: "skipped",
|
|
27466
|
-
reason: REDACTED_DELETE_ADDRESS_SKIP_REASON
|
|
27467
|
-
};
|
|
27468
|
-
}
|
|
27469
|
-
|
|
27470
27449
|
//#endregion
|
|
27471
27450
|
//#region src/provisioning/final-snapshot.ts
|
|
27472
27451
|
const ATOMIC_FINAL_SNAPSHOT_TYPES = /* @__PURE__ */ new Set([
|
|
@@ -28112,6 +28091,172 @@ async function prepareCreateRollbackFinalSnapshot(op, provisionedBy, ctx, mask)
|
|
|
28112
28091
|
}
|
|
28113
28092
|
}
|
|
28114
28093
|
|
|
28094
|
+
//#endregion
|
|
28095
|
+
//#region src/deployment/secret-name-needles.ts
|
|
28096
|
+
function secretNameNeedlesOf(logicalId, record, secrets, options) {
|
|
28097
|
+
const physicalId = typeof record?.physicalId === "string" && record.physicalId !== "" ? record.physicalId : void 0;
|
|
28098
|
+
const bag = secrets !== void 0 && hasMaskableValues(secrets) ? secrets : void 0;
|
|
28099
|
+
const mask = (text) => bag === void 0 ? text : maskSecretsInText(text, bag);
|
|
28100
|
+
const unresolved = (value) => value.includes("{{resolve:") || value === "***";
|
|
28101
|
+
const named = {
|
|
28102
|
+
resourceType: record?.resourceType,
|
|
28103
|
+
properties: record?.properties,
|
|
28104
|
+
logicalId
|
|
28105
|
+
};
|
|
28106
|
+
const needles = /* @__PURE__ */ new Set();
|
|
28107
|
+
const add = (needle) => {
|
|
28108
|
+
if (typeof needle === "string" && needle !== "") needles.add(needle);
|
|
28109
|
+
};
|
|
28110
|
+
for (const [raw, derived] of secretDerivedNamePairs({
|
|
28111
|
+
...named,
|
|
28112
|
+
physicalIds: []
|
|
28113
|
+
})) if (typeof raw === "string" && !unresolved(raw) && isSecretDerivedValue(raw, mask)) add(derived);
|
|
28114
|
+
for (const [raw, spelling] of secretDerivedNamePairs({
|
|
28115
|
+
...named,
|
|
28116
|
+
physicalIds: [physicalId ?? "cdkd-no-physical-id-yet"]
|
|
28117
|
+
})) {
|
|
28118
|
+
if (!isSecretDerivedValue(raw, mask)) continue;
|
|
28119
|
+
if (unresolved(raw)) {
|
|
28120
|
+
if (physicalId === void 0) continue;
|
|
28121
|
+
add(spelling);
|
|
28122
|
+
} else {
|
|
28123
|
+
add(raw);
|
|
28124
|
+
if (raw.toLowerCase() !== raw && raw.length >= 4) add(raw.toLowerCase());
|
|
28125
|
+
}
|
|
28126
|
+
}
|
|
28127
|
+
const properties = record?.properties;
|
|
28128
|
+
const path = properties !== null && typeof properties === "object" && Object.hasOwn(properties, "Path") ? properties["Path"] : void 0;
|
|
28129
|
+
if (physicalId !== void 0 && isSecretDerivedValue(path, mask)) add(physicalId);
|
|
28130
|
+
const embedded = options === void 0 ? secrets : options.embedded;
|
|
28131
|
+
const embeddedBag = embedded !== void 0 && hasMaskableValues(embedded) ? embedded : void 0;
|
|
28132
|
+
if (embeddedBag !== void 0 && physicalId !== void 0) {
|
|
28133
|
+
for (const needle of printingCorpusOf(embeddedBag).keys()) if (needle !== "" && (needle === physicalId || needle.length >= 4 && physicalId.includes(needle))) add(needle);
|
|
28134
|
+
}
|
|
28135
|
+
return needles.size > 0 ? needles : void 0;
|
|
28136
|
+
}
|
|
28137
|
+
function secretNamesReadBy(logicalId, record, resources, judge = () => ({
|
|
28138
|
+
secrets: void 0,
|
|
28139
|
+
embedded: void 0
|
|
28140
|
+
})) {
|
|
28141
|
+
const read = /* @__PURE__ */ new Set();
|
|
28142
|
+
const leaves = [...wholeStringLeavesOf(record?.properties)].filter((leaf) => leaf !== "");
|
|
28143
|
+
if (leaves.length === 0) return read;
|
|
28144
|
+
for (const [otherId, other] of Object.entries(resources)) {
|
|
28145
|
+
if (otherId === logicalId) continue;
|
|
28146
|
+
const bags = judge(otherId);
|
|
28147
|
+
const needles = secretNameNeedlesOf(otherId, other, bags.secrets, { embedded: bags.embedded });
|
|
28148
|
+
if (needles === void 0) continue;
|
|
28149
|
+
for (const needle of needles) if (leaves.some((leaf) => leaf === needle || needle.length >= 4 && leaf.includes(needle))) read.add(needle);
|
|
28150
|
+
}
|
|
28151
|
+
return read;
|
|
28152
|
+
}
|
|
28153
|
+
function stateSecretNameNeedles(resources, secrets) {
|
|
28154
|
+
return (logicalId) => secretNameNeedlesOf(logicalId, Object.hasOwn(resources, logicalId) ? resources[logicalId] : void 0, secrets, { embedded: void 0 });
|
|
28155
|
+
}
|
|
28156
|
+
function secretNamePrintingBag(logicalId, resources) {
|
|
28157
|
+
const bag = /* @__PURE__ */ new Map();
|
|
28158
|
+
const record = Object.hasOwn(resources, logicalId) ? resources[logicalId] : void 0;
|
|
28159
|
+
for (const needle of secretNameNeedlesOf(logicalId, record, void 0) ?? []) recordLogOnlyValue(bag, needle);
|
|
28160
|
+
for (const needle of secretNamesReadBy(logicalId, record, resources)) recordLogOnlyValue(bag, needle);
|
|
28161
|
+
return bag;
|
|
28162
|
+
}
|
|
28163
|
+
function journaledOrphanPrintingBag(ops, stateResources) {
|
|
28164
|
+
const bag = /* @__PURE__ */ new Map();
|
|
28165
|
+
for (const op of ops) {
|
|
28166
|
+
const record = {
|
|
28167
|
+
resourceType: op.resourceType,
|
|
28168
|
+
physicalId: op.physicalId,
|
|
28169
|
+
properties: op.attemptedProperties
|
|
28170
|
+
};
|
|
28171
|
+
const replaced = Object.hasOwn(stateResources, op.logicalId) ? stateResources[op.logicalId] : void 0;
|
|
28172
|
+
for (const needle of [
|
|
28173
|
+
...secretNameNeedlesOf(op.logicalId, record, void 0) ?? [],
|
|
28174
|
+
...secretNameNeedlesOf(op.logicalId, replaced, void 0) ?? [],
|
|
28175
|
+
...secretNamesReadBy(op.logicalId, record, stateResources)
|
|
28176
|
+
]) recordLogOnlyValue(bag, needle);
|
|
28177
|
+
}
|
|
28178
|
+
return bag;
|
|
28179
|
+
}
|
|
28180
|
+
function completedReplayEntries(ops) {
|
|
28181
|
+
return ops.flatMap((op) => [{
|
|
28182
|
+
logicalId: op.logicalId,
|
|
28183
|
+
resourceType: op.resourceType,
|
|
28184
|
+
physicalId: op.physicalId,
|
|
28185
|
+
properties: op.properties,
|
|
28186
|
+
attemptedProperties: op.properties
|
|
28187
|
+
}, ...op.previousState === void 0 ? [] : [{
|
|
28188
|
+
logicalId: op.logicalId,
|
|
28189
|
+
resourceType: op.previousState.resourceType,
|
|
28190
|
+
physicalId: op.previousState.physicalId,
|
|
28191
|
+
properties: op.previousState.properties,
|
|
28192
|
+
attemptedProperties: op.previousState.properties
|
|
28193
|
+
}]]);
|
|
28194
|
+
}
|
|
28195
|
+
function orphanRecordsPrintingBag(records) {
|
|
28196
|
+
const bag = /* @__PURE__ */ new Map();
|
|
28197
|
+
for (const entry of records) {
|
|
28198
|
+
if (entry === null || typeof entry !== "object") continue;
|
|
28199
|
+
const { logicalId, state } = entry;
|
|
28200
|
+
if (typeof logicalId !== "string" || state === null || typeof state !== "object") continue;
|
|
28201
|
+
for (const needle of secretNameNeedlesOf(logicalId, state, void 0) ?? []) recordLogOnlyValue(bag, needle);
|
|
28202
|
+
}
|
|
28203
|
+
return bag;
|
|
28204
|
+
}
|
|
28205
|
+
const ORPHAN_COMMAND_LABEL = "To orphan it: ";
|
|
28206
|
+
function maskEventTextWithBoundBags(event) {
|
|
28207
|
+
if (event.reason === void 0 && event.error === void 0) return event;
|
|
28208
|
+
const mask = currentLogLineMasker();
|
|
28209
|
+
if (mask === void 0) return event;
|
|
28210
|
+
const masked = { ...event };
|
|
28211
|
+
if (masked.error?.message) {
|
|
28212
|
+
const message = masked.error.ownLines === true ? masked.error.message.split("\n").map((line) => line.startsWith(ORPHAN_COMMAND_LABEL) ? line : mask(line)).join("\n") : mask(masked.error.message);
|
|
28213
|
+
masked.error = {
|
|
28214
|
+
...masked.error,
|
|
28215
|
+
message
|
|
28216
|
+
};
|
|
28217
|
+
}
|
|
28218
|
+
if (masked.reason) masked.reason = mask(masked.reason);
|
|
28219
|
+
return masked;
|
|
28220
|
+
}
|
|
28221
|
+
|
|
28222
|
+
//#endregion
|
|
28223
|
+
//#region src/deployment/update-outcome.ts
|
|
28224
|
+
function updatePartialReason(result) {
|
|
28225
|
+
if (!result || result.outcome !== "partial") return void 0;
|
|
28226
|
+
if (typeof result.reason !== "string") return UNSPECIFIED_PARTIAL_REASON;
|
|
28227
|
+
const trimmed = result.reason.trim();
|
|
28228
|
+
return trimmed === "" ? UNSPECIFIED_PARTIAL_REASON : trimmed;
|
|
28229
|
+
}
|
|
28230
|
+
const UNSPECIFIED_PARTIAL_REASON = "provider reported a partial update without a reason";
|
|
28231
|
+
function updatePartialMessage(reason) {
|
|
28232
|
+
return `partial (${reason})`;
|
|
28233
|
+
}
|
|
28234
|
+
|
|
28235
|
+
//#endregion
|
|
28236
|
+
//#region src/provisioning/redacted-delete-address.ts
|
|
28237
|
+
function isRedactedRecordedValue(value) {
|
|
28238
|
+
if (carriesSecretMask(value)) return true;
|
|
28239
|
+
let text;
|
|
28240
|
+
try {
|
|
28241
|
+
text = typeof value === "string" ? value : JSON.stringify(value);
|
|
28242
|
+
} catch {
|
|
28243
|
+
return false;
|
|
28244
|
+
}
|
|
28245
|
+
return text !== void 0 && dynamicReferenceTokens(text).length > 0;
|
|
28246
|
+
}
|
|
28247
|
+
const REDACTED_DELETE_ADDRESS_SKIP_REASON = "redacted address property in state — no delete issued";
|
|
28248
|
+
function redactedDeleteAddressFields(fields) {
|
|
28249
|
+
return Object.keys(fields).filter((key) => isRedactedRecordedValue(fields[key]));
|
|
28250
|
+
}
|
|
28251
|
+
function redactedDeleteAddressSkip(logger, logicalId, what, redactedFields, context) {
|
|
28252
|
+
if (redactedFields.length === 0) return void 0;
|
|
28253
|
+
logger.warn(safeMsg`${what} ${logicalId} is recorded in state with ${redactedFields.join(", ")} ` + "redacted (the '***' mask of a NoEcho value it read, or a secret '{{resolve:...}}' reference), which names nothing in AWS; skipping deletion — no AWS call is issued, so the resource is LEFT IN PLACE unless a parent resource this run also deletes removes it (then only the record is stale). Re-deploying records the same redaction again. The state record is KEPT and the run reports the skip: on 'cdkd destroy' / 'cdkd state destroy' (which exits non-zero) and, since issue 1762, on the plain DELETE of a resource removed from the template during cdkd deploy. Remove the resource by hand, " + safeMsg`then drop the record with ${stateOrphanRecordRemedy(context, logicalId)}. ` + "NOTE a deploy-side REPLACEMENT or rollback delete instead FAILS the resource (https://github.com/go-to-k/cdkd/issues/1762) — the old resource is left untracked there, so remove it by hand.");
|
|
28254
|
+
return {
|
|
28255
|
+
outcome: "skipped",
|
|
28256
|
+
reason: REDACTED_DELETE_ADDRESS_SKIP_REASON
|
|
28257
|
+
};
|
|
28258
|
+
}
|
|
28259
|
+
|
|
28115
28260
|
//#endregion
|
|
28116
28261
|
//#region src/deployment/rollback-executor/replay-inline-policy-restore.ts
|
|
28117
28262
|
async function restoreHeldInlinePolicies(writers, stateResources, stackName, ctx, result, options = {}) {
|
|
@@ -28244,7 +28389,8 @@ var ReplayResolvers = class {
|
|
|
28244
28389
|
};
|
|
28245
28390
|
function regionAmbiguousReplaySecretError(logicalId, propertyPath, secretName, foreignProducerRegions, consumerRegion, execCtx) {
|
|
28246
28391
|
const where = propertyPath === "" ? "" : ` property ${quotedPlainOr(propertyPath, "property path")}`;
|
|
28247
|
-
|
|
28392
|
+
const error = new CdkdError(`Rollback of ${shownLogicalId(logicalId)}${where} cannot re-resolve the secret reference ${quotedPlainOr(secretName, "secret name")}: the reference carries no region of its own, and this stack read across a region boundary (producer region(s) on record: ${foreignProducerRegions.map((r) => plainOrDescribed(r, "region")).join(", ")}), so it may have been resolved in one of those rather than in ${quotedOrDescribed(consumerRegion, "region")}. A secret of the same name in two regions is two independent values, so replaying this would write the WRONG secret to a live resource. Refusing instead. Resolve the reference in its own region and set the property directly (or spell it as a full ARN, which names its region and is resolved there), then re-run ${rerunRollbackPhrase(execCtx, "'cdkd rollback'")}.`, "ROLLBACK_SECRET_REGION_AMBIGUOUS");
|
|
28393
|
+
return markNonRetryable(error);
|
|
28248
28394
|
}
|
|
28249
28395
|
function refuseUnprovenReplaySecret(leaf, propertyPath, logicalId, execCtx) {
|
|
28250
28396
|
if (execCtx.producerRegionsIncomplete !== true) return;
|
|
@@ -29329,7 +29475,8 @@ async function replayFailedOperationsUnbound(failedOps, stateResources, stackNam
|
|
|
29329
29475
|
skipped: 0,
|
|
29330
29476
|
interrupted: false,
|
|
29331
29477
|
remainingFailedOps: [],
|
|
29332
|
-
orphaned: []
|
|
29478
|
+
orphaned: [],
|
|
29479
|
+
leftInPlace: 0
|
|
29333
29480
|
};
|
|
29334
29481
|
const { logger } = ctx;
|
|
29335
29482
|
const resolver = new ReplayResolvers(ctx.region);
|
|
@@ -29436,7 +29583,12 @@ async function replayFailedOperationsUnbound(failedOps, stateResources, stackNam
|
|
|
29436
29583
|
...finalSnapshotIdentifier !== void 0 && { finalSnapshotIdentifier },
|
|
29437
29584
|
...ctx.skipFinalSnapshot === true && { skipFinalSnapshot: true },
|
|
29438
29585
|
deletionPolicy: snapshotPolicy ? "Snapshot" : "Delete",
|
|
29439
|
-
recordedAttributes: failedCreateRecord?.attributes
|
|
29586
|
+
recordedAttributes: failedCreateRecord?.attributes,
|
|
29587
|
+
...op.physicalIdRecoveredFromError === true && {
|
|
29588
|
+
failedCreateOrphan: true,
|
|
29589
|
+
resolveAttemptedProperties: () => resolveReplayProps(op.attemptedProperties, resolver, secrets, ctx, op.logicalId),
|
|
29590
|
+
...ctx.writtenThisRun !== void 0 && { writtenThisRun: ctx.writtenThisRun }
|
|
29591
|
+
}
|
|
29440
29592
|
});
|
|
29441
29593
|
throwIfDeleteSkipped(failedCreateDelete, op.logicalId, op.physicalId, "while deleting the partially-created resource", {
|
|
29442
29594
|
ctx,
|
|
@@ -29445,6 +29597,12 @@ async function replayFailedOperationsUnbound(failedOps, stateResources, stackNam
|
|
|
29445
29597
|
provisionedBy: deleteRoutedVia,
|
|
29446
29598
|
mask
|
|
29447
29599
|
});
|
|
29600
|
+
const leftInPlace = deleteLeftInPlace(failedCreateDelete);
|
|
29601
|
+
if (leftInPlace !== void 0) {
|
|
29602
|
+
logger.warn(safeMsg` Rollback: deleted partially-created ${shownLogicalId(op.logicalId)} (${refusalResourceType(op.resourceType)}) only in part — ${leftInPlace}; manual attention may be required`);
|
|
29603
|
+
result.warnings++;
|
|
29604
|
+
result.leftInPlace++;
|
|
29605
|
+
}
|
|
29448
29606
|
if (!isReplacementOrphan(op)) delete stateResources[op.logicalId];
|
|
29449
29607
|
await options.afterOp?.(op.logicalId);
|
|
29450
29608
|
ctx.recordEvent?.({
|
|
@@ -29831,7 +29989,7 @@ async function revertNestedChildFromJournal(args) {
|
|
|
29831
29989
|
providerRegistry: ctx.providerRegistry,
|
|
29832
29990
|
region,
|
|
29833
29991
|
logger,
|
|
29834
|
-
...ctx.options?.eventRecorder && { recordEvent: (event) => ctx.options.eventRecorder.record(event) },
|
|
29992
|
+
...ctx.options?.eventRecorder && { recordEvent: (event) => ctx.options.eventRecorder.record(maskEventTextWithBoundBags(event)) },
|
|
29835
29993
|
finalSnapshotClients: ctx.options?.finalSnapshotClients,
|
|
29836
29994
|
skipFinalSnapshot: ctx.options?.skipFinalSnapshot === true || ctx.destroyOptions?.skipFinalSnapshot === true,
|
|
29837
29995
|
importedProducerRegions: producerRegions.regions,
|
|
@@ -29853,11 +30011,11 @@ async function revertNestedChildFromJournal(args) {
|
|
|
29853
30011
|
const skipPrefix = segment.skipPrefix ?? getCurrentSkipPrefix();
|
|
29854
30012
|
const split = splitImportedOps(segment.operations, segment);
|
|
29855
30013
|
const result = await withNestedStackContext(childCtx, () => withSkipPrefix(skipPrefix, () => withStackName(childStackName, () => withCreateTokenLedger(ledgerForStack(ctx.stateBackend, childStackName, region), () => withNestedRevertRun(runId, async (inner) => {
|
|
29856
|
-
const replayed = await replayRollback(split.replay, stateResources, childStackName, execCtx, {
|
|
30014
|
+
const replayed = await withPrintingSecrets(journaledOrphanPrintingBag(completedReplayEntries(split.replay), stateResources), () => replayRollback(split.replay, stateResources, childStackName, execCtx, {
|
|
29857
30015
|
afterOp: save,
|
|
29858
30016
|
onOrphan: (record) => mintedOrphans.push(record),
|
|
29859
30017
|
inlinePolicyWriters
|
|
29860
|
-
});
|
|
30018
|
+
}));
|
|
29861
30019
|
for (const [id, below] of inner.settled) settledBelow.set(id, below);
|
|
29862
30020
|
return {
|
|
29863
30021
|
...replayed,
|
|
@@ -30083,24 +30241,32 @@ async function deleteJournaledOrphans(orphans, stateResources, stackName, ctx, o
|
|
|
30083
30241
|
failures: 0,
|
|
30084
30242
|
warnings: 0,
|
|
30085
30243
|
interrupted: false,
|
|
30086
|
-
handled: []
|
|
30244
|
+
handled: [],
|
|
30245
|
+
leftInPlace: 0
|
|
30087
30246
|
};
|
|
30088
30247
|
const inlinePolicyWriters = new RollbackInlinePolicyWriters();
|
|
30248
|
+
const record = ctx.recordEvent;
|
|
30249
|
+
const printing = journaledOrphanPrintingBag(orphans.segments.flatMap(({ ops, companions }) => [...companions ?? [], ...ops]), stateResources);
|
|
30250
|
+
const maskedCtx = record === void 0 ? ctx : {
|
|
30251
|
+
...ctx,
|
|
30252
|
+
recordEvent: (event) => record(maskEventTextWithBoundBags(event))
|
|
30253
|
+
};
|
|
30089
30254
|
for (const { segment, ops: orphanOps, companions } of orphans.segments) {
|
|
30090
30255
|
if (options.isInterrupted?.()) {
|
|
30091
30256
|
total.interrupted = true;
|
|
30092
30257
|
break;
|
|
30093
30258
|
}
|
|
30094
30259
|
const ops = [...companions ?? [], ...orphanOps];
|
|
30095
|
-
const replay = () => withStackName(stackName, () => replayFailedOperations(ops, stateResources, stackName,
|
|
30260
|
+
const replay = () => withPrintingSecrets(printing, () => withStackName(stackName, () => replayFailedOperations(ops, stateResources, stackName, maskedCtx, {
|
|
30096
30261
|
emitEnvelope: false,
|
|
30097
30262
|
inlinePolicyWriters,
|
|
30098
30263
|
forDestroy: true,
|
|
30099
30264
|
...options.isInterrupted && { isInterrupted: options.isInterrupted }
|
|
30100
|
-
}));
|
|
30265
|
+
})));
|
|
30101
30266
|
const result = segment.skipPrefix === void 0 ? await replay() : await withSkipPrefix(segment.skipPrefix, replay);
|
|
30102
30267
|
total.failures += result.failures;
|
|
30103
30268
|
total.warnings += result.warnings;
|
|
30269
|
+
total.leftInPlace += result.leftInPlace;
|
|
30104
30270
|
const pending = new Set(result.remainingFailedOps);
|
|
30105
30271
|
for (const op of ops) if (!pending.has(op)) total.handled.push({
|
|
30106
30272
|
segment,
|
|
@@ -30141,19 +30307,26 @@ async function settleJournaledOrphansOnSuccess(args) {
|
|
|
30141
30307
|
op
|
|
30142
30308
|
})));
|
|
30143
30309
|
let kept = all;
|
|
30310
|
+
let leftInPlace = 0;
|
|
30144
30311
|
if (stateResources === void 0) logger.warn(safeMsg`The rollback journal of stack ${stack} records ${all.length} resource(s) a failed deploy ` + `created, but the stack's state cannot be read, so whether a record now owns them is unknown: none is deleted.`);
|
|
30145
30312
|
else {
|
|
30146
30313
|
logger.info(safeMsg`The rollback journal of stack ${stack} records ${all.length} resource(s) a failed deploy ` + `created that no state record holds; acting on them per their DeletionPolicy before the journal is removed:`);
|
|
30147
30314
|
for (const line of journaledOrphanLines(orphans, logger)) logger.info(line);
|
|
30148
30315
|
try {
|
|
30149
30316
|
const { unreadable, tracked } = await applySuccessRule(orphans, stateResources, orphans.deployLogicalIds ?? /* @__PURE__ */ new Set(), args.foreignHolder, stack, logger, args.isInterrupted);
|
|
30150
|
-
const
|
|
30317
|
+
const acting = {
|
|
30151
30318
|
segments: orphans.segments.map(({ segment, ops }) => ({
|
|
30152
30319
|
segment,
|
|
30153
30320
|
ops: ops.filter((op) => !unreadable.has(op) && !tracked.has(op))
|
|
30154
30321
|
})).filter(({ ops }) => ops.length > 0),
|
|
30155
30322
|
count: orphans.count - unreadable.size - tracked.size
|
|
30156
|
-
}
|
|
30323
|
+
};
|
|
30324
|
+
const writtenThisRun = [...orphans.deployLogicalIds ?? []].filter((id) => Object.prototype.hasOwnProperty.call(stateResources, id)).map((id) => stateResources[id]).filter((r) => r !== void 0 && r !== null && typeof r === "object");
|
|
30325
|
+
const outcome = await deleteJournaledOrphans(acting, { ...stateResources }, stackName, {
|
|
30326
|
+
...ctx,
|
|
30327
|
+
writtenThisRun
|
|
30328
|
+
}, args.isInterrupted ? { isInterrupted: args.isInterrupted } : {});
|
|
30329
|
+
leftInPlace = outcome.leftInPlace;
|
|
30157
30330
|
kept = all.filter(({ segment, op }) => unreadable.has(op) || !tracked.has(op) && !isHandledOrphan(outcome.handled, segment, op));
|
|
30158
30331
|
} catch (err) {
|
|
30159
30332
|
logger.warn(safeMsg`Acting on the journaled resources of stack ${stack} failed: ${errorDetail(err)}`);
|
|
@@ -30174,7 +30347,7 @@ async function settleJournaledOrphansOnSuccess(args) {
|
|
|
30174
30347
|
}
|
|
30175
30348
|
};
|
|
30176
30349
|
if (kept.length === 0) return {
|
|
30177
|
-
unaddressed: skipped,
|
|
30350
|
+
unaddressed: skipped + leftInPlace,
|
|
30178
30351
|
keepJournal: false,
|
|
30179
30352
|
...stripCleared && { stripCleared }
|
|
30180
30353
|
};
|
|
@@ -30195,7 +30368,7 @@ async function settleJournaledOrphansOnSuccess(args) {
|
|
|
30195
30368
|
}
|
|
30196
30369
|
logger.warn(safeMsg`${kept.length} resource(s) a failed deploy of stack ${stack} created were not deleted ` + (reduced ? "(see above). The rollback journal, their only record, is kept with just them; the next " : "(see above). The rollback journal, their only record, is kept; the next ") + "successful deploy retries.");
|
|
30197
30370
|
return {
|
|
30198
|
-
unaddressed: kept.length + skipped,
|
|
30371
|
+
unaddressed: kept.length + skipped + leftInPlace,
|
|
30199
30372
|
keepJournal: true
|
|
30200
30373
|
};
|
|
30201
30374
|
}
|
|
@@ -30349,7 +30522,8 @@ function redactOperationsForJournal(operations) {
|
|
|
30349
30522
|
}
|
|
30350
30523
|
async function adoptRollbackOrphans(currentState, effectiveTemplate) {
|
|
30351
30524
|
const records = currentState.orphans ?? [];
|
|
30352
|
-
const
|
|
30525
|
+
const named = orphanRecordsPrintingBag(records);
|
|
30526
|
+
const plan = await withPrintingSecrets(named, () => planOrphanAdoption({
|
|
30353
30527
|
records,
|
|
30354
30528
|
managedLogicalIds: new Set(Object.keys(currentState.resources)),
|
|
30355
30529
|
template: effectiveTemplate,
|
|
@@ -30370,16 +30544,40 @@ async function adoptRollbackOrphans(currentState, effectiveTemplate) {
|
|
|
30370
30544
|
logger: this.logger
|
|
30371
30545
|
}),
|
|
30372
30546
|
logger: { debug: (m) => this.logger.debug(m) }
|
|
30373
|
-
});
|
|
30374
|
-
for (const notice of plan.notices) this.logger.info(notice);
|
|
30375
|
-
if (plan.refusals.length > 0) throw new Error(`Deploy refused — cdkd left ${plan.refusals.length} resource(s) in AWS that it cannot safely re-adopt:\n ${plan.refusals.join("\n ")}`);
|
|
30547
|
+
}));
|
|
30548
|
+
for (const notice of plan.notices) this.logger.info(maskSecretsInText(notice, named));
|
|
30549
|
+
if (plan.refusals.length > 0) throw new Error(`Deploy refused — cdkd left ${plan.refusals.length} resource(s) in AWS that it cannot safely re-adopt:\n ${plan.refusals.map((r) => maskSecretsInText(r, named)).join("\n ")}`);
|
|
30376
30550
|
for (const [logicalId, record] of Object.entries(plan.adopted)) {
|
|
30377
30551
|
currentState.resources[logicalId] = record;
|
|
30378
|
-
this.logger.info(`Adopting ${displayIdent(logicalId)} (${displayIdent(record.resourceType)}) left in AWS by an earlier rollback as ${displaySafe(record.physicalId)}`);
|
|
30552
|
+
this.logger.info(`Adopting ${displayIdent(logicalId)} (${displayIdent(record.resourceType)}) left in AWS by an earlier rollback as ${displaySafe(maskSecretsInText(record.physicalId, named))}`);
|
|
30379
30553
|
}
|
|
30380
30554
|
if (records.length > 0) currentState.orphans = plan.remaining;
|
|
30381
30555
|
return plan;
|
|
30382
30556
|
}
|
|
30557
|
+
function replayPrintingBag(engine, entries, stateResources) {
|
|
30558
|
+
const read = /* @__PURE__ */ new Map();
|
|
30559
|
+
for (const entry of entries) {
|
|
30560
|
+
const names = secretNamesReadBy(entry.logicalId, { properties: entry.properties }, stateResources, (otherId) => ({
|
|
30561
|
+
secrets: engine.namingSecretsFor(otherId),
|
|
30562
|
+
embedded: engine.perResourceSecrets.get(otherId)
|
|
30563
|
+
}));
|
|
30564
|
+
for (const needle of names) recordLogOnlyValue(read, needle);
|
|
30565
|
+
}
|
|
30566
|
+
const own = /* @__PURE__ */ new Map();
|
|
30567
|
+
for (const entry of entries) {
|
|
30568
|
+
const needles = secretNameNeedlesOf(entry.logicalId, {
|
|
30569
|
+
resourceType: entry.resourceType,
|
|
30570
|
+
physicalId: entry.physicalId,
|
|
30571
|
+
properties: entry.properties
|
|
30572
|
+
}, engine.namingSecretsFor(entry.logicalId), { embedded: engine.perResourceSecrets.get(entry.logicalId) });
|
|
30573
|
+
for (const needle of needles ?? []) recordLogOnlyValue(own, needle);
|
|
30574
|
+
}
|
|
30575
|
+
return unionOfSecretBags([
|
|
30576
|
+
...entries.map((entry) => engine.printingSecretsFor(entry.logicalId)),
|
|
30577
|
+
own,
|
|
30578
|
+
read
|
|
30579
|
+
]);
|
|
30580
|
+
}
|
|
30383
30581
|
async function performRollback(completedOperations, stateResources, stackName, previousState, failedOperations = [], priorOrphans = []) {
|
|
30384
30582
|
const orphanIndexes = [];
|
|
30385
30583
|
const orphanOps = [];
|
|
@@ -30397,11 +30595,14 @@ async function performRollback(completedOperations, stateResources, stackName, p
|
|
|
30397
30595
|
const runId = this.options.eventRecorder?.runId;
|
|
30398
30596
|
const { result, failed, run } = await withNestedRevertRun(runId, async (scope) => {
|
|
30399
30597
|
return {
|
|
30400
|
-
failed: orphanOps.length > 0 ? await
|
|
30598
|
+
failed: orphanOps.length > 0 ? await withPrintingSecrets(replayPrintingBag(this, orphanOps.map((op) => ({
|
|
30599
|
+
...op,
|
|
30600
|
+
properties: op.attemptedProperties
|
|
30601
|
+
})), stateResources), () => replayFailedOperations(orphanOps, stateResources, stackName, ctx, {
|
|
30401
30602
|
emitEnvelope: completedOperations.length === 0,
|
|
30402
30603
|
inlinePolicyWriters
|
|
30403
|
-
}) : void 0,
|
|
30404
|
-
result: await replayRollback(completedOperations, stateResources, stackName, ctx, { inlinePolicyWriters }),
|
|
30604
|
+
})) : void 0,
|
|
30605
|
+
result: await withPrintingSecrets(replayPrintingBag(this, completedReplayEntries(completedOperations), stateResources), () => replayRollback(completedOperations, stateResources, stackName, ctx, { inlinePolicyWriters })),
|
|
30405
30606
|
run: scope
|
|
30406
30607
|
};
|
|
30407
30608
|
});
|
|
@@ -30547,7 +30748,7 @@ function rollbackExecutorContext(previousState, stackName) {
|
|
|
30547
30748
|
providerRegistry: this.providerRegistry,
|
|
30548
30749
|
region: this.stackRegion,
|
|
30549
30750
|
logger: this.logger,
|
|
30550
|
-
recordEvent: (event) => this.recordEvent(event),
|
|
30751
|
+
recordEvent: (event) => this.recordEvent(maskEventTextWithBoundBags(event)),
|
|
30551
30752
|
finalSnapshotClients: this.options.finalSnapshotClients,
|
|
30552
30753
|
skipFinalSnapshot: this.options.skipFinalSnapshot,
|
|
30553
30754
|
...this.options.parentStackInfo && { nestedChildStack: stackName },
|
|
@@ -30985,6 +31186,7 @@ function kickOffAutoRefreshObservedProperties(stateResources, crossStackReads) {
|
|
|
30985
31186
|
const candidates = [];
|
|
30986
31187
|
const masked = [];
|
|
30987
31188
|
for (const [logicalId, resource] of Object.entries(stateResources)) {
|
|
31189
|
+
if (!hasAddressablePhysicalId(resource)) continue;
|
|
30988
31190
|
if (resource.observedProperties !== void 0) {
|
|
30989
31191
|
if (isMaskedBaselineRecaptureCandidate(resource)) masked.push({
|
|
30990
31192
|
logicalId,
|
|
@@ -31080,76 +31282,6 @@ function kickOffMaskedBaselineRecapture(provider, logicalId, resource, producerR
|
|
|
31080
31282
|
this.observedCaptureTasks.set(logicalId, task);
|
|
31081
31283
|
}
|
|
31082
31284
|
|
|
31083
|
-
//#endregion
|
|
31084
|
-
//#region src/deployment/secret-name-needles.ts
|
|
31085
|
-
function secretNameNeedlesOf(logicalId, record, secrets, options) {
|
|
31086
|
-
const physicalId = typeof record?.physicalId === "string" && record.physicalId !== "" ? record.physicalId : void 0;
|
|
31087
|
-
const bag = secrets !== void 0 && hasMaskableValues(secrets) ? secrets : void 0;
|
|
31088
|
-
const mask = (text) => bag === void 0 ? text : maskSecretsInText(text, bag);
|
|
31089
|
-
const unresolved = (value) => value.includes("{{resolve:") || value === "***";
|
|
31090
|
-
const named = {
|
|
31091
|
-
resourceType: record?.resourceType,
|
|
31092
|
-
properties: record?.properties,
|
|
31093
|
-
logicalId
|
|
31094
|
-
};
|
|
31095
|
-
const needles = /* @__PURE__ */ new Set();
|
|
31096
|
-
const add = (needle) => {
|
|
31097
|
-
if (typeof needle === "string" && needle !== "") needles.add(needle);
|
|
31098
|
-
};
|
|
31099
|
-
for (const [raw, derived] of secretDerivedNamePairs({
|
|
31100
|
-
...named,
|
|
31101
|
-
physicalIds: []
|
|
31102
|
-
})) if (typeof raw === "string" && !unresolved(raw) && isSecretDerivedValue(raw, mask)) add(derived);
|
|
31103
|
-
for (const [raw, spelling] of secretDerivedNamePairs({
|
|
31104
|
-
...named,
|
|
31105
|
-
physicalIds: [physicalId ?? "cdkd-no-physical-id-yet"]
|
|
31106
|
-
})) {
|
|
31107
|
-
if (!isSecretDerivedValue(raw, mask)) continue;
|
|
31108
|
-
if (unresolved(raw)) {
|
|
31109
|
-
if (physicalId === void 0) continue;
|
|
31110
|
-
add(spelling);
|
|
31111
|
-
} else {
|
|
31112
|
-
add(raw);
|
|
31113
|
-
if (raw.toLowerCase() !== raw && raw.length >= 4) add(raw.toLowerCase());
|
|
31114
|
-
}
|
|
31115
|
-
}
|
|
31116
|
-
const properties = record?.properties;
|
|
31117
|
-
const path = properties !== null && typeof properties === "object" && Object.hasOwn(properties, "Path") ? properties["Path"] : void 0;
|
|
31118
|
-
if (physicalId !== void 0 && isSecretDerivedValue(path, mask)) add(physicalId);
|
|
31119
|
-
const embedded = options === void 0 ? secrets : options.embedded;
|
|
31120
|
-
const embeddedBag = embedded !== void 0 && hasMaskableValues(embedded) ? embedded : void 0;
|
|
31121
|
-
if (embeddedBag !== void 0 && physicalId !== void 0) {
|
|
31122
|
-
for (const needle of printingCorpusOf(embeddedBag).keys()) if (needle !== "" && (needle === physicalId || needle.length >= 4 && physicalId.includes(needle))) add(needle);
|
|
31123
|
-
}
|
|
31124
|
-
return needles.size > 0 ? needles : void 0;
|
|
31125
|
-
}
|
|
31126
|
-
function secretNamesReadBy(logicalId, record, resources, judge = () => ({
|
|
31127
|
-
secrets: void 0,
|
|
31128
|
-
embedded: void 0
|
|
31129
|
-
})) {
|
|
31130
|
-
const read = /* @__PURE__ */ new Set();
|
|
31131
|
-
const leaves = [...wholeStringLeavesOf(record?.properties)].filter((leaf) => leaf !== "");
|
|
31132
|
-
if (leaves.length === 0) return read;
|
|
31133
|
-
for (const [otherId, other] of Object.entries(resources)) {
|
|
31134
|
-
if (otherId === logicalId) continue;
|
|
31135
|
-
const bags = judge(otherId);
|
|
31136
|
-
const needles = secretNameNeedlesOf(otherId, other, bags.secrets, { embedded: bags.embedded });
|
|
31137
|
-
if (needles === void 0) continue;
|
|
31138
|
-
for (const needle of needles) if (leaves.some((leaf) => leaf === needle || needle.length >= 4 && leaf.includes(needle))) read.add(needle);
|
|
31139
|
-
}
|
|
31140
|
-
return read;
|
|
31141
|
-
}
|
|
31142
|
-
function stateSecretNameNeedles(resources, secrets) {
|
|
31143
|
-
return (logicalId) => secretNameNeedlesOf(logicalId, Object.hasOwn(resources, logicalId) ? resources[logicalId] : void 0, secrets, { embedded: void 0 });
|
|
31144
|
-
}
|
|
31145
|
-
function secretNamePrintingBag(logicalId, resources) {
|
|
31146
|
-
const bag = /* @__PURE__ */ new Map();
|
|
31147
|
-
const record = Object.hasOwn(resources, logicalId) ? resources[logicalId] : void 0;
|
|
31148
|
-
for (const needle of secretNameNeedlesOf(logicalId, record, void 0) ?? []) recordLogOnlyValue(bag, needle);
|
|
31149
|
-
for (const needle of secretNamesReadBy(logicalId, record, resources)) recordLogOnlyValue(bag, needle);
|
|
31150
|
-
return bag;
|
|
31151
|
-
}
|
|
31152
|
-
|
|
31153
31285
|
//#endregion
|
|
31154
31286
|
//#region src/deployment/deploy-engine/masking.ts
|
|
31155
31287
|
function diffLogMasker(diffSecrets, template, parameterValues) {
|
|
@@ -31541,6 +31673,7 @@ async function deleteReplacedAfterCreate(logicalId, oldResourceType, currentReso
|
|
|
31541
31673
|
async function readRecordAttributes(input) {
|
|
31542
31674
|
const { provider, logicalId, resource, stackName, region } = input;
|
|
31543
31675
|
if (!provider.import) return { kind: "not-attempted" };
|
|
31676
|
+
if (!hasAddressablePhysicalId(resource)) return { kind: "not-attempted" };
|
|
31544
31677
|
const found = await provider.import({
|
|
31545
31678
|
logicalId,
|
|
31546
31679
|
resourceType: resource.resourceType,
|
|
@@ -34837,6 +34970,7 @@ async function provisionUpdate(logicalId, change, stateResources, stackName, tem
|
|
|
34837
34970
|
return;
|
|
34838
34971
|
}
|
|
34839
34972
|
this.refuseRedactedAttributeReads(logicalId, resourceType, context);
|
|
34973
|
+
if (!(currentResource.resourceType === "AWS::CloudFormation::Stack" && currentResource.provisionedBy !== "cc-api") && !hasAddressablePhysicalId(currentResource)) throw markRefusedBeforeApplying(markNonRetryable(new CdkdError(unaddressableUpdateRefusalMessage(stackName, this.stackRegion, logicalId, oldResourceType), STATE_RESOURCES_MALFORMED)));
|
|
34840
34974
|
this.attemptedResolvedProps.set(logicalId, resolvedProps);
|
|
34841
34975
|
const noEchoHeldPaths = /* @__PURE__ */ new Set();
|
|
34842
34976
|
if (change.propertyChanges?.some((pc) => pc.requiresReplacement) === true) {
|
|
@@ -35483,6 +35617,46 @@ async function provisionDelete(logicalId, change, stateResources, stackName, tem
|
|
|
35483
35617
|
await noteRetainedResource(resourceType, logicalId);
|
|
35484
35618
|
return;
|
|
35485
35619
|
}
|
|
35620
|
+
if (!(currentResource.resourceType === "AWS::CloudFormation::Stack" && currentResource.provisionedBy !== "cc-api") && !hasAddressablePhysicalId(currentResource)) {
|
|
35621
|
+
const reason = "state record has no physical id";
|
|
35622
|
+
if (progress) progress.current++;
|
|
35623
|
+
const skipPrefix = progress ? `[${progress.current}/${progress.total}] ` : " ";
|
|
35624
|
+
renderer.removeTask(logicalId);
|
|
35625
|
+
const skipLine = formatResourceLine("skipped", logicalId, resourceType, `skipped (${reason})`);
|
|
35626
|
+
this.logger.info(safeMsg`${skipPrefix}${skipLine}`);
|
|
35627
|
+
const showCommand = pasteableCommand("cdkd state show", [{
|
|
35628
|
+
value: stackName,
|
|
35629
|
+
hole: "stack",
|
|
35630
|
+
opts: { plainIdent: true }
|
|
35631
|
+
}, {
|
|
35632
|
+
flag: "--stack-region",
|
|
35633
|
+
value: this.stackRegion,
|
|
35634
|
+
hole: "region"
|
|
35635
|
+
}]).command;
|
|
35636
|
+
const dropCommand = pasteableCommand("cdkd state orphan", [
|
|
35637
|
+
{
|
|
35638
|
+
value: stackName,
|
|
35639
|
+
hole: "stack",
|
|
35640
|
+
opts: { plainIdent: true }
|
|
35641
|
+
},
|
|
35642
|
+
{
|
|
35643
|
+
flag: "--stack-region",
|
|
35644
|
+
value: this.stackRegion,
|
|
35645
|
+
hole: "region"
|
|
35646
|
+
},
|
|
35647
|
+
{
|
|
35648
|
+
flag: "--resource",
|
|
35649
|
+
value: logicalId,
|
|
35650
|
+
hole: "logicalId",
|
|
35651
|
+
opts: { plainIdent: true }
|
|
35652
|
+
}
|
|
35653
|
+
]).command;
|
|
35654
|
+
this.logger.warn(safeMsg`Resource ${displaySafe(logicalId)} (${displaySafe(resourceType)}) has no non-empty string 'physicalId' in its state record, so cdkd cannot address it in AWS and did not try to delete it while removing it from the template. Its cdkd state record was KEPT, so the next 'cdkd deploy' re-attempts the delete. Repair the record's 'physicalId', or delete the resource by hand and drop the record.
|
|
35655
|
+
Inspect it with: ${showCommand}
|
|
35656
|
+
Drop the record with: ${dropCommand}`);
|
|
35657
|
+
if (counts) counts.deleteSkipped++;
|
|
35658
|
+
return { deleteSkipped: reason };
|
|
35659
|
+
}
|
|
35486
35660
|
const governingPolicy = effectiveDeletionPolicy(resourceType, deletionPolicy, currentResource.properties);
|
|
35487
35661
|
const finalSnapshotIdentifier = await this.prepareFinalSnapshotForDelete(logicalId, resourceType, currentResource, governingPolicy);
|
|
35488
35662
|
const deleteRoute = this.providerRegistry.getProviderFor({
|
|
@@ -35741,7 +35915,7 @@ async function provisionResource(logicalId, change, stateResources, stackName, t
|
|
|
35741
35915
|
logicalId,
|
|
35742
35916
|
resourceType,
|
|
35743
35917
|
...stateResources[logicalId]?.provisionedBy ? { provisionedBy: stateResources[logicalId]?.provisionedBy } : labelRouting && { provisionedBy: labelRouting },
|
|
35744
|
-
...stateResources[logicalId]
|
|
35918
|
+
...stateResources[logicalId] !== void 0 && hasAddressablePhysicalId(stateResources[logicalId]) && { physicalId: stateResources[logicalId].physicalId },
|
|
35745
35919
|
reason: deleteSkipped,
|
|
35746
35920
|
durationMs: Date.now() - resourceStartedAt
|
|
35747
35921
|
});
|
|
@@ -36996,6 +37170,7 @@ async function doDeployWithPrefetch(stackName, template, createOnlyPrefetch) {
|
|
|
36996
37170
|
refuseMalformedOutputs(currentState, stackName, this.stackRegion);
|
|
36997
37171
|
refuseMalformedResourcesForDeploy(currentState, stackName, this.stackRegion);
|
|
36998
37172
|
refuseMalformedResourceEntriesForDeploy(currentState, stackName, this.stackRegion);
|
|
37173
|
+
refuseMalformedResourceProperties(currentState, stackName, this.stackRegion);
|
|
36999
37174
|
refuseMalformedOrphans(currentState, stackName, this.stackRegion);
|
|
37000
37175
|
refuseMalformedOrphanRecords(currentState, stackName, this.stackRegion);
|
|
37001
37176
|
const migrationPending = currentStateData?.migrationPending ?? false;
|
|
@@ -37772,5 +37947,5 @@ DeployEngine.prototype.replacementNameOrigin = replacementNameOrigin;
|
|
|
37772
37947
|
DeployEngine.prototype.orphanedNameCollisionAdvice = orphanedNameCollisionAdvice;
|
|
37773
37948
|
|
|
37774
37949
|
//#endregion
|
|
37775
|
-
export { namesAnyDeclaredParameter as $, markSameGenerationBag as $a, unreadableOrphanRecords as $i, disableInstanceApiTermination as $n, readBootstrapMarkerBody as $o, hasReadableResources as $r, defineOwnKey as $s, DeploymentEventsReader as $t, resolveDynamoDbDeleteBudgetClock as A, describeTypeWithThrottleRetry as Aa, refuseMalformedOutputsForDestroy as Ai, readTagList as An, hasReasonlessBaselineRefusal as Ao, getAccountInfo as Ar, resolveAutoAssetStorage as As, isReplacementOrphan as At, getPriorAttempts as B, carryLogOnlyValues as Ba, refuseMalformedResourcePropertiesForExport as Bi, isCustomResourceType as Bn, stringifyValue as Bo, parseWebACLArn as Br, CFN_TEMPLATE_URL_LIMIT as Bs, buildFinalSnapshotIdentifier as Bt, perType as C, readConfigString as Ca, refuseMalformedNestedChildOutputs as Ci, ledgerForStack as Cn, S3StateBackend as Co, s3BucketDomainName as Cr, getDockerImageBySourceHash as Cs, awaitInFlightSibling as Ct, beginDeleteWait as D, requireConfigString as Da, refuseMalformedOrphansForDestroy as Di, DBPROXY_TAGS_WHAT as Dn, describeRegionValueKind as Do, coerceParameterTypedValue as Dr, getLegacyStateBucketName as Ds, recordAfterRollbackUpdate as Dt, DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS as E, requireConfigObject as Ea, refuseMalformedOrphans as Ei, acquireIdempotencyToken as En, acceptedCreateOnlyDropsOf as Eo, s3BucketWebsiteUrl as Er, getDefaultStateBucketName as Es, withStackRecords as Et, waitForIndexesSettled as F, DagBuilder as Fa, refuseMalformedResourceEntriesForImport as Fi, stringifyIfAssigned as Fn, orphansAfterRollback as Fo, keepsSecretReferenceToken as Fr, resolveUseCdkBootstrapAssets as Fs, findNestedStackTypeChanges as Ft, cyan as G, printingCorpusOf as Ga, refuseMalformedState as Gi, ccProtectionRegistryTypes as Gn, rewriteTemplateAssetReferences as Go, STATE_REGION_DIVERGED as Gr, decodeListingKey as Gs, refusesFinalSnapshot as Gt, formatResourceLine as H, hasMaskableValues as Ha, refuseMalformedResourcesForDeploy as Hi, withPrintingSecrets as Hn, buildAssetRedirectMap as Ho, parameterInputsFor as Hr, findLargeInlineResources as Hs, createPreDeleteFinalSnapshot as Ht, ECR_AUTO_DELETE_IMAGES_TAG as I, TemplateParser as Ia, refuseMalformedResourceEntriesForImportSave as Ii, CC_BROKEN_REASON as In, orphansCarriedFrom as Io, AWS_NO_VALUE as Ir, stateBucketExistenceConfirmed as Is, getCurrentProducerRegions as It, red as J, shareLogOnlyValues as Ja, repairMalformedOutputsForReadOnly as Ji, deleteIndeterminateGuards as Jn, assertAssetBucketRegion as Jo, UNREADABLE_RESOURCES_MAP_ROW as Jr, canonicalizeRegion as Js, isRedactedRecordedValue as Jt, gray as K, recordLogOnlyParameterValue as Ka, repairMalformedOrphanRecordsForReadOnly as Ki, unchangedBehindSecretReference as Kn, AssetModeResolver as Ko, STATE_RESOURCES_MALFORMED as Kr, expectedOwnerParam as Ks, unsupportedFinalSnapshotError as Kt, S3_AUTO_DELETE_OBJECTS_TAG as L, liveMatchesUnresolvedTokenFrame as La, refuseMalformedResourceEntriesForOrphan as Li, ProviderRegistry as Ln, shouldRetainResource as Lo, cfnRefValueFromPhysicalId as Lr, warnDeprecatedNoPrefixCliFlag as Ls, inheritProducerRegions as Lt, DELETE_INDEX_WAIT_PROCEED_NOTE as M, canonicalLambdaFunctionName as Ma, refuseMalformedResourceEntries as Mi, tagMapAsList as Mn, importableOutputKeys as Mo, carriesDynamicReference as Mr, resolveSkipPrefix as Ms, planRollback as Mt, INDEX_SETTLE_POLL_INTERVAL_MS as N, lambdaFunctionNameForMask as Na, refuseMalformedResourceEntriesForDeploy as Ni, tagPlanWarning as Nn, importableOutputs as No, carriesFetchableDynamicReference as Nr, resolveStateBucketWithDefault as Ns, replacementNeverSwapped as Nt, compensateRemovedDeletionProtection as O, prefetchCreateOnlyPropertyPaths as Oa, refuseMalformedOrphansForOrphan as Oi, DBPROXY_TAG_OPTIONS as On, exportNamesCarriedFrom as Oo, isUnboundTemplateParameter as Or, loadCdkJson as Os, demoteSupersededOrphans as Ot, deleteTableWithIndexBusyRetry as P, sameLambdaFunctionAddress as Pa, refuseMalformedResourceEntriesForDestroy as Pi, definedAttributes as Pn, isReadableBag as Po, isNamelessDynamicReferenceError as Pr, resolveStateBucketWithDefaultAndSource as Ps, resolveReplacementOldType as Pt, computeParameterTaint as Q, maskSecretsInText as Qa, unpreviewableOrphanRecords as Qi, markWaitAbandoned as Qn, parseBootstrapMarker as Qo, hasReadableOutputs as Qr, processStackMessages as Qs, updatePartialReason as Qt, hasCdkAutoDeleteTag as R, inheritNestedStackParameterAssociations as Ra, refuseMalformedResourcePropertiesForDestroy as Ri, ccBrokenReason as Rn, AssetPublisher as Ro, isStalePlaceholderArnAttribute as Rr, ssmResolvedValueType as Rs, ATOMIC_FINAL_SNAPSHOT_TYPES as Rt, isProtectionValueActive as S, configStringRefusal as Sa, refuseDivergentRecordRegionForDestroy as Si, earliestDefined as Sn, isLockInfoExpired as So, s3BucketArn as Sr, AssetManifestLoader as Ss, replayRollback as St, DynamoDBGlobalTableProvider as T, requireConfigArray as Ta, refuseMalformedOrphanRecordsForDestroy as Ti, withCreateTokenLedger as Tn, splitImportedOps as To, s3BucketRegionalDomainName as Tr, synthesisStatusMessage as Ts, getStackRecords as Tt, createReadOnlyAttributeHealerFactory as U, literalSplitDelimitersOf as Ua, refuseMalformedResourcesForDestroy as Ui, CloudControlProvider as Un, createAssetRedirectResolver as Uo, passedParameterClassesOf as Ur, uploadCfnTemplate as Us, effectiveDeletionPolicy as Ut, markRefusedBeforeApplying as V, createUnionSecretMasker as Va, refuseMalformedResourcePropertiesForOrphan as Vi, getCurrentResourceSecrets as Vn, WorkGraph as Vo, withSharedDrainBudget as Vr, MIGRATE_TMP_PREFIX as Vs, ccRoutedFinalSnapshotError as Vt, bold as W, logOnlyValueCount as Wa, refuseMalformedResourcesForExport as Wi, slowCcOperationTimeoutMs as Wn, loadPublishableAssetManifest as Wo, JSON_LISTING_HOLE_VALUE as Wr, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as Ws, isFinalSnapshotError as Wt, secretNamePrintingBag as X, errorCauseChain as Xa, repairMalformedResourcePropertiesForReadOnly as Xi, withIndeterminateGuard as Xn, getBootstrapMarkerKey as Xo, displayLogicalId as Xr, AssemblyReader as Xs, redactedDeleteAddressSkip as Xt, yellow as Y, createSecretMasker as Ya, repairMalformedResourceEntriesForReadOnly as Yi, deleteSkipReason as Yn, ensureAssetStorage as Yo, deployRefusesOrphanRowsReason as Yr, derivePartitionAndUrlSuffix as Ys, redactedDeleteAddressFields as Yt, stateSecretNameNeedles as Z, maskSecretsInError as Za, repairMalformedResourcesForReadOnly as Zi, isWaitAbandonedError as Zn, isCrossRegionRedirect as Zo, hasReadableOrphans as Zr, StageLoadError as Zs, updatePartialMessage as Zt, makeCanonicalizePropertiesFn as _, toFiniteNumber as _a, malformedResourcePropertiesWarning as _i, maskingRetryLogger as _n, STATE_SOURCED_READBACK_RULES as _o, AWS_CREDENTIAL_ENV_KEYS as _r, runDockerForeground as _s, revertedNestedRowIds as _t, findNestedTemplateTreeDefect as a, NO_CC_HANDLERS_REASON as aa, describeFileReadFailure as ac, malformedLocalOutputsWarning as ai, secretBearing as an, isUncertifiedBaselineMaskPosition as ao, DiffCalculator as ar, describeDockerCapturedOutput as as, loadJournaledOrphans as at, recordedProtectionNote as b, configBooleanRefusal as ba, malformedStateRefusalMessage as bi, formatDestructiveChange as bn, isSingleDynamicReferenceToken as bo, envCredentialsAreAssumedRole as br, escapeRegExp$3 as bs, withNestedStackContext as bt, renderNestedTemplateTreeDefect as c, shownType as ca, resolveAssemblyPath as cc, malformedOrphanRecordsRefusalMessage as ci, exportNameSecretExposure as cn, carriesSecretMask as co, classifyReplaySecretRegion as cr, dockerSpawnEnvWithSensitive as cs, planOrphanAdoption as ct, conditionInputsFrom as d, isStatefulRecreateTargetSync as da, malformedOrphansRefusalMessage as di, collectDeclaredOutputNames as dn, recordMaskOnlyValuesIn as do, applyRoleArnIfSet as dr, getDockerCmd as ds, displacedPhysicalIdShown as dt, unreadableResourceEntries as ea, hasOwnKey as ec, isReadableOrphanRecord as ei, DeploymentEventsStore as en, redactSecretsForState as eo, ec2InstanceProtectionSite as er, validateAssetBucketName as es, reachableDivergentParameters as et, parentSuppliedValues as f, renderStatefulReason as fa, malformedOrphansWarning as fi, collectPublishedOutputNames as fn, recordNoEchoAttributeValues as fo, assertFlagRoleArn as fr, isDockerClientEnvKey as fs, dropSettledNestedJournals as ft, mergeNoChangeOutputs as g, toCfnInteger as ga, malformedResourceEntriesWarning as gi, DEFAULT_RESOURCE_WARN_AFTER_MS as gn, STATE_SOURCED_CROSS_GENERATION_RULES as go, sendableAssumeRoleCommand as gr, redactedDockerCause as gs, revertNestedChildFromJournal as gt, keptWholeReasonText as h, isWarmThroughputDecrease as ha, malformedRenderedContainersWarning as hi, DEFAULT_RESOURCE_TIMEOUT_MS as hn, STATE_SOURCED_BASELINE_RULES as ho, isIamRoleArn as hr, redactDockerArgvValues as hs, recordDisplacedSkips as ht, childTemplateLoader as i, withoutSilentDropProperties as ia, absoluteAssemblyPathEscape as ic, malformedExportSourceWarning as ii, exportAliasCollisionScrubWarning as in, dynamicReferenceTokens as io, reEnableInstanceApiTermination as ir, resolveDockerContextDirectory as is, journaledOrphanLines as it, resolveDynamoDbDeleteBudgetMs as j, withRetry as ja, refuseMalformedResourceAttributesForOrphan as ji, refuseMalformedDesiredTags as jn, hasUnverifiableParameterRefusal as jo, isImpossibleEmptyStoredAttribute as jr, resolveCaptureObservedState as js, planFailedOps as jt, deleteBudgetKey as k, templateResourceTypes as ka, refuseMalformedOutputs as ki, planTagDiff as kn, hasReadableExportSet as ko, parameterTypeMayLoseSecretIdentity as kr, resolveApp as ks, isJournaledOrphan as kt, templateIdentity as l, MULTI_REGION_RECREATE_BLOCKED_TYPES as la, clearBucketRegionCache as lc, malformedOrphanRecordsWarning as li, isWholeDynamicReferenceValue as ln, provenPublicValue as lo, producerRegionsFromState as lr, finchSecretArgvRefusal as ls, NESTED_PENDING_PARENT_REASON as lt, isSecretBearingReferenceString as m, coerceWarmThroughput as ma, malformedOutputsWarning as mi, bindingSkippedOutputs as mn, wholeStringLeavesOf as mo, explicitRoleArnOrThrow as mr, partitionSensitiveEnv as ms, nestedChildStackName as mt, IMPLICIT_DELETE_DEPENDENCIES as n, findSilentDropProperties as na, nullPrototypeRecord as nc, malformedDriftResourcePropertiesWarning as ni, WITHHELD_NAME_DISPLAY as nn, recoverMaskedOutput as no, observeThenDisableInstanceApiTermination as nr, buildDenyExternalAccessPolicy as ns, deleteJournaledOrphans as nt, isAbsoluteAssetPath as o, hasNoCloudControlHandlers as oa, displayAssemblyPath as oc, malformedLocalResourceEntriesWarning as oi, secretBearingStateKeyWarning as on, pathCrossesDottedKey as oo, INTRINSIC_KEYS as or, describeDockerExecFailure as os, sameJournaledOrphans as ot, readRecordedConditionVerdicts as p, WARM_THROUGHPUT_MEMBERS as pa, malformedOutputsRefusalMessage as pi, isExportAliasCollision as pn, recordProvenPublicExpression as po, assertSendableRoleArn as pr, isMalformedEnvKey as ps, getNestedRevertRun as pt, green as q, recordLogOnlyValue as qa, repairMalformedOrphansForReadOnly as qi, UNSPECIFIED_SKIP_REASON as qn, BOOTSTRAP_MARKER_PREFIX as qo, UNREADABLE_ORPHANS_CONTAINER_ROW as qr, PARTITION_TABLE as qs, REDACTED_DELETE_ADDRESS_SKIP_REASON as qt, computeImplicitDeleteEdges as r, unwrittenCreateOnlyReplacement as ra, ownValue as rc, malformedExportNamesWarning as ri, displayTextOrWithheld as rn, DYNAMIC_REFERENCE_TOKEN_SCAN as ro, reDisableInstanceApiTermination as rr, buildDockerImage as rs, isHandledOrphan as rt, listNestedTemplateRows as s, findReplacedReadersOfRecreateTargets as sa, renderAssemblyPathEscape as sc, malformedLocalResourcesWarning as si, secretSafeKeyDisplay as sn, identityKeyFor as so, IntrinsicFunctionResolver as sr, describeDockerFailure as ss, makeSiblingClaimReader as st, DeployEngine as t, findActionableSilentDrops as ta, hasPlainPrototype$1 as tc, isReadableResourceEntry as ti, extractDeploymentEventError as tn, scrubResourceRecord as to, isTerminationProtectionPropagationError as tr, validateContainerRepoName as ts, resourcesNamingDeclaredParameter as tt, conditionFingerprint as u, isStatefulRecreateTargetForReplace as ua, resolveBucketRegion as uc, malformedOrphanRowsKeptWarning as ui, noEchoParameterValueSeed as un, recordMaskOnlyValue as uo, regionLessSecretName as ur, formatDockerLoginError as us, displacedOpClause as ut, withResourceDeadline as v, coerceCfnBoolean as va, malformedResourcesWarning as vi, constructPathOf as vn, TEMPLATE_SOURCED_RULES as vo, applyCallerIdentityCredentials as vr, runDockerStreaming as vs, withNestedRevertRun as vt, readProtection as w, replayWarn as wa, refuseMalformedOrphanRecords as wi, reserveStackCreateToken as wn, rebuildClientForBucketRegion as wo, s3BucketDualStackDomainName as wr, Synthesizer as ws, destroyStackRecordsView as wt, PROTECTION_PROPERTY_BY_TYPE as x, configIntegerRefusal as xa, previewableOrphanRecords as xi, RollbackInlinePolicyWriters as xn, LockManager as xo, isSettledInstanceState as xr, stripControlChars as xs, replayFailedOperations as xt, recordedProtectionEvidence as y, coerceCfnInteger as ya, malformedScrubResourceEntriesRefusalMessage as yi, findDestructiveChanges as yn, WHOLE_DYNAMIC_REFERENCE_PATTERN as yo, callerEnvCredentials as yr, warnFinchArgvExposure as ys, getCurrentNestedStackContext as yt, isTruthyCfnBoolean as z, recordNestedStackParameterExpressions as za, refuseMalformedResourcePropertiesForDrift as zi, wouldReturnToSdkProvider as zn, isSensitiveAttributeName as zo, refStateLookupFromResource as zr, CFN_TEMPLATE_BODY_LIMIT as zs, PRE_DELETE_SNAPSHOT_TYPES as zt };
|
|
37776
|
-
//# sourceMappingURL=deploy-engine-
|
|
37950
|
+
export { resourcesNamingDeclaredParameter as $, createSecretMasker as $a, repairMalformedResourceEntriesForReadOnly as $i, deleteSkipReason as $n, ensureAssetStorage as $o, deployRefusesOrphanRowsReason as $r, derivePartitionAndUrlSuffix as $s, effectiveDeletionPolicy as $t, resolveDynamoDbDeleteBudgetClock as A, requireConfigObject as Aa, refuseMalformedOrphans as Ai, acquireIdempotencyToken as An, acceptedCreateOnlyDropsOf as Ao, s3BucketWebsiteUrl as Ar, getDefaultStateBucketName as As, planRollback as At, getPriorAttempts as B, TemplateParser as Ba, refuseMalformedResourceEntriesForImportSave as Bi, CC_BROKEN_REASON as Bn, orphansCarriedFrom as Bo, AWS_NO_VALUE as Br, stateBucketExistenceConfirmed as Bs, updatePartialMessage as Bt, perType as C, coerceCfnInteger as Ca, malformedScrubResourceEntriesRefusalMessage as Ci, findDestructiveChanges as Cn, WHOLE_DYNAMIC_REFERENCE_PATTERN as Co, callerEnvCredentials as Cr, warnFinchArgvExposure as Cs, getStackRecords as Ct, beginDeleteWait as D, readConfigString as Da, refuseMalformedNestedChildOutputs as Di, ledgerForStack as Dn, S3StateBackend as Do, s3BucketDomainName as Dr, getDockerImageBySourceHash as Ds, isJournaledOrphan as Dt, DYNAMODB_DELETE_MIN_RESOURCE_TIMEOUT_MS as E, configStringRefusal as Ea, refuseDivergentRecordRegionForDestroy as Ei, earliestDefined as En, isLockInfoExpired as Eo, s3BucketArn as Er, AssetManifestLoader as Es, demoteSupersededOrphans as Et, waitForIndexesSettled as F, withRetry as Fa, refuseMalformedResourceAttributesForOrphan as Fi, refuseMalformedDesiredTags as Fn, hasUnverifiableParameterRefusal as Fo, isImpossibleEmptyStoredAttribute as Fr, resolveCaptureObservedState as Fs, inheritProducerRegions as Ft, cyan as G, createUnionSecretMasker as Ga, refuseMalformedResourcePropertiesForOrphan as Gi, getCurrentResourceSecrets as Gn, WorkGraph as Go, withSharedDrainBudget as Gr, MIGRATE_TMP_PREFIX as Gs, orphanRecordsPrintingBag as Gt, formatResourceLine as H, inheritNestedStackParameterAssociations as Ha, refuseMalformedResourcePropertiesForDestroy as Hi, ccBrokenReason as Hn, AssetPublisher as Ho, isStalePlaceholderArnAttribute as Hr, ssmResolvedValueType as Hs, completedReplayEntries as Ht, ECR_AUTO_DELETE_IMAGES_TAG as I, canonicalLambdaFunctionName as Ia, refuseMalformedResourceEntries as Ii, tagMapAsList as In, importableOutputKeys as Io, carriesDynamicReference as Ir, resolveSkipPrefix as Is, REDACTED_DELETE_ADDRESS_SKIP_REASON as It, red as J, logOnlyValueCount as Ja, refuseMalformedResourcesForExport as Ji, slowCcOperationTimeoutMs as Jn, loadPublishableAssetManifest as Jo, JSON_LISTING_HOLE_VALUE as Jr, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as Js, ATOMIC_FINAL_SNAPSHOT_TYPES as Jt, gray as K, hasMaskableValues as Ka, refuseMalformedResourcesForDeploy as Ki, withPrintingSecrets as Kn, buildAssetRedirectMap as Ko, parameterInputsFor as Kr, findLargeInlineResources as Ks, secretNamePrintingBag as Kt, S3_AUTO_DELETE_OBJECTS_TAG as L, lambdaFunctionNameForMask as La, refuseMalformedResourceEntriesForDeploy as Li, tagPlanWarning as Ln, importableOutputs as Lo, carriesFetchableDynamicReference as Lr, resolveStateBucketWithDefault as Ls, isRedactedRecordedValue as Lt, DELETE_INDEX_WAIT_PROCEED_NOTE as M, prefetchCreateOnlyPropertyPaths as Ma, refuseMalformedOrphansForOrphan as Mi, DBPROXY_TAG_OPTIONS as Mn, exportNamesCarriedFrom as Mo, isUnboundTemplateParameter as Mr, loadCdkJson as Ms, resolveReplacementOldType as Mt, INDEX_SETTLE_POLL_INTERVAL_MS as N, templateResourceTypes as Na, refuseMalformedOutputs as Ni, planTagDiff as Nn, hasReadableExportSet as No, parameterTypeMayLoseSecretIdentity as Nr, resolveApp as Ns, findNestedStackTypeChanges as Nt, compensateRemovedDeletionProtection as O, replayWarn as Oa, refuseMalformedOrphanRecords as Oi, reserveStackCreateToken as On, rebuildClientForBucketRegion as Oo, s3BucketDualStackDomainName as Or, Synthesizer as Os, isReplacementOrphan as Ot, deleteTableWithIndexBusyRetry as P, describeTypeWithThrottleRetry as Pa, refuseMalformedOutputsForDestroy as Pi, readTagList as Pn, hasReasonlessBaselineRefusal as Po, getAccountInfo as Pr, resolveAutoAssetStorage as Ps, getCurrentProducerRegions as Pt, reachableDivergentParameters as Q, shareLogOnlyValues as Qa, repairMalformedOutputsForReadOnly as Qi, deleteIndeterminateGuards as Qn, assertAssetBucketRegion as Qo, UNREADABLE_RESOURCES_MAP_ROW as Qr, canonicalizeRegion as Qs, createPreDeleteFinalSnapshot as Qt, hasCdkAutoDeleteTag as R, sameLambdaFunctionAddress as Ra, refuseMalformedResourceEntriesForDestroy as Ri, definedAttributes as Rn, isReadableBag as Ro, isNamelessDynamicReferenceError as Rr, resolveStateBucketWithDefaultAndSource as Rs, redactedDeleteAddressFields as Rt, isProtectionValueActive as S, coerceCfnBoolean as Sa, malformedResourcesWarning as Si, constructPathOf as Sn, TEMPLATE_SOURCED_RULES as So, applyCallerIdentityCredentials as Sr, runDockerStreaming as Ss, destroyStackRecordsView as St, DynamoDBGlobalTableProvider as T, configIntegerRefusal as Ta, previewableOrphanRecords as Ti, RollbackInlinePolicyWriters as Tn, LockManager as To, isSettledInstanceState as Tr, stripControlChars as Ts, recordAfterRollbackUpdate as Tt, createReadOnlyAttributeHealerFactory as U, recordNestedStackParameterExpressions as Ua, refuseMalformedResourcePropertiesForDrift as Ui, wouldReturnToSdkProvider as Un, isSensitiveAttributeName as Uo, refStateLookupFromResource as Ur, CFN_TEMPLATE_BODY_LIMIT as Us, journaledOrphanPrintingBag as Ut, markRefusedBeforeApplying as V, liveMatchesUnresolvedTokenFrame as Va, refuseMalformedResourceEntriesForOrphan as Vi, ProviderRegistry as Vn, shouldRetainResource as Vo, cfnRefValueFromPhysicalId as Vr, warnDeprecatedNoPrefixCliFlag as Vs, updatePartialReason as Vt, bold as W, carryLogOnlyValues as Wa, refuseMalformedResourcePropertiesForExport as Wi, isCustomResourceType as Wn, stringifyValue as Wo, parseWebACLArn as Wr, CFN_TEMPLATE_URL_LIMIT as Ws, maskEventTextWithBoundBags as Wt, computeParameterTaint as X, recordLogOnlyParameterValue as Xa, repairMalformedOrphanRecordsForReadOnly as Xi, unchangedBehindSecretReference as Xn, AssetModeResolver as Xo, STATE_RESOURCES_MALFORMED as Xr, expectedOwnerParam as Xs, buildFinalSnapshotIdentifier as Xt, yellow as Y, printingCorpusOf as Ya, refuseMalformedState as Yi, ccProtectionRegistryTypes as Yn, rewriteTemplateAssetReferences as Yo, STATE_REGION_DIVERGED as Yr, decodeListingKey as Ys, PRE_DELETE_SNAPSHOT_TYPES as Yt, namesAnyDeclaredParameter as Z, recordLogOnlyValue as Za, repairMalformedOrphansForReadOnly as Zi, UNSPECIFIED_SKIP_REASON as Zn, BOOTSTRAP_MARKER_PREFIX as Zo, UNREADABLE_ORPHANS_CONTAINER_ROW as Zr, PARTITION_TABLE as Zs, ccRoutedFinalSnapshotError as Zt, makeCanonicalizePropertiesFn as _, WARM_THROUGHPUT_MEMBERS as _a, malformedOutputsRefusalMessage as _i, isExportAliasCollision as _n, recordProvenPublicExpression as _o, assertSendableRoleArn as _r, isMalformedEnvKey as _s, getCurrentNestedStackContext as _t, findNestedTemplateTreeDefect as a, findActionableSilentDrops as aa, hasPlainPrototype$1 as ac, isReadableResourceEntry as ai, extractDeploymentEventError as an, scrubResourceRecord as ao, isTerminationProtectionPropagationError as ar, validateContainerRepoName as as, makeSiblingClaimReader as at, recordedProtectionNote as b, toCfnInteger as ba, malformedResourceEntriesWarning as bi, DEFAULT_RESOURCE_WARN_AFTER_MS as bn, STATE_SOURCED_CROSS_GENERATION_RULES as bo, sendableAssumeRoleCommand as br, redactedDockerCause as bs, replayRollback as bt, renderNestedTemplateTreeDefect as c, withoutSilentDropProperties as ca, absoluteAssemblyPathEscape as cc, malformedExportSourceWarning as ci, exportAliasCollisionScrubWarning as cn, dynamicReferenceTokens as co, reEnableInstanceApiTermination as cr, resolveDockerContextDirectory as cs, displacedOpClause as ct, conditionInputsFrom as d, findReplacedReadersOfRecreateTargets as da, renderAssemblyPathEscape as dc, malformedLocalResourcesWarning as di, secretSafeKeyDisplay as dn, identityKeyFor as do, IntrinsicFunctionResolver as dr, describeDockerFailure as ds, getNestedRevertRun as dt, repairMalformedResourcePropertiesForReadOnly as ea, AssemblyReader as ec, displayLogicalId as ei, isFinalSnapshotError as en, errorCauseChain as eo, withIndeterminateGuard as er, getBootstrapMarkerKey as es, deleteJournaledOrphans as et, parentSuppliedValues as f, shownType as fa, resolveAssemblyPath as fc, malformedOrphanRecordsRefusalMessage as fi, exportNameSecretExposure as fn, carriesSecretMask as fo, classifyReplaySecretRegion as fr, dockerSpawnEnvWithSensitive as fs, nestedChildStackName as ft, mergeNoChangeOutputs as g, renderStatefulReason as ga, malformedOrphansWarning as gi, collectPublishedOutputNames as gn, recordNoEchoAttributeValues as go, assertFlagRoleArn as gr, isDockerClientEnvKey as gs, withNestedRevertRun as gt, keptWholeReasonText as h, isStatefulRecreateTargetSync as ha, malformedOrphansRefusalMessage as hi, collectDeclaredOutputNames as hn, recordMaskOnlyValuesIn as ho, applyRoleArnIfSet as hr, getDockerCmd as hs, revertedNestedRowIds as ht, childTemplateLoader as i, unreadableResourceEntries as ia, hasOwnKey as ic, isReadableOrphanRecord as ii, DeploymentEventsStore as in, redactSecretsForState as io, ec2InstanceProtectionSite as ir, validateAssetBucketName as is, sameJournaledOrphans as it, resolveDynamoDbDeleteBudgetMs as j, requireConfigString as ja, refuseMalformedOrphansForDestroy as ji, DBPROXY_TAGS_WHAT as jn, describeRegionValueKind as jo, coerceParameterTypedValue as jr, getLegacyStateBucketName as js, replacementNeverSwapped as jt, deleteBudgetKey as k, requireConfigArray as ka, refuseMalformedOrphanRecordsForDestroy as ki, withCreateTokenLedger as kn, splitImportedOps as ko, s3BucketRegionalDomainName as kr, synthesisStatusMessage as ks, planFailedOps as kt, templateIdentity as l, NO_CC_HANDLERS_REASON as la, describeFileReadFailure as lc, malformedLocalOutputsWarning as li, secretBearing as ln, isUncertifiedBaselineMaskPosition as lo, DiffCalculator as lr, describeDockerCapturedOutput as ls, displacedPhysicalIdShown as lt, isSecretBearingReferenceString as m, isStatefulRecreateTargetForReplace as ma, resolveBucketRegion as mc, malformedOrphanRowsKeptWarning as mi, noEchoParameterValueSeed as mn, recordMaskOnlyValue as mo, regionLessSecretName as mr, formatDockerLoginError as ms, revertNestedChildFromJournal as mt, IMPLICIT_DELETE_DEPENDENCIES as n, unpreviewableOrphanRecords as na, processStackMessages as nc, hasReadableOutputs as ni, unsupportedFinalSnapshotError as nn, maskSecretsInText as no, markWaitAbandoned as nr, parseBootstrapMarker as ns, journaledOrphanLines as nt, isAbsoluteAssetPath as o, findSilentDropProperties as oa, nullPrototypeRecord as oc, malformedDriftResourcePropertiesWarning as oi, WITHHELD_NAME_DISPLAY as on, recoverMaskedOutput as oo, observeThenDisableInstanceApiTermination as or, buildDenyExternalAccessPolicy as os, planOrphanAdoption as ot, readRecordedConditionVerdicts as p, MULTI_REGION_RECREATE_BLOCKED_TYPES as pa, clearBucketRegionCache as pc, malformedOrphanRecordsWarning as pi, isWholeDynamicReferenceValue as pn, provenPublicValue as po, producerRegionsFromState as pr, finchSecretArgvRefusal as ps, recordDisplacedSkips as pt, green as q, literalSplitDelimitersOf as qa, refuseMalformedResourcesForDestroy as qi, CloudControlProvider as qn, createAssetRedirectResolver as qo, passedParameterClassesOf as qr, uploadCfnTemplate as qs, stateSecretNameNeedles as qt, computeImplicitDeleteEdges as r, unreadableOrphanRecords as ra, defineOwnKey as rc, hasReadableResources as ri, DeploymentEventsReader as rn, markSameGenerationBag as ro, disableInstanceApiTermination as rr, readBootstrapMarkerBody as rs, loadJournaledOrphans as rt, listNestedTemplateRows as s, unwrittenCreateOnlyReplacement as sa, ownValue as sc, malformedExportNamesWarning as si, displayTextOrWithheld as sn, DYNAMIC_REFERENCE_TOKEN_SCAN as so, reDisableInstanceApiTermination as sr, buildDockerImage as ss, NESTED_PENDING_PARENT_REASON as st, DeployEngine as t, repairMalformedResourcesForReadOnly as ta, StageLoadError as tc, hasReadableOrphans as ti, refusesFinalSnapshot as tn, maskSecretsInError as to, isWaitAbandonedError as tr, isCrossRegionRedirect as ts, isHandledOrphan as tt, conditionFingerprint as u, hasNoCloudControlHandlers as ua, displayAssemblyPath as uc, malformedLocalResourceEntriesWarning as ui, secretBearingStateKeyWarning as un, pathCrossesDottedKey as uo, INTRINSIC_KEYS as ur, describeDockerExecFailure as us, dropSettledNestedJournals as ut, withResourceDeadline as v, coerceWarmThroughput as va, malformedOutputsWarning as vi, bindingSkippedOutputs as vn, wholeStringLeavesOf as vo, explicitRoleArnOrThrow as vr, partitionSensitiveEnv as vs, withNestedStackContext as vt, readProtection as w, configBooleanRefusal as wa, malformedStateRefusalMessage as wi, formatDestructiveChange as wn, isSingleDynamicReferenceToken as wo, envCredentialsAreAssumedRole as wr, escapeRegExp$3 as ws, withStackRecords as wt, PROTECTION_PROPERTY_BY_TYPE as x, toFiniteNumber as xa, malformedResourcePropertiesWarning as xi, maskingRetryLogger as xn, STATE_SOURCED_READBACK_RULES as xo, AWS_CREDENTIAL_ENV_KEYS as xr, runDockerForeground as xs, awaitInFlightSibling as xt, recordedProtectionEvidence as y, isWarmThroughputDecrease as ya, malformedRenderedContainersWarning as yi, DEFAULT_RESOURCE_TIMEOUT_MS as yn, STATE_SOURCED_BASELINE_RULES as yo, isIamRoleArn as yr, redactDockerArgvValues as ys, replayFailedOperations as yt, isTruthyCfnBoolean as z, DagBuilder as za, refuseMalformedResourceEntriesForImport as zi, stringifyIfAssigned as zn, orphansAfterRollback as zo, keepsSecretReferenceToken as zr, resolveUseCdkBootstrapAssets as zs, redactedDeleteAddressSkip as zt };
|
|
37951
|
+
//# sourceMappingURL=deploy-engine-BPcBCyUE.js.map
|