@go-to-k/cdkd 0.290.27 → 0.290.28
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-Dn1f0SJi.js → asg-provider-DiZsq-4k.js} +3 -3
- package/dist/{asg-provider-Dn1f0SJi.js.map → asg-provider-DiZsq-4k.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-CA70_Rji.js → deploy-engine-CcFbq2q8.js} +62 -11
- package/dist/deploy-engine-CcFbq2q8.js.map +1 -0
- package/dist/index.js +2 -2
- package/dist/{logger-CkHVgzLx.js → logger-6LP1UiFA.js} +18 -2
- package/dist/logger-6LP1UiFA.js.map +1 -0
- package/dist/{program-dYPgGoOv.js → program-C1iVGcxJ.js} +458 -114
- package/dist/{program-dYPgGoOv.js.map → program-C1iVGcxJ.js.map} +1 -1
- package/dist/{version-CWpPiHCn.js → version-B2-UuEte.js} +2 -2
- package/dist/{version-CWpPiHCn.js.map → version-B2-UuEte.js.map} +1 -1
- package/package.json +1 -1
- package/dist/deploy-engine-CA70_Rji.js.map +0 -1
- package/dist/logger-CkHVgzLx.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { n as isVersionOnlyInvocation, t as getCdkdVersion } from "./version-
|
|
2
|
+
import { n as isVersionOnlyInvocation, t as getCdkdVersion } from "./version-B2-UuEte.js";
|
|
3
3
|
|
|
4
4
|
//#region src/cli/pipe-close-handler.ts
|
|
5
5
|
/**
|
|
@@ -74,7 +74,7 @@ async function main() {
|
|
|
74
74
|
console.log(getCdkdVersion());
|
|
75
75
|
return;
|
|
76
76
|
}
|
|
77
|
-
const { buildProgram } = await import("./program-
|
|
77
|
+
const { buildProgram } = await import("./program-C1iVGcxJ.js");
|
|
78
78
|
const program = buildProgram();
|
|
79
79
|
const args = reorderArgs(process.argv);
|
|
80
80
|
await program.parseAsync(args);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { C as
|
|
1
|
+
import { C as displayIdent, S as UNRENDERABLE, T as truncateCodePoints, d as applyDefaultNameForFallback, f as explicitNamePropertyFor, g as looksLikeCdkdGeneratedName, h as getCurrentStackName, m as generateResourceNameWithFallback, n as getLogger, p as generateResourceName, r as isStdoutReservedForPayload, s as getLiveRenderer, v as withStackName, w as displaySafe, x as STACK_REF_MAX_CODE_POINTS, y as withoutGeneratedFallbackName } from "./logger-6LP1UiFA.js";
|
|
2
2
|
import { a as setAssumedRoleCredentials, i as getPreAssumeEnvCredentials, n as awsClientDefaults, o as setPreAssumeEnvCredentials, r as getAssumedRoleCredentials, t as SECOND_ROLE_PUBLISH_REFUSAL } from "./aws-client-defaults-BoIxyCir.js";
|
|
3
|
-
import { t as getCdkdVersion } from "./version-
|
|
3
|
+
import { t as getCdkdVersion } from "./version-B2-UuEte.js";
|
|
4
4
|
import { AsyncLocalStorage } from "node:async_hooks";
|
|
5
5
|
import { createHash, randomUUID } from "node:crypto";
|
|
6
6
|
import { CreateBucketCommand, DeleteObjectCommand, DeleteObjectsCommand, GetBucketLocationCommand, GetBucketReplicationCommand, GetObjectCommand, HeadBucketCommand, HeadObjectCommand, ListObjectVersionsCommand, ListObjectsV2Command, NoSuchKey, PutBucketEncryptionCommand, PutBucketPolicyCommand, PutObjectCommand, PutPublicAccessBlockCommand, S3Client, S3ServiceException } from "@aws-sdk/client-s3";
|
|
@@ -9979,14 +9979,47 @@ function buildForceUnlockCommand(stackName, region, recovery) {
|
|
|
9979
9979
|
const safeStack = displaySafe(stackName, { asciiOnly: true });
|
|
9980
9980
|
const stackIsExact = safeStack === stackName;
|
|
9981
9981
|
const safeRegion = region === void 0 ? void 0 : displaySafe(region, { asciiOnly: true });
|
|
9982
|
-
|
|
9982
|
+
const regionIsExact = region === void 0 || safeRegion === region;
|
|
9983
|
+
const safeRecovery = {
|
|
9984
|
+
profile: sanitizeRecoveryValue(recovery?.profile),
|
|
9985
|
+
stateBucket: sanitizeRecoveryValue(recovery?.stateBucket),
|
|
9986
|
+
statePrefix: sanitizeRecoveryValue(recovery?.statePrefix)
|
|
9987
|
+
};
|
|
9988
|
+
const recoveryIsExact = Object.values(safeRecovery).every((v) => v.exact);
|
|
9989
|
+
if (!safeStack || safeRegion === "" || !stackIsExact || !regionIsExact || !recoveryIsExact) return "";
|
|
9983
9990
|
const parts = [safeRegion === void 0 ? `cdkd force-unlock ${shellQuote(safeStack)}` : `cdkd force-unlock ${shellQuote(safeStack)} --stack-region ${shellQuote(safeRegion)}`];
|
|
9984
|
-
if (
|
|
9985
|
-
if (
|
|
9986
|
-
if (
|
|
9991
|
+
if (safeRecovery.profile.text) parts.push(`--profile ${shellQuote(safeRecovery.profile.text)}`);
|
|
9992
|
+
if (safeRecovery.stateBucket.text) parts.push(`--state-bucket ${shellQuote(safeRecovery.stateBucket.text)}`);
|
|
9993
|
+
if (safeRecovery.statePrefix.text && safeRecovery.statePrefix.text !== "cdkd") parts.push(`--state-prefix ${shellQuote(safeRecovery.statePrefix.text)}`);
|
|
9987
9994
|
return parts.join(" ");
|
|
9988
9995
|
}
|
|
9989
9996
|
/**
|
|
9997
|
+
* Sanitize ONE {@link LockRecoveryContext} fragment and report whether that
|
|
9998
|
+
* changed it.
|
|
9999
|
+
*
|
|
10000
|
+
* One helper for all three rather than three spellings, for the reason
|
|
10001
|
+
* `display-safe.ts`'s own header gives: this rule was widened BY HAND, one
|
|
10002
|
+
* value at a time, and missed an instance every round — go-to-k/cdkd#3377
|
|
10003
|
+
* named `--profile`, and the fix for it shipped with `--state-bucket` and
|
|
10004
|
+
* `--state-prefix` still raw on the next two lines. A fourth fragment added
|
|
10005
|
+
* later calls this and inherits both halves.
|
|
10006
|
+
*
|
|
10007
|
+
* ABSENT stays absent: `''` is returned for it, which every caller's `if`
|
|
10008
|
+
* treats as "emit nothing", and `exact` is true because there was nothing to
|
|
10009
|
+
* alter.
|
|
10010
|
+
*/
|
|
10011
|
+
function sanitizeRecoveryValue(value) {
|
|
10012
|
+
if (value === void 0) return {
|
|
10013
|
+
text: "",
|
|
10014
|
+
exact: true
|
|
10015
|
+
};
|
|
10016
|
+
const text = displaySafe(value);
|
|
10017
|
+
return {
|
|
10018
|
+
text,
|
|
10019
|
+
exact: text === value
|
|
10020
|
+
};
|
|
10021
|
+
}
|
|
10022
|
+
/**
|
|
9990
10023
|
* What to say INSTEAD of a `cdkd force-unlock ...` line when
|
|
9991
10024
|
* {@link buildForceUnlockCommand} suppresses.
|
|
9992
10025
|
*
|
|
@@ -9997,7 +10030,25 @@ function buildForceUnlockCommand(stackName, region, recovery) {
|
|
|
9997
10030
|
* how the next one drifts. Byte-identical to what `forceQuitRecoveryClause`
|
|
9998
10031
|
* emitted before the extraction; its callers see no change.
|
|
9999
10032
|
*/
|
|
10000
|
-
|
|
10033
|
+
/**
|
|
10034
|
+
* The VALUES `buildForceUnlockCommand` can suppress on, as one noun phrase.
|
|
10035
|
+
*
|
|
10036
|
+
* Extracted because the enumeration had reached THREE spellings and they had
|
|
10037
|
+
* already drifted -- go-to-k/cdkd#3377 gave the guard three more values while
|
|
10038
|
+
* two of the three sentences still said "the name or region", so a user whose
|
|
10039
|
+
* PROFILE carried an ESC was told their STACK NAME was unrenderable
|
|
10040
|
+
* (go-to-k/cdkd#3390 rounds 1 and 2 found one copy each). That is the exact
|
|
10041
|
+
* divergence this module was created to end, reproduced inside the module and
|
|
10042
|
+
* at one of its call sites.
|
|
10043
|
+
*
|
|
10044
|
+
* A growing list cannot be kept in step by hand across three sentences, so it
|
|
10045
|
+
* is one binding and the sentences interpolate it. Keep it in step with the
|
|
10046
|
+
* guard in {@link buildForceUnlockCommand}; the per-word assertion in
|
|
10047
|
+
* `tests/unit/state/lock-contention-message.test.ts` is what notices if it
|
|
10048
|
+
* falls behind.
|
|
10049
|
+
*/
|
|
10050
|
+
const UNREPRODUCIBLE_LOCK_VALUES = "the name, region, profile, state bucket or state prefix";
|
|
10051
|
+
const UNREPRODUCIBLE_LOCK_CLAUSE = `Inspect the lock object directly: ${UNREPRODUCIBLE_LOCK_VALUES} recorded for this stack cannot be reproduced safely on a command line, so any command shown here would address a different lock.`;
|
|
10001
10052
|
/**
|
|
10002
10053
|
* The force-quit banner's recovery sentence.
|
|
10003
10054
|
*
|
|
@@ -10037,7 +10088,7 @@ async function buildLockContentionMessage(args) {
|
|
|
10037
10088
|
const advice = sawHolder ? `That process is still running — wait for it to finish. Only if you are certain it is gone` : `Wait for it to finish, or if you are certain no other process is active`;
|
|
10038
10089
|
const recoveryCommand = buildForceUnlockCommand(stackName, region, recovery);
|
|
10039
10090
|
const head = `Could not acquire lock for ${subject} '${displaySafe(stackName, { asciiOnly: true }) || "<unrenderable>"}' (${displaySafe(region, { asciiOnly: true }) || "<unrenderable>"}) — ${held}.` + (suffix ? ` ${suffix}` : "");
|
|
10040
|
-
if (!recoveryCommand) return `${head} ${advice}. No recovery command can be shown:
|
|
10091
|
+
if (!recoveryCommand) return `${head} ${advice}. No recovery command can be shown: ${UNREPRODUCIBLE_LOCK_VALUES} recorded for this lock contains characters that cannot be reproduced safely on a command line, so any command shown here would address a different lock — inspect the lock object directly.`;
|
|
10041
10092
|
return `${head} ${advice}, run: ${recoveryCommand}`;
|
|
10042
10093
|
}
|
|
10043
10094
|
|
|
@@ -32425,7 +32476,7 @@ var CloudControlProvider = class {
|
|
|
32425
32476
|
const indeterminateGuard = await this.confirmDeleteTargetIdentity(logicalId, resourceType, physicalId, context);
|
|
32426
32477
|
if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
|
|
32427
32478
|
this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
|
|
32428
|
-
const { ASGProvider } = await import("./asg-provider-
|
|
32479
|
+
const { ASGProvider } = await import("./asg-provider-DiZsq-4k.js").then((n) => n.n);
|
|
32429
32480
|
const asgProvider = new ASGProvider();
|
|
32430
32481
|
return withIndeterminateGuard(await asgProvider.delete(logicalId, physicalId, resourceType, _properties, context), indeterminateGuard);
|
|
32431
32482
|
}
|
|
@@ -45436,5 +45487,5 @@ var DeployEngine = class DeployEngine {
|
|
|
45436
45487
|
};
|
|
45437
45488
|
|
|
45438
45489
|
//#endregion
|
|
45439
|
-
export { secretBearing as $,
|
|
45440
|
-
//# sourceMappingURL=deploy-engine-
|
|
45490
|
+
export { secretBearing as $, SynthesisError as $i, recordMaskOnlyValue as $n, AssetManifestLoader as $r, s3BucketArn as $t, extractDeploymentEventError as A, getAwsClients as Ai, refuseMalformedState as An, BOOTSTRAP_MARKER_PREFIX as Ar, isImpossibleEmptyStoredAttribute as At, toCfnInteger as B, IntrinsicResolutionRefusalError as Bi, STATE_SOURCED_BASELINE_RULES as Bn, buildDockerImage as Br, coerceCfnBoolean as Bt, buildFinalSnapshotIdentifier as C, canonicalizeRegion as Ci, producerRecordKey as Cn, stringifyValue as Cr, isTerminationProtectionPropagationError as Ct, refusesFinalSnapshot as D, clearBucketRegionCache as Di, refuseMalformedOutputsForDestroy as Dn, loadPublishableAssetManifest as Dr, cfnRefValueFromPhysicalId as Dt, isFinalSnapshotError as E, processStackMessages as Ei, refuseMalformedOutputs as En, createAssetRedirectResolver as Er, carriesFetchableDynamicReference as Et, isStatefulRecreateTargetSync as F, ConfigError as Fi, findSilentDropProperties as Fn, parseBootstrapMarker as Fr, isSettledInstanceState as Ft, gray as G, NestedStackChildDirectDestroyError as Gi, createSecretMasker as Gn, formatDockerLoginError as Gr, readConfigString as Gt, formatResourceLine as H, LocalStartServiceError as Hi, STATE_SOURCED_READBACK_RULES as Hn, describeDockerExecFailure as Hr, configBooleanRefusal as Ht, renderStatefulReason as I, CrossAccountSecretRefusalError as Ii, describeTypeWithThrottleRetry as In, readBootstrapMarkerBody as Ir, WAFv2WebACLProvider as It, yellow as J, ResourceTimeoutError as Ji, identityKeyFor as Jn, redactDockerArgvValues as Jr, requireConfigObject as Jt, green as K, PartialFailureError as Ki, dynamicReferenceTokens as Kn, getDockerCmd as Kr, replayWarn as Kt, WARM_THROUGHPUT_MEMBERS as L, DependencyError as Li, withRetry as Ln, validateAssetBucketName as Lr, normalizeAwsTagsToCfn as Lt, planOrphanAdoption as M, setAwsClients as Mi, repairMalformedResourcePropertiesForReadOnly as Mn, ensureAssetStorage as Mr, isUnboundTemplateParameter as Mt, MULTI_REGION_RECREATE_BLOCKED_TYPES as N, AssetError as Ni, repairMalformedResourcesForReadOnly as Nn, getBootstrapMarkerKey as Nr, parameterTypeMayLoseSecretIdentity as Nt, unsupportedFinalSnapshotError as O, resolveBucketRegion as Oi, refuseMalformedResourcePropertiesForOrphan as On, rewriteTemplateAssetReferences as Or, coerceParameterTypedValue as Ot, isStatefulRecreateTargetForReplace as P, CdkdError as Pi, findActionableSilentDrops as Pn, isCrossRegionRedirect as Pr, refStateLookupFromResource as Pt, isExportAliasCollision as Q, StateError as Qi, maskSecretsInText as Qn, stripControlChars as Qr, withSharedDrainBudget as Qt, coerceWarmThroughput as R, DeployCancelledError as Ri, DagBuilder as Rn, validateContainerRepoName as Rr, resolveExplicitPhysicalId as Rt, PRE_DELETE_SNAPSHOT_TYPES as S, PARTITION_TABLE as Si, malformedStateRefusalMessage as Sn, AssetPublisher as Sr, disableInstanceApiTermination as St, createPreDeleteFinalSnapshot as T, AssemblyReader as Ti, refuseMalformedNestedChildOutputs as Tn, buildAssetRedirectMap as Tr, carriesDynamicReference as Tt, bold as U, LockError as Ui, TEMPLATE_SOURCED_RULES as Un, describeDockerFailure as Ur, configIntegerRefusal as Ut, toFiniteNumber as V, LocalInvokeBuildError as Vi, STATE_SOURCED_CROSS_GENERATION_RULES as Vn, describeDockerCapturedOutput as Vr, coerceCfnInteger as Vt, cyan as W, MalformedProducerRecordRefusalError as Wi, carriesSecretMask as Wn, dockerSpawnEnvWithSensitive as Wr, configStringRefusal as Wt, collectPublishedOutputNames as X, StackHasActiveImportsError as Xi, markSameGenerationBag as Xn, runDockerStreaming as Xr, classifyReplaySecretRegion as Xt, collectDeclaredOutputNames as Y, ResourceUpdateNotSupportedError as Yi, isSingleDynamicReferenceToken as Yn, runDockerForeground as Yr, requireConfigString as Yt, exportAliasCollisionScrubWarning as Z, StackTerminationProtectionError as Zi, maskSecretsInError as Zn, escapeRegExp$1 as Zr, producerRegionsFromState as Zt, isSecretBearingReferenceString as _, findLargeInlineResources as _i, malformedOutputsRefusalMessage as _n, importableOutputs as _r, isWaitAbandonedError as _t, DeploymentEventsStore as a, isRetryableTransientError as aa, resolveApp as ai, AWS_CREDENTIAL_ENV_KEYS as an, rebuildClientForBucketRegion as ar, clearOnUpdateRemoval as at, bindingSkippedOutputs as b, decodeListingKey as bi, malformedResourcePropertiesWarning as bn, orphansCarriedFrom as br, deleteIndeterminateGuards as bt, replayFailedOperations as c, markNonRetryable as ca, resolveSkipPrefix as ci, envCredentialsAreAssumedRole as cn, buildLockContentionMessage as cr, createMaskedRetryLogger as ct, updatePartialReason as d, describeAwsFailure as da, resolveUseCdkBootstrapAssets as di, STATE_RESOURCES_MALFORMED as dn, shellQuote as dr, beginCommandInterruptScope as dt, formatError as ea, getDockerImageBySourceHash as ei, s3BucketDomainName as en, recoverMaskedOutput as er, secretBearingStateKeyWarning as et, withResourceDeadline as f, safeStringify$1 as fa, stateBucketExistenceConfirmed as fi, hasReadableOutputs as fn, CUSTOM_RESOURCE_RESPONSE_PREFIX as fr, endCommandInterruptScope as ft, bagHoldsSecretExpression as g, MIGRATE_TMP_PREFIX as gi, malformedLocalOutputsWarning as gn, importableOutputKeys as gr, CloudControlProvider as gt, computeImplicitDeleteEdges as h, CFN_TEMPLATE_URL_LIMIT as hi, malformedExportSourceWarning as hn, hasReadableExportSet as hr, startInterruptWatch as ht, DeploymentEventsReader as i, isMarkedNonRetryable as ia, getLegacyStateBucketName as ii, applyRoleArnIfSet as in, S3StateBackend as ir, collectInlinePolicyNamesManagedBySiblings as it, makeSiblingClaimReader as j, resetAwsClients as ji, repairMalformedOutputsForReadOnly as jn, assertAssetBucketRegion as jr, isNamelessDynamicReferenceError as jt, makeCanonicalizePropertiesFn as k, AwsClients as ki, refuseMalformedResourcesForDestroy as kn, AssetModeResolver as kr, getAccountInfo as kt, replayRollback as l, markRedactedCause as la, resolveStateBucketWithDefault as li, DiffCalculator as ln, forceQuitRecoveryClause as lr, maskDeep as lt, IMPLICIT_DELETE_DEPENDENCIES as m, CFN_TEMPLATE_BODY_LIMIT as mi, malformedExportNamesWarning as mn, exportNamesCarriedFrom as mr, isInterruptedWaitError as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, normalizeAwsError as na, synthesisStatusMessage as ni, s3BucketRegionalDomainName as nn, scrubResourceRecord as nr, getCurrentResourceSecrets as nt, planFailedOps as o, isThrottlingError as oa, resolveAutoAssetStorage as oi, applyCallerIdentityCredentials as on, UNREPRODUCIBLE_LOCK_CLAUSE as or, ProviderRegistry as ot, maskingRetryLogger as p, __exportAll as pa, warnDeprecatedNoPrefixCliFlag as pi, hasReadableResources as pn, DEFAULT_STATE_PREFIX as pr, interruptWatchListenerCount as pt, red as q, ProvisioningError as qi, errorCauseChain as qn, partitionSensitiveEnv as qr, requireConfigArray as qt, DeployEngine as r, withErrorHandling as ra, getDefaultStateBucketName as ri, s3BucketWebsiteUrl as rn, LockManager as rr, IAMRoleProvider as rt, planRollback as s, isTransientServerError as sa, resolveCaptureObservedState as si, callerEnvCredentials as sn, buildForceUnlockCommand as sr, wouldReturnToSdkProvider as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, isCdkdError as ta, Synthesizer as ti, s3BucketDualStackDomainName as tn, redactSecretsForState as tr, secretSafeKeyDisplay as tt, updatePartialMessage as u, retryClassificationText as ua, resolveStateBucketWithDefaultAndSource as ui, INTRINSIC_KEYS as un, formatLockExpiry as ur, maskerOrIdentity as ut, keptWholeReasonText as v, uploadCfnTemplate as vi, malformedOutputsWarning as vn, isReadableBag as vr, slowCcOperationTimeoutMs as vt, ccRoutedFinalSnapshotError as w, derivePartitionAndUrlSuffix as wi, refuseDivergentRecordRegionForDestroy as wn, WorkGraph as wr, IntrinsicFunctionResolver as wt, ATOMIC_FINAL_SNAPSHOT_TYPES as x, expectedOwnerParam as xi, malformedResourcesWarning as xn, shouldRetainResource as xr, deleteSkipReason as xt, mergeNoChangeOutputs as y, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as yi, malformedRenderedContainersWarning as yn, orphansAfterRollback as yr, UNSPECIFIED_SKIP_REASON as yt, isWarmThroughputDecrease as z, DynamicReferenceRegionAmbiguousError as zi, TemplateParser as zn, buildDenyExternalAccessPolicy as zr, assertRegionMatch as zt };
|
|
45491
|
+
//# sourceMappingURL=deploy-engine-CcFbq2q8.js.map
|