reroute-js 0.35.0 → 0.36.1

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 (178) hide show
  1. package/README.md +1 -1
  2. package/cli/bin.d.ts +1 -1
  3. package/cli/bin.js +46 -10
  4. package/cli/bin.js.map +3 -3
  5. package/cli/index.d.ts +1 -1
  6. package/cli/index.js +4 -4
  7. package/cli/index.js.map +1 -1
  8. package/cli/src/cli.d.ts +1 -1
  9. package/cli/src/commands/analyze.d.ts +1 -1
  10. package/cli/src/commands/build.d.ts +1 -1
  11. package/cli/src/commands/dev.d.ts +1 -1
  12. package/cli/src/commands/gen.d.ts +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 +42 -6
  36. package/core/index.js.map +3 -3
  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 +1 -1
  70. package/core/src/ssr/lib/compute/layouts.d.ts +1 -1
  71. package/core/src/ssr/lib/compute/routes.d.ts +1 -1
  72. package/core/src/ssr/lib/data.d.ts +1 -1
  73. package/core/src/ssr/lib/html.d.ts +1 -1
  74. package/core/src/ssr/lib/imports.d.ts +1 -1
  75. package/core/src/ssr/lib/index.d.ts +1 -1
  76. package/core/src/ssr/lib/layouts.d.ts +1 -1
  77. package/core/src/ssr/lib/metadata.d.ts +1 -1
  78. package/core/src/ssr/lib/mime.d.ts +1 -1
  79. package/core/src/ssr/lib/modules.d.ts +1 -1
  80. package/core/src/ssr/lib/path.d.ts +1 -1
  81. package/core/src/ssr/lib/preload.d.ts +1 -1
  82. package/core/src/ssr/lib/scripts/collections.d.ts +1 -1
  83. package/core/src/ssr/lib/scripts/collections.d.ts.map +1 -1
  84. package/core/src/ssr/lib/scripts/data.d.ts +1 -1
  85. package/core/src/ssr/lib/scripts/escape.d.ts +1 -1
  86. package/core/src/ssr/lib/scripts/feeds.d.ts +1 -1
  87. package/core/src/ssr/lib/scripts/index.d.ts +1 -1
  88. package/core/src/ssr/lib/seed.d.ts +1 -1
  89. package/core/src/ssr/lib/serialize.d.ts +1 -1
  90. package/core/src/ssr/lib/setup.d.ts +1 -1
  91. package/core/src/ssr/lib/styles.d.ts +1 -1
  92. package/core/src/ssr/lib/template.d.ts +1 -1
  93. package/core/src/ssr/lib/types.d.ts +1 -1
  94. package/core/src/ssr/render.d.ts +1 -1
  95. package/core/src/ssr/stream.d.ts +1 -1
  96. package/elysia/index.d.ts +1 -1
  97. package/elysia/index.js +42 -6
  98. package/elysia/index.js.map +3 -3
  99. package/elysia/src/index.d.ts +1 -1
  100. package/elysia/src/libs/assets.d.ts +1 -1
  101. package/elysia/src/libs/cache.d.ts +1 -1
  102. package/elysia/src/libs/caching.d.ts +1 -1
  103. package/elysia/src/libs/http.d.ts +1 -1
  104. package/elysia/src/libs/image.d.ts +1 -1
  105. package/elysia/src/libs/index.d.ts +1 -1
  106. package/elysia/src/libs/llms.d.ts +1 -1
  107. package/elysia/src/libs/response.d.ts +1 -1
  108. package/elysia/src/libs/serving.d.ts +1 -1
  109. package/elysia/src/plugin.d.ts +1 -1
  110. package/elysia/src/routes/artifacts.d.ts +1 -1
  111. package/elysia/src/routes/content.d.ts +1 -1
  112. package/elysia/src/routes/image.d.ts +1 -1
  113. package/elysia/src/routes/index.d.ts +1 -1
  114. package/elysia/src/routes/internal.d.ts +1 -1
  115. package/elysia/src/routes/llms.d.ts +1 -1
  116. package/elysia/src/routes/og.d.ts +1 -1
  117. package/elysia/src/routes/redirects.d.ts +1 -1
  118. package/elysia/src/routes/robots.d.ts +1 -1
  119. package/elysia/src/routes/rss.d.ts +1 -1
  120. package/elysia/src/routes/search.d.ts +1 -1
  121. package/elysia/src/routes/sitemap.d.ts +1 -1
  122. package/elysia/src/routes/ssr.d.ts +1 -1
  123. package/elysia/src/routes/static.d.ts +1 -1
  124. package/elysia/src/types.d.ts +1 -1
  125. package/package.json +1 -1
  126. package/react/index.d.ts +1 -1
  127. package/react/index.js +152 -33
  128. package/react/index.js.map +3 -3
  129. package/react/src/components/ClientOnly.d.ts +1 -1
  130. package/react/src/components/ContentRoute.d.ts +1 -1
  131. package/react/src/components/Image.d.ts +1 -1
  132. package/react/src/components/LazyRoute.d.ts +1 -1
  133. package/react/src/components/Link.d.ts +1 -1
  134. package/react/src/components/Markdown.d.ts +1 -1
  135. package/react/src/components/Outlet.d.ts +1 -1
  136. package/react/src/components/index.d.ts +1 -1
  137. package/react/src/hooks/index.d.ts +1 -1
  138. package/react/src/hooks/useContent.d.ts +62 -11
  139. package/react/src/hooks/useContent.d.ts.map +1 -1
  140. package/react/src/hooks/useData.d.ts +1 -1
  141. package/react/src/hooks/useFeed.d.ts +1 -1
  142. package/react/src/hooks/useLayoutData.d.ts +1 -1
  143. package/react/src/hooks/useLlms.d.ts +1 -1
  144. package/react/src/hooks/useNavigate.d.ts +1 -1
  145. package/react/src/hooks/useParams.d.ts +1 -1
  146. package/react/src/hooks/useRouter.d.ts +1 -1
  147. package/react/src/hooks/useSearch.d.ts +1 -1
  148. package/react/src/hooks/useSearchParams.d.ts +1 -1
  149. package/react/src/hooks/useToc.d.ts +1 -1
  150. package/react/src/index.d.ts +1 -1
  151. package/react/src/lib/collection.d.ts +1 -1
  152. package/react/src/lib/content.d.ts +1 -1
  153. package/react/src/lib/head.d.ts +1 -1
  154. package/react/src/lib/index.d.ts +1 -1
  155. package/react/src/lib/lazy-route.d.ts +1 -1
  156. package/react/src/lib/route-loader.d.ts +1 -1
  157. package/react/src/providers/ContentProvider.d.ts +1 -1
  158. package/react/src/providers/RerouteProvider.d.ts +1 -1
  159. package/react/src/providers/RouterProvider.d.ts +1 -1
  160. package/react/src/providers/index.d.ts +1 -1
  161. package/react/src/types/any.d.ts +1 -1
  162. package/react/src/types/index.d.ts +1 -1
  163. package/react/src/types/router.d.ts +1 -1
  164. package/telemetry/react.d.ts +1 -1
  165. package/telemetry/react.js +2 -2
  166. package/telemetry/react.js.map +1 -1
  167. package/telemetry/server.d.ts +1 -1
  168. package/telemetry/server.js +2 -2
  169. package/telemetry/server.js.map +1 -1
  170. package/telemetry/src/react/api.d.ts +1 -1
  171. package/telemetry/src/react/context.d.ts +1 -1
  172. package/telemetry/src/react/index.d.ts +1 -1
  173. package/telemetry/src/react/telemetry.d.ts +1 -1
  174. package/telemetry/src/server/context.d.ts +1 -1
  175. package/telemetry/src/server/index.d.ts +1 -1
  176. package/telemetry/src/server/instrumentation.d.ts +1 -1
  177. package/telemetry/src/server/plugin.d.ts +1 -1
  178. package/telemetry/src/server/sourcemap.d.ts +1 -1
