@rangojs/router 0.0.0-experimental.2 → 0.0.0-experimental.204030a9

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 (1195) 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/{src/__mocks__/version.ts → dist/__mocks__/version.js} +1 -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 +1779 -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/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 +6440 -809
  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} +18 -17
  809. package/dist/vite/virtual-entries.js.map +1 -0
  810. package/package.json +140 -57
  811. package/skills/breadcrumbs/SKILL.md +252 -0
  812. package/skills/bundle-analysis/SKILL.md +159 -0
  813. package/skills/cache-guide/SKILL.md +484 -0
  814. package/skills/caching/SKILL.md +276 -226
  815. package/skills/composability/SKILL.md +197 -0
  816. package/skills/debug-manifest/SKILL.md +112 -0
  817. package/skills/document-cache/SKILL.md +106 -53
  818. package/skills/fonts/SKILL.md +167 -0
  819. package/skills/handler-use/SKILL.md +364 -0
  820. package/skills/hooks/SKILL.md +621 -67
  821. package/skills/host-router/SKILL.md +243 -0
  822. package/skills/i18n/SKILL.md +276 -0
  823. package/skills/intercept/SKILL.md +265 -202
  824. package/skills/layout/SKILL.md +261 -146
  825. package/skills/links/SKILL.md +471 -0
  826. package/skills/loader/SKILL.md +701 -250
  827. package/skills/middleware/SKILL.md +254 -320
  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 +155 -0
  831. package/skills/observability/SKILL.md +137 -0
  832. package/skills/parallel/SKILL.md +399 -158
  833. package/skills/prerender/SKILL.md +666 -0
  834. package/skills/rango/SKILL.md +338 -0
  835. package/skills/react-compiler/SKILL.md +168 -0
  836. package/skills/response-routes/SKILL.md +468 -0
  837. package/skills/route/SKILL.md +417 -89
  838. package/skills/router-setup/SKILL.md +389 -268
  839. package/skills/server-actions/SKILL.md +751 -0
  840. package/skills/streams-and-websockets/SKILL.md +283 -0
  841. package/skills/tailwind/SKILL.md +129 -0
  842. package/skills/testing/SKILL.md +549 -0
  843. package/skills/theme/SKILL.md +36 -11
  844. package/skills/typesafety/SKILL.md +747 -174
  845. package/skills/use-cache/SKILL.md +353 -0
  846. package/skills/view-transitions/SKILL.md +294 -0
  847. package/src/__augment-tests__/augment.ts +81 -0
  848. package/src/__augment-tests__/augmented.check.ts +117 -0
  849. package/src/__internal.ts +273 -0
  850. package/src/bin/rango.ts +321 -0
  851. package/src/browser/action-coordinator.ts +114 -0
  852. package/src/browser/app-shell.ts +52 -0
  853. package/src/browser/app-version.ts +14 -0
  854. package/src/browser/event-controller.ts +172 -128
  855. package/src/browser/history-state.ts +101 -0
  856. package/src/browser/index.ts +3 -3
  857. package/src/browser/intercept-utils.ts +52 -0
  858. package/src/browser/link-interceptor.ts +24 -4
  859. package/src/browser/logging.ts +55 -0
  860. package/src/browser/merge-segment-loaders.ts +20 -12
  861. package/src/browser/navigation-bridge.ts +390 -557
  862. package/src/browser/navigation-client.ts +228 -70
  863. package/src/browser/navigation-store.ts +104 -63
  864. package/src/browser/navigation-transaction.ts +279 -0
  865. package/src/browser/network-error-handler.ts +61 -0
  866. package/src/browser/partial-update.ts +397 -303
  867. package/src/browser/prefetch/cache.ts +314 -0
  868. package/src/browser/prefetch/fetch.ts +282 -0
  869. package/src/browser/prefetch/observer.ts +65 -0
  870. package/src/browser/prefetch/policy.ts +48 -0
  871. package/src/browser/prefetch/queue.ts +191 -0
  872. package/src/browser/prefetch/resource-ready.ts +77 -0
  873. package/src/browser/rango-state.ts +152 -0
  874. package/src/browser/react/Link.tsx +258 -74
  875. package/src/browser/react/NavigationProvider.tsx +237 -49
  876. package/src/browser/react/context.ts +11 -0
  877. package/src/browser/react/filter-segment-order.ts +55 -0
  878. package/src/browser/react/index.ts +15 -12
  879. package/src/browser/react/location-state-shared.ts +269 -56
  880. package/src/browser/react/location-state.ts +90 -19
  881. package/src/browser/react/mount-context.ts +37 -0
  882. package/src/browser/react/nonce-context.ts +23 -0
  883. package/src/browser/react/shallow-equal.ts +27 -0
  884. package/src/browser/react/use-action.ts +29 -51
  885. package/src/browser/react/use-client-cache.ts +5 -3
  886. package/src/browser/react/use-handle.ts +41 -98
  887. package/src/browser/react/use-href.tsx +20 -188
  888. package/src/browser/react/use-link-status.ts +6 -5
  889. package/src/browser/react/use-mount.ts +31 -0
  890. package/src/browser/react/use-navigation.ts +49 -80
  891. package/src/browser/react/use-params.ts +77 -0
  892. package/src/browser/react/use-pathname.ts +47 -0
  893. package/src/browser/react/use-reverse.ts +106 -0
  894. package/src/browser/react/use-router.ts +96 -0
  895. package/src/browser/react/use-search-params.ts +56 -0
  896. package/src/browser/react/use-segments.ts +85 -99
  897. package/src/browser/response-adapter.ts +98 -0
  898. package/src/browser/rsc-router.tsx +273 -78
  899. package/src/browser/scroll-restoration.ts +132 -49
  900. package/src/browser/segment-reconciler.ts +243 -0
  901. package/src/browser/segment-structure-assert.ts +83 -0
  902. package/src/browser/server-action-bridge.ts +504 -589
  903. package/src/browser/shallow.ts +6 -1
  904. package/src/browser/types.ts +184 -58
  905. package/src/browser/validate-redirect-origin.ts +29 -0
  906. package/src/build/collect-fallback-refs.ts +107 -0
  907. package/src/build/generate-manifest.ts +463 -0
  908. package/src/build/generate-route-types.ts +41 -0
  909. package/src/build/index.ts +37 -0
  910. package/src/build/route-trie.ts +292 -0
  911. package/src/build/route-types/ast-helpers.ts +25 -0
  912. package/src/build/route-types/ast-route-extraction.ts +98 -0
  913. package/src/build/route-types/codegen.ts +102 -0
  914. package/src/build/route-types/include-resolution.ts +418 -0
  915. package/src/build/route-types/param-extraction.ts +48 -0
  916. package/src/build/route-types/per-module-writer.ts +131 -0
  917. package/src/build/route-types/router-processing.ts +659 -0
  918. package/src/build/route-types/scan-filter.ts +85 -0
  919. package/src/build/route-types/source-scan.ts +118 -0
  920. package/src/build/runtime-discovery.ts +220 -0
  921. package/src/cache/background-task.ts +34 -0
  922. package/src/cache/cache-key-utils.ts +44 -0
  923. package/src/cache/cache-policy.ts +125 -0
  924. package/src/cache/cache-runtime.ts +342 -0
  925. package/src/cache/cache-scope.ts +150 -306
  926. package/src/cache/cf/cf-cache-store.ts +619 -24
  927. package/src/cache/cf/index.ts +13 -3
  928. package/src/cache/document-cache.ts +116 -77
  929. package/src/cache/handle-capture.ts +81 -0
  930. package/src/cache/handle-snapshot.ts +41 -0
  931. package/src/cache/index.ts +1 -15
  932. package/src/cache/memory-segment-store.ts +191 -13
  933. package/src/cache/profile-registry.ts +73 -0
  934. package/src/cache/read-through-swr.ts +134 -0
  935. package/src/cache/segment-codec.ts +256 -0
  936. package/src/cache/taint.ts +153 -0
  937. package/src/cache/types.ts +76 -121
  938. package/src/client.rsc.tsx +15 -15
  939. package/src/client.tsx +145 -309
  940. package/src/component-utils.ts +4 -4
  941. package/src/components/DefaultDocument.tsx +6 -2
  942. package/src/context-var.ts +156 -0
  943. package/src/debug.ts +243 -0
  944. package/src/decode-loader-results.ts +36 -0
  945. package/src/errors.ts +138 -3
  946. package/src/handle.ts +90 -22
  947. package/src/handles/MetaTags.tsx +76 -23
  948. package/src/handles/breadcrumbs.ts +66 -0
  949. package/src/handles/index.ts +1 -0
  950. package/src/handles/meta.ts +32 -15
  951. package/src/host/cookie-handler.ts +165 -0
  952. package/src/host/errors.ts +97 -0
  953. package/src/host/index.ts +53 -0
  954. package/src/host/pattern-matcher.ts +214 -0
  955. package/src/host/router.ts +424 -0
  956. package/src/host/testing.ts +79 -0
  957. package/src/host/types.ts +175 -0
  958. package/src/host/utils.ts +25 -0
  959. package/src/href-client.ts +263 -49
  960. package/src/index.rsc.ts +190 -29
  961. package/src/index.ts +278 -38
  962. package/src/internal-debug.ts +11 -0
  963. package/src/loader-store.ts +500 -0
  964. package/src/loader.rsc.ts +24 -142
  965. package/src/loader.ts +21 -11
  966. package/src/missing-id-error.ts +68 -0
  967. package/src/network-error-thrower.tsx +3 -1
  968. package/src/outlet-context.ts +1 -1
  969. package/src/outlet-provider.tsx +45 -0
  970. package/src/prerender/param-hash.ts +37 -0
  971. package/src/prerender/store.ts +186 -0
  972. package/src/prerender.ts +524 -0
  973. package/src/response-utils.ts +37 -0
  974. package/src/reverse.ts +380 -0
  975. package/src/root-error-boundary.tsx +41 -29
  976. package/src/route-content-wrapper.tsx +15 -39
  977. package/src/route-definition/dsl-helpers.ts +1109 -0
  978. package/src/route-definition/helper-factories.ts +90 -0
  979. package/src/route-definition/helpers-types.ts +506 -0
  980. package/src/route-definition/index.ts +55 -0
  981. package/src/route-definition/redirect.ts +101 -0
  982. package/src/route-definition/resolve-handler-use.ts +155 -0
  983. package/src/route-definition/use-item-types.ts +32 -0
  984. package/src/route-definition.ts +1 -1371
  985. package/src/route-map-builder.ts +247 -112
  986. package/src/route-name.ts +53 -0
  987. package/src/route-types.ts +99 -42
  988. package/src/router/basename.ts +14 -0
  989. package/src/router/content-negotiation.ts +228 -0
  990. package/src/router/debug-manifest.ts +72 -0
  991. package/src/router/error-handling.ts +10 -10
  992. package/src/router/find-match.ts +160 -0
  993. package/src/router/handler-context.ts +420 -88
  994. package/src/router/intercept-resolution.ts +388 -0
  995. package/src/router/lazy-includes.ts +237 -0
  996. package/src/router/loader-resolution.ts +374 -128
  997. package/src/router/logging.ts +251 -0
  998. package/src/router/manifest.ts +187 -43
  999. package/src/router/match-api.ts +556 -0
  1000. package/src/router/match-context.ts +6 -4
  1001. package/src/router/match-handlers.ts +483 -0
  1002. package/src/router/match-middleware/background-revalidation.ts +108 -93
  1003. package/src/router/match-middleware/cache-lookup.ts +413 -10
  1004. package/src/router/match-middleware/cache-store.ts +99 -26
  1005. package/src/router/match-middleware/intercept-resolution.ts +57 -17
  1006. package/src/router/match-middleware/segment-resolution.ts +80 -6
  1007. package/src/router/match-pipelines.ts +10 -45
  1008. package/src/router/match-result.ts +156 -36
  1009. package/src/router/metrics.ts +241 -16
  1010. package/src/router/middleware-cookies.ts +55 -0
  1011. package/src/router/middleware-types.ts +209 -0
  1012. package/src/router/middleware.ts +359 -346
  1013. package/src/router/navigation-snapshot.ts +182 -0
  1014. package/src/router/pattern-matching.ts +416 -41
  1015. package/src/router/prerender-match.ts +502 -0
  1016. package/src/router/preview-match.ts +100 -0
  1017. package/src/router/request-classification.ts +286 -0
  1018. package/src/router/revalidation.ts +195 -40
  1019. package/src/router/route-snapshot.ts +245 -0
  1020. package/src/router/router-context.ts +45 -23
  1021. package/src/router/router-interfaces.ts +501 -0
  1022. package/src/router/router-options.ts +657 -0
  1023. package/src/router/router-registry.ts +21 -0
  1024. package/src/router/segment-resolution/fresh.ts +769 -0
  1025. package/src/router/segment-resolution/helpers.ts +268 -0
  1026. package/src/router/segment-resolution/loader-cache.ts +199 -0
  1027. package/src/router/segment-resolution/revalidation.ts +1420 -0
  1028. package/src/router/segment-resolution/static-store.ts +67 -0
  1029. package/src/router/segment-resolution/view-transition-default.ts +36 -0
  1030. package/src/router/segment-resolution.ts +21 -0
  1031. package/src/router/segment-wrappers.ts +291 -0
  1032. package/src/router/substitute-pattern-params.ts +56 -0
  1033. package/src/router/telemetry-otel.ts +299 -0
  1034. package/src/router/telemetry.ts +399 -0
  1035. package/src/router/timeout.ts +148 -0
  1036. package/src/router/trie-matching.ts +244 -0
  1037. package/src/router/types.ts +87 -4
  1038. package/src/router/url-params.ts +49 -0
  1039. package/src/router.ts +768 -3574
  1040. package/src/rsc/handler-context.ts +45 -0
  1041. package/src/rsc/handler.ts +894 -806
  1042. package/src/rsc/helpers.ts +201 -19
  1043. package/src/rsc/index.ts +5 -25
  1044. package/src/rsc/loader-fetch.ts +229 -0
  1045. package/src/rsc/manifest-init.ts +90 -0
  1046. package/src/rsc/nonce.ts +14 -0
  1047. package/src/rsc/origin-guard.ts +159 -0
  1048. package/src/rsc/progressive-enhancement.ts +395 -0
  1049. package/src/rsc/response-error.ts +37 -0
  1050. package/src/rsc/response-route-handler.ts +340 -0
  1051. package/src/rsc/rsc-rendering.ts +230 -0
  1052. package/src/rsc/runtime-warnings.ts +41 -0
  1053. package/src/rsc/server-action.ts +336 -0
  1054. package/src/rsc/ssr-setup.ts +144 -0
  1055. package/src/rsc/types.ts +54 -14
  1056. package/src/search-params.ts +230 -0
  1057. package/src/segment-content-promise.ts +67 -0
  1058. package/src/segment-loader-promise.ts +122 -0
  1059. package/src/segment-system.tsx +265 -115
  1060. package/src/serialize.ts +243 -0
  1061. package/src/server/context.ts +480 -90
  1062. package/src/server/cookie-store.ts +214 -0
  1063. package/src/server/fetchable-loader-store.ts +37 -0
  1064. package/src/server/handle-store.ts +117 -20
  1065. package/src/server/loader-registry.ts +24 -64
  1066. package/src/server/request-context.ts +613 -109
  1067. package/src/server.ts +36 -131
  1068. package/src/ssr/index.tsx +164 -25
  1069. package/src/static-handler.ts +126 -0
  1070. package/src/testing/cache-status.ts +166 -0
  1071. package/src/testing/collect-handle.ts +63 -0
  1072. package/src/testing/dispatch.ts +440 -0
  1073. package/src/testing/dom.entry.ts +22 -0
  1074. package/src/testing/e2e/fixture.ts +154 -0
  1075. package/src/testing/e2e/index.ts +149 -0
  1076. package/src/testing/e2e/matchers.ts +51 -0
  1077. package/src/testing/e2e/page-helpers.ts +272 -0
  1078. package/src/testing/e2e/parity.ts +306 -0
  1079. package/src/testing/e2e/server.ts +183 -0
  1080. package/src/testing/flight-matchers.ts +104 -0
  1081. package/src/testing/flight-runtime.d.ts +21 -0
  1082. package/src/testing/flight.entry.ts +22 -0
  1083. package/src/testing/flight.ts +182 -0
  1084. package/src/testing/generated-routes.ts +223 -0
  1085. package/src/testing/index.ts +98 -0
  1086. package/src/testing/internal/context.ts +151 -0
  1087. package/src/testing/render-route.tsx +536 -0
  1088. package/src/testing/run-loader.ts +296 -0
  1089. package/src/testing/run-middleware.ts +170 -0
  1090. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  1091. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  1092. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  1093. package/src/testing/vitest-stubs/version.ts +5 -0
  1094. package/src/testing/vitest.ts +112 -0
  1095. package/src/theme/ThemeProvider.tsx +21 -15
  1096. package/src/theme/ThemeScript.tsx +5 -5
  1097. package/src/theme/constants.ts +11 -4
  1098. package/src/theme/index.ts +4 -14
  1099. package/src/theme/theme-context.ts +5 -31
  1100. package/src/theme/theme-script.ts +21 -18
  1101. package/src/theme/types.ts +1 -1
  1102. package/src/types/boundaries.ts +158 -0
  1103. package/src/types/cache-types.ts +198 -0
  1104. package/src/types/error-types.ts +192 -0
  1105. package/src/types/global-namespace.ts +113 -0
  1106. package/src/types/handler-context.ts +809 -0
  1107. package/src/types/index.ts +89 -0
  1108. package/src/types/loader-types.ts +209 -0
  1109. package/src/types/request-scope.ts +126 -0
  1110. package/src/types/route-config.ts +170 -0
  1111. package/src/types/route-entry.ts +120 -0
  1112. package/src/types/segments.ts +184 -0
  1113. package/src/types.ts +1 -1561
  1114. package/src/urls/include-helper.ts +164 -0
  1115. package/src/urls/index.ts +50 -0
  1116. package/src/urls/path-helper-types.ts +380 -0
  1117. package/src/urls/path-helper.ts +329 -0
  1118. package/src/urls/pattern-types.ts +124 -0
  1119. package/src/urls/response-types.ts +109 -0
  1120. package/src/urls/type-extraction.ts +282 -0
  1121. package/src/urls/urls-function.ts +94 -0
  1122. package/src/urls.ts +1 -726
  1123. package/src/use-loader.tsx +559 -108
  1124. package/src/vite/debug.ts +185 -0
  1125. package/src/vite/discovery/bundle-postprocess.ts +181 -0
  1126. package/src/vite/discovery/discover-routers.ts +398 -0
  1127. package/src/vite/discovery/discovery-errors.ts +194 -0
  1128. package/src/vite/discovery/gate-state.ts +171 -0
  1129. package/src/vite/discovery/prerender-collection.ts +480 -0
  1130. package/src/vite/discovery/route-types-writer.ts +214 -0
  1131. package/src/vite/discovery/self-gen-tracking.ts +73 -0
  1132. package/src/vite/discovery/state.ts +150 -0
  1133. package/src/vite/discovery/virtual-module-codegen.ts +193 -0
  1134. package/src/vite/index.ts +20 -785
  1135. package/src/vite/plugin-types.ts +170 -0
  1136. package/src/vite/plugins/cjs-to-esm.ts +94 -0
  1137. package/src/vite/plugins/client-ref-dedup.ts +131 -0
  1138. package/src/vite/plugins/client-ref-hashing.ts +128 -0
  1139. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  1140. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1141. package/src/vite/plugins/cloudflare-protocol-stub.ts +214 -0
  1142. package/src/vite/{expose-action-id.ts → plugins/expose-action-id.ts} +109 -66
  1143. package/src/vite/plugins/expose-id-utils.ts +303 -0
  1144. package/src/vite/plugins/expose-ids/export-analysis.ts +376 -0
  1145. package/src/vite/plugins/expose-ids/handler-transform.ts +156 -0
  1146. package/src/vite/plugins/expose-ids/loader-transform.ts +72 -0
  1147. package/src/vite/plugins/expose-ids/router-transform.ts +127 -0
  1148. package/src/vite/plugins/expose-ids/types.ts +45 -0
  1149. package/src/vite/plugins/expose-internal-ids.ts +796 -0
  1150. package/src/vite/plugins/performance-tracks.ts +92 -0
  1151. package/src/vite/plugins/refresh-cmd.ts +127 -0
  1152. package/src/vite/plugins/use-cache-transform.ts +338 -0
  1153. package/src/vite/plugins/version-injector.ts +99 -0
  1154. package/src/vite/plugins/version-plugin.ts +323 -0
  1155. package/src/vite/plugins/virtual-entries.ts +123 -0
  1156. package/src/vite/plugins/virtual-stub-plugin.ts +29 -0
  1157. package/src/vite/rango.ts +549 -0
  1158. package/src/vite/router-discovery.ts +1568 -0
  1159. package/src/vite/utils/ast-handler-extract.ts +517 -0
  1160. package/src/vite/utils/banner.ts +36 -0
  1161. package/src/vite/utils/bundle-analysis.ts +139 -0
  1162. package/src/vite/utils/client-chunks.ts +190 -0
  1163. package/src/vite/utils/forward-user-plugins.ts +193 -0
  1164. package/src/vite/utils/manifest-utils.ts +86 -0
  1165. package/src/vite/utils/package-resolution.ts +161 -0
  1166. package/src/vite/utils/prerender-utils.ts +222 -0
  1167. package/src/vite/utils/shared-utils.ts +251 -0
  1168. package/CLAUDE.md +0 -7
  1169. package/src/__tests__/component-utils.test.ts +0 -76
  1170. package/src/__tests__/route-definition.test.ts +0 -63
  1171. package/src/__tests__/urls.test.tsx +0 -436
  1172. package/src/browser/lru-cache.ts +0 -69
  1173. package/src/browser/request-controller.ts +0 -164
  1174. package/src/cache/__tests__/document-cache.test.ts +0 -522
  1175. package/src/cache/__tests__/memory-segment-store.test.ts +0 -487
  1176. package/src/cache/__tests__/memory-store.test.ts +0 -484
  1177. package/src/cache/cf/__tests__/cf-cache-store.test.ts +0 -428
  1178. package/src/cache/memory-store.ts +0 -253
  1179. package/src/href.ts +0 -177
  1180. package/src/route-utils.ts +0 -89
  1181. package/src/router/__tests__/match-context.test.ts +0 -104
  1182. package/src/router/__tests__/match-pipelines.test.ts +0 -537
  1183. package/src/router/__tests__/match-result.test.ts +0 -566
  1184. package/src/router/__tests__/on-error.test.ts +0 -935
  1185. package/src/router/__tests__/pattern-matching.test.ts +0 -577
  1186. package/src/router/middleware.test.ts +0 -1355
  1187. package/src/rsc/__tests__/helpers.test.ts +0 -175
  1188. package/src/server/__tests__/request-context.test.ts +0 -171
  1189. package/src/ssr/__tests__/ssr-handler.test.tsx +0 -188
  1190. package/src/theme/__tests__/theme.test.ts +0 -120
  1191. package/src/vite/__tests__/expose-loader-id.test.ts +0 -117
  1192. package/src/vite/expose-handle-id.ts +0 -209
  1193. package/src/vite/expose-loader-id.ts +0 -357
  1194. package/src/vite/expose-location-state-id.ts +0 -177
  1195. /package/src/vite/{version.d.ts → plugins/version.d.ts} +0 -0
