@rangojs/router 0.0.0-experimental.8 → 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 (1746) hide show
  1. package/AGENTS.md +13 -0
  2. package/README.md +472 -7
  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 +2343 -0
  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 -26
  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/dist/handles/index.d.ts +6 -0
  356. package/dist/handles/index.d.ts.map +1 -0
  357. package/{src/handles/index.ts → dist/handles/index.js} +1 -1
  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/{src/href-context.ts → dist/href-context.d.ts} +7 -11
  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 -8
  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 +12042 -1346
  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/{src/vite/package-resolution.ts → dist/vite/package-resolution.js} +53 -66
  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/{src/vite/virtual-entries.ts → dist/vite/virtual-entries.js} +12 -16
  1233. package/dist/vite/virtual-entries.js.map +1 -0
  1234. package/package.json +170 -77
  1235. package/skills/api-client/SKILL.md +211 -0
  1236. package/skills/breadcrumbs/SKILL.md +359 -0
  1237. package/skills/bundle-analysis/SKILL.md +159 -0
  1238. package/skills/cache-guide/SKILL.md +492 -0
  1239. package/skills/caching/SKILL.md +452 -26
  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 +292 -0
  1251. package/skills/css/SKILL.md +76 -0
  1252. package/skills/debug-manifest/SKILL.md +16 -18
  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 +125 -65
  1256. package/skills/fonts/SKILL.md +167 -0
  1257. package/skills/handler-use/SKILL.md +364 -0
  1258. package/skills/hooks/SKILL.md +76 -432
  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 +320 -0
  1266. package/skills/i18n/SKILL.md +276 -0
  1267. package/skills/intercept/SKILL.md +215 -16
  1268. package/skills/layout/SKILL.md +147 -7
  1269. package/skills/links/SKILL.md +360 -33
  1270. package/skills/loader/SKILL.md +762 -51
  1271. package/skills/middleware/SKILL.md +251 -38
  1272. package/skills/migrate-nextjs/SKILL.md +854 -0
  1273. package/skills/migrate-nextjs/backend-host-swap.md +120 -0
  1274. package/skills/migrate-react-router/SKILL.md +189 -0
  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 +165 -0
  1279. package/skills/observability/SKILL.md +231 -0
  1280. package/skills/parallel/SKILL.md +327 -4
  1281. package/skills/ppr/SKILL.md +918 -0
  1282. package/skills/prerender/SKILL.md +751 -0
  1283. package/skills/rango/SKILL.md +387 -17
  1284. package/skills/react-compiler/SKILL.md +168 -0
  1285. package/skills/response-routes/SKILL.md +539 -0
  1286. package/skills/route/SKILL.md +399 -15
  1287. package/skills/router-setup/SKILL.md +270 -34
  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 +153 -0
  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 +16 -12
  1309. package/skills/typesafety/SKILL.md +45 -387
  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 +430 -0
  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 +77 -44
  1320. package/src/bin/rango.ts +325 -0
  1321. package/src/browser/action-coordinator.ts +114 -0
  1322. package/src/browser/action-fence.ts +47 -0
  1323. package/src/browser/app-shell.ts +39 -0
  1324. package/src/browser/app-version.ts +14 -0
  1325. package/src/browser/connection-warmup.ts +134 -0
  1326. package/src/browser/cookie-name.ts +140 -0
  1327. package/src/browser/dev-discovery.ts +66 -0
  1328. package/src/browser/event-controller.ts +477 -217
  1329. package/src/browser/history-state.ts +101 -0
  1330. package/src/browser/index.ts +3 -3
  1331. package/src/browser/intercept-utils.ts +52 -0
  1332. package/src/browser/invalidate-client-cache.ts +52 -0
  1333. package/src/browser/link-interceptor.ts +487 -18
  1334. package/src/browser/logging.ts +83 -0
  1335. package/src/browser/merge-segment-loaders.ts +23 -13
  1336. package/src/browser/navigation-bridge.ts +471 -570
  1337. package/src/browser/navigation-client.ts +343 -79
  1338. package/src/browser/navigation-store-handle.ts +38 -0
  1339. package/src/browser/navigation-store.ts +228 -366
  1340. package/src/browser/navigation-transaction.ts +247 -0
  1341. package/src/browser/network-error-handler.ts +88 -0
  1342. package/src/browser/notify-listeners.ts +22 -0
  1343. package/src/browser/partial-update.ts +491 -365
  1344. package/src/browser/prefetch/cache.ts +457 -0
  1345. package/src/browser/prefetch/default-strategy.ts +74 -0
  1346. package/src/browser/prefetch/fetch.ts +548 -0
  1347. package/src/browser/prefetch/invalidation.ts +30 -0
  1348. package/src/browser/prefetch/loader.ts +111 -0
  1349. package/src/browser/prefetch/observer.ts +93 -0
  1350. package/src/browser/prefetch/policy.ts +48 -0
  1351. package/src/browser/prefetch/queue.ts +209 -0
  1352. package/src/browser/prefetch/resource-ready.ts +77 -0
  1353. package/src/browser/prefetch/runtime.ts +6 -0
  1354. package/src/browser/rango-state.ts +215 -0
  1355. package/src/browser/react/Link.tsx +332 -85
  1356. package/src/browser/react/NavigationProvider.tsx +275 -109
  1357. package/src/browser/react/ScrollRestoration.tsx +10 -6
  1358. package/src/browser/react/context.ts +15 -0
  1359. package/src/browser/react/filter-segment-order.ts +70 -0
  1360. package/src/browser/react/index.ts +0 -48
  1361. package/src/browser/react/location-state-shared.ts +272 -60
  1362. package/src/browser/react/location-state.ts +90 -20
  1363. package/src/browser/react/mount-context.ts +6 -1
  1364. package/src/browser/react/nonce-context.ts +23 -0
  1365. package/src/browser/react/shallow-equal.ts +27 -0
  1366. package/src/browser/react/use-action.ts +35 -66
  1367. package/src/browser/react/use-handle.ts +39 -132
  1368. package/src/browser/react/use-href.tsx +9 -2
  1369. package/src/browser/react/use-link-status.ts +39 -13
  1370. package/src/browser/react/use-navigation.ts +53 -69
  1371. package/src/browser/react/use-params.ts +75 -0
  1372. package/src/browser/react/use-pathname.ts +47 -0
  1373. package/src/browser/react/use-reverse.ts +106 -0
  1374. package/src/browser/react/use-router.ts +127 -0
  1375. package/src/browser/react/use-search-params.ts +174 -0
  1376. package/src/browser/react/use-segments.ts +72 -99
  1377. package/src/browser/response-adapter.ts +164 -0
  1378. package/src/browser/rsc-router.tsx +446 -74
  1379. package/src/browser/scroll-restoration.ts +140 -50
  1380. package/src/browser/segment-reconciler.ts +253 -0
  1381. package/src/browser/segment-structure-assert.ts +17 -1
  1382. package/src/browser/server-action-bridge.ts +707 -603
  1383. package/src/browser/types.ts +266 -75
  1384. package/src/browser/validate-redirect-origin.ts +56 -0
  1385. package/src/build/collect-fallback-refs.ts +107 -0
  1386. package/src/build/generate-manifest.ts +324 -84
  1387. package/src/build/generate-route-types.ts +41 -0
  1388. package/src/build/index.ts +22 -1
  1389. package/src/build/merge-full-manifests.ts +161 -0
  1390. package/src/build/prefix-tree-utils.ts +123 -0
  1391. package/src/build/route-trie.ts +54 -0
  1392. package/src/build/route-types/ast-helpers.ts +25 -0
  1393. package/src/build/route-types/ast-route-extraction.ts +105 -0
  1394. package/src/build/route-types/codegen.ts +113 -0
  1395. package/src/build/route-types/include-resolution.ts +867 -0
  1396. package/src/build/route-types/param-extraction.ts +51 -0
  1397. package/src/build/route-types/per-module-writer.ts +149 -0
  1398. package/src/build/route-types/router-processing.ts +726 -0
  1399. package/src/build/route-types/scan-filter.ts +85 -0
  1400. package/src/build/route-types/source-scan.ts +216 -0
  1401. package/src/build/runtime-discovery.ts +234 -0
  1402. package/src/cache/background-task.ts +34 -0
  1403. package/src/cache/cache-error.ts +104 -0
  1404. package/src/cache/cache-exec-scope.ts +47 -0
  1405. package/src/cache/cache-key-utils.ts +102 -0
  1406. package/src/cache/cache-policy.ts +199 -0
  1407. package/src/cache/cache-runtime.ts +787 -0
  1408. package/src/cache/cache-scope.ts +478 -342
  1409. package/src/cache/cache-tag.ts +149 -0
  1410. package/src/cache/cf/cf-base64.ts +33 -0
  1411. package/src/cache/cf/cf-cache-constants.ts +134 -0
  1412. package/src/cache/cf/cf-cache-store.ts +3397 -152
  1413. package/src/cache/cf/cf-cache-types.ts +417 -0
  1414. package/src/cache/cf/cf-kv-utils.ts +84 -0
  1415. package/src/cache/cf/cf-tag-marker-memo.ts +108 -0
  1416. package/src/cache/cf/cf-zone-purge.ts +101 -0
  1417. package/src/cache/cf/index.ts +21 -16
  1418. package/src/cache/document-cache.ts +275 -105
  1419. package/src/cache/handle-capture.ts +81 -0
  1420. package/src/cache/handle-snapshot.ts +132 -0
  1421. package/src/cache/index.ts +33 -35
  1422. package/src/cache/memory-segment-store.ts +457 -30
  1423. package/src/cache/profile-registry.ts +88 -0
  1424. package/src/cache/read-through-swr.ts +184 -0
  1425. package/src/cache/search-params-filter.ts +118 -0
  1426. package/src/cache/segment-codec.ts +311 -0
  1427. package/src/cache/shell-snapshot.ts +516 -0
  1428. package/src/cache/tag-invalidation.ts +230 -0
  1429. package/src/cache/taint.ts +172 -0
  1430. package/src/cache/types.ts +405 -212
  1431. package/src/cache/vercel/index.ts +11 -0
  1432. package/src/cache/vercel/vercel-cache-store.ts +1264 -0
  1433. package/src/client-urls/client-root.tsx +168 -0
  1434. package/src/client-urls/client-urls.ts +779 -0
  1435. package/src/client-urls/navigation.ts +237 -0
  1436. package/src/client-urls/revalidation-protocol.ts +56 -0
  1437. package/src/client-urls/server-projection.ts +670 -0
  1438. package/src/client-urls/types.ts +202 -0
  1439. package/src/client.rsc.tsx +55 -21
  1440. package/src/client.tsx +179 -330
  1441. package/src/cloudflare/index.ts +11 -0
  1442. package/src/cloudflare/tracing.ts +112 -0
  1443. package/src/component-utils.ts +23 -4
  1444. package/src/components/DefaultDocument.tsx +13 -3
  1445. package/src/context-var.ts +168 -0
  1446. package/src/debug.ts +19 -9
  1447. package/src/decode-loader-results.ts +165 -0
  1448. package/src/defer.ts +185 -0
  1449. package/src/deps/ssr.ts +4 -2
  1450. package/src/dev-discovery-protocol.ts +11 -0
  1451. package/src/encode-kv.ts +49 -0
  1452. package/src/errors.ts +149 -3
  1453. package/src/escape-script.ts +52 -0
  1454. package/src/handle.ts +111 -55
  1455. package/src/handles/MetaTags.tsx +83 -59
  1456. package/src/handles/Scripts.tsx +183 -0
  1457. package/src/handles/breadcrumbs.ts +93 -0
  1458. package/src/handles/deferred-resolution.ts +134 -0
  1459. package/src/handles/is-thenable.ts +16 -0
  1460. package/src/handles/meta.ts +44 -53
  1461. package/src/handles/script.ts +244 -0
  1462. package/src/host/cookie-handler.ts +20 -65
  1463. package/src/host/errors.ts +21 -30
  1464. package/src/host/index.ts +13 -9
  1465. package/src/host/pattern-matcher.ts +50 -79
  1466. package/src/host/router.ts +151 -121
  1467. package/src/host/testing.ts +45 -32
  1468. package/src/host/types.ts +52 -11
  1469. package/src/host/utils.ts +2 -2
  1470. package/src/href-client.ts +236 -31
  1471. package/src/index.rsc.ts +252 -20
  1472. package/src/index.ts +343 -30
  1473. package/src/internal-debug.ts +12 -0
  1474. package/src/loader-redirect.tsx +64 -0
  1475. package/src/loader-store.ts +500 -0
  1476. package/src/loader.rsc.ts +39 -163
  1477. package/src/loader.ts +31 -13
  1478. package/src/missing-id-error.ts +68 -0
  1479. package/src/outlet-context.ts +21 -1
  1480. package/src/outlet-provider.tsx +59 -0
  1481. package/src/prerender/build-shell-capture.ts +453 -0
  1482. package/src/prerender/param-hash.ts +37 -0
  1483. package/src/prerender/shell-manifest-key.ts +20 -0
  1484. package/src/prerender/store.ts +195 -0
  1485. package/src/prerender.ts +592 -0
  1486. package/src/redirect-origin.ts +172 -0
  1487. package/src/regex-escape.ts +8 -0
  1488. package/src/render-error-thrower.tsx +20 -0
  1489. package/src/response-utils.ts +62 -0
  1490. package/src/reverse.ts +380 -0
  1491. package/src/root-error-boundary.tsx +42 -48
  1492. package/src/route-content-wrapper.tsx +123 -78
  1493. package/src/route-definition/dsl-helpers.ts +1150 -0
  1494. package/src/route-definition/helper-factories.ts +88 -0
  1495. package/src/route-definition/helpers-types.ts +522 -0
  1496. package/src/route-definition/index.ts +54 -0
  1497. package/src/route-definition/redirect.ts +133 -0
  1498. package/src/route-definition/resolve-handler-use.ts +160 -0
  1499. package/src/route-definition/use-item-types.ts +29 -0
  1500. package/src/route-definition.ts +1 -1428
  1501. package/src/route-map-builder.ts +249 -127
  1502. package/src/route-name.ts +53 -0
  1503. package/src/route-types.ts +87 -45
  1504. package/src/router/basename.ts +14 -0
  1505. package/src/router/content-negotiation.ts +305 -0
  1506. package/src/router/debug-manifest.ts +72 -0
  1507. package/src/router/error-handling.ts +119 -38
  1508. package/src/router/find-match.ts +259 -0
  1509. package/src/router/handler-context.ts +439 -86
  1510. package/src/router/instrument.ts +401 -0
  1511. package/src/router/intercept-resolution.ts +479 -0
  1512. package/src/router/lazy-includes.ts +261 -0
  1513. package/src/router/loader-resolution.ts +714 -142
  1514. package/src/router/logging.ts +245 -0
  1515. package/src/router/manifest.ts +225 -63
  1516. package/src/router/match-api.ts +591 -0
  1517. package/src/router/match-context.ts +5 -25
  1518. package/src/router/match-handlers.ts +537 -0
  1519. package/src/router/match-middleware/background-revalidation.ts +128 -97
  1520. package/src/router/match-middleware/cache-lookup.ts +537 -73
  1521. package/src/router/match-middleware/cache-store.ts +214 -60
  1522. package/src/router/match-middleware/intercept-resolution.ts +56 -38
  1523. package/src/router/match-middleware/segment-resolution.ts +71 -19
  1524. package/src/router/match-pipelines.ts +11 -87
  1525. package/src/router/match-result.ts +150 -53
  1526. package/src/router/metrics.ts +235 -29
  1527. package/src/router/middleware-types.ts +110 -0
  1528. package/src/router/middleware.ts +526 -441
  1529. package/src/router/navigation-snapshot.ts +173 -0
  1530. package/src/router/params-util.ts +23 -0
  1531. package/src/router/parse-pattern.ts +115 -0
  1532. package/src/router/pattern-matching.ts +348 -149
  1533. package/src/router/prefetch-cache-ttl.ts +51 -0
  1534. package/src/router/prefetch-default.ts +59 -0
  1535. package/src/router/prefetch-limits.ts +37 -0
  1536. package/src/router/prerender-match.ts +592 -0
  1537. package/src/router/preview-match.ts +102 -0
  1538. package/src/router/request-classification.ts +291 -0
  1539. package/src/router/revalidation.ts +252 -90
  1540. package/src/router/route-snapshot.ts +256 -0
  1541. package/src/router/route-trie-builder.ts +334 -0
  1542. package/src/router/router-context.ts +45 -48
  1543. package/src/router/router-interfaces.ts +614 -0
  1544. package/src/router/router-options.ts +842 -0
  1545. package/src/router/router-registry.ts +21 -0
  1546. package/src/router/segment-resolution/fresh.ts +879 -0
  1547. package/src/router/segment-resolution/helpers.ts +346 -0
  1548. package/src/router/segment-resolution/loader-cache.ts +368 -0
  1549. package/src/router/segment-resolution/loader-mask.ts +60 -0
  1550. package/src/router/segment-resolution/loader-snapshot.ts +259 -0
  1551. package/src/router/segment-resolution/mask-nested.ts +99 -0
  1552. package/src/router/segment-resolution/revalidation.ts +1376 -0
  1553. package/src/router/segment-resolution/static-store.ts +107 -0
  1554. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  1555. package/src/router/segment-resolution/view-transition-default.ts +60 -0
  1556. package/src/router/segment-resolution.ts +25 -0
  1557. package/src/router/segment-wrappers.ts +292 -0
  1558. package/src/router/state-cookie-name.ts +33 -0
  1559. package/src/router/substitute-pattern-params.ts +75 -0
  1560. package/src/router/telemetry-otel.ts +270 -0
  1561. package/src/router/telemetry.ts +386 -0
  1562. package/src/router/timeout.ts +179 -0
  1563. package/src/router/tracing.ts +235 -0
  1564. package/src/router/transition-when.ts +76 -0
  1565. package/src/router/trie-matching.ts +351 -0
  1566. package/src/router/types.ts +60 -39
  1567. package/src/router/url-params.ts +57 -0
  1568. package/src/router.ts +911 -4253
  1569. package/src/rsc/capture-queue.ts +218 -0
  1570. package/src/rsc/full-payload.ts +77 -0
  1571. package/src/rsc/handler-context.ts +47 -0
  1572. package/src/rsc/handler.ts +1226 -834
  1573. package/src/rsc/helpers.ts +351 -19
  1574. package/src/rsc/index.ts +2 -25
  1575. package/src/rsc/json-route-result.ts +38 -0
  1576. package/src/rsc/loader-fetch.ts +305 -0
  1577. package/src/rsc/manifest-init.ts +89 -0
  1578. package/src/rsc/nonce.ts +39 -0
  1579. package/src/rsc/origin-guard.ts +155 -0
  1580. package/src/rsc/progressive-enhancement.ts +686 -0
  1581. package/src/rsc/redirect-guard.ts +102 -0
  1582. package/src/rsc/render-pipeline.ts +611 -0
  1583. package/src/rsc/response-cache-serve.ts +259 -0
  1584. package/src/rsc/response-error.ts +104 -0
  1585. package/src/rsc/response-route-handler.ts +221 -0
  1586. package/src/rsc/routine-plan.ts +359 -0
  1587. package/src/rsc/rsc-rendering.ts +1729 -0
  1588. package/src/rsc/runtime-warnings.ts +55 -0
  1589. package/src/rsc/server-action.ts +639 -0
  1590. package/src/rsc/shell-build-manifest.ts +343 -0
  1591. package/src/rsc/shell-capture-constants.ts +45 -0
  1592. package/src/rsc/shell-capture.ts +2135 -0
  1593. package/src/rsc/shell-serve.ts +350 -0
  1594. package/src/rsc/ssr-setup.ts +236 -0
  1595. package/src/rsc/stream-idle.ts +137 -0
  1596. package/src/rsc/transition-gate.ts +86 -0
  1597. package/src/rsc/types.ts +167 -14
  1598. package/src/runtime-env.ts +18 -0
  1599. package/src/search-params.ts +235 -0
  1600. package/src/segment-content-promise.ts +67 -0
  1601. package/src/segment-fragments.ts +165 -0
  1602. package/src/segment-loader-promise.ts +167 -0
  1603. package/src/segment-system.tsx +544 -136
  1604. package/src/serialize.ts +243 -0
  1605. package/src/server/context.ts +741 -90
  1606. package/src/server/cookie-parse.ts +32 -0
  1607. package/src/server/cookie-store.ts +337 -0
  1608. package/src/server/fetchable-loader-store.ts +37 -0
  1609. package/src/server/handle-store.ts +278 -60
  1610. package/src/server/loader-registry.ts +51 -100
  1611. package/src/server/request-context.ts +1296 -161
  1612. package/src/server.ts +38 -128
  1613. package/src/ssr/index.tsx +716 -140
  1614. package/src/ssr/inject-rsc-eager.ts +167 -0
  1615. package/src/ssr/preinit-client-references.ts +106 -0
  1616. package/src/ssr/ssr-root.tsx +305 -0
  1617. package/src/ssr-suspension-warning.ts +67 -0
  1618. package/src/static-handler.ts +139 -0
  1619. package/src/testing/cache-status.ts +162 -0
  1620. package/src/testing/collect-handle.ts +46 -0
  1621. package/src/testing/dispatch.ts +951 -0
  1622. package/src/testing/dom.entry.ts +22 -0
  1623. package/src/testing/e2e/fixture.ts +188 -0
  1624. package/src/testing/e2e/index.ts +147 -0
  1625. package/src/testing/e2e/matchers.ts +35 -0
  1626. package/src/testing/e2e/page-helpers.ts +319 -0
  1627. package/src/testing/e2e/parity.ts +400 -0
  1628. package/src/testing/e2e/server.ts +195 -0
  1629. package/src/testing/flight-matchers.ts +97 -0
  1630. package/src/testing/flight-normalize.ts +11 -0
  1631. package/src/testing/flight-runtime.d.ts +57 -0
  1632. package/src/testing/flight-tree.ts +682 -0
  1633. package/src/testing/flight.entry.ts +52 -0
  1634. package/src/testing/flight.ts +257 -0
  1635. package/src/testing/generated-routes.ts +199 -0
  1636. package/src/testing/index.ts +121 -0
  1637. package/src/testing/internal/context.ts +380 -0
  1638. package/src/testing/internal/flight-client-globals.ts +30 -0
  1639. package/src/testing/internal/seed-vars.ts +54 -0
  1640. package/src/testing/render-handler.ts +371 -0
  1641. package/src/testing/render-route.tsx +667 -0
  1642. package/src/testing/run-loader.ts +423 -0
  1643. package/src/testing/run-middleware.ts +219 -0
  1644. package/src/testing/run-transition-when.ts +197 -0
  1645. package/src/testing/shell-status.ts +206 -0
  1646. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  1647. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  1648. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  1649. package/src/testing/vitest-stubs/version.ts +5 -0
  1650. package/src/testing/vitest.ts +305 -0
  1651. package/src/theme/ThemeProvider.tsx +76 -98
  1652. package/src/theme/ThemeScript.tsx +12 -14
  1653. package/src/theme/constants.ts +57 -15
  1654. package/src/theme/index.ts +3 -20
  1655. package/src/theme/theme-context.ts +5 -35
  1656. package/src/theme/theme-script.ts +43 -39
  1657. package/src/theme/use-theme.ts +0 -3
  1658. package/src/types/boundaries.ts +142 -0
  1659. package/src/types/cache-types.ts +207 -0
  1660. package/src/types/error-types.ts +132 -0
  1661. package/src/types/global-namespace.ts +113 -0
  1662. package/src/types/handler-context.ts +850 -0
  1663. package/src/types/index.ts +82 -0
  1664. package/src/types/loader-types.ts +273 -0
  1665. package/src/types/request-scope.ts +112 -0
  1666. package/src/types/route-config.ts +138 -0
  1667. package/src/types/route-entry.ts +117 -0
  1668. package/src/types/segments.ts +291 -0
  1669. package/src/types.ts +1 -1623
  1670. package/src/urls/include-helper.ts +181 -0
  1671. package/src/urls/include-provider.ts +71 -0
  1672. package/src/urls/index.ts +44 -0
  1673. package/src/urls/path-helper-types.ts +435 -0
  1674. package/src/urls/path-helper.ts +284 -0
  1675. package/src/urls/pattern-types.ts +189 -0
  1676. package/src/urls/response-types.ts +109 -0
  1677. package/src/urls/type-extraction.ts +316 -0
  1678. package/src/urls/urls-function.ts +80 -0
  1679. package/src/urls.ts +1 -802
  1680. package/src/use-loader.tsx +487 -138
  1681. package/src/vercel/index.ts +11 -0
  1682. package/src/vercel/tracing.ts +89 -0
  1683. package/src/vite/debug.ts +185 -0
  1684. package/src/vite/discovery/bundle-postprocess.ts +185 -0
  1685. package/src/vite/discovery/client-urls-projection.ts +322 -0
  1686. package/src/vite/discovery/dev-prerender-cache.ts +117 -0
  1687. package/src/vite/discovery/discover-routers.ts +375 -0
  1688. package/src/vite/discovery/discovery-errors.ts +255 -0
  1689. package/src/vite/discovery/gate-state.ts +171 -0
  1690. package/src/vite/discovery/prerender-collection.ts +494 -0
  1691. package/src/vite/discovery/route-types-writer.ts +214 -0
  1692. package/src/vite/discovery/self-gen-tracking.ts +73 -0
  1693. package/src/vite/discovery/shell-prerender-phase.ts +397 -0
  1694. package/src/vite/discovery/state.ts +215 -0
  1695. package/src/vite/discovery/virtual-module-codegen.ts +342 -0
  1696. package/src/vite/encryption-key.ts +29 -0
  1697. package/src/vite/index.ts +31 -1137
  1698. package/src/vite/inject-client-debug.ts +88 -0
  1699. package/src/vite/plugin-types.ts +336 -0
  1700. package/src/vite/plugins/cjs-to-esm.ts +90 -0
  1701. package/src/vite/plugins/client-ref-dedup.ts +382 -0
  1702. package/src/vite/plugins/client-ref-hashing.ts +118 -0
  1703. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  1704. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1705. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  1706. package/src/vite/{expose-action-id.ts → plugins/expose-action-id.ts} +130 -136
  1707. package/src/vite/plugins/expose-id-utils.ts +332 -0
  1708. package/src/vite/plugins/expose-ids/export-analysis.ts +363 -0
  1709. package/src/vite/plugins/expose-ids/handler-transform.ts +130 -0
  1710. package/src/vite/plugins/expose-ids/loader-transform.ts +64 -0
  1711. package/src/vite/plugins/expose-ids/router-transform.ts +199 -0
  1712. package/src/vite/plugins/expose-ids/types.ts +45 -0
  1713. package/src/vite/plugins/expose-internal-ids.ts +851 -0
  1714. package/src/vite/plugins/performance-tracks.ts +89 -0
  1715. package/src/vite/plugins/refresh-cmd.ts +127 -0
  1716. package/src/vite/plugins/server-ref-hashing.ts +74 -0
  1717. package/src/vite/plugins/server-reference-pattern.ts +10 -0
  1718. package/src/vite/plugins/use-cache-transform.ts +313 -0
  1719. package/src/vite/plugins/vercel-output.ts +384 -0
  1720. package/src/vite/plugins/version-injector.ts +93 -0
  1721. package/src/vite/plugins/version-plugin.ts +271 -0
  1722. package/src/vite/plugins/virtual-entries.ts +286 -0
  1723. package/src/vite/plugins/virtual-stub-plugin.ts +29 -0
  1724. package/src/vite/rango.ts +609 -0
  1725. package/src/vite/router-discovery.ts +2400 -0
  1726. package/src/vite/utils/ast-handler-extract.ts +508 -0
  1727. package/src/vite/utils/banner.ts +36 -0
  1728. package/src/vite/utils/bundle-analysis.ts +132 -0
  1729. package/src/vite/utils/client-chunks.ts +184 -0
  1730. package/src/vite/utils/directive-prologue.ts +40 -0
  1731. package/src/vite/utils/forward-user-plugins.ts +171 -0
  1732. package/src/vite/utils/manifest-utils.ts +12 -0
  1733. package/src/vite/utils/package-resolution.ts +90 -0
  1734. package/src/vite/utils/prerender-utils.ts +268 -0
  1735. package/src/vite/utils/shared-utils.ts +283 -0
  1736. package/CLAUDE.md +0 -43
  1737. package/src/browser/lru-cache.ts +0 -69
  1738. package/src/browser/request-controller.ts +0 -164
  1739. package/src/browser/shallow.ts +0 -35
  1740. package/src/cache/memory-store.ts +0 -253
  1741. package/src/href.ts +0 -255
  1742. package/src/server/route-manifest-cache.ts +0 -173
  1743. package/src/vite/expose-handle-id.ts +0 -209
  1744. package/src/vite/expose-loader-id.ts +0 -426
  1745. package/src/vite/expose-location-state-id.ts +0 -177
  1746. /package/src/vite/{version.d.ts → plugins/version.d.ts} +0 -0
