reroute-js 1.0.0-alpha.12 → 1.0.0-alpha.13

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 (200) hide show
  1. package/cli/bin.d.ts +1 -1
  2. package/cli/bin.js +40 -37
  3. package/cli/bin.js.map +5 -5
  4. package/cli/index.d.ts +1 -1
  5. package/cli/index.js +4 -4
  6. package/cli/index.js.map +3 -3
  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/index.d.ts +1 -1
  13. package/cli/src/commands/init.d.ts +1 -1
  14. package/cli/src/commands/lib/assets.d.ts +1 -1
  15. package/cli/src/commands/lib/bundler.d.ts +1 -1
  16. package/cli/src/commands/lib/command.d.ts +1 -1
  17. package/cli/src/commands/lib/env.d.ts +1 -1
  18. package/cli/src/commands/lib/index.d.ts +1 -1
  19. package/cli/src/commands/lib/log.d.ts +1 -1
  20. package/cli/src/commands/lib/markdown/availability.d.ts +1 -1
  21. package/cli/src/commands/lib/markdown/index.d.ts +1 -1
  22. package/cli/src/commands/lib/markdown/processor.d.ts +1 -1
  23. package/cli/src/commands/lib/production.d.ts +1 -1
  24. package/cli/src/commands/lib/server.d.ts +1 -1
  25. package/cli/src/commands/lib/streaming/analyzer.d.ts +1 -1
  26. package/cli/src/commands/lib/streaming/suspense.d.ts +1 -1
  27. package/cli/src/commands/lib/terminal-ui.d.ts +1 -1
  28. package/cli/src/commands/lib/theme.d.ts +2 -2
  29. package/cli/src/commands/lib/theme.d.ts.map +1 -1
  30. package/cli/src/commands/lib/version.d.ts +1 -1
  31. package/cli/src/commands/lib/watch.d.ts +1 -1
  32. package/cli/src/commands/og.d.ts +1 -1
  33. package/cli/src/commands/start.d.ts +1 -1
  34. package/cli/src/index.d.ts +1 -1
  35. package/core/index.d.ts +1 -1
  36. package/core/index.js +34 -31
  37. package/core/index.js.map +4 -4
  38. package/core/src/bundler/hash.d.ts +1 -1
  39. package/core/src/bundler/index.d.ts +1 -1
  40. package/core/src/config.d.ts +1 -1
  41. package/core/src/content/discovery.d.ts +1 -1
  42. package/core/src/content/index.d.ts +1 -1
  43. package/core/src/content/metadata.d.ts +1 -1
  44. package/core/src/i18n/catalog.d.ts +1 -1
  45. package/core/src/i18n/discover.d.ts +1 -1
  46. package/core/src/i18n/index.d.ts +1 -1
  47. package/core/src/i18n/messages.d.ts +1 -1
  48. package/core/src/i18n/negotiate.d.ts +1 -1
  49. package/core/src/i18n/pathname.d.ts +1 -1
  50. package/core/src/i18n/resolve.d.ts +1 -1
  51. package/core/src/i18n/types.d.ts +1 -1
  52. package/core/src/index.d.ts +1 -1
  53. package/core/src/llms/discovery.d.ts +1 -1
  54. package/core/src/llms/extractor.d.ts +1 -1
  55. package/core/src/llms/formatter.d.ts +1 -1
  56. package/core/src/llms/full-generator.d.ts +1 -1
  57. package/core/src/llms/index-generator.d.ts +1 -1
  58. package/core/src/llms/index.d.ts +1 -1
  59. package/core/src/og/discovery.d.ts +1 -1
  60. package/core/src/og/index.d.ts +1 -1
  61. package/core/src/og/meta.d.ts +1 -1
  62. package/core/src/og/render.d.ts +1 -1
  63. package/core/src/og/types.d.ts +1 -1
  64. package/core/src/robots/discovery.d.ts +1 -1
  65. package/core/src/robots/generator.d.ts +1 -1
  66. package/core/src/robots/index.d.ts +1 -1
  67. package/core/src/robots/policies.d.ts +1 -1
  68. package/core/src/rss/discovery.d.ts +1 -1
  69. package/core/src/rss/generator.d.ts +1 -1
  70. package/core/src/rss/index.d.ts +1 -1
  71. package/core/src/sitemap/discovery.d.ts +1 -1
  72. package/core/src/sitemap/generator.d.ts +1 -1
  73. package/core/src/sitemap/index.d.ts +1 -1
  74. package/core/src/ssr/index.d.ts +1 -1
  75. package/core/src/ssr/lib/cache.d.ts +1 -1
  76. package/core/src/ssr/lib/cleanup.d.ts +1 -1
  77. package/core/src/ssr/lib/collections.d.ts +1 -1
  78. package/core/src/ssr/lib/compression.d.ts +1 -1
  79. package/core/src/ssr/lib/compute/content.d.ts +1 -1
  80. package/core/src/ssr/lib/compute/index.d.ts +1 -1
  81. package/core/src/ssr/lib/compute/layouts.d.ts +1 -1
  82. package/core/src/ssr/lib/compute/routes.d.ts +1 -1
  83. package/core/src/ssr/lib/content-path.d.ts +1 -1
  84. package/core/src/ssr/lib/data.d.ts +1 -1
  85. package/core/src/ssr/lib/html.d.ts +1 -1
  86. package/core/src/ssr/lib/imports.d.ts +1 -1
  87. package/core/src/ssr/lib/index.d.ts +1 -1
  88. package/core/src/ssr/lib/layouts.d.ts +1 -1
  89. package/core/src/ssr/lib/metadata.d.ts +1 -1
  90. package/core/src/ssr/lib/mime.d.ts +1 -1
  91. package/core/src/ssr/lib/modules.d.ts +1 -1
  92. package/core/src/ssr/lib/path.d.ts +1 -1
  93. package/core/src/ssr/lib/preload.d.ts +1 -1
  94. package/core/src/ssr/lib/route-match.d.ts +1 -1
  95. package/core/src/ssr/lib/scripts/collections.d.ts +1 -1
  96. package/core/src/ssr/lib/scripts/data.d.ts +1 -1
  97. package/core/src/ssr/lib/scripts/escape.d.ts +1 -1
  98. package/core/src/ssr/lib/scripts/feeds.d.ts +1 -1
  99. package/core/src/ssr/lib/scripts/index.d.ts +1 -1
  100. package/core/src/ssr/lib/seed.d.ts +1 -1
  101. package/core/src/ssr/lib/serialize.d.ts +1 -1
  102. package/core/src/ssr/lib/setup.d.ts +1 -1
  103. package/core/src/ssr/lib/styles.d.ts +7 -4
  104. package/core/src/ssr/lib/styles.d.ts.map +1 -1
  105. package/core/src/ssr/lib/template.d.ts +1 -1
  106. package/core/src/ssr/lib/types.d.ts +1 -1
  107. package/core/src/ssr/render.d.ts +1 -1
  108. package/core/src/ssr/stream.d.ts +1 -1
  109. package/elysia/index.d.ts +1 -1
  110. package/elysia/index.js +60 -37
  111. package/elysia/index.js.map +6 -6
  112. package/elysia/src/index.d.ts +1 -1
  113. package/elysia/src/libs/assets.d.ts +1 -1
  114. package/elysia/src/libs/cache.d.ts +1 -1
  115. package/elysia/src/libs/caching.d.ts +1 -1
  116. package/elysia/src/libs/http.d.ts +1 -1
  117. package/elysia/src/libs/i18n.d.ts +1 -1
  118. package/elysia/src/libs/image.d.ts +1 -1
  119. package/elysia/src/libs/index.d.ts +1 -1
  120. package/elysia/src/libs/llms.d.ts +1 -1
  121. package/elysia/src/libs/response.d.ts +1 -1
  122. package/elysia/src/libs/serving.d.ts +1 -1
  123. package/elysia/src/plugin.d.ts +1 -1
  124. package/elysia/src/routes/artifacts.d.ts +1 -1
  125. package/elysia/src/routes/artifacts.d.ts.map +1 -1
  126. package/elysia/src/routes/content.d.ts +1 -1
  127. package/elysia/src/routes/image.d.ts +1 -1
  128. package/elysia/src/routes/index.d.ts +1 -1
  129. package/elysia/src/routes/internal.d.ts +1 -1
  130. package/elysia/src/routes/liveReloadClient.d.ts +1 -1
  131. package/elysia/src/routes/llms.d.ts +1 -1
  132. package/elysia/src/routes/og.d.ts +1 -1
  133. package/elysia/src/routes/redirects.d.ts +1 -1
  134. package/elysia/src/routes/robots.d.ts +1 -1
  135. package/elysia/src/routes/rss.d.ts +1 -1
  136. package/elysia/src/routes/search.d.ts +1 -1
  137. package/elysia/src/routes/sitemap.d.ts +1 -1
  138. package/elysia/src/routes/ssr.d.ts +1 -1
  139. package/elysia/src/routes/static.d.ts +1 -1
  140. package/elysia/src/routes/themeCssRefresh.d.ts +1 -1
  141. package/elysia/src/types.d.ts +1 -1
  142. package/package.json +1 -1
  143. package/react/index.d.ts +1 -1
  144. package/react/index.js +2 -2
  145. package/react/index.js.map +1 -1
  146. package/react/src/components/ClientOnly.d.ts +1 -1
  147. package/react/src/components/ContentRoute.d.ts +1 -1
  148. package/react/src/components/Image.d.ts +1 -1
  149. package/react/src/components/LazyRoute.d.ts +1 -1
  150. package/react/src/components/Link.d.ts +1 -1
  151. package/react/src/components/Markdown.d.ts +1 -1
  152. package/react/src/components/Outlet.d.ts +1 -1
  153. package/react/src/components/index.d.ts +1 -1
  154. package/react/src/hooks/index.d.ts +1 -1
  155. package/react/src/hooks/useContent.d.ts +1 -1
  156. package/react/src/hooks/useData.d.ts +1 -1
  157. package/react/src/hooks/useFeed.d.ts +1 -1
  158. package/react/src/hooks/useLayoutData.d.ts +1 -1
  159. package/react/src/hooks/useLlms.d.ts +1 -1
  160. package/react/src/hooks/useNavigate.d.ts +1 -1
  161. package/react/src/hooks/useParams.d.ts +1 -1
  162. package/react/src/hooks/useRouter.d.ts +1 -1
  163. package/react/src/hooks/useSearch.d.ts +1 -1
  164. package/react/src/hooks/useSearchParams.d.ts +1 -1
  165. package/react/src/hooks/useToc.d.ts +1 -1
  166. package/react/src/i18n/LocaleProvider.d.ts +1 -1
  167. package/react/src/i18n/helpers.d.ts +1 -1
  168. package/react/src/i18n/index.d.ts +1 -1
  169. package/react/src/index.d.ts +1 -1
  170. package/react/src/lib/collection.d.ts +1 -1
  171. package/react/src/lib/content.d.ts +1 -1
  172. package/react/src/lib/head.d.ts +1 -1
  173. package/react/src/lib/index.d.ts +1 -1
  174. package/react/src/lib/lazy-route.d.ts +1 -1
  175. package/react/src/lib/route-loader.d.ts +1 -1
  176. package/react/src/providers/ContentProvider.d.ts +1 -1
  177. package/react/src/providers/RerouteProvider.d.ts +1 -1
  178. package/react/src/providers/RouterProvider.d.ts +1 -1
  179. package/react/src/providers/index.d.ts +1 -1
  180. package/react/src/types/any.d.ts +1 -1
  181. package/react/src/types/index.d.ts +1 -1
  182. package/react/src/types/router.d.ts +1 -1
  183. package/telemetry/react.d.ts +1 -1
  184. package/telemetry/react.js +2 -2
  185. package/telemetry/react.js.map +1 -1
  186. package/telemetry/server.d.ts +1 -1
  187. package/telemetry/server.js +2 -2
  188. package/telemetry/server.js.map +2 -2
  189. package/telemetry/src/react/api.d.ts +1 -1
  190. package/telemetry/src/react/context.d.ts +1 -1
  191. package/telemetry/src/react/index.d.ts +1 -1
  192. package/telemetry/src/react/telemetry.d.ts +1 -1
  193. package/telemetry/src/server/context.d.ts +1 -1
  194. package/telemetry/src/server/headers/extractor.d.ts +1 -1
  195. package/telemetry/src/server/headers/index.d.ts +1 -1
  196. package/telemetry/src/server/headers/presets.d.ts +1 -1
  197. package/telemetry/src/server/index.d.ts +1 -1
  198. package/telemetry/src/server/instrumentation.d.ts +1 -1
  199. package/telemetry/src/server/plugin.d.ts +1 -1
  200. package/telemetry/src/server/sourcemap.d.ts +1 -1
