@rangojs/router 0.0.0-experimental.9 → 0.0.0-experimental.963406dd

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 (1109) hide show
  1. package/AGENTS.md +9 -0
  2. package/README.md +942 -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 +1619 -155
  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 +4916 -2234
  798. package/dist/vite/index.js.bak +5448 -0
  799. package/dist/vite/index.js.map +1 -0
  800. package/dist/vite/index.named-routes.gen.ts +103 -0
  801. package/dist/vite/package-resolution.d.ts +43 -0
  802. package/dist/vite/package-resolution.d.ts.map +1 -0
  803. package/dist/vite/package-resolution.js +112 -0
  804. package/dist/vite/package-resolution.js.map +1 -0
  805. package/dist/vite/virtual-entries.d.ts +25 -0
  806. package/dist/vite/virtual-entries.d.ts.map +1 -0
  807. package/{src/vite/virtual-entries.ts → dist/vite/virtual-entries.js} +12 -16
  808. package/dist/vite/virtual-entries.js.map +1 -0
  809. package/package.json +70 -63
  810. package/skills/breadcrumbs/SKILL.md +250 -0
  811. package/skills/cache-guide/SKILL.md +294 -0
  812. package/skills/caching/SKILL.md +93 -23
  813. package/skills/composability/SKILL.md +172 -0
  814. package/skills/debug-manifest/SKILL.md +12 -8
  815. package/skills/document-cache/SKILL.md +18 -16
  816. package/skills/fonts/SKILL.md +6 -4
  817. package/skills/hooks/SKILL.md +333 -71
  818. package/skills/host-router/SKILL.md +218 -0
  819. package/skills/intercept/SKILL.md +131 -8
  820. package/skills/layout/SKILL.md +100 -3
  821. package/skills/links/SKILL.md +77 -16
  822. package/skills/loader/SKILL.md +404 -44
  823. package/skills/middleware/SKILL.md +173 -34
  824. package/skills/mime-routes/SKILL.md +15 -11
  825. package/skills/parallel/SKILL.md +204 -1
  826. package/skills/prerender/SKILL.md +467 -65
  827. package/skills/rango/SKILL.md +85 -21
  828. package/skills/response-routes/SKILL.md +144 -91
  829. package/skills/route/SKILL.md +257 -14
  830. package/skills/router-setup/SKILL.md +210 -32
  831. package/skills/theme/SKILL.md +9 -8
  832. package/skills/typesafety/SKILL.md +326 -87
  833. package/skills/use-cache/SKILL.md +324 -0
  834. package/src/__internal.ts +102 -4
  835. package/src/bin/rango.ts +312 -15
  836. package/src/browser/action-coordinator.ts +97 -0
  837. package/src/browser/action-response-classifier.ts +99 -0
  838. package/src/browser/app-version.ts +14 -0
  839. package/src/browser/event-controller.ts +92 -64
  840. package/src/browser/history-state.ts +80 -0
  841. package/src/browser/intercept-utils.ts +52 -0
  842. package/src/browser/link-interceptor.ts +24 -4
  843. package/src/browser/logging.ts +55 -0
  844. package/src/browser/merge-segment-loaders.ts +20 -12
  845. package/src/browser/navigation-bridge.ts +296 -558
  846. package/src/browser/navigation-client.ts +178 -71
  847. package/src/browser/navigation-store.ts +73 -55
  848. package/src/browser/navigation-transaction.ts +297 -0
  849. package/src/browser/network-error-handler.ts +61 -0
  850. package/src/browser/partial-update.ts +328 -313
  851. package/src/browser/prefetch/cache.ts +206 -0
  852. package/src/browser/prefetch/fetch.ts +150 -0
  853. package/src/browser/prefetch/observer.ts +65 -0
  854. package/src/browser/prefetch/policy.ts +48 -0
  855. package/src/browser/prefetch/queue.ts +160 -0
  856. package/src/browser/prefetch/resource-ready.ts +77 -0
  857. package/src/browser/rango-state.ts +112 -0
  858. package/src/browser/react/Link.tsx +227 -71
  859. package/src/browser/react/NavigationProvider.tsx +87 -11
  860. package/src/browser/react/context.ts +11 -0
  861. package/src/browser/react/filter-segment-order.ts +11 -0
  862. package/src/browser/react/index.ts +12 -12
  863. package/src/browser/react/location-state-shared.ts +95 -53
  864. package/src/browser/react/location-state.ts +60 -15
  865. package/src/browser/react/mount-context.ts +6 -1
  866. package/src/browser/react/nonce-context.ts +23 -0
  867. package/src/browser/react/shallow-equal.ts +27 -0
  868. package/src/browser/react/use-action.ts +29 -51
  869. package/src/browser/react/use-client-cache.ts +5 -3
  870. package/src/browser/react/use-handle.ts +30 -120
  871. package/src/browser/react/use-link-status.ts +6 -5
  872. package/src/browser/react/use-navigation.ts +22 -63
  873. package/src/browser/react/use-params.ts +65 -0
  874. package/src/browser/react/use-pathname.ts +47 -0
  875. package/src/browser/react/use-router.ts +76 -0
  876. package/src/browser/react/use-search-params.ts +56 -0
  877. package/src/browser/react/use-segments.ts +80 -97
  878. package/src/browser/response-adapter.ts +73 -0
  879. package/src/browser/rsc-router.tsx +214 -60
  880. package/src/browser/scroll-restoration.ts +127 -52
  881. package/src/browser/segment-reconciler.ts +221 -0
  882. package/src/browser/segment-structure-assert.ts +16 -0
  883. package/src/browser/server-action-bridge.ts +510 -603
  884. package/src/browser/shallow.ts +6 -1
  885. package/src/browser/types.ts +139 -48
  886. package/src/browser/validate-redirect-origin.ts +29 -0
  887. package/src/build/generate-manifest.ts +84 -23
  888. package/src/build/generate-route-types.ts +39 -752
  889. package/src/build/index.ts +6 -5
  890. package/src/build/route-trie.ts +39 -13
  891. package/src/build/route-types/ast-helpers.ts +25 -0
  892. package/src/build/route-types/ast-route-extraction.ts +98 -0
  893. package/src/build/route-types/codegen.ts +102 -0
  894. package/src/build/route-types/include-resolution.ts +418 -0
  895. package/src/build/route-types/param-extraction.ts +48 -0
  896. package/src/build/route-types/per-module-writer.ts +128 -0
  897. package/src/build/route-types/router-processing.ts +618 -0
  898. package/src/build/route-types/scan-filter.ts +85 -0
  899. package/src/build/runtime-discovery.ts +231 -0
  900. package/src/cache/background-task.ts +34 -0
  901. package/src/cache/cache-key-utils.ts +44 -0
  902. package/src/cache/cache-policy.ts +125 -0
  903. package/src/cache/cache-runtime.ts +342 -0
  904. package/src/cache/cache-scope.ts +167 -307
  905. package/src/cache/cf/cf-cache-store.ts +571 -17
  906. package/src/cache/cf/index.ts +13 -3
  907. package/src/cache/document-cache.ts +116 -77
  908. package/src/cache/handle-capture.ts +81 -0
  909. package/src/cache/handle-snapshot.ts +41 -0
  910. package/src/cache/index.ts +1 -15
  911. package/src/cache/memory-segment-store.ts +191 -13
  912. package/src/cache/profile-registry.ts +73 -0
  913. package/src/cache/read-through-swr.ts +134 -0
  914. package/src/cache/segment-codec.ts +256 -0
  915. package/src/cache/taint.ts +153 -0
  916. package/src/cache/types.ts +72 -122
  917. package/src/client.rsc.tsx +3 -1
  918. package/src/client.tsx +83 -179
  919. package/src/component-utils.ts +4 -4
  920. package/src/components/DefaultDocument.tsx +5 -1
  921. package/src/context-var.ts +156 -0
  922. package/src/debug.ts +19 -9
  923. package/src/errors.ts +77 -7
  924. package/src/handle.ts +55 -10
  925. package/src/handles/MetaTags.tsx +73 -20
  926. package/src/handles/breadcrumbs.ts +66 -0
  927. package/src/handles/index.ts +1 -0
  928. package/src/handles/meta.ts +30 -13
  929. package/src/host/cookie-handler.ts +21 -15
  930. package/src/host/errors.ts +8 -8
  931. package/src/host/index.ts +4 -7
  932. package/src/host/pattern-matcher.ts +27 -27
  933. package/src/host/router.ts +61 -39
  934. package/src/host/testing.ts +8 -8
  935. package/src/host/types.ts +15 -7
  936. package/src/host/utils.ts +1 -1
  937. package/src/href-client.ts +65 -45
  938. package/src/index.rsc.ts +135 -21
  939. package/src/index.ts +175 -51
  940. package/src/internal-debug.ts +11 -0
  941. package/src/loader.rsc.ts +25 -143
  942. package/src/loader.ts +27 -10
  943. package/src/network-error-thrower.tsx +3 -1
  944. package/src/outlet-provider.tsx +45 -0
  945. package/src/prerender/param-hash.ts +4 -2
  946. package/src/prerender/store.ts +159 -13
  947. package/src/prerender.ts +397 -29
  948. package/src/reverse.ts +205 -121
  949. package/src/root-error-boundary.tsx +41 -29
  950. package/src/route-content-wrapper.tsx +7 -4
  951. package/src/route-definition/dsl-helpers.ts +982 -0
  952. package/src/route-definition/helper-factories.ts +200 -0
  953. package/src/route-definition/helpers-types.ts +434 -0
  954. package/src/route-definition/index.ts +55 -0
  955. package/src/route-definition/redirect.ts +101 -0
  956. package/src/route-definition/resolve-handler-use.ts +149 -0
  957. package/src/route-definition.ts +1 -1431
  958. package/src/route-map-builder.ts +162 -123
  959. package/src/route-name.ts +53 -0
  960. package/src/route-types.ts +59 -9
  961. package/src/router/content-negotiation.ts +215 -0
  962. package/src/router/debug-manifest.ts +72 -0
  963. package/src/router/error-handling.ts +9 -9
  964. package/src/router/find-match.ts +160 -0
  965. package/src/router/handler-context.ts +435 -86
  966. package/src/router/intercept-resolution.ts +35 -20
  967. package/src/router/lazy-includes.ts +237 -0
  968. package/src/router/loader-resolution.ts +356 -128
  969. package/src/router/logging.ts +251 -0
  970. package/src/router/manifest.ts +89 -32
  971. package/src/router/match-api.ts +192 -258
  972. package/src/router/match-context.ts +4 -2
  973. package/src/router/match-handlers.ts +440 -0
  974. package/src/router/match-middleware/background-revalidation.ts +108 -93
  975. package/src/router/match-middleware/cache-lookup.ts +414 -86
  976. package/src/router/match-middleware/cache-store.ts +91 -29
  977. package/src/router/match-middleware/intercept-resolution.ts +48 -21
  978. package/src/router/match-middleware/segment-resolution.ts +73 -9
  979. package/src/router/match-pipelines.ts +10 -45
  980. package/src/router/match-result.ts +55 -33
  981. package/src/router/metrics.ts +240 -15
  982. package/src/router/middleware-cookies.ts +55 -0
  983. package/src/router/middleware-types.ts +220 -0
  984. package/src/router/middleware.ts +324 -369
  985. package/src/router/navigation-snapshot.ts +182 -0
  986. package/src/router/pattern-matching.ts +197 -41
  987. package/src/router/prerender-match.ts +502 -0
  988. package/src/router/preview-match.ts +98 -0
  989. package/src/router/request-classification.ts +310 -0
  990. package/src/router/revalidation.ts +137 -38
  991. package/src/router/route-snapshot.ts +245 -0
  992. package/src/router/router-context.ts +41 -21
  993. package/src/router/router-interfaces.ts +484 -0
  994. package/src/router/router-options.ts +618 -0
  995. package/src/router/router-registry.ts +24 -0
  996. package/src/router/segment-resolution/fresh.ts +743 -0
  997. package/src/router/segment-resolution/helpers.ts +268 -0
  998. package/src/router/segment-resolution/loader-cache.ts +199 -0
  999. package/src/router/segment-resolution/revalidation.ts +1373 -0
  1000. package/src/router/segment-resolution/static-store.ts +67 -0
  1001. package/src/router/segment-resolution.ts +21 -1315
  1002. package/src/router/segment-wrappers.ts +291 -0
  1003. package/src/router/telemetry-otel.ts +299 -0
  1004. package/src/router/telemetry.ts +300 -0
  1005. package/src/router/timeout.ts +148 -0
  1006. package/src/router/trie-matching.ts +96 -29
  1007. package/src/router/types.ts +17 -9
  1008. package/src/router.ts +646 -1986
  1009. package/src/rsc/handler-context.ts +45 -0
  1010. package/src/rsc/handler.ts +853 -1111
  1011. package/src/rsc/helpers.ts +140 -6
  1012. package/src/rsc/index.ts +0 -20
  1013. package/src/rsc/loader-fetch.ts +229 -0
  1014. package/src/rsc/manifest-init.ts +90 -0
  1015. package/src/rsc/nonce.ts +14 -0
  1016. package/src/rsc/origin-guard.ts +141 -0
  1017. package/src/rsc/progressive-enhancement.ts +391 -0
  1018. package/src/rsc/response-error.ts +37 -0
  1019. package/src/rsc/response-route-handler.ts +347 -0
  1020. package/src/rsc/rsc-rendering.ts +246 -0
  1021. package/src/rsc/runtime-warnings.ts +42 -0
  1022. package/src/rsc/server-action.ts +356 -0
  1023. package/src/rsc/ssr-setup.ts +128 -0
  1024. package/src/rsc/types.ts +46 -11
  1025. package/src/search-params.ts +230 -0
  1026. package/src/segment-system.tsx +165 -17
  1027. package/src/server/context.ts +307 -56
  1028. package/src/server/cookie-store.ts +190 -0
  1029. package/src/server/fetchable-loader-store.ts +37 -0
  1030. package/src/server/handle-store.ts +113 -15
  1031. package/src/server/loader-registry.ts +24 -64
  1032. package/src/server/request-context.ts +607 -81
  1033. package/src/server.ts +35 -155
  1034. package/src/ssr/index.tsx +103 -30
  1035. package/src/static-handler.ts +126 -0
  1036. package/src/theme/ThemeProvider.tsx +21 -15
  1037. package/src/theme/ThemeScript.tsx +5 -5
  1038. package/src/theme/constants.ts +5 -2
  1039. package/src/theme/index.ts +4 -14
  1040. package/src/theme/theme-context.ts +4 -30
  1041. package/src/theme/theme-script.ts +21 -18
  1042. package/src/types/boundaries.ts +158 -0
  1043. package/src/types/cache-types.ts +198 -0
  1044. package/src/types/error-types.ts +192 -0
  1045. package/src/types/global-namespace.ts +100 -0
  1046. package/src/types/handler-context.ts +791 -0
  1047. package/src/types/index.ts +88 -0
  1048. package/src/types/loader-types.ts +210 -0
  1049. package/src/types/route-config.ts +170 -0
  1050. package/src/types/route-entry.ts +109 -0
  1051. package/src/types/segments.ts +150 -0
  1052. package/src/types.ts +1 -1757
  1053. package/src/urls/include-helper.ts +197 -0
  1054. package/src/urls/index.ts +53 -0
  1055. package/src/urls/path-helper-types.ts +346 -0
  1056. package/src/urls/path-helper.ts +364 -0
  1057. package/src/urls/pattern-types.ts +107 -0
  1058. package/src/urls/response-types.ts +116 -0
  1059. package/src/urls/type-extraction.ts +372 -0
  1060. package/src/urls/urls-function.ts +98 -0
  1061. package/src/urls.ts +1 -1282
  1062. package/src/use-loader.tsx +158 -81
  1063. package/src/vite/discovery/bundle-postprocess.ts +181 -0
  1064. package/src/vite/discovery/discover-routers.ts +348 -0
  1065. package/src/vite/discovery/prerender-collection.ts +439 -0
  1066. package/src/vite/discovery/route-types-writer.ts +258 -0
  1067. package/src/vite/discovery/self-gen-tracking.ts +47 -0
  1068. package/src/vite/discovery/state.ts +117 -0
  1069. package/src/vite/discovery/virtual-module-codegen.ts +203 -0
  1070. package/src/vite/index.ts +15 -1963
  1071. package/src/vite/plugin-types.ts +103 -0
  1072. package/src/vite/plugins/cjs-to-esm.ts +93 -0
  1073. package/src/vite/plugins/client-ref-dedup.ts +115 -0
  1074. package/src/vite/plugins/client-ref-hashing.ts +105 -0
  1075. package/src/vite/{expose-action-id.ts → plugins/expose-action-id.ts} +72 -53
  1076. package/src/vite/plugins/expose-id-utils.ts +299 -0
  1077. package/src/vite/plugins/expose-ids/export-analysis.ts +296 -0
  1078. package/src/vite/plugins/expose-ids/handler-transform.ts +209 -0
  1079. package/src/vite/plugins/expose-ids/loader-transform.ts +74 -0
  1080. package/src/vite/plugins/expose-ids/router-transform.ts +110 -0
  1081. package/src/vite/plugins/expose-ids/types.ts +45 -0
  1082. package/src/vite/plugins/expose-internal-ids.ts +781 -0
  1083. package/src/vite/plugins/performance-tracks.ts +88 -0
  1084. package/src/vite/plugins/refresh-cmd.ts +127 -0
  1085. package/src/vite/plugins/use-cache-transform.ts +323 -0
  1086. package/src/vite/plugins/version-injector.ts +83 -0
  1087. package/src/vite/plugins/version-plugin.ts +266 -0
  1088. package/src/vite/plugins/virtual-entries.ts +123 -0
  1089. package/src/vite/plugins/virtual-stub-plugin.ts +29 -0
  1090. package/src/vite/rango.ts +462 -0
  1091. package/src/vite/router-discovery.ts +918 -0
  1092. package/src/vite/utils/ast-handler-extract.ts +517 -0
  1093. package/src/vite/utils/banner.ts +36 -0
  1094. package/src/vite/utils/bundle-analysis.ts +137 -0
  1095. package/src/vite/utils/manifest-utils.ts +70 -0
  1096. package/src/vite/{package-resolution.ts → utils/package-resolution.ts} +25 -29
  1097. package/src/vite/utils/prerender-utils.ts +207 -0
  1098. package/src/vite/utils/shared-utils.ts +170 -0
  1099. package/CLAUDE.md +0 -43
  1100. package/src/browser/lru-cache.ts +0 -69
  1101. package/src/browser/request-controller.ts +0 -164
  1102. package/src/cache/memory-store.ts +0 -253
  1103. package/src/router.gen.ts +0 -6
  1104. package/src/urls.gen.ts +0 -8
  1105. package/src/vite/expose-handle-id.ts +0 -209
  1106. package/src/vite/expose-loader-id.ts +0 -426
  1107. package/src/vite/expose-location-state-id.ts +0 -177
  1108. package/src/vite/expose-prerender-handler-id.ts +0 -429
  1109. /package/src/vite/{version.d.ts → plugins/version.d.ts} +0 -0
