@rangojs/router 0.0.0-experimental.10 → 0.0.0-experimental.101

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 (1132) 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 +1634 -157
  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 +5823 -2295
  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 +71 -63
  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 +6 -4
  818. package/skills/handler-use/SKILL.md +364 -0
  819. package/skills/hooks/SKILL.md +408 -71
  820. package/skills/host-router/SKILL.md +218 -0
  821. package/skills/i18n/SKILL.md +276 -0
  822. package/skills/intercept/SKILL.md +176 -8
  823. package/skills/layout/SKILL.md +124 -3
  824. package/skills/links/SKILL.md +304 -25
  825. package/skills/loader/SKILL.md +481 -47
  826. package/skills/middleware/SKILL.md +207 -37
  827. package/skills/migrate-nextjs/SKILL.md +562 -0
  828. package/skills/migrate-react-router/SKILL.md +769 -0
  829. package/skills/mime-routes/SKILL.md +15 -11
  830. package/skills/parallel/SKILL.md +272 -1
  831. package/skills/prerender/SKILL.md +467 -65
  832. package/skills/rango/SKILL.md +89 -21
  833. package/skills/response-routes/SKILL.md +152 -91
  834. package/skills/route/SKILL.md +305 -14
  835. package/skills/router-setup/SKILL.md +210 -32
  836. package/skills/server-actions/SKILL.md +739 -0
  837. package/skills/streams-and-websockets/SKILL.md +283 -0
  838. package/skills/theme/SKILL.md +9 -8
  839. package/skills/typesafety/SKILL.md +333 -86
  840. package/skills/use-cache/SKILL.md +324 -0
  841. package/skills/view-transitions/SKILL.md +212 -0
  842. package/src/__internal.ts +102 -4
  843. package/src/bin/rango.ts +312 -15
  844. package/src/browser/action-coordinator.ts +97 -0
  845. package/src/browser/action-response-classifier.ts +99 -0
  846. package/src/browser/app-shell.ts +52 -0
  847. package/src/browser/app-version.ts +14 -0
  848. package/src/browser/event-controller.ts +136 -68
  849. package/src/browser/history-state.ts +80 -0
  850. package/src/browser/intercept-utils.ts +52 -0
  851. package/src/browser/link-interceptor.ts +24 -4
  852. package/src/browser/logging.ts +55 -0
  853. package/src/browser/merge-segment-loaders.ts +20 -12
  854. package/src/browser/navigation-bridge.ts +374 -561
  855. package/src/browser/navigation-client.ts +228 -70
  856. package/src/browser/navigation-store.ts +97 -55
  857. package/src/browser/navigation-transaction.ts +297 -0
  858. package/src/browser/network-error-handler.ts +61 -0
  859. package/src/browser/partial-update.ts +376 -315
  860. package/src/browser/prefetch/cache.ts +314 -0
  861. package/src/browser/prefetch/fetch.ts +282 -0
  862. package/src/browser/prefetch/observer.ts +65 -0
  863. package/src/browser/prefetch/policy.ts +48 -0
  864. package/src/browser/prefetch/queue.ts +191 -0
  865. package/src/browser/prefetch/resource-ready.ts +77 -0
  866. package/src/browser/rango-state.ts +152 -0
  867. package/src/browser/react/Link.tsx +255 -71
  868. package/src/browser/react/NavigationProvider.tsx +152 -24
  869. package/src/browser/react/context.ts +11 -0
  870. package/src/browser/react/filter-segment-order.ts +55 -0
  871. package/src/browser/react/index.ts +15 -12
  872. package/src/browser/react/location-state-shared.ts +95 -53
  873. package/src/browser/react/location-state.ts +60 -15
  874. package/src/browser/react/mount-context.ts +6 -1
  875. package/src/browser/react/nonce-context.ts +23 -0
  876. package/src/browser/react/shallow-equal.ts +27 -0
  877. package/src/browser/react/use-action.ts +29 -51
  878. package/src/browser/react/use-client-cache.ts +5 -3
  879. package/src/browser/react/use-handle.ts +30 -120
  880. package/src/browser/react/use-link-status.ts +6 -5
  881. package/src/browser/react/use-navigation.ts +44 -65
  882. package/src/browser/react/use-params.ts +78 -0
  883. package/src/browser/react/use-pathname.ts +47 -0
  884. package/src/browser/react/use-reverse.ts +99 -0
  885. package/src/browser/react/use-router.ts +83 -0
  886. package/src/browser/react/use-search-params.ts +56 -0
  887. package/src/browser/react/use-segments.ts +85 -99
  888. package/src/browser/response-adapter.ts +73 -0
  889. package/src/browser/rsc-router.tsx +246 -64
  890. package/src/browser/scroll-restoration.ts +132 -49
  891. package/src/browser/segment-reconciler.ts +243 -0
  892. package/src/browser/segment-structure-assert.ts +16 -0
  893. package/src/browser/server-action-bridge.ts +510 -603
  894. package/src/browser/shallow.ts +6 -1
  895. package/src/browser/types.ts +158 -48
  896. package/src/browser/validate-redirect-origin.ts +29 -0
  897. package/src/build/generate-manifest.ts +84 -23
  898. package/src/build/generate-route-types.ts +39 -828
  899. package/src/build/index.ts +4 -5
  900. package/src/build/route-trie.ts +85 -32
  901. package/src/build/route-types/ast-helpers.ts +25 -0
  902. package/src/build/route-types/ast-route-extraction.ts +98 -0
  903. package/src/build/route-types/codegen.ts +102 -0
  904. package/src/build/route-types/include-resolution.ts +418 -0
  905. package/src/build/route-types/param-extraction.ts +48 -0
  906. package/src/build/route-types/per-module-writer.ts +128 -0
  907. package/src/build/route-types/router-processing.ts +618 -0
  908. package/src/build/route-types/scan-filter.ts +85 -0
  909. package/src/build/runtime-discovery.ts +231 -0
  910. package/src/cache/background-task.ts +34 -0
  911. package/src/cache/cache-key-utils.ts +44 -0
  912. package/src/cache/cache-policy.ts +125 -0
  913. package/src/cache/cache-runtime.ts +342 -0
  914. package/src/cache/cache-scope.ts +167 -307
  915. package/src/cache/cf/cf-cache-store.ts +573 -21
  916. package/src/cache/cf/index.ts +13 -3
  917. package/src/cache/document-cache.ts +116 -77
  918. package/src/cache/handle-capture.ts +81 -0
  919. package/src/cache/handle-snapshot.ts +41 -0
  920. package/src/cache/index.ts +1 -15
  921. package/src/cache/memory-segment-store.ts +191 -13
  922. package/src/cache/profile-registry.ts +73 -0
  923. package/src/cache/read-through-swr.ts +134 -0
  924. package/src/cache/segment-codec.ts +256 -0
  925. package/src/cache/taint.ts +153 -0
  926. package/src/cache/types.ts +72 -122
  927. package/src/client.rsc.tsx +6 -1
  928. package/src/client.tsx +118 -302
  929. package/src/component-utils.ts +4 -4
  930. package/src/components/DefaultDocument.tsx +5 -1
  931. package/src/context-var.ts +156 -0
  932. package/src/debug.ts +19 -9
  933. package/src/errors.ts +77 -7
  934. package/src/handle.ts +55 -10
  935. package/src/handles/MetaTags.tsx +73 -20
  936. package/src/handles/breadcrumbs.ts +66 -0
  937. package/src/handles/index.ts +1 -0
  938. package/src/handles/meta.ts +30 -13
  939. package/src/host/cookie-handler.ts +21 -15
  940. package/src/host/errors.ts +8 -8
  941. package/src/host/index.ts +4 -7
  942. package/src/host/pattern-matcher.ts +27 -27
  943. package/src/host/router.ts +61 -39
  944. package/src/host/testing.ts +8 -8
  945. package/src/host/types.ts +15 -7
  946. package/src/host/utils.ts +1 -1
  947. package/src/href-client.ts +69 -46
  948. package/src/index.rsc.ts +138 -21
  949. package/src/index.ts +206 -51
  950. package/src/internal-debug.ts +11 -0
  951. package/src/loader-store.ts +202 -0
  952. package/src/loader.rsc.ts +25 -143
  953. package/src/loader.ts +27 -10
  954. package/src/network-error-thrower.tsx +3 -1
  955. package/src/outlet-context.ts +1 -1
  956. package/src/outlet-provider.tsx +45 -0
  957. package/src/prerender/param-hash.ts +4 -2
  958. package/src/prerender/store.ts +159 -13
  959. package/src/prerender.ts +397 -29
  960. package/src/response-utils.ts +28 -0
  961. package/src/reverse.ts +231 -121
  962. package/src/root-error-boundary.tsx +41 -29
  963. package/src/route-content-wrapper.tsx +7 -4
  964. package/src/route-definition/dsl-helpers.ts +1134 -0
  965. package/src/route-definition/helper-factories.ts +200 -0
  966. package/src/route-definition/helpers-types.ts +483 -0
  967. package/src/route-definition/index.ts +55 -0
  968. package/src/route-definition/redirect.ts +101 -0
  969. package/src/route-definition/resolve-handler-use.ts +155 -0
  970. package/src/route-definition.ts +1 -1431
  971. package/src/route-map-builder.ts +162 -123
  972. package/src/route-name.ts +53 -0
  973. package/src/route-types.ts +66 -9
  974. package/src/router/content-negotiation.ts +215 -0
  975. package/src/router/debug-manifest.ts +72 -0
  976. package/src/router/error-handling.ts +9 -9
  977. package/src/router/find-match.ts +160 -0
  978. package/src/router/handler-context.ts +418 -86
  979. package/src/router/intercept-resolution.ts +35 -20
  980. package/src/router/lazy-includes.ts +237 -0
  981. package/src/router/loader-resolution.ts +359 -128
  982. package/src/router/logging.ts +251 -0
  983. package/src/router/manifest.ts +98 -32
  984. package/src/router/match-api.ts +196 -261
  985. package/src/router/match-context.ts +4 -2
  986. package/src/router/match-handlers.ts +441 -0
  987. package/src/router/match-middleware/background-revalidation.ts +108 -93
  988. package/src/router/match-middleware/cache-lookup.ts +415 -86
  989. package/src/router/match-middleware/cache-store.ts +91 -29
  990. package/src/router/match-middleware/intercept-resolution.ts +48 -21
  991. package/src/router/match-middleware/segment-resolution.ts +73 -9
  992. package/src/router/match-pipelines.ts +10 -45
  993. package/src/router/match-result.ts +154 -35
  994. package/src/router/metrics.ts +240 -15
  995. package/src/router/middleware-cookies.ts +55 -0
  996. package/src/router/middleware-types.ts +209 -0
  997. package/src/router/middleware.ts +373 -371
  998. package/src/router/navigation-snapshot.ts +182 -0
  999. package/src/router/pattern-matching.ts +292 -52
  1000. package/src/router/prerender-match.ts +502 -0
  1001. package/src/router/preview-match.ts +98 -0
  1002. package/src/router/request-classification.ts +310 -0
  1003. package/src/router/revalidation.ts +152 -39
  1004. package/src/router/route-snapshot.ts +245 -0
  1005. package/src/router/router-context.ts +41 -21
  1006. package/src/router/router-interfaces.ts +484 -0
  1007. package/src/router/router-options.ts +618 -0
  1008. package/src/router/router-registry.ts +24 -0
  1009. package/src/router/segment-resolution/fresh.ts +756 -0
  1010. package/src/router/segment-resolution/helpers.ts +268 -0
  1011. package/src/router/segment-resolution/loader-cache.ts +199 -0
  1012. package/src/router/segment-resolution/revalidation.ts +1407 -0
  1013. package/src/router/segment-resolution/static-store.ts +67 -0
  1014. package/src/router/segment-resolution.ts +21 -1315
  1015. package/src/router/segment-wrappers.ts +291 -0
  1016. package/src/router/substitute-pattern-params.ts +56 -0
  1017. package/src/router/telemetry-otel.ts +299 -0
  1018. package/src/router/telemetry.ts +300 -0
  1019. package/src/router/timeout.ts +148 -0
  1020. package/src/router/trie-matching.ts +111 -39
  1021. package/src/router/types.ts +17 -9
  1022. package/src/router/url-params.ts +49 -0
  1023. package/src/router.ts +642 -2011
  1024. package/src/rsc/handler-context.ts +45 -0
  1025. package/src/rsc/handler.ts +864 -1114
  1026. package/src/rsc/helpers.ts +181 -19
  1027. package/src/rsc/index.ts +0 -20
  1028. package/src/rsc/loader-fetch.ts +229 -0
  1029. package/src/rsc/manifest-init.ts +90 -0
  1030. package/src/rsc/nonce.ts +14 -0
  1031. package/src/rsc/origin-guard.ts +141 -0
  1032. package/src/rsc/progressive-enhancement.ts +395 -0
  1033. package/src/rsc/response-error.ts +37 -0
  1034. package/src/rsc/response-route-handler.ts +360 -0
  1035. package/src/rsc/rsc-rendering.ts +256 -0
  1036. package/src/rsc/runtime-warnings.ts +42 -0
  1037. package/src/rsc/server-action.ts +360 -0
  1038. package/src/rsc/ssr-setup.ts +128 -0
  1039. package/src/rsc/types.ts +52 -11
  1040. package/src/search-params.ts +230 -0
  1041. package/src/segment-content-promise.ts +67 -0
  1042. package/src/segment-loader-promise.ts +122 -0
  1043. package/src/segment-system.tsx +187 -38
  1044. package/src/server/context.ts +333 -59
  1045. package/src/server/cookie-store.ts +190 -0
  1046. package/src/server/fetchable-loader-store.ts +37 -0
  1047. package/src/server/handle-store.ts +113 -15
  1048. package/src/server/loader-registry.ts +24 -64
  1049. package/src/server/request-context.ts +603 -109
  1050. package/src/server.ts +35 -155
  1051. package/src/ssr/index.tsx +107 -30
  1052. package/src/static-handler.ts +126 -0
  1053. package/src/theme/ThemeProvider.tsx +21 -15
  1054. package/src/theme/ThemeScript.tsx +5 -5
  1055. package/src/theme/constants.ts +5 -2
  1056. package/src/theme/index.ts +4 -14
  1057. package/src/theme/theme-context.ts +4 -30
  1058. package/src/theme/theme-script.ts +21 -18
  1059. package/src/types/boundaries.ts +158 -0
  1060. package/src/types/cache-types.ts +198 -0
  1061. package/src/types/error-types.ts +192 -0
  1062. package/src/types/global-namespace.ts +100 -0
  1063. package/src/types/handler-context.ts +764 -0
  1064. package/src/types/index.ts +88 -0
  1065. package/src/types/loader-types.ts +209 -0
  1066. package/src/types/request-scope.ts +126 -0
  1067. package/src/types/route-config.ts +170 -0
  1068. package/src/types/route-entry.ts +120 -0
  1069. package/src/types/segments.ts +167 -0
  1070. package/src/types.ts +1 -1757
  1071. package/src/urls/include-helper.ts +207 -0
  1072. package/src/urls/index.ts +53 -0
  1073. package/src/urls/path-helper-types.ts +372 -0
  1074. package/src/urls/path-helper.ts +364 -0
  1075. package/src/urls/pattern-types.ts +107 -0
  1076. package/src/urls/response-types.ts +108 -0
  1077. package/src/urls/type-extraction.ts +372 -0
  1078. package/src/urls/urls-function.ts +98 -0
  1079. package/src/urls.ts +1 -1282
  1080. package/src/use-loader.tsx +327 -103
  1081. package/src/vite/debug.ts +184 -0
  1082. package/src/vite/discovery/bundle-postprocess.ts +181 -0
  1083. package/src/vite/discovery/discover-routers.ts +376 -0
  1084. package/src/vite/discovery/gate-state.ts +171 -0
  1085. package/src/vite/discovery/prerender-collection.ts +486 -0
  1086. package/src/vite/discovery/route-types-writer.ts +258 -0
  1087. package/src/vite/discovery/self-gen-tracking.ts +73 -0
  1088. package/src/vite/discovery/state.ts +126 -0
  1089. package/src/vite/discovery/virtual-module-codegen.ts +203 -0
  1090. package/src/vite/index.ts +15 -2063
  1091. package/src/vite/plugin-types.ts +103 -0
  1092. package/src/vite/plugins/cjs-to-esm.ts +98 -0
  1093. package/src/vite/plugins/client-ref-dedup.ts +131 -0
  1094. package/src/vite/plugins/client-ref-hashing.ts +117 -0
  1095. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  1096. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1097. package/src/vite/plugins/cloudflare-protocol-stub.ts +214 -0
  1098. package/src/vite/{expose-action-id.ts → plugins/expose-action-id.ts} +107 -64
  1099. package/src/vite/plugins/expose-id-utils.ts +299 -0
  1100. package/src/vite/plugins/expose-ids/export-analysis.ts +296 -0
  1101. package/src/vite/plugins/expose-ids/handler-transform.ts +209 -0
  1102. package/src/vite/plugins/expose-ids/loader-transform.ts +74 -0
  1103. package/src/vite/plugins/expose-ids/router-transform.ts +127 -0
  1104. package/src/vite/plugins/expose-ids/types.ts +45 -0
  1105. package/src/vite/plugins/expose-internal-ids.ts +816 -0
  1106. package/src/vite/plugins/performance-tracks.ts +96 -0
  1107. package/src/vite/plugins/refresh-cmd.ts +127 -0
  1108. package/src/vite/plugins/use-cache-transform.ts +336 -0
  1109. package/src/vite/plugins/version-injector.ts +109 -0
  1110. package/src/vite/plugins/version-plugin.ts +323 -0
  1111. package/src/vite/plugins/virtual-entries.ts +123 -0
  1112. package/src/vite/plugins/virtual-stub-plugin.ts +29 -0
  1113. package/src/vite/rango.ts +497 -0
  1114. package/src/vite/router-discovery.ts +1482 -0
  1115. package/src/vite/utils/ast-handler-extract.ts +517 -0
  1116. package/src/vite/utils/banner.ts +36 -0
  1117. package/src/vite/utils/bundle-analysis.ts +137 -0
  1118. package/src/vite/utils/manifest-utils.ts +70 -0
  1119. package/src/vite/utils/package-resolution.ts +161 -0
  1120. package/src/vite/utils/prerender-utils.ts +222 -0
  1121. package/src/vite/utils/shared-utils.ts +170 -0
  1122. package/CLAUDE.md +0 -43
  1123. package/src/browser/lru-cache.ts +0 -69
  1124. package/src/browser/request-controller.ts +0 -164
  1125. package/src/cache/memory-store.ts +0 -253
  1126. package/src/router.gen.ts +0 -6
  1127. package/src/urls.gen.ts +0 -8
  1128. package/src/vite/expose-handle-id.ts +0 -209
  1129. package/src/vite/expose-loader-id.ts +0 -426
  1130. package/src/vite/expose-location-state-id.ts +0 -177
  1131. package/src/vite/expose-prerender-handler-id.ts +0 -429
  1132. /package/src/vite/{version.d.ts → plugins/version.d.ts} +0 -0
