@rangojs/router 0.0.0-experimental.f3c21dba → 0.0.0-experimental.f4a8e8de

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 (2111) hide show
  1. package/AGENTS.md +8 -4
  2. package/README.md +320 -735
  3. package/dist/bin/rango.js +977 -240
  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 +57 -0
  125. package/dist/types/client-urls/types.d.ts +132 -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 +393 -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 +510 -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 +707 -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 +208 -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 +198 -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 +10628 -3742
  821. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  822. package/package.json +120 -38
  823. package/skills/api-client/SKILL.md +211 -0
  824. package/skills/breadcrumbs/SKILL.md +85 -6
  825. package/skills/bundle-analysis/SKILL.md +159 -0
  826. package/skills/cache-guide/SKILL.md +255 -25
  827. package/skills/caching/SKILL.md +377 -13
  828. package/skills/catalog.json +283 -0
  829. package/skills/cloudflare/SKILL.md +151 -0
  830. package/skills/cloudflare/agents/openai.yaml +4 -0
  831. package/skills/cloudflare/references/d1-and-local-dev.md +131 -0
  832. package/skills/cloudflare/references/streaming-and-deploy.md +107 -0
  833. package/skills/cloudflare/references/webhooks-and-crypto.md +147 -0
  834. package/skills/comparison/SKILL.md +50 -0
  835. package/skills/comparison/agents/openai.yaml +4 -0
  836. package/skills/comparison/references/framework-comparison.md +844 -0
  837. package/skills/composability/SKILL.md +124 -4
  838. package/skills/css/SKILL.md +76 -0
  839. package/skills/debug-manifest/SKILL.md +5 -11
  840. package/skills/defer-hydration/SKILL.md +235 -0
  841. package/skills/deployment-caching/SKILL.md +176 -0
  842. package/skills/document-cache/SKILL.md +116 -58
  843. package/skills/fonts/SKILL.md +1 -1
  844. package/skills/handler-use/SKILL.md +364 -0
  845. package/skills/hooks/SKILL.md +73 -691
  846. package/skills/hooks/data.md +273 -0
  847. package/skills/hooks/handle-and-actions.md +103 -0
  848. package/skills/hooks/navigation.md +110 -0
  849. package/skills/hooks/outlets.md +62 -0
  850. package/skills/hooks/state.md +228 -0
  851. package/skills/hooks/urls.md +135 -0
  852. package/skills/host-router/SKILL.md +129 -27
  853. package/skills/i18n/SKILL.md +276 -0
  854. package/skills/intercept/SKILL.md +94 -18
  855. package/skills/layout/SKILL.md +62 -19
  856. package/skills/links/SKILL.md +285 -17
  857. package/skills/loader/SKILL.md +302 -54
  858. package/skills/middleware/SKILL.md +92 -16
  859. package/skills/migrate-nextjs/SKILL.md +794 -0
  860. package/skills/migrate-nextjs/backend-host-swap.md +120 -0
  861. package/skills/migrate-react-router/SKILL.md +153 -0
  862. package/skills/migrate-react-router/component-migration.md +196 -0
  863. package/skills/migrate-react-router/data-and-actions.md +225 -0
  864. package/skills/migrate-react-router/route-mapping.md +271 -0
  865. package/skills/mime-routes/SKILL.md +55 -18
  866. package/skills/observability/SKILL.md +231 -0
  867. package/skills/parallel/SKILL.md +176 -10
  868. package/skills/ppr/SKILL.md +904 -0
  869. package/skills/prerender/SKILL.md +236 -132
  870. package/skills/rango/SKILL.md +321 -24
  871. package/skills/react-compiler/SKILL.md +168 -0
  872. package/skills/response-routes/SKILL.md +180 -52
  873. package/skills/route/SKILL.md +178 -9
  874. package/skills/router-setup/SKILL.md +140 -11
  875. package/skills/scripts/SKILL.md +179 -0
  876. package/skills/server-actions/SKILL.md +776 -0
  877. package/skills/shell-manifest/SKILL.md +185 -0
  878. package/skills/streams-and-websockets/SKILL.md +283 -0
  879. package/skills/tailwind/SKILL.md +28 -4
  880. package/skills/testing/SKILL.md +131 -0
  881. package/skills/testing/bindings.md +103 -0
  882. package/skills/testing/cache-prerender.md +172 -0
  883. package/skills/testing/client-components.md +131 -0
  884. package/skills/testing/e2e-parity.md +125 -0
  885. package/skills/testing/flight.md +91 -0
  886. package/skills/testing/handles.md +131 -0
  887. package/skills/testing/loader.md +128 -0
  888. package/skills/testing/middleware.md +99 -0
  889. package/skills/testing/render-handler.md +122 -0
  890. package/skills/testing/response-routes.md +95 -0
  891. package/skills/testing/reverse-and-types.md +85 -0
  892. package/skills/testing/server-actions.md +107 -0
  893. package/skills/testing/server-tree.md +128 -0
  894. package/skills/testing/setup.md +123 -0
  895. package/skills/theme/SKILL.md +1 -1
  896. package/skills/typesafety/SKILL.md +45 -616
  897. package/skills/typesafety/env-and-bindings.md +254 -0
  898. package/skills/typesafety/generated-files-and-cli.md +342 -0
  899. package/skills/typesafety/params-and-search.md +153 -0
  900. package/skills/typesafety/route-types.md +213 -0
  901. package/skills/use-cache/SKILL.md +121 -15
  902. package/skills/vercel/SKILL.md +149 -0
  903. package/skills/view-transitions/SKILL.md +341 -0
  904. package/src/__augment-tests__/augment.ts +81 -0
  905. package/src/__augment-tests__/augmented.check.ts +116 -0
  906. package/src/__internal.ts +1 -66
  907. package/src/browser/action-coordinator.ts +53 -36
  908. package/src/browser/action-fence.ts +47 -0
  909. package/src/browser/app-shell.ts +39 -0
  910. package/src/browser/app-version.ts +14 -0
  911. package/src/browser/connection-warmup.ts +134 -0
  912. package/src/browser/cookie-name.ts +140 -0
  913. package/src/browser/dev-discovery.ts +66 -0
  914. package/src/browser/event-controller.ts +400 -168
  915. package/src/browser/history-state.ts +21 -0
  916. package/src/browser/index.ts +3 -3
  917. package/src/browser/invalidate-client-cache.ts +52 -0
  918. package/src/browser/link-interceptor.ts +469 -20
  919. package/src/browser/logging.ts +28 -0
  920. package/src/browser/merge-segment-loaders.ts +6 -4
  921. package/src/browser/navigation-bridge.ts +207 -31
  922. package/src/browser/navigation-client.ts +275 -97
  923. package/src/browser/navigation-store-handle.ts +38 -0
  924. package/src/browser/navigation-store.ts +208 -329
  925. package/src/browser/navigation-transaction.ts +9 -59
  926. package/src/browser/network-error-handler.ts +34 -7
  927. package/src/browser/notify-listeners.ts +22 -0
  928. package/src/browser/partial-update.ts +241 -121
  929. package/src/browser/prefetch/cache.ts +329 -78
  930. package/src/browser/prefetch/default-strategy.ts +74 -0
  931. package/src/browser/prefetch/fetch.ts +444 -40
  932. package/src/browser/prefetch/invalidation.ts +30 -0
  933. package/src/browser/prefetch/loader.ts +111 -0
  934. package/src/browser/prefetch/observer.ts +50 -22
  935. package/src/browser/prefetch/queue.ts +113 -32
  936. package/src/browser/prefetch/resource-ready.ts +77 -0
  937. package/src/browser/prefetch/runtime.ts +6 -0
  938. package/src/browser/rango-state.ts +178 -75
  939. package/src/browser/react/Link.tsx +179 -75
  940. package/src/browser/react/NavigationProvider.tsx +222 -123
  941. package/src/browser/react/ScrollRestoration.tsx +10 -6
  942. package/src/browser/react/context.ts +11 -2
  943. package/src/browser/react/filter-segment-order.ts +66 -7
  944. package/src/browser/react/index.ts +0 -48
  945. package/src/browser/react/location-state-shared.ts +178 -8
  946. package/src/browser/react/location-state.ts +39 -14
  947. package/src/browser/react/use-action.ts +6 -15
  948. package/src/browser/react/use-handle.ts +23 -69
  949. package/src/browser/react/use-href.tsx +8 -1
  950. package/src/browser/react/use-link-status.ts +33 -8
  951. package/src/browser/react/use-navigation.ts +32 -7
  952. package/src/browser/react/use-params.ts +20 -10
  953. package/src/browser/react/use-reverse.ts +106 -0
  954. package/src/browser/react/use-router.ts +47 -12
  955. package/src/browser/react/use-search-params.ts +0 -5
  956. package/src/browser/react/use-segments.ts +11 -21
  957. package/src/browser/response-adapter.ts +99 -8
  958. package/src/browser/rsc-router.tsx +271 -32
  959. package/src/browser/scroll-restoration.ts +44 -27
  960. package/src/browser/segment-reconciler.ts +44 -12
  961. package/src/browser/segment-structure-assert.ts +2 -2
  962. package/src/browser/server-action-bridge.ts +270 -71
  963. package/src/browser/types.ts +157 -37
  964. package/src/browser/validate-redirect-origin.ts +43 -16
  965. package/src/build/collect-fallback-refs.ts +107 -0
  966. package/src/build/generate-manifest.ts +217 -188
  967. package/src/build/generate-route-types.ts +6 -1
  968. package/src/build/index.ts +11 -3
  969. package/src/build/merge-full-manifests.ts +161 -0
  970. package/src/build/prefix-tree-utils.ts +123 -0
  971. package/src/build/route-trie.ts +43 -254
  972. package/src/build/route-types/ast-route-extraction.ts +15 -8
  973. package/src/build/route-types/codegen.ts +16 -5
  974. package/src/build/route-types/include-resolution.ts +521 -65
  975. package/src/build/route-types/param-extraction.ts +6 -3
  976. package/src/build/route-types/per-module-writer.ts +33 -12
  977. package/src/build/route-types/router-processing.ts +408 -161
  978. package/src/build/route-types/scan-filter.ts +9 -2
  979. package/src/build/route-types/source-scan.ts +216 -0
  980. package/src/build/runtime-discovery.ts +32 -29
  981. package/src/cache/cache-error.ts +104 -0
  982. package/src/cache/cache-exec-scope.ts +47 -0
  983. package/src/cache/cache-key-utils.ts +73 -15
  984. package/src/cache/cache-policy.ts +108 -34
  985. package/src/cache/cache-runtime.ts +566 -117
  986. package/src/cache/cache-scope.ts +429 -110
  987. package/src/cache/cache-tag.ts +149 -0
  988. package/src/cache/cf/cf-base64.ts +33 -0
  989. package/src/cache/cf/cf-cache-constants.ts +134 -0
  990. package/src/cache/cf/cf-cache-store.ts +3027 -392
  991. package/src/cache/cf/cf-cache-types.ts +417 -0
  992. package/src/cache/cf/cf-kv-utils.ts +84 -0
  993. package/src/cache/cf/cf-tag-marker-memo.ts +108 -0
  994. package/src/cache/cf/cf-zone-purge.ts +101 -0
  995. package/src/cache/cf/index.ts +11 -16
  996. package/src/cache/document-cache.ts +184 -53
  997. package/src/cache/handle-snapshot.ts +92 -1
  998. package/src/cache/index.ts +32 -20
  999. package/src/cache/memory-segment-store.ts +286 -37
  1000. package/src/cache/profile-registry.ts +46 -31
  1001. package/src/cache/read-through-swr.ts +66 -16
  1002. package/src/cache/search-params-filter.ts +118 -0
  1003. package/src/cache/segment-codec.ts +80 -25
  1004. package/src/cache/shell-snapshot.ts +516 -0
  1005. package/src/cache/tag-invalidation.ts +230 -0
  1006. package/src/cache/taint.ts +83 -9
  1007. package/src/cache/types.ts +323 -100
  1008. package/src/cache/vercel/index.ts +11 -0
  1009. package/src/cache/vercel/vercel-cache-store.ts +1264 -0
  1010. package/src/client-urls/client-root.tsx +161 -0
  1011. package/src/client-urls/client-urls.ts +665 -0
  1012. package/src/client-urls/navigation.ts +237 -0
  1013. package/src/client-urls/revalidation-protocol.ts +56 -0
  1014. package/src/client-urls/server-projection.ts +563 -0
  1015. package/src/client-urls/types.ts +178 -0
  1016. package/src/client.rsc.tsx +48 -21
  1017. package/src/client.tsx +158 -294
  1018. package/src/cloudflare/index.ts +11 -0
  1019. package/src/cloudflare/tracing.ts +112 -0
  1020. package/src/component-utils.ts +19 -0
  1021. package/src/components/DefaultDocument.tsx +8 -2
  1022. package/src/context-var.ts +84 -2
  1023. package/src/decode-loader-results.ts +160 -0
  1024. package/src/defer.ts +185 -0
  1025. package/src/deps/ssr.ts +4 -2
  1026. package/src/dev-discovery-protocol.ts +11 -0
  1027. package/src/encode-kv.ts +49 -0
  1028. package/src/errors.ts +44 -4
  1029. package/src/escape-script.ts +52 -0
  1030. package/src/handle.ts +104 -34
  1031. package/src/handles/MetaTags.tsx +24 -53
  1032. package/src/handles/Scripts.tsx +183 -0
  1033. package/src/handles/breadcrumbs.ts +35 -8
  1034. package/src/handles/deferred-resolution.ts +134 -0
  1035. package/src/handles/is-thenable.ts +16 -0
  1036. package/src/handles/meta.ts +14 -40
  1037. package/src/handles/script.ts +244 -0
  1038. package/src/host/cookie-handler.ts +9 -60
  1039. package/src/host/errors.ts +13 -22
  1040. package/src/host/index.ts +9 -2
  1041. package/src/host/pattern-matcher.ts +23 -52
  1042. package/src/host/router.ts +107 -99
  1043. package/src/host/testing.ts +40 -27
  1044. package/src/host/types.ts +37 -4
  1045. package/src/host/utils.ts +1 -1
  1046. package/src/href-client.ts +137 -22
  1047. package/src/index.rsc.ts +111 -13
  1048. package/src/index.ts +150 -19
  1049. package/src/internal-debug.ts +11 -10
  1050. package/src/loader-redirect.tsx +47 -0
  1051. package/src/loader-store.ts +500 -0
  1052. package/src/loader.rsc.ts +20 -13
  1053. package/src/loader.ts +12 -11
  1054. package/src/missing-id-error.ts +68 -0
  1055. package/src/outlet-context.ts +13 -1
  1056. package/src/outlet-provider.tsx +16 -6
  1057. package/src/prerender/build-shell-capture.ts +453 -0
  1058. package/src/prerender/param-hash.ts +16 -16
  1059. package/src/prerender/shell-manifest-key.ts +20 -0
  1060. package/src/prerender/store.ts +52 -42
  1061. package/src/prerender.ts +215 -86
  1062. package/src/redirect-origin.ts +143 -0
  1063. package/src/regex-escape.ts +8 -0
  1064. package/src/render-error-thrower.tsx +20 -0
  1065. package/src/response-utils.ts +62 -0
  1066. package/src/reverse.ts +65 -15
  1067. package/src/root-error-boundary.tsx +1 -19
  1068. package/src/route-content-wrapper.tsx +112 -78
  1069. package/src/route-definition/dsl-helpers.ts +468 -306
  1070. package/src/route-definition/helper-factories.ts +28 -140
  1071. package/src/route-definition/helpers-types.ts +156 -78
  1072. package/src/route-definition/index.ts +4 -2
  1073. package/src/route-definition/redirect.ts +51 -10
  1074. package/src/route-definition/resolve-handler-use.ts +160 -0
  1075. package/src/route-definition/use-item-types.ts +29 -0
  1076. package/src/route-map-builder.ts +102 -74
  1077. package/src/route-types.ts +37 -46
  1078. package/src/router/basename.ts +14 -0
  1079. package/src/router/content-negotiation.ts +211 -22
  1080. package/src/router/error-handling.ts +110 -29
  1081. package/src/router/find-match.ts +129 -30
  1082. package/src/router/handler-context.ts +105 -45
  1083. package/src/router/instrument.ts +401 -0
  1084. package/src/router/intercept-resolution.ts +106 -24
  1085. package/src/router/lazy-includes.ts +86 -62
  1086. package/src/router/loader-resolution.ts +511 -57
  1087. package/src/router/logging.ts +0 -6
  1088. package/src/router/manifest.ts +96 -53
  1089. package/src/router/match-api.ts +190 -219
  1090. package/src/router/match-context.ts +0 -22
  1091. package/src/router/match-handlers.ts +268 -171
  1092. package/src/router/match-middleware/background-revalidation.ts +48 -21
  1093. package/src/router/match-middleware/cache-lookup.ts +332 -291
  1094. package/src/router/match-middleware/cache-store.ts +144 -45
  1095. package/src/router/match-middleware/intercept-resolution.ts +0 -22
  1096. package/src/router/match-middleware/segment-resolution.ts +45 -14
  1097. package/src/router/match-pipelines.ts +1 -42
  1098. package/src/router/match-result.ts +124 -43
  1099. package/src/router/metrics.ts +17 -36
  1100. package/src/router/middleware-types.ts +26 -138
  1101. package/src/router/middleware.ts +304 -177
  1102. package/src/router/navigation-snapshot.ts +173 -0
  1103. package/src/router/params-util.ts +23 -0
  1104. package/src/router/parse-pattern.ts +115 -0
  1105. package/src/router/pattern-matching.ts +181 -150
  1106. package/src/router/prefetch-cache-ttl.ts +51 -0
  1107. package/src/router/prefetch-default.ts +59 -0
  1108. package/src/router/prefetch-limits.ts +37 -0
  1109. package/src/router/prerender-match.ts +250 -60
  1110. package/src/router/preview-match.ts +35 -103
  1111. package/src/router/request-classification.ts +291 -0
  1112. package/src/router/revalidation.ts +146 -83
  1113. package/src/router/route-snapshot.ts +256 -0
  1114. package/src/router/route-trie-builder.ts +334 -0
  1115. package/src/router/router-context.ts +6 -28
  1116. package/src/router/router-interfaces.ts +199 -37
  1117. package/src/router/router-options.ts +271 -21
  1118. package/src/router/router-registry.ts +2 -5
  1119. package/src/router/segment-resolution/fresh.ts +235 -89
  1120. package/src/router/segment-resolution/helpers.ts +116 -33
  1121. package/src/router/segment-resolution/loader-cache.ts +187 -39
  1122. package/src/router/segment-resolution/loader-mask.ts +60 -0
  1123. package/src/router/segment-resolution/loader-snapshot.ts +259 -0
  1124. package/src/router/segment-resolution/mask-nested.ts +99 -0
  1125. package/src/router/segment-resolution/revalidation.ts +401 -321
  1126. package/src/router/segment-resolution/static-store.ts +55 -15
  1127. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  1128. package/src/router/segment-resolution/view-transition-default.ts +60 -0
  1129. package/src/router/segment-resolution.ts +5 -1
  1130. package/src/router/segment-wrappers.ts +6 -5
  1131. package/src/router/state-cookie-name.ts +33 -0
  1132. package/src/router/substitute-pattern-params.ts +75 -0
  1133. package/src/router/telemetry-otel.ts +171 -200
  1134. package/src/router/telemetry.ts +106 -20
  1135. package/src/router/timeout.ts +53 -22
  1136. package/src/router/tracing.ts +235 -0
  1137. package/src/router/transition-when.ts +76 -0
  1138. package/src/router/trie-matching.ts +171 -59
  1139. package/src/router/types.ts +10 -63
  1140. package/src/router/url-params.ts +57 -0
  1141. package/src/router.ts +296 -77
  1142. package/src/rsc/capture-queue.ts +218 -0
  1143. package/src/rsc/full-payload.ts +77 -0
  1144. package/src/rsc/handler-context.ts +4 -2
  1145. package/src/rsc/handler.ts +901 -519
  1146. package/src/rsc/helpers.ts +245 -47
  1147. package/src/rsc/index.ts +2 -5
  1148. package/src/rsc/json-route-result.ts +38 -0
  1149. package/src/rsc/loader-fetch.ts +129 -33
  1150. package/src/rsc/manifest-init.ts +55 -52
  1151. package/src/rsc/nonce.ts +10 -1
  1152. package/src/rsc/origin-guard.ts +39 -25
  1153. package/src/rsc/progressive-enhancement.ts +381 -74
  1154. package/src/rsc/redirect-guard.ts +102 -0
  1155. package/src/rsc/render-pipeline.ts +611 -0
  1156. package/src/rsc/response-cache-serve.ts +259 -0
  1157. package/src/rsc/response-error.ts +79 -12
  1158. package/src/rsc/response-route-handler.ts +80 -206
  1159. package/src/rsc/routine-plan.ts +359 -0
  1160. package/src/rsc/rsc-rendering.ts +1625 -156
  1161. package/src/rsc/runtime-warnings.ts +23 -10
  1162. package/src/rsc/server-action.ts +424 -133
  1163. package/src/rsc/shell-build-manifest.ts +336 -0
  1164. package/src/rsc/shell-capture-constants.ts +45 -0
  1165. package/src/rsc/shell-capture.ts +2063 -0
  1166. package/src/rsc/shell-serve.ts +337 -0
  1167. package/src/rsc/ssr-setup.ts +113 -18
  1168. package/src/rsc/stream-idle.ts +137 -0
  1169. package/src/rsc/transition-gate.ts +86 -0
  1170. package/src/rsc/types.ts +100 -6
  1171. package/src/runtime-env.ts +18 -0
  1172. package/src/search-params.ts +35 -30
  1173. package/src/segment-content-promise.ts +67 -0
  1174. package/src/segment-fragments.ts +165 -0
  1175. package/src/segment-loader-promise.ts +167 -0
  1176. package/src/segment-system.tsx +446 -208
  1177. package/src/serialize.ts +243 -0
  1178. package/src/server/context.ts +484 -51
  1179. package/src/server/cookie-parse.ts +32 -0
  1180. package/src/server/cookie-store.ts +162 -15
  1181. package/src/server/handle-store.ts +209 -70
  1182. package/src/server/loader-registry.ts +38 -46
  1183. package/src/server/request-context.ts +940 -184
  1184. package/src/server.ts +7 -2
  1185. package/src/ssr/index.tsx +631 -180
  1186. package/src/ssr/inject-rsc-eager.ts +167 -0
  1187. package/src/ssr/preinit-client-references.ts +106 -0
  1188. package/src/ssr/ssr-root.tsx +262 -0
  1189. package/src/static-handler.ts +45 -20
  1190. package/src/testing/cache-status.ts +162 -0
  1191. package/src/testing/collect-handle.ts +46 -0
  1192. package/src/testing/dispatch.ts +951 -0
  1193. package/src/testing/dom.entry.ts +22 -0
  1194. package/src/testing/e2e/fixture.ts +188 -0
  1195. package/src/testing/e2e/index.ts +147 -0
  1196. package/src/testing/e2e/matchers.ts +35 -0
  1197. package/src/testing/e2e/page-helpers.ts +319 -0
  1198. package/src/testing/e2e/parity.ts +400 -0
  1199. package/src/testing/e2e/server.ts +195 -0
  1200. package/src/testing/flight-matchers.ts +97 -0
  1201. package/src/testing/flight-normalize.ts +11 -0
  1202. package/src/testing/flight-runtime.d.ts +57 -0
  1203. package/src/testing/flight-tree.ts +682 -0
  1204. package/src/testing/flight.entry.ts +52 -0
  1205. package/src/testing/flight.ts +257 -0
  1206. package/src/testing/generated-routes.ts +199 -0
  1207. package/src/testing/index.ts +121 -0
  1208. package/src/testing/internal/context.ts +380 -0
  1209. package/src/testing/internal/flight-client-globals.ts +30 -0
  1210. package/src/testing/internal/seed-vars.ts +54 -0
  1211. package/src/testing/render-handler.ts +371 -0
  1212. package/src/testing/render-route.tsx +667 -0
  1213. package/src/testing/run-loader.ts +423 -0
  1214. package/src/testing/run-middleware.ts +219 -0
  1215. package/src/testing/run-transition-when.ts +197 -0
  1216. package/src/testing/shell-status.ts +206 -0
  1217. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  1218. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  1219. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  1220. package/src/testing/vitest-stubs/version.ts +5 -0
  1221. package/src/testing/vitest.ts +305 -0
  1222. package/src/theme/ThemeProvider.tsx +56 -84
  1223. package/src/theme/ThemeScript.tsx +7 -9
  1224. package/src/theme/constants.ts +52 -13
  1225. package/src/theme/index.ts +0 -7
  1226. package/src/theme/theme-context.ts +1 -5
  1227. package/src/theme/theme-script.ts +22 -21
  1228. package/src/theme/use-theme.ts +0 -3
  1229. package/src/types/boundaries.ts +15 -35
  1230. package/src/types/cache-types.ts +17 -8
  1231. package/src/types/error-types.ts +30 -90
  1232. package/src/types/global-namespace.ts +54 -41
  1233. package/src/types/handler-context.ts +155 -78
  1234. package/src/types/index.ts +3 -10
  1235. package/src/types/loader-types.ts +72 -15
  1236. package/src/types/request-scope.ts +112 -0
  1237. package/src/types/route-config.ts +20 -52
  1238. package/src/types/route-entry.ts +15 -7
  1239. package/src/types/segments.ts +148 -15
  1240. package/src/urls/include-helper.ts +59 -75
  1241. package/src/urls/include-provider.ts +71 -0
  1242. package/src/urls/index.ts +2 -11
  1243. package/src/urls/path-helper-types.ts +110 -25
  1244. package/src/urls/path-helper.ts +70 -115
  1245. package/src/urls/pattern-types.ts +113 -19
  1246. package/src/urls/response-types.ts +25 -22
  1247. package/src/urls/type-extraction.ts +98 -154
  1248. package/src/urls/urls-function.ts +1 -19
  1249. package/src/use-loader.tsx +404 -86
  1250. package/src/vercel/index.ts +11 -0
  1251. package/src/vercel/tracing.ts +89 -0
  1252. package/src/vite/debug.ts +185 -0
  1253. package/src/vite/discovery/bundle-postprocess.ts +46 -45
  1254. package/src/vite/discovery/client-urls-projection.ts +322 -0
  1255. package/src/vite/discovery/dev-prerender-cache.ts +117 -0
  1256. package/src/vite/discovery/discover-routers.ts +178 -147
  1257. package/src/vite/discovery/discovery-errors.ts +255 -0
  1258. package/src/vite/discovery/gate-state.ts +171 -0
  1259. package/src/vite/discovery/prerender-collection.ts +243 -134
  1260. package/src/vite/discovery/route-types-writer.ts +40 -84
  1261. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  1262. package/src/vite/discovery/shell-prerender-phase.ts +397 -0
  1263. package/src/vite/discovery/state.ts +116 -9
  1264. package/src/vite/discovery/virtual-module-codegen.ts +226 -87
  1265. package/src/vite/encryption-key.ts +29 -0
  1266. package/src/vite/index.ts +16 -0
  1267. package/src/vite/inject-client-debug.ts +88 -0
  1268. package/src/vite/plugin-types.ts +294 -6
  1269. package/src/vite/plugins/cjs-to-esm.ts +16 -19
  1270. package/src/vite/plugins/client-ref-dedup.ts +16 -11
  1271. package/src/vite/plugins/client-ref-hashing.ts +28 -15
  1272. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  1273. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1274. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  1275. package/src/vite/plugins/expose-action-id.ts +50 -97
  1276. package/src/vite/plugins/expose-id-utils.ts +96 -51
  1277. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  1278. package/src/vite/plugins/expose-ids/handler-transform.ts +15 -64
  1279. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  1280. package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
  1281. package/src/vite/plugins/expose-internal-ids.ts +599 -317
  1282. package/src/vite/plugins/performance-tracks.ts +89 -0
  1283. package/src/vite/plugins/refresh-cmd.ts +89 -27
  1284. package/src/vite/plugins/server-ref-hashing.ts +74 -0
  1285. package/src/vite/plugins/server-reference-pattern.ts +10 -0
  1286. package/src/vite/plugins/use-cache-transform.ts +73 -83
  1287. package/src/vite/plugins/vercel-output.ts +384 -0
  1288. package/src/vite/plugins/version-injector.ts +39 -29
  1289. package/src/vite/plugins/version-plugin.ts +45 -40
  1290. package/src/vite/plugins/virtual-entries.ts +193 -30
  1291. package/src/vite/rango.ts +298 -134
  1292. package/src/vite/router-discovery.ts +1803 -180
  1293. package/src/vite/utils/ast-handler-extract.ts +26 -35
  1294. package/src/vite/utils/banner.ts +1 -1
  1295. package/src/vite/utils/bundle-analysis.ts +10 -15
  1296. package/src/vite/utils/client-chunks.ts +184 -0
  1297. package/src/vite/utils/directive-prologue.ts +40 -0
  1298. package/src/vite/utils/forward-user-plugins.ts +171 -0
  1299. package/src/vite/utils/manifest-utils.ts +1 -59
  1300. package/src/vite/utils/package-resolution.ts +21 -52
  1301. package/src/vite/utils/prerender-utils.ts +123 -44
  1302. package/src/vite/utils/shared-utils.ts +158 -44
  1303. package/dist/__internal.d.ts +0 -83
  1304. package/dist/__internal.d.ts.map +0 -1
  1305. package/dist/__internal.js +0 -19
  1306. package/dist/__internal.js.map +0 -1
  1307. package/dist/__mocks__/version.d.ts +0 -7
  1308. package/dist/__mocks__/version.d.ts.map +0 -1
  1309. package/dist/__mocks__/version.js +0 -7
  1310. package/dist/__mocks__/version.js.map +0 -1
  1311. package/dist/__tests__/client-href.test.d.ts +0 -2
  1312. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  1313. package/dist/__tests__/client-href.test.js +0 -74
  1314. package/dist/__tests__/client-href.test.js.map +0 -1
  1315. package/dist/__tests__/component-utils.test.d.ts +0 -2
  1316. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  1317. package/dist/__tests__/component-utils.test.js +0 -51
  1318. package/dist/__tests__/component-utils.test.js.map +0 -1
  1319. package/dist/__tests__/event-controller.test.d.ts +0 -2
  1320. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  1321. package/dist/__tests__/event-controller.test.js +0 -538
  1322. package/dist/__tests__/event-controller.test.js.map +0 -1
  1323. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  1324. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  1325. package/dist/__tests__/helpers/route-tree.js +0 -374
  1326. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  1327. package/dist/__tests__/match-result.test.d.ts +0 -2
  1328. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  1329. package/dist/__tests__/match-result.test.js +0 -154
  1330. package/dist/__tests__/match-result.test.js.map +0 -1
  1331. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  1332. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  1333. package/dist/__tests__/navigation-store.test.js +0 -440
  1334. package/dist/__tests__/navigation-store.test.js.map +0 -1
  1335. package/dist/__tests__/partial-update.test.d.ts +0 -2
  1336. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  1337. package/dist/__tests__/partial-update.test.js +0 -1009
  1338. package/dist/__tests__/partial-update.test.js.map +0 -1
  1339. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  1340. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  1341. package/dist/__tests__/reverse-types.test.js +0 -656
  1342. package/dist/__tests__/reverse-types.test.js.map +0 -1
  1343. package/dist/__tests__/route-definition.test.d.ts +0 -2
  1344. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  1345. package/dist/__tests__/route-definition.test.js +0 -55
  1346. package/dist/__tests__/route-definition.test.js.map +0 -1
  1347. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  1348. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  1349. package/dist/__tests__/router-helpers.test.js +0 -377
  1350. package/dist/__tests__/router-helpers.test.js.map +0 -1
  1351. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  1352. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  1353. package/dist/__tests__/router-integration-2.test.js +0 -426
  1354. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  1355. package/dist/__tests__/router-integration.test.d.ts +0 -2
  1356. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  1357. package/dist/__tests__/router-integration.test.js +0 -1051
  1358. package/dist/__tests__/router-integration.test.js.map +0 -1
  1359. package/dist/__tests__/search-params.test.d.ts +0 -5
  1360. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  1361. package/dist/__tests__/search-params.test.js +0 -306
  1362. package/dist/__tests__/search-params.test.js.map +0 -1
  1363. package/dist/__tests__/segment-system.test.d.ts +0 -2
  1364. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  1365. package/dist/__tests__/segment-system.test.js +0 -627
  1366. package/dist/__tests__/segment-system.test.js.map +0 -1
  1367. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  1368. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  1369. package/dist/__tests__/static-handler-types.test.js +0 -63
  1370. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  1371. package/dist/__tests__/urls.test.d.ts +0 -2
  1372. package/dist/__tests__/urls.test.d.ts.map +0 -1
  1373. package/dist/__tests__/urls.test.js +0 -421
  1374. package/dist/__tests__/urls.test.js.map +0 -1
  1375. package/dist/__tests__/use-mount.test.d.ts +0 -2
  1376. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  1377. package/dist/__tests__/use-mount.test.js +0 -35
  1378. package/dist/__tests__/use-mount.test.js.map +0 -1
  1379. package/dist/bin/rango.d.ts +0 -2
  1380. package/dist/bin/rango.d.ts.map +0 -1
  1381. package/dist/bin/rango.js.map +0 -1
  1382. package/dist/browser/event-controller.d.ts +0 -191
  1383. package/dist/browser/event-controller.d.ts.map +0 -1
  1384. package/dist/browser/event-controller.js +0 -559
  1385. package/dist/browser/event-controller.js.map +0 -1
  1386. package/dist/browser/index.d.ts +0 -2
  1387. package/dist/browser/index.d.ts.map +0 -1
  1388. package/dist/browser/index.js +0 -14
  1389. package/dist/browser/index.js.map +0 -1
  1390. package/dist/browser/link-interceptor.d.ts +0 -38
  1391. package/dist/browser/link-interceptor.d.ts.map +0 -1
  1392. package/dist/browser/link-interceptor.js +0 -99
  1393. package/dist/browser/link-interceptor.js.map +0 -1
  1394. package/dist/browser/logging.d.ts +0 -10
  1395. package/dist/browser/logging.d.ts.map +0 -1
  1396. package/dist/browser/logging.js +0 -29
  1397. package/dist/browser/logging.js.map +0 -1
  1398. package/dist/browser/lru-cache.d.ts +0 -17
  1399. package/dist/browser/lru-cache.d.ts.map +0 -1
  1400. package/dist/browser/lru-cache.js +0 -50
  1401. package/dist/browser/lru-cache.js.map +0 -1
  1402. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  1403. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  1404. package/dist/browser/merge-segment-loaders.js +0 -102
  1405. package/dist/browser/merge-segment-loaders.js.map +0 -1
  1406. package/dist/browser/navigation-bridge.d.ts +0 -102
  1407. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  1408. package/dist/browser/navigation-bridge.js +0 -708
  1409. package/dist/browser/navigation-bridge.js.map +0 -1
  1410. package/dist/browser/navigation-client.d.ts +0 -25
  1411. package/dist/browser/navigation-client.d.ts.map +0 -1
  1412. package/dist/browser/navigation-client.js +0 -157
  1413. package/dist/browser/navigation-client.js.map +0 -1
  1414. package/dist/browser/navigation-store.d.ts +0 -101
  1415. package/dist/browser/navigation-store.d.ts.map +0 -1
  1416. package/dist/browser/navigation-store.js +0 -625
  1417. package/dist/browser/navigation-store.js.map +0 -1
  1418. package/dist/browser/partial-update.d.ts +0 -75
  1419. package/dist/browser/partial-update.d.ts.map +0 -1
  1420. package/dist/browser/partial-update.js +0 -426
  1421. package/dist/browser/partial-update.js.map +0 -1
  1422. package/dist/browser/react/Link.d.ts +0 -86
  1423. package/dist/browser/react/Link.d.ts.map +0 -1
  1424. package/dist/browser/react/Link.js +0 -128
  1425. package/dist/browser/react/Link.js.map +0 -1
  1426. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  1427. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  1428. package/dist/browser/react/NavigationProvider.js +0 -216
  1429. package/dist/browser/react/NavigationProvider.js.map +0 -1
  1430. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  1431. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  1432. package/dist/browser/react/ScrollRestoration.js +0 -57
  1433. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  1434. package/dist/browser/react/context.d.ts +0 -46
  1435. package/dist/browser/react/context.d.ts.map +0 -1
  1436. package/dist/browser/react/context.js +0 -10
  1437. package/dist/browser/react/context.js.map +0 -1
  1438. package/dist/browser/react/index.d.ts +0 -11
  1439. package/dist/browser/react/index.d.ts.map +0 -1
  1440. package/dist/browser/react/index.js +0 -22
  1441. package/dist/browser/react/index.js.map +0 -1
  1442. package/dist/browser/react/location-state-shared.d.ts +0 -63
  1443. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  1444. package/dist/browser/react/location-state-shared.js +0 -81
  1445. package/dist/browser/react/location-state-shared.js.map +0 -1
  1446. package/dist/browser/react/location-state.d.ts +0 -23
  1447. package/dist/browser/react/location-state.d.ts.map +0 -1
  1448. package/dist/browser/react/location-state.js +0 -29
  1449. package/dist/browser/react/location-state.js.map +0 -1
  1450. package/dist/browser/react/mount-context.d.ts +0 -24
  1451. package/dist/browser/react/mount-context.d.ts.map +0 -1
  1452. package/dist/browser/react/mount-context.js +0 -24
  1453. package/dist/browser/react/mount-context.js.map +0 -1
  1454. package/dist/browser/react/use-action.d.ts +0 -64
  1455. package/dist/browser/react/use-action.d.ts.map +0 -1
  1456. package/dist/browser/react/use-action.js +0 -134
  1457. package/dist/browser/react/use-action.js.map +0 -1
  1458. package/dist/browser/react/use-client-cache.d.ts +0 -41
  1459. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  1460. package/dist/browser/react/use-client-cache.js +0 -39
  1461. package/dist/browser/react/use-client-cache.js.map +0 -1
  1462. package/dist/browser/react/use-handle.d.ts +0 -31
  1463. package/dist/browser/react/use-handle.d.ts.map +0 -1
  1464. package/dist/browser/react/use-handle.js +0 -144
  1465. package/dist/browser/react/use-handle.js.map +0 -1
  1466. package/dist/browser/react/use-href.d.ts +0 -33
  1467. package/dist/browser/react/use-href.d.ts.map +0 -1
  1468. package/dist/browser/react/use-href.js +0 -39
  1469. package/dist/browser/react/use-href.js.map +0 -1
  1470. package/dist/browser/react/use-link-status.d.ts +0 -37
  1471. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  1472. package/dist/browser/react/use-link-status.js +0 -99
  1473. package/dist/browser/react/use-link-status.js.map +0 -1
  1474. package/dist/browser/react/use-mount.d.ts +0 -25
  1475. package/dist/browser/react/use-mount.d.ts.map +0 -1
  1476. package/dist/browser/react/use-mount.js +0 -30
  1477. package/dist/browser/react/use-mount.js.map +0 -1
  1478. package/dist/browser/react/use-navigation.d.ts +0 -27
  1479. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  1480. package/dist/browser/react/use-navigation.js +0 -87
  1481. package/dist/browser/react/use-navigation.js.map +0 -1
  1482. package/dist/browser/react/use-segments.d.ts +0 -38
  1483. package/dist/browser/react/use-segments.d.ts.map +0 -1
  1484. package/dist/browser/react/use-segments.js +0 -130
  1485. package/dist/browser/react/use-segments.js.map +0 -1
  1486. package/dist/browser/request-controller.d.ts +0 -26
  1487. package/dist/browser/request-controller.d.ts.map +0 -1
  1488. package/dist/browser/request-controller.js +0 -147
  1489. package/dist/browser/request-controller.js.map +0 -1
  1490. package/dist/browser/rsc-router.d.ts +0 -129
  1491. package/dist/browser/rsc-router.d.ts.map +0 -1
  1492. package/dist/browser/rsc-router.js +0 -195
  1493. package/dist/browser/rsc-router.js.map +0 -1
  1494. package/dist/browser/scroll-restoration.d.ts +0 -93
  1495. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  1496. package/dist/browser/scroll-restoration.js +0 -321
  1497. package/dist/browser/scroll-restoration.js.map +0 -1
  1498. package/dist/browser/segment-structure-assert.d.ts +0 -17
  1499. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  1500. package/dist/browser/segment-structure-assert.js +0 -59
  1501. package/dist/browser/segment-structure-assert.js.map +0 -1
  1502. package/dist/browser/server-action-bridge.d.ts +0 -26
  1503. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  1504. package/dist/browser/server-action-bridge.js +0 -668
  1505. package/dist/browser/server-action-bridge.js.map +0 -1
  1506. package/dist/browser/shallow.d.ts +0 -12
  1507. package/dist/browser/shallow.d.ts.map +0 -1
  1508. package/dist/browser/shallow.js +0 -34
  1509. package/dist/browser/shallow.js.map +0 -1
  1510. package/dist/browser/types.d.ts +0 -369
  1511. package/dist/browser/types.d.ts.map +0 -1
  1512. package/dist/browser/types.js +0 -2
  1513. package/dist/browser/types.js.map +0 -1
  1514. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  1515. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  1516. package/dist/build/__tests__/generate-cli.test.js +0 -237
  1517. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  1518. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  1519. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  1520. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  1521. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  1522. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  1523. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  1524. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  1525. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  1526. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  1527. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  1528. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  1529. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  1530. package/dist/build/generate-manifest.d.ts +0 -81
  1531. package/dist/build/generate-manifest.d.ts.map +0 -1
  1532. package/dist/build/generate-manifest.js +0 -276
  1533. package/dist/build/generate-manifest.js.map +0 -1
  1534. package/dist/build/generate-route-types.d.ts +0 -115
  1535. package/dist/build/generate-route-types.d.ts.map +0 -1
  1536. package/dist/build/generate-route-types.js +0 -740
  1537. package/dist/build/generate-route-types.js.map +0 -1
  1538. package/dist/build/index.d.ts +0 -21
  1539. package/dist/build/index.d.ts.map +0 -1
  1540. package/dist/build/index.js +0 -21
  1541. package/dist/build/index.js.map +0 -1
  1542. package/dist/build/route-trie.d.ts +0 -71
  1543. package/dist/build/route-trie.d.ts.map +0 -1
  1544. package/dist/build/route-trie.js +0 -175
  1545. package/dist/build/route-trie.js.map +0 -1
  1546. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  1547. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  1548. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  1549. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  1550. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  1551. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  1552. package/dist/cache/__tests__/document-cache.test.js +0 -345
  1553. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  1554. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  1555. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  1556. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  1557. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  1558. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  1559. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  1560. package/dist/cache/__tests__/memory-store.test.js +0 -367
  1561. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  1562. package/dist/cache/cache-scope.d.ts +0 -102
  1563. package/dist/cache/cache-scope.d.ts.map +0 -1
  1564. package/dist/cache/cache-scope.js +0 -440
  1565. package/dist/cache/cache-scope.js.map +0 -1
  1566. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  1567. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  1568. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  1569. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  1570. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  1571. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  1572. package/dist/cache/cf/cf-cache-store.js +0 -242
  1573. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  1574. package/dist/cache/cf/index.d.ts +0 -14
  1575. package/dist/cache/cf/index.d.ts.map +0 -1
  1576. package/dist/cache/cf/index.js +0 -17
  1577. package/dist/cache/cf/index.js.map +0 -1
  1578. package/dist/cache/document-cache.d.ts +0 -64
  1579. package/dist/cache/document-cache.d.ts.map +0 -1
  1580. package/dist/cache/document-cache.js +0 -228
  1581. package/dist/cache/document-cache.js.map +0 -1
  1582. package/dist/cache/index.d.ts +0 -19
  1583. package/dist/cache/index.d.ts.map +0 -1
  1584. package/dist/cache/index.js +0 -21
  1585. package/dist/cache/index.js.map +0 -1
  1586. package/dist/cache/memory-segment-store.d.ts +0 -110
  1587. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  1588. package/dist/cache/memory-segment-store.js +0 -117
  1589. package/dist/cache/memory-segment-store.js.map +0 -1
  1590. package/dist/cache/memory-store.d.ts +0 -41
  1591. package/dist/cache/memory-store.d.ts.map +0 -1
  1592. package/dist/cache/memory-store.js +0 -191
  1593. package/dist/cache/memory-store.js.map +0 -1
  1594. package/dist/cache/types.d.ts +0 -317
  1595. package/dist/cache/types.d.ts.map +0 -1
  1596. package/dist/cache/types.js +0 -12
  1597. package/dist/cache/types.js.map +0 -1
  1598. package/dist/client.d.ts +0 -248
  1599. package/dist/client.d.ts.map +0 -1
  1600. package/dist/client.js +0 -367
  1601. package/dist/client.js.map +0 -1
  1602. package/dist/client.rsc.d.ts +0 -26
  1603. package/dist/client.rsc.d.ts.map +0 -1
  1604. package/dist/client.rsc.js +0 -46
  1605. package/dist/client.rsc.js.map +0 -1
  1606. package/dist/component-utils.d.ts +0 -36
  1607. package/dist/component-utils.d.ts.map +0 -1
  1608. package/dist/component-utils.js +0 -61
  1609. package/dist/component-utils.js.map +0 -1
  1610. package/dist/components/DefaultDocument.d.ts +0 -13
  1611. package/dist/components/DefaultDocument.d.ts.map +0 -1
  1612. package/dist/components/DefaultDocument.js +0 -15
  1613. package/dist/components/DefaultDocument.js.map +0 -1
  1614. package/dist/debug.d.ts +0 -58
  1615. package/dist/debug.d.ts.map +0 -1
  1616. package/dist/debug.js +0 -157
  1617. package/dist/debug.js.map +0 -1
  1618. package/dist/default-error-boundary.d.ts +0 -11
  1619. package/dist/default-error-boundary.d.ts.map +0 -1
  1620. package/dist/default-error-boundary.js +0 -45
  1621. package/dist/default-error-boundary.js.map +0 -1
  1622. package/dist/deps/browser.d.ts +0 -2
  1623. package/dist/deps/browser.d.ts.map +0 -1
  1624. package/dist/deps/browser.js +0 -3
  1625. package/dist/deps/browser.js.map +0 -1
  1626. package/dist/deps/html-stream-client.d.ts +0 -2
  1627. package/dist/deps/html-stream-client.d.ts.map +0 -1
  1628. package/dist/deps/html-stream-client.js +0 -3
  1629. package/dist/deps/html-stream-client.js.map +0 -1
  1630. package/dist/deps/html-stream-server.d.ts +0 -2
  1631. package/dist/deps/html-stream-server.d.ts.map +0 -1
  1632. package/dist/deps/html-stream-server.js +0 -3
  1633. package/dist/deps/html-stream-server.js.map +0 -1
  1634. package/dist/deps/rsc.d.ts +0 -2
  1635. package/dist/deps/rsc.d.ts.map +0 -1
  1636. package/dist/deps/rsc.js +0 -4
  1637. package/dist/deps/rsc.js.map +0 -1
  1638. package/dist/deps/ssr.d.ts +0 -2
  1639. package/dist/deps/ssr.d.ts.map +0 -1
  1640. package/dist/deps/ssr.js +0 -3
  1641. package/dist/deps/ssr.js.map +0 -1
  1642. package/dist/errors.d.ts +0 -174
  1643. package/dist/errors.d.ts.map +0 -1
  1644. package/dist/errors.js +0 -241
  1645. package/dist/errors.js.map +0 -1
  1646. package/dist/handle.d.ts +0 -78
  1647. package/dist/handle.d.ts.map +0 -1
  1648. package/dist/handle.js +0 -82
  1649. package/dist/handle.js.map +0 -1
  1650. package/dist/handles/MetaTags.d.ts +0 -14
  1651. package/dist/handles/MetaTags.d.ts.map +0 -1
  1652. package/dist/handles/MetaTags.js +0 -136
  1653. package/dist/handles/MetaTags.js.map +0 -1
  1654. package/dist/handles/index.d.ts +0 -6
  1655. package/dist/handles/index.d.ts.map +0 -1
  1656. package/dist/handles/index.js +0 -6
  1657. package/dist/handles/index.js.map +0 -1
  1658. package/dist/handles/meta.d.ts +0 -39
  1659. package/dist/handles/meta.d.ts.map +0 -1
  1660. package/dist/handles/meta.js +0 -202
  1661. package/dist/handles/meta.js.map +0 -1
  1662. package/dist/host/__tests__/errors.test.d.ts +0 -2
  1663. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  1664. package/dist/host/__tests__/errors.test.js +0 -76
  1665. package/dist/host/__tests__/errors.test.js.map +0 -1
  1666. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  1667. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  1668. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  1669. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  1670. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  1671. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  1672. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  1673. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  1674. package/dist/host/__tests__/router.test.d.ts +0 -2
  1675. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  1676. package/dist/host/__tests__/router.test.js +0 -241
  1677. package/dist/host/__tests__/router.test.js.map +0 -1
  1678. package/dist/host/__tests__/testing.test.d.ts +0 -2
  1679. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  1680. package/dist/host/__tests__/testing.test.js +0 -64
  1681. package/dist/host/__tests__/testing.test.js.map +0 -1
  1682. package/dist/host/__tests__/utils.test.d.ts +0 -2
  1683. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  1684. package/dist/host/__tests__/utils.test.js +0 -29
  1685. package/dist/host/__tests__/utils.test.js.map +0 -1
  1686. package/dist/host/cookie-handler.d.ts +0 -34
  1687. package/dist/host/cookie-handler.d.ts.map +0 -1
  1688. package/dist/host/cookie-handler.js +0 -124
  1689. package/dist/host/cookie-handler.js.map +0 -1
  1690. package/dist/host/errors.d.ts +0 -56
  1691. package/dist/host/errors.d.ts.map +0 -1
  1692. package/dist/host/errors.js +0 -79
  1693. package/dist/host/errors.js.map +0 -1
  1694. package/dist/host/index.d.ts +0 -29
  1695. package/dist/host/index.d.ts.map +0 -1
  1696. package/dist/host/index.js +0 -32
  1697. package/dist/host/index.js.map +0 -1
  1698. package/dist/host/pattern-matcher.d.ts +0 -36
  1699. package/dist/host/pattern-matcher.d.ts.map +0 -1
  1700. package/dist/host/pattern-matcher.js +0 -172
  1701. package/dist/host/pattern-matcher.js.map +0 -1
  1702. package/dist/host/router.d.ts +0 -26
  1703. package/dist/host/router.d.ts.map +0 -1
  1704. package/dist/host/router.js +0 -218
  1705. package/dist/host/router.js.map +0 -1
  1706. package/dist/host/testing.d.ts +0 -36
  1707. package/dist/host/testing.d.ts.map +0 -1
  1708. package/dist/host/testing.js +0 -55
  1709. package/dist/host/testing.js.map +0 -1
  1710. package/dist/host/types.d.ts +0 -115
  1711. package/dist/host/types.d.ts.map +0 -1
  1712. package/dist/host/types.js +0 -7
  1713. package/dist/host/types.js.map +0 -1
  1714. package/dist/host/utils.d.ts +0 -21
  1715. package/dist/host/utils.d.ts.map +0 -1
  1716. package/dist/host/utils.js +0 -23
  1717. package/dist/host/utils.js.map +0 -1
  1718. package/dist/href-client.d.ts +0 -131
  1719. package/dist/href-client.d.ts.map +0 -1
  1720. package/dist/href-client.js +0 -64
  1721. package/dist/href-client.js.map +0 -1
  1722. package/dist/href-context.d.ts +0 -29
  1723. package/dist/href-context.d.ts.map +0 -1
  1724. package/dist/href-context.js +0 -21
  1725. package/dist/href-context.js.map +0 -1
  1726. package/dist/index.d.ts +0 -73
  1727. package/dist/index.d.ts.map +0 -1
  1728. package/dist/index.js +0 -91
  1729. package/dist/index.js.map +0 -1
  1730. package/dist/index.rsc.d.ts +0 -32
  1731. package/dist/index.rsc.d.ts.map +0 -1
  1732. package/dist/index.rsc.js +0 -40
  1733. package/dist/index.rsc.js.map +0 -1
  1734. package/dist/internal-debug.d.ts +0 -2
  1735. package/dist/internal-debug.d.ts.map +0 -1
  1736. package/dist/internal-debug.js +0 -5
  1737. package/dist/internal-debug.js.map +0 -1
  1738. package/dist/loader.d.ts +0 -14
  1739. package/dist/loader.d.ts.map +0 -1
  1740. package/dist/loader.js +0 -20
  1741. package/dist/loader.js.map +0 -1
  1742. package/dist/loader.rsc.d.ts +0 -19
  1743. package/dist/loader.rsc.d.ts.map +0 -1
  1744. package/dist/loader.rsc.js +0 -99
  1745. package/dist/loader.rsc.js.map +0 -1
  1746. package/dist/network-error-thrower.d.ts +0 -17
  1747. package/dist/network-error-thrower.d.ts.map +0 -1
  1748. package/dist/network-error-thrower.js +0 -14
  1749. package/dist/network-error-thrower.js.map +0 -1
  1750. package/dist/outlet-context.d.ts +0 -13
  1751. package/dist/outlet-context.d.ts.map +0 -1
  1752. package/dist/outlet-context.js +0 -3
  1753. package/dist/outlet-context.js.map +0 -1
  1754. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  1755. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  1756. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  1757. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  1758. package/dist/prerender/param-hash.d.ts +0 -16
  1759. package/dist/prerender/param-hash.d.ts.map +0 -1
  1760. package/dist/prerender/param-hash.js +0 -36
  1761. package/dist/prerender/param-hash.js.map +0 -1
  1762. package/dist/prerender/store.d.ts +0 -38
  1763. package/dist/prerender/store.d.ts.map +0 -1
  1764. package/dist/prerender/store.js +0 -61
  1765. package/dist/prerender/store.js.map +0 -1
  1766. package/dist/prerender.d.ts +0 -66
  1767. package/dist/prerender.d.ts.map +0 -1
  1768. package/dist/prerender.js +0 -57
  1769. package/dist/prerender.js.map +0 -1
  1770. package/dist/reverse.d.ts +0 -196
  1771. package/dist/reverse.d.ts.map +0 -1
  1772. package/dist/reverse.js +0 -78
  1773. package/dist/reverse.js.map +0 -1
  1774. package/dist/root-error-boundary.d.ts +0 -33
  1775. package/dist/root-error-boundary.d.ts.map +0 -1
  1776. package/dist/root-error-boundary.js +0 -165
  1777. package/dist/root-error-boundary.js.map +0 -1
  1778. package/dist/route-content-wrapper.d.ts +0 -46
  1779. package/dist/route-content-wrapper.d.ts.map +0 -1
  1780. package/dist/route-content-wrapper.js +0 -77
  1781. package/dist/route-content-wrapper.js.map +0 -1
  1782. package/dist/route-definition.d.ts +0 -421
  1783. package/dist/route-definition.d.ts.map +0 -1
  1784. package/dist/route-definition.js +0 -868
  1785. package/dist/route-definition.js.map +0 -1
  1786. package/dist/route-map-builder.d.ts +0 -155
  1787. package/dist/route-map-builder.d.ts.map +0 -1
  1788. package/dist/route-map-builder.js +0 -237
  1789. package/dist/route-map-builder.js.map +0 -1
  1790. package/dist/route-types.d.ts +0 -165
  1791. package/dist/route-types.d.ts.map +0 -1
  1792. package/dist/route-types.js +0 -7
  1793. package/dist/route-types.js.map +0 -1
  1794. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  1795. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  1796. package/dist/router/__tests__/handler-context.test.js +0 -65
  1797. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  1798. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  1799. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  1800. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  1801. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  1802. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  1803. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  1804. package/dist/router/__tests__/match-context.test.js +0 -92
  1805. package/dist/router/__tests__/match-context.test.js.map +0 -1
  1806. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  1807. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  1808. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  1809. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  1810. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  1811. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  1812. package/dist/router/__tests__/match-result.test.js +0 -457
  1813. package/dist/router/__tests__/match-result.test.js.map +0 -1
  1814. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  1815. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  1816. package/dist/router/__tests__/on-error.test.js +0 -678
  1817. package/dist/router/__tests__/on-error.test.js.map +0 -1
  1818. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  1819. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  1820. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  1821. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  1822. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  1823. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  1824. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  1825. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  1826. package/dist/router/error-handling.d.ts +0 -77
  1827. package/dist/router/error-handling.d.ts.map +0 -1
  1828. package/dist/router/error-handling.js +0 -202
  1829. package/dist/router/error-handling.js.map +0 -1
  1830. package/dist/router/handler-context.d.ts +0 -20
  1831. package/dist/router/handler-context.d.ts.map +0 -1
  1832. package/dist/router/handler-context.js +0 -198
  1833. package/dist/router/handler-context.js.map +0 -1
  1834. package/dist/router/intercept-resolution.d.ts +0 -66
  1835. package/dist/router/intercept-resolution.d.ts.map +0 -1
  1836. package/dist/router/intercept-resolution.js +0 -246
  1837. package/dist/router/intercept-resolution.js.map +0 -1
  1838. package/dist/router/loader-resolution.d.ts +0 -64
  1839. package/dist/router/loader-resolution.d.ts.map +0 -1
  1840. package/dist/router/loader-resolution.js +0 -284
  1841. package/dist/router/loader-resolution.js.map +0 -1
  1842. package/dist/router/logging.d.ts +0 -15
  1843. package/dist/router/logging.d.ts.map +0 -1
  1844. package/dist/router/logging.js +0 -99
  1845. package/dist/router/logging.js.map +0 -1
  1846. package/dist/router/manifest.d.ts +0 -22
  1847. package/dist/router/manifest.d.ts.map +0 -1
  1848. package/dist/router/manifest.js +0 -181
  1849. package/dist/router/manifest.js.map +0 -1
  1850. package/dist/router/match-api.d.ts +0 -35
  1851. package/dist/router/match-api.d.ts.map +0 -1
  1852. package/dist/router/match-api.js +0 -406
  1853. package/dist/router/match-api.js.map +0 -1
  1854. package/dist/router/match-context.d.ts +0 -206
  1855. package/dist/router/match-context.d.ts.map +0 -1
  1856. package/dist/router/match-context.js +0 -17
  1857. package/dist/router/match-context.js.map +0 -1
  1858. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  1859. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  1860. package/dist/router/match-middleware/background-revalidation.js +0 -75
  1861. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  1862. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  1863. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  1864. package/dist/router/match-middleware/cache-lookup.js +0 -257
  1865. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  1866. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  1867. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  1868. package/dist/router/match-middleware/cache-store.js +0 -108
  1869. package/dist/router/match-middleware/cache-store.js.map +0 -1
  1870. package/dist/router/match-middleware/index.d.ts +0 -81
  1871. package/dist/router/match-middleware/index.d.ts.map +0 -1
  1872. package/dist/router/match-middleware/index.js +0 -80
  1873. package/dist/router/match-middleware/index.js.map +0 -1
  1874. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  1875. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  1876. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  1877. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  1878. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  1879. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  1880. package/dist/router/match-middleware/segment-resolution.js +0 -53
  1881. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  1882. package/dist/router/match-pipelines.d.ts +0 -147
  1883. package/dist/router/match-pipelines.d.ts.map +0 -1
  1884. package/dist/router/match-pipelines.js +0 -82
  1885. package/dist/router/match-pipelines.js.map +0 -1
  1886. package/dist/router/match-result.d.ts +0 -126
  1887. package/dist/router/match-result.d.ts.map +0 -1
  1888. package/dist/router/match-result.js +0 -93
  1889. package/dist/router/match-result.js.map +0 -1
  1890. package/dist/router/metrics.d.ts +0 -20
  1891. package/dist/router/metrics.d.ts.map +0 -1
  1892. package/dist/router/metrics.js +0 -47
  1893. package/dist/router/metrics.js.map +0 -1
  1894. package/dist/router/middleware.d.ts +0 -249
  1895. package/dist/router/middleware.d.ts.map +0 -1
  1896. package/dist/router/middleware.js +0 -434
  1897. package/dist/router/middleware.js.map +0 -1
  1898. package/dist/router/middleware.test.d.ts +0 -2
  1899. package/dist/router/middleware.test.d.ts.map +0 -1
  1900. package/dist/router/middleware.test.js +0 -816
  1901. package/dist/router/middleware.test.js.map +0 -1
  1902. package/dist/router/pattern-matching.d.ts +0 -149
  1903. package/dist/router/pattern-matching.d.ts.map +0 -1
  1904. package/dist/router/pattern-matching.js +0 -349
  1905. package/dist/router/pattern-matching.js.map +0 -1
  1906. package/dist/router/revalidation.d.ts +0 -44
  1907. package/dist/router/revalidation.d.ts.map +0 -1
  1908. package/dist/router/revalidation.js +0 -147
  1909. package/dist/router/revalidation.js.map +0 -1
  1910. package/dist/router/router-context.d.ts +0 -135
  1911. package/dist/router/router-context.d.ts.map +0 -1
  1912. package/dist/router/router-context.js +0 -36
  1913. package/dist/router/router-context.js.map +0 -1
  1914. package/dist/router/segment-resolution.d.ts +0 -127
  1915. package/dist/router/segment-resolution.d.ts.map +0 -1
  1916. package/dist/router/segment-resolution.js +0 -919
  1917. package/dist/router/segment-resolution.js.map +0 -1
  1918. package/dist/router/trie-matching.d.ts +0 -40
  1919. package/dist/router/trie-matching.d.ts.map +0 -1
  1920. package/dist/router/trie-matching.js +0 -127
  1921. package/dist/router/trie-matching.js.map +0 -1
  1922. package/dist/router/types.d.ts +0 -136
  1923. package/dist/router/types.d.ts.map +0 -1
  1924. package/dist/router/types.js +0 -7
  1925. package/dist/router/types.js.map +0 -1
  1926. package/dist/router.d.ts +0 -753
  1927. package/dist/router.d.ts.map +0 -1
  1928. package/dist/router.gen.d.ts +0 -6
  1929. package/dist/router.gen.d.ts.map +0 -1
  1930. package/dist/router.gen.js +0 -6
  1931. package/dist/router.gen.js.map +0 -1
  1932. package/dist/router.js +0 -1304
  1933. package/dist/router.js.map +0 -1
  1934. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  1935. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  1936. package/dist/rsc/__tests__/helpers.test.js +0 -140
  1937. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  1938. package/dist/rsc/handler.d.ts +0 -45
  1939. package/dist/rsc/handler.d.ts.map +0 -1
  1940. package/dist/rsc/handler.js +0 -1172
  1941. package/dist/rsc/handler.js.map +0 -1
  1942. package/dist/rsc/helpers.d.ts +0 -16
  1943. package/dist/rsc/helpers.d.ts.map +0 -1
  1944. package/dist/rsc/helpers.js +0 -55
  1945. package/dist/rsc/helpers.js.map +0 -1
  1946. package/dist/rsc/index.d.ts +0 -22
  1947. package/dist/rsc/index.d.ts.map +0 -1
  1948. package/dist/rsc/index.js +0 -23
  1949. package/dist/rsc/index.js.map +0 -1
  1950. package/dist/rsc/nonce.d.ts +0 -9
  1951. package/dist/rsc/nonce.d.ts.map +0 -1
  1952. package/dist/rsc/nonce.js +0 -18
  1953. package/dist/rsc/nonce.js.map +0 -1
  1954. package/dist/rsc/types.d.ts +0 -206
  1955. package/dist/rsc/types.d.ts.map +0 -1
  1956. package/dist/rsc/types.js +0 -8
  1957. package/dist/rsc/types.js.map +0 -1
  1958. package/dist/search-params.d.ts +0 -103
  1959. package/dist/search-params.d.ts.map +0 -1
  1960. package/dist/search-params.js +0 -74
  1961. package/dist/search-params.js.map +0 -1
  1962. package/dist/segment-system.d.ts +0 -75
  1963. package/dist/segment-system.d.ts.map +0 -1
  1964. package/dist/segment-system.js +0 -336
  1965. package/dist/segment-system.js.map +0 -1
  1966. package/dist/server/context.d.ts +0 -245
  1967. package/dist/server/context.d.ts.map +0 -1
  1968. package/dist/server/context.js +0 -197
  1969. package/dist/server/context.js.map +0 -1
  1970. package/dist/server/fetchable-loader-store.d.ts +0 -18
  1971. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  1972. package/dist/server/fetchable-loader-store.js +0 -18
  1973. package/dist/server/fetchable-loader-store.js.map +0 -1
  1974. package/dist/server/handle-store.d.ts +0 -85
  1975. package/dist/server/handle-store.d.ts.map +0 -1
  1976. package/dist/server/handle-store.js +0 -142
  1977. package/dist/server/handle-store.js.map +0 -1
  1978. package/dist/server/loader-registry.d.ts +0 -55
  1979. package/dist/server/loader-registry.d.ts.map +0 -1
  1980. package/dist/server/loader-registry.js +0 -132
  1981. package/dist/server/loader-registry.js.map +0 -1
  1982. package/dist/server/request-context.d.ts +0 -226
  1983. package/dist/server/request-context.d.ts.map +0 -1
  1984. package/dist/server/request-context.js +0 -290
  1985. package/dist/server/request-context.js.map +0 -1
  1986. package/dist/server/root-layout.d.ts +0 -4
  1987. package/dist/server/root-layout.d.ts.map +0 -1
  1988. package/dist/server/root-layout.js +0 -5
  1989. package/dist/server/root-layout.js.map +0 -1
  1990. package/dist/server.d.ts +0 -15
  1991. package/dist/server.d.ts.map +0 -1
  1992. package/dist/server.js +0 -20
  1993. package/dist/server.js.map +0 -1
  1994. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  1995. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  1996. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  1997. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  1998. package/dist/ssr/index.d.ts +0 -98
  1999. package/dist/ssr/index.d.ts.map +0 -1
  2000. package/dist/ssr/index.js +0 -158
  2001. package/dist/ssr/index.js.map +0 -1
  2002. package/dist/static-handler.d.ts +0 -50
  2003. package/dist/static-handler.d.ts.map +0 -1
  2004. package/dist/static-handler.gen.d.ts +0 -5
  2005. package/dist/static-handler.gen.d.ts.map +0 -1
  2006. package/dist/static-handler.gen.js +0 -5
  2007. package/dist/static-handler.gen.js.map +0 -1
  2008. package/dist/static-handler.js +0 -29
  2009. package/dist/static-handler.js.map +0 -1
  2010. package/dist/theme/ThemeProvider.d.ts +0 -20
  2011. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  2012. package/dist/theme/ThemeProvider.js +0 -240
  2013. package/dist/theme/ThemeProvider.js.map +0 -1
  2014. package/dist/theme/ThemeScript.d.ts +0 -48
  2015. package/dist/theme/ThemeScript.d.ts.map +0 -1
  2016. package/dist/theme/ThemeScript.js +0 -13
  2017. package/dist/theme/ThemeScript.js.map +0 -1
  2018. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  2019. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  2020. package/dist/theme/__tests__/theme.test.js +0 -103
  2021. package/dist/theme/__tests__/theme.test.js.map +0 -1
  2022. package/dist/theme/constants.d.ts +0 -29
  2023. package/dist/theme/constants.d.ts.map +0 -1
  2024. package/dist/theme/constants.js +0 -48
  2025. package/dist/theme/constants.js.map +0 -1
  2026. package/dist/theme/index.d.ts +0 -31
  2027. package/dist/theme/index.d.ts.map +0 -1
  2028. package/dist/theme/index.js +0 -36
  2029. package/dist/theme/index.js.map +0 -1
  2030. package/dist/theme/theme-context.d.ts +0 -40
  2031. package/dist/theme/theme-context.d.ts.map +0 -1
  2032. package/dist/theme/theme-context.js +0 -60
  2033. package/dist/theme/theme-context.js.map +0 -1
  2034. package/dist/theme/theme-script.d.ts +0 -27
  2035. package/dist/theme/theme-script.d.ts.map +0 -1
  2036. package/dist/theme/theme-script.js +0 -147
  2037. package/dist/theme/theme-script.js.map +0 -1
  2038. package/dist/theme/types.d.ts +0 -163
  2039. package/dist/theme/types.d.ts.map +0 -1
  2040. package/dist/theme/types.js +0 -11
  2041. package/dist/theme/types.js.map +0 -1
  2042. package/dist/theme/use-theme.d.ts +0 -12
  2043. package/dist/theme/use-theme.d.ts.map +0 -1
  2044. package/dist/theme/use-theme.js +0 -40
  2045. package/dist/theme/use-theme.js.map +0 -1
  2046. package/dist/types.d.ts +0 -1479
  2047. package/dist/types.d.ts.map +0 -1
  2048. package/dist/types.js +0 -10
  2049. package/dist/types.js.map +0 -1
  2050. package/dist/urls.d.ts +0 -441
  2051. package/dist/urls.d.ts.map +0 -1
  2052. package/dist/urls.gen.d.ts +0 -8
  2053. package/dist/urls.gen.d.ts.map +0 -1
  2054. package/dist/urls.gen.js +0 -8
  2055. package/dist/urls.gen.js.map +0 -1
  2056. package/dist/urls.js +0 -443
  2057. package/dist/urls.js.map +0 -1
  2058. package/dist/use-loader.d.ts +0 -127
  2059. package/dist/use-loader.d.ts.map +0 -1
  2060. package/dist/use-loader.js +0 -237
  2061. package/dist/use-loader.js.map +0 -1
  2062. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  2063. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  2064. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  2065. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  2066. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  2067. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  2068. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  2069. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  2070. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  2071. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  2072. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  2073. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  2074. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  2075. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  2076. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  2077. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  2078. package/dist/vite/ast-handler-extract.d.ts +0 -49
  2079. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  2080. package/dist/vite/ast-handler-extract.js +0 -249
  2081. package/dist/vite/ast-handler-extract.js.map +0 -1
  2082. package/dist/vite/expose-action-id.d.ts +0 -19
  2083. package/dist/vite/expose-action-id.d.ts.map +0 -1
  2084. package/dist/vite/expose-action-id.js +0 -250
  2085. package/dist/vite/expose-action-id.js.map +0 -1
  2086. package/dist/vite/expose-id-utils.d.ts +0 -69
  2087. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  2088. package/dist/vite/expose-id-utils.js +0 -289
  2089. package/dist/vite/expose-id-utils.js.map +0 -1
  2090. package/dist/vite/expose-internal-ids.d.ts +0 -22
  2091. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  2092. package/dist/vite/expose-internal-ids.js +0 -886
  2093. package/dist/vite/expose-internal-ids.js.map +0 -1
  2094. package/dist/vite/index.d.ts +0 -149
  2095. package/dist/vite/index.d.ts.map +0 -1
  2096. package/dist/vite/index.js.map +0 -1
  2097. package/dist/vite/index.named-routes.gen.ts +0 -103
  2098. package/dist/vite/package-resolution.d.ts +0 -43
  2099. package/dist/vite/package-resolution.d.ts.map +0 -1
  2100. package/dist/vite/package-resolution.js +0 -112
  2101. package/dist/vite/package-resolution.js.map +0 -1
  2102. package/dist/vite/virtual-entries.d.ts +0 -25
  2103. package/dist/vite/virtual-entries.d.ts.map +0 -1
  2104. package/dist/vite/virtual-entries.js +0 -110
  2105. package/dist/vite/virtual-entries.js.map +0 -1
  2106. package/src/browser/action-response-classifier.ts +0 -99
  2107. package/src/browser/react/use-client-cache.ts +0 -58
  2108. package/src/browser/shallow.ts +0 -40
  2109. package/src/handles/index.ts +0 -7
  2110. package/src/network-error-thrower.tsx +0 -23
  2111. package/src/router/middleware-cookies.ts +0 -55
