reroute-js 1.0.0-alpha.14 → 1.0.0-alpha.15
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 +107 -63
- package/cli/bin.js.map +5 -5
- package/cli/index.d.ts +1 -1
- package/cli/index.js +28 -11
- package/cli/index.js.map +3 -3
- 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/terminal-ui.d.ts +1 -1
- package/cli/src/commands/lib/theme.d.ts +5 -4
- package/cli/src/commands/lib/theme.d.ts.map +1 -1
- package/cli/src/commands/lib/version.d.ts +1 -1
- package/cli/src/commands/lib/watch.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 +52 -25
- package/core/index.js.map +3 -3
- 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/i18n/catalog.d.ts +1 -1
- package/core/src/i18n/discover.d.ts +1 -1
- package/core/src/i18n/index.d.ts +1 -1
- package/core/src/i18n/messages.d.ts +1 -1
- package/core/src/i18n/negotiate.d.ts +1 -1
- package/core/src/i18n/pathname.d.ts +1 -1
- package/core/src/i18n/resolve.d.ts +1 -1
- package/core/src/i18n/types.d.ts +1 -1
- package/core/src/index.d.ts +1 -1
- package/core/src/llms/discovery.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/cleanup.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/content-path.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/route-match.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 +4 -6
- package/core/src/ssr/lib/styles.d.ts.map +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 +64 -60
- package/elysia/index.js.map +5 -5
- 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/i18n.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/artifacts.d.ts.map +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/liveReloadClient.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/routes/themeCssRefresh.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/i18n/LocaleProvider.d.ts +1 -1
- package/react/src/i18n/helpers.d.ts +1 -1
- package/react/src/i18n/index.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/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/cli/bin.d.ts
CHANGED
package/cli/bin.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env bun
|
|
2
2
|
// @bun
|
|
3
3
|
/**
|
|
4
|
-
* reroute-js v1.0.0-alpha.
|
|
4
|
+
* reroute-js v1.0.0-alpha.15
|
|
5
5
|
*
|
|
6
6
|
* @license MIT
|
|
7
7
|
* @copyright 2026 stewones <hi@stewan.io>
|
|
@@ -68,7 +68,7 @@ async function getVersionString() {
|
|
|
68
68
|
}
|
|
69
69
|
async function getVersion() {
|
|
70
70
|
if (true) {
|
|
71
|
-
return "1.0.0-alpha.
|
|
71
|
+
return "1.0.0-alpha.15";
|
|
72
72
|
}
|
|
73
73
|
const possiblePaths = [
|
|
74
74
|
path.join(import.meta.dir, "../../../../package.json"),
|
|
@@ -86,7 +86,7 @@ async function getVersion() {
|
|
|
86
86
|
}
|
|
87
87
|
async function getCommit() {
|
|
88
88
|
if (true) {
|
|
89
|
-
return "
|
|
89
|
+
return "30816a9";
|
|
90
90
|
}
|
|
91
91
|
return "dev";
|
|
92
92
|
}
|
|
@@ -3835,26 +3835,45 @@ var init_scripts = __esm(() => {
|
|
|
3835
3835
|
|
|
3836
3836
|
// packages/core/src/ssr/lib/styles.ts
|
|
3837
3837
|
import { createHash } from "node:crypto";
|
|
3838
|
-
|
|
3839
|
-
|
|
3838
|
+
import { readdirSync } from "node:fs";
|
|
3839
|
+
function themeCssHash(css) {
|
|
3840
|
+
return createHash("sha1").update(css).digest("hex").slice(0, 8);
|
|
3840
3841
|
}
|
|
3841
|
-
function
|
|
3842
|
-
return
|
|
3842
|
+
function themeCssFileName(css) {
|
|
3843
|
+
return `index.${themeCssHash(css)}.css`;
|
|
3843
3844
|
}
|
|
3844
|
-
|
|
3845
|
-
|
|
3846
|
-
|
|
3847
|
-
|
|
3848
|
-
|
|
3849
|
-
join2(clientDir, "..", "
|
|
3845
|
+
function themeLink(href) {
|
|
3846
|
+
return `<link rel="stylesheet" href="${href}" data-reroute="theme">`;
|
|
3847
|
+
}
|
|
3848
|
+
function bundlesDirs(clientDir) {
|
|
3849
|
+
return [
|
|
3850
|
+
join2(clientDir, "..", ".reroute", "bundles"),
|
|
3851
|
+
join2(clientDir, "..", "..", ".reroute", "bundles"),
|
|
3852
|
+
join2(clientDir, "..", "..", "..", ".reroute", "bundles"),
|
|
3853
|
+
join2(clientDir, "..", "..", "..", "..", ".reroute", "bundles")
|
|
3850
3854
|
];
|
|
3851
|
-
|
|
3852
|
-
|
|
3853
|
-
|
|
3854
|
-
|
|
3855
|
-
|
|
3855
|
+
}
|
|
3856
|
+
async function readFileIfExists(path2) {
|
|
3857
|
+
if (!await Bun.file(path2).exists())
|
|
3858
|
+
return "";
|
|
3859
|
+
const { readFileSync } = await import("node:fs");
|
|
3860
|
+
return readFileSync(path2, "utf-8");
|
|
3861
|
+
}
|
|
3862
|
+
async function readThemeFromBundles(clientDir) {
|
|
3863
|
+
for (const dir of bundlesDirs(clientDir)) {
|
|
3864
|
+
try {
|
|
3865
|
+
const hashed = readdirSync(dir).find((name) => HASHED_THEME_RE.test(name));
|
|
3866
|
+
if (hashed) {
|
|
3867
|
+
const css2 = await readFileIfExists(join2(dir, hashed));
|
|
3868
|
+
if (css2)
|
|
3869
|
+
return { css: css2, href: `/bundles/${hashed}` };
|
|
3870
|
+
}
|
|
3871
|
+
const css = await readFileIfExists(join2(dir, "index.css"));
|
|
3872
|
+
if (css)
|
|
3873
|
+
return { css, href: `/bundles/${themeCssFileName(css)}` };
|
|
3874
|
+
} catch {}
|
|
3856
3875
|
}
|
|
3857
|
-
return
|
|
3876
|
+
return null;
|
|
3858
3877
|
}
|
|
3859
3878
|
function bundledThemeCss() {
|
|
3860
3879
|
return globalThis.__REROUTE_THEME_CSS__ || "";
|
|
@@ -3862,18 +3881,26 @@ function bundledThemeCss() {
|
|
|
3862
3881
|
async function inlineThemeCSS(clientDir, isWatchMode = false) {
|
|
3863
3882
|
try {
|
|
3864
3883
|
if (isWatchMode) {
|
|
3865
|
-
return themeLink(
|
|
3884
|
+
return themeLink(`${THEME_CSS_WATCH_HREF}?t=${Date.now()}`);
|
|
3866
3885
|
}
|
|
3867
|
-
const
|
|
3886
|
+
const fromDisk = await readThemeFromBundles(clientDir);
|
|
3887
|
+
const css = bundledThemeCss() || fromDisk?.css;
|
|
3868
3888
|
if (!css)
|
|
3869
3889
|
return "";
|
|
3870
|
-
|
|
3890
|
+
if (bundledThemeCss()) {
|
|
3891
|
+
return themeLink(`/bundles/${themeCssFileName(css)}`);
|
|
3892
|
+
}
|
|
3893
|
+
if (fromDisk)
|
|
3894
|
+
return themeLink(fromDisk.href);
|
|
3895
|
+
return "";
|
|
3871
3896
|
} catch {
|
|
3872
3897
|
return "";
|
|
3873
3898
|
}
|
|
3874
3899
|
}
|
|
3875
|
-
var
|
|
3876
|
-
var init_styles = () => {
|
|
3900
|
+
var THEME_CSS_WATCH_HREF = "/bundles/index.css", HASHED_THEME_RE;
|
|
3901
|
+
var init_styles = __esm(() => {
|
|
3902
|
+
HASHED_THEME_RE = /^index\.[a-z0-9]{8,}\.css$/i;
|
|
3903
|
+
});
|
|
3877
3904
|
|
|
3878
3905
|
// packages/core/src/ssr/lib/setup.ts
|
|
3879
3906
|
async function performSSRSetup(options, streaming = false) {
|
|
@@ -7753,13 +7780,18 @@ var AUTO_HEADER = `// \uD83D\uDEA8 Auto-generated streaming wrapper by Reroute -
|
|
|
7753
7780
|
var init_suspense = () => {};
|
|
7754
7781
|
|
|
7755
7782
|
// packages/cli/src/commands/lib/theme.ts
|
|
7783
|
+
import { createHash as createHash2 } from "node:crypto";
|
|
7756
7784
|
import { existsSync as existsSync5, readFileSync as readFileSync4 } from "node:fs";
|
|
7757
|
-
import { mkdir as mkdir2, writeFile } from "node:fs/promises";
|
|
7785
|
+
import { mkdir as mkdir2, readdir as readdir7, unlink as unlink2, writeFile } from "node:fs/promises";
|
|
7758
7786
|
import { dirname as dirname6, isAbsolute, join as join10, resolve as resolve2 } from "node:path";
|
|
7759
7787
|
function getCssPaths(cwd) {
|
|
7760
7788
|
const input = join10(cwd, "src/client/index.css");
|
|
7761
|
-
const
|
|
7762
|
-
return { input,
|
|
7789
|
+
const bundlesDir = join10(cwd, ".reroute/bundles");
|
|
7790
|
+
return { input, bundlesDir };
|
|
7791
|
+
}
|
|
7792
|
+
function themeCssFileName2(css) {
|
|
7793
|
+
const hash2 = createHash2("sha1").update(css).digest("hex").slice(0, 8);
|
|
7794
|
+
return `index.${hash2}.css`;
|
|
7763
7795
|
}
|
|
7764
7796
|
function isFileImport(specifier) {
|
|
7765
7797
|
if (specifier.startsWith("http://") || specifier.startsWith("https://") || specifier.startsWith("data:") || specifier.startsWith("/")) {
|
|
@@ -7802,15 +7834,26 @@ ${bundleFile(importedPath)}
|
|
|
7802
7834
|
}
|
|
7803
7835
|
return bundleFile(absEntry);
|
|
7804
7836
|
}
|
|
7837
|
+
async function pruneStaleThemeCss(bundlesDir, keep) {
|
|
7838
|
+
const files = await readdir7(bundlesDir);
|
|
7839
|
+
for (const file of files) {
|
|
7840
|
+
if (HASHED_THEME_RE2.test(file) && file !== keep) {
|
|
7841
|
+
await unlink2(join10(bundlesDir, file));
|
|
7842
|
+
}
|
|
7843
|
+
}
|
|
7844
|
+
}
|
|
7805
7845
|
async function syncThemeCss(cwd) {
|
|
7806
|
-
const { input,
|
|
7846
|
+
const { input, bundlesDir } = getCssPaths(cwd);
|
|
7807
7847
|
if (!existsSync5(input)) {
|
|
7808
7848
|
return false;
|
|
7809
7849
|
}
|
|
7810
|
-
await mkdir2(
|
|
7850
|
+
await mkdir2(bundlesDir, { recursive: true });
|
|
7811
7851
|
try {
|
|
7812
7852
|
const css = bundleCssEntrypoint(input);
|
|
7813
|
-
|
|
7853
|
+
const hashedName = themeCssFileName2(css);
|
|
7854
|
+
await writeFile(join10(bundlesDir, "index.css"), css, "utf-8");
|
|
7855
|
+
await writeFile(join10(bundlesDir, hashedName), css, "utf-8");
|
|
7856
|
+
await pruneStaleThemeCss(bundlesDir, hashedName);
|
|
7814
7857
|
} catch (err) {
|
|
7815
7858
|
const message = err instanceof Error ? err.message : String(err);
|
|
7816
7859
|
if (message.startsWith("[reroute/theme]")) {
|
|
@@ -7819,16 +7862,17 @@ async function syncThemeCss(cwd) {
|
|
|
7819
7862
|
throw new Error(`[reroute/theme] Failed to bundle index.css:
|
|
7820
7863
|
${message}`);
|
|
7821
7864
|
}
|
|
7822
|
-
console.log("[reroute/theme] synced index.css");
|
|
7865
|
+
console.log("[reroute/theme] synced /bundles/index.css");
|
|
7823
7866
|
return true;
|
|
7824
7867
|
}
|
|
7825
|
-
var IMPORT_RE;
|
|
7868
|
+
var HASHED_THEME_RE2, IMPORT_RE;
|
|
7826
7869
|
var init_theme = __esm(() => {
|
|
7870
|
+
HASHED_THEME_RE2 = /^index\.[a-z0-9]{8,}\.css$/i;
|
|
7827
7871
|
IMPORT_RE = /@import\s+(?:url\(\s*)?(?:'([^']+)'|"([^"]+)"|([^'")\s]+))\s*\)?\s*([^;]*);/g;
|
|
7828
7872
|
});
|
|
7829
7873
|
|
|
7830
7874
|
// packages/cli/src/commands/lib/watch.ts
|
|
7831
|
-
import { createHash as
|
|
7875
|
+
import { createHash as createHash3 } from "node:crypto";
|
|
7832
7876
|
import { readFile } from "node:fs/promises";
|
|
7833
7877
|
import { join as join11 } from "node:path";
|
|
7834
7878
|
function isWatchNoise(name) {
|
|
@@ -7843,7 +7887,7 @@ function createContentFingerprint(options) {
|
|
|
7843
7887
|
const settling = Date.now() - startedAt < settleMs;
|
|
7844
7888
|
try {
|
|
7845
7889
|
const buf = await readFile(absPath);
|
|
7846
|
-
const hash2 =
|
|
7890
|
+
const hash2 = createHash3("sha1").update(buf).digest("hex");
|
|
7847
7891
|
const prev = hashes.get(absPath);
|
|
7848
7892
|
if (prev === hash2)
|
|
7849
7893
|
return false;
|
|
@@ -7879,11 +7923,11 @@ __export(exports_gen, {
|
|
|
7879
7923
|
startGenWatch: () => startGenWatch
|
|
7880
7924
|
});
|
|
7881
7925
|
import { watch } from "node:fs";
|
|
7882
|
-
import { copyFile as copyFile2, mkdir as mkdir3, readdir as
|
|
7926
|
+
import { copyFile as copyFile2, mkdir as mkdir3, readdir as readdir8, rm, unlink as unlink3 } from "node:fs/promises";
|
|
7883
7927
|
import { dirname as dirname7, extname as extname4, join as join12 } from "node:path";
|
|
7884
7928
|
import { pathToFileURL as pathToFileURL8 } from "node:url";
|
|
7885
7929
|
async function bundleThemeCssIntoArtifacts(cwd) {
|
|
7886
|
-
const cssPath = join12(cwd, ".reroute", "index.css");
|
|
7930
|
+
const cssPath = join12(cwd, ".reroute", "bundles", "index.css");
|
|
7887
7931
|
const artifactsPath = join12(cwd, OUTPUT_ARTIFACTS);
|
|
7888
7932
|
try {
|
|
7889
7933
|
const cssContent = await Bun.file(cssPath).text();
|
|
@@ -7914,7 +7958,7 @@ async function ensureOutputDir(cwd, options = {}) {
|
|
|
7914
7958
|
if (clean) {
|
|
7915
7959
|
let needsCleanup = false;
|
|
7916
7960
|
try {
|
|
7917
|
-
const entries = await
|
|
7961
|
+
const entries = await readdir8(outputPath);
|
|
7918
7962
|
needsCleanup = entries.length > 0;
|
|
7919
7963
|
} catch {}
|
|
7920
7964
|
if (needsCleanup) {
|
|
@@ -8007,7 +8051,7 @@ function shouldSkipFile(relativePath, entryName) {
|
|
|
8007
8051
|
}
|
|
8008
8052
|
async function scanDirectory(dir, base = "") {
|
|
8009
8053
|
const files = [];
|
|
8010
|
-
const entries = await
|
|
8054
|
+
const entries = await readdir8(dir, { withFileTypes: true });
|
|
8011
8055
|
for (const entry of entries) {
|
|
8012
8056
|
const fullPath = join12(dir, entry.name);
|
|
8013
8057
|
const relativePath = join12(base, entry.name);
|
|
@@ -8026,7 +8070,7 @@ async function scanDirectory(dir, base = "") {
|
|
|
8026
8070
|
}
|
|
8027
8071
|
async function scan404Files(dir, base = "") {
|
|
8028
8072
|
const files = [];
|
|
8029
|
-
const entries = await
|
|
8073
|
+
const entries = await readdir8(dir, { withFileTypes: true });
|
|
8030
8074
|
for (const entry of entries) {
|
|
8031
8075
|
const fullPath = join12(dir, entry.name);
|
|
8032
8076
|
const relativePath = join12(base, entry.name);
|
|
@@ -8042,7 +8086,7 @@ async function scan404Files(dir, base = "") {
|
|
|
8042
8086
|
}
|
|
8043
8087
|
async function scanOgFiles(dir, base = "") {
|
|
8044
8088
|
const files = [];
|
|
8045
|
-
const entries = await
|
|
8089
|
+
const entries = await readdir8(dir, { withFileTypes: true });
|
|
8046
8090
|
for (const entry of entries) {
|
|
8047
8091
|
const fullPath = join12(dir, entry.name);
|
|
8048
8092
|
const relativePath = join12(base, entry.name);
|
|
@@ -8352,7 +8396,7 @@ function isContentFileName(name) {
|
|
|
8352
8396
|
}
|
|
8353
8397
|
async function listLocaleContentFiles(collectionDir, locale) {
|
|
8354
8398
|
try {
|
|
8355
|
-
const nested = await
|
|
8399
|
+
const nested = await readdir8(join12(collectionDir, locale), {
|
|
8356
8400
|
withFileTypes: true
|
|
8357
8401
|
});
|
|
8358
8402
|
const files = [];
|
|
@@ -8368,7 +8412,7 @@ async function listLocaleContentFiles(collectionDir, locale) {
|
|
|
8368
8412
|
}
|
|
8369
8413
|
async function listContentFiles2(collectionDir) {
|
|
8370
8414
|
try {
|
|
8371
|
-
const entries = await
|
|
8415
|
+
const entries = await readdir8(collectionDir, { withFileTypes: true });
|
|
8372
8416
|
const files = [];
|
|
8373
8417
|
for (const entry of entries) {
|
|
8374
8418
|
if (entry.isFile() && isContentFileName(entry.name)) {
|
|
@@ -8402,7 +8446,7 @@ async function loadContentMeta(absSrc, buildSrc, isMarkdown) {
|
|
|
8402
8446
|
const m = await import(pathToFileURL8(tmp).href);
|
|
8403
8447
|
return m.meta || {};
|
|
8404
8448
|
} finally {
|
|
8405
|
-
await
|
|
8449
|
+
await unlink3(tmp).catch(() => {});
|
|
8406
8450
|
}
|
|
8407
8451
|
}
|
|
8408
8452
|
function serializeConfig(config2) {
|
|
@@ -8541,7 +8585,7 @@ async function buildSingleContentChunk(cwd, collection, fileRef, contentDir, arg
|
|
|
8541
8585
|
async function buildContentChunks(cwd, args = [], defaultLocale = "en-US") {
|
|
8542
8586
|
const routesRoot = join12(cwd, ROUTES_DIR);
|
|
8543
8587
|
console.log(`[reroute/content] scan ${routesRoot}`);
|
|
8544
|
-
const collections2 = await
|
|
8588
|
+
const collections2 = await readdir8(routesRoot, { withFileTypes: true });
|
|
8545
8589
|
const results = [];
|
|
8546
8590
|
for (const c of collections2) {
|
|
8547
8591
|
if (!c.isDirectory())
|
|
@@ -8658,7 +8702,7 @@ async function buildSearchIndex(cwd, config2, args = []) {
|
|
|
8658
8702
|
maxHeadingLevel = 6
|
|
8659
8703
|
} = searchConfig;
|
|
8660
8704
|
const routesRoot = join12(cwd, ROUTES_DIR);
|
|
8661
|
-
const collections2 = await
|
|
8705
|
+
const collections2 = await readdir8(routesRoot, { withFileTypes: true });
|
|
8662
8706
|
const i18n2 = await discoverI18n(cwd, config2.i18n);
|
|
8663
8707
|
const defaultLocale = i18n2.defaultLocale;
|
|
8664
8708
|
const searchIndex = [];
|
|
@@ -8741,7 +8785,7 @@ async function preprocessMarkdownFiles(cwd, config2) {
|
|
|
8741
8785
|
async function scanMarkdown(dir, base = "") {
|
|
8742
8786
|
const files = [];
|
|
8743
8787
|
try {
|
|
8744
|
-
const entries = await
|
|
8788
|
+
const entries = await readdir8(dir, { withFileTypes: true });
|
|
8745
8789
|
for (const entry of entries) {
|
|
8746
8790
|
const fullPath = join12(dir, entry.name);
|
|
8747
8791
|
const relativePath = join12(base, entry.name);
|
|
@@ -8901,7 +8945,7 @@ async function buildEntrypointBundle(cwd, args = []) {
|
|
|
8901
8945
|
}
|
|
8902
8946
|
const newFiles = new Set(outputs.map((o) => o.fileName));
|
|
8903
8947
|
try {
|
|
8904
|
-
const existingFiles = await
|
|
8948
|
+
const existingFiles = await readdir8(bundlesDir);
|
|
8905
8949
|
for (const file of existingFiles) {
|
|
8906
8950
|
if (/^(index|chunk|asset)\.[a-z0-9]+\.(js|css|js\.map|css\.map)(\.gz|\.br)?$/i.test(file) && !newFiles.has(file.replace(/\.(gz|br)$/, ""))) {
|
|
8907
8951
|
await rm(join12(bundlesDir, file), { force: true });
|
|
@@ -9042,7 +9086,7 @@ async function generate(cwd, args = [], options = {}) {
|
|
|
9042
9086
|
const contentRoutes = [];
|
|
9043
9087
|
const collectionsDir = join12(cwd, ".reroute", "collections");
|
|
9044
9088
|
try {
|
|
9045
|
-
const collectionFiles = await
|
|
9089
|
+
const collectionFiles = await readdir8(collectionsDir);
|
|
9046
9090
|
for (const file of collectionFiles) {
|
|
9047
9091
|
if (file.endsWith(".js")) {
|
|
9048
9092
|
const collectionPath = join12(collectionsDir, file);
|
|
@@ -104578,7 +104622,7 @@ import {
|
|
|
104578
104622
|
cpSync,
|
|
104579
104623
|
existsSync as existsSync9,
|
|
104580
104624
|
mkdirSync,
|
|
104581
|
-
readdirSync
|
|
104625
|
+
readdirSync as readdirSync2
|
|
104582
104626
|
} from "node:fs";
|
|
104583
104627
|
import { join as join16 } from "node:path";
|
|
104584
104628
|
function copyAssetsToReroute(cwd, sourceAssetsDir, rerouteAssetsDir) {
|
|
@@ -104594,7 +104638,7 @@ function copyAssetsToReroute(cwd, sourceAssetsDir, rerouteAssetsDir) {
|
|
|
104594
104638
|
}
|
|
104595
104639
|
function countFiles(dir) {
|
|
104596
104640
|
let count = 0;
|
|
104597
|
-
const entries =
|
|
104641
|
+
const entries = readdirSync2(dir, { withFileTypes: true });
|
|
104598
104642
|
for (const entry of entries) {
|
|
104599
104643
|
if (entry.isDirectory()) {
|
|
104600
104644
|
count += countFiles(join16(dir, entry.name));
|
|
@@ -104860,7 +104904,7 @@ __export(exports_analyze, {
|
|
|
104860
104904
|
default: () => analyze
|
|
104861
104905
|
});
|
|
104862
104906
|
import { existsSync as existsSync11, statSync } from "node:fs";
|
|
104863
|
-
import { readdir as
|
|
104907
|
+
import { readdir as readdir9, readFile as readFile2, stat as stat6, writeFile as writeFile2 } from "node:fs/promises";
|
|
104864
104908
|
import { basename as basename4, join as join18, relative as relative3 } from "node:path";
|
|
104865
104909
|
import Table from "cli-table3";
|
|
104866
104910
|
async function findChunkBundles(cwd) {
|
|
@@ -104868,12 +104912,12 @@ async function findChunkBundles(cwd) {
|
|
|
104868
104912
|
const chunksDir = join18(cwd, ".reroute", "chunks");
|
|
104869
104913
|
if (!existsSync11(chunksDir))
|
|
104870
104914
|
return bundles;
|
|
104871
|
-
const collections2 = await
|
|
104915
|
+
const collections2 = await readdir9(chunksDir, { withFileTypes: true });
|
|
104872
104916
|
for (const collection of collections2) {
|
|
104873
104917
|
if (!collection.isDirectory())
|
|
104874
104918
|
continue;
|
|
104875
104919
|
const collectionDir = join18(chunksDir, collection.name);
|
|
104876
|
-
const files = await
|
|
104920
|
+
const files = await readdir9(collectionDir);
|
|
104877
104921
|
for (const file of files) {
|
|
104878
104922
|
if (!file.endsWith(".js"))
|
|
104879
104923
|
continue;
|
|
@@ -104898,7 +104942,7 @@ async function findDistBundles(cwd) {
|
|
|
104898
104942
|
const distDir = join18(cwd, "dist");
|
|
104899
104943
|
if (!existsSync11(distDir))
|
|
104900
104944
|
return bundles;
|
|
104901
|
-
const files = await
|
|
104945
|
+
const files = await readdir9(distDir);
|
|
104902
104946
|
for (const file of files) {
|
|
104903
104947
|
const filePath = join18(distDir, file);
|
|
104904
104948
|
const stats = statSync(filePath);
|
|
@@ -105357,7 +105401,7 @@ async function generateHTMLReport(stats, depTree, mainInfo, browserDepTree, brow
|
|
|
105357
105401
|
try {
|
|
105358
105402
|
const distDir = join18(process.cwd(), "dist");
|
|
105359
105403
|
if (existsSync11(distDir)) {
|
|
105360
|
-
const files = await
|
|
105404
|
+
const files = await readdir9(distDir);
|
|
105361
105405
|
for (const file of files) {
|
|
105362
105406
|
const filePath = join18(distDir, file);
|
|
105363
105407
|
const stats2 = statSync(filePath);
|
|
@@ -106843,7 +106887,7 @@ async function printConsoleReport(stats, depTree, mainInfo, browserDepTree, brow
|
|
|
106843
106887
|
try {
|
|
106844
106888
|
const distDir = join18(process.cwd(), "dist");
|
|
106845
106889
|
if (existsSync11(distDir)) {
|
|
106846
|
-
const files = await
|
|
106890
|
+
const files = await readdir9(distDir);
|
|
106847
106891
|
for (const file of files) {
|
|
106848
106892
|
const filePath = join18(distDir, file);
|
|
106849
106893
|
const stats2 = statSync(filePath);
|
|
@@ -107087,7 +107131,7 @@ __export(exports_og, {
|
|
|
107087
107131
|
default: () => og2
|
|
107088
107132
|
});
|
|
107089
107133
|
import { spawn as spawn4 } from "node:child_process";
|
|
107090
|
-
import { readdir as
|
|
107134
|
+
import { readdir as readdir10 } from "node:fs/promises";
|
|
107091
107135
|
import { join as join19 } from "node:path";
|
|
107092
107136
|
function getPortFromConfig(baseUrl) {
|
|
107093
107137
|
if (!baseUrl)
|
|
@@ -107165,7 +107209,7 @@ Error output:`, errorOutput);
|
|
|
107165
107209
|
}
|
|
107166
107210
|
async function scanForOgTemplates(dir, base, routes) {
|
|
107167
107211
|
try {
|
|
107168
|
-
const entries = await
|
|
107212
|
+
const entries = await readdir10(dir, { withFileTypes: true });
|
|
107169
107213
|
for (const entry of entries) {
|
|
107170
107214
|
const fullPath = join19(dir, entry.name);
|
|
107171
107215
|
const relativePath = join19(base, entry.name);
|
|
@@ -107185,13 +107229,13 @@ function findFirstContentFile(contentFiles) {
|
|
|
107185
107229
|
}
|
|
107186
107230
|
async function addContentRoutes(routesPath, routes) {
|
|
107187
107231
|
try {
|
|
107188
|
-
const entries = await
|
|
107232
|
+
const entries = await readdir10(routesPath, { withFileTypes: true });
|
|
107189
107233
|
for (const entry of entries) {
|
|
107190
107234
|
if (!entry.isDirectory())
|
|
107191
107235
|
continue;
|
|
107192
107236
|
const contentDir = join19(routesPath, entry.name, "content");
|
|
107193
107237
|
try {
|
|
107194
|
-
const contentFiles = await
|
|
107238
|
+
const contentFiles = await readdir10(contentDir);
|
|
107195
107239
|
if (contentFiles.length === 0)
|
|
107196
107240
|
continue;
|
|
107197
107241
|
const firstFile = findFirstContentFile(contentFiles);
|
|
@@ -107469,7 +107513,7 @@ async function getVersionString2() {
|
|
|
107469
107513
|
}
|
|
107470
107514
|
async function getVersion2() {
|
|
107471
107515
|
if (true) {
|
|
107472
|
-
return "1.0.0-alpha.
|
|
107516
|
+
return "1.0.0-alpha.15";
|
|
107473
107517
|
}
|
|
107474
107518
|
const possiblePaths = [
|
|
107475
107519
|
path3.join(import.meta.dir, "../../../package.json"),
|
|
@@ -107486,10 +107530,10 @@ async function getVersion2() {
|
|
|
107486
107530
|
}
|
|
107487
107531
|
async function getCommit2() {
|
|
107488
107532
|
if (true) {
|
|
107489
|
-
return "
|
|
107533
|
+
return "30816a9";
|
|
107490
107534
|
}
|
|
107491
107535
|
return "dev";
|
|
107492
107536
|
}
|
|
107493
107537
|
main();
|
|
107494
107538
|
|
|
107495
|
-
//# debugId=
|
|
107539
|
+
//# debugId=67BE3770B15AEEBA64756E2164756E21
|