@reckona/mreact-router 0.0.159 → 0.0.161

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.
Files changed (183) hide show
  1. package/dist/actions.d.ts +6 -0
  2. package/dist/actions.d.ts.map +1 -1
  3. package/dist/actions.js.map +1 -1
  4. package/dist/adapters/aws-lambda.d.ts +29 -0
  5. package/dist/adapters/aws-lambda.d.ts.map +1 -1
  6. package/dist/adapters/aws-lambda.js.map +1 -1
  7. package/dist/adapters/cloudflare.d.ts +78 -0
  8. package/dist/adapters/cloudflare.d.ts.map +1 -1
  9. package/dist/adapters/cloudflare.js.map +1 -1
  10. package/dist/adapters/edge.d.ts +6 -0
  11. package/dist/adapters/edge.d.ts.map +1 -1
  12. package/dist/adapters/edge.js.map +1 -1
  13. package/dist/adapters/node.d.ts +7 -0
  14. package/dist/adapters/node.d.ts.map +1 -1
  15. package/dist/adapters/node.js.map +1 -1
  16. package/dist/adapters/static.d.ts +6 -0
  17. package/dist/adapters/static.d.ts.map +1 -1
  18. package/dist/adapters/static.js.map +1 -1
  19. package/dist/app-router-globals.d.ts +6 -0
  20. package/dist/app-router-globals.d.ts.map +1 -1
  21. package/dist/app-router-globals.js.map +1 -1
  22. package/dist/assets.d.ts +18 -0
  23. package/dist/assets.d.ts.map +1 -1
  24. package/dist/assets.js +6 -0
  25. package/dist/assets.js.map +1 -1
  26. package/dist/build.d.ts +30 -0
  27. package/dist/build.d.ts.map +1 -1
  28. package/dist/build.js +4 -0
  29. package/dist/build.js.map +1 -1
  30. package/dist/cache-stats.d.ts +3 -0
  31. package/dist/cache-stats.d.ts.map +1 -1
  32. package/dist/cache-stats.js.map +1 -1
  33. package/dist/cache.d.ts +15 -0
  34. package/dist/cache.d.ts.map +1 -1
  35. package/dist/cache.js.map +1 -1
  36. package/dist/cli-options.d.ts.map +1 -1
  37. package/dist/cli-options.js +2 -0
  38. package/dist/cli-options.js.map +1 -1
  39. package/dist/cli.js +1 -0
  40. package/dist/cli.js.map +1 -1
  41. package/dist/config.d.ts +15 -0
  42. package/dist/config.d.ts.map +1 -1
  43. package/dist/config.js.map +1 -1
  44. package/dist/cookies.d.ts +3 -0
  45. package/dist/cookies.d.ts.map +1 -1
  46. package/dist/cookies.js.map +1 -1
  47. package/dist/csrf.d.ts +12 -0
  48. package/dist/csrf.d.ts.map +1 -1
  49. package/dist/csrf.js +12 -0
  50. package/dist/csrf.js.map +1 -1
  51. package/dist/deferred.d.ts +9 -0
  52. package/dist/deferred.d.ts.map +1 -1
  53. package/dist/deferred.js +6 -0
  54. package/dist/deferred.js.map +1 -1
  55. package/dist/dev-server.d.ts +3 -0
  56. package/dist/dev-server.d.ts.map +1 -1
  57. package/dist/dev-server.js.map +1 -1
  58. package/dist/file-conventions.d.ts +3 -0
  59. package/dist/file-conventions.d.ts.map +1 -1
  60. package/dist/file-conventions.js.map +1 -1
  61. package/dist/i18n.d.ts +15 -0
  62. package/dist/i18n.d.ts.map +1 -1
  63. package/dist/i18n.js +6 -0
  64. package/dist/i18n.js.map +1 -1
  65. package/dist/import-policy.d.ts +3 -0
  66. package/dist/import-policy.d.ts.map +1 -1
  67. package/dist/import-policy.js.map +1 -1
  68. package/dist/index.d.ts +19 -0
  69. package/dist/index.d.ts.map +1 -1
  70. package/dist/index.js +10 -0
  71. package/dist/index.js.map +1 -1
  72. package/dist/link.d.ts +34 -0
  73. package/dist/link.d.ts.map +1 -1
  74. package/dist/link.js.map +1 -1
  75. package/dist/logger.d.ts +33 -0
  76. package/dist/logger.d.ts.map +1 -1
  77. package/dist/logger.js.map +1 -1
  78. package/dist/multipart.d.ts +15 -0
  79. package/dist/multipart.d.ts.map +1 -1
  80. package/dist/multipart.js +3 -0
  81. package/dist/multipart.js.map +1 -1
  82. package/dist/native-escape.d.ts +3 -0
  83. package/dist/native-escape.d.ts.map +1 -1
  84. package/dist/native-escape.js +3 -0
  85. package/dist/native-escape.js.map +1 -1
  86. package/dist/navigation-state.d.ts +15 -0
  87. package/dist/navigation-state.d.ts.map +1 -1
  88. package/dist/navigation-state.js +6 -0
  89. package/dist/navigation-state.js.map +1 -1
  90. package/dist/navigation.d.ts +9 -0
  91. package/dist/navigation.d.ts.map +1 -1
  92. package/dist/navigation.js +6 -0
  93. package/dist/navigation.js.map +1 -1
  94. package/dist/prerender-store.d.ts +21 -0
  95. package/dist/prerender-store.d.ts.map +1 -1
  96. package/dist/prerender-store.js +9 -0
  97. package/dist/prerender-store.js.map +1 -1
  98. package/dist/render.d.ts +12 -0
  99. package/dist/render.d.ts.map +1 -1
  100. package/dist/render.js +3 -0
  101. package/dist/render.js.map +1 -1
  102. package/dist/routes.d.ts +30 -0
  103. package/dist/routes.d.ts.map +1 -1
  104. package/dist/routes.js +6 -0
  105. package/dist/routes.js.map +1 -1
  106. package/dist/runtime-cache.d.ts +4 -0
  107. package/dist/runtime-cache.d.ts.map +1 -1
  108. package/dist/runtime-cache.js +3 -0
  109. package/dist/runtime-cache.js.map +1 -1
  110. package/dist/runtime-state.d.ts +3 -0
  111. package/dist/runtime-state.d.ts.map +1 -1
  112. package/dist/runtime-state.js +3 -0
  113. package/dist/runtime-state.js.map +1 -1
  114. package/dist/serve.d.ts +24 -0
  115. package/dist/serve.d.ts.map +1 -1
  116. package/dist/serve.js +6 -0
  117. package/dist/serve.js.map +1 -1
  118. package/dist/session.d.ts +12 -0
  119. package/dist/session.d.ts.map +1 -1
  120. package/dist/session.js.map +1 -1
  121. package/dist/stream-list.d.ts +12 -0
  122. package/dist/stream-list.d.ts.map +1 -1
  123. package/dist/stream-list.js +3 -0
  124. package/dist/stream-list.js.map +1 -1
  125. package/dist/trace.d.ts +30 -0
  126. package/dist/trace.d.ts.map +1 -1
  127. package/dist/trace.js +6 -0
  128. package/dist/trace.js.map +1 -1
  129. package/dist/typed-routes.d.ts +33 -0
  130. package/dist/typed-routes.d.ts.map +1 -1
  131. package/dist/typed-routes.js.map +1 -1
  132. package/dist/types.d.ts +72 -0
  133. package/dist/types.d.ts.map +1 -1
  134. package/dist/types.js.map +1 -1
  135. package/dist/upgrade.d.ts +3 -0
  136. package/dist/upgrade.d.ts.map +1 -1
  137. package/dist/upgrade.js.map +1 -1
  138. package/dist/vite.d.ts +21 -0
  139. package/dist/vite.d.ts.map +1 -1
  140. package/dist/vite.js +15 -0
  141. package/dist/vite.js.map +1 -1
  142. package/package.json +11 -11
  143. package/src/actions.ts +6 -0
  144. package/src/adapters/aws-lambda.ts +29 -0
  145. package/src/adapters/cloudflare.ts +78 -0
  146. package/src/adapters/edge.ts +6 -0
  147. package/src/adapters/node.ts +7 -0
  148. package/src/adapters/static.ts +6 -0
  149. package/src/app-router-globals.ts +6 -0
  150. package/src/assets.ts +18 -0
  151. package/src/build.ts +38 -0
  152. package/src/cache-stats.ts +3 -0
  153. package/src/cache.ts +15 -0
  154. package/src/cli-options.ts +2 -0
  155. package/src/cli.ts +1 -0
  156. package/src/config.ts +15 -0
  157. package/src/cookies.ts +3 -0
  158. package/src/csrf.ts +12 -0
  159. package/src/deferred.ts +9 -0
  160. package/src/dev-server.ts +3 -0
  161. package/src/file-conventions.ts +3 -0
  162. package/src/i18n.ts +15 -0
  163. package/src/import-policy.ts +3 -0
  164. package/src/index.ts +19 -0
  165. package/src/link.ts +34 -0
  166. package/src/logger.ts +33 -0
  167. package/src/multipart.ts +15 -0
  168. package/src/native-escape.ts +3 -0
  169. package/src/navigation-state.ts +15 -0
  170. package/src/navigation.ts +9 -0
  171. package/src/prerender-store.ts +21 -0
  172. package/src/render.ts +12 -0
  173. package/src/routes.ts +30 -0
  174. package/src/runtime-cache.ts +5 -0
  175. package/src/runtime-state.ts +3 -0
  176. package/src/serve.ts +24 -0
  177. package/src/session.ts +12 -0
  178. package/src/stream-list.ts +12 -0
  179. package/src/trace.ts +30 -0
  180. package/src/typed-routes.ts +33 -0
  181. package/src/types.ts +72 -0
  182. package/src/upgrade.ts +3 -0
  183. package/src/vite.ts +21 -0
