@rangojs/router 0.0.0-experimental.13 → 0.0.0-experimental.131

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 (1214) hide show
  1. package/AGENTS.md +9 -0
  2. package/README.md +1040 -5
  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 +1712 -212
  82. package/dist/bin/rango.js.map +1 -0
  83. package/dist/browser/event-controller.d.ts +191 -0
  84. package/dist/browser/event-controller.d.ts.map +1 -0
  85. package/dist/browser/event-controller.js +559 -0
  86. package/dist/browser/event-controller.js.map +1 -0
  87. package/dist/browser/index.d.ts +2 -0
  88. package/dist/browser/index.d.ts.map +1 -0
  89. package/dist/browser/index.js +14 -0
  90. package/dist/browser/index.js.map +1 -0
  91. package/dist/browser/link-interceptor.d.ts +38 -0
  92. package/dist/browser/link-interceptor.d.ts.map +1 -0
  93. package/dist/browser/link-interceptor.js +99 -0
  94. package/dist/browser/link-interceptor.js.map +1 -0
  95. package/dist/browser/logging.d.ts +10 -0
  96. package/dist/browser/logging.d.ts.map +1 -0
  97. package/dist/browser/logging.js +29 -0
  98. package/dist/browser/logging.js.map +1 -0
  99. package/dist/browser/lru-cache.d.ts +17 -0
  100. package/dist/browser/lru-cache.d.ts.map +1 -0
  101. package/dist/browser/lru-cache.js +50 -0
  102. package/dist/browser/lru-cache.js.map +1 -0
  103. package/dist/browser/merge-segment-loaders.d.ts +39 -0
  104. package/dist/browser/merge-segment-loaders.d.ts.map +1 -0
  105. package/dist/browser/merge-segment-loaders.js +102 -0
  106. package/dist/browser/merge-segment-loaders.js.map +1 -0
  107. package/dist/browser/navigation-bridge.d.ts +102 -0
  108. package/dist/browser/navigation-bridge.d.ts.map +1 -0
  109. package/dist/browser/navigation-bridge.js +708 -0
  110. package/dist/browser/navigation-bridge.js.map +1 -0
  111. package/dist/browser/navigation-client.d.ts +25 -0
  112. package/dist/browser/navigation-client.d.ts.map +1 -0
  113. package/dist/browser/navigation-client.js +157 -0
  114. package/dist/browser/navigation-client.js.map +1 -0
  115. package/dist/browser/navigation-store.d.ts +101 -0
  116. package/dist/browser/navigation-store.d.ts.map +1 -0
  117. package/dist/browser/navigation-store.js +625 -0
  118. package/dist/browser/navigation-store.js.map +1 -0
  119. package/dist/browser/partial-update.d.ts +75 -0
  120. package/dist/browser/partial-update.d.ts.map +1 -0
  121. package/dist/browser/partial-update.js +426 -0
  122. package/dist/browser/partial-update.js.map +1 -0
  123. package/dist/browser/react/Link.d.ts +86 -0
  124. package/dist/browser/react/Link.d.ts.map +1 -0
  125. package/dist/browser/react/Link.js +128 -0
  126. package/dist/browser/react/Link.js.map +1 -0
  127. package/dist/browser/react/NavigationProvider.d.ts +63 -0
  128. package/dist/browser/react/NavigationProvider.d.ts.map +1 -0
  129. package/dist/browser/react/NavigationProvider.js +216 -0
  130. package/dist/browser/react/NavigationProvider.js.map +1 -0
  131. package/dist/browser/react/ScrollRestoration.d.ts +75 -0
  132. package/dist/browser/react/ScrollRestoration.d.ts.map +1 -0
  133. package/dist/browser/react/ScrollRestoration.js +57 -0
  134. package/dist/browser/react/ScrollRestoration.js.map +1 -0
  135. package/dist/browser/react/context.d.ts +46 -0
  136. package/dist/browser/react/context.d.ts.map +1 -0
  137. package/dist/browser/react/context.js +10 -0
  138. package/dist/browser/react/context.js.map +1 -0
  139. package/dist/browser/react/index.d.ts +11 -0
  140. package/dist/browser/react/index.d.ts.map +1 -0
  141. package/dist/browser/react/index.js +22 -0
  142. package/dist/browser/react/index.js.map +1 -0
  143. package/dist/browser/react/location-state-shared.d.ts +63 -0
  144. package/dist/browser/react/location-state-shared.d.ts.map +1 -0
  145. package/dist/browser/react/location-state-shared.js +81 -0
  146. package/dist/browser/react/location-state-shared.js.map +1 -0
  147. package/dist/browser/react/location-state.d.ts +23 -0
  148. package/dist/browser/react/location-state.d.ts.map +1 -0
  149. package/dist/browser/react/location-state.js +29 -0
  150. package/dist/browser/react/location-state.js.map +1 -0
  151. package/dist/browser/react/mount-context.d.ts +24 -0
  152. package/dist/browser/react/mount-context.d.ts.map +1 -0
  153. package/dist/browser/react/mount-context.js +24 -0
  154. package/dist/browser/react/mount-context.js.map +1 -0
  155. package/dist/browser/react/use-action.d.ts +64 -0
  156. package/dist/browser/react/use-action.d.ts.map +1 -0
  157. package/dist/browser/react/use-action.js +134 -0
  158. package/dist/browser/react/use-action.js.map +1 -0
  159. package/dist/browser/react/use-client-cache.d.ts +41 -0
  160. package/dist/browser/react/use-client-cache.d.ts.map +1 -0
  161. package/{src/browser/react/use-client-cache.ts → dist/browser/react/use-client-cache.js} +9 -26
  162. package/dist/browser/react/use-client-cache.js.map +1 -0
  163. package/dist/browser/react/use-handle.d.ts +31 -0
  164. package/dist/browser/react/use-handle.d.ts.map +1 -0
  165. package/dist/browser/react/use-handle.js +144 -0
  166. package/dist/browser/react/use-handle.js.map +1 -0
  167. package/dist/browser/react/use-href.d.ts +33 -0
  168. package/dist/browser/react/use-href.d.ts.map +1 -0
  169. package/dist/browser/react/use-href.js +39 -0
  170. package/dist/browser/react/use-href.js.map +1 -0
  171. package/dist/browser/react/use-link-status.d.ts +37 -0
  172. package/dist/browser/react/use-link-status.d.ts.map +1 -0
  173. package/dist/browser/react/use-link-status.js +99 -0
  174. package/dist/browser/react/use-link-status.js.map +1 -0
  175. package/dist/browser/react/use-mount.d.ts +25 -0
  176. package/dist/browser/react/use-mount.d.ts.map +1 -0
  177. package/dist/browser/react/use-mount.js +30 -0
  178. package/dist/browser/react/use-mount.js.map +1 -0
  179. package/dist/browser/react/use-navigation.d.ts +27 -0
  180. package/dist/browser/react/use-navigation.d.ts.map +1 -0
  181. package/dist/browser/react/use-navigation.js +87 -0
  182. package/dist/browser/react/use-navigation.js.map +1 -0
  183. package/dist/browser/react/use-segments.d.ts +38 -0
  184. package/dist/browser/react/use-segments.d.ts.map +1 -0
  185. package/dist/browser/react/use-segments.js +130 -0
  186. package/dist/browser/react/use-segments.js.map +1 -0
  187. package/dist/browser/request-controller.d.ts +26 -0
  188. package/dist/browser/request-controller.d.ts.map +1 -0
  189. package/dist/browser/request-controller.js +147 -0
  190. package/dist/browser/request-controller.js.map +1 -0
  191. package/dist/browser/rsc-router.d.ts +129 -0
  192. package/dist/browser/rsc-router.d.ts.map +1 -0
  193. package/dist/browser/rsc-router.js +195 -0
  194. package/dist/browser/rsc-router.js.map +1 -0
  195. package/dist/browser/scroll-restoration.d.ts +93 -0
  196. package/dist/browser/scroll-restoration.d.ts.map +1 -0
  197. package/dist/browser/scroll-restoration.js +321 -0
  198. package/dist/browser/scroll-restoration.js.map +1 -0
  199. package/dist/browser/segment-structure-assert.d.ts +17 -0
  200. package/dist/browser/segment-structure-assert.d.ts.map +1 -0
  201. package/dist/browser/segment-structure-assert.js +59 -0
  202. package/dist/browser/segment-structure-assert.js.map +1 -0
  203. package/dist/browser/server-action-bridge.d.ts +26 -0
  204. package/dist/browser/server-action-bridge.d.ts.map +1 -0
  205. package/dist/browser/server-action-bridge.js +668 -0
  206. package/dist/browser/server-action-bridge.js.map +1 -0
  207. package/dist/browser/shallow.d.ts +12 -0
  208. package/dist/browser/shallow.d.ts.map +1 -0
  209. package/dist/browser/shallow.js +34 -0
  210. package/dist/browser/shallow.js.map +1 -0
  211. package/dist/browser/types.d.ts +369 -0
  212. package/dist/browser/types.d.ts.map +1 -0
  213. package/dist/browser/types.js +2 -0
  214. package/dist/browser/types.js.map +1 -0
  215. package/dist/build/__tests__/generate-cli.test.d.ts +2 -0
  216. package/dist/build/__tests__/generate-cli.test.d.ts.map +1 -0
  217. package/dist/build/__tests__/generate-cli.test.js +237 -0
  218. package/dist/build/__tests__/generate-cli.test.js.map +1 -0
  219. package/dist/build/__tests__/generate-manifest.test.d.ts +2 -0
  220. package/dist/build/__tests__/generate-manifest.test.d.ts.map +1 -0
  221. package/dist/build/__tests__/generate-manifest.test.js +119 -0
  222. package/dist/build/__tests__/generate-manifest.test.js.map +1 -0
  223. package/dist/build/__tests__/generate-route-types.test.d.ts +2 -0
  224. package/dist/build/__tests__/generate-route-types.test.d.ts.map +1 -0
  225. package/dist/build/__tests__/generate-route-types.test.js +620 -0
  226. package/dist/build/__tests__/generate-route-types.test.js.map +1 -0
  227. package/dist/build/__tests__/per-router-manifest.test.d.ts +2 -0
  228. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +1 -0
  229. package/dist/build/__tests__/per-router-manifest.test.js +308 -0
  230. package/dist/build/__tests__/per-router-manifest.test.js.map +1 -0
  231. package/dist/build/generate-manifest.d.ts +81 -0
  232. package/dist/build/generate-manifest.d.ts.map +1 -0
  233. package/dist/build/generate-manifest.js +276 -0
  234. package/dist/build/generate-manifest.js.map +1 -0
  235. package/dist/build/generate-route-types.d.ts +115 -0
  236. package/dist/build/generate-route-types.d.ts.map +1 -0
  237. package/dist/build/generate-route-types.js +740 -0
  238. package/dist/build/generate-route-types.js.map +1 -0
  239. package/dist/build/index.d.ts +21 -0
  240. package/dist/build/index.d.ts.map +1 -0
  241. package/dist/build/index.js +21 -0
  242. package/dist/build/index.js.map +1 -0
  243. package/dist/build/route-trie.d.ts +71 -0
  244. package/dist/build/route-trie.d.ts.map +1 -0
  245. package/dist/build/route-trie.js +175 -0
  246. package/dist/build/route-trie.js.map +1 -0
  247. package/dist/cache/__tests__/cache-scope.test.d.ts +2 -0
  248. package/dist/cache/__tests__/cache-scope.test.d.ts.map +1 -0
  249. package/dist/cache/__tests__/cache-scope.test.js +208 -0
  250. package/dist/cache/__tests__/cache-scope.test.js.map +1 -0
  251. package/dist/cache/__tests__/document-cache.test.d.ts +2 -0
  252. package/dist/cache/__tests__/document-cache.test.d.ts.map +1 -0
  253. package/dist/cache/__tests__/document-cache.test.js +345 -0
  254. package/dist/cache/__tests__/document-cache.test.js.map +1 -0
  255. package/dist/cache/__tests__/memory-segment-store.test.d.ts +2 -0
  256. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +1 -0
  257. package/dist/cache/__tests__/memory-segment-store.test.js +425 -0
  258. package/dist/cache/__tests__/memory-segment-store.test.js.map +1 -0
  259. package/dist/cache/__tests__/memory-store.test.d.ts +2 -0
  260. package/dist/cache/__tests__/memory-store.test.d.ts.map +1 -0
  261. package/dist/cache/__tests__/memory-store.test.js +367 -0
  262. package/dist/cache/__tests__/memory-store.test.js.map +1 -0
  263. package/dist/cache/cache-scope.d.ts +102 -0
  264. package/dist/cache/cache-scope.d.ts.map +1 -0
  265. package/dist/cache/cache-scope.js +440 -0
  266. package/dist/cache/cache-scope.js.map +1 -0
  267. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +2 -0
  268. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +1 -0
  269. package/dist/cache/cf/__tests__/cf-cache-store.test.js +330 -0
  270. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +1 -0
  271. package/dist/cache/cf/cf-cache-store.d.ts +165 -0
  272. package/dist/cache/cf/cf-cache-store.d.ts.map +1 -0
  273. package/dist/cache/cf/cf-cache-store.js +242 -0
  274. package/dist/cache/cf/cf-cache-store.js.map +1 -0
  275. package/dist/cache/cf/index.d.ts +14 -0
  276. package/dist/cache/cf/index.d.ts.map +1 -0
  277. package/dist/cache/cf/index.js +17 -0
  278. package/dist/cache/cf/index.js.map +1 -0
  279. package/dist/cache/document-cache.d.ts +64 -0
  280. package/dist/cache/document-cache.d.ts.map +1 -0
  281. package/dist/cache/document-cache.js +228 -0
  282. package/dist/cache/document-cache.js.map +1 -0
  283. package/dist/cache/index.d.ts +19 -0
  284. package/dist/cache/index.d.ts.map +1 -0
  285. package/dist/cache/index.js +21 -0
  286. package/dist/cache/index.js.map +1 -0
  287. package/dist/cache/memory-segment-store.d.ts +110 -0
  288. package/dist/cache/memory-segment-store.d.ts.map +1 -0
  289. package/dist/cache/memory-segment-store.js +117 -0
  290. package/dist/cache/memory-segment-store.js.map +1 -0
  291. package/dist/cache/memory-store.d.ts +41 -0
  292. package/dist/cache/memory-store.d.ts.map +1 -0
  293. package/dist/cache/memory-store.js +191 -0
  294. package/dist/cache/memory-store.js.map +1 -0
  295. package/dist/cache/types.d.ts +317 -0
  296. package/dist/cache/types.d.ts.map +1 -0
  297. package/dist/cache/types.js +12 -0
  298. package/dist/cache/types.js.map +1 -0
  299. package/dist/client.d.ts +248 -0
  300. package/dist/client.d.ts.map +1 -0
  301. package/dist/client.js +367 -0
  302. package/dist/client.js.map +1 -0
  303. package/dist/client.rsc.d.ts +26 -0
  304. package/dist/client.rsc.d.ts.map +1 -0
  305. package/dist/client.rsc.js +46 -0
  306. package/dist/client.rsc.js.map +1 -0
  307. package/dist/component-utils.d.ts +36 -0
  308. package/dist/component-utils.d.ts.map +1 -0
  309. package/dist/component-utils.js +61 -0
  310. package/dist/component-utils.js.map +1 -0
  311. package/dist/components/DefaultDocument.d.ts +13 -0
  312. package/dist/components/DefaultDocument.d.ts.map +1 -0
  313. package/dist/components/DefaultDocument.js +15 -0
  314. package/dist/components/DefaultDocument.js.map +1 -0
  315. package/dist/debug.d.ts +58 -0
  316. package/dist/debug.d.ts.map +1 -0
  317. package/dist/debug.js +157 -0
  318. package/dist/debug.js.map +1 -0
  319. package/dist/default-error-boundary.d.ts +11 -0
  320. package/dist/default-error-boundary.d.ts.map +1 -0
  321. package/dist/default-error-boundary.js +45 -0
  322. package/dist/default-error-boundary.js.map +1 -0
  323. package/dist/deps/browser.d.ts +2 -0
  324. package/dist/deps/browser.d.ts.map +1 -0
  325. package/dist/deps/browser.js +3 -0
  326. package/dist/deps/browser.js.map +1 -0
  327. package/dist/deps/html-stream-client.d.ts +2 -0
  328. package/dist/deps/html-stream-client.d.ts.map +1 -0
  329. package/dist/deps/html-stream-client.js +3 -0
  330. package/dist/deps/html-stream-client.js.map +1 -0
  331. package/dist/deps/html-stream-server.d.ts +2 -0
  332. package/dist/deps/html-stream-server.d.ts.map +1 -0
  333. package/dist/deps/html-stream-server.js +3 -0
  334. package/dist/deps/html-stream-server.js.map +1 -0
  335. package/dist/deps/rsc.d.ts +2 -0
  336. package/dist/deps/rsc.d.ts.map +1 -0
  337. package/dist/deps/rsc.js +4 -0
  338. package/dist/deps/rsc.js.map +1 -0
  339. package/dist/deps/ssr.d.ts +2 -0
  340. package/dist/deps/ssr.d.ts.map +1 -0
  341. package/dist/deps/ssr.js +3 -0
  342. package/dist/deps/ssr.js.map +1 -0
  343. package/dist/errors.d.ts +174 -0
  344. package/dist/errors.d.ts.map +1 -0
  345. package/dist/errors.js +241 -0
  346. package/dist/errors.js.map +1 -0
  347. package/dist/handle.d.ts +78 -0
  348. package/dist/handle.d.ts.map +1 -0
  349. package/dist/handle.js +82 -0
  350. package/dist/handle.js.map +1 -0
  351. package/dist/handles/MetaTags.d.ts +14 -0
  352. package/dist/handles/MetaTags.d.ts.map +1 -0
  353. package/dist/handles/MetaTags.js +136 -0
  354. package/dist/handles/MetaTags.js.map +1 -0
  355. package/dist/handles/index.d.ts +6 -0
  356. package/dist/handles/index.d.ts.map +1 -0
  357. package/{src/handles/index.ts → dist/handles/index.js} +1 -1
  358. package/dist/handles/index.js.map +1 -0
  359. package/dist/handles/meta.d.ts +39 -0
  360. package/dist/handles/meta.d.ts.map +1 -0
  361. package/dist/handles/meta.js +202 -0
  362. package/dist/handles/meta.js.map +1 -0
  363. package/dist/host/__tests__/errors.test.d.ts +2 -0
  364. package/dist/host/__tests__/errors.test.d.ts.map +1 -0
  365. package/dist/host/__tests__/errors.test.js +76 -0
  366. package/dist/host/__tests__/errors.test.js.map +1 -0
  367. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +2 -0
  368. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +1 -0
  369. package/dist/host/__tests__/pattern-comprehensive.test.js +732 -0
  370. package/dist/host/__tests__/pattern-comprehensive.test.js.map +1 -0
  371. package/dist/host/__tests__/pattern-matcher.test.d.ts +2 -0
  372. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +1 -0
  373. package/dist/host/__tests__/pattern-matcher.test.js +251 -0
  374. package/dist/host/__tests__/pattern-matcher.test.js.map +1 -0
  375. package/dist/host/__tests__/router.test.d.ts +2 -0
  376. package/dist/host/__tests__/router.test.d.ts.map +1 -0
  377. package/dist/host/__tests__/router.test.js +241 -0
  378. package/dist/host/__tests__/router.test.js.map +1 -0
  379. package/dist/host/__tests__/testing.test.d.ts +2 -0
  380. package/dist/host/__tests__/testing.test.d.ts.map +1 -0
  381. package/dist/host/__tests__/testing.test.js +64 -0
  382. package/dist/host/__tests__/testing.test.js.map +1 -0
  383. package/dist/host/__tests__/utils.test.d.ts +2 -0
  384. package/dist/host/__tests__/utils.test.d.ts.map +1 -0
  385. package/dist/host/__tests__/utils.test.js +29 -0
  386. package/dist/host/__tests__/utils.test.js.map +1 -0
  387. package/dist/host/cookie-handler.d.ts +34 -0
  388. package/dist/host/cookie-handler.d.ts.map +1 -0
  389. package/dist/host/cookie-handler.js +124 -0
  390. package/dist/host/cookie-handler.js.map +1 -0
  391. package/dist/host/errors.d.ts +56 -0
  392. package/dist/host/errors.d.ts.map +1 -0
  393. package/dist/host/errors.js +79 -0
  394. package/dist/host/errors.js.map +1 -0
  395. package/dist/host/index.d.ts +29 -0
  396. package/dist/host/index.d.ts.map +1 -0
  397. package/dist/host/index.js +32 -0
  398. package/dist/host/index.js.map +1 -0
  399. package/dist/host/pattern-matcher.d.ts +36 -0
  400. package/dist/host/pattern-matcher.d.ts.map +1 -0
  401. package/dist/host/pattern-matcher.js +172 -0
  402. package/dist/host/pattern-matcher.js.map +1 -0
  403. package/dist/host/router.d.ts +26 -0
  404. package/dist/host/router.d.ts.map +1 -0
  405. package/dist/host/router.js +218 -0
  406. package/dist/host/router.js.map +1 -0
  407. package/dist/host/testing.d.ts +36 -0
  408. package/dist/host/testing.d.ts.map +1 -0
  409. package/dist/host/testing.js +55 -0
  410. package/dist/host/testing.js.map +1 -0
  411. package/dist/host/types.d.ts +115 -0
  412. package/dist/host/types.d.ts.map +1 -0
  413. package/dist/host/types.js +7 -0
  414. package/dist/host/types.js.map +1 -0
  415. package/dist/host/utils.d.ts +21 -0
  416. package/dist/host/utils.d.ts.map +1 -0
  417. package/dist/host/utils.js +23 -0
  418. package/dist/host/utils.js.map +1 -0
  419. package/dist/href-client.d.ts +131 -0
  420. package/dist/href-client.d.ts.map +1 -0
  421. package/dist/href-client.js +64 -0
  422. package/dist/href-client.js.map +1 -0
  423. package/{src/href-context.ts → dist/href-context.d.ts} +7 -11
  424. package/dist/href-context.d.ts.map +1 -0
  425. package/dist/href-context.js +21 -0
  426. package/dist/href-context.js.map +1 -0
  427. package/dist/index.d.ts +73 -0
  428. package/dist/index.d.ts.map +1 -0
  429. package/dist/index.js +91 -0
  430. package/dist/index.js.map +1 -0
  431. package/dist/index.rsc.d.ts +32 -0
  432. package/dist/index.rsc.d.ts.map +1 -0
  433. package/dist/index.rsc.js +40 -0
  434. package/dist/index.rsc.js.map +1 -0
  435. package/dist/internal-debug.d.ts +2 -0
  436. package/dist/internal-debug.d.ts.map +1 -0
  437. package/dist/internal-debug.js +5 -0
  438. package/dist/internal-debug.js.map +1 -0
  439. package/dist/loader.d.ts +14 -0
  440. package/dist/loader.d.ts.map +1 -0
  441. package/dist/loader.js +20 -0
  442. package/dist/loader.js.map +1 -0
  443. package/dist/loader.rsc.d.ts +19 -0
  444. package/dist/loader.rsc.d.ts.map +1 -0
  445. package/dist/loader.rsc.js +99 -0
  446. package/dist/loader.rsc.js.map +1 -0
  447. package/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/testing/vitest.js +82 -0
  712. package/dist/theme/ThemeProvider.d.ts +20 -0
  713. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  714. package/dist/theme/ThemeProvider.js +240 -0
  715. package/dist/theme/ThemeProvider.js.map +1 -0
  716. package/dist/theme/ThemeScript.d.ts +48 -0
  717. package/dist/theme/ThemeScript.d.ts.map +1 -0
  718. package/dist/theme/ThemeScript.js +13 -0
  719. package/dist/theme/ThemeScript.js.map +1 -0
  720. package/dist/theme/__tests__/theme.test.d.ts +2 -0
  721. package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
  722. package/dist/theme/__tests__/theme.test.js +103 -0
  723. package/dist/theme/__tests__/theme.test.js.map +1 -0
  724. package/dist/theme/constants.d.ts +29 -0
  725. package/dist/theme/constants.d.ts.map +1 -0
  726. package/dist/theme/constants.js +48 -0
  727. package/dist/theme/constants.js.map +1 -0
  728. package/dist/theme/index.d.ts +31 -0
  729. package/dist/theme/index.d.ts.map +1 -0
  730. package/dist/theme/index.js +36 -0
  731. package/dist/theme/index.js.map +1 -0
  732. package/dist/theme/theme-context.d.ts +40 -0
  733. package/dist/theme/theme-context.d.ts.map +1 -0
  734. package/dist/theme/theme-context.js +60 -0
  735. package/dist/theme/theme-context.js.map +1 -0
  736. package/dist/theme/theme-script.d.ts +27 -0
  737. package/dist/theme/theme-script.d.ts.map +1 -0
  738. package/dist/theme/theme-script.js +147 -0
  739. package/dist/theme/theme-script.js.map +1 -0
  740. package/dist/theme/types.d.ts +163 -0
  741. package/dist/theme/types.d.ts.map +1 -0
  742. package/dist/theme/types.js +11 -0
  743. package/dist/theme/types.js.map +1 -0
  744. package/dist/theme/use-theme.d.ts +12 -0
  745. package/dist/theme/use-theme.d.ts.map +1 -0
  746. package/dist/theme/use-theme.js +40 -0
  747. package/dist/theme/use-theme.js.map +1 -0
  748. package/dist/types.d.ts +1479 -0
  749. package/dist/types.d.ts.map +1 -0
  750. package/dist/types.js +10 -0
  751. package/dist/types.js.map +1 -0
  752. package/dist/urls.d.ts +441 -0
  753. package/dist/urls.d.ts.map +1 -0
  754. package/dist/urls.gen.d.ts +8 -0
  755. package/dist/urls.gen.d.ts.map +1 -0
  756. package/dist/urls.gen.js +8 -0
  757. package/dist/urls.gen.js.map +1 -0
  758. package/dist/urls.js +443 -0
  759. package/dist/urls.js.map +1 -0
  760. package/dist/use-loader.d.ts +127 -0
  761. package/dist/use-loader.d.ts.map +1 -0
  762. package/dist/use-loader.js +237 -0
  763. package/dist/use-loader.js.map +1 -0
  764. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +2 -0
  765. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +1 -0
  766. package/dist/vite/__tests__/ast-handler-extract.test.js +294 -0
  767. package/dist/vite/__tests__/ast-handler-extract.test.js.map +1 -0
  768. package/dist/vite/__tests__/expose-id-utils.test.d.ts +2 -0
  769. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +1 -0
  770. package/dist/vite/__tests__/expose-id-utils.test.js +224 -0
  771. package/dist/vite/__tests__/expose-id-utils.test.js.map +1 -0
  772. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +2 -0
  773. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +1 -0
  774. package/dist/vite/__tests__/expose-internal-ids.test.js +647 -0
  775. package/dist/vite/__tests__/expose-internal-ids.test.js.map +1 -0
  776. package/dist/vite/__tests__/expose-router-id.test.d.ts +2 -0
  777. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +1 -0
  778. package/dist/vite/__tests__/expose-router-id.test.js +39 -0
  779. package/dist/vite/__tests__/expose-router-id.test.js.map +1 -0
  780. package/dist/vite/ast-handler-extract.d.ts +49 -0
  781. package/dist/vite/ast-handler-extract.d.ts.map +1 -0
  782. package/dist/vite/ast-handler-extract.js +249 -0
  783. package/dist/vite/ast-handler-extract.js.map +1 -0
  784. package/dist/vite/expose-action-id.d.ts +19 -0
  785. package/dist/vite/expose-action-id.d.ts.map +1 -0
  786. package/dist/vite/expose-action-id.js +250 -0
  787. package/dist/vite/expose-action-id.js.map +1 -0
  788. package/dist/vite/expose-id-utils.d.ts +69 -0
  789. package/dist/vite/expose-id-utils.d.ts.map +1 -0
  790. package/dist/vite/expose-id-utils.js +289 -0
  791. package/dist/vite/expose-id-utils.js.map +1 -0
  792. package/dist/vite/expose-internal-ids.d.ts +22 -0
  793. package/dist/vite/expose-internal-ids.d.ts.map +1 -0
  794. package/dist/vite/expose-internal-ids.js +886 -0
  795. package/dist/vite/expose-internal-ids.js.map +1 -0
  796. package/dist/vite/index.d.ts +149 -0
  797. package/dist/vite/index.d.ts.map +1 -0
  798. package/dist/vite/index.js +6263 -2733
  799. package/dist/vite/index.js.bak +5448 -0
  800. package/dist/vite/index.js.map +1 -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 +123 -68
  811. package/skills/api-client/SKILL.md +211 -0
  812. package/skills/breadcrumbs/SKILL.md +312 -0
  813. package/skills/bundle-analysis/SKILL.md +159 -0
  814. package/skills/cache-guide/SKILL.md +486 -0
  815. package/skills/caching/SKILL.md +349 -24
  816. package/skills/composability/SKILL.md +197 -0
  817. package/skills/css/SKILL.md +76 -0
  818. package/skills/debug-manifest/SKILL.md +12 -8
  819. package/skills/document-cache/SKILL.md +87 -62
  820. package/skills/fonts/SKILL.md +6 -4
  821. package/skills/handler-use/SKILL.md +364 -0
  822. package/skills/hooks/SKILL.md +557 -79
  823. package/skills/host-router/SKILL.md +278 -0
  824. package/skills/i18n/SKILL.md +276 -0
  825. package/skills/intercept/SKILL.md +175 -8
  826. package/skills/layout/SKILL.md +128 -5
  827. package/skills/links/SKILL.md +304 -25
  828. package/skills/loader/SKILL.md +604 -54
  829. package/skills/middleware/SKILL.md +213 -37
  830. package/skills/migrate-nextjs/SKILL.md +584 -0
  831. package/skills/migrate-react-router/SKILL.md +769 -0
  832. package/skills/mime-routes/SKILL.md +41 -10
  833. package/skills/observability/SKILL.md +172 -0
  834. package/skills/parallel/SKILL.md +276 -3
  835. package/skills/prerender/SKILL.md +432 -52
  836. package/skills/rango/SKILL.md +313 -21
  837. package/skills/react-compiler/SKILL.md +168 -0
  838. package/skills/response-routes/SKILL.md +248 -120
  839. package/skills/route/SKILL.md +287 -21
  840. package/skills/router-setup/SKILL.md +231 -33
  841. package/skills/server-actions/SKILL.md +775 -0
  842. package/skills/streams-and-websockets/SKILL.md +283 -0
  843. package/skills/tailwind/SKILL.md +27 -3
  844. package/skills/testing/SKILL.md +129 -0
  845. package/skills/testing/bindings.md +89 -0
  846. package/skills/testing/cache-prerender.md +124 -0
  847. package/skills/testing/client-components.md +122 -0
  848. package/skills/testing/e2e-parity.md +125 -0
  849. package/skills/testing/flight.md +92 -0
  850. package/skills/testing/handles.md +129 -0
  851. package/skills/testing/loader.md +128 -0
  852. package/skills/testing/middleware.md +99 -0
  853. package/skills/testing/render-handler.md +121 -0
  854. package/skills/testing/response-routes.md +95 -0
  855. package/skills/testing/reverse-and-types.md +84 -0
  856. package/skills/testing/server-actions.md +107 -0
  857. package/skills/testing/server-tree.md +128 -0
  858. package/skills/testing/setup.md +120 -0
  859. package/skills/theme/SKILL.md +9 -8
  860. package/skills/typesafety/SKILL.md +547 -107
  861. package/skills/use-cache/SKILL.md +355 -0
  862. package/skills/view-transitions/SKILL.md +294 -0
  863. package/src/__augment-tests__/augment.ts +81 -0
  864. package/src/__augment-tests__/augmented.check.ts +116 -0
  865. package/src/__internal.ts +77 -44
  866. package/src/bin/rango.ts +312 -15
  867. package/src/browser/action-coordinator.ts +114 -0
  868. package/src/browser/action-fence.ts +47 -0
  869. package/src/browser/app-shell.ts +39 -0
  870. package/src/browser/app-version.ts +14 -0
  871. package/src/browser/cookie-name.ts +140 -0
  872. package/src/browser/event-controller.ts +162 -200
  873. package/src/browser/history-state.ts +101 -0
  874. package/src/browser/index.ts +3 -3
  875. package/src/browser/intercept-utils.ts +52 -0
  876. package/src/browser/invalidate-client-cache.ts +52 -0
  877. package/src/browser/link-interceptor.ts +24 -4
  878. package/src/browser/logging.ts +11 -0
  879. package/src/browser/merge-segment-loaders.ts +20 -12
  880. package/src/browser/navigation-bridge.ts +323 -563
  881. package/src/browser/navigation-client.ts +219 -75
  882. package/src/browser/navigation-store-handle.ts +38 -0
  883. package/src/browser/navigation-store.ts +104 -112
  884. package/src/browser/navigation-transaction.ts +247 -0
  885. package/src/browser/network-error-handler.ts +61 -0
  886. package/src/browser/partial-update.ts +328 -348
  887. package/src/browser/prefetch/cache.ts +324 -0
  888. package/src/browser/prefetch/fetch.ts +357 -0
  889. package/src/browser/prefetch/observer.ts +65 -0
  890. package/src/browser/prefetch/policy.ts +48 -0
  891. package/src/browser/prefetch/queue.ts +194 -0
  892. package/src/browser/prefetch/resource-ready.ts +77 -0
  893. package/src/browser/rango-state.ts +194 -0
  894. package/src/browser/react/Link.tsx +253 -71
  895. package/src/browser/react/NavigationProvider.tsx +155 -34
  896. package/src/browser/react/ScrollRestoration.tsx +10 -6
  897. package/src/browser/react/context.ts +11 -0
  898. package/src/browser/react/filter-segment-order.ts +53 -0
  899. package/src/browser/react/index.ts +0 -48
  900. package/src/browser/react/location-state-shared.ts +260 -60
  901. package/src/browser/react/location-state.ts +90 -20
  902. package/src/browser/react/mount-context.ts +6 -1
  903. package/src/browser/react/nonce-context.ts +23 -0
  904. package/src/browser/react/shallow-equal.ts +27 -0
  905. package/src/browser/react/use-action.ts +35 -66
  906. package/src/browser/react/use-handle.ts +39 -126
  907. package/src/browser/react/use-link-status.ts +6 -9
  908. package/src/browser/react/use-navigation.ts +44 -68
  909. package/src/browser/react/use-params.ts +75 -0
  910. package/src/browser/react/use-pathname.ts +47 -0
  911. package/src/browser/react/use-reverse.ts +106 -0
  912. package/src/browser/react/use-router.ts +98 -0
  913. package/src/browser/react/use-search-params.ts +51 -0
  914. package/src/browser/react/use-segments.ts +72 -99
  915. package/src/browser/response-adapter.ts +124 -0
  916. package/src/browser/rsc-router.tsx +290 -72
  917. package/src/browser/scroll-restoration.ts +132 -49
  918. package/src/browser/segment-reconciler.ts +243 -0
  919. package/src/browser/segment-structure-assert.ts +17 -1
  920. package/src/browser/server-action-bridge.ts +621 -613
  921. package/src/browser/types.ts +175 -50
  922. package/src/browser/validate-redirect-origin.ts +56 -0
  923. package/src/build/collect-fallback-refs.ts +107 -0
  924. package/src/build/generate-manifest.ts +123 -56
  925. package/src/build/generate-route-types.ts +41 -1038
  926. package/src/build/index.ts +9 -6
  927. package/src/build/prefix-tree-utils.ts +123 -0
  928. package/src/build/route-trie.ts +165 -34
  929. package/src/build/route-types/ast-helpers.ts +25 -0
  930. package/src/build/route-types/ast-route-extraction.ts +98 -0
  931. package/src/build/route-types/codegen.ts +113 -0
  932. package/src/build/route-types/include-resolution.ts +418 -0
  933. package/src/build/route-types/param-extraction.ts +51 -0
  934. package/src/build/route-types/per-module-writer.ts +131 -0
  935. package/src/build/route-types/router-processing.ts +651 -0
  936. package/src/build/route-types/scan-filter.ts +85 -0
  937. package/src/build/route-types/source-scan.ts +118 -0
  938. package/src/build/runtime-discovery.ts +220 -0
  939. package/src/cache/background-task.ts +34 -0
  940. package/src/cache/cache-error.ts +104 -0
  941. package/src/cache/cache-key-utils.ts +44 -0
  942. package/src/cache/cache-policy.ts +165 -0
  943. package/src/cache/cache-runtime.ts +444 -0
  944. package/src/cache/cache-scope.ts +231 -325
  945. package/src/cache/cache-tag.ts +98 -0
  946. package/src/cache/cf/cf-cache-store.ts +2644 -75
  947. package/src/cache/cf/index.ts +17 -17
  948. package/src/cache/document-cache.ts +172 -92
  949. package/src/cache/handle-capture.ts +81 -0
  950. package/src/cache/handle-snapshot.ts +104 -0
  951. package/src/cache/index.ts +11 -35
  952. package/src/cache/memory-segment-store.ts +307 -30
  953. package/src/cache/profile-registry.ts +49 -0
  954. package/src/cache/read-through-swr.ts +164 -0
  955. package/src/cache/segment-codec.ts +240 -0
  956. package/src/cache/tag-invalidation.ts +230 -0
  957. package/src/cache/taint.ts +153 -0
  958. package/src/cache/types.ts +94 -211
  959. package/src/client.rsc.tsx +8 -21
  960. package/src/client.tsx +123 -347
  961. package/src/cloudflare/index.ts +11 -0
  962. package/src/cloudflare/tracing.ts +109 -0
  963. package/src/component-utils.ts +23 -4
  964. package/src/components/DefaultDocument.tsx +5 -1
  965. package/src/context-var.ts +168 -0
  966. package/src/debug.ts +19 -9
  967. package/src/decode-loader-results.ts +36 -0
  968. package/src/defer.ts +196 -0
  969. package/src/deps/ssr.ts +0 -1
  970. package/src/errors.ts +106 -10
  971. package/src/handle.ts +76 -23
  972. package/src/handles/MetaTags.tsx +73 -34
  973. package/src/handles/breadcrumbs.ts +77 -0
  974. package/src/handles/meta.ts +30 -52
  975. package/src/host/cookie-handler.ts +21 -51
  976. package/src/host/errors.ts +8 -32
  977. package/src/host/index.ts +12 -9
  978. package/src/host/pattern-matcher.ts +34 -77
  979. package/src/host/router.ts +151 -121
  980. package/src/host/testing.ts +45 -32
  981. package/src/host/types.ts +52 -11
  982. package/src/host/utils.ts +2 -2
  983. package/src/href-client.ts +192 -57
  984. package/src/index.rsc.ts +174 -34
  985. package/src/index.ts +241 -73
  986. package/src/internal-debug.ts +8 -4
  987. package/src/loader-store.ts +500 -0
  988. package/src/loader.rsc.ts +31 -99
  989. package/src/loader.ts +30 -12
  990. package/src/missing-id-error.ts +68 -0
  991. package/src/network-error-thrower.tsx +4 -7
  992. package/src/outlet-context.ts +1 -1
  993. package/src/outlet-provider.tsx +41 -0
  994. package/src/prerender/param-hash.ts +14 -13
  995. package/src/prerender/store.ts +121 -21
  996. package/src/prerender.ts +445 -24
  997. package/src/redirect-origin.ts +100 -0
  998. package/src/response-utils.ts +37 -0
  999. package/src/reverse.ts +198 -128
  1000. package/src/root-error-boundary.tsx +42 -48
  1001. package/src/route-content-wrapper.tsx +10 -72
  1002. package/src/route-definition/dsl-helpers.ts +1116 -0
  1003. package/src/route-definition/helper-factories.ts +90 -0
  1004. package/src/route-definition/helpers-types.ts +506 -0
  1005. package/src/route-definition/index.ts +55 -0
  1006. package/src/route-definition/redirect.ts +135 -0
  1007. package/src/route-definition/resolve-handler-use.ts +161 -0
  1008. package/src/route-definition/use-item-types.ts +32 -0
  1009. package/src/route-definition.ts +1 -1450
  1010. package/src/route-map-builder.ts +82 -144
  1011. package/src/route-name.ts +53 -0
  1012. package/src/route-types.ts +72 -41
  1013. package/src/router/basename.ts +14 -0
  1014. package/src/router/content-negotiation.ts +215 -0
  1015. package/src/router/debug-manifest.ts +72 -0
  1016. package/src/router/error-handling.ts +22 -26
  1017. package/src/router/find-match.ts +181 -0
  1018. package/src/router/handler-context.ts +372 -125
  1019. package/src/router/instrument.ts +346 -0
  1020. package/src/router/intercept-resolution.ts +34 -27
  1021. package/src/router/lazy-includes.ts +200 -0
  1022. package/src/router/loader-resolution.ts +381 -147
  1023. package/src/router/logging.ts +106 -6
  1024. package/src/router/manifest.ts +88 -51
  1025. package/src/router/match-api.ts +162 -245
  1026. package/src/router/match-context.ts +4 -24
  1027. package/src/router/match-handlers.ts +440 -0
  1028. package/src/router/match-middleware/background-revalidation.ts +90 -89
  1029. package/src/router/match-middleware/cache-lookup.ts +297 -150
  1030. package/src/router/match-middleware/cache-store.ts +75 -33
  1031. package/src/router/match-middleware/intercept-resolution.ts +44 -43
  1032. package/src/router/match-middleware/segment-resolution.ts +64 -22
  1033. package/src/router/match-pipelines.ts +11 -87
  1034. package/src/router/match-result.ts +121 -50
  1035. package/src/router/metrics.ts +219 -28
  1036. package/src/router/middleware-types.ts +93 -0
  1037. package/src/router/middleware.ts +421 -413
  1038. package/src/router/navigation-snapshot.ts +131 -0
  1039. package/src/router/params-util.ts +23 -0
  1040. package/src/router/pattern-matching.ts +263 -79
  1041. package/src/router/prerender-match.ts +541 -0
  1042. package/src/router/preview-match.ts +100 -0
  1043. package/src/router/request-classification.ts +276 -0
  1044. package/src/router/revalidation.ts +143 -44
  1045. package/src/router/route-snapshot.ts +244 -0
  1046. package/src/router/router-context.ts +41 -47
  1047. package/src/router/router-interfaces.ts +525 -0
  1048. package/src/router/router-options.ts +726 -0
  1049. package/src/router/router-registry.ts +21 -0
  1050. package/src/router/segment-resolution/fresh.ts +747 -0
  1051. package/src/router/segment-resolution/helpers.ts +314 -0
  1052. package/src/router/segment-resolution/loader-cache.ts +207 -0
  1053. package/src/router/segment-resolution/revalidation.ts +1322 -0
  1054. package/src/router/segment-resolution/static-store.ts +81 -0
  1055. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  1056. package/src/router/segment-resolution/view-transition-default.ts +36 -0
  1057. package/src/router/segment-resolution.ts +24 -1354
  1058. package/src/router/segment-wrappers.ts +289 -0
  1059. package/src/router/state-cookie-name.ts +33 -0
  1060. package/src/router/substitute-pattern-params.ts +56 -0
  1061. package/src/router/telemetry-otel.ts +261 -0
  1062. package/src/router/telemetry.ts +377 -0
  1063. package/src/router/timeout.ts +128 -0
  1064. package/src/router/tracing.ts +206 -0
  1065. package/src/router/trie-matching.ts +172 -60
  1066. package/src/router/types.ts +23 -70
  1067. package/src/router/url-params.ts +44 -0
  1068. package/src/router.ts +748 -2376
  1069. package/src/rsc/handler-context.ts +46 -0
  1070. package/src/rsc/handler.ts +861 -1141
  1071. package/src/rsc/helpers.ts +269 -19
  1072. package/src/rsc/index.ts +1 -21
  1073. package/src/rsc/json-route-result.ts +38 -0
  1074. package/src/rsc/loader-fetch.ts +235 -0
  1075. package/src/rsc/manifest-init.ts +77 -0
  1076. package/src/rsc/nonce.ts +14 -0
  1077. package/src/rsc/origin-guard.ts +155 -0
  1078. package/src/rsc/progressive-enhancement.ts +413 -0
  1079. package/src/rsc/redirect-guard.ts +99 -0
  1080. package/src/rsc/response-error.ts +104 -0
  1081. package/src/rsc/response-route-handler.ts +374 -0
  1082. package/src/rsc/rsc-rendering.ts +261 -0
  1083. package/src/rsc/runtime-warnings.ts +55 -0
  1084. package/src/rsc/server-action.ts +376 -0
  1085. package/src/rsc/ssr-setup.ts +144 -0
  1086. package/src/rsc/types.ts +58 -12
  1087. package/src/runtime-env.ts +18 -0
  1088. package/src/search-params.ts +70 -74
  1089. package/src/segment-content-promise.ts +67 -0
  1090. package/src/segment-loader-promise.ts +134 -0
  1091. package/src/segment-system.tsx +292 -134
  1092. package/src/serialize.ts +243 -0
  1093. package/src/server/context.ts +439 -85
  1094. package/src/server/cookie-store.ts +265 -0
  1095. package/src/server/fetchable-loader-store.ts +11 -6
  1096. package/src/server/handle-store.ts +112 -31
  1097. package/src/server/loader-registry.ts +23 -82
  1098. package/src/server/request-context.ts +724 -143
  1099. package/src/server.ts +26 -164
  1100. package/src/ssr/index.tsx +113 -36
  1101. package/src/static-handler.ts +45 -18
  1102. package/src/testing/cache-status.ts +162 -0
  1103. package/src/testing/collect-handle.ts +40 -0
  1104. package/src/testing/dispatch.ts +618 -0
  1105. package/src/testing/dom.entry.ts +22 -0
  1106. package/src/testing/e2e/fixture.ts +188 -0
  1107. package/src/testing/e2e/index.ts +128 -0
  1108. package/src/testing/e2e/matchers.ts +35 -0
  1109. package/src/testing/e2e/page-helpers.ts +272 -0
  1110. package/src/testing/e2e/parity.ts +387 -0
  1111. package/src/testing/e2e/server.ts +195 -0
  1112. package/src/testing/flight-matchers.ts +97 -0
  1113. package/src/testing/flight-normalize.ts +11 -0
  1114. package/src/testing/flight-runtime.d.ts +57 -0
  1115. package/src/testing/flight-tree.ts +682 -0
  1116. package/src/testing/flight.entry.ts +52 -0
  1117. package/src/testing/flight.ts +232 -0
  1118. package/src/testing/generated-routes.ts +183 -0
  1119. package/src/testing/index.ts +99 -0
  1120. package/src/testing/internal/context.ts +348 -0
  1121. package/src/testing/internal/flight-client-globals.ts +30 -0
  1122. package/src/testing/internal/seed-vars.ts +54 -0
  1123. package/src/testing/render-handler.ts +330 -0
  1124. package/src/testing/render-route.tsx +566 -0
  1125. package/src/testing/run-loader.ts +378 -0
  1126. package/src/testing/run-middleware.ts +205 -0
  1127. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  1128. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  1129. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  1130. package/src/testing/vitest-stubs/version.ts +5 -0
  1131. package/src/testing/vitest.ts +305 -0
  1132. package/src/theme/ThemeProvider.tsx +21 -67
  1133. package/src/theme/ThemeScript.tsx +5 -11
  1134. package/src/theme/constants.ts +5 -14
  1135. package/src/theme/index.ts +3 -20
  1136. package/src/theme/theme-context.ts +5 -35
  1137. package/src/theme/theme-script.ts +21 -32
  1138. package/src/theme/use-theme.ts +0 -3
  1139. package/src/types/boundaries.ts +123 -0
  1140. package/src/types/cache-types.ts +207 -0
  1141. package/src/types/error-types.ts +132 -0
  1142. package/src/types/global-namespace.ts +113 -0
  1143. package/src/types/handler-context.ts +839 -0
  1144. package/src/types/index.ts +79 -0
  1145. package/src/types/loader-types.ts +212 -0
  1146. package/src/types/request-scope.ts +107 -0
  1147. package/src/types/route-config.ts +126 -0
  1148. package/src/types/route-entry.ts +114 -0
  1149. package/src/types/segments.ts +171 -0
  1150. package/src/types.ts +1 -1795
  1151. package/src/urls/include-helper.ts +160 -0
  1152. package/src/urls/index.ts +43 -0
  1153. package/src/urls/path-helper-types.ts +386 -0
  1154. package/src/urls/path-helper.ts +275 -0
  1155. package/src/urls/pattern-types.ts +124 -0
  1156. package/src/urls/response-types.ts +109 -0
  1157. package/src/urls/type-extraction.ts +291 -0
  1158. package/src/urls/urls-function.ts +81 -0
  1159. package/src/urls.ts +1 -1323
  1160. package/src/use-loader.tsx +406 -141
  1161. package/src/vite/debug.ts +185 -0
  1162. package/src/vite/discovery/bundle-postprocess.ts +182 -0
  1163. package/src/vite/discovery/discover-routers.ts +389 -0
  1164. package/src/vite/discovery/discovery-errors.ts +194 -0
  1165. package/src/vite/discovery/gate-state.ts +171 -0
  1166. package/src/vite/discovery/prerender-collection.ts +467 -0
  1167. package/src/vite/discovery/route-types-writer.ts +214 -0
  1168. package/src/vite/discovery/self-gen-tracking.ts +73 -0
  1169. package/src/vite/discovery/state.ts +161 -0
  1170. package/src/vite/discovery/virtual-module-codegen.ts +183 -0
  1171. package/src/vite/index.ts +17 -2259
  1172. package/src/vite/plugin-types.ts +221 -0
  1173. package/src/vite/plugins/cjs-to-esm.ts +83 -0
  1174. package/src/vite/plugins/client-ref-dedup.ts +120 -0
  1175. package/src/vite/plugins/client-ref-hashing.ts +118 -0
  1176. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  1177. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1178. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  1179. package/src/vite/{expose-action-id.ts → plugins/expose-action-id.ts} +88 -110
  1180. package/src/vite/{expose-id-utils.ts → plugins/expose-id-utils.ts} +13 -87
  1181. package/src/vite/plugins/expose-ids/export-analysis.ts +338 -0
  1182. package/src/vite/plugins/expose-ids/handler-transform.ts +141 -0
  1183. package/src/vite/plugins/expose-ids/loader-transform.ts +57 -0
  1184. package/src/vite/plugins/expose-ids/router-transform.ts +124 -0
  1185. package/src/vite/plugins/expose-ids/types.ts +45 -0
  1186. package/src/vite/plugins/expose-internal-ids.ts +806 -0
  1187. package/src/vite/plugins/performance-tracks.ts +89 -0
  1188. package/src/vite/plugins/refresh-cmd.ts +127 -0
  1189. package/src/vite/plugins/use-cache-transform.ts +313 -0
  1190. package/src/vite/plugins/version-injector.ts +79 -0
  1191. package/src/vite/plugins/version-plugin.ts +275 -0
  1192. package/src/vite/plugins/virtual-entries.ts +108 -0
  1193. package/src/vite/plugins/virtual-stub-plugin.ts +29 -0
  1194. package/src/vite/rango.ts +444 -0
  1195. package/src/vite/router-discovery.ts +1581 -0
  1196. package/src/vite/{ast-handler-extract.ts → utils/ast-handler-extract.ts} +193 -37
  1197. package/src/vite/utils/banner.ts +36 -0
  1198. package/src/vite/utils/bundle-analysis.ts +132 -0
  1199. package/src/vite/utils/client-chunks.ts +184 -0
  1200. package/src/vite/utils/forward-user-plugins.ts +171 -0
  1201. package/src/vite/utils/manifest-utils.ts +15 -0
  1202. package/src/vite/utils/package-resolution.ts +89 -0
  1203. package/src/vite/utils/prerender-utils.ts +223 -0
  1204. package/src/vite/utils/shared-utils.ts +219 -0
  1205. package/CLAUDE.md +0 -43
  1206. package/src/browser/lru-cache.ts +0 -69
  1207. package/src/browser/request-controller.ts +0 -164
  1208. package/src/browser/shallow.ts +0 -35
  1209. package/src/cache/memory-store.ts +0 -253
  1210. package/src/router.gen.ts +0 -6
  1211. package/src/static-handler.gen.ts +0 -5
  1212. package/src/urls.gen.ts +0 -8
  1213. package/src/vite/expose-internal-ids.ts +0 -1167
  1214. /package/src/vite/{version.d.ts → plugins/version.d.ts} +0 -0
