@rangojs/router 0.0.0-experimental.tapabs2 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1320) hide show
  1. package/dist/bin/rango.js +8 -40
  2. package/dist/types/__internal.d.ts +127 -0
  3. package/dist/types/bin/rango.d.ts +1 -0
  4. package/dist/types/browser/action-coordinator.d.ts +57 -0
  5. package/dist/types/browser/action-fence.d.ts +33 -0
  6. package/dist/types/browser/app-shell.d.ts +34 -0
  7. package/dist/types/browser/app-version.d.ts +6 -0
  8. package/dist/types/browser/connection-warmup.d.ts +31 -0
  9. package/dist/types/browser/cookie-name.d.ts +66 -0
  10. package/dist/types/browser/event-controller.d.ts +221 -0
  11. package/dist/types/browser/history-state.d.ts +26 -0
  12. package/dist/types/browser/index.d.ts +1 -0
  13. package/dist/types/browser/intercept-utils.d.ts +30 -0
  14. package/dist/types/browser/invalidate-client-cache.d.ts +17 -0
  15. package/dist/types/browser/link-interceptor.d.ts +43 -0
  16. package/dist/types/browser/logging.d.ts +33 -0
  17. package/dist/types/browser/merge-segment-loaders.d.ts +38 -0
  18. package/dist/types/browser/navigation-bridge.d.ts +27 -0
  19. package/dist/types/browser/navigation-client.d.ts +17 -0
  20. package/dist/types/browser/navigation-store-handle.d.ts +25 -0
  21. package/dist/types/browser/navigation-store.d.ts +95 -0
  22. package/dist/types/browser/navigation-transaction.d.ts +75 -0
  23. package/dist/types/browser/network-error-handler.d.ts +35 -0
  24. package/dist/types/browser/partial-update.d.ts +61 -0
  25. package/dist/types/browser/prefetch/cache.d.ts +183 -0
  26. package/dist/types/browser/prefetch/fetch.d.ts +52 -0
  27. package/dist/types/browser/prefetch/observer.d.ts +27 -0
  28. package/dist/types/browser/prefetch/policy.d.ts +13 -0
  29. package/dist/types/browser/prefetch/queue.d.ts +48 -0
  30. package/dist/types/browser/prefetch/resource-ready.d.ts +28 -0
  31. package/dist/types/browser/rango-state.d.ts +52 -0
  32. package/dist/types/browser/react/Link.d.ts +140 -0
  33. package/dist/types/browser/react/NavigationProvider.d.ts +88 -0
  34. package/dist/types/browser/react/ScrollRestoration.d.ts +78 -0
  35. package/dist/types/browser/react/context.d.ts +54 -0
  36. package/dist/types/browser/react/filter-segment-order.d.ts +35 -0
  37. package/dist/types/browser/react/index.d.ts +1 -0
  38. package/dist/types/browser/react/location-state-shared.d.ts +162 -0
  39. package/dist/types/browser/react/location-state.d.ts +29 -0
  40. package/dist/types/browser/react/mount-context.d.ts +23 -0
  41. package/dist/types/browser/react/nonce-context.d.ts +14 -0
  42. package/dist/types/browser/react/shallow-equal.d.ts +5 -0
  43. package/dist/types/browser/react/use-action.d.ts +61 -0
  44. package/dist/types/browser/react/use-handle.d.ts +21 -0
  45. package/dist/types/browser/react/use-href.d.ts +32 -0
  46. package/dist/types/browser/react/use-link-status.d.ts +36 -0
  47. package/dist/types/browser/react/use-mount.d.ts +24 -0
  48. package/dist/types/browser/react/use-navigation.d.ts +15 -0
  49. package/dist/types/browser/react/use-params.d.ts +21 -0
  50. package/dist/types/browser/react/use-pathname.d.ts +13 -0
  51. package/dist/types/browser/react/use-reverse.d.ts +40 -0
  52. package/dist/types/browser/react/use-router.d.ts +23 -0
  53. package/dist/types/browser/react/use-search-params.d.ts +19 -0
  54. package/dist/types/browser/react/use-segments.d.ts +29 -0
  55. package/dist/types/browser/response-adapter.d.ts +58 -0
  56. package/dist/types/browser/rsc-router.d.ts +141 -0
  57. package/dist/types/browser/scroll-restoration.d.ts +103 -0
  58. package/dist/types/browser/segment-reconciler.d.ts +74 -0
  59. package/dist/types/browser/segment-structure-assert.d.ts +16 -0
  60. package/dist/types/browser/server-action-bridge.d.ts +29 -0
  61. package/dist/types/browser/types.d.ts +530 -0
  62. package/dist/types/browser/validate-redirect-origin.d.ts +28 -0
  63. package/dist/types/build/collect-fallback-refs.d.ts +5 -0
  64. package/dist/types/build/generate-manifest.d.ts +100 -0
  65. package/dist/types/build/generate-route-types.d.ts +8 -0
  66. package/dist/types/build/index.d.ts +21 -0
  67. package/dist/types/build/prefix-tree-utils.d.ts +56 -0
  68. package/dist/types/build/route-trie.d.ts +89 -0
  69. package/dist/types/build/route-types/ast-helpers.d.ts +3 -0
  70. package/dist/types/build/route-types/ast-route-extraction.d.ts +13 -0
  71. package/dist/types/build/route-types/codegen.d.ts +16 -0
  72. package/dist/types/build/route-types/include-resolution.d.ts +74 -0
  73. package/dist/types/build/route-types/param-extraction.d.ts +13 -0
  74. package/dist/types/build/route-types/per-module-writer.d.ts +18 -0
  75. package/dist/types/build/route-types/router-processing.d.ts +82 -0
  76. package/dist/types/build/route-types/scan-filter.d.ts +17 -0
  77. package/dist/types/build/route-types/source-scan.d.ts +13 -0
  78. package/dist/types/build/runtime-discovery.d.ts +24 -0
  79. package/dist/types/cache/background-task.d.ts +21 -0
  80. package/dist/types/cache/cache-error.d.ts +71 -0
  81. package/dist/types/cache/cache-key-utils.d.ts +35 -0
  82. package/dist/types/cache/cache-policy.d.ts +59 -0
  83. package/dist/types/cache/cache-runtime.d.ts +51 -0
  84. package/dist/types/cache/cache-scope.d.ts +134 -0
  85. package/dist/types/cache/cache-tag.d.ts +79 -0
  86. package/dist/types/cache/cf/cf-base64.d.ts +4 -0
  87. package/dist/types/cache/cf/cf-cache-constants.d.ts +105 -0
  88. package/dist/types/cache/cf/cf-cache-store.d.ts +588 -0
  89. package/dist/types/cache/cf/cf-cache-types.d.ts +363 -0
  90. package/dist/types/cache/cf/cf-kv-utils.d.ts +22 -0
  91. package/dist/types/cache/cf/cf-tag-marker-memo.d.ts +15 -0
  92. package/dist/types/cache/cf/cf-zone-purge.d.ts +31 -0
  93. package/dist/types/cache/cf/index.d.ts +4 -0
  94. package/dist/types/cache/document-cache.d.ts +69 -0
  95. package/dist/types/cache/handle-capture.d.ts +23 -0
  96. package/dist/types/cache/handle-snapshot.d.ts +39 -0
  97. package/dist/types/cache/index.d.ts +7 -0
  98. package/dist/types/cache/memory-segment-store.d.ts +163 -0
  99. package/dist/types/cache/profile-registry.d.ts +40 -0
  100. package/dist/types/cache/read-through-swr.d.ts +60 -0
  101. package/dist/types/cache/segment-codec.d.ts +78 -0
  102. package/dist/types/cache/shell-snapshot.d.ts +173 -0
  103. package/dist/types/cache/tag-invalidation.d.ts +74 -0
  104. package/dist/types/cache/taint.d.ts +71 -0
  105. package/dist/types/cache/types.d.ts +418 -0
  106. package/dist/types/cache/vercel/index.d.ts +1 -0
  107. package/dist/types/cache/vercel/vercel-cache-store.d.ts +267 -0
  108. package/dist/types/client.d.ts +184 -0
  109. package/dist/types/client.rsc.d.ts +39 -0
  110. package/dist/types/cloudflare/index.d.ts +7 -0
  111. package/dist/types/cloudflare/tracing.d.ts +53 -0
  112. package/dist/types/component-utils.d.ts +46 -0
  113. package/dist/types/components/DefaultDocument.d.ts +13 -0
  114. package/dist/types/context-var.d.ts +84 -0
  115. package/dist/types/debug.d.ts +57 -0
  116. package/dist/types/decode-loader-results.d.ts +5 -0
  117. package/dist/types/default-error-boundary.d.ts +10 -0
  118. package/dist/types/defer.d.ts +89 -0
  119. package/dist/types/deps/browser.d.ts +1 -0
  120. package/dist/types/deps/html-stream-client.d.ts +1 -0
  121. package/dist/types/deps/html-stream-server.d.ts +1 -0
  122. package/dist/types/deps/rsc.d.ts +1 -0
  123. package/dist/types/deps/ssr.d.ts +1 -0
  124. package/dist/types/encode-kv.d.ts +35 -0
  125. package/dist/types/errors.d.ts +226 -0
  126. package/dist/types/escape-script.d.ts +44 -0
  127. package/dist/types/handle.d.ts +93 -0
  128. package/dist/types/handles/MetaTags.d.ts +17 -0
  129. package/dist/types/handles/Scripts.d.ts +38 -0
  130. package/dist/types/handles/breadcrumbs.d.ts +43 -0
  131. package/dist/types/handles/deferred-resolution.d.ts +53 -0
  132. package/dist/types/handles/is-thenable.d.ts +12 -0
  133. package/dist/types/handles/meta.d.ts +43 -0
  134. package/dist/types/handles/script.d.ts +139 -0
  135. package/dist/types/host/cookie-handler.d.ts +8 -0
  136. package/dist/types/host/errors.d.ts +40 -0
  137. package/dist/types/host/index.d.ts +33 -0
  138. package/dist/types/host/pattern-matcher.d.ts +30 -0
  139. package/dist/types/host/router.d.ts +12 -0
  140. package/dist/types/host/testing.d.ts +41 -0
  141. package/dist/types/host/types.d.ts +148 -0
  142. package/dist/types/host/utils.d.ts +20 -0
  143. package/dist/types/href-client.d.ts +214 -0
  144. package/dist/types/index.d.ts +112 -0
  145. package/dist/types/index.rsc.d.ts +51 -0
  146. package/dist/types/internal-debug.d.ts +1 -0
  147. package/dist/types/loader-store.d.ts +193 -0
  148. package/dist/types/loader.d.ts +18 -0
  149. package/dist/types/loader.rsc.d.ts +18 -0
  150. package/dist/types/missing-id-error.d.ts +1 -0
  151. package/dist/types/outlet-context.d.ts +12 -0
  152. package/dist/types/outlet-provider.d.ts +12 -0
  153. package/dist/types/prerender/build-shell-capture.d.ts +104 -0
  154. package/dist/types/prerender/param-hash.d.ts +6 -0
  155. package/dist/types/prerender/shell-manifest-key.d.ts +18 -0
  156. package/dist/types/prerender/store.d.ts +62 -0
  157. package/dist/types/prerender.d.ts +292 -0
  158. package/dist/types/redirect-origin.d.ts +67 -0
  159. package/dist/types/regex-escape.d.ts +6 -0
  160. package/dist/types/render-error-thrower.d.ts +13 -0
  161. package/dist/types/response-utils.d.ts +35 -0
  162. package/dist/types/reverse.d.ts +206 -0
  163. package/dist/types/root-error-boundary.d.ts +32 -0
  164. package/dist/types/route-content-wrapper.d.ts +40 -0
  165. package/dist/types/route-definition/dsl-helpers.d.ts +130 -0
  166. package/dist/types/route-definition/helper-factories.d.ts +22 -0
  167. package/dist/types/route-definition/helpers-types.d.ts +392 -0
  168. package/dist/types/route-definition/index.d.ts +7 -0
  169. package/dist/types/route-definition/redirect.d.ts +48 -0
  170. package/dist/types/route-definition/resolve-handler-use.d.ts +19 -0
  171. package/dist/types/route-definition/use-item-types.d.ts +1 -0
  172. package/dist/types/route-definition.d.ts +1 -0
  173. package/dist/types/route-map-builder.d.ts +127 -0
  174. package/dist/types/route-name.d.ts +27 -0
  175. package/dist/types/route-types.d.ts +172 -0
  176. package/dist/types/router/basename.d.ts +10 -0
  177. package/dist/types/router/content-negotiation.d.ts +91 -0
  178. package/dist/types/router/debug-manifest.d.ts +7 -0
  179. package/dist/types/router/error-handling.d.ts +76 -0
  180. package/dist/types/router/find-match.d.ts +19 -0
  181. package/dist/types/router/handler-context.d.ts +41 -0
  182. package/dist/types/router/instrument.d.ts +161 -0
  183. package/dist/types/router/intercept-resolution.d.ts +79 -0
  184. package/dist/types/router/lazy-includes.d.ts +26 -0
  185. package/dist/types/router/loader-resolution.d.ts +63 -0
  186. package/dist/types/router/logging.d.ts +41 -0
  187. package/dist/types/router/manifest.d.ts +8 -0
  188. package/dist/types/router/match-api.d.ts +19 -0
  189. package/dist/types/router/match-context.d.ts +184 -0
  190. package/dist/types/router/match-handlers.d.ts +49 -0
  191. package/dist/types/router/match-middleware/background-revalidation.d.ts +113 -0
  192. package/dist/types/router/match-middleware/cache-lookup.d.ts +113 -0
  193. package/dist/types/router/match-middleware/cache-store.d.ts +112 -0
  194. package/dist/types/router/match-middleware/index.d.ts +80 -0
  195. package/dist/types/router/match-middleware/intercept-resolution.d.ts +116 -0
  196. package/dist/types/router/match-middleware/segment-resolution.d.ts +94 -0
  197. package/dist/types/router/match-pipelines.d.ts +103 -0
  198. package/dist/types/router/match-result.d.ts +114 -0
  199. package/dist/types/router/metrics.d.ts +6 -0
  200. package/dist/types/router/middleware-types.d.ts +74 -0
  201. package/dist/types/router/middleware.d.ts +116 -0
  202. package/dist/types/router/navigation-snapshot.d.ts +22 -0
  203. package/dist/types/router/params-util.d.ts +8 -0
  204. package/dist/types/router/parse-pattern.d.ts +38 -0
  205. package/dist/types/router/pattern-matching.d.ts +169 -0
  206. package/dist/types/router/prefetch-cache-ttl.d.ts +27 -0
  207. package/dist/types/router/prefetch-limits.d.ts +20 -0
  208. package/dist/types/router/prerender-match.d.ts +50 -0
  209. package/dist/types/router/preview-match.d.ts +22 -0
  210. package/dist/types/router/request-classification.d.ts +104 -0
  211. package/dist/types/router/revalidation.d.ts +57 -0
  212. package/dist/types/router/route-snapshot.d.ts +112 -0
  213. package/dist/types/router/router-context.d.ts +137 -0
  214. package/dist/types/router/router-interfaces.d.ts +432 -0
  215. package/dist/types/router/router-options.d.ts +738 -0
  216. package/dist/types/router/router-registry.d.ts +15 -0
  217. package/dist/types/router/segment-resolution/fresh.d.ts +55 -0
  218. package/dist/types/router/segment-resolution/helpers.d.ts +93 -0
  219. package/dist/types/router/segment-resolution/loader-cache.d.ts +33 -0
  220. package/dist/types/router/segment-resolution/loader-mask.d.ts +44 -0
  221. package/dist/types/router/segment-resolution/loader-snapshot.d.ts +90 -0
  222. package/dist/types/router/segment-resolution/mask-nested.d.ts +53 -0
  223. package/dist/types/router/segment-resolution/revalidation.d.ts +85 -0
  224. package/dist/types/router/segment-resolution/static-store.d.ts +17 -0
  225. package/dist/types/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
  226. package/dist/types/router/segment-resolution/view-transition-default.d.ts +28 -0
  227. package/dist/types/router/segment-resolution.d.ts +3 -0
  228. package/dist/types/router/segment-wrappers.d.ts +53 -0
  229. package/dist/types/router/state-cookie-name.d.ts +1 -0
  230. package/dist/types/router/substitute-pattern-params.d.ts +23 -0
  231. package/dist/types/router/telemetry-otel.d.ts +113 -0
  232. package/dist/types/router/telemetry.d.ts +216 -0
  233. package/dist/types/router/timeout.d.ts +96 -0
  234. package/dist/types/router/tracing.d.ts +125 -0
  235. package/dist/types/router/trie-matching.d.ts +32 -0
  236. package/dist/types/router/types.d.ts +98 -0
  237. package/dist/types/router/url-params.d.ts +26 -0
  238. package/dist/types/router.d.ts +7 -0
  239. package/dist/types/rsc/capture-queue.d.ts +6 -0
  240. package/dist/types/rsc/full-payload.d.ts +22 -0
  241. package/dist/types/rsc/handler-context.d.ts +31 -0
  242. package/dist/types/rsc/handler.d.ts +9 -0
  243. package/dist/types/rsc/helpers.d.ts +124 -0
  244. package/dist/types/rsc/index.d.ts +17 -0
  245. package/dist/types/rsc/json-route-result.d.ts +20 -0
  246. package/dist/types/rsc/loader-fetch.d.ts +14 -0
  247. package/dist/types/rsc/manifest-init.d.ts +18 -0
  248. package/dist/types/rsc/nonce.d.ts +28 -0
  249. package/dist/types/rsc/origin-guard.d.ts +50 -0
  250. package/dist/types/rsc/progressive-enhancement.d.ts +19 -0
  251. package/dist/types/rsc/redirect-guard.d.ts +37 -0
  252. package/dist/types/rsc/render-pipeline.d.ts +138 -0
  253. package/dist/types/rsc/response-cache-serve.d.ts +46 -0
  254. package/dist/types/rsc/response-error.d.ts +19 -0
  255. package/dist/types/rsc/response-route-handler.d.ts +29 -0
  256. package/dist/types/rsc/rsc-rendering.d.ts +23 -0
  257. package/dist/types/rsc/runtime-warnings.d.ts +22 -0
  258. package/dist/types/rsc/server-action.d.ts +68 -0
  259. package/dist/types/rsc/shell-build-manifest.d.ts +84 -0
  260. package/dist/types/rsc/shell-capture-constants.d.ts +27 -0
  261. package/dist/types/rsc/shell-capture.d.ts +374 -0
  262. package/dist/types/rsc/shell-serve.d.ts +174 -0
  263. package/dist/types/rsc/ssr-setup.d.ts +73 -0
  264. package/dist/types/rsc/transition-gate.d.ts +27 -0
  265. package/dist/types/rsc/types.d.ts +290 -0
  266. package/dist/types/runtime-env.d.ts +1 -0
  267. package/dist/types/search-params.d.ts +125 -0
  268. package/dist/types/segment-content-promise.d.ts +13 -0
  269. package/dist/types/segment-fragments.d.ts +56 -0
  270. package/dist/types/segment-loader-promise.d.ts +22 -0
  271. package/dist/types/segment-system.d.ts +84 -0
  272. package/dist/types/serialize.d.ts +164 -0
  273. package/dist/types/server/context.d.ts +494 -0
  274. package/dist/types/server/cookie-parse.d.ts +10 -0
  275. package/dist/types/server/cookie-store.d.ts +107 -0
  276. package/dist/types/server/fetchable-loader-store.d.ts +20 -0
  277. package/dist/types/server/handle-store.d.ts +100 -0
  278. package/dist/types/server/loader-registry.d.ts +32 -0
  279. package/dist/types/server/request-context.d.ts +618 -0
  280. package/dist/types/server/root-layout.d.ts +3 -0
  281. package/dist/types/server.d.ts +15 -0
  282. package/dist/types/ssr/index.d.ts +233 -0
  283. package/dist/types/ssr/inject-rsc-eager.d.ts +3 -0
  284. package/dist/types/ssr/preinit-client-references.d.ts +71 -0
  285. package/dist/types/ssr/ssr-root.d.ts +69 -0
  286. package/dist/types/static-handler.d.ts +57 -0
  287. package/dist/types/testing/cache-status.d.ts +63 -0
  288. package/dist/types/testing/collect-handle.d.ts +20 -0
  289. package/dist/types/testing/dispatch.d.ts +127 -0
  290. package/dist/types/testing/dom.entry.d.ts +15 -0
  291. package/dist/types/testing/e2e/fixture.d.ts +37 -0
  292. package/dist/types/testing/e2e/index.d.ts +31 -0
  293. package/dist/types/testing/e2e/matchers.d.ts +17 -0
  294. package/dist/types/testing/e2e/page-helpers.d.ts +62 -0
  295. package/dist/types/testing/e2e/parity.d.ts +111 -0
  296. package/dist/types/testing/e2e/server.d.ts +35 -0
  297. package/dist/types/testing/flight-matchers.d.ts +55 -0
  298. package/dist/types/testing/flight-normalize.d.ts +1 -0
  299. package/dist/types/testing/flight-tree.d.ts +192 -0
  300. package/dist/types/testing/flight.d.ts +115 -0
  301. package/dist/types/testing/flight.entry.d.ts +27 -0
  302. package/dist/types/testing/generated-routes.d.ts +66 -0
  303. package/dist/types/testing/index.d.ts +54 -0
  304. package/dist/types/testing/internal/context.d.ts +225 -0
  305. package/dist/types/testing/internal/flight-client-globals.d.ts +1 -0
  306. package/dist/types/testing/internal/seed-vars.d.ts +30 -0
  307. package/dist/types/testing/render-handler.d.ts +160 -0
  308. package/dist/types/testing/render-route.d.ts +246 -0
  309. package/dist/types/testing/run-loader.d.ts +186 -0
  310. package/dist/types/testing/run-middleware.d.ts +132 -0
  311. package/dist/types/testing/run-transition-when.d.ts +77 -0
  312. package/dist/types/testing/shell-status.d.ts +58 -0
  313. package/dist/types/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
  314. package/dist/types/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
  315. package/dist/types/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
  316. package/dist/types/testing/vitest-stubs/version.d.ts +1 -0
  317. package/dist/types/testing/vitest.d.ts +205 -0
  318. package/dist/types/theme/ThemeProvider.d.ts +13 -0
  319. package/dist/types/theme/ThemeScript.d.ts +45 -0
  320. package/dist/types/theme/constants.d.ts +39 -0
  321. package/dist/types/theme/index.d.ts +29 -0
  322. package/dist/types/theme/theme-context.d.ts +21 -0
  323. package/dist/types/theme/theme-script.d.ts +26 -0
  324. package/dist/types/theme/types.d.ts +162 -0
  325. package/dist/types/theme/use-theme.d.ts +8 -0
  326. package/dist/types/types/boundaries.d.ts +93 -0
  327. package/dist/types/types/cache-types.d.ts +191 -0
  328. package/dist/types/types/error-types.d.ts +114 -0
  329. package/dist/types/types/global-namespace.d.ts +90 -0
  330. package/dist/types/types/handler-context.d.ts +658 -0
  331. package/dist/types/types/index.d.ts +11 -0
  332. package/dist/types/types/loader-types.d.ts +182 -0
  333. package/dist/types/types/request-scope.d.ts +93 -0
  334. package/dist/types/types/route-config.d.ts +105 -0
  335. package/dist/types/types/route-entry.d.ts +95 -0
  336. package/dist/types/types/segments.d.ts +234 -0
  337. package/dist/types/types.d.ts +1 -0
  338. package/dist/types/urls/include-helper.d.ts +17 -0
  339. package/dist/types/urls/include-provider.d.ts +27 -0
  340. package/dist/types/urls/index.d.ts +6 -0
  341. package/dist/types/urls/path-helper-types.d.ts +197 -0
  342. package/dist/types/urls/path-helper.d.ts +12 -0
  343. package/dist/types/urls/pattern-types.d.ts +166 -0
  344. package/dist/types/urls/response-types.d.ts +67 -0
  345. package/dist/types/urls/type-extraction.d.ts +157 -0
  346. package/dist/types/urls/urls-function.d.ts +24 -0
  347. package/dist/types/urls.d.ts +1 -0
  348. package/dist/types/use-loader.d.ts +150 -0
  349. package/dist/types/vercel/index.d.ts +10 -0
  350. package/dist/types/vercel/tracing.d.ts +70 -0
  351. package/dist/types/vite/debug.d.ts +80 -0
  352. package/dist/types/vite/discovery/bundle-postprocess.d.ts +12 -0
  353. package/dist/types/vite/discovery/dev-prerender-cache.d.ts +65 -0
  354. package/dist/types/vite/discovery/discover-routers.d.ts +17 -0
  355. package/dist/types/vite/discovery/discovery-errors.d.ts +113 -0
  356. package/dist/types/vite/discovery/gate-state.d.ts +79 -0
  357. package/dist/types/vite/discovery/prerender-collection.d.ts +24 -0
  358. package/dist/types/vite/discovery/route-types-writer.d.ts +32 -0
  359. package/dist/types/vite/discovery/self-gen-tracking.d.ts +22 -0
  360. package/dist/types/vite/discovery/shell-prerender-phase.d.ts +40 -0
  361. package/dist/types/vite/discovery/state.d.ts +162 -0
  362. package/dist/types/vite/discovery/virtual-module-codegen.d.ts +15 -0
  363. package/dist/types/vite/index.d.ts +11 -0
  364. package/dist/types/vite/inject-client-debug.d.ts +56 -0
  365. package/dist/types/vite/plugin-types.d.ts +298 -0
  366. package/dist/types/vite/plugins/cjs-to-esm.d.ts +6 -0
  367. package/dist/types/vite/plugins/client-ref-dedup.d.ts +40 -0
  368. package/dist/types/vite/plugins/client-ref-hashing.d.ts +35 -0
  369. package/dist/types/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
  370. package/dist/types/vite/plugins/expose-action-id.d.ts +18 -0
  371. package/dist/types/vite/plugins/expose-id-utils.d.ts +37 -0
  372. package/dist/types/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
  373. package/dist/types/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
  374. package/dist/types/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
  375. package/dist/types/vite/plugins/expose-ids/router-transform.d.ts +13 -0
  376. package/dist/types/vite/plugins/expose-ids/types.d.ts +29 -0
  377. package/dist/types/vite/plugins/expose-internal-ids.d.ts +6 -0
  378. package/dist/types/vite/plugins/performance-tracks.d.ts +25 -0
  379. package/dist/types/vite/plugins/refresh-cmd.d.ts +20 -0
  380. package/dist/types/vite/plugins/use-cache-transform.d.ts +20 -0
  381. package/dist/types/vite/plugins/vercel-output.d.ts +85 -0
  382. package/dist/types/vite/plugins/version-injector.d.ts +21 -0
  383. package/dist/types/vite/plugins/version-plugin.d.ts +19 -0
  384. package/dist/types/vite/plugins/virtual-entries.d.ts +36 -0
  385. package/dist/types/vite/plugins/virtual-stub-plugin.d.ts +7 -0
  386. package/dist/types/vite/rango.d.ts +29 -0
  387. package/dist/types/vite/router-discovery.d.ts +23 -0
  388. package/dist/types/vite/utils/ast-handler-extract.d.ts +64 -0
  389. package/dist/types/vite/utils/banner.d.ts +2 -0
  390. package/dist/types/vite/utils/bundle-analysis.d.ts +28 -0
  391. package/dist/types/vite/utils/client-chunks.d.ts +55 -0
  392. package/dist/types/vite/utils/directive-prologue.d.ts +16 -0
  393. package/dist/types/vite/utils/forward-user-plugins.d.ts +37 -0
  394. package/dist/types/vite/utils/manifest-utils.d.ts +7 -0
  395. package/dist/types/vite/utils/package-resolution.d.ts +6 -0
  396. package/dist/types/vite/utils/prerender-utils.d.ts +32 -0
  397. package/dist/types/vite/utils/shared-utils.d.ts +55 -0
  398. package/dist/vite/index.js +1051 -361
  399. package/package.json +39 -33
  400. package/skills/catalog.json +6 -0
  401. package/skills/cloudflare/SKILL.md +149 -0
  402. package/skills/cloudflare/agents/openai.yaml +4 -0
  403. package/skills/cloudflare/references/d1-and-local-dev.md +131 -0
  404. package/skills/cloudflare/references/streaming-and-deploy.md +107 -0
  405. package/skills/cloudflare/references/webhooks-and-crypto.md +147 -0
  406. package/skills/composability/SKILL.md +14 -0
  407. package/skills/debug-manifest/SKILL.md +2 -10
  408. package/skills/links/SKILL.md +12 -0
  409. package/skills/middleware/SKILL.md +33 -0
  410. package/skills/migrate-nextjs/SKILL.md +65 -16
  411. package/skills/migrate-nextjs/backend-host-swap.md +120 -0
  412. package/skills/migrate-react-router/SKILL.md +6 -6
  413. package/skills/mime-routes/SKILL.md +25 -17
  414. package/skills/ppr/SKILL.md +100 -15
  415. package/skills/prerender/SKILL.md +44 -1
  416. package/skills/rango/SKILL.md +10 -10
  417. package/skills/response-routes/SKILL.md +41 -4
  418. package/skills/route/SKILL.md +6 -0
  419. package/skills/testing/SKILL.md +1 -0
  420. package/skills/testing/cache-prerender.md +43 -2
  421. package/skills/testing/response-routes.md +2 -2
  422. package/src/browser/event-controller.ts +16 -2
  423. package/src/browser/rsc-router.tsx +11 -0
  424. package/src/build/generate-manifest.ts +5 -36
  425. package/src/build/route-trie.ts +5 -50
  426. package/src/cache/cache-key-utils.ts +0 -1
  427. package/src/cache/cache-scope.ts +41 -3
  428. package/src/cache/cf/cf-cache-store.ts +465 -56
  429. package/src/cache/cf/cf-cache-types.ts +66 -0
  430. package/src/cache/cf/cf-tag-marker-memo.ts +5 -2
  431. package/src/cache/cf/cf-zone-purge.ts +101 -0
  432. package/src/cache/cf/index.ts +5 -0
  433. package/src/cache/handle-snapshot.ts +22 -1
  434. package/src/cache/index.ts +2 -0
  435. package/src/cache/memory-segment-store.ts +32 -0
  436. package/src/cache/segment-codec.ts +47 -0
  437. package/src/cache/shell-snapshot.ts +79 -14
  438. package/src/cache/types.ts +38 -0
  439. package/src/cache/vercel/vercel-cache-store.ts +71 -2
  440. package/src/deps/ssr.ts +4 -1
  441. package/src/index.rsc.ts +7 -0
  442. package/src/index.ts +1 -0
  443. package/src/prerender/build-shell-capture.ts +447 -0
  444. package/src/prerender/shell-manifest-key.ts +20 -0
  445. package/src/prerender/store.ts +10 -1
  446. package/src/prerender.ts +3 -3
  447. package/src/redirect-origin.ts +37 -8
  448. package/src/route-map-builder.ts +8 -8
  449. package/src/router/content-negotiation.ts +47 -5
  450. package/src/router/handler-context.ts +18 -10
  451. package/src/router/intercept-resolution.ts +30 -1
  452. package/src/router/loader-resolution.ts +16 -0
  453. package/src/router/match-api.ts +9 -2
  454. package/src/router/match-handlers.ts +13 -0
  455. package/src/router/match-middleware/cache-lookup.ts +12 -1
  456. package/src/router/metrics.ts +17 -2
  457. package/src/router/middleware-types.ts +17 -0
  458. package/src/router/middleware.ts +4 -0
  459. package/src/router/prerender-match.ts +28 -0
  460. package/src/router/router-interfaces.ts +7 -6
  461. package/src/router/router-options.ts +13 -8
  462. package/src/router/segment-resolution/fresh.ts +21 -2
  463. package/src/router/segment-resolution/helpers.ts +1 -1
  464. package/src/router/segment-resolution/loader-cache.ts +38 -7
  465. package/src/router/segment-resolution/mask-nested.ts +19 -3
  466. package/src/router/segment-resolution/revalidation.ts +9 -0
  467. package/src/router/telemetry-otel.ts +11 -0
  468. package/src/router/telemetry.ts +1 -0
  469. package/src/router/timeout.ts +41 -1
  470. package/src/router.ts +5 -4
  471. package/src/rsc/capture-queue.ts +67 -0
  472. package/src/rsc/handler.ts +151 -77
  473. package/src/rsc/helpers.ts +67 -4
  474. package/src/rsc/progressive-enhancement.ts +66 -54
  475. package/src/rsc/redirect-guard.ts +3 -1
  476. package/src/rsc/render-pipeline.ts +559 -0
  477. package/src/rsc/response-cache-serve.ts +39 -18
  478. package/src/rsc/response-route-handler.ts +9 -45
  479. package/src/rsc/rsc-rendering.ts +303 -103
  480. package/src/rsc/server-action.ts +50 -42
  481. package/src/rsc/shell-build-manifest.ts +316 -0
  482. package/src/rsc/shell-capture-constants.ts +27 -0
  483. package/src/rsc/shell-capture.ts +595 -69
  484. package/src/rsc/shell-serve.ts +133 -3
  485. package/src/rsc/ssr-setup.ts +102 -23
  486. package/src/segment-fragments.ts +124 -0
  487. package/src/server/context.ts +184 -8
  488. package/src/server/request-context.ts +297 -45
  489. package/src/ssr/index.tsx +167 -32
  490. package/src/ssr/preinit-client-references.ts +106 -0
  491. package/src/ssr/ssr-root.tsx +35 -2
  492. package/src/testing/dispatch.ts +132 -67
  493. package/src/testing/e2e/index.ts +8 -0
  494. package/src/testing/index.ts +9 -1
  495. package/src/testing/internal/context.ts +9 -0
  496. package/src/testing/render-handler.ts +15 -1
  497. package/src/testing/run-middleware.ts +14 -0
  498. package/src/testing/shell-status.ts +100 -0
  499. package/src/types/handler-context.ts +13 -2
  500. package/src/urls/path-helper-types.ts +1 -1
  501. package/src/urls/pattern-types.ts +29 -0
  502. package/src/vite/discovery/discover-routers.ts +71 -52
  503. package/src/vite/discovery/prerender-collection.ts +16 -0
  504. package/src/vite/discovery/shell-prerender-phase.ts +397 -0
  505. package/src/vite/discovery/state.ts +44 -0
  506. package/src/vite/discovery/virtual-module-codegen.ts +126 -20
  507. package/src/vite/index.ts +1 -0
  508. package/src/vite/plugin-types.ts +33 -0
  509. package/src/vite/plugins/version-plugin.ts +8 -0
  510. package/src/vite/plugins/virtual-entries.ts +37 -4
  511. package/src/vite/rango.ts +42 -2
  512. package/src/vite/router-discovery.ts +432 -21
  513. package/src/vite/utils/package-resolution.ts +1 -0
  514. package/src/vite/utils/prerender-utils.ts +25 -6
  515. package/src/vite/utils/shared-utils.ts +4 -2
  516. package/dist/__internal.d.ts +0 -83
  517. package/dist/__internal.d.ts.map +0 -1
  518. package/dist/__internal.js +0 -19
  519. package/dist/__internal.js.map +0 -1
  520. package/dist/__mocks__/version.d.ts +0 -7
  521. package/dist/__mocks__/version.d.ts.map +0 -1
  522. package/dist/__mocks__/version.js +0 -7
  523. package/dist/__mocks__/version.js.map +0 -1
  524. package/dist/__tests__/client-href.test.d.ts +0 -2
  525. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  526. package/dist/__tests__/client-href.test.js +0 -74
  527. package/dist/__tests__/client-href.test.js.map +0 -1
  528. package/dist/__tests__/component-utils.test.d.ts +0 -2
  529. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  530. package/dist/__tests__/component-utils.test.js +0 -51
  531. package/dist/__tests__/component-utils.test.js.map +0 -1
  532. package/dist/__tests__/event-controller.test.d.ts +0 -2
  533. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  534. package/dist/__tests__/event-controller.test.js +0 -538
  535. package/dist/__tests__/event-controller.test.js.map +0 -1
  536. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  537. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  538. package/dist/__tests__/helpers/route-tree.js +0 -374
  539. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  540. package/dist/__tests__/match-result.test.d.ts +0 -2
  541. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  542. package/dist/__tests__/match-result.test.js +0 -154
  543. package/dist/__tests__/match-result.test.js.map +0 -1
  544. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  545. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  546. package/dist/__tests__/navigation-store.test.js +0 -440
  547. package/dist/__tests__/navigation-store.test.js.map +0 -1
  548. package/dist/__tests__/partial-update.test.d.ts +0 -2
  549. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  550. package/dist/__tests__/partial-update.test.js +0 -1009
  551. package/dist/__tests__/partial-update.test.js.map +0 -1
  552. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  553. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  554. package/dist/__tests__/reverse-types.test.js +0 -656
  555. package/dist/__tests__/reverse-types.test.js.map +0 -1
  556. package/dist/__tests__/route-definition.test.d.ts +0 -2
  557. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  558. package/dist/__tests__/route-definition.test.js +0 -55
  559. package/dist/__tests__/route-definition.test.js.map +0 -1
  560. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  561. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  562. package/dist/__tests__/router-helpers.test.js +0 -377
  563. package/dist/__tests__/router-helpers.test.js.map +0 -1
  564. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  565. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  566. package/dist/__tests__/router-integration-2.test.js +0 -426
  567. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  568. package/dist/__tests__/router-integration.test.d.ts +0 -2
  569. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  570. package/dist/__tests__/router-integration.test.js +0 -1051
  571. package/dist/__tests__/router-integration.test.js.map +0 -1
  572. package/dist/__tests__/search-params.test.d.ts +0 -5
  573. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  574. package/dist/__tests__/search-params.test.js +0 -306
  575. package/dist/__tests__/search-params.test.js.map +0 -1
  576. package/dist/__tests__/segment-system.test.d.ts +0 -2
  577. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  578. package/dist/__tests__/segment-system.test.js +0 -627
  579. package/dist/__tests__/segment-system.test.js.map +0 -1
  580. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  581. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  582. package/dist/__tests__/static-handler-types.test.js +0 -63
  583. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  584. package/dist/__tests__/urls.test.d.ts +0 -2
  585. package/dist/__tests__/urls.test.d.ts.map +0 -1
  586. package/dist/__tests__/urls.test.js +0 -421
  587. package/dist/__tests__/urls.test.js.map +0 -1
  588. package/dist/__tests__/use-mount.test.d.ts +0 -2
  589. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  590. package/dist/__tests__/use-mount.test.js +0 -35
  591. package/dist/__tests__/use-mount.test.js.map +0 -1
  592. package/dist/bin/rango.d.ts +0 -2
  593. package/dist/bin/rango.d.ts.map +0 -1
  594. package/dist/bin/rango.js.map +0 -1
  595. package/dist/browser/event-controller.d.ts +0 -191
  596. package/dist/browser/event-controller.d.ts.map +0 -1
  597. package/dist/browser/event-controller.js +0 -559
  598. package/dist/browser/event-controller.js.map +0 -1
  599. package/dist/browser/index.d.ts +0 -2
  600. package/dist/browser/index.d.ts.map +0 -1
  601. package/dist/browser/index.js +0 -14
  602. package/dist/browser/index.js.map +0 -1
  603. package/dist/browser/link-interceptor.d.ts +0 -38
  604. package/dist/browser/link-interceptor.d.ts.map +0 -1
  605. package/dist/browser/link-interceptor.js +0 -99
  606. package/dist/browser/link-interceptor.js.map +0 -1
  607. package/dist/browser/logging.d.ts +0 -10
  608. package/dist/browser/logging.d.ts.map +0 -1
  609. package/dist/browser/logging.js +0 -29
  610. package/dist/browser/logging.js.map +0 -1
  611. package/dist/browser/lru-cache.d.ts +0 -17
  612. package/dist/browser/lru-cache.d.ts.map +0 -1
  613. package/dist/browser/lru-cache.js +0 -50
  614. package/dist/browser/lru-cache.js.map +0 -1
  615. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  616. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  617. package/dist/browser/merge-segment-loaders.js +0 -102
  618. package/dist/browser/merge-segment-loaders.js.map +0 -1
  619. package/dist/browser/navigation-bridge.d.ts +0 -102
  620. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  621. package/dist/browser/navigation-bridge.js +0 -708
  622. package/dist/browser/navigation-bridge.js.map +0 -1
  623. package/dist/browser/navigation-client.d.ts +0 -25
  624. package/dist/browser/navigation-client.d.ts.map +0 -1
  625. package/dist/browser/navigation-client.js +0 -157
  626. package/dist/browser/navigation-client.js.map +0 -1
  627. package/dist/browser/navigation-store.d.ts +0 -101
  628. package/dist/browser/navigation-store.d.ts.map +0 -1
  629. package/dist/browser/navigation-store.js +0 -625
  630. package/dist/browser/navigation-store.js.map +0 -1
  631. package/dist/browser/partial-update.d.ts +0 -75
  632. package/dist/browser/partial-update.d.ts.map +0 -1
  633. package/dist/browser/partial-update.js +0 -426
  634. package/dist/browser/partial-update.js.map +0 -1
  635. package/dist/browser/react/Link.d.ts +0 -86
  636. package/dist/browser/react/Link.d.ts.map +0 -1
  637. package/dist/browser/react/Link.js +0 -128
  638. package/dist/browser/react/Link.js.map +0 -1
  639. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  640. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  641. package/dist/browser/react/NavigationProvider.js +0 -216
  642. package/dist/browser/react/NavigationProvider.js.map +0 -1
  643. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  644. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  645. package/dist/browser/react/ScrollRestoration.js +0 -57
  646. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  647. package/dist/browser/react/context.d.ts +0 -46
  648. package/dist/browser/react/context.d.ts.map +0 -1
  649. package/dist/browser/react/context.js +0 -10
  650. package/dist/browser/react/context.js.map +0 -1
  651. package/dist/browser/react/index.d.ts +0 -11
  652. package/dist/browser/react/index.d.ts.map +0 -1
  653. package/dist/browser/react/index.js +0 -22
  654. package/dist/browser/react/index.js.map +0 -1
  655. package/dist/browser/react/location-state-shared.d.ts +0 -63
  656. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  657. package/dist/browser/react/location-state-shared.js +0 -81
  658. package/dist/browser/react/location-state-shared.js.map +0 -1
  659. package/dist/browser/react/location-state.d.ts +0 -23
  660. package/dist/browser/react/location-state.d.ts.map +0 -1
  661. package/dist/browser/react/location-state.js +0 -29
  662. package/dist/browser/react/location-state.js.map +0 -1
  663. package/dist/browser/react/mount-context.d.ts +0 -24
  664. package/dist/browser/react/mount-context.d.ts.map +0 -1
  665. package/dist/browser/react/mount-context.js +0 -24
  666. package/dist/browser/react/mount-context.js.map +0 -1
  667. package/dist/browser/react/use-action.d.ts +0 -64
  668. package/dist/browser/react/use-action.d.ts.map +0 -1
  669. package/dist/browser/react/use-action.js +0 -134
  670. package/dist/browser/react/use-action.js.map +0 -1
  671. package/dist/browser/react/use-client-cache.d.ts +0 -41
  672. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  673. package/dist/browser/react/use-client-cache.js +0 -39
  674. package/dist/browser/react/use-client-cache.js.map +0 -1
  675. package/dist/browser/react/use-handle.d.ts +0 -31
  676. package/dist/browser/react/use-handle.d.ts.map +0 -1
  677. package/dist/browser/react/use-handle.js +0 -144
  678. package/dist/browser/react/use-handle.js.map +0 -1
  679. package/dist/browser/react/use-href.d.ts +0 -33
  680. package/dist/browser/react/use-href.d.ts.map +0 -1
  681. package/dist/browser/react/use-href.js +0 -39
  682. package/dist/browser/react/use-href.js.map +0 -1
  683. package/dist/browser/react/use-link-status.d.ts +0 -37
  684. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  685. package/dist/browser/react/use-link-status.js +0 -99
  686. package/dist/browser/react/use-link-status.js.map +0 -1
  687. package/dist/browser/react/use-mount.d.ts +0 -25
  688. package/dist/browser/react/use-mount.d.ts.map +0 -1
  689. package/dist/browser/react/use-mount.js +0 -30
  690. package/dist/browser/react/use-mount.js.map +0 -1
  691. package/dist/browser/react/use-navigation.d.ts +0 -27
  692. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  693. package/dist/browser/react/use-navigation.js +0 -87
  694. package/dist/browser/react/use-navigation.js.map +0 -1
  695. package/dist/browser/react/use-segments.d.ts +0 -38
  696. package/dist/browser/react/use-segments.d.ts.map +0 -1
  697. package/dist/browser/react/use-segments.js +0 -130
  698. package/dist/browser/react/use-segments.js.map +0 -1
  699. package/dist/browser/request-controller.d.ts +0 -26
  700. package/dist/browser/request-controller.d.ts.map +0 -1
  701. package/dist/browser/request-controller.js +0 -147
  702. package/dist/browser/request-controller.js.map +0 -1
  703. package/dist/browser/rsc-router.d.ts +0 -129
  704. package/dist/browser/rsc-router.d.ts.map +0 -1
  705. package/dist/browser/rsc-router.js +0 -195
  706. package/dist/browser/rsc-router.js.map +0 -1
  707. package/dist/browser/scroll-restoration.d.ts +0 -93
  708. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  709. package/dist/browser/scroll-restoration.js +0 -321
  710. package/dist/browser/scroll-restoration.js.map +0 -1
  711. package/dist/browser/segment-structure-assert.d.ts +0 -17
  712. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  713. package/dist/browser/segment-structure-assert.js +0 -59
  714. package/dist/browser/segment-structure-assert.js.map +0 -1
  715. package/dist/browser/server-action-bridge.d.ts +0 -26
  716. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  717. package/dist/browser/server-action-bridge.js +0 -668
  718. package/dist/browser/server-action-bridge.js.map +0 -1
  719. package/dist/browser/shallow.d.ts +0 -12
  720. package/dist/browser/shallow.d.ts.map +0 -1
  721. package/dist/browser/shallow.js +0 -34
  722. package/dist/browser/shallow.js.map +0 -1
  723. package/dist/browser/types.d.ts +0 -369
  724. package/dist/browser/types.d.ts.map +0 -1
  725. package/dist/browser/types.js +0 -2
  726. package/dist/browser/types.js.map +0 -1
  727. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  728. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  729. package/dist/build/__tests__/generate-cli.test.js +0 -237
  730. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  731. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  732. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  733. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  734. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  735. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  736. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  737. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  738. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  739. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  740. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  741. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  742. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  743. package/dist/build/generate-manifest.d.ts +0 -81
  744. package/dist/build/generate-manifest.d.ts.map +0 -1
  745. package/dist/build/generate-manifest.js +0 -276
  746. package/dist/build/generate-manifest.js.map +0 -1
  747. package/dist/build/generate-route-types.d.ts +0 -115
  748. package/dist/build/generate-route-types.d.ts.map +0 -1
  749. package/dist/build/generate-route-types.js +0 -740
  750. package/dist/build/generate-route-types.js.map +0 -1
  751. package/dist/build/index.d.ts +0 -21
  752. package/dist/build/index.d.ts.map +0 -1
  753. package/dist/build/index.js +0 -21
  754. package/dist/build/index.js.map +0 -1
  755. package/dist/build/route-trie.d.ts +0 -71
  756. package/dist/build/route-trie.d.ts.map +0 -1
  757. package/dist/build/route-trie.js +0 -175
  758. package/dist/build/route-trie.js.map +0 -1
  759. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  760. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  761. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  762. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  763. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  764. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  765. package/dist/cache/__tests__/document-cache.test.js +0 -345
  766. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  767. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  768. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  769. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  770. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  771. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  772. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  773. package/dist/cache/__tests__/memory-store.test.js +0 -367
  774. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  775. package/dist/cache/cache-scope.d.ts +0 -102
  776. package/dist/cache/cache-scope.d.ts.map +0 -1
  777. package/dist/cache/cache-scope.js +0 -440
  778. package/dist/cache/cache-scope.js.map +0 -1
  779. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  780. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  781. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  782. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  783. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  784. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  785. package/dist/cache/cf/cf-cache-store.js +0 -242
  786. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  787. package/dist/cache/cf/index.d.ts +0 -14
  788. package/dist/cache/cf/index.d.ts.map +0 -1
  789. package/dist/cache/cf/index.js +0 -17
  790. package/dist/cache/cf/index.js.map +0 -1
  791. package/dist/cache/document-cache.d.ts +0 -64
  792. package/dist/cache/document-cache.d.ts.map +0 -1
  793. package/dist/cache/document-cache.js +0 -228
  794. package/dist/cache/document-cache.js.map +0 -1
  795. package/dist/cache/index.d.ts +0 -19
  796. package/dist/cache/index.d.ts.map +0 -1
  797. package/dist/cache/index.js +0 -21
  798. package/dist/cache/index.js.map +0 -1
  799. package/dist/cache/memory-segment-store.d.ts +0 -110
  800. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  801. package/dist/cache/memory-segment-store.js +0 -117
  802. package/dist/cache/memory-segment-store.js.map +0 -1
  803. package/dist/cache/memory-store.d.ts +0 -41
  804. package/dist/cache/memory-store.d.ts.map +0 -1
  805. package/dist/cache/memory-store.js +0 -191
  806. package/dist/cache/memory-store.js.map +0 -1
  807. package/dist/cache/types.d.ts +0 -317
  808. package/dist/cache/types.d.ts.map +0 -1
  809. package/dist/cache/types.js +0 -12
  810. package/dist/cache/types.js.map +0 -1
  811. package/dist/client.d.ts +0 -248
  812. package/dist/client.d.ts.map +0 -1
  813. package/dist/client.js +0 -367
  814. package/dist/client.js.map +0 -1
  815. package/dist/client.rsc.d.ts +0 -26
  816. package/dist/client.rsc.d.ts.map +0 -1
  817. package/dist/client.rsc.js +0 -46
  818. package/dist/client.rsc.js.map +0 -1
  819. package/dist/component-utils.d.ts +0 -36
  820. package/dist/component-utils.d.ts.map +0 -1
  821. package/dist/component-utils.js +0 -61
  822. package/dist/component-utils.js.map +0 -1
  823. package/dist/components/DefaultDocument.d.ts +0 -13
  824. package/dist/components/DefaultDocument.d.ts.map +0 -1
  825. package/dist/components/DefaultDocument.js +0 -15
  826. package/dist/components/DefaultDocument.js.map +0 -1
  827. package/dist/debug.d.ts +0 -58
  828. package/dist/debug.d.ts.map +0 -1
  829. package/dist/debug.js +0 -157
  830. package/dist/debug.js.map +0 -1
  831. package/dist/default-error-boundary.d.ts +0 -11
  832. package/dist/default-error-boundary.d.ts.map +0 -1
  833. package/dist/default-error-boundary.js +0 -45
  834. package/dist/default-error-boundary.js.map +0 -1
  835. package/dist/deps/browser.d.ts +0 -2
  836. package/dist/deps/browser.d.ts.map +0 -1
  837. package/dist/deps/browser.js +0 -3
  838. package/dist/deps/browser.js.map +0 -1
  839. package/dist/deps/html-stream-client.d.ts +0 -2
  840. package/dist/deps/html-stream-client.d.ts.map +0 -1
  841. package/dist/deps/html-stream-client.js +0 -3
  842. package/dist/deps/html-stream-client.js.map +0 -1
  843. package/dist/deps/html-stream-server.d.ts +0 -2
  844. package/dist/deps/html-stream-server.d.ts.map +0 -1
  845. package/dist/deps/html-stream-server.js +0 -3
  846. package/dist/deps/html-stream-server.js.map +0 -1
  847. package/dist/deps/rsc.d.ts +0 -2
  848. package/dist/deps/rsc.d.ts.map +0 -1
  849. package/dist/deps/rsc.js +0 -4
  850. package/dist/deps/rsc.js.map +0 -1
  851. package/dist/deps/ssr.d.ts +0 -2
  852. package/dist/deps/ssr.d.ts.map +0 -1
  853. package/dist/deps/ssr.js +0 -3
  854. package/dist/deps/ssr.js.map +0 -1
  855. package/dist/errors.d.ts +0 -174
  856. package/dist/errors.d.ts.map +0 -1
  857. package/dist/errors.js +0 -241
  858. package/dist/errors.js.map +0 -1
  859. package/dist/handle.d.ts +0 -78
  860. package/dist/handle.d.ts.map +0 -1
  861. package/dist/handle.js +0 -82
  862. package/dist/handle.js.map +0 -1
  863. package/dist/handles/MetaTags.d.ts +0 -14
  864. package/dist/handles/MetaTags.d.ts.map +0 -1
  865. package/dist/handles/MetaTags.js +0 -136
  866. package/dist/handles/MetaTags.js.map +0 -1
  867. package/dist/handles/index.d.ts +0 -6
  868. package/dist/handles/index.d.ts.map +0 -1
  869. package/dist/handles/index.js +0 -6
  870. package/dist/handles/index.js.map +0 -1
  871. package/dist/handles/meta.d.ts +0 -39
  872. package/dist/handles/meta.d.ts.map +0 -1
  873. package/dist/handles/meta.js +0 -202
  874. package/dist/handles/meta.js.map +0 -1
  875. package/dist/host/__tests__/errors.test.d.ts +0 -2
  876. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  877. package/dist/host/__tests__/errors.test.js +0 -76
  878. package/dist/host/__tests__/errors.test.js.map +0 -1
  879. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  880. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  881. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  882. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  883. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  884. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  885. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  886. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  887. package/dist/host/__tests__/router.test.d.ts +0 -2
  888. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  889. package/dist/host/__tests__/router.test.js +0 -241
  890. package/dist/host/__tests__/router.test.js.map +0 -1
  891. package/dist/host/__tests__/testing.test.d.ts +0 -2
  892. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  893. package/dist/host/__tests__/testing.test.js +0 -64
  894. package/dist/host/__tests__/testing.test.js.map +0 -1
  895. package/dist/host/__tests__/utils.test.d.ts +0 -2
  896. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  897. package/dist/host/__tests__/utils.test.js +0 -29
  898. package/dist/host/__tests__/utils.test.js.map +0 -1
  899. package/dist/host/cookie-handler.d.ts +0 -34
  900. package/dist/host/cookie-handler.d.ts.map +0 -1
  901. package/dist/host/cookie-handler.js +0 -124
  902. package/dist/host/cookie-handler.js.map +0 -1
  903. package/dist/host/errors.d.ts +0 -56
  904. package/dist/host/errors.d.ts.map +0 -1
  905. package/dist/host/errors.js +0 -79
  906. package/dist/host/errors.js.map +0 -1
  907. package/dist/host/index.d.ts +0 -29
  908. package/dist/host/index.d.ts.map +0 -1
  909. package/dist/host/index.js +0 -32
  910. package/dist/host/index.js.map +0 -1
  911. package/dist/host/pattern-matcher.d.ts +0 -36
  912. package/dist/host/pattern-matcher.d.ts.map +0 -1
  913. package/dist/host/pattern-matcher.js +0 -172
  914. package/dist/host/pattern-matcher.js.map +0 -1
  915. package/dist/host/router.d.ts +0 -26
  916. package/dist/host/router.d.ts.map +0 -1
  917. package/dist/host/router.js +0 -218
  918. package/dist/host/router.js.map +0 -1
  919. package/dist/host/testing.d.ts +0 -36
  920. package/dist/host/testing.d.ts.map +0 -1
  921. package/dist/host/testing.js +0 -55
  922. package/dist/host/testing.js.map +0 -1
  923. package/dist/host/types.d.ts +0 -115
  924. package/dist/host/types.d.ts.map +0 -1
  925. package/dist/host/types.js +0 -7
  926. package/dist/host/types.js.map +0 -1
  927. package/dist/host/utils.d.ts +0 -21
  928. package/dist/host/utils.d.ts.map +0 -1
  929. package/dist/host/utils.js +0 -23
  930. package/dist/host/utils.js.map +0 -1
  931. package/dist/href-client.d.ts +0 -131
  932. package/dist/href-client.d.ts.map +0 -1
  933. package/dist/href-client.js +0 -64
  934. package/dist/href-client.js.map +0 -1
  935. package/dist/href-context.d.ts +0 -29
  936. package/dist/href-context.d.ts.map +0 -1
  937. package/dist/href-context.js +0 -21
  938. package/dist/href-context.js.map +0 -1
  939. package/dist/index.d.ts +0 -73
  940. package/dist/index.d.ts.map +0 -1
  941. package/dist/index.js +0 -91
  942. package/dist/index.js.map +0 -1
  943. package/dist/index.rsc.d.ts +0 -32
  944. package/dist/index.rsc.d.ts.map +0 -1
  945. package/dist/index.rsc.js +0 -40
  946. package/dist/index.rsc.js.map +0 -1
  947. package/dist/internal-debug.d.ts +0 -2
  948. package/dist/internal-debug.d.ts.map +0 -1
  949. package/dist/internal-debug.js +0 -5
  950. package/dist/internal-debug.js.map +0 -1
  951. package/dist/loader.d.ts +0 -14
  952. package/dist/loader.d.ts.map +0 -1
  953. package/dist/loader.js +0 -20
  954. package/dist/loader.js.map +0 -1
  955. package/dist/loader.rsc.d.ts +0 -19
  956. package/dist/loader.rsc.d.ts.map +0 -1
  957. package/dist/loader.rsc.js +0 -99
  958. package/dist/loader.rsc.js.map +0 -1
  959. package/dist/network-error-thrower.d.ts +0 -17
  960. package/dist/network-error-thrower.d.ts.map +0 -1
  961. package/dist/network-error-thrower.js +0 -14
  962. package/dist/network-error-thrower.js.map +0 -1
  963. package/dist/outlet-context.d.ts +0 -13
  964. package/dist/outlet-context.d.ts.map +0 -1
  965. package/dist/outlet-context.js +0 -3
  966. package/dist/outlet-context.js.map +0 -1
  967. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  968. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  969. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  970. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  971. package/dist/prerender/param-hash.d.ts +0 -16
  972. package/dist/prerender/param-hash.d.ts.map +0 -1
  973. package/dist/prerender/param-hash.js +0 -36
  974. package/dist/prerender/param-hash.js.map +0 -1
  975. package/dist/prerender/store.d.ts +0 -38
  976. package/dist/prerender/store.d.ts.map +0 -1
  977. package/dist/prerender/store.js +0 -61
  978. package/dist/prerender/store.js.map +0 -1
  979. package/dist/prerender.d.ts +0 -66
  980. package/dist/prerender.d.ts.map +0 -1
  981. package/dist/prerender.js +0 -57
  982. package/dist/prerender.js.map +0 -1
  983. package/dist/reverse.d.ts +0 -196
  984. package/dist/reverse.d.ts.map +0 -1
  985. package/dist/reverse.js +0 -78
  986. package/dist/reverse.js.map +0 -1
  987. package/dist/root-error-boundary.d.ts +0 -33
  988. package/dist/root-error-boundary.d.ts.map +0 -1
  989. package/dist/root-error-boundary.js +0 -165
  990. package/dist/root-error-boundary.js.map +0 -1
  991. package/dist/route-content-wrapper.d.ts +0 -46
  992. package/dist/route-content-wrapper.d.ts.map +0 -1
  993. package/dist/route-content-wrapper.js +0 -77
  994. package/dist/route-content-wrapper.js.map +0 -1
  995. package/dist/route-definition.d.ts +0 -421
  996. package/dist/route-definition.d.ts.map +0 -1
  997. package/dist/route-definition.js +0 -868
  998. package/dist/route-definition.js.map +0 -1
  999. package/dist/route-map-builder.d.ts +0 -155
  1000. package/dist/route-map-builder.d.ts.map +0 -1
  1001. package/dist/route-map-builder.js +0 -237
  1002. package/dist/route-map-builder.js.map +0 -1
  1003. package/dist/route-types.d.ts +0 -165
  1004. package/dist/route-types.d.ts.map +0 -1
  1005. package/dist/route-types.js +0 -7
  1006. package/dist/route-types.js.map +0 -1
  1007. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  1008. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  1009. package/dist/router/__tests__/handler-context.test.js +0 -65
  1010. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  1011. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  1012. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  1013. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  1014. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  1015. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  1016. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  1017. package/dist/router/__tests__/match-context.test.js +0 -92
  1018. package/dist/router/__tests__/match-context.test.js.map +0 -1
  1019. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  1020. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  1021. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  1022. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  1023. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  1024. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  1025. package/dist/router/__tests__/match-result.test.js +0 -457
  1026. package/dist/router/__tests__/match-result.test.js.map +0 -1
  1027. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  1028. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  1029. package/dist/router/__tests__/on-error.test.js +0 -678
  1030. package/dist/router/__tests__/on-error.test.js.map +0 -1
  1031. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  1032. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  1033. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  1034. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  1035. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  1036. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  1037. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  1038. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  1039. package/dist/router/error-handling.d.ts +0 -77
  1040. package/dist/router/error-handling.d.ts.map +0 -1
  1041. package/dist/router/error-handling.js +0 -202
  1042. package/dist/router/error-handling.js.map +0 -1
  1043. package/dist/router/handler-context.d.ts +0 -20
  1044. package/dist/router/handler-context.d.ts.map +0 -1
  1045. package/dist/router/handler-context.js +0 -198
  1046. package/dist/router/handler-context.js.map +0 -1
  1047. package/dist/router/intercept-resolution.d.ts +0 -66
  1048. package/dist/router/intercept-resolution.d.ts.map +0 -1
  1049. package/dist/router/intercept-resolution.js +0 -246
  1050. package/dist/router/intercept-resolution.js.map +0 -1
  1051. package/dist/router/loader-resolution.d.ts +0 -64
  1052. package/dist/router/loader-resolution.d.ts.map +0 -1
  1053. package/dist/router/loader-resolution.js +0 -284
  1054. package/dist/router/loader-resolution.js.map +0 -1
  1055. package/dist/router/logging.d.ts +0 -15
  1056. package/dist/router/logging.d.ts.map +0 -1
  1057. package/dist/router/logging.js +0 -99
  1058. package/dist/router/logging.js.map +0 -1
  1059. package/dist/router/manifest.d.ts +0 -22
  1060. package/dist/router/manifest.d.ts.map +0 -1
  1061. package/dist/router/manifest.js +0 -181
  1062. package/dist/router/manifest.js.map +0 -1
  1063. package/dist/router/match-api.d.ts +0 -35
  1064. package/dist/router/match-api.d.ts.map +0 -1
  1065. package/dist/router/match-api.js +0 -406
  1066. package/dist/router/match-api.js.map +0 -1
  1067. package/dist/router/match-context.d.ts +0 -206
  1068. package/dist/router/match-context.d.ts.map +0 -1
  1069. package/dist/router/match-context.js +0 -17
  1070. package/dist/router/match-context.js.map +0 -1
  1071. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  1072. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  1073. package/dist/router/match-middleware/background-revalidation.js +0 -75
  1074. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  1075. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  1076. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  1077. package/dist/router/match-middleware/cache-lookup.js +0 -257
  1078. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  1079. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  1080. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  1081. package/dist/router/match-middleware/cache-store.js +0 -108
  1082. package/dist/router/match-middleware/cache-store.js.map +0 -1
  1083. package/dist/router/match-middleware/index.d.ts +0 -81
  1084. package/dist/router/match-middleware/index.d.ts.map +0 -1
  1085. package/dist/router/match-middleware/index.js +0 -80
  1086. package/dist/router/match-middleware/index.js.map +0 -1
  1087. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  1088. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  1089. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  1090. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  1091. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  1092. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  1093. package/dist/router/match-middleware/segment-resolution.js +0 -53
  1094. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  1095. package/dist/router/match-pipelines.d.ts +0 -147
  1096. package/dist/router/match-pipelines.d.ts.map +0 -1
  1097. package/dist/router/match-pipelines.js +0 -82
  1098. package/dist/router/match-pipelines.js.map +0 -1
  1099. package/dist/router/match-result.d.ts +0 -126
  1100. package/dist/router/match-result.d.ts.map +0 -1
  1101. package/dist/router/match-result.js +0 -93
  1102. package/dist/router/match-result.js.map +0 -1
  1103. package/dist/router/metrics.d.ts +0 -20
  1104. package/dist/router/metrics.d.ts.map +0 -1
  1105. package/dist/router/metrics.js +0 -47
  1106. package/dist/router/metrics.js.map +0 -1
  1107. package/dist/router/middleware.d.ts +0 -249
  1108. package/dist/router/middleware.d.ts.map +0 -1
  1109. package/dist/router/middleware.js +0 -434
  1110. package/dist/router/middleware.js.map +0 -1
  1111. package/dist/router/middleware.test.d.ts +0 -2
  1112. package/dist/router/middleware.test.d.ts.map +0 -1
  1113. package/dist/router/middleware.test.js +0 -816
  1114. package/dist/router/middleware.test.js.map +0 -1
  1115. package/dist/router/pattern-matching.d.ts +0 -149
  1116. package/dist/router/pattern-matching.d.ts.map +0 -1
  1117. package/dist/router/pattern-matching.js +0 -349
  1118. package/dist/router/pattern-matching.js.map +0 -1
  1119. package/dist/router/revalidation.d.ts +0 -44
  1120. package/dist/router/revalidation.d.ts.map +0 -1
  1121. package/dist/router/revalidation.js +0 -147
  1122. package/dist/router/revalidation.js.map +0 -1
  1123. package/dist/router/router-context.d.ts +0 -135
  1124. package/dist/router/router-context.d.ts.map +0 -1
  1125. package/dist/router/router-context.js +0 -36
  1126. package/dist/router/router-context.js.map +0 -1
  1127. package/dist/router/segment-resolution.d.ts +0 -127
  1128. package/dist/router/segment-resolution.d.ts.map +0 -1
  1129. package/dist/router/segment-resolution.js +0 -919
  1130. package/dist/router/segment-resolution.js.map +0 -1
  1131. package/dist/router/trie-matching.d.ts +0 -40
  1132. package/dist/router/trie-matching.d.ts.map +0 -1
  1133. package/dist/router/trie-matching.js +0 -127
  1134. package/dist/router/trie-matching.js.map +0 -1
  1135. package/dist/router/types.d.ts +0 -136
  1136. package/dist/router/types.d.ts.map +0 -1
  1137. package/dist/router/types.js +0 -7
  1138. package/dist/router/types.js.map +0 -1
  1139. package/dist/router.d.ts +0 -753
  1140. package/dist/router.d.ts.map +0 -1
  1141. package/dist/router.gen.d.ts +0 -6
  1142. package/dist/router.gen.d.ts.map +0 -1
  1143. package/dist/router.gen.js +0 -6
  1144. package/dist/router.gen.js.map +0 -1
  1145. package/dist/router.js +0 -1304
  1146. package/dist/router.js.map +0 -1
  1147. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  1148. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  1149. package/dist/rsc/__tests__/helpers.test.js +0 -140
  1150. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  1151. package/dist/rsc/handler.d.ts +0 -45
  1152. package/dist/rsc/handler.d.ts.map +0 -1
  1153. package/dist/rsc/handler.js +0 -1172
  1154. package/dist/rsc/handler.js.map +0 -1
  1155. package/dist/rsc/helpers.d.ts +0 -16
  1156. package/dist/rsc/helpers.d.ts.map +0 -1
  1157. package/dist/rsc/helpers.js +0 -55
  1158. package/dist/rsc/helpers.js.map +0 -1
  1159. package/dist/rsc/index.d.ts +0 -22
  1160. package/dist/rsc/index.d.ts.map +0 -1
  1161. package/dist/rsc/index.js +0 -23
  1162. package/dist/rsc/index.js.map +0 -1
  1163. package/dist/rsc/nonce.d.ts +0 -9
  1164. package/dist/rsc/nonce.d.ts.map +0 -1
  1165. package/dist/rsc/nonce.js +0 -18
  1166. package/dist/rsc/nonce.js.map +0 -1
  1167. package/dist/rsc/types.d.ts +0 -206
  1168. package/dist/rsc/types.d.ts.map +0 -1
  1169. package/dist/rsc/types.js +0 -8
  1170. package/dist/rsc/types.js.map +0 -1
  1171. package/dist/search-params.d.ts +0 -103
  1172. package/dist/search-params.d.ts.map +0 -1
  1173. package/dist/search-params.js +0 -74
  1174. package/dist/search-params.js.map +0 -1
  1175. package/dist/segment-system.d.ts +0 -75
  1176. package/dist/segment-system.d.ts.map +0 -1
  1177. package/dist/segment-system.js +0 -336
  1178. package/dist/segment-system.js.map +0 -1
  1179. package/dist/server/context.d.ts +0 -245
  1180. package/dist/server/context.d.ts.map +0 -1
  1181. package/dist/server/context.js +0 -197
  1182. package/dist/server/context.js.map +0 -1
  1183. package/dist/server/fetchable-loader-store.d.ts +0 -18
  1184. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  1185. package/dist/server/fetchable-loader-store.js +0 -18
  1186. package/dist/server/fetchable-loader-store.js.map +0 -1
  1187. package/dist/server/handle-store.d.ts +0 -85
  1188. package/dist/server/handle-store.d.ts.map +0 -1
  1189. package/dist/server/handle-store.js +0 -142
  1190. package/dist/server/handle-store.js.map +0 -1
  1191. package/dist/server/loader-registry.d.ts +0 -55
  1192. package/dist/server/loader-registry.d.ts.map +0 -1
  1193. package/dist/server/loader-registry.js +0 -132
  1194. package/dist/server/loader-registry.js.map +0 -1
  1195. package/dist/server/request-context.d.ts +0 -226
  1196. package/dist/server/request-context.d.ts.map +0 -1
  1197. package/dist/server/request-context.js +0 -290
  1198. package/dist/server/request-context.js.map +0 -1
  1199. package/dist/server/root-layout.d.ts +0 -4
  1200. package/dist/server/root-layout.d.ts.map +0 -1
  1201. package/dist/server/root-layout.js +0 -5
  1202. package/dist/server/root-layout.js.map +0 -1
  1203. package/dist/server.d.ts +0 -15
  1204. package/dist/server.d.ts.map +0 -1
  1205. package/dist/server.js +0 -20
  1206. package/dist/server.js.map +0 -1
  1207. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  1208. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  1209. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  1210. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  1211. package/dist/ssr/index.d.ts +0 -98
  1212. package/dist/ssr/index.d.ts.map +0 -1
  1213. package/dist/ssr/index.js +0 -158
  1214. package/dist/ssr/index.js.map +0 -1
  1215. package/dist/static-handler.d.ts +0 -50
  1216. package/dist/static-handler.d.ts.map +0 -1
  1217. package/dist/static-handler.gen.d.ts +0 -5
  1218. package/dist/static-handler.gen.d.ts.map +0 -1
  1219. package/dist/static-handler.gen.js +0 -5
  1220. package/dist/static-handler.gen.js.map +0 -1
  1221. package/dist/static-handler.js +0 -29
  1222. package/dist/static-handler.js.map +0 -1
  1223. package/dist/theme/ThemeProvider.d.ts +0 -20
  1224. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  1225. package/dist/theme/ThemeProvider.js +0 -240
  1226. package/dist/theme/ThemeProvider.js.map +0 -1
  1227. package/dist/theme/ThemeScript.d.ts +0 -48
  1228. package/dist/theme/ThemeScript.d.ts.map +0 -1
  1229. package/dist/theme/ThemeScript.js +0 -13
  1230. package/dist/theme/ThemeScript.js.map +0 -1
  1231. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  1232. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  1233. package/dist/theme/__tests__/theme.test.js +0 -103
  1234. package/dist/theme/__tests__/theme.test.js.map +0 -1
  1235. package/dist/theme/constants.d.ts +0 -29
  1236. package/dist/theme/constants.d.ts.map +0 -1
  1237. package/dist/theme/constants.js +0 -48
  1238. package/dist/theme/constants.js.map +0 -1
  1239. package/dist/theme/index.d.ts +0 -31
  1240. package/dist/theme/index.d.ts.map +0 -1
  1241. package/dist/theme/index.js +0 -36
  1242. package/dist/theme/index.js.map +0 -1
  1243. package/dist/theme/theme-context.d.ts +0 -40
  1244. package/dist/theme/theme-context.d.ts.map +0 -1
  1245. package/dist/theme/theme-context.js +0 -60
  1246. package/dist/theme/theme-context.js.map +0 -1
  1247. package/dist/theme/theme-script.d.ts +0 -27
  1248. package/dist/theme/theme-script.d.ts.map +0 -1
  1249. package/dist/theme/theme-script.js +0 -147
  1250. package/dist/theme/theme-script.js.map +0 -1
  1251. package/dist/theme/types.d.ts +0 -163
  1252. package/dist/theme/types.d.ts.map +0 -1
  1253. package/dist/theme/types.js +0 -11
  1254. package/dist/theme/types.js.map +0 -1
  1255. package/dist/theme/use-theme.d.ts +0 -12
  1256. package/dist/theme/use-theme.d.ts.map +0 -1
  1257. package/dist/theme/use-theme.js +0 -40
  1258. package/dist/theme/use-theme.js.map +0 -1
  1259. package/dist/types.d.ts +0 -1479
  1260. package/dist/types.d.ts.map +0 -1
  1261. package/dist/types.js +0 -10
  1262. package/dist/types.js.map +0 -1
  1263. package/dist/urls.d.ts +0 -441
  1264. package/dist/urls.d.ts.map +0 -1
  1265. package/dist/urls.gen.d.ts +0 -8
  1266. package/dist/urls.gen.d.ts.map +0 -1
  1267. package/dist/urls.gen.js +0 -8
  1268. package/dist/urls.gen.js.map +0 -1
  1269. package/dist/urls.js +0 -443
  1270. package/dist/urls.js.map +0 -1
  1271. package/dist/use-loader.d.ts +0 -127
  1272. package/dist/use-loader.d.ts.map +0 -1
  1273. package/dist/use-loader.js +0 -237
  1274. package/dist/use-loader.js.map +0 -1
  1275. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  1276. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  1277. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  1278. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  1279. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  1280. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  1281. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  1282. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  1283. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  1284. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  1285. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  1286. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  1287. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  1288. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  1289. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  1290. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  1291. package/dist/vite/ast-handler-extract.d.ts +0 -49
  1292. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  1293. package/dist/vite/ast-handler-extract.js +0 -249
  1294. package/dist/vite/ast-handler-extract.js.map +0 -1
  1295. package/dist/vite/expose-action-id.d.ts +0 -19
  1296. package/dist/vite/expose-action-id.d.ts.map +0 -1
  1297. package/dist/vite/expose-action-id.js +0 -250
  1298. package/dist/vite/expose-action-id.js.map +0 -1
  1299. package/dist/vite/expose-id-utils.d.ts +0 -69
  1300. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  1301. package/dist/vite/expose-id-utils.js +0 -289
  1302. package/dist/vite/expose-id-utils.js.map +0 -1
  1303. package/dist/vite/expose-internal-ids.d.ts +0 -22
  1304. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  1305. package/dist/vite/expose-internal-ids.js +0 -886
  1306. package/dist/vite/expose-internal-ids.js.map +0 -1
  1307. package/dist/vite/index.d.ts +0 -149
  1308. package/dist/vite/index.d.ts.map +0 -1
  1309. package/dist/vite/index.js.bak +0 -5448
  1310. package/dist/vite/index.js.map +0 -1
  1311. package/dist/vite/index.named-routes.gen.ts +0 -103
  1312. package/dist/vite/package-resolution.d.ts +0 -43
  1313. package/dist/vite/package-resolution.d.ts.map +0 -1
  1314. package/dist/vite/package-resolution.js +0 -112
  1315. package/dist/vite/package-resolution.js.map +0 -1
  1316. package/dist/vite/virtual-entries.d.ts +0 -25
  1317. package/dist/vite/virtual-entries.d.ts.map +0 -1
  1318. package/dist/vite/virtual-entries.js +0 -110
  1319. package/dist/vite/virtual-entries.js.map +0 -1
  1320. package/skills/migrate-react-router/cloudflare-workers.md +0 -129
