@go-to-k/cdkd 0.290.46 → 0.290.48
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-BL_yHnHI.js → asg-provider-CTrrSFjd.js} +2 -2
- package/dist/{asg-provider-BL_yHnHI.js.map → asg-provider-CTrrSFjd.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-BRy8S7QH.js → deploy-engine-Defy0tTm.js} +118 -62
- package/dist/deploy-engine-Defy0tTm.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/{program-OigOAssB.js → program-DZoyIJCj.js} +140 -12
- package/dist/{program-OigOAssB.js.map → program-DZoyIJCj.js.map} +1 -1
- package/dist/{version-THOL_1Cg.js → version-78yzIsS6.js} +2 -2
- package/dist/{version-THOL_1Cg.js.map → version-78yzIsS6.js.map} +1 -1
- package/package.json +1 -1
- package/dist/deploy-engine-BRy8S7QH.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-78yzIsS6.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-DZoyIJCj.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, 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-78yzIsS6.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";
|
|
@@ -2952,7 +2952,10 @@ function resolveThroughLinks(target, hops = 0, climbs = 0) {
|
|
|
2952
2952
|
* (`path.join`, NOT `path.resolve`), so the verdict is about the path the
|
|
2953
2953
|
* caller will actually open. `join`'s handling of an absolute candidate makes
|
|
2954
2954
|
* this arm strictly more permissive than a `resolve`-based one would be; an
|
|
2955
|
-
* absolute value therefore stays a matter for each site's own tripwire
|
|
2955
|
+
* absolute value therefore stays a matter for each site's own tripwire — and
|
|
2956
|
+
* for a site that HONOURS one, {@link absoluteAssemblyPathEscape} below is the
|
|
2957
|
+
* sibling that answers containment for it, because this function structurally
|
|
2958
|
+
* cannot.
|
|
2956
2959
|
*
|
|
2957
2960
|
* The SYMLINK arm exists because the lexical arm alone leaves an equivalent
|
|
2958
2961
|
* hole: `cdk.out/link -> /etc` plus a candidate of `link/passwd` is lexically
|
|
@@ -3002,6 +3005,53 @@ function resolveAssemblyPath(dir, candidate, options) {
|
|
|
3002
3005
|
};
|
|
3003
3006
|
}
|
|
3004
3007
|
/**
|
|
3008
|
+
* Whether an ALREADY-ABSOLUTE assembly-supplied path lies outside `bound`.
|
|
3009
|
+
*
|
|
3010
|
+
* {@link resolveAssemblyPath} cannot answer this, and the reason is structural
|
|
3011
|
+
* rather than an oversight: its lexical arm joins with `path.join`, which does
|
|
3012
|
+
* NOT honour a leading separator, so an absolute candidate is folded INTO the
|
|
3013
|
+
* directory (`join('/tmp/cdk.out', '/abs/foo')` is `/tmp/cdk.out/abs/foo`) and
|
|
3014
|
+
* the verdict describes a path no caller will open. A site that HONOURS an
|
|
3015
|
+
* absolute value needs the verdict about the value itself.
|
|
3016
|
+
*
|
|
3017
|
+
* The one caller is `cdkd local invoke` / `cdkd local start-api`'s
|
|
3018
|
+
* `Metadata['aws:asset:path']` (issue
|
|
3019
|
+
* [#3494](https://github.com/go-to-k/cdkd/issues/3494)). Those honour an
|
|
3020
|
+
* absolute path because `cdk synth --no-staging` emits one — CDK writes the
|
|
3021
|
+
* asset's absolute SOURCE directory under `aws:cdk:disable-asset-staging`,
|
|
3022
|
+
* usually outside the outdir — and they WARN rather than refuse when it leaves
|
|
3023
|
+
* the bound, so this returns a verdict rather than throwing.
|
|
3024
|
+
*
|
|
3025
|
+
* It exists HERE, beside `resolveAssemblyPath`, so the containment rule has one
|
|
3026
|
+
* spelling: it reuses this module's own {@link isInside} and
|
|
3027
|
+
* {@link resolveThroughLinks}, symlink arm included, rather than letting a
|
|
3028
|
+
* caller re-spell `path.relative` and drift from it.
|
|
3029
|
+
*
|
|
3030
|
+
* `bound` itself is NOT an escape, unlike in `resolveAssemblyPath`, where an
|
|
3031
|
+
* empty `path.relative` means "names the directory rather than a file inside
|
|
3032
|
+
* it". An asset path legitimately names a DIRECTORY, so a value equal to the
|
|
3033
|
+
* bound is inside it and reporting it as outside would be a false statement.
|
|
3034
|
+
*/
|
|
3035
|
+
function absoluteAssemblyPathEscape(bound, absolutePath) {
|
|
3036
|
+
const resolvedBound = path.resolve(bound);
|
|
3037
|
+
const target = path.resolve(absolutePath);
|
|
3038
|
+
if (!isInside(resolvedBound, target) && target !== resolvedBound) return {
|
|
3039
|
+
contained: false,
|
|
3040
|
+
escape: "lexical",
|
|
3041
|
+
path: target
|
|
3042
|
+
};
|
|
3043
|
+
const realBound = resolveThroughLinks(resolvedBound);
|
|
3044
|
+
if (realBound !== void 0) {
|
|
3045
|
+
const realTarget = resolveThroughLinks(target);
|
|
3046
|
+
if (realTarget !== void 0 && !isInside(realBound, realTarget) && realTarget !== realBound) return {
|
|
3047
|
+
contained: false,
|
|
3048
|
+
escape: "symlink",
|
|
3049
|
+
path: target,
|
|
3050
|
+
realPath: realTarget
|
|
3051
|
+
};
|
|
3052
|
+
}
|
|
3053
|
+
}
|
|
3054
|
+
/**
|
|
3005
3055
|
* The shared tail of every containment refusal: what the value resolved to,
|
|
3006
3056
|
* what it escaped, and why that means the assembly is not CDK-generated. Each
|
|
3007
3057
|
* call site supplies its own subject ("Stack 'X' has templateFile='...' which
|
|
@@ -22540,11 +22590,11 @@ function refuseMalformedResourcesForDeploy(state, stackName, region) {
|
|
|
22540
22590
|
* would mean JSON-quoting a name in the one place the text is meant to read as
|
|
22541
22591
|
* English (review of go-to-k/cdkd#3190).
|
|
22542
22592
|
*/
|
|
22543
|
-
function malformedRenderedContainersWarning(
|
|
22544
|
-
const
|
|
22545
|
-
const
|
|
22593
|
+
function malformedRenderedContainersWarning(rawStackName, rawRegion, containers) {
|
|
22594
|
+
const stackName = absentIfEmpty(rawStackName);
|
|
22595
|
+
const region = absentIfEmpty(rawRegion);
|
|
22546
22596
|
const names = containers.map((name) => `'${safeIdentifier(name, SHORT_NAME_MAX_CODE_POINTS)}'`).join(", ");
|
|
22547
|
-
return
|
|
22597
|
+
return `${stackClause(stackName, region)} has a non-object ${names} — the record is malformed or truncated. 'Object.entries' walks a string or a list as readily as a map, so rendering one INVENTS a row per character or element. Continuing with it EMPTY: this view shows no rows there, which is not the same as the record holding none. A per-resource container is named once however many resources hold one. See the stored values with: ` + inspectCommand(stackName, region);
|
|
22548
22598
|
}
|
|
22549
22599
|
/**
|
|
22550
22600
|
* `''` is NOT an identity, and every renderer below treats it as one
|
|
@@ -22556,6 +22606,14 @@ function malformedRenderedContainersWarning(stackName, region, containers) {
|
|
|
22556
22606
|
* {@link stackClause} and {@link inspectCommand}, which drop the clause and
|
|
22557
22607
|
* the flag, and that is the right answer for both identifiers.
|
|
22558
22608
|
*
|
|
22609
|
+
* Every message that renders an identity calls this and then
|
|
22610
|
+
* {@link stackClause} / {@link inspectCommand} rather than spelling the clause
|
|
22611
|
+
* and the command again (go-to-k/cdkd#3526): for a present identity those two
|
|
22612
|
+
* render byte-identically to what each builder used to build by hand, and for
|
|
22613
|
+
* an absent one they give the no-identity form and the hole template instead
|
|
22614
|
+
* of `<unrenderable>`. That is why the per-site note is one line — the reason
|
|
22615
|
+
* lives here.
|
|
22616
|
+
*
|
|
22559
22617
|
* NORMALISE AT THE BOUNDARY. `dropRecordCommand`, `identityWithheld` and
|
|
22560
22618
|
* `orphanInspectClause` each carry their own `=== ''` arm on purpose, so this
|
|
22561
22619
|
* is not the module's only floor — but a floor in the SHARED helpers was tried
|
|
@@ -22662,10 +22720,10 @@ function repairMalformedOutputsForReadOnly(state) {
|
|
|
22662
22720
|
* Identifiers are sanitized and then shell-quoted and the command is emitted
|
|
22663
22721
|
* LAST and UNWRAPPED, for the reasons {@link safeIdentifier}'s note gives.
|
|
22664
22722
|
*/
|
|
22665
|
-
function malformedOutputsWarning(
|
|
22666
|
-
const
|
|
22667
|
-
const
|
|
22668
|
-
return
|
|
22723
|
+
function malformedOutputsWarning(rawStackName, rawRegion) {
|
|
22724
|
+
const stackName = absentIfEmpty(rawStackName);
|
|
22725
|
+
const region = absentIfEmpty(rawRegion);
|
|
22726
|
+
return `${stackClause(stackName, region)} has no readable 'outputs' map — the record is malformed or truncated. Where the stored value is a string or a list, 'Object.entries' walks it as readily as a map, so diffing it INVENTS a REMOVE row per character or element carrying the record's own characters; where it is a number, a boolean or null, it yields no comparison at all. Continuing with it EMPTY: every output this diff resolves is reported as an ADD and no stored key is reported as a REMOVE, which is not the same as the record holding none. See the stored value with: ` + inspectCommand(stackName, region);
|
|
22669
22727
|
}
|
|
22670
22728
|
/**
|
|
22671
22729
|
* For a command that can WRITE state: refuse the record by name instead of
|
|
@@ -22709,10 +22767,10 @@ function refuseMalformedState(state, stackName, region) {
|
|
|
22709
22767
|
* Identifiers are sanitized and THEN shell-quoted and the command is emitted
|
|
22710
22768
|
* LAST and UNWRAPPED, for the reasons {@link safeIdentifier}'s note gives.
|
|
22711
22769
|
*/
|
|
22712
|
-
function malformedOutputsRefusalMessage(
|
|
22713
|
-
const
|
|
22714
|
-
const
|
|
22715
|
-
return
|
|
22770
|
+
function malformedOutputsRefusalMessage(rawStackName, rawRegion) {
|
|
22771
|
+
const stackName = absentIfEmpty(rawStackName);
|
|
22772
|
+
const region = absentIfEmpty(rawRegion);
|
|
22773
|
+
return `${stackClause(stackName, region)} has no readable 'outputs' map — the record is malformed or truncated. This command can WRITE state, so it refuses rather than continuing: it REBUILDS the bag before saving, and 'Object.entries' walks a string or a list as readily as a map, so a six-character value would be saved back as a well-formed six-key map (a null one as an empty map). That replaces the only signal anything is wrong with a legitimate-looking record, permanently — and the next deploy republishes it into the shared exports index every other stack's Fn::ImportValue resolves against. Repair or remove the record first. Inspect it with: ` + inspectCommand(stackName, region);
|
|
22716
22774
|
}
|
|
22717
22775
|
/**
|
|
22718
22776
|
* The line `ExportIndexStore`'s rebuild emits for a producer record whose
|
|
@@ -22735,10 +22793,10 @@ function malformedOutputsRefusalMessage(stackName, region) {
|
|
|
22735
22793
|
* Identifiers are sanitized and THEN shell-quoted and the command is emitted
|
|
22736
22794
|
* LAST and UNWRAPPED, for the reasons {@link safeIdentifier}'s note gives.
|
|
22737
22795
|
*/
|
|
22738
|
-
function malformedExportSourceWarning(
|
|
22739
|
-
const
|
|
22740
|
-
const
|
|
22741
|
-
return
|
|
22796
|
+
function malformedExportSourceWarning(rawStackName, rawRegion) {
|
|
22797
|
+
const stackName = absentIfEmpty(rawStackName);
|
|
22798
|
+
const region = absentIfEmpty(rawRegion);
|
|
22799
|
+
return `${stackClause(stackName, region)} has no readable 'outputs' map or 'exportNames' list — the record is malformed or truncated. It contributes NO exports to this region's index, which is not the same as the stack exporting none: an Fn::ImportValue of a name this stack really publishes will fail in the CONSUMER stack, naming that stack rather than this record. Continuing with the other producers — enumerating a string or a list here would instead publish one FABRICATED export per character or element. See the stored values with: ` + inspectCommand(stackName, region);
|
|
22742
22800
|
}
|
|
22743
22801
|
/**
|
|
22744
22802
|
* The line a READ-ONLY command emits when a record's `exportNames` FIELD could
|
|
@@ -22764,10 +22822,10 @@ function malformedExportSourceWarning(stackName, region) {
|
|
|
22764
22822
|
* Identifiers are sanitized and THEN shell-quoted and the command is emitted
|
|
22765
22823
|
* LAST and UNWRAPPED, for the reasons {@link safeIdentifier}'s note gives.
|
|
22766
22824
|
*/
|
|
22767
|
-
function malformedExportNamesWarning(
|
|
22768
|
-
const
|
|
22769
|
-
const
|
|
22770
|
-
return
|
|
22825
|
+
function malformedExportNamesWarning(rawStackName, rawRegion) {
|
|
22826
|
+
const stackName = absentIfEmpty(rawStackName);
|
|
22827
|
+
const region = absentIfEmpty(rawRegion);
|
|
22828
|
+
return `${stackClause(stackName, region)} has an unusable 'exportNames' list — the record is malformed or truncated. It is read as an EMPTY export set, which is not the same as the record holding one: no stored key is reported as an export, so a row that should carry an '[export]' tag renders without it. Reading it as UNKNOWN instead would be worse — that falls back to the pre-v9 rule where every output name is importable. See the stored value with: ` + inspectCommand(stackName, region);
|
|
22771
22829
|
}
|
|
22772
22830
|
/**
|
|
22773
22831
|
* For a command that can WRITE state: refuse a record whose `outputs` bag
|
|
@@ -22873,10 +22931,10 @@ function repairMalformedOrphansForReadOnly(state) {
|
|
|
22873
22931
|
* Identifiers are sanitized and THEN shell-quoted and the command is emitted
|
|
22874
22932
|
* LAST and UNWRAPPED, for the reasons {@link safeIdentifier}'s note gives.
|
|
22875
22933
|
*/
|
|
22876
|
-
function malformedOrphansWarning(
|
|
22877
|
-
const
|
|
22878
|
-
const
|
|
22879
|
-
return
|
|
22934
|
+
function malformedOrphansWarning(rawStackName, rawRegion) {
|
|
22935
|
+
const stackName = absentIfEmpty(rawStackName);
|
|
22936
|
+
const region = absentIfEmpty(rawRegion);
|
|
22937
|
+
return `${stackClause(stackName, region)} has no readable 'orphans' list — the record is malformed or truncated. Readers reach it on a bare '?? []' or '?.length', which admits a string, a number, a plain object and null alike: a string is WALKED, one garbage orphan per character, and the others read as no orphans at all. Continuing with it EMPTY: this view previews no adoption and names no orphan, which is NOT the same as the record holding none — resources from an earlier failed deploy may still be live in AWS. See the stored value with: ` + inspectCommand(stackName, region);
|
|
22880
22938
|
}
|
|
22881
22939
|
/**
|
|
22882
22940
|
* The refusal text for a command that can WRITE the record.
|
|
@@ -22893,10 +22951,10 @@ function malformedOrphansWarning(stackName, region) {
|
|
|
22893
22951
|
* Identifiers are sanitized and THEN shell-quoted and the command is emitted
|
|
22894
22952
|
* LAST and UNWRAPPED, for the reasons {@link safeIdentifier}'s note gives.
|
|
22895
22953
|
*/
|
|
22896
|
-
function malformedOrphansRefusalMessage(
|
|
22897
|
-
const
|
|
22898
|
-
const
|
|
22899
|
-
return
|
|
22954
|
+
function malformedOrphansRefusalMessage(rawStackName, rawRegion) {
|
|
22955
|
+
const stackName = absentIfEmpty(rawStackName);
|
|
22956
|
+
const region = absentIfEmpty(rawRegion);
|
|
22957
|
+
return `${stackClause(stackName, region)} has no readable 'orphans' list — the record is malformed or truncated. This command can WRITE state, so it refuses rather than continuing: a string container is WALKED one character at a time and written back as a list of character-shaped orphan records, and every other unreadable shape reads as no orphans at all — so a run would delete or adopt against a record whose evidence of resources left live in AWS by an earlier failed deploy it never read. Repair or remove the record first, and no cdkd command repairs this container: rewriting it to [] by hand discards the very evidence this refusal is protecting. Inspect the record with: ` + inspectCommand(stackName, region);
|
|
22900
22958
|
}
|
|
22901
22959
|
/**
|
|
22902
22960
|
* The DESTROY refusal text for this container (go-to-k/cdkd#3379 review).
|
|
@@ -22979,10 +23037,10 @@ function refuseMalformedOrphans(state, stackName, region) {
|
|
|
22979
23037
|
* Identifiers are sanitized and THEN shell-quoted and the command is emitted
|
|
22980
23038
|
* LAST and UNWRAPPED, for the reasons {@link safeIdentifier}'s note gives.
|
|
22981
23039
|
*/
|
|
22982
|
-
function malformedDestroyOutputsRefusalMessage(
|
|
22983
|
-
const
|
|
22984
|
-
const
|
|
22985
|
-
return
|
|
23040
|
+
function malformedDestroyOutputsRefusalMessage(rawStackName, rawRegion) {
|
|
23041
|
+
const stackName = absentIfEmpty(rawStackName);
|
|
23042
|
+
const region = absentIfEmpty(rawRegion);
|
|
23043
|
+
return `${stackClause(stackName, region)} has no readable 'outputs' map — the record is malformed or truncated. This command DELETES state, so it refuses rather than continuing: it reads this bag to decide whether the stack might export anything, and that decision gates the cross-stack check that refuses to delete a producer another stack still imports from. A string or a list invents one export name per character or element; a null, a number or a boolean reads as 'exports nothing' and SKIPS the check entirely, deleting the record while consumers still resolve against it. Repair or remove the record first. Inspect it with: ` + inspectCommand(stackName, region);
|
|
22986
23044
|
}
|
|
22987
23045
|
/**
|
|
22988
23046
|
* For `cdkd destroy` / `cdkd state destroy`: refuse a record whose `outputs`
|
|
@@ -23021,10 +23079,10 @@ function refuseMalformedOutputsForDestroy(state, stackName, region) {
|
|
|
23021
23079
|
* Identifiers are sanitized and THEN shell-quoted and the command is emitted
|
|
23022
23080
|
* LAST and UNWRAPPED, for the reasons {@link safeIdentifier}'s note gives.
|
|
23023
23081
|
*/
|
|
23024
|
-
function malformedNestedChildOutputsRefusalMessage(
|
|
23025
|
-
const
|
|
23026
|
-
const
|
|
23027
|
-
return
|
|
23082
|
+
function malformedNestedChildOutputsRefusalMessage(rawChildStackName, rawRegion) {
|
|
23083
|
+
const childStackName = absentIfEmpty(rawChildStackName);
|
|
23084
|
+
const region = absentIfEmpty(rawRegion);
|
|
23085
|
+
return `${stackClause(childStackName, region, "nested stack child")} has no readable 'outputs' map — the record is malformed or truncated. The parent's 'Outputs.<Key>' attributes are REBUILT from this bag and persisted into the PARENT's record, and 'Object.entries' walks a string or a list as readily as a map — so a six-character value would become six fabricated parent attributes that every Fn::GetAtt against this nested stack then resolves into live AWS calls. The deploy refuses rather than fabricating them. Repair or remove the child's record first. Inspect it with: ` + inspectCommand(childStackName, region);
|
|
23028
23086
|
}
|
|
23029
23087
|
/**
|
|
23030
23088
|
* For the nested-stack provider: refuse a CHILD record whose `outputs` bag
|
|
@@ -23072,10 +23130,10 @@ function refuseMalformedNestedChildOutputs(state, childStackName, region) {
|
|
|
23072
23130
|
* Identifiers are sanitized and THEN shell-quoted and the command is emitted
|
|
23073
23131
|
* LAST and UNWRAPPED, for the reasons {@link safeIdentifier}'s note gives.
|
|
23074
23132
|
*/
|
|
23075
|
-
function malformedLocalOutputsWarning(
|
|
23076
|
-
const
|
|
23077
|
-
const
|
|
23078
|
-
return
|
|
23133
|
+
function malformedLocalOutputsWarning(rawStackName, rawRegion) {
|
|
23134
|
+
const stackName = absentIfEmpty(rawStackName);
|
|
23135
|
+
const region = absentIfEmpty(rawRegion);
|
|
23136
|
+
return `${stackClause(stackName, region)} has no readable 'outputs' map — the record is malformed or truncated. 'Object.entries' walks a string or a list as readily as a map, so reading it would hand this local run one FABRICATED output per character or element. Continuing with it EMPTY: every reference to an output of this record resolves to nothing and is dropped, which is not the same as the record holding none. See the stored value with: ` + inspectCommand(stackName, region);
|
|
23079
23137
|
}
|
|
23080
23138
|
/** How many logical ids a `properties` message names before it says "and N more". */
|
|
23081
23139
|
const NAMED_UNREADABLE_PROPERTY_BAGS = 5;
|
|
@@ -23107,10 +23165,10 @@ const NAMED_UNREADABLE_PROPERTY_BAGS = 5;
|
|
|
23107
23165
|
* a pasted command that selects no record at all, so it is dropped for the
|
|
23108
23166
|
* same reason — the call go-to-k/cdkd#3226 makes for `inspectCommand`.
|
|
23109
23167
|
*/
|
|
23110
|
-
function stackClause(stackName, region) {
|
|
23168
|
+
function stackClause(stackName, region, kind = "") {
|
|
23111
23169
|
if (stackName === void 0) return "The state record this command loaded";
|
|
23112
23170
|
const where = region === void 0 ? "" : ` (${shellQuote(safeRegion(region))})`;
|
|
23113
|
-
return `State for ${shellQuote(safeStackName(stackName))}${where}`;
|
|
23171
|
+
return `State for ${kind ? `${kind} ` : ""}${shellQuote(safeStackName(stackName))}${where}`;
|
|
23114
23172
|
}
|
|
23115
23173
|
/**
|
|
23116
23174
|
* The DESTRUCTIVE remedy, built the way {@link inspectCommand} builds the
|
|
@@ -23862,10 +23920,10 @@ function repairMalformedResourceEntriesForReadOnly(state) {
|
|
|
23862
23920
|
return unreadable;
|
|
23863
23921
|
}
|
|
23864
23922
|
/** The warning a caller of {@link repairMalformedResourceEntriesForReadOnly} emits. */
|
|
23865
|
-
function malformedResourceEntriesWarning(
|
|
23866
|
-
const
|
|
23867
|
-
const
|
|
23868
|
-
return `${namedEntriesClause(stackName, region, logicalIds)} Continuing WITHOUT them: this command's output describes the remaining resources only, which is not the same as the stack holding none of these. See the stored values with:
|
|
23923
|
+
function malformedResourceEntriesWarning(rawStackName, rawRegion, logicalIds) {
|
|
23924
|
+
const stackName = absentIfEmpty(rawStackName);
|
|
23925
|
+
const region = absentIfEmpty(rawRegion);
|
|
23926
|
+
return `${namedEntriesClause(stackName, region, logicalIds)} Continuing WITHOUT them: this command's output describes the remaining resources only, which is not the same as the stack holding none of these. See the stored values with: ` + inspectCommand(stackName, region);
|
|
23869
23927
|
}
|
|
23870
23928
|
/**
|
|
23871
23929
|
* The `orphans[]` twin of {@link malformedResourceEntriesWarning}, and a
|
|
@@ -23895,13 +23953,13 @@ function malformedResourceEntriesWarning(stackName, region, logicalIds) {
|
|
|
23895
23953
|
* `logicalId` is not a string arrives as `''` and renders as the
|
|
23896
23954
|
* `UNRENDERABLE` stand-in.
|
|
23897
23955
|
*/
|
|
23898
|
-
function malformedOrphanRecordsWarning(
|
|
23899
|
-
const
|
|
23900
|
-
const
|
|
23956
|
+
function malformedOrphanRecordsWarning(rawStackName, rawRegion, logicalIds) {
|
|
23957
|
+
const stackName = absentIfEmpty(rawStackName);
|
|
23958
|
+
const region = absentIfEmpty(rawRegion);
|
|
23901
23959
|
const named = logicalIds.slice(0, NAMED_UNREADABLE_ENTRIES).map((id) => displayLogicalId(id)).join(", ");
|
|
23902
23960
|
const rest = logicalIds.length - NAMED_UNREADABLE_ENTRIES;
|
|
23903
23961
|
const more = rest > 0 ? ` and ${rest} more` : "";
|
|
23904
|
-
return
|
|
23962
|
+
return `${stackClause(stackName, region)} holds ${logicalIds.length} rollback-orphan record(s) in 'orphans' that cannot be read as resources — ${named}${more} — because they are not objects, or carry no resource type. Continuing WITHOUT them: they are not previewed for adoption. These ids were read from 'orphans'; the 'resources' map carries its own warning when it is damaged too. See the stored values with: ` + inspectCommand(stackName, region);
|
|
23905
23963
|
}
|
|
23906
23964
|
/**
|
|
23907
23965
|
* The half the refusal and the warning share: what is wrong and which entries.
|
|
@@ -23910,12 +23968,10 @@ function malformedOrphanRecordsWarning(stackName, region, logicalIds) {
|
|
|
23910
23968
|
* happens NEXT, and a second copy of the diagnosis is what drifts.
|
|
23911
23969
|
*/
|
|
23912
23970
|
function namedEntriesClause(stackName, region, logicalIds) {
|
|
23913
|
-
const stack = safeStackName(stackName);
|
|
23914
|
-
const reg = safeRegion(region);
|
|
23915
23971
|
const named = logicalIds.slice(0, NAMED_UNREADABLE_ENTRIES).map((id) => displayLogicalId(id)).join(", ");
|
|
23916
23972
|
const rest = logicalIds.length - NAMED_UNREADABLE_ENTRIES;
|
|
23917
23973
|
const more = rest > 0 ? ` and ${rest} more` : "";
|
|
23918
|
-
return
|
|
23974
|
+
return `${stackClause(stackName, region)} holds ${logicalIds.length} resource record(s) that cannot be read as resources — ${named}${more} — because they are not objects, or carry no resource type, so nothing can tell what AWS resource they name. The record is malformed or truncated.`;
|
|
23919
23975
|
}
|
|
23920
23976
|
/**
|
|
23921
23977
|
* The text {@link refuseMalformedResourceEntries} raises.
|
|
@@ -23936,10 +23992,10 @@ function namedEntriesClause(stackName, region, logicalIds) {
|
|
|
23936
23992
|
* Exported so a test can pin the wording against the producer rather than
|
|
23937
23993
|
* re-spelling it, the way the other messages here are consumed.
|
|
23938
23994
|
*/
|
|
23939
|
-
function malformedResourceEntriesRefusalMessage(
|
|
23940
|
-
const
|
|
23941
|
-
const
|
|
23942
|
-
return `${namedEntriesClause(stackName, region, logicalIds)} This command can WRITE state, so it refuses rather than skipping them: saving over the record would report a clean run for entries nothing could read, and would leave the next command to fail on them with no more to go on. Nothing was locked, read from AWS or written FOR THIS STACK. Inspect it with:
|
|
23995
|
+
function malformedResourceEntriesRefusalMessage(rawStackName, rawRegion, logicalIds) {
|
|
23996
|
+
const stackName = absentIfEmpty(rawStackName);
|
|
23997
|
+
const region = absentIfEmpty(rawRegion);
|
|
23998
|
+
return `${namedEntriesClause(stackName, region, logicalIds)} This command can WRITE state, so it refuses rather than skipping them: saving over the record would report a clean run for entries nothing could read, and would leave the next command to fail on them with no more to go on. Nothing was locked, read from AWS or written FOR THIS STACK. Inspect it with: ` + inspectCommand(stackName, region);
|
|
23943
23999
|
}
|
|
23944
24000
|
|
|
23945
24001
|
//#endregion
|
|
@@ -34613,7 +34669,7 @@ var CloudControlProvider = class {
|
|
|
34613
34669
|
const indeterminateGuard = await this.confirmDeleteTargetIdentity(logicalId, resourceType, physicalId, context);
|
|
34614
34670
|
if (context?.removeProtection === true && resourceType === "AWS::AutoScaling::AutoScalingGroup") {
|
|
34615
34671
|
this.logger.debug(`Delegating protected AutoScalingGroup ${logicalId} delete to the SDK ASGProvider (Cloud Control cannot force-delete a protected ASG)`);
|
|
34616
|
-
const { ASGProvider } = await import("./asg-provider-
|
|
34672
|
+
const { ASGProvider } = await import("./asg-provider-CTrrSFjd.js").then((n) => n.n);
|
|
34617
34673
|
const asgProvider = new ASGProvider();
|
|
34618
34674
|
return withIndeterminateGuard(await asgProvider.delete(logicalId, physicalId, resourceType, _properties, context), indeterminateGuard);
|
|
34619
34675
|
}
|
|
@@ -48322,5 +48378,5 @@ var DeployEngine = class DeployEngine {
|
|
|
48322
48378
|
};
|
|
48323
48379
|
|
|
48324
48380
|
//#endregion
|
|
48325
|
-
export { yellow as $, AssemblyReader as $i, safeStackName as $n, assertAssetBucketRegion as $r, requireConfigObject as $t, createPreDeleteFinalSnapshot as A,
|
|
48326
|
-
//# sourceMappingURL=deploy-engine-
|
|
48381
|
+
export { yellow as $, AssemblyReader as $i, safeStackName as $n, assertAssetBucketRegion as $r, requireConfigObject as $t, createPreDeleteFinalSnapshot as A, ProvisioningError as Aa, resolveCaptureObservedState as Ai, malformedOutputsRefusalMessage as An, formatLockExpiry as Ar, carriesDynamicReference as At, isStatefulRecreateTargetSync as B, withErrorHandling as Ba, MIGRATE_TMP_PREFIX as Bi, refuseMalformedOrphansForDestroy as Bn, isReadableBag as Br, isSettledInstanceState as Bt, namesAnyDeclaredParameter as C, IntrinsicResolutionRefusalError as Ca, getDockerImageBySourceHash as Ci, isReadableResourceEntry as Cn, LockManager as Cr, slowCcOperationTimeoutMs as Ct, PRE_DELETE_SNAPSHOT_TYPES as D, MalformedProducerRecordRefusalError as Da, getLegacyStateBucketName as Di, malformedOrphanRecordsWarning as Dn, buildForceUnlockCommand as Dr, disableInstanceApiTermination as Dt, ATOMIC_FINAL_SNAPSHOT_TYPES as E, LockError as Ea, getDefaultStateBucketName as Ei, malformedLocalOutputsWarning as En, UNREPRODUCIBLE_LOCK_CLAUSE as Er, deleteSkipReason as Et, extractDeploymentEventError as F, StateError as Fa, stateBucketExistenceConfirmed as Fi, malformedResourcesWarning as Fn, hasReadableExportSet as Fr, isImpossibleEmptyStoredAttribute as Ft, toCfnInteger as G, markNonRetryable as Ga, injectiveKeyPrefix as Gi, refuseMalformedResourcesForDestroy as Gn, stringifyValue as Gr, coerceCfnBoolean as Gt, WARM_THROUGHPUT_MEMBERS as H, isRetryableTransientError as Ha, uploadCfnTemplate as Hi, refuseMalformedOutputsForDestroy as Hn, orphansCarriedFrom as Hr, normalizeAwsTagsToCfn as Ht, makeSiblingClaimReader as I, SynthesisError as Ia, warnDeprecatedNoPrefixCliFlag as Ii, malformedStateRefusalMessage as In, hasReasonlessBaselineRefusal as Ir, isNamelessDynamicReferenceError as It, bold as J, describeAwsFailure as Ja, decodeListingKey as Ji, repairMalformedOutputsForReadOnly as Jn, createAssetRedirectResolver as Jr, configIntegerRefusal as Jt, toFiniteNumber as K, markRedactedCause as Ka, producerCoordinateKey as Ki, refuseMalformedState as Kn, WorkGraph as Kr, coerceCfnInteger as Kt, planOrphanAdoption as L, formatError as La, ssmResolvedValueType as Li, refuseDivergentRecordRegionForDestroy as Ln, hasUnverifiableParameterRefusal as Lr, isUnboundTemplateParameter as Lt, refusesFinalSnapshot as M, ResourceUpdateNotSupportedError as Ma, resolveStateBucketWithDefault as Mi, malformedRenderedContainersWarning as Mn, CUSTOM_RESOURCE_RESPONSE_PREFIX as Mr, cfnRefValueFromPhysicalId as Mt, unsupportedFinalSnapshotError as N, StackHasActiveImportsError as Na, resolveStateBucketWithDefaultAndSource as Ni, malformedResourceEntriesWarning as Nn, DEFAULT_STATE_PREFIX as Nr, coerceParameterTypedValue as Nt, buildFinalSnapshotIdentifier as O, NestedStackChildDirectDestroyError as Oa, resolveApp as Oi, malformedOrphansRefusalMessage as On, buildLockContentionMessage as Or, isTerminationProtectionPropagationError as Ot, makeCanonicalizePropertiesFn as P, StackTerminationProtectionError as Pa, resolveUseCdkBootstrapAssets as Pi, malformedResourcePropertiesWarning as Pn, exportNamesCarriedFrom as Pr, getAccountInfo as Pt, red as Q, derivePartitionAndUrlSuffix as Qi, safeRegion as Qn, BOOTSTRAP_MARKER_PREFIX as Qr, requireConfigArray as Qt, MULTI_REGION_RECREATE_BLOCKED_TYPES as R, isCdkdError as Ra, CFN_TEMPLATE_BODY_LIMIT as Ri, refuseMalformedNestedChildOutputs as Rn, importableOutputKeys as Rr, parameterTypeMayLoseSecretIdentity as Rt, computeParameterTaint as S, DynamicReferenceRegionAmbiguousError as Sa, AssetManifestLoader as Si, hasReadableResources as Sn, scrubResourceRecord as Sr, isWaitAbandonedError as St, resourcesNamingDeclaredParameter as T, LocalStartServiceError as Ta, synthesisStatusMessage as Ti, malformedExportSourceWarning as Tn, rebuildClientForBucketRegion as Tr, deleteIndeterminateGuards as Tt, coerceWarmThroughput as U, isThrottlingError as Ua, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as Ui, refuseMalformedResourceEntries as Un, shouldRetainResource as Ur, resolveExplicitPhysicalId as Ut, renderStatefulReason as V, isMarkedNonRetryable as Va, findLargeInlineResources as Vi, refuseMalformedOutputs as Vn, orphansAfterRollback as Vr, WAFv2WebACLProvider as Vt, isWarmThroughputDecrease as W, isTransientServerError as Wa, injectiveKey as Wi, refuseMalformedResourcePropertiesForOrphan as Wn, AssetPublisher as Wr, assertRegionMatch as Wt, gray as X, __exportAll as Xa, PARTITION_TABLE as Xi, repairMalformedResourcePropertiesForReadOnly as Xn, rewriteTemplateAssetReferences as Xr, readConfigString as Xt, cyan as Y, safeStringify$1 as Ya, expectedOwnerParam as Yi, repairMalformedResourceEntriesForReadOnly as Yn, loadPublishableAssetManifest as Yr, configStringRefusal as Yt, green as Z, canonicalizeRegion as Zi, repairMalformedResourcesForReadOnly as Zn, AssetModeResolver as Zr, replayWarn as Zt, bagHoldsSecretExpression as _, CdkdError as _a, redactDockerArgvValues as _i, UNREADABLE_ORPHANS_CONTAINER_ROW as _n, maskSecretsInError as _r, endCommandInterruptScope as _t, DeploymentEventsStore as a, nullPrototypeRecord as aa, validateAssetBucketName as ai, s3BucketDomainName as an, TemplateParser as ar, secretBearingStateKeyWarning as at, mergeNoChangeOutputs as b, DependencyError as ba, escapeRegExp$1 as bi, hasReadableOrphans as bn, recoverMaskedOutput as br, startInterruptWatch as bt, replayFailedOperations as c, renderAssemblyPathEscape as ca, buildDockerImage as ci, s3BucketWebsiteUrl as cn, STATE_SOURCED_READBACK_RULES as cr, IAMRoleProvider as ct, updatePartialMessage as d, resolveBucketRegion as da, describeDockerExecFailure as di, applyCallerIdentityCredentials as dn, createSecretMasker as dr, ProviderRegistry as dt, failedStageNote as ea, ensureAssetStorage as ei, requireConfigString as en, findActionableSilentDrops as er, collectDeclaredOutputNames as et, updatePartialReason as f, AwsClients as fa, describeDockerFailure as fi, callerEnvCredentials as fn, dynamicReferenceTokens as fr, wouldReturnToSdkProvider as ft, computeImplicitDeleteEdges as g, AssetError as ga, partitionSensitiveEnv as gi, STATE_RESOURCES_MALFORMED as gn, markSameGenerationBag as gr, beginCommandInterruptScope as gt, IMPLICIT_DELETE_DEPENDENCIES as h, setAwsClients as ha, getDockerCmd as hi, INTRINSIC_KEYS as hn, isSingleDynamicReferenceToken as hr, maskerOrIdentity as ht, DeploymentEventsReader as i, hasPlainPrototype$1 as ia, readBootstrapMarkerBody as ii, s3BucketArn as in, DagBuilder as ir, secretBearing as it, isFinalSnapshotError as j, ResourceTimeoutError as ja, resolveSkipPrefix as ji, malformedOutputsWarning as jn, shellQuote as jr, carriesFetchableDynamicReference as jt, ccRoutedFinalSnapshotError as k, PartialFailureError as ka, resolveAutoAssetStorage as ki, malformedOrphansWarning as kn, forceQuitRecoveryClause as kr, IntrinsicFunctionResolver as kt, replayRollback as l, resolveAssemblyPath as la, resolveDockerContextDirectory as li, applyRoleArnIfSet as ln, TEMPLATE_SOURCED_RULES as lr, collectInlinePolicyNamesManagedBySiblings as lt, maskingRetryLogger as m, resetAwsClients as ma, formatDockerLoginError as mi, DiffCalculator as mn, identityKeyFor as mr, maskDeep as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, defineOwnKey as na, isCrossRegionRedirect as ni, producerRegionsFromState as nn, describeTypeWithThrottleRetry as nr, exportAliasCollisionScrubWarning as nt, planFailedOps as o, ownValue as oa, validateContainerRepoName as oi, s3BucketDualStackDomainName as on, STATE_SOURCED_BASELINE_RULES as or, secretSafeKeyDisplay as ot, withResourceDeadline as p, getAwsClients as pa, dockerSpawnEnvWithSensitive as pi, envCredentialsAreAssumedRole as pn, errorCauseChain as pr, createMaskedRetryLogger as pt, formatResourceLine as q, retryClassificationText as qa, producerRecordKey as qi, repairMalformedOrphansForReadOnly as qn, buildAssetRedirectMap as qr, configBooleanRefusal as qt, DeployEngine as r, hasOwnKey as ra, parseBootstrapMarker as ri, withSharedDrainBudget as rn, withRetry as rr, isExportAliasCollision as rt, planRollback as s, absoluteAssemblyPathEscape as sa, buildDenyExternalAccessPolicy as si, s3BucketRegionalDomainName as sn, STATE_SOURCED_CROSS_GENERATION_RULES as sr, getCurrentResourceSecrets as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, processStackMessages as ta, getBootstrapMarkerKey as ti, classifyReplaySecretRegion as tn, findSilentDropProperties as tr, collectPublishedOutputNames as tt, resolveReplacementOldType as u, clearBucketRegionCache as ua, describeDockerCapturedOutput as ui, AWS_CREDENTIAL_ENV_KEYS as un, carriesSecretMask as ur, clearOnUpdateRemoval as ut, isSecretBearingReferenceString as v, ConfigError as va, runDockerForeground as vi, UNREADABLE_RESOURCES_MAP_ROW as vn, maskSecretsInText as vr, interruptWatchListenerCount as vt, reachableDivergentParameters as w, LocalInvokeBuildError as wa, Synthesizer as wi, malformedExportNamesWarning as wn, S3StateBackend as wr, UNSPECIFIED_SKIP_REASON as wt, bindingSkippedOutputs as x, DeployCancelledError as xa, stripControlChars as xi, hasReadableOutputs as xn, redactSecretsForState as xr, CloudControlProvider as xt, keptWholeReasonText as y, CrossAccountSecretRefusalError as ya, runDockerStreaming as yi, displayLogicalId as yn, recordMaskOnlyValue as yr, isInterruptedWaitError as yt, isStatefulRecreateTargetForReplace as z, normalizeAwsError as za, CFN_TEMPLATE_URL_LIMIT as zi, refuseMalformedOrphans as zn, importableOutputs as zr, refStateLookupFromResource as zt };
|
|
48382
|
+
//# sourceMappingURL=deploy-engine-Defy0tTm.js.map
|