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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1140) hide show
  1. package/AGENTS.md +9 -0
  2. package/README.md +1037 -4
  3. package/dist/__internal.d.ts +83 -0
  4. package/dist/__internal.d.ts.map +1 -0
  5. package/dist/__internal.js +19 -0
  6. package/dist/__internal.js.map +1 -0
  7. package/dist/__mocks__/version.d.ts +7 -0
  8. package/dist/__mocks__/version.d.ts.map +1 -0
  9. package/dist/__mocks__/version.js +7 -0
  10. package/dist/__mocks__/version.js.map +1 -0
  11. package/dist/__tests__/client-href.test.d.ts +2 -0
  12. package/dist/__tests__/client-href.test.d.ts.map +1 -0
  13. package/dist/__tests__/client-href.test.js +74 -0
  14. package/dist/__tests__/client-href.test.js.map +1 -0
  15. package/dist/__tests__/component-utils.test.d.ts +2 -0
  16. package/dist/__tests__/component-utils.test.d.ts.map +1 -0
  17. package/dist/__tests__/component-utils.test.js +51 -0
  18. package/dist/__tests__/component-utils.test.js.map +1 -0
  19. package/dist/__tests__/event-controller.test.d.ts +2 -0
  20. package/dist/__tests__/event-controller.test.d.ts.map +1 -0
  21. package/dist/__tests__/event-controller.test.js +538 -0
  22. package/dist/__tests__/event-controller.test.js.map +1 -0
  23. package/dist/__tests__/helpers/route-tree.d.ts +118 -0
  24. package/dist/__tests__/helpers/route-tree.d.ts.map +1 -0
  25. package/dist/__tests__/helpers/route-tree.js +374 -0
  26. package/dist/__tests__/helpers/route-tree.js.map +1 -0
  27. package/dist/__tests__/match-result.test.d.ts +2 -0
  28. package/dist/__tests__/match-result.test.d.ts.map +1 -0
  29. package/dist/__tests__/match-result.test.js +154 -0
  30. package/dist/__tests__/match-result.test.js.map +1 -0
  31. package/dist/__tests__/navigation-store.test.d.ts +2 -0
  32. package/dist/__tests__/navigation-store.test.d.ts.map +1 -0
  33. package/dist/__tests__/navigation-store.test.js +440 -0
  34. package/dist/__tests__/navigation-store.test.js.map +1 -0
  35. package/dist/__tests__/partial-update.test.d.ts +2 -0
  36. package/dist/__tests__/partial-update.test.d.ts.map +1 -0
  37. package/dist/__tests__/partial-update.test.js +1009 -0
  38. package/dist/__tests__/partial-update.test.js.map +1 -0
  39. package/dist/__tests__/reverse-types.test.d.ts +8 -0
  40. package/dist/__tests__/reverse-types.test.d.ts.map +1 -0
  41. package/dist/__tests__/reverse-types.test.js +656 -0
  42. package/dist/__tests__/reverse-types.test.js.map +1 -0
  43. package/dist/__tests__/route-definition.test.d.ts +2 -0
  44. package/dist/__tests__/route-definition.test.d.ts.map +1 -0
  45. package/dist/__tests__/route-definition.test.js +55 -0
  46. package/dist/__tests__/route-definition.test.js.map +1 -0
  47. package/dist/__tests__/router-helpers.test.d.ts +2 -0
  48. package/dist/__tests__/router-helpers.test.d.ts.map +1 -0
  49. package/dist/__tests__/router-helpers.test.js +377 -0
  50. package/dist/__tests__/router-helpers.test.js.map +1 -0
  51. package/dist/__tests__/router-integration-2.test.d.ts +2 -0
  52. package/dist/__tests__/router-integration-2.test.d.ts.map +1 -0
  53. package/dist/__tests__/router-integration-2.test.js +426 -0
  54. package/dist/__tests__/router-integration-2.test.js.map +1 -0
  55. package/dist/__tests__/router-integration.test.d.ts +2 -0
  56. package/dist/__tests__/router-integration.test.d.ts.map +1 -0
  57. package/dist/__tests__/router-integration.test.js +1051 -0
  58. package/dist/__tests__/router-integration.test.js.map +1 -0
  59. package/dist/__tests__/search-params.test.d.ts +5 -0
  60. package/dist/__tests__/search-params.test.d.ts.map +1 -0
  61. package/dist/__tests__/search-params.test.js +306 -0
  62. package/dist/__tests__/search-params.test.js.map +1 -0
  63. package/dist/__tests__/segment-system.test.d.ts +2 -0
  64. package/dist/__tests__/segment-system.test.d.ts.map +1 -0
  65. package/dist/__tests__/segment-system.test.js +627 -0
  66. package/dist/__tests__/segment-system.test.js.map +1 -0
  67. package/dist/__tests__/static-handler-types.test.d.ts +8 -0
  68. package/dist/__tests__/static-handler-types.test.d.ts.map +1 -0
  69. package/dist/__tests__/static-handler-types.test.js +63 -0
  70. package/dist/__tests__/static-handler-types.test.js.map +1 -0
  71. package/dist/__tests__/urls.test.d.ts +2 -0
  72. package/dist/__tests__/urls.test.d.ts.map +1 -0
  73. package/dist/__tests__/urls.test.js +421 -0
  74. package/dist/__tests__/urls.test.js.map +1 -0
  75. package/dist/__tests__/use-mount.test.d.ts +2 -0
  76. package/dist/__tests__/use-mount.test.d.ts.map +1 -0
  77. package/dist/__tests__/use-mount.test.js +35 -0
  78. package/dist/__tests__/use-mount.test.js.map +1 -0
  79. package/dist/bin/rango.d.ts +2 -0
  80. package/dist/bin/rango.d.ts.map +1 -0
  81. package/dist/bin/rango.js +1635 -158
  82. package/dist/bin/rango.js.map +1 -0
  83. package/dist/browser/event-controller.d.ts +191 -0
  84. package/dist/browser/event-controller.d.ts.map +1 -0
  85. package/dist/browser/event-controller.js +559 -0
  86. package/dist/browser/event-controller.js.map +1 -0
  87. package/dist/browser/index.d.ts +2 -0
  88. package/dist/browser/index.d.ts.map +1 -0
  89. package/dist/browser/index.js +14 -0
  90. package/dist/browser/index.js.map +1 -0
  91. package/dist/browser/link-interceptor.d.ts +38 -0
  92. package/dist/browser/link-interceptor.d.ts.map +1 -0
  93. package/dist/browser/link-interceptor.js +99 -0
  94. package/dist/browser/link-interceptor.js.map +1 -0
  95. package/dist/browser/logging.d.ts +10 -0
  96. package/dist/browser/logging.d.ts.map +1 -0
  97. package/dist/browser/logging.js +29 -0
  98. package/dist/browser/logging.js.map +1 -0
  99. package/dist/browser/lru-cache.d.ts +17 -0
  100. package/dist/browser/lru-cache.d.ts.map +1 -0
  101. package/dist/browser/lru-cache.js +50 -0
  102. package/dist/browser/lru-cache.js.map +1 -0
  103. package/dist/browser/merge-segment-loaders.d.ts +39 -0
  104. package/dist/browser/merge-segment-loaders.d.ts.map +1 -0
  105. package/dist/browser/merge-segment-loaders.js +102 -0
  106. package/dist/browser/merge-segment-loaders.js.map +1 -0
  107. package/dist/browser/navigation-bridge.d.ts +102 -0
  108. package/dist/browser/navigation-bridge.d.ts.map +1 -0
  109. package/dist/browser/navigation-bridge.js +708 -0
  110. package/dist/browser/navigation-bridge.js.map +1 -0
  111. package/dist/browser/navigation-client.d.ts +25 -0
  112. package/dist/browser/navigation-client.d.ts.map +1 -0
  113. package/dist/browser/navigation-client.js +157 -0
  114. package/dist/browser/navigation-client.js.map +1 -0
  115. package/dist/browser/navigation-store.d.ts +101 -0
  116. package/dist/browser/navigation-store.d.ts.map +1 -0
  117. package/dist/browser/navigation-store.js +625 -0
  118. package/dist/browser/navigation-store.js.map +1 -0
  119. package/dist/browser/partial-update.d.ts +75 -0
  120. package/dist/browser/partial-update.d.ts.map +1 -0
  121. package/dist/browser/partial-update.js +426 -0
  122. package/dist/browser/partial-update.js.map +1 -0
  123. package/dist/browser/react/Link.d.ts +86 -0
  124. package/dist/browser/react/Link.d.ts.map +1 -0
  125. package/dist/browser/react/Link.js +128 -0
  126. package/dist/browser/react/Link.js.map +1 -0
  127. package/dist/browser/react/NavigationProvider.d.ts +63 -0
  128. package/dist/browser/react/NavigationProvider.d.ts.map +1 -0
  129. package/dist/browser/react/NavigationProvider.js +216 -0
  130. package/dist/browser/react/NavigationProvider.js.map +1 -0
  131. package/dist/browser/react/ScrollRestoration.d.ts +75 -0
  132. package/dist/browser/react/ScrollRestoration.d.ts.map +1 -0
  133. package/dist/browser/react/ScrollRestoration.js +57 -0
  134. package/dist/browser/react/ScrollRestoration.js.map +1 -0
  135. package/dist/browser/react/context.d.ts +46 -0
  136. package/dist/browser/react/context.d.ts.map +1 -0
  137. package/dist/browser/react/context.js +10 -0
  138. package/dist/browser/react/context.js.map +1 -0
  139. package/dist/browser/react/index.d.ts +11 -0
  140. package/dist/browser/react/index.d.ts.map +1 -0
  141. package/dist/browser/react/index.js +22 -0
  142. package/dist/browser/react/index.js.map +1 -0
  143. package/dist/browser/react/location-state-shared.d.ts +63 -0
  144. package/dist/browser/react/location-state-shared.d.ts.map +1 -0
  145. package/dist/browser/react/location-state-shared.js +81 -0
  146. package/dist/browser/react/location-state-shared.js.map +1 -0
  147. package/dist/browser/react/location-state.d.ts +23 -0
  148. package/dist/browser/react/location-state.d.ts.map +1 -0
  149. package/dist/browser/react/location-state.js +29 -0
  150. package/dist/browser/react/location-state.js.map +1 -0
  151. package/dist/browser/react/mount-context.d.ts +24 -0
  152. package/dist/browser/react/mount-context.d.ts.map +1 -0
  153. package/dist/browser/react/mount-context.js +24 -0
  154. package/dist/browser/react/mount-context.js.map +1 -0
  155. package/dist/browser/react/use-action.d.ts +64 -0
  156. package/dist/browser/react/use-action.d.ts.map +1 -0
  157. package/dist/browser/react/use-action.js +134 -0
  158. package/dist/browser/react/use-action.js.map +1 -0
  159. package/dist/browser/react/use-client-cache.d.ts +41 -0
  160. package/dist/browser/react/use-client-cache.d.ts.map +1 -0
  161. package/dist/browser/react/use-client-cache.js +39 -0
  162. package/dist/browser/react/use-client-cache.js.map +1 -0
  163. package/dist/browser/react/use-handle.d.ts +31 -0
  164. package/dist/browser/react/use-handle.d.ts.map +1 -0
  165. package/dist/browser/react/use-handle.js +144 -0
  166. package/dist/browser/react/use-handle.js.map +1 -0
  167. package/dist/browser/react/use-href.d.ts +33 -0
  168. package/dist/browser/react/use-href.d.ts.map +1 -0
  169. package/dist/browser/react/use-href.js +39 -0
  170. package/dist/browser/react/use-href.js.map +1 -0
  171. package/dist/browser/react/use-link-status.d.ts +37 -0
  172. package/dist/browser/react/use-link-status.d.ts.map +1 -0
  173. package/dist/browser/react/use-link-status.js +99 -0
  174. package/dist/browser/react/use-link-status.js.map +1 -0
  175. package/dist/browser/react/use-mount.d.ts +25 -0
  176. package/dist/browser/react/use-mount.d.ts.map +1 -0
  177. package/dist/browser/react/use-mount.js +30 -0
  178. package/dist/browser/react/use-mount.js.map +1 -0
  179. package/dist/browser/react/use-navigation.d.ts +27 -0
  180. package/dist/browser/react/use-navigation.d.ts.map +1 -0
  181. package/dist/browser/react/use-navigation.js +87 -0
  182. package/dist/browser/react/use-navigation.js.map +1 -0
  183. package/dist/browser/react/use-segments.d.ts +38 -0
  184. package/dist/browser/react/use-segments.d.ts.map +1 -0
  185. package/dist/browser/react/use-segments.js +130 -0
  186. package/dist/browser/react/use-segments.js.map +1 -0
  187. package/dist/browser/request-controller.d.ts +26 -0
  188. package/dist/browser/request-controller.d.ts.map +1 -0
  189. package/dist/browser/request-controller.js +147 -0
  190. package/dist/browser/request-controller.js.map +1 -0
  191. package/dist/browser/rsc-router.d.ts +129 -0
  192. package/dist/browser/rsc-router.d.ts.map +1 -0
  193. package/dist/browser/rsc-router.js +195 -0
  194. package/dist/browser/rsc-router.js.map +1 -0
  195. package/dist/browser/scroll-restoration.d.ts +93 -0
  196. package/dist/browser/scroll-restoration.d.ts.map +1 -0
  197. package/dist/browser/scroll-restoration.js +321 -0
  198. package/dist/browser/scroll-restoration.js.map +1 -0
  199. package/dist/browser/segment-structure-assert.d.ts +17 -0
  200. package/dist/browser/segment-structure-assert.d.ts.map +1 -0
  201. package/dist/browser/segment-structure-assert.js +59 -0
  202. package/dist/browser/segment-structure-assert.js.map +1 -0
  203. package/dist/browser/server-action-bridge.d.ts +26 -0
  204. package/dist/browser/server-action-bridge.d.ts.map +1 -0
  205. package/dist/browser/server-action-bridge.js +668 -0
  206. package/dist/browser/server-action-bridge.js.map +1 -0
  207. package/dist/browser/shallow.d.ts +12 -0
  208. package/dist/browser/shallow.d.ts.map +1 -0
  209. package/dist/browser/shallow.js +34 -0
  210. package/dist/browser/shallow.js.map +1 -0
  211. package/dist/browser/types.d.ts +369 -0
  212. package/dist/browser/types.d.ts.map +1 -0
  213. package/dist/browser/types.js +2 -0
  214. package/dist/browser/types.js.map +1 -0
  215. package/dist/build/__tests__/generate-cli.test.d.ts +2 -0
  216. package/dist/build/__tests__/generate-cli.test.d.ts.map +1 -0
  217. package/dist/build/__tests__/generate-cli.test.js +237 -0
  218. package/dist/build/__tests__/generate-cli.test.js.map +1 -0
  219. package/dist/build/__tests__/generate-manifest.test.d.ts +2 -0
  220. package/dist/build/__tests__/generate-manifest.test.d.ts.map +1 -0
  221. package/dist/build/__tests__/generate-manifest.test.js +119 -0
  222. package/dist/build/__tests__/generate-manifest.test.js.map +1 -0
  223. package/dist/build/__tests__/generate-route-types.test.d.ts +2 -0
  224. package/dist/build/__tests__/generate-route-types.test.d.ts.map +1 -0
  225. package/dist/build/__tests__/generate-route-types.test.js +620 -0
  226. package/dist/build/__tests__/generate-route-types.test.js.map +1 -0
  227. package/dist/build/__tests__/per-router-manifest.test.d.ts +2 -0
  228. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +1 -0
  229. package/dist/build/__tests__/per-router-manifest.test.js +308 -0
  230. package/dist/build/__tests__/per-router-manifest.test.js.map +1 -0
  231. package/dist/build/generate-manifest.d.ts +81 -0
  232. package/dist/build/generate-manifest.d.ts.map +1 -0
  233. package/dist/build/generate-manifest.js +276 -0
  234. package/dist/build/generate-manifest.js.map +1 -0
  235. package/dist/build/generate-route-types.d.ts +115 -0
  236. package/dist/build/generate-route-types.d.ts.map +1 -0
  237. package/dist/build/generate-route-types.js +740 -0
  238. package/dist/build/generate-route-types.js.map +1 -0
  239. package/dist/build/index.d.ts +21 -0
  240. package/dist/build/index.d.ts.map +1 -0
  241. package/dist/build/index.js +21 -0
  242. package/dist/build/index.js.map +1 -0
  243. package/dist/build/route-trie.d.ts +71 -0
  244. package/dist/build/route-trie.d.ts.map +1 -0
  245. package/dist/build/route-trie.js +175 -0
  246. package/dist/build/route-trie.js.map +1 -0
  247. package/dist/cache/__tests__/cache-scope.test.d.ts +2 -0
  248. package/dist/cache/__tests__/cache-scope.test.d.ts.map +1 -0
  249. package/dist/cache/__tests__/cache-scope.test.js +208 -0
  250. package/dist/cache/__tests__/cache-scope.test.js.map +1 -0
  251. package/dist/cache/__tests__/document-cache.test.d.ts +2 -0
  252. package/dist/cache/__tests__/document-cache.test.d.ts.map +1 -0
  253. package/dist/cache/__tests__/document-cache.test.js +345 -0
  254. package/dist/cache/__tests__/document-cache.test.js.map +1 -0
  255. package/dist/cache/__tests__/memory-segment-store.test.d.ts +2 -0
  256. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +1 -0
  257. package/dist/cache/__tests__/memory-segment-store.test.js +425 -0
  258. package/dist/cache/__tests__/memory-segment-store.test.js.map +1 -0
  259. package/dist/cache/__tests__/memory-store.test.d.ts +2 -0
  260. package/dist/cache/__tests__/memory-store.test.d.ts.map +1 -0
  261. package/dist/cache/__tests__/memory-store.test.js +367 -0
  262. package/dist/cache/__tests__/memory-store.test.js.map +1 -0
  263. package/dist/cache/cache-scope.d.ts +102 -0
  264. package/dist/cache/cache-scope.d.ts.map +1 -0
  265. package/dist/cache/cache-scope.js +440 -0
  266. package/dist/cache/cache-scope.js.map +1 -0
  267. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +2 -0
  268. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +1 -0
  269. package/dist/cache/cf/__tests__/cf-cache-store.test.js +330 -0
  270. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +1 -0
  271. package/dist/cache/cf/cf-cache-store.d.ts +165 -0
  272. package/dist/cache/cf/cf-cache-store.d.ts.map +1 -0
  273. package/dist/cache/cf/cf-cache-store.js +242 -0
  274. package/dist/cache/cf/cf-cache-store.js.map +1 -0
  275. package/dist/cache/cf/index.d.ts +14 -0
  276. package/dist/cache/cf/index.d.ts.map +1 -0
  277. package/dist/cache/cf/index.js +17 -0
  278. package/dist/cache/cf/index.js.map +1 -0
  279. package/dist/cache/document-cache.d.ts +64 -0
  280. package/dist/cache/document-cache.d.ts.map +1 -0
  281. package/dist/cache/document-cache.js +228 -0
  282. package/dist/cache/document-cache.js.map +1 -0
  283. package/dist/cache/index.d.ts +19 -0
  284. package/dist/cache/index.d.ts.map +1 -0
  285. package/dist/cache/index.js +21 -0
  286. package/dist/cache/index.js.map +1 -0
  287. package/dist/cache/memory-segment-store.d.ts +110 -0
  288. package/dist/cache/memory-segment-store.d.ts.map +1 -0
  289. package/dist/cache/memory-segment-store.js +117 -0
  290. package/dist/cache/memory-segment-store.js.map +1 -0
  291. package/dist/cache/memory-store.d.ts +41 -0
  292. package/dist/cache/memory-store.d.ts.map +1 -0
  293. package/dist/cache/memory-store.js +191 -0
  294. package/dist/cache/memory-store.js.map +1 -0
  295. package/dist/cache/types.d.ts +317 -0
  296. package/dist/cache/types.d.ts.map +1 -0
  297. package/dist/cache/types.js +12 -0
  298. package/dist/cache/types.js.map +1 -0
  299. package/dist/client.d.ts +248 -0
  300. package/dist/client.d.ts.map +1 -0
  301. package/dist/client.js +367 -0
  302. package/dist/client.js.map +1 -0
  303. package/dist/client.rsc.d.ts +26 -0
  304. package/dist/client.rsc.d.ts.map +1 -0
  305. package/dist/client.rsc.js +46 -0
  306. package/dist/client.rsc.js.map +1 -0
  307. package/dist/component-utils.d.ts +36 -0
  308. package/dist/component-utils.d.ts.map +1 -0
  309. package/dist/component-utils.js +61 -0
  310. package/dist/component-utils.js.map +1 -0
  311. package/dist/components/DefaultDocument.d.ts +13 -0
  312. package/dist/components/DefaultDocument.d.ts.map +1 -0
  313. package/dist/components/DefaultDocument.js +15 -0
  314. package/dist/components/DefaultDocument.js.map +1 -0
  315. package/dist/debug.d.ts +58 -0
  316. package/dist/debug.d.ts.map +1 -0
  317. package/dist/debug.js +157 -0
  318. package/dist/debug.js.map +1 -0
  319. package/dist/default-error-boundary.d.ts +11 -0
  320. package/dist/default-error-boundary.d.ts.map +1 -0
  321. package/dist/default-error-boundary.js +45 -0
  322. package/dist/default-error-boundary.js.map +1 -0
  323. package/dist/deps/browser.d.ts +2 -0
  324. package/dist/deps/browser.d.ts.map +1 -0
  325. package/dist/deps/browser.js +3 -0
  326. package/dist/deps/browser.js.map +1 -0
  327. package/dist/deps/html-stream-client.d.ts +2 -0
  328. package/dist/deps/html-stream-client.d.ts.map +1 -0
  329. package/dist/deps/html-stream-client.js +3 -0
  330. package/dist/deps/html-stream-client.js.map +1 -0
  331. package/dist/deps/html-stream-server.d.ts +2 -0
  332. package/dist/deps/html-stream-server.d.ts.map +1 -0
  333. package/dist/deps/html-stream-server.js +3 -0
  334. package/dist/deps/html-stream-server.js.map +1 -0
  335. package/dist/deps/rsc.d.ts +2 -0
  336. package/dist/deps/rsc.d.ts.map +1 -0
  337. package/dist/deps/rsc.js +4 -0
  338. package/dist/deps/rsc.js.map +1 -0
  339. package/dist/deps/ssr.d.ts +2 -0
  340. package/dist/deps/ssr.d.ts.map +1 -0
  341. package/dist/deps/ssr.js +3 -0
  342. package/dist/deps/ssr.js.map +1 -0
  343. package/dist/errors.d.ts +174 -0
  344. package/dist/errors.d.ts.map +1 -0
  345. package/dist/errors.js +241 -0
  346. package/dist/errors.js.map +1 -0
  347. package/dist/handle.d.ts +78 -0
  348. package/dist/handle.d.ts.map +1 -0
  349. package/dist/handle.js +82 -0
  350. package/dist/handle.js.map +1 -0
  351. package/dist/handles/MetaTags.d.ts +14 -0
  352. package/dist/handles/MetaTags.d.ts.map +1 -0
  353. package/dist/handles/MetaTags.js +136 -0
  354. package/dist/handles/MetaTags.js.map +1 -0
  355. package/dist/handles/index.d.ts +6 -0
  356. package/dist/handles/index.d.ts.map +1 -0
  357. package/dist/handles/index.js +6 -0
  358. package/dist/handles/index.js.map +1 -0
  359. package/dist/handles/meta.d.ts +39 -0
  360. package/dist/handles/meta.d.ts.map +1 -0
  361. package/dist/handles/meta.js +202 -0
  362. package/dist/handles/meta.js.map +1 -0
  363. package/dist/host/__tests__/errors.test.d.ts +2 -0
  364. package/dist/host/__tests__/errors.test.d.ts.map +1 -0
  365. package/dist/host/__tests__/errors.test.js +76 -0
  366. package/dist/host/__tests__/errors.test.js.map +1 -0
  367. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +2 -0
  368. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +1 -0
  369. package/dist/host/__tests__/pattern-comprehensive.test.js +732 -0
  370. package/dist/host/__tests__/pattern-comprehensive.test.js.map +1 -0
  371. package/dist/host/__tests__/pattern-matcher.test.d.ts +2 -0
  372. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +1 -0
  373. package/dist/host/__tests__/pattern-matcher.test.js +251 -0
  374. package/dist/host/__tests__/pattern-matcher.test.js.map +1 -0
  375. package/dist/host/__tests__/router.test.d.ts +2 -0
  376. package/dist/host/__tests__/router.test.d.ts.map +1 -0
  377. package/dist/host/__tests__/router.test.js +241 -0
  378. package/dist/host/__tests__/router.test.js.map +1 -0
  379. package/dist/host/__tests__/testing.test.d.ts +2 -0
  380. package/dist/host/__tests__/testing.test.d.ts.map +1 -0
  381. package/dist/host/__tests__/testing.test.js +64 -0
  382. package/dist/host/__tests__/testing.test.js.map +1 -0
  383. package/dist/host/__tests__/utils.test.d.ts +2 -0
  384. package/dist/host/__tests__/utils.test.d.ts.map +1 -0
  385. package/dist/host/__tests__/utils.test.js +29 -0
  386. package/dist/host/__tests__/utils.test.js.map +1 -0
  387. package/dist/host/cookie-handler.d.ts +34 -0
  388. package/dist/host/cookie-handler.d.ts.map +1 -0
  389. package/dist/host/cookie-handler.js +124 -0
  390. package/dist/host/cookie-handler.js.map +1 -0
  391. package/dist/host/errors.d.ts +56 -0
  392. package/dist/host/errors.d.ts.map +1 -0
  393. package/dist/host/errors.js +79 -0
  394. package/dist/host/errors.js.map +1 -0
  395. package/dist/host/index.d.ts +29 -0
  396. package/dist/host/index.d.ts.map +1 -0
  397. package/dist/host/index.js +32 -0
  398. package/dist/host/index.js.map +1 -0
  399. package/dist/host/pattern-matcher.d.ts +36 -0
  400. package/dist/host/pattern-matcher.d.ts.map +1 -0
  401. package/dist/host/pattern-matcher.js +172 -0
  402. package/dist/host/pattern-matcher.js.map +1 -0
  403. package/dist/host/router.d.ts +26 -0
  404. package/dist/host/router.d.ts.map +1 -0
  405. package/dist/host/router.js +218 -0
  406. package/dist/host/router.js.map +1 -0
  407. package/dist/host/testing.d.ts +36 -0
  408. package/dist/host/testing.d.ts.map +1 -0
  409. package/dist/host/testing.js +55 -0
  410. package/dist/host/testing.js.map +1 -0
  411. package/dist/host/types.d.ts +115 -0
  412. package/dist/host/types.d.ts.map +1 -0
  413. package/dist/host/types.js +7 -0
  414. package/dist/host/types.js.map +1 -0
  415. package/dist/host/utils.d.ts +21 -0
  416. package/dist/host/utils.d.ts.map +1 -0
  417. package/dist/host/utils.js +23 -0
  418. package/dist/host/utils.js.map +1 -0
  419. package/dist/href-client.d.ts +131 -0
  420. package/dist/href-client.d.ts.map +1 -0
  421. package/dist/href-client.js +64 -0
  422. package/dist/href-client.js.map +1 -0
  423. package/{src/href-context.ts → dist/href-context.d.ts} +7 -11
  424. package/dist/href-context.d.ts.map +1 -0
  425. package/dist/href-context.js +21 -0
  426. package/dist/href-context.js.map +1 -0
  427. package/dist/index.d.ts +73 -0
  428. package/dist/index.d.ts.map +1 -0
  429. package/dist/index.js +91 -0
  430. package/dist/index.js.map +1 -0
  431. package/dist/index.rsc.d.ts +32 -0
  432. package/dist/index.rsc.d.ts.map +1 -0
  433. package/dist/index.rsc.js +40 -0
  434. package/dist/index.rsc.js.map +1 -0
  435. package/dist/internal-debug.d.ts +2 -0
  436. package/dist/internal-debug.d.ts.map +1 -0
  437. package/dist/internal-debug.js +5 -0
  438. package/dist/internal-debug.js.map +1 -0
  439. package/dist/loader.d.ts +14 -0
  440. package/dist/loader.d.ts.map +1 -0
  441. package/dist/loader.js +20 -0
  442. package/dist/loader.js.map +1 -0
  443. package/dist/loader.rsc.d.ts +19 -0
  444. package/dist/loader.rsc.d.ts.map +1 -0
  445. package/dist/loader.rsc.js +99 -0
  446. package/dist/loader.rsc.js.map +1 -0
  447. package/dist/network-error-thrower.d.ts +17 -0
  448. package/dist/network-error-thrower.d.ts.map +1 -0
  449. package/dist/network-error-thrower.js +14 -0
  450. package/dist/network-error-thrower.js.map +1 -0
  451. package/dist/outlet-context.d.ts +13 -0
  452. package/dist/outlet-context.d.ts.map +1 -0
  453. package/dist/outlet-context.js +3 -0
  454. package/dist/outlet-context.js.map +1 -0
  455. package/dist/prerender/__tests__/param-hash.test.d.ts +2 -0
  456. package/dist/prerender/__tests__/param-hash.test.d.ts.map +1 -0
  457. package/dist/prerender/__tests__/param-hash.test.js +148 -0
  458. package/dist/prerender/__tests__/param-hash.test.js.map +1 -0
  459. package/dist/prerender/param-hash.d.ts +16 -0
  460. package/dist/prerender/param-hash.d.ts.map +1 -0
  461. package/dist/prerender/param-hash.js +36 -0
  462. package/dist/prerender/param-hash.js.map +1 -0
  463. package/dist/prerender/store.d.ts +38 -0
  464. package/dist/prerender/store.d.ts.map +1 -0
  465. package/dist/prerender/store.js +61 -0
  466. package/dist/prerender/store.js.map +1 -0
  467. package/dist/prerender.d.ts +66 -0
  468. package/dist/prerender.d.ts.map +1 -0
  469. package/dist/prerender.js +57 -0
  470. package/dist/prerender.js.map +1 -0
  471. package/dist/reverse.d.ts +196 -0
  472. package/dist/reverse.d.ts.map +1 -0
  473. package/dist/reverse.js +78 -0
  474. package/dist/reverse.js.map +1 -0
  475. package/dist/root-error-boundary.d.ts +33 -0
  476. package/dist/root-error-boundary.d.ts.map +1 -0
  477. package/dist/root-error-boundary.js +165 -0
  478. package/dist/root-error-boundary.js.map +1 -0
  479. package/dist/route-content-wrapper.d.ts +46 -0
  480. package/dist/route-content-wrapper.d.ts.map +1 -0
  481. package/dist/route-content-wrapper.js +77 -0
  482. package/dist/route-content-wrapper.js.map +1 -0
  483. package/dist/route-definition.d.ts +421 -0
  484. package/dist/route-definition.d.ts.map +1 -0
  485. package/dist/route-definition.js +868 -0
  486. package/dist/route-definition.js.map +1 -0
  487. package/dist/route-map-builder.d.ts +155 -0
  488. package/dist/route-map-builder.d.ts.map +1 -0
  489. package/dist/route-map-builder.js +237 -0
  490. package/dist/route-map-builder.js.map +1 -0
  491. package/dist/route-types.d.ts +165 -0
  492. package/dist/route-types.d.ts.map +1 -0
  493. package/dist/route-types.js +7 -0
  494. package/dist/route-types.js.map +1 -0
  495. package/dist/router/__tests__/handler-context.test.d.ts +2 -0
  496. package/dist/router/__tests__/handler-context.test.d.ts.map +1 -0
  497. package/dist/router/__tests__/handler-context.test.js +65 -0
  498. package/dist/router/__tests__/handler-context.test.js.map +1 -0
  499. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +2 -0
  500. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +1 -0
  501. package/dist/router/__tests__/loader-cycle-detection.test.js +221 -0
  502. package/dist/router/__tests__/loader-cycle-detection.test.js.map +1 -0
  503. package/dist/router/__tests__/match-context.test.d.ts +2 -0
  504. package/dist/router/__tests__/match-context.test.d.ts.map +1 -0
  505. package/dist/router/__tests__/match-context.test.js +92 -0
  506. package/dist/router/__tests__/match-context.test.js.map +1 -0
  507. package/dist/router/__tests__/match-pipelines.test.d.ts +2 -0
  508. package/dist/router/__tests__/match-pipelines.test.d.ts.map +1 -0
  509. package/dist/router/__tests__/match-pipelines.test.js +417 -0
  510. package/dist/router/__tests__/match-pipelines.test.js.map +1 -0
  511. package/dist/router/__tests__/match-result.test.d.ts +2 -0
  512. package/dist/router/__tests__/match-result.test.d.ts.map +1 -0
  513. package/dist/router/__tests__/match-result.test.js +457 -0
  514. package/dist/router/__tests__/match-result.test.js.map +1 -0
  515. package/dist/router/__tests__/on-error.test.d.ts +2 -0
  516. package/dist/router/__tests__/on-error.test.d.ts.map +1 -0
  517. package/dist/router/__tests__/on-error.test.js +678 -0
  518. package/dist/router/__tests__/on-error.test.js.map +1 -0
  519. package/dist/router/__tests__/pattern-matching.test.d.ts +2 -0
  520. package/dist/router/__tests__/pattern-matching.test.d.ts.map +1 -0
  521. package/dist/router/__tests__/pattern-matching.test.js +629 -0
  522. package/dist/router/__tests__/pattern-matching.test.js.map +1 -0
  523. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +2 -0
  524. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +1 -0
  525. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +155 -0
  526. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +1 -0
  527. package/dist/router/error-handling.d.ts +77 -0
  528. package/dist/router/error-handling.d.ts.map +1 -0
  529. package/dist/router/error-handling.js +202 -0
  530. package/dist/router/error-handling.js.map +1 -0
  531. package/dist/router/handler-context.d.ts +20 -0
  532. package/dist/router/handler-context.d.ts.map +1 -0
  533. package/dist/router/handler-context.js +198 -0
  534. package/dist/router/handler-context.js.map +1 -0
  535. package/dist/router/intercept-resolution.d.ts +66 -0
  536. package/dist/router/intercept-resolution.d.ts.map +1 -0
  537. package/dist/router/intercept-resolution.js +246 -0
  538. package/dist/router/intercept-resolution.js.map +1 -0
  539. package/dist/router/loader-resolution.d.ts +64 -0
  540. package/dist/router/loader-resolution.d.ts.map +1 -0
  541. package/dist/router/loader-resolution.js +284 -0
  542. package/dist/router/loader-resolution.js.map +1 -0
  543. package/dist/router/logging.d.ts +15 -0
  544. package/dist/router/logging.d.ts.map +1 -0
  545. package/dist/router/logging.js +99 -0
  546. package/dist/router/logging.js.map +1 -0
  547. package/dist/router/manifest.d.ts +22 -0
  548. package/dist/router/manifest.d.ts.map +1 -0
  549. package/dist/router/manifest.js +181 -0
  550. package/dist/router/manifest.js.map +1 -0
  551. package/dist/router/match-api.d.ts +35 -0
  552. package/dist/router/match-api.d.ts.map +1 -0
  553. package/dist/router/match-api.js +406 -0
  554. package/dist/router/match-api.js.map +1 -0
  555. package/dist/router/match-context.d.ts +206 -0
  556. package/dist/router/match-context.d.ts.map +1 -0
  557. package/dist/router/match-context.js +17 -0
  558. package/dist/router/match-context.js.map +1 -0
  559. package/dist/router/match-middleware/background-revalidation.d.ts +127 -0
  560. package/dist/router/match-middleware/background-revalidation.d.ts.map +1 -0
  561. package/dist/router/match-middleware/background-revalidation.js +75 -0
  562. package/dist/router/match-middleware/background-revalidation.js.map +1 -0
  563. package/dist/router/match-middleware/cache-lookup.d.ts +112 -0
  564. package/dist/router/match-middleware/cache-lookup.d.ts.map +1 -0
  565. package/dist/router/match-middleware/cache-lookup.js +257 -0
  566. package/dist/router/match-middleware/cache-lookup.js.map +1 -0
  567. package/dist/router/match-middleware/cache-store.d.ts +113 -0
  568. package/dist/router/match-middleware/cache-store.d.ts.map +1 -0
  569. package/dist/router/match-middleware/cache-store.js +108 -0
  570. package/dist/router/match-middleware/cache-store.js.map +1 -0
  571. package/dist/router/match-middleware/index.d.ts +81 -0
  572. package/dist/router/match-middleware/index.d.ts.map +1 -0
  573. package/dist/router/match-middleware/index.js +80 -0
  574. package/dist/router/match-middleware/index.js.map +1 -0
  575. package/dist/router/match-middleware/intercept-resolution.d.ts +117 -0
  576. package/dist/router/match-middleware/intercept-resolution.d.ts.map +1 -0
  577. package/dist/router/match-middleware/intercept-resolution.js +134 -0
  578. package/dist/router/match-middleware/intercept-resolution.js.map +1 -0
  579. package/dist/router/match-middleware/segment-resolution.d.ts +99 -0
  580. package/dist/router/match-middleware/segment-resolution.d.ts.map +1 -0
  581. package/dist/router/match-middleware/segment-resolution.js +53 -0
  582. package/dist/router/match-middleware/segment-resolution.js.map +1 -0
  583. package/dist/router/match-pipelines.d.ts +147 -0
  584. package/dist/router/match-pipelines.d.ts.map +1 -0
  585. package/dist/router/match-pipelines.js +82 -0
  586. package/dist/router/match-pipelines.js.map +1 -0
  587. package/dist/router/match-result.d.ts +126 -0
  588. package/dist/router/match-result.d.ts.map +1 -0
  589. package/dist/router/match-result.js +93 -0
  590. package/dist/router/match-result.js.map +1 -0
  591. package/dist/router/metrics.d.ts +20 -0
  592. package/dist/router/metrics.d.ts.map +1 -0
  593. package/dist/router/metrics.js +47 -0
  594. package/dist/router/metrics.js.map +1 -0
  595. package/dist/router/middleware.d.ts +249 -0
  596. package/dist/router/middleware.d.ts.map +1 -0
  597. package/dist/router/middleware.js +434 -0
  598. package/dist/router/middleware.js.map +1 -0
  599. package/dist/router/middleware.test.d.ts +2 -0
  600. package/dist/router/middleware.test.d.ts.map +1 -0
  601. package/dist/router/middleware.test.js +816 -0
  602. package/dist/router/middleware.test.js.map +1 -0
  603. package/dist/router/pattern-matching.d.ts +149 -0
  604. package/dist/router/pattern-matching.d.ts.map +1 -0
  605. package/dist/router/pattern-matching.js +349 -0
  606. package/dist/router/pattern-matching.js.map +1 -0
  607. package/dist/router/revalidation.d.ts +44 -0
  608. package/dist/router/revalidation.d.ts.map +1 -0
  609. package/dist/router/revalidation.js +147 -0
  610. package/dist/router/revalidation.js.map +1 -0
  611. package/dist/router/router-context.d.ts +135 -0
  612. package/dist/router/router-context.d.ts.map +1 -0
  613. package/dist/router/router-context.js +36 -0
  614. package/dist/router/router-context.js.map +1 -0
  615. package/dist/router/segment-resolution.d.ts +127 -0
  616. package/dist/router/segment-resolution.d.ts.map +1 -0
  617. package/dist/router/segment-resolution.js +919 -0
  618. package/dist/router/segment-resolution.js.map +1 -0
  619. package/dist/router/trie-matching.d.ts +40 -0
  620. package/dist/router/trie-matching.d.ts.map +1 -0
  621. package/dist/router/trie-matching.js +127 -0
  622. package/dist/router/trie-matching.js.map +1 -0
  623. package/dist/router/types.d.ts +136 -0
  624. package/dist/router/types.d.ts.map +1 -0
  625. package/dist/router/types.js +7 -0
  626. package/dist/router/types.js.map +1 -0
  627. package/dist/router.d.ts +753 -0
  628. package/dist/router.d.ts.map +1 -0
  629. package/dist/router.gen.d.ts +6 -0
  630. package/dist/router.gen.d.ts.map +1 -0
  631. package/dist/router.gen.js +6 -0
  632. package/dist/router.gen.js.map +1 -0
  633. package/dist/router.js +1304 -0
  634. package/dist/router.js.map +1 -0
  635. package/dist/rsc/__tests__/helpers.test.d.ts +2 -0
  636. package/dist/rsc/__tests__/helpers.test.d.ts.map +1 -0
  637. package/dist/rsc/__tests__/helpers.test.js +140 -0
  638. package/dist/rsc/__tests__/helpers.test.js.map +1 -0
  639. package/dist/rsc/handler.d.ts +45 -0
  640. package/dist/rsc/handler.d.ts.map +1 -0
  641. package/dist/rsc/handler.js +1172 -0
  642. package/dist/rsc/handler.js.map +1 -0
  643. package/dist/rsc/helpers.d.ts +16 -0
  644. package/dist/rsc/helpers.d.ts.map +1 -0
  645. package/dist/rsc/helpers.js +55 -0
  646. package/dist/rsc/helpers.js.map +1 -0
  647. package/dist/rsc/index.d.ts +22 -0
  648. package/dist/rsc/index.d.ts.map +1 -0
  649. package/dist/rsc/index.js +23 -0
  650. package/dist/rsc/index.js.map +1 -0
  651. package/dist/rsc/nonce.d.ts +9 -0
  652. package/dist/rsc/nonce.d.ts.map +1 -0
  653. package/dist/rsc/nonce.js +18 -0
  654. package/dist/rsc/nonce.js.map +1 -0
  655. package/dist/rsc/types.d.ts +206 -0
  656. package/dist/rsc/types.d.ts.map +1 -0
  657. package/dist/rsc/types.js +8 -0
  658. package/dist/rsc/types.js.map +1 -0
  659. package/dist/search-params.d.ts +103 -0
  660. package/dist/search-params.d.ts.map +1 -0
  661. package/dist/search-params.js +74 -0
  662. package/dist/search-params.js.map +1 -0
  663. package/dist/segment-system.d.ts +75 -0
  664. package/dist/segment-system.d.ts.map +1 -0
  665. package/dist/segment-system.js +336 -0
  666. package/dist/segment-system.js.map +1 -0
  667. package/dist/server/context.d.ts +245 -0
  668. package/dist/server/context.d.ts.map +1 -0
  669. package/dist/server/context.js +197 -0
  670. package/dist/server/context.js.map +1 -0
  671. package/dist/server/fetchable-loader-store.d.ts +18 -0
  672. package/dist/server/fetchable-loader-store.d.ts.map +1 -0
  673. package/dist/server/fetchable-loader-store.js +18 -0
  674. package/dist/server/fetchable-loader-store.js.map +1 -0
  675. package/dist/server/handle-store.d.ts +85 -0
  676. package/dist/server/handle-store.d.ts.map +1 -0
  677. package/dist/server/handle-store.js +142 -0
  678. package/dist/server/handle-store.js.map +1 -0
  679. package/dist/server/loader-registry.d.ts +55 -0
  680. package/dist/server/loader-registry.d.ts.map +1 -0
  681. package/dist/server/loader-registry.js +132 -0
  682. package/dist/server/loader-registry.js.map +1 -0
  683. package/dist/server/request-context.d.ts +226 -0
  684. package/dist/server/request-context.d.ts.map +1 -0
  685. package/dist/server/request-context.js +290 -0
  686. package/dist/server/request-context.js.map +1 -0
  687. package/dist/server/root-layout.d.ts +4 -0
  688. package/dist/server/root-layout.d.ts.map +1 -0
  689. package/dist/server/root-layout.js +5 -0
  690. package/dist/server/root-layout.js.map +1 -0
  691. package/dist/server.d.ts +15 -0
  692. package/dist/server.d.ts.map +1 -0
  693. package/dist/server.js +20 -0
  694. package/dist/server.js.map +1 -0
  695. package/dist/ssr/__tests__/ssr-handler.test.d.ts +2 -0
  696. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +1 -0
  697. package/dist/ssr/__tests__/ssr-handler.test.js +132 -0
  698. package/dist/ssr/__tests__/ssr-handler.test.js.map +1 -0
  699. package/dist/ssr/index.d.ts +98 -0
  700. package/dist/ssr/index.d.ts.map +1 -0
  701. package/dist/ssr/index.js +158 -0
  702. package/dist/ssr/index.js.map +1 -0
  703. package/dist/static-handler.d.ts +50 -0
  704. package/dist/static-handler.d.ts.map +1 -0
  705. package/dist/static-handler.gen.d.ts +5 -0
  706. package/dist/static-handler.gen.d.ts.map +1 -0
  707. package/dist/static-handler.gen.js +5 -0
  708. package/dist/static-handler.gen.js.map +1 -0
  709. package/dist/static-handler.js +29 -0
  710. package/dist/static-handler.js.map +1 -0
  711. package/dist/theme/ThemeProvider.d.ts +20 -0
  712. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  713. package/dist/theme/ThemeProvider.js +240 -0
  714. package/dist/theme/ThemeProvider.js.map +1 -0
  715. package/dist/theme/ThemeScript.d.ts +48 -0
  716. package/dist/theme/ThemeScript.d.ts.map +1 -0
  717. package/dist/theme/ThemeScript.js +13 -0
  718. package/dist/theme/ThemeScript.js.map +1 -0
  719. package/dist/theme/__tests__/theme.test.d.ts +2 -0
  720. package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
  721. package/dist/theme/__tests__/theme.test.js +103 -0
  722. package/dist/theme/__tests__/theme.test.js.map +1 -0
  723. package/dist/theme/constants.d.ts +29 -0
  724. package/dist/theme/constants.d.ts.map +1 -0
  725. package/dist/theme/constants.js +48 -0
  726. package/dist/theme/constants.js.map +1 -0
  727. package/dist/theme/index.d.ts +31 -0
  728. package/dist/theme/index.d.ts.map +1 -0
  729. package/dist/theme/index.js +36 -0
  730. package/dist/theme/index.js.map +1 -0
  731. package/dist/theme/theme-context.d.ts +40 -0
  732. package/dist/theme/theme-context.d.ts.map +1 -0
  733. package/dist/theme/theme-context.js +60 -0
  734. package/dist/theme/theme-context.js.map +1 -0
  735. package/dist/theme/theme-script.d.ts +27 -0
  736. package/dist/theme/theme-script.d.ts.map +1 -0
  737. package/dist/theme/theme-script.js +147 -0
  738. package/dist/theme/theme-script.js.map +1 -0
  739. package/dist/theme/types.d.ts +163 -0
  740. package/dist/theme/types.d.ts.map +1 -0
  741. package/dist/theme/types.js +11 -0
  742. package/dist/theme/types.js.map +1 -0
  743. package/dist/theme/use-theme.d.ts +12 -0
  744. package/dist/theme/use-theme.d.ts.map +1 -0
  745. package/dist/theme/use-theme.js +40 -0
  746. package/dist/theme/use-theme.js.map +1 -0
  747. package/dist/types.d.ts +1479 -0
  748. package/dist/types.d.ts.map +1 -0
  749. package/dist/types.js +10 -0
  750. package/dist/types.js.map +1 -0
  751. package/dist/urls.d.ts +441 -0
  752. package/dist/urls.d.ts.map +1 -0
  753. package/dist/urls.gen.d.ts +8 -0
  754. package/dist/urls.gen.d.ts.map +1 -0
  755. package/dist/urls.gen.js +8 -0
  756. package/dist/urls.gen.js.map +1 -0
  757. package/dist/urls.js +443 -0
  758. package/dist/urls.js.map +1 -0
  759. package/dist/use-loader.d.ts +127 -0
  760. package/dist/use-loader.d.ts.map +1 -0
  761. package/dist/use-loader.js +237 -0
  762. package/dist/use-loader.js.map +1 -0
  763. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +2 -0
  764. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +1 -0
  765. package/dist/vite/__tests__/ast-handler-extract.test.js +294 -0
  766. package/dist/vite/__tests__/ast-handler-extract.test.js.map +1 -0
  767. package/dist/vite/__tests__/expose-id-utils.test.d.ts +2 -0
  768. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +1 -0
  769. package/dist/vite/__tests__/expose-id-utils.test.js +224 -0
  770. package/dist/vite/__tests__/expose-id-utils.test.js.map +1 -0
  771. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +2 -0
  772. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +1 -0
  773. package/dist/vite/__tests__/expose-internal-ids.test.js +647 -0
  774. package/dist/vite/__tests__/expose-internal-ids.test.js.map +1 -0
  775. package/dist/vite/__tests__/expose-router-id.test.d.ts +2 -0
  776. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +1 -0
  777. package/dist/vite/__tests__/expose-router-id.test.js +39 -0
  778. package/dist/vite/__tests__/expose-router-id.test.js.map +1 -0
  779. package/dist/vite/ast-handler-extract.d.ts +49 -0
  780. package/dist/vite/ast-handler-extract.d.ts.map +1 -0
  781. package/dist/vite/ast-handler-extract.js +249 -0
  782. package/dist/vite/ast-handler-extract.js.map +1 -0
  783. package/dist/vite/expose-action-id.d.ts +19 -0
  784. package/dist/vite/expose-action-id.d.ts.map +1 -0
  785. package/dist/vite/expose-action-id.js +250 -0
  786. package/dist/vite/expose-action-id.js.map +1 -0
  787. package/dist/vite/expose-id-utils.d.ts +69 -0
  788. package/dist/vite/expose-id-utils.d.ts.map +1 -0
  789. package/dist/vite/expose-id-utils.js +289 -0
  790. package/dist/vite/expose-id-utils.js.map +1 -0
  791. package/dist/vite/expose-internal-ids.d.ts +22 -0
  792. package/dist/vite/expose-internal-ids.d.ts.map +1 -0
  793. package/dist/vite/expose-internal-ids.js +886 -0
  794. package/dist/vite/expose-internal-ids.js.map +1 -0
  795. package/dist/vite/index.d.ts +149 -0
  796. package/dist/vite/index.d.ts.map +1 -0
  797. package/dist/vite/index.js +6148 -2425
  798. package/dist/vite/index.js.bak +5448 -0
  799. package/dist/vite/index.js.map +1 -0
  800. package/dist/vite/index.named-routes.gen.ts +103 -0
  801. package/dist/vite/package-resolution.d.ts +43 -0
  802. package/dist/vite/package-resolution.d.ts.map +1 -0
  803. package/{src/vite/package-resolution.ts → dist/vite/package-resolution.js} +53 -66
  804. package/dist/vite/package-resolution.js.map +1 -0
  805. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  806. package/dist/vite/virtual-entries.d.ts +25 -0
  807. package/dist/vite/virtual-entries.d.ts.map +1 -0
  808. package/{src/vite/virtual-entries.ts → dist/vite/virtual-entries.js} +12 -16
  809. package/dist/vite/virtual-entries.js.map +1 -0
  810. package/package.json +73 -66
  811. package/skills/breadcrumbs/SKILL.md +252 -0
  812. package/skills/bundle-analysis/SKILL.md +159 -0
  813. package/skills/cache-guide/SKILL.md +473 -0
  814. package/skills/caching/SKILL.md +94 -24
  815. package/skills/composability/SKILL.md +197 -0
  816. package/skills/debug-manifest/SKILL.md +12 -8
  817. package/skills/document-cache/SKILL.md +18 -16
  818. package/skills/fonts/SKILL.md +6 -4
  819. package/skills/handler-use/SKILL.md +364 -0
  820. package/skills/hooks/SKILL.md +524 -71
  821. package/skills/host-router/SKILL.md +243 -0
  822. package/skills/i18n/SKILL.md +276 -0
  823. package/skills/intercept/SKILL.md +173 -8
  824. package/skills/layout/SKILL.md +123 -5
  825. package/skills/links/SKILL.md +316 -25
  826. package/skills/loader/SKILL.md +620 -50
  827. package/skills/middleware/SKILL.md +211 -37
  828. package/skills/migrate-nextjs/SKILL.md +562 -0
  829. package/skills/migrate-react-router/SKILL.md +769 -0
  830. package/skills/mime-routes/SKILL.md +42 -11
  831. package/skills/observability/SKILL.md +137 -0
  832. package/skills/parallel/SKILL.md +271 -3
  833. package/skills/prerender/SKILL.md +448 -63
  834. package/skills/rango/SKILL.md +273 -21
  835. package/skills/response-routes/SKILL.md +210 -100
  836. package/skills/route/SKILL.md +310 -14
  837. package/skills/router-setup/SKILL.md +211 -33
  838. package/skills/server-actions/SKILL.md +751 -0
  839. package/skills/streams-and-websockets/SKILL.md +283 -0
  840. package/skills/theme/SKILL.md +9 -8
  841. package/skills/typesafety/SKILL.md +622 -91
  842. package/skills/use-cache/SKILL.md +324 -0
  843. package/skills/view-transitions/SKILL.md +212 -0
  844. package/src/__augment-tests__/augment.ts +81 -0
  845. package/src/__augment-tests__/augmented.check.ts +117 -0
  846. package/src/__internal.ts +102 -4
  847. package/src/bin/rango.ts +312 -15
  848. package/src/browser/action-coordinator.ts +97 -0
  849. package/src/browser/action-response-classifier.ts +99 -0
  850. package/src/browser/app-shell.ts +52 -0
  851. package/src/browser/app-version.ts +14 -0
  852. package/src/browser/event-controller.ts +136 -68
  853. package/src/browser/history-state.ts +101 -0
  854. package/src/browser/index.ts +3 -3
  855. package/src/browser/intercept-utils.ts +52 -0
  856. package/src/browser/link-interceptor.ts +24 -4
  857. package/src/browser/logging.ts +55 -0
  858. package/src/browser/merge-segment-loaders.ts +20 -12
  859. package/src/browser/navigation-bridge.ts +370 -561
  860. package/src/browser/navigation-client.ts +228 -70
  861. package/src/browser/navigation-store.ts +97 -55
  862. package/src/browser/navigation-transaction.ts +293 -0
  863. package/src/browser/network-error-handler.ts +61 -0
  864. package/src/browser/partial-update.ts +376 -315
  865. package/src/browser/prefetch/cache.ts +314 -0
  866. package/src/browser/prefetch/fetch.ts +282 -0
  867. package/src/browser/prefetch/observer.ts +65 -0
  868. package/src/browser/prefetch/policy.ts +48 -0
  869. package/src/browser/prefetch/queue.ts +191 -0
  870. package/src/browser/prefetch/resource-ready.ts +77 -0
  871. package/src/browser/rango-state.ts +152 -0
  872. package/src/browser/react/Link.tsx +255 -71
  873. package/src/browser/react/NavigationProvider.tsx +152 -24
  874. package/src/browser/react/context.ts +11 -0
  875. package/src/browser/react/filter-segment-order.ts +55 -0
  876. package/src/browser/react/index.ts +15 -12
  877. package/src/browser/react/location-state-shared.ts +176 -53
  878. package/src/browser/react/location-state.ts +90 -19
  879. package/src/browser/react/mount-context.ts +6 -1
  880. package/src/browser/react/nonce-context.ts +23 -0
  881. package/src/browser/react/shallow-equal.ts +27 -0
  882. package/src/browser/react/use-action.ts +29 -51
  883. package/src/browser/react/use-client-cache.ts +5 -3
  884. package/src/browser/react/use-handle.ts +41 -123
  885. package/src/browser/react/use-link-status.ts +6 -5
  886. package/src/browser/react/use-navigation.ts +44 -65
  887. package/src/browser/react/use-params.ts +78 -0
  888. package/src/browser/react/use-pathname.ts +47 -0
  889. package/src/browser/react/use-reverse.ts +99 -0
  890. package/src/browser/react/use-router.ts +96 -0
  891. package/src/browser/react/use-search-params.ts +56 -0
  892. package/src/browser/react/use-segments.ts +85 -99
  893. package/src/browser/response-adapter.ts +73 -0
  894. package/src/browser/rsc-router.tsx +254 -72
  895. package/src/browser/scroll-restoration.ts +132 -49
  896. package/src/browser/segment-reconciler.ts +243 -0
  897. package/src/browser/segment-structure-assert.ts +17 -1
  898. package/src/browser/server-action-bridge.ts +510 -603
  899. package/src/browser/shallow.ts +6 -1
  900. package/src/browser/types.ts +158 -48
  901. package/src/browser/validate-redirect-origin.ts +29 -0
  902. package/src/build/generate-manifest.ts +87 -26
  903. package/src/build/generate-route-types.ts +39 -828
  904. package/src/build/index.ts +2 -5
  905. package/src/build/route-trie.ts +84 -31
  906. package/src/build/route-types/ast-helpers.ts +25 -0
  907. package/src/build/route-types/ast-route-extraction.ts +98 -0
  908. package/src/build/route-types/codegen.ts +102 -0
  909. package/src/build/route-types/include-resolution.ts +418 -0
  910. package/src/build/route-types/param-extraction.ts +48 -0
  911. package/src/build/route-types/per-module-writer.ts +128 -0
  912. package/src/build/route-types/router-processing.ts +618 -0
  913. package/src/build/route-types/scan-filter.ts +85 -0
  914. package/src/build/runtime-discovery.ts +231 -0
  915. package/src/cache/background-task.ts +34 -0
  916. package/src/cache/cache-key-utils.ts +44 -0
  917. package/src/cache/cache-policy.ts +125 -0
  918. package/src/cache/cache-runtime.ts +342 -0
  919. package/src/cache/cache-scope.ts +167 -307
  920. package/src/cache/cf/cf-cache-store.ts +573 -21
  921. package/src/cache/cf/index.ts +13 -3
  922. package/src/cache/document-cache.ts +116 -77
  923. package/src/cache/handle-capture.ts +81 -0
  924. package/src/cache/handle-snapshot.ts +41 -0
  925. package/src/cache/index.ts +1 -15
  926. package/src/cache/memory-segment-store.ts +191 -13
  927. package/src/cache/profile-registry.ts +73 -0
  928. package/src/cache/read-through-swr.ts +134 -0
  929. package/src/cache/segment-codec.ts +256 -0
  930. package/src/cache/taint.ts +153 -0
  931. package/src/cache/types.ts +72 -122
  932. package/src/client.rsc.tsx +6 -1
  933. package/src/client.tsx +117 -303
  934. package/src/component-utils.ts +4 -4
  935. package/src/components/DefaultDocument.tsx +5 -1
  936. package/src/context-var.ts +156 -0
  937. package/src/debug.ts +19 -9
  938. package/src/errors.ts +78 -8
  939. package/src/handle.ts +56 -11
  940. package/src/handles/MetaTags.tsx +73 -20
  941. package/src/handles/breadcrumbs.ts +66 -0
  942. package/src/handles/index.ts +1 -0
  943. package/src/handles/meta.ts +30 -13
  944. package/src/host/cookie-handler.ts +21 -15
  945. package/src/host/errors.ts +8 -8
  946. package/src/host/index.ts +6 -9
  947. package/src/host/pattern-matcher.ts +27 -27
  948. package/src/host/router.ts +176 -82
  949. package/src/host/testing.ts +8 -8
  950. package/src/host/types.ts +46 -9
  951. package/src/host/utils.ts +2 -2
  952. package/src/href-client.ts +196 -56
  953. package/src/index.rsc.ts +140 -22
  954. package/src/index.ts +214 -53
  955. package/src/internal-debug.ts +11 -0
  956. package/src/loader-store.ts +463 -0
  957. package/src/loader.rsc.ts +25 -143
  958. package/src/loader.ts +27 -10
  959. package/src/network-error-thrower.tsx +3 -1
  960. package/src/outlet-context.ts +1 -1
  961. package/src/outlet-provider.tsx +45 -0
  962. package/src/prerender/param-hash.ts +4 -2
  963. package/src/prerender/store.ts +122 -17
  964. package/src/prerender.ts +397 -29
  965. package/src/response-utils.ts +28 -0
  966. package/src/reverse.ts +231 -121
  967. package/src/root-error-boundary.tsx +41 -29
  968. package/src/route-content-wrapper.tsx +7 -4
  969. package/src/route-definition/dsl-helpers.ts +1134 -0
  970. package/src/route-definition/helper-factories.ts +200 -0
  971. package/src/route-definition/helpers-types.ts +485 -0
  972. package/src/route-definition/index.ts +55 -0
  973. package/src/route-definition/redirect.ts +101 -0
  974. package/src/route-definition/resolve-handler-use.ts +155 -0
  975. package/src/route-definition.ts +1 -1431
  976. package/src/route-map-builder.ts +162 -123
  977. package/src/route-name.ts +53 -0
  978. package/src/route-types.ts +64 -9
  979. package/src/router/content-negotiation.ts +215 -0
  980. package/src/router/debug-manifest.ts +72 -0
  981. package/src/router/error-handling.ts +10 -10
  982. package/src/router/find-match.ts +160 -0
  983. package/src/router/handler-context.ts +376 -109
  984. package/src/router/intercept-resolution.ts +35 -20
  985. package/src/router/lazy-includes.ts +237 -0
  986. package/src/router/loader-resolution.ts +330 -145
  987. package/src/router/logging.ts +251 -0
  988. package/src/router/manifest.ts +70 -22
  989. package/src/router/match-api.ts +196 -261
  990. package/src/router/match-context.ts +4 -2
  991. package/src/router/match-handlers.ts +441 -0
  992. package/src/router/match-middleware/background-revalidation.ts +108 -93
  993. package/src/router/match-middleware/cache-lookup.ts +414 -91
  994. package/src/router/match-middleware/cache-store.ts +91 -29
  995. package/src/router/match-middleware/intercept-resolution.ts +48 -21
  996. package/src/router/match-middleware/segment-resolution.ts +73 -9
  997. package/src/router/match-pipelines.ts +10 -45
  998. package/src/router/match-result.ts +154 -35
  999. package/src/router/metrics.ts +241 -16
  1000. package/src/router/middleware-cookies.ts +55 -0
  1001. package/src/router/middleware-types.ts +209 -0
  1002. package/src/router/middleware.ts +373 -371
  1003. package/src/router/navigation-snapshot.ts +182 -0
  1004. package/src/router/pattern-matching.ts +291 -54
  1005. package/src/router/prerender-match.ts +502 -0
  1006. package/src/router/preview-match.ts +98 -0
  1007. package/src/router/request-classification.ts +310 -0
  1008. package/src/router/revalidation.ts +195 -40
  1009. package/src/router/route-snapshot.ts +245 -0
  1010. package/src/router/router-context.ts +41 -21
  1011. package/src/router/router-interfaces.ts +490 -0
  1012. package/src/router/router-options.ts +618 -0
  1013. package/src/router/router-registry.ts +21 -0
  1014. package/src/router/segment-resolution/fresh.ts +756 -0
  1015. package/src/router/segment-resolution/helpers.ts +268 -0
  1016. package/src/router/segment-resolution/loader-cache.ts +199 -0
  1017. package/src/router/segment-resolution/revalidation.ts +1407 -0
  1018. package/src/router/segment-resolution/static-store.ts +67 -0
  1019. package/src/router/segment-resolution.ts +21 -1336
  1020. package/src/router/segment-wrappers.ts +291 -0
  1021. package/src/router/substitute-pattern-params.ts +56 -0
  1022. package/src/router/telemetry-otel.ts +299 -0
  1023. package/src/router/telemetry.ts +300 -0
  1024. package/src/router/timeout.ts +148 -0
  1025. package/src/router/trie-matching.ts +111 -39
  1026. package/src/router/types.ts +17 -9
  1027. package/src/router/url-params.ts +49 -0
  1028. package/src/router.ts +707 -2291
  1029. package/src/rsc/handler-context.ts +45 -0
  1030. package/src/rsc/handler.ts +864 -1117
  1031. package/src/rsc/helpers.ts +181 -19
  1032. package/src/rsc/index.ts +1 -21
  1033. package/src/rsc/loader-fetch.ts +229 -0
  1034. package/src/rsc/manifest-init.ts +90 -0
  1035. package/src/rsc/nonce.ts +14 -0
  1036. package/src/rsc/origin-guard.ts +141 -0
  1037. package/src/rsc/progressive-enhancement.ts +395 -0
  1038. package/src/rsc/response-error.ts +37 -0
  1039. package/src/rsc/response-route-handler.ts +360 -0
  1040. package/src/rsc/rsc-rendering.ts +256 -0
  1041. package/src/rsc/runtime-warnings.ts +42 -0
  1042. package/src/rsc/server-action.ts +360 -0
  1043. package/src/rsc/ssr-setup.ts +128 -0
  1044. package/src/rsc/types.ts +52 -11
  1045. package/src/search-params.ts +230 -0
  1046. package/src/segment-content-promise.ts +67 -0
  1047. package/src/segment-loader-promise.ts +122 -0
  1048. package/src/segment-system.tsx +187 -38
  1049. package/src/serialize.ts +243 -0
  1050. package/src/server/context.ts +344 -70
  1051. package/src/server/cookie-store.ts +190 -0
  1052. package/src/server/fetchable-loader-store.ts +37 -0
  1053. package/src/server/handle-store.ts +113 -15
  1054. package/src/server/loader-registry.ts +24 -64
  1055. package/src/server/request-context.ts +603 -109
  1056. package/src/server.ts +35 -155
  1057. package/src/ssr/index.tsx +107 -30
  1058. package/src/static-handler.ts +126 -0
  1059. package/src/theme/ThemeProvider.tsx +21 -15
  1060. package/src/theme/ThemeScript.tsx +5 -5
  1061. package/src/theme/constants.ts +5 -2
  1062. package/src/theme/index.ts +4 -14
  1063. package/src/theme/theme-context.ts +4 -30
  1064. package/src/theme/theme-script.ts +21 -18
  1065. package/src/types/boundaries.ts +158 -0
  1066. package/src/types/cache-types.ts +198 -0
  1067. package/src/types/error-types.ts +192 -0
  1068. package/src/types/global-namespace.ts +113 -0
  1069. package/src/types/handler-context.ts +806 -0
  1070. package/src/types/index.ts +89 -0
  1071. package/src/types/loader-types.ts +209 -0
  1072. package/src/types/request-scope.ts +126 -0
  1073. package/src/types/route-config.ts +170 -0
  1074. package/src/types/route-entry.ts +120 -0
  1075. package/src/types/segments.ts +167 -0
  1076. package/src/types.ts +1 -1763
  1077. package/src/urls/include-helper.ts +207 -0
  1078. package/src/urls/index.ts +53 -0
  1079. package/src/urls/path-helper-types.ts +372 -0
  1080. package/src/urls/path-helper.ts +364 -0
  1081. package/src/urls/pattern-types.ts +141 -0
  1082. package/src/urls/response-types.ts +108 -0
  1083. package/src/urls/type-extraction.ts +377 -0
  1084. package/src/urls/urls-function.ts +98 -0
  1085. package/src/urls.ts +1 -1288
  1086. package/src/use-loader.tsx +511 -107
  1087. package/src/vite/debug.ts +184 -0
  1088. package/src/vite/discovery/bundle-postprocess.ts +181 -0
  1089. package/src/vite/discovery/discover-routers.ts +374 -0
  1090. package/src/vite/discovery/discovery-errors.ts +194 -0
  1091. package/src/vite/discovery/gate-state.ts +171 -0
  1092. package/src/vite/discovery/prerender-collection.ts +480 -0
  1093. package/src/vite/discovery/route-types-writer.ts +258 -0
  1094. package/src/vite/discovery/self-gen-tracking.ts +73 -0
  1095. package/src/vite/discovery/state.ts +143 -0
  1096. package/src/vite/discovery/virtual-module-codegen.ts +193 -0
  1097. package/src/vite/index.ts +15 -2012
  1098. package/src/vite/plugin-types.ts +103 -0
  1099. package/src/vite/plugins/cjs-to-esm.ts +98 -0
  1100. package/src/vite/plugins/client-ref-dedup.ts +131 -0
  1101. package/src/vite/plugins/client-ref-hashing.ts +117 -0
  1102. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  1103. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1104. package/src/vite/plugins/cloudflare-protocol-stub.ts +214 -0
  1105. package/src/vite/{expose-action-id.ts → plugins/expose-action-id.ts} +109 -66
  1106. package/src/vite/plugins/expose-id-utils.ts +303 -0
  1107. package/src/vite/plugins/expose-ids/export-analysis.ts +320 -0
  1108. package/src/vite/plugins/expose-ids/handler-transform.ts +209 -0
  1109. package/src/vite/plugins/expose-ids/loader-transform.ts +74 -0
  1110. package/src/vite/plugins/expose-ids/router-transform.ts +127 -0
  1111. package/src/vite/plugins/expose-ids/types.ts +45 -0
  1112. package/src/vite/plugins/expose-internal-ids.ts +816 -0
  1113. package/src/vite/plugins/performance-tracks.ts +92 -0
  1114. package/src/vite/plugins/refresh-cmd.ts +127 -0
  1115. package/src/vite/plugins/use-cache-transform.ts +336 -0
  1116. package/src/vite/plugins/version-injector.ts +109 -0
  1117. package/src/vite/plugins/version-plugin.ts +323 -0
  1118. package/src/vite/plugins/virtual-entries.ts +123 -0
  1119. package/src/vite/plugins/virtual-stub-plugin.ts +29 -0
  1120. package/src/vite/rango.ts +509 -0
  1121. package/src/vite/router-discovery.ts +1511 -0
  1122. package/src/vite/utils/ast-handler-extract.ts +517 -0
  1123. package/src/vite/utils/banner.ts +36 -0
  1124. package/src/vite/utils/bundle-analysis.ts +139 -0
  1125. package/src/vite/utils/forward-user-plugins.ts +193 -0
  1126. package/src/vite/utils/manifest-utils.ts +86 -0
  1127. package/src/vite/utils/package-resolution.ts +161 -0
  1128. package/src/vite/utils/prerender-utils.ts +222 -0
  1129. package/src/vite/utils/shared-utils.ts +174 -0
  1130. package/CLAUDE.md +0 -43
  1131. package/src/browser/lru-cache.ts +0 -69
  1132. package/src/browser/request-controller.ts +0 -164
  1133. package/src/cache/memory-store.ts +0 -253
  1134. package/src/router.gen.ts +0 -6
  1135. package/src/urls.gen.ts +0 -8
  1136. package/src/vite/expose-handle-id.ts +0 -209
  1137. package/src/vite/expose-loader-id.ts +0 -426
  1138. package/src/vite/expose-location-state-id.ts +0 -177
  1139. package/src/vite/expose-prerender-handler-id.ts +0 -429
  1140. /package/src/vite/{version.d.ts → plugins/version.d.ts} +0 -0