package/elysia/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v1.0.0-alpha.12
2
+ * reroute-js v1.0.0-alpha.13
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2026 stewones <hi@stewan.io>
@@ -3496,42 +3496,45 @@ var init_scripts = __esm(() => {
3496
3496
  });
3497
3497
 
3498
3498
  // packages/core/src/ssr/lib/styles.ts
3499
- async function inlineThemeCSS(clientDir, minify = false, isWatchMode = false) {
3499
+ import { createHash } from "node:crypto";
3500
+ function themeLink(query) {
3501
+ return `<link rel="stylesheet" href="${THEME_CSS_HREF}?${query}" data-reroute="theme">`;
3502
+ }
3503
+ function hashCss(css) {
3504
+ return createHash("sha1").update(css).digest("hex").slice(0, 12);
3505
+ }
3506
+ async function readThemeCssFromDisk(clientDir) {
3507
+ const candidates = [
3508
+ join(clientDir, "..", ".reroute", "index.css"),
3509
+ join(clientDir, "..", "..", ".reroute", "index.css"),
3510
+ join(clientDir, "..", "..", "..", ".reroute", "index.css"),
3511
+ join(clientDir, "..", "..", "..", "..", ".reroute", "index.css")
3512
+ ];
3513
+ for (const cssPath of candidates) {
3514
+ if (await Bun.file(cssPath).exists()) {
3515
+ const { readFileSync } = await import("node:fs");
3516
+ return readFileSync(cssPath, "utf-8");
3517
+ }
3518
+ }
3519
+ return "";
3520
+ }
3521
+ function bundledThemeCss() {
3522
+ return globalThis.__REROUTE_THEME_CSS__ || "";
3523
+ }
3524
+ async function inlineThemeCSS(clientDir, isWatchMode = false) {
3500
3525
  try {
3501
3526
  if (isWatchMode) {
3502
- const timestamp = Date.now();
3503
- return `<link rel="stylesheet" href="/.reroute/index.css?t=${timestamp}" data-reroute="theme">`;
3504
- }
3505
- const bundledCss = globalThis.__REROUTE_THEME_CSS__;
3506
- if (bundledCss) {
3507
- const css2 = minify ? minifyCSS(bundledCss) : bundledCss;
3508
- return `<style data-reroute="theme">${css2}</style>`;
3509
- }
3510
- const candidates = [
3511
- join(clientDir, "..", ".reroute", "index.css"),
3512
- join(clientDir, "..", "..", ".reroute", "index.css"),
3513
- join(clientDir, "..", "..", "..", ".reroute", "index.css"),
3514
- join(clientDir, "..", "..", "..", "..", ".reroute", "index.css")
3515
- ];
3516
- let cssPath = "";
3517
- for (const p of candidates) {
3518
- if (await Bun.file(p).exists()) {
3519
- cssPath = p;
3520
- break;
3521
- }
3527
+ return themeLink(`t=${Date.now()}`);
3522
3528
  }
3523
- if (!cssPath)
3529
+ const css = bundledThemeCss() || await readThemeCssFromDisk(clientDir);
3530
+ if (!css)
3524
3531
  return "";
3525
- const { readFileSync } = await import("node:fs");
3526
- const css = readFileSync(cssPath, "utf-8");
3527
- return `<style data-reroute="theme">${minifyCSS(css)}</style>`;
3532
+ return themeLink(`v=${hashCss(css)}`);
3528
3533
  } catch {
3529
3534
  return "";
3530
3535
  }
3531
3536
  }
3532
- function minifyCSS(css) {
3533
- return css.replace(/\/\*[\s\S]*?\*\//g, "").replace(/\s+/g, " ").replace(/\s*([{}:;,>+~])\s*/g, "$1").replace(/;}/g, "}").trim();
3534
- }
3537
+ var THEME_CSS_HREF = "/.reroute/index.css";
3535
3538
  var init_styles = () => {};
3536
3539
 
3537
3540
  // packages/core/src/ssr/lib/setup.ts
@@ -3638,7 +3641,7 @@ async function performSSRSetupInternal(options, streaming, timeoutState) {
3638
3641
  setGlobalCollections(byCollectionForSSR);
3639
3642
  const usingCachedCSS = !!options.cachedThemeCSS;
3640
3643
  const inlineStyleTag = await withSpan("ssr.inline.css", async (span) => {
3641
- const css = options.cachedThemeCSS ? options.cachedThemeCSS : await inlineThemeCSS(clientDir, !streaming, isWatchMode);
3644
+ const css = options.cachedThemeCSS ? options.cachedThemeCSS : await inlineThemeCSS(clientDir, isWatchMode);
3642
3645
  span.setAttributes({
3643
3646
  "reroute.cached": usingCachedCSS,
3644
3647
  "reroute.css.size": css.length
@@ -7047,14 +7050,25 @@ function getAssetCacheControl(filePath, contentType, maxAge, directive, isWatchM
7047
7050
  }
7048
7051
 
7049
7052
  // packages/elysia/src/routes/artifacts.ts
7053
+ function bundledThemeCssResponse(cacheControl) {
7054
+ const bundled = globalThis.__REROUTE_THEME_CSS__;
7055
+ if (!bundled)
7056
+ throw new NotFoundError2;
7057
+ return new Response(bundled, {
7058
+ headers: {
7059
+ "Content-Type": "text/css; charset=utf-8",
7060
+ "Cache-Control": cacheControl
7061
+ }
7062
+ });
7063
+ }
7050
7064
  function registerArtifactsRoutes(app, cwd, fileCache, options) {
7051
7065
  const { bundleMaxAge, directive, isWatchMode = false } = options;
7052
7066
  app.get("/.reroute/index.css", async ({ headers: headers2 }) => {
7053
7067
  const filePath = join(cwd, ".reroute", "index.css");
7054
7068
  const acceptEncoding = headers2["accept-encoding"] ?? "";
7055
- try {
7056
- const cacheControl = isWatchMode ? "no-cache, no-store, must-revalidate" : `${directive}, max-age=${bundleMaxAge}`;
7057
- if (isWatchMode) {
7069
+ const cacheControl = isWatchMode ? "no-cache, no-store, must-revalidate" : `${directive}, max-age=${bundleMaxAge}`;
7070
+ if (isWatchMode) {
7071
+ try {
7058
7072
  const { readFileSync } = await import("node:fs");
7059
7073
  const content2 = readFileSync(filePath);
7060
7074
  return new Response(content2, {
@@ -7063,11 +7077,20 @@ function registerArtifactsRoutes(app, cwd, fileCache, options) {
7063
7077
  "Cache-Control": cacheControl
7064
7078
  }
7065
7079
  });
7080
+ } catch {
7081
+ return bundledThemeCssResponse(cacheControl);
7066
7082
  }
7083
+ }
7084
+ try {
7067
7085
  return await serveFile(filePath, acceptEncoding, fileCache, {
7068
7086
  cacheControl
7069
7087
  });
7070
- } catch {}
7088
+ } catch (error) {
7089
+ if (error instanceof NotFoundError2) {
7090
+ return bundledThemeCssResponse(cacheControl);
7091
+ }
7092
+ throw error;
7093
+ }
7071
7094
  });
7072
7095
  app.get("/bundles/*", async ({ params, headers: headers2 }) => {
7073
7096
  const fileName = String(params["*"] ?? "").replace(/^\/+/, "");
@@ -10122,7 +10145,7 @@ var reroute = () => async (app) => {
10122
10145
  const getBundleUrl = isWatchMode ? readBundleUrl : async () => initialBundleUrl;
10123
10146
  const { loadCollections: loadCollections2, inlineThemeCSS: inlineThemeCSS2, loadIndexHtml: loadIndexHtml2 } = await Promise.resolve().then(() => (init_core(), exports_core));
10124
10147
  const startupCollections = await loadCollections2(cwd, isWatchMode);
10125
- const startupThemeCSS = await inlineThemeCSS2(clientDir, false, isWatchMode);
10148
+ const startupThemeCSS = await inlineThemeCSS2(clientDir, isWatchMode);
10126
10149
  const startupIndexHtml = await loadIndexHtml2(clientDir);
10127
10150
  const collectionsTtlMs = serverMaxAge * 1000;
10128
10151
  let collectionsCache = serverCacheEnabled ? { data: startupCollections, exp: Date.now() + collectionsTtlMs } : null;
@@ -10140,7 +10163,7 @@ var reroute = () => async (app) => {
10140
10163
  };
10141
10164
  return fresh;
10142
10165
  };
10143
- const getThemeCSS = isWatchMode ? () => inlineThemeCSS2(clientDir, false, isWatchMode) : async () => startupThemeCSS;
10166
+ const getThemeCSS = isWatchMode ? () => inlineThemeCSS2(clientDir, isWatchMode) : async () => startupThemeCSS;
10144
10167
  const getIndexHtml = isWatchMode ? () => loadIndexHtml2(clientDir) : async () => startupIndexHtml;
10145
10168
  if (globalConfig.redirects && globalConfig.redirects.length > 0) {
10146
10169
  registerRedirectRoutes(app, globalConfig.redirects);
@@ -10337,4 +10360,4 @@ export {
10337
10360
  reroute
10338
10361
  };
10339
10362
 
10340
- //# debugId=37C38450CA1BDD1364756E2164756E21
10363
+ //# debugId=78024E3217BF060B64756E2164756E21