@@ -1,115 +1,12 @@
1
1
  /**
2
- * Client-safe route map builder
2
+ * Route manifest storage and retrieval.
3
3
  *
4
- * Provides a fluent API for building route maps with prefixes.
5
- * Can be imported in client code without pulling in server dependencies.
4
+ * The route manifest maps route names to URL patterns. It is populated
5
+ * by the virtual module (which imports from .named-routes.gen.ts files)
6
+ * and consumed by reverse() and href() at runtime.
6
7
  *
7
- * @example
8
- * ```typescript
9
- * import { createRouteMap, registerRouteMap } from "rsc-router/browser";
10
- *
11
- * const routeMap = createRouteMap()
12
- * .add(homeRoutes)
13
- * .add(blogRoutes, "blog")
14
- * .add(shopRoutes, "shop");
15
- *
16
- * registerRouteMap(routeMap.routes);
17
- *
18
- * declare global {
19
- * namespace RSCRouter {
20
- * interface RegisteredRoutes extends typeof routeMap.routes {}
21
- * }
22
- * }
23
- * ```
24
- */
25
-
26
- import type { PrefixRoutePatterns } from "./reverse.js";
27
-
28
- /**
29
- * Route map builder interface
30
- *
31
- * Accumulates route types through the builder chain for type-safe reverse.
32
- */
33
- export interface RouteMapBuilder<TRoutes extends Record<string, string> = {}> {
34
- /**
35
- * Add routes without prefix
36
- */
37
- add<T extends Record<string, string>>(routes: T): RouteMapBuilder<TRoutes & T>;
38
-
39
- /**
40
- * Add routes with prefix (only URL patterns are prefixed, keys stay unchanged)
41
- * @param routes - Route definitions to add
42
- * @param prefix - URL prefix WITHOUT leading slash (e.g., "blog" not "/blog")
43
- */
44
- add<T extends Record<string, string>, P extends string>(
45
- routes: T,
46
- prefix: P
47
- ): RouteMapBuilder<TRoutes & PrefixRoutePatterns<T, `/${P}`>>;
48
-
49
- /**
50
- * The accumulated route map (for typeof extraction in module augmentation)
51
- */
52
- readonly routes: TRoutes;
53
- }
54
-
55
- /**
56
- * Add routes to a map with optional prefix
57
- * Keys stay unchanged for composability - only URL patterns get prefixed.
58
- *
59
- * @param routeMap - The map to add routes to
60
- * @param routes - Routes to add
61
- * @param prefix - Optional prefix for URL paths WITHOUT leading slash (keys stay unchanged)
8
+ * See docs/manifests.md for the full data flow.
62
9
  */