package/src/client.tsx CHANGED
@@ -13,13 +13,91 @@ import {
13
13
  type ClientErrorBoundaryFallbackProps,
14
14
  type ErrorInfo,
15
15
  type LoaderDefinition,
16
- type LoaderFn,
17
16
  type ResolvedSegment,
18
17
  } from "./types";
19
18
  import {
20
19
  RouteContentWrapper,
21
20
  LoaderBoundary,
22
21
  } from "./route-content-wrapper.js";
22
+ import { OutletProvider } from "./outlet-provider.js";
23
+ import { MountContextProvider } from "./browser/react/mount-context.js";
24
+ import { getMemoizedContentPromise } from "./segment-content-promise.js";
25
+
26
+ /**
27
+ * Render the content for a named parallel/intercept slot segment.
28
+ *
29
+ * Shared by Outlet (with `name` prop) and ParallelOutlet — both resolve a
30
+ * segment from context.parallel by slot name and then render it through the
31
+ * same layout/loader/mountPath wrapping pipeline.
32
+ */
33
+ function renderSlotContent(segment: ResolvedSegment | null): ReactNode {
34
+ if (!segment) return null;
35
+
36
+ const content: ReactNode =
37
+ segment.loading || segment.component instanceof Promise ? (
38
+ <RouteContentWrapper
39
+ content={getMemoizedContentPromise(segment.component)}
40
+ fallback={segment.loading}
41
+ segmentId={segment.id}
42
+ />
43
+ ) : (
44
+ (segment.component ?? null)
45
+ );
46
+
47
+ const hasOwnLoaders = !!(segment.loaderDataPromise && segment.loaderIds);
48
+ const loaderWrapped = hasOwnLoaders ? (
49
+ <LoaderBoundary
50
+ loaderDataPromise={segment.loaderDataPromise!}
51
+ loaderIds={segment.loaderIds!}
52
+ fallback={segment.loading}
53
+ outletKey={segment.id + "-loader"}
54
+ outletContent={null}
55
+ segment={segment}
56
+ >
57
+ {content}
58
+ </LoaderBoundary>
59
+ ) : null;
60
+
61
+ let result: ReactNode;
62
+ if (segment.layout) {
63
+ // Layout renders immediately; if loaders exist, the LoaderBoundary becomes
64
+ // the outlet content so layout's <Outlet /> suspends until loaders resolve.
65
+ result = (
66
+ <OutletProvider
67
+ content={hasOwnLoaders ? loaderWrapped : content}
68
+ segment={segment}
69
+ >
70
+ {segment.layout}
71
+ </OutletProvider>
72
+ );
73
+ } else if (hasOwnLoaders) {
74
+ // No layout but has loaders — wrap content with LoaderBoundary for useLoader context.
75
+ // Common for intercept routes that use useLoader without a custom layout.
76
+ result = loaderWrapped;
77
+ } else {
78
+ result = content;
79
+ }
80
+
81
+ if (segment.mountPath) {
82
+ return (
83
+ <MountContextProvider value={segment.mountPath}>
84
+ {result}
85
+ </MountContextProvider>
86
+ );
87
+ }
88
+
89
+ return result;
90
+ }
91
+
92
+ function useSlotSegment(
93
+ context: OutletContextValue | null,
94
+ name: `@${string}` | undefined,
95
+ ): ResolvedSegment | null {
96
+ return useMemo(() => {
97
+ if (!name || !context?.parallel) return null;
98
+ return context.parallel.find((seg) => seg.slot === name) ?? null;
99
+ }, [context, name]);
100
+ }
23
101
 
