@voltro/cli 0.39.0 → 0.40.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 +210 -0
- package/dist/agentsMd-Bu_XQgVf.js +2 -0
- package/dist/{agentsMd-7zI2h5l9.js → agentsMd-D6yD7IQv.js} +31 -14
- package/dist/apiBuild-BIyGkym8.js +2 -0
- package/dist/{apiBuild-DGalUk9v.js → apiBuild-C8xBEYbL.js} +2 -2
- package/dist/bin.js +1 -1
- package/dist/{build-CfF6t0UM.js → build-CkhFGnKA.js} +168 -165
- package/dist/{checkCommand-CBtynBKW.js → checkCommand-BcXJa2IS.js} +3 -3
- package/dist/{checkCommand-BV56Pcc1.js → checkCommand-QbHshOac.js} +1 -1
- package/dist/{cloudCmd-C42gaO8s.js → cloudCmd-F4YJeqM3.js} +1 -1
- package/dist/{codegenCommand-W7SDdiAQ.js → codegenCommand-DF2OJh3O.js} +2 -2
- package/dist/{codemodRunner-D-jTyvWo.js → codemodRunner-BcOvi4A2.js} +103 -0
- package/dist/{commands-BD9eBRY3.js → commands-7Z7-HOE3.js} +30 -30
- package/dist/{dashboardCommand-7qGylm0F.js → dashboardCommand-CUycH6dR.js} +5 -5
- package/dist/{dataCommand-C_F2DYxe.js → dataCommand-By78lscK.js} +1 -1
- package/dist/{dev-alhkKoEX.js → dev-D8JSKlBM.js} +1 -1
- package/dist/{dev-gqpnzVhI.js → dev-Dh1NuYx1.js} +1569 -1569
- package/dist/{doctorCommand-Bvs-BQrM.js → doctorCommand-C-8-Z9D6.js} +55 -42
- package/dist/doctorCommand-FhQ7EVYL.js +2 -0
- package/dist/{dormancyCommand-B-PPHc9Q.js → dormancyCommand-A79Odglm.js} +1 -1
- package/dist/{embeddingsCommand-OKY6XjUf.js → embeddingsCommand-CoiyHfkY.js} +1 -1
- package/dist/{envCommand-B1-Zm85H.js → envCommand-B6d0s-jZ.js} +8 -8
- package/dist/{evolveCommand-C4-NlFbd.js → evolveCommand-BC5a9lxX.js} +2 -2
- package/dist/frameworkTableAssembly-DgylYh9_.js +2 -0
- package/dist/index.js +1 -1
- package/dist/{infoCommand-CTo8Jnhq.js → infoCommand-ZqSVzJZ4.js} +1 -1
- package/dist/{metaCommands-DUYR--Ts.js → metaCommands-CfRLra0s.js} +1 -1
- package/dist/{projectScaffold-BEhhHjPr.js → projectScaffold-BIl97_E6.js} +1 -1
- package/dist/{projectScaffold-BvhLOrLq.js → projectScaffold-mIX_DpSe.js} +1 -1
- package/dist/{runtimeTrace-DzZOCd94.js → runtimeTrace-BslKJjDY.js} +1 -1
- package/dist/{sdkgen-C4roLErM.js → sdkgen-DQ8uEmmn.js} +1 -1
- package/dist/serveCommand-BmvEQCMS.js +2 -0
- package/dist/{serveCommand-B6TATyCj.js → serveCommand-Dqb9Ku1-.js} +657 -657
- package/dist/serveEntry.js +1 -1
- package/dist/{start-BNuTWdRd.js → start-BA7txHhY.js} +1 -1
- package/dist/{start-ft_KzFTd.js → start-dkNYKtgQ.js} +342 -318
- package/dist/startEntry.js +1 -1
- package/dist/updateCommand-BauSVxPp.js +2 -0
- package/dist/{updateCommand-CHBmCB17.js → updateCommand-eoGpZr3E.js} +1 -1
- package/dist/webDev-CBbKs4dZ.js +2 -0
- package/dist/{webDev-CTpSY-e_.js → webDev-bybjZA0o.js} +240 -186
- package/dist/{webhooksCommand-BVvOtZ1B.js → webhooksCommand-DubZWNOx.js} +1 -1
- package/package.json +29 -17
- package/templates/AGENTS.md +1 -1
- package/templates/agent-docs/_index.md +1 -1
- package/templates/agent-docs/authentication.md +13 -4
- package/templates/agent-docs/data.md +43 -0
- package/templates/agent-docs/routing.md +40 -0
- package/templates/agent-docs/whats-new.md +91 -157
- 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-collab/package.json +8 -8
- package/templates/apps/api-data-advanced/package.json +8 -8
- package/templates/apps/api-durable/package.json +8 -8
- package/templates/apps/api-durable/startup/warm.startup.tsx +16 -2
- package/templates/apps/api-durable/tests/orders.place.test.ts +17 -4
- 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/package.json +8 -8
- package/templates/apps/api-webhooks/package.json +9 -9
- package/templates/apps/changelog/package.json +6 -6
- package/templates/apps/changelog/src/pages/[slug]/page.test.tsx +8 -1
- 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 +4 -4
- package/dist/agentsMd-BFCXh2gl.js +0 -2
- package/dist/apiBuild-2GvK8CUB.js +0 -2
- package/dist/doctorCommand-CVXfRrng.js +0 -2
- package/dist/frameworkTableAssembly-YyVe32Cb.js +0 -2
- package/dist/serveCommand-CNR0gI9V.js +0 -2
- package/dist/updateCommand-6FMU2klq.js +0 -2
- package/dist/webDev-id3I5PvG.js +0 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { l as e, z as t } from "./dev-
|
|
2
|
-
import {
|
|
1
|
+
import { l as e, z as t } from "./dev-Dh1NuYx1.js";
|
|
2
|
+
import { st as n } from "./webDev-bybjZA0o.js";
|
|
3
3
|
import { r } from "./codegen-CbpGCWLG.js";
|
|
4
4
|
import { basename as i, join as a, relative as o, resolve as s } from "node:path";
|
|
5
5
|
import { promises as c } from "node:fs";
|
|
@@ -5440,6 +5440,109 @@ var b = (e, t, n) => {
|
|
|
5440
5440
|
"A procedure that genuinely takes no input keeps `Schema.Struct({})` and is",
|
|
5441
5441
|
"correct as it stands — callers must send `{}` or nothing."
|
|
5442
5442
|
].join("\n")
|
|
5443
|
+
}),
|
|
5444
|
+
S({
|
|
5445
|
+
version: "0.40.0",
|
|
5446
|
+
id: "0.40.0/01_cold-start-failure-is-its-own-state",
|
|
5447
|
+
title: "a failed cold start is `failed: true`, not `loading: true`",
|
|
5448
|
+
kind: "manual",
|
|
5449
|
+
appliesTo: ({ project: e }) => e.getSourceFiles().some((e) => {
|
|
5450
|
+
let t = e.getFullText();
|
|
5451
|
+
return C("useSubscription").test(t) || C("usePreloadedSubscription").test(t) || /\buseWorkflow\w*\(/.test(t);
|
|
5452
|
+
}),
|
|
5453
|
+
note: [
|
|
5454
|
+
"A subscription whose COLD START failed no longer reports `loading: true`.",
|
|
5455
|
+
"It is its own state: `failed: true`, `loading: false`, `data: undefined`.",
|
|
5456
|
+
"",
|
|
5457
|
+
"WHY",
|
|
5458
|
+
"",
|
|
5459
|
+
"The old shape left `loading` true for a subscription where nothing was in",
|
|
5460
|
+
"flight and nothing more was coming, so the blessed pattern",
|
|
5461
|
+
"",
|
|
5462
|
+
" if (loading) return <Skeleton/>",
|
|
5463
|
+
"",
|
|
5464
|
+
"rendered a skeleton forever. The escape hatch was `error`, and the natural",
|
|
5465
|
+
"shape of a wrapper — passing `{ data, loading }` through — drops it. A",
|
|
5466
|
+
"consumer hit that with three wrappers; the framework had six of its own.",
|
|
5467
|
+
"",
|
|
5468
|
+
"WHAT BREAKS, AND HOW YOU FIND IT",
|
|
5469
|
+
"",
|
|
5470
|
+
"`!loading` no longer proves `data` is present, so every call site that",
|
|
5471
|
+
"reads `data` after a bare `loading` check is a TYPE ERROR naming the file",
|
|
5472
|
+
"and line. Run your typecheck; that list is the complete set of places to",
|
|
5473
|
+
"look. Nothing fails silently.",
|
|
5474
|
+
"",
|
|
5475
|
+
"WHAT TO WRITE INSTEAD — and this is a decision per screen, not a rewrite",
|
|
5476
|
+
"",
|
|
5477
|
+
" const s = useSubscription(api, tag, input)",
|
|
5478
|
+
" if (s.loading) return <Skeleton/>",
|
|
5479
|
+
" if (s.failed) return <RetryPanel error={s.error}/> // ← yours to choose",
|
|
5480
|
+
" return <Table rows={s.data}/>",
|
|
5481
|
+
"",
|
|
5482
|
+
"Or, when the two should look the same:",
|
|
5483
|
+
"",
|
|
5484
|
+
" if (s.loading || s.failed) return <Skeleton/>",
|
|
5485
|
+
"",
|
|
5486
|
+
"That second form is what a mechanical transform would have written",
|
|
5487
|
+
"everywhere, and it is wrong for most screens — an infinite skeleton is",
|
|
5488
|
+
"exactly what this release removes. We did not guess on your behalf.",
|
|
5489
|
+
"",
|
|
5490
|
+
"IF YOU WRAP THE STATE",
|
|
5491
|
+
"",
|
|
5492
|
+
"A hook that re-exports `{ data, loading }` must carry `failed` too, or its",
|
|
5493
|
+
"callers inherit the original bug through your wrapper. The framework fixed",
|
|
5494
|
+
"six of its own in `useWorkflow.ts`; `state.loading || state.idle` became",
|
|
5495
|
+
"`state.loading || state.idle || state.failed`.",
|
|
5496
|
+
"",
|
|
5497
|
+
"WHAT DOES NOT CHANGE",
|
|
5498
|
+
"",
|
|
5499
|
+
" • A failure AFTER the first snapshot still leaves good data on screen",
|
|
5500
|
+
" with `error` set. Only the COLD start — no snapshot ever — is `failed`.",
|
|
5501
|
+
" • A `fallback` subscription is unchanged: `data` is always present, so",
|
|
5502
|
+
" there is nothing to narrow. `failed` is reported there, not gating.",
|
|
5503
|
+
" • `idle` (from a dynamic `skip`) is untouched, and stays opt-in by",
|
|
5504
|
+
" overload. `failed` is NOT opt-in — any subscription can fail.",
|
|
5505
|
+
" • The failed state is terminal for one TRANSPORT, not forever: a",
|
|
5506
|
+
" reconnect discards the error and re-subscribes, so the entry returns to",
|
|
5507
|
+
" pending on its own."
|
|
5508
|
+
].join("\n")
|
|
5509
|
+
}),
|
|
5510
|
+
S({
|
|
5511
|
+
version: "0.40.0",
|
|
5512
|
+
id: "0.40.0/02_rejected-credential-widens-guard-results",
|
|
5513
|
+
title: "a rejected credential answers `Unauthenticated`, widening three guard results",
|
|
5514
|
+
kind: "manual",
|
|
5515
|
+
appliesTo: ({ project: e }) => e.getSourceFiles().some((e) => {
|
|
5516
|
+
let t = e.getFullText();
|
|
5517
|
+
return C("checkGuards").test(t) || C("checkGuardsEffect").test(t) || C("bindEvent").test(t);
|
|
5518
|
+
}),
|
|
5519
|
+
note: [
|
|
5520
|
+
"A guard refusing a caller whose CREDENTIAL was rejected now answers",
|
|
5521
|
+
"`Unauthenticated` rather than `ScopeError`. Three results widened:",
|
|
5522
|
+
"",
|
|
5523
|
+
" checkGuards(…) ScopeError | Unauthenticated | null",
|
|
5524
|
+
" checkGuardsEffect(…) Effect<ScopeError | Unauthenticated | null>",
|
|
5525
|
+
" bindEvent(…) Stream<…, ScopeError | Unauthenticated, …>",
|
|
5526
|
+
"",
|
|
5527
|
+
"WHY",
|
|
5528
|
+
"",
|
|
5529
|
+
"A user whose tab outlived their IdP token was told they lacked a scope.",
|
|
5530
|
+
"True — an anonymous caller holds none — and it sends whoever reads it into",
|
|
5531
|
+
"the permissions system while the problem is an expired session. A consumer",
|
|
5532
|
+
"spent a round there; the subject was their own administrator, and the same",
|
|
5533
|
+
"call with a fresh token worked.",
|
|
5534
|
+
"",
|
|
5535
|
+
"WHAT TO DO",
|
|
5536
|
+
"",
|
|
5537
|
+
"`tsc` names every site. At each one, decide what an expired session should",
|
|
5538
|
+
"do that a missing permission should not — re-authenticate instead of",
|
|
5539
|
+
"showing a permissions error is usually the answer, and is the reason this",
|
|
5540
|
+
"distinction now exists. Widening the annotation alone compiles and keeps",
|
|
5541
|
+
"the behaviour that was reported.",
|
|
5542
|
+
"",
|
|
5543
|
+
"`openAccess` procedures are untouched: the stamp only travels, and only a",
|
|
5544
|
+
"guard that actually refuses ever spends it."
|
|
5545
|
+
].join("\n")
|
|
5443
5546
|
})
|
|
5444
5547
|
], Y = /* @__PURE__ */ new Set([
|
|
5445
5548
|
"node_modules",
|
|
@@ -15,7 +15,7 @@ var c = () => {
|
|
|
15
15
|
name: "list-templates",
|
|
16
16
|
summary: "List available app templates (kind, summary, tags).",
|
|
17
17
|
status: "wired",
|
|
18
|
-
run: (e) => import("./projectScaffold-
|
|
18
|
+
run: (e) => import("./projectScaffold-BIl97_E6.js").then((t) => t.runListTemplates(e)),
|
|
19
19
|
help: {
|
|
20
20
|
usage: "",
|
|
21
21
|
examples: [["voltro list-templates", "every template `create-project` / `add-app` can scaffold"]]
|
|
@@ -25,7 +25,7 @@ var c = () => {
|
|
|
25
25
|
name: "create-project",
|
|
26
26
|
summary: "Scaffold a new project under apps/<name>/ from one or more templates (creates the workspace root when there is none).",
|
|
27
27
|
status: "wired",
|
|
28
|
-
run: (e) => import("./projectScaffold-
|
|
28
|
+
run: (e) => import("./projectScaffold-BIl97_E6.js").then((t) => t.runCreateProject(e)),
|
|
29
29
|
help: {
|
|
30
30
|
usage: "<name> [--api <templateId>] [--web <templateId>] [--mobile[=<templateId>]] [--no-register]",
|
|
31
31
|
flags: [
|
|
@@ -65,7 +65,7 @@ var c = () => {
|
|
|
65
65
|
name: "add-app",
|
|
66
66
|
summary: "Add a new app to an existing project from a template. Usage: voltro add-app <appName> --template <id> [--to <projectName>].",
|
|
67
67
|
status: "wired",
|
|
68
|
-
run: (e) => import("./projectScaffold-
|
|
68
|
+
run: (e) => import("./projectScaffold-BIl97_E6.js").then((t) => t.runAddApp(e)),
|
|
69
69
|
help: {
|
|
70
70
|
usage: "<appName> --template <templateId> [--to <projectName>] [--no-register]",
|
|
71
71
|
flags: [
|
|
@@ -80,7 +80,7 @@ var c = () => {
|
|
|
80
80
|
name: "init",
|
|
81
81
|
summary: "Initialise the current directory as a Voltro workspace root (pnpm-workspace.yaml, root scripts, .gitignore, git init). Idempotent; takes no arguments.",
|
|
82
82
|
status: "wired",
|
|
83
|
-
run: (e) => import("./metaCommands-
|
|
83
|
+
run: (e) => import("./metaCommands-CfRLra0s.js").then((t) => t.runInit(e)),
|
|
84
84
|
help: {
|
|
85
85
|
usage: "",
|
|
86
86
|
examples: [["voltro init", "make the current directory a workspace root, then `voltro create-project <name>`"]],
|
|
@@ -91,7 +91,7 @@ var c = () => {
|
|
|
91
91
|
name: "dev",
|
|
92
92
|
summary: "Start the local development server (auto-discovers routes / mutations).",
|
|
93
93
|
status: "wired",
|
|
94
|
-
run: (e) => import("./dev-
|
|
94
|
+
run: (e) => import("./dev-D8JSKlBM.js").then((t) => t.runDev(e)),
|
|
95
95
|
help: {
|
|
96
96
|
usage: "[app]",
|
|
97
97
|
examples: [["voltro dev", "boot the app in the current directory"], ["voltro dev apps/acme/api", "boot a specific app"]],
|
|
@@ -109,7 +109,7 @@ var c = () => {
|
|
|
109
109
|
name: "dashboard",
|
|
110
110
|
summary: "Serve the DevTools dashboard standalone (from @voltro/dashboard). Targets via VOLTRO_DASHBOARD_APPS; --port to override.",
|
|
111
111
|
status: "wired",
|
|
112
|
-
run: (e) => import("./dashboardCommand-
|
|
112
|
+
run: (e) => import("./dashboardCommand-CUycH6dR.js").then((t) => t.runDashboardCommand(e)),
|
|
113
113
|
help: {
|
|
114
114
|
usage: "[--port <n>]",
|
|
115
115
|
flags: [["--port <n>", "port to serve the dashboard on"]],
|
|
@@ -121,7 +121,7 @@ var c = () => {
|
|
|
121
121
|
name: "check",
|
|
122
122
|
summary: "Verify the app graph (blast-radius checks) against a running api; LLM-shaped --json diagnostics. Flags: --json, --process <p>, --diff removeTable:<name>.",
|
|
123
123
|
status: "wired",
|
|
124
|
-
run: (e) => import("./checkCommand-
|
|
124
|
+
run: (e) => import("./checkCommand-QbHshOac.js").then((t) => t.runCheckCommand(e)),
|
|
125
125
|
help: {
|
|
126
126
|
usage: "[--json] [--offline] [--process <name>] [--diff removeTable:<name>]",
|
|
127
127
|
flags: [
|
|
@@ -155,7 +155,7 @@ var c = () => {
|
|
|
155
155
|
name: "webhooks",
|
|
156
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].",
|
|
157
157
|
status: "wired",
|
|
158
|
-
run: (e) => import("./webhooksCommand-
|
|
158
|
+
run: (e) => import("./webhooksCommand-DubZWNOx.js").then((t) => t.runWebhooksCommand(e)),
|
|
159
159
|
help: {
|
|
160
160
|
usage: "<consumer|events> [path] [--out <dir>] [--name <pkg>] [--json]",
|
|
161
161
|
flags: [
|
|
@@ -171,7 +171,7 @@ var c = () => {
|
|
|
171
171
|
name: "evolve",
|
|
172
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].",
|
|
173
173
|
status: "wired",
|
|
174
|
-
run: (e) => import("./evolveCommand-
|
|
174
|
+
run: (e) => import("./evolveCommand-BC5a9lxX.js").then((t) => t.runEvolveCommand(e)),
|
|
175
175
|
help: {
|
|
176
176
|
usage: "<rename-column|rename-table|retype-column|split-column|drop-column> <target> [--to <new>] [--write]",
|
|
177
177
|
flags: [
|
|
@@ -188,7 +188,7 @@ var c = () => {
|
|
|
188
188
|
name: "codegen",
|
|
189
189
|
summary: "Emit rpcGroup.generated.ts from discovered route / mutation descriptors.",
|
|
190
190
|
status: "wired",
|
|
191
|
-
run: (e) => import("./codegenCommand-
|
|
191
|
+
run: (e) => import("./codegenCommand-DF2OJh3O.js").then((t) => t.runCodegenCommand(e)),
|
|
192
192
|
help: {
|
|
193
193
|
usage: "[app]",
|
|
194
194
|
examples: [["voltro codegen", "regenerate rpcGroup.generated.ts for the app in the cwd"]],
|
|
@@ -259,7 +259,7 @@ var c = () => {
|
|
|
259
259
|
name: "info",
|
|
260
260
|
summary: "Report versions (CLI, node, every installed @voltro/* — flags lockstep skew), package manager, and dialect. --json for CI. Exits 1 on version skew.",
|
|
261
261
|
status: "wired",
|
|
262
|
-
run: (e) => import("./infoCommand-
|
|
262
|
+
run: (e) => import("./infoCommand-ZqSVzJZ4.js").then((t) => t.runInfoCommand(e)),
|
|
263
263
|
help: {
|
|
264
264
|
usage: "[--json]",
|
|
265
265
|
flags: [["--json", "machine-readable report"]],
|
|
@@ -280,7 +280,7 @@ var c = () => {
|
|
|
280
280
|
name: "env",
|
|
281
281
|
summary: "Inspect/sync the typed-env manifest. Subcommands: check (default), sync (.env.example), types (env.generated.d.ts for CI tsc), turbo.",
|
|
282
282
|
status: "wired",
|
|
283
|
-
run: (e) => import("./envCommand-
|
|
283
|
+
run: (e) => import("./envCommand-B6d0s-jZ.js").then((t) => t.runEnvCommand(e)),
|
|
284
284
|
help: {
|
|
285
285
|
usage: "[check|sync|types|turbo] [--force]",
|
|
286
286
|
flags: [["--force", "overwrite the generated file instead of refusing on a conflict"]],
|
|
@@ -309,12 +309,12 @@ var c = () => {
|
|
|
309
309
|
run: async (e) => {
|
|
310
310
|
let t = e.find((e) => !e.startsWith("-")) ?? process.cwd();
|
|
311
311
|
if (e.includes("--preflight")) {
|
|
312
|
-
let { runServePreflight: e } = await import("./doctorCommand-
|
|
312
|
+
let { runServePreflight: e } = await import("./doctorCommand-FhQ7EVYL.js");
|
|
313
313
|
return e(a(t), !0);
|
|
314
314
|
}
|
|
315
|
-
let { tryRunWebServe: n } = await import("./webDev-
|
|
315
|
+
let { tryRunWebServe: n } = await import("./webDev-CBbKs4dZ.js"), r = await n(a(t));
|
|
316
316
|
if (!r.ran) {
|
|
317
|
-
let { runServeDispatch: t } = await import("./serveCommand-
|
|
317
|
+
let { runServeDispatch: t } = await import("./serveCommand-BmvEQCMS.js");
|
|
318
318
|
return t(e);
|
|
319
319
|
}
|
|
320
320
|
return r.exitCode;
|
|
@@ -342,13 +342,13 @@ var c = () => {
|
|
|
342
342
|
handlesHelp: !0,
|
|
343
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.",
|
|
344
344
|
status: "wired",
|
|
345
|
-
run: (e) => import("./doctorCommand-
|
|
345
|
+
run: (e) => import("./doctorCommand-FhQ7EVYL.js").then((t) => t.runDoctorCommand(e))
|
|
346
346
|
},
|
|
347
347
|
{
|
|
348
348
|
name: "build",
|
|
349
349
|
summary: "Production build for a web app (vite build + per-page SSG pre-render).",
|
|
350
350
|
status: "wired",
|
|
351
|
-
run: (e) => import("./build-
|
|
351
|
+
run: (e) => import("./build-CkhFGnKA.js").then((t) => t.runBuildCommand(e)),
|
|
352
352
|
help: {
|
|
353
353
|
usage: "[app] [--target <t>]",
|
|
354
354
|
flags: [["--target <t>", "build target"]],
|
|
@@ -364,7 +364,7 @@ var c = () => {
|
|
|
364
364
|
name: "prune-runtime",
|
|
365
365
|
summary: "Trim a deployed web tree’s node_modules to the reachable runtime set (standalone image slimming).",
|
|
366
366
|
status: "wired",
|
|
367
|
-
run: (e) => import("./runtimeTrace-
|
|
367
|
+
run: (e) => import("./runtimeTrace-BslKJjDY.js").then((t) => t.runPruneRuntimeCommand(e)),
|
|
368
368
|
hidden: !0
|
|
369
369
|
},
|
|
370
370
|
{
|
|
@@ -382,7 +382,7 @@ var c = () => {
|
|
|
382
382
|
name: "dormancy",
|
|
383
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.",
|
|
384
384
|
status: "wired",
|
|
385
|
-
run: (e) => import("./dormancyCommand-
|
|
385
|
+
run: (e) => import("./dormancyCommand-A79Odglm.js").then((t) => t.runDormancyCommand(e)),
|
|
386
386
|
help: {
|
|
387
387
|
usage: "[app] [--port <n>] [--app-port <n>] [--idle-grace-ms <n>] [--tick-ms <n>]",
|
|
388
388
|
flags: [
|
|
@@ -399,7 +399,7 @@ var c = () => {
|
|
|
399
399
|
name: "start",
|
|
400
400
|
summary: "Production runtime: serves dist + SSR-on-demand for ssr/isr pages.",
|
|
401
401
|
status: "wired",
|
|
402
|
-
run: (e) => import("./start-
|
|
402
|
+
run: (e) => import("./start-BA7txHhY.js").then((t) => t.runStartCommand(e)),
|
|
403
403
|
help: {
|
|
404
404
|
usage: "[app]",
|
|
405
405
|
examples: [["voltro start", "serve a built web app (dist + SSR-on-demand)"]],
|
|
@@ -410,7 +410,7 @@ var c = () => {
|
|
|
410
410
|
name: "deploy",
|
|
411
411
|
summary: "Show deploy options + `voltro deploy plan` auto-detects the target tier (static-cdn / container / functions) per app + function.",
|
|
412
412
|
status: "wired",
|
|
413
|
-
run: (e) => import("./metaCommands-
|
|
413
|
+
run: (e) => import("./metaCommands-CfRLra0s.js").then((t) => t.runDeploy(e)),
|
|
414
414
|
help: {
|
|
415
415
|
usage: "[plan]",
|
|
416
416
|
examples: [["voltro deploy plan", "the auto-detected target tier per app + function"]]
|
|
@@ -469,7 +469,7 @@ var c = () => {
|
|
|
469
469
|
name: "data",
|
|
470
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.",
|
|
471
471
|
status: "wired",
|
|
472
|
-
run: (e) => import("./dataCommand-
|
|
472
|
+
run: (e) => import("./dataCommand-By78lscK.js").then((t) => t.runDataCommand(e)),
|
|
473
473
|
help: {
|
|
474
474
|
usage: "<export|import|backup|restore> <dir> [options]",
|
|
475
475
|
flags: [
|
|
@@ -517,27 +517,27 @@ var c = () => {
|
|
|
517
517
|
handlesHelp: !0,
|
|
518
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.",
|
|
519
519
|
status: "wired",
|
|
520
|
-
run: (e) => import("./metaCommands-
|
|
520
|
+
run: (e) => import("./metaCommands-CfRLra0s.js").then((t) => t.runSecret(e))
|
|
521
521
|
},
|
|
522
522
|
{
|
|
523
523
|
name: "update",
|
|
524
524
|
handlesHelp: !0,
|
|
525
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`.",
|
|
526
526
|
status: "wired",
|
|
527
|
-
run: (e) => import("./updateCommand-
|
|
527
|
+
run: (e) => import("./updateCommand-BauSVxPp.js").then((t) => t.runUpdateCommand(e))
|
|
528
528
|
},
|
|
529
529
|
{
|
|
530
530
|
name: "_apply-codemods",
|
|
531
531
|
summary: "Internal: apply shipped codemods for a framework version jump (re-exec target of `voltro update`).",
|
|
532
532
|
status: "wired",
|
|
533
533
|
hidden: !0,
|
|
534
|
-
run: (e) => import("./updateCommand-
|
|
534
|
+
run: (e) => import("./updateCommand-BauSVxPp.js").then((t) => t.runApplyCodemods(e))
|
|
535
535
|
},
|
|
536
536
|
{
|
|
537
537
|
name: "embeddings",
|
|
538
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.",
|
|
539
539
|
status: "wired",
|
|
540
|
-
run: (e) => import("./embeddingsCommand-
|
|
540
|
+
run: (e) => import("./embeddingsCommand-CoiyHfkY.js").then((t) => t.runEmbeddingsCommand(e)),
|
|
541
541
|
help: {
|
|
542
542
|
usage: "backfill <table> --text <field> --vector <field> [--model <m>] [--batch <n>] [--dry-run]",
|
|
543
543
|
flags: [
|
|
@@ -555,7 +555,7 @@ var c = () => {
|
|
|
555
555
|
name: "telemetry",
|
|
556
556
|
summary: "Report telemetry status — Voltro collects none (no phone-home, nothing to opt out of).",
|
|
557
557
|
status: "wired",
|
|
558
|
-
run: (e) => import("./metaCommands-
|
|
558
|
+
run: (e) => import("./metaCommands-CfRLra0s.js").then((t) => t.runTelemetry(e)),
|
|
559
559
|
help: {
|
|
560
560
|
usage: "",
|
|
561
561
|
examples: [["voltro telemetry", "confirm what is collected: nothing"]],
|
|
@@ -570,7 +570,7 @@ var c = () => {
|
|
|
570
570
|
name: "agents-md",
|
|
571
571
|
summary: "Write the framework-tailored AGENTS.md into the project root (use --force to overwrite).",
|
|
572
572
|
status: "wired",
|
|
573
|
-
run: (e) => import("./agentsMd-
|
|
573
|
+
run: (e) => import("./agentsMd-Bu_XQgVf.js").then((t) => t.runAgentsMd(e)),
|
|
574
574
|
help: {
|
|
575
575
|
usage: "[--force]",
|
|
576
576
|
flags: [["--force", "overwrite existing files (both AGENTS.md and CLAUDE.md)"]],
|
|
@@ -646,7 +646,7 @@ var c = () => {
|
|
|
646
646
|
name: "login",
|
|
647
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.",
|
|
648
648
|
status: "wired",
|
|
649
|
-
run: (e) => import("./cloudCmd-
|
|
649
|
+
run: (e) => import("./cloudCmd-F4YJeqM3.js").then((t) => t.runCloudCommand(["login", ...e])),
|
|
650
650
|
help: {
|
|
651
651
|
usage: "[--token <t>]",
|
|
652
652
|
flags: [["--token <t>", "headless login with an existing token (or set VOLTRO_CLOUD_TOKEN)"]],
|
|
@@ -658,7 +658,7 @@ var c = () => {
|
|
|
658
658
|
handlesHelp: !0,
|
|
659
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.",
|
|
660
660
|
status: "wired",
|
|
661
|
-
run: (e) => import("./cloudCmd-
|
|
661
|
+
run: (e) => import("./cloudCmd-F4YJeqM3.js").then((t) => t.runCloudCommand(e))
|
|
662
662
|
},
|
|
663
663
|
{
|
|
664
664
|
name: "help",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { d as e } from "./dev-
|
|
2
|
-
import {
|
|
3
|
-
import { t as r } from "./start-
|
|
1
|
+
import { d as e } from "./dev-Dh1NuYx1.js";
|
|
2
|
+
import { F as t, R as n } from "./webDev-bybjZA0o.js";
|
|
3
|
+
import { t as r } from "./start-dkNYKtgQ.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";
|
|
@@ -9,10 +9,10 @@ var s = o({ scope: "voltro:dashboard" }), c = (e, t) => {
|
|
|
9
9
|
let n = e.indexOf(t);
|
|
10
10
|
return n >= 0 ? e[n + 1] : void 0;
|
|
11
11
|
}, l = async (o) => {
|
|
12
|
-
process.env[
|
|
12
|
+
process.env[t] = "1";
|
|
13
13
|
let l = c(o, "--port") ?? process.env.VOLTRO_DASHBOARD_PORT ?? "5179";
|
|
14
14
|
process.env.VOLTRO_DASHBOARD_PORT = l;
|
|
15
|
-
let u =
|
|
15
|
+
let u = n(process.cwd());
|
|
16
16
|
if (!u) return s.error("dashboard app not found. Install it with `pnpm add @voltro/dashboard`, or set VOLTRO_DASHBOARD_PATH to a dashboard app directory."), 1;
|
|
17
17
|
let d = a(i(u, ".framework", "dist", "index.html"));
|
|
18
18
|
return s.info(`serving the Voltro dashboard on :${l}`, {
|
|
@@ -1,5 +1,5 @@
|
|
|
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-Dh1NuYx1.js";
|
|
3
3
|
import { n as i, t as a } from "./cliArgs-D4p8n7EE.js";
|
|
4
4
|
import { r as o } from "./dialectDriver-czCHYpeH.js";
|
|
5
5
|
import { t as s } from "./dataProfile-dW-PsfLB.js";
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { c as e, d as t, f as n, i as r, u as i } from "./dev-
|
|
1
|
+
import { c as e, d as t, f as n, i as r, u as i } from "./dev-Dh1NuYx1.js";
|
|
2
2
|
import "./dialectDriver-czCHYpeH.js";
|
|
3
3
|
export { r as buildStore, e as loadApiConfig, i as loadDiscovered, t as runDev, n as walk };
|