reroute-js 0.41.1 → 0.42.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.
- package/cli/bin.d.ts +1 -1
- package/cli/bin.js +82 -21
- package/cli/bin.js.map +6 -6
- 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 +78 -17
- package/core/index.js.map +6 -6
- package/core/src/bundler/hash.d.ts +1 -1
- package/core/src/bundler/index.d.ts +1 -1
- package/core/src/config.d.ts +6 -4
- package/core/src/config.d.ts.map +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/discovery.d.ts.map +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/discovery.d.ts.map +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 +78 -17
- package/elysia/index.js.map +6 -6
- 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 +2 -2
- package/react/index.js.map +1 -1
- 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 +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 +4 -4
- 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/headers/extractor.d.ts +1 -1
- package/telemetry/src/server/headers/index.d.ts +1 -1
- package/telemetry/src/server/headers/presets.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/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* reroute-js v0.
|
|
2
|
+
* reroute-js v0.42.1
|
|
3
3
|
*
|
|
4
4
|
* @license MIT
|
|
5
5
|
* @copyright 2026 stewones <hi@stewan.io>
|
|
@@ -1919,7 +1919,7 @@ async function processLayoutForMetadata(layout, clientDir, isWatchMode, addHead,
|
|
|
1919
1919
|
if (meta)
|
|
1920
1920
|
addHead(buildHeadFromMeta(meta, ogConfig));
|
|
1921
1921
|
if (ssr) {
|
|
1922
|
-
const ssrHead = extractSSRHead(ssr);
|
|
1922
|
+
const ssrHead = extractSSRHead(ssr, undefined, ogConfig);
|
|
1923
1923
|
if (ssrHead)
|
|
1924
1924
|
addHead(`
|
|
1925
1925
|
${ssrHead}`);
|
|
@@ -1949,7 +1949,7 @@ function extractContentMetadata(pathname, addHead, setLang, ogConfig) {
|
|
|
1949
1949
|
const meta = exp?.meta;
|
|
1950
1950
|
const ssr = exp?.ssr;
|
|
1951
1951
|
addHead(buildHeadFromMeta(meta, ogConfig));
|
|
1952
|
-
const ssrHead = extractSSRHead(ssr);
|
|
1952
|
+
const ssrHead = extractSSRHead(ssr, undefined, ogConfig);
|
|
1953
1953
|
if (ssrHead)
|
|
1954
1954
|
addHead(`
|
|
1955
1955
|
${ssrHead}`);
|
|
@@ -1974,7 +1974,7 @@ async function extractMatchedRouteMetadata(pathname, clientDir, m, isWatchMode,
|
|
|
1974
1974
|
head += buildHeadFromMeta(meta, ogConfig);
|
|
1975
1975
|
if (ssr) {
|
|
1976
1976
|
const routeData = ssrData && typeof ssrData === "object" ? ssrData[pathname] : undefined;
|
|
1977
|
-
const ssrHead = extractSSRHead(ssr, routeData);
|
|
1977
|
+
const ssrHead = extractSSRHead(ssr, routeData, ogConfig, head);
|
|
1978
1978
|
if (ssrHead)
|
|
1979
1979
|
head += `
|
|
1980
1980
|
${ssrHead}`;
|
|
@@ -2040,7 +2040,7 @@ async function extractNotFoundMetadata(pathname, clientDir, routesModule, isWatc
|
|
|
2040
2040
|
const { meta, ssr } = await loadModuleMetaAndSSR(chosen, abs, isWatchMode);
|
|
2041
2041
|
if (meta)
|
|
2042
2042
|
head += buildHeadFromMeta(meta, ogConfig);
|
|
2043
|
-
const ssrHead = extractSSRHead(ssr);
|
|
2043
|
+
const ssrHead = extractSSRHead(ssr, undefined, ogConfig);
|
|
2044
2044
|
if (ssrHead)
|
|
2045
2045
|
head += `
|
|
2046
2046
|
${ssrHead}`;
|
|
@@ -2051,29 +2051,86 @@ ${ssrHead}`;
|
|
|
2051
2051
|
} catch {}
|
|
2052
2052
|
return head;
|
|
2053
2053
|
}
|
|
2054
|
-
function
|
|
2054
|
+
function parseTitleFromHead(head) {
|
|
2055
|
+
const match = head.match(/<title[^>]*>(.*?)<\/title>/is);
|
|
2056
|
+
if (match?.[1])
|
|
2057
|
+
return unescapeHtml(match[1].trim());
|
|
2058
|
+
return;
|
|
2059
|
+
}
|
|
2060
|
+
function parseDescriptionFromHead(head) {
|
|
2061
|
+
let match = head.match(/<meta\s+name=["']description["']\s+content=["'](.+?)["']\s*\/?>/i);
|
|
2062
|
+
if (match?.[1])
|
|
2063
|
+
return unescapeHtml(match[1].trim());
|
|
2064
|
+
match = head.match(/<meta\s+content=["'](.+?)["']\s+name=["']description["']\s*\/?>/i);
|
|
2065
|
+
if (match?.[1])
|
|
2066
|
+
return unescapeHtml(match[1].trim());
|
|
2067
|
+
return;
|
|
2068
|
+
}
|
|
2069
|
+
function unescapeHtml(input) {
|
|
2070
|
+
return input.replace(/"/g, '"').replace(/'/g, "'").replace(/</g, "<").replace(/>/g, ">").replace(/&/g, "&");
|
|
2071
|
+
}
|
|
2072
|
+
function hasMetaTag(head, property) {
|
|
2073
|
+
const propRegex = new RegExp(`<meta\\s+(?:property|name)=["']${property}["']`, "i");
|
|
2074
|
+
const contentFirstRegex = new RegExp(`<meta\\s+content=["'][^"']*["']\\s+(?:property|name)=["']${property}["']`, "i");
|
|
2075
|
+
return propRegex.test(head) || contentFirstRegex.test(head);
|
|
2076
|
+
}
|
|
2077
|
+
function generateMissingOGTags(head, ogConfig) {
|
|
2078
|
+
const title = parseTitleFromHead(head);
|
|
2079
|
+
const description = parseDescriptionFromHead(head);
|
|
2080
|
+
const additionalTags = [];
|
|
2081
|
+
if (title && !hasMetaTag(head, "og:title")) {
|
|
2082
|
+
additionalTags.push(`<meta property="og:title" content="${escapeHtml2(title)}" />`);
|
|
2083
|
+
}
|
|
2084
|
+
const finalDescription = description || ogConfig?.siteDescription;
|
|
2085
|
+
if (finalDescription && !hasMetaTag(head, "og:description")) {
|
|
2086
|
+
additionalTags.push(`<meta property="og:description" content="${escapeHtml2(finalDescription)}" />`);
|
|
2087
|
+
}
|
|
2088
|
+
if (title && !hasMetaTag(head, "twitter:title")) {
|
|
2089
|
+
additionalTags.push(`<meta name="twitter:title" content="${escapeHtml2(title)}" />`);
|
|
2090
|
+
}
|
|
2091
|
+
if (finalDescription && !hasMetaTag(head, "twitter:description")) {
|
|
2092
|
+
additionalTags.push(`<meta name="twitter:description" content="${escapeHtml2(finalDescription)}" />`);
|
|
2093
|
+
}
|
|
2094
|
+
if (!hasMetaTag(head, "og:type")) {
|
|
2095
|
+
const ogType = ogConfig?.defaultType || "website";
|
|
2096
|
+
additionalTags.push(`<meta property="og:type" content="${escapeHtml2(ogType)}" />`);
|
|
2097
|
+
}
|
|
2098
|
+
if (!hasMetaTag(head, "twitter:card")) {
|
|
2099
|
+
const twitterCard = ogConfig?.twitterCard || "summary_large_image";
|
|
2100
|
+
additionalTags.push(`<meta name="twitter:card" content="${twitterCard}" />`);
|
|
2101
|
+
}
|
|
2102
|
+
return additionalTags.length > 0 ? `
|
|
2103
|
+
${additionalTags.join(`
|
|
2104
|
+
`)}` : "";
|
|
2105
|
+
}
|
|
2106
|
+
function extractSSRHead(ssr, data, ogConfig, existingHead) {
|
|
2055
2107
|
if (!ssr)
|
|
2056
2108
|
return "";
|
|
2109
|
+
let headContent = "";
|
|
2057
2110
|
if (typeof ssr.head === "function") {
|
|
2058
2111
|
try {
|
|
2059
2112
|
const result = ssr.head({ data });
|
|
2060
2113
|
if (typeof result === "string")
|
|
2061
|
-
|
|
2062
|
-
if (Array.isArray(result))
|
|
2063
|
-
|
|
2114
|
+
headContent = result;
|
|
2115
|
+
else if (Array.isArray(result))
|
|
2116
|
+
headContent = String(result.join(`
|
|
2064
2117
|
`));
|
|
2065
|
-
return "";
|
|
2066
2118
|
} catch (err) {
|
|
2067
2119
|
console.error("[extractSSRHead] Error calling head function:", err);
|
|
2068
2120
|
return "";
|
|
2069
2121
|
}
|
|
2070
|
-
}
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
return String(ssr.head.join(`
|
|
2122
|
+
} else if (typeof ssr.head === "string") {
|
|
2123
|
+
headContent = ssr.head;
|
|
2124
|
+
} else if (Array.isArray(ssr.head)) {
|
|
2125
|
+
headContent = String(ssr.head.join(`
|
|
2075
2126
|
`));
|
|
2076
|
-
|
|
2127
|
+
}
|
|
2128
|
+
if (!headContent)
|
|
2129
|
+
return "";
|
|
2130
|
+
const combinedHead = existingHead ? `${existingHead}
|
|
2131
|
+
${headContent}` : headContent;
|
|
2132
|
+
const additionalOGTags = generateMissingOGTags(combinedHead, ogConfig);
|
|
2133
|
+
return headContent + additionalOGTags;
|
|
2077
2134
|
}
|
|
2078
2135
|
function extractSSRLang(ssr) {
|
|
2079
2136
|
if (!ssr)
|
|
@@ -4184,6 +4241,8 @@ function extractIdentifierFromItem(item, routePattern, sitemapConfig) {
|
|
|
4184
4241
|
if (sitemapConfig?.extractUrl) {
|
|
4185
4242
|
try {
|
|
4186
4243
|
const identifier2 = sitemapConfig.extractUrl(item, routePattern);
|
|
4244
|
+
if (identifier2 === false)
|
|
4245
|
+
return null;
|
|
4187
4246
|
if (identifier2)
|
|
4188
4247
|
return identifier2;
|
|
4189
4248
|
} catch (error) {
|
|
@@ -4439,6 +4498,8 @@ function extractIdentifier2(item, routePattern, rssConfig) {
|
|
|
4439
4498
|
if (rssConfig?.extractUrl) {
|
|
4440
4499
|
try {
|
|
4441
4500
|
const identifier = rssConfig.extractUrl(item, routePattern);
|
|
4501
|
+
if (identifier === false)
|
|
4502
|
+
return null;
|
|
4442
4503
|
if (identifier)
|
|
4443
4504
|
return String(identifier);
|
|
4444
4505
|
} catch (error) {
|
|
@@ -8466,4 +8527,4 @@ export {
|
|
|
8466
8527
|
reroute
|
|
8467
8528
|
};
|
|
8468
8529
|
|
|
8469
|
-
//# debugId=
|
|
8530
|
+
//# debugId=34902B8E9F66D1AE64756E2164756E21
|