24
102
  /**
25
103
  * Outlet component - renders child content in layouts
@@ -33,6 +111,11 @@ import {
33
111
  * the parallel segment with that slot name instead of the default content.
34
112
  * This is used for parallel routes and intercepting routes.
35
113
  *
114
+ * For a named slot, `<Outlet name="@x" />` is equivalent to
115
+ * `<ParallelOutlet name="@x" />` — both run the same resolution + wrapping
116
+ * pipeline. Convention: use bare `<Outlet />` for default content and
117
+ * `<ParallelOutlet name="@x" />` for named slots.
118
+ *
36
119
  * @param name - Optional slot name for parallel/intercept content (must start with @)
37
120
  *
38
121
  * @example
@@ -60,84 +143,10 @@ import {
60
143
  */
61
144
  export function Outlet({ name }: { name?: `@${string}` } = {}): ReactNode {
62
145
  const context = useContext(OutletContext);
146
+ const namedSegment = useSlotSegment(context, name);
63
147
 
64
- // If name provided, render parallel/intercept content for that slot
65
148
  if (name) {
66
- const segment = context?.parallel?.find((seg) => seg.slot === name) ?? null;
67
-
68
- if (!segment) return null;
69
-
70
- // Determine the content to render
71
- let content: ReactNode;
72
- if (segment.loading || segment.component instanceof Promise) {
73
- // Use RouteContentWrapper to handle Suspense wrapping properly
74
- content = (
75
- <RouteContentWrapper
76
- content={
77
- segment.component instanceof Promise
78
- ? segment.component
79
- : Promise.resolve(segment.component)
80
- }
81
- fallback={segment.loading}
82
- segmentId={segment.id}
83
- />
84
- );
85
- } else {
86
- content = segment.component ?? null;
87
- }
88
-
89
- // If segment has a layout, wrap appropriately
90
- if (segment.layout) {
91
- // Check if this segment has loaders that need streaming
92
- // The layout renders immediately, LoaderBoundary becomes the outlet content
93
- // When layout renders <Outlet />, it gets the LoaderBoundary which suspends
94
- if (segment.loaderDataPromise && segment.loaderIds) {
95
- const loaderAwareContent = (
96
- <LoaderBoundary
97
- loaderDataPromise={segment.loaderDataPromise}
98
- loaderIds={segment.loaderIds}
99
- fallback={segment.loading}
100
- outletKey={segment.id + "-loader"}
101
- outletContent={null}
102
- segment={segment}
103
- >
104
- {content}
105
- </LoaderBoundary>
106
- );
107
-
108
- return (
109
- <OutletProvider content={loaderAwareContent} segment={segment}>
110
- {segment.layout}
111
- </OutletProvider>
112
- );
113
- }
114
-
115
- // No loaders - wrap in OutletProvider so layout can use <Outlet />
116
- return (
117
- <OutletProvider content={content} segment={segment}>
118
- {segment.layout}
119
- </OutletProvider>
120
- );
121
- }
122
-
123
- // No layout but has loaders - wrap content with LoaderBoundary for useLoader context
124
- // This is common for intercept routes that use useLoader without a custom layout
125
- if (segment.loaderDataPromise && segment.loaderIds) {
126
- return (
127
- <LoaderBoundary
128
- loaderDataPromise={segment.loaderDataPromise}
129
- loaderIds={segment.loaderIds}
130
- fallback={segment.loading}
131
- outletKey={segment.id + "-loader"}
132
- outletContent={null}
133
- segment={segment}
134
- >
135
- {content}
136
- </LoaderBoundary>
137
- );
138
- }
139
-
140
- return content;
149
+ return renderSlotContent(namedSegment);
141
150
  }
142
151
 
143
152
  // Default: render child content
@@ -151,6 +160,7 @@ export function Outlet({ name }: { name?: `@${string}` } = {}): ReactNode {
151
160
 
152
161
  return content;
153
162
  }
163
+
154
164
  /**
155
165
  * ParallelOutlet component - renders content for a named parallel slot
156
166
  *
@@ -158,6 +168,9 @@ export function Outlet({ name }: { name?: `@${string}` } = {}): ReactNode {
158
168
  * is wrapped in Suspense with the loading component as fallback.
159
169
  * This enables streaming and navigation loading states for parallels.
160
170
  *
171
+ * Equivalent to `<Outlet name="@x" />` for a named slot; ParallelOutlet
172
+ * requires `name` and is named-slot-only, which reads clearer at the call site.
173
+ *
161
174
  * @param name - The slot name (must start with @, e.g., "@modal", "@sidebar")
162
175
  *
163
176
  * @example
@@ -175,124 +188,15 @@ export function Outlet({ name }: { name?: `@${string}` } = {}): ReactNode {
175
188
  */
176
189
  export function ParallelOutlet({ name }: { name: `@${string}` }): ReactNode {
177
190
  const context = useContext(OutletContext);
178
- const segment = useMemo(() => {
179
- if (!context?.parallel) return null;
180
- return context.parallel.find((seg) => seg.slot === name) ?? null;
181
- }, [context, name]);
182
-
183
- if (!segment) return null;
184
-
185
- // Determine the content to render
186
- let content: ReactNode;
187
- if (segment.loading || segment.component instanceof Promise) {
188
- // Use RouteContentWrapper to handle Suspense wrapping properly
189
- content = (
190
- <RouteContentWrapper
191
- content={
192
- segment.component instanceof Promise
193
- ? segment.component
194
- : Promise.resolve(segment.component)
195
- }
196
- fallback={segment.loading}
197
- segmentId={segment.id}
198
- />
199
- );
200
- } else {
201
- content = segment.component ?? null;
202
- }
203
-
204
- // If segment has a layout, wrap appropriately
205
- if (segment.layout) {
206
- // Check if this segment has loaders that need streaming
207
- // The layout renders immediately, LoaderBoundary becomes the outlet content
208
- if (segment.loaderDataPromise && segment.loaderIds) {
209
- const loaderAwareContent = (
210
- <LoaderBoundary
211
- loaderDataPromise={segment.loaderDataPromise}
212
- loaderIds={segment.loaderIds}
213
- fallback={segment.loading}
214
- outletKey={segment.id + "-loader"}
215
- outletContent={null}
216
- segment={segment}
217
- >
218
- {content}
219
- </LoaderBoundary>
220
- );
221
-
222
- return (
223
- <OutletProvider content={loaderAwareContent} segment={segment}>
224
- {segment.layout}
225
- </OutletProvider>
226
- );
227
- }
228
-
229
- // No loaders - wrap in OutletProvider so layout can use <Outlet />
230
- return (
231
- <OutletProvider content={content} segment={segment}>
232
- {segment.layout}
233
- </OutletProvider>
234
- );
235
- }
191
+ const segment = useSlotSegment(context, name);
236
192
 
237
- // No layout but has loaders - wrap content with LoaderBoundary for useLoader context
238
- // This is common for intercept routes that use useLoader without a custom layout
239
- if (segment.loaderDataPromise && segment.loaderIds) {
240
- return (
241
- <LoaderBoundary
242
- loaderDataPromise={segment.loaderDataPromise}
243
- loaderIds={segment.loaderIds}
244
- fallback={segment.loading}
245
- outletKey={segment.id + "-loader"}
246
- outletContent={null}
247
- segment={segment}
248
- >
249
- {content}
250
- </LoaderBoundary>
251
- );
252
- }
253
-
254
- return content;
193
+ return renderSlotContent(segment);
255
194
  }
256
195
 
257
- /**
258
- * Provider for outlet content - used internally by renderSegments
259
- *
260
- * Stores a reference to parent context so useLoader can walk up the chain
261
- * to find loader data from parent layouts. If this segment defines a loading
262
- * component, Outlet will wrap content with Suspense using that as fallback.
263
- */
264
- export function OutletProvider({
265
- content,
266
- parallel,
267
- segment,
268
- loaderData,
269
- children,
270
- }: {
271
- content: ReactNode;
272
- parallel?: ResolvedSegment[];
273
- segment?: ResolvedSegment;
274
- loaderData?: Record<string, any>;
275
- children: ReactNode;
276
- }): ReactNode {
277
- // Get parent context to enable walking up the chain for loader lookups
278
- const parentContext = useContext(OutletContext);
279
-
280
- const value = useMemo(
281
- () => ({
282
- content,
283
- parallel,
284
- segment,
285
- loaderData,
286
- parent: parentContext,
287
- loading: segment?.loading,
288
- }),
289
- [content, parallel, segment, loaderData, parentContext]
290
- );
291
-
292
- return (
293
- <OutletContext.Provider value={value}>{children}</OutletContext.Provider>
294
- );
295
- }
196
+ // OutletProvider is defined in outlet-provider.tsx to break a circular
197
+ // dependency between client.tsx and route-content-wrapper.tsx. It is imported
198
+ // at the top of this file for local use in Outlet/ParallelOutlet only; it is an
199
+ // internal component and is intentionally not part of the public ./client API.
296
200
 
297
201
  /**
298
202
  * Hook to access outlet content programmatically
@@ -313,113 +217,16 @@ export function useOutlet(): ReactNode {
313
217
  return context?.content ?? null;
314
218
  }
315
219
 
316
- // Loader hooks - re-exported from dedicated file
317
220
  export {
318
221
  useLoader,
319
222
  useFetchLoader,
223
+ useRefreshLoaders,
320
224
  type LoadFunction,
321
225
  type UseLoaderResult,
322
226
  type UseFetchLoaderResult,
323
227
  type UseLoaderOptions,
324
228
  } from "./use-loader.js";
325
229
 
326
- /**
327
- * Hook to access all loader data in the current context
328
- *
329
- * Returns a record of all loader data available in the current outlet context
330
- * and all parent contexts. Useful for debugging or when you need access to
331
- * multiple loaders.
332
- *
333
- * @returns Record of loader name to data, or empty object if no loaders
334
- *
335
- * @example
336
- * ```tsx
337
- * "use client";
338
- * import { useLoaderData } from "rsc-router/client";
339
- *
340
- * export function DebugPanel() {
341
- * const loaderData = useLoaderData();
342
- * return <pre>{JSON.stringify(loaderData, null, 2)}</pre>;
343
- * }
344
- * ```
345
- */
346
- export function useLoaderData(): Record<string, any> {
347
- const context = useContext(OutletContext);
348
-
349
- // Collect all loader data from the context chain
350
- // Child loaders override parent loaders with the same name
351
- const result: Record<string, any> = {};
352
- const stack: OutletContextValue[] = [];
353
-
354
- // Build stack from current to root
355
- let current: OutletContextValue | null | undefined = context;
356
- while (current) {
357
- stack.push(current);
358
- current = current.parent;
359
- }
360
-
361
- // Apply from root to current (so children override parents)
362
- for (let i = stack.length - 1; i >= 0; i--) {
363
- const ctx = stack[i];
364
- if (ctx.loaderData) {
365
- Object.assign(result, ctx.loaderData);
366
- }
367
- }
368
-
369
- return result;
370
- }
371
-
372
- /**
373
- * Client-safe createLoader factory
374
- *
375
- * Creates a loader definition that can be used with useLoader().
376
- * This is the client-side version that only stores the $$id - the function
377
- * is ignored since loaders only execute on the server.
378
- *
379
- * The $$id is injected by the exposeLoaderId Vite plugin. In most cases,
380
- * you should import the loader directly from the server file rather than
381
- * creating a reference manually.
382
- *
383
- * @param fn - Loader function (ignored on client, kept for API compatibility)
384
- * @param _fetchable - Optional fetchable flag (ignored on client)
385
- * @param __injectedId - $$id injected by Vite plugin
386
- *
387
- * @example
388
- * ```tsx
389
- * "use client";
390
- * import { useLoader } from "rsc-router/client";
391
- * import { CartLoader } from "../loaders/cart"; // Import from server file
392
- *
393
- * export function CartIcon() {
394
- * const cart = useLoader(CartLoader);
395
- * return <span>Cart ({cart?.items.length ?? 0})</span>;
396
- * }
397
- * ```
398
- */
399
- // Overload 1: With function only (not fetchable)
400
- export function createLoader<T>(
401
- fn: LoaderFn<T, Record<string, string | undefined>, any>
402
- ): LoaderDefinition<Awaited<T>, Record<string, string | undefined>>;
403
-
404
- // Overload 2: With function and fetchable flag
405
- export function createLoader<T>(
406
- fn: LoaderFn<T, Record<string, string | undefined>, any>,
407
- fetchable: true
408
- ): LoaderDefinition<Awaited<T>, Record<string, string | undefined>>;
409
-
410
- // Implementation - function is ignored at runtime on client
411
- // The $$id is injected by Vite plugin as hidden third parameter
412
- export function createLoader(
413
- _fn: LoaderFn<any, Record<string, string | undefined>, any>,
414
- _fetchable?: true,
415
- __injectedId?: string
416
- ): LoaderDefinition<any, Record<string, string | undefined>> {
417
- return {
418
- __brand: "loader",
419
- $$id: __injectedId || "",
420
- };
421
- }
422
-
423
230
  /**
424
231
  * Props for the ErrorBoundary component
425
232
  */
@@ -528,116 +335,85 @@ export class ErrorBoundary extends Component<
528
335
  }
