@rangojs/router 0.0.0-experimental.80 → 0.0.0-experimental.80daa23e

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 (1717) hide show
  1. package/AGENTS.md +8 -4
  2. package/README.md +318 -791
  3. package/dist/__internal.d.ts +83 -0
  4. package/dist/__internal.d.ts.map +1 -0
  5. package/dist/__internal.js +19 -0
  6. package/dist/__internal.js.map +1 -0
  7. package/dist/__mocks__/version.d.ts +7 -0
  8. package/dist/__mocks__/version.d.ts.map +1 -0
  9. package/dist/__mocks__/version.js +7 -0
  10. package/dist/__mocks__/version.js.map +1 -0
  11. package/dist/__tests__/client-href.test.d.ts +2 -0
  12. package/dist/__tests__/client-href.test.d.ts.map +1 -0
  13. package/dist/__tests__/client-href.test.js +74 -0
  14. package/dist/__tests__/client-href.test.js.map +1 -0
  15. package/dist/__tests__/component-utils.test.d.ts +2 -0
  16. package/dist/__tests__/component-utils.test.d.ts.map +1 -0
  17. package/dist/__tests__/component-utils.test.js +51 -0
  18. package/dist/__tests__/component-utils.test.js.map +1 -0
  19. package/dist/__tests__/event-controller.test.d.ts +2 -0
  20. package/dist/__tests__/event-controller.test.d.ts.map +1 -0
  21. package/dist/__tests__/event-controller.test.js +538 -0
  22. package/dist/__tests__/event-controller.test.js.map +1 -0
  23. package/dist/__tests__/helpers/route-tree.d.ts +118 -0
  24. package/dist/__tests__/helpers/route-tree.d.ts.map +1 -0
  25. package/dist/__tests__/helpers/route-tree.js +374 -0
  26. package/dist/__tests__/helpers/route-tree.js.map +1 -0
  27. package/dist/__tests__/match-result.test.d.ts +2 -0
  28. package/dist/__tests__/match-result.test.d.ts.map +1 -0
  29. package/dist/__tests__/match-result.test.js +154 -0
  30. package/dist/__tests__/match-result.test.js.map +1 -0
  31. package/dist/__tests__/navigation-store.test.d.ts +2 -0
  32. package/dist/__tests__/navigation-store.test.d.ts.map +1 -0
  33. package/dist/__tests__/navigation-store.test.js +440 -0
  34. package/dist/__tests__/navigation-store.test.js.map +1 -0
  35. package/dist/__tests__/partial-update.test.d.ts +2 -0
  36. package/dist/__tests__/partial-update.test.d.ts.map +1 -0
  37. package/dist/__tests__/partial-update.test.js +1009 -0
  38. package/dist/__tests__/partial-update.test.js.map +1 -0
  39. package/dist/__tests__/reverse-types.test.d.ts +8 -0
  40. package/dist/__tests__/reverse-types.test.d.ts.map +1 -0
  41. package/dist/__tests__/reverse-types.test.js +656 -0
  42. package/dist/__tests__/reverse-types.test.js.map +1 -0
  43. package/dist/__tests__/route-definition.test.d.ts +2 -0
  44. package/dist/__tests__/route-definition.test.d.ts.map +1 -0
  45. package/dist/__tests__/route-definition.test.js +55 -0
  46. package/dist/__tests__/route-definition.test.js.map +1 -0
  47. package/dist/__tests__/router-helpers.test.d.ts +2 -0
  48. package/dist/__tests__/router-helpers.test.d.ts.map +1 -0
  49. package/dist/__tests__/router-helpers.test.js +377 -0
  50. package/dist/__tests__/router-helpers.test.js.map +1 -0
  51. package/dist/__tests__/router-integration-2.test.d.ts +2 -0
  52. package/dist/__tests__/router-integration-2.test.d.ts.map +1 -0
  53. package/dist/__tests__/router-integration-2.test.js +426 -0
  54. package/dist/__tests__/router-integration-2.test.js.map +1 -0
  55. package/dist/__tests__/router-integration.test.d.ts +2 -0
  56. package/dist/__tests__/router-integration.test.d.ts.map +1 -0
  57. package/dist/__tests__/router-integration.test.js +1051 -0
  58. package/dist/__tests__/router-integration.test.js.map +1 -0
  59. package/dist/__tests__/search-params.test.d.ts +5 -0
  60. package/dist/__tests__/search-params.test.d.ts.map +1 -0
  61. package/dist/__tests__/search-params.test.js +306 -0
  62. package/dist/__tests__/search-params.test.js.map +1 -0
  63. package/dist/__tests__/segment-system.test.d.ts +2 -0
  64. package/dist/__tests__/segment-system.test.d.ts.map +1 -0
  65. package/dist/__tests__/segment-system.test.js +627 -0
  66. package/dist/__tests__/segment-system.test.js.map +1 -0
  67. package/dist/__tests__/static-handler-types.test.d.ts +8 -0
  68. package/dist/__tests__/static-handler-types.test.d.ts.map +1 -0
  69. package/dist/__tests__/static-handler-types.test.js +63 -0
  70. package/dist/__tests__/static-handler-types.test.js.map +1 -0
  71. package/dist/__tests__/urls.test.d.ts +2 -0
  72. package/dist/__tests__/urls.test.d.ts.map +1 -0
  73. package/dist/__tests__/urls.test.js +421 -0
  74. package/dist/__tests__/urls.test.js.map +1 -0
  75. package/dist/__tests__/use-mount.test.d.ts +2 -0
  76. package/dist/__tests__/use-mount.test.d.ts.map +1 -0
  77. package/dist/__tests__/use-mount.test.js +35 -0
  78. package/dist/__tests__/use-mount.test.js.map +1 -0
  79. package/dist/bin/rango.d.ts +2 -0
  80. package/dist/bin/rango.d.ts.map +1 -0
  81. package/dist/bin/rango.js +927 -273
  82. package/dist/bin/rango.js.map +1 -0
  83. package/dist/browser/event-controller.d.ts +191 -0
  84. package/dist/browser/event-controller.d.ts.map +1 -0
  85. package/dist/browser/event-controller.js +559 -0
  86. package/dist/browser/event-controller.js.map +1 -0
  87. package/dist/browser/index.d.ts +2 -0
  88. package/dist/browser/index.d.ts.map +1 -0
  89. package/dist/browser/index.js +14 -0
  90. package/dist/browser/index.js.map +1 -0
  91. package/dist/browser/link-interceptor.d.ts +38 -0
  92. package/dist/browser/link-interceptor.d.ts.map +1 -0
  93. package/dist/browser/link-interceptor.js +99 -0
  94. package/dist/browser/link-interceptor.js.map +1 -0
  95. package/dist/browser/logging.d.ts +10 -0
  96. package/dist/browser/logging.d.ts.map +1 -0
  97. package/dist/browser/logging.js +29 -0
  98. package/dist/browser/logging.js.map +1 -0
  99. package/dist/browser/lru-cache.d.ts +17 -0
  100. package/dist/browser/lru-cache.d.ts.map +1 -0
  101. package/dist/browser/lru-cache.js +50 -0
  102. package/dist/browser/lru-cache.js.map +1 -0
  103. package/dist/browser/merge-segment-loaders.d.ts +39 -0
  104. package/dist/browser/merge-segment-loaders.d.ts.map +1 -0
  105. package/dist/browser/merge-segment-loaders.js +102 -0
  106. package/dist/browser/merge-segment-loaders.js.map +1 -0
  107. package/dist/browser/navigation-bridge.d.ts +102 -0
  108. package/dist/browser/navigation-bridge.d.ts.map +1 -0
  109. package/dist/browser/navigation-bridge.js +708 -0
  110. package/dist/browser/navigation-bridge.js.map +1 -0
  111. package/dist/browser/navigation-client.d.ts +25 -0
  112. package/dist/browser/navigation-client.d.ts.map +1 -0
  113. package/dist/browser/navigation-client.js +157 -0
  114. package/dist/browser/navigation-client.js.map +1 -0
  115. package/dist/browser/navigation-store.d.ts +101 -0
  116. package/dist/browser/navigation-store.d.ts.map +1 -0
  117. package/dist/browser/navigation-store.js +625 -0
  118. package/dist/browser/navigation-store.js.map +1 -0
  119. package/dist/browser/partial-update.d.ts +75 -0
  120. package/dist/browser/partial-update.d.ts.map +1 -0
  121. package/dist/browser/partial-update.js +426 -0
  122. package/dist/browser/partial-update.js.map +1 -0
  123. package/dist/browser/react/Link.d.ts +86 -0
  124. package/dist/browser/react/Link.d.ts.map +1 -0
  125. package/dist/browser/react/Link.js +128 -0
  126. package/dist/browser/react/Link.js.map +1 -0
  127. package/dist/browser/react/NavigationProvider.d.ts +63 -0
  128. package/dist/browser/react/NavigationProvider.d.ts.map +1 -0
  129. package/dist/browser/react/NavigationProvider.js +216 -0
  130. package/dist/browser/react/NavigationProvider.js.map +1 -0
  131. package/dist/browser/react/ScrollRestoration.d.ts +75 -0
  132. package/dist/browser/react/ScrollRestoration.d.ts.map +1 -0
  133. package/dist/browser/react/ScrollRestoration.js +57 -0
  134. package/dist/browser/react/ScrollRestoration.js.map +1 -0
  135. package/dist/browser/react/context.d.ts +46 -0
  136. package/dist/browser/react/context.d.ts.map +1 -0
  137. package/dist/browser/react/context.js +10 -0
  138. package/dist/browser/react/context.js.map +1 -0
  139. package/dist/browser/react/index.d.ts +11 -0
  140. package/dist/browser/react/index.d.ts.map +1 -0
  141. package/dist/browser/react/index.js +22 -0
  142. package/dist/browser/react/index.js.map +1 -0
  143. package/dist/browser/react/location-state-shared.d.ts +63 -0
  144. package/dist/browser/react/location-state-shared.d.ts.map +1 -0
  145. package/dist/browser/react/location-state-shared.js +81 -0
  146. package/dist/browser/react/location-state-shared.js.map +1 -0
  147. package/dist/browser/react/location-state.d.ts +23 -0
  148. package/dist/browser/react/location-state.d.ts.map +1 -0
  149. package/dist/browser/react/location-state.js +29 -0
  150. package/dist/browser/react/location-state.js.map +1 -0
  151. package/dist/browser/react/mount-context.d.ts +24 -0
  152. package/dist/browser/react/mount-context.d.ts.map +1 -0
  153. package/dist/browser/react/mount-context.js +24 -0
  154. package/dist/browser/react/mount-context.js.map +1 -0
  155. package/dist/browser/react/use-action.d.ts +64 -0
  156. package/dist/browser/react/use-action.d.ts.map +1 -0
  157. package/dist/browser/react/use-action.js +134 -0
  158. package/dist/browser/react/use-action.js.map +1 -0
  159. package/dist/browser/react/use-client-cache.d.ts +41 -0
  160. package/dist/browser/react/use-client-cache.d.ts.map +1 -0
  161. package/{src/browser/react/use-client-cache.ts → dist/browser/react/use-client-cache.js} +9 -28
  162. package/dist/browser/react/use-client-cache.js.map +1 -0
  163. package/dist/browser/react/use-handle.d.ts +31 -0
  164. package/dist/browser/react/use-handle.d.ts.map +1 -0
  165. package/dist/browser/react/use-handle.js +144 -0
  166. package/dist/browser/react/use-handle.js.map +1 -0
  167. package/dist/browser/react/use-href.d.ts +33 -0
  168. package/dist/browser/react/use-href.d.ts.map +1 -0
  169. package/dist/browser/react/use-href.js +39 -0
  170. package/dist/browser/react/use-href.js.map +1 -0
  171. package/dist/browser/react/use-link-status.d.ts +37 -0
  172. package/dist/browser/react/use-link-status.d.ts.map +1 -0
  173. package/dist/browser/react/use-link-status.js +99 -0
  174. package/dist/browser/react/use-link-status.js.map +1 -0
  175. package/dist/browser/react/use-mount.d.ts +25 -0
  176. package/dist/browser/react/use-mount.d.ts.map +1 -0
  177. package/dist/browser/react/use-mount.js +30 -0
  178. package/dist/browser/react/use-mount.js.map +1 -0
  179. package/dist/browser/react/use-navigation.d.ts +27 -0
  180. package/dist/browser/react/use-navigation.d.ts.map +1 -0
  181. package/dist/browser/react/use-navigation.js +87 -0
  182. package/dist/browser/react/use-navigation.js.map +1 -0
  183. package/dist/browser/react/use-segments.d.ts +38 -0
  184. package/dist/browser/react/use-segments.d.ts.map +1 -0
  185. package/dist/browser/react/use-segments.js +130 -0
  186. package/dist/browser/react/use-segments.js.map +1 -0
  187. package/dist/browser/request-controller.d.ts +26 -0
  188. package/dist/browser/request-controller.d.ts.map +1 -0
  189. package/dist/browser/request-controller.js +147 -0
  190. package/dist/browser/request-controller.js.map +1 -0
  191. package/dist/browser/rsc-router.d.ts +129 -0
  192. package/dist/browser/rsc-router.d.ts.map +1 -0
  193. package/dist/browser/rsc-router.js +195 -0
  194. package/dist/browser/rsc-router.js.map +1 -0
  195. package/dist/browser/scroll-restoration.d.ts +93 -0
  196. package/dist/browser/scroll-restoration.d.ts.map +1 -0
  197. package/dist/browser/scroll-restoration.js +321 -0
  198. package/dist/browser/scroll-restoration.js.map +1 -0
  199. package/dist/browser/segment-structure-assert.d.ts +17 -0
  200. package/dist/browser/segment-structure-assert.d.ts.map +1 -0
  201. package/dist/browser/segment-structure-assert.js +59 -0
  202. package/dist/browser/segment-structure-assert.js.map +1 -0
  203. package/dist/browser/server-action-bridge.d.ts +26 -0
  204. package/dist/browser/server-action-bridge.d.ts.map +1 -0
  205. package/dist/browser/server-action-bridge.js +668 -0
  206. package/dist/browser/server-action-bridge.js.map +1 -0
  207. package/dist/browser/shallow.d.ts +12 -0
  208. package/dist/browser/shallow.d.ts.map +1 -0
  209. package/dist/browser/shallow.js +34 -0
  210. package/dist/browser/shallow.js.map +1 -0
  211. package/dist/browser/types.d.ts +369 -0
  212. package/dist/browser/types.d.ts.map +1 -0
  213. package/dist/browser/types.js +2 -0
  214. package/dist/browser/types.js.map +1 -0
  215. package/dist/build/__tests__/generate-cli.test.d.ts +2 -0
  216. package/dist/build/__tests__/generate-cli.test.d.ts.map +1 -0
  217. package/dist/build/__tests__/generate-cli.test.js +237 -0
  218. package/dist/build/__tests__/generate-cli.test.js.map +1 -0
  219. package/dist/build/__tests__/generate-manifest.test.d.ts +2 -0
  220. package/dist/build/__tests__/generate-manifest.test.d.ts.map +1 -0
  221. package/dist/build/__tests__/generate-manifest.test.js +119 -0
  222. package/dist/build/__tests__/generate-manifest.test.js.map +1 -0
  223. package/dist/build/__tests__/generate-route-types.test.d.ts +2 -0
  224. package/dist/build/__tests__/generate-route-types.test.d.ts.map +1 -0
  225. package/dist/build/__tests__/generate-route-types.test.js +620 -0
  226. package/dist/build/__tests__/generate-route-types.test.js.map +1 -0
  227. package/dist/build/__tests__/per-router-manifest.test.d.ts +2 -0
  228. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +1 -0
  229. package/dist/build/__tests__/per-router-manifest.test.js +308 -0
  230. package/dist/build/__tests__/per-router-manifest.test.js.map +1 -0
  231. package/dist/build/generate-manifest.d.ts +81 -0
  232. package/dist/build/generate-manifest.d.ts.map +1 -0
  233. package/dist/build/generate-manifest.js +276 -0
  234. package/dist/build/generate-manifest.js.map +1 -0
  235. package/dist/build/generate-route-types.d.ts +115 -0
  236. package/dist/build/generate-route-types.d.ts.map +1 -0
  237. package/dist/build/generate-route-types.js +740 -0
  238. package/dist/build/generate-route-types.js.map +1 -0
  239. package/dist/build/index.d.ts +21 -0
  240. package/dist/build/index.d.ts.map +1 -0
  241. package/dist/build/index.js +21 -0
  242. package/dist/build/index.js.map +1 -0
  243. package/dist/build/route-trie.d.ts +71 -0
  244. package/dist/build/route-trie.d.ts.map +1 -0
  245. package/dist/build/route-trie.js +175 -0
  246. package/dist/build/route-trie.js.map +1 -0
  247. package/dist/cache/__tests__/cache-scope.test.d.ts +2 -0
  248. package/dist/cache/__tests__/cache-scope.test.d.ts.map +1 -0
  249. package/dist/cache/__tests__/cache-scope.test.js +208 -0
  250. package/dist/cache/__tests__/cache-scope.test.js.map +1 -0
  251. package/dist/cache/__tests__/document-cache.test.d.ts +2 -0
  252. package/dist/cache/__tests__/document-cache.test.d.ts.map +1 -0
  253. package/dist/cache/__tests__/document-cache.test.js +345 -0
  254. package/dist/cache/__tests__/document-cache.test.js.map +1 -0
  255. package/dist/cache/__tests__/memory-segment-store.test.d.ts +2 -0
  256. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +1 -0
  257. package/dist/cache/__tests__/memory-segment-store.test.js +425 -0
  258. package/dist/cache/__tests__/memory-segment-store.test.js.map +1 -0
  259. package/dist/cache/__tests__/memory-store.test.d.ts +2 -0
  260. package/dist/cache/__tests__/memory-store.test.d.ts.map +1 -0
  261. package/dist/cache/__tests__/memory-store.test.js +367 -0
  262. package/dist/cache/__tests__/memory-store.test.js.map +1 -0
  263. package/dist/cache/cache-scope.d.ts +102 -0
  264. package/dist/cache/cache-scope.d.ts.map +1 -0
  265. package/dist/cache/cache-scope.js +440 -0
  266. package/dist/cache/cache-scope.js.map +1 -0
  267. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +2 -0
  268. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +1 -0
  269. package/dist/cache/cf/__tests__/cf-cache-store.test.js +330 -0
  270. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +1 -0
  271. package/dist/cache/cf/cf-cache-store.d.ts +165 -0
  272. package/dist/cache/cf/cf-cache-store.d.ts.map +1 -0
  273. package/dist/cache/cf/cf-cache-store.js +242 -0
  274. package/dist/cache/cf/cf-cache-store.js.map +1 -0
  275. package/dist/cache/cf/index.d.ts +14 -0
  276. package/dist/cache/cf/index.d.ts.map +1 -0
  277. package/dist/cache/cf/index.js +17 -0
  278. package/dist/cache/cf/index.js.map +1 -0
  279. package/dist/cache/document-cache.d.ts +64 -0
  280. package/dist/cache/document-cache.d.ts.map +1 -0
  281. package/dist/cache/document-cache.js +228 -0
  282. package/dist/cache/document-cache.js.map +1 -0
  283. package/dist/cache/index.d.ts +19 -0
  284. package/dist/cache/index.d.ts.map +1 -0
  285. package/dist/cache/index.js +21 -0
  286. package/dist/cache/index.js.map +1 -0
  287. package/dist/cache/memory-segment-store.d.ts +110 -0
  288. package/dist/cache/memory-segment-store.d.ts.map +1 -0
  289. package/dist/cache/memory-segment-store.js +117 -0
  290. package/dist/cache/memory-segment-store.js.map +1 -0
  291. package/dist/cache/memory-store.d.ts +41 -0
  292. package/dist/cache/memory-store.d.ts.map +1 -0
  293. package/dist/cache/memory-store.js +191 -0
  294. package/dist/cache/memory-store.js.map +1 -0
  295. package/dist/cache/types.d.ts +317 -0
  296. package/dist/cache/types.d.ts.map +1 -0
  297. package/dist/cache/types.js +12 -0
  298. package/dist/cache/types.js.map +1 -0
  299. package/dist/client.d.ts +248 -0
  300. package/dist/client.d.ts.map +1 -0
  301. package/dist/client.js +367 -0
  302. package/dist/client.js.map +1 -0
  303. package/dist/client.rsc.d.ts +26 -0
  304. package/dist/client.rsc.d.ts.map +1 -0
  305. package/dist/client.rsc.js +46 -0
  306. package/dist/client.rsc.js.map +1 -0
  307. package/dist/component-utils.d.ts +36 -0
  308. package/dist/component-utils.d.ts.map +1 -0
  309. package/dist/component-utils.js +61 -0
  310. package/dist/component-utils.js.map +1 -0
  311. package/dist/components/DefaultDocument.d.ts +13 -0
  312. package/dist/components/DefaultDocument.d.ts.map +1 -0
  313. package/dist/components/DefaultDocument.js +15 -0
  314. package/dist/components/DefaultDocument.js.map +1 -0
  315. package/dist/debug.d.ts +58 -0
  316. package/dist/debug.d.ts.map +1 -0
  317. package/dist/debug.js +157 -0
  318. package/dist/debug.js.map +1 -0
  319. package/dist/default-error-boundary.d.ts +11 -0
  320. package/dist/default-error-boundary.d.ts.map +1 -0
  321. package/dist/default-error-boundary.js +45 -0
  322. package/dist/default-error-boundary.js.map +1 -0
  323. package/dist/deps/browser.d.ts +2 -0
  324. package/dist/deps/browser.d.ts.map +1 -0
  325. package/dist/deps/browser.js +3 -0
  326. package/dist/deps/browser.js.map +1 -0
  327. package/dist/deps/html-stream-client.d.ts +2 -0
  328. package/dist/deps/html-stream-client.d.ts.map +1 -0
  329. package/dist/deps/html-stream-client.js +3 -0
  330. package/dist/deps/html-stream-client.js.map +1 -0
  331. package/dist/deps/html-stream-server.d.ts +2 -0
  332. package/dist/deps/html-stream-server.d.ts.map +1 -0
  333. package/dist/deps/html-stream-server.js +3 -0
  334. package/dist/deps/html-stream-server.js.map +1 -0
  335. package/dist/deps/rsc.d.ts +2 -0
  336. package/dist/deps/rsc.d.ts.map +1 -0
  337. package/dist/deps/rsc.js +4 -0
  338. package/dist/deps/rsc.js.map +1 -0
  339. package/dist/deps/ssr.d.ts +2 -0
  340. package/dist/deps/ssr.d.ts.map +1 -0
  341. package/dist/deps/ssr.js +3 -0
  342. package/dist/deps/ssr.js.map +1 -0
  343. package/dist/errors.d.ts +174 -0
  344. package/dist/errors.d.ts.map +1 -0
  345. package/dist/errors.js +241 -0
  346. package/dist/errors.js.map +1 -0
  347. package/dist/handle.d.ts +78 -0
  348. package/dist/handle.d.ts.map +1 -0
  349. package/dist/handle.js +82 -0
  350. package/dist/handle.js.map +1 -0
  351. package/dist/handles/MetaTags.d.ts +14 -0
  352. package/dist/handles/MetaTags.d.ts.map +1 -0
  353. package/dist/handles/MetaTags.js +136 -0
  354. package/dist/handles/MetaTags.js.map +1 -0
  355. package/{src/handles/index.ts → dist/handles/index.d.ts} +1 -2
  356. package/dist/handles/index.d.ts.map +1 -0
  357. package/dist/handles/index.js +6 -0
  358. package/dist/handles/index.js.map +1 -0
  359. package/dist/handles/meta.d.ts +39 -0
  360. package/dist/handles/meta.d.ts.map +1 -0
  361. package/dist/handles/meta.js +202 -0
  362. package/dist/handles/meta.js.map +1 -0
  363. package/dist/host/__tests__/errors.test.d.ts +2 -0
  364. package/dist/host/__tests__/errors.test.d.ts.map +1 -0
  365. package/dist/host/__tests__/errors.test.js +76 -0
  366. package/dist/host/__tests__/errors.test.js.map +1 -0
  367. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +2 -0
  368. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +1 -0
  369. package/dist/host/__tests__/pattern-comprehensive.test.js +732 -0
  370. package/dist/host/__tests__/pattern-comprehensive.test.js.map +1 -0
  371. package/dist/host/__tests__/pattern-matcher.test.d.ts +2 -0
  372. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +1 -0
  373. package/dist/host/__tests__/pattern-matcher.test.js +251 -0
  374. package/dist/host/__tests__/pattern-matcher.test.js.map +1 -0
  375. package/dist/host/__tests__/router.test.d.ts +2 -0
  376. package/dist/host/__tests__/router.test.d.ts.map +1 -0
  377. package/dist/host/__tests__/router.test.js +241 -0
  378. package/dist/host/__tests__/router.test.js.map +1 -0
  379. package/dist/host/__tests__/testing.test.d.ts +2 -0
  380. package/dist/host/__tests__/testing.test.d.ts.map +1 -0
  381. package/dist/host/__tests__/testing.test.js +64 -0
  382. package/dist/host/__tests__/testing.test.js.map +1 -0
  383. package/dist/host/__tests__/utils.test.d.ts +2 -0
  384. package/dist/host/__tests__/utils.test.d.ts.map +1 -0
  385. package/dist/host/__tests__/utils.test.js +29 -0
  386. package/dist/host/__tests__/utils.test.js.map +1 -0
  387. package/dist/host/cookie-handler.d.ts +34 -0
  388. package/dist/host/cookie-handler.d.ts.map +1 -0
  389. package/dist/host/cookie-handler.js +124 -0
  390. package/dist/host/cookie-handler.js.map +1 -0
  391. package/dist/host/errors.d.ts +56 -0
  392. package/dist/host/errors.d.ts.map +1 -0
  393. package/dist/host/errors.js +79 -0
  394. package/dist/host/errors.js.map +1 -0
  395. package/dist/host/index.d.ts +29 -0
  396. package/dist/host/index.d.ts.map +1 -0
  397. package/dist/host/index.js +32 -0
  398. package/dist/host/index.js.map +1 -0
  399. package/dist/host/pattern-matcher.d.ts +36 -0
  400. package/dist/host/pattern-matcher.d.ts.map +1 -0
  401. package/dist/host/pattern-matcher.js +172 -0
  402. package/dist/host/pattern-matcher.js.map +1 -0
  403. package/dist/host/router.d.ts +26 -0
  404. package/dist/host/router.d.ts.map +1 -0
  405. package/dist/host/router.js +218 -0
  406. package/dist/host/router.js.map +1 -0
  407. package/dist/host/testing.d.ts +36 -0
  408. package/dist/host/testing.d.ts.map +1 -0
  409. package/dist/host/testing.js +55 -0
  410. package/dist/host/testing.js.map +1 -0
  411. package/dist/host/types.d.ts +115 -0
  412. package/dist/host/types.d.ts.map +1 -0
  413. package/dist/host/types.js +7 -0
  414. package/dist/host/types.js.map +1 -0
  415. package/dist/host/utils.d.ts +21 -0
  416. package/dist/host/utils.d.ts.map +1 -0
  417. package/dist/host/utils.js +23 -0
  418. package/dist/host/utils.js.map +1 -0
  419. package/dist/href-client.d.ts +131 -0
  420. package/dist/href-client.d.ts.map +1 -0
  421. package/dist/href-client.js +64 -0
  422. package/dist/href-client.js.map +1 -0
  423. package/dist/href-context.d.ts +29 -0
  424. package/dist/href-context.d.ts.map +1 -0
  425. package/dist/href-context.js +21 -0
  426. package/dist/href-context.js.map +1 -0
  427. package/dist/index.d.ts +73 -0
  428. package/dist/index.d.ts.map +1 -0
  429. package/dist/index.js +91 -0
  430. package/dist/index.js.map +1 -0
  431. package/dist/index.rsc.d.ts +32 -0
  432. package/dist/index.rsc.d.ts.map +1 -0
  433. package/dist/index.rsc.js +40 -0
  434. package/dist/index.rsc.js.map +1 -0
  435. package/dist/internal-debug.d.ts +2 -0
  436. package/dist/internal-debug.d.ts.map +1 -0
  437. package/dist/internal-debug.js +5 -0
  438. package/dist/internal-debug.js.map +1 -0
  439. package/dist/loader.d.ts +14 -0
  440. package/dist/loader.d.ts.map +1 -0
  441. package/dist/loader.js +20 -0
  442. package/dist/loader.js.map +1 -0
  443. package/dist/loader.rsc.d.ts +19 -0
  444. package/dist/loader.rsc.d.ts.map +1 -0
  445. package/dist/loader.rsc.js +99 -0
  446. package/dist/loader.rsc.js.map +1 -0
  447. package/{src/network-error-thrower.tsx → dist/network-error-thrower.d.ts} +4 -10
  448. package/dist/network-error-thrower.d.ts.map +1 -0
  449. package/dist/network-error-thrower.js +14 -0
  450. package/dist/network-error-thrower.js.map +1 -0
  451. package/dist/outlet-context.d.ts +13 -0
  452. package/dist/outlet-context.d.ts.map +1 -0
  453. package/dist/outlet-context.js +3 -0
  454. package/dist/outlet-context.js.map +1 -0
  455. package/dist/prerender/__tests__/param-hash.test.d.ts +2 -0
  456. package/dist/prerender/__tests__/param-hash.test.d.ts.map +1 -0
  457. package/dist/prerender/__tests__/param-hash.test.js +148 -0
  458. package/dist/prerender/__tests__/param-hash.test.js.map +1 -0
  459. package/dist/prerender/param-hash.d.ts +16 -0
  460. package/dist/prerender/param-hash.d.ts.map +1 -0
  461. package/dist/prerender/param-hash.js +36 -0
  462. package/dist/prerender/param-hash.js.map +1 -0
  463. package/dist/prerender/store.d.ts +38 -0
  464. package/dist/prerender/store.d.ts.map +1 -0
  465. package/dist/prerender/store.js +61 -0
  466. package/dist/prerender/store.js.map +1 -0
  467. package/dist/prerender.d.ts +66 -0
  468. package/dist/prerender.d.ts.map +1 -0
  469. package/dist/prerender.js +57 -0
  470. package/dist/prerender.js.map +1 -0
  471. package/dist/reverse.d.ts +196 -0
  472. package/dist/reverse.d.ts.map +1 -0
  473. package/dist/reverse.js +78 -0
  474. package/dist/reverse.js.map +1 -0
  475. package/dist/root-error-boundary.d.ts +33 -0
  476. package/dist/root-error-boundary.d.ts.map +1 -0
  477. package/dist/root-error-boundary.js +165 -0
  478. package/dist/root-error-boundary.js.map +1 -0
  479. package/dist/route-content-wrapper.d.ts +46 -0
  480. package/dist/route-content-wrapper.d.ts.map +1 -0
  481. package/dist/route-content-wrapper.js +77 -0
  482. package/dist/route-content-wrapper.js.map +1 -0
  483. package/dist/route-definition.d.ts +421 -0
  484. package/dist/route-definition.d.ts.map +1 -0
  485. package/dist/route-definition.js +868 -0
  486. package/dist/route-definition.js.map +1 -0
  487. package/dist/route-map-builder.d.ts +155 -0
  488. package/dist/route-map-builder.d.ts.map +1 -0
  489. package/dist/route-map-builder.js +237 -0
  490. package/dist/route-map-builder.js.map +1 -0
  491. package/dist/route-types.d.ts +165 -0
  492. package/dist/route-types.d.ts.map +1 -0
  493. package/dist/route-types.js +7 -0
  494. package/dist/route-types.js.map +1 -0
  495. package/dist/router/__tests__/handler-context.test.d.ts +2 -0
  496. package/dist/router/__tests__/handler-context.test.d.ts.map +1 -0
  497. package/dist/router/__tests__/handler-context.test.js +65 -0
  498. package/dist/router/__tests__/handler-context.test.js.map +1 -0
  499. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +2 -0
  500. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +1 -0
  501. package/dist/router/__tests__/loader-cycle-detection.test.js +221 -0
  502. package/dist/router/__tests__/loader-cycle-detection.test.js.map +1 -0
  503. package/dist/router/__tests__/match-context.test.d.ts +2 -0
  504. package/dist/router/__tests__/match-context.test.d.ts.map +1 -0
  505. package/dist/router/__tests__/match-context.test.js +92 -0
  506. package/dist/router/__tests__/match-context.test.js.map +1 -0
  507. package/dist/router/__tests__/match-pipelines.test.d.ts +2 -0
  508. package/dist/router/__tests__/match-pipelines.test.d.ts.map +1 -0
  509. package/dist/router/__tests__/match-pipelines.test.js +417 -0
  510. package/dist/router/__tests__/match-pipelines.test.js.map +1 -0
  511. package/dist/router/__tests__/match-result.test.d.ts +2 -0
  512. package/dist/router/__tests__/match-result.test.d.ts.map +1 -0
  513. package/dist/router/__tests__/match-result.test.js +457 -0
  514. package/dist/router/__tests__/match-result.test.js.map +1 -0
  515. package/dist/router/__tests__/on-error.test.d.ts +2 -0
  516. package/dist/router/__tests__/on-error.test.d.ts.map +1 -0
  517. package/dist/router/__tests__/on-error.test.js +678 -0
  518. package/dist/router/__tests__/on-error.test.js.map +1 -0
  519. package/dist/router/__tests__/pattern-matching.test.d.ts +2 -0
  520. package/dist/router/__tests__/pattern-matching.test.d.ts.map +1 -0
  521. package/dist/router/__tests__/pattern-matching.test.js +629 -0
  522. package/dist/router/__tests__/pattern-matching.test.js.map +1 -0
  523. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +2 -0
  524. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +1 -0
  525. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +155 -0
  526. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +1 -0
  527. package/dist/router/error-handling.d.ts +77 -0
  528. package/dist/router/error-handling.d.ts.map +1 -0
  529. package/dist/router/error-handling.js +202 -0
  530. package/dist/router/error-handling.js.map +1 -0
  531. package/dist/router/handler-context.d.ts +20 -0
  532. package/dist/router/handler-context.d.ts.map +1 -0
  533. package/dist/router/handler-context.js +198 -0
  534. package/dist/router/handler-context.js.map +1 -0
  535. package/dist/router/intercept-resolution.d.ts +66 -0
  536. package/dist/router/intercept-resolution.d.ts.map +1 -0
  537. package/dist/router/intercept-resolution.js +246 -0
  538. package/dist/router/intercept-resolution.js.map +1 -0
  539. package/dist/router/loader-resolution.d.ts +64 -0
  540. package/dist/router/loader-resolution.d.ts.map +1 -0
  541. package/dist/router/loader-resolution.js +284 -0
  542. package/dist/router/loader-resolution.js.map +1 -0
  543. package/dist/router/logging.d.ts +15 -0
  544. package/dist/router/logging.d.ts.map +1 -0
  545. package/dist/router/logging.js +99 -0
  546. package/dist/router/logging.js.map +1 -0
  547. package/dist/router/manifest.d.ts +22 -0
  548. package/dist/router/manifest.d.ts.map +1 -0
  549. package/dist/router/manifest.js +181 -0
  550. package/dist/router/manifest.js.map +1 -0
  551. package/dist/router/match-api.d.ts +35 -0
  552. package/dist/router/match-api.d.ts.map +1 -0
  553. package/dist/router/match-api.js +406 -0
  554. package/dist/router/match-api.js.map +1 -0
  555. package/dist/router/match-context.d.ts +206 -0
  556. package/dist/router/match-context.d.ts.map +1 -0
  557. package/dist/router/match-context.js +17 -0
  558. package/dist/router/match-context.js.map +1 -0
  559. package/dist/router/match-middleware/background-revalidation.d.ts +127 -0
  560. package/dist/router/match-middleware/background-revalidation.d.ts.map +1 -0
  561. package/dist/router/match-middleware/background-revalidation.js +75 -0
  562. package/dist/router/match-middleware/background-revalidation.js.map +1 -0
  563. package/dist/router/match-middleware/cache-lookup.d.ts +112 -0
  564. package/dist/router/match-middleware/cache-lookup.d.ts.map +1 -0
  565. package/dist/router/match-middleware/cache-lookup.js +257 -0
  566. package/dist/router/match-middleware/cache-lookup.js.map +1 -0
  567. package/dist/router/match-middleware/cache-store.d.ts +113 -0
  568. package/dist/router/match-middleware/cache-store.d.ts.map +1 -0
  569. package/dist/router/match-middleware/cache-store.js +108 -0
  570. package/dist/router/match-middleware/cache-store.js.map +1 -0
  571. package/dist/router/match-middleware/index.d.ts +81 -0
  572. package/dist/router/match-middleware/index.d.ts.map +1 -0
  573. package/dist/router/match-middleware/index.js +80 -0
  574. package/dist/router/match-middleware/index.js.map +1 -0
  575. package/dist/router/match-middleware/intercept-resolution.d.ts +117 -0
  576. package/dist/router/match-middleware/intercept-resolution.d.ts.map +1 -0
  577. package/dist/router/match-middleware/intercept-resolution.js +134 -0
  578. package/dist/router/match-middleware/intercept-resolution.js.map +1 -0
  579. package/dist/router/match-middleware/segment-resolution.d.ts +99 -0
  580. package/dist/router/match-middleware/segment-resolution.d.ts.map +1 -0
  581. package/dist/router/match-middleware/segment-resolution.js +53 -0
  582. package/dist/router/match-middleware/segment-resolution.js.map +1 -0
  583. package/dist/router/match-pipelines.d.ts +147 -0
  584. package/dist/router/match-pipelines.d.ts.map +1 -0
  585. package/dist/router/match-pipelines.js +82 -0
  586. package/dist/router/match-pipelines.js.map +1 -0
  587. package/dist/router/match-result.d.ts +126 -0
  588. package/dist/router/match-result.d.ts.map +1 -0
  589. package/dist/router/match-result.js +93 -0
  590. package/dist/router/match-result.js.map +1 -0
  591. package/dist/router/metrics.d.ts +20 -0
  592. package/dist/router/metrics.d.ts.map +1 -0
  593. package/dist/router/metrics.js +47 -0
  594. package/dist/router/metrics.js.map +1 -0
  595. package/dist/router/middleware.d.ts +249 -0
  596. package/dist/router/middleware.d.ts.map +1 -0
  597. package/dist/router/middleware.js +434 -0
  598. package/dist/router/middleware.js.map +1 -0
  599. package/dist/router/middleware.test.d.ts +2 -0
  600. package/dist/router/middleware.test.d.ts.map +1 -0
  601. package/dist/router/middleware.test.js +816 -0
  602. package/dist/router/middleware.test.js.map +1 -0
  603. package/dist/router/pattern-matching.d.ts +149 -0
  604. package/dist/router/pattern-matching.d.ts.map +1 -0
  605. package/dist/router/pattern-matching.js +349 -0
  606. package/dist/router/pattern-matching.js.map +1 -0
  607. package/dist/router/revalidation.d.ts +44 -0
  608. package/dist/router/revalidation.d.ts.map +1 -0
  609. package/dist/router/revalidation.js +147 -0
  610. package/dist/router/revalidation.js.map +1 -0
  611. package/dist/router/router-context.d.ts +135 -0
  612. package/dist/router/router-context.d.ts.map +1 -0
  613. package/dist/router/router-context.js +36 -0
  614. package/dist/router/router-context.js.map +1 -0
  615. package/dist/router/segment-resolution.d.ts +127 -0
  616. package/dist/router/segment-resolution.d.ts.map +1 -0
  617. package/dist/router/segment-resolution.js +919 -0
  618. package/dist/router/segment-resolution.js.map +1 -0
  619. package/dist/router/trie-matching.d.ts +40 -0
  620. package/dist/router/trie-matching.d.ts.map +1 -0
  621. package/dist/router/trie-matching.js +127 -0
  622. package/dist/router/trie-matching.js.map +1 -0
  623. package/dist/router/types.d.ts +136 -0
  624. package/dist/router/types.d.ts.map +1 -0
  625. package/dist/router/types.js +7 -0
  626. package/dist/router/types.js.map +1 -0
  627. package/dist/router.d.ts +753 -0
  628. package/dist/router.d.ts.map +1 -0
  629. package/dist/router.gen.d.ts +6 -0
  630. package/dist/router.gen.d.ts.map +1 -0
  631. package/dist/router.gen.js +6 -0
  632. package/dist/router.gen.js.map +1 -0
  633. package/dist/router.js +1304 -0
  634. package/dist/router.js.map +1 -0
  635. package/dist/rsc/__tests__/helpers.test.d.ts +2 -0
  636. package/dist/rsc/__tests__/helpers.test.d.ts.map +1 -0
  637. package/dist/rsc/__tests__/helpers.test.js +140 -0
  638. package/dist/rsc/__tests__/helpers.test.js.map +1 -0
  639. package/dist/rsc/handler.d.ts +45 -0
  640. package/dist/rsc/handler.d.ts.map +1 -0
  641. package/dist/rsc/handler.js +1172 -0
  642. package/dist/rsc/handler.js.map +1 -0
  643. package/dist/rsc/helpers.d.ts +16 -0
  644. package/dist/rsc/helpers.d.ts.map +1 -0
  645. package/dist/rsc/helpers.js +55 -0
  646. package/dist/rsc/helpers.js.map +1 -0
  647. package/dist/rsc/index.d.ts +22 -0
  648. package/dist/rsc/index.d.ts.map +1 -0
  649. package/dist/rsc/index.js +23 -0
  650. package/dist/rsc/index.js.map +1 -0
  651. package/dist/rsc/nonce.d.ts +9 -0
  652. package/dist/rsc/nonce.d.ts.map +1 -0
  653. package/dist/rsc/nonce.js +18 -0
  654. package/dist/rsc/nonce.js.map +1 -0
  655. package/dist/rsc/types.d.ts +206 -0
  656. package/dist/rsc/types.d.ts.map +1 -0
  657. package/dist/rsc/types.js +8 -0
  658. package/dist/rsc/types.js.map +1 -0
  659. package/dist/search-params.d.ts +103 -0
  660. package/dist/search-params.d.ts.map +1 -0
  661. package/dist/search-params.js +74 -0
  662. package/dist/search-params.js.map +1 -0
  663. package/dist/segment-system.d.ts +75 -0
  664. package/dist/segment-system.d.ts.map +1 -0
  665. package/dist/segment-system.js +336 -0
  666. package/dist/segment-system.js.map +1 -0
  667. package/dist/server/context.d.ts +245 -0
  668. package/dist/server/context.d.ts.map +1 -0
  669. package/dist/server/context.js +197 -0
  670. package/dist/server/context.js.map +1 -0
  671. package/dist/server/fetchable-loader-store.d.ts +18 -0
  672. package/dist/server/fetchable-loader-store.d.ts.map +1 -0
  673. package/dist/server/fetchable-loader-store.js +18 -0
  674. package/dist/server/fetchable-loader-store.js.map +1 -0
  675. package/dist/server/handle-store.d.ts +85 -0
  676. package/dist/server/handle-store.d.ts.map +1 -0
  677. package/dist/server/handle-store.js +142 -0
  678. package/dist/server/handle-store.js.map +1 -0
  679. package/dist/server/loader-registry.d.ts +55 -0
  680. package/dist/server/loader-registry.d.ts.map +1 -0
  681. package/dist/server/loader-registry.js +132 -0
  682. package/dist/server/loader-registry.js.map +1 -0
  683. package/dist/server/request-context.d.ts +226 -0
  684. package/dist/server/request-context.d.ts.map +1 -0
  685. package/dist/server/request-context.js +290 -0
  686. package/dist/server/request-context.js.map +1 -0
  687. package/dist/server/root-layout.d.ts +4 -0
  688. package/dist/server/root-layout.d.ts.map +1 -0
  689. package/dist/server/root-layout.js +5 -0
  690. package/dist/server/root-layout.js.map +1 -0
  691. package/dist/server.d.ts +15 -0
  692. package/dist/server.d.ts.map +1 -0
  693. package/dist/server.js +20 -0
  694. package/dist/server.js.map +1 -0
  695. package/dist/ssr/__tests__/ssr-handler.test.d.ts +2 -0
  696. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +1 -0
  697. package/dist/ssr/__tests__/ssr-handler.test.js +132 -0
  698. package/dist/ssr/__tests__/ssr-handler.test.js.map +1 -0
  699. package/dist/ssr/index.d.ts +98 -0
  700. package/dist/ssr/index.d.ts.map +1 -0
  701. package/dist/ssr/index.js +158 -0
  702. package/dist/ssr/index.js.map +1 -0
  703. package/dist/static-handler.d.ts +50 -0
  704. package/dist/static-handler.d.ts.map +1 -0
  705. package/dist/static-handler.gen.d.ts +5 -0
  706. package/dist/static-handler.gen.d.ts.map +1 -0
  707. package/dist/static-handler.gen.js +5 -0
  708. package/dist/static-handler.gen.js.map +1 -0
  709. package/dist/static-handler.js +29 -0
  710. package/dist/static-handler.js.map +1 -0
  711. package/dist/testing/vitest.js +82 -0
  712. package/dist/theme/ThemeProvider.d.ts +20 -0
  713. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  714. package/dist/theme/ThemeProvider.js +240 -0
  715. package/dist/theme/ThemeProvider.js.map +1 -0
  716. package/dist/theme/ThemeScript.d.ts +48 -0
  717. package/dist/theme/ThemeScript.d.ts.map +1 -0
  718. package/dist/theme/ThemeScript.js +13 -0
  719. package/dist/theme/ThemeScript.js.map +1 -0
  720. package/dist/theme/__tests__/theme.test.d.ts +2 -0
  721. package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
  722. package/dist/theme/__tests__/theme.test.js +103 -0
  723. package/dist/theme/__tests__/theme.test.js.map +1 -0
  724. package/dist/theme/constants.d.ts +29 -0
  725. package/dist/theme/constants.d.ts.map +1 -0
  726. package/dist/theme/constants.js +48 -0
  727. package/dist/theme/constants.js.map +1 -0
  728. package/dist/theme/index.d.ts +31 -0
  729. package/dist/theme/index.d.ts.map +1 -0
  730. package/dist/theme/index.js +36 -0
  731. package/dist/theme/index.js.map +1 -0
  732. package/dist/theme/theme-context.d.ts +40 -0
  733. package/dist/theme/theme-context.d.ts.map +1 -0
  734. package/dist/theme/theme-context.js +60 -0
  735. package/dist/theme/theme-context.js.map +1 -0
  736. package/dist/theme/theme-script.d.ts +27 -0
  737. package/dist/theme/theme-script.d.ts.map +1 -0
  738. package/dist/theme/theme-script.js +147 -0
  739. package/dist/theme/theme-script.js.map +1 -0
  740. package/dist/theme/types.d.ts +163 -0
  741. package/dist/theme/types.d.ts.map +1 -0
  742. package/dist/theme/types.js +11 -0
  743. package/dist/theme/types.js.map +1 -0
  744. package/dist/theme/use-theme.d.ts +12 -0
  745. package/dist/theme/use-theme.d.ts.map +1 -0
  746. package/dist/theme/use-theme.js +40 -0
  747. package/dist/theme/use-theme.js.map +1 -0
  748. package/dist/types/__internal.d.ts +127 -0
  749. package/dist/types/bin/rango.d.ts +1 -0
  750. package/dist/types/browser/action-coordinator.d.ts +57 -0
  751. package/dist/types/browser/action-fence.d.ts +33 -0
  752. package/dist/types/browser/app-shell.d.ts +34 -0
  753. package/dist/types/browser/app-version.d.ts +6 -0
  754. package/dist/types/browser/connection-warmup.d.ts +31 -0
  755. package/dist/types/browser/cookie-name.d.ts +66 -0
  756. package/dist/types/browser/dev-discovery.d.ts +11 -0
  757. package/dist/types/browser/event-controller.d.ts +231 -0
  758. package/dist/types/browser/history-state.d.ts +26 -0
  759. package/dist/types/browser/index.d.ts +1 -0
  760. package/dist/types/browser/intercept-utils.d.ts +30 -0
  761. package/dist/types/browser/invalidate-client-cache.d.ts +17 -0
  762. package/dist/types/browser/link-interceptor.d.ts +53 -0
  763. package/dist/types/browser/logging.d.ts +33 -0
  764. package/dist/types/browser/merge-segment-loaders.d.ts +38 -0
  765. package/dist/types/browser/navigation-bridge.d.ts +39 -0
  766. package/dist/types/browser/navigation-client.d.ts +17 -0
  767. package/dist/types/browser/navigation-store-handle.d.ts +25 -0
  768. package/dist/types/browser/navigation-store.d.ts +85 -0
  769. package/dist/types/browser/navigation-transaction.d.ts +75 -0
  770. package/dist/types/browser/network-error-handler.d.ts +35 -0
  771. package/dist/types/browser/notify-listeners.d.ts +2 -0
  772. package/dist/types/browser/partial-update.d.ts +61 -0
  773. package/dist/types/browser/prefetch/cache.d.ts +224 -0
  774. package/dist/types/browser/prefetch/default-strategy.d.ts +31 -0
  775. package/dist/types/browser/prefetch/fetch.d.ts +52 -0
  776. package/dist/types/browser/prefetch/invalidation.d.ts +6 -0
  777. package/dist/types/browser/prefetch/loader.d.ts +12 -0
  778. package/dist/types/browser/prefetch/observer.d.ts +24 -0
  779. package/dist/types/browser/prefetch/policy.d.ts +13 -0
  780. package/dist/types/browser/prefetch/queue.d.ts +48 -0
  781. package/dist/types/browser/prefetch/resource-ready.d.ts +28 -0
  782. package/dist/types/browser/prefetch/runtime.d.ts +2 -0
  783. package/dist/types/browser/rango-state.d.ts +56 -0
  784. package/dist/types/browser/react/Link.d.ts +132 -0
  785. package/dist/types/browser/react/NavigationProvider.d.ts +88 -0
  786. package/dist/types/browser/react/ScrollRestoration.d.ts +78 -0
  787. package/dist/types/browser/react/context.d.ts +57 -0
  788. package/dist/types/browser/react/filter-segment-order.d.ts +35 -0
  789. package/dist/types/browser/react/index.d.ts +1 -0
  790. package/dist/types/browser/react/location-state-shared.d.ts +162 -0
  791. package/dist/types/browser/react/location-state.d.ts +29 -0
  792. package/dist/types/browser/react/mount-context.d.ts +23 -0
  793. package/dist/types/browser/react/nonce-context.d.ts +14 -0
  794. package/dist/types/browser/react/shallow-equal.d.ts +5 -0
  795. package/dist/types/browser/react/use-action.d.ts +61 -0
  796. package/dist/types/browser/react/use-handle.d.ts +21 -0
  797. package/dist/types/browser/react/use-href.d.ts +32 -0
  798. package/dist/types/browser/react/use-link-status.d.ts +36 -0
  799. package/dist/types/browser/react/use-mount.d.ts +24 -0
  800. package/dist/types/browser/react/use-navigation.d.ts +15 -0
  801. package/dist/types/browser/react/use-params.d.ts +21 -0
  802. package/dist/types/browser/react/use-pathname.d.ts +13 -0
  803. package/dist/types/browser/react/use-reverse.d.ts +40 -0
  804. package/dist/types/browser/react/use-router.d.ts +30 -0
  805. package/dist/types/browser/react/use-search-params.d.ts +66 -0
  806. package/dist/types/browser/react/use-segments.d.ts +29 -0
  807. package/dist/types/browser/response-adapter.d.ts +58 -0
  808. package/dist/types/browser/rsc-router.d.ts +146 -0
  809. package/dist/types/browser/scroll-restoration.d.ts +103 -0
  810. package/dist/types/browser/segment-reconciler.d.ts +74 -0
  811. package/dist/types/browser/segment-structure-assert.d.ts +16 -0
  812. package/dist/types/browser/server-action-bridge.d.ts +29 -0
  813. package/dist/types/browser/types.d.ts +546 -0
  814. package/dist/types/browser/validate-redirect-origin.d.ts +28 -0
  815. package/dist/types/build/collect-fallback-refs.d.ts +5 -0
  816. package/dist/types/build/generate-manifest.d.ts +106 -0
  817. package/dist/types/build/generate-route-types.d.ts +8 -0
  818. package/dist/types/build/index.d.ts +21 -0
  819. package/dist/types/build/merge-full-manifests.d.ts +3 -0
  820. package/dist/types/build/prefix-tree-utils.d.ts +56 -0
  821. package/dist/types/build/route-trie.d.ts +20 -0
  822. package/dist/types/build/route-types/ast-helpers.d.ts +3 -0
  823. package/dist/types/build/route-types/ast-route-extraction.d.ts +13 -0
  824. package/dist/types/build/route-types/codegen.d.ts +16 -0
  825. package/dist/types/build/route-types/include-resolution.d.ts +74 -0
  826. package/dist/types/build/route-types/param-extraction.d.ts +13 -0
  827. package/dist/types/build/route-types/per-module-writer.d.ts +20 -0
  828. package/dist/types/build/route-types/router-processing.d.ts +81 -0
  829. package/dist/types/build/route-types/scan-filter.d.ts +17 -0
  830. package/dist/types/build/route-types/source-scan.d.ts +13 -0
  831. package/dist/types/build/runtime-discovery.d.ts +24 -0
  832. package/dist/types/cache/background-task.d.ts +21 -0
  833. package/dist/types/cache/cache-error.d.ts +71 -0
  834. package/dist/types/cache/cache-exec-scope.d.ts +31 -0
  835. package/dist/types/cache/cache-key-utils.d.ts +43 -0
  836. package/dist/types/cache/cache-policy.d.ts +59 -0
  837. package/dist/types/cache/cache-runtime.d.ts +51 -0
  838. package/dist/types/cache/cache-scope.d.ts +215 -0
  839. package/dist/types/cache/cache-tag.d.ts +79 -0
  840. package/dist/types/cache/cf/cf-base64.d.ts +4 -0
  841. package/dist/types/cache/cf/cf-cache-constants.d.ts +112 -0
  842. package/dist/types/cache/cf/cf-cache-store.d.ts +630 -0
  843. package/dist/types/cache/cf/cf-cache-types.d.ts +365 -0
  844. package/dist/types/cache/cf/cf-kv-utils.d.ts +43 -0
  845. package/dist/types/cache/cf/cf-tag-marker-memo.d.ts +15 -0
  846. package/dist/types/cache/cf/cf-zone-purge.d.ts +31 -0
  847. package/dist/types/cache/cf/index.d.ts +4 -0
  848. package/dist/types/cache/document-cache.d.ts +71 -0
  849. package/dist/types/cache/handle-capture.d.ts +23 -0
  850. package/dist/types/cache/handle-snapshot.d.ts +39 -0
  851. package/dist/types/cache/index.d.ts +9 -0
  852. package/dist/types/cache/memory-segment-store.d.ts +163 -0
  853. package/dist/types/cache/profile-registry.d.ts +40 -0
  854. package/dist/types/cache/read-through-swr.d.ts +61 -0
  855. package/dist/types/cache/search-params-filter.d.ts +64 -0
  856. package/dist/types/cache/segment-codec.d.ts +78 -0
  857. package/dist/types/cache/shell-snapshot.d.ts +186 -0
  858. package/dist/types/cache/tag-invalidation.d.ts +74 -0
  859. package/dist/types/cache/taint.d.ts +77 -0
  860. package/dist/types/cache/types.d.ts +522 -0
  861. package/dist/types/cache/vercel/index.d.ts +1 -0
  862. package/dist/types/cache/vercel/vercel-cache-store.d.ts +268 -0
  863. package/dist/types/client-urls/client-root.d.ts +38 -0
  864. package/dist/types/client-urls/client-urls.d.ts +5 -0
  865. package/dist/types/client-urls/navigation.d.ts +38 -0
  866. package/dist/types/client-urls/revalidation-protocol.d.ts +25 -0
  867. package/dist/types/client-urls/server-projection.d.ts +71 -0
  868. package/dist/types/client-urls/types.d.ts +148 -0
  869. package/dist/types/client.d.ts +192 -0
  870. package/dist/types/client.rsc.d.ts +42 -0
  871. package/dist/types/cloudflare/index.d.ts +7 -0
  872. package/dist/types/cloudflare/tracing.d.ts +57 -0
  873. package/dist/types/component-utils.d.ts +46 -0
  874. package/dist/types/components/DefaultDocument.d.ts +13 -0
  875. package/dist/types/context-var.d.ts +84 -0
  876. package/dist/types/debug.d.ts +57 -0
  877. package/dist/types/decode-loader-results.d.ts +42 -0
  878. package/dist/types/default-error-boundary.d.ts +10 -0
  879. package/dist/types/defer.d.ts +89 -0
  880. package/dist/types/deps/browser.d.ts +1 -0
  881. package/dist/types/deps/html-stream-client.d.ts +1 -0
  882. package/dist/types/deps/html-stream-server.d.ts +1 -0
  883. package/dist/types/deps/rsc.d.ts +1 -0
  884. package/dist/types/deps/ssr.d.ts +1 -0
  885. package/dist/types/dev-discovery-protocol.d.ts +5 -0
  886. package/dist/types/encode-kv.d.ts +35 -0
  887. package/dist/types/errors.d.ts +227 -0
  888. package/dist/types/escape-script.d.ts +44 -0
  889. package/dist/types/handle.d.ts +93 -0
  890. package/dist/types/handles/MetaTags.d.ts +17 -0
  891. package/dist/types/handles/Scripts.d.ts +38 -0
  892. package/dist/types/handles/breadcrumbs.d.ts +43 -0
  893. package/dist/types/handles/deferred-resolution.d.ts +53 -0
  894. package/dist/types/handles/is-thenable.d.ts +10 -0
  895. package/dist/types/handles/meta.d.ts +43 -0
  896. package/dist/types/handles/script.d.ts +139 -0
  897. package/dist/types/host/cookie-handler.d.ts +8 -0
  898. package/dist/types/host/errors.d.ts +40 -0
  899. package/dist/types/host/index.d.ts +33 -0
  900. package/dist/types/host/pattern-matcher.d.ts +30 -0
  901. package/dist/types/host/router.d.ts +12 -0
  902. package/dist/types/host/testing.d.ts +41 -0
  903. package/dist/types/host/types.d.ts +148 -0
  904. package/dist/types/host/utils.d.ts +20 -0
  905. package/dist/types/href-client.d.ts +214 -0
  906. package/dist/types/index.d.ts +113 -0
  907. package/dist/types/index.rsc.d.ts +52 -0
  908. package/dist/types/internal-debug.d.ts +1 -0
  909. package/dist/types/loader-redirect.d.ts +27 -0
  910. package/dist/types/loader-store.d.ts +193 -0
  911. package/dist/types/loader.d.ts +18 -0
  912. package/dist/types/loader.rsc.d.ts +18 -0
  913. package/dist/types/missing-id-error.d.ts +1 -0
  914. package/dist/types/outlet-context.d.ts +32 -0
  915. package/dist/types/outlet-provider.d.ts +15 -0
  916. package/dist/types/prerender/build-shell-capture.d.ts +104 -0
  917. package/dist/types/prerender/param-hash.d.ts +6 -0
  918. package/dist/types/prerender/shell-manifest-key.d.ts +18 -0
  919. package/dist/types/prerender/store.d.ts +63 -0
  920. package/dist/types/prerender.d.ts +292 -0
  921. package/dist/types/redirect-origin.d.ts +71 -0
  922. package/dist/types/regex-escape.d.ts +6 -0
  923. package/dist/types/render-error-thrower.d.ts +13 -0
  924. package/dist/types/response-utils.d.ts +35 -0
  925. package/dist/types/reverse.d.ts +206 -0
  926. package/dist/types/root-error-boundary.d.ts +32 -0
  927. package/dist/types/route-content-wrapper.d.ts +84 -0
  928. package/dist/types/route-definition/dsl-helpers.d.ts +130 -0
  929. package/dist/types/route-definition/helper-factories.d.ts +22 -0
  930. package/dist/types/route-definition/helpers-types.d.ts +405 -0
  931. package/dist/types/route-definition/index.d.ts +7 -0
  932. package/dist/types/route-definition/redirect.d.ts +48 -0
  933. package/dist/types/route-definition/resolve-handler-use.d.ts +19 -0
  934. package/dist/types/route-definition/use-item-types.d.ts +1 -0
  935. package/dist/types/route-definition.d.ts +1 -0
  936. package/dist/types/route-map-builder.d.ts +102 -0
  937. package/dist/types/route-name.d.ts +27 -0
  938. package/dist/types/route-types.d.ts +172 -0
  939. package/dist/types/router/basename.d.ts +10 -0
  940. package/dist/types/router/content-negotiation.d.ts +91 -0
  941. package/dist/types/router/debug-manifest.d.ts +7 -0
  942. package/dist/types/router/error-handling.d.ts +110 -0
  943. package/dist/types/router/find-match.d.ts +19 -0
  944. package/dist/types/router/handler-context.d.ts +41 -0
  945. package/dist/types/router/instrument.d.ts +191 -0
  946. package/dist/types/router/intercept-resolution.d.ts +91 -0
  947. package/dist/types/router/lazy-includes.d.ts +26 -0
  948. package/dist/types/router/loader-resolution.d.ts +85 -0
  949. package/dist/types/router/logging.d.ts +41 -0
  950. package/dist/types/router/manifest.d.ts +8 -0
  951. package/dist/types/router/match-api.d.ts +19 -0
  952. package/dist/types/router/match-context.d.ts +184 -0
  953. package/dist/types/router/match-handlers.d.ts +48 -0
  954. package/dist/types/router/match-middleware/background-revalidation.d.ts +113 -0
  955. package/dist/types/router/match-middleware/cache-lookup.d.ts +126 -0
  956. package/dist/types/router/match-middleware/cache-store.d.ts +112 -0
  957. package/dist/types/router/match-middleware/index.d.ts +80 -0
  958. package/dist/types/router/match-middleware/intercept-resolution.d.ts +116 -0
  959. package/dist/types/router/match-middleware/segment-resolution.d.ts +94 -0
  960. package/dist/types/router/match-pipelines.d.ts +103 -0
  961. package/dist/types/router/match-result.d.ts +114 -0
  962. package/dist/types/router/metrics.d.ts +6 -0
  963. package/dist/types/router/middleware-types.d.ts +74 -0
  964. package/dist/types/router/middleware.d.ts +116 -0
  965. package/dist/types/router/navigation-snapshot.d.ts +51 -0
  966. package/dist/types/router/params-util.d.ts +8 -0
  967. package/dist/types/router/parse-pattern.d.ts +38 -0
  968. package/dist/types/router/pattern-matching.d.ts +169 -0
  969. package/dist/types/router/prefetch-cache-ttl.d.ts +27 -0
  970. package/dist/types/router/prefetch-default.d.ts +28 -0
  971. package/dist/types/router/prefetch-limits.d.ts +20 -0
  972. package/dist/types/router/prerender-match.d.ts +53 -0
  973. package/dist/types/router/preview-match.d.ts +22 -0
  974. package/dist/types/router/request-classification.d.ts +104 -0
  975. package/dist/types/router/revalidation.d.ts +64 -0
  976. package/dist/types/router/route-snapshot.d.ts +112 -0
  977. package/dist/types/router/route-trie-builder.d.ts +77 -0
  978. package/dist/types/router/router-context.d.ts +137 -0
  979. package/dist/types/router/router-interfaces.d.ts +461 -0
  980. package/dist/types/router/router-options.d.ts +792 -0
  981. package/dist/types/router/router-registry.d.ts +15 -0
  982. package/dist/types/router/segment-resolution/fresh.d.ts +55 -0
  983. package/dist/types/router/segment-resolution/helpers.d.ts +93 -0
  984. package/dist/types/router/segment-resolution/loader-cache.d.ts +33 -0
  985. package/dist/types/router/segment-resolution/loader-mask.d.ts +44 -0
  986. package/dist/types/router/segment-resolution/loader-snapshot.d.ts +90 -0
  987. package/dist/types/router/segment-resolution/mask-nested.d.ts +53 -0
  988. package/dist/types/router/segment-resolution/revalidation.d.ts +85 -0
  989. package/dist/types/router/segment-resolution/static-store.d.ts +17 -0
  990. package/dist/types/router/segment-resolution/streamed-handler-telemetry.d.ts +16 -0
  991. package/dist/types/router/segment-resolution/view-transition-default.d.ts +27 -0
  992. package/dist/types/router/segment-resolution.d.ts +3 -0
  993. package/dist/types/router/segment-wrappers.d.ts +53 -0
  994. package/dist/types/router/state-cookie-name.d.ts +1 -0
  995. package/dist/types/router/substitute-pattern-params.d.ts +23 -0
  996. package/dist/types/router/telemetry-otel.d.ts +113 -0
  997. package/dist/types/router/telemetry.d.ts +216 -0
  998. package/dist/types/router/timeout.d.ts +107 -0
  999. package/dist/types/router/tracing.d.ts +139 -0
  1000. package/dist/types/router/transition-when.d.ts +13 -0
  1001. package/dist/types/router/trie-matching.d.ts +32 -0
  1002. package/dist/types/router/types.d.ts +98 -0
  1003. package/dist/types/router/url-params.d.ts +26 -0
  1004. package/dist/types/router.d.ts +7 -0
  1005. package/dist/types/rsc/capture-queue.d.ts +49 -0
  1006. package/dist/types/rsc/full-payload.d.ts +22 -0
  1007. package/dist/types/rsc/handler-context.d.ts +32 -0
  1008. package/dist/types/rsc/handler.d.ts +9 -0
  1009. package/dist/types/rsc/helpers.d.ts +127 -0
  1010. package/dist/types/rsc/index.d.ts +17 -0
  1011. package/dist/types/rsc/json-route-result.d.ts +20 -0
  1012. package/dist/types/rsc/loader-fetch.d.ts +14 -0
  1013. package/dist/types/rsc/manifest-init.d.ts +18 -0
  1014. package/dist/types/rsc/nonce.d.ts +38 -0
  1015. package/dist/types/rsc/origin-guard.d.ts +50 -0
  1016. package/dist/types/rsc/progressive-enhancement.d.ts +19 -0
  1017. package/dist/types/rsc/redirect-guard.d.ts +37 -0
  1018. package/dist/types/rsc/render-pipeline.d.ts +148 -0
  1019. package/dist/types/rsc/response-cache-serve.d.ts +46 -0
  1020. package/dist/types/rsc/response-error.d.ts +19 -0
  1021. package/dist/types/rsc/response-route-handler.d.ts +29 -0
  1022. package/dist/types/rsc/routine-plan.d.ts +124 -0
  1023. package/dist/types/rsc/rsc-rendering.d.ts +18 -0
  1024. package/dist/types/rsc/runtime-warnings.d.ts +22 -0
  1025. package/dist/types/rsc/server-action.d.ts +68 -0
  1026. package/dist/types/rsc/shell-build-manifest.d.ts +90 -0
  1027. package/dist/types/rsc/shell-capture-constants.d.ts +44 -0
  1028. package/dist/types/rsc/shell-capture.d.ts +425 -0
  1029. package/dist/types/rsc/shell-serve.d.ts +200 -0
  1030. package/dist/types/rsc/ssr-setup.d.ts +73 -0
  1031. package/dist/types/rsc/stream-idle.d.ts +60 -0
  1032. package/dist/types/rsc/transition-gate.d.ts +23 -0
  1033. package/dist/types/rsc/types.d.ts +353 -0
  1034. package/dist/types/runtime-env.d.ts +1 -0
  1035. package/dist/types/search-params.d.ts +125 -0
  1036. package/dist/types/segment-content-promise.d.ts +13 -0
  1037. package/dist/types/segment-fragments.d.ts +79 -0
  1038. package/dist/types/segment-loader-promise.d.ts +22 -0
  1039. package/dist/types/segment-system.d.ts +86 -0
  1040. package/dist/types/serialize.d.ts +164 -0
  1041. package/dist/types/server/context.d.ts +520 -0
  1042. package/dist/types/server/cookie-parse.d.ts +10 -0
  1043. package/dist/types/server/cookie-store.d.ts +107 -0
  1044. package/dist/types/server/fetchable-loader-store.d.ts +20 -0
  1045. package/dist/types/server/handle-store.d.ts +131 -0
  1046. package/dist/types/server/loader-registry.d.ts +32 -0
  1047. package/dist/types/server/request-context.d.ts +717 -0
  1048. package/dist/types/server/root-layout.d.ts +3 -0
  1049. package/dist/types/server.d.ts +16 -0
  1050. package/dist/types/ssr/index.d.ts +271 -0
  1051. package/dist/types/ssr/inject-rsc-eager.d.ts +3 -0
  1052. package/dist/types/ssr/preinit-client-references.d.ts +71 -0
  1053. package/dist/types/ssr/ssr-root.d.ts +84 -0
  1054. package/dist/types/ssr-suspension-warning.d.ts +19 -0
  1055. package/dist/types/static-handler.d.ts +71 -0
  1056. package/dist/types/testing/cache-status.d.ts +63 -0
  1057. package/dist/types/testing/collect-handle.d.ts +20 -0
  1058. package/dist/types/testing/dispatch.d.ts +127 -0
  1059. package/dist/types/testing/dom.entry.d.ts +15 -0
  1060. package/dist/types/testing/e2e/fixture.d.ts +37 -0
  1061. package/dist/types/testing/e2e/index.d.ts +31 -0
  1062. package/dist/types/testing/e2e/matchers.d.ts +17 -0
  1063. package/dist/types/testing/e2e/page-helpers.d.ts +86 -0
  1064. package/dist/types/testing/e2e/parity.d.ts +111 -0
  1065. package/dist/types/testing/e2e/server.d.ts +35 -0
  1066. package/dist/types/testing/flight-matchers.d.ts +55 -0
  1067. package/dist/types/testing/flight-normalize.d.ts +1 -0
  1068. package/dist/types/testing/flight-tree.d.ts +192 -0
  1069. package/dist/types/testing/flight.d.ts +115 -0
  1070. package/dist/types/testing/flight.entry.d.ts +27 -0
  1071. package/dist/types/testing/generated-routes.d.ts +66 -0
  1072. package/dist/types/testing/index.d.ts +54 -0
  1073. package/dist/types/testing/internal/context.d.ts +225 -0
  1074. package/dist/types/testing/internal/flight-client-globals.d.ts +1 -0
  1075. package/dist/types/testing/internal/seed-vars.d.ts +30 -0
  1076. package/dist/types/testing/render-handler.d.ts +160 -0
  1077. package/dist/types/testing/render-route.d.ts +265 -0
  1078. package/dist/types/testing/run-loader.d.ts +195 -0
  1079. package/dist/types/testing/run-middleware.d.ts +132 -0
  1080. package/dist/types/testing/run-transition-when.d.ts +78 -0
  1081. package/dist/types/testing/shell-status.d.ts +81 -0
  1082. package/dist/types/testing/vitest-stubs/cloudflare-email.d.ts +6 -0
  1083. package/dist/types/testing/vitest-stubs/cloudflare-workers.d.ts +13 -0
  1084. package/dist/types/testing/vitest-stubs/plugin-rsc.d.ts +7 -0
  1085. package/dist/types/testing/vitest-stubs/version.d.ts +1 -0
  1086. package/dist/types/testing/vitest.d.ts +205 -0
  1087. package/dist/types/theme/ThemeProvider.d.ts +13 -0
  1088. package/dist/types/theme/ThemeScript.d.ts +45 -0
  1089. package/dist/types/theme/constants.d.ts +39 -0
  1090. package/dist/types/theme/index.d.ts +29 -0
  1091. package/dist/types/theme/theme-context.d.ts +21 -0
  1092. package/dist/types/theme/theme-script.d.ts +26 -0
  1093. package/dist/types/theme/types.d.ts +162 -0
  1094. package/dist/types/theme/use-theme.d.ts +8 -0
  1095. package/dist/types/types/boundaries.d.ts +115 -0
  1096. package/dist/types/types/cache-types.d.ts +191 -0
  1097. package/dist/types/types/error-types.d.ts +114 -0
  1098. package/dist/types/types/global-namespace.d.ts +90 -0
  1099. package/dist/types/types/handler-context.d.ts +658 -0
  1100. package/dist/types/types/index.d.ts +11 -0
  1101. package/dist/types/types/loader-types.d.ts +240 -0
  1102. package/dist/types/types/request-scope.d.ts +93 -0
  1103. package/dist/types/types/route-config.d.ts +105 -0
  1104. package/dist/types/types/route-entry.d.ts +98 -0
  1105. package/dist/types/types/segments.d.ts +254 -0
  1106. package/dist/types/types.d.ts +1 -0
  1107. package/dist/types/urls/include-helper.d.ts +17 -0
  1108. package/dist/types/urls/include-provider.d.ts +27 -0
  1109. package/dist/types/urls/index.d.ts +6 -0
  1110. package/dist/types/urls/path-helper-types.d.ts +207 -0
  1111. package/dist/types/urls/path-helper.d.ts +12 -0
  1112. package/dist/types/urls/pattern-types.d.ts +166 -0
  1113. package/dist/types/urls/response-types.d.ts +67 -0
  1114. package/dist/types/urls/type-extraction.d.ts +157 -0
  1115. package/dist/types/urls/urls-function.d.ts +24 -0
  1116. package/dist/types/urls.d.ts +1 -0
  1117. package/dist/types/use-loader.d.ts +150 -0
  1118. package/dist/types/vercel/index.d.ts +10 -0
  1119. package/dist/types/vercel/tracing.d.ts +71 -0
  1120. package/dist/types/vite/debug.d.ts +80 -0
  1121. package/dist/types/vite/discovery/bundle-postprocess.d.ts +12 -0
  1122. package/dist/types/vite/discovery/client-urls-projection.d.ts +53 -0
  1123. package/dist/types/vite/discovery/dev-prerender-cache.d.ts +65 -0
  1124. package/dist/types/vite/discovery/discover-routers.d.ts +17 -0
  1125. package/dist/types/vite/discovery/discovery-errors.d.ts +113 -0
  1126. package/dist/types/vite/discovery/gate-state.d.ts +79 -0
  1127. package/dist/types/vite/discovery/prerender-collection.d.ts +24 -0
  1128. package/dist/types/vite/discovery/route-types-writer.d.ts +32 -0
  1129. package/dist/types/vite/discovery/self-gen-tracking.d.ts +22 -0
  1130. package/dist/types/vite/discovery/shell-prerender-phase.d.ts +40 -0
  1131. package/dist/types/vite/discovery/state.d.ts +170 -0
  1132. package/dist/types/vite/discovery/virtual-module-codegen.d.ts +15 -0
  1133. package/dist/types/vite/encryption-key.d.ts +2 -0
  1134. package/dist/types/vite/index.d.ts +11 -0
  1135. package/dist/types/vite/inject-client-debug.d.ts +56 -0
  1136. package/dist/types/vite/plugin-types.d.ts +298 -0
  1137. package/dist/types/vite/plugins/cjs-to-esm.d.ts +6 -0
  1138. package/dist/types/vite/plugins/client-ref-dedup.d.ts +29 -0
  1139. package/dist/types/vite/plugins/client-ref-hashing.d.ts +35 -0
  1140. package/dist/types/vite/plugins/cloudflare-protocol-stub.d.ts +64 -0
  1141. package/dist/types/vite/plugins/expose-action-id.d.ts +18 -0
  1142. package/dist/types/vite/plugins/expose-id-utils.d.ts +37 -0
  1143. package/dist/types/vite/plugins/expose-ids/export-analysis.d.ts +19 -0
  1144. package/dist/types/vite/plugins/expose-ids/handler-transform.d.ts +10 -0
  1145. package/dist/types/vite/plugins/expose-ids/loader-transform.d.ts +8 -0
  1146. package/dist/types/vite/plugins/expose-ids/router-transform.d.ts +13 -0
  1147. package/dist/types/vite/plugins/expose-ids/types.d.ts +29 -0
  1148. package/dist/types/vite/plugins/expose-internal-ids.d.ts +16 -0
  1149. package/dist/types/vite/plugins/performance-tracks.d.ts +25 -0
  1150. package/dist/types/vite/plugins/refresh-cmd.d.ts +20 -0
  1151. package/dist/types/vite/plugins/server-ref-hashing.d.ts +24 -0
  1152. package/dist/types/vite/plugins/server-reference-pattern.d.ts +1 -0
  1153. package/dist/types/vite/plugins/use-cache-transform.d.ts +20 -0
  1154. package/dist/types/vite/plugins/vercel-output.d.ts +85 -0
  1155. package/dist/types/vite/plugins/version-injector.d.ts +21 -0
  1156. package/dist/types/vite/plugins/version-plugin.d.ts +19 -0
  1157. package/dist/types/vite/plugins/virtual-entries.d.ts +36 -0
  1158. package/dist/types/vite/plugins/virtual-stub-plugin.d.ts +7 -0
  1159. package/dist/types/vite/rango.d.ts +29 -0
  1160. package/dist/types/vite/router-discovery.d.ts +23 -0
  1161. package/dist/types/vite/utils/ast-handler-extract.d.ts +64 -0
  1162. package/dist/types/vite/utils/banner.d.ts +2 -0
  1163. package/dist/types/vite/utils/bundle-analysis.d.ts +28 -0
  1164. package/dist/types/vite/utils/client-chunks.d.ts +55 -0
  1165. package/dist/types/vite/utils/directive-prologue.d.ts +16 -0
  1166. package/dist/types/vite/utils/forward-user-plugins.d.ts +37 -0
  1167. package/dist/types/vite/utils/manifest-utils.d.ts +7 -0
  1168. package/dist/types/vite/utils/package-resolution.d.ts +6 -0
  1169. package/dist/types/vite/utils/prerender-utils.d.ts +32 -0
  1170. package/dist/types/vite/utils/shared-utils.d.ts +67 -0
  1171. package/dist/types.d.ts +1479 -0
  1172. package/dist/types.d.ts.map +1 -0
  1173. package/dist/types.js +10 -0
  1174. package/dist/types.js.map +1 -0
  1175. package/dist/urls.d.ts +441 -0
  1176. package/dist/urls.d.ts.map +1 -0
  1177. package/dist/urls.gen.d.ts +8 -0
  1178. package/dist/urls.gen.d.ts.map +1 -0
  1179. package/dist/urls.gen.js +8 -0
  1180. package/dist/urls.gen.js.map +1 -0
  1181. package/dist/urls.js +443 -0
  1182. package/dist/urls.js.map +1 -0
  1183. package/dist/use-loader.d.ts +127 -0
  1184. package/dist/use-loader.d.ts.map +1 -0
  1185. package/dist/use-loader.js +237 -0
  1186. package/dist/use-loader.js.map +1 -0
  1187. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +2 -0
  1188. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +1 -0
  1189. package/dist/vite/__tests__/ast-handler-extract.test.js +294 -0
  1190. package/dist/vite/__tests__/ast-handler-extract.test.js.map +1 -0
  1191. package/dist/vite/__tests__/expose-id-utils.test.d.ts +2 -0
  1192. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +1 -0
  1193. package/dist/vite/__tests__/expose-id-utils.test.js +224 -0
  1194. package/dist/vite/__tests__/expose-id-utils.test.js.map +1 -0
  1195. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +2 -0
  1196. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +1 -0
  1197. package/dist/vite/__tests__/expose-internal-ids.test.js +647 -0
  1198. package/dist/vite/__tests__/expose-internal-ids.test.js.map +1 -0
  1199. package/dist/vite/__tests__/expose-router-id.test.d.ts +2 -0
  1200. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +1 -0
  1201. package/dist/vite/__tests__/expose-router-id.test.js +39 -0
  1202. package/dist/vite/__tests__/expose-router-id.test.js.map +1 -0
  1203. package/dist/vite/ast-handler-extract.d.ts +49 -0
  1204. package/dist/vite/ast-handler-extract.d.ts.map +1 -0
  1205. package/dist/vite/ast-handler-extract.js +249 -0
  1206. package/dist/vite/ast-handler-extract.js.map +1 -0
  1207. package/dist/vite/expose-action-id.d.ts +19 -0
  1208. package/dist/vite/expose-action-id.d.ts.map +1 -0
  1209. package/dist/vite/expose-action-id.js +250 -0
  1210. package/dist/vite/expose-action-id.js.map +1 -0
  1211. package/dist/vite/expose-id-utils.d.ts +69 -0
  1212. package/dist/vite/expose-id-utils.d.ts.map +1 -0
  1213. package/dist/vite/expose-id-utils.js +289 -0
  1214. package/dist/vite/expose-id-utils.js.map +1 -0
  1215. package/dist/vite/expose-internal-ids.d.ts +22 -0
  1216. package/dist/vite/expose-internal-ids.d.ts.map +1 -0
  1217. package/dist/vite/expose-internal-ids.js +886 -0
  1218. package/dist/vite/expose-internal-ids.js.map +1 -0
  1219. package/dist/vite/index.d.ts +149 -0
  1220. package/dist/vite/index.d.ts.map +1 -0
  1221. package/dist/vite/index.js +10793 -4122
  1222. package/dist/vite/index.js.bak +5448 -0
  1223. package/dist/vite/index.js.map +1 -0
  1224. package/dist/vite/index.named-routes.gen.ts +103 -0
  1225. package/dist/vite/package-resolution.d.ts +43 -0
  1226. package/dist/vite/package-resolution.d.ts.map +1 -0
  1227. package/dist/vite/package-resolution.js +112 -0
  1228. package/dist/vite/package-resolution.js.map +1 -0
  1229. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1230. package/dist/vite/virtual-entries.d.ts +25 -0
  1231. package/dist/vite/virtual-entries.d.ts.map +1 -0
  1232. package/dist/vite/virtual-entries.js +110 -0
  1233. package/dist/vite/virtual-entries.js.map +1 -0
  1234. package/package.json +121 -38
  1235. package/skills/api-client/SKILL.md +211 -0
  1236. package/skills/breadcrumbs/SKILL.md +117 -8
  1237. package/skills/bundle-analysis/SKILL.md +159 -0
  1238. package/skills/cache-guide/SKILL.md +232 -34
  1239. package/skills/caching/SKILL.md +375 -19
  1240. package/skills/catalog.json +289 -0
  1241. package/skills/client-urls/SKILL.md +339 -0
  1242. package/skills/cloudflare/SKILL.md +153 -0
  1243. package/skills/cloudflare/agents/openai.yaml +4 -0
  1244. package/skills/cloudflare/references/d1-and-local-dev.md +131 -0
  1245. package/skills/cloudflare/references/streaming-and-deploy.md +107 -0
  1246. package/skills/cloudflare/references/webhooks-and-crypto.md +147 -0
  1247. package/skills/comparison/SKILL.md +50 -0
  1248. package/skills/comparison/agents/openai.yaml +4 -0
  1249. package/skills/comparison/references/framework-comparison.md +858 -0
  1250. package/skills/composability/SKILL.md +124 -4
  1251. package/skills/css/SKILL.md +76 -0
  1252. package/skills/debug-manifest/SKILL.md +5 -11
  1253. package/skills/defer-hydration/SKILL.md +235 -0
  1254. package/skills/deployment-caching/SKILL.md +176 -0
  1255. package/skills/document-cache/SKILL.md +116 -58
  1256. package/skills/fonts/SKILL.md +1 -1
  1257. package/skills/handler-use/SKILL.md +12 -10
  1258. package/skills/hooks/SKILL.md +73 -691
  1259. package/skills/hooks/data.md +282 -0
  1260. package/skills/hooks/handle-and-actions.md +110 -0
  1261. package/skills/hooks/navigation.md +110 -0
  1262. package/skills/hooks/outlets.md +62 -0
  1263. package/skills/hooks/state.md +228 -0
  1264. package/skills/hooks/urls.md +172 -0
  1265. package/skills/host-router/SKILL.md +129 -27
  1266. package/skills/i18n/SKILL.md +276 -0
  1267. package/skills/intercept/SKILL.md +75 -19
  1268. package/skills/layout/SKILL.md +40 -19
  1269. package/skills/links/SKILL.md +283 -17
  1270. package/skills/loader/SKILL.md +362 -11
  1271. package/skills/middleware/SKILL.md +58 -13
  1272. package/skills/migrate-nextjs/SKILL.md +336 -42
  1273. package/skills/migrate-nextjs/backend-host-swap.md +120 -0
  1274. package/skills/migrate-react-router/SKILL.md +95 -670
  1275. package/skills/migrate-react-router/component-migration.md +201 -0
  1276. package/skills/migrate-react-router/data-and-actions.md +236 -0
  1277. package/skills/migrate-react-router/route-mapping.md +284 -0
  1278. package/skills/mime-routes/SKILL.md +55 -18
  1279. package/skills/observability/SKILL.md +231 -0
  1280. package/skills/parallel/SKILL.md +72 -11
  1281. package/skills/ppr/SKILL.md +918 -0
  1282. package/skills/prerender/SKILL.md +137 -71
  1283. package/skills/rango/SKILL.md +325 -26
  1284. package/skills/react-compiler/SKILL.md +168 -0
  1285. package/skills/response-routes/SKILL.md +180 -52
  1286. package/skills/route/SKILL.md +126 -9
  1287. package/skills/router-setup/SKILL.md +69 -11
  1288. package/skills/scripts/SKILL.md +189 -0
  1289. package/skills/server-actions/SKILL.md +776 -0
  1290. package/skills/shell-manifest/SKILL.md +194 -0
  1291. package/skills/streams-and-websockets/SKILL.md +283 -0
  1292. package/skills/tailwind/SKILL.md +28 -4
  1293. package/skills/testing/SKILL.md +131 -0
  1294. package/skills/testing/bindings.md +103 -0
  1295. package/skills/testing/cache-prerender.md +172 -0
  1296. package/skills/testing/client-components.md +131 -0
  1297. package/skills/testing/e2e-parity.md +125 -0
  1298. package/skills/testing/flight.md +91 -0
  1299. package/skills/testing/handles.md +153 -0
  1300. package/skills/testing/loader.md +130 -0
  1301. package/skills/testing/middleware.md +99 -0
  1302. package/skills/testing/render-handler.md +122 -0
  1303. package/skills/testing/response-routes.md +95 -0
  1304. package/skills/testing/reverse-and-types.md +85 -0
  1305. package/skills/testing/server-actions.md +107 -0
  1306. package/skills/testing/server-tree.md +128 -0
  1307. package/skills/testing/setup.md +123 -0
  1308. package/skills/theme/SKILL.md +9 -6
  1309. package/skills/typesafety/SKILL.md +45 -626
  1310. package/skills/typesafety/env-and-bindings.md +254 -0
  1311. package/skills/typesafety/generated-files-and-cli.md +342 -0
  1312. package/skills/typesafety/params-and-search.md +153 -0
  1313. package/skills/typesafety/route-types.md +213 -0
  1314. package/skills/use-cache/SKILL.md +121 -15
  1315. package/skills/vercel/SKILL.md +149 -0
  1316. package/skills/view-transitions/SKILL.md +341 -0
  1317. package/src/__augment-tests__/augment.ts +81 -0
  1318. package/src/__augment-tests__/augmented.check.ts +116 -0
  1319. package/src/__internal.ts +0 -65
  1320. package/src/bin/rango.ts +7 -3
  1321. package/src/browser/action-coordinator.ts +53 -36
  1322. package/src/browser/action-fence.ts +47 -0
  1323. package/src/browser/app-shell.ts +39 -0
  1324. package/src/browser/connection-warmup.ts +134 -0
  1325. package/src/browser/cookie-name.ts +140 -0
  1326. package/src/browser/dev-discovery.ts +66 -0
  1327. package/src/browser/event-controller.ts +400 -168
  1328. package/src/browser/history-state.ts +21 -0
  1329. package/src/browser/index.ts +3 -3
  1330. package/src/browser/invalidate-client-cache.ts +52 -0
  1331. package/src/browser/link-interceptor.ts +469 -20
  1332. package/src/browser/logging.ts +28 -0
  1333. package/src/browser/merge-segment-loaders.ts +6 -4
  1334. package/src/browser/navigation-bridge.ts +171 -27
  1335. package/src/browser/navigation-client.ts +216 -90
  1336. package/src/browser/navigation-store-handle.ts +38 -0
  1337. package/src/browser/navigation-store.ts +167 -323
  1338. package/src/browser/navigation-transaction.ts +9 -59
  1339. package/src/browser/network-error-handler.ts +34 -7
  1340. package/src/browser/notify-listeners.ts +22 -0
  1341. package/src/browser/partial-update.ts +243 -144
  1342. package/src/browser/prefetch/cache.ts +325 -84
  1343. package/src/browser/prefetch/default-strategy.ts +74 -0
  1344. package/src/browser/prefetch/fetch.ts +411 -69
  1345. package/src/browser/prefetch/invalidation.ts +30 -0
  1346. package/src/browser/prefetch/loader.ts +111 -0
  1347. package/src/browser/prefetch/observer.ts +50 -22
  1348. package/src/browser/prefetch/queue.ts +61 -12
  1349. package/src/browser/prefetch/runtime.ts +6 -0
  1350. package/src/browser/rango-state.ts +178 -75
  1351. package/src/browser/react/Link.tsx +160 -92
  1352. package/src/browser/react/NavigationProvider.tsx +211 -121
  1353. package/src/browser/react/ScrollRestoration.tsx +10 -6
  1354. package/src/browser/react/context.ts +4 -0
  1355. package/src/browser/react/filter-segment-order.ts +66 -7
  1356. package/src/browser/react/index.ts +0 -48
  1357. package/src/browser/react/location-state-shared.ts +178 -8
  1358. package/src/browser/react/location-state.ts +39 -14
  1359. package/src/browser/react/use-action.ts +6 -15
  1360. package/src/browser/react/use-handle.ts +17 -14
  1361. package/src/browser/react/use-href.tsx +8 -1
  1362. package/src/browser/react/use-link-status.ts +33 -8
  1363. package/src/browser/react/use-navigation.ts +10 -5
  1364. package/src/browser/react/use-params.ts +20 -10
  1365. package/src/browser/react/use-reverse.ts +106 -0
  1366. package/src/browser/react/use-router.ts +62 -11
  1367. package/src/browser/react/use-search-params.ts +140 -22
  1368. package/src/browser/react/use-segments.ts +11 -21
  1369. package/src/browser/response-adapter.ts +99 -8
  1370. package/src/browser/rsc-router.tsx +248 -32
  1371. package/src/browser/scroll-restoration.ts +37 -22
  1372. package/src/browser/segment-reconciler.ts +31 -21
  1373. package/src/browser/segment-structure-assert.ts +2 -2
  1374. package/src/browser/server-action-bridge.ts +262 -65
  1375. package/src/browser/types.ts +132 -34
  1376. package/src/browser/validate-redirect-origin.ts +43 -16
  1377. package/src/build/collect-fallback-refs.ts +107 -0
  1378. package/src/build/generate-manifest.ts +213 -184
  1379. package/src/build/generate-route-types.ts +3 -1
  1380. package/src/build/index.ts +11 -3
  1381. package/src/build/merge-full-manifests.ts +161 -0
  1382. package/src/build/prefix-tree-utils.ts +123 -0
  1383. package/src/build/route-trie.ts +43 -280
  1384. package/src/build/route-types/ast-route-extraction.ts +15 -8
  1385. package/src/build/route-types/codegen.ts +16 -5
  1386. package/src/build/route-types/include-resolution.ts +513 -64
  1387. package/src/build/route-types/param-extraction.ts +6 -3
  1388. package/src/build/route-types/per-module-writer.ts +33 -12
  1389. package/src/build/route-types/router-processing.ts +312 -204
  1390. package/src/build/route-types/scan-filter.ts +1 -1
  1391. package/src/build/route-types/source-scan.ts +216 -0
  1392. package/src/build/runtime-discovery.ts +32 -29
  1393. package/src/cache/cache-error.ts +104 -0
  1394. package/src/cache/cache-exec-scope.ts +47 -0
  1395. package/src/cache/cache-key-utils.ts +73 -15
  1396. package/src/cache/cache-policy.ts +108 -34
  1397. package/src/cache/cache-runtime.ts +566 -121
  1398. package/src/cache/cache-scope.ts +383 -105
  1399. package/src/cache/cache-tag.ts +149 -0
  1400. package/src/cache/cf/cf-base64.ts +33 -0
  1401. package/src/cache/cf/cf-cache-constants.ts +134 -0
  1402. package/src/cache/cf/cf-cache-store.ts +3083 -392
  1403. package/src/cache/cf/cf-cache-types.ts +417 -0
  1404. package/src/cache/cf/cf-kv-utils.ts +84 -0
  1405. package/src/cache/cf/cf-tag-marker-memo.ts +108 -0
  1406. package/src/cache/cf/cf-zone-purge.ts +101 -0
  1407. package/src/cache/cf/index.ts +11 -16
  1408. package/src/cache/document-cache.ts +184 -53
  1409. package/src/cache/handle-snapshot.ts +92 -1
  1410. package/src/cache/index.ts +32 -20
  1411. package/src/cache/memory-segment-store.ts +286 -37
  1412. package/src/cache/profile-registry.ts +46 -31
  1413. package/src/cache/read-through-swr.ts +66 -16
  1414. package/src/cache/search-params-filter.ts +118 -0
  1415. package/src/cache/segment-codec.ts +80 -25
  1416. package/src/cache/shell-snapshot.ts +516 -0
  1417. package/src/cache/tag-invalidation.ts +230 -0
  1418. package/src/cache/taint.ts +28 -9
  1419. package/src/cache/types.ts +343 -100
  1420. package/src/cache/vercel/index.ts +11 -0
  1421. package/src/cache/vercel/vercel-cache-store.ts +1264 -0
  1422. package/src/client-urls/client-root.tsx +168 -0
  1423. package/src/client-urls/client-urls.ts +779 -0
  1424. package/src/client-urls/navigation.ts +237 -0
  1425. package/src/client-urls/revalidation-protocol.ts +56 -0
  1426. package/src/client-urls/server-projection.ts +670 -0
  1427. package/src/client-urls/types.ts +202 -0
  1428. package/src/client.rsc.tsx +53 -21
  1429. package/src/client.tsx +82 -67
  1430. package/src/cloudflare/index.ts +11 -0
  1431. package/src/cloudflare/tracing.ts +112 -0
  1432. package/src/component-utils.ts +19 -0
  1433. package/src/components/DefaultDocument.tsx +8 -2
  1434. package/src/context-var.ts +18 -6
  1435. package/src/decode-loader-results.ts +165 -0
  1436. package/src/defer.ts +185 -0
  1437. package/src/deps/ssr.ts +4 -2
  1438. package/src/dev-discovery-protocol.ts +11 -0
  1439. package/src/encode-kv.ts +49 -0
  1440. package/src/errors.ts +44 -4
  1441. package/src/escape-script.ts +52 -0
  1442. package/src/handle.ts +67 -37
  1443. package/src/handles/MetaTags.tsx +24 -53
  1444. package/src/handles/Scripts.tsx +183 -0
  1445. package/src/handles/breadcrumbs.ts +35 -8
  1446. package/src/handles/deferred-resolution.ts +134 -0
  1447. package/src/handles/is-thenable.ts +16 -0
  1448. package/src/handles/meta.ts +14 -40
  1449. package/src/handles/script.ts +244 -0
  1450. package/src/host/cookie-handler.ts +9 -60
  1451. package/src/host/errors.ts +13 -22
  1452. package/src/host/index.ts +9 -2
  1453. package/src/host/pattern-matcher.ts +23 -52
  1454. package/src/host/router.ts +107 -99
  1455. package/src/host/testing.ts +40 -27
  1456. package/src/host/types.ts +37 -4
  1457. package/src/host/utils.ts +1 -1
  1458. package/src/href-client.ts +137 -22
  1459. package/src/index.rsc.ts +108 -12
  1460. package/src/index.ts +106 -14
  1461. package/src/internal-debug.ts +11 -10
  1462. package/src/loader-redirect.tsx +64 -0
  1463. package/src/loader-store.ts +500 -0
  1464. package/src/loader.rsc.ts +20 -13
  1465. package/src/loader.ts +12 -11
  1466. package/src/missing-id-error.ts +68 -0
  1467. package/src/outlet-context.ts +21 -1
  1468. package/src/outlet-provider.tsx +20 -6
  1469. package/src/prerender/build-shell-capture.ts +453 -0
  1470. package/src/prerender/param-hash.ts +16 -16
  1471. package/src/prerender/shell-manifest-key.ts +20 -0
  1472. package/src/prerender/store.ts +47 -38
  1473. package/src/prerender.ts +81 -13
  1474. package/src/redirect-origin.ts +172 -0
  1475. package/src/regex-escape.ts +8 -0
  1476. package/src/render-error-thrower.tsx +20 -0
  1477. package/src/response-utils.ts +62 -0
  1478. package/src/reverse.ts +65 -39
  1479. package/src/root-error-boundary.tsx +1 -19
  1480. package/src/route-content-wrapper.tsx +120 -78
  1481. package/src/route-definition/dsl-helpers.ts +342 -313
  1482. package/src/route-definition/helper-factories.ts +28 -140
  1483. package/src/route-definition/helpers-types.ts +106 -62
  1484. package/src/route-definition/index.ts +1 -2
  1485. package/src/route-definition/redirect.ts +60 -28
  1486. package/src/route-definition/resolve-handler-use.ts +12 -1
  1487. package/src/route-definition/use-item-types.ts +29 -0
  1488. package/src/route-map-builder.ts +102 -74
  1489. package/src/route-types.ts +19 -46
  1490. package/src/router/basename.ts +14 -0
  1491. package/src/router/content-negotiation.ts +120 -30
  1492. package/src/router/error-handling.ts +110 -29
  1493. package/src/router/find-match.ts +129 -30
  1494. package/src/router/handler-context.ts +58 -57
  1495. package/src/router/instrument.ts +401 -0
  1496. package/src/router/intercept-resolution.ts +98 -21
  1497. package/src/router/lazy-includes.ts +83 -59
  1498. package/src/router/loader-resolution.ts +429 -85
  1499. package/src/router/logging.ts +0 -6
  1500. package/src/router/manifest.ts +74 -40
  1501. package/src/router/match-api.ts +94 -58
  1502. package/src/router/match-context.ts +0 -22
  1503. package/src/router/match-handlers.ts +268 -171
  1504. package/src/router/match-middleware/background-revalidation.ts +40 -24
  1505. package/src/router/match-middleware/cache-lookup.ts +316 -302
  1506. package/src/router/match-middleware/cache-store.ts +134 -52
  1507. package/src/router/match-middleware/intercept-resolution.ts +0 -22
  1508. package/src/router/match-middleware/segment-resolution.ts +0 -22
  1509. package/src/router/match-pipelines.ts +1 -42
  1510. package/src/router/match-result.ts +76 -79
  1511. package/src/router/metrics.ts +17 -36
  1512. package/src/router/middleware-types.ts +20 -130
  1513. package/src/router/middleware.ts +302 -172
  1514. package/src/router/navigation-snapshot.ts +51 -60
  1515. package/src/router/params-util.ts +23 -0
  1516. package/src/router/parse-pattern.ts +115 -0
  1517. package/src/router/pattern-matching.ts +181 -150
  1518. package/src/router/prefetch-cache-ttl.ts +51 -0
  1519. package/src/router/prefetch-default.ts +59 -0
  1520. package/src/router/prefetch-limits.ts +37 -0
  1521. package/src/router/prerender-match.ts +159 -69
  1522. package/src/router/preview-match.ts +6 -2
  1523. package/src/router/request-classification.ts +50 -69
  1524. package/src/router/revalidation.ts +146 -83
  1525. package/src/router/route-snapshot.ts +14 -3
  1526. package/src/router/route-trie-builder.ts +334 -0
  1527. package/src/router/router-context.ts +6 -29
  1528. package/src/router/router-interfaces.ts +168 -38
  1529. package/src/router/router-options.ts +235 -11
  1530. package/src/router/router-registry.ts +2 -5
  1531. package/src/router/segment-resolution/fresh.ts +219 -88
  1532. package/src/router/segment-resolution/helpers.ts +96 -18
  1533. package/src/router/segment-resolution/loader-cache.ts +208 -39
  1534. package/src/router/segment-resolution/loader-mask.ts +60 -0
  1535. package/src/router/segment-resolution/loader-snapshot.ts +259 -0
  1536. package/src/router/segment-resolution/mask-nested.ts +99 -0
  1537. package/src/router/segment-resolution/revalidation.ts +318 -321
  1538. package/src/router/segment-resolution/static-store.ts +55 -15
  1539. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  1540. package/src/router/segment-resolution/view-transition-default.ts +60 -0
  1541. package/src/router/segment-resolution.ts +5 -1
  1542. package/src/router/segment-wrappers.ts +6 -5
  1543. package/src/router/state-cookie-name.ts +33 -0
  1544. package/src/router/substitute-pattern-params.ts +75 -0
  1545. package/src/router/telemetry-otel.ts +171 -200
  1546. package/src/router/telemetry.ts +106 -20
  1547. package/src/router/timeout.ts +53 -22
  1548. package/src/router/tracing.ts +235 -0
  1549. package/src/router/transition-when.ts +76 -0
  1550. package/src/router/trie-matching.ts +171 -59
  1551. package/src/router/types.ts +9 -63
  1552. package/src/router/url-params.ts +57 -0
  1553. package/src/router.ts +249 -79
  1554. package/src/rsc/capture-queue.ts +218 -0
  1555. package/src/rsc/full-payload.ts +77 -0
  1556. package/src/rsc/handler-context.ts +4 -2
  1557. package/src/rsc/handler.ts +570 -288
  1558. package/src/rsc/helpers.ts +245 -47
  1559. package/src/rsc/index.ts +2 -5
  1560. package/src/rsc/json-route-result.ts +38 -0
  1561. package/src/rsc/loader-fetch.ts +116 -40
  1562. package/src/rsc/manifest-init.ts +55 -56
  1563. package/src/rsc/nonce.ts +26 -1
  1564. package/src/rsc/origin-guard.ts +39 -25
  1565. package/src/rsc/progressive-enhancement.ts +378 -83
  1566. package/src/rsc/redirect-guard.ts +102 -0
  1567. package/src/rsc/render-pipeline.ts +611 -0
  1568. package/src/rsc/response-cache-serve.ts +259 -0
  1569. package/src/rsc/response-error.ts +79 -12
  1570. package/src/rsc/response-route-handler.ts +80 -206
  1571. package/src/rsc/routine-plan.ts +359 -0
  1572. package/src/rsc/rsc-rendering.ts +1647 -164
  1573. package/src/rsc/runtime-warnings.ts +23 -10
  1574. package/src/rsc/server-action.ts +421 -138
  1575. package/src/rsc/shell-build-manifest.ts +343 -0
  1576. package/src/rsc/shell-capture-constants.ts +45 -0
  1577. package/src/rsc/shell-capture.ts +2135 -0
  1578. package/src/rsc/shell-serve.ts +350 -0
  1579. package/src/rsc/ssr-setup.ts +124 -16
  1580. package/src/rsc/stream-idle.ts +137 -0
  1581. package/src/rsc/transition-gate.ts +86 -0
  1582. package/src/rsc/types.ts +125 -7
  1583. package/src/runtime-env.ts +18 -0
  1584. package/src/search-params.ts +35 -30
  1585. package/src/segment-fragments.ts +165 -0
  1586. package/src/segment-loader-promise.ts +49 -4
  1587. package/src/segment-system.tsx +463 -153
  1588. package/src/serialize.ts +243 -0
  1589. package/src/server/context.ts +426 -55
  1590. package/src/server/cookie-parse.ts +32 -0
  1591. package/src/server/cookie-store.ts +162 -15
  1592. package/src/server/handle-store.ts +190 -70
  1593. package/src/server/loader-registry.ts +33 -42
  1594. package/src/server/request-context.ts +824 -215
  1595. package/src/server.ts +7 -2
  1596. package/src/ssr/index.tsx +687 -184
  1597. package/src/ssr/inject-rsc-eager.ts +167 -0
  1598. package/src/ssr/preinit-client-references.ts +106 -0
  1599. package/src/ssr/ssr-root.tsx +305 -0
  1600. package/src/ssr-suspension-warning.ts +67 -0
  1601. package/src/static-handler.ts +28 -15
  1602. package/src/testing/cache-status.ts +162 -0
  1603. package/src/testing/collect-handle.ts +46 -0
  1604. package/src/testing/dispatch.ts +951 -0
  1605. package/src/testing/dom.entry.ts +22 -0
  1606. package/src/testing/e2e/fixture.ts +188 -0
  1607. package/src/testing/e2e/index.ts +147 -0
  1608. package/src/testing/e2e/matchers.ts +35 -0
  1609. package/src/testing/e2e/page-helpers.ts +319 -0
  1610. package/src/testing/e2e/parity.ts +400 -0
  1611. package/src/testing/e2e/server.ts +195 -0
  1612. package/src/testing/flight-matchers.ts +97 -0
  1613. package/src/testing/flight-normalize.ts +11 -0
  1614. package/src/testing/flight-runtime.d.ts +57 -0
  1615. package/src/testing/flight-tree.ts +682 -0
  1616. package/src/testing/flight.entry.ts +52 -0
  1617. package/src/testing/flight.ts +257 -0
  1618. package/src/testing/generated-routes.ts +199 -0
  1619. package/src/testing/index.ts +121 -0
  1620. package/src/testing/internal/context.ts +380 -0
  1621. package/src/testing/internal/flight-client-globals.ts +30 -0
  1622. package/src/testing/internal/seed-vars.ts +54 -0
  1623. package/src/testing/render-handler.ts +371 -0
  1624. package/src/testing/render-route.tsx +667 -0
  1625. package/src/testing/run-loader.ts +423 -0
  1626. package/src/testing/run-middleware.ts +219 -0
  1627. package/src/testing/run-transition-when.ts +197 -0
  1628. package/src/testing/shell-status.ts +206 -0
  1629. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  1630. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  1631. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  1632. package/src/testing/vitest-stubs/version.ts +5 -0
  1633. package/src/testing/vitest.ts +305 -0
  1634. package/src/theme/ThemeProvider.tsx +56 -84
  1635. package/src/theme/ThemeScript.tsx +7 -9
  1636. package/src/theme/constants.ts +52 -13
  1637. package/src/theme/index.ts +0 -7
  1638. package/src/theme/theme-context.ts +1 -5
  1639. package/src/theme/theme-script.ts +22 -21
  1640. package/src/theme/use-theme.ts +0 -3
  1641. package/src/types/boundaries.ts +19 -35
  1642. package/src/types/cache-types.ts +13 -4
  1643. package/src/types/error-types.ts +30 -90
  1644. package/src/types/global-namespace.ts +54 -41
  1645. package/src/types/handler-context.ts +123 -64
  1646. package/src/types/index.ts +4 -10
  1647. package/src/types/loader-types.ts +76 -13
  1648. package/src/types/request-scope.ts +112 -0
  1649. package/src/types/route-config.ts +20 -52
  1650. package/src/types/route-entry.ts +3 -6
  1651. package/src/types/segments.ts +155 -14
  1652. package/src/urls/include-helper.ts +38 -64
  1653. package/src/urls/include-provider.ts +71 -0
  1654. package/src/urls/index.ts +2 -11
  1655. package/src/urls/path-helper-types.ts +88 -25
  1656. package/src/urls/path-helper.ts +30 -110
  1657. package/src/urls/pattern-types.ts +101 -19
  1658. package/src/urls/response-types.ts +22 -29
  1659. package/src/urls/type-extraction.ts +98 -154
  1660. package/src/urls/urls-function.ts +1 -19
  1661. package/src/use-loader.tsx +379 -110
  1662. package/src/vercel/index.ts +11 -0
  1663. package/src/vercel/tracing.ts +89 -0
  1664. package/src/vite/debug.ts +185 -0
  1665. package/src/vite/discovery/bundle-postprocess.ts +18 -14
  1666. package/src/vite/discovery/client-urls-projection.ts +322 -0
  1667. package/src/vite/discovery/dev-prerender-cache.ts +117 -0
  1668. package/src/vite/discovery/discover-routers.ts +178 -151
  1669. package/src/vite/discovery/discovery-errors.ts +255 -0
  1670. package/src/vite/discovery/gate-state.ts +171 -0
  1671. package/src/vite/discovery/prerender-collection.ts +125 -70
  1672. package/src/vite/discovery/route-types-writer.ts +40 -84
  1673. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  1674. package/src/vite/discovery/shell-prerender-phase.ts +397 -0
  1675. package/src/vite/discovery/state.ts +104 -6
  1676. package/src/vite/discovery/virtual-module-codegen.ts +226 -87
  1677. package/src/vite/encryption-key.ts +29 -0
  1678. package/src/vite/index.ts +12 -0
  1679. package/src/vite/inject-client-debug.ts +88 -0
  1680. package/src/vite/plugin-types.ts +243 -10
  1681. package/src/vite/plugins/cjs-to-esm.ts +16 -19
  1682. package/src/vite/plugins/client-ref-dedup.ts +296 -29
  1683. package/src/vite/plugins/client-ref-hashing.ts +28 -15
  1684. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  1685. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1686. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  1687. package/src/vite/plugins/expose-action-id.ts +95 -120
  1688. package/src/vite/plugins/expose-id-utils.ts +88 -55
  1689. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  1690. package/src/vite/plugins/expose-ids/handler-transform.ts +11 -90
  1691. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  1692. package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
  1693. package/src/vite/plugins/expose-internal-ids.ts +551 -486
  1694. package/src/vite/plugins/performance-tracks.ts +26 -25
  1695. package/src/vite/plugins/refresh-cmd.ts +1 -1
  1696. package/src/vite/plugins/server-ref-hashing.ts +74 -0
  1697. package/src/vite/plugins/server-reference-pattern.ts +10 -0
  1698. package/src/vite/plugins/use-cache-transform.ts +73 -83
  1699. package/src/vite/plugins/vercel-output.ts +384 -0
  1700. package/src/vite/plugins/version-injector.ts +39 -29
  1701. package/src/vite/plugins/version-plugin.ts +45 -40
  1702. package/src/vite/plugins/virtual-entries.ts +193 -30
  1703. package/src/vite/rango.ts +287 -140
  1704. package/src/vite/router-discovery.ts +1639 -157
  1705. package/src/vite/utils/ast-handler-extract.ts +26 -35
  1706. package/src/vite/utils/banner.ts +1 -1
  1707. package/src/vite/utils/bundle-analysis.ts +10 -15
  1708. package/src/vite/utils/client-chunks.ts +184 -0
  1709. package/src/vite/utils/directive-prologue.ts +40 -0
  1710. package/src/vite/utils/forward-user-plugins.ts +171 -0
  1711. package/src/vite/utils/manifest-utils.ts +1 -59
  1712. package/src/vite/utils/package-resolution.ts +21 -52
  1713. package/src/vite/utils/prerender-utils.ts +96 -49
  1714. package/src/vite/utils/shared-utils.ts +156 -43
  1715. package/src/browser/action-response-classifier.ts +0 -99
  1716. package/src/browser/shallow.ts +0 -40
  1717. package/src/router/middleware-cookies.ts +0 -55