@@ -3,8 +3,10 @@
3
3
  import React, {
4
4
  useState,
5
5
  useEffect,
6
+ useLayoutEffect,
6
7
  useCallback,
7
8
  useMemo,
9
+ useRef,
8
10
  use,
9
11
  type ReactNode,
10
12
  } from "react";
@@ -14,7 +16,7 @@ import {
14
16
  } from "./context.js";
15
17
  import type {
16
18
  NavigationStore,
17
- RscPayload,
19
+ NavigationUpdate,
18
20
  NavigateOptions,
19
21
  NavigationBridge,
20
22
  } from "../types.js";
@@ -22,8 +24,11 @@ import type { EventController } from "../event-controller.js";
22
24
  import { RootErrorBoundary } from "../../root-error-boundary.js";
23
25
  import type { HandleData } from "../types.js";
24
26
  import { ThemeProvider } from "../../theme/ThemeProvider.js";
27
+ import { NonceContext } from "./nonce-context.js";
25
28
  import type { ResolvedThemeConfig, Theme } from "../../theme/types.js";
26
- import { HrefContext, type HrefContextValue } from "./use-href.js";
29
+ import { cancelAllPrefetches } from "../prefetch/queue.js";
30
+ import { handleNavigationEnd } from "../scroll-restoration.js";
31
+ import { createAppShellRef, type AppShellRef } from "../app-shell.js";
27
32
 
