reroute-js 0.8.0 → 0.9.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/_/basic/package.json +1 -0
- package/_/basic/src/client/index.html +0 -1
- package/_/blog/package.json +1 -0
- package/_/store/package.json +1 -0
- package/cli/bin.d.ts +1 -1
- package/cli/bin.js +589 -615
- package/cli/bin.js.map +19 -24
- package/cli/index.d.ts +1 -1
- package/cli/index.js +48 -25
- package/cli/index.js.map +5 -5
- package/cli/src/cli.d.ts +1 -1
- package/cli/src/commands/analyze.d.ts +1 -1
- package/cli/src/commands/build.d.ts +3 -4
- package/cli/src/commands/build.d.ts.map +1 -1
- package/cli/src/commands/dev.d.ts +2 -3
- package/cli/src/commands/dev.d.ts.map +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/init.d.ts +1 -1
- package/cli/src/commands/start.d.ts +3 -4
- package/cli/src/commands/start.d.ts.map +1 -1
- package/cli/src/libs/command.d.ts +1 -1
- package/cli/src/libs/index.d.ts +1 -1
- package/cli/src/libs/log.d.ts +1 -1
- package/cli/src/libs/log.d.ts.map +1 -1
- package/cli/src/libs/markdown-processor.d.ts +2 -1
- package/cli/src/libs/markdown-processor.d.ts.map +1 -1
- package/cli/src/libs/markdown.d.ts +1 -1
- package/cli/src/libs/production.d.ts +1 -1
- package/cli/src/libs/server.d.ts +18 -0
- package/cli/src/libs/server.d.ts.map +1 -0
- package/cli/src/libs/tailwind.d.ts +2 -2
- package/cli/src/libs/tailwind.d.ts.map +1 -1
- package/cli/src/libs/version.d.ts +1 -1
- package/core/index.d.ts +1 -1
- package/core/index.js +130 -351
- package/core/index.js.map +8 -11
- package/core/src/bundler/hash.d.ts +1 -1
- package/core/src/bundler/index.d.ts +1 -2
- package/core/src/bundler/index.d.ts.map +1 -1
- package/core/src/content/discovery.d.ts +1 -3
- package/core/src/content/discovery.d.ts.map +1 -1
- package/core/src/content/index.d.ts +1 -2
- package/core/src/content/index.d.ts.map +1 -1
- package/core/src/content/metadata.d.ts +1 -1
- package/core/src/index.d.ts +1 -1
- package/core/src/ssr/data.d.ts +1 -1
- package/core/src/ssr/index.d.ts +1 -1
- package/core/src/ssr/modules.d.ts +1 -1
- package/core/src/ssr/render.d.ts +1 -1
- package/core/src/ssr/render.d.ts.map +1 -1
- package/core/src/ssr/seed.d.ts +1 -1
- package/core/src/template/html.d.ts +1 -1
- package/core/src/template/index.d.ts +1 -1
- package/core/src/types.d.ts +7 -19
- package/core/src/types.d.ts.map +1 -1
- package/core/src/utils/cache.d.ts +1 -1
- package/core/src/utils/compression.d.ts +2 -1
- package/core/src/utils/compression.d.ts.map +1 -1
- package/core/src/utils/index.d.ts +1 -1
- package/core/src/utils/mime.d.ts +1 -1
- package/core/src/utils/path.d.ts +1 -1
- package/elysia/index.d.ts +1 -1
- package/elysia/index.js +391 -665
- package/elysia/index.js.map +14 -17
- package/elysia/src/index.d.ts +1 -1
- package/elysia/src/libs/cache.d.ts +14 -0
- package/elysia/src/libs/cache.d.ts.map +1 -0
- package/elysia/src/libs/http.d.ts +1 -1
- package/elysia/src/libs/image.d.ts +1 -1
- package/elysia/src/libs/image.d.ts.map +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 +9 -2
- package/elysia/src/routes/artifacts.d.ts.map +1 -1
- package/elysia/src/routes/content.d.ts +3 -2
- package/elysia/src/routes/content.d.ts.map +1 -1
- package/elysia/src/routes/dev.d.ts +1 -1
- package/elysia/src/routes/dev.d.ts.map +1 -1
- package/elysia/src/routes/image.d.ts +1 -1
- package/elysia/src/routes/ssr.d.ts +2 -2
- package/elysia/src/routes/ssr.d.ts.map +1 -1
- package/elysia/src/routes/static.d.ts +2 -5
- package/elysia/src/routes/static.d.ts.map +1 -1
- package/elysia/src/types.d.ts +10 -3
- package/elysia/src/types.d.ts.map +1 -1
- package/package.json +4 -4
- package/react/index.d.ts +1 -1
- package/react/index.js +80 -65
- package/react/index.js.map +5 -4
- 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/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/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/useSearchParams.d.ts +1 -1
- package/react/src/index.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/react/src/utils/content.d.ts +1 -1
- package/react/src/utils/head.d.ts +1 -1
- package/react/src/utils/index.d.ts +2 -1
- package/react/src/utils/index.d.ts.map +1 -1
- package/react/src/utils/lazy-route.d.ts +41 -0
- package/react/src/utils/lazy-route.d.ts.map +1 -0
- package/cli/src/commands/boot.d.ts +0 -18
- package/cli/src/commands/boot.d.ts.map +0 -1
- package/core/src/bundler/transpile.d.ts +0 -13
- package/core/src/bundler/transpile.d.ts.map +0 -1
- package/core/src/content/registry.d.ts +0 -11
- package/core/src/content/registry.d.ts.map +0 -1
package/cli/index.d.ts
CHANGED
package/cli/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* reroute-js v0.
|
|
2
|
+
* reroute-js v0.9.1
|
|
3
3
|
*
|
|
4
4
|
* @license MIT
|
|
5
5
|
* @copyright 2025 stewones <hi@stewan.io>
|
|
@@ -41,7 +41,6 @@ var PREFIX_COLORS = {
|
|
|
41
41
|
"[reroute/markdown]": "{yellow-fg}",
|
|
42
42
|
"[reroute/tailwind]": "{red-fg}",
|
|
43
43
|
"[reroute/mdx]": "{bright-red-fg}",
|
|
44
|
-
"[reroute/boot]": "{bright-yellow-fg}",
|
|
45
44
|
"[reroute/dev]": "{green-fg}",
|
|
46
45
|
"[reroute/start]": "{bright-cyan-fg}",
|
|
47
46
|
"[reroute/build]": "{bright-magenta-fg}",
|
|
@@ -312,14 +311,27 @@ async function compileMdx(content, cwd, options = {}) {
|
|
|
312
311
|
});
|
|
313
312
|
return String(result);
|
|
314
313
|
} catch (error) {
|
|
315
|
-
|
|
314
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
315
|
+
const errorLocation = error && typeof error === "object" && "place" in error && error.place && typeof error.place === "object" ? `at line ${error.place.line || "?"}, column ${error.place.column || "?"}` : "";
|
|
316
|
+
const fileInfo = options.filename ? ` in ${options.filename}` : "";
|
|
317
|
+
console.warn(`[reroute/mdx] Compilation failed${fileInfo}${errorLocation ? ` ${errorLocation}` : ""}: ${errorMessage}`);
|
|
318
|
+
console.warn("[reroute/mdx] Falling back to react-markdown");
|
|
316
319
|
return null;
|
|
317
320
|
}
|
|
318
321
|
}
|
|
319
322
|
async function generateMarkdownModule(processed, cwd, options = {}) {
|
|
320
323
|
const { frontmatter, content } = processed;
|
|
321
|
-
const {
|
|
322
|
-
|
|
324
|
+
const {
|
|
325
|
+
enableGfm = true,
|
|
326
|
+
theme = "github-dark",
|
|
327
|
+
isMdx = false,
|
|
328
|
+
filename
|
|
329
|
+
} = options;
|
|
330
|
+
const compiledMdx = await compileMdx(content, cwd, {
|
|
331
|
+
enableGfm,
|
|
332
|
+
theme,
|
|
333
|
+
filename
|
|
334
|
+
});
|
|
323
335
|
if (compiledMdx) {
|
|
324
336
|
return `// Generated from ${isMdx ? "MDX" : "Markdown"} file with @mdx-js/mdx
|
|
325
337
|
|
|
@@ -337,7 +349,6 @@ export const ssr = {
|
|
|
337
349
|
};
|
|
338
350
|
`;
|
|
339
351
|
}
|
|
340
|
-
console.warn("[reroute/mdx] MDX compile unavailable; falling back to react-markdown");
|
|
341
352
|
const escapedContent = content.replace(/\\/g, "\\\\").replace(/`/g, "\\`").replace(/\$/g, "\\$");
|
|
342
353
|
const pluginImports = [];
|
|
343
354
|
const remarkPluginsList = [];
|
|
@@ -433,7 +444,7 @@ function getMarkdownRouteName(filePath) {
|
|
|
433
444
|
}
|
|
434
445
|
// packages/cli/src/libs/production.ts
|
|
435
446
|
function isProductionMode(args = []) {
|
|
436
|
-
return
|
|
447
|
+
return Bun.env.NODE_ENV === "production" || args.includes("--prod");
|
|
437
448
|
}
|
|
438
449
|
function ensureProductionEnv(args = []) {
|
|
439
450
|
if (args.includes("--prod")) {
|
|
@@ -449,20 +460,28 @@ import { spawn } from "node:child_process";
|
|
|
449
460
|
import { existsSync as existsSync4, readFileSync as readFileSync3 } from "node:fs";
|
|
450
461
|
import { join as join4 } from "node:path";
|
|
451
462
|
function isTailwindAvailable(cwd) {
|
|
452
|
-
const
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
}
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
463
|
+
const pathsToTry = [
|
|
464
|
+
join4(cwd, "package.json"),
|
|
465
|
+
join4(cwd, "../package.json"),
|
|
466
|
+
join4(cwd, "../../package.json"),
|
|
467
|
+
join4(cwd, "../../../package.json")
|
|
468
|
+
];
|
|
469
|
+
for (const packageJsonPath of pathsToTry) {
|
|
470
|
+
if (!existsSync4(packageJsonPath)) {
|
|
471
|
+
continue;
|
|
472
|
+
}
|
|
473
|
+
try {
|
|
474
|
+
const packageJson = JSON.parse(readFileSync3(packageJsonPath, "utf-8"));
|
|
475
|
+
const deps = {
|
|
476
|
+
...packageJson.dependencies,
|
|
477
|
+
...packageJson.devDependencies
|
|
478
|
+
};
|
|
479
|
+
if ("@tailwindcss/cli" in deps) {
|
|
480
|
+
return true;
|
|
481
|
+
}
|
|
482
|
+
} catch {}
|
|
465
483
|
}
|
|
484
|
+
return false;
|
|
466
485
|
}
|
|
467
486
|
function getTailwindPaths(cwd) {
|
|
468
487
|
const input = join4(cwd, "src/client/theme.css");
|
|
@@ -494,12 +513,16 @@ function resolveTailwindBin(cwd) {
|
|
|
494
513
|
}
|
|
495
514
|
return join4(cwd, "node_modules/.bin/tailwindcss");
|
|
496
515
|
}
|
|
497
|
-
async function buildTailwind(cwd) {
|
|
516
|
+
async function buildTailwind(cwd, minify = false) {
|
|
498
517
|
const { input, output } = getTailwindPaths(cwd);
|
|
499
518
|
return new Promise((resolve, reject) => {
|
|
500
519
|
const tailwindBin = resolveTailwindBin(cwd);
|
|
501
520
|
const args = ["-i", input, "-o", output];
|
|
502
|
-
|
|
521
|
+
if (minify) {
|
|
522
|
+
args.push("--minify");
|
|
523
|
+
}
|
|
524
|
+
const argsStr = args.join(" ");
|
|
525
|
+
console.log(`[reroute/tailwind] build start: ${argsStr}`);
|
|
503
526
|
const tailwind = spawn(tailwindBin, args, {
|
|
504
527
|
cwd,
|
|
505
528
|
stdio: "pipe"
|
|
@@ -529,10 +552,10 @@ async function buildTailwind(cwd) {
|
|
|
529
552
|
});
|
|
530
553
|
});
|
|
531
554
|
}
|
|
532
|
-
async function buildTailwindIfConfigured(cwd) {
|
|
555
|
+
async function buildTailwindIfConfigured(cwd, minify = false) {
|
|
533
556
|
try {
|
|
534
557
|
if (isTailwindAvailable(cwd) && hasTailwindInput(cwd)) {
|
|
535
|
-
await buildTailwind(cwd);
|
|
558
|
+
await buildTailwind(cwd, minify);
|
|
536
559
|
return true;
|
|
537
560
|
}
|
|
538
561
|
return false;
|
|
@@ -561,4 +584,4 @@ export {
|
|
|
561
584
|
blessedToAnsi
|
|
562
585
|
};
|
|
563
586
|
|
|
564
|
-
//# debugId=
|
|
587
|
+
//# debugId=A40254E02D6E84AA64756E2164756E21
|
package/cli/index.js.map
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
"sources": ["../../packages/cli/src/libs/command.ts", "../../packages/cli/src/libs/log.ts", "../../packages/cli/src/libs/markdown.ts", "../../packages/cli/src/libs/markdown-processor.ts", "../../packages/cli/src/libs/production.ts", "../../packages/cli/src/libs/tailwind.ts"],
|
|
4
4
|
"sourcesContent": [
|
|
5
5
|
"import { existsSync } from 'node:fs';\nimport { join } from 'node:path';\n\n/**\n * Get the reroute command to execute\n * Handles both development mode (running from source) and installed mode\n */\nexport function getRerouteCommand(): string {\n\t// Check if we're running from source (development mode)\n\t// Look for bin.ts in the expected location relative to this file\n\tconst binPath = join(import.meta.dir, '..', '..', 'bin.ts');\n\tconst isBunDev = existsSync(binPath);\n\n\tif (isBunDev) {\n\t\t// Running via bun during development from source\n\t\treturn `bun ${binPath}`;\n\t}\n\n\t// Check for reroute binary in node_modules/.bin, checking up to 3 levels up\n\tconst cwd = process.cwd();\n\tconst nodeModulesPaths = [\n\t\tjoin(cwd, 'node_modules', '.bin', 'reroute'),\n\t\tjoin(cwd, '..', 'node_modules', '.bin', 'reroute'),\n\t\tjoin(cwd, '..', '..', 'node_modules', '.bin', 'reroute'),\n\t\tjoin(cwd, '..', '..', '..', 'node_modules', '.bin', 'reroute'),\n\t];\n\n\tfor (const binPath of nodeModulesPaths) {\n\t\tif (existsSync(binPath)) {\n\t\t\treturn binPath;\n\t\t}\n\t}\n\n\t// Fallback: assume reroute is installed globally and available in PATH\n\treturn 'reroute';\n}\n",
|
|
6
|
-
"/**\n * Log colorization utilities\n *\n * Provides colorization for log prefixes in both blessed (TUI) and ANSI (console) formats.\n * Consumers can use [api] and [app] prefixes to differentiate their application logs.\n */\n\n/**\n * Map of prefix patterns to blessed color tags\n * Each prefix has a unique color for easy visual distinction\n */\nconst PREFIX_COLORS: Record<string, string> = {\n\t'[reroute]': '{cyan-fg}', // Base reroute logs - cyan\n\t'[reroute/gen]': '{bright-blue-fg}', // Generator - bright blue\n\t'[reroute/content]': '{magenta-fg}', // Content - magenta\n\t'[reroute/markdown]': '{yellow-fg}', // Markdown - yellow\n\t'[reroute/tailwind]': '{red-fg}', // Tailwind - red\n\t'[reroute/mdx]': '{bright-red-fg}', // MDX - bright red\n\t'[reroute/
|
|
6
|
+
"/**\n * Log colorization utilities\n *\n * Provides colorization for log prefixes in both blessed (TUI) and ANSI (console) formats.\n * Consumers can use [api] and [app] prefixes to differentiate their application logs.\n */\n\n/**\n * Map of prefix patterns to blessed color tags\n * Each prefix has a unique color for easy visual distinction\n */\nconst PREFIX_COLORS: Record<string, string> = {\n\t'[reroute]': '{cyan-fg}', // Base reroute logs - cyan\n\t'[reroute/gen]': '{bright-blue-fg}', // Generator - bright blue\n\t'[reroute/content]': '{magenta-fg}', // Content - magenta\n\t'[reroute/markdown]': '{yellow-fg}', // Markdown - yellow\n\t'[reroute/tailwind]': '{red-fg}', // Tailwind - red\n\t'[reroute/mdx]': '{bright-red-fg}', // MDX - bright red\n\t'[reroute/dev]': '{green-fg}', // Dev command - green\n\t'[reroute/start]': '{bright-cyan-fg}', // Start command - bright cyan\n\t'[reroute/build]': '{bright-magenta-fg}', // Build command - bright magenta\n\t'[reroute/analyze]': '{bright-green-fg}', // Analyze command - bright green\n\t'[api]': '{blue-fg}', // API logs - blue\n\t'[app]': '{bright-green-fg}', // App logs - bright green\n};\n\n/**\n * Colorize log prefixes using blessed color tags (for TUI output)\n *\n * @param text - The log text to colorize\n * @returns Text with colorized prefixes using blessed tags\n */\nexport function colorizeLogPrefix(text: string): string {\n\tlet colored = text;\n\t// Sort prefixes by length (longest first) to match more specific prefixes before general ones\n\t// e.g., [reroute/markdown] should match before [reroute]\n\tconst sortedPrefixes = Object.entries(PREFIX_COLORS).sort(\n\t\t([a], [b]) => b.length - a.length,\n\t);\n\n\tfor (const [prefix, colorTag] of sortedPrefixes) {\n\t\t// Replace prefix with colored version\n\t\tcolored = colored.replace(\n\t\t\tnew RegExp(`(${prefix.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')})`, 'g'),\n\t\t\t`${colorTag}$1{/}`,\n\t\t);\n\t}\n\n\treturn colored;\n}\n\n/**\n * Convert blessed color tags to ANSI escape codes (for console output)\n *\n * @param text - Text with blessed color tags\n * @returns Text with ANSI escape codes\n */\nexport function blessedToAnsi(text: string): string {\n\treturn (\n\t\ttext\n\t\t\t// Standard colors\n\t\t\t.replace(/\\{cyan-fg\\}/g, '\\x1b[36m')\n\t\t\t.replace(/\\{blue-fg\\}/g, '\\x1b[34m')\n\t\t\t.replace(/\\{magenta-fg\\}/g, '\\x1b[35m')\n\t\t\t.replace(/\\{yellow-fg\\}/g, '\\x1b[33m')\n\t\t\t.replace(/\\{green-fg\\}/g, '\\x1b[32m')\n\t\t\t.replace(/\\{red-fg\\}/g, '\\x1b[31m')\n\t\t\t// Bright colors\n\t\t\t.replace(/\\{bright-cyan-fg\\}/g, '\\x1b[96m')\n\t\t\t.replace(/\\{bright-blue-fg\\}/g, '\\x1b[94m')\n\t\t\t.replace(/\\{bright-magenta-fg\\}/g, '\\x1b[95m')\n\t\t\t.replace(/\\{bright-yellow-fg\\}/g, '\\x1b[93m')\n\t\t\t.replace(/\\{bright-green-fg\\}/g, '\\x1b[92m')\n\t\t\t.replace(/\\{bright-red-fg\\}/g, '\\x1b[91m')\n\t\t\t.replace(/\\{\\/\\}/g, '\\x1b[0m')\n\t);\n}\n\n/**\n * Colorize log prefixes and convert to ANSI codes (for console output)\n *\n * @param text - The log text to colorize\n * @returns Text with colorized prefixes using ANSI escape codes\n */\nexport function colorizeLogPrefixAnsi(text: string): string {\n\treturn blessedToAnsi(colorizeLogPrefix(text));\n}\n\n/**\n * Create a handler function for server output that colorizes logs\n *\n * @param buffer - Reference to a buffer string for incomplete lines\n * @returns Handler function for Buffer data\n */\nexport function createServerOutputHandler(buffer: { current: string }) {\n\treturn (data: Buffer) => {\n\t\tconst text = buffer.current + data.toString();\n\t\tconst lines = text.split('\\n');\n\t\tbuffer.current = lines.pop() || ''; // Keep last incomplete line\n\n\t\tfor (const line of lines) {\n\t\t\t// Skip empty lines\n\t\t\tconst trimmedLine = line.trim();\n\t\t\tif (!trimmedLine) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Colorize the line (preserves existing prefixes or leaves unprefixed lines as-is)\n\t\t\tconst ansiColored = colorizeLogPrefixAnsi(line);\n\t\t\tconsole.log(ansiColored);\n\t\t}\n\t};\n}\n",
|
|
7
7
|
"/**\n * Markdown integration utility\n *\n * Manages markdown and syntax highlighting packages for the Reroute framework\n */\n\nimport { existsSync, readFileSync } from 'node:fs';\nimport { dirname, join } from 'node:path';\n\n/**\n * Check if a package is available in package.json, searching up to 5 parent directories\n */\nfunction isPackageAvailable(cwd: string, packageName: string): boolean {\n\tlet currentDir = cwd;\n\n\t// Check up to 5 levels up\n\tfor (let i = 0; i < 5; i++) {\n\t\tconst packageJsonPath = join(currentDir, 'package.json');\n\n\t\tif (existsSync(packageJsonPath)) {\n\t\t\ttry {\n\t\t\t\tconst packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));\n\t\t\t\tconst deps = {\n\t\t\t\t\t...packageJson.dependencies,\n\t\t\t\t\t...packageJson.devDependencies,\n\t\t\t\t\t...packageJson.peerDependencies,\n\t\t\t\t};\n\n\t\t\t\tif (packageName in deps) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t// Continue to parent directory\n\t\t\t}\n\t\t}\n\n\t\tconst parentDir = dirname(currentDir);\n\t\t// Stop if we've reached the root\n\t\tif (parentDir === currentDir) {\n\t\t\tbreak;\n\t\t}\n\t\tcurrentDir = parentDir;\n\t}\n\n\treturn false;\n}\n\n/**\n * Check if react-markdown is available in the project\n */\nfunction isReactMarkdownAvailable(cwd: string): boolean {\n\treturn isPackageAvailable(cwd, 'react-markdown');\n}\n\n/**\n * Check if Shiki is available in the project\n */\nfunction isShikiAvailable(cwd: string): boolean {\n\treturn isPackageAvailable(cwd, '@shikijs/rehype');\n}\n\n/**\n * Check if remark-gfm (GitHub Flavored Markdown) is available\n */\nfunction isRemarkGfmAvailable(cwd: string): boolean {\n\treturn isPackageAvailable(cwd, 'remark-gfm');\n}\n\n/**\n * Check if @mdx-js/mdx is available in the project\n */\nfunction isMdxAvailable(cwd: string): boolean {\n\treturn isPackageAvailable(cwd, '@mdx-js/mdx');\n}\n\n/**\n * Get markdown configuration status for the project\n */\nexport function getMarkdownConfig(cwd: string) {\n\tconst hasReactMarkdown = isReactMarkdownAvailable(cwd);\n\tconst hasShiki = isShikiAvailable(cwd);\n\tconst hasRemarkGfm = isRemarkGfmAvailable(cwd);\n\tconst hasMdx = isMdxAvailable(cwd);\n\n\treturn {\n\t\thasReactMarkdown,\n\t\thasShiki,\n\t\thasRemarkGfm,\n\t\thasMdx,\n\t\tisConfigured: hasReactMarkdown,\n\t};\n}\n\n/**\n * Log markdown configuration status\n */\nexport function logMarkdownStatus(cwd: string): void {\n\tconst config = getMarkdownConfig(cwd);\n\n\tif (config.isConfigured) {\n\t\tconsole.log('[reroute/markdown] Markdown rendering available');\n\t\tif (config.hasShiki) {\n\t\t\tconsole.log('[reroute/markdown] ✓ Shiki syntax highlighting enabled');\n\t\t}\n\t\tif (config.hasRemarkGfm) {\n\t\t\tconsole.log('[reroute/markdown] ✓ GitHub Flavored Markdown enabled');\n\t\t}\n\t\tif (config.hasMdx) {\n\t\t\tconsole.log(\n\t\t\t\t'[reroute/markdown] ✓ MDX compiler enabled (JSX in markdown)',\n\t\t\t);\n\t\t}\n\t}\n}\n\n/**\n * Check if markdown packages are configured and log status\n */\nexport function checkMarkdownIfConfigured(cwd: string): boolean {\n\ttry {\n\t\tconst config = getMarkdownConfig(cwd);\n\t\tif (config.isConfigured) {\n\t\t\tlogMarkdownStatus(cwd);\n\t\t}\n\t\treturn config.isConfigured;\n\t} catch (e) {\n\t\tconsole.warn('[reroute/markdown] check failed:', e);\n\t\treturn false;\n\t}\n}\n",
|
|
8
|
-
"/**\n * Markdown/MDX processor for route files\n *\n * Processes .md and .mdx files with frontmatter support for use in the routing system\n */\n\nimport { existsSync, readFileSync } from 'node:fs';\nimport { basename, dirname, extname, join } from 'node:path';\n\n// biome-ignore lint/suspicious/noExplicitAny: yes\ntype Any = any;\n\nexport interface MarkdownFrontmatter {\n\ttitle?: string;\n\tdescription?: string;\n\tdate?: string;\n\tslug?: string;\n\texcerpt?: string;\n\t[key: string]: Any;\n}\n\nexport interface ProcessedMarkdown {\n\tfrontmatter: MarkdownFrontmatter;\n\tcontent: string;\n\trawContent: string;\n\thasJSX: boolean;\n}\n\n/**\n * Simple frontmatter parser (YAML-like)\n * Extracts metadata from markdown files between --- delimiters\n */\nfunction parseFrontmatter(content: string): {\n\tdata: MarkdownFrontmatter;\n\tcontent: string;\n} {\n\tconst frontmatterRegex = /^---\\s*\\n([\\s\\S]*?)\\n---\\s*\\n([\\s\\S]*)$/;\n\tconst match = content.match(frontmatterRegex);\n\n\tif (!match) {\n\t\treturn { data: {}, content };\n\t}\n\n\tconst [, frontmatterText, markdownContent] = match;\n\tconst data: MarkdownFrontmatter = {};\n\n\t// Parse simple key: value pairs\n\tconst lines = frontmatterText.split('\\n');\n\tfor (const line of lines) {\n\t\tconst colonIndex = line.indexOf(':');\n\t\tif (colonIndex === -1) continue;\n\n\t\tconst key = line.slice(0, colonIndex).trim();\n\t\tlet value = line.slice(colonIndex + 1).trim();\n\n\t\t// Remove quotes if present\n\t\tif (\n\t\t\t(value.startsWith('\"') && value.endsWith('\"')) ||\n\t\t\t(value.startsWith(\"'\") && value.endsWith(\"'\"))\n\t\t) {\n\t\t\tvalue = value.slice(1, -1);\n\t\t}\n\n\t\t// Parse arrays (simple format: [item1, item2])\n\t\tif (value.startsWith('[') && value.endsWith(']')) {\n\t\t\tdata[key] = value\n\t\t\t\t.slice(1, -1)\n\t\t\t\t.split(',')\n\t\t\t\t.map((v) => v.trim().replace(/^[\"']|[\"']$/g, ''));\n\t\t}\n\t\t// Parse booleans\n\t\telse if (value === 'true' || value === 'false') {\n\t\t\tdata[key] = value === 'true';\n\t\t}\n\t\t// Parse numbers\n\t\telse if (!Number.isNaN(Number(value))) {\n\t\t\tdata[key] = Number(value);\n\t\t}\n\t\t// String value\n\t\telse {\n\t\t\tdata[key] = value;\n\t\t}\n\t}\n\n\treturn { data, content: markdownContent };\n}\n\n/**\n * Check if markdown content contains JSX syntax\n */\nfunction hasJSXSyntax(content: string): boolean {\n\t// Simple heuristic: look for JSX-like patterns\n\tconst jsxPatterns = [\n\t\t/<[A-Z][a-zA-Z0-9]*/, // Component tags like <Component>\n\t\t/import\\s+{[^}]+}\\s+from/, // ES6 imports\n\t\t/import\\s+\\w+\\s+from/, // Default imports\n\t\t/export\\s+(default|const|function)/, // Exports\n\t\t/<\\w+\\s+\\w+={/, // Props with curly braces\n\t];\n\n\treturn jsxPatterns.some((pattern) => pattern.test(content));\n}\n\n/**\n * Process a markdown/MDX file and return structured data\n */\nexport function processMarkdownFile(filePath: string): ProcessedMarkdown {\n\tconst rawContent = readFileSync(filePath, 'utf-8');\n\tconst { data, content } = parseFrontmatter(rawContent);\n\tconst hasJSX = hasJSXSyntax(content);\n\n\treturn {\n\t\tfrontmatter: data,\n\t\tcontent,\n\t\trawContent,\n\t\thasJSX,\n\t};\n}\n\n/**\n * Check if @mdx-js/mdx is available in the project\n */\nfunction isMdxAvailable(cwd: string): boolean {\n\tlet currentDir = cwd;\n\n\t// Check up to 5 levels up\n\tfor (let i = 0; i < 5; i++) {\n\t\tconst packageJsonPath = join(currentDir, 'package.json');\n\n\t\tif (existsSync(packageJsonPath)) {\n\t\t\ttry {\n\t\t\t\tconst packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));\n\t\t\t\tconst deps = {\n\t\t\t\t\t...packageJson.dependencies,\n\t\t\t\t\t...packageJson.devDependencies,\n\t\t\t\t\t...packageJson.peerDependencies,\n\t\t\t\t};\n\n\t\t\t\tif ('@mdx-js/mdx' in deps) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t// Continue to parent directory\n\t\t\t}\n\t\t}\n\n\t\tconst parentDir = dirname(currentDir);\n\t\t// Stop if we've reached the root\n\t\tif (parentDir === currentDir) {\n\t\t\tbreak;\n\t\t}\n\t\tcurrentDir = parentDir;\n\t}\n\n\treturn false;\n}\n\n/**\n * Compile MDX content to JSX using @mdx-js/mdx\n */\nasync function compileMdx(\n\tcontent: string,\n\tcwd: string,\n\toptions: {\n\t\tenableGfm?: boolean;\n\t\ttheme?: string;\n\t} = {},\n): Promise<string | null> {\n\tif (!isMdxAvailable(cwd)) {\n\t\tconsole.warn(\n\t\t\t'[reroute/mdx] @mdx-js/mdx not installed. Install with: bun add @mdx-js/mdx',\n\t\t);\n\t\treturn null;\n\t}\n\n\ttry {\n\t\t// Try to find @mdx-js/mdx in workspace, checking up to 3 levels up\n\t\tlet compile: Any;\n\t\tconst pathsToTry = [\n\t\t\tjoin(cwd, 'node_modules/@mdx-js/mdx'),\n\t\t\tjoin(cwd, '../node_modules/@mdx-js/mdx'),\n\t\t\tjoin(cwd, '../../node_modules/@mdx-js/mdx'),\n\t\t\tjoin(cwd, '../../../node_modules/@mdx-js/mdx'),\n\t\t];\n\n\t\tfor (const mdxPath of pathsToTry) {\n\t\t\ttry {\n\t\t\t\tconst mdxModule = require(mdxPath);\n\t\t\t\tcompile = mdxModule.compile;\n\t\t\t\tbreak;\n\t\t\t} catch {\n\t\t\t\t// Try next path\n\t\t\t}\n\t\t}\n\n\t\tif (!compile) {\n\t\t\tconsole.error('[reroute/mdx] Could not load @mdx-js/mdx from any path');\n\t\t\treturn null;\n\t\t}\n\n\t\tconst { enableGfm = true, theme = 'github-dark' } = options;\n\n\t\tconst remarkPlugins = [] as Any[];\n\t\tconst rehypePlugins = [] as Any[];\n\n\t\t// Add GFM support if requested\n\t\tif (enableGfm) {\n\t\t\tconst gfmPathsToTry = [\n\t\t\t\tjoin(cwd, 'node_modules/remark-gfm'),\n\t\t\t\tjoin(cwd, '../node_modules/remark-gfm'),\n\t\t\t\tjoin(cwd, '../../node_modules/remark-gfm'),\n\t\t\t\tjoin(cwd, '../../../node_modules/remark-gfm'),\n\t\t\t];\n\n\t\t\tlet remarkGfm: Any = null;\n\t\t\tfor (const gfmPath of gfmPathsToTry) {\n\t\t\t\ttry {\n\t\t\t\t\tremarkGfm = require(gfmPath);\n\t\t\t\t\tbreak;\n\t\t\t\t} catch {\n\t\t\t\t\t// Try next path\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (remarkGfm) {\n\t\t\t\tremarkPlugins.push(remarkGfm.default || remarkGfm);\n\t\t\t} else {\n\t\t\t\tconsole.warn('[reroute/mdx] remark-gfm not available, skipping');\n\t\t\t}\n\t\t}\n\n\t\t// Add Shiki highlighting if available (compile-time only, safe for SSR)\n\t\tconst shikiPathsToTry = [\n\t\t\tjoin(cwd, 'node_modules/@shikijs/rehype'),\n\t\t\tjoin(cwd, '../node_modules/@shikijs/rehype'),\n\t\t\tjoin(cwd, '../../node_modules/@shikijs/rehype'),\n\t\t\tjoin(cwd, '../../../node_modules/@shikijs/rehype'),\n\t\t];\n\n\t\tlet rehypeShiki: Any = null;\n\t\tfor (const shikiPath of shikiPathsToTry) {\n\t\t\ttry {\n\t\t\t\trehypeShiki = require(shikiPath);\n\t\t\t\tbreak;\n\t\t\t} catch {\n\t\t\t\t// Try next path\n\t\t\t}\n\t\t}\n\n\t\tif (rehypeShiki) {\n\t\t\trehypePlugins.push([rehypeShiki.default || rehypeShiki, { theme }]);\n\t\t} else {\n\t\t\tconsole.warn(\n\t\t\t\t'[reroute/mdx] @shikijs/rehype not available, skipping highlighting',\n\t\t\t);\n\t\t}\n\n\t\tconst result = await compile(content, {\n\t\t\tremarkPlugins,\n\t\t\trehypePlugins,\n\t\t\toutputFormat: 'program',\n\t\t\tdevelopment: false,\n\t\t});\n\n\t\treturn String(result);\n\t} catch (error) {\n\t\tconsole.error('[reroute/mdx] Compilation failed:', error);\n\t\treturn null;\n\t}\n}\n\n/**\n * Generate a React component wrapper for markdown content\n * This creates a TypeScript module that can be imported as a route\n */\nexport async function generateMarkdownModule(\n\tprocessed: ProcessedMarkdown,\n\tcwd: string,\n\toptions: {\n\t\tenableGfm?: boolean;\n\t\ttheme?: string;\n\t\tisMdx?: boolean;\n\t} = {},\n): Promise<string> {\n\tconst { frontmatter, content } = processed;\n\tconst { enableGfm = true, theme = 'github-dark', isMdx = false } = options;\n\n\t// Prefer MDX engine for both .mdx and .md when available to ensure\n\t// identical SSR/CSR output. MD is a subset of MDX, so compile it too.\n\tconst compiledMdx = await compileMdx(content, cwd, { enableGfm, theme });\n\tif (compiledMdx) {\n\t\t// Already a complete program that exports a default component\n\t\treturn `// Generated from ${isMdx ? 'MDX' : 'Markdown'} file with @mdx-js/mdx\n\n// MDX compiled content with imports and component\n${compiledMdx}\n\n// Add metadata exports\nexport const meta = ${JSON.stringify(frontmatter, null, 2)};\n\nexport const ssr = {\n head: [\n '<meta property=\"og:type\" content=\"article\" />',\n '<meta name=\"twitter:card\" content=\"summary_large_image\" />',\n ],\n};\n`;\n\t}\n\n\tconsole.warn(\n\t\t'[reroute/mdx] MDX compile unavailable; falling back to react-markdown',\n\t);\n\n\t// Regular markdown - wrap with Markdown component\n\tconst escapedContent = content\n\t\t.replace(/\\\\/g, '\\\\\\\\')\n\t\t.replace(/`/g, '\\\\`')\n\t\t.replace(/\\$/g, '\\\\$');\n\n\t// Build plugin imports\n\tconst pluginImports: string[] = [];\n\tconst remarkPluginsList: string[] = [];\n\tconst rehypePluginsList: string[] = [];\n\n\tif (enableGfm) {\n\t\tpluginImports.push(\"import remarkGfm from 'remark-gfm';\");\n\t\tremarkPluginsList.push('remarkGfm');\n\t}\n\n\t// Note: Shiki is async and breaks SSR - skip it\n\n\tconst pluginImportsStr =\n\t\tpluginImports.length > 0 ? `${pluginImports.join('\\n')}\\n` : '';\n\tconst remarkPluginsStr =\n\t\tremarkPluginsList.length > 0\n\t\t\t? `remarkPlugins={[${remarkPluginsList.join(', ')}]}`\n\t\t\t: '';\n\tconst rehypePluginsStr =\n\t\trehypePluginsList.length > 0\n\t\t\t? `rehypePlugins={[${rehypePluginsList.join(', ')}]}`\n\t\t\t: '';\n\tconst pluginsPropsStr = [remarkPluginsStr, rehypePluginsStr]\n\t\t.filter(Boolean)\n\t\t.join('\\n ');\n\n\treturn `// Generated from markdown file\nimport { Markdown } from 'reroute-js/react';\n${pluginImportsStr}\nconst meta = ${JSON.stringify(frontmatter, null, 2)};\n\nconst ssr = {\n head: [\n '<meta property=\"og:type\" content=\"article\" />',\n '<meta name=\"twitter:card\" content=\"summary_large_image\" />',\n ],\n};\n\nconst markdownContent = \\`${escapedContent}\\`;\n\nfunction MarkdownRoute() {\n return (\n <div>\n <Markdown\n ${pluginsPropsStr}\n >\n {markdownContent}\n </Markdown>\n </div>\n );\n}\n\nexport { meta, ssr };\nexport default MarkdownRoute;\n`;\n}\n\n/**\n * Generate a plain fallback TSX module when markdown tooling\n * is not configured. Renders raw markdown content in a <pre> block\n * so routes still work without extra deps.\n */\nexport function generatePlainMarkdownModule(\n\tprocessed: ProcessedMarkdown,\n): string {\n\tconst { frontmatter, content } = processed;\n\tconst escapedContent = content\n\t\t.replace(/\\\\/g, '\\\\\\\\')\n\t\t.split(String.fromCharCode(96))\n\t\t.join(`\\\\${String.fromCharCode(96)}`)\n\t\t.split('$')\n\t\t.join('\\\\$');\n\n\treturn `// Generated from markdown file (plain fallback)\n// No markdown renderer detected; showing raw content.\nexport const meta = ${JSON.stringify(frontmatter, null, 2)};\n\nexport const ssr = {\n head: [\n '<meta property=\"og:type\" content=\"article\" />',\n '<meta name=\"twitter:card\" content=\"summary_large_image\" />',\n ],\n};\n\nconst markdownContent = \\`${escapedContent}\\`;\n\nexport default function MarkdownFallback() {\n return (\n <div style={{ padding: '1rem' }}>\n {meta?.title && (\n <h1 style={{ fontSize: '1.5rem', fontWeight: 600 }}>{meta.title}</h1>\n )}\n <div style={{\n margin: '0.75rem 0',\n padding: '0.75rem',\n borderLeft: '4px solid #eab308',\n background: '#fefce8',\n color: '#713f12'\n }}>\n <strong>Markdown rendering not configured.</strong>\n <div style={{ marginTop: '0.25rem' }}>\n Install: react-markdown (required), remark-gfm (optional), @mdx-js/mdx (optional), @shikijs/rehype (optional).\n </div>\n </div>\n <pre style={{ whiteSpace: 'pre-wrap', lineHeight: 1.6 }}>{markdownContent}</pre>\n </div>\n );\n}\n`;\n}\n\n/**\n * Check if a file is a markdown file\n */\nexport function isMarkdownFile(filePath: string): boolean {\n\tconst ext = extname(filePath).toLowerCase();\n\treturn ext === '.md' || ext === '.mdx';\n}\n\n/**\n * Get the route name from a markdown filename\n * Converts kebab-case to the route path\n */\nexport function getMarkdownRouteName(filePath: string): string {\n\tconst name = basename(filePath, extname(filePath));\n\treturn name;\n}\n",
|
|
8
|
+
"/**\n * Markdown/MDX processor for route files\n *\n * Processes .md and .mdx files with frontmatter support for use in the routing system\n */\n\nimport { existsSync, readFileSync } from 'node:fs';\nimport { basename, dirname, extname, join } from 'node:path';\n\n// biome-ignore lint/suspicious/noExplicitAny: yes\ntype Any = any;\n\nexport interface MarkdownFrontmatter {\n\ttitle?: string;\n\tdescription?: string;\n\tdate?: string;\n\tslug?: string;\n\texcerpt?: string;\n\t[key: string]: Any;\n}\n\nexport interface ProcessedMarkdown {\n\tfrontmatter: MarkdownFrontmatter;\n\tcontent: string;\n\trawContent: string;\n\thasJSX: boolean;\n}\n\n/**\n * Simple frontmatter parser (YAML-like)\n * Extracts metadata from markdown files between --- delimiters\n */\nfunction parseFrontmatter(content: string): {\n\tdata: MarkdownFrontmatter;\n\tcontent: string;\n} {\n\tconst frontmatterRegex = /^---\\s*\\n([\\s\\S]*?)\\n---\\s*\\n([\\s\\S]*)$/;\n\tconst match = content.match(frontmatterRegex);\n\n\tif (!match) {\n\t\treturn { data: {}, content };\n\t}\n\n\tconst [, frontmatterText, markdownContent] = match;\n\tconst data: MarkdownFrontmatter = {};\n\n\t// Parse simple key: value pairs\n\tconst lines = frontmatterText.split('\\n');\n\tfor (const line of lines) {\n\t\tconst colonIndex = line.indexOf(':');\n\t\tif (colonIndex === -1) continue;\n\n\t\tconst key = line.slice(0, colonIndex).trim();\n\t\tlet value = line.slice(colonIndex + 1).trim();\n\n\t\t// Remove quotes if present\n\t\tif (\n\t\t\t(value.startsWith('\"') && value.endsWith('\"')) ||\n\t\t\t(value.startsWith(\"'\") && value.endsWith(\"'\"))\n\t\t) {\n\t\t\tvalue = value.slice(1, -1);\n\t\t}\n\n\t\t// Parse arrays (simple format: [item1, item2])\n\t\tif (value.startsWith('[') && value.endsWith(']')) {\n\t\t\tdata[key] = value\n\t\t\t\t.slice(1, -1)\n\t\t\t\t.split(',')\n\t\t\t\t.map((v) => v.trim().replace(/^[\"']|[\"']$/g, ''));\n\t\t}\n\t\t// Parse booleans\n\t\telse if (value === 'true' || value === 'false') {\n\t\t\tdata[key] = value === 'true';\n\t\t}\n\t\t// Parse numbers\n\t\telse if (!Number.isNaN(Number(value))) {\n\t\t\tdata[key] = Number(value);\n\t\t}\n\t\t// String value\n\t\telse {\n\t\t\tdata[key] = value;\n\t\t}\n\t}\n\n\treturn { data, content: markdownContent };\n}\n\n/**\n * Check if markdown content contains JSX syntax\n */\nfunction hasJSXSyntax(content: string): boolean {\n\t// Simple heuristic: look for JSX-like patterns\n\tconst jsxPatterns = [\n\t\t/<[A-Z][a-zA-Z0-9]*/, // Component tags like <Component>\n\t\t/import\\s+{[^}]+}\\s+from/, // ES6 imports\n\t\t/import\\s+\\w+\\s+from/, // Default imports\n\t\t/export\\s+(default|const|function)/, // Exports\n\t\t/<\\w+\\s+\\w+={/, // Props with curly braces\n\t];\n\n\treturn jsxPatterns.some((pattern) => pattern.test(content));\n}\n\n/**\n * Process a markdown/MDX file and return structured data\n */\nexport function processMarkdownFile(filePath: string): ProcessedMarkdown {\n\tconst rawContent = readFileSync(filePath, 'utf-8');\n\tconst { data, content } = parseFrontmatter(rawContent);\n\tconst hasJSX = hasJSXSyntax(content);\n\n\treturn {\n\t\tfrontmatter: data,\n\t\tcontent,\n\t\trawContent,\n\t\thasJSX,\n\t};\n}\n\n/**\n * Check if @mdx-js/mdx is available in the project\n */\nfunction isMdxAvailable(cwd: string): boolean {\n\tlet currentDir = cwd;\n\n\t// Check up to 5 levels up\n\tfor (let i = 0; i < 5; i++) {\n\t\tconst packageJsonPath = join(currentDir, 'package.json');\n\n\t\tif (existsSync(packageJsonPath)) {\n\t\t\ttry {\n\t\t\t\tconst packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));\n\t\t\t\tconst deps = {\n\t\t\t\t\t...packageJson.dependencies,\n\t\t\t\t\t...packageJson.devDependencies,\n\t\t\t\t\t...packageJson.peerDependencies,\n\t\t\t\t};\n\n\t\t\t\tif ('@mdx-js/mdx' in deps) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} catch {\n\t\t\t\t// Continue to parent directory\n\t\t\t}\n\t\t}\n\n\t\tconst parentDir = dirname(currentDir);\n\t\t// Stop if we've reached the root\n\t\tif (parentDir === currentDir) {\n\t\t\tbreak;\n\t\t}\n\t\tcurrentDir = parentDir;\n\t}\n\n\treturn false;\n}\n\n/**\n * Compile MDX content to JSX using @mdx-js/mdx\n */\nasync function compileMdx(\n\tcontent: string,\n\tcwd: string,\n\toptions: {\n\t\tenableGfm?: boolean;\n\t\ttheme?: string;\n\t\tfilename?: string;\n\t} = {},\n): Promise<string | null> {\n\tif (!isMdxAvailable(cwd)) {\n\t\tconsole.warn(\n\t\t\t'[reroute/mdx] @mdx-js/mdx not installed. Install with: bun add @mdx-js/mdx',\n\t\t);\n\t\treturn null;\n\t}\n\n\ttry {\n\t\t// Try to find @mdx-js/mdx in workspace, checking up to 3 levels up\n\t\tlet compile: Any;\n\t\tconst pathsToTry = [\n\t\t\tjoin(cwd, 'node_modules/@mdx-js/mdx'),\n\t\t\tjoin(cwd, '../node_modules/@mdx-js/mdx'),\n\t\t\tjoin(cwd, '../../node_modules/@mdx-js/mdx'),\n\t\t\tjoin(cwd, '../../../node_modules/@mdx-js/mdx'),\n\t\t];\n\n\t\tfor (const mdxPath of pathsToTry) {\n\t\t\ttry {\n\t\t\t\tconst mdxModule = require(mdxPath);\n\t\t\t\tcompile = mdxModule.compile;\n\t\t\t\tbreak;\n\t\t\t} catch {\n\t\t\t\t// Try next path\n\t\t\t}\n\t\t}\n\n\t\tif (!compile) {\n\t\t\tconsole.error('[reroute/mdx] Could not load @mdx-js/mdx from any path');\n\t\t\treturn null;\n\t\t}\n\n\t\tconst { enableGfm = true, theme = 'github-dark' } = options;\n\n\t\tconst remarkPlugins = [] as Any[];\n\t\tconst rehypePlugins = [] as Any[];\n\n\t\t// Add GFM support if requested\n\t\tif (enableGfm) {\n\t\t\tconst gfmPathsToTry = [\n\t\t\t\tjoin(cwd, 'node_modules/remark-gfm'),\n\t\t\t\tjoin(cwd, '../node_modules/remark-gfm'),\n\t\t\t\tjoin(cwd, '../../node_modules/remark-gfm'),\n\t\t\t\tjoin(cwd, '../../../node_modules/remark-gfm'),\n\t\t\t];\n\n\t\t\tlet remarkGfm: Any = null;\n\t\t\tfor (const gfmPath of gfmPathsToTry) {\n\t\t\t\ttry {\n\t\t\t\t\tremarkGfm = require(gfmPath);\n\t\t\t\t\tbreak;\n\t\t\t\t} catch {\n\t\t\t\t\t// Try next path\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (remarkGfm) {\n\t\t\t\tremarkPlugins.push(remarkGfm.default || remarkGfm);\n\t\t\t} else {\n\t\t\t\tconsole.warn('[reroute/mdx] remark-gfm not available, skipping');\n\t\t\t}\n\t\t}\n\n\t\t// Add Shiki highlighting if available (compile-time only, safe for SSR)\n\t\tconst shikiPathsToTry = [\n\t\t\tjoin(cwd, 'node_modules/@shikijs/rehype'),\n\t\t\tjoin(cwd, '../node_modules/@shikijs/rehype'),\n\t\t\tjoin(cwd, '../../node_modules/@shikijs/rehype'),\n\t\t\tjoin(cwd, '../../../node_modules/@shikijs/rehype'),\n\t\t];\n\n\t\tlet rehypeShiki: Any = null;\n\t\tfor (const shikiPath of shikiPathsToTry) {\n\t\t\ttry {\n\t\t\t\trehypeShiki = require(shikiPath);\n\t\t\t\tbreak;\n\t\t\t} catch {\n\t\t\t\t// Try next path\n\t\t\t}\n\t\t}\n\n\t\tif (rehypeShiki) {\n\t\t\trehypePlugins.push([rehypeShiki.default || rehypeShiki, { theme }]);\n\t\t} else {\n\t\t\tconsole.warn(\n\t\t\t\t'[reroute/mdx] @shikijs/rehype not available, skipping highlighting',\n\t\t\t);\n\t\t}\n\n\t\tconst result = await compile(content, {\n\t\t\tremarkPlugins,\n\t\t\trehypePlugins,\n\t\t\toutputFormat: 'program',\n\t\t\tdevelopment: false,\n\t\t});\n\n\t\treturn String(result);\n\t} catch (error) {\n\t\t// Log only the essential error information to avoid confusion\n\t\tconst errorMessage = error instanceof Error ? error.message : String(error);\n\t\tconst errorLocation =\n\t\t\terror &&\n\t\t\ttypeof error === 'object' &&\n\t\t\t'place' in error &&\n\t\t\terror.place &&\n\t\t\ttypeof error.place === 'object'\n\t\t\t\t? `at line ${(error.place as Any).line || '?'}, column ${(error.place as Any).column || '?'}`\n\t\t\t\t: '';\n\t\tconst fileInfo = options.filename ? ` in ${options.filename}` : '';\n\n\t\tconsole.warn(\n\t\t\t`[reroute/mdx] Compilation failed${fileInfo}${errorLocation ? ` ${errorLocation}` : ''}: ${errorMessage}`,\n\t\t);\n\t\tconsole.warn('[reroute/mdx] Falling back to react-markdown');\n\t\treturn null;\n\t}\n}\n\n/**\n * Generate a React component wrapper for markdown content\n * This creates a TypeScript module that can be imported as a route\n */\nexport async function generateMarkdownModule(\n\tprocessed: ProcessedMarkdown,\n\tcwd: string,\n\toptions: {\n\t\tenableGfm?: boolean;\n\t\ttheme?: string;\n\t\tisMdx?: boolean;\n\t\tfilename?: string;\n\t} = {},\n): Promise<string> {\n\tconst { frontmatter, content } = processed;\n\tconst {\n\t\tenableGfm = true,\n\t\ttheme = 'github-dark',\n\t\tisMdx = false,\n\t\tfilename,\n\t} = options;\n\n\t// Prefer MDX engine for both .mdx and .md when available to ensure\n\t// identical SSR/CSR output. MD is a subset of MDX, so compile it too.\n\tconst compiledMdx = await compileMdx(content, cwd, {\n\t\tenableGfm,\n\t\ttheme,\n\t\tfilename,\n\t});\n\tif (compiledMdx) {\n\t\t// Already a complete program that exports a default component\n\t\treturn `// Generated from ${isMdx ? 'MDX' : 'Markdown'} file with @mdx-js/mdx\n\n// MDX compiled content with imports and component\n${compiledMdx}\n\n// Add metadata exports\nexport const meta = ${JSON.stringify(frontmatter, null, 2)};\n\nexport const ssr = {\n head: [\n '<meta property=\"og:type\" content=\"article\" />',\n '<meta name=\"twitter:card\" content=\"summary_large_image\" />',\n ],\n};\n`;\n\t}\n\n\t// Regular markdown - wrap with Markdown component\n\tconst escapedContent = content\n\t\t.replace(/\\\\/g, '\\\\\\\\')\n\t\t.replace(/`/g, '\\\\`')\n\t\t.replace(/\\$/g, '\\\\$');\n\n\t// Build plugin imports\n\tconst pluginImports: string[] = [];\n\tconst remarkPluginsList: string[] = [];\n\tconst rehypePluginsList: string[] = [];\n\n\tif (enableGfm) {\n\t\tpluginImports.push(\"import remarkGfm from 'remark-gfm';\");\n\t\tremarkPluginsList.push('remarkGfm');\n\t}\n\n\t// Note: Shiki is async and breaks SSR - skip it\n\n\tconst pluginImportsStr =\n\t\tpluginImports.length > 0 ? `${pluginImports.join('\\n')}\\n` : '';\n\tconst remarkPluginsStr =\n\t\tremarkPluginsList.length > 0\n\t\t\t? `remarkPlugins={[${remarkPluginsList.join(', ')}]}`\n\t\t\t: '';\n\tconst rehypePluginsStr =\n\t\trehypePluginsList.length > 0\n\t\t\t? `rehypePlugins={[${rehypePluginsList.join(', ')}]}`\n\t\t\t: '';\n\tconst pluginsPropsStr = [remarkPluginsStr, rehypePluginsStr]\n\t\t.filter(Boolean)\n\t\t.join('\\n ');\n\n\treturn `// Generated from markdown file\nimport { Markdown } from 'reroute-js/react';\n${pluginImportsStr}\nconst meta = ${JSON.stringify(frontmatter, null, 2)};\n\nconst ssr = {\n head: [\n '<meta property=\"og:type\" content=\"article\" />',\n '<meta name=\"twitter:card\" content=\"summary_large_image\" />',\n ],\n};\n\nconst markdownContent = \\`${escapedContent}\\`;\n\nfunction MarkdownRoute() {\n return (\n <div>\n <Markdown\n ${pluginsPropsStr}\n >\n {markdownContent}\n </Markdown>\n </div>\n );\n}\n\nexport { meta, ssr };\nexport default MarkdownRoute;\n`;\n}\n\n/**\n * Generate a plain fallback TSX module when markdown tooling\n * is not configured. Renders raw markdown content in a <pre> block\n * so routes still work without extra deps.\n */\nexport function generatePlainMarkdownModule(\n\tprocessed: ProcessedMarkdown,\n): string {\n\tconst { frontmatter, content } = processed;\n\tconst escapedContent = content\n\t\t.replace(/\\\\/g, '\\\\\\\\')\n\t\t.split(String.fromCharCode(96))\n\t\t.join(`\\\\${String.fromCharCode(96)}`)\n\t\t.split('$')\n\t\t.join('\\\\$');\n\n\treturn `// Generated from markdown file (plain fallback)\n// No markdown renderer detected; showing raw content.\nexport const meta = ${JSON.stringify(frontmatter, null, 2)};\n\nexport const ssr = {\n head: [\n '<meta property=\"og:type\" content=\"article\" />',\n '<meta name=\"twitter:card\" content=\"summary_large_image\" />',\n ],\n};\n\nconst markdownContent = \\`${escapedContent}\\`;\n\nexport default function MarkdownFallback() {\n return (\n <div style={{ padding: '1rem' }}>\n {meta?.title && (\n <h1 style={{ fontSize: '1.5rem', fontWeight: 600 }}>{meta.title}</h1>\n )}\n <div style={{\n margin: '0.75rem 0',\n padding: '0.75rem',\n borderLeft: '4px solid #eab308',\n background: '#fefce8',\n color: '#713f12'\n }}>\n <strong>Markdown rendering not configured.</strong>\n <div style={{ marginTop: '0.25rem' }}>\n Install: react-markdown (required), remark-gfm (optional), @mdx-js/mdx (optional), @shikijs/rehype (optional).\n </div>\n </div>\n <pre style={{ whiteSpace: 'pre-wrap', lineHeight: 1.6 }}>{markdownContent}</pre>\n </div>\n );\n}\n`;\n}\n\n/**\n * Check if a file is a markdown file\n */\nexport function isMarkdownFile(filePath: string): boolean {\n\tconst ext = extname(filePath).toLowerCase();\n\treturn ext === '.md' || ext === '.mdx';\n}\n\n/**\n * Get the route name from a markdown filename\n * Converts kebab-case to the route path\n */\nexport function getMarkdownRouteName(filePath: string): string {\n\tconst name = basename(filePath, extname(filePath));\n\treturn name;\n}\n",
|
|
9
9
|
"/**\n * Production mode utility\n *\n * Provides utilities to check if the CLI is running in production mode.\n * Production mode can be enabled either via NODE_ENV=production or --prod flag.\n */\n\n/**\n * Check if production mode is enabled\n * @param args Command line arguments to check for --prod flag\n * @returns true if NODE_ENV=production or --prod flag is present\n */\nexport function isProductionMode(args: string[] = []): boolean {\n\treturn (\n\t\tprocess.env.NODE_ENV === 'production' ||\n\t\tBun.env.NODE_ENV === 'production' ||\n\t\targs.includes('--prod')\n\t);\n}\n\n/**\n * Set NODE_ENV to production if --prod flag is present\n * This ensures child processes inherit the production setting\n * @param args Command line arguments to check for --prod flag\n */\nexport function ensureProductionEnv(args: string[] = []): void {\n\tif (args.includes('--prod')) {\n\t\tprocess.env.NODE_ENV = 'production';\n\t\tBun.env.NODE_ENV = 'production';\n\t}\n}\n\n/**\n * Filter out --prod flag from arguments since it's handled globally\n * @param args Command line arguments\n * @returns Filtered arguments without --prod\n */\nexport function filterProdFlag(args: string[]): string[] {\n\treturn args.filter((arg) => arg !== '--prod');\n}\n",
|
|
10
|
-
"/**\n * Tailwind CSS v4 integration utility\n *\n * Manages Tailwind CLI integration for the Reroute framework\n */\n\nimport { spawn } from 'node:child_process';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { join } from 'node:path';\n\n/**\n * Check if Tailwind CSS v4 is available in the project\n */\nfunction isTailwindAvailable(cwd: string): boolean {\n\tconst
|
|
10
|
+
"/**\n * Tailwind CSS v4 integration utility\n *\n * Manages Tailwind CLI integration for the Reroute framework\n */\n\nimport { spawn } from 'node:child_process';\nimport { existsSync, readFileSync } from 'node:fs';\nimport { join } from 'node:path';\n\n/**\n * Check if Tailwind CSS v4 is available in the project\n * Checks current directory and up to 3 levels up (for monorepos)\n */\nfunction isTailwindAvailable(cwd: string): boolean {\n\tconst pathsToTry = [\n\t\tjoin(cwd, 'package.json'),\n\t\tjoin(cwd, '../package.json'),\n\t\tjoin(cwd, '../../package.json'),\n\t\tjoin(cwd, '../../../package.json'),\n\t];\n\n\tfor (const packageJsonPath of pathsToTry) {\n\t\tif (!existsSync(packageJsonPath)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\ttry {\n\t\t\tconst packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf-8'));\n\t\t\tconst deps = {\n\t\t\t\t...packageJson.dependencies,\n\t\t\t\t...packageJson.devDependencies,\n\t\t\t};\n\n\t\t\tif ('@tailwindcss/cli' in deps) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t} catch {}\n\t}\n\n\treturn false;\n}\n\n/**\n * Get the default paths for Tailwind CSS\n */\nfunction getTailwindPaths(cwd: string) {\n\tconst input = join(cwd, 'src/client/theme.css');\n\tconst output = join(cwd, '.reroute/theme.css');\n\n\treturn { input, output };\n}\n\n/**\n * Check if Tailwind input file exists and uses v4 format\n */\nfunction hasTailwindInput(cwd: string): boolean {\n\tconst { input } = getTailwindPaths(cwd);\n\n\tif (!existsSync(input)) {\n\t\treturn false;\n\t}\n\n\ttry {\n\t\tconst content = readFileSync(input, 'utf-8');\n\t\t// v4 uses @import \"tailwindcss\"\n\t\treturn content.includes('tailwindcss');\n\t} catch {\n\t\treturn false;\n\t}\n}\n\nfunction resolveTailwindBin(cwd: string): string {\n\t// Try to find tailwindcss binary, checking up to 3 levels up\n\tconst pathsToTry = [\n\t\tjoin(cwd, '../node_modules/.bin/tailwindcss'),\n\t\tjoin(cwd, '../../node_modules/.bin/tailwindcss'),\n\t\tjoin(cwd, '../../../node_modules/.bin/tailwindcss'),\n\t];\n\n\tfor (const binPath of pathsToTry) {\n\t\tif (existsSync(binPath)) {\n\t\t\treturn binPath;\n\t\t}\n\t}\n\n\t// Fallback to the default location if none found\n\treturn join(cwd, 'node_modules/.bin/tailwindcss');\n}\n\n/**\n * Build Tailwind CSS using the Tailwind CLI\n */\nasync function buildTailwind(cwd: string, minify = false): Promise<void> {\n\tconst { input, output } = getTailwindPaths(cwd);\n\n\treturn new Promise((resolve, reject) => {\n\t\tconst tailwindBin = resolveTailwindBin(cwd);\n\t\tconst args = ['-i', input, '-o', output];\n\n\t\t// Add minify flag for production builds\n\t\tif (minify) {\n\t\t\targs.push('--minify');\n\t\t}\n\n\t\tconst argsStr = args.join(' ');\n\t\tconsole.log(`[reroute/tailwind] build start: ${argsStr}`);\n\n\t\tconst tailwind = spawn(tailwindBin, args, {\n\t\t\tcwd,\n\t\t\tstdio: 'pipe',\n\t\t});\n\n\t\ttailwind.stdout?.on('data', (data) => {\n\t\t\tconst line = data.toString().trim();\n\t\t\tif (line) {\n\t\t\t\tconsole.log(`[reroute/tailwind] ${line}`);\n\t\t\t}\n\t\t});\n\n\t\ttailwind.stderr?.on('data', (data) => {\n\t\t\tconst line = data.toString().trim();\n\t\t\tif (line) {\n\t\t\t\tconsole.log(`[reroute/tailwind] ${line}`);\n\t\t\t}\n\t\t});\n\n\t\ttailwind.on('close', (code) => {\n\t\t\tif (code === 0) {\n\t\t\t\tconsole.log('[reroute/tailwind] build done');\n\t\t\t\tresolve();\n\t\t\t} else {\n\t\t\t\treject(new Error(`Tailwind CSS build failed with code ${code}`));\n\t\t\t}\n\t\t});\n\n\t\ttailwind.on('error', (error) => {\n\t\t\treject(error);\n\t\t});\n\t});\n}\n\n/**\n * Build Tailwind once if installed and input exists.\n * Returns true if a build was attempted (success or failure), false if skipped.\n */\nexport async function buildTailwindIfConfigured(\n\tcwd: string,\n\tminify = false,\n): Promise<boolean> {\n\ttry {\n\t\tif (isTailwindAvailable(cwd) && hasTailwindInput(cwd)) {\n\t\t\tawait buildTailwind(cwd, minify);\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t} catch (e) {\n\t\tconsole.warn('[reroute/tailwind] build failed:', e);\n\t\treturn true;\n\t}\n}\n"
|
|
11
11
|
],
|
|
12
|
-
"mappings": "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",
|
|
13
|
-
"debugId": "
|
|
12
|
+
"mappings": ";;;;;;;;;;;;;AAAA;AACA;AAMO,SAAS,iBAAiB,GAAW;AAAA,EAG3C,MAAM,UAAU,KAAK,YAAY,KAAK,MAAM,MAAM,QAAQ;AAAA,EAC1D,MAAM,WAAW,WAAW,OAAO;AAAA,EAEnC,IAAI,UAAU;AAAA,IAEb,OAAO,OAAO;AAAA,EACf;AAAA,EAGA,MAAM,MAAM,QAAQ,IAAI;AAAA,EACxB,MAAM,mBAAmB;AAAA,IACxB,KAAK,KAAK,gBAAgB,QAAQ,SAAS;AAAA,IAC3C,KAAK,KAAK,MAAM,gBAAgB,QAAQ,SAAS;AAAA,IACjD,KAAK,KAAK,MAAM,MAAM,gBAAgB,QAAQ,SAAS;AAAA,IACvD,KAAK,KAAK,MAAM,MAAM,MAAM,gBAAgB,QAAQ,SAAS;AAAA,EAC9D;AAAA,EAEA,WAAW,YAAW,kBAAkB;AAAA,IACvC,IAAI,WAAW,QAAO,GAAG;AAAA,MACxB,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAGA,OAAO;AAAA;;ACvBR,IAAM,gBAAwC;AAAA,EAC7C,aAAa;AAAA,EACb,iBAAiB;AAAA,EACjB,qBAAqB;AAAA,EACrB,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,iBAAiB;AAAA,EACjB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,SAAS;AAAA,EACT,SAAS;AACV;AAQO,SAAS,iBAAiB,CAAC,MAAsB;AAAA,EACvD,IAAI,UAAU;AAAA,EAGd,MAAM,iBAAiB,OAAO,QAAQ,aAAa,EAAE,KACpD,EAAE,KAAK,OAAO,EAAE,SAAS,EAAE,MAC5B;AAAA,EAEA,YAAY,QAAQ,aAAa,gBAAgB;AAAA,IAEhD,UAAU,QAAQ,QACjB,IAAI,OAAO,IAAI,OAAO,QAAQ,uBAAuB,MAAM,MAAM,GAAG,GACpE,GAAG,eACJ;AAAA,EACD;AAAA,EAEA,OAAO;AAAA;AASD,SAAS,aAAa,CAAC,MAAsB;AAAA,EACnD,OACC,KAEE,QAAQ,gBAAgB,UAAU,EAClC,QAAQ,gBAAgB,UAAU,EAClC,QAAQ,mBAAmB,UAAU,EACrC,QAAQ,kBAAkB,UAAU,EACpC,QAAQ,iBAAiB,UAAU,EACnC,QAAQ,eAAe,UAAU,EAEjC,QAAQ,uBAAuB,UAAU,EACzC,QAAQ,uBAAuB,UAAU,EACzC,QAAQ,0BAA0B,UAAU,EAC5C,QAAQ,yBAAyB,UAAU,EAC3C,QAAQ,wBAAwB,UAAU,EAC1C,QAAQ,sBAAsB,UAAU,EACxC,QAAQ,WAAW,SAAS;AAAA;AAUzB,SAAS,qBAAqB,CAAC,MAAsB;AAAA,EAC3D,OAAO,cAAc,kBAAkB,IAAI,CAAC;AAAA;AAStC,SAAS,yBAAyB,CAAC,QAA6B;AAAA,EACtE,OAAO,CAAC,SAAiB;AAAA,IACxB,MAAM,OAAO,OAAO,UAAU,KAAK,SAAS;AAAA,IAC5C,MAAM,QAAQ,KAAK,MAAM;AAAA,CAAI;AAAA,IAC7B,OAAO,UAAU,MAAM,IAAI,KAAK;AAAA,IAEhC,WAAW,QAAQ,OAAO;AAAA,MAEzB,MAAM,cAAc,KAAK,KAAK;AAAA,MAC9B,IAAI,CAAC,aAAa;AAAA,QACjB;AAAA,MACD;AAAA,MAGA,MAAM,cAAc,sBAAsB,IAAI;AAAA,MAC9C,QAAQ,IAAI,WAAW;AAAA,IACxB;AAAA;AAAA;;ACxGF,uBAAS;AACT,0BAAkB;AAKlB,SAAS,kBAAkB,CAAC,KAAa,aAA8B;AAAA,EACtE,IAAI,aAAa;AAAA,EAGjB,SAAS,IAAI,EAAG,IAAI,GAAG,KAAK;AAAA,IAC3B,MAAM,kBAAkB,MAAK,YAAY,cAAc;AAAA,IAEvD,IAAI,YAAW,eAAe,GAAG;AAAA,MAChC,IAAI;AAAA,QACH,MAAM,cAAc,KAAK,MAAM,aAAa,iBAAiB,OAAO,CAAC;AAAA,QACrE,MAAM,OAAO;AAAA,aACT,YAAY;AAAA,aACZ,YAAY;AAAA,aACZ,YAAY;AAAA,QAChB;AAAA,QAEA,IAAI,eAAe,MAAM;AAAA,UACxB,OAAO;AAAA,QACR;AAAA,QACC,MAAM;AAAA,IAGT;AAAA,IAEA,MAAM,YAAY,QAAQ,UAAU;AAAA,IAEpC,IAAI,cAAc,YAAY;AAAA,MAC7B;AAAA,IACD;AAAA,IACA,aAAa;AAAA,EACd;AAAA,EAEA,OAAO;AAAA;AAMR,SAAS,wBAAwB,CAAC,KAAsB;AAAA,EACvD,OAAO,mBAAmB,KAAK,gBAAgB;AAAA;AAMhD,SAAS,gBAAgB,CAAC,KAAsB;AAAA,EAC/C,OAAO,mBAAmB,KAAK,iBAAiB;AAAA;AAMjD,SAAS,oBAAoB,CAAC,KAAsB;AAAA,EACnD,OAAO,mBAAmB,KAAK,YAAY;AAAA;AAM5C,SAAS,cAAc,CAAC,KAAsB;AAAA,EAC7C,OAAO,mBAAmB,KAAK,aAAa;AAAA;AAMtC,SAAS,iBAAiB,CAAC,KAAa;AAAA,EAC9C,MAAM,mBAAmB,yBAAyB,GAAG;AAAA,EACrD,MAAM,WAAW,iBAAiB,GAAG;AAAA,EACrC,MAAM,eAAe,qBAAqB,GAAG;AAAA,EAC7C,MAAM,SAAS,eAAe,GAAG;AAAA,EAEjC,OAAO;AAAA,IACN;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,EACf;AAAA;AAMM,SAAS,iBAAiB,CAAC,KAAmB;AAAA,EACpD,MAAM,SAAS,kBAAkB,GAAG;AAAA,EAEpC,IAAI,OAAO,cAAc;AAAA,IACxB,QAAQ,IAAI,iDAAiD;AAAA,IAC7D,IAAI,OAAO,UAAU;AAAA,MACpB,QAAQ,IAAI,wDAAuD;AAAA,IACpE;AAAA,IACA,IAAI,OAAO,cAAc;AAAA,MACxB,QAAQ,IAAI,uDAAsD;AAAA,IACnE;AAAA,IACA,IAAI,OAAO,QAAQ;AAAA,MAClB,QAAQ,IACP,6DACD;AAAA,IACD;AAAA,EACD;AAAA;AAMM,SAAS,yBAAyB,CAAC,KAAsB;AAAA,EAC/D,IAAI;AAAA,IACH,MAAM,SAAS,kBAAkB,GAAG;AAAA,IACpC,IAAI,OAAO,cAAc;AAAA,MACxB,kBAAkB,GAAG;AAAA,IACtB;AAAA,IACA,OAAO,OAAO;AAAA,IACb,OAAO,GAAG;AAAA,IACX,QAAQ,KAAK,oCAAoC,CAAC;AAAA,IAClD,OAAO;AAAA;AAAA;;ACzHT,uBAAS,6BAAY;AACrB,8BAAmB,2BAAkB;AAyBrC,SAAS,gBAAgB,CAAC,SAGxB;AAAA,EACD,MAAM,mBAAmB;AAAA,EACzB,MAAM,QAAQ,QAAQ,MAAM,gBAAgB;AAAA,EAE5C,IAAI,CAAC,OAAO;AAAA,IACX,OAAO,EAAE,MAAM,CAAC,GAAG,QAAQ;AAAA,EAC5B;AAAA,EAEA,SAAS,iBAAiB,mBAAmB;AAAA,EAC7C,MAAM,OAA4B,CAAC;AAAA,EAGnC,MAAM,QAAQ,gBAAgB,MAAM;AAAA,CAAI;AAAA,EACxC,WAAW,QAAQ,OAAO;AAAA,IACzB,MAAM,aAAa,KAAK,QAAQ,GAAG;AAAA,IACnC,IAAI,eAAe;AAAA,MAAI;AAAA,IAEvB,MAAM,MAAM,KAAK,MAAM,GAAG,UAAU,EAAE,KAAK;AAAA,IAC3C,IAAI,QAAQ,KAAK,MAAM,aAAa,CAAC,EAAE,KAAK;AAAA,IAG5C,IACE,MAAM,WAAW,GAAG,KAAK,MAAM,SAAS,GAAG,KAC3C,MAAM,WAAW,GAAG,KAAK,MAAM,SAAS,GAAG,GAC3C;AAAA,MACD,QAAQ,MAAM,MAAM,GAAG,EAAE;AAAA,IAC1B;AAAA,IAGA,IAAI,MAAM,WAAW,GAAG,KAAK,MAAM,SAAS,GAAG,GAAG;AAAA,MACjD,KAAK,OAAO,MACV,MAAM,GAAG,EAAE,EACX,MAAM,GAAG,EACT,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,gBAAgB,EAAE,CAAC;AAAA,IAClD,EAEK,SAAI,UAAU,UAAU,UAAU,SAAS;AAAA,MAC/C,KAAK,OAAO,UAAU;AAAA,IACvB,EAEK,SAAI,CAAC,OAAO,MAAM,OAAO,KAAK,CAAC,GAAG;AAAA,MACtC,KAAK,OAAO,OAAO,KAAK;AAAA,IACzB,EAEK;AAAA,MACJ,KAAK,OAAO;AAAA;AAAA,EAEd;AAAA,EAEA,OAAO,EAAE,MAAM,SAAS,gBAAgB;AAAA;AAMzC,SAAS,YAAY,CAAC,SAA0B;AAAA,EAE/C,MAAM,cAAc;AAAA,IACnB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA,EAEA,OAAO,YAAY,KAAK,CAAC,YAAY,QAAQ,KAAK,OAAO,CAAC;AAAA;AAMpD,SAAS,mBAAmB,CAAC,UAAqC;AAAA,EACxE,MAAM,aAAa,cAAa,UAAU,OAAO;AAAA,EACjD,QAAQ,MAAM,YAAY,iBAAiB,UAAU;AAAA,EACrD,MAAM,SAAS,aAAa,OAAO;AAAA,EAEnC,OAAO;AAAA,IACN,aAAa;AAAA,IACb;AAAA,IACA;AAAA,IACA;AAAA,EACD;AAAA;AAMD,SAAS,eAAc,CAAC,KAAsB;AAAA,EAC7C,IAAI,aAAa;AAAA,EAGjB,SAAS,IAAI,EAAG,IAAI,GAAG,KAAK;AAAA,IAC3B,MAAM,kBAAkB,MAAK,YAAY,cAAc;AAAA,IAEvD,IAAI,YAAW,eAAe,GAAG;AAAA,MAChC,IAAI;AAAA,QACH,MAAM,cAAc,KAAK,MAAM,cAAa,iBAAiB,OAAO,CAAC;AAAA,QACrE,MAAM,OAAO;AAAA,aACT,YAAY;AAAA,aACZ,YAAY;AAAA,aACZ,YAAY;AAAA,QAChB;AAAA,QAEA,IAAI,iBAAiB,MAAM;AAAA,UAC1B,OAAO;AAAA,QACR;AAAA,QACC,MAAM;AAAA,IAGT;AAAA,IAEA,MAAM,YAAY,SAAQ,UAAU;AAAA,IAEpC,IAAI,cAAc,YAAY;AAAA,MAC7B;AAAA,IACD;AAAA,IACA,aAAa;AAAA,EACd;AAAA,EAEA,OAAO;AAAA;AAMR,eAAe,UAAU,CACxB,SACA,KACA,UAII,CAAC,GACoB;AAAA,EACzB,IAAI,CAAC,gBAAe,GAAG,GAAG;AAAA,IACzB,QAAQ,KACP,4EACD;AAAA,IACA,OAAO;AAAA,EACR;AAAA,EAEA,IAAI;AAAA,IAEH,IAAI;AAAA,IACJ,MAAM,aAAa;AAAA,MAClB,MAAK,KAAK,0BAA0B;AAAA,MACpC,MAAK,KAAK,6BAA6B;AAAA,MACvC,MAAK,KAAK,gCAAgC;AAAA,MAC1C,MAAK,KAAK,mCAAmC;AAAA,IAC9C;AAAA,IAEA,WAAW,WAAW,YAAY;AAAA,MACjC,IAAI;AAAA,QACH,MAAM,YAAY,UAAQ,OAAO;AAAA,QACjC,UAAU,UAAU;AAAA,QACpB;AAAA,QACC,MAAM;AAAA,IAGT;AAAA,IAEA,IAAI,CAAC,SAAS;AAAA,MACb,QAAQ,MAAM,wDAAwD;AAAA,MACtE,OAAO;AAAA,IACR;AAAA,IAEA,QAAQ,YAAY,MAAM,QAAQ,kBAAkB;AAAA,IAEpD,MAAM,gBAAgB,CAAC;AAAA,IACvB,MAAM,gBAAgB,CAAC;AAAA,IAGvB,IAAI,WAAW;AAAA,MACd,MAAM,gBAAgB;AAAA,QACrB,MAAK,KAAK,yBAAyB;AAAA,QACnC,MAAK,KAAK,4BAA4B;AAAA,QACtC,MAAK,KAAK,+BAA+B;AAAA,QACzC,MAAK,KAAK,kCAAkC;AAAA,MAC7C;AAAA,MAEA,IAAI,YAAiB;AAAA,MACrB,WAAW,WAAW,eAAe;AAAA,QACpC,IAAI;AAAA,UACH,YAAY,UAAQ,OAAO;AAAA,UAC3B;AAAA,UACC,MAAM;AAAA,MAGT;AAAA,MAEA,IAAI,WAAW;AAAA,QACd,cAAc,KAAK,UAAU,WAAW,SAAS;AAAA,MAClD,EAAO;AAAA,QACN,QAAQ,KAAK,kDAAkD;AAAA;AAAA,IAEjE;AAAA,IAGA,MAAM,kBAAkB;AAAA,MACvB,MAAK,KAAK,8BAA8B;AAAA,MACxC,MAAK,KAAK,iCAAiC;AAAA,MAC3C,MAAK,KAAK,oCAAoC;AAAA,MAC9C,MAAK,KAAK,uCAAuC;AAAA,IAClD;AAAA,IAEA,IAAI,cAAmB;AAAA,IACvB,WAAW,aAAa,iBAAiB;AAAA,MACxC,IAAI;AAAA,QACH,cAAc,UAAQ,SAAS;AAAA,QAC/B;AAAA,QACC,MAAM;AAAA,IAGT;AAAA,IAEA,IAAI,aAAa;AAAA,MAChB,cAAc,KAAK,CAAC,YAAY,WAAW,aAAa,EAAE,MAAM,CAAC,CAAC;AAAA,IACnE,EAAO;AAAA,MACN,QAAQ,KACP,oEACD;AAAA;AAAA,IAGD,MAAM,SAAS,MAAM,QAAQ,SAAS;AAAA,MACrC;AAAA,MACA;AAAA,MACA,cAAc;AAAA,MACd,aAAa;AAAA,IACd,CAAC;AAAA,IAED,OAAO,OAAO,MAAM;AAAA,IACnB,OAAO,OAAO;AAAA,IAEf,MAAM,eAAe,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK;AAAA,IAC1E,MAAM,gBACL,SACA,OAAO,UAAU,YACjB,WAAW,SACX,MAAM,SACN,OAAO,MAAM,UAAU,WACpB,WAAY,MAAM,MAAc,QAAQ,eAAgB,MAAM,MAAc,UAAU,QACtF;AAAA,IACJ,MAAM,WAAW,QAAQ,WAAW,OAAO,QAAQ,aAAa;AAAA,IAEhE,QAAQ,KACP,mCAAmC,WAAW,gBAAgB,IAAI,kBAAkB,OAAO,cAC5F;AAAA,IACA,QAAQ,KAAK,8CAA8C;AAAA,IAC3D,OAAO;AAAA;AAAA;AAQT,eAAsB,sBAAsB,CAC3C,WACA,KACA,UAKI,CAAC,GACa;AAAA,EAClB,QAAQ,aAAa,YAAY;AAAA,EACjC;AAAA,IACC,YAAY;AAAA,IACZ,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR;AAAA,MACG;AAAA,EAIJ,MAAM,cAAc,MAAM,WAAW,SAAS,KAAK;AAAA,IAClD;AAAA,IACA;AAAA,IACA;AAAA,EACD,CAAC;AAAA,EACD,IAAI,aAAa;AAAA,IAEhB,OAAO,qBAAqB,QAAQ,QAAQ;AAAA;AAAA;AAAA,EAG5C;AAAA;AAAA;AAAA,sBAGoB,KAAK,UAAU,aAAa,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASxD;AAAA,EAGA,MAAM,iBAAiB,QACrB,QAAQ,OAAO,MAAM,EACrB,QAAQ,MAAM,KAAK,EACnB,QAAQ,OAAO,KAAK;AAAA,EAGtB,MAAM,gBAA0B,CAAC;AAAA,EACjC,MAAM,oBAA8B,CAAC;AAAA,EACrC,MAAM,oBAA8B,CAAC;AAAA,EAErC,IAAI,WAAW;AAAA,IACd,cAAc,KAAK,qCAAqC;AAAA,IACxD,kBAAkB,KAAK,WAAW;AAAA,EACnC;AAAA,EAIA,MAAM,mBACL,cAAc,SAAS,IAAI,GAAG,cAAc,KAAK;AAAA,CAAI;AAAA,IAAQ;AAAA,EAC9D,MAAM,mBACL,kBAAkB,SAAS,IACxB,mBAAmB,kBAAkB,KAAK,IAAI,QAC9C;AAAA,EACJ,MAAM,mBACL,kBAAkB,SAAS,IACxB,mBAAmB,kBAAkB,KAAK,IAAI,QAC9C;AAAA,EACJ,MAAM,kBAAkB,CAAC,kBAAkB,gBAAgB,EACzD,OAAO,OAAO,EACd,KAAK;AAAA,SAAY;AAAA,EAEnB,OAAO;AAAA;AAAA,EAEN;AAAA,eACa,KAAK,UAAU,aAAa,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAStB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAMlB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAkBH,SAAS,2BAA2B,CAC1C,WACS;AAAA,EACT,QAAQ,aAAa,YAAY;AAAA,EACjC,MAAM,iBAAiB,QACrB,QAAQ,OAAO,MAAM,EACrB,MAAM,OAAO,aAAa,EAAE,CAAC,EAC7B,KAAK,KAAK,OAAO,aAAa,EAAE,GAAG,EACnC,MAAM,GAAG,EACT,KAAK,KAAK;AAAA,EAEZ,OAAO;AAAA;AAAA,sBAEc,KAAK,UAAU,aAAa,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BAS7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA8BrB,SAAS,cAAc,CAAC,UAA2B;AAAA,EACzD,MAAM,MAAM,QAAQ,QAAQ,EAAE,YAAY;AAAA,EAC1C,OAAO,QAAQ,SAAS,QAAQ;AAAA;AAO1B,SAAS,oBAAoB,CAAC,UAA0B;AAAA,EAC9D,MAAM,OAAO,SAAS,UAAU,QAAQ,QAAQ,CAAC;AAAA,EACjD,OAAO;AAAA;;ACtcD,SAAS,gBAAgB,CAAC,OAAiB,CAAC,GAAY;AAAA,EAC9D,OAEC,IAAI,IAAI,aAAa,gBACrB,KAAK,SAAS,QAAQ;AAAA;AASjB,SAAS,mBAAmB,CAAC,OAAiB,CAAC,GAAS;AAAA,EAC9D,IAAI,KAAK,SAAS,QAAQ,GAAG;AAAA,IAC5B,QAAQ,IAAI,WAAW;AAAA,IACvB,IAAI,IAAI,WAAW;AAAA,EACpB;AAAA;AAQM,SAAS,cAAc,CAAC,MAA0B;AAAA,EACxD,OAAO,KAAK,OAAO,CAAC,QAAQ,QAAQ,QAAQ;AAAA;;AChC7C;AACA,uBAAS,6BAAY;AACrB,iBAAS;AAMT,SAAS,mBAAmB,CAAC,KAAsB;AAAA,EAClD,MAAM,aAAa;AAAA,IAClB,MAAK,KAAK,cAAc;AAAA,IACxB,MAAK,KAAK,iBAAiB;AAAA,IAC3B,MAAK,KAAK,oBAAoB;AAAA,IAC9B,MAAK,KAAK,uBAAuB;AAAA,EAClC;AAAA,EAEA,WAAW,mBAAmB,YAAY;AAAA,IACzC,IAAI,CAAC,YAAW,eAAe,GAAG;AAAA,MACjC;AAAA,IACD;AAAA,IAEA,IAAI;AAAA,MACH,MAAM,cAAc,KAAK,MAAM,cAAa,iBAAiB,OAAO,CAAC;AAAA,MACrE,MAAM,OAAO;AAAA,WACT,YAAY;AAAA,WACZ,YAAY;AAAA,MAChB;AAAA,MAEA,IAAI,sBAAsB,MAAM;AAAA,QAC/B,OAAO;AAAA,MACR;AAAA,MACC,MAAM;AAAA,EACT;AAAA,EAEA,OAAO;AAAA;AAMR,SAAS,gBAAgB,CAAC,KAAa;AAAA,EACtC,MAAM,QAAQ,MAAK,KAAK,sBAAsB;AAAA,EAC9C,MAAM,SAAS,MAAK,KAAK,oBAAoB;AAAA,EAE7C,OAAO,EAAE,OAAO,OAAO;AAAA;AAMxB,SAAS,gBAAgB,CAAC,KAAsB;AAAA,EAC/C,QAAQ,UAAU,iBAAiB,GAAG;AAAA,EAEtC,IAAI,CAAC,YAAW,KAAK,GAAG;AAAA,IACvB,OAAO;AAAA,EACR;AAAA,EAEA,IAAI;AAAA,IACH,MAAM,UAAU,cAAa,OAAO,OAAO;AAAA,IAE3C,OAAO,QAAQ,SAAS,aAAa;AAAA,IACpC,MAAM;AAAA,IACP,OAAO;AAAA;AAAA;AAIT,SAAS,kBAAkB,CAAC,KAAqB;AAAA,EAEhD,MAAM,aAAa;AAAA,IAClB,MAAK,KAAK,kCAAkC;AAAA,IAC5C,MAAK,KAAK,qCAAqC;AAAA,IAC/C,MAAK,KAAK,wCAAwC;AAAA,EACnD;AAAA,EAEA,WAAW,WAAW,YAAY;AAAA,IACjC,IAAI,YAAW,OAAO,GAAG;AAAA,MACxB,OAAO;AAAA,IACR;AAAA,EACD;AAAA,EAGA,OAAO,MAAK,KAAK,+BAA+B;AAAA;AAMjD,eAAe,aAAa,CAAC,KAAa,SAAS,OAAsB;AAAA,EACxE,QAAQ,OAAO,WAAW,iBAAiB,GAAG;AAAA,EAE9C,OAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AAAA,IACvC,MAAM,cAAc,mBAAmB,GAAG;AAAA,IAC1C,MAAM,OAAO,CAAC,MAAM,OAAO,MAAM,MAAM;AAAA,IAGvC,IAAI,QAAQ;AAAA,MACX,KAAK,KAAK,UAAU;AAAA,IACrB;AAAA,IAEA,MAAM,UAAU,KAAK,KAAK,GAAG;AAAA,IAC7B,QAAQ,IAAI,mCAAmC,SAAS;AAAA,IAExD,MAAM,WAAW,MAAM,aAAa,MAAM;AAAA,MACzC;AAAA,MACA,OAAO;AAAA,IACR,CAAC;AAAA,IAED,SAAS,QAAQ,GAAG,QAAQ,CAAC,SAAS;AAAA,MACrC,MAAM,OAAO,KAAK,SAAS,EAAE,KAAK;AAAA,MAClC,IAAI,MAAM;AAAA,QACT,QAAQ,IAAI,sBAAsB,MAAM;AAAA,MACzC;AAAA,KACA;AAAA,IAED,SAAS,QAAQ,GAAG,QAAQ,CAAC,SAAS;AAAA,MACrC,MAAM,OAAO,KAAK,SAAS,EAAE,KAAK;AAAA,MAClC,IAAI,MAAM;AAAA,QACT,QAAQ,IAAI,sBAAsB,MAAM;AAAA,MACzC;AAAA,KACA;AAAA,IAED,SAAS,GAAG,SAAS,CAAC,SAAS;AAAA,MAC9B,IAAI,SAAS,GAAG;AAAA,QACf,QAAQ,IAAI,+BAA+B;AAAA,QAC3C,QAAQ;AAAA,MACT,EAAO;AAAA,QACN,OAAO,IAAI,MAAM,uCAAuC,MAAM,CAAC;AAAA;AAAA,KAEhE;AAAA,IAED,SAAS,GAAG,SAAS,CAAC,UAAU;AAAA,MAC/B,OAAO,KAAK;AAAA,KACZ;AAAA,GACD;AAAA;AAOF,eAAsB,yBAAyB,CAC9C,KACA,SAAS,OACU;AAAA,EACnB,IAAI;AAAA,IACH,IAAI,oBAAoB,GAAG,KAAK,iBAAiB,GAAG,GAAG;AAAA,MACtD,MAAM,cAAc,KAAK,MAAM;AAAA,MAC/B,OAAO;AAAA,IACR;AAAA,IACA,OAAO;AAAA,IACN,OAAO,GAAG;AAAA,IACX,QAAQ,KAAK,oCAAoC,CAAC;AAAA,IAClD,OAAO;AAAA;AAAA;",
|
|
13
|
+
"debugId": "A40254E02D6E84AA64756E2164756E21",
|
|
14
14
|
"names": []
|
|
15
15
|
}
|
package/cli/src/cli.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* reroute-js v0.
|
|
2
|
+
* reroute-js v0.9.1
|
|
3
3
|
*
|
|
4
4
|
* @license MIT
|
|
5
5
|
* @copyright 2025 stewones <hi@stewan.io>
|
|
@@ -11,9 +11,8 @@
|
|
|
11
11
|
* Build command - Build production binary
|
|
12
12
|
*
|
|
13
13
|
* This command runs:
|
|
14
|
-
* 1. `reroute
|
|
15
|
-
* 2. `
|
|
16
|
-
* 3. `bun build src/index.ts --target bun --compile --outfile ./dist/{name}`
|
|
14
|
+
* 1. `reroute gen --prod` (waits for completion, no watch)
|
|
15
|
+
* 2. `bun build src/index.ts --target bun --compile --outfile ./dist/{name}`
|
|
17
16
|
*/
|
|
18
17
|
export default function build(args: string[]): Promise<void>;
|
|
19
18
|
//# sourceMappingURL=build.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli/src/commands/build.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"build.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli/src/commands/build.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAiEH,wBAA8B,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,iBAiIjD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* reroute-js v0.
|
|
2
|
+
* reroute-js v0.9.1
|
|
3
3
|
*
|
|
4
4
|
* @license MIT
|
|
5
5
|
* @copyright 2025 stewones <hi@stewan.io>
|
|
@@ -11,8 +11,7 @@
|
|
|
11
11
|
* Dev command - Start development environment
|
|
12
12
|
*
|
|
13
13
|
* This command runs:
|
|
14
|
-
* 1. `reroute
|
|
15
|
-
* 2. `reroute gen --watch` and `bun --watch src/index.ts` in parallel with side-by-side logs
|
|
14
|
+
* 1. `reroute gen --watch` and `bun --watch src/index.ts` in parallel with side-by-side logs
|
|
16
15
|
*/
|
|
17
16
|
export default function dev(args: string[]): Promise<void>;
|
|
18
17
|
//# sourceMappingURL=dev.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli/src/commands/dev.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli/src/commands/dev.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuHH,wBAA8B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,iBAuV/C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gen.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli/src/commands/gen.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"gen.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli/src/commands/gen.ts"],"names":[],"mappings":";AA46BA,wBAA8B,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,iBA8G/C"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* reroute-js v0.
|
|
2
|
+
* reroute-js v0.9.1
|
|
3
3
|
*
|
|
4
4
|
* @license MIT
|
|
5
5
|
* @copyright 2025 stewones <hi@stewan.io>
|
|
@@ -11,9 +11,8 @@
|
|
|
11
11
|
* Start command - Run production-like server
|
|
12
12
|
*
|
|
13
13
|
* This command runs:
|
|
14
|
-
* 1. `reroute
|
|
15
|
-
* 2. `
|
|
16
|
-
* 3. `bun src/index.ts` (runs the server, no watch)
|
|
14
|
+
* 1. `reroute gen --prod` (waits for completion, no watch)
|
|
15
|
+
* 2. `bun src/index.ts` (runs the server, no watch)
|
|
17
16
|
*/
|
|
18
17
|
export default function start(_args: string[]): Promise<void>;
|
|
19
18
|
//# sourceMappingURL=start.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli/src/commands/start.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli/src/commands/start.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAsCH,wBAA8B,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,iBAyIlD"}
|
package/cli/src/libs/index.d.ts
CHANGED
package/cli/src/libs/log.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli/src/libs/log.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"log.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli/src/libs/log.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAqBH;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAiBtD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAmBlD;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,IAC5D,MAAM,MAAM,UAiBpB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* reroute-js v0.
|
|
2
|
+
* reroute-js v0.9.1
|
|
3
3
|
*
|
|
4
4
|
* @license MIT
|
|
5
5
|
* @copyright 2025 stewones <hi@stewan.io>
|
|
@@ -39,6 +39,7 @@ export declare function generateMarkdownModule(processed: ProcessedMarkdown, cwd
|
|
|
39
39
|
enableGfm?: boolean;
|
|
40
40
|
theme?: string;
|
|
41
41
|
isMdx?: boolean;
|
|
42
|
+
filename?: string;
|
|
42
43
|
}): Promise<string>;
|
|
43
44
|
/**
|
|
44
45
|
* Generate a plain fallback TSX module when markdown tooling
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markdown-processor.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli/src/libs/markdown-processor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,KAAK,GAAG,GAAG,GAAG,CAAC;AAEf,MAAM,WAAW,mBAAmB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IACjC,WAAW,EAAE,mBAAmB,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CAChB;AA6ED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAWvE;
|
|
1
|
+
{"version":3,"file":"markdown-processor.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli/src/libs/markdown-processor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,KAAK,GAAG,GAAG,GAAG,CAAC;AAEf,MAAM,WAAW,mBAAmB;IACnC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IACjC,WAAW,EAAE,mBAAmB,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,OAAO,CAAC;CAChB;AA6ED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,iBAAiB,CAWvE;AA0KD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC3C,SAAS,EAAE,iBAAiB,EAC5B,GAAG,EAAE,MAAM,EACX,OAAO,GAAE;IACR,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACb,GACJ,OAAO,CAAC,MAAM,CAAC,CAgGjB;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CAC1C,SAAS,EAAE,iBAAiB,GAC1B,MAAM,CA6CR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGxD;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG7D"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* reroute-js v0.9.1
|
|
3
|
+
*
|
|
4
|
+
* @license MIT
|
|
5
|
+
* @copyright 2025 stewones <hi@stewan.io>
|
|
6
|
+
* @see https://github.com/stewones/reroute
|
|
7
|
+
*
|
|
8
|
+
* Built with Bun <3
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Server utilities for waiting and polling
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* Poll server health endpoint until it responds successfully
|
|
15
|
+
* This ensures the server is fully initialized before declaring it ready
|
|
16
|
+
*/
|
|
17
|
+
export declare function waitForServerReady(port?: number, timeout?: number): Promise<void>;
|
|
18
|
+
//# sourceMappingURL=server.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli/src/libs/server.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;GAGG;AACH,wBAAsB,kBAAkB,CACvC,IAAI,SAAO,EACX,OAAO,SAAQ,GACb,OAAO,CAAC,IAAI,CAAC,CAoBf"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* reroute-js v0.
|
|
2
|
+
* reroute-js v0.9.1
|
|
3
3
|
*
|
|
4
4
|
* @license MIT
|
|
5
5
|
* @copyright 2025 stewones <hi@stewan.io>
|
|
@@ -16,5 +16,5 @@
|
|
|
16
16
|
* Build Tailwind once if installed and input exists.
|
|
17
17
|
* Returns true if a build was attempted (success or failure), false if skipped.
|
|
18
18
|
*/
|
|
19
|
-
export declare function buildTailwindIfConfigured(cwd: string): Promise<boolean>;
|
|
19
|
+
export declare function buildTailwindIfConfigured(cwd: string, minify?: boolean): Promise<boolean>;
|
|
20
20
|
//# sourceMappingURL=tailwind.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tailwind.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli/src/libs/tailwind.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"tailwind.d.ts","sourceRoot":"","sources":["../../../../../../packages/cli/src/libs/tailwind.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AA0IH;;;GAGG;AACH,wBAAsB,yBAAyB,CAC9C,GAAG,EAAE,MAAM,EACX,MAAM,UAAQ,GACZ,OAAO,CAAC,OAAO,CAAC,CAWlB"}
|
package/core/index.d.ts
CHANGED