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.
Files changed (51) hide show
  1. package/dist/commands/build.d.ts.map +1 -1
  2. package/dist/commands/build.js +122 -28
  3. package/dist/commands/build.js.map +1 -1
  4. package/dist/commands/dev.d.ts.map +1 -1
  5. package/dist/commands/dev.js +225 -2
  6. package/dist/commands/dev.js.map +1 -1
  7. package/dist/components/Link.d.ts +16 -0
  8. package/dist/components/Link.d.ts.map +1 -1
  9. package/dist/components/Link.js +10 -0
  10. package/dist/components/Link.js.map +1 -1
  11. package/dist/components/index.d.ts +2 -2
  12. package/dist/components/index.d.ts.map +1 -1
  13. package/dist/components/index.js +1 -1
  14. package/dist/components/index.js.map +1 -1
  15. package/dist/live/broadcaster.d.ts +64 -0
  16. package/dist/live/broadcaster.d.ts.map +1 -0
  17. package/dist/live/broadcaster.js +78 -0
  18. package/dist/live/broadcaster.js.map +1 -0
  19. package/dist/live/registry.d.ts +34 -0
  20. package/dist/live/registry.d.ts.map +1 -0
  21. package/dist/live/registry.js +33 -0
  22. package/dist/live/registry.js.map +1 -0
  23. package/dist/live/renderer.d.ts +22 -0
  24. package/dist/live/renderer.d.ts.map +1 -0
  25. package/dist/live/renderer.js +45 -0
  26. package/dist/live/renderer.js.map +1 -0
  27. package/dist/router/manifest.d.ts +1 -1
  28. package/dist/router/manifest.d.ts.map +1 -1
  29. package/dist/server/app.d.ts.map +1 -1
  30. package/dist/server/app.js +146 -0
  31. package/dist/server/app.js.map +1 -1
  32. package/dist/server/index.d.ts +1 -0
  33. package/dist/server/index.d.ts.map +1 -1
  34. package/dist/server/index.js +1 -0
  35. package/dist/server/index.js.map +1 -1
  36. package/dist/server/revalidate.d.ts.map +1 -1
  37. package/dist/server/revalidate.js +3 -0
  38. package/dist/server/revalidate.js.map +1 -1
  39. package/package.json +3 -3
  40. package/src/commands/build.ts +142 -30
  41. package/src/commands/dev.ts +246 -3
  42. package/src/components/Link.tsx +20 -0
  43. package/src/components/index.ts +2 -2
  44. package/src/live/broadcaster.ts +83 -0
  45. package/src/live/registry.ts +56 -0
  46. package/src/live/renderer.ts +54 -0
  47. package/src/router/manifest.ts +1 -1
  48. package/src/server/app.ts +159 -0
  49. package/src/server/index.ts +1 -0
  50. package/src/server/revalidate.ts +3 -0
  51. package/tsconfig.tsbuildinfo +1 -1
@@ -14,6 +14,9 @@ import { applyCdnHeaders } from "./cdn.js";
14
14
  import { getPPRShell, injectBuildIdIntoPPRShell, PPR_CACHE_SUBDIR } from "../ssr/ppr.js";
15
15
  import { handleVitalsBeacon, handleAnalyticsDashboard } from "../analytics/handler.js";
16
16
  import { buildImportMap } from "../config.js";
17
+ import { registerLiveComponent } from "../live/registry.js";
18
+ import { renderLiveFragment, hashFragment } from "../live/renderer.js";
19
+ import { subscribeToTag } from "../live/broadcaster.js";
17
20
  /** Walk dist/server recursively and collect all *.server.js paths (compiled server functions). */
