reroute-js 0.34.4 → 0.34.8

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 (179) hide show
  1. package/cli/bin.d.ts +1 -1
  2. package/cli/bin.js +40 -13
  3. package/cli/bin.js.map +9 -9
  4. package/cli/index.d.ts +1 -1
  5. package/cli/index.js +4 -4
  6. package/cli/index.js.map +1 -1
  7. package/cli/src/cli.d.ts +1 -1
  8. package/cli/src/commands/analyze.d.ts +1 -1
  9. package/cli/src/commands/build.d.ts +1 -1
  10. package/cli/src/commands/dev.d.ts +1 -1
  11. package/cli/src/commands/gen.d.ts +1 -1
  12. package/cli/src/commands/gen.d.ts.map +1 -1
  13. package/cli/src/commands/index.d.ts +1 -1
  14. package/cli/src/commands/init.d.ts +1 -1
  15. package/cli/src/commands/lib/assets.d.ts +1 -1
  16. package/cli/src/commands/lib/bundler.d.ts +1 -1
  17. package/cli/src/commands/lib/command.d.ts +1 -1
  18. package/cli/src/commands/lib/env.d.ts +1 -1
  19. package/cli/src/commands/lib/index.d.ts +1 -1
  20. package/cli/src/commands/lib/log.d.ts +1 -1
  21. package/cli/src/commands/lib/markdown/availability.d.ts +1 -1
  22. package/cli/src/commands/lib/markdown/index.d.ts +1 -1
  23. package/cli/src/commands/lib/markdown/processor.d.ts +1 -1
  24. package/cli/src/commands/lib/production.d.ts +1 -1
  25. package/cli/src/commands/lib/server.d.ts +1 -1
  26. package/cli/src/commands/lib/streaming/analyzer.d.ts +1 -1
  27. package/cli/src/commands/lib/streaming/suspense.d.ts +1 -1
  28. package/cli/src/commands/lib/tailwind.d.ts +1 -1
  29. package/cli/src/commands/lib/terminal-ui.d.ts +1 -1
  30. package/cli/src/commands/lib/version.d.ts +1 -1
  31. package/cli/src/commands/og.d.ts +1 -1
  32. package/cli/src/commands/start.d.ts +1 -1
  33. package/cli/src/index.d.ts +1 -1
  34. package/core/index.d.ts +1 -1
  35. package/core/index.js +35 -9
  36. package/core/index.js.map +8 -8
  37. package/core/src/bundler/hash.d.ts +1 -1
  38. package/core/src/bundler/index.d.ts +1 -1
  39. package/core/src/config.d.ts +1 -1
  40. package/core/src/content/discovery.d.ts +1 -1
  41. package/core/src/content/index.d.ts +1 -1
  42. package/core/src/content/metadata.d.ts +1 -1
  43. package/core/src/index.d.ts +1 -1
  44. package/core/src/llms/extractor.d.ts +1 -1
  45. package/core/src/llms/formatter.d.ts +1 -1
  46. package/core/src/llms/full-generator.d.ts +1 -1
  47. package/core/src/llms/index-generator.d.ts +1 -1
  48. package/core/src/llms/index.d.ts +1 -1
  49. package/core/src/og/discovery.d.ts +1 -1
  50. package/core/src/og/index.d.ts +1 -1
  51. package/core/src/og/meta.d.ts +1 -1
  52. package/core/src/og/render.d.ts +1 -1
  53. package/core/src/og/types.d.ts +1 -1
  54. package/core/src/robots/discovery.d.ts +1 -1
  55. package/core/src/robots/generator.d.ts +1 -1
  56. package/core/src/robots/index.d.ts +1 -1
  57. package/core/src/robots/policies.d.ts +1 -1
  58. package/core/src/rss/discovery.d.ts +1 -1
  59. package/core/src/rss/generator.d.ts +1 -1
  60. package/core/src/rss/index.d.ts +1 -1
  61. package/core/src/sitemap/discovery.d.ts +1 -1
  62. package/core/src/sitemap/generator.d.ts +1 -1
  63. package/core/src/sitemap/index.d.ts +1 -1
  64. package/core/src/ssr/index.d.ts +1 -1
  65. package/core/src/ssr/lib/cache.d.ts +1 -1
  66. package/core/src/ssr/lib/collections.d.ts +1 -1
  67. package/core/src/ssr/lib/compression.d.ts +1 -1
  68. package/core/src/ssr/lib/compute/content.d.ts +1 -1
  69. package/core/src/ssr/lib/compute/index.d.ts +4 -2
  70. package/core/src/ssr/lib/compute/index.d.ts.map +1 -1
  71. package/core/src/ssr/lib/compute/layouts.d.ts +1 -1
  72. package/core/src/ssr/lib/compute/routes.d.ts +1 -1
  73. package/core/src/ssr/lib/data.d.ts +1 -1
  74. package/core/src/ssr/lib/html.d.ts +1 -1
  75. package/core/src/ssr/lib/imports.d.ts +1 -1
  76. package/core/src/ssr/lib/index.d.ts +1 -1
  77. package/core/src/ssr/lib/layouts.d.ts +1 -1
  78. package/core/src/ssr/lib/metadata.d.ts +1 -1
  79. package/core/src/ssr/lib/metadata.d.ts.map +1 -1
  80. package/core/src/ssr/lib/mime.d.ts +1 -1
  81. package/core/src/ssr/lib/modules.d.ts +1 -1
  82. package/core/src/ssr/lib/path.d.ts +1 -1
  83. package/core/src/ssr/lib/preload.d.ts +1 -1
  84. package/core/src/ssr/lib/preload.d.ts.map +1 -1
  85. package/core/src/ssr/lib/scripts/collections.d.ts +1 -1
  86. package/core/src/ssr/lib/scripts/data.d.ts +1 -1
  87. package/core/src/ssr/lib/scripts/escape.d.ts +1 -1
  88. package/core/src/ssr/lib/scripts/feeds.d.ts +1 -1
  89. package/core/src/ssr/lib/scripts/index.d.ts +1 -1
  90. package/core/src/ssr/lib/seed.d.ts +1 -1
  91. package/core/src/ssr/lib/serialize.d.ts +1 -1
  92. package/core/src/ssr/lib/setup.d.ts +1 -1
  93. package/core/src/ssr/lib/styles.d.ts +1 -1
  94. package/core/src/ssr/lib/template.d.ts +1 -1
  95. package/core/src/ssr/lib/types.d.ts +1 -1
  96. package/core/src/ssr/render.d.ts +1 -1
  97. package/core/src/ssr/stream.d.ts +1 -1
  98. package/elysia/index.d.ts +1 -1
  99. package/elysia/index.js +35 -9
  100. package/elysia/index.js.map +8 -8
  101. package/elysia/src/index.d.ts +1 -1
  102. package/elysia/src/libs/assets.d.ts +1 -1
  103. package/elysia/src/libs/cache.d.ts +1 -1
  104. package/elysia/src/libs/caching.d.ts +1 -1
  105. package/elysia/src/libs/http.d.ts +1 -1
  106. package/elysia/src/libs/image.d.ts +1 -1
  107. package/elysia/src/libs/index.d.ts +1 -1
  108. package/elysia/src/libs/llms.d.ts +1 -1
  109. package/elysia/src/libs/response.d.ts +1 -1
  110. package/elysia/src/libs/serving.d.ts +1 -1
  111. package/elysia/src/plugin.d.ts +1 -1
  112. package/elysia/src/routes/artifacts.d.ts +1 -1
  113. package/elysia/src/routes/content.d.ts +1 -1
  114. package/elysia/src/routes/image.d.ts +1 -1
  115. package/elysia/src/routes/index.d.ts +1 -1
  116. package/elysia/src/routes/internal.d.ts +1 -1
  117. package/elysia/src/routes/llms.d.ts +1 -1
  118. package/elysia/src/routes/og.d.ts +1 -1
  119. package/elysia/src/routes/redirects.d.ts +1 -1
  120. package/elysia/src/routes/robots.d.ts +1 -1
  121. package/elysia/src/routes/rss.d.ts +1 -1
  122. package/elysia/src/routes/search.d.ts +1 -1
  123. package/elysia/src/routes/sitemap.d.ts +1 -1
  124. package/elysia/src/routes/ssr.d.ts +1 -1
  125. package/elysia/src/routes/static.d.ts +1 -1
  126. package/elysia/src/types.d.ts +1 -1
  127. package/package.json +4 -1
  128. package/react/index.d.ts +1 -1
  129. package/react/index.js +2 -2
  130. package/react/index.js.map +1 -1
  131. package/react/src/components/ClientOnly.d.ts +1 -1
  132. package/react/src/components/ContentRoute.d.ts +1 -1
  133. package/react/src/components/Image.d.ts +1 -1
  134. package/react/src/components/LazyRoute.d.ts +1 -1
  135. package/react/src/components/Link.d.ts +1 -1
  136. package/react/src/components/Markdown.d.ts +1 -1
  137. package/react/src/components/Outlet.d.ts +1 -1
  138. package/react/src/components/index.d.ts +1 -1
  139. package/react/src/hooks/index.d.ts +1 -1
  140. package/react/src/hooks/useContent.d.ts +1 -1
  141. package/react/src/hooks/useData.d.ts +1 -1
  142. package/react/src/hooks/useFeed.d.ts +1 -1
  143. package/react/src/hooks/useLayoutData.d.ts +1 -1
  144. package/react/src/hooks/useLlms.d.ts +1 -1
  145. package/react/src/hooks/useNavigate.d.ts +1 -1
  146. package/react/src/hooks/useParams.d.ts +1 -1
  147. package/react/src/hooks/useRouter.d.ts +1 -1
  148. package/react/src/hooks/useSearch.d.ts +1 -1
  149. package/react/src/hooks/useSearchParams.d.ts +1 -1
  150. package/react/src/hooks/useToc.d.ts +1 -1
  151. package/react/src/index.d.ts +1 -1
  152. package/react/src/lib/collection.d.ts +1 -1
  153. package/react/src/lib/content.d.ts +1 -1
  154. package/react/src/lib/head.d.ts +1 -1
  155. package/react/src/lib/index.d.ts +1 -1
  156. package/react/src/lib/lazy-route.d.ts +1 -1
  157. package/react/src/lib/route-loader.d.ts +1 -1
  158. package/react/src/providers/ContentProvider.d.ts +1 -1
  159. package/react/src/providers/RerouteProvider.d.ts +1 -1
  160. package/react/src/providers/RouterProvider.d.ts +1 -1
  161. package/react/src/providers/index.d.ts +1 -1
  162. package/react/src/types/any.d.ts +1 -1
  163. package/react/src/types/index.d.ts +1 -1
  164. package/react/src/types/router.d.ts +1 -1
  165. package/telemetry/react.d.ts +1 -1
  166. package/telemetry/react.js +2 -2
  167. package/telemetry/react.js.map +1 -1
  168. package/telemetry/server.d.ts +1 -1
  169. package/telemetry/server.js +3 -2
  170. package/telemetry/server.js.map +8 -8
  171. package/telemetry/src/react/api.d.ts +1 -1
  172. package/telemetry/src/react/context.d.ts +1 -1
  173. package/telemetry/src/react/index.d.ts +1 -1
  174. package/telemetry/src/react/telemetry.d.ts +1 -1
  175. package/telemetry/src/server/context.d.ts +1 -1
  176. package/telemetry/src/server/index.d.ts +1 -1
  177. package/telemetry/src/server/instrumentation.d.ts +1 -1
  178. package/telemetry/src/server/plugin.d.ts +1 -1
  179. package/telemetry/src/server/sourcemap.d.ts +1 -1