529
336
  }
530
337
 
531
- // ============================================================================
532
- // Re-exports from browser/react for convenience
533
- // These are the most commonly used client-side navigation utilities
534
- // ============================================================================
535
-
536
- // Navigation hooks
537
- export {
538
- useNavigation,
539
- type NavigationMethods,
540
- type NavigationValue,
541
- } from "./browser/react/use-navigation.js";
338
+ export { useNavigation } from "./browser/react/use-navigation.js";
339
+ export { useRouter } from "./browser/react/use-router.js";
340
+ export { usePathname } from "./browser/react/use-pathname.js";
341
+ export { useSearchParams } from "./browser/react/use-search-params.js";
342
+ export { useParams } from "./browser/react/use-params.js";
343
+ export type {
344
+ RouterInstance,
345
+ RouterNavigateOptions,
346
+ ReadonlyURLSearchParams,
347
+ ActionState,
348
+ ActionLifecycleState,
349
+ } from "./browser/types.js";
542
350
 
543
- // Action state tracking hook
544
351
  export {
545
352
  useAction,
546
353
  type ServerActionFunction,
547
354
  } from "./browser/react/use-action.js";
548
355
 
549
- // Segments state hook
550
356
  export {
551
357
  useSegments,
552
358
  type SegmentsState,
553
359
  } from "./browser/react/use-segments.js";
