reroute-js 0.35.0 → 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.
- package/README.md +1 -1
- package/cli/bin.d.ts +1 -1
- package/cli/bin.js +6 -6
- package/cli/bin.js.map +1 -1
- package/cli/index.d.ts +1 -1
- package/cli/index.js +4 -4
- package/cli/index.js.map +1 -1
- package/cli/src/cli.d.ts +1 -1
- package/cli/src/commands/analyze.d.ts +1 -1
- package/cli/src/commands/build.d.ts +1 -1
- package/cli/src/commands/dev.d.ts +1 -1
- package/cli/src/commands/gen.d.ts +1 -1
- package/cli/src/commands/index.d.ts +1 -1
- package/cli/src/commands/init.d.ts +1 -1
- package/cli/src/commands/lib/assets.d.ts +1 -1
- package/cli/src/commands/lib/bundler.d.ts +1 -1
- package/cli/src/commands/lib/command.d.ts +1 -1
- package/cli/src/commands/lib/env.d.ts +1 -1
- package/cli/src/commands/lib/index.d.ts +1 -1
- package/cli/src/commands/lib/log.d.ts +1 -1
- package/cli/src/commands/lib/markdown/availability.d.ts +1 -1
- package/cli/src/commands/lib/markdown/index.d.ts +1 -1
- package/cli/src/commands/lib/markdown/processor.d.ts +1 -1
- package/cli/src/commands/lib/production.d.ts +1 -1
- package/cli/src/commands/lib/server.d.ts +1 -1
- package/cli/src/commands/lib/streaming/analyzer.d.ts +1 -1
- package/cli/src/commands/lib/streaming/suspense.d.ts +1 -1
- package/cli/src/commands/lib/tailwind.d.ts +1 -1
- package/cli/src/commands/lib/terminal-ui.d.ts +1 -1
- package/cli/src/commands/lib/version.d.ts +1 -1
- package/cli/src/commands/og.d.ts +1 -1
- package/cli/src/commands/start.d.ts +1 -1
- package/cli/src/index.d.ts +1 -1
- package/core/index.d.ts +1 -1
- package/core/index.js +2 -2
- package/core/index.js.map +1 -1
- package/core/src/bundler/hash.d.ts +1 -1
- package/core/src/bundler/index.d.ts +1 -1
- package/core/src/config.d.ts +1 -1
- package/core/src/content/discovery.d.ts +1 -1
- package/core/src/content/index.d.ts +1 -1
- package/core/src/content/metadata.d.ts +1 -1
- package/core/src/index.d.ts +1 -1
- package/core/src/llms/extractor.d.ts +1 -1
- package/core/src/llms/formatter.d.ts +1 -1
- package/core/src/llms/full-generator.d.ts +1 -1
- package/core/src/llms/index-generator.d.ts +1 -1
- package/core/src/llms/index.d.ts +1 -1
- package/core/src/og/discovery.d.ts +1 -1
- package/core/src/og/index.d.ts +1 -1
- package/core/src/og/meta.d.ts +1 -1
- package/core/src/og/render.d.ts +1 -1
- package/core/src/og/types.d.ts +1 -1
- package/core/src/robots/discovery.d.ts +1 -1
- package/core/src/robots/generator.d.ts +1 -1
- package/core/src/robots/index.d.ts +1 -1
- package/core/src/robots/policies.d.ts +1 -1
- package/core/src/rss/discovery.d.ts +1 -1
- package/core/src/rss/generator.d.ts +1 -1
- package/core/src/rss/index.d.ts +1 -1
- package/core/src/sitemap/discovery.d.ts +1 -1
- package/core/src/sitemap/generator.d.ts +1 -1
- package/core/src/sitemap/index.d.ts +1 -1
- package/core/src/ssr/index.d.ts +1 -1
- package/core/src/ssr/lib/cache.d.ts +1 -1
- package/core/src/ssr/lib/collections.d.ts +1 -1
- package/core/src/ssr/lib/compression.d.ts +1 -1
- package/core/src/ssr/lib/compute/content.d.ts +1 -1
- package/core/src/ssr/lib/compute/index.d.ts +1 -1
- package/core/src/ssr/lib/compute/layouts.d.ts +1 -1
- package/core/src/ssr/lib/compute/routes.d.ts +1 -1
- package/core/src/ssr/lib/data.d.ts +1 -1
- package/core/src/ssr/lib/html.d.ts +1 -1
- package/core/src/ssr/lib/imports.d.ts +1 -1
- package/core/src/ssr/lib/index.d.ts +1 -1
- package/core/src/ssr/lib/layouts.d.ts +1 -1
- package/core/src/ssr/lib/metadata.d.ts +1 -1
- package/core/src/ssr/lib/mime.d.ts +1 -1
- package/core/src/ssr/lib/modules.d.ts +1 -1
- package/core/src/ssr/lib/path.d.ts +1 -1
- package/core/src/ssr/lib/preload.d.ts +1 -1
- package/core/src/ssr/lib/scripts/collections.d.ts +1 -1
- package/core/src/ssr/lib/scripts/data.d.ts +1 -1
- package/core/src/ssr/lib/scripts/escape.d.ts +1 -1
- package/core/src/ssr/lib/scripts/feeds.d.ts +1 -1
- package/core/src/ssr/lib/scripts/index.d.ts +1 -1
- package/core/src/ssr/lib/seed.d.ts +1 -1
- package/core/src/ssr/lib/serialize.d.ts +1 -1
- package/core/src/ssr/lib/setup.d.ts +1 -1
- package/core/src/ssr/lib/styles.d.ts +1 -1
- package/core/src/ssr/lib/template.d.ts +1 -1
- package/core/src/ssr/lib/types.d.ts +1 -1
- package/core/src/ssr/render.d.ts +1 -1
- package/core/src/ssr/stream.d.ts +1 -1
- package/elysia/index.d.ts +1 -1
- package/elysia/index.js +2 -2
- package/elysia/index.js.map +1 -1
- package/elysia/src/index.d.ts +1 -1
- package/elysia/src/libs/assets.d.ts +1 -1
- package/elysia/src/libs/cache.d.ts +1 -1
- package/elysia/src/libs/caching.d.ts +1 -1
- package/elysia/src/libs/http.d.ts +1 -1
- package/elysia/src/libs/image.d.ts +1 -1
- package/elysia/src/libs/index.d.ts +1 -1
- package/elysia/src/libs/llms.d.ts +1 -1
- package/elysia/src/libs/response.d.ts +1 -1
- package/elysia/src/libs/serving.d.ts +1 -1
- package/elysia/src/plugin.d.ts +1 -1
- package/elysia/src/routes/artifacts.d.ts +1 -1
- package/elysia/src/routes/content.d.ts +1 -1
- package/elysia/src/routes/image.d.ts +1 -1
- package/elysia/src/routes/index.d.ts +1 -1
- package/elysia/src/routes/internal.d.ts +1 -1
- package/elysia/src/routes/llms.d.ts +1 -1
- package/elysia/src/routes/og.d.ts +1 -1
- package/elysia/src/routes/redirects.d.ts +1 -1
- package/elysia/src/routes/robots.d.ts +1 -1
- package/elysia/src/routes/rss.d.ts +1 -1
- package/elysia/src/routes/search.d.ts +1 -1
- package/elysia/src/routes/sitemap.d.ts +1 -1
- package/elysia/src/routes/ssr.d.ts +1 -1
- package/elysia/src/routes/static.d.ts +1 -1
- package/elysia/src/types.d.ts +1 -1
- package/package.json +1 -1
- package/react/index.d.ts +1 -1
- package/react/index.js +133 -21
- package/react/index.js.map +3 -3
- package/react/src/components/ClientOnly.d.ts +1 -1
- package/react/src/components/ContentRoute.d.ts +1 -1
- package/react/src/components/Image.d.ts +1 -1
- package/react/src/components/LazyRoute.d.ts +1 -1
- package/react/src/components/Link.d.ts +1 -1
- package/react/src/components/Markdown.d.ts +1 -1
- package/react/src/components/Outlet.d.ts +1 -1
- package/react/src/components/index.d.ts +1 -1
- package/react/src/hooks/index.d.ts +1 -1
- package/react/src/hooks/useContent.d.ts +62 -11
- package/react/src/hooks/useContent.d.ts.map +1 -1
- package/react/src/hooks/useData.d.ts +1 -1
- package/react/src/hooks/useFeed.d.ts +1 -1
- package/react/src/hooks/useLayoutData.d.ts +1 -1
- package/react/src/hooks/useLlms.d.ts +1 -1
- package/react/src/hooks/useNavigate.d.ts +1 -1
- package/react/src/hooks/useParams.d.ts +1 -1
- package/react/src/hooks/useRouter.d.ts +1 -1
- package/react/src/hooks/useSearch.d.ts +1 -1
- package/react/src/hooks/useSearchParams.d.ts +1 -1
- package/react/src/hooks/useToc.d.ts +1 -1
- package/react/src/index.d.ts +1 -1
- package/react/src/lib/collection.d.ts +1 -1
- package/react/src/lib/content.d.ts +1 -1
- package/react/src/lib/head.d.ts +1 -1
- package/react/src/lib/index.d.ts +1 -1
- package/react/src/lib/lazy-route.d.ts +1 -1
- package/react/src/lib/route-loader.d.ts +1 -1
- package/react/src/providers/ContentProvider.d.ts +1 -1
- package/react/src/providers/RerouteProvider.d.ts +1 -1
- package/react/src/providers/RouterProvider.d.ts +1 -1
- package/react/src/providers/index.d.ts +1 -1
- package/react/src/types/any.d.ts +1 -1
- package/react/src/types/index.d.ts +1 -1
- package/react/src/types/router.d.ts +1 -1
- package/telemetry/react.d.ts +1 -1
- package/telemetry/react.js +2 -2
- package/telemetry/react.js.map +1 -1
- package/telemetry/server.d.ts +1 -1
- package/telemetry/server.js +2 -2
- package/telemetry/server.js.map +1 -1
- package/telemetry/src/react/api.d.ts +1 -1
- package/telemetry/src/react/context.d.ts +1 -1
- package/telemetry/src/react/index.d.ts +1 -1
- package/telemetry/src/react/telemetry.d.ts +1 -1
- package/telemetry/src/server/context.d.ts +1 -1
- package/telemetry/src/server/index.d.ts +1 -1
- package/telemetry/src/server/instrumentation.d.ts +1 -1
- package/telemetry/src/server/plugin.d.ts +1 -1
- package/telemetry/src/server/sourcemap.d.ts +1 -1
package/elysia/src/types.d.ts
CHANGED
package/package.json
CHANGED
package/react/index.d.ts
CHANGED
package/react/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* reroute-js v0.
|
|
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
|
|
684
|
-
|
|
685
|
-
|
|
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
|
|
772
|
+
return filter(item);
|
|
688
773
|
}
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
|
|
692
|
-
|
|
693
|
-
|
|
694
|
-
|
|
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
|
-
|
|
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 === "
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
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=
|
|
3107
|
+
//# debugId=1E8A8CF30C6A18AA64756E2164756E21
|