@rangojs/router 0.0.0-experimental.8ff1c5d → 0.0.0-experimental.90

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