reroute-js 0.13.2 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli/bin.d.ts +1 -1
- package/cli/bin.js +16 -7
- package/cli/bin.js.map +6 -6
- package/cli/index.d.ts +1 -1
- package/cli/index.js +4 -4
- package/cli/index.js.map +1 -1
- package/cli/src/cli.d.ts +1 -1
- package/cli/src/commands/analyze.d.ts +1 -1
- package/cli/src/commands/build.d.ts +1 -1
- package/cli/src/commands/dev.d.ts +1 -1
- package/cli/src/commands/gen.d.ts +1 -1
- package/cli/src/commands/index.d.ts +1 -1
- package/cli/src/commands/init.d.ts +1 -1
- package/cli/src/commands/lib/command.d.ts +1 -1
- package/cli/src/commands/lib/env.d.ts +1 -1
- package/cli/src/commands/lib/index.d.ts +1 -1
- package/cli/src/commands/lib/log.d.ts +1 -1
- package/cli/src/commands/lib/markdown/availability.d.ts +1 -1
- package/cli/src/commands/lib/markdown/index.d.ts +1 -1
- package/cli/src/commands/lib/markdown/processor.d.ts +1 -1
- package/cli/src/commands/lib/production.d.ts +1 -1
- package/cli/src/commands/lib/server.d.ts +1 -1
- package/cli/src/commands/lib/streaming/analyzer.d.ts +1 -1
- package/cli/src/commands/lib/streaming/suspense.d.ts +1 -1
- package/cli/src/commands/lib/tailwind.d.ts +1 -1
- package/cli/src/commands/lib/version.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 +12 -3
- package/core/index.js.map +6 -6
- package/core/src/bundler/hash.d.ts +1 -1
- package/core/src/bundler/index.d.ts +1 -1
- package/core/src/config.d.ts +27 -1
- package/core/src/config.d.ts.map +1 -1
- package/core/src/content/discovery.d.ts +1 -1
- package/core/src/content/index.d.ts +1 -1
- package/core/src/content/metadata.d.ts +1 -1
- package/core/src/index.d.ts +1 -1
- package/core/src/rss/discovery.d.ts +1 -1
- package/core/src/rss/discovery.d.ts.map +1 -1
- package/core/src/rss/generator.d.ts +1 -1
- package/core/src/rss/index.d.ts +1 -1
- package/core/src/sitemap/discovery.d.ts +1 -1
- package/core/src/sitemap/discovery.d.ts.map +1 -1
- package/core/src/sitemap/generator.d.ts +2 -1
- package/core/src/sitemap/generator.d.ts.map +1 -1
- package/core/src/sitemap/index.d.ts +1 -1
- package/core/src/ssr/index.d.ts +1 -1
- package/core/src/ssr/lib/cache.d.ts +1 -1
- package/core/src/ssr/lib/collections.d.ts +1 -1
- package/core/src/ssr/lib/compression.d.ts +1 -1
- package/core/src/ssr/lib/compute.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/index.d.ts +1 -1
- package/core/src/ssr/lib/metadata.d.ts +1 -1
- package/core/src/ssr/lib/mime.d.ts +1 -1
- package/core/src/ssr/lib/modules.d.ts +1 -1
- package/core/src/ssr/lib/path.d.ts +1 -1
- package/core/src/ssr/lib/preload.d.ts +1 -1
- package/core/src/ssr/lib/scripts.d.ts +1 -1
- package/core/src/ssr/lib/seed.d.ts +1 -1
- package/core/src/ssr/lib/styles.d.ts +1 -1
- package/core/src/ssr/lib/template.d.ts +1 -1
- package/core/src/ssr/lib/types.d.ts +1 -1
- package/core/src/ssr/render.d.ts +1 -1
- package/core/src/ssr/stream.d.ts +1 -1
- package/elysia/index.d.ts +1 -1
- package/elysia/index.js +19 -5
- package/elysia/index.js.map +8 -8
- package/elysia/src/index.d.ts +1 -1
- package/elysia/src/libs/cache.d.ts +1 -1
- package/elysia/src/libs/http.d.ts +1 -1
- package/elysia/src/libs/image.d.ts +1 -1
- package/elysia/src/plugin.d.ts +1 -1
- package/elysia/src/routes/artifacts.d.ts +1 -1
- package/elysia/src/routes/content.d.ts +1 -1
- package/elysia/src/routes/image.d.ts +1 -1
- package/elysia/src/routes/internal.d.ts +1 -1
- package/elysia/src/routes/redirects.d.ts +1 -1
- package/elysia/src/routes/rss.d.ts +1 -1
- package/elysia/src/routes/rss.d.ts.map +1 -1
- package/elysia/src/routes/sitemap.d.ts +1 -1
- package/elysia/src/routes/sitemap.d.ts.map +1 -1
- package/elysia/src/routes/ssr.d.ts +1 -1
- package/elysia/src/routes/static.d.ts +1 -1
- package/elysia/src/types.d.ts +1 -1
- package/package.json +1 -1
- package/react/index.d.ts +1 -1
- package/react/index.js +2 -2
- package/react/index.js.map +1 -1
- package/react/src/components/ClientOnly.d.ts +1 -1
- package/react/src/components/ContentRoute.d.ts +1 -1
- package/react/src/components/Image.d.ts +1 -1
- package/react/src/components/LazyRoute.d.ts +1 -1
- package/react/src/components/Link.d.ts +1 -1
- package/react/src/components/Markdown.d.ts +1 -1
- package/react/src/components/Outlet.d.ts +1 -1
- package/react/src/components/index.d.ts +1 -1
- package/react/src/hooks/index.d.ts +1 -1
- package/react/src/hooks/useContent.d.ts +1 -1
- package/react/src/hooks/useData.d.ts +1 -1
- package/react/src/hooks/useFeed.d.ts +1 -1
- package/react/src/hooks/useLayoutData.d.ts +1 -1
- package/react/src/hooks/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/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/cli/bin.js.map
CHANGED
|
@@ -5,16 +5,16 @@
|
|
|
5
5
|
"import path from 'node:path';\n\n// Version and commit injected at build time\ndeclare const __REROUTE_VERSION__: string;\ndeclare const __REROUTE_COMMIT__: string;\n\nexport async function getVersionString(): Promise<string> {\n\tconst version = await getVersion();\n\tconst commit = await getCommit();\n\treturn `Reroute v${version} ${commit}`;\n}\n\nasync function getVersion(): Promise<string> {\n\t// Use version injected at build time\n\tif (typeof __REROUTE_VERSION__ !== 'undefined') {\n\t\treturn __REROUTE_VERSION__;\n\t}\n\n\t// Fallback for development: try to find package.json\n\tconst possiblePaths = [\n\t\tpath.join(import.meta.dir, '../../../../package.json'),\n\t\tpath.join(import.meta.dir, '../../../package.json'),\n\t\tpath.join(import.meta.dir, '../../package.json'),\n\t\tpath.join(import.meta.dir, '../package.json'),\n\t];\n\n\tfor (const pkgPath of possiblePaths) {\n\t\ttry {\n\t\t\tconst pkg = await Bun.file(pkgPath).json();\n\t\t\treturn pkg.version;\n\t\t} catch {}\n\t}\n\n\treturn 'unknown';\n}\n\nasync function getCommit(): Promise<string> {\n\t// Use commit injected at build time\n\tif (typeof __REROUTE_COMMIT__ !== 'undefined') {\n\t\treturn __REROUTE_COMMIT__;\n\t}\n\n\t// Fallback for development\n\treturn 'dev';\n}\n",
|
|
6
6
|
"#!/usr/bin/env bun\n\n/**\n * Reroute init command\n *\n * Scaffold a new Reroute project with templates\n */\n\nimport { existsSync } from 'node:fs';\nimport { mkdir, readdir } from 'node:fs/promises';\nimport { join } from 'node:path';\nimport { getVersionString } from './lib/version';\n\ninterface InitOptions {\n\tprojectName: string;\n\ttemplate: string;\n}\n\n/**\n * Get all available template paths\n * Returns array of possible paths where templates might be located\n */\nfunction getTemplatePaths(): string[] {\n\treturn [\n\t\t// When running from source: packages/cli/src/commands -> packages/cli/src/_\n\t\tjoin(import.meta.dir, '..', '_'),\n\t\t// When running from production build: dist/cli/src/commands -> dist/_\n\t\tjoin(import.meta.dir, '..', '..', '..', '_'),\n\t];\n}\n\n/**\n * Discover all available templates by scanning template directories\n * Works in both development and production environments\n */\nasync function getAvailableTemplates(): Promise<string[]> {\n\tconst templatePaths = getTemplatePaths();\n\n\tfor (const templatesDir of templatePaths) {\n\t\tif (!existsSync(templatesDir)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\ttry {\n\t\t\tconst entries = await readdir(templatesDir, { withFileTypes: true });\n\t\t\tconst templates = entries\n\t\t\t\t.filter((entry) => entry.isDirectory())\n\t\t\t\t.map((entry) => entry.name)\n\t\t\t\t.filter((name) => name !== 'node_modules' && !name.startsWith('.'))\n\t\t\t\t.sort();\n\n\t\t\tif (templates.length > 0) {\n\t\t\t\treturn templates;\n\t\t\t}\n\t\t} catch {}\n\t}\n\n\t// Fallback to hardcoded list if discovery fails\n\treturn ['basic', 'blog', 'store'];\n}\n\nexport default async function init(args: string[]) {\n\tconst options = await parseArgs(args);\n\n\tif (!options) {\n\t\tawait printHelp();\n\t\tprocess.exit(1);\n\t}\n\n\ttry {\n\t\tawait scaffoldProject(options);\n\t} catch (error) {\n\t\tconsole.error('Error scaffolding project:', error);\n\t\tprocess.exit(1);\n\t}\n}\n\nasync function parseArgs(args: string[]): Promise<InitOptions | null> {\n\tif (args.length === 0 || args[0] === '--help' || args[0] === '-h') {\n\t\treturn null;\n\t}\n\n\tconst projectName = args[0];\n\n\tif (!projectName || projectName.startsWith('-')) {\n\t\tconsole.error('Error: Project name is required');\n\t\treturn null;\n\t}\n\n\t// Validate project name\n\tif (!/^[a-z0-9-_]+$/i.test(projectName)) {\n\t\tconsole.error(\n\t\t\t'Error: Project name can only contain letters, numbers, hyphens, and underscores',\n\t\t);\n\t\treturn null;\n\t}\n\n\tlet template = 'basic';\n\n\t// Parse template flag\n\tconst templateIndex = args.indexOf('--template');\n\tif (templateIndex !== -1 && args[templateIndex + 1]) {\n\t\tconst templateArg = args[templateIndex + 1];\n\t\tconst availableTemplates = await getAvailableTemplates();\n\n\t\tif (availableTemplates.includes(templateArg)) {\n\t\t\ttemplate = templateArg;\n\t\t} else {\n\t\t\tconsole.error(\n\t\t\t\t`Error: Unknown template \"${templateArg}\". Available templates: ${availableTemplates.join(', ')}`,\n\t\t\t);\n\t\t\treturn null;\n\t\t}\n\t}\n\n\treturn { projectName, template };\n}\n\nasync function scaffoldProject(options: InitOptions) {\n\tconst { projectName, template } = options;\n\tconst projectPath = join(process.cwd(), projectName);\n\n\t// Check if directory already exists\n\tif (existsSync(projectPath)) {\n\t\tconsole.error(`Error: Directory \"${projectName}\" already exists`);\n\t\tprocess.exit(1);\n\t}\n\n\tconsole.log(`\\n🏗️ Creating project: ${projectName}`);\n\tconsole.log(`\\n📦 Template: ${template}\\n`);\n\n\t// Get template directory path (for non-src files like package.json, tsconfig.json)\n\t// Try multiple possible paths to find template directory (dev vs production)\n\tconst possibleTemplatePaths = getTemplatePaths().map((basePath) =>\n\t\tjoin(basePath, template),\n\t);\n\n\tlet templatePath: string | undefined;\n\tfor (const path of possibleTemplatePaths) {\n\t\tif (existsSync(path)) {\n\t\t\ttemplatePath = path;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\tif (!templatePath) {\n\t\tconst availableTemplates = await getAvailableTemplates();\n\t\tconsole.error(\n\t\t\t`Error: Template directory not found for template \"${template}\"`,\n\t\t);\n\t\tconsole.error(`Available templates: ${availableTemplates.join(', ')}`);\n\t\tconsole.error(`Tried paths: ${possibleTemplatePaths.join(', ')}`);\n\t\tprocess.exit(1);\n\t}\n\n\t// Get examples directory path (for src folder)\n\t// Try multiple possible paths to find examples directory\n\tconst possibleExamplesPaths = [\n\t\t// When running from source: packages/cli/src/commands -> examples\n\t\tjoin(import.meta.dir, '..', '..', '..', '..', 'examples', template, 'src'),\n\t\t// Alternative path structure\n\t\tjoin(\n\t\t\timport.meta.dir,\n\t\t\t'..',\n\t\t\t'..',\n\t\t\t'..',\n\t\t\t'..',\n\t\t\t'..',\n\t\t\t'examples',\n\t\t\ttemplate,\n\t\t\t'src',\n\t\t),\n\t];\n\n\tlet examplesPath: string | undefined;\n\tfor (const path of possibleExamplesPaths) {\n\t\tif (existsSync(path)) {\n\t\t\texamplesPath = path;\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t// Create project directory\n\tawait mkdir(projectPath, { recursive: true });\n\n\t// Copy template files (excluding src folder)\n\tawait copyTemplateFiles(templatePath, projectPath, {\n\t\tPROJECT_NAME: projectName,\n\t});\n\n\t// Variables to replace in source files\n\tconst sourceVariables = {\n\t\tPROJECT_NAME: projectName,\n\t};\n\n\t// Copy src folder from examples (or fallback to template if examples not found)\n\tif (examplesPath) {\n\t\t// Copy src folder from examples (always up-to-date)\n\t\tawait copySourceFiles(\n\t\t\texamplesPath,\n\t\t\tjoin(projectPath, 'src'),\n\t\t\tsourceVariables,\n\t\t);\n\t} else {\n\t\t// Fallback: copy src folder from template (for distribution scenarios)\n\t\tconst templateSrcPath = join(templatePath, 'src');\n\t\tif (existsSync(templateSrcPath)) {\n\t\t\tawait copySourceFiles(\n\t\t\t\ttemplateSrcPath,\n\t\t\t\tjoin(projectPath, 'src'),\n\t\t\t\tsourceVariables,\n\t\t\t);\n\t\t} else {\n\t\t\tconsole.error(`Error: No src directory found for template \"${template}\"`);\n\t\t\tconsole.error(\n\t\t\t\t`Tried examples paths: ${possibleExamplesPaths.join(', ')}`,\n\t\t\t);\n\t\t\tconsole.error(`Tried template path: ${templateSrcPath}`);\n\t\t\tprocess.exit(1);\n\t\t}\n\t}\n\n\t// Create .env.example file\n\tconst envExampleContent = `# Environment variables for ${projectName}\n# Copy this file to .env and customize as needed\n\n# Server-only variables (NOT exposed to browser)\n# These are only available in server code (src/index.ts)\nDATABASE_URL=postgresql://localhost:5432/mydb\nSECRET_API_KEY=your-secret-key-here\n\n# Public variables (exposed to browser)\n# These will be bundled into the client code\n# Prefix with REROUTE_ to make them available in the browser\nREROUTE_API_URL=https://api.example.com\nREROUTE_SITE_NAME=${projectName}\n`;\n\n\tawait Bun.write(join(projectPath, '.env.example'), envExampleContent);\n\n\t// Run bun install\n\tconsole.log('📥 Installing dependencies...\\n');\n\tconst proc = Bun.spawn(['bun', 'install'], {\n\t\tcwd: projectPath,\n\t\tstdout: 'inherit',\n\t\tstderr: 'inherit',\n\t});\n\n\tawait proc.exited;\n\n\t// Print success message\n\tprintSuccess(projectName, template);\n}\n\nasync function copyTemplateFiles(\n\ttemplatePath: string,\n\ttargetPath: string,\n\tvariables: Record<string, string>,\n) {\n\tconst entries = await readdir(templatePath, { withFileTypes: true });\n\n\tfor (const entry of entries) {\n\t\t// Skip src directory - it will be copied from examples\n\t\tif (entry.isDirectory() && entry.name === 'src') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst sourcePath = join(templatePath, entry.name);\n\t\tconst destPath = join(targetPath, entry.name);\n\n\t\tif (entry.isDirectory()) {\n\t\t\t// Create directory and recurse\n\t\t\tawait mkdir(destPath, { recursive: true });\n\t\t\tawait copyTemplateFiles(sourcePath, destPath, variables);\n\t\t} else if (entry.isFile()) {\n\t\t\t// Read file content\n\t\t\tconst content = await Bun.file(sourcePath).text();\n\n\t\t\t// Replace variables in content\n\t\t\tlet processedContent = content;\n\t\t\tfor (const [key, value] of Object.entries(variables)) {\n\t\t\t\tconst placeholder = `{{${key}}}`;\n\t\t\t\tprocessedContent = processedContent.split(placeholder).join(value);\n\t\t\t}\n\n\t\t\t// Write file\n\t\t\tawait Bun.write(destPath, processedContent);\n\t\t}\n\t}\n}\n\n/**\n * File patterns that should have variable replacements applied\n * Add more patterns here as needed for future variables\n */\nconst VARIABLE_REPLACEMENT_PATTERNS = [\n\t/\\.html$/i, // HTML files (e.g., index.html)\n\t// Add more patterns here as needed:\n\t// /\\.md$/i, // Markdown files\n\t// /\\.txt$/i, // Text files\n];\n\n/**\n * Apply variable replacements to file content based on file type\n * This allows examples to remain as working projects while still customizing them during init\n */\nfunction applyVariableReplacements(\n\tcontent: string,\n\tfileName: string,\n\tvariables: Record<string, string>,\n): string {\n\t// Check if this file type should have variables replaced\n\tconst shouldReplaceVariables = VARIABLE_REPLACEMENT_PATTERNS.some((pattern) =>\n\t\tpattern.test(fileName),\n\t);\n\n\tif (!shouldReplaceVariables) {\n\t\treturn content;\n\t}\n\n\tlet processedContent = content;\n\n\t// For HTML files, replace title tag content\n\tif (/\\.html$/i.test(fileName)) {\n\t\t// Replace title tag content with PROJECT_NAME if available\n\t\tif (variables.PROJECT_NAME) {\n\t\t\t// Match <title>...</title> and replace content\n\t\t\tprocessedContent = processedContent.replace(\n\t\t\t\t/<title>.*?<\\/title>/i,\n\t\t\t\t`<title>${variables.PROJECT_NAME}</title>`,\n\t\t\t);\n\t\t}\n\t}\n\n\t// Add more file-specific replacements here as needed\n\t// For example, for markdown files:\n\t// if (/\\.md$/i.test(fileName)) {\n\t// processedContent = processedContent.replace(/{{PROJECT_NAME}}/g, variables.PROJECT_NAME);\n\t// }\n\n\treturn processedContent;\n}\n\n/**\n * Copy source files from examples, optionally applying variable replacements\n */\nasync function copySourceFiles(\n\tsourcePath: string,\n\ttargetPath: string,\n\tvariables?: Record<string, string>,\n) {\n\tconst entries = await readdir(sourcePath, { withFileTypes: true });\n\n\t// Create target directory\n\tawait mkdir(targetPath, { recursive: true });\n\n\tfor (const entry of entries) {\n\t\tconst sourceEntryPath = join(sourcePath, entry.name);\n\t\tconst targetEntryPath = join(targetPath, entry.name);\n\n\t\tif (entry.isDirectory()) {\n\t\t\t// Recursively copy directory\n\t\t\tawait copySourceFiles(sourceEntryPath, targetEntryPath, variables);\n\t\t} else if (entry.isFile()) {\n\t\t\t// Read file content\n\t\t\tconst content = await Bun.file(sourceEntryPath).text();\n\n\t\t\t// Apply variable replacements if variables are provided\n\t\t\tconst processedContent = variables\n\t\t\t\t? applyVariableReplacements(content, entry.name, variables)\n\t\t\t\t: content;\n\n\t\t\t// Write file\n\t\t\tawait Bun.write(targetEntryPath, processedContent);\n\t\t}\n\t}\n}\n\nfunction printSuccess(projectName: string, template: string) {\n\tconsole.log('\\n🏎️ Project created successfully!\\n');\n\tconsole.log('Next steps:\\n');\n\tconsole.log(` cd ${projectName}`);\n\tconsole.log(' bun dev\\n');\n\tconsole.log('Your app will be running at http://localhost:3000\\n');\n\tconsole.log(\n\t\t'💡 Tip: Copy .env.example to .env to customize environment variables\\n',\n\t);\n\tconsole.log('Project structure:');\n\tconsole.log(\n\t\t' .env.example # Environment variables template',\n\t);\n\tconsole.log(' src/');\n\tconsole.log(' |-- index.ts # Server entry point');\n\tconsole.log(' +-- client/');\n\tconsole.log(' |-- App.tsx # Root React component');\n\tconsole.log(' |-- index.tsx # Client entry point');\n\tconsole.log(' |-- index.html # HTML template');\n\tconsole.log(' |-- routes/ # File-based routes');\n\tif (template === 'blog') {\n\t\tconsole.log(' | |-- blog/');\n\t\tconsole.log(' | | |-- content/ # Blog posts');\n\t\tconsole.log(' | | |-- [slug].tsx');\n\t\tconsole.log(' | | +-- index.tsx');\n\t}\n\tif (template === 'store') {\n\t\tconsole.log(' | |-- products/');\n\t\tconsole.log(' | |-- categories/');\n\t\tconsole.log(' |-- lib/ # API client & utilities');\n\t\tconsole.log(' +-- theme.css # Tailwind CSS v4');\n\t}\n\tconsole.log(' | |-- index.tsx');\n\tconsole.log(' | +-- about.tsx');\n\tconsole.log(' +-- components/ # React components\\n');\n\tconsole.log('Learn more at https://github.com/stewones/reroute');\n}\n\nasync function printHelp() {\n\tconst availableTemplates = await getAvailableTemplates();\n\tconst templatesString = availableTemplates.join(', ');\n\n\tconsole.log(await getVersionString());\n\tconsole.log('');\n\tconsole.log('Usage:');\n\tconsole.log(' reroute init <project-name> [options]');\n\tconsole.log('');\n\tconsole.log('Options:');\n\tconsole.log(` --template <name> Template to use (${templatesString})`);\n\tconsole.log(' -h, --help Show help');\n\tconsole.log('');\n\tconsole.log('Examples:');\n\tconsole.log(' reroute init my-app');\n\n\t// Show examples for each template (excluding 'basic' which is default)\n\tfor (const template of availableTemplates) {\n\t\tif (template !== 'basic') {\n\t\t\tconsole.log(` reroute init my-${template} --template ${template}`);\n\t\t}\n\t}\n}\n",
|
|
7
7
|
"export async function generateContentHash(content: string): Promise<string> {\n\tconst data = new TextEncoder().encode(content);\n\tconst buf = await crypto.subtle.digest('SHA-256', data);\n\tlet hex = '';\n\tfor (const b of new Uint8Array(buf)) hex += b.toString(16).padStart(2, '0');\n\treturn hex.slice(0, 8);\n}\n",
|
|
8
|
-
"import { pathToFileURL } from 'node:url';\nimport type { ComponentType } from 'react';\n\n// biome-ignore lint/suspicious/noExplicitAny: The user document\ntype Doc = any;\nexport interface StreamingOptions {\n\tenabled?: boolean;\n\tdefaultSkeleton?: ComponentType | string;\n\tdefaultLayoutSkeleton?: ComponentType | string;\n}\n\n/**\n * Sitemap configuration options\n */\ninterface SitemapOptions {\n\t/** Enable sitemap generation (default: false) */\n\tenabled?: boolean;\n\n\t/** Base URL for sitemap generation (e.g., 'https://example.com') - required when enabled */\n\tbaseUrl?: string;\n\n\t/**\n\t * Maximum URLs per sitemap file before pagination (default: 50000)\n\t * When exceeded, creates multiple sitemap files with a sitemap index\n\t * Set lower for testing (e.g., 10) to verify pagination works\n\t */\n\tmaxUrlsPerPage?: number;\n\n\t/**\n\t * Extract urls from ssr.data result (full control over data shape)\n\t * If provided, this takes precedence over automatic array discovery\n\t * @param data - Full ssr.data result\n\t * @param routePattern - The route pattern (e.g., '/changelog')\n\t * @returns Array of items to process, or null/undefined to skip this route\n\t */\n\textractUrls?: (data: Doc, routePattern: string) => Doc[] | null | undefined;\n\n\t/**\n\t * Extract URL segment from ssr.data items\n\t * @param item - Data item from ssr.data result\n\t * @param routePattern - The route pattern (e.g., '/changelog')\n\t * @returns URL segment to append to routePattern (e.g., '0.1.0' -> '/changelog/0.1.0')\n\t */\n\textractUrl?: (item: Doc, routePattern: string) => string | null | undefined;\n\n\t/**\n\t * Extract lastmod date from ssr.data items\n\t * @param item - Data item from ssr.data result\n\t * @returns ISO date string or undefined\n\t */\n\textractLastmod?: (item: Doc) => string | undefined;\n\n\t/** Default changefreq for URLs */\n\tchangefreq?:\n\t\t| 'always'\n\t\t| 'hourly'\n\t\t| 'daily'\n\t\t| 'weekly'\n\t\t| 'monthly'\n\t\t| 'yearly'\n\t\t| 'never';\n\n\t/** Default priority for URLs */\n\tpriority?: number;\n}\n\n/**\n * RSS feed configuration options\n */\nexport interface RSSOptions {\n\t/** Enable RSS feed generation (default: false) */\n\tenabled?: boolean;\n\n\t/** Base URL for RSS feeds (e.g., 'https://example.com') - required when enabled */\n\tbaseUrl?: string;\n\n\t/** Feed title (e.g., 'My Blog') */\n\ttitle?: string;\n\n\t/** Feed description */\n\tdescription?: string;\n\n\t/** Maximum number of items per feed (default: 50) */\n\tlimit?: number;\n\n\t/** Feed format: 'rss' or 'atom' (default: 'rss') */\n\tformat?: 'rss' | 'atom';\n\n\t/**\n\t * Extract items from ssr.data result (full control over data shape)\n\t * If provided, this takes precedence over automatic array discovery\n\t * @param data - Full ssr.data result\n\t * @param routePattern - The route pattern (e.g., '/changelog')\n\t * @returns Array of items to process, or null/undefined to skip this route\n\t */\n\textractUrls?: (data: Doc, routePattern: string) => Doc[] | null | undefined;\n\n\t/**\n\t * Extract URL segment from ssr.data items (same as sitemap)\n\t */\n\textractUrl?: (item: Doc, routePattern: string) => string | null | undefined;\n\n\t/**\n\t * Extract publication date from items\n\t */\n\textractPubDate?: (item: Doc) => string | undefined;\n\n\t/**\n\t * Extract author from items\n\t */\n\textractAuthor?: (item: Doc) => string | undefined;\n\n\t/**\n\t * Extract content/body from items\n\t */\n\textractContent?: (item: Doc) => string | undefined;\n}\n\n/**\n * Redirect handler function that can dynamically determine destination\n * @param url - The original URL object\n * @returns The destination path/url or null to skip redirect\n */\ntype RedirectHandler = (url: URL) => string | null | Promise<string | null>;\n\n/**\n * Individual redirect rule\n */\ninterface RedirectRule {\n\t/** Source path (string or regex pattern) */\n\tsource: string | RegExp;\n\t/** Destination path or handler function */\n\tdestination: string | RedirectHandler;\n\t/** HTTP status code (301 = permanent, 302 = temporary, 307 = preserve method, 308 = permanent preserve method) */\n\tstatus?: 301 | 302 | 307 | 308;\n\t/** Whether source is a regex pattern (auto-detected if source is RegExp) */\n\tregex?: boolean;\n}\n\ninterface ConfigOptions {\n\t// App component - must be string path in config (not ReactElement)\n\tapp?: string;\n\n\t// SSR options\n\thead?: string;\n\tlang?: string;\n\tappId?: string;\n\n\t// Static serving options\n\tassets?: string;\n\tprefix?: string;\n\tignorePatterns?: (string | RegExp)[];\n\tstaticHeaders?: Record<string, string>;\n\tmaxAge?: number;\n\tdirective?: string;\n\tindexHTML?: boolean;\n\n\t// Build options\n\tminify?: boolean;\n\n\t// Compression (applies to both sync and streaming SSR)\n\tcompression?: boolean;\n\n\t// Image optimization options\n\timageMaxAge?: number;\n\timageAllowedDomains?: string[];\n\timageMaxWidth?: number;\n\timageMaxHeight?: number;\n\n\t// Bundle caching options\n\tbundleMaxAge?: number;\n}\n\ninterface RerouteConfig {\n\toptions?: ConfigOptions;\n\tstreaming?: StreamingOptions;\n\tredirects?: RedirectRule[];\n\tsitemap?: SitemapOptions;\n\trss?: RSSOptions;\n}\n\nfunction defineConfig(config: RerouteConfig): RerouteConfig {\n\treturn config;\n}\n\nasync function loadConfig(cwd: string): Promise<RerouteConfig> {\n\tconst configPath = `${cwd}/reroute.config.ts`;\n\tconst configFile = Bun.file(configPath);\n\n\tif (!(await configFile.exists())) {\n\t\treturn {};\n\t}\n\n\ttry {\n\t\tconst mod = await import(\n\t\t\t`${pathToFileURL(configPath).href}?t=${Date.now()}`\n\t\t);\n\t\treturn (mod.default || mod) as RerouteConfig;\n\t} catch (error) {\n\t\tconsole.warn('[reroute] Failed to load reroute.config.ts:', error);\n\t\treturn {};\n\t}\n}\n\nexport {\n\tdefineConfig,\n\tloadConfig,\n\ttype ConfigOptions,\n\ttype RedirectRule,\n\ttype RerouteConfig,\n\ttype SitemapOptions,\n};\n",
|
|
8
|
+
"import { pathToFileURL } from 'node:url';\nimport type { ComponentType } from 'react';\n\n// biome-ignore lint/suspicious/noExplicitAny: The user document\ntype Doc = any;\nexport interface StreamingOptions {\n\tenabled?: boolean;\n\tdefaultSkeleton?: ComponentType | string;\n\tdefaultLayoutSkeleton?: ComponentType | string;\n}\n\n/**\n * Sitemap configuration options\n */\ninterface SitemapOptions {\n\t/** Enable sitemap generation (default: false) */\n\tenabled?: boolean;\n\n\t/** Base URL for sitemap generation (e.g., 'https://example.com') - required when enabled */\n\tbaseUrl?: string;\n\n\t/**\n\t * Maximum URLs per sitemap file before pagination (default: 50000)\n\t * When exceeded, creates multiple sitemap files with a sitemap index\n\t * Set lower for testing (e.g., 10) to verify pagination works\n\t */\n\tmaxUrlsPerPage?: number;\n\n\t/**\n\t * Completely exclude specific routes from the sitemap\n\t * Routes listed here will not appear in the sitemap at all\n\t * @example ['/admin', '/api']\n\t */\n\texcludeRoutes?: string[];\n\n\t/**\n\t * Exclude specific routes from SSR data array discovery\n\t * Routes listed here will still appear in the sitemap as single entries,\n\t * but won't generate multiple URLs from arrays found in their SSR data\n\t * @example ['/download', '/pricing'] - these routes appear once, not per array item\n\t */\n\texcludeDiscovery?: string[];\n\n\t/**\n\t * Extract urls from ssr.data result (full control over data shape)\n\t * If provided, this takes precedence over automatic array discovery\n\t * @param data - Full ssr.data result\n\t * @param routePattern - The route pattern (e.g., '/changelog')\n\t * @returns Array of items to process, or null/undefined to skip this route\n\t */\n\textractUrls?: (data: Doc, routePattern: string) => Doc[] | null | undefined;\n\n\t/**\n\t * Extract URL segment from ssr.data items\n\t * @param item - Data item from ssr.data result\n\t * @param routePattern - The route pattern (e.g., '/changelog')\n\t * @returns URL segment to append to routePattern (e.g., '0.1.0' -> '/changelog/0.1.0')\n\t */\n\textractUrl?: (item: Doc, routePattern: string) => string | null | undefined;\n\n\t/**\n\t * Extract lastmod date from ssr.data items\n\t * @param item - Data item from ssr.data result\n\t * @returns ISO date string or undefined\n\t */\n\textractLastmod?: (item: Doc) => string | undefined;\n\n\t/** Default changefreq for URLs */\n\tchangefreq?:\n\t\t| 'always'\n\t\t| 'hourly'\n\t\t| 'daily'\n\t\t| 'weekly'\n\t\t| 'monthly'\n\t\t| 'yearly'\n\t\t| 'never';\n\n\t/** Default priority for URLs */\n\tpriority?: number;\n}\n\n/**\n * RSS feed configuration options\n */\nexport interface RSSOptions {\n\t/** Enable RSS feed generation (default: false) */\n\tenabled?: boolean;\n\n\t/** Base URL for RSS feeds (e.g., 'https://example.com') - required when enabled */\n\tbaseUrl?: string;\n\n\t/** Feed title (e.g., 'My Blog') */\n\ttitle?: string;\n\n\t/** Feed description */\n\tdescription?: string;\n\n\t/** Maximum number of items per feed (default: 50) */\n\tlimit?: number;\n\n\t/** Feed format: 'rss' or 'atom' (default: 'rss') */\n\tformat?: 'rss' | 'atom';\n\n\t/**\n\t * Completely exclude specific routes from the RSS feed\n\t * Routes listed here will not appear in the feed at all\n\t * @example ['/admin', '/api']\n\t */\n\texcludeRoutes?: string[];\n\n\t/**\n\t * Exclude specific routes from SSR data array discovery\n\t * Routes listed here won't generate multiple feed items from arrays in their SSR data,\n\t * but may still generate a single feed item if appropriate\n\t * @example ['/download', '/pricing'] - won't generate items per array entry\n\t */\n\texcludeDiscovery?: string[];\n\n\t/**\n\t * Extract items from ssr.data result (full control over data shape)\n\t * If provided, this takes precedence over automatic array discovery\n\t * @param data - Full ssr.data result\n\t * @param routePattern - The route pattern (e.g., '/changelog')\n\t * @returns Array of items to process, or null/undefined to skip this route\n\t */\n\textractUrls?: (data: Doc, routePattern: string) => Doc[] | null | undefined;\n\n\t/**\n\t * Extract URL segment from ssr.data items (same as sitemap)\n\t */\n\textractUrl?: (item: Doc, routePattern: string) => string | null | undefined;\n\n\t/**\n\t * Extract publication date from items\n\t */\n\textractPubDate?: (item: Doc) => string | undefined;\n\n\t/**\n\t * Extract author from items\n\t */\n\textractAuthor?: (item: Doc) => string | undefined;\n\n\t/**\n\t * Extract content/body from items\n\t */\n\textractContent?: (item: Doc) => string | undefined;\n}\n\n/**\n * Redirect handler function that can dynamically determine destination\n * @param url - The original URL object\n * @returns The destination path/url or null to skip redirect\n */\ntype RedirectHandler = (url: URL) => string | null | Promise<string | null>;\n\n/**\n * Individual redirect rule\n */\ninterface RedirectRule {\n\t/** Source path (string or regex pattern) */\n\tsource: string | RegExp;\n\t/** Destination path or handler function */\n\tdestination: string | RedirectHandler;\n\t/** HTTP status code (301 = permanent, 302 = temporary, 307 = preserve method, 308 = permanent preserve method) */\n\tstatus?: 301 | 302 | 307 | 308;\n\t/** Whether source is a regex pattern (auto-detected if source is RegExp) */\n\tregex?: boolean;\n}\n\ninterface ConfigOptions {\n\t// App component - must be string path in config (not ReactElement)\n\tapp?: string;\n\n\t// SSR options\n\thead?: string;\n\tlang?: string;\n\tappId?: string;\n\n\t// Static serving options\n\tassets?: string;\n\tprefix?: string;\n\tignorePatterns?: (string | RegExp)[];\n\tstaticHeaders?: Record<string, string>;\n\tmaxAge?: number;\n\tdirective?: string;\n\tindexHTML?: boolean;\n\n\t// Build options\n\tminify?: boolean;\n\n\t// Compression (applies to both sync and streaming SSR)\n\tcompression?: boolean;\n\n\t// Image optimization options\n\timageMaxAge?: number;\n\timageAllowedDomains?: string[];\n\timageMaxWidth?: number;\n\timageMaxHeight?: number;\n\n\t// Bundle caching options\n\tbundleMaxAge?: number;\n}\n\ninterface RerouteConfig {\n\toptions?: ConfigOptions;\n\tstreaming?: StreamingOptions;\n\tredirects?: RedirectRule[];\n\tsitemap?: SitemapOptions;\n\trss?: RSSOptions;\n}\n\nfunction defineConfig(config: RerouteConfig): RerouteConfig {\n\treturn config;\n}\n\nasync function loadConfig(cwd: string): Promise<RerouteConfig> {\n\tconst configPath = `${cwd}/reroute.config.ts`;\n\tconst configFile = Bun.file(configPath);\n\n\tif (!(await configFile.exists())) {\n\t\treturn {};\n\t}\n\n\ttry {\n\t\tconst mod = await import(\n\t\t\t`${pathToFileURL(configPath).href}?t=${Date.now()}`\n\t\t);\n\t\treturn (mod.default || mod) as RerouteConfig;\n\t} catch (error) {\n\t\tconsole.warn('[reroute] Failed to load reroute.config.ts:', error);\n\t\treturn {};\n\t}\n}\n\nexport {\n\tdefineConfig,\n\tloadConfig,\n\ttype ConfigOptions,\n\ttype RedirectRule,\n\ttype RerouteConfig,\n\ttype SitemapOptions,\n};\n",
|
|
9
9
|
"export function join(...parts: string[]): string {\n\treturn parts.join('/').replace(/\\/+/g, '/');\n}\n\nexport function extname(p: string): string {\n\tconst i = p.lastIndexOf('.');\n\treturn i >= 0 ? p.slice(i) : '';\n}\n\nexport function basename(p: string, ext?: string): string {\n\tconst name = p.replace(/\\\\/g, '/').split('/').pop() || p;\n\treturn ext && name.endsWith(ext) ? name.slice(0, -ext.length) : name;\n}\n\nexport function stripStart(p: string, ch: string): string {\n\treturn p.startsWith(ch) ? p.slice(ch.length) : p;\n}\n\nexport function stripEnd(p: string, ch: string): string {\n\treturn p.endsWith(ch) ? p.slice(0, -ch.length) : p;\n}\n",
|
|
10
10
|
"import { readdir, stat } from 'node:fs/promises';\nimport { join } from '../ssr/lib/path';\n\nexport async function listContentFiles(\n\tdir: string,\n\tbaseRel: string,\n): Promise<string[]> {\n\tconst out: string[] = [];\n\ttry {\n\t\tconst entries = await readdir(dir, { withFileTypes: true });\n\t\tfor (const entry of entries) {\n\t\t\tconst full = join(dir, entry.name);\n\t\t\tconst rel = join(baseRel, entry.name);\n\t\t\tif (entry.isDirectory()) {\n\t\t\t\tconst nested = await listContentFiles(full, rel);\n\t\t\t\tout.push(...nested);\n\t\t\t} else if (entry.isFile()) {\n\t\t\t\tif (/\\.(tsx|ts)$/.test(entry.name) && !entry.name.startsWith('_')) {\n\t\t\t\t\tout.push(rel);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} catch {\n\t\t// ignore missing dirs\n\t}\n\treturn out;\n}\n\n// buildContentDTOs removed - content is now fully pre-generated at build time\n\nexport async function discoverCollections(\n\tclientDir: string,\n): Promise<string[]> {\n\tconst root = join(clientDir, 'routes');\n\tconst collections = new Set<string>();\n\ttry {\n\t\tconst entries = await readdir(root, { withFileTypes: true });\n\t\tfor (const entry of entries) {\n\t\t\tif (entry.isDirectory()) {\n\t\t\t\tconst contentDir = join(root, entry.name, 'content');\n\t\t\t\ttry {\n\t\t\t\t\tawait stat(contentDir);\n\t\t\t\t\tcollections.add(entry.name);\n\t\t\t\t} catch {\n\t\t\t\t\t// content directory doesn't exist, skip\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} catch {\n\t\t// routes directory doesn't exist\n\t}\n\treturn Array.from(collections);\n}\n",
|
|
11
11
|
"import { stat } from 'node:fs/promises';\nimport { pathToFileURL } from 'node:url';\nimport type { ContentMeta, Doc } from '../ssr/lib/types';\n\nexport async function getContentMeta(\n\tabsPath: string,\n\tisWatchMode: boolean,\n): Promise<ContentMeta> {\n\ttry {\n\t\tconst url = pathToFileURL(absPath).href;\n\t\tconst mod = await import(`${url}${isWatchMode ? `?t=${Date.now()}` : ''}`);\n\t\tconst meta: unknown = (mod as Doc).meta || (mod as Doc).frontmatter || {};\n\t\tif (meta && typeof meta === 'object') return meta as ContentMeta;\n\t\treturn {};\n\t} catch {\n\t\ttry {\n\t\t\tconst s = await stat(absPath);\n\t\t\treturn { date: new Date(s.mtimeMs).toISOString() };\n\t\t} catch {\n\t\t\treturn {};\n\t\t}\n\t}\n}\n\n/**\n * Build a minimal <head> snippet from content metadata.\n * - <title>\n * - <meta name=\"description\">\n */\nexport function buildHeadFromMeta(\n\tmeta: ContentMeta | undefined | null,\n): string {\n\tif (!meta || typeof meta !== 'object') return '';\n\tconst parts: string[] = [];\n\tconst title = typeof meta.title === 'string' ? meta.title : undefined;\n\tconst description =\n\t\ttypeof meta.description === 'string'\n\t\t\t? meta.description\n\t\t\t: typeof meta.excerpt === 'string'\n\t\t\t\t? meta.excerpt\n\t\t\t\t: undefined;\n\tif (title) parts.push(`<title>${escapeHtml(title)}</title>`);\n\tif (description)\n\t\tparts.push(\n\t\t\t`<meta name=\"description\" content=\"${escapeHtml(description)}\" />`,\n\t\t);\n\treturn parts.length ? `\\n${parts.join('\\n')}` : '';\n}\n\nfunction escapeHtml(input: string): string {\n\treturn input\n\t\t.replace(/&/g, '&')\n\t\t.replace(/</g, '<')\n\t\t.replace(/>/g, '>')\n\t\t.replace(/\"/g, '"')\n\t\t.replace(/'/g, ''');\n}\n",
|
|
12
12
|
"export * from './discovery';\nexport * from './metadata';\n",
|
|
13
|
-
"import type { SitemapOptions } from '../config';\nimport { join } from '../ssr/lib/path';\nimport type { Doc } from '../ssr/lib/types';\n\ntype SitemapRoute = {\n\tpath: string;\n\tpattern: string;\n\tisDynamic: boolean;\n\tchangefreq?:\n\t\t| 'always'\n\t\t| 'hourly'\n\t\t| 'daily'\n\t\t| 'weekly'\n\t\t| 'monthly'\n\t\t| 'yearly'\n\t\t| 'never';\n\tpriority?: number;\n\tlastmod?: string;\n};\n\ntype SitemapEntry = {\n\tloc: string;\n\tlastmod?: string;\n\tchangefreq?:\n\t\t| 'always'\n\t\t| 'hourly'\n\t\t| 'daily'\n\t\t| 'weekly'\n\t\t| 'monthly'\n\t\t| 'yearly'\n\t\t| 'never';\n\tpriority?: number;\n};\n\ntype SitemapDiscoveryResult = {\n\tstaticRoutes: SitemapRoute[];\n\tdynamicRoutes: SitemapRoute[];\n\tcollections: Map<string, SitemapEntry[]>;\n\tssrDataRoutes: Map<string, SitemapEntry[]>;\n};\n\n/**\n * Discover all routes from the generated routes.ts file\n */\nasync function discoverRoutes(\n\tcwd: string,\n\tisWatchMode: boolean,\n): Promise<{ staticRoutes: SitemapRoute[]; dynamicRoutes: SitemapRoute[] }> {\n\tconst staticRoutes: SitemapRoute[] = [];\n\tconst dynamicRoutes: SitemapRoute[] = [];\n\n\ttry {\n\t\tconst routesPath = join(cwd, '.reroute', 'routes.ts');\n\t\tconst url = Bun.pathToFileURL(routesPath).href;\n\t\tconst mod = await import(`${url}${isWatchMode ? `?t=${Date.now()}` : ''}`);\n\n\t\tconst routes = (mod as Doc)?.routes as Doc[] | undefined;\n\t\tif (Array.isArray(routes)) {\n\t\t\tfor (const route of routes) {\n\t\t\t\tconst pattern = String(route?.pattern || '');\n\t\t\t\tconst path = String(route?.path || '');\n\n\t\t\t\t// Skip error pages and layouts\n\t\t\t\tif (\n\t\t\t\t\tpattern.includes('[404]') ||\n\t\t\t\t\tpattern.includes('[layout]') ||\n\t\t\t\t\tpattern.includes('[skeleton]')\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tconst isDynamic = pattern.includes('[') && pattern.includes(']');\n\n\t\t\t\tconst sitemapRoute: SitemapRoute = {\n\t\t\t\t\tpath,\n\t\t\t\t\tpattern,\n\t\t\t\t\tisDynamic,\n\t\t\t\t};\n\n\t\t\t\tif (isDynamic) {\n\t\t\t\t\tdynamicRoutes.push(sitemapRoute);\n\t\t\t\t} else {\n\t\t\t\t\tstaticRoutes.push(sitemapRoute);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tconsole.error('[reroute] Failed to discover routes for sitemap:', error);\n\t}\n\n\treturn { staticRoutes, dynamicRoutes };\n}\n\n/**\n * Discover content items for collections\n */\nasync function discoverCollectionContent(\n\tcwd: string,\n\tcollection: string,\n\tisWatchMode: boolean,\n\tbaseUrl: string,\n): Promise<SitemapEntry[]> {\n\tconst entries: SitemapEntry[] = [];\n\n\ttry {\n\t\t// Load pre-generated collection module\n\t\tconst collectionFile = join(\n\t\t\tcwd,\n\t\t\t'.reroute',\n\t\t\t'collections',\n\t\t\t`${collection}.js`,\n\t\t);\n\t\tconst exists = await Bun.file(collectionFile).exists();\n\n\t\tif (!exists) {\n\t\t\treturn entries;\n\t\t}\n\n\t\tconst url = `${Bun.pathToFileURL(collectionFile).href}${isWatchMode ? `?t=${Date.now()}` : ''}`;\n\t\tconst mod = await import(url);\n\t\tconst items = mod.items || [];\n\n\t\tfor (const item of items) {\n\t\t\tconst href = String(item.href || '');\n\t\t\tconst meta = item.meta || {};\n\n\t\t\tif (href) {\n\t\t\t\tconst entry: SitemapEntry = {\n\t\t\t\t\tloc: `${baseUrl}${href}`,\n\t\t\t\t\tlastmod: meta.date ? new Date(meta.date).toISOString() : undefined,\n\t\t\t\t\tchangefreq: 'weekly',\n\t\t\t\t\tpriority: 0.7,\n\t\t\t\t};\n\t\t\t\tentries.push(entry);\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tconsole.error(\n\t\t\t`[reroute] Failed to discover collection ${collection}:`,\n\t\t\terror,\n\t\t);\n\t}\n\n\treturn entries;\n}\n\n/**\n * Discover SSR data routes (routes with ssr.data export that return arrays/lists)\n */\nasync function discoverSSRDataRoutes(\n\t_cwd: string,\n\tclientDir: string,\n\tstaticRoutes: SitemapRoute[],\n\tisWatchMode: boolean,\n\tbaseUrl: string,\n\tsitemapConfig?: SitemapOptions,\n): Promise<Map<string, SitemapEntry[]>> {\n\tconst ssrDataRoutes = new Map<string, SitemapEntry[]>();\n\n\tfor (const route of staticRoutes) {\n\t\ttry {\n\t\t\tconst abs = join(clientDir, 'routes', route.path);\n\t\t\tconst mod = (await import(\n\t\t\t\tBun.pathToFileURL(abs).href + (isWatchMode ? `?t=${Date.now()}` : '')\n\t\t\t)) as Doc;\n\n\t\t\tconst ssr = (mod as Doc)?.ssr as Doc | undefined;\n\t\t\tconst dataFn = (ssr as Doc)?.data as\n\t\t\t\t| ((ctx: Doc) => unknown | Promise<unknown>)\n\t\t\t\t| undefined;\n\n\t\t\tif (typeof dataFn === 'function') {\n\t\t\t\t// Call the data function to get the data\n\t\t\t\t// Provide a mock context with set.status for routes that need it\n\t\t\t\tconst mockSet = { status: 200 };\n\t\t\t\tconst result = await dataFn({\n\t\t\t\t\tpathname: route.pattern,\n\t\t\t\t\tparams: {},\n\t\t\t\t\tset: mockSet,\n\t\t\t\t});\n\n\t\t\t\t// Look for array data that could represent list items\n\t\t\t\tconst entries = extractEntriesFromData(\n\t\t\t\t\tresult,\n\t\t\t\t\troute.pattern,\n\t\t\t\t\tbaseUrl,\n\t\t\t\t\tsitemapConfig,\n\t\t\t\t);\n\n\t\t\t\tif (entries.length > 0) {\n\t\t\t\t\tssrDataRoutes.set(route.pattern, entries);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch {\n\t\t\t// Route doesn't have ssr.data or it failed - skip silently\n\t\t}\n\t}\n\n\treturn ssrDataRoutes;\n}\n\n/**\n * Extract sitemap entries from ssr.data result\n * Supports custom extractUrls function or automatic array discovery\n */\nfunction extractEntriesFromData(\n\tdata: unknown,\n\troutePattern: string,\n\tbaseUrl: string,\n\tsitemapConfig?: SitemapOptions,\n): SitemapEntry[] {\n\tconst entries: SitemapEntry[] = [];\n\n\tif (!data || typeof data !== 'object') {\n\t\treturn entries;\n\t}\n\n\t// Use custom extractUrls if provided\n\tif (sitemapConfig?.extractUrls) {\n\t\ttry {\n\t\t\tconst items = sitemapConfig.extractUrls(data, routePattern);\n\t\t\tif (Array.isArray(items)) {\n\t\t\t\tfor (const item of items) {\n\t\t\t\t\tif (typeof item === 'object' && item !== null) {\n\t\t\t\t\t\tconst entry = createEntryFromItem(\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\troutePattern,\n\t\t\t\t\t\t\tbaseUrl,\n\t\t\t\t\t\t\tsitemapConfig,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (entry) {\n\t\t\t\t\t\t\tentries.push(entry);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn entries;\n\t\t} catch (error) {\n\t\t\tconsole.warn('[reroute/sitemap] extractUrls failed:', error);\n\t\t\treturn entries;\n\t\t}\n\t}\n\n\t// Otherwise, recursively discover arrays in the data\n\tfunction findArrays(obj: Doc): Doc[] {\n\t\tconst arrays: Doc[] = [];\n\n\t\tfor (const value of Object.values(obj)) {\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\tarrays.push(value);\n\t\t\t} else if (value && typeof value === 'object') {\n\t\t\t\t// Recursively search nested objects\n\t\t\t\tarrays.push(...findArrays(value));\n\t\t\t}\n\t\t}\n\n\t\treturn arrays;\n\t}\n\n\tconst arrays = findArrays(data);\n\n\tfor (const array of arrays) {\n\t\tif (array.length > 0) {\n\t\t\tfor (const item of array) {\n\t\t\t\tif (typeof item === 'object' && item !== null) {\n\t\t\t\t\tconst entry = createEntryFromItem(\n\t\t\t\t\t\titem,\n\t\t\t\t\t\troutePattern,\n\t\t\t\t\t\tbaseUrl,\n\t\t\t\t\t\tsitemapConfig,\n\t\t\t\t\t);\n\t\t\t\t\tif (entry) {\n\t\t\t\t\t\tentries.push(entry);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn entries;\n}\n\n/**\n * Create a sitemap entry from a data item\n */\nfunction createEntryFromItem(\n\titem: Record<string, unknown>,\n\troutePattern: string,\n\tbaseUrl: string,\n\tsitemapConfig?: SitemapOptions,\n): SitemapEntry | null {\n\t// Try custom extractor first\n\tlet identifier: string | null | undefined | unknown;\n\n\tif (sitemapConfig?.extractUrl) {\n\t\ttry {\n\t\t\tidentifier = sitemapConfig.extractUrl(item, routePattern);\n\t\t} catch (error) {\n\t\t\tconsole.warn('[reroute/sitemap] extractUrl failed:', error);\n\t\t}\n\t}\n\n\t// Fall back to default field detection if no custom extractor or it returned nothing\n\tif (!identifier) {\n\t\tidentifier = item.version || item.slug || item.id || item.name || item.key;\n\t}\n\n\tif (!identifier) {\n\t\treturn null;\n\t}\n\n\t// Build the URL based on the route pattern\n\tconst url = `${baseUrl}${routePattern}/${identifier}`;\n\n\tconst entry: SitemapEntry = {\n\t\tloc: url,\n\t\tchangefreq: sitemapConfig?.changefreq || 'weekly',\n\t\tpriority:\n\t\t\tsitemapConfig?.priority !== undefined ? sitemapConfig.priority : 0.6,\n\t};\n\n\t// Try custom lastmod extractor first\n\tif (sitemapConfig?.extractLastmod) {\n\t\ttry {\n\t\t\tconst lastmod = sitemapConfig.extractLastmod(item);\n\t\t\tif (lastmod) {\n\t\t\t\tentry.lastmod = new Date(lastmod).toISOString();\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.warn('[reroute/sitemap] extractLastmod failed:', error);\n\t\t}\n\t}\n\n\t// Fall back to default field detection if no custom extractor\n\tif (!entry.lastmod) {\n\t\tif (item.publishedAt && typeof item.publishedAt === 'string') {\n\t\t\tentry.lastmod = new Date(item.publishedAt).toISOString();\n\t\t} else if (item.date && typeof item.date === 'string') {\n\t\t\tentry.lastmod = new Date(item.date).toISOString();\n\t\t} else if (item.updatedAt && typeof item.updatedAt === 'string') {\n\t\t\tentry.lastmod = new Date(item.updatedAt).toISOString();\n\t\t}\n\t}\n\n\treturn entry;\n}\n\n/**\n * Main sitemap discovery function\n */\nexport async function discoverSitemapData(\n\tcwd: string,\n\tclientDir: string,\n\tcollections: string[],\n\tbaseUrl: string,\n\tisWatchMode: boolean,\n\tsitemapConfig?: SitemapOptions,\n): Promise<SitemapDiscoveryResult> {\n\tconst { staticRoutes, dynamicRoutes } = await discoverRoutes(\n\t\tcwd,\n\t\tisWatchMode,\n\t);\n\t// Note: dynamicRoutes discovered but not used in sitemap (they need actual data to create URLs)\n\n\t// Discover collection content\n\tconst collectionsMap = new Map<string, SitemapEntry[]>();\n\tfor (const collection of collections) {\n\t\tconst entries = await discoverCollectionContent(\n\t\t\tcwd,\n\t\t\tcollection,\n\t\t\tisWatchMode,\n\t\t\tbaseUrl,\n\t\t);\n\t\tif (entries.length > 0) {\n\t\t\tcollectionsMap.set(collection, entries);\n\t\t}\n\t}\n\n\t// Discover SSR data routes\n\tconst ssrDataRoutes = await discoverSSRDataRoutes(\n\t\tcwd,\n\t\tclientDir,\n\t\tstaticRoutes,\n\t\tisWatchMode,\n\t\tbaseUrl,\n\t\tsitemapConfig,\n\t);\n\n\treturn {\n\t\tstaticRoutes,\n\t\tdynamicRoutes,\n\t\tcollections: collectionsMap,\n\t\tssrDataRoutes,\n\t};\n}\n\nexport {\n\tdiscoverCollectionContent,\n\tdiscoverRoutes,\n\tdiscoverSSRDataRoutes,\n\ttype SitemapDiscoveryResult,\n\ttype SitemapEntry,\n\ttype SitemapRoute,\n};\n",
|
|
14
|
-
"import { pathToFileURL } from 'node:url';\nimport type { RSSOptions } from '../config';\nimport { join } from '../ssr/lib/path';\nimport type { Doc } from '../ssr/lib/types';\n\ntype RSSItem = {\n\ttitle: string;\n\tlink: string;\n\tdescription?: string;\n\tpubDate?: string;\n\tauthor?: string;\n\tguid?: string;\n\tcontent?: string;\n};\n\ntype RSSFeed = {\n\ttitle: string;\n\tlink: string;\n\tdescription: string;\n\titems: RSSItem[];\n};\n\ntype RSSDiscoveryResult = {\n\tcollections: Map<string, RSSItem[]>;\n\tssrDataFeeds: Map<string, RSSItem[]>;\n};\n\n/**\n * Discover RSS feed items from collections\n */\nasync function discoverCollectionFeedItems(\n\tcwd: string,\n\tcollection: string,\n\tisWatchMode: boolean,\n\tbaseUrl: string,\n\trssConfig?: RSSOptions,\n): Promise<RSSItem[]> {\n\tconst items: RSSItem[] = [];\n\n\ttry {\n\t\t// Load pre-generated collection module\n\t\tconst collectionFile = join(\n\t\t\tcwd,\n\t\t\t'.reroute',\n\t\t\t'collections',\n\t\t\t`${collection}.js`,\n\t\t);\n\t\tconst exists = await Bun.file(collectionFile).exists();\n\n\t\tif (!exists) {\n\t\t\treturn items;\n\t\t}\n\n\t\tconst url = `${Bun.pathToFileURL(collectionFile).href}${isWatchMode ? `?t=${Date.now()}` : ''}`;\n\t\tconst mod = await import(url);\n\t\tconst contentItems = mod.items || [];\n\n\t\tfor (const item of contentItems) {\n\t\t\tconst href = String(item.href || '');\n\t\t\tconst meta = item.meta || {};\n\n\t\t\tif (href) {\n\t\t\t\tconst rssItem: RSSItem = {\n\t\t\t\t\ttitle: meta.title || item.name || 'Untitled',\n\t\t\t\t\tlink: `${baseUrl}${href}`,\n\t\t\t\t\tguid: `${baseUrl}${href}`,\n\t\t\t\t\tdescription: meta.description || meta.excerpt || '',\n\t\t\t\t};\n\n\t\t\t\t// Extract pubDate using custom extractor or defaults\n\t\t\t\tif (rssConfig?.extractPubDate) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst pubDate = rssConfig.extractPubDate(meta);\n\t\t\t\t\t\tif (pubDate) {\n\t\t\t\t\t\t\trssItem.pubDate = new Date(pubDate).toUTCString();\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.warn('[reroute/rss] extractPubDate failed:', error);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fall back to default date fields if no custom extractor provided result\n\t\t\t\tif (!rssItem.pubDate) {\n\t\t\t\t\tif (meta.date) {\n\t\t\t\t\t\trssItem.pubDate = new Date(meta.date).toUTCString();\n\t\t\t\t\t} else if (meta.publishedAt) {\n\t\t\t\t\t\trssItem.pubDate = new Date(meta.publishedAt).toUTCString();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Extract author\n\t\t\t\tif (rssConfig?.extractAuthor) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst author = rssConfig.extractAuthor(meta);\n\t\t\t\t\t\tif (author) {\n\t\t\t\t\t\t\trssItem.author = author;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.warn('[reroute/rss] extractAuthor failed:', error);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fall back to default author field\n\t\t\t\tif (!rssItem.author && meta.author) {\n\t\t\t\t\trssItem.author = String(meta.author);\n\t\t\t\t}\n\n\t\t\t\t// Extract content\n\t\t\t\tif (rssConfig?.extractContent) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst content = rssConfig.extractContent(meta);\n\t\t\t\t\t\tif (content) {\n\t\t\t\t\t\t\trssItem.content = content;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.warn('[reroute/rss] extractContent failed:', error);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\titems.push(rssItem);\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tconsole.error(\n\t\t\t`[reroute/rss] Failed to discover collection ${collection}:`,\n\t\t\terror,\n\t\t);\n\t}\n\n\t// Sort by pubDate (newest first)\n\titems.sort((a, b) => {\n\t\tif (!a.pubDate) return 1;\n\t\tif (!b.pubDate) return -1;\n\t\treturn new Date(b.pubDate).getTime() - new Date(a.pubDate).getTime();\n\t});\n\n\treturn items;\n}\n\n/**\n * Discover RSS feed items from SSR data routes\n */\nasync function discoverSSRDataFeedItems(\n\t_cwd: string,\n\tclientDir: string,\n\troutePattern: string,\n\troutePath: string,\n\tisWatchMode: boolean,\n\tbaseUrl: string,\n\trssConfig?: RSSOptions,\n): Promise<RSSItem[]> {\n\tconst items: RSSItem[] = [];\n\n\ttry {\n\t\tconst abs = join(clientDir, 'routes', routePath);\n\t\tconst mod = (await import(\n\t\t\tpathToFileURL(abs).href + (isWatchMode ? `?t=${Date.now()}` : '')\n\t\t)) as Doc;\n\n\t\tconst ssr = (mod as Doc)?.ssr as Doc | undefined;\n\t\tconst dataFn = (ssr as Doc)?.data as\n\t\t\t| ((ctx: Doc) => unknown | Promise<unknown>)\n\t\t\t| undefined;\n\n\t\tif (typeof dataFn === 'function') {\n\t\t\t// Call the data function with mock context\n\t\t\tconst mockSet = { status: 200 };\n\t\t\tconst result = await dataFn({\n\t\t\t\tpathname: routePattern,\n\t\t\t\tparams: {},\n\t\t\t\tset: mockSet,\n\t\t\t});\n\n\t\t\t// Extract RSS urls from data\n\t\t\tconst extractedItems = extractRSSItemsFromData(\n\t\t\t\tresult,\n\t\t\t\troutePattern,\n\t\t\t\tbaseUrl,\n\t\t\t\trssConfig,\n\t\t\t);\n\t\t\titems.push(...extractedItems);\n\t\t}\n\t} catch {\n\t\t// Route doesn't have ssr.data or it failed - skip silently\n\t}\n\n\treturn items;\n}\n\n/**\n * Extract RSS urls from ssr.data result\n * Supports custom extractUrls function or automatic array discovery\n */\nfunction extractRSSItemsFromData(\n\tdata: unknown,\n\troutePattern: string,\n\tbaseUrl: string,\n\trssConfig?: RSSOptions,\n): RSSItem[] {\n\tconst items: RSSItem[] = [];\n\n\tif (!data || typeof data !== 'object') {\n\t\treturn items;\n\t}\n\n\t// Use custom extractUrls if provided\n\tif (rssConfig?.extractUrls) {\n\t\ttry {\n\t\t\tconst extractedItems = rssConfig.extractUrls(data, routePattern);\n\t\t\tif (Array.isArray(extractedItems)) {\n\t\t\t\tfor (const item of extractedItems) {\n\t\t\t\t\tif (typeof item === 'object' && item !== null) {\n\t\t\t\t\t\tconst rssItem = createRSSItemFromData(\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\troutePattern,\n\t\t\t\t\t\t\tbaseUrl,\n\t\t\t\t\t\t\trssConfig,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (rssItem) {\n\t\t\t\t\t\t\titems.push(rssItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Sort by pubDate (newest first)\n\t\t\titems.sort((a, b) => {\n\t\t\t\tif (!a.pubDate) return 1;\n\t\t\t\tif (!b.pubDate) return -1;\n\t\t\t\treturn new Date(b.pubDate).getTime() - new Date(a.pubDate).getTime();\n\t\t\t});\n\n\t\t\treturn items;\n\t\t} catch (error) {\n\t\t\tconsole.warn('[reroute/rss] extractUrls failed:', error);\n\t\t\treturn items;\n\t\t}\n\t}\n\n\t// Otherwise, recursively discover arrays in the data\n\tfunction findArrays(obj: Doc): Doc[] {\n\t\tconst arrays: Doc[] = [];\n\n\t\tfor (const value of Object.values(obj)) {\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\tarrays.push(value);\n\t\t\t} else if (value && typeof value === 'object') {\n\t\t\t\t// Recursively search nested objects\n\t\t\t\tarrays.push(...findArrays(value));\n\t\t\t}\n\t\t}\n\n\t\treturn arrays;\n\t}\n\n\tconst arrays = findArrays(data);\n\n\tfor (const array of arrays) {\n\t\tif (array.length > 0) {\n\t\t\tfor (const item of array) {\n\t\t\t\tif (typeof item === 'object' && item !== null) {\n\t\t\t\t\tconst rssItem = createRSSItemFromData(\n\t\t\t\t\t\titem,\n\t\t\t\t\t\troutePattern,\n\t\t\t\t\t\tbaseUrl,\n\t\t\t\t\t\trssConfig,\n\t\t\t\t\t);\n\t\t\t\t\tif (rssItem) {\n\t\t\t\t\t\titems.push(rssItem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Sort by pubDate (newest first)\n\titems.sort((a, b) => {\n\t\tif (!a.pubDate) return 1;\n\t\tif (!b.pubDate) return -1;\n\t\treturn new Date(b.pubDate).getTime() - new Date(a.pubDate).getTime();\n\t});\n\n\treturn items;\n}\n\n/**\n * Create RSS item from data object\n */\nfunction createRSSItemFromData(\n\titem: Record<string, unknown>,\n\troutePattern: string,\n\tbaseUrl: string,\n\trssConfig?: RSSOptions,\n): RSSItem | null {\n\t// Try custom URL extractor first\n\tlet identifier: string | null | undefined | unknown;\n\n\tif (rssConfig?.extractUrl) {\n\t\ttry {\n\t\t\tidentifier = rssConfig.extractUrl(item, routePattern);\n\t\t} catch (error) {\n\t\t\tconsole.warn('[reroute/rss] extractUrl failed:', error);\n\t\t}\n\t}\n\n\t// Fall back to default field detection\n\tif (!identifier) {\n\t\tidentifier = item.version || item.slug || item.id || item.name || item.key;\n\t}\n\n\tif (!identifier) {\n\t\treturn null;\n\t}\n\n\tconst link = `${baseUrl}${routePattern}/${identifier}`;\n\n\tconst rssItem: RSSItem = {\n\t\ttitle: String(item.title || item.name || identifier),\n\t\tlink,\n\t\tguid: link,\n\t\tdescription: String(item.description || item.excerpt || ''),\n\t};\n\n\t// Extract pubDate\n\tif (rssConfig?.extractPubDate) {\n\t\ttry {\n\t\t\tconst pubDate = rssConfig.extractPubDate(item);\n\t\t\tif (pubDate) {\n\t\t\t\trssItem.pubDate = new Date(pubDate).toUTCString();\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.warn('[reroute/rss] extractPubDate failed:', error);\n\t\t}\n\t} else {\n\t\tif (item.publishedAt && typeof item.publishedAt === 'string') {\n\t\t\trssItem.pubDate = new Date(item.publishedAt).toUTCString();\n\t\t} else if (item.date && typeof item.date === 'string') {\n\t\t\trssItem.pubDate = new Date(item.date).toUTCString();\n\t\t} else if (item.createdAt && typeof item.createdAt === 'string') {\n\t\t\trssItem.pubDate = new Date(item.createdAt).toUTCString();\n\t\t}\n\t}\n\n\t// Extract author\n\tif (rssConfig?.extractAuthor) {\n\t\ttry {\n\t\t\tconst author = rssConfig.extractAuthor(item);\n\t\t\tif (author) {\n\t\t\t\trssItem.author = author;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.warn('[reroute/rss] extractAuthor failed:', error);\n\t\t}\n\t} else if (item.author) {\n\t\trssItem.author = String(item.author);\n\t}\n\n\t// Extract content\n\tif (rssConfig?.extractContent) {\n\t\ttry {\n\t\t\tconst content = rssConfig.extractContent(item);\n\t\t\tif (content) {\n\t\t\t\trssItem.content = content;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.warn('[reroute/rss] extractContent failed:', error);\n\t\t}\n\t}\n\n\treturn rssItem;\n}\n\n/**\n * Main RSS discovery function\n */\nasync function discoverRSSData(\n\tcwd: string,\n\tclientDir: string,\n\tcollections: string[],\n\tbaseUrl: string,\n\tisWatchMode: boolean,\n\trssConfig?: RSSOptions,\n): Promise<RSSDiscoveryResult> {\n\t// Discover collection content\n\tconst collectionsMap = new Map<string, RSSItem[]>();\n\tfor (const collection of collections) {\n\t\tconst items = await discoverCollectionFeedItems(\n\t\t\tcwd,\n\t\t\tcollection,\n\t\t\tisWatchMode,\n\t\t\tbaseUrl,\n\t\t\trssConfig,\n\t\t);\n\t\tif (items.length > 0) {\n\t\t\tcollectionsMap.set(collection, items);\n\t\t}\n\t}\n\n\t// Discover SSR data routes\n\tconst ssrDataFeeds = new Map<string, RSSItem[]>();\n\tconst { discoverRoutes } = await import('../sitemap/discovery');\n\tconst { staticRoutes } = await discoverRoutes(cwd, isWatchMode);\n\n\tfor (const route of staticRoutes) {\n\t\tconst items = await discoverSSRDataFeedItems(\n\t\t\tcwd,\n\t\t\tclientDir,\n\t\t\troute.pattern,\n\t\t\troute.path,\n\t\t\tisWatchMode,\n\t\t\tbaseUrl,\n\t\t\trssConfig,\n\t\t);\n\n\t\tif (items.length > 0) {\n\t\t\tssrDataFeeds.set(route.pattern, items);\n\t\t}\n\t}\n\n\t// Also discover layout ssr.data\n\tconst layoutFeeds = await discoverLayoutFeedItems(\n\t\tcwd,\n\t\tclientDir,\n\t\tisWatchMode,\n\t\tbaseUrl,\n\t\trssConfig,\n\t);\n\tfor (const [pattern, items] of layoutFeeds.entries()) {\n\t\tconst existing = ssrDataFeeds.get(pattern) || [];\n\t\tssrDataFeeds.set(pattern, [...existing, ...items]);\n\t}\n\n\treturn {\n\t\tcollections: collectionsMap,\n\t\tssrDataFeeds,\n\t};\n}\n\n/**\n * Discover RSS urls from layout ssr.data\n */\nasync function discoverLayoutFeedItems(\n\tcwd: string,\n\tclientDir: string,\n\tisWatchMode: boolean,\n\tbaseUrl: string,\n\trssConfig?: RSSOptions,\n): Promise<Map<string, RSSItem[]>> {\n\tconst layoutFeeds = new Map<string, RSSItem[]>();\n\n\ttry {\n\t\tconst routesPath = join(cwd, '.reroute', 'routes.ts');\n\t\tconst url = pathToFileURL(routesPath).href;\n\t\tconst mod = await import(`${url}${isWatchMode ? `?t=${Date.now()}` : ''}`);\n\n\t\tconst layouts = (mod as Doc)?.layouts as Doc[] | undefined;\n\t\tif (Array.isArray(layouts)) {\n\t\t\tfor (const layout of layouts) {\n\t\t\t\tconst pattern = String(layout?.pattern || '/');\n\t\t\t\tconst path = String(layout?.path || '');\n\n\t\t\t\tif (!path) continue;\n\n\t\t\t\ttry {\n\t\t\t\t\tconst abs = join(clientDir, 'routes', path);\n\t\t\t\t\tconst layoutMod = (await import(\n\t\t\t\t\t\tpathToFileURL(abs).href + (isWatchMode ? `?t=${Date.now()}` : '')\n\t\t\t\t\t)) as Doc;\n\n\t\t\t\t\tconst ssr = (layoutMod as Doc)?.ssr as Doc | undefined;\n\t\t\t\t\tconst dataFn = (ssr as Doc)?.data as\n\t\t\t\t\t\t| ((ctx: Doc) => unknown | Promise<unknown>)\n\t\t\t\t\t\t| undefined;\n\n\t\t\t\t\tif (typeof dataFn === 'function') {\n\t\t\t\t\t\tconst mockSet = { status: 200 };\n\t\t\t\t\t\tconst result = await dataFn({\n\t\t\t\t\t\t\tpathname: pattern,\n\t\t\t\t\t\t\tparams: {},\n\t\t\t\t\t\t\tset: mockSet,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst items = extractRSSItemsFromData(\n\t\t\t\t\t\t\tresult,\n\t\t\t\t\t\t\tpattern,\n\t\t\t\t\t\t\tbaseUrl,\n\t\t\t\t\t\t\trssConfig,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (items.length > 0) {\n\t\t\t\t\t\t\tlayoutFeeds.set(pattern, items);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// Layout doesn't have ssr.data or failed - skip\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} catch {\n\t\t// routes.ts doesn't exist or failed to load\n\t}\n\n\treturn layoutFeeds;\n}\n\nexport {\n\tdiscoverLayoutFeedItems,\n\tdiscoverRSSData,\n\tdiscoverSSRDataFeedItems,\n\ttype RSSDiscoveryResult,\n\ttype RSSFeed,\n\ttype RSSItem,\n};\n",
|
|
13
|
+
"import type { SitemapOptions } from '../config';\nimport { join } from '../ssr/lib/path';\nimport type { Doc } from '../ssr/lib/types';\n\ntype SitemapRoute = {\n\tpath: string;\n\tpattern: string;\n\tisDynamic: boolean;\n\tchangefreq?:\n\t\t| 'always'\n\t\t| 'hourly'\n\t\t| 'daily'\n\t\t| 'weekly'\n\t\t| 'monthly'\n\t\t| 'yearly'\n\t\t| 'never';\n\tpriority?: number;\n\tlastmod?: string;\n};\n\ntype SitemapEntry = {\n\tloc: string;\n\tlastmod?: string;\n\tchangefreq?:\n\t\t| 'always'\n\t\t| 'hourly'\n\t\t| 'daily'\n\t\t| 'weekly'\n\t\t| 'monthly'\n\t\t| 'yearly'\n\t\t| 'never';\n\tpriority?: number;\n};\n\ntype SitemapDiscoveryResult = {\n\tstaticRoutes: SitemapRoute[];\n\tdynamicRoutes: SitemapRoute[];\n\tcollections: Map<string, SitemapEntry[]>;\n\tssrDataRoutes: Map<string, SitemapEntry[]>;\n};\n\n/**\n * Discover all routes from the generated routes.ts file\n */\nasync function discoverRoutes(\n\tcwd: string,\n\tisWatchMode: boolean,\n): Promise<{ staticRoutes: SitemapRoute[]; dynamicRoutes: SitemapRoute[] }> {\n\tconst staticRoutes: SitemapRoute[] = [];\n\tconst dynamicRoutes: SitemapRoute[] = [];\n\n\ttry {\n\t\tconst routesPath = join(cwd, '.reroute', 'routes.ts');\n\t\tconst url = Bun.pathToFileURL(routesPath).href;\n\t\tconst mod = await import(`${url}${isWatchMode ? `?t=${Date.now()}` : ''}`);\n\n\t\tconst routes = (mod as Doc)?.routes as Doc[] | undefined;\n\t\tif (Array.isArray(routes)) {\n\t\t\tfor (const route of routes) {\n\t\t\t\tconst pattern = String(route?.pattern || '');\n\t\t\t\tconst path = String(route?.path || '');\n\n\t\t\t\t// Skip error pages and layouts\n\t\t\t\tif (\n\t\t\t\t\tpattern.includes('[404]') ||\n\t\t\t\t\tpattern.includes('[layout]') ||\n\t\t\t\t\tpattern.includes('[skeleton]')\n\t\t\t\t) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// Check for dynamic segments (both bracket and colon syntax)\n\t\t\t\tconst isDynamic = pattern.includes(':');\n\n\t\t\t\tconst sitemapRoute: SitemapRoute = {\n\t\t\t\t\tpath,\n\t\t\t\t\tpattern,\n\t\t\t\t\tisDynamic,\n\t\t\t\t};\n\n\t\t\t\tif (isDynamic) {\n\t\t\t\t\tdynamicRoutes.push(sitemapRoute);\n\t\t\t\t} else {\n\t\t\t\t\tstaticRoutes.push(sitemapRoute);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tconsole.error('[reroute] Failed to discover routes for sitemap:', error);\n\t}\n\n\treturn { staticRoutes, dynamicRoutes };\n}\n\n/**\n * Discover content items for collections\n */\nasync function discoverCollectionContent(\n\tcwd: string,\n\tcollection: string,\n\tisWatchMode: boolean,\n\tbaseUrl: string,\n): Promise<SitemapEntry[]> {\n\tconst entries: SitemapEntry[] = [];\n\n\ttry {\n\t\t// Load pre-generated collection module\n\t\tconst collectionFile = join(\n\t\t\tcwd,\n\t\t\t'.reroute',\n\t\t\t'collections',\n\t\t\t`${collection}.js`,\n\t\t);\n\t\tconst exists = await Bun.file(collectionFile).exists();\n\n\t\tif (!exists) {\n\t\t\treturn entries;\n\t\t}\n\n\t\tconst url = `${Bun.pathToFileURL(collectionFile).href}${isWatchMode ? `?t=${Date.now()}` : ''}`;\n\t\tconst mod = await import(url);\n\t\tconst items = mod.items || [];\n\n\t\tfor (const item of items) {\n\t\t\tconst href = String(item.href || '');\n\t\t\tconst meta = item.meta || {};\n\n\t\t\tif (href) {\n\t\t\t\tconst entry: SitemapEntry = {\n\t\t\t\t\tloc: `${baseUrl}${href}`,\n\t\t\t\t\tlastmod: meta.date ? new Date(meta.date).toISOString() : undefined,\n\t\t\t\t\tchangefreq: 'weekly',\n\t\t\t\t\tpriority: 0.7,\n\t\t\t\t};\n\t\t\t\tentries.push(entry);\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tconsole.error(\n\t\t\t`[reroute] Failed to discover collection ${collection}:`,\n\t\t\terror,\n\t\t);\n\t}\n\n\treturn entries;\n}\n\n/**\n * Discover SSR data routes (routes with ssr.data export that return arrays/lists)\n */\nasync function discoverSSRDataRoutes(\n\t_cwd: string,\n\tclientDir: string,\n\tstaticRoutes: SitemapRoute[],\n\tisWatchMode: boolean,\n\tbaseUrl: string,\n\tsitemapConfig?: SitemapOptions,\n): Promise<Map<string, SitemapEntry[]>> {\n\tconst ssrDataRoutes = new Map<string, SitemapEntry[]>();\n\n\tfor (const route of staticRoutes) {\n\t\t// Skip routes excluded from SSR data discovery\n\t\tif (sitemapConfig?.excludeDiscovery?.includes(route.pattern)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\ttry {\n\t\t\tconst abs = join(clientDir, 'routes', route.path);\n\t\t\tconst mod = (await import(\n\t\t\t\tBun.pathToFileURL(abs).href + (isWatchMode ? `?t=${Date.now()}` : '')\n\t\t\t)) as Doc;\n\n\t\t\tconst ssr = (mod as Doc)?.ssr as Doc | undefined;\n\t\t\tconst dataFn = (ssr as Doc)?.data as\n\t\t\t\t| ((ctx: Doc) => unknown | Promise<unknown>)\n\t\t\t\t| undefined;\n\n\t\t\tif (typeof dataFn === 'function') {\n\t\t\t\t// Call the data function to get the data\n\t\t\t\t// Provide a mock context with set.status for routes that need it\n\t\t\t\tconst mockSet = { status: 200 };\n\t\t\t\tconst result = await dataFn({\n\t\t\t\t\tpathname: route.pattern,\n\t\t\t\t\tparams: {},\n\t\t\t\t\tset: mockSet,\n\t\t\t\t});\n\n\t\t\t\t// Look for array data that could represent list items\n\t\t\t\tconst entries = extractEntriesFromData(\n\t\t\t\t\tresult,\n\t\t\t\t\troute.pattern,\n\t\t\t\t\tbaseUrl,\n\t\t\t\t\tsitemapConfig,\n\t\t\t\t);\n\n\t\t\t\tif (entries.length > 0) {\n\t\t\t\t\tssrDataRoutes.set(route.pattern, entries);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch {\n\t\t\t// Route doesn't have ssr.data or it failed - skip silently\n\t\t}\n\t}\n\n\treturn ssrDataRoutes;\n}\n\n/**\n * Extract sitemap entries from ssr.data result\n * Supports custom extractUrls function or automatic array discovery\n */\nfunction extractEntriesFromData(\n\tdata: unknown,\n\troutePattern: string,\n\tbaseUrl: string,\n\tsitemapConfig?: SitemapOptions,\n): SitemapEntry[] {\n\tconst entries: SitemapEntry[] = [];\n\n\tif (!data || typeof data !== 'object') {\n\t\treturn entries;\n\t}\n\n\t// Use custom extractUrls if provided\n\tif (sitemapConfig?.extractUrls) {\n\t\ttry {\n\t\t\tconst items = sitemapConfig.extractUrls(data, routePattern);\n\t\t\tif (Array.isArray(items)) {\n\t\t\t\tfor (const item of items) {\n\t\t\t\t\tif (typeof item === 'object' && item !== null) {\n\t\t\t\t\t\tconst entry = createEntryFromItem(\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\troutePattern,\n\t\t\t\t\t\t\tbaseUrl,\n\t\t\t\t\t\t\tsitemapConfig,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (entry) {\n\t\t\t\t\t\t\tentries.push(entry);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn entries;\n\t\t} catch (error) {\n\t\t\tconsole.warn('[reroute/sitemap] extractUrls failed:', error);\n\t\t\treturn entries;\n\t\t}\n\t}\n\n\t// Otherwise, recursively discover arrays in the data\n\tfunction findArrays(obj: Doc): Doc[] {\n\t\tconst arrays: Doc[] = [];\n\n\t\tfor (const value of Object.values(obj)) {\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\tarrays.push(value);\n\t\t\t} else if (value && typeof value === 'object') {\n\t\t\t\t// Recursively search nested objects\n\t\t\t\tarrays.push(...findArrays(value));\n\t\t\t}\n\t\t}\n\n\t\treturn arrays;\n\t}\n\n\tconst arrays = findArrays(data);\n\n\tfor (const array of arrays) {\n\t\tif (array.length > 0) {\n\t\t\tfor (const item of array) {\n\t\t\t\tif (typeof item === 'object' && item !== null) {\n\t\t\t\t\tconst entry = createEntryFromItem(\n\t\t\t\t\t\titem,\n\t\t\t\t\t\troutePattern,\n\t\t\t\t\t\tbaseUrl,\n\t\t\t\t\t\tsitemapConfig,\n\t\t\t\t\t);\n\t\t\t\t\tif (entry) {\n\t\t\t\t\t\tentries.push(entry);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn entries;\n}\n\n/**\n * Create a sitemap entry from a data item\n */\nfunction createEntryFromItem(\n\titem: Record<string, unknown>,\n\troutePattern: string,\n\tbaseUrl: string,\n\tsitemapConfig?: SitemapOptions,\n): SitemapEntry | null {\n\t// Try custom extractor first\n\tlet identifier: string | null | undefined | unknown;\n\n\tif (sitemapConfig?.extractUrl) {\n\t\ttry {\n\t\t\tidentifier = sitemapConfig.extractUrl(item, routePattern);\n\t\t} catch (error) {\n\t\t\tconsole.warn('[reroute/sitemap] extractUrl failed:', error);\n\t\t}\n\t}\n\n\t// Fall back to default field detection if no custom extractor or it returned nothing\n\tif (!identifier) {\n\t\tidentifier = item.version || item.slug || item.id || item.name || item.key;\n\t}\n\n\tif (!identifier) {\n\t\treturn null;\n\t}\n\n\t// Build the URL based on the route pattern\n\tconst url = `${baseUrl}${routePattern}/${identifier}`;\n\n\tconst entry: SitemapEntry = {\n\t\tloc: url,\n\t\tchangefreq: sitemapConfig?.changefreq || 'weekly',\n\t\tpriority:\n\t\t\tsitemapConfig?.priority !== undefined ? sitemapConfig.priority : 0.6,\n\t};\n\n\t// Try custom lastmod extractor first\n\tif (sitemapConfig?.extractLastmod) {\n\t\ttry {\n\t\t\tconst lastmod = sitemapConfig.extractLastmod(item);\n\t\t\tif (lastmod) {\n\t\t\t\tentry.lastmod = new Date(lastmod).toISOString();\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.warn('[reroute/sitemap] extractLastmod failed:', error);\n\t\t}\n\t}\n\n\t// Fall back to default field detection if no custom extractor\n\tif (!entry.lastmod) {\n\t\tif (item.publishedAt && typeof item.publishedAt === 'string') {\n\t\t\tentry.lastmod = new Date(item.publishedAt).toISOString();\n\t\t} else if (item.date && typeof item.date === 'string') {\n\t\t\tentry.lastmod = new Date(item.date).toISOString();\n\t\t} else if (item.updatedAt && typeof item.updatedAt === 'string') {\n\t\t\tentry.lastmod = new Date(item.updatedAt).toISOString();\n\t\t}\n\t}\n\n\treturn entry;\n}\n\n/**\n * Main sitemap discovery function\n */\nexport async function discoverSitemapData(\n\tcwd: string,\n\tclientDir: string,\n\tcollections: string[],\n\tbaseUrl: string,\n\tisWatchMode: boolean,\n\tsitemapConfig?: SitemapOptions,\n): Promise<SitemapDiscoveryResult> {\n\tconst { staticRoutes, dynamicRoutes } = await discoverRoutes(\n\t\tcwd,\n\t\tisWatchMode,\n\t);\n\t// Note: dynamicRoutes discovered but not used in sitemap (they need actual data to create URLs)\n\n\t// Discover collection content\n\tconst collectionsMap = new Map<string, SitemapEntry[]>();\n\tfor (const collection of collections) {\n\t\tconst entries = await discoverCollectionContent(\n\t\t\tcwd,\n\t\t\tcollection,\n\t\t\tisWatchMode,\n\t\t\tbaseUrl,\n\t\t);\n\t\tif (entries.length > 0) {\n\t\t\tcollectionsMap.set(collection, entries);\n\t\t}\n\t}\n\n\t// Discover SSR data routes\n\tconst ssrDataRoutes = await discoverSSRDataRoutes(\n\t\tcwd,\n\t\tclientDir,\n\t\tstaticRoutes,\n\t\tisWatchMode,\n\t\tbaseUrl,\n\t\tsitemapConfig,\n\t);\n\n\treturn {\n\t\tstaticRoutes,\n\t\tdynamicRoutes,\n\t\tcollections: collectionsMap,\n\t\tssrDataRoutes,\n\t};\n}\n\nexport {\n\tdiscoverCollectionContent,\n\tdiscoverRoutes,\n\tdiscoverSSRDataRoutes,\n\ttype SitemapDiscoveryResult,\n\ttype SitemapEntry,\n\ttype SitemapRoute,\n};\n",
|
|
14
|
+
"import { pathToFileURL } from 'node:url';\nimport type { RSSOptions } from '../config';\nimport { join } from '../ssr/lib/path';\nimport type { Doc } from '../ssr/lib/types';\n\ntype RSSItem = {\n\ttitle: string;\n\tlink: string;\n\tdescription?: string;\n\tpubDate?: string;\n\tauthor?: string;\n\tguid?: string;\n\tcontent?: string;\n};\n\ntype RSSFeed = {\n\ttitle: string;\n\tlink: string;\n\tdescription: string;\n\titems: RSSItem[];\n};\n\ntype RSSDiscoveryResult = {\n\tcollections: Map<string, RSSItem[]>;\n\tssrDataFeeds: Map<string, RSSItem[]>;\n};\n\n/**\n * Discover RSS feed items from collections\n */\nasync function discoverCollectionFeedItems(\n\tcwd: string,\n\tcollection: string,\n\tisWatchMode: boolean,\n\tbaseUrl: string,\n\trssConfig?: RSSOptions,\n): Promise<RSSItem[]> {\n\tconst items: RSSItem[] = [];\n\n\ttry {\n\t\t// Load pre-generated collection module\n\t\tconst collectionFile = join(\n\t\t\tcwd,\n\t\t\t'.reroute',\n\t\t\t'collections',\n\t\t\t`${collection}.js`,\n\t\t);\n\t\tconst exists = await Bun.file(collectionFile).exists();\n\n\t\tif (!exists) {\n\t\t\treturn items;\n\t\t}\n\n\t\tconst url = `${Bun.pathToFileURL(collectionFile).href}${isWatchMode ? `?t=${Date.now()}` : ''}`;\n\t\tconst mod = await import(url);\n\t\tconst contentItems = mod.items || [];\n\n\t\tfor (const item of contentItems) {\n\t\t\tconst href = String(item.href || '');\n\t\t\tconst meta = item.meta || {};\n\n\t\t\tif (href) {\n\t\t\t\tconst rssItem: RSSItem = {\n\t\t\t\t\ttitle: meta.title || item.name || 'Untitled',\n\t\t\t\t\tlink: `${baseUrl}${href}`,\n\t\t\t\t\tguid: `${baseUrl}${href}`,\n\t\t\t\t\tdescription: meta.description || meta.excerpt || '',\n\t\t\t\t};\n\n\t\t\t\t// Extract pubDate using custom extractor or defaults\n\t\t\t\tif (rssConfig?.extractPubDate) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst pubDate = rssConfig.extractPubDate(meta);\n\t\t\t\t\t\tif (pubDate) {\n\t\t\t\t\t\t\trssItem.pubDate = new Date(pubDate).toUTCString();\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.warn('[reroute/rss] extractPubDate failed:', error);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fall back to default date fields if no custom extractor provided result\n\t\t\t\tif (!rssItem.pubDate) {\n\t\t\t\t\tif (meta.date) {\n\t\t\t\t\t\trssItem.pubDate = new Date(meta.date).toUTCString();\n\t\t\t\t\t} else if (meta.publishedAt) {\n\t\t\t\t\t\trssItem.pubDate = new Date(meta.publishedAt).toUTCString();\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Extract author\n\t\t\t\tif (rssConfig?.extractAuthor) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst author = rssConfig.extractAuthor(meta);\n\t\t\t\t\t\tif (author) {\n\t\t\t\t\t\t\trssItem.author = author;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.warn('[reroute/rss] extractAuthor failed:', error);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Fall back to default author field\n\t\t\t\tif (!rssItem.author && meta.author) {\n\t\t\t\t\trssItem.author = String(meta.author);\n\t\t\t\t}\n\n\t\t\t\t// Extract content\n\t\t\t\tif (rssConfig?.extractContent) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst content = rssConfig.extractContent(meta);\n\t\t\t\t\t\tif (content) {\n\t\t\t\t\t\t\trssItem.content = content;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.warn('[reroute/rss] extractContent failed:', error);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\titems.push(rssItem);\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tconsole.error(\n\t\t\t`[reroute/rss] Failed to discover collection ${collection}:`,\n\t\t\terror,\n\t\t);\n\t}\n\n\t// Sort by pubDate (newest first)\n\titems.sort((a, b) => {\n\t\tif (!a.pubDate) return 1;\n\t\tif (!b.pubDate) return -1;\n\t\treturn new Date(b.pubDate).getTime() - new Date(a.pubDate).getTime();\n\t});\n\n\treturn items;\n}\n\n/**\n * Discover RSS feed items from SSR data routes\n */\nasync function discoverSSRDataFeedItems(\n\t_cwd: string,\n\tclientDir: string,\n\troutePattern: string,\n\troutePath: string,\n\tisWatchMode: boolean,\n\tbaseUrl: string,\n\trssConfig?: RSSOptions,\n): Promise<RSSItem[]> {\n\tconst items: RSSItem[] = [];\n\n\ttry {\n\t\tconst abs = join(clientDir, 'routes', routePath);\n\t\tconst mod = (await import(\n\t\t\tpathToFileURL(abs).href + (isWatchMode ? `?t=${Date.now()}` : '')\n\t\t)) as Doc;\n\n\t\tconst ssr = (mod as Doc)?.ssr as Doc | undefined;\n\t\tconst dataFn = (ssr as Doc)?.data as\n\t\t\t| ((ctx: Doc) => unknown | Promise<unknown>)\n\t\t\t| undefined;\n\n\t\tif (typeof dataFn === 'function') {\n\t\t\t// Call the data function with mock context\n\t\t\tconst mockSet = { status: 200 };\n\t\t\tconst result = await dataFn({\n\t\t\t\tpathname: routePattern,\n\t\t\t\tparams: {},\n\t\t\t\tset: mockSet,\n\t\t\t});\n\n\t\t\t// Extract RSS urls from data\n\t\t\tconst extractedItems = extractRSSItemsFromData(\n\t\t\t\tresult,\n\t\t\t\troutePattern,\n\t\t\t\tbaseUrl,\n\t\t\t\trssConfig,\n\t\t\t);\n\t\t\titems.push(...extractedItems);\n\t\t}\n\t} catch {\n\t\t// Route doesn't have ssr.data or it failed - skip silently\n\t}\n\n\treturn items;\n}\n\n/**\n * Extract RSS urls from ssr.data result\n * Supports custom extractUrls function or automatic array discovery\n */\nfunction extractRSSItemsFromData(\n\tdata: unknown,\n\troutePattern: string,\n\tbaseUrl: string,\n\trssConfig?: RSSOptions,\n): RSSItem[] {\n\tconst items: RSSItem[] = [];\n\n\tif (!data || typeof data !== 'object') {\n\t\treturn items;\n\t}\n\n\t// Use custom extractUrls if provided\n\tif (rssConfig?.extractUrls) {\n\t\ttry {\n\t\t\tconst extractedItems = rssConfig.extractUrls(data, routePattern);\n\t\t\tif (Array.isArray(extractedItems)) {\n\t\t\t\tfor (const item of extractedItems) {\n\t\t\t\t\tif (typeof item === 'object' && item !== null) {\n\t\t\t\t\t\tconst rssItem = createRSSItemFromData(\n\t\t\t\t\t\t\titem,\n\t\t\t\t\t\t\troutePattern,\n\t\t\t\t\t\t\tbaseUrl,\n\t\t\t\t\t\t\trssConfig,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (rssItem) {\n\t\t\t\t\t\t\titems.push(rssItem);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Sort by pubDate (newest first)\n\t\t\titems.sort((a, b) => {\n\t\t\t\tif (!a.pubDate) return 1;\n\t\t\t\tif (!b.pubDate) return -1;\n\t\t\t\treturn new Date(b.pubDate).getTime() - new Date(a.pubDate).getTime();\n\t\t\t});\n\n\t\t\treturn items;\n\t\t} catch (error) {\n\t\t\tconsole.warn('[reroute/rss] extractUrls failed:', error);\n\t\t\treturn items;\n\t\t}\n\t}\n\n\t// Otherwise, recursively discover arrays in the data\n\tfunction findArrays(obj: Doc): Doc[] {\n\t\tconst arrays: Doc[] = [];\n\n\t\tfor (const value of Object.values(obj)) {\n\t\t\tif (Array.isArray(value)) {\n\t\t\t\tarrays.push(value);\n\t\t\t} else if (value && typeof value === 'object') {\n\t\t\t\t// Recursively search nested objects\n\t\t\t\tarrays.push(...findArrays(value));\n\t\t\t}\n\t\t}\n\n\t\treturn arrays;\n\t}\n\n\tconst arrays = findArrays(data);\n\n\tfor (const array of arrays) {\n\t\tif (array.length > 0) {\n\t\t\tfor (const item of array) {\n\t\t\t\tif (typeof item === 'object' && item !== null) {\n\t\t\t\t\tconst rssItem = createRSSItemFromData(\n\t\t\t\t\t\titem,\n\t\t\t\t\t\troutePattern,\n\t\t\t\t\t\tbaseUrl,\n\t\t\t\t\t\trssConfig,\n\t\t\t\t\t);\n\t\t\t\t\tif (rssItem) {\n\t\t\t\t\t\titems.push(rssItem);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// Sort by pubDate (newest first)\n\titems.sort((a, b) => {\n\t\tif (!a.pubDate) return 1;\n\t\tif (!b.pubDate) return -1;\n\t\treturn new Date(b.pubDate).getTime() - new Date(a.pubDate).getTime();\n\t});\n\n\treturn items;\n}\n\n/**\n * Create RSS item from data object\n */\nfunction createRSSItemFromData(\n\titem: Record<string, unknown>,\n\troutePattern: string,\n\tbaseUrl: string,\n\trssConfig?: RSSOptions,\n): RSSItem | null {\n\t// Try custom URL extractor first\n\tlet identifier: string | null | undefined | unknown;\n\n\tif (rssConfig?.extractUrl) {\n\t\ttry {\n\t\t\tidentifier = rssConfig.extractUrl(item, routePattern);\n\t\t} catch (error) {\n\t\t\tconsole.warn('[reroute/rss] extractUrl failed:', error);\n\t\t}\n\t}\n\n\t// Fall back to default field detection\n\tif (!identifier) {\n\t\tidentifier = item.version || item.slug || item.id || item.name || item.key;\n\t}\n\n\tif (!identifier) {\n\t\treturn null;\n\t}\n\n\tconst link = `${baseUrl}${routePattern}/${identifier}`;\n\n\tconst rssItem: RSSItem = {\n\t\ttitle: String(item.title || item.name || identifier),\n\t\tlink,\n\t\tguid: link,\n\t\tdescription: String(item.description || item.excerpt || ''),\n\t};\n\n\t// Extract pubDate\n\tif (rssConfig?.extractPubDate) {\n\t\ttry {\n\t\t\tconst pubDate = rssConfig.extractPubDate(item);\n\t\t\tif (pubDate) {\n\t\t\t\trssItem.pubDate = new Date(pubDate).toUTCString();\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.warn('[reroute/rss] extractPubDate failed:', error);\n\t\t}\n\t} else {\n\t\tif (item.publishedAt && typeof item.publishedAt === 'string') {\n\t\t\trssItem.pubDate = new Date(item.publishedAt).toUTCString();\n\t\t} else if (item.date && typeof item.date === 'string') {\n\t\t\trssItem.pubDate = new Date(item.date).toUTCString();\n\t\t} else if (item.createdAt && typeof item.createdAt === 'string') {\n\t\t\trssItem.pubDate = new Date(item.createdAt).toUTCString();\n\t\t}\n\t}\n\n\t// Extract author\n\tif (rssConfig?.extractAuthor) {\n\t\ttry {\n\t\t\tconst author = rssConfig.extractAuthor(item);\n\t\t\tif (author) {\n\t\t\t\trssItem.author = author;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.warn('[reroute/rss] extractAuthor failed:', error);\n\t\t}\n\t} else if (item.author) {\n\t\trssItem.author = String(item.author);\n\t}\n\n\t// Extract content\n\tif (rssConfig?.extractContent) {\n\t\ttry {\n\t\t\tconst content = rssConfig.extractContent(item);\n\t\t\tif (content) {\n\t\t\t\trssItem.content = content;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tconsole.warn('[reroute/rss] extractContent failed:', error);\n\t\t}\n\t}\n\n\treturn rssItem;\n}\n\n/**\n * Main RSS discovery function\n */\nasync function discoverRSSData(\n\tcwd: string,\n\tclientDir: string,\n\tcollections: string[],\n\tbaseUrl: string,\n\tisWatchMode: boolean,\n\trssConfig?: RSSOptions,\n): Promise<RSSDiscoveryResult> {\n\t// Discover collection content\n\tconst collectionsMap = new Map<string, RSSItem[]>();\n\tfor (const collection of collections) {\n\t\tconst items = await discoverCollectionFeedItems(\n\t\t\tcwd,\n\t\t\tcollection,\n\t\t\tisWatchMode,\n\t\t\tbaseUrl,\n\t\t\trssConfig,\n\t\t);\n\t\tif (items.length > 0) {\n\t\t\tcollectionsMap.set(collection, items);\n\t\t}\n\t}\n\n\t// Discover SSR data routes\n\tconst ssrDataFeeds = new Map<string, RSSItem[]>();\n\tconst { discoverRoutes } = await import('../sitemap/discovery');\n\tconst { staticRoutes } = await discoverRoutes(cwd, isWatchMode);\n\n\tfor (const route of staticRoutes) {\n\t\t// Skip routes excluded from SSR data discovery\n\t\tif (rssConfig?.excludeDiscovery?.includes(route.pattern)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\tconst items = await discoverSSRDataFeedItems(\n\t\t\tcwd,\n\t\t\tclientDir,\n\t\t\troute.pattern,\n\t\t\troute.path,\n\t\t\tisWatchMode,\n\t\t\tbaseUrl,\n\t\t\trssConfig,\n\t\t);\n\n\t\tif (items.length > 0) {\n\t\t\tssrDataFeeds.set(route.pattern, items);\n\t\t}\n\t}\n\n\t// Also discover layout ssr.data\n\tconst layoutFeeds = await discoverLayoutFeedItems(\n\t\tcwd,\n\t\tclientDir,\n\t\tisWatchMode,\n\t\tbaseUrl,\n\t\trssConfig,\n\t);\n\tfor (const [pattern, items] of layoutFeeds.entries()) {\n\t\tconst existing = ssrDataFeeds.get(pattern) || [];\n\t\tssrDataFeeds.set(pattern, [...existing, ...items]);\n\t}\n\n\treturn {\n\t\tcollections: collectionsMap,\n\t\tssrDataFeeds,\n\t};\n}\n\n/**\n * Discover RSS urls from layout ssr.data\n */\nasync function discoverLayoutFeedItems(\n\tcwd: string,\n\tclientDir: string,\n\tisWatchMode: boolean,\n\tbaseUrl: string,\n\trssConfig?: RSSOptions,\n): Promise<Map<string, RSSItem[]>> {\n\tconst layoutFeeds = new Map<string, RSSItem[]>();\n\n\ttry {\n\t\tconst routesPath = join(cwd, '.reroute', 'routes.ts');\n\t\tconst url = pathToFileURL(routesPath).href;\n\t\tconst mod = await import(`${url}${isWatchMode ? `?t=${Date.now()}` : ''}`);\n\n\t\tconst layouts = (mod as Doc)?.layouts as Doc[] | undefined;\n\t\tif (Array.isArray(layouts)) {\n\t\t\tfor (const layout of layouts) {\n\t\t\t\tconst pattern = String(layout?.pattern || '/');\n\t\t\t\tconst path = String(layout?.path || '');\n\n\t\t\t\tif (!path) continue;\n\n\t\t\t\ttry {\n\t\t\t\t\tconst abs = join(clientDir, 'routes', path);\n\t\t\t\t\tconst layoutMod = (await import(\n\t\t\t\t\t\tpathToFileURL(abs).href + (isWatchMode ? `?t=${Date.now()}` : '')\n\t\t\t\t\t)) as Doc;\n\n\t\t\t\t\tconst ssr = (layoutMod as Doc)?.ssr as Doc | undefined;\n\t\t\t\t\tconst dataFn = (ssr as Doc)?.data as\n\t\t\t\t\t\t| ((ctx: Doc) => unknown | Promise<unknown>)\n\t\t\t\t\t\t| undefined;\n\n\t\t\t\t\tif (typeof dataFn === 'function') {\n\t\t\t\t\t\tconst mockSet = { status: 200 };\n\t\t\t\t\t\tconst result = await dataFn({\n\t\t\t\t\t\t\tpathname: pattern,\n\t\t\t\t\t\t\tparams: {},\n\t\t\t\t\t\t\tset: mockSet,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tconst items = extractRSSItemsFromData(\n\t\t\t\t\t\t\tresult,\n\t\t\t\t\t\t\tpattern,\n\t\t\t\t\t\t\tbaseUrl,\n\t\t\t\t\t\t\trssConfig,\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (items.length > 0) {\n\t\t\t\t\t\t\tlayoutFeeds.set(pattern, items);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// Layout doesn't have ssr.data or failed - skip\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} catch {\n\t\t// routes.ts doesn't exist or failed to load\n\t}\n\n\treturn layoutFeeds;\n}\n\nexport {\n\tdiscoverLayoutFeedItems,\n\tdiscoverRSSData,\n\tdiscoverSSRDataFeedItems,\n\ttype RSSDiscoveryResult,\n\ttype RSSFeed,\n\ttype RSSItem,\n};\n",
|
|
15
15
|
"import type { RSSFeed } from './discovery';\n\ntype RSSFormat = 'rss' | 'atom';\n\ntype RSSGeneratorOptions = {\n\tformat?: RSSFormat;\n\tlimit?: number;\n};\n\n/**\n * Generate RSS 2.0 XML\n */\nexport function generateRSSXML(\n\tfeed: RSSFeed,\n\toptions: RSSGeneratorOptions = {},\n): string {\n\tconst { limit } = options;\n\tconst items = limit ? feed.items.slice(0, limit) : feed.items;\n\n\tconst itemsXML = items\n\t\t.map((item) => {\n\t\t\tlet xml = ' <item>\\n';\n\t\t\txml += ` <title>${escapeXml(item.title)}</title>\\n`;\n\t\t\txml += ` <link>${escapeXml(item.link)}</link>\\n`;\n\n\t\t\tif (item.description) {\n\t\t\t\txml += ` <description>${escapeXml(item.description)}</description>\\n`;\n\t\t\t}\n\n\t\t\tif (item.pubDate) {\n\t\t\t\txml += ` <pubDate>${item.pubDate}</pubDate>\\n`;\n\t\t\t}\n\n\t\t\tif (item.guid) {\n\t\t\t\txml += ` <guid isPermaLink=\"true\">${escapeXml(item.guid)}</guid>\\n`;\n\t\t\t}\n\n\t\t\tif (item.author) {\n\t\t\t\txml += ` <author>${escapeXml(item.author)}</author>\\n`;\n\t\t\t}\n\n\t\t\tif (item.content) {\n\t\t\t\txml += ` <content:encoded><![CDATA[${item.content}]]></content:encoded>\\n`;\n\t\t\t}\n\n\t\t\txml += ' </item>';\n\t\t\treturn xml;\n\t\t})\n\t\t.join('\\n');\n\n\tconst lastBuildDate = new Date().toUTCString();\n\n\treturn `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<rss version=\"2.0\" xmlns:content=\"http://purl.org/rss/1.0/modules/content/\" xmlns:atom=\"http://www.w3.org/2005/Atom\">\n <channel>\n <title>${escapeXml(feed.title)}</title>\n <link>${escapeXml(feed.link)}</link>\n <description>${escapeXml(feed.description)}</description>\n <lastBuildDate>${lastBuildDate}</lastBuildDate>\n <language>en</language>\n <atom:link href=\"${escapeXml(feed.link)}\" rel=\"self\" type=\"application/rss+xml\" />\n${itemsXML}\n </channel>\n</rss>`;\n}\n\n/**\n * Generate Atom XML\n */\nexport function generateAtomXML(\n\tfeed: RSSFeed,\n\toptions: RSSGeneratorOptions = {},\n): string {\n\tconst { limit } = options;\n\tconst items = limit ? feed.items.slice(0, limit) : feed.items;\n\n\tconst entriesXML = items\n\t\t.map((item) => {\n\t\t\tlet xml = ' <entry>\\n';\n\t\t\txml += ` <title>${escapeXml(item.title)}</title>\\n`;\n\t\t\txml += ` <link href=\"${escapeXml(item.link)}\" />\\n`;\n\t\t\txml += ` <id>${escapeXml(item.guid || item.link)}</id>\\n`;\n\n\t\t\tif (item.pubDate) {\n\t\t\t\t// Convert to ISO 8601 for Atom\n\t\t\t\tconst isoDate = new Date(item.pubDate).toISOString();\n\t\t\t\txml += ` <published>${isoDate}</published>\\n`;\n\t\t\t\txml += ` <updated>${isoDate}</updated>\\n`;\n\t\t\t}\n\n\t\t\tif (item.author) {\n\t\t\t\txml += ` <author>\\n`;\n\t\t\t\txml += ` <name>${escapeXml(item.author)}</name>\\n`;\n\t\t\t\txml += ` </author>\\n`;\n\t\t\t}\n\n\t\t\tif (item.description) {\n\t\t\t\txml += ` <summary>${escapeXml(item.description)}</summary>\\n`;\n\t\t\t}\n\n\t\t\tif (item.content) {\n\t\t\t\txml += ` <content type=\"html\"><![CDATA[${item.content}]]></content>\\n`;\n\t\t\t}\n\n\t\t\txml += ' </entry>';\n\t\t\treturn xml;\n\t\t})\n\t\t.join('\\n');\n\n\tconst updated = new Date().toISOString();\n\n\treturn `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<feed xmlns=\"http://www.w3.org/2005/Atom\">\n <title>${escapeXml(feed.title)}</title>\n <link href=\"${escapeXml(feed.link)}\" rel=\"self\" />\n <updated>${updated}</updated>\n <id>${escapeXml(feed.link)}</id>\n${entriesXML}\n</feed>`;\n}\n\n/**\n * Generate feed based on format\n */\nexport function generateFeed(\n\tfeed: RSSFeed,\n\toptions: RSSGeneratorOptions = {},\n): string {\n\tconst format = options.format || 'rss';\n\n\tif (format === 'atom') {\n\t\treturn generateAtomXML(feed, options);\n\t}\n\n\treturn generateRSSXML(feed, options);\n}\n\n/**\n * Escape XML special characters\n */\nfunction escapeXml(unsafe: string): string {\n\treturn unsafe\n\t\t.replace(/&/g, '&')\n\t\t.replace(/</g, '<')\n\t\t.replace(/>/g, '>')\n\t\t.replace(/\"/g, '"')\n\t\t.replace(/'/g, ''');\n}\n",
|
|
16
16
|
"export * from './discovery';\nexport * from './generator';\n",
|
|
17
|
-
"import type { SitemapDiscoveryResult, SitemapEntry } from './discovery';\n\nconst DEFAULT_MAX_URLS = 50000; // Google's limit per sitemap\n\ntype SitemapPage = {\n\tfilename: string;\n\txml: string;\n\tentryCount: number;\n};\n\ntype SitemapResult = {\n\tpages: SitemapPage[];\n\tindexXml?: string;\n\tneedsIndex: boolean;\n};\n\n/**\n * Generate sitemap XML from discovery result\n */\nasync function generateSitemap(\n\tdiscovery: SitemapDiscoveryResult,\n\tbaseUrl: string,\n\toptions: {\n\t\tchangefreq?:\n\t\t\t| 'always'\n\t\t\t| 'hourly'\n\t\t\t| 'daily'\n\t\t\t| 'weekly'\n\t\t\t| 'monthly'\n\t\t\t| 'yearly'\n\t\t\t| 'never';\n\t\tpriority?: number;\n\t\tmaxUrlsPerPage?: number;\n\t} = {},\n): Promise<SitemapResult> {\n\tconst {\n\t\tchangefreq = 'weekly',\n\t\tpriority = 0.5,\n\t\tmaxUrlsPerPage = DEFAULT_MAX_URLS,\n\t} = options;\n\n\tconst allEntries: SitemapEntry[] = [];\n\n\t// Add static routes (skip dynamic patterns with :param)\n\tfor (const route of discovery.staticRoutes) {\n\t\t// Skip dynamic route patterns (they shouldn't be in staticRoutes, but double-check)\n\t\tif (route.pattern.includes(':')) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Normalize the pattern to URL\n\t\tlet loc = route.pattern;\n\n\t\t// Convert /index to /\n\t\tif (loc === '/index') {\n\t\t\tloc = '/';\n\t\t} else if (loc.endsWith('/index')) {\n\t\t\tloc = loc.slice(0, -6) || '/';\n\t\t}\n\n\t\t// Remove .tsx, .ts, .jsx, .js extensions\n\t\tloc = loc.replace(/\\.(tsx?|jsx?)$/, '');\n\n\t\tallEntries.push({\n\t\t\tloc: `${baseUrl}${loc}`,\n\t\t\tchangefreq: route.changefreq || changefreq,\n\t\t\tpriority:\n\t\t\t\troute.priority !== undefined\n\t\t\t\t\t? route.priority\n\t\t\t\t\t: loc === '/'\n\t\t\t\t\t\t? 1.0\n\t\t\t\t\t\t: priority,\n\t\t});\n\t}\n\n\t// Add collection content\n\tfor (const [_collection, entries] of discovery.collections.entries()) {\n\t\tallEntries.push(...entries);\n\t}\n\n\t// Add SSR data routes\n\tfor (const [_pattern, entries] of discovery.ssrDataRoutes.entries()) {\n\t\tallEntries.push(...entries);\n\t}\n\n\t// Sort by priority (desc) and then by URL (asc)\n\tallEntries.sort((a, b) => {\n\t\tconst priorityDiff = (b.priority || 0.5) - (a.priority || 0.5);\n\t\tif (priorityDiff !== 0) return priorityDiff;\n\t\treturn a.loc.localeCompare(b.loc);\n\t});\n\n\t// Paginate if needed\n\tconst pages: SitemapPage[] = [];\n\tconst needsIndex = allEntries.length > maxUrlsPerPage;\n\n\tif (needsIndex) {\n\t\t// Create multiple sitemap files\n\t\tlet pageNum = 0;\n\t\tfor (let i = 0; i < allEntries.length; i += maxUrlsPerPage) {\n\t\t\tconst pageEntries = allEntries.slice(i, i + maxUrlsPerPage);\n\t\t\tconst xml = generateSitemapXML(pageEntries);\n\t\t\tconst filename = `sitemap-${pageNum}.xml`;\n\n\t\t\tpages.push({\n\t\t\t\tfilename,\n\t\t\t\txml,\n\t\t\t\tentryCount: pageEntries.length,\n\t\t\t});\n\t\t\tpageNum++;\n\t\t}\n\n\t\t// Create sitemap index\n\t\tconst indexXml = generateSitemapIndexXML(pages, baseUrl);\n\t\treturn { pages, indexXml, needsIndex: true };\n\t} else {\n\t\t// Single sitemap file\n\t\tconst xml = generateSitemapXML(allEntries);\n\t\tpages.push({\n\t\t\tfilename: 'sitemap.xml',\n\t\t\txml,\n\t\t\tentryCount: allEntries.length,\n\t\t});\n\n\t\treturn { pages, needsIndex: false };\n\t}\n}\n\n/**\n * Generate sitemap XML for a set of entries\n */\nfunction generateSitemapXML(entries: SitemapEntry[]): string {\n\tconst urlsetEntries = entries\n\t\t.map((entry) => {\n\t\t\tlet xml = ` <url>\\n <loc>${escapeXml(entry.loc)}</loc>`;\n\n\t\t\tif (entry.lastmod) {\n\t\t\t\txml += `\\n <lastmod>${entry.lastmod.split('T')[0]}</lastmod>`;\n\t\t\t}\n\n\t\t\tif (entry.changefreq) {\n\t\t\t\txml += `\\n <changefreq>${entry.changefreq}</changefreq>`;\n\t\t\t}\n\n\t\t\tif (entry.priority !== undefined) {\n\t\t\t\txml += `\\n <priority>${entry.priority.toFixed(1)}</priority>`;\n\t\t\t}\n\n\t\t\txml += '\\n </url>';\n\t\t\treturn xml;\n\t\t})\n\t\t.join('\\n');\n\n\treturn `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n${urlsetEntries}\n</urlset>`;\n}\n\n/**\n * Generate sitemap index XML\n */\nfunction generateSitemapIndexXML(\n\tpages: SitemapPage[],\n\tbaseUrl: string,\n): string {\n\tconst lastmod = new Date().toISOString().split('T')[0];\n\n\tconst sitemapEntries = pages\n\t\t.map((page) => {\n\t\t\treturn ` <sitemap>\n <loc>${escapeXml(`${baseUrl}/${page.filename}`)}</loc>\n <lastmod>${lastmod}</lastmod>\n </sitemap>`;\n\t\t})\n\t\t.join('\\n');\n\n\treturn `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<sitemapindex xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n${sitemapEntries}\n</sitemapindex>`;\n}\n\n/**\n * Escape XML special characters\n */\nfunction escapeXml(unsafe: string): string {\n\treturn unsafe\n\t\t.replace(/&/g, '&')\n\t\t.replace(/</g, '<')\n\t\t.replace(/>/g, '>')\n\t\t.replace(/\"/g, '"')\n\t\t.replace(/'/g, ''');\n}\n\nexport {\n\tescapeXml,\n\tgenerateSitemap,\n\tgenerateSitemapIndexXML,\n\tgenerateSitemapXML,\n\ttype SitemapPage,\n\ttype SitemapResult,\n};\n",
|
|
17
|
+
"import type { SitemapDiscoveryResult, SitemapEntry } from './discovery';\n\nconst DEFAULT_MAX_URLS = 50000; // Google's limit per sitemap\n\ntype SitemapPage = {\n\tfilename: string;\n\txml: string;\n\tentryCount: number;\n};\n\ntype SitemapResult = {\n\tpages: SitemapPage[];\n\tindexXml?: string;\n\tneedsIndex: boolean;\n};\n\n/**\n * Generate sitemap XML from discovery result\n */\nasync function generateSitemap(\n\tdiscovery: SitemapDiscoveryResult,\n\tbaseUrl: string,\n\toptions: {\n\t\tchangefreq?:\n\t\t\t| 'always'\n\t\t\t| 'hourly'\n\t\t\t| 'daily'\n\t\t\t| 'weekly'\n\t\t\t| 'monthly'\n\t\t\t| 'yearly'\n\t\t\t| 'never';\n\t\tpriority?: number;\n\t\tmaxUrlsPerPage?: number;\n\t\texcludeRoutes?: string[];\n\t} = {},\n): Promise<SitemapResult> {\n\tconst {\n\t\tchangefreq = 'weekly',\n\t\tpriority = 0.5,\n\t\tmaxUrlsPerPage = DEFAULT_MAX_URLS,\n\t} = options;\n\n\tconst allEntries: SitemapEntry[] = [];\n\n\t// Add static routes (skip dynamic patterns with :param)\n\tfor (const route of discovery.staticRoutes) {\n\t\t// Skip dynamic route patterns (they shouldn't be in staticRoutes, but double-check)\n\t\tif (route.pattern.includes(':')) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Skip completely excluded routes\n\t\tif (options.excludeRoutes?.includes(route.pattern)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Normalize the pattern to URL\n\t\tlet loc = route.pattern;\n\n\t\t// Convert /index to /\n\t\tif (loc === '/index') {\n\t\t\tloc = '/';\n\t\t} else if (loc.endsWith('/index')) {\n\t\t\tloc = loc.slice(0, -6) || '/';\n\t\t}\n\n\t\t// Remove .tsx, .ts, .jsx, .js extensions\n\t\tloc = loc.replace(/\\.(tsx?|jsx?)$/, '');\n\n\t\tallEntries.push({\n\t\t\tloc: `${baseUrl}${loc}`,\n\t\t\tchangefreq: route.changefreq || changefreq,\n\t\t\tpriority:\n\t\t\t\troute.priority !== undefined\n\t\t\t\t\t? route.priority\n\t\t\t\t\t: loc === '/'\n\t\t\t\t\t\t? 1.0\n\t\t\t\t\t\t: priority,\n\t\t});\n\t}\n\n\t// Add collection content\n\tfor (const [_collection, entries] of discovery.collections.entries()) {\n\t\tallEntries.push(...entries);\n\t}\n\n\t// Add SSR data routes\n\tfor (const [_pattern, entries] of discovery.ssrDataRoutes.entries()) {\n\t\tallEntries.push(...entries);\n\t}\n\n\t// Sort by priority (desc) and then by URL (asc)\n\tallEntries.sort((a, b) => {\n\t\tconst priorityDiff = (b.priority || 0.5) - (a.priority || 0.5);\n\t\tif (priorityDiff !== 0) return priorityDiff;\n\t\treturn a.loc.localeCompare(b.loc);\n\t});\n\n\t// Paginate if needed\n\tconst pages: SitemapPage[] = [];\n\tconst needsIndex = allEntries.length > maxUrlsPerPage;\n\n\tif (needsIndex) {\n\t\t// Create multiple sitemap files\n\t\tlet pageNum = 0;\n\t\tfor (let i = 0; i < allEntries.length; i += maxUrlsPerPage) {\n\t\t\tconst pageEntries = allEntries.slice(i, i + maxUrlsPerPage);\n\t\t\tconst xml = generateSitemapXML(pageEntries);\n\t\t\tconst filename = `sitemap-${pageNum}.xml`;\n\n\t\t\tpages.push({\n\t\t\t\tfilename,\n\t\t\t\txml,\n\t\t\t\tentryCount: pageEntries.length,\n\t\t\t});\n\t\t\tpageNum++;\n\t\t}\n\n\t\t// Create sitemap index\n\t\tconst indexXml = generateSitemapIndexXML(pages, baseUrl);\n\t\treturn { pages, indexXml, needsIndex: true };\n\t} else {\n\t\t// Single sitemap file\n\t\tconst xml = generateSitemapXML(allEntries);\n\t\tpages.push({\n\t\t\tfilename: 'sitemap.xml',\n\t\t\txml,\n\t\t\tentryCount: allEntries.length,\n\t\t});\n\n\t\treturn { pages, needsIndex: false };\n\t}\n}\n\n/**\n * Generate sitemap XML for a set of entries\n */\nfunction generateSitemapXML(entries: SitemapEntry[]): string {\n\tconst urlsetEntries = entries\n\t\t.map((entry) => {\n\t\t\tlet xml = ` <url>\\n <loc>${escapeXml(entry.loc)}</loc>`;\n\n\t\t\tif (entry.lastmod) {\n\t\t\t\txml += `\\n <lastmod>${entry.lastmod.split('T')[0]}</lastmod>`;\n\t\t\t}\n\n\t\t\tif (entry.changefreq) {\n\t\t\t\txml += `\\n <changefreq>${entry.changefreq}</changefreq>`;\n\t\t\t}\n\n\t\t\tif (entry.priority !== undefined) {\n\t\t\t\txml += `\\n <priority>${entry.priority.toFixed(1)}</priority>`;\n\t\t\t}\n\n\t\t\txml += '\\n </url>';\n\t\t\treturn xml;\n\t\t})\n\t\t.join('\\n');\n\n\treturn `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n${urlsetEntries}\n</urlset>`;\n}\n\n/**\n * Generate sitemap index XML\n */\nfunction generateSitemapIndexXML(\n\tpages: SitemapPage[],\n\tbaseUrl: string,\n): string {\n\tconst lastmod = new Date().toISOString().split('T')[0];\n\n\tconst sitemapEntries = pages\n\t\t.map((page) => {\n\t\t\treturn ` <sitemap>\n <loc>${escapeXml(`${baseUrl}/${page.filename}`)}</loc>\n <lastmod>${lastmod}</lastmod>\n </sitemap>`;\n\t\t})\n\t\t.join('\\n');\n\n\treturn `<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<sitemapindex xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n${sitemapEntries}\n</sitemapindex>`;\n}\n\n/**\n * Escape XML special characters\n */\nfunction escapeXml(unsafe: string): string {\n\treturn unsafe\n\t\t.replace(/&/g, '&')\n\t\t.replace(/</g, '<')\n\t\t.replace(/>/g, '>')\n\t\t.replace(/\"/g, '"')\n\t\t.replace(/'/g, ''');\n}\n\nexport {\n\tescapeXml,\n\tgenerateSitemap,\n\tgenerateSitemapIndexXML,\n\tgenerateSitemapXML,\n\ttype SitemapPage,\n\ttype SitemapResult,\n};\n",
|
|
18
18
|
"export * from './discovery';\nexport * from './generator';\n",
|
|
19
19
|
"type CacheEntry<T> = {\n\tdata: T;\n\ttimestamp: number;\n\tmaxAge: number;\n};\n\n/**\n * Simple in-memory cache for SSR data\n * Thread-safe for single-process usage\n */\nclass SSRDataCache {\n\tprivate cache: Map<string, CacheEntry<unknown>> = new Map();\n\tprivate static cleanupInterval: NodeJS.Timeout | null = null;\n\n\tconstructor() {\n\t\t// Run cleanup every 60 seconds to remove expired entries\n\t\t// Only start interval once globally\n\t\tif (!SSRDataCache.cleanupInterval) {\n\t\t\tSSRDataCache.cleanupInterval = setInterval(() => {\n\t\t\t\tthis.cleanup();\n\t\t\t}, 60_000);\n\t\t}\n\t}\n\n\t/**\n\t * Get cached data if available and not expired\n\t */\n\tget<T>(key: string): T | undefined {\n\t\tconst entry = this.cache.get(key);\n\t\tif (!entry) return undefined;\n\n\t\tconst age = Date.now() - entry.timestamp;\n\t\tif (age > entry.maxAge) {\n\t\t\tthis.cache.delete(key);\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn entry.data as T;\n\t}\n\n\t/**\n\t * Set data in cache with maxAge (in milliseconds)\n\t */\n\tset<T>(key: string, data: T, maxAge: number): void {\n\t\tif (maxAge <= 0) return; // Don't cache if maxAge is 0 or negative\n\n\t\tthis.cache.set(key, {\n\t\t\tdata,\n\t\t\ttimestamp: Date.now(),\n\t\t\tmaxAge, // maxAge should be in milliseconds\n\t\t});\n\t}\n\n\t/**\n\t * Check if key exists and is not expired\n\t */\n\thas(key: string): boolean {\n\t\treturn this.get(key) !== undefined;\n\t}\n\n\t/**\n\t * Clear all cached data\n\t */\n\tclear(): void {\n\t\tthis.cache.clear();\n\t}\n\n\t/**\n\t * Remove expired entries\n\t */\n\tprivate cleanup(): void {\n\t\tconst now = Date.now();\n\t\tfor (const [key, entry] of this.cache.entries()) {\n\t\t\tif (now - entry.timestamp > entry.maxAge) {\n\t\t\t\tthis.cache.delete(key);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Get cache stats (useful for debugging)\n\t */\n\tstats(): { size: number; keys: string[] } {\n\t\treturn {\n\t\t\tsize: this.cache.size,\n\t\t\tkeys: Array.from(this.cache.keys()),\n\t\t};\n\t}\n\n\t/**\n\t * Cleanup interval on shutdown\n\t */\n\tdestroy(): void {\n\t\tif (SSRDataCache.cleanupInterval) {\n\t\t\tclearInterval(SSRDataCache.cleanupInterval);\n\t\t\tSSRDataCache.cleanupInterval = null;\n\t\t}\n\t\tthis.clear();\n\t}\n}\n\n// Simple LRU Cache implementation for backward compatibility\nexport class LRUCache<K, V> {\n\tprivate cache: Map<K, V> = new Map();\n\tprivate maxSize: number;\n\n\tconstructor(maxSize: number = 100) {\n\t\tthis.maxSize = maxSize;\n\t}\n\n\tget(key: K): V | undefined {\n\t\tconst value = this.cache.get(key);\n\t\tif (value !== undefined) {\n\t\t\t// Move to end (most recently used)\n\t\t\tthis.cache.delete(key);\n\t\t\tthis.cache.set(key, value);\n\t\t}\n\t\treturn value;\n\t}\n\n\tset(key: K, value: V): void {\n\t\t// Delete if exists (to update position)\n\t\tthis.cache.delete(key);\n\n\t\t// Evict oldest if at capacity\n\t\tif (this.cache.size >= this.maxSize) {\n\t\t\tconst firstKey = this.cache.keys().next().value;\n\t\t\tthis.cache.delete(firstKey as K);\n\t\t}\n\n\t\tthis.cache.set(key, value);\n\t}\n\n\thas(key: K): boolean {\n\t\treturn this.cache.has(key);\n\t}\n\n\tclear(): void {\n\t\tthis.cache.clear();\n\t}\n}\n\n// Global singleton instance - persist across module reloads in dev mode\n// Use globalThis to ensure cache survives hot reloads\nconst getGlobalCache = (): SSRDataCache => {\n\tconst g = globalThis as typeof globalThis & {\n\t\t__REROUTE_SSR_CACHE__?: SSRDataCache;\n\t\t__REROUTE_SSR_CACHE_INIT__?: boolean;\n\t};\n\n\tif (!g.__REROUTE_SSR_CACHE__) {\n\t\tg.__REROUTE_SSR_CACHE__ = new SSRDataCache();\n\t\tg.__REROUTE_SSR_CACHE_INIT__ = true;\n\t}\n\n\treturn g.__REROUTE_SSR_CACHE__;\n};\n\nconst ssrCache = getGlobalCache();\n\n/**\n * Separate cache for HTTP status codes\n * Used to cache status codes from SSR data functions for fast lookup\n */\nconst getGlobalStatusCache = (): SSRDataCache => {\n\tconst g = globalThis as typeof globalThis & {\n\t\t__REROUTE_STATUS_CACHE__?: SSRDataCache;\n\t};\n\n\tif (!g.__REROUTE_STATUS_CACHE__) {\n\t\tg.__REROUTE_STATUS_CACHE__ = new SSRDataCache();\n\t}\n\n\treturn g.__REROUTE_STATUS_CACHE__;\n};\n\nconst statusCache = getGlobalStatusCache();\n\nexport { ssrCache, statusCache, SSRDataCache };\nexport type { CacheEntry };\n",
|
|
20
20
|
"import { pathToFileURL } from 'node:url';\nimport { join } from './path';\n\n// biome-ignore lint/suspicious/noExplicitAny: flexible types\ntype Doc = any;\n\n/**\n * Load content collections for SSR rendering\n */\nexport async function loadCollections(\n\tcwd: string,\n\tisWatchMode: boolean,\n): Promise<Record<string, unknown[]>> {\n\ttry {\n\t\tconst p = join(cwd, '.reroute', 'content.ts');\n\t\tconst mod = await import(\n\t\t\tpathToFileURL(p).href + (isWatchMode ? `?t=${Date.now()}` : '')\n\t\t);\n\t\treturn (mod?.byCollection || {}) as Record<string, unknown[]>;\n\t} catch {\n\t\treturn {};\n\t}\n}\n\n/**\n * Set global collections for SSR\n */\nexport function setGlobalCollections(\n\tbyCollectionForSSR: Record<string, unknown[]>,\n): void {\n\ttry {\n\t\t(globalThis as Doc).__REROUTE_COLLECTIONS__ = byCollectionForSSR as Doc;\n\t} catch {}\n}\n",
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"#!/usr/bin/env bun\n\n/**\n * Analyze command - Analyze bundle sizes\n *\n * This command analyzes bundles generated by reroute and provides:\n * - Bundle size statistics\n * - Gzipped size information\n * - HTML visualization report with dependency treemap\n */\n\nimport { existsSync, statSync } from 'node:fs';\nimport { readdir, readFile, stat, writeFile } from 'node:fs/promises';\nimport { basename, join, relative } from 'node:path';\nimport Table from 'cli-table3';\nimport { colorizeLogPrefixAnsi } from './lib/log';\nimport { isProductionMode } from './lib/production';\n\n// ASCII-only table borders to avoid Unicode rendering issues in some environments\nconst ASCII_TABLE_CHARS = {\n\ttop: '-',\n\t'top-mid': '+',\n\t'top-left': '+',\n\t'top-right': '+',\n\tbottom: '-',\n\t'bottom-mid': '+',\n\t'bottom-left': '+',\n\t'bottom-right': '+',\n\tleft: '|',\n\t'left-mid': '+',\n\tmid: '-',\n\t'mid-mid': '+',\n\tright: '|',\n\t'right-mid': '+',\n\tmiddle: '|',\n} as const;\n\ninterface BundleInfo {\n\tpath: string;\n\tname: string;\n\tsize: number;\n\tgzippedSize: number;\n\trelativePath: string;\n\ttype: 'chunk' | 'binary';\n}\n\ninterface BundleStats {\n\ttotalBundles: number;\n\ttotalSize: number;\n\ttotalGzippedSize: number;\n\tbundles: BundleInfo[];\n\tbyCollection: Record<string, BundleInfo[]>;\n}\n\ninterface DepNode {\n\tname: string;\n\tpath: string;\n\tsize: number;\n\tchildren?: DepNode[];\n}\n\ninterface DepTree {\n\tentry: string;\n\ttotalSize: number;\n\troot: DepNode;\n}\n\nasync function findBundles(cwd: string): Promise<BundleInfo[]> {\n\tconst bundles: BundleInfo[] = [];\n\n\t// Find chunks in .reroute/chunks/\n\tconst chunksDir = join(cwd, '.reroute', 'chunks');\n\tif (existsSync(chunksDir)) {\n\t\tconst collections = await readdir(chunksDir, { withFileTypes: true });\n\t\tfor (const collection of collections) {\n\t\t\tif (!collection.isDirectory()) continue;\n\n\t\t\tconst collectionDir = join(chunksDir, collection.name);\n\t\t\tconst files = await readdir(collectionDir);\n\t\t\tfor (const file of files) {\n\t\t\t\tif (!file.endsWith('.js')) continue;\n\n\t\t\t\tconst filePath = join(collectionDir, file);\n\t\t\t\tconst stats = await stat(filePath);\n\t\t\t\tconst content = await Bun.file(filePath).arrayBuffer();\n\t\t\t\tconst gzippedSize = Bun.gzipSync(new Uint8Array(content)).length;\n\n\t\t\t\tbundles.push({\n\t\t\t\t\tpath: filePath,\n\t\t\t\t\tname: file,\n\t\t\t\t\tsize: stats.size,\n\t\t\t\t\tgzippedSize,\n\t\t\t\t\trelativePath: relative(cwd, filePath),\n\t\t\t\t\ttype: 'chunk',\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\t// Find production binaries in dist/\n\tconst distDir = join(cwd, 'dist');\n\tif (existsSync(distDir)) {\n\t\tconst files = await readdir(distDir);\n\t\tfor (const file of files) {\n\t\t\tconst filePath = join(distDir, file);\n\t\t\tconst stats = statSync(filePath);\n\t\t\tif (stats.isFile() && !file.endsWith('.map') && !file.endsWith('.d.ts')) {\n\t\t\t\tconst content = await Bun.file(filePath).arrayBuffer();\n\t\t\t\tconst gzippedSize = Bun.gzipSync(new Uint8Array(content)).length;\n\n\t\t\t\tbundles.push({\n\t\t\t\t\tpath: filePath,\n\t\t\t\t\tname: file,\n\t\t\t\t\tsize: stats.size,\n\t\t\t\t\tgzippedSize,\n\t\t\t\t\trelativePath: relative(cwd, filePath),\n\t\t\t\t\ttype: 'binary',\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\treturn bundles;\n}\n\n/**\n * Find the main browser entrypoint bundle (e.g., index.52a12e66.js)\n * This is the actual JavaScript file shipped to browsers\n */\nasync function findBrowserEntry(cwd: string): Promise<string | null> {\n\ttry {\n\t\tconst clientDir = join(cwd, 'src', 'client');\n\t\tconst tsxEntry = join(clientDir, 'index.tsx');\n\t\tconst tsEntry = join(clientDir, 'index.ts');\n\n\t\tlet sourceEntry: string | null = null;\n\t\tif (existsSync(tsxEntry)) {\n\t\t\tsourceEntry = tsxEntry;\n\t\t} else if (existsSync(tsEntry)) {\n\t\t\tsourceEntry = tsEntry;\n\t\t}\n\n\t\tif (!sourceEntry) return null;\n\n\t\tconst { generateContentHash } = await import('reroute-js/core');\n\n\t\t// Build with NO externals - include everything\n\t\tconst isProd = isProductionMode();\n\t\tconst result = await Bun.build({\n\t\t\tentrypoints: [sourceEntry],\n\t\t\ttarget: 'browser',\n\t\t\tformat: 'esm',\n\t\t\tminify: isProd,\n\t\t\tsourcemap: 'linked',\n\t\t\texternal: [], // Include all dependencies\n\t\t\tdefine: {\n\t\t\t\t'process.env.NODE_ENV': isProd ? '\"production\"' : '\"development\"',\n\t\t\t},\n\t\t});\n\n\t\tif (!result.success) {\n\t\t\tif (result.logs && result.logs.length > 0) {\n\t\t\t\tconsole.warn(\n\t\t\t\t\t'[reroute/analyze] Browser build errors:',\n\t\t\t\t\tresult.logs.map((log) => log.message).join('\\n'),\n\t\t\t\t);\n\t\t\t}\n\t\t\treturn null;\n\t\t}\n\n\t\tif (result.outputs.length === 0) {\n\t\t\tconsole.warn('[reroute/analyze] Browser build produced no outputs');\n\t\t\treturn null;\n\t\t}\n\n\t\tconst tempDir = join(cwd, '.reroute', 'browser');\n\t\tawait import('node:fs/promises').then((fs) =>\n\t\t\tfs.mkdir(tempDir, { recursive: true }),\n\t\t);\n\n\t\tconst output = result.outputs[0];\n\t\tconst code = await output.text();\n\t\tconst actualHash = await generateContentHash(code);\n\t\tconst bundlePath = join(tempDir, `index.${actualHash}.js`);\n\n\t\tawait writeFile(bundlePath, code, 'utf-8');\n\n\t\tconst mapOutput = result.outputs.find((o) => o.path.endsWith('.map'));\n\t\tif (mapOutput) {\n\t\t\tconst mapContent = await mapOutput.text();\n\t\t\tawait writeFile(`${bundlePath}.map`, mapContent, 'utf-8');\n\t\t}\n\n\t\treturn bundlePath;\n\t} catch (error) {\n\t\tconsole.warn('[reroute/analyze] Could not build browser entry:', error);\n\t\treturn null;\n\t}\n}\n\nfunction formatBytes(bytes: number): string {\n\tif (bytes === 0) return '0 B';\n\tconst k = 1024;\n\tconst sizes = ['B', 'KB', 'MB', 'GB'];\n\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\n\treturn `${(bytes / k ** i).toFixed(2)} ${sizes[i]}`;\n}\n\nfunction calculateStats(bundles: BundleInfo[]): BundleStats {\n\tconst byCollection: Record<string, BundleInfo[]> = {};\n\tlet totalSize = 0;\n\tlet totalGzippedSize = 0;\n\n\tfor (const bundle of bundles) {\n\t\ttotalSize += bundle.size;\n\t\ttotalGzippedSize += bundle.gzippedSize;\n\n\t\tif (bundle.type === 'chunk') {\n\t\t\t// Extract collection name from path\n\t\t\tconst match = bundle.relativePath.match(/\\.reroute\\/chunks\\/([^/]+)/);\n\t\t\tconst collection = match ? match[1] : 'unknown';\n\t\t\tif (!byCollection[collection]) {\n\t\t\t\tbyCollection[collection] = [];\n\t\t\t}\n\t\t\tbyCollection[collection].push(bundle);\n\t\t} else {\n\t\t\tif (!byCollection.binaries) {\n\t\t\t\tbyCollection.binaries = [];\n\t\t\t}\n\t\t\tbyCollection.binaries.push(bundle);\n\t\t}\n\t}\n\n\treturn {\n\t\ttotalBundles: bundles.length,\n\t\ttotalSize,\n\t\ttotalGzippedSize,\n\t\tbundles,\n\t\tbyCollection,\n\t};\n}\n\n/**\n * Build a dependency tree from bundle comments (no runtime imports).\n * Groups by node_modules packages vs local src files.\n */\n/**\n * Get actual installed package sizes from node_modules\n */\nasync function getInstalledPackageSizes(\n\tcwd: string,\n): Promise<Map<string, number>> {\n\tconst packageSizes = new Map<string, number>();\n\tconst nodeModulesDir = join(cwd, 'node_modules');\n\n\tif (!existsSync(nodeModulesDir)) return packageSizes;\n\n\ttry {\n\t\tconst { execSync } = await import('node:child_process');\n\t\t// Use du to get directory sizes (faster than recursively statting files)\n\t\tconst output = execSync(`du -sk ${nodeModulesDir}/* 2>/dev/null || true`, {\n\t\t\tencoding: 'utf8',\n\t\t\tmaxBuffer: 10 * 1024 * 1024,\n\t\t});\n\n\t\tconst lines = output.trim().split('\\n');\n\t\tfor (const line of lines) {\n\t\t\tconst [sizeKB, path] = line.split('\\t');\n\t\t\tif (!path) continue;\n\t\t\tconst pkgName = basename(path);\n\t\t\t// Handle @scope packages\n\t\t\tif (pkgName.startsWith('@')) {\n\t\t\t\tconst scopeDir = path;\n\t\t\t\tconst scopedOutput = execSync(\n\t\t\t\t\t`du -sk ${scopeDir}/* 2>/dev/null || true`,\n\t\t\t\t\t{\n\t\t\t\t\t\tencoding: 'utf8',\n\t\t\t\t\t},\n\t\t\t\t);\n\t\t\t\tconst scopedLines = scopedOutput.trim().split('\\n');\n\t\t\t\tfor (const scopedLine of scopedLines) {\n\t\t\t\t\tconst [scopedSizeKB, scopedPath] = scopedLine.split('\\t');\n\t\t\t\t\tif (!scopedPath) continue;\n\t\t\t\t\tconst fullPkgName = `${pkgName}/${basename(scopedPath)}`;\n\t\t\t\t\tpackageSizes.set(\n\t\t\t\t\t\tfullPkgName,\n\t\t\t\t\t\tNumber.parseInt(scopedSizeKB, 10) * 1024,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tpackageSizes.set(pkgName, Number.parseInt(sizeKB, 10) * 1024);\n\t\t\t}\n\t\t}\n\t} catch (_error) {\n\t\t// Silently fail if du command doesn't work\n\t}\n\n\treturn packageSizes;\n}\n\nasync function buildDependencyTree(\n\tentryPath: string,\n\tcwd: string,\n): Promise<DepTree | null> {\n\ttry {\n\t\tif (!existsSync(entryPath)) return null;\n\n\t\tconst root: DepNode = {\n\t\t\tname: basename(entryPath),\n\t\t\tpath: entryPath,\n\t\t\tsize: 0,\n\t\t\tchildren: [],\n\t\t};\n\t\t// Prefer sourcemap-based analysis (generated build only)\n\t\tconst fromMap = await buildTreeFromSourceMap(entryPath, cwd);\n\t\tif (fromMap) return fromMap;\n\n\t\t// Fallback: use bundle comment markers (still generated build only)\n\t\ttry {\n\t\t\tconst content = await readFile(entryPath, 'utf-8');\n\t\t\tconst modulePattern = /\\/\\/\\s*(.+?\\.(?:ts|tsx|js|jsx|mjs|cjs))\\s*$/gm;\n\t\t\tconst nodeModulesNode: DepNode = {\n\t\t\t\tname: 'node_modules',\n\t\t\t\tpath: join(cwd, 'node_modules'),\n\t\t\t\tsize: 0,\n\t\t\t\tchildren: [],\n\t\t\t};\n\t\t\tconst srcNode: DepNode = {\n\t\t\t\tname: 'src',\n\t\t\t\tpath: cwd,\n\t\t\t\tsize: 0,\n\t\t\t\tchildren: [],\n\t\t\t};\n\t\t\troot.children?.push(nodeModulesNode, srcNode);\n\n\t\t\tfunction place(filePath: string, size: number) {\n\t\t\t\tif (filePath.includes('node_modules')) {\n\t\t\t\t\tlet pkgName = filePath.slice(\n\t\t\t\t\t\tfilePath.indexOf('node_modules') + 'node_modules'.length + 1,\n\t\t\t\t\t);\n\t\t\t\t\tpkgName = pkgName.startsWith('@')\n\t\t\t\t\t\t? pkgName.split('/').slice(0, 2).join('/')\n\t\t\t\t\t\t: pkgName.split('/')[0];\n\t\t\t\t\tlet pkgNode = nodeModulesNode.children?.find(\n\t\t\t\t\t\t(c) => c.name === pkgName,\n\t\t\t\t\t);\n\t\t\t\t\tif (!pkgNode) {\n\t\t\t\t\t\tpkgNode = {\n\t\t\t\t\t\t\tname: pkgName || 'unknown',\n\t\t\t\t\t\t\tpath: join(cwd, 'node_modules', pkgName || ''),\n\t\t\t\t\t\t\tsize: 0,\n\t\t\t\t\t\t\tchildren: [],\n\t\t\t\t\t\t};\n\t\t\t\t\t\tnodeModulesNode.children?.push(pkgNode);\n\t\t\t\t\t}\n\t\t\t\t\tpkgNode.children?.push({\n\t\t\t\t\t\tname: basename(filePath),\n\t\t\t\t\t\tpath: filePath,\n\t\t\t\t\t\tsize,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tconst rel = relative(cwd, filePath);\n\t\t\t\t\tconst parts = rel.split('/').filter(Boolean);\n\t\t\t\t\tlet current = srcNode;\n\t\t\t\t\tfor (let i = 0; i < parts.length - 1; i++) {\n\t\t\t\t\t\tconst part = parts[i];\n\t\t\t\t\t\tlet child = current.children?.find((c) => c.name === part);\n\t\t\t\t\t\tif (!child) {\n\t\t\t\t\t\t\tchild = {\n\t\t\t\t\t\t\t\tname: part,\n\t\t\t\t\t\t\t\tpath: join(cwd, ...parts.slice(0, i + 1)),\n\t\t\t\t\t\t\t\tsize: 0,\n\t\t\t\t\t\t\t\tchildren: [],\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\tcurrent.children?.push(child);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcurrent = child;\n\t\t\t\t\t}\n\t\t\t\t\tcurrent.children?.push({\n\t\t\t\t\t\tname: parts[parts.length - 1] || basename(filePath),\n\t\t\t\t\t\tpath: filePath,\n\t\t\t\t\t\tsize,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet match: RegExpExecArray | null;\n\t\t\tlet lastPath = '';\n\t\t\tlet lastPos = 0;\n\t\t\tmatch = modulePattern.exec(content);\n\t\t\twhile (match !== null) {\n\t\t\t\tif (lastPath) {\n\t\t\t\t\tconst size = match.index - lastPos;\n\t\t\t\t\tif (size > 0) place(lastPath, size);\n\t\t\t\t}\n\t\t\t\tlastPath = match[1];\n\t\t\t\tlastPos = match.index + match[0].length;\n\t\t\t\tmatch = modulePattern.exec(content);\n\t\t\t}\n\t\t\tif (lastPath) {\n\t\t\t\tconst size = content.length - lastPos;\n\t\t\t\tif (size > 0) place(lastPath, size);\n\t\t\t}\n\n\t\t\t// Aggregate sizes\n\t\t\tfunction compute(node: DepNode): number {\n\t\t\t\tif (node.children && node.children.length > 0) {\n\t\t\t\t\tnode.size = node.children.reduce((s, c) => s + compute(c), 0);\n\t\t\t\t}\n\t\t\t\treturn node.size;\n\t\t\t}\n\t\t\tcompute(root);\n\n\t\t\treturn {\n\t\t\t\tentry: entryPath,\n\t\t\t\ttotalSize: root.size,\n\t\t\t\troot,\n\t\t\t};\n\t\t} catch {\n\t\t\treturn null;\n\t\t}\n\t} catch {\n\t\treturn null;\n\t}\n}\n\n/**\n * Build dependency tree from source map by attributing generated character spans\n * to original sources.\n */\nasync function buildTreeFromSourceMap(\n\tbundlePath: string,\n\tcwd: string,\n): Promise<DepTree | null> {\n\ttry {\n\t\tconst mapPath = `${bundlePath}.map`;\n\t\tif (!existsSync(mapPath)) return null;\n\t\tconst [bundle, mapJson] = await Promise.all([\n\t\t\treadFile(bundlePath, 'utf-8'),\n\t\t\treadFile(mapPath, 'utf-8'),\n\t\t]);\n\t\tconst map = JSON.parse(mapJson) as {\n\t\t\tversion: number;\n\t\t\tfile?: string;\n\t\t\tsourceRoot?: string;\n\t\t\tsources: string[];\n\t\t\tmappings: string;\n\t\t};\n\t\tconst sourceRoot = map.sourceRoot || '';\n\t\tconst genLines = bundle.split('\\n').map((l) => l.length);\n\n\t\t// Base64 VLQ decoding helpers\n\t\tconst chars =\n\t\t\t'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t\tconst charToInt = new Map<string, number>();\n\t\tfor (let i = 0; i < chars.length; i++) charToInt.set(chars[i], i);\n\t\tfunction decodeVLQ(str: string, indexRef: { i: number }): number {\n\t\t\tlet result = 0;\n\t\t\tlet shift = 0;\n\t\t\tlet continuation: boolean;\n\t\t\tdo {\n\t\t\t\tconst ch = str[indexRef.i++];\n\t\t\t\tif (ch == null) return 0;\n\t\t\t\tconst val = charToInt.get(ch) ?? 0;\n\t\t\t\tcontinuation = (val & 32) !== 0;\n\t\t\t\tconst digit = val & 31;\n\t\t\t\tresult += digit << shift;\n\t\t\t\tshift += 5;\n\t\t\t} while (continuation);\n\t\t\tconst negate = result & 1;\n\t\t\tresult >>= 1;\n\t\t\treturn negate ? -result : result;\n\t\t}\n\n\t\t// Aggregate generated spans per source index\n\t\tconst perSource: number[] = new Array(map.sources.length).fill(0);\n\n\t\tconst lines = map.mappings.split(';');\n\t\tfor (let line = 0; line < lines.length; line++) {\n\t\t\tconst segs = lines[line];\n\t\t\tif (!segs) continue;\n\t\t\tlet genCol = 0;\n\t\t\tlet src = 0;\n\t\t\tlet _srcLine = 0;\n\t\t\tlet _srcCol = 0;\n\n\t\t\tconst decoded: Array<{ gen: number; src: number | null }> = [];\n\t\t\tconst idx = { i: 0 };\n\t\t\twhile (idx.i < segs.length) {\n\t\t\t\tconst start = idx.i;\n\t\t\t\tgenCol += decodeVLQ(segs, idx);\n\t\t\t\tlet srcIndex: number | null = null;\n\t\t\t\tif (idx.i < segs.length && segs[idx.i] !== ',') {\n\t\t\t\t\tsrc += decodeVLQ(segs, idx);\n\t\t\t\t\t_srcLine += decodeVLQ(segs, idx);\n\t\t\t\t\t_srcCol += decodeVLQ(segs, idx);\n\t\t\t\t\tif (idx.i < segs.length && segs[idx.i] !== ',') {\n\t\t\t\t\t\tdecodeVLQ(segs, idx);\n\t\t\t\t\t}\n\t\t\t\t\tsrcIndex = src;\n\t\t\t\t}\n\t\t\t\tdecoded.push({ gen: genCol, src: srcIndex });\n\t\t\t\tif (segs[idx.i] === ',') idx.i++;\n\t\t\t\tif (idx.i === start) idx.i++;\n\t\t\t}\n\t\t\tif (decoded.length === 0) continue;\n\t\t\tfor (let i = 0; i < decoded.length; i++) {\n\t\t\t\tconst curr = decoded[i];\n\t\t\t\tconst nextGen =\n\t\t\t\t\ti + 1 < decoded.length ? decoded[i + 1].gen : (genLines[line] ?? 0);\n\t\t\t\tconst span = Math.max(0, nextGen - curr.gen);\n\t\t\t\tif (span > 0 && curr.src != null && perSource[curr.src] != null) {\n\t\t\t\t\tperSource[curr.src] += span;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Build tree\n\t\tconst root: DepNode = {\n\t\t\tname: basename(bundlePath),\n\t\t\tpath: bundlePath,\n\t\t\tsize: 0,\n\t\t\tchildren: [],\n\t\t};\n\t\tconst nodeModulesNode: DepNode = {\n\t\t\tname: 'node_modules',\n\t\t\tpath: join(cwd, 'node_modules'),\n\t\t\tsize: 0,\n\t\t\tchildren: [],\n\t\t};\n\t\tconst srcNode: DepNode = {\n\t\t\tname: 'src',\n\t\t\tpath: cwd,\n\t\t\tsize: 0,\n\t\t\tchildren: [],\n\t\t};\n\t\troot.children?.push(nodeModulesNode, srcNode);\n\n\t\tfunction absFor(sourcePath: string): string {\n\t\t\tif (sourcePath.startsWith('/') || sourcePath.match(/^[A-Za-z]:\\\\/))\n\t\t\t\treturn sourcePath;\n\t\t\t// Resolve relative to the bundle file's directory\n\t\t\tconst bundleDir = bundlePath.substring(0, bundlePath.lastIndexOf('/'));\n\t\t\treturn join(bundleDir, sourceRoot || '', sourcePath);\n\t\t}\n\n\t\tfor (let i = 0; i < map.sources.length; i++) {\n\t\t\tconst size = perSource[i];\n\t\t\tif (size <= 0) continue;\n\t\t\tconst srcPath = absFor(map.sources[i]);\n\t\t\tif (srcPath.includes('node_modules')) {\n\t\t\t\t// Extract package name - handle Bun's .bun/package@version/node_modules/package/ format\n\t\t\t\tlet pkgName: string;\n\n\t\t\t\t// Check if it's a Bun internal path like: node_modules/.bun/package@version/node_modules/package/\n\t\t\t\tif (srcPath.includes('.bun/')) {\n\t\t\t\t\tconst bunMatch = srcPath.match(\n\t\t\t\t\t\t/\\.bun\\/([^/]+)@[^/]+\\/node_modules\\/([^/]+)\\//,\n\t\t\t\t\t);\n\t\t\t\t\tif (bunMatch) {\n\t\t\t\t\t\t// Use the package name from the inner node_modules path\n\t\t\t\t\t\tconst innerPkg = bunMatch[2];\n\t\t\t\t\t\t// Handle @scope/package\n\t\t\t\t\t\tif (innerPkg === '@borewit' || innerPkg.startsWith('@')) {\n\t\t\t\t\t\t\tconst scopeMatch = srcPath.match(\n\t\t\t\t\t\t\t\t/\\.bun\\/[^/]+@[^/]+\\/node_modules\\/((@[^/]+\\/[^/]+))/,\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tpkgName = scopeMatch ? scopeMatch[1] : innerPkg;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpkgName = innerPkg;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Fallback: extract from .bun/package@version\n\t\t\t\t\t\tconst fallbackMatch = srcPath.match(/\\.bun\\/([^@/]+)/);\n\t\t\t\t\t\tpkgName = fallbackMatch ? fallbackMatch[1] : 'unknown';\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Normal node_modules path\n\t\t\t\t\tconst afterNm = srcPath.slice(\n\t\t\t\t\t\tsrcPath.lastIndexOf('node_modules') + 'node_modules'.length + 1,\n\t\t\t\t\t);\n\t\t\t\t\tpkgName = afterNm.startsWith('@')\n\t\t\t\t\t\t? afterNm.split('/').slice(0, 2).join('/')\n\t\t\t\t\t\t: afterNm.split('/')[0];\n\t\t\t\t}\n\n\t\t\t\tlet pkgNode = nodeModulesNode.children?.find((c) => c.name === pkgName);\n\t\t\t\tif (!pkgNode) {\n\t\t\t\t\tpkgNode = {\n\t\t\t\t\t\tname: pkgName || 'unknown',\n\t\t\t\t\t\tpath: join(cwd, 'node_modules', pkgName || ''),\n\t\t\t\t\t\tsize: 0,\n\t\t\t\t\t\tchildren: [],\n\t\t\t\t\t};\n\t\t\t\t\tnodeModulesNode.children?.push(pkgNode);\n\t\t\t\t}\n\t\t\t\tpkgNode.children?.push({\n\t\t\t\t\tname: basename(srcPath),\n\t\t\t\t\tpath: srcPath,\n\t\t\t\t\tsize,\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst rel = relative(cwd, srcPath);\n\t\t\t\tconst parts = rel.split('/').filter(Boolean);\n\t\t\t\tlet current = srcNode;\n\t\t\t\tfor (let i = 0; i < parts.length - 1; i++) {\n\t\t\t\t\tconst part = parts[i];\n\t\t\t\t\tlet child = current.children?.find((c) => c.name === part);\n\t\t\t\t\tif (!child) {\n\t\t\t\t\t\tchild = {\n\t\t\t\t\t\t\tname: part,\n\t\t\t\t\t\t\tpath: join(cwd, ...parts.slice(0, i + 1)),\n\t\t\t\t\t\t\tsize: 0,\n\t\t\t\t\t\t\tchildren: [],\n\t\t\t\t\t\t};\n\t\t\t\t\t\tcurrent.children?.push(child);\n\t\t\t\t\t}\n\t\t\t\t\tcurrent = child;\n\t\t\t\t}\n\t\t\t\tcurrent.children?.push({\n\t\t\t\t\tname: parts[parts.length - 1] || basename(srcPath),\n\t\t\t\t\tpath: srcPath,\n\t\t\t\t\tsize,\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tfunction computeSizes(node: DepNode): number {\n\t\t\tif (node.children && node.children.length > 0) {\n\t\t\t\tnode.size = node.children.reduce((s, c) => s + computeSizes(c), 0);\n\t\t\t}\n\t\t\treturn node.size;\n\t\t}\n\t\tcomputeSizes(root);\n\n\t\treturn {\n\t\t\tentry: bundlePath,\n\t\t\ttotalSize: root.size,\n\t\t\troot,\n\t\t};\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nasync function generateHTMLReport(\n\tstats: BundleStats,\n\tdepTree?: DepTree | null,\n\tmainInfo?: { name: string; size: number; gzippedSize: number } | null,\n\tbrowserDepTree?: DepTree | null,\n\tbrowserInfo?: { name: string; size: number; gzippedSize: number } | null,\n\tinitialSearch?: string,\n): Promise<string> {\n\tconst bundles = stats.bundles.sort((a, b) => b.size - a.size);\n\n\t// Get actual dist/ binary size for HTML\n\tlet actualServerBinarySize: number | null = null;\n\tlet actualServerBinaryGzipped: number | null = null;\n\ttry {\n\t\tconst distDir = join(process.cwd(), 'dist');\n\t\tif (existsSync(distDir)) {\n\t\t\tconst files = await readdir(distDir);\n\t\t\tfor (const file of files) {\n\t\t\t\tconst filePath = join(distDir, file);\n\t\t\t\tconst stats = statSync(filePath);\n\t\t\t\tif (stats.isFile() && !file.includes('.')) {\n\t\t\t\t\tactualServerBinarySize = stats.size;\n\t\t\t\t\tconst content = await readFile(filePath);\n\t\t\t\t\tactualServerBinaryGzipped = Bun.gzipSync(content).length;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} catch {}\n\n\t// Helper function to create inline SVG icons (Tabler Icons style, terminal aesthetic)\n\tconst icon = (name: string, color = '#0f0', size = 16) => {\n\t\tconst icons: Record<string, string> = {\n\t\t\tchart: '<path d=\"M3 3v18h18\"/><path d=\"M7 12l4-4 4 4 6-6\"/>',\n\t\t\tworld:\n\t\t\t\t'<path d=\"M21 12a9 9 0 1 1-6.219-8.56\"/><path d=\"M3 9v6a6 6 0 0 0 6 6h6\"/><path d=\"M21 9v6a6 6 0 0 1-6 6H9\"/>',\n\t\t\tsearch: '<circle cx=\"10\" cy=\"10\" r=\"7\"/><path d=\"m21 21-6-6\"/>',\n\t\t\ttreemap:\n\t\t\t\t'<path d=\"M3 3v18h18\"/><path d=\"M3 9h8v12H3z\"/><path d=\"M13 9h8v6h-8z\"/><path d=\"M13 17h8v4h-8z\"/>',\n\t\t\tpackage:\n\t\t\t\t'<path d=\"M12 3v20\"/><path d=\"M2 7h20v14H2z\"/><path d=\"M2 7l10-4 10 4\"/>',\n\t\t\tserver:\n\t\t\t\t'<path d=\"M4 5h16\"/><path d=\"M4 9h16\"/><path d=\"M4 13h16\"/><path d=\"M4 17h16\"/><path d=\"M6 3v18\"/><path d=\"M18 3v18\"/>',\n\t\t};\n\t\tconst path = icons[name] || icons.chart;\n\t\treturn `<svg width=\"${size}\" height=\"${size}\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"${color}\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" style=\"display: inline-block; vertical-align: middle; margin-right: 0.4rem;\">${path}</svg>`;\n\t};\n\n\tconst html = `<!DOCTYPE html>\n<html lang=\"en\">\n<head>\n\t<meta charset=\"UTF-8\">\n\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n\t<title>Reroute Bundle Analysis</title>\n\t<script src=\"https://d3js.org/d3.v7.min.js\"></script>\n\t<style>\n\t\t* {\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t\tbody {\n\t\t\tfont-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', 'Droid Sans Mono', 'Source Code Pro', monospace;\n\t\t\tbackground: #000;\n\t\t\tcolor: #0f0;\n\t\t\tpadding: 1.5rem;\n\t\t\tline-height: 1.5;\n\t\t\tfont-size: 13px;\n\t\t}\n\t\t.container {\n\t\t\tmax-width: 1600px;\n\t\t\tmargin: 0 auto;\n\t\t}\n\t\th1 {\n\t\t\tcolor: #0f0;\n\t\t\tmargin-bottom: 0.5rem;\n\t\t\tfont-size: 1.25rem;\n\t\t\tfont-weight: 600;\n\t\t\tletter-spacing: 0.5px;\n\t\t}\n\t\th1::before {\n\t\t\tcontent: '$ ';\n\t\t\tcolor: #666;\n\t\t}\n\t\t.sticky-search {\n\t\t\tposition: sticky;\n\t\t\ttop: 0;\n\t\t\tbackground: #000;\n\t\t\tz-index: 100;\n\t\t\tpadding: 1rem 0;\n\t\t\tmargin: 0;\n\t\t}\n\t\t.search-row {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-columns: 1fr auto;\n\t\t\tgap: 0.75rem;\n\t\t\talign-items: start;\n\t\t\theight: 33px;\n\t\t}\n\t\t.search-container {\n\t\t\tposition: relative;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\tgap: 0.5rem;\n\t\t}\n\t\t.search-input-wrapper {\n\t\t\tposition: relative;\n\t\t}\n\t\t.search-clear {\n\t\t\tposition: absolute;\n\t\t\tright: 0.5rem;\n\t\t\ttop: 50%;\n\t\t\ttransform: translateY(-50%);\n\t\t\tbackground: none;\n\t\t\tborder: none;\n\t\t\tcolor: #666;\n\t\t\tcursor: pointer;\n\t\t\tpadding: 0.25rem;\n\t\t\tdisplay: none;\n\t\t\talign-items: center;\n\t\t\tjustify-content: center;\n\t\t\tfont-size: 17px;\n\t\t\tline-height: 1;\n\t\t}\n\t\t.search-clear:hover {\n\t\t\tcolor: #0f0;\n\t\t}\n\t\t.search-clear.visible {\n\t\t\tdisplay: flex;\n\t\t}\n\t\t.search-input {\n\t\t\twidth: 100%;\n\t\t\tpadding: 0.5rem 2rem 0.5rem 0.75rem;\n\t\t\tbackground: #111;\n\t\t\tborder: 1px solid #333;\n\t\t\tcolor: #0f0;\n\t\t\tfont-size: 13px;\n\t\t\tfont-family: inherit;\n\t\t}\n\t\t.note {\n\t\t\tcolor: #666;\n\t\t\tfont-size: 12px;\n\t\t\tpadding: 0.75rem;\n\t\t\tbackground: #111;\n\t\t\tborder-left: 2px solid #333;\n\t\t}\n\t\t.note strong {\n\t\t\tcolor: #0f0;\n\t\t}\n\t\t@media (max-width: 640px) {\n\t\t\t.search-row {\n\t\t\t\tgrid-template-columns: 1fr;\n\t\t\t\tgap: 0.5rem;\n\t\t\t}\n\t\t}\n\t\t.search-input:focus {\n\t\t\toutline: none;\n\t\t\tborder-color: #0f0;\n\t\t}\n\t\t.search-input::placeholder {\n\t\t\tcolor: #666;\n\t\t}\n\t\t.search-stats {\n\t\t\tmargin-bottom: 1rem;\n\t\t\tfont-size: 12px;\n\t\t\tcolor: #666;\n\t\t}\n\t\t.search-actions {\n\t\t\tdisplay: flex;\n\t\t\tgap: 0.5rem;\n\t\t\talign-items: stretch;\n\t\t}\n\t\t@media (max-width: 640px) {\n\t\t\t.search-actions {\n\t\t\t\twidth: 100%;\n\t\t\t}\n\t\t}\n\t\t.checkbox-label {\n\t\t\tpadding: 0.5rem 0.75rem;\n\t\t\tbackground: #111;\n\t\t\tborder: 1px solid #333;\n\t\t\tcolor: #0f0;\n\t\t\tfont-size: 13px;\n\t\t\tfont-family: inherit;\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tgap: 0.5rem;\n\t\t\tuser-select: none;\n\t\t}\n\t\t.checkbox-label:hover {\n\t\t\tbackground: #1a1a1a;\n\t\t\tborder-color: #0f0;\n\t\t}\n\t\t.checkbox-label input[type=\"checkbox\"] {\n\t\t\tcursor: pointer;\n\t\t\twidth: 14px;\n\t\t\theight: 14px;\n\t\t\taccent-color: #0f0;\n\t\t}\n\t\t@media (max-width: 640px) {\n\t\t\t.checkbox-label {\n\t\t\t\tflex: 1;\n\t\t\t}\n\t\t}\n\t\t.btn-toggle {\n\t\t\tpadding: 0.5rem 0.75rem;\n\t\t\tbackground: #111;\n\t\t\tborder: 1px solid #333;\n\t\t\tcolor: #0f0;\n\t\t\tfont-size: 13px;\n\t\t\tfont-family: inherit;\n\t\t\tcursor: pointer;\n\t\t\twhite-space: nowrap;\n\t\t\tdisplay: flex;\n\t\t\talign-items: center;\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t\t.btn-toggle:hover {\n\t\t\tbackground: #1a1a1a;\n\t\t\tborder-color: #0f0;\n\t\t}\n\t\t@media (max-width: 640px) {\n\t\t\t.btn-toggle {\n\t\t\t\tflex: 1;\n\t\t\t}\n\t\t}\n\t\t.hidden {\n\t\t\tdisplay: none !important;\n\t\t}\n\t\t.section {\n\t\t\tmargin-bottom: 1.5rem;\n\t\t\tborder: 1px solid #333;\n\t\t\tbackground: #0a0a0a;\n\t\t}\n\t\t.section-header {\n\t\t\tpadding: 0.75rem 1rem;\n\t\t\tbackground: #111;\n\t\t\tborder-bottom: 1px solid #333;\n\t\t\tcursor: pointer;\n\t\t\tuser-select: none;\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: space-between;\n\t\t\talign-items: center;\n\t\t}\n\t\t.section-header:hover {\n\t\t\tbackground: #151515;\n\t\t}\n\t\t.section-title {\n\t\t\tfont-size: 14px;\n\t\t\tfont-weight: 600;\n\t\t\tcolor: #0f0;\n\t\t}\n\t\t.section-title.server {\n\t\t\tcolor: #666;\n\t\t}\n\t\t.section-meta {\n\t\t\tcolor: #666;\n\t\t\tfont-size: 12px;\n\t\t}\n\t\t.section-toggle {\n\t\t\tcolor: #666;\n\t\t\tfont-size: 12px;\n\t\t}\n\t\t.section-content {\n\t\t\tpadding: 1rem;\n\t\t}\n\t\t.section.collapsed .section-content {\n\t\t\tdisplay: none;\n\t\t}\n\t\t.section.collapsed .section-toggle::before {\n\t\t\tcontent: '▶ ';\n\t\t}\n\t\t.section-toggle::before {\n\t\t\tcontent: '▼ ';\n\t\t}\n\t\t.stats-grid {\n\t\t\tdisplay: grid;\n\t\t\tgrid-template-columns: repeat(auto-fit, minmax(140px, 1fr));\n\t\t\tgap: 0.5rem;\n\t\t\tmargin-bottom: 1rem;\n\t\t}\n\t\t.stat {\n\t\t\tbackground: #111;\n\t\t\tpadding: 0.5rem 0.75rem;\n\t\t\tborder: 1px solid #222;\n\t\t}\n\t\t.stat-label {\n\t\t\tfont-size: 11px;\n\t\t\tcolor: #666;\n\t\t\tmargin-bottom: 0.25rem;\n\t\t}\n\t\t.stat-value {\n\t\t\tfont-size: 16px;\n\t\t\tfont-weight: 600;\n\t\t\tcolor: #0f0;\n\t\t}\n\t\t.stat-value.server {\n\t\t\tcolor: #666;\n\t\t}\n\t\t.dep-list {\n\t\t\tlist-style: none;\n\t\t\tmargin: 0;\n\t\t\tpadding: 0;\n\t\t}\n\t\t.dep-item {\n\t\t\tpadding: 0.4rem 0;\n\t\t\tborder-bottom: 1px solid #1a1a1a;\n\t\t\tdisplay: flex;\n\t\t\tjustify-content: space-between;\n\t\t\talign-items: center;\n\t\t\tfont-size: 12px;\n\t\t}\n\t\t.dep-item:last-child {\n\t\t\tborder-bottom: none;\n\t\t}\n\t\t.dep-name {\n\t\t\tcolor: #0f0;\n\t\t\tfont-weight: 500;\n\t\t}\n\t\t.dep-name.server {\n\t\t\tcolor: #666;\n\t\t}\n\t\t.dep-size {\n\t\t\tcolor: #666;\n\t\t\tfont-size: 11px;\n\t\t}\n\t\t.dep-children {\n\t\t\tmargin-left: 1.5rem;\n\t\t\tmargin-top: 0.25rem;\n\t\t}\n\t\t.dep-child {\n\t\t\tcolor: #666;\n\t\t\tfont-size: 11px;\n\t\t\tpadding: 0.2rem 0;\n\t\t}\n\t\t.load-more {\n\t\t\tmargin-top: 0.75rem;\n\t\t\tpadding: 0.4rem 0.75rem;\n\t\t\tbackground: #111;\n\t\t\tborder: 1px solid #333;\n\t\t\tcolor: #0f0;\n\t\t\tcursor: pointer;\n\t\t\tfont-family: inherit;\n\t\t\tfont-size: 12px;\n\t\t\twidth: 100%;\n\t\t}\n\t\t.load-more:hover {\n\t\t\tbackground: #1a1a1a;\n\t\t\tborder-color: #0f0;\n\t\t}\n\t\t.treemap-container {\n\t\t\twidth: 100%;\n\t\t\toverflow: visible;\n\t\t}\n\t\t.empty {\n\t\t\ttext-align: center;\n\t\t\tpadding: 2rem;\n\t\t\tcolor: #666;\n\t\t\tfont-size: 12px;\n\t\t}\n\t\t.treemap-cell {\n\t\t\tstroke: #111;\n\t\t\tstroke-width: 1px;\n\t\t\tcursor: pointer;\n\t\t\ttransition: all 0.2s;\n\t\t}\n\t\t.treemap-cell:hover {\n\t\t\tstroke: #0f0;\n\t\t\tstroke-width: 2px;\n\t\t}\n\t\t.treemap-label {\n\t\t\tfill: #0f0;\n\t\t\tfont-size: 10px;\n\t\t\tpointer-events: none;\n\t\t\ttext-anchor: middle;\n\t\t\tfont-weight: 500;\n\t\t}\n\t\t.treemap-tooltip {\n\t\t\tposition: absolute;\n\t\t\tbackground: #000;\n\t\t\tborder: 1px solid #0f0;\n\t\t\tpadding: 0.5rem 0.75rem;\n\t\t\tpointer-events: none;\n\t\t\topacity: 0;\n\t\t\ttransition: opacity 0.15s;\n\t\t\tz-index: 1000;\n\t\t\tfont-size: 11px;\n\t\t}\n\t\t.treemap-tooltip.visible {\n\t\t\topacity: 1;\n\t\t}\n\t\t.tooltip-name {\n\t\t\tfont-weight: 600;\n\t\t\tcolor: #0f0;\n\t\t\tmargin-bottom: 0.25rem;\n\t\t}\n\t\t.tooltip-path {\n\t\t\tcolor: #666;\n\t\t\tfont-size: 10px;\n\t\t\tmargin-bottom: 0.25rem;\n\t\t\tword-break: break-all;\n\t\t}\n\t\t.tooltip-size {\n\t\t\tcolor: #0f0;\n\t\t\tfont-size: 11px;\n\t\t}\n\t</style>\n</head>\n<body>\n\t<div class=\"container\">\n\t\t<h1>reroute analyze</h1>\n\n\t\t<div class=\"sticky-search\">\n\t\t\t<div class=\"search-row\">\n\t\t\t\t<div class=\"search-container\">\n\t\t\t\t\t<div class=\"search-input-wrapper\">\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tid=\"search-input\"\n\t\t\t\t\t\t\tclass=\"search-input\"\n\t\t\t\t\t\t\tplaceholder=\"search dependencies (e.g., 'react', 'scheduler', 'sharp')...\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<button class=\"search-clear\" id=\"search-clear\" type=\"button\" aria-label=\"Clear search\">×</button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"search-actions\">\n\t\t\t\t\t<button class=\"btn-toggle\" id=\"expand-all\">expand</button>\n\t\t\t\t\t<button class=\"btn-toggle\" id=\"collapse-all\">collapse</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"section\">\n\t\t\t<div class=\"section-header\">\n\t\t\t\t<div>\n\t\t\t\t\t<div class=\"section-title\">${icon('chart')}Summary</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class=\"section-content\">\n\t\t\t\t<div class=\"stats-grid\">\n\t\t\t\t\t<div class=\"stat\">\n\t\t\t\t\t\t<div class=\"stat-label\">browser dependencies</div>\n\t\t\t\t\t\t<div class=\"stat-value\">${(() => {\n\t\t\t\t\t\t\tconst nodeModules = browserDepTree?.root.children?.find(\n\t\t\t\t\t\t\t\t(c) => c.name === 'node_modules',\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn nodeModules?.children?.length || 0;\n\t\t\t\t\t\t})()}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"stat\">\n\t\t\t\t\t\t<div class=\"stat-label\">browser bundle</div>\n\t\t\t\t\t\t<div class=\"stat-value\">${browserInfo ? formatBytes(browserInfo.size) : 'N/A'}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"stat\">\n\t\t\t\t\t\t<div class=\"stat-label\">server dependencies</div>\n\t\t\t\t\t\t<div class=\"stat-value\">${(() => {\n\t\t\t\t\t\t\tconst nodeModules = depTree?.root.children?.find(\n\t\t\t\t\t\t\t\t(c) => c.name === 'node_modules',\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\treturn nodeModules?.children?.length || 0;\n\t\t\t\t\t\t})()}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"stat\">\n\t\t\t\t\t\t<div class=\"stat-label\">final server binary</div>\n\t\t\t\t\t\t<div class=\"stat-value\">${actualServerBinarySize ? formatBytes(actualServerBinarySize) : 'N/A'}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<!-- ═══════════════════════════════════════════════════════════ -->\n\t\t<!-- BROWSER SECTION (what users download) -->\n\t\t<!-- ═══════════════════════════════════════════════════════════ -->\n\n\t\t${\n\t\t\tbrowserInfo\n\t\t\t\t? `\n\t\t<div class=\"section\">\n\t\t\t<div class=\"section-header\" onclick=\"this.parentElement.classList.toggle('collapsed')\">\n\t\t\t\t<div>\n\t\t\t\t\t<div class=\"section-title\">${icon('world')}browser bundle</div>\n\t\t\t\t\t<div class=\"section-meta\">${browserInfo.name} · ${formatBytes(browserInfo.size)} raw · ${formatBytes(browserInfo.gzippedSize)} gzipped</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"section-toggle\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"section-content\">\n\t\t\t\t<div class=\"stats-grid\">\n\t\t\t\t\t<div class=\"stat\">\n\t\t\t\t\t\t<div class=\"stat-label\">raw size</div>\n\t\t\t\t\t\t<div class=\"stat-value\">${formatBytes(browserInfo.size)}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"stat\">\n\t\t\t\t\t\t<div class=\"stat-label\">gzipped</div>\n\t\t\t\t\t\t<div class=\"stat-value\">${formatBytes(browserInfo.gzippedSize)}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"stat\">\n\t\t\t\t\t\t<div class=\"stat-label\">compression</div>\n\t\t\t\t\t\t<div class=\"stat-value\">${((1 - browserInfo.gzippedSize / browserInfo.size) * 100).toFixed(1)}%</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"stat\">\n\t\t\t\t\t\t<div class=\"stat-label\">3G transfer</div>\n\t\t\t\t\t\t<div class=\"stat-value\">${(() => {\n\t\t\t\t\t\t\tconst t = browserInfo.gzippedSize / 1024 / (1.6 * 128);\n\t\t\t\t\t\t\treturn t >= 1 ? `${t.toFixed(1)}s` : `${(t * 1000).toFixed(0)}ms`;\n\t\t\t\t\t\t})()}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"stat\">\n\t\t\t\t\t\t<div class=\"stat-label\">4G transfer</div>\n\t\t\t\t\t\t<div class=\"stat-value\">${(() => {\n\t\t\t\t\t\t\tconst t = browserInfo.gzippedSize / 1024 / (9 * 128);\n\t\t\t\t\t\t\treturn t >= 1 ? `${t.toFixed(1)}s` : `${(t * 1000).toFixed(0)}ms`;\n\t\t\t\t\t\t})()}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"stat\">\n\t\t\t\t\t\t<div class=\"stat-label\">5G transfer</div>\n\t\t\t\t\t\t<div class=\"stat-value\">${(() => {\n\t\t\t\t\t\t\tconst t = browserInfo.gzippedSize / 1024 / (50 * 128);\n\t\t\t\t\t\t\treturn t >= 1 ? `${t.toFixed(1)}s` : `${(t * 1000).toFixed(0)}ms`;\n\t\t\t\t\t\t})()}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t`\n\t\t\t\t: ''\n\t\t}\n\t\t${\n\t\t\tbrowserDepTree\n\t\t\t\t? `\n\t\t<div class=\"section collapsed\">\n\t\t\t<div class=\"section-header\" onclick=\"this.parentElement.classList.toggle('collapsed')\">\n\t\t\t\t<div>\n\t\t\t\t\t<div class=\"section-title\">${icon('search')}browser dependencies</div>\n\t\t\t\t\t<div class=\"section-meta\">dependency breakdown</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"section-toggle\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"section-content\">\n\t\t\t\t<div id=\"browser-deps-list\"></div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"section collapsed\">\n\t\t\t<div class=\"section-header\" onclick=\"this.parentElement.classList.toggle('collapsed')\">\n\t\t\t\t<div>\n\t\t\t\t\t<div class=\"section-title\">${icon('treemap')}browser treemap</div>\n\t\t\t\t\t<div class=\"section-meta\">visual dependency breakdown</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"section-toggle\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"section-content\">\n\t\t\t\t<div class=\"treemap-container\" id=\"browser-treemap\"></div>\n\t\t\t</div>\n\t\t</div>\n\t\t`\n\t\t\t\t: ''\n\t\t}\n\n\t\t${Object.entries(stats.byCollection)\n\t\t\t.filter(([collection]) => collection !== 'binaries')\n\t\t\t.map(([collection, collectionBundles]) => {\n\t\t\t\tconst collectionTotal = collectionBundles.reduce(\n\t\t\t\t\t(sum, b) => sum + b.size,\n\t\t\t\t\t0,\n\t\t\t\t);\n\t\t\t\tconst collectionGzipped = collectionBundles.reduce(\n\t\t\t\t\t(sum, b) => sum + b.gzippedSize,\n\t\t\t\t\t0,\n\t\t\t\t);\n\t\t\t\treturn `\n\t\t<div class=\"section collapsed\">\n\t\t\t<div class=\"section-header\" onclick=\"this.parentElement.classList.toggle('collapsed')\">\n\t\t\t\t<div>\n\t\t\t\t\t<div class=\"section-title\">${icon('package')}${collection} chunks</div>\n\t\t\t\t\t<div class=\"section-meta\">${collectionBundles.length} files · ${formatBytes(collectionTotal)} raw · ${formatBytes(collectionGzipped)} gzipped</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"section-toggle\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"section-content\">\n\t\t\t\t<ul class=\"dep-list\" id=\"${collection}-chunks-list\">\n\t\t\t\t\t${collectionBundles\n\t\t\t\t\t\t.sort((a, b) => b.size - a.size)\n\t\t\t\t\t\t.slice(0, 10)\n\t\t\t\t\t\t.map(\n\t\t\t\t\t\t\t(bundle) => `\n\t\t\t\t\t<li class=\"dep-item\">\n\t\t\t\t\t\t<span class=\"dep-name\">${bundle.name}</span>\n\t\t\t\t\t\t<span class=\"dep-size\">${formatBytes(bundle.size)} · ${formatBytes(bundle.gzippedSize)} gz</span>\n\t\t\t\t\t</li>\n\t\t\t\t\t`,\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.join('')}\n\t\t\t\t</ul>\n\t\t\t\t${\n\t\t\t\t\tcollectionBundles.length > 10\n\t\t\t\t\t\t? `\n\t\t\t\t<button class=\"load-more\" onclick=\"loadMore${collection}()\">load ${collectionBundles.length - 10} more...</button>\n\t\t\t\t<script>\n\t\t\t\t\tlet ${collection}Loaded = false;\n\t\t\t\t\tfunction loadMore${collection}() {\n\t\t\t\t\t\tif (${collection}Loaded) return;\n\t\t\t\t\t\t${collection}Loaded = true;\n\t\t\t\t\t\tconst list = document.getElementById('${collection}-chunks-list');\n\t\t\t\t\t\tconst remaining = ${JSON.stringify(collectionBundles.slice(10).map((b) => ({ name: b.name, size: b.size, gzippedSize: b.gzippedSize })))};\n\t\t\t\t\t\tfor (const bundle of remaining) {\n\t\t\t\t\t\t\tconst li = document.createElement('li');\n\t\t\t\t\t\t\tli.className = 'dep-item';\n\t\t\t\t\t\t\tli.innerHTML = '<span class=\"dep-name\">' + bundle.name + '</span><span class=\"dep-size\">' + formatBytes(bundle.size) + ' · ' + formatBytes(bundle.gzippedSize) + ' gz</span>';\n\t\t\t\t\t\t\tlist.appendChild(li);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tevent.target.remove();\n\t\t\t\t\t}\n\t\t\t\t</script>\n\t\t\t\t`\n\t\t\t\t\t\t: ''\n\t\t\t\t}\n\t\t\t</div>\n\t\t</div>\n\t\t`;\n\t\t\t})\n\t\t\t.join('')}\n\n\t\t<!-- ═══════════════════════════════════════════════════════════ -->\n\t\t<!-- SERVER SECTION (not shipped to browser) -->\n\t\t<!-- ═══════════════════════════════════════════════════════════ -->\n\n\t\t${\n\t\t\tactualServerBinarySize\n\t\t\t\t? `\n\t\t<div class=\"section collapsed\">\n\t\t\t<div class=\"section-header\" onclick=\"this.parentElement.classList.toggle('collapsed')\">\n\t\t\t\t<div>\n\t\t\t\t\t<div class=\"section-title server\">${icon('server', '#666')}final server binary</div>\n\t\t\t\t\t<div class=\"section-meta\">standalone executable · ${formatBytes(actualServerBinarySize)} · not shipped to browser</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"section-toggle\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"section-content\">\n\t\t\t\t<div class=\"stats-grid\">\n\t\t\t\t\t<div class=\"stat\">\n\t\t\t\t\t\t<div class=\"stat-label\">binary size</div>\n\t\t\t\t\t\t<div class=\"stat-value server\">${formatBytes(actualServerBinarySize)}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t${\n\t\t\t\t\t\tactualServerBinaryGzipped\n\t\t\t\t\t\t\t? `\n\t\t\t\t\t<div class=\"stat\">\n\t\t\t\t\t\t<div class=\"stat-label\">gzipped</div>\n\t\t\t\t\t\t<div class=\"stat-value server\">${formatBytes(actualServerBinaryGzipped)}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"stat\">\n\t\t\t\t\t\t<div class=\"stat-label\">compression</div>\n\t\t\t\t\t\t<div class=\"stat-value server\">${((1 - actualServerBinaryGzipped / actualServerBinarySize) * 100).toFixed(1)}%</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t`\n\t\t\t\t\t\t\t: ''\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t`\n\t\t\t\t: ''\n\t\t}\n\t\t${\n\t\t\tdepTree\n\t\t\t\t? `\n\t\t<div class=\"section collapsed\">\n\t\t\t<div class=\"section-header\" onclick=\"this.parentElement.classList.toggle('collapsed')\">\n\t\t\t\t<div>\n\t\t\t\t\t<div class=\"section-title server\">${icon('search', '#666')}server dependencies</div>\n\t\t\t\t\t<div class=\"section-meta\">server-side only · not shipped to browser</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"section-toggle\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"section-content\">\n\t\t\t\t<div id=\"server-deps-list\"></div>\n\t\t\t</div>\n\t\t</div>\n\n\t\t<div class=\"section collapsed\">\n\t\t\t<div class=\"section-header\" onclick=\"this.parentElement.classList.toggle('collapsed')\">\n\t\t\t\t<div>\n\t\t\t\t\t<div class=\"section-title server\">${icon('treemap', '#666')}server treemap</div>\n\t\t\t\t\t<div class=\"section-meta\">visual dependency breakdown</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"section-toggle\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"section-content\">\n\t\t\t\t<div class=\"treemap-container\" id=\"server-treemap\"></div>\n\t\t\t</div>\n\t\t</div>\n\t\t`\n\t\t\t\t: ''\n\t\t}\n\n\t\t${bundles.length === 0 ? '<div class=\"empty\">no bundles found. run <code>reroute gen</code> or <code>reroute build</code> first.</div>' : ''}\n\t</div>\n\t<div class=\"treemap-tooltip\" id=\"tooltip\">\n\t\t<div class=\"tooltip-name\" id=\"tooltip-name\"></div>\n\t\t<div class=\"tooltip-path\" id=\"tooltip-path\"></div>\n\t\t<div class=\"tooltip-size\" id=\"tooltip-size\"></div>\n\t</div>\n\t${\n\t\tbrowserDepTree || depTree\n\t\t\t? `\n\t<script>\n\t\tconst browserDepTree = ${browserDepTree ? JSON.stringify(browserDepTree) : 'null'};\n\t\tconst serverDepTree = ${depTree ? JSON.stringify(depTree) : 'null'};\n\t\tconst formatBytes = ${formatBytes.toString()};\n\n\t\tfunction cleanPath(path) {\n\t\t\tif (!path) return '';\n\t\t\tconst nodeModulesIdx = path.indexOf('node_modules');\n\t\t\tif (nodeModulesIdx === -1) return path;\n\t\t\treturn path.substring(nodeModulesIdx);\n\t\t}\n\n\t\tfunction convertNode(node) {\n\t\t\treturn {\n\t\t\t\tname: node.name,\n\t\t\t\tpath: node.path,\n\t\t\t\tsize: node.size,\n\t\t\t\tchildren: node.children && node.children.length > 0 ? node.children.map(convertNode) : null\n\t\t\t};\n\t\t}\n\n\t\tfunction renderDepTreemap(tree, containerId) {\n\t\t\tconst container = d3.select(containerId);\n\t\t\tcontainer.selectAll(\"*\").remove();\n\t\t\tconst width = container.node()?.clientWidth || 1200;\n\n\t\t\tconst tooltip = d3.select(\"#tooltip\");\n\n\t\t\tconst root = d3.hierarchy(convertNode(tree.root))\n\t\t\t\t.sum(d => d.size || 0)\n\t\t\t\t.sort((a, b) => (b.value || 0) - (a.value || 0));\n\n\t\t\t// Calculate height based on data - use aspect ratio that works well for treemaps\n\t\t\t// More items = taller treemap, but cap at reasonable max\n\t\t\tconst leafCount = root.leaves().length;\n\t\t\tconst baseHeight = Math.max(400, Math.min(1200, width * 0.6));\n\t\t\tconst height = Math.min(baseHeight + (leafCount * 2), width * 1.2);\n\n\t\t\tconst svg = container.append(\"svg\")\n\t\t\t\t.attr(\"width\", width)\n\t\t\t\t.attr(\"height\", height);\n\n\t\t\tconst treemap = d3.treemap()\n\t\t\t\t.size([width, height])\n\t\t\t\t.padding(2)\n\t\t\t\t.round(true);\n\n\t\t\ttreemap(root);\n\n\t\t\tfunction hashString(str) {\n\t\t\t\tlet h = 0;\n\t\t\t\tfor (let i = 0; i < str.length; i++) {\n\t\t\t\t\th = ((h << 5) - h + str.charCodeAt(i)) | 0;\n\t\t\t\t}\n\t\t\t\treturn Math.abs(h);\n\t\t\t}\n\t\t\tfunction getPackageName(d) {\n\t\t\t\tconst p = d.data.path || '';\n\t\t\t\tif (!p.includes('node_modules')) return null;\n\t\t\t\tconst idx = p.lastIndexOf('node_modules/');\n\t\t\t\tif (idx === -1) return null;\n\t\t\t\tconst after = p.slice(idx + 'node_modules/'.length);\n\t\t\t\t// Handle @scope/package or package\n\t\t\t\tif (after.startsWith('@')) {\n\t\t\t\t\tconst parts = after.split('/');\n\t\t\t\t\treturn parts.length >= 2 ? parts[0] + '/' + parts[1] : after;\n\t\t\t\t}\n\t\t\t\treturn after.split('/')[0];\n\t\t\t}\n\n\t\t\t// Terminal-style colors\n\t\t\tconst colorCache = {};\n\t\t\tfunction colorFor(d) {\n\t\t\t\tconst p = d.data.path || '';\n\t\t\t\tif (p.includes('node_modules')) {\n\t\t\t\t\tconst pkg = getPackageName(d) || 'unknown';\n\n\t\t\t\t\tif (!colorCache[pkg]) {\n\t\t\t\t\t\tconst hash = hashString(pkg);\n\t\t\t\t\t\t// Shades of green for terminal aesthetic\n\t\t\t\t\t\tconst brightness = 40 + (hash % 40);\n\t\t\t\t\t\tcolorCache[pkg] = 'rgb(0, ' + brightness + ', 0)';\n\t\t\t\t\t}\n\n\t\t\t\t\treturn colorCache[pkg];\n\t\t\t\t}\n\t\t\t\t// Brighter green for local src files\n\t\t\t\tconst depth = Math.min(d.depth, 4);\n\t\t\t\tconst brightness = 80 + depth * 30;\n\t\t\t\treturn 'rgb(0, ' + Math.min(255, brightness) + ', 0)';\n\t\t\t}\n\n\t\t\tconst cell = svg.selectAll(\"g\")\n\t\t\t\t.data(root.leaves())\n\t\t\t\t.enter()\n\t\t\t\t.append(\"g\")\n\t\t\t\t.attr(\"transform\", d => \\`translate(\\${d.x0},\\${d.y0})\\`);\n\n\t\t\tcell.append(\"rect\")\n\t\t\t\t.attr(\"class\", \"treemap-cell\")\n\t\t\t\t.attr(\"width\", d => d.x1 - d.x0)\n\t\t\t\t.attr(\"height\", d => d.y1 - d.y0)\n\t\t\t\t.attr(\"fill\", colorFor)\n\t\t\t\t.on(\"mouseover\", function(event, d) {\n\t\t\t\t\td3.select(this).attr(\"stroke\", \"#0f0\").attr(\"stroke-width\", 2);\n\t\t\t\t\ttooltip.select(\"#tooltip-name\").text(d.data.name);\n\t\t\t\t\ttooltip.select(\"#tooltip-path\").text(cleanPath(d.data.path || ''));\n\t\t\t\t\ttooltip.select(\"#tooltip-size\").text(formatBytes(d.value));\n\t\t\t\t\ttooltip.classed(\"visible\", true);\n\t\t\t\t})\n\t\t\t\t.on(\"mousemove\", function(event) {\n\t\t\t\t\ttooltip.style(\"left\", (event.pageX + 10) + \"px\")\n\t\t\t\t\t .style(\"top\", (event.pageY - 10) + \"px\");\n\t\t\t\t})\n\t\t\t\t.on(\"mouseout\", function() {\n\t\t\t\t\td3.select(this).attr(\"stroke\", \"#111\").attr(\"stroke-width\", 1);\n\t\t\t\t\ttooltip.classed(\"visible\", false);\n\t\t\t\t});\n\n\t\t\t// Labels on cells - show first letter for small cells, truncated text for larger ones\n\t\t\tconst labels = cell.filter(d => {\n\t\t\t\tconst w = d.x1 - d.x0;\n\t\t\t\tconst h = d.y1 - d.y0;\n\t\t\t\t// Show label if cell is at least 10px wide and 10px tall (enough for first letter)\n\t\t\t\treturn w > 10 && h > 10;\n\t\t\t})\n\t\t\t\t.append(\"text\")\n\t\t\t\t.attr(\"class\", \"treemap-label\")\n\t\t\t\t.attr(\"x\", d => (d.x1 - d.x0) / 2)\n\t\t\t\t.attr(\"y\", d => (d.y1 - d.y0) / 2)\n\t\t\t\t.style(\"text-anchor\", \"middle\")\n\t\t\t\t.style(\"dominant-baseline\", \"middle\");\n\n\t\t\tlabels.each(function(d) {\n\t\t\t\tconst name = d.data.name;\n\t\t\t\tconst width = d.x1 - d.x0;\n\t\t\t\tconst height = d.y1 - d.y0;\n\t\t\t\tconst text = d3.select(this);\n\n\t\t\t\t// Estimate character width: ~6px per character for 10px monospace font\n\t\t\t\tconst charWidth = 6;\n\t\t\t\tconst maxChars = Math.floor((width - 8) / charWidth); // 8px padding\n\t\t\t\tconst minSize = Math.min(width, height);\n\n\t\t\t\tlet labelText = '';\n\t\t\t\tlet fontSize = 10;\n\n\t\t\t\tif (width < 20 || height < 14 || maxChars < 1) {\n\t\t\t\t\t// Very small cell - show first letter only, ensure it's readable\n\t\t\t\t\tlabelText = name.charAt(0).toUpperCase();\n\t\t\t\t\t// Scale font to fit but ensure minimum 8px for readability\n\t\t\t\t\tfontSize = Math.max(8, Math.min(12, minSize * 0.65));\n\t\t\t\t} else if (width < 30 || maxChars < 2) {\n\t\t\t\t\t// Small cell - show first letter (or 2 chars if fits)\n\t\t\t\t\tlabelText = name.substring(0, Math.min(1, name.length)).toUpperCase();\n\t\t\t\t\tfontSize = Math.max(8, Math.min(10, minSize * 0.5));\n\t\t\t\t} else if (width < 40 || maxChars < 3) {\n\t\t\t\t\t// Small-medium cell - show first 2-3 characters\n\t\t\t\t\tlabelText = name.substring(0, Math.min(2, name.length));\n\t\t\t\t\tfontSize = 9;\n\t\t\t\t} else if (maxChars >= name.length) {\n\t\t\t\t\t// Large enough - show full name\n\t\t\t\t\tlabelText = name;\n\t\t\t\t\tfontSize = 10;\n\t\t\t\t} else {\n\t\t\t\t\t// Medium cell - truncate based on available width\n\t\t\t\t\tconst truncateLength = Math.max(3, maxChars - 3); // Leave room for \"...\"\n\t\t\t\t\tlabelText = name.substring(0, truncateLength) + '...';\n\t\t\t\t\tfontSize = 10;\n\t\t\t\t}\n\n\t\t\t\ttext.style(\"font-size\", fontSize + \"px\")\n\t\t\t\t\t.text(labelText);\n\n\t\t\t\t// Show size for larger cells\n\t\t\t\tif (width > 90 && height > 32) {\n\t\t\t\t\ttext.append(\"tspan\")\n\t\t\t\t\t\t.attr(\"x\", width / 2)\n\t\t\t\t\t\t.attr(\"dy\", \"14\")\n\t\t\t\t\t\t.text(formatBytes(d.value));\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tlet currentSearchTerm = '';\n\n\t\tfunction updateSearchStats(visibleCount, totalCount) {\n\t\t\tconst stats = document.getElementById('search-stats');\n\t\t\tif (stats) {\n\t\t\t\tif (currentSearchTerm) {\n\t\t\t\t\tstats.textContent = 'Showing ' + visibleCount + ' of ' + totalCount + ' items matching \"' + currentSearchTerm + '\"';\n\t\t\t\t} else {\n\t\t\t\t\tstats.textContent = '';\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfunction filterTreemap(searchTerm) {\n\t\t\tcurrentSearchTerm = searchTerm.toLowerCase();\n\t\t\tif (!searchTerm) {\n\t\t\t\tif (browserDepTree) renderDepTreemap(browserDepTree, \"#browser-treemap\");\n\t\t\t\tif (serverDepTree) renderDepTreemap(serverDepTree, \"#server-treemap\");\n\t\t\t\tupdateSearchStats(0, 0);\n\n\t\t\t\t// Show all elements\n\t\t\t\tdocument.querySelectorAll('.section').forEach(el => el.classList.remove('hidden'));\n\t\t\t\tdocument.querySelectorAll('tbody tr').forEach(el => el.classList.remove('hidden'));\n\t\t\t\tdocument.querySelectorAll('.dep-item').forEach(el => el.classList.remove('hidden'));\n\t\t\t\tdocument.querySelectorAll('.stat').forEach(el => el.classList.remove('hidden'));\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tlet totalMatches = 0;\n\t\t\tlet totalItems = 0;\n\n\t\t// Filter treemap data\n\t\tfunction filterNode(node) {\n\t\t\t// Only match against the package/file name, not the full path\n\t\t\t// to avoid matching build directories like .reroute/\n\t\t\tconst matches = node.name.toLowerCase().includes(searchTerm);\n\n\t\t\tif (!node.children || node.children.length === 0) {\n\t\t\t\treturn matches ? { ...node } : null;\n\t\t\t}\n\n\t\t\tconst filteredChildren = node.children\n\t\t\t\t.map(child => filterNode(child))\n\t\t\t\t.filter(child => child !== null);\n\n\t\t\tif (filteredChildren.length > 0 || matches) {\n\t\t\t\treturn {\n\t\t\t\t\t...node,\n\t\t\t\t\tchildren: filteredChildren.length > 0 ? filteredChildren : undefined\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn null;\n\t\t}\n\n\t\t\tfunction countLeaves(node) {\n\t\t\t\tif (!node.children || node.children.length === 0) return 1;\n\t\t\t\treturn node.children.reduce((sum, child) => sum + countLeaves(child), 0);\n\t\t\t}\n\n\t\t\t// Filter browser treemap\n\t\t\tif (browserDepTree) {\n\t\t\t\tconst filtered = filterNode(browserDepTree.root);\n\t\t\t\tif (filtered) {\n\t\t\t\t\tconst totalLeaves = countLeaves(browserDepTree.root);\n\t\t\t\t\tconst visibleLeaves = countLeaves(filtered);\n\t\t\t\t\ttotalItems += totalLeaves;\n\t\t\t\t\ttotalMatches += visibleLeaves;\n\t\t\t\t\trenderDepTreemap({ ...browserDepTree, root: filtered }, \"#browser-treemap\");\n\t\t\t\t} else {\n\t\t\t\t\tconst elem = document.getElementById('browser-treemap');\n\t\t\t\t\tif (elem) elem.innerHTML = '<div class=\"empty\">No matches found</div>';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Filter server treemap\n\t\t\tif (serverDepTree) {\n\t\t\t\tconst filtered = filterNode(serverDepTree.root);\n\t\t\t\tif (filtered) {\n\t\t\t\t\trenderDepTreemap({ ...serverDepTree, root: filtered }, \"#server-treemap\");\n\t\t\t\t} else {\n\t\t\t\t\tconst elem = document.getElementById('server-treemap');\n\t\t\t\t\tif (elem) elem.innerHTML = '<div class=\"empty\">No matches found</div>';\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Render matching items that aren't loaded yet\n\t\t\tif (searchTerm) {\n\t\t\t\trenderMatchingDeps('browser-deps-list', searchTerm);\n\t\t\t\trenderMatchingDeps('server-deps-list', searchTerm);\n\t\t\t}\n\n\t\t\t// Filter dependency lists\n\t\t\tdocument.querySelectorAll('.dep-item').forEach(item => {\n\t\t\t\tconst packageName = item.getAttribute('data-package-name') || '';\n\t\t\t\tif (packageName.includes(searchTerm)) {\n\t\t\t\t\titem.classList.remove('hidden');\n\t\t\t\t\ttotalMatches++;\n\t\t\t\t} else {\n\t\t\t\t\titem.classList.add('hidden');\n\t\t\t\t}\n\t\t\t\ttotalItems++;\n\t\t\t});\n\n\t\t\t// Filter bundle/chunk tables\n\t\t\tdocument.querySelectorAll('tbody tr').forEach(row => {\n\t\t\t\tconst text = row.textContent.toLowerCase();\n\t\t\t\tif (text.includes(searchTerm)) {\n\t\t\t\t\trow.classList.remove('hidden');\n\t\t\t\t\ttotalMatches++;\n\t\t\t\t} else {\n\t\t\t\t\trow.classList.add('hidden');\n\t\t\t\t}\n\t\t\t\ttotalItems++;\n\t\t\t});\n\n\t\t\t// Filter section headers and content\n\t\t\tdocument.querySelectorAll('.section').forEach(section => {\n\t\t\t\t// Check if section has visible content\n\t\t\t\tconst tbody = section.querySelector('tbody');\n\t\t\t\tconst depList = section.querySelector('.dep-list');\n\t\t\t\tconst treemapContainer = section.querySelector('.treemap-container');\n\t\t\t\tconst stats = section.querySelectorAll('.stat');\n\t\t\t\tconst sectionTitle = section.querySelector('.section-title');\n\n\t\t\t\tlet hasVisibleContent = false;\n\n\t\t\t\tif (tbody) {\n\t\t\t\t\tconst visibleRows = tbody.querySelectorAll('tr:not(.hidden)');\n\t\t\t\t\thasVisibleContent = visibleRows.length > 0;\n\t\t\t\t} else if (depList) {\n\t\t\t\t\tconst visibleItems = depList.querySelectorAll('.dep-item:not(.hidden)');\n\t\t\t\t\thasVisibleContent = visibleItems.length > 0;\n\t\t\t\t} else if (treemapContainer) {\n\t\t\t\t\thasVisibleContent = !treemapContainer.querySelector('.empty');\n\t\t\t\t} else if (stats.length > 0) {\n\t\t\t\t\t// Stat sections: show if any stat matches\n\t\t\t\t\tconst statMatches = Array.from(stats).some(stat =>\n\t\t\t\t\t\tstat.textContent.toLowerCase().includes(searchTerm)\n\t\t\t\t\t);\n\t\t\t\t\thasVisibleContent = statMatches;\n\t\t\t\t} else if (sectionTitle && sectionTitle.textContent.toLowerCase().includes(searchTerm)) {\n\t\t\t\t\t// Section title matches\n\t\t\t\t\thasVisibleContent = true;\n\t\t\t\t}\n\n\t\t\t\tif (hasVisibleContent) {\n\t\t\t\t\tsection.classList.remove('hidden');\n\t\t\t\t} else {\n\t\t\t\t\tsection.classList.add('hidden');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tupdateSearchStats(totalMatches, totalItems);\n\t\t}\n\n\t\t// Setup search\n\t\tconst searchInput = document.getElementById('search-input');\n\t\tconst searchClear = document.getElementById('search-clear');\n\n\t\tfunction updateClearButton() {\n\t\t\tif (searchClear && searchInput) {\n\t\t\t\tif (searchInput.value.trim().length > 0) {\n\t\t\t\t\tsearchClear.classList.add('visible');\n\t\t\t\t} else {\n\t\t\t\t\tsearchClear.classList.remove('visible');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (searchInput) {\n\t\t\tsearchInput.addEventListener('input', (e) => {\n\t\t\t\tfilterTreemap(e.target.value);\n\t\t\t\tupdateClearButton();\n\t\t\t});\n\t\t\t// Check initial state\n\t\t\tupdateClearButton();\n\t\t}\n\n\t\tif (searchClear) {\n\t\t\tsearchClear.addEventListener('click', () => {\n\t\t\t\tif (searchInput) {\n\t\t\t\t\tsearchInput.value = '';\n\t\t\t\t\tsearchInput.focus();\n\t\t\t\t\tfilterTreemap('');\n\t\t\t\t\tupdateClearButton();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Expand/collapse all handlers\n\t\tconst expandAllBtn = document.getElementById('expand-all');\n\t\tconst collapseAllBtn = document.getElementById('collapse-all');\n\n\t\tif (expandAllBtn) {\n\t\t\texpandAllBtn.addEventListener('click', () => {\n\t\t\t\tdocument.querySelectorAll('.section.collapsed').forEach(section => {\n\t\t\t\t\tsection.classList.remove('collapsed');\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\tif (collapseAllBtn) {\n\t\t\tcollapseAllBtn.addEventListener('click', () => {\n\t\t\t\tdocument.querySelectorAll('.section:not(.collapsed)').forEach(section => {\n\t\t\t\t\t// Don't collapse the Summary section\n\t\t\t\t\tconst title = section.querySelector('.section-title');\n\t\t\t\t\tif (title && !title.textContent.includes('Summary')) {\n\t\t\t\t\t\tsection.classList.add('collapsed');\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\n\t\t// Store full packages data for search\n\t\tconst depListData = new Map();\n\n\t\t// Helper to create a dep item element\n\t\tfunction createDepItem(pkg, isServer, totalSize, bundleInfo) {\n\t\t\tconst li = document.createElement('li');\n\t\t\tli.className = 'dep-item';\n\t\t\tli.setAttribute('data-package-name', pkg.name.toLowerCase());\n\n\t\t\tconst nameSpan = document.createElement('span');\n\t\t\tnameSpan.className = isServer ? 'dep-name server' : 'dep-name';\n\t\t\tnameSpan.textContent = pkg.name;\n\n\t\t\tconst sizeSpan = document.createElement('span');\n\t\t\tsizeSpan.className = 'dep-size';\n\n\t\t\t// Estimate gzipped size using compression ratio\n\t\t\tlet sizeText = formatBytes(pkg.size);\n\t\t\tif (bundleInfo && bundleInfo.size > 0) {\n\t\t\t\tconst compressionRatio = bundleInfo.gzippedSize / bundleInfo.size;\n\t\t\t\tconst estimatedGz = Math.round(pkg.size * compressionRatio);\n\t\t\t\tsizeText += ' (' + formatBytes(estimatedGz) + ' gz)';\n\t\t\t}\n\t\t\tsizeText += ' · ' + ((pkg.size / totalSize) * 100).toFixed(1) + '%';\n\t\t\tsizeSpan.textContent = sizeText;\n\n\t\t\tli.appendChild(nameSpan);\n\t\t\tli.appendChild(sizeSpan);\n\t\t\treturn li;\n\t\t}\n\n\t\t// Populate dependency lists\n\t\tfunction populateDepList(tree, containerId, isServer, bundleInfo) {\n\t\t\tconst container = document.getElementById(containerId);\n\t\t\tif (!container || !tree) return;\n\n\t\t\tconst nodeModules = tree.root.children?.find(c => c.name === 'node_modules');\n\t\t\tif (!nodeModules || !nodeModules.children) return;\n\n\t\t\tconst packages = nodeModules.children\n\t\t\t\t.filter(pkg => pkg.size > 0)\n\t\t\t\t.sort((a, b) => b.size - a.size);\n\n\t\t\t// Store full packages data for this container\n\t\t\tdepListData.set(containerId, {\n\t\t\t\tpackages: packages,\n\t\t\t\tisServer: isServer,\n\t\t\t\ttotalSize: tree.totalSize,\n\t\t\t\tbundleInfo: bundleInfo,\n\t\t\t\tloadedCount: 0\n\t\t\t});\n\n\t\t\tconst ul = document.createElement('ul');\n\t\t\tul.className = 'dep-list';\n\n\t\t\tconst initialCount = 10;\n\t\t\tfor (let i = 0; i < Math.min(initialCount, packages.length); i++) {\n\t\t\t\tconst li = createDepItem(packages[i], isServer, tree.totalSize, bundleInfo);\n\t\t\t\tul.appendChild(li);\n\t\t\t}\n\n\t\t\tdepListData.get(containerId).loadedCount = Math.min(initialCount, packages.length);\n\n\t\t\tcontainer.appendChild(ul);\n\n\t\t\tif (packages.length > initialCount) {\n\t\t\t\tconst btn = document.createElement('button');\n\t\t\t\tbtn.className = 'load-more';\n\t\t\t\tbtn.textContent = 'load ' + (packages.length - initialCount) + ' more...';\n\t\t\t\tbtn.onclick = function() {\n\t\t\t\t\tconst data = depListData.get(containerId);\n\t\t\t\t\tconst existingItems = new Set();\n\t\t\t\t\tul.querySelectorAll('.dep-item').forEach(item => {\n\t\t\t\t\t\texistingItems.add(item.getAttribute('data-package-name'));\n\t\t\t\t\t});\n\n\t\t\t\t\tlet loaded = 0;\n\t\t\t\t\tfor (let i = 0; i < packages.length; i++) {\n\t\t\t\t\t\tconst pkg = packages[i];\n\t\t\t\t\t\tconst nameLower = pkg.name.toLowerCase();\n\t\t\t\t\t\tif (!existingItems.has(nameLower)) {\n\t\t\t\t\t\t\tconst li = createDepItem(pkg, isServer, tree.totalSize, bundleInfo);\n\t\t\t\t\t\t\tul.appendChild(li);\n\t\t\t\t\t\t\tloaded++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tdata.loadedCount = packages.length;\n\t\t\t\t\tbtn.remove();\n\t\t\t\t};\n\t\t\t\tcontainer.appendChild(btn);\n\t\t\t}\n\t\t}\n\n\t\t// Render matching items that aren't loaded yet\n\t\tfunction renderMatchingDeps(containerId, searchTerm) {\n\t\t\tconst data = depListData.get(containerId);\n\t\t\tif (!data || !searchTerm) return;\n\n\t\t\tconst container = document.getElementById(containerId);\n\t\t\tif (!container) return;\n\n\t\t\tconst ul = container.querySelector('.dep-list');\n\t\t\tif (!ul) return;\n\n\t\t\tconst searchLower = searchTerm.toLowerCase();\n\t\t\tconst existingItems = new Set();\n\t\t\tul.querySelectorAll('.dep-item').forEach(item => {\n\t\t\t\texistingItems.add(item.getAttribute('data-package-name'));\n\t\t\t});\n\n\t\t\t// Find matching packages that aren't rendered yet\n\t\t\tconst matchingPackages = data.packages.filter((pkg) => {\n\t\t\t\tconst nameLower = pkg.name.toLowerCase();\n\t\t\t\tconst matches = nameLower.includes(searchLower);\n\t\t\t\tconst notRendered = !existingItems.has(nameLower);\n\t\t\t\treturn matches && notRendered;\n\t\t\t});\n\n\t\t\t// Render matching items\n\t\t\tmatchingPackages.forEach(pkg => {\n\t\t\t\tconst li = createDepItem(pkg, data.isServer, data.totalSize, data.bundleInfo);\n\t\t\t\tul.appendChild(li);\n\t\t\t});\n\t\t}\n\n\t\t// Initial render\n\t\tconst browserInfo = ${JSON.stringify(browserInfo)};\n\t\tconst serverInfo = ${JSON.stringify(mainInfo)};\n\n\t\tif (browserDepTree) {\n\t\t\tpopulateDepList(browserDepTree, 'browser-deps-list', false, browserInfo);\n\t\t\trenderDepTreemap(browserDepTree, \"#browser-treemap\");\n\t\t}\n\t\tif (serverDepTree) {\n\t\t\tpopulateDepList(serverDepTree, 'server-deps-list', true, serverInfo);\n\t\t\trenderDepTreemap(serverDepTree, \"#server-treemap\");\n\t\t}\n\n\t\twindow.addEventListener(\"resize\", () => {\n\t\t\tif (currentSearchTerm) {\n\t\t\t\tfilterTreemap(currentSearchTerm);\n\t\t\t} else {\n\t\t\t\tif (browserDepTree) renderDepTreemap(browserDepTree, \"#browser-treemap\");\n\t\t\t\tif (serverDepTree) renderDepTreemap(serverDepTree, \"#server-treemap\");\n\t\t\t}\n\t\t});\n\n\t\t// Apply initial search if provided\n\t\tconst initialSearchTerm = ${JSON.stringify(initialSearch || '')};\n\t\tif (initialSearchTerm && searchInput) {\n\t\t\tsearchInput.value = initialSearchTerm;\n\t\t\tfilterTreemap(initialSearchTerm);\n\t\t\tupdateClearButton();\n\t\t}\n\t</script>\n\t`\n\t\t\t: ''\n\t}\n\n\t\t<div class=\"footer\">\n\t\t\t<div class=\"search-stats\" id=\"search-stats\"></div>\n\t\t\t<div class=\"note\">\n\t\t\t\t<strong>Browser</strong> bundles are shipped to users. <strong>Server</strong> binaries run on your server only.\n\t\t\t</div>\n\t\t\t${\n\t\t\t\tmainInfo\n\t\t\t\t\t? `\n\t\t\t<div class=\"note\" style=\"margin-top: 0.5rem;\">\n\t\t\t\t<strong>Final Server Binary</strong> is a standalone executable that includes the Bun runtime, your application code, and all dependencies. This allows it to run without requiring Node.js or Bun to be installed on the deployment server.\n\t\t\t</div>\n\t\t\t`\n\t\t\t\t\t: ''\n\t\t\t}\n\t\t</div>\n\t</div>\n</body>\n</html>`;\n\n\treturn html;\n}\n\nasync function printConsoleReport(\n\tstats: BundleStats,\n\tdepTree?: DepTree | null,\n\tmainInfo?: { name: string; size: number; gzippedSize: number } | null,\n\tbrowserDepTree?: DepTree | null,\n\tbrowserInfo?: { name: string; size: number; gzippedSize: number } | null,\n\tfullOutput = false,\n): Promise<void> {\n\tconsole.log(\n\t\tcolorizeLogPrefixAnsi('[reroute/analyze] Bundle Analysis Report\\n'),\n\t);\n\n\t// Print helpful note about server vs browser bundles\n\tif (mainInfo || browserInfo) {\n\t\tconsole.log(\n\t\t\t'\\x1b[90mNote: Browser bundles are shipped to users. Server binaries run on your server only.\\x1b[0m\\n',\n\t\t);\n\t}\n\n\t// ${String.fromCharCode(0x2501).repeat(1)}\n\t// BROWSER SECTION (what users download)\n\t// ${String.fromCharCode(0x2501).repeat(1)}\n\n\tif (browserInfo) {\n\t\tconsole.log(\n\t\t\t`\\x1b[1m\\x1b[36m${String.fromCharCode(0x2501).repeat(1)}\\x1b[0m`,\n\t\t);\n\t\tconsole.log(\n\t\t\t`\\x1b[1m\\x1b[36mBrowser Bundle: ${browserInfo.name}\\x1b[0m \\x1b[32m(shipped to browser)\\x1b[0m`,\n\t\t);\n\t\tconsole.log(\n\t\t\t`\\x1b[1m\\x1b[36m${String.fromCharCode(0x2501).repeat(1)}\\x1b[0m\\n`,\n\t\t);\n\n\t\tconst browserTable = new Table({\n\t\t\thead: ['Metric', 'Value'],\n\t\t\tcolWidths: [25, 35],\n\t\t\tstyle: {\n\t\t\t\thead: ['cyan', 'bold'],\n\t\t\t\tborder: ['gray'],\n\t\t\t},\n\t\t\tchars: ASCII_TABLE_CHARS,\n\t\t});\n\n\t\tbrowserTable.push(\n\t\t\t['Raw Size', formatBytes(browserInfo.size)],\n\t\t\t['Gzipped', formatBytes(browserInfo.gzippedSize)],\n\t\t\t[\n\t\t\t\t'Compression Ratio',\n\t\t\t\t`${((1 - browserInfo.gzippedSize / browserInfo.size) * 100).toFixed(1)}%`,\n\t\t\t],\n\t\t);\n\n\t\tconsole.log(browserTable.toString());\n\t\tconsole.log('');\n\n\t\t// Estimate transfer time for browser bundle\n\t\tconst gzipKB = browserInfo.gzippedSize / 1024;\n\t\tconst time3G = gzipKB / (1.6 * 128); // 1.6 Mbps = ~200 KB/s\n\t\tconst time4G = gzipKB / (9 * 128); // 9 Mbps = ~1125 KB/s\n\t\tconst time5G = gzipKB / (50 * 128); // 50 Mbps = ~6250 KB/s\n\t\tconst timeWiFi = gzipKB / (100 * 128); // 100 Mbps = ~12500 KB/s\n\n\t\tconst transferTable = new Table({\n\t\t\thead: ['Network', 'Throughput', 'Transfer Time'],\n\t\t\tcolWidths: [15, 15, 20],\n\t\t\tstyle: {\n\t\t\t\thead: ['cyan', 'bold'],\n\t\t\t\tborder: ['gray'],\n\t\t\t},\n\t\t\tchars: ASCII_TABLE_CHARS,\n\t\t});\n\n\t\ttransferTable.push(\n\t\t\t[\n\t\t\t\t'3G Fast',\n\t\t\t\t'1.6 Mbps',\n\t\t\t\ttime3G >= 1\n\t\t\t\t\t? `~${time3G.toFixed(2)}s`\n\t\t\t\t\t: `~${(time3G * 1000).toFixed(0)}ms`,\n\t\t\t],\n\t\t\t[\n\t\t\t\t'4G',\n\t\t\t\t'9 Mbps',\n\t\t\t\ttime4G >= 1\n\t\t\t\t\t? `~${time4G.toFixed(2)}s`\n\t\t\t\t\t: `~${(time4G * 1000).toFixed(0)}ms`,\n\t\t\t],\n\t\t\t[\n\t\t\t\t'5G',\n\t\t\t\t'50 Mbps',\n\t\t\t\ttime5G >= 1\n\t\t\t\t\t? `~${time5G.toFixed(2)}s`\n\t\t\t\t\t: `~${(time5G * 1000).toFixed(0)}ms`,\n\t\t\t],\n\t\t\t[\n\t\t\t\t'Wi-Fi 100',\n\t\t\t\t'100 Mbps',\n\t\t\t\ttimeWiFi >= 1\n\t\t\t\t\t? `~${timeWiFi.toFixed(2)}s`\n\t\t\t\t\t: `~${(timeWiFi * 1000).toFixed(0)}ms`,\n\t\t\t],\n\t\t);\n\n\t\tconsole.log(transferTable.toString());\n\t\tconsole.log(\n\t\t\t'\\x1b[90m Note: Estimates use gzipped size, ignore latency/HTTP overhead\\x1b[0m\\n',\n\t\t);\n\t}\n\n\t// Print browser dependency breakdown if available\n\n\tif (browserDepTree) {\n\t\tconst nodeModules = browserDepTree.root.children?.find(\n\t\t\t(c) => c.name === 'node_modules',\n\t\t);\n\t\tconst src = browserDepTree.root.children?.find((c) => c.name === 'src');\n\n\t\tif (nodeModules || src) {\n\t\t\tconsole.log(\n\t\t\t\t`\\x1b[1m\\x1b[36m${String.fromCharCode(0x2501).repeat(1)}\\x1b[0m`,\n\t\t\t);\n\t\t\tconsole.log(\n\t\t\t\t'\\x1b[1m\\x1b[36mBrowser Dependency Breakdown\\x1b[0m \\x1b[32m(shipped to browser)\\x1b[0m',\n\t\t\t);\n\t\t\tconsole.log(\n\t\t\t\t`\\x1b[1m\\x1b[36m${String.fromCharCode(0x2501).repeat(1)}\\x1b[0m\\n`,\n\t\t\t);\n\n\t\t\tif (nodeModules && nodeModules.size > 0) {\n\t\t\t\tconst nmPercent = (\n\t\t\t\t\t(nodeModules.size / browserDepTree.totalSize) *\n\t\t\t\t\t100\n\t\t\t\t).toFixed(1);\n\t\t\t\tconsole.log(\n\t\t\t\t\t`\\x1b[1mnode_modules: ${formatBytes(nodeModules.size)} (${nmPercent}%)\\x1b[0m\\n`,\n\t\t\t\t);\n\n\t\t\t\t// Show all packages by size\n\t\t\t\tconst packages = (nodeModules.children || [])\n\t\t\t\t\t.filter((pkg) => pkg.size > 0)\n\t\t\t\t\t.sort((a, b) => b.size - a.size);\n\n\t\t\t\tif (packages.length > 0) {\n\t\t\t\t\tconst pkgTable = new Table({\n\t\t\t\t\t\thead: ['Package / File', 'Raw Size', 'Gzipped', '% of Total'],\n\t\t\t\t\t\tcolWidths: [40, 15, 15, 12],\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\thead: ['green', 'bold'],\n\t\t\t\t\t\t\tborder: ['gray'],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tchars: ASCII_TABLE_CHARS,\n\t\t\t\t\t});\n\n\t\t\t\t\t// Show packages (all if --full, otherwise top packages with meaningful size)\n\t\t\t\t\tconst packagesToShow = fullOutput\n\t\t\t\t\t\t? packages\n\t\t\t\t\t\t: packages.filter(\n\t\t\t\t\t\t\t\t(pkg) => pkg.size / browserDepTree.totalSize >= 0.01,\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\tfor (const pkg of packagesToShow) {\n\t\t\t\t\t\tconst percentage = (\n\t\t\t\t\t\t\t(pkg.size / browserDepTree.totalSize) *\n\t\t\t\t\t\t\t100\n\t\t\t\t\t\t).toFixed(1);\n\t\t\t\t\t\t// Add package row with bold name and gzipped estimate\n\t\t\t\t\t\tconst pkgEstimatedGz = Math.round(\n\t\t\t\t\t\t\t(pkg.size * (browserInfo?.gzippedSize || 0)) /\n\t\t\t\t\t\t\t\t(browserInfo?.size || 1),\n\t\t\t\t\t\t);\n\t\t\t\t\t\tpkgTable.push([\n\t\t\t\t\t\t\t`\\x1b[1m${pkg.name}\\x1b[0m`,\n\t\t\t\t\t\t\tformatBytes(pkg.size),\n\t\t\t\t\t\t\tformatBytes(pkgEstimatedGz),\n\t\t\t\t\t\t\t`${percentage}%`,\n\t\t\t\t\t\t]);\n\n\t\t\t\t\t\t// Add file rows (indented)\n\t\t\t\t\t\tconst files = (pkg.children || [])\n\t\t\t\t\t\t\t.filter((f) => f.size > 0)\n\t\t\t\t\t\t\t.sort((a, b) => b.size - a.size);\n\n\t\t\t\t\t\t// Show files (all if --full, otherwise top 10)\n\t\t\t\t\t\tconst filesToShow = fullOutput ? files : files.slice(0, 10);\n\t\t\t\t\t\tfor (const file of filesToShow) {\n\t\t\t\t\t\t\tconst filePercent = (\n\t\t\t\t\t\t\t\t(file.size / browserDepTree.totalSize) *\n\t\t\t\t\t\t\t\t100\n\t\t\t\t\t\t\t).toFixed(1);\n\t\t\t\t\t\t\t// Estimate gzipped size using overall compression ratio\n\t\t\t\t\t\t\tconst estimatedGz = Math.round(\n\t\t\t\t\t\t\t\t(file.size * (browserInfo?.gzippedSize || 0)) /\n\t\t\t\t\t\t\t\t\t(browserInfo?.size || 1),\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tpkgTable.push([\n\t\t\t\t\t\t\t\t` ${String.fromCharCode(0x21b3)} ${file.name}`,\n\t\t\t\t\t\t\t\tformatBytes(file.size),\n\t\t\t\t\t\t\t\tformatBytes(estimatedGz),\n\t\t\t\t\t\t\t\t`${filePercent}%`,\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!fullOutput && files.length > 10) {\n\t\t\t\t\t\t\tpkgTable.push([\n\t\t\t\t\t\t\t\t` ... ${files.length - 10} more files`,\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t\t'',\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconsole.log(pkgTable.toString());\n\t\t\t\t\tconsole.log('');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (src && src.size > 0) {\n\t\t\t\tconst srcPercent = (\n\t\t\t\t\t(src.size / browserDepTree.totalSize) *\n\t\t\t\t\t100\n\t\t\t\t).toFixed(1);\n\t\t\t\tconsole.log(\n\t\t\t\t\t`\\x1b[1msrc: ${formatBytes(src.size)} (${srcPercent}%)\\x1b[0m\\n`,\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Print browser chunks summary\n\tconst browserChunks = Object.entries(stats.byCollection).filter(\n\t\t([collection]) => collection !== 'binaries',\n\t);\n\tif (browserChunks.length > 0) {\n\t\tfor (const [collection, bundles] of browserChunks) {\n\t\t\tconst collectionTotal = bundles.reduce((sum, b) => sum + b.size, 0);\n\t\t\tconst collectionGzipped = bundles.reduce(\n\t\t\t\t(sum, b) => sum + b.gzippedSize,\n\t\t\t\t0,\n\t\t\t);\n\n\t\t\tconsole.log(\n\t\t\t\t`\\x1b[1mBrowser Chunks: ${collection}\\x1b[0m \\x1b[32m(shipped to browser)\\x1b[0m`,\n\t\t\t);\n\t\t\tconsole.log(\n\t\t\t\t` Total: ${formatBytes(collectionTotal)} (${formatBytes(collectionGzipped)} gzipped)\\n`,\n\t\t\t);\n\n\t\t\t// Sort by size descending\n\t\t\tconst sorted = bundles.sort((a, b) => b.size - a.size);\n\n\t\t\tconst bundleTable = new Table({\n\t\t\t\thead: ['Bundle', 'Size', 'Gzipped', '% of Total'],\n\t\t\t\tcolWidths: [40, 12, 12, 12],\n\t\t\t\tstyle: {\n\t\t\t\t\thead: ['green', 'bold'],\n\t\t\t\t\tborder: ['gray'],\n\t\t\t\t},\n\t\t\t\tchars: ASCII_TABLE_CHARS,\n\t\t\t});\n\n\t\t\tfor (const bundle of sorted) {\n\t\t\t\tconst percentage = ((bundle.size / stats.totalSize) * 100).toFixed(1);\n\t\t\t\tbundleTable.push([\n\t\t\t\t\tbundle.name,\n\t\t\t\t\tformatBytes(bundle.size),\n\t\t\t\t\tformatBytes(bundle.gzippedSize),\n\t\t\t\t\t`${percentage}%`,\n\t\t\t\t]);\n\t\t\t}\n\n\t\t\tconsole.log(bundleTable.toString());\n\t\t\tconsole.log('');\n\t\t}\n\t}\n\n\t// ${String.fromCharCode(0x2501).repeat(1)}\n\t// SERVER SECTION (not shipped to browser)\n\t// ${String.fromCharCode(0x2501).repeat(1)}\n\n\t// Print main bundle info if available\n\tif (mainInfo) {\n\t\tconsole.log(\n\t\t\t`\\x1b[1m\\x1b[36m${String.fromCharCode(0x2501).repeat(1)}\\x1b[0m`,\n\t\t);\n\t\tconsole.log(\n\t\t\t`\\x1b[1m\\x1b[36mServer Binary: ${mainInfo.name}\\x1b[0m \\x1b[90m(not shipped to browser)\\x1b[0m`,\n\t\t);\n\t\tconsole.log(\n\t\t\t`\\x1b[1m\\x1b[36m${String.fromCharCode(0x2501).repeat(1)}\\x1b[0m\\n`,\n\t\t);\n\n\t\tconst mainTable = new Table({\n\t\t\thead: ['Metric', 'Value'],\n\t\t\tcolWidths: [25, 35],\n\t\t\tstyle: {\n\t\t\t\thead: ['cyan', 'bold'],\n\t\t\t\tborder: ['gray'],\n\t\t\t},\n\t\t\tchars: ASCII_TABLE_CHARS,\n\t\t});\n\n\t\tmainTable.push(['Binary Size', formatBytes(mainInfo.size)]);\n\n\t\tconsole.log(mainTable.toString());\n\t\tconsole.log('');\n\t}\n\n\t// Print detailed dependency breakdown if available\n\tif (depTree) {\n\t\tconst nodeModules = depTree.root.children?.find(\n\t\t\t(c) => c.name === 'node_modules',\n\t\t);\n\t\tconst src = depTree.root.children?.find((c) => c.name === 'src');\n\n\t\tif (nodeModules || src) {\n\t\t\tconsole.log(\n\t\t\t\t`\\x1b[1m\\x1b[36m${String.fromCharCode(0x2501).repeat(1)}\\x1b[0m`,\n\t\t\t);\n\t\t\tconsole.log(\n\t\t\t\t'\\x1b[1m\\x1b[36mServer Dependency Breakdown\\x1b[0m \\x1b[90m(server-side only)\\x1b[0m',\n\t\t\t);\n\t\t\tconsole.log(\n\t\t\t\t`\\x1b[1m\\x1b[36m${String.fromCharCode(0x2501).repeat(1)}\\x1b[0m\\n`,\n\t\t\t);\n\n\t\t\tif (nodeModules && nodeModules.size > 0) {\n\t\t\t\tconst nmPercent = (\n\t\t\t\t\t(nodeModules.size / depTree.totalSize) *\n\t\t\t\t\t100\n\t\t\t\t).toFixed(1);\n\t\t\t\tconsole.log(\n\t\t\t\t\t`\\x1b[1mnode_modules: ${formatBytes(nodeModules.size)} (${nmPercent}%)\\x1b[0m\\n`,\n\t\t\t\t);\n\n\t\t\t\t// Show all packages by size\n\t\t\t\tconst packages = (nodeModules.children || [])\n\t\t\t\t\t.filter((pkg) => pkg.size > 0)\n\t\t\t\t\t.sort((a, b) => b.size - a.size);\n\n\t\t\t\tif (packages.length > 0) {\n\t\t\t\t\tconst pkgTable = new Table({\n\t\t\t\t\t\thead: ['Package / File', 'Size', '% of Total'],\n\t\t\t\t\t\tcolWidths: [50, 20, 12],\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\thead: ['red', 'bold'],\n\t\t\t\t\t\t\tborder: ['gray'],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tchars: ASCII_TABLE_CHARS,\n\t\t\t\t\t});\n\n\t\t\t\t\t// Show packages (all if --full, otherwise top packages with meaningful size)\n\t\t\t\t\tconst packagesToShow = fullOutput\n\t\t\t\t\t\t? packages\n\t\t\t\t\t\t: packages.filter((pkg) => pkg.size / depTree.totalSize >= 0.01);\n\n\t\t\t\t\tfor (const pkg of packagesToShow) {\n\t\t\t\t\t\tconst percentage = ((pkg.size / depTree.totalSize) * 100).toFixed(\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tpkgTable.push([\n\t\t\t\t\t\t\t`\\x1b[1m${pkg.name}\\x1b[0m`,\n\t\t\t\t\t\t\tformatBytes(pkg.size),\n\t\t\t\t\t\t\t`${percentage}%`,\n\t\t\t\t\t\t]);\n\n\t\t\t\t\t\t// Add file rows (indented)\n\t\t\t\t\t\tconst files = (pkg.children || [])\n\t\t\t\t\t\t\t.filter((f) => f.size > 0)\n\t\t\t\t\t\t\t.sort((a, b) => b.size - a.size);\n\n\t\t\t\t\t\t// Show files (all if --full, otherwise top 10)\n\t\t\t\t\t\tconst filesToShow = fullOutput ? files : files.slice(0, 10);\n\t\t\t\t\t\tfor (const file of filesToShow) {\n\t\t\t\t\t\t\tconst filePercent = (\n\t\t\t\t\t\t\t\t(file.size / depTree.totalSize) *\n\t\t\t\t\t\t\t\t100\n\t\t\t\t\t\t\t).toFixed(1);\n\t\t\t\t\t\t\tpkgTable.push([\n\t\t\t\t\t\t\t\t` ${String.fromCharCode(0x21b3)} ${file.name}`,\n\t\t\t\t\t\t\t\tformatBytes(file.size),\n\t\t\t\t\t\t\t\t`${filePercent}%`,\n\t\t\t\t\t\t\t]);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (!fullOutput && files.length > 10) {\n\t\t\t\t\t\t\tpkgTable.push([` ... ${files.length - 10} more files`, '', '']);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconsole.log(pkgTable.toString());\n\t\t\t\t\tconsole.log('');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (src && src.size > 0) {\n\t\t\t\tconst srcPercent = ((src.size / depTree.totalSize) * 100).toFixed(1);\n\t\t\t\tconsole.log(\n\t\t\t\t\t`\\x1b[1msrc: ${formatBytes(src.size)} (${srcPercent}%)\\x1b[0m\\n`,\n\t\t\t\t);\n\n\t\t\t\t// Show src breakdown\n\t\t\t\tconst srcItems = (src.children || [])\n\t\t\t\t\t.filter((item) => item.size > 0)\n\t\t\t\t\t.sort((a, b) => b.size - a.size);\n\n\t\t\t\tif (srcItems.length > 0) {\n\t\t\t\t\tconst srcTable = new Table({\n\t\t\t\t\t\thead: ['Source', 'Size', '% of Total'],\n\t\t\t\t\t\tcolWidths: [45, 12, 12],\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\thead: ['green', 'bold'],\n\t\t\t\t\t\t\tborder: ['gray'],\n\t\t\t\t\t\t},\n\t\t\t\t\t\tchars: ASCII_TABLE_CHARS,\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (const item of srcItems) {\n\t\t\t\t\t\tconst percentage = ((item.size / depTree.totalSize) * 100).toFixed(\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsrcTable.push([\n\t\t\t\t\t\t\titem.name,\n\t\t\t\t\t\t\tformatBytes(item.size),\n\t\t\t\t\t\t\t`${percentage}%`,\n\t\t\t\t\t\t]);\n\t\t\t\t\t}\n\n\t\t\t\t\tconsole.log(srcTable.toString());\n\t\t\t\t\tconsole.log('');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t// ${String.fromCharCode(0x2501).repeat(1)}\n\t// SUMMARY\n\t// ${String.fromCharCode(0x2501).repeat(1)}\n\n\tconsole.log(`\\x1b[1m\\x1b[36m${String.fromCharCode(0x2501).repeat(1)}\\x1b[0m`);\n\tconsole.log('\\x1b[1m\\x1b[36mSummary\\x1b[0m');\n\tconsole.log(\n\t\t`\\x1b[1m\\x1b[36m${String.fromCharCode(0x2501).repeat(1)}\\x1b[0m\\n`,\n\t);\n\n\tconst summaryTable = new Table({\n\t\thead: ['Metric', 'Value'],\n\t\tcolWidths: [25, 35],\n\t\tstyle: {\n\t\t\thead: ['cyan', 'bold'],\n\t\t\tborder: ['gray'],\n\t\t},\n\t\tchars: ASCII_TABLE_CHARS,\n\t});\n\n\t// Count dependencies separately for browser and server\n\tconst browserNodeModules = browserDepTree?.root.children?.find(\n\t\t(c) => c.name === 'node_modules',\n\t);\n\tconst browserDepCount = browserNodeModules?.children?.length || 0;\n\n\tconst serverNodeModules = depTree?.root.children?.find(\n\t\t(c) => c.name === 'node_modules',\n\t);\n\tconst serverDepCount = serverNodeModules?.children?.length || 0;\n\n\t// Check for actual dist/ binary (from reroute build)\n\tlet actualServerBinarySize: number | null = null;\n\tlet actualServerBinaryGzipped: number | null = null;\n\ttry {\n\t\tconst distDir = join(process.cwd(), 'dist');\n\t\tif (existsSync(distDir)) {\n\t\t\tconst files = await readdir(distDir);\n\t\t\tfor (const file of files) {\n\t\t\t\tconst filePath = join(distDir, file);\n\t\t\t\tconst stats = statSync(filePath);\n\t\t\t\tif (stats.isFile() && !file.includes('.')) {\n\t\t\t\t\tactualServerBinarySize = stats.size;\n\t\t\t\t\t// Estimate gzipped size\n\t\t\t\t\tconst content = await readFile(filePath);\n\t\t\t\t\tactualServerBinaryGzipped = Bun.gzipSync(content).length;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} catch {}\n\n\tconst browserBundleDisplay = browserInfo\n\t\t? `${formatBytes(browserInfo.size)} (${formatBytes(browserInfo.gzippedSize)} gz)`\n\t\t: 'N/A';\n\n\tconst serverBinaryDisplay = actualServerBinarySize\n\t\t? `${formatBytes(actualServerBinarySize)}${actualServerBinaryGzipped ? ` (${formatBytes(actualServerBinaryGzipped)} gz)` : ''}`\n\t\t: mainInfo\n\t\t\t? formatBytes(mainInfo.size)\n\t\t\t: 'N/A';\n\n\tsummaryTable.push(\n\t\t['Browser Dependencies', browserDepCount.toString()],\n\t\t['Browser Bundle', browserBundleDisplay],\n\t\t['Server Dependencies', serverDepCount.toString()],\n\t\t['Final Server Binary', serverBinaryDisplay],\n\t);\n\n\tconsole.log(summaryTable.toString());\n\tconsole.log('');\n\n\t// Add explanatory note about server binary size\n\tif (actualServerBinarySize) {\n\t\tconsole.log(\n\t\t\t'\\x1b[90mNote: Final Server Binary is a standalone executable that includes the Bun runtime,\\x1b[0m',\n\t\t);\n\t\tconsole.log(\n\t\t\t'\\x1b[90m your application code, and all dependencies. This allows it to run without\\x1b[0m',\n\t\t);\n\t\tconsole.log(\n\t\t\t'\\x1b[90m requiring Node.js or Bun to be installed on the deployment server.\\x1b[0m',\n\t\t);\n\t\tconsole.log('');\n\t}\n\n\tif (stats.bundles.length === 0) {\n\t\tconsole.log(\n\t\t\tcolorizeLogPrefixAnsi(\n\t\t\t\t'[reroute/analyze] No bundles found. Run `reroute build` first. For production builds, use NODE_ENV=production or --prod flag.\\n',\n\t\t\t),\n\t\t);\n\t}\n}\n\nexport default async function analyze(args: string[]): Promise<void> {\n\ttry {\n\t\tconst cwd = process.cwd();\n\t\tconst outputHtml = args.includes('--html');\n\t\tconst openBrowser = args.includes('--open') || args.includes('-o');\n\t\tconst isProd = isProductionMode(args);\n\n\t\t// Extract search term from --search flag\n\t\tconst searchIndex = args.indexOf('--search');\n\t\tconst initialSearch =\n\t\t\tsearchIndex !== -1 && args[searchIndex + 1] ? args[searchIndex + 1] : '';\n\n\t\t// Ensure .reroute artifacts exist by running build if needed\n\t\tconst rerouteIndexPath = join(cwd, '.reroute', 'index.ts');\n\t\tif (!existsSync(rerouteIndexPath)) {\n\t\t\tconsole.log(\n\t\t\t\tcolorizeLogPrefixAnsi(\n\t\t\t\t\t'[reroute/analyze] .reroute artifacts not found, running build...\\n',\n\t\t\t\t),\n\t\t\t);\n\t\t\tconst { spawn } = await import('node:child_process');\n\t\t\tconst { getRerouteCommand } = await import('./lib/command');\n\n\t\t\tconst rerouteCmd = getRerouteCommand();\n\t\t\tconst useShell = rerouteCmd.includes(' ');\n\n\t\t\tconst buildCommand = useShell ? `${rerouteCmd} build` : rerouteCmd;\n\t\t\tconst buildArgs = useShell ? [] : ['build'];\n\n\t\t\tawait new Promise<void>((resolve, reject) => {\n\t\t\t\tconst buildProcess = spawn(buildCommand, buildArgs, {\n\t\t\t\t\tstdio: 'inherit',\n\t\t\t\t\tshell: useShell,\n\t\t\t\t});\n\n\t\t\t\tbuildProcess.on('exit', (code) => {\n\t\t\t\t\tif (code !== null && code !== 0) {\n\t\t\t\t\t\treject(new Error(`Build exited with code ${code}`));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tbuildProcess.on('error', (error) => {\n\t\t\t\t\treject(error);\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tconsole.log(colorizeLogPrefixAnsi('[reroute/analyze] Build complete\\n'));\n\t\t}\n\n\t\tconsole.log(\n\t\t\tcolorizeLogPrefixAnsi('[reroute/analyze] Scanning for bundles...\\n'),\n\t\t);\n\n\t\tconst bundles = await findBundles(cwd);\n\t\tconst stats = calculateStats(bundles);\n\n\t\t// Find and analyze the browser entrypoint\n\t\tconsole.log(\n\t\t\tcolorizeLogPrefixAnsi(\n\t\t\t\t'[reroute/analyze] Building browser entrypoint for analysis...\\n',\n\t\t\t),\n\t\t);\n\t\tconst browserEntry = await findBrowserEntry(cwd);\n\t\tlet browserDepTree: DepTree | null = null;\n\t\tlet browserInfo: {\n\t\t\tname: string;\n\t\t\tsize: number;\n\t\t\tgzippedSize: number;\n\t\t} | null = null;\n\n\t\tif (browserEntry) {\n\t\t\tconsole.log(\n\t\t\t\tcolorizeLogPrefixAnsi(\n\t\t\t\t\t`[reroute/analyze] Analyzing browser bundle: ${relative(cwd, browserEntry)}\\n`,\n\t\t\t\t),\n\t\t\t);\n\t\t\tbrowserDepTree = await buildDependencyTree(browserEntry, cwd);\n\n\t\t\tif (!browserDepTree) {\n\t\t\t\tconsole.log(\n\t\t\t\t\tcolorizeLogPrefixAnsi(\n\t\t\t\t\t\t'[reroute/analyze] Could not build dependency tree from browser bundle. Sourcemap may be missing or invalid.\\n',\n\t\t\t\t\t),\n\t\t\t\t);\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst browserStat = await stat(browserEntry);\n\t\t\t\tconst browserContent = await readFile(browserEntry);\n\t\t\t\tconst browserGzipped = Bun.gzipSync(browserContent).length;\n\t\t\t\tbrowserInfo = {\n\t\t\t\t\tname: basename(browserEntry),\n\t\t\t\t\tsize: browserStat.size,\n\t\t\t\t\tgzippedSize: browserGzipped,\n\t\t\t\t};\n\t\t\t} catch {}\n\t\t} else {\n\t\t\tconsole.log(\n\t\t\t\tcolorizeLogPrefixAnsi(\n\t\t\t\t\t'[reroute/analyze] Could not build browser entrypoint for analysis. Browser dependency breakdown will not be available.\\n',\n\t\t\t\t),\n\t\t\t);\n\t\t}\n\n\t\t// Build dependency tree for server binary\n\t\t// Always build a fresh server bundle for analysis with all deps bundled\n\t\tlet entry: string | null = null;\n\t\tlet depTree: DepTree | null = null;\n\t\tlet mainInfo: { name: string; size: number; gzippedSize: number } | null =\n\t\t\tnull;\n\n\t\tconst srcEntry = join(cwd, 'src', 'index.ts');\n\t\tif (existsSync(srcEntry)) {\n\t\t\tconsole.log(\n\t\t\t\tcolorizeLogPrefixAnsi(\n\t\t\t\t\t`[reroute/analyze] Building server binary for analysis...\\n`,\n\t\t\t\t),\n\t\t\t);\n\t\t\tconst { mkdir } = await import('node:fs/promises');\n\t\t\tconst serverAnalysisDir = join(cwd, '.reroute', 'server');\n\t\t\tawait mkdir(serverAnalysisDir, { recursive: true });\n\n\t\t\t// Use Bun.build API directly with NO externals\n\t\t\tconst result = await Bun.build({\n\t\t\t\tentrypoints: [srcEntry],\n\t\t\t\ttarget: 'bun',\n\t\t\t\tminify: isProd,\n\t\t\t\tsourcemap: 'linked',\n\t\t\t\texternal: [], // Don't externalize anything\n\t\t\t\tsplitting: false,\n\t\t\t});\n\n\t\t\tif (result.success && result.outputs.length > 0) {\n\t\t\t\tconst output = result.outputs[0];\n\t\t\t\tconst code = await output.text();\n\t\t\t\tconst analysisEntry = join(serverAnalysisDir, 'index.js');\n\t\t\t\tawait writeFile(analysisEntry, code, 'utf-8');\n\n\t\t\t\t// Write sourcemap if available\n\t\t\t\tconst mapOutput = result.outputs.find((o) => o.path.endsWith('.map'));\n\t\t\t\tif (mapOutput) {\n\t\t\t\t\tconst mapContent = await mapOutput.text();\n\t\t\t\t\tawait writeFile(`${analysisEntry}.map`, mapContent, 'utf-8');\n\t\t\t\t}\n\n\t\t\t\tentry = analysisEntry;\n\t\t\t}\n\t\t}\n\n\t\tif (entry) {\n\t\t\tconsole.log(\n\t\t\t\tcolorizeLogPrefixAnsi(\n\t\t\t\t\t`[reroute/analyze] Building dependency graph for ${relative(cwd, entry)}\\n`,\n\t\t\t\t),\n\t\t\t);\n\t\t\tdepTree = await buildDependencyTree(entry, cwd);\n\n\t\t\t// Get actual installed package sizes as supplementary data\n\t\t\tconsole.log(\n\t\t\t\tcolorizeLogPrefixAnsi(\n\t\t\t\t\t`[reroute/analyze] Checking installed package sizes...\\n`,\n\t\t\t\t),\n\t\t\t);\n\t\t\tconst installedSizes = await getInstalledPackageSizes(cwd);\n\n\t\t\t// Add missing packages to the tree based on package.json\n\t\t\tif (depTree) {\n\t\t\t\tconst packageJsonPath = join(cwd, 'package.json');\n\t\t\t\tif (existsSync(packageJsonPath)) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst packageJson = JSON.parse(\n\t\t\t\t\t\t\tawait readFile(packageJsonPath, 'utf-8'),\n\t\t\t\t\t\t);\n\t\t\t\t\t\t// Only include runtime dependencies (not devDependencies like typescript, @types)\n\t\t\t\t\t\tconst runtimeDeps = packageJson.dependencies || {};\n\n\t\t\t\t\t\tconst nodeModulesNode = depTree.root.children?.find(\n\t\t\t\t\t\t\t(c) => c.name === 'node_modules',\n\t\t\t\t\t\t);\n\t\t\t\t\t\tif (nodeModulesNode) {\n\t\t\t\t\t\t\tconst trackedPkgs = new Set(\n\t\t\t\t\t\t\t\tnodeModulesNode.children?.map((c) => c.name) || [],\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t// Add missing packages with their installed sizes\n\t\t\t\t\t\t\tfor (const pkgName of Object.keys(runtimeDeps)) {\n\t\t\t\t\t\t\t\tif (!trackedPkgs.has(pkgName) && installedSizes.has(pkgName)) {\n\t\t\t\t\t\t\t\t\tnodeModulesNode.children?.push({\n\t\t\t\t\t\t\t\t\t\tname: pkgName,\n\t\t\t\t\t\t\t\t\t\tpath: join(cwd, 'node_modules', pkgName),\n\t\t\t\t\t\t\t\t\t\tsize: installedSizes.get(pkgName) || 0,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Recompute total size\n\t\t\t\t\t\t\tnodeModulesNode.size =\n\t\t\t\t\t\t\t\tnodeModulesNode.children?.reduce((sum, c) => {\n\t\t\t\t\t\t\t\t\tif (c.children && c.children.length > 0) {\n\t\t\t\t\t\t\t\t\t\tc.size = c.children.reduce((s, child) => s + child.size, 0);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn sum + c.size;\n\t\t\t\t\t\t\t\t}, 0) || 0;\n\n\t\t\t\t\t\t\tdepTree.root.size =\n\t\t\t\t\t\t\t\tdepTree.root.children?.reduce((sum, c) => sum + c.size, 0) || 0;\n\t\t\t\t\t\t\tdepTree.totalSize = depTree.root.size;\n\t\t\t\t\t\t}\n\t\t\t\t\t} catch (_e) {\n\t\t\t\t\t\t// Silently continue if package.json parsing fails\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Get main bundle info\n\t\t\ttry {\n\t\t\t\tconst entryStat = await stat(entry);\n\t\t\t\tconst entryContent = await readFile(entry);\n\t\t\t\tconst entryGzipped = Bun.gzipSync(entryContent).length;\n\t\t\t\tmainInfo = {\n\t\t\t\t\tname: basename(entry),\n\t\t\t\t\tsize: entryStat.size,\n\t\t\t\t\tgzippedSize: entryGzipped,\n\t\t\t\t};\n\t\t\t} catch {}\n\t\t}\n\n\t\t// Print console report with dependency info\n\t\tconst fullOutput = args.includes('--full');\n\t\tawait printConsoleReport(\n\t\t\tstats,\n\t\t\tdepTree,\n\t\t\tmainInfo,\n\t\t\tbrowserDepTree,\n\t\t\tbrowserInfo,\n\t\t\tfullOutput,\n\t\t);\n\n\t\t// Generate HTML report if requested\n\t\tif (outputHtml || openBrowser) {\n\t\t\tconst htmlPath = join(cwd, '.reroute', 'analysis.html');\n\t\t\tconst html = await generateHTMLReport(\n\t\t\t\tstats,\n\t\t\t\tdepTree,\n\t\t\t\tmainInfo,\n\t\t\t\tbrowserDepTree,\n\t\t\t\tbrowserInfo,\n\t\t\t\tinitialSearch,\n\t\t\t);\n\n\t\t\t// Ensure .reroute directory exists\n\t\t\tconst { mkdir } = await import('node:fs/promises');\n\t\t\tawait mkdir(join(cwd, '.reroute'), { recursive: true });\n\n\t\t\tawait writeFile(htmlPath, html, 'utf-8');\n\t\t\tconsole.log(\n\t\t\t\tcolorizeLogPrefixAnsi(\n\t\t\t\t\t`[reroute/analyze] HTML report generated: ${relative(cwd, htmlPath)}\\n`,\n\t\t\t\t),\n\t\t\t);\n\n\t\t\tif (openBrowser) {\n\t\t\t\ttry {\n\t\t\t\t\t// Use Bun's spawn to open the file with the system's default application\n\t\t\t\t\tconst { spawn } = await import('node:child_process');\n\t\t\t\t\tconst platform = process.platform;\n\t\t\t\t\tlet command: string;\n\t\t\t\t\tlet commandArgs: string[];\n\n\t\t\t\t\tif (platform === 'darwin') {\n\t\t\t\t\t\tcommand = 'open';\n\t\t\t\t\t\tcommandArgs = [htmlPath];\n\t\t\t\t\t} else if (platform === 'win32') {\n\t\t\t\t\t\tcommand = 'cmd';\n\t\t\t\t\t\tcommandArgs = ['/c', 'start', '', htmlPath];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcommand = 'xdg-open';\n\t\t\t\t\t\tcommandArgs = [htmlPath];\n\t\t\t\t\t}\n\n\t\t\t\t\tspawn(command, commandArgs, { detached: true, stdio: 'ignore' });\n\t\t\t\t\tconsole.log(\n\t\t\t\t\t\tcolorizeLogPrefixAnsi(\n\t\t\t\t\t\t\t'[reroute/analyze] Opened report in browser\\n',\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t} catch {\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\tcolorizeLogPrefixAnsi(\n\t\t\t\t\t\t\t`[reroute/analyze] Could not open browser automatically. Please open ${htmlPath} manually.\\n`,\n\t\t\t\t\t\t),\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tconsole.error(\n\t\t\tcolorizeLogPrefixAnsi(`[reroute/analyze] Error: ${String(error)}\\n`),\n\t\t);\n\t\tthrow error;\n\t}\n}\n",
|
|
56
56
|
"#!/usr/bin/env bun\n\n/**\n * Reroute CLI\n *\n * Command-line interface for Reroute framework operations.\n */\n\nimport path from 'node:path';\n\n// Version and commit injected at build time\ndeclare const __REROUTE_VERSION__: string;\ndeclare const __REROUTE_COMMIT__: string;\n\nconst commands = {\n\tinit: () => import('./commands/init'),\n\tgen: () => import('./commands/gen'),\n\tdev: () => import('./commands/dev'),\n\tstart: () => import('./commands/start'),\n\tbuild: () => import('./commands/build'),\n\tanalyze: () => import('./commands/analyze'),\n};\n\ntype Command = keyof typeof commands;\n\nasync function main() {\n\tconst args = process.argv.slice(2);\n\n\tif (args[0] === '--version' || args[0] === '-v') {\n\t\tconst version = await getVersionString();\n\t\tconsole.log(version);\n\t\tprocess.exit(0);\n\t}\n\n\tif (args.length === 0 || args[0] === '--help' || args[0] === '-h') {\n\t\tawait printHelp();\n\t\tprocess.exit(0);\n\t}\n\n\tconst command = args[0] as Command;\n\n\tif (!commands[command]) {\n\t\tconsole.error(`Unknown command: ${command}`);\n\t\tconsole.error('');\n\t\tawait printHelp();\n\t\tprocess.exit(1);\n\t}\n\n\ttry {\n\t\tconst commandArgs = args.slice(1);\n\n\t\t// Handle --prod flag globally by setting NODE_ENV\n\t\tif (commandArgs.includes('--prod')) {\n\t\t\tprocess.env.NODE_ENV = 'production';\n\t\t\tif (typeof Bun !== 'undefined') {\n\t\t\t\tBun.env.NODE_ENV = 'production';\n\t\t\t}\n\t\t}\n\n\t\tconst module = await commands[command]();\n\t\tawait module.default(commandArgs);\n\t} catch (error) {\n\t\tconsole.error('Error executing command:', error);\n\t\tprocess.exit(1);\n\t}\n}\n\nasync function printHelp() {\n\tconsole.log('');\n\tconsole.log(await getVersionString());\n\tconsole.log('');\n\tconsole.log('');\n\tconsole.log('Usage:');\n\tconsole.log('');\n\tconsole.log(' reroute <command> [options]');\n\tconsole.log('');\n\tconsole.log('');\n\tconsole.log('Commands:');\n\tconsole.log('');\n\tconsole.log(' init Scaffold a new Reroute project');\n\tconsole.log(' gen Generate content registry and static assets');\n\tconsole.log(' dev Start development environment');\n\tconsole.log(' start Run production-like server locally');\n\tconsole.log(' build Build production binary');\n\tconsole.log(' analyze Analyze bundle sizes and generate report');\n\tconsole.log('');\n\tconsole.log('');\n\tconsole.log('Options:');\n\tconsole.log('');\n\tconsole.log(' -h, --help Show help');\n\tconsole.log(' -v, --version Show version');\n\tconsole.log(\n\t\t' --prod Enable production mode (same as NODE_ENV=production)',\n\t);\n\tconsole.log('');\n\tconsole.log('');\n\tconsole.log('Examples:');\n\tconsole.log('');\n\tconsole.log(' reroute init my-app');\n\tconsole.log('');\n\tconsole.log(' reroute gen');\n\tconsole.log(' reroute gen -w');\n\tconsole.log(' reroute gen --watch');\n\tconsole.log('');\n\tconsole.log(' reroute dev');\n\tconsole.log(' reroute dev -s');\n\tconsole.log(' reroute dev --single');\n\tconsole.log('');\n\tconsole.log(' reroute start');\n\tconsole.log('');\n\tconsole.log(' reroute build');\n\tconsole.log(' reroute build --prod');\n\tconsole.log(' reroute build -o ./dist/myapp');\n\tconsole.log(' reroute build --outfile ./dist/myapp');\n\tconsole.log('');\n\tconsole.log(' reroute analyze');\n\tconsole.log(' reroute analyze --prod');\n\tconsole.log(' reroute analyze --full');\n\tconsole.log(' reroute analyze --html');\n\tconsole.log(' reroute analyze --open');\n}\n\nasync function getVersionString(): Promise<string> {\n\tconst version = await getVersion();\n\tconst commit = await getCommit();\n\treturn `Reroute v${version} ${commit}`;\n}\n\nasync function getVersion(): Promise<string> {\n\t// Use version injected at build time\n\tif (typeof __REROUTE_VERSION__ !== 'undefined') {\n\t\treturn __REROUTE_VERSION__;\n\t}\n\n\t// Fallback for development: try to find package.json\n\tconst possiblePaths = [\n\t\tpath.join(import.meta.dir, '../../../package.json'),\n\t\tpath.join(import.meta.dir, '../../package.json'),\n\t\tpath.join(import.meta.dir, '../package.json'),\n\t];\n\n\tfor (const pkgPath of possiblePaths) {\n\t\ttry {\n\t\t\tconst pkg = await Bun.file(pkgPath).json();\n\t\t\treturn pkg.version;\n\t\t} catch {}\n\t}\n\n\treturn 'unknown';\n}\n\nasync function getCommit(): Promise<string> {\n\t// Use commit injected at build time\n\tif (typeof __REROUTE_COMMIT__ !== 'undefined') {\n\t\treturn __REROUTE_COMMIT__;\n\t}\n\n\t// Fallback for development\n\treturn 'dev';\n}\n\nmain();\n"
|
|
57
57
|
],
|
|
58
|
-
"mappings": "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A;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;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;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;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;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;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;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;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;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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AA;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;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;AAAA;AAAA;AAAA;AAAA;AA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",
|
|
59
|
-
"debugId": "
|
|
58
|
+
"mappings": "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AAA;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;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;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;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;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;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;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;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;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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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;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;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;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;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;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;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;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;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;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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",
|
|
59
|
+
"debugId": "3344E171841E533F64756E2164756E21",
|
|
60
60
|
"names": []
|
|
61
61
|
}
|