@rangojs/router 0.0.0-experimental.35 → 0.0.0-experimental.358c376d

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 (1311) hide show
  1. package/AGENTS.md +11 -3
  2. package/README.md +320 -735
  3. package/dist/bin/rango.js +983 -241
  4. package/dist/testing/vitest.js +82 -0
  5. package/dist/types/__internal.d.ts +127 -0
  6. package/dist/types/bin/rango.d.ts +1 -0
  7. package/dist/types/browser/action-coordinator.d.ts +57 -0
  8. package/dist/types/browser/action-fence.d.ts +33 -0
  9. package/dist/types/browser/app-shell.d.ts +34 -0
  10. package/dist/types/browser/app-version.d.ts +6 -0
  11. package/dist/types/browser/connection-warmup.d.ts +31 -0
  12. package/dist/types/browser/cookie-name.d.ts +66 -0
  13. package/dist/types/browser/dev-discovery.d.ts +11 -0
  14. package/dist/types/browser/event-controller.d.ts +231 -0
  15. package/dist/types/browser/history-state.d.ts +26 -0
  16. package/dist/types/browser/index.d.ts +1 -0
  17. package/dist/types/browser/intercept-utils.d.ts +30 -0
  18. package/dist/types/browser/invalidate-client-cache.d.ts +17 -0
  19. package/dist/types/browser/link-interceptor.d.ts +53 -0
  20. package/dist/types/browser/logging.d.ts +33 -0
  21. package/dist/types/browser/merge-segment-loaders.d.ts +38 -0
  22. package/dist/types/browser/navigation-bridge.d.ts +39 -0
  23. package/dist/types/browser/navigation-client.d.ts +17 -0
  24. package/dist/types/browser/navigation-store-handle.d.ts +25 -0
  25. package/dist/types/browser/navigation-store.d.ts +85 -0
  26. package/dist/types/browser/navigation-transaction.d.ts +75 -0
  27. package/dist/types/browser/network-error-handler.d.ts +35 -0
  28. package/dist/types/browser/notify-listeners.d.ts +2 -0
  29. package/dist/types/browser/partial-update.d.ts +61 -0
  30. package/dist/types/browser/prefetch/cache.d.ts +224 -0
  31. package/dist/types/browser/prefetch/default-strategy.d.ts +31 -0
  32. package/dist/types/browser/prefetch/fetch.d.ts +52 -0
  33. package/dist/types/browser/prefetch/invalidation.d.ts +6 -0
  34. package/dist/types/browser/prefetch/loader.d.ts +12 -0
  35. package/dist/types/browser/prefetch/observer.d.ts +24 -0
  36. package/dist/types/browser/prefetch/policy.d.ts +13 -0
  37. package/dist/types/browser/prefetch/queue.d.ts +48 -0
  38. package/dist/types/browser/prefetch/resource-ready.d.ts +28 -0
  39. package/dist/types/browser/prefetch/runtime.d.ts +2 -0
  40. package/dist/types/browser/rango-state.d.ts +56 -0
  41. package/dist/types/browser/react/Link.d.ts +132 -0
  42. package/dist/types/browser/react/NavigationProvider.d.ts +88 -0
  43. package/dist/types/browser/react/ScrollRestoration.d.ts +78 -0
  44. package/dist/types/browser/react/context.d.ts +57 -0
  45. package/dist/types/browser/react/filter-segment-order.d.ts +35 -0
  46. package/dist/types/browser/react/index.d.ts +1 -0
  47. package/dist/types/browser/react/location-state-shared.d.ts +162 -0
  48. package/dist/types/browser/react/location-state.d.ts +29 -0
  49. package/dist/types/browser/react/mount-context.d.ts +23 -0
  50. package/dist/types/browser/react/nonce-context.d.ts +14 -0
  51. package/dist/types/browser/react/shallow-equal.d.ts +5 -0
  52. package/dist/types/browser/react/use-action.d.ts +61 -0
  53. package/dist/types/browser/react/use-handle.d.ts +21 -0
  54. package/dist/types/browser/react/use-href.d.ts +32 -0
  55. package/dist/types/browser/react/use-link-status.d.ts +36 -0
  56. package/dist/types/browser/react/use-mount.d.ts +24 -0
  57. package/dist/types/browser/react/use-navigation.d.ts +15 -0
  58. package/dist/types/browser/react/use-params.d.ts +21 -0
  59. package/dist/types/browser/react/use-pathname.d.ts +13 -0
  60. package/dist/types/browser/react/use-reverse.d.ts +40 -0
  61. package/dist/types/browser/react/use-router.d.ts +23 -0
  62. package/dist/types/browser/react/use-search-params.d.ts +19 -0
  63. package/dist/types/browser/react/use-segments.d.ts +29 -0
  64. package/dist/types/browser/response-adapter.d.ts +58 -0
  65. package/dist/types/browser/rsc-router.d.ts +146 -0
  66. package/dist/types/browser/scroll-restoration.d.ts +103 -0
  67. package/dist/types/browser/segment-reconciler.d.ts +74 -0
  68. package/dist/types/browser/segment-structure-assert.d.ts +16 -0
  69. package/dist/types/browser/server-action-bridge.d.ts +29 -0
  70. package/dist/types/browser/types.d.ts +546 -0
  71. package/dist/types/browser/validate-redirect-origin.d.ts +28 -0
  72. package/dist/types/build/collect-fallback-refs.d.ts +5 -0
  73. package/dist/types/build/generate-manifest.d.ts +106 -0
  74. package/dist/types/build/generate-route-types.d.ts +8 -0
  75. package/dist/types/build/index.d.ts +21 -0
  76. package/dist/types/build/merge-full-manifests.d.ts +3 -0
  77. package/dist/types/build/prefix-tree-utils.d.ts +56 -0
  78. package/dist/types/build/route-trie.d.ts +20 -0
  79. package/dist/types/build/route-types/ast-helpers.d.ts +3 -0
  80. package/dist/types/build/route-types/ast-route-extraction.d.ts +13 -0
  81. package/dist/types/build/route-types/codegen.d.ts +16 -0
  82. package/dist/types/build/route-types/include-resolution.d.ts +74 -0
  83. package/dist/types/build/route-types/param-extraction.d.ts +13 -0
  84. package/dist/types/build/route-types/per-module-writer.d.ts +20 -0
  85. package/dist/types/build/route-types/router-processing.d.ts +81 -0
  86. package/dist/types/build/route-types/scan-filter.d.ts +17 -0
  87. package/dist/types/build/route-types/source-scan.d.ts +13 -0
  88. package/dist/types/build/runtime-discovery.d.ts +24 -0
  89. package/dist/types/cache/background-task.d.ts +21 -0
  90. package/dist/types/cache/cache-error.d.ts +71 -0
  91. package/dist/types/cache/cache-exec-scope.d.ts +31 -0
  92. package/dist/types/cache/cache-key-utils.d.ts +43 -0
  93. package/dist/types/cache/cache-policy.d.ts +59 -0
  94. package/dist/types/cache/cache-runtime.d.ts +51 -0
  95. package/dist/types/cache/cache-scope.d.ts +215 -0
  96. package/dist/types/cache/cache-tag.d.ts +79 -0
  97. package/dist/types/cache/cf/cf-base64.d.ts +4 -0
  98. package/dist/types/cache/cf/cf-cache-constants.d.ts +112 -0
  99. package/dist/types/cache/cf/cf-cache-store.d.ts +616 -0
  100. package/dist/types/cache/cf/cf-cache-types.d.ts +365 -0
  101. package/dist/types/cache/cf/cf-kv-utils.d.ts +43 -0
  102. package/dist/types/cache/cf/cf-tag-marker-memo.d.ts +15 -0
  103. package/dist/types/cache/cf/cf-zone-purge.d.ts +31 -0
  104. package/dist/types/cache/cf/index.d.ts +4 -0
  105. package/dist/types/cache/document-cache.d.ts +71 -0
  106. package/dist/types/cache/handle-capture.d.ts +23 -0
  107. package/dist/types/cache/handle-snapshot.d.ts +39 -0
  108. package/dist/types/cache/index.d.ts +9 -0
  109. package/dist/types/cache/memory-segment-store.d.ts +163 -0
  110. package/dist/types/cache/profile-registry.d.ts +40 -0
  111. package/dist/types/cache/read-through-swr.d.ts +61 -0
  112. package/dist/types/cache/search-params-filter.d.ts +64 -0
  113. package/dist/types/cache/segment-codec.d.ts +78 -0
  114. package/dist/types/cache/shell-snapshot.d.ts +186 -0
  115. package/dist/types/cache/tag-invalidation.d.ts +74 -0
  116. package/dist/types/cache/taint.d.ts +77 -0
  117. package/dist/types/cache/types.d.ts +503 -0
  118. package/dist/types/cache/vercel/index.d.ts +1 -0
  119. package/dist/types/cache/vercel/vercel-cache-store.d.ts +268 -0
  120. package/dist/types/client-urls/client-root.d.ts +38 -0
  121. package/dist/types/client-urls/client-urls.d.ts +5 -0
  122. package/dist/types/client-urls/navigation.d.ts +38 -0
  123. package/dist/types/client-urls/revalidation-protocol.d.ts +25 -0
  124. package/dist/types/client-urls/server-projection.d.ts +62 -0
  125. package/dist/types/client-urls/types.d.ts +144 -0
  126. package/dist/types/client.d.ts +191 -0
  127. package/dist/types/client.rsc.d.ts +41 -0
  128. package/dist/types/cloudflare/index.d.ts +7 -0
  129. package/dist/types/cloudflare/tracing.d.ts +57 -0
  130. package/dist/types/component-utils.d.ts +46 -0
  131. package/dist/types/components/DefaultDocument.d.ts +13 -0
  132. package/dist/types/context-var.d.ts +84 -0
  133. package/dist/types/debug.d.ts +57 -0
  134. package/dist/types/decode-loader-results.d.ts +42 -0
  135. package/dist/types/default-error-boundary.d.ts +10 -0
  136. package/dist/types/defer.d.ts +89 -0
  137. package/dist/types/deps/browser.d.ts +1 -0
  138. package/dist/types/deps/html-stream-client.d.ts +1 -0
  139. package/dist/types/deps/html-stream-server.d.ts +1 -0
  140. package/dist/types/deps/rsc.d.ts +1 -0
  141. package/dist/types/deps/ssr.d.ts +1 -0
  142. package/dist/types/dev-discovery-protocol.d.ts +5 -0
  143. package/dist/types/encode-kv.d.ts +35 -0
  144. package/dist/types/errors.d.ts +227 -0
  145. package/dist/types/escape-script.d.ts +44 -0
  146. package/dist/types/handle.d.ts +93 -0
  147. package/dist/types/handles/MetaTags.d.ts +17 -0
  148. package/dist/types/handles/Scripts.d.ts +38 -0
  149. package/dist/types/handles/breadcrumbs.d.ts +43 -0
  150. package/dist/types/handles/deferred-resolution.d.ts +53 -0
  151. package/dist/types/handles/is-thenable.d.ts +10 -0
  152. package/dist/types/handles/meta.d.ts +43 -0
  153. package/dist/types/handles/script.d.ts +139 -0
  154. package/dist/types/host/cookie-handler.d.ts +8 -0
  155. package/dist/types/host/errors.d.ts +40 -0
  156. package/dist/types/host/index.d.ts +33 -0
  157. package/dist/types/host/pattern-matcher.d.ts +30 -0
  158. package/dist/types/host/router.d.ts +12 -0
  159. package/dist/types/host/testing.d.ts +41 -0
  160. package/dist/types/host/types.d.ts +148 -0
  161. package/dist/types/host/utils.d.ts +20 -0
  162. package/dist/types/href-client.d.ts +214 -0
  163. package/dist/types/index.d.ts +113 -0
  164. package/dist/types/index.rsc.d.ts +52 -0
  165. package/dist/types/internal-debug.d.ts +1 -0
  166. package/dist/types/loader-redirect.d.ts +18 -0
  167. package/dist/types/loader-store.d.ts +193 -0
  168. package/dist/types/loader.d.ts +18 -0
  169. package/dist/types/loader.rsc.d.ts +18 -0
  170. package/dist/types/missing-id-error.d.ts +1 -0
  171. package/dist/types/outlet-context.d.ts +24 -0
  172. package/dist/types/outlet-provider.d.ts +14 -0
  173. package/dist/types/prerender/build-shell-capture.d.ts +104 -0
  174. package/dist/types/prerender/param-hash.d.ts +6 -0
  175. package/dist/types/prerender/shell-manifest-key.d.ts +18 -0
  176. package/dist/types/prerender/store.d.ts +63 -0
  177. package/dist/types/prerender.d.ts +292 -0
  178. package/dist/types/redirect-origin.d.ts +67 -0
  179. package/dist/types/regex-escape.d.ts +6 -0
  180. package/dist/types/render-error-thrower.d.ts +13 -0
  181. package/dist/types/response-utils.d.ts +35 -0
  182. package/dist/types/reverse.d.ts +206 -0
  183. package/dist/types/root-error-boundary.d.ts +32 -0
  184. package/dist/types/route-content-wrapper.d.ts +81 -0
  185. package/dist/types/route-definition/dsl-helpers.d.ts +130 -0
  186. package/dist/types/route-definition/helper-factories.d.ts +22 -0
  187. package/dist/types/route-definition/helpers-types.d.ts +404 -0
  188. package/dist/types/route-definition/index.d.ts +7 -0
  189. package/dist/types/route-definition/redirect.d.ts +48 -0
  190. package/dist/types/route-definition/resolve-handler-use.d.ts +19 -0
  191. package/dist/types/route-definition/use-item-types.d.ts +1 -0
  192. package/dist/types/route-definition.d.ts +1 -0
  193. package/dist/types/route-map-builder.d.ts +102 -0
  194. package/dist/types/route-name.d.ts +27 -0
  195. package/dist/types/route-types.d.ts +172 -0
  196. package/dist/types/router/basename.d.ts +10 -0
  197. package/dist/types/router/content-negotiation.d.ts +91 -0
  198. package/dist/types/router/debug-manifest.d.ts +7 -0
  199. package/dist/types/router/error-handling.d.ts +110 -0
  200. package/dist/types/router/find-match.d.ts +19 -0
  201. package/dist/types/router/handler-context.d.ts +41 -0
  202. package/dist/types/router/instrument.d.ts +191 -0
  203. package/dist/types/router/intercept-resolution.d.ts +91 -0
  204. package/dist/types/router/lazy-includes.d.ts +26 -0
  205. package/dist/types/router/loader-resolution.d.ts +85 -0
  206. package/dist/types/router/logging.d.ts +41 -0
  207. package/dist/types/router/manifest.d.ts +8 -0
  208. package/dist/types/router/match-api.d.ts +19 -0
  209. package/dist/types/router/match-context.d.ts +184 -0
  210. package/dist/types/router/match-handlers.d.ts +48 -0
  211. package/dist/types/router/match-middleware/background-revalidation.d.ts +113 -0
  212. package/dist/types/router/match-middleware/cache-lookup.d.ts +126 -0
  213. package/dist/types/router/match-middleware/cache-store.d.ts +112 -0
  214. package/dist/types/router/match-middleware/index.d.ts +80 -0
  215. package/dist/types/router/match-middleware/intercept-resolution.d.ts +116 -0
  216. package/dist/types/router/match-middleware/segment-resolution.d.ts +94 -0
  217. package/dist/types/router/match-pipelines.d.ts +103 -0
  218. package/dist/types/router/match-result.d.ts +114 -0
  219. package/dist/types/router/metrics.d.ts +6 -0
  220. package/dist/types/router/middleware-types.d.ts +74 -0
  221. package/dist/types/router/middleware.d.ts +116 -0
  222. package/dist/types/router/navigation-snapshot.d.ts +51 -0
  223. package/dist/types/router/params-util.d.ts +8 -0
  224. package/dist/types/router/parse-pattern.d.ts +38 -0
  225. package/dist/types/router/pattern-matching.d.ts +169 -0
  226. package/dist/types/router/prefetch-cache-ttl.d.ts +27 -0
  227. package/dist/types/router/prefetch-default.d.ts +28 -0
  228. package/dist/types/router/prefetch-limits.d.ts +20 -0
  229. package/dist/types/router/prerender-match.d.ts +53 -0
  230. package/dist/types/router/preview-match.d.ts +22 -0
  231. package/dist/types/router/request-classification.d.ts +104 -0
  232. package/dist/types/router/revalidation.d.ts +64 -0
  233. package/dist/types/router/route-snapshot.d.ts +112 -0
  234. package/dist/types/router/route-trie-builder.d.ts +77 -0
  235. package/dist/types/router/router-context.d.ts +137 -0
  236. package/dist/types/router/router-interfaces.d.ts +461 -0
  237. package/dist/types/router/router-options.d.ts +792 -0
  238. package/dist/types/router/router-registry.d.ts +15 -0
  239. package/dist/types/router/segment-resolution/fresh.d.ts +55 -0
  240. package/dist/types/router/segment-resolution/helpers.d.ts +93 -0
  241. package/dist/types/router/segment-resolution/loader-cache.d.ts +33 -0
  242. package/dist/types/router/segment-resolution/loader-mask.d.ts +44 -0
  243. package/dist/types/router/segment-resolution/loader-snapshot.d.ts +90 -0
  244. package/dist/types/router/segment-resolution/mask-nested.d.ts +53 -0
  245. package/dist/types/router/segment-resolution/revalidation.d.ts +85 -0
  246. package/dist/types/router/segment-resolution/static-store.d.ts +17 -0
  247. package/dist/types/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
  248. package/dist/types/router/segment-resolution/view-transition-default.d.ts +27 -0
  249. package/dist/types/router/segment-resolution.d.ts +3 -0
  250. package/dist/types/router/segment-wrappers.d.ts +53 -0
  251. package/dist/types/router/state-cookie-name.d.ts +1 -0
  252. package/dist/types/router/substitute-pattern-params.d.ts +23 -0
  253. package/dist/types/router/telemetry-otel.d.ts +113 -0
  254. package/dist/types/router/telemetry.d.ts +216 -0
  255. package/dist/types/router/timeout.d.ts +107 -0
  256. package/dist/types/router/tracing.d.ts +139 -0
  257. package/dist/types/router/transition-when.d.ts +13 -0
  258. package/dist/types/router/trie-matching.d.ts +32 -0
  259. package/dist/types/router/types.d.ts +98 -0
  260. package/dist/types/router/url-params.d.ts +26 -0
  261. package/dist/types/router.d.ts +7 -0
  262. package/dist/types/rsc/capture-queue.d.ts +49 -0
  263. package/dist/types/rsc/full-payload.d.ts +22 -0
  264. package/dist/types/rsc/handler-context.d.ts +32 -0
  265. package/dist/types/rsc/handler.d.ts +9 -0
  266. package/dist/types/rsc/helpers.d.ts +127 -0
  267. package/dist/types/rsc/index.d.ts +17 -0
  268. package/dist/types/rsc/json-route-result.d.ts +20 -0
  269. package/dist/types/rsc/loader-fetch.d.ts +14 -0
  270. package/dist/types/rsc/manifest-init.d.ts +18 -0
  271. package/dist/types/rsc/nonce.d.ts +28 -0
  272. package/dist/types/rsc/origin-guard.d.ts +50 -0
  273. package/dist/types/rsc/progressive-enhancement.d.ts +19 -0
  274. package/dist/types/rsc/redirect-guard.d.ts +37 -0
  275. package/dist/types/rsc/render-pipeline.d.ts +148 -0
  276. package/dist/types/rsc/response-cache-serve.d.ts +46 -0
  277. package/dist/types/rsc/response-error.d.ts +19 -0
  278. package/dist/types/rsc/response-route-handler.d.ts +29 -0
  279. package/dist/types/rsc/routine-plan.d.ts +124 -0
  280. package/dist/types/rsc/rsc-rendering.d.ts +18 -0
  281. package/dist/types/rsc/runtime-warnings.d.ts +22 -0
  282. package/dist/types/rsc/server-action.d.ts +68 -0
  283. package/dist/types/rsc/shell-build-manifest.d.ts +90 -0
  284. package/dist/types/rsc/shell-capture-constants.d.ts +44 -0
  285. package/dist/types/rsc/shell-capture.d.ts +406 -0
  286. package/dist/types/rsc/shell-serve.d.ts +189 -0
  287. package/dist/types/rsc/ssr-setup.d.ts +73 -0
  288. package/dist/types/rsc/stream-idle.d.ts +60 -0
  289. package/dist/types/rsc/transition-gate.d.ts +23 -0
  290. package/dist/types/rsc/types.d.ts +328 -0
  291. package/dist/types/runtime-env.d.ts +1 -0
  292. package/dist/types/search-params.d.ts +125 -0
  293. package/dist/types/segment-content-promise.d.ts +13 -0
  294. package/dist/types/segment-fragments.d.ts +79 -0
  295. package/dist/types/segment-loader-promise.d.ts +22 -0
  296. package/dist/types/segment-system.d.ts +86 -0
  297. package/dist/types/serialize.d.ts +164 -0
  298. package/dist/types/server/context.d.ts +520 -0
  299. package/dist/types/server/cookie-parse.d.ts +10 -0
  300. package/dist/types/server/cookie-store.d.ts +107 -0
  301. package/dist/types/server/fetchable-loader-store.d.ts +20 -0
  302. package/dist/types/server/handle-store.d.ts +131 -0
  303. package/dist/types/server/loader-registry.d.ts +32 -0
  304. package/dist/types/server/request-context.d.ts +717 -0
  305. package/dist/types/server/root-layout.d.ts +3 -0
  306. package/dist/types/server.d.ts +16 -0
  307. package/dist/types/ssr/index.d.ts +233 -0
  308. package/dist/types/ssr/inject-rsc-eager.d.ts +3 -0
  309. package/dist/types/ssr/preinit-client-references.d.ts +71 -0
  310. package/dist/types/ssr/ssr-root.d.ts +69 -0
  311. package/dist/types/static-handler.d.ts +71 -0
  312. package/dist/types/testing/cache-status.d.ts +63 -0
  313. package/dist/types/testing/collect-handle.d.ts +20 -0
  314. package/dist/types/testing/dispatch.d.ts +127 -0
  315. package/dist/types/testing/dom.entry.d.ts +15 -0
  316. package/dist/types/testing/e2e/fixture.d.ts +37 -0
  317. package/dist/types/testing/e2e/index.d.ts +31 -0
  318. package/dist/types/testing/e2e/matchers.d.ts +17 -0
  319. package/dist/types/testing/e2e/page-helpers.d.ts +86 -0
  320. package/dist/types/testing/e2e/parity.d.ts +111 -0
  321. package/dist/types/testing/e2e/server.d.ts +35 -0
  322. package/dist/types/testing/flight-matchers.d.ts +55 -0
  323. package/dist/types/testing/flight-normalize.d.ts +1 -0
  324. package/dist/types/testing/flight-tree.d.ts +192 -0
  325. package/dist/types/testing/flight.d.ts +115 -0
  326. package/dist/types/testing/flight.entry.d.ts +27 -0
  327. package/dist/types/testing/generated-routes.d.ts +66 -0
  328. package/dist/types/testing/index.d.ts +54 -0
  329. package/dist/types/testing/internal/context.d.ts +225 -0
  330. package/dist/types/testing/internal/flight-client-globals.d.ts +1 -0
  331. package/dist/types/testing/internal/seed-vars.d.ts +30 -0
  332. package/dist/types/testing/render-handler.d.ts +160 -0
  333. package/dist/types/testing/render-route.d.ts +265 -0
  334. package/dist/types/testing/run-loader.d.ts +195 -0
  335. package/dist/types/testing/run-middleware.d.ts +132 -0
  336. package/dist/types/testing/run-transition-when.d.ts +78 -0
  337. package/dist/types/testing/shell-status.d.ts +81 -0
  338. package/dist/types/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
  339. package/dist/types/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
  340. package/dist/types/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
  341. package/dist/types/testing/vitest-stubs/version.d.ts +1 -0
  342. package/dist/types/testing/vitest.d.ts +205 -0
  343. package/dist/types/theme/ThemeProvider.d.ts +13 -0
  344. package/dist/types/theme/ThemeScript.d.ts +45 -0
  345. package/dist/types/theme/constants.d.ts +39 -0
  346. package/dist/types/theme/index.d.ts +29 -0
  347. package/dist/types/theme/theme-context.d.ts +21 -0
  348. package/dist/types/theme/theme-script.d.ts +26 -0
  349. package/dist/types/theme/types.d.ts +162 -0
  350. package/dist/types/theme/use-theme.d.ts +8 -0
  351. package/dist/types/types/boundaries.d.ts +110 -0
  352. package/dist/types/types/cache-types.d.ts +191 -0
  353. package/dist/types/types/error-types.d.ts +114 -0
  354. package/dist/types/types/global-namespace.d.ts +90 -0
  355. package/dist/types/types/handler-context.d.ts +658 -0
  356. package/dist/types/types/index.d.ts +11 -0
  357. package/dist/types/types/loader-types.d.ts +234 -0
  358. package/dist/types/types/request-scope.d.ts +93 -0
  359. package/dist/types/types/route-config.d.ts +105 -0
  360. package/dist/types/types/route-entry.d.ts +98 -0
  361. package/dist/types/types/segments.d.ts +246 -0
  362. package/dist/types/types.d.ts +1 -0
  363. package/dist/types/urls/include-helper.d.ts +17 -0
  364. package/dist/types/urls/include-provider.d.ts +27 -0
  365. package/dist/types/urls/index.d.ts +6 -0
  366. package/dist/types/urls/path-helper-types.d.ts +203 -0
  367. package/dist/types/urls/path-helper.d.ts +12 -0
  368. package/dist/types/urls/pattern-types.d.ts +166 -0
  369. package/dist/types/urls/response-types.d.ts +67 -0
  370. package/dist/types/urls/type-extraction.d.ts +157 -0
  371. package/dist/types/urls/urls-function.d.ts +24 -0
  372. package/dist/types/urls.d.ts +1 -0
  373. package/dist/types/use-loader.d.ts +150 -0
  374. package/dist/types/vercel/index.d.ts +10 -0
  375. package/dist/types/vercel/tracing.d.ts +71 -0
  376. package/dist/types/vite/debug.d.ts +80 -0
  377. package/dist/types/vite/discovery/bundle-postprocess.d.ts +12 -0
  378. package/dist/types/vite/discovery/client-urls-projection.d.ts +53 -0
  379. package/dist/types/vite/discovery/dev-prerender-cache.d.ts +65 -0
  380. package/dist/types/vite/discovery/discover-routers.d.ts +17 -0
  381. package/dist/types/vite/discovery/discovery-errors.d.ts +113 -0
  382. package/dist/types/vite/discovery/gate-state.d.ts +79 -0
  383. package/dist/types/vite/discovery/prerender-collection.d.ts +24 -0
  384. package/dist/types/vite/discovery/route-types-writer.d.ts +32 -0
  385. package/dist/types/vite/discovery/self-gen-tracking.d.ts +22 -0
  386. package/dist/types/vite/discovery/shell-prerender-phase.d.ts +40 -0
  387. package/dist/types/vite/discovery/state.d.ts +170 -0
  388. package/dist/types/vite/discovery/virtual-module-codegen.d.ts +15 -0
  389. package/dist/types/vite/encryption-key.d.ts +2 -0
  390. package/dist/types/vite/index.d.ts +11 -0
  391. package/dist/types/vite/inject-client-debug.d.ts +56 -0
  392. package/dist/types/vite/plugin-types.d.ts +298 -0
  393. package/dist/types/vite/plugins/cjs-to-esm.d.ts +6 -0
  394. package/dist/types/vite/plugins/client-ref-dedup.d.ts +40 -0
  395. package/dist/types/vite/plugins/client-ref-hashing.d.ts +35 -0
  396. package/dist/types/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
  397. package/dist/types/vite/plugins/expose-action-id.d.ts +18 -0
  398. package/dist/types/vite/plugins/expose-id-utils.d.ts +37 -0
  399. package/dist/types/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
  400. package/dist/types/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
  401. package/dist/types/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
  402. package/dist/types/vite/plugins/expose-ids/router-transform.d.ts +13 -0
  403. package/dist/types/vite/plugins/expose-ids/types.d.ts +29 -0
  404. package/dist/types/vite/plugins/expose-internal-ids.d.ts +16 -0
  405. package/dist/types/vite/plugins/performance-tracks.d.ts +25 -0
  406. package/dist/types/vite/plugins/refresh-cmd.d.ts +20 -0
  407. package/dist/types/vite/plugins/server-ref-hashing.d.ts +24 -0
  408. package/dist/types/vite/plugins/server-reference-pattern.d.ts +1 -0
  409. package/dist/types/vite/plugins/use-cache-transform.d.ts +20 -0
  410. package/dist/types/vite/plugins/vercel-output.d.ts +85 -0
  411. package/dist/types/vite/plugins/version-injector.d.ts +21 -0
  412. package/dist/types/vite/plugins/version-plugin.d.ts +19 -0
  413. package/dist/types/vite/plugins/virtual-entries.d.ts +36 -0
  414. package/dist/types/vite/plugins/virtual-stub-plugin.d.ts +7 -0
  415. package/dist/types/vite/rango.d.ts +29 -0
  416. package/dist/types/vite/router-discovery.d.ts +23 -0
  417. package/dist/types/vite/utils/ast-handler-extract.d.ts +64 -0
  418. package/dist/types/vite/utils/banner.d.ts +2 -0
  419. package/dist/types/vite/utils/bundle-analysis.d.ts +28 -0
  420. package/dist/types/vite/utils/client-chunks.d.ts +55 -0
  421. package/dist/types/vite/utils/directive-prologue.d.ts +16 -0
  422. package/dist/types/vite/utils/forward-user-plugins.d.ts +37 -0
  423. package/dist/types/vite/utils/manifest-utils.d.ts +7 -0
  424. package/dist/types/vite/utils/package-resolution.d.ts +6 -0
  425. package/dist/types/vite/utils/prerender-utils.d.ts +32 -0
  426. package/dist/types/vite/utils/shared-utils.d.ts +67 -0
  427. package/dist/types.backup/__internal.d.ts +127 -0
  428. package/dist/types.backup/bin/rango.d.ts +1 -0
  429. package/dist/types.backup/browser/action-coordinator.d.ts +57 -0
  430. package/dist/types.backup/browser/action-fence.d.ts +33 -0
  431. package/dist/types.backup/browser/app-shell.d.ts +34 -0
  432. package/dist/types.backup/browser/app-version.d.ts +6 -0
  433. package/dist/types.backup/browser/connection-warmup.d.ts +31 -0
  434. package/dist/types.backup/browser/cookie-name.d.ts +66 -0
  435. package/dist/types.backup/browser/event-controller.d.ts +221 -0
  436. package/dist/types.backup/browser/history-state.d.ts +26 -0
  437. package/dist/types.backup/browser/index.d.ts +1 -0
  438. package/dist/types.backup/browser/intercept-utils.d.ts +30 -0
  439. package/dist/types.backup/browser/invalidate-client-cache.d.ts +17 -0
  440. package/dist/types.backup/browser/link-interceptor.d.ts +43 -0
  441. package/dist/types.backup/browser/logging.d.ts +33 -0
  442. package/dist/types.backup/browser/merge-segment-loaders.d.ts +38 -0
  443. package/dist/types.backup/browser/navigation-bridge.d.ts +27 -0
  444. package/dist/types.backup/browser/navigation-client.d.ts +17 -0
  445. package/dist/types.backup/browser/navigation-store-handle.d.ts +25 -0
  446. package/dist/types.backup/browser/navigation-store.d.ts +95 -0
  447. package/dist/types.backup/browser/navigation-transaction.d.ts +75 -0
  448. package/dist/types.backup/browser/network-error-handler.d.ts +35 -0
  449. package/dist/types.backup/browser/partial-update.d.ts +61 -0
  450. package/dist/types.backup/browser/prefetch/cache.d.ts +183 -0
  451. package/dist/types.backup/browser/prefetch/fetch.d.ts +52 -0
  452. package/dist/types.backup/browser/prefetch/observer.d.ts +27 -0
  453. package/dist/types.backup/browser/prefetch/policy.d.ts +13 -0
  454. package/dist/types.backup/browser/prefetch/queue.d.ts +48 -0
  455. package/dist/types.backup/browser/prefetch/resource-ready.d.ts +28 -0
  456. package/dist/types.backup/browser/rango-state.d.ts +52 -0
  457. package/dist/types.backup/browser/react/Link.d.ts +140 -0
  458. package/dist/types.backup/browser/react/NavigationProvider.d.ts +88 -0
  459. package/dist/types.backup/browser/react/ScrollRestoration.d.ts +78 -0
  460. package/dist/types.backup/browser/react/context.d.ts +54 -0
  461. package/dist/types.backup/browser/react/filter-segment-order.d.ts +35 -0
  462. package/dist/types.backup/browser/react/index.d.ts +1 -0
  463. package/dist/types.backup/browser/react/location-state-shared.d.ts +162 -0
  464. package/dist/types.backup/browser/react/location-state.d.ts +29 -0
  465. package/dist/types.backup/browser/react/mount-context.d.ts +23 -0
  466. package/dist/types.backup/browser/react/nonce-context.d.ts +14 -0
  467. package/dist/types.backup/browser/react/shallow-equal.d.ts +5 -0
  468. package/dist/types.backup/browser/react/use-action.d.ts +61 -0
  469. package/dist/types.backup/browser/react/use-handle.d.ts +21 -0
  470. package/dist/types.backup/browser/react/use-href.d.ts +32 -0
  471. package/dist/types.backup/browser/react/use-link-status.d.ts +36 -0
  472. package/dist/types.backup/browser/react/use-mount.d.ts +24 -0
  473. package/dist/types.backup/browser/react/use-navigation.d.ts +15 -0
  474. package/dist/types.backup/browser/react/use-params.d.ts +21 -0
  475. package/dist/types.backup/browser/react/use-pathname.d.ts +13 -0
  476. package/dist/types.backup/browser/react/use-reverse.d.ts +40 -0
  477. package/dist/types.backup/browser/react/use-router.d.ts +23 -0
  478. package/dist/types.backup/browser/react/use-search-params.d.ts +19 -0
  479. package/dist/types.backup/browser/react/use-segments.d.ts +29 -0
  480. package/dist/types.backup/browser/response-adapter.d.ts +58 -0
  481. package/dist/types.backup/browser/rsc-router.d.ts +141 -0
  482. package/dist/types.backup/browser/scroll-restoration.d.ts +103 -0
  483. package/dist/types.backup/browser/segment-reconciler.d.ts +74 -0
  484. package/dist/types.backup/browser/segment-structure-assert.d.ts +16 -0
  485. package/dist/types.backup/browser/server-action-bridge.d.ts +29 -0
  486. package/dist/types.backup/browser/types.d.ts +530 -0
  487. package/dist/types.backup/browser/validate-redirect-origin.d.ts +28 -0
  488. package/dist/types.backup/build/collect-fallback-refs.d.ts +5 -0
  489. package/dist/types.backup/build/generate-manifest.d.ts +100 -0
  490. package/dist/types.backup/build/generate-route-types.d.ts +8 -0
  491. package/dist/types.backup/build/index.d.ts +21 -0
  492. package/dist/types.backup/build/prefix-tree-utils.d.ts +56 -0
  493. package/dist/types.backup/build/route-trie.d.ts +89 -0
  494. package/dist/types.backup/build/route-types/ast-helpers.d.ts +3 -0
  495. package/dist/types.backup/build/route-types/ast-route-extraction.d.ts +13 -0
  496. package/dist/types.backup/build/route-types/codegen.d.ts +16 -0
  497. package/dist/types.backup/build/route-types/include-resolution.d.ts +74 -0
  498. package/dist/types.backup/build/route-types/param-extraction.d.ts +13 -0
  499. package/dist/types.backup/build/route-types/per-module-writer.d.ts +18 -0
  500. package/dist/types.backup/build/route-types/router-processing.d.ts +82 -0
  501. package/dist/types.backup/build/route-types/scan-filter.d.ts +17 -0
  502. package/dist/types.backup/build/route-types/source-scan.d.ts +13 -0
  503. package/dist/types.backup/build/runtime-discovery.d.ts +24 -0
  504. package/dist/types.backup/cache/background-task.d.ts +21 -0
  505. package/dist/types.backup/cache/cache-error.d.ts +71 -0
  506. package/dist/types.backup/cache/cache-key-utils.d.ts +35 -0
  507. package/dist/types.backup/cache/cache-policy.d.ts +59 -0
  508. package/dist/types.backup/cache/cache-runtime.d.ts +51 -0
  509. package/dist/types.backup/cache/cache-scope.d.ts +134 -0
  510. package/dist/types.backup/cache/cache-tag.d.ts +79 -0
  511. package/dist/types.backup/cache/cf/cf-base64.d.ts +4 -0
  512. package/dist/types.backup/cache/cf/cf-cache-constants.d.ts +105 -0
  513. package/dist/types.backup/cache/cf/cf-cache-store.d.ts +481 -0
  514. package/dist/types.backup/cache/cf/cf-cache-types.d.ts +300 -0
  515. package/dist/types.backup/cache/cf/cf-kv-utils.d.ts +22 -0
  516. package/dist/types.backup/cache/cf/cf-tag-marker-memo.d.ts +15 -0
  517. package/dist/types.backup/cache/cf/index.d.ts +3 -0
  518. package/dist/types.backup/cache/document-cache.d.ts +69 -0
  519. package/dist/types.backup/cache/handle-capture.d.ts +23 -0
  520. package/dist/types.backup/cache/handle-snapshot.d.ts +39 -0
  521. package/dist/types.backup/cache/index.d.ts +7 -0
  522. package/dist/types.backup/cache/memory-segment-store.d.ts +163 -0
  523. package/dist/types.backup/cache/profile-registry.d.ts +40 -0
  524. package/dist/types.backup/cache/read-through-swr.d.ts +60 -0
  525. package/dist/types.backup/cache/segment-codec.d.ts +78 -0
  526. package/dist/types.backup/cache/shell-snapshot.d.ts +162 -0
  527. package/dist/types.backup/cache/tag-invalidation.d.ts +74 -0
  528. package/dist/types.backup/cache/taint.d.ts +71 -0
  529. package/dist/types.backup/cache/types.d.ts +407 -0
  530. package/dist/types.backup/cache/vercel/index.d.ts +1 -0
  531. package/dist/types.backup/cache/vercel/vercel-cache-store.d.ts +267 -0
  532. package/dist/types.backup/client.d.ts +184 -0
  533. package/dist/types.backup/client.rsc.d.ts +39 -0
  534. package/dist/types.backup/cloudflare/index.d.ts +7 -0
  535. package/dist/types.backup/cloudflare/tracing.d.ts +53 -0
  536. package/dist/types.backup/component-utils.d.ts +46 -0
  537. package/dist/types.backup/components/DefaultDocument.d.ts +13 -0
  538. package/dist/types.backup/context-var.d.ts +84 -0
  539. package/dist/types.backup/debug.d.ts +57 -0
  540. package/dist/types.backup/decode-loader-results.d.ts +5 -0
  541. package/dist/types.backup/default-error-boundary.d.ts +10 -0
  542. package/dist/types.backup/defer.d.ts +89 -0
  543. package/dist/types.backup/deps/browser.d.ts +1 -0
  544. package/dist/types.backup/deps/html-stream-client.d.ts +1 -0
  545. package/dist/types.backup/deps/html-stream-server.d.ts +1 -0
  546. package/dist/types.backup/deps/rsc.d.ts +1 -0
  547. package/dist/types.backup/deps/ssr.d.ts +1 -0
  548. package/dist/types.backup/encode-kv.d.ts +35 -0
  549. package/dist/types.backup/errors.d.ts +226 -0
  550. package/dist/types.backup/escape-script.d.ts +44 -0
  551. package/dist/types.backup/handle.d.ts +93 -0
  552. package/dist/types.backup/handles/MetaTags.d.ts +17 -0
  553. package/dist/types.backup/handles/Scripts.d.ts +38 -0
  554. package/dist/types.backup/handles/breadcrumbs.d.ts +43 -0
  555. package/dist/types.backup/handles/deferred-resolution.d.ts +53 -0
  556. package/dist/types.backup/handles/is-thenable.d.ts +12 -0
  557. package/dist/types.backup/handles/meta.d.ts +43 -0
  558. package/dist/types.backup/handles/script.d.ts +139 -0
  559. package/dist/types.backup/host/cookie-handler.d.ts +8 -0
  560. package/dist/types.backup/host/errors.d.ts +40 -0
  561. package/dist/types.backup/host/index.d.ts +33 -0
  562. package/dist/types.backup/host/pattern-matcher.d.ts +30 -0
  563. package/dist/types.backup/host/router.d.ts +12 -0
  564. package/dist/types.backup/host/testing.d.ts +41 -0
  565. package/dist/types.backup/host/types.d.ts +148 -0
  566. package/dist/types.backup/host/utils.d.ts +20 -0
  567. package/dist/types.backup/href-client.d.ts +214 -0
  568. package/dist/types.backup/index.d.ts +112 -0
  569. package/dist/types.backup/index.rsc.d.ts +51 -0
  570. package/dist/types.backup/internal-debug.d.ts +1 -0
  571. package/dist/types.backup/loader-store.d.ts +193 -0
  572. package/dist/types.backup/loader.d.ts +18 -0
  573. package/dist/types.backup/loader.rsc.d.ts +18 -0
  574. package/dist/types.backup/missing-id-error.d.ts +1 -0
  575. package/dist/types.backup/outlet-context.d.ts +12 -0
  576. package/dist/types.backup/outlet-provider.d.ts +12 -0
  577. package/dist/types.backup/prerender/build-shell-capture.d.ts +104 -0
  578. package/dist/types.backup/prerender/param-hash.d.ts +6 -0
  579. package/dist/types.backup/prerender/shell-manifest-key.d.ts +18 -0
  580. package/dist/types.backup/prerender/store.d.ts +62 -0
  581. package/dist/types.backup/prerender.d.ts +292 -0
  582. package/dist/types.backup/redirect-origin.d.ts +55 -0
  583. package/dist/types.backup/regex-escape.d.ts +6 -0
  584. package/dist/types.backup/render-error-thrower.d.ts +13 -0
  585. package/dist/types.backup/response-utils.d.ts +35 -0
  586. package/dist/types.backup/reverse.d.ts +206 -0
  587. package/dist/types.backup/root-error-boundary.d.ts +32 -0
  588. package/dist/types.backup/route-content-wrapper.d.ts +40 -0
  589. package/dist/types.backup/route-definition/dsl-helpers.d.ts +130 -0
  590. package/dist/types.backup/route-definition/helper-factories.d.ts +22 -0
  591. package/dist/types.backup/route-definition/helpers-types.d.ts +392 -0
  592. package/dist/types.backup/route-definition/index.d.ts +7 -0
  593. package/dist/types.backup/route-definition/redirect.d.ts +48 -0
  594. package/dist/types.backup/route-definition/resolve-handler-use.d.ts +19 -0
  595. package/dist/types.backup/route-definition/use-item-types.d.ts +1 -0
  596. package/dist/types.backup/route-definition.d.ts +1 -0
  597. package/dist/types.backup/route-map-builder.d.ts +127 -0
  598. package/dist/types.backup/route-name.d.ts +27 -0
  599. package/dist/types.backup/route-types.d.ts +172 -0
  600. package/dist/types.backup/router/basename.d.ts +10 -0
  601. package/dist/types.backup/router/content-negotiation.d.ts +91 -0
  602. package/dist/types.backup/router/debug-manifest.d.ts +7 -0
  603. package/dist/types.backup/router/error-handling.d.ts +76 -0
  604. package/dist/types.backup/router/find-match.d.ts +19 -0
  605. package/dist/types.backup/router/handler-context.d.ts +41 -0
  606. package/dist/types.backup/router/instrument.d.ts +161 -0
  607. package/dist/types.backup/router/intercept-resolution.d.ts +79 -0
  608. package/dist/types.backup/router/lazy-includes.d.ts +26 -0
  609. package/dist/types.backup/router/loader-resolution.d.ts +63 -0
  610. package/dist/types.backup/router/logging.d.ts +41 -0
  611. package/dist/types.backup/router/manifest.d.ts +8 -0
  612. package/dist/types.backup/router/match-api.d.ts +19 -0
  613. package/dist/types.backup/router/match-context.d.ts +184 -0
  614. package/dist/types.backup/router/match-handlers.d.ts +49 -0
  615. package/dist/types.backup/router/match-middleware/background-revalidation.d.ts +113 -0
  616. package/dist/types.backup/router/match-middleware/cache-lookup.d.ts +113 -0
  617. package/dist/types.backup/router/match-middleware/cache-store.d.ts +112 -0
  618. package/dist/types.backup/router/match-middleware/index.d.ts +80 -0
  619. package/dist/types.backup/router/match-middleware/intercept-resolution.d.ts +116 -0
  620. package/dist/types.backup/router/match-middleware/segment-resolution.d.ts +94 -0
  621. package/dist/types.backup/router/match-pipelines.d.ts +103 -0
  622. package/dist/types.backup/router/match-result.d.ts +114 -0
  623. package/dist/types.backup/router/metrics.d.ts +6 -0
  624. package/dist/types.backup/router/middleware-types.d.ts +74 -0
  625. package/dist/types.backup/router/middleware.d.ts +116 -0
  626. package/dist/types.backup/router/navigation-snapshot.d.ts +22 -0
  627. package/dist/types.backup/router/params-util.d.ts +8 -0
  628. package/dist/types.backup/router/parse-pattern.d.ts +38 -0
  629. package/dist/types.backup/router/pattern-matching.d.ts +169 -0
  630. package/dist/types.backup/router/prefetch-cache-ttl.d.ts +27 -0
  631. package/dist/types.backup/router/prefetch-limits.d.ts +20 -0
  632. package/dist/types.backup/router/prerender-match.d.ts +50 -0
  633. package/dist/types.backup/router/preview-match.d.ts +22 -0
  634. package/dist/types.backup/router/request-classification.d.ts +104 -0
  635. package/dist/types.backup/router/revalidation.d.ts +57 -0
  636. package/dist/types.backup/router/route-snapshot.d.ts +112 -0
  637. package/dist/types.backup/router/router-context.d.ts +137 -0
  638. package/dist/types.backup/router/router-interfaces.d.ts +432 -0
  639. package/dist/types.backup/router/router-options.d.ts +738 -0
  640. package/dist/types.backup/router/router-registry.d.ts +15 -0
  641. package/dist/types.backup/router/segment-resolution/fresh.d.ts +55 -0
  642. package/dist/types.backup/router/segment-resolution/helpers.d.ts +93 -0
  643. package/dist/types.backup/router/segment-resolution/loader-cache.d.ts +33 -0
  644. package/dist/types.backup/router/segment-resolution/loader-mask.d.ts +44 -0
  645. package/dist/types.backup/router/segment-resolution/loader-snapshot.d.ts +90 -0
  646. package/dist/types.backup/router/segment-resolution/mask-nested.d.ts +53 -0
  647. package/dist/types.backup/router/segment-resolution/revalidation.d.ts +85 -0
  648. package/dist/types.backup/router/segment-resolution/static-store.d.ts +17 -0
  649. package/dist/types.backup/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
  650. package/dist/types.backup/router/segment-resolution/view-transition-default.d.ts +28 -0
  651. package/dist/types.backup/router/segment-resolution.d.ts +3 -0
  652. package/dist/types.backup/router/segment-wrappers.d.ts +53 -0
  653. package/dist/types.backup/router/state-cookie-name.d.ts +1 -0
  654. package/dist/types.backup/router/substitute-pattern-params.d.ts +23 -0
  655. package/dist/types.backup/router/telemetry-otel.d.ts +113 -0
  656. package/dist/types.backup/router/telemetry.d.ts +215 -0
  657. package/dist/types.backup/router/timeout.d.ts +68 -0
  658. package/dist/types.backup/router/tracing.d.ts +125 -0
  659. package/dist/types.backup/router/trie-matching.d.ts +32 -0
  660. package/dist/types.backup/router/types.d.ts +98 -0
  661. package/dist/types.backup/router/url-params.d.ts +26 -0
  662. package/dist/types.backup/router.d.ts +7 -0
  663. package/dist/types.backup/rsc/capture-queue.d.ts +6 -0
  664. package/dist/types.backup/rsc/full-payload.d.ts +22 -0
  665. package/dist/types.backup/rsc/handler-context.d.ts +31 -0
  666. package/dist/types.backup/rsc/handler.d.ts +9 -0
  667. package/dist/types.backup/rsc/helpers.d.ts +213 -0
  668. package/dist/types.backup/rsc/index.d.ts +17 -0
  669. package/dist/types.backup/rsc/json-route-result.d.ts +20 -0
  670. package/dist/types.backup/rsc/loader-fetch.d.ts +14 -0
  671. package/dist/types.backup/rsc/manifest-init.d.ts +18 -0
  672. package/dist/types.backup/rsc/nonce.d.ts +28 -0
  673. package/dist/types.backup/rsc/origin-guard.d.ts +50 -0
  674. package/dist/types.backup/rsc/progressive-enhancement.d.ts +19 -0
  675. package/dist/types.backup/rsc/redirect-guard.d.ts +35 -0
  676. package/dist/types.backup/rsc/response-cache-serve.d.ts +46 -0
  677. package/dist/types.backup/rsc/response-error.d.ts +19 -0
  678. package/dist/types.backup/rsc/response-route-handler.d.ts +29 -0
  679. package/dist/types.backup/rsc/rsc-rendering.d.ts +23 -0
  680. package/dist/types.backup/rsc/runtime-warnings.d.ts +22 -0
  681. package/dist/types.backup/rsc/server-action.d.ts +68 -0
  682. package/dist/types.backup/rsc/shell-build-manifest.d.ts +84 -0
  683. package/dist/types.backup/rsc/shell-capture-constants.d.ts +27 -0
  684. package/dist/types.backup/rsc/shell-capture.d.ts +374 -0
  685. package/dist/types.backup/rsc/shell-serve.d.ts +136 -0
  686. package/dist/types.backup/rsc/ssr-setup.d.ts +48 -0
  687. package/dist/types.backup/rsc/transition-gate.d.ts +27 -0
  688. package/dist/types.backup/rsc/types.d.ts +290 -0
  689. package/dist/types.backup/runtime-env.d.ts +1 -0
  690. package/dist/types.backup/search-params.d.ts +125 -0
  691. package/dist/types.backup/segment-content-promise.d.ts +13 -0
  692. package/dist/types.backup/segment-fragments.d.ts +56 -0
  693. package/dist/types.backup/segment-loader-promise.d.ts +22 -0
  694. package/dist/types.backup/segment-system.d.ts +84 -0
  695. package/dist/types.backup/serialize.d.ts +164 -0
  696. package/dist/types.backup/server/context.d.ts +494 -0
  697. package/dist/types.backup/server/cookie-parse.d.ts +10 -0
  698. package/dist/types.backup/server/cookie-store.d.ts +107 -0
  699. package/dist/types.backup/server/fetchable-loader-store.d.ts +20 -0
  700. package/dist/types.backup/server/handle-store.d.ts +100 -0
  701. package/dist/types.backup/server/loader-registry.d.ts +32 -0
  702. package/dist/types.backup/server/request-context.d.ts +596 -0
  703. package/dist/types.backup/server/root-layout.d.ts +3 -0
  704. package/dist/types.backup/server.d.ts +15 -0
  705. package/dist/types.backup/ssr/index.d.ts +233 -0
  706. package/dist/types.backup/ssr/inject-rsc-eager.d.ts +3 -0
  707. package/dist/types.backup/ssr/preinit-client-references.d.ts +71 -0
  708. package/dist/types.backup/ssr/ssr-root.d.ts +69 -0
  709. package/dist/types.backup/static-handler.d.ts +57 -0
  710. package/dist/types.backup/testing/cache-status.d.ts +63 -0
  711. package/dist/types.backup/testing/collect-handle.d.ts +20 -0
  712. package/dist/types.backup/testing/dispatch.d.ts +123 -0
  713. package/dist/types.backup/testing/dom.entry.d.ts +15 -0
  714. package/dist/types.backup/testing/e2e/fixture.d.ts +37 -0
  715. package/dist/types.backup/testing/e2e/index.d.ts +30 -0
  716. package/dist/types.backup/testing/e2e/matchers.d.ts +17 -0
  717. package/dist/types.backup/testing/e2e/page-helpers.d.ts +62 -0
  718. package/dist/types.backup/testing/e2e/parity.d.ts +111 -0
  719. package/dist/types.backup/testing/e2e/server.d.ts +35 -0
  720. package/dist/types.backup/testing/flight-matchers.d.ts +55 -0
  721. package/dist/types.backup/testing/flight-normalize.d.ts +1 -0
  722. package/dist/types.backup/testing/flight-tree.d.ts +192 -0
  723. package/dist/types.backup/testing/flight.d.ts +115 -0
  724. package/dist/types.backup/testing/flight.entry.d.ts +27 -0
  725. package/dist/types.backup/testing/generated-routes.d.ts +66 -0
  726. package/dist/types.backup/testing/index.d.ts +52 -0
  727. package/dist/types.backup/testing/internal/context.d.ts +225 -0
  728. package/dist/types.backup/testing/internal/flight-client-globals.d.ts +1 -0
  729. package/dist/types.backup/testing/internal/seed-vars.d.ts +30 -0
  730. package/dist/types.backup/testing/render-handler.d.ts +160 -0
  731. package/dist/types.backup/testing/render-route.d.ts +246 -0
  732. package/dist/types.backup/testing/run-loader.d.ts +186 -0
  733. package/dist/types.backup/testing/run-middleware.d.ts +132 -0
  734. package/dist/types.backup/testing/run-transition-when.d.ts +77 -0
  735. package/dist/types.backup/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
  736. package/dist/types.backup/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
  737. package/dist/types.backup/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
  738. package/dist/types.backup/testing/vitest-stubs/version.d.ts +1 -0
  739. package/dist/types.backup/testing/vitest.d.ts +205 -0
  740. package/dist/types.backup/theme/ThemeProvider.d.ts +13 -0
  741. package/dist/types.backup/theme/ThemeScript.d.ts +45 -0
  742. package/dist/types.backup/theme/constants.d.ts +39 -0
  743. package/dist/types.backup/theme/index.d.ts +29 -0
  744. package/dist/types.backup/theme/theme-context.d.ts +21 -0
  745. package/dist/types.backup/theme/theme-script.d.ts +26 -0
  746. package/dist/types.backup/theme/types.d.ts +162 -0
  747. package/dist/types.backup/theme/use-theme.d.ts +8 -0
  748. package/dist/types.backup/types/boundaries.d.ts +93 -0
  749. package/dist/types.backup/types/cache-types.d.ts +191 -0
  750. package/dist/types.backup/types/error-types.d.ts +114 -0
  751. package/dist/types.backup/types/global-namespace.d.ts +90 -0
  752. package/dist/types.backup/types/handler-context.d.ts +658 -0
  753. package/dist/types.backup/types/index.d.ts +11 -0
  754. package/dist/types.backup/types/loader-types.d.ts +182 -0
  755. package/dist/types.backup/types/request-scope.d.ts +93 -0
  756. package/dist/types.backup/types/route-config.d.ts +105 -0
  757. package/dist/types.backup/types/route-entry.d.ts +95 -0
  758. package/dist/types.backup/types/segments.d.ts +234 -0
  759. package/dist/types.backup/types.d.ts +1 -0
  760. package/dist/types.backup/urls/include-helper.d.ts +17 -0
  761. package/dist/types.backup/urls/include-provider.d.ts +27 -0
  762. package/dist/types.backup/urls/index.d.ts +6 -0
  763. package/dist/types.backup/urls/path-helper-types.d.ts +197 -0
  764. package/dist/types.backup/urls/path-helper.d.ts +12 -0
  765. package/dist/types.backup/urls/pattern-types.d.ts +166 -0
  766. package/dist/types.backup/urls/response-types.d.ts +67 -0
  767. package/dist/types.backup/urls/type-extraction.d.ts +157 -0
  768. package/dist/types.backup/urls/urls-function.d.ts +24 -0
  769. package/dist/types.backup/urls.d.ts +1 -0
  770. package/dist/types.backup/use-loader.d.ts +150 -0
  771. package/dist/types.backup/vercel/index.d.ts +10 -0
  772. package/dist/types.backup/vercel/tracing.d.ts +70 -0
  773. package/dist/types.backup/vite/debug.d.ts +80 -0
  774. package/dist/types.backup/vite/discovery/bundle-postprocess.d.ts +12 -0
  775. package/dist/types.backup/vite/discovery/dev-prerender-cache.d.ts +65 -0
  776. package/dist/types.backup/vite/discovery/discover-routers.d.ts +17 -0
  777. package/dist/types.backup/vite/discovery/discovery-errors.d.ts +113 -0
  778. package/dist/types.backup/vite/discovery/gate-state.d.ts +79 -0
  779. package/dist/types.backup/vite/discovery/prerender-collection.d.ts +24 -0
  780. package/dist/types.backup/vite/discovery/route-types-writer.d.ts +32 -0
  781. package/dist/types.backup/vite/discovery/self-gen-tracking.d.ts +22 -0
  782. package/dist/types.backup/vite/discovery/shell-prerender-phase.d.ts +40 -0
  783. package/dist/types.backup/vite/discovery/state.d.ts +162 -0
  784. package/dist/types.backup/vite/discovery/virtual-module-codegen.d.ts +15 -0
  785. package/dist/types.backup/vite/index.d.ts +11 -0
  786. package/dist/types.backup/vite/inject-client-debug.d.ts +56 -0
  787. package/dist/types.backup/vite/plugin-types.d.ts +298 -0
  788. package/dist/types.backup/vite/plugins/cjs-to-esm.d.ts +6 -0
  789. package/dist/types.backup/vite/plugins/client-ref-dedup.d.ts +40 -0
  790. package/dist/types.backup/vite/plugins/client-ref-hashing.d.ts +35 -0
  791. package/dist/types.backup/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
  792. package/dist/types.backup/vite/plugins/expose-action-id.d.ts +18 -0
  793. package/dist/types.backup/vite/plugins/expose-id-utils.d.ts +37 -0
  794. package/dist/types.backup/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
  795. package/dist/types.backup/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
  796. package/dist/types.backup/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
  797. package/dist/types.backup/vite/plugins/expose-ids/router-transform.d.ts +13 -0
  798. package/dist/types.backup/vite/plugins/expose-ids/types.d.ts +29 -0
  799. package/dist/types.backup/vite/plugins/expose-internal-ids.d.ts +6 -0
  800. package/dist/types.backup/vite/plugins/performance-tracks.d.ts +25 -0
  801. package/dist/types.backup/vite/plugins/refresh-cmd.d.ts +20 -0
  802. package/dist/types.backup/vite/plugins/use-cache-transform.d.ts +20 -0
  803. package/dist/types.backup/vite/plugins/vercel-output.d.ts +85 -0
  804. package/dist/types.backup/vite/plugins/version-injector.d.ts +21 -0
  805. package/dist/types.backup/vite/plugins/version-plugin.d.ts +19 -0
  806. package/dist/types.backup/vite/plugins/virtual-entries.d.ts +36 -0
  807. package/dist/types.backup/vite/plugins/virtual-stub-plugin.d.ts +7 -0
  808. package/dist/types.backup/vite/rango.d.ts +29 -0
  809. package/dist/types.backup/vite/router-discovery.d.ts +23 -0
  810. package/dist/types.backup/vite/utils/ast-handler-extract.d.ts +64 -0
  811. package/dist/types.backup/vite/utils/banner.d.ts +2 -0
  812. package/dist/types.backup/vite/utils/bundle-analysis.d.ts +28 -0
  813. package/dist/types.backup/vite/utils/client-chunks.d.ts +55 -0
  814. package/dist/types.backup/vite/utils/directive-prologue.d.ts +16 -0
  815. package/dist/types.backup/vite/utils/forward-user-plugins.d.ts +37 -0
  816. package/dist/types.backup/vite/utils/manifest-utils.d.ts +7 -0
  817. package/dist/types.backup/vite/utils/package-resolution.d.ts +6 -0
  818. package/dist/types.backup/vite/utils/prerender-utils.d.ts +32 -0
  819. package/dist/types.backup/vite/utils/shared-utils.d.ts +55 -0
  820. package/dist/vite/index.js +10725 -3898
  821. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  822. package/package.json +129 -46
  823. package/skills/api-client/SKILL.md +211 -0
  824. package/skills/breadcrumbs/SKILL.md +117 -8
  825. package/skills/bundle-analysis/SKILL.md +159 -0
  826. package/skills/cache-guide/SKILL.md +255 -25
  827. package/skills/caching/SKILL.md +414 -17
  828. package/skills/catalog.json +289 -0
  829. package/skills/client-urls/SKILL.md +307 -0
  830. package/skills/cloudflare/SKILL.md +151 -0
  831. package/skills/cloudflare/agents/openai.yaml +4 -0
  832. package/skills/cloudflare/references/d1-and-local-dev.md +131 -0
  833. package/skills/cloudflare/references/streaming-and-deploy.md +107 -0
  834. package/skills/cloudflare/references/webhooks-and-crypto.md +147 -0
  835. package/skills/comparison/SKILL.md +50 -0
  836. package/skills/comparison/agents/openai.yaml +4 -0
  837. package/skills/comparison/references/framework-comparison.md +858 -0
  838. package/skills/composability/SKILL.md +124 -4
  839. package/skills/css/SKILL.md +76 -0
  840. package/skills/debug-manifest/SKILL.md +5 -11
  841. package/skills/defer-hydration/SKILL.md +235 -0
  842. package/skills/deployment-caching/SKILL.md +176 -0
  843. package/skills/document-cache/SKILL.md +116 -58
  844. package/skills/fonts/SKILL.md +1 -1
  845. package/skills/handler-use/SKILL.md +364 -0
  846. package/skills/hooks/SKILL.md +73 -691
  847. package/skills/hooks/data.md +282 -0
  848. package/skills/hooks/handle-and-actions.md +110 -0
  849. package/skills/hooks/navigation.md +110 -0
  850. package/skills/hooks/outlets.md +62 -0
  851. package/skills/hooks/state.md +228 -0
  852. package/skills/hooks/urls.md +135 -0
  853. package/skills/host-router/SKILL.md +129 -27
  854. package/skills/i18n/SKILL.md +276 -0
  855. package/skills/intercept/SKILL.md +94 -18
  856. package/skills/layout/SKILL.md +62 -19
  857. package/skills/links/SKILL.md +285 -17
  858. package/skills/loader/SKILL.md +415 -55
  859. package/skills/middleware/SKILL.md +92 -16
  860. package/skills/migrate-nextjs/SKILL.md +852 -0
  861. package/skills/migrate-nextjs/backend-host-swap.md +120 -0
  862. package/skills/migrate-react-router/SKILL.md +189 -0
  863. package/skills/migrate-react-router/component-migration.md +201 -0
  864. package/skills/migrate-react-router/data-and-actions.md +236 -0
  865. package/skills/migrate-react-router/route-mapping.md +284 -0
  866. package/skills/mime-routes/SKILL.md +55 -18
  867. package/skills/observability/SKILL.md +231 -0
  868. package/skills/parallel/SKILL.md +245 -10
  869. package/skills/ppr/SKILL.md +914 -0
  870. package/skills/prerender/SKILL.md +243 -135
  871. package/skills/rango/SKILL.md +325 -24
  872. package/skills/react-compiler/SKILL.md +168 -0
  873. package/skills/response-routes/SKILL.md +180 -52
  874. package/skills/route/SKILL.md +181 -9
  875. package/skills/router-setup/SKILL.md +154 -11
  876. package/skills/scripts/SKILL.md +189 -0
  877. package/skills/server-actions/SKILL.md +776 -0
  878. package/skills/shell-manifest/SKILL.md +194 -0
  879. package/skills/streams-and-websockets/SKILL.md +283 -0
  880. package/skills/tailwind/SKILL.md +28 -4
  881. package/skills/testing/SKILL.md +131 -0
  882. package/skills/testing/bindings.md +103 -0
  883. package/skills/testing/cache-prerender.md +172 -0
  884. package/skills/testing/client-components.md +131 -0
  885. package/skills/testing/e2e-parity.md +125 -0
  886. package/skills/testing/flight.md +91 -0
  887. package/skills/testing/handles.md +153 -0
  888. package/skills/testing/loader.md +130 -0
  889. package/skills/testing/middleware.md +99 -0
  890. package/skills/testing/render-handler.md +122 -0
  891. package/skills/testing/response-routes.md +95 -0
  892. package/skills/testing/reverse-and-types.md +85 -0
  893. package/skills/testing/server-actions.md +107 -0
  894. package/skills/testing/server-tree.md +128 -0
  895. package/skills/testing/setup.md +123 -0
  896. package/skills/theme/SKILL.md +9 -6
  897. package/skills/typesafety/SKILL.md +45 -616
  898. package/skills/typesafety/env-and-bindings.md +254 -0
  899. package/skills/typesafety/generated-files-and-cli.md +342 -0
  900. package/skills/typesafety/params-and-search.md +153 -0
  901. package/skills/typesafety/route-types.md +213 -0
  902. package/skills/use-cache/SKILL.md +121 -15
  903. package/skills/vercel/SKILL.md +149 -0
  904. package/skills/view-transitions/SKILL.md +341 -0
  905. package/src/__augment-tests__/augment.ts +81 -0
  906. package/src/__augment-tests__/augmented.check.ts +116 -0
  907. package/src/__internal.ts +1 -66
  908. package/src/browser/action-coordinator.ts +53 -36
  909. package/src/browser/action-fence.ts +47 -0
  910. package/src/browser/app-shell.ts +39 -0
  911. package/src/browser/app-version.ts +14 -0
  912. package/src/browser/connection-warmup.ts +134 -0
  913. package/src/browser/cookie-name.ts +140 -0
  914. package/src/browser/dev-discovery.ts +66 -0
  915. package/src/browser/event-controller.ts +405 -168
  916. package/src/browser/history-state.ts +21 -0
  917. package/src/browser/index.ts +3 -3
  918. package/src/browser/invalidate-client-cache.ts +52 -0
  919. package/src/browser/link-interceptor.ts +469 -20
  920. package/src/browser/logging.ts +28 -0
  921. package/src/browser/merge-segment-loaders.ts +6 -4
  922. package/src/browser/navigation-bridge.ts +209 -40
  923. package/src/browser/navigation-client.ts +284 -73
  924. package/src/browser/navigation-store-handle.ts +38 -0
  925. package/src/browser/navigation-store.ts +208 -329
  926. package/src/browser/navigation-transaction.ts +18 -66
  927. package/src/browser/network-error-handler.ts +34 -7
  928. package/src/browser/notify-listeners.ts +22 -0
  929. package/src/browser/partial-update.ts +278 -126
  930. package/src/browser/prefetch/cache.ts +362 -51
  931. package/src/browser/prefetch/default-strategy.ts +74 -0
  932. package/src/browser/prefetch/fetch.ts +453 -40
  933. package/src/browser/prefetch/invalidation.ts +30 -0
  934. package/src/browser/prefetch/loader.ts +111 -0
  935. package/src/browser/prefetch/observer.ts +50 -22
  936. package/src/browser/prefetch/policy.ts +6 -0
  937. package/src/browser/prefetch/queue.ts +144 -23
  938. package/src/browser/prefetch/resource-ready.ts +77 -0
  939. package/src/browser/prefetch/runtime.ts +6 -0
  940. package/src/browser/rango-state.ts +178 -75
  941. package/src/browser/react/Link.tsx +187 -75
  942. package/src/browser/react/NavigationProvider.tsx +249 -123
  943. package/src/browser/react/ScrollRestoration.tsx +10 -6
  944. package/src/browser/react/context.ts +11 -2
  945. package/src/browser/react/filter-segment-order.ts +66 -7
  946. package/src/browser/react/index.ts +0 -48
  947. package/src/browser/react/location-state-shared.ts +178 -8
  948. package/src/browser/react/location-state.ts +39 -14
  949. package/src/browser/react/use-action.ts +6 -15
  950. package/src/browser/react/use-handle.ts +23 -69
  951. package/src/browser/react/use-href.tsx +8 -1
  952. package/src/browser/react/use-link-status.ts +33 -8
  953. package/src/browser/react/use-navigation.ts +32 -7
  954. package/src/browser/react/use-params.ts +20 -10
  955. package/src/browser/react/use-reverse.ts +106 -0
  956. package/src/browser/react/use-router.ts +47 -12
  957. package/src/browser/react/use-search-params.ts +0 -5
  958. package/src/browser/react/use-segments.ts +11 -21
  959. package/src/browser/response-adapter.ts +99 -8
  960. package/src/browser/rsc-router.tsx +375 -84
  961. package/src/browser/scroll-restoration.ts +61 -47
  962. package/src/browser/segment-reconciler.ts +44 -7
  963. package/src/browser/segment-structure-assert.ts +2 -2
  964. package/src/browser/server-action-bridge.ts +270 -71
  965. package/src/browser/types.ts +166 -37
  966. package/src/browser/validate-redirect-origin.ts +43 -16
  967. package/src/build/collect-fallback-refs.ts +107 -0
  968. package/src/build/generate-manifest.ts +217 -188
  969. package/src/build/generate-route-types.ts +6 -1
  970. package/src/build/index.ts +11 -3
  971. package/src/build/merge-full-manifests.ts +161 -0
  972. package/src/build/prefix-tree-utils.ts +123 -0
  973. package/src/build/route-trie.ts +43 -254
  974. package/src/build/route-types/ast-route-extraction.ts +15 -8
  975. package/src/build/route-types/codegen.ts +16 -5
  976. package/src/build/route-types/include-resolution.ts +521 -65
  977. package/src/build/route-types/param-extraction.ts +6 -3
  978. package/src/build/route-types/per-module-writer.ts +33 -12
  979. package/src/build/route-types/router-processing.ts +411 -154
  980. package/src/build/route-types/scan-filter.ts +9 -2
  981. package/src/build/route-types/source-scan.ts +216 -0
  982. package/src/build/runtime-discovery.ts +32 -29
  983. package/src/cache/cache-error.ts +104 -0
  984. package/src/cache/cache-exec-scope.ts +47 -0
  985. package/src/cache/cache-key-utils.ts +73 -15
  986. package/src/cache/cache-policy.ts +108 -34
  987. package/src/cache/cache-runtime.ts +566 -117
  988. package/src/cache/cache-scope.ts +431 -112
  989. package/src/cache/cache-tag.ts +149 -0
  990. package/src/cache/cf/cf-base64.ts +33 -0
  991. package/src/cache/cf/cf-cache-constants.ts +134 -0
  992. package/src/cache/cf/cf-cache-store.ts +3250 -173
  993. package/src/cache/cf/cf-cache-types.ts +417 -0
  994. package/src/cache/cf/cf-kv-utils.ts +84 -0
  995. package/src/cache/cf/cf-tag-marker-memo.ts +108 -0
  996. package/src/cache/cf/cf-zone-purge.ts +101 -0
  997. package/src/cache/cf/index.ts +16 -17
  998. package/src/cache/document-cache.ts +202 -61
  999. package/src/cache/handle-snapshot.ts +92 -1
  1000. package/src/cache/index.ts +33 -20
  1001. package/src/cache/memory-segment-store.ts +286 -37
  1002. package/src/cache/profile-registry.ts +46 -31
  1003. package/src/cache/read-through-swr.ts +66 -16
  1004. package/src/cache/search-params-filter.ts +118 -0
  1005. package/src/cache/segment-codec.ts +80 -25
  1006. package/src/cache/shell-snapshot.ts +516 -0
  1007. package/src/cache/tag-invalidation.ts +230 -0
  1008. package/src/cache/taint.ts +83 -9
  1009. package/src/cache/types.ts +323 -100
  1010. package/src/cache/vercel/index.ts +11 -0
  1011. package/src/cache/vercel/vercel-cache-store.ts +1264 -0
  1012. package/src/client-urls/client-root.tsx +161 -0
  1013. package/src/client-urls/client-urls.ts +698 -0
  1014. package/src/client-urls/navigation.ts +237 -0
  1015. package/src/client-urls/revalidation-protocol.ts +56 -0
  1016. package/src/client-urls/server-projection.ts +579 -0
  1017. package/src/client-urls/types.ts +195 -0
  1018. package/src/client.rsc.tsx +48 -21
  1019. package/src/client.tsx +158 -294
  1020. package/src/cloudflare/index.ts +11 -0
  1021. package/src/cloudflare/tracing.ts +112 -0
  1022. package/src/component-utils.ts +19 -0
  1023. package/src/components/DefaultDocument.tsx +8 -2
  1024. package/src/context-var.ts +84 -2
  1025. package/src/debug.ts +2 -2
  1026. package/src/decode-loader-results.ts +160 -0
  1027. package/src/defer.ts +185 -0
  1028. package/src/deps/ssr.ts +4 -2
  1029. package/src/dev-discovery-protocol.ts +11 -0
  1030. package/src/encode-kv.ts +49 -0
  1031. package/src/errors.ts +44 -4
  1032. package/src/escape-script.ts +52 -0
  1033. package/src/handle.ts +104 -34
  1034. package/src/handles/MetaTags.tsx +24 -53
  1035. package/src/handles/Scripts.tsx +183 -0
  1036. package/src/handles/breadcrumbs.ts +35 -8
  1037. package/src/handles/deferred-resolution.ts +134 -0
  1038. package/src/handles/is-thenable.ts +16 -0
  1039. package/src/handles/meta.ts +14 -40
  1040. package/src/handles/script.ts +244 -0
  1041. package/src/host/cookie-handler.ts +9 -60
  1042. package/src/host/errors.ts +13 -22
  1043. package/src/host/index.ts +9 -2
  1044. package/src/host/pattern-matcher.ts +23 -52
  1045. package/src/host/router.ts +107 -99
  1046. package/src/host/testing.ts +40 -27
  1047. package/src/host/types.ts +37 -4
  1048. package/src/host/utils.ts +1 -1
  1049. package/src/href-client.ts +137 -22
  1050. package/src/index.rsc.ts +111 -13
  1051. package/src/index.ts +151 -19
  1052. package/src/internal-debug.ts +11 -10
  1053. package/src/loader-redirect.tsx +47 -0
  1054. package/src/loader-store.ts +500 -0
  1055. package/src/loader.rsc.ts +20 -13
  1056. package/src/loader.ts +12 -11
  1057. package/src/missing-id-error.ts +68 -0
  1058. package/src/outlet-context.ts +13 -1
  1059. package/src/outlet-provider.tsx +16 -6
  1060. package/src/prerender/build-shell-capture.ts +453 -0
  1061. package/src/prerender/param-hash.ts +16 -16
  1062. package/src/prerender/shell-manifest-key.ts +20 -0
  1063. package/src/prerender/store.ts +52 -42
  1064. package/src/prerender.ts +215 -86
  1065. package/src/redirect-origin.ts +143 -0
  1066. package/src/regex-escape.ts +8 -0
  1067. package/src/render-error-thrower.tsx +20 -0
  1068. package/src/response-utils.ts +62 -0
  1069. package/src/reverse.ts +65 -15
  1070. package/src/root-error-boundary.tsx +1 -19
  1071. package/src/route-content-wrapper.tsx +112 -78
  1072. package/src/route-definition/dsl-helpers.ts +519 -307
  1073. package/src/route-definition/helper-factories.ts +28 -140
  1074. package/src/route-definition/helpers-types.ts +169 -78
  1075. package/src/route-definition/index.ts +4 -2
  1076. package/src/route-definition/redirect.ts +53 -12
  1077. package/src/route-definition/resolve-handler-use.ts +160 -0
  1078. package/src/route-definition/use-item-types.ts +29 -0
  1079. package/src/route-map-builder.ts +102 -68
  1080. package/src/route-types.ts +37 -46
  1081. package/src/router/basename.ts +14 -0
  1082. package/src/router/content-negotiation.ts +211 -22
  1083. package/src/router/error-handling.ts +110 -29
  1084. package/src/router/find-match.ts +130 -29
  1085. package/src/router/handler-context.ts +105 -45
  1086. package/src/router/instrument.ts +401 -0
  1087. package/src/router/intercept-resolution.ts +108 -24
  1088. package/src/router/lazy-includes.ts +90 -63
  1089. package/src/router/loader-resolution.ts +529 -57
  1090. package/src/router/logging.ts +5 -8
  1091. package/src/router/manifest.ts +105 -56
  1092. package/src/router/match-api.ts +190 -219
  1093. package/src/router/match-context.ts +0 -22
  1094. package/src/router/match-handlers.ts +268 -171
  1095. package/src/router/match-middleware/background-revalidation.ts +66 -22
  1096. package/src/router/match-middleware/cache-lookup.ts +368 -277
  1097. package/src/router/match-middleware/cache-store.ts +175 -50
  1098. package/src/router/match-middleware/intercept-resolution.ts +8 -28
  1099. package/src/router/match-middleware/segment-resolution.ts +52 -18
  1100. package/src/router/match-pipelines.ts +1 -42
  1101. package/src/router/match-result.ts +135 -44
  1102. package/src/router/metrics.ts +22 -36
  1103. package/src/router/middleware-types.ts +26 -138
  1104. package/src/router/middleware.ts +305 -177
  1105. package/src/router/navigation-snapshot.ts +173 -0
  1106. package/src/router/params-util.ts +23 -0
  1107. package/src/router/parse-pattern.ts +115 -0
  1108. package/src/router/pattern-matching.ts +181 -150
  1109. package/src/router/prefetch-cache-ttl.ts +51 -0
  1110. package/src/router/prefetch-default.ts +59 -0
  1111. package/src/router/prefetch-limits.ts +37 -0
  1112. package/src/router/prerender-match.ts +250 -60
  1113. package/src/router/preview-match.ts +35 -103
  1114. package/src/router/request-classification.ts +291 -0
  1115. package/src/router/revalidation.ts +146 -83
  1116. package/src/router/route-snapshot.ts +256 -0
  1117. package/src/router/route-trie-builder.ts +334 -0
  1118. package/src/router/router-context.ts +11 -29
  1119. package/src/router/router-interfaces.ts +199 -37
  1120. package/src/router/router-options.ts +271 -21
  1121. package/src/router/router-registry.ts +2 -5
  1122. package/src/router/segment-resolution/fresh.ts +367 -78
  1123. package/src/router/segment-resolution/helpers.ts +116 -33
  1124. package/src/router/segment-resolution/loader-cache.ts +188 -39
  1125. package/src/router/segment-resolution/loader-mask.ts +60 -0
  1126. package/src/router/segment-resolution/loader-snapshot.ts +259 -0
  1127. package/src/router/segment-resolution/mask-nested.ts +99 -0
  1128. package/src/router/segment-resolution/revalidation.ts +520 -385
  1129. package/src/router/segment-resolution/static-store.ts +55 -15
  1130. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  1131. package/src/router/segment-resolution/view-transition-default.ts +60 -0
  1132. package/src/router/segment-resolution.ts +5 -1
  1133. package/src/router/segment-wrappers.ts +8 -5
  1134. package/src/router/state-cookie-name.ts +33 -0
  1135. package/src/router/substitute-pattern-params.ts +75 -0
  1136. package/src/router/telemetry-otel.ts +171 -200
  1137. package/src/router/telemetry.ts +106 -20
  1138. package/src/router/timeout.ts +53 -22
  1139. package/src/router/tracing.ts +235 -0
  1140. package/src/router/transition-when.ts +76 -0
  1141. package/src/router/trie-matching.ts +171 -59
  1142. package/src/router/types.ts +10 -63
  1143. package/src/router/url-params.ts +57 -0
  1144. package/src/router.ts +301 -78
  1145. package/src/rsc/capture-queue.ts +218 -0
  1146. package/src/rsc/full-payload.ts +77 -0
  1147. package/src/rsc/handler-context.ts +4 -2
  1148. package/src/rsc/handler.ts +901 -519
  1149. package/src/rsc/helpers.ts +245 -47
  1150. package/src/rsc/index.ts +2 -5
  1151. package/src/rsc/json-route-result.ts +38 -0
  1152. package/src/rsc/loader-fetch.ts +129 -33
  1153. package/src/rsc/manifest-init.ts +55 -52
  1154. package/src/rsc/nonce.ts +10 -1
  1155. package/src/rsc/origin-guard.ts +39 -25
  1156. package/src/rsc/progressive-enhancement.ts +381 -74
  1157. package/src/rsc/redirect-guard.ts +102 -0
  1158. package/src/rsc/render-pipeline.ts +611 -0
  1159. package/src/rsc/response-cache-serve.ts +259 -0
  1160. package/src/rsc/response-error.ts +79 -12
  1161. package/src/rsc/response-route-handler.ts +80 -206
  1162. package/src/rsc/routine-plan.ts +359 -0
  1163. package/src/rsc/rsc-rendering.ts +1625 -156
  1164. package/src/rsc/runtime-warnings.ts +23 -10
  1165. package/src/rsc/server-action.ts +424 -133
  1166. package/src/rsc/shell-build-manifest.ts +336 -0
  1167. package/src/rsc/shell-capture-constants.ts +45 -0
  1168. package/src/rsc/shell-capture.ts +2063 -0
  1169. package/src/rsc/shell-serve.ts +337 -0
  1170. package/src/rsc/ssr-setup.ts +113 -18
  1171. package/src/rsc/stream-idle.ts +137 -0
  1172. package/src/rsc/transition-gate.ts +86 -0
  1173. package/src/rsc/types.ts +100 -6
  1174. package/src/runtime-env.ts +18 -0
  1175. package/src/search-params.ts +35 -30
  1176. package/src/segment-content-promise.ts +67 -0
  1177. package/src/segment-fragments.ts +165 -0
  1178. package/src/segment-loader-promise.ts +167 -0
  1179. package/src/segment-system.tsx +507 -133
  1180. package/src/serialize.ts +243 -0
  1181. package/src/server/context.ts +581 -61
  1182. package/src/server/cookie-parse.ts +32 -0
  1183. package/src/server/cookie-store.ts +162 -15
  1184. package/src/server/handle-store.ts +209 -70
  1185. package/src/server/loader-registry.ts +38 -46
  1186. package/src/server/request-context.ts +961 -186
  1187. package/src/server.ts +7 -2
  1188. package/src/ssr/index.tsx +631 -179
  1189. package/src/ssr/inject-rsc-eager.ts +167 -0
  1190. package/src/ssr/preinit-client-references.ts +106 -0
  1191. package/src/ssr/ssr-root.tsx +262 -0
  1192. package/src/static-handler.ts +45 -20
  1193. package/src/testing/cache-status.ts +162 -0
  1194. package/src/testing/collect-handle.ts +46 -0
  1195. package/src/testing/dispatch.ts +951 -0
  1196. package/src/testing/dom.entry.ts +22 -0
  1197. package/src/testing/e2e/fixture.ts +188 -0
  1198. package/src/testing/e2e/index.ts +147 -0
  1199. package/src/testing/e2e/matchers.ts +35 -0
  1200. package/src/testing/e2e/page-helpers.ts +319 -0
  1201. package/src/testing/e2e/parity.ts +400 -0
  1202. package/src/testing/e2e/server.ts +195 -0
  1203. package/src/testing/flight-matchers.ts +97 -0
  1204. package/src/testing/flight-normalize.ts +11 -0
  1205. package/src/testing/flight-runtime.d.ts +57 -0
  1206. package/src/testing/flight-tree.ts +682 -0
  1207. package/src/testing/flight.entry.ts +52 -0
  1208. package/src/testing/flight.ts +257 -0
  1209. package/src/testing/generated-routes.ts +199 -0
  1210. package/src/testing/index.ts +121 -0
  1211. package/src/testing/internal/context.ts +380 -0
  1212. package/src/testing/internal/flight-client-globals.ts +30 -0
  1213. package/src/testing/internal/seed-vars.ts +54 -0
  1214. package/src/testing/render-handler.ts +371 -0
  1215. package/src/testing/render-route.tsx +667 -0
  1216. package/src/testing/run-loader.ts +423 -0
  1217. package/src/testing/run-middleware.ts +219 -0
  1218. package/src/testing/run-transition-when.ts +197 -0
  1219. package/src/testing/shell-status.ts +206 -0
  1220. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  1221. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  1222. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  1223. package/src/testing/vitest-stubs/version.ts +5 -0
  1224. package/src/testing/vitest.ts +305 -0
  1225. package/src/theme/ThemeProvider.tsx +56 -84
  1226. package/src/theme/ThemeScript.tsx +7 -9
  1227. package/src/theme/constants.ts +52 -13
  1228. package/src/theme/index.ts +0 -7
  1229. package/src/theme/theme-context.ts +1 -5
  1230. package/src/theme/theme-script.ts +22 -21
  1231. package/src/theme/use-theme.ts +0 -3
  1232. package/src/types/boundaries.ts +15 -35
  1233. package/src/types/cache-types.ts +17 -8
  1234. package/src/types/error-types.ts +30 -90
  1235. package/src/types/global-namespace.ts +54 -41
  1236. package/src/types/handler-context.ts +244 -81
  1237. package/src/types/index.ts +4 -10
  1238. package/src/types/loader-types.ts +99 -15
  1239. package/src/types/request-scope.ts +112 -0
  1240. package/src/types/route-config.ts +20 -52
  1241. package/src/types/route-entry.ts +22 -7
  1242. package/src/types/segments.ts +149 -14
  1243. package/src/urls/include-helper.ts +59 -75
  1244. package/src/urls/include-provider.ts +71 -0
  1245. package/src/urls/index.ts +2 -11
  1246. package/src/urls/path-helper-types.ts +118 -26
  1247. package/src/urls/path-helper.ts +70 -115
  1248. package/src/urls/pattern-types.ts +113 -19
  1249. package/src/urls/response-types.ts +25 -22
  1250. package/src/urls/type-extraction.ts +98 -154
  1251. package/src/urls/urls-function.ts +1 -19
  1252. package/src/use-loader.tsx +404 -86
  1253. package/src/vercel/index.ts +11 -0
  1254. package/src/vercel/tracing.ts +89 -0
  1255. package/src/vite/debug.ts +185 -0
  1256. package/src/vite/discovery/bundle-postprocess.ts +46 -45
  1257. package/src/vite/discovery/client-urls-projection.ts +322 -0
  1258. package/src/vite/discovery/dev-prerender-cache.ts +117 -0
  1259. package/src/vite/discovery/discover-routers.ts +178 -147
  1260. package/src/vite/discovery/discovery-errors.ts +255 -0
  1261. package/src/vite/discovery/gate-state.ts +171 -0
  1262. package/src/vite/discovery/prerender-collection.ts +243 -134
  1263. package/src/vite/discovery/route-types-writer.ts +40 -84
  1264. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  1265. package/src/vite/discovery/shell-prerender-phase.ts +397 -0
  1266. package/src/vite/discovery/state.ts +116 -11
  1267. package/src/vite/discovery/virtual-module-codegen.ts +226 -87
  1268. package/src/vite/encryption-key.ts +29 -0
  1269. package/src/vite/index.ts +16 -0
  1270. package/src/vite/inject-client-debug.ts +88 -0
  1271. package/src/vite/plugin-types.ts +267 -62
  1272. package/src/vite/plugins/cjs-to-esm.ts +16 -19
  1273. package/src/vite/plugins/client-ref-dedup.ts +16 -11
  1274. package/src/vite/plugins/client-ref-hashing.ts +28 -15
  1275. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  1276. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1277. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  1278. package/src/vite/plugins/expose-action-id.ts +51 -100
  1279. package/src/vite/plugins/expose-id-utils.ts +96 -51
  1280. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  1281. package/src/vite/plugins/expose-ids/handler-transform.ts +15 -64
  1282. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  1283. package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
  1284. package/src/vite/plugins/expose-internal-ids.ts +599 -317
  1285. package/src/vite/plugins/performance-tracks.ts +89 -0
  1286. package/src/vite/plugins/refresh-cmd.ts +89 -27
  1287. package/src/vite/plugins/server-ref-hashing.ts +74 -0
  1288. package/src/vite/plugins/server-reference-pattern.ts +10 -0
  1289. package/src/vite/plugins/use-cache-transform.ts +73 -83
  1290. package/src/vite/plugins/vercel-output.ts +384 -0
  1291. package/src/vite/plugins/version-injector.ts +39 -29
  1292. package/src/vite/plugins/version-plugin.ts +54 -37
  1293. package/src/vite/plugins/virtual-entries.ts +193 -30
  1294. package/src/vite/rango.ts +403 -304
  1295. package/src/vite/router-discovery.ts +1802 -187
  1296. package/src/vite/utils/ast-handler-extract.ts +26 -35
  1297. package/src/vite/utils/banner.ts +4 -4
  1298. package/src/vite/utils/bundle-analysis.ts +10 -15
  1299. package/src/vite/utils/client-chunks.ts +184 -0
  1300. package/src/vite/utils/directive-prologue.ts +40 -0
  1301. package/src/vite/utils/forward-user-plugins.ts +171 -0
  1302. package/src/vite/utils/manifest-utils.ts +1 -59
  1303. package/src/vite/utils/package-resolution.ts +21 -52
  1304. package/src/vite/utils/prerender-utils.ts +123 -44
  1305. package/src/vite/utils/shared-utils.ts +158 -44
  1306. package/src/browser/action-response-classifier.ts +0 -99
  1307. package/src/browser/react/use-client-cache.ts +0 -58
  1308. package/src/browser/shallow.ts +0 -40
  1309. package/src/handles/index.ts +0 -7
  1310. package/src/network-error-thrower.tsx +0 -23
  1311. package/src/router/middleware-cookies.ts +0 -55
