olova-router 1.0.16 → 1.0.17

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/dist/vite.js CHANGED
@@ -237,6 +237,9 @@ function createOlovaAppRouterPlugin() {
237
237
  }
238
238
  }
239
239
  },
240
+ optimizeDeps: {
241
+ exclude: ["olova-router", "olova/runtime", "olova/core", "olova/global"]
242
+ },
240
243
  resolve: {
241
244
  dedupe: ["olova", "olova/core", "olova/runtime", "olova/global"]
242
245
  }
package/dist/vite.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/vite.ts"],"names":[],"mappings":"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","file":"vite.js","sourcesContent":["import { mkdirSync, readdirSync, renameSync, rmSync, statSync, writeFileSync } from \"node:fs\";\nimport path from \"node:path\";\nimport type { Plugin, PluginOption } from \"vite\";\nimport { normalizePath } from \"vite\";\n\nconst playgroundEntry = normalizePath(\"/playground/main.ts\");\nconst routerPackageEntry = normalizePath(\"/packages/olova-router/\");\nconst virtualRoutesId = \"virtual:router-demo-routes\";\nconst resolvedVirtualRoutesId = \"\\0virtual:router-demo-routes\";\nconst virtualAppEntryId = \"virtual:olova-app-entry\";\nconst resolvedVirtualAppEntryId = \"\\0virtual:olova-app-entry\";\nconst olovaPluginName = \"vite-plugin-olova\";\n\nexport const generatedDirName = \".olova\";\nexport const generatedHtmlName = \"index.html\";\nexport const generatedMainName = \"main.ts\";\n\nfunction toRouteSegment(segment: string): string {\n if (segment === \"index\") {\n return \"\";\n }\n\n if (segment === \"+not-found\") {\n return \"*\";\n }\n\n if (segment.startsWith(\"[...\") && segment.endsWith(\"]\")) {\n return `:${segment.slice(4, -1)}*`;\n }\n\n if (segment.startsWith(\"[\") && segment.endsWith(\"]\")) {\n return `:${segment.slice(1, -1)}`;\n }\n\n return segment;\n}\n\nfunction collectOlovaFiles(dir: string): string[] {\n const entries = readdirSync(dir);\n const files: string[] = [];\n\n for (const entry of entries) {\n const fullPath = path.join(dir, entry);\n const stats = statSync(fullPath);\n\n if (stats.isDirectory()) {\n files.push(...collectOlovaFiles(fullPath));\n continue;\n }\n\n if (entry.endsWith(\".olova\")) {\n files.push(fullPath);\n }\n }\n\n return files;\n}\n\nfunction createRoutePath(relativeFile: string): string {\n const withoutExt = relativeFile.replace(/\\.olova$/u, \"\");\n const segments = normalizePath(withoutExt).split(\"/\").map(toRouteSegment);\n\n if (segments.includes(\"*\")) {\n return \"*\";\n }\n\n const filtered = segments.filter(Boolean);\n return filtered.length === 0 ? \"/\" : `/${filtered.join(\"/\")}`;\n}\n\nfunction createRouteName(relativeFile: string): string {\n const withoutExt = relativeFile.replace(/\\.olova$/u, \"\");\n const segments = normalizePath(withoutExt)\n .split(\"/\")\n .filter((segment) => segment !== \"index\" && segment !== \"+not-found\")\n .map((segment) => segment.replace(/^\\[\\.\\.\\.(.+)\\]$/u, \"$1\").replace(/^\\[(.+)\\]$/u, \"$1\"));\n\n return segments.length === 0 ? \"home\" : segments.join(\".\");\n}\n\nfunction createAppRoutePath(relativeFile: string): string {\n const normalized = normalizePath(relativeFile).replace(/\\.olova$/u, \"\");\n const rawSegments = normalized.split(\"/\");\n const fileName = rawSegments[rawSegments.length - 1];\n const dirSegments = rawSegments.slice(0, -1);\n\n if (fileName === \"+not-found\") {\n return \"*\";\n }\n\n const fileSegment = fileName === \"app\" ? \"\" : toRouteSegment(fileName);\n const routeSegments = [...dirSegments.map(toRouteSegment), fileSegment].filter(Boolean);\n\n return routeSegments.length === 0 ? \"/\" : `/${routeSegments.join(\"/\")}`;\n}\n\nfunction createAppRouteName(relativeFile: string): string {\n const normalized = normalizePath(relativeFile).replace(/\\.olova$/u, \"\");\n const rawSegments = normalized.split(\"/\");\n const fileName = rawSegments[rawSegments.length - 1];\n const dirSegments = rawSegments.slice(0, -1);\n\n if (fileName === \"+not-found\") {\n return \"not-found\";\n }\n\n const nameParts = [...dirSegments, fileName === \"app\" ? \"home\" : fileName]\n .filter(Boolean)\n .map((segment) => segment.replace(/^\\[\\.\\.\\.(.+)\\]$/u, \"$1\").replace(/^\\[(.+)\\]$/u, \"$1\"));\n\n return nameParts.join(\".\");\n}\n\nfunction writeGeneratedBootstrap(root: string): void {\n const generatedDir = path.join(root, generatedDirName);\n const generatedHtmlPath = path.join(generatedDir, generatedHtmlName);\n const generatedMainPath = path.join(generatedDir, generatedMainName);\n const relativeStyleImport = normalizePath(path.relative(generatedDir, path.join(root, \"src\", \"style.css\")));\n\n mkdirSync(generatedDir, { recursive: true });\n writeFileSync(\n generatedHtmlPath,\n [\n \"<!doctype html>\",\n '<html lang=\"en\">',\n \" <head>\",\n ' <meta charset=\"UTF-8\" />',\n ' <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />',\n \" <title>Olova App</title>\",\n \" </head>\",\n \" <body>\",\n ' <div id=\"app\"></div>',\n ` <script type=\"module\" src=\"./${generatedMainName}\"></script>`,\n \" </body>\",\n \"</html>\",\n \"\",\n ].join(\"\\n\"),\n );\n writeFileSync(\n generatedMainPath,\n [\n `import ${JSON.stringify(relativeStyleImport)};`,\n 'import { createApp } from \"olova/runtime\";',\n `import App from ${JSON.stringify(virtualAppEntryId)};`,\n \"\",\n 'createApp(App).mount(\"#app\");',\n \"\",\n ].join(\"\\n\"),\n );\n}\n\nfunction patchOlovaTransform(plugins: unknown[] | undefined): void {\n if (!plugins) {\n return;\n }\n\n const queue = [...plugins];\n\n while (queue.length > 0) {\n const candidate = queue.shift();\n\n if (Array.isArray(candidate)) {\n queue.push(...candidate);\n continue;\n }\n\n if (!candidate || typeof candidate !== \"object\") {\n continue;\n }\n\n const plugin = candidate as Plugin & { __olovaRouterPatched?: boolean };\n if (plugin.name !== olovaPluginName) {\n continue;\n }\n\n const transformHook = plugin.transform;\n const originalTransform =\n typeof transformHook === \"function\"\n ? transformHook\n : typeof transformHook?.handler === \"function\"\n ? transformHook.handler\n : null;\n\n if (!originalTransform || plugin.__olovaRouterPatched) {\n return;\n }\n\n plugin.transform = function transform(code, id, ...rest): any {\n const normalizedId = normalizePath(id.split(\"?\", 1)[0]);\n\n if (\n normalizedId.endsWith(playgroundEntry) ||\n (normalizedId.includes(routerPackageEntry) &&\n (normalizedId.endsWith(\".ts\") || normalizedId.endsWith(\".js\")))\n ) {\n return null;\n }\n\n return (originalTransform as typeof transform).call(this, code, id, ...rest);\n };\n\n plugin.__olovaRouterPatched = true;\n return;\n }\n}\n\nfunction createOlovaCompatPlugin(): Plugin {\n return {\n name: \"olova-router-compat\",\n config(config) {\n patchOlovaTransform((config.plugins ?? []) as unknown[]);\n },\n configResolved(config) {\n patchOlovaTransform(config.plugins as unknown[]);\n },\n };\n}\n\nfunction createRouterDemoRoutesPlugin(): Plugin {\n let root = \"\";\n\n return {\n name: \"router-demo-file-routes\",\n configResolved(config) {\n root = config.root;\n },\n resolveId(id) {\n if (id === virtualRoutesId) {\n return resolvedVirtualRoutesId;\n }\n\n return null;\n },\n load(id) {\n if (id !== resolvedVirtualRoutesId) {\n return null;\n }\n\n const routesDir = path.join(root, \"src\", \"router-demo\", \"routes\");\n const files = collectOlovaFiles(routesDir)\n .map((file) => {\n const relative = normalizePath(path.relative(routesDir, file));\n return {\n file,\n routePath: createRoutePath(relative),\n routeName: createRouteName(relative),\n };\n })\n .sort((left, right) => {\n if (left.routePath === \"*\") {\n return 1;\n }\n\n if (right.routePath === \"*\") {\n return -1;\n }\n\n return left.routePath.localeCompare(right.routePath);\n });\n\n const imports = files\n .map((route, index) => `import Route${index} from ${JSON.stringify(normalizePath(route.file))}`)\n .join(\"\\n\");\n\n const definitions = files\n .map((route, index) => {\n if (route.routePath === \"*\") {\n return `{ path: \"*\", component: Route${index}, name: ${JSON.stringify(route.routeName)} }`;\n }\n\n return `{ path: ${JSON.stringify(route.routePath)}, component: Route${index}, name: ${JSON.stringify(route.routeName)} }`;\n })\n .join(\",\\n\");\n\n return `${imports}\\n\\nconst routes = [\\n${definitions}\\n]\\n\\nexport default routes\\n`;\n },\n handleHotUpdate(context) {\n const normalizedFile = normalizePath(context.file);\n if (!normalizedFile.includes(\"/src/router-demo/routes/\")) {\n return;\n }\n\n const module = context.server.moduleGraph.getModuleById(resolvedVirtualRoutesId);\n if (module) {\n context.server.reloadModule(module);\n }\n },\n };\n}\n\nfunction createOlovaAppRouterPlugin(): Plugin {\n let root = \"\";\n\n return {\n name: \"olova-app-router\",\n config() {\n return {\n build: {\n rollupOptions: {\n input: {\n main: path.join(process.cwd(), generatedDirName, generatedHtmlName),\n },\n },\n },\n resolve: {\n dedupe: [\"olova\", \"olova/core\", \"olova/runtime\", \"olova/global\"],\n },\n };\n },\n configResolved(config) {\n root = config.root;\n writeGeneratedBootstrap(root);\n },\n configureServer(server) {\n server.middlewares.use(async (req, res, next) => {\n const requestUrl = req.url?.split(\"?\", 1)[0] ?? \"/\";\n const isAppRequest =\n (req.method === \"GET\" || req.method === \"HEAD\" || !req.method) &&\n !requestUrl.startsWith(\"/@\") &&\n !requestUrl.startsWith(`/${generatedDirName}/`) &&\n !requestUrl.startsWith(\"/src/\") &&\n !requestUrl.startsWith(\"/node_modules/\") &&\n path.extname(requestUrl) === \"\";\n\n if (!isAppRequest) {\n next();\n return;\n }\n\n const html = [\n \"<!doctype html>\",\n '<html lang=\"en\">',\n \" <head>\",\n ' <meta charset=\"UTF-8\" />',\n ' <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />',\n \" <title>Olova App</title>\",\n \" </head>\",\n \" <body>\",\n ' <div id=\"app\"></div>',\n ` <script type=\"module\" src=\"/${generatedDirName}/${generatedMainName}\"></script>`,\n \" </body>\",\n \"</html>\",\n \"\",\n ].join(\"\\n\");\n\n res.setHeader(\"Content-Type\", \"text/html\");\n res.end(await server.transformIndexHtml(\"/\", html));\n });\n },\n resolveId(id) {\n if (id === virtualAppEntryId) {\n return resolvedVirtualAppEntryId;\n }\n\n return null;\n },\n load(id) {\n if (id !== resolvedVirtualAppEntryId) {\n return null;\n }\n\n const appDir = path.join(root, \"src\", \"app\");\n const layoutPath = path.join(appDir, \"layout.olova\");\n const hasLayout = statSync(layoutPath, { throwIfNoEntry: false })?.isFile?.() ?? false;\n const files = collectOlovaFiles(appDir)\n .filter((file) => path.basename(file) !== \"layout.olova\")\n .map((file) => {\n const relative = normalizePath(path.relative(appDir, file));\n return {\n file,\n routePath: createAppRoutePath(relative),\n routeName: createAppRouteName(relative),\n };\n })\n .sort((left, right) => {\n if (left.routePath === \"*\") {\n return 1;\n }\n\n if (right.routePath === \"*\") {\n return -1;\n }\n\n return left.routePath.localeCompare(right.routePath);\n });\n\n const imports = [\n 'import { defineComponent } from \"olova/runtime\";',\n 'import { BrowserRouter } from \"olova-router\";',\n hasLayout ? `import RootLayout from ${JSON.stringify(normalizePath(layoutPath))};` : \"\",\n ...files.map((route, index) => `import Route${index} from ${JSON.stringify(normalizePath(route.file))};`),\n ]\n .filter(Boolean)\n .join(\"\\n\");\n\n const routeObjects = files\n .map((route, index) => `{ path: ${JSON.stringify(route.routePath)}, name: ${JSON.stringify(route.routeName)}, component: Route${index} }`)\n .join(\",\\n\");\n\n const routesCode = hasLayout\n ? `[\n {\n path: \"/\",\n component: RootLayout,\n children: [\n${routeObjects}\n ]\n }\n]`\n : `[\n${routeObjects}\n]`;\n\n return `${imports}\n\nconst routes = ${routesCode};\n\nconst AppEntry = defineComponent(() => ({\n template: \"__O_COMP_app_entry__\",\n textBindings: [],\n htmlBindings: [],\n attrBindings: [],\n eventBindings: [],\n slotBindings: [],\n componentBindings: [\n {\n id: \"app_entry\",\n getComponent: () => BrowserRouter,\n getProps: () => ({ routes })\n }\n ]\n}));\n\nexport default AppEntry;\n`;\n },\n handleHotUpdate(context) {\n const normalizedFile = normalizePath(context.file);\n if (!normalizedFile.includes(\"/src/app/\")) {\n return;\n }\n\n const module = context.server.moduleGraph.getModuleById(resolvedVirtualAppEntryId);\n if (module) {\n context.server.reloadModule(module);\n }\n },\n closeBundle() {\n const distDir = path.join(root, \"dist\");\n const generatedDistDir = path.join(distDir, generatedDirName);\n const generatedDistHtmlPath = path.join(generatedDistDir, generatedHtmlName);\n const distIndexPath = path.join(distDir, generatedHtmlName);\n\n if (!statSync(generatedDistHtmlPath, { throwIfNoEntry: false })?.isFile?.()) {\n return;\n }\n\n rmSync(distIndexPath, { force: true });\n renameSync(generatedDistHtmlPath, distIndexPath);\n rmSync(generatedDistDir, { recursive: true, force: true });\n },\n };\n}\n\nexport function olovaRouter(): PluginOption[] {\n return [createOlovaAppRouterPlugin(), createRouterDemoRoutesPlugin(), createOlovaCompatPlugin()];\n}\n"]}
1
+ {"version":3,"sources":["../src/vite.ts"],"names":[],"mappings":";;;;;AAKA,IAAM,eAAA,GAAkB,cAAc,qBAAqB,CAAA;AAC3D,IAAM,kBAAA,GAAqB,cAAc,yBAAyB,CAAA;AAClE,IAAM,eAAA,GAAkB,4BAAA;AACxB,IAAM,uBAAA,GAA0B,8BAAA;AAChC,IAAM,iBAAA,GAAoB,yBAAA;AAC1B,IAAM,yBAAA,GAA4B,2BAAA;AAClC,IAAM,eAAA,GAAkB,mBAAA;AAEjB,IAAM,gBAAA,GAAmB;AACzB,IAAM,iBAAA,GAAoB;AAC1B,IAAM,iBAAA,GAAoB;AAEjC,SAAS,eAAe,OAAA,EAAyB;AAC/C,EAAA,IAAI,YAAY,OAAA,EAAS;AACvB,IAAA,OAAO,EAAA;AAAA,EACT;AAEA,EAAA,IAAI,YAAY,YAAA,EAAc;AAC5B,IAAA,OAAO,GAAA;AAAA,EACT;AAEA,EAAA,IAAI,QAAQ,UAAA,CAAW,MAAM,KAAK,OAAA,CAAQ,QAAA,CAAS,GAAG,CAAA,EAAG;AACvD,IAAA,OAAO,CAAA,CAAA,EAAI,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,EAAE,CAAC,CAAA,CAAA,CAAA;AAAA,EACjC;AAEA,EAAA,IAAI,QAAQ,UAAA,CAAW,GAAG,KAAK,OAAA,CAAQ,QAAA,CAAS,GAAG,CAAA,EAAG;AACpD,IAAA,OAAO,CAAA,CAAA,EAAI,OAAA,CAAQ,KAAA,CAAM,CAAA,EAAG,EAAE,CAAC,CAAA,CAAA;AAAA,EACjC;AAEA,EAAA,OAAO,OAAA;AACT;AAEA,SAAS,kBAAkB,GAAA,EAAuB;AAChD,EAAA,MAAM,OAAA,GAAU,YAAY,GAAG,CAAA;AAC/B,EAAA,MAAM,QAAkB,EAAC;AAEzB,EAAA,KAAA,MAAW,SAAS,OAAA,EAAS;AAC3B,IAAA,MAAM,QAAA,GAAW,IAAA,CAAK,IAAA,CAAK,GAAA,EAAK,KAAK,CAAA;AACrC,IAAA,MAAM,KAAA,GAAQ,SAAS,QAAQ,CAAA;AAE/B,IAAA,IAAI,KAAA,CAAM,aAAY,EAAG;AACvB,MAAA,KAAA,CAAM,IAAA,CAAK,GAAG,iBAAA,CAAkB,QAAQ,CAAC,CAAA;AACzC,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,KAAA,CAAM,QAAA,CAAS,QAAQ,CAAA,EAAG;AAC5B,MAAA,KAAA,CAAM,KAAK,QAAQ,CAAA;AAAA,IACrB;AAAA,EACF;AAEA,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,gBAAgB,YAAA,EAA8B;AACrD,EAAA,MAAM,UAAA,GAAa,YAAA,CAAa,OAAA,CAAQ,WAAA,EAAa,EAAE,CAAA;AACvD,EAAA,MAAM,QAAA,GAAW,cAAc,UAAU,CAAA,CAAE,MAAM,GAAG,CAAA,CAAE,IAAI,cAAc,CAAA;AAExE,EAAA,IAAI,QAAA,CAAS,QAAA,CAAS,GAAG,CAAA,EAAG;AAC1B,IAAA,OAAO,GAAA;AAAA,EACT;AAEA,EAAA,MAAM,QAAA,GAAW,QAAA,CAAS,MAAA,CAAO,OAAO,CAAA;AACxC,EAAA,OAAO,QAAA,CAAS,WAAW,CAAA,GAAI,GAAA,GAAM,IAAI,QAAA,CAAS,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AAC7D;AAEA,SAAS,gBAAgB,YAAA,EAA8B;AACrD,EAAA,MAAM,UAAA,GAAa,YAAA,CAAa,OAAA,CAAQ,WAAA,EAAa,EAAE,CAAA;AACvD,EAAA,MAAM,QAAA,GAAW,aAAA,CAAc,UAAU,CAAA,CACtC,KAAA,CAAM,GAAG,CAAA,CACT,MAAA,CAAO,CAAC,OAAA,KAAY,OAAA,KAAY,OAAA,IAAW,OAAA,KAAY,YAAY,CAAA,CACnE,GAAA,CAAI,CAAC,OAAA,KAAY,OAAA,CAAQ,OAAA,CAAQ,mBAAA,EAAqB,IAAI,CAAA,CAAE,OAAA,CAAQ,aAAA,EAAe,IAAI,CAAC,CAAA;AAE3F,EAAA,OAAO,SAAS,MAAA,KAAW,CAAA,GAAI,MAAA,GAAS,QAAA,CAAS,KAAK,GAAG,CAAA;AAC3D;AAEA,SAAS,mBAAmB,YAAA,EAA8B;AACxD,EAAA,MAAM,aAAa,aAAA,CAAc,YAAY,CAAA,CAAE,OAAA,CAAQ,aAAa,EAAE,CAAA;AACtE,EAAA,MAAM,WAAA,GAAc,UAAA,CAAW,KAAA,CAAM,GAAG,CAAA;AACxC,EAAA,MAAM,QAAA,GAAW,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AACnD,EAAA,MAAM,WAAA,GAAc,WAAA,CAAY,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAE3C,EAAA,IAAI,aAAa,YAAA,EAAc;AAC7B,IAAA,OAAO,GAAA;AAAA,EACT;AAEA,EAAA,MAAM,WAAA,GAAc,QAAA,KAAa,KAAA,GAAQ,EAAA,GAAK,eAAe,QAAQ,CAAA;AACrE,EAAA,MAAM,aAAA,GAAgB,CAAC,GAAG,WAAA,CAAY,GAAA,CAAI,cAAc,CAAA,EAAG,WAAW,CAAA,CAAE,MAAA,CAAO,OAAO,CAAA;AAEtF,EAAA,OAAO,aAAA,CAAc,WAAW,CAAA,GAAI,GAAA,GAAM,IAAI,aAAA,CAAc,IAAA,CAAK,GAAG,CAAC,CAAA,CAAA;AACvE;AAEA,SAAS,mBAAmB,YAAA,EAA8B;AACxD,EAAA,MAAM,aAAa,aAAA,CAAc,YAAY,CAAA,CAAE,OAAA,CAAQ,aAAa,EAAE,CAAA;AACtE,EAAA,MAAM,WAAA,GAAc,UAAA,CAAW,KAAA,CAAM,GAAG,CAAA;AACxC,EAAA,MAAM,QAAA,GAAW,WAAA,CAAY,WAAA,CAAY,MAAA,GAAS,CAAC,CAAA;AACnD,EAAA,MAAM,WAAA,GAAc,WAAA,CAAY,KAAA,CAAM,CAAA,EAAG,EAAE,CAAA;AAE3C,EAAA,IAAI,aAAa,YAAA,EAAc;AAC7B,IAAA,OAAO,WAAA;AAAA,EACT;AAEA,EAAA,MAAM,SAAA,GAAY,CAAC,GAAG,WAAA,EAAa,aAAa,KAAA,GAAQ,MAAA,GAAS,QAAQ,CAAA,CACtE,MAAA,CAAO,OAAO,EACd,GAAA,CAAI,CAAC,OAAA,KAAY,OAAA,CAAQ,OAAA,CAAQ,mBAAA,EAAqB,IAAI,CAAA,CAAE,OAAA,CAAQ,aAAA,EAAe,IAAI,CAAC,CAAA;AAE3F,EAAA,OAAO,SAAA,CAAU,KAAK,GAAG,CAAA;AAC3B;AAEA,SAAS,wBAAwB,IAAA,EAAoB;AACnD,EAAA,MAAM,YAAA,GAAe,IAAA,CAAK,IAAA,CAAK,IAAA,EAAM,gBAAgB,CAAA;AACrD,EAAA,MAAM,iBAAA,GAAoB,IAAA,CAAK,IAAA,CAAK,YAAA,EAAc,iBAAiB,CAAA;AACnE,EAAA,MAAM,iBAAA,GAAoB,IAAA,CAAK,IAAA,CAAK,YAAA,EAAc,iBAAiB,CAAA;AACnE,EAAA,MAAM,mBAAA,GAAsB,aAAA,CAAc,IAAA,CAAK,QAAA,CAAS,YAAA,EAAc,IAAA,CAAK,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,WAAW,CAAC,CAAC,CAAA;AAE1G,EAAA,SAAA,CAAU,YAAA,EAAc,EAAE,SAAA,EAAW,IAAA,EAAM,CAAA;AAC3C,EAAA,aAAA;AAAA,IACE,iBAAA;AAAA,IACA;AAAA,MACE,iBAAA;AAAA,MACA,kBAAA;AAAA,MACA,UAAA;AAAA,MACA,8BAAA;AAAA,MACA,8EAAA;AAAA,MACA,8BAAA;AAAA,MACA,WAAA;AAAA,MACA,UAAA;AAAA,MACA,0BAAA;AAAA,MACA,oCAAoC,iBAAiB,CAAA,WAAA,CAAA;AAAA,MACrD,WAAA;AAAA,MACA,SAAA;AAAA,MACA;AAAA,KACF,CAAE,KAAK,IAAI;AAAA,GACb;AACA,EAAA,aAAA;AAAA,IACE,iBAAA;AAAA,IACA;AAAA,MACE,CAAA,OAAA,EAAU,IAAA,CAAK,SAAA,CAAU,mBAAmB,CAAC,CAAA,CAAA,CAAA;AAAA,MAC7C,4CAAA;AAAA,MACA,CAAA,gBAAA,EAAmB,IAAA,CAAK,SAAA,CAAU,iBAAiB,CAAC,CAAA,CAAA,CAAA;AAAA,MACpD,EAAA;AAAA,MACA,+BAAA;AAAA,MACA;AAAA,KACF,CAAE,KAAK,IAAI;AAAA,GACb;AACF;AAEA,SAAS,oBAAoB,OAAA,EAAsC;AACjE,EAAA,IAAI,CAAC,OAAA,EAAS;AACZ,IAAA;AAAA,EACF;AAEA,EAAA,MAAM,KAAA,GAAQ,CAAC,GAAG,OAAO,CAAA;AAEzB,EAAA,OAAO,KAAA,CAAM,SAAS,CAAA,EAAG;AACvB,IAAA,MAAM,SAAA,GAAY,MAAM,KAAA,EAAM;AAE9B,IAAA,IAAI,KAAA,CAAM,OAAA,CAAQ,SAAS,CAAA,EAAG;AAC5B,MAAA,KAAA,CAAM,IAAA,CAAK,GAAG,SAAS,CAAA;AACvB,MAAA;AAAA,IACF;AAEA,IAAA,IAAI,CAAC,SAAA,IAAa,OAAO,SAAA,KAAc,QAAA,EAAU;AAC/C,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,MAAA,GAAS,SAAA;AACf,IAAA,IAAI,MAAA,CAAO,SAAS,eAAA,EAAiB;AACnC,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,gBAAgB,MAAA,CAAO,SAAA;AAC7B,IAAA,MAAM,iBAAA,GACJ,OAAO,aAAA,KAAkB,UAAA,GACrB,aAAA,GACA,OAAO,aAAA,EAAe,OAAA,KAAY,UAAA,GAChC,aAAA,CAAc,OAAA,GACd,IAAA;AAER,IAAA,IAAI,CAAC,iBAAA,IAAqB,MAAA,CAAO,oBAAA,EAAsB;AACrD,MAAA;AAAA,IACF;AAEA,IAAA,MAAA,CAAO,SAAA,GAAY,SAAS,SAAA,CAAU,IAAA,EAAM,OAAO,IAAA,EAAW;AAC5D,MAAA,MAAM,YAAA,GAAe,cAAc,EAAA,CAAG,KAAA,CAAM,KAAK,CAAC,CAAA,CAAE,CAAC,CAAC,CAAA;AAEtD,MAAA,IACE,YAAA,CAAa,QAAA,CAAS,eAAe,CAAA,IACpC,aAAa,QAAA,CAAS,kBAAkB,CAAA,KACtC,YAAA,CAAa,SAAS,KAAK,CAAA,IAAK,YAAA,CAAa,QAAA,CAAS,KAAK,CAAA,CAAA,EAC9D;AACA,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,OAAQ,kBAAuC,IAAA,CAAK,IAAA,EAAM,IAAA,EAAM,EAAA,EAAI,GAAG,IAAI,CAAA;AAAA,IAC7E,CAAA;AAEA,IAAA,MAAA,CAAO,oBAAA,GAAuB,IAAA;AAC9B,IAAA;AAAA,EACF;AACF;AAEA,SAAS,uBAAA,GAAkC;AACzC,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,qBAAA;AAAA,IACN,OAAO,MAAA,EAAQ;AACb,MAAA,mBAAA,CAAqB,MAAA,CAAO,OAAA,IAAW,EAAgB,CAAA;AAAA,IACzD,CAAA;AAAA,IACA,eAAe,MAAA,EAAQ;AACrB,MAAA,mBAAA,CAAoB,OAAO,OAAoB,CAAA;AAAA,IACjD;AAAA,GACF;AACF;AAEA,SAAS,4BAAA,GAAuC;AAC9C,EAAA,IAAI,IAAA,GAAO,EAAA;AAEX,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,yBAAA;AAAA,IACN,eAAe,MAAA,EAAQ;AACrB,MAAA,IAAA,GAAO,MAAA,CAAO,IAAA;AAAA,IAChB,CAAA;AAAA,IACA,UAAU,EAAA,EAAI;AACZ,MAAA,IAAI,OAAO,eAAA,EAAiB;AAC1B,QAAA,OAAO,uBAAA;AAAA,MACT;AAEA,MAAA,OAAO,IAAA;AAAA,IACT,CAAA;AAAA,IACA,KAAK,EAAA,EAAI;AACP,MAAA,IAAI,OAAO,uBAAA,EAAyB;AAClC,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,MAAM,YAAY,IAAA,CAAK,IAAA,CAAK,IAAA,EAAM,KAAA,EAAO,eAAe,QAAQ,CAAA;AAChE,MAAA,MAAM,QAAQ,iBAAA,CAAkB,SAAS,CAAA,CACtC,GAAA,CAAI,CAAC,IAAA,KAAS;AACb,QAAA,MAAM,WAAW,aAAA,CAAc,IAAA,CAAK,QAAA,CAAS,SAAA,EAAW,IAAI,CAAC,CAAA;AAC7D,QAAA,OAAO;AAAA,UACL,IAAA;AAAA,UACA,SAAA,EAAW,gBAAgB,QAAQ,CAAA;AAAA,UACnC,SAAA,EAAW,gBAAgB,QAAQ;AAAA,SACrC;AAAA,MACF,CAAC,CAAA,CACA,IAAA,CAAK,CAAC,MAAM,KAAA,KAAU;AACrB,QAAA,IAAI,IAAA,CAAK,cAAc,GAAA,EAAK;AAC1B,UAAA,OAAO,CAAA;AAAA,QACT;AAEA,QAAA,IAAI,KAAA,CAAM,cAAc,GAAA,EAAK;AAC3B,UAAA,OAAO,EAAA;AAAA,QACT;AAEA,QAAA,OAAO,IAAA,CAAK,SAAA,CAAU,aAAA,CAAc,KAAA,CAAM,SAAS,CAAA;AAAA,MACrD,CAAC,CAAA;AAEH,MAAA,MAAM,UAAU,KAAA,CACb,GAAA,CAAI,CAAC,KAAA,EAAO,KAAA,KAAU,eAAe,KAAK,CAAA,MAAA,EAAS,KAAK,SAAA,CAAU,aAAA,CAAc,MAAM,IAAI,CAAC,CAAC,CAAA,CAAE,CAAA,CAC9F,KAAK,IAAI,CAAA;AAEZ,MAAA,MAAM,WAAA,GAAc,KAAA,CACjB,GAAA,CAAI,CAAC,OAAO,KAAA,KAAU;AACrB,QAAA,IAAI,KAAA,CAAM,cAAc,GAAA,EAAK;AAC3B,UAAA,OAAO,gCAAgC,KAAK,CAAA,QAAA,EAAW,KAAK,SAAA,CAAU,KAAA,CAAM,SAAS,CAAC,CAAA,EAAA,CAAA;AAAA,QACxF;AAEA,QAAA,OAAO,CAAA,QAAA,EAAW,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,SAAS,CAAC,CAAA,kBAAA,EAAqB,KAAK,CAAA,QAAA,EAAW,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,SAAS,CAAC,CAAA,EAAA,CAAA;AAAA,MACvH,CAAC,CAAA,CACA,IAAA,CAAK,KAAK,CAAA;AAEb,MAAA,OAAO,GAAG,OAAO;;AAAA;AAAA,EAAyB,WAAW;AAAA;;AAAA;AAAA,CAAA;AAAA,IACvD,CAAA;AAAA,IACA,gBAAgB,OAAA,EAAS;AACvB,MAAA,MAAM,cAAA,GAAiB,aAAA,CAAc,OAAA,CAAQ,IAAI,CAAA;AACjD,MAAA,IAAI,CAAC,cAAA,CAAe,QAAA,CAAS,0BAA0B,CAAA,EAAG;AACxD,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,WAAA,CAAY,cAAc,uBAAuB,CAAA;AAC/E,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,OAAA,CAAQ,MAAA,CAAO,aAAa,MAAM,CAAA;AAAA,MACpC;AAAA,IACF;AAAA,GACF;AACF;AAEA,SAAS,0BAAA,GAAqC;AAC5C,EAAA,IAAI,IAAA,GAAO,EAAA;AAEX,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,kBAAA;AAAA,IACN,MAAA,GAAS;AACP,MAAA,OAAO;AAAA,QACL,KAAA,EAAO;AAAA,UACL,aAAA,EAAe;AAAA,YACb,KAAA,EAAO;AAAA,cACL,MAAM,IAAA,CAAK,IAAA,CAAK,QAAQ,GAAA,EAAI,EAAG,kBAAkB,iBAAiB;AAAA;AACpE;AACF,SACF;AAAA,QACA,YAAA,EAAc;AAAA,UACZ,OAAA,EAAS,CAAC,cAAA,EAAgB,eAAA,EAAiB,cAAc,cAAc;AAAA,SACzE;AAAA,QACA,OAAA,EAAS;AAAA,UACP,MAAA,EAAQ,CAAC,OAAA,EAAS,YAAA,EAAc,iBAAiB,cAAc;AAAA;AACjE,OACF;AAAA,IACF,CAAA;AAAA,IACA,eAAe,MAAA,EAAQ;AACrB,MAAA,IAAA,GAAO,MAAA,CAAO,IAAA;AACd,MAAA,uBAAA,CAAwB,IAAI,CAAA;AAAA,IAC9B,CAAA;AAAA,IACA,gBAAgB,MAAA,EAAQ;AACtB,MAAA,MAAA,CAAO,WAAA,CAAY,GAAA,CAAI,OAAO,GAAA,EAAK,KAAK,IAAA,KAAS;AAC/C,QAAA,MAAM,UAAA,GAAa,IAAI,GAAA,EAAK,KAAA,CAAM,KAAK,CAAC,CAAA,CAAE,CAAC,CAAA,IAAK,GAAA;AAChD,QAAA,MAAM,YAAA,GAAA,CACH,GAAA,CAAI,MAAA,KAAW,KAAA,IAAS,IAAI,MAAA,KAAW,MAAA,IAAU,CAAC,GAAA,CAAI,WACvD,CAAC,UAAA,CAAW,UAAA,CAAW,IAAI,KAC3B,CAAC,UAAA,CAAW,UAAA,CAAW,CAAA,CAAA,EAAI,gBAAgB,CAAA,CAAA,CAAG,CAAA,IAC9C,CAAC,UAAA,CAAW,WAAW,OAAO,CAAA,IAC9B,CAAC,UAAA,CAAW,WAAW,gBAAgB,CAAA,IACvC,IAAA,CAAK,OAAA,CAAQ,UAAU,CAAA,KAAM,EAAA;AAE/B,QAAA,IAAI,CAAC,YAAA,EAAc;AACjB,UAAA,IAAA,EAAK;AACL,UAAA;AAAA,QACF;AAEA,QAAA,MAAM,IAAA,GAAO;AAAA,UACX,iBAAA;AAAA,UACA,kBAAA;AAAA,UACA,UAAA;AAAA,UACA,8BAAA;AAAA,UACA,8EAAA;AAAA,UACA,8BAAA;AAAA,UACA,WAAA;AAAA,UACA,UAAA;AAAA,UACA,0BAAA;AAAA,UACA,CAAA,gCAAA,EAAmC,gBAAgB,CAAA,CAAA,EAAI,iBAAiB,CAAA,WAAA,CAAA;AAAA,UACxE,WAAA;AAAA,UACA,SAAA;AAAA,UACA;AAAA,SACF,CAAE,KAAK,IAAI,CAAA;AAEX,QAAA,GAAA,CAAI,SAAA,CAAU,gBAAgB,WAAW,CAAA;AACzC,QAAA,GAAA,CAAI,IAAI,MAAM,MAAA,CAAO,kBAAA,CAAmB,GAAA,EAAK,IAAI,CAAC,CAAA;AAAA,MACpD,CAAC,CAAA;AAAA,IACH,CAAA;AAAA,IACA,UAAU,EAAA,EAAI;AACZ,MAAA,IAAI,OAAO,iBAAA,EAAmB;AAC5B,QAAA,OAAO,yBAAA;AAAA,MACT;AAEA,MAAA,OAAO,IAAA;AAAA,IACT,CAAA;AAAA,IACA,KAAK,EAAA,EAAI;AACP,MAAA,IAAI,OAAO,yBAAA,EAA2B;AACpC,QAAA,OAAO,IAAA;AAAA,MACT;AAEA,MAAA,MAAM,MAAA,GAAS,IAAA,CAAK,IAAA,CAAK,IAAA,EAAM,OAAO,KAAK,CAAA;AAC3C,MAAA,MAAM,UAAA,GAAa,IAAA,CAAK,IAAA,CAAK,MAAA,EAAQ,cAAc,CAAA;AACnD,MAAA,MAAM,SAAA,GAAY,SAAS,UAAA,EAAY,EAAE,gBAAgB,KAAA,EAAO,CAAA,EAAG,MAAA,IAAS,IAAK,KAAA;AACjF,MAAA,MAAM,KAAA,GAAQ,iBAAA,CAAkB,MAAM,CAAA,CACnC,OAAO,CAAC,IAAA,KAAS,IAAA,CAAK,QAAA,CAAS,IAAI,CAAA,KAAM,cAAc,CAAA,CACvD,GAAA,CAAI,CAAC,IAAA,KAAS;AACb,QAAA,MAAM,WAAW,aAAA,CAAc,IAAA,CAAK,QAAA,CAAS,MAAA,EAAQ,IAAI,CAAC,CAAA;AAC1D,QAAA,OAAO;AAAA,UACL,IAAA;AAAA,UACA,SAAA,EAAW,mBAAmB,QAAQ,CAAA;AAAA,UACtC,SAAA,EAAW,mBAAmB,QAAQ;AAAA,SACxC;AAAA,MACF,CAAC,CAAA,CACA,IAAA,CAAK,CAAC,MAAM,KAAA,KAAU;AACrB,QAAA,IAAI,IAAA,CAAK,cAAc,GAAA,EAAK;AAC1B,UAAA,OAAO,CAAA;AAAA,QACT;AAEA,QAAA,IAAI,KAAA,CAAM,cAAc,GAAA,EAAK;AAC3B,UAAA,OAAO,EAAA;AAAA,QACT;AAEA,QAAA,OAAO,IAAA,CAAK,SAAA,CAAU,aAAA,CAAc,KAAA,CAAM,SAAS,CAAA;AAAA,MACrD,CAAC,CAAA;AAEH,MAAA,MAAM,OAAA,GAAU;AAAA,QACd,kDAAA;AAAA,QACA,+CAAA;AAAA,QACA,SAAA,GAAY,0BAA0B,IAAA,CAAK,SAAA,CAAU,cAAc,UAAU,CAAC,CAAC,CAAA,CAAA,CAAA,GAAM,EAAA;AAAA,QACrF,GAAG,KAAA,CAAM,GAAA,CAAI,CAAC,KAAA,EAAO,UAAU,CAAA,YAAA,EAAe,KAAK,CAAA,MAAA,EAAS,IAAA,CAAK,UAAU,aAAA,CAAc,KAAA,CAAM,IAAI,CAAC,CAAC,CAAA,CAAA,CAAG;AAAA,OAC1G,CACG,MAAA,CAAO,OAAO,CAAA,CACd,KAAK,IAAI,CAAA;AAEZ,MAAA,MAAM,YAAA,GAAe,MAClB,GAAA,CAAI,CAAC,OAAO,KAAA,KAAU,CAAA,QAAA,EAAW,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,SAAS,CAAC,CAAA,QAAA,EAAW,IAAA,CAAK,SAAA,CAAU,KAAA,CAAM,SAAS,CAAC,qBAAqB,KAAK,CAAA,EAAA,CAAI,CAAA,CACxI,IAAA,CAAK,KAAK,CAAA;AAEb,MAAA,MAAM,aAAa,SAAA,GACf,CAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAKR,YAAY;AAAA;AAAA;AAAA,CAAA,CAAA,GAIJ,CAAA;AAAA,EACR,YAAY;AAAA,CAAA,CAAA;AAGR,MAAA,OAAO,GAAG,OAAO;;AAAA,eAAA,EAEN,UAAU,CAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA,CAAA;AAAA,IAoBvB,CAAA;AAAA,IACA,gBAAgB,OAAA,EAAS;AACvB,MAAA,MAAM,cAAA,GAAiB,aAAA,CAAc,OAAA,CAAQ,IAAI,CAAA;AACjD,MAAA,IAAI,CAAC,cAAA,CAAe,QAAA,CAAS,WAAW,CAAA,EAAG;AACzC,QAAA;AAAA,MACF;AAEA,MAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,CAAO,WAAA,CAAY,cAAc,yBAAyB,CAAA;AACjF,MAAA,IAAI,MAAA,EAAQ;AACV,QAAA,OAAA,CAAQ,MAAA,CAAO,aAAa,MAAM,CAAA;AAAA,MACpC;AAAA,IACF,CAAA;AAAA,IACA,WAAA,GAAc;AACZ,MAAA,MAAM,OAAA,GAAU,IAAA,CAAK,IAAA,CAAK,IAAA,EAAM,MAAM,CAAA;AACtC,MAAA,MAAM,gBAAA,GAAmB,IAAA,CAAK,IAAA,CAAK,OAAA,EAAS,gBAAgB,CAAA;AAC5D,MAAA,MAAM,qBAAA,GAAwB,IAAA,CAAK,IAAA,CAAK,gBAAA,EAAkB,iBAAiB,CAAA;AAC3E,MAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,IAAA,CAAK,OAAA,EAAS,iBAAiB,CAAA;AAE1D,MAAA,IAAI,CAAC,SAAS,qBAAA,EAAuB,EAAE,gBAAgB,KAAA,EAAO,CAAA,EAAG,MAAA,IAAS,EAAG;AAC3E,QAAA;AAAA,MACF;AAEA,MAAA,MAAA,CAAO,aAAA,EAAe,EAAE,KAAA,EAAO,IAAA,EAAM,CAAA;AACrC,MAAA,UAAA,CAAW,uBAAuB,aAAa,CAAA;AAC/C,MAAA,MAAA,CAAO,kBAAkB,EAAE,SAAA,EAAW,IAAA,EAAM,KAAA,EAAO,MAAM,CAAA;AAAA,IAC3D;AAAA,GACF;AACF;AAEO,SAAS,WAAA,GAA8B;AAC5C,EAAA,OAAO,CAAC,0BAAA,EAA2B,EAAG,4BAAA,EAA6B,EAAG,yBAAyB,CAAA;AACjG","file":"vite.js","sourcesContent":["import { mkdirSync, readdirSync, renameSync, rmSync, statSync, writeFileSync } from \"node:fs\";\nimport path from \"node:path\";\nimport type { Plugin, PluginOption } from \"vite\";\nimport { normalizePath } from \"vite\";\n\nconst playgroundEntry = normalizePath(\"/playground/main.ts\");\nconst routerPackageEntry = normalizePath(\"/packages/olova-router/\");\nconst virtualRoutesId = \"virtual:router-demo-routes\";\nconst resolvedVirtualRoutesId = \"\\0virtual:router-demo-routes\";\nconst virtualAppEntryId = \"virtual:olova-app-entry\";\nconst resolvedVirtualAppEntryId = \"\\0virtual:olova-app-entry\";\nconst olovaPluginName = \"vite-plugin-olova\";\n\nexport const generatedDirName = \".olova\";\nexport const generatedHtmlName = \"index.html\";\nexport const generatedMainName = \"main.ts\";\n\nfunction toRouteSegment(segment: string): string {\n if (segment === \"index\") {\n return \"\";\n }\n\n if (segment === \"+not-found\") {\n return \"*\";\n }\n\n if (segment.startsWith(\"[...\") && segment.endsWith(\"]\")) {\n return `:${segment.slice(4, -1)}*`;\n }\n\n if (segment.startsWith(\"[\") && segment.endsWith(\"]\")) {\n return `:${segment.slice(1, -1)}`;\n }\n\n return segment;\n}\n\nfunction collectOlovaFiles(dir: string): string[] {\n const entries = readdirSync(dir);\n const files: string[] = [];\n\n for (const entry of entries) {\n const fullPath = path.join(dir, entry);\n const stats = statSync(fullPath);\n\n if (stats.isDirectory()) {\n files.push(...collectOlovaFiles(fullPath));\n continue;\n }\n\n if (entry.endsWith(\".olova\")) {\n files.push(fullPath);\n }\n }\n\n return files;\n}\n\nfunction createRoutePath(relativeFile: string): string {\n const withoutExt = relativeFile.replace(/\\.olova$/u, \"\");\n const segments = normalizePath(withoutExt).split(\"/\").map(toRouteSegment);\n\n if (segments.includes(\"*\")) {\n return \"*\";\n }\n\n const filtered = segments.filter(Boolean);\n return filtered.length === 0 ? \"/\" : `/${filtered.join(\"/\")}`;\n}\n\nfunction createRouteName(relativeFile: string): string {\n const withoutExt = relativeFile.replace(/\\.olova$/u, \"\");\n const segments = normalizePath(withoutExt)\n .split(\"/\")\n .filter((segment) => segment !== \"index\" && segment !== \"+not-found\")\n .map((segment) => segment.replace(/^\\[\\.\\.\\.(.+)\\]$/u, \"$1\").replace(/^\\[(.+)\\]$/u, \"$1\"));\n\n return segments.length === 0 ? \"home\" : segments.join(\".\");\n}\n\nfunction createAppRoutePath(relativeFile: string): string {\n const normalized = normalizePath(relativeFile).replace(/\\.olova$/u, \"\");\n const rawSegments = normalized.split(\"/\");\n const fileName = rawSegments[rawSegments.length - 1];\n const dirSegments = rawSegments.slice(0, -1);\n\n if (fileName === \"+not-found\") {\n return \"*\";\n }\n\n const fileSegment = fileName === \"app\" ? \"\" : toRouteSegment(fileName);\n const routeSegments = [...dirSegments.map(toRouteSegment), fileSegment].filter(Boolean);\n\n return routeSegments.length === 0 ? \"/\" : `/${routeSegments.join(\"/\")}`;\n}\n\nfunction createAppRouteName(relativeFile: string): string {\n const normalized = normalizePath(relativeFile).replace(/\\.olova$/u, \"\");\n const rawSegments = normalized.split(\"/\");\n const fileName = rawSegments[rawSegments.length - 1];\n const dirSegments = rawSegments.slice(0, -1);\n\n if (fileName === \"+not-found\") {\n return \"not-found\";\n }\n\n const nameParts = [...dirSegments, fileName === \"app\" ? \"home\" : fileName]\n .filter(Boolean)\n .map((segment) => segment.replace(/^\\[\\.\\.\\.(.+)\\]$/u, \"$1\").replace(/^\\[(.+)\\]$/u, \"$1\"));\n\n return nameParts.join(\".\");\n}\n\nfunction writeGeneratedBootstrap(root: string): void {\n const generatedDir = path.join(root, generatedDirName);\n const generatedHtmlPath = path.join(generatedDir, generatedHtmlName);\n const generatedMainPath = path.join(generatedDir, generatedMainName);\n const relativeStyleImport = normalizePath(path.relative(generatedDir, path.join(root, \"src\", \"style.css\")));\n\n mkdirSync(generatedDir, { recursive: true });\n writeFileSync(\n generatedHtmlPath,\n [\n \"<!doctype html>\",\n '<html lang=\"en\">',\n \" <head>\",\n ' <meta charset=\"UTF-8\" />',\n ' <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />',\n \" <title>Olova App</title>\",\n \" </head>\",\n \" <body>\",\n ' <div id=\"app\"></div>',\n ` <script type=\"module\" src=\"./${generatedMainName}\"></script>`,\n \" </body>\",\n \"</html>\",\n \"\",\n ].join(\"\\n\"),\n );\n writeFileSync(\n generatedMainPath,\n [\n `import ${JSON.stringify(relativeStyleImport)};`,\n 'import { createApp } from \"olova/runtime\";',\n `import App from ${JSON.stringify(virtualAppEntryId)};`,\n \"\",\n 'createApp(App).mount(\"#app\");',\n \"\",\n ].join(\"\\n\"),\n );\n}\n\nfunction patchOlovaTransform(plugins: unknown[] | undefined): void {\n if (!plugins) {\n return;\n }\n\n const queue = [...plugins];\n\n while (queue.length > 0) {\n const candidate = queue.shift();\n\n if (Array.isArray(candidate)) {\n queue.push(...candidate);\n continue;\n }\n\n if (!candidate || typeof candidate !== \"object\") {\n continue;\n }\n\n const plugin = candidate as Plugin & { __olovaRouterPatched?: boolean };\n if (plugin.name !== olovaPluginName) {\n continue;\n }\n\n const transformHook = plugin.transform;\n const originalTransform =\n typeof transformHook === \"function\"\n ? transformHook\n : typeof transformHook?.handler === \"function\"\n ? transformHook.handler\n : null;\n\n if (!originalTransform || plugin.__olovaRouterPatched) {\n return;\n }\n\n plugin.transform = function transform(code, id, ...rest): any {\n const normalizedId = normalizePath(id.split(\"?\", 1)[0]);\n\n if (\n normalizedId.endsWith(playgroundEntry) ||\n (normalizedId.includes(routerPackageEntry) &&\n (normalizedId.endsWith(\".ts\") || normalizedId.endsWith(\".js\")))\n ) {\n return null;\n }\n\n return (originalTransform as typeof transform).call(this, code, id, ...rest);\n };\n\n plugin.__olovaRouterPatched = true;\n return;\n }\n}\n\nfunction createOlovaCompatPlugin(): Plugin {\n return {\n name: \"olova-router-compat\",\n config(config) {\n patchOlovaTransform((config.plugins ?? []) as unknown[]);\n },\n configResolved(config) {\n patchOlovaTransform(config.plugins as unknown[]);\n },\n };\n}\n\nfunction createRouterDemoRoutesPlugin(): Plugin {\n let root = \"\";\n\n return {\n name: \"router-demo-file-routes\",\n configResolved(config) {\n root = config.root;\n },\n resolveId(id) {\n if (id === virtualRoutesId) {\n return resolvedVirtualRoutesId;\n }\n\n return null;\n },\n load(id) {\n if (id !== resolvedVirtualRoutesId) {\n return null;\n }\n\n const routesDir = path.join(root, \"src\", \"router-demo\", \"routes\");\n const files = collectOlovaFiles(routesDir)\n .map((file) => {\n const relative = normalizePath(path.relative(routesDir, file));\n return {\n file,\n routePath: createRoutePath(relative),\n routeName: createRouteName(relative),\n };\n })\n .sort((left, right) => {\n if (left.routePath === \"*\") {\n return 1;\n }\n\n if (right.routePath === \"*\") {\n return -1;\n }\n\n return left.routePath.localeCompare(right.routePath);\n });\n\n const imports = files\n .map((route, index) => `import Route${index} from ${JSON.stringify(normalizePath(route.file))}`)\n .join(\"\\n\");\n\n const definitions = files\n .map((route, index) => {\n if (route.routePath === \"*\") {\n return `{ path: \"*\", component: Route${index}, name: ${JSON.stringify(route.routeName)} }`;\n }\n\n return `{ path: ${JSON.stringify(route.routePath)}, component: Route${index}, name: ${JSON.stringify(route.routeName)} }`;\n })\n .join(\",\\n\");\n\n return `${imports}\\n\\nconst routes = [\\n${definitions}\\n]\\n\\nexport default routes\\n`;\n },\n handleHotUpdate(context) {\n const normalizedFile = normalizePath(context.file);\n if (!normalizedFile.includes(\"/src/router-demo/routes/\")) {\n return;\n }\n\n const module = context.server.moduleGraph.getModuleById(resolvedVirtualRoutesId);\n if (module) {\n context.server.reloadModule(module);\n }\n },\n };\n}\n\nfunction createOlovaAppRouterPlugin(): Plugin {\n let root = \"\";\n\n return {\n name: \"olova-app-router\",\n config() {\n return {\n build: {\n rollupOptions: {\n input: {\n main: path.join(process.cwd(), generatedDirName, generatedHtmlName),\n },\n },\n },\n optimizeDeps: {\n exclude: [\"olova-router\", \"olova/runtime\", \"olova/core\", \"olova/global\"],\n },\n resolve: {\n dedupe: [\"olova\", \"olova/core\", \"olova/runtime\", \"olova/global\"],\n },\n };\n },\n configResolved(config) {\n root = config.root;\n writeGeneratedBootstrap(root);\n },\n configureServer(server) {\n server.middlewares.use(async (req, res, next) => {\n const requestUrl = req.url?.split(\"?\", 1)[0] ?? \"/\";\n const isAppRequest =\n (req.method === \"GET\" || req.method === \"HEAD\" || !req.method) &&\n !requestUrl.startsWith(\"/@\") &&\n !requestUrl.startsWith(`/${generatedDirName}/`) &&\n !requestUrl.startsWith(\"/src/\") &&\n !requestUrl.startsWith(\"/node_modules/\") &&\n path.extname(requestUrl) === \"\";\n\n if (!isAppRequest) {\n next();\n return;\n }\n\n const html = [\n \"<!doctype html>\",\n '<html lang=\"en\">',\n \" <head>\",\n ' <meta charset=\"UTF-8\" />',\n ' <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />',\n \" <title>Olova App</title>\",\n \" </head>\",\n \" <body>\",\n ' <div id=\"app\"></div>',\n ` <script type=\"module\" src=\"/${generatedDirName}/${generatedMainName}\"></script>`,\n \" </body>\",\n \"</html>\",\n \"\",\n ].join(\"\\n\");\n\n res.setHeader(\"Content-Type\", \"text/html\");\n res.end(await server.transformIndexHtml(\"/\", html));\n });\n },\n resolveId(id) {\n if (id === virtualAppEntryId) {\n return resolvedVirtualAppEntryId;\n }\n\n return null;\n },\n load(id) {\n if (id !== resolvedVirtualAppEntryId) {\n return null;\n }\n\n const appDir = path.join(root, \"src\", \"app\");\n const layoutPath = path.join(appDir, \"layout.olova\");\n const hasLayout = statSync(layoutPath, { throwIfNoEntry: false })?.isFile?.() ?? false;\n const files = collectOlovaFiles(appDir)\n .filter((file) => path.basename(file) !== \"layout.olova\")\n .map((file) => {\n const relative = normalizePath(path.relative(appDir, file));\n return {\n file,\n routePath: createAppRoutePath(relative),\n routeName: createAppRouteName(relative),\n };\n })\n .sort((left, right) => {\n if (left.routePath === \"*\") {\n return 1;\n }\n\n if (right.routePath === \"*\") {\n return -1;\n }\n\n return left.routePath.localeCompare(right.routePath);\n });\n\n const imports = [\n 'import { defineComponent } from \"olova/runtime\";',\n 'import { BrowserRouter } from \"olova-router\";',\n hasLayout ? `import RootLayout from ${JSON.stringify(normalizePath(layoutPath))};` : \"\",\n ...files.map((route, index) => `import Route${index} from ${JSON.stringify(normalizePath(route.file))};`),\n ]\n .filter(Boolean)\n .join(\"\\n\");\n\n const routeObjects = files\n .map((route, index) => `{ path: ${JSON.stringify(route.routePath)}, name: ${JSON.stringify(route.routeName)}, component: Route${index} }`)\n .join(\",\\n\");\n\n const routesCode = hasLayout\n ? `[\n {\n path: \"/\",\n component: RootLayout,\n children: [\n${routeObjects}\n ]\n }\n]`\n : `[\n${routeObjects}\n]`;\n\n return `${imports}\n\nconst routes = ${routesCode};\n\nconst AppEntry = defineComponent(() => ({\n template: \"__O_COMP_app_entry__\",\n textBindings: [],\n htmlBindings: [],\n attrBindings: [],\n eventBindings: [],\n slotBindings: [],\n componentBindings: [\n {\n id: \"app_entry\",\n getComponent: () => BrowserRouter,\n getProps: () => ({ routes })\n }\n ]\n}));\n\nexport default AppEntry;\n`;\n },\n handleHotUpdate(context) {\n const normalizedFile = normalizePath(context.file);\n if (!normalizedFile.includes(\"/src/app/\")) {\n return;\n }\n\n const module = context.server.moduleGraph.getModuleById(resolvedVirtualAppEntryId);\n if (module) {\n context.server.reloadModule(module);\n }\n },\n closeBundle() {\n const distDir = path.join(root, \"dist\");\n const generatedDistDir = path.join(distDir, generatedDirName);\n const generatedDistHtmlPath = path.join(generatedDistDir, generatedHtmlName);\n const distIndexPath = path.join(distDir, generatedHtmlName);\n\n if (!statSync(generatedDistHtmlPath, { throwIfNoEntry: false })?.isFile?.()) {\n return;\n }\n\n rmSync(distIndexPath, { force: true });\n renameSync(generatedDistHtmlPath, distIndexPath);\n rmSync(generatedDistDir, { recursive: true, force: true });\n },\n };\n}\n\nexport function olovaRouter(): PluginOption[] {\n return [createOlovaAppRouterPlugin(), createRouterDemoRoutesPlugin(), createOlovaCompatPlugin()];\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "olova-router",
3
- "version": "1.0.16",
3
+ "version": "1.0.17",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",