package/dist/vite.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vite.js","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport type { ServerResponse } from \"node:http\";\nimport { dirname } from \"node:path\";\nimport { formatDiagnostic } from \"@reckona/mreact-compiler\";\nimport {\n createCompilerModuleContext,\n transformCompilerModuleContext,\n} from \"@reckona/mreact-compiler/internal\";\nimport {\n normalizePath,\n type Connect,\n type Plugin,\n type PluginOption,\n type UserConfig,\n type ViteDevServer,\n} from \"vite\";\nimport type { AppRouterServerActionOptions } from \"./actions.js\";\nimport type { AppRouterCache } from \"./cache.js\";\nimport {\n resolveAppRouterProjectOptions,\n type AppRouterProjectOptions,\n type ResolvedAppRouterProject,\n} from \"./config.js\";\nimport type { AppRouterImportPolicy } from \"./import-policy.js\";\nimport {\n collectClientRouteReferences,\n createClientRouteInferenceCache,\n formatClientRouteInferenceDiagnostic,\n isClientRouteSource,\n navigationRuntimeLinkDisabledDiagnostic,\n resolveNavigationRuntime,\n type ClientRouteInferenceCache,\n} from \"./client-route-inference.js\";\nimport {\n buildNavigationRuntimeBundle,\n buildClientRouteBundle,\n buildClientRouteEntrySource,\n clientScriptForPath,\n navigationRuntimeScriptForDev,\n} from \"./navigation-runtime.js\";\nimport { nodeRequestToWebRequest, sendResponse } from \"./http.js\";\nimport { renderAppRequest } from \"./render.js\";\nimport { stripRouteClientOnlyExports } from \"./route-source.js\";\nimport {\n collectRouteCssHrefs,\n collectSpecialBoundaryFiles,\n createCachedRouteSourceReader,\n} from \"./route-styles.js\";\nimport { createRouteMatcher, scanAppRoutes, type AppRoute } from \"./routes.js\";\nimport { resolveRequestHost, type RequestHostPolicy } from \"./serve.js\";\nimport { hasJsxSyntax } from \"./source-jsx.js\";\nimport { prependTailwindSourceDirectives } from \"./tailwind-source.js\";\nimport { workspacePackageFile } from \"./workspace-packages.js\";\n\nexport interface AppRouterViteMiddlewareOptions extends AppRouterProjectOptions {\n allowedHosts?: readonly string[] | undefined;\n define?: UserConfig[\"define\"] | undefined;\n hostPolicy?: RequestHostPolicy | undefined;\n importPolicy?: AppRouterImportPolicy | undefined;\n routeCache?: AppRouterCache | undefined;\n serverActions?: AppRouterServerActionOptions | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}\n\ntype AppRouterViteRuntimeMiddlewareOptions = AppRouterViteMiddlewareOptions & {\n clientRouteInferenceCache?: ClientRouteInferenceCache | undefined;\n navigationScanVitePlugins?: readonly PluginOption[] | undefined;\n viteDevServer?: ViteDevServer | undefined;\n};\n\nexport interface AppRouterVitePluginOptions extends AppRouterProjectOptions {\n allowedHosts?: readonly string[] | undefined;\n hostPolicy?: RequestHostPolicy | undefined;\n importPolicy?: AppRouterImportPolicy | undefined;\n routeCache?: AppRouterCache | undefined;\n serverActions?: AppRouterServerActionOptions | undefined;\n}\n\nconst clientPrefix = \"/_mreact/client/\";\nconst devCssPrefix = \"/_mreact/dev-css/\";\nconst devCssSourceQuery = \"mreact-router-dev-css-source\";\nconst clientRouteModuleQuery = \"mreact-router-client-route\";\nconst virtualClientPrefix = \"\\0mreact-router-client:\";\nconst virtualReactiveCoreId = \"\\0mreact-router-reactive-core\";\nconst virtualReactiveDevtoolsId = \"\\0mreact-router-reactive-devtools\";\nconst mreactRouterConfigKey = \"__mreactRouterConfig\";\n\ntype MreactRouterPluginConfig = ResolvedAppRouterProject & {\n importPolicy?: AppRouterImportPolicy | undefined;\n};\n\ntype MreactRouterPlugin = Plugin & {\n [mreactRouterConfigKey]: MreactRouterPluginConfig;\n};\n\nexport function createAppRouterVitePlugin(options: AppRouterVitePluginOptions): Plugin {\n const project = resolveAppRouterProjectOptions(options);\n const normalizedSourceDirs = project.allowedSourceDirs.map((directory) =>\n normalizePath(directory),\n );\n const packageFile = (monorepoDir: string, packageName: string, entry: string): string =>\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry,\n monorepoDir,\n packageName,\n });\n const reactiveCorePath = packageFile(\"reactive-core\", \"@reckona/mreact-reactive-core\", \"index\");\n const reactiveCoreDir = normalizePath(dirname(reactiveCorePath));\n const reactiveDomPath = packageFile(\"reactive-dom\", \"@reckona/mreact-reactive-dom\", \"index\");\n const reactiveDomDir = normalizePath(dirname(reactiveDomPath));\n const reactPath = packageFile(\"react\", \"@reckona/mreact\", \"index\");\n const reactDir = normalizePath(dirname(reactPath));\n const reactCompatPath = packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"index\");\n const reactCompatDir = normalizePath(dirname(reactCompatPath));\n const runtimePackageDirs = [reactiveCoreDir, reactiveDomDir, reactDir, reactCompatDir];\n const runtimePackageNames = [\n \"@reckona/mreact\",\n \"@reckona/mreact-reactive-core\",\n \"@reckona/mreact-reactive-dom\",\n \"@reckona/mreact-compat\",\n ];\n const runtimePaths = new Map([\n [\"react\", reactCompatPath],\n [\"react-dom\", reactCompatPath],\n [\"react-dom/client\", reactCompatPath],\n [\"react-dom/server\", reactCompatPath],\n [\n \"react/jsx-dev-runtime\",\n packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"jsx-dev-runtime\"),\n ],\n [\"react/jsx-runtime\", packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"jsx-runtime\")],\n [\"@reckona/mreact\", reactPath],\n [\n \"@reckona/mreact-reactive-core/internal\",\n packageFile(\"reactive-core\", \"@reckona/mreact-reactive-core\", \"internal\"),\n ],\n [\"@reckona/mreact-reactive-dom\", reactiveDomPath],\n [\"@reckona/mreact-compat\", reactCompatPath],\n [\n \"@reckona/mreact-compat/event-priority\",\n packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"event-priority\"),\n ],\n [\n \"@reckona/mreact-compat/flight\",\n packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"flight\"),\n ],\n [\n \"@reckona/mreact-compat/hooks\",\n packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"hooks-entry\"),\n ],\n [\n \"@reckona/mreact-compat/internal\",\n packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"internal\"),\n ],\n [\n \"@reckona/mreact-compat/jsx-dev-runtime\",\n packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"jsx-dev-runtime\"),\n ],\n [\n \"@reckona/mreact-compat/jsx-runtime\",\n packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"jsx-runtime\"),\n ],\n [\n \"@reckona/mreact-compat/scheduler\",\n packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"scheduler\"),\n ],\n [\"@reckona/mreact-router/link\", packageFile(\"router\", \"@reckona/mreact-router\", \"link\")],\n [\n \"@reckona/mreact-router/navigation-state\",\n packageFile(\"router\", \"@reckona/mreact-router\", \"navigation-state\"),\n ],\n [\n \"@reckona/mreact-shared/url-safety\",\n packageFile(\"shared\", \"@reckona/mreact-shared\", \"url-safety\"),\n ],\n ]);\n\n // User-declared plugins captured from the resolving config. Unlike the fully\n // resolved `server.config.plugins`, this excludes Vite internals (e.g. the\n // built-in CSS plugin) whose `transform` requires a dev-server environment the\n // lightweight navigation scan cannot provide. Mirrors what the build forwards.\n let userVitePlugins: readonly PluginOption[] | undefined;\n\n const plugin: MreactRouterPlugin = {\n [mreactRouterConfigKey]: {\n ...project,\n ...(options.importPolicy === undefined ? {} : { importPolicy: options.importPolicy }),\n },\n enforce: \"pre\",\n name: \"mreact-router\",\n config(userConfig) {\n userVitePlugins = routeTransformUserVitePlugins(userConfig.plugins);\n\n return {\n optimizeDeps: {\n // Every client-importable mreact package must resolve through the\n // same dev module graph. Prebundling any of them inlines a second\n // reactive-core (and devtools) copy into the deps chunk, which\n // silently breaks cross-package cell tracking, and also bypasses the\n // react/react-dom alias resolution this plugin provides.\n exclude: [\n \"react\",\n \"react-dom\",\n \"react-dom/client\",\n \"react-dom/server\",\n \"react/jsx-dev-runtime\",\n \"react/jsx-runtime\",\n \"@reckona/mreact\",\n \"@reckona/mreact-auth\",\n \"@reckona/mreact-compat\",\n \"@reckona/mreact-devtools\",\n \"@reckona/mreact-dom\",\n \"@reckona/mreact-forms\",\n \"@reckona/mreact-next\",\n \"@reckona/mreact-query\",\n \"@reckona/mreact-reactive-core\",\n \"@reckona/mreact-reactive-dom\",\n \"@reckona/mreact-router\",\n \"@reckona/mreact-scheduler\",\n \"@reckona/mreact-shared\",\n \"@reckona/mreact-store\",\n \"@reckona/mreact-test-utils\",\n \"@reckona/mreact-virtual\",\n ],\n },\n };\n },\n configureServer(server) {\n server.middlewares.use(createDevCssProxyMiddleware());\n\n return () => {\n const middlewareOptions: AppRouterViteRuntimeMiddlewareOptions = {\n ...options,\n define: server.config.define,\n navigationScanVitePlugins: userVitePlugins ?? [],\n viteDevServer: server,\n vitePlugins: server.config.plugins,\n };\n\n server.middlewares.use(createAppRouterViteMiddleware(middlewareOptions));\n };\n },\n handleHotUpdate(context) {\n const normalizedFile = normalizePath(context.file);\n\n if (!normalizedSourceDirs.some((directory) => normalizedFile.startsWith(directory))) {\n return;\n }\n\n const timestamp = Date.now();\n const updates = Array.from(context.server.moduleGraph.idToModuleMap.values())\n .filter((moduleNode) => isMreactClientDevModuleId(moduleNode.id))\n .map((moduleNode) => {\n context.server.moduleGraph.invalidateModule(moduleNode);\n\n return {\n acceptedPath: moduleNode.url,\n path: moduleNode.url,\n timestamp,\n type: \"js-update\" as const,\n };\n });\n\n if (updates.length > 0) {\n context.server.ws.send({ type: \"update\", updates });\n }\n\n return [];\n },\n load(id) {\n if (isDevCssSourceModuleId(id)) {\n return loadDevCssSourceModule({\n cssFile: clientRequestPath(id),\n sourceDirs: project.allowedSourceDirs,\n });\n }\n\n if (id === virtualReactiveCoreId) {\n return `import { cell as nativeCell } from ${JSON.stringify(reactiveCorePath)};\nexport * from ${JSON.stringify(reactiveCorePath)};\nexport function cell(initial) {\n const routeCell = globalThis.__mreactRouteCell;\n return typeof routeCell === \"function\" ? routeCell(nativeCell, initial) : nativeCell(initial);\n}`;\n }\n\n if (id === virtualReactiveDevtoolsId) {\n return `export function emitReactiveDevtoolsEvent() {}\nexport function hasReactiveDevtoolsEmitter() { return false; }\nexport function currentDevtoolsEmitter() { return undefined; }\nexport function currentReactiveDevtools() { return undefined; }`;\n }\n\n if (id.startsWith(virtualClientPrefix)) {\n return renderAppRouterClientAsset(project.routesDir, id.slice(virtualClientPrefix.length), {\n dev: true,\n }).then(async (response) => {\n if (!response.ok) {\n const message = await response.text();\n throw new Error(message || `MReact client route asset was not found: ${id}`);\n }\n\n return response.text();\n });\n }\n\n const requestPath = clientRouteModuleRequestPath(id);\n\n return requestPath === undefined\n ? undefined\n : renderAppRouterClientRouteDevModule(project.routesDir, requestPath);\n },\n transform(code, id, options) {\n if (options?.ssr === true) {\n return undefined;\n }\n\n if (isMreactClientDevModuleId(id)) {\n return undefined;\n }\n\n const filename = clientRequestPath(id);\n\n if (!isMreactClientSourceDependency(filename, normalizedSourceDirs)) {\n return undefined;\n }\n\n const moduleContext = createCompilerModuleContext({ code, filename });\n\n if (!hasJsxSyntax(moduleContext.program)) {\n return undefined;\n }\n\n const output = transformCompilerModuleContext({\n code,\n dev: true,\n filename,\n mode: isCompatSourcePath(filename) ? \"compat\" : \"reactive\",\n moduleContext,\n target: \"client\",\n });\n\n if (output.diagnostics.length > 0) {\n throw new Error(\n output.diagnostics.map((diagnostic) => formatDiagnostic(filename, diagnostic)).join(\"\\n\"),\n );\n }\n\n return {\n code: output.code,\n map: null,\n };\n },\n async resolveId(id, importer) {\n const runtimePath = runtimePaths.get(id);\n\n if (id === \"@reckona/mreact-reactive-core\") {\n if (importerInRuntimePackage(importer, runtimePackageDirs, runtimePackageNames)) {\n return reactiveCorePath;\n }\n\n return virtualReactiveCoreId;\n }\n\n if (\n id === \"./devtools.js\" &&\n importerInRuntimePackage(importer, [reactiveCoreDir], [\"@reckona/mreact-reactive-core\"])\n ) {\n return virtualReactiveDevtoolsId;\n }\n\n if (runtimePath !== undefined) {\n return runtimePath;\n }\n\n const requestPath = clientRequestPath(id);\n\n if (requestPath === `${clientPrefix}${navigationRuntimeScriptForDev()}`) {\n return `${virtualClientPrefix}${requestPath}`;\n }\n\n if (!requestPath.startsWith(clientPrefix)) {\n return undefined;\n }\n\n const route = await clientRouteForRequestPath(project.routesDir, requestPath);\n\n return route === undefined ? undefined : clientRouteModuleId(route.file, requestPath);\n },\n };\n\n return plugin;\n}\n\nfunction isMreactClientSourceDependency(\n filename: string,\n normalizedSourceDirs: readonly string[],\n): boolean {\n const normalized = normalizePath(filename);\n\n return (\n /\\.(?:mreact\\.)?[cm]?[jt]sx?$/.test(normalized) &&\n !normalized.includes(\"/node_modules/\") &&\n normalizedSourceDirs.some(\n (directory) => normalized === directory || normalized.startsWith(`${directory}/`),\n )\n );\n}\n\nfunction isCompatSourcePath(filename: string): boolean {\n return /\\.compat(?:\\.mreact)?(?:\\.[cm]?[jt]sx?)?$/.test(filename);\n}\n\nexport const mreactRouter = createAppRouterVitePlugin;\n\nfunction routeTransformUserVitePlugins(\n pluginOptions: readonly PluginOption[] | undefined,\n): PluginOption[] {\n const plugins: PluginOption[] = [];\n const visit = (option: PluginOption | null | false | undefined): void => {\n if (option === false || option === null || option === undefined) {\n return;\n }\n\n if (Array.isArray(option)) {\n for (const child of option) {\n visit(child);\n }\n return;\n }\n\n if (typeof option === \"object\" && \"then\" in option) {\n return;\n }\n\n if (typeof option === \"object\" && mreactRouterConfigKey in option) {\n return;\n }\n\n plugins.push(option);\n };\n\n for (const option of pluginOptions ?? []) {\n visit(option);\n }\n\n return plugins;\n}\n\nexport function mreactRouterConfigFromPlugins(\n plugins: readonly unknown[],\n): ResolvedAppRouterProject | undefined {\n for (const plugin of plugins.flat(Infinity)) {\n if (plugin !== null && typeof plugin === \"object\" && mreactRouterConfigKey in plugin) {\n const config = (plugin as MreactRouterPlugin)[mreactRouterConfigKey];\n\n if (\"project\" in config) {\n return (config as unknown as { project: ResolvedAppRouterProject }).project;\n }\n\n return config as unknown as ResolvedAppRouterProject;\n }\n }\n\n return undefined;\n}\n\nexport function createAppRouterViteMiddleware(\n options: AppRouterViteMiddlewareOptions,\n): Connect.NextHandleFunction {\n // Reused across requests so dev navigation-script detection memoizes module\n // contexts/analyses instead of re-walking every route's import graph per\n // request. The source-keyed caches keep only the latest content version per\n // file (see setLatestModuleCacheEntry), so repeated edits do not accumulate\n // stale entries over a long dev session.\n const runtimeOptions: AppRouterViteRuntimeMiddlewareOptions = {\n ...options,\n clientRouteInferenceCache: createClientRouteInferenceCache(),\n };\n\n return (request, response, next) => {\n void handleAppRouterViteRequest(runtimeOptions, request, response, next);\n };\n}\n\nasync function handleAppRouterViteRequest(\n options: AppRouterViteRuntimeMiddlewareOptions,\n incoming: Connect.IncomingMessage,\n outgoing: ServerResponse,\n next: Connect.NextFunction,\n): Promise<void> {\n try {\n const project = resolveAppRouterProjectOptions(options);\n const host = resolveRequestHost({\n allowedHosts: options.allowedHosts,\n fallbackHost: \"localhost\",\n hostPolicy: options.hostPolicy,\n rawHost: incoming.headers.host,\n });\n const origin = `http://${host}`;\n const url = new URL(incoming.url ?? \"/\", origin);\n\n if (url.pathname.startsWith(clientPrefix)) {\n if (options.viteDevServer !== undefined) {\n const transformed = await options.viteDevServer.transformRequest(\n `${url.pathname}${url.search}`,\n );\n\n if (transformed !== null) {\n await sendResponse(\n outgoing,\n new Response(transformed.code, {\n headers: { \"content-type\": \"text/javascript; charset=utf-8\" },\n }),\n );\n return;\n }\n }\n\n await sendResponse(\n outgoing,\n await renderAppRouterClientAsset(project.routesDir, url.pathname, {\n vitePlugins: options.vitePlugins,\n }),\n );\n return;\n }\n\n const request = nodeRequestToWebRequest(incoming, origin);\n const routeTransformPlugins = options.navigationScanVitePlugins ?? options.vitePlugins;\n const routes = await scanAppRoutes({ appDir: project.routesDir });\n const routeMatcher = createRouteMatcher(routes);\n const readRouteSource = createCachedRouteSourceReader();\n const [clientStyles, clientStylesByFile, navigationScripts] = await Promise.all([\n devRouteStyles(project, routes, readRouteSource),\n devSpecialRouteStyles(project, readRouteSource),\n devNavigationScripts(\n project.routesDir,\n routes,\n readRouteSource,\n options.clientRouteInferenceCache,\n routeTransformPlugins,\n ),\n ]);\n\n await sendResponse(\n outgoing,\n await renderAppRequest({\n appDir: project.routesDir,\n define: options.define,\n dev: true,\n importPolicy: {\n ...options.importPolicy,\n allowedSourceDirs: project.allowedSourceDirs,\n projectRoot: project.projectRoot,\n },\n clientStyles,\n clientStylesByFile,\n clientRouteInferenceCache: options.clientRouteInferenceCache,\n navigationScripts,\n request,\n routeCache: options.routeCache,\n routeMatcher,\n routes,\n serverActions: options.serverActions,\n vitePlugins: routeTransformPlugins,\n }),\n );\n } catch (error) {\n next(error);\n }\n}\n\nexport async function renderAppRouterClientAsset(\n appDir: string,\n pathname: string,\n options: { dev?: boolean; vitePlugins?: readonly PluginOption[] | undefined } = {},\n): Promise<Response> {\n if (pathname === `/_mreact/client/${navigationRuntimeScriptForDev()}`) {\n const output = await buildNavigationRuntimeBundle();\n\n return new Response(options.dev === true ? withViteHmrRuntime(output.code) : output.code, {\n headers: { \"content-type\": \"text/javascript; charset=utf-8\" },\n });\n }\n\n const routes = await scanAppRoutes({ appDir });\n const route = routes.find(\n (candidate) =>\n candidate.kind === \"page\" &&\n `/_mreact/client/${clientScriptForPath(candidate.path)}` === pathname,\n );\n\n if (route === undefined || route.kind !== \"page\") {\n return new Response(\"Not Found\", { status: 404 });\n }\n\n const code = await readFile(route.file, \"utf8\");\n const clientSource = stripRouteClientOnlyExports(code, route.file);\n let references: Awaited<ReturnType<typeof collectClientRouteReferences>>;\n\n try {\n references = await collectClientRouteReferences({\n appDir,\n code: clientSource,\n filename: route.file,\n vitePlugins: options.vitePlugins,\n });\n } catch (error) {\n return clientAssetBuildErrorResponse(route.file, error);\n }\n\n if (!references.client) {\n if (isClientRouteSource(clientSource)) {\n return clientAssetBuildErrorResponse(\n route.file,\n new Error(\n [\n \"Client route analysis did not produce a client asset.\",\n \"Browser build cannot import Node builtins or other server-only modules.\",\n ...references.diagnostics.map((diagnostic) => diagnostic.message),\n ].join(\"\\n\"),\n ),\n );\n }\n\n return new Response(\"Not Found\", { status: 404 });\n }\n\n let bundle: string;\n\n try {\n bundle = await buildClientRouteBundle({\n code: clientSource,\n clientBoundaryImports: references.clientBoundaryImports,\n clientReferenceImports: references.clientReferenceImports,\n clientReferenceManifest: references.clientReferenceManifest,\n filename: route.file,\n routePath: route.path,\n vitePlugins: options.vitePlugins,\n });\n } catch (error) {\n return clientAssetBuildErrorResponse(route.file, error);\n }\n\n return new Response(options.dev === true ? withViteHmrRuntime(bundle) : bundle, {\n headers: { \"content-type\": \"text/javascript; charset=utf-8\" },\n });\n}\n\nasync function renderAppRouterClientRouteDevModule(\n appDir: string,\n pathname: string,\n options: { vitePlugins?: readonly PluginOption[] | undefined } = {},\n): Promise<string> {\n const route = await clientRouteForRequestPath(appDir, pathname);\n\n if (route === undefined) {\n throw new Error(`MReact client route asset was not found: ${pathname}`);\n }\n\n const code = await readFile(route.file, \"utf8\");\n const clientSource = stripRouteClientOnlyExports(code, route.file);\n const references = await collectClientRouteReferences({\n appDir,\n code: clientSource,\n filename: route.file,\n vitePlugins: options.vitePlugins,\n });\n\n if (!references.client) {\n throw new Error(\n isClientRouteSource(clientSource)\n ? [\n \"Client route analysis did not produce a client asset.\",\n \"Browser build cannot import Node builtins or other server-only modules.\",\n ...references.diagnostics.map((diagnostic) => diagnostic.message),\n ].join(\"\\n\")\n : `MReact client route asset was not found: ${pathname}`,\n );\n }\n\n const entry = await buildClientRouteEntrySource({\n code: clientSource,\n clientBoundaryImports: references.clientBoundaryImports,\n clientReferenceImports: references.clientReferenceImports,\n clientReferenceManifest: references.clientReferenceManifest,\n filename: route.file,\n routePath: route.path,\n vitePlugins: options.vitePlugins,\n });\n\n return withViteHmrRuntime(entry.code);\n}\n\nasync function clientRouteForRequestPath(appDir: string, pathname: string) {\n const routes = await scanAppRoutes({ appDir });\n\n return routes.find(\n (candidate) =>\n candidate.kind === \"page\" &&\n `/_mreact/client/${clientScriptForPath(candidate.path)}` === pathname,\n );\n}\n\nfunction clientRequestPath(id: string): string {\n const [path] = id.split(/[?#]/, 1);\n\n return path ?? id;\n}\n\nfunction clientRouteModuleId(filename: string, requestPath: string): string {\n return `${normalizePath(filename)}?${clientRouteModuleQuery}=${encodeURIComponent(requestPath)}`;\n}\n\nfunction clientRouteModuleRequestPath(id: string): string | undefined {\n const queryStart = id.indexOf(\"?\");\n\n if (queryStart === -1) {\n return undefined;\n }\n\n const params = new URLSearchParams(id.slice(queryStart + 1));\n const value = params.get(clientRouteModuleQuery);\n\n return value === null ? undefined : value;\n}\n\nfunction isMreactClientDevModuleId(id: string | null | undefined): boolean {\n return (\n id?.startsWith(virtualClientPrefix) === true ||\n id?.includes(`?${clientRouteModuleQuery}=`) === true ||\n id?.includes(`&${clientRouteModuleQuery}=`) === true\n );\n}\n\nfunction isDevCssSourceModuleId(id: string): boolean {\n return new URLSearchParams(id.slice(id.indexOf(\"?\") + 1)).has(devCssSourceQuery);\n}\n\nasync function loadDevCssSourceModule(options: {\n cssFile: string;\n sourceDirs: readonly string[];\n}): Promise<string | undefined> {\n const code = await readFile(options.cssFile, \"utf8\");\n\n return prependTailwindSourceDirectives({\n code,\n cssFile: options.cssFile,\n sourceDirs: options.sourceDirs,\n });\n}\n\nfunction importerInRuntimePackage(\n importer: string | undefined,\n directories: readonly string[],\n packageNames: readonly string[],\n): boolean {\n if (importer === undefined) {\n return false;\n }\n\n const normalizedImporter = normalizePath(importer);\n return (\n directories.some((directory) => normalizedImporter.startsWith(`${directory}/`)) ||\n packageNames.some((packageName) => normalizedImporter.includes(`/node_modules/${packageName}/`))\n );\n}\n\nfunction clientAssetBuildErrorResponse(filename: string, error: unknown): Response {\n const message = [\n `Failed to build mreact client route asset for ${filename}.`,\n error instanceof Error ? error.message : String(error),\n ].join(\"\\n\");\n\n return new Response(`throw new Error(${JSON.stringify(message)});\\n`, {\n status: 500,\n headers: { \"content-type\": \"text/javascript; charset=utf-8\" },\n });\n}\n\nasync function devRouteStyles(\n project: ResolvedAppRouterProject,\n routes: readonly AppRoute[],\n readSource: (file: string) => Promise<string | undefined>,\n): Promise<ReadonlyMap<string, readonly string[]>> {\n const entries = await Promise.all(\n routes.map(async (route) => {\n if (route.kind !== \"page\") {\n return undefined;\n }\n\n const hrefs = await collectRouteCssHrefs({\n appDir: project.routesDir,\n hrefPrefix: devCssPrefix,\n pageFile: route.file,\n projectRoot: project.projectRoot,\n readSource,\n });\n\n return hrefs.length === 0 ? undefined : ([route.path, hrefs as readonly string[]] as const);\n }),\n );\n const routeStyles = entries.filter(\n (entry): entry is readonly [string, readonly string[]] => entry !== undefined,\n );\n\n return new Map<string, readonly string[]>(routeStyles);\n}\n\nasync function devSpecialRouteStyles(\n project: ResolvedAppRouterProject,\n readSource: (file: string) => Promise<string | undefined>,\n): Promise<ReadonlyMap<string, readonly string[]>> {\n const entries = await Promise.all(\n (await collectSpecialBoundaryFiles(project.routesDir)).map(async (file) => {\n const hrefs = await collectRouteCssHrefs({\n appDir: project.routesDir,\n hrefPrefix: devCssPrefix,\n pageFile: file,\n projectRoot: project.projectRoot,\n readSource,\n });\n\n return hrefs.length === 0 ? undefined : ([file, hrefs as readonly string[]] as const);\n }),\n );\n const routeStyles = entries.filter(\n (entry): entry is readonly [string, readonly string[]] => entry !== undefined,\n );\n\n return new Map<string, readonly string[]>(routeStyles);\n}\n\nasync function devNavigationScripts(\n appDir: string,\n routes: readonly AppRoute[],\n readSource: (file: string) => Promise<string | undefined>,\n inferenceCache?: ClientRouteInferenceCache | undefined,\n vitePlugins?: readonly PluginOption[] | undefined,\n): Promise<ReadonlyMap<string, string>> {\n const cache = inferenceCache ?? createClientRouteInferenceCache();\n const entries = await Promise.all(\n routes.map(async (route) => {\n if (route.kind !== \"page\") {\n return undefined;\n }\n\n const source = await readSource(route.file);\n if (source === undefined) {\n return undefined;\n }\n const references = await collectClientRouteReferences({\n appDir,\n cache,\n code: source,\n filename: route.file,\n routePath: route.path,\n vitePlugins,\n });\n const navigation = await resolveNavigationRuntime({\n appDir,\n cache,\n code: source,\n filename: route.file,\n references,\n vitePlugins,\n });\n\n for (const diagnostic of references.diagnostics) {\n console.warn(formatClientRouteInferenceDiagnostic(diagnostic));\n }\n const navigationRuntimeDiagnostic = navigationRuntimeLinkDisabledDiagnostic({\n filename: route.file,\n references,\n routePath: route.path,\n source,\n });\n\n if (navigationRuntimeDiagnostic !== undefined) {\n console.warn(formatClientRouteInferenceDiagnostic(navigationRuntimeDiagnostic));\n }\n\n return navigation\n ? ([route.path, navigationRuntimeScriptForDev()] as const)\n : undefined;\n }),\n );\n\n return new Map(\n entries.filter((entry): entry is readonly [string, string] => entry !== undefined),\n );\n}\n\nfunction createDevCssProxyMiddleware(): Connect.NextHandleFunction {\n return (incoming, outgoing, next) => {\n const originalUrl = incoming.url ?? \"/\";\n const url = new URL(originalUrl, \"http://mreact.local\");\n\n if (!url.pathname.startsWith(devCssPrefix)) {\n next();\n return;\n }\n\n const sourcePath = `/${url.pathname.slice(devCssPrefix.length)}`;\n\n if (sourcePath === \"/\" || sourcePath.includes(\"\\0\")) {\n next();\n return;\n }\n\n const originalAccept = incoming.headers.accept;\n let restored = false;\n const restore = () => {\n if (restored) {\n return;\n }\n restored = true;\n incoming.url = originalUrl;\n if (originalAccept === undefined) {\n delete incoming.headers.accept;\n } else {\n incoming.headers.accept = originalAccept;\n }\n };\n\n const sourceSearch = new URLSearchParams(url.search);\n sourceSearch.set(devCssSourceQuery, \"\");\n incoming.url = `${sourcePath}?${sourceSearch.toString()}`;\n incoming.headers.accept = \"text/css,*/*;q=0.1\";\n outgoing.once(\"finish\", restore);\n outgoing.once(\"close\", restore);\n next();\n };\n}\n\nfunction withViteHmrRuntime(code: string): string {\n return `import \"/@vite/client\";\nif (import.meta.hot?.data.__mreactRouteStates) {\n globalThis.__mreactRouteStates = import.meta.hot.data.__mreactRouteStates;\n}\n${code}\nif (import.meta.hot) {\n const __mreactPreserveRouteState = () => {\n import.meta.hot.data.__mreactRouteStates = globalThis.__mreactRouteStates;\n };\n import.meta.hot.dispose(__mreactPreserveRouteState);\n import.meta.hot.accept((module) => {\n module?.__mreactHydrateRoute?.();\n });\n}\n`;\n}\n"]}
1
+ {"version":3,"file":"vite.js","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport type { ServerResponse } from \"node:http\";\nimport { dirname } from \"node:path\";\nimport { formatDiagnostic } from \"@reckona/mreact-compiler\";\nimport {\n createCompilerModuleContext,\n transformCompilerModuleContext,\n} from \"@reckona/mreact-compiler/internal\";\nimport {\n normalizePath,\n type Connect,\n type Plugin,\n type PluginOption,\n type UserConfig,\n type ViteDevServer,\n} from \"vite\";\nimport type { AppRouterServerActionOptions } from \"./actions.js\";\nimport type { AppRouterCache } from \"./cache.js\";\nimport {\n resolveAppRouterProjectOptions,\n type AppRouterProjectOptions,\n type ResolvedAppRouterProject,\n} from \"./config.js\";\nimport type { AppRouterImportPolicy } from \"./import-policy.js\";\nimport {\n collectClientRouteReferences,\n createClientRouteInferenceCache,\n formatClientRouteInferenceDiagnostic,\n isClientRouteSource,\n navigationRuntimeLinkDisabledDiagnostic,\n resolveNavigationRuntime,\n type ClientRouteInferenceCache,\n} from \"./client-route-inference.js\";\nimport {\n buildNavigationRuntimeBundle,\n buildClientRouteBundle,\n buildClientRouteEntrySource,\n clientScriptForPath,\n navigationRuntimeScriptForDev,\n} from \"./navigation-runtime.js\";\nimport { nodeRequestToWebRequest, sendResponse } from \"./http.js\";\nimport { renderAppRequest } from \"./render.js\";\nimport { stripRouteClientOnlyExports } from \"./route-source.js\";\nimport {\n collectRouteCssHrefs,\n collectSpecialBoundaryFiles,\n createCachedRouteSourceReader,\n} from \"./route-styles.js\";\nimport { createRouteMatcher, scanAppRoutes, type AppRoute } from \"./routes.js\";\nimport { resolveRequestHost, type RequestHostPolicy } from \"./serve.js\";\nimport { hasJsxSyntax } from \"./source-jsx.js\";\nimport { prependTailwindSourceDirectives } from \"./tailwind-source.js\";\nimport { workspacePackageFile } from \"./workspace-packages.js\";\n\n/**\n * Configures the app-router Vite middleware used by development servers.\n */\nexport interface AppRouterViteMiddlewareOptions extends AppRouterProjectOptions {\n allowedHosts?: readonly string[] | undefined;\n define?: UserConfig[\"define\"] | undefined;\n hostPolicy?: RequestHostPolicy | undefined;\n importPolicy?: AppRouterImportPolicy | undefined;\n routeCache?: AppRouterCache | undefined;\n serverActions?: AppRouterServerActionOptions | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}\n\ntype AppRouterViteRuntimeMiddlewareOptions = AppRouterViteMiddlewareOptions & {\n clientRouteInferenceCache?: ClientRouteInferenceCache | undefined;\n navigationScanVitePlugins?: readonly PluginOption[] | undefined;\n viteDevServer?: ViteDevServer | undefined;\n};\n\n/**\n * Configures the app-router Vite plugin.\n */\nexport interface AppRouterVitePluginOptions extends AppRouterProjectOptions {\n allowedHosts?: readonly string[] | undefined;\n hostPolicy?: RequestHostPolicy | undefined;\n importPolicy?: AppRouterImportPolicy | undefined;\n routeCache?: AppRouterCache | undefined;\n serverActions?: AppRouterServerActionOptions | undefined;\n}\n\nconst clientPrefix = \"/_mreact/client/\";\nconst devCssPrefix = \"/_mreact/dev-css/\";\nconst devCssSourceQuery = \"mreact-router-dev-css-source\";\nconst clientRouteModuleQuery = \"mreact-router-client-route\";\nconst virtualClientPrefix = \"\\0mreact-router-client:\";\nconst virtualReactiveCoreId = \"\\0mreact-router-reactive-core\";\nconst virtualReactiveDevtoolsId = \"\\0mreact-router-reactive-devtools\";\nconst mreactRouterConfigKey = \"__mreactRouterConfig\";\n\ntype MreactRouterPluginConfig = ResolvedAppRouterProject & {\n importPolicy?: AppRouterImportPolicy | undefined;\n};\n\ntype MreactRouterPlugin = Plugin & {\n [mreactRouterConfigKey]: MreactRouterPluginConfig;\n};\n\n/**\n * Creates the app-router Vite plugin for route compilation and development middleware.\n */\nexport function createAppRouterVitePlugin(options: AppRouterVitePluginOptions): Plugin {\n const project = resolveAppRouterProjectOptions(options);\n const normalizedSourceDirs = project.allowedSourceDirs.map((directory) =>\n normalizePath(directory),\n );\n const packageFile = (monorepoDir: string, packageName: string, entry: string): string =>\n workspacePackageFile({\n currentFileUrl: import.meta.url,\n entry,\n monorepoDir,\n packageName,\n });\n const reactiveCorePath = packageFile(\"reactive-core\", \"@reckona/mreact-reactive-core\", \"index\");\n const reactiveCoreDir = normalizePath(dirname(reactiveCorePath));\n const reactiveDomPath = packageFile(\"reactive-dom\", \"@reckona/mreact-reactive-dom\", \"index\");\n const reactiveDomDir = normalizePath(dirname(reactiveDomPath));\n const reactPath = packageFile(\"react\", \"@reckona/mreact\", \"index\");\n const reactDir = normalizePath(dirname(reactPath));\n const reactCompatPath = packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"index\");\n const reactCompatDir = normalizePath(dirname(reactCompatPath));\n const runtimePackageDirs = [reactiveCoreDir, reactiveDomDir, reactDir, reactCompatDir];\n const runtimePackageNames = [\n \"@reckona/mreact\",\n \"@reckona/mreact-reactive-core\",\n \"@reckona/mreact-reactive-dom\",\n \"@reckona/mreact-compat\",\n ];\n const runtimePaths = new Map([\n [\"react\", reactCompatPath],\n [\"react-dom\", reactCompatPath],\n [\"react-dom/client\", reactCompatPath],\n [\"react-dom/server\", reactCompatPath],\n [\n \"react/jsx-dev-runtime\",\n packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"jsx-dev-runtime\"),\n ],\n [\"react/jsx-runtime\", packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"jsx-runtime\")],\n [\"@reckona/mreact\", reactPath],\n [\n \"@reckona/mreact-reactive-core/internal\",\n packageFile(\"reactive-core\", \"@reckona/mreact-reactive-core\", \"internal\"),\n ],\n [\"@reckona/mreact-reactive-dom\", reactiveDomPath],\n [\"@reckona/mreact-compat\", reactCompatPath],\n [\n \"@reckona/mreact-compat/event-priority\",\n packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"event-priority\"),\n ],\n [\n \"@reckona/mreact-compat/flight\",\n packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"flight\"),\n ],\n [\n \"@reckona/mreact-compat/hooks\",\n packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"hooks-entry\"),\n ],\n [\n \"@reckona/mreact-compat/internal\",\n packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"internal\"),\n ],\n [\n \"@reckona/mreact-compat/jsx-dev-runtime\",\n packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"jsx-dev-runtime\"),\n ],\n [\n \"@reckona/mreact-compat/jsx-runtime\",\n packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"jsx-runtime\"),\n ],\n [\n \"@reckona/mreact-compat/scheduler\",\n packageFile(\"react-compat\", \"@reckona/mreact-compat\", \"scheduler\"),\n ],\n [\"@reckona/mreact-router/link\", packageFile(\"router\", \"@reckona/mreact-router\", \"link\")],\n [\n \"@reckona/mreact-router/navigation-state\",\n packageFile(\"router\", \"@reckona/mreact-router\", \"navigation-state\"),\n ],\n [\n \"@reckona/mreact-shared/url-safety\",\n packageFile(\"shared\", \"@reckona/mreact-shared\", \"url-safety\"),\n ],\n ]);\n\n // User-declared plugins captured from the resolving config. Unlike the fully\n // resolved `server.config.plugins`, this excludes Vite internals (e.g. the\n // built-in CSS plugin) whose `transform` requires a dev-server environment the\n // lightweight navigation scan cannot provide. Mirrors what the build forwards.\n let userVitePlugins: readonly PluginOption[] | undefined;\n\n const plugin: MreactRouterPlugin = {\n [mreactRouterConfigKey]: {\n ...project,\n ...(options.importPolicy === undefined ? {} : { importPolicy: options.importPolicy }),\n },\n enforce: \"pre\",\n name: \"mreact-router\",\n config(userConfig) {\n userVitePlugins = routeTransformUserVitePlugins(userConfig.plugins);\n\n return {\n optimizeDeps: {\n // Every client-importable mreact package must resolve through the\n // same dev module graph. Prebundling any of them inlines a second\n // reactive-core (and devtools) copy into the deps chunk, which\n // silently breaks cross-package cell tracking, and also bypasses the\n // react/react-dom alias resolution this plugin provides.\n exclude: [\n \"react\",\n \"react-dom\",\n \"react-dom/client\",\n \"react-dom/server\",\n \"react/jsx-dev-runtime\",\n \"react/jsx-runtime\",\n \"@reckona/mreact\",\n \"@reckona/mreact-auth\",\n \"@reckona/mreact-compat\",\n \"@reckona/mreact-devtools\",\n \"@reckona/mreact-dom\",\n \"@reckona/mreact-forms\",\n \"@reckona/mreact-next\",\n \"@reckona/mreact-query\",\n \"@reckona/mreact-reactive-core\",\n \"@reckona/mreact-reactive-dom\",\n \"@reckona/mreact-router\",\n \"@reckona/mreact-scheduler\",\n \"@reckona/mreact-shared\",\n \"@reckona/mreact-store\",\n \"@reckona/mreact-test-utils\",\n \"@reckona/mreact-virtual\",\n ],\n },\n };\n },\n configureServer(server) {\n server.middlewares.use(createDevCssProxyMiddleware());\n\n return () => {\n const middlewareOptions: AppRouterViteRuntimeMiddlewareOptions = {\n ...options,\n define: server.config.define,\n navigationScanVitePlugins: userVitePlugins ?? [],\n viteDevServer: server,\n vitePlugins: server.config.plugins,\n };\n\n server.middlewares.use(createAppRouterViteMiddleware(middlewareOptions));\n };\n },\n handleHotUpdate(context) {\n const normalizedFile = normalizePath(context.file);\n\n if (!normalizedSourceDirs.some((directory) => normalizedFile.startsWith(directory))) {\n return;\n }\n\n const timestamp = Date.now();\n const updates = Array.from(context.server.moduleGraph.idToModuleMap.values())\n .filter((moduleNode) => isMreactClientDevModuleId(moduleNode.id))\n .map((moduleNode) => {\n context.server.moduleGraph.invalidateModule(moduleNode);\n\n return {\n acceptedPath: moduleNode.url,\n path: moduleNode.url,\n timestamp,\n type: \"js-update\" as const,\n };\n });\n\n if (updates.length > 0) {\n context.server.ws.send({ type: \"update\", updates });\n }\n\n return [];\n },\n load(id) {\n if (isDevCssSourceModuleId(id)) {\n return loadDevCssSourceModule({\n cssFile: clientRequestPath(id),\n sourceDirs: project.allowedSourceDirs,\n });\n }\n\n if (id === virtualReactiveCoreId) {\n return `import { cell as nativeCell } from ${JSON.stringify(reactiveCorePath)};\nexport * from ${JSON.stringify(reactiveCorePath)};\nexport function cell(initial) {\n const routeCell = globalThis.__mreactRouteCell;\n return typeof routeCell === \"function\" ? routeCell(nativeCell, initial) : nativeCell(initial);\n}`;\n }\n\n if (id === virtualReactiveDevtoolsId) {\n return `export function emitReactiveDevtoolsEvent() {}\nexport function hasReactiveDevtoolsEmitter() { return false; }\nexport function currentDevtoolsEmitter() { return undefined; }\nexport function currentReactiveDevtools() { return undefined; }`;\n }\n\n if (id.startsWith(virtualClientPrefix)) {\n return renderAppRouterClientAsset(project.routesDir, id.slice(virtualClientPrefix.length), {\n dev: true,\n }).then(async (response) => {\n if (!response.ok) {\n const message = await response.text();\n throw new Error(message || `MReact client route asset was not found: ${id}`);\n }\n\n return response.text();\n });\n }\n\n const requestPath = clientRouteModuleRequestPath(id);\n\n return requestPath === undefined\n ? undefined\n : renderAppRouterClientRouteDevModule(project.routesDir, requestPath);\n },\n transform(code, id, options) {\n if (options?.ssr === true) {\n return undefined;\n }\n\n if (isMreactClientDevModuleId(id)) {\n return undefined;\n }\n\n const filename = clientRequestPath(id);\n\n if (!isMreactClientSourceDependency(filename, normalizedSourceDirs)) {\n return undefined;\n }\n\n const moduleContext = createCompilerModuleContext({ code, filename });\n\n if (!hasJsxSyntax(moduleContext.program)) {\n return undefined;\n }\n\n const output = transformCompilerModuleContext({\n code,\n dev: true,\n filename,\n mode: isCompatSourcePath(filename) ? \"compat\" : \"reactive\",\n moduleContext,\n target: \"client\",\n });\n\n if (output.diagnostics.length > 0) {\n throw new Error(\n output.diagnostics.map((diagnostic) => formatDiagnostic(filename, diagnostic)).join(\"\\n\"),\n );\n }\n\n return {\n code: output.code,\n map: null,\n };\n },\n async resolveId(id, importer) {\n const runtimePath = runtimePaths.get(id);\n\n if (id === \"@reckona/mreact-reactive-core\") {\n if (importerInRuntimePackage(importer, runtimePackageDirs, runtimePackageNames)) {\n return reactiveCorePath;\n }\n\n return virtualReactiveCoreId;\n }\n\n if (\n id === \"./devtools.js\" &&\n importerInRuntimePackage(importer, [reactiveCoreDir], [\"@reckona/mreact-reactive-core\"])\n ) {\n return virtualReactiveDevtoolsId;\n }\n\n if (runtimePath !== undefined) {\n return runtimePath;\n }\n\n const requestPath = clientRequestPath(id);\n\n if (requestPath === `${clientPrefix}${navigationRuntimeScriptForDev()}`) {\n return `${virtualClientPrefix}${requestPath}`;\n }\n\n if (!requestPath.startsWith(clientPrefix)) {\n return undefined;\n }\n\n const route = await clientRouteForRequestPath(project.routesDir, requestPath);\n\n return route === undefined ? undefined : clientRouteModuleId(route.file, requestPath);\n },\n };\n\n return plugin;\n}\n\nfunction isMreactClientSourceDependency(\n filename: string,\n normalizedSourceDirs: readonly string[],\n): boolean {\n const normalized = normalizePath(filename);\n\n return (\n /\\.(?:mreact\\.)?[cm]?[jt]sx?$/.test(normalized) &&\n !normalized.includes(\"/node_modules/\") &&\n normalizedSourceDirs.some(\n (directory) => normalized === directory || normalized.startsWith(`${directory}/`),\n )\n );\n}\n\nfunction isCompatSourcePath(filename: string): boolean {\n return /\\.compat(?:\\.mreact)?(?:\\.[cm]?[jt]sx?)?$/.test(filename);\n}\n\n/**\n * Alias for `createAppRouterVitePlugin()` used by Vite config files.\n */\nexport const mreactRouter = createAppRouterVitePlugin;\n\nfunction routeTransformUserVitePlugins(\n pluginOptions: readonly PluginOption[] | undefined,\n): PluginOption[] {\n const plugins: PluginOption[] = [];\n const visit = (option: PluginOption | null | false | undefined): void => {\n if (option === false || option === null || option === undefined) {\n return;\n }\n\n if (Array.isArray(option)) {\n for (const child of option) {\n visit(child);\n }\n return;\n }\n\n if (typeof option === \"object\" && \"then\" in option) {\n return;\n }\n\n if (typeof option === \"object\" && mreactRouterConfigKey in option) {\n return;\n }\n\n plugins.push(option);\n };\n\n for (const option of pluginOptions ?? []) {\n visit(option);\n }\n\n return plugins;\n}\n\n/**\n * Reads resolved app-router project config from a Vite plugin list.\n */\nexport function mreactRouterConfigFromPlugins(\n plugins: readonly unknown[],\n): ResolvedAppRouterProject | undefined {\n for (const plugin of plugins.flat(Infinity)) {\n if (plugin !== null && typeof plugin === \"object\" && mreactRouterConfigKey in plugin) {\n const config = (plugin as MreactRouterPlugin)[mreactRouterConfigKey];\n\n if (\"project\" in config) {\n return (config as unknown as { project: ResolvedAppRouterProject }).project;\n }\n\n return config as unknown as ResolvedAppRouterProject;\n }\n }\n\n return undefined;\n}\n\n/**\n * Creates Connect middleware that renders app-router requests during Vite development.\n */\nexport function createAppRouterViteMiddleware(\n options: AppRouterViteMiddlewareOptions,\n): Connect.NextHandleFunction {\n // Reused across requests so dev navigation-script detection memoizes module\n // contexts/analyses instead of re-walking every route's import graph per\n // request. The source-keyed caches keep only the latest content version per\n // file (see setLatestModuleCacheEntry), so repeated edits do not accumulate\n // stale entries over a long dev session.\n const runtimeOptions: AppRouterViteRuntimeMiddlewareOptions = {\n ...options,\n clientRouteInferenceCache: createClientRouteInferenceCache(),\n };\n\n return (request, response, next) => {\n void handleAppRouterViteRequest(runtimeOptions, request, response, next);\n };\n}\n\nasync function handleAppRouterViteRequest(\n options: AppRouterViteRuntimeMiddlewareOptions,\n incoming: Connect.IncomingMessage,\n outgoing: ServerResponse,\n next: Connect.NextFunction,\n): Promise<void> {\n try {\n const project = resolveAppRouterProjectOptions(options);\n const host = resolveRequestHost({\n allowedHosts: options.allowedHosts,\n fallbackHost: \"localhost\",\n hostPolicy: options.hostPolicy,\n rawHost: incoming.headers.host,\n });\n const origin = `http://${host}`;\n const url = new URL(incoming.url ?? \"/\", origin);\n\n if (url.pathname.startsWith(clientPrefix)) {\n if (options.viteDevServer !== undefined) {\n const transformed = await options.viteDevServer.transformRequest(\n `${url.pathname}${url.search}`,\n );\n\n if (transformed !== null) {\n await sendResponse(\n outgoing,\n new Response(transformed.code, {\n headers: { \"content-type\": \"text/javascript; charset=utf-8\" },\n }),\n );\n return;\n }\n }\n\n await sendResponse(\n outgoing,\n await renderAppRouterClientAsset(project.routesDir, url.pathname, {\n vitePlugins: options.vitePlugins,\n }),\n );\n return;\n }\n\n const request = nodeRequestToWebRequest(incoming, origin);\n const routeTransformPlugins = options.navigationScanVitePlugins ?? options.vitePlugins;\n const routes = await scanAppRoutes({ appDir: project.routesDir });\n const routeMatcher = createRouteMatcher(routes);\n const readRouteSource = createCachedRouteSourceReader();\n const [clientStyles, clientStylesByFile, navigationScripts] = await Promise.all([\n devRouteStyles(project, routes, readRouteSource),\n devSpecialRouteStyles(project, readRouteSource),\n devNavigationScripts(\n project.routesDir,\n routes,\n readRouteSource,\n options.clientRouteInferenceCache,\n routeTransformPlugins,\n ),\n ]);\n\n await sendResponse(\n outgoing,\n await renderAppRequest({\n appDir: project.routesDir,\n define: options.define,\n dev: true,\n importPolicy: {\n ...options.importPolicy,\n allowedSourceDirs: project.allowedSourceDirs,\n projectRoot: project.projectRoot,\n },\n clientStyles,\n clientStylesByFile,\n clientRouteInferenceCache: options.clientRouteInferenceCache,\n navigationScripts,\n request,\n routeCache: options.routeCache,\n routeMatcher,\n routes,\n serverActions: options.serverActions,\n vitePlugins: routeTransformPlugins,\n }),\n );\n } catch (error) {\n next(error);\n }\n}\n\n/**\n * Renders a development client asset generated by the app-router Vite integration.\n */\nexport async function renderAppRouterClientAsset(\n appDir: string,\n pathname: string,\n options: { dev?: boolean; vitePlugins?: readonly PluginOption[] | undefined } = {},\n): Promise<Response> {\n if (pathname === `/_mreact/client/${navigationRuntimeScriptForDev()}`) {\n const output = await buildNavigationRuntimeBundle();\n\n return new Response(options.dev === true ? withViteHmrRuntime(output.code) : output.code, {\n headers: { \"content-type\": \"text/javascript; charset=utf-8\" },\n });\n }\n\n const routes = await scanAppRoutes({ appDir });\n const route = routes.find(\n (candidate) =>\n candidate.kind === \"page\" &&\n `/_mreact/client/${clientScriptForPath(candidate.path)}` === pathname,\n );\n\n if (route === undefined || route.kind !== \"page\") {\n return new Response(\"Not Found\", { status: 404 });\n }\n\n const code = await readFile(route.file, \"utf8\");\n const clientSource = stripRouteClientOnlyExports(code, route.file);\n let references: Awaited<ReturnType<typeof collectClientRouteReferences>>;\n\n try {\n references = await collectClientRouteReferences({\n appDir,\n code: clientSource,\n filename: route.file,\n vitePlugins: options.vitePlugins,\n });\n } catch (error) {\n return clientAssetBuildErrorResponse(route.file, error);\n }\n\n if (!references.client) {\n if (isClientRouteSource(clientSource)) {\n return clientAssetBuildErrorResponse(\n route.file,\n new Error(\n [\n \"Client route analysis did not produce a client asset.\",\n \"Browser build cannot import Node builtins or other server-only modules.\",\n ...references.diagnostics.map((diagnostic) => diagnostic.message),\n ].join(\"\\n\"),\n ),\n );\n }\n\n return new Response(\"Not Found\", { status: 404 });\n }\n\n let bundle: string;\n\n try {\n bundle = await buildClientRouteBundle({\n code: clientSource,\n clientBoundaryImports: references.clientBoundaryImports,\n clientReferenceImports: references.clientReferenceImports,\n clientReferenceManifest: references.clientReferenceManifest,\n filename: route.file,\n routePath: route.path,\n vitePlugins: options.vitePlugins,\n });\n } catch (error) {\n return clientAssetBuildErrorResponse(route.file, error);\n }\n\n return new Response(options.dev === true ? withViteHmrRuntime(bundle) : bundle, {\n headers: { \"content-type\": \"text/javascript; charset=utf-8\" },\n });\n}\n\nasync function renderAppRouterClientRouteDevModule(\n appDir: string,\n pathname: string,\n options: { vitePlugins?: readonly PluginOption[] | undefined } = {},\n): Promise<string> {\n const route = await clientRouteForRequestPath(appDir, pathname);\n\n if (route === undefined) {\n throw new Error(`MReact client route asset was not found: ${pathname}`);\n }\n\n const code = await readFile(route.file, \"utf8\");\n const clientSource = stripRouteClientOnlyExports(code, route.file);\n const references = await collectClientRouteReferences({\n appDir,\n code: clientSource,\n filename: route.file,\n vitePlugins: options.vitePlugins,\n });\n\n if (!references.client) {\n throw new Error(\n isClientRouteSource(clientSource)\n ? [\n \"Client route analysis did not produce a client asset.\",\n \"Browser build cannot import Node builtins or other server-only modules.\",\n ...references.diagnostics.map((diagnostic) => diagnostic.message),\n ].join(\"\\n\")\n : `MReact client route asset was not found: ${pathname}`,\n );\n }\n\n const entry = await buildClientRouteEntrySource({\n code: clientSource,\n clientBoundaryImports: references.clientBoundaryImports,\n clientReferenceImports: references.clientReferenceImports,\n clientReferenceManifest: references.clientReferenceManifest,\n filename: route.file,\n routePath: route.path,\n vitePlugins: options.vitePlugins,\n });\n\n return withViteHmrRuntime(entry.code);\n}\n\nasync function clientRouteForRequestPath(appDir: string, pathname: string) {\n const routes = await scanAppRoutes({ appDir });\n\n return routes.find(\n (candidate) =>\n candidate.kind === \"page\" &&\n `/_mreact/client/${clientScriptForPath(candidate.path)}` === pathname,\n );\n}\n\nfunction clientRequestPath(id: string): string {\n const [path] = id.split(/[?#]/, 1);\n\n return path ?? id;\n}\n\nfunction clientRouteModuleId(filename: string, requestPath: string): string {\n return `${normalizePath(filename)}?${clientRouteModuleQuery}=${encodeURIComponent(requestPath)}`;\n}\n\nfunction clientRouteModuleRequestPath(id: string): string | undefined {\n const queryStart = id.indexOf(\"?\");\n\n if (queryStart === -1) {\n return undefined;\n }\n\n const params = new URLSearchParams(id.slice(queryStart + 1));\n const value = params.get(clientRouteModuleQuery);\n\n return value === null ? undefined : value;\n}\n\nfunction isMreactClientDevModuleId(id: string | null | undefined): boolean {\n return (\n id?.startsWith(virtualClientPrefix) === true ||\n id?.includes(`?${clientRouteModuleQuery}=`) === true ||\n id?.includes(`&${clientRouteModuleQuery}=`) === true\n );\n}\n\nfunction isDevCssSourceModuleId(id: string): boolean {\n return new URLSearchParams(id.slice(id.indexOf(\"?\") + 1)).has(devCssSourceQuery);\n}\n\nasync function loadDevCssSourceModule(options: {\n cssFile: string;\n sourceDirs: readonly string[];\n}): Promise<string | undefined> {\n const code = await readFile(options.cssFile, \"utf8\");\n\n return prependTailwindSourceDirectives({\n code,\n cssFile: options.cssFile,\n sourceDirs: options.sourceDirs,\n });\n}\n\nfunction importerInRuntimePackage(\n importer: string | undefined,\n directories: readonly string[],\n packageNames: readonly string[],\n): boolean {\n if (importer === undefined) {\n return false;\n }\n\n const normalizedImporter = normalizePath(importer);\n return (\n directories.some((directory) => normalizedImporter.startsWith(`${directory}/`)) ||\n packageNames.some((packageName) => normalizedImporter.includes(`/node_modules/${packageName}/`))\n );\n}\n\nfunction clientAssetBuildErrorResponse(filename: string, error: unknown): Response {\n const message = [\n `Failed to build mreact client route asset for ${filename}.`,\n error instanceof Error ? error.message : String(error),\n ].join(\"\\n\");\n\n return new Response(`throw new Error(${JSON.stringify(message)});\\n`, {\n status: 500,\n headers: { \"content-type\": \"text/javascript; charset=utf-8\" },\n });\n}\n\nasync function devRouteStyles(\n project: ResolvedAppRouterProject,\n routes: readonly AppRoute[],\n readSource: (file: string) => Promise<string | undefined>,\n): Promise<ReadonlyMap<string, readonly string[]>> {\n const entries = await Promise.all(\n routes.map(async (route) => {\n if (route.kind !== \"page\") {\n return undefined;\n }\n\n const hrefs = await collectRouteCssHrefs({\n appDir: project.routesDir,\n hrefPrefix: devCssPrefix,\n pageFile: route.file,\n projectRoot: project.projectRoot,\n readSource,\n });\n\n return hrefs.length === 0 ? undefined : ([route.path, hrefs as readonly string[]] as const);\n }),\n );\n const routeStyles = entries.filter(\n (entry): entry is readonly [string, readonly string[]] => entry !== undefined,\n );\n\n return new Map<string, readonly string[]>(routeStyles);\n}\n\nasync function devSpecialRouteStyles(\n project: ResolvedAppRouterProject,\n readSource: (file: string) => Promise<string | undefined>,\n): Promise<ReadonlyMap<string, readonly string[]>> {\n const entries = await Promise.all(\n (await collectSpecialBoundaryFiles(project.routesDir)).map(async (file) => {\n const hrefs = await collectRouteCssHrefs({\n appDir: project.routesDir,\n hrefPrefix: devCssPrefix,\n pageFile: file,\n projectRoot: project.projectRoot,\n readSource,\n });\n\n return hrefs.length === 0 ? undefined : ([file, hrefs as readonly string[]] as const);\n }),\n );\n const routeStyles = entries.filter(\n (entry): entry is readonly [string, readonly string[]] => entry !== undefined,\n );\n\n return new Map<string, readonly string[]>(routeStyles);\n}\n\nasync function devNavigationScripts(\n appDir: string,\n routes: readonly AppRoute[],\n readSource: (file: string) => Promise<string | undefined>,\n inferenceCache?: ClientRouteInferenceCache | undefined,\n vitePlugins?: readonly PluginOption[] | undefined,\n): Promise<ReadonlyMap<string, string>> {\n const cache = inferenceCache ?? createClientRouteInferenceCache();\n const entries = await Promise.all(\n routes.map(async (route) => {\n if (route.kind !== \"page\") {\n return undefined;\n }\n\n const source = await readSource(route.file);\n if (source === undefined) {\n return undefined;\n }\n const references = await collectClientRouteReferences({\n appDir,\n cache,\n code: source,\n filename: route.file,\n routePath: route.path,\n vitePlugins,\n });\n const navigation = await resolveNavigationRuntime({\n appDir,\n cache,\n code: source,\n filename: route.file,\n references,\n vitePlugins,\n });\n\n for (const diagnostic of references.diagnostics) {\n console.warn(formatClientRouteInferenceDiagnostic(diagnostic));\n }\n const navigationRuntimeDiagnostic = navigationRuntimeLinkDisabledDiagnostic({\n filename: route.file,\n references,\n routePath: route.path,\n source,\n });\n\n if (navigationRuntimeDiagnostic !== undefined) {\n console.warn(formatClientRouteInferenceDiagnostic(navigationRuntimeDiagnostic));\n }\n\n return navigation\n ? ([route.path, navigationRuntimeScriptForDev()] as const)\n : undefined;\n }),\n );\n\n return new Map(\n entries.filter((entry): entry is readonly [string, string] => entry !== undefined),\n );\n}\n\nfunction createDevCssProxyMiddleware(): Connect.NextHandleFunction {\n return (incoming, outgoing, next) => {\n const originalUrl = incoming.url ?? \"/\";\n const url = new URL(originalUrl, \"http://mreact.local\");\n\n if (!url.pathname.startsWith(devCssPrefix)) {\n next();\n return;\n }\n\n const sourcePath = `/${url.pathname.slice(devCssPrefix.length)}`;\n\n if (sourcePath === \"/\" || sourcePath.includes(\"\\0\")) {\n next();\n return;\n }\n\n const originalAccept = incoming.headers.accept;\n let restored = false;\n const restore = () => {\n if (restored) {\n return;\n }\n restored = true;\n incoming.url = originalUrl;\n if (originalAccept === undefined) {\n delete incoming.headers.accept;\n } else {\n incoming.headers.accept = originalAccept;\n }\n };\n\n const sourceSearch = new URLSearchParams(url.search);\n sourceSearch.set(devCssSourceQuery, \"\");\n incoming.url = `${sourcePath}?${sourceSearch.toString()}`;\n incoming.headers.accept = \"text/css,*/*;q=0.1\";\n outgoing.once(\"finish\", restore);\n outgoing.once(\"close\", restore);\n next();\n };\n}\n\nfunction withViteHmrRuntime(code: string): string {\n return `import \"/@vite/client\";\nif (import.meta.hot?.data.__mreactRouteStates) {\n globalThis.__mreactRouteStates = import.meta.hot.data.__mreactRouteStates;\n}\n${code}\nif (import.meta.hot) {\n const __mreactPreserveRouteState = () => {\n import.meta.hot.data.__mreactRouteStates = globalThis.__mreactRouteStates;\n };\n import.meta.hot.dispose(__mreactPreserveRouteState);\n import.meta.hot.accept((module) => {\n module?.__mreactHydrateRoute?.();\n });\n}\n`;\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reckona/mreact-router",
3
- "version": "0.0.159",
3
+ "version": "0.0.161",
4
4
  "description": "File-system app router, SSR, actions, and deployment adapters for mreact.",
5
5
  "keywords": [
6
6
  "jsx",
@@ -105,20 +105,20 @@
105
105
  },
106
106
  "dependencies": {
107
107
  "typescript": "^6.0.3",
108
- "@reckona/mreact": "0.0.159",
109
- "@reckona/mreact-compat": "0.0.159",
110
- "@reckona/mreact-compiler": "0.0.159",
111
- "@reckona/mreact-query": "0.0.159",
112
- "@reckona/mreact-reactive-core": "0.0.159",
113
- "@reckona/mreact-devtools": "0.0.159",
114
- "@reckona/mreact-reactive-dom": "0.0.159",
115
- "@reckona/mreact-server": "0.0.159",
116
- "@reckona/mreact-shared": "0.0.159"
108
+ "@reckona/mreact": "0.0.161",
109
+ "@reckona/mreact-compat": "0.0.161",
110
+ "@reckona/mreact-devtools": "0.0.161",
111
+ "@reckona/mreact-compiler": "0.0.161",
112
+ "@reckona/mreact-reactive-core": "0.0.161",
113
+ "@reckona/mreact-query": "0.0.161",
114
+ "@reckona/mreact-reactive-dom": "0.0.161",
115
+ "@reckona/mreact-server": "0.0.161",
116
+ "@reckona/mreact-shared": "0.0.161"
117
117
  },
118
118
  "peerDependencies": {
119
119
  "vite": ">=8 <9"
120
120
  },
121
121
  "optionalDependencies": {
122
- "@reckona/mreact-router-native": "0.0.159"
122
+ "@reckona/mreact-router-native": "0.0.161"
123
123
  }
124
124
  }