@@ -1,52 +1,116 @@
1
- import type { Plugin } from "vite";
1
+ import type { Plugin, ResolvedConfig } from "vite";
2
2
  import * as Vite from "vite";
3
+ import { isAbsolute, resolve } from "node:path";
3
4
  import { getPublishedPackageName } from "./package-resolution.js";
5
+ import { performanceTracksOptimizeDepsPlugin } from "../plugins/performance-tracks.js";
4
6
  import {
5
7
  VIRTUAL_ENTRY_BROWSER,
6
- VIRTUAL_ENTRY_SSR,
8
+ getVirtualEntrySSR,
7
9
  getVirtualEntryRSC,
10
+ getVirtualEntryRSCHost,
11
+ getVirtualVersionContent,
8
12
  VIRTUAL_IDS,
9
13
  } from "../plugins/virtual-entries.js";
14
+ import type { HeadScriptsOption } from "../plugin-types.js";
15
+
16
+ // Cloudflare preset: @cloudflare/vite-plugin sets optimizeDeps.entries (string
17
+ // or array) on the rsc environment. Single source for both the discovery plugin
18
+ // and the version injector so they target the same entry.
19
+ export function resolveRscEntryFromConfig(
20
+ config: ResolvedConfig,
21
+ ): string | undefined {
22
+ const entries = (config.environments as any)?.["rsc"]?.optimizeDeps?.entries;
23
+ if (typeof entries === "string") return entries;
24
+ if (Array.isArray(entries) && entries.length > 0) return entries[0];
25
+ return undefined;
26
+ }
10
27
 