package/README.md CHANGED
@@ -111,7 +111,7 @@ Reroute is a feature-rich file-based routing framework for building fullstack Re
111
111
  - `useSearchParams()` - Query string manipulation
112
112
  - `useRouter()` - Access router state and utilities
113
113
  - 📚 **Content Hooks**:
114
- - `useContent()` - Load and manage content collections with sorting
114
+ - `useContent()` - Load and manage content collections with MongoDB-style filtering and sorting
115
115
  - `useFeed()` - Discover RSS feed URLs for current route
116
116
  - `useLlms()` - Discover LLM-friendly content URLs for current route
117
117
  - `useSearch()` - Client-side content search with debouncing
package/cli/bin.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v0.35.0
2
+ * reroute-js v0.36.1
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.35.0
4
+ * reroute-js v0.36.1
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.35.0";
51
+ return "0.36.1";
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 "e2f562f";
69
+ return "9c4be7f";
70
70
  }
71
71
  return "dev";
72
72
  }
@@ -2431,6 +2431,29 @@ function applySortingAndLimit(full, conf, sortByDate) {
2431
2431
  if (!Number.isFinite(conf.limit) || conf.limit <= 0 || conf.sort === "custom") {
2432
2432
  return full;
2433
2433
  }
2434
+ const trackedSlugs = conf.slugs || new Set;
2435
+ const hasTrackedSlugs = trackedSlugs.size > 0;
2436
+ if (hasTrackedSlugs) {
2437
+ const tracked = [];
2438
+ const nonTracked = [];
2439
+ for (const item of full) {
2440
+ const doc = item;
2441
+ if (doc.slug && trackedSlugs.has(doc.slug)) {
2442
+ tracked.push(item);
2443
+ } else {
2444
+ nonTracked.push(item);
2445
+ }
2446
+ }
2447
+ let limitedNonTracked = nonTracked;
2448
+ if (conf.sort === "date-desc") {
2449
+ limitedNonTracked = [...nonTracked].sort(sortByDate("desc")).slice(0, conf.limit);
2450
+ } else if (conf.sort === "date-asc") {
2451
+ limitedNonTracked = [...nonTracked].sort(sortByDate("asc")).slice(0, conf.limit);
2452
+ } else if (conf.sort === "none") {
2453
+ limitedNonTracked = nonTracked.slice(0, conf.limit);
2454
+ }
2455
+ return [...tracked, ...limitedNonTracked];
2456
+ }
2434
2457
  if (conf.sort === "date-desc") {
2435
2458
  return [...full].sort(sortByDate("desc")).slice(0, conf.limit);
2436
2459
  }
@@ -2476,6 +2499,7 @@ function parseAccessTracking(accessedCollections) {
2476
2499
  limit: typeof v?.limit === "number" ? v.limit : Number.POSITIVE_INFINITY,
2477
2500
  sort: typeof v?.sort === "string" ? v.sort : "custom",
2478
2501
  slugs: v?.slugs instanceof Set ? v.slugs : undefined,
2502
+ accessedItems: v?.accessedItems instanceof Set ? v.accessedItems : undefined,
2479
2503
  fields: v?.fields === "all" || v?.fields instanceof Set ? v.fields : "all"
2480
2504
  };
2481
2505
  }
