reroute-js 0.32.0 → 0.33.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 (176) hide show
  1. package/cli/bin.d.ts +1 -1
  2. package/cli/bin.js +6 -6
  3. package/cli/bin.js.map +1 -1
  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/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/tailwind.d.ts +1 -1
  28. package/cli/src/commands/lib/terminal-ui.d.ts +1 -1
  29. package/cli/src/commands/lib/version.d.ts +1 -1
  30. package/cli/src/commands/og.d.ts +1 -1
  31. package/cli/src/commands/start.d.ts +1 -1
  32. package/cli/src/index.d.ts +1 -1
  33. package/core/index.d.ts +1 -1
  34. package/core/index.js +2 -2
  35. package/core/index.js.map +1 -1
  36. package/core/src/bundler/hash.d.ts +1 -1
  37. package/core/src/bundler/index.d.ts +1 -1
  38. package/core/src/config.d.ts +1 -1
  39. package/core/src/content/discovery.d.ts +1 -1
  40. package/core/src/content/index.d.ts +1 -1
  41. package/core/src/content/metadata.d.ts +1 -1
  42. package/core/src/index.d.ts +1 -1
  43. package/core/src/llms/extractor.d.ts +1 -1
  44. package/core/src/llms/formatter.d.ts +1 -1
  45. package/core/src/llms/full-generator.d.ts +1 -1
  46. package/core/src/llms/index-generator.d.ts +1 -1
  47. package/core/src/llms/index.d.ts +1 -1
  48. package/core/src/og/discovery.d.ts +1 -1
  49. package/core/src/og/index.d.ts +1 -1
  50. package/core/src/og/meta.d.ts +1 -1
  51. package/core/src/og/render.d.ts +1 -1
  52. package/core/src/og/types.d.ts +1 -1
  53. package/core/src/robots/discovery.d.ts +1 -1
  54. package/core/src/robots/generator.d.ts +1 -1
  55. package/core/src/robots/index.d.ts +1 -1
  56. package/core/src/robots/policies.d.ts +1 -1
  57. package/core/src/rss/discovery.d.ts +1 -1
  58. package/core/src/rss/generator.d.ts +1 -1
  59. package/core/src/rss/index.d.ts +1 -1
  60. package/core/src/sitemap/discovery.d.ts +1 -1
  61. package/core/src/sitemap/generator.d.ts +1 -1
  62. package/core/src/sitemap/index.d.ts +1 -1
  63. package/core/src/ssr/index.d.ts +1 -1
  64. package/core/src/ssr/lib/cache.d.ts +1 -1
  65. package/core/src/ssr/lib/collections.d.ts +1 -1
  66. package/core/src/ssr/lib/compression.d.ts +1 -1
  67. package/core/src/ssr/lib/compute/content.d.ts +1 -1
  68. package/core/src/ssr/lib/compute/index.d.ts +1 -1
  69. package/core/src/ssr/lib/compute/layouts.d.ts +1 -1
  70. package/core/src/ssr/lib/compute/routes.d.ts +1 -1
  71. package/core/src/ssr/lib/data.d.ts +1 -1
  72. package/core/src/ssr/lib/html.d.ts +1 -1
  73. package/core/src/ssr/lib/imports.d.ts +1 -1
  74. package/core/src/ssr/lib/index.d.ts +1 -1
  75. package/core/src/ssr/lib/layouts.d.ts +1 -1
  76. package/core/src/ssr/lib/metadata.d.ts +1 -1
  77. package/core/src/ssr/lib/mime.d.ts +1 -1
  78. package/core/src/ssr/lib/modules.d.ts +1 -1
  79. package/core/src/ssr/lib/path.d.ts +1 -1
  80. package/core/src/ssr/lib/preload.d.ts +1 -1
  81. package/core/src/ssr/lib/scripts/collections.d.ts +1 -1
  82. package/core/src/ssr/lib/scripts/data.d.ts +1 -1
  83. package/core/src/ssr/lib/scripts/escape.d.ts +1 -1
  84. package/core/src/ssr/lib/scripts/feeds.d.ts +1 -1
  85. package/core/src/ssr/lib/scripts/index.d.ts +1 -1
  86. package/core/src/ssr/lib/seed.d.ts +1 -1
  87. package/core/src/ssr/lib/serialize.d.ts +1 -1
  88. package/core/src/ssr/lib/setup.d.ts +1 -1
  89. package/core/src/ssr/lib/styles.d.ts +1 -1
  90. package/core/src/ssr/lib/template.d.ts +1 -1
  91. package/core/src/ssr/lib/types.d.ts +1 -1
  92. package/core/src/ssr/render.d.ts +1 -1
  93. package/core/src/ssr/stream.d.ts +1 -1
  94. package/elysia/index.d.ts +1 -1
  95. package/elysia/index.js +2 -2
  96. package/elysia/index.js.map +1 -1
  97. package/elysia/src/index.d.ts +1 -1
  98. package/elysia/src/libs/assets.d.ts +1 -1
  99. package/elysia/src/libs/cache.d.ts +1 -1
  100. package/elysia/src/libs/caching.d.ts +1 -1
  101. package/elysia/src/libs/http.d.ts +1 -1
  102. package/elysia/src/libs/image.d.ts +1 -1
  103. package/elysia/src/libs/index.d.ts +1 -1
  104. package/elysia/src/libs/llms.d.ts +1 -1
  105. package/elysia/src/libs/response.d.ts +1 -1
  106. package/elysia/src/libs/serving.d.ts +1 -1
  107. package/elysia/src/plugin.d.ts +1 -1
  108. package/elysia/src/routes/artifacts.d.ts +1 -1
  109. package/elysia/src/routes/content.d.ts +1 -1
  110. package/elysia/src/routes/image.d.ts +1 -1
  111. package/elysia/src/routes/index.d.ts +1 -1
  112. package/elysia/src/routes/internal.d.ts +1 -1
  113. package/elysia/src/routes/llms.d.ts +1 -1
  114. package/elysia/src/routes/og.d.ts +1 -1
  115. package/elysia/src/routes/redirects.d.ts +1 -1
  116. package/elysia/src/routes/robots.d.ts +1 -1
  117. package/elysia/src/routes/rss.d.ts +1 -1
  118. package/elysia/src/routes/search.d.ts +1 -1
  119. package/elysia/src/routes/sitemap.d.ts +1 -1
  120. package/elysia/src/routes/ssr.d.ts +1 -1
  121. package/elysia/src/routes/static.d.ts +1 -1
  122. package/elysia/src/types.d.ts +1 -1
  123. package/package.json +1 -1
  124. package/react/index.d.ts +1 -1
  125. package/react/index.js +44 -8
  126. package/react/index.js.map +3 -3
  127. package/react/src/components/ClientOnly.d.ts +1 -1
  128. package/react/src/components/ContentRoute.d.ts +1 -1
  129. package/react/src/components/Image.d.ts +1 -1
  130. package/react/src/components/LazyRoute.d.ts +1 -1
  131. package/react/src/components/Link.d.ts +1 -1
  132. package/react/src/components/Markdown.d.ts +1 -1
  133. package/react/src/components/Outlet.d.ts +1 -1
  134. package/react/src/components/index.d.ts +1 -1
  135. package/react/src/hooks/index.d.ts +1 -1
  136. package/react/src/hooks/useContent.d.ts +23 -9
  137. package/react/src/hooks/useContent.d.ts.map +1 -1
  138. package/react/src/hooks/useData.d.ts +1 -1
  139. package/react/src/hooks/useFeed.d.ts +1 -1
  140. package/react/src/hooks/useLayoutData.d.ts +1 -1
  141. package/react/src/hooks/useLlms.d.ts +1 -1
  142. package/react/src/hooks/useNavigate.d.ts +1 -1
  143. package/react/src/hooks/useParams.d.ts +1 -1
  144. package/react/src/hooks/useRouter.d.ts +1 -1
  145. package/react/src/hooks/useSearch.d.ts +1 -1
  146. package/react/src/hooks/useSearchParams.d.ts +1 -1
  147. package/react/src/hooks/useToc.d.ts +1 -1
  148. package/react/src/index.d.ts +1 -1
  149. package/react/src/lib/collection.d.ts +1 -1
  150. package/react/src/lib/content.d.ts +1 -1
  151. package/react/src/lib/head.d.ts +1 -1
  152. package/react/src/lib/index.d.ts +1 -1
  153. package/react/src/lib/lazy-route.d.ts +1 -1
  154. package/react/src/lib/route-loader.d.ts +1 -1
  155. package/react/src/providers/ContentProvider.d.ts +1 -1
  156. package/react/src/providers/RerouteProvider.d.ts +1 -1
  157. package/react/src/providers/RouterProvider.d.ts +1 -1
  158. package/react/src/providers/index.d.ts +1 -1
  159. package/react/src/types/any.d.ts +1 -1
  160. package/react/src/types/index.d.ts +1 -1
  161. package/react/src/types/router.d.ts +1 -1
  162. package/telemetry/react.d.ts +1 -1
  163. package/telemetry/react.js +2 -2
  164. package/telemetry/react.js.map +1 -1
  165. package/telemetry/server.d.ts +1 -1
  166. package/telemetry/server.js +2 -2
  167. package/telemetry/server.js.map +1 -1
  168. package/telemetry/src/react/api.d.ts +1 -1
  169. package/telemetry/src/react/context.d.ts +1 -1
  170. package/telemetry/src/react/index.d.ts +1 -1
  171. package/telemetry/src/react/telemetry.d.ts +1 -1
  172. package/telemetry/src/server/context.d.ts +1 -1
  173. package/telemetry/src/server/index.d.ts +1 -1
  174. package/telemetry/src/server/instrumentation.d.ts +1 -1
  175. package/telemetry/src/server/plugin.d.ts +1 -1
  176. package/telemetry/src/server/sourcemap.d.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v0.32.0