11
28
  /**
12
- * esbuild plugin to provide rsc-router:version virtual module during optimization.
13
- * This is needed because esbuild runs during Vite's dependency optimization phase,
14
- * before Vite's plugin system can handle virtual modules.
29
+ * Rolldown plugin to provide the version virtual module during dependency
30
+ * optimization. Vite 8 optimizes deps with Rolldown (a Rollup-style plugin
31
+ * pipeline that is separate from the main plugin set), so this is a
32
+ * resolveId/load plugin under optimizeDeps.rolldownOptions. Any dep pulled into
33
+ * optimization that imports the version virtual module gets a "dev" stub here;
34
+ * the real VERSION is injected into runtime modules by the version plugin.
15
35
  */
16
- const versionEsbuildPlugin = {
36
+ const versionRolldownPlugin = {
17
37
  name: "@rangojs/router-version",
18
- setup(build: any): void {
19
- build.onResolve({ filter: /^rsc-router:version$/ }, (args: any) => ({
20
- path: args.path,
21
- namespace: "@rangojs/router-virtual",
22
- }));
23
- build.onLoad(
24
- { filter: /.*/, namespace: "@rangojs/router-virtual" },
25
- () => ({
26
- contents: `export const VERSION = "dev";`,
27
- loader: "js",
28
- }),
29
- );
38
+ resolveId(id: string): string | undefined {
39
+ if (id === VIRTUAL_IDS.version) return "\0" + VIRTUAL_IDS.version;
40
+ return undefined;
41
+ },
42
+ load(id: string): string | undefined {
43
+ if (id === "\0" + VIRTUAL_IDS.version) {
44
+ return getVirtualVersionContent("dev");
45
+ }
46
+ return undefined;
30
47
  },
31
48
  };
32
49
 
33
50
  /**
34
- * Shared esbuild options for dependency optimization.
35
- * Includes the version stub plugin for all environments.
51
+ * Shared Rolldown options for dependency optimization (Vite 8).
52
+ * Includes the version stub plugin and the performance-tracks RSDW patch.
36
53
  */
37
- export const sharedEsbuildOptions: {
38
- plugins: (typeof versionEsbuildPlugin)[];
54
+ export const sharedRolldownOptions: {
55
+ plugins: any[];
39
56
  } = {
40
- plugins: [versionEsbuildPlugin],
57
+ plugins: [versionRolldownPlugin, performanceTracksOptimizeDepsPlugin()],
41
58
  };
42
59
 
60
+ /**
61
+ * Normalize an explicit `hostRouter` option into the specifier emitted as the
62
+ * host entry's `import ... from "<path>"`, and — for the forms that resolve
63
+ * unambiguously against the project root — verify the file exists (failing with
64
+ * a rango message instead of a downstream bundler "failed to resolve").
65
+ *
66
+ * Only a BARE specifier ("src/worker.rsc.tsx") that exists under the root is
67
+ * rewritten (to "./src/...") so it is not read as a package. A bare specifier
68
+ * that does NOT exist under the root is passed through VERBATIM: it may be a
69
+ * Vite alias ("@/worker.rsc.tsx"), an imports-map entry ("#app/worker"), or a
70
+ * workspace package the bundler resolves — rewriting or rejecting those was a
71
+ * regression (aliases worked before normalization existed). "./"/"../", a
72
+ * leading-slash (Vite root-relative), and a filesystem-absolute path are
73
+ * emitted unchanged — Vite resolves each. A leading-slash path and a
74
+ * filesystem-absolute path are indistinguishable on POSIX, so both are treated
75
+ * as "rooted": passed through WITHOUT an existence check (guessing between the
76
+ * two would wrongly reject a valid file — this was a regression the first time
77
+ * the check was added). Only the explicitly-relative forms, which resolve
78
+ * unambiguously against the root, fail fast with a rango message.
79
+ *
80
+ * `exists` is injected so the logic is unit-testable without a real filesystem.
81
+ */
82
+ export function normalizeHostRouterEntry(
83
+ rawInput: string,
84
+ root: string,
85
+ exists: (absPath: string) => boolean,
86
+ ): string {
87
+ const raw = rawInput.replaceAll("\\", "/");
88
+ const isRelative = raw.startsWith("./") || raw.startsWith("../");
89
+ const isRooted = raw.startsWith("/") || isAbsolute(rawInput);
90
+ if (isRooted) return raw;
91
+ if (isRelative) {
92
+ if (!exists(resolve(root, raw))) {
93
+ throw new Error(
94
+ `[rango] hostRouter entry not found: "${rawInput}" (resolved under ` +
95
+ `${root}). Point it at your createHostRouter() module, e.g. ` +
96
+ `rango({ hostRouter: "./src/worker.rsc.tsx" }).`,
97
+ );
98
+ }
99
+ return raw;
100
+ }
101
+ // Bare specifier: an existing root-relative file gets the explicit "./";
102
+ // anything else (alias, imports-map, package) is the bundler's to resolve.
103
+ return exists(resolve(root, raw)) ? "./" + raw : raw;
104
+ }
105
+
43
106
  /**
44
107
  * Create a virtual modules plugin for default entry files.
45
108
  * Provides virtual module content when entries use VIRTUAL_IDS (no custom entry configured).
46
109
  */
47
110
  export function createVirtualEntriesPlugin(
48
111
  entries: { client: string; ssr: string; rsc?: string },
49
- routerPathRef?: { path?: string },
112
+ routerPathRef?: { path?: string; kind?: "router" | "host" },
113
+ options?: { headScripts?: HeadScriptsOption },
50
114
  ): Plugin {
51
115
  // Build virtual modules map based on which entries use virtual IDs
52
116
  const virtualModules: Record<string, string> = {};
@@ -55,7 +119,7 @@ export function createVirtualEntriesPlugin(
55
119
  virtualModules[VIRTUAL_IDS.browser] = VIRTUAL_ENTRY_BROWSER;
56
120
  }
57
121
  if (entries.ssr === VIRTUAL_IDS.ssr) {
58
- virtualModules[VIRTUAL_IDS.ssr] = VIRTUAL_ENTRY_SSR;
122
+ virtualModules[VIRTUAL_IDS.ssr] = getVirtualEntrySSR(options?.headScripts);
59
123
  }
60
124
 
61
125
  // RSC entry is resolved lazily in load() because routerPath may be
@@ -94,7 +158,9 @@ export function createVirtualEntriesPlugin(
94
158
  : routerPathRef.path;
95
159
  // Normalize backslashes for Windows (path.join/slice preserve native separators)
96
160
  const absoluteRouterPath = raw.replaceAll("\\", "/");
97
- return getVirtualEntryRSC(absoluteRouterPath);
161
+ return routerPathRef.kind === "host"
162
+ ? getVirtualEntryRSCHost(absoluteRouterPath)
163
+ : getVirtualEntryRSC(absoluteRouterPath);
98
164
  }
99
165
  }
100
166
  return null;
@@ -102,14 +168,54 @@ export function createVirtualEntriesPlugin(
102
168
  };
103
169
  }
104
170
 
171
+ // Matches rollup's FILE_NAME_CONFLICT message and reports whether the colliding
172
+ // file is a content-hashed asset, e.g.
173
+ // The emitted file "assets/index-DlGNrvnU.css" overwrites a previously ...
174
+ // The emitted file "assets/inter-latin-Dx4kXJAl.woff2" overwrites a ...
175
+ // The match is UNANCHORED on purpose: by the time the warning reaches this user
176
+ // onwarn handler, Vite's logger has wrapped rollup's raw message with an ANSI
177
+ // color sequence and a "[CODE] " label, e.g.
178
+ // "[FILE_NAME_CONFLICT] The emitted file \"...\" overwrites ..."
179
+ // A "^The emitted file" anchor sits behind that prefix and never matches; and
180
+ // Vite also strips the JSON.stringify quotes rollup puts around the filename, so
181
+ // the match is UNANCHORED and quote-OPTIONAL ("?...?"?). The non-whitespace
182
+ // capture stops at the space before "overwrites" (Vite's unquoted display form)
183
+ // or the closing quote (raw rollup form); either way it carries no ANSI.
184
+ // A content-hashed name ends with a "-" separator + a Vite content hash. The
185
+ // hash is a FIXED-LENGTH base64url run ([A-Za-z0-9_-], default 8), so it can
186
+ // itself contain "-"/"_": it CANNOT be located by splitting on the last "-"
187
+ // (that lands inside the hash whenever it carries a dash, e.g. "...-Cabi7G8-" ->
188
+ // "" or "...-CkhJZR-_" -> "_", which let those conflicts leak). Instead take the
189
+ // trailing HASH_LEN chars and require the "-" separator right before them. The
190
+ // hash must hold an uppercase letter or digit (a real hash is never an
191
+ // all-lowercase word), so stable names like "assets/manifest.json" or
192
+ // "assets/loading-skeleton.css" still surface as potential genuine overwrites.
193
+ function isContentHashedAssetConflict(message: string | undefined): boolean {
194
+ if (!message) return false;
195
+ const match =
196
+ /The emitted file "?([^"\s]+)"? overwrites a previously emitted file/.exec(
197
+ message,
198
+ );
199
+ if (!match) return false;
200
+ const fileName = match[1];
201
+ const base = fileName.slice(fileName.lastIndexOf("/") + 1);
202
+ const dot = base.lastIndexOf(".");
203
+ if (dot <= 0) return false;
204
+ const stem = base.slice(0, dot);
205
+ // HASH_LEN tracks Vite's default [hash] width; bump it if an app sets a custom
206
+ // assetFileNames hash length.
207
+ const HASH_LEN = 8;
208
+ if (stem.length < HASH_LEN + 1 || stem[stem.length - HASH_LEN - 1] !== "-") {
209
+ return false;
210
+ }
211
+ const hash = stem.slice(-HASH_LEN);
212
+ return /^[A-Za-z0-9_-]+$/.test(hash) && /[A-Z0-9]/.test(hash);
213
+ }
214
+
105
215
  /**
106
- * Rollup onwarn handler that suppresses known harmless warnings:
107
- * - "use client" directives: handled by the RSC plugin, not relevant to Rollup
108
- * - sourcemap errors: caused by "use client" directive at line 1:0 confusing sourcemap resolution
109
- * - sourcemap incomplete: plugins that transform without generating sourcemaps (router + RSC plugin)
110
- * - dynamic/static mixed imports: expected for router internals (e.g. request-context, cache-scope)
111
- * - empty bundle: @vitejs/plugin-rsc scan build (step 1/5) produces an empty "index" chunk
112
- * because the RSC entry is fully externalized during client-reference analysis
216
+ * Suppress known harmless warnings: "use client" directives, sourcemap errors,
217
+ * mixed imports (expected for router internals), empty bundles, and content-hashed
218
+ * asset collisions from @vitejs/plugin-rsc copying RSC-env assets to the client bundle.
113
219
  */
