@cdkd/cli 0.326.0 → 0.326.2

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.
@@ -2,8 +2,8 @@ import { a as runWithStackAwsClients, i as resetAwsClients, l as s3ClientDefault
2
2
  import { $ as safeMsg, B as SAFE_MSG_ALTERED_CHAR, G as cutMarker, H as STACK_REF_MAX_CODE_POINTS, I as withSkipPrefix, J as displaySafe, K as displayAwsMessage, L as withStackScope, Q as plainIdentOr, S as explicitNamePropertyFor, U as UNRENDERABLE, V as SECRET_REF_MAX_CODE_POINTS, W as asIsMessage, X as isPasteableIdent, Y as displayStackName, _ as PATTERN_B_RESOURCE_TYPES, a as safeStringify, c as isStdoutReservedForPayload, d as runStackBuffered, et as stringifyJsonPayload, g as PATTERN_B_NAME_PROPERTIES, h as PATTERN_B_NAME_OPTIONS, j as isNameGeneration, l as reserveStdoutForPayload, m as getLiveRenderer, n as describeAwsFailure, nt as truncateCodePoints, q as displayIdent, s as getLogger, tt as terminalSafe, w as generateResourceName, x as derivesPatternBName } from "./aws-failure-text-DiHodi76.js";
3
3
  import { $t as formatLockExpiry, An as MalformedProducerRecordRefusalError, Ar as isThrottlingError, Bn as formatError, Dn as LocalStartServiceError, Dr as retryClassificationText, En as LocalInvokeBuildError$1, Er as isTransientServerError, Et as logicalIdShown, F as assertRegionMatch, Fn as ResourceUpdateNotSupportedError, Gn as TIMEOUT_FLAG_RESOURCE_TYPE, I as VALUE_NOT_SHOWN, In as StackHasActiveImportsError, Ln as StackTerminationProtectionError, M as RESOURCE_NOT_FOUND, Mn as PartialFailureError, N as isMarkedNotGone, Nn as ProvisioningError, Ot as resourceTypeShown, Pn as ResourceTimeoutError, Qn as pasteableCommand, Qt as forceQuitRecoveryClause, Rn as StateError, Sn as DeployCancelledError, Sr as isAmbiguousOutcomeError, Tn as IntrinsicResolutionRefusalError, Tr as isRetryableTransientError, U as remedyLogicalId, Un as normalizeAwsError, Wn as withErrorHandling, Xt as buildForceUnlockCommand, Yn as commandHole, Yt as UNREPRODUCIBLE_LOCK_CLAUSE, Zn as isInertUnquoted, Zt as buildLockContentionMessage, _r as stripControlChars, _t as beginCommandInterruptScope, an as DEFAULT_STATE_PREFIX, ar as setPasteableRunFlags, bn as CrossAccountSecretRefusalError, bt as isInterruptedWaitError, c as RESOLVED_PREVIOUS_PRINCIPAL_KEYS, cn as producerCoordinateKey, dn as withPasteableAwsProfile, en as formatLockOperation, er as plainOrDescribed, fn as ambientClientDefaults, gn as AccountIdUnavailableError, gr as escapeRegExp, hn as credentialFingerprint, in as CUSTOM_RESOURCE_RESPONSE_PREFIX, ir as withheldTargetClause, it as runDeleteAttempt, jn as NestedStackChildDirectDestroyError, jr as markNonRetryable, kr as isMarkedNonRetryable, ln as producerRecordKey, mn as clientDefaultsFor, nr as shellBoundedDisplay, on as injectiveKey, or as setPasteableVerbFlags, p as readRecordedPrincipals, pn as ambientCredentialConfig, qn as SHELL_ACTIVE_WHY, rr as shellQuote, s as IAM_PRINCIPAL_NAME, tn as formatLockOwner, tr as quotedOrDescribed, un as setPasteableAwsProfile, ut as isAwsCliLiteral, vn as CdkdError, vr as stripForDisplay, vt as endCommandInterruptScope, wn as DynamicReferenceRegionAmbiguousError, yt as interruptWatchListenerCount, zn as SynthesisError } from "./created-resource-sink-DMf6WEao.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-BLXFsfMa.js";
5
- import { $a as recordedReferenceRegions, $c as createUnionSecretMasker, $l as exportNamesCarriedFrom, $n as nameGenerationCarriedFrom, $o as malformedOrphanRecordsWarning, $r as addSuperseded, $s as findReplacedReadersOfRecreateTargets, $t as deleteJournaledOrphans, $u as synthesisStatusMessage, Ad as defineOwnKey, Ai as createPreDeleteFinalSnapshot, Al as recordMaskOnlyValue, An as equalModuloMarkedMask, Ao as parameterInputsFor, Ar as formatDestructiveChange, As as refuseMalformedResourcePropertiesForExport, At as isSecretBearingReferenceString, Au as validateContainerRepoName, Ba as poisonRenderedSpellingsCollidingIn, Bc as noEchoLeavesOf, Bd as injectAwsRegion, Bi as DeploymentEventsReader, Bl as S3StateBackend, Bn as replacementNeverSwapped, Bo as displayLogicalId, Br as proposeRenames, Bs as repairMalformedResourcePropertiesForReadOnly, Bt as NESTED_PENDING_PARENT_REASON, Bu as getDockerCmd, Cc as withRetry, Cd as derivePartitionAndUrlSuffix, Ci as secretNamedRecordNeedles, Cn as replayFailedOperations, Co as AWS_NO_VALUE, Cr as isExportAliasCollision, Cs as refuseMalformedResourceEntriesForDeploy, Ct as conditionInputsFrom, Cu as assertAssetBucketRegion, Dd as describeJsonParseFailure, Di as PRE_DELETE_SNAPSHOT_TYPES, Dl as splitGetAttStringForm, Dn as settleUnsettledPrevious, Do as refStateLookupFromResource, Dr as maskingRetryLogger, Ds as refuseMalformedResourceEntriesForOrphan, Du as parseBootstrapMarker, Ed as processStackMessages, Ei as ATOMIC_FINAL_SNAPSHOT_TYPES, El as recordPhysicalNameCopy, En as recordAfterRollbackUpdate, Eo as lacksRecordedTableArn, Er as DEFAULT_RESOURCE_WARN_AFTER_MS, Es as refuseMalformedResourceEntriesForImportSave, Eu as isCrossRegionRedirect, Fa as unsettledItemsOf, Fc as maskAtCoordinates, Fd as absoluteAssemblyPathEscape, Fl as wholeStringLeavesOf, Fn as isReplacementOrphan, Fo as STATE_RESOURCES_MALFORMED, Fr as withMovedTo, Fs as refuseMalformedState, Ft as planOrphanAdoption, Fu as describeDockerExecFailure, Gc as recordedNoEchoValuesOf, Gl as crossPrefixDeniedWarning, Go as isReadableResourceEntry, Gr as withStackRecords, Gs as withheldAccountClause, Gt as nestedChildStackName$1, Gu as redactedCause, Hi as extractDeploymentEventError, Hl as CrossPrefixReadError, Hn as seedsDeleteFirstGuard, Ho as hasReadableOutputs, Hs as unpreviewableOrphanRecords, Ht as displacedPhysicalIdShown, Hu as isMalformedEnvKey, Ia as unsettledPropertiesOf, Ic as maskReadbackAtCoordinates, Id as describeFileReadFailure, Ii as ledgerForStack, Il as WHOLE_DYNAMIC_REFERENCE_PATTERN, In as planFailedOps, Io as UNREADABLE_ORPHANS_CONTAINER_ROW, Ir as isPairableType, Is as repairMalformedOrphanRecordsForReadOnly, It as pendingRequestCount, Iu as describeDockerFailure, Ja as producerLookupOver, Jl as stackInstanceIdOf, Jo as malformedExportSourceWarning, Jr as cyan, Jt as revertedNestedRowIds, Ju as runDockerStreaming, Kc as valueAtCoordinate, Kl as isAccessDenied, Kn as inheritProducerRegions, Ko as malformedDriftResourcePropertiesWarning, Ks as findActionableSdkUnwired, Kt as recordDisplacedSkips, Ku as redactedDockerCause, La as withUnsettledProperties, Lc as maskWholeValue, Ld as displayAssemblyPath, Ll as isSingleDynamicReferenceToken, Ln as planRollback, Lo as UNREADABLE_RESOURCES_MAP_ROW, Lr as looselyEqual, Ls as repairMalformedOrphansForReadOnly, Lt as resolvePendingCloudControlRequests, Lu as dockerSpawnEnvWithSensitive, Ma as INTRINSIC_KEYS, Mc as TemplateParser, Md as hasPlainPrototype, Mi as isFinalSnapshotError, Ml as recordNoEchoAttributeValues, Mn as undeclaredEmptyObservedKeys, Mo as declaresNoEcho, Mr as hintSidesOf, Ms as refuseMalformedResourcesForDeploy, Mt as mergeNoChangeOutputs, Mu as buildDockerImage, Nc as canonicalCoordinates, Nd as nullPrototypeRecord, Ni as refusesFinalSnapshot, Nl as recordNoEchoParameterFreshValue, Nn as demoteSupersededOrphans, No as JSON_LISTING_HOLE_VALUE, Nr as movedToHint, Ns as refuseMalformedResourcesForDestroy, Nt as makeCanonicalizePropertiesFn, Nu as resolveDockerContextDirectory, Od as parseFailureDebugDetail, Oi as buildFinalSnapshotIdentifier, Ol as carriesSecretMask, On as withUnprovenUnsettled, Or as constructPathOf$1, Os as refuseMalformedResourcePropertiesForDestroy, Ot as withResourceDeadline, Ou as readBootstrapMarkerBody, Pa as unsettledItemsField, Pc as isMarkedCoordinate, Pd as ownValue, Pi as unsupportedFinalSnapshotError, Pl as recordProvenPublicExpression, Pn as isJournaledOrphan, Po as STATE_REGION_DIVERGED, Pr as rollbackOrphanIds, Ps as refuseMalformedResourcesForExport, Pt as makeSiblingClaimReader, Pu as describeDockerCapturedOutput, Qa as recordedOutputReferenceRegions, Qc as carryLogOnlyValues, Ql as describeRegionValueKind, Qn as updatePartialReason, Qo as malformedOrphanRecordsRefusalMessage, Qr as yellow, Qs as hasNoCloudControlHandlers, Qt as withNestedStackContext, Qu as Synthesizer, Ra as withoutUnsettledProperties, Rc as maskedLeafCoordinatesOf, Rd as renderAssemblyPathEscape, Ri as withCreateTokenLedger, Rl as LockManager, Rn as recheckFailedPlan, Ro as accountArgs, Rr as mappingPairs, Rs as repairMalformedOutputsForReadOnly, Rt as keptForRetainedRecord, Ru as finchSecretArgvRefusal, Sa as deleteSkipReason, Sc as describeTypeWithThrottleRetry, Sd as canonicalizeRegion, Sl as recordNestedStackParameterExpressions, Sn as refusePendingMovesOut, So as keepsSecretReferenceToken, Sr as collectPublishedOutputNames, Ss as refuseMalformedResourceEntries, St as conditionFingerprint, Su as BOOTSTRAP_MARKER_PREFIX, Td as StageLoadError, Ti as storedSecretNameNeedles, Tn as removeProtectionTypeList, To as isStalePlaceholderArnAttribute, Tr as DEFAULT_RESOURCE_TIMEOUT_MS, Ts as refuseMalformedResourceEntriesForImport, Tt as readRecordedConditionVerdicts, Tu as getBootstrapMarkerKey, Uc as readbackPathFor, Ud as resolveBucketRegion, Ul as CrossPrefixScanCache, Un as orphanNeedsIdentity, Uo as hasReadableResources, Ur as destroyStackRecordsView, Us as unreadableOrphanRecords, Ut as dropSettledNestedJournals, Uu as partitionSensitiveEnv, Vc as noEchoOutputsComparison, Vd as injectedAwsRegionValue, Vi as DeploymentEventsStore, Vl as rebuildClientForBucketRegion, Vn as resolveReplacementOldType, Vo as hasReadableOrphans, Vs as repairMalformedResourcesForReadOnly, Vt as displacedOpClause, Vu as isDockerClientEnvKey, Wc as readsNoEchoSource, Wl as applyCrossPrefixScan, Wn as findNestedStackTypeChanges, Wo as isReadableOrphanRecord, Ws as unreadableResourceEntries, Wu as redactDockerArgvValues, Xa as keepHeldTokenProvenance, Xl as splitImportedOps, Xo as malformedLocalResourceEntriesWarning, Xr as green, Xt as collectNestedChildUnaddressed, Xu as AssetManifestLoader, Ya as refuseUnreadableCdkCrossAccountRefs, Yc as redactForState, Yl as withStackInstanceIdWithheld, Yo as malformedLocalOutputsWarning, Yr as gray, Ys as unwrittenCreateOnlyReplacement, Yt as withNestedRevertRun, Yu as warnFinchArgvExposure, Zl as acceptedCreateOnlyDropsOf, Zn as updatePartialMessage, Zo as malformedLocalResourcesWarning, Zr as red, Zs as NO_CC_HANDLERS_REASON, Zt as getCurrentNestedStackContext, Zu as getDockerImageBySourceHash, _d as uploadCfnTemplate, _i as maskEventTextWithBoundBags, _l as isUncertifiedBaselineMaskPosition, _n as sameMove, _o as getAccountInfo, _r as exportNameNoEchoParameters, _s as refuseMalformedOrphansForDestroy, _t as findNestedTemplateTreeDefect, _u as buildAssetRedirectMap, a as isProtectionValueActive, ad as resolveCaptureObservedState, ai as supersededHeldByOtherTypeWarning, al as recordLogOnlyValue, an as makeForeignHolderScan, ao as sendableAssumeRoleCommand, ar as withNameGenerationReached, as as malformedRenderedContainersWarning, au as isReadableBag, ba as deleteIndeterminateGuards, bc as prefetchCreateOnlyPropertyPaths, bd as expectedOwnerParam, bi as secretNamePrintingBag, bl as identityKeyFor, bn as pendingMovesOutOf, bo as carriesFetchableDynamicReference, br as noEchoParameterValueSeed, bs as refuseMalformedOutputsForDestroy, bt as renderNestedTemplateTreeDefect, bu as rewriteTemplateAssetReferences, ca as isCustomResourceType$1, cd as resolveStateBucketWithDefaultAndSource, ci as withoutSuperseded, cl as createSecretMasker, co as callerEnvCredentials, cr as reachableDivergentParameters, cs as malformedResourcesWarning, cu as shouldRetainResource, da as CUSTOM_RESOURCE_RESPONSE_LIFECYCLE_RULE_ID, dd as warnDeprecatedNoPrefixCliFlag, di as noEchoExactEchoLeavesOf, dl as maskSecretsInText, do as classifyReplaySecretRegion, dr as displayTextOrWithheld, ds as previewableOrphanRecords, dt as crossStackOutputProvenanceSource, du as renderPhaseTimings, ea as CC_BROKEN_REASON, ec as shownType, ed as getDefaultStateBucketName, ei as deleteSupersededEntry, el as hasMaskableValues, en as dropFailedCommands, eo as applyRoleArnIfSet, er as nameGenerationHighWaterOf, es as malformedOrphanRowsKeptWarning, eu as hasReadableExportSet, fa as applyCustomResourceResponseExpiration, fd as ssmResolvedValueType, fi as noEchoParameterNamesOf, fl as scrubResourceRecord, fn as readRefactorMarker, fo as producerRegionsFromState, fr as exportAliasCollisionScrubWarning, fs as refuseDivergentRecordRegionForDestroy, ft as inheritedProvenanceForChildDiff, fu as timePhase, gd as findLargeInlineResources, gi as journaledOrphanPrintingBag, gl as dynamicReferenceTokens, gn as refuseRefactorMarker, go as parameterTypeMayLoseSecretIdentity, gr as carriedExportAliasExposure, gs as refuseMalformedOrphans, gt as childTemplateLoader, gu as WorkGraph, ha as slowCcOperationTimeoutMs, hd as MIGRATE_TMP_PREFIX, hi as completedReplayEntries, hl as DYNAMIC_REFERENCE_TOKEN_SCAN, hn as refactorMarkerRefusalMessage, ho as isUnboundTemplateParameter, hr as secretSafeKeyDisplay, hs as refuseMalformedOrphanRecordsForDestroy, ht as serviceTokenBlockingReason, hu as stringifyValue, i as PROTECTION_PROPERTY_BY_TYPE, ia as wouldReturnToSdkProvider, ic as renderStatefulReason, id as resolveAutoAssetStorage, ii as supersededAfterRollback, il as recordLogOnlyParameterValue, in as loadJournaledOrphans, io as isIamRoleArn, ir as retiredNameGenerationsLeaving, is as malformedOutputsWarning, iu as importableOutputs, j as setResolvedResourceTimeouts, ja as DiffCalculator, jc as DagBuilder, jd as hasOwnKey, ji as effectiveDeletionPolicy, jl as recordMaskOnlyValuesIn, jn as equalModuloMask, jr as findRefactorHints, js as refuseMalformedResourcePropertiesForOrphan, jt as keptWholeReasonText, ju as buildDenyExternalAccessPolicy, kd as utf8ByteLength, ki as ccRoutedFinalSnapshotError, kl as provenPublicValue, kn as calculateResourceDrift, ko as withSharedDrainBudget, kr as findDestructiveChanges, ks as refuseMalformedResourcePropertiesForDrift, kt as diffSecurity, ku as validateAssetBucketName, ld as resolveUseCdkBootstrapAssets, li as noEchoAttributeNamesOf, ll as errorCauseChain, lo as envCredentialsAreAssumedRole, lr as resourcesNamingDeclaredParameter, ls as malformedScrubResourceEntriesRefusalMessage, lt as IMPLICIT_DELETE_DEPENDENCIES, lu as stackInstanceIdCarriedFrom, ma as CloudControlProvider, md as CFN_TEMPLATE_URL_LIMIT, mi as createReadOnlyAttributeHealerFactory, mn as refactorMarkerMovesOf, mo as coerceParameterTypedValue, mr as secretBearingStateKeyWarning, ms as refuseMalformedOrphanRecords, mt as findServiceTokenRefusals, mu as isSensitiveAttributeName, n as recordedProtectionEvidence, na as ccBrokenReason, nc as isStatefulRecreateTargetForReplace, nd as loadCdkJson, ni as isSupersededResourceRecord, nl as logOnlyValueCount, nn as isHandledOrphan, no as assertSendableRoleArn, nr as retiredAfterRollback, ns as malformedOrphansWarning, nu as hasUnverifiableParameterRefusal, o as perType, oa as TemplateNoEchoReresolver, od as resolveSkipPrefix, oi as supersededHolderOf, ol as shareLogOnlyValues, on as sameJournaledOrphans, oo as AWS_CREDENTIAL_ENV_KEYS, or as computeParameterTaint, os as malformedResourceEntriesWarning, ou as orphansAfterRollback, pa as customResourceResponseExpirationWarning, pd as CFN_TEMPLATE_BODY_LIMIT, pi as withAttemptedItemsMasked, pl as withPhysicalNameCopies, pn as readRefactorMarkerOnce, po as regionLessSecretName, pr as secretBearing, pt as deferredServiceTokenWarning, pu as AssetPublisher, qa as resolveDynamicReferences, qc as liveMatchesUnresolvedTokenFrame, ql as isNotImplemented, qo as malformedExportNamesWarning, qr as bold, qs as findHandledUnwrittenCreateOnly, qu as runDockerForeground, r as recordedProtectionNote, ra as isCustomResource, rc as isStatefulRecreateTargetSync, rd as resolveApp, ri as removeSuperseded, rl as printingCorpusOf, rn as journaledOrphanLines, ro as explicitRoleArnOrThrow, rr as retiredNameGenerationsAfter, rs as malformedOutputsRefusalMessage, ru as importableOutputKeys, s as readProtection, sa as readsNoEchoDeleteValues, sd as resolveStateBucketWithDefault, si as supersededResourcesOf, sl as unionOfSecretBags, sn as formatResourceLine, so as applyCallerIdentityCredentials, sr as namesAnyDeclaredParameter, ss as malformedResourcePropertiesWarning, su as orphansCarriedFrom, t as DeployEngine, ta as ProviderRegistry, tc as MULTI_REGION_RECREATE_BLOCKED_TYPES, td as getLegacyStateBucketName, ti as holdsSupersededResources, tl as literalSplitDelimitersOf, tn as dropFailedHint, to as assertFlagRoleArn, tr as nameScopeOf, ts as malformedOrphansRefusalMessage, tu as hasReasonlessBaselineRefusal, ua as withPrintingSecrets, uc as coerceCfnBoolean, ud as stateBucketExistenceConfirmed, ui as noEchoComparisonForTemplate, ul as maskSecretsInError, uo as classifyRecordedSecretRegion, ur as WITHHELD_NAME_DISPLAY, us as malformedStateRefusalMessage, ut as computeImplicitDeleteEdges, uu as PhaseClock, va as RollbackInlinePolicyWriters, vd as CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION, vi as namingSecretsWithRecordedNoEcho, vl as pathCrossesDottedKey, vn as updateRefactorMarker, vo as isImpossibleEmptyStoredAttribute, vr as exportNameSecretExposure, vs as refuseMalformedOrphansForOrphan, vt as isAbsoluteAssetPath, vu as createAssetRedirectResolver, wa as isWaitAbandonedError, wd as AssemblyReader, wi as stateSecretNameNeedles, wl as physicalNameCopiesOf, wn as replayRollback, wo as cfnRefValueFromPhysicalId, wr as bindingSkippedOutputs, ws as refuseMalformedResourceEntriesForDestroy, wt as parentSuppliedValues, wu as ensureAssetStorage, xa as deleteLeftInPlace, xc as templateResourceTypes, xd as PARTITION_TABLE, xi as secretNamePrintingBags, xl as inheritNestedStackParameterAssociations, xn as pendingMovesRefusalMessage, xo as isNamelessDynamicReferenceError, xr as collectDeclaredOutputNames, xs as refuseMalformedResourceAttributesForOrphan, xt as templateIdentity, xu as AssetModeResolver, ya as UNSPECIFIED_SKIP_REASON, yd as decodeListingKey, yi as orphanRecordsPrintingBag, yl as spelledKeysOf, yn as hasPendingMovesOut, yo as carriesDynamicReference, yr as isWholeDynamicReferenceValue, ys as refuseMalformedOutputs, yt as listNestedTemplateRows, yu as loadPublishableAssetManifest, za as IntrinsicFunctionResolver, zc as noEchoCoordinatesOf, zd as resolveAssemblyPath, zl as isLockInfoExpired, zn as recordUnderIdIsNotOwn, zo as deployRefusesOrphanRowsReason, zr as parseMappingFile, zs as repairMalformedResourceEntriesForReadOnly, zt as recordRetainedForReadoption, zu as formatDockerLoginError } from "./deploy-engine-l-wZygYT.js";
6
- import { t as getCdkdVersion } from "./version-C8PfUSmt.js";
5
+ import { $a as recordedReferenceRegions, $c as createUnionSecretMasker, $l as exportNamesCarriedFrom, $n as nameGenerationCarriedFrom, $o as malformedOrphanRecordsWarning, $r as addSuperseded, $s as findReplacedReadersOfRecreateTargets, $t as deleteJournaledOrphans, $u as synthesisStatusMessage, Ad as defineOwnKey, Ai as createPreDeleteFinalSnapshot, Al as recordMaskOnlyValue, An as equalModuloMarkedMask, Ao as parameterInputsFor, Ar as formatDestructiveChange, As as refuseMalformedResourcePropertiesForExport, At as isSecretBearingReferenceString, Au as validateContainerRepoName, Ba as poisonRenderedSpellingsCollidingIn, Bc as noEchoLeavesOf, Bd as injectAwsRegion, Bi as DeploymentEventsReader, Bl as S3StateBackend, Bn as replacementNeverSwapped, Bo as displayLogicalId, Br as proposeRenames, Bs as repairMalformedResourcePropertiesForReadOnly, Bt as NESTED_PENDING_PARENT_REASON, Bu as getDockerCmd, Cc as withRetry, Cd as derivePartitionAndUrlSuffix, Ci as secretNamedRecordNeedles, Cn as replayFailedOperations, Co as AWS_NO_VALUE, Cr as isExportAliasCollision, Cs as refuseMalformedResourceEntriesForDeploy, Ct as conditionInputsFrom, Cu as assertAssetBucketRegion, Dd as describeJsonParseFailure, Di as PRE_DELETE_SNAPSHOT_TYPES, Dl as splitGetAttStringForm, Dn as settleUnsettledPrevious, Do as refStateLookupFromResource, Dr as maskingRetryLogger, Ds as refuseMalformedResourceEntriesForOrphan, Du as parseBootstrapMarker, Ed as processStackMessages, Ei as ATOMIC_FINAL_SNAPSHOT_TYPES, El as recordPhysicalNameCopy, En as recordAfterRollbackUpdate, Eo as lacksRecordedTableArn, Er as DEFAULT_RESOURCE_WARN_AFTER_MS, Es as refuseMalformedResourceEntriesForImportSave, Eu as isCrossRegionRedirect, Fa as unsettledItemsOf, Fc as maskAtCoordinates, Fd as absoluteAssemblyPathEscape, Fl as wholeStringLeavesOf, Fn as isReplacementOrphan, Fo as STATE_RESOURCES_MALFORMED, Fr as withMovedTo, Fs as refuseMalformedState, Ft as planOrphanAdoption, Fu as describeDockerExecFailure, Gc as recordedNoEchoValuesOf, Gl as crossPrefixDeniedWarning, Go as isReadableResourceEntry, Gr as withStackRecords, Gs as withheldAccountClause, Gt as nestedChildStackName$1, Gu as redactedCause, Hi as extractDeploymentEventError, Hl as CrossPrefixReadError, Hn as seedsDeleteFirstGuard, Ho as hasReadableOutputs, Hs as unpreviewableOrphanRecords, Ht as displacedPhysicalIdShown, Hu as isMalformedEnvKey, Ia as unsettledPropertiesOf, Ic as maskReadbackAtCoordinates, Id as describeFileReadFailure, Ii as ledgerForStack, Il as WHOLE_DYNAMIC_REFERENCE_PATTERN, In as planFailedOps, Io as UNREADABLE_ORPHANS_CONTAINER_ROW, Ir as isPairableType, Is as repairMalformedOrphanRecordsForReadOnly, It as pendingRequestCount, Iu as describeDockerFailure, Ja as producerLookupOver, Jl as stackInstanceIdOf, Jo as malformedExportSourceWarning, Jr as cyan, Jt as revertedNestedRowIds, Ju as runDockerStreaming, Kc as valueAtCoordinate, Kl as isAccessDenied, Kn as inheritProducerRegions, Ko as malformedDriftResourcePropertiesWarning, Ks as findActionableSdkUnwired, Kt as recordDisplacedSkips, Ku as redactedDockerCause, La as withUnsettledProperties, Lc as maskWholeValue, Ld as displayAssemblyPath, Ll as isSingleDynamicReferenceToken, Ln as planRollback, Lo as UNREADABLE_RESOURCES_MAP_ROW, Lr as looselyEqual, Ls as repairMalformedOrphansForReadOnly, Lt as resolvePendingCloudControlRequests, Lu as dockerSpawnEnvWithSensitive, Ma as INTRINSIC_KEYS, Mc as TemplateParser, Md as hasPlainPrototype, Mi as isFinalSnapshotError, Ml as recordNoEchoAttributeValues, Mn as undeclaredEmptyObservedKeys, Mo as declaresNoEcho, Mr as hintSidesOf, Ms as refuseMalformedResourcesForDeploy, Mt as mergeNoChangeOutputs, Mu as buildDockerImage, Nc as canonicalCoordinates, Nd as nullPrototypeRecord, Ni as refusesFinalSnapshot, Nl as recordNoEchoParameterFreshValue, Nn as demoteSupersededOrphans, No as JSON_LISTING_HOLE_VALUE, Nr as movedToHint, Ns as refuseMalformedResourcesForDestroy, Nt as makeCanonicalizePropertiesFn, Nu as resolveDockerContextDirectory, Od as parseFailureDebugDetail, Oi as buildFinalSnapshotIdentifier, Ol as carriesSecretMask, On as withUnprovenUnsettled, Or as constructPathOf$1, Os as refuseMalformedResourcePropertiesForDestroy, Ot as withResourceDeadline, Ou as readBootstrapMarkerBody, Pa as unsettledItemsField, Pc as isMarkedCoordinate, Pd as ownValue, Pi as unsupportedFinalSnapshotError, Pl as recordProvenPublicExpression, Pn as isJournaledOrphan, Po as STATE_REGION_DIVERGED, Pr as rollbackOrphanIds, Ps as refuseMalformedResourcesForExport, Pt as makeSiblingClaimReader, Pu as describeDockerCapturedOutput, Qa as recordedOutputReferenceRegions, Qc as carryLogOnlyValues, Ql as describeRegionValueKind, Qn as updatePartialReason, Qo as malformedOrphanRecordsRefusalMessage, Qr as yellow, Qs as hasNoCloudControlHandlers, Qt as withNestedStackContext, Qu as Synthesizer, Ra as withoutUnsettledProperties, Rc as maskedLeafCoordinatesOf, Rd as renderAssemblyPathEscape, Ri as withCreateTokenLedger, Rl as LockManager, Rn as recheckFailedPlan, Ro as accountArgs, Rr as mappingPairs, Rs as repairMalformedOutputsForReadOnly, Rt as keptForRetainedRecord, Ru as finchSecretArgvRefusal, Sa as deleteSkipReason, Sc as describeTypeWithThrottleRetry, Sd as canonicalizeRegion, Sl as recordNestedStackParameterExpressions, Sn as refusePendingMovesOut, So as keepsSecretReferenceToken, Sr as collectPublishedOutputNames, Ss as refuseMalformedResourceEntries, St as conditionFingerprint, Su as BOOTSTRAP_MARKER_PREFIX, Td as StageLoadError, Ti as storedSecretNameNeedles, Tn as removeProtectionTypeList, To as isStalePlaceholderArnAttribute, Tr as DEFAULT_RESOURCE_TIMEOUT_MS, Ts as refuseMalformedResourceEntriesForImport, Tt as readRecordedConditionVerdicts, Tu as getBootstrapMarkerKey, Uc as readbackPathFor, Ud as resolveBucketRegion, Ul as CrossPrefixScanCache, Un as orphanNeedsIdentity, Uo as hasReadableResources, Ur as destroyStackRecordsView, Us as unreadableOrphanRecords, Ut as dropSettledNestedJournals, Uu as partitionSensitiveEnv, Vc as noEchoOutputsComparison, Vd as injectedAwsRegionValue, Vi as DeploymentEventsStore, Vl as rebuildClientForBucketRegion, Vn as resolveReplacementOldType, Vo as hasReadableOrphans, Vs as repairMalformedResourcesForReadOnly, Vt as displacedOpClause, Vu as isDockerClientEnvKey, Wc as readsNoEchoSource, Wl as applyCrossPrefixScan, Wn as findNestedStackTypeChanges, Wo as isReadableOrphanRecord, Ws as unreadableResourceEntries, Wu as redactDockerArgvValues, Xa as keepHeldTokenProvenance, Xl as splitImportedOps, Xo as malformedLocalResourceEntriesWarning, Xr as green, Xt as collectNestedChildUnaddressed, Xu as AssetManifestLoader, Ya as refuseUnreadableCdkCrossAccountRefs, Yc as redactForState, Yl as withStackInstanceIdWithheld, Yo as malformedLocalOutputsWarning, Yr as gray, Ys as unwrittenCreateOnlyReplacement, Yt as withNestedRevertRun, Yu as warnFinchArgvExposure, Zl as acceptedCreateOnlyDropsOf, Zn as updatePartialMessage, Zo as malformedLocalResourcesWarning, Zr as red, Zs as NO_CC_HANDLERS_REASON, Zt as getCurrentNestedStackContext, Zu as getDockerImageBySourceHash, _d as uploadCfnTemplate, _i as maskEventTextWithBoundBags, _l as isUncertifiedBaselineMaskPosition, _n as sameMove, _o as getAccountInfo, _r as exportNameNoEchoParameters, _s as refuseMalformedOrphansForDestroy, _t as findNestedTemplateTreeDefect, _u as buildAssetRedirectMap, a as isProtectionValueActive, ad as resolveCaptureObservedState, ai as supersededHeldByOtherTypeWarning, al as recordLogOnlyValue, an as makeForeignHolderScan, ao as sendableAssumeRoleCommand, ar as withNameGenerationReached, as as malformedRenderedContainersWarning, au as isReadableBag, ba as deleteIndeterminateGuards, bc as prefetchCreateOnlyPropertyPaths, bd as expectedOwnerParam, bi as secretNamePrintingBag, bl as identityKeyFor, bn as pendingMovesOutOf, bo as carriesFetchableDynamicReference, br as noEchoParameterValueSeed, bs as refuseMalformedOutputsForDestroy, bt as renderNestedTemplateTreeDefect, bu as rewriteTemplateAssetReferences, ca as isCustomResourceType$1, cd as resolveStateBucketWithDefaultAndSource, ci as withoutSuperseded, cl as createSecretMasker, co as callerEnvCredentials, cr as reachableDivergentParameters, cs as malformedResourcesWarning, cu as shouldRetainResource, da as CUSTOM_RESOURCE_RESPONSE_LIFECYCLE_RULE_ID, dd as warnDeprecatedNoPrefixCliFlag, di as noEchoExactEchoLeavesOf, dl as maskSecretsInText, do as classifyReplaySecretRegion, dr as displayTextOrWithheld, ds as previewableOrphanRecords, dt as crossStackOutputProvenanceSource, du as renderPhaseTimings, ea as CC_BROKEN_REASON, ec as shownType, ed as getDefaultStateBucketName, ei as deleteSupersededEntry, el as hasMaskableValues, en as dropFailedCommands, eo as applyRoleArnIfSet, er as nameGenerationHighWaterOf, es as malformedOrphanRowsKeptWarning, eu as hasReadableExportSet, fa as applyCustomResourceResponseExpiration, fd as ssmResolvedValueType, fi as noEchoParameterNamesOf, fl as scrubResourceRecord, fn as readRefactorMarker, fo as producerRegionsFromState, fr as exportAliasCollisionScrubWarning, fs as refuseDivergentRecordRegionForDestroy, ft as inheritedProvenanceForChildDiff, fu as timePhase, gd as findLargeInlineResources, gi as journaledOrphanPrintingBag, gl as dynamicReferenceTokens, gn as refuseRefactorMarker, go as parameterTypeMayLoseSecretIdentity, gr as carriedExportAliasExposure, gs as refuseMalformedOrphans, gt as childTemplateLoader, gu as WorkGraph, ha as slowCcOperationTimeoutMs, hd as MIGRATE_TMP_PREFIX, hi as completedReplayEntries, hl as DYNAMIC_REFERENCE_TOKEN_SCAN, hn as refactorMarkerRefusalMessage, ho as isUnboundTemplateParameter, hr as secretSafeKeyDisplay, hs as refuseMalformedOrphanRecordsForDestroy, ht as serviceTokenBlockingReason, hu as stringifyValue, i as PROTECTION_PROPERTY_BY_TYPE, ia as wouldReturnToSdkProvider, ic as renderStatefulReason, id as resolveAutoAssetStorage, ii as supersededAfterRollback, il as recordLogOnlyParameterValue, in as loadJournaledOrphans, io as isIamRoleArn, ir as retiredNameGenerationsLeaving, is as malformedOutputsWarning, iu as importableOutputs, j as setResolvedResourceTimeouts, ja as DiffCalculator, jc as DagBuilder, jd as hasOwnKey, ji as effectiveDeletionPolicy, jl as recordMaskOnlyValuesIn, jn as equalModuloMask, jr as findRefactorHints, js as refuseMalformedResourcePropertiesForOrphan, jt as keptWholeReasonText, ju as buildDenyExternalAccessPolicy, kd as utf8ByteLength, ki as ccRoutedFinalSnapshotError, kl as provenPublicValue, kn as calculateResourceDrift, ko as withSharedDrainBudget, kr as findDestructiveChanges, ks as refuseMalformedResourcePropertiesForDrift, kt as diffSecurity, ku as validateAssetBucketName, ld as resolveUseCdkBootstrapAssets, li as noEchoAttributeNamesOf, ll as errorCauseChain, lo as envCredentialsAreAssumedRole, lr as resourcesNamingDeclaredParameter, ls as malformedScrubResourceEntriesRefusalMessage, lt as IMPLICIT_DELETE_DEPENDENCIES, lu as stackInstanceIdCarriedFrom, ma as CloudControlProvider, md as CFN_TEMPLATE_URL_LIMIT, mi as createReadOnlyAttributeHealerFactory, mn as refactorMarkerMovesOf, mo as coerceParameterTypedValue, mr as secretBearingStateKeyWarning, ms as refuseMalformedOrphanRecords, mt as findServiceTokenRefusals, mu as isSensitiveAttributeName, n as recordedProtectionEvidence, na as ccBrokenReason, nc as isStatefulRecreateTargetForReplace, nd as loadCdkJson, ni as isSupersededResourceRecord, nl as logOnlyValueCount, nn as isHandledOrphan, no as assertSendableRoleArn, nr as retiredAfterRollback, ns as malformedOrphansWarning, nu as hasUnverifiableParameterRefusal, o as perType, oa as TemplateNoEchoReresolver, od as resolveSkipPrefix, oi as supersededHolderOf, ol as shareLogOnlyValues, on as sameJournaledOrphans, oo as AWS_CREDENTIAL_ENV_KEYS, or as computeParameterTaint, os as malformedResourceEntriesWarning, ou as orphansAfterRollback, pa as customResourceResponseExpirationWarning, pd as CFN_TEMPLATE_BODY_LIMIT, pi as withAttemptedItemsMasked, pl as withPhysicalNameCopies, pn as readRefactorMarkerOnce, po as regionLessSecretName, pr as secretBearing, pt as deferredServiceTokenWarning, pu as AssetPublisher, qa as resolveDynamicReferences, qc as liveMatchesUnresolvedTokenFrame, ql as isNotImplemented, qo as malformedExportNamesWarning, qr as bold, qs as findHandledUnwrittenCreateOnly, qu as runDockerForeground, r as recordedProtectionNote, ra as isCustomResource, rc as isStatefulRecreateTargetSync, rd as resolveApp, ri as removeSuperseded, rl as printingCorpusOf, rn as journaledOrphanLines, ro as explicitRoleArnOrThrow, rr as retiredNameGenerationsAfter, rs as malformedOutputsRefusalMessage, ru as importableOutputKeys, s as readProtection, sa as readsNoEchoDeleteValues, sd as resolveStateBucketWithDefault, si as supersededResourcesOf, sl as unionOfSecretBags, sn as formatResourceLine, so as applyCallerIdentityCredentials, sr as namesAnyDeclaredParameter, ss as malformedResourcePropertiesWarning, su as orphansCarriedFrom, t as DeployEngine, ta as ProviderRegistry, tc as MULTI_REGION_RECREATE_BLOCKED_TYPES, td as getLegacyStateBucketName, ti as holdsSupersededResources, tl as literalSplitDelimitersOf, tn as dropFailedHint, to as assertFlagRoleArn, tr as nameScopeOf, ts as malformedOrphansRefusalMessage, tu as hasReasonlessBaselineRefusal, ua as withPrintingSecrets, uc as coerceCfnBoolean, ud as stateBucketExistenceConfirmed, ui as noEchoComparisonForTemplate, ul as maskSecretsInError, uo as classifyRecordedSecretRegion, ur as WITHHELD_NAME_DISPLAY, us as malformedStateRefusalMessage, ut as computeImplicitDeleteEdges, uu as PhaseClock, va as RollbackInlinePolicyWriters, vd as CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION, vi as namingSecretsWithRecordedNoEcho, vl as pathCrossesDottedKey, vn as updateRefactorMarker, vo as isImpossibleEmptyStoredAttribute, vr as exportNameSecretExposure, vs as refuseMalformedOrphansForOrphan, vt as isAbsoluteAssetPath, vu as createAssetRedirectResolver, wa as isWaitAbandonedError, wd as AssemblyReader, wi as stateSecretNameNeedles, wl as physicalNameCopiesOf, wn as replayRollback, wo as cfnRefValueFromPhysicalId, wr as bindingSkippedOutputs, ws as refuseMalformedResourceEntriesForDestroy, wt as parentSuppliedValues, wu as ensureAssetStorage, xa as deleteLeftInPlace, xc as templateResourceTypes, xd as PARTITION_TABLE, xi as secretNamePrintingBags, xl as inheritNestedStackParameterAssociations, xn as pendingMovesRefusalMessage, xo as isNamelessDynamicReferenceError, xr as collectDeclaredOutputNames, xs as refuseMalformedResourceAttributesForOrphan, xt as templateIdentity, xu as AssetModeResolver, ya as UNSPECIFIED_SKIP_REASON, yd as decodeListingKey, yi as orphanRecordsPrintingBag, yl as spelledKeysOf, yn as hasPendingMovesOut, yo as carriesDynamicReference, yr as isWholeDynamicReferenceValue, ys as refuseMalformedOutputs, yt as listNestedTemplateRows, yu as loadPublishableAssetManifest, za as IntrinsicFunctionResolver, zc as noEchoCoordinatesOf, zd as resolveAssemblyPath, zl as isLockInfoExpired, zn as recordUnderIdIsNotOwn, zo as deployRefusesOrphanRowsReason, zr as parseMappingFile, zs as repairMalformedResourceEntriesForReadOnly, zt as recordRetainedForReadoption, zu as formatDockerLoginError } from "./deploy-engine-CykA53H2.js";
6
+ import { t as getCdkdVersion } from "./version-BUANWGDH.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";
@@ -27,7 +27,7 @@ import * as readline$1 from "node:readline/promises";
27
27
  import readline from "node:readline/promises";
28
28
  import { Document, Pair, Scalar, YAMLError, YAMLMap, YAMLSeq, isScalar, parse, parseDocument, stringify, visit } from "yaml";
29
29
  import { emitKeypressEvents } from "node:readline";
30
- 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, discoverRoutes, discoverWebSocketApis, downloadAndExtractS3Bundle, filterRoutesByApiIdentifier, firstUsableRegion, groupRoutesByServer, handleConnectionsRequest, invokeAgentCore, invokeAgentCoreWs, keysNotFromTemplate, keysOverriddenBy, materializeLayerFromArn, mcpInvokeOnce, parseConnectionsPath, parseSelectionExpressionPath, pickAgentCoreCandidateStack, pickAgentCoreCandidateStack as pickAgentCoreCandidateStack$1, probeHostGatewaySupport, readMtlsMaterialsFromDisk, recordAssumedRole, resolveAgentCoreTarget, resolveDynamicReferencesInEnv, resolveEnvVars, resolveHostGatewayExtraHosts, resolveRuntimeCodeMountPath, resolveRuntimeFileExtension, resolveRuntimeImage, resolveSingleTarget, resolveWatchConfig, runEcsServiceEmulator, signAgentCoreInvocation, startApiServer, substituteImagePlaceholders, tryResolveImageFnJoin, verifyJwtViaDiscovery, waitForAgentCorePing, withoutKeys } from "cdk-local/internal";
30
+ 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, addImageOverrideOptions, addStartServiceSpecificOptions, albStrategy, architectureToPlatform, attachAuthorizers, attachStageContext, availableApiIdentifiers, bufferToBody, buildAgentCoreCodeImage, buildCognitoJwksUrl, buildConnectEvent, buildContainerImage, buildCorsConfigByApiId, buildCorsConfigFromCloudFrontChain, buildDisconnectEvent, buildJwksUrlFromIssuer, buildMessageEvent, buildMgmtEndpointEnvUrl, buildStageMap, canonicalizeImageOverrideKeys, classifySourceChange, containsDynamicReference, createAuthorizerCache, createFileWatcher, createFileWatcher as createFileWatcher$1, createJwksCache, createWatchPredicates, defaultCredentialsLoader, derivePseudoParametersFromRegion, describeAwsFailureForWarn, discoverRoutes, discoverWebSocketApis, downloadAndExtractS3Bundle, enforceImageOverrideOrphans, filterRoutesByApiIdentifier, firstUsableRegion, groupRoutesByServer, handleConnectionsRequest, invokeAgentCore, invokeAgentCoreWs, keysNotFromTemplate, keysOverriddenBy, materializeLayerFromArn, mcpInvokeOnce, parseConnectionsPath, parseImageOverrideFlags, parseSelectionExpressionPath, pickAgentCoreCandidateStack, pickAgentCoreCandidateStack as pickAgentCoreCandidateStack$1, probeHostGatewaySupport, readMtlsMaterialsFromDisk, recordAssumedRole, resolveAgentCoreTarget, resolveDynamicReferencesInEnv, resolveEnvVars, resolveHostGatewayExtraHosts, resolveImageOverrides, resolveRuntimeCodeMountPath, resolveRuntimeFileExtension, resolveRuntimeImage, resolveSingleTarget, resolveWatchConfig, runEcsServiceEmulator, runImageOverrideBuilds, signAgentCoreInvocation, startApiServer, substituteImagePlaceholders, tryResolveImageFnJoin, verifyJwtViaDiscovery, waitForAgentCorePing, withoutKeys } from "cdk-local/internal";
31
31
  import { createLocalStartAgentCoreCommand, createLocalStartCloudFrontCommand, createLocalStartMicrovmCommand, createLocalStartWebFunctionCommand, createLocalStateProvider, getEmbedConfig, isCfnFlagPresent, listTargets, rejectExplicitCfnStackWithMultipleStacks, resolveCfnFallbackRegion, setEmbedConfig, substituteAgainstState, substituteAgainstStateAsync, substituteEnvVarsFromState, substituteEnvVarsFromStateAsync } from "cdk-local";