2
+ * reroute-js v0.33.0
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2025 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v0.32.0
2
+ * reroute-js v0.33.0
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2025 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v0.32.0
2
+ * reroute-js v0.33.0
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2025 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v0.32.0
2
+ * reroute-js v0.33.0
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2025 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v0.32.0
2
+ * reroute-js v0.33.0
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2025 stewones <hi@stewan.io>
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v0.32.0
2
+ * reroute-js v0.33.0
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2025 stewones <hi@stewan.io>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "reroute-js",
3
- "version": "0.32.0",
3
+ "version": "0.33.0",
4
4
  "type": "module",
5
5
  "author": "stewones <hi@stewan.io>",
6
6
  "scripts": {
package/react/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v0.32.0
2
+ * reroute-js v0.33.0
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2025 stewones <hi@stewan.io>
package/react/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v0.32.0
2
+ * reroute-js v0.33.0
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2025 stewones <hi@stewan.io>
@@ -670,6 +670,37 @@ function sortByDate(order) {
670
670
  return order === "asc" ? da - db : db - da;
671
671
  };
672
672
  }
673
+ function getNestedValue(obj, path) {
674
+ const parts = path.split(".");
675
+ let current = obj;
676
+ for (const part of parts) {
677
+ if (current == null)
678
+ return;
679
+ current = current[part];
680
+ }
681
+ return current;
682
+ }
683
+ function applyFilter(items, filter) {
684
+ if (!filter)
685
+ return items;
686
+ if (typeof filter === "function") {
687
+ return items.filter(filter);
688
+ }
689
+ return items.filter((item) => {
690
+ for (const key in filter) {
691
+ const filterValue = filter[key];
692
+ const itemValue = getNestedValue(item, key);
693
+ if (filterValue instanceof RegExp) {
694
+ if (!filterValue.test(String(itemValue ?? ""))) {
695
+ return false;
696
+ }
697
+ } else if (itemValue !== filterValue) {
698
+ return false;
699
+ }
700
+ }
701
+ return true;
702
+ });
703
+ }
673
704
  function prefetchContent(entry) {
674
705
  if (typeof window === "undefined")
675
706
  return;
@@ -737,10 +768,13 @@ function useContent(params) {
737
768
  existing.sort = existing.sort && existing.sort !== sortKey ? "custom" : existing.sort || sortKey;
738
769
  const requested = typeof limit === "number" && limit > 0 ? limit : Infinity;
739
770
  existing.limit = Math.max(existing.limit || 0, requested);
740
- if (filter?.slug) {
741
- if (!existing.slugs)
742
- existing.slugs = new Set;
743
- existing.slugs.add(filter.slug);
771
+ if (filter && typeof filter === "object" && !Array.isArray(filter)) {
772
+ const filterSlug = filter.slug;
773
+ if (typeof filterSlug === "string") {
774
+ if (!existing.slugs)
775
+ existing.slugs = new Set;
776
+ existing.slugs.add(filterSlug);
777
+ }
744
778
  }
745
779
  if (fields) {
746
780
  if (existing.fields !== "all") {
@@ -809,7 +843,8 @@ function useContent(params) {
809
843
  const have = index?.[collection];
810
844
  const w = typeof window !== "undefined" ? window : undefined;
811
845
  const partial = Boolean(w?.__REROUTE_COLLECTIONS_PARTIAL__?.[collection]);
812
- const needsFullItem = filter?.slug && partial && fields;
846
+ const filterSlug = filter && typeof filter === "object" && !Array.isArray(filter) ? filter.slug : undefined;
847
+ const needsFullItem = typeof filterSlug === "string" && partial && fields;
813
848
  if (!have || needsFullItem || partial && (!limit || typeof limit === "number" && have.length < limit)) {
814
849
  if (loadCollection)
815
850
  await loadCollection(collection);
@@ -830,6 +865,7 @@ function useContent(params) {
830
865
  if (!Array.isArray(list) || list.length === 0)
831
866
  return [];
832
867
  let cloned = [...list];
868
+ cloned = applyFilter(cloned, filter);
833
869
  if (typeof sort === "function")
834
870
  cloned = cloned.sort(sort);
835
871
  else if (typeof sort === "string") {
@@ -840,7 +876,7 @@ function useContent(params) {
840
876
  if (typeof limit === "number" && limit >= 0)
841
877
  cloned = cloned.slice(0, limit);
842
878
  return cloned;
843
- }, [index, collection, sort, limit]);
879
+ }, [index, collection, sort, limit, filter]);
844
880
  useEffect3(() => {
845
881
  if (typeof window === "undefined")
846
882
  return;
@@ -2956,4 +2992,4 @@ export {
2956
2992
  ClientOnly
2957
2993
  };
2958
2994
 
2959
- //# debugId=D860F91701CF96CF64756E2164756E21
2995
+ //# debugId=30204AC73F12983864756E2164756E21