114
220
  export function onwarn(
115
221
  warning: Vite.Rollup.RollupLog,
@@ -118,14 +224,17 @@ export function onwarn(
118
224
  if (
119
225
  warning.code === "MODULE_LEVEL_DIRECTIVE" ||
120
226
  warning.code === "SOURCEMAP_ERROR" ||
121
- warning.code === "EMPTY_BUNDLE"
227
+ warning.code === "EMPTY_BUNDLE" ||
228
+ warning.code === "INEFFECTIVE_DYNAMIC_IMPORT"
229
+ ) {
230
+ return;
231
+ }
232
+ if (
233
+ warning.code === "FILE_NAME_CONFLICT" &&
234
+ isContentHashedAssetConflict(warning.message)
122
235
  ) {
123
236
  return;
124
237
  }
125
- // @vitejs/plugin-rsc@0.5.14: rsc:virtual:vite-rsc/assets-manifest renderChunk
126
- // returns { code } without map, causing Rollup to warn about incorrect sourcemaps.
127
- // This is harmless (simple string replacement). Remove this suppression if a
128
- // future version of @vitejs/plugin-rsc fixes the missing sourcemap.
129
238
  if (warning.message?.includes("Sourcemap is likely to be incorrect")) {
130
239
  return;
131
240
  }
@@ -141,8 +250,16 @@ export function onwarn(
141
250
  }
142
251
 
143
252
  /**
144
- * Manual chunks configuration for client build.
145
- * Splits React and router packages into separate chunks for better caching.
253
+ * All of `browser/prefetch/` belongs to the eager "router" chunk — including
254
+ * the modules reachable only via loader.ts's dynamic import. #766 split those
255
+ * into a separate lazy chunk to trim the eager runtime (~2.3 KB gzip), but
256
+ * production's `defaultPrefetch: "viewport"` loads them on almost every page,
257
+ * so the split became a document -> router -> runtime request waterfall
258
+ * (measured 502 ms critical-path latency in a deployed worker). Same-chunk
259
+ * placement resolves the dynamic import without a network fetch
260
+ * (`Promise.resolve().then(...)` in the emitted chunk), and the merged chunk
261
+ * gzips smaller than the two chunks did apart. Do not re-split without new
262
+ * information (AGENTS.md, Bundle hygiene, rejected optimizations).
146
263
  */
147
264
  export function getManualChunks(id: string): string | undefined {
148
265
  const normalized = Vite.normalizePath(id);
@@ -155,13 +272,10 @@ export function getManualChunks(id: string): string | undefined {
155
272
  ) {
156
273
  return "react";
157
274
  }
158
- // Use dynamic package name from package.json
159
- // Check both npm install path and workspace symlink resolved path
160
275
  const packageName = getPublishedPackageName();
161
276
  if (
162
277
  normalized.includes(`node_modules/${packageName}/`) ||
163
- normalized.includes("packages/rsc-router/") ||
164
- normalized.includes("packages/rangojs-router/")
278
+ /\/packages\/(rsc-router|rangojs-router)\/(src|dist)\//.test(normalized)
165
279
  ) {
166
280
  return "router";
167
281
  }
@@ -1,99 +0,0 @@
1
- /**
2
- * Discriminated union of post-reconciliation action response scenarios.
3
- *
4
- * Error and full-update-unsupported are handled inline in the bridge
5
- * before reconciliation. This classifier only runs for partial responses
6
- * that have been successfully reconciled.
7
- */
8
- export type ActionScenario =
9
- | {
10
- type: "navigated-away";
11
- historyKeyChanged: boolean;
12
- onInterceptRoute: boolean;
13
- }
14
- | { type: "hmr-missing" }
15
- | { type: "consolidation-needed"; segmentIds: string[] }
16
- | { type: "concurrent-skip"; otherFetchingCount: number }
17
- | { type: "normal" };
18
-
19
- /**
20
- * Pure data inputs for classifying a partial action response.
21
- * All values come from the bridge but no browser APIs or side effects.
22
- */
23
- export interface ClassifierInput {
24
- /** window.location.pathname captured at action start */
25
- actionStartPathname: string;
26
- /** window.location.pathname at classification time */
27
- currentPathname: string;
28
- /** window.history.state?.key captured at action start */
29
- actionStartLocationKey: string | undefined;
30
- /** window.history.state?.key at classification time */
31
- currentLocationKey: string | undefined;
32
- /** Number of segments after reconciliation */
33
- reconciledSegmentCount: number;
34
- /** Number of matched segment IDs from server */
35
- matchedCount: number;
36
- /** Segment IDs needing consolidation (from concurrent action tracking) */
37
- consolidationSegments: string[] | null;
38
- /** Number of other actions still in "fetching" phase */
39
- otherFetchingActionCount: number;
40
- /** Current intercept source URL (null when not on intercept route) */
41
- currentInterceptSource: string | null;
42
- }
43
-
44
- /**
45
- * Classify a partial action response into one of 5 post-reconciliation
46
- * scenarios.
47
- *
48
- * Called after error and full-update cases are handled inline by the bridge.
49
- * The classification order matches the priority chain:
50
- * 1. User navigated away during action
51
- * 2. HMR missing segments (fewer reconciled than matched)
52
- * 3. Consolidation needed (concurrent actions finished)
53
- * 4. Concurrent skip (other actions still fetching)
54
- * 5. Normal (single action, no issues)
55
- *
56
- * This is a pure function with no side effects - the bridge handles
57
- * all UI updates, store mutations, and network requests based on the
58
- * returned scenario.
59
- */
60
- export function classifyActionResponse(input: ClassifierInput): ActionScenario {
61
- // Check if user navigated away during the action
62
- const userNavigatedAway =
63
- input.currentPathname !== input.actionStartPathname ||
64
- input.currentLocationKey !== input.actionStartLocationKey;
65
-
66
- if (userNavigatedAway) {
67
- const historyKeyChanged =
68
- input.currentLocationKey !== input.actionStartLocationKey;
69
- return {
70
- type: "navigated-away",
71
- historyKeyChanged,
72
- onInterceptRoute: input.currentInterceptSource !== null,
73
- };
74
- }
75
-
76
- // HMR resilience: segments missing after reconciliation
77
- if (input.reconciledSegmentCount < input.matchedCount) {
78
- return { type: "hmr-missing" };
79
- }
80
-
81
- // Consolidation needed for concurrent actions
82
- if (input.consolidationSegments && input.consolidationSegments.length > 0) {
83
- return {
84
- type: "consolidation-needed",
85
- segmentIds: input.consolidationSegments,
86
- };
87
- }
88
-
89
- // Other actions still fetching - skip UI update
90
- if (input.otherFetchingActionCount > 0) {
91
- return {
92
- type: "concurrent-skip",
93
- otherFetchingCount: input.otherFetchingActionCount,
94
- };
95
- }
96
-
97
- // Normal single-action completion
98
- return { type: "normal" };
99
- }
@@ -1,58 +0,0 @@
1
- "use client";
2
-
3
- import { useContext, useCallback } from "react";
4
- import { NavigationStoreContext } from "./context.js";
5
-
6
- /**
7
- * Return type for useClientCache hook
8
- */
9
- export interface ClientCacheControls {
10
- /**
11
- * Clear the client-side navigation cache.
12
- * Call this after data changes that happen outside of server actions
13
- * (e.g., REST API calls, WebSocket updates, etc.)
14
- *
15
- * This will also broadcast to other tabs to clear their caches.
16
- */
17
- clear: () => void;
18
- }
19
-
20
- /**
21
- * Hook to access client-side cache controls
22
- *
23
- * Use this when you need to manually invalidate the navigation cache
24
- * after data changes that happen outside of server actions.
25
- *
26
- * Server actions automatically clear the cache, so you only need this for:
27
- * - REST API mutations
28
- * - WebSocket-driven updates
29
- * - Other non-RSC data changes
30
- *
31
- * @example
32
- * ```tsx
33
- * function DataEditor() {
34
- * const { clear } = useClientCache();
35
- *
36
- * async function handleSave() {
37
- * await fetch('/api/data', { method: 'POST', body: JSON.stringify(data) });
38
- * // Clear cache so back/forward navigation shows fresh data
39
- * clear();
40
- * }
41
- *
42
- * return <button onClick={handleSave}>Save</button>;
43
- * }
44
- * ```
45
- */
46
- export function useClientCache(): ClientCacheControls {
47
- const ctx = useContext(NavigationStoreContext);
48
-
49
- if (!ctx) {
50
- throw new Error("useClientCache must be used within NavigationProvider");
51
- }
52
-
53
- const clear = useCallback(() => {
54
- ctx.store.clearHistoryCache();
55
- }, [ctx]);
56
-
57
- return { clear };
58
- }
@@ -1,40 +0,0 @@
1
- /**
2
- * Shallow comparison utility for selector optimization
3
- *
4
- * Used by useNavigation hook to prevent unnecessary re-renders
5
- * when the selected value hasn't changed.
6
- *
7
- * @param a - First value
8
- * @param b - Second value
9
- * @returns true if values are shallowly equal
10
- */
11
- export function shallow<T>(a: T, b: T): boolean {
12
- // Same reference or primitive equality
13
- if (Object.is(a, b)) return true;
14
-
15
- // Different types or non-objects
16
- if (typeof a !== "object" || typeof b !== "object") return false;
17
-
18
- // Null checks
19
- if (a === null || b === null) return false;
20
-
21
- // Compare object keys
22
- const keysA = Object.keys(a);
23
- const keysB = Object.keys(b);
24
-
25
- if (keysA.length !== keysB.length) return false;
26
-
27
- // Check each key's value with Object.is
28
- for (const key of keysA) {
29
- if (
30
- !Object.is(
31
- (a as Record<string, unknown>)[key],
32
- (b as Record<string, unknown>)[key],
33
- )
34
- ) {
35
- return false;
36
- }
37
- }
38
-
39
- return true;
40
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * Built-in handles for rsc-router.
3
- */
4
-
5
- export { Meta } from "./meta.ts";
6
- export { MetaTags } from "./MetaTags.tsx";
7
- export { Breadcrumbs, type BreadcrumbItem } from "./breadcrumbs.ts";
@@ -1,23 +0,0 @@
1
- "use client";
2
-
3
- import type { ReactNode } from "react";
4
- import type { NetworkError } from "./errors.js";
5
-
6
- interface NetworkErrorThrowerProps {
7
- error: NetworkError;
8
- }
9
-
10
- /**
11
- * Client component that throws a NetworkError during render.
12
- * Used to trigger the root error boundary when a network error occurs
13
- * during navigation or server actions.
14
- *
15
- * This must be a separate component because:
16
- * 1. Errors must be thrown during React's render phase to be caught by error boundaries
17
- * 2. The error occurs in async code (fetch), so we need to propagate it to React's render
18
- */
19
- export function NetworkErrorThrower({
20
- error,
21
- }: NetworkErrorThrowerProps): ReactNode {
22
- throw error;
23
- }
@@ -1,55 +0,0 @@
1
- /**
2
- * Cookie Utilities
3
- *
4
- * Parsing and serialization for HTTP cookies used by middleware context.
5
- */
6
-
7
- import type { CookieOptions } from "./middleware-types.js";
8
-
9
- /**
10
- * Parse cookies from Cookie header
11
- */
12
- export function parseCookies(
13
- cookieHeader: string | null,
14
- ): Record<string, string> {
15
- if (!cookieHeader) return {};
16
-
17
- const cookies: Record<string, string> = {};
18
- const pairs = cookieHeader.split(";");
19
-
20
- for (const pair of pairs) {
21
- const [name, ...rest] = pair.trim().split("=");
22
- if (name) {
23
- const raw = rest.join("=");
24
- try {
25
- cookies[name] = decodeURIComponent(raw);
26
- } catch {
27
- // Malformed percent-encoded value (e.g. %zz) - fall back to raw value
28
- cookies[name] = raw;
29
- }
30
- }
31
- }
32
-
33
- return cookies;
34
- }
35
-
36
- /**
37
- * Serialize a cookie for Set-Cookie header
38
- */
39
- export function serializeCookie(
40
- name: string,
41
- value: string,
42
- options: CookieOptions = {},
43
- ): string {
44
- let cookie = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;
45
-
46
- if (options.domain) cookie += `; Domain=${options.domain}`;
47
- if (options.path) cookie += `; Path=${options.path}`;
48
- if (options.maxAge !== undefined) cookie += `; Max-Age=${options.maxAge}`;
49
- if (options.expires) cookie += `; Expires=${options.expires.toUTCString()}`;
50
- if (options.httpOnly) cookie += "; HttpOnly";
51
- if (options.secure) cookie += "; Secure";
52
- if (options.sameSite) cookie += `; SameSite=${options.sameSite}`;
53
-
54
- return cookie;
55
- }