63
- function addRoutes(
64
- routeMap: Record<string, string>,
65
- routes: Record<string, string>,
66
- prefix: string = ""
67
- ): void {
68
- // Normalize prefix: remove leading slash if accidentally provided
69
- const normalizedPrefix = prefix.startsWith("/") ? prefix.slice(1) : prefix;
70
-
71
- for (const [key, pattern] of Object.entries(routes)) {
72
- const prefixedPattern =
73
- normalizedPrefix && pattern !== "/"
74
- ? `/${normalizedPrefix}${pattern}`
75
- : normalizedPrefix && pattern === "/"
76
- ? `/${normalizedPrefix}`
77
- : pattern;
78
- // Use original key - enables reusable route modules
79
- routeMap[key] = prefixedPattern;
80
- }
81
- }
82
-
83
- /**
84
- * Create a new route map builder
85
- *
86
- * @returns A builder for accumulating routes with type-safe prefixes
87
- *
88
- * @example
89
- * ```typescript
90
- * const routeMap = createRouteMap()
91
- * .add(homeRoutes)
92
- * .add(blogRoutes, "blog");
93
- *
94
- * // Types are accumulated through the chain
95
- * type AppRoutes = typeof routeMap.routes;
96
- * ```
97
- */
98
- export function createRouteMap(): RouteMapBuilder<{}> {
99
- const routeMap: Record<string, string> = {};
100
-
101
- const builder: RouteMapBuilder<any> = {
102
- add(routes: Record<string, string>, prefix?: string) {
103
- addRoutes(routeMap, routes, prefix);
104
- return builder;
105
- },
106
- get routes() {
107
- return routeMap;
108
- },
109
- };
110
-
111
- return builder;
112
- }
113
10
 
