reroute-js 0.1.0 → 0.2.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 (57) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/elysia/index.js +24 -6
  3. package/elysia/index.js.map +5 -5
  4. package/elysia/src/plugin.d.ts.map +1 -1
  5. package/elysia/src/routes/ssr.d.ts +2 -0
  6. package/elysia/src/routes/ssr.d.ts.map +1 -1
  7. package/elysia/src/routes/static.d.ts.map +1 -1
  8. package/package.json +9 -6
  9. package/packages/cli/README.md +264 -0
  10. package/packages/cli/bin.ts +3 -0
  11. package/packages/core/README.md +90 -0
  12. package/packages/elysia/README.md +250 -0
  13. package/packages/react/README.md +3 -0
  14. package/_/README.md +0 -59
  15. package/_/basic/package.json +0 -23
  16. package/_/basic/src/client/App.tsx +0 -10
  17. package/_/basic/src/client/components/Counter.tsx +0 -15
  18. package/_/basic/src/client/index.html +0 -12
  19. package/_/basic/src/client/index.tsx +0 -5
  20. package/_/basic/src/client/routes/[404].tsx +0 -18
  21. package/_/basic/src/client/routes/about.tsx +0 -25
  22. package/_/basic/src/client/routes/index.tsx +0 -57
  23. package/_/basic/src/index.ts +0 -20
  24. package/_/basic/tsconfig.json +0 -26
  25. package/_/blog/package.json +0 -23
  26. package/_/blog/src/client/App.tsx +0 -10
  27. package/_/blog/src/client/components/Counter.tsx +0 -14
  28. package/_/blog/src/client/components/RecentPosts.tsx +0 -90
  29. package/_/blog/src/client/index.html +0 -13
  30. package/_/blog/src/client/index.tsx +0 -5
  31. package/_/blog/src/client/routes/[404].tsx +0 -21
  32. package/_/blog/src/client/routes/about.tsx +0 -31
  33. package/_/blog/src/client/routes/blog/[404].tsx +0 -21
  34. package/_/blog/src/client/routes/blog/[layout].tsx +0 -84
  35. package/_/blog/src/client/routes/blog/[slug].tsx +0 -11
  36. package/_/blog/src/client/routes/blog/content/1-hello-world.tsx +0 -27
  37. package/_/blog/src/client/routes/blog/content/2-what-is-reroute.tsx +0 -31
  38. package/_/blog/src/client/routes/blog/index.tsx +0 -70
  39. package/_/blog/src/client/routes/index.tsx +0 -63
  40. package/_/blog/src/index.ts +0 -20
  41. package/_/blog/tsconfig.json +0 -26
  42. package/_/store/package.json +0 -25
  43. package/_/store/src/client/App.tsx +0 -17
  44. package/_/store/src/client/components/Header.tsx +0 -40
  45. package/_/store/src/client/components/ProductCard.tsx +0 -51
  46. package/_/store/src/client/index.html +0 -17
  47. package/_/store/src/client/index.tsx +0 -7
  48. package/_/store/src/client/lib/api.ts +0 -153
  49. package/_/store/src/client/routes/[404].tsx +0 -63
  50. package/_/store/src/client/routes/categories/[category].tsx +0 -223
  51. package/_/store/src/client/routes/categories/index.tsx +0 -187
  52. package/_/store/src/client/routes/index.tsx +0 -126
  53. package/_/store/src/client/routes/products/[id].tsx +0 -233
  54. package/_/store/src/client/routes/products/index.tsx +0 -261
  55. package/_/store/src/client/theme.css +0 -306
  56. package/_/store/src/index.ts +0 -19
  57. package/_/store/tsconfig.json +0 -26