554
360
 
555
- // Client cache controls hook
556
- export {
557
- useClientCache,
558
- type ClientCacheControls,
559
- } from "./browser/react/use-client-cache.js";
560
-
561
- // Provider
562
361
  export {
563
362
  NavigationProvider,
564
363
  type NavigationProviderProps,
565
364
  } from "./browser/react/NavigationProvider.js";
566
365
 
567
- // Link component
568
366
  export {
569
367
  Link,
570
368
  type LinkProps,
571
369
  type PrefetchStrategy,
572
370
  type StateOrGetter,
371
+ type LinkState,
573
372
  } from "./browser/react/Link.js";
574
373
 
575
- // Link status hook
576
374
  export {
577
375
  useLinkStatus,
578
376
  type LinkStatus,
579
377
  } from "./browser/react/use-link-status.js";
580
378
 
581
- // Scroll restoration
582
379
  export {
583
380
  ScrollRestoration,
584
381
  useScrollRestoration,
585
382
  type ScrollRestorationProps,
586
383
  } from "./browser/react/ScrollRestoration.js";
587
384
 
588
- // Handle API - for accumulating data across route segments
589
- export { createHandle, isHandle, type Handle } from "./handle.js";
590
-
591
- // Handle data hook
385
+ export { type Handle } from "./handle.js";
592
386
  export { useHandle } from "./browser/react/use-handle.js";
