@rangojs/router 0.0.0-experimental.259 → 0.0.0-experimental.25dbaac3

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 (1077) hide show
  1. package/{CLAUDE.md → AGENTS.md} +4 -0
  2. package/README.md +471 -51
  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 +490 -94
  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 +3423 -1718
  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/dist/vite/package-resolution.js +112 -0
  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/dist/vite/virtual-entries.js +110 -0
  809. package/dist/vite/virtual-entries.js.map +1 -0
  810. package/package.json +21 -18
  811. package/skills/breadcrumbs/SKILL.md +252 -0
  812. package/skills/cache-guide/SKILL.md +41 -5
  813. package/skills/caching/SKILL.md +49 -8
  814. package/skills/document-cache/SKILL.md +2 -2
  815. package/skills/handler-use/SKILL.md +362 -0
  816. package/skills/hooks/SKILL.md +94 -52
  817. package/skills/host-router/SKILL.md +218 -0
  818. package/skills/intercept/SKILL.md +99 -0
  819. package/skills/layout/SKILL.md +84 -2
  820. package/skills/links/SKILL.md +93 -17
  821. package/skills/loader/SKILL.md +367 -36
  822. package/skills/middleware/SKILL.md +145 -33
  823. package/skills/migrate-nextjs/SKILL.md +562 -0
  824. package/skills/migrate-react-router/SKILL.md +769 -0
  825. package/skills/parallel/SKILL.md +249 -2
  826. package/skills/prerender/SKILL.md +261 -49
  827. package/skills/rango/SKILL.md +26 -24
  828. package/skills/response-routes/SKILL.md +11 -3
  829. package/skills/route/SKILL.md +100 -5
  830. package/skills/router-setup/SKILL.md +172 -5
  831. package/skills/server-actions/SKILL.md +739 -0
  832. package/skills/streams-and-websockets/SKILL.md +283 -0
  833. package/skills/theme/SKILL.md +5 -4
  834. package/skills/typesafety/SKILL.md +95 -38
  835. package/skills/use-cache/SKILL.md +16 -2
  836. package/src/__internal.ts +93 -1
  837. package/src/bin/rango.ts +56 -19
  838. package/src/browser/action-coordinator.ts +97 -0
  839. package/src/browser/app-shell.ts +52 -0
  840. package/src/browser/app-version.ts +14 -0
  841. package/src/browser/event-controller.ts +78 -52
  842. package/src/browser/history-state.ts +80 -0
  843. package/src/browser/intercept-utils.ts +1 -1
  844. package/src/browser/link-interceptor.ts +23 -3
  845. package/src/browser/merge-segment-loaders.ts +9 -2
  846. package/src/browser/navigation-bridge.ts +234 -453
  847. package/src/browser/navigation-client.ts +191 -86
  848. package/src/browser/navigation-store.ts +71 -41
  849. package/src/browser/navigation-transaction.ts +297 -0
  850. package/src/browser/partial-update.ts +215 -167
  851. package/src/browser/prefetch/cache.ts +314 -0
  852. package/src/browser/prefetch/fetch.ts +282 -0
  853. package/src/browser/prefetch/observer.ts +65 -0
  854. package/src/browser/prefetch/policy.ts +48 -0
  855. package/src/browser/prefetch/queue.ts +191 -0
  856. package/src/browser/prefetch/resource-ready.ts +77 -0
  857. package/src/browser/rango-state.ts +152 -0
  858. package/src/browser/react/Link.tsx +241 -47
  859. package/src/browser/react/NavigationProvider.tsx +136 -16
  860. package/src/browser/react/context.ts +11 -0
  861. package/src/browser/react/filter-segment-order.ts +55 -0
  862. package/src/browser/react/index.ts +2 -6
  863. package/src/browser/react/location-state-shared.ts +29 -11
  864. package/src/browser/react/location-state.ts +6 -4
  865. package/src/browser/react/nonce-context.ts +23 -0
  866. package/src/browser/react/shallow-equal.ts +27 -0
  867. package/src/browser/react/use-action.ts +23 -45
  868. package/src/browser/react/use-client-cache.ts +5 -3
  869. package/src/browser/react/use-handle.ts +28 -120
  870. package/src/browser/react/use-navigation.ts +29 -34
  871. package/src/browser/react/use-params.ts +16 -35
  872. package/src/browser/react/use-pathname.ts +2 -3
  873. package/src/browser/react/use-router.ts +31 -14
  874. package/src/browser/react/use-search-params.ts +2 -1
  875. package/src/browser/react/use-segments.ts +82 -118
  876. package/src/browser/response-adapter.ts +73 -0
  877. package/src/browser/rsc-router.tsx +202 -67
  878. package/src/browser/scroll-restoration.ts +47 -45
  879. package/src/browser/segment-reconciler.ts +36 -9
  880. package/src/browser/server-action-bridge.ts +464 -409
  881. package/src/browser/types.ts +100 -40
  882. package/src/browser/validate-redirect-origin.ts +29 -0
  883. package/src/build/generate-manifest.ts +44 -19
  884. package/src/build/generate-route-types.ts +7 -0
  885. package/src/build/index.ts +1 -0
  886. package/src/build/route-trie.ts +67 -25
  887. package/src/build/route-types/codegen.ts +13 -4
  888. package/src/build/route-types/include-resolution.ts +21 -1
  889. package/src/build/route-types/per-module-writer.ts +15 -3
  890. package/src/build/route-types/router-processing.ts +391 -90
  891. package/src/build/route-types/scan-filter.ts +8 -1
  892. package/src/build/runtime-discovery.ts +13 -1
  893. package/src/cache/background-task.ts +34 -0
  894. package/src/cache/cache-key-utils.ts +44 -0
  895. package/src/cache/cache-policy.ts +125 -0
  896. package/src/cache/cache-runtime.ts +140 -123
  897. package/src/cache/cache-scope.ts +124 -90
  898. package/src/cache/cf/cf-cache-store.ts +467 -22
  899. package/src/cache/cf/index.ts +5 -1
  900. package/src/cache/document-cache.ts +109 -75
  901. package/src/cache/handle-capture.ts +81 -0
  902. package/src/cache/index.ts +1 -15
  903. package/src/cache/memory-segment-store.ts +43 -69
  904. package/src/cache/profile-registry.ts +43 -8
  905. package/src/cache/read-through-swr.ts +134 -0
  906. package/src/cache/segment-codec.ts +140 -117
  907. package/src/cache/taint.ts +85 -3
  908. package/src/cache/types.ts +1 -115
  909. package/src/client.rsc.tsx +2 -1
  910. package/src/client.tsx +86 -254
  911. package/src/context-var.ts +72 -2
  912. package/src/debug.ts +2 -2
  913. package/src/errors.ts +6 -1
  914. package/src/handle.ts +41 -1
  915. package/src/handles/MetaTags.tsx +5 -2
  916. package/src/handles/breadcrumbs.ts +66 -0
  917. package/src/handles/index.ts +1 -0
  918. package/src/host/cookie-handler.ts +8 -3
  919. package/src/host/index.ts +0 -3
  920. package/src/host/router.ts +14 -1
  921. package/src/href-client.ts +3 -1
  922. package/src/index.rsc.ts +48 -32
  923. package/src/index.ts +104 -64
  924. package/src/loader.rsc.ts +12 -4
  925. package/src/loader.ts +8 -0
  926. package/src/outlet-context.ts +1 -1
  927. package/src/prerender/store.ts +61 -18
  928. package/src/prerender.ts +207 -88
  929. package/src/response-utils.ts +28 -0
  930. package/src/reverse.ts +36 -7
  931. package/src/root-error-boundary.tsx +30 -26
  932. package/src/route-definition/dsl-helpers.ts +249 -46
  933. package/src/route-definition/helpers-types.ts +73 -20
  934. package/src/route-definition/index.ts +3 -3
  935. package/src/route-definition/redirect.ts +24 -4
  936. package/src/route-definition/resolve-handler-use.ts +155 -0
  937. package/src/route-map-builder.ts +45 -3
  938. package/src/route-name.ts +53 -0
  939. package/src/route-types.ts +25 -0
  940. package/src/router/content-negotiation.ts +101 -2
  941. package/src/router/debug-manifest.ts +16 -3
  942. package/src/router/find-match.ts +4 -2
  943. package/src/router/handler-context.ts +221 -39
  944. package/src/router/intercept-resolution.ts +17 -8
  945. package/src/router/lazy-includes.ts +12 -5
  946. package/src/router/loader-resolution.ts +164 -31
  947. package/src/router/logging.ts +104 -4
  948. package/src/router/manifest.ts +53 -9
  949. package/src/router/match-api.ts +150 -206
  950. package/src/router/match-context.ts +3 -0
  951. package/src/router/match-handlers.ts +186 -11
  952. package/src/router/match-middleware/background-revalidation.ts +94 -86
  953. package/src/router/match-middleware/cache-lookup.ts +164 -19
  954. package/src/router/match-middleware/cache-store.ts +55 -10
  955. package/src/router/match-middleware/intercept-resolution.ts +9 -7
  956. package/src/router/match-middleware/segment-resolution.ts +61 -5
  957. package/src/router/match-pipelines.ts +8 -43
  958. package/src/router/match-result.ts +122 -18
  959. package/src/router/metrics.ts +238 -13
  960. package/src/router/middleware-types.ts +64 -61
  961. package/src/router/middleware.ts +316 -145
  962. package/src/router/navigation-snapshot.ts +182 -0
  963. package/src/router/pattern-matching.ts +134 -15
  964. package/src/router/prerender-match.ts +150 -16
  965. package/src/router/preview-match.ts +30 -96
  966. package/src/router/request-classification.ts +310 -0
  967. package/src/router/revalidation.ts +102 -9
  968. package/src/router/route-snapshot.ts +245 -0
  969. package/src/router/router-context.ts +20 -0
  970. package/src/router/router-interfaces.ts +200 -43
  971. package/src/router/router-options.ts +265 -12
  972. package/src/router/router-registry.ts +5 -2
  973. package/src/router/segment-resolution/fresh.ts +365 -256
  974. package/src/router/segment-resolution/helpers.ts +268 -0
  975. package/src/router/segment-resolution/loader-cache.ts +103 -98
  976. package/src/router/segment-resolution/revalidation.ts +711 -423
  977. package/src/router/segment-resolution/static-store.ts +2 -2
  978. package/src/router/segment-resolution.ts +1 -3
  979. package/src/router/segment-wrappers.ts +5 -0
  980. package/src/router/telemetry-otel.ts +299 -0
  981. package/src/router/telemetry.ts +300 -0
  982. package/src/router/timeout.ts +148 -0
  983. package/src/router/trie-matching.ts +30 -6
  984. package/src/router/types.ts +8 -1
  985. package/src/router/url-params.ts +49 -0
  986. package/src/router.ts +269 -25
  987. package/src/rsc/handler-context.ts +13 -2
  988. package/src/rsc/handler.ts +784 -629
  989. package/src/rsc/helpers.ts +168 -20
  990. package/src/rsc/index.ts +0 -20
  991. package/src/rsc/loader-fetch.ts +105 -43
  992. package/src/rsc/manifest-init.ts +7 -2
  993. package/src/rsc/origin-guard.ts +141 -0
  994. package/src/rsc/progressive-enhancement.ts +262 -20
  995. package/src/rsc/response-route-handler.ts +360 -0
  996. package/src/rsc/rsc-rendering.ts +70 -44
  997. package/src/rsc/runtime-warnings.ts +42 -0
  998. package/src/rsc/server-action.ts +178 -66
  999. package/src/rsc/ssr-setup.ts +128 -0
  1000. package/src/rsc/types.ts +37 -3
  1001. package/src/search-params.ts +38 -23
  1002. package/src/segment-content-promise.ts +67 -0
  1003. package/src/segment-loader-promise.ts +122 -0
  1004. package/src/segment-system.tsx +109 -23
  1005. package/src/server/context.ts +227 -24
  1006. package/src/server/cookie-store.ts +190 -0
  1007. package/src/server/fetchable-loader-store.ts +11 -6
  1008. package/src/server/handle-store.ts +103 -12
  1009. package/src/server/loader-registry.ts +20 -54
  1010. package/src/server/request-context.ts +475 -105
  1011. package/src/server.ts +6 -0
  1012. package/src/ssr/index.tsx +74 -27
  1013. package/src/static-handler.ts +25 -6
  1014. package/src/theme/ThemeProvider.tsx +6 -1
  1015. package/src/theme/index.ts +4 -18
  1016. package/src/theme/theme-context.ts +1 -28
  1017. package/src/theme/theme-script.ts +2 -1
  1018. package/src/types/cache-types.ts +10 -5
  1019. package/src/types/error-types.ts +3 -0
  1020. package/src/types/global-namespace.ts +22 -0
  1021. package/src/types/handler-context.ts +242 -82
  1022. package/src/types/index.ts +1 -1
  1023. package/src/types/loader-types.ts +50 -21
  1024. package/src/types/request-scope.ts +126 -0
  1025. package/src/types/route-config.ts +17 -26
  1026. package/src/types/route-entry.ts +46 -0
  1027. package/src/types/segments.ts +19 -5
  1028. package/src/urls/include-helper.ts +72 -21
  1029. package/src/urls/index.ts +1 -0
  1030. package/src/urls/path-helper-types.ts +69 -18
  1031. package/src/urls/path-helper.ts +65 -15
  1032. package/src/urls/pattern-types.ts +33 -1
  1033. package/src/urls/response-types.ts +47 -23
  1034. package/src/urls/type-extraction.ts +23 -15
  1035. package/src/use-loader.tsx +103 -13
  1036. package/src/vite/debug.ts +184 -0
  1037. package/src/vite/discovery/bundle-postprocess.ts +62 -85
  1038. package/src/vite/discovery/discover-routers.ts +87 -29
  1039. package/src/vite/discovery/gate-state.ts +171 -0
  1040. package/src/vite/discovery/prerender-collection.ts +224 -106
  1041. package/src/vite/discovery/route-types-writer.ts +7 -7
  1042. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  1043. package/src/vite/discovery/state.ts +20 -13
  1044. package/src/vite/discovery/virtual-module-codegen.ts +5 -2
  1045. package/src/vite/index.ts +14 -51
  1046. package/src/vite/plugin-types.ts +51 -79
  1047. package/src/vite/plugins/cjs-to-esm.ts +5 -0
  1048. package/src/vite/plugins/client-ref-dedup.ts +131 -0
  1049. package/src/vite/plugins/client-ref-hashing.ts +19 -7
  1050. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  1051. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1052. package/src/vite/plugins/cloudflare-protocol-stub.ts +214 -0
  1053. package/src/vite/plugins/expose-action-id.ts +53 -31
  1054. package/src/vite/plugins/expose-id-utils.ts +12 -0
  1055. package/src/vite/plugins/expose-ids/handler-transform.ts +30 -0
  1056. package/src/vite/plugins/expose-ids/router-transform.ts +20 -3
  1057. package/src/vite/plugins/expose-internal-ids.ts +567 -319
  1058. package/src/vite/plugins/performance-tracks.ts +96 -0
  1059. package/src/vite/plugins/refresh-cmd.ts +127 -0
  1060. package/src/vite/plugins/use-cache-transform.ts +139 -38
  1061. package/src/vite/plugins/version-injector.ts +37 -11
  1062. package/src/vite/plugins/version-plugin.ts +200 -18
  1063. package/src/vite/rango.ts +233 -221
  1064. package/src/vite/router-discovery.ts +887 -176
  1065. package/src/vite/utils/banner.ts +4 -4
  1066. package/src/vite/utils/package-resolution.ts +41 -1
  1067. package/src/vite/utils/prerender-utils.ts +113 -0
  1068. package/src/vite/utils/shared-utils.ts +22 -11
  1069. package/skills/testing/SKILL.md +0 -226
  1070. package/src/browser/lru-cache.ts +0 -61
  1071. package/src/browser/react/prefetch.ts +0 -27
  1072. package/src/browser/request-controller.ts +0 -164
  1073. package/src/cache/memory-store.ts +0 -253
  1074. package/src/route-definition/route-function.ts +0 -119
  1075. package/src/router.gen.ts +0 -6
  1076. package/src/static-handler.gen.ts +0 -5
  1077. package/src/urls.gen.ts +0 -8