18
21
  function findDistServerFiles(distDir) {
19
22
  const serverDir = join(distDir, "server");
@@ -35,6 +38,43 @@ function findDistServerFiles(distDir) {
35
38
  walk(serverDir);
36
39
  return results;
37
40
  }
41
+ /** Walk dist/server recursively and register all *.live.js modules. */
42
+ async function registerAllLiveComponents(distDir) {
43
+ const serverDir = join(distDir, "server");
44
+ const files = [];
45
+ function walk(dir) {
46
+ try {
47
+ for (const entry of readdirSync(dir, { withFileTypes: true })) {
48
+ const fullPath = join(dir, entry.name);
49
+ if (entry.isDirectory()) {
50
+ walk(fullPath);
51
+ }
52
+ else if (entry.isFile() && entry.name.endsWith(".live.js")) {
53
+ files.push(fullPath);
54
+ }
55
+ }
56
+ }
57
+ catch { /* not readable */ }
58
+ }
59
+ walk(serverDir);
60
+ for (const filePath of files) {
61
+ try {
62
+ const mod = await import(filePath);
63
+ // liveId is stamped by the Vite plugin (hash of source path).
64
+ // Fall back to a hash of the file path itself.
65
+ const id = mod.liveId ?? filePath.replace(/[^a-z0-9]/gi, "").slice(-16);
66
+ registerLiveComponent({
67
+ id,
68
+ modulePath: filePath,
69
+ ...(typeof mod.liveInterval === "number" ? { liveInterval: mod.liveInterval } : {}),
70
+ ...(typeof mod.liveTags === "function" ? { liveTags: mod.liveTags } : {}),
71
+ });
72
+ }
73
+ catch (err) {
74
+ console.warn(`[alabjs] live: failed to register ${filePath}:`, err);
75
+ }
76
+ }
77
+ }
38
78
  /**
39
79
  * Find layout file paths (relative to cwd root) for a given route.file, ordered outermost→innermost.
40
80
  * Checks the compiled dist directory for the existence of each layout.
@@ -133,6 +173,10 @@ export function createApp(manifest, distDir) {
133
173
  catch { /* no federation config — federation disabled */ }
134
174
  // Absolute path to the PPR shell cache directory.
135
175
  const pprCacheDir = resolve(distDir, "../../", PPR_CACHE_SUBDIR);
176
+ // Register live components at startup (non-blocking — failures are warned, not thrown).
177
+ registerAllLiveComponents(distDir).catch((err) => {
178
+ console.warn("[alabjs] live: component registration failed:", err);
179
+ });
136
180
  // ─── Global middleware ───────────────────────────────────────────────────────