package/cli/bin.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v0.34.4
2
+ * reroute-js v0.34.8
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2025 stewones <hi@stewan.io>
package/cli/bin.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env bun
2
2
  // @bun
3
3
  /**
4
- * reroute-js v0.34.4
4
+ * reroute-js v0.34.8
5
5
  *
6
6
  * @license MIT
7
7
  * @copyright 2025 stewones <hi@stewan.io>
@@ -48,7 +48,7 @@ async function getVersionString() {
48
48
  }
49
49
  async function getVersion() {
50
50
  if (true) {
51
- return "0.34.4";
51
+ return "0.34.8";
52
52
  }
53
53
  const possiblePaths = [
54
54
  path.join(import.meta.dir, "../../../../package.json"),
@@ -66,7 +66,7 @@ async function getVersion() {
66
66
  }
67
67
  async function getCommit() {
68
68
  if (true) {
69
- return "ad90257";
69
+ return "61ce1ff";
70
70
  }
71
71
  return "dev";
72
72
  }
@@ -1352,9 +1352,11 @@ function matchPatternUtil(pattern, pathname) {
1352
1352
  return params;
1353
1353
  }
1354
1354
  function createBundledRoutesModule(bundledRoutes, bundledLayouts) {
1355
+ const bundledNotFoundRoutes = globalThis.__REROUTE_NOT_FOUND_ROUTES__;
1355
1356
  return {
1356
1357
  routes: bundledRoutes,
1357
1358
  layouts: bundledLayouts,
1359
+ notFoundRoutes: bundledNotFoundRoutes,
1358
1360
  matchRoute: (pathname) => {
1359
1361
  for (const route of bundledRoutes) {
1360
1362
  const pattern = String(route?.pattern || "");
@@ -2048,6 +2050,13 @@ function generateCanonicalUrl(baseUrl, pathname) {
2048
2050
  const canonicalUrl = `${cleanBaseUrl}${normalizedPath}`;
2049
2051
  return `<link rel="canonical" href="${canonicalUrl}" />`;
2050
2052
  }
2053
+ function generateOgUrl(baseUrl, pathname) {
2054
+ const cleanBaseUrl = baseUrl.replace(/\/$/, "");
2055
+ const cleanPathname = pathname.split("?")[0];
2056
+ const normalizedPath = cleanPathname === "/" ? "/" : cleanPathname.replace(/\/$/, "");
2057
+ const ogUrl = `${cleanBaseUrl}${normalizedPath}`;
2058
+ return `<meta property="og:url" content="${ogUrl}" />`;
2059
+ }
2051
2060
  async function extractPageMetadata(pathname, clientDir, cwd, isWatchMode, currentStatusOverride, ogConfig, baseUrl, autoCanonical) {
2052
2061
  let perPageHead = "";
2053
2062
  let pageLang;
@@ -2061,8 +2070,11 @@ async function extractPageMetadata(pathname, clientDir, cwd, isWatchMode, curren
2061
2070
  const shouldGenerateCanonical = autoCanonical !== false && baseUrl !== undefined;
2062
2071
  if (shouldGenerateCanonical) {
2063
2072
  const canonicalTag = generateCanonicalUrl(baseUrl, pathname);
2073
+ const ogUrlTag = generateOgUrl(baseUrl, pathname);
2064
2074
  perPageHead += `
2065
2075
  ${canonicalTag}`;
2076
+ perPageHead += `
2077
+ ${ogUrlTag}`;
2066
2078
  }
2067
2079
  try {
2068
2080
  const ogMetaTags = await generateOGImageMetaTags(pathname, clientDir, ogConfig);
@@ -2169,8 +2181,10 @@ async function extractRouteMetadata(pathname, clientDir, cwd, isWatchMode, curre
2169
2181
  let lang;
2170
2182
  let statusOverride = currentStatusOverride;
2171
2183
  try {
2172
- const routesPath = join2(cwd, ".reroute", "routes.ts");
2173
- const m = await dynamicImport(routesPath, isWatchMode);
2184
+ const m = await loadRoutesModule(cwd, isWatchMode);
2185
+ if (!m) {
2186
+ return { head, lang, statusOverride: statusOverride || 404 };
2187
+ }
2174
2188
  const pathnameOnly = pathname.split("?")[0];
2175
2189
  const match = typeof m.matchRoute === "function" ? m.matchRoute(pathnameOnly) : null;
2176
2190
  const r = match?.route;
@@ -2251,6 +2265,7 @@ function extractSSRLang(ssr) {
2251
2265
  var init_metadata2 = __esm(() => {
2252
2266
  init_metadata();
2253
2267
  init_meta();
2268
+ init_compute();
2254
2269
  init_imports();
2255
2270
  });
2256
2271
 
@@ -2288,6 +2303,16 @@ async function preloadContentModule(pathname, clientDir, cwd, isWatchMode) {
2288
2303
  }
2289
2304
  async function isContentCollection(clientDir, collection) {
2290
2305
  try {
2306
+ const isProduction = clientDir.endsWith(".reroute");
2307
+ if (isProduction) {
2308
+ const collectionFile = join2(clientDir, "collections", `${collection}.js`);
2309
+ try {
2310
+ const s2 = await stat4(collectionFile);
2311
+ return s2?.isFile() ?? false;
2312
+ } catch {
2313
+ return false;
2314
+ }
2315
+ }
2291
2316
  const maybeDir = join2(clientDir, "routes", collection, "content");
2292
2317
  const s = await stat4(maybeDir);
2293
2318
  return typeof s?.isDirectory === "function" ? s.isDirectory() : true;
@@ -2738,7 +2763,7 @@ async function performSSRSetupInternal(options, streaming) {
2738
2763
  return css;
2739
2764
  });
2740
2765
  let statusOverride = preloadResult.statusOverride;
2741
- if (computeResult.statusContainer.value) {
2766
+ if (computeResult.statusContainer.value !== undefined) {
2742
2767
  statusOverride = computeResult.statusContainer.value;
2743
2768
  }
2744
2769
  const metadataResult = await withSpan("ssr.extract.metadata", async (span) => {
@@ -2946,10 +2971,10 @@ async function renderSSRDocument(options) {
2946
2971
  return script;
2947
2972
  });
2948
2973
  let statusOverride = setup2.preloadStatusOverride;
2949
- if (setup2.statusContainer.value) {
2974
+ if (setup2.statusContainer.value !== undefined) {
2950
2975
  statusOverride = setup2.statusContainer.value;
2951
2976
  }
2952
- if (setup2.metadataResult.statusOverride) {
2977
+ if (setup2.metadataResult.statusOverride !== undefined) {
2953
2978
  statusOverride = setup2.metadataResult.statusOverride;
2954
2979
  }
2955
2980
  const extraHead = setup2.bundlePreload + setup2.preloadExtraHead;
@@ -4923,10 +4948,10 @@ async function renderSSRDocumentStream(options) {
4923
4948
  if (debug)
4924
4949
  console.log(`[renderStream] ${pathname} - performSSRSetup: ${(performance.now() - t0).toFixed(2)}ms`);
4925
4950
  let statusOverride = setup2.preloadStatusOverride;
4926
- if (setup2.statusContainer.value) {
4951
+ if (setup2.statusContainer.value !== undefined) {
4927
4952
  statusOverride = setup2.statusContainer.value;
4928
4953
  }
4929
- if (setup2.metadataResult.statusOverride) {
4954
+ if (setup2.metadataResult.statusOverride !== undefined) {
4930
4955
  statusOverride = setup2.metadataResult.statusOverride;
4931
4956
  }
4932
4957
  const encoder = new TextEncoder;
@@ -5146,6 +5171,7 @@ __export(exports_core, {
5146
5171
  preloadContentModule: () => preloadContentModule,
5147
5172
  performSSRSetup: () => performSSRSetup,
5148
5173
  mergeLayoutData: () => mergeLayoutData,
5174
+ loadRoutesModule: () => loadRoutesModule,
5149
5175
  loadOGImageComponent: () => loadOGImageComponent,
5150
5176
  loadIndexHtml: () => loadIndexHtml,
5151
5177
  loadConfig: () => loadConfig,
@@ -6481,6 +6507,7 @@ function matchPattern(pattern: string, pathname: string): Record<string, string>
6481
6507
  // Set globals for compiled binary support (sitemap/RSS/robots discovery)
6482
6508
  (globalThis as any).__REROUTE_ROUTES__ = routes;
6483
6509
  (globalThis as any).__REROUTE_LAYOUTS__ = layouts;
6510
+ (globalThis as any).__REROUTE_NOT_FOUND_ROUTES__ = notFoundRoutes;
6484
6511
  `;
6485
6512
  }
6486
6513
  async function buildStreamingWrappersForTree(cwd, routesPath, tree, config2) {
@@ -105450,7 +105477,7 @@ async function getVersionString2() {
105450
105477
  }
105451
105478
  async function getVersion2() {
105452
105479
  if (true) {
105453
- return "0.34.4";
105480
+ return "0.34.8";
105454
105481
  }
105455
105482
  const possiblePaths = [
105456
105483
  path3.join(import.meta.dir, "../../../package.json"),
@@ -105467,10 +105494,10 @@ async function getVersion2() {
105467
105494
  }
105468
105495
  async function getCommit2() {
105469
105496
  if (true) {
105470
- return "ad90257";
105497
+ return "61ce1ff";
105471
105498
  }
105472
105499
  return "dev";
105473
105500
  }
105474
105501
  main();
105475
105502
 
105476
- //# debugId=A680DBD0FB510C3C64756E2164756E21
105503
+ //# debugId=C0212B02D1FE7E5C64756E2164756E21