@go-to-k/cdkd 0.308.1 → 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-B7pAjRIc.js → asg-provider-DQoKGfKH.js} +2 -2
- package/dist/{asg-provider-B7pAjRIc.js.map → asg-provider-DQoKGfKH.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-CDjAtIrn.js → deploy-engine-tQ0aqZMo.js} +1235 -247
- package/dist/deploy-engine-tQ0aqZMo.js.map +1 -0
- package/dist/iam-policy-targets-D94wh05t.js.map +1 -1
- package/dist/{iam-role-provider-DbtvFel_.js → iam-role-provider-BI8Acvps.js} +2 -2
- package/dist/{iam-role-provider-DbtvFel_.js.map → iam-role-provider-BI8Acvps.js.map} +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/{neptune-provider-Y3Ii8oYI.js → neptune-provider-DmVmx69p.js} +2 -2
- package/dist/{neptune-provider-Y3Ii8oYI.js.map → neptune-provider-DmVmx69p.js.map} +1 -1
- package/dist/{program-Ymf7svYk.js → program-Bnt3Yt0k.js} +100 -256
- package/dist/program-Bnt3Yt0k.js.map +1 -0
- package/dist/{provider-classes-BxfIHcea.js → provider-classes-DYke4HKr.js} +724 -133
- package/dist/provider-classes-DYke4HKr.js.map +1 -0
- package/dist/{rds-provider-CZhBLQgJ.js → rds-provider-Qpf09VQv.js} +27 -13
- package/dist/rds-provider-Qpf09VQv.js.map +1 -0
- package/dist/{version-BWqrjGBS.js → version-9LVuCtBU.js} +2 -2
- package/dist/{version-BWqrjGBS.js.map → version-9LVuCtBU.js.map} +1 -1
- package/package.json +2 -2
- package/dist/deploy-engine-CDjAtIrn.js.map +0 -1
- package/dist/program-Ymf7svYk.js.map +0 -1
- package/dist/provider-classes-BxfIHcea.js.map +0 -1
- package/dist/rds-provider-CZhBLQgJ.js.map +0 -1
|
@@ -2,8 +2,8 @@ import { a as runWithStackAwsClients, i as resetAwsClients, o as setAwsClients,
|
|
|
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
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 computeImplicitDeleteEdges, $a as AWS_NO_VALUE, $i as RollbackInlinePolicyWriters, $l as getBootstrapMarkerKey, $n as carriedExportAliasExposure, $o as refuseMalformedResourceEntriesForDeploy, $r as namingSecretsWithRecordedNoEcho, $u as StageLoadError, Aa as applyRoleArnIfSet, Ac as logOnlyValueCount, Al as hasUnverifiableParameterRefusal, Ao as malformedOrphanRowsKeptWarning, Ar as cyan, As as MULTI_REGION_RECREATE_BLOCKED_TYPES, At as displacedOpClause, Au as loadCdkJson, Ba as classifyRecordedSecretRegion, Bc as scrubResourceRecord, Bl as timePhase, Bn as retiredNameGenerationsAfter, Bo as malformedStateRefusalMessage, Br as supersededAfterRollback, Bt as getCurrentNestedStackContext, Bu as ssmResolvedValueType, Ca as resolveDynamicReferences, Cc as redactForState, Ci as extractDeploymentEventError, Cl as withStackInstanceIdWithheld, Cn as replacementNeverSwapped, Co as malformedExportNamesWarning, Cr as proposeRenames, Ct as makeSiblingClaimReader, Cu as warnFinchArgvExposure, Dc as createUnionSecretMasker, Dl as exportNamesCarriedFrom, Dn as findNestedStackTypeChanges, Do as malformedLocalResourcesWarning, Dr as withStackRecords, Ds as hasNoCloudControlHandlers, Dt as keptForRetainedRecord, Du as synthesisStatusMessage, Ea as keepHeldTokenProvenance, Ec as carryLogOnlyValues, El as describeRegionValueKind, En as orphanNeedsIdentity, Eo as malformedLocalResourceEntriesWarning, Es as NO_CC_HANDLERS_REASON, Et as resolvePendingCloudControlRequests, Eu as Synthesizer, Fa as sendableAssumeRoleCommand, Fc as unionOfSecretBags, Fi as CC_BROKEN_REASON, Fl as orphansCarriedFrom, Fn as updatePartialReason, Fo as malformedRenderedContainersWarning, Fr as addSuperseded, Ft as recordDisplacedSkips, Fu as resolveStateBucketWithDefault, Ga as isUnboundTemplateParameter, Gc as isUncertifiedBaselineMaskPosition, Gi as withPrintingSecrets, Gl as buildAssetRedirectMap, Gn as reachableDivergentParameters, Go as refuseMalformedOrphanRecordsForDestroy, Gr as noEchoAttributeNamesOf, Gt as isHandledOrphan, Gu as uploadCfnTemplate, Ha as producerRegionsFromState, Hi as readsNoEchoDeleteValues, Hl as isSensitiveAttributeName, Hn as withNameGenerationReached, Ho as refuseDivergentRecordRegionForDestroy, Hr as supersededHolderOf, Ht as deleteJournaledOrphans, Hu as CFN_TEMPLATE_URL_LIMIT, Ia as AWS_CREDENTIAL_ENV_KEYS, Ic as createSecretMasker, Ii as ProviderRegistry, Il as shouldRetainResource, In as nameGenerationCarriedFrom, Io as malformedResourceEntriesWarning, Ir as deleteSupersededEntry, Iu as resolveStateBucketWithDefaultAndSource, Ja as isImpossibleEmptyStoredAttribute, Jc as identityKeyFor, Ji as customResourceResponseExpirationWarning, Jl as rewriteTemplateAssetReferences, Jn as displayTextOrWithheld, Jo as refuseMalformedOrphansForOrphan, Jr as noEchoParameterNamesOf, Jt as makeForeignHolderScan, Ju as expectedOwnerParam, Ka as parameterTypeMayLoseSecretIdentity, Kc as pathCrossesDottedKey, Ki as CUSTOM_RESOURCE_RESPONSE_LIFECYCLE_RULE_ID, Kl as createAssetRedirectResolver, Kn as resourcesNamingDeclaredParameter, Ko as refuseMalformedOrphans, Kr as noEchoComparisonForTemplate, Kt as journaledOrphanLines, Ku as CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION, La as applyCallerIdentityCredentials, Lc as errorCauseChain, Li as ccBrokenReason, Ll as stackInstanceIdCarriedFrom, Ln as nameGenerationHighWaterOf, Lo as malformedResourcePropertiesWarning, Lr as holdsSupersededResources, Lt as revertedNestedRowIds, Lu as resolveUseCdkBootstrapAssets, Ma as assertSendableRoleArn, Mc as recordLogOnlyParameterValue, Ml as importableOutputs, Mo as malformedOrphansWarning, Mr as green, Ms as isStatefulRecreateTargetSync, Mt as dropSettledNestedJournals, Mu as resolveAutoAssetStorage, Na as explicitRoleArnOrThrow, Nc as recordLogOnlyValue, Nl as isReadableBag, No as malformedOutputsRefusalMessage, Nr as red, Ns as renderStatefulReason, Nu as resolveCaptureObservedState, Oa as recordedOutputReferenceRegions, Oc as hasMaskableValues, Ol as hasReadableExportSet, Oo as malformedOrphanRecordsRefusalMessage, Os as findReplacedReadersOfRecreateTargets, Ot as recordRetainedForReadoption, Ou as getDefaultStateBucketName, Pa as isIamRoleArn, Pc as shareLogOnlyValues, Pl as orphansAfterRollback, Pn as updatePartialMessage, Po as malformedOutputsWarning, Pr as yellow, Pt as nestedChildStackName$1, Pu as resolveSkipPrefix, Q as IMPLICIT_DELETE_DEPENDENCIES, Qa as keepsSecretReferenceToken, Qc as physicalNameCopiesOf, Ql as ensureAssetStorage, Qn as secretSafeKeyDisplay, Qo as refuseMalformedResourceEntries, Qr as maskEventTextWithBoundBags, Qs as withRetry, Qu as AssemblyReader, Ra as callerEnvCredentials, Rc as maskSecretsInError, Ri as isCustomResource, Rl as PhaseClock, Rn as nameScopeOf, Ro as malformedResourcesWarning, Rr as isSupersededResourceRecord, Rt as withNestedRevertRun, Ru as stateBucketExistenceConfirmed, Si as DeploymentEventsStore, Sl as stackInstanceIdOf, Sn as recordUnderIdIsNotOwn, So as malformedDriftResourcePropertiesWarning, Sr as parseMappingFile, Ss as findActionableSilentDrops, St as makeCanonicalizePropertiesFn, Su as runDockerStreaming, Ta as refuseUnreadableCdkCrossAccountRefs, Tl as acceptedCreateOnlyDropsOf, Tn as seedsDeleteFirstGuard, To as malformedLocalOutputsWarning, Tr as destroyStackRecordsView, Tt as pendingRequestCount, Tu as getDockerImageBySourceHash, Ua as regionLessSecretName, Uc as DYNAMIC_REFERENCE_TOKEN_SCAN, Ui as isCustomResourceType$1, Ul as stringifyValue, Un as computeParameterTaint, Ur as supersededResourcesOf, Ut as dropFailedCommands, Uu as MIGRATE_TMP_PREFIX, Va as classifyReplaySecretRegion, Vc as withPhysicalNameCopies, Vi as TemplateNoEchoReresolver, Vl as AssetPublisher, Vn as retiredNameGenerationsLeaving, Vo as previewableOrphanRecords, Vr as supersededHeldByOtherTypeWarning, Vt as withNestedStackContext, Vu as CFN_TEMPLATE_BODY_LIMIT, Wa as coerceParameterTypedValue, Wc as dynamicReferenceTokens, Wl as WorkGraph, Wn as namesAnyDeclaredParameter, Wo as refuseMalformedOrphanRecords, Wr as withoutSuperseded, Wt as dropFailedHint, Wu as findLargeInlineResources, Xa as carriesFetchableDynamicReference, Xc as recordNestedStackParameterExpressions, Xi as slowCcOperationTimeoutMs, Xl as BOOTSTRAP_MARKER_PREFIX, Xn as secretBearing, Xo as refuseMalformedOutputsForDestroy, Xr as completedReplayEntries, Xs as templateResourceTypes, Xt as formatResourceLine, Xu as canonicalizeRegion, Ya as carriesDynamicReference, Yc as inheritNestedStackParameterAssociations, Yi as CloudControlProvider, Yl as AssetModeResolver, Yn as exportAliasCollisionScrubWarning, Yo as refuseMalformedOutputs, Yr as createReadOnlyAttributeHealerFactory, Ys as prefetchCreateOnlyPropertyPaths, Yt as sameJournaledOrphans, Yu as PARTITION_TABLE, Za as isNamelessDynamicReferenceError, Zl as assertAssetBucketRegion, Zn as secretBearingStateKeyWarning, Zo as refuseMalformedResourceAttributesForOrphan, Zr as journaledOrphanPrintingBag, Zs as describeTypeWithThrottleRetry, Zu as derivePartitionAndUrlSuffix, _c as readbackPathFor, _d as resolveBucketRegion, _i as ledgerForStack, _l as CrossPrefixScanCache, _n as isJournaledOrphan, _o as hasReadableOrphans, _r as rollbackOrphanIds, _s as repairMalformedResourcesForReadOnly, _t as withResourceDeadline, _u as partitionSensitiveEnv, a as isProtectionValueActive, aa as isWaitAbandonedError, ac as DagBuilder, ad as hasOwnKey, ai as stateSecretNameNeedles, al as recordMaskOnlyValuesIn, an as refuseRefactorMarker, ao as withSharedDrainBudget, ar as collectPublishedOutputNames, as as refuseMalformedResourcePropertiesForDrift, at as childTemplateLoader, au as buildDenyExternalAccessPolicy, bc as valueAtCoordinate, bl as isAccessDenied, bn as planRollback, bo as isReadableOrphanRecord, br as looselyEqual, bs as unreadableResourceEntries, bt as keptWholeReasonText, bu as redactedDockerCause, cc as isMarkedCoordinate, cd as ownValue, ci as PRE_DELETE_SNAPSHOT_TYPES, cl as recordProvenPublicExpression, cn as hasPendingMovesOut, co as declaresNoEcho, cr as DEFAULT_RESOURCE_TIMEOUT_MS, cs as refuseMalformedResourcesForDeploy, ct as listNestedTemplateRows, cu as describeDockerCapturedOutput, dc as maskWholeValue, dd as displayAssemblyPath, di as createPreDeleteFinalSnapshot, dl as isSingleDynamicReferenceToken, dn as refusePendingMovesOut, do as STATE_RESOURCES_MALFORMED, dr as constructPathOf$1, ds as refuseMalformedState, dt as conditionFingerprint, du as dockerSpawnEnvWithSensitive, ea as UNSPECIFIED_SKIP_REASON, ed as processStackMessages, ei as orphanRecordsPrintingBag, el as recordPhysicalNameCopy, eo as cfnRefValueFromPhysicalId, er as exportNameNoEchoParameters, es as refuseMalformedResourceEntriesForDestroy, et as crossStackOutputProvenanceSource, eu as isCrossRegionRedirect, fc as maskedLeafCoordinatesOf, fd as renderAssemblyPathEscape, fi as effectiveDeletionPolicy, fl as LockManager, fn as replayFailedOperations, fo as UNREADABLE_ORPHANS_CONTAINER_ROW, fr as findDestructiveChanges, fs as repairMalformedOrphanRecordsForReadOnly, ft as conditionInputsFrom, fu as finchSecretArgvRefusal, ga as poisonRenderedSpellingsCollidingIn, gl as CrossPrefixReadError, gn as demoteSupersededOrphans, go as displayLogicalId, gr as movedToHint, gs as repairMalformedResourcePropertiesForReadOnly, gu as isMalformedEnvKey, ha as IntrinsicFunctionResolver, hc as noEchoOutputsComparison, hd as injectedAwsRegionValue, hi as unsupportedFinalSnapshotError, hl as rebuildClientForBucketRegion, hn as recordAfterRollbackUpdate, ho as deployRefusesOrphanRowsReason, hr as hintSidesOf, hs as repairMalformedResourceEntriesForReadOnly, hu as isDockerClientEnvKey, i as PROTECTION_PROPERTY_BY_TYPE, id as defineOwnKey, ii as secretNamedRecordNeedles, il as recordMaskOnlyValue, in as refactorMarkerRefusalMessage, ir as collectDeclaredOutputNames, is as refuseMalformedResourcePropertiesForDestroy, it as serviceTokenBlockingReason, iu as validateContainerRepoName, ja as assertFlagRoleArn, jc as printingCorpusOf, jl as importableOutputKeys, jo as malformedOrphansRefusalMessage, jr as gray, js as isStatefulRecreateTargetForReplace, jt as displacedPhysicalIdShown, ju as resolveApp, ka as recordedReferenceRegions, kc as literalSplitDelimitersOf, kl as hasReasonlessBaselineRefusal, kn as inheritProducerRegions, ko as malformedOrphanRecordsWarning, kr as bold, ks as shownType, kt as NESTED_PENDING_PARENT_REASON, ku as getLegacyStateBucketName, lc as maskAtCoordinates, ld as absoluteAssemblyPathEscape, li as buildFinalSnapshotIdentifier, ll as wholeStringLeavesOf, ln as pendingMovesOutOf, lo as JSON_LISTING_HOLE_VALUE, lr as DEFAULT_RESOURCE_WARN_AFTER_MS, ls as refuseMalformedResourcesForDestroy, lt as renderNestedTemplateTreeDefect, lu as describeDockerExecFailure, ma as INTRINSIC_KEYS, mc as noEchoLeavesOf, md as injectAwsRegion, mi as refusesFinalSnapshot, ml as S3StateBackend, mn as removeProtectionTypeList, mo as accountArgs, mr as findRefactorHints, ms as repairMalformedOutputsForReadOnly, mt as readRecordedConditionVerdicts, mu as getDockerCmd, n as recordedProtectionEvidence, na as deleteLeftInPlace, nd as parseFailureDebugDetail, ni as secretNamePrintingBags, nl as carriesSecretMask, nn as readRefactorMarkerOnce, no as lacksRecordedTableArn, nr as isWholeDynamicReferenceValue, ns as refuseMalformedResourceEntriesForImportSave, nt as deferredServiceTokenWarning, nu as readBootstrapMarkerBody, o as perType, oc as TemplateParser, od as hasPlainPrototype, oi as storedSecretNameNeedles, ol as recordNoEchoAttributeValues, on as sameMove, oo as parameterInputsFor, or as isExportAliasCollision, os as refuseMalformedResourcePropertiesForExport, ot as findNestedTemplateTreeDefect, ou as buildDockerImage, pa as DiffCalculator, pc as noEchoCoordinatesOf, pd as resolveAssemblyPath, pi as isFinalSnapshotError, pl as isLockInfoExpired, pn as replayRollback, po as UNREADABLE_RESOURCES_MAP_ROW, pr as formatDestructiveChange, ps as repairMalformedOrphansForReadOnly, pt as parentSuppliedValues, pu as formatDockerLoginError, qa as getAccountInfo, qc as spelledKeysOf, qi as applyCustomResourceResponseExpiration, ql as loadPublishableAssetManifest, qn as WITHHELD_NAME_DISPLAY, qo as refuseMalformedOrphansForDestroy, qr as noEchoExactEchoLeavesOf, qt as loadJournaledOrphans, qu as decodeListingKey, r as recordedProtectionNote, ra as deleteSkipReason, rd as utf8ByteLength, rl as provenPublicValue, rn as refactorMarkerMovesOf, ro as refStateLookupFromResource, rr as noEchoParameterValueSeed, rs as refuseMalformedResourceEntriesForOrphan, rt as findServiceTokenRefusals, ru as validateAssetBucketName, s as readProtection, sc as canonicalCoordinates, sd as nullPrototypeRecord, si as ATOMIC_FINAL_SNAPSHOT_TYPES, sl as recordNoEchoParameterFreshValue, sn as updateRefactorMarker, sr as bindingSkippedOutputs, ss as refuseMalformedResourcePropertiesForOrphan, st as isAbsoluteAssetPath, su as resolveDockerContextDirectory, t as DeployEngine, ta as deleteIndeterminateGuards, td as describeJsonParseFailure, ti as secretNamePrintingBag, tl as splitGetAttStringForm, tn as readRefactorMarker, to as isStalePlaceholderArnAttribute, tr as exportNameSecretExposure, ts as refuseMalformedResourceEntriesForImport, tt as inheritedProvenanceForChildDiff, tu as parseBootstrapMarker, uc as maskReadbackAtCoordinates, ud as describeFileReadFailure, ui as ccRoutedFinalSnapshotError, ul as WHOLE_DYNAMIC_REFERENCE_PATTERN, un as pendingMovesRefusalMessage, uo as STATE_REGION_DIVERGED, ur as maskingRetryLogger, us as refuseMalformedResourcesForExport, ut as templateIdentity, uu as describeDockerFailure, vc as readsNoEchoSource, vl as applyCrossPrefixScan, vn as isReplacementOrphan, vo as hasReadableOutputs, vr as withMovedTo, vs as unpreviewableOrphanRecords, vt as diffSecurity, vu as redactDockerArgvValues, wa as producerLookupOver, wl as splitImportedOps, wn as resolveReplacementOldType, wo as malformedExportSourceWarning, ws as unwrittenCreateOnlyReplacement, wt as planOrphanAdoption, wu as AssetManifestLoader, xc as liveMatchesUnresolvedTokenFrame, xi as DeploymentEventsReader, xl as isNotImplemented, xn as recheckFailedPlan, xo as isReadableResourceEntry, xr as mappingPairs, xs as withheldAccountClause, xt as mergeNoChangeOutputs, xu as runDockerForeground, yc as recordedNoEchoValuesOf, yi as withCreateTokenLedger, yl as crossPrefixDeniedWarning, yn as planFailedOps, yo as hasReadableResources, yr as isPairableType, ys as unreadableOrphanRecords, yt as isSecretBearingReferenceString, yu as redactedCause, za as envCredentialsAreAssumedRole, zc as maskSecretsInText, zi as wouldReturnToSdkProvider, zl as renderPhaseTimings, zn as retiredAfterRollback, zo as malformedScrubResourceEntriesRefusalMessage, zr as removeSuperseded, zt as collectNestedChildUnaddressed, zu as warnDeprecatedNoPrefixCliFlag } from "./deploy-engine-CDjAtIrn.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) {
|
|
@@ -10685,7 +10447,7 @@ function setAtPath(target, path, value) {
|
|
|
10685
10447
|
}
|
|
10686
10448
|
defineOwnKey(cursor, segments[segments.length - 1], value);
|
|
10687
10449
|
}
|
|
10688
|
-
async function runAccept(reports, stateBackend, stateConfig, awsClients, options) {
|
|
10450
|
+
async function runAccept(reports, regionScope, stateBackend, stateConfig, awsClients, options) {
|
|
10689
10451
|
const logger = getLogger();
|
|
10690
10452
|
const out = humanTextSink(options.json);
|
|
10691
10453
|
const lockRecovery = {
|
|
@@ -10761,11 +10523,15 @@ async function runAccept(reports, stateBackend, stateConfig, awsClients, options
|
|
|
10761
10523
|
}
|
|
10762
10524
|
if (recordedChanges > 0) acceptedResourceCount++;
|
|
10763
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);
|
|
10764
10530
|
resources[outcome.logicalId] = hasObserved ? {
|
|
10765
|
-
...
|
|
10531
|
+
...settled,
|
|
10766
10532
|
observedProperties: written.baseline
|
|
10767
10533
|
} : {
|
|
10768
|
-
...
|
|
10534
|
+
...settled,
|
|
10769
10535
|
properties: written.baseline,
|
|
10770
10536
|
...written.noEchoLeaves !== void 0 && { noEchoLeaves: written.noEchoLeaves }
|
|
10771
10537
|
};
|
|
@@ -11263,6 +11029,7 @@ async function runRevert(reports, regionScope, stateBackend, stateConfig, awsCli
|
|
|
11263
11029
|
}));
|
|
11264
11030
|
const narrowedByLogicalId = /* @__PURE__ */ new Map();
|
|
11265
11031
|
const reRecordedByLogicalId = /* @__PURE__ */ new Map();
|
|
11032
|
+
const settledByRevert = /* @__PURE__ */ new Map();
|
|
11266
11033
|
try {
|
|
11267
11034
|
const revertSecretResolvers = new DriftSecretResolvers(report.region);
|
|
11268
11035
|
const revertProducerRegions = report.producerRegions;
|
|
@@ -11352,7 +11119,17 @@ async function runRevert(reports, regionScope, stateBackend, stateConfig, awsCli
|
|
|
11352
11119
|
return;
|
|
11353
11120
|
}
|
|
11354
11121
|
try {
|
|
11355
|
-
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, {
|
|
11356
11133
|
desiredFromAwsReadback: true,
|
|
11357
11134
|
declaredEmptyProperties: declaredEmptyProperties(stateResource.properties),
|
|
11358
11135
|
maskSecrets: createSecretMasker(secrets),
|
|
@@ -11361,6 +11138,19 @@ async function runRevert(reports, regionScope, stateBackend, stateConfig, awsCli
|
|
|
11361
11138
|
removedProperties: /* @__PURE__ */ new Set()
|
|
11362
11139
|
}), outcome.logicalId, { logger: maskingRetryLogger(logger, secrets) });
|
|
11363
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
|
+
}
|
|
11364
11154
|
const revertPartial = updatePartialReason(updateResult);
|
|
11365
11155
|
if (revertPartial !== void 0) logger.warn(` ✓ ${report.stackName}/${outcome.logicalId} (${outcome.resourceType}): reverted, ${maskSecretsInText(updatePartialMessage(revertPartial), secrets)}`);
|
|
11366
11156
|
else logger.info(` ✓ ${report.stackName}/${outcome.logicalId} (${outcome.resourceType}): reverted.`);
|
|
@@ -11405,8 +11195,15 @@ async function runRevert(reports, regionScope, stateBackend, stateConfig, awsCli
|
|
|
11405
11195
|
logger.error(` ✗ ${report.stackName}/${outcome.logicalId} (${outcome.resourceType}): AWS update failed — ${msg}`);
|
|
11406
11196
|
}
|
|
11407
11197
|
})), concurrency);
|
|
11408
|
-
if (narrowedByLogicalId.size > 0 || reRecordedByLogicalId.size > 0) {
|
|
11198
|
+
if (narrowedByLogicalId.size > 0 || reRecordedByLogicalId.size > 0 || settledByRevert.size > 0) {
|
|
11409
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
|
+
}
|
|
11410
11207
|
let recordedCount = 0;
|
|
11411
11208
|
for (const [logicalId, delta] of narrowedByLogicalId) {
|
|
11412
11209
|
const existing = resources[logicalId];
|
|
@@ -11449,10 +11246,11 @@ async function runRevert(reports, regionScope, stateBackend, stateConfig, awsCli
|
|
|
11449
11246
|
...identity.attributes !== void 0 && { attributes: identity.attributes }
|
|
11450
11247
|
};
|
|
11451
11248
|
}
|
|
11452
|
-
if (recordedCount === 0 && reRecordedCount === 0) return;
|
|
11249
|
+
if (recordedCount === 0 && reRecordedCount === 0 && settledCount === 0) return;
|
|
11453
11250
|
const recordedParts = [];
|
|
11454
11251
|
if (recordedCount > 0) recordedParts.push(`the value the provider actually applied on ${recordedCount} resource(s)`);
|
|
11455
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)`);
|
|
11456
11254
|
const recordedWhat = recordedParts.join(" and ");
|
|
11457
11255
|
const { skippedOutputs: _droppedByRevert, ...carriedState } = report.state;
|
|
11458
11256
|
const newState = {
|
|
@@ -11468,7 +11266,11 @@ async function runRevert(reports, regionScope, stateBackend, stateConfig, awsCli
|
|
|
11468
11266
|
logger.info(`✓ State updated for ${report.stackName} (${report.region}): recorded ${recordedWhat}.`);
|
|
11469
11267
|
} catch (err) {
|
|
11470
11268
|
const revertAgain = revertCommandLine(report.stackName, report.region);
|
|
11471
|
-
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 ");
|
|
11472
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}`) : ""));
|
|
11473
11275
|
}
|
|
11474
11276
|
}
|
|
@@ -11624,8 +11426,38 @@ async function confirmPrompt$5(prompt, out) {
|
|
|
11624
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."
|
|
11625
11427
|
});
|
|
11626
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
|
+
}
|
|
11627
11458
|
function writeJsonReport(reports) {
|
|
11628
11459
|
const payload = reports.map((r) => {
|
|
11460
|
+
const unsettled = unsettledRowsOf(r);
|
|
11629
11461
|
const drifted = [];
|
|
11630
11462
|
const clean = [];
|
|
11631
11463
|
const deleted = [];
|
|
@@ -11683,6 +11515,7 @@ function writeJsonReport(reports) {
|
|
|
11683
11515
|
stack: r.stackName,
|
|
11684
11516
|
region: r.region,
|
|
11685
11517
|
...r.warnings.length > 0 && { warnings: r.warnings },
|
|
11518
|
+
...unsettled.length > 0 && { unsettled },
|
|
11686
11519
|
drifted,
|
|
11687
11520
|
deleted,
|
|
11688
11521
|
clean,
|
|
@@ -11809,6 +11642,17 @@ function writeHumanReport(reports) {
|
|
|
11809
11642
|
process.stdout.write("\n");
|
|
11810
11643
|
}
|
|
11811
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
|
+
}
|
|
11812
11656
|
if (notCompared.length > 0) {
|
|
11813
11657
|
const notComparedAtAll = notCompared.filter((n) => !ANY_OF_IT_COMPARED[n.cause]).length;
|
|
11814
11658
|
const referenceCaused = notCompared.length - notComparedAtAll;
|
|
@@ -20167,7 +20011,7 @@ async function rollbackCommand(stackArg, options) {
|
|
|
20167
20011
|
...carriedState,
|
|
20168
20012
|
...stackInstanceIdCarriedFrom(baseState),
|
|
20169
20013
|
...supersededAfterRollback(baseState, supersededHost),
|
|
20170
|
-
version:
|
|
20014
|
+
version: 14,
|
|
20171
20015
|
region,
|
|
20172
20016
|
resources: { ...stateResources },
|
|
20173
20017
|
...orphansAfterRollback(baseState, mintedOrphans),
|
|
@@ -23735,7 +23579,7 @@ function buildStackState(stackName, region, rows, templateParser, template, exis
|
|
|
23735
23579
|
}
|
|
23736
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.`);
|
|
23737
23581
|
return {
|
|
23738
|
-
version:
|
|
23582
|
+
version: 14,
|
|
23739
23583
|
stackName,
|
|
23740
23584
|
region,
|
|
23741
23585
|
resources,
|
|
@@ -31741,4 +31585,4 @@ function collectVerbFlags(program) {
|
|
|
31741
31585
|
|
|
31742
31586
|
//#endregion
|
|
31743
31587
|
export { resolveSecretDerivedPrincipals as a, buildProgram, isResolvableSecretPrincipalList as i, runDestroyForStack as n, canonicalizeIpProtocolValue as o, holdsUnprovenSecretPrincipalToken as r, resolvedResourceTimeoutMs as s, canonicalizeIpv4Cidr as t };
|
|
31744
|
-
//# sourceMappingURL=program-
|
|
31588
|
+
//# sourceMappingURL=program-Bnt3Yt0k.js.map
|