@rangojs/router 0.0.0-experimental.11 → 0.0.0-experimental.110

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 (1140) hide show
  1. package/AGENTS.md +9 -0
  2. package/README.md +1037 -4
  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 +1635 -158
  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/dist/browser/react/use-client-cache.js +39 -0
  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/dist/handles/index.js +6 -0
  358. package/dist/handles/index.js.map +1 -0
  359. package/dist/handles/meta.d.ts +39 -0
  360. package/dist/handles/meta.d.ts.map +1 -0
  361. package/dist/handles/meta.js +202 -0
  362. package/dist/handles/meta.js.map +1 -0
  363. package/dist/host/__tests__/errors.test.d.ts +2 -0
  364. package/dist/host/__tests__/errors.test.d.ts.map +1 -0
  365. package/dist/host/__tests__/errors.test.js +76 -0
  366. package/dist/host/__tests__/errors.test.js.map +1 -0
  367. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +2 -0
  368. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +1 -0
  369. package/dist/host/__tests__/pattern-comprehensive.test.js +732 -0
  370. package/dist/host/__tests__/pattern-comprehensive.test.js.map +1 -0
  371. package/dist/host/__tests__/pattern-matcher.test.d.ts +2 -0
  372. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +1 -0
  373. package/dist/host/__tests__/pattern-matcher.test.js +251 -0
  374. package/dist/host/__tests__/pattern-matcher.test.js.map +1 -0
  375. package/dist/host/__tests__/router.test.d.ts +2 -0
  376. package/dist/host/__tests__/router.test.d.ts.map +1 -0
  377. package/dist/host/__tests__/router.test.js +241 -0
  378. package/dist/host/__tests__/router.test.js.map +1 -0
  379. package/dist/host/__tests__/testing.test.d.ts +2 -0
  380. package/dist/host/__tests__/testing.test.d.ts.map +1 -0
  381. package/dist/host/__tests__/testing.test.js +64 -0
  382. package/dist/host/__tests__/testing.test.js.map +1 -0
  383. package/dist/host/__tests__/utils.test.d.ts +2 -0
  384. package/dist/host/__tests__/utils.test.d.ts.map +1 -0
  385. package/dist/host/__tests__/utils.test.js +29 -0
  386. package/dist/host/__tests__/utils.test.js.map +1 -0
  387. package/dist/host/cookie-handler.d.ts +34 -0
  388. package/dist/host/cookie-handler.d.ts.map +1 -0
  389. package/dist/host/cookie-handler.js +124 -0
  390. package/dist/host/cookie-handler.js.map +1 -0
  391. package/dist/host/errors.d.ts +56 -0
  392. package/dist/host/errors.d.ts.map +1 -0
  393. package/dist/host/errors.js +79 -0
  394. package/dist/host/errors.js.map +1 -0
  395. package/dist/host/index.d.ts +29 -0
  396. package/dist/host/index.d.ts.map +1 -0
  397. package/dist/host/index.js +32 -0
  398. package/dist/host/index.js.map +1 -0
  399. package/dist/host/pattern-matcher.d.ts +36 -0
  400. package/dist/host/pattern-matcher.d.ts.map +1 -0
  401. package/dist/host/pattern-matcher.js +172 -0
  402. package/dist/host/pattern-matcher.js.map +1 -0
  403. package/dist/host/router.d.ts +26 -0
  404. package/dist/host/router.d.ts.map +1 -0
  405. package/dist/host/router.js +218 -0
  406. package/dist/host/router.js.map +1 -0
  407. package/dist/host/testing.d.ts +36 -0
  408. package/dist/host/testing.d.ts.map +1 -0
  409. package/dist/host/testing.js +55 -0
  410. package/dist/host/testing.js.map +1 -0
  411. package/dist/host/types.d.ts +115 -0
  412. package/dist/host/types.d.ts.map +1 -0
  413. package/dist/host/types.js +7 -0
  414. package/dist/host/types.js.map +1 -0
  415. package/dist/host/utils.d.ts +21 -0
  416. package/dist/host/utils.d.ts.map +1 -0
  417. package/dist/host/utils.js +23 -0
  418. package/dist/host/utils.js.map +1 -0
  419. package/dist/href-client.d.ts +131 -0
  420. package/dist/href-client.d.ts.map +1 -0
  421. package/dist/href-client.js +64 -0
  422. package/dist/href-client.js.map +1 -0
  423. package/{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/dist/network-error-thrower.d.ts +17 -0
  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/theme/ThemeProvider.d.ts +20 -0
  712. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  713. package/dist/theme/ThemeProvider.js +240 -0
  714. package/dist/theme/ThemeProvider.js.map +1 -0
  715. package/dist/theme/ThemeScript.d.ts +48 -0
  716. package/dist/theme/ThemeScript.d.ts.map +1 -0
  717. package/dist/theme/ThemeScript.js +13 -0
  718. package/dist/theme/ThemeScript.js.map +1 -0
  719. package/dist/theme/__tests__/theme.test.d.ts +2 -0
  720. package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
  721. package/dist/theme/__tests__/theme.test.js +103 -0
  722. package/dist/theme/__tests__/theme.test.js.map +1 -0
  723. package/dist/theme/constants.d.ts +29 -0
  724. package/dist/theme/constants.d.ts.map +1 -0
  725. package/dist/theme/constants.js +48 -0
  726. package/dist/theme/constants.js.map +1 -0
  727. package/dist/theme/index.d.ts +31 -0
  728. package/dist/theme/index.d.ts.map +1 -0
  729. package/dist/theme/index.js +36 -0
  730. package/dist/theme/index.js.map +1 -0
  731. package/dist/theme/theme-context.d.ts +40 -0
  732. package/dist/theme/theme-context.d.ts.map +1 -0
  733. package/dist/theme/theme-context.js +60 -0
  734. package/dist/theme/theme-context.js.map +1 -0
  735. package/dist/theme/theme-script.d.ts +27 -0
  736. package/dist/theme/theme-script.d.ts.map +1 -0
  737. package/dist/theme/theme-script.js +147 -0
  738. package/dist/theme/theme-script.js.map +1 -0
  739. package/dist/theme/types.d.ts +163 -0
  740. package/dist/theme/types.d.ts.map +1 -0
  741. package/dist/theme/types.js +11 -0
  742. package/dist/theme/types.js.map +1 -0
  743. package/dist/theme/use-theme.d.ts +12 -0
  744. package/dist/theme/use-theme.d.ts.map +1 -0
  745. package/dist/theme/use-theme.js +40 -0
  746. package/dist/theme/use-theme.js.map +1 -0
  747. package/dist/types.d.ts +1479 -0
  748. package/dist/types.d.ts.map +1 -0
  749. package/dist/types.js +10 -0
  750. package/dist/types.js.map +1 -0
  751. package/dist/urls.d.ts +441 -0
  752. package/dist/urls.d.ts.map +1 -0
  753. package/dist/urls.gen.d.ts +8 -0
  754. package/dist/urls.gen.d.ts.map +1 -0
  755. package/dist/urls.gen.js +8 -0
  756. package/dist/urls.gen.js.map +1 -0
  757. package/dist/urls.js +443 -0
  758. package/dist/urls.js.map +1 -0
  759. package/dist/use-loader.d.ts +127 -0
  760. package/dist/use-loader.d.ts.map +1 -0
  761. package/dist/use-loader.js +237 -0
  762. package/dist/use-loader.js.map +1 -0
  763. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +2 -0
  764. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +1 -0
  765. package/dist/vite/__tests__/ast-handler-extract.test.js +294 -0
  766. package/dist/vite/__tests__/ast-handler-extract.test.js.map +1 -0
  767. package/dist/vite/__tests__/expose-id-utils.test.d.ts +2 -0
  768. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +1 -0
  769. package/dist/vite/__tests__/expose-id-utils.test.js +224 -0
  770. package/dist/vite/__tests__/expose-id-utils.test.js.map +1 -0
  771. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +2 -0
  772. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +1 -0
  773. package/dist/vite/__tests__/expose-internal-ids.test.js +647 -0
  774. package/dist/vite/__tests__/expose-internal-ids.test.js.map +1 -0
  775. package/dist/vite/__tests__/expose-router-id.test.d.ts +2 -0
  776. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +1 -0
  777. package/dist/vite/__tests__/expose-router-id.test.js +39 -0
  778. package/dist/vite/__tests__/expose-router-id.test.js.map +1 -0
  779. package/dist/vite/ast-handler-extract.d.ts +49 -0
  780. package/dist/vite/ast-handler-extract.d.ts.map +1 -0
  781. package/dist/vite/ast-handler-extract.js +249 -0
  782. package/dist/vite/ast-handler-extract.js.map +1 -0
  783. package/dist/vite/expose-action-id.d.ts +19 -0
  784. package/dist/vite/expose-action-id.d.ts.map +1 -0
  785. package/dist/vite/expose-action-id.js +250 -0
  786. package/dist/vite/expose-action-id.js.map +1 -0
  787. package/dist/vite/expose-id-utils.d.ts +69 -0
  788. package/dist/vite/expose-id-utils.d.ts.map +1 -0
  789. package/dist/vite/expose-id-utils.js +289 -0
  790. package/dist/vite/expose-id-utils.js.map +1 -0
  791. package/dist/vite/expose-internal-ids.d.ts +22 -0
  792. package/dist/vite/expose-internal-ids.d.ts.map +1 -0
  793. package/dist/vite/expose-internal-ids.js +886 -0
  794. package/dist/vite/expose-internal-ids.js.map +1 -0
  795. package/dist/vite/index.d.ts +149 -0
  796. package/dist/vite/index.d.ts.map +1 -0
  797. package/dist/vite/index.js +6148 -2425
  798. package/dist/vite/index.js.bak +5448 -0
  799. package/dist/vite/index.js.map +1 -0
  800. package/dist/vite/index.named-routes.gen.ts +103 -0
  801. package/dist/vite/package-resolution.d.ts +43 -0
  802. package/dist/vite/package-resolution.d.ts.map +1 -0
  803. package/{src/vite/package-resolution.ts → dist/vite/package-resolution.js} +53 -66
  804. package/dist/vite/package-resolution.js.map +1 -0
  805. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  806. package/dist/vite/virtual-entries.d.ts +25 -0
  807. package/dist/vite/virtual-entries.d.ts.map +1 -0
  808. package/{src/vite/virtual-entries.ts → dist/vite/virtual-entries.js} +12 -16
  809. package/dist/vite/virtual-entries.js.map +1 -0
  810. package/package.json +73 -66
  811. package/skills/breadcrumbs/SKILL.md +252 -0
  812. package/skills/bundle-analysis/SKILL.md +159 -0
  813. package/skills/cache-guide/SKILL.md +473 -0
  814. package/skills/caching/SKILL.md +94 -24
  815. package/skills/composability/SKILL.md +197 -0
  816. package/skills/debug-manifest/SKILL.md +12 -8
  817. package/skills/document-cache/SKILL.md +18 -16
  818. package/skills/fonts/SKILL.md +6 -4
  819. package/skills/handler-use/SKILL.md +364 -0
  820. package/skills/hooks/SKILL.md +524 -71
  821. package/skills/host-router/SKILL.md +243 -0
  822. package/skills/i18n/SKILL.md +276 -0
  823. package/skills/intercept/SKILL.md +173 -8
  824. package/skills/layout/SKILL.md +123 -5
  825. package/skills/links/SKILL.md +316 -25
  826. package/skills/loader/SKILL.md +620 -50
  827. package/skills/middleware/SKILL.md +211 -37
  828. package/skills/migrate-nextjs/SKILL.md +562 -0
  829. package/skills/migrate-react-router/SKILL.md +769 -0
  830. package/skills/mime-routes/SKILL.md +42 -11
  831. package/skills/observability/SKILL.md +137 -0
  832. package/skills/parallel/SKILL.md +271 -3
  833. package/skills/prerender/SKILL.md +448 -63
  834. package/skills/rango/SKILL.md +273 -21
  835. package/skills/response-routes/SKILL.md +210 -100
  836. package/skills/route/SKILL.md +310 -14
  837. package/skills/router-setup/SKILL.md +211 -33
  838. package/skills/server-actions/SKILL.md +751 -0
  839. package/skills/streams-and-websockets/SKILL.md +283 -0
  840. package/skills/theme/SKILL.md +9 -8
  841. package/skills/typesafety/SKILL.md +622 -91
  842. package/skills/use-cache/SKILL.md +324 -0
  843. package/skills/view-transitions/SKILL.md +212 -0
  844. package/src/__augment-tests__/augment.ts +81 -0
  845. package/src/__augment-tests__/augmented.check.ts +117 -0
  846. package/src/__internal.ts +102 -4
  847. package/src/bin/rango.ts +312 -15
  848. package/src/browser/action-coordinator.ts +97 -0
  849. package/src/browser/action-response-classifier.ts +99 -0
  850. package/src/browser/app-shell.ts +52 -0
  851. package/src/browser/app-version.ts +14 -0
  852. package/src/browser/event-controller.ts +136 -68
  853. package/src/browser/history-state.ts +101 -0
  854. package/src/browser/index.ts +3 -3
  855. package/src/browser/intercept-utils.ts +52 -0
  856. package/src/browser/link-interceptor.ts +24 -4
  857. package/src/browser/logging.ts +55 -0
  858. package/src/browser/merge-segment-loaders.ts +20 -12
  859. package/src/browser/navigation-bridge.ts +370 -561
  860. package/src/browser/navigation-client.ts +228 -70
  861. package/src/browser/navigation-store.ts +97 -55
  862. package/src/browser/navigation-transaction.ts +293 -0
  863. package/src/browser/network-error-handler.ts +61 -0
  864. package/src/browser/partial-update.ts +376 -315
  865. package/src/browser/prefetch/cache.ts +314 -0
  866. package/src/browser/prefetch/fetch.ts +282 -0
  867. package/src/browser/prefetch/observer.ts +65 -0
  868. package/src/browser/prefetch/policy.ts +48 -0
  869. package/src/browser/prefetch/queue.ts +191 -0
  870. package/src/browser/prefetch/resource-ready.ts +77 -0
  871. package/src/browser/rango-state.ts +152 -0
  872. package/src/browser/react/Link.tsx +255 -71
  873. package/src/browser/react/NavigationProvider.tsx +152 -24
  874. package/src/browser/react/context.ts +11 -0
  875. package/src/browser/react/filter-segment-order.ts +55 -0
  876. package/src/browser/react/index.ts +15 -12
  877. package/src/browser/react/location-state-shared.ts +176 -53
  878. package/src/browser/react/location-state.ts +90 -19
  879. package/src/browser/react/mount-context.ts +6 -1
  880. package/src/browser/react/nonce-context.ts +23 -0
  881. package/src/browser/react/shallow-equal.ts +27 -0
  882. package/src/browser/react/use-action.ts +29 -51
  883. package/src/browser/react/use-client-cache.ts +5 -3
  884. package/src/browser/react/use-handle.ts +41 -123
  885. package/src/browser/react/use-link-status.ts +6 -5
  886. package/src/browser/react/use-navigation.ts +44 -65
  887. package/src/browser/react/use-params.ts +78 -0
  888. package/src/browser/react/use-pathname.ts +47 -0
  889. package/src/browser/react/use-reverse.ts +99 -0
  890. package/src/browser/react/use-router.ts +96 -0
  891. package/src/browser/react/use-search-params.ts +56 -0
  892. package/src/browser/react/use-segments.ts +85 -99
  893. package/src/browser/response-adapter.ts +73 -0
  894. package/src/browser/rsc-router.tsx +254 -72
  895. package/src/browser/scroll-restoration.ts +132 -49
  896. package/src/browser/segment-reconciler.ts +243 -0
  897. package/src/browser/segment-structure-assert.ts +17 -1
  898. package/src/browser/server-action-bridge.ts +510 -603
  899. package/src/browser/shallow.ts +6 -1
  900. package/src/browser/types.ts +158 -48
  901. package/src/browser/validate-redirect-origin.ts +29 -0
  902. package/src/build/generate-manifest.ts +87 -26
  903. package/src/build/generate-route-types.ts +39 -828
  904. package/src/build/index.ts +2 -5
  905. package/src/build/route-trie.ts +84 -31
  906. package/src/build/route-types/ast-helpers.ts +25 -0
  907. package/src/build/route-types/ast-route-extraction.ts +98 -0
  908. package/src/build/route-types/codegen.ts +102 -0
  909. package/src/build/route-types/include-resolution.ts +418 -0
  910. package/src/build/route-types/param-extraction.ts +48 -0
  911. package/src/build/route-types/per-module-writer.ts +128 -0
  912. package/src/build/route-types/router-processing.ts +618 -0
  913. package/src/build/route-types/scan-filter.ts +85 -0
  914. package/src/build/runtime-discovery.ts +231 -0
  915. package/src/cache/background-task.ts +34 -0
  916. package/src/cache/cache-key-utils.ts +44 -0
  917. package/src/cache/cache-policy.ts +125 -0
  918. package/src/cache/cache-runtime.ts +342 -0
  919. package/src/cache/cache-scope.ts +167 -307
  920. package/src/cache/cf/cf-cache-store.ts +573 -21
  921. package/src/cache/cf/index.ts +13 -3
  922. package/src/cache/document-cache.ts +116 -77
  923. package/src/cache/handle-capture.ts +81 -0
  924. package/src/cache/handle-snapshot.ts +41 -0
  925. package/src/cache/index.ts +1 -15
  926. package/src/cache/memory-segment-store.ts +191 -13
  927. package/src/cache/profile-registry.ts +73 -0
  928. package/src/cache/read-through-swr.ts +134 -0
  929. package/src/cache/segment-codec.ts +256 -0
  930. package/src/cache/taint.ts +153 -0
  931. package/src/cache/types.ts +72 -122
  932. package/src/client.rsc.tsx +6 -1
  933. package/src/client.tsx +117 -303
  934. package/src/component-utils.ts +4 -4
  935. package/src/components/DefaultDocument.tsx +5 -1
  936. package/src/context-var.ts +156 -0
  937. package/src/debug.ts +19 -9
  938. package/src/errors.ts +78 -8
  939. package/src/handle.ts +56 -11
  940. package/src/handles/MetaTags.tsx +73 -20
  941. package/src/handles/breadcrumbs.ts +66 -0
  942. package/src/handles/index.ts +1 -0
  943. package/src/handles/meta.ts +30 -13
  944. package/src/host/cookie-handler.ts +21 -15
  945. package/src/host/errors.ts +8 -8
  946. package/src/host/index.ts +6 -9
  947. package/src/host/pattern-matcher.ts +27 -27
  948. package/src/host/router.ts +176 -82
  949. package/src/host/testing.ts +8 -8
  950. package/src/host/types.ts +46 -9
  951. package/src/host/utils.ts +2 -2
  952. package/src/href-client.ts +196 -56
  953. package/src/index.rsc.ts +140 -22
  954. package/src/index.ts +214 -53
  955. package/src/internal-debug.ts +11 -0
  956. package/src/loader-store.ts +463 -0
  957. package/src/loader.rsc.ts +25 -143
  958. package/src/loader.ts +27 -10
  959. package/src/network-error-thrower.tsx +3 -1
  960. package/src/outlet-context.ts +1 -1
  961. package/src/outlet-provider.tsx +45 -0
  962. package/src/prerender/param-hash.ts +4 -2
  963. package/src/prerender/store.ts +122 -17
  964. package/src/prerender.ts +397 -29
  965. package/src/response-utils.ts +28 -0
  966. package/src/reverse.ts +231 -121
  967. package/src/root-error-boundary.tsx +41 -29
  968. package/src/route-content-wrapper.tsx +7 -4
  969. package/src/route-definition/dsl-helpers.ts +1134 -0
  970. package/src/route-definition/helper-factories.ts +200 -0
  971. package/src/route-definition/helpers-types.ts +485 -0
  972. package/src/route-definition/index.ts +55 -0
  973. package/src/route-definition/redirect.ts +101 -0
  974. package/src/route-definition/resolve-handler-use.ts +155 -0
  975. package/src/route-definition.ts +1 -1431
  976. package/src/route-map-builder.ts +162 -123
  977. package/src/route-name.ts +53 -0
  978. package/src/route-types.ts +64 -9
  979. package/src/router/content-negotiation.ts +215 -0
  980. package/src/router/debug-manifest.ts +72 -0
  981. package/src/router/error-handling.ts +10 -10
  982. package/src/router/find-match.ts +160 -0
  983. package/src/router/handler-context.ts +376 -109
  984. package/src/router/intercept-resolution.ts +35 -20
  985. package/src/router/lazy-includes.ts +237 -0
  986. package/src/router/loader-resolution.ts +330 -145
  987. package/src/router/logging.ts +251 -0
  988. package/src/router/manifest.ts +70 -22
  989. package/src/router/match-api.ts +196 -261
  990. package/src/router/match-context.ts +4 -2
  991. package/src/router/match-handlers.ts +441 -0
  992. package/src/router/match-middleware/background-revalidation.ts +108 -93
  993. package/src/router/match-middleware/cache-lookup.ts +414 -91
  994. package/src/router/match-middleware/cache-store.ts +91 -29
  995. package/src/router/match-middleware/intercept-resolution.ts +48 -21
  996. package/src/router/match-middleware/segment-resolution.ts +73 -9
  997. package/src/router/match-pipelines.ts +10 -45
  998. package/src/router/match-result.ts +154 -35
  999. package/src/router/metrics.ts +241 -16
  1000. package/src/router/middleware-cookies.ts +55 -0
  1001. package/src/router/middleware-types.ts +209 -0
  1002. package/src/router/middleware.ts +373 -371
  1003. package/src/router/navigation-snapshot.ts +182 -0
  1004. package/src/router/pattern-matching.ts +291 -54
  1005. package/src/router/prerender-match.ts +502 -0
  1006. package/src/router/preview-match.ts +98 -0
  1007. package/src/router/request-classification.ts +310 -0
  1008. package/src/router/revalidation.ts +195 -40
  1009. package/src/router/route-snapshot.ts +245 -0
  1010. package/src/router/router-context.ts +41 -21
  1011. package/src/router/router-interfaces.ts +490 -0
  1012. package/src/router/router-options.ts +618 -0
  1013. package/src/router/router-registry.ts +21 -0
  1014. package/src/router/segment-resolution/fresh.ts +756 -0
  1015. package/src/router/segment-resolution/helpers.ts +268 -0
  1016. package/src/router/segment-resolution/loader-cache.ts +199 -0
  1017. package/src/router/segment-resolution/revalidation.ts +1407 -0
  1018. package/src/router/segment-resolution/static-store.ts +67 -0
  1019. package/src/router/segment-resolution.ts +21 -1336
  1020. package/src/router/segment-wrappers.ts +291 -0
  1021. package/src/router/substitute-pattern-params.ts +56 -0
  1022. package/src/router/telemetry-otel.ts +299 -0
  1023. package/src/router/telemetry.ts +300 -0
  1024. package/src/router/timeout.ts +148 -0
  1025. package/src/router/trie-matching.ts +111 -39
  1026. package/src/router/types.ts +17 -9
  1027. package/src/router/url-params.ts +49 -0
  1028. package/src/router.ts +707 -2291
  1029. package/src/rsc/handler-context.ts +45 -0
  1030. package/src/rsc/handler.ts +864 -1117
  1031. package/src/rsc/helpers.ts +181 -19
  1032. package/src/rsc/index.ts +1 -21
  1033. package/src/rsc/loader-fetch.ts +229 -0
  1034. package/src/rsc/manifest-init.ts +90 -0
  1035. package/src/rsc/nonce.ts +14 -0
  1036. package/src/rsc/origin-guard.ts +141 -0
  1037. package/src/rsc/progressive-enhancement.ts +395 -0
  1038. package/src/rsc/response-error.ts +37 -0
  1039. package/src/rsc/response-route-handler.ts +360 -0
  1040. package/src/rsc/rsc-rendering.ts +256 -0
  1041. package/src/rsc/runtime-warnings.ts +42 -0
  1042. package/src/rsc/server-action.ts +360 -0
  1043. package/src/rsc/ssr-setup.ts +128 -0
  1044. package/src/rsc/types.ts +52 -11
  1045. package/src/search-params.ts +230 -0
  1046. package/src/segment-content-promise.ts +67 -0
  1047. package/src/segment-loader-promise.ts +122 -0
  1048. package/src/segment-system.tsx +187 -38
  1049. package/src/serialize.ts +243 -0
  1050. package/src/server/context.ts +344 -70
  1051. package/src/server/cookie-store.ts +190 -0
  1052. package/src/server/fetchable-loader-store.ts +37 -0
  1053. package/src/server/handle-store.ts +113 -15
  1054. package/src/server/loader-registry.ts +24 -64
  1055. package/src/server/request-context.ts +603 -109
  1056. package/src/server.ts +35 -155
  1057. package/src/ssr/index.tsx +107 -30
  1058. package/src/static-handler.ts +126 -0
  1059. package/src/theme/ThemeProvider.tsx +21 -15
  1060. package/src/theme/ThemeScript.tsx +5 -5
  1061. package/src/theme/constants.ts +5 -2
  1062. package/src/theme/index.ts +4 -14
  1063. package/src/theme/theme-context.ts +4 -30
  1064. package/src/theme/theme-script.ts +21 -18
  1065. package/src/types/boundaries.ts +158 -0
  1066. package/src/types/cache-types.ts +198 -0
  1067. package/src/types/error-types.ts +192 -0
  1068. package/src/types/global-namespace.ts +113 -0
  1069. package/src/types/handler-context.ts +806 -0
  1070. package/src/types/index.ts +89 -0
  1071. package/src/types/loader-types.ts +209 -0
  1072. package/src/types/request-scope.ts +126 -0
  1073. package/src/types/route-config.ts +170 -0
  1074. package/src/types/route-entry.ts +120 -0
  1075. package/src/types/segments.ts +167 -0
  1076. package/src/types.ts +1 -1763
  1077. package/src/urls/include-helper.ts +207 -0
  1078. package/src/urls/index.ts +53 -0
  1079. package/src/urls/path-helper-types.ts +372 -0
  1080. package/src/urls/path-helper.ts +364 -0
  1081. package/src/urls/pattern-types.ts +141 -0
  1082. package/src/urls/response-types.ts +108 -0
  1083. package/src/urls/type-extraction.ts +377 -0
  1084. package/src/urls/urls-function.ts +98 -0
  1085. package/src/urls.ts +1 -1288
  1086. package/src/use-loader.tsx +511 -107
  1087. package/src/vite/debug.ts +184 -0
  1088. package/src/vite/discovery/bundle-postprocess.ts +181 -0
  1089. package/src/vite/discovery/discover-routers.ts +374 -0
  1090. package/src/vite/discovery/discovery-errors.ts +194 -0
  1091. package/src/vite/discovery/gate-state.ts +171 -0
  1092. package/src/vite/discovery/prerender-collection.ts +480 -0
  1093. package/src/vite/discovery/route-types-writer.ts +258 -0
  1094. package/src/vite/discovery/self-gen-tracking.ts +73 -0
  1095. package/src/vite/discovery/state.ts +143 -0
  1096. package/src/vite/discovery/virtual-module-codegen.ts +193 -0
  1097. package/src/vite/index.ts +15 -2012
  1098. package/src/vite/plugin-types.ts +103 -0
  1099. package/src/vite/plugins/cjs-to-esm.ts +98 -0
  1100. package/src/vite/plugins/client-ref-dedup.ts +131 -0
  1101. package/src/vite/plugins/client-ref-hashing.ts +117 -0
  1102. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  1103. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1104. package/src/vite/plugins/cloudflare-protocol-stub.ts +214 -0
  1105. package/src/vite/{expose-action-id.ts → plugins/expose-action-id.ts} +109 -66
  1106. package/src/vite/plugins/expose-id-utils.ts +303 -0
  1107. package/src/vite/plugins/expose-ids/export-analysis.ts +320 -0
  1108. package/src/vite/plugins/expose-ids/handler-transform.ts +209 -0
  1109. package/src/vite/plugins/expose-ids/loader-transform.ts +74 -0
  1110. package/src/vite/plugins/expose-ids/router-transform.ts +127 -0
  1111. package/src/vite/plugins/expose-ids/types.ts +45 -0
  1112. package/src/vite/plugins/expose-internal-ids.ts +816 -0
  1113. package/src/vite/plugins/performance-tracks.ts +92 -0
  1114. package/src/vite/plugins/refresh-cmd.ts +127 -0
  1115. package/src/vite/plugins/use-cache-transform.ts +336 -0
  1116. package/src/vite/plugins/version-injector.ts +109 -0
  1117. package/src/vite/plugins/version-plugin.ts +323 -0
  1118. package/src/vite/plugins/virtual-entries.ts +123 -0
  1119. package/src/vite/plugins/virtual-stub-plugin.ts +29 -0
  1120. package/src/vite/rango.ts +509 -0
  1121. package/src/vite/router-discovery.ts +1511 -0
  1122. package/src/vite/utils/ast-handler-extract.ts +517 -0
  1123. package/src/vite/utils/banner.ts +36 -0
  1124. package/src/vite/utils/bundle-analysis.ts +139 -0
  1125. package/src/vite/utils/forward-user-plugins.ts +193 -0
  1126. package/src/vite/utils/manifest-utils.ts +86 -0
  1127. package/src/vite/utils/package-resolution.ts +161 -0
  1128. package/src/vite/utils/prerender-utils.ts +222 -0
  1129. package/src/vite/utils/shared-utils.ts +174 -0
  1130. package/CLAUDE.md +0 -43
  1131. package/src/browser/lru-cache.ts +0 -69
  1132. package/src/browser/request-controller.ts +0 -164
  1133. package/src/cache/memory-store.ts +0 -253
  1134. package/src/router.gen.ts +0 -6
  1135. package/src/urls.gen.ts +0 -8
  1136. package/src/vite/expose-handle-id.ts +0 -209
  1137. package/src/vite/expose-loader-id.ts +0 -426
  1138. package/src/vite/expose-location-state-id.ts +0 -177
  1139. package/src/vite/expose-prerender-handler-id.ts +0 -429
  1140. /package/src/vite/{version.d.ts → plugins/version.d.ts} +0 -0
@@ -1,11 +1,8 @@
1
+ import * as React from "react";
1
2
  import { createElement, type ReactNode, type ComponentType } from "react";
2
3
  import { OutletProvider } from "./client.js";
3
4
  import { MountContextProvider } from "./browser/react/mount-context.js";
4
- import type {
5
- ResolvedSegment,
6
- LoaderDataResult,
7
- RootLayoutProps,
8
- } from "./types.js";
5
+ import type { ResolvedSegment, RootLayoutProps } from "./types.js";
9
6
  import { isLoaderDataResult } from "./types.js";
10
7
  import { invariant } from "./errors.js";
11
8
  import {
@@ -13,6 +10,54 @@ import {
13
10
  LoaderBoundary,
14
11
  } from "./route-content-wrapper.js";
15
12
  import { RootErrorBoundary } from "./root-error-boundary.js";
13
+ import { getMemoizedContentPromise } from "./segment-content-promise.js";
14
+ import { getMemoizedLoaderPromise } from "./segment-loader-promise.js";
15
+
16
+ // ViewTransition is only available in React experimental.
17
+ // Access via namespace import to avoid compile-time errors on stable React.
18
+ const ReactViewTransition: any =
19
+ "ViewTransition" in React ? (React as any).ViewTransition : null;
20
+
21
+ function restoreParallelLoaderMarkers(
22
+ segments: ResolvedSegment[],
23
+ ): ResolvedSegment[] {
24
+ const parallelLoadingByNamespace = new Map<string, ReactNode>();
25
+ let nextSegments: ResolvedSegment[] | null = null;
26
+
27
+ for (let i = 0; i < segments.length; i++) {
28
+ const segment = segments[i];
29
+
30
+ if (segment.type === "parallel") {
31
+ if (
32
+ segment.namespace &&
33
+ segment.loading !== undefined &&
34
+ segment.loading !== null &&
35
+ segment.loading !== false
36
+ ) {
37
+ parallelLoadingByNamespace.set(segment.namespace, segment.loading);
38
+ }
39
+ continue;
40
+ }
41
+
42
+ if (segment.type !== "loader" || segment.parallelLoading !== undefined) {
43
+ continue;
44
+ }
45
+
46
+ const parallelLoading = segment.namespace
47
+ ? parallelLoadingByNamespace.get(segment.namespace)
48
+ : undefined;
49
+ if (parallelLoading === undefined) {
50
+ continue;
51
+ }
52
+
53
+ if (!nextSegments) {
54
+ nextSegments = segments.slice();
55
+ }
56
+ nextSegments[i] = { ...segment, parallelLoading };
57
+ }
58
+
59
+ return nextSegments ?? segments;
60
+ }
16
61
 
17
62
  /**
18
63
  * Resolve loader data from raw results, unwrapping LoaderDataResult wrappers
@@ -86,6 +131,47 @@ export interface RenderSegmentsOptions {
86
131
  rootLayout?: ComponentType<RootLayoutProps>;
87
132
  }
88
133
 
134
+ function createViewTransitionBoundary(
135
+ transition: NonNullable<ResolvedSegment["transition"]>,
136
+ children: ReactNode,
137
+ ): ReactNode {
138
+ return createElement(ReactViewTransition, {
139
+ ...transition,
140
+ children,
141
+ });
142
+ }
143
+
144
+ function wrapDefaultOutletContent(
145
+ content: ReactNode,
146
+ transition: NonNullable<ResolvedSegment["transition"]>,
147
+ ): ReactNode {
148
+ if (!React.isValidElement(content)) {
149
+ return createViewTransitionBoundary(transition, content);
150
+ }
151
+
152
+ const props = content.props as any;
153
+
154
+ if (content.type === MountContextProvider) {
155
+ return React.cloneElement(content, {
156
+ children: wrapDefaultOutletContent(props.children, transition),
157
+ } as any);
158
+ }
159
+
160
+ if (content.type === OutletProvider && props.segment?.type === "layout") {
161
+ return React.cloneElement(content, {
162
+ content: wrapDefaultOutletContent(props.content, transition),
163
+ } as any);
164
+ }
165
+
166
+ if (content.type === LoaderBoundary && props.segment?.type === "layout") {
167
+ return React.cloneElement(content, {
168
+ outletContent: wrapDefaultOutletContent(props.outletContent, transition),
169
+ } as any);
170
+ }
171
+
172
+ return createViewTransitionBoundary(transition, content);
173
+ }
174
+
89
175
  /**
90
176
  * Render segments into a React tree with proper layout nesting
91
177
  *
@@ -137,6 +223,10 @@ export async function renderSegments(
137
223
  } = options || {};
138
224
 
139
225
  const temporalLazyRefs: Promise<any>[] = [];
226
+ const normalizedSegments = restoreParallelLoaderMarkers(segments);
227
+ const normalizedInterceptSegments = interceptSegments
228
+ ? restoreParallelLoaderMarkers(interceptSegments)
229
+ : undefined;
140
230
 
141
231
  /**
142
232
  * Registers promises from lazy/async components for awaiting.
@@ -161,7 +251,7 @@ export async function renderSegments(
161
251
  );
162
252
  }
163
253
  // Separate segments by type, passing intercept segments for explicit injection
164
- const tree = segmentTreeWalk(segments, interceptSegments);
254
+ const tree = segmentTreeWalk(normalizedSegments, normalizedInterceptSegments);
165
255
  // Render content segments as siblings
166
256
  let content: ReactNode = null;
167
257
  for (const node of tree) {
@@ -210,33 +300,44 @@ export async function renderSegments(
210
300
  }
211
301
 
212
302
  let nodeContent: ReactNode =
213
- loading !== null && loading
303
+ loading !== null && loading !== undefined && loading !== false
214
304
  ? createElement(RouteContentWrapper, {
215
305
  key: `suspense-loading-${id}`,
216
- content:
217
- resolvedComponent instanceof Promise
218
- ? resolvedComponent
219
- : Promise.resolve(resolvedComponent),
306
+ content: getMemoizedContentPromise(resolvedComponent),
220
307
  fallback: loading,
221
308
  segmentId: id,
222
309
  })
223
310
  : registerLazyRef(resolvedComponent);
224
- // Common props for OutletProvider
225
- const outletContent: ReactNode =
311
+
312
+ // Wrap with <ViewTransition> if transition config exists (React experimental only).
313
+ // An empty config ({}) creates a bare <ViewTransition> boundary that participates
314
+ // in transitions without adding custom animation classes. Named element-level
315
+ // <ViewTransition> components inside (with name/share props) morph independently
316
+ // from the parent's default cross-fade.
317
+ //
318
+ // For layouts, wrap the outlet content (what `<Outlet />` renders) rather
319
+ // than the layout component itself. Parallel slots like `<ParallelOutlet
320
+ // name="@modal" />` read from a separate context channel and end up as
321
+ // siblings of the VT in the rendered tree, so modal mounts don't trigger a
322
+ // subtree update on the layout-level VT — which would otherwise make
323
+ // React's commit walker fire `document.startViewTransition` and apply
324
+ // view-transition-names to the underlying main subtree (cover/title/etc.).
325
+ let outletContent: ReactNode =
226
326
  node.segment.type === "layout" ? content : null;
227
327
 
328
+ const transition = node.segment.transition;
329
+
330
+ if (ReactViewTransition && transition) {
331
+ if (node.segment.type === "layout") {
332
+ outletContent = wrapDefaultOutletContent(outletContent, transition);
333
+ } else {
334
+ nodeContent = createViewTransitionBoundary(transition, nodeContent);
335
+ }
336
+ }
337
+
228
338
  // Prepare loader data if there are loaders
229
339
  const loaderIds = loaderEntries.map((loader) => loader.loaderId!);
230
- const loaderDataPromise =
231
- loaderEntries.length > 0
232
- ? Promise.all(
233
- loaderEntries.map((loader) =>
234
- loader.loaderData instanceof Promise
235
- ? loader.loaderData
236
- : Promise.resolve(loader.loaderData),
237
- ),
238
- )
239
- : Promise.resolve([]);
340
+ const loaderDataPromise = getMemoizedLoaderPromise(loaderEntries);
240
341
 
241
342
  // Use LoaderBoundary when loading is defined to maintain consistent tree structure
242
343
  // This ensures cached segments (which may not have loader segments) have the same
@@ -265,13 +366,68 @@ export async function renderSegments(
265
366
  children: nodeContent,
266
367
  });
267
368
  } else {
268
- // Has loaders but no loading skeleton - await loaders and render directly
269
- const resolvedData = await loaderDataPromise;
369
+ // Has loaders but no loading skeleton.
370
+ // Split: parallel-owned loaders stream (their parallel has loading()),
371
+ // layout-owned loaders are awaited (they gate the layout content).
372
+ const layoutLoaders = loaderEntries.filter((l) => !l.parallelLoading);
373
+ const parallelOwnedLoaders = loaderEntries.filter(
374
+ (l) => !!l.parallelLoading,
375
+ );
376
+
377
+ // Await only layout-owned loaders
378
+ const layoutLoaderIds = layoutLoaders.map((l) => l.loaderId!);
379
+ const layoutLoaderDataPromise =
380
+ layoutLoaders.length > 0
381
+ ? Promise.all(
382
+ layoutLoaders.map((l) =>
383
+ l.loaderData instanceof Promise
384
+ ? l.loaderData
385
+ : Promise.resolve(l.loaderData),
386
+ ),
387
+ )
388
+ : Promise.resolve([]);
389
+ const resolvedData = await layoutLoaderDataPromise;
270
390
  const { loaderData, errorFallback } = resolveLoaderData(
271
391
  resolvedData,
272
- loaderIds,
392
+ layoutLoaderIds,
273
393
  );
274
394
 
395
+ // Parallel-owned loaders: attach to their owning parallel segment
396
+ // as loaderDataPromise so ParallelOutlet wraps in LoaderBoundary
397
+ if (parallelOwnedLoaders.length > 0) {
398
+ const loadersByParallelNamespace = new Map<string, ResolvedSegment[]>();
399
+
400
+ for (const loader of parallelOwnedLoaders) {
401
+ if (!loader.namespace) {
402
+ continue;
403
+ }
404
+ const existing = loadersByParallelNamespace.get(loader.namespace);
405
+ if (existing) {
406
+ existing.push(loader);
407
+ } else {
408
+ loadersByParallelNamespace.set(loader.namespace, [loader]);
409
+ }
410
+ }
411
+
412
+ for (const p of node.parallel) {
413
+ if (!p.loading || !p.namespace) {
414
+ continue;
415
+ }
416
+
417
+ const ownedLoaders = loadersByParallelNamespace.get(p.namespace);
418
+ if (!ownedLoaders || ownedLoaders.length === 0) {
419
+ continue;
420
+ }
421
+
422
+ p.loaderIds = ownedLoaders.map((l) => l.loaderId!);
423
+ const aggregated = getMemoizedLoaderPromise(ownedLoaders);
424
+ p.loaderDataPromise =
425
+ (forceAwait || isAction) && aggregated instanceof Promise
426
+ ? await aggregated
427
+ : aggregated;
428
+ }
429
+ }
430
+
275
431
  content = createElement(OutletProvider, {
276
432
  key,
277
433
  content: outletContent,
@@ -407,20 +563,13 @@ function* segmentTreeWalk(
407
563
  }
408
564
  }
409
565
 
410
- // Sort segments by ID to ensure consistent root-to-leaf ordering
411
- // regardless of the order they arrive in the input array (which can differ
412
- // between document requests and actions)
413
- // Shorter IDs come first (closer to root), same length sorted lexicographically
414
- nonParallels.sort((a, b) => {
415
- if (a.id.length !== b.id.length) {
416
- return a.id.length - b.id.length;
417
- }
418
- return a.id.localeCompare(b.id);
419
- });
420
-
421
- // Iterate bottom-to-top using reverse() to process leaf segments first
566
+ // Segments arrive in root-to-leaf order from the server (resolveSegment
567
+ // and resolveSegmentWithRevalidation push segments in this order).
568
+ // All consumers (reconcileSegments, cache) preserve this order.
569
+ // No sorting needed iterate bottom-to-top to process leaf segments first.
422
570
  // This processes route/leaf layouts first, then parent layouts
423
571
  // Note: We reverse the array to iterate from end to start (bottom-to-top)
572
+
424
573
  for (let i = nonParallels.length - 1; i >= 0; i--) {
425
574
  const segment = nonParallels[i];
426
575
 
@@ -0,0 +1,243 @@
1
+ /**
2
+ * Wire-type serialization transforms.
3
+ *
4
+ * The type a handler or loader returns on the server is frequently NOT the type
5
+ * a client receives after serialization. These transforms model that boundary so
6
+ * consumer-facing types (e.g. `Rango.PathResponse`) describe the wire value, not
7
+ * the source value.
8
+ *
9
+ * Two serializers, two transforms — they are intentionally NOT interchangeable:
10
+ *
11
+ * - `JsonSerialize<T>` models plain `JSON.stringify` (`path.json()` /
12
+ * `fetch().then(r => r.json())`). Lossy: `Date -> string`, `undefined` /
13
+ * functions / symbols dropped, `Map`/`Set` -> `{}`. `bigint` *throws* (no wire
14
+ * value), so it collapses the whole result to `never`. Honors `toJSON()`.
15
+ * - `FlightSerialize<T>` models React RSC Flight (loaders, RSC props, cache).
16
+ * High fidelity: `Date`/`Map`/`Set`/`bigint`/typed arrays/`Promise` are
17
+ * preserved; ordinary functions and non-global symbols do not cross.
18
+ *
19
+ * ## Overriding (full-transform replacement)
20
+ *
21
+ * Because `Rango.JsonSerialize` / `Rango.FlightSerialize` are type *aliases*, TS
22
+ * cannot let you redefine them directly (aliases don't merge). Instead each alias
23
+ * consults a generic override slot — augment it with a single member that is your
24
+ * complete transform. Delegate to the built-in for the cases you don't change:
25
+ *
26
+ * ```ts
27
+ * declare global {
28
+ * namespace Rango {
29
+ * interface FlightSerializeOverride<T> {
30
+ * app: T extends Money ? number : Rango.FlightSerializeBuiltin<T>;
31
+ * }
32
+ * }
33
+ * }
34
+ * // now Rango.FlightSerialize<Money> is number; everything else is the built-in.
35
+ * ```
36
+ *
37
+ * Provide exactly one member: the slot is read as `Override<T>[keyof Override<T>]`,
38
+ * so multiple members union (and conflict). The built-in recurses through the
39
+ * override-aware alias, so an override applies at every nesting level.
40
+ */
41
+
42
+ import type { ReactNode } from "react";
43
+
44
+ type JsonPrimitive = string | number | boolean | null;
45
+
46
+ type AnyFunction = (...args: never[]) => unknown;
47
+
48
+ // --- JSON ---------------------------------------------------------------------
49
+
50
+ /**
51
+ * Internal marker for a value that makes `JSON.stringify` throw (`bigint`, or a
52
+ * `toJSON()` returning one). Distinct from `never`, which means "omitted":
53
+ * `undefined`/function/symbol-valued keys are dropped, and such array slots
54
+ * become `null`. A throwing value has no valid JSON wire form, so it propagates
55
+ * up through every container and is excluded at the public boundary (`bigint`
56
+ * alone -> `never`; `{ id: bigint }` -> `never`).
57
+ */
58
+ declare const JSON_THROWS: unique symbol;
59
+ type JsonThrows = typeof JSON_THROWS;
60
+
61
+ /** True if union `U` contains the throw marker. */
62
+ type HasThrow<U> = [Extract<U, JsonThrows>] extends [never] ? false : true;
63
+
64
+ /** Map a JSON array/tuple: propagate a throw; else omitted elements become null. */
65
+ type JsonSerializeArray<T extends readonly unknown[]> =
66
+ HasThrow<{ [K in keyof T]: JsonRawResolve<T[K]> }[number]> extends true
67
+ ? JsonThrows
68
+ : {
69
+ [K in keyof T]: [JsonRawResolve<T[K]>] extends [never]
70
+ ? null
71
+ : JsonRawResolve<T[K]>;
72
+ };
73
+
74
+ /** Map a JSON object: propagate a throw; else drop omitted keys. */
75
+ type JsonSerializeObject<T> =
76
+ HasThrow<{ [K in keyof T]: JsonRawResolve<T[K]> }[keyof T]> extends true
77
+ ? JsonThrows
78
+ : {
79
+ [K in keyof T as [JsonRawResolve<T[K]>] extends [never]
80
+ ? never
81
+ : K]: JsonRawResolve<T[K]>;
82
+ };
83
+
84
+ /**
85
+ * Built-in JSON rules, *raw* (may yield the throw marker). Honors `toJSON()` (so
86
+ * `Date -> string` and any class with `toJSON()` serialize correctly), preserves
87
+ * JSON primitives and literals, omits functions / symbols / `undefined`,
88
+ * collapses `Map`/`Set` to `{}`, and marks `bigint` as throwing. Recurses through
89
+ * the override-aware resolver, so registered overrides apply at every level.
90
+ */
91
+ type JsonSerializeBuiltinRaw<T> = T extends {
92
+ toJSON(...args: never[]): infer R;
93
+ }
94
+ ? JsonRawResolve<R>
95
+ : T extends JsonPrimitive
96
+ ? T
97
+ : T extends bigint
98
+ ? JsonThrows
99
+ : T extends AnyFunction
100
+ ? never
101
+ : T extends symbol
102
+ ? never
103
+ : T extends undefined
104
+ ? never
105
+ : T extends readonly unknown[]
106
+ ? JsonSerializeArray<T>
107
+ : T extends ReadonlyMap<unknown, unknown>
108
+ ? {}
109
+ : T extends ReadonlySet<unknown>
110
+ ? {}
111
+ : T extends object
112
+ ? JsonSerializeObject<T>
113
+ : never;
114
+
115
+ /** Override-aware raw JSON resolution (the recursion entry). */
116
+ type JsonRawResolve<T> = [keyof Rango.JsonSerializeOverride<T>] extends [never]
117
+ ? JsonSerializeBuiltinRaw<T>
118
+ : Rango.JsonSerializeOverride<T>[keyof Rango.JsonSerializeOverride<T>];
119
+
120
+ /**
121
+ * Model the result of round-tripping a value through `JSON.stringify` /
122
+ * `JSON.parse`. A registered `Rango.JsonSerializeOverride` replaces the transform
123
+ * wholesale; otherwise the built-in rules apply. Throwing values collapse to
124
+ * `never`.
125
+ */
126
+ export type JsonSerialize<T> = Exclude<JsonRawResolve<T>, JsonThrows>;
127
+
128
+ // --- Flight -------------------------------------------------------------------
129
+
130
+ /**
131
+ * Built-in Flight rules. Mirrors React's `ReactClientValue` contract: primitives
132
+ * including `bigint`, `undefined`, `null`, symbols, `Date`, `ArrayBuffer` and
133
+ * typed-array views, `Map`, `Set`, `FormData`, `Blob`, `Promise`,
134
+ * `ReadableStream`, and (async) iterables are preserved; ordinary functions
135
+ * resolve to `never`. JSX (`ReactNode`, and the async-node union
136
+ * `ReactNode | Promise<ReactNode>`) is preserved as-is via a non-distributive
137
+ * leaf, so handle/loader returns that carry JSX round-trip unchanged. Recurses
138
+ * through the override-aware `FlightSerialize`.
139
+ *
140
+ * The source of truth is React's own contract, which is intentionally NOT
141
+ * semver-stable across RSC framework APIs — this tracks the React version Rango
142
+ * pins. See:
143
+ * https://react.dev/reference/rsc/use-client#serializable-types-returned-by-server-components
144
+ *
145
+ * Type-level limitations (not detectable structurally, so not modeled): class
146
+ * instances and null-prototype objects are rejected by React at runtime but pass
147
+ * here as their structural shape; non-global symbols are rejected at runtime but
148
+ * `symbol` is preserved here; Server Functions would need an override to be
149
+ * distinguished from ordinary functions (which resolve to `never`).
150
+ */
151
+ type FlightSerializeBuiltinRaw<T> = [T] extends [ReactNode | Promise<ReactNode>]
152
+ ? T
153
+ : T extends string | number | boolean | bigint | symbol | null | undefined
154
+ ? T
155
+ : T extends AnyFunction
156
+ ? never
157
+ : T extends Date
158
+ ? Date
159
+ : T extends ArrayBuffer
160
+ ? ArrayBuffer
161
+ : T extends ArrayBufferView
162
+ ? T
163
+ : T extends FormData
164
+ ? FormData
165
+ : T extends Blob
166
+ ? Blob
167
+ : T extends Map<infer K, infer V>
168
+ ? Map<FlightSerialize<K>, FlightSerialize<V>>
169
+ : T extends Set<infer V>
170
+ ? Set<FlightSerialize<V>>
171
+ : T extends Promise<infer V>
172
+ ? Promise<FlightSerialize<V>>
173
+ : T extends ReadableStream<infer V>
174
+ ? ReadableStream<FlightSerialize<V>>
175
+ : T extends readonly unknown[]
176
+ ? { [K in keyof T]: FlightSerialize<T[K]> }
177
+ : T extends AsyncIterable<infer V>
178
+ ? AsyncIterable<FlightSerialize<V>>
179
+ : T extends Iterable<infer V>
180
+ ? Iterable<FlightSerialize<V>>
181
+ : T extends object
182
+ ? { [K in keyof T]: FlightSerialize<T[K]> }
183
+ : never;
184
+
185
+ /**
186
+ * Model React RSC Flight serialization. A registered `Rango.FlightSerializeOverride`
187
+ * replaces the transform wholesale; otherwise the built-in rules apply.
188
+ */
189
+ export type FlightSerialize<T> = [
190
+ keyof Rango.FlightSerializeOverride<T>,
191
+ ] extends [never]
192
+ ? FlightSerializeBuiltinRaw<T>
193
+ : Rango.FlightSerializeOverride<T>[keyof Rango.FlightSerializeOverride<T>];
194
+
195
+ // Module-scoped aliases so the ambient `Rango.*` members below can reference the
196
+ // module-level transforms without the global namespace shadowing the names.
197
+ type GlobalJsonSerialize<T> = JsonSerialize<T>;
198
+ type GlobalJsonSerializeBuiltin<T> = JsonSerializeBuiltinRaw<T>;
199
+ type GlobalFlightSerialize<T> = FlightSerialize<T>;
200
+ type GlobalFlightSerializeBuiltin<T> = FlightSerializeBuiltinRaw<T>;
201
+
202
+ /**
203
+ * Ambient serialization transforms and their override slots on the `Rango`
204
+ * namespace. Available with no import wherever the router's types are in scope,
205
+ * alongside `Rango.Path` / `Rango.PathResponse`.
206
+ *
207
+ * `Rango.JsonSerialize` is what `Rango.PathResponse` applies; `Rango.FlightSerialize`
208
+ * is exposed for RSC/loader/cache wire types and must NOT be used for `path.json()`.
209
+ * `Rango.JsonSerializeBuiltin` / `Rango.FlightSerializeBuiltin` are the defaults,
210
+ * exported so an override can delegate to them.
211
+ */
212
+ declare global {
213
+ namespace Rango {
214
+ /**
215
+ * Full-transform override slot for `Rango.JsonSerialize`. Empty by default;
216
+ * augment with one member that is your complete transform (delegate to
217
+ * `Rango.JsonSerializeBuiltin<T>` for the cases you don't change).
218
+ */
219
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
220
+ interface JsonSerializeOverride<T> {}
221
+
222
+ /**
223
+ * Full-transform override slot for `Rango.FlightSerialize`. Empty by default;
224
+ * augment with one member that is your complete transform (delegate to
225
+ * `Rango.FlightSerializeBuiltin<T>` for the cases you don't change).
226
+ */
227
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
228
+ interface FlightSerializeOverride<T> {}
229
+
230
+ /** Wire type after `JSON.stringify` (`path.json()` / `fetch().json()`). */
231
+ type JsonSerialize<T> = GlobalJsonSerialize<T>;
232
+ /**
233
+ * Built-in `JsonSerialize` rules, for an override to delegate to. Raw: a
234
+ * `bigint`-bearing type yields the internal throw marker here, which
235
+ * `Rango.JsonSerialize` excludes to `never` at the boundary.
236
+ */
237
+ type JsonSerializeBuiltin<T> = GlobalJsonSerializeBuiltin<T>;
238
+ /** Wire type after RSC Flight serialization (loaders / RSC props / cache). */
239
+ type FlightSerialize<T> = GlobalFlightSerialize<T>;
240
+ /** Built-in `FlightSerialize` rules, for an override to delegate to. */
241
+ type FlightSerializeBuiltin<T> = GlobalFlightSerializeBuiltin<T>;
242
+ }
243
+ }