@prisma/composer 0.25.0-dev.5 → 0.26.0-dev.1
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/{app-config-Cay7dFv5-CMlgGodQ.d.mts → app-config-DyCMnkDr-CguUhanl.d.mts} +3 -3
- package/dist/{app-config-Cay7dFv5-CMlgGodQ.d.mts.map → app-config-DyCMnkDr-CguUhanl.d.mts.map} +1 -1
- package/dist/config-i9yR7YWi.d.mts +1 -0
- package/dist/config.d.mts +2 -2
- package/dist/control.d.mts +37 -38
- package/dist/control.d.mts.map +1 -1
- package/dist/control.mjs +8 -40
- package/dist/control.mjs.map +1 -1
- package/dist/deploy-i9yR7YWi.d.mts +1 -0
- package/dist/deploy.d.mts +2 -2
- package/dist/{deployment-summary-BtvC7Z73-BJr-5tXY.mjs → deployment-summary-37e6WEuh-BOTJynIi.mjs} +2 -2
- package/dist/{deployment-summary-BtvC7Z73-BJr-5tXY.mjs.map → deployment-summary-37e6WEuh-BOTJynIi.mjs.map} +1 -1
- package/dist/{deployment-summary-CU-eVvJM-Cu9hKMdz.d.mts → deployment-summary-CU-eVvJM-c3AqO52N.d.mts} +3 -3
- package/dist/{deployment-summary-CU-eVvJM-Cu9hKMdz.d.mts.map → deployment-summary-CU-eVvJM-c3AqO52N.d.mts.map} +1 -1
- package/dist/{result-B1SzJJoE.mjs → dev-Bmq-eLnv-DsenQNJM.mjs} +63 -31
- package/dist/dev-Bmq-eLnv-DsenQNJM.mjs.map +1 -0
- package/dist/{execute-deploy-destroy-CF6DR7sA-pf8yhNfp.mjs → execute-deploy-destroy-c0eko3AO-BoK0-r1U.mjs} +8 -10
- package/dist/execute-deploy-destroy-c0eko3AO-BoK0-r1U.mjs.map +1 -0
- package/dist/{execute-dev-DAIUT0es-B3iBKmAS.mjs → execute-dev-BICPaq1g-DQccw8kr.mjs} +7 -7
- package/dist/execute-dev-BICPaq1g-DQccw8kr.mjs.map +1 -0
- package/dist/{execute-log-PLs9-Qn3-BvONZ358.mjs → execute-log-DivzSDBL-CBdSN2Vv.mjs} +4 -4
- package/dist/execute-log-DivzSDBL-CBdSN2Vv.mjs.map +1 -0
- package/dist/local-target.d.mts +1 -1
- package/dist/nextjs-control.d.mts +3 -3
- package/dist/node-control.d.mts +3 -3
- package/dist/{pipeline-DAYhea3J-B6PQu2QB.mjs → pipeline-DYvl561J-DDtnkFPh.mjs} +50 -52
- package/dist/pipeline-DYvl561J-DDtnkFPh.mjs.map +1 -0
- package/dist/report.d.mts +3 -3
- package/dist/report.mjs +1 -1
- package/dist/report.mjs.map +1 -1
- package/dist/{run-alchemy-pANK8XNX-CgCpXLkG.mjs → run-alchemy-BEvB2sYQ-Cy2fhbcu.mjs} +2 -2
- package/dist/{run-alchemy-pANK8XNX-CgCpXLkG.mjs.map → run-alchemy-BEvB2sYQ-Cy2fhbcu.mjs.map} +1 -1
- package/package.json +11 -11
- package/skills/prisma-composer-core-concepts/SKILL.md +48 -28
- package/src/exports/testing.ts +1 -1
- package/dist/config-CE3fmcF9.d.mts +0 -1
- package/dist/deploy-CE3fmcF9.d.mts +0 -1
- package/dist/execute-deploy-destroy-CF6DR7sA-pf8yhNfp.mjs.map +0 -1
- package/dist/execute-dev-DAIUT0es-B3iBKmAS.mjs.map +0 -1
- package/dist/execute-log-PLs9-Qn3-BvONZ358.mjs.map +0 -1
- package/dist/pipeline-DAYhea3J-B6PQu2QB.mjs.map +0 -1
- package/dist/result-B1SzJJoE.mjs.map +0 -1
|
@@ -5,7 +5,7 @@ import { Input, StackServices } from "alchemy";
|
|
|
5
5
|
import * as Effect from "effect/Effect";
|
|
6
6
|
import * as Layer from "effect/Layer";
|
|
7
7
|
import { State } from "alchemy/State/State";
|
|
8
|
-
//#region ../../0-framework/1-core/core/dist/app-config-
|
|
8
|
+
//#region ../../0-framework/1-core/core/dist/app-config-DyCMnkDr.d.mts
|
|
9
9
|
//#region src/container-transport.d.ts
|
|
10
10
|
/**
|
|
11
11
|
* Carries resolved containers from the CLI process into the alchemy process
|
|
@@ -280,7 +280,7 @@ interface Bundle {
|
|
|
280
280
|
readonly entry: string;
|
|
281
281
|
/**
|
|
282
282
|
* Absolute paths to the USER-BUILT inputs this bundle was assembled from
|
|
283
|
-
* (ADR-0041). `prisma
|
|
283
|
+
* (ADR-0041). `prisma dev`'s watch loop watches exactly these — a
|
|
284
284
|
* file entry as a file, a directory entry recursively — and re-runs
|
|
285
285
|
* assemble on a change. Optional so a build adapter that predates this
|
|
286
286
|
* field still compiles; a bundle without it is simply not watched.
|
|
@@ -637,4 +637,4 @@ interface PrismaAppConfig {
|
|
|
637
637
|
declare function defineConfig(config: PrismaAppConfig): PrismaAppConfig;
|
|
638
638
|
//#endregion
|
|
639
639
|
export { readPreflightPayload as $, PrismaAppConfig as A, TeardownInput as B, LoweredResult as C, PackageInput as D, Outputs as E, ReporterDescriptor as F, deserializeContainers as G, containerEnv as H, RunOutcome as I, lower as J, isBuildOnlyExtension as K, RunReporter as L, ProvisionerDescriptor as M, ReportAttachInput as N, PreflightInput as O, ReportBeginInput as P, preflightEnvVarName as Q, ServiceLowering as R, LowerOptions as S, NodeDescriptor as T, containerEnvVarName as U, buildConfig as V, defineConfig as W, mergedProviders as X, lowering as Y, preflightEnv as Z, LocalTargetEmulatorsInput as _, Bundle as a, LowerContext as b, ContainerInstance as c, DeployedNode as d, resolveStateLayer as et, DeploymentResult as f, LocalTargetDescriptor as g, LocalTargetAttachment as h, AssembleInput as i, ProvisionEdge as j, PreflightPayload as k, DEV_DIR as l, LocalTargetAttachInput as m, ApplicationDescriptor as n, ContainerCredentials as o, ExtensionDescriptor as p, joinDeployment as q, Artifact as r, ContainerDescriptor as s, AlchemyStateLayer as t, DeployedEntity as u, LocalTargetProvidersInput as v, Lowering as w, LowerError as x, LocateContainerInput as y, StateDescriptor as z };
|
|
640
|
-
//# sourceMappingURL=app-config-
|
|
640
|
+
//# sourceMappingURL=app-config-DyCMnkDr-CguUhanl.d.mts.map
|
package/dist/{app-config-Cay7dFv5-CMlgGodQ.d.mts.map → app-config-DyCMnkDr-CguUhanl.d.mts.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-config-
|
|
1
|
+
{"version":3,"file":"app-config-DyCMnkDr-CguUhanl.d.mts","names":[],"sources":["../../../0-framework/1-core/core/dist/app-config-DyCMnkDr.d.mts"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./app-config-DyCMnkDr-CguUhanl.mjs";
|
package/dist/config.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { $ as readPreflightPayload, A as PrismaAppConfig, B as TeardownInput, F as ReporterDescriptor, G as deserializeContainers, H as containerEnv, I as RunOutcome, K as isBuildOnlyExtension, L as RunReporter, N as ReportAttachInput, O as PreflightInput, P as ReportBeginInput, Q as preflightEnvVarName, T as NodeDescriptor, U as containerEnvVarName, W as defineConfig, Z as preflightEnv, _ as LocalTargetEmulatorsInput, c as ContainerInstance, g as LocalTargetDescriptor, h as LocalTargetAttachment, k as PreflightPayload, l as DEV_DIR, m as LocalTargetAttachInput, o as ContainerCredentials, p as ExtensionDescriptor, s as ContainerDescriptor, u as DeployedEntity, v as LocalTargetProvidersInput, y as LocateContainerInput, z as StateDescriptor } from "./app-config-
|
|
2
|
-
import "./config-
|
|
1
|
+
import { $ as readPreflightPayload, A as PrismaAppConfig, B as TeardownInput, F as ReporterDescriptor, G as deserializeContainers, H as containerEnv, I as RunOutcome, K as isBuildOnlyExtension, L as RunReporter, N as ReportAttachInput, O as PreflightInput, P as ReportBeginInput, Q as preflightEnvVarName, T as NodeDescriptor, U as containerEnvVarName, W as defineConfig, Z as preflightEnv, _ as LocalTargetEmulatorsInput, c as ContainerInstance, g as LocalTargetDescriptor, h as LocalTargetAttachment, k as PreflightPayload, l as DEV_DIR, m as LocalTargetAttachInput, o as ContainerCredentials, p as ExtensionDescriptor, s as ContainerDescriptor, u as DeployedEntity, v as LocalTargetProvidersInput, y as LocateContainerInput, z as StateDescriptor } from "./app-config-DyCMnkDr-CguUhanl.mjs";
|
|
2
|
+
import "./config-i9yR7YWi.mjs";
|
|
3
3
|
export { type ContainerCredentials, type ContainerDescriptor, type ContainerInstance, DEV_DIR, type DeployedEntity, ExtensionDescriptor, LocalTargetAttachInput, LocalTargetAttachment, LocalTargetDescriptor, LocalTargetEmulatorsInput, LocalTargetProvidersInput, type LocateContainerInput, NodeDescriptor, PreflightInput, type PreflightPayload, PrismaAppConfig, ReportAttachInput, ReportBeginInput, ReporterDescriptor, RunOutcome, RunReporter, StateDescriptor, TeardownInput, containerEnv, containerEnvVarName, defineConfig, deserializeContainers, isBuildOnlyExtension, preflightEnv, preflightEnvVarName, readPreflightPayload };
|
package/dist/control.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { ht as CliStructuredError } from "./graph-types-BTTaRnih-BF6PobQ3.mjs";
|
|
2
|
-
import { A as PrismaAppConfig } from "./app-config-
|
|
3
|
-
import "./config-
|
|
4
|
-
import "./deploy-
|
|
5
|
-
import { n as DeploymentSummary, t as DeployedNodeSummary } from "./deployment-summary-CU-eVvJM-
|
|
2
|
+
import { A as PrismaAppConfig } from "./app-config-DyCMnkDr-CguUhanl.mjs";
|
|
3
|
+
import "./config-i9yR7YWi.mjs";
|
|
4
|
+
import "./deploy-i9yR7YWi.mjs";
|
|
5
|
+
import { n as DeploymentSummary, t as DeployedNodeSummary } from "./deployment-summary-CU-eVvJM-c3AqO52N.mjs";
|
|
6
6
|
import "./index-DeocL1di.mjs";
|
|
7
7
|
//#region ../../0-framework/0-foundation/foundation/dist/result.d.mts
|
|
8
8
|
//#region src/result.d.ts
|
|
@@ -32,7 +32,7 @@ interface NotOk<F> {
|
|
|
32
32
|
*/
|
|
33
33
|
type Result<T, F> = Ok<T> | NotOk<F>;
|
|
34
34
|
//#endregion
|
|
35
|
-
//#region ../../0-framework/3-tooling/cli/dist/
|
|
35
|
+
//#region ../../0-framework/3-tooling/cli/dist/dev-CpevhBSn.d.mts
|
|
36
36
|
//#region src/composer-config.d.ts
|
|
37
37
|
/** Composer's configuration and the `prisma.config.ts` that declares it. */
|
|
38
38
|
interface ComposerConfigSource {
|
|
@@ -81,7 +81,7 @@ interface DeployInput {
|
|
|
81
81
|
* Composer's configuration: the `composer` section of `prisma.config.ts` and that file. The operation does not look for a config file; it refuses a section the CLI would refuse, before any work starts.
|
|
82
82
|
*/
|
|
83
83
|
readonly config: ComposerConfigSource;
|
|
84
|
-
/** Path to the entry module, resolved against `cwd` — same contract as `prisma
|
|
84
|
+
/** Path to the entry module, resolved against `cwd` — same contract as `prisma deploy <entry>`. */
|
|
85
85
|
readonly entry: string;
|
|
86
86
|
/** Override the root node's name (the `--name` flag's slot). */
|
|
87
87
|
readonly name?: string | undefined;
|
|
@@ -111,34 +111,6 @@ interface DeploySuccess {
|
|
|
111
111
|
}
|
|
112
112
|
declare function deploy(input: DeployInput): Promise<Result<DeploySuccess, CliStructuredError>>;
|
|
113
113
|
//#endregion
|
|
114
|
-
//#region src/operations/destroy.d.ts
|
|
115
|
-
/** Destroy must name its target explicitly — no silent default to production. Encoded, not re-derived from flags. */
|
|
116
|
-
type DestroyTarget = {
|
|
117
|
-
readonly kind: 'production';
|
|
118
|
-
} | {
|
|
119
|
-
readonly kind: 'stage';
|
|
120
|
-
readonly stage: string;
|
|
121
|
-
};
|
|
122
|
-
type DestroyEvent =
|
|
123
|
-
/** Emitted before the pipeline when `<cwd>/.alchemy` is missing/empty. */
|
|
124
|
-
{
|
|
125
|
-
readonly kind: 'no-local-deploy-state';
|
|
126
|
-
readonly cwd: string;
|
|
127
|
-
};
|
|
128
|
-
interface DestroyInput {
|
|
129
|
-
/**
|
|
130
|
-
* Composer's configuration: the `composer` section of `prisma.config.ts` and that file. The operation does not look for a config file; it refuses a section the CLI would refuse, before any work starts.
|
|
131
|
-
*/
|
|
132
|
-
readonly config: ComposerConfigSource;
|
|
133
|
-
readonly entry: string;
|
|
134
|
-
readonly name?: string | undefined;
|
|
135
|
-
readonly target: DestroyTarget;
|
|
136
|
-
readonly cwd?: string | undefined;
|
|
137
|
-
/** Mid-operation notifications, in real time. Rendering is the host's. */
|
|
138
|
-
readonly onEvent?: ((event: DestroyEvent) => void) | undefined;
|
|
139
|
-
}
|
|
140
|
-
declare function destroy(input: DestroyInput): Promise<Result<void, CliStructuredError>>;
|
|
141
|
-
//#endregion
|
|
142
114
|
//#region src/operations/dev.d.ts
|
|
143
115
|
type DevEvent =
|
|
144
116
|
/** Initial front door + after each successful re-converge. */
|
|
@@ -203,6 +175,35 @@ interface DevSession {
|
|
|
203
175
|
}
|
|
204
176
|
declare function dev(input: DevInput): Promise<Result<DevSession, CliStructuredError>>;
|
|
205
177
|
//#endregion
|
|
178
|
+
//#region ../../0-framework/3-tooling/cli/dist/control.d.mts
|
|
179
|
+
//#region src/operations/destroy.d.ts
|
|
180
|
+
/** Destroy must name its target explicitly — no silent default to production. Encoded, not re-derived from flags. */
|
|
181
|
+
type DestroyTarget = {
|
|
182
|
+
readonly kind: 'production';
|
|
183
|
+
} | {
|
|
184
|
+
readonly kind: 'stage';
|
|
185
|
+
readonly stage: string;
|
|
186
|
+
};
|
|
187
|
+
type DestroyEvent =
|
|
188
|
+
/** Emitted before the pipeline when `<cwd>/.alchemy` is missing/empty. */
|
|
189
|
+
{
|
|
190
|
+
readonly kind: 'no-local-deploy-state';
|
|
191
|
+
readonly cwd: string;
|
|
192
|
+
};
|
|
193
|
+
interface DestroyInput {
|
|
194
|
+
/**
|
|
195
|
+
* Composer's configuration: the `composer` section of `prisma.config.ts` and that file. The operation does not look for a config file; it refuses a section the CLI would refuse, before any work starts.
|
|
196
|
+
*/
|
|
197
|
+
readonly config: ComposerConfigSource;
|
|
198
|
+
readonly entry: string;
|
|
199
|
+
readonly name?: string | undefined;
|
|
200
|
+
readonly target: DestroyTarget;
|
|
201
|
+
readonly cwd?: string | undefined;
|
|
202
|
+
/** Mid-operation notifications, in real time. Rendering is the host's. */
|
|
203
|
+
readonly onEvent?: ((event: DestroyEvent) => void) | undefined;
|
|
204
|
+
}
|
|
205
|
+
declare function destroy(input: DestroyInput): Promise<Result<void, CliStructuredError>>;
|
|
206
|
+
//#endregion
|
|
206
207
|
//#region src/operations/log.d.ts
|
|
207
208
|
interface LogLine {
|
|
208
209
|
readonly service: string;
|
|
@@ -230,8 +231,7 @@ interface LogInput {
|
|
|
230
231
|
readonly name?: string | undefined;
|
|
231
232
|
/** Restrict to one service's dotted address; validated against running services. */
|
|
232
233
|
readonly address?: string | undefined;
|
|
233
|
-
/** Trailing history lines before live output. Defaults to 0 (live only)
|
|
234
|
-
* the attachment contract's default; the CLI's user-facing default of 20 stays in main.ts. */
|
|
234
|
+
/** Trailing history lines before live output. Defaults to 0 (live only). */
|
|
235
235
|
readonly tail?: number | undefined;
|
|
236
236
|
readonly cwd?: string | undefined;
|
|
237
237
|
/** Ends the stream when aborted. The host owns SIGINT/SIGTERM → abort. */
|
|
@@ -239,7 +239,7 @@ interface LogInput {
|
|
|
239
239
|
readonly onEvent?: ((event: LogEvent) => void) | undefined;
|
|
240
240
|
}
|
|
241
241
|
interface LogAttached {
|
|
242
|
-
/**
|
|
242
|
+
/** The app's name, for a caller's empty-services notice. */
|
|
243
243
|
readonly appName: string;
|
|
244
244
|
/** Every running service. EMPTY means nothing is running — a valid, non-failure state;
|
|
245
245
|
* `lines` is then an already-finished iterable. */
|
|
@@ -249,7 +249,6 @@ interface LogAttached {
|
|
|
249
249
|
}
|
|
250
250
|
declare function log(input: LogInput): Promise<Result<LogAttached, CliStructuredError>>;
|
|
251
251
|
//#endregion
|
|
252
|
-
//#region ../../0-framework/3-tooling/cli/dist/control.d.mts
|
|
253
252
|
//#region src/run-report.d.ts
|
|
254
253
|
/** Bump when a change would break a consumer that reads the current shape. */
|
|
255
254
|
declare const RUN_REPORT_VERSION = 1;
|
package/dist/control.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.d.mts","names":[],"sources":["../../../0-framework/0-foundation/foundation/dist/result.d.mts","../../../0-framework/3-tooling/cli/dist/
|
|
1
|
+
{"version":3,"file":"control.d.mts","names":[],"sources":["../../../0-framework/0-foundation/foundation/dist/result.d.mts","../../../0-framework/3-tooling/cli/dist/dev-CpevhBSn.d.mts","../../../0-framework/3-tooling/cli/dist/control.d.mts"],"mappings":";;;;;;;;;;;UAIU,GAAG;WACF;WACA,OAAO;EAChB,YAAY;EACZ;;;;;UAKQ,MAAM;WACL;WACA,SAAS;EAClB;EACA,eAAe;;;;;;;;KAQZ,OAAO,GAAG,KAAK,GAAG,KAAK,MAAM;;;;;UCjBxB;;WAEC,OAAO;;WAEP;;;;;;UAmED;WACC;WACA;;;;;;;;;;UA0CD;;;WAGC;;;;WAIA;WACA;WACA;WACA;;;;;;iBAMM,qBAAqB,GAAG,qBAAqB;;;UAGpD;;;;WAIC,QAAQ;;WAER;;WAEA;;WAEA;;WAEA;;;;;;;WAOA;;;;;;;WAOA;;UAED;;;WAGC,SAAS;;iBAEH,OAAO,OAAO,cAAc,QAAQ,OAAO,eAAe;;;KAOtE;;;WAGM;WACA,oBAAoB;;WAEpB;WACA;;WAEA;WACA;;;;WAIA;WACA;;;;WAIA;WACA;;;;WAIA;WACA;WACA;WACA;;WAEA;;;;WAIA;WACA;;WAEA;;UAED;;;;WAIC,QAAQ;WACR;WACA;WACA;WACA;WACA,YAAY,OAAO;;;;;UAKpB;;WAEC,oBAAoB;;;EAG7B,QAAQ;;WAEC,QAAQ;;iBAEF,IAAI,OAAO,WAAW,QAAQ,OAAO,YAAY;;;;;KC1O7D;WACM;;WAEA;WACA;;KAEN;;;WAGM;WACA;;UAED;;;;WAIC,QAAQ;WACR;WACA;WACA,QAAQ;WACR;;WAEA,YAAY,OAAO;;iBAEb,QAAQ,OAAO,eAAe,QAAQ,aAAe;;;UAG5D;WACC;WACA;;KAEN;;;WAGM;WACA;;;;;WAKA;WACA;;UAED;;;;;WAKC,QAAQ;WACR;WACA;;WAEA;;WAEA;WACA;;WAEA,SAAS;WACT,YAAY,OAAO;;UAEpB;;WAEC;;;WAGA,mBAAmB;;WAEnB,OAAO,cAAc;;iBAEf,IAAI,OAAO,WAAW,QAAQ,OAAS,aAAa;;;;cAIvD;;cAEA;UACJ;;WAEC;WACA;;;;;;;UAOD;WACC;WACA;;WAEA;;WAEA;WACA,gBAAgB;WAChB,SAAS"}
|
package/dist/control.mjs
CHANGED
|
@@ -1,65 +1,33 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { i as executorLoadFailure, n as dev, o as notOk, r as executionDiagnostics, t as deploy } from "./dev-Bmq-eLnv-DsenQNJM.mjs";
|
|
2
2
|
import { n as RUN_REPORT_VERSION, t as RUN_REPORT_FILE_ENV } from "./run-report-C2o98uD--AX8kpz4Q.mjs";
|
|
3
|
-
//#region ../../0-framework/3-tooling/cli/dist/
|
|
4
|
-
async function deploy(input) {
|
|
5
|
-
return deployWithDeps(input, {});
|
|
6
|
-
}
|
|
7
|
-
/** In-package variant threading the injection seam (the CLI's RunDeps, unit
|
|
8
|
-
* tests). Deliberately NOT re-exported through `./control` — the seam mirrors
|
|
9
|
-
* internal types and is not part of the published surface. */
|
|
10
|
-
async function deployWithDeps(input, deps) {
|
|
11
|
-
const cwd = input.cwd ?? process.cwd();
|
|
12
|
-
let executor;
|
|
13
|
-
try {
|
|
14
|
-
executor = await import("./execute-deploy-destroy-CF6DR7sA-pf8yhNfp.mjs");
|
|
15
|
-
} catch (error) {
|
|
16
|
-
return notOk(executorLoadFailure("deploy", error));
|
|
17
|
-
}
|
|
18
|
-
return executor.executeDeploy(input, deps, cwd);
|
|
19
|
-
}
|
|
3
|
+
//#region ../../0-framework/3-tooling/cli/dist/control.mjs
|
|
20
4
|
async function destroy(input) {
|
|
21
5
|
return destroyWithDeps(input, {});
|
|
22
6
|
}
|
|
23
|
-
/** In-package variant threading the injection seam
|
|
24
|
-
*
|
|
7
|
+
/** In-package variant threading the injection seam, for the unit tests.
|
|
8
|
+
* Deliberately NOT re-exported through `./control` — the seam mirrors
|
|
25
9
|
* internal types and is not part of the published surface. */
|
|
26
10
|
async function destroyWithDeps(input, deps) {
|
|
27
11
|
const cwd = input.cwd ?? process.cwd();
|
|
28
12
|
let executor;
|
|
29
13
|
try {
|
|
30
|
-
executor = await import("./execute-deploy-destroy-
|
|
14
|
+
executor = await import("./execute-deploy-destroy-c0eko3AO-BoK0-r1U.mjs");
|
|
31
15
|
} catch (error) {
|
|
32
16
|
return notOk(executorLoadFailure("destroy", error));
|
|
33
17
|
}
|
|
34
18
|
return executor.executeDestroy(input, deps, cwd);
|
|
35
19
|
}
|
|
36
|
-
async function dev(input) {
|
|
37
|
-
return devWithDeps(input, {});
|
|
38
|
-
}
|
|
39
|
-
/** In-package variant threading the injection seam (the CLI's RunDeps, unit
|
|
40
|
-
* tests). Deliberately NOT re-exported through `./control` — the seam mirrors
|
|
41
|
-
* internal types and is not part of the published surface. */
|
|
42
|
-
async function devWithDeps(input, deps) {
|
|
43
|
-
const cwd = input.cwd ?? process.cwd();
|
|
44
|
-
let executor;
|
|
45
|
-
try {
|
|
46
|
-
executor = await import("./execute-dev-DAIUT0es-B3iBKmAS.mjs");
|
|
47
|
-
} catch (error) {
|
|
48
|
-
return notOk(executorLoadFailure("dev", error));
|
|
49
|
-
}
|
|
50
|
-
return executor.executeDev(input, deps, cwd);
|
|
51
|
-
}
|
|
52
20
|
async function log(input) {
|
|
53
21
|
return logWithDeps(input, {});
|
|
54
22
|
}
|
|
55
|
-
/** In-package variant threading the injection seam
|
|
56
|
-
*
|
|
23
|
+
/** In-package variant threading the injection seam, for the unit tests.
|
|
24
|
+
* Deliberately NOT re-exported through `./control` — the seam
|
|
57
25
|
* mirrors internal types and is not part of the published surface. */
|
|
58
26
|
async function logWithDeps(input, deps) {
|
|
59
27
|
const cwd = input.cwd ?? process.cwd();
|
|
60
28
|
let executor;
|
|
61
29
|
try {
|
|
62
|
-
executor = await import("./execute-log-
|
|
30
|
+
executor = await import("./execute-log-DivzSDBL-CBdSN2Vv.mjs");
|
|
63
31
|
} catch (error) {
|
|
64
32
|
return notOk(executorLoadFailure("log", error));
|
|
65
33
|
}
|
package/dist/control.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.mjs","names":[],"sources":["../../../0-framework/3-tooling/cli/dist/
|
|
1
|
+
{"version":3,"file":"control.mjs","names":[],"sources":["../../../0-framework/3-tooling/cli/dist/control.mjs"],"sourcesContent":["import { a as executionDiagnostics, o as executorLoadFailure, r as deploy, t as dev } from \"./dev-Bmq-eLnv.mjs\";\nimport { n as RUN_REPORT_VERSION, t as RUN_REPORT_FILE_ENV } from \"./run-report-C2o98uD-.mjs\";\nimport { notOk } from \"@internal/foundation/result\";\n//#region src/operations/destroy.ts\nasync function destroy(input) {\n\treturn destroyWithDeps(input, {});\n}\n/** In-package variant threading the injection seam, for the unit tests.\n* Deliberately NOT re-exported through `./control` — the seam mirrors\n* internal types and is not part of the published surface. */\nasync function destroyWithDeps(input, deps) {\n\tconst cwd = input.cwd ?? process.cwd();\n\tlet executor;\n\ttry {\n\t\texecutor = await import(\"./execute-deploy-destroy-c0eko3AO.mjs\");\n\t} catch (error) {\n\t\treturn notOk(executorLoadFailure(\"destroy\", error));\n\t}\n\treturn executor.executeDestroy(input, deps, cwd);\n}\n//#endregion\n//#region src/operations/log.ts\nasync function log(input) {\n\treturn logWithDeps(input, {});\n}\n/** In-package variant threading the injection seam, for the unit tests.\n* Deliberately NOT re-exported through `./control` — the seam\n* mirrors internal types and is not part of the published surface. */\nasync function logWithDeps(input, deps) {\n\tconst cwd = input.cwd ?? process.cwd();\n\tlet executor;\n\ttry {\n\t\texecutor = await import(\"./execute-log-DivzSDBL.mjs\");\n\t} catch (error) {\n\t\treturn notOk(executorLoadFailure(\"log\", error));\n\t}\n\treturn executor.executeLog(input, deps, cwd);\n}\n//#endregion\nexport { RUN_REPORT_FILE_ENV, RUN_REPORT_VERSION, deploy, destroy, dev, executionDiagnostics, log };\n\n//# sourceMappingURL=control.mjs.map"],"mappings":";;;AAIA,eAAe,QAAQ,OAAO;CAC7B,OAAO,gBAAgB,OAAO,CAAC,CAAC;AACjC;;;;AAIA,eAAe,gBAAgB,OAAO,MAAM;CAC3C,MAAM,MAAM,MAAM,OAAO,QAAQ,IAAI;CACrC,IAAI;CACJ,IAAI;EACH,WAAW,MAAM,OAAO;CACzB,SAAS,OAAO;EACf,OAAO,MAAM,oBAAoB,WAAW,KAAK,CAAC;CACnD;CACA,OAAO,SAAS,eAAe,OAAO,MAAM,GAAG;AAChD;AAGA,eAAe,IAAI,OAAO;CACzB,OAAO,YAAY,OAAO,CAAC,CAAC;AAC7B;;;;AAIA,eAAe,YAAY,OAAO,MAAM;CACvC,MAAM,MAAM,MAAM,OAAO,QAAQ,IAAI;CACrC,IAAI;CACJ,IAAI;EACH,WAAW,MAAM,OAAO;CACzB,SAAS,OAAO;EACf,OAAO,MAAM,oBAAoB,OAAO,KAAK,CAAC;CAC/C;CACA,OAAO,SAAS,WAAW,OAAO,MAAM,GAAG;AAC5C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "./app-config-DyCMnkDr-CguUhanl.mjs";
|
package/dist/deploy.d.mts
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { C as LoweredResult, D as PackageInput, E as Outputs, J as lower, M as ProvisionerDescriptor, R as ServiceLowering, S as LowerOptions, V as buildConfig, X as mergedProviders, Y as lowering, a as Bundle, b as LowerContext, d as DeployedNode, et as resolveStateLayer, f as DeploymentResult, i as AssembleInput, j as ProvisionEdge, n as ApplicationDescriptor, q as joinDeployment, r as Artifact, t as AlchemyStateLayer, u as DeployedEntity, w as Lowering, x as LowerError } from "./app-config-
|
|
2
|
-
import "./deploy-
|
|
1
|
+
import { C as LoweredResult, D as PackageInput, E as Outputs, J as lower, M as ProvisionerDescriptor, R as ServiceLowering, S as LowerOptions, V as buildConfig, X as mergedProviders, Y as lowering, a as Bundle, b as LowerContext, d as DeployedNode, et as resolveStateLayer, f as DeploymentResult, i as AssembleInput, j as ProvisionEdge, n as ApplicationDescriptor, q as joinDeployment, r as Artifact, t as AlchemyStateLayer, u as DeployedEntity, w as Lowering, x as LowerError } from "./app-config-DyCMnkDr-CguUhanl.mjs";
|
|
2
|
+
import "./deploy-i9yR7YWi.mjs";
|
|
3
3
|
export { AlchemyStateLayer, ApplicationDescriptor, Artifact, AssembleInput, Bundle, DeployedEntity, DeployedNode, DeploymentResult, LowerContext, LowerError, LowerOptions, LoweredResult, Lowering, Outputs, PackageInput, ProvisionEdge, ProvisionerDescriptor, ServiceLowering, buildConfig, joinDeployment, lower, lowering, mergedProviders, resolveStateLayer };
|
package/dist/{deployment-summary-BtvC7Z73-BJr-5tXY.mjs → deployment-summary-37e6WEuh-BOTJynIi.mjs}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as blindCast } from "./casts-DpaahrlC-C5XMnP9S.mjs";
|
|
2
2
|
import * as fs$1 from "node:fs";
|
|
3
3
|
import { format, stripVTControlCharacters } from "node:util";
|
|
4
|
-
//#region ../../0-framework/3-tooling/cli/dist/deployment-summary-
|
|
4
|
+
//#region ../../0-framework/3-tooling/cli/dist/deployment-summary-37e6WEuh.mjs
|
|
5
5
|
/**
|
|
6
6
|
* The deploy result's cross-process protocol, whole in one place: the
|
|
7
7
|
* serializable shape, the env var that names the carrier file, the writer the
|
|
@@ -165,4 +165,4 @@ function redactSecrets(text, env) {
|
|
|
165
165
|
//#endregion
|
|
166
166
|
export { readEngineFailureCause as a, readDeploymentSummary as i, captureEngineFailure as n, writeDeploymentSummaryFile as o, engineFailureFilePath as r, DEPLOYMENT_RESULT_FILE_ENV as t };
|
|
167
167
|
|
|
168
|
-
//# sourceMappingURL=deployment-summary-
|
|
168
|
+
//# sourceMappingURL=deployment-summary-37e6WEuh-BOTJynIi.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployment-summary-BtvC7Z73-BJr-5tXY.mjs","names":["fs"],"sources":["../../../0-framework/3-tooling/cli/dist/deployment-summary-BtvC7Z73.mjs"],"sourcesContent":["import * as fs from \"node:fs\";\nimport { blindCast } from \"@internal/foundation/casts\";\nimport { format, stripVTControlCharacters } from \"node:util\";\n//#region src/deployment-summary.ts\n/**\n* The deploy result's cross-process protocol, whole in one place: the\n* serializable shape, the env var that names the carrier file, the writer the\n* report hook calls from inside the alchemy child, and the reader the deploy\n* operation runs after the child exits. `DeploymentResult` itself cannot\n* cross the boundary — its `DeployedNode` entries hold live graph-node\n* references (ADR-0033) — so the writer projects it down to what CAN.\n*\n* The summary is best-effort by contract: the writer never fails the child\n* over it, and the reader maps absent or malformed to `undefined`. So is the\n* failure cause the child leaves beside it when it exits non-zero.\n*/\n/** Env var the deploy operation sets on the alchemy child: when present,\n* the report hook also writes the JSON DeploymentSummary there. */\nconst DEPLOYMENT_RESULT_FILE_ENV = \"PRISMA_COMPOSER_DEPLOYMENT_RESULT_FILE\";\n/** Pure projection: keeps app + each node's address/entities, drops the in-process `node`. */\nfunction toDeploymentSummary(result) {\n\treturn {\n\t\tapp: result.app,\n\t\tnodes: result.nodes.map((node) => ({\n\t\t\taddress: node.address,\n\t\t\tentities: node.entities\n\t\t}))\n\t};\n}\n/**\n* Writer half, called by the report hook inside the alchemy child: when the\n* env var names a file, write the summary there. Best-effort — a write\n* failure must not fail a deploy that already converged, so it is swallowed.\n*/\nfunction writeDeploymentSummaryFile(result) {\n\tconst file = process.env[DEPLOYMENT_RESULT_FILE_ENV];\n\tif (file === void 0 || file.length === 0) return;\n\ttry {\n\t\tfs.writeFileSync(file, JSON.stringify(toDeploymentSummary(result)));\n\t} catch {}\n}\nfunction isRecord(value) {\n\treturn typeof value === \"object\" && value !== null;\n}\n/**\n* Reader half, run by the deploy operation after the child exits. Absent or\n* malformed → undefined — the summary is best-effort, never a deploy failure.\n*/\nfunction readDeploymentSummary(resultFilePath) {\n\tlet raw;\n\ttry {\n\t\traw = fs.readFileSync(resultFilePath, \"utf8\");\n\t} catch {\n\t\treturn;\n\t}\n\tlet parsed;\n\ttry {\n\t\tparsed = JSON.parse(raw);\n\t} catch {\n\t\treturn;\n\t}\n\tif (!isRecord(parsed) || typeof parsed[\"app\"] !== \"string\" || !Array.isArray(parsed[\"nodes\"])) return;\n\tfor (const node of parsed[\"nodes\"]) {\n\t\tif (!isRecord(node) || typeof node[\"address\"] !== \"string\" || !Array.isArray(node[\"entities\"])) return;\n\t\tfor (const entity of node[\"entities\"]) if (!isRecord(entity) || typeof entity[\"kind\"] !== \"string\" || typeof entity[\"id\"] !== \"string\") return;\n\t}\n\treturn blindCast(parsed);\n}\n/** The child's failure cause rides beside the result file, so the one env var names both and the parent's cleanup removes both. */\nfunction engineFailureFilePath(resultFilePath) {\n\treturn `${resultFilePath}.failure.txt`;\n}\n/** Fits the platform's 5000-character build `errorMessage` with room for the exit-status prefix. */\nconst ENGINE_FAILURE_CAUSE_LIMIT = 1e3;\n/**\n* Child half of the failure protocol, called by the generated stack file.\n* Keeps a bounded tail of everything this process logs through `console`,\n* passing every call through untouched, and on a non-zero exit writes the\n* redacted cause beside the result file. `console`, not the output streams:\n* alchemy's logger and its error reporting both go through it, and under Bun\n* `console` does not reach `process.stdout.write`.\n*/\nfunction captureEngineFailure() {\n\tconst resultFile = process.env[DEPLOYMENT_RESULT_FILE_ENV];\n\tif (resultFile === void 0 || resultFile.length === 0) return;\n\tlet tail = \"\";\n\tfor (const method of [\n\t\t\"log\",\n\t\t\"info\",\n\t\t\"warn\",\n\t\t\"error\",\n\t\t\"debug\"\n\t]) {\n\t\tconst original = console[method];\n\t\tconsole[method] = (...args) => {\n\t\t\ttail = `${tail}${redactSecrets(format(...args), process.env)}\\n`.slice(-65536);\n\t\t\toriginal.apply(console, args);\n\t\t};\n\t}\n\tprocess.once(\"exit\", (code) => {\n\t\tif (code === 0) return;\n\t\tconst cause = engineFailureCause(tail, process.env);\n\t\tif (cause === void 0) return;\n\t\ttry {\n\t\t\tfs.writeFileSync(engineFailureFilePath(resultFile), cause);\n\t\t} catch {}\n\t});\n}\n/** Parent half: the cause the child recorded, or undefined when it recorded none. */\nfunction readEngineFailureCause(resultFilePath) {\n\ttry {\n\t\tconst cause = fs.readFileSync(engineFailureFilePath(resultFilePath), \"utf8\");\n\t\treturn cause.length > 0 ? cause : void 0;\n\t} catch {\n\t\treturn;\n\t}\n}\n/** Effect's pretty log prefix, e.g. `[10:29:16.556] INFO (#53): `. */\nconst LOG_PREFIX = /^\\[[\\d:.]+\\] ([A-Z]+) \\(#\\d+\\): ?/;\n/** Alchemy's per-resource failure row, e.g. `[web] fail — UnknownError: …`. */\nconst RESOURCE_FAIL_ROW = /^\\[[^\\]]+\\] fail\\b/;\nconst STACK_FRAME = /^\\s*at /;\n/**\n* The failure the output describes: every line from the first failure line\n* (a failed resource row, an ERROR log, or an `error:` line) to the end, minus\n* blank lines, stack frames and info logs; the last five lines when there is no\n* failure line. Redacted, then capped.\n*/\nfunction engineFailureCause(output, env) {\n\tconst lines = [];\n\tfor (const raw of stripVTControlCharacters(output).split(/\\r\\n|\\r|\\n/)) {\n\t\tconst clean = raw.replace(/(?![\\t])\\p{Cc}/gu, \"\").trimEnd();\n\t\tconst prefix = LOG_PREFIX.exec(clean);\n\t\tconst text = (prefix === null ? clean : clean.slice(prefix[0].length)).trim();\n\t\tif (text.length === 0 || text === \"{\" || text === \"}\" || STACK_FRAME.test(text)) continue;\n\t\tconst level = prefix?.[1];\n\t\tconst failure = level === \"ERROR\" || level === \"FATAL\" || RESOURCE_FAIL_ROW.test(text) || /^\\W*error:/i.test(text);\n\t\tlines.push({\n\t\t\ttext,\n\t\t\tfailure,\n\t\t\tinfo: !failure && level !== void 0\n\t\t});\n\t}\n\tconst start = lines.findIndex((line) => line.failure);\n\tconst kept = start === -1 ? lines.slice(-5) : lines.slice(start).filter((line) => !line.info);\n\tif (kept.length === 0) return void 0;\n\tconst cause = redactSecrets(kept.map((line) => line.text).join(\"\\n\"), env);\n\treturn cause.length <= ENGINE_FAILURE_CAUSE_LIMIT ? cause : `${cause.slice(0, ENGINE_FAILURE_CAUSE_LIMIT - 1)}…`;\n}\n/** Env var names whose values are credentials: the service token, preflight payloads, and the usual secret spellings. */\nconst SECRET_ENV_NAME = /TOKEN|SECRET|PASSWORD|PASSWD|PRIVATE|CREDENTIAL|AUTH|API_?KEY|ACCESS_?KEY|_KEY$|DATABASE_URL|_DSN$|^PRISMA_COMPOSER_PREFLIGHT_/i;\nconst REDACTED = \"[redacted]\";\n/**\n* Removes credentials from text that is about to leave the machine: the value\n* of every secret-named env var, bearer/basic tokens, JWTs, the password in a\n* URL, and `token=…`-style pairs. Values shorter than 8 characters are left,\n* so a one-letter placeholder does not blank every matching letter.\n*/\nfunction redactSecrets(text, env) {\n\tconst values = Object.entries(env).filter(([name, value]) => SECRET_ENV_NAME.test(name) && (value ?? \"\").length >= 8).map(([, value]) => value ?? \"\").sort((a, b) => b.length - a.length);\n\tlet redacted = text;\n\tfor (const value of values) redacted = redacted.replaceAll(value, REDACTED);\n\treturn redacted.replace(/\\b(Bearer|Basic)\\s+[\\w.~+/=-]+/gi, `$1 ${REDACTED}`).replace(/\\beyJ[\\w-]+\\.[\\w-]+\\.[\\w-]*/g, REDACTED).replace(/(\\b[a-z][\\w+.-]*:\\/\\/[^\\s:/@]*:)[^\\s/@]+@/gi, `$1${REDACTED}@`).replace(/\\b((?:[\\w-]*[_-])?(?:token|secret|password|passwd|api[_-]?key|access[_-]?key|private[_-]?key)[\"']?\\s*[:=]\\s*[\"']?)[^\\s\"',;&]+/gi, `$1${REDACTED}`);\n}\n//#endregion\nexport { readEngineFailureCause as a, readDeploymentSummary as i, captureEngineFailure as n, writeDeploymentSummaryFile as o, engineFailureFilePath as r, DEPLOYMENT_RESULT_FILE_ENV as t };\n\n//# sourceMappingURL=deployment-summary-BtvC7Z73.mjs.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"deployment-summary-37e6WEuh-BOTJynIi.mjs","names":["fs"],"sources":["../../../0-framework/3-tooling/cli/dist/deployment-summary-37e6WEuh.mjs"],"sourcesContent":["import * as fs from \"node:fs\";\nimport { format, stripVTControlCharacters } from \"node:util\";\nimport { blindCast } from \"@internal/foundation/casts\";\n//#region src/deployment-summary.ts\n/**\n* The deploy result's cross-process protocol, whole in one place: the\n* serializable shape, the env var that names the carrier file, the writer the\n* report hook calls from inside the alchemy child, and the reader the deploy\n* operation runs after the child exits. `DeploymentResult` itself cannot\n* cross the boundary — its `DeployedNode` entries hold live graph-node\n* references (ADR-0033) — so the writer projects it down to what CAN.\n*\n* The summary is best-effort by contract: the writer never fails the child\n* over it, and the reader maps absent or malformed to `undefined`. So is the\n* failure cause the child leaves beside it when it exits non-zero.\n*/\n/** Env var the deploy operation sets on the alchemy child: when present,\n* the report hook also writes the JSON DeploymentSummary there. */\nconst DEPLOYMENT_RESULT_FILE_ENV = \"PRISMA_COMPOSER_DEPLOYMENT_RESULT_FILE\";\n/** Pure projection: keeps app + each node's address/entities, drops the in-process `node`. */\nfunction toDeploymentSummary(result) {\n\treturn {\n\t\tapp: result.app,\n\t\tnodes: result.nodes.map((node) => ({\n\t\t\taddress: node.address,\n\t\t\tentities: node.entities\n\t\t}))\n\t};\n}\n/**\n* Writer half, called by the report hook inside the alchemy child: when the\n* env var names a file, write the summary there. Best-effort — a write\n* failure must not fail a deploy that already converged, so it is swallowed.\n*/\nfunction writeDeploymentSummaryFile(result) {\n\tconst file = process.env[DEPLOYMENT_RESULT_FILE_ENV];\n\tif (file === void 0 || file.length === 0) return;\n\ttry {\n\t\tfs.writeFileSync(file, JSON.stringify(toDeploymentSummary(result)));\n\t} catch {}\n}\nfunction isRecord(value) {\n\treturn typeof value === \"object\" && value !== null;\n}\n/**\n* Reader half, run by the deploy operation after the child exits. Absent or\n* malformed → undefined — the summary is best-effort, never a deploy failure.\n*/\nfunction readDeploymentSummary(resultFilePath) {\n\tlet raw;\n\ttry {\n\t\traw = fs.readFileSync(resultFilePath, \"utf8\");\n\t} catch {\n\t\treturn;\n\t}\n\tlet parsed;\n\ttry {\n\t\tparsed = JSON.parse(raw);\n\t} catch {\n\t\treturn;\n\t}\n\tif (!isRecord(parsed) || typeof parsed[\"app\"] !== \"string\" || !Array.isArray(parsed[\"nodes\"])) return;\n\tfor (const node of parsed[\"nodes\"]) {\n\t\tif (!isRecord(node) || typeof node[\"address\"] !== \"string\" || !Array.isArray(node[\"entities\"])) return;\n\t\tfor (const entity of node[\"entities\"]) if (!isRecord(entity) || typeof entity[\"kind\"] !== \"string\" || typeof entity[\"id\"] !== \"string\") return;\n\t}\n\treturn blindCast(parsed);\n}\n/** The child's failure cause rides beside the result file, so the one env var names both and the parent's cleanup removes both. */\nfunction engineFailureFilePath(resultFilePath) {\n\treturn `${resultFilePath}.failure.txt`;\n}\n/** Fits the platform's 5000-character build `errorMessage` with room for the exit-status prefix. */\nconst ENGINE_FAILURE_CAUSE_LIMIT = 1e3;\n/**\n* Child half of the failure protocol, called by the generated stack file.\n* Keeps a bounded tail of everything this process logs through `console`,\n* passing every call through untouched, and on a non-zero exit writes the\n* redacted cause beside the result file. `console`, not the output streams:\n* alchemy's logger and its error reporting both go through it, and under Bun\n* `console` does not reach `process.stdout.write`.\n*/\nfunction captureEngineFailure() {\n\tconst resultFile = process.env[DEPLOYMENT_RESULT_FILE_ENV];\n\tif (resultFile === void 0 || resultFile.length === 0) return;\n\tlet tail = \"\";\n\tfor (const method of [\n\t\t\"log\",\n\t\t\"info\",\n\t\t\"warn\",\n\t\t\"error\",\n\t\t\"debug\"\n\t]) {\n\t\tconst original = console[method];\n\t\tconsole[method] = (...args) => {\n\t\t\ttail = `${tail}${redactSecrets(format(...args), process.env)}\\n`.slice(-65536);\n\t\t\toriginal.apply(console, args);\n\t\t};\n\t}\n\tprocess.once(\"exit\", (code) => {\n\t\tif (code === 0) return;\n\t\tconst cause = engineFailureCause(tail, process.env);\n\t\tif (cause === void 0) return;\n\t\ttry {\n\t\t\tfs.writeFileSync(engineFailureFilePath(resultFile), cause);\n\t\t} catch {}\n\t});\n}\n/** Parent half: the cause the child recorded, or undefined when it recorded none. */\nfunction readEngineFailureCause(resultFilePath) {\n\ttry {\n\t\tconst cause = fs.readFileSync(engineFailureFilePath(resultFilePath), \"utf8\");\n\t\treturn cause.length > 0 ? cause : void 0;\n\t} catch {\n\t\treturn;\n\t}\n}\n/** Effect's pretty log prefix, e.g. `[10:29:16.556] INFO (#53): `. */\nconst LOG_PREFIX = /^\\[[\\d:.]+\\] ([A-Z]+) \\(#\\d+\\): ?/;\n/** Alchemy's per-resource failure row, e.g. `[web] fail — UnknownError: …`. */\nconst RESOURCE_FAIL_ROW = /^\\[[^\\]]+\\] fail\\b/;\nconst STACK_FRAME = /^\\s*at /;\n/**\n* The failure the output describes: every line from the first failure line\n* (a failed resource row, an ERROR log, or an `error:` line) to the end, minus\n* blank lines, stack frames and info logs; the last five lines when there is no\n* failure line. Redacted, then capped.\n*/\nfunction engineFailureCause(output, env) {\n\tconst lines = [];\n\tfor (const raw of stripVTControlCharacters(output).split(/\\r\\n|\\r|\\n/)) {\n\t\tconst clean = raw.replace(/(?![\\t])\\p{Cc}/gu, \"\").trimEnd();\n\t\tconst prefix = LOG_PREFIX.exec(clean);\n\t\tconst text = (prefix === null ? clean : clean.slice(prefix[0].length)).trim();\n\t\tif (text.length === 0 || text === \"{\" || text === \"}\" || STACK_FRAME.test(text)) continue;\n\t\tconst level = prefix?.[1];\n\t\tconst failure = level === \"ERROR\" || level === \"FATAL\" || RESOURCE_FAIL_ROW.test(text) || /^\\W*error:/i.test(text);\n\t\tlines.push({\n\t\t\ttext,\n\t\t\tfailure,\n\t\t\tinfo: !failure && level !== void 0\n\t\t});\n\t}\n\tconst start = lines.findIndex((line) => line.failure);\n\tconst kept = start === -1 ? lines.slice(-5) : lines.slice(start).filter((line) => !line.info);\n\tif (kept.length === 0) return void 0;\n\tconst cause = redactSecrets(kept.map((line) => line.text).join(\"\\n\"), env);\n\treturn cause.length <= ENGINE_FAILURE_CAUSE_LIMIT ? cause : `${cause.slice(0, ENGINE_FAILURE_CAUSE_LIMIT - 1)}…`;\n}\n/** Env var names whose values are credentials: the service token, preflight payloads, and the usual secret spellings. */\nconst SECRET_ENV_NAME = /TOKEN|SECRET|PASSWORD|PASSWD|PRIVATE|CREDENTIAL|AUTH|API_?KEY|ACCESS_?KEY|_KEY$|DATABASE_URL|_DSN$|^PRISMA_COMPOSER_PREFLIGHT_/i;\nconst REDACTED = \"[redacted]\";\n/**\n* Removes credentials from text that is about to leave the machine: the value\n* of every secret-named env var, bearer/basic tokens, JWTs, the password in a\n* URL, and `token=…`-style pairs. Values shorter than 8 characters are left,\n* so a one-letter placeholder does not blank every matching letter.\n*/\nfunction redactSecrets(text, env) {\n\tconst values = Object.entries(env).filter(([name, value]) => SECRET_ENV_NAME.test(name) && (value ?? \"\").length >= 8).map(([, value]) => value ?? \"\").sort((a, b) => b.length - a.length);\n\tlet redacted = text;\n\tfor (const value of values) redacted = redacted.replaceAll(value, REDACTED);\n\treturn redacted.replace(/\\b(Bearer|Basic)\\s+[\\w.~+/=-]+/gi, `$1 ${REDACTED}`).replace(/\\beyJ[\\w-]+\\.[\\w-]+\\.[\\w-]*/g, REDACTED).replace(/(\\b[a-z][\\w+.-]*:\\/\\/[^\\s:/@]*:)[^\\s/@]+@/gi, `$1${REDACTED}@`).replace(/\\b((?:[\\w-]*[_-])?(?:token|secret|password|passwd|api[_-]?key|access[_-]?key|private[_-]?key)[\"']?\\s*[:=]\\s*[\"']?)[^\\s\"',;&]+/gi, `$1${REDACTED}`);\n}\n//#endregion\nexport { readEngineFailureCause as a, readDeploymentSummary as i, captureEngineFailure as n, writeDeploymentSummaryFile as o, engineFailureFilePath as r, DEPLOYMENT_RESULT_FILE_ENV as t };\n\n//# sourceMappingURL=deployment-summary-37e6WEuh.mjs.map"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { u as DeployedEntity } from "./app-config-
|
|
2
|
-
import "./deploy-
|
|
1
|
+
import { u as DeployedEntity } from "./app-config-DyCMnkDr-CguUhanl.mjs";
|
|
2
|
+
import "./deploy-i9yR7YWi.mjs";
|
|
3
3
|
//#region ../../0-framework/3-tooling/cli/dist/deployment-summary-CU-eVvJM.d.mts
|
|
4
4
|
//#region src/deployment-summary.d.ts
|
|
5
5
|
/** The serializable projection of DeploymentResult — what CAN cross the process
|
|
@@ -23,4 +23,4 @@ interface DeploymentSummary {
|
|
|
23
23
|
declare function captureEngineFailure(): void;
|
|
24
24
|
//#endregion
|
|
25
25
|
export { DeploymentSummary as n, captureEngineFailure as r, DeployedNodeSummary as t };
|
|
26
|
-
//# sourceMappingURL=deployment-summary-CU-eVvJM-
|
|
26
|
+
//# sourceMappingURL=deployment-summary-CU-eVvJM-c3AqO52N.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployment-summary-CU-eVvJM-
|
|
1
|
+
{"version":3,"file":"deployment-summary-CU-eVvJM-c3AqO52N.d.mts","names":[],"sources":["../../../0-framework/3-tooling/cli/dist/deployment-summary-CU-eVvJM.d.mts"],"mappings":";;;;;;UAIU;WACC;WACA,mBAAmB;;UAEpB;WACC;WACA,gBAAgB;;;;;;;;;;iBAUV"}
|
|
@@ -1,35 +1,6 @@
|
|
|
1
1
|
import { t as blindCast } from "./casts-DpaahrlC-C5XMnP9S.mjs";
|
|
2
2
|
import { t as InternalError } from "./internal-error-Dfur7Zqt-D96dWHZK.mjs";
|
|
3
3
|
import { t as CliStructuredError } from "./errors-0e8IVwzi.mjs";
|
|
4
|
-
//#region ../../0-framework/3-tooling/cli/dist/shared-BAIiDgXa.mjs
|
|
5
|
-
/**
|
|
6
|
-
* Reads the execution diagnostics an engine-failure error carries in
|
|
7
|
-
* `meta.diagnostics`; undefined for every other failure.
|
|
8
|
-
*/
|
|
9
|
-
function executionDiagnostics(f) {
|
|
10
|
-
const diagnostics = f.meta?.["diagnostics"];
|
|
11
|
-
if (typeof diagnostics !== "object" || diagnostics === null) return void 0;
|
|
12
|
-
const candidate = blindCast(diagnostics);
|
|
13
|
-
if (candidate["exitCode"] !== void 0 && typeof candidate["exitCode"] !== "number" || candidate["signal"] !== void 0 && typeof candidate["signal"] !== "string" || typeof candidate["stackFilePath"] !== "string" || typeof candidate["reproduceCommand"] !== "string" || typeof candidate["cwd"] !== "string") return;
|
|
14
|
-
return blindCast(diagnostics);
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Site-specific wrap for foreign extension/environment causes — passthrough
|
|
18
|
-
* when already structured; never a boundary fallback (base-type rule 6(ii)).
|
|
19
|
-
*/
|
|
20
|
-
function toStructured(code, error) {
|
|
21
|
-
return CliStructuredError.is(error) ? error : new CliStructuredError(code, error instanceof Error ? error.message : String(error), { cause: error });
|
|
22
|
-
}
|
|
23
|
-
/** A failed executor import: an environmental failure of the consumer's
|
|
24
|
-
* installed tree, not a bug here. The import error rides as the cause. */
|
|
25
|
-
function executorLoadFailure(operation, error) {
|
|
26
|
-
return new CliStructuredError("DEPS.EXECUTOR_UNLOADABLE", `Could not load the ${operation} executor: ${error instanceof Error ? error.message : String(error)}`, {
|
|
27
|
-
why: `The ${operation} operation's executor imports the deploy engine's provider tree from your app's installed dependencies, and that import failed.`,
|
|
28
|
-
fix: "Reinstall your dependencies, and check that `alchemy` is installed and loadable from your app.",
|
|
29
|
-
cause: error
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
//#endregion
|
|
33
4
|
//#region ../../0-framework/0-foundation/foundation/dist/result.mjs
|
|
34
5
|
/**
|
|
35
6
|
* Generic Result type for representing success or failure outcomes.
|
|
@@ -117,6 +88,67 @@ function okVoid() {
|
|
|
117
88
|
return OK_VOID;
|
|
118
89
|
}
|
|
119
90
|
//#endregion
|
|
120
|
-
|
|
91
|
+
//#region ../../0-framework/3-tooling/cli/dist/dev-Bmq-eLnv.mjs
|
|
92
|
+
/**
|
|
93
|
+
* Reads the execution diagnostics an engine-failure error carries in
|
|
94
|
+
* `meta.diagnostics`; undefined for every other failure.
|
|
95
|
+
*/
|
|
96
|
+
function executionDiagnostics(f) {
|
|
97
|
+
const diagnostics = f.meta?.["diagnostics"];
|
|
98
|
+
if (typeof diagnostics !== "object" || diagnostics === null) return void 0;
|
|
99
|
+
const candidate = blindCast(diagnostics);
|
|
100
|
+
if (candidate["exitCode"] !== void 0 && typeof candidate["exitCode"] !== "number" || candidate["signal"] !== void 0 && typeof candidate["signal"] !== "string" || typeof candidate["stackFilePath"] !== "string" || typeof candidate["reproduceCommand"] !== "string" || typeof candidate["cwd"] !== "string") return;
|
|
101
|
+
return blindCast(diagnostics);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Site-specific wrap for foreign extension/environment causes — passthrough
|
|
105
|
+
* when already structured; never a boundary fallback (base-type rule 6(ii)).
|
|
106
|
+
*/
|
|
107
|
+
function toStructured(code, error) {
|
|
108
|
+
return CliStructuredError.is(error) ? error : new CliStructuredError(code, error instanceof Error ? error.message : String(error), { cause: error });
|
|
109
|
+
}
|
|
110
|
+
/** A failed executor import: an environmental failure of the consumer's
|
|
111
|
+
* installed tree, not a bug here. The import error rides as the cause. */
|
|
112
|
+
function executorLoadFailure(operation, error) {
|
|
113
|
+
return new CliStructuredError("DEPS.EXECUTOR_UNLOADABLE", `Could not load the ${operation} executor: ${error instanceof Error ? error.message : String(error)}`, {
|
|
114
|
+
why: `The ${operation} operation's executor imports the deploy engine's provider tree from your app's installed dependencies, and that import failed.`,
|
|
115
|
+
fix: "Reinstall your dependencies, and check that `alchemy` is installed and loadable from your app.",
|
|
116
|
+
cause: error
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
async function deploy(input) {
|
|
120
|
+
return deployWithDeps(input, {});
|
|
121
|
+
}
|
|
122
|
+
/** In-package variant threading the injection seam, which the family's
|
|
123
|
+
* commands and the unit tests use. Deliberately NOT re-exported through `./control` — the seam mirrors
|
|
124
|
+
* internal types and is not part of the published surface. */
|
|
125
|
+
async function deployWithDeps(input, deps) {
|
|
126
|
+
const cwd = input.cwd ?? process.cwd();
|
|
127
|
+
let executor;
|
|
128
|
+
try {
|
|
129
|
+
executor = await import("./execute-deploy-destroy-c0eko3AO-BoK0-r1U.mjs");
|
|
130
|
+
} catch (error) {
|
|
131
|
+
return notOk(executorLoadFailure("deploy", error));
|
|
132
|
+
}
|
|
133
|
+
return executor.executeDeploy(input, deps, cwd);
|
|
134
|
+
}
|
|
135
|
+
async function dev(input) {
|
|
136
|
+
return devWithDeps(input, {});
|
|
137
|
+
}
|
|
138
|
+
/** In-package variant threading the injection seam, which the family's
|
|
139
|
+
* commands and the unit tests use. Deliberately NOT re-exported through `./control` — the seam mirrors
|
|
140
|
+
* internal types and is not part of the published surface. */
|
|
141
|
+
async function devWithDeps(input, deps) {
|
|
142
|
+
const cwd = input.cwd ?? process.cwd();
|
|
143
|
+
let executor;
|
|
144
|
+
try {
|
|
145
|
+
executor = await import("./execute-dev-BICPaq1g-DQccw8kr.mjs");
|
|
146
|
+
} catch (error) {
|
|
147
|
+
return notOk(executorLoadFailure("dev", error));
|
|
148
|
+
}
|
|
149
|
+
return executor.executeDev(input, deps, cwd);
|
|
150
|
+
}
|
|
151
|
+
//#endregion
|
|
152
|
+
export { toStructured as a, okVoid as c, executorLoadFailure as i, dev as n, notOk as o, executionDiagnostics as r, ok as s, deploy as t };
|
|
121
153
|
|
|
122
|
-
//# sourceMappingURL=
|
|
154
|
+
//# sourceMappingURL=dev-Bmq-eLnv-DsenQNJM.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dev-Bmq-eLnv-DsenQNJM.mjs","names":[],"sources":["../../../0-framework/0-foundation/foundation/dist/result.mjs","../../../0-framework/3-tooling/cli/dist/dev-Bmq-eLnv.mjs"],"sourcesContent":["import { t as blindCast } from \"./casts-DpaahrlC.mjs\";\nimport { t as InternalError } from \"./internal-error-Dfur7Zqt.mjs\";\n//#region src/result.ts\n/**\n* Generic Result type for representing success or failure outcomes.\n*\n* This is the standard way to return \"expected failures\" as values rather than\n* throwing exceptions. See docs/Error Handling.md for the full taxonomy.\n*\n* Naming rationale:\n* - `Ok<T>` / `NotOk<F>` mirror the `ok: true/false` discriminator\n* - `NotOk` avoids collision with domain types like \"Failure\" or \"Error\"\n* - `failure` property distinguishes from JS Error semantics\n*/\n/**\n* Result class that implements both Ok and NotOk variants.\n*/\nvar ResultImpl = class ResultImpl {\n\tok;\n\t_value;\n\t_failure;\n\tconstructor(ok, valueOrFailure) {\n\t\tthis.ok = ok;\n\t\tif (ok) this._value = blindCast(valueOrFailure);\n\t\telse this._failure = blindCast(valueOrFailure);\n\t\tObject.freeze(this);\n\t}\n\tget value() {\n\t\tif (!this.ok) throw new InternalError(\"Cannot access value on NotOk result\");\n\t\treturn this._value;\n\t}\n\tget failure() {\n\t\tif (this.ok) throw new InternalError(\"Cannot access failure on Ok result\");\n\t\treturn this._failure;\n\t}\n\t/**\n\t* Creates a successful result.\n\t*/\n\tstatic ok(value) {\n\t\treturn blindCast(new ResultImpl(true, value));\n\t}\n\t/**\n\t* Creates an unsuccessful result.\n\t*/\n\tstatic notOk(failure) {\n\t\treturn blindCast(new ResultImpl(false, failure));\n\t}\n\t/**\n\t* Asserts that this result is Ok and returns the value.\n\t* Throws if the result is NotOk.\n\t*/\n\tassertOk() {\n\t\tif (!this.ok) throw new InternalError(\"Expected Ok result but got NotOk\");\n\t\treturn this.value;\n\t}\n\t/**\n\t* Asserts that this result is NotOk and returns the failure.\n\t* Throws if the result is Ok.\n\t*/\n\tassertNotOk() {\n\t\tif (this.ok) throw new InternalError(\"Expected NotOk result but got Ok\");\n\t\treturn this.failure;\n\t}\n};\n/**\n* Creates a successful result.\n*/\nfunction ok(value) {\n\treturn ResultImpl.ok(value);\n}\n/**\n* Creates an unsuccessful result.\n*/\nfunction notOk(failure) {\n\treturn ResultImpl.notOk(failure);\n}\n/**\n* Singleton for void success results.\n* Use this for validation checks that don't produce a value.\n*/\nconst OK_VOID = ResultImpl.ok(void 0);\n/**\n* Returns a successful void result.\n* Use this for validation checks that don't produce a value.\n*/\nfunction okVoid() {\n\treturn OK_VOID;\n}\n//#endregion\nexport { notOk, ok, okVoid };\n\n//# sourceMappingURL=result.mjs.map","import { blindCast } from \"@internal/foundation/casts\";\nimport { notOk } from \"@internal/foundation/result\";\nimport { CliStructuredError } from \"@internal/foundation/errors\";\n//#region src/operations/shared.ts\n/**\n* Reads the execution diagnostics an engine-failure error carries in\n* `meta.diagnostics`; undefined for every other failure.\n*/\nfunction executionDiagnostics(f) {\n\tconst diagnostics = f.meta?.[\"diagnostics\"];\n\tif (typeof diagnostics !== \"object\" || diagnostics === null) return void 0;\n\tconst candidate = blindCast(diagnostics);\n\tif (candidate[\"exitCode\"] !== void 0 && typeof candidate[\"exitCode\"] !== \"number\" || candidate[\"signal\"] !== void 0 && typeof candidate[\"signal\"] !== \"string\" || typeof candidate[\"stackFilePath\"] !== \"string\" || typeof candidate[\"reproduceCommand\"] !== \"string\" || typeof candidate[\"cwd\"] !== \"string\") return;\n\treturn blindCast(diagnostics);\n}\n/**\n* Site-specific wrap for foreign extension/environment causes — passthrough\n* when already structured; never a boundary fallback (base-type rule 6(ii)).\n*/\nfunction toStructured(code, error) {\n\treturn CliStructuredError.is(error) ? error : new CliStructuredError(code, error instanceof Error ? error.message : String(error), { cause: error });\n}\n/** A failed executor import: an environmental failure of the consumer's\n* installed tree, not a bug here. The import error rides as the cause. */\nfunction executorLoadFailure(operation, error) {\n\treturn new CliStructuredError(\"DEPS.EXECUTOR_UNLOADABLE\", `Could not load the ${operation} executor: ${error instanceof Error ? error.message : String(error)}`, {\n\t\twhy: `The ${operation} operation's executor imports the deploy engine's provider tree from your app's installed dependencies, and that import failed.`,\n\t\tfix: \"Reinstall your dependencies, and check that `alchemy` is installed and loadable from your app.\",\n\t\tcause: error\n\t});\n}\n//#endregion\n//#region src/operations/deploy.ts\nasync function deploy(input) {\n\treturn deployWithDeps(input, {});\n}\n/** In-package variant threading the injection seam, which the family's\n* commands and the unit tests use. Deliberately NOT re-exported through `./control` — the seam mirrors\n* internal types and is not part of the published surface. */\nasync function deployWithDeps(input, deps) {\n\tconst cwd = input.cwd ?? process.cwd();\n\tlet executor;\n\ttry {\n\t\texecutor = await import(\"./execute-deploy-destroy-c0eko3AO.mjs\");\n\t} catch (error) {\n\t\treturn notOk(executorLoadFailure(\"deploy\", error));\n\t}\n\treturn executor.executeDeploy(input, deps, cwd);\n}\n//#endregion\n//#region src/operations/dev.ts\nasync function dev(input) {\n\treturn devWithDeps(input, {});\n}\n/** In-package variant threading the injection seam, which the family's\n* commands and the unit tests use. Deliberately NOT re-exported through `./control` — the seam mirrors\n* internal types and is not part of the published surface. */\nasync function devWithDeps(input, deps) {\n\tconst cwd = input.cwd ?? process.cwd();\n\tlet executor;\n\ttry {\n\t\texecutor = await import(\"./execute-dev-BICPaq1g.mjs\");\n\t} catch (error) {\n\t\treturn notOk(executorLoadFailure(\"dev\", error));\n\t}\n\treturn executor.executeDev(input, deps, cwd);\n}\n//#endregion\nexport { executionDiagnostics as a, deployWithDeps as i, devWithDeps as n, executorLoadFailure as o, deploy as r, toStructured as s, dev as t };\n\n//# sourceMappingURL=dev-Bmq-eLnv.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;AAiBA,IAAI,aAAa,MAAM,WAAW;CACjC;CACA;CACA;CACA,YAAY,IAAI,gBAAgB;EAC/B,KAAK,KAAK;EACV,IAAI,IAAI,KAAK,SAAS,UAAU,cAAc;OACzC,KAAK,WAAW,UAAU,cAAc;EAC7C,OAAO,OAAO,IAAI;CACnB;CACA,IAAI,QAAQ;EACX,IAAI,CAAC,KAAK,IAAI,MAAM,IAAI,cAAc,qCAAqC;EAC3E,OAAO,KAAK;CACb;CACA,IAAI,UAAU;EACb,IAAI,KAAK,IAAI,MAAM,IAAI,cAAc,oCAAoC;EACzE,OAAO,KAAK;CACb;;;;CAIA,OAAO,GAAG,OAAO;EAChB,OAAO,UAAU,IAAI,WAAW,MAAM,KAAK,CAAC;CAC7C;;;;CAIA,OAAO,MAAM,SAAS;EACrB,OAAO,UAAU,IAAI,WAAW,OAAO,OAAO,CAAC;CAChD;;;;;CAKA,WAAW;EACV,IAAI,CAAC,KAAK,IAAI,MAAM,IAAI,cAAc,kCAAkC;EACxE,OAAO,KAAK;CACb;;;;;CAKA,cAAc;EACb,IAAI,KAAK,IAAI,MAAM,IAAI,cAAc,kCAAkC;EACvE,OAAO,KAAK;CACb;AACD;;;;AAIA,SAAS,GAAG,OAAO;CAClB,OAAO,WAAW,GAAG,KAAK;AAC3B;;;;AAIA,SAAS,MAAM,SAAS;CACvB,OAAO,WAAW,MAAM,OAAO;AAChC;;;;;AAKA,MAAM,UAAU,WAAW,GAAG,KAAK,CAAC;;;;;AAKpC,SAAS,SAAS;CACjB,OAAO;AACR;;;;;;;AC/EA,SAAS,qBAAqB,GAAG;CAChC,MAAM,cAAc,EAAE,OAAO;CAC7B,IAAI,OAAO,gBAAgB,YAAY,gBAAgB,MAAM,OAAO,KAAK;CACzE,MAAM,YAAY,UAAU,WAAW;CACvC,IAAI,UAAU,gBAAgB,KAAK,KAAK,OAAO,UAAU,gBAAgB,YAAY,UAAU,cAAc,KAAK,KAAK,OAAO,UAAU,cAAc,YAAY,OAAO,UAAU,qBAAqB,YAAY,OAAO,UAAU,wBAAwB,YAAY,OAAO,UAAU,WAAW,UAAU;CAC/S,OAAO,UAAU,WAAW;AAC7B;;;;;AAKA,SAAS,aAAa,MAAM,OAAO;CAClC,OAAO,mBAAmB,GAAG,KAAK,IAAI,QAAQ,IAAI,mBAAmB,MAAM,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,GAAG,EAAE,OAAO,MAAM,CAAC;AACpJ;;;AAGA,SAAS,oBAAoB,WAAW,OAAO;CAC9C,OAAO,IAAI,mBAAmB,4BAA4B,sBAAsB,UAAU,aAAa,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,KAAK;EAChK,KAAK,OAAO,UAAU;EACtB,KAAK;EACL,OAAO;CACR,CAAC;AACF;AAGA,eAAe,OAAO,OAAO;CAC5B,OAAO,eAAe,OAAO,CAAC,CAAC;AAChC;;;;AAIA,eAAe,eAAe,OAAO,MAAM;CAC1C,MAAM,MAAM,MAAM,OAAO,QAAQ,IAAI;CACrC,IAAI;CACJ,IAAI;EACH,WAAW,MAAM,OAAO;CACzB,SAAS,OAAO;EACf,OAAO,MAAM,oBAAoB,UAAU,KAAK,CAAC;CAClD;CACA,OAAO,SAAS,cAAc,OAAO,MAAM,GAAG;AAC/C;AAGA,eAAe,IAAI,OAAO;CACzB,OAAO,YAAY,OAAO,CAAC,CAAC;AAC7B;;;;AAIA,eAAe,YAAY,OAAO,MAAM;CACvC,MAAM,MAAM,MAAM,OAAO,QAAQ,IAAI;CACrC,IAAI;CACJ,IAAI;EACH,WAAW,MAAM,OAAO;CACzB,SAAS,OAAO;EACf,OAAO,MAAM,oBAAoB,OAAO,KAAK,CAAC;CAC/C;CACA,OAAO,SAAS,WAAW,OAAO,MAAM,GAAG;AAC5C"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import { t as CliStructuredError } from "./errors-0e8IVwzi.mjs";
|
|
2
2
|
import { t as containerEnv } from "./container-transport-HcvNOGZL-twPi2TIv.mjs";
|
|
3
3
|
import { n as preflightEnvVarName, t as preflightEnv } from "./config-CdxvLFzg.mjs";
|
|
4
|
-
import {
|
|
4
|
+
import { a as toStructured, c as okVoid, o as notOk, s as ok } from "./dev-Bmq-eLnv-DsenQNJM.mjs";
|
|
5
5
|
import { a as writeRunReport, i as toRunReport, r as resolveRunReportPath, t as RUN_REPORT_FILE_ENV } from "./run-report-C2o98uD--AX8kpz4Q.mjs";
|
|
6
|
-
import { a as readEngineFailureCause, i as readDeploymentSummary, r as engineFailureFilePath, t as DEPLOYMENT_RESULT_FILE_ENV } from "./deployment-summary-
|
|
7
|
-
import { n as spawnAlchemy, t as alchemyInvocation } from "./run-alchemy-
|
|
8
|
-
import { n as runPipeline, r as noComposerExportMessage } from "./pipeline-
|
|
6
|
+
import { a as readEngineFailureCause, i as readDeploymentSummary, r as engineFailureFilePath, t as DEPLOYMENT_RESULT_FILE_ENV } from "./deployment-summary-37e6WEuh-BOTJynIi.mjs";
|
|
7
|
+
import { n as spawnAlchemy, t as alchemyInvocation } from "./run-alchemy-BEvB2sYQ-Cy2fhbcu.mjs";
|
|
8
|
+
import { n as runPipeline, r as noComposerExportMessage } from "./pipeline-DYvl561J-DDtnkFPh.mjs";
|
|
9
9
|
import * as fs$1 from "node:fs";
|
|
10
10
|
import * as path$1 from "node:path";
|
|
11
11
|
import { randomUUID } from "node:crypto";
|
|
12
12
|
import { spawnSync } from "node:child_process";
|
|
13
|
-
//#region ../../0-framework/3-tooling/cli/dist/
|
|
13
|
+
//#region ../../0-framework/3-tooling/cli/dist/execute-deploy-destroy-c0eko3AO.mjs
|
|
14
14
|
/** Pipeline step 6: writes a regenerated-every-run, independently runnable stack module at `.prisma-composer/alchemy.run.ts`. */
|
|
15
15
|
const GENERATED_DIR = ".prisma-composer";
|
|
16
16
|
const GENERATED_FILE = "alchemy.run.ts";
|
|
@@ -39,7 +39,7 @@ function renderStackFile(input) {
|
|
|
39
39
|
const generatedDir = path$1.join(input.cwd, GENERATED_DIR);
|
|
40
40
|
const appImport = relativeImportSpecifier(generatedDir, input.entryPath);
|
|
41
41
|
const configImport = relativeImportSpecifier(generatedDir, input.configFile);
|
|
42
|
-
return `// Generated by
|
|
42
|
+
return `// Generated by Composer's deploy and destroy operations — overwritten on every
|
|
43
43
|
// run; do not edit by hand. Runnable from ${quote(input.cwd)} WITH the env the
|
|
44
44
|
// CLI passes its child (the PRISMA_COMPOSER_CONTAINER_*/_PREFLIGHT_* vars —
|
|
45
45
|
// without them lower() refuses because no container is resolved):
|
|
@@ -74,8 +74,6 @@ function writeStackFile(input) {
|
|
|
74
74
|
return filePath;
|
|
75
75
|
}
|
|
76
76
|
const GENERATED_STACK_RELATIVE_PATH = path$1.join(GENERATED_DIR, GENERATED_FILE);
|
|
77
|
-
//#endregion
|
|
78
|
-
//#region ../../0-framework/3-tooling/cli/dist/execute-deploy-destroy-CF6DR7sA.mjs
|
|
79
77
|
/** A stage name must be a valid git ref (deploy-cli.md) — checked via `git check-ref-format`, never silently normalized. Runs before anything platform-specific. */
|
|
80
78
|
function validateStageName(stage) {
|
|
81
79
|
const result = spawnSync("git", ["check-ref-format", `refs/heads/${stage}`], { stdio: "ignore" });
|
|
@@ -297,7 +295,7 @@ async function runStackPipelineInner(action, opts, reporters) {
|
|
|
297
295
|
}
|
|
298
296
|
await attachReporters(reporters, containers);
|
|
299
297
|
const pinnedStage = containers.get(config.state.extension)?.alchemyStage ?? stage;
|
|
300
|
-
if (pinnedStage === void 0) throw new CliStructuredError("DEPLOY.SCOPE_MISSING", "The configured deploy target supplied no deploy scope (its container defines no alchemyStage), so Alchemy has no stage to run under.", { fix: action === "deploy" ? "Pass --stage <name> to choose the deploy scope explicitly." : "
|
|
298
|
+
if (pinnedStage === void 0) throw new CliStructuredError("DEPLOY.SCOPE_MISSING", "The configured deploy target supplied no deploy scope (its container defines no alchemyStage), so Alchemy has no stage to run under.", { fix: action === "deploy" ? "Pass --stage <name> to choose the deploy scope explicitly." : "Destroying production needs a target whose container supplies the production deploy scope." });
|
|
301
299
|
alchemyStage = pinnedStage;
|
|
302
300
|
if (action === "deploy") {
|
|
303
301
|
for (const extension of config.extensions) {
|
|
@@ -431,4 +429,4 @@ async function runStackPipelineInner(action, opts, reporters) {
|
|
|
431
429
|
//#endregion
|
|
432
430
|
export { executeDeploy, executeDestroy };
|
|
433
431
|
|
|
434
|
-
//# sourceMappingURL=execute-deploy-destroy-
|
|
432
|
+
//# sourceMappingURL=execute-deploy-destroy-c0eko3AO-BoK0-r1U.mjs.map
|