@voltro/cli 0.55.0 → 0.56.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 +497 -0
- package/bin/voltro.mjs +24 -0
- package/dist/{apiBuild-CMvLJM_K.js → apiBuild-Bdaetr37.js} +119 -88
- package/dist/apiBuild-Vw1figjO.js +2 -0
- package/dist/bin.js +1 -1
- package/dist/{build-S0QOzqPT.js → build-CI36wL4R.js} +337 -312
- package/dist/buildReport-52gHKgfO.js +64 -0
- package/dist/{checkCommand-fbj9GDjN.js → checkCommand-CAwFXrxA.js} +6 -6
- package/dist/{checkCommand-DNkY5kwF.js → checkCommand-D0QV_zM_.js} +1 -1
- package/dist/{clusterCmd-DrVFCzSj.js → clusterCmd-CdLB1GkT.js} +1 -1
- package/dist/{codegen-SIepQtUl.js → codegen-Bth5lUTU.js} +2 -1
- package/dist/codegen-DbH7NbCR.js +2 -0
- package/dist/{codegenCommand-3TDJezom.js → codegenCommand-CidbQzbv.js} +10 -10
- package/dist/{codemodRunner-C2zxZUIw.js → codemodRunner-BlQPfjzA.js} +222 -0
- package/dist/{commands-BBYJ7Q3B.js → commands-CWjfThXv.js} +35 -35
- package/dist/{dashboardCommand-D2kmyCLL.js → dashboardCommand-BekcY5Ls.js} +3 -3
- package/dist/{dataCommand-BEPPQiTl.js → dataCommand-2pccgbIy.js} +3 -3
- package/dist/{dbCommand-DZTmOFT4.js → dbCommand-DpK_vQET.js} +457 -441
- package/dist/dbCommand-DrycGWWt.js +2 -0
- package/dist/{dev-DfVZaoys.js → dev-B9Gz0k85.js} +1 -1
- package/dist/{dev-Ca_A_S9v.js → dev-Dw263KPu.js} +2603 -2482
- package/dist/doctorCommand-BMWs6aVm.js +2 -0
- package/dist/{doctorCommand-CGZJK_4o.js → doctorCommand-aR_bFmIi.js} +353 -251
- package/dist/{dormancyCommand-DY2rYpTa.js → dormancyCommand-eXTQMbHU.js} +1 -1
- package/dist/{embeddingsCommand-BoCqZsgp.js → embeddingsCommand-CTmiQvwa.js} +1 -1
- package/dist/{envCommand-Bxy2fOjc.js → envCommand-BDUgV7EM.js} +12 -12
- package/dist/{evolveCommand-BsbZ-XDg.js → evolveCommand-YV8qW1LU.js} +2 -2
- package/dist/frameworkTableAssembly-CGNC0qr7.js +2 -0
- package/dist/{frameworkTableAssembly-Do-cf6RJ.js → frameworkTableAssembly-DNOFXfEQ.js} +92 -84
- package/dist/index.js +1 -1
- package/dist/{infoCommand-EmM3jPKD.js → infoCommand-BjVXpMlP.js} +1 -1
- package/dist/inspect-CNYvNXPU.js +1484 -0
- package/dist/inspect-S2rWy1Ys.js +2 -0
- package/dist/{inspectCmd-niF97fAq.js → inspectCmd-CP-G0sVK.js} +1 -1
- package/dist/{inspectFetch-EMuhTG_9.js → inspectFetch-BU1NyzxV.js} +36 -24
- package/dist/{inspectMetrics-CGF94puw.js → inspectMetrics-BY0Sjb2F.js} +19 -19
- package/dist/{logsCmd-B6oNsfaZ.js → logsCmd-BU8uCdys.js} +1 -1
- package/dist/{manifestBuild-DjX5MoXy.js → manifestBuild-CEkjfpwc.js} +1 -1
- package/dist/manifestBuild-DIa_s6u0.js +2 -0
- package/dist/{migrate-CGFZS-1a.js → migrate-SICulyz1.js} +2 -2
- package/dist/precompressAssets-YhTi1aWp.js +40 -0
- package/dist/{probeCommand-Bs3iVBSL.js → probeCommand-6HxEkNDG.js} +2 -2
- package/dist/{runtimeTrace-C1BTpHGQ.js → runtimeTrace-DgYMc09E.js} +1 -1
- package/dist/{scheduleCmd-DQRu6BZC.js → scheduleCmd-DYBUfo_T.js} +1 -1
- package/dist/{sdkgen-CXMwLg9n.js → sdkgen-PY-umd6O.js} +1 -1
- package/dist/{seedRunner-Dgsiwk_e.js → seedRunner-DISBKow-.js} +16 -16
- package/dist/serveCommand-BITS8Hpj.js +2 -0
- package/dist/{serveCommand-C7IrCD58.js → serveCommand-DIJ3ma76.js} +910 -870
- package/dist/serveEntry.js +1 -1
- package/dist/{start-EOV7s1NZ.js → start-B9NGB8gn.js} +575 -546
- package/dist/{start-DH7cat4-.js → start-BFQQkL1i.js} +1 -1
- package/dist/startEntry.js +1 -1
- package/dist/staticCachePolicy-CIyj6DbS.js +15 -0
- package/dist/{test-DO27-x2P.js → test-jipIQ5Mx.js} +1 -1
- package/dist/{tracesCmd-DgtgOUdi.js → tracesCmd-BWYDqMy6.js} +1 -1
- package/dist/{updateCommand-C_jN1w18.js → updateCommand-C9n_Z_oG.js} +8 -2
- package/dist/updateCommand-DsXEAHbd.js +2 -0
- package/dist/webDev-C2dRz9s5.js +2 -0
- package/dist/{webDev-B7vNj4Bq.js → webDev-C53hJdcL.js} +1240 -1271
- package/dist/{webhooksCommand-B1LVcyO3.js → webhooksCommand-uuPu8qQX.js} +1 -1
- package/dist/{workflowsCmd-BGF-mRZ5.js → workflowsCmd-g-DNpaUc.js} +1 -1
- package/package.json +55 -19
- package/templates/AGENTS.core.md +20 -1
- package/templates/AGENTS.md +21 -2
- package/templates/agent-docs/_index.md +1 -1
- package/templates/agent-docs/_manifest.json +1 -1
- package/templates/agent-docs/cli.md +122 -0
- package/templates/agent-docs/data.md +145 -5
- package/templates/agent-docs/database/scaling.md +40 -1
- package/templates/agent-docs/deployment.md +53 -1
- package/templates/agent-docs/internationalization.md +32 -0
- package/templates/agent-docs/local-first-mobile.md +9 -2
- package/templates/agent-docs/observability.md +227 -0
- package/templates/agent-docs/plugins/billing.md +15 -0
- package/templates/agent-docs/plugins/broadcast.md +2 -1
- package/templates/agent-docs/plugins/ratelimit.md +6 -1
- package/templates/agent-docs/plugins/row-history.md +11 -0
- package/templates/agent-docs/plugins.md +19 -0
- package/templates/agent-docs/templates/appshells.md +3 -3
- package/templates/agent-docs/whats-new.md +432 -73
- package/templates/apps/api-ai/package.json +6 -6
- 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 +9 -9
- 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-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-row-history/package.json +8 -8
- 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-webhooks/package.json +9 -9
- package/templates/apps/changelog/package.json +7 -7
- package/templates/apps/changelog/src/pages/[locale]/page.tsx +7 -1
- package/templates/apps/edge-functions/package.json +2 -2
- package/templates/apps/frontend-admin/package.json +7 -8
- package/templates/apps/frontend-admin/src/pages/(marketing)/layout.tsx +1 -2
- package/templates/apps/frontend-admin/src/pages/admin/layout.tsx +1 -2
- package/templates/apps/frontend-app/package.json +8 -9
- package/templates/apps/frontend-app/src/pages/layout.tsx +1 -2
- package/templates/apps/frontend-auth/package.json +7 -8
- package/templates/apps/frontend-auth/src/components/AuthShell.tsx +1 -2
- package/templates/apps/frontend-blank/package.json +6 -7
- package/templates/apps/frontend-blank/src/pages/layout.tsx +1 -2
- package/templates/apps/frontend-cms/package.json +8 -9
- package/templates/apps/frontend-cms/src/pages/(app)/layout.tsx +1 -2
- package/templates/apps/frontend-collab/README.md +7 -2
- package/templates/apps/frontend-collab/package.json +9 -10
- package/templates/apps/frontend-collab/src/pages/layout.tsx +1 -2
- package/templates/apps/frontend-collab/src/pages/page.test.tsx +8 -4
- package/templates/apps/frontend-collab/src/pages/page.tsx +10 -5
- package/templates/apps/frontend-contact/package.json +7 -7
- package/templates/apps/frontend-contact/src/components/ContactForm.island.tsx +1 -1
- package/templates/apps/frontend-dashboard/package.json +6 -7
- package/templates/apps/frontend-dashboard/src/pages/(marketing)/layout.tsx +1 -2
- package/templates/apps/frontend-dashboard/src/pages/dashboard/layout.tsx +1 -2
- package/templates/apps/frontend-docs/package.json +8 -8
- 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 +7 -8
- package/templates/apps/frontend-portal/src/pages/(portal)/layout.tsx +1 -2
- package/templates/apps/frontend-saas/package.json +7 -8
- package/templates/apps/frontend-saas/src/pages/(marketing)/layout.tsx +1 -2
- package/templates/apps/frontend-saas/src/pages/dashboard/layout.tsx +1 -2
- package/templates/apps/frontend-spa/package.json +6 -7
- package/templates/apps/frontend-spa/src/pages/layout.tsx +1 -2
- package/templates/apps/frontend-ssr/package.json +6 -7
- package/templates/apps/frontend-ssr/src/pages/layout.tsx +1 -2
- package/templates/apps/frontend-ssr-api/package.json +7 -8
- package/templates/apps/frontend-ssr-api/src/pages/layout.tsx +1 -2
- package/templates/apps/frontend-static-blog/package.json +8 -8
- package/templates/apps/frontend-static-blog/src/components/ReadingProgress.island.tsx +1 -1
- package/templates/apps/frontend-static-blog/src/pages/[locale]/page.tsx +7 -1
- package/templates/apps/frontend-status/package.json +7 -8
- package/templates/apps/frontend-status/src/pages/layout.tsx +1 -2
- package/templates/apps/mobile-app/package.json +4 -4
- package/templates/baselines/compose/docker/api.Dockerfile +61 -5
- package/templates/baselines/compose/docker/web.Dockerfile +55 -10
- package/templates/baselines/compose-mariadb/docker/api.Dockerfile +61 -5
- package/templates/baselines/compose-mariadb/docker/web.Dockerfile +55 -10
- package/dist/apiBuild-Cl0IDx8c.js +0 -2
- package/dist/codegen-CN6vMM4J.js +0 -2
- package/dist/dbCommand-BTyBGhIA.js +0 -2
- package/dist/doctorCommand-djmqEcDC.js +0 -2
- package/dist/frameworkTableAssembly-Df2Ymp2f.js +0 -2
- package/dist/inspect-DCqILJ1G.js +0 -1197
- package/dist/inspect-DGJwpOAb.js +0 -2
- package/dist/manifestBuild-CJ2zvPvT.js +0 -2
- package/dist/serveCommand-Cjt5S9hD.js +0 -2
- package/dist/updateCommand-nnFjDbl4.js +0 -2
- package/dist/webDev-1XpVnYkW.js +0 -2
package/bin/voltro.mjs
CHANGED
|
@@ -17,8 +17,32 @@ import { existsSync } from 'node:fs'
|
|
|
17
17
|
import { createRequire } from 'node:module'
|
|
18
18
|
import { fileURLToPath, pathToFileURL } from 'node:url'
|
|
19
19
|
import { dirname, join, resolve } from 'node:path'
|
|
20
|
+
import { enableCompileCache } from 'node:module'
|
|
20
21
|
import { resolveNodeEnvironment } from './nodeEnvironment.mjs'
|
|
21
22
|
|
|
23
|
+
// V8 CODE CACHE — the cheapest cold-boot win there is, and it needs no build
|
|
24
|
+
// change: node caches the compiled bytecode of every module it loads and reuses
|
|
25
|
+
// it on the next boot from the same files.
|
|
26
|
+
//
|
|
27
|
+
// Measured on the reference fixtures (5 fresh processes, median):
|
|
28
|
+
// `voltro start` 166 ms → 93 ms (−44 %) cache 936 KB
|
|
29
|
+
// `voltro serve` 287 ms → 215 ms (−25 %) cache 3.1 MB
|
|
30
|
+
// The `modules` phase — node init + loading the precompiled bundle — is 46 % of
|
|
31
|
+
// a web boot and 65 % of an api boot, so this lands where the seconds are.
|
|
32
|
+
//
|
|
33
|
+
// `NODE_COMPILE_CACHE` set → node already enabled it before this file ran; do
|
|
34
|
+
// nothing (and never override the operator's directory). Unset → the default
|
|
35
|
+
// location under the OS temp dir, which survives process restarts on the same
|
|
36
|
+
// host. That covers dev and a warm container restart; a scale-from-zero
|
|
37
|
+
// container starts with an EMPTY temp dir, which is why the shipped Dockerfiles
|
|
38
|
+
// point the variable at a directory the image BAKES during the boot smoke.
|
|
39
|
+
//
|
|
40
|
+
// Wrapped: `enableCompileCache` is Node 22+, and a failure to cache must never
|
|
41
|
+
// be a failure to boot.
|
|
42
|
+
if (process.env.NODE_COMPILE_CACHE === undefined) {
|
|
43
|
+
try { enableCompileCache?.() } catch { /* cache is an optimisation, never a requirement */ }
|
|
44
|
+
}
|
|
45
|
+
|
|
22
46
|
// FAST PATH — `voltro serve <app>` with a precompiled SERVE BUNDLE boots from that
|
|
23
47
|
// ONE artefact IN THIS PROCESS: no child `node --import tsx`, no CLI command
|
|
24
48
|
// graph. `voltro build` esbuilds the whole serve path (framework + effect +
|
|
@@ -1,14 +1,18 @@
|
|
|
1
|
-
import { p as e } from "./dev-
|
|
2
|
-
import {
|
|
1
|
+
import { p as e } from "./dev-Dw263KPu.js";
|
|
2
|
+
import { Wt as t } from "./webDev-C53hJdcL.js";
|
|
3
3
|
import { t as n } from "./dialectDriver-czCHYpeH.js";
|
|
4
4
|
import { dirname as r, isAbsolute as i, join as a, relative as o, resolve as s } from "node:path";
|
|
5
|
-
import { existsSync as c, promises as l } from "node:fs";
|
|
6
|
-
import { fileURLToPath as
|
|
7
|
-
import { createLogger as
|
|
8
|
-
import {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
import { existsSync as c, promises as l, readFileSync as u } from "node:fs";
|
|
6
|
+
import { fileURLToPath as d } from "node:url";
|
|
7
|
+
import { createLogger as f } from "@voltro/logger";
|
|
8
|
+
import { frameworkVersion as p } from "@voltro/protocol/identity";
|
|
9
|
+
import { createRequire as m } from "node:module";
|
|
10
|
+
//#region src/bundleBanner.ts
|
|
11
|
+
var h = () => {
|
|
12
|
+
let e = p(), t = "import { createRequire as __voltroRequire } from 'node:module'; const require = __voltroRequire(import.meta.url);";
|
|
13
|
+
return e === void 0 ? t : `globalThis.__VOLTRO_FRAMEWORK_VERSION__ = ${JSON.stringify(e)};\n${t}`;
|
|
14
|
+
}, g = f({ scope: "voltro:build" }), _ = (e) => {
|
|
15
|
+
let t = r(d(import.meta.url));
|
|
12
16
|
for (let n of [
|
|
13
17
|
".js",
|
|
14
18
|
".ts",
|
|
@@ -18,7 +22,7 @@ var p = d({ scope: "voltro:build" }), m = (e) => {
|
|
|
18
22
|
if (c(r)) return { [`@voltro/cli/${e}`]: r };
|
|
19
23
|
}
|
|
20
24
|
return {};
|
|
21
|
-
},
|
|
25
|
+
}, v = async (e) => {
|
|
22
26
|
let t = a(e, "package.json");
|
|
23
27
|
if (!c(t)) return [];
|
|
24
28
|
let r = {};
|
|
@@ -32,7 +36,7 @@ var p = d({ scope: "voltro:build" }), m = (e) => {
|
|
|
32
36
|
} catch {
|
|
33
37
|
return [];
|
|
34
38
|
}
|
|
35
|
-
let i =
|
|
39
|
+
let i = m(t);
|
|
36
40
|
return n.filter((e) => {
|
|
37
41
|
if (r[e] === void 0) return !1;
|
|
38
42
|
try {
|
|
@@ -41,7 +45,7 @@ var p = d({ scope: "voltro:build" }), m = (e) => {
|
|
|
41
45
|
return !1;
|
|
42
46
|
}
|
|
43
47
|
});
|
|
44
|
-
},
|
|
48
|
+
}, y = /(?:\.(?:query|mutation|action|stream)(?:\.server)?\.ts|\.workflow(?:\.server)?\.tsx|\.(?:subscribe|reaction|aggregate|agent|tool|webhook|cron|trigger|outbox|consumer|connection|email)(?:\.server)?\.tsx?|\.(?:startup|seed)\.tsx?|\.(?:entity|schema|relations|migration|event|ws|expectation|budget|experiment)\.ts|(?:^|\/)schema\.ts)$/, b = (e) => /\.(ts|tsx)$/.test(e) && !/\.(test|spec)\.[tj]sx?$/.test(e), x = async (t) => (await e(t)).filter((e) => y.test(e) && b(e) && !e.includes(`${t}/.framework/`)), S = {
|
|
45
49
|
name: "externalize-bare",
|
|
46
50
|
setup(e) {
|
|
47
51
|
e.onResolve({ filter: /.*/ }, (e) => {
|
|
@@ -52,12 +56,12 @@ var p = d({ scope: "voltro:build" }), m = (e) => {
|
|
|
52
56
|
};
|
|
53
57
|
});
|
|
54
58
|
}
|
|
55
|
-
},
|
|
59
|
+
}, C = async (e) => {
|
|
56
60
|
let n = await t("esbuild", () => import("esbuild")), r = a(e, ".framework"), i = a(r, "dist-api");
|
|
57
61
|
await l.mkdir(r, { recursive: !0 });
|
|
58
|
-
let u = [...await
|
|
59
|
-
if (c(d) && u.push(d), u.length === 0) return
|
|
60
|
-
let f = a(e, "tsconfig.json"),
|
|
62
|
+
let u = [...await x(e)], d = a(e, "app.config.ts");
|
|
63
|
+
if (c(d) && u.push(d), u.length === 0) return g.warn("api build: no handlers or app.config found — nothing to precompile", { root: e }), null;
|
|
64
|
+
let f = a(e, "tsconfig.json"), p = {
|
|
61
65
|
bundle: !0,
|
|
62
66
|
format: "esm",
|
|
63
67
|
platform: "node",
|
|
@@ -66,36 +70,38 @@ var p = d({ scope: "voltro:build" }), m = (e) => {
|
|
|
66
70
|
jsx: "automatic",
|
|
67
71
|
jsxImportSource: "react",
|
|
68
72
|
absWorkingDir: e,
|
|
73
|
+
minify: !0,
|
|
74
|
+
keepNames: !0,
|
|
69
75
|
...c(f) ? { tsconfig: f } : {},
|
|
70
|
-
plugins: [
|
|
71
|
-
},
|
|
72
|
-
...
|
|
76
|
+
plugins: [S]
|
|
77
|
+
}, m = await n.build({
|
|
78
|
+
...p,
|
|
73
79
|
entryPoints: u,
|
|
74
80
|
write: !1,
|
|
75
81
|
metafile: !0,
|
|
76
82
|
outdir: i
|
|
77
|
-
}),
|
|
83
|
+
}), h = Object.keys(m.metafile.inputs).map((t) => s(e, t)).filter((t) => t.startsWith(`${e}/`) && !t.includes("/node_modules/") && !t.includes("/.framework/") && b(t)), _ = [
|
|
78
84
|
"// GENERATED BY `voltro build` — do not edit; overwritten on next build.",
|
|
79
85
|
"// Precompiled api entry: the single bundle the serve runtime loads instead",
|
|
80
86
|
"// of importing every handler/schema source at boot. See apiBuild.ts /",
|
|
81
87
|
"// appModuleLoader.ts.",
|
|
82
88
|
""
|
|
83
|
-
],
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
}),
|
|
87
|
-
let
|
|
88
|
-
return await l.writeFile(
|
|
89
|
-
...
|
|
90
|
-
entryPoints: [
|
|
89
|
+
], v = [];
|
|
90
|
+
h.forEach((t, n) => {
|
|
91
|
+
_.push(`import * as m${n} from ${JSON.stringify(t)}`), v.push(` ${JSON.stringify(o(e, t))}: m${n},`);
|
|
92
|
+
}), _.push("", "export const modules: Record<string, unknown> = {", ...v, "}", "");
|
|
93
|
+
let y = a(r, "apiEntry.ts");
|
|
94
|
+
return await l.writeFile(y, _.join("\n"), "utf8"), await n.build({
|
|
95
|
+
...p,
|
|
96
|
+
entryPoints: [y],
|
|
91
97
|
outfile: a(i, "apiEntry.js"),
|
|
92
98
|
metafile: !1,
|
|
93
99
|
write: !0
|
|
94
|
-
}),
|
|
95
|
-
modules:
|
|
100
|
+
}), g.info("api build: precompiled bundle written", {
|
|
101
|
+
modules: h.length,
|
|
96
102
|
out: a(".framework", "dist-api", "apiEntry.js")
|
|
97
103
|
}), a(i, "apiEntry.js");
|
|
98
|
-
},
|
|
104
|
+
}, w = (e) => a(e, ".framework", "dist-api", "apiEntry.js"), T = [
|
|
99
105
|
"better-sqlite3",
|
|
100
106
|
"pg-native",
|
|
101
107
|
"@tursodatabase/*",
|
|
@@ -107,8 +113,13 @@ var p = d({ scope: "voltro:build" }), m = (e) => {
|
|
|
107
113
|
"@img/*",
|
|
108
114
|
"fontkit",
|
|
109
115
|
"subset-font",
|
|
110
|
-
"satori"
|
|
111
|
-
|
|
116
|
+
"satori",
|
|
117
|
+
"@azure/storage-blob",
|
|
118
|
+
"@aws-sdk/*",
|
|
119
|
+
"@smithy/*",
|
|
120
|
+
"@react-email/render",
|
|
121
|
+
"@sentry/profiling-node"
|
|
122
|
+
], E = [
|
|
112
123
|
"tsx",
|
|
113
124
|
"esbuild",
|
|
114
125
|
"vite",
|
|
@@ -116,42 +127,60 @@ var p = d({ scope: "voltro:build" }), m = (e) => {
|
|
|
116
127
|
"@tailwindcss/*",
|
|
117
128
|
"rolldown",
|
|
118
129
|
"lightningcss"
|
|
119
|
-
],
|
|
130
|
+
], D = (e, t) => t.some((t) => t.endsWith("/*") ? e === t.slice(0, -2) || e.startsWith(t.slice(0, -1)) : e === t || e.startsWith(`${t}/`)), O = (e, t) => `const { createRequire } = require('node:module')
|
|
120
131
|
const { join } = require('node:path')
|
|
121
132
|
const reqApp = createRequire(join(process.cwd(), 'package.json'))
|
|
122
|
-
const drivers = ${JSON.stringify(t)}\nlet mod\nfor (const d of drivers) {\n try { mod = createRequire(reqApp.resolve(d + '/package.json'))(${JSON.stringify(e)}); break } catch (e) {}\n}\nif (!mod) { try { mod = reqApp(${JSON.stringify(e)}) } catch (e) {} }\nif (!mod) mod = require(${JSON.stringify(e)})\nmodule.exports = mod\n`,
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
if (w(r, C)) return {
|
|
133
|
-
path: r,
|
|
134
|
-
external: !0
|
|
135
|
-
};
|
|
136
|
-
for (let n of [e.resolveDir, t]) if (n) try {
|
|
137
|
-
f(a(n, "_.js")).resolve(r);
|
|
138
|
-
return;
|
|
139
|
-
} catch {}
|
|
140
|
-
return n.add(r), {
|
|
141
|
-
path: r,
|
|
142
|
-
external: !0
|
|
143
|
-
};
|
|
144
|
-
}
|
|
145
|
-
}), r.onLoad({
|
|
146
|
-
filter: /.*/,
|
|
147
|
-
namespace: "native-leaf"
|
|
148
|
-
}, (t) => ({
|
|
149
|
-
contents: T(t.path, [...e, "@voltro/cli"]),
|
|
150
|
-
loader: "js"
|
|
151
|
-
}));
|
|
133
|
+
const drivers = ${JSON.stringify(t)}\nlet mod\nfor (const d of drivers) {\n try { mod = createRequire(reqApp.resolve(d + '/package.json'))(${JSON.stringify(e)}); break } catch (e) {}\n}\nif (!mod) { try { mod = reqApp(${JSON.stringify(e)}) } catch (e) {} }\nif (!mod) mod = require(${JSON.stringify(e)})\nmodule.exports = mod\n`, k = (e) => {
|
|
134
|
+
try {
|
|
135
|
+
let t = JSON.parse(u(a(e, "package.json"), "utf8"));
|
|
136
|
+
return Object.keys({
|
|
137
|
+
...t.dependencies,
|
|
138
|
+
...t.devDependencies,
|
|
139
|
+
...t.optionalDependencies
|
|
140
|
+
}).filter((e) => e.startsWith("@voltro/plugin-"));
|
|
141
|
+
} catch {
|
|
142
|
+
return [];
|
|
152
143
|
}
|
|
153
|
-
}
|
|
154
|
-
let
|
|
144
|
+
}, A = (e, t, n) => {
|
|
145
|
+
let r = [
|
|
146
|
+
...e,
|
|
147
|
+
...k(t),
|
|
148
|
+
"@voltro/cli"
|
|
149
|
+
];
|
|
150
|
+
return {
|
|
151
|
+
name: "native-leaf-runtime-resolver",
|
|
152
|
+
setup(e) {
|
|
153
|
+
e.onResolve({ filter: /.*/ }, (e) => {
|
|
154
|
+
let r = e.path;
|
|
155
|
+
if (!(r.startsWith(".") || i(r) || r.startsWith("node:")) && !(/^effect$/.test(r) || r.startsWith("@effect/") || r.startsWith("@voltro/"))) {
|
|
156
|
+
if (D(r, T)) return {
|
|
157
|
+
path: r,
|
|
158
|
+
namespace: "native-leaf"
|
|
159
|
+
};
|
|
160
|
+
if (D(r, E)) return {
|
|
161
|
+
path: r,
|
|
162
|
+
external: !0
|
|
163
|
+
};
|
|
164
|
+
for (let n of [e.resolveDir, t]) if (n) try {
|
|
165
|
+
m(a(n, "_.js")).resolve(r);
|
|
166
|
+
return;
|
|
167
|
+
} catch {}
|
|
168
|
+
return n.add(r), {
|
|
169
|
+
path: r,
|
|
170
|
+
external: !0
|
|
171
|
+
};
|
|
172
|
+
}
|
|
173
|
+
}), e.onLoad({
|
|
174
|
+
filter: /.*/,
|
|
175
|
+
namespace: "native-leaf"
|
|
176
|
+
}, (e) => ({
|
|
177
|
+
contents: O(e.path, r),
|
|
178
|
+
loader: "js"
|
|
179
|
+
}));
|
|
180
|
+
}
|
|
181
|
+
};
|
|
182
|
+
}, j = (e) => a(e, ".framework", "dist-api", "serveBundle", "serveEntry.js"), M = 1e3, N = async (e, t) => {
|
|
183
|
+
let n = t - M, r = 0, i = async (e) => {
|
|
155
184
|
let t;
|
|
156
185
|
try {
|
|
157
186
|
t = await l.readdir(e, { withFileTypes: !0 });
|
|
@@ -170,12 +199,12 @@ const drivers = ${JSON.stringify(t)}\nlet mod\nfor (const d of drivers) {\n try
|
|
|
170
199
|
}
|
|
171
200
|
};
|
|
172
201
|
return await i(e), r;
|
|
173
|
-
},
|
|
202
|
+
}, P = async (e) => {
|
|
174
203
|
let n = await t("esbuild", () => import("esbuild")), r = a(e, ".framework"), i = a(r, "dist-api", "serveBundle");
|
|
175
204
|
await l.mkdir(r, { recursive: !0 });
|
|
176
|
-
let u = Date.now(), d = [...await
|
|
205
|
+
let u = Date.now(), d = [...await x(e)], f = a(e, "app.config.ts");
|
|
177
206
|
if (c(f) && d.push(f), d.length === 0) return null;
|
|
178
|
-
let
|
|
207
|
+
let p = a(e, "tsconfig.json"), m = await n.build({
|
|
179
208
|
entryPoints: d,
|
|
180
209
|
bundle: !0,
|
|
181
210
|
write: !1,
|
|
@@ -186,28 +215,28 @@ const drivers = ${JSON.stringify(t)}\nlet mod\nfor (const d of drivers) {\n try
|
|
|
186
215
|
jsx: "automatic",
|
|
187
216
|
jsxImportSource: "react",
|
|
188
217
|
logLevel: "silent",
|
|
189
|
-
plugins: [
|
|
218
|
+
plugins: [S],
|
|
190
219
|
outdir: a(i, ".probe"),
|
|
191
|
-
...c(
|
|
192
|
-
}),
|
|
220
|
+
...c(p) ? { tsconfig: p } : {}
|
|
221
|
+
}), y = Object.keys(m.metafile.inputs).map((t) => s(e, t)).filter((t) => t.startsWith(`${e}/`) && !t.includes("/node_modules/") && !t.includes("/.framework/") && b(t)), C = await v(e), w = /* @__PURE__ */ new Set(), T = [
|
|
193
222
|
"// GENERATED BY `voltro build` — do not edit; overwritten on next build.",
|
|
194
223
|
"import { join as __join, dirname as __dirname, resolve as __resolve } from 'node:path'",
|
|
195
224
|
"import { pathToFileURL as __pathToFileURL, fileURLToPath as __fileURLToPath } from 'node:url'",
|
|
196
225
|
"import { runServe as __runServe, registerAppModules, registerDriver, loadDotEnv } from '@voltro/cli/serveEntry'",
|
|
197
|
-
...
|
|
226
|
+
...C.map((e, t) => `import * as __drv${t} from ${JSON.stringify(e)}`),
|
|
198
227
|
"const __isMain = Boolean(process.argv[1]) && import.meta.url === __pathToFileURL(process.argv[1]).href",
|
|
199
228
|
"if (__isMain) process.chdir(__resolve(__dirname(__fileURLToPath(import.meta.url)), '..', '..', '..'))",
|
|
200
229
|
"const __root = process.cwd()",
|
|
201
230
|
"registerAppModules({",
|
|
202
|
-
...
|
|
231
|
+
...y.map((t) => ` [__join(__root, ${JSON.stringify(o(e, t))})]: () => import(${JSON.stringify(t)}),`),
|
|
203
232
|
"})",
|
|
204
|
-
...
|
|
233
|
+
...C.map((e, t) => `registerDriver(${JSON.stringify(e)}, __drv${t})`),
|
|
205
234
|
"export const runServe = (args = []) => { loadDotEnv([]); return __runServe(args) }",
|
|
206
235
|
"if (__isMain) runServe(process.argv.slice(2)).then((c) => process.exit(typeof c === 'number' ? c : 0))",
|
|
207
236
|
""
|
|
208
|
-
],
|
|
209
|
-
await l.writeFile(
|
|
210
|
-
entryPoints: [
|
|
237
|
+
], E = a(r, "serveEntry.ts");
|
|
238
|
+
await l.writeFile(E, T.join("\n"), "utf8"), await n.build({
|
|
239
|
+
entryPoints: [E],
|
|
211
240
|
bundle: !0,
|
|
212
241
|
format: "esm",
|
|
213
242
|
platform: "node",
|
|
@@ -215,23 +244,25 @@ const drivers = ${JSON.stringify(t)}\nlet mod\nfor (const d of drivers) {\n try
|
|
|
215
244
|
outdir: i,
|
|
216
245
|
splitting: !0,
|
|
217
246
|
write: !0,
|
|
218
|
-
|
|
219
|
-
|
|
247
|
+
minify: !0,
|
|
248
|
+
keepNames: !0,
|
|
249
|
+
plugins: [A(C, e, w)],
|
|
250
|
+
banner: { js: h() },
|
|
220
251
|
jsx: "automatic",
|
|
221
252
|
jsxImportSource: "react",
|
|
222
253
|
logLevel: "silent",
|
|
223
254
|
absWorkingDir: e,
|
|
224
|
-
alias:
|
|
225
|
-
...c(
|
|
255
|
+
alias: _("serveEntry"),
|
|
256
|
+
...c(p) ? { tsconfig: p } : {}
|
|
226
257
|
});
|
|
227
|
-
let D = await
|
|
228
|
-
return
|
|
229
|
-
appModules:
|
|
230
|
-
drivers:
|
|
231
|
-
...
|
|
258
|
+
let D = await N(i, u);
|
|
259
|
+
return g.info("api build: serve bundle written", {
|
|
260
|
+
appModules: y.length,
|
|
261
|
+
drivers: C.length > 0 ? C.join(", ") : "none (memory)",
|
|
262
|
+
...w.size > 0 ? { externalizedOptionalPeers: [...w].join(", ") } : {},
|
|
232
263
|
...D > 0 ? { prunedStaleChunks: D } : {},
|
|
233
264
|
out: a(".framework", "dist-api", "serveBundle", "serveEntry.js")
|
|
234
265
|
}), a(i, "serveEntry.js");
|
|
235
266
|
};
|
|
236
267
|
//#endregion
|
|
237
|
-
export {
|
|
268
|
+
export { x as a, C as c, h as d, _ as i, P as l, T as n, A as o, w as r, N as s, y as t, j as u };
|
package/dist/bin.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { r as e } from "./commands-
|
|
2
|
+
import { r as e } from "./commands-CWjfThXv.js";
|
|
3
3
|
import { a as t } from "./nodeEnvironment-cGFAj1J8.js";
|
|
4
4
|
import { t as n } from "./loadEnv-D9nEOClM.js";
|
|
5
5
|
import { n as r } from "./cliError-BmdYnghb.js";
|