reroute-js 0.34.9 → 0.36.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 (180) hide show
  1. package/README.md +1 -1
  2. package/cli/bin.d.ts +1 -1
  3. package/cli/bin.js +9 -6
  4. package/cli/bin.js.map +4 -4
  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 +5 -2
  36. package/core/index.js.map +4 -4
  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 +3 -1
  40. package/core/src/config.d.ts.map +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/index.d.ts +1 -1
  45. package/core/src/llms/extractor.d.ts +1 -1
  46. package/core/src/llms/formatter.d.ts +1 -1
  47. package/core/src/llms/full-generator.d.ts +1 -1
  48. package/core/src/llms/index-generator.d.ts +1 -1
  49. package/core/src/llms/index.d.ts +1 -1
  50. package/core/src/og/discovery.d.ts +1 -1
  51. package/core/src/og/index.d.ts +1 -1
  52. package/core/src/og/meta.d.ts +1 -1
  53. package/core/src/og/render.d.ts +1 -1
  54. package/core/src/og/types.d.ts +1 -1
  55. package/core/src/robots/discovery.d.ts +1 -1
  56. package/core/src/robots/discovery.d.ts.map +1 -1
  57. package/core/src/robots/generator.d.ts +1 -1
  58. package/core/src/robots/index.d.ts +1 -1
  59. package/core/src/robots/policies.d.ts +1 -1
  60. package/core/src/rss/discovery.d.ts +1 -1
  61. package/core/src/rss/generator.d.ts +1 -1
  62. package/core/src/rss/index.d.ts +1 -1
  63. package/core/src/sitemap/discovery.d.ts +1 -1
  64. package/core/src/sitemap/generator.d.ts +1 -1
  65. package/core/src/sitemap/index.d.ts +1 -1
  66. package/core/src/ssr/index.d.ts +1 -1
  67. package/core/src/ssr/lib/cache.d.ts +1 -1
  68. package/core/src/ssr/lib/collections.d.ts +1 -1
  69. package/core/src/ssr/lib/compression.d.ts +1 -1
  70. package/core/src/ssr/lib/compute/content.d.ts +1 -1
  71. package/core/src/ssr/lib/compute/index.d.ts +1 -1
  72. package/core/src/ssr/lib/compute/layouts.d.ts +1 -1
  73. package/core/src/ssr/lib/compute/routes.d.ts +1 -1
  74. package/core/src/ssr/lib/data.d.ts +1 -1
  75. package/core/src/ssr/lib/html.d.ts +1 -1
  76. package/core/src/ssr/lib/imports.d.ts +1 -1
  77. package/core/src/ssr/lib/index.d.ts +1 -1
  78. package/core/src/ssr/lib/layouts.d.ts +1 -1
  79. package/core/src/ssr/lib/metadata.d.ts +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/scripts/collections.d.ts +1 -1
  85. package/core/src/ssr/lib/scripts/data.d.ts +1 -1
  86. package/core/src/ssr/lib/scripts/escape.d.ts +1 -1
  87. package/core/src/ssr/lib/scripts/feeds.d.ts +1 -1
  88. package/core/src/ssr/lib/scripts/index.d.ts +1 -1
  89. package/core/src/ssr/lib/seed.d.ts +1 -1
  90. package/core/src/ssr/lib/serialize.d.ts +1 -1
  91. package/core/src/ssr/lib/setup.d.ts +1 -1
  92. package/core/src/ssr/lib/styles.d.ts +1 -1
  93. package/core/src/ssr/lib/template.d.ts +1 -1
  94. package/core/src/ssr/lib/types.d.ts +1 -1
  95. package/core/src/ssr/render.d.ts +1 -1
  96. package/core/src/ssr/stream.d.ts +1 -1
  97. package/elysia/index.d.ts +1 -1
  98. package/elysia/index.js +10 -3
  99. package/elysia/index.js.map +5 -5
  100. package/elysia/src/index.d.ts +1 -1
  101. package/elysia/src/libs/assets.d.ts +1 -1
  102. package/elysia/src/libs/cache.d.ts +1 -1
  103. package/elysia/src/libs/caching.d.ts +1 -1
  104. package/elysia/src/libs/http.d.ts +1 -1
  105. package/elysia/src/libs/image.d.ts +1 -1
  106. package/elysia/src/libs/index.d.ts +1 -1
  107. package/elysia/src/libs/llms.d.ts +1 -1
  108. package/elysia/src/libs/response.d.ts +1 -1
  109. package/elysia/src/libs/serving.d.ts +1 -1
  110. package/elysia/src/plugin.d.ts +1 -1
  111. package/elysia/src/routes/artifacts.d.ts +1 -1
  112. package/elysia/src/routes/content.d.ts +1 -1
  113. package/elysia/src/routes/image.d.ts +1 -1
  114. package/elysia/src/routes/index.d.ts +1 -1
  115. package/elysia/src/routes/internal.d.ts +1 -1
  116. package/elysia/src/routes/llms.d.ts +1 -1
  117. package/elysia/src/routes/og.d.ts +1 -1
  118. package/elysia/src/routes/redirects.d.ts +1 -1
  119. package/elysia/src/routes/redirects.d.ts.map +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 +1 -1
  128. package/react/index.d.ts +1 -1
  129. package/react/index.js +133 -21
  130. package/react/index.js.map +3 -3
  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 +62 -11
  141. package/react/src/hooks/useContent.d.ts.map +1 -1
  142. package/react/src/hooks/useData.d.ts +1 -1
  143. package/react/src/hooks/useFeed.d.ts +1 -1
  144. package/react/src/hooks/useLayoutData.d.ts +1 -1
  145. package/react/src/hooks/useLlms.d.ts +1 -1
  146. package/react/src/hooks/useNavigate.d.ts +1 -1
  147. package/react/src/hooks/useParams.d.ts +1 -1
  148. package/react/src/hooks/useRouter.d.ts +1 -1
  149. package/react/src/hooks/useSearch.d.ts +1 -1
  150. package/react/src/hooks/useSearchParams.d.ts +1 -1
  151. package/react/src/hooks/useToc.d.ts +1 -1
  152. package/react/src/index.d.ts +1 -1
  153. package/react/src/lib/collection.d.ts +1 -1
  154. package/react/src/lib/content.d.ts +1 -1
  155. package/react/src/lib/head.d.ts +1 -1
  156. package/react/src/lib/index.d.ts +1 -1
  157. package/react/src/lib/lazy-route.d.ts +1 -1
  158. package/react/src/lib/route-loader.d.ts +1 -1
  159. package/react/src/providers/ContentProvider.d.ts +1 -1
  160. package/react/src/providers/RerouteProvider.d.ts +1 -1
  161. package/react/src/providers/RouterProvider.d.ts +1 -1
  162. package/react/src/providers/index.d.ts +1 -1
  163. package/react/src/types/any.d.ts +1 -1
  164. package/react/src/types/index.d.ts +1 -1
  165. package/react/src/types/router.d.ts +1 -1
  166. package/telemetry/react.d.ts +1 -1
  167. package/telemetry/react.js +2 -2
  168. package/telemetry/react.js.map +1 -1
  169. package/telemetry/server.d.ts +1 -1
  170. package/telemetry/server.js +2 -2
  171. package/telemetry/server.js.map +3 -3
  172. package/telemetry/src/react/api.d.ts +1 -1
  173. package/telemetry/src/react/context.d.ts +1 -1
  174. package/telemetry/src/react/index.d.ts +1 -1
  175. package/telemetry/src/react/telemetry.d.ts +1 -1
  176. package/telemetry/src/server/context.d.ts +1 -1
  177. package/telemetry/src/server/index.d.ts +1 -1
  178. package/telemetry/src/server/instrumentation.d.ts +1 -1
  179. package/telemetry/src/server/plugin.d.ts +1 -1
  180. package/telemetry/src/server/sourcemap.d.ts +1 -1
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v0.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.0
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2025 stewones <hi@stewan.io>
@@ -1 +1 @@
1
- {"version":3,"file":"redirects.d.ts","sourceRoot":"","sources":["../../../../../../packages/elysia/src/routes/redirects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAqEpD;;;GAGG;AACH,wBAAgB,sBAAsB,CACrC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,EAAE,GACnB,MAAM,CAgGR"}
1
+ {"version":3,"file":"redirects.d.ts","sourceRoot":"","sources":["../../../../../../packages/elysia/src/routes/redirects.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAqEpD;;;GAGG;AACH,wBAAgB,sBAAsB,CACrC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,YAAY,EAAE,GACnB,MAAM,CAuGR"}
@@ -1,5 +1,5 @@
1
1
  /**
2
- * reroute-js v0.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9",
3
+ "version": "0.36.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.34.9
2
+ * reroute-js v0.36.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.34.9
2
+ * reroute-js v0.36.0
3
3
  *
4
4
  * @license MIT
5
5
  * @copyright 2025 stewones <hi@stewan.io>
@@ -670,6 +670,44 @@ function sortByDate(order) {
670
670
  return order === "asc" ? da - db : db - da;
671
671
  };
672
672
  }
673
+ function compareForSort(a, b) {
674
+ if (a == null && b == null)
675
+ return 0;
676
+ if (a == null)
677
+ return 1;
678
+ if (b == null)
679
+ return -1;
680
+ if (typeof a === "string" && typeof b === "string") {
681
+ const dateA = Date.parse(a);
682
+ const dateB = Date.parse(b);
683
+ if (!(Number.isNaN(dateA) || Number.isNaN(dateB))) {
684
+ return dateA - dateB;
685
+ }
686
+ }
687
+ if (a instanceof Date && b instanceof Date) {
688
+ return a.getTime() - b.getTime();
689
+ }
690
+ if (typeof a === "number" && typeof b === "number") {
691
+ return a - b;
692
+ }
693
+ return String(a).localeCompare(String(b));
694
+ }
695
+ function createSortFunction(sortSpec) {
696
+ const fields = Object.keys(sortSpec);
697
+ return (a, b) => {
698
+ for (const field of fields) {
699
+ const direction = sortSpec[field];
700
+ const multiplier = direction === -1 || direction === "desc" ? -1 : 1;
701
+ const aVal = getNestedValue(a, field);
702
+ const bVal = getNestedValue(b, field);
703
+ const comparison = compareForSort(aVal, bVal);
704
+ if (comparison !== 0) {
705
+ return comparison * multiplier;
706
+ }
707
+ }
708
+ return 0;
709
+ };
710
+ }
673
711
  function getNestedValue(obj, path) {
674
712
  const parts = path.split(".");
675
713
  let current = obj;
@@ -680,26 +718,98 @@ function getNestedValue(obj, path) {
680
718
  }
681
719
  return current;
682
720
  }
683
- function applyFilter(items, filter) {
684
- if (!filter)
685
- return items;
721
+ function compareValues(itemValue, operator, filterValue) {
722
+ const normalize = (val) => {
723
+ if (val == null)
724
+ return null;
725
+ if (val instanceof Date)
726
+ return val.getTime();
727
+ if (typeof val === "string") {
728
+ const date = Date.parse(val);
729
+ if (!Number.isNaN(date))
730
+ return date;
731
+ }
732
+ return val;
733
+ };
734
+ const normalizedItem = normalize(itemValue);
735
+ const normalizedFilter = normalize(filterValue);
736
+ switch (operator) {
737
+ case "$gt":
738
+ return normalizedItem != null && normalizedItem > normalizedFilter;
739
+ case "$gte":
740
+ return normalizedItem != null && normalizedItem >= normalizedFilter;
741
+ case "$lt":
742
+ return normalizedItem != null && normalizedItem < normalizedFilter;
743
+ case "$lte":
744
+ return normalizedItem != null && normalizedItem <= normalizedFilter;
745
+ case "$eq":
746
+ return itemValue === filterValue;
747
+ case "$ne":
748
+ return itemValue !== filterValue;
749
+ case "$in":
750
+ return Array.isArray(filterValue) && filterValue.includes(itemValue);
751
+ case "$nin":
752
+ return Array.isArray(filterValue) && !filterValue.includes(itemValue);
753
+ case "$regex": {
754
+ const regex = filterValue instanceof RegExp ? filterValue : new RegExp(filterValue);
755
+ return regex.test(String(itemValue ?? ""));
756
+ }
757
+ case "$exists":
758
+ return filterValue ? itemValue !== undefined : itemValue === undefined;
759
+ default:
760
+ return false;
761
+ }
762
+ }
763
+ function isOperatorObject(value) {
764
+ if (typeof value !== "object" || value === null || value instanceof RegExp || value instanceof Date) {
765
+ return false;
766
+ }
767
+ const keys = Object.keys(value);
768
+ return keys.length > 0 && keys.every((k) => k.startsWith("$"));
769
+ }
770
+ function matchesFilter(item, filter) {
686
771
  if (typeof filter === "function") {
687
- return items.filter(filter);
772
+ return filter(item);
688
773
  }
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 ?? ""))) {
774
+ if ("$and" in filter && Array.isArray(filter.$and)) {
775
+ return filter.$and.every((f) => matchesFilter(item, f));
776
+ }
777
+ if ("$or" in filter && Array.isArray(filter.$or)) {
778
+ return filter.$or.some((f) => matchesFilter(item, f));
779
+ }
780
+ if ("$not" in filter && filter.$not) {
781
+ return !matchesFilter(item, filter.$not);
782
+ }
783
+ for (const key in filter) {
784
+ if (key === "$and" || key === "$or" || key === "$not")
785
+ continue;
786
+ const filterValue = filter[key];
787
+ const itemValue = getNestedValue(item, key);
788
+ if (filterValue instanceof RegExp) {
789
+ if (!filterValue.test(String(itemValue ?? ""))) {
790
+ return false;
791
+ }
792
+ continue;
793
+ }
794
+ if (isOperatorObject(filterValue)) {
795
+ for (const operator in filterValue) {
796
+ const opValue = filterValue[operator];
797
+ if (!compareValues(itemValue, operator, opValue)) {
695
798
  return false;
696
799
  }
697
- } else if (itemValue !== filterValue) {
698
- return false;
699
800
  }
801
+ continue;
700
802
  }
701
- return true;
702
- });
803
+ if (itemValue !== filterValue) {
804
+ return false;
805
+ }
806
+ }
807
+ return true;
808
+ }
809
+ function applyFilter(items, filter) {
810
+ if (!filter)
811
+ return items;
812
+ return items.filter((item) => matchesFilter(item, filter));
703
813
  }
704
814
  function prefetchContent(entry) {
705
815
  if (typeof window === "undefined")
@@ -866,12 +976,14 @@ function useContent(params) {
866
976
  return [];
867
977
  let cloned = [...list];
868
978
  cloned = applyFilter(cloned, filter);
869
- if (typeof sort === "function")
979
+ if (typeof sort === "function") {
870
980
  cloned = cloned.sort(sort);
871
- else if (typeof sort === "string") {
872
- cloned = cloned.sort(sortByDate(sort === "date-asc" ? "asc" : "desc"));
873
- } else if (sort && typeof sort === "object" && sort.date) {
874
- cloned = cloned.sort(sortByDate(sort.date === "asc" ? "asc" : "desc"));
981
+ } else if (sort && typeof sort === "object") {
982
+ if ("date" in sort && Object.keys(sort).length === 1) {
983
+ cloned = cloned.sort(sortByDate(sort.date === "asc" ? "asc" : "desc"));
984
+ } else {
985
+ cloned = cloned.sort(createSortFunction(sort));
986
+ }
875
987
  }
876
988
  if (typeof limit === "number" && limit >= 0)
877
989
  cloned = cloned.slice(0, limit);
@@ -2992,4 +3104,4 @@ export {
2992
3104
  ClientOnly
2993
3105
  };
2994
3106
 
2995
- //# debugId=526B8132F470F65964756E2164756E21
3107
+ //# debugId=1E8A8CF30C6A18AA64756E2164756E21