reroute-js 0.32.0 → 0.34.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/cli/bin.d.ts +1 -1
- package/cli/bin.js +25 -8
- package/cli/bin.js.map +7 -7
- 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 +21 -4
- package/core/index.js.map +7 -7
- package/core/src/bundler/hash.d.ts +1 -1
- package/core/src/bundler/index.d.ts +1 -1
- package/core/src/config.d.ts +4 -1
- 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/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 +2 -2
- package/core/src/ssr/lib/metadata.d.ts.map +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 +3 -1
- package/core/src/ssr/lib/setup.d.ts.map +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 +3 -1
- package/core/src/ssr/render.d.ts.map +1 -1
- package/core/src/ssr/stream.d.ts +3 -1
- package/core/src/ssr/stream.d.ts.map +1 -1
- package/elysia/index.d.ts +1 -1
- package/elysia/index.js +30 -5
- package/elysia/index.js.map +9 -9
- 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/plugin.d.ts.map +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 +3 -1
- package/elysia/src/routes/ssr.d.ts.map +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 +44 -8
- 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 +23 -9
- 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 +7 -7
- 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/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* reroute-js v0.
|
|
2
|
+
* reroute-js v0.34.0
|
|
3
3
|
*
|
|
4
4
|
* @license MIT
|
|
5
5
|
* @copyright 2025 stewones <hi@stewan.io>
|
|
@@ -1734,7 +1734,14 @@ var init_meta = __esm(() => {
|
|
|
1734
1734
|
});
|
|
1735
1735
|
|
|
1736
1736
|
// packages/core/src/ssr/lib/metadata.ts
|
|
1737
|
-
|
|
1737
|
+
function generateCanonicalUrl(baseUrl, pathname) {
|
|
1738
|
+
const cleanBaseUrl = baseUrl.replace(/\/$/, "");
|
|
1739
|
+
const cleanPathname = pathname.split("?")[0];
|
|
1740
|
+
const normalizedPath = cleanPathname === "/" ? "/" : cleanPathname.replace(/\/$/, "");
|
|
1741
|
+
const canonicalUrl = `${cleanBaseUrl}${normalizedPath}`;
|
|
1742
|
+
return `<link rel="canonical" href="${canonicalUrl}" />`;
|
|
1743
|
+
}
|
|
1744
|
+
async function extractPageMetadata(pathname, clientDir, cwd, isWatchMode, currentStatusOverride, ogConfig, baseUrl, autoCanonical) {
|
|
1738
1745
|
let perPageHead = "";
|
|
1739
1746
|
let pageLang;
|
|
1740
1747
|
let statusOverride = currentStatusOverride;
|
|
@@ -1744,6 +1751,12 @@ async function extractPageMetadata(pathname, clientDir, cwd, isWatchMode, curren
|
|
|
1744
1751
|
if (!pageLang)
|
|
1745
1752
|
pageLang = lang;
|
|
1746
1753
|
});
|
|
1754
|
+
const shouldGenerateCanonical = autoCanonical !== false && baseUrl !== undefined;
|
|
1755
|
+
if (shouldGenerateCanonical) {
|
|
1756
|
+
const canonicalTag = generateCanonicalUrl(baseUrl, pathname);
|
|
1757
|
+
perPageHead += `
|
|
1758
|
+
${canonicalTag}`;
|
|
1759
|
+
}
|
|
1747
1760
|
try {
|
|
1748
1761
|
const ogMetaTags = await generateOGImageMetaTags(pathname, clientDir, ogConfig);
|
|
1749
1762
|
if (ogMetaTags) {
|
|
@@ -2422,7 +2435,7 @@ async function performSSRSetupInternal(options, streaming) {
|
|
|
2422
2435
|
statusOverride = computeResult.statusContainer.value;
|
|
2423
2436
|
}
|
|
2424
2437
|
const metadataResult = await withSpan("ssr.extract.metadata", async (span) => {
|
|
2425
|
-
const result = await extractPageMetadata(pathname, clientDir, cwd, isWatchMode, statusOverride, ogConfig);
|
|
2438
|
+
const result = await extractPageMetadata(pathname, clientDir, cwd, isWatchMode, statusOverride, ogConfig, options.baseUrl, options.autoCanonical);
|
|
2426
2439
|
span.setAttributes({
|
|
2427
2440
|
"reroute.pathname": pathname,
|
|
2428
2441
|
"reroute.metadata.exists": !!result.perPageHead
|
|
@@ -2592,6 +2605,8 @@ async function renderSSRDocument(options) {
|
|
|
2592
2605
|
maxAge,
|
|
2593
2606
|
searchParams,
|
|
2594
2607
|
ogConfig,
|
|
2608
|
+
baseUrl: options.baseUrl,
|
|
2609
|
+
autoCanonical: options.autoCanonical,
|
|
2595
2610
|
cachedCollections: options.cachedCollections,
|
|
2596
2611
|
cachedTailwindCSS: options.cachedTailwindCSS
|
|
2597
2612
|
}, false);
|
|
@@ -4592,6 +4607,8 @@ async function renderSSRDocumentStream(options) {
|
|
|
4592
4607
|
maxAge,
|
|
4593
4608
|
searchParams,
|
|
4594
4609
|
ogConfig,
|
|
4610
|
+
baseUrl: options.baseUrl,
|
|
4611
|
+
autoCanonical: options.autoCanonical,
|
|
4595
4612
|
cachedCollections: options.cachedCollections,
|
|
4596
4613
|
cachedTailwindCSS: options.cachedTailwindCSS,
|
|
4597
4614
|
debug
|
|
@@ -7309,6 +7326,8 @@ function registerSSRRoutes(app, options) {
|
|
|
7309
7326
|
maxAge,
|
|
7310
7327
|
searchParams,
|
|
7311
7328
|
ogConfig: options.ogConfig,
|
|
7329
|
+
baseUrl: options.baseUrl,
|
|
7330
|
+
autoCanonical: options.autoCanonical,
|
|
7312
7331
|
parentSpan: renderSpan
|
|
7313
7332
|
});
|
|
7314
7333
|
renderSpan?.setAttribute("http.response.status_code", result.status);
|
|
@@ -7483,6 +7502,8 @@ function registerSSRRoutes(app, options) {
|
|
|
7483
7502
|
maxAge,
|
|
7484
7503
|
searchParams,
|
|
7485
7504
|
ogConfig: options.ogConfig,
|
|
7505
|
+
baseUrl: options.baseUrl,
|
|
7506
|
+
autoCanonical: options.autoCanonical,
|
|
7486
7507
|
parentSpan: renderSpan
|
|
7487
7508
|
});
|
|
7488
7509
|
renderSpan?.setAttribute("http.response.status_code", renderResult.status);
|
|
@@ -7743,6 +7764,8 @@ var reroute = (options = {}) => async (app) => {
|
|
|
7743
7764
|
const imageMaxHeight = options.imageMaxHeight ?? globalConfig.options?.imageMaxHeight ?? 2160;
|
|
7744
7765
|
const bundleMaxAge = options.bundleMaxAge ?? globalConfig.options?.bundleMaxAge ?? 3600;
|
|
7745
7766
|
const streamingEnabled = options.streaming?.enabled ?? globalConfig.streaming?.enabled ?? false;
|
|
7767
|
+
const baseUrl = globalConfig.options?.baseUrl;
|
|
7768
|
+
const autoCanonical = globalConfig.options?.autoCanonical;
|
|
7746
7769
|
const sitemapConfig = globalConfig.sitemap;
|
|
7747
7770
|
const sitemapEnabled = sitemapConfig?.enabled === true;
|
|
7748
7771
|
const sitemapBaseUrl = options.sitemapBaseUrl ?? sitemapConfig?.baseUrl;
|
|
@@ -7954,7 +7977,9 @@ var reroute = (options = {}) => async (app) => {
|
|
|
7954
7977
|
directive,
|
|
7955
7978
|
compression: compression2,
|
|
7956
7979
|
streamingEnabled,
|
|
7957
|
-
ogConfig
|
|
7980
|
+
ogConfig,
|
|
7981
|
+
baseUrl,
|
|
7982
|
+
autoCanonical
|
|
7958
7983
|
});
|
|
7959
7984
|
if (sitemapEnabled && sitemapBaseUrl) {
|
|
7960
7985
|
try {
|
|
@@ -8036,4 +8061,4 @@ export {
|
|
|
8036
8061
|
reroute
|
|
8037
8062
|
};
|
|
8038
8063
|
|
|
8039
|
-
//# debugId=
|
|
8064
|
+
//# debugId=29E28F45EF65D91064756E2164756E21
|