@go-to-k/cdkd 0.308.0 → 0.309.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{asg-provider-CsRMe_zh.js → asg-provider-DQoKGfKH.js} +3 -3
- package/dist/{asg-provider-CsRMe_zh.js.map → asg-provider-DQoKGfKH.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{db-instance-modify-retry-DOJPkECL.js → db-instance-modify-retry-BUG7NMWS.js} +3 -3
- package/dist/{db-instance-modify-retry-DOJPkECL.js.map → db-instance-modify-retry-BUG7NMWS.js.map} +1 -1
- package/dist/{deploy-engine-DSpxEUjC.js → deploy-engine-tQ0aqZMo.js} +1418 -281
- package/dist/deploy-engine-tQ0aqZMo.js.map +1 -0
- package/dist/{iam-policy-targets-TFGunWmV.js → iam-policy-targets-D94wh05t.js} +5 -2
- package/dist/{iam-policy-targets-TFGunWmV.js.map → iam-policy-targets-D94wh05t.js.map} +1 -1
- package/dist/{iam-role-provider--eWrOXce.js → iam-role-provider-BI8Acvps.js} +3 -3
- package/dist/{iam-role-provider--eWrOXce.js.map → iam-role-provider-BI8Acvps.js.map} +1 -1
- package/dist/index.d.ts +15 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/{neptune-provider-p59T8CFv.js → neptune-provider-DmVmx69p.js} +11 -9
- package/dist/neptune-provider-DmVmx69p.js.map +1 -0
- package/dist/{program-DOPic-aS.js → program-Bnt3Yt0k.js} +121 -260
- package/dist/program-Bnt3Yt0k.js.map +1 -0
- package/dist/{provider-classes-d9K3vBVh.js → provider-classes-DYke4HKr.js} +1210 -194
- package/dist/provider-classes-DYke4HKr.js.map +1 -0
- package/dist/{rds-provider-BPs9JSk_.js → rds-provider-Qpf09VQv.js} +49 -20
- package/dist/rds-provider-Qpf09VQv.js.map +1 -0
- package/dist/{version-DzajQDkv.js → version-9LVuCtBU.js} +2 -2
- package/dist/{version-DzajQDkv.js.map → version-9LVuCtBU.js.map} +1 -1
- package/package.json +2 -2
- package/dist/deploy-engine-DSpxEUjC.js.map +0 -1
- package/dist/neptune-provider-p59T8CFv.js.map +0 -1
- package/dist/program-DOPic-aS.js.map +0 -1
- package/dist/provider-classes-d9K3vBVh.js.map +0 -1
- package/dist/rds-provider-BPs9JSk_.js.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { a as runWithStackAwsClients, i as resetAwsClients, o as setAwsClients, t as AwsClients } from "./aws-clients-Bu9EMILF.js";
|
|
2
2
|
import { $ as stringifyJsonPayload, A as isNameGeneration, B as SECRET_REF_MAX_CODE_POINTS, C as generateResourceName, F as withSkipPrefix, G as displayAwsMessage, H as UNRENDERABLE, I as withStackScope, J as displayStackName, K as displayIdent, Q as safeMsg, U as asIsMessage, V as STACK_REF_MAX_CODE_POINTS, W as cutMarker, Y as isPasteableIdent, Z as plainIdentOr, _ as PATTERN_B_RESOURCE_TYPES, a as safeStringify, b as derivesPatternBName, c as isStdoutReservedForPayload, d as runStackBuffered, et as terminalSafe, g as PATTERN_B_NAME_PROPERTIES, h as PATTERN_B_NAME_OPTIONS, l as reserveStdoutForPayload, m as getLiveRenderer, n as describeAwsFailure, q as displaySafe, s as getLogger, tt as truncateCodePoints, x as explicitNamePropertyFor, z as SAFE_MSG_ALTERED_CHAR } from "./aws-failure-text-NSBdKPYK.js";
|
|
3
|
-
import { An as StateError, Cn as NestedStackChildDirectDestroyError, Cr as markNonRetryable, Dn as ResourceUpdateNotSupportedError, E as isMarkedNotGone, En as ResourceTimeoutError, Fn as normalizeAwsError, Gt as formatLockExpiry, Ht as buildForceUnlockCommand, I as remedyLogicalId, In as withErrorHandling, Jn as shellBoundedDisplay, Kn as plainOrDescribed, Kt as formatLockOperation, Ln as TIMEOUT_FLAG_RESOURCE_TYPE, Mn as formatError, O as assertRegionMatch, On as StackHasActiveImportsError, Qn as setPasteableVerbFlags, Qt as injectiveKey, Sn as MalformedProducerRecordRefusalError, Sr as isThrottlingError, T as RESOURCE_NOT_FOUND, Tn as ProvisioningError, Un as isInertUnquoted, Ut as buildLockContentionMessage, Vn as commandHole, Vt as UNREPRODUCIBLE_LOCK_CLAUSE, Wn as pasteableCommand, Wt as forceQuitRecoveryClause, Xn as withheldTargetClause, Xt as CUSTOM_RESOURCE_RESPONSE_PREFIX, Yn as shellQuote, Z as runDeleteAttempt, Zn as setPasteableRunFlags, Zt as DEFAULT_STATE_PREFIX, _n as IntrinsicResolutionRefusalError, _r as isRetryableTransientError, an as ambientCredentialConfig, bt as resourceTypeShown, cn as AccountIdUnavailableError, cr as escapeRegExp, dt as interruptWatchListenerCount, en as producerCoordinateKey, fn as CrossAccountSecretRefusalError, ft as isInterruptedWaitError, gn as DynamicReferenceRegionAmbiguousError, in as ambientClientDefaults, jn as SynthesisError, k as VALUE_NOT_SHOWN, kn as StackTerminationProtectionError, lr as stripControlChars, lt as beginCommandInterruptScope, mn as DeployCancelledError, mr as isAmbiguousOutcomeError, n as RESOLVED_PREVIOUS_PRINCIPAL_KEYS, nn as setPasteableAwsProfile, on as clientDefaultsFor, qn as quotedOrDescribed, qt as formatLockOwner, rn as withPasteableAwsProfile, rt as isAwsCliLiteral, s as readRecordedPrincipals, sn as credentialFingerprint, t as IAM_PRINCIPAL_NAME, tn as producerRecordKey, un as CdkdError, ur as stripForDisplay, ut as endCommandInterruptScope, vn as LocalInvokeBuildError$1, vr as isTransientServerError, vt as logicalIdShown, wn as PartialFailureError, xr as isMarkedNonRetryable, yn as LocalStartServiceError, yr as retryClassificationText, zn as SHELL_ACTIVE_WHY } from "./iam-policy-targets-
|
|
3
|
+
import { An as StateError, Cn as NestedStackChildDirectDestroyError, Cr as markNonRetryable, Dn as ResourceUpdateNotSupportedError, E as isMarkedNotGone, En as ResourceTimeoutError, Fn as normalizeAwsError, Gt as formatLockExpiry, Ht as buildForceUnlockCommand, I as remedyLogicalId, In as withErrorHandling, Jn as shellBoundedDisplay, Kn as plainOrDescribed, Kt as formatLockOperation, Ln as TIMEOUT_FLAG_RESOURCE_TYPE, Mn as formatError, O as assertRegionMatch, On as StackHasActiveImportsError, Qn as setPasteableVerbFlags, Qt as injectiveKey, Sn as MalformedProducerRecordRefusalError, Sr as isThrottlingError, T as RESOURCE_NOT_FOUND, Tn as ProvisioningError, Un as isInertUnquoted, Ut as buildLockContentionMessage, Vn as commandHole, Vt as UNREPRODUCIBLE_LOCK_CLAUSE, Wn as pasteableCommand, Wt as forceQuitRecoveryClause, Xn as withheldTargetClause, Xt as CUSTOM_RESOURCE_RESPONSE_PREFIX, Yn as shellQuote, Z as runDeleteAttempt, Zn as setPasteableRunFlags, Zt as DEFAULT_STATE_PREFIX, _n as IntrinsicResolutionRefusalError, _r as isRetryableTransientError, an as ambientCredentialConfig, bt as resourceTypeShown, cn as AccountIdUnavailableError, cr as escapeRegExp, dt as interruptWatchListenerCount, en as producerCoordinateKey, fn as CrossAccountSecretRefusalError, ft as isInterruptedWaitError, gn as DynamicReferenceRegionAmbiguousError, in as ambientClientDefaults, jn as SynthesisError, k as VALUE_NOT_SHOWN, kn as StackTerminationProtectionError, lr as stripControlChars, lt as beginCommandInterruptScope, mn as DeployCancelledError, mr as isAmbiguousOutcomeError, n as RESOLVED_PREVIOUS_PRINCIPAL_KEYS, nn as setPasteableAwsProfile, on as clientDefaultsFor, qn as quotedOrDescribed, qt as formatLockOwner, rn as withPasteableAwsProfile, rt as isAwsCliLiteral, s as readRecordedPrincipals, sn as credentialFingerprint, t as IAM_PRINCIPAL_NAME, tn as producerRecordKey, un as CdkdError, ur as stripForDisplay, ut as endCommandInterruptScope, vn as LocalInvokeBuildError$1, vr as isTransientServerError, vt as logicalIdShown, wn as PartialFailureError, xr as isMarkedNonRetryable, yn as LocalStartServiceError, yr as retryClassificationText, zn as SHELL_ACTIVE_WHY } from "./iam-policy-targets-D94wh05t.js";
|
|
4
4
|
import { a as setAssumedRoleCredentials, d as formatAuthority, i as getPreAssumeEnvCredentials, n as awsClientDefaults, r as getAssumedRoleCredentials, u as runInStackAwsScope } from "./aws-client-defaults-BX9Y_fKp.js";
|
|
5
|
-
import { $ as inheritedProvenanceForChildDiff, $a as isStalePlaceholderArnAttribute, $c as carriesSecretMask, $i as deleteIndeterminateGuards, $l as readBootstrapMarkerBody, $n as exportNameSecretExposure, $o as refuseMalformedResourceEntriesForImport, $r as secretNamePrintingBag, $t as readRefactorMarker, $u as parseFailureDebugDetail, Aa as assertSendableRoleArn, Ac as recordLogOnlyValue, Al as isReadableBag, Ao as malformedOrphansWarning, Ar as green, As as isStatefulRecreateTargetSync, At as dropSettledNestedJournals, Au as resolveCaptureObservedState, Ba as producerRegionsFromState, Bc as DYNAMIC_REFERENCE_TOKEN_SCAN, Bi as readsNoEchoDeleteValues, Bl as stringifyValue, Bn as withNameGenerationReached, Bo as refuseDivergentRecordRegionForDestroy, Br as supersededHolderOf, Bt as deleteJournaledOrphans, Bu as MIGRATE_TMP_PREFIX, Ca as refuseUnreadableCdkCrossAccountRefs, Cc as carryLogOnlyValues, Cl as describeRegionValueKind, Cn as seedsDeleteFirstGuard, Co as malformedLocalOutputsWarning, Cr as destroyStackRecordsView, Ct as pendingRequestCount, Cu as Synthesizer, Da as recordedReferenceRegions, Dc as logOnlyValueCount, Dl as hasUnverifiableParameterRefusal, Dn as inheritProducerRegions, Do as malformedOrphanRecordsWarning, Dr as bold, Ds as shownType, Dt as NESTED_PENDING_PARENT_REASON, Du as loadCdkJson, Ea as recordedOutputReferenceRegions, Ec as literalSplitDelimitersOf, El as hasReasonlessBaselineRefusal, Eo as malformedOrphanRecordsRefusalMessage, Es as findReplacedReadersOfRecreateTargets, Et as recordRetainedForReadoption, Eu as getLegacyStateBucketName, Fa as applyCallerIdentityCredentials, Fc as maskSecretsInError, Fi as ccBrokenReason, Fl as PhaseClock, Fn as nameGenerationHighWaterOf, Fo as malformedResourcePropertiesWarning, Fr as holdsSupersededResources, Ft as revertedNestedRowIds, Fu as stateBucketExistenceConfirmed, Ga as getAccountInfo, Gc as identityKeyFor, Gi as applyCustomResourceResponseExpiration, Gl as rewriteTemplateAssetReferences, Gn as WITHHELD_NAME_DISPLAY, Go as refuseMalformedOrphansForDestroy, Gr as noEchoExactEchoLeavesOf, Gt as loadJournaledOrphans, Gu as expectedOwnerParam, Ha as coerceParameterTypedValue, Hc as isUncertifiedBaselineMaskPosition, Hl as buildAssetRedirectMap, Hn as namesAnyDeclaredParameter, Ho as refuseMalformedOrphanRecords, Hr as withoutSuperseded, Ht as dropFailedHint, Hu as uploadCfnTemplate, Ia as callerEnvCredentials, Ic as maskSecretsInText, Ii as isCustomResource, Il as renderPhaseTimings, In as nameScopeOf, Io as malformedResourcesWarning, Ir as isSupersededResourceRecord, It as withNestedRevertRun, Iu as warnDeprecatedNoPrefixCliFlag, Ja as carriesFetchableDynamicReference, Ji as slowCcOperationTimeoutMs, Jl as assertAssetBucketRegion, Jn as secretBearing, Jo as refuseMalformedOutputsForDestroy, Jr as completedReplayEntries, Js as templateResourceTypes, Jt as formatResourceLine, Ju as derivePartitionAndUrlSuffix, Ka as isImpossibleEmptyStoredAttribute, Kc as inheritNestedStackParameterAssociations, Ki as customResourceResponseExpirationWarning, Kl as AssetModeResolver, Kn as displayTextOrWithheld, Ko as refuseMalformedOrphansForOrphan, Kr as noEchoParameterNamesOf, Kt as makeForeignHolderScan, Ku as PARTITION_TABLE, La as envCredentialsAreAssumedRole, Lc as scrubResourceRecord, Li as wouldReturnToSdkProvider, Ll as timePhase, Ln as retiredAfterRollback, Lo as malformedScrubResourceEntriesRefusalMessage, Lr as removeSuperseded, Lt as collectNestedChildUnaddressed, Lu as ssmResolvedValueType, Ma as isIamRoleArn, Mc as unionOfSecretBags, Ml as orphansCarriedFrom, Mn as updatePartialMessage, Mo as malformedOutputsWarning, Mr as yellow, Mt as nestedChildStackName$1, Mu as resolveStateBucketWithDefault, Na as sendableAssumeRoleCommand, Nc as createSecretMasker, Ni as CC_BROKEN_REASON, Nl as shouldRetainResource, Nn as updatePartialReason, No as malformedRenderedContainersWarning, Nr as addSuperseded, Nt as recordDisplacedSkips, Nu as resolveStateBucketWithDefaultAndSource, Oa as applyRoleArnIfSet, Oc as printingCorpusOf, Ol as importableOutputKeys, Oo as malformedOrphanRowsKeptWarning, Or as cyan, Os as MULTI_REGION_RECREATE_BLOCKED_TYPES, Ot as displacedOpClause, Ou as resolveApp, Pa as AWS_CREDENTIAL_ENV_KEYS, Pc as errorCauseChain, Pi as ProviderRegistry, Pl as stackInstanceIdCarriedFrom, Pn as nameGenerationCarriedFrom, Po as malformedResourceEntriesWarning, Pr as deleteSupersededEntry, Pu as resolveUseCdkBootstrapAssets, Q as crossStackOutputProvenanceSource, Qa as cfnRefValueFromPhysicalId, Qc as splitGetAttStringForm, Qi as UNSPECIFIED_SKIP_REASON, Ql as parseBootstrapMarker, Qn as exportNameNoEchoParameters, Qo as refuseMalformedResourceEntriesForDestroy, Qr as orphanRecordsPrintingBag, Qu as describeJsonParseFailure, Ra as classifyRecordedSecretRegion, Rc as withPhysicalNameCopies, Rl as AssetPublisher, Rn as retiredNameGenerationsAfter, Ro as malformedStateRefusalMessage, Rr as supersededAfterRollback, Rt as getCurrentNestedStackContext, Ru as CFN_TEMPLATE_BODY_LIMIT, Sa as producerLookupOver, Sl as acceptedCreateOnlyDropsOf, Sn as resolveReplacementOldType, So as malformedExportSourceWarning, Ss as unwrittenCreateOnlyReplacement, St as planOrphanAdoption, Su as getDockerImageBySourceHash, Tc as hasMaskableValues, Tl as hasReadableExportSet, Tn as findNestedStackTypeChanges, To as malformedLocalResourcesWarning, Tr as withStackRecords, Ts as hasNoCloudControlHandlers, Tt as keptForRetainedRecord, Tu as getDefaultStateBucketName, Ua as isUnboundTemplateParameter, Uc as pathCrossesDottedKey, Ui as withPrintingSecrets, Ul as createAssetRedirectResolver, Un as reachableDivergentParameters, Uo as refuseMalformedOrphanRecordsForDestroy, Ur as noEchoAttributeNamesOf, Ut as isHandledOrphan, Uu as CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION, Va as regionLessSecretName, Vc as dynamicReferenceTokens, Vi as isCustomResourceType$1, Vl as WorkGraph, Vn as computeParameterTaint, Vr as supersededResourcesOf, Vt as dropFailedCommands, Vu as findLargeInlineResources, Wa as parameterTypeMayLoseSecretIdentity, Wc as spelledKeysOf, Wi as CUSTOM_RESOURCE_RESPONSE_LIFECYCLE_RULE_ID, Wl as loadPublishableAssetManifest, Wn as resourcesNamingDeclaredParameter, Wo as refuseMalformedOrphans, Wr as noEchoComparisonForTemplate, Wt as journaledOrphanLines, Wu as decodeListingKey, X as IMPLICIT_DELETE_DEPENDENCIES, Xa as keepsSecretReferenceToken, Xl as getBootstrapMarkerKey, Xn as secretSafeKeyDisplay, Xo as refuseMalformedResourceEntries, Xr as maskEventTextWithBoundBags, Xs as withRetry, Xu as StageLoadError, Ya as isNamelessDynamicReferenceError, Yc as physicalNameCopiesOf, Yl as ensureAssetStorage, Yn as secretBearingStateKeyWarning, Yo as refuseMalformedResourceAttributesForOrphan, Yr as journaledOrphanPrintingBag, Ys as describeTypeWithThrottleRetry, Yu as AssemblyReader, Z as computeImplicitDeleteEdges, Za as AWS_NO_VALUE, Zc as recordPhysicalNameCopy, Zi as RollbackInlinePolicyWriters, Zl as isCrossRegionRedirect, Zn as carriedExportAliasExposure, Zo as refuseMalformedResourceEntriesForDeploy, Zr as namingSecretsWithRecordedNoEcho, Zu as processStackMessages, _c as valueAtCoordinate, _i as withCreateTokenLedger, _l as isAccessDenied, _n as planFailedOps, _o as hasReadableResources, _r as isPairableType, _s as unreadableOrphanRecords, _t as isSecretBearingReferenceString, _u as redactedDockerCause, a as isProtectionValueActive, ac as isMarkedCoordinate, ad as ownValue, ai as ATOMIC_FINAL_SNAPSHOT_TYPES, al as recordProvenPublicExpression, an as updateRefactorMarker, ar as bindingSkippedOutputs, as as refuseMalformedResourcePropertiesForOrphan, at as isAbsoluteAssetPath, au as describeDockerCapturedOutput, bc as redactForState, bi as DeploymentEventsStore, bl as withStackInstanceIdWithheld, bn as recordUnderIdIsNotOwn, bo as malformedDriftResourcePropertiesWarning, br as parseMappingFile, bs as findActionableSilentDrops, bt as makeCanonicalizePropertiesFn, bu as warnFinchArgvExposure, cc as maskWholeValue, cd as displayAssemblyPath, ci as ccRoutedFinalSnapshotError, cl as isSingleDynamicReferenceToken, cn as pendingMovesRefusalMessage, co as STATE_REGION_DIVERGED, cr as maskingRetryLogger, cs as refuseMalformedResourcesForExport, ct as templateIdentity, cu as dockerSpawnEnvWithSensitive, da as DiffCalculator, dc as noEchoLeavesOf, dd as injectAwsRegion, di as isFinalSnapshotError, dl as S3StateBackend, dn as replayRollback, do as UNREADABLE_RESOURCES_MAP_ROW, dr as formatDestructiveChange, ds as repairMalformedOrphansForReadOnly, dt as parentSuppliedValues, du as getDockerCmd, ea as deleteLeftInPlace, ed as utf8ByteLength, ei as secretNamePrintingBags, el as provenPublicValue, en as readRefactorMarkerOnce, eo as lacksRecordedTableArn, er as isWholeDynamicReferenceValue, es as refuseMalformedResourceEntriesForImportSave, et as deferredServiceTokenWarning, eu as validateAssetBucketName, fa as INTRINSIC_KEYS, fc as noEchoOutputsComparison, fd as injectedAwsRegionValue, fi as refusesFinalSnapshot, fl as rebuildClientForBucketRegion, fn as removeProtectionTypeList, fo as accountArgs, fr as findRefactorHints, fs as repairMalformedOutputsForReadOnly, ft as readRecordedConditionVerdicts, fu as isDockerClientEnvKey, gc as recordedNoEchoValuesOf, gl as crossPrefixDeniedWarning, gn as isReplacementOrphan, go as hasReadableOutputs, gr as withMovedTo, gs as unpreviewableOrphanRecords, gt as diffSecurity, gu as redactedCause, hc as readsNoEchoSource, hi as ledgerForStack, hl as applyCrossPrefixScan, hn as isJournaledOrphan, ho as hasReadableOrphans, hr as rollbackOrphanIds, hs as repairMalformedResourcesForReadOnly, ht as withResourceDeadline, hu as redactDockerArgvValues, i as PROTECTION_PROPERTY_BY_TYPE, ic as canonicalCoordinates, id as nullPrototypeRecord, ii as storedSecretNameNeedles, il as recordNoEchoParameterFreshValue, in as sameMove, io as parameterInputsFor, ir as isExportAliasCollision, is as refuseMalformedResourcePropertiesForExport, it as findNestedTemplateTreeDefect, iu as resolveDockerContextDirectory, ja as explicitRoleArnOrThrow, jc as shareLogOnlyValues, jl as orphansAfterRollback, jo as malformedOutputsRefusalMessage, jr as red, js as renderStatefulReason, ju as resolveSkipPrefix, ka as assertFlagRoleArn, kc as recordLogOnlyParameterValue, kl as importableOutputs, ko as malformedOrphansRefusalMessage, kr as gray, ks as isStatefulRecreateTargetForReplace, kt as displacedPhysicalIdShown, ku as resolveAutoAssetStorage, lc as maskedLeafCoordinatesOf, ld as renderAssemblyPathEscape, li as createPreDeleteFinalSnapshot, ll as LockManager, ln as refusePendingMovesOut, lo as STATE_RESOURCES_MALFORMED, lr as constructPathOf$1, ls as refuseMalformedState, lt as conditionFingerprint, lu as finchSecretArgvRefusal, ma as poisonRenderedSpellingsCollidingIn, mc as readbackPathFor, md as resolveBucketRegion, ml as CrossPrefixScanCache, mn as demoteSupersededOrphans, mo as displayLogicalId, mr as movedToHint, ms as repairMalformedResourcePropertiesForReadOnly, mu as partitionSensitiveEnv, n as recordedProtectionEvidence, nc as DagBuilder, nd as hasOwnKey, ni as secretNamedRecordNeedles, nl as recordMaskOnlyValuesIn, nn as refactorMarkerRefusalMessage, nr as collectDeclaredOutputNames, ns as refuseMalformedResourcePropertiesForDestroy, nt as serviceTokenBlockingReason, nu as buildDenyExternalAccessPolicy, o as perType, oc as maskAtCoordinates, od as absoluteAssemblyPathEscape, oi as PRE_DELETE_SNAPSHOT_TYPES, ol as wholeStringLeavesOf, on as hasPendingMovesOut, oo as declaresNoEcho, or as DEFAULT_RESOURCE_TIMEOUT_MS, os as refuseMalformedResourcesForDeploy, ot as listNestedTemplateRows, ou as describeDockerExecFailure, pa as IntrinsicFunctionResolver, pi as unsupportedFinalSnapshotError, pl as CrossPrefixReadError, pn as recordAfterRollbackUpdate, po as deployRefusesOrphanRowsReason, pr as hintSidesOf, ps as repairMalformedResourceEntriesForReadOnly, pu as isMalformedEnvKey, qa as carriesDynamicReference, qc as recordNestedStackParameterExpressions, qi as CloudControlProvider, ql as BOOTSTRAP_MARKER_PREFIX, qn as exportAliasCollisionScrubWarning, qo as refuseMalformedOutputs, qr as createReadOnlyAttributeHealerFactory, qs as prefetchCreateOnlyPropertyPaths, qt as sameJournaledOrphans, qu as canonicalizeRegion, r as recordedProtectionNote, ra as isWaitAbandonedError, rc as TemplateParser, rd as hasPlainPrototype, ri as stateSecretNameNeedles, rl as recordNoEchoAttributeValues, rn as refuseRefactorMarker, ro as withSharedDrainBudget, rr as collectPublishedOutputNames, rs as refuseMalformedResourcePropertiesForDrift, rt as childTemplateLoader, ru as buildDockerImage, s as readProtection, sc as maskReadbackAtCoordinates, sd as describeFileReadFailure, si as buildFinalSnapshotIdentifier, sl as WHOLE_DYNAMIC_REFERENCE_PATTERN, sn as pendingMovesOutOf, so as JSON_LISTING_HOLE_VALUE, sr as DEFAULT_RESOURCE_WARN_AFTER_MS, ss as refuseMalformedResourcesForDestroy, st as renderNestedTemplateTreeDefect, su as describeDockerFailure, t as DeployEngine, ta as deleteSkipReason, td as defineOwnKey, tl as recordMaskOnlyValue, tn as refactorMarkerMovesOf, to as refStateLookupFromResource, tr as noEchoParameterValueSeed, ts as refuseMalformedResourceEntriesForOrphan, tt as findServiceTokenRefusals, tu as validateContainerRepoName, uc as noEchoCoordinatesOf, ud as resolveAssemblyPath, ui as effectiveDeletionPolicy, ul as isLockInfoExpired, un as replayFailedOperations, uo as UNREADABLE_ORPHANS_CONTAINER_ROW, ur as findDestructiveChanges, us as repairMalformedOrphanRecordsForReadOnly, ut as conditionInputsFrom, uu as formatDockerLoginError, vc as liveMatchesUnresolvedTokenFrame, vl as isNotImplemented, vn as planRollback, vo as isReadableOrphanRecord, vr as looselyEqual, vs as unreadableResourceEntries, vt as keptWholeReasonText, vu as runDockerForeground, wa as keepHeldTokenProvenance, wc as createUnionSecretMasker, wl as exportNamesCarriedFrom, wn as orphanNeedsIdentity, wo as malformedLocalResourceEntriesWarning, ws as NO_CC_HANDLERS_REASON, wt as resolvePendingCloudControlRequests, wu as synthesisStatusMessage, xa as resolveDynamicReferences, xi as extractDeploymentEventError, xl as splitImportedOps, xn as replacementNeverSwapped, xo as malformedExportNamesWarning, xr as proposeRenames, xt as makeSiblingClaimReader, xu as AssetManifestLoader, yi as DeploymentEventsReader, yl as stackInstanceIdOf, yn as recheckFailedPlan, yo as isReadableResourceEntry, yr as mappingPairs, ys as withheldAccountClause, yt as mergeNoChangeOutputs, yu as runDockerStreaming, za as classifyReplaySecretRegion, zi as TemplateNoEchoReresolver, zl as isSensitiveAttributeName, zn as retiredNameGenerationsLeaving, zo as previewableOrphanRecords, zr as supersededHeldByOtherTypeWarning, zt as withNestedStackContext, zu as CFN_TEMPLATE_URL_LIMIT } from "./deploy-engine-DSpxEUjC.js";
|
|
6
|
-
import { t as getCdkdVersion } from "./version-
|
|
5
|
+
import { $ as computeImplicitDeleteEdges, $a as coerceParameterTypedValue, $c as DYNAMIC_REFERENCE_TOKEN_SCAN, $i as applyCustomResourceResponseExpiration, $l as stringifyValue, $n as WITHHELD_NAME_DISPLAY, $o as refuseMalformedOrphanRecords, $r as noEchoExactEchoLeavesOf, $u as MIGRATE_TMP_PREFIX, Ac as valueAtCoordinate, Al as isAccessDenied, An as resolveReplacementOldType, Ao as isReadableResourceEntry, As as withheldAccountClause, At as displacedOpClause, Au as redactedDockerCause, Ba as assertFlagRoleArn, Bc as logOnlyValueCount, Bl as hasUnverifiableParameterRefusal, Bn as updatePartialMessage, Bo as malformedOrphansRefusalMessage, Br as yellow, Bs as isStatefulRecreateTargetForReplace, Bt as getCurrentNestedStackContext, Bu as loadCdkJson, Ca as withoutUnsettledProperties, Cc as noEchoCoordinatesOf, Cd as resolveAssemblyPath, Ci as ledgerForStack, Cl as isLockInfoExpired, Cn as isJournaledOrphan, Co as accountArgs, Cr as rollbackOrphanIds, Cs as repairMalformedOutputsForReadOnly, Ct as makeSiblingClaimReader, Cu as formatDockerLoginError, Dc as readbackPathFor, Dd as resolveBucketRegion, Di as DeploymentEventsReader, Dl as CrossPrefixScanCache, Dn as recheckFailedPlan, Do as hasReadableOutputs, Dr as mappingPairs, Ds as unpreviewableOrphanRecords, Dt as keptForRetainedRecord, Du as partitionSensitiveEnv, El as CrossPrefixReadError, En as planRollback, Eo as hasReadableOrphans, Er as looselyEqual, Es as repairMalformedResourcesForReadOnly, Et as resolvePendingCloudControlRequests, Eu as isMalformedEnvKey, Fa as keepHeldTokenProvenance, Fl as acceptedCreateOnlyDropsOf, Fn as inheritProducerRegions, Fo as malformedLocalResourceEntriesWarning, Fr as bold, Fs as NO_CC_HANDLERS_REASON, Ft as recordDisplacedSkips, Fu as getDockerImageBySourceHash, Ga as AWS_CREDENTIAL_ENV_KEYS, Gc as unionOfSecretBags, Gi as wouldReturnToSdkProvider, Gl as orphansCarriedFrom, Gn as retiredAfterRollback, Go as malformedResourceEntriesWarning, Gr as removeSuperseded, Gt as isHandledOrphan, Gu as resolveStateBucketWithDefault, Ha as explicitRoleArnOrThrow, Hc as recordLogOnlyParameterValue, Hi as ProviderRegistry, Hl as importableOutputs, Hn as nameGenerationCarriedFrom, Ho as malformedOutputsRefusalMessage, Hr as deleteSupersededEntry, Hs as renderStatefulReason, Ht as deleteJournaledOrphans, Hu as resolveAutoAssetStorage, Ic as carryLogOnlyValues, Il as describeRegionValueKind, Io as malformedLocalResourcesWarning, Ir as cyan, Is as hasNoCloudControlHandlers, Iu as Synthesizer, Ja as envCredentialsAreAssumedRole, Jc as maskSecretsInError, Ji as readsNoEchoDeleteValues, Jl as PhaseClock, Jn as withNameGenerationReached, Jo as malformedScrubResourceEntriesRefusalMessage, Jr as supersededHolderOf, Jt as makeForeignHolderScan, Ju as stateBucketExistenceConfirmed, Ka as applyCallerIdentityCredentials, Kc as createSecretMasker, Kl as shouldRetainResource, Kn as retiredNameGenerationsAfter, Ko as malformedResourcePropertiesWarning, Kr as supersededAfterRollback, Kt as journaledOrphanLines, Ku as resolveStateBucketWithDefaultAndSource, La as recordedOutputReferenceRegions, Lc as createUnionSecretMasker, Ll as exportNamesCarriedFrom, Lo as malformedOrphanRecordsRefusalMessage, Lr as gray, Ls as findReplacedReadersOfRecreateTargets, Lt as revertedNestedRowIds, Lu as synthesisStatusMessage, Ma as resolveDynamicReferences, Ml as stackInstanceIdOf, Mn as orphanNeedsIdentity, Mo as malformedExportNamesWarning, Mt as dropSettledNestedJournals, Mu as runDockerStreaming, Na as producerLookupOver, Nc as redactForState, Nl as withStackInstanceIdWithheld, Nn as findNestedStackTypeChanges, No as malformedExportSourceWarning, Nr as withStackRecords, Ns as unwrittenCreateOnlyReplacement, Nu as warnFinchArgvExposure, Oc as readsNoEchoSource, Oi as DeploymentEventsStore, Ol as applyCrossPrefixScan, On as recordUnderIdIsNotOwn, Oo as hasReadableResources, Or as parseMappingFile, Os as unreadableOrphanRecords, Ot as recordRetainedForReadoption, Ou as redactDockerArgvValues, Pa as refuseUnreadableCdkCrossAccountRefs, Pl as splitImportedOps, Po as malformedLocalOutputsWarning, Pt as nestedChildStackName$1, Pu as AssetManifestLoader, Q as IMPLICIT_DELETE_DEPENDENCIES, Qa as regionLessSecretName, Qi as CUSTOM_RESOURCE_RESPONSE_LIFECYCLE_RULE_ID, Ql as isSensitiveAttributeName, Qn as resourcesNamingDeclaredParameter, Qr as noEchoComparisonForTemplate, Qu as CFN_TEMPLATE_URL_LIMIT, Ra as recordedReferenceRegions, Rc as hasMaskableValues, Rl as hasReadableExportSet, Ro as malformedOrphanRecordsWarning, Rr as green, Rs as shownType, Rt as withNestedRevertRun, Ru as getDefaultStateBucketName, Sa as withUnsettledProperties, Sc as maskedLeafCoordinatesOf, Sd as renderAssemblyPathEscape, Sl as LockManager, Sn as demoteSupersededOrphans, So as UNREADABLE_RESOURCES_MAP_ROW, Sr as movedToHint, Ss as repairMalformedOrphansForReadOnly, St as makeCanonicalizePropertiesFn, Su as finchSecretArgvRefusal, Ta as poisonRenderedSpellingsCollidingIn, Tc as noEchoOutputsComparison, Td as injectedAwsRegionValue, Ti as withCreateTokenLedger, Tl as rebuildClientForBucketRegion, Tn as planFailedOps, To as displayLogicalId, Tr as isPairableType, Ts as repairMalformedResourcePropertiesForReadOnly, Tt as pendingRequestCount, Tu as isDockerClientEnvKey, Ua as isIamRoleArn, Uc as recordLogOnlyValue, Ui as ccBrokenReason, Ul as isReadableBag, Un as nameGenerationHighWaterOf, Uo as malformedOutputsWarning, Ur as holdsSupersededResources, Ut as dropFailedCommands, Uu as resolveCaptureObservedState, Va as assertSendableRoleArn, Vc as printingCorpusOf, Vi as CC_BROKEN_REASON, Vl as importableOutputKeys, Vn as updatePartialReason, Vo as malformedOrphansWarning, Vr as addSuperseded, Vs as isStatefulRecreateTargetSync, Vt as withNestedStackContext, Vu as resolveApp, Wa as sendableAssumeRoleCommand, Wc as shareLogOnlyValues, Wi as isCustomResource, Wl as orphansAfterRollback, Wn as nameScopeOf, Wo as malformedRenderedContainersWarning, Wr as isSupersededResourceRecord, Wt as dropFailedHint, Wu as resolveSkipPrefix, Xa as classifyReplaySecretRegion, Xc as scrubResourceRecord, Xl as timePhase, Xn as namesAnyDeclaredParameter, Xo as previewableOrphanRecords, Xr as withoutSuperseded, Xt as formatResourceLine, Xu as ssmResolvedValueType, Ya as classifyRecordedSecretRegion, Yc as maskSecretsInText, Yi as isCustomResourceType$1, Yl as renderPhaseTimings, Yn as computeParameterTaint, Yo as malformedStateRefusalMessage, Yr as supersededResourcesOf, Yt as sameJournaledOrphans, Yu as warnDeprecatedNoPrefixCliFlag, Za as producerRegionsFromState, Zc as withPhysicalNameCopies, Zi as withPrintingSecrets, Zl as AssetPublisher, Zn as reachableDivergentParameters, Zo as refuseDivergentRecordRegionForDestroy, Zr as noEchoAttributeNamesOf, Zu as CFN_TEMPLATE_BODY_LIMIT, _c as canonicalCoordinates, _d as nullPrototypeRecord, _i as createPreDeleteFinalSnapshot, _l as recordNoEchoParameterFreshValue, _n as withUnprovenUnsettled, _o as declaresNoEcho, _r as constructPathOf$1, _s as refuseMalformedResourcesForDeploy, _t as withResourceDeadline, _u as resolveDockerContextDirectory, a as isProtectionValueActive, aa as RollbackInlinePolicyWriters, ac as templateResourceTypes, ad as PARTITION_TABLE, ai as namingSecretsWithRecordedNoEcho, al as inheritNestedStackParameterAssociations, an as refuseRefactorMarker, ao as carriesFetchableDynamicReference, ar as carriedExportAliasExposure, as as refuseMalformedOutputsForDestroy, at as childTemplateLoader, au as AssetModeResolver, ba as INTRINSIC_KEYS, bc as maskReadbackAtCoordinates, bd as describeFileReadFailure, bi as refusesFinalSnapshot, bl as WHOLE_DYNAMIC_REFERENCE_PATTERN, bn as equalModuloMask, bo as STATE_RESOURCES_MALFORMED, br as findRefactorHints, bs as refuseMalformedState, bt as keptWholeReasonText, bu as describeDockerFailure, ca as deleteLeftInPlace, cd as AssemblyReader, ci as secretNamePrintingBags, cl as physicalNameCopiesOf, cn as hasPendingMovesOut, co as AWS_NO_VALUE, cr as isWholeDynamicReferenceValue, cs as refuseMalformedResourceEntriesForDeploy, ct as listNestedTemplateRows, cu as ensureAssetStorage, da as isWaitAbandonedError, dd as describeJsonParseFailure, di as stateSecretNameNeedles, dl as splitGetAttStringForm, dn as refusePendingMovesOut, do as lacksRecordedTableArn, dr as collectPublishedOutputNames, ds as refuseMalformedResourceEntriesForImportSave, dt as conditionFingerprint, du as parseBootstrapMarker, ea as customResourceResponseExpirationWarning, ed as findLargeInlineResources, ei as noEchoParameterNamesOf, el as dynamicReferenceTokens, eo as isUnboundTemplateParameter, er as displayTextOrWithheld, es as refuseMalformedOrphanRecordsForDestroy, et as crossStackOutputProvenanceSource, eu as WorkGraph, fd as parseFailureDebugDetail, fi as storedSecretNameNeedles, fl as carriesSecretMask, fn as replayFailedOperations, fo as refStateLookupFromResource, fr as isExportAliasCollision, fs as refuseMalformedResourceEntriesForOrphan, ft as conditionInputsFrom, fu as readBootstrapMarkerBody, gc as TemplateParser, gd as hasPlainPrototype, gi as ccRoutedFinalSnapshotError, gl as recordNoEchoAttributeValues, gn as settleUnsettledPrevious, gr as maskingRetryLogger, gs as refuseMalformedResourcePropertiesForOrphan, gu as buildDockerImage, hc as DagBuilder, hd as hasOwnKey, hi as buildFinalSnapshotIdentifier, hl as recordMaskOnlyValuesIn, hn as recordAfterRollbackUpdate, ho as parameterInputsFor, hr as DEFAULT_RESOURCE_WARN_AFTER_MS, hs as refuseMalformedResourcePropertiesForExport, hu as buildDenyExternalAccessPolicy, i as PROTECTION_PROPERTY_BY_TYPE, ic as prefetchCreateOnlyPropertyPaths, id as expectedOwnerParam, ii as maskEventTextWithBoundBags, il as identityKeyFor, in as refactorMarkerRefusalMessage, io as carriesDynamicReference, ir as secretSafeKeyDisplay, is as refuseMalformedOutputs, it as serviceTokenBlockingReason, iu as rewriteTemplateAssetReferences, jc as liveMatchesUnresolvedTokenFrame, jl as isNotImplemented, jn as seedsDeleteFirstGuard, jo as malformedDriftResourcePropertiesWarning, jr as destroyStackRecordsView, js as findActionableSilentDrops, jt as displacedPhysicalIdShown, ju as runDockerForeground, kc as recordedNoEchoValuesOf, ki as extractDeploymentEventError, kl as crossPrefixDeniedWarning, kn as replacementNeverSwapped, ko as isReadableOrphanRecord, kr as proposeRenames, ks as unreadableResourceEntries, kt as NESTED_PENDING_PARENT_REASON, ku as redactedCause, la as deleteSkipReason, ld as StageLoadError, ln as pendingMovesOutOf, lo as cfnRefValueFromPhysicalId, lr as noEchoParameterValueSeed, ls as refuseMalformedResourceEntriesForDestroy, lt as renderNestedTemplateTreeDefect, lu as getBootstrapMarkerKey, md as defineOwnKey, mi as PRE_DELETE_SNAPSHOT_TYPES, ml as recordMaskOnlyValue, mn as removeProtectionTypeList, mo as withSharedDrainBudget, mr as DEFAULT_RESOURCE_TIMEOUT_MS, ms as refuseMalformedResourcePropertiesForDrift, mt as readRecordedConditionVerdicts, mu as validateContainerRepoName, n as recordedProtectionEvidence, na as slowCcOperationTimeoutMs, nd as CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION, ni as completedReplayEntries, nl as pathCrossesDottedKey, nn as readRefactorMarkerOnce, no as getAccountInfo, nr as secretBearing, ns as refuseMalformedOrphansForDestroy, nt as deferredServiceTokenWarning, nu as createAssetRedirectResolver, o as perType, oa as UNSPECIFIED_SKIP_REASON, oc as describeTypeWithThrottleRetry, od as canonicalizeRegion, oi as orphanRecordsPrintingBag, ol as recordNestedStackParameterExpressions, on as sameMove, oo as isNamelessDynamicReferenceError, or as exportNameNoEchoParameters, os as refuseMalformedResourceAttributesForOrphan, ot as findNestedTemplateTreeDefect, ou as BOOTSTRAP_MARKER_PREFIX, pd as utf8ByteLength, pi as ATOMIC_FINAL_SNAPSHOT_TYPES, pl as provenPublicValue, pn as replayRollback, pr as bindingSkippedOutputs, ps as refuseMalformedResourcePropertiesForDestroy, pt as parentSuppliedValues, pu as validateAssetBucketName, qa as callerEnvCredentials, qc as errorCauseChain, qi as TemplateNoEchoReresolver, ql as stackInstanceIdCarriedFrom, qn as retiredNameGenerationsLeaving, qo as malformedResourcesWarning, qr as supersededHeldByOtherTypeWarning, qt as loadJournaledOrphans, qu as resolveUseCdkBootstrapAssets, r as recordedProtectionNote, rd as decodeListingKey, ri as journaledOrphanPrintingBag, rl as spelledKeysOf, rn as refactorMarkerMovesOf, ro as isImpossibleEmptyStoredAttribute, rr as secretBearingStateKeyWarning, rs as refuseMalformedOrphansForOrphan, rt as findServiceTokenRefusals, ru as loadPublishableAssetManifest, s as readProtection, sa as deleteIndeterminateGuards, sc as withRetry, sd as derivePartitionAndUrlSuffix, si as secretNamePrintingBag, sn as updateRefactorMarker, so as keepsSecretReferenceToken, sr as exportNameSecretExposure, ss as refuseMalformedResourceEntries, st as isAbsoluteAssetPath, su as assertAssetBucketRegion, t as DeployEngine, ta as CloudControlProvider, td as uploadCfnTemplate, ti as createReadOnlyAttributeHealerFactory, tl as isUncertifiedBaselineMaskPosition, tn as readRefactorMarker, to as parameterTypeMayLoseSecretIdentity, tr as exportAliasCollisionScrubWarning, ts as refuseMalformedOrphans, tt as inheritedProvenanceForChildDiff, tu as buildAssetRedirectMap, ud as processStackMessages, ui as secretNamedRecordNeedles, ul as recordPhysicalNameCopy, un as pendingMovesRefusalMessage, uo as isStalePlaceholderArnAttribute, ur as collectDeclaredOutputNames, us as refuseMalformedResourceEntriesForImport, ut as templateIdentity, uu as isCrossRegionRedirect, vc as isMarkedCoordinate, vd as ownValue, vi as effectiveDeletionPolicy, vl as recordProvenPublicExpression, vn as calculateResourceDrift, vo as JSON_LISTING_HOLE_VALUE, vr as findDestructiveChanges, vs as refuseMalformedResourcesForDestroy, vt as diffSecurity, vu as describeDockerCapturedOutput, wa as IntrinsicFunctionResolver, wc as noEchoLeavesOf, wd as injectAwsRegion, wl as S3StateBackend, wn as isReplacementOrphan, wo as deployRefusesOrphanRowsReason, wr as withMovedTo, ws as repairMalformedResourceEntriesForReadOnly, wt as planOrphanAdoption, wu as getDockerCmd, xa as unsettledPropertiesOf, xc as maskWholeValue, xd as displayAssemblyPath, xi as unsupportedFinalSnapshotError, xl as isSingleDynamicReferenceToken, xn as undeclaredEmptyObservedKeys, xo as UNREADABLE_ORPHANS_CONTAINER_ROW, xr as hintSidesOf, xs as repairMalformedOrphanRecordsForReadOnly, xt as mergeNoChangeOutputs, xu as dockerSpawnEnvWithSensitive, ya as DiffCalculator, yc as maskAtCoordinates, yd as absoluteAssemblyPathEscape, yi as isFinalSnapshotError, yl as wholeStringLeavesOf, yn as equalModuloMarkedMask, yo as STATE_REGION_DIVERGED, yr as formatDestructiveChange, ys as refuseMalformedResourcesForExport, yt as isSecretBearingReferenceString, yu as describeDockerExecFailure, za as applyRoleArnIfSet, zc as literalSplitDelimitersOf, zl as hasReasonlessBaselineRefusal, zo as malformedOrphanRowsKeptWarning, zr as red, zs as MULTI_REGION_RECREATE_BLOCKED_TYPES, zt as collectNestedChildUnaddressed, zu as getLegacyStateBucketName } from "./deploy-engine-tQ0aqZMo.js";
|
|
6
|
+
import { t as getCdkdVersion } from "./version-9LVuCtBU.js";
|
|
7
7
|
import { randomBytes, randomUUID } from "node:crypto";
|
|
8
8
|
import { CopyObjectCommand, CreateBucketCommand, DeleteBucketCommand, DeleteObjectsCommand, GetBucketLocationCommand, GetObjectCommand, HeadBucketCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchBucket, NotFound, PutBucketEncryptionCommand, PutBucketPolicyCommand, PutBucketVersioningCommand, PutObjectCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
|
|
9
9
|
import { GetRoleCommand, GetUserCommand } from "@aws-sdk/client-iam";
|
|
@@ -2710,7 +2710,7 @@ function collectCrossStackRefs(node, onRef, unconditional) {
|
|
|
2710
2710
|
//#region src/provisioning/register-providers.ts
|
|
2711
2711
|
let providerClasses;
|
|
2712
2712
|
function loadProviderClasses() {
|
|
2713
|
-
providerClasses ??= import("./provider-classes-
|
|
2713
|
+
providerClasses ??= import("./provider-classes-DYke4HKr.js");
|
|
2714
2714
|
return providerClasses;
|
|
2715
2715
|
}
|
|
2716
2716
|
function registerAllProviders(registry, classes) {
|
|
@@ -3557,7 +3557,7 @@ Force-quit: stack locks may not be released. If the next run reports a lock, run
|
|
|
3557
3557
|
const syncValidation = validateRecreateTargets({
|
|
3558
3558
|
template: stackInfo.template,
|
|
3559
3559
|
state: stateForRecreateCheck?.state ?? {
|
|
3560
|
-
version:
|
|
3560
|
+
version: 14,
|
|
3561
3561
|
stackName: stackInfo.stackName,
|
|
3562
3562
|
region: stackRegion,
|
|
3563
3563
|
resources: {},
|
|
@@ -3592,7 +3592,7 @@ Force-quit: stack locks may not be released. If the next run reports a lock, run
|
|
|
3592
3592
|
const replacedReaders = await findReplacedReadersOfRecreateTargets({
|
|
3593
3593
|
template: stackInfo.template,
|
|
3594
3594
|
state: stateForRecreateCheck?.state ?? {
|
|
3595
|
-
version:
|
|
3595
|
+
version: 14,
|
|
3596
3596
|
stackName: stackInfo.stackName,
|
|
3597
3597
|
region: stackRegion,
|
|
3598
3598
|
resources: {},
|
|
@@ -5001,7 +5001,7 @@ async function loadStateOrEmpty(stackName, region, stateBackend, refusalRecovery
|
|
|
5001
5001
|
region,
|
|
5002
5002
|
resources: {},
|
|
5003
5003
|
outputs: {},
|
|
5004
|
-
version:
|
|
5004
|
+
version: 14,
|
|
5005
5005
|
lastModified: Date.now()
|
|
5006
5006
|
},
|
|
5007
5007
|
unreadable: [],
|
|
@@ -6146,7 +6146,7 @@ function renderChangeLines(changes, logFn, ccApiRoutes, adoptedOrphans, refactor
|
|
|
6146
6146
|
logFn(` [~] ${logicalId} (${change.resourceType})${annotateAdoption(logicalId)}${annotateRouting(logicalId)}`);
|
|
6147
6147
|
if (change.propertyChanges && change.propertyChanges.length > 0) for (const propChange of change.propertyChanges) {
|
|
6148
6148
|
const requiresReplace = propChange.requiresReplacement && (propChange.inPlacePropagated === true || propChange.replacementPropagated === true) ? " [may require replacement]" : propChange.requiresReplacement ? " [requires replacement]" : "";
|
|
6149
|
-
const propagated = propChange.replacementPropagated ? " [replacement propagated]" : propChange.readProvenancePromoted === true ? " [read value moved upstream]" : propChange.inPlacePropagated ? " [attribute propagated]" : propChange.maskedExpressionChanged === true ? " [masked input or expression changed]" : "";
|
|
6149
|
+
const propagated = propChange.replacementPropagated ? " [replacement propagated]" : propChange.readProvenancePromoted === true ? " [read value moved upstream]" : propChange.inPlacePropagated ? " [attribute propagated]" : propChange.maskedExpressionChanged === true ? " [masked input or expression changed]" : propChange.unsettled === true ? " [unsettled after a failed update; sent again]" : "";
|
|
6150
6150
|
const indent = " ";
|
|
6151
6151
|
const [oldFiltered, newFiltered] = stripUnchangedValuePair(propChange.oldValue, propChange.newValue);
|
|
6152
6152
|
const oldStr = renderDiffValue(propChange.oldValue, oldFiltered, indent, false);
|
|
@@ -9071,244 +9071,6 @@ function copiesOfParentRow(bag) {
|
|
|
9071
9071
|
return copies === void 0 || copies.size === 0 ? {} : { inheritedPhysicalNameCopies: copies };
|
|
9072
9072
|
}
|
|
9073
9073
|
|
|
9074
|
-
//#endregion
|
|
9075
|
-
//#region src/analyzer/drift-normalize.ts
|
|
9076
|
-
function canonicalizeTagListsDeep(v) {
|
|
9077
|
-
if (Array.isArray(v)) {
|
|
9078
|
-
const mapped = v.map(canonicalizeTagListsDeep);
|
|
9079
|
-
if (mapped.length > 0 && mapped.every((t) => t && typeof t === "object" && typeof t.Key === "string")) return [...mapped].sort((a, b) => {
|
|
9080
|
-
const ka = a.Key;
|
|
9081
|
-
const kb = b.Key;
|
|
9082
|
-
if (ka !== kb) return ka < kb ? -1 : 1;
|
|
9083
|
-
return JSON.stringify(a) < JSON.stringify(b) ? -1 : 1;
|
|
9084
|
-
});
|
|
9085
|
-
return mapped;
|
|
9086
|
-
}
|
|
9087
|
-
if (v && typeof v === "object") {
|
|
9088
|
-
if (!hasPlainPrototype(v)) return v;
|
|
9089
|
-
const out = nullPrototypeRecord();
|
|
9090
|
-
for (const [k, val] of Object.entries(v)) out[k] = canonicalizeTagListsDeep(val);
|
|
9091
|
-
return out;
|
|
9092
|
-
}
|
|
9093
|
-
return v;
|
|
9094
|
-
}
|
|
9095
|
-
const ID_RE = /^[a-z][a-z0-9]*-[0-9a-f]{6,}$/;
|
|
9096
|
-
const isIdLike = (s) => typeof s === "string" && (s.startsWith("arn:") || ID_RE.test(s));
|
|
9097
|
-
function canonicalizeIdArraysDeep(v) {
|
|
9098
|
-
if (Array.isArray(v)) {
|
|
9099
|
-
const mapped = v.map(canonicalizeIdArraysDeep);
|
|
9100
|
-
if (mapped.length > 1 && mapped.every(isIdLike)) return [...mapped].sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
|
|
9101
|
-
return mapped;
|
|
9102
|
-
}
|
|
9103
|
-
if (v && typeof v === "object") {
|
|
9104
|
-
if (!hasPlainPrototype(v)) return v;
|
|
9105
|
-
const out = nullPrototypeRecord();
|
|
9106
|
-
for (const [k, val] of Object.entries(v)) out[k] = canonicalizeIdArraysDeep(val);
|
|
9107
|
-
return out;
|
|
9108
|
-
}
|
|
9109
|
-
return v;
|
|
9110
|
-
}
|
|
9111
|
-
const LEAF_ONLY_PATH_SUFFIX = "[]";
|
|
9112
|
-
function matchesPathPrefix(path, entries) {
|
|
9113
|
-
for (const entry of entries) {
|
|
9114
|
-
if (entry.endsWith("[]")) {
|
|
9115
|
-
const leaf = entry.slice(0, -2);
|
|
9116
|
-
if (leaf !== "" && path === leaf) return true;
|
|
9117
|
-
continue;
|
|
9118
|
-
}
|
|
9119
|
-
if (path === entry) return true;
|
|
9120
|
-
if (path.startsWith(`${entry}.`)) return true;
|
|
9121
|
-
}
|
|
9122
|
-
return false;
|
|
9123
|
-
}
|
|
9124
|
-
function canonicalizeUnorderedArraysAtPaths(v, paths) {
|
|
9125
|
-
if (paths.length === 0) return v;
|
|
9126
|
-
return walkUnordered(v, "", paths);
|
|
9127
|
-
}
|
|
9128
|
-
function canonicalJson(v) {
|
|
9129
|
-
if (Array.isArray(v)) return `[${v.map(canonicalJson).join(",")}]`;
|
|
9130
|
-
if (v && typeof v === "object") {
|
|
9131
|
-
const bag = v;
|
|
9132
|
-
return `{${Object.keys(bag).filter((k) => bag[k] !== void 0).sort().map((k) => `${JSON.stringify(k)}:${canonicalJson(bag[k])}`).join(",")}}`;
|
|
9133
|
-
}
|
|
9134
|
-
return JSON.stringify(v) ?? "null";
|
|
9135
|
-
}
|
|
9136
|
-
const isPlainObjectElement = (el) => el !== null && typeof el === "object" && !Array.isArray(el);
|
|
9137
|
-
function walkUnordered(v, path, paths) {
|
|
9138
|
-
if (Array.isArray(v)) {
|
|
9139
|
-
const mapped = v.map((el) => Array.isArray(el) ? el : walkUnordered(el, path, paths));
|
|
9140
|
-
if (mapped.length > 1 && matchesPathPrefix(path, paths)) {
|
|
9141
|
-
if (mapped.every((el) => typeof el === "string")) return [...mapped].sort((a, b) => a < b ? -1 : a > b ? 1 : 0);
|
|
9142
|
-
if (mapped.every(isPlainObjectElement)) {
|
|
9143
|
-
const keyed = mapped.map((el) => ({
|
|
9144
|
-
el,
|
|
9145
|
-
key: canonicalJson(el)
|
|
9146
|
-
}));
|
|
9147
|
-
keyed.sort((a, b) => a.key < b.key ? -1 : a.key > b.key ? 1 : 0);
|
|
9148
|
-
return keyed.map((k) => k.el);
|
|
9149
|
-
}
|
|
9150
|
-
}
|
|
9151
|
-
return mapped;
|
|
9152
|
-
}
|
|
9153
|
-
if (v && typeof v === "object") {
|
|
9154
|
-
if (!hasPlainPrototype(v)) return v;
|
|
9155
|
-
const out = nullPrototypeRecord();
|
|
9156
|
-
for (const [k, val] of Object.entries(v)) out[k] = walkUnordered(val, path === "" ? k : `${path}.${k}`, paths);
|
|
9157
|
-
return out;
|
|
9158
|
-
}
|
|
9159
|
-
return v;
|
|
9160
|
-
}
|
|
9161
|
-
|
|
9162
|
-
//#endregion
|
|
9163
|
-
//#region src/analyzer/drift-calculator.ts
|
|
9164
|
-
function calculateResourceDrift(stateProperties, awsProperties, options) {
|
|
9165
|
-
const drifts = [];
|
|
9166
|
-
const ignore = options?.ignorePaths ?? [];
|
|
9167
|
-
const union = options?.unionWalkObjects ?? false;
|
|
9168
|
-
const unordered = options?.unorderedPaths ?? [];
|
|
9169
|
-
stateProperties = canonicalizeUnorderedArraysAtPaths(canonicalizeIdArraysDeep(canonicalizeTagListsDeep(stateProperties)), unordered);
|
|
9170
|
-
awsProperties = canonicalizeUnorderedArraysAtPaths(canonicalizeIdArraysDeep(canonicalizeTagListsDeep(awsProperties)), unordered);
|
|
9171
|
-
for (const key of Object.keys(stateProperties)) {
|
|
9172
|
-
if (isIgnoredPath(key, ignore)) continue;
|
|
9173
|
-
diffAt(key, stateProperties[key], awsProperties[key], drifts, ignore, union);
|
|
9174
|
-
}
|
|
9175
|
-
return drifts;
|
|
9176
|
-
}
|
|
9177
|
-
function undeclaredEmptyObservedKeys(observed, declared) {
|
|
9178
|
-
const keys = [];
|
|
9179
|
-
for (const key of Object.keys(observed)) {
|
|
9180
|
-
if (Object.hasOwn(declared, key)) continue;
|
|
9181
|
-
const value = observed[key];
|
|
9182
|
-
if (value === null || value === void 0 || Array.isArray(value) && value.length === 0 || isPlainObject(value) && Object.keys(value).length === 0) keys.push(key);
|
|
9183
|
-
}
|
|
9184
|
-
return keys;
|
|
9185
|
-
}
|
|
9186
|
-
function isIgnoredPath(path, ignorePaths) {
|
|
9187
|
-
return matchesPathPrefix(path, ignorePaths);
|
|
9188
|
-
}
|
|
9189
|
-
function diffAt(path, stateValue, awsValue, out, ignorePaths, unionWalkObjects) {
|
|
9190
|
-
const stateForm = jsonForm(stateValue);
|
|
9191
|
-
const awsForm = jsonForm(awsValue);
|
|
9192
|
-
if (deepEqual(stateForm, awsForm)) return;
|
|
9193
|
-
if (typeof stateValue === "string" && stateValue.includes("{{resolve:")) return;
|
|
9194
|
-
if (isPlainObject(stateForm) && isPlainObject(awsForm) && !Array.isArray(stateForm) && !Array.isArray(awsForm)) {
|
|
9195
|
-
const keys = unionWalkObjects ? /* @__PURE__ */ new Set([...Object.keys(stateForm), ...Object.keys(awsForm)]) : Object.keys(stateForm);
|
|
9196
|
-
for (const key of keys) {
|
|
9197
|
-
const childPath = `${path}.${key}`;
|
|
9198
|
-
if (isIgnoredPath(childPath, ignorePaths)) continue;
|
|
9199
|
-
diffAt(childPath, stateForm[key], awsForm[key], out, ignorePaths, unionWalkObjects);
|
|
9200
|
-
}
|
|
9201
|
-
return;
|
|
9202
|
-
}
|
|
9203
|
-
out.push({
|
|
9204
|
-
path,
|
|
9205
|
-
stateValue,
|
|
9206
|
-
awsValue
|
|
9207
|
-
});
|
|
9208
|
-
}
|
|
9209
|
-
function jsonForm(value) {
|
|
9210
|
-
if (value === null || typeof value !== "object" || hasPlainPrototype(value)) return value;
|
|
9211
|
-
const toJSON = value.toJSON;
|
|
9212
|
-
return typeof toJSON === "function" ? toJSON.call(value) : value;
|
|
9213
|
-
}
|
|
9214
|
-
function deepEqual(a, b) {
|
|
9215
|
-
a = jsonForm(a);
|
|
9216
|
-
b = jsonForm(b);
|
|
9217
|
-
if (a === b) return true;
|
|
9218
|
-
if (a === null || b === null || a === void 0 || b === void 0) return a === b;
|
|
9219
|
-
if (typeof a !== typeof b) return false;
|
|
9220
|
-
if (typeof a !== "object") return false;
|
|
9221
|
-
if (Array.isArray(a) || Array.isArray(b)) {
|
|
9222
|
-
if (!Array.isArray(a) || !Array.isArray(b)) return false;
|
|
9223
|
-
if (a.length !== b.length) return false;
|
|
9224
|
-
return a.every((v, i) => deepEqual(v, b[i]));
|
|
9225
|
-
}
|
|
9226
|
-
const aObj = a;
|
|
9227
|
-
const bObj = b;
|
|
9228
|
-
const aKeys = Object.keys(aObj);
|
|
9229
|
-
const bKeys = Object.keys(bObj);
|
|
9230
|
-
if (aKeys.length !== bKeys.length) return false;
|
|
9231
|
-
for (const key of aKeys) {
|
|
9232
|
-
if (!Object.prototype.hasOwnProperty.call(bObj, key)) return false;
|
|
9233
|
-
if (!deepEqual(aObj[key], bObj[key])) return false;
|
|
9234
|
-
}
|
|
9235
|
-
return true;
|
|
9236
|
-
}
|
|
9237
|
-
function equalModuloMask(state, aws, mask) {
|
|
9238
|
-
const a = jsonForm(state);
|
|
9239
|
-
const b = jsonForm(aws);
|
|
9240
|
-
if (a === mask && b !== null && b !== void 0) return true;
|
|
9241
|
-
if (a === b) return true;
|
|
9242
|
-
if (a === null || b === null || a === void 0 || b === void 0) return a === b;
|
|
9243
|
-
if (typeof a !== typeof b || typeof a !== "object") return false;
|
|
9244
|
-
if (Array.isArray(a) || Array.isArray(b)) {
|
|
9245
|
-
if (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length) return false;
|
|
9246
|
-
return a.every((v, i) => equalModuloMask(v, b[i], mask));
|
|
9247
|
-
}
|
|
9248
|
-
const aObj = a;
|
|
9249
|
-
const bObj = b;
|
|
9250
|
-
const aKeys = Object.keys(aObj);
|
|
9251
|
-
if (aKeys.length !== Object.keys(bObj).length) return false;
|
|
9252
|
-
return aKeys.every((key) => Object.prototype.hasOwnProperty.call(bObj, key) && equalModuloMask(aObj[key], bObj[key], mask));
|
|
9253
|
-
}
|
|
9254
|
-
function equalModuloMarkedMask(state, aws, mask, coordinate, isMarked, isWithinMarked = isMarked) {
|
|
9255
|
-
const a = jsonForm(state);
|
|
9256
|
-
const b = jsonForm(aws);
|
|
9257
|
-
if (isMarked(coordinate) && b !== void 0 && b !== null) {
|
|
9258
|
-
if (a === mask) return true;
|
|
9259
|
-
if (isWithinMarked(coordinate) ? isWhollyMask(a, mask) : sameJson(a, wholeMaskOf(b, mask))) return holdsMask(a, mask);
|
|
9260
|
-
}
|
|
9261
|
-
if (a === mask && (typeof b === "string" || typeof b === "number" || typeof b === "boolean")) return true;
|
|
9262
|
-
if (a === b) return true;
|
|
9263
|
-
if (a === null || b === null || a === void 0 || b === void 0) return a === b;
|
|
9264
|
-
if (typeof a !== typeof b || typeof a !== "object") return false;
|
|
9265
|
-
if (Array.isArray(a) || Array.isArray(b)) {
|
|
9266
|
-
if (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length) return false;
|
|
9267
|
-
return a.every((v, i) => equalModuloMarkedMask(v, b[i], mask, [...coordinate, i], isMarked, isWithinMarked));
|
|
9268
|
-
}
|
|
9269
|
-
const aObj = a;
|
|
9270
|
-
const bObj = b;
|
|
9271
|
-
const aKeys = Object.keys(aObj);
|
|
9272
|
-
if (aKeys.length !== Object.keys(bObj).length) return false;
|
|
9273
|
-
return aKeys.every((key) => Object.prototype.hasOwnProperty.call(bObj, key) && equalModuloMarkedMask(aObj[key], bObj[key], mask, [...coordinate, key], isMarked, isWithinMarked));
|
|
9274
|
-
}
|
|
9275
|
-
function wholeMaskOf(value, mask) {
|
|
9276
|
-
if (value === null || value === void 0) return value;
|
|
9277
|
-
if (Array.isArray(value)) return value.map((v) => wholeMaskOf(v, mask));
|
|
9278
|
-
if (isPlainObject(value)) return Object.fromEntries(Object.entries(value).map(([k, v]) => [k, wholeMaskOf(v, mask)]));
|
|
9279
|
-
return mask;
|
|
9280
|
-
}
|
|
9281
|
-
function isWhollyMask(value, mask) {
|
|
9282
|
-
const walk = (node) => {
|
|
9283
|
-
if (node === mask || node === null) return true;
|
|
9284
|
-
if (Array.isArray(node)) return node.every(walk);
|
|
9285
|
-
if (isPlainObject(node)) return Object.values(node).every(walk);
|
|
9286
|
-
return false;
|
|
9287
|
-
};
|
|
9288
|
-
return walk(value) && holdsMask(value, mask);
|
|
9289
|
-
}
|
|
9290
|
-
function holdsMask(value, mask) {
|
|
9291
|
-
if (value === mask) return true;
|
|
9292
|
-
if (Array.isArray(value)) return value.some((v) => holdsMask(v, mask));
|
|
9293
|
-
if (isPlainObject(value)) return Object.values(value).some((v) => holdsMask(v, mask));
|
|
9294
|
-
return false;
|
|
9295
|
-
}
|
|
9296
|
-
function sameJson(a, b) {
|
|
9297
|
-
if (a === b) return true;
|
|
9298
|
-
if (a === null || b === null || typeof a !== "object" || typeof b !== "object") return false;
|
|
9299
|
-
if (Array.isArray(a) || Array.isArray(b)) {
|
|
9300
|
-
if (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length) return false;
|
|
9301
|
-
return a.every((v, i) => sameJson(v, b[i]));
|
|
9302
|
-
}
|
|
9303
|
-
const aObj = a;
|
|
9304
|
-
const bObj = b;
|
|
9305
|
-
const keys = Object.keys(aObj);
|
|
9306
|
-
return keys.length === Object.keys(bObj).length && keys.every((k) => Object.prototype.hasOwnProperty.call(bObj, k) && sameJson(aObj[k], bObj[k]));
|
|
9307
|
-
}
|
|
9308
|
-
function isPlainObject(value) {
|
|
9309
|
-
return typeof value === "object" && value !== null;
|
|
9310
|
-
}
|
|
9311
|
-
|
|
9312
9074
|
//#endregion
|
|
9313
9075
|
//#region src/analyzer/drift-principal-normalize.ts
|
|
9314
9076
|
const PRINCIPAL_UNIQUE_ID_RE = /^A(?:ROA|IDA)[A-Z0-9]{6,}$/;
|
|
@@ -9832,7 +9594,7 @@ async function driftCommand(stacks, options) {
|
|
|
9832
9594
|
return;
|
|
9833
9595
|
}
|
|
9834
9596
|
let outcome;
|
|
9835
|
-
if (options.accept) outcome = await runAccept(reports, stateBackend, stateConfig, awsClients, options);
|
|
9597
|
+
if (options.accept) outcome = await runAccept(reports, stackRegionScope, stateBackend, stateConfig, awsClients, options);
|
|
9836
9598
|
else try {
|
|
9837
9599
|
outcome = await runRevert(reports, stackRegionScope, stateBackend, stateConfig, awsClients, options);
|
|
9838
9600
|
} catch (err) {
|
|
@@ -10529,7 +10291,8 @@ async function runDriftForStack(stackName, region, stateBackend, providerRegistr
|
|
|
10529
10291
|
} : protocolNormalized;
|
|
10530
10292
|
const paired = provider.canonicalizeDriftPair ? await provider.canonicalizeDriftPair(resource.resourceType, canonicalized.baseline, canonicalized.aws, resource.properties ?? {}) : canonicalized;
|
|
10531
10293
|
const nameBaseline = canonicalizeDerivedPatternBName(resource.resourceType, paired.baseline, paired.aws);
|
|
10532
|
-
const
|
|
10294
|
+
const comparedBaseline = useObserved ? withAbsentDefaultKeys(nameBaseline, paired.aws, driftAbsentMeansDefaultKeys(provider, resource.resourceType, resource.properties)) : nameBaseline;
|
|
10295
|
+
const noEchoPartitioned = partitionNoEchoParameterChanges(calculateResourceDrift(comparedBaseline, paired.aws, {
|
|
10533
10296
|
ignorePaths: observedIgnorePaths.length ? [...ignorePaths, ...observedIgnorePaths] : ignorePaths,
|
|
10534
10297
|
unionWalkObjects: useObserved,
|
|
10535
10298
|
unorderedPaths
|
|
@@ -10684,7 +10447,7 @@ function setAtPath(target, path, value) {
|
|
|
10684
10447
|
}
|
|
10685
10448
|
defineOwnKey(cursor, segments[segments.length - 1], value);
|
|
10686
10449
|
}
|
|
10687
|
-
async function runAccept(reports, stateBackend, stateConfig, awsClients, options) {
|
|
10450
|
+
async function runAccept(reports, regionScope, stateBackend, stateConfig, awsClients, options) {
|
|
10688
10451
|
const logger = getLogger();
|
|
10689
10452
|
const out = humanTextSink(options.json);
|
|
10690
10453
|
const lockRecovery = {
|
|
@@ -10760,11 +10523,15 @@ async function runAccept(reports, stateBackend, stateConfig, awsClients, options
|
|
|
10760
10523
|
}
|
|
10761
10524
|
if (recordedChanges > 0) acceptedResourceCount++;
|
|
10762
10525
|
const written = maskMarkedNoEchoBaselineWithLeaves(redactedBaseline, existing, hasObserved);
|
|
10526
|
+
const settled = await settleUnsettled(existing, outcome.logicalId, () => regionScope(report.region).registry.getProviderFor({
|
|
10527
|
+
resourceType: outcome.resourceType,
|
|
10528
|
+
provisionedBy: existing.provisionedBy
|
|
10529
|
+
}).provider);
|
|
10763
10530
|
resources[outcome.logicalId] = hasObserved ? {
|
|
10764
|
-
...
|
|
10531
|
+
...settled,
|
|
10765
10532
|
observedProperties: written.baseline
|
|
10766
10533
|
} : {
|
|
10767
|
-
...
|
|
10534
|
+
...settled,
|
|
10768
10535
|
properties: written.baseline,
|
|
10769
10536
|
...written.noEchoLeaves !== void 0 && { noEchoLeaves: written.noEchoLeaves }
|
|
10770
10537
|
};
|
|
@@ -11144,6 +10911,7 @@ function preserveLiveValuesAtMaskedLeaves(send, awsProperties, secrets, corrobor
|
|
|
11144
10911
|
}
|
|
11145
10912
|
function buildRevertNewProperties(drifts, desiredProperties, awsProperties, options = {}) {
|
|
11146
10913
|
const preserveUntemplated = options.preserveUntemplated === true;
|
|
10914
|
+
const absentMeansDefault = options.absentMeansDefault ?? [];
|
|
11147
10915
|
const result = { ...awsProperties };
|
|
11148
10916
|
for (const d of drifts) {
|
|
11149
10917
|
const topLevelKey = d.path.split(".", 1)[0];
|
|
@@ -11156,10 +10924,25 @@ function buildRevertNewProperties(drifts, desiredProperties, awsProperties, opti
|
|
|
11156
10924
|
const baselineIsTagList = isCfnTagList(desiredValue) || Array.isArray(desiredValue) && desiredValue.length === 0;
|
|
11157
10925
|
defineOwnKey(result, topLevelKey, isTagListKey(topLevelKey) && baselineIsTagList && isCfnTagList(awsValue) ? mergeTagListForRevert(desiredValue, awsValue) : desiredValue);
|
|
11158
10926
|
}
|
|
11159
|
-
}
|
|
10927
|
+
} else if (absentMeansDefault.includes(topLevelKey)) delete result[topLevelKey];
|
|
11160
10928
|
}
|
|
11161
10929
|
return result;
|
|
11162
10930
|
}
|
|
10931
|
+
function driftAbsentMeansDefaultKeys(provider, resourceType, properties) {
|
|
10932
|
+
if (provider.getDriftAbsentMeansDefaultKeys === void 0 || !isPlainRecord(properties)) return [];
|
|
10933
|
+
const keys = provider.getDriftAbsentMeansDefaultKeys(resourceType, properties);
|
|
10934
|
+
const dotted = keys.filter((key) => key.includes("."));
|
|
10935
|
+
if (dotted.length === 0) return keys;
|
|
10936
|
+
getLogger().debug(safeMsg`${resourceType}: getDriftAbsentMeansDefaultKeys returned non-top-level name(s) ` + safeMsg`${dotted.join(", ")}; ignored (top-level property names only).`);
|
|
10937
|
+
return keys.filter((key) => !key.includes("."));
|
|
10938
|
+
}
|
|
10939
|
+
function withAbsentDefaultKeys(baseline, aws, keys) {
|
|
10940
|
+
const missing = keys.filter((key) => !hasOwnKey(baseline, key) && hasOwnKey(aws, key));
|
|
10941
|
+
if (missing.length === 0) return baseline;
|
|
10942
|
+
const out = { ...baseline };
|
|
10943
|
+
for (const key of missing) defineOwnKey(out, key, void 0);
|
|
10944
|
+
return out;
|
|
10945
|
+
}
|
|
11163
10946
|
function collectNarrowedTopLevelKeys(sent, effective) {
|
|
11164
10947
|
const delta = Object.create(null);
|
|
11165
10948
|
for (const key of /* @__PURE__ */ new Set([...Object.keys(sent), ...Object.keys(effective)])) {
|
|
@@ -11246,6 +11029,7 @@ async function runRevert(reports, regionScope, stateBackend, stateConfig, awsCli
|
|
|
11246
11029
|
}));
|
|
11247
11030
|
const narrowedByLogicalId = /* @__PURE__ */ new Map();
|
|
11248
11031
|
const reRecordedByLogicalId = /* @__PURE__ */ new Map();
|
|
11032
|
+
const settledByRevert = /* @__PURE__ */ new Map();
|
|
11249
11033
|
try {
|
|
11250
11034
|
const revertSecretResolvers = new DriftSecretResolvers(report.region);
|
|
11251
11035
|
const revertProducerRegions = report.producerRegions;
|
|
@@ -11312,7 +11096,7 @@ async function runRevert(reports, regionScope, stateBackend, stateConfig, awsCli
|
|
|
11312
11096
|
let newProperties;
|
|
11313
11097
|
try {
|
|
11314
11098
|
if (provider.canonicalizeDriftPair) desiredProperties = (await provider.canonicalizeDriftPair(outcome.resourceType, desiredProperties, outcome.awsProperties, stateResource.properties ?? {})).baseline;
|
|
11315
|
-
const certifiedOverlay = overlayLiveAtUncertifiedPaths(buildRevertNewProperties(outcome.changes, desiredProperties, outcome.awsProperties,
|
|
11099
|
+
const certifiedOverlay = overlayLiveAtUncertifiedPaths(buildRevertNewProperties(outcome.changes, desiredProperties, outcome.awsProperties, stateResource.observedProperties === void 0 ? { preserveUntemplated: true } : { absentMeansDefault: driftAbsentMeansDefaultKeys(provider, outcome.resourceType, stateResource.properties) }), [...outcome.uncertifiedPaths, ...outcome.noEchoParameterPaths ?? []], outcome.awsProperties, desiredProperties, secrets, new Set(outcome.changes.map((change) => change.path.split(".", 1)[0] ?? "")), spelledKeysOf(stateResource.properties ?? {}));
|
|
11316
11100
|
const maskPreserved = preserveLiveValuesAtMaskedLeaves(unresolvedTokens.size > 0 ? preserveLiveValuesAtUnresolvedTokens(certifiedOverlay, outcome.awsProperties, unresolvedTokens, secrets) : certifiedOverlay, outcome.awsProperties, secrets, certifiedOverlay, spelledKeysOf(stateResource.properties ?? {}));
|
|
11317
11101
|
if (maskPreserved.unpreservablePaths.length > 0) {
|
|
11318
11102
|
totalUnresolvable++;
|
|
@@ -11335,7 +11119,17 @@ async function runRevert(reports, regionScope, stateBackend, stateConfig, awsCli
|
|
|
11335
11119
|
return;
|
|
11336
11120
|
}
|
|
11337
11121
|
try {
|
|
11338
|
-
const
|
|
11122
|
+
const revertPrevious = await settleUnsettledPrevious({
|
|
11123
|
+
provider,
|
|
11124
|
+
logicalId: outcome.logicalId,
|
|
11125
|
+
physicalId: stateResource.physicalId,
|
|
11126
|
+
resourceType: outcome.resourceType,
|
|
11127
|
+
recordedProperties: stateResource.properties ?? {},
|
|
11128
|
+
names: unsettledPropertiesOf(stateResource),
|
|
11129
|
+
previous: outcome.awsProperties,
|
|
11130
|
+
desired: newProperties
|
|
11131
|
+
});
|
|
11132
|
+
const updateResult = await withRetry(() => provider.update(outcome.logicalId, stateResource.physicalId, outcome.resourceType, newProperties, revertPrevious, {
|
|
11339
11133
|
desiredFromAwsReadback: true,
|
|
11340
11134
|
declaredEmptyProperties: declaredEmptyProperties(stateResource.properties),
|
|
11341
11135
|
maskSecrets: createSecretMasker(secrets),
|
|
@@ -11344,6 +11138,19 @@ async function runRevert(reports, regionScope, stateBackend, stateConfig, awsCli
|
|
|
11344
11138
|
removedProperties: /* @__PURE__ */ new Set()
|
|
11345
11139
|
}), outcome.logicalId, { logger: maskingRetryLogger(logger, secrets) });
|
|
11346
11140
|
totalSucceeded++;
|
|
11141
|
+
const unsettledNames = unsettledPropertiesOf(stateResource);
|
|
11142
|
+
if (unsettledNames.size > 0) {
|
|
11143
|
+
const settled = await withUnprovenUnsettled(withoutUnsettledProperties(stateResource), {
|
|
11144
|
+
provider,
|
|
11145
|
+
logicalId: outcome.logicalId,
|
|
11146
|
+
physicalId: stateResource.physicalId,
|
|
11147
|
+
resourceType: outcome.resourceType,
|
|
11148
|
+
recordedProperties: stateResource.properties ?? {},
|
|
11149
|
+
names: unsettledNames,
|
|
11150
|
+
desired: newProperties
|
|
11151
|
+
}, (message) => logger.warn(maskSecretsInText(message, secrets)));
|
|
11152
|
+
if (unsettledPropertiesOf(settled).size < unsettledNames.size) settledByRevert.set(outcome.logicalId, settled);
|
|
11153
|
+
}
|
|
11347
11154
|
const revertPartial = updatePartialReason(updateResult);
|
|
11348
11155
|
if (revertPartial !== void 0) logger.warn(` ✓ ${report.stackName}/${outcome.logicalId} (${outcome.resourceType}): reverted, ${maskSecretsInText(updatePartialMessage(revertPartial), secrets)}`);
|
|
11349
11156
|
else logger.info(` ✓ ${report.stackName}/${outcome.logicalId} (${outcome.resourceType}): reverted.`);
|
|
@@ -11388,8 +11195,15 @@ async function runRevert(reports, regionScope, stateBackend, stateConfig, awsCli
|
|
|
11388
11195
|
logger.error(` ✗ ${report.stackName}/${outcome.logicalId} (${outcome.resourceType}): AWS update failed — ${msg}`);
|
|
11389
11196
|
}
|
|
11390
11197
|
})), concurrency);
|
|
11391
|
-
if (narrowedByLogicalId.size > 0 || reRecordedByLogicalId.size > 0) {
|
|
11198
|
+
if (narrowedByLogicalId.size > 0 || reRecordedByLogicalId.size > 0 || settledByRevert.size > 0) {
|
|
11392
11199
|
const resources = { ...report.state.resources };
|
|
11200
|
+
let settledCount = 0;
|
|
11201
|
+
for (const [logicalId, settled] of settledByRevert) {
|
|
11202
|
+
const existing = resources[logicalId];
|
|
11203
|
+
if (!existing) continue;
|
|
11204
|
+
resources[logicalId] = withUnsettledProperties(withoutUnsettledProperties(existing), unsettledPropertiesOf(settled));
|
|
11205
|
+
settledCount++;
|
|
11206
|
+
}
|
|
11393
11207
|
let recordedCount = 0;
|
|
11394
11208
|
for (const [logicalId, delta] of narrowedByLogicalId) {
|
|
11395
11209
|
const existing = resources[logicalId];
|
|
@@ -11432,10 +11246,11 @@ async function runRevert(reports, regionScope, stateBackend, stateConfig, awsCli
|
|
|
11432
11246
|
...identity.attributes !== void 0 && { attributes: identity.attributes }
|
|
11433
11247
|
};
|
|
11434
11248
|
}
|
|
11435
|
-
if (recordedCount === 0 && reRecordedCount === 0) return;
|
|
11249
|
+
if (recordedCount === 0 && reRecordedCount === 0 && settledCount === 0) return;
|
|
11436
11250
|
const recordedParts = [];
|
|
11437
11251
|
if (recordedCount > 0) recordedParts.push(`the value the provider actually applied on ${recordedCount} resource(s)`);
|
|
11438
11252
|
if (reRecordedCount > 0) recordedParts.push(`the identity the revert returned on ${reRecordedCount} resource(s)`);
|
|
11253
|
+
if (settledCount > 0) recordedParts.push(`that a failed deploy's unsettled properties are settled on ${settledCount} resource(s)`);
|
|
11439
11254
|
const recordedWhat = recordedParts.join(" and ");
|
|
11440
11255
|
const { skippedOutputs: _droppedByRevert, ...carriedState } = report.state;
|
|
11441
11256
|
const newState = {
|
|
@@ -11451,7 +11266,11 @@ async function runRevert(reports, regionScope, stateBackend, stateConfig, awsCli
|
|
|
11451
11266
|
logger.info(`✓ State updated for ${report.stackName} (${report.region}): recorded ${recordedWhat}.`);
|
|
11452
11267
|
} catch (err) {
|
|
11453
11268
|
const revertAgain = revertCommandLine(report.stackName, report.region);
|
|
11454
|
-
const unrecorded = [
|
|
11269
|
+
const unrecorded = [
|
|
11270
|
+
...recordedCount > 0 ? ["the value the provider actually applied"] : [],
|
|
11271
|
+
...reRecordedCount > 0 ? ["the identity the revert returned"] : [],
|
|
11272
|
+
...settledCount > 0 ? ["that a failed deploy's unsettled properties are settled"] : []
|
|
11273
|
+
].join(" and ");
|
|
11455
11274
|
logger.warn(`Reverted ${report.stackName} (${report.region}), but could not record ${unrecorded}: ${describeAwsFailure(err).detail}.` + (reRecordedCount > 0 ? " The state record still holds the physical id and attributes from before the revert, which a later 'Fn::GetAtt' and 'cdkd export' read. Re-running the revert does not repair it, since the revert landed; a later deploy that updates this resource records the identity its update returns." : "") + (recordedCount > 0 ? ` The next 'cdkd drift' will report the same difference — ` + (revertAgain === void 0 ? `re-run 'cdkd drift --revert' for this stack once the state write can succeed.` : `re-run the command below once the state write can succeed.\nRevert with: ${revertAgain}`) : ""));
|
|
11456
11275
|
}
|
|
11457
11276
|
}
|
|
@@ -11607,8 +11426,38 @@ async function confirmPrompt$5(prompt, out) {
|
|
|
11607
11426
|
refusal: "The cdkd drift confirmation prompt cannot run in a non-interactive environment. Pass -y / --yes to confirm, or run the command from a real terminal."
|
|
11608
11427
|
});
|
|
11609
11428
|
}
|
|
11429
|
+
async function settleUnsettled(record, logicalId, providerOf) {
|
|
11430
|
+
const names = unsettledPropertiesOf(record);
|
|
11431
|
+
if (names.size === 0) return record;
|
|
11432
|
+
let kept = /* @__PURE__ */ new Set();
|
|
11433
|
+
try {
|
|
11434
|
+
const provider = providerOf();
|
|
11435
|
+
if (provider?.unsettledInTransition !== void 0) kept = await provider.unsettledInTransition(record.physicalId, logicalId, record.resourceType, names, record.properties);
|
|
11436
|
+
} catch {
|
|
11437
|
+
kept = names;
|
|
11438
|
+
}
|
|
11439
|
+
const keep = [...names].filter((name) => kept.has(name));
|
|
11440
|
+
if (keep.length === names.size) return record;
|
|
11441
|
+
return withUnsettledProperties(withoutUnsettledProperties(record), keep);
|
|
11442
|
+
}
|
|
11443
|
+
function unsettledRowsOf(report) {
|
|
11444
|
+
const rows = [];
|
|
11445
|
+
const resources = report.state.resources ?? {};
|
|
11446
|
+
for (const logicalId of Object.keys(resources).sort()) {
|
|
11447
|
+
const record = resources[logicalId];
|
|
11448
|
+
const names = unsettledPropertiesOf(record);
|
|
11449
|
+
if (names.size === 0) continue;
|
|
11450
|
+
rows.push({
|
|
11451
|
+
logicalId,
|
|
11452
|
+
type: typeof record?.resourceType === "string" ? record.resourceType : "unknown",
|
|
11453
|
+
properties: [...names].sort()
|
|
11454
|
+
});
|
|
11455
|
+
}
|
|
11456
|
+
return rows;
|
|
11457
|
+
}
|
|
11610
11458
|
function writeJsonReport(reports) {
|
|
11611
11459
|
const payload = reports.map((r) => {
|
|
11460
|
+
const unsettled = unsettledRowsOf(r);
|
|
11612
11461
|
const drifted = [];
|
|
11613
11462
|
const clean = [];
|
|
11614
11463
|
const deleted = [];
|
|
@@ -11666,6 +11515,7 @@ function writeJsonReport(reports) {
|
|
|
11666
11515
|
stack: r.stackName,
|
|
11667
11516
|
region: r.region,
|
|
11668
11517
|
...r.warnings.length > 0 && { warnings: r.warnings },
|
|
11518
|
+
...unsettled.length > 0 && { unsettled },
|
|
11669
11519
|
drifted,
|
|
11670
11520
|
deleted,
|
|
11671
11521
|
clean,
|
|
@@ -11792,6 +11642,17 @@ function writeHumanReport(reports) {
|
|
|
11792
11642
|
process.stdout.write("\n");
|
|
11793
11643
|
}
|
|
11794
11644
|
}
|
|
11645
|
+
const unsettledRows = unsettledRowsOf(report);
|
|
11646
|
+
if (unsettledRows.length > 0) {
|
|
11647
|
+
process.stdout.write(`\n! ${reportHeading(report)}: a failed deploy left properties unsettled on ${unsettledRows.length} resource${unsettledRows.length === 1 ? "" : "s"} (AWS may hold the recorded value or the attempted one). The next 'cdkd deploy' sends them again; a successful --accept or --revert of the resource clears them.\n`);
|
|
11648
|
+
for (const row of unsettledRows) {
|
|
11649
|
+
const names = row.properties.map((name) => safeMsg`${reportIdent(name, 255)}`).join(", ");
|
|
11650
|
+
process.stdout.write(` ! ${reportResource({
|
|
11651
|
+
logicalId: row.logicalId,
|
|
11652
|
+
resourceType: row.type
|
|
11653
|
+
})}: ${names}\n`);
|
|
11654
|
+
}
|
|
11655
|
+
}
|
|
11795
11656
|
if (notCompared.length > 0) {
|
|
11796
11657
|
const notComparedAtAll = notCompared.filter((n) => !ANY_OF_IT_COMPARED[n.cause]).length;
|
|
11797
11658
|
const referenceCaused = notCompared.length - notComparedAtAll;
|
|
@@ -20150,7 +20011,7 @@ async function rollbackCommand(stackArg, options) {
|
|
|
20150
20011
|
...carriedState,
|
|
20151
20012
|
...stackInstanceIdCarriedFrom(baseState),
|
|
20152
20013
|
...supersededAfterRollback(baseState, supersededHost),
|
|
20153
|
-
version:
|
|
20014
|
+
version: 14,
|
|
20154
20015
|
region,
|
|
20155
20016
|
resources: { ...stateResources },
|
|
20156
20017
|
...orphansAfterRollback(baseState, mintedOrphans),
|
|
@@ -23718,7 +23579,7 @@ function buildStackState(stackName, region, rows, templateParser, template, exis
|
|
|
23718
23579
|
}
|
|
23719
23580
|
if (namesParameter?.failedClosed !== void 0) getLogger().debug(`The template's parameter dependence could not be judged (${namesParameter.failedClosed}): every prior observed-baseline refusal recorded without a reason is carried as an unverifiable-parameter refusal.`);
|
|
23720
23581
|
return {
|
|
23721
|
-
version:
|
|
23582
|
+
version: 14,
|
|
23722
23583
|
stackName,
|
|
23723
23584
|
region,
|
|
23724
23585
|
resources,
|
|
@@ -31724,4 +31585,4 @@ function collectVerbFlags(program) {
|
|
|
31724
31585
|
|
|
31725
31586
|
//#endregion
|
|
31726
31587
|
export { resolveSecretDerivedPrincipals as a, buildProgram, isResolvableSecretPrincipalList as i, runDestroyForStack as n, canonicalizeIpProtocolValue as o, holdsUnprovenSecretPrincipalToken as r, resolvedResourceTimeoutMs as s, canonicalizeIpv4Cidr as t };
|
|
31727
|
-
//# sourceMappingURL=program-
|
|
31588
|
+
//# sourceMappingURL=program-Bnt3Yt0k.js.map
|