reroute-js 0.34.7 → 0.34.9
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 +199 -78
- package/cli/bin.js.map +13 -13
- 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/gen.d.ts.map +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 +194 -74
- package/core/index.js.map +12 -12
- 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/full-generator.d.ts.map +1 -1
- package/core/src/llms/index-generator.d.ts +2 -3
- package/core/src/llms/index-generator.d.ts.map +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 +4 -4
- 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 +3 -3
- 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 +4 -2
- package/core/src/ssr/lib/compute/index.d.ts.map +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/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/preload.d.ts.map +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 +204 -88
- package/elysia/index.js.map +16 -16
- 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/llms.d.ts.map +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/rss.d.ts.map +1 -1
- package/elysia/src/routes/search.d.ts +1 -1
- package/elysia/src/routes/sitemap.d.ts +1 -2
- package/elysia/src/routes/sitemap.d.ts.map +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 +3 -2
- package/telemetry/server.js.map +10 -10
- 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/core/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* reroute-js v0.34.
|
|
2
|
+
* reroute-js v0.34.9
|
|
3
3
|
*
|
|
4
4
|
* @license MIT
|
|
5
5
|
* @copyright 2025 stewones <hi@stewan.io>
|
|
@@ -1045,9 +1045,11 @@ function matchPatternUtil(pattern, pathname) {
|
|
|
1045
1045
|
return params;
|
|
1046
1046
|
}
|
|
1047
1047
|
function createBundledRoutesModule(bundledRoutes, bundledLayouts) {
|
|
1048
|
+
const bundledNotFoundRoutes = globalThis.__REROUTE_NOT_FOUND_ROUTES__;
|
|
1048
1049
|
return {
|
|
1049
1050
|
routes: bundledRoutes,
|
|
1050
1051
|
layouts: bundledLayouts,
|
|
1052
|
+
notFoundRoutes: bundledNotFoundRoutes,
|
|
1051
1053
|
matchRoute: (pathname) => {
|
|
1052
1054
|
for (const route of bundledRoutes) {
|
|
1053
1055
|
const pattern = String(route?.pattern || "");
|
|
@@ -1872,8 +1874,10 @@ async function extractRouteMetadata(pathname, clientDir, cwd, isWatchMode, curre
|
|
|
1872
1874
|
let lang;
|
|
1873
1875
|
let statusOverride = currentStatusOverride;
|
|
1874
1876
|
try {
|
|
1875
|
-
const
|
|
1876
|
-
|
|
1877
|
+
const m = await loadRoutesModule(cwd, isWatchMode);
|
|
1878
|
+
if (!m) {
|
|
1879
|
+
return { head, lang, statusOverride: statusOverride || 404 };
|
|
1880
|
+
}
|
|
1877
1881
|
const pathnameOnly = pathname.split("?")[0];
|
|
1878
1882
|
const match = typeof m.matchRoute === "function" ? m.matchRoute(pathnameOnly) : null;
|
|
1879
1883
|
const r = match?.route;
|
|
@@ -1954,6 +1958,7 @@ function extractSSRLang(ssr) {
|
|
|
1954
1958
|
var init_metadata2 = __esm(() => {
|
|
1955
1959
|
init_metadata();
|
|
1956
1960
|
init_meta();
|
|
1961
|
+
init_compute();
|
|
1957
1962
|
init_imports();
|
|
1958
1963
|
});
|
|
1959
1964
|
|
|
@@ -1991,6 +1996,16 @@ async function preloadContentModule(pathname, clientDir, cwd, isWatchMode) {
|
|
|
1991
1996
|
}
|
|
1992
1997
|
async function isContentCollection(clientDir, collection) {
|
|
1993
1998
|
try {
|
|
1999
|
+
const isProduction = clientDir.endsWith(".reroute");
|
|
2000
|
+
if (isProduction) {
|
|
2001
|
+
const collectionFile = join(clientDir, "collections", `${collection}.js`);
|
|
2002
|
+
try {
|
|
2003
|
+
const s2 = await stat4(collectionFile);
|
|
2004
|
+
return s2?.isFile() ?? false;
|
|
2005
|
+
} catch {
|
|
2006
|
+
return false;
|
|
2007
|
+
}
|
|
2008
|
+
}
|
|
1994
2009
|
const maybeDir = join(clientDir, "routes", collection, "content");
|
|
1995
2010
|
const s = await stat4(maybeDir);
|
|
1996
2011
|
return typeof s?.isDirectory === "function" ? s.isDirectory() : true;
|
|
@@ -2441,7 +2456,7 @@ async function performSSRSetupInternal(options, streaming) {
|
|
|
2441
2456
|
return css;
|
|
2442
2457
|
});
|
|
2443
2458
|
let statusOverride = preloadResult.statusOverride;
|
|
2444
|
-
if (computeResult.statusContainer.value) {
|
|
2459
|
+
if (computeResult.statusContainer.value !== undefined) {
|
|
2445
2460
|
statusOverride = computeResult.statusContainer.value;
|
|
2446
2461
|
}
|
|
2447
2462
|
const metadataResult = await withSpan("ssr.extract.metadata", async (span) => {
|
|
@@ -2649,10 +2664,10 @@ async function renderSSRDocument(options) {
|
|
|
2649
2664
|
return script;
|
|
2650
2665
|
});
|
|
2651
2666
|
let statusOverride = setup2.preloadStatusOverride;
|
|
2652
|
-
if (setup2.statusContainer.value) {
|
|
2667
|
+
if (setup2.statusContainer.value !== undefined) {
|
|
2653
2668
|
statusOverride = setup2.statusContainer.value;
|
|
2654
2669
|
}
|
|
2655
|
-
if (setup2.metadataResult.statusOverride) {
|
|
2670
|
+
if (setup2.metadataResult.statusOverride !== undefined) {
|
|
2656
2671
|
statusOverride = setup2.metadataResult.statusOverride;
|
|
2657
2672
|
}
|
|
2658
2673
|
const extraHead = setup2.bundlePreload + setup2.preloadExtraHead;
|
|
@@ -3102,9 +3117,9 @@ async function discoverCollectionRoutes(cwd, collections2, isWatchMode, llmsConf
|
|
|
3102
3117
|
}
|
|
3103
3118
|
return collectionsMap;
|
|
3104
3119
|
}
|
|
3105
|
-
async function loadRouteModule(
|
|
3120
|
+
async function loadRouteModule(cwd, routePath, isWatchMode) {
|
|
3106
3121
|
try {
|
|
3107
|
-
const abs = join(
|
|
3122
|
+
const abs = join(cwd, "src", "client", "routes", routePath);
|
|
3108
3123
|
const modUrl = `${pathToFileURL6(abs).href}${isWatchMode ? `?t=${Date.now()}` : ""}`;
|
|
3109
3124
|
return await import(modUrl);
|
|
3110
3125
|
} catch {
|
|
@@ -3137,24 +3152,47 @@ function createEntriesFromArray(array, routePath) {
|
|
|
3137
3152
|
}
|
|
3138
3153
|
return entries;
|
|
3139
3154
|
}
|
|
3140
|
-
async function discoverSSRDataRoutes(
|
|
3155
|
+
async function discoverSSRDataRoutes(cwd, staticRoutes, isWatchMode) {
|
|
3141
3156
|
const ssrDataRoutes = new Map;
|
|
3142
|
-
|
|
3143
|
-
|
|
3144
|
-
|
|
3145
|
-
|
|
3146
|
-
|
|
3147
|
-
|
|
3148
|
-
|
|
3149
|
-
|
|
3150
|
-
|
|
3151
|
-
|
|
3152
|
-
|
|
3153
|
-
|
|
3157
|
+
const bundledRoutes = globalThis.__REROUTE_ROUTES__;
|
|
3158
|
+
if (bundledRoutes && Array.isArray(bundledRoutes)) {
|
|
3159
|
+
for (const route of staticRoutes) {
|
|
3160
|
+
const bundledRoute = bundledRoutes.find((r) => r?.path === route.path);
|
|
3161
|
+
if (!bundledRoute)
|
|
3162
|
+
continue;
|
|
3163
|
+
const ssr = bundledRoute?.ssr;
|
|
3164
|
+
const dataFn = ssr?.data;
|
|
3165
|
+
if (typeof dataFn !== "function")
|
|
3166
|
+
continue;
|
|
3167
|
+
const result = await callDataFunction(dataFn, route.path);
|
|
3168
|
+
const arrays = findArraysInData(result);
|
|
3169
|
+
for (const array of arrays) {
|
|
3170
|
+
if (array.length === 0)
|
|
3171
|
+
continue;
|
|
3172
|
+
const entries = createEntriesFromArray(array, route.path);
|
|
3173
|
+
if (entries.length > 0) {
|
|
3174
|
+
ssrDataRoutes.set(route.path, entries);
|
|
3175
|
+
}
|
|
3176
|
+
}
|
|
3177
|
+
}
|
|
3178
|
+
} else {
|
|
3179
|
+
for (const route of staticRoutes) {
|
|
3180
|
+
const mod = await loadRouteModule(cwd, route.path, isWatchMode);
|
|
3181
|
+
if (!mod)
|
|
3182
|
+
continue;
|
|
3183
|
+
const ssr = mod?.ssr;
|
|
3184
|
+
const dataFn = ssr?.data;
|
|
3185
|
+
if (typeof dataFn !== "function")
|
|
3154
3186
|
continue;
|
|
3155
|
-
const
|
|
3156
|
-
|
|
3157
|
-
|
|
3187
|
+
const result = await callDataFunction(dataFn, route.path);
|
|
3188
|
+
const arrays = findArraysInData(result);
|
|
3189
|
+
for (const array of arrays) {
|
|
3190
|
+
if (array.length === 0)
|
|
3191
|
+
continue;
|
|
3192
|
+
const entries = createEntriesFromArray(array, route.path);
|
|
3193
|
+
if (entries.length > 0) {
|
|
3194
|
+
ssrDataRoutes.set(route.path, entries);
|
|
3195
|
+
}
|
|
3158
3196
|
}
|
|
3159
3197
|
}
|
|
3160
3198
|
}
|
|
@@ -3277,12 +3315,12 @@ function addStaticSection(parts, section, routes, baseUrl, isSingleCollection, t
|
|
|
3277
3315
|
parts.push("");
|
|
3278
3316
|
}
|
|
3279
3317
|
async function generateLLMsIndex(options) {
|
|
3280
|
-
const { cwd,
|
|
3318
|
+
const { cwd, collections: collections2, baseUrl, isWatchMode, llmsConfig } = options;
|
|
3281
3319
|
const parts = [];
|
|
3282
3320
|
addIndexHeader(parts, llmsConfig);
|
|
3283
3321
|
const staticRoutes = await discoverStaticRoutes(cwd, isWatchMode);
|
|
3284
3322
|
const collectionsMap = await discoverCollectionRoutes(cwd, collections2, isWatchMode, llmsConfig);
|
|
3285
|
-
const ssrDataRoutes = await discoverSSRDataRoutes(cwd,
|
|
3323
|
+
const ssrDataRoutes = await discoverSSRDataRoutes(cwd, staticRoutes, isWatchMode);
|
|
3286
3324
|
const isSingleCollection = collections2.length === 1;
|
|
3287
3325
|
const targetCollection = isSingleCollection ? collections2[0] : null;
|
|
3288
3326
|
const { sections, rootRoutes } = groupStaticRoutes(staticRoutes, llmsConfig);
|
|
@@ -3331,7 +3369,7 @@ function buildHeader(baseUrl, llmsConfig) {
|
|
|
3331
3369
|
}
|
|
3332
3370
|
return parts;
|
|
3333
3371
|
}
|
|
3334
|
-
async function discoverAllRoutes(cwd,
|
|
3372
|
+
async function discoverAllRoutes(cwd, collections2, isWatchMode, llmsConfig) {
|
|
3335
3373
|
const {
|
|
3336
3374
|
discoverStaticRoutes: discoverStaticRoutes2,
|
|
3337
3375
|
discoverCollectionRoutes: discoverCollectionRoutes2,
|
|
@@ -3339,7 +3377,7 @@ async function discoverAllRoutes(cwd, clientDir, collections2, isWatchMode, llms
|
|
|
3339
3377
|
} = await Promise.resolve().then(() => (init_index_generator(), exports_index_generator));
|
|
3340
3378
|
const staticRoutes = await discoverStaticRoutes2(cwd, isWatchMode);
|
|
3341
3379
|
const collectionsMap = await discoverCollectionRoutes2(cwd, collections2, isWatchMode, llmsConfig);
|
|
3342
|
-
const ssrDataRoutes = await discoverSSRDataRoutes2(cwd,
|
|
3380
|
+
const ssrDataRoutes = await discoverSSRDataRoutes2(cwd, staticRoutes, isWatchMode);
|
|
3343
3381
|
const allRoutes = [];
|
|
3344
3382
|
for (const route of staticRoutes) {
|
|
3345
3383
|
if (!shouldExcludeRoute(route.path, llmsConfig?.excludeRoutes)) {
|
|
@@ -3429,9 +3467,9 @@ function buildFooter(parts) {
|
|
|
3429
3467
|
parts.push("Formats: .txt | .md | Accept: text/plain | Accept: text/markdown");
|
|
3430
3468
|
}
|
|
3431
3469
|
async function generateLLMsFullContent(options) {
|
|
3432
|
-
const { cwd,
|
|
3470
|
+
const { cwd, collections: collections2, baseUrl, isWatchMode, llmsConfig } = options;
|
|
3433
3471
|
const parts = buildHeader(baseUrl, llmsConfig);
|
|
3434
|
-
const allRoutes = await discoverAllRoutes(cwd,
|
|
3472
|
+
const allRoutes = await discoverAllRoutes(cwd, collections2, isWatchMode, llmsConfig);
|
|
3435
3473
|
const maxItems = llmsConfig?.maxItems || 1e4;
|
|
3436
3474
|
const routesToProcess = allRoutes.slice(0, maxItems);
|
|
3437
3475
|
const extracted = await extractRouteContents(routesToProcess, options);
|
|
@@ -3848,30 +3886,58 @@ async function discoverCollectionContent(cwd, collection, isWatchMode, baseUrl)
|
|
|
3848
3886
|
}
|
|
3849
3887
|
return entries;
|
|
3850
3888
|
}
|
|
3851
|
-
async function discoverSSRDataRoutes2(
|
|
3889
|
+
async function discoverSSRDataRoutes2(cwd, staticRoutes, isWatchMode, baseUrl, sitemapConfig) {
|
|
3852
3890
|
const ssrDataRoutes = new Map;
|
|
3853
|
-
|
|
3854
|
-
|
|
3855
|
-
|
|
3856
|
-
|
|
3857
|
-
|
|
3858
|
-
|
|
3859
|
-
const
|
|
3860
|
-
|
|
3891
|
+
const bundledRoutes = globalThis.__REROUTE_ROUTES__;
|
|
3892
|
+
if (bundledRoutes && Array.isArray(bundledRoutes)) {
|
|
3893
|
+
for (const route of staticRoutes) {
|
|
3894
|
+
if (sitemapConfig?.excludeDiscovery?.includes(route.pattern)) {
|
|
3895
|
+
continue;
|
|
3896
|
+
}
|
|
3897
|
+
const bundledRoute = bundledRoutes.find((r) => r?.pattern === route.pattern);
|
|
3898
|
+
if (!bundledRoute)
|
|
3899
|
+
continue;
|
|
3900
|
+
const ssr = bundledRoute?.ssr;
|
|
3861
3901
|
const dataFn = ssr?.data;
|
|
3862
3902
|
if (typeof dataFn === "function") {
|
|
3863
|
-
|
|
3864
|
-
|
|
3865
|
-
|
|
3866
|
-
|
|
3867
|
-
|
|
3868
|
-
|
|
3869
|
-
|
|
3870
|
-
|
|
3871
|
-
|
|
3872
|
-
|
|
3903
|
+
try {
|
|
3904
|
+
const mockSet = { status: 200 };
|
|
3905
|
+
const result = await dataFn({
|
|
3906
|
+
pathname: route.pattern,
|
|
3907
|
+
params: {},
|
|
3908
|
+
set: mockSet
|
|
3909
|
+
});
|
|
3910
|
+
const entries = extractEntriesFromData(result, route.pattern, baseUrl, sitemapConfig);
|
|
3911
|
+
if (entries.length > 0) {
|
|
3912
|
+
ssrDataRoutes.set(route.pattern, entries);
|
|
3913
|
+
}
|
|
3914
|
+
} catch {}
|
|
3873
3915
|
}
|
|
3874
|
-
}
|
|
3916
|
+
}
|
|
3917
|
+
} else {
|
|
3918
|
+
for (const route of staticRoutes) {
|
|
3919
|
+
if (sitemapConfig?.excludeDiscovery?.includes(route.pattern)) {
|
|
3920
|
+
continue;
|
|
3921
|
+
}
|
|
3922
|
+
try {
|
|
3923
|
+
const routeModulePath = join(cwd, "src", "client", "routes", route.path);
|
|
3924
|
+
const mod = await import(Bun.pathToFileURL(routeModulePath).href + (isWatchMode ? `?t=${Date.now()}` : ""));
|
|
3925
|
+
const ssr = mod?.ssr;
|
|
3926
|
+
const dataFn = ssr?.data;
|
|
3927
|
+
if (typeof dataFn === "function") {
|
|
3928
|
+
const mockSet = { status: 200 };
|
|
3929
|
+
const result = await dataFn({
|
|
3930
|
+
pathname: route.pattern,
|
|
3931
|
+
params: {},
|
|
3932
|
+
set: mockSet
|
|
3933
|
+
});
|
|
3934
|
+
const entries = extractEntriesFromData(result, route.pattern, baseUrl, sitemapConfig);
|
|
3935
|
+
if (entries.length > 0) {
|
|
3936
|
+
ssrDataRoutes.set(route.pattern, entries);
|
|
3937
|
+
}
|
|
3938
|
+
}
|
|
3939
|
+
} catch {}
|
|
3940
|
+
}
|
|
3875
3941
|
}
|
|
3876
3942
|
return ssrDataRoutes;
|
|
3877
3943
|
}
|
|
@@ -3981,7 +4047,7 @@ function createEntryFromItem(item, routePattern, baseUrl, sitemapConfig) {
|
|
|
3981
4047
|
}
|
|
3982
4048
|
return entry;
|
|
3983
4049
|
}
|
|
3984
|
-
async function discoverSitemapData(cwd,
|
|
4050
|
+
async function discoverSitemapData(cwd, collections2, baseUrl, isWatchMode, sitemapConfig) {
|
|
3985
4051
|
const { staticRoutes, dynamicRoutes } = await discoverRoutes(cwd, isWatchMode);
|
|
3986
4052
|
const collectionsMap = new Map;
|
|
3987
4053
|
for (const collection of collections2) {
|
|
@@ -3990,7 +4056,7 @@ async function discoverSitemapData(cwd, clientDir, collections2, baseUrl, isWatc
|
|
|
3990
4056
|
collectionsMap.set(collection, entries);
|
|
3991
4057
|
}
|
|
3992
4058
|
}
|
|
3993
|
-
const ssrDataRoutes = await discoverSSRDataRoutes2(cwd,
|
|
4059
|
+
const ssrDataRoutes = await discoverSSRDataRoutes2(cwd, staticRoutes, isWatchMode, baseUrl, sitemapConfig);
|
|
3994
4060
|
return {
|
|
3995
4061
|
staticRoutes,
|
|
3996
4062
|
dynamicRoutes,
|
|
@@ -4105,10 +4171,10 @@ async function discoverCollectionFeedItems(cwd, collection, isWatchMode, baseUrl
|
|
|
4105
4171
|
sortByPubDate(items);
|
|
4106
4172
|
return items;
|
|
4107
4173
|
}
|
|
4108
|
-
async function discoverSSRDataFeedItems(
|
|
4174
|
+
async function discoverSSRDataFeedItems(cwd, routePattern, routePath, isWatchMode, baseUrl, rssConfig) {
|
|
4109
4175
|
const items = [];
|
|
4110
4176
|
try {
|
|
4111
|
-
const abs = join(
|
|
4177
|
+
const abs = join(cwd, "src", "client", "routes", routePath);
|
|
4112
4178
|
const mod = await import(pathToFileURL7(abs).href + (isWatchMode ? `?t=${Date.now()}` : ""));
|
|
4113
4179
|
const ssr = mod?.ssr;
|
|
4114
4180
|
const dataFn = ssr?.data;
|
|
@@ -4244,7 +4310,7 @@ function createRSSItemFromData(item, routePattern, baseUrl, rssConfig) {
|
|
|
4244
4310
|
}
|
|
4245
4311
|
return rssItem;
|
|
4246
4312
|
}
|
|
4247
|
-
async function discoverRSSData(cwd,
|
|
4313
|
+
async function discoverRSSData(cwd, collections2, baseUrl, isWatchMode, rssConfig) {
|
|
4248
4314
|
const collectionsMap = new Map;
|
|
4249
4315
|
for (const collection of collections2) {
|
|
4250
4316
|
const items = await discoverCollectionFeedItems(cwd, collection, isWatchMode, baseUrl, rssConfig);
|
|
@@ -4253,18 +4319,48 @@ async function discoverRSSData(cwd, clientDir, collections2, baseUrl, isWatchMod
|
|
|
4253
4319
|
}
|
|
4254
4320
|
}
|
|
4255
4321
|
const ssrDataFeeds = new Map;
|
|
4256
|
-
const
|
|
4257
|
-
|
|
4258
|
-
|
|
4259
|
-
|
|
4260
|
-
|
|
4322
|
+
const bundledRoutes = globalThis.__REROUTE_ROUTES__;
|
|
4323
|
+
if (bundledRoutes && Array.isArray(bundledRoutes)) {
|
|
4324
|
+
const { discoverRoutes: discoverRoutes2 } = await Promise.resolve().then(() => (init_discovery4(), exports_discovery));
|
|
4325
|
+
const { staticRoutes } = await discoverRoutes2(cwd, isWatchMode);
|
|
4326
|
+
for (const route of staticRoutes) {
|
|
4327
|
+
if (rssConfig?.excludeDiscovery?.includes(route.pattern)) {
|
|
4328
|
+
continue;
|
|
4329
|
+
}
|
|
4330
|
+
const bundledRoute = bundledRoutes.find((r) => r?.pattern === route.pattern);
|
|
4331
|
+
if (!bundledRoute)
|
|
4332
|
+
continue;
|
|
4333
|
+
const ssr = bundledRoute?.ssr;
|
|
4334
|
+
const dataFn = ssr?.data;
|
|
4335
|
+
if (typeof dataFn === "function") {
|
|
4336
|
+
try {
|
|
4337
|
+
const mockSet = { status: 200 };
|
|
4338
|
+
const result = await dataFn({
|
|
4339
|
+
pathname: route.pattern,
|
|
4340
|
+
params: {},
|
|
4341
|
+
set: mockSet
|
|
4342
|
+
});
|
|
4343
|
+
const items = extractRSSItemsFromData(result, route.pattern, baseUrl, rssConfig);
|
|
4344
|
+
if (items.length > 0) {
|
|
4345
|
+
ssrDataFeeds.set(route.pattern, items);
|
|
4346
|
+
}
|
|
4347
|
+
} catch {}
|
|
4348
|
+
}
|
|
4261
4349
|
}
|
|
4262
|
-
|
|
4263
|
-
|
|
4264
|
-
|
|
4350
|
+
} else {
|
|
4351
|
+
const { discoverRoutes: discoverRoutes2 } = await Promise.resolve().then(() => (init_discovery4(), exports_discovery));
|
|
4352
|
+
const { staticRoutes } = await discoverRoutes2(cwd, isWatchMode);
|
|
4353
|
+
for (const route of staticRoutes) {
|
|
4354
|
+
if (rssConfig?.excludeDiscovery?.includes(route.pattern)) {
|
|
4355
|
+
continue;
|
|
4356
|
+
}
|
|
4357
|
+
const items = await discoverSSRDataFeedItems(cwd, route.pattern, route.path, isWatchMode, baseUrl, rssConfig);
|
|
4358
|
+
if (items.length > 0) {
|
|
4359
|
+
ssrDataFeeds.set(route.pattern, items);
|
|
4360
|
+
}
|
|
4265
4361
|
}
|
|
4266
4362
|
}
|
|
4267
|
-
const layoutFeeds = await discoverLayoutFeedItems(cwd,
|
|
4363
|
+
const layoutFeeds = await discoverLayoutFeedItems(cwd, isWatchMode, baseUrl, rssConfig);
|
|
4268
4364
|
for (const [pattern, items] of layoutFeeds.entries()) {
|
|
4269
4365
|
const existing = ssrDataFeeds.get(pattern) || [];
|
|
4270
4366
|
ssrDataFeeds.set(pattern, [...existing, ...items]);
|
|
@@ -4288,13 +4384,13 @@ async function loadLayouts(cwd, isWatchMode) {
|
|
|
4288
4384
|
return;
|
|
4289
4385
|
}
|
|
4290
4386
|
}
|
|
4291
|
-
async function processLayoutForRSS(layout,
|
|
4387
|
+
async function processLayoutForRSS(layout, cwd, isWatchMode, baseUrl, rssConfig) {
|
|
4292
4388
|
const pattern = String(layout?.pattern || "/");
|
|
4293
4389
|
const path2 = String(layout?.path || "");
|
|
4294
4390
|
if (!path2)
|
|
4295
4391
|
return null;
|
|
4296
4392
|
try {
|
|
4297
|
-
const abs = join(
|
|
4393
|
+
const abs = join(cwd, "src", "client", "routes", path2);
|
|
4298
4394
|
const layoutMod = await import(pathToFileURL7(abs).href + (isWatchMode ? `?t=${Date.now()}` : ""));
|
|
4299
4395
|
const ssr = layoutMod?.ssr;
|
|
4300
4396
|
const dataFn = ssr?.data;
|
|
@@ -4313,16 +4409,39 @@ async function processLayoutForRSS(layout, clientDir, isWatchMode, baseUrl, rssC
|
|
|
4313
4409
|
} catch {}
|
|
4314
4410
|
return null;
|
|
4315
4411
|
}
|
|
4316
|
-
async function discoverLayoutFeedItems(cwd,
|
|
4412
|
+
async function discoverLayoutFeedItems(cwd, isWatchMode, baseUrl, rssConfig) {
|
|
4317
4413
|
const layoutFeeds = new Map;
|
|
4318
4414
|
const layouts2 = await loadLayouts(cwd, isWatchMode);
|
|
4319
4415
|
if (!Array.isArray(layouts2)) {
|
|
4320
4416
|
return layoutFeeds;
|
|
4321
4417
|
}
|
|
4322
|
-
|
|
4323
|
-
|
|
4324
|
-
|
|
4325
|
-
|
|
4418
|
+
const bundledLayouts = globalThis.__REROUTE_LAYOUTS__;
|
|
4419
|
+
if (bundledLayouts && Array.isArray(bundledLayouts)) {
|
|
4420
|
+
for (const layout of bundledLayouts) {
|
|
4421
|
+
const pattern = String(layout?.pattern || "/");
|
|
4422
|
+
const ssr = layout?.ssr;
|
|
4423
|
+
const dataFn = ssr?.data;
|
|
4424
|
+
if (typeof dataFn === "function") {
|
|
4425
|
+
try {
|
|
4426
|
+
const mockSet = { status: 200 };
|
|
4427
|
+
const result = await dataFn({
|
|
4428
|
+
pathname: pattern,
|
|
4429
|
+
params: {},
|
|
4430
|
+
set: mockSet
|
|
4431
|
+
});
|
|
4432
|
+
const items = extractRSSItemsFromData(result, pattern, baseUrl, rssConfig);
|
|
4433
|
+
if (items.length > 0) {
|
|
4434
|
+
layoutFeeds.set(pattern, items);
|
|
4435
|
+
}
|
|
4436
|
+
} catch {}
|
|
4437
|
+
}
|
|
4438
|
+
}
|
|
4439
|
+
} else {
|
|
4440
|
+
for (const layout of layouts2) {
|
|
4441
|
+
const result = await processLayoutForRSS(layout, cwd, isWatchMode, baseUrl, rssConfig);
|
|
4442
|
+
if (result) {
|
|
4443
|
+
layoutFeeds.set(result.pattern, result.items);
|
|
4444
|
+
}
|
|
4326
4445
|
}
|
|
4327
4446
|
}
|
|
4328
4447
|
return layoutFeeds;
|
|
@@ -4626,10 +4745,10 @@ async function renderSSRDocumentStream(options) {
|
|
|
4626
4745
|
if (debug)
|
|
4627
4746
|
console.log(`[renderStream] ${pathname} - performSSRSetup: ${(performance.now() - t0).toFixed(2)}ms`);
|
|
4628
4747
|
let statusOverride = setup2.preloadStatusOverride;
|
|
4629
|
-
if (setup2.statusContainer.value) {
|
|
4748
|
+
if (setup2.statusContainer.value !== undefined) {
|
|
4630
4749
|
statusOverride = setup2.statusContainer.value;
|
|
4631
4750
|
}
|
|
4632
|
-
if (setup2.metadataResult.statusOverride) {
|
|
4751
|
+
if (setup2.metadataResult.statusOverride !== undefined) {
|
|
4633
4752
|
statusOverride = setup2.metadataResult.statusOverride;
|
|
4634
4753
|
}
|
|
4635
4754
|
const encoder = new TextEncoder;
|
|
@@ -4853,6 +4972,7 @@ export {
|
|
|
4853
4972
|
preloadContentModule,
|
|
4854
4973
|
performSSRSetup,
|
|
4855
4974
|
mergeLayoutData,
|
|
4975
|
+
loadRoutesModule,
|
|
4856
4976
|
loadOGImageComponent,
|
|
4857
4977
|
loadIndexHtml,
|
|
4858
4978
|
loadConfig,
|
|
@@ -4939,4 +5059,4 @@ export {
|
|
|
4939
5059
|
AI_CRAWLERS
|
|
4940
5060
|
};
|
|
4941
5061
|
|
|
4942
|
-
//# debugId=
|
|
5062
|
+
//# debugId=AEB73B7AB4DE746C64756E2164756E21
|