@voltro/cli 0.36.0 → 0.38.0
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/CHANGELOG.md +182 -0
- package/dist/{apiBuild-DiE9zcj6.js → apiBuild-CvacV4zA.js} +2 -2
- package/dist/apiBuild-ttSDDOGp.js +2 -0
- package/dist/{baselineCommand-DIttzO8A.js → baselineCommand-C6NMt-oa.js} +1 -4
- package/dist/baselineCommand-Cfw2Afwm.js +2 -0
- package/dist/bin.js +1 -1
- package/dist/bootRefusal-pgvDxlrU.js +7 -0
- package/dist/{build-DBe6c7qC.js → build-_LoTC1s0.js} +31 -31
- package/dist/{checkCommand-BhG0gmUD.js → checkCommand-Pjk5sBl2.js} +3 -3
- package/dist/{checkCommand-BTA6P3Yr.js → checkCommand-wibtQx-N.js} +1 -1
- package/dist/{cloudCmd-Cvv5HGaZ.js → cloudCmd-NQSwe_Qk.js} +1 -1
- package/dist/{codegen-CYM3Zqrf.js → codegen-GYYcdpCg.js} +2 -2
- package/dist/codegen-uYrrDzQv.js +2 -0
- package/dist/{codegenCommand-DH-8ZXzR.js → codegenCommand-C60m_LCp.js} +2 -2
- package/dist/{codemodRunner-DjQGrdmg.js → codemodRunner-CXgQ-ecJ.js} +339 -167
- package/dist/{commands-Bp7utV-7.js → commands-DaZVi9wi.js} +74 -73
- package/dist/{dashboardCommand-D5Jwjmr1.js → dashboardCommand-Dxy_kmoW.js} +3 -3
- package/dist/{dataCommand-DnCm0B2C.js → dataCommand-D6-Ha2lf.js} +2 -2
- package/dist/{dbCommand-O8HA63s2.js → dbCommand-C4UW8cVN.js} +353 -351
- package/dist/dbCommand-CC-qNzpz.js +2 -0
- package/dist/{dev-BSFTgCQ5.js → dev-CAOoXOkc.js} +1 -1
- package/dist/{dev-Dc4cpmRl.js → dev-E7Eo5GHc.js} +262 -261
- package/dist/doctorCommand-Cjl8Yii8.js +2 -0
- package/dist/{doctorCommand-CNFtt3nR.js → doctorCommand-gmDyALFL.js} +10 -10
- package/dist/{dormancyCommand-6F6NsJKf.js → dormancyCommand-CE6wG8lj.js} +1 -1
- package/dist/{embeddingsCommand-DRRdneJD.js → embeddingsCommand-C3uAuf6N.js} +1 -1
- package/dist/{envCommand-TZzcyqZ-.js → envCommand-DzuWh8ya.js} +19 -19
- package/dist/{evolveCommand-iU35TPjT.js → evolveCommand-DPLqcYb2.js} +2 -2
- package/dist/index.js +2 -2
- package/dist/{infoCommand-unqisJGp.js → infoCommand-CmczGj_l.js} +1 -1
- package/dist/inspectGateHint-BF6608UT.js +4 -0
- package/dist/{metaCommands-7MJfZ5cf.js → metaCommands-CIoQNlaQ.js} +1 -1
- package/dist/{migrate-BV7I-ZHZ.js → migrate-RwgUWXfc.js} +1 -1
- package/dist/{privacyCommand-C-Df56U_.js → privacyCommand-XejDMvmu.js} +4 -3
- package/dist/{probeCommand-CZfaaUOZ.js → probeCommand-BPEpwT32.js} +40 -39
- package/dist/{projectScaffold-DmzEKHib.js → projectScaffold-CxgtJvlb.js} +1 -1
- package/dist/{projectScaffold-LMMtaavR.js → projectScaffold-DDgWbNLe.js} +2 -2
- package/dist/{runtimeTrace-D5LJ_N55.js → runtimeTrace-6jfznSzr.js} +1 -1
- package/dist/{sdkgen-82xVuvbt.js → sdkgen-CEJZZQUA.js} +1 -1
- package/dist/serveCommand-DNRF2nDI.js +2 -0
- package/dist/{serveCommand-VVGcIMIw.js → serveCommand-DnY4VS3D.js} +541 -540
- package/dist/serveEntry.js +1 -1
- package/dist/{start-BgN62boB.js → start-CidwCcjl.js} +1 -1
- package/dist/{start-T4VesWiM.js → start-RCh6qKFe.js} +24 -24
- package/dist/startEntry.js +1 -1
- package/dist/startup.d.ts +40 -1
- package/dist/startup.js +2 -2
- package/dist/startupRunner-CEqQq7ax.js +108 -0
- package/dist/subcommandNames-CKG5Dz3a.js +27 -0
- package/dist/{templates-De8IR5-c.js → templates-BR-fb4SP.js} +1 -4
- package/dist/{test-CI6iDsYc.js → test-DIQ0jlkQ.js} +1 -1
- package/dist/updateCommand-B0J_T9Vs.js +2 -0
- package/dist/{updateCommand-CwnUK_mf.js → updateCommand-CmksX7m_.js} +1 -1
- package/dist/{webDev-Dybxew86.js → webDev-BKdD7c_a.js} +689 -691
- package/dist/webDev-CcJfdSjl2.js +2 -0
- package/dist/{webhooksCommand-di1CJVzu.js → webhooksCommand-BHeaF1ZJ.js} +1 -1
- package/package.json +35 -17
- package/templates/AGENTS.md +1 -1
- package/templates/agent-docs/_index.md +1 -1
- package/templates/agent-docs/cli.md +16 -0
- package/templates/agent-docs/data.md +30 -0
- package/templates/agent-docs/plugins/audit.md +50 -0
- package/templates/agent-docs/plugins/auth.md +4 -6
- package/templates/agent-docs/reference.md +3 -2
- package/templates/agent-docs/whats-new.md +59 -35
- package/templates/apps/api-ai/package.json +7 -7
- package/templates/apps/api-auth/package.json +8 -8
- package/templates/apps/api-backend/package.json +7 -7
- package/templates/apps/api-backend-deactivation/package.json +7 -7
- package/templates/apps/api-backend-mail/package.json +8 -8
- package/templates/apps/api-backend-mariadb/package.json +9 -9
- package/templates/apps/api-backend-sqlite/package.json +8 -8
- package/templates/apps/api-backend-storage/package.json +8 -8
- package/templates/apps/api-cms/package.json +10 -10
- package/templates/apps/api-cms/tests/content.write.test.ts +16 -2
- package/templates/apps/api-collab/mutations/documents.setBody.mutation.server.ts +11 -5
- package/templates/apps/api-collab/package.json +8 -8
- package/templates/apps/api-collab/tests/documents.setBody.test.ts +8 -2
- package/templates/apps/api-data-advanced/package.json +8 -8
- package/templates/apps/api-durable/package.json +8 -8
- package/templates/apps/api-feature-flags/package.json +9 -9
- package/templates/apps/api-governance/package.json +8 -8
- package/templates/apps/api-kv/package.json +8 -8
- package/templates/apps/api-moderation/package.json +8 -8
- package/templates/apps/api-observability/package.json +8 -8
- package/templates/apps/api-ratelimit/package.json +8 -8
- package/templates/apps/api-rbac/package.json +8 -8
- package/templates/apps/api-rest/package.json +7 -7
- package/templates/apps/api-saas/package.json +11 -11
- package/templates/apps/api-saas-starter/package.json +10 -10
- package/templates/apps/api-search/package.json +8 -8
- package/templates/apps/api-status/package.json +8 -8
- package/templates/apps/api-versioning/mutations/documents.update.mutation.server.ts +7 -5
- package/templates/apps/api-versioning/package.json +8 -8
- package/templates/apps/api-webhooks/package.json +9 -9
- package/templates/apps/changelog/package.json +6 -6
- package/templates/apps/edge-functions/package.json +2 -2
- package/templates/apps/frontend-admin/package.json +8 -8
- package/templates/apps/frontend-app/package.json +9 -9
- package/templates/apps/frontend-auth/package.json +8 -8
- package/templates/apps/frontend-blank/package.json +7 -7
- package/templates/apps/frontend-cms/package.json +9 -9
- package/templates/apps/frontend-collab/package.json +10 -10
- package/templates/apps/frontend-contact/package.json +7 -7
- package/templates/apps/frontend-dashboard/package.json +7 -7
- package/templates/apps/frontend-docs/package.json +7 -7
- package/templates/apps/frontend-i18n/package.json +6 -6
- package/templates/apps/frontend-landing/package.json +7 -7
- package/templates/apps/frontend-portal/package.json +8 -8
- package/templates/apps/frontend-saas/package.json +8 -8
- package/templates/apps/frontend-spa/package.json +7 -7
- package/templates/apps/frontend-ssr/package.json +7 -7
- package/templates/apps/frontend-ssr-api/package.json +8 -8
- package/templates/apps/frontend-static-blog/package.json +6 -6
- package/templates/apps/frontend-status/package.json +8 -8
- package/templates/apps/mobile-app/package.json +3 -3
- package/templates/patches/@effect__cluster@0.60.0.patch +51 -3
- package/dist/apiBuild-ZEZnCXn2.js +0 -2
- package/dist/baselineCommand-C2ClWZN3.js +0 -2
- package/dist/codegen-ChBi_hVa.js +0 -2
- package/dist/dbCommand-DS4b97Is.js +0 -2
- package/dist/doctorCommand-BYffQc0s.js +0 -2
- package/dist/serveCommand-CEBVP36A.js +0 -2
- package/dist/startupRunner-DPGFchOa.js +0 -71
- package/dist/updateCommand-CSBXVsYq.js +0 -2
- package/dist/webDev-BcykISYQ2.js +0 -2
|
@@ -1,20 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
import { n as e, r as t, t as n } from "./subcommandNames-CKG5Dz3a.js";
|
|
2
|
+
import { dirname as r, join as i, resolve as a } from "node:path";
|
|
3
|
+
import { readFileSync as o } from "node:fs";
|
|
4
|
+
import { fileURLToPath as s } from "node:url";
|
|
4
5
|
//#region src/commands.ts
|
|
5
|
-
var
|
|
6
|
+
var c = () => {
|
|
6
7
|
try {
|
|
7
|
-
let
|
|
8
|
-
return JSON.parse(
|
|
8
|
+
let e = i(r(s(import.meta.url)), "..", "package.json");
|
|
9
|
+
return JSON.parse(o(e, "utf8")).version ?? "0.0.0";
|
|
9
10
|
} catch {
|
|
10
11
|
return "0.0.0";
|
|
11
12
|
}
|
|
12
|
-
},
|
|
13
|
+
}, l = [
|
|
13
14
|
{
|
|
14
15
|
name: "list-templates",
|
|
15
16
|
summary: "List available app templates (kind, summary, tags).",
|
|
16
17
|
status: "wired",
|
|
17
|
-
run: (e) => import("./projectScaffold-
|
|
18
|
+
run: (e) => import("./projectScaffold-CxgtJvlb.js").then((t) => t.runListTemplates(e)),
|
|
18
19
|
help: {
|
|
19
20
|
usage: "",
|
|
20
21
|
examples: [["voltro list-templates", "every template `create-project` / `add-app` can scaffold"]]
|
|
@@ -24,7 +25,7 @@ var a = () => {
|
|
|
24
25
|
name: "create-project",
|
|
25
26
|
summary: "Scaffold a new project under apps/<name>/ from one or more templates (creates the workspace root when there is none).",
|
|
26
27
|
status: "wired",
|
|
27
|
-
run: (e) => import("./projectScaffold-
|
|
28
|
+
run: (e) => import("./projectScaffold-CxgtJvlb.js").then((t) => t.runCreateProject(e)),
|
|
28
29
|
help: {
|
|
29
30
|
usage: "<name> [--api <templateId>] [--web <templateId>] [--mobile[=<templateId>]] [--no-register]",
|
|
30
31
|
flags: [
|
|
@@ -64,7 +65,7 @@ var a = () => {
|
|
|
64
65
|
name: "add-app",
|
|
65
66
|
summary: "Add a new app to an existing project from a template. Usage: voltro add-app <appName> --template <id> [--to <projectName>].",
|
|
66
67
|
status: "wired",
|
|
67
|
-
run: (e) => import("./projectScaffold-
|
|
68
|
+
run: (e) => import("./projectScaffold-CxgtJvlb.js").then((t) => t.runAddApp(e)),
|
|
68
69
|
help: {
|
|
69
70
|
usage: "<appName> --template <templateId> [--to <projectName>] [--no-register]",
|
|
70
71
|
flags: [
|
|
@@ -79,7 +80,7 @@ var a = () => {
|
|
|
79
80
|
name: "init",
|
|
80
81
|
summary: "Initialise the current directory as a Voltro workspace root (pnpm-workspace.yaml, root scripts, .gitignore, git init). Idempotent; takes no arguments.",
|
|
81
82
|
status: "wired",
|
|
82
|
-
run: (e) => import("./metaCommands-
|
|
83
|
+
run: (e) => import("./metaCommands-CIoQNlaQ.js").then((t) => t.runInit(e)),
|
|
83
84
|
help: {
|
|
84
85
|
usage: "",
|
|
85
86
|
examples: [["voltro init", "make the current directory a workspace root, then `voltro create-project <name>`"]],
|
|
@@ -90,7 +91,7 @@ var a = () => {
|
|
|
90
91
|
name: "dev",
|
|
91
92
|
summary: "Start the local development server (auto-discovers routes / mutations).",
|
|
92
93
|
status: "wired",
|
|
93
|
-
run: (e) => import("./dev-
|
|
94
|
+
run: (e) => import("./dev-CAOoXOkc.js").then((t) => t.runDev(e)),
|
|
94
95
|
help: {
|
|
95
96
|
usage: "[app]",
|
|
96
97
|
examples: [["voltro dev", "boot the app in the current directory"], ["voltro dev apps/acme/api", "boot a specific app"]],
|
|
@@ -108,7 +109,7 @@ var a = () => {
|
|
|
108
109
|
name: "dashboard",
|
|
109
110
|
summary: "Serve the DevTools dashboard standalone (from @voltro/dashboard). Targets via VOLTRO_DASHBOARD_APPS; --port to override.",
|
|
110
111
|
status: "wired",
|
|
111
|
-
run: (e) => import("./dashboardCommand-
|
|
112
|
+
run: (e) => import("./dashboardCommand-Dxy_kmoW.js").then((t) => t.runDashboardCommand(e)),
|
|
112
113
|
help: {
|
|
113
114
|
usage: "[--port <n>]",
|
|
114
115
|
flags: [["--port <n>", "port to serve the dashboard on"]],
|
|
@@ -120,7 +121,7 @@ var a = () => {
|
|
|
120
121
|
name: "check",
|
|
121
122
|
summary: "Verify the app graph (blast-radius checks) against a running api; LLM-shaped --json diagnostics. Flags: --json, --process <p>, --diff removeTable:<name>.",
|
|
122
123
|
status: "wired",
|
|
123
|
-
run: (e) => import("./checkCommand-
|
|
124
|
+
run: (e) => import("./checkCommand-wibtQx-N.js").then((t) => t.runCheckCommand(e)),
|
|
124
125
|
help: {
|
|
125
126
|
usage: "[--json] [--offline] [--process <name>] [--diff removeTable:<name>]",
|
|
126
127
|
flags: [
|
|
@@ -154,7 +155,7 @@ var a = () => {
|
|
|
154
155
|
name: "webhooks",
|
|
155
156
|
summary: "Outbound-webhook artefacts. `consumer` generates the ZERO-DEPENDENCY Standard-Webhooks verification package a subscriber installs, from this app's own declared events; `events` lists the events a subscriber can register for. Usage: voltro webhooks <consumer|events> [path] [--out <dir>] [--name <pkg>] [--json].",
|
|
156
157
|
status: "wired",
|
|
157
|
-
run: (e) => import("./webhooksCommand-
|
|
158
|
+
run: (e) => import("./webhooksCommand-BHeaF1ZJ.js").then((t) => t.runWebhooksCommand(e)),
|
|
158
159
|
help: {
|
|
159
160
|
usage: "<consumer|events> [path] [--out <dir>] [--name <pkg>] [--json]",
|
|
160
161
|
flags: [
|
|
@@ -170,7 +171,7 @@ var a = () => {
|
|
|
170
171
|
name: "evolve",
|
|
171
172
|
summary: "Schema-evolution copilot: propose an observed-graph-driven codemod + a branch-verified backfill for a schema change (rename/retype/split/drop a column, rename a table). Dry-run by default; --write applies. Usage: voltro evolve rename-column <table>.<col> --to <newName> [--write] [--json].",
|
|
172
173
|
status: "wired",
|
|
173
|
-
run: (e) => import("./evolveCommand-
|
|
174
|
+
run: (e) => import("./evolveCommand-DPLqcYb2.js").then((t) => t.runEvolveCommand(e)),
|
|
174
175
|
help: {
|
|
175
176
|
usage: "<rename-column|rename-table|retype-column|split-column|drop-column> <target> [--to <new>] [--write]",
|
|
176
177
|
flags: [
|
|
@@ -187,7 +188,7 @@ var a = () => {
|
|
|
187
188
|
name: "codegen",
|
|
188
189
|
summary: "Emit rpcGroup.generated.ts from discovered route / mutation descriptors.",
|
|
189
190
|
status: "wired",
|
|
190
|
-
run: (e) => import("./codegenCommand-
|
|
191
|
+
run: (e) => import("./codegenCommand-C60m_LCp.js").then((t) => t.runCodegenCommand(e)),
|
|
191
192
|
help: {
|
|
192
193
|
usage: "[app]",
|
|
193
194
|
examples: [["voltro codegen", "regenerate rpcGroup.generated.ts for the app in the cwd"]],
|
|
@@ -198,7 +199,7 @@ var a = () => {
|
|
|
198
199
|
name: "migrate",
|
|
199
200
|
summary: "Apply the declared schema to the database (alias of `db apply` — diffs declared vs live and emits the ALTERs). `--create-only` for the bootstrap-only CREATE TABLE IF NOT EXISTS path.",
|
|
200
201
|
status: "wired",
|
|
201
|
-
run: (e) => import("./migrate-
|
|
202
|
+
run: (e) => import("./migrate-RwgUWXfc.js").then((t) => t.runMigrateCommand(e)),
|
|
202
203
|
help: {
|
|
203
204
|
usage: "[app] [--create-only]",
|
|
204
205
|
flags: [["--create-only", "only CREATE TABLE IF NOT EXISTS — never ALTER (bootstrap)"]],
|
|
@@ -210,7 +211,7 @@ var a = () => {
|
|
|
210
211
|
name: "test",
|
|
211
212
|
summary: "Run vitest against the app at the cwd (auto-discovers *.test.ts/tsx).",
|
|
212
213
|
status: "wired",
|
|
213
|
-
run: (e) => import("./test-
|
|
214
|
+
run: (e) => import("./test-DIQ0jlkQ.js").then((t) => t.runTestCommand(e)),
|
|
214
215
|
help: {
|
|
215
216
|
usage: "[dir] [filter…] [--watch] [-t <pattern>]",
|
|
216
217
|
flags: [
|
|
@@ -258,7 +259,7 @@ var a = () => {
|
|
|
258
259
|
name: "info",
|
|
259
260
|
summary: "Report versions (CLI, node, every installed @voltro/* — flags lockstep skew), package manager, and dialect. --json for CI. Exits 1 on version skew.",
|
|
260
261
|
status: "wired",
|
|
261
|
-
run: (e) => import("./infoCommand-
|
|
262
|
+
run: (e) => import("./infoCommand-CmczGj_l.js").then((t) => t.runInfoCommand(e)),
|
|
262
263
|
help: {
|
|
263
264
|
usage: "[--json]",
|
|
264
265
|
flags: [["--json", "machine-readable report"]],
|
|
@@ -279,7 +280,7 @@ var a = () => {
|
|
|
279
280
|
name: "env",
|
|
280
281
|
summary: "Inspect/sync the typed-env manifest. Subcommands: check (default), sync (.env.example), types (env.generated.d.ts for CI tsc), turbo.",
|
|
281
282
|
status: "wired",
|
|
282
|
-
run: (e) => import("./envCommand-
|
|
283
|
+
run: (e) => import("./envCommand-DzuWh8ya.js").then((t) => t.runEnvCommand(e)),
|
|
283
284
|
help: {
|
|
284
285
|
usage: "[check|sync|types|turbo] [--force]",
|
|
285
286
|
flags: [["--force", "overwrite the generated file instead of refusing on a conflict"]],
|
|
@@ -308,15 +309,15 @@ var a = () => {
|
|
|
308
309
|
run: async (e) => {
|
|
309
310
|
let t = e.find((e) => !e.startsWith("-")) ?? process.cwd();
|
|
310
311
|
if (e.includes("--preflight")) {
|
|
311
|
-
let { runServePreflight: e } = await import("./doctorCommand-
|
|
312
|
-
return e(
|
|
312
|
+
let { runServePreflight: e } = await import("./doctorCommand-Cjl8Yii8.js");
|
|
313
|
+
return e(a(t), !0);
|
|
313
314
|
}
|
|
314
|
-
let { tryRunWebServe:
|
|
315
|
-
if (!
|
|
316
|
-
let { runServeDispatch: t } = await import("./serveCommand-
|
|
315
|
+
let { tryRunWebServe: n } = await import("./webDev-CcJfdSjl2.js"), r = await n(a(t));
|
|
316
|
+
if (!r.ran) {
|
|
317
|
+
let { runServeDispatch: t } = await import("./serveCommand-DNRF2nDI.js");
|
|
317
318
|
return t(e);
|
|
318
319
|
}
|
|
319
|
-
return
|
|
320
|
+
return r.exitCode;
|
|
320
321
|
},
|
|
321
322
|
help: {
|
|
322
323
|
usage: "[app] [--preflight]",
|
|
@@ -341,13 +342,13 @@ var a = () => {
|
|
|
341
342
|
handlesHelp: !0,
|
|
342
343
|
summary: "Preflight an app for production: the precompiled serve bundle, hand-rolled primitives (naming the shipped one), @voltro/* version skew, executors with no access check, `.serverOnly()` leaks, and junction-FK gaps.",
|
|
343
344
|
status: "wired",
|
|
344
|
-
run: (e) => import("./doctorCommand-
|
|
345
|
+
run: (e) => import("./doctorCommand-Cjl8Yii8.js").then((t) => t.runDoctorCommand(e))
|
|
345
346
|
},
|
|
346
347
|
{
|
|
347
348
|
name: "build",
|
|
348
349
|
summary: "Production build for a web app (vite build + per-page SSG pre-render).",
|
|
349
350
|
status: "wired",
|
|
350
|
-
run: (e) => import("./build-
|
|
351
|
+
run: (e) => import("./build-_LoTC1s0.js").then((t) => t.runBuildCommand(e)),
|
|
351
352
|
help: {
|
|
352
353
|
usage: "[app] [--target <t>]",
|
|
353
354
|
flags: [["--target <t>", "build target"]],
|
|
@@ -363,7 +364,7 @@ var a = () => {
|
|
|
363
364
|
name: "prune-runtime",
|
|
364
365
|
summary: "Trim a deployed web tree’s node_modules to the reachable runtime set (standalone image slimming).",
|
|
365
366
|
status: "wired",
|
|
366
|
-
run: (e) => import("./runtimeTrace-
|
|
367
|
+
run: (e) => import("./runtimeTrace-6jfznSzr.js").then((t) => t.runPruneRuntimeCommand(e)),
|
|
367
368
|
hidden: !0
|
|
368
369
|
},
|
|
369
370
|
{
|
|
@@ -381,7 +382,7 @@ var a = () => {
|
|
|
381
382
|
name: "dormancy",
|
|
382
383
|
summary: "Single-node scale-to-zero: front the API with a wake-orchestrator that stops the app when idle and brings it back on a request or a due wakeup (cron/workflow). Needs a SQL store. Flags: --port, --app-port, --idle-grace-ms, --tick-ms.",
|
|
383
384
|
status: "wired",
|
|
384
|
-
run: (e) => import("./dormancyCommand-
|
|
385
|
+
run: (e) => import("./dormancyCommand-CE6wG8lj.js").then((t) => t.runDormancyCommand(e)),
|
|
385
386
|
help: {
|
|
386
387
|
usage: "[app] [--port <n>] [--app-port <n>] [--idle-grace-ms <n>] [--tick-ms <n>]",
|
|
387
388
|
flags: [
|
|
@@ -398,7 +399,7 @@ var a = () => {
|
|
|
398
399
|
name: "start",
|
|
399
400
|
summary: "Production runtime: serves dist + SSR-on-demand for ssr/isr pages.",
|
|
400
401
|
status: "wired",
|
|
401
|
-
run: (e) => import("./start-
|
|
402
|
+
run: (e) => import("./start-CidwCcjl.js").then((t) => t.runStartCommand(e)),
|
|
402
403
|
help: {
|
|
403
404
|
usage: "[app]",
|
|
404
405
|
examples: [["voltro start", "serve a built web app (dist + SSR-on-demand)"]],
|
|
@@ -409,7 +410,7 @@ var a = () => {
|
|
|
409
410
|
name: "deploy",
|
|
410
411
|
summary: "Show deploy options + `voltro deploy plan` auto-detects the target tier (static-cdn / container / functions) per app + function.",
|
|
411
412
|
status: "wired",
|
|
412
|
-
run: (e) => import("./metaCommands-
|
|
413
|
+
run: (e) => import("./metaCommands-CIoQNlaQ.js").then((t) => t.runDeploy(e)),
|
|
413
414
|
help: {
|
|
414
415
|
usage: "[plan]",
|
|
415
416
|
examples: [["voltro deploy plan", "the auto-detected target tier per app + function"]]
|
|
@@ -433,9 +434,9 @@ var a = () => {
|
|
|
433
434
|
name: "privacy",
|
|
434
435
|
summary: "GDPR / DSAR tooling. scope [root] — derive the subject graph from the schema AND print what it cannot see. export <subjectId> --url <app> / erase <subjectId> --url <app> --confirm — run against the RUNNING app's admin-gated governance endpoint, so the erasure log and configured anonymize fields apply.",
|
|
435
436
|
status: "wired",
|
|
436
|
-
run: (e) => import("./privacyCommand-
|
|
437
|
+
run: (e) => import("./privacyCommand-XejDMvmu.js").then((t) => t.runPrivacyCommand(e)),
|
|
437
438
|
help: {
|
|
438
|
-
usage:
|
|
439
|
+
usage: t(e),
|
|
439
440
|
examples: [
|
|
440
441
|
["voltro privacy scope --subject-table users", "every table a DSAR reaches, and every table it does not"],
|
|
441
442
|
["voltro privacy export usr_123 --url https://api.example.com", "the subject's portable bundle"],
|
|
@@ -450,11 +451,11 @@ var a = () => {
|
|
|
450
451
|
},
|
|
451
452
|
{
|
|
452
453
|
name: "db",
|
|
453
|
-
summary: "Database subcommands. Declarative flow: plan, apply, branch, plans, drift [--accept], squash, restore-snapshot. File migrations: generate [name], migrate, rollback, status, files, rollback-file.
|
|
454
|
+
summary: "Database subcommands. Declarative flow: plan, apply, branch, plans, drift [--accept], squash, restore-snapshot. File migrations: generate [name], migrate, rollback, status, files, rollback-file. Data + housekeeping: seed, gc-snapshots, adopt. Credentials at rest: scan-credentials (find plaintext), encrypt-column (migrate a populated column onto .encrypted()).",
|
|
454
455
|
status: "wired",
|
|
455
|
-
run: (e) => import("./dbCommand-
|
|
456
|
+
run: (e) => import("./dbCommand-CC-qNzpz.js").then((t) => t.runDbCommand(e)),
|
|
456
457
|
help: {
|
|
457
|
-
usage:
|
|
458
|
+
usage: t(n),
|
|
458
459
|
examples: [
|
|
459
460
|
["voltro db plan", "the diff between the declared schema and the live database"],
|
|
460
461
|
["voltro db apply", "apply that diff"],
|
|
@@ -468,7 +469,7 @@ var a = () => {
|
|
|
468
469
|
name: "data",
|
|
469
470
|
summary: "Export/import + backup/restore of app data. Logical (rows + optional assets): export <dir> [--tenant <id>|--tables a,b] [--assets] [--compression zstd|gzip|none] [--consistency live|snapshot]; import <dir> [--assets] [--no-verify]. Native (rows ONLY — no blobs): backup <dir> / restore <dir> (pg_dump/mariadb-dump/…). Resumable; typed-NDJSON; content-addressed assets on the logical path.",
|
|
470
471
|
status: "wired",
|
|
471
|
-
run: (e) => import("./dataCommand-
|
|
472
|
+
run: (e) => import("./dataCommand-D6-Ha2lf.js").then((t) => t.runDataCommand(e)),
|
|
472
473
|
help: {
|
|
473
474
|
usage: "<export|import|backup|restore> <dir> [options]",
|
|
474
475
|
flags: [
|
|
@@ -499,7 +500,7 @@ var a = () => {
|
|
|
499
500
|
handlesHelp: !0,
|
|
500
501
|
summary: "Manage the project deploy baseline (bare / compose / helm). Subcommands: list, status, set.",
|
|
501
502
|
status: "wired",
|
|
502
|
-
run: (e) => import("./baselineCommand-
|
|
503
|
+
run: (e) => import("./baselineCommand-Cfw2Afwm.js").then((t) => t.runBaselineCommand(e))
|
|
503
504
|
},
|
|
504
505
|
{
|
|
505
506
|
name: "add",
|
|
@@ -516,27 +517,27 @@ var a = () => {
|
|
|
516
517
|
handlesHelp: !0,
|
|
517
518
|
summary: "Generate strong secrets. `generate [purpose]` (data-transfer, session, bundle-key, field-encryption, …) emits the right var+format; `generate` alone prints a generic secret; `list` shows all. Encrypted per-env storage is in Voltro Cloud.",
|
|
518
519
|
status: "wired",
|
|
519
|
-
run: (e) => import("./metaCommands-
|
|
520
|
+
run: (e) => import("./metaCommands-CIoQNlaQ.js").then((t) => t.runSecret(e))
|
|
520
521
|
},
|
|
521
522
|
{
|
|
522
523
|
name: "update",
|
|
523
524
|
handlesHelp: !0,
|
|
524
525
|
summary: "Upgrade the app to the latest framework: bump every @voltro/* dependency (across ALL workspace members, install once at the workspace root), then run the codemods shipped with the target version. Flags: --to <version>, --from <version>, --codemods-only, --dry-run, --force, --exact, --help. After: run `voltro db apply`.",
|
|
525
526
|
status: "wired",
|
|
526
|
-
run: (e) => import("./updateCommand-
|
|
527
|
+
run: (e) => import("./updateCommand-B0J_T9Vs.js").then((t) => t.runUpdateCommand(e))
|
|
527
528
|
},
|
|
528
529
|
{
|
|
529
530
|
name: "_apply-codemods",
|
|
530
531
|
summary: "Internal: apply shipped codemods for a framework version jump (re-exec target of `voltro update`).",
|
|
531
532
|
status: "wired",
|
|
532
533
|
hidden: !0,
|
|
533
|
-
run: (e) => import("./updateCommand-
|
|
534
|
+
run: (e) => import("./updateCommand-B0J_T9Vs.js").then((t) => t.runApplyCodemods(e))
|
|
534
535
|
},
|
|
535
536
|
{
|
|
536
537
|
name: "embeddings",
|
|
537
538
|
summary: "Embeddings tooling. Subcommand: backfill <table> --text <field> --vector <field> [--model <m>] [--model-field <f>] [--batch <n>] [--dry-run] — (re)embed rows the vectorEmbedding() mixin missed.",
|
|
538
539
|
status: "wired",
|
|
539
|
-
run: (e) => import("./embeddingsCommand-
|
|
540
|
+
run: (e) => import("./embeddingsCommand-C3uAuf6N.js").then((t) => t.runEmbeddingsCommand(e)),
|
|
540
541
|
help: {
|
|
541
542
|
usage: "backfill <table> --text <field> --vector <field> [--model <m>] [--batch <n>] [--dry-run]",
|
|
542
543
|
flags: [
|
|
@@ -554,7 +555,7 @@ var a = () => {
|
|
|
554
555
|
name: "telemetry",
|
|
555
556
|
summary: "Report telemetry status — Voltro collects none (no phone-home, nothing to opt out of).",
|
|
556
557
|
status: "wired",
|
|
557
|
-
run: (e) => import("./metaCommands-
|
|
558
|
+
run: (e) => import("./metaCommands-CIoQNlaQ.js").then((t) => t.runTelemetry(e)),
|
|
558
559
|
help: {
|
|
559
560
|
usage: "",
|
|
560
561
|
examples: [["voltro telemetry", "confirm what is collected: nothing"]],
|
|
@@ -582,7 +583,7 @@ var a = () => {
|
|
|
582
583
|
summary: "Ask a RUNNING app whether its declared access is enforced. `access` calls every guarded procedure with NO credentials and reports any that answer (--process, --url, --strict, --format).",
|
|
583
584
|
status: "wired",
|
|
584
585
|
handlesHelp: !0,
|
|
585
|
-
run: (e) => import("./probeCommand-
|
|
586
|
+
run: (e) => import("./probeCommand-BPEpwT32.js").then((t) => t.runProbeCommand(e))
|
|
586
587
|
},
|
|
587
588
|
{
|
|
588
589
|
name: "schedule",
|
|
@@ -645,7 +646,7 @@ var a = () => {
|
|
|
645
646
|
name: "login",
|
|
646
647
|
summary: "Log in to Voltro Cloud — opens a browser (WorkOS) and returns to the CLI after success. Alias for `voltro cloud login`. `--token <t>` (or VOLTRO_CLOUD_TOKEN) for headless.",
|
|
647
648
|
status: "wired",
|
|
648
|
-
run: (e) => import("./cloudCmd-
|
|
649
|
+
run: (e) => import("./cloudCmd-NQSwe_Qk.js").then((t) => t.runCloudCommand(["login", ...e])),
|
|
649
650
|
help: {
|
|
650
651
|
usage: "[--token <t>]",
|
|
651
652
|
flags: [["--token <t>", "headless login with an existing token (or set VOLTRO_CLOUD_TOKEN)"]],
|
|
@@ -657,21 +658,21 @@ var a = () => {
|
|
|
657
658
|
handlesHelp: !0,
|
|
658
659
|
summary: "Control-plane client. Subcommands: login (browser/WorkOS), whoami, projects, project create, env list|set|pull, import, deploy, scan, rollback, register. Base url via VOLTRO_CLOUD_URL.",
|
|
659
660
|
status: "wired",
|
|
660
|
-
run: (e) => import("./cloudCmd-
|
|
661
|
+
run: (e) => import("./cloudCmd-NQSwe_Qk.js").then((t) => t.runCloudCommand(e))
|
|
661
662
|
},
|
|
662
663
|
{
|
|
663
664
|
name: "help",
|
|
664
665
|
summary: "Print this help.",
|
|
665
666
|
status: "wired",
|
|
666
|
-
run: async (e) => (
|
|
667
|
+
run: async (e) => (f(), 0)
|
|
667
668
|
},
|
|
668
669
|
{
|
|
669
670
|
name: "version",
|
|
670
671
|
summary: "Print the voltro version.",
|
|
671
672
|
status: "wired",
|
|
672
|
-
run: async () => (console.log(
|
|
673
|
+
run: async () => (console.log(c()), 0)
|
|
673
674
|
}
|
|
674
|
-
],
|
|
675
|
+
], u = [
|
|
675
676
|
["Start a project", [
|
|
676
677
|
"init",
|
|
677
678
|
"create-project",
|
|
@@ -739,32 +740,32 @@ var a = () => {
|
|
|
739
740
|
"info"
|
|
740
741
|
]],
|
|
741
742
|
["Meta", ["help", "version"]]
|
|
742
|
-
],
|
|
743
|
+
], d = (e, t = 68) => {
|
|
743
744
|
let n = e.search(/\.(\s|$)/), r = n > 0 ? e.slice(0, n) : e;
|
|
744
745
|
return r.length <= t ? r : `${r.slice(0, t - 1).trimEnd()}…`;
|
|
745
|
-
},
|
|
746
|
-
let e =
|
|
747
|
-
console.log(`voltro v${
|
|
748
|
-
for (let [e, r] of
|
|
746
|
+
}, f = () => {
|
|
747
|
+
let e = l.filter((e) => !e.hidden), t = new Map(e.map((e) => [e.name, e])), n = e.reduce((e, t) => Math.max(e, t.name.length), 0);
|
|
748
|
+
console.log(`voltro v${c()}`), console.log("voltro <command> [args]");
|
|
749
|
+
for (let [e, r] of u) {
|
|
749
750
|
let i = r.map((e) => t.get(e)).filter((e) => e !== void 0);
|
|
750
751
|
if (i.length !== 0) {
|
|
751
752
|
console.log(`\n${e}`);
|
|
752
753
|
for (let e of i) {
|
|
753
754
|
let t = " ".repeat(n - e.name.length + 2);
|
|
754
|
-
console.log(` ${e.name}${t}${
|
|
755
|
+
console.log(` ${e.name}${t}${d(e.summary)}`);
|
|
755
756
|
}
|
|
756
757
|
}
|
|
757
758
|
}
|
|
758
|
-
let r = new Set(
|
|
759
|
+
let r = new Set(u.flatMap(([, e]) => e)), i = e.filter((e) => !r.has(e.name));
|
|
759
760
|
if (i.length > 0) {
|
|
760
761
|
console.log("\nOther");
|
|
761
762
|
for (let e of i) {
|
|
762
763
|
let t = " ".repeat(n - e.name.length + 2);
|
|
763
|
-
console.log(` ${e.name}${t}${
|
|
764
|
+
console.log(` ${e.name}${t}${d(e.summary)}`);
|
|
764
765
|
}
|
|
765
766
|
}
|
|
766
767
|
console.log("\nRun 'voltro <command> --help' for the full description, or see https://voltro.dev/docs/cli.");
|
|
767
|
-
},
|
|
768
|
+
}, p = (e, t) => {
|
|
768
769
|
let n = Array.from({ length: t.length + 1 }, (e, t) => t), r = Array(t.length + 1).fill(0);
|
|
769
770
|
for (let i = 1; i <= e.length; i++) {
|
|
770
771
|
r[0] = i;
|
|
@@ -775,13 +776,13 @@ var a = () => {
|
|
|
775
776
|
for (let e = 0; e <= t.length; e++) n[e] = r[e];
|
|
776
777
|
}
|
|
777
778
|
return n[t.length];
|
|
778
|
-
},
|
|
779
|
-
let n =
|
|
779
|
+
}, m = (e, t = 3) => {
|
|
780
|
+
let n = l.filter((e) => !e.hidden).map((e) => e.name), r = e.length <= 4 ? 1 : e.length <= 8 ? 2 : 3;
|
|
780
781
|
return n.map((t) => ({
|
|
781
782
|
name: t,
|
|
782
|
-
score: t.startsWith(e) || e.startsWith(t) ? -2 : t.includes(e) ? -1 :
|
|
783
|
+
score: t.startsWith(e) || e.startsWith(t) ? -2 : t.includes(e) ? -1 : p(e, t)
|
|
783
784
|
})).filter((e) => e.score <= r).sort((e, t) => e.score - t.score || e.name.localeCompare(t.name)).slice(0, t).map((e) => e.name);
|
|
784
|
-
},
|
|
785
|
+
}, h = (e) => {
|
|
785
786
|
let t = [`voltro ${e.name} — ${e.summary}`], n = e.help, r = (e) => {
|
|
786
787
|
let t = e.reduce((e, [t]) => Math.max(e, t.length), 0);
|
|
787
788
|
return e.map(([e, n]) => ` ${e}${" ".repeat(t - e.length + 2)}${n}`);
|
|
@@ -791,26 +792,26 @@ var a = () => {
|
|
|
791
792
|
for (let [e, r] of n.examples) t.push(` ${e}`, ` ${r}`);
|
|
792
793
|
}
|
|
793
794
|
return n?.notes !== void 0 && n.notes.length > 0 && t.push("", ...n.notes), t.push("", `Docs: https://voltro.dev/docs/cli/${e.name}`), t;
|
|
794
|
-
},
|
|
795
|
+
}, g = /* @__PURE__ */ new Set(["--help", "-h"]), _ = async (e) => {
|
|
795
796
|
let [t, ...n] = e;
|
|
796
|
-
if (!t ||
|
|
797
|
-
if (t === "--version" || t === "-v") return console.log(
|
|
798
|
-
if (t === "help" && n.length > 0 && !n[0].startsWith("-")) return
|
|
799
|
-
let r =
|
|
797
|
+
if (!t || g.has(t)) return f(), 0;
|
|
798
|
+
if (t === "--version" || t === "-v") return console.log(c()), 0;
|
|
799
|
+
if (t === "help" && n.length > 0 && !n[0].startsWith("-")) return _([n[0], "--help"]);
|
|
800
|
+
let r = l.find((e) => e.name === t);
|
|
800
801
|
if (!r) {
|
|
801
802
|
console.error(`voltro: unknown command '${t}'`);
|
|
802
|
-
let e =
|
|
803
|
+
let e = m(t);
|
|
803
804
|
if (e.length > 0) {
|
|
804
805
|
console.error(`\nDid you mean${e.length > 1 ? " one of" : ""}?`);
|
|
805
806
|
for (let t of e) console.error(` voltro ${t}`);
|
|
806
807
|
}
|
|
807
808
|
return console.error("\nrun 'voltro help' for available commands"), 2;
|
|
808
809
|
}
|
|
809
|
-
if (!r.handlesHelp && n.some((e) =>
|
|
810
|
-
for (let e of
|
|
810
|
+
if (!r.handlesHelp && n.some((e) => g.has(e))) {
|
|
811
|
+
for (let e of h(r)) console.log(e);
|
|
811
812
|
return 0;
|
|
812
813
|
}
|
|
813
814
|
return r.run(n);
|
|
814
815
|
};
|
|
815
816
|
//#endregion
|
|
816
|
-
export {
|
|
817
|
+
export { h as a, f as i, u as n, m as o, _ as r, l as t };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { d as e } from "./dev-
|
|
2
|
-
import { P as t, j as n } from "./webDev-
|
|
3
|
-
import { t as r } from "./start-
|
|
1
|
+
import { d as e } from "./dev-E7Eo5GHc.js";
|
|
2
|
+
import { P as t, j as n } from "./webDev-BKdD7c_a.js";
|
|
3
|
+
import { t as r } from "./start-RCh6qKFe.js";
|
|
4
4
|
import { join as i } from "node:path";
|
|
5
5
|
import { existsSync as a } from "node:fs";
|
|
6
6
|
import { createLogger as o } from "@voltro/logger";
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { t as e } from "./cliError-BmdYnghb.js";
|
|
2
|
-
import { c as t, i as n, o as r } from "./dev-
|
|
2
|
+
import { c as t, i as n, o as r } from "./dev-E7Eo5GHc.js";
|
|
3
3
|
import { n as i, t as a } from "./cliArgs-D4p8n7EE.js";
|
|
4
4
|
import { r as o } from "./dialectDriver-CgXnDfec.js";
|
|
5
5
|
import { t as s } from "./dataProfile-dW-PsfLB.js";
|
|
6
6
|
import { o as c, t as l } from "./inspectFetch-EMuhTG_9.js";
|
|
7
|
-
import { r as u } from "./dbCommand-
|
|
7
|
+
import { r as u } from "./dbCommand-C4UW8cVN.js";
|
|
8
8
|
import { createLogger as d } from "@voltro/logger";
|
|
9
9
|
import { Effect as f, Stream as p } from "effect";
|
|
10
10
|
import { SqlClient as m } from "@effect/sql";
|