137
181
  app.use(defineEventHandler((event) => {
138
182
  const res = event.node.res;
@@ -151,6 +195,30 @@ export function createApp(manifest, distDir) {
151
195
  // every <script> tag via renderToResponse's headExtra option. The CSRF
152
196
  // double-submit pattern relies on XSS prevention — using 'unsafe-inline'
153
197
  // without a nonce makes the CSRF token readable by injected scripts.
198
+ //
199
+ // NOTE: 'upgrade-insecure-requests' is intentionally omitted from the
200
+ // default CSP. That directive tells browsers to silently rewrite http://
201
+ // sub-resource URLs to https://, which breaks any app served over plain
202
+ // HTTP (local dev, internal tooling, HTTP-only staging servers) because
203
+ // the browser will refuse to load scripts and stylesheets redirected from
204
+ // the virtual /@alabjs/client path.
205
+ //
206
+ // Add it in your own middleware when you are certain every environment
207
+ // runs behind HTTPS:
208
+ //
209
+ // // middleware.ts
210
+ // export async function middleware(req: Request) {
211
+ // const isHttps = req.headers.get("x-forwarded-proto") === "https"
212
+ // || new URL(req.url).protocol === "https:";
213
+ // if (isHttps) {
214
+ // // Append the directive to whatever CSP the framework already set.
215
+ // const existing = res.headers.get("content-security-policy") ?? "";
216
+ // res.headers.set(
217
+ // "content-security-policy",
218
+ // existing + "; upgrade-insecure-requests",
219
+ // );
220
+ // }
221
+ // }
154
222
  res.setHeader("content-security-policy", [
155
223
  "default-src 'self'",
156
224
  "script-src 'self' 'unsafe-inline' 'unsafe-eval'",
@@ -366,6 +434,84 @@ export function createApp(manifest, distDir) {
366
434
  handleAnalyticsDashboard(event.node.req, event.node.res);
367
435
  return null;
368
436
  }));
437
+ // ─── Live component SSE endpoint ────────────────────────────────────────────
438
+ // GET /_alabjs/live/:id?props=<base64-json>
439
+ //
440
+ // Opens a persistent SSE stream for a live component. On connect:
441
+ // 1. Renders the component immediately and sends the first fragment.
442
+ // 2. Sets up an interval (if liveInterval is set) to re-render and push.
443
+ // 3. Subscribes to tag broadcasts (if liveTags is set).
444
+ // 4. On client disconnect: clears interval + unsubscribes tags.
445
+ router.get("/_alabjs/live/:id", defineEventHandler(async (event) => {
446
+ const req = event.node.req;
447
+ const res = event.node.res;
448
+ const id = (event.context.params?.["id"] ?? "");
449
+ const { getLiveComponent } = await import("../live/registry.js");
450
+ const entry = getLiveComponent(id);
451
+ if (!entry) {
452
+ res.statusCode = 404;
453
+ res.setHeader("content-type", "application/json");
454
+ res.end(JSON.stringify({ error: `[alabjs] live component not found: ${id}` }));
455
+ return;
456
+ }
457
+ // Parse props from base64-encoded JSON query param.
458
+ let props = {};
459
+ try {
460
+ const url = new URL(req.url ?? "/", `http://${req.headers.host ?? "localhost"}`);
461
+ const raw = url.searchParams.get("props");
462
+ if (raw)
463
+ props = JSON.parse(Buffer.from(raw, "base64").toString("utf8"));
464
+ }
465
+ catch { /* malformed props — use empty object */ }
466
+ // SSE headers.
467
+ res.statusCode = 200;
468
+ res.setHeader("content-type", "text/event-stream; charset=utf-8");
469
+ res.setHeader("cache-control", "no-cache, no-transform");
470
+ res.setHeader("connection", "keep-alive");
471
+ res.setHeader("x-accel-buffering", "no"); // disable nginx buffering
472
+ let lastHash = "";
473
+ let closed = false;
474
+ async function pushFragment() {
475
+ if (closed)
476
+ return;
477
+ try {
478
+ const html = await renderLiveFragment(entry.modulePath, props);
479
+ const hash = hashFragment(html);
480
+ if (hash === lastHash)
481
+ return; // no-op — output unchanged
482
+ lastHash = hash;
483
+ res.write(`data: ${html}\n\n`);
484
+ }
485
+ catch (err) {
486
+ console.error(`[alabjs] live render error (${id}):`, err);
487
+ }
488
+ }
489
+ // Send initial fragment immediately.
490
+ await pushFragment();
491
+ // Interval-based polling.
492
+ let intervalHandle = null;
493
+ if (entry.liveInterval && entry.liveInterval > 0) {
494
+ intervalHandle = setInterval(() => { void pushFragment(); }, entry.liveInterval);
495
+ }
496
+ // Tag-based subscriptions.
497
+ const unsubFns = [];
498
+ if (entry.liveTags) {
499
+ const tags = entry.liveTags(props);
500
+ for (const tag of tags) {
501
+ unsubFns.push(subscribeToTag(tag, () => { void pushFragment(); }));
502
+ }
503
+ }
504
+ // Cleanup on disconnect.
505
+ req.on("close", () => {
506
+ closed = true;
507
+ if (intervalHandle)
508
+ clearInterval(intervalHandle);
509
+ for (const unsub of unsubFns)
510
+ unsub();
511
+ });
512
+ // Return null so h3 does not try to end the response — SSE keeps it open.
513
+ return null;
514
+ }));
369
515
  // ─── Server function endpoints ──────────────────────────────────────────────
370
516
  // GET /_alabjs/data/:fn — used by useServerData (query params as input)
371
517
  // POST /_alabjs/fn/:fn — used by useMutation (JSON body as input)
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/server/app.ts"],"names":[],"mappings":"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"}
@@ -54,4 +54,5 @@ export declare function defineServerFn<Input = undefined, Output = unknown>(hand
54
54
  export declare function defineServerFn<Schema extends ZodLike<unknown>, Output = unknown>(schema: Schema, handler: (ctx: ServerFnContext, input: Schema extends ZodLike<infer T> ? T : never) => Promise<Output>, options?: DefineServerFnOptions<Schema extends ZodLike<infer T> ? T : never>): ServerFn<Schema extends ZodLike<infer T> ? T : never, Output>;
55
55
  export { defineSSEHandler } from "./sse.js";
56
56
  export type { SSEEvent } from "./sse.js";
57
+ export { invalidateLive } from "../live/broadcaster.js";
57
58
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKnE,MAAM,WAAW,oBAAoB,CAAC,KAAK;IACzC,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,EAAE,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,qBAAqB,CAAC,KAAK;IAC1C,yEAAyE;IACzE,KAAK,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;CACrC;AAID,UAAU,OAAO,CAAC,CAAC;IACjB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;CAC5F;AAaD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,GAAG,SAAS,EAAE,MAAM,GAAG,OAAO,EAChE,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,EAChE,OAAO,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,GACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAE3B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,MAAM,SAAS,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,EAC9E,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,CACP,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE,MAAM,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,KAC/C,OAAO,CAAC,MAAM,CAAC,EACpB,OAAO,CAAC,EAAE,qBAAqB,CAAC,MAAM,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAC3E,QAAQ,CAAC,MAAM,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC;AAgEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAKnE,MAAM,WAAW,oBAAoB,CAAC,KAAK;IACzC,4EAA4E;IAC5E,GAAG,EAAE,MAAM,CAAC;IACZ;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,KAAK,KAAK,MAAM,EAAE,CAAC,CAAC;CAChD;AAED,MAAM,WAAW,qBAAqB,CAAC,KAAK;IAC1C,yEAAyE;IACzE,KAAK,CAAC,EAAE,oBAAoB,CAAC,KAAK,CAAC,CAAC;CACrC;AAID,UAAU,OAAO,CAAC,CAAC;IACjB,SAAS,CAAC,KAAK,EAAE,OAAO,GAAG;QAAE,OAAO,EAAE,IAAI,CAAC;QAAC,IAAI,EAAE,CAAC,CAAA;KAAE,GAAG;QAAE,OAAO,EAAE,KAAK,CAAC;QAAC,KAAK,EAAE,OAAO,CAAA;KAAE,CAAC;CAC5F;AAaD;;;;;;;GAOG;AACH,wBAAgB,cAAc,CAAC,KAAK,GAAG,SAAS,EAAE,MAAM,GAAG,OAAO,EAChE,OAAO,EAAE,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,KAAK,KAAK,OAAO,CAAC,MAAM,CAAC,EAChE,OAAO,CAAC,EAAE,qBAAqB,CAAC,KAAK,CAAC,GACrC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;AAE3B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,MAAM,SAAS,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,EAC9E,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,CACP,GAAG,EAAE,eAAe,EACpB,KAAK,EAAE,MAAM,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,KAC/C,OAAO,CAAC,MAAM,CAAC,EACpB,OAAO,CAAC,EAAE,qBAAqB,CAAC,MAAM,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAC3E,QAAQ,CAAC,MAAM,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC,CAAC;AAgEjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,YAAY,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
@@ -55,4 +55,5 @@ export function defineServerFn(...args) {
55
55
  return wrapped;
56
56
  }
57
57
  export { defineSSEHandler } from "./sse.js";
58
+ export { invalidateLive } from "../live/broadcaster.js";
58
59
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA0B7D,SAAS,WAAW,CAAC,CAAU;IAC7B,OAAO,CACL,CAAC,KAAK,IAAI;QACV,OAAO,CAAC,KAAK,QAAQ;QACrB,WAAW,IAAI,CAAC;QAChB,OAAQ,CAA6B,CAAC,WAAW,CAAC,KAAK,UAAU,CAClE,CAAC;AACJ,CAAC;AA8CD,iFAAiF;AAEjF,8DAA8D;AAC9D,MAAM,UAAU,cAAc,CAAC,GAAG,IAAW;IAC3C,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,YAAY,CAAC,GAAG,IAIzD,CAAC;IACF,IAAI,MAAM,GAA4B,IAAI,CAAC;IAC3C,IAAI,OAAiD,CAAC;IACtD,IAAI,OAAmD,CAAC;IAExD,IAAI,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;QACjC,MAAM,GAAG,eAAe,CAAC;QACzB,OAAO,GAAG,gBAA4D,CAAC;QACvE,OAAO,GAAG,YAAY,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,eAA2D,CAAC;QACtE,OAAO,GAAG,gBAA8D,CAAC;IAC3E,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,EAAE,KAAK,CAAC;IAEjC,MAAM,OAAO,GAAG,KAAK,EAAE,GAAoB,EAAE,KAAc,EAAoB,EAAE;QAC/E,4EAA4E;QAC5E,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,oEAAoE;gBACpE,gDAAgD;gBAChD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,4BAA4B,CAAkC,CAAC;gBACrF,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC5B,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC;QAC/B,CAAC;QAED,4EAA4E;QAC5E,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;YACrE,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,MAAM,KAAK,UAAU;gBAAE,OAAO,MAAM,CAAC;YAEzC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAEhD,MAAM,IAAI,GACR,OAAO,SAAS,CAAC,IAAI,KAAK,UAAU;gBAClC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;gBAChC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAC7B,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,8DAA8D;IAC9D,OAAO,OAA6B,CAAC;AACvC,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/server/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AA0B7D,SAAS,WAAW,CAAC,CAAU;IAC7B,OAAO,CACL,CAAC,KAAK,IAAI;QACV,OAAO,CAAC,KAAK,QAAQ;QACrB,WAAW,IAAI,CAAC;QAChB,OAAQ,CAA6B,CAAC,WAAW,CAAC,KAAK,UAAU,CAClE,CAAC;AACJ,CAAC;AA8CD,iFAAiF;AAEjF,8DAA8D;AAC9D,MAAM,UAAU,cAAc,CAAC,GAAG,IAAW;IAC3C,MAAM,CAAC,eAAe,EAAE,gBAAgB,EAAE,YAAY,CAAC,GAAG,IAIzD,CAAC;IACF,IAAI,MAAM,GAA4B,IAAI,CAAC;IAC3C,IAAI,OAAiD,CAAC;IACtD,IAAI,OAAmD,CAAC;IAExD,IAAI,WAAW,CAAC,eAAe,CAAC,EAAE,CAAC;QACjC,MAAM,GAAG,eAAe,CAAC;QACzB,OAAO,GAAG,gBAA4D,CAAC;QACvE,OAAO,GAAG,YAAY,CAAC;IACzB,CAAC;SAAM,CAAC;QACN,OAAO,GAAG,eAA2D,CAAC;QACtE,OAAO,GAAG,gBAA8D,CAAC;IAC3E,CAAC;IAED,MAAM,SAAS,GAAG,OAAO,EAAE,KAAK,CAAC;IAEjC,MAAM,OAAO,GAAG,KAAK,EAAE,GAAoB,EAAE,KAAc,EAAoB,EAAE;QAC/E,4EAA4E;QAC5E,IAAI,cAAc,GAAG,KAAK,CAAC;QAC3B,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;gBACpB,oEAAoE;gBACpE,gDAAgD;gBAChD,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,4BAA4B,CAAkC,CAAC;gBACrF,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC;gBAC5B,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,cAAc,GAAG,MAAM,CAAC,IAAI,CAAC;QAC/B,CAAC;QAED,4EAA4E;QAC5E,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,QAAQ,GAAG,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,EAAE,CAAC;YACrE,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,MAAM,KAAK,UAAU;gBAAE,OAAO,MAAM,CAAC;YAEzC,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;YAEhD,MAAM,IAAI,GACR,OAAO,SAAS,CAAC,IAAI,KAAK,UAAU;gBAClC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC;gBAChC,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;YAC7B,QAAQ,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;YACvD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;IACtC,CAAC,CAAC;IAEF,8DAA8D;IAC9D,OAAO,OAA6B,CAAC;AACvC,CAAC;AAED,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"revalidate.d.ts","sourceRoot":"","sources":["../../src/server/revalidate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAMH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAkB3F;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,OAAO,GACZ;IAAE,WAAW,EAAE,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA0B5G"}
1
+ {"version":3,"file":"revalidate.d.ts","sourceRoot":"","sources":["../../src/server/revalidate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAOH,MAAM,WAAW,cAAc;IAC7B,uCAAuC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mFAAmF;IACnF,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,qFAAqF;AACrF,wBAAgB,mBAAmB,CAAC,mBAAmB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAkB3F;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,OAAO,GACZ;IAAE,WAAW,EAAE,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CA4B5G"}
@@ -26,6 +26,7 @@
26
26
  import { timingSafeEqual } from "node:crypto";
27
27
  import { revalidatePath, revalidatePathPrefix, revalidateTag } from "./cache.js";
28
28
  import { purgeCdnByTags } from "./cdn.js";
29
+ import { invalidateLive } from "../live/broadcaster.js";
29
30
  /** Returns `true` when the request is authorised to call the revalidate endpoint. */
30
31
  export function checkRevalidateAuth(authorizationHeader) {
31
32
  const secret = process.env["ALAB_REVALIDATE_SECRET"];
@@ -63,6 +64,8 @@ export function applyRevalidate(body) {
63
64
  // Fire-and-forget: CDN purge is best-effort. In-process cache is already
64
65
  // cleared above, so a CDN miss will just hit the origin and re-warm the edge.
65
66
  void purgeCdnByTags(tags);
67
+ // Notify live SSE connections subscribed to any of these tags.
68
+ void invalidateLive({ tags });
66
69
  }
67
70
  return {
68
71
  revalidated: true,
@@ -1 +1 @@
1
- {"version":3,"file":"revalidate.js","sourceRoot":"","sources":["../../src/server/revalidate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAW1C,qFAAqF;AACrF,MAAM,UAAU,mBAAmB,CAAC,mBAA8C;IAChF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CACV,uDAAuD;YACvD,qEAAqE;YACrE,kCAAkC,CACnC,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,UAAU,CAAC,SAAS,CAAC;QACzD,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC;IACT,OAAO,CACL,QAAQ,KAAK,IAAI;QACjB,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;QACjC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAC5D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAa;IAEb,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,qCAAqC,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAsB,CAAC;IAEtD,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,8CAA8C,EAAE,CAAC;IAChF,CAAC;IAED,IAAI,IAAI;QAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,MAAM;QAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACxB,yEAAyE;QACzE,8EAA8E;QAC9E,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,OAAO;QACL,WAAW,EAAE,IAAI;QACjB,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;QACnC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;KACpC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"revalidate.js","sourceRoot":"","sources":["../../src/server/revalidate.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAWxD,qFAAqF;AACrF,MAAM,UAAU,mBAAmB,CAAC,mBAA8C;IAChF,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,CAAC,IAAI,CACV,uDAAuD;YACvD,qEAAqE;YACrE,kCAAkC,CACnC,CAAC;QACF,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,QAAQ,GAAG,mBAAmB,EAAE,UAAU,CAAC,SAAS,CAAC;QACzD,CAAC,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC9B,CAAC,CAAC,IAAI,CAAC;IACT,OAAO,CACL,QAAQ,KAAK,IAAI;QACjB,QAAQ,CAAC,MAAM,KAAK,MAAM,CAAC,MAAM;QACjC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAC5D,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,IAAa;IAEb,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;QAC9C,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,qCAAqC,EAAE,CAAC;IACvE,CAAC;IAED,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAsB,CAAC;IAEtD,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QACrD,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,8CAA8C,EAAE,CAAC;IAChF,CAAC;IAED,IAAI,IAAI;QAAE,cAAc,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,MAAM;QAAE,oBAAoB,CAAC,MAAM,CAAC,CAAC;IACzC,IAAI,IAAI,EAAE,MAAM,EAAE,CAAC;QACjB,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;QACxB,yEAAyE;QACzE,8EAA8E;QAC9E,KAAK,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1B,+DAA+D;QAC/D,KAAK,cAAc,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,OAAO;QACL,WAAW,EAAE,IAAI;QACjB,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;QACnC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;QACvC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;KACpC,CAAC;AACJ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alabjs",
3
- "version": "0.3.0-alpha.1",
3
+ "version": "0.4.0",
4
4
  "description": "AlabJS — full-stack React framework powered by a Rust compiler",
5
5
  "keywords": [
6
6
  "react",
@@ -86,7 +86,7 @@
86
86
  "alab": "./dist/cli.js"
87
87
  },
88
88
  "optionalDependencies": {
89
- "@alabjs/compiler": "0.3.0-alpha.1"
89
+ "@alabjs/compiler": "0.4.0"
90
90
  },
91
91
  "dependencies": {
92
92
  "h3": "^1.15.0",
@@ -94,7 +94,7 @@
94
94
  "esbuild": "^0.25.0",
95
95
  "react": "^19.1.0",
96
96
  "react-dom": "^19.1.0",
97
- "alabjs-vite-plugin": "0.3.0-alpha.1"
97
+ "alabjs-vite-plugin": "0.4.0"
98
98
  },
99
99
  "devDependencies": {
100
100
  "@types/react": "^19.1.0",
@@ -95,12 +95,13 @@ async function buildSpa(cwd: string): Promise<void> {
95
95
  export async function build({ cwd, skipTypecheck = false, mode = "ssr", analyze = false }: BuildOptions) {
96
96
  if (mode === "spa") {
97
97
  console.log(" alab building SPA (client-only)...\n");
98
- const tasks: Promise<unknown>[] = [buildSpa(cwd)];
98
+ await buildSpa(cwd);
99
+ // SPA has no route manifest, but still type-check after the build so any
100
+ // generated types from the Vite plugin are available to tsc.
99
101
  if (!skipTypecheck) {
100
102
  console.log(" alab type-checking...");
101
- tasks.push(runTypecheck(cwd));
103
+ await runTypecheck(cwd);
102
104
  }
103
- await Promise.all(tasks);
104
105
  return;
105
106
  }
106
107
 
@@ -144,41 +145,45 @@ export async function build({ cwd, skipTypecheck = false, mode = "ssr", analyze
144
145
  }
145
146
  }
146
147
 
147
- const tasks: Promise<unknown>[] = [
148
- viteBuild({
149
- root: cwd,
150
- plugins: [
151
- (await import("alabjs-vite-plugin")).alabPlugin({ mode: "build" }),
152
- ...(visualizerPlugin ? [visualizerPlugin] : []),
153
- ],
154
- build: {
155
- // Output client assets to .alabjs/dist/client/ so the production server's
156
- // static handler (which serves from distDir/client/) can find them.
157
- outDir: resolve(cwd, ".alabjs/dist/client"),
158
- manifest: true,
159
- ssrManifest: true,
160
- rolldownOptions: {
161
- // In SSR mode, we don't use an index.html as the entry point.
162
- // Instead, we bundle the virtual client module as the main browser asset.
163
- input: "/@alabjs/client",
164
- },
148
+ await viteBuild({
149
+ root: cwd,
150
+ plugins: [
151
+ (await import("alabjs-vite-plugin")).alabPlugin({ mode: "build" }),
152
+ ...(visualizerPlugin ? [visualizerPlugin] : []),
153
+ ],
154
+ build: {
155
+ // Output client assets to .alabjs/dist/client/ so the production server's
156
+ // static handler (which serves from distDir/client/) can find them.
157
+ outDir: resolve(cwd, ".alabjs/dist/client"),
158
+ manifest: true,
159
+ ssrManifest: true,
160
+ rolldownOptions: {
161
+ // In SSR mode, we don't use an index.html as the entry point.
162
+ // Instead, we bundle the virtual client module as the main browser asset.
163
+ input: "/@alabjs/client",
165
164
  },
166
- }),
167
- ];
168
-
169
- if (!skipTypecheck) {
170
- console.log(" alab type-checking...");
171
- tasks.push(runTypecheck(cwd));
172
- }
173
-
174
- await Promise.all(tasks);
165
+ },
166
+ });
175
167
 
176
168
  const distDir = resolve(cwd, ".alabjs/dist");
177
169
 
178
170
  // Scan the app/ directory with the Rust router, normalize paths, and write
179
171
  // route-manifest.json. Must run before writeBuildId (hash) and buildPPRShells.
172
+ // Also writes .alabjs/routes.d.ts — type-checking runs AFTER this so tsc can
173
+ // resolve the AlabRoutes union that routes.d.ts exports.
180
174
  const manifest = await buildRouteManifest(cwd, distDir);
181
175
 
176
+ // Type-check after route types are written so `AlabRoutes` is resolvable.
177
+ if (!skipTypecheck) {
178
+ console.log(" alab type-checking...");
179
+ await runTypecheck(cwd);
180
+ }
181
+
182
+ // Validate all RouteLink/Link/navigate path references against the manifest.
183
+ // Runs after manifest generation but before the SSR bundle so type-safe route
184
+ // errors abort the build early with clear file + offset info.
185
+ await checkRouteReferences(cwd, manifest);
186
+
182
187
  // Compile all app pages, layouts, and server functions to .alabjs/dist/server/.
183
188
  // Must run after buildRouteManifest so we have the entry list, and before
184
189
  // buildPPRShells which imports the compiled modules.
@@ -469,6 +474,59 @@ async function buildFederationExposes(
469
474
  );
470
475
  }
471
476
 
477
+ /**
478
+ * Validate all `<RouteLink to>`, `<Link href>`, and `navigate()` path
479
+ * references in `app/` against the compiled route manifest.
480
+ *
481
+ * Fails the build with a formatted error list when unknown paths or literal
482
+ * bracket segments are found. Gracefully skips when the napi binary is absent.
483
+ */
484
+ async function checkRouteReferences(cwd: string, manifest: RouteManifest): Promise<void> {
485
+ const appDir = resolve(cwd, "app");
486
+
487
+ type NapiChecker = { checkRouteRefs(appDir: string, manifestJson: string): string };
488
+ let napi: NapiChecker;
489
+ try {
490
+ const mod = await import("@alabjs/compiler") as unknown as { default?: NapiChecker } & NapiChecker;
491
+ napi = (mod.default ?? mod) as NapiChecker;
492
+ if (typeof napi.checkRouteRefs !== "function") return; // napi binary predates route checker
493
+ } catch {
494
+ return; // napi binary not available — skip silently
495
+ }
496
+
497
+ const manifestJson = JSON.stringify(manifest);
498
+ const violationsJson = napi.checkRouteRefs(appDir, manifestJson);
499
+ const violations = JSON.parse(violationsJson) as Array<{
500
+ file: string;
501
+ offset: number;
502
+ kind: "unknown_path" | "literal_segment";
503
+ path: string;
504
+ suggestion?: string;
505
+ }>;
506
+
507
+ if (violations.length === 0) return;
508
+
509
+ const lines: string[] = [
510
+ `\n alab ${violations.length} route violation${violations.length === 1 ? "" : "s"} found:\n`,
511
+ ];
512
+
513
+ for (const v of violations) {
514
+ const relFile = relative(cwd, v.file);
515
+ const kindLabel =
516
+ v.kind === "unknown_path"
517
+ ? "unknown path"
518
+ : "literal bracket — use params prop";
519
+ lines.push(` ✗ ${relFile} "${v.path}" (${kindLabel})`);
520
+ if (v.suggestion) {
521
+ lines.push(` → suggestion: ${v.suggestion}`);
522
+ }
523
+ }
524
+
525
+ lines.push("");
526
+ console.error(lines.join("\n"));
527
+ throw new Error(`[alabjs] Build failed: ${violations.length} route violation(s). Fix the paths above.`);
528
+ }
529
+
472
530
  /**
473
531
  * Scan `app/` with the Rust router napi, normalize absolute file paths to
474
532
  * cwd-relative, and write `route-manifest.json` to `distDir`.
@@ -508,9 +566,63 @@ async function buildRouteManifest(cwd: string, distDir: string): Promise<RouteMa
508
566
  const apis = manifest.routes.filter((r) => r.kind === "api").length;
509
567
  console.log(` alab routes → ${pages} page(s), ${apis} api route(s)`);
510
568
 
569
+ // Emit auto-generated route types so <RouteLink to="..."> and navigate() are
570
+ // type-safe without any manual setup. Written to .alabjs/routes.d.ts.
571
+ writeRouteTypes(manifest, distDir);
572
+
511
573
  return manifest;
512
574
  }
513
575
 
576
+ /**
577
+ * Write `.alabjs/routes.d.ts` containing the `AlabRoutes` union type and
578
+ * a typed `navigate` overload, auto-derived from the route manifest.
579
+ *
580
+ * Example output:
581
+ * ```ts
582
+ * export type AlabRoutes = "/" | "/about" | `/users/${string}`;
583
+ * ```
584
+ *
585
+ * Add `".alabjs/routes.d.ts"` to `tsconfig.json` `include` to enable
586
+ * type-checking on `<RouteLink to>`, `<Link href>`, and `navigate()`.
587
+ */
588
+ function writeRouteTypes(manifest: RouteManifest, distDir: string): void {
589
+ const pageRoutes = manifest.routes.filter((r) => r.kind === "page");
590
+
591
+ // Convert alab `[param]` syntax → TypeScript template literal `${string}`.
592
+ const routeTypes = pageRoutes.map((r) => {
593
+ const tsPath = r.path.replace(/\[([^\]]+)\]/g, "${string}");
594
+ // Static path → plain string literal; dynamic path → template literal.
595
+ return tsPath.includes("${") ? `\`${tsPath}\`` : JSON.stringify(tsPath);
596
+ });
597
+
598
+ const unionType = routeTypes.length > 0 ? routeTypes.join(" | ") : "string";
599
+
600
+ const content = [
601
+ "// AUTO-GENERATED by `alab build` — do not edit manually.",
602
+ "// Add \".alabjs/routes.d.ts\" to your tsconfig.json `include` array to enable",
603
+ "// type-checking on <RouteLink to>, <Link href>, and navigate().",
604
+ "",
605
+ `export type AlabRoutes = ${unionType};`,
606
+ "",
607
+ "declare module \"alabjs/router\" {",
608
+ " export function navigate(path: AlabRoutes, opts?: { replace?: boolean }): void;",
609
+ "}",
610
+ "",
611
+ "declare module \"alabjs/components\" {",
612
+ " import type { ComponentProps } from \"react\";",
613
+ " interface RouteLinkProps extends Omit<ComponentProps<\"a\">, \"href\"> {",
614
+ " to: AlabRoutes;",
615
+ " replace?: boolean;",
616
+ " }",
617
+ " export function RouteLink(props: RouteLinkProps): JSX.Element;",
618
+ " export function Link(props: RouteLinkProps): JSX.Element;",
619
+ "}",
620
+ "",
621
+ ].join("\n");
622
+
623
+ writeFileSync(resolve(distDir, "routes.d.ts"), content, "utf8");
624
+ }
625
+
514
626
  /**
515
627
  * Compile all SSR route files to `distDir/server/` using esbuild's per-file
516
628
  * transpilation mode.