@@ -0,0 +1,200 @@
1
+ import type { RouteDefinition, DefaultEnv } from "../types.js";
2
+ import type { AllUseItems } from "../route-types.js";
3
+ import type { RouteHelpers } from "./helpers-types.js";
4
+ import {
5
+ layout,
6
+ cache,
7
+ middleware,
8
+ revalidate,
9
+ parallel,
10
+ intercept,
11
+ when,
12
+ errorBoundary,
13
+ notFoundBoundary,
14
+ loaderFn,
15
+ loadingFn,
16
+ transitionFn,
17
+ routeFn,
18
+ } from "./dsl-helpers.js";
19
+ import RootLayout from "../server/root-layout";
20
+ import { invariant } from "../errors";
21
+
22
+ /*
23
+ * Create revalidate helper
24
+ */
25
+ const createRevalidateHelper = <TEnv>(): RouteHelpers<
26
+ any,
27
+ TEnv
28
+ >["revalidate"] => {
29
+ return revalidate as RouteHelpers<any, TEnv>["revalidate"];
30
+ };
31
+
32
+ /**
33
+ * Create errorBoundary helper
34
+ */
35
+ const createErrorBoundaryHelper = <TEnv>(): RouteHelpers<
36
+ any,
37
+ TEnv
38
+ >["errorBoundary"] => {
39
+ return errorBoundary as RouteHelpers<any, TEnv>["errorBoundary"];
40
+ };
41
+
42
+ /**
43
+ * Create notFoundBoundary helper
44
+ */
45
+ const createNotFoundBoundaryHelper = <TEnv>(): RouteHelpers<
46
+ any,
47
+ TEnv
48
+ >["notFoundBoundary"] => {
49
+ return notFoundBoundary as RouteHelpers<any, TEnv>["notFoundBoundary"];
50
+ };
51
+
52
+ /**
53
+ * Create middleware helper
54
+ */
55
+ const createMiddlewareHelper = <TEnv>(): RouteHelpers<
56
+ any,
57
+ TEnv
58
+ >["middleware"] => {
59
+ return middleware as RouteHelpers<any, TEnv>["middleware"];
60
+ };
61
+
62
+ /**
63
+ * Create parallel helper
64
+ */
65
+ const createParallelHelper = <TEnv>(): RouteHelpers<any, TEnv>["parallel"] => {
66
+ return parallel as RouteHelpers<any, TEnv>["parallel"];
67
+ };
68
+
69
+ /**
70
+ * Create intercept helper
71
+ */
72
+ const createInterceptHelper = <
73
+ const T extends RouteDefinition,
74
+ TEnv,
75
+ >(): RouteHelpers<T, TEnv>["intercept"] => {
76
+ return intercept as RouteHelpers<T, TEnv>["intercept"];
77
+ };
78
+
79
+ /**
80
+ * Create loader helper
81
+ */
82
+ const createLoaderHelper = <TEnv>(): RouteHelpers<any, TEnv>["loader"] => {
83
+ return loaderFn as RouteHelpers<any, TEnv>["loader"];
84
+ };
85
+
86
+ /**
87
+ * Create loading helper
88
+ */
89
+ const createLoadingHelper = (): RouteHelpers<any, any>["loading"] => {
90
+ return loadingFn;
91
+ };
92
+
93
+ /**
94
+ * Create route helper
95
+ */
96
+ const createRouteHelper = <
97
+ const T extends RouteDefinition,
98
+ TEnv,
99
+ >(): RouteHelpers<T, TEnv>["route"] => {
100
+ return routeFn as unknown as RouteHelpers<T, TEnv>["route"];
101
+ };
102
+
103
+ /**
104
+ * Create layout helper
105
+ */
106
+ const createLayoutHelper = <TEnv>(): RouteHelpers<any, TEnv>["layout"] => {
107
+ return layout as RouteHelpers<any, TEnv>["layout"];
108
+ };
109
+
110
+ /**
111
+ * Create when helper for intercept conditions
112
+ */
113
+ const createWhenHelper = (): RouteHelpers<any, any>["when"] => {
114
+ return when;
115
+ };
116
+
117
+ /**
118
+ * Create cache helper for cache configuration
119
+ */
120
+ const createCacheHelper = (): RouteHelpers<any, any>["cache"] => {
121
+ return cache;
122
+ };
123
+
124
+ /**
125
+ * Create transition helper
126
+ */
127
+ const createTransitionHelper = (): RouteHelpers<any, any>["transition"] => {
128
+ return transitionFn as RouteHelpers<any, any>["transition"];
129
+ };
130
+
131
+ /**
132
+ * Branded type for route handlers that carries the route type info.
133
+ * This enables type-safe verification that imported handlers match route definitions.
134
+ */
135
+ export interface RouteHandlers<T extends RouteDefinition> {
136
+ (): Array<AllUseItems>;
137
+ /** Brand to carry route type info for type checking */
138
+ readonly __routes: T;
139
+ }
140
+
141
+ /**
142
+ * Type-safe handler definition helper
143
+ *
144
+ */
145
+ export function map<const T extends RouteDefinition, TEnv = DefaultEnv>(
146
+ builder: (helpers: RouteHelpers<T, TEnv>) => Array<AllUseItems>,
147
+ ): RouteHandlers<T> {
148
+ const handler = () => {
149
+ // Check if it's a builder function (array-based API)
150
+ invariant(
151
+ typeof builder === "function",
152
+ "map() expects a builder function as its argument",
153
+ );
154
+ // Create helpers
155
+ const helpers: RouteHelpers<T, TEnv> = {
156
+ route: createRouteHelper<T, TEnv>(),
157
+ layout: createLayoutHelper<TEnv>(),
158
+ parallel: createParallelHelper<TEnv>(),
159
+ intercept: createInterceptHelper<T, TEnv>(),
160
+ middleware: createMiddlewareHelper<TEnv>(),
161
+ revalidate: createRevalidateHelper<TEnv>(),
162
+ loader: createLoaderHelper<TEnv>(),
163
+ loading: createLoadingHelper(),
164
+ errorBoundary: createErrorBoundaryHelper<TEnv>(),
165
+ notFoundBoundary: createNotFoundBoundaryHelper<TEnv>(),
166
+ when: createWhenHelper(),
167
+ cache: createCacheHelper(),
168
+ transition: createTransitionHelper(),
169
+ };
170
+
171
+ return [layout(RootLayout, () => builder(helpers))].flat(3);
172
+ };
173
+ // Cast to RouteHandlers to carry the route type brand
174
+ return handler as RouteHandlers<T>;
175
+ }
176
+
177
+ /**
178
+ * Create RouteHelpers for inline route definitions
179
+ * Used internally by router.map() for inline handler syntax
180
+ */
181
+ export function createRouteHelpers<
182
+ T extends RouteDefinition,
183
+ TEnv,
184
+ >(): RouteHelpers<T, TEnv> {
185
+ return {
186
+ route: createRouteHelper<T, TEnv>(),
187
+ layout: createLayoutHelper<TEnv>(),
188
+ parallel: createParallelHelper<TEnv>(),
189
+ intercept: createInterceptHelper<T, TEnv>(),
190
+ middleware: createMiddlewareHelper<TEnv>(),
191
+ revalidate: createRevalidateHelper<TEnv>(),
192
+ loader: createLoaderHelper<TEnv>(),
193
+ loading: createLoadingHelper(),
194
+ errorBoundary: createErrorBoundaryHelper<TEnv>(),
195
+ notFoundBoundary: createNotFoundBoundaryHelper<TEnv>(),
196
+ when: createWhenHelper(),
197
+ cache: createCacheHelper(),
198
+ transition: createTransitionHelper(),
199
+ };
200
+ }
@@ -0,0 +1,483 @@
1
+ import type { ReactNode } from "react";
2
+ import type {
3
+ ExtractRouteParams,
4
+ Handler,
5
+ PartialCacheOptions,
6
+ ErrorBoundaryHandler,
7
+ LoaderDefinition,
8
+ MiddlewareFn,
9
+ NotFoundBoundaryHandler,
10
+ ResolvedRouteMap,
11
+ RouteDefinition,
12
+ ShouldRevalidateFn,
13
+ TransitionConfig,
14
+ } from "../types.js";
15
+ import type {
16
+ AllUseItems,
17
+ LayoutItem,
18
+ RouteItem,
19
+ ParallelItem,
20
+ InterceptItem,
21
+ MiddlewareItem,
22
+ RevalidateItem,
23
+ LoaderItem,
24
+ LoadingItem,
25
+ ErrorBoundaryItem,
26
+ NotFoundBoundaryItem,
27
+ LayoutUseItem,
28
+ RouteUseItem,
29
+ ParallelUseItem,
30
+ InterceptUseItem,
31
+ LoaderUseItem,
32
+ WhenItem,
33
+ CacheItem,
34
+ TransitionItem,
35
+ UseItems,
36
+ } from "../route-types.js";
37
+ import type { InterceptWhenFn } from "../server/context";
38
+
39
+ // Re-export route item types for backward compatibility
40
+ export type {
41
+ AllUseItems,
42
+ LayoutItem,
43
+ RouteItem,
44
+ ParallelItem,
45
+ InterceptItem,
46
+ MiddlewareItem,
47
+ RevalidateItem,
48
+ LoaderItem,
49
+ ErrorBoundaryItem,
50
+ NotFoundBoundaryItem,
51
+ LayoutUseItem,
52
+ RouteUseItem,
53
+ ParallelUseItem,
54
+ InterceptUseItem,
55
+ WhenItem,
56
+ CacheItem,
57
+ } from "../route-types.js";
58
+
59
+ // Re-export intercept selector types for use in handlers
60
+ export type {
61
+ InterceptSelectorContext,
62
+ InterceptSegmentsState,
63
+ InterceptWhenFn,
64
+ } from "../server/context";
65
+
66
+ /**
67
+ * Route helpers provided by map()
68
+ * These are the only typed helpers users interact with
69
+ */
70
+ export type RouteHelpers<T extends RouteDefinition, TEnv> = {
71
+ /**
72
+ * Define a route handler for a specific route pattern
73
+ * ```typescript
74
+ * route("products.detail", async (ctx) => {
75
+ * const product = await getProduct(ctx.params.slug);
76
+ * return <ProductPage product={product} />;
77
+ * })
78
+ *
79
+ * // With nested use() for middleware, loaders, etc.
80
+ * route("products.detail", ProductHandler, () => [
81
+ * loader(ProductLoader),
82
+ * loading(<ProductSkeleton />),
83
+ * ])
84
+ * ```
85
+ * @param name - Route name matching a key from route definitions
86
+ * @param handler - Async function that returns JSX for the route
87
+ * @param use - Optional callback returning middleware, loaders, loading, etc.
88
+ */
89
+ route: <K extends keyof ResolvedRouteMap<T> & string>(
90
+ name: K,
91
+ handler: Handler<ExtractRouteParams<T, K & string>, {}, TEnv>,
92
+ use?: () => UseItems<RouteUseItem>,
93
+ ) => RouteItem;
94
+ /**
95
+ * Define a layout that wraps child routes
96
+ * ```typescript
97
+ * layout(<RootLayout />, () => [
98
+ * route("home", HomePage),
99
+ * route("about", AboutPage),
100
+ * ])
101
+ *
102
+ * // With dynamic layout handler
103
+ * layout(async (ctx) => {
104
+ * const user = ctx.get("user");
105
+ * return <DashboardShell user={user} />;
106
+ * }, () => [
107
+ * middleware(authMiddleware),
108
+ * route("dashboard", DashboardPage),
109
+ * ])
110
+ * ```
111
+ * @param component - Static JSX or async handler for the layout
112
+ * @param use - Callback returning child routes, middleware, loaders, etc.
113
+ */
114
+ layout: (
115
+ component: ReactNode | Handler<any, any, TEnv>,
116
+ use?: () => UseItems<LayoutUseItem>,
117
+ ) => LayoutItem;
118
+ /**
119
+ * Define parallel routes that render simultaneously in named slots
120
+ * ```typescript
121
+ * parallel({
122
+ * "@sidebar": <Sidebar />,
123
+ * "@main": async (ctx) => <MainContent data={ctx.use(DataLoader)} />,
124
+ * })
125
+ *
126
+ * // With loaders and loading states (broadcast to every slot)
127
+ * parallel({
128
+ * "@analytics": AnalyticsPanel,
129
+ * "@metrics": MetricsPanel,
130
+ * }, () => [
131
+ * loader(DashboardLoader),
132
+ * loading(<DashboardSkeleton />),
133
+ * ])
134
+ *
135
+ * // Per-slot scoped use via slot descriptor — for single-assignment items
136
+ * // like loading() that should not broadcast to siblings.
137
+ * parallel({
138
+ * "@meta": MetaSlot,
139
+ * "@sidebar": {
140
+ * handler: SidebarSlot,
141
+ * use: () => [loading(<SidebarSkeleton />)],
142
+ * },
143
+ * })
144
+ * ```
145
+ * @param slots - Object with slot names (prefixed with @) mapped to handlers
146
+ * or `{ handler, use? }` slot descriptors.
147
+ * @param use - Optional callback for loaders, loading, revalidate, etc.
148
+ * Items here apply to every slot in the call (broadcast).
149
+ * For per-slot single-assignment items, use the slot descriptor's
150
+ * own `use` callback — slot-local items run after the broadcast,
151
+ * so they take precedence on `loading()` and other last-write-wins
152
+ * fields.
153
+ */
154
+ parallel: <
155
+ TSlots extends Record<
156
+ `@${string}`,
157
+ | Handler<any, any, TEnv>
158
+ | ReactNode
159
+ | {
160
+ handler: Handler<any, any, TEnv> | ReactNode;
161
+ use?: () => UseItems<ParallelUseItem>;
162
+ }
163
+ >,
164
+ >(
165
+ slots: TSlots,
166
+ use?: () => UseItems<ParallelUseItem>,
167
+ ) => ParallelItem;
168
+ /**
169
+ * Define an intercepting route for soft navigation
170
+ *
171
+ * When soft-navigating to the target route from within the current layout,
172
+ * the intercept handler renders in the named slot instead of the route's
173
+ * default handler. Direct navigation uses the route's handler.
174
+ *
175
+ * ```typescript
176
+ * // In a layout - intercept "card" route as modal
177
+ * layout(<KanbanLayout />, () => [
178
+ * intercept("@modal", "card", () => <CardModal />),
179
+ * ])
180
+ *
181
+ * // With loaders and revalidation
182
+ * intercept("@modal", "card", () => <CardModal />, () => [
183
+ * loader(CardModalLoader),
184
+ * revalidate(() => false),
185
+ * ])
186
+ * ```
187
+ * @param slotName - Named slot (prefixed with @) where intercept renders
188
+ * @param routeName - Route name to intercept
189
+ * @param handler - Component or handler for intercepted render
190
+ * @param use - Optional callback for loaders, middleware, revalidate, etc.
191
+ */
192
+ intercept: {
193
+ // Local: dot-prefixed, params inferred from local route definition
194
+ <K extends keyof ResolvedRouteMap<T> & string>(
195
+ slotName: `@${string}`,
196
+ routeName: `.${K}`,
197
+ handler: ReactNode | Handler<ExtractRouteParams<T, K>, {}, TEnv>,
198
+ use?: () => UseItems<InterceptUseItem>,
199
+ ): InterceptItem;
200
+ // Global: unprefixed, params inferred from global route map
201
+ <K extends keyof RSCRouter.GeneratedRouteMap & string>(
202
+ slotName: `@${string}`,
203
+ routeName: K,
204
+ handler: ReactNode | Handler<K, RSCRouter.GeneratedRouteMap, TEnv>,
205
+ use?: () => UseItems<InterceptUseItem>,
206
+ ): InterceptItem;
207
+ };
208
+ /**
209
+ * Attach middleware to the current route/layout, or wrap child segments
210
+ *
211
+ * **Sibling mode** — attaches middleware to the parent entry:
212
+ * ```typescript
213
+ * layout(<DashboardShell />, () => [
214
+ * middleware(authMiddleware),
215
+ * middleware([authMiddleware, loggingMiddleware]),
216
+ * path("/", DashboardPage),
217
+ * ])
218
+ * ```
219
+ *
220
+ * **Wrapping mode** — scopes middleware to the children only:
221
+ * ```typescript
222
+ * middleware(authMiddleware, () => [
223
+ * path("/dashboard", DashboardPage),
224
+ * path("/settings", SettingsPage),
225
+ * ])
226
+ *
227
+ * middleware([authMiddleware, loggingMiddleware], () => [
228
+ * path("/admin", AdminPage),
229
+ * ])
230
+ * ```
231
+ */
232
+ middleware: {
233
+ (fn: MiddlewareFn<TEnv>): MiddlewareItem;
234
+ (
235
+ fn: MiddlewareFn<TEnv>,
236
+ children: () => UseItems<LayoutUseItem>,
237
+ ): MiddlewareItem;
238
+ (fns: MiddlewareFn<TEnv>[]): MiddlewareItem;
239
+ (
240
+ fns: MiddlewareFn<TEnv>[],
241
+ children: () => UseItems<LayoutUseItem>,
242
+ ): MiddlewareItem;
243
+ };
244
+ /**
245
+ * Control when a segment should revalidate during navigation
246
+ * ```typescript
247
+ * // Revalidate when params change
248
+ * revalidate(({ currentParams, nextParams }) =>
249
+ * currentParams.slug !== nextParams.slug
250
+ * )
251
+ *
252
+ * // Revalidate after specific actions (actionId format: "path/to/file.ts#exportName")
253
+ * revalidate(({ actionId }) =>
254
+ * actionId?.includes("Cart") ?? false
255
+ * )
256
+ *
257
+ * // Soft decision (suggest but allow override)
258
+ * revalidate(({ defaultShouldRevalidate }) =>
259
+ * ({ defaultShouldRevalidate: true })
260
+ * )
261
+ * ```
262
+ * @param fn - Function returning either:
263
+ * - `boolean` (hard decision — short-circuits the chain),
264
+ * - `{ defaultShouldRevalidate: boolean }` (soft — updates the suggestion
265
+ * for downstream revalidators),
266
+ * - or nothing / `null` / `undefined` (defer — leaves the suggestion
267
+ * unchanged and continues to the next revalidator).
268
+ */
269
+ revalidate: (fn: ShouldRevalidateFn<any, TEnv>) => RevalidateItem;
270
+ /**
271
+ * Attach a data loader to the current route/layout
272
+ * ```typescript
273
+ * loader(ProductLoader)
274
+ *
275
+ * // With loader-specific revalidation (match by file or export name)
276
+ * loader(CartLoader, () => [
277
+ * revalidate(({ actionId }) => actionId?.includes("Cart") ?? false),
278
+ * ])
279
+ *
280
+ * // Consume in client components with useLoader()
281
+ * // (preferred — cache-safe, always fresh)
282
+ * function ProductDetails() {
283
+ * const { data } = useLoader(ProductLoader);
284
+ * return <div>{data.name}</div>;
285
+ * }
286
+ * ```
287
+ * @param loaderDef - Loader created with createLoader()
288
+ * @param use - Optional callback for loader-specific revalidation rules
289
+ */
290
+ loader: <TData>(
291
+ loaderDef: LoaderDefinition<TData>,
292
+ use?: () => UseItems<LoaderUseItem>,
293
+ ) => LoaderItem;
294
+ /**
295
+ * Attach a loading component to the current route/layout
296
+ * ```typescript
297
+ * // Show loading on all requests (including SSR)
298
+ * loading(<Skeleton />)
299
+ *
300
+ * // Skip loading on SSR, only show on client navigation
301
+ * loading(<Skeleton />, { ssr: false })
302
+ * ```
303
+ * @param component - The loading UI to show during navigation
304
+ * @param options - Configuration options
305
+ * @param options.ssr - If false, skip showing loading on document requests (SSR)
306
+ */
307
+ loading: (
308
+ component: ReactNode | (() => ReactNode),
309
+ options?: { ssr?: boolean },
310
+ ) => LoadingItem;
311
+ /**
312
+ * Attach an error boundary to catch errors in this segment and children
313
+ * ```typescript
314
+ * errorBoundary(<ErrorFallback />)
315
+ *
316
+ * // With dynamic error handler
317
+ * errorBoundary(({ error, reset }) => (
318
+ * <div>
319
+ * <h2>Something went wrong</h2>
320
+ * <p>{error.message}</p>
321
+ * <button onClick={reset}>Try again</button>
322
+ * </div>
323
+ * ))
324
+ * ```
325
+ * @param fallback - Static JSX or handler receiving error info and reset function
326
+ */
327
+ errorBoundary: (
328
+ fallback: ReactNode | ErrorBoundaryHandler,
329
+ ) => ErrorBoundaryItem;
330
+ /**
331
+ * Attach a not-found boundary to handle notFound() calls in this segment
332
+ * ```typescript
333
+ * notFoundBoundary(<ProductNotFound />)
334
+ *
335
+ * // With dynamic handler
336
+ * notFoundBoundary(({ notFound }) => (
337
+ * <div>
338
+ * <h2>{notFound.message}</h2>
339
+ * <a href="/products">Browse all products</a>
340
+ * </div>
341
+ * ))
342
+ * ```
343
+ * @param fallback - Static JSX or handler receiving not-found info
344
+ */
345
+ notFoundBoundary: (
346
+ fallback: ReactNode | NotFoundBoundaryHandler,
347
+ ) => NotFoundBoundaryItem;
348
+ /**
349
+ * Define a condition for when an intercept should activate
350
+ *
351
+ * Only valid inside intercept() use() callback. When multiple when() calls
352
+ * are present, ALL must return true for the intercept to activate.
353
+ * If no when() is defined, the intercept always activates on soft navigation.
354
+ *
355
+ * Context properties:
356
+ * - `from` - Source URL (where user is navigating from)
357
+ * - `to` - Destination URL (where user is navigating to)
358
+ * - `params` - Matched route params
359
+ * - `segments` - Client's current segments with `path` and `ids`
360
+ *
361
+ * ```typescript
362
+ * // Only intercept when coming from the board page
363
+ * intercept("@modal", "card", <CardModal />, () => [
364
+ * when(({ from }) => from.pathname.startsWith("/board")),
365
+ * loader(CardDetailLoader),
366
+ * ])
367
+ *
368
+ * // Use segments to check current route context
369
+ * intercept("@modal", "card", <CardModal />, () => [
370
+ * when(({ segments }) => segments.path[0] === "kanban"),
371
+ * ])
372
+ *
373
+ * // Multiple conditions (AND logic)
374
+ * intercept("@modal", "card", <CardModal />, () => [
375
+ * when(({ from }) => from.pathname.startsWith("/board")),
376
+ * when(({ segments }) => segments.ids.includes("kanban-layout")),
377
+ * ])
378
+ * ```
379
+ * @param fn - Selector function receiving navigation context, returns boolean
380
+ */
381
+ when: (fn: InterceptWhenFn) => WhenItem;
382
+ /**
383
+ * Define cache configuration for segments
384
+ *
385
+ * Creates a cache boundary that applies to all children unless overridden.
386
+ * Cache config inherits down the route tree like middleware wrapping.
387
+ *
388
+ * When ttl is not specified, uses store defaults (explicit store first,
389
+ * then app-level store). When store is not specified, uses app-level store.
390
+ *
391
+ * Note: Loaders are NOT cached by default. Use cache() inside loader()
392
+ * to explicitly opt-in to loader caching.
393
+ *
394
+ * ```typescript
395
+ * // Using app-level defaults (ttl inherited from store.defaults)
396
+ * cache(() => [
397
+ * layout(<BlogLayout />), // cached with default TTL
398
+ * route("post/:slug"), // cached with default TTL
399
+ * ])
400
+ *
401
+ * // Cache all segments with explicit 60s TTL
402
+ * cache({ ttl: 60 }, () => [
403
+ * layout(<BlogLayout />), // cached
404
+ * route("post/:slug"), // cached
405
+ * ])
406
+ *
407
+ * // With stale-while-revalidate
408
+ * cache({ ttl: 60, swr: 300 }, () => [
409
+ * route("product/:id"),
410
+ * ])
411
+ *
412
+ * // Override for specific section
413
+ * cache({ ttl: 60 }, () => [
414
+ * layout(<RootLayout />),
415
+ * cache({ ttl: 300 }, () => [
416
+ * route("static-page"), // longer TTL
417
+ * ]),
418
+ * cache(false, () => [
419
+ * route("admin"), // not cached
420
+ * ]),
421
+ * ])
422
+ *
423
+ * // Use different store for specific routes
424
+ * cache({ store: kvStore, ttl: 3600 }, () => [
425
+ * route("archive/:year"), // uses KV store
426
+ * ])
427
+ *
428
+ * // Opt-in loader caching
429
+ * route("product/:id", ProductHandler, () => [
430
+ * loader(ProductLoader), // NOT cached (default)
431
+ * loader(StaticMetadata, () => [
432
+ * cache({ ttl: 3600 }), // cached for 1 hour
433
+ * ]),
434
+ * ])
435
+ * ```
436
+ * @param optionsOrChildren - Cache options, false to disable, or children callback
437
+ * @param children - Optional callback returning child segments (when first arg is options)
438
+ */
439
+ cache: {
440
+ (): CacheItem;
441
+ (children: () => UseItems<AllUseItems>): CacheItem;
442
+ (profileName: string): CacheItem;
443
+ (profileName: string, use: () => UseItems<AllUseItems>): CacheItem;
444
+ (
445
+ options: PartialCacheOptions | false,
446
+ use?: () => UseItems<AllUseItems>,
447
+ ): CacheItem;
448
+ };
449
+ /**
450
+ * Attach a ViewTransition boundary to the current segment or a group of routes
451
+ *
452
+ * Wraps segment content with React's `<ViewTransition>` component.
453
+ * Only takes effect when React experimental is used (no-op on stable React).
454
+ *
455
+ * ```typescript
456
+ * // Attach to a single route
457
+ * path("/about", AboutPage, { name: "about" }, () => [
458
+ * transition({ enter: "fade-in", exit: "fade-out" }),
459
+ * ])
460
+ *
461
+ * // Wrap a group of routes
462
+ * transition({ enter: "fade-in", exit: "fade-out" }, () => [
463
+ * path("/", HomePage),
464
+ * path("/about", AboutPage),
465
+ * ])
466
+ *
467
+ * // Direction-aware transitions
468
+ * transition({
469
+ * enter: { "navigation": "slide-right", "navigation-back": "slide-left" },
470
+ * exit: { "navigation": "slide-left", "navigation-back": "slide-right" },
471
+ * })
472
+ * ```
473
+ * @param config - ViewTransition configuration (enter, exit, update, share, default, name)
474
+ * @param children - Optional callback returning child routes to wrap
475
+ */
476
+ transition: {
477
+ (config: TransitionConfig): TransitionItem;
478
+ (
479
+ config: TransitionConfig,
480
+ children: () => UseItems<AllUseItems>,
481
+ ): TransitionItem;
482
+ };
483
+ };