package/CHANGELOG.md ADDED
@@ -0,0 +1,12 @@
1
+ ## [0.2.0](https://github.com/stewones/reroute/compare/v0.1.0...v0.2.0) (2025-11-04)
2
+
3
+ ### ⚡ Performance Improvements
4
+
5
+ * improve static cache ([ca13189](https://github.com/stewones/reroute/commit/ca13189025213d95e125ced4198e34956cac08d8))
6
+
7
+ ### 👷 Continuous Integration
8
+
9
+ * add ci prefix as trigger ([5d9567a](https://github.com/stewones/reroute/commit/5d9567aede7ab17c3e3da244b2d0e8963ece0dc4))
10
+ * disable tests for now ([45c0855](https://github.com/stewones/reroute/commit/45c08557cd9a436103e9ef0dd12fa239154dd2a5))
11
+ * fix changelog ([00be21e](https://github.com/stewones/reroute/commit/00be21ed183061255e40c6fed51d8f885526573f))
12
+ * fix code quality check ([fa09adb](https://github.com/stewones/reroute/commit/fa09adb5c88bc118839d322698974c7249e9a894))
package/elysia/index.js CHANGED
@@ -1331,11 +1331,13 @@ function registerSSRRoutes(app, options) {
1331
1331
  appId = "root",
1332
1332
  collections,
1333
1333
  minify = false,
1334
+ maxAge = 3600,
1335
+ directive = "public",
1334
1336
  dataCacheControl,
1335
1337
  shouldIgnorePathname
1336
1338
  } = options;
1337
1339
  for (const collection of collections) {
1338
- app.get(`/${collection}/*`, async ({ request }) => {
1340
+ app.get(`/${collection}/*`, async ({ request, headers }) => {
1339
1341
  const method = request.method || "GET";
1340
1342
  if (method !== "GET")
1341
1343
  throw new NotFoundError4;
@@ -1357,11 +1359,14 @@ function registerSSRRoutes(app, options) {
1357
1359
  appId,
1358
1360
  minify
1359
1361
  });
1360
- return new Response(result.html, {
1362
+ const acceptEncoding = headers["accept-encoding"] || "";
1363
+ const { body, extraHeaders } = gzipIfAccepted(result.html, "text/html; charset=utf-8", acceptEncoding);
1364
+ return new Response(body, {
1361
1365
  status: result.status,
1362
1366
  headers: {
1363
1367
  "content-type": "text/html; charset=utf-8",
1364
- Vary: "Accept"
1368
+ "cache-control": isWatchMode2 ? "no-cache" : `${directive}, max-age=${maxAge}`,
1369
+ ...extraHeaders
1365
1370
  }
1366
1371
  });
1367
1372
  } catch (e) {
@@ -1415,9 +1420,18 @@ function registerSSRRoutes(app, options) {
1415
1420
  appId,
1416
1421
  minify
1417
1422
  });
1423
+ const acceptEncoding = request.headers.get("accept-encoding") || "";
1424
+ const { body, extraHeaders } = gzipIfAccepted(result.html, "text/html; charset=utf-8", acceptEncoding);
1418
1425
  set.status = result.status;
1419
1426
  set.headers["content-type"] = "text/html; charset=utf-8";
1420
- return new Response(result.html);
1427
+ set.headers["cache-control"] = isWatchMode2 ? "no-cache" : `${directive}, max-age=${maxAge}`;
1428
+ if (extraHeaders["Content-Encoding"]) {
1429
+ set.headers["content-encoding"] = extraHeaders["Content-Encoding"];
1430
+ }
1431
+ if (extraHeaders.Vary) {
1432
+ set.headers.vary = extraHeaders.Vary;
1433
+ }
1434
+ return new Response(body);
1421
1435
  } catch {}
1422
1436
  }
1423
1437
  }
@@ -1596,10 +1610,12 @@ function registerStaticRoutes(app, options) {
1596
1610
  const content2 = new Uint8Array(contentBuf);
1597
1611
  const contentType = getMimeType(actualFilePath);
1598
1612
  const { body, extraHeaders } = gzipIfAccepted(content2, contentType, headers["accept-encoding"]);
1613
+ const isLongLivedAsset = contentType.startsWith("image/") || contentType.startsWith("font/") || contentType.includes("woff") || contentType.includes("ttf") || contentType.includes("otf");
1614
+ const cacheMaxAge = maxAge === 0 ? 0 : isLongLivedAsset ? 31536000 : maxAge;
1599
1615
  const response = new Response(body, {
1600
1616
  headers: {
1601
1617
  "Content-Type": contentType,
1602
- "Cache-Control": maxAge ? `${directive}, max-age=${maxAge}` : directive,
1618
+ "Cache-Control": cacheMaxAge > 0 ? `${directive}, max-age=${cacheMaxAge}${isLongLivedAsset ? ", immutable" : ""}` : "no-cache",
1603
1619
  ...extraHeaders,
1604
1620
  ...staticHeaders
1605
1621
  }
@@ -1731,6 +1747,8 @@ var reroute = (options = {}) => async (app) => {
1731
1747
  appId: ssrAppId,
1732
1748
  collections,
1733
1749
  minify,
1750
+ maxAge,
1751
+ directive,
1734
1752
  dataCacheControl,
1735
1753
  shouldIgnorePathname: (pathname) => {
1736
1754
  if (!ignorePatterns.length)
@@ -1759,4 +1777,4 @@ export {
1759
1777
  reroute
1760
1778
  };
1761
1779
 
1762
- //# debugId=BFACD166E43864D264756E2164756E21
1780
+ //# debugId=CF28F664748EC3F964756E2164756E21
@@ -22,11 +22,11 @@
22
22
  "import type { Elysia } from 'elysia';\nimport { NotFoundError } from 'elysia';\nimport { buildContentDTOs } from 'reroute-js/core';\n\nexport function registerContentRoutes(\n\tapp: Elysia,\n\tclientDir: string,\n\tprefix: string,\n\tisWatchMode: boolean,\n): Elysia {\n\t// Content manifest endpoint (JSON)\n\tapp.get('/__content/*', async ({ params, set }) => {\n\t\tconst collectionPath = String(params['*'] || '').trim();\n\t\tif (!collectionPath) throw new NotFoundError();\n\t\tconst items = await buildContentDTOs(\n\t\t\tcollectionPath,\n\t\t\tclientDir,\n\t\t\tprefix,\n\t\t\tisWatchMode,\n\t\t);\n\t\tconst body = JSON.stringify({ collection: collectionPath, items });\n\t\tset.status = 200;\n\t\tset.headers['content-type'] = 'application/json; charset=utf-8';\n\t\treturn new Response(body);\n\t});\n\n\treturn app;\n}\n",
23
23
  "import type { Elysia } from 'elysia';\nimport { NotFoundError } from 'elysia';\nimport { computeSSRDataForPath } from 'reroute-js/core';\nimport { jsonError, jsonWithCache } from '../utils/http';\n\nexport function registerDevRoutes(\n\tapp: Elysia,\n\tliveReloadClients: Set<ReadableStreamDefaultController>,\n\tisWatchMode: boolean,\n\topts?: { clientDir: string; cwd: string; dataCacheControl?: string },\n): Elysia {\n\t// Always register preload endpoint (used in SSR in all modes)\n\tapp.get('/__reroute_preload', async ({ query }) => {\n\t\tconst rawSrc = String(query.src || '').trim();\n\t\tconst key = String(query.key || '').trim();\n\t\tlet src = rawSrc;\n\t\ttry {\n\t\t\tsrc = decodeURIComponent(rawSrc);\n\t\t} catch {}\n\t\tconst safeChunk =\n\t\t\tsrc.startsWith('/.reroute/chunks/') && /^[A-Za-z0-9_./-]+\\.js$/.test(src);\n\t\tconst safeSource =\n\t\t\tsrc.startsWith('/routes/') &&\n\t\t\t/^[A-Za-z0-9_./\\-[\\]]+\\.(tsx?|js)$/.test(src);\n\t\tconst safe = (safeChunk || safeSource) && !src.includes('..');\n\t\tif (!safe || !key) throw new NotFoundError();\n\n\t\t// Use static import to guarantee execution ordering and avoid race during hydration\n\t\tconst code =\n\t\t\t`// preload for ${key}\\n` +\n\t\t\t`import * as __m from '${src}';\\n` +\n\t\t\t`const __C = __m.default || __m;\\n` +\n\t\t\t`(globalThis.__REROUTE_MODULES__ ||= {});\\n` +\n\t\t\t`globalThis.__REROUTE_MODULES__['${key}'] = __C;\\n` +\n\t\t\t`export {};`;\n\t\treturn new Response(code, {\n\t\t\theaders: {\n\t\t\t\t'content-type': 'application/javascript; charset=utf-8',\n\t\t\t\t'cache-control': isWatchMode\n\t\t\t\t\t? 'no-cache'\n\t\t\t\t\t: 'public, max-age=31536000, immutable',\n\t\t\t},\n\t\t});\n\t});\n\n\t// Lightweight data endpoint used by Link prefetch and client navigations\n\tapp.get('/__reroute_data', async ({ query, headers }) => {\n\t\tconst p = String(query.path || query.p || '/');\n\t\tlet pathname = '/';\n\t\ttry {\n\t\t\tconst u = new URL(p, 'http://localhost');\n\t\t\tpathname = u.pathname + u.search;\n\t\t} catch {\n\t\t\tpathname = String(p);\n\t\t}\n\t\ttry {\n\t\t\tconst data = await computeSSRDataForPath({\n\t\t\t\tpathname,\n\t\t\t\tclientDir: opts?.clientDir || '',\n\t\t\t\tcwd: opts?.cwd || '',\n\t\t\t\tisWatchMode,\n\t\t\t});\n\t\t\treturn jsonWithCache(\n\t\t\t\t{ data },\n\t\t\t\topts?.dataCacheControl || 'no-cache',\n\t\t\t\theaders as Record<string, string>,\n\t\t\t);\n\t\t} catch (_e) {\n\t\t\treturn jsonError('failed', 500);\n\t\t}\n\t});\n\n\tif (!isWatchMode) return app;\n\n\t// SSE endpoint for live reload\n\tconsole.log('[reroute] Registering SSE endpoint at /__reroute_watch');\n\tapp.get('/__reroute_watch', () => {\n\t\tconst encoder = new TextEncoder();\n\t\tlet interval: NodeJS.Timeout;\n\t\tconst stream = new ReadableStream({\n\t\t\tstart(controller) {\n\t\t\t\tliveReloadClients.add(controller);\n\t\t\t\tconsole.log('[reroute] Browser connected for live reload');\n\t\t\t\t// Send connect + retry hint\n\t\t\t\tcontroller.enqueue(encoder.encode('retry: 1000\\n'));\n\t\t\t\tcontroller.enqueue(encoder.encode('data: connected\\n\\n'));\n\t\t\t\t// Heartbeat every 25s to keep connections alive behind proxies\n\t\t\t\tinterval = setInterval(() => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tcontroller.enqueue(encoder.encode(': ping\\n\\n'));\n\t\t\t\t\t} catch {}\n\t\t\t\t}, 25000);\n\t\t\t},\n\t\t\tcancel() {\n\t\t\t\tif (interval) clearInterval(interval);\n\t\t\t\tconsole.log('[reroute] Browser disconnected from live reload');\n\t\t\t},\n\t\t});\n\n\t\treturn new Response(stream, {\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'text/event-stream',\n\t\t\t\t'Cache-Control': 'no-cache',\n\t\t\t\tConnection: 'keep-alive',\n\t\t\t},\n\t\t});\n\t});\n\n\t// External preload module: imports a content chunk and seeds client store\n\t// Dev live-reload client as a separate module\n\tapp.get('/__reroute_watch.js', () => {\n\t\tconst code =\n\t\t\t`// live-reload client\\n` +\n\t\t\t`const url='/__reroute_watch';\\n` +\n\t\t\t`let es; let reloading=false;\\n` +\n\t\t\t`function waitServerThenReload(){\\n` +\n\t\t\t` const ping = () => fetch(location.origin, { cache: 'no-store' })\\n` +\n\t\t\t` .then(()=>location.reload())\\n` +\n\t\t\t` .catch(()=>setTimeout(ping, 300));\\n` +\n\t\t\t` ping();\\n` +\n\t\t\t`}\\n` +\n\t\t\t`function connect(){\\n` +\n\t\t\t` es=new EventSource(url);\\n` +\n\t\t\t` es.onopen=()=>console.log('[reroute] watching changes');\\n` +\n\t\t\t` es.onmessage=(e)=>{ if(e.data==='reload'){ reloading=true; try{ es.close(); }catch{} waitServerThenReload(); } };\\n` +\n\t\t\t` es.onerror=()=>{ if(!reloading){ reloading=true; try{ es.close(); }catch{} waitServerThenReload(); } };\\n` +\n\t\t\t`}\\n` +\n\t\t\t`connect();\\nexport {};`;\n\t\treturn new Response(code, {\n\t\t\theaders: {\n\t\t\t\t'content-type': 'application/javascript; charset=utf-8',\n\t\t\t\t'cache-control': 'no-cache',\n\t\t\t},\n\t\t});\n\t});\n\n\treturn app;\n}\n",
24
24
  "// Small helpers for JSON responses with caching/ETag\n// Keep local to Elysia package to avoid core dependency surface changes\n\n// biome-ignore lint/suspicious/noExplicitAny: Bun env types vary\ntype Any = any;\n\nconst makeETag = (s: string) => {\n\ttry {\n\t\t// Prefer Bun.hash if available (fast)\n\t\tconst h = (globalThis as Any)?.Bun?.hash?.(s) ?? 0;\n\t\treturn `W/\"${s.length.toString(16)}-${Number(h).toString(36)}\"`;\n\t} catch {\n\t\t// Fallback: length-based weak tag\n\t\treturn `W/\"${s.length.toString(16)}-0\"`;\n\t}\n};\n\nconst getIfNoneMatch = (headers?: Headers | Record<string, string>) => {\n\ttry {\n\t\tif (!headers) return undefined;\n\t\t// Elysia provides Headers-like and plain-record in different hooks\n\t\t// Try .get first, then record access in lower/normal case\n\t\tconst h: Any = headers as Any;\n\t\tif (typeof h?.get === 'function')\n\t\t\treturn String(h.get('if-none-match') || '');\n\t\treturn String((h['if-none-match'] || h['If-None-Match'] || '') as string);\n\t} catch {\n\t\treturn undefined;\n\t}\n};\n\nexport function jsonWithCache(\n\tpayload: Any,\n\tcacheControl: string,\n\treqHeaders?: Headers | Record<string, string>,\n): Response {\n\tconst body = typeof payload === 'string' ? payload : JSON.stringify(payload);\n\tconst etag = makeETag(body);\n\tconst inm = getIfNoneMatch(reqHeaders) || '';\n\n\tif (etag && inm && inm === etag) {\n\t\treturn new Response(null, {\n\t\t\tstatus: 304,\n\t\t\theaders: {\n\t\t\t\tETag: etag,\n\t\t\t\t'Cache-Control': cacheControl,\n\t\t\t},\n\t\t});\n\t}\n\n\treturn new Response(body, {\n\t\theaders: {\n\t\t\t'Content-Type': 'application/json; charset=utf-8',\n\t\t\t'Cache-Control': cacheControl,\n\t\t\tETag: etag,\n\t\t},\n\t});\n}\n\nexport function jsonError(message: string, status = 500): Response {\n\treturn new Response(JSON.stringify({ error: message }), {\n\t\tstatus,\n\t\theaders: { 'Content-Type': 'application/json; charset=utf-8' },\n\t});\n}\n",
25
- "import type { Elysia } from 'elysia';\nimport { NotFoundError } from 'elysia';\nimport type { ReactElement } from 'react';\nimport {\n\tcomputeSSRDataForPath,\n\tgenerateContentRegistry,\n\trenderSSRDocument,\n} from 'reroute-js/core';\nimport { jsonError, jsonWithCache } from '../utils/http';\n\ntype SSRRouteOptions = {\n\trootComponent: ReactElement;\n\tclientDir: string;\n\tcwd: string;\n\tisWatchMode: boolean;\n\tgetBundleUrl: () => Promise<string>;\n\thead?: string;\n\tlang?: string;\n\tappId?: string;\n\tcollections: string[];\n\tminify?: boolean;\n\t// Cache-Control header value for data responses\n\tdataCacheControl?: string;\n\t// Optional predicate to decide if a pathname should be excluded from SSR fallback\n\tshouldIgnorePathname?: (pathname: string) => boolean;\n};\n\nfunction registerSSRRoutes(app: Elysia, options: SSRRouteOptions): Elysia {\n\tconst {\n\t\trootComponent,\n\t\tclientDir,\n\t\tcwd,\n\t\tisWatchMode,\n\t\tgetBundleUrl,\n\t\thead = '',\n\t\tlang = 'en',\n\t\tappId = 'root',\n\t\tcollections,\n\t\tminify = false,\n\t\tdataCacheControl,\n\t\tshouldIgnorePathname,\n\t} = options;\n\n\t// Register SSR routes for each collection\n\tfor (const collection of collections) {\n\t\tapp.get(`/${collection}/*`, async ({ request }) => {\n\t\t\tconst method = request.method || 'GET';\n\t\t\tif (method !== 'GET') throw new NotFoundError();\n\t\t\tconst accept = request.headers.get?.('accept') || '';\n\t\t\tif (!/text\\/html/i.test(String(accept))) throw new NotFoundError();\n\t\t\ttry {\n\t\t\t\t// Use the full request pathname to avoid losing the collection prefix\n\t\t\t\tconst pathname = new URL(request.url).pathname;\n\t\t\t\tconst bundleUrl = await getBundleUrl();\n\t\t\t\tconst result = await renderSSRDocument({\n\t\t\t\t\tpathname,\n\t\t\t\t\trootComponent,\n\t\t\t\t\tclientDir,\n\t\t\t\t\tcwd,\n\t\t\t\t\tisWatchMode,\n\t\t\t\t\tbundleUrl,\n\t\t\t\t\thead,\n\t\t\t\t\tlang,\n\t\t\t\t\tappId,\n\t\t\t\t\tminify,\n\t\t\t\t});\n\t\t\t\treturn new Response(result.html, {\n\t\t\t\t\tstatus: result.status,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'content-type': 'text/html; charset=utf-8',\n\t\t\t\t\t\tVary: 'Accept',\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(`[reroute] SSR ${collection} render error:`, e);\n\t\t\t\tthrow new NotFoundError();\n\t\t\t}\n\t\t});\n\t}\n\n\t// Global error handler for SSR fallback\n\tapp.onError(async ({ code, request, set }) => {\n\t\tif (code === 'NOT_FOUND') {\n\t\t\tconst url = new URL(request.url);\n\t\t\tconst pathname = url.pathname;\n\t\t\tconst method = request.method || 'GET';\n\t\t\tconst isInternal =\n\t\t\t\tpathname.startsWith('/__reroute_watch') ||\n\t\t\t\tpathname.startsWith('/__content/') ||\n\t\t\t\tpathname.startsWith('/__reroute_preload') ||\n\t\t\t\tpathname.startsWith('/__reroute_data') ||\n\t\t\t\tpathname.startsWith('/__reroute_watch.js');\n\n\t\t\t// If this pathname should be ignored for SSR, keep it 404.\n\t\t\tif (!isInternal && typeof shouldIgnorePathname === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\tif (shouldIgnorePathname(pathname)) {\n\t\t\t\t\t\treturn new Response('Not Found', { status: 404 });\n\t\t\t\t\t}\n\t\t\t\t} catch {}\n\t\t\t}\n\n\t\t\t// Serve data prefetch endpoint here if not explicitly matched\n\t\t\tif (pathname === '/__reroute_data' && method === 'GET') {\n\t\t\t\ttry {\n\t\t\t\t\tconst p = url.searchParams.get('path') || '/';\n\t\t\t\t\tconst data = await computeSSRDataForPath({\n\t\t\t\t\t\tpathname: p,\n\t\t\t\t\t\tclientDir,\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\tisWatchMode,\n\t\t\t\t\t});\n\t\t\t\t\treturn jsonWithCache(\n\t\t\t\t\t\t{ data },\n\t\t\t\t\t\tdataCacheControl || 'no-cache',\n\t\t\t\t\t\trequest.headers,\n\t\t\t\t\t);\n\t\t\t\t} catch (_e) {\n\t\t\t\t\treturn jsonError('failed', 500);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (method === 'GET' && !isInternal) {\n\t\t\t\ttry {\n\t\t\t\t\t// In watch mode, regenerate content registry to pick up new files\n\t\t\t\t\tif (isWatchMode) {\n\t\t\t\t\t\tawait generateContentRegistry(cwd);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Unified SSR rendering path (handles content and static routes with meta/ssr)\n\t\t\t\t\tconst bundleUrl = await getBundleUrl();\n\t\t\t\t\tconst result = await renderSSRDocument({\n\t\t\t\t\t\tpathname,\n\t\t\t\t\t\trootComponent,\n\t\t\t\t\t\tclientDir,\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\tisWatchMode,\n\t\t\t\t\t\tbundleUrl,\n\t\t\t\t\t\thead,\n\t\t\t\t\t\tlang,\n\t\t\t\t\t\tappId,\n\t\t\t\t\t\tminify,\n\t\t\t\t\t});\n\t\t\t\t\tset.status = result.status;\n\t\t\t\t\tset.headers['content-type'] = 'text/html; charset=utf-8';\n\t\t\t\t\treturn new Response(result.html);\n\t\t\t\t} catch {\n\t\t\t\t\t// fallthrough to default 404 if template fails\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn app;\n}\n\nexport { registerSSRRoutes };\n",
26
- "import type { Elysia } from 'elysia';\nimport { NotFoundError } from 'elysia';\nimport {\n\ttype BundleInfo,\n\tgetMimeType,\n\tgzipIfAccepted,\n\tjoin,\n\ttype LRUCache,\n\ttranspileFile,\n} from 'reroute-js/core';\n\ntype StaticRouteOptions = {\n\tclientDir: string;\n\tprefix: string;\n\tmaxAge: number;\n\tdirective: string;\n\tindexHTML: boolean;\n\tstaticHeaders?: Record<string, string>;\n\tminify: boolean;\n\tsourcemap: boolean;\n\tshouldIgnore: (file: string) => boolean;\n\tbundleCache: Map<string, BundleInfo>;\n\tfileCache: LRUCache<string, Response>;\n\tisWatchMode?: boolean;\n};\n\nfunction registerStaticRoutes(\n\tapp: Elysia,\n\toptions: StaticRouteOptions,\n): Elysia {\n\tconst {\n\t\tclientDir,\n\t\tprefix,\n\t\tmaxAge,\n\t\tdirective,\n\t\tindexHTML,\n\t\tstaticHeaders,\n\t\tminify,\n\t\tsourcemap,\n\t\tshouldIgnore,\n\t\tbundleCache,\n\t\tfileCache,\n\t\tisWatchMode,\n\t} = options;\n\n\t// Static files route (scoped under prefix, e.g. '/assets/*')\n\tapp.get(`${prefix}/*`, async ({ params, headers }) => {\n\t\tconst requestPath = params['*'];\n\n\t\t// Handle hashed JS bundles (e.g., index.abc123.js)\n\t\tconst hashedJsMatch = requestPath.match(/^(.+)\\.([a-f0-9]{8})\\.js$/);\n\t\tif (hashedJsMatch) {\n\t\t\tconst [, filename, hash] = hashedJsMatch;\n\n\t\t\tconst tsxPath = join(clientDir, `${filename}.tsx`);\n\t\t\tconst tsPath = join(clientDir, `${filename}.ts`);\n\n\t\t\tlet filePath: string | null = null;\n\t\t\tif (await Bun.file(tsxPath).exists()) {\n\t\t\t\tfilePath = tsxPath;\n\t\t\t} else if (await Bun.file(tsPath).exists()) {\n\t\t\t\tfilePath = tsPath;\n\t\t\t}\n\n\t\t\tif (filePath) {\n\t\t\t\ttry {\n\t\t\t\t\tconst bundleInfo = await transpileFile(\n\t\t\t\t\t\tfilePath,\n\t\t\t\t\t\t`${filename}.tsx`,\n\t\t\t\t\t\t{ minify, sourcemap },\n\t\t\t\t\t\tbundleCache,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (bundleInfo.hash === hash) {\n\t\t\t\t\t\tconst contentType = 'application/javascript; charset=utf-8';\n\t\t\t\t\t\tconst { body, extraHeaders } = gzipIfAccepted(\n\t\t\t\t\t\t\tbundleInfo.code,\n\t\t\t\t\t\t\tcontentType,\n\t\t\t\t\t\t\theaders['accept-encoding'],\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn new Response(body as string, {\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t'Content-Type': contentType,\n\t\t\t\t\t\t\t\t'Cache-Control': `${directive}, max-age=${365 * 24 * 60 * 60}, immutable`,\n\t\t\t\t\t\t\t\t...extraHeaders,\n\t\t\t\t\t\t\t\t...staticHeaders,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error(`[reroute] Error serving bundle:`, error);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Handle sourcemaps (e.g., index.abc123.js.map)\n\t\tconst sourceMapMatch = requestPath.match(/^(.+)\\.([a-f0-9]{8})\\.js\\.map$/);\n\t\tif (sourceMapMatch) {\n\t\t\tconst [, filename, hash] = sourceMapMatch;\n\n\t\t\tconst tsxPath = join(clientDir, `${filename}.tsx`);\n\t\t\tconst tsPath = join(clientDir, `${filename}.ts`);\n\n\t\t\tlet filePath: string | null = null;\n\t\t\tif (await Bun.file(tsxPath).exists()) {\n\t\t\t\tfilePath = tsxPath;\n\t\t\t} else if (await Bun.file(tsPath).exists()) {\n\t\t\t\tfilePath = tsPath;\n\t\t\t}\n\n\t\t\tif (filePath) {\n\t\t\t\ttry {\n\t\t\t\t\tconst bundleInfo = await transpileFile(\n\t\t\t\t\t\tfilePath,\n\t\t\t\t\t\t`${filename}.tsx`,\n\t\t\t\t\t\t{ minify, sourcemap },\n\t\t\t\t\t\tbundleCache,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (bundleInfo.hash === hash && bundleInfo.sourceMap) {\n\t\t\t\t\t\tconst contentType = 'application/json; charset=utf-8';\n\t\t\t\t\t\tconst { body, extraHeaders } = gzipIfAccepted(\n\t\t\t\t\t\t\tbundleInfo.sourceMap,\n\t\t\t\t\t\t\tcontentType,\n\t\t\t\t\t\t\theaders['accept-encoding'],\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn new Response(body as string, {\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t'Content-Type': contentType,\n\t\t\t\t\t\t\t\t'Cache-Control': `${directive}, max-age=${365 * 24 * 60 * 60}, immutable`,\n\t\t\t\t\t\t\t\t...extraHeaders,\n\t\t\t\t\t\t\t\t...staticHeaders,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error(`[reroute] Error serving sourcemap:`, error);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Handle .tsx/.ts files\n\t\tif (requestPath.endsWith('.tsx') || requestPath.endsWith('.ts')) {\n\t\t\t// Special-case content modules: redirect to prebuilt chunk to avoid on-the-fly bundling in dev\n\t\t\ttry {\n\t\t\t\tconst m = requestPath.match(\n\t\t\t\t\t/^routes\\/([^/]+)\\/content\\/([^/]+)\\.(tsx|ts)$/,\n\t\t\t\t);\n\t\t\t\tif (m) {\n\t\t\t\t\tconst collection = m[1];\n\t\t\t\t\tconst name = m[2];\n\t\t\t\t\t// Use registry mapping if available for exact chunk selection\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst cwd = process.cwd();\n\t\t\t\t\t\tconst regPath = join(cwd, '.reroute', 'content.ts');\n\t\t\t\t\t\tconst reg = await import(\n\t\t\t\t\t\t\t(await import('node:url')).pathToFileURL(regPath).href +\n\t\t\t\t\t\t\t\t`?t=${Date.now()}`\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst get = reg?.getContentEntry as (\n\t\t\t\t\t\t\tc: string,\n\t\t\t\t\t\t\tn: string,\n\t\t\t\t\t\t) => { module?: string } | undefined;\n\t\t\t\t\t\tconst entry =\n\t\t\t\t\t\t\ttypeof get === 'function' ? get(collection, name) : undefined;\n\t\t\t\t\t\tconst mod = entry?.module as string | undefined;\n\t\t\t\t\t\tif (mod?.endsWith('.js')) {\n\t\t\t\t\t\t\treturn new Response(null, {\n\t\t\t\t\t\t\t\tstatus: 302,\n\t\t\t\t\t\t\t\theaders: { Location: mod },\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch {}\n\n\t\t\t\t\t// Fallback: choose newest by mtime\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst chunkDir = join(\n\t\t\t\t\t\t\tprocess.cwd(),\n\t\t\t\t\t\t\t'.reroute',\n\t\t\t\t\t\t\t'chunks',\n\t\t\t\t\t\t\tcollection,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst files = await (await import('node:fs/promises')).readdir(\n\t\t\t\t\t\t\tchunkDir,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst candidates = files.filter(\n\t\t\t\t\t\t\t(n) => n.startsWith(`${name}.`) && n.endsWith('.js'),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (candidates.length) {\n\t\t\t\t\t\t\tlet latest = candidates[0];\n\t\t\t\t\t\t\tlet latestM = 0;\n\t\t\t\t\t\t\tconst { stat } = await import('node:fs/promises');\n\t\t\t\t\t\t\tfor (const f of candidates) {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst s = await stat(join(chunkDir, f));\n\t\t\t\t\t\t\t\t\tif (s.mtimeMs >= latestM) {\n\t\t\t\t\t\t\t\t\t\tlatestM = s.mtimeMs;\n\t\t\t\t\t\t\t\t\t\tlatest = f;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} catch {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst loc = `/${join('.reroute', 'chunks', collection, latest).replace(/\\\\+/g, '/')}`;\n\t\t\t\t\t\t\treturn new Response(null, {\n\t\t\t\t\t\t\t\tstatus: 302,\n\t\t\t\t\t\t\t\theaders: { Location: loc },\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch {}\n\t\t\t\t}\n\t\t\t} catch {}\n\n\t\t\tconst filePath = join(clientDir, requestPath);\n\n\t\t\tif (shouldIgnore(filePath)) throw new NotFoundError();\n\n\t\t\ttry {\n\t\t\t\tconst exists = await Bun.file(filePath).exists();\n\t\t\t\tif (!exists) throw new NotFoundError();\n\n\t\t\t\tconst bundleInfo = await transpileFile(\n\t\t\t\t\tfilePath,\n\t\t\t\t\trequestPath,\n\t\t\t\t\t{ minify, sourcemap },\n\t\t\t\t\tbundleCache,\n\t\t\t\t);\n\n\t\t\t\tconst contentType = 'application/javascript; charset=utf-8';\n\t\t\t\tconst { body, extraHeaders } = gzipIfAccepted(\n\t\t\t\t\tbundleInfo.code,\n\t\t\t\t\tcontentType,\n\t\t\t\t\theaders['accept-encoding'],\n\t\t\t\t);\n\t\t\t\treturn new Response(body as string, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Content-Type': contentType,\n\t\t\t\t\t\t'Cache-Control': isWatchMode\n\t\t\t\t\t\t\t? 'no-cache'\n\t\t\t\t\t\t\t: `${directive}, max-age=${maxAge}`,\n\t\t\t\t\t\t...extraHeaders,\n\t\t\t\t\t\t...staticHeaders,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof NotFoundError) throw error;\n\t\t\t\tconsole.error(`[reroute] Error:`, error);\n\t\t\t\tthrow new NotFoundError();\n\t\t\t}\n\t\t}\n\n\t\tconst filePath = join(clientDir, requestPath);\n\n\t\ttry {\n\t\t\tlet actualFilePath = filePath;\n\t\t\tlet exists = await Bun.file(actualFilePath).exists();\n\t\t\tif (!exists && indexHTML) {\n\t\t\t\tactualFilePath = join(filePath, 'index.html');\n\t\t\t\texists = await Bun.file(actualFilePath).exists();\n\t\t\t}\n\t\t\tif (!exists) throw new NotFoundError();\n\n\t\t\t// Check if the resolved file should be ignored (e.g., index.html)\n\t\t\tif (shouldIgnore(actualFilePath)) throw new NotFoundError();\n\n\t\t\t// Check cache after resolving and validating the file\n\t\t\tconst cached = fileCache.get(filePath);\n\t\t\tif (cached) return cached.clone();\n\n\t\t\tconst contentBuf = await Bun.file(actualFilePath).arrayBuffer();\n\t\t\tconst content = new Uint8Array(contentBuf);\n\t\t\tconst contentType = getMimeType(actualFilePath);\n\n\t\t\tconst { body, extraHeaders } = gzipIfAccepted(\n\t\t\t\tcontent,\n\t\t\t\tcontentType,\n\t\t\t\theaders['accept-encoding'],\n\t\t\t);\n\n\t\t\tconst response = new Response(body as string, {\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': contentType,\n\t\t\t\t\t'Cache-Control': maxAge\n\t\t\t\t\t\t? `${directive}, max-age=${maxAge}`\n\t\t\t\t\t\t: directive,\n\t\t\t\t\t...extraHeaders,\n\t\t\t\t\t...staticHeaders,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tfileCache.set(filePath, response);\n\n\t\t\treturn response.clone();\n\t\t} catch (error) {\n\t\t\tif (error instanceof NotFoundError) throw error;\n\t\t\tconsole.error(`[reroute] Error serving ${filePath}:`, error);\n\t\t\tthrow new NotFoundError();\n\t\t}\n\t});\n\n\treturn app;\n}\n\nexport { registerStaticRoutes };\n",
27
- "// All file watching happens in the CLI (reroute gen --watch)\n\nimport type { Elysia } from 'elysia';\nimport type { ReactElement } from 'react';\nimport {\n\ttype BundleInfo,\n\tcomputeSSRDataForPath,\n\tdiscoverCollections,\n\tgenerateContentRegistry,\n\tgetBundleUrlsFor,\n\tLRUCache,\n} from 'reroute-js/core';\nimport { registerArtifactsRoutes } from './routes/artifacts';\nimport { registerContentRoutes } from './routes/content';\nimport { registerDevRoutes } from './routes/dev';\nimport { registerSSRRoutes } from './routes/ssr';\nimport { registerStaticRoutes } from './routes/static';\nimport type { RerouteOptions } from './types';\nimport { jsonError, jsonWithCache } from './utils/http';\n\nconst reroute =\n\t(options: RerouteOptions = {}) =>\n\tasync (app: Elysia) => {\n\t\t// SSR configuration\n\t\tconst ssrHead = options.head || '';\n\t\tconst ssrLang = options.lang || 'en';\n\t\tconst ssrAppId = options.appId || 'root';\n\t\tconst entrypoint = options.entrypoint || 'index.tsx';\n\t\tconst rootComponent = options.app;\n\n\t\t// Static serving configuration\n\t\tconst assets = options.assets || 'src/client';\n\t\tlet prefix = options.prefix || '/';\n\t\tconst ignorePatterns = options.ignorePatterns || [\n\t\t\t'.DS_Store',\n\t\t\t'.git',\n\t\t\t'.env',\n\t\t\t'index.html', // Template file, not a static asset\n\t\t\t/favicon\\.ico/,\n\t\t\t/\\.well-known/,\n\t\t];\n\t\tconst staticHeaders = options.staticHeaders;\n\t\tconst maxAge = options.maxAge ?? 3600;\n\t\tconst directive = options.directive || 'public';\n\t\tconst indexHTML = options.indexHTML ?? true;\n\n\t\t// Build configuration\n\t\tconst minify = options.minify ?? process.env.NODE_ENV === 'production';\n\t\tconst sourcemap = options.sourcemap ?? true;\n\n\t\t// Normalize prefix\n\t\tif (prefix === '/') prefix = '';\n\n\t\tconst fileCache = new LRUCache<string, Response>(100);\n\t\tconst bundleCache = new Map<string, BundleInfo>();\n\t\tconst cwd =\n\t\t\ttypeof process !== 'undefined' && typeof process.cwd === 'function'\n\t\t\t\t? process.cwd()\n\t\t\t\t: '/';\n\n\t\t// Live reload SSE clients\n\t\tconst liveReloadClients = new Set<ReadableStreamDefaultController>();\n\t\tconst notifyReload = () => {\n\t\t\tconst encoder = new TextEncoder();\n\t\t\tconst message = encoder.encode('data: reload\\n\\n');\n\t\t\tfor (const controller of liveReloadClients) {\n\t\t\t\ttry {\n\t\t\t\t\tcontroller.enqueue(message);\n\t\t\t\t} catch {\n\t\t\t\t\tliveReloadClients.delete(controller);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst clientDir: string = assets.startsWith('/')\n\t\t\t? assets\n\t\t\t: `${cwd.replace(/\\/$/, '')}/${assets.replace(/^\\.\\//, '')}`;\n\n\t\tconst shouldIgnore = !ignorePatterns.length\n\t\t\t? () => false\n\t\t\t: (file: string) =>\n\t\t\t\t\tignorePatterns.find((pattern) =>\n\t\t\t\t\t\ttypeof pattern === 'string'\n\t\t\t\t\t\t\t? file.includes(pattern)\n\t\t\t\t\t\t\t: pattern.test(file),\n\t\t\t\t\t);\n\n\t\tconst isWatchMode =\n\t\t\t(Array.isArray(process.execArgv) &&\n\t\t\t\tprocess.execArgv.includes('--watch')) ||\n\t\t\t(Array.isArray(process.argv) && process.argv.includes('--watch'));\n\n\t\t// Shared cache-control for data responses (prefetch + client navigations)\n\t\t// Align with static caching to reduce repeated XHRs even in dev.\n\t\tconst dataCacheControl = `${directive}, max-age=${maxAge}`;\n\n\t\tif (isWatchMode) console.log(`[reroute] Live reload enabled`);\n\n\t\t// Generate content registry at startup (write-only-if-changed)\n\t\tawait generateContentRegistry(cwd);\n\n\t\t// Lazy compute default bundle URL on first usage\n\t\tlet cachedBundleUrlPromise: Promise<string> | null = null;\n\t\tconst ensureBundleUrl = () => {\n\t\t\tif (!cachedBundleUrlPromise) {\n\t\t\t\tcachedBundleUrlPromise = getBundleUrlsFor(\n\t\t\t\t\tentrypoint,\n\t\t\t\t\tclientDir,\n\t\t\t\t\tprefix,\n\t\t\t\t\t{ minify, sourcemap },\n\t\t\t\t\tbundleCache,\n\t\t\t\t).then((u) => u[0]);\n\t\t\t}\n\t\t\treturn cachedBundleUrlPromise;\n\t\t};\n\n\t\t// Register content routes\n\t\tregisterContentRoutes(app, clientDir, prefix, isWatchMode);\n\n\t\t// Register dev mode routes (SSE, live reload, preload)\n\t\tregisterDevRoutes(app, liveReloadClients, isWatchMode, {\n\t\t\tclientDir,\n\t\t\tcwd,\n\t\t\tdataCacheControl,\n\t\t});\n\n\t\t// Data prefetch endpoint for client Link prefetch (all modes)\n\t\tapp.get('/__reroute_data', async ({ query, headers }) => {\n\t\t\tconst p = String(query.path || query.p || '/');\n\t\t\tlet pathname = '/';\n\t\t\ttry {\n\t\t\t\tconst u = new URL(p, 'http://localhost');\n\t\t\t\tpathname = u.pathname + u.search;\n\t\t\t} catch {\n\t\t\t\tpathname = String(p);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst data = await computeSSRDataForPath({\n\t\t\t\t\tpathname,\n\t\t\t\t\tclientDir,\n\t\t\t\t\tcwd,\n\t\t\t\t\tisWatchMode,\n\t\t\t\t});\n\t\t\t\treturn jsonWithCache(\n\t\t\t\t\t{ data },\n\t\t\t\t\tdataCacheControl,\n\t\t\t\t\theaders as Record<string, string>,\n\t\t\t\t);\n\t\t\t} catch (_e) {\n\t\t\t\treturn jsonError('failed', 500);\n\t\t\t}\n\t\t});\n\n\t\t// File system watcher (dev): trigger build + client reload on changes under assets\n\t\t// No internal fs watcher here. The CLI rebuilds artifacts and can hit\n\t\t// /__reroute_reload to trigger client reloads.\n\t\tif (isWatchMode) {\n\t\t\tapp.post('/__reroute_reload', () => {\n\t\t\t\ttry {\n\t\t\t\t\tnotifyReload();\n\t\t\t\t\treturn new Response(JSON.stringify({ ok: true }), {\n\t\t\t\t\t\theaders: { 'content-type': 'application/json' },\n\t\t\t\t\t});\n\t\t\t\t} catch {\n\t\t\t\t\treturn new Response(JSON.stringify({ ok: false }), {\n\t\t\t\t\t\tstatus: 500,\n\t\t\t\t\t\theaders: { 'content-type': 'application/json' },\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Register artifacts routes (.reroute directory)\n\t\tregisterArtifactsRoutes(app, cwd);\n\n\t\t// Register SSR routes if root component is provided\n\t\tif (rootComponent) {\n\t\t\tconst collections = await discoverCollections(clientDir);\n\t\t\tif (collections.length > 0) {\n\t\t\t\tconsole.log(\n\t\t\t\t\t`[reroute] Discovered collections: ${collections.join(', ')}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tregisterSSRRoutes(app, {\n\t\t\t\trootComponent: rootComponent as ReactElement,\n\t\t\t\tclientDir,\n\t\t\t\tcwd,\n\t\t\t\tisWatchMode,\n\t\t\t\tgetBundleUrl: ensureBundleUrl,\n\t\t\t\thead: ssrHead,\n\t\t\t\tlang: ssrLang,\n\t\t\t\tappId: ssrAppId,\n\t\t\t\tcollections,\n\t\t\t\tminify,\n\t\t\t\tdataCacheControl,\n\t\t\t\tshouldIgnorePathname: (pathname: string) => {\n\t\t\t\t\t// Honor ignorePatterns for SSR fallback as well\n\t\t\t\t\tif (!ignorePatterns.length) return false;\n\t\t\t\t\treturn Boolean(\n\t\t\t\t\t\tignorePatterns.find((pattern) =>\n\t\t\t\t\t\t\ttypeof pattern === 'string'\n\t\t\t\t\t\t\t\t? pathname.includes(pattern)\n\t\t\t\t\t\t\t\t: pattern.test(pathname),\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\t// Register static file serving (must be last as it's a catch-all)\n\t\tregisterStaticRoutes(app, {\n\t\t\tclientDir,\n\t\t\tprefix,\n\t\t\tmaxAge,\n\t\t\tdirective,\n\t\t\tindexHTML,\n\t\t\tstaticHeaders,\n\t\t\tminify,\n\t\t\tsourcemap,\n\t\t\tshouldIgnore: shouldIgnore as () => boolean,\n\t\t\tbundleCache,\n\t\t\tfileCache,\n\t\t\tisWatchMode,\n\t\t});\n\n\t\treturn app;\n\t};\n\nexport { reroute };\n"
25
+ "import type { Elysia } from 'elysia';\nimport { NotFoundError } from 'elysia';\nimport type { ReactElement } from 'react';\nimport {\n\tcomputeSSRDataForPath,\n\tgenerateContentRegistry,\n\tgzipIfAccepted,\n\trenderSSRDocument,\n} from 'reroute-js/core';\nimport { jsonError, jsonWithCache } from '../utils/http';\n\ntype SSRRouteOptions = {\n\trootComponent: ReactElement;\n\tclientDir: string;\n\tcwd: string;\n\tisWatchMode: boolean;\n\tgetBundleUrl: () => Promise<string>;\n\thead?: string;\n\tlang?: string;\n\tappId?: string;\n\tcollections: string[];\n\tminify?: boolean;\n\tmaxAge?: number;\n\tdirective?: string;\n\tdataCacheControl?: string;\n\tshouldIgnorePathname?: (pathname: string) => boolean;\n};\n\nfunction registerSSRRoutes(app: Elysia, options: SSRRouteOptions): Elysia {\n\tconst {\n\t\trootComponent,\n\t\tclientDir,\n\t\tcwd,\n\t\tisWatchMode,\n\t\tgetBundleUrl,\n\t\thead = '',\n\t\tlang = 'en',\n\t\tappId = 'root',\n\t\tcollections,\n\t\tminify = false,\n\t\tmaxAge = 3600,\n\t\tdirective = 'public',\n\t\tdataCacheControl,\n\t\tshouldIgnorePathname,\n\t} = options;\n\n\t// Register SSR routes for each collection\n\tfor (const collection of collections) {\n\t\tapp.get(`/${collection}/*`, async ({ request, headers }) => {\n\t\t\tconst method = request.method || 'GET';\n\t\t\tif (method !== 'GET') throw new NotFoundError();\n\t\t\tconst accept = request.headers.get?.('accept') || '';\n\t\t\tif (!/text\\/html/i.test(String(accept))) throw new NotFoundError();\n\t\t\ttry {\n\t\t\t\tconst pathname = new URL(request.url).pathname;\n\t\t\t\tconst bundleUrl = await getBundleUrl();\n\t\t\t\tconst result = await renderSSRDocument({\n\t\t\t\t\tpathname,\n\t\t\t\t\trootComponent,\n\t\t\t\t\tclientDir,\n\t\t\t\t\tcwd,\n\t\t\t\t\tisWatchMode,\n\t\t\t\t\tbundleUrl,\n\t\t\t\t\thead,\n\t\t\t\t\tlang,\n\t\t\t\t\tappId,\n\t\t\t\t\tminify,\n\t\t\t\t});\n\n\t\t\t\tconst acceptEncoding = headers['accept-encoding'] || '';\n\t\t\t\tconst { body, extraHeaders } = gzipIfAccepted(\n\t\t\t\t\tresult.html,\n\t\t\t\t\t'text/html; charset=utf-8',\n\t\t\t\t\tacceptEncoding,\n\t\t\t\t);\n\n\t\t\t\treturn new Response(body as BodyInit, {\n\t\t\t\t\tstatus: result.status,\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'content-type': 'text/html; charset=utf-8',\n\t\t\t\t\t\t'cache-control': isWatchMode\n\t\t\t\t\t\t\t? 'no-cache'\n\t\t\t\t\t\t\t: `${directive}, max-age=${maxAge}`,\n\t\t\t\t\t\t...extraHeaders,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(`[reroute] SSR ${collection} render error:`, e);\n\t\t\t\tthrow new NotFoundError();\n\t\t\t}\n\t\t});\n\t}\n\n\t// Global error handler for SSR fallback\n\tapp.onError(async ({ code, request, set }) => {\n\t\tif (code === 'NOT_FOUND') {\n\t\t\tconst url = new URL(request.url);\n\t\t\tconst pathname = url.pathname;\n\t\t\tconst method = request.method || 'GET';\n\t\t\tconst isInternal =\n\t\t\t\tpathname.startsWith('/__reroute_watch') ||\n\t\t\t\tpathname.startsWith('/__content/') ||\n\t\t\t\tpathname.startsWith('/__reroute_preload') ||\n\t\t\t\tpathname.startsWith('/__reroute_data') ||\n\t\t\t\tpathname.startsWith('/__reroute_watch.js');\n\n\t\t\tif (!isInternal && typeof shouldIgnorePathname === 'function') {\n\t\t\t\ttry {\n\t\t\t\t\tif (shouldIgnorePathname(pathname)) {\n\t\t\t\t\t\treturn new Response('Not Found', { status: 404 });\n\t\t\t\t\t}\n\t\t\t\t} catch {}\n\t\t\t}\n\n\t\t\tif (pathname === '/__reroute_data' && method === 'GET') {\n\t\t\t\ttry {\n\t\t\t\t\tconst p = url.searchParams.get('path') || '/';\n\t\t\t\t\tconst data = await computeSSRDataForPath({\n\t\t\t\t\t\tpathname: p,\n\t\t\t\t\t\tclientDir,\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\tisWatchMode,\n\t\t\t\t\t});\n\t\t\t\t\treturn jsonWithCache(\n\t\t\t\t\t\t{ data },\n\t\t\t\t\t\tdataCacheControl || 'no-cache',\n\t\t\t\t\t\trequest.headers,\n\t\t\t\t\t);\n\t\t\t\t} catch (_e) {\n\t\t\t\t\treturn jsonError('failed', 500);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (method === 'GET' && !isInternal) {\n\t\t\t\ttry {\n\t\t\t\t\tif (isWatchMode) {\n\t\t\t\t\t\tawait generateContentRegistry(cwd);\n\t\t\t\t\t}\n\n\t\t\t\t\tconst bundleUrl = await getBundleUrl();\n\t\t\t\t\tconst result = await renderSSRDocument({\n\t\t\t\t\t\tpathname,\n\t\t\t\t\t\trootComponent,\n\t\t\t\t\t\tclientDir,\n\t\t\t\t\t\tcwd,\n\t\t\t\t\t\tisWatchMode,\n\t\t\t\t\t\tbundleUrl,\n\t\t\t\t\t\thead,\n\t\t\t\t\t\tlang,\n\t\t\t\t\t\tappId,\n\t\t\t\t\t\tminify,\n\t\t\t\t\t});\n\n\t\t\t\t\tconst acceptEncoding = request.headers.get('accept-encoding') || '';\n\t\t\t\t\tconst { body, extraHeaders } = gzipIfAccepted(\n\t\t\t\t\t\tresult.html,\n\t\t\t\t\t\t'text/html; charset=utf-8',\n\t\t\t\t\t\tacceptEncoding,\n\t\t\t\t\t);\n\n\t\t\t\t\tset.status = result.status;\n\t\t\t\t\tset.headers['content-type'] = 'text/html; charset=utf-8';\n\t\t\t\t\tset.headers['cache-control'] = isWatchMode\n\t\t\t\t\t\t? 'no-cache'\n\t\t\t\t\t\t: `${directive}, max-age=${maxAge}`;\n\n\t\t\t\t\tif (extraHeaders['Content-Encoding']) {\n\t\t\t\t\t\tset.headers['content-encoding'] = extraHeaders['Content-Encoding'];\n\t\t\t\t\t}\n\t\t\t\t\tif (extraHeaders.Vary) {\n\t\t\t\t\t\tset.headers.vary = extraHeaders.Vary;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn new Response(body as BodyInit);\n\t\t\t\t} catch {\n\t\t\t\t\t// fallthrough to default 404 if template fails\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn app;\n}\n\nexport { registerSSRRoutes };\n",
26
+ "import type { Elysia } from 'elysia';\nimport { NotFoundError } from 'elysia';\nimport {\n\ttype BundleInfo,\n\tgetMimeType,\n\tgzipIfAccepted,\n\tjoin,\n\ttype LRUCache,\n\ttranspileFile,\n} from 'reroute-js/core';\n\ntype StaticRouteOptions = {\n\tclientDir: string;\n\tprefix: string;\n\tmaxAge: number;\n\tdirective: string;\n\tindexHTML: boolean;\n\tstaticHeaders?: Record<string, string>;\n\tminify: boolean;\n\tsourcemap: boolean;\n\tshouldIgnore: (file: string) => boolean;\n\tbundleCache: Map<string, BundleInfo>;\n\tfileCache: LRUCache<string, Response>;\n\tisWatchMode?: boolean;\n};\n\nfunction registerStaticRoutes(\n\tapp: Elysia,\n\toptions: StaticRouteOptions,\n): Elysia {\n\tconst {\n\t\tclientDir,\n\t\tprefix,\n\t\tmaxAge,\n\t\tdirective,\n\t\tindexHTML,\n\t\tstaticHeaders,\n\t\tminify,\n\t\tsourcemap,\n\t\tshouldIgnore,\n\t\tbundleCache,\n\t\tfileCache,\n\t\tisWatchMode,\n\t} = options;\n\n\t// Static files route (scoped under prefix, e.g. '/assets/*')\n\tapp.get(`${prefix}/*`, async ({ params, headers }) => {\n\t\tconst requestPath = params['*'];\n\n\t\t// Handle hashed JS bundles (e.g., index.abc123.js)\n\t\tconst hashedJsMatch = requestPath.match(/^(.+)\\.([a-f0-9]{8})\\.js$/);\n\t\tif (hashedJsMatch) {\n\t\t\tconst [, filename, hash] = hashedJsMatch;\n\n\t\t\tconst tsxPath = join(clientDir, `${filename}.tsx`);\n\t\t\tconst tsPath = join(clientDir, `${filename}.ts`);\n\n\t\t\tlet filePath: string | null = null;\n\t\t\tif (await Bun.file(tsxPath).exists()) {\n\t\t\t\tfilePath = tsxPath;\n\t\t\t} else if (await Bun.file(tsPath).exists()) {\n\t\t\t\tfilePath = tsPath;\n\t\t\t}\n\n\t\t\tif (filePath) {\n\t\t\t\ttry {\n\t\t\t\t\tconst bundleInfo = await transpileFile(\n\t\t\t\t\t\tfilePath,\n\t\t\t\t\t\t`${filename}.tsx`,\n\t\t\t\t\t\t{ minify, sourcemap },\n\t\t\t\t\t\tbundleCache,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (bundleInfo.hash === hash) {\n\t\t\t\t\t\tconst contentType = 'application/javascript; charset=utf-8';\n\t\t\t\t\t\tconst { body, extraHeaders } = gzipIfAccepted(\n\t\t\t\t\t\t\tbundleInfo.code,\n\t\t\t\t\t\t\tcontentType,\n\t\t\t\t\t\t\theaders['accept-encoding'],\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn new Response(body as string, {\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t'Content-Type': contentType,\n\t\t\t\t\t\t\t\t'Cache-Control': `${directive}, max-age=${365 * 24 * 60 * 60}, immutable`,\n\t\t\t\t\t\t\t\t...extraHeaders,\n\t\t\t\t\t\t\t\t...staticHeaders,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error(`[reroute] Error serving bundle:`, error);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Handle sourcemaps (e.g., index.abc123.js.map)\n\t\tconst sourceMapMatch = requestPath.match(/^(.+)\\.([a-f0-9]{8})\\.js\\.map$/);\n\t\tif (sourceMapMatch) {\n\t\t\tconst [, filename, hash] = sourceMapMatch;\n\n\t\t\tconst tsxPath = join(clientDir, `${filename}.tsx`);\n\t\t\tconst tsPath = join(clientDir, `${filename}.ts`);\n\n\t\t\tlet filePath: string | null = null;\n\t\t\tif (await Bun.file(tsxPath).exists()) {\n\t\t\t\tfilePath = tsxPath;\n\t\t\t} else if (await Bun.file(tsPath).exists()) {\n\t\t\t\tfilePath = tsPath;\n\t\t\t}\n\n\t\t\tif (filePath) {\n\t\t\t\ttry {\n\t\t\t\t\tconst bundleInfo = await transpileFile(\n\t\t\t\t\t\tfilePath,\n\t\t\t\t\t\t`${filename}.tsx`,\n\t\t\t\t\t\t{ minify, sourcemap },\n\t\t\t\t\t\tbundleCache,\n\t\t\t\t\t);\n\n\t\t\t\t\tif (bundleInfo.hash === hash && bundleInfo.sourceMap) {\n\t\t\t\t\t\tconst contentType = 'application/json; charset=utf-8';\n\t\t\t\t\t\tconst { body, extraHeaders } = gzipIfAccepted(\n\t\t\t\t\t\t\tbundleInfo.sourceMap,\n\t\t\t\t\t\t\tcontentType,\n\t\t\t\t\t\t\theaders['accept-encoding'],\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn new Response(body as string, {\n\t\t\t\t\t\t\theaders: {\n\t\t\t\t\t\t\t\t'Content-Type': contentType,\n\t\t\t\t\t\t\t\t'Cache-Control': `${directive}, max-age=${365 * 24 * 60 * 60}, immutable`,\n\t\t\t\t\t\t\t\t...extraHeaders,\n\t\t\t\t\t\t\t\t...staticHeaders,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconsole.error(`[reroute] Error serving sourcemap:`, error);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Handle .tsx/.ts files\n\t\tif (requestPath.endsWith('.tsx') || requestPath.endsWith('.ts')) {\n\t\t\t// Special-case content modules: redirect to prebuilt chunk to avoid on-the-fly bundling in dev\n\t\t\ttry {\n\t\t\t\tconst m = requestPath.match(\n\t\t\t\t\t/^routes\\/([^/]+)\\/content\\/([^/]+)\\.(tsx|ts)$/,\n\t\t\t\t);\n\t\t\t\tif (m) {\n\t\t\t\t\tconst collection = m[1];\n\t\t\t\t\tconst name = m[2];\n\t\t\t\t\t// Use registry mapping if available for exact chunk selection\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst cwd = process.cwd();\n\t\t\t\t\t\tconst regPath = join(cwd, '.reroute', 'content.ts');\n\t\t\t\t\t\tconst reg = await import(\n\t\t\t\t\t\t\t(await import('node:url')).pathToFileURL(regPath).href +\n\t\t\t\t\t\t\t\t`?t=${Date.now()}`\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst get = reg?.getContentEntry as (\n\t\t\t\t\t\t\tc: string,\n\t\t\t\t\t\t\tn: string,\n\t\t\t\t\t\t) => { module?: string } | undefined;\n\t\t\t\t\t\tconst entry =\n\t\t\t\t\t\t\ttypeof get === 'function' ? get(collection, name) : undefined;\n\t\t\t\t\t\tconst mod = entry?.module as string | undefined;\n\t\t\t\t\t\tif (mod?.endsWith('.js')) {\n\t\t\t\t\t\t\treturn new Response(null, {\n\t\t\t\t\t\t\t\tstatus: 302,\n\t\t\t\t\t\t\t\theaders: { Location: mod },\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch {}\n\n\t\t\t\t\t// Fallback: choose newest by mtime\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst chunkDir = join(\n\t\t\t\t\t\t\tprocess.cwd(),\n\t\t\t\t\t\t\t'.reroute',\n\t\t\t\t\t\t\t'chunks',\n\t\t\t\t\t\t\tcollection,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst files = await (await import('node:fs/promises')).readdir(\n\t\t\t\t\t\t\tchunkDir,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tconst candidates = files.filter(\n\t\t\t\t\t\t\t(n) => n.startsWith(`${name}.`) && n.endsWith('.js'),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (candidates.length) {\n\t\t\t\t\t\t\tlet latest = candidates[0];\n\t\t\t\t\t\t\tlet latestM = 0;\n\t\t\t\t\t\t\tconst { stat } = await import('node:fs/promises');\n\t\t\t\t\t\t\tfor (const f of candidates) {\n\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\tconst s = await stat(join(chunkDir, f));\n\t\t\t\t\t\t\t\t\tif (s.mtimeMs >= latestM) {\n\t\t\t\t\t\t\t\t\t\tlatestM = s.mtimeMs;\n\t\t\t\t\t\t\t\t\t\tlatest = f;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} catch {}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tconst loc = `/${join('.reroute', 'chunks', collection, latest).replace(/\\\\+/g, '/')}`;\n\t\t\t\t\t\t\treturn new Response(null, {\n\t\t\t\t\t\t\t\tstatus: 302,\n\t\t\t\t\t\t\t\theaders: { Location: loc },\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch {}\n\t\t\t\t}\n\t\t\t} catch {}\n\n\t\t\tconst filePath = join(clientDir, requestPath);\n\n\t\t\tif (shouldIgnore(filePath)) throw new NotFoundError();\n\n\t\t\ttry {\n\t\t\t\tconst exists = await Bun.file(filePath).exists();\n\t\t\t\tif (!exists) throw new NotFoundError();\n\n\t\t\t\tconst bundleInfo = await transpileFile(\n\t\t\t\t\tfilePath,\n\t\t\t\t\trequestPath,\n\t\t\t\t\t{ minify, sourcemap },\n\t\t\t\t\tbundleCache,\n\t\t\t\t);\n\n\t\t\t\tconst contentType = 'application/javascript; charset=utf-8';\n\t\t\t\tconst { body, extraHeaders } = gzipIfAccepted(\n\t\t\t\t\tbundleInfo.code,\n\t\t\t\t\tcontentType,\n\t\t\t\t\theaders['accept-encoding'],\n\t\t\t\t);\n\t\t\t\treturn new Response(body as string, {\n\t\t\t\t\theaders: {\n\t\t\t\t\t\t'Content-Type': contentType,\n\t\t\t\t\t\t'Cache-Control': isWatchMode\n\t\t\t\t\t\t\t? 'no-cache'\n\t\t\t\t\t\t\t: `${directive}, max-age=${maxAge}`,\n\t\t\t\t\t\t...extraHeaders,\n\t\t\t\t\t\t...staticHeaders,\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t} catch (error) {\n\t\t\t\tif (error instanceof NotFoundError) throw error;\n\t\t\t\tconsole.error(`[reroute] Error:`, error);\n\t\t\t\tthrow new NotFoundError();\n\t\t\t}\n\t\t}\n\n\t\tconst filePath = join(clientDir, requestPath);\n\n\t\ttry {\n\t\t\tlet actualFilePath = filePath;\n\t\t\tlet exists = await Bun.file(actualFilePath).exists();\n\t\t\tif (!exists && indexHTML) {\n\t\t\t\tactualFilePath = join(filePath, 'index.html');\n\t\t\t\texists = await Bun.file(actualFilePath).exists();\n\t\t\t}\n\t\t\tif (!exists) throw new NotFoundError();\n\n\t\t\t// Check if the resolved file should be ignored (e.g., index.html)\n\t\t\tif (shouldIgnore(actualFilePath)) throw new NotFoundError();\n\n\t\t\t// Check cache after resolving and validating the file\n\t\t\tconst cached = fileCache.get(filePath);\n\t\t\tif (cached) return cached.clone();\n\n\t\t\tconst contentBuf = await Bun.file(actualFilePath).arrayBuffer();\n\t\t\tconst content = new Uint8Array(contentBuf);\n\t\t\tconst contentType = getMimeType(actualFilePath);\n\n\t\t\tconst { body, extraHeaders } = gzipIfAccepted(\n\t\t\t\tcontent,\n\t\t\t\tcontentType,\n\t\t\t\theaders['accept-encoding'],\n\t\t\t);\n\n\t\t\t// Determine cache duration based on content type\n\t\t\tconst isLongLivedAsset =\n\t\t\t\tcontentType.startsWith('image/') ||\n\t\t\t\tcontentType.startsWith('font/') ||\n\t\t\t\tcontentType.includes('woff') ||\n\t\t\t\tcontentType.includes('ttf') ||\n\t\t\t\tcontentType.includes('otf');\n\n\t\t\tconst cacheMaxAge =\n\t\t\t\tmaxAge === 0 ? 0 : isLongLivedAsset ? 365 * 24 * 60 * 60 : maxAge;\n\n\t\t\tconst response = new Response(body as string, {\n\t\t\t\theaders: {\n\t\t\t\t\t'Content-Type': contentType,\n\t\t\t\t\t'Cache-Control':\n\t\t\t\t\t\tcacheMaxAge > 0\n\t\t\t\t\t\t\t? `${directive}, max-age=${cacheMaxAge}${isLongLivedAsset ? ', immutable' : ''}`\n\t\t\t\t\t\t\t: 'no-cache',\n\t\t\t\t\t...extraHeaders,\n\t\t\t\t\t...staticHeaders,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tfileCache.set(filePath, response);\n\n\t\t\treturn response.clone();\n\t\t} catch (error) {\n\t\t\tif (error instanceof NotFoundError) throw error;\n\t\t\tconsole.error(`[reroute] Error serving ${filePath}:`, error);\n\t\t\tthrow new NotFoundError();\n\t\t}\n\t});\n\n\treturn app;\n}\n\nexport { registerStaticRoutes };\n",
27
+ "// All file watching happens in the CLI (reroute gen --watch)\n\nimport type { Elysia } from 'elysia';\nimport type { ReactElement } from 'react';\nimport {\n\ttype BundleInfo,\n\tcomputeSSRDataForPath,\n\tdiscoverCollections,\n\tgenerateContentRegistry,\n\tgetBundleUrlsFor,\n\tLRUCache,\n} from 'reroute-js/core';\nimport { registerArtifactsRoutes } from './routes/artifacts';\nimport { registerContentRoutes } from './routes/content';\nimport { registerDevRoutes } from './routes/dev';\nimport { registerSSRRoutes } from './routes/ssr';\nimport { registerStaticRoutes } from './routes/static';\nimport type { RerouteOptions } from './types';\nimport { jsonError, jsonWithCache } from './utils/http';\n\nconst reroute =\n\t(options: RerouteOptions = {}) =>\n\tasync (app: Elysia) => {\n\t\t// SSR configuration\n\t\tconst ssrHead = options.head || '';\n\t\tconst ssrLang = options.lang || 'en';\n\t\tconst ssrAppId = options.appId || 'root';\n\t\tconst entrypoint = options.entrypoint || 'index.tsx';\n\t\tconst rootComponent = options.app;\n\n\t\t// Static serving configuration\n\t\tconst assets = options.assets || 'src/client';\n\t\tlet prefix = options.prefix || '/';\n\t\tconst ignorePatterns = options.ignorePatterns || [\n\t\t\t'.DS_Store',\n\t\t\t'.git',\n\t\t\t'.env',\n\t\t\t'index.html', // Template file, not a static asset\n\t\t\t/favicon\\.ico/,\n\t\t\t/\\.well-known/,\n\t\t];\n\t\tconst staticHeaders = options.staticHeaders;\n\t\tconst maxAge = options.maxAge ?? 3600;\n\t\tconst directive = options.directive || 'public';\n\t\tconst indexHTML = options.indexHTML ?? true;\n\n\t\t// Build configuration\n\t\tconst minify = options.minify ?? process.env.NODE_ENV === 'production';\n\t\tconst sourcemap = options.sourcemap ?? true;\n\n\t\t// Normalize prefix\n\t\tif (prefix === '/') prefix = '';\n\n\t\tconst fileCache = new LRUCache<string, Response>(100);\n\t\tconst bundleCache = new Map<string, BundleInfo>();\n\t\tconst cwd =\n\t\t\ttypeof process !== 'undefined' && typeof process.cwd === 'function'\n\t\t\t\t? process.cwd()\n\t\t\t\t: '/';\n\n\t\t// Live reload SSE clients\n\t\tconst liveReloadClients = new Set<ReadableStreamDefaultController>();\n\t\tconst notifyReload = () => {\n\t\t\tconst encoder = new TextEncoder();\n\t\t\tconst message = encoder.encode('data: reload\\n\\n');\n\t\t\tfor (const controller of liveReloadClients) {\n\t\t\t\ttry {\n\t\t\t\t\tcontroller.enqueue(message);\n\t\t\t\t} catch {\n\t\t\t\t\tliveReloadClients.delete(controller);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tconst clientDir: string = assets.startsWith('/')\n\t\t\t? assets\n\t\t\t: `${cwd.replace(/\\/$/, '')}/${assets.replace(/^\\.\\//, '')}`;\n\n\t\tconst shouldIgnore = !ignorePatterns.length\n\t\t\t? () => false\n\t\t\t: (file: string) =>\n\t\t\t\t\tignorePatterns.find((pattern) =>\n\t\t\t\t\t\ttypeof pattern === 'string'\n\t\t\t\t\t\t\t? file.includes(pattern)\n\t\t\t\t\t\t\t: pattern.test(file),\n\t\t\t\t\t);\n\n\t\tconst isWatchMode =\n\t\t\t(Array.isArray(process.execArgv) &&\n\t\t\t\tprocess.execArgv.includes('--watch')) ||\n\t\t\t(Array.isArray(process.argv) && process.argv.includes('--watch'));\n\n\t\t// Shared cache-control for data responses (prefetch + client navigations)\n\t\t// Align with static caching to reduce repeated XHRs even in dev.\n\t\tconst dataCacheControl = `${directive}, max-age=${maxAge}`;\n\n\t\tif (isWatchMode) console.log(`[reroute] Live reload enabled`);\n\n\t\t// Generate content registry at startup (write-only-if-changed)\n\t\tawait generateContentRegistry(cwd);\n\n\t\t// Lazy compute default bundle URL on first usage\n\t\tlet cachedBundleUrlPromise: Promise<string> | null = null;\n\t\tconst ensureBundleUrl = () => {\n\t\t\tif (!cachedBundleUrlPromise) {\n\t\t\t\tcachedBundleUrlPromise = getBundleUrlsFor(\n\t\t\t\t\tentrypoint,\n\t\t\t\t\tclientDir,\n\t\t\t\t\tprefix,\n\t\t\t\t\t{ minify, sourcemap },\n\t\t\t\t\tbundleCache,\n\t\t\t\t).then((u) => u[0]);\n\t\t\t}\n\t\t\treturn cachedBundleUrlPromise;\n\t\t};\n\n\t\t// Register content routes\n\t\tregisterContentRoutes(app, clientDir, prefix, isWatchMode);\n\n\t\t// Register dev mode routes (SSE, live reload, preload)\n\t\tregisterDevRoutes(app, liveReloadClients, isWatchMode, {\n\t\t\tclientDir,\n\t\t\tcwd,\n\t\t\tdataCacheControl,\n\t\t});\n\n\t\t// Data prefetch endpoint for client Link prefetch (all modes)\n\t\tapp.get('/__reroute_data', async ({ query, headers }) => {\n\t\t\tconst p = String(query.path || query.p || '/');\n\t\t\tlet pathname = '/';\n\t\t\ttry {\n\t\t\t\tconst u = new URL(p, 'http://localhost');\n\t\t\t\tpathname = u.pathname + u.search;\n\t\t\t} catch {\n\t\t\t\tpathname = String(p);\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tconst data = await computeSSRDataForPath({\n\t\t\t\t\tpathname,\n\t\t\t\t\tclientDir,\n\t\t\t\t\tcwd,\n\t\t\t\t\tisWatchMode,\n\t\t\t\t});\n\t\t\t\treturn jsonWithCache(\n\t\t\t\t\t{ data },\n\t\t\t\t\tdataCacheControl,\n\t\t\t\t\theaders as Record<string, string>,\n\t\t\t\t);\n\t\t\t} catch (_e) {\n\t\t\t\treturn jsonError('failed', 500);\n\t\t\t}\n\t\t});\n\n\t\t// File system watcher (dev): trigger build + client reload on changes under assets\n\t\t// No internal fs watcher here. The CLI rebuilds artifacts and can hit\n\t\t// /__reroute_reload to trigger client reloads.\n\t\tif (isWatchMode) {\n\t\t\tapp.post('/__reroute_reload', () => {\n\t\t\t\ttry {\n\t\t\t\t\tnotifyReload();\n\t\t\t\t\treturn new Response(JSON.stringify({ ok: true }), {\n\t\t\t\t\t\theaders: { 'content-type': 'application/json' },\n\t\t\t\t\t});\n\t\t\t\t} catch {\n\t\t\t\t\treturn new Response(JSON.stringify({ ok: false }), {\n\t\t\t\t\t\tstatus: 500,\n\t\t\t\t\t\theaders: { 'content-type': 'application/json' },\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Register artifacts routes (.reroute directory)\n\t\tregisterArtifactsRoutes(app, cwd);\n\n\t\t// Register SSR routes if root component is provided\n\t\tif (rootComponent) {\n\t\t\tconst collections = await discoverCollections(clientDir);\n\t\t\tif (collections.length > 0) {\n\t\t\t\tconsole.log(\n\t\t\t\t\t`[reroute] Discovered collections: ${collections.join(', ')}`,\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tregisterSSRRoutes(app, {\n\t\t\t\trootComponent: rootComponent as ReactElement,\n\t\t\t\tclientDir,\n\t\t\t\tcwd,\n\t\t\t\tisWatchMode,\n\t\t\t\tgetBundleUrl: ensureBundleUrl,\n\t\t\t\thead: ssrHead,\n\t\t\t\tlang: ssrLang,\n\t\t\t\tappId: ssrAppId,\n\t\t\t\tcollections,\n\t\t\t\tminify,\n\t\t\t\tmaxAge,\n\t\t\t\tdirective,\n\t\t\t\tdataCacheControl,\n\t\t\t\tshouldIgnorePathname: (pathname: string) => {\n\t\t\t\t\t// Honor ignorePatterns for SSR fallback as well\n\t\t\t\t\tif (!ignorePatterns.length) return false;\n\t\t\t\t\treturn Boolean(\n\t\t\t\t\t\tignorePatterns.find((pattern) =>\n\t\t\t\t\t\t\ttypeof pattern === 'string'\n\t\t\t\t\t\t\t\t? pathname.includes(pattern)\n\t\t\t\t\t\t\t\t: pattern.test(pathname),\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\t// Register static file serving (must be last as it's a catch-all)\n\t\tregisterStaticRoutes(app, {\n\t\t\tclientDir,\n\t\t\tprefix,\n\t\t\tmaxAge,\n\t\t\tdirective,\n\t\t\tindexHTML,\n\t\t\tstaticHeaders,\n\t\t\tminify,\n\t\t\tsourcemap,\n\t\t\tshouldIgnore: shouldIgnore as () => boolean,\n\t\t\tbundleCache,\n\t\t\tfileCache,\n\t\t\tisWatchMode,\n\t\t});\n\n\t\treturn app;\n\t};\n\nexport { reroute };\n"
28
28
  ],
29
- "mappings": "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",
30
- "debugId": "BFACD166E43864D264756E2164756E21",
29
+ "mappings": "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",
30
+ "debugId": "CF28F664748EC3F964756E2164756E21",
31
31
  "names": []
32
32
  }
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../../packages/elysia/src/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAerC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,QAAA,MAAM,OAAO,GACX,UAAS,cAAmB,MACtB,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6MjB,CAAC;AAEH,OAAO,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../../../../packages/elysia/src/plugin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAerC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAG9C,QAAA,MAAM,OAAO,GACX,UAAS,cAAmB,MACtB,KAAK,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+MjB,CAAC;AAEH,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -11,6 +11,8 @@ type SSRRouteOptions = {
11
11
  appId?: string;
12
12
  collections: string[];
13
13
  minify?: boolean;
14
+ maxAge?: number;
15
+ directive?: string;
14
16
  dataCacheControl?: string;
15
17
  shouldIgnorePathname?: (pathname: string) => boolean;
16
18
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ssr.d.ts","sourceRoot":"","sources":["../../../../../../packages/elysia/src/routes/ssr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAQ1C,KAAK,eAAe,GAAG;IACtB,aAAa,EAAE,YAAY,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CACrD,CAAC;AAEF,iBAAS,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,CA+HxE;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"ssr.d.ts","sourceRoot":"","sources":["../../../../../../packages/elysia/src/routes/ssr.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAS1C,KAAK,eAAe,GAAG;IACtB,aAAa,EAAE,YAAY,CAAC;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC;CACrD,CAAC;AAEF,iBAAS,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,eAAe,GAAG,MAAM,CA0JxE;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../../../../../../packages/elysia/src/routes/static.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EACN,KAAK,UAAU,EAIf,KAAK,QAAQ,EAEb,MAAM,iBAAiB,CAAC;AAEzB,KAAK,kBAAkB,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrC,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,iBAAS,oBAAoB,CAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,kBAAkB,GACzB,MAAM,CA8QR;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
1
+ {"version":3,"file":"static.d.ts","sourceRoot":"","sources":["../../../../../../packages/elysia/src/routes/static.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EACN,KAAK,UAAU,EAIf,KAAK,QAAQ,EAEb,MAAM,iBAAiB,CAAC;AAEzB,KAAK,kBAAkB,GAAG;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACvC,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACxC,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACrC,SAAS,EAAE,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB,CAAC;AAEF,iBAAS,oBAAoB,CAC5B,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,kBAAkB,GACzB,MAAM,CA0RR;AAED,OAAO,EAAE,oBAAoB,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reroute-js",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "types": "tsc --noEmit",
@@ -9,6 +9,8 @@
9
9
  "knip": "knip --no-config-hints",
10
10
  "build": "bun format && bun lint --write && bun ./scripts/build",
11
11
  "release": "semantic-release",
12
+ "prepack": "cp -r ./dist/cli ./ && cp -r ./dist/core ./ && cp -r ./dist/react ./ && cp -r ./dist/elysia ./",
13
+ "postpack": "rm -rf ./cli ./core ./react ./elysia",
12
14
  "test": "vitest run",
13
15
  "test:watch": "vitest",
14
16
  "test:ui": "vitest --ui",
@@ -42,7 +44,7 @@
42
44
  }
43
45
  },
44
46
  "bin": {
45
- "reroute": "./cli/bin.js"
47
+ "reroute": "./packages/cli/bin.ts"
46
48
  },
47
49
  "files": [
48
50
  "_",
@@ -57,17 +59,18 @@
57
59
  "@biomejs/biome": "^2.3.3",
58
60
  "@semantic-release/changelog": "^6.0.3",
59
61
  "@semantic-release/git": "^10.0.1",
62
+ "@tailwindcss/cli": "^4.1.16",
60
63
  "@types/bun": "latest",
61
64
  "@types/react-dom": "^19.2.2",
62
65
  "@vitest/coverage-v8": "^3.2.4",
66
+ "conventional-changelog-conventionalcommits": "^9.1.0",
63
67
  "dedent": "^1.7.0",
64
68
  "knip": "^5.66.3",
69
+ "react": "^19.2.0",
70
+ "react-dom": "^19.2.0",
65
71
  "semantic-release": "^24.2.8",
66
72
  "vite-tsconfig-paths": "^5.1.4",
67
- "vitest": "^3.2.4",
68
- "@tailwindcss/cli": "^4.1.16",
69
- "react": "^19.2.0",
70
- "react-dom": "^19.2.0"
73
+ "vitest": "^3.2.4"
71
74
  },
72
75
  "peerDependencies": {
73
76
  "typescript": "^5",