@@ -15,6 +15,7 @@
15
15
  */
16
16
 
17
17
  import type { GetRegisteredRoutes } from "./types.js";
18
+ import type { JsonSerialize } from "./serialize.js";
18
19
  import type { ResponseEnvelope } from "./urls.js";
19
20
 
20
21
  /**
@@ -45,30 +46,34 @@ type ParseConstraintPath<T extends string> =
45
46
  export type PatternToPath<T extends string> =
46
47
  // Optional + constrained param in middle: /:param(a|b)?/rest
47
48
  T extends `${infer Before}:${infer _Name}(${infer Constraint})?/${infer After}`
48
- ? PatternToPath<`${Before}${After}`> | `${Before}${ParseConstraintPath<Constraint>}/${PatternToPath<After>}`
49
- // Optional + constrained param at end: /path/:param(a|b)?
50
- : T extends `${infer Before}:${infer _Name}(${infer Constraint})?`
51
- ? Before | `${Before}${ParseConstraintPath<Constraint>}`
52
- // Constrained param in middle: /:param(a|b)/rest
53
- : T extends `${infer Before}:${infer _Name}(${infer Constraint})/${infer After}`
54
- ? `${Before}${ParseConstraintPath<Constraint>}/${PatternToPath<After>}`
55
- // Constrained param at end: /path/:param(a|b)
56
- : T extends `${infer Before}:${infer _Name}(${infer Constraint})`
57
- ? `${Before}${ParseConstraintPath<Constraint>}`
58
- // Optional param in middle: /:param?/rest
59
- : T extends `${infer Before}:${infer _Param}?/${infer After}`
60
- ? PatternToPath<`${Before}${After}`> | `${Before}${string}/${PatternToPath<After>}`
61
- // Optional param at end: /path/:param?
62
- : T extends `${infer Before}:${infer _Param}?`
63
- ? Before | `${Before}${string}`
64
- // Required param in middle: /:param/rest
65
- : T extends `${infer Before}:${infer _Param}/${infer After}`
66
- ? `${Before}${string}/${PatternToPath<After>}`
67
- // Required param at end: /path/:param
68
- : T extends `${infer Before}:${infer _Param}`
69
- ? `${Before}${string}`
70
- // Static path
71
- : T;
49
+ ?
50
+ | PatternToPath<`${Before}${After}`>
51
+ | `${Before}${ParseConstraintPath<Constraint>}/${PatternToPath<After>}`
52
+ : // Optional + constrained param at end: /path/:param(a|b)?
53
+ T extends `${infer Before}:${infer _Name}(${infer Constraint})?`
54
+ ? Before | `${Before}${ParseConstraintPath<Constraint>}`
55
+ : // Constrained param in middle: /:param(a|b)/rest
56
+ T extends `${infer Before}:${infer _Name}(${infer Constraint})/${infer After}`
57
+ ? `${Before}${ParseConstraintPath<Constraint>}/${PatternToPath<After>}`
58
+ : // Constrained param at end: /path/:param(a|b)
59
+ T extends `${infer Before}:${infer _Name}(${infer Constraint})`
60
+ ? `${Before}${ParseConstraintPath<Constraint>}`
61
+ : // Optional param in middle: /:param?/rest
62
+ T extends `${infer Before}:${infer _Param}?/${infer After}`
63
+ ?
64
+ | PatternToPath<`${Before}${After}`>
65
+ | `${Before}${string}/${PatternToPath<After>}`
66
+ : // Optional param at end: /path/:param?
67
+ T extends `${infer Before}:${infer _Param}?`
68
+ ? Before | `${Before}${string}`
69
+ : // Required param in middle: /:param/rest
70
+ T extends `${infer Before}:${infer _Param}/${infer After}`
71
+ ? `${Before}${string}/${PatternToPath<After>}`
72
+ : // Required param at end: /path/:param
73
+ T extends `${infer Before}:${infer _Param}`
74
+ ? `${Before}${string}`
75
+ : // Static path
76
+ T;
72
77
 
73
78
  /**
74
79
  * Allow optional query string (?...) and/or hash fragment (#...) suffix
@@ -85,59 +90,186 @@ type WithSuffix<T extends string> =
85
90
  /**
86
91
  * Helper type to get pattern from routes, handling string values and { path, response } objects
87
92
  */