28
33
  /**
29
34
  * Process handles from an async generator, updating the event controller
@@ -42,10 +47,22 @@ async function processHandles(
42
47
  store: NavigationStore;
43
48
  matched?: string[];
44
49
  isPartial?: boolean;
50
+ /** Server's `resolvedIds`: every segment re-resolved this request,
51
+ * including null-component ones excluded from `diff`/`segments`.
52
+ * Drives cleanup of stale handle buckets when a re-resolved segment
53
+ * pushed nothing. */
54
+ resolvedIds?: string[];
45
55
  historyKey: string;
46
- }
56
+ },
47
57
  ): Promise<void> {
48
- const { eventController, store, matched, isPartial, historyKey } = opts;
58
+ const {
59
+ eventController,
60
+ store,
61
+ matched,
62
+ isPartial,
63
+ resolvedIds,
64
+ historyKey,
65
+ } = opts;
49
66
 
50
67
  let yieldCount = 0;
51
68
  for await (const handleData of handlesGenerator) {
@@ -54,13 +71,13 @@ async function processHandles(
54
71
  // the current route's breadcrumbs (e.g., quick popstate after clicking a link).
55
72
  if (historyKey !== store.getHistoryKey()) {
56
73
  console.log(
57
- "[NavigationProvider] Stopping handle processing - user navigated away"
74
+ "[NavigationProvider] Stopping handle processing - user navigated away",
58
75
  );
59
76
  return;
60
77
  }
61
78
 
62
79
  yieldCount++;
63
- eventController.setHandleData(handleData, matched, isPartial);
80
+ eventController.setHandleData(handleData, matched, isPartial, resolvedIds);
64
81
  }
65
82
 
66
83
  // Check again before final updates
@@ -68,12 +85,11 @@ async function processHandles(
68
85
  return;
69
86
  }
70
87
 
71
- // For partial updates where the generator yielded nothing (cached handlers),
72
- // we still need to update the segment order to clean up stale handle data.
73
- // This happens when navigating away from a route - the handlers for the new
74
- // route might not push any breadcrumbs, but we still need to remove the old ones.
88
+ // For partial updates where the generator yielded nothing (every
89
+ // re-resolved handler pushed nothing), still call setHandleData so the
90
+ // cleanup pass can clear out stale buckets for those segments.
75
91
  if (yieldCount === 0 && matched) {
76
- eventController.setHandleData({}, matched, true);
92
+ eventController.setHandleData({}, matched, true, resolvedIds);
77
93
  }
78
94
 
79
95
  // After handles processing completes, update the cache's handleData.
@@ -101,9 +117,9 @@ export interface NavigationProviderProps {
101
117
  eventController: EventController;
102
118
 
103
119
  /**
104
- * Initial RSC payload from server
120
+ * Initial rendered tree + metadata from server payload
105
121
  */
106
- initialPayload: RscPayload;
122
+ initialPayload: NavigationUpdate;
107
123
 
108
124
  /**
109
125
  * Navigation bridge for handling navigation
@@ -121,6 +137,31 @@ export interface NavigationProviderProps {
121
137
  * Only used when themeConfig is provided
122
138
  */
123
139
  initialTheme?: Theme;
140
+
141
+ /**
142
+ * Whether connection warmup is enabled.
143
+ * When true, keeps TLS alive by sending HEAD requests after idle periods.
144
+ */
145
+ warmupEnabled?: boolean;
146
+
147
+ /**
148
+ * App version from server payload.
149
+ * Used only as a fallback when `appShellRef` is not supplied.
150
+ */
151
+ version?: string;
152
+
153
+ /**
154
+ * URL prefix for all routes (from createRouter({ basename })).
155
+ * Used only as a fallback when `appShellRef` is not supplied.
156
+ */
157
+ basename?: string;
158
+
159
+ /**
160
+ * Live app-shell ref. When provided, the context's `basename` and `version`
161
+ * properties become live getters that track app-switch updates without
162
+ * invalidating the memoized context value.
163
+ */
164
+ appShellRef?: AppShellRef;
124
165
  }
125
166
 
126
167
  /**
@@ -151,6 +192,10 @@ export function NavigationProvider({
151
192
  bridge,
152
193
  themeConfig,
153
194
  initialTheme,
195
+ warmupEnabled,
196
+ version,
197
+ basename,
198
+ appShellRef,
154
199
  }: NavigationProviderProps): ReactNode {
155
200
  // Track current payload for rendering (this triggers re-renders)
156
201
  const [payload, setPayload] = useState(initialPayload);
@@ -162,7 +207,7 @@ export function NavigationProvider({
162
207
  async (url: string, options?: NavigateOptions): Promise<void> => {
163
208
  await bridge.navigate(url, options);
164
209
  },
165
- []
210
+ [],
166
211
  );
167
212
 
168
213
  /**
@@ -172,25 +217,178 @@ export function NavigationProvider({
172
217
  await bridge.refresh();
173
218
  }, []);
174
219
 
175
- // Context value is stable (store, eventController, navigate, refresh never change)
176
- const contextValue = useMemo<NavigationStoreContextValue>(
177
- () => ({
220
+ // basename/version are always read through a shell ref so the context value
221
+ // has a single shape: a supplied appShellRef stays live (app-switch updates
222
+ // it), the standalone fallback is a frozen ref over the mount-time props.
223
+ const fallbackShellRef = useRef<AppShellRef | null>(null);
224
+ if (!fallbackShellRef.current) {
225
+ fallbackShellRef.current = createAppShellRef({ basename, version });
226
+ }
227
+ const shellRef = appShellRef ?? fallbackShellRef.current;
228
+
229
+ const contextValue = useMemo<NavigationStoreContextValue>(() => {
230
+ const value = {
178
231
  store,
179
232
  eventController,
180
233
  navigate,
181
234
  refresh,
182
- }),
183
- []
184
- );
235
+ } as NavigationStoreContextValue;
236
+ Object.defineProperty(value, "basename", {
237
+ configurable: true,
238
+ enumerable: true,
239
+ get: () => shellRef.get().basename,
240
+ });
241
+ Object.defineProperty(value, "version", {
242
+ configurable: true,
243
+ enumerable: true,
244
+ get: () => shellRef.get().version,
245
+ });
246
+ return value;
247
+ }, []);
248
+
249
+ // Connection warmup: keep TLS alive after idle periods.
250
+ // After 60s of no user interaction, marks connection as "cold".
251
+ // On next interaction or visibility change, sends a HEAD request to warm TLS
252
+ // before the user actually clicks a link.
253
+ useEffect(() => {
254
+ if (!warmupEnabled) return;
255
+
256
+ const IDLE_TIMEOUT = 60_000;
257
+ const DEBOUNCE_DELAY = 150;
258
+
259
+ let idleTimer: ReturnType<typeof setTimeout> | undefined;
260
+ let debounceTimer: ReturnType<typeof setTimeout> | undefined;
261
+ let isCold = false;
262
+ let warmupListenersAttached = false;
263
+
264
+ function sendWarmup() {
265
+ isCold = false;
266
+ fetch("/?_rsc_warmup", { method: "HEAD" }).catch(() => {});
267
+ }
268
+
269
+ function triggerWarmup() {
270
+ if (!isCold) return;
271
+ clearTimeout(debounceTimer);
272
+ debounceTimer = setTimeout(() => {
273
+ sendWarmup();
274
+ detachWarmupListeners();
275
+ resetIdleTimer();
276
+ }, DEBOUNCE_DELAY);
277
+ }
278
+
279
+ function onVisibilityChange() {
280
+ if (document.visibilityState === "visible" && isCold) {
281
+ triggerWarmup();
282
+ }
283
+ }
284
+
285
+ function attachWarmupListeners() {
286
+ if (warmupListenersAttached) return;
287
+ warmupListenersAttached = true;
288
+ document.addEventListener("visibilitychange", onVisibilityChange);
289
+ document.addEventListener("mousemove", triggerWarmup, { once: true });
290
+ document.addEventListener("touchstart", triggerWarmup, { once: true });
291
+ }
292
+
293
+ function detachWarmupListeners() {
294
+ warmupListenersAttached = false;
295
+ document.removeEventListener("visibilitychange", onVisibilityChange);
296
+ document.removeEventListener("mousemove", triggerWarmup);
297
+ document.removeEventListener("touchstart", triggerWarmup);
298
+ }
299
+
300
+ function markCold() {
301
+ isCold = true;
302
+ attachWarmupListeners();
303
+ }
304
+
305
+ function resetIdleTimer() {
306
+ clearTimeout(idleTimer);
307
+ isCold = false;
308
+ idleTimer = setTimeout(markCold, IDLE_TIMEOUT);
309
+ }
310
+
311
+ // Activity events that reset the idle timer
312
+ const activityEvents = [
313
+ "mousemove",
314
+ "keydown",
315
+ "touchstart",
316
+ "scroll",
317
+ ] as const;
318
+ const activityOptions: AddEventListenerOptions = { passive: true };
319
+
320
+ for (const event of activityEvents) {
321
+ document.addEventListener(event, resetIdleTimer, activityOptions);
322
+ }
323
+
324
+ resetIdleTimer();
325
+
326
+ return () => {
327
+ clearTimeout(idleTimer);
328
+ clearTimeout(debounceTimer);
329
+ detachWarmupListeners();
330
+ for (const event of activityEvents) {
331
+ document.removeEventListener(event, resetIdleTimer);
332
+ }
333
+ };
334
+ }, [warmupEnabled]);
335
+
336
+ // Cancel non-matching prefetches when navigation starts.
337
+ // Frees connections so the navigation fetch isn't competing with
338
+ // speculative prefetches. The prefetch matching the navigation target
339
+ // is kept alive so it can be reused via consumeInflightPrefetch.
340
+ useEffect(() => {
341
+ let wasIdle = true;
342
+ const unsub = eventController.subscribe(() => {
343
+ const state = eventController.getState();
344
+ const isIdle = state.state === "idle" && !state.isStreaming;
345
+ if (wasIdle && !isIdle) {
346
+ cancelAllPrefetches(state.pendingUrl);
347
+ }
348
+ wasIdle = isIdle;
349
+ });
350
+ return unsub;
351
+ }, [eventController]);
352
+
353
+ // Pending scroll action to apply after React commits
354
+ const pendingScrollRef = useRef<NavigationUpdate["scroll"]>(undefined);
355
+
356
+ // Apply scroll after React commits the new content to the DOM
357
+ useLayoutEffect(() => {
358
+ const scrollAction = pendingScrollRef.current;
359
+ if (!scrollAction) return;
360
+ pendingScrollRef.current = undefined;
361
+
362
+ if (scrollAction.enabled === false) return;
363
+
364
+ handleNavigationEnd({
365
+ restore: scrollAction.restore,
366
+ scroll: scrollAction.enabled,
367
+ isStreaming: scrollAction.isStreaming,
368
+ });
369
+ });
185
370
 
186
371
  // Subscribe to UI updates (for re-rendering the tree)
187
372
  useEffect(() => {
188
373
  const unsubscribe = store.onUpdate((update) => {
374
+ // Capture scroll intent — it will be applied in useLayoutEffect
375
+ // after React commits this state update to the DOM.
376
+ // Always assign (even undefined) to clear stale scroll from prior navigations,
377
+ // so server actions or error updates don't accidentally replay old scroll.
378
+ pendingScrollRef.current = update.scroll;
379
+
189
380
  setPayload({
190
381
  root: update.root,
191
382
  metadata: update.metadata,
192
383
  });
193
384
 
385
+ // Update route params. Only reset when the server actually sends a params
386
+ // map — an absent `params` field means "no change" (e.g., legacy action
387
+ // responses that omitted params). Explicit `{}` still clears correctly.
388
+ if (update.metadata.params !== undefined) {
389
+ eventController.setParams(update.metadata.params);
390
+ }
391
+
194
392
  // Update handle data progressively as it streams in
195
393
  if (update.metadata.handles) {
196
394
  // Capture historyKey now - by the time async processing completes,
@@ -202,24 +400,20 @@ export function NavigationProvider({
202
400
  store,
203
401
  matched: update.metadata.matched,
204
402
  isPartial: update.metadata.isPartial,
403
+ resolvedIds: update.metadata.resolvedIds,
205
404
  historyKey,
206
405
  }).catch((err) =>
207
- console.error("[NavigationProvider] Error consuming handles:", err)
208
- );
209
- } else if (update.metadata.cachedHandleData) {
210
- // For back/forward navigation from cache, restore the cached handleData
211
- // This restores breadcrumbs to the exact state they were when the page was cached
212
- eventController.setHandleData(
213
- update.metadata.cachedHandleData,
214
- update.metadata.matched,
215
- false // full replace - restore entire cached state
406
+ console.error("[NavigationProvider] Error consuming handles:", err),
216
407
  );
217
408
  } else if (update.metadata.matched) {
218
- // For cached navigations without handleData, update segmentOrder to clean up stale data
409
+ // cachedHandleData present -> full restore (back/forward); absent ->
410
+ // partial cleanup of segments no longer matched.
411
+ const cached = update.metadata.cachedHandleData;
219
412
  eventController.setHandleData(
220
- {}, // Empty data - all existing data not in matched will be cleaned up
413
+ cached ?? {},
221
414
  update.metadata.matched,
222
- true // partial update - will clean up segments not in matched
415
+ cached === undefined,
416
+ cached === undefined ? update.metadata.resolvedIds : undefined,
223
417
  );
224
418
  }
225
419
  });
@@ -241,7 +435,11 @@ export function NavigationProvider({
241
435
  // Build the content tree
242
436
  let content = <RootErrorBoundary>{root}</RootErrorBoundary>;
243
437
 
244
- // Wrap with ThemeProvider when theme is enabled
438
+ // Wrap with ThemeProvider when theme is enabled. The ThemeProvider is
439
+ // document-lifetime: its config comes from the initial load and does NOT
440
+ // swap on cross-app transitions, because the ThemeProvider sits above the
441
+ // segment tree and a smooth (no-reload) app switch cannot safely remount
442
+ // it. A new theme config only takes effect on a full document load.
245
443
  if (themeConfig) {
246
444
  content = (
247
445
  <ThemeProvider config={themeConfig} initialTheme={initialTheme}>
@@ -250,22 +448,12 @@ export function NavigationProvider({
250
448
  );
251
449
  }
252
450
 
253
- // Build href context value from metadata (routeMap and routeName)
254
- // This enables useHref() to resolve local route names with the current prefix
255
- const hrefContextValue = useMemo<HrefContextValue | null>(() => {
256
- const { routeMap, routeName } = payload.metadata || {};
257
- if (!routeMap) return null;
258
- return { routeMap, routeName };
259
- }, [payload.metadata?.routeMap, payload.metadata?.routeName]);
260
-
261
- // Wrap with HrefContext when routeMap is available
262
- if (hrefContextValue) {
263
- content = (
264
- <HrefContext.Provider value={hrefContextValue}>
265
- {content}
266
- </HrefContext.Provider>
267
- );
268
- }
451
+ // Match SSR tree shape: NonceContext.Provider is always present so
452
+ // hydration sees the same component tree. Value is undefined on the
453
+ // client CSP nonces are a server-side HTML concern.
454
+ content = (
455
+ <NonceContext.Provider value={undefined}>{content}</NonceContext.Provider>
456
+ );
269
457
 
270
458
  return (
271
459
  <NavigationStoreContext.Provider value={contextValue}>
@@ -41,6 +41,17 @@ export interface NavigationStoreContextValue {
41
41
  * @returns Promise that resolves when refresh is complete
42
42
  */
43
43
  refresh: () => Promise<void>;
44
+
45
+ /**
46
+ * App version from the initial server payload.
47
+ */
48
+ version: string | undefined;
49
+
50
+ /**
51
+ * URL prefix for all routes (from createRouter({ basename })).
52
+ * Used by Link and useRouter() to auto-prefix app-local paths.
53
+ */
54
+ basename: string | undefined;
44
55
  }
45
56
 
46
57
  /**
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Build the handle-collection segment order from a raw `matched` list.
3
+ *
4
+ * Two responsibilities:
5
+ *
6
+ * 1. Drop loader sub-ids ("D" followed by a digit, e.g. "M0L0D1.user") —
7
+ * loaders never push handles.
8
+ *
9
+ * 2. Place each parallel slot id (contains ".@") immediately after its
10
+ * parent layout/route id. Raw segment-resolution emission order does NOT
11
+ * guarantee this: route-mounted parallels are resolved/pushed BEFORE the
12
+ * route handler's segment is appended (see fresh.ts:resolveSegment for
13
+ * routes, and revalidation.ts ~915-919), so matched can read
14
+ * `[..., R0.@panel, R0]`. collectHandleData consumes segmentOrder verbatim
15
+ * with later-wins semantics, so without normalization the route handler's
16
+ * Meta would override the slot's more-specific Meta — backwards.
17
+ *
18
+ * Slot-id format is `<parentShortCode>.@<slotName>`; `parentShortCode` never
19
+ * contains ".@", so splitting at the first ".@" reliably yields the parent.
20
+ */
21
+ export function filterSegmentOrder(matched: string[]): string[] {
22
+ const slotsByParent = new Map<string, string[]>();
23
+ const nonSlots: string[] = [];
24
+ const nonSlotSet = new Set<string>();
25
+
26
+ for (const id of matched) {
27
+ if (/D\d+\./.test(id)) continue;
28
+ const slotIdx = id.indexOf(".@");
29
+ if (slotIdx >= 0) {
30
+ const parent = id.slice(0, slotIdx);
31
+ const list = slotsByParent.get(parent);
32
+ if (list) {
33
+ list.push(id);
34
+ } else {
35
+ slotsByParent.set(parent, [id]);
36
+ }
37
+ } else {
38
+ nonSlots.push(id);
39
+ nonSlotSet.add(id);
40
+ }
41
+ }
42
+
43
+ const result: string[] = [];
44
+ for (const id of nonSlots) {
45
+ result.push(id);
46
+ const slots = slotsByParent.get(id);
47
+ if (slots) result.push(...slots);
48
+ }
49
+ // Defensive: any slot whose parent is missing from the filtered list still
50
+ // gets included rather than silently dropped. Shouldn't happen in practice.
51
+ for (const [parent, slots] of slotsByParent) {
52
+ if (!nonSlotSet.has(parent)) result.push(...slots);
53
+ }
54
+ return result;
55
+ }
@@ -1,20 +1,27 @@
1
1
  // React exports for browser navigation
2
2
 
3
3
  // Hook with Zustand-style selectors
4
- export {
5
- useNavigation,
6
- type NavigationMethods,
7
- type NavigationValue,
8
- } from "./use-navigation.js";
4
+ export { useNavigation } from "./use-navigation.js";
5
+
6
+ // Router actions hook (stable reference, no re-renders)
7
+ export { useRouter } from "./use-router.js";
8
+
9
+ // URL hooks
10
+ export { usePathname } from "./use-pathname.js";
11
+ export { useSearchParams } from "./use-search-params.js";
12
+ export { useParams } from "./use-params.js";
9
13
 
10
14
  // Action state tracking hook
11
15
  export { useAction, type TrackedActionState } from "./use-action.js";
12
16
 
13
17
  // Segments state hook
14
- export { useSegments, initSegmentsSync, type SegmentsState } from "./use-segments.js";
18
+ export { useSegments, type SegmentsState } from "./use-segments.js";
15
19
 
16
20
  // Handle data hook
17
- export { useHandle, initHandleDataSync } from "./use-handle.js";
21
+ export { useHandle } from "./use-handle.js";
22
+
23
+ // Mount-aware reverse hook
24
+ export { useReverse } from "./use-reverse.js";
18
25
 
19
26
  // Client cache controls hook
20
27
  export {
@@ -35,11 +42,7 @@ export {
35
42
  } from "./context.js";
36
43
 
37
44
  // Link component
38
- export {
39
- Link,
40
- type LinkProps,
41
- type PrefetchStrategy,
42
- } from "./Link.js";
45
+ export { Link, type LinkProps, type PrefetchStrategy } from "./Link.js";
43
46
 
44
47
  // Link status hook
45
48
  export { useLinkStatus, type LinkStatus } from "./use-link-status.js";