@@ -2495,10 +2519,22 @@ function processCollections(accessedCollections, byCollectionForSSR) {
2495
2519
  for (const c of collections) {
2496
2520
  const conf = usage[c];
2497
2521
  const full = byCollectionForSSR?.[c] || [];
2498
- let arr = applySortingAndLimit(full, conf, sortByDate);
2499
- arr = applyFieldStripping(arr, conf.fields || "all", conf.slugs);
2500
- subset[c] = arr;
2501
- partial[c] = shouldMarkAsPartial(arr, full, conf.fields || "all");
2522
+ if (conf.accessedItems && conf.accessedItems.size > 0) {
2523
+ const accessedSet = conf.accessedItems;
2524
+ let arr = full.filter((item) => {
2525
+ const doc = item;
2526
+ const key = doc.name || doc.slug;
2527
+ return key && accessedSet.has(key);
2528
+ });
2529
+ arr = applyFieldStripping(arr, conf.fields || "all", conf.slugs);
2530
+ subset[c] = arr;
2531
+ partial[c] = arr.length < full.length || conf.fields !== "all";
2532
+ } else {
2533
+ let arr = applySortingAndLimit(full, { ...conf, slugs: conf.slugs }, sortByDate);
2534
+ arr = applyFieldStripping(arr, conf.fields || "all", conf.slugs);
2535
+ subset[c] = arr;
2536
+ partial[c] = shouldMarkAsPartial(arr, full, conf.fields || "all");
2537
+ }
2502
2538
  }
2503
2539
  return { subset, partial };
2504
2540
  }
@@ -105584,7 +105620,7 @@ async function getVersionString2() {
105584
105620
  }
105585
105621
  async function getVersion2() {
105586
105622
  if (true) {
105587
- return "0.35.0";
105623
+ return "0.36.1";
105588
105624
  }
105589
105625
  const possiblePaths = [
105590
105626
  path3.join(import.meta.dir, "../../../package.json"),
@@ -105601,10 +105637,10 @@ async function getVersion2() {
105601
105637
  }
105602
105638
  async function getCommit2() {
105603
105639
  if (true) {
105604
- return "e2f562f";
105640
+ return "9c4be7f";
105605
105641
  }
105606
105642
  return "dev";
105607
105643
  }
105608
105644
  main();
105609
105645
 
105610
- //# debugId=264E24008D5581A464756E2164756E21
105646
+ //# debugId=1745292A918C779664756E2164756E21