package/src/actions.ts CHANGED
@@ -163,6 +163,9 @@ export interface AppRouterServerActionOptions {
163
163
  replayStore?: ServerActionReplayStore | undefined;
164
164
  }
165
165
 
166
+ /**
167
+ * Describes a server action request reference that the app router may dispatch.
168
+ */
166
169
  export interface AppRouterAllowedServerAction extends ServerActionRequestReference {
167
170
  inferred?: boolean | undefined;
168
171
  }
@@ -186,6 +189,9 @@ interface ActionReference {
186
189
  moduleId: string;
187
190
  }
188
191
 
192
+ /**
193
+ * Identifies an inferred form action expression rewritten during route preparation.
194
+ */
189
195
  export interface PreparedFormActionReference {
190
196
  end: number;
191
197
  expression: string;
@@ -22,7 +22,9 @@ import {
22
22
  import type { AppRouterResponseHook } from "../render.js";
23
23
  import type { RouterInstrumentation } from "../trace.js";
24
24
 
25
+ /** Re-exports router instrumentation hooks for AWS Lambda handlers. */
25
26
  export type { RouterInstrumentation } from "../trace.js";
27
+ /** Re-exports app-router import policy controls for AWS Lambda handlers. */
26
28
  export type { AppRouterImportPolicy } from "../import-policy.js";
27
29
  import {
28
30
  createBuiltRequestRuntime,
@@ -34,6 +36,9 @@ import {
34
36
  type ResponseSinkStrategy,
35
37
  } from "../serve.js";
36
38
 
39
+ /**
40
+ * Represents the AWS API Gateway HTTP API v2 event consumed by buffered handlers.
41
+ */
37
42
  export interface AwsLambdaHttpEventV2 {
38
43
  body?: string | undefined;
39
44
  cookies?: string[] | undefined;
@@ -50,6 +55,9 @@ export interface AwsLambdaHttpEventV2 {
50
55
  version?: "2.0" | string | undefined;
51
56
  }
52
57
 
58
+ /**
59
+ * Represents the AWS API Gateway HTTP API v2 result returned by buffered handlers.
60
+ */
53
61
  export interface AwsLambdaHttpResultV2 {
54
62
  body: string;
55
63
  cookies?: string[] | undefined;
@@ -58,12 +66,18 @@ export interface AwsLambdaHttpResultV2 {
58
66
  statusCode: number;
59
67
  }
60
68
 
69
+ /**
70
+ * Describes response metadata passed to Lambda streaming response helpers.
71
+ */
61
72
  export interface AwsLambdaStreamingResponseMetadata {
62
73
  cookies?: string[] | undefined;
63
74
  headers: Record<string, string>;
64
75
  statusCode: number;
65
76
  }
66
77
 
78
+ /**
79
+ * Defines the writable stream interface used by Lambda streaming handlers.
80
+ */
67
81
  export interface AwsLambdaStreamingResponseStream {
68
82
  destroy?: ((error?: unknown) => void) | undefined;
69
83
  end(): void;
@@ -71,6 +85,9 @@ export interface AwsLambdaStreamingResponseStream {
71
85
  write(chunk: string | Uint8Array): boolean;
72
86
  }
73
87
 
88
+ /**
89
+ * Configures AWS Lambda request handlers for built app-router output.
90
+ */
74
91
  export interface AwsLambdaRequestHandlerOptions {
75
92
  allowedHosts?: readonly string[] | undefined;
76
93
  errorHandler?:
@@ -97,11 +114,17 @@ export interface AwsLambdaRequestHandlerOptions {
97
114
  trustForwardedProto?: boolean | undefined;
98
115
  }
99
116
 
117
+ /**
118
+ * Selects how an AWS Lambda handler resolves its app-router import policy.
119
+ */
100
120
  export type AwsLambdaImportPolicy =
101
121
  | AppRouterImportPolicy
102
122
  | "generated"
103
123
  | { fromManifest: true };
104
124
 
125
+ /**
126
+ * Configures preload behavior for built app-router modules in AWS Lambda.
127
+ */
105
128
  export type AwsLambdaPreloadStrategy =
106
129
  | "all"
107
130
  | "hot-route-requests"
@@ -117,10 +140,16 @@ type NormalizedAwsLambdaPreloadStrategy = NormalizedBuiltAppRuntimePreloadStrate
117
140
 
118
141
  type AwsLambdaDefaultPreloadMode = "all" | "middleware";
119
142
 
143
+ /**
144
+ * Handles one AWS API Gateway HTTP API v2 event with a buffered response.
145
+ */
120
146
  export type AwsLambdaRequestHandler = (
121
147
  event: AwsLambdaHttpEventV2,
122
148
  ) => Promise<AwsLambdaHttpResultV2>;
123
149
 
150
+ /**
151
+ * Handles one AWS API Gateway HTTP API v2 event with a Lambda response stream.
152
+ */
124
153
  export type AwsLambdaStreamingRequestHandler<TContext = unknown> = (
125
154
  event: AwsLambdaHttpEventV2,
126
155
  responseStream: AwsLambdaStreamingResponseStream,
@@ -37,11 +37,17 @@ import type { AppRouterPrerenderStore } from "../serve.js";
37
37
  import { emitRouterDevtoolsEvent } from "./devtools.js";
38
38
  import { escapeHtmlAttribute, escapeHtmlText } from "@reckona/mreact-shared/html-escape";
39
39
 
40
+ /**
41
+ * Represents the Cloudflare Worker execution context used by router handlers.
42
+ */
40
43
  export interface CloudflareExecutionContext {
41
44
  passThroughOnException(): void;
42
45
  waitUntil(promise: Promise<unknown>): void;
43
46
  }
44
47
 
48
+ /**
49
+ * Loads static assets for Cloudflare router requests.
50
+ */
45
51
  export interface CloudflareAssetLoader<Env = unknown> {
46
52
  fetch?:
47
53
  | ((
@@ -53,6 +59,9 @@ export interface CloudflareAssetLoader<Env = unknown> {
53
59
  | undefined;
54
60
  }
55
61
 
62
+ /**
63
+ * Provides manifests, environment, and execution context to Cloudflare rendering.
64
+ */
56
65
  export interface CloudflareRenderContext<Env = unknown> {
57
66
  clientManifest: CloudflareClientManifest;
58
67
  context: CloudflareExecutionContext;
@@ -60,6 +69,9 @@ export interface CloudflareRenderContext<Env = unknown> {
60
69
  serverManifest: BuiltServerManifest;
61
70
  }
62
71
 
72
+ /**
73
+ * Configures a Cloudflare Worker request handler for app-router output.
74
+ */
63
75
  export interface CloudflareRequestHandlerOptions<Env = unknown> {
64
76
  assets?: CloudflareAssetLoader<Env> | undefined;
65
77
  clientManifest: CloudflareClientManifest;
@@ -79,10 +91,16 @@ export interface CloudflareRequestHandlerOptions<Env = unknown> {
79
91
  serverManifest: BuiltServerManifest;
80
92
  }
81
93
 
94
+ /**
95
+ * Defines the Cloudflare Worker `fetch` handler shape returned by router adapters.
96
+ */
82
97
  export interface CloudflareRequestHandler<Env = unknown> {
83
98
  fetch(request: Request, env: Env, context: CloudflareExecutionContext): Promise<Response>;
84
99
  }
85
100
 
101
+ /**
102
+ * Provides route match data to Cloudflare built-route rendering.
103
+ */
86
104
  export interface CloudflareBuiltRouteRenderContext<
87
105
  Env = unknown,
88
106
  > extends CloudflareRenderContext<Env> {
@@ -90,6 +108,9 @@ export interface CloudflareBuiltRouteRenderContext<
90
108
  route: AppRoute;
91
109
  }
92
110
 
111
+ /**
112
+ * Provides loader context to Cloudflare route modules.
113
+ */
93
114
  export interface CloudflareRouteModuleLoaderContext<
94
115
  Env = unknown,
95
116
  > extends CloudflareBuiltRouteRenderContext<Env> {
@@ -97,12 +118,18 @@ export interface CloudflareRouteModuleLoaderContext<
97
118
  request: Request;
98
119
  }
99
120
 
121
+ /**
122
+ * Provides request context to Cloudflare server route handlers.
123
+ */
100
124
  export interface CloudflareServerRouteContext<
101
125
  Env = unknown,
102
126
  > extends CloudflareBuiltRouteRenderContext<Env> {
103
127
  request: Request;
104
128
  }
105
129
 
130
+ /**
131
+ * Provides props to Cloudflare route module components.
132
+ */
106
133
  export interface CloudflareRouteModuleComponentProps<
107
134
  Data = unknown,
108
135
  Env = unknown,
@@ -112,10 +139,16 @@ export interface CloudflareRouteModuleComponentProps<
112
139
  request: Request;
113
140
  }
114
141
 
142
+ /**
143
+ * Renders a Cloudflare route module response body or `Response`.
144
+ */
115
145
  export type CloudflareRouteModuleComponent<Data = unknown, Env = unknown> = (
116
146
  props: CloudflareRouteModuleComponentProps<Data, Env>,
117
147
  ) => Response | string | PromiseLike<Response | string>;
118
148
 
149
+ /**
150
+ * Defines the exports accepted from a Cloudflare page route module.
151
+ */
119
152
  export interface CloudflareRouteModule<Data = unknown, Env = unknown> {
120
153
  App?: CloudflareRouteModuleComponent<Data, Env> | undefined;
121
154
  CloudflareRouteComponent?: CloudflareRouteModuleComponent<Data, Env> | undefined;
@@ -131,11 +164,17 @@ export interface CloudflareRouteModule<Data = unknown, Env = unknown> {
131
164
  metadata?: RouteMetadata | undefined;
132
165
  }
133
166
 
167
+ /**
168
+ * Handles a Cloudflare server route request.
169
+ */
134
170
  export type CloudflareServerRouteHandler<Env = unknown> = (
135
171
  request: Request,
136
172
  context: CloudflareServerRouteContext<Env>,
137
173
  ) => unknown | PromiseLike<unknown>;
138
174
 
175
+ /**
176
+ * Defines HTTP method exports accepted from a Cloudflare server route module.
177
+ */
139
178
  export interface CloudflareServerRouteModule<Env = unknown> {
140
179
  ALL?: CloudflareServerRouteHandler<Env> | undefined;
141
180
  DELETE?: CloudflareServerRouteHandler<Env> | undefined;
@@ -148,6 +187,9 @@ export interface CloudflareServerRouteModule<Env = unknown> {
148
187
  PUT?: CloudflareServerRouteHandler<Env> | undefined;
149
188
  }
150
189
 
190
+ /**
191
+ * Provides request context to Cloudflare metadata route modules.
192
+ */
151
193
  export interface CloudflareMetadataRouteContext {
152
194
  baseUrl: string;
153
195
  host: string;
@@ -155,21 +197,33 @@ export interface CloudflareMetadataRouteContext {
155
197
  request: Request;
156
198
  }
157
199
 
200
+ /**
201
+ * Defines the default export accepted from a Cloudflare metadata route module.
202
+ */
158
203
  export interface CloudflareMetadataRouteModule {
159
204
  default?: ((context: CloudflareMetadataRouteContext) => unknown | PromiseLike<unknown>) | undefined;
160
205
  }
161
206
 
207
+ /**
208
+ * Represents one registered Cloudflare route module entry.
209
+ */
162
210
  export type CloudflareRouteModuleRegistryEntry<Env = unknown> =
163
211
  | CloudflareRouteModule<unknown, Env>
164
212
  | CloudflareMetadataRouteModule
165
213
  | CloudflareServerRouteModule<Env>;
166
214
 
215
+ /**
216
+ * Maps generated route module file keys to Cloudflare route modules or lazy loaders.
217
+ */
167
218
  export type CloudflareRouteModuleRegistry<Env = unknown> = Record<
168
219
  string,
169
220
  | CloudflareRouteModuleRegistryEntry<Env>
170
221
  | (() => CloudflareRouteModuleRegistryEntry<Env> | PromiseLike<CloudflareRouteModuleRegistryEntry<Env>>)
171
222
  >;
172
223
 
224
+ /**
225
+ * Configures the Cloudflare route module renderer.
226
+ */
173
227
  export interface CloudflareRouteModuleRendererOptions<Env = unknown> {
174
228
  document?:
175
229
  | ((
@@ -182,16 +236,25 @@ export interface CloudflareRouteModuleRendererOptions<Env = unknown> {
182
236
  modules: CloudflareRouteModuleRegistry<Env>;
183
237
  }
184
238
 
239
+ /**
240
+ * Represents an import glob of Cloudflare route modules.
241
+ */
185
242
  export type CloudflareRouteModuleGlob<Env = unknown> = Record<
186
243
  string,
187
244
  | CloudflareRouteModuleRegistryEntry<Env>
188
245
  | (() => CloudflareRouteModuleRegistryEntry<Env> | PromiseLike<CloudflareRouteModuleRegistryEntry<Env>>)
189
246
  >;
190
247
 
248
+ /**
249
+ * Configures collection of Cloudflare route modules from a built manifest.
250
+ */
191
251
  export interface CollectCloudflareRouteModulesOptions {
192
252
  manifest: BuiltServerManifest;
193
253
  }
194
254
 
255
+ /**
256
+ * Configures a Cloudflare request handler that renders matched built routes.
257
+ */
195
258
  export interface CloudflareBuiltRequestHandlerOptions<Env = unknown> extends Omit<
196
259
  CloudflareRequestHandlerOptions<Env>,
197
260
  "render"
@@ -204,16 +267,25 @@ export interface CloudflareBuiltRequestHandlerOptions<Env = unknown> extends Omi
204
267
  | undefined;
205
268
  }
206
269
 
270
+ /**
271
+ * Describes client assets and route metadata used by Cloudflare handlers.
272
+ */
207
273
  export interface CloudflareClientManifest {
208
274
  assets?: readonly string[] | undefined;
209
275
  publicAssets?: readonly string[] | undefined;
210
276
  routes: ClientRouteManifestEntry[];
211
277
  }
212
278
 
279
+ /**
280
+ * Represents a Cloudflare asset binding with a `fetch` method.
281
+ */
213
282
  export interface CloudflareAssetBinding {
214
283
  fetch(request: Request): Response | Promise<Response>;
215
284
  }
216
285
 
286
+ /**
287
+ * Configures static asset loading from a Cloudflare asset binding.
288
+ */
217
289
  export interface CloudflareStaticAssetLoaderOptions<Env = unknown> {
218
290
  binding:
219
291
  | CloudflareAssetBinding
@@ -225,12 +297,18 @@ export interface CloudflareStaticAssetLoaderOptions<Env = unknown> {
225
297
  prefix?: string | undefined;
226
298
  }
227
299
 
300
+ /**
301
+ * Defines the Cloudflare Cache API subset used by prerender stores.
302
+ */
228
303
  export interface CloudflareCache {
229
304
  delete(request: Request | string): boolean | Promise<boolean>;
230
305
  match(request: Request | string): Response | Promise<Response | undefined> | undefined;
231
306
  put(request: Request | string, response: Response): void | Promise<void>;
232
307
  }
233
308
 
309
+ /**
310
+ * Configures a Cloudflare Cache API backed prerender store.
311
+ */
234
312
  export interface CloudflarePrerenderStoreOptions {
235
313
  cache: CloudflareCache;
236
314
  keyOrigin?: string | undefined;