@go-to-k/cdkd 0.291.12 → 0.291.14
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-EkJQ0mD9.js} +2 -2
- package/dist/{asg-provider-BTiCRWQZ.js.map → asg-provider-EkJQ0mD9.js.map} +1 -1
- package/dist/cli.js +2 -2
- package/dist/{deploy-engine-CqKbD4yk.js → deploy-engine-WVUZ-Jm8.js} +137 -33
- package/dist/deploy-engine-WVUZ-Jm8.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/{program-BwCSQ51f.js → program-D7aismcf.js} +277 -50
- package/dist/{program-BwCSQ51f.js.map → program-D7aismcf.js.map} +1 -1
- package/dist/{version-CdZXcCGn.js → version-DHj4zq1f.js} +2 -2
- package/dist/{version-CdZXcCGn.js.map → version-DHj4zq1f.js.map} +1 -1
- package/package.json +2 -2
- 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-DHj4zq1f.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-D7aismcf.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-DHj4zq1f.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";
|
|
@@ -3583,7 +3583,7 @@ function collectStackMessages(assemblyDir, artifact) {
|
|
|
3583
3583
|
const merged = { ...artifact.metadata ?? {} };
|
|
3584
3584
|
if (artifact.additionalMetadataFile) {
|
|
3585
3585
|
const resolved = resolveAssemblyPath(assemblyDir, artifact.additionalMetadataFile);
|
|
3586
|
-
if (!resolved.contained) throw new SynthesisError(`Stack metadata file
|
|
3586
|
+
if (!resolved.contained) throw new SynthesisError(`Stack metadata file ${displayAssemblyPath(artifact.additionalMetadataFile)} ${renderAssemblyPathEscape(resolved, assemblyDir)}`);
|
|
3587
3587
|
const metadataPath = resolved.path;
|
|
3588
3588
|
let sideFile;
|
|
3589
3589
|
try {
|
|
@@ -3594,7 +3594,7 @@ function collectStackMessages(assemblyDir, artifact) {
|
|
|
3594
3594
|
merged[path] = [...merged[path] ?? [], ...entries];
|
|
3595
3595
|
}
|
|
3596
3596
|
} catch (error) {
|
|
3597
|
-
throw new SynthesisError(`Failed to read stack metadata file ${
|
|
3597
|
+
throw new SynthesisError(`Failed to read stack metadata file ${displayAssemblyPath(metadataPath)}: ${displaySafe(error instanceof Error ? error.message : String(error))}`, error instanceof Error ? error : void 0);
|
|
3598
3598
|
}
|
|
3599
3599
|
}
|
|
3600
3600
|
const messages = [];
|
|
@@ -3964,7 +3964,7 @@ var AssemblyReader = class {
|
|
|
3964
3964
|
const props = artifact.properties;
|
|
3965
3965
|
if (props?.file) {
|
|
3966
3966
|
const resolved = resolveAssemblyPath(assemblyDir, props.file);
|
|
3967
|
-
if (!resolved.contained) throw new SynthesisError(`Asset manifest artifact '${displaySafe(artifactId)}' has file
|
|
3967
|
+
if (!resolved.contained) throw new SynthesisError(`Asset manifest artifact '${displaySafe(artifactId)}' has file=${displayAssemblyPath(props.file)} which ${renderAssemblyPathEscape(resolved, assemblyDir)}`);
|
|
3968
3968
|
map.set(artifactId, resolved.path);
|
|
3969
3969
|
}
|
|
3970
3970
|
}
|
|
@@ -3979,7 +3979,7 @@ var AssemblyReader = class {
|
|
|
3979
3979
|
const templateFile = props?.templateFile;
|
|
3980
3980
|
if (!templateFile) throw new SynthesisError(`Stack '${displaySafe(stackName)}' has no templateFile property`);
|
|
3981
3981
|
const resolvedTemplate = resolveAssemblyPath(assemblyDir, templateFile);
|
|
3982
|
-
if (!resolvedTemplate.contained) throw new SynthesisError(`Stack '${displaySafe(stackName)}' has templateFile
|
|
3982
|
+
if (!resolvedTemplate.contained) throw new SynthesisError(`Stack '${displaySafe(stackName)}' has templateFile=${displayAssemblyPath(templateFile)} which ${renderAssemblyPathEscape(resolvedTemplate, assemblyDir)}`);
|
|
3983
3983
|
const templatePath = resolvedTemplate.path;
|
|
3984
3984
|
let template;
|
|
3985
3985
|
try {
|
|
@@ -4013,9 +4013,9 @@ var AssemblyReader = class {
|
|
|
4013
4013
|
if (resource?.Type !== "AWS::CloudFormation::Stack") continue;
|
|
4014
4014
|
const assetPath = resource.Metadata?.["aws:asset:path"];
|
|
4015
4015
|
if (typeof assetPath !== "string" || assetPath.length === 0) continue;
|
|
4016
|
-
if (isAbsolute(assetPath) || /^[a-zA-Z]:[\\/]/.test(assetPath) || assetPath.startsWith("\\\\")) throw new SynthesisError(`Stack '${displaySafe(stackName)}' nested-stack '${displaySafe(logicalId)}' has Metadata['aws:asset:path']
|
|
4016
|
+
if (isAbsolute(assetPath) || /^[a-zA-Z]:[\\/]/.test(assetPath) || assetPath.startsWith("\\\\")) throw new SynthesisError(`Stack '${displaySafe(stackName)}' nested-stack '${displaySafe(logicalId)}' has Metadata['aws:asset:path']=${displayAssemblyPath(assetPath)} which is absolute. CDK emits relative asset paths for nested templates; an absolute path indicates the synth output was hand-modified or generated by a non-CDK toolchain. Refusing to load.`);
|
|
4017
4017
|
const resolvedNested = resolveAssemblyPath(assemblyDir, assetPath);
|
|
4018
|
-
if (!resolvedNested.contained) throw new SynthesisError(`Stack '${displaySafe(stackName)}' nested-stack '${displaySafe(logicalId)}' has Metadata['aws:asset:path']
|
|
4018
|
+
if (!resolvedNested.contained) throw new SynthesisError(`Stack '${displaySafe(stackName)}' nested-stack '${displaySafe(logicalId)}' has Metadata['aws:asset:path']=${displayAssemblyPath(assetPath)} which ${renderAssemblyPathEscape(resolvedNested, assemblyDir)}`);
|
|
4019
4019
|
nestedTemplates[logicalId] = resolvedNested.path;
|
|
4020
4020
|
}
|
|
4021
4021
|
return {
|
|
@@ -7452,7 +7452,7 @@ function setsEqual(a, b) {
|
|
|
7452
7452
|
* synth` emits `source.path: "."`, so this costs a legitimate run nothing.
|
|
7453
7453
|
*/
|
|
7454
7454
|
function warnWholeAssemblyAsSource(w) {
|
|
7455
|
-
getLogger().child("assets").warn(`${w.subject} has ${w.field} naming the output directory ITSELF:
|
|
7455
|
+
getLogger().child("assets").warn(`${w.subject} has ${w.field} naming the output directory ITSELF: ${displayAssemblyPath(w.outdir)}. cdkd will ${w.sink} — that is the WHOLE assembly, every template and every staged asset, not one asset directory. No CDK synth emits this, so treat this assembly as untrusted unless you wrote that path yourself.`);
|
|
7456
7456
|
}
|
|
7457
7457
|
/**
|
|
7458
7458
|
* Emit it. Deliberately `warn`, never `throw`: the one producer of this shape
|
|
@@ -7460,7 +7460,7 @@ function warnWholeAssemblyAsSource(w) {
|
|
|
7460
7460
|
* documented CDK CLI flag.
|
|
7461
7461
|
*/
|
|
7462
7462
|
function warnAbsoluteAssetPath(w) {
|
|
7463
|
-
getLogger().child("assets").warn(`${w.subject} has an absolute ${w.field} pointing outside the assembly:
|
|
7463
|
+
getLogger().child("assets").warn(`${w.subject} has an absolute ${w.field} pointing outside the assembly: ${displayAssemblyPath(w.absolute)}` + (w.escape.escape === "symlink" ? ` (through a symbolic link to ${displayAssemblyPath(w.escape.realPath)})` : "") + `. cdkd will ${w.sink}. This is what cdk synth --no-staging emits, and is expected for it; if you did not synthesize with that flag, treat this assembly as untrusted: an absolute source path is honoured as written, so nothing but this line stands between it and that step.`);
|
|
7464
7464
|
}
|
|
7465
7465
|
|
|
7466
7466
|
//#endregion
|
|
@@ -7560,7 +7560,7 @@ function resolveFileAssetSourcePath(manifestDir, asset, opts) {
|
|
|
7560
7560
|
});
|
|
7561
7561
|
return resolved.path;
|
|
7562
7562
|
}
|
|
7563
|
-
if (!resolved.contained) throw new Error(`File asset '${displaySafe(asset.displayName)}' has source.path
|
|
7563
|
+
if (!resolved.contained) throw new Error(`File asset '${displaySafe(asset.displayName)}' has source.path=${displayAssemblyPath(asset.source.path)} which ${renderAssemblyPathEscape(resolved, assetOutdir, "publish it")}`);
|
|
7564
7564
|
return resolved.path;
|
|
7565
7565
|
}
|
|
7566
7566
|
/**
|
|
@@ -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
|
*/
|
|
@@ -9550,7 +9554,7 @@ function resolveDockerContextDirectory(opts) {
|
|
|
9550
9554
|
});
|
|
9551
9555
|
return resolved.path;
|
|
9552
9556
|
}
|
|
9553
|
-
if (!resolved.contained) throw wrapError(`asset source.directory
|
|
9557
|
+
if (!resolved.contained) throw wrapError(`asset source.directory=${displayAssemblyPath(directory)} which ${renderAssemblyPathEscape(resolved, assetOutdir, "build it")}`);
|
|
9554
9558
|
return resolved.path;
|
|
9555
9559
|
}
|
|
9556
9560
|
/** One spelling of the warning subject, so the two arms cannot drift. */
|
|
@@ -9594,7 +9598,7 @@ function assertCdkLocalDockerContextContained(opts) {
|
|
|
9594
9598
|
const bound = tryRealpathNative(assetOutdir) ?? resolve$1(assetOutdir);
|
|
9595
9599
|
const rel = relative(bound, physical);
|
|
9596
9600
|
if (rel === "" || rel !== ".." && !rel.startsWith(`..${sep}`) && !isAbsolute$1(rel)) return;
|
|
9597
|
-
throw wrapError(`asset source.directory
|
|
9601
|
+
throw wrapError(`asset source.directory=${displayAssemblyPath(directory)} which ` + renderAssemblyPathEscape({
|
|
9598
9602
|
contained: false,
|
|
9599
9603
|
escape: "symlink",
|
|
9600
9604
|
path: engineSpelled,
|
|
@@ -9676,7 +9680,7 @@ async function buildDockerImage(asset, cdkOutDir, options) {
|
|
|
9676
9680
|
});
|
|
9677
9681
|
buildArgs.push(".");
|
|
9678
9682
|
warnEscapingBuildKitPaths(source, contextDir, options.assetOutdir ?? cdkOutDir);
|
|
9679
|
-
logger.debug(`${getDockerCmd()} ${redactDockerArgvValues(buildArgs).join(" ")} (cwd=${
|
|
9683
|
+
logger.debug(`${getDockerCmd()} ${redactDockerArgvValues(buildArgs).join(" ")} (cwd=${displayAssemblyPath(contextDir)})`);
|
|
9680
9684
|
try {
|
|
9681
9685
|
await runDockerStreaming(buildArgs, {
|
|
9682
9686
|
cwd: contextDir,
|
|
@@ -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-EkJQ0mD9.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
|
}
|
|
@@ -42745,7 +42810,8 @@ const MIN_SECRET_NEEDLE = 4;
|
|
|
42745
42810
|
* secret verbatim, and the remaining two printed it minus one character.
|
|
42746
42811
|
*
|
|
42747
42812
|
* So the fix is not another arm on the check — it is removing the second and
|
|
42748
|
-
* third string. Everything below happens in
|
|
42813
|
+
* third string. Everything below happens in {@link secretScanHaystacks} space:
|
|
42814
|
+
* one stripped string, and its trim for printing.
|
|
42749
42815
|
*
|
|
42750
42816
|
* THE CLASS IS DERIVED FROM UNICODE CATEGORIES, NOT ENUMERATED. A hand list
|
|
42751
42817
|
* was written first -- both sanitisers' classes plus the four residuals
|
|
@@ -42807,15 +42873,49 @@ const MIN_SECRET_NEEDLE = 4;
|
|
|
42807
42873
|
*/
|
|
42808
42874
|
const SECRET_SCAN_INVISIBLES = /[\p{Cc}\p{Cf}\p{Me}\p{Zl}\p{Zp}\p{Default_Ignorable_Code_Point}]/gu;
|
|
42809
42875
|
/**
|
|
42810
|
-
*
|
|
42811
|
-
*
|
|
42876
|
+
* A possibly-secret-bearing name as PRINTED: {@link secretScanHaystacks}'
|
|
42877
|
+
* untrimmed string, trimmed.
|
|
42812
42878
|
*
|
|
42813
42879
|
* `.trim()` mirrors `displaySafe`, whose trim this replaces on these paths. It
|
|
42814
|
-
*
|
|
42815
|
-
*
|
|
42880
|
+
* shapes the printed text only; a containment test reads both haystacks, since
|
|
42881
|
+
* the trim can remove whitespace that belongs to a recorded secret.
|
|
42816
42882
|
*/
|
|
42817
42883
|
function canonicalForSecretScan(text) {
|
|
42818
|
-
return text
|
|
42884
|
+
return secretScanHaystacks(text)[0];
|
|
42885
|
+
}
|
|
42886
|
+
/**
|
|
42887
|
+
* The two haystacks every containment test on this path reads: `[trimmed,
|
|
42888
|
+
* untrimmed]`, both with the invisible class deleted (issue
|
|
42889
|
+
* [#2890](https://github.com/go-to-k/cdkd/issues/2890)).
|
|
42890
|
+
*
|
|
42891
|
+
* UNTRIMMED, because a recorded secret's own EDGE whitespace (`\p{Zs}`, which
|
|
42892
|
+
* the invisible class keeps) is part of the secret and can sit at the edge of
|
|
42893
|
+
* the key, where the trim removes it: a recorded `' a<ZWSP>bcd'` in the key
|
|
42894
|
+
* `' abcd-x'` matched no arm and printed `abcd-x`. TRIMMED, because the
|
|
42895
|
+
* whole-value arm has to see a key whose edge whitespace is NOT part of the
|
|
42896
|
+
* secret: `' ab '` is the sub-floor secret `ab`, and the untrimmed string does
|
|
42897
|
+
* not equal it. For the embedded arm the trimmed string adds nothing (it is a
|
|
42898
|
+
* substring of the untrimmed one); it is read anyway so the two arms walk one
|
|
42899
|
+
* list.
|
|
42900
|
+
*
|
|
42901
|
+
* WHY THIS PAIR CANNOT SPLIT THE VERDICT FROM THE PRINTED TEXT, the class
|
|
42902
|
+
* issue [#2874](https://github.com/go-to-k/cdkd/issues/2874) found. That bug
|
|
42903
|
+
* was three strings that could each hold a secret the others did not. These
|
|
42904
|
+
* two are one string and a trim of it: the trimmed one is a SUBSTRING of the
|
|
42905
|
+
* untrimmed one, and {@link secretSafeKeyDisplay} masks the UNTRIMMED string
|
|
42906
|
+
* and prints the trim of the result. Every verdict arm implies the canonical
|
|
42907
|
+
* needle occurs in that untrimmed string -- the raw arm too, since deleting
|
|
42908
|
+
* characters from a text containing the plaintext leaves the plaintext's own
|
|
42909
|
+
* deletion contiguous in it. So every occurrence a verdict can see is masked
|
|
42910
|
+
* before the trim, and the trim can only drop mask-free
|
|
42911
|
+
* whitespace from the ends -- it cannot join two characters, so it cannot
|
|
42912
|
+
* create an occurrence either. The post-mask re-test then reads the masked
|
|
42913
|
+
* untrimmed string, whose trimmed haystack IS the printed text, character for
|
|
42914
|
+
* character.
|
|
42915
|
+
*/
|
|
42916
|
+
function secretScanHaystacks(text) {
|
|
42917
|
+
const untrimmed = text.replace(SECRET_SCAN_INVISIBLES, "");
|
|
42918
|
+
return [untrimmed.trim(), untrimmed];
|
|
42819
42919
|
}
|
|
42820
42920
|
/**
|
|
42821
42921
|
* A recorded secret as a NEEDLE in canonical space.
|
|
@@ -42879,12 +42979,12 @@ function canonicalNeedles(secrets) {
|
|
|
42879
42979
|
*/
|
|
42880
42980
|
function secretsPresentIn(text, secrets) {
|
|
42881
42981
|
if (!secrets || secrets.size === 0) return void 0;
|
|
42882
|
-
const
|
|
42982
|
+
const haystacks = secretScanHaystacks(text);
|
|
42883
42983
|
const exposure = /* @__PURE__ */ new Map();
|
|
42884
42984
|
for (const [plaintext, expression] of secrets) {
|
|
42885
42985
|
const needle = canonicalNeedle(plaintext);
|
|
42886
|
-
const canonicalHit = haystack === needle || needle.length >= MIN_SECRET_NEEDLE && haystack.includes(needle);
|
|
42887
|
-
const rawHit =
|
|
42986
|
+
const canonicalHit = haystacks.some((haystack) => haystack === needle || needle.length >= MIN_SECRET_NEEDLE && haystack.includes(needle));
|
|
42987
|
+
const rawHit = plaintext.length >= MIN_SECRET_NEEDLE && text.includes(plaintext);
|
|
42888
42988
|
if (canonicalHit || rawHit) exposure.set(plaintext, expression);
|
|
42889
42989
|
}
|
|
42890
42990
|
return exposure.size > 0 ? exposure : void 0;
|
|
@@ -42981,7 +43081,11 @@ function secretBearingExportNameWarning(outputKey, exportName, exposure, secrets
|
|
|
42981
43081
|
const name = secretSafeKeyDisplay(exportName, corpus, exposure);
|
|
42982
43082
|
const shown = name.kind === "masked" ? `(masked: "${name.text}") ` : "";
|
|
42983
43083
|
const ownerForceMask = /* @__PURE__ */ new Map();
|
|
42984
|
-
|
|
43084
|
+
const ownerHaystacks = secretScanHaystacks(outputKey);
|
|
43085
|
+
for (const [plaintext, expression] of exposure) {
|
|
43086
|
+
const needle = canonicalNeedle(plaintext);
|
|
43087
|
+
if (ownerHaystacks.some((haystack) => haystack === needle) || plaintext.length >= MIN_SECRET_NEEDLE) ownerForceMask.set(plaintext, expression);
|
|
43088
|
+
}
|
|
42985
43089
|
return `Output ${displayTextOrWithheld(secretSafeKeyDisplay(outputKey, corpus, ownerForceMask))} has an Export.Name that resolves to a value containing a secret ${shown}— skipping the export alias. An export name becomes a key in state.json and in the exports index, and redaction rewrites VALUES only, so publishing it would persist the secret in plaintext. Use a non-secret Export.Name.`;
|
|
42986
43090
|
}
|
|
42987
43091
|
/**
|
|
@@ -43004,7 +43108,7 @@ function secretBearingExportNameWarning(outputKey, exportName, exposure, secrets
|
|
|
43004
43108
|
* the class that replaced it and why it is derived rather than enumerated.
|
|
43005
43109
|
*/
|
|
43006
43110
|
function secretSafeKeyDisplay(key, secrets, forceMask) {
|
|
43007
|
-
const shown =
|
|
43111
|
+
const [shown, untrimmed] = secretScanHaystacks(key);
|
|
43008
43112
|
const exposure = stateKeySecretExposure(key, secrets);
|
|
43009
43113
|
const mask = canonicalNeedles(forceMask);
|
|
43010
43114
|
for (const [plaintext, expression] of exposure ?? []) {
|
|
@@ -43015,15 +43119,15 @@ function secretSafeKeyDisplay(key, secrets, forceMask) {
|
|
|
43015
43119
|
kind: "safe",
|
|
43016
43120
|
text: shown
|
|
43017
43121
|
};
|
|
43018
|
-
const masked = maskEveryOccurrence(
|
|
43019
|
-
if (masked ===
|
|
43122
|
+
const masked = maskEveryOccurrence(untrimmed, mask);
|
|
43123
|
+
if (masked === untrimmed) return exposure ? { kind: "withheld" } : {
|
|
43020
43124
|
kind: "safe",
|
|
43021
43125
|
text: shown
|
|
43022
43126
|
};
|
|
43023
43127
|
if (stateKeySecretExposure(masked, secrets)) return { kind: "withheld" };
|
|
43024
43128
|
return {
|
|
43025
43129
|
kind: "masked",
|
|
43026
|
-
text: masked
|
|
43130
|
+
text: canonicalForSecretScan(masked)
|
|
43027
43131
|
};
|
|
43028
43132
|
}
|
|
43029
43133
|
/**
|
|
@@ -51618,5 +51722,5 @@ var DeployEngine = class DeployEngine {
|
|
|
51618
51722
|
};
|
|
51619
51723
|
|
|
51620
51724
|
//#endregion
|
|
51621
|
-
export { yellow as $, isMarkedNonRetryable as $a, injectiveKeyPrefix as $i, repairMalformedResourcePropertiesForReadOnly as $n, AssetModeResolver as $r, requireConfigObject as $t, createPreDeleteFinalSnapshot as A, DependencyError as Aa, AssetManifestLoader as Ai, malformedOutputsRefusalMessage as An, buildForceUnlockCommand as Ar, carriesDynamicReference as At, isStatefulRecreateTargetSync as B, ProvisioningError as Ba, resolveStateBucketWithDefault as Bi, refuseMalformedOrphansForDestroy as Bn, importableOutputKeys as Br, isSettledInstanceState as Bt, namesAnyDeclaredParameter as C, resetAwsClients as Ca, partitionSensitiveEnv as Ci, isReadableResourceEntry as Cn, recoverMaskedOutput as Cr, UNSPECIFIED_SKIP_REASON as Ct, PRE_DELETE_SNAPSHOT_TYPES as D, CdkdError as Da, warnFinchArgvExposure as Di, malformedOrphanRecordsWarning as Dn, S3StateBackend as Dr, disableInstanceApiTermination as Dt, ATOMIC_FINAL_SNAPSHOT_TYPES as E, AssetError as Ea, runDockerStreaming as Ei, malformedLocalOutputsWarning as En, LockManager as Er, isWaitAbandonedError as Et, extractDeploymentEventError as F, LocalStartServiceError as Fa, getLegacyStateBucketName as Fi, malformedResourcesWarning as Fn, DEFAULT_STATE_PREFIX as Fr, isImpossibleEmptyStoredAttribute as Ft, toCfnInteger as G, StateError as Ga, ssmResolvedValueType as Gi, refuseMalformedResourceEntries as Gn, shouldRetainResource as Gr, coerceCfnBoolean as Gt, WARM_THROUGHPUT_MEMBERS as H, ResourceUpdateNotSupportedError as Ha, resolveUseCdkBootstrapAssets as Hi, refuseMalformedOutputs as Hn, isReadableBag as Hr, normalizeAwsTagsToCfn as Ht, makeSiblingClaimReader as I, LockError as Ia, resolveApp as Ii, malformedStateRefusalMessage as In, exportNamesCarriedFrom as Ir, isNamelessDynamicReferenceError as It, bold as J, isCdkdError as Ja, MIGRATE_TMP_PREFIX as Ji, refuseMalformedResourcesForDestroy as Jn, WorkGraph as Jr, configIntegerRefusal as Jt, toFiniteNumber as K, SynthesisError as Ka, CFN_TEMPLATE_BODY_LIMIT as Ki, refuseMalformedResourceEntriesForOrphan as Kn, AssetPublisher as Kr, coerceCfnInteger as Kt, planOrphanAdoption as L, MalformedProducerRecordRefusalError as La, resolveAutoAssetStorage as Li, refuseDivergentRecordRegionForDestroy as Ln, hasReadableExportSet as Lr, isUnboundTemplateParameter as Lt, refusesFinalSnapshot as M, DynamicReferenceRegionAmbiguousError as Ma, Synthesizer as Mi, malformedRenderedContainersWarning as Mn, forceQuitRecoveryClause as Mr, cfnRefValueFromPhysicalId as Mt, unsupportedFinalSnapshotError as N, IntrinsicResolutionRefusalError as Na, synthesisStatusMessage as Ni, malformedResourceEntriesWarning as Nn, formatLockExpiry as Nr, coerceParameterTypedValue as Nt, buildFinalSnapshotIdentifier as O, ConfigError as Oa, escapeRegExp$1 as Oi, malformedOrphansRefusalMessage as On, rebuildClientForBucketRegion as Or, isTerminationProtectionPropagationError as Ot, makeCanonicalizePropertiesFn as P, LocalInvokeBuildError as Pa, getDefaultStateBucketName as Pi, malformedResourcePropertiesWarning as Pn, CUSTOM_RESOURCE_RESPONSE_PREFIX as Pr, getAccountInfo as Pt, red as Q, shellQuote as Qa, injectiveKey as Qi, repairMalformedResourceEntriesForReadOnly as Qn, rewriteTemplateAssetReferences as Qr, requireConfigArray as Qt, MULTI_REGION_RECREATE_BLOCKED_TYPES as R, NestedStackChildDirectDestroyError as Ra, resolveCaptureObservedState as Ri, refuseMalformedNestedChildOutputs as Rn, hasReasonlessBaselineRefusal as Rr, parameterTypeMayLoseSecretIdentity as Rt, computeParameterTaint as S, getAwsClients as Sa, isMalformedEnvKey as Si, hasReadableResources as Sn, recordMaskOnlyValue as Sr, slowCcOperationTimeoutMs as St, resourcesNamingDeclaredParameter as T, setAwsClients as Ta, runDockerForeground as Ti, malformedExportSourceWarning as Tn, scrubResourceRecord as Tr, deleteSkipReason as Tt, coerceWarmThroughput as U, StackHasActiveImportsError as Ua, stateBucketExistenceConfirmed as Ui, refuseMalformedOutputsForDestroy as Un, orphansAfterRollback as Ur, resolveExplicitPhysicalId as Ut, renderStatefulReason as V, ResourceTimeoutError as Va, resolveStateBucketWithDefaultAndSource as Vi, refuseMalformedOrphansForOrphan as Vn, importableOutputs as Vr, WAFv2WebACLProvider as Vt, isWarmThroughputDecrease as W, StackTerminationProtectionError as Wa, warnDeprecatedNoPrefixCliFlag as Wi, refuseMalformedResourceAttributesForOrphan as Wn, orphansCarriedFrom as Wr, assertRegionMatch as Wt, gray as X, withErrorHandling as Xa, uploadCfnTemplate as Xi, repairMalformedOrphansForReadOnly as Xn, createAssetRedirectResolver as Xr, readConfigString as Xt, cyan as Y, normalizeAwsError as Ya, findLargeInlineResources as Yi, refuseMalformedState as Yn, buildAssetRedirectMap as Yr, configStringRefusal as Yt, green as Z, pasteableCommand as Za, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as Zi, repairMalformedOutputsForReadOnly as Zn, loadPublishableAssetManifest as Zr, replayWarn as Zt, bagHoldsSecretExpression as _, renderAssemblyPathEscape as _a, dockerSpawnEnvWithSensitive as _i, UNREADABLE_ORPHANS_CONTAINER_ROW as _n, identityKeyFor as _r, endCommandInterruptScope as _t, DeploymentEventsStore as a, canonicalizeRegion as aa, parseBootstrapMarker as ai, s3BucketDomainName as an, retryClassificationText as ao, describeTypeWithThrottleRetry as ar, secretBearingStateKeyWarning as at, mergeNoChangeOutputs as b, resolveBucketRegion as ba, getDockerCmd as bi, hasReadableOrphans as bn, maskSecretsInError as br, startInterruptWatch as bt, replayFailedOperations as c, failedStageNote as ca, validateContainerRepoName as ci, s3BucketWebsiteUrl as cn, __exportAll as co, TemplateParser as cr, IAMRoleProvider as ct, updatePartialMessage as d, defineOwnKey as da, buildDockerImage as di, applyCallerIdentityCredentials as dn, STATE_SOURCED_READBACK_RULES as dr, ProviderRegistry as dt, producerCoordinateKey as ea, BOOTSTRAP_MARKER_PREFIX as ei, requireConfigString as en, isRetryableTransientError as eo, repairMalformedResourcesForReadOnly as er, collectDeclaredOutputNames as et, updatePartialReason as f, hasOwnKey as fa, resolveDockerContextDirectory as fi, callerEnvCredentials as fn, TEMPLATE_SOURCED_RULES as fr, wouldReturnToSdkProvider as ft, computeImplicitDeleteEdges as g, absoluteAssemblyPathEscape as ga, describeDockerFailure as gi, STATE_RESOURCES_MALFORMED as gn, errorCauseChain as gr, beginCommandInterruptScope as gt, IMPLICIT_DELETE_DEPENDENCIES as h, ownValue as ha, describeDockerExecFailure as hi, INTRINSIC_KEYS as hn, dynamicReferenceTokens as hr, maskerOrIdentity as ht, DeploymentEventsReader as i, PARTITION_TABLE as ia, isCrossRegionRedirect as ii, s3BucketArn as in, markRedactedCause as io, findSilentDropProperties as ir, secretBearing as it, isFinalSnapshotError as j, DeployCancelledError as ja, getDockerImageBySourceHash as ji, malformedOutputsWarning as jn, buildLockContentionMessage as jr, carriesFetchableDynamicReference as jt, ccRoutedFinalSnapshotError as k, CrossAccountSecretRefusalError as ka, stripControlChars as ki, malformedOrphansWarning as kn, UNREPRODUCIBLE_LOCK_CLAUSE as kr, IntrinsicFunctionResolver as kt, replayRollback as l, globMatches as la, buildDenyExternalAccessPolicy as li, applyRoleArnIfSet as ln, STATE_SOURCED_BASELINE_RULES as lr, collectInlinePolicyNamesManagedBySiblings as lt, maskingRetryLogger as m, nullPrototypeRecord as ma, describeDockerCapturedOutput as mi, DiffCalculator as mn, createSecretMasker as mr, maskDeep as mt, DEFAULT_RESOURCE_WARN_AFTER_MS as n, decodeListingKey as na, ensureAssetStorage as ni, producerRegionsFromState as nn, isTransientServerError as no, safeStackName as nr, exportAliasCollisionScrubWarning as nt, planFailedOps as o, derivePartitionAndUrlSuffix as oa, readBootstrapMarkerBody as oi, s3BucketDualStackDomainName as on, describeAwsFailure as oo, withRetry as or, secretSafeKeyDisplay as ot, withResourceDeadline as p, hasPlainPrototype$1 as pa, warnManifestExecutable as pi, envCredentialsAreAssumedRole as pn, carriesSecretMask as pr, createMaskedRetryLogger as pt, formatResourceLine as q, formatError as qa, CFN_TEMPLATE_URL_LIMIT as qi, refuseMalformedResourcePropertiesForOrphan as qn, stringifyValue as qr, configBooleanRefusal as qt, DeployEngine as r, expectedOwnerParam as ra, getBootstrapMarkerKey as ri, withSharedDrainBudget as rn, markNonRetryable as ro, findActionableSilentDrops as rr, isExportAliasCollision as rt, planRollback as s, AssemblyReader as sa, validateAssetBucketName as si, s3BucketRegionalDomainName as sn, safeStringify$1 as so, DagBuilder as sr, getCurrentResourceSecrets as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, producerRecordKey as ta, assertAssetBucketRegion as ti, classifyReplaySecretRegion as tn, isThrottlingError as to, safeRegion as tr, collectPublishedOutputNames as tt, resolveReplacementOldType as u, processStackMessages as ua, assertCdkLocalDockerContextContained as ui, AWS_CREDENTIAL_ENV_KEYS as un, STATE_SOURCED_CROSS_GENERATION_RULES as ur, clearOnUpdateRemoval as ut, isSecretBearingReferenceString as v, resolveAssemblyPath as va, finchSecretArgvRefusal as vi, UNREADABLE_RESOURCES_MAP_ROW as vn, isSingleDynamicReferenceToken as vr, interruptWatchListenerCount as vt, reachableDivergentParameters as w, runWithStackAwsClients as wa, redactDockerArgvValues as wi, malformedExportNamesWarning as wn, redactSecretsForState as wr, deleteIndeterminateGuards as wt, bindingSkippedOutputs as x, AwsClients as xa, isDockerClientEnvKey as xi, hasReadableOutputs as xn, maskSecretsInText as xr, CloudControlProvider as xt, keptWholeReasonText as y, clearBucketRegionCache as ya, formatDockerLoginError as yi, displayLogicalId as yn, markSameGenerationBag as yr, isInterruptedWaitError as yt, isStatefulRecreateTargetForReplace as z, PartialFailureError as za, resolveSkipPrefix as zi, refuseMalformedOrphans as zn, hasUnverifiableParameterRefusal as zr, refStateLookupFromResource as zt };
|
|
51622
|
-
//# sourceMappingURL=deploy-engine-
|
|
51725
|
+
export { yellow as $, normalizeAwsError as $a, uploadCfnTemplate as $i, repairMalformedResourcePropertiesForReadOnly as $n, createAssetRedirectResolver as $r, requireConfigObject as $t, createPreDeleteFinalSnapshot as A, AssetError as Aa, warnFinchArgvExposure as Ai, malformedOutputsRefusalMessage as An, S3StateBackend as Ar, carriesDynamicReference as At, isStatefulRecreateTargetSync as B, LockError as Ba, resolveAutoAssetStorage as Bi, refuseMalformedOrphansForDestroy as Bn, hasReadableExportSet as Br, isSettledInstanceState as Bt, namesAnyDeclaredParameter as C, clearBucketRegionCache as Ca, getDockerCmd as Ci, isReadableResourceEntry as Cn, pathCrossesDottedKey as Cr, UNSPECIFIED_SKIP_REASON as Ct, PRE_DELETE_SNAPSHOT_TYPES as D, resetAwsClients as Da, redactDockerArgvValues as Di, malformedOrphanRecordsWarning as Dn, redactSecretsForState as Dr, disableInstanceApiTermination as Dt, ATOMIC_FINAL_SNAPSHOT_TYPES as E, getAwsClients as Ea, partitionSensitiveEnv as Ei, malformedLocalOutputsWarning as En, recoverMaskedOutput as Er, isWaitAbandonedError as Et, extractDeploymentEventError as F, DeployCancelledError as Fa, Synthesizer as Fi, malformedResourcesWarning as Fn, forceQuitRecoveryClause as Fr, isImpossibleEmptyStoredAttribute as Ft, toCfnInteger as G, ResourceTimeoutError as Ga, resolveUseCdkBootstrapAssets as Gi, refuseMalformedResourceEntries as Gn, isReadableBag as Gr, coerceCfnBoolean as Gt, WARM_THROUGHPUT_MEMBERS as H, NestedStackChildDirectDestroyError as Ha, resolveSkipPrefix as Hi, refuseMalformedOutputs as Hn, hasUnverifiableParameterRefusal as Hr, normalizeAwsTagsToCfn as Ht, makeSiblingClaimReader as I, DynamicReferenceRegionAmbiguousError as Ia, synthesisStatusMessage as Ii, malformedStateRefusalMessage as In, formatLockExpiry as Ir, isNamelessDynamicReferenceError as It, bold as J, StackTerminationProtectionError as Ja, ssmResolvedValueType as Ji, refuseMalformedResourcesForDestroy as Jn, shouldRetainResource as Jr, configIntegerRefusal as Jt, toFiniteNumber as K, ResourceUpdateNotSupportedError as Ka, stateBucketExistenceConfirmed as Ki, refuseMalformedResourceEntriesForOrphan as Kn, orphansAfterRollback as Kr, coerceCfnInteger as Kt, planOrphanAdoption as L, IntrinsicResolutionRefusalError as La, getDefaultStateBucketName as Li, refuseDivergentRecordRegionForDestroy as Ln, CUSTOM_RESOURCE_RESPONSE_PREFIX as Lr, isUnboundTemplateParameter as Lt, refusesFinalSnapshot as M, ConfigError as Ma, stripControlChars as Mi, malformedRenderedContainersWarning as Mn, UNREPRODUCIBLE_LOCK_CLAUSE as Mr, cfnRefValueFromPhysicalId as Mt, unsupportedFinalSnapshotError as N, CrossAccountSecretRefusalError as Na, AssetManifestLoader as Ni, malformedResourceEntriesWarning as Nn, buildForceUnlockCommand as Nr, coerceParameterTypedValue as Nt, buildFinalSnapshotIdentifier as O, runWithStackAwsClients as Oa, runDockerForeground as Oi, malformedOrphansRefusalMessage as On, scrubResourceRecord as Or, isTerminationProtectionPropagationError as Ot, makeCanonicalizePropertiesFn as P, DependencyError as Pa, getDockerImageBySourceHash as Pi, malformedResourcePropertiesWarning as Pn, buildLockContentionMessage as Pr, getAccountInfo as Pt, red as Q, isCdkdError as Qa, findLargeInlineResources as Qi, repairMalformedResourceEntriesForReadOnly as Qn, buildAssetRedirectMap as Qr, requireConfigArray as Qt, MULTI_REGION_RECREATE_BLOCKED_TYPES as R, LocalInvokeBuildError as Ra, getLegacyStateBucketName as Ri, refuseMalformedNestedChildOutputs as Rn, DEFAULT_STATE_PREFIX as Rr, parameterTypeMayLoseSecretIdentity as Rt, computeParameterTaint as S, resolveAssemblyPath as Sa, formatDockerLoginError as Si, hasReadableResources as Sn, maskSecretsInText as Sr, slowCcOperationTimeoutMs as St, resourcesNamingDeclaredParameter as T, AwsClients as Ta, isMalformedEnvKey as Ti, malformedExportSourceWarning as Tn, recordMaskOnlyValuesIn as Tr, deleteSkipReason as Tt, coerceWarmThroughput as U, PartialFailureError as Ua, resolveStateBucketWithDefault as Ui, refuseMalformedOutputsForDestroy as Un, importableOutputKeys as Ur, resolveExplicitPhysicalId as Ut, renderStatefulReason as V, MalformedProducerRecordRefusalError as Va, resolveCaptureObservedState as Vi, refuseMalformedOrphansForOrphan as Vn, hasReasonlessBaselineRefusal as Vr, WAFv2WebACLProvider as Vt, isWarmThroughputDecrease as W, ProvisioningError as Wa, resolveStateBucketWithDefaultAndSource as Wi, refuseMalformedResourceAttributesForOrphan as Wn, importableOutputs as Wr, assertRegionMatch as Wt, gray as X, SynthesisError as Xa, CFN_TEMPLATE_URL_LIMIT as Xi, repairMalformedOrphansForReadOnly as Xn, stringifyValue as Xr, readConfigString as Xt, cyan as Y, StateError as Ya, CFN_TEMPLATE_BODY_LIMIT as Yi, refuseMalformedState as Yn, AssetPublisher as Yr, configStringRefusal as Yt, green as Z, formatError 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, isThrottlingError as ao, describeTypeWithThrottleRetry as ar, secretBearingStateKeyWarning as at, mergeNoChangeOutputs as b, displayAssemblyPath 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, markRedactedCause as co, TemplateParser as cr, IAMRoleProvider as ct, updatePartialMessage as d, failedStageNote as da, validateContainerRepoName as di, applyCallerIdentityCredentials as dn, safeStringify$1 as do, STATE_SOURCED_READBACK_RULES as dr, ProviderRegistry as dt, CUSTOM_RESOURCE_RESPONSE_OBJECT_DESCRIPTION as ea, loadPublishableAssetManifest as ei, requireConfigString as en, withErrorHandling as eo, repairMalformedResourcesForReadOnly as er, collectDeclaredOutputNames as et, updatePartialReason as f, globMatches as fa, buildDenyExternalAccessPolicy as fi, callerEnvCredentials as fn, __exportAll as fo, 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, isRetryableTransientError as io, findSilentDropProperties as ir, secretBearing as it, isFinalSnapshotError as j, CdkdError as ja, escapeRegExp$1 as ji, malformedOutputsWarning as jn, rebuildClientForBucketRegion as jr, carriesFetchableDynamicReference as jt, ccRoutedFinalSnapshotError as k, setAwsClients 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, retryClassificationText 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, shellQuote as no, safeStackName as nr, exportAliasCollisionScrubWarning as nt, planFailedOps as o, expectedOwnerParam as oa, getBootstrapMarkerKey as oi, s3BucketDualStackDomainName as on, isTransientServerError 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, StackHasActiveImportsError 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, isMarkedNonRetryable as ro, findActionableSilentDrops as rr, isExportAliasCollision as rt, planRollback as s, PARTITION_TABLE as sa, isCrossRegionRedirect as si, s3BucketRegionalDomainName as sn, markNonRetryable as so, DagBuilder as sr, getCurrentResourceSecrets as st, DEFAULT_RESOURCE_TIMEOUT_MS as t, injectiveKey as ta, rewriteTemplateAssetReferences as ti, classifyReplaySecretRegion as tn, pasteableCommand as to, safeRegion as tr, collectPublishedOutputNames as tt, resolveReplacementOldType as u, AssemblyReader as ua, validateAssetBucketName as ui, AWS_CREDENTIAL_ENV_KEYS as un, describeAwsFailure 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, resolveBucketRegion as wa, isDockerClientEnvKey as wi, malformedExportNamesWarning as wn, recordMaskOnlyValue as wr, deleteIndeterminateGuards as wt, bindingSkippedOutputs as x, renderAssemblyPathEscape 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, LocalStartServiceError as za, resolveApp as zi, refuseMalformedOrphans as zn, exportNamesCarriedFrom as zr, refStateLookupFromResource as zt };
|
|
51726
|
+
//# sourceMappingURL=deploy-engine-WVUZ-Jm8.js.map
|