alabjs 0.3.0-alpha.1 → 0.4.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/dist/commands/build.d.ts.map +1 -1
- package/dist/commands/build.js +122 -28
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/dev.d.ts.map +1 -1
- package/dist/commands/dev.js +225 -2
- package/dist/commands/dev.js.map +1 -1
- package/dist/components/Link.d.ts +16 -0
- package/dist/components/Link.d.ts.map +1 -1
- package/dist/components/Link.js +10 -0
- package/dist/components/Link.js.map +1 -1
- package/dist/components/index.d.ts +2 -2
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/live/broadcaster.d.ts +64 -0
- package/dist/live/broadcaster.d.ts.map +1 -0
- package/dist/live/broadcaster.js +78 -0
- package/dist/live/broadcaster.js.map +1 -0
- package/dist/live/registry.d.ts +34 -0
- package/dist/live/registry.d.ts.map +1 -0
- package/dist/live/registry.js +33 -0
- package/dist/live/registry.js.map +1 -0
- package/dist/live/renderer.d.ts +22 -0
- package/dist/live/renderer.d.ts.map +1 -0
- package/dist/live/renderer.js +45 -0
- package/dist/live/renderer.js.map +1 -0
- package/dist/router/manifest.d.ts +1 -1
- package/dist/router/manifest.d.ts.map +1 -1
- package/dist/server/app.d.ts.map +1 -1
- package/dist/server/app.js +146 -0
- package/dist/server/app.js.map +1 -1
- package/dist/server/index.d.ts +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +1 -0
- package/dist/server/index.js.map +1 -1
- package/dist/server/revalidate.d.ts.map +1 -1
- package/dist/server/revalidate.js +3 -0
- package/dist/server/revalidate.js.map +1 -1
- package/package.json +3 -3
- package/src/commands/build.ts +142 -30
- package/src/commands/dev.ts +246 -3
- package/src/components/Link.tsx +20 -0
- package/src/components/index.ts +2 -2
- package/src/live/broadcaster.ts +83 -0
- package/src/live/registry.ts +56 -0
- package/src/live/renderer.ts +54 -0
- package/src/router/manifest.ts +1 -1
- package/src/server/app.ts +159 -0
- package/src/server/index.ts +1 -0
- package/src/server/revalidate.ts +3 -0
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAUA,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACrB,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAsED,wBAAsB,KAAK,CAAC,EAAE,GAAG,EAAE,aAAqB,EAAE,IAAY,EAAE,OAAe,EAAE,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"AAUA,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,KAAK,GAAG,KAAK,CAAC;IACrB,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAsED,wBAAsB,KAAK,CAAC,EAAE,GAAG,EAAE,aAAqB,EAAE,IAAY,EAAE,OAAe,EAAE,EAAE,YAAY,iBAiHtG"}
|
package/dist/commands/build.js
CHANGED
|
@@ -73,12 +73,13 @@ async function buildSpa(cwd) {
|
|
|
73
73
|
export async function build({ cwd, skipTypecheck = false, mode = "ssr", analyze = false }) {
|
|
74
74
|
if (mode === "spa") {
|
|
75
75
|
console.log(" alab building SPA (client-only)...\n");
|
|
76
|
-
|
|
76
|
+
await buildSpa(cwd);
|
|
77
|
+
// SPA has no route manifest, but still type-check after the build so any
|
|
78
|
+
// generated types from the Vite plugin are available to tsc.
|
|
77
79
|
if (!skipTypecheck) {
|
|
78
80
|
console.log(" alab type-checking...");
|
|
79
|
-
|
|
81
|
+
await runTypecheck(cwd);
|
|
80
82
|
}
|
|
81
|
-
await Promise.all(tasks);
|
|
82
83
|
return;
|
|
83
84
|
}
|
|
84
85
|
console.log(" alab building for production...\n");
|
|
@@ -117,36 +118,40 @@ export async function build({ cwd, skipTypecheck = false, mode = "ssr", analyze
|
|
|
117
118
|
console.warn(" alab warning: install rolldown-plugin-visualizer or rollup-plugin-visualizer to enable --analyze.");
|
|
118
119
|
}
|
|
119
120
|
}
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
input: "/@alabjs/client",
|
|
137
|
-
},
|
|
121
|
+
await viteBuild({
|
|
122
|
+
root: cwd,
|
|
123
|
+
plugins: [
|
|
124
|
+
(await import("alabjs-vite-plugin")).alabPlugin({ mode: "build" }),
|
|
125
|
+
...(visualizerPlugin ? [visualizerPlugin] : []),
|
|
126
|
+
],
|
|
127
|
+
build: {
|
|
128
|
+
// Output client assets to .alabjs/dist/client/ so the production server's
|
|
129
|
+
// static handler (which serves from distDir/client/) can find them.
|
|
130
|
+
outDir: resolve(cwd, ".alabjs/dist/client"),
|
|
131
|
+
manifest: true,
|
|
132
|
+
ssrManifest: true,
|
|
133
|
+
rolldownOptions: {
|
|
134
|
+
// In SSR mode, we don't use an index.html as the entry point.
|
|
135
|
+
// Instead, we bundle the virtual client module as the main browser asset.
|
|
136
|
+
input: "/@alabjs/client",
|
|
138
137
|
},
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
if (!skipTypecheck) {
|
|
142
|
-
console.log(" alab type-checking...");
|
|
143
|
-
tasks.push(runTypecheck(cwd));
|
|
144
|
-
}
|
|
145
|
-
await Promise.all(tasks);
|
|
138
|
+
},
|
|
139
|
+
});
|
|
146
140
|
const distDir = resolve(cwd, ".alabjs/dist");
|
|
147
141
|
// Scan the app/ directory with the Rust router, normalize paths, and write
|
|
148
142
|
// route-manifest.json. Must run before writeBuildId (hash) and buildPPRShells.
|
|
143
|
+
// Also writes .alabjs/routes.d.ts — type-checking runs AFTER this so tsc can
|
|
144
|
+
// resolve the AlabRoutes union that routes.d.ts exports.
|
|
149
145
|
const manifest = await buildRouteManifest(cwd, distDir);
|
|
146
|
+
// Type-check after route types are written so `AlabRoutes` is resolvable.
|
|
147
|
+
if (!skipTypecheck) {
|
|
148
|
+
console.log(" alab type-checking...");
|
|
149
|
+
await runTypecheck(cwd);
|
|
150
|
+
}
|
|
151
|
+
// Validate all RouteLink/Link/navigate path references against the manifest.
|
|
152
|
+
// Runs after manifest generation but before the SSR bundle so type-safe route
|
|
153
|
+
// errors abort the build early with clear file + offset info.
|
|
154
|
+
await checkRouteReferences(cwd, manifest);
|
|
150
155
|
// Compile all app pages, layouts, and server functions to .alabjs/dist/server/.
|
|
151
156
|
// Must run after buildRouteManifest so we have the entry list, and before
|
|
152
157
|
// buildPPRShells which imports the compiled modules.
|
|
@@ -386,6 +391,47 @@ async function buildFederationExposes(cwd, distClientAlab, appName, exposes, sha
|
|
|
386
391
|
};
|
|
387
392
|
writeFileSync(resolve(distClientAlab, "federation-manifest.json"), JSON.stringify(manifest, null, 2), "utf8");
|
|
388
393
|
}
|
|
394
|
+
/**
|
|
395
|
+
* Validate all `<RouteLink to>`, `<Link href>`, and `navigate()` path
|
|
396
|
+
* references in `app/` against the compiled route manifest.
|
|
397
|
+
*
|
|
398
|
+
* Fails the build with a formatted error list when unknown paths or literal
|
|
399
|
+
* bracket segments are found. Gracefully skips when the napi binary is absent.
|
|
400
|
+
*/
|
|
401
|
+
async function checkRouteReferences(cwd, manifest) {
|
|
402
|
+
const appDir = resolve(cwd, "app");
|
|
403
|
+
let napi;
|
|
404
|
+
try {
|
|
405
|
+
const mod = await import("@alabjs/compiler");
|
|
406
|
+
napi = (mod.default ?? mod);
|
|
407
|
+
if (typeof napi.checkRouteRefs !== "function")
|
|
408
|
+
return; // napi binary predates route checker
|
|
409
|
+
}
|
|
410
|
+
catch {
|
|
411
|
+
return; // napi binary not available — skip silently
|
|
412
|
+
}
|
|
413
|
+
const manifestJson = JSON.stringify(manifest);
|
|
414
|
+
const violationsJson = napi.checkRouteRefs(appDir, manifestJson);
|
|
415
|
+
const violations = JSON.parse(violationsJson);
|
|
416
|
+
if (violations.length === 0)
|
|
417
|
+
return;
|
|
418
|
+
const lines = [
|
|
419
|
+
`\n alab ${violations.length} route violation${violations.length === 1 ? "" : "s"} found:\n`,
|
|
420
|
+
];
|
|
421
|
+
for (const v of violations) {
|
|
422
|
+
const relFile = relative(cwd, v.file);
|
|
423
|
+
const kindLabel = v.kind === "unknown_path"
|
|
424
|
+
? "unknown path"
|
|
425
|
+
: "literal bracket — use params prop";
|
|
426
|
+
lines.push(` ✗ ${relFile} "${v.path}" (${kindLabel})`);
|
|
427
|
+
if (v.suggestion) {
|
|
428
|
+
lines.push(` → suggestion: ${v.suggestion}`);
|
|
429
|
+
}
|
|
430
|
+
}
|
|
431
|
+
lines.push("");
|
|
432
|
+
console.error(lines.join("\n"));
|
|
433
|
+
throw new Error(`[alabjs] Build failed: ${violations.length} route violation(s). Fix the paths above.`);
|
|
434
|
+
}
|
|
389
435
|
/**
|
|
390
436
|
* Scan `app/` with the Rust router napi, normalize absolute file paths to
|
|
391
437
|
* cwd-relative, and write `route-manifest.json` to `distDir`.
|
|
@@ -418,8 +464,56 @@ async function buildRouteManifest(cwd, distDir) {
|
|
|
418
464
|
const pages = manifest.routes.filter((r) => r.kind === "page").length;
|
|
419
465
|
const apis = manifest.routes.filter((r) => r.kind === "api").length;
|
|
420
466
|
console.log(` alab routes → ${pages} page(s), ${apis} api route(s)`);
|
|
467
|
+
// Emit auto-generated route types so <RouteLink to="..."> and navigate() are
|
|
468
|
+
// type-safe without any manual setup. Written to .alabjs/routes.d.ts.
|
|
469
|
+
writeRouteTypes(manifest, distDir);
|
|
421
470
|
return manifest;
|
|
422
471
|
}
|
|
472
|
+
/**
|
|
473
|
+
* Write `.alabjs/routes.d.ts` containing the `AlabRoutes` union type and
|
|
474
|
+
* a typed `navigate` overload, auto-derived from the route manifest.
|
|
475
|
+
*
|
|
476
|
+
* Example output:
|
|
477
|
+
* ```ts
|
|
478
|
+
* export type AlabRoutes = "/" | "/about" | `/users/${string}`;
|
|
479
|
+
* ```
|
|
480
|
+
*
|
|
481
|
+
* Add `".alabjs/routes.d.ts"` to `tsconfig.json` `include` to enable
|
|
482
|
+
* type-checking on `<RouteLink to>`, `<Link href>`, and `navigate()`.
|
|
483
|
+
*/
|
|
484
|
+
function writeRouteTypes(manifest, distDir) {
|
|
485
|
+
const pageRoutes = manifest.routes.filter((r) => r.kind === "page");
|
|
486
|
+
// Convert alab `[param]` syntax → TypeScript template literal `${string}`.
|
|
487
|
+
const routeTypes = pageRoutes.map((r) => {
|
|
488
|
+
const tsPath = r.path.replace(/\[([^\]]+)\]/g, "${string}");
|
|
489
|
+
// Static path → plain string literal; dynamic path → template literal.
|
|
490
|
+
return tsPath.includes("${") ? `\`${tsPath}\`` : JSON.stringify(tsPath);
|
|
491
|
+
});
|
|
492
|
+
const unionType = routeTypes.length > 0 ? routeTypes.join(" | ") : "string";
|
|
493
|
+
const content = [
|
|
494
|
+
"// AUTO-GENERATED by `alab build` — do not edit manually.",
|
|
495
|
+
"// Add \".alabjs/routes.d.ts\" to your tsconfig.json `include` array to enable",
|
|
496
|
+
"// type-checking on <RouteLink to>, <Link href>, and navigate().",
|
|
497
|
+
"",
|
|
498
|
+
`export type AlabRoutes = ${unionType};`,
|
|
499
|
+
"",
|
|
500
|
+
"declare module \"alabjs/router\" {",
|
|
501
|
+
" export function navigate(path: AlabRoutes, opts?: { replace?: boolean }): void;",
|
|
502
|
+
"}",
|
|
503
|
+
"",
|
|
504
|
+
"declare module \"alabjs/components\" {",
|
|
505
|
+
" import type { ComponentProps } from \"react\";",
|
|
506
|
+
" interface RouteLinkProps extends Omit<ComponentProps<\"a\">, \"href\"> {",
|
|
507
|
+
" to: AlabRoutes;",
|
|
508
|
+
" replace?: boolean;",
|
|
509
|
+
" }",
|
|
510
|
+
" export function RouteLink(props: RouteLinkProps): JSX.Element;",
|
|
511
|
+
" export function Link(props: RouteLinkProps): JSX.Element;",
|
|
512
|
+
"}",
|
|
513
|
+
"",
|
|
514
|
+
].join("\n");
|
|
515
|
+
writeFileSync(resolve(distDir, "routes.d.ts"), content, "utf8");
|
|
516
|
+
}
|
|
423
517
|
/**
|
|
424
518
|
* Compile all SSR route files to `distDir/server/` using esbuild's per-file
|
|
425
519
|
* transpilation mode.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"build.js","sourceRoot":"","sources":["../../src/commands/build.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../src/commands/dev.ts"],"names":[],"mappings":"AAiJA,UAAU,UAAU;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAoCD,wBAAsB,GAAG,CAAC,EAAE,GAAG,EAAE,IAAW,EAAE,IAAkB,EAAE,EAAE,UAAU,iBA2tB7E"}
|
package/dist/commands/dev.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createServer } from "vite";
|
|
2
|
-
import { resolve, join } from "node:path";
|
|
3
|
-
import { readdirSync, existsSync as fsExistsSync, readFileSync as fsReadFileSync } from "node:fs";
|
|
2
|
+
import { resolve, join, relative } from "node:path";
|
|
3
|
+
import { readdirSync, existsSync as fsExistsSync, readFileSync as fsReadFileSync, writeFileSync, mkdirSync, openSync, readSync, closeSync } from "node:fs";
|
|
4
4
|
import { loadUserConfig, buildImportMap } from "../config.js";
|
|
5
5
|
import { Writable } from "node:stream";
|
|
6
6
|
import { scanDevRoutes, matchDevRoute, findLayoutFiles, findErrorFile, findLoadingFile, scanDevApiRoutes, matchDevApiRoute, } from "../ssr/router-dev.js";
|
|
@@ -10,6 +10,123 @@ import { handleImageRequest } from "../server/image.js";
|
|
|
10
10
|
import { runMiddleware } from "../server/middleware.js";
|
|
11
11
|
import { getCachedPage, setCachedPage, markPageRevalidating, isPageRevalidating, } from "../server/cache.js";
|
|
12
12
|
import { checkRevalidateAuth, applyRevalidate } from "../server/revalidate.js";
|
|
13
|
+
import { subscribeToTag } from "../live/broadcaster.js";
|
|
14
|
+
// ─── FNV-1a hash (mirrors the Rust napi hashBuildId) ─────────────────────────
|
|
15
|
+
// Must produce the same output as the Vite plugin so `/_alabjs/live/:id`
|
|
16
|
+
// endpoints match the IDs embedded in the client bundle.
|
|
17
|
+
function fnv1aHex(str) {
|
|
18
|
+
let hash = 0xcbf29ce484222325n;
|
|
19
|
+
for (const byte of Buffer.from(str, "utf-8")) {
|
|
20
|
+
hash ^= BigInt(byte);
|
|
21
|
+
hash = BigInt.asUintN(64, hash * 0x100000001b3n);
|
|
22
|
+
}
|
|
23
|
+
return hash.toString(16).padStart(16, "0");
|
|
24
|
+
}
|
|
25
|
+
// ─── Live component discovery ─────────────────────────────────────────────────
|
|
26
|
+
// Scans app/ for live component files and builds a hash → abs-path map so the
|
|
27
|
+
// dev SSE endpoint can locate components by the ID the client bundle embeds.
|
|
28
|
+
//
|
|
29
|
+
// Detection order (mirrors the Vite plugin transform hook):
|
|
30
|
+
// 1. *.live.tsx / *.live.ts filename convention — O(1), no file read needed
|
|
31
|
+
// 2. "use live" directive as first statement — reads first 200 bytes only
|
|
32
|
+
function buildLiveComponentMap(appDir) {
|
|
33
|
+
const map = new Map();
|
|
34
|
+
function hasUseLiveDirective(filePath) {
|
|
35
|
+
try {
|
|
36
|
+
// Read only the first 200 bytes to avoid loading large files.
|
|
37
|
+
const fd = openSync(filePath, "r");
|
|
38
|
+
const buf = Buffer.alloc(200);
|
|
39
|
+
const bytesRead = readSync(fd, buf, 0, 200, 0);
|
|
40
|
+
closeSync(fd);
|
|
41
|
+
return buf.subarray(0, bytesRead).toString("utf-8").includes('"use live"');
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function scan(dir) {
|
|
48
|
+
try {
|
|
49
|
+
for (const entry of readdirSync(dir, { withFileTypes: true })) {
|
|
50
|
+
const full = join(dir, entry.name);
|
|
51
|
+
if (entry.isDirectory()) {
|
|
52
|
+
scan(full);
|
|
53
|
+
continue;
|
|
54
|
+
}
|
|
55
|
+
if (!/\.(tsx|ts)$/.test(entry.name))
|
|
56
|
+
continue;
|
|
57
|
+
// Convention-based detection (no file read).
|
|
58
|
+
if (/\.live\.(tsx|ts)$/.test(entry.name)) {
|
|
59
|
+
map.set(fnv1aHex(full), full);
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
// Directive-based detection (cheap partial read).
|
|
63
|
+
if (hasUseLiveDirective(full)) {
|
|
64
|
+
map.set(fnv1aHex(full), full);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch { /* ignore ENOENT */ }
|
|
69
|
+
}
|
|
70
|
+
scan(appDir);
|
|
71
|
+
return map;
|
|
72
|
+
}
|
|
73
|
+
// ─── Dev-time route type generation ──────────────────────────────────────────
|
|
74
|
+
async function emitDevRouteTypes(cwd, appDir) {
|
|
75
|
+
try {
|
|
76
|
+
const mod = await import("@alabjs/compiler");
|
|
77
|
+
const napi = (mod.default ?? mod);
|
|
78
|
+
if (typeof napi.buildRoutes !== "function")
|
|
79
|
+
return;
|
|
80
|
+
const json = napi.buildRoutes(appDir);
|
|
81
|
+
const manifest = JSON.parse(json);
|
|
82
|
+
// Normalise absolute paths → cwd-relative
|
|
83
|
+
for (const r of manifest.routes) {
|
|
84
|
+
if (r.file.startsWith(cwd))
|
|
85
|
+
r.file = relative(cwd, r.file);
|
|
86
|
+
}
|
|
87
|
+
const pageRoutes = manifest.routes.filter((r) => r.kind === "page");
|
|
88
|
+
const routeTypes = pageRoutes.map((r) => {
|
|
89
|
+
const tsPath = r.path.replace(/\[([^\]]+)\]/g, "${string}");
|
|
90
|
+
return tsPath.includes("${") ? `\`${tsPath}\`` : JSON.stringify(tsPath);
|
|
91
|
+
});
|
|
92
|
+
const unionType = routeTypes.length > 0 ? routeTypes.join(" | ") : "string";
|
|
93
|
+
const content = [
|
|
94
|
+
"// AUTO-GENERATED by `alab dev` — do not edit manually.",
|
|
95
|
+
`export type AlabRoutes = ${unionType};`,
|
|
96
|
+
"declare module \"alabjs/router\" {",
|
|
97
|
+
" export function navigate(path: AlabRoutes, opts?: { replace?: boolean }): void;",
|
|
98
|
+
"}",
|
|
99
|
+
"declare module \"alabjs/components\" {",
|
|
100
|
+
" import type { ComponentProps } from \"react\";",
|
|
101
|
+
" interface RouteLinkProps extends Omit<ComponentProps<\"a\">, \"href\"> {",
|
|
102
|
+
" to: AlabRoutes;",
|
|
103
|
+
" replace?: boolean;",
|
|
104
|
+
" }",
|
|
105
|
+
" export function RouteLink(props: RouteLinkProps): JSX.Element;",
|
|
106
|
+
" export function Link(props: RouteLinkProps): JSX.Element;",
|
|
107
|
+
"}",
|
|
108
|
+
"",
|
|
109
|
+
].join("\n");
|
|
110
|
+
const distDir = resolve(cwd, ".alabjs");
|
|
111
|
+
mkdirSync(distDir, { recursive: true });
|
|
112
|
+
writeFileSync(resolve(distDir, "routes.d.ts"), content, "utf8");
|
|
113
|
+
// Warn about route violations (non-fatal in dev)
|
|
114
|
+
if (typeof napi.checkRouteRefs === "function") {
|
|
115
|
+
const violations = JSON.parse(napi.checkRouteRefs(appDir, json));
|
|
116
|
+
if (violations.length > 0) {
|
|
117
|
+
console.warn(`\n alab ⚠ ${violations.length} route violation(s):`);
|
|
118
|
+
for (const v of violations) {
|
|
119
|
+
const rel = relative(cwd, v.file);
|
|
120
|
+
console.warn(` ✗ ${rel} "${v.path}" (${v.kind.replace("_", " ")})`);
|
|
121
|
+
if (v.suggestion)
|
|
122
|
+
console.warn(` → ${v.suggestion}`);
|
|
123
|
+
}
|
|
124
|
+
console.warn("");
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
catch { /* napi binary not available — skip silently */ }
|
|
129
|
+
}
|
|
13
130
|
/** Recursively find all *.server.ts / *.server.tsx files under a directory. */
|
|
14
131
|
function findServerFiles(dir) {
|
|
15
132
|
const results = [];
|
|
@@ -94,6 +211,12 @@ export async function dev({ cwd, port = 3000, host = "localhost" }) {
|
|
|
94
211
|
// rather than silently rendering with stale JS.
|
|
95
212
|
const devBuildId = `dev-${Date.now().toString(36)}`;
|
|
96
213
|
const appDir = resolve(cwd, "app");
|
|
214
|
+
// Generate .alabjs/routes.d.ts and warn about route violations (non-fatal in dev).
|
|
215
|
+
void emitDevRouteTypes(cwd, appDir);
|
|
216
|
+
// Build live component map: hash → absolute file path.
|
|
217
|
+
// Re-built lazily on each request so new *.live.tsx files are picked up
|
|
218
|
+
// without restarting the dev server.
|
|
219
|
+
let liveMap = buildLiveComponentMap(appDir);
|
|
97
220
|
const vite = await createServer({
|
|
98
221
|
root: cwd,
|
|
99
222
|
appType: "custom",
|
|
@@ -355,6 +478,86 @@ export async function dev({ cwd, port = 3000, host = "localhost" }) {
|
|
|
355
478
|
res.end(JSON.stringify("error" in result ? { error: result.error } : result));
|
|
356
479
|
return;
|
|
357
480
|
}
|
|
481
|
+
// ── /_alabjs/live/:id — SSE stream for "use live" components ─────────────
|
|
482
|
+
if (pathname.startsWith("/_alabjs/live/")) {
|
|
483
|
+
const liveId = pathname.slice("/_alabjs/live/".length).split("?")[0] ?? "";
|
|
484
|
+
// Rebuild map on each request so new *.live.tsx files appear without restart.
|
|
485
|
+
liveMap = buildLiveComponentMap(appDir);
|
|
486
|
+
const liveFile = liveMap.get(liveId);
|
|
487
|
+
if (!liveFile) {
|
|
488
|
+
res.statusCode = 404;
|
|
489
|
+
res.setHeader("content-type", "application/json");
|
|
490
|
+
res.end(JSON.stringify({ error: `[alabjs] live component not found: ${liveId}` }));
|
|
491
|
+
return;
|
|
492
|
+
}
|
|
493
|
+
// Decode props from query param: ?props=<base64-json>
|
|
494
|
+
const url = new URL(rawUrl, `http://${host}:${port}`);
|
|
495
|
+
let props = {};
|
|
496
|
+
try {
|
|
497
|
+
const propsParam = url.searchParams.get("props");
|
|
498
|
+
if (propsParam)
|
|
499
|
+
props = JSON.parse(Buffer.from(decodeURIComponent(propsParam), "base64").toString("utf-8"));
|
|
500
|
+
}
|
|
501
|
+
catch { /* malformed — use empty props */ }
|
|
502
|
+
res.statusCode = 200;
|
|
503
|
+
res.setHeader("content-type", "text/event-stream; charset=utf-8");
|
|
504
|
+
res.setHeader("cache-control", "no-store");
|
|
505
|
+
res.setHeader("connection", "keep-alive");
|
|
506
|
+
res.setHeader("x-accel-buffering", "no");
|
|
507
|
+
let dead = false;
|
|
508
|
+
let lastHash = "";
|
|
509
|
+
const send = async () => {
|
|
510
|
+
if (dead || res.destroyed)
|
|
511
|
+
return;
|
|
512
|
+
try {
|
|
513
|
+
const mod = await vite.ssrLoadModule(liveFile);
|
|
514
|
+
const Component = mod.default;
|
|
515
|
+
if (typeof Component !== "function")
|
|
516
|
+
return;
|
|
517
|
+
const { renderToStaticMarkup } = await import("react-dom/server");
|
|
518
|
+
const { createElement } = await import("react");
|
|
519
|
+
const html = renderToStaticMarkup(createElement(Component, props));
|
|
520
|
+
// FNV-1a no-op suppression: skip push when content unchanged.
|
|
521
|
+
const hash = fnv1aHex(html);
|
|
522
|
+
if (hash === lastHash)
|
|
523
|
+
return;
|
|
524
|
+
lastHash = hash;
|
|
525
|
+
res.write(`data: ${html}\n\n`);
|
|
526
|
+
}
|
|
527
|
+
catch (err) {
|
|
528
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
529
|
+
res.write(`event: error\ndata: ${JSON.stringify(msg)}\n\n`);
|
|
530
|
+
}
|
|
531
|
+
};
|
|
532
|
+
// Initial render.
|
|
533
|
+
await send();
|
|
534
|
+
// Interval-based polling (read liveInterval from module).
|
|
535
|
+
let intervalMs = 5000;
|
|
536
|
+
try {
|
|
537
|
+
const mod = await vite.ssrLoadModule(liveFile);
|
|
538
|
+
if (typeof mod.liveInterval === "number" && mod.liveInterval > 0) {
|
|
539
|
+
intervalMs = mod.liveInterval * 1000;
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
catch { /* use default */ }
|
|
543
|
+
const timer = setInterval(() => void send(), intervalMs);
|
|
544
|
+
// Tag-based invalidation.
|
|
545
|
+
let unsubTags = null;
|
|
546
|
+
try {
|
|
547
|
+
const mod = await vite.ssrLoadModule(liveFile);
|
|
548
|
+
if (Array.isArray(mod.liveTags) && mod.liveTags.length > 0) {
|
|
549
|
+
const unsubs = mod.liveTags.map((tag) => subscribeToTag(tag, () => void send()));
|
|
550
|
+
unsubTags = () => unsubs.forEach((u) => u());
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
catch { /* no tags */ }
|
|
554
|
+
req.on("close", () => {
|
|
555
|
+
dead = true;
|
|
556
|
+
clearInterval(timer);
|
|
557
|
+
unsubTags?.();
|
|
558
|
+
});
|
|
559
|
+
return;
|
|
560
|
+
}
|
|
358
561
|
// ── API routes (route.ts) ─────────────────────────────────────────────────
|
|
359
562
|
// Browser navigations (Accept: text/html) skip API routing so a path can
|
|
360
563
|
// serve both a React page AND an API endpoint (e.g. /activity as a page
|
|
@@ -602,5 +805,25 @@ export async function dev({ cwd, port = 3000, host = "localhost" }) {
|
|
|
602
805
|
});
|
|
603
806
|
await vite.listen();
|
|
604
807
|
vite.printUrls();
|
|
808
|
+
// ── Watch app/ for route file additions/deletions ──────────────────────────
|
|
809
|
+
// Re-emit .alabjs/routes.d.ts so TypeScript picks up new routes immediately
|
|
810
|
+
// without needing a dev server restart. Also rebuilds the live component map.
|
|
811
|
+
const ROUTE_FILE_RE = /\.(page|server|live|layout)\.(tsx|ts)$|^(page|layout|error|loading|route)\.(tsx|ts)$/;
|
|
812
|
+
vite.watcher.on("add", (filePath) => {
|
|
813
|
+
if (!filePath.startsWith(appDir))
|
|
814
|
+
return;
|
|
815
|
+
if (!ROUTE_FILE_RE.test(filePath))
|
|
816
|
+
return;
|
|
817
|
+
void emitDevRouteTypes(cwd, appDir);
|
|
818
|
+
liveMap = buildLiveComponentMap(appDir);
|
|
819
|
+
});
|
|
820
|
+
vite.watcher.on("unlink", (filePath) => {
|
|
821
|
+
if (!filePath.startsWith(appDir))
|
|
822
|
+
return;
|
|
823
|
+
if (!ROUTE_FILE_RE.test(filePath))
|
|
824
|
+
return;
|
|
825
|
+
void emitDevRouteTypes(cwd, appDir);
|
|
826
|
+
liveMap = buildLiveComponentMap(appDir);
|
|
827
|
+
});
|
|
605
828
|
}
|
|
606
829
|
//# sourceMappingURL=dev.js.map
|