@@ -5,8 +5,8 @@
5
5
  */
6
6
 
7
7
  import type { ReactNode } from "react";
8
- import { track } from "../server/context";
9
8
  import type { EntryData } from "../server/context";
9
+ import { observePhase, PHASES } from "./instrument.js";
10
10
  import { contextGet } from "../context-var.js";
11
11
  import type {
12
12
  ResolvedSegment,
@@ -18,13 +18,36 @@ import type {
18
18
  ErrorBoundaryHandler,
19
19
  ErrorBoundaryFallbackProps,
20
20
  ErrorInfo,
21
+ NotFoundBoundaryHandler,
22
+ NotFoundBoundaryFallbackProps,
21
23
  } from "../types";
22
- import type { LoaderRevalidationResult, ActionContext } from "./types";
24
+ import { createElement } from "react";
25
+ import { isDataNotFoundError } from "../errors.js";
26
+ import { isRedirectResponse } from "../response-utils.js";
27
+ import {
28
+ resolveSoftRedirectUrl,
29
+ getRedirectState,
30
+ isExternalRedirect,
31
+ } from "../redirect-origin.js";
32
+ import {
33
+ createNotFoundInfo,
34
+ renderNotFoundFallback,
35
+ resolveNotFoundFallback,
36
+ } from "./error-handling.js";
23
37
  import { isHandle, collectHandleData, type Handle } from "../handle.js";
24
- import { buildHandleSnapshot } from "../server/handle-store.js";
38
+ import { withDefer } from "../defer.js";
39
+ import {
40
+ buildHandleSnapshot,
41
+ type HandleStore,
42
+ } from "../server/handle-store.js";
25
43
  import { getFetchableLoader } from "../server/fetchable-loader-store.js";
26
44
  import { _getRequestContext } from "../server/request-context.js";
27
- import { isInsideLoaderScope } from "../server/context.js";
45
+ import {
46
+ isInsideLoaderScope,
47
+ runInsideLoaderBodyScope,
48
+ isInsidePushCallbackScope,
49
+ runInsidePushCallbackScope,
50
+ } from "../server/context.js";
28
51
  import { debugLog } from "./logging.js";
29
52
 
30
53
  /**
@@ -41,11 +64,66 @@ export type LoaderErrorCallback = (
41
64
  },
42
65
  ) => void;
43
66
 
67
+ /**
68
+ * Loader-thrown authority signals (notFound()/redirect()) are detected by the
69
+ * shape a consumer can actually throw: DataNotFoundError via the shared
70
+ * cross-realm-safe isDataNotFoundError, redirect by 3xx Response.
71
+ */
72
+
73
+ /**
74
+ * Deliver one `ctx.use(Handle)(value)` push to the owning segment.
75
+ *
76
+ * Shared by the handler lane (setupLoaderAccess) and the loader-body lane
77
+ * (createLoaderExecutor) so a loader push attributes and scopes EXACTLY like a
78
+ * handler push — that parity is the contract `ctx.use` in a loader promises.
79
+ *
80
+ * A function value runs inside the push-callback scope so `ctx.use(loader)`
81
+ * calls it makes — including after its own awaits, for an async callback — are
82
+ * not registered as handler-to-loader deps and do not trip the deadlock guard.
83
+ * A pushed promise value is not tracked by handleStore.settled and does not
84
+ * block segment resolution, so it cannot form a rendered() deadlock. The ALS
85
+ * scope (not a plain boolean) is what survives the callback's awaits.
86
+ */
87
+ function pushHandleValue(
88
+ store: HandleStore | undefined,
89
+ segmentId: string | undefined,
90
+ handleId: string,
91
+ dataOrFn: unknown | Promise<unknown> | (() => Promise<unknown>),
92
+ ): void {
93
+ if (!store || !segmentId) return;
94
+ if (typeof dataOrFn === "function") {
95
+ store.push(
96
+ handleId,
97
+ segmentId,
98
+ runInsidePushCallbackScope(() => (dataOrFn as () => Promise<unknown>)()),
99
+ );
100
+ return;
101
+ }
102
+ store.push(handleId, segmentId, dataOrFn);
103
+ }
104
+
44
105
  /**
45
106
  * Wrap a loader promise with error handling for deferred client-side resolution.
46
107
  * Catches errors and converts them to LoaderDataResult objects that include
47
108
  * error info and pre-rendered fallback UI when an error boundary is available.
48
109
  *
110
+ * Loader-thrown SIGNALS are routed before error handling — they are control
111
+ * flow, not failures (onError is not invoked for them):
112
+ * - notFound(): the not-found UI is resolved and rendered HERE, server-side
113
+ * (nearest notFoundBoundary → router notFound option → default), exactly
114
+ * like the consumption lane (segment-resolution/helpers.ts), and rides the
115
+ * envelope's `fallback` — the client swaps with zero extra fetches. The
116
+ * response status is opportunistically set to 404 via the request stub: if
117
+ * the rejection settles before the document Response is constructed the
118
+ * status is a real 404; after, the stub write is inert (streamed fix-up
119
+ * only). Nav-lane payloads are 200 either way — the client owns 404
120
+ * presentation there.
121
+ * - redirect() (thrown 3xx Response): the target is resolved through the
122
+ * soft-redirect same-origin rules NOW so unsafe targets never leave the
123
+ * server; the client navigates when the entry decodes. No document-lane
124
+ * 302 — pre-stream redirect authority belongs to middleware (doctrine);
125
+ * a loader redirect is always a client-side navigate.
126
+ *
49
127
  * @param onError - Optional callback invoked when loader errors occur.
50
128
  * This has a simplified signature for internal use - the caller (typically
51
129
  * wrapLoaderPromise in router.ts) is responsible for bridging to the full
@@ -65,8 +143,18 @@ export function wrapLoaderWithErrorHandling<T>(
65
143
  segmentType: ErrorInfo["segmentType"],
66
144
  ) => ErrorInfo,
67
145
  onError?: LoaderErrorCallback,
146
+ notFoundDeps?: {
147
+ findNearestNotFoundBoundary: (
148
+ entry: EntryData | null,
149
+ ) => ReactNode | NotFoundBoundaryHandler | null;
150
+ notFoundComponent?:
151
+ | ReactNode
152
+ | ((props: { pathname: string }) => ReactNode);
153
+ },
68
154
  ): Promise<LoaderDataResult<T>> {
69
- // Extract loader name from segmentId (format: "M1L0D0.loaderName")
155
+ // Extract the trailing token from segmentId (format: "<shortCode>D<i>.<loaderId>").
156
+ // The token is the loader's $$id (hash#export in prod, pathfrag#export in dev),
157
+ // not a clean display name.
70
158
  const loaderName = segmentId.split(".").pop() || "unknown";
71
159
 
72
160
  return Promise.resolve(promise)
@@ -78,6 +166,92 @@ export function wrapLoaderWithErrorHandling<T>(
78
166
  }),
79
167
  )
80
168
  .catch((error): LoaderDataResult<T> => {
169
+ if (isDataNotFoundError(error)) {
170
+ // Opportunistic document 404: the stub status is read once when the
171
+ // document Response is constructed (createResponseWithMergedHeaders);
172
+ // a pre-construction write becomes the real status, a later write is
173
+ // harmless. Same mechanism as the consumption lane's setResponseStatus.
174
+ _getRequestContext()?._setStatus(404);
175
+
176
+ const effective = resolveNotFoundFallback(
177
+ notFoundDeps?.findNearestNotFoundBoundary(entry),
178
+ notFoundDeps?.notFoundComponent,
179
+ pathname,
180
+ );
181
+
182
+ const notFoundInfo = createNotFoundInfo(
183
+ error as { message: string },
184
+ segmentId,
185
+ "loader",
186
+ pathname,
187
+ );
188
+ let renderedNotFound: ReactNode;
189
+ try {
190
+ renderedNotFound = renderNotFoundFallback(effective, notFoundInfo);
191
+ } catch {
192
+ // A throwing boundary must not collapse the envelope (the wrapped
193
+ // promise is contracted to never reject); degrade to the default.
194
+ // Deliberately NOT shared with the consumption lane
195
+ // (segment-resolution/helpers.ts), which lets a throwing boundary
196
+ // propagate to the error boundary — only this lane is contracted to
197
+ // never reject.
198
+ renderedNotFound = createElement("h1", null, "Not Found");
199
+ }
200
+
201
+ debugLog("loader", "loader threw notFound()", {
202
+ segmentId,
203
+ pathname,
204
+ });
205
+
206
+ return {
207
+ __loaderResult: true,
208
+ ok: false,
209
+ notFound: true,
210
+ error: createErrorInfo(error, segmentId, "loader"),
211
+ fallback: renderedNotFound ?? null,
212
+ };
213
+ }
214
+
215
+ if (error instanceof Response && isRedirectResponse(error)) {
216
+ const reqCtx = _getRequestContext();
217
+ const requestOrigin = reqCtx?.originalUrl?.origin ?? reqCtx?.url.origin;
218
+ const location = error.headers.get("Location")!;
219
+ // Same-origin policy applied server-side; the wire never carries an
220
+ // unresolved target. redirect(url, { external: true })'s WeakSet brand
221
+ // survives (the thrown Response IS the branded object).
222
+ const to = requestOrigin
223
+ ? resolveSoftRedirectUrl(
224
+ location,
225
+ requestOrigin,
226
+ reqCtx?._basename,
227
+ isExternalRedirect(error),
228
+ )
229
+ : location;
230
+
231
+ debugLog("loader", "loader threw redirect()", {
232
+ segmentId,
233
+ to,
234
+ });
235
+
236
+ // redirect(url, { state }): the resolved state rides the thrown
237
+ // Response (attachRedirectState), NOT payload metadata — a streaming
238
+ // loader settles after the metadata flush, so the marker is the only
239
+ // carrier that reaches the client. LoaderRedirect navigates with it.
240
+ const redirectState = getRedirectState(error);
241
+
242
+ return {
243
+ __loaderResult: true,
244
+ ok: false,
245
+ redirect: { to, ...(redirectState && { state: redirectState }) },
246
+ error: createErrorInfo(
247
+ new Error(`Loader redirected to ${to}`),
248
+ segmentId,
249
+ "loader",
250
+ ),
251
+ fallback: null,
252
+ };
253
+ }
254
+
81
255
  // Find nearest error boundary
82
256
  const fallback = findNearestErrorBoundary(entry);
83
257
 
@@ -102,16 +276,40 @@ export function wrapLoaderWithErrorHandling<T>(
102
276
  };
103
277
  }
104
278
 
105
- // Render fallback on server
279
+ // Render fallback on server. The user ErrorBoundaryHandler may throw
280
+ // synchronously; if it does we must NOT let that rejection escape — the
281
+ // wrapped LoaderDataResult promise is contracted to never reject (see
282
+ // segment-resolution/fresh.ts `await Promise.all(...wrapped)`), and a
283
+ // rejection here would collapse the whole entry and discard healthy
284
+ // sibling loader data. On a fallback-render throw, fall back to the
285
+ // no-boundary result (fallback: null) so the client throws the ORIGINAL
286
+ // error, and the wrapped promise still resolves to a LoaderDataResult.
106
287
  let renderedFallback: ReactNode;
107
- if (typeof fallback === "function") {
108
- // ErrorBoundaryHandler - call with error info
109
- const props: ErrorBoundaryFallbackProps = {
288
+ try {
289
+ if (typeof fallback === "function") {
290
+ // ErrorBoundaryHandler - call with error info
291
+ const props: ErrorBoundaryFallbackProps = {
292
+ error: errorInfo,
293
+ };
294
+ renderedFallback = fallback(props);
295
+ } else {
296
+ renderedFallback = fallback;
297
+ }
298
+ } catch (fallbackError) {
299
+ debugLog("loader", "error boundary fallback render threw", {
300
+ segmentId,
301
+ message: errorInfo.message,
302
+ fallbackError:
303
+ fallbackError instanceof Error
304
+ ? fallbackError.message
305
+ : String(fallbackError),
306
+ });
307
+ return {
308
+ __loaderResult: true,
309
+ ok: false,
110
310
  error: errorInfo,
311
+ fallback: null,
111
312
  };
112
- renderedFallback = fallback(props);
113
- } else {
114
- renderedFallback = fallback;
115
313
  }
116
314
 
117
315
  debugLog("loader", "loader error wrapped with boundary fallback", {
@@ -179,12 +377,23 @@ function detectLoaderCycle(
179
377
  function createLoaderExecutor<TEnv>(
180
378
  ctx: HandlerContext<any, TEnv>,
181
379
  loaderPromises: Map<string, Promise<any>>,
380
+ executorOptions?: {
381
+ /**
382
+ * Background proactive-caching mode: ctx.handle() pushes become no-ops
383
+ * (mirroring setupLoaderAccessSilent's handler-handle no-op) and loader
384
+ * bodies are NOT aux-tracked into the foreground handle store — a
385
+ * background run must neither duplicate handle data nor extend the live
386
+ * payload's handle-stream lifetime.
387
+ */
388
+ silentHandles?: boolean;
389
+ },
182
390
  ): (
183
391
  loader: LoaderDefinition<any, any>,
184
392
  callerLoaderId: string | null,
185
393
  ) => Promise<any> {
186
394
  // Capture RequestContext eagerly for cookie access (ALS protection on Cloudflare)
187
395
  const reqCtxRef = _getRequestContext();
396
+ const silentHandles = executorOptions?.silentHandles === true;
188
397
 
189
398
  // Dependency graph: loaderId -> set of loader IDs it directly depends on.
190
399
  const dependsOn = new Map<string, Set<string>>();
@@ -250,6 +459,16 @@ function createLoaderExecutor<TEnv>(
250
459
  // inside loader scope. This determines whether rendered() is allowed.
251
460
  const isDslLoader = isInsideLoaderScope();
252
461
 
462
+ // Owning segment for ctx.handle() attribution, captured SYNCHRONOUSLY at
463
+ // kickoff: segment resolution sets _currentSegmentId while resolving the
464
+ // segment that declares this loader (fresh.ts), and the value moves on as
465
+ // resolution continues — by the time the async body pushes, it would be
466
+ // stale. Attributing to the owning route/layout segment gives handle
467
+ // pushes the same granularity handler pushes have (segmentOrder-correct
468
+ // for breadcrumb accumulation).
469
+ const owningSegmentId = (ctx as InternalHandlerContext<any, TEnv>)
470
+ ._currentSegmentId;
471
+
253
472
  let renderedResolved = false;
254
473
  let renderedPromise: Promise<void> | null = null;
255
474
 
@@ -266,28 +485,65 @@ function createLoaderExecutor<TEnv>(
266
485
  search: (ctx as any).search,
267
486
  pathname: ctx.pathname,
268
487
  url: ctx.url,
488
+ originalUrl: ctx.originalUrl,
269
489
  env: ctx.env,
270
- get: ((keyOrVar: any) =>
271
- contextGet(variables, keyOrVar)) as typeof ctx.get,
272
- use: ((item: LoaderDefinition<any, any> | Handle<any, any>) => {
273
- if (isHandle(item)) {
490
+ waitUntil: ctx.waitUntil.bind(ctx),
491
+ executionContext: ctx.executionContext,
492
+ get: ((keyOrVar: any) => {
493
+ // Handle READ (moved from ctx.use(handle)): collected data, available
494
+ // after `await ctx.rendered()` — the rendered-barrier contract.
495
+ if (isHandle(keyOrVar)) {
274
496
  if (!renderedResolved) {
275
497
  throw new Error(
276
- `ctx.use(handle) in a loader requires "await ctx.rendered()" first. ` +
277
- `Handle "${item.$$id}" cannot be read until the render tree has settled.`,
498
+ `ctx.get(handle) in a loader requires "await ctx.rendered()" first. ` +
499
+ `Handle "${keyOrVar.$$id}" cannot be read until the render tree has settled.`,
278
500
  );
279
501
  }
280
502
  const reqCtx = reqCtxRef ?? _getRequestContext();
281
503
  if (!reqCtx) {
282
504
  throw new Error(
283
- `ctx.use(handle) failed: request context not available.`,
505
+ `ctx.get(handle) failed: request context not available.`,
284
506
  );
285
507
  }
286
508
  const segmentOrder = reqCtx._renderBarrierSegmentOrder ?? [];
509
+ // The complete snapshot is cached at barrier resolution for
510
+ // non-streaming trees, and by rendered() after handleStore.settled for
511
+ // streaming trees (where the eager snapshot would have been incomplete
512
+ // because loading() handlers were still in flight). Either way it is
513
+ // present by the time a loader reads a handle; the fresh build is only
514
+ // a defensive fallback.
287
515
  const snapshot =
288
516
  reqCtx._renderBarrierHandleSnapshot ??
289
517
  buildHandleSnapshot(reqCtx._handleStore, segmentOrder);
290
- return collectHandleData(item, snapshot, segmentOrder);
518
+ return collectHandleData(keyOrVar, snapshot, segmentOrder);
519
+ }
520
+ return contextGet(variables, keyOrVar);
521
+ }) as typeof ctx.get,
522
+ use: ((item: LoaderDefinition<any, any> | Handle<any, any>) => {
523
+ if (isHandle(item)) {
524
+ // Handle WRITE — handler parity: `ctx.use(Meta)({...})` pushes from
525
+ // the loader body exactly like a handler push. Reads moved to
526
+ // ctx.get(handle) (rendered()-gated). Pushes attribute to the OWNING
527
+ // segment and are legal for the whole body: the body is tracked on
528
+ // the handle store's auxiliary lane, so the store stays open past
529
+ // the handler barrier. Delivery follows the race: pushes that beat
530
+ // the handler barrier ride the SSR snapshot, later ones stream via
531
+ // metadata.handlesLate (document) or the still-open handles
532
+ // generator (nav/action lanes).
533
+ const handleDef = item;
534
+ if (silentHandles) {
535
+ return withDefer((_dataOrFn: unknown) => {});
536
+ }
537
+ const store =
538
+ reqCtxRef?._handleStore ?? _getRequestContext()?._handleStore;
539
+ const segmentId = owningSegmentId;
540
+ return withDefer(
541
+ (
542
+ dataOrFn: unknown | Promise<unknown> | (() => Promise<unknown>),
543
+ ) => {
544
+ pushHandleValue(store, segmentId, handleDef.$$id, dataOrFn);
545
+ },
546
+ );
291
547
  }
292
548
 
293
549
  // Loader case
@@ -305,15 +561,7 @@ function createLoaderExecutor<TEnv>(
305
561
  );
306
562
  }
307
563
 
308
- // Guard: reject streaming trees
309
564
  const reqCtx = reqCtxRef ?? _getRequestContext();
310
- if (reqCtx?._treeHasStreaming) {
311
- throw new Error(
312
- `ctx.rendered() is not supported when the matched route tree uses loading(). ` +
313
- `Streaming handlers may not have settled when rendered() resolves. ` +
314
- `Remove loading() from the route tree or restructure to avoid rendered().`,
315
- );
316
- }
317
565
 
318
566
  if (renderedPromise) return renderedPromise;
319
567
 
@@ -323,8 +571,29 @@ function createLoaderExecutor<TEnv>(
323
571
  );
324
572
  }
325
573
 
574
+ // awaitBeforeFlush cycle: segment resolution awaits this loader
575
+ // (loader(Def, { ssr: false })), the barrier awaits segment
576
+ // resolution, and rendered() awaits the barrier — waiting here can
577
+ // never complete. Fail fast with the cause instead of hanging the
578
+ // document render. Only document renders populate the set (the flag is
579
+ // stamped per-isSSR), so the same loader may still use rendered() on
580
+ // navigation renders.
581
+ if (reqCtx._awaitBeforeFlushLoaderIds?.has(currentLoaderId)) {
582
+ throw new Error(
583
+ `Deadlock: loader "${currentLoaderId}" is registered with ` +
584
+ `ssr: false, so the document render awaits it before ` +
585
+ `the render barrier resolves — ctx.rendered() (and the ` +
586
+ `ctx.get(handle) read it gates) can never settle here. Drop ` +
587
+ `ssr: false on this loader or move the handle read to ` +
588
+ `a component.`,
589
+ );
590
+ }
591
+
326
592
  // Bidirectional deadlock check: if a handler already started
327
- // awaiting this loader, calling rendered() would deadlock.
593
+ // awaiting this loader, calling rendered() would deadlock. This is the
594
+ // real cycle guard (it holds for both streaming and non-streaming): the
595
+ // handler blocks segment resolution, which blocks the barrier, which
596
+ // blocks this loader.
328
597
  if (reqCtx._handlerLoaderDeps?.has(currentLoaderId)) {
329
598
  throw new Error(
330
599
  `Deadlock: loader "${currentLoaderId}" called ctx.rendered() but a handler ` +
@@ -342,20 +611,100 @@ function createLoaderExecutor<TEnv>(
342
611
  }
343
612
  reqCtx._renderBarrierWaiters.add(currentLoaderId);
344
613
 
345
- renderedPromise = reqCtx._renderBarrier.then(() => {
614
+ // Streaming trees (loading()): the barrier resolves once the segment
615
+ // tree is resolved, but loading() handlers stream behind Suspense and
616
+ // their handle pushes are still in flight then. Their async execution
617
+ // IS tracked in the handle store (trackHandler -> store.track), so after
618
+ // the barrier we seal (no further handlers register once the tree is
619
+ // resolved) and wait for settled — every tracked handler, streaming
620
+ // included, has finished pushing. The loader's own segment streams in
621
+ // after, so this does not block the shell; the deadlock guard above
622
+ // keeps a handler from depending on this loader.
623
+ const streaming = reqCtx._treeHasStreaming === true;
624
+ renderedPromise = reqCtx._renderBarrier.then(async () => {
625
+ if (streaming) {
626
+ reqCtx._handleStore.seal();
627
+ await reqCtx._handleStore.settled;
628
+ // The eager snapshot was intentionally left unbuilt for streaming
629
+ // (it would have been incomplete). Build the complete one once, now
630
+ // that the store has settled, so every ctx.use(handle) reads the
631
+ // cached snapshot instead of rebuilding it per call.
632
+ reqCtx._renderBarrierHandleSnapshot ??= buildHandleSnapshot(
633
+ reqCtx._handleStore,
634
+ reqCtx._renderBarrierSegmentOrder ?? [],
635
+ );
636
+ }
346
637
  renderedResolved = true;
347
638
  });
348
639
  return renderedPromise;
349
640
  },
350
641
  };
351
642
 
352
- const doneLoader = track(`loader:${loader.$$id}`, 2);
353
- const promise = Promise.resolve(
354
- loaderFn(loaderCtx as LoaderContext<any, TEnv>),
355
- ).finally(() => {
356
- pendingLoaders.delete(loader.$$id);
357
- doneLoader();
358
- });
643
+ // Meter this loader once via observePhase (loader:<id> perf metric +
644
+ // rango.loader span); loaderFn runs inside the span callback so its KV/D1/
645
+ // fetch spans nest under it. This is one of the observePhase loader funnels —
646
+ // see instrument.ts for the single-metering contract.
647
+ //
648
+ // Run the loader body inside loader scope so request-scoped reads
649
+ // (cookies()/headers() and non-cacheable ctx.get) are exempt from the
650
+ // cache-purity guards: loaders always run fresh, so their reads never leak
651
+ // into a cached segment. DSL loaders are already wrapped by fresh.ts; this
652
+ // also covers handler-invoked loaders (ctx.use(Loader) from a handler),
653
+ // which otherwise execute in the caller's cache scope and would wrongly
654
+ // throw. rendered() gating uses the captured isDslLoader (above), so this
655
+ // does not grant rendered() to handler-invoked loaders. Uses a body-only
656
+ // scope, so isInsideLoaderScope() / barrier / deadlock gating is unchanged.
657
+ //
658
+ // `handlerInvoked` (!isDslLoader) rides on the scope for the CONSUMPTION-
659
+ // LANE RULE: a handler-consumed loader's value is a BAKED copy in every
660
+ // shared artifact (cache(), "use cache", the PPR shell), so its identity
661
+ // reads are exempt from the shell-capture guard — same allowance the
662
+ // cache-purity guards give it. DSL segment loaders keep their lane
663
+ // machinery (live = masked at capture, bake = guarded). A DSL loader's
664
+ // nested deps inherit isDslLoader=false only when the CHAIN started in a
665
+ // handler; a chain started by the segment funnel stays DSL (the loader
666
+ // scope ALS survives the body's awaits).
667
+ // Shell fast path eligibility: a HANDLER-invoked loader executing during a
668
+ // capture is handler-layer dynamism — on a handler-free (replayed) HIT it
669
+ // would never re-run, freezing its consumption-lane value (#672's "fresh
670
+ // per serve" slot shape). Mark the capture; the entry declines the fast
671
+ // path and keeps the full tail. DSL loaders re-run on every HIT and never
672
+ // set this.
673
+ if (!isDslLoader) {
674
+ const captureCtx = _getRequestContext();
675
+ if (
676
+ captureCtx?._shellCaptureRun &&
677
+ captureCtx._shellCaptureHandleLiveness
678
+ ) {
679
+ captureCtx._shellCaptureHandleLiveness.handlerInvokedLoader = true;
680
+ }
681
+ }
682
+
683
+ const promise = observePhase(PHASES.loader(loader.$$id), () =>
684
+ Promise.resolve(
685
+ runInsideLoaderBodyScope(
686
+ () => loaderFn(loaderCtx as LoaderContext<any, TEnv>),
687
+ loader.$$id,
688
+ !isDslLoader,
689
+ ),
690
+ ).finally(() => {
691
+ pendingLoaders.delete(loader.$$id);
692
+ }),
693
+ );
694
+
695
+ // Auxiliary-lane tracking: keeps the handle store open for this body's
696
+ // ctx.handle() pushes without joining `settled` (the handler barrier that
697
+ // gates SSR/hydration and rendered()-readers — joining it would block the
698
+ // document on the slowest loader and self-deadlock rendered() callers).
699
+ // DSL loaders only: handler-invoked loaders are awaited by their handler,
700
+ // so they complete inside the handler lane already. A nested DSL kickoff
701
+ // mid-body registers while its parent is still tracked, so the lane can
702
+ // never re-open after draining.
703
+ if (isDslLoader && !silentHandles) {
704
+ (reqCtxRef ?? _getRequestContext())?._handleStore?.trackAuxiliary(
705
+ promise,
706
+ );
707
+ }
359
708
 
360
709
  loaderPromises.set(loader.$$id, promise);
361
710
  return promise;
@@ -387,12 +736,6 @@ export function setupLoaderAccess<TEnv>(
387
736
 
388
737
  const useLoader = createLoaderExecutor(ctx, loaderPromises);
389
738
 
390
- // Track whether we're inside a handle push callback. Loaders started
391
- // from push callbacks (e.g. push(async () => ctx.use(Loader))) do NOT
392
- // block segment resolution, so they must not be registered as handler
393
- // dependencies for deadlock detection.
394
- let insideHandlePush = false;
395
-
396
739
  ctx.use = ((item: LoaderDefinition<any, any> | Handle<any, any>) => {
397
740
  if (isHandle(item)) {
398
741
  const handle = item;
@@ -407,35 +750,23 @@ export function setupLoaderAccess<TEnv>(
407
750
  );
408
751
  }
409
752
 
410
- return (
411
- dataOrFn: unknown | Promise<unknown> | (() => Promise<unknown>),
412
- ) => {
413
- if (!store) return;
414
-
415
- if (typeof dataOrFn === "function") {
416
- // Mark scope so ctx.use(loader) calls inside the callback
417
- // are not registered as handler-to-loader deps.
418
- insideHandlePush = true;
419
- try {
420
- const result = (dataOrFn as () => Promise<unknown>)();
421
- store.push(handle.$$id, segmentId, result);
422
- } finally {
423
- insideHandlePush = false;
424
- }
425
- return;
426
- }
427
-
428
- store.push(handle.$$id, segmentId, dataOrFn);
429
- };
753
+ return withDefer(
754
+ (dataOrFn: unknown | Promise<unknown> | (() => Promise<unknown>)) => {
755
+ pushHandleValue(store, segmentId, handle.$$id, dataOrFn);
756
+ },
757
+ );
430
758
  }
431
759
 
432
760
  // Deadlock guard and handler-to-loader dependency tracking.
433
761
  // Skip when inside a DSL loader scope (resolveLoaderData also calls
434
762
  // ctx.use() but that's DSL-to-DSL, not handler-to-loader) or when
435
763
  // inside a handle push callback (push callbacks don't block segment
436
- // resolution so they can't cause rendered() deadlocks).
764
+ // resolution so they can't cause rendered() deadlocks). The push-callback
765
+ // check is an ALS scope so it also exempts an ASYNC callback's continuation
766
+ // after its first await — relevant on streaming trees, where the guard
767
+ // state now stays live until handleStore.settled.
437
768
  const loader = item as LoaderDefinition<any, any>;
438
- if (!isInsideLoaderScope() && !insideHandlePush) {
769
+ if (!isInsideLoaderScope() && !isInsidePushCallbackScope()) {
439
770
  const reqCtx = reqCtxRef ?? _getRequestContext();
440
771
  if (reqCtx) {
441
772
  // Direction 1: handler awaits loader that already called rendered()
@@ -449,13 +780,18 @@ export function setupLoaderAccess<TEnv>(
449
780
  `Move the data dependency to a loader-to-loader pattern instead.`,
450
781
  );
451
782
  }
452
- // Direction 2: track dep so rendered() can detect the deadlock
453
- // if the loader calls it later. Skip when the barrier has already
454
- // resolved no deadlock is possible (rendered() resolves immediately).
455
- // _renderBarrierSegmentOrder is undefined before resolution, string[]
456
- // after. This also prevents false positives from handle push callbacks
457
- // that resume after their first await (post-barrier-resolution).
458
- if (reqCtx._renderBarrierSegmentOrder === undefined) {
783
+ // Direction 2: track dep so rendered() can detect the deadlock if the
784
+ // loader calls it later. Skip once the guard window is CLOSED — for a
785
+ // non-streaming tree that is when the barrier resolves (rendered()
786
+ // resolves immediately), and for a streaming tree it is when
787
+ // handleStore.settled completes (rendered() keeps waiting until then, so
788
+ // a loading() handler resuming after the barrier can still form a
789
+ // cycle). Using the explicit guard-closed flag rather than
790
+ // _renderBarrierSegmentOrder keeps tracking live across the streaming
791
+ // settle wait. (Handle push callbacks are already excluded above via
792
+ // isInsidePushCallbackScope(), so they cannot produce false positives
793
+ // here.)
794
+ if (!reqCtx._renderBarrierGuardClosed) {
459
795
  if (!reqCtx._handlerLoaderDeps) reqCtx._handlerLoaderDeps = new Set();
460
796
  reqCtx._handlerLoaderDeps.add(loader.$$id);
461
797
  }
@@ -489,18 +825,21 @@ export function setupBuildUse<TEnv>(ctx: HandlerContext<any, TEnv>): void {
489
825
  );
490
826
  }
491
827
 
492
- return (
493
- dataOrFn: unknown | Promise<unknown> | (() => Promise<unknown>),
494
- ) => {
495
- if (!store) return;
828
+ // Wrap with withDefer so ctx.use(Handle).defer(...) works on the build /
829
+ // prerender path, matching production setupLoaderAccess. Without it a
830
+ // prerender handler calling .defer() throws "defer is not a function".
831
+ return withDefer(
832
+ (dataOrFn: unknown | Promise<unknown> | (() => Promise<unknown>)) => {
833
+ if (!store) return;
496
834
 
497
- const valueOrPromise =
498
- typeof dataOrFn === "function"
499
- ? (dataOrFn as () => Promise<unknown>)()
500
- : dataOrFn;
835
+ const valueOrPromise =
836
+ typeof dataOrFn === "function"
837
+ ? (dataOrFn as () => Promise<unknown>)()
838
+ : dataOrFn;
501
839
 
502
- store.push(handle.$$id, segmentId, valueOrPromise);
503
- };
840
+ store.push(handle.$$id, segmentId, valueOrPromise);
841
+ },
842
+ );
504
843
  }
505
844
 
506
845
  // Loader case: not available during pre-rendering
@@ -524,12 +863,17 @@ export function setupLoaderAccessSilent<TEnv>(
524
863
  ctx: HandlerContext<any, TEnv>,
525
864
  loaderPromises: Map<string, Promise<any>>,
526
865
  ): void {
527
- const useLoader = createLoaderExecutor(ctx, loaderPromises);
866
+ const useLoader = createLoaderExecutor(ctx, loaderPromises, {
867
+ silentHandles: true,
868
+ });
528
869
 
529
870
  ctx.use = ((item: LoaderDefinition<any, any> | Handle<any, any>) => {
530
871
  if (isHandle(item)) {
531
- // Silent mode - return a no-op so handle data is not pushed during caching
532
- return (_dataOrFn: unknown) => {};
872
+ // Silent mode - return a no-op so handle data is not pushed during caching.
873
+ // Wrap with withDefer so ctx.use(Handle).defer(...) still resolves to a
874
+ // callable resolver (also a no-op here), matching production's push shape
875
+ // instead of throwing "defer is not a function".
876
+ return withDefer((_dataOrFn: unknown) => {});
533
877
  }
534
878
 
535
879
  return useLoader(item as LoaderDefinition<any, any>, null);