@go-to-k/cdkd 0.298.1 → 0.298.3
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-semUK44T.js → asg-provider-CvJsMScM.js} +2 -2
- package/dist/{asg-provider-semUK44T.js.map → asg-provider-CvJsMScM.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-A-Ys_mhE.js → deploy-engine-DLGCuN4i.js} +131 -12
- package/dist/deploy-engine-DLGCuN4i.js.map +1 -0
- package/dist/{iam-role-provider-CpqTal4K.js → iam-role-provider-B020NDGS.js} +2 -2
- package/dist/{iam-role-provider-CpqTal4K.js.map → iam-role-provider-B020NDGS.js.map} +1 -1
- package/dist/index.d.ts +11 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/{neptune-provider-C4A86Y7P.js → neptune-provider-DDFjTv9k.js} +2 -2
- package/dist/{neptune-provider-C4A86Y7P.js.map → neptune-provider-DDFjTv9k.js.map} +1 -1
- package/dist/{program-D5gcmWad.js → program-BQnReLnG.js} +105 -51
- package/dist/program-BQnReLnG.js.map +1 -0
- package/dist/{provider-classes-CuZ-P4gB.js → provider-classes-BTP4rLU6.js} +228 -91
- package/dist/provider-classes-BTP4rLU6.js.map +1 -0
- package/dist/{rds-provider-X4mc-nGw.js → rds-provider-DcfF-k86.js} +2 -2
- package/dist/{rds-provider-X4mc-nGw.js.map → rds-provider-DcfF-k86.js.map} +1 -1
- package/dist/{version-CItAaDXu.js → version-CWATUXWX.js} +2 -2
- package/dist/{version-CItAaDXu.js.map → version-CWATUXWX.js.map} +1 -1
- package/package.json +2 -2
- package/dist/deploy-engine-A-Ys_mhE.js.map +0 -1
- package/dist/program-D5gcmWad.js.map +0 -1
- package/dist/provider-classes-CuZ-P4gB.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-CnmtbrxD.js";
|
|
2
2
|
import { A as UNRENDERABLE, B as stringifyJsonPayload, D as SAFE_MSG_ALTERED_CHAR, F as displayStackName, H as truncateCodePoints, I as isPasteableIdent, M as displayAwsMessage, N as displayIdent, O as SECRET_REF_MAX_CODE_POINTS, P as displaySafe, R as plainIdentOr, T as withStackName, _ as derivesPatternBName, a as getLogger, f as getLiveRenderer, h as PATTERN_B_RESOURCE_TYPES, j as cutMarker, k as STACK_REF_MAX_CODE_POINTS, l as runStackBuffered, m as PATTERN_B_NAME_PROPERTIES, o as isStdoutReservedForPayload, p as PATTERN_B_NAME_OPTIONS, r as safeStringify, s as reserveStdoutForPayload, t as describeAwsFailure, v as explicitNamePropertyFor, w as withSkipPrefix, y as generateResourceName, z as safeMsg } from "./aws-failure-text-DtvlUugx.js";
|
|
3
3
|
import { $n as isAmbiguousOutcomeError, $t as credentialFingerprint, Bn as withheldTargetClause, D as VALUE_NOT_SHOWN, Dn as TIMEOUT_FLAG_RESOURCE_TYPE, E as assertRegionMatch, En as withErrorHandling, Ft as buildLockContentionMessage, G as runDeleteAttempt, Hn as setPasteableVerbFlags, Ht as CUSTOM_RESOURCE_RESPONSE_PREFIX, In as plainOrDescribed, It as forceQuitRecoveryClause, Jt as setPasteableAwsProfile, Kt as producerCoordinateKey, Ln as quotedOrDescribed, Lt as formatLockExpiry, Nn as isInertUnquoted, Nt as UNREPRODUCIBLE_LOCK_CLAUSE, P as remedyLogicalId, Pn as pasteableCommand, Pt as buildForceUnlockCommand, Qt as clientDefaultsFor, Rn as shellBoundedDisplay, Rt as formatLockOperation, Sn as SynthesisError, T as RESOURCE_NOT_FOUND, Tn as normalizeAwsError, Ut as DEFAULT_STATE_PREFIX, Vn as setPasteableRunFlags, Wt as injectiveKey, Xt as ambientClientDefaults, Yt as withPasteableAwsProfile, Z as isAwsCliLiteral, Zt as ambientCredentialConfig, _n as ResourceTimeoutError, ar as isMarkedNonRetryable, bn as StackTerminationProtectionError, cn as IntrinsicResolutionRefusalError, en as AccountIdUnavailableError, ft as logicalIdShown, gn as ProvisioningError, hn as PartialFailureError, in as CrossAccountSecretRefusalError, it as isInterruptedWaitError, jn as commandHole, kn as SHELL_ACTIVE_WHY, ln as LocalInvokeBuildError$1, mn as NestedStackChildDirectDestroyError, mt as resourceTypeShown, n as RESOLVED_PREVIOUS_PRINCIPAL_KEYS, nn as CdkdError, nr as isTransientServerError, nt as endCommandInterruptScope, on as DeployCancelledError, or as isThrottlingError, pn as MalformedProducerRecordRefusalError, qt as producerRecordKey, rr as retryClassificationText, rt as interruptWatchListenerCount, s as readRecordedPrincipals, sn as DynamicReferenceRegionAmbiguousError, sr as markNonRetryable, t as IAM_PRINCIPAL_NAME, tr as isRetryableTransientError, tt as beginCommandInterruptScope, un as LocalStartServiceError, vn as ResourceUpdateNotSupportedError, yn as StackHasActiveImportsError, zn as shellQuote, zt as formatLockOwner } from "./iam-policy-targets-CwKiK9nS.js";
|
|
4
|
-
import { n as awsClientDefaults, r as getAssumedRoleCredentials, u as formatAuthority } from "./aws-client-defaults-D0q0z4dG.js";
|
|
5
|
-
import { $a as isStatefulRecreateTargetForReplace, $c as CFN_TEMPLATE_BODY_LIMIT, $i as malformedOrphansRefusalMessage, $n as ledgerForStack, $o as markSameGenerationBag, $r as sendableAssumeRoleCommand, $s as isSensitiveAttributeName, $t as seedsDeleteFirstGuard, A as noEchoComparisonForTemplate, Aa as refuseMalformedResourcesForDeploy, Ac as redactedDockerCause, Ai as declaresNoEcho, An as journaledOrphanPrintingBag, Ao as maskWholeValue, Ar as deleteIndeterminateGuards, As as isLockInfoExpired, At as dropFailedHint, Ba as unpreviewableOrphanRecords, Bc as getDefaultStateBucketName, Bi as hasReadableOutputs, Bn as PRE_DELETE_SNAPSHOT_TYPES, Bo as carryLogOnlyValues, Bs as acceptedCreateOnlyDropsOf, C as recordRetainedForReadoption, Ca as refuseMalformedResourceEntriesForImport, Cc as finchSecretArgvRefusal, Ci as cfnRefValueFromPhysicalId, Cn as collectDeclaredOutputNames, Cr as applyCustomResourceResponseExpiration, Cs as STATE_SOURCED_BASELINE_RULES, D as withResourceDeadline, Da as refuseMalformedResourcePropertiesForDrift, Dc as isMalformedEnvKey, Di as withSharedDrainBudget, Dn as DEFAULT_RESOURCE_TIMEOUT_MS, Do as isMarkedCoordinate, Ds as WHOLE_DYNAMIC_REFERENCE_PATTERN, E as serviceTokenBlockingReason, Ea as refuseMalformedResourcePropertiesForDestroy, Ec as isDockerClientEnvKey, En as bindingSkippedOutputs, Eo as canonicalCoordinates, Er as slowCcOperationTimeoutMs, Es as TEMPLATE_SOURCED_RULES, Et as collectNestedChildUnaddressed, F as PROTECTION_PROPERTY_BY_TYPE, Fa as repairMalformedOrphansForReadOnly, Fc as stripControlChars, Fi as UNREADABLE_RESOURCES_MAP_ROW, Fn as secretNamedRecordNeedles, Fs as applyCrossPrefixScan, Ft as sameJournaledOrphans, Gc as resolveCaptureObservedState, Gi as malformedExportNamesWarning, Gn as isFinalSnapshotError, Go as printingCorpusOf, Gr as poisonRenderedSpellingsCollidingIn, Gs as hasUnverifiableParameterRefusal, Gt as isJournaledOrphan, Ha as unreadableResourceEntries, Hc as loadCdkJson, Hi as isReadableOrphanRecord, Hn as ccRoutedFinalSnapshotError, Ho as hasMaskableValues, Hr as DiffCalculator, Hs as exportNamesCarriedFrom, Ht as removeProtectionTypeList, I as isProtectionValueActive, Ia as repairMalformedOutputsForReadOnly, Ic as AssetManifestLoader, Ii as accountArgs, In as stateSecretNameNeedles, Io as readbackPathFor, Is as crossPrefixDeniedWarning, It as replayFailedOperations, Ja as NO_CC_HANDLERS_REASON, Jc as resolveStateBucketWithDefaultAndSource, Ji as malformedLocalResourceEntriesWarning, Jn as maskingRetryLogger, Jo as shareLogOnlyValues, Jr as applyRoleArnIfSet, Js as isReadableBag, Jt as planRollback, Ka as unwrittenCreateOnlyReplacement, Kc as resolveSkipPrefix, Ki as malformedExportSourceWarning, Kn as refusesFinalSnapshot, Ko as recordLogOnlyParameterValue, Kr as producerLookupOver, Ks as importableOutputKeys, Kt as isReplacementOrphan, L as perType, La as repairMalformedResourceEntriesForReadOnly, Lc as getDockerImageBySourceHash, Li as deployRefusesOrphanRowsReason, Ln as storedSecretNameNeedles, Lo as readsNoEchoSource, Ls as isAccessDenied, Lt as replayRollback, M as noEchoParameterNamesOf, Ma as refuseMalformedResourcesForExport, Mc as runDockerStreaming, Mi as STATE_REGION_DIVERGED, Mn as orphanRecordsPrintingBag, Mo as noEchoCoordinatesOf, Mr as deleteSkipReason, Ms as rebuildClientForBucketRegion, Mt as journaledOrphanLines, N as recordedProtectionEvidence, Na as refuseMalformedState, Nc as warnFinchArgvExposure, Ni as STATE_RESOURCES_MALFORMED, Nn as secretNamePrintingBag, No as noEchoLeavesOf, Ns as CrossPrefixReadError, Nt as loadJournaledOrphans, O as diffSecurity, Oa as refuseMalformedResourcePropertiesForExport, Oc as partitionSensitiveEnv, Oi as parameterInputsFor, On as DEFAULT_RESOURCE_WARN_AFTER_MS, Oo as maskAtCoordinates, Or as RollbackInlinePolicyWriters, Os as isSingleDynamicReferenceToken, Ot as withNestedStackContext, P as recordedProtectionNote, Pa as repairMalformedOrphanRecordsForReadOnly, Pc as escapeRegExp, Pi as UNREADABLE_ORPHANS_CONTAINER_ROW, Pn as secretNamePrintingBags, Po as noEchoOutputsComparison, Pr as isWaitAbandonedError, Ps as CrossPrefixScanCache, Pt as makeForeignHolderScan, Qa as MULTI_REGION_RECREATE_BLOCKED_TYPES, Qc as ssmResolvedValueType, Qi as malformedOrphanRowsKeptWarning, Qo as maskSecretsInText, Qr as isIamRoleArn, Qs as AssetPublisher, Qt as resolveReplacementOldType, R as readProtection, Ra as repairMalformedResourcePropertiesForReadOnly, Rc as Synthesizer, Ri as displayLogicalId, Rn as extractDeploymentEventError, Ro as valueAtCoordinate, Rs as isNotImplemented, S as keptForReadoption, Sa as refuseMalformedResourceEntriesForDestroy, Sc as dockerSpawnEnvWithSensitive, Si as AWS_NO_VALUE, Sl as resolveAssemblyPath, Sn as noEchoParameterValueSeed, Sr as CUSTOM_RESOURCE_RESPONSE_LIFECYCLE_RULE_ID, Ss as wholeStringLeavesOf, St as recordDisplacedSkips, T as findServiceTokenRefusals, Ta as refuseMalformedResourceEntriesForOrphan, Tc as getDockerCmd, Ti as refStateLookupFromResource, Tn as isExportAliasCollision, To as TemplateParser, Tr as CloudControlProvider, Ts as STATE_SOURCED_READBACK_RULES, Tt as withNestedRevertRun, Ua as withheldAccountClause, Uc as resolveApp, Ui as isReadableResourceEntry, Un as createPreDeleteFinalSnapshot, Uo as literalSplitDelimitersOf, Ur as INTRINSIC_KEYS, Us as hasReadableExportSet, Ut as recordAfterRollbackUpdate, Va as unreadableOrphanRecords, Vc as getLegacyStateBucketName, Vi as hasReadableResources, Vn as buildFinalSnapshotIdentifier, Vo as createUnionSecretMasker, Vs as describeRegionValueKind, Vt as withStackRecords, Wa as findActionableSilentDrops, Wc as resolveAutoAssetStorage, Wi as malformedDriftResourcePropertiesWarning, Wn as effectiveDeletionPolicy, Wo as logOnlyValueCount, Wr as IntrinsicFunctionResolver, Ws as hasReasonlessBaselineRefusal, Wt as demoteSupersededOrphans, Xa as findReplacedReadersOfRecreateTargets, Xc as stateBucketExistenceConfirmed, Xi as malformedOrphanRecordsRefusalMessage, Xn as findDestructiveChanges, Xo as errorCauseChain, Xr as assertSendableRoleArn, Xs as orphansCarriedFrom, Xt as recordUnderIdIsNotOwn, Ya as hasNoCloudControlHandlers, Yc as resolveUseCdkBootstrapAssets, Yi as malformedLocalResourcesWarning, Yn as constructPathOf, Yo as createSecretMasker, Yr as assertFlagRoleArn, Ys as orphansAfterRollback, Yt as recheckFailedPlan, Za as shownType, Zc as warnDeprecatedNoPrefixCliFlag, Zi as malformedOrphanRecordsWarning, Zn as formatDestructiveChange, Zo as maskSecretsInError, Zr as explicitRoleArnOrThrow, Zs as shouldRetainResource, Zt as replacementNeverSwapped, _ as makeCanonicalizePropertiesFn, _a as refuseMalformedOutputs, _c as buildDockerImage, _i as isImpossibleEmptyStoredAttribute, _l as ownValue, _n as secretSafeKeyDisplay, _o as prefetchCreateOnlyPropertyPaths, _r as TemplateNoEchoReresolver, _s as recordMaskOnlyValue, _t as displacedOpClause, a as findNestedTemplateTreeDefect, aa as malformedResourcePropertiesWarning, ac as rewriteTemplateAssetReferences, al as decodeListingKey, as as dynamicReferenceTokens, at as cyan, ba as refuseMalformedResourceEntries, bc as describeDockerExecFailure, bi as isNamelessDynamicReferenceError, bl as displayAssemblyPath, bn as exportNameSecretExposure, bo as withRetry, bs as recordNoEchoParameterFreshValue, c as renderNestedTemplateTreeDefect, ca as malformedStateRefusalMessage, cc as assertAssetBucketRegion, cl as canonicalizeRegion, cn as updatePartialMessage, cs as identityKeyFor, ct as red, d as conditionInputsFrom, dc as isCrossRegionRedirect, di as producerRegionsFromState, dl as StageLoadError, dn as DeploymentEventsStore, dt as namesAnyDeclaredParameter, ea as malformedOrphansWarning, ec as stringifyValue, ei as AWS_CREDENTIAL_ENV_KEYS, el as CFN_TEMPLATE_URL_LIMIT, en as orphanDeleteNeedsIdentity, eo as isStatefulRecreateTargetSync, es as redactSecretsForState, f as parentSuppliedValues, fa as refuseMalformedOrphanRecords, fc as parseBootstrapMarker, fi as regionLessSecretName, fl as processStackMessages, fn as WITHHELD_NAME_DISPLAY, fr as CC_BROKEN_REASON, fs as physicalNameCopiesOf, ft as reachableDivergentParameters, g as mergeNoChangeOutputs, ga as refuseMalformedOrphansForOrphan, gc as buildDenyExternalAccessPolicy, gi as getAccountInfo, gl as nullPrototypeRecord, gn as secretBearingStateKeyWarning, gr as wouldReturnToSdkProvider, gs as provenPublicValue, gt as NESTED_PENDING_PARENT_REASON, h as keptWholeReasonText, ha as refuseMalformedOrphansForDestroy, hc as validateContainerRepoName, hi as parameterTypeMayLoseSecretIdentity, hl as hasPlainPrototype, hn as secretBearing, hr as isCustomResource, hs as carriesSecretMask, ht as planOrphanAdoption, i as childTemplateLoader, ia as malformedResourceEntriesWarning, ic as loadPublishableAssetManifest, il as CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION, is as DYNAMIC_REFERENCE_TOKEN_SCAN, it as bold, j as noEchoExactEchoLeavesOf, ja as refuseMalformedResourcesForDestroy, jc as runDockerForeground, ji as JSON_LISTING_HOLE_VALUE, jn as maskEventTextWithBoundBags, jo as maskedLeafCoordinatesOf, jr as deleteLeftInPlace, js as S3StateBackend, jt as isHandledOrphan, k as noEchoAttributeNamesOf, ka as refuseMalformedResourcePropertiesForOrphan, kc as redactDockerArgvValues, kn as completedReplayEntries, ko as maskReadbackAtCoordinates, kr as UNSPECIFIED_SKIP_REASON, ks as LockManager, kt as deleteJournaledOrphans, l as templateIdentity, la as previewableOrphanRecords, lc as ensureAssetStorage, ll as derivePartitionAndUrlSuffix, ln as updatePartialReason, ls as inheritNestedStackParameterAssociations, lt as yellow, m as isSecretBearingReferenceString, ma as refuseMalformedOrphans, mc as validateAssetBucketName, mi as isUnboundTemplateParameter, ml as hasOwnKey, mn as exportAliasCollisionScrubWarning, mr as ccBrokenReason, ms as splitGetAttStringForm, mt as makeSiblingClaimReader, n as IMPLICIT_DELETE_DEPENDENCIES, na as malformedOutputsWarning, nc as buildAssetRedirectMap, ni as callerEnvCredentials, nl as findLargeInlineResources, ns as withPhysicalNameCopies, nt as formatResourceLine, o as isAbsoluteAssetPath, oa as malformedResourcesWarning, oc as AssetModeResolver, ol as expectedOwnerParam, os as isUncertifiedBaselineMaskPosition, ot as gray, p as readRecordedConditionVerdicts, pa as refuseMalformedOrphanRecordsForDestroy, pc as readBootstrapMarkerBody, pi as coerceParameterTypedValue, pl as defineOwnKey, pn as displayTextOrWithheld, pr as ProviderRegistry, ps as recordPhysicalNameCopy, pt as resourcesNamingDeclaredParameter, qc as resolveStateBucketWithDefault, qi as malformedLocalOutputsWarning, qn as unsupportedFinalSnapshotError, qo as recordLogOnlyValue, qr as refuseUnreadableCdkCrossAccountRefs, qs as importableOutputs, qt as planFailedOps, r as computeImplicitDeleteEdges, ra as malformedRenderedContainersWarning, rc as createAssetRedirectResolver, ri as envCredentialsAreAssumedRole, rl as uploadCfnTemplate, rn as inheritProducerRegions, rt as createReadOnlyAttributeHealerFactory, s as listNestedTemplateRows, sa as malformedScrubResourceEntriesRefusalMessage, sc as BOOTSTRAP_MARKER_PREFIX, sl as PARTITION_TABLE, ss as pathCrossesDottedKey, st as green, t as DeployEngine, ta as malformedOutputsRefusalMessage, tc as WorkGraph, ti as applyCallerIdentityCredentials, tl as MIGRATE_TMP_PREFIX, tn as findNestedStackTypeChanges, to as renderStatefulReason, tr as withCreateTokenLedger, ts as scrubResourceRecord, u as conditionFingerprint, ua as refuseDivergentRecordRegionForDestroy, uc as getBootstrapMarkerKey, ui as classifyReplaySecretRegion, ul as AssemblyReader, un as DeploymentEventsReader, us as recordNestedStackParameterExpressions, ut as computeParameterTaint, va as refuseMalformedOutputsForDestroy, vc as resolveDockerContextDirectory, vi as carriesDynamicReference, vl as absoluteAssemblyPathEscape, vn as carriedExportAliasExposure, vo as templateResourceTypes, vr as readsNoEchoDeleteValues, vs as recordMaskOnlyValuesIn, vt as displacedPhysicalIdShown, w as deferredServiceTokenWarning, wa as refuseMalformedResourceEntriesForImportSave, wc as formatDockerLoginError, wi as isStalePlaceholderArnAttribute, wl as resolveBucketRegion, wn as collectPublishedOutputNames, wo as DagBuilder, wr as customResourceResponseExpirationWarning, ws as STATE_SOURCED_CROSS_GENERATION_RULES, wt as revertedNestedRowIds, xa as refuseMalformedResourceEntriesForDeploy, xc as describeDockerFailure, xi as keepsSecretReferenceToken, xl as renderAssemblyPathEscape, xn as isWholeDynamicReferenceValue, xr as withPrintingSecrets, xs as recordProvenPublicExpression, xt as nestedChildStackName$1, ya as refuseMalformedResourceAttributesForOrphan, yc as describeDockerCapturedOutput, yi as carriesFetchableDynamicReference, yl as describeFileReadFailure, yn as exportNameNoEchoParameters, yo as describeTypeWithThrottleRetry, yr as isCustomResourceType$1, ys as recordNoEchoAttributeValues, yt as dropSettledNestedJournals, za as repairMalformedResourcesForReadOnly, zc as synthesisStatusMessage, zi as hasReadableOrphans, zn as ATOMIC_FINAL_SNAPSHOT_TYPES, zo as liveMatchesUnresolvedTokenFrame, zs as splitImportedOps, zt as destroyStackRecordsView } from "./deploy-engine-A-Ys_mhE.js";
|
|
6
|
-
import { t as getCdkdVersion } from "./version-
|
|
4
|
+
import { a as setAssumedRoleCredentials, n as awsClientDefaults, r as getAssumedRoleCredentials, u as formatAuthority } from "./aws-client-defaults-D0q0z4dG.js";
|
|
5
|
+
import { $a as isStatefulRecreateTargetForReplace, $c as warnDeprecatedNoPrefixCliFlag, $i as malformedOrphansRefusalMessage, $n as ledgerForStack, $o as markSameGenerationBag, $r as sendableAssumeRoleCommand, $s as AssetPublisher, $t as seedsDeleteFirstGuard, A as noEchoComparisonForTemplate, Aa as refuseMalformedResourcesForDeploy, Ac as redactDockerArgvValues, Ai as declaresNoEcho, An as journaledOrphanPrintingBag, Ao as maskWholeValue, Ar as deleteIndeterminateGuards, As as LockManager, At as dropFailedHint, Ba as unpreviewableOrphanRecords, Bc as Synthesizer, Bi as hasReadableOutputs, Bn as PRE_DELETE_SNAPSHOT_TYPES, Bo as carryLogOnlyValues, Bs as splitImportedOps, C as recordRetainedForReadoption, Ca as refuseMalformedResourceEntriesForImport, Cc as dockerSpawnEnvWithSensitive, Ci as cfnRefValueFromPhysicalId, Cl as renderAssemblyPathEscape, Cn as collectDeclaredOutputNames, Cr as applyCustomResourceResponseExpiration, Cs as wholeStringLeavesOf, D as withResourceDeadline, Da as refuseMalformedResourcePropertiesForDrift, Dc as isDockerClientEnvKey, Di as withSharedDrainBudget, Dn as DEFAULT_RESOURCE_TIMEOUT_MS, Do as isMarkedCoordinate, Ds as TEMPLATE_SOURCED_RULES, E as serviceTokenBlockingReason, Ea as refuseMalformedResourcePropertiesForDestroy, Ec as getDockerCmd, El as resolveBucketRegion, En as bindingSkippedOutputs, Eo as canonicalCoordinates, Er as slowCcOperationTimeoutMs, Es as STATE_SOURCED_READBACK_RULES, Et as collectNestedChildUnaddressed, F as PROTECTION_PROPERTY_BY_TYPE, Fa as repairMalformedOrphansForReadOnly, Fc as escapeRegExp, Fi as UNREADABLE_RESOURCES_MAP_ROW, Fn as secretNamedRecordNeedles, Fs as CrossPrefixScanCache, Ft as sameJournaledOrphans, Gc as resolveApp, Gi as malformedExportNamesWarning, Gn as isFinalSnapshotError, Go as printingCorpusOf, Gr as poisonRenderedSpellingsCollidingIn, Gs as hasReasonlessBaselineRefusal, Gt as isJournaledOrphan, Ha as unreadableResourceEntries, Hc as getDefaultStateBucketName, Hi as isReadableOrphanRecord, Hn as ccRoutedFinalSnapshotError, Ho as hasMaskableValues, Hr as DiffCalculator, Hs as describeRegionValueKind, Ht as removeProtectionTypeList, I as isProtectionValueActive, Ia as repairMalformedOutputsForReadOnly, Ic as stripControlChars, Ii as accountArgs, In as stateSecretNameNeedles, Io as readbackPathFor, Is as applyCrossPrefixScan, It as replayFailedOperations, Ja as NO_CC_HANDLERS_REASON, Jc as resolveSkipPrefix, Ji as malformedLocalResourceEntriesWarning, Jn as maskingRetryLogger, Jo as shareLogOnlyValues, Jr as applyRoleArnIfSet, Js as importableOutputs, Jt as planRollback, Ka as unwrittenCreateOnlyReplacement, Kc as resolveAutoAssetStorage, Ki as malformedExportSourceWarning, Kn as refusesFinalSnapshot, Ko as recordLogOnlyParameterValue, Kr as producerLookupOver, Ks as hasUnverifiableParameterRefusal, Kt as isReplacementOrphan, L as perType, La as repairMalformedResourceEntriesForReadOnly, Lc as stripForDisplay, Li as deployRefusesOrphanRowsReason, Ln as storedSecretNameNeedles, Lo as readsNoEchoSource, Ls as crossPrefixDeniedWarning, Lt as replayRollback, M as noEchoParameterNamesOf, Ma as refuseMalformedResourcesForExport, Mc as runDockerForeground, Mi as STATE_REGION_DIVERGED, Mn as orphanRecordsPrintingBag, Mo as noEchoCoordinatesOf, Mr as deleteSkipReason, Ms as S3StateBackend, Mt as journaledOrphanLines, N as recordedProtectionEvidence, Na as refuseMalformedState, Nc as runDockerStreaming, Ni as STATE_RESOURCES_MALFORMED, Nn as secretNamePrintingBag, No as noEchoLeavesOf, Ns as rebuildClientForBucketRegion, Nt as loadJournaledOrphans, O as diffSecurity, Oa as refuseMalformedResourcePropertiesForExport, Oc as isMalformedEnvKey, Oi as parameterInputsFor, On as DEFAULT_RESOURCE_WARN_AFTER_MS, Oo as maskAtCoordinates, Or as RollbackInlinePolicyWriters, Os as WHOLE_DYNAMIC_REFERENCE_PATTERN, Ot as withNestedStackContext, P as recordedProtectionNote, Pa as repairMalformedOrphanRecordsForReadOnly, Pc as warnFinchArgvExposure, Pi as UNREADABLE_ORPHANS_CONTAINER_ROW, Pn as secretNamePrintingBags, Po as noEchoOutputsComparison, Pr as isWaitAbandonedError, Ps as CrossPrefixReadError, Pt as makeForeignHolderScan, Qa as MULTI_REGION_RECREATE_BLOCKED_TYPES, Qc as stateBucketExistenceConfirmed, Qi as malformedOrphanRowsKeptWarning, Qo as maskSecretsInText, Qr as isIamRoleArn, Qs as shouldRetainResource, Qt as resolveReplacementOldType, R as readProtection, Ra as repairMalformedResourcePropertiesForReadOnly, Rc as AssetManifestLoader, Ri as displayLogicalId, Rn as extractDeploymentEventError, Ro as valueAtCoordinate, Rs as isAccessDenied, S as keptForReadoption, Sa as refuseMalformedResourceEntriesForDestroy, Sc as describeDockerFailure, Si as AWS_NO_VALUE, Sl as displayAssemblyPath, Sn as noEchoParameterValueSeed, Sr as CUSTOM_RESOURCE_RESPONSE_LIFECYCLE_RULE_ID, Ss as recordProvenPublicExpression, St as recordDisplacedSkips, T as findServiceTokenRefusals, Ta as refuseMalformedResourceEntriesForOrphan, Tc as formatDockerLoginError, Ti as refStateLookupFromResource, Tn as isExportAliasCollision, To as TemplateParser, Tr as CloudControlProvider, Ts as STATE_SOURCED_CROSS_GENERATION_RULES, Tt as withNestedRevertRun, Ua as withheldAccountClause, Uc as getLegacyStateBucketName, Ui as isReadableResourceEntry, Un as createPreDeleteFinalSnapshot, Uo as literalSplitDelimitersOf, Ur as INTRINSIC_KEYS, Us as exportNamesCarriedFrom, Ut as recordAfterRollbackUpdate, Va as unreadableOrphanRecords, Vc as synthesisStatusMessage, Vi as hasReadableResources, Vn as buildFinalSnapshotIdentifier, Vo as createUnionSecretMasker, Vs as acceptedCreateOnlyDropsOf, Vt as withStackRecords, Wa as findActionableSilentDrops, Wc as loadCdkJson, Wi as malformedDriftResourcePropertiesWarning, Wn as effectiveDeletionPolicy, Wo as logOnlyValueCount, Wr as IntrinsicFunctionResolver, Ws as hasReadableExportSet, Wt as demoteSupersededOrphans, Xa as findReplacedReadersOfRecreateTargets, Xc as resolveStateBucketWithDefaultAndSource, Xi as malformedOrphanRecordsRefusalMessage, Xn as findDestructiveChanges, Xo as errorCauseChain, Xr as assertSendableRoleArn, Xs as orphansAfterRollback, Xt as recordUnderIdIsNotOwn, Ya as hasNoCloudControlHandlers, Yc as resolveStateBucketWithDefault, Yi as malformedLocalResourcesWarning, Yn as constructPathOf, Yo as createSecretMasker, Yr as assertFlagRoleArn, Ys as isReadableBag, Yt as recheckFailedPlan, Za as shownType, Zc as resolveUseCdkBootstrapAssets, Zi as malformedOrphanRecordsWarning, Zn as formatDestructiveChange, Zo as maskSecretsInError, Zr as explicitRoleArnOrThrow, Zs as orphansCarriedFrom, Zt as replacementNeverSwapped, _ as makeCanonicalizePropertiesFn, _a as refuseMalformedOutputs, _c as buildDenyExternalAccessPolicy, _i as isImpossibleEmptyStoredAttribute, _l as hasPlainPrototype, _n as secretSafeKeyDisplay, _o as prefetchCreateOnlyPropertyPaths, _r as TemplateNoEchoReresolver, _s as provenPublicValue, _t as displacedOpClause, a as findNestedTemplateTreeDefect, aa as malformedResourcePropertiesWarning, ac as loadPublishableAssetManifest, al as uploadCfnTemplate, as as dynamicReferenceTokens, at as cyan, ba as refuseMalformedResourceEntries, bc as describeDockerCapturedOutput, bi as isNamelessDynamicReferenceError, bl as absoluteAssemblyPathEscape, bn as exportNameSecretExposure, bo as withRetry, bs as recordNoEchoAttributeValues, c as renderNestedTemplateTreeDefect, ca as malformedStateRefusalMessage, cc as BOOTSTRAP_MARKER_PREFIX, cl as expectedOwnerParam, cn as updatePartialMessage, cs as identityKeyFor, ct as red, d as conditionInputsFrom, dc as getBootstrapMarkerKey, di as producerRegionsFromState, dl as derivePartitionAndUrlSuffix, dn as DeploymentEventsStore, dt as namesAnyDeclaredParameter, ea as malformedOrphansWarning, ec as isSensitiveAttributeName, ei as AWS_CREDENTIAL_ENV_KEYS, el as ssmResolvedValueType, en as orphanDeleteNeedsIdentity, eo as isStatefulRecreateTargetSync, es as redactSecretsForState, f as parentSuppliedValues, fa as refuseMalformedOrphanRecords, fc as isCrossRegionRedirect, fi as regionLessSecretName, fl as AssemblyReader, fn as WITHHELD_NAME_DISPLAY, fr as CC_BROKEN_REASON, fs as physicalNameCopiesOf, ft as reachableDivergentParameters, g as mergeNoChangeOutputs, ga as refuseMalformedOrphansForOrphan, gc as validateContainerRepoName, gi as getAccountInfo, gl as hasOwnKey, gn as secretBearingStateKeyWarning, gr as wouldReturnToSdkProvider, gs as carriesSecretMask, gt as NESTED_PENDING_PARENT_REASON, h as keptWholeReasonText, ha as refuseMalformedOrphansForDestroy, hc as validateAssetBucketName, hi as parameterTypeMayLoseSecretIdentity, hl as defineOwnKey, hn as secretBearing, hr as isCustomResource, hs as splitGetAttStringForm, ht as planOrphanAdoption, i as childTemplateLoader, ia as malformedResourceEntriesWarning, ic as createAssetRedirectResolver, il as findLargeInlineResources, is as DYNAMIC_REFERENCE_TOKEN_SCAN, it as bold, j as noEchoExactEchoLeavesOf, ja as refuseMalformedResourcesForDestroy, jc as redactedDockerCause, ji as JSON_LISTING_HOLE_VALUE, jn as maskEventTextWithBoundBags, jo as maskedLeafCoordinatesOf, jr as deleteLeftInPlace, js as isLockInfoExpired, jt as isHandledOrphan, k as noEchoAttributeNamesOf, ka as refuseMalformedResourcePropertiesForOrphan, kc as partitionSensitiveEnv, kn as completedReplayEntries, ko as maskReadbackAtCoordinates, kr as UNSPECIFIED_SKIP_REASON, ks as isSingleDynamicReferenceToken, kt as deleteJournaledOrphans, l as templateIdentity, la as previewableOrphanRecords, lc as assertAssetBucketRegion, ll as PARTITION_TABLE, ln as updatePartialReason, ls as inheritNestedStackParameterAssociations, lt as yellow, m as isSecretBearingReferenceString, ma as refuseMalformedOrphans, mc as readBootstrapMarkerBody, mi as isUnboundTemplateParameter, ml as processStackMessages, mn as exportAliasCollisionScrubWarning, mr as ccBrokenReason, ms as recordPhysicalNameCopy, mt as makeSiblingClaimReader, n as IMPLICIT_DELETE_DEPENDENCIES, na as malformedOutputsWarning, nc as WorkGraph, ni as callerEnvCredentials, nl as CFN_TEMPLATE_URL_LIMIT, ns as withPhysicalNameCopies, nt as formatResourceLine, o as isAbsoluteAssetPath, oa as malformedResourcesWarning, oc as rewriteTemplateAssetReferences, ol as CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION, os as isUncertifiedBaselineMaskPosition, ot as gray, p as readRecordedConditionVerdicts, pa as refuseMalformedOrphanRecordsForDestroy, pc as parseBootstrapMarker, pi as coerceParameterTypedValue, pl as StageLoadError, pn as displayTextOrWithheld, pr as ProviderRegistry, pt as resourcesNamingDeclaredParameter, qc as resolveCaptureObservedState, qi as malformedLocalOutputsWarning, qn as unsupportedFinalSnapshotError, qo as recordLogOnlyValue, qr as refuseUnreadableCdkCrossAccountRefs, qs as importableOutputKeys, qt as planFailedOps, r as computeImplicitDeleteEdges, ra as malformedRenderedContainersWarning, rc as buildAssetRedirectMap, ri as envCredentialsAreAssumedRole, rl as MIGRATE_TMP_PREFIX, rn as inheritProducerRegions, rt as createReadOnlyAttributeHealerFactory, s as listNestedTemplateRows, sa as malformedScrubResourceEntriesRefusalMessage, sc as AssetModeResolver, sl as decodeListingKey, ss as pathCrossesDottedKey, st as green, t as DeployEngine, ta as malformedOutputsRefusalMessage, tc as stringifyValue, ti as applyCallerIdentityCredentials, tl as CFN_TEMPLATE_BODY_LIMIT, tn as findNestedStackTypeChanges, to as renderStatefulReason, tr as withCreateTokenLedger, ts as scrubResourceRecord, u as conditionFingerprint, ua as refuseDivergentRecordRegionForDestroy, uc as ensureAssetStorage, ui as classifyReplaySecretRegion, ul as canonicalizeRegion, un as DeploymentEventsReader, us as recordNestedStackParameterExpressions, ut as computeParameterTaint, va as refuseMalformedOutputsForDestroy, vc as buildDockerImage, vi as carriesDynamicReference, vl as nullPrototypeRecord, vn as carriedExportAliasExposure, vo as templateResourceTypes, vr as readsNoEchoDeleteValues, vs as recordMaskOnlyValue, vt as displacedPhysicalIdShown, w as deferredServiceTokenWarning, wa as refuseMalformedResourceEntriesForImportSave, wc as finchSecretArgvRefusal, wi as isStalePlaceholderArnAttribute, wl as resolveAssemblyPath, wn as collectPublishedOutputNames, wo as DagBuilder, wr as customResourceResponseExpirationWarning, ws as STATE_SOURCED_BASELINE_RULES, wt as revertedNestedRowIds, xa as refuseMalformedResourceEntriesForDeploy, xc as describeDockerExecFailure, xi as keepsSecretReferenceToken, xl as describeFileReadFailure, xn as isWholeDynamicReferenceValue, xr as withPrintingSecrets, xs as recordNoEchoParameterFreshValue, xt as nestedChildStackName$1, ya as refuseMalformedResourceAttributesForOrphan, yc as resolveDockerContextDirectory, yi as carriesFetchableDynamicReference, yl as ownValue, yn as exportNameNoEchoParameters, yo as describeTypeWithThrottleRetry, yr as isCustomResourceType$1, ys as recordMaskOnlyValuesIn, yt as dropSettledNestedJournals, za as repairMalformedResourcesForReadOnly, zc as getDockerImageBySourceHash, zi as hasReadableOrphans, zn as ATOMIC_FINAL_SNAPSHOT_TYPES, zo as liveMatchesUnresolvedTokenFrame, zs as isNotImplemented, zt as destroyStackRecordsView } from "./deploy-engine-DLGCuN4i.js";
|
|
6
|
+
import { t as getCdkdVersion } from "./version-CWATUXWX.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";
|
|
@@ -28,8 +28,8 @@ import { Command, InvalidArgumentError, Option } from "commander";
|
|
|
28
28
|
import * as readline$1 from "node:readline/promises";
|
|
29
29
|
import readline from "node:readline/promises";
|
|
30
30
|
import { Document, Pair, Scalar, YAMLMap, YAMLSeq, isScalar, parse, stringify, visit } from "yaml";
|
|
31
|
+
import { A2A_CONTAINER_PORT, A2A_PATH, AGENTCORE_A2A_PROTOCOL, AGENTCORE_AGUI_PROTOCOL, AGENTCORE_MCP_PROTOCOL, ConnectionRegistry, DynamicReferenceResolver, EcsTaskResolutionError, HOST_GATEWAY_MIN_VERSION, LocalInvokeBuildError, MCP_CONTAINER_PORT, MCP_PATH, a2aInvokeOnce, addAlbSpecificOptions, addCommonEcsServiceOptions, addStartServiceSpecificOptions, albStrategy, architectureToPlatform, attachAuthorizers, attachStageContext, availableApiIdentifiers, bufferToBody, buildAgentCoreCodeImage, buildCognitoJwksUrl, buildConnectEvent, buildContainerImage, buildCorsConfigByApiId, buildCorsConfigFromCloudFrontChain, buildDisconnectEvent, buildJwksUrlFromIssuer, buildMessageEvent, buildMgmtEndpointEnvUrl, buildStageMap, classifySourceChange, containsDynamicReference, createAuthorizerCache, createFileWatcher, createFileWatcher as createFileWatcher$1, createJwksCache, createWatchPredicates, defaultCredentialsLoader, derivePseudoParametersFromRegion, describeAwsFailureForWarn, describeCredentialLoadFailure, discoverRoutes, discoverWebSocketApis, downloadAndExtractS3Bundle, filterRoutesByApiIdentifier, firstUsableRegion, groupRoutesByServer, handleConnectionsRequest, invokeAgentCore, invokeAgentCoreWs, keysNotFromTemplate, keysOverriddenBy, materializeLayerFromArn, mcpInvokeOnce, parseConnectionsPath, parseSelectionExpressionPath, pickAgentCoreCandidateStack, pickAgentCoreCandidateStack as pickAgentCoreCandidateStack$1, probeHostGatewaySupport, readMtlsMaterialsFromDisk, resolveAgentCoreTarget, resolveDynamicReferencesInEnv, resolveEnvVars, resolveHostGatewayExtraHosts, resolveRuntimeCodeMountPath, resolveRuntimeFileExtension, resolveRuntimeImage, resolveSingleTarget, resolveWatchConfig, runEcsServiceEmulator, signAgentCoreInvocation, startApiServer, substituteImagePlaceholders, tryResolveImageFnJoin, verifyJwtViaDiscovery, waitForAgentCorePing, withoutKeys } from "cdk-local/internal";
|
|
31
32
|
import { CfnLocalStateProvider, createLocalStartAgentCoreCommand, createLocalStartCloudFrontCommand, createLocalStateProvider, getEmbedConfig, isCfnFlagPresent, isCfnFlagPresent as isCfnFlagPresent$1, listTargets, rejectExplicitCfnStackWithMultipleStacks, resolveCfnFallbackRegion, setEmbedConfig, substituteAgainstState, substituteAgainstStateAsync, substituteEnvVarsFromState, substituteEnvVarsFromStateAsync } from "cdk-local";
|
|
32
|
-
import { A2A_CONTAINER_PORT, A2A_PATH, AGENTCORE_A2A_PROTOCOL, AGENTCORE_AGUI_PROTOCOL, AGENTCORE_MCP_PROTOCOL, ConnectionRegistry, DynamicReferenceResolver, EcsTaskResolutionError, HOST_GATEWAY_MIN_VERSION, LocalInvokeBuildError, MCP_CONTAINER_PORT, MCP_PATH, a2aInvokeOnce, addAlbSpecificOptions, addCommonEcsServiceOptions, addStartServiceSpecificOptions, albStrategy, architectureToPlatform, attachAuthorizers, attachStageContext, availableApiIdentifiers, bufferToBody, buildAgentCoreCodeImage, buildCognitoJwksUrl, buildConnectEvent, buildContainerImage, buildCorsConfigByApiId, buildCorsConfigFromCloudFrontChain, buildDisconnectEvent, buildJwksUrlFromIssuer, buildMessageEvent, buildMgmtEndpointEnvUrl, buildStageMap, classifySourceChange, containsDynamicReference, createAuthorizerCache, createFileWatcher, createFileWatcher as createFileWatcher$1, createJwksCache, createWatchPredicates, defaultCredentialsLoader, derivePseudoParametersFromRegion, discoverRoutes, discoverWebSocketApis, downloadAndExtractS3Bundle, filterRoutesByApiIdentifier, firstUsableRegion, groupRoutesByServer, handleConnectionsRequest, invokeAgentCore, invokeAgentCoreWs, keysNotFromTemplate, keysOverriddenBy, materializeLayerFromArn, mcpInvokeOnce, parseConnectionsPath, parseSelectionExpressionPath, pickAgentCoreCandidateStack, pickAgentCoreCandidateStack as pickAgentCoreCandidateStack$1, probeHostGatewaySupport, readMtlsMaterialsFromDisk, resolveAgentCoreTarget, resolveDynamicReferencesInEnv, resolveEnvVars, resolveHostGatewayExtraHosts, resolveRuntimeCodeMountPath, resolveRuntimeFileExtension, resolveRuntimeImage, resolveSingleTarget, resolveWatchConfig, runEcsServiceEmulator, signAgentCoreInvocation, startApiServer, substituteImagePlaceholders, tryResolveImageFnJoin, verifyJwtViaDiscovery, waitForAgentCorePing, withoutKeys } from "cdk-local/internal";
|
|
33
33
|
import { createServer } from "node:net";
|
|
34
34
|
import { setTimeout as setTimeout$1 } from "node:timers/promises";
|
|
35
35
|
import { mkdtemp, rm, writeFile } from "node:fs/promises";
|
|
@@ -2088,6 +2088,11 @@ var ExportIndexStore = class {
|
|
|
2088
2088
|
if (this.loadState.kind !== "loaded") return;
|
|
2089
2089
|
return this.loadState.entries.get(exportName);
|
|
2090
2090
|
}
|
|
2091
|
+
async prefetch() {
|
|
2092
|
+
try {
|
|
2093
|
+
await this.ensureLoaded();
|
|
2094
|
+
} catch {}
|
|
2095
|
+
}
|
|
2091
2096
|
async updateForStack(stackName, producerRegion, outputs) {
|
|
2092
2097
|
await this.enqueueWrite("update", () => this.applyStackUpdate(stackName, producerRegion, outputs));
|
|
2093
2098
|
}
|
|
@@ -2433,7 +2438,7 @@ function collectCrossStackRefs(node, onRef, unconditional) {
|
|
|
2433
2438
|
//#region src/provisioning/register-providers.ts
|
|
2434
2439
|
let providerClasses;
|
|
2435
2440
|
function loadProviderClasses() {
|
|
2436
|
-
providerClasses ??= import("./provider-classes-
|
|
2441
|
+
providerClasses ??= import("./provider-classes-BTP4rLU6.js");
|
|
2437
2442
|
return providerClasses;
|
|
2438
2443
|
}
|
|
2439
2444
|
function registerAllProviders(registry, classes) {
|
|
@@ -3196,7 +3201,7 @@ Force-quit: stack locks may not be released. If the next run reports a lock, run
|
|
|
3196
3201
|
region: baseRegion,
|
|
3197
3202
|
...options.profile && { profile: options.profile }
|
|
3198
3203
|
});
|
|
3199
|
-
const stackLockManager = new LockManager(stateS3Client.s3, stateConfig);
|
|
3204
|
+
const stackLockManager = new LockManager(stateS3Client.s3, stateConfig, { deferReleasePurge: true });
|
|
3200
3205
|
const stackProviderRegistry = new ProviderRegistry();
|
|
3201
3206
|
registerAllProviders(stackProviderRegistry, providerClasses);
|
|
3202
3207
|
stackProviderRegistry.setCustomResourceResponseBucket(stateBucket);
|
|
@@ -3395,7 +3400,7 @@ Force-quit: stack locks may not be released. If the next run reports a lock, run
|
|
|
3395
3400
|
recordRunFailed(eventRecorder, stackInfo.stackName, deployError);
|
|
3396
3401
|
throw deployError;
|
|
3397
3402
|
} finally {
|
|
3398
|
-
|
|
3403
|
+
await Promise.all([eventRecorder?.finalize(runResult), stackLockManager.settleDeferredPurges()]);
|
|
3399
3404
|
stackAwsClients.destroy();
|
|
3400
3405
|
stateS3Client.destroy();
|
|
3401
3406
|
}
|
|
@@ -3656,12 +3661,12 @@ async function resolveTemplateOutputs(template, resolveFn, conditions, storedOut
|
|
|
3656
3661
|
};
|
|
3657
3662
|
for (const [outputKey, output] of Object.entries(template.Outputs)) {
|
|
3658
3663
|
if (output.Condition !== void 0 && conditions?.[output.Condition] === false) {
|
|
3659
|
-
logger.debug(`Skipping output ${
|
|
3664
|
+
logger.debug(`Skipping output ${stripForDisplay(outputKey)} — condition ${stripForDisplay(String(output.Condition))} is false`);
|
|
3660
3665
|
await recordSkippedSecretExportName(output);
|
|
3661
3666
|
continue;
|
|
3662
3667
|
}
|
|
3663
3668
|
if (skippedOutputKeys?.has(outputKey) && !(storedOutputs !== void 0 && Object.prototype.hasOwnProperty.call(storedOutputs, outputKey))) {
|
|
3664
|
-
logger.debug(`Diff previewing output ${
|
|
3669
|
+
logger.debug(`Diff previewing output ${stripForDisplay(outputKey)} as absent — the last deploy could not resolve it and its template inputs are unchanged`);
|
|
3665
3670
|
if (outputsPass !== void 0) try {
|
|
3666
3671
|
await resolveValue(structuredClone(output.Value));
|
|
3667
3672
|
} catch {}
|
|
@@ -3673,7 +3678,7 @@ async function resolveTemplateOutputs(template, resolveFn, conditions, storedOut
|
|
|
3673
3678
|
try {
|
|
3674
3679
|
value = await resolveValue(structuredClone(output.Value));
|
|
3675
3680
|
} catch (error) {
|
|
3676
|
-
logger.debug(`Diff could not resolve output ${
|
|
3681
|
+
logger.debug(`Diff could not resolve output ${stripForDisplay(outputKey)}: ${stripForDisplay(String(error))}`);
|
|
3677
3682
|
resolutionFailed = true;
|
|
3678
3683
|
recordFailure(outputKey, output);
|
|
3679
3684
|
failedOutputKeys.add(outputKey);
|
|
@@ -3681,7 +3686,7 @@ async function resolveTemplateOutputs(template, resolveFn, conditions, storedOut
|
|
|
3681
3686
|
continue;
|
|
3682
3687
|
}
|
|
3683
3688
|
if (isUnresolvedValue(value, sourceUsedSub)) {
|
|
3684
|
-
logger.debug(`Diff left output ${
|
|
3689
|
+
logger.debug(`Diff left output ${stripForDisplay(outputKey)} unresolved (references a pending resource)`);
|
|
3685
3690
|
resolutionFailed = true;
|
|
3686
3691
|
recordFailure(outputKey, output);
|
|
3687
3692
|
if (value === void 0) failedOutputKeys.add(outputKey);
|
|
@@ -3708,7 +3713,7 @@ async function resolveTemplateOutputs(template, resolveFn, conditions, storedOut
|
|
|
3708
3713
|
if (typeof exportName !== "string") try {
|
|
3709
3714
|
exportName = await (outputsPass?.resolveInto(nameBag) ?? resolveFn)(structuredClone(exportName));
|
|
3710
3715
|
} catch (error) {
|
|
3711
|
-
logger.debug(`Diff could not resolve Export.Name of ${
|
|
3716
|
+
logger.debug(`Diff could not resolve Export.Name of ${stripForDisplay(outputKey)}: ${stripForDisplay(String(error))}`);
|
|
3712
3717
|
resolutionFailed = true;
|
|
3713
3718
|
failuresMirrorDeploy = false;
|
|
3714
3719
|
continue;
|
|
@@ -3737,8 +3742,8 @@ async function resolveTemplateOutputs(template, resolveFn, conditions, storedOut
|
|
|
3737
3742
|
} else if (refusesNoEchoName(exportName, nameBag)) {
|
|
3738
3743
|
refusedNoEchoExportNames.push(exportName);
|
|
3739
3744
|
logger.debug(safeMsg`Diff skipping export alias of ${ownerDisplay(outputKey)} — the name carries a value this pass recorded as secret`);
|
|
3740
|
-
} else if (declaredExportIsIntrinsic && keepsSecretReferenceToken(exportName)) logger.debug(`Diff skipping export alias of ${
|
|
3741
|
-
else if (isExportAliasCollision(exportName, outputKey, publishedOutputNames)) logger.debug(`Diff skipping export alias ${
|
|
3745
|
+
} else if (declaredExportIsIntrinsic && keepsSecretReferenceToken(exportName)) logger.debug(`Diff skipping export alias of ${stripForDisplay(outputKey)} — the name carries a secret reference`);
|
|
3746
|
+
else if (isExportAliasCollision(exportName, outputKey, publishedOutputNames)) logger.debug(`Diff skipping export alias ${stripForDisplay(exportName)} of ${stripForDisplay(outputKey)} — collides with an output name`);
|
|
3742
3747
|
else pendingAliases.push({
|
|
3743
3748
|
outputKey,
|
|
3744
3749
|
exportName,
|
|
@@ -3756,7 +3761,7 @@ async function resolveTemplateOutputs(template, resolveFn, conditions, storedOut
|
|
|
3756
3761
|
outputs[exportName] = value;
|
|
3757
3762
|
exportNames.add(exportName);
|
|
3758
3763
|
} else {
|
|
3759
|
-
logger.debug(`Diff cannot decide the export alias of ${
|
|
3764
|
+
logger.debug(`Diff cannot decide the export alias of ${stripForDisplay(outputKey)} — a literal name may contain a resolved secret and state does not hold that key`);
|
|
3760
3765
|
failedKeys.add(exportName);
|
|
3761
3766
|
resolutionFailed = true;
|
|
3762
3767
|
failuresMirrorDeploy = false;
|
|
@@ -5018,10 +5023,10 @@ async function computeStackDiff(currentState, template, region, stackName, state
|
|
|
5018
5023
|
const isStored = (key) => Object.prototype.hasOwnProperty.call(storedOutputs, key);
|
|
5019
5024
|
const compared = failed.filter(isStored);
|
|
5020
5025
|
const unstored = failed.filter((key) => !isStored(key));
|
|
5021
|
-
const names = (keys) => keys.map(
|
|
5026
|
+
const names = (keys) => keys.map(stripForDisplay).join(", ");
|
|
5022
5027
|
const explainWithheld = withheld && outputChanges.some((change) => change.oldValueRedacted === true);
|
|
5023
|
-
logger.warn(`Outputs of stack ${
|
|
5024
|
-
} else if (diffOutputsAgainst(resolved.outputs, resolved.exportNames).filter((change) => !resolved.failedKeys.has(change.name)).length > 0) logger.warn(`Outputs of stack ${
|
|
5028
|
+
logger.warn(`Outputs of stack ${stripForDisplay(stackName)}: ${failed.length} output(s) could not be resolved for this diff.` + (compared.length > 0 ? ` Compared at their stored values: ${names(compared)}.` : "") + (unstored.length > 0 ? ` No stored value under their own names: ${names(unstored)}.` : "") + ` The next deploy may write a value for any of them it can resolve.` + (explainWithheld ? ` Previous values in this Outputs section are withheld because a value carried from state for a failed output is not a secret reference, so this diff cannot rule out legacy plaintext in state. That reason no longer applies once every failed output resolves, though other legacy-plaintext checks still can withhold them.` : ""));
|
|
5029
|
+
} else if (diffOutputsAgainst(resolved.outputs, resolved.exportNames).filter((change) => !resolved.failedKeys.has(change.name)).length > 0) logger.warn(`Outputs of stack ${stripForDisplay(stackName)} may have changed, but one or more could not be resolved against current state — omitting the Outputs section from this diff. ` + (merge?.kind === "kept" ? keptWholeReasonText(merge.reason) : resourcesChange ? `It is usually an output referencing a resource this deploy has yet to create.` : `The stack has no resource change; this diff cannot preview what the deploy does with the outputs that failed here.`));
|
|
5025
5030
|
}
|
|
5026
5031
|
const printingSecrets = printing.corpus();
|
|
5027
5032
|
let shownChanges = changes;
|
|
@@ -5030,7 +5035,7 @@ async function computeStackDiff(currentState, template, region, stackName, state
|
|
|
5030
5035
|
let shownDeployRefusals = deployRefusals;
|
|
5031
5036
|
if (hasMaskableValues(printing.maskCorpus())) {
|
|
5032
5037
|
const mask = printing.mask;
|
|
5033
|
-
const maskReason = (reason) => mask(stripControlChars(mask(reason)));
|
|
5038
|
+
const maskReason = (reason) => mask(stripForDisplay(mask(stripControlChars(mask(reason)))));
|
|
5034
5039
|
shownBlocking = blocking.map(maskReason);
|
|
5035
5040
|
shownDeployRefusals = deployRefusals.map(maskReason);
|
|
5036
5041
|
shownChanges = new Map([...changes].map(([logicalId, change]) => [logicalId, maskResourceChangeForDisplay(change, mask)]));
|
|
@@ -5632,7 +5637,7 @@ function renderChangeLines(changes, logFn, ccApiRoutes, adoptedOrphans) {
|
|
|
5632
5637
|
}
|
|
5633
5638
|
const REDACTED_LEGACY_PLAINTEXT = "<redacted: may be legacy plaintext in state — run `cdkd scrub`>";
|
|
5634
5639
|
function stripDisplayOnlyChars(value) {
|
|
5635
|
-
return value.replace(/[\u007f-\u009f\u200e\u200f\u202a-\u202e\u2066-\u2069]/g, "");
|
|
5640
|
+
return value.replace(/[\u007f-\u009f\u200e\u200f\u202a-\u202e\u2066-\u2069]/g, "").replace(/[\u2028\u2029]/g, " ");
|
|
5636
5641
|
}
|
|
5637
5642
|
function renderOutputChangeLines(outputChanges, logFn) {
|
|
5638
5643
|
const counts = {
|
|
@@ -5684,7 +5689,7 @@ function unreadableRowNames(node, limit) {
|
|
|
5684
5689
|
}
|
|
5685
5690
|
function renderDiffTree(node, isRoot, logFn) {
|
|
5686
5691
|
const hasChanges = nodeHasChanges(node);
|
|
5687
|
-
if (hasChanges || node.blocking.length > 0) logFn(isRoot ? `\nStack ${
|
|
5692
|
+
if (hasChanges || node.blocking.length > 0) logFn(isRoot ? `\nStack ${stripForDisplay(node.stackName)}:` : `\nNested stack: ${stripForDisplay(node.displayName)}`);
|
|
5688
5693
|
if (hasChanges) {
|
|
5689
5694
|
const { create, update, delete: del } = renderChangeLines(node.changes, logFn, node.ccApiRoutes, node.adoptedOrphans);
|
|
5690
5695
|
const outputs = renderOutputChangeLines(node.outputChanges, logFn);
|
|
@@ -5701,7 +5706,7 @@ function renderDiffTree(node, isRoot, logFn) {
|
|
|
5701
5706
|
}
|
|
5702
5707
|
if (node.blocking.length > 0) {
|
|
5703
5708
|
logFn("\n Blocking (cdkd deploy will refuse):");
|
|
5704
|
-
for (const reason of node.blocking) logFn(` ! ${
|
|
5709
|
+
for (const reason of node.blocking) logFn(` ! ${stripForDisplay(reason)}`);
|
|
5705
5710
|
}
|
|
5706
5711
|
for (const child of node.children) renderDiffTree(child, false, logFn);
|
|
5707
5712
|
}
|
|
@@ -17235,7 +17240,7 @@ async function stateResourcesCommand(stackName, options) {
|
|
|
17235
17240
|
if (options.long) {
|
|
17236
17241
|
const lines = [];
|
|
17237
17242
|
for (const detail of details) {
|
|
17238
|
-
lines.push(
|
|
17243
|
+
lines.push(stripForDisplay(detail.logicalId));
|
|
17239
17244
|
lines.push(` Type: ${formatAttributeValue(detail.resourceType)}`);
|
|
17240
17245
|
lines.push(` PhysicalID: ${formatAttributeValue(detail.physicalId)}`);
|
|
17241
17246
|
lines.push(` Dependencies: ${formatDependencyList(detail.dependencies)}`);
|
|
@@ -17243,7 +17248,7 @@ async function stateResourcesCommand(stackName, options) {
|
|
|
17243
17248
|
if (attrEntries.length === 0) lines.push(" Attributes: (none)");
|
|
17244
17249
|
else {
|
|
17245
17250
|
lines.push(" Attributes:");
|
|
17246
|
-
for (const [k, v] of attrEntries) lines.push(` ${
|
|
17251
|
+
for (const [k, v] of attrEntries) lines.push(` ${stripForDisplay(k)}: ${formatAttributeValue(v)}`);
|
|
17247
17252
|
}
|
|
17248
17253
|
lines.push("");
|
|
17249
17254
|
}
|
|
@@ -17252,7 +17257,7 @@ async function stateResourcesCommand(stackName, options) {
|
|
|
17252
17257
|
return;
|
|
17253
17258
|
}
|
|
17254
17259
|
const rows = details.map((d) => ({
|
|
17255
|
-
logicalId:
|
|
17260
|
+
logicalId: stripForDisplay(d.logicalId),
|
|
17256
17261
|
resourceType: formatAttributeValue(d.resourceType),
|
|
17257
17262
|
physicalId: formatAttributeValue(d.physicalId)
|
|
17258
17263
|
}));
|
|
@@ -17266,14 +17271,14 @@ async function stateResourcesCommand(stackName, options) {
|
|
|
17266
17271
|
function formatAttributeValue(value) {
|
|
17267
17272
|
if (value === null) return "null";
|
|
17268
17273
|
if (value === void 0) return "undefined";
|
|
17269
|
-
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") return
|
|
17274
|
+
if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") return stripForDisplay(String(value));
|
|
17270
17275
|
let json;
|
|
17271
17276
|
try {
|
|
17272
17277
|
json = JSON.stringify(value);
|
|
17273
17278
|
} catch {
|
|
17274
17279
|
json = void 0;
|
|
17275
17280
|
}
|
|
17276
|
-
return json === void 0 ? UNSERIALIZABLE :
|
|
17281
|
+
return json === void 0 ? UNSERIALIZABLE : stripForDisplay(json);
|
|
17277
17282
|
}
|
|
17278
17283
|
function formatIdentField(value, maxCodePoints) {
|
|
17279
17284
|
if (typeof value !== "string") return formatAttributeValue(value);
|
|
@@ -17415,7 +17420,7 @@ function renderStateBlock(state, lockInfo, withLegend) {
|
|
|
17415
17420
|
if (outputEntries.length > 0) {
|
|
17416
17421
|
lines.push("");
|
|
17417
17422
|
lines.push("Outputs:");
|
|
17418
|
-
for (const [k, v] of outputEntries) lines.push(` ${
|
|
17423
|
+
for (const [k, v] of outputEntries) lines.push(` ${stripForDisplay(k)}: ${formatAttributeValue(v)}`);
|
|
17419
17424
|
}
|
|
17420
17425
|
if (rendersSkippedBlock(state)) {
|
|
17421
17426
|
lines.push("");
|
|
@@ -17424,7 +17429,7 @@ function renderStateBlock(state, lockInfo, withLegend) {
|
|
|
17424
17429
|
const fullDigest = formatAttributeValue(digest);
|
|
17425
17430
|
const cut = truncateCodePoints(fullDigest, SKIPPED_DIGEST_PREVIEW_LEN);
|
|
17426
17431
|
const shownDigest = cut.truncated && fullDigest !== UNSERIALIZABLE ? `${cut.text}…` : fullDigest;
|
|
17427
|
-
lines.push(` ${
|
|
17432
|
+
lines.push(` ${stripForDisplay(k)}: ${shownDigest}`);
|
|
17428
17433
|
}
|
|
17429
17434
|
if (withLegend) lines.push(...skippedOutputsLegend());
|
|
17430
17435
|
}
|
|
@@ -17433,7 +17438,7 @@ function renderStateBlock(state, lockInfo, withLegend) {
|
|
|
17433
17438
|
lines.push(`Resources (${resourceEntries.length}):`);
|
|
17434
17439
|
for (const [logicalId, resource] of resourceEntries) {
|
|
17435
17440
|
lines.push("");
|
|
17436
|
-
lines.push(
|
|
17441
|
+
lines.push(stripForDisplay(logicalId));
|
|
17437
17442
|
lines.push(` Type: ${formatAttributeValue(resource.resourceType)}`);
|
|
17438
17443
|
lines.push(` PhysicalID: ${formatAttributeValue(resource.physicalId)}`);
|
|
17439
17444
|
const provisionedBy = resource.provisionedBy ?? "(sdk, legacy default)";
|
|
@@ -17447,13 +17452,13 @@ function renderStateBlock(state, lockInfo, withLegend) {
|
|
|
17447
17452
|
if (attrEntries.length === 0) lines.push(" Attributes: (none)");
|
|
17448
17453
|
else {
|
|
17449
17454
|
lines.push(" Attributes:");
|
|
17450
|
-
for (const [k, v] of attrEntries) lines.push(` ${
|
|
17455
|
+
for (const [k, v] of attrEntries) lines.push(` ${stripForDisplay(k)}: ${formatAttributeValue(v)}`);
|
|
17451
17456
|
}
|
|
17452
17457
|
const propEntries = Object.entries(resource.properties ?? {});
|
|
17453
17458
|
if (propEntries.length === 0) lines.push(" Properties: (none)");
|
|
17454
17459
|
else {
|
|
17455
17460
|
lines.push(" Properties:");
|
|
17456
|
-
for (const [k, v] of propEntries) lines.push(` ${
|
|
17461
|
+
for (const [k, v] of propEntries) lines.push(` ${stripForDisplay(k)}: ${formatAttributeValue(v)}`);
|
|
17457
17462
|
}
|
|
17458
17463
|
}
|
|
17459
17464
|
return lines;
|
|
@@ -21381,6 +21386,22 @@ function constructPathField(path) {
|
|
|
21381
21386
|
return path === void 0 ? {} : { constructPath: path };
|
|
21382
21387
|
}
|
|
21383
21388
|
|
|
21389
|
+
//#endregion
|
|
21390
|
+
//#region src/cli/commands/local-aws-failure.ts
|
|
21391
|
+
function describeLocalAwsFailureForWarn(err, operation) {
|
|
21392
|
+
if (err instanceof CdkdError) return displaySafe(err.message);
|
|
21393
|
+
const rendered = describeAwsFailureForWarn(err, operation);
|
|
21394
|
+
if (rendered === describeCredentialLoadFailure(err)) getLogger().debug(safeMsg`${operation}: the AWS SDK's own failure message was: ${thrownText(err)}`);
|
|
21395
|
+
return displaySafe(rendered);
|
|
21396
|
+
}
|
|
21397
|
+
function thrownText(err) {
|
|
21398
|
+
try {
|
|
21399
|
+
return err instanceof Error ? String(err.message) : String(err);
|
|
21400
|
+
} catch {
|
|
21401
|
+
return "[unstringifiable throw]";
|
|
21402
|
+
}
|
|
21403
|
+
}
|
|
21404
|
+
|
|
21384
21405
|
//#endregion
|
|
21385
21406
|
//#region src/cli/commands/local-state-loader.ts
|
|
21386
21407
|
async function loadStateForStack(stackName, synthRegion, opts) {
|
|
@@ -25426,7 +25447,7 @@ async function resolvePseudoParametersForStartApi(stateRegion, options) {
|
|
|
25426
25447
|
sts.destroy();
|
|
25427
25448
|
}
|
|
25428
25449
|
} catch (err) {
|
|
25429
|
-
logger.warn(`${sourceFlag}: resolver needs \${AWS::AccountId} but STS GetCallerIdentity failed: ${err
|
|
25450
|
+
logger.warn(`${sourceFlag}: resolver needs \${AWS::AccountId} but STS GetCallerIdentity failed: ${describeLocalAwsFailureForWarn(err, "STS GetCallerIdentity")}. Substitution will be skipped for AWS::AccountId; affected env entries will be dropped with per-key warnings.`);
|
|
25430
25451
|
}
|
|
25431
25452
|
const partitionAndSuffix = region ? derivePartitionAndUrlSuffix(region) : void 0;
|
|
25432
25453
|
const bag = {
|
|
@@ -26618,7 +26639,7 @@ async function buildEcsImageResolutionContext$1(candidate, stateProvider, option
|
|
|
26618
26639
|
fromState: options.fromState
|
|
26619
26640
|
});
|
|
26620
26641
|
} catch (err) {
|
|
26621
|
-
logger.warn(`Resolver needs \${AWS::AccountId} but STS GetCallerIdentity failed: ${err
|
|
26642
|
+
logger.warn(`Resolver needs \${AWS::AccountId} but STS GetCallerIdentity failed: ${describeLocalAwsFailureForWarn(err, "STS GetCallerIdentity")}. Substitution will be skipped; affected env / secret entries will be dropped with per-key warnings.`);
|
|
26622
26643
|
}
|
|
26623
26644
|
const partitionAndSuffix = region ? derivePartitionAndUrlSuffix(region) : void 0;
|
|
26624
26645
|
ctx.pseudoParameters = {
|
|
@@ -26759,6 +26780,32 @@ function createLocalRunTaskCommand() {
|
|
|
26759
26780
|
return cmd;
|
|
26760
26781
|
}
|
|
26761
26782
|
|
|
26783
|
+
//#endregion
|
|
26784
|
+
//#region src/cli/commands/local-host-synthesizer.ts
|
|
26785
|
+
function cdkdHostSynthesizer(readOptions) {
|
|
26786
|
+
return { synthesize: async (opts) => {
|
|
26787
|
+
const { stateBucket, verbose, roleArn } = readOptions();
|
|
26788
|
+
if (verbose === true) getLogger().setLevel("debug");
|
|
26789
|
+
if ((roleArn || process.env["CDKD_ROLE_ARN"]) && getAssumedRoleCredentials() === void 0) publishAssumedRoleFromEnv();
|
|
26790
|
+
return new Synthesizer().synthesize({
|
|
26791
|
+
...opts,
|
|
26792
|
+
...stateBucket !== void 0 && { stateBucket },
|
|
26793
|
+
...opts.profile !== void 0 && { macroExpandS3ClientOpts: { profile: opts.profile } }
|
|
26794
|
+
});
|
|
26795
|
+
} };
|
|
26796
|
+
}
|
|
26797
|
+
function publishAssumedRoleFromEnv() {
|
|
26798
|
+
const accessKeyId = process.env["AWS_ACCESS_KEY_ID"];
|
|
26799
|
+
const secretAccessKey = process.env["AWS_SECRET_ACCESS_KEY"];
|
|
26800
|
+
const sessionToken = process.env["AWS_SESSION_TOKEN"];
|
|
26801
|
+
if (!accessKeyId || !secretAccessKey || !sessionToken) throw new Error("--role-arn was given, but the assumed role left no session credentials in the environment; refusing to synthesize as another identity.");
|
|
26802
|
+
setAssumedRoleCredentials({
|
|
26803
|
+
accessKeyId,
|
|
26804
|
+
secretAccessKey,
|
|
26805
|
+
sessionToken
|
|
26806
|
+
});
|
|
26807
|
+
}
|
|
26808
|
+
|
|
26762
26809
|
//#endregion
|
|
26763
26810
|
//#region src/cli/commands/local-start-service.ts
|
|
26764
26811
|
function serviceStrategy() {
|
|
@@ -26776,8 +26823,8 @@ function serviceStrategy() {
|
|
|
26776
26823
|
};
|
|
26777
26824
|
}
|
|
26778
26825
|
function createLocalStartServiceCommand() {
|
|
26779
|
-
const cmd = new Command("start-service").description("Run one or more AWS::ECS::Service resources locally as a long-running emulator. Spins up DesiredCount task replicas per service (clamped by --max-tasks) using the same per-task docker network + metadata sidecar pattern as `cdkd local run-task`, then keeps each replica running and restarts it on exit per --restart-policy. ^C tears every replica + sidecar + network down. Each <target> accepts a CDK display path (MyStack/MyService) or stack-qualified logical ID (MyStack:MyServiceXYZ); single-stack apps may omit the stack prefix. When two or more <target>s are supplied, every service is booted into a shared Cloud Map / Service Connect registry so peer services discover each other via docker --add-host overlay. Omit <targets> in an interactive terminal to multi-select the ECS services from a list.").argument("[targets...]", "One or more CDK display paths or stack-qualified logical IDs of the AWS::ECS::Service resources to run (omit to multi-select interactively in a TTY)").addOption(new Option("--from-state", "Read cdkd's S3 state for the target stack and substitute Ref / Fn::GetAtt / Fn::Sub / Fn::ImportValue / Fn::GetStackOutput intrinsics in container images, environment variables, secrets, role ARNs, and volumes. Mutually exclusive with --from-cfn-stack.").default(false)).addOption(new Option("--state-bucket <bucket>", "S3 bucket for --from-state. Falls back to CDKD_STATE_BUCKET env or cdk.json context.cdkd.stateBucket.")).addOption(new Option("--state-prefix <prefix>", "S3 key prefix for --from-state state files.").default("cdkd")).action(withErrorHandling(async (targets, options) => {
|
|
26780
|
-
await runEcsServiceEmulator(targets, options, serviceStrategy(), cdkdExtraStateProviders);
|
|
26826
|
+
const cmd = new Command("start-service").description("Run one or more AWS::ECS::Service resources locally as a long-running emulator. Spins up DesiredCount task replicas per service (clamped by --max-tasks) using the same per-task docker network + metadata sidecar pattern as `cdkd local run-task`, then keeps each replica running and restarts it on exit per --restart-policy. ^C tears every replica + sidecar + network down. Each <target> accepts a CDK display path (MyStack/MyService) or stack-qualified logical ID (MyStack:MyServiceXYZ); single-stack apps may omit the stack prefix. When two or more <target>s are supplied, every service is booted into a shared Cloud Map / Service Connect registry so peer services discover each other via docker --add-host overlay. Omit <targets> in an interactive terminal to multi-select the ECS services from a list.").argument("[targets...]", "One or more CDK display paths or stack-qualified logical IDs of the AWS::ECS::Service resources to run (omit to multi-select interactively in a TTY)").addOption(new Option("--from-state", "Read cdkd's S3 state for the target stack and substitute Ref / Fn::GetAtt / Fn::Sub / Fn::ImportValue / Fn::GetStackOutput intrinsics in container images, environment variables, secrets, role ARNs, and volumes. Mutually exclusive with --from-cfn-stack.").default(false)).addOption(new Option("--state-bucket <bucket>", "S3 bucket for --from-state. Falls back to CDKD_STATE_BUCKET env or cdk.json context.cdkd.stateBucket. Also receives the transient upload of a CloudFormation-macro template too large to expand inline.")).addOption(new Option("--state-prefix <prefix>", "S3 key prefix for --from-state state files.").default("cdkd")).action(withErrorHandling(async (targets, options) => {
|
|
26827
|
+
await runEcsServiceEmulator(targets, options, serviceStrategy(), cdkdExtraStateProviders, cdkdHostSynthesizer(() => options));
|
|
26781
26828
|
}));
|
|
26782
26829
|
addStartServiceSpecificOptions(cmd);
|
|
26783
26830
|
warnEngineRoleExposure(cmd, "start-service", [
|
|
@@ -27696,7 +27743,7 @@ async function buildAgentCoreImageContext(candidate, stateProvider, options) {
|
|
|
27696
27743
|
try {
|
|
27697
27744
|
accountId = await resolveStackAccountId(region, options.profile, options.fromState);
|
|
27698
27745
|
} catch (err) {
|
|
27699
|
-
logger.warn(safeMsg`${stateProvider.label}: STS GetCallerIdentity failed: ${err
|
|
27746
|
+
logger.warn(safeMsg`${stateProvider.label}: STS GetCallerIdentity failed: ${describeLocalAwsFailureForWarn(err, "STS GetCallerIdentity")}. ` + "A same-stack ECR image URI referencing ${AWS::AccountId} may not resolve.");
|
|
27700
27747
|
}
|
|
27701
27748
|
const context = {};
|
|
27702
27749
|
const pseudo = derivePseudoParametersFromRegion$1(region, accountId);
|
|
@@ -27750,7 +27797,7 @@ async function applyAgentCoreCredentialEnv(dockerEnv, args) {
|
|
|
27750
27797
|
if (stsRegion) dockerEnv["AWS_REGION"] = stsRegion;
|
|
27751
27798
|
assumeSucceeded = true;
|
|
27752
27799
|
} catch (err) {
|
|
27753
|
-
logger.warn(`--assume-role: STS AssumeRole(${displayIdent(args.assumeRoleArn, { maxCodePoints: 613 })}) failed: ${
|
|
27800
|
+
logger.warn(`--assume-role: STS AssumeRole(${displayIdent(args.assumeRoleArn, { maxCodePoints: 613 })}) failed: ${describeLocalAwsFailureForWarn(err, "STS AssumeRole")}. Falling back to the developer's shell credentials.`);
|
|
27754
27801
|
}
|
|
27755
27802
|
}
|
|
27756
27803
|
if (!assumeSucceeded) {
|
|
@@ -27764,7 +27811,7 @@ async function applyAgentCoreCredentialEnv(dockerEnv, args) {
|
|
|
27764
27811
|
}
|
|
27765
27812
|
function assumeRoleFallbackWarning(args) {
|
|
27766
27813
|
const fallback = args.profile ? `--profile ${displayIdent(args.profile)}` : args.fallbackWithoutProfile;
|
|
27767
|
-
return `--assume-role: STS AssumeRole(${displayIdent(args.assumeRoleArn, { maxCodePoints: 613 })}) failed for ${args.purpose}: ${
|
|
27814
|
+
return `--assume-role: STS AssumeRole(${displayIdent(args.assumeRoleArn, { maxCodePoints: 613 })}) failed for ${args.purpose}: ${describeLocalAwsFailureForWarn(args.error, "STS AssumeRole")}. Falling back to ${fallback}.`;
|
|
27768
27815
|
}
|
|
27769
27816
|
function resolveAssumeRoleArn(options, resolved, loaded) {
|
|
27770
27817
|
const hit = assumeRoleResolutionMemo.get(resolved);
|
|
@@ -27875,7 +27922,7 @@ function forwardAwsEnv$1(env) {
|
|
|
27875
27922
|
applyCallerIdentityCredentials(env);
|
|
27876
27923
|
}
|
|
27877
27924
|
async function assumeAgentCoreExecutionRole(roleArn, region) {
|
|
27878
|
-
assertSendableRoleArn(roleArn);
|
|
27925
|
+
assertSendableRoleArn(roleArn, (m) => new CdkdError(m, "LOCAL_INVOKE_AGENTCORE_ASSUME_ROLE_INVALID"));
|
|
27879
27926
|
const { STSClient } = await import("@aws-sdk/client-sts");
|
|
27880
27927
|
const sts = new STSClient({
|
|
27881
27928
|
...awsClientDefaults({ ignoreAssumedRole: true }),
|
|
@@ -27982,10 +28029,11 @@ function createLocalInvokeAgentCoreCommand() {
|
|
|
27982
28029
|
function createLocalStartAgentCoreCommand$1() {
|
|
27983
28030
|
const cmd = createLocalStartAgentCoreCommand({
|
|
27984
28031
|
embedConfig: getEmbedConfig(),
|
|
27985
|
-
extraStateProviders: cdkdExtraStateProviders
|
|
28032
|
+
extraStateProviders: cdkdExtraStateProviders,
|
|
28033
|
+
synthesizer: cdkdHostSynthesizer(() => cmd.opts())
|
|
27986
28034
|
});
|
|
27987
28035
|
cmd.addOption(new Option("--from-state", "Read cdkd's S3 state for the target stack and substitute Ref / Fn::GetAtt / Fn::Sub / Fn::ImportValue / Fn::GetStackOutput intrinsics in the AgentCore runtime container image and environment variables. Mutually exclusive with --from-cfn-stack.").default(false));
|
|
27988
|
-
cmd.addOption(new Option("--state-bucket <bucket>", "S3 bucket for --from-state. Falls back to CDKD_STATE_BUCKET env or cdk.json context.cdkd.stateBucket."));
|
|
28036
|
+
cmd.addOption(new Option("--state-bucket <bucket>", "S3 bucket for --from-state. Falls back to CDKD_STATE_BUCKET env or cdk.json context.cdkd.stateBucket. Also receives the transient upload of a CloudFormation-macro template too large to expand inline."));
|
|
27989
28037
|
cmd.addOption(new Option("--state-prefix <prefix>", "S3 key prefix for --from-state state files.").default("cdkd"));
|
|
27990
28038
|
cmd.addOption(new Option("--no-assume-role", "Explicitly opt out of assuming the deployed execution role: forward your ambient AWS credentials (or the --profile overlay) unchanged, and suppress the \"re-run with --assume-role\" hint that omitting the flag prints when deployed state is loaded."));
|
|
27991
28039
|
warnEngineRoleExposure(cmd, "start-agentcore", [
|
|
@@ -28031,8 +28079,8 @@ function buildAlbEmulatorStrategy(options) {
|
|
|
28031
28079
|
return warnUnresolvedLambdaTargetEnv(albStrategy(options), options);
|
|
28032
28080
|
}
|
|
28033
28081
|
function createLocalStartAlbCommand() {
|
|
28034
|
-
const cmd = new Command("start-alb").description("Run an Application Load Balancer locally: name the ALB, and cdk-local boots the ECS service(s) behind its listeners and stands up a local front-door on each listener port that round-robins across the running replicas and routes its listener rules across the backing services — a stable host endpoint, like behind a real load balancer. The symmetric ALB counterpart of `start-api`. Each <target> accepts a CDK display path (MyStack/MyAlb) or stack-qualified logical ID; single-stack apps may omit the stack prefix. Supports HTTP and HTTPS listeners — by default a cloud-HTTPS listener is served over plain HTTP locally (with X-Forwarded-Proto: https preserved). Pass --tls (or --tls-cert / --tls-key) to terminate TLS locally with a self-signed or user-supplied cert. All six ALB rule-condition fields are honored (path-pattern / host-header / http-header / http-request-method / query-string / source-ip); forward (single and weighted), redirect, and fixed-response actions; and ECS or Lambda targets (a Lambda target group is invoked locally via the Lambda RIE). authenticate-cognito / authenticate-oidc actions enforce a local Bearer-JWT check (or AWSELBAuthSessionCookie pass-through) against the same JWKS / OIDC discovery URL the deployed ALB would; use --bearer-token '<jwt>' to inject a default token or --no-verify-auth to disable the guard. Omit <targets> in an interactive terminal to multi-select the load balancers from a list.").argument("[targets...]", "One or more CDK display paths or stack-qualified logical IDs of the AWS::ElasticLoadBalancingV2::LoadBalancer resources to run (omit to multi-select interactively in a TTY)").addOption(new Option("--from-state", "Read cdkd's S3 state for the target stack and substitute Ref / Fn::GetAtt / Fn::Sub / Fn::ImportValue / Fn::GetStackOutput intrinsics in container images, environment variables, secrets, role ARNs, and volumes of the ECS services behind the ALB. Does NOT reach a Lambda target group's container environment (a boot warning names the affected functions) — use --from-cfn-stack for those. Mutually exclusive with --from-cfn-stack.").default(false)).addOption(new Option("--state-bucket <bucket>", "S3 bucket for --from-state. Falls back to CDKD_STATE_BUCKET env or cdk.json context.cdkd.stateBucket.")).addOption(new Option("--state-prefix <prefix>", "S3 key prefix for --from-state state files.").default("cdkd")).action(withErrorHandling(async (targets, options) => {
|
|
28035
|
-
await runEcsServiceEmulator(targets, options, buildAlbEmulatorStrategy(options), cdkdExtraStateProviders);
|
|
28082
|
+
const cmd = new Command("start-alb").description("Run an Application Load Balancer locally: name the ALB, and cdk-local boots the ECS service(s) behind its listeners and stands up a local front-door on each listener port that round-robins across the running replicas and routes its listener rules across the backing services — a stable host endpoint, like behind a real load balancer. The symmetric ALB counterpart of `start-api`. Each <target> accepts a CDK display path (MyStack/MyAlb) or stack-qualified logical ID; single-stack apps may omit the stack prefix. Supports HTTP and HTTPS listeners — by default a cloud-HTTPS listener is served over plain HTTP locally (with X-Forwarded-Proto: https preserved). Pass --tls (or --tls-cert / --tls-key) to terminate TLS locally with a self-signed or user-supplied cert. All six ALB rule-condition fields are honored (path-pattern / host-header / http-header / http-request-method / query-string / source-ip); forward (single and weighted), redirect, and fixed-response actions; and ECS or Lambda targets (a Lambda target group is invoked locally via the Lambda RIE). authenticate-cognito / authenticate-oidc actions enforce a local Bearer-JWT check (or AWSELBAuthSessionCookie pass-through) against the same JWKS / OIDC discovery URL the deployed ALB would; use --bearer-token '<jwt>' to inject a default token or --no-verify-auth to disable the guard. Omit <targets> in an interactive terminal to multi-select the load balancers from a list.").argument("[targets...]", "One or more CDK display paths or stack-qualified logical IDs of the AWS::ElasticLoadBalancingV2::LoadBalancer resources to run (omit to multi-select interactively in a TTY)").addOption(new Option("--from-state", "Read cdkd's S3 state for the target stack and substitute Ref / Fn::GetAtt / Fn::Sub / Fn::ImportValue / Fn::GetStackOutput intrinsics in container images, environment variables, secrets, role ARNs, and volumes of the ECS services behind the ALB. Does NOT reach a Lambda target group's container environment (a boot warning names the affected functions) — use --from-cfn-stack for those. Mutually exclusive with --from-cfn-stack.").default(false)).addOption(new Option("--state-bucket <bucket>", "S3 bucket for --from-state. Falls back to CDKD_STATE_BUCKET env or cdk.json context.cdkd.stateBucket. Also receives the transient upload of a CloudFormation-macro template too large to expand inline.")).addOption(new Option("--state-prefix <prefix>", "S3 key prefix for --from-state state files.").default("cdkd")).action(withErrorHandling(async (targets, options) => {
|
|
28083
|
+
await runEcsServiceEmulator(targets, options, buildAlbEmulatorStrategy(options), cdkdExtraStateProviders, cdkdHostSynthesizer(() => options));
|
|
28036
28084
|
}));
|
|
28037
28085
|
addAlbSpecificOptions(cmd);
|
|
28038
28086
|
warnEngineRoleExposure(cmd, "start-alb", [
|
|
@@ -28049,7 +28097,14 @@ function createLocalStartAlbCommand() {
|
|
|
28049
28097
|
function createLocalStartCloudFrontCommand$1() {
|
|
28050
28098
|
const cmd = createLocalStartCloudFrontCommand({
|
|
28051
28099
|
embedConfig: getEmbedConfig(),
|
|
28052
|
-
extraStateProviders: cdkdExtraStateProviders
|
|
28100
|
+
extraStateProviders: cdkdExtraStateProviders,
|
|
28101
|
+
synthesizer: cdkdHostSynthesizer(() => {
|
|
28102
|
+
const { verbose, roleArn } = cmd.opts();
|
|
28103
|
+
return {
|
|
28104
|
+
verbose,
|
|
28105
|
+
roleArn
|
|
28106
|
+
};
|
|
28107
|
+
})
|
|
28053
28108
|
});
|
|
28054
28109
|
cmd.addOption(new Option("--from-state", "[not supported on start-cloudfront] Read cdkd's S3 state for the target stack. Refused at startup: the CloudFront emulator consults a state source only under --from-cfn-stack. Use --from-cfn-stack instead.").default(false));
|
|
28055
28110
|
cmd.addOption(new Option("--state-bucket <bucket>", "[not supported on start-cloudfront] S3 bucket for --from-state. Refused at startup with --from-state."));
|
|
@@ -28503,7 +28558,7 @@ async function resolvePseudoParametersForInvoke(stackRegion, options) {
|
|
|
28503
28558
|
sts.destroy();
|
|
28504
28559
|
}
|
|
28505
28560
|
} catch (err) {
|
|
28506
|
-
logger.warn(`${sourceFlag}: resolver needs \${AWS::AccountId} but STS GetCallerIdentity failed: ${err
|
|
28561
|
+
logger.warn(`${sourceFlag}: resolver needs \${AWS::AccountId} but STS GetCallerIdentity failed: ${describeLocalAwsFailureForWarn(err, "STS GetCallerIdentity")}. Substitution will be skipped; affected env entries will be dropped with per-key warnings.`);
|
|
28507
28562
|
}
|
|
28508
28563
|
const partitionAndSuffix = region ? derivePartitionAndUrlSuffix(region) : void 0;
|
|
28509
28564
|
const bag = {
|
|
@@ -28571,8 +28626,7 @@ async function applyLambdaCredentialEnv(dockerEnv, args) {
|
|
|
28571
28626
|
if (stsRegion) dockerEnv["AWS_REGION"] = stsRegion;
|
|
28572
28627
|
assumeSucceeded = true;
|
|
28573
28628
|
} catch (err) {
|
|
28574
|
-
|
|
28575
|
-
logger.warn(`--assume-role: STS AssumeRole(${displayIdent(args.assumeRoleArn, { maxCodePoints: 613 })}) failed: ${displaySafe(reason)}. Falling back to the developer's shell credentials.`);
|
|
28629
|
+
logger.warn(`--assume-role: STS AssumeRole(${displayIdent(args.assumeRoleArn, { maxCodePoints: 613 })}) failed: ${describeLocalAwsFailureForWarn(err, "STS AssumeRole")}. Falling back to the developer's shell credentials.`);
|
|
28576
28630
|
}
|
|
28577
28631
|
}
|
|
28578
28632
|
if (!assumeSucceeded) {
|
|
@@ -28585,7 +28639,7 @@ async function applyLambdaCredentialEnv(dockerEnv, args) {
|
|
|
28585
28639
|
}
|
|
28586
28640
|
}
|
|
28587
28641
|
async function assumeLambdaExecutionRole(roleArn, region) {
|
|
28588
|
-
assertSendableRoleArn(roleArn);
|
|
28642
|
+
assertSendableRoleArn(roleArn, (m) => new CdkdError(m, "LOCAL_INVOKE_ASSUME_ROLE_INVALID"));
|
|
28589
28643
|
const { STSClient } = await import("@aws-sdk/client-sts");
|
|
28590
28644
|
const sts = new STSClient({
|
|
28591
28645
|
...awsClientDefaults({ ignoreAssumedRole: true }),
|
|
@@ -28597,7 +28651,7 @@ async function assumeLambdaExecutionRole(roleArn, region) {
|
|
|
28597
28651
|
RoleSessionName: `cdkd-local-invoke-${Date.now()}`,
|
|
28598
28652
|
DurationSeconds: 3600
|
|
28599
28653
|
}))).Credentials;
|
|
28600
|
-
if (!creds?.AccessKeyId || !creds.SecretAccessKey || !creds.SessionToken) throw new
|
|
28654
|
+
if (!creds?.AccessKeyId || !creds.SecretAccessKey || !creds.SessionToken) throw new CdkdError(`AssumeRole(${displayIdent(roleArn, { maxCodePoints: 613 })}) returned no usable credentials.`, "LOCAL_INVOKE_ASSUMEROLE_NO_CREDS");
|
|
28601
28655
|
return {
|
|
28602
28656
|
accessKeyId: creds.AccessKeyId,
|
|
28603
28657
|
secretAccessKey: creds.SecretAccessKey,
|
|
@@ -28795,4 +28849,4 @@ function collectVerbFlags(program) {
|
|
|
28795
28849
|
|
|
28796
28850
|
//#endregion
|
|
28797
28851
|
export { canonicalizeIpProtocolValue as a, buildProgram, resolveSecretDerivedPrincipals as i, runDestroyForStack as n, resolvedResourceTimeoutMs as o, isResolvableSecretPrincipalList as r, canonicalizeIpv4Cidr as t };
|
|
28798
|
-
//# sourceMappingURL=program-
|
|
28852
|
+
//# sourceMappingURL=program-BQnReLnG.js.map
|