387
+ // Type a deferred-aware consumer narrows: an accumulated entry may be a Promise
388
+ // (a `ctx.use(Handle).defer()` slot) until it resolves.
389
+ export type { DeferredHandleEntry } from "./defer.js";
593
390
 
594
- // Built-in handles
595
391
  export { Meta } from "./handles/meta.js";
596
392
  export { MetaTags } from "./handles/MetaTags.js";
597
393
  export type { MetaDescriptor, MetaDescriptorBase } from "./router/types.js";
394
+ export { Breadcrumbs, type BreadcrumbItem } from "./handles/breadcrumbs.js";
598
395
 
599
- // Location state - type-safe navigation state
600
396
  export {
601
397
  createLocationState,
602
398
  useLocationState,
603
399
  type LocationStateDefinition,
604
400
  type LocationStateEntry,
401
+ type LocationStateOptions,
605
402
  } from "./browser/react/location-state.js";
606
403
 
607
- // Type-safe href for client-side path validation
608
- export { href, type ValidPaths, type PatternToPath, type PathResponse } from "./href-client.js";
404
+ // Ambient Rango.Path / Rango.PathResponse types (declared in href-client.ts)
405
+ export { href, type PatternToPath } from "./href-client.js";
609
406
 
610
- // Response envelope types for consuming JSON response routes
611
- export type { ResponseEnvelope, ResponseError } from "./urls.js";
407
+ // RFC 9457 error type for JSON response routes
408
+ export type { ProblemDetails } from "./urls.js";
612
409
 