@@ -0,0 +1,951 @@
1
+ /**
2
+ * dispatch — in-process request -> Response for unit/integration tests,
3
+ * WITHOUT the Flight RSC runtime.
4
+ *
5
+ * dispatch runs the router's real matching and middleware execution so that
6
+ * redirects, 404s, response routes (path.json / path.text / path.html / ...),
7
+ * and middleware short-circuits behave exactly as in production. It deliberately
8
+ * does NOT render React Server Components: there is no Flight stream, no SSR,
9
+ * and no DOM. Hit an RSC (component) route and dispatch throws a clear error
10
+ * directing you to renderToFlightString/renderServerTree/renderHandler or an e2e test.
11
+ *
12
+ * What dispatch DOES support:
13
+ * - Trailing-slash and other findMatch() redirects -> 308 with Location
14
+ * - Unmatched paths -> 404 Response
15
+ * Both the 308 and the 404 are produced INSIDE the global middleware chain
16
+ * (mirroring production, where coreHandler runs wrapped by executeMiddleware),
17
+ * so a global auth middleware can 401/redirect them and middleware-set
18
+ * cookies/headers merge onto the 308/404 the way createResponseWithMergedHeaders
19
+ * merges them in production.
20
+ * - Response routes (non-RSC) -> serialized Response
21
+ * - json: JSON.stringify(result) (bare value) with application/json
22
+ * - text/html/xml/md: String(result) with the mapped MIME type
23
+ * - handler returning or throwing a Response: re-wrapped like
24
+ * handleResponseRoute (stub headers/cookies merged, Set-Cookie preserved,
25
+ * WebSocket upgrade passed through without reconstruction)
26
+ * - handler throwing a non-Response error: typed 500 / RouterError
27
+ * status, matching handleResponseRoute (RFC 9457 problem+json body with
28
+ * application/problem+json for json routes, text/plain message otherwise)
29
+ * - content-negotiated route: Vary: Accept appended
30
+ * - cached response route (cache({...})): getResponse/putResponse
31
+ * hit/SWR/tag write, resolved from the matched entry tree exactly as
32
+ * handleResponseRoute does. The write is scheduled via ctx.waitUntil
33
+ * (a microtask without an executionContext), so a HIT-asserting test must
34
+ * flush microtasks between the seeding dispatch and the asserting one.
35
+ * - Global middleware (router.use(...)) AND route-level middleware, with full
36
+ * next()/short-circuit/throw-Response/header+cookie-merge fidelity.
37
+ * - Partial (client-navigation) requests to a RESPONSE route (?_rsc_partial):
38
+ * global middleware runs first (so an auth gate can still 401/redirect),
39
+ * then — if it passes through — an X-RSC-Reload is returned. Route-level
40
+ * middleware is skipped on a partial, exactly as production skips it.
41
+ * - A middleware redirect (3xx + Location) on a partial/action request
42
+ * (?_rsc_partial / ?_rsc_action): converted to a 204 + X-RSC-Redirect via the
43
+ * real interceptRedirectForPartial, so fetch() does not auto-follow the 3xx —
44
+ * identical to production's no-location-state path.
45
+ * - The open-redirect guard (rsc/redirect-guard.ts) on full (browser-followed)
46
+ * redirects: a cross-origin Location is rewritten to the basename root unless
47
+ * redirect(url, { external: true }) opted out, mirroring production's single
48
+ * handler chokepoint. Soft partial/action redirects are 204 and pass through.
49
+ * - createRouter({ onError }) for CACHE / background-error degradation. dispatch
50
+ * wires the request context's _reportBackgroundError to the router's onError the
51
+ * same way the production RSC handler does, so a cache-read/cache-write/
52
+ * stale-revalidation failure on a cached response route (a throwing route
53
+ * cache({ key })/cache({ tags }), or a custom store whose keyGenerator/
54
+ * getResponse/putResponse throws) fires onError with phase "cache" and
55
+ * metadata.category, while the request still degrades-to-miss exactly as before.
56
+ * (A thrown non-Response route HANDLER error is the one onError path NOT covered —
57
+ * see "DOES NOT support" below.)
58
+ * - createRouter({ telemetry }) match-transaction lifecycle: request.start opens
59
+ * the transaction before the global middleware chain, request.end closes it
60
+ * after finalizeResponse (segmentCount 0 / cacheHit false — dispatch renders no
61
+ * RSC segments and holds no match-cache state), and a thrown non-Response error
62
+ * emits request.error with phase "routing". All three carry the same requestId
63
+ * (getRequestId). Emission is gated entirely on a configured sink; with none,
64
+ * dispatch does zero new work and stays byte-identical for existing callers.
65
+ * Lets a consumer unit-test their sink wiring in-process instead of only at e2e.
66
+ * - Response-route `renderStartMs` timeouts and `onTimeout`: dispatch races the
67
+ * same terminal response work, reports the timeout through onError/telemetry,
68
+ * and invokes the configured callback. `context.render` is absent because this
69
+ * primitive deliberately does not run the Flight/HTML render driver.
70
+ *
71
+ * What dispatch DOES NOT support (and why):
72
+ * - RSC component routes — rendering requires the Flight serializer + React
73
+ * server runtime, which is the boundary this primitive is defined to avoid.
74
+ * This includes partial requests that resolve to a component route.
75
+ * - Server actions (?_rsc_action) — RSC protocol concerns handled by
76
+ * router.fetch().
77
+ * - createRouter({ onError }) on a thrown non-Response route HANDLER error: the
78
+ * error is serialized into the same typed 500 / RouterError Response as
79
+ * production, but onError is NOT invoked for that path here. Cover handler-error
80
+ * onError side effects with an e2e test. (This is the unchanged boundary; cache
81
+ * and other background errors DO route through onError — see below.)
82
+ * - Location-state-carrying redirects on a partial/action request: production
83
+ * embeds a Flight payload (createRedirectFlightResponse) so the client can
84
+ * restore location state across the redirect. dispatch is RSC-free, so it
85
+ * cannot emit that Flight stream. It falls back to the no-state behavior — a
86
+ * 204 + X-RSC-Redirect via createSimpleRedirectResponse — dropping the
87
+ * embedded location state. The 204 status, the X-RSC-Redirect header, and the
88
+ * merged cookies/headers all match production; only the Flight-embedded
89
+ * location-state entries are absent. Cover location-state restoration across a
90
+ * partial redirect with an e2e test.
91
+ * - Telemetry cache.decision / loader.* / handler.error events: these fire from
92
+ * the real match()/matchPartial() + RSC render + loader pipeline (match-
93
+ * handlers.ts, loader-resolution.ts, segment-resolution), none of which
94
+ * dispatch runs. Synthesizing them here would be faking (the events would not
95
+ * reflect a real cache lookup or loader run), so dispatch emits only the
96
+ * request.start/end/error lifecycle above; cover cache/loader telemetry with an
97
+ * e2e test driving a real RSC request.
98
+ *
99
+ * dispatch reuses router.previewMatch(), which itself runs content negotiation
100
+ * and resolves route middleware from the matched entry tree, so dispatch's
101
+ * route-middleware collection is exactly the router's, not a re-implementation.
102
+ */
103
+
104
+ import {
105
+ createRequestContext,
106
+ runWithRequestContext,
107
+ setRequestContextParams,
108
+ } from "../server/request-context.js";
109
+ import { executeMiddleware, matchMiddleware } from "../router/middleware.js";
110
+ import type {
111
+ MiddlewareEntry,
112
+ MiddlewareFn,
113
+ } from "../router/middleware-types.js";
114
+ import {
115
+ createReverseFunction,
116
+ stripInternalParams,
117
+ } from "../router/handler-context.js";
118
+ import { NOCACHE_SYMBOL } from "../cache/taint.js";
119
+ import {
120
+ compileSearchParamsFilter,
121
+ type CacheSearchParams,
122
+ type SearchParamsFilter,
123
+ } from "../cache/search-params-filter.js";
124
+ import type { SegmentCacheStore } from "../cache/types.js";
125
+ import type { CacheProfile } from "../cache/profile-registry.js";
126
+ // cache-scope is loaded LAZILY inside the response-route cache path (below):
127
+ // its module graph pulls @vitejs/plugin-rsc/rsc (via segment-codec), which the
128
+ // non-Vite unit-test runner cannot resolve. A static import here would drag that
129
+ // onto the whole testing barrel's eager graph and break every consumer suite
130
+ // that imports `@rangojs/router/testing` without mocking plugin-rsc.
131
+ import type { EntryData } from "../server/context.js";
132
+ import { setRouterManifest } from "../route-map-builder.js";
133
+ import { RESPONSE_TYPE_MIME } from "../router/content-negotiation.js";
134
+ import { RouterError } from "../errors.js";
135
+ import { createProblemDetails } from "../rsc/response-error.js";
136
+ import {
137
+ createResponseWithMergedHeaders,
138
+ createSimpleRedirectResponse,
139
+ finalizeResponse,
140
+ interceptRedirectForPartial,
141
+ rewrapResponseRouteResponse,
142
+ } from "../rsc/helpers.js";
143
+ import { guardOutgoingRedirect } from "../rsc/redirect-guard.js";
144
+ import { stringifyJsonRouteResult } from "../rsc/json-route-result.js";
145
+ import { isWebSocketUpgradeResponse } from "../response-utils.js";
146
+ import { invokeOnError } from "../router/error-handling.js";
147
+ import type { OnErrorCallback } from "../types/error-types.js";
148
+ import type { Rango } from "../router/router-interfaces.js";
149
+ import { getRequestId, resolveSink, safeEmit } from "../router/telemetry.js";
150
+ import type { TelemetrySink } from "../router/telemetry.js";
151
+ import {
152
+ RouterTimeoutError,
153
+ createDefaultTimeoutResponse,
154
+ isTimeoutEnabled,
155
+ withTimeout,
156
+ } from "../router/timeout.js";
157
+ import type { OnTimeoutCallback, ResolvedTimeouts } from "../router/timeout.js";
158
+ import { applyStreamIdleTimeout } from "../rsc/stream-idle.js";
159
+
160
+ /**
161
+ * The internal subset of the router surface dispatch depends on. The public
162
+ * `Rango` router carries these members at runtime (they are declared on the
163
+ * internal interface), so dispatch accepts a public `Rango` and reads them
164
+ * through this shape — the consumer never needs a cast.
165
+ */
166
+ interface DispatchableRouter<TEnv> {
167
+ id?: string;
168
+ routerId?: string;
169
+ routeMap: Record<string, unknown>;
170
+ middleware: MiddlewareEntry<TEnv>[];
171
+ onError?: OnErrorCallback<TEnv>;
172
+ /**
173
+ * Optional telemetry sink from createRouter({ telemetry }) (RangoInternal
174
+ * field). dispatch emits the match-transaction lifecycle events onto it so a
175
+ * consumer can unit-test their sink wiring in-process; undefined keeps dispatch
176
+ * byte-identical for every existing caller.
177
+ */
178
+ telemetry?: TelemetrySink;
179
+ timeouts?: ResolvedTimeouts;
180
+ onTimeout?: OnTimeoutCallback<TEnv>;
181
+ findMatch(pathname: string): Promise<{
182
+ redirectTo?: string;
183
+ routeKey?: string;
184
+ params?: Record<string, string>;
185
+ } | null>;
186
+ previewMatch(
187
+ request: Request,
188
+ input?: { env?: TEnv },
189
+ ): Promise<{
190
+ routeMiddleware?: Array<{
191
+ handler: MiddlewareFn<TEnv>;
192
+ params: Record<string, string>;
193
+ }>;
194
+ responseType?: string;
195
+ handler?: Function;
196
+ params?: Record<string, string>;
197
+ routeKey?: string;
198
+ negotiated?: boolean;
199
+ manifestEntry?: EntryData;
200
+ } | null>;
201
+ basename?: string;
202
+ cache?:
203
+ | {
204
+ enabled?: boolean;
205
+ store?: SegmentCacheStore;
206
+ searchParams?: CacheSearchParams;
207
+ }
208
+ | ((
209
+ env: TEnv,
210
+ executionContext: unknown,
211
+ ) => {
212
+ enabled?: boolean;
213
+ store?: SegmentCacheStore;
214
+ searchParams?: CacheSearchParams;
215
+ });
216
+ cacheProfiles?: Record<string, CacheProfile>;
217
+ }
218
+
219
+ /**
220
+ * Options for dispatch.
221
+ */
222
+ export interface DispatchOptions<TEnv = any> {
223
+ /** The request to dispatch: a `Request`, or a URL string (absolute or path). */
224
+ request: Request | string;
225
+ /** Environment bindings forwarded to matching and middleware. */
226
+ env?: TEnv;
227
+ }
228
+
229
+ const DEFAULT_ORIGIN = "http://localhost/";
230
+
231
+ function toRequest(request: Request | string): Request {
232
+ if (request instanceof Request) return request;
233
+ return new Request(new URL(request, DEFAULT_ORIGIN));
234
+ }
235
+
236
+ /**
237
+ * Serialize a NON-Response response-route handler result, mirroring the
238
+ * router's handleResponseRoute() contract:
239
+ * - "json" serializes the value (bare) with application/json, rejecting a nested
240
+ * unresolved Promise via the shared stringifyJsonRouteResult guard,
241
+ * - text/html/xml/md stringify with the mapped MIME type.
242
+ *
243
+ * A handler-returned Response is NOT routed here — callHandler re-wraps it via
244
+ * rewrapHandlerResponse (mirroring handleResponseRoute's rewrapResponse) so the
245
+ * WebSocket-upgrade bypass and Set-Cookie-preserving header merge match
246
+ * production.
247
+ */
248
+ function serializeResponseRouteResult(
249
+ result: unknown,
250
+ responseType: string,
251
+ ): Response {
252
+ if (responseType === "json") {
253
+ // Serialize through the SAME guard production uses: a nested unresolved
254
+ // Promise (forgotten await) throws RESPONSE_NOT_SERIALIZABLE here, caught by
255
+ // callHandler's catch and mapped to the identical typed 500 production
256
+ // returns -- so a dispatch json test fails exactly where production would,
257
+ // instead of silently emitting {} and passing.
258
+ return new Response(stringifyJsonRouteResult(result), {
259
+ status: 200,
260
+ headers: { "content-type": "application/json;charset=utf-8" },
261
+ });
262
+ }
263
+
264
+ if (Object.hasOwn(RESPONSE_TYPE_MIME, responseType)) {
265
+ return new Response(String(result), {
266
+ status: 200,
267
+ headers: {
268
+ "content-type": `${RESPONSE_TYPE_MIME[responseType]};charset=utf-8`,
269
+ },
270
+ });
271
+ }
272
+
273
+ throw new Error(
274
+ `dispatch(): response route handler for "${responseType}" must return a ` +
275
+ `Response object, got ${typeof result}. Binary/streaming response types ` +
276
+ `(image, stream, any) must return a Response explicitly.`,
277
+ );
278
+ }
279
+
280
+ /**
281
+ * Serialize a thrown handler error into the same typed Response the router's
282
+ * handleResponseRoute() catch block produces:
283
+ * - "json" routes return an RFC 9457 problem+json body (application/problem+json),
284
+ * - all other types return a text/plain body (the RouterError message verbatim,
285
+ * the Error message in dev, else "Internal Server Error").
286
+ *
287
+ * `status` is the effective HTTP status resolved by the caller (RouterError.status
288
+ * or 500, overridden by ctx.setStatus()); it governs both the HTTP status and the
289
+ * problem body's `status`/`title` members. Reuses the production
290
+ * createProblemDetails so the error body is byte-identical rather than re-derived.
291
+ */
292
+ function serializeResponseRouteError(
293
+ error: unknown,
294
+ responseType: string,
295
+ status: number,
296
+ ): Response {
297
+ const isDev = process.env.NODE_ENV !== "production";
298
+
299
+ if (responseType === "json") {
300
+ return new Response(
301
+ JSON.stringify(createProblemDetails(error, status, isDev)),
302
+ {
303
+ status,
304
+ headers: { "content-type": "application/problem+json;charset=utf-8" },
305
+ },
306
+ );
307
+ }
308
+
309
+ const message =
310
+ error instanceof RouterError
311
+ ? error.message
312
+ : isDev && error instanceof Error
313
+ ? error.message
314
+ : "Internal Server Error";
315
+ return new Response(message, {
316
+ status,
317
+ headers: { "content-type": "text/plain;charset=utf-8" },
318
+ });
319
+ }
320
+
321
+ /**
322
+ * Run a request through the router in-process and return the Response.
323
+ *
324
+ * @example
325
+ * ```ts
326
+ * const router = createRouter<Env>({}).routes(urls(({ path }) => [
327
+ * path.json("/api/health", () => ({ ok: true }), { name: "health" }),
328
+ * ]));
329
+ *
330
+ * const res = await dispatch(router, { request: "/api/health" });
331
+ * expect(res.status).toBe(200);
332
+ * expect(await res.json()).toEqual({ ok: true });
333
+ * ```
334
+ */
335
+ export async function dispatch<TEnv = any>(
336
+ publicRouter: Rango<TEnv, any>,
337
+ opts: DispatchOptions<TEnv>,
338
+ ): Promise<Response> {
339
+ // The public Rango type intentionally hides the matching internals; read them
340
+ // through the dispatchable shape (present at runtime). Consumers pass their
341
+ // real router with no cast.
342
+ const router = publicRouter as unknown as DispatchableRouter<TEnv>;
343
+ const req = toRequest(opts.request);
344
+ const url = new URL(req.url);
345
+ const env = (opts.env ?? {}) as TEnv;
346
+
347
+ // Seed the per-router manifest so reverse() resolves during handler execution.
348
+ const routerId = router.id ?? router.routerId;
349
+ if (routerId) {
350
+ setRouterManifest(routerId, router.routeMap as Record<string, string>);
351
+ }
352
+
353
+ // findMatch carries trailing-slash/redirect targets and null on no match.
354
+ // previewMatch swallows redirects, so detect them here first.
355
+ const match = await router.findMatch(url.pathname);
356
+ const redirectTo = match?.redirectTo;
357
+ const isUnmatched = !match;
358
+
359
+ // previewMatch resolves responseType, the response-route handler, and the
360
+ // route middleware from the matched entry tree (with content negotiation).
361
+ // Skip it for a redirect/unmatched path — there is no response route to
362
+ // resolve, and previewMatch would return null / a redirect marker anyway.
363
+ const preview =
364
+ redirectTo || isUnmatched ? null : await router.previewMatch(req, { env });
365
+
366
+ // A bare match with no responseType is an RSC route. The RSC-route throw is a
367
+ // hard boundary of this primitive (no Flight runtime), distinct from the
368
+ // 308/404 outcomes below, so it stays a pre-middleware guard.
369
+ const responseType = preview?.responseType;
370
+ const handler = preview?.handler;
371
+ const params = preview?.params ?? match?.params ?? {};
372
+ const routeKey = preview?.routeKey ?? match?.routeKey;
373
+
374
+ if (
375
+ !redirectTo &&
376
+ !isUnmatched &&
377
+ (!responseType || typeof handler !== "function")
378
+ ) {
379
+ throw new Error(
380
+ `dispatch() does not render RSC routes — the route matched at ` +
381
+ `"${url.pathname}" is a React Server Component route, not a response ` +
382
+ `route. Use renderHandler/renderServerTree/renderToFlightString or an ` +
383
+ `e2e test to exercise component rendering.`,
384
+ );
385
+ }
386
+
387
+ const variables: Record<string, unknown> = {};
388
+
389
+ // Resolve the router's cache store the way the production handler does, so a
390
+ // "use cache" inside a response-route handler reaches the request-scope
391
+ // (NOCACHE) detection below instead of bypassing on a missing store.
392
+ let cacheStore: SegmentCacheStore | undefined;
393
+ let searchParamsFilter: SearchParamsFilter | undefined;
394
+ const cacheOption = router.cache;
395
+ if (cacheOption && !url.searchParams.has("__no_cache")) {
396
+ const cacheConfig =
397
+ typeof cacheOption === "function"
398
+ ? cacheOption(env, undefined)
399
+ : cacheOption;
400
+ if (cacheConfig.enabled !== false) {
401
+ cacheStore = cacheConfig.store;
402
+ searchParamsFilter = compileSearchParamsFilter(cacheConfig.searchParams);
403
+ }
404
+ }
405
+
406
+ const requestContext = createRequestContext<TEnv>({
407
+ env,
408
+ request: req,
409
+ url,
410
+ variables,
411
+ cacheStore,
412
+ searchParamsFilter,
413
+ cacheProfiles: router.cacheProfiles,
414
+ });
415
+ // Wire background error reporting so cache degradation (reportCacheError ->
416
+ // _reportBackgroundError) reaches the router's onError, mirroring the production
417
+ // RSC handler (rsc/handler.ts). Without this, dispatch could not observe onError.
418
+ requestContext._reportBackgroundError = (error, category) => {
419
+ if (error != null && typeof error === "object") {
420
+ if (requestContext._reportedErrors.has(error)) return;
421
+ requestContext._reportedErrors.add(error);
422
+ }
423
+ invokeOnError(
424
+ router.onError,
425
+ error,
426
+ "cache",
427
+ { request: req, url, metadata: { category } },
428
+ "RSC",
429
+ );
430
+ };
431
+ // Match production: the RSC handler stores the router's basename on the
432
+ // request context (handler.ts), and redirect() prefixes root-relative URLs
433
+ // with it. Mirror it so basename-redirect tests behave as they do in a real
434
+ // mounted app instead of always seeing no prefix.
435
+ requestContext._basename = router.basename;
436
+ requestContext._routerId = routerId;
437
+
438
+ // Match production's response-route reverse EXACTLY: the real handler builds
439
+ // it from the route map alone (response-route-handler.ts), with NO matched
440
+ // routeKey or params. Passing routeKey/params here would auto-fill params from
441
+ // the matched route, so ctx.reverse("name") could pass in a test while the
442
+ // real handler throws for the missing param.
443
+ const reverse = createReverseFunction(
444
+ router.routeMap as Record<string, string>,
445
+ ) as (
446
+ name: string,
447
+ p?: Record<string, string>,
448
+ search?: Record<string, unknown>,
449
+ ) => string;
450
+
451
+ const isPartial = url.searchParams.has("_rsc_partial");
452
+ const isAction = url.searchParams.has("_rsc_action");
453
+
454
+ // Telemetry: mirror the router's match-transaction lifecycle onto the
455
+ // configured sink so a consumer can unit-test createRouter({ telemetry })
456
+ // wiring in-process (the dogfood gap the RSC-free dispatch left — see
457
+ // tests/cloudflare-basic/test/cache-status.test.ts). Every emit is gated on
458
+ // `sink` truthiness: with no sink configured dispatch does zero new work and
459
+ // stays byte-identical for existing callers. Only request.start/end/error are
460
+ // reachable here — cache.decision and loader.* originate in the real match()/
461
+ // matchPartial() + RSC render pipeline dispatch deliberately does not run
462
+ // (module header), so fabricating them would violate the no-fake rule.
463
+ const sink = router.telemetry;
464
+ const telemetryRequestId = sink ? getRequestId(req) : undefined;
465
+ const telemetryStart = sink ? performance.now() : 0;
466
+
467
+ return runWithRequestContext(requestContext, async () => {
468
+ // Set params before middleware/handler run, so global middleware sees
469
+ // ctx.params (production sets them during matching, before middleware).
470
+ // On a redirect/unmatched path there are no route params.
471
+ if (routeKey !== undefined) {
472
+ setRequestContextParams(params, routeKey);
473
+ } else {
474
+ requestContext.params = params;
475
+ }
476
+
477
+ // The response-route handler (with its own route middleware) lives inside
478
+ // coreHandler below, mirroring production where handleResponseRoute is
479
+ // nested inside coreHandler. Built lazily so a redirect/404 path never
480
+ // touches it.
481
+ const callResponseRoute = async (): Promise<Response> => {
482
+ // Match production: a partial (client-navigation) request to a response
483
+ // route is short-circuited to X-RSC-Reload (handleResponseRoute), BEFORE
484
+ // route-level middleware runs. Route-level middleware is skipped on a
485
+ // partial, exactly as production skips it.
486
+ const partialFinalHandler = async (): Promise<Response> =>
487
+ createResponseWithMergedHeaders(null, {
488
+ status: 200,
489
+ headers: {
490
+ "X-RSC-Reload": stripInternalParams(url).toString(),
491
+ "content-type": "text/x-component;charset=utf-8",
492
+ },
493
+ });
494
+
495
+ const cleanUrl = new URL(req.url);
496
+ for (const key of [...cleanUrl.searchParams.keys()]) {
497
+ if (key.startsWith("_rsc")) cleanUrl.searchParams.delete(key);
498
+ }
499
+
500
+ // Lightweight response-handler context mirroring handleResponseRoute.
501
+ const responseHandlerCtx = {
502
+ request: req,
503
+ params,
504
+ env,
505
+ searchParams: cleanUrl.searchParams,
506
+ url: cleanUrl,
507
+ originalUrl: requestContext.originalUrl,
508
+ pathname: url.pathname,
509
+ reverse,
510
+ get: requestContext.get,
511
+ header: (name: string, value: string) =>
512
+ requestContext.header(name, value),
513
+ waitUntil: requestContext.waitUntil.bind(requestContext),
514
+ executionContext: requestContext.executionContext,
515
+ _responseType: responseType,
516
+ };
517
+ // Brand as request-scoped so a "use cache" inside a response-route handler
518
+ // is detected as a request-scope violation here exactly as in production
519
+ // (response-route-handler.ts brands the same shape).
520
+ (responseHandlerCtx as Record<symbol, unknown>)[NOCACHE_SYMBOL] = true;
521
+
522
+ const callHandler = async (): Promise<Response> => {
523
+ let merged: Response;
524
+ try {
525
+ let result: unknown;
526
+ try {
527
+ result = await (handler as Function)(responseHandlerCtx);
528
+ } catch (error) {
529
+ if (!(error instanceof Response)) throw error;
530
+ result = error;
531
+ }
532
+ if (result instanceof Response) {
533
+ merged = rewrapResponseRouteResponse(result);
534
+ } else {
535
+ // Route the serialized (json/text/...) body through the SAME
536
+ // production finalizer the RSC handler uses, so ctx.onResponse()
537
+ // callbacks fire and stub headers/cookies + the ctx.setStatus
538
+ // override merge identically to production. Runs inside
539
+ // runWithRequestContext, so _getRequestContext() resolves here.
540
+ const serialized = serializeResponseRouteResult(
541
+ result,
542
+ responseType as string,
543
+ );
544
+ merged = createResponseWithMergedHeaders(serialized.body, {
545
+ status: serialized.status,
546
+ headers: serialized.headers,
547
+ });
548
+ }
549
+ } catch (error) {
550
+ // Mirror handleResponseRoute's catch: a genuine handler error becomes
551
+ // the router's typed 500 / RouterError-status Response (NOT a rejected
552
+ // promise). Middleware short-circuit via thrown Response is handled by
553
+ // executeMiddleware and never reaches here.
554
+ const derivedStatus =
555
+ error instanceof RouterError ? error.status : 500;
556
+ // Resolve the effective status the way createResponseWithMergedHeaders
557
+ // (below) will (ctx.res.status override) BEFORE building the problem
558
+ // body, so the body's status/title match the actual HTTP status when a
559
+ // handler called ctx.setStatus() before throwing — exactly as
560
+ // handleResponseRoute resolves it.
561
+ const status =
562
+ requestContext.res.status !== 200
563
+ ? requestContext.res.status
564
+ : derivedStatus;
565
+ const serialized = serializeResponseRouteError(
566
+ error,
567
+ responseType as string,
568
+ status,
569
+ );
570
+ merged = createResponseWithMergedHeaders(serialized.body, {
571
+ status: serialized.status,
572
+ headers: serialized.headers,
573
+ });
574
+ }
575
+
576
+ // Append Vary: Accept on content-negotiated responses, matching
577
+ // handleResponseRoute's callHandlerWithVary. Skipped on WebSocket
578
+ // upgrade responses (immutable headers, Vary meaningless for a 101).
579
+ if (preview?.negotiated && !isWebSocketUpgradeResponse(merged)) {
580
+ merged.headers.append("Vary", "Accept");
581
+ }
582
+
583
+ return merged;
584
+ };
585
+
586
+ // On a partial request the reload IS the terminal handler and route
587
+ // middleware is skipped; otherwise the response-route handler is wrapped
588
+ // by route-level middleware (production order: route middleware runs
589
+ // inside handleResponseRoute, after the global chain).
590
+ if (isPartial) {
591
+ return partialFinalHandler();
592
+ }
593
+
594
+ // executeHandler = callHandler wrapped by route-level middleware, exactly
595
+ // the unit the production response cache wraps (response-route-handler.ts).
596
+ const executeHandler = (): Promise<Response> => {
597
+ const routeMiddlewareEntries = (preview?.routeMiddleware ?? []).map(
598
+ (mw) => ({
599
+ entry: {
600
+ pattern: null,
601
+ regex: null,
602
+ paramNames: [],
603
+ handler: mw.handler,
604
+ } as MiddlewareEntry<TEnv>,
605
+ params: mw.params,
606
+ }),
607
+ );
608
+ if (routeMiddlewareEntries.length === 0) {
609
+ return callHandler();
610
+ }
611
+ return executeMiddleware<TEnv>(
612
+ routeMiddlewareEntries,
613
+ req,
614
+ env,
615
+ variables,
616
+ callHandler,
617
+ reverse,
618
+ );
619
+ };
620
+
621
+ // Response-route cache path: resolved through the SAME shared serve leaf
622
+ // (rsc/response-cache-serve.ts) production uses, so a cached
623
+ // path.json/path.text route hits/SWRs/writes tags through dispatch exactly
624
+ // as in production — and the two can never drift. Resolved from the matched
625
+ // entry tree (preview.manifestEntry), which previewMatch surfaces for
626
+ // response routes.
627
+ const manifestEntry = preview?.manifestEntry;
628
+ if (manifestEntry) {
629
+ // Lazy so the testing barrel's eager graph stays plugin-rsc-free (see the
630
+ // import note above): the leaf takes createCacheScope/resolveCacheTags as
631
+ // INJECTED deps so it never imports plugin-rsc; we hand it the lazily
632
+ // imported pair here, only once a response route actually matched.
633
+ const cacheScopeMod = await import("../cache/cache-scope.js");
634
+ const { serveResponseRouteWithCache } =
635
+ await import("../rsc/response-cache-serve.js");
636
+ // requestContext is RequestContext<TEnv>; the leaf is typed against the
637
+ // default-env RequestContext (it reads only env-agnostic config).
638
+ // Assignable in the router's own tsc but not when a consumer pins a
639
+ // concrete Env — cast to the leaf's param type.
640
+ const cached = await serveResponseRouteWithCache({
641
+ reqCtx: requestContext as Parameters<
642
+ typeof serveResponseRouteWithCache
643
+ >[0]["reqCtx"],
644
+ manifestEntry,
645
+ responseType: responseType as string,
646
+ url,
647
+ executeHandler,
648
+ deps: {
649
+ createCacheScope: cacheScopeMod.createCacheScope,
650
+ resolveCacheTags: cacheScopeMod.resolveCacheTags,
651
+ },
652
+ });
653
+ if (cached !== undefined) return cached;
654
+ }
655
+
656
+ return executeHandler().then(finalizeResponse);
657
+ };
658
+
659
+ // The renderStartMs deadline wraps ONLY the response-route unit, mirroring
660
+ // handler.ts:845 where withTimeout(handleResponseRoute(...)) runs INSIDE
661
+ // coreRequestHandler — after the global middleware chain has already
662
+ // entered. Wrapping the outer chain (as an earlier version did) counted
663
+ // global middleware time toward the deadline, so a slow global auth
664
+ // middleware could 504 a request production serves. On timeout the 504/
665
+ // onTimeout Response is RETURNED from coreHandler so it flows back out
666
+ // through the global chain and finalizeResponse, identical to production
667
+ // (handler.ts:857 returns handleTimeoutResponse into the same next() path).
668
+ const runResponseRoute = async (): Promise<Response> => {
669
+ const responseWork = callResponseRoute();
670
+ const renderOutcome = await withTimeout(
671
+ responseWork,
672
+ router.timeouts?.renderStartMs,
673
+ "render-start",
674
+ );
675
+ if (!renderOutcome.timedOut) return renderOutcome.result;
676
+
677
+ // The race's losing side keeps executing after the timeout wins; its
678
+ // eventual Response is dropped. Swallow any rejection (no
679
+ // unhandled-rejection surfacing) and cancel the orphaned body stream so,
680
+ // under vitest, the abandoned handler cannot leak into the next test.
681
+ // Production abandons it too (handler.ts:845); this is a runner-scoped
682
+ // cleanup, not an observable-behavior change.
683
+ void responseWork
684
+ .then(
685
+ (orphan) => orphan.body?.cancel(),
686
+ () => {},
687
+ )
688
+ .catch(() => {});
689
+
690
+ const durationMs = renderOutcome.durationMs;
691
+ const timeoutError = new RouterTimeoutError("render-start", durationMs);
692
+ // Field-for-field parity with handleTimeoutResponse's callOnError
693
+ // (handler.ts:254): env is passed through (was previously dropped). render
694
+ // is always absent — dispatch runs no Flight/HTML driver, so there is no
695
+ // foreground cursor to snapshot.
696
+ invokeOnError(
697
+ router.onError,
698
+ timeoutError,
699
+ "handler",
700
+ {
701
+ request: req,
702
+ url,
703
+ env,
704
+ routeKey,
705
+ handledByBoundary: false,
706
+ metadata: { timeout: true, phase: "render-start", durationMs },
707
+ },
708
+ "RSC",
709
+ );
710
+ if (sink) {
711
+ safeEmit(resolveSink(sink), {
712
+ type: "request.timeout",
713
+ timestamp: performance.now(),
714
+ requestId: telemetryRequestId,
715
+ phase: "render-start",
716
+ pathname: url.pathname,
717
+ routeKey,
718
+ durationMs,
719
+ customHandler: router.onTimeout !== undefined,
720
+ });
721
+ }
722
+ if (router.onTimeout) {
723
+ try {
724
+ return await router.onTimeout({
725
+ phase: "render-start",
726
+ request: req,
727
+ url,
728
+ env,
729
+ routeKey,
730
+ durationMs,
731
+ });
732
+ } catch (error) {
733
+ if (process.env.NODE_ENV !== "production") {
734
+ console.error("[dispatch] onTimeout callback error:", error);
735
+ }
736
+ return createDefaultTimeoutResponse("render-start");
737
+ }
738
+ }
739
+ return createDefaultTimeoutResponse("render-start");
740
+ };
741
+
742
+ // coreHandler is the single terminal the global middleware chain wraps,
743
+ // mirroring production's coreHandler (handler.ts): a trailing-slash/redirect
744
+ // 308, an unmatched-path 404, or the response route. Both the 308 and the
745
+ // 404 are produced via createResponseWithMergedHeaders so middleware-set
746
+ // cookies/headers merge onto them, identical to production's
747
+ // rsc-rendering.ts redirect path — and because they sit inside the chain, a
748
+ // global middleware that short-circuits (e.g. an auth 401) runs first and
749
+ // wins, never reaching the 308/404. The renderStartMs deadline lives inside
750
+ // runResponseRoute (below the chain), never covering the 308/404 paths —
751
+ // production only wraps the response-route plan (handler.ts:834-856).
752
+ const coreHandler = async (): Promise<Response> => {
753
+ if (redirectTo) {
754
+ return createResponseWithMergedHeaders(null, {
755
+ status: 308,
756
+ headers: { Location: redirectTo + url.search },
757
+ });
758
+ }
759
+ if (isUnmatched) {
760
+ return createResponseWithMergedHeaders("Not Found", {
761
+ status: 404,
762
+ headers: { "content-type": "text/plain;charset=utf-8" },
763
+ });
764
+ }
765
+ return runResponseRoute();
766
+ };
767
+
768
+ // request.start opens the match transaction, mirroring match-handlers.ts.
769
+ // transaction is always "match" (dispatch has no matchPartial split);
770
+ // isPartial carries the ?_rsc_partial signal the same way production does.
771
+ if (sink) {
772
+ safeEmit(resolveSink(sink), {
773
+ type: "request.start",
774
+ timestamp: telemetryStart,
775
+ requestId: telemetryRequestId,
776
+ method: req.method,
777
+ pathname: url.pathname,
778
+ transaction: "match",
779
+ isPartial,
780
+ });
781
+ }
782
+
783
+ try {
784
+ // Global (pattern-matched) middleware wraps coreHandler, exactly as
785
+ // production wraps coreHandler with executeMiddleware (handler.ts:568).
786
+ // The renderStartMs deadline is deliberately NOT applied here — it wraps
787
+ // only the response-route unit inside coreHandler (see runResponseRoute),
788
+ // mirroring handler.ts:845 so global middleware time is never counted
789
+ // toward the deadline.
790
+ const globalMatches = matchMiddleware(url.pathname, router.middleware);
791
+ const mwResponse =
792
+ globalMatches.length === 0
793
+ ? await coreHandler()
794
+ : await executeMiddleware<TEnv>(
795
+ globalMatches,
796
+ req,
797
+ env,
798
+ variables,
799
+ coreHandler,
800
+ reverse,
801
+ );
802
+
803
+ // Match production's global-chain exit (handler.ts): on a partial/action
804
+ // request a middleware 3xx redirect is converted to a Flight-safe response
805
+ // so fetch() does not auto-follow it; every path then drains onResponse
806
+ // callbacks via finalizeResponse. dispatch is RSC-free, so the
807
+ // createRedirectFlightResponse stand-in falls back to the no-state
808
+ // 204 + X-RSC-Redirect (see the location-state divergence in the header).
809
+ let finalResponse: Response;
810
+ if (isPartial || isAction) {
811
+ const softOpts = {
812
+ requestOrigin: url.origin,
813
+ basename: router.basename,
814
+ };
815
+ // Pass `external` through: interceptRedirectForPartial forwards the
816
+ // out-of-band brand as the third callback arg (helpers.ts). Dropping it
817
+ // would neutralize redirect(url, { external: true }) to "/" in dispatch
818
+ // while production preserves it via createRedirectFlightResponse.
819
+ const intercepted = interceptRedirectForPartial(
820
+ mwResponse,
821
+ (redirectUrl, _locationState, external) =>
822
+ createSimpleRedirectResponse(redirectUrl, {
823
+ ...softOpts,
824
+ external,
825
+ }),
826
+ softOpts,
827
+ );
828
+ finalResponse = finalizeResponse(intercepted ?? mwResponse);
829
+ } else {
830
+ finalResponse = finalizeResponse(mwResponse);
831
+ }
832
+
833
+ // request.end closes the transaction. dispatch produces no RSC segments and
834
+ // holds no match-cache state, so segmentCount/cacheHit are 0/false — the
835
+ // same shape production emits for its own redirect (segment-less) result.
836
+ if (sink) {
837
+ safeEmit(resolveSink(sink), {
838
+ type: "request.end",
839
+ timestamp: performance.now(),
840
+ requestId: telemetryRequestId,
841
+ method: req.method,
842
+ pathname: url.pathname,
843
+ transaction: "match",
844
+ durationMs: performance.now() - telemetryStart,
845
+ segmentCount: 0,
846
+ cacheHit: false,
847
+ // dispatch's final response IS built before request.end (unlike
848
+ // match()/matchPartial(), whose Response is built after), so stamp its
849
+ // status — the same field a thrown-Response short-circuit carries.
850
+ status: finalResponse.status,
851
+ });
852
+ }
853
+
854
+ // Mirror production's single open-redirect chokepoint (handler.ts): every
855
+ // browser-followed (3xx + Location) redirect is same-origin guarded before
856
+ // it leaves -- a cross-origin Location is rewritten to the basename root
857
+ // unless redirect(url, { external: true }) opted out. Soft partial/action
858
+ // redirects are already resolved at createSimpleRedirectResponse time.
859
+ const guardedResponse = guardOutgoingRedirect(
860
+ finalResponse,
861
+ url.origin,
862
+ router.basename,
863
+ );
864
+
865
+ // Mirror production's stream-idle watchdog (handler.ts response tail),
866
+ // same gating and reporting — dispatch is the userland dogfood surface
867
+ // for timeouts.streamIdleMs, so the primitive carries the real wiring,
868
+ // not a stub. Websocket check FIRST (an upgrade response's body getter
869
+ // must never be poked); onTimeout does not apply mid-stream.
870
+ const streamIdleMs = router.timeouts?.streamIdleMs;
871
+ if (
872
+ isTimeoutEnabled(streamIdleMs) &&
873
+ !isWebSocketUpgradeResponse(guardedResponse) &&
874
+ guardedResponse.body
875
+ ) {
876
+ return applyStreamIdleTimeout(
877
+ guardedResponse,
878
+ streamIdleMs!,
879
+ (trip) => {
880
+ invokeOnError(
881
+ router.onError,
882
+ trip.error,
883
+ "handler",
884
+ {
885
+ request: req,
886
+ url,
887
+ env,
888
+ handledByBoundary: false,
889
+ metadata: {
890
+ timeout: true,
891
+ phase: "stream-idle",
892
+ durationMs: trip.totalMs,
893
+ },
894
+ },
895
+ "RSC",
896
+ );
897
+ if (sink) {
898
+ safeEmit(resolveSink(sink), {
899
+ type: "request.timeout",
900
+ timestamp: performance.now(),
901
+ requestId: telemetryRequestId,
902
+ phase: "stream-idle",
903
+ pathname: url.pathname,
904
+ durationMs: trip.totalMs,
905
+ customHandler: false,
906
+ });
907
+ }
908
+ },
909
+ );
910
+ }
911
+ return guardedResponse;
912
+ } catch (error) {
913
+ if (sink) {
914
+ if (error instanceof Response) {
915
+ // executeMiddleware absorbs a middleware-thrown Response and returns it
916
+ // (middleware.ts:566), so a thrown Response never actually reaches this
917
+ // level in dispatch. Defensive: if one ever does it is a completed
918
+ // request from the consumer's seat (a short-circuit redirect), so mirror
919
+ // plan 002 / match-handlers.ts and emit request.end, not request.error.
920
+ safeEmit(resolveSink(sink), {
921
+ type: "request.end",
922
+ timestamp: performance.now(),
923
+ requestId: telemetryRequestId,
924
+ method: req.method,
925
+ pathname: url.pathname,
926
+ transaction: "match",
927
+ durationMs: performance.now() - telemetryStart,
928
+ segmentCount: 0,
929
+ cacheHit: false,
930
+ // Carry the short-circuit Response's status (parity with
931
+ // match-handlers.ts's thrown-Response request.end).
932
+ status: error.status,
933
+ });
934
+ } else {
935
+ safeEmit(resolveSink(sink), {
936
+ type: "request.error",
937
+ timestamp: performance.now(),
938
+ requestId: telemetryRequestId,
939
+ method: req.method,
940
+ pathname: url.pathname,
941
+ transaction: "match",
942
+ error: error instanceof Error ? error : new Error(String(error)),
943
+ phase: "routing",
944
+ durationMs: performance.now() - telemetryStart,
945
+ });
946
+ }
947
+ }
948
+ throw error;
949
+ }
950
+ });
951
+ }