@@ -14,9 +14,37 @@
14
14
  export type HandleData = Record<string, Record<string, unknown[]>>;
15
15
 
16
16
  /**
17
- * Deep clone handle data to create a snapshot.
18
- * @internal
17
+ * Build a HandleData snapshot from a HandleStore using segment ordering.
18
+ * Reads data directly from the store for each segment in order.
19
19
  */
20
+ export function buildHandleSnapshot(
21
+ handleStore: HandleStore,
22
+ segmentOrder: string[],
23
+ ): HandleData {
24
+ const data: HandleData = {};
25
+ for (const segmentId of segmentOrder) {
26
+ const segData = handleStore.getDataForSegment(segmentId);
27
+ for (const handleName in segData) {
28
+ if (!data[handleName]) data[handleName] = {};
29
+ data[handleName][segmentId] = segData[handleName];
30
+ }
31
+ }
32
+ return data;
33
+ }
34
+
35
+ function createLateHandlePushError(
36
+ handleName: string,
37
+ segmentId: string,
38
+ ): Error {
39
+ const error = new Error(
40
+ `Handle "${handleName}" for segment "${segmentId}" was pushed after handle collection completed. ` +
41
+ `This usually means an async JSX subtree suspended and later tried to push a handle during streaming. ` +
42
+ `Push handles from the route/layout handler or during the initial synchronous JSX render instead.`,
43
+ );
44
+ error.name = "LateHandlePushError";
45
+ return error;
46
+ }
47
+
20
48
  function cloneHandleData(data: HandleData): HandleData {
21
49
  const clone: HandleData = {};
22
50
  for (const handleName in data) {
@@ -44,11 +72,46 @@ export interface HandleStore {
44
72
  track<T>(promise: Promise<T>): Promise<T>;
45
73
 
46
74
  /**
47
- * Promise that resolves when all tracked handlers have settled.
48
- * Does not reject - uses Promise.allSettled internally.
75
+ * Signal that no more track() calls will be made.
76
+ * settled will not resolve until seal() is called AND all tracked
77
+ * promises have settled. Calling stream() or getData() auto-seals.
78
+ */
79
+ seal(): void;
80
+
81
+ /**
82
+ * Promise that resolves when the store is sealed AND all tracked
83
+ * handlers have settled.
49
84
  */
50
85
  readonly settled: Promise<void>;
51
86
 
87
+ /**
88
+ * Optional error callback for late streaming-handle failures.
89
+ * Called when push() throws LateHandlePushError (handle pushed after
90
+ * stream completion). Allows the router to surface these errors
91
+ * to onError and telemetry.
92
+ */
93
+ onError?: (error: Error) => void;
94
+
95
+ /**
96
+ * Track a promise on the AUXILIARY (loader) settlement lane. Aux tracking
97
+ * keeps the store OPEN for pushes (a mid-body `ctx.handle(H)(...)` from a
98
+ * streaming loader is legal until this lane drains) WITHOUT joining
99
+ * `settled` — the handler barrier that rendered()-readers, the document
100
+ * handle snapshot, and prerender/cache collection wait on. Two lanes exist
101
+ * because loader bodies stream: joining them to `settled` would block SSR
102
+ * markup and hydration on the slowest loader (ssr-root.tsx and
103
+ * rsc-router.tsx both drain the document handle stream in blocking
104
+ * positions), and would self-deadlock any loader awaiting ctx.rendered().
105
+ */
106
+ trackAuxiliary<T>(promise: Promise<T>): Promise<T>;
107
+
108
+ /**
109
+ * Promise that resolves when the store is sealed AND BOTH lanes (handler +
110
+ * auxiliary) have drained. Late-push legality and default stream completion
111
+ * key on this, not on `settled`.
112
+ */
113
+ readonly fullySettled: Promise<void>;
114
+
52
115
  /**
53
116
  * Push handle data for a specific handle and segment.
54
117
  * Multiple pushes to the same handle/segment accumulate in an array.
@@ -58,18 +121,32 @@ export interface HandleStore {
58
121
 
59
122
  /**
60
123
  * Get all collected handle data after all handlers have settled.
61
- * Returns a promise that waits for `settled`, then returns the data.
62
- * The data may contain unresolved promises which RSC will stream.
63
- * @deprecated Use stream() for progressive updates
124
+ * Waits for `settled` (handler lane), then returns the data at that point.
64
125
  */
65
126
  getData(): Promise<HandleData>;
66
127
 
67
128
  /**
68
129
  * Get an async iterator that yields handle data on each push.
69
- * The iterator completes when all handlers have settled.
130
+ * Completes at the chosen settlement barrier: "fullySettled" (default —
131
+ * nav/action payloads, whose consumer applies each yield progressively) or
132
+ * "settled" (the document lane, whose consumers drain to completion in
133
+ * blocking positions and must not wait on loader bodies).
70
134
  * Each yield contains the full accumulated state (not just the delta).
135
+ * Safe for concurrent consumers (per-consumer version cursor).
136
+ */
137
+ stream(
138
+ until?: "settled" | "fullySettled",
139
+ ): AsyncGenerator<HandleData, void, unknown>;
140
+
141
+ /**
142
+ * Document-lane late channel: yields full-state updates for pushes that
143
+ * land AFTER the handler barrier (streaming loader bodies), completing at
144
+ * fullySettled. Returns without yielding when the auxiliary lane is empty
145
+ * by the time `settled` resolves. The client consumes this post-hydration
146
+ * (rsc-router.tsx) and merges via the same application path as nav-lane
147
+ * progressive handle updates.
71
148
  */
72
- stream(): AsyncGenerator<HandleData, void, unknown>;
149
+ streamLate(): AsyncGenerator<HandleData, void, unknown>;
73
150
 
74
151
  /**
75
152
  * Get handle data for a specific segment (for caching).
@@ -81,7 +158,10 @@ export interface HandleStore {
81
158
  * Replay cached handle data back into the store (for cache hits).
82
159
  * Used to restore handle data when serving cached segments.
83
160
  */
84
- replaySegmentData(segmentId: string, segmentHandles: Record<string, unknown[]>): void;
161
+ replaySegmentData(
162
+ segmentId: string,
163
+ segmentHandles: Record<string, unknown[]>,
164
+ ): void;
85
165
  }
86
166
 
87
167
  /**
@@ -105,47 +185,148 @@ export interface HandleStore {
105
185
  * ```
106
186
  */
107
187
  export function createHandleStore(): HandleStore {
108
- const pending: Promise<unknown>[] = [];
109
188
  const data: HandleData = {};
110
189
 
111
- // Queue for pending emissions and resolver for waiting consumer
112
- let pendingEmissions: HandleData[] = [];
113
- let emissionResolver: (() => void) | null = null;
190
+ // Settlement barriers: `settled` (handler lane) resolves when sealed AND
191
+ // handler inflight === 0. `fullySettled` additionally waits for the
192
+ // auxiliary (loader) lane. seal() signals "no more track() calls"; each
193
+ // track/trackAuxiliary increments its lane's count, each promise settle
194
+ // decrements. Barriers resolve once their conditions are met — even if
195
+ // tracks are added while earlier ones are still in flight.
196
+ let sealed = false;
197
+ let inflightCount = 0;
198
+ let auxInflightCount = 0;
199
+ let drainWaiters: (() => void)[] = [];
200
+ let fullDrainWaiters: (() => void)[] = [];
201
+
202
+ // Swap the waiter list out before resolving: a resolver may synchronously
203
+ // re-await and push onto the fresh list, which must not be drained by this
204
+ // pass. All three waiter lists (drain, full-drain, emission) flush through
205
+ // here so that ordering rule cannot drift between them.
206
+ function flushWaiters(waiters: (() => void)[]): void {
207
+ for (const resolve of waiters) resolve();
208
+ }
209
+
210
+ // Both lanes settle identically — the handler lane (`track`) gates `settled`,
211
+ // the auxiliary loader lane (`trackAuxiliary`) gates `fullySettled`. Shared so
212
+ // neither copy can lose this rule: .then() rather than .finally(), because
213
+ // .finally() re-throws on a NEW branch, producing an unhandled rejection that
214
+ // can crash the process when the tracked promise rejects.
215
+ function trackSettlement<T>(
216
+ promise: Promise<T>,
217
+ release: () => void,
218
+ ): Promise<T> {
219
+ const onSettle = () => {
220
+ release();
221
+ notifyDrain();
222
+ };
223
+ promise.then(onSettle, onSettle);
224
+ return promise;
225
+ }
226
+
227
+ function notifyDrain() {
228
+ if (sealed && inflightCount === 0 && drainWaiters.length > 0) {
229
+ const waiters = drainWaiters;
230
+ drainWaiters = [];
231
+ flushWaiters(waiters);
232
+ }
233
+ if (sealed && inflightCount === 0 && auxInflightCount === 0) {
234
+ if (streamConsumed && !completed) {
235
+ // Late-push guard + stream termination key on FULL drain, so a
236
+ // streaming loader body's ctx.handle() push stays legal until the
237
+ // auxiliary lane empties. Armed only once a stream consumer exists —
238
+ // getData()-only paths (prerender collection) keep their historical
239
+ // no-guard behavior.
240
+ completed = true;
241
+ signalEmission();
242
+ }
243
+ if (fullDrainWaiters.length > 0) {
244
+ const waiters = fullDrainWaiters;
245
+ fullDrainWaiters = [];
246
+ flushWaiters(waiters);
247
+ }
248
+ }
249
+ }
250
+
251
+ function sealInternal() {
252
+ if (sealed) return;
253
+ sealed = true;
254
+ notifyDrain();
255
+ }
256
+
257
+ // Emission versioning. Each push bumps `version`; every stream consumer
258
+ // keeps its own cursor and yields whenever the version advanced past it.
259
+ // Multi-consumer safe (the document "settled" stream and the late channel
260
+ // overlap until the handler barrier): a single dirty bit + single resolver
261
+ // slot would drop wakeups for all but one consumer.
262
+ let version = 0;
263
+ let emissionWaiters: (() => void)[] = [];
114
264
  let completed = false;
265
+ let streamConsumed = false;
115
266
 
116
- // Signal that a new emission is available
267
+ // Wake every waiting consumer (new push or a settlement barrier fired).
117
268
  function signalEmission() {
118
- if (emissionResolver) {
119
- const resolver = emissionResolver;
120
- emissionResolver = null;
121
- resolver();
269
+ if (emissionWaiters.length > 0) {
270
+ const waiters = emissionWaiters;
271
+ emissionWaiters = [];
272
+ flushWaiters(waiters);
122
273
  }
123
274
  }
124
275
 
125
276
  // Wait for the next emission or completion
126
- function waitForEmission(): Promise<void> {
127
- if (pendingEmissions.length > 0 || completed) {
277
+ // Resolve when the consumer's cursor is behind the current version, the
278
+ // given done-flag reader reports termination, or a new signal arrives.
279
+ function waitForEmission(seen: number, isDone: () => boolean): Promise<void> {
280
+ if (version > seen || isDone()) {
128
281
  return Promise.resolve();
129
282
  }
130
283
  return new Promise((resolve) => {
131
- emissionResolver = resolve;
284
+ emissionWaiters.push(resolve);
132
285
  });
133
286
  }
134
287
 
135
288
  return {
136
289
  track<T>(promise: Promise<T>): Promise<T> {
137
- pending.push(promise);
138
- return promise;
290
+ inflightCount++;
291
+ return trackSettlement(promise, () => {
292
+ inflightCount--;
293
+ });
294
+ },
295
+
296
+ trackAuxiliary<T>(promise: Promise<T>): Promise<T> {
297
+ auxInflightCount++;
298
+ return trackSettlement(promise, () => {
299
+ auxInflightCount--;
300
+ });
301
+ },
302
+
303
+ seal() {
304
+ sealInternal();
139
305
  },
140
306
 
141
307
  get settled(): Promise<void> {
142
- if (pending.length === 0) {
308
+ if (sealed && inflightCount === 0) return Promise.resolve();
309
+ return new Promise<void>((resolve) => {
310
+ drainWaiters.push(resolve);
311
+ });
312
+ },
313
+
314
+ get fullySettled(): Promise<void> {
315
+ if (sealed && inflightCount === 0 && auxInflightCount === 0) {
143
316
  return Promise.resolve();
144
317
  }
145
- return Promise.allSettled(pending).then(() => {});
318
+ return new Promise<void>((resolve) => {
319
+ fullDrainWaiters.push(resolve);
320
+ });
146
321
  },
147
322
 
148
323
  push(handleName: string, segmentId: string, value: unknown): void {
324
+ if (completed) {
325
+ const error = createLateHandlePushError(handleName, segmentId);
326
+ if (this.onError) this.onError(error);
327
+ throw error;
328
+ }
329
+
149
330
  if (!data[handleName]) {
150
331
  data[handleName] = {};
151
332
  }
@@ -154,50 +335,85 @@ export function createHandleStore(): HandleStore {
154
335
  }
155
336
  data[handleName][segmentId].push(value);
156
337
 
157
- // Queue a snapshot for emission
158
- pendingEmissions.push(cloneHandleData(data));
338
+ // Bump the version; each consumer's cursor decides when to clone+yield.
339
+ version++;
159
340
  signalEmission();
160
341
  },
161
342
 
162
343
  getData(): Promise<HandleData> {
163
- return this.settled.then(() => data);
344
+ sealInternal();
345
+ return this.settled.then(() => cloneHandleData(data));
164
346
  },
165
347
 
166
- async *stream(): AsyncGenerator<HandleData, void, unknown> {
167
- // Set up completion handler
168
- this.settled.then(() => {
169
- completed = true;
348
+ async *stream(
349
+ until: "settled" | "fullySettled" = "fullySettled",
350
+ ): AsyncGenerator<HandleData, void, unknown> {
351
+ streamConsumed = true;
352
+ sealInternal();
353
+ // Re-evaluate: the store may have been sealed and drained BEFORE this
354
+ // consumer existed (seal() then stream()); sealInternal early-returns
355
+ // then, so the completed flag must be armed here.
356
+ notifyDrain();
357
+
358
+ // Per-consumer termination flag driven by the chosen barrier. The
359
+ // global `completed` (late-push guard) always keys on FULL drain via
360
+ // notifyDrain — a "settled"-scoped consumer finishing does not make
361
+ // later loader pushes illegal.
362
+ let done = false;
363
+ const barrier = until === "settled" ? this.settled : this.fullySettled;
364
+ barrier.then(() => {
365
+ done = true;
170
366
  signalEmission();
171
367
  });
172
368
 
173
- // Initial small delay to batch rapid synchronous pushes
174
- // This allows multiple handles pushing in quick succession to be batched
369
+ // Batch rapid synchronous pushes with initial delay
175
370
  await new Promise((resolve) => setTimeout(resolve, 0));
176
371
 
177
- // If we already have data, yield the accumulated state
178
- if (Object.keys(data).length > 0) {
179
- // Clear pending emissions since we're yielding current state
180
- pendingEmissions = [];
181
- yield cloneHandleData(data);
372
+ let seen = 0;
373
+ while (true) {
374
+ if (version > seen && Object.keys(data).length > 0) {
375
+ seen = version;
376
+ yield cloneHandleData(data);
377
+ }
378
+ if (done) break;
379
+ await waitForEmission(seen, () => done);
182
380
  }
381
+ },
183
382
 
184
- // Continue streaming on each push
185
- while (!completed) {
186
- await waitForEmission();
383
+ async *streamLate(): AsyncGenerator<HandleData, void, unknown> {
384
+ streamConsumed = true;
385
+ sealInternal();
386
+ // Re-evaluate: the store may have been sealed and drained BEFORE this
387
+ // consumer existed (seal() then stream()); sealInternal early-returns
388
+ // then, so the completed flag must be armed here.
389
+ notifyDrain();
187
390
 
188
- // Yield all pending emissions (yield latest only)
189
- if (pendingEmissions.length > 0) {
190
- // Skip intermediate states, yield the latest
191
- const latest = pendingEmissions[pendingEmissions.length - 1];
192
- pendingEmissions = [];
193
- yield latest;
194
- }
391
+ // Skip everything the handler-barrier snapshot already carried; the
392
+ // document consumers (SSR seed + pre-hydration drain) deliver that
393
+ // state. This channel exists only for pushes that land AFTER `settled`
394
+ // streaming loader bodies writing meta/breadcrumbs mid-body.
395
+ await this.settled;
396
+ let seen = version;
397
+ if (auxInflightCount === 0) {
398
+ // Auxiliary lane already drained: every loader push (if any) beat the
399
+ // handler barrier and rode the normal snapshot. Nothing late follows —
400
+ // handler pushes after settled are illegal by contract.
401
+ return;
195
402
  }
196
403
 
197
- // Final yield only if there are pending emissions that weren't yielded
198
- // (handles that pushed after our last yield but before completion)
199
- if (pendingEmissions.length > 0) {
200
- yield cloneHandleData(data);
404
+ let done = false;
405
+ this.fullySettled.then(() => {
406
+ done = true;
407
+ signalEmission();
408
+ });
409
+
410
+ while (true) {
411
+ if (version > seen) {
412
+ seen = version;
413
+ yield cloneHandleData(data);
414
+ }
415
+ if (done) break;
416
+ await waitForEmission(seen, () => done);
201
417
  }
202
418
  },
203
419
 
@@ -211,18 +427,20 @@ export function createHandleStore(): HandleStore {
211
427
  return result;
212
428
  },
213
429
 
214
- replaySegmentData(segmentId: string, segmentHandles: Record<string, unknown[]>): void {
430
+ replaySegmentData(
431
+ segmentId: string,
432
+ segmentHandles: Record<string, unknown[]>,
433
+ ): void {
215
434
  for (const handleName in segmentHandles) {
216
435
  if (!data[handleName]) {
217
436
  data[handleName] = {};
218
437
  }
219
- // Replace with replayed data (not append) to avoid handle bleeding between routes.
220
- // When a cached segment is restored, its handles should replace any existing data
221
- // for that segment, not accumulate on top of data from a different route.
438
+ // Replace (not append) to avoid handle bleeding between routes.
439
+ // Cached segment restoration should replace existing data for that
440
+ // segment, not accumulate on top of data from a different route.
222
441
  data[handleName][segmentId] = [...segmentHandles[handleName]];
223
442
  }
224
- // Trigger emission for streaming
225
- pendingEmissions.push(cloneHandleData(data));
443
+ version++;
226
444
  signalEmission();
227
445
  },
228
446
  };
@@ -6,25 +6,15 @@
6
6
  */
7
7
 
8
8
  import type { LoaderFn } from "../types.js";
9
- import type { MiddlewareFn } from "../router/middleware.js";
10
- import { getFetchableLoader } from "../loader.rsc.js";
9
+ import {
10
+ getFetchableLoader,
11
+ type LoaderRegistryEntry,
12
+ } from "./fetchable-loader-store.js";
11
13
 
12
- interface RegisteredLoader {
13
- fn: LoaderFn<any, any, any>;
14
- middleware: MiddlewareFn[];
15
- }
16
-
17
- // Server-side cache - maps loader $$id to function and middleware
18
- // This is a CACHE populated by getLoaderLazy() when loaders are first accessed.
19
- // The source of truth is fetchableLoaderRegistry in loader.ts, which is populated
20
- // when createLoader() runs. This cache exists to:
21
- // 1. Avoid repeated lookups/imports for the same loader
22
- // 2. Support lazy loading in production (loaders imported on-demand)
23
- // 3. Provide a stable reference for the RSC handler
24
- const loaderRegistry = new Map<string, RegisteredLoader>();
14
+ // Cache populated by getLoaderLazy() when loaders are first accessed.
15
+ // Source of truth is fetchableLoaderRegistry in loader.ts (populated on createLoader).
16
+ const loaderRegistry = new Map<string, LoaderRegistryEntry>();
25
17
 
26
- // Lazy import map - set by the loader manifest
27
- // Maps loader $$id to a function that imports the loader module
28
18
  type LazyLoaderImport = () => Promise<{ $$id: string }>;
29
19
  let lazyLoaderImports: Map<string, LazyLoaderImport> | null = null;
30
20
 
@@ -32,35 +22,11 @@ let lazyLoaderImports: Map<string, LazyLoaderImport> | null = null;
32
22
  * Set the lazy loader imports map (called by the loader manifest)
33
23
  */
34
24
  export function setLoaderImports(
35
- imports: Record<string, LazyLoaderImport>
25
+ imports: Record<string, LazyLoaderImport>,
36
26
  ): void {
37
27
  lazyLoaderImports = new Map(Object.entries(imports));
38
28
  }
39
29
 
40
- /**
41
- * Register a fetchable loader by $$id
42
- * Called by createLoader when fetchable option is provided
43
- */
44
- export function registerLoader(
45
- id: string,
46
- fn: LoaderFn<any, any, any>,
47
- middleware: MiddlewareFn[] = []
48
- ): void {
49
- if (loaderRegistry.has(id)) {
50
- // Already registered (can happen during HMR)
51
- return;
52
- }
53
- loaderRegistry.set(id, { fn, middleware });
54
- }
55
-
56
- /**
57
- * Get a registered loader by $$id (synchronous)
58
- * Returns undefined if loader is not registered
59
- */
60
- export function getLoader(id: string): RegisteredLoader | undefined {
61
- return loaderRegistry.get(id);
62
- }
63
-
64
30
  /**
65
31
  * Get a loader by $$id, loading it lazily if needed
66
32
  * This is the primary method for the RSC handler to get loaders
@@ -69,81 +35,69 @@ export function getLoader(id: string): RegisteredLoader | undefined {
69
35
  * In dev: IDs are "filePath#exportName", resolved via dynamic import
70
36
  */
71
37
  export async function getLoaderLazy(
72
- id: string
73
- ): Promise<RegisteredLoader | undefined> {
74
- // Check if already cached in main registry
75
- const existing = loaderRegistry.get(id);
76
- if (existing) {
77
- return existing;
78
- }
79
-
80
- // Check the fetchable loader registry (populated by createLoader)
38
+ id: string,
39
+ ): Promise<LoaderRegistryEntry | undefined> {
40
+ // Check fetchableLoaderRegistry first it's the source of truth.
41
+ // createLoader() updates it on HMR, ensuring fresh functions after file changes.
81
42
  const fetchable = getFetchableLoader(id);
82
43
  if (fetchable) {
83
- // Cache in main registry for future requests
84
44
  loaderRegistry.set(id, fetchable);
85
45
  return fetchable;
86
46
  }
87
47
 
88
- // Try to lazy load from the import map (production mode)
48
+ const existing = loaderRegistry.get(id);
49
+ if (existing) {
50
+ return existing;
51
+ }
52
+
89
53
  if (lazyLoaderImports && lazyLoaderImports.size > 0) {
90
54
  const lazyImport = lazyLoaderImports.get(id);
91
55
  if (lazyImport) {
92
- try {
93
- // Import the loader module - this triggers createLoader which registers fn
94
- await lazyImport();
56
+ // A failed import is a real server breakage (broken transitive import,
57
+ // syntax error, throw in module top-level code), not a "loader not
58
+ // registered" case. Rethrow so the caller can return a 500 and route
59
+ // the failure through onError, instead of collapsing it to a 404.
60
+ await lazyImport();
95
61
 
96
- // Now try to get from fetchable registry (createLoader registered it)
97
- const registered = getFetchableLoader(id);
98
- if (registered) {
99
- loaderRegistry.set(id, registered);
100
- return registered;
101
- }
102
- } catch (error) {
103
- console.error(`[LoaderRegistry] Failed to load loader "${id}":`, error);
62
+ const registered = getFetchableLoader(id);
63
+ if (registered) {
64
+ loaderRegistry.set(id, registered);
65
+ return registered;
104
66
  }
105
67
  }
106
68
  }
107
69
 
108
- // Dev mode fallback: parse the ID and use Vite's dynamic import
109
- // ID format in dev: "src/path/to/file.ts#ExportName"
70
+ // The remaining dev fallback (parse the id as "src/path/file.ts#ExportName"
71
+ // and import it by path) only makes sense in dev, where ids ARE file paths
72
+ // and the dev loader manifest is intentionally empty. In production ids are
73
+ // hashed ("<hash>#ExportName") and every resolvable loader is reached above
74
+ // via the in-memory registry or the lazy import manifest. The hash is not a
75
+ // path, so a production fall-through would run import("/<hash>") and throw a
76
+ // misleading "No such module <hash>" 500 instead of reporting the loader as
77
+ // unregistered. Return undefined in production so a genuinely unknown loader
78
+ // is a clean 404 "not found in registry" from handleLoaderFetch.
79
+ if (process.env.NODE_ENV === "production") {
80
+ return undefined;
81
+ }
82
+
110
83
  const hashIndex = id.indexOf("#");
111
84
  if (hashIndex !== -1) {
112
85
  const filePath = id.slice(0, hashIndex);
113
86
 
114
- try {
115
- // In dev mode, Vite handles dynamic imports
116
- // Just importing the module triggers createLoader which registers the fn
117
- await import(/* @vite-ignore */ `/${filePath}`);
87
+ // Same as the lazy branch: a thrown import is a server error, not a
88
+ // not-found. Let it propagate to the caller for a 500 + onError.
89
+ await import(/* @vite-ignore */ `/${filePath}`);
118
90
 
119
- // Now try to get from fetchable registry
120
- const registered = getFetchableLoader(id);
121
- if (registered) {
122
- loaderRegistry.set(id, registered);
123
- return registered;
124
- }
125
- } catch (error) {
126
- console.error(`[LoaderRegistry] Failed to load loader "${id}":`, error);
91
+ const registered = getFetchableLoader(id);
92
+ if (registered) {
93
+ loaderRegistry.set(id, registered);
94
+ return registered;
127
95
  }
128
96
  }
129
97
 
130
98
  return undefined;
131
99
  }
132
100
 
133
- /**
134
- * Check if a loader is registered by $$id
135
- */
136
- export function hasLoader(id: string): boolean {
137
- return loaderRegistry.has(id) || getFetchableLoader(id) !== undefined;
138
- }
139
-
140
- /**
141
- * Get all registered loader IDs (for debugging)
142
- */
143
- export function getRegisteredLoaderIds(): string[] {
144
- return Array.from(loaderRegistry.keys());
145
- }
146
-
147
101
  /**
148
102
  * Register a loader by its $$id (injected by Vite plugin)
149
103
  * This is called during module loading to cache loaders
@@ -155,20 +109,17 @@ export function registerLoaderById(loader: {
155
109
  if (!loader.$$id) {
156
110
  return;
157
111
  }
158
- if (loaderRegistry.has(loader.$$id)) {
159
- // Already registered (can happen during HMR)
160
- return;
161
- }
162
-
163
- // For fetchable loaders, fn is stored in the fetchable registry by $$id
164
112
  const fetchable = getFetchableLoader(loader.$$id);
165
113
  if (fetchable) {
166
114
  loaderRegistry.set(loader.$$id, fetchable);
167
115
  return;
168
116
  }
169
117
 
170
- // Fall back to using fn from the loader object (non-fetchable loaders)
171
118
  if (loader.fn) {
172
- loaderRegistry.set(loader.$$id, { fn: loader.fn, middleware: [] });
119
+ loaderRegistry.set(loader.$$id, {
120
+ fn: loader.fn,
121
+ middleware: [],
122
+ fetchable: false,
123
+ });
173
124
  }
174
125
  }