32
32
  import { createServer } from "node:net";
33
33
  import { setTimeout as setTimeout$1 } from "node:timers/promises";
@@ -2690,7 +2690,7 @@ function collectCrossStackRefs(node, onRef, unconditional) {
2690
2690
  // src/provisioning/register-providers.ts
2691
2691
  let providerClasses;
2692
2692
  function loadProviderClasses() {
2693
- providerClasses ??= import("./provider-classes-D60y4umw.js");
2693
+ providerClasses ??= import("./provider-classes-DDQoh7PA.js");
2694
2694
  return providerClasses;
2695
2695
  }
2696
2696
  function registerAllProviders(registry, classes) {
@@ -25341,6 +25341,7 @@ function parseContainerDefinition(raw, idx, taskLogicalId, resources, stack, con
25341
25341
  if (user !== void 0) out.user = user;
25342
25342
  if (privileged !== void 0) out.privileged = privileged;
25343
25343
  if (readonlyRootFilesystem !== void 0) out.readonlyRootFilesystem = readonlyRootFilesystem;
25344
+ if (droppedSecretKeys.length > 0) out.droppedSecretNames = droppedSecretKeys.map((d) => d.key);
25344
25345
  return out;
25345
25346
  }
25346
25347
  function buildSubstitutionContextFromImageContext(context) {
@@ -25369,10 +25370,11 @@ function isCdkAssetImageUri(uri, cdkAssetContainerRepo) {
25369
25370
  }
25370
25371
  function parseContainerImage(raw, containerName, taskLogicalId, resources, _stack, context) {
25371
25372
  const getAttImage = tryResolveImageGetAtt(raw, resources, context);
25372
- if (getAttImage) return classifyResolvedImage(getAttImage, context?.cdkAssetContainerRepo);
25373
+ if (getAttImage?.kind === "resolved") return classifyResolvedImage(getAttImage.uri, context?.cdkAssetContainerRepo);
25374
+ if (getAttImage?.kind === "needs-state") return sameStackEcrImage(containerName, taskLogicalId, getAttImage.repoLogicalId);
25373
25375
  const joinResolved = tryResolveImageFnJoin(raw, resources, context);
25374
25376
  if (joinResolved.kind === "resolved") return classifyResolvedImage(joinResolved.uri, context?.cdkAssetContainerRepo);
25375
- if (joinResolved.kind === "needs-state") throw new EcsTaskResolutionError(`Container '${containerName}' in task '${taskLogicalId}' references same-stack ECR repository '${joinResolved.repoLogicalId}' via Fn::Join. cdkd local run-task cannot resolve the repository URI without state — pass --from-state (the stack must have been deployed via cdkd deploy), build via ContainerImage.fromAsset, or pin a public image.`);
25377
+ if (joinResolved.kind === "needs-state") return sameStackEcrImage(containerName, taskLogicalId, joinResolved.repoLogicalId, " via Fn::Join");
25376
25378
  if (joinResolved.kind === "unsupported-join") throw new EcsTaskResolutionError(`Container '${containerName}' in task '${taskLogicalId}' has an unsupported Fn::Join Image shape: ${joinResolved.reason}. cdkd local run-task recognizes the canonical CDK 2.x ContainerImage.fromEcrRepository Fn::Join shape (delimiter "" with nested Fn::Select/Fn::Split over an ECR Repository Arn GetAtt + Ref to the repo).`);
25377
25379
  const flat = extractImageString(raw);
25378
25380
  if (!flat) throw new EcsTaskResolutionError(`Container '${containerName}' in task '${taskLogicalId}' has an unparseable Image property. cdkd local run-task v1 supports flat string images, single-key Fn::Sub bodies, and CDK-asset Image references.`);
@@ -25385,7 +25387,7 @@ function parseContainerImage(raw, containerName, taskLogicalId, resources, _stac
25385
25387
  const substituted = substituteImagePlaceholders(flat, resources, context);
25386
25388
  if (substituted.includes("${")) {
25387
25389
  const unresolvedRepoRef = findUnresolvedEcrRepositoryRef(substituted, resources);
25388
- if (unresolvedRepoRef) throw new EcsTaskResolutionError(`Container '${containerName}' in task '${taskLogicalId}' references same-stack ECR repository '${unresolvedRepoRef}'. cdkd local run-task v1 cannot resolve the repository URI without state — pass --from-state (the stack must have been deployed via cdkd deploy), build via ContainerImage.fromAsset, or pin a public image.`);
25390
+ if (unresolvedRepoRef) return sameStackEcrImage(containerName, taskLogicalId, unresolvedRepoRef);
25389
25391
  if (substituted.includes("AWS::")) throw new EcsTaskResolutionError(`Container '${containerName}' in task '${taskLogicalId}' has an Image that references AWS pseudo parameters (${substituted}). cdkd could not resolve them: confirm AWS credentials are configured so STS GetCallerIdentity succeeds, and that --region / AWS_REGION names the target region. Workaround: build the image locally (ContainerImage.fromAsset) or pin a public image.`);
25390
25392
  throw new EcsTaskResolutionError(`Container '${containerName}' in task '${taskLogicalId}' has an Image with unresolved \${...} placeholders (${substituted}). cdkd local run-task v1 only resolves AWS pseudo parameters and same-stack AWS::ECR::Repository refs.`);
25391
25393
  }
@@ -25432,6 +25434,21 @@ function classifyResolvedImage(uri, cdkAssetContainerRepo) {
25432
25434
  uri
25433
25435
  };
25434
25436
  }
25437
+ function sameStackEcrImage(containerName, taskLogicalId, repoLogicalId, via = "") {
25438
+ return {
25439
+ kind: "same-stack-ecr",
25440
+ repoLogicalId,
25441
+ unresolvedReason: `Container '${containerName}' in task '${taskLogicalId}' references same-stack ECR repository '${repoLogicalId}'${via}. cdkd local run-task cannot resolve the repository URI without state — pass --from-state (cdkd-deployed) or --from-cfn-stack (cdk-deployed), build via ContainerImage.fromAsset, pin a public image, or pass --image-override to build it from a local Dockerfile.`
25442
+ };
25443
+ }
25444
+ function assertEcsTaskImagesResolvable(task, coveredContainers = /* @__PURE__ */ new Set()) {
25445
+ const reasons = [];
25446
+ for (const c of task.containers) {
25447
+ if (c.image.kind !== "same-stack-ecr" || coveredContainers.has(c.name)) continue;
25448
+ reasons.push(c.image.unresolvedReason);
25449
+ }
25450
+ if (reasons.length > 0) throw new EcsTaskResolutionError(reasons.join("\n"));
25451
+ }
25435
25452
  function tryResolveImageGetAtt(raw, resources, context) {
25436
25453
  if (!raw || typeof raw !== "object") return void 0;
25437
25454
  const arg = raw["Fn::GetAtt"];
@@ -25452,7 +25469,14 @@ function tryResolveImageGetAtt(raw, resources, context) {
25452
25469
  if (resources[logicalId]?.Type !== "AWS::ECR::Repository") return void 0;
25453
25470
  if (attr !== "RepositoryUri" && attr !== "Arn") return void 0;
25454
25471
  const cached = context?.stateResources?.[logicalId]?.attributes?.[attr];
25455
- if (typeof cached === "string" && cached.length > 0) return cached;
25472
+ if (typeof cached === "string" && cached.length > 0) return {
25473
+ kind: "resolved",
25474
+ uri: cached
25475
+ };
25476
+ if (attr === "RepositoryUri") return {
25477
+ kind: "needs-state",
25478
+ repoLogicalId: logicalId
25479
+ };
25456
25480
  }
25457
25481
  function extractImageString(value) {
25458
25482
  if (typeof value === "string" && value.length > 0) return value;
@@ -25640,6 +25664,7 @@ async function applyCrossStackResolverToTask(task, context) {
25640
25664
  valueFrom: sub.value
25641
25665
  });
25642
25666
  resolvedSecretNames.add(sName);
25667
+ if (container.droppedSecretNames) container.droppedSecretNames = container.droppedSecretNames.filter((n) => n !== sName);
25643
25668
  }
25644
25669
  }
25645
25670
  if (resolvedEnvKeys.size > 0 || resolvedSecretNames.size > 0) {
@@ -28244,6 +28269,7 @@ function createLocalStartApiCommand() {
28244
28269
  const execFileAsync$2 = promisify(execFile);
28245
28270
  const METADATA_ENDPOINT_IMAGE = "amazon/amazon-ecs-local-container-endpoints:latest-amd64";
28246
28271
  const METADATA_ENDPOINT_IP = "169.254.170.2";
28272
+ const TASK_ROLE_CREDENTIALS_PATH = "/creds";
28247
28273
  const DEFAULT_METADATA_ENDPOINT_SUBNET = "169.254.170.0/24";
28248
28274
  function buildEndpointSubnet(subnetOctet) {
28249
28275
  if (subnetOctet < 1 || subnetOctet > 254 || !Number.isInteger(subnetOctet)) throw new Error(`buildEndpointSubnet: subnetOctet must be an integer in 1..254 (got ${subnetOctet}).`);
@@ -28269,7 +28295,7 @@ async function createNetworkAndSidecar(args) {
28269
28295
  try {
28270
28296
  await execFileAsync$2(getDockerCmd(), createArgs);
28271
28297
  } catch (err) {
28272
- throw new DockerRunnerError(`docker network create failed: ${describeDockerFailure(err, createArgs)}. Hint: another cdkd run may already own subnet ${cidr}; wait for it to finish, or remove the leftover network with \`docker network ls\` + \`docker network rm\`. \`cdkd local start-service\` shares one network across every service in the run; bare \`cdkd local run-task\` uses a per-task network so only one run can be active at a time.`);
28298
+ throw new DockerRunnerError(`docker network create failed: ${describeDockerFailure(err, createArgs)}. Hint: another cdkd run may already own subnet ${cidr}; wait for it to finish, or remove the leftover network with \`docker network ls\` + \`docker network rm\`. \`cdkd local run-task\` always uses 169.254.170.0/24, where AWS SDKs read task-role credentials, as does a \`cdkd local start-service\` / \`start-alb\` run with \`--assume-role\`, so only one of them can be active at a time.`);
28273
28299
  }
28274
28300
  const sidecarArgs = [
28275
28301
  "run",
@@ -28337,7 +28363,10 @@ function buildMetadataEnv(opts) {
28337
28363
  ECS_CONTAINER_METADATA_URI_V4: `http://${ip}/v4/${opts.containerName}`,
28338
28364
  ECS_CONTAINER_METADATA_URI: `http://${ip}/v3/${opts.containerName}`
28339
28365
  };
28340
- if (opts.roleArn) env["AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"] = `/role/${encodeURIComponent(opts.roleArn)}`;
28366
+ if (opts.roleArn) {
28367
+ if (ip !== "169.254.170.2") throw new DockerRunnerError(`A task role needs the metadata sidecar at ${METADATA_ENDPOINT_IP} (SDKs read task-role credentials only from there), but this task's network put it at ${ip}.`);
28368
+ env["AWS_CONTAINER_CREDENTIALS_RELATIVE_URI"] = TASK_ROLE_CREDENTIALS_PATH;
28369
+ }
28341
28370
  if (opts.region) env["AWS_REGION"] = opts.region;
28342
28371
  return env;
28343
28372
  }
@@ -28615,6 +28644,7 @@ async function runEcsTask(task, options, state) {
28615
28644
  for (const c of task.containers) {
28616
28645
  const refusal = finchSecretArgvRefusal([
28617
28646
  ...c.secrets.map((s) => s.name),
28647
+ ...(c.droppedSecretNames ?? []).filter((n) => overriddenEnvKeys(options.envOverrides, c.name).includes(n)),
28618
28648
  ...c.resolvedDynamicReferenceKeys ?? [],
28619
28649
  ...dynamicReferenceEnvKeys(c, options.envOverrides)
28620
28650
  ].filter((n) => !isMalformedEnvKey(n) && !isDockerClientEnvKey(n)), `Container ${displayIdent(c.name)}`);
@@ -28634,11 +28664,20 @@ async function runEcsTask(task, options, state) {
28634
28664
  const imagePlan = options.imagePlanByContainer ?? /* @__PURE__ */ new Map();
28635
28665
  if (!options.imagePlanByContainer) await prepareImages(task, imagePlan, options);
28636
28666
  const allSecrets = [];
28637
- for (const c of task.containers) for (const s of c.secrets) allSecrets.push({
28638
- containerName: c.name,
28639
- name: s.name,
28640
- valueFrom: s.valueFrom
28641
- });
28667
+ for (const c of task.containers) {
28668
+ const overridden = new Set(overriddenEnvKeys(options.envOverrides, c.name));
28669
+ for (const s of c.secrets) {
28670
+ if (overridden.has(s.name)) {
28671
+ logger.debug(safeMsg`Secret ${displayIdent(c.name)}.${displayIdent(s.name)} not fetched: --env-vars gives this key.`);
28672
+ continue;
28673
+ }
28674
+ allSecrets.push({
28675
+ containerName: c.name,
28676
+ name: s.name,
28677
+ valueFrom: s.valueFrom
28678
+ });
28679
+ }
28680
+ }
28642
28681
  const secretsByContainer = groupSecretsByContainer(await resolveEcsSecrets(allSecrets, { ...options.region !== void 0 && { region: options.region } }));
28643
28682
  const dynamicEnvByContainer = /* @__PURE__ */ new Map();
28644
28683
  const dynamicRefs = createCallerDynamicReferenceResolver(options.profile);
@@ -28670,7 +28709,7 @@ async function runEcsTask(task, options, state) {
28670
28709
  };
28671
28710
  if (options.taskCredentials) netCreateOpts.credentials = options.taskCredentials;
28672
28711
  if (options.cluster) netCreateOpts.cluster = options.cluster;
28673
- if (options.subnetOctet !== void 0) netCreateOpts.subnetOctet = options.subnetOctet;
28712
+ if (options.subnetOctet !== void 0 && !options.taskRoleArn) netCreateOpts.subnetOctet = options.subnetOctet;
28674
28713
  await runDockerStep(state, () => createTaskNetwork(netCreateOpts), (net) => {
28675
28714
  state.network = net;
28676
28715
  }, () => destroyTaskNetwork({
@@ -28928,6 +28967,12 @@ function writePrefixed(prefix, buffer, out) {
28928
28967
  async function prepareImages(task, out, options) {
28929
28968
  const logger = getLogger().child("ecs-runner");
28930
28969
  for (const container of task.containers) {
28970
+ const overrideTag = options.imageOverrideByContainer?.get(container.name);
28971
+ if (overrideTag !== void 0) {
28972
+ out.set(container.name, overrideTag);
28973
+ logger.debug(safeMsg`Container ${displayIdent(container.name)} image=${displayIdent(overrideTag)} (--image-override)`);
28974
+ continue;
28975
+ }
28931
28976
  const image = await prepareOneImage(task, container, options);
28932
28977
  out.set(container.name, image);
28933
28978
  logger.debug(`Container '${container.name}' image=${image}`);
@@ -28936,6 +28981,7 @@ async function prepareImages(task, out, options) {
28936
28981
  async function prepareOneImage(task, container, options) {
28937
28982
  const image = container.image;
28938
28983
  switch (image.kind) {
28984
+ case "same-stack-ecr": throw new EcsTaskRunnerError(image.unresolvedReason);
28939
28985
  case "public":
28940
28986
  await pullImage(image.uri, options.skipPull);
28941
28987
  return image.uri;
@@ -29109,6 +29155,8 @@ function buildDockerRunArgs(opts) {
29109
29155
  const sensitiveKeys = /* @__PURE__ */ new Set([
29110
29156
  ...SENSITIVE_ENV_KEYS,
29111
29157
  ...secrets.map((s) => s.name),
29158
+ ...container.secrets.map((s) => s.name),
29159
+ ...container.droppedSecretNames ?? [],
29112
29160
  ...opts.plaintextEnvKeys ?? []
29113
29161
  ]);
29114
29162
  const { flags, sensitiveEnv, collisions } = partitionSensitiveEnv(finalEnv, sensitiveKeys, { subject: `Container '${container.name}'` });
@@ -29222,6 +29270,8 @@ async function localRunTaskCommand(target, options) {
29222
29270
  stateProvider = createLocalStateProvider$1(options, candidate?.stackName ?? "", candidate?.region);
29223
29271
  const { context: imageContext, stateRecordRegion } = await buildEcsImageResolutionContext$1(candidate, stateProvider, options);
29224
29272
  const task = resolveEcsTaskTarget(target, stacks, imageContext);
29273
+ const canPrompt = options.interactiveOverrides !== false && Boolean(process.stdin.isTTY && process.stdout.isTTY);
29274
+ if (!options.imageOverride?.length && !canPrompt) assertEcsTaskImagesResolvable(task);
29225
29275
  logger.info(`Target: ${task.stack.stackName}/${task.taskDefinitionLogicalId} (family=${task.family}, containers=${task.containers.length})`);
29226
29276
  const taskStack = stacks.find((s) => s.stackName === task.stack.stackName) ?? task.stack;
29227
29277
  const taskNeeds = detectEcsImageResolutionNeeds(taskStack);
@@ -29285,6 +29335,15 @@ async function localRunTaskCommand(target, options) {
29285
29335
  });
29286
29336
  const hostGatewayExtraHosts = await resolveHostGatewayExtraHosts();
29287
29337
  if (hostGatewayExtraHosts.length > 0) runOpts.hostGatewayExtraHosts = hostGatewayExtraHosts;
29338
+ const imageOverrideResult = await resolveRunTaskImageOverride({
29339
+ task,
29340
+ target,
29341
+ options,
29342
+ cwd: process.cwd()
29343
+ });
29344
+ if (imageOverrideResult.imageOverrideByContainer) runOpts.imageOverrideByContainer = imageOverrideResult.imageOverrideByContainer;
29345
+ assertEcsTaskImagesResolvable(task, runOpts.imageOverrideByContainer);
29346
+ if (!imageOverrideResult.imageOverrideByContainer && imageOverrideResult.pinnedUncovered) logger.warn("Task definition image is pinned to a deployed registry; local source edits will not take effect. Pass --image-override <dockerfile> to rebuild it from local source.");
29288
29347
  let result;
29289
29348
  try {
29290
29349
  result = await runEcsTask(task, runOpts, state);
@@ -29412,8 +29471,9 @@ async function buildEcsImageResolutionContext$1(candidate, stateProvider, option
29412
29471
  ctx.stateResources = loaded.resources;
29413
29472
  stateRecordRegion = loaded.region;
29414
29473
  }
29415
- } else if (!stateProvider && needs.needsStateResources) logger.warn("Container Image references a same-stack AWS::ECR::Repository. Pass --from-state (cdkd-deployed) or --from-cfn-stack (cdk-deployed) to substitute the deployed repository URI. Otherwise the resolver will surface its existing error.");
29416
- else if (!stateProvider && needs.needsEnvOrSecretSubstitution) logger.warn("Container Environment / Secrets entries contain CloudFormation intrinsics (Ref / Fn::GetAtt / Fn::Sub / Fn::Join). Pass --from-state (cdkd-deployed) or --from-cfn-stack (cdk-deployed) to substitute them against deployed state. Without a state source these entries are dropped (per-key warnings will follow).");
29474
+ } else if (!stateProvider && needs.needsStateResources) {
29475
+ if (!options.imageOverride?.length) logger.warn("Container Image references a same-stack AWS::ECR::Repository. Pass --from-state (cdkd-deployed) or --from-cfn-stack (cdk-deployed) to substitute the deployed repository URI, or --image-override to build it from a local Dockerfile. Otherwise the run stops before any container starts.");
29476
+ } else if (!stateProvider && needs.needsEnvOrSecretSubstitution) logger.warn("Container Environment / Secrets entries contain CloudFormation intrinsics (Ref / Fn::GetAtt / Fn::Sub / Fn::Join). Pass --from-state (cdkd-deployed) or --from-cfn-stack (cdk-deployed) to substitute them against deployed state. Without a state source these entries are dropped (per-key warnings will follow).");
29417
29477
  if (needs.needsAssetRepoMarker && options.fromState) {
29418
29478
  const containerRepo = await loadBootstrapContainerRepo(candidate.region, {
29419
29479
  statePrefix: options.statePrefix,
@@ -29525,6 +29585,7 @@ function buildRunEcsTaskOptions(options, channels, extra = {}) {
29525
29585
  }
29526
29586
  function createLocalRunTaskCommand() {
29527
29587
  const cmd = new Command("run-task").description("Run an AWS::ECS::TaskDefinition locally — pulls/builds images, sets up a per-task docker network with the AWS-published metadata-endpoints sidecar, and starts every container in dependsOn order. Target accepts a CDK display path (MyStack/MyService/TaskDef) or stack-qualified logical ID (MyStack:MyServiceTaskDefXYZ1234). Single-stack apps may omit the stack prefix.").argument("<target>", "CDK display path or stack-qualified logical ID of the AWS::ECS::TaskDefinition to run").addOption(new Option("--cluster <name>", "Cluster name surfaced to ECS_CONTAINER_METADATA_URI_V4 and used as the docker network prefix").default("cdkd-local")).addOption(new Option("--env-vars <file>", "JSON env-var overrides (SAM-compatible: {\"ContainerName\":{\"KEY\":\"VALUE\"}, \"Parameters\":{}})")).addOption(new Option("--container-host <ip>", "Host IP to bind published container ports to. Must be a numeric IP (Docker rejects hostnames here)").default("127.0.0.1")).addOption(new Option("--assume-task-role [arn]", "Assume the task definition's TaskRoleArn (or the supplied ARN) and forward STS-issued temp credentials via the metadata sidecar so containers run with the deployed function role. Bare flag uses the template's TaskRoleArn; pass an explicit ARN to override.")).addOption(new Option("--no-pull", "Skip docker pull for every container image and the metadata sidecar")).addOption(new Option("--ecr-role-arn <arn>", "Role ARN to assume before authenticating against ECR for cross-account / centralized registries. Issues sts:AssumeRole via the default credential chain and uses the temporary credentials for ecr:GetAuthorizationToken + docker pull. Required when the caller does not have direct cross-account access to the target repository. A same-account pull in ANY region does not need this flag: the ECR client is built for the image URI's own region, so crossing a region costs nothing extra.")).addOption(new Option("--platform <platform>", "Force docker --platform (linux/amd64 or linux/arm64). Default: inferred from task RuntimePlatform.CpuArchitecture")).addOption(new Option("--keep-running", "Don't docker rm -f the user containers on task exit (network + sidecar are still torn down). Use when you want to docker exec into a stopped container for post-mortems.").default(false)).addOption(new Option("--detach", "Start the containers in the background and exit (skip log streaming + auto teardown). Useful in CI smoke tests; caller manages container lifecycle.").default(false)).addOption(new Option("--from-state", "Read cdkd S3 state for the target stack and substitute Fn::Sub / Fn::GetAtt references to same-stack AWS::ECR::Repository resources with the deployed URI. Off by default — only the AWS pseudo-parameter tier (${AWS::AccountId} / ${AWS::Region}) is resolved without this flag.").default(false)).addOption(new Option("--from-cfn-stack [cfn-stack-name]", "Read a deployed CloudFormation stack via ListStackResources and substitute Ref / Fn::ImportValue in container env vars / secrets / image URIs with the deployed physical IDs / exports. Use for CDK apps deployed via the upstream CDK CLI (`cdk deploy`). Bare form uses the cdkd stack name; pass an explicit value when the CFn stack name differs. Mutually exclusive with --from-state. Fn::GetAtt is warn-and-dropped in v1 (CFn ListStackResources does not return per-attribute values).")).addOption(new Option("--stack-region <region>", "Region of the state record to read. Used with --from-state when the same stack name has state in multiple regions, and with --from-cfn-stack as the CFn client region (cdkd does not have a separate --cfn-stack-region flag).").argParser(parseStackRegion)).action(withErrorHandling(localRunTaskCommand));
29588
+ addImageOverrideOptions(cmd);
29528
29589
  [
29529
29590
  ...commonOptions,
29530
29591
  ...appOptions,
@@ -29534,6 +29595,57 @@ function createLocalRunTaskCommand() {
29534
29595
  cmd.addOption(deprecatedRegionOption);
29535
29596
  return cmd;
29536
29597
  }
29598
+ function runTaskOverrideKeyAliases(task) {
29599
+ const id = task.taskDefinitionLogicalId;
29600
+ const out = /* @__PURE__ */ new Set([id, `${task.stack.stackName}:${id}`]);
29601
+ const metadata = task.resource.Metadata;
29602
+ const cdkPath = typeof metadata?.["aws:cdk:path"] === "string" ? metadata["aws:cdk:path"] : "";
29603
+ if (cdkPath.length > 0) {
29604
+ const segments = cdkPath.split("/");
29605
+ while (segments.length > 1 && [
29606
+ "Service",
29607
+ "Resource",
29608
+ "Default"
29609
+ ].includes(segments[segments.length - 1])) segments.pop();
29610
+ const tail = segments[segments.length - 1];
29611
+ if (tail) out.add(tail);
29612
+ }
29613
+ out.delete("");
29614
+ return [...out];
29615
+ }
29616
+ async function resolveRunTaskImageOverride(args) {
29617
+ const { task, target, options, cwd } = args;
29618
+ const essential = task.containers.find((c) => c.essential) ?? task.containers[0];
29619
+ const pinned = essential !== void 0 && essential.image.kind !== "cdk-asset";
29620
+ const pinnedTargets = pinned ? [target] : [];
29621
+ const pinnedLabels = /* @__PURE__ */ new Map();
29622
+ if (pinned) pinnedLabels.set(target, `${task.stack.stackName}/${task.taskDefinitionLogicalId}`);
29623
+ const pinnedAliases = /* @__PURE__ */ new Map();
29624
+ if (pinned) pinnedAliases.set(target, runTaskOverrideKeyAliases(task));
29625
+ const rawFlags = canonicalizeImageOverrideKeys(parseImageOverrideFlags({
29626
+ ...options.imageOverride && { imageOverride: options.imageOverride },
29627
+ ...options.imageBuildArg && { imageBuildArg: options.imageBuildArg },
29628
+ ...options.imageBuildSecret && { imageBuildSecret: options.imageBuildSecret },
29629
+ ...options.imageTarget && { imageTarget: options.imageTarget },
29630
+ ...options.imageContext && { imageContext: options.imageContext }
29631
+ }), pinnedAliases, [target]);
29632
+ if (pinnedTargets.length === 0 && rawFlags.explicit.size === 0 && rawFlags.pickerPaths.length === 0 && rawFlags.perService.size === 0) return {};
29633
+ const overrides = await resolveImageOverrides({
29634
+ rawFlags,
29635
+ pinnedTargets,
29636
+ pinnedLabels,
29637
+ interactiveBootPrompt: true,
29638
+ noInteractive: options.interactiveOverrides === false,
29639
+ ...cwd !== void 0 ? { cwd } : {}
29640
+ });
29641
+ enforceImageOverrideOrphans(rawFlags, overrides);
29642
+ const uncovered = pinnedTargets.filter((t) => !overrides.has(t));
29643
+ if (options.strictOverrides === true && uncovered.length > 0) throw new CdkdError("--strict-overrides set, but the task definition image is pinned to a deployed registry and no --image-override covered it. Pass --image-override <dockerfile> to rebuild it from local source, or drop --strict-overrides to run the pinned image as-is.", "LOCAL_RUN_TASK_STRICT_OVERRIDES");
29644
+ if (overrides.size === 0) return { pinnedUncovered: pinned };
29645
+ const tag = (await runImageOverrideBuilds(overrides)).get(target);
29646
+ if (tag !== void 0 && essential !== void 0) return { imageOverrideByContainer: /* @__PURE__ */ new Map([[essential.name, tag]]) };
29647
+ return { pinnedUncovered: pinned && uncovered.length > 0 };
29648
+ }
29537
29649
 
29538
29650
  // src/cli/commands/local-host-synthesizer.ts
29539
29651
  function cdkdHostSynthesizer(readOptions) {
@@ -31586,4 +31698,4 @@ function collectVerbFlags(program) {
31586
31698
  }
31587
31699
 
31588
31700
  export { resolveSecretDerivedPrincipals as a, buildProgram, isResolvableSecretPrincipalList as i, runDestroyForStack as n, canonicalizeIpProtocolValue as o, holdsUnprovenSecretPrincipalToken as r, canonicalizeIpv4Cidr as t };
31589
- //# sourceMappingURL=program-ml6yCB64.js.map
31701
+ //# sourceMappingURL=program-BY7FvEwy.js.map