114
11
  // Singleton route map instance - populated incrementally as routes are encountered
115
12
  let globalRouteMap: Record<string, string> = {};
@@ -126,21 +23,9 @@ let cachedPrecomputedEntries: Array<{
126
23
  }> | null = null;
127
24
 
128
25
  /**
129
- * Register the route map globally for reverse to use at runtime
130
- *
131
- * Call this after building your route map to make it available to reverse.
26
+ * Register routes into the global route map.
132
27
  * Routes are merged with any existing registered routes.
133
- *
134
- * @param map - The route map to register
135
- *
136
- * @example
137
- * ```typescript
138
- * const routeMap = createRouteMap()
139
- * .add(homeRoutes)
140
- * .add(blogRoutes, "blog");
141
- *
142
- * registerRouteMap(routeMap.routes);
143
- * ```
28
+ * Called by createRouter() during module evaluation.
144
29
  */
145
30
  export function registerRouteMap(map: Record<string, string>): void {
146
31
  // Always merge with existing map (don't replace)
@@ -155,6 +40,7 @@ export function registerRouteMap(map: Record<string, string>): void {
155
40
  * otherwise returns the runtime-accumulated route map.
156
41
  *
157
42
  * @returns The registered route map
43
+ * @internal
158
44
  */
159
45
  export function getGlobalRouteMap(): Record<string, string> {
160
46
  // Cached manifest is complete (includes lazy routes), so prefer it
@@ -203,7 +89,10 @@ export function clearCachedManifest(): void {
203
89
  * @param entries - Array of { staticPrefix, routes } from build-time prefix tree leaves
204
90
  */
205
91
  export function setPrecomputedEntries(
206
- entries: Array<{ staticPrefix: string; routes: Record<string, string> }> | null,
92
+ entries: Array<{
93
+ staticPrefix: string;
94
+ routes: Record<string, string>;
95
+ }> | null,
207
96
  ): void {
208
97
  cachedPrecomputedEntries = entries;
209
98
  }
@@ -227,6 +116,107 @@ export function getRouteTrie(): typeof cachedRouteTrie {
227
116
  return cachedRouteTrie;
228
117
  }
229
118
 
119
+ // Per-router isolated data: each router gets its own manifest, trie, and
120
+ // precomputed entries so multi-router setups (e.g. site + admin via
121
+ // createHostRouter()) don't see each other's routes.
122
+ const perRouterManifestMap: Map<string, Record<string, string>> = new Map();
123
+ const perRouterTrieMap: Map<string, import("./build/route-trie.js").TrieNode> =
124
+ new Map();
125
+ const perRouterPrecomputedEntriesMap: Map<
126
+ string,
127
+ Array<{ staticPrefix: string; routes: Record<string, string> }>
128
+ > = new Map();
129
+
130
+ /**
131
+ * Clear all cached route data (global and per-router).
132
+ * Called during HMR when route definitions change so the handler rebuilds
133
+ * the trie from the updated router.urlpatterns on the next request.
134
+ *
135
+ * The virtual module calls this before repopulating with fresh data,
136
+ * preventing stale entries from removed routes from accumulating.
137
+ */
138
+ export function clearAllRouterData(): void {
139
+ globalRouteMap = {};
140
+ cachedManifest = null;
141
+ cachedPrecomputedEntries = null;
142
+ cachedRouteTrie = null;
143
+ rootScopeRoutes.clear();
144
+ globalSearchSchemas.clear();
145
+ perRouterManifestMap.clear();
146
+ perRouterTrieMap.clear();
147
+ perRouterPrecomputedEntriesMap.clear();
148
+ }
149
+
150
+ export function setRouterManifest(
151
+ routerId: string,
152
+ manifest: Record<string, string>,
153
+ ): void {
154
+ perRouterManifestMap.set(routerId, manifest);
155
+ }
156
+
157
+ /** @internal */
158
+ export function getRouterManifest(
159
+ routerId: string,
160
+ ): Record<string, string> | undefined {
161
+ return perRouterManifestMap.get(routerId);
162
+ }
163
+
164
+ export function setRouterTrie(
165
+ routerId: string,
166
+ trie: import("./build/route-trie.js").TrieNode,
167
+ ): void {
168
+ perRouterTrieMap.set(routerId, trie);
169
+ }
170
+
171
+ export function getRouterTrie(
172
+ routerId: string,
173
+ ): import("./build/route-trie.js").TrieNode | undefined {
174
+ return perRouterTrieMap.get(routerId);
175
+ }
176
+
177
+ export function setRouterPrecomputedEntries(
178
+ routerId: string,
179
+ entries: Array<{ staticPrefix: string; routes: Record<string, string> }>,
180
+ ): void {
181
+ perRouterPrecomputedEntriesMap.set(routerId, entries);
182
+ }
183
+
184
+ export function getRouterPrecomputedEntries(
185
+ routerId: string,
186
+ ): Array<{ staticPrefix: string; routes: Record<string, string> }> | undefined {
187
+ return perRouterPrecomputedEntriesMap.get(routerId);
188
+ }
189
+
190
+ // Lazy loader registry: per-router manifest modules are loaded on first request
191
+ // via import() to keep startup fast and allow Rollup to code-split per router.
192
+ const routerManifestLoaders: Map<string, () => Promise<any>> = new Map();
193
+
194
+ export function registerRouterManifestLoader(
195
+ routerId: string,
196
+ loader: () => Promise<any>,
197
+ ): void {
198
+ routerManifestLoaders.set(routerId, loader);
199
+ }
200
+
201
+ export async function ensureRouterManifest(routerId: string): Promise<void> {
202
+ // Check both manifest AND trie. The virtual module's setRouterManifest()
203
+ // pre-sets the manifest at startup, but the per-router trie is only
204
+ // available from the lazy loader. Without this, the lazy loader never
205
+ // runs and findMatch falls back to the global merged trie — which
206
+ // contains routes from ALL routers and breaks multi-router setups.
207
+ if (perRouterManifestMap.has(routerId) && perRouterTrieMap.has(routerId))
208
+ return;
209
+ const loader = routerManifestLoaders.get(routerId);
210
+ if (loader) {
211
+ const mod = await loader();
212
+ if (mod.manifest) perRouterManifestMap.set(routerId, mod.manifest);
213
+ if (mod.trie) perRouterTrieMap.set(routerId, mod.trie);
214
+ if (mod.precomputedEntries)
215
+ perRouterPrecomputedEntriesMap.set(routerId, mod.precomputedEntries);
216
+ routerManifestLoaders.delete(routerId);
217
+ }
218
+ }
219
+
230
220
  // Dev-mode manifest readiness gate.
231
221
  // The Vite discovery plugin calls setManifestReadyPromise() before starting
232
222
  // discovery, and resolves it when discovery completes. The handler awaits
@@ -240,3 +230,52 @@ export function setManifestReadyPromise(promise: Promise<void>): void {
240
230
  export function waitForManifestReady(): Promise<void> | null {
241
231
  return manifestReadyPromise;
242
232
  }
233
+
234
+ // ============================================================================
235
+ // Route Scope Registry
236
+ // ============================================================================
237
+
238
+ // Tracks whether each route is at root scope (no named include boundary above).
239
+ // Used by dot-local reverse resolution to decide whether bare-name fallback
240
+ // is allowed after scoped lookups are exhausted.
241
+ const rootScopeRoutes: Map<string, boolean> = new Map();
242
+
243
+ /**
244
+ * Register whether a route is at root scope.
245
+ * Called by path() during route evaluation.
246
+ */
247
+ export function registerRouteRootScope(
248
+ routeName: string,
249
+ rootScoped: boolean,
250
+ ): void {
251
+ rootScopeRoutes.set(routeName, rootScoped);
252
+ }
253
+
254
+ /**
255
+ * Check if a route is at root scope.
256
+ * Returns undefined if the route has not been registered (e.g. in unit tests).
257
+ */
258
+ export function isRouteRootScoped(routeName: string): boolean | undefined {
259
+ return rootScopeRoutes.get(routeName);
260
+ }
261
+
262
+ // ============================================================================
263
+ // Search Schema Registry
264
+ // ============================================================================
265
+
266
+ import type { SearchSchema } from "./search-params.js";
267
+
268
+ // Global search schema map: route name -> search schema descriptor.
269
+ // Populated by path() when a search option is provided.
270
+ const globalSearchSchemas: Map<string, SearchSchema> = new Map();
271
+
272
+ export function registerSearchSchema(
273
+ routeName: string,
274
+ schema: SearchSchema,
275
+ ): void {
276
+ globalSearchSchemas.set(routeName, schema);
277
+ }
278
+
279
+ export function getSearchSchema(routeName: string): SearchSchema | undefined {
280
+ return globalSearchSchemas.get(routeName);
281
+ }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Route name utilities for filtering internal route names.
3
+ *
4
+ * Internal names stay active in the runtime manifest for matching and local
5
+ * reverse() resolution, but they must not leak into public APIs or generated
6
+ * route maps.
7
+ */
8
+
9
+ export const AUTO_GENERATED_ROUTE_PREFIX = "$path_";
10
+ export const INTERNAL_INCLUDE_SCOPE_PREFIX = "$prefix_";
11
+
12
+ const RESERVED_PREFIXES = [
13
+ AUTO_GENERATED_ROUTE_PREFIX,
14
+ INTERNAL_INCLUDE_SCOPE_PREFIX,
15
+ ] as const;
16
+
17
+ /**
18
+ * Check if a route name is internal.
19
+ * Internal names include:
20
+ * - unnamed path() routes like "$path__health" or "docs.$path__health"
21
+ * - hidden include scopes like "$prefix_0.index" or "blog.$prefix_1.post"
22
+ *
23
+ * User-defined names containing "$" (e.g. "docs.$admin") are valid and must
24
+ * be preserved.
25
+ */
26
+ export function isAutoGeneratedRouteName(name: string): boolean {
27
+ return name.split(".").some((segment) => {
28
+ return (
29
+ segment.startsWith(AUTO_GENERATED_ROUTE_PREFIX) ||
30
+ segment.startsWith(INTERNAL_INCLUDE_SCOPE_PREFIX)
31
+ );
32
+ });
33
+ }
34
+
35
+ /**
36
+ * Validate that a user-provided route name does not collide with
37
+ * reserved internal prefixes. Checks every dot-separated segment,
38
+ * mirroring the same rule used by isAutoGeneratedRouteName().
39
+ *
40
+ * Throws with a clear message when a reserved prefix is detected.
41
+ */
42
+ export function validateUserRouteName(name: string): void {
43
+ for (const segment of name.split(".")) {
44
+ for (const prefix of RESERVED_PREFIXES) {
45
+ if (segment.startsWith(prefix)) {
46
+ throw new Error(
47
+ `Route name "${name}" contains segment "${segment}" which uses reserved internal prefix "${prefix}". ` +
48
+ `Choose a different name to avoid collision with auto-generated route names.`,
49
+ );
50
+ }
51
+ }
52
+ }
53
+ }
@@ -19,6 +19,7 @@ export declare const ErrorBoundaryBrand: unique symbol;
19
19
  export declare const NotFoundBoundaryBrand: unique symbol;
20
20
  export declare const WhenBrand: unique symbol;
21
21
  export declare const CacheBrand: unique symbol;
22
+ export declare const TransitionBrand: unique symbol;
22
23
  export declare const IncludeBrand: unique symbol;
23
24
  export declare const UrlPatternsBrand: unique symbol;
24
25
 
@@ -34,7 +35,7 @@ export type LayoutItem = {
34
35
  * Used for type inference in urls() API
35
36
  */
36
37
  export type TypedLayoutItem<
37
- TChildRoutes extends Record<string, string> = Record<string, string>,
38
+ TChildRoutes extends Record<string, any> = Record<string, string>,
38
39
  TChildResponses extends Record<string, unknown> = Record<string, unknown>,
39
40
  > = LayoutItem & {
40
41
  readonly __childRoutes?: TChildRoutes;
@@ -55,10 +56,12 @@ export type TypedRouteItem<
55
56
  TName extends string = string,
56
57
  TPattern extends string = string,
57
58
  TData = unknown,
59
+ TSearch = {},
58
60
  > = RouteItem & {
59
61
  readonly __name?: TName;
60
62
  readonly __pattern?: TPattern;
61
63
  readonly __data?: TData;
64
+ readonly __search?: TSearch;
62
65
  };
63
66
  export type ParallelItem = {
64
67
  name: string;
@@ -118,13 +121,30 @@ export type CacheItem = {
118
121
  uses?: AllUseItems[];
119
122
  [CacheBrand]: void;
120
123
  };
124
+ export type TransitionItem = {
125
+ name: string;
126
+ type: "transition";
127
+ [TransitionBrand]: void;
128
+ };
129
+
130
+ /**
131
+ * Typed transition item that carries child routes as phantom type
132
+ * Used for type inference when transition() wraps child routes
133
+ */
134
+ export type TypedTransitionItem<
135
+ TChildRoutes extends Record<string, any> = Record<string, string>,
136
+ TChildResponses extends Record<string, unknown> = Record<string, unknown>,
137
+ > = TransitionItem & {
138
+ readonly __childRoutes?: TChildRoutes;
139
+ readonly __childResponses?: TChildResponses;
140
+ };
121
141
 
122
142
  /**
123
143
  * Typed cache item that carries child routes as phantom type
124
144
  * Used for type inference in urls() API
125
145
  */
126
146
  export type TypedCacheItem<
127
- TChildRoutes extends Record<string, string> = Record<string, string>,
147
+ TChildRoutes extends Record<string, any> = Record<string, string>,
128
148
  TChildResponses extends Record<string, unknown> = Record<string, unknown>,
129
149
  > = CacheItem & {
130
150
  readonly __childRoutes?: TChildRoutes;
@@ -147,6 +167,15 @@ export type IncludeItem = {
147
167
  urlPrefix: string;
148
168
  namePrefix: string | undefined;
149
169
  parent: unknown; // EntryData - avoid circular import
170
+ /** Counter snapshot from pattern extraction for consistent shortCode indices */
171
+ counters?: Record<string, number>;
172
+ /** Cache profiles for DSL-time cache("profileName") resolution */
173
+ cacheProfiles?: Record<
174
+ string,
175
+ import("./cache/profile-registry.js").CacheProfile
176
+ >;
177
+ /** Root scope flag for dot-local reverse resolution */
178
+ rootScoped?: boolean;
150
179
  };
151
180
  [IncludeBrand]: void;
152
181
  };
@@ -156,7 +185,7 @@ export type IncludeItem = {
156
185
  * Used for type inference in urls() API
157
186
  */
158
187
  export type TypedIncludeItem<
159
- TRoutes extends Record<string, string> = Record<string, string>,
188
+ TRoutes extends Record<string, any> = Record<string, string>,
160
189
  TNamePrefix extends string = string,
161
190
  TUrlPrefix extends string = string,
162
191
  TResponses extends Record<string, unknown> = Record<string, unknown>,
@@ -182,6 +211,7 @@ export type AllUseItems =
182
211
  | ErrorBoundaryItem
183
212
  | NotFoundBoundaryItem
184
213
  | CacheItem
214
+ | TransitionItem
185
215
  | IncludeItem;
186
216
 
187
217
  /** Items that can be used inside a layout callback */
@@ -196,17 +226,17 @@ export type RouteUseItem =
196
226
  | LoadingItem
197
227
  | ErrorBoundaryItem
198
228
  | NotFoundBoundaryItem
199
- | CacheItem;
229
+ | CacheItem
230
+ | TransitionItem;
200
231
  /** Items that can be used inside a response route (path.json(), etc.) */
201
- export type ResponseRouteUseItem =
202
- | MiddlewareItem
203
- | CacheItem;
232
+ export type ResponseRouteUseItem = MiddlewareItem | CacheItem;
204
233
  export type ParallelUseItem =
205
234
  | RevalidateItem
206
235
  | LoaderItem
207
236
  | LoadingItem
208
237
  | ErrorBoundaryItem
209
- | NotFoundBoundaryItem;
238
+ | NotFoundBoundaryItem
239
+ | TransitionItem;
210
240
  export type InterceptUseItem =
211
241
  | MiddlewareItem
212
242
  | RevalidateItem
@@ -216,5 +246,25 @@ export type InterceptUseItem =
216
246
  | NotFoundBoundaryItem
217
247
  | LayoutItem
218
248
  | RouteItem
219
- | WhenItem;
249
+ | WhenItem
250
+ | TransitionItem;
220
251
  export type LoaderUseItem = RevalidateItem | CacheItem;
252
+
253
+ /**
254
+ * Allow composition factories in use() callbacks.
255
+ * Factories return T[], which placed inside a use() callback array
256
+ * creates nested arrays like (T | T[])[]. These are flattened at
257
+ * runtime via .flat(3).
258
+ */
259
+ export type UseItems<T> = (T | readonly T[])[];
260
+
261
+ /**
262
+ * Union of all items that handler.use() may return.
263
+ * A handler doesn't know its mount site at definition time, so the type
264
+ * is intentionally broad — validation happens per-mount-site at runtime.
265
+ */
266
+ export type HandlerUseItem =
267
+ | RouteUseItem
268
+ | LayoutUseItem
269
+ | ParallelUseItem
270
+ | InterceptUseItem;