@go-to-k/cdkd 0.291.12 → 0.291.13
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-BTiCRWQZ.js → asg-provider-DsMCnbwS.js} +2 -2
- package/dist/{asg-provider-BTiCRWQZ.js.map → asg-provider-DsMCnbwS.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-CqKbD4yk.js → deploy-engine-D8OVUEBp.js} +72 -7
- package/dist/deploy-engine-D8OVUEBp.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/{program-BwCSQ51f.js → program-azHUt9mf.js} +209 -15
- package/dist/{program-BwCSQ51f.js.map → program-azHUt9mf.js.map} +1 -1
- package/dist/{version-CdZXcCGn.js → version-CqL2wd8C.js} +2 -2
- package/dist/{version-CdZXcCGn.js.map → version-CqL2wd8C.js.map} +1 -1
- package/package.json +1 -1
- package/dist/deploy-engine-CqKbD4yk.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-CqL2wd8C.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-azHUt9mf.js");
|
|
78
78
|
const program = buildProgram();
|
|
79
79
|
const args = reorderArgs(process.argv);
|
|
80
80
|
await program.parseAsync(args);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { C as displayAwsMessage, D as truncateCodePoints, E as isPasteableIdent, S as UNRENDERABLE, T as displaySafe, 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 displayIdent, x as STACK_REF_MAX_CODE_POINTS, y as withoutGeneratedFallbackName } from "./logger-GASr9bAF.js";
|
|
2
2
|
import { a as setAssumedRoleCredentials, c as currentStackAwsScope, i as getPreAssumeEnvCredentials, l as runInStackAwsScope, n as awsClientDefaults, o as setPreAssumeEnvCredentials, r as getAssumedRoleCredentials, s as ambientRegion, t as SECOND_ROLE_PUBLISH_REFUSAL } from "./aws-client-defaults-jISU4PHo.js";
|
|
3
|
-
import { t as getCdkdVersion } from "./version-
|
|
3
|
+
import { t as getCdkdVersion } from "./version-CqL2wd8C.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";
|
|
@@ -8421,9 +8421,13 @@ function secretsOnArgvAllowed() {
|
|
|
8421
8421
|
* or `undefined` when they may be forwarded: another client, no such secret,
|
|
8422
8422
|
* or {@link ALLOW_SECRETS_ON_ARGV_ENV} set. The caller throws it in its own
|
|
8423
8423
|
* error class BEFORE any `docker run`. The AWS credential set is not refused
|
|
8424
|
-
* here (it is warned about by {@link warnFinchArgvExposure})
|
|
8425
|
-
*
|
|
8426
|
-
*
|
|
8424
|
+
* here (it is warned about by {@link warnFinchArgvExposure}) so finch stays
|
|
8425
|
+
* usable for containers that need AWS access. Forwarding them IS what puts
|
|
8426
|
+
* them on that argv — notably `--assume-task-role` / `--assume-role` session
|
|
8427
|
+
* credentials and `--profile` / SSO-resolved ones, which are not in cdkd's
|
|
8428
|
+
* own environment
|
|
8429
|
+
* (finch itself forwards that environment's credentials, plus on Windows with
|
|
8430
|
+
* `ecr-login` what `aws configure export-credentials` resolves from it).
|
|
8427
8431
|
* `subject` is caller-rendered context (e.g. the container name) and is not
|
|
8428
8432
|
* sanitized here.
|
|
8429
8433
|
*/
|
|
@@ -17098,6 +17102,67 @@ function subtreeHasDynamicReference(value) {
|
|
|
17098
17102
|
return false;
|
|
17099
17103
|
}
|
|
17100
17104
|
/**
|
|
17105
|
+
* Could the comparator's dotted `path` also be spelled, in `bag`, through an
|
|
17106
|
+
* own key that itself contains a dot? Walks own keys as far as `bag` goes; at
|
|
17107
|
+
* each level a dotted key equal to, or a dotted prefix of, the rest of the
|
|
17108
|
+
* path makes the coordinate ambiguous. Exported so the drift report can ask it
|
|
17109
|
+
* of the OBSERVED baseline too, where a readback-only dotted key can sit.
|
|
17110
|
+
*/
|
|
17111
|
+
function pathCrossesDottedKey(bag, path) {
|
|
17112
|
+
const segments = path.split(".");
|
|
17113
|
+
let cursor = bag;
|
|
17114
|
+
for (let i = 0; i < segments.length; i++) {
|
|
17115
|
+
if (cursor === null || typeof cursor !== "object" || Array.isArray(cursor)) return false;
|
|
17116
|
+
const rest = segments.slice(i).join(".");
|
|
17117
|
+
for (const key of Object.keys(cursor)) if (key.includes(".") && (rest === key || rest.startsWith(`${key}.`))) return true;
|
|
17118
|
+
if (!Object.hasOwn(cursor, segments[i])) return false;
|
|
17119
|
+
cursor = cursor[segments[i]];
|
|
17120
|
+
}
|
|
17121
|
+
return false;
|
|
17122
|
+
}
|
|
17123
|
+
/**
|
|
17124
|
+
* Could a {@link SECRET_MASK} in an `observedProperties` baseline at the dotted
|
|
17125
|
+
* `path` be an UNCERTIFIED-POSITION mask (issue
|
|
17126
|
+
* [#2852](https://github.com/go-to-k/cdkd/issues/2852)'s fail-closed refusal)
|
|
17127
|
+
* rather than a `NoEcho` custom-resource mask (issue
|
|
17128
|
+
* [#2274](https://github.com/go-to-k/cdkd/issues/2274))? Issue
|
|
17129
|
+
* [#3595](https://github.com/go-to-k/cdkd/issues/3595).
|
|
17130
|
+
*
|
|
17131
|
+
* Answered from the record's own `properties` — the SOURCE the refusal was
|
|
17132
|
+
* positioned against — because nothing in the record names the mask's class.
|
|
17133
|
+
* The two classes differ in where they land: a fail-closed mask is written
|
|
17134
|
+
* into `observedProperties` only, at a position whose source spells a dynamic
|
|
17135
|
+
* reference; a `NoEcho` mask is persisted into `properties` too, since there is
|
|
17136
|
+
* no expression to store in its place. So:
|
|
17137
|
+
*
|
|
17138
|
+
* - the node `properties` holds at `path` must carry a `{{resolve:` string (a
|
|
17139
|
+
* raw `Fn::Join` object embedding one counts) and NO mask leaf; or
|
|
17140
|
+
* - where `properties` has no node at `path` — the readback reshaped a scalar
|
|
17141
|
+
* the template spells as a reference into a container, and the comparator
|
|
17142
|
+
* reported a key below it — the deepest node it DOES have on the path must be
|
|
17143
|
+
* a STRING carrying a `{{resolve:`.
|
|
17144
|
+
*
|
|
17145
|
+
* An ancestor OBJECT whose sibling carries a reference is deliberately NOT
|
|
17146
|
+
* enough: a `NoEcho` plaintext echoed into a readback-only key beside a
|
|
17147
|
+
* templated reference would then read as the fail-closed class.
|
|
17148
|
+
*
|
|
17149
|
+
* `path` is the drift comparator's coordinate: object keys joined by `.`, never
|
|
17150
|
+
* an array index (it compares arrays whole). Own keys only, for the reason
|
|
17151
|
+
* `drift.ts`'s `getAtPath` gives. Homed here, beside the redaction that
|
|
17152
|
+
* writes the mask, so any later writer-side check asks the SAME question.
|
|
17153
|
+
*/
|
|
17154
|
+
function isUncertifiedBaselineMaskPosition(properties, path) {
|
|
17155
|
+
if (pathCrossesDottedKey(properties, path)) return false;
|
|
17156
|
+
let cursor = properties;
|
|
17157
|
+
for (const segment of path.split(".")) {
|
|
17158
|
+
if (typeof cursor === "string") break;
|
|
17159
|
+
if (cursor === null || typeof cursor !== "object" || Array.isArray(cursor) || !Object.hasOwn(cursor, segment)) return false;
|
|
17160
|
+
cursor = cursor[segment];
|
|
17161
|
+
}
|
|
17162
|
+
if (typeof cursor === "string") return isDynamicReferenceString(cursor) && cursor !== "***";
|
|
17163
|
+
return subtreeHasDynamicReference(cursor) && !carriesSecretMask(cursor);
|
|
17164
|
+
}
|
|
17165
|
+
/**
|
|
17101
17166
|
* Every complete `{{resolve:...}}` token inside a string.
|
|
17102
17167
|
*
|
|
17103
17168
|
* This was a FOURTH spelling of the token pattern (`[^{}]*`, global) and is
|
|
@@ -36261,7 +36326,7 @@ var CloudControlProvider = class {
|
|
|
36261
36326
|
const indeterminateGuard = await this.confirmDeleteTargetIdentity(logicalId, resourceType, physicalId, context);
|
|
36262
36327
|
if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
|
|
36263
36328
|
this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
|
|
36264
|
-
const { ASGProvider } = await import("./asg-provider-
|
|
36329
|
+
const { ASGProvider } = await import("./asg-provider-DsMCnbwS.js").then((n) => n.n);
|
|
36265
36330
|
const asgProvider = new ASGProvider();
|
|
36266
36331
|
return withIndeterminateGuard(await asgProvider.delete(logicalId, physicalId, resourceType, _properties, context), indeterminateGuard);
|
|
36267
36332
|
}
|
|
@@ -51618,5 +51683,5 @@ var DeployEngine = class DeployEngine {
|
|
|
51618
51683
|
};
|
|
51619
51684
|
|
|
51620
51685
|
//#endregion
|
|
51621
|
-
export { yellow as $,
|
|
51622
|
-
//# sourceMappingURL=deploy-engine-
|
|
51686
|
+
export { yellow as $, withErrorHandling as $a, uploadCfnTemplate as $i, repairMalformedResourcePropertiesForReadOnly as $n, createAssetRedirectResolver as $r, requireConfigObject as $t, createPreDeleteFinalSnapshot as A, CdkdError as Aa, warnFinchArgvExposure as Ai, malformedOutputsRefusalMessage as An, S3StateBackend as Ar, carriesDynamicReference as At, isStatefulRecreateTargetSync as B, MalformedProducerRecordRefusalError as Ba, resolveAutoAssetStorage as Bi, refuseMalformedOrphansForDestroy as Bn, hasReadableExportSet as Br, isSettledInstanceState as Bt, namesAnyDeclaredParameter as C, resolveBucketRegion as Ca, getDockerCmd as Ci, isReadableResourceEntry as Cn, pathCrossesDottedKey as Cr, UNSPECIFIED_SKIP_REASON as Ct, PRE_DELETE_SNAPSHOT_TYPES as D, runWithStackAwsClients as Da, redactDockerArgvValues as Di, malformedOrphanRecordsWarning as Dn, redactSecretsForState as Dr, disableInstanceApiTermination as Dt, ATOMIC_FINAL_SNAPSHOT_TYPES as E, resetAwsClients as Ea, partitionSensitiveEnv as Ei, malformedLocalOutputsWarning as En, recoverMaskedOutput as Er, isWaitAbandonedError as Et, extractDeploymentEventError as F, DynamicReferenceRegionAmbiguousError as Fa, Synthesizer as Fi, malformedResourcesWarning as Fn, forceQuitRecoveryClause as Fr, isImpossibleEmptyStoredAttribute as Ft, toCfnInteger as G, ResourceUpdateNotSupportedError as Ga, resolveUseCdkBootstrapAssets as Gi, refuseMalformedResourceEntries as Gn, isReadableBag as Gr, coerceCfnBoolean as Gt, WARM_THROUGHPUT_MEMBERS as H, PartialFailureError as Ha, resolveSkipPrefix as Hi, refuseMalformedOutputs as Hn, hasUnverifiableParameterRefusal as Hr, normalizeAwsTagsToCfn as Ht, makeSiblingClaimReader as I, IntrinsicResolutionRefusalError as Ia, synthesisStatusMessage as Ii, malformedStateRefusalMessage as In, formatLockExpiry as Ir, isNamelessDynamicReferenceError as It, bold as J, StateError as Ja, ssmResolvedValueType as Ji, refuseMalformedResourcesForDestroy as Jn, shouldRetainResource as Jr, configIntegerRefusal as Jt, toFiniteNumber as K, StackHasActiveImportsError as Ka, stateBucketExistenceConfirmed as Ki, refuseMalformedResourceEntriesForOrphan as Kn, orphansAfterRollback as Kr, coerceCfnInteger as Kt, planOrphanAdoption as L, LocalInvokeBuildError as La, getDefaultStateBucketName as Li, refuseDivergentRecordRegionForDestroy as Ln, CUSTOM_RESOURCE_RESPONSE_PREFIX as Lr, isUnboundTemplateParameter as Lt, refusesFinalSnapshot as M, CrossAccountSecretRefusalError as Ma, stripControlChars as Mi, malformedRenderedContainersWarning as Mn, UNREPRODUCIBLE_LOCK_CLAUSE as Mr, cfnRefValueFromPhysicalId as Mt, unsupportedFinalSnapshotError as N, DependencyError as Na, AssetManifestLoader as Ni, malformedResourceEntriesWarning as Nn, buildForceUnlockCommand as Nr, coerceParameterTypedValue as Nt, buildFinalSnapshotIdentifier as O, setAwsClients as Oa, runDockerForeground as Oi, malformedOrphansRefusalMessage as On, scrubResourceRecord as Or, isTerminationProtectionPropagationError as Ot, makeCanonicalizePropertiesFn as P, DeployCancelledError as Pa, getDockerImageBySourceHash as Pi, malformedResourcePropertiesWarning as Pn, buildLockContentionMessage as Pr, getAccountInfo as Pt, red as Q, normalizeAwsError as Qa, findLargeInlineResources as Qi, repairMalformedResourceEntriesForReadOnly as Qn, buildAssetRedirectMap as Qr, requireConfigArray as Qt, MULTI_REGION_RECREATE_BLOCKED_TYPES as R, LocalStartServiceError as Ra, getLegacyStateBucketName as Ri, refuseMalformedNestedChildOutputs as Rn, DEFAULT_STATE_PREFIX as Rr, parameterTypeMayLoseSecretIdentity as Rt, computeParameterTaint as S, clearBucketRegionCache as Sa, formatDockerLoginError as Si, hasReadableResources as Sn, maskSecretsInText as Sr, slowCcOperationTimeoutMs as St, resourcesNamingDeclaredParameter as T, getAwsClients as Ta, isMalformedEnvKey as Ti, malformedExportSourceWarning as Tn, recordMaskOnlyValuesIn as Tr, deleteSkipReason as Tt, coerceWarmThroughput as U, ProvisioningError as Ua, resolveStateBucketWithDefault as Ui, refuseMalformedOutputsForDestroy as Un, importableOutputKeys as Ur, resolveExplicitPhysicalId as Ut, renderStatefulReason as V, NestedStackChildDirectDestroyError as Va, resolveCaptureObservedState as Vi, refuseMalformedOrphansForOrphan as Vn, hasReasonlessBaselineRefusal as Vr, WAFv2WebACLProvider as Vt, isWarmThroughputDecrease as W, ResourceTimeoutError as Wa, resolveStateBucketWithDefaultAndSource as Wi, refuseMalformedResourceAttributesForOrphan as Wn, importableOutputs as Wr, assertRegionMatch as Wt, gray as X, formatError as Xa, CFN_TEMPLATE_URL_LIMIT as Xi, repairMalformedOrphansForReadOnly as Xn, stringifyValue as Xr, readConfigString as Xt, cyan as Y, SynthesisError as Ya, CFN_TEMPLATE_BODY_LIMIT as Yi, refuseMalformedState as Yn, AssetPublisher as Yr, configStringRefusal as Yt, green as Z, isCdkdError as Za, MIGRATE_TMP_PREFIX as Zi, repairMalformedOutputsForReadOnly as Zn, WorkGraph as Zr, replayWarn as Zt, bagHoldsSecretExpression as _, nullPrototypeRecord as _a, describeDockerCapturedOutput as _i, UNREADABLE_ORPHANS_CONTAINER_ROW as _n, identityKeyFor as _r, endCommandInterruptScope as _t, DeploymentEventsStore as a, decodeListingKey as aa, ensureAssetStorage as ai, s3BucketDomainName as an, isTransientServerError as ao, describeTypeWithThrottleRetry as ar, secretBearingStateKeyWarning as at, mergeNoChangeOutputs as b, renderAssemblyPathEscape as ba, dockerSpawnEnvWithSensitive as bi, hasReadableOrphans as bn, markSameGenerationBag as br, startInterruptWatch as bt, replayFailedOperations as c, canonicalizeRegion as ca, parseBootstrapMarker as ci, s3BucketWebsiteUrl as cn, retryClassificationText as co, TemplateParser as cr, IAMRoleProvider as ct, updatePartialMessage as d, failedStageNote as da, validateContainerRepoName as di, applyCallerIdentityCredentials as dn, __exportAll as do, STATE_SOURCED_READBACK_RULES as dr, ProviderRegistry as dt, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as ea, loadPublishableAssetManifest as ei, requireConfigString as en, pasteableCommand as eo, repairMalformedResourcesForReadOnly as er, collectDeclaredOutputNames as et, updatePartialReason as f, globMatches as fa, buildDenyExternalAccessPolicy as fi, callerEnvCredentials as fn, TEMPLATE_SOURCED_RULES as fr, wouldReturnToSdkProvider as ft, computeImplicitDeleteEdges as g, hasPlainPrototype$1 as ga, warnManifestExecutable as gi, STATE_RESOURCES_MALFORMED as gn, errorCauseChain as gr, beginCommandInterruptScope as gt, IMPLICIT_DELETE_DEPENDENCIES as h, hasOwnKey as ha, resolveDockerContextDirectory as hi, INTRINSIC_KEYS as hn, dynamicReferenceTokens as hr, maskerOrIdentity as ht, DeploymentEventsReader as i, producerRecordKey as ia, assertAssetBucketRegion as ii, s3BucketArn as in, isThrottlingError as io, findSilentDropProperties as ir, secretBearing as it, isFinalSnapshotError as j, ConfigError as ja, escapeRegExp$1 as ji, malformedOutputsWarning as jn, rebuildClientForBucketRegion as jr, carriesFetchableDynamicReference as jt, ccRoutedFinalSnapshotError as k, AssetError as ka, runDockerStreaming as ki, malformedOrphansWarning as kn, LockManager as kr, IntrinsicFunctionResolver as kt, replayRollback as l, derivePartitionAndUrlSuffix as la, readBootstrapMarkerBody as li, applyRoleArnIfSet as ln, describeAwsFailure as lo, STATE_SOURCED_BASELINE_RULES as lr, collectInlinePolicyNamesManagedBySiblings as lt, maskingRetryLogger as m, defineOwnKey as ma, buildDockerImage as mi, DiffCalculator as mn, createSecretMasker as mr, maskDeep as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, injectiveKeyPrefix as na, AssetModeResolver as ni, producerRegionsFromState as nn, isMarkedNonRetryable as no, safeStackName as nr, exportAliasCollisionScrubWarning as nt, planFailedOps as o, expectedOwnerParam as oa, getBootstrapMarkerKey as oi, s3BucketDualStackDomainName as on, markNonRetryable as oo, withRetry as or, secretSafeKeyDisplay as ot, withResourceDeadline as p, processStackMessages as pa, assertCdkLocalDockerContextContained as pi, envCredentialsAreAssumedRole as pn, carriesSecretMask as pr, createMaskedRetryLogger as pt, formatResourceLine as q, StackTerminationProtectionError as qa, warnDeprecatedNoPrefixCliFlag as qi, refuseMalformedResourcePropertiesForOrphan as qn, orphansCarriedFrom as qr, configBooleanRefusal as qt, DeployEngine as r, producerCoordinateKey as ra, BOOTSTRAP_MARKER_PREFIX as ri, withSharedDrainBudget as rn, isRetryableTransientError as ro, findActionableSilentDrops as rr, isExportAliasCollision as rt, planRollback as s, PARTITION_TABLE as sa, isCrossRegionRedirect as si, s3BucketRegionalDomainName as sn, markRedactedCause as so, DagBuilder as sr, getCurrentResourceSecrets as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, injectiveKey as ta, rewriteTemplateAssetReferences as ti, classifyReplaySecretRegion as tn, shellQuote as to, safeRegion as tr, collectPublishedOutputNames as tt, resolveReplacementOldType as u, AssemblyReader as ua, validateAssetBucketName as ui, AWS_CREDENTIAL_ENV_KEYS as un, safeStringify$1 as uo, STATE_SOURCED_CROSS_GENERATION_RULES as ur, clearOnUpdateRemoval as ut, isSecretBearingReferenceString as v, ownValue as va, describeDockerExecFailure as vi, UNREADABLE_RESOURCES_MAP_ROW as vn, isSingleDynamicReferenceToken as vr, interruptWatchListenerCount as vt, reachableDivergentParameters as w, AwsClients as wa, isDockerClientEnvKey as wi, malformedExportNamesWarning as wn, recordMaskOnlyValue as wr, deleteIndeterminateGuards as wt, bindingSkippedOutputs as x, resolveAssemblyPath as xa, finchSecretArgvRefusal as xi, hasReadableOutputs as xn, maskSecretsInError as xr, CloudControlProvider as xt, keptWholeReasonText as y, absoluteAssemblyPathEscape as ya, describeDockerFailure as yi, displayLogicalId as yn, isUncertifiedBaselineMaskPosition as yr, isInterruptedWaitError as yt, isStatefulRecreateTargetForReplace as z, LockError as za, resolveApp as zi, refuseMalformedOrphans as zn, exportNamesCarriedFrom as zr, refStateLookupFromResource as zt };
|
|
51687
|
+
//# sourceMappingURL=deploy-engine-D8OVUEBp.js.map
|