@@ -4,3 +4,4 @@
4
4
 
5
5
  export { Meta } from "./meta.ts";
6
6
  export { MetaTags } from "./MetaTags.tsx";
7
+ export { Breadcrumbs, type BreadcrumbItem } from "./breadcrumbs.ts";
@@ -26,9 +26,14 @@ export function parseCookies(request: Request): Record<string, string> {
26
26
  const pairs = cookieHeader.split(";");
27
27
 
28
28
  for (const pair of pairs) {
29
- const [key, value] = pair.trim().split("=");
30
- if (key && value) {
31
- cookies[key] = decodeURIComponent(value);
29
+ const [name, ...rest] = pair.trim().split("=");
30
+ if (name && rest.length > 0) {
31
+ const value = rest.join("=");
32
+ try {
33
+ cookies[name] = decodeURIComponent(value);
34
+ } catch {
35
+ cookies[name] = value;
36
+ }
32
37
  }
33
38
  }
34
39
 
package/src/host/index.ts CHANGED
@@ -25,9 +25,6 @@
25
25
  // Core router
26
26
  export { createHostRouter } from "./router.js";
27
27
 
28
- // Host router registry for build-time discovery
29
- export { HostRouterRegistry, type HostRouterRegistryEntry } from "./router.js";
30
-
31
28
  // Utilities
32
29
  export { defineHosts } from "./utils.js";
33
30
 
@@ -149,7 +149,20 @@ export function createHostRouter(options: HostRouterOptions = {}): HostRouter {
149
149
  return finalHandler();
150
150
  }
151
151
 
152
- return mw(request, input, next);
152
+ // Guard against double next() calls — a second call would
153
+ // re-enter the downstream chain and run handlers/side-effects twice.
154
+ let nextCalled = false;
155
+ const guardedNext = (): Promise<Response> => {
156
+ if (nextCalled) {
157
+ throw new Error(
158
+ `[HostRouter] Middleware called next() more than once.`,
159
+ );
160
+ }
161
+ nextCalled = true;
162
+ return next();
163
+ };
164
+
165
+ return mw(request, input, guardedNext);
153
166
  }
154
167
 
155
168
  return next();
@@ -182,7 +182,9 @@ export type ValidPaths<TRoutes = GetRegisteredRoutes> =
182
182
  */
183
183
  export function href<T extends ValidPaths>(path: T, mount?: string): string {
184
184
  if (mount && mount !== "/") {
185
- return mount + path;
185
+ // Strip trailing slash from mount to avoid double-slash when joining
186
+ const normalizedMount = mount.endsWith("/") ? mount.slice(0, -1) : mount;
187
+ return normalizedMount + path;
186
188
  }
187
189
  return path;
188
190
  }
package/src/index.rsc.ts CHANGED
@@ -11,8 +11,6 @@
11
11
 
12
12
  // Re-export all universal exports from index.ts
13
13
  export {
14
- // Universal rendering utilities
15
- renderSegments,
16
14
  // Error classes
17
15
  RouteNotFoundError,
18
16
  DataNotFoundError,
@@ -21,9 +19,6 @@ export {
21
19
  HandlerError,
22
20
  BuildError,
23
21
  InvalidHandlerError,
24
- NetworkError,
25
- isNetworkError,
26
- sanitizeError,
27
22
  RouterError,
28
23
  Skip,
29
24
  isSkip,
@@ -33,7 +28,6 @@ export {
33
28
  export type {
34
29
  // Configuration types
35
30
  DocumentProps,
36
- RouterEnv,
37
31
  DefaultEnv,
38
32
  RouteDefinition,
39
33
  RouteConfig,
@@ -41,7 +35,6 @@ export type {
41
35
  TrailingSlashMode,
42
36
  // Handler types
43
37
  Handler,
44
- ScopedRouteMap,
45
38
  HandlerContext,
46
39
  ExtractParams,
47
40
  GenericParams,
@@ -73,7 +66,12 @@ export type {
73
66
  } from "./types.js";
74
67
 
75
68
  // Router options type (server-only, so import directly)
76
- export type { RSCRouterOptions } from "./router.js";
69
+ export type {
70
+ RSCRouterOptions,
71
+ SSRStreamMode,
72
+ SSROptions,
73
+ ResolveStreamingContext,
74
+ } from "./router.js";
77
75
 
78
76
  // Server-side createLoader and redirect
79
77
  export {
@@ -102,6 +100,7 @@ export type {
102
100
  LayoutUseItem,
103
101
  AllUseItems,
104
102
  UseItems,
103
+ HandlerUseItem,
105
104
  } from "./route-types.js";
106
105
 
107
106
  // Handle API
@@ -116,9 +115,9 @@ export { nonce } from "./rsc/nonce.js";
116
115
  // Pre-render handler API
117
116
  export {
118
117
  Prerender,
119
- isPrerenderHandler,
118
+ Passthrough,
120
119
  type PrerenderHandlerDefinition,
121
- type PrerenderPassthroughContext,
120
+ type PassthroughHandlerDefinition,
122
121
  type PrerenderOptions,
123
122
  type BuildContext,
124
123
  type StaticBuildContext,
@@ -126,16 +125,11 @@ export {
126
125
  } from "./prerender.js";
127
126
 
128
127
  // Static handler API
129
- export {
130
- Static,
131
- isStaticHandler,
132
- type StaticHandlerDefinition,
133
- } from "./static-handler.js";
128
+ export { Static, type StaticHandlerDefinition } from "./static-handler.js";
134
129
 
135
130
  // Django-style URL patterns (RSC/server context)
136
131
  export {
137
132
  urls,
138
- RESPONSE_TYPE,
139
133
  type PathHelpers,
140
134
  type PathOptions,
141
135
  type UrlPatterns,
@@ -167,13 +161,32 @@ export type { HandlerCacheConfig } from "./rsc/types.js";
167
161
 
168
162
  // Built-in handles (server-side)
169
163
  export { Meta } from "./handles/meta.js";
164
+ export { Breadcrumbs, type BreadcrumbItem } from "./handles/breadcrumbs.js";
165
+
166
+ // Request context (for accessing request data in server actions/components).
167
+ // Re-exported with a narrowed return type so that public consumers only see
168
+ // public members. Internal code imports from "./server/request-context.js"
169
+ // directly and gets the full type.
170
+ import { getRequestContext as _getRequestContextInternal } from "./server/request-context.js";
171
+ export type { PublicRequestContext as RequestContext } from "./server/request-context.js";
172
+ import type { PublicRequestContext } from "./server/request-context.js";
173
+ import type { DefaultEnv } from "./types/global-namespace.js";
174
+
175
+ // Shared base for every user-facing request context (mirrors index.ts).
176
+ export type { RequestScope, ExecutionContext } from "./types/request-scope.js";
177
+
178
+ export const getRequestContext: <
179
+ TEnv = DefaultEnv,
180
+ >() => PublicRequestContext<TEnv> = _getRequestContextInternal;
170
181
 
171
- // Request context (for accessing request data in server actions/components)
182
+ // Request-scoped shorthands
172
183
  export {
173
- getRequestContext,
174
- requireRequestContext,
175
- type RequestContext,
176
- } from "./server/request-context.js";
184
+ cookies,
185
+ headers,
186
+ type CookieStore,
187
+ type Cookie,
188
+ type ReadonlyHeaders,
189
+ } from "./server/cookie-store.js";
177
190
 
178
191
  // Meta types
179
192
  export type { MetaDescriptor, MetaDescriptorBase } from "./router/types.js";
@@ -187,8 +200,6 @@ export type {
187
200
  ReverseFunction,
188
201
  ExtractLocalRoutes,
189
202
  ParamsFor,
190
- SanitizePrefix,
191
- MergeRoutes,
192
203
  } from "./reverse.js";
193
204
  export { scopedReverse, createReverse } from "./reverse.js";
194
205
 
@@ -201,15 +212,6 @@ export type {
201
212
  RouteParams,
202
213
  } from "./search-params.js";
203
214
 
204
- // Performance tracking (server-only)
205
- export { track } from "./server/context.js";
206
-
207
- // Debug utilities for route matching (development only)
208
- export {
209
- enableMatchDebug,
210
- getMatchDebugStats,
211
- } from "./router/pattern-matching.js";
212
-
213
215
  // Location state (universal)
214
216
  export {
215
217
  createLocationState,
@@ -220,3 +222,17 @@ export {
220
222
 
221
223
  // Path-based response type lookup from RegisteredRoutes
222
224
  export type { PathResponse } from "./href-client.js";
225
+
226
+ // Telemetry sink
227
+ export { createConsoleSink } from "./router/telemetry.js";
228
+ export { createOTelSink } from "./router/telemetry-otel.js";
229
+ export type { OTelTracer, OTelSpan } from "./router/telemetry-otel.js";
230
+ export type { TelemetrySink, TelemetryEvent } from "./router/telemetry.js";
231
+
232
+ // Timeout types and error class
233
+ export { RouterTimeoutError } from "./router/timeout.js";
234
+ export type {
235
+ RouterTimeouts,
236
+ TimeoutPhase,
237
+ TimeoutContext,
238
+ } from "./router/timeout.js";
package/src/index.ts CHANGED
@@ -10,9 +10,6 @@
10
10
  * import from "@rangojs/router/client"
11
11
  */
12
12
 
13
- // Universal rendering utilities (work on both server and client)
14
- export { renderSegments } from "./segment-system.js";
15
-
16
13
  // Error classes (can be used on both server and client)
17
14
  export {
18
15
  RouteNotFoundError,
@@ -22,9 +19,6 @@ export {
22
19
  HandlerError,
23
20
  BuildError,
24
21
  InvalidHandlerError,
25
- NetworkError,
26
- isNetworkError,
27
- sanitizeError,
28
22
  RouterError,
29
23
  Skip,
30
24
  isSkip,
@@ -34,7 +28,6 @@ export {
34
28
  export type {
35
29
  // Configuration types
36
30
  DocumentProps,
37
- RouterEnv,
38
31
  DefaultEnv,
39
32
  RouteDefinition,
40
33
  RouteConfig,
@@ -42,7 +35,6 @@ export type {
42
35
  TrailingSlashMode,
43
36
  // Handler types
44
37
  Handler, // Supports params object, path pattern, or route name
45
- ScopedRouteMap, // Scoped view of GeneratedRouteMap for Handler<"localName", ScopedRouteMap<"prefix">>
46
38
  HandlerContext,
47
39
  ExtractParams,
48
40
  GenericParams,
@@ -96,6 +88,7 @@ export type {
96
88
  LayoutUseItem,
97
89
  AllUseItems,
98
90
  UseItems,
91
+ HandlerUseItem,
99
92
  } from "./route-types.js";
100
93
 
101
94
  // Response route types (usable in both server and client contexts)
@@ -116,25 +109,32 @@ export type {
116
109
  // Middleware context types
117
110
  export type { MiddlewareContext, CookieOptions } from "./router/middleware.js";
118
111
 
112
+ function serverOnlyStubError(name: string): Error {
113
+ return new Error(
114
+ `${name}() is only available from "@rangojs/router" in a react-server/RSC environment. ` +
115
+ `For client hooks and components, import from "@rangojs/router/client".`,
116
+ );
117
+ }
118
+
119
119
  /**
120
120
  * Error-throwing stub for server-only `urls` function.
121
121
  */
122
122
  export function urls(): never {
123
- throw new Error("urls() is server-only and requires RSC context.");
123
+ throw serverOnlyStubError("urls");
124
124
  }
125
125
 
126
126
  /**
127
127
  * Error-throwing stub for server-only `createRouter` function.
128
128
  */
129
129
  export function createRouter(): never {
130
- throw new Error("createRouter() is server-only and requires RSC context.");
130
+ throw serverOnlyStubError("createRouter");
131
131
  }
132
132
 
133
133
  /**
134
134
  * Error-throwing stub for server-only `redirect` function.
135
135
  */
136
136
  export function redirect(): never {
137
- throw new Error("redirect() is server-only and requires RSC context.");
137
+ throw serverOnlyStubError("redirect");
138
138
  }
139
139
 
140
140
  // Handle API (universal - works on both server and client)
@@ -147,123 +147,149 @@ export { createVar, type ContextVar } from "./context-var.js";
147
147
  export { nonce } from "./rsc/nonce.js";
148
148
 
149
149
  /**
150
- * Error-throwing stub for server-only `Prerender` function.
151
- */
152
- export function Prerender(): never {
153
- throw new Error("Prerender() is server-only and requires RSC context.");
154
- }
155
-
156
- /**
157
- * Error-throwing stub for server-only `Static` function.
150
+ * SSR/client stub for server-only `Prerender` function.
151
+ *
152
+ * Returns a lightweight stub object instead of throwing so that the
153
+ * production SSR build can safely bundle the RSC entry chunk — the SSR
154
+ * bundler resolves `@rangojs/router` to this (SSR) entry, so Prerender
155
+ * calls in RSC code must not crash at module-evaluation time.
158
156
  */
159
- export function Static(): never {
160
- throw new Error("Static() is server-only and requires RSC context.");
157
+ export function Prerender(
158
+ _handler?: any,
159
+ _optionsOrId?: any,
160
+ __injectedId?: string,
161
+ ): any {
162
+ const id =
163
+ typeof _optionsOrId === "string" ? _optionsOrId : __injectedId || "";
164
+ return { __brand: "prerenderHandler" as const, $$id: id };
161
165
  }
162
166
 
163
167
  /**
164
- * Error-throwing stub for server-only `getRequestContext` function.
168
+ * SSR/client stub for server-only `Passthrough` function.
165
169
  */
166
- export function getRequestContext(): never {
167
- throw new Error(
168
- "getRequestContext() is server-only and requires RSC context.",
169
- );
170
+ export function Passthrough(
171
+ _handler?: any,
172
+ _optionsOrId?: any,
173
+ __injectedId?: string,
174
+ ): any {
175
+ const id =
176
+ typeof _optionsOrId === "string" ? _optionsOrId : __injectedId || "";
177
+ return { __brand: "passthroughHandler" as const, $$id: id };
170
178
  }
171
179
 
172
180
  /**
173
- * Error-throwing stub for server-only `requireRequestContext` function.
181
+ * SSR/client stub for server-only `Static` function.
182
+ *
183
+ * Returns a lightweight stub object instead of throwing so that the
184
+ * production SSR build can safely bundle the RSC entry chunk — the SSR
185
+ * bundler resolves `@rangojs/router` to this (SSR) entry, so Static
186
+ * calls in RSC code must not crash at module-evaluation time.
174
187
  */
175
- export function requireRequestContext(): never {
176
- throw new Error(
177
- "requireRequestContext() is server-only and requires RSC context.",
178
- );
188
+ export function Static(
189
+ _handler?: any,
190
+ _optionsOrId?: any,
191
+ __injectedId?: string,
192
+ ): any {
193
+ const id =
194
+ typeof _optionsOrId === "string" ? _optionsOrId : __injectedId || "";
195
+ return { __brand: "staticHandler" as const, $$id: id };
179
196
  }
180
197
 
181
198
  /**
182
- * Error-throwing stub for server-only `createReverse` function.
199
+ * Error-throwing stub for server-only `getRequestContext` function.
183
200
  */
184
- export function createReverse(): never {
185
- throw new Error("createReverse() is server-only and requires RSC context.");
201
+ export function getRequestContext(): never {
202
+ throw serverOnlyStubError("getRequestContext");
186
203
  }
187
204
 
188
205
  /**
189
- * Error-throwing stub for server-only `enableMatchDebug` function.
206
+ * Error-throwing stub for server-only `cookies` function.
190
207
  */
191
- export function enableMatchDebug(): never {
192
- throw new Error(
193
- "enableMatchDebug() is server-only and requires RSC context.",
194
- );
208
+ export function cookies(): never {
209
+ throw serverOnlyStubError("cookies");
195
210
  }
196
211
 
197
212
  /**
198
- * Error-throwing stub for server-only `getMatchDebugStats` function.
213
+ * Error-throwing stub for server-only `headers` function.
199
214
  */
200
- export function getMatchDebugStats(): never {
201
- throw new Error(
202
- "getMatchDebugStats() is server-only and requires RSC context.",
203
- );
215
+ export function headers(): never {
216
+ throw serverOnlyStubError("headers");
204
217
  }
205
218
 
206
219
  /**
207
- * Error-throwing stub for server-only `track` function.
220
+ * Error-throwing stub for server-only `createReverse` function.
208
221
  */
209
- export function track(): never {
210
- throw new Error("track() is server-only and requires RSC context.");
222
+ export function createReverse(): never {
223
+ throw serverOnlyStubError("createReverse");
211
224
  }
212
225
 
213
226
  // Error-throwing stubs for server-only route helpers
214
227
  export function layout(): never {
215
- throw new Error("layout() is server-only and requires RSC context.");
228
+ throw serverOnlyStubError("layout");
216
229
  }
217
230
  export function cache(): never {
218
- throw new Error("cache() is server-only and requires RSC context.");
231
+ throw serverOnlyStubError("cache");
219
232
  }
220
233
  export function middleware(): never {
221
- throw new Error("middleware() is server-only and requires RSC context.");
234
+ throw serverOnlyStubError("middleware");
222
235
  }
223
236
  export function revalidate(): never {
224
- throw new Error("revalidate() is server-only and requires RSC context.");
237
+ throw serverOnlyStubError("revalidate");
225
238
  }
226
239
  export function loader(): never {
227
- throw new Error("loader() is server-only and requires RSC context.");
240
+ throw serverOnlyStubError("loader");
228
241
  }
229
242
  export function loading(): never {
230
- throw new Error("loading() is server-only and requires RSC context.");
243
+ throw serverOnlyStubError("loading");
231
244
  }
232
245
  export function parallel(): never {
233
- throw new Error("parallel() is server-only and requires RSC context.");
246
+ throw serverOnlyStubError("parallel");
234
247
  }
235
248
  export function intercept(): never {
236
- throw new Error("intercept() is server-only and requires RSC context.");
249
+ throw serverOnlyStubError("intercept");
237
250
  }
238
251
  export function when(): never {
239
- throw new Error("when() is server-only and requires RSC context.");
252
+ throw serverOnlyStubError("when");
240
253
  }
241
254
  export function errorBoundary(): never {
242
- throw new Error("errorBoundary() is server-only and requires RSC context.");
255
+ throw serverOnlyStubError("errorBoundary");
243
256
  }
244
257
  export function notFoundBoundary(): never {
245
- throw new Error(
246
- "notFoundBoundary() is server-only and requires RSC context.",
247
- );
258
+ throw serverOnlyStubError("notFoundBoundary");
248
259
  }
249
260
  export function transition(): never {
250
- throw new Error("transition() is server-only and requires RSC context.");
261
+ throw serverOnlyStubError("transition");
251
262
  }
252
263
 
253
264
  // Request context type (safe for client)
254
- export type { RequestContext } from "./server/request-context.js";
265
+ export type { PublicRequestContext as RequestContext } from "./server/request-context.js";
266
+
267
+ // Shared base for every user-facing request context.
268
+ export type { RequestScope, ExecutionContext } from "./types/request-scope.js";
269
+
270
+ // Cookie store types (safe for client)
271
+ export type {
272
+ CookieStore,
273
+ Cookie,
274
+ ReadonlyHeaders,
275
+ } from "./server/cookie-store.js";
276
+
277
+ // Built-in handles (universal — work on both server and client)
278
+ export { Meta } from "./handles/meta.js";
279
+ export { Breadcrumbs } from "./handles/breadcrumbs.js";
255
280
 
256
281
  // Meta types
257
282
  export type { MetaDescriptor, MetaDescriptorBase } from "./router/types.js";
258
283
 
284
+ // Breadcrumb types
285
+ export type { BreadcrumbItem } from "./handles/breadcrumbs.js";
286
+
259
287
  // Reverse type utilities for type-safe URL generation (Django-style URL reversal)
260
288
  export type {
261
289
  ScopedReverseFunction,
262
290
  ReverseFunction,
263
291
  ExtractLocalRoutes,
264
292
  ParamsFor,
265
- SanitizePrefix,
266
- MergeRoutes,
267
293
  } from "./reverse.js";
268
294
  // scopedReverse() helper for handlers to get locally-typed reverse
269
295
  export { scopedReverse } from "./reverse.js";
@@ -278,3 +304,17 @@ export {
278
304
 
279
305
  // Path-based response type lookup from RegisteredRoutes
280
306
  export type { PathResponse } from "./href-client.js";
307
+
308
+ // Telemetry sink
309
+ export { createConsoleSink } from "./router/telemetry.js";
310
+ export { createOTelSink } from "./router/telemetry-otel.js";
311
+ export type { OTelTracer, OTelSpan } from "./router/telemetry-otel.js";
312
+ export type { TelemetrySink, TelemetryEvent } from "./router/telemetry.js";
313
+
314
+ // Timeout types and error class
315
+ export { RouterTimeoutError } from "./router/timeout.js";
316
+ export type {
317
+ RouterTimeouts,
318
+ TimeoutPhase,
319
+ TimeoutContext,
320
+ } from "./router/timeout.js";
package/src/loader.rsc.ts CHANGED
@@ -52,11 +52,19 @@ export function createLoader<T>(
52
52
  // For fetchable loaders, __injectedId is also passed as a parameter
53
53
  const loaderId = __injectedId || "";
54
54
 
55
- // If not fetchable, store fn in registry and return a plain object.
56
- // Server-side code looks up fn via getFetchableLoader($$id).
55
+ if (!loaderId && process.env.NODE_ENV === "development") {
56
+ throw new Error(
57
+ "[rsc-router] Loader is missing $$id. " +
58
+ "Make sure the exposeInternalIds Vite plugin is enabled and " +
59
+ "the loader is exported with: export const MyLoader = createLoader(...)",
60
+ );
61
+ }
62
+
63
+ // If not fetchable, store fn in registry (for SSR ctx.use() resolution)
64
+ // but mark fetchable=false so the _rsc_loader endpoint rejects it.
57
65
  if (fetchable === undefined) {
58
66
  if (fn && loaderId) {
59
- registerFetchableLoader(loaderId, fn, []);
67
+ registerFetchableLoader(loaderId, fn, [], false);
60
68
  }
61
69
  return {
62
70
  __brand: "loader",
@@ -71,7 +79,7 @@ export function createLoader<T>(
71
79
  // Register the function in the internal registry by $$id (server-side only)
72
80
  // The loader fetch handler looks it up by $$id when load() is called from the client.
73
81
  if (fn && loaderId) {
74
- registerFetchableLoader(loaderId, fn, middleware);
82
+ registerFetchableLoader(loaderId, fn, middleware, true);
75
83
  }
76
84
 
77
85
  return {
package/src/loader.ts CHANGED
@@ -49,6 +49,14 @@ export function createLoader<T>(
49
49
  ): LoaderDefinition<Awaited<T>, Record<string, string | undefined>> {
50
50
  const loaderId = __injectedId || "";
51
51
 
52
+ if (!loaderId && process.env.NODE_ENV === "development") {
53
+ throw new Error(
54
+ "[rsc-router] Loader is missing $$id. " +
55
+ "Make sure the exposeInternalIds Vite plugin is enabled and " +
56
+ "the loader is exported with: export const MyLoader = createLoader(...)",
57
+ );
58
+ }
59
+
52
60
  return {
53
61
  __brand: "loader",
54
62
  $$id: loaderId,
@@ -1,4 +1,4 @@
1
- import { Context, createContext, type ReactNode } from "react";
1
+ import { type Context, createContext, type ReactNode } from "react";
2
2
  import type { ResolvedSegment } from "./types";
3
3
 
4
4
  export interface OutletContextValue {