88
- type RoutePattern<TRoutes, K extends keyof TRoutes> =
89
- TRoutes[K] extends string ? TRoutes[K]
90
- : TRoutes[K] extends { readonly path: infer P extends string } ? P
91
- : string;
93
+ type RoutePattern<TRoutes, K extends keyof TRoutes> = TRoutes[K] extends string
94
+ ? TRoutes[K]
95
+ : TRoutes[K] extends { readonly path: infer P extends string }
96
+ ? P
97
+ : string;
92
98
 
93
99
  /**
94
100
  * Reverse lookup: find route name where the pattern matches TPattern
95
101
  */
96
- type NameForPattern<
97
- TPattern extends string,
98
- TRoutes = GetRegisteredRoutes
99
- > = {
100
- [K in keyof TRoutes]: RoutePattern<TRoutes, K> extends TPattern ? K : never
102
+ type NameForPattern<TPattern extends string, TRoutes = GetRegisteredRoutes> = {
103
+ [K in keyof TRoutes]: RoutePattern<TRoutes, K> extends TPattern ? K : never;
101
104
  }[keyof TRoutes];
102
105
 
103
106
  /**
104
- * Look up the response data type for a route pattern from RegisteredRoutes.
105
- *
106
- * Works by reverse-looking up the route name for the given pattern,
107
- * then extracting the response type from the route entry.
107
+ * Strip a query (`?…`) and/or hash (`#…`) suffix before matching, so a concrete
108
+ * URL like `/api/health?ts=1` still resolves to its route's response. Removes
109
+ * from the earliest of `?`/`#`: a `#` before the first `?` (the query is part of
110
+ * a fragment, e.g. `/health#top?x=1`) is handled, as is a `/:` that only appears
111
+ * inside the query (e.g. `/health?next=/:id`).
112
+ */
113
+ type StripPathSuffix<T extends string> = T extends `${infer Base}?${string}`
114
+ ? Base extends `${infer Frag}#${string}`
115
+ ? Frag
116
+ : Base
117
+ : T extends `${infer Base}#${string}`
118
+ ? Base
119
+ : T;
120
+
121
+ /** Extract a route entry's response payload (or `never` for RSC routes). */
122
+ type ResponsePayloadOf<TRoutes, K extends keyof TRoutes> = TRoutes[K] extends {
123
+ readonly response: infer R;
124
+ }
125
+ ? Exclude<R, Response>
126
+ : never;
127
+
128
+ /**
129
+ * Look up the response payload for a route, keyed by either a route pattern
130
+ * (`/api/products/:id`) or a concrete path (`/api/products/123`). The same type
131
+ * serves a pattern lookup and a typed `fetch` wrapper that forwards a concrete
132
+ * `Rango.Path`:
108
133
  *
109
- * For static routes (no params), pattern === path:
110
- * PathResponse<"/api/health"> → { status: string; timestamp: number }
134
+ * PathResponse<"/api/products/:id"> Product // by pattern
135
+ * PathResponse<"/api/products/123"> → Product // by concrete path
111
136
  *
112
- * For dynamic routes, use the pattern:
113
- * PathResponse<"/api/products/:id"> Product
137
+ * The query/hash suffix is stripped first; the stripped key is then treated as a
138
+ * pattern when it contains a `/:param` segment and matched exactly (precise even
139
+ * for nested dynamic routes), otherwise as a concrete path matched against each
140
+ * route's `PatternToPath` template. Because those holes are `${string}`
141
+ * (slash-greedy), a concrete path under a *nested* dynamic route can match several
142
+ * patterns and union their responses — pattern lookups do not have this
143
+ * looseness. RSC routes (no response) and unmatched keys resolve to `never`.
114
144
  */
115
- export type PathResponse<TPattern extends string, TRoutes = GetRegisteredRoutes> =
116
- ResponseEnvelope<{
117
- [K in keyof TRoutes]: RoutePattern<TRoutes, K> extends TPattern
118
- ? TRoutes[K] extends { readonly response: infer R } ? Exclude<R, Response> : never
119
- : never
120
- }[keyof TRoutes]>;
145
+ type ResponsePayloadFor<
146
+ TPath extends string,
147
+ TRoutes = GetRegisteredRoutes,
148
+ > = ResponsePayloadForKey<StripPathSuffix<TPath>, TRoutes>;
149
+
150
+ type ResponsePayloadForKey<
151
+ TKey extends string,
152
+ TRoutes,
153
+ > = TKey extends `${string}/:${string}`
154
+ ? {
155
+ [K in keyof TRoutes]: RoutePattern<TRoutes, K> extends TKey
156
+ ? ResponsePayloadOf<TRoutes, K>
157
+ : never;
158
+ }[keyof TRoutes]
159
+ : {
160
+ [K in keyof TRoutes]: TKey extends PatternToPath<RoutePattern<TRoutes, K>>
161
+ ? ResponsePayloadOf<TRoutes, K>
162
+ : never;
163
+ }[keyof TRoutes];
164
+
165
+ /**
166
+ * Public response type for a route, keyed by pattern or concrete path. The
167
+ * payload is wrapped in `JsonSerialize` so it describes the JSON **wire** value a
168
+ * consumer receives from `fetch().then(r => r.json())`, not the handler's raw
169
+ * return type — e.g. a handler returning `{ createdAt: Date }` resolves here to
170
+ * `ResponseEnvelope<{ createdAt: string }>`.
171
+ */
172
+ export type PathResponse<
173
+ TPath extends string,
174
+ TRoutes = GetRegisteredRoutes,
175
+ > = ResponseEnvelope<JsonSerialize<ResponsePayloadFor<TPath, TRoutes>>>;
121
176
 
122
177
  /**
123
178
  * Strip trailing slash from a path (e.g., "/blog/" -> "/blog" | "/blog/")
124
179
  * Allows navigation to include() prefixes without requiring trailing slash
125
180
  */
126
- type OptionalTrailingSlash<T extends string> =
127
- T extends `${infer Base}/` ? (Base extends "" ? T : Base | T) : T;
181
+ type OptionalTrailingSlash<T extends string> = T extends `${infer Base}/`
182
+ ? Base extends ""
183
+ ? T
184
+ : Base | T
185
+ : T;
128
186
 
129
187
  /**
130
188
  * Union of all valid paths from registered routes
131
189
  *
132
- * Generated from RSCRouter.RegisteredRoutes via module augmentation.
190
+ * Generated from Rango.RegisteredRoutes via module augmentation.
133
191
  * Allows optional query strings and hash fragments.
134
192
  */
135
193
  export type ValidPaths<TRoutes = GetRegisteredRoutes> =
136
194
  keyof TRoutes extends never
137
195
  ? `/${string}` // Fallback when no routes are registered
138
- : WithSuffix<{
139
- [K in keyof TRoutes]: OptionalTrailingSlash<PatternToPath<RoutePattern<TRoutes, K>>>
140
- }[keyof TRoutes]>;
196
+ : WithSuffix<
197
+ {
198
+ [K in keyof TRoutes]: OptionalTrailingSlash<
199
+ PatternToPath<RoutePattern<TRoutes, K>>
200
+ >;
201
+ }[keyof TRoutes]
202
+ >;
203
+
204
+ // Module-scoped alias so the ambient `Rango.PathResponse` below can reference
205
+ // the module-level `PathResponse` without the global namespace shadowing the
206
+ // name when both are called `PathResponse`.
207
+ type GlobalPathResponse<
208
+ TPattern extends string,
209
+ TRoutes = GetRegisteredRoutes,
210
+ > = PathResponse<TPattern, TRoutes>;
211
+
212
+ /**
213
+ * Ambient path types on the `Rango` namespace.
214
+ *
215
+ * These live on the same global namespace consumers already augment for
216
+ * `Rango.Env` / `Rango.Vars`, so they are reachable with no import wherever the
217
+ * router's types are in scope. They are the public, recommended surface for
218
+ * typing anything that wraps `href()`. `ValidPaths` / `PathResponse` stay as the
219
+ * internal building blocks behind them.
220
+ */
221
+ declare global {
222
+ namespace Rango {
223
+ /**
224
+ * Union of every valid route path accepted by `href()`.
225
+ *
226
+ * Type a wrapper's path parameter as `Rango.Path` so it shares `href()`'s
227
+ * compile-time validation against the registered routes:
228
+ *
229
+ * ```ts
230
+ * import { href } from "@rangojs/router/client";
231
+ *
232
+ * export const appHref = (path: Rango.Path) => href(path);
233
+ * ```
234
+ *
235
+ * Resolves from `Rango.RegisteredRoutes` when augmented, otherwise the
236
+ * auto-generated `Rango.GeneratedRouteMap`, otherwise a permissive
237
+ * `/${string}` fallback.
238
+ */
239
+ type Path<TRoutes = GetRegisteredRoutes> = ValidPaths<TRoutes>;
240
+
241
+ /**
242
+ * Response payload for a route, looked up from the global route map by
243
+ * either a route pattern (`/api/products/:id`) or a concrete path
244
+ * (`/api/products/123`). Because it accepts a concrete `Rango.Path`, it
245
+ * doubles as the return type of a typed `fetch` wrapper:
246
+ *
247
+ * ```ts
248
+ * type Product = Rango.PathResponse<"/api/products/:id">; // by pattern
249
+ * type Same = Rango.PathResponse<"/api/products/42">; // by concrete path
250
+ *
251
+ * const get = async <T extends Rango.Path>(
252
+ * path: T,
253
+ * ): Promise<Rango.PathResponse<T>> =>
254
+ * fetch(href(path)).then((r) => r.json());
255
+ * ```
256
+ *
257
+ * The payload is the JSON **wire** shape (via `Rango.JsonSerialize`), not the
258
+ * handler's raw return — a handler returning `{ createdAt: Date }` resolves
259
+ * here to `ResponseEnvelope<{ createdAt: string }>`, matching what
260
+ * `fetch().then(r => r.json())` actually yields.
261
+ *
262
+ * Only resolves once `Rango.RegisteredRoutes` carries response metadata (the
263
+ * generated map has paths and search but no payloads). Pass an explicit route
264
+ * map as the second argument to look up against a non-global map (rarely
265
+ * needed in app code).
266
+ */
267
+ type PathResponse<
268
+ TPath extends string,
269
+ TRoutes = GetRegisteredRoutes,
270
+ > = GlobalPathResponse<TPath, TRoutes>;
271
+ }
272
+ }
141
273
 
142
274
  /**
143
275
  * Type-safe href function for client-side use
@@ -167,9 +299,14 @@ export type ValidPaths<TRoutes = GetRegisteredRoutes> =
167
299
  */
168
300
  export function href<T extends ValidPaths>(path: T, mount?: string): string {
169
301
  if (mount && mount !== "/") {
170
- return mount + path;
302
+ // Strip trailing slash from mount to avoid double-slash when joining
303
+ const normalizedMount = mount.endsWith("/") ? mount.slice(0, -1) : mount;
304
+ return normalizedMount + path;
171
305
  }
172
- return path;
306
+ // ValidPaths is built from template literals so T does extend string at
307
+ // runtime, but the inference can fail past a certain route-union complexity
308
+ // and TypeScript reports T as not assignable to string.
309
+ return path as string;
173
310
  }
174
311
 
175
312
  /**
@@ -181,7 +318,10 @@ export interface ResponseHrefProps {
181
318
  "data-external": "";
182
319
  }
183
320
 
184
- type ResponseHrefFn = <T extends ValidPaths>(path: T, mount?: string) => ResponseHrefProps;
321
+ type ResponseHrefFn = <T extends ValidPaths>(
322
+ path: T,
323
+ mount?: string,
324
+ ) => ResponseHrefProps;
185
325
 
186
326
  function createResponseHrefTag(): ResponseHrefFn {
187
327
  return (path, mount) => ({
package/src/index.rsc.ts CHANGED
@@ -1,9 +1,9 @@
1
1
  /**
2
- * rsc-router (react-server environment)
2
+ * @rangojs/router (react-server environment)
3
3
  *
4
- * This file is used when importing "rsc-router" from RSC (server components).
4
+ * This file is used when importing "@rangojs/router" from RSC (server components).
5
5
  * It re-exports everything from the universal index.ts plus adds server-side
6
- * createLoader that includes the actual loader function.
6
+ * implementations that replace the client-side error stubs.
7
7
  *
8
8
  * The bundler uses the "react-server" export condition to select this file
9
9
  * in RSC context, while the regular index.ts is used in client components.
@@ -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,22 +19,22 @@ export {
21
19
  HandlerError,
22
20
  BuildError,
23
21
  InvalidHandlerError,
24
- NetworkError,
25
- isNetworkError,
26
- sanitizeError,
27
22
  RouterError,
23
+ Skip,
24
+ isSkip,
28
25
  } from "./index.js";
29
26
 
30
27
  // Re-export all types from types.ts (user-facing types only)
31
28
  export type {
32
29
  // Configuration types
33
30
  DocumentProps,
34
- RouterEnv,
35
31
  DefaultEnv,
36
32
  RouteDefinition,
33
+ RouteConfig,
34
+ RouteDefinitionOptions,
35
+ TrailingSlashMode,
37
36
  // Handler types
38
37
  Handler,
39
- ScopedRouteMap,
40
38
  HandlerContext,
41
39
  ExtractParams,
42
40
  GenericParams,
@@ -45,6 +43,7 @@ export type {
45
43
  // Revalidation types
46
44
  RevalidateParams,
47
45
  Revalidate,
46
+ ActionRef,
48
47
  RouteKeys,
49
48
  // Loader types
50
49
  LoaderDefinition,
@@ -52,9 +51,6 @@ export type {
52
51
  LoaderContext,
53
52
  FetchableLoaderOptions,
54
53
  LoadOptions,
55
- LoaderActionContext,
56
- LoaderAction,
57
- LoaderMiddlewareFn,
58
54
  // Error boundary types
59
55
  ErrorInfo,
60
56
  ErrorBoundaryFallbackProps,
@@ -64,26 +60,74 @@ export type {
64
60
  NotFoundInfo,
65
61
  NotFoundBoundaryFallbackProps,
66
62
  NotFoundBoundaryHandler,
63
+ // Error handling callback types
64
+ ErrorPhase,
65
+ OnErrorContext,
66
+ OnErrorCallback,
67
67
  } from "./types.js";
68
68
 
69
69
  // Router options type (server-only, so import directly)
70
- export type { RSCRouterOptions } from "./router.js";
70
+ export type {
71
+ RangoOptions,
72
+ SSRStreamMode,
73
+ SSROptions,
74
+ ResolveStreamingContext,
75
+ } from "./router.js";
71
76
 
72
77
  // Server-side createLoader and redirect
73
- export { createLoader, redirect } from "./route-definition.js";
78
+ export {
79
+ createLoader,
80
+ redirect,
81
+ type RouteHelpers,
82
+ type RouteHandlers,
83
+ // Globally importable route helpers for composition
84
+ layout,
85
+ cache,
86
+ middleware,
87
+ revalidate,
88
+ loader,
89
+ loading,
90
+ parallel,
91
+ intercept,
92
+ when,
93
+ errorBoundary,
94
+ notFoundBoundary,
95
+ transition,
96
+ } from "./route-definition.js";
97
+
98
+ // Composition types for reusable callback factories
99
+ export type {
100
+ RouteUseItem,
101
+ LayoutUseItem,
102
+ AllUseItems,
103
+ UseItems,
104
+ HandlerUseItem,
105
+ } from "./route-types.js";
74
106
 
75
107
  // Handle API
76
108
  export { createHandle, isHandle, type Handle } from "./handle.js";
77
109
 
110
+ // Context variable API (typed ctx.set/ctx.get tokens)
111
+ export { createVar, type ContextVar } from "./context-var.js";
112
+
113
+ // CSP nonce token (use with ctx.get(nonce) in middleware/handlers)
114
+ export { nonce } from "./rsc/nonce.js";
115
+
78
116
  // Pre-render handler API
79
117
  export {
80
- createPrerenderHandler,
81
- isPrerenderHandler,
118
+ Prerender,
119
+ Passthrough,
82
120
  type PrerenderHandlerDefinition,
121
+ type PassthroughHandlerDefinition,
83
122
  type PrerenderOptions,
84
123
  type BuildContext,
124
+ type StaticBuildContext,
125
+ type GetParamsContext,
85
126
  } from "./prerender.js";
86
127
 
128
+ // Static handler API
129
+ export { Static, type StaticHandlerDefinition } from "./static-handler.js";
130
+
87
131
  // Django-style URL patterns (RSC/server context)
88
132
  export {
89
133
  urls,
@@ -95,13 +139,22 @@ export {
95
139
  type RouteResponse,
96
140
  type ResponseError,
97
141
  type ResponseEnvelope,
142
+ type ResponseHandler,
143
+ type ResponseHandlerContext,
144
+ type JsonResponseHandler,
145
+ type TextResponseHandler,
146
+ type JsonValue,
147
+ type ResponsePathFn,
148
+ type JsonResponsePathFn,
149
+ type TextResponsePathFn,
98
150
  } from "./urls.js";
99
151
 
100
152
  // Core router (server-side)
101
153
  export {
102
154
  createRouter,
103
- type RSCRouter,
155
+ type Rango,
104
156
  type RootLayoutProps,
157
+ type RouterRequestInput,
105
158
  } from "./router.js";
106
159
 
107
160
  // RSC handler types (server-side)
@@ -109,13 +162,78 @@ export type { HandlerCacheConfig } from "./rsc/types.js";
109
162
 
110
163
  // Built-in handles (server-side)
111
164
  export { Meta } from "./handles/meta.js";
165
+ export { Breadcrumbs, type BreadcrumbItem } from "./handles/breadcrumbs.js";
166
+
167
+ // Request context (for accessing request data in server actions/components).
168
+ // Re-exported with a narrowed return type so that public consumers only see
169
+ // public members. Internal code imports from "./server/request-context.js"
170
+ // directly and gets the full type.
171
+ import { getRequestContext as _getRequestContextInternal } from "./server/request-context.js";
172
+ export type { PublicRequestContext as RequestContext } from "./server/request-context.js";
173
+ import type { PublicRequestContext } from "./server/request-context.js";
174
+ import type { DefaultEnv } from "./types/global-namespace.js";
175
+
176
+ // Shared base for every user-facing request context (mirrors index.ts).
177
+ export type { RequestScope, ExecutionContext } from "./types/request-scope.js";
178
+
179
+ export const getRequestContext: <
180
+ TEnv = DefaultEnv,
181
+ >() => PublicRequestContext<TEnv> = _getRequestContextInternal;
112
182
 
113
- // Request context (for accessing request data in server actions/components)
114
- export { getRequestContext, type RequestContext } from "./server/request-context.js";
183
+ // Request-scoped shorthands
184
+ export {
185
+ cookies,
186
+ headers,
187
+ type CookieStore,
188
+ type Cookie,
189
+ type ReadonlyHeaders,
190
+ } from "./server/cookie-store.js";
115
191
 
116
192
  // Meta types
117
193
  export type { MetaDescriptor, MetaDescriptorBase } from "./router/types.js";
118
194
 
195
+ // Middleware context types
196
+ export type { MiddlewareContext, CookieOptions } from "./router/middleware.js";
197
+
119
198
  // Reverse type utilities for type-safe URL generation (Django-style URL reversal)
120
- export type { ScopedReverseFunction, ReverseFunction, ExtractLocalRoutes } from "./reverse.js";
121
- export { scopedReverse } from "./reverse.js";
199
+ export type {
200
+ ScopedReverseFunction,
201
+ ReverseFunction,
202
+ ExtractLocalRoutes,
203
+ ParamsFor,
204
+ } from "./reverse.js";
205
+ export { scopedReverse, createReverse } from "./reverse.js";
206
+
207
+ // Search params schema types
208
+ export type {
209
+ SearchSchema,
210
+ SearchSchemaValue,
211
+ ResolveSearchSchema,
212
+ RouteSearchParams,
213
+ RouteParams,
214
+ } from "./search-params.js";
215
+
216
+ // Location state (universal)
217
+ export {
218
+ createLocationState,
219
+ type LocationStateDefinition,
220
+ type LocationStateEntry,
221
+ type LocationStateOptions,
222
+ } from "./browser/react/location-state-shared.js";
223
+
224
+ // Path and response types are ambient on the `Rango` namespace (`Rango.Path`,
225
+ // `Rango.PathResponse`, declared in href-client.ts) — no import needed.
226
+
227
+ // Telemetry sink
228
+ export { createConsoleSink } from "./router/telemetry.js";
229
+ export { createOTelSink } from "./router/telemetry-otel.js";
230
+ export type { OTelTracer, OTelSpan } from "./router/telemetry-otel.js";
231
+ export type { TelemetrySink, TelemetryEvent } from "./router/telemetry.js";
232
+
233
+ // Timeout types and error class
234
+ export { RouterTimeoutError } from "./router/timeout.js";
235
+ export type {
236
+ RouterTimeouts,
237
+ TimeoutPhase,
238
+ TimeoutContext,
239
+ } from "./router/timeout.js";