@@ -1,6 +1,201 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropNames = Object.getOwnPropertyNames;
3
+ var __esm = (fn, res, err) => function __init() {
4
+ if (err) throw err[0];
5
+ try {
6
+ return fn && (res = (0, fn[__getOwnPropNames(fn)[0]])(fn = 0)), res;
7
+ } catch (e) {
8
+ throw err = [e], e;
9
+ }
10
+ };
11
+ var __export = (target, all) => {
12
+ for (var name in all)
13
+ __defProp(target, name, { get: all[name], enumerable: true });
14
+ };
15
+
16
+ // src/vite/debug.ts
17
+ import debugFactory from "debug";
18
+ function createRangoDebugger(namespace) {
19
+ const primary = debugFactory(namespace);
20
+ const shadow = debugFactory(`vite:${namespace}`);
21
+ if (primary.enabled) return primary;
22
+ if (shadow.enabled) return shadow;
23
+ return void 0;
24
+ }
25
+ async function timed(debug12, label, fn) {
26
+ if (!debug12) return await fn();
27
+ const start = performance.now();
28
+ try {
29
+ return await fn();
30
+ } finally {
31
+ debug12("%s (%sms)", label, (performance.now() - start).toFixed(1));
32
+ }
33
+ }
34
+ function timedSync(debug12, label, fn) {
35
+ if (!debug12) return fn();
36
+ const start = performance.now();
37
+ try {
38
+ return fn();
39
+ } finally {
40
+ debug12("%s (%sms)", label, (performance.now() - start).toFixed(1));
41
+ }
42
+ }
43
+ function createCounter(debug12, label) {
44
+ if (!debug12) return void 0;
45
+ let n = 0;
46
+ let totalMs = 0;
47
+ let slowestMs = 0;
48
+ let slowestFile = "";
49
+ const record = (file, ms) => {
50
+ n++;
51
+ totalMs += ms;
52
+ if (ms > slowestMs) {
53
+ slowestMs = ms;
54
+ slowestFile = file;
55
+ }
56
+ };
57
+ return {
58
+ record,
59
+ time(file, fn) {
60
+ const start = performance.now();
61
+ let out;
62
+ try {
63
+ out = fn();
64
+ } catch (err) {
65
+ record(file, performance.now() - start);
66
+ throw err;
67
+ }
68
+ if (out && typeof out.then === "function") {
69
+ return out.finally(
70
+ () => record(file, performance.now() - start)
71
+ );
72
+ }
73
+ record(file, performance.now() - start);
74
+ return out;
75
+ },
76
+ flush() {
77
+ if (n === 0) return;
78
+ debug12(
79
+ "%s: %d files, %sms total, slowest %sms %s",
80
+ label,
81
+ n,
82
+ totalMs.toFixed(1),
83
+ slowestMs.toFixed(1),
84
+ slowestFile
85
+ );
86
+ n = 0;
87
+ totalMs = 0;
88
+ slowestMs = 0;
89
+ slowestFile = "";
90
+ }
91
+ };
92
+ }
93
+ var NS;
94
+ var init_debug = __esm({
95
+ "src/vite/debug.ts"() {
96
+ "use strict";
97
+ NS = {
98
+ config: "rango:config",
99
+ discovery: "rango:discovery",
100
+ routes: "rango:routes",
101
+ prerender: "rango:prerender",
102
+ build: "rango:build",
103
+ dev: "rango:dev",
104
+ transform: "rango:transform",
105
+ chunks: "rango:chunks"
106
+ };
107
+ if (process.env.INTERNAL_RANGO_DEBUG) {
108
+ const existing = debugFactory.disable();
109
+ debugFactory.enable(existing ? `${existing},rango:*` : "rango:*");
110
+ }
111
+ }
112
+ });
113
+
114
+ // src/vite/plugins/client-ref-hashing.ts
115
+ var client_ref_hashing_exports = {};
116
+ __export(client_ref_hashing_exports, {
117
+ computeProductionHash: () => computeProductionHash,
118
+ hashClientRefs: () => hashClientRefs,
119
+ hashRefKey: () => hashRefKey,
120
+ transformClientRefs: () => transformClientRefs
121
+ });
122
+ import { relative as relative2 } from "node:path";
123
+ import { createHash as createHash2 } from "node:crypto";
124
+ function hashRefKey(relativeId) {
125
+ return createHash2("sha256").update(relativeId).digest("hex").slice(0, 12);
126
+ }
127
+ function computeProductionHash(projectRoot, refKey) {
128
+ let toHash;
129
+ if (refKey.startsWith(CLIENT_PKG_PROXY_PREFIX)) {
130
+ toHash = refKey.slice(CLIENT_PKG_PROXY_PREFIX.length);
131
+ } else if (refKey.startsWith(CLIENT_IN_SERVER_PKG_PROXY_PREFIX)) {
132
+ const absPath = decodeURIComponent(
133
+ refKey.slice(CLIENT_IN_SERVER_PKG_PROXY_PREFIX.length)
134
+ );
135
+ toHash = relative2(projectRoot, absPath).replaceAll("\\", "/");
136
+ } else if (refKey.startsWith(FS_PREFIX)) {
137
+ const absPath = refKey.slice(FS_PREFIX.length - 1);
138
+ toHash = relative2(projectRoot, absPath).replaceAll("\\", "/");
139
+ } else if (refKey.startsWith("/")) {
140
+ toHash = refKey.slice(1);
141
+ } else {
142
+ return refKey;
143
+ }
144
+ return hashRefKey(toHash);
145
+ }
146
+ function transformClientRefs(code, projectRoot) {
147
+ if (!code.includes("registerClientReference")) return null;
148
+ let hasReplacement = false;
149
+ const result = code.replace(
150
+ REGISTER_CLIENT_REF_RE,
151
+ (match, refKey) => {
152
+ const hash = computeProductionHash(projectRoot, refKey);
153
+ if (hash === refKey) return match;
154
+ hasReplacement = true;
155
+ return match.replace(`"${refKey}"`, `"${hash}"`);
156
+ }
157
+ );
158
+ return hasReplacement ? result : null;
159
+ }
160
+ function hashClientRefs(projectRoot) {
161
+ const counter = createCounter(debug7, "hash-client-refs");
162
+ return {
163
+ name: "@rangojs/router:hash-client-refs",
164
+ enforce: "post",
165
+ applyToEnvironment(env) {
166
+ return env.name === "rsc";
167
+ },
168
+ buildEnd() {
169
+ counter?.flush();
170
+ },
171
+ transform(code, id) {
172
+ const start = counter ? performance.now() : 0;
173
+ try {
174
+ const result = transformClientRefs(code, projectRoot);
175
+ if (result === null) return;
176
+ return { code: result, map: null };
177
+ } finally {
178
+ counter?.record(id, performance.now() - start);
179
+ }
180
+ }
181
+ };
182
+ }
183
+ var debug7, CLIENT_PKG_PROXY_PREFIX, CLIENT_IN_SERVER_PKG_PROXY_PREFIX, FS_PREFIX, REGISTER_CLIENT_REF_RE;
184
+ var init_client_ref_hashing = __esm({
185
+ "src/vite/plugins/client-ref-hashing.ts"() {
186
+ "use strict";
187
+ init_debug();
188
+ debug7 = createRangoDebugger(NS.transform);
189
+ CLIENT_PKG_PROXY_PREFIX = "/@id/__x00__virtual:vite-rsc/client-package-proxy/";
190
+ CLIENT_IN_SERVER_PKG_PROXY_PREFIX = "/@id/__x00__virtual:vite-rsc/client-in-server-package-proxy/";
191
+ FS_PREFIX = "/@fs/";
192
+ REGISTER_CLIENT_REF_RE = /registerClientReference\(\s*(?:(?:\([^)]*\))|(?:\(\)[\s\S]*?\}))\s*,\s*"([^"]+)"\s*,\s*"[^"]+"\s*\)/g;
193
+ }
194
+ });
195
+
1
196
  // src/vite/rango.ts