613
- /**
614
- * Type guard for checking if a response envelope contains an error.
615
- *
616
- * @example
617
- * ```typescript
618
- * const result: ResponseEnvelope<Product> = await fetch(url).then(r => r.json());
619
- * if (isResponseError(result)) {
620
- * console.log(result.error.message, result.error.code);
621
- * return;
622
- * }
623
- * result.data // fully typed as Product
624
- * ```
625
- */
626
- export function isResponseError<T>(
627
- result: import("./urls.js").ResponseEnvelope<T>
628
- ): result is import("./urls.js").ResponseEnvelope<T> & { error: import("./urls.js").ResponseError } {
629
- return result.error !== undefined;
630
- }
631
-
632
- // Mount context for include() scoped components
633
410
  export { useMount } from "./browser/react/use-mount.js";
634
411
  export { MountContext } from "./browser/react/mount-context.js";
635
412
 
636
- // Mount-aware href hook - auto-prefixes paths with include() mount
637
413
  export { useHref } from "./browser/react/use-href.js";
638
414
 
639
- // Type-safe scoped reverse function for scopedReverse<typeof patterns>()
640
- export type { ScopedReverseFunction } from "./reverse.js";
415
+ export { useReverse } from "./browser/react/use-reverse.js";
416
+
417
+ export type { ScopedReverseFunction, LocalReverseFunction } from "./reverse.js";
641
418
 
642
- // Loader definition type - for typing loader props in client components
643
419
  export type { LoaderDefinition } from "./types.js";
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Cloudflare preset integration surface for @rangojs/router.
3
+ *
4
+ * Imported via `@rangojs/router/cloudflare`. Cloudflare-only helpers live here
5
+ * so Node/other-platform consumers never pull them in.
6
+ */
7
+
8
+ export {
9
+ createCloudflareTracing,
10
+ type CloudflareTracingOptions,
11
+ } from "./tracing.js";