2
- import { readFileSync as readFileSync7, existsSync as existsSync8 } from "node:fs";
3
- import { resolve as resolve11 } from "node:path";
197
+ import { readFileSync as readFileSync8, existsSync as existsSync9 } from "node:fs";
198
+ import { resolve as resolve12 } from "node:path";
4
199
 
5
200
  // src/vite/plugins/expose-action-id.ts
6
201
  import MagicString from "magic-string";
@@ -251,99 +446,8 @@ function findCallParenAfterGenerics(code, afterCalleeIndex) {
251
446
  return -1;
252
447
  }
253
448
 
254
- // src/vite/debug.ts
255
- import debugFactory from "debug";
256
- var NS = {
257
- config: "rango:config",
258
- discovery: "rango:discovery",
259
- routes: "rango:routes",
260
- prerender: "rango:prerender",
261
- build: "rango:build",
262
- dev: "rango:dev",
263
- transform: "rango:transform",
264
- chunks: "rango:chunks"
265
- };
266
- if (process.env.INTERNAL_RANGO_DEBUG) {
267
- const existing = debugFactory.disable();
268
- debugFactory.enable(existing ? `${existing},rango:*` : "rango:*");
269
- }
270
- function createRangoDebugger(namespace) {
271
- const primary = debugFactory(namespace);
272
- const shadow = debugFactory(`vite:${namespace}`);
273
- if (primary.enabled) return primary;
274
- if (shadow.enabled) return shadow;
275
- return void 0;
276
- }
277
- async function timed(debug11, label, fn) {
278
- if (!debug11) return await fn();
279
- const start = performance.now();
280
- try {
281
- return await fn();
282
- } finally {
283
- debug11("%s (%sms)", label, (performance.now() - start).toFixed(1));
284
- }
285
- }
286
- function timedSync(debug11, label, fn) {
287
- if (!debug11) return fn();
288
- const start = performance.now();
289
- try {
290
- return fn();
291
- } finally {
292
- debug11("%s (%sms)", label, (performance.now() - start).toFixed(1));
293
- }
294
- }
295
- function createCounter(debug11, label) {
296
- if (!debug11) return void 0;
297
- let n = 0;
298
- let totalMs = 0;
299
- let slowestMs = 0;
300
- let slowestFile = "";
301
- const record = (file, ms) => {
302
- n++;
303
- totalMs += ms;
304
- if (ms > slowestMs) {
305
- slowestMs = ms;
306
- slowestFile = file;
307
- }
308
- };
309
- return {
310
- record,
311
- time(file, fn) {
312
- const start = performance.now();
313
- let out;
314
- try {
315
- out = fn();
316
- } catch (err) {
317
- record(file, performance.now() - start);
318
- throw err;
319
- }
320
- if (out && typeof out.then === "function") {
321
- return out.finally(
322
- () => record(file, performance.now() - start)
323
- );
324
- }
325
- record(file, performance.now() - start);
326
- return out;
327
- },
328
- flush() {
329
- if (n === 0) return;
330
- debug11(
331
- "%s: %d files, %sms total, slowest %sms %s",
332
- label,
333
- n,
334
- totalMs.toFixed(1),
335
- slowestMs.toFixed(1),
336
- slowestFile
337
- );
338
- n = 0;
339
- totalMs = 0;
340
- slowestMs = 0;
341
- slowestFile = "";
342
- }
343
- };
344
- }
345
-
346
449
  // src/vite/plugins/expose-action-id.ts
450
+ init_debug();
347
451
  var debug = createRangoDebugger(NS.transform);
348
452
  function getRscPluginApi(config) {
349
453
  let plugin = config.plugins.find((p) => p.name === "rsc:minimal");
@@ -1299,10 +1403,14 @@ ${binding.localName}.$$id = "${handlerId}";`;
1299
1403
  return hasChanges;
1300
1404
  }
1301
1405
 
1406
+ // src/vite/plugins/expose-internal-ids.ts
1407
+ init_debug();
1408
+
1302
1409
  // src/vite/plugins/expose-ids/router-transform.ts
1303
1410
  import MagicString2 from "magic-string";
1304
1411
  import path3 from "node:path";
1305
1412
  import { createHash } from "node:crypto";
1413
+ init_debug();
1306
1414
  var debug2 = createRangoDebugger(NS.transform);
1307
1415
  function skipLeadingTrivia(code, start, end) {
1308
1416
  let i = start;
@@ -1922,6 +2030,7 @@ ${lazyImports.join(",\n")}
1922
2030
  // src/vite/plugins/use-cache-transform.ts
1923
2031
  import path5 from "node:path";
1924
2032
  import MagicString4 from "magic-string";
2033
+ init_debug();
1925
2034
  var debug4 = createRangoDebugger(NS.transform);
1926
2035
  var CACHE_RUNTIME_IMPORT = "@rangojs/router/cache-runtime";
1927
2036
  var LAYOUT_TEMPLATE_PATTERN = /\/(layout|template)\.(tsx?|jsx?)$/;
@@ -2115,6 +2224,7 @@ function warnOnNearMissDirectives(ast, fileId, warn) {
2115
2224
  }
2116
2225
 
2117
2226
  // src/vite/plugins/client-ref-dedup.ts
2227
+ init_debug();
2118
2228
  var debug5 = createRangoDebugger(NS.transform);
2119
2229
  var CLIENT_IN_SERVER_PROXY_PREFIX = "virtual:vite-rsc/client-in-server-package-proxy/";
2120
2230
  function extractPackageName(absolutePath) {
@@ -2210,21 +2320,35 @@ async function initializeApp() {
2210
2320
 
2211
2321
  initializeApp().catch(console.error);
2212
2322
  `.trim();
2213
- var VIRTUAL_ENTRY_SSR = `
2214
- import { createFromReadableStream } from "@rangojs/router/internal/deps/ssr";
2323
+ function getVirtualEntrySSR(headScripts = "preinit") {
2324
+ const preinit = headScripts !== "preload";
2325
+ const depsImportNames = preinit ? "createFromReadableStream,\n setOnClientReference," : "createFromReadableStream,";
2326
+ const ssrImportNames = preinit ? "\n installClientReferencePreinit," : "";
2327
+ const install = preinit ? `
2328
+ // Upgrade client-reference modulepreload hints to executing module scripts in
2329
+ // the document head, for every render pass (live SSR, shell capture, resume).
2330
+ // See src/ssr/preinit-client-references.ts for the full rationale.
2331
+ installClientReferencePreinit(setOnClientReference);
2332
+ ` : "";
2333
+ const hs = JSON.stringify(headScripts);
2334
+ return `
2335
+ import {
2336
+ ${depsImportNames}
2337
+ } from "@rangojs/router/internal/deps/ssr";
2215
2338
  import { renderToReadableStream, resume } from "react-dom/server.edge";
2216
2339
  import { prerender } from "react-dom/static.edge";
2217
2340
  import { injectRSCPayload } from "@rangojs/router/internal/deps/html-stream-server";
2218
2341
  import {
2219
2342
  createSSRHandler,
2220
2343
  createShellCaptureHandler,
2221
- createShellResumeHandler,
2344
+ createShellResumeHandler,${ssrImportNames}
2222
2345
  } from "@rangojs/router/ssr";
2223
-
2346
+ ${install}
2224
2347
  export const renderHTML = createSSRHandler({
2225
2348
  createFromReadableStream,
2226
2349
  renderToReadableStream,
2227
2350
  injectRSCPayload,
2351
+ headScripts: ${hs},
2228
2352
  loadBootstrapScriptContent: () =>
2229
2353
  import.meta.viteRsc.loadBootstrapScriptContent("index"),
2230
2354
  });
@@ -2235,6 +2359,7 @@ export const captureShellHTML = createShellCaptureHandler({
2235
2359
  injectRSCPayload,
2236
2360
  prerender,
2237
2361
  resume,
2362
+ headScripts: ${hs},
2238
2363
  loadBootstrapScriptContent: () =>
2239
2364
  import.meta.viteRsc.loadBootstrapScriptContent("index"),
2240
2365
  });
@@ -2245,10 +2370,12 @@ export const resumeShellHTML = createShellResumeHandler({
2245
2370
  injectRSCPayload,
2246
2371
  prerender,
2247
2372
  resume,
2373
+ headScripts: ${hs},
2248
2374
  loadBootstrapScriptContent: () =>
2249
2375
  import.meta.viteRsc.loadBootstrapScriptContent("index"),
2250
2376
  });
2251
2377
  `.trim();
2378
+ }
2252
2379
  var RSC_ENTRY_BOOTSTRAP_IMPORTS = [
2253
2380
  "virtual:rsc-router/routes-manifest",
2254
2381
  "virtual:rsc-router/loader-manifest"
@@ -2393,7 +2520,7 @@ import { resolve } from "node:path";
2393
2520
  // package.json
2394
2521
  var package_default = {
2395
2522
  name: "@rangojs/router",
2396
- version: "0.0.0-experimental.tapabs2",
2523
+ version: "0.1.0",
2397
2524
  description: "Django-inspired RSC router with composable URL patterns",
2398
2525
  keywords: [
2399
2526
  "react",
@@ -2430,144 +2557,150 @@ var package_default = {
2430
2557
  type: "module",
2431
2558
  exports: {
2432
2559
  ".": {
2433
- types: "./src/index.rsc.ts",
2560
+ types: "./dist/types/index.rsc.d.ts",
2434
2561
  "react-server": "./src/index.rsc.ts",
2435
2562
  default: "./src/index.ts"
2436
2563
  },
2437
2564
  "./server": {
2438
- types: "./src/server.ts",
2565
+ types: "./dist/types/server.d.ts",
2439
2566
  import: "./src/server.ts"
2440
2567
  },
2441
2568
  "./client": {
2442
- types: "./src/client.tsx",
2569
+ types: "./dist/types/client.d.ts",
2443
2570
  "react-server": "./src/client.rsc.tsx",
2444
2571
  default: "./src/client.tsx"
2445
2572
  },
2446
2573
  "./browser": {
2447
- types: "./src/browser/index.ts",
2574
+ types: "./dist/types/browser/index.d.ts",
2448
2575
  default: "./src/browser/index.ts"
2449
2576
  },
2450
2577
  "./ssr": {
2451
- types: "./src/ssr/index.tsx",
2578
+ types: "./dist/types/ssr/index.d.ts",
2452
2579
  default: "./src/ssr/index.tsx"
2453
2580
  },
2454
2581
  "./rsc": {
2455
- types: "./src/rsc/index.ts",
2582
+ types: "./dist/types/rsc/index.d.ts",
2456
2583
  "react-server": "./src/rsc/index.ts",
2457
2584
  default: "./src/rsc/index.ts"
2458
2585
  },
2459
2586
  "./vite": {
2460
- types: "./src/vite/index.ts",
2587
+ types: "./dist/types/vite/index.d.ts",
2461
2588
  import: "./dist/vite/index.js"
2462
2589
  },
2463
2590
  "./types": {
2464
2591
  types: "./src/vite/plugins/version.d.ts"
2465
2592
  },
2466
2593
  "./__internal": {
2467
- types: "./src/__internal.ts",
2594
+ types: "./dist/types/__internal.d.ts",
2468
2595
  default: "./src/__internal.ts"
2469
2596
  },
2470
2597
  "./internal/deps/browser": {
2471
- types: "./src/deps/browser.ts",
2598
+ types: "./dist/types/deps/browser.d.ts",
2472
2599
  default: "./src/deps/browser.ts"
2473
2600
  },
2474
2601
  "./internal/deps/ssr": {
2475
- types: "./src/deps/ssr.ts",
2602
+ types: "./dist/types/deps/ssr.d.ts",
2476
2603
  default: "./src/deps/ssr.ts"
2477
2604
  },
2478
2605
  "./internal/deps/rsc": {
2479
- types: "./src/deps/rsc.ts",
2606
+ types: "./dist/types/deps/rsc.d.ts",
2480
2607
  "react-server": "./src/deps/rsc.ts",
2481
2608
  default: "./src/deps/rsc.ts"
2482
2609
  },
2483
2610
  "./internal/deps/html-stream-client": {
2484
- types: "./src/deps/html-stream-client.ts",
2611
+ types: "./dist/types/deps/html-stream-client.d.ts",
2485
2612
  default: "./src/deps/html-stream-client.ts"
2486
2613
  },
2487
2614
  "./internal/deps/html-stream-server": {
2488
- types: "./src/deps/html-stream-server.ts",
2615
+ types: "./dist/types/deps/html-stream-server.d.ts",
2489
2616
  default: "./src/deps/html-stream-server.ts"
2490
2617
  },
2491
2618
  "./internal/rsc-handler": {
2492
- types: "./src/rsc/handler.ts",
2619
+ types: "./dist/types/rsc/handler.d.ts",
2493
2620
  "react-server": "./src/rsc/handler.ts",
2494
2621
  default: "./src/rsc/handler.ts"
2495
2622
  },
2496
2623
  "./cache": {
2497
- types: "./src/cache/index.ts",
2624
+ types: "./dist/types/cache/index.d.ts",
2498
2625
  "react-server": "./src/cache/index.ts",
2499
2626
  default: "./src/cache/index.ts"
2500
2627
  },
2501
2628
  "./cache-runtime": {
2502
- types: "./src/cache/cache-runtime.ts",
2629
+ types: "./dist/types/cache/cache-runtime.d.ts",
2503
2630
  "react-server": "./src/cache/cache-runtime.ts",
2504
2631
  default: "./src/cache/cache-runtime.ts"
2505
2632
  },
2506
2633
  "./cloudflare": {
2507
- types: "./src/cloudflare/index.ts",
2634
+ types: "./dist/types/cloudflare/index.d.ts",
2508
2635
  "react-server": "./src/cloudflare/index.ts",
2509
2636
  default: "./src/cloudflare/index.ts"
2510
2637
  },
2511
2638
  "./vercel": {
2512
- types: "./src/vercel/index.ts",
2639
+ types: "./dist/types/vercel/index.d.ts",
2513
2640
  "react-server": "./src/vercel/index.ts",
2514
2641
  default: "./src/vercel/index.ts"
2515
2642
  },
2516
2643
  "./theme": {
2517
- types: "./src/theme/index.ts",
2644
+ types: "./dist/types/theme/index.d.ts",
2518
2645
  default: "./src/theme/index.ts"
2519
2646
  },
2520
2647
  "./build": {
2521
- types: "./src/build/index.ts",
2648
+ types: "./dist/types/build/index.d.ts",
2522
2649
  import: "./src/build/index.ts"
2523
2650
  },
2651
+ "./build/shell-capture": {
2652
+ types: "./dist/types/prerender/build-shell-capture.d.ts",
2653
+ "react-server": "./src/prerender/build-shell-capture.ts",
2654
+ import: "./src/prerender/build-shell-capture.ts"
2655
+ },
2524
2656
  "./host": {
2525
- types: "./src/host/index.ts",
2657
+ types: "./dist/types/host/index.d.ts",
2526
2658
  "react-server": "./src/host/index.ts",
2527
2659
  default: "./src/host/index.ts"
2528
2660
  },
2529
2661
  "./host/testing": {
2530
- types: "./src/host/testing.ts",
2662
+ types: "./dist/types/host/testing.d.ts",
2531
2663
  default: "./src/host/testing.ts"
2532
2664
  },
2533
2665
  "./testing": {
2534
- types: "./src/testing/index.ts",
2666
+ types: "./dist/types/testing/index.d.ts",
2535
2667
  default: "./src/testing/index.ts"
2536
2668
  },
2537
2669
  "./testing/vitest": {
2538
- types: "./src/testing/vitest.ts",
2670
+ types: "./dist/types/testing/vitest.d.ts",
2539
2671
  default: "./dist/testing/vitest.js"
2540
2672
  },
2541
2673
  "./testing/dom": {
2542
- types: "./src/testing/dom.entry.ts",
2674
+ types: "./dist/types/testing/dom.entry.d.ts",
2543
2675
  default: "./src/testing/dom.entry.ts"
2544
2676
  },
2545
2677
  "./testing/e2e": {
2546
- types: "./src/testing/e2e/index.ts",
2678
+ types: "./dist/types/testing/e2e/index.d.ts",
2547
2679
  default: "./src/testing/e2e/index.ts"
2548
2680
  },
2549
2681
  "./testing/flight": {
2550
- types: "./src/testing/flight.entry.ts",
2682
+ types: "./dist/types/testing/flight.entry.d.ts",
2551
2683
  "react-server": "./src/testing/flight.entry.ts",
2552
2684
  default: "./src/testing/flight.entry.ts"
2553
2685
  },
2554
2686
  "./testing/flight-matchers": {
2555
- types: "./src/testing/flight-matchers.ts",
2687
+ types: "./dist/types/testing/flight-matchers.d.ts",
2556
2688
  default: "./src/testing/flight-matchers.ts"
2557
2689
  }
2558
2690
  },
2559
2691
  publishConfig: {
2560
2692
  access: "public",
2561
- tag: "experimental"
2693
+ tag: "latest"
2562
2694
  },
2563
2695
  scripts: {
2564
- build: "pnpm exec esbuild src/vite/index.ts --bundle --format=esm --outfile=dist/vite/index.js --platform=node --packages=external && mkdir -p dist/vite/plugins && cp src/vite/plugins/cloudflare-protocol-loader-hook.mjs dist/vite/plugins/cloudflare-protocol-loader-hook.mjs && pnpm exec esbuild src/testing/vitest.ts --bundle --format=esm --outfile=dist/testing/vitest.js --platform=node --packages=external && pnpm exec esbuild src/bin/rango.ts --bundle --format=esm --outfile=dist/bin/rango.js --platform=node --packages=external --banner:js='#!/usr/bin/env node' && chmod +x dist/bin/rango.js",
2696
+ build: "pnpm run build:types && pnpm exec esbuild src/vite/index.ts --bundle --format=esm --outfile=dist/vite/index.js --platform=node --packages=external && mkdir -p dist/vite/plugins && cp src/vite/plugins/cloudflare-protocol-loader-hook.mjs dist/vite/plugins/cloudflare-protocol-loader-hook.mjs && pnpm exec esbuild src/testing/vitest.ts --bundle --format=esm --outfile=dist/testing/vitest.js --platform=node --packages=external && pnpm exec esbuild src/bin/rango.ts --bundle --format=esm --outfile=dist/bin/rango.js --platform=node --packages=external --banner:js='#!/usr/bin/env node' && chmod +x dist/bin/rango.js",
2697
+ "build:types": "rm -rf dist/types && pnpm exec tsc -p tsconfig.types.json",
2565
2698
  prepublishOnly: "pnpm build",
2566
2699
  typecheck: "tsc --noEmit && tsc -p tsconfig.strict-check.json --noEmit && tsc -p tsconfig.augment-check.json --noEmit",
2567
2700
  test: "playwright test",
2568
2701
  "test:ui": "playwright test --ui",
2569
2702
  "test:hmr-local": "playwright test --project=dev-warmup --project=hmr-routes --project=hmr-basename --project=hmr-prerender --no-deps --workers=1",
2570
- "test:unit": "vitest run",
2703
+ "test:unit": "pnpm run build:types && vitest run",
2571
2704
  "test:unit:watch": "vitest",
2572
2705
  "test:unit:rsc": "vitest run --config vitest.rsc.config.ts"
2573
2706
  },
@@ -2636,7 +2769,7 @@ var package_default = {
2636
2769
  }
2637
2770
  },
2638
2771
  engines: {
2639
- node: "^20.19.0 || >=22.12.0"
2772
+ node: ">=24.0.0"
2640
2773
  }
2641
2774
  };
2642
2775
 
@@ -2684,6 +2817,7 @@ function getPackageAliases() {
2684
2817
  }
2685
2818
  function getVendorAliases() {
2686
2819
  const specs = [
2820
+ "@vitejs/plugin-rsc/vendor/react-server-dom/client.browser",
2687
2821
  "@vitejs/plugin-rsc/vendor/react-server-dom/client.edge",
2688
2822
  "@vitejs/plugin-rsc/vendor/react-server-dom/server.edge"
2689
2823
  ];
@@ -3832,6 +3966,13 @@ function createVersionPlugin() {
3832
3966
  return {
3833
3967
  name: "@rangojs/router:version",
3834
3968
  enforce: "pre",
3969
+ // The build-time shell capture phase (producer B, #699) stamps entries
3970
+ // with THIS instance's version — the value folded into the shipped worker
3971
+ // — never the discovery temp server's own version-plugin value (a
3972
+ // different Date.now() stamp that would fail the serve-side gate).
3973
+ api: {
3974
+ getBuildVersion: () => currentVersion
3975
+ },
3835
3976
  configResolved(config) {
3836
3977
  isDev = config.command === "serve";
3837
3978
  resolvedCacheDir = config.cacheDir ? String(config.cacheDir).replace(/\\/g, "/") : void 0;
@@ -3922,6 +4063,7 @@ import * as Vite from "vite";
3922
4063
  import { isAbsolute, resolve as resolve4 } from "node:path";
3923
4064
 
3924
4065
  // src/vite/plugins/performance-tracks.ts
4066
+ init_debug();
3925
4067
  import { readFile } from "node:fs/promises";
3926
4068
  var debug6 = createRangoDebugger(NS.transform);
3927
4069
  var RSDW_PATCH_RE = /((?:var|let|const)\s+\w+\s*=\s*root\._children\s*,\s*(\w+)\s*=\s*root\._debugInfo\s*[;,])/;
@@ -4017,13 +4159,13 @@ function normalizeHostRouterEntry(rawInput, root, exists) {
4017
4159
  }
4018
4160
  return exists(resolve4(root, raw)) ? "./" + raw : raw;
4019
4161
  }
4020
- function createVirtualEntriesPlugin(entries, routerPathRef) {
4162
+ function createVirtualEntriesPlugin(entries, routerPathRef, options) {
4021
4163
  const virtualModules = {};
4022
4164
  if (entries.client === VIRTUAL_IDS.browser) {
4023
4165
  virtualModules[VIRTUAL_IDS.browser] = VIRTUAL_ENTRY_BROWSER;
4024
4166
  }
4025
4167
  if (entries.ssr === VIRTUAL_IDS.ssr) {
4026
- virtualModules[VIRTUAL_IDS.ssr] = VIRTUAL_ENTRY_SSR;
4168
+ virtualModules[VIRTUAL_IDS.ssr] = getVirtualEntrySSR(options?.headScripts);
4027
4169
  }
4028
4170
  const knownIds = new Set(Object.keys(virtualModules));
4029
4171
  if (entries.rsc === VIRTUAL_IDS.rsc) {
@@ -4104,83 +4246,17 @@ function getManualChunks(id) {
4104
4246
  return void 0;
4105
4247
  }
4106
4248
 
4107
- // src/vite/plugins/client-ref-hashing.ts
4108
- import { relative as relative2 } from "node:path";
4109
- import { createHash as createHash2 } from "node:crypto";
4110
- var debug7 = createRangoDebugger(NS.transform);
4111
- var CLIENT_PKG_PROXY_PREFIX = "/@id/__x00__virtual:vite-rsc/client-package-proxy/";
4112
- var CLIENT_IN_SERVER_PKG_PROXY_PREFIX = "/@id/__x00__virtual:vite-rsc/client-in-server-package-proxy/";
4113
- var FS_PREFIX = "/@fs/";
4114
- function hashRefKey(relativeId) {
4115
- return createHash2("sha256").update(relativeId).digest("hex").slice(0, 12);
4249
+ // src/vite/utils/client-chunks.ts
4250
+ init_debug();
4251
+ init_client_ref_hashing();
4252
+ var debugChunks = createRangoDebugger(NS.chunks);
4253
+ function isSharedRuntime(meta) {
4254
+ return [meta.id, meta.normalizedId].some(
4255
+ (path6) => path6.includes("/node_modules/") || /\/@rangojs\/router\//.test(path6) || /\/packages\/(rangojs-router|rsc-router)\/(src|dist)\//.test(path6)
4256
+ );
4116
4257
  }
4117
- function computeProductionHash(projectRoot, refKey) {
4118
- let toHash;
4119
- if (refKey.startsWith(CLIENT_PKG_PROXY_PREFIX)) {
4120
- toHash = refKey.slice(CLIENT_PKG_PROXY_PREFIX.length);
4121
- } else if (refKey.startsWith(CLIENT_IN_SERVER_PKG_PROXY_PREFIX)) {
4122
- const absPath = decodeURIComponent(
4123
- refKey.slice(CLIENT_IN_SERVER_PKG_PROXY_PREFIX.length)
4124
- );
4125
- toHash = relative2(projectRoot, absPath).replaceAll("\\", "/");
4126
- } else if (refKey.startsWith(FS_PREFIX)) {
4127
- const absPath = refKey.slice(FS_PREFIX.length - 1);
4128
- toHash = relative2(projectRoot, absPath).replaceAll("\\", "/");
4129
- } else if (refKey.startsWith("/")) {
4130
- toHash = refKey.slice(1);
4131
- } else {
4132
- return refKey;
4133
- }
4134
- return hashRefKey(toHash);
4135
- }
4136
- var REGISTER_CLIENT_REF_RE = /registerClientReference\(\s*(?:(?:\([^)]*\))|(?:\(\)[\s\S]*?\}))\s*,\s*"([^"]+)"\s*,\s*"[^"]+"\s*\)/g;
4137
- function transformClientRefs(code, projectRoot) {
4138
- if (!code.includes("registerClientReference")) return null;
4139
- let hasReplacement = false;
4140
- const result = code.replace(
4141
- REGISTER_CLIENT_REF_RE,
4142
- (match, refKey) => {
4143
- const hash = computeProductionHash(projectRoot, refKey);
4144
- if (hash === refKey) return match;
4145
- hasReplacement = true;
4146
- return match.replace(`"${refKey}"`, `"${hash}"`);
4147
- }
4148
- );
4149
- return hasReplacement ? result : null;
4150
- }
4151
- function hashClientRefs(projectRoot) {
4152
- const counter = createCounter(debug7, "hash-client-refs");
4153
- return {
4154
- name: "@rangojs/router:hash-client-refs",
4155
- enforce: "post",
4156
- applyToEnvironment(env) {
4157
- return env.name === "rsc";
4158
- },
4159
- buildEnd() {
4160
- counter?.flush();
4161
- },
4162
- transform(code, id) {
4163
- const start = counter ? performance.now() : 0;
4164
- try {
4165
- const result = transformClientRefs(code, projectRoot);
4166
- if (result === null) return;
4167
- return { code: result, map: null };
4168
- } finally {
4169
- counter?.record(id, performance.now() - start);
4170
- }
4171
- }
4172
- };
4173
- }
4174
-
4175
- // src/vite/utils/client-chunks.ts
4176
- var debugChunks = createRangoDebugger(NS.chunks);
4177
- function isSharedRuntime(meta) {
4178
- return [meta.id, meta.normalizedId].some(
4179
- (path6) => path6.includes("/node_modules/") || /\/@rangojs\/router\//.test(path6) || /\/packages\/(rangojs-router|rsc-router)\/(src|dist)\//.test(path6)
4180
- );
4181
- }
4182
- function sanitizeGroup(name) {
4183
- return name.replace(/[^a-zA-Z0-9_-]+/g, "_").replace(/^_+|_+$/g, "") || "app";
4258
+ function sanitizeGroup(name) {
4259
+ return name.replace(/[^a-zA-Z0-9_-]+/g, "_").replace(/^_+|_+$/g, "") || "app";
4184
4260
  }
4185
4261
  var ROUTE_ROOT_DIRS = /* @__PURE__ */ new Set([
4186
4262
  "routes",
@@ -4528,6 +4604,7 @@ function createVersionInjectorPlugin(rscEntryPath) {
4528
4604
  }
4529
4605
 
4530
4606
  // src/vite/plugins/cjs-to-esm.ts
4607
+ init_debug();
4531
4608
  var debug8 = createRangoDebugger(NS.transform);
4532
4609
  function createCjsToEsmPlugin() {
4533
4610
  let isProduction = false;
@@ -4591,11 +4668,33 @@ function createCjsToEsmPlugin() {
4591
4668
 
4592
4669
  // src/vite/router-discovery.ts
4593
4670
  import { createServer as createViteServer } from "vite";
4594
- import { resolve as resolve10 } from "node:path";
4595
- import { readFileSync as readFileSync6 } from "node:fs";
4671
+ import { resolve as resolve11 } from "node:path";
4672
+ import { readFileSync as readFileSync7 } from "node:fs";
4596
4673
  import { createRequire as createRequire3, register } from "node:module";
4597
4674
  import { pathToFileURL as pathToFileURL2 } from "node:url";
4598
4675
 
4676
+ // src/rsc/shell-serve.ts
4677
+ import React from "react";
4678
+
4679
+ // src/server/context.ts
4680
+ import { AsyncLocalStorage } from "node:async_hooks";
4681
+ var RSC_CONTEXT_KEY = /* @__PURE__ */ Symbol.for("rangojs-router:rsc-context");
4682
+ var RangoContext = globalThis[RSC_CONTEXT_KEY] ??= new AsyncLocalStorage();
4683
+ var LOADER_SCOPE_KEY = /* @__PURE__ */ Symbol.for("rangojs-router:loader-scope");
4684
+ var loaderScopeALS = globalThis[LOADER_SCOPE_KEY] ??= new AsyncLocalStorage();
4685
+ var LOADER_BODY_SCOPE_KEY = /* @__PURE__ */ Symbol.for("rangojs-router:loader-body-scope");
4686
+ var loaderBodyScopeALS = globalThis[LOADER_BODY_SCOPE_KEY] ??= new AsyncLocalStorage();
4687
+ var PUSH_CALLBACK_SCOPE_KEY = /* @__PURE__ */ Symbol.for(
4688
+ "rangojs-router:push-callback-scope"
4689
+ );
4690
+ var pushCallbackScopeALS = globalThis[PUSH_CALLBACK_SCOPE_KEY] ??= new AsyncLocalStorage();
4691
+
4692
+ // src/rsc/shell-serve.ts
4693
+ var DEV_SHELL_PROBE_TIMEOUT_MS = 1e4;
4694
+ function normalizeCaptureTimeout(value) {
4695
+ return typeof value === "number" && Number.isFinite(value) && value >= 1 ? value : void 0;
4696
+ }
4697
+
4599
4698
  // src/vite/inject-client-debug.ts
4600
4699
  function isRouterInternalDebugId(id) {
4601
4700
  if (!id.includes("internal-debug")) return false;
@@ -4756,6 +4855,9 @@ function walk(node, visit) {
4756
4855
  }
4757
4856
  }
4758
4857
 
4858
+ // src/vite/router-discovery.ts
4859
+ init_client_ref_hashing();
4860
+
4759
4861
  // src/vite/utils/bundle-analysis.ts
4760
4862
  function findMatchingParenInBundle(code, openParenPos) {
4761
4863
  let depth = 1;
@@ -4860,6 +4962,9 @@ function createDiscoveryState(entryPath, opts) {
4860
4962
  perRouterManifestDataMap: /* @__PURE__ */ new Map(),
4861
4963
  prerenderManifestEntries: null,
4862
4964
  staticManifestEntries: null,
4965
+ shellCandidates: null,
4966
+ prerenderPayloadValues: null,
4967
+ shellPhaseTempServer: null,
4863
4968
  handlerChunkInfoMap: /* @__PURE__ */ new Map(),
4864
4969
  staticHandlerChunkInfoMap: /* @__PURE__ */ new Map(),
4865
4970
  rscEntryFileName: null,
@@ -4909,13 +5014,13 @@ function checkSelfGenWrite(state, filePath, consume) {
4909
5014
  }
4910
5015
 
4911
5016
  // src/router/logging.ts
4912
- import { AsyncLocalStorage } from "node:async_hooks";
5017
+ import { AsyncLocalStorage as AsyncLocalStorage2 } from "node:async_hooks";
4913
5018
 
4914
5019
  // src/internal-debug.ts
4915
5020
  var INTERNAL_RANGO_DEBUG = typeof process !== "undefined" && Boolean(process.env?.INTERNAL_RANGO_DEBUG);
4916
5021
 
4917
5022
  // src/router/logging.ts
4918
- var routerLogContext = new AsyncLocalStorage();
5023
+ var routerLogContext = new AsyncLocalStorage2();
4919
5024
 
4920
5025
  // src/router/url-params.ts
4921
5026
  var PATH_SAFE_ESCAPES = {
@@ -5037,10 +5142,9 @@ function buildRouteToStaticPrefix(prefixTree, result) {
5037
5142
  }
5038
5143
 
5039
5144
  // src/build/route-trie.ts
5040
- function buildRouteTrie(routeManifest, routeAncestry, routeToStaticPrefix, routeTrailingSlash, prerenderRouteNames, passthroughRouteNames, responseTypeRoutes) {
5145
+ function buildRouteTrie(routeManifest, routeToStaticPrefix, routeTrailingSlash, prerenderRouteNames, passthroughRouteNames, responseTypeRoutes) {
5041
5146
  const root = {};
5042
5147
  for (const [routeName, pattern] of Object.entries(routeManifest)) {
5043
- const ancestry = routeAncestry[routeName] || [];
5044
5148
  const staticPrefix = routeToStaticPrefix[routeName] || "";
5045
5149
  const trailingSlash = routeTrailingSlash?.[routeName];
5046
5150
  const responseType = responseTypeRoutes?.[routeName];
@@ -5050,7 +5154,6 @@ function buildRouteTrie(routeManifest, routeAncestry, routeToStaticPrefix, route
5050
5154
  insertRoute(root, segments, 0, {
5051
5155
  n: routeName,
5052
5156
  sp: staticPrefix,
5053
- a: ancestry,
5054
5157
  ...trailingSlash ? { ts: trailingSlash } : {},
5055
5158
  ...prerenderRouteNames?.has(routeName) ? { pr: true } : {},
5056
5159
  ...passthroughRouteNames?.has(routeName) ? { pt: true } : {},
@@ -5083,8 +5186,7 @@ function sortSuffixParams(node) {
5083
5186
  }
5084
5187
  }
5085
5188
  function buildPerRouterTrie(manifest) {
5086
- const ancestry = manifest._routeAncestry;
5087
- if (!ancestry || Object.keys(ancestry).length === 0) {
5189
+ if (Object.keys(manifest.routeManifest).length === 0) {
5088
5190
  return null;
5089
5191
  }
5090
5192
  const routeToStaticPrefix = {};
@@ -5096,7 +5198,6 @@ function buildPerRouterTrie(manifest) {
5096
5198
  }
5097
5199
  return buildRouteTrie(
5098
5200
  manifest.routeManifest,
5099
- ancestry,
5100
5201
  routeToStaticPrefix,
5101
5202
  manifest.routeTrailingSlash,
5102
5203
  manifest.prerenderRoutes ? new Set(manifest.prerenderRoutes) : void 0,
@@ -5442,18 +5543,24 @@ function getStagedAssetDir(projectRoot) {
5442
5543
  function resetStagedBuildAssets(projectRoot) {
5443
5544
  rmSync(getStagedAssetDir(projectRoot), { recursive: true, force: true });
5444
5545
  }
5445
- function stageBuildAssetModule(projectRoot, prefix, exportValue) {
5446
- const stagedDir = getStagedAssetDir(projectRoot);
5447
- mkdirSync(stagedDir, { recursive: true });
5546
+ function writeBuildAssetModule(dir, prefix, exportValue) {
5547
+ mkdirSync(dir, { recursive: true });
5448
5548
  const contentHash = createHash4("sha256").update(exportValue).digest("hex").slice(0, 8);
5449
5549
  const fileName = `${prefix}-${contentHash}.js`;
5450
- const filePath = resolve7(stagedDir, fileName);
5550
+ const filePath = resolve7(dir, fileName);
5451
5551
  if (!existsSync5(filePath)) {
5452
5552
  writeFileSync2(filePath, `export default ${exportValue};
5453
5553
  `);
5454
5554
  }
5455
5555
  return fileName;
5456
5556
  }
5557
+ function stageBuildAssetModule(projectRoot, prefix, exportValue) {
5558
+ return writeBuildAssetModule(
5559
+ getStagedAssetDir(projectRoot),
5560
+ prefix,
5561
+ exportValue
5562
+ );
5563
+ }
5457
5564
  function copyStagedBuildAssets(projectRoot, fileNames) {
5458
5565
  const stagedDir = getStagedAssetDir(projectRoot);
5459
5566
  const distAssetsDir = resolve7(projectRoot, "dist/rsc/assets");
@@ -5469,6 +5576,7 @@ function copyStagedBuildAssets(projectRoot, fileNames) {
5469
5576
  }
5470
5577
 
5471
5578
  // src/vite/discovery/prerender-collection.ts
5579
+ init_debug();
5472
5580
  var debug9 = createRangoDebugger(NS.prerender);
5473
5581
  async function expandPrerenderRoutes(state, rscEnv, registry, allManifests) {
5474
5582
  if (!state.opts?.enableBuildPrerender || !state.isBuildMode) return;
@@ -5676,6 +5784,18 @@ async function expandPrerenderRoutes(state, rscEnv, registry, allManifests) {
5676
5784
  "__pr",
5677
5785
  mainValue
5678
5786
  );
5787
+ if (result.ppr !== void 0 && result.ppr !== false) {
5788
+ (state.shellCandidates ??= []).push({
5789
+ urlPath: entry.urlPath,
5790
+ routeName: result.routeName,
5791
+ paramHash,
5792
+ ppr: result.ppr === true ? true : result.ppr
5793
+ });
5794
+ (state.prerenderPayloadValues ??= /* @__PURE__ */ new Map()).set(
5795
+ mainKey,
5796
+ mainValue
5797
+ );
5798
+ }
5679
5799
  if (result.interceptSegments?.length) {
5680
5800
  const interceptKey = `${result.routeName}/${paramHash}/i`;
5681
5801
  const interceptValue = JSON.stringify({
@@ -5926,6 +6046,8 @@ function describeDiscoveryFailure(err, opts = {}) {
5926
6046
  }
5927
6047
 
5928
6048
  // src/vite/discovery/discover-routers.ts
6049
+ init_debug();
6050
+ init_client_ref_hashing();
5929
6051
  var debug10 = createRangoDebugger(NS.discovery);
5930
6052
  async function discoverRouters(state, rscEnv) {
5931
6053
  if (!state.resolvedEntryPath) return;
@@ -5990,7 +6112,6 @@ async function discoverRouters(state, rscEnv) {
5990
6112
  const newPerRouterManifestDataMap = /* @__PURE__ */ new Map();
5991
6113
  const newPerRouterPrecomputedMap = /* @__PURE__ */ new Map();
5992
6114
  const newPerRouterTrieMap = /* @__PURE__ */ new Map();
5993
- let mergedRouteAncestry = {};
5994
6115
  let mergedRouteTrailingSlash = {};
5995
6116
  let routerMountIndex = 0;
5996
6117
  const allManifests = [];
@@ -6053,9 +6174,6 @@ async function discoverRouters(state, rscEnv) {
6053
6174
  sourceFile: router.__sourceFile,
6054
6175
  factoryOnlyPrefixes
6055
6176
  });
6056
- if (manifest._routeAncestry) {
6057
- Object.assign(mergedRouteAncestry, manifest._routeAncestry);
6058
- }
6059
6177
  if (manifest.routeTrailingSlash) {
6060
6178
  Object.assign(mergedRouteTrailingSlash, manifest.routeTrailingSlash);
6061
6179
  }
@@ -6090,49 +6208,46 @@ async function discoverRouters(state, rscEnv) {
6090
6208
  let newMergedRouteTrie = null;
6091
6209
  const trieStart = debug10 ? performance.now() : 0;
6092
6210
  if (Object.keys(newMergedRouteManifest).length > 0) {
6093
- if (mergedRouteAncestry) {
6094
- const routeToStaticPrefix = {};
6095
- for (const { manifest } of allManifests) {
6096
- for (const name of Object.keys(manifest.routeManifest)) {
6097
- if (!(name in routeToStaticPrefix)) {
6098
- routeToStaticPrefix[name] = "";
6099
- }
6100
- }
6101
- buildRouteToStaticPrefix(manifest.prefixTree, routeToStaticPrefix);
6102
- }
6103
- const prerenderRouteNames = /* @__PURE__ */ new Set();
6104
- const passthroughRouteNames = /* @__PURE__ */ new Set();
6105
- const mergedResponseTypeRoutes = {};
6106
- for (const { manifest } of allManifests) {
6107
- if (manifest.prerenderRoutes) {
6108
- for (const name of manifest.prerenderRoutes) {
6109
- prerenderRouteNames.add(name);
6110
- }
6111
- }
6112
- if (manifest.passthroughRoutes) {
6113
- for (const name of manifest.passthroughRoutes) {
6114
- passthroughRouteNames.add(name);
6115
- }
6211
+ const routeToStaticPrefix = {};
6212
+ for (const { manifest } of allManifests) {
6213
+ for (const name of Object.keys(manifest.routeManifest)) {
6214
+ if (!(name in routeToStaticPrefix)) {
6215
+ routeToStaticPrefix[name] = "";
6116
6216
  }
6117
- if (manifest.responseTypeRoutes) {
6118
- Object.assign(mergedResponseTypeRoutes, manifest.responseTypeRoutes);
6217
+ }
6218
+ buildRouteToStaticPrefix(manifest.prefixTree, routeToStaticPrefix);
6219
+ }
6220
+ const prerenderRouteNames = /* @__PURE__ */ new Set();
6221
+ const passthroughRouteNames = /* @__PURE__ */ new Set();
6222
+ const mergedResponseTypeRoutes = {};
6223
+ for (const { manifest } of allManifests) {
6224
+ if (manifest.prerenderRoutes) {
6225
+ for (const name of manifest.prerenderRoutes) {
6226
+ prerenderRouteNames.add(name);
6119
6227
  }
6120
6228
  }
6121
- newMergedRouteTrie = buildRouteTrie(
6122
- newMergedRouteManifest,
6123
- mergedRouteAncestry,
6124
- routeToStaticPrefix,
6125
- mergedRouteTrailingSlash,
6126
- prerenderRouteNames,
6127
- passthroughRouteNames,
6128
- mergedResponseTypeRoutes
6129
- );
6130
- for (const { id, manifest } of allManifests) {
6131
- const perRouterTrie = buildPerRouterTrie(manifest);
6132
- if (perRouterTrie) {
6133
- newPerRouterTrieMap.set(id, perRouterTrie);
6229
+ if (manifest.passthroughRoutes) {
6230
+ for (const name of manifest.passthroughRoutes) {
6231
+ passthroughRouteNames.add(name);
6134
6232
  }
6135
6233
  }
6234
+ if (manifest.responseTypeRoutes) {
6235
+ Object.assign(mergedResponseTypeRoutes, manifest.responseTypeRoutes);
6236
+ }
6237
+ }
6238
+ newMergedRouteTrie = buildRouteTrie(
6239
+ newMergedRouteManifest,
6240
+ routeToStaticPrefix,
6241
+ mergedRouteTrailingSlash,
6242
+ prerenderRouteNames,
6243
+ passthroughRouteNames,
6244
+ mergedResponseTypeRoutes
6245
+ );
6246
+ for (const { id, manifest } of allManifests) {
6247
+ const perRouterTrie = buildPerRouterTrie(manifest);
6248
+ if (perRouterTrie) {
6249
+ newPerRouterTrieMap.set(id, perRouterTrie);
6250
+ }
6136
6251
  }
6137
6252
  }
6138
6253
  debug10?.(
@@ -6146,11 +6261,286 @@ async function discoverRouters(state, rscEnv) {
6146
6261
  state.perRouterPrecomputedMap = newPerRouterPrecomputedMap;
6147
6262
  state.perRouterTrieMap = newPerRouterTrieMap;
6148
6263
  state.mergedRouteTrie = newMergedRouteTrie;
6264
+ if (serverMod.setRouteTrie && newMergedRouteTrie) {
6265
+ serverMod.setRouteTrie(newMergedRouteTrie);
6266
+ }
6267
+ const perRouterSetters = [
6268
+ [newPerRouterManifestDataMap, "setRouterManifest"],
6269
+ [newPerRouterTrieMap, "setRouterTrie"],
6270
+ [newPerRouterPrecomputedMap, "setRouterPrecomputedEntries"]
6271
+ ];
6272
+ for (const [map, fn] of perRouterSetters) {
6273
+ const setter = serverMod[fn];
6274
+ if (typeof setter !== "function") continue;
6275
+ for (const [routerId, value] of map) setter(routerId, value);
6276
+ }
6149
6277
  await expandPrerenderRoutes(state, rscEnv, registry, allManifests);
6150
6278
  await renderStaticHandlers(state, rscEnv, registry);
6151
6279
  return serverMod;
6152
6280
  }
6153
6281
 
6282
+ // src/vite/discovery/shell-prerender-phase.ts
6283
+ import { existsSync as existsSync6, readdirSync as readdirSync2, readFileSync as readFileSync4, writeFileSync as writeFileSync3 } from "node:fs";
6284
+ import { join as join4, resolve as resolve8 } from "node:path";
6285
+
6286
+ // src/prerender/shell-manifest-key.ts
6287
+ function buildShellManifestKey(pathname) {
6288
+ return pathname;
6289
+ }
6290
+
6291
+ // src/vite/discovery/shell-prerender-phase.ts
6292
+ init_debug();
6293
+ var debug11 = createRangoDebugger(NS.prerender);
6294
+ async function runShellPrerenderPhase(s, builder) {
6295
+ const tempServer = s.shellPhaseTempServer;
6296
+ if (!s.isBuildMode || !s.shellCandidates?.length || !tempServer) return;
6297
+ const candidates = s.shellCandidates;
6298
+ const startTotal = performance.now();
6299
+ console.log(`[rango] Shell-prerendering ${candidates.length} URL(s)...`);
6300
+ let restoreClientRequire;
6301
+ try {
6302
+ const rscEnv = tempServer.environments?.rsc;
6303
+ const ssrEnv = tempServer.environments?.ssr;
6304
+ if (!rscEnv?.runner || !ssrEnv?.runner) {
6305
+ console.warn(
6306
+ `[rango] shell prerender: temp server runners unavailable (rsc=${String(!!rscEnv?.runner)}, ssr=${String(!!ssrEnv?.runner)}); skipping \u2014 routes keep runtime shell capture.`
6307
+ );
6308
+ return;
6309
+ }
6310
+ const versionPlugin = (builder?.config?.plugins ?? []).find(
6311
+ (p) => p?.name === "@rangojs/router:version"
6312
+ );
6313
+ const buildVersion = versionPlugin?.api?.getBuildVersion?.();
6314
+ if (!buildVersion) {
6315
+ console.warn(
6316
+ "[rango] shell prerender: main build version unavailable; skipping \u2014 routes keep runtime shell capture."
6317
+ );
6318
+ return;
6319
+ }
6320
+ const payloads = s.prerenderPayloadValues ?? /* @__PURE__ */ new Map();
6321
+ const fetchedKeys = /* @__PURE__ */ new Set();
6322
+ globalThis.__loadPrerenderManifestModule = async () => ({
6323
+ default: Object.fromEntries([...payloads.keys()].map((k) => [k, k])),
6324
+ loadPrerenderAsset: async (spec) => {
6325
+ fetchedKeys.add(spec);
6326
+ return { default: JSON.parse(payloads.get(spec)) };
6327
+ }
6328
+ });
6329
+ const ssrRunner = ssrEnv.runner;
6330
+ const ssrPkg = await ssrRunner.import("@rangojs/router/ssr");
6331
+ const ssrDeps = await ssrRunner.import("@rangojs/router/internal/deps/ssr");
6332
+ const reactDomServer = await ssrRunner.import("react-dom/server.edge");
6333
+ const reactDomStatic = await ssrRunner.import("react-dom/static.edge");
6334
+ const htmlStream = await ssrRunner.import(
6335
+ "@rangojs/router/internal/deps/html-stream-server"
6336
+ );
6337
+ const clientOutDir = builder?.environments?.client?.config?.build?.outDir ?? resolve8(s.projectRoot, "dist/client");
6338
+ const clientAssetsDir = join4(clientOutDir, "assets");
6339
+ const entryFile = existsSync6(clientAssetsDir) ? readdirSync2(clientAssetsDir).find((f) => /^index-.*\.js$/.test(f)) : void 0;
6340
+ if (!entryFile) {
6341
+ console.warn(
6342
+ `[rango] shell prerender: built client entry not found under ${clientAssetsDir}; skipping \u2014 routes keep runtime shell capture.`
6343
+ );
6344
+ return;
6345
+ }
6346
+ const base = builder?.config?.base ?? "/";
6347
+ const normalizedBase = base.endsWith("/") ? base : `${base}/`;
6348
+ const bootstrapContent = `import("${normalizedBase}assets/${entryFile}")`;
6349
+ debug11?.("shell prerender bootstrap: %s", bootstrapContent);
6350
+ const minimalPlugin = (tempServer.config?.plugins ?? []).find(
6351
+ (p) => p?.name === "rsc:minimal"
6352
+ );
6353
+ const rscManager = minimalPlugin?.api?.manager;
6354
+ const { computeProductionHash: computeProductionHash2 } = await Promise.resolve().then(() => (init_client_ref_hashing(), client_ref_hashing_exports));
6355
+ let hashToDevKey = /* @__PURE__ */ new Map();
6356
+ const rebuildHashMap = () => {
6357
+ hashToDevKey = /* @__PURE__ */ new Map();
6358
+ const metaMap = rscManager?.clientReferenceMetaMap ?? {};
6359
+ for (const meta of Object.values(metaMap)) {
6360
+ hashToDevKey.set(
6361
+ computeProductionHash2(s.projectRoot, meta.referenceKey),
6362
+ meta.referenceKey
6363
+ );
6364
+ }
6365
+ };
6366
+ const origClientRequire = globalThis.__vite_rsc_client_require__;
6367
+ if (typeof origClientRequire === "function") {
6368
+ restoreClientRequire = () => {
6369
+ globalThis.__vite_rsc_client_require__ = origClientRequire;
6370
+ };
6371
+ globalThis.__vite_rsc_client_require__ = (id) => {
6372
+ const base2 = id.split("$$cache=")[0];
6373
+ let mapped = hashToDevKey.get(base2);
6374
+ if (mapped === void 0) {
6375
+ rebuildHashMap();
6376
+ mapped = hashToDevKey.get(base2);
6377
+ }
6378
+ return origClientRequire(mapped ?? id);
6379
+ };
6380
+ }
6381
+ const captureShellHTML = ssrPkg.createShellCaptureHandler({
6382
+ createFromReadableStream: ssrDeps.createFromReadableStream,
6383
+ renderToReadableStream: reactDomServer.renderToReadableStream ?? reactDomServer.default?.renderToReadableStream,
6384
+ resume: reactDomServer.resume ?? reactDomServer.default?.resume,
6385
+ prerender: reactDomStatic.prerender ?? reactDomStatic.default?.prerender,
6386
+ injectRSCPayload: htmlStream.injectRSCPayload,
6387
+ headScripts: "preinit",
6388
+ loadBootstrapScriptContent: async () => bootstrapContent
6389
+ });
6390
+ const rscRunner = rscEnv.runner;
6391
+ const captureMod = await rscRunner.import(
6392
+ "@rangojs/router/build/shell-capture"
6393
+ );
6394
+ const serverMod = await rscRunner.import("@rangojs/router/server");
6395
+ const registry = serverMod.RouterRegistry;
6396
+ const staged = [];
6397
+ let skipCount = 0;
6398
+ const pathCounts = /* @__PURE__ */ new Map();
6399
+ for (const cand of candidates) {
6400
+ pathCounts.set(cand.urlPath, (pathCounts.get(cand.urlPath) ?? 0) + 1);
6401
+ }
6402
+ for (const cand of candidates) {
6403
+ if ((pathCounts.get(cand.urlPath) ?? 0) > 1) {
6404
+ console.warn(
6405
+ `[rango] SHELL SKIP ${cand.urlPath.padEnd(34)} - pathname claimed by multiple prerender routes; routes keep runtime capture`
6406
+ );
6407
+ skipCount++;
6408
+ continue;
6409
+ }
6410
+ const startUrl = performance.now();
6411
+ const policy = captureMod.resolveBuildPprConfig(cand.ppr);
6412
+ const mainKey = `${cand.routeName}/${cand.paramHash}`;
6413
+ let handled = false;
6414
+ const mismatches = [];
6415
+ for (const [, routerInstance] of registry) {
6416
+ if (typeof routerInstance.match !== "function") continue;
6417
+ try {
6418
+ const res = await captureMod.captureShellForBuild({
6419
+ router: routerInstance,
6420
+ urlPath: cand.urlPath,
6421
+ routeName: cand.routeName,
6422
+ key: `${cand.urlPath}:shell`,
6423
+ ttl: policy.ttl,
6424
+ swr: policy.swr,
6425
+ tags: policy.tags,
6426
+ maxSnapshotBytes: policy.maxSnapshotBytes,
6427
+ captureTimeout: policy.captureTimeout,
6428
+ buildEnv: s.resolvedBuildEnv,
6429
+ buildVersion,
6430
+ captureShellHTML,
6431
+ debug: !!debug11
6432
+ });
6433
+ if (res.outcome === "route-mismatch") {
6434
+ mismatches.push(res.matchedRouteName ?? "(no match)");
6435
+ continue;
6436
+ }
6437
+ handled = true;
6438
+ const elapsed = (performance.now() - startUrl).toFixed(0);
6439
+ if (res.outcome !== "stored" || !res.entry) {
6440
+ console.warn(
6441
+ `[rango] SHELL SKIP ${cand.urlPath.padEnd(34)} (${elapsed}ms) - capture ${res.outcome}; route keeps runtime capture`
6442
+ );
6443
+ skipCount++;
6444
+ break;
6445
+ }
6446
+ if (!fetchedKeys.has(mainKey)) {
6447
+ console.warn(
6448
+ `[rango] SHELL SKIP ${cand.urlPath.padEnd(34)} (${elapsed}ms) - capture did not replay the prerender store; route keeps runtime capture`
6449
+ );
6450
+ skipCount++;
6451
+ break;
6452
+ }
6453
+ const value = {
6454
+ entry: res.entry,
6455
+ ttl: policy.ttl,
6456
+ swr: policy.swr,
6457
+ tags: res.tags,
6458
+ routeName: cand.routeName
6459
+ };
6460
+ staged.push({
6461
+ key: buildShellManifestKey(cand.urlPath),
6462
+ value: JSON.stringify(value)
6463
+ });
6464
+ console.log(
6465
+ `[rango] SHELL OK ${cand.urlPath.padEnd(34)} (${elapsed}ms)`
6466
+ );
6467
+ break;
6468
+ } catch (err) {
6469
+ handled = true;
6470
+ const elapsed = (performance.now() - startUrl).toFixed(0);
6471
+ console.warn(
6472
+ `[rango] SHELL SKIP ${cand.urlPath.padEnd(34)} (${elapsed}ms) - ${err?.message ?? err}; route keeps runtime capture`
6473
+ );
6474
+ skipCount++;
6475
+ break;
6476
+ }
6477
+ }
6478
+ if (!handled) {
6479
+ console.warn(
6480
+ `[rango] SHELL SKIP ${cand.urlPath.padEnd(34)} - no router matched "${cand.routeName}"` + (mismatches.length > 0 ? ` (matched: ${mismatches.join(", ")})` : "") + "; route keeps runtime capture"
6481
+ );
6482
+ skipCount++;
6483
+ }
6484
+ }
6485
+ if (staged.length > 0) {
6486
+ const rscOutDir = builder?.environments?.rsc?.config?.build?.outDir ?? resolve8(s.projectRoot, "dist/rsc");
6487
+ writeShellManifest(s, rscOutDir, staged);
6488
+ }
6489
+ const totalElapsed = (performance.now() - startTotal).toFixed(0);
6490
+ const parts = [`${staged.length} done`];
6491
+ if (skipCount > 0) parts.push(`${skipCount} skipped`);
6492
+ console.log(
6493
+ `[rango] Shell prerender complete: ${parts.join(", ")} (${totalElapsed}ms total)`
6494
+ );
6495
+ } catch (err) {
6496
+ console.warn(
6497
+ `[rango] shell prerender phase failed: ${err?.message ?? err}; routes keep runtime shell capture.`
6498
+ );
6499
+ } finally {
6500
+ delete globalThis.__loadPrerenderManifestModule;
6501
+ restoreClientRequire?.();
6502
+ }
6503
+ }
6504
+ function writeShellManifest(s, rscOutDir, staged) {
6505
+ const rscEntryPath = resolve8(rscOutDir, s.rscEntryFileName ?? "index.js");
6506
+ if (!existsSync6(rscEntryPath)) {
6507
+ console.warn(
6508
+ `[rango] shell prerender: RSC entry not found at ${rscEntryPath}; entries not persisted \u2014 routes keep runtime capture.`
6509
+ );
6510
+ return;
6511
+ }
6512
+ const assetsDir = resolve8(rscOutDir, "assets");
6513
+ let totalBytes = 0;
6514
+ const manifestMap = {};
6515
+ const countedFiles = /* @__PURE__ */ new Set();
6516
+ for (const { key, value } of staged) {
6517
+ const fileName = writeBuildAssetModule(assetsDir, "__ps", value);
6518
+ if (!countedFiles.has(fileName)) {
6519
+ countedFiles.add(fileName);
6520
+ totalBytes += Buffer.byteLength(value) + "export default ;\n".length;
6521
+ }
6522
+ manifestMap[key] = `./assets/${fileName}`;
6523
+ }
6524
+ const manifestCode = [
6525
+ `const m=${jsonParseExpression(manifestMap)};`,
6526
+ `export function loadShellAsset(s){return import(s)}`,
6527
+ `export default m;`,
6528
+ ""
6529
+ ].join("\n");
6530
+ writeFileSync3(resolve8(rscOutDir, "__shell-manifest.js"), manifestCode);
6531
+ totalBytes += Buffer.byteLength(manifestCode);
6532
+ const rscCode = readFileSync4(rscEntryPath, "utf-8");
6533
+ if (!rscCode.includes("__shell-manifest.js")) {
6534
+ const injection = `globalThis.__loadShellManifestModule = () => import("./__shell-manifest.js");
6535
+ `;
6536
+ writeFileSync3(rscEntryPath, injection + rscCode);
6537
+ }
6538
+ const totalKB = (totalBytes / 1024).toFixed(1);
6539
+ console.log(
6540
+ `[rango] Wrote shell assets (${totalKB} KB total, ${staged.length} entries)`
6541
+ );
6542
+ }
6543
+
6154
6544
  // src/vite/discovery/dev-prerender-cache.ts
6155
6545
  function payloadBodiesFromResult(result) {
6156
6546
  const main = JSON.stringify({
@@ -6189,8 +6579,8 @@ function createDevPrerenderCache(maxEntriesPerRouter = MAX_ENTRIES_PER_ROUTER) {
6189
6579
  }
6190
6580
 
6191
6581
  // src/vite/discovery/route-types-writer.ts
6192
- import { dirname as dirname3, join as join4, resolve as resolve8 } from "node:path";
6193
- import { readFileSync as readFileSync4, writeFileSync as writeFileSync3, existsSync as existsSync6, unlinkSync as unlinkSync2 } from "node:fs";
6582
+ import { dirname as dirname3, join as join5, resolve as resolve9 } from "node:path";
6583
+ import { readFileSync as readFileSync5, writeFileSync as writeFileSync4, existsSync as existsSync7, unlinkSync as unlinkSync2 } from "node:fs";
6194
6584
  function filterUserNamedRoutes(manifest) {
6195
6585
  const filtered = {};
6196
6586
  for (const [name, pattern] of Object.entries(manifest)) {
@@ -6201,10 +6591,10 @@ function filterUserNamedRoutes(manifest) {
6201
6591
  return filtered;
6202
6592
  }
6203
6593
  function writeGenFileIfChanged(state, outPath, source, opts) {
6204
- const existing = existsSync6(outPath) ? readFileSync4(outPath, "utf-8") : null;
6594
+ const existing = existsSync7(outPath) ? readFileSync5(outPath, "utf-8") : null;
6205
6595
  if (existing === source) return;
6206
6596
  markSelfGenWrite(state, outPath, source);
6207
- writeFileSync3(outPath, source);
6597
+ writeFileSync4(outPath, source);
6208
6598
  if (opts?.log) console.log(`[rango] Generated route types -> ${outPath}`);
6209
6599
  }
6210
6600
  function writeCombinedRouteTypesWithTracking(state, opts) {
@@ -6219,10 +6609,10 @@ function writeRouteTypesFiles(state) {
6219
6609
  if (state.perRouterManifests.length === 0) return;
6220
6610
  try {
6221
6611
  const entryDir = dirname3(
6222
- resolve8(state.projectRoot, state.resolvedEntryPath)
6612
+ resolve9(state.projectRoot, state.resolvedEntryPath)
6223
6613
  );
6224
- const oldCombinedPath = join4(entryDir, "named-routes.gen.ts");
6225
- if (existsSync6(oldCombinedPath)) {
6614
+ const oldCombinedPath = join5(entryDir, "named-routes.gen.ts");
6615
+ if (existsSync7(oldCombinedPath)) {
6226
6616
  unlinkSync2(oldCombinedPath);
6227
6617
  console.log(
6228
6618
  `[rango] Removed stale combined route types: ${oldCombinedPath}`
@@ -6303,7 +6693,9 @@ function supplementGenFilesWithRuntimeRoutes(state) {
6303
6693
  }
6304
6694
 
6305
6695
  // src/vite/discovery/virtual-module-codegen.ts
6306
- import { dirname as dirname4, basename, join as join5 } from "node:path";
6696
+ import { mkdirSync as mkdirSync2, writeFileSync as writeFileSync5 } from "node:fs";
6697
+ import { dirname as dirname4, basename, join as join6 } from "node:path";
6698
+ var MANIFEST_EXTERNALIZE_THRESHOLD = 512 * 1024;
6307
6699
  function generateRoutesManifestModule(state) {
6308
6700
  const hasManifest = state.mergedRouteManifest && Object.keys(state.mergedRouteManifest).length > 0;
6309
6701
  if (hasManifest) {
@@ -6318,7 +6710,7 @@ function generateRoutesManifestModule(state) {
6318
6710
  /\.(tsx?|jsx?)$/,
6319
6711
  ""
6320
6712
  );
6321
- const genPath = join5(
6713
+ const genPath = join6(
6322
6714
  routerDir,
6323
6715
  `${routerBasename}.named-routes.gen.js`
6324
6716
  ).replaceAll("\\", "/");
@@ -6392,51 +6784,78 @@ function generateRoutesManifestModule(state) {
6392
6784
  }
6393
6785
  return `// Route manifest will be populated at runtime`;
6394
6786
  }
6787
+ function shortHash(input) {
6788
+ let h = 2166136261;
6789
+ for (let i = 0; i < input.length; i++) {
6790
+ h ^= input.charCodeAt(i);
6791
+ h = Math.imul(h, 16777619);
6792
+ }
6793
+ return (h >>> 0).toString(36);
6794
+ }
6395
6795
  function generatePerRouterModule(state, routerId) {
6396
- const routerEntry = state.perRouterManifests.find((e) => e.id === routerId);
6796
+ const sourceFile = state.perRouterManifests.find(
6797
+ (e) => e.id === routerId
6798
+ )?.sourceFile;
6397
6799
  const trie = state.perRouterTrieMap.get(routerId);
6398
6800
  const entries = state.perRouterPrecomputedMap.get(routerId);
6399
6801
  const lines = [];
6400
- if (routerEntry?.sourceFile) {
6401
- const routerDir = dirname4(routerEntry.sourceFile);
6402
- const routerBasename = basename(routerEntry.sourceFile).replace(
6403
- /\.(tsx?|jsx?)$/,
6404
- ""
6405
- );
6406
- const genPath = join5(
6802
+ if (sourceFile) {
6803
+ const routerDir = dirname4(sourceFile);
6804
+ const routerBasename = basename(sourceFile).replace(/\.(tsx?|jsx?)$/, "");
6805
+ const genPath = join6(
6407
6806
  routerDir,
6408
6807
  `${routerBasename}.named-routes.gen.js`
6409
6808
  ).replaceAll("\\", "/");
6410
- lines.push(`import { NamedRoutes as _r } from ${JSON.stringify(genPath)};`);
6411
- lines.push(
6412
- `function __flat(r) { const o = {}; for (const [k, v] of Object.entries(r)) o[k] = typeof v === "string" ? v : v.path; return o; }`
6413
- );
6414
- lines.push(`export const manifest = __flat(_r);`);
6415
- } else {
6416
- const manifest = state.perRouterManifestDataMap.get(routerId);
6417
- if (manifest) {
6418
- lines.push(`export const manifest = ${jsonParseExpression(manifest)};`);
6419
- }
6809
+ lines.push(`import ${JSON.stringify(genPath)};`);
6810
+ }
6811
+ const hasTrie = !!trie;
6812
+ const hasEntries = !!entries && entries.length > 0;
6813
+ const preset = state.opts?.preset ?? "node";
6814
+ const override = process.env.RANGO_MANIFEST_TEXT;
6815
+ const payload = manifestPayload(trie, hasTrie, entries, hasEntries);
6816
+ const payloadJson = hasTrie || hasEntries ? JSON.stringify(payload) : "";
6817
+ const useTextModule = state.isBuildMode && preset === "cloudflare" && override !== "0" && (hasTrie || hasEntries) && (override === "1" || payloadJson.length >= MANIFEST_EXTERNALIZE_THRESHOLD);
6818
+ if (useTextModule) {
6819
+ const dir = join6(state.projectRoot, "node_modules", ".rango");
6820
+ mkdirSync2(dir, { recursive: true });
6821
+ const safeId = `${routerId.replace(/[^a-zA-Z0-9_-]/g, "_")}-${shortHash(routerId)}`;
6822
+ const filePath = join6(dir, `manifest-${safeId}.txt`).replaceAll("\\", "/");
6823
+ writeFileSync5(filePath, payloadJson);
6824
+ lines.push(`import __manifestJson from ${JSON.stringify(filePath)};`);
6825
+ lines.push(`const __manifestData = JSON.parse(__manifestJson);`);
6826
+ emitManifestExports(lines, hasTrie, hasEntries);
6827
+ return lines.join("\n");
6420
6828
  }
6421
- if (trie) {
6829
+ if (hasTrie) {
6422
6830
  lines.push(`export const trie = ${jsonParseExpression(trie)};`);
6423
6831
  }
6424
- if (entries && entries.length > 0) {
6832
+ if (hasEntries) {
6425
6833
  lines.push(
6426
6834
  `export const precomputedEntries = ${jsonParseExpression(entries)};`
6427
6835
  );
6428
6836
  }
6429
6837
  return lines.join("\n") || "";
6430
6838
  }
6839
+ function manifestPayload(trie, hasTrie, entries, hasEntries) {
6840
+ const payload = {};
6841
+ if (hasTrie) payload.t = trie;
6842
+ if (hasEntries) payload.p = entries;
6843
+ return payload;
6844
+ }
6845
+ function emitManifestExports(lines, hasTrie, hasEntries) {
6846
+ if (hasTrie) lines.push(`export const trie = __manifestData.t;`);
6847
+ if (hasEntries)
6848
+ lines.push(`export const precomputedEntries = __manifestData.p;`);
6849
+ }
6431
6850
 
6432
6851
  // src/vite/discovery/bundle-postprocess.ts
6433
- import { resolve as resolve9 } from "node:path";
6434
- import { readFileSync as readFileSync5, writeFileSync as writeFileSync4, existsSync as existsSync7 } from "node:fs";
6852
+ import { resolve as resolve10 } from "node:path";
6853
+ import { readFileSync as readFileSync6, writeFileSync as writeFileSync6, existsSync as existsSync8 } from "node:fs";
6435
6854
  function postprocessBundle(state) {
6436
6855
  const hasPrerenderData = state.prerenderManifestEntries && Object.keys(state.prerenderManifestEntries).length > 0;
6437
6856
  const hasStaticData = state.staticManifestEntries && Object.keys(state.staticManifestEntries).length > 0;
6438
6857
  if (!hasPrerenderData && !hasStaticData) return;
6439
- const rscEntryPath = resolve9(
6858
+ const rscEntryPath = resolve10(
6440
6859
  state.projectRoot,
6441
6860
  "dist/rsc",
6442
6861
  state.rscEntryFileName ?? "index.js"
@@ -6457,9 +6876,9 @@ function postprocessBundle(state) {
6457
6876
  ];
6458
6877
  for (const target of evictionTargets) {
6459
6878
  for (const info of target.infos) {
6460
- const chunkPath = resolve9(state.projectRoot, "dist/rsc", info.fileName);
6879
+ const chunkPath = resolve10(state.projectRoot, "dist/rsc", info.fileName);
6461
6880
  try {
6462
- const code = readFileSync5(chunkPath, "utf-8");
6881
+ const code = readFileSync6(chunkPath, "utf-8");
6463
6882
  const result = evictHandlerCode(
6464
6883
  code,
6465
6884
  info.exports,
@@ -6467,7 +6886,7 @@ function postprocessBundle(state) {
6467
6886
  target.brand
6468
6887
  );
6469
6888
  if (result) {
6470
- writeFileSync4(chunkPath, result.code);
6889
+ writeFileSync6(chunkPath, result.code);
6471
6890
  const savedKB = (result.savedBytes / 1024).toFixed(1);
6472
6891
  console.log(
6473
6892
  `[rango] Evicted ${target.label} (${savedKB} KB saved): ${info.fileName}`
@@ -6482,8 +6901,8 @@ function postprocessBundle(state) {
6482
6901
  }
6483
6902
  state.handlerChunkInfoMap.clear();
6484
6903
  state.staticHandlerChunkInfoMap.clear();
6485
- if (hasPrerenderData && existsSync7(rscEntryPath)) {
6486
- const rscCode = readFileSync5(rscEntryPath, "utf-8");
6904
+ if (hasPrerenderData && existsSync8(rscEntryPath)) {
6905
+ const rscCode = readFileSync6(rscEntryPath, "utf-8");
6487
6906
  if (!rscCode.includes("__prerender-manifest.js")) {
6488
6907
  try {
6489
6908
  let totalBytes = copyStagedBuildAssets(
@@ -6502,15 +6921,15 @@ function postprocessBundle(state) {
6502
6921
  `export default m;`,
6503
6922
  ""
6504
6923
  ].join("\n");
6505
- const manifestPath = resolve9(
6924
+ const manifestPath = resolve10(
6506
6925
  state.projectRoot,
6507
6926
  "dist/rsc/__prerender-manifest.js"
6508
6927
  );
6509
- writeFileSync4(manifestPath, manifestCode);
6928
+ writeFileSync6(manifestPath, manifestCode);
6510
6929
  totalBytes += Buffer.byteLength(manifestCode);
6511
6930
  const injection = `globalThis.__loadPrerenderManifestModule = () => import("./__prerender-manifest.js");
6512
6931
  `;
6513
- writeFileSync4(rscEntryPath, injection + rscCode);
6932
+ writeFileSync6(rscEntryPath, injection + rscCode);
6514
6933
  const totalKB = (totalBytes / 1024).toFixed(1);
6515
6934
  console.log(
6516
6935
  `[rango] Wrote prerender assets (${totalKB} KB total, ${Object.keys(state.prerenderManifestEntries).length} entries)`
@@ -6522,8 +6941,8 @@ function postprocessBundle(state) {
6522
6941
  }
6523
6942
  }
6524
6943
  }
6525
- if (hasStaticData && existsSync7(rscEntryPath)) {
6526
- const rscCode = readFileSync5(rscEntryPath, "utf-8");
6944
+ if (hasStaticData && existsSync8(rscEntryPath)) {
6945
+ const rscCode = readFileSync6(rscEntryPath, "utf-8");
6527
6946
  if (!rscCode.includes("__static-manifest.js")) {
6528
6947
  try {
6529
6948
  const manifestEntries = [];
@@ -6540,15 +6959,15 @@ function postprocessBundle(state) {
6540
6959
  }
6541
6960
  const manifestCode = `const m={${manifestEntries.join(",")}};globalThis.__STATIC_MANIFEST=m;export default m;
6542
6961
  `;
6543
- const manifestPath = resolve9(
6962
+ const manifestPath = resolve10(
6544
6963
  state.projectRoot,
6545
6964
  "dist/rsc/__static-manifest.js"
6546
6965
  );
6547
- writeFileSync4(manifestPath, manifestCode);
6966
+ writeFileSync6(manifestPath, manifestCode);
6548
6967
  totalBytes += Buffer.byteLength(manifestCode);
6549
6968
  const injection = `import "./__static-manifest.js";
6550
6969
  `;
6551
- writeFileSync4(rscEntryPath, injection + rscCode);
6970
+ writeFileSync6(rscEntryPath, injection + rscCode);
6552
6971
  const totalKB = (totalBytes / 1024).toFixed(1);
6553
6972
  console.log(
6554
6973
  `[rango] Wrote static assets (${totalKB} KB total, ${Object.keys(state.staticManifestEntries).length} entries)`
@@ -6563,7 +6982,7 @@ function postprocessBundle(state) {
6563
6982
  }
6564
6983
 
6565
6984
  // src/vite/discovery/gate-state.ts
6566
- function createDiscoveryGate(s, debug11) {
6985
+ function createDiscoveryGate(s, debug12) {
6567
6986
  let gatePending = false;
6568
6987
  let gateResolver = () => {
6569
6988
  };
@@ -6572,15 +6991,15 @@ function createDiscoveryGate(s, debug11) {
6572
6991
  let pendingEvents = false;
6573
6992
  const beginGate = () => {
6574
6993
  if (gatePending) return;
6575
- s.discoveryDone = new Promise((resolve12) => {
6576
- gateResolver = resolve12;
6994
+ s.discoveryDone = new Promise((resolve13) => {
6995
+ gateResolver = resolve13;
6577
6996
  });
6578
6997
  gatePending = true;
6579
6998
  };
6580
6999
  const resolveGate = () => {
6581
7000
  if (!gatePending) return;
6582
7001
  if (inProgress || queued || pendingEvents) {
6583
- debug11?.(
7002
+ debug12?.(
6584
7003
  "hmr: resolveGate deferred \u2014 work in flight (inProgress=%s queued=%s pendingEvents=%s)",
6585
7004
  inProgress,
6586
7005
  queued,
@@ -6589,7 +7008,7 @@ function createDiscoveryGate(s, debug11) {
6589
7008
  return;
6590
7009
  }
6591
7010
  gatePending = false;
6592
- debug11?.("hmr: discoveryDone resolved");
7011
+ debug12?.("hmr: discoveryDone resolved");
6593
7012
  gateResolver();
6594
7013
  };
6595
7014
  const noteRouteEvent = () => {
@@ -6599,7 +7018,7 @@ function createDiscoveryGate(s, debug11) {
6599
7018
  const runRefreshCycle = async (work) => {
6600
7019
  if (inProgress) {
6601
7020
  queued = true;
6602
- debug11?.("hmr: rediscovery in flight \u2014 queued for a follow-up cycle");
7021
+ debug12?.("hmr: rediscovery in flight \u2014 queued for a follow-up cycle");
6603
7022
  return;
6604
7023
  }
6605
7024
  pendingEvents = false;
@@ -6610,16 +7029,16 @@ function createDiscoveryGate(s, debug11) {
6610
7029
  inProgress = false;
6611
7030
  if (queued) {
6612
7031
  queued = false;
6613
- debug11?.("hmr: consuming queued rediscovery");
7032
+ debug12?.("hmr: consuming queued rediscovery");
6614
7033
  runRefreshCycle(work).catch((err) => {
6615
- debug11?.(
7034
+ debug12?.(
6616
7035
  "hmr: queued cycle rejected \u2014 releasing gate (%s)",
6617
7036
  err instanceof Error ? err.message : String(err)
6618
7037
  );
6619
7038
  resolveGate();
6620
7039
  });
6621
7040
  } else if (pendingEvents) {
6622
- debug11?.(
7041
+ debug12?.(
6623
7042
  "hmr: holding gate for pending events (debounce not yet fired)"
6624
7043
  );
6625
7044
  } else {
@@ -6665,15 +7084,15 @@ function selectForwardableResolvePlugins(plugins) {
6665
7084
  }
6666
7085
  function pickForwardedRunnerConfig(config) {
6667
7086
  const r = config.resolve ?? {};
6668
- const resolve12 = {};
6669
- if (r.alias !== void 0) resolve12.alias = r.alias;
6670
- if (r.dedupe !== void 0) resolve12.dedupe = r.dedupe;
6671
- if (r.conditions !== void 0) resolve12.conditions = r.conditions;
6672
- if (r.mainFields !== void 0) resolve12.mainFields = r.mainFields;
6673
- if (r.extensions !== void 0) resolve12.extensions = r.extensions;
7087
+ const resolve13 = {};
7088
+ if (r.alias !== void 0) resolve13.alias = r.alias;
7089
+ if (r.dedupe !== void 0) resolve13.dedupe = r.dedupe;
7090
+ if (r.conditions !== void 0) resolve13.conditions = r.conditions;
7091
+ if (r.mainFields !== void 0) resolve13.mainFields = r.mainFields;
7092
+ if (r.extensions !== void 0) resolve13.extensions = r.extensions;
6674
7093
  if (r.preserveSymlinks !== void 0)
6675
- resolve12.preserveSymlinks = r.preserveSymlinks;
6676
- if (r.tsconfigPaths !== void 0) resolve12.tsconfigPaths = r.tsconfigPaths;
7094
+ resolve13.preserveSymlinks = r.preserveSymlinks;
7095
+ if (r.tsconfigPaths !== void 0) resolve13.tsconfigPaths = r.tsconfigPaths;
6677
7096
  const userOxc = config.oxc;
6678
7097
  const userJsx = userOxc && typeof userOxc === "object" && typeof userOxc.jsx === "object" && userOxc.jsx !== null ? userOxc.jsx : {};
6679
7098
  const oxc = userOxc && typeof userOxc === "object" ? {
@@ -6681,13 +7100,14 @@ function pickForwardedRunnerConfig(config) {
6681
7100
  jsx: { ...userJsx, runtime: "automatic", importSource: "react" }
6682
7101
  } : { jsx: { runtime: "automatic", importSource: "react" } };
6683
7102
  return {
6684
- resolve: resolve12,
7103
+ resolve: resolve13,
6685
7104
  define: config.define,
6686
7105
  oxc
6687
7106
  };
6688
7107
  }
6689
7108
 
6690
7109
  // src/vite/router-discovery.ts
7110
+ init_debug();
6691
7111
  var debugDiscovery = createRangoDebugger(NS.discovery);
6692
7112
  var debugRoutes = createRangoDebugger(NS.routes);
6693
7113
  var debugBuild = createRangoDebugger(NS.build);
@@ -6706,6 +7126,7 @@ function ensureCloudflareProtocolLoaderRegistered() {
6706
7126
  );
6707
7127
  }
6708
7128
  }
7129
+ var injectedShellNotReadyPaths = /* @__PURE__ */ new Set();
6709
7130
  async function createTempRscServer(state, options = {}) {
6710
7131
  ensureCloudflareProtocolLoaderRegistered();
6711
7132
  const { default: rsc } = await import("@vitejs/plugin-rsc");
@@ -6737,6 +7158,20 @@ async function createTempRscServer(state, options = {}) {
6737
7158
  // hashClientRefs only in build mode — production bundles need hashed refs
6738
7159
  ...options.forceBuild ? [hashClientRefs(state.projectRoot)] : [],
6739
7160
  createVersionPlugin(),
7161
+ // Before the stub plugin, so "virtual:entry-ssr" resolves to the real
7162
+ // SSR entry when the shell endpoint needs it (see the option doc).
7163
+ ...options.realSsrEntry ? [
7164
+ {
7165
+ name: "@rangojs/router:temp-real-ssr-entry",
7166
+ enforce: "pre",
7167
+ resolveId(id) {
7168
+ return id === "virtual:entry-ssr" ? "\0rango-temp-real-ssr-entry" : null;
7169
+ },
7170
+ load(id) {
7171
+ return id === "\0rango-temp-real-ssr-entry" ? getVirtualEntrySSR(state.opts?.headScripts) : null;
7172
+ }
7173
+ }
7174
+ ] : [],
6740
7175
  createVirtualStubPlugin(),
6741
7176
  createCloudflareProtocolStubPlugin(),
6742
7177
  // Dev prerender must use dev-mode IDs (path-based) to match the workerd
@@ -6760,7 +7195,7 @@ async function resolveBuildEnv(option, factoryCtx) {
6760
7195
  }
6761
7196
  try {
6762
7197
  const userRequire = createRequire3(
6763
- resolve10(factoryCtx.root, "package.json")
7198
+ resolve11(factoryCtx.root, "package.json")
6764
7199
  );
6765
7200
  const wranglerPath = userRequire.resolve("wrangler");
6766
7201
  const { getPlatformProxy } = await import(pathToFileURL2(wranglerPath).href);
@@ -6797,6 +7232,12 @@ async function acquireBuildEnv(s, command, mode) {
6797
7232
  globalThis[BUILD_ENV_GLOBAL_KEY] = result.env;
6798
7233
  return true;
6799
7234
  }
7235
+ function resetPrerenderCollection(s) {
7236
+ s.prerenderManifestEntries = null;
7237
+ s.staticManifestEntries = null;
7238
+ s.shellCandidates = null;
7239
+ s.prerenderPayloadValues = null;
7240
+ }
6800
7241
  async function releaseBuildEnv(s) {
6801
7242
  if (s.buildEnvDispose) {
6802
7243
  try {
@@ -6861,8 +7302,8 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
6861
7302
  s.devServer = server;
6862
7303
  server.middlewares.use(internalDebugNoCacheMiddleware());
6863
7304
  let resolveDiscovery;
6864
- const discoveryPromise = new Promise((resolve12) => {
6865
- resolveDiscovery = resolve12;
7305
+ const discoveryPromise = new Promise((resolve13) => {
7306
+ resolveDiscovery = resolve13;
6866
7307
  });
6867
7308
  const gate = createDiscoveryGate(s, debugDiscovery);
6868
7309
  const beginDiscoveryGate = gate.beginGate;
@@ -6918,14 +7359,14 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
6918
7359
  debugDiscovery?.(
6919
7360
  "getOrCreateTempServer: cached temp runner reused"
6920
7361
  );
6921
- return existingEnv;
7362
+ return { env: existingEnv, error: null };
6922
7363
  }
6923
7364
  debugDiscovery?.(
6924
7365
  "getOrCreateTempServer: server alive but registry missing \u2014 re-importing"
6925
7366
  );
6926
7367
  try {
6927
7368
  await importEntryAndRegistry(existingEnv);
6928
- return existingEnv;
7369
+ return { env: existingEnv, error: null };
6929
7370
  } catch (err) {
6930
7371
  debugDiscovery?.(
6931
7372
  "getOrCreateTempServer: reuse import failed (%s) \u2014 closing orphan and creating fresh",
@@ -6950,19 +7391,25 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
6950
7391
  "getOrCreateTempServer: creating new temp server, entry=%s",
6951
7392
  s.resolvedEntryPath ?? "(unset)"
6952
7393
  );
7394
+ let createError = null;
6953
7395
  try {
6954
7396
  prerenderTempServer = await createTempRscServer(s, {
6955
- cacheDir: "node_modules/.vite_prerender"
7397
+ cacheDir: "node_modules/.vite_prerender",
7398
+ // The dev /__rsc_shell endpoint drives captureShellHTML in this
7399
+ // server's SSR realm; the entry is only imported when a shell
7400
+ // capture runs, so discovery cost is unchanged.
7401
+ realSsrEntry: true
6956
7402
  });
6957
7403
  const tempRscEnv = prerenderTempServer.environments?.rsc;
6958
7404
  if (tempRscEnv?.runner) {
6959
7405
  await importEntryAndRegistry(tempRscEnv);
6960
- return tempRscEnv;
7406
+ return { env: tempRscEnv, error: null };
6961
7407
  }
6962
7408
  debugDiscovery?.(
6963
7409
  "getOrCreateTempServer: tempRscEnv.runner unavailable"
6964
7410
  );
6965
7411
  } catch (err) {
7412
+ createError = err;
6966
7413
  debugDiscovery?.(
6967
7414
  "getOrCreateTempServer: FAILED message=%s",
6968
7415
  err.message
@@ -6973,7 +7420,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
6973
7420
  });
6974
7421
  prerenderTempServer = null;
6975
7422
  prerenderNodeRegistry = null;
6976
- return null;
7423
+ return { env: null, error: createError };
6977
7424
  }
6978
7425
  async function clearTempRegistries(tempRscEnv) {
6979
7426
  try {
@@ -6997,7 +7444,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
6997
7444
  }
6998
7445
  }
6999
7446
  async function refreshTempRscEnv() {
7000
- let tempRscEnv = await getOrCreateTempServer();
7447
+ const tempRscEnv = (await getOrCreateTempServer()).env;
7001
7448
  if (!tempRscEnv) return null;
7002
7449
  const envGraph = tempRscEnv.moduleGraph;
7003
7450
  const serverGraph = prerenderTempServer?.moduleGraph;
@@ -7012,7 +7459,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
7012
7459
  prerenderTempServer = null;
7013
7460
  prerenderNodeRegistry = null;
7014
7461
  }
7015
- return await getOrCreateTempServer();
7462
+ return (await getOrCreateTempServer()).env;
7016
7463
  }
7017
7464
  debugDiscovery?.(
7018
7465
  "refreshTempRscEnv: invalidating module graph (%s)",
@@ -7050,11 +7497,11 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
7050
7497
  "acquireBuildEnv",
7051
7498
  () => acquireBuildEnv(s, viteCommand, viteMode)
7052
7499
  );
7053
- tempRscEnv = await timed(
7500
+ tempRscEnv = (await timed(
7054
7501
  debugDiscovery,
7055
7502
  "getOrCreateTempServer",
7056
7503
  () => getOrCreateTempServer()
7057
- );
7504
+ )).env;
7058
7505
  if (tempRscEnv) {
7059
7506
  optimizerHashBefore2 = tempRscEnv.depsOptimizer?.metadata?.browserHash;
7060
7507
  await timed(
@@ -7199,7 +7646,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
7199
7646
  registry = mainRegistry;
7200
7647
  }
7201
7648
  if (!registry) {
7202
- const tempRscEnv = await getOrCreateTempServer();
7649
+ const tempRscEnv = (await getOrCreateTempServer()).env;
7203
7650
  if (tempRscEnv) {
7204
7651
  try {
7205
7652
  await importEntryAndRegistry(tempRscEnv);
@@ -7284,6 +7731,194 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
7284
7731
  res.end("No prerender match");
7285
7732
  logResult(404, "no match");
7286
7733
  });
7734
+ server.middlewares.use("/__rsc_shell", async (req, res) => {
7735
+ await s.discoveryDone;
7736
+ const url = new URL(req.url ?? "", "http://localhost");
7737
+ const pathname = url.searchParams.get("pathname");
7738
+ const routeName = url.searchParams.get("routeName");
7739
+ const version = url.searchParams.get("version");
7740
+ const ttlRaw = url.searchParams.get("ttl");
7741
+ if (!pathname || !routeName || !version || !ttlRaw) {
7742
+ res.statusCode = 400;
7743
+ res.end("Missing pathname/routeName/version/ttl");
7744
+ return;
7745
+ }
7746
+ const sendNotReady = (detail) => {
7747
+ res.statusCode = 503;
7748
+ res.setHeader("x-rango-shell-dev", "NOT-READY");
7749
+ res.end(detail);
7750
+ };
7751
+ const isReoptimizing = (err) => err?.code === "ERR_OUTDATED_OPTIMIZED_DEP" || /Outdated Optimize Dep|optimized dependency|new dependencies optimized/i.test(
7752
+ String(err?.message ?? "")
7753
+ );
7754
+ const handledAsReoptimizing = (err) => {
7755
+ if (!isReoptimizing(err)) return false;
7756
+ sendNotReady(`Shell capture re-optimizing: ${err.message}`);
7757
+ return true;
7758
+ };
7759
+ const handleShellImportError = (err) => {
7760
+ if (handledAsReoptimizing(err)) return;
7761
+ res.statusCode = 500;
7762
+ res.end(`Shell capture module refresh failed: ${err.message}`);
7763
+ };
7764
+ if (process.env.RANGO_E2E_INJECT_SHELL_NOTREADY === "1" && !injectedShellNotReadyPaths.has(pathname)) {
7765
+ injectedShellNotReadyPaths.add(pathname);
7766
+ const injected = Object.assign(
7767
+ new Error("Outdated Optimize Dep (injected boot-race)"),
7768
+ { code: "ERR_OUTDATED_OPTIMIZED_DEP" }
7769
+ );
7770
+ if (handledAsReoptimizing(injected)) return;
7771
+ }
7772
+ const ttl = Number(ttlRaw);
7773
+ const swrRaw = url.searchParams.get("swr");
7774
+ const swr = swrRaw === null ? void 0 : Number(swrRaw);
7775
+ const tagsRaw = url.searchParams.get("tags");
7776
+ const tags = tagsRaw ? tagsRaw.split(",") : void 0;
7777
+ const maxSnapshotBytesRaw = url.searchParams.get("maxSnapshotBytes");
7778
+ const maxSnapshotBytes = maxSnapshotBytesRaw === null ? void 0 : Number(maxSnapshotBytesRaw);
7779
+ const captureTimeout = normalizeCaptureTimeout(
7780
+ Number(url.searchParams.get("captureTimeout"))
7781
+ );
7782
+ const rscEnvMain = server.environments?.rsc;
7783
+ let rscRealm = null;
7784
+ let ssrRealm = null;
7785
+ let ssrEntryId;
7786
+ let tempServerError = null;
7787
+ if (rscEnvMain?.runner && s.resolvedEntryPath) {
7788
+ try {
7789
+ await rscEnvMain.runner.import(s.resolvedEntryPath);
7790
+ } catch (err) {
7791
+ handleShellImportError(err);
7792
+ return;
7793
+ }
7794
+ rscRealm = rscEnvMain;
7795
+ ssrRealm = server.environments?.ssr;
7796
+ ssrEntryId = server.environments?.ssr?.config?.build?.rollupOptions?.input?.index ?? VIRTUAL_IDS.ssr;
7797
+ } else {
7798
+ const tempResult = await getOrCreateTempServer();
7799
+ if (tempResult.env) {
7800
+ try {
7801
+ await importEntryAndRegistry(tempResult.env);
7802
+ } catch (err) {
7803
+ handleShellImportError(err);
7804
+ return;
7805
+ }
7806
+ } else {
7807
+ tempServerError = tempResult.error;
7808
+ }
7809
+ rscRealm = tempResult.env;
7810
+ ssrRealm = prerenderTempServer?.environments?.ssr;
7811
+ ssrEntryId = "virtual:entry-ssr";
7812
+ }
7813
+ if (!rscRealm?.runner || !ssrRealm?.runner) {
7814
+ if (tempServerError && handledAsReoptimizing(tempServerError)) return;
7815
+ res.statusCode = 503;
7816
+ res.end("Shell capture runners not available");
7817
+ return;
7818
+ }
7819
+ let registry = null;
7820
+ let registryError = null;
7821
+ try {
7822
+ const serverMod = await rscRealm.runner.import(
7823
+ "@rangojs/router/server"
7824
+ );
7825
+ registry = serverMod.RouterRegistry ?? null;
7826
+ } catch (err) {
7827
+ registryError = err;
7828
+ registry = null;
7829
+ }
7830
+ if (!registry || registry.size === 0) {
7831
+ if (registryError && handledAsReoptimizing(registryError)) return;
7832
+ res.statusCode = 503;
7833
+ res.end("Shell capture registry not available");
7834
+ return;
7835
+ }
7836
+ const cacheKey = `shell|${pathname}|r=${routeName}|t=${ttl}|s=${swr ?? ""}|g=${(tags ?? []).join("+")}|c=${captureTimeout ?? ""}|v=${version}`;
7837
+ for (const [, routerInstance] of registry) {
7838
+ if (typeof routerInstance.match !== "function") continue;
7839
+ const cached = devPrerenderCache.get(routerInstance, cacheKey);
7840
+ if (cached !== void 0) {
7841
+ res.setHeader("content-type", "application/json");
7842
+ res.setHeader("x-rango-shell-dev", "HIT");
7843
+ res.end(cached);
7844
+ return;
7845
+ }
7846
+ }
7847
+ if (s.devServerOrigin) {
7848
+ try {
7849
+ const probe = await fetch(
7850
+ `${s.devServerOrigin}/__rsc_prerender?pathname=${encodeURIComponent(pathname)}&routeName=${encodeURIComponent(routeName)}`,
7851
+ { signal: AbortSignal.timeout(DEV_SHELL_PROBE_TIMEOUT_MS) }
7852
+ );
7853
+ if (!probe.ok) {
7854
+ res.statusCode = 404;
7855
+ res.end("Route is not prerenderable");
7856
+ return;
7857
+ }
7858
+ } catch {
7859
+ res.statusCode = 404;
7860
+ res.end("Prerender pre-flight failed");
7861
+ return;
7862
+ }
7863
+ }
7864
+ for (const [, routerInstance] of registry) {
7865
+ if (typeof routerInstance.match !== "function") continue;
7866
+ try {
7867
+ const ssrModule = await ssrRealm.runner.import(ssrEntryId);
7868
+ if (typeof ssrModule?.captureShellHTML !== "function") {
7869
+ res.statusCode = 404;
7870
+ res.end("SSR entry has no captureShellHTML");
7871
+ return;
7872
+ }
7873
+ const captureMod = await rscRealm.runner.import(
7874
+ "@rangojs/router/build/shell-capture"
7875
+ );
7876
+ const result = await captureMod.captureShellForBuild({
7877
+ router: routerInstance,
7878
+ urlPath: pathname,
7879
+ routeName,
7880
+ key: `${pathname}:shell`,
7881
+ ttl,
7882
+ swr,
7883
+ tags,
7884
+ maxSnapshotBytes,
7885
+ captureTimeout,
7886
+ buildEnv: s.resolvedBuildEnv,
7887
+ buildVersion: version,
7888
+ captureShellHTML: ssrModule.captureShellHTML,
7889
+ debug: !!debugDiscovery
7890
+ });
7891
+ if (result.outcome === "route-mismatch") continue;
7892
+ if (result.outcome !== "stored" || !result.entry) {
7893
+ res.statusCode = 404;
7894
+ res.end(`Shell capture ${result.outcome}`);
7895
+ return;
7896
+ }
7897
+ const body = JSON.stringify({
7898
+ entry: result.entry,
7899
+ ttl,
7900
+ swr,
7901
+ tags: result.tags,
7902
+ routeName
7903
+ });
7904
+ devPrerenderCache.set(routerInstance, cacheKey, body);
7905
+ res.setHeader("content-type", "application/json");
7906
+ res.setHeader("x-rango-shell-dev", "MISS");
7907
+ res.end(body);
7908
+ return;
7909
+ } catch (err) {
7910
+ if (handledAsReoptimizing(err)) return;
7911
+ console.warn(
7912
+ `[rango] Dev shell capture error for ${pathname} (route keeps runtime capture): ${err.message}`
7913
+ );
7914
+ res.statusCode = 404;
7915
+ res.end(`Shell capture error: ${err.message}`);
7916
+ return;
7917
+ }
7918
+ }
7919
+ res.statusCode = 404;
7920
+ res.end("No router matched");
7921
+ });
7287
7922
  if (opts?.staticRouteTypesGeneration !== false) {
7288
7923
  const isGeneratedRouteFile = (filePath) => filePath.endsWith(".gen.ts") && (filePath.includes("named-routes.gen.ts") || filePath.includes("urls.gen.ts"));
7289
7924
  const regenerateGeneratedRouteFiles = () => {
@@ -7453,7 +8088,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
7453
8088
  }
7454
8089
  const inRecoveryMode = !!s.lastDiscoveryError;
7455
8090
  try {
7456
- const source = readFileSync6(filePath, "utf-8");
8091
+ const source = readFileSync7(filePath, "utf-8");
7457
8092
  const trimmed = source.trimStart();
7458
8093
  const isUseClient = trimmed.startsWith('"use client"') || trimmed.startsWith("'use client'");
7459
8094
  if (!inRecoveryMode && isUseClient) return;
@@ -7484,7 +8119,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
7484
8119
  if (hasCreateRouter) {
7485
8120
  const nestedRouterConflict = findNestedRouterConflict([
7486
8121
  ...s.cachedRouterFiles ?? [],
7487
- resolve10(filePath)
8122
+ resolve11(filePath)
7488
8123
  ]);
7489
8124
  if (nestedRouterConflict) {
7490
8125
  server.config.logger.error(
@@ -7534,8 +8169,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
7534
8169
  const buildStartTime = performance.now();
7535
8170
  debugDiscovery?.("build: start (env=%s)", this.environment?.name ?? "?");
7536
8171
  resetStagedBuildAssets(s.projectRoot);
7537
- s.prerenderManifestEntries = null;
7538
- s.staticManifestEntries = null;
8172
+ resetPrerenderCollection(s);
7539
8173
  await timed(
7540
8174
  debugDiscovery,
7541
8175
  "build acquireBuildEnv",
@@ -7590,20 +8224,59 @@ ${details}`,
7590
8224
  );
7591
8225
  } finally {
7592
8226
  delete globalThis.__rscRouterDiscoveryActive;
7593
- if (tempServer) {
7594
- await timed(
7595
- debugDiscovery,
7596
- "build tempServer.close",
7597
- () => tempServer.close()
7598
- );
8227
+ if (tempServer && s.shellCandidates?.length) {
8228
+ s.shellPhaseTempServer = tempServer;
8229
+ } else {
8230
+ if (tempServer) {
8231
+ await timed(
8232
+ debugDiscovery,
8233
+ "build tempServer.close",
8234
+ () => tempServer.close()
8235
+ );
8236
+ }
8237
+ await releaseBuildEnv(s);
7599
8238
  }
7600
- await releaseBuildEnv(s);
7601
8239
  debugDiscovery?.(
7602
8240
  "build discovery done (%sms)",
7603
8241
  (performance.now() - buildStartTime).toFixed(1)
7604
8242
  );
7605
8243
  }
7606
8244
  },
8245
+ // Post-build PPR shell capture (producer B, #699): runs after EVERY
8246
+ // environment bundle is written — the shell prelude embeds built client
8247
+ // asset URLs (bootstrap entry), which do not exist at buildStart. The
8248
+ // kept temp server and the buildEnv were deferred AS A PAIR in
8249
+ // buildStart's finally; this finally is the pair's success-path owner
8250
+ // (buildEnd below owns the aborted-build path) — the phase itself is a
8251
+ // pure producer and tears down only the globals it installs.
8252
+ buildApp: {
8253
+ order: "post",
8254
+ async handler(builder) {
8255
+ try {
8256
+ await runShellPrerenderPhase(s, builder);
8257
+ } finally {
8258
+ if (s.isBuildMode) {
8259
+ const tempServer = s.shellPhaseTempServer;
8260
+ s.shellPhaseTempServer = null;
8261
+ if (tempServer) await tempServer.close();
8262
+ await releaseBuildEnv(s);
8263
+ }
8264
+ }
8265
+ }
8266
+ },
8267
+ // An environment build failure aborts the builder before the buildApp
8268
+ // post hook — never leak the kept temp server (open handles hang the CLI)
8269
+ // or the deferred buildEnv (a live miniflare proxy).
8270
+ async buildEnd(error) {
8271
+ if (!error || !s.shellPhaseTempServer) return;
8272
+ const tempServer = s.shellPhaseTempServer;
8273
+ s.shellPhaseTempServer = null;
8274
+ try {
8275
+ await tempServer.close();
8276
+ } finally {
8277
+ await releaseBuildEnv(s);
8278
+ }
8279
+ },
7607
8280
  // Suppress vite's HMR cascade for our own gen-file writes.
7608
8281
  //
7609
8282
  // After every cf HMR cycle, refreshTempRscEnv → writeRouteTypesFiles
@@ -7768,7 +8441,9 @@ ${details}`,
7768
8441
  }
7769
8442
 
7770
8443
  // src/vite/rango.ts
8444
+ init_debug();
7771
8445
  var debugConfig = createRangoDebugger(NS.config);
8446
+ var SERVER_BUILD_TARGET = "esnext";
7772
8447
  async function rango(options) {
7773
8448
  const rangoStart = performance.now();
7774
8449
  const resolvedOptions = options ?? { preset: "node" };
@@ -7893,7 +8568,11 @@ async function rango(options) {
7893
8568
  }
7894
8569
  }
7895
8570
  });
7896
- plugins.push(createVirtualEntriesPlugin(finalEntries));
8571
+ plugins.push(
8572
+ createVirtualEntriesPlugin(finalEntries, void 0, {
8573
+ headScripts: resolvedOptions.headScripts
8574
+ })
8575
+ );
7897
8576
  plugins.push(performanceTracksPlugin());
7898
8577
  plugins.push(
7899
8578
  rsc({
@@ -7908,14 +8587,14 @@ async function rango(options) {
7908
8587
  name: "@rangojs/router:auto-discover",
7909
8588
  config(userConfig) {
7910
8589
  if (routerRef.path) return;
7911
- const root = userConfig.root ? resolve11(process.cwd(), userConfig.root) : process.cwd();
8590
+ const root = userConfig.root ? resolve12(process.cwd(), userConfig.root) : process.cwd();
7912
8591
  const toRootRelative = (abs) => (abs.startsWith(root) ? "./" + abs.slice(root.length + 1) : abs).replaceAll("\\", "/");
7913
8592
  const bulletList = (files) => files.map((f) => " - " + toRootRelative(f)).join("\n");
7914
8593
  if (explicitHostRouter) {
7915
8594
  routerRef.path = normalizeHostRouterEntry(
7916
8595
  explicitHostRouter,
7917
8596
  root,
7918
- existsSync8
8597
+ existsSync9
7919
8598
  );
7920
8599
  routerRef.kind = "host";
7921
8600
  return;
@@ -8012,6 +8691,9 @@ If this is a multi-app host router, export a createHostRouter() instance and set
8012
8691
  },
8013
8692
  ssr: {
8014
8693
  ...vercelServerEnv ?? {},
8694
+ build: {
8695
+ target: SERVER_BUILD_TARGET
8696
+ },
8015
8697
  optimizeDeps: {
8016
8698
  entries: [VIRTUAL_IDS.ssr],
8017
8699
  include: [
@@ -8031,6 +8713,9 @@ If this is a multi-app host router, export a createHostRouter() instance and set
8031
8713
  },
8032
8714
  rsc: {
8033
8715
  ...vercelServerEnv ?? {},
8716
+ build: {
8717
+ target: SERVER_BUILD_TARGET
8718
+ },
8034
8719
  optimizeDeps: {
8035
8720
  entries: [VIRTUAL_IDS.rsc],
8036
8721
  include: [
@@ -8073,7 +8758,11 @@ If this is a multi-app host router, export a createHostRouter() instance and set
8073
8758
  }
8074
8759
  }
8075
8760
  });
8076
- plugins.push(createVirtualEntriesPlugin(finalEntries, routerRef));
8761
+ plugins.push(
8762
+ createVirtualEntriesPlugin(finalEntries, routerRef, {
8763
+ headScripts: resolvedOptions.headScripts
8764
+ })
8765
+ );
8077
8766
  plugins.push(performanceTracksPlugin());
8078
8767
  plugins.push(
8079
8768
  rsc({
@@ -8092,7 +8781,7 @@ If this is a multi-app host router, export a createHostRouter() instance and set
8092
8781
  if (!file.endsWith(".tsx") && !file.endsWith(".ts") && !file.endsWith(".jsx") && !file.endsWith(".js"))
8093
8782
  return;
8094
8783
  try {
8095
- const source = readFileSync7(file, "utf-8");
8784
+ const source = readFileSync8(file, "utf-8");
8096
8785
  if (hasUseClientDirective(source)) {
8097
8786
  return [];
8098
8787
  }
@@ -8119,7 +8808,8 @@ If this is a multi-app host router, export a createHostRouter() instance and set
8119
8808
  preset,
8120
8809
  prerenderOnError: options?.prerender?.onError,
8121
8810
  discovery: options?.discovery,
8122
- clientChunkCtx
8811
+ clientChunkCtx,
8812
+ headScripts: resolvedOptions.headScripts
8123
8813
  })
8124
8814
  );
8125
8815
  if (preset === "vercel") {
@@ -8143,7 +8833,7 @@ function poke() {
8143
8833
  apply: "serve",
8144
8834
  configureServer(server) {
8145
8835
  const stdin = process.stdin;
8146
- const debug11 = process.env.RANGO_POKE_DEBUG === "1";
8836
+ const debug12 = process.env.RANGO_POKE_DEBUG === "1";
8147
8837
  const triggerReload = (source) => {
8148
8838
  server.hot.send({ type: "full-reload", path: "*" });
8149
8839
  server.config.logger.info(` browser reload (${source})`, {
@@ -8176,7 +8866,7 @@ function poke() {
8176
8866
  lines.pop();
8177
8867
  return lines;
8178
8868
  };
8179
- if (debug11) {
8869
+ if (debug12) {
8180
8870
  server.config.logger.info(
8181
8871
  ` poke debug enabled (isTTY=${stdin.isTTY ? "yes" : "no"}, isRaw=${stdin.isTTY ? stdin.isRaw ? "yes" : "no" : "n/a"})`,
8182
8872
  { timestamp: true }
@@ -8189,7 +8879,7 @@ function poke() {
8189
8879
  );
8190
8880
  }
8191
8881
  const onData = (data) => {
8192
- if (debug11) {
8882
+ if (debug12) {
8193
8883
  server.config.logger.info(` poke stdin ${formatChunk(data)}`, {
8194
8884
  timestamp: true
8195
8885
  });