@rangojs/router 0.0.0-experimental.106 → 0.0.0-experimental.108

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 (881) hide show
  1. package/README.md +3 -3
  2. package/dist/__internal.d.ts +83 -0
  3. package/dist/__internal.d.ts.map +1 -0
  4. package/dist/__internal.js +19 -0
  5. package/dist/__internal.js.map +1 -0
  6. package/dist/__mocks__/version.d.ts +7 -0
  7. package/dist/__mocks__/version.d.ts.map +1 -0
  8. package/dist/__mocks__/version.js +7 -0
  9. package/dist/__mocks__/version.js.map +1 -0
  10. package/dist/__tests__/client-href.test.d.ts +2 -0
  11. package/dist/__tests__/client-href.test.d.ts.map +1 -0
  12. package/dist/__tests__/client-href.test.js +74 -0
  13. package/dist/__tests__/client-href.test.js.map +1 -0
  14. package/dist/__tests__/component-utils.test.d.ts +2 -0
  15. package/dist/__tests__/component-utils.test.d.ts.map +1 -0
  16. package/dist/__tests__/component-utils.test.js +51 -0
  17. package/dist/__tests__/component-utils.test.js.map +1 -0
  18. package/dist/__tests__/event-controller.test.d.ts +2 -0
  19. package/dist/__tests__/event-controller.test.d.ts.map +1 -0
  20. package/dist/__tests__/event-controller.test.js +538 -0
  21. package/dist/__tests__/event-controller.test.js.map +1 -0
  22. package/dist/__tests__/helpers/route-tree.d.ts +118 -0
  23. package/dist/__tests__/helpers/route-tree.d.ts.map +1 -0
  24. package/dist/__tests__/helpers/route-tree.js +374 -0
  25. package/dist/__tests__/helpers/route-tree.js.map +1 -0
  26. package/dist/__tests__/match-result.test.d.ts +2 -0
  27. package/dist/__tests__/match-result.test.d.ts.map +1 -0
  28. package/dist/__tests__/match-result.test.js +154 -0
  29. package/dist/__tests__/match-result.test.js.map +1 -0
  30. package/dist/__tests__/navigation-store.test.d.ts +2 -0
  31. package/dist/__tests__/navigation-store.test.d.ts.map +1 -0
  32. package/dist/__tests__/navigation-store.test.js +440 -0
  33. package/dist/__tests__/navigation-store.test.js.map +1 -0
  34. package/dist/__tests__/partial-update.test.d.ts +2 -0
  35. package/dist/__tests__/partial-update.test.d.ts.map +1 -0
  36. package/dist/__tests__/partial-update.test.js +1009 -0
  37. package/dist/__tests__/partial-update.test.js.map +1 -0
  38. package/dist/__tests__/reverse-types.test.d.ts +8 -0
  39. package/dist/__tests__/reverse-types.test.d.ts.map +1 -0
  40. package/dist/__tests__/reverse-types.test.js +656 -0
  41. package/dist/__tests__/reverse-types.test.js.map +1 -0
  42. package/dist/__tests__/route-definition.test.d.ts +2 -0
  43. package/dist/__tests__/route-definition.test.d.ts.map +1 -0
  44. package/dist/__tests__/route-definition.test.js +55 -0
  45. package/dist/__tests__/route-definition.test.js.map +1 -0
  46. package/dist/__tests__/router-helpers.test.d.ts +2 -0
  47. package/dist/__tests__/router-helpers.test.d.ts.map +1 -0
  48. package/dist/__tests__/router-helpers.test.js +377 -0
  49. package/dist/__tests__/router-helpers.test.js.map +1 -0
  50. package/dist/__tests__/router-integration-2.test.d.ts +2 -0
  51. package/dist/__tests__/router-integration-2.test.d.ts.map +1 -0
  52. package/dist/__tests__/router-integration-2.test.js +426 -0
  53. package/dist/__tests__/router-integration-2.test.js.map +1 -0
  54. package/dist/__tests__/router-integration.test.d.ts +2 -0
  55. package/dist/__tests__/router-integration.test.d.ts.map +1 -0
  56. package/dist/__tests__/router-integration.test.js +1051 -0
  57. package/dist/__tests__/router-integration.test.js.map +1 -0
  58. package/dist/__tests__/search-params.test.d.ts +5 -0
  59. package/dist/__tests__/search-params.test.d.ts.map +1 -0
  60. package/dist/__tests__/search-params.test.js +306 -0
  61. package/dist/__tests__/search-params.test.js.map +1 -0
  62. package/dist/__tests__/segment-system.test.d.ts +2 -0
  63. package/dist/__tests__/segment-system.test.d.ts.map +1 -0
  64. package/dist/__tests__/segment-system.test.js +627 -0
  65. package/dist/__tests__/segment-system.test.js.map +1 -0
  66. package/dist/__tests__/static-handler-types.test.d.ts +8 -0
  67. package/dist/__tests__/static-handler-types.test.d.ts.map +1 -0
  68. package/dist/__tests__/static-handler-types.test.js +63 -0
  69. package/dist/__tests__/static-handler-types.test.js.map +1 -0
  70. package/dist/__tests__/urls.test.d.ts +2 -0
  71. package/dist/__tests__/urls.test.d.ts.map +1 -0
  72. package/dist/__tests__/urls.test.js +421 -0
  73. package/dist/__tests__/urls.test.js.map +1 -0
  74. package/dist/__tests__/use-mount.test.d.ts +2 -0
  75. package/dist/__tests__/use-mount.test.d.ts.map +1 -0
  76. package/dist/__tests__/use-mount.test.js +35 -0
  77. package/dist/__tests__/use-mount.test.js.map +1 -0
  78. package/dist/bin/rango.d.ts +2 -0
  79. package/dist/bin/rango.d.ts.map +1 -0
  80. package/dist/bin/rango.js +16 -16
  81. package/dist/bin/rango.js.map +1 -0
  82. package/dist/browser/event-controller.d.ts +191 -0
  83. package/dist/browser/event-controller.d.ts.map +1 -0
  84. package/dist/browser/event-controller.js +559 -0
  85. package/dist/browser/event-controller.js.map +1 -0
  86. package/dist/browser/index.d.ts +2 -0
  87. package/dist/browser/index.d.ts.map +1 -0
  88. package/dist/browser/index.js +14 -0
  89. package/dist/browser/index.js.map +1 -0
  90. package/dist/browser/link-interceptor.d.ts +38 -0
  91. package/dist/browser/link-interceptor.d.ts.map +1 -0
  92. package/dist/browser/link-interceptor.js +99 -0
  93. package/dist/browser/link-interceptor.js.map +1 -0
  94. package/dist/browser/logging.d.ts +10 -0
  95. package/dist/browser/logging.d.ts.map +1 -0
  96. package/dist/browser/logging.js +29 -0
  97. package/dist/browser/logging.js.map +1 -0
  98. package/dist/browser/lru-cache.d.ts +17 -0
  99. package/dist/browser/lru-cache.d.ts.map +1 -0
  100. package/dist/browser/lru-cache.js +50 -0
  101. package/dist/browser/lru-cache.js.map +1 -0
  102. package/dist/browser/merge-segment-loaders.d.ts +39 -0
  103. package/dist/browser/merge-segment-loaders.d.ts.map +1 -0
  104. package/dist/browser/merge-segment-loaders.js +102 -0
  105. package/dist/browser/merge-segment-loaders.js.map +1 -0
  106. package/dist/browser/navigation-bridge.d.ts +102 -0
  107. package/dist/browser/navigation-bridge.d.ts.map +1 -0
  108. package/dist/browser/navigation-bridge.js +708 -0
  109. package/dist/browser/navigation-bridge.js.map +1 -0
  110. package/dist/browser/navigation-client.d.ts +25 -0
  111. package/dist/browser/navigation-client.d.ts.map +1 -0
  112. package/dist/browser/navigation-client.js +157 -0
  113. package/dist/browser/navigation-client.js.map +1 -0
  114. package/dist/browser/navigation-store.d.ts +101 -0
  115. package/dist/browser/navigation-store.d.ts.map +1 -0
  116. package/dist/browser/navigation-store.js +625 -0
  117. package/dist/browser/navigation-store.js.map +1 -0
  118. package/dist/browser/partial-update.d.ts +75 -0
  119. package/dist/browser/partial-update.d.ts.map +1 -0
  120. package/dist/browser/partial-update.js +426 -0
  121. package/dist/browser/partial-update.js.map +1 -0
  122. package/dist/browser/react/Link.d.ts +86 -0
  123. package/dist/browser/react/Link.d.ts.map +1 -0
  124. package/dist/browser/react/Link.js +128 -0
  125. package/dist/browser/react/Link.js.map +1 -0
  126. package/dist/browser/react/NavigationProvider.d.ts +63 -0
  127. package/dist/browser/react/NavigationProvider.d.ts.map +1 -0
  128. package/dist/browser/react/NavigationProvider.js +216 -0
  129. package/dist/browser/react/NavigationProvider.js.map +1 -0
  130. package/dist/browser/react/ScrollRestoration.d.ts +75 -0
  131. package/dist/browser/react/ScrollRestoration.d.ts.map +1 -0
  132. package/dist/browser/react/ScrollRestoration.js +57 -0
  133. package/dist/browser/react/ScrollRestoration.js.map +1 -0
  134. package/dist/browser/react/context.d.ts +46 -0
  135. package/dist/browser/react/context.d.ts.map +1 -0
  136. package/dist/browser/react/context.js +10 -0
  137. package/dist/browser/react/context.js.map +1 -0
  138. package/dist/browser/react/index.d.ts +11 -0
  139. package/dist/browser/react/index.d.ts.map +1 -0
  140. package/dist/browser/react/index.js +22 -0
  141. package/dist/browser/react/index.js.map +1 -0
  142. package/dist/browser/react/location-state-shared.d.ts +63 -0
  143. package/dist/browser/react/location-state-shared.d.ts.map +1 -0
  144. package/dist/browser/react/location-state-shared.js +81 -0
  145. package/dist/browser/react/location-state-shared.js.map +1 -0
  146. package/dist/browser/react/location-state.d.ts +23 -0
  147. package/dist/browser/react/location-state.d.ts.map +1 -0
  148. package/dist/browser/react/location-state.js +29 -0
  149. package/dist/browser/react/location-state.js.map +1 -0
  150. package/dist/browser/react/mount-context.d.ts +24 -0
  151. package/dist/browser/react/mount-context.d.ts.map +1 -0
  152. package/dist/browser/react/mount-context.js +24 -0
  153. package/dist/browser/react/mount-context.js.map +1 -0
  154. package/dist/browser/react/use-action.d.ts +64 -0
  155. package/dist/browser/react/use-action.d.ts.map +1 -0
  156. package/dist/browser/react/use-action.js +134 -0
  157. package/dist/browser/react/use-action.js.map +1 -0
  158. package/dist/browser/react/use-client-cache.d.ts +41 -0
  159. package/dist/browser/react/use-client-cache.d.ts.map +1 -0
  160. package/dist/browser/react/use-client-cache.js +39 -0
  161. package/dist/browser/react/use-client-cache.js.map +1 -0
  162. package/dist/browser/react/use-handle.d.ts +31 -0
  163. package/dist/browser/react/use-handle.d.ts.map +1 -0
  164. package/dist/browser/react/use-handle.js +144 -0
  165. package/dist/browser/react/use-handle.js.map +1 -0
  166. package/dist/browser/react/use-href.d.ts +33 -0
  167. package/dist/browser/react/use-href.d.ts.map +1 -0
  168. package/dist/browser/react/use-href.js +39 -0
  169. package/dist/browser/react/use-href.js.map +1 -0
  170. package/dist/browser/react/use-link-status.d.ts +37 -0
  171. package/dist/browser/react/use-link-status.d.ts.map +1 -0
  172. package/dist/browser/react/use-link-status.js +99 -0
  173. package/dist/browser/react/use-link-status.js.map +1 -0
  174. package/dist/browser/react/use-mount.d.ts +25 -0
  175. package/dist/browser/react/use-mount.d.ts.map +1 -0
  176. package/dist/browser/react/use-mount.js +30 -0
  177. package/dist/browser/react/use-mount.js.map +1 -0
  178. package/dist/browser/react/use-navigation.d.ts +27 -0
  179. package/dist/browser/react/use-navigation.d.ts.map +1 -0
  180. package/dist/browser/react/use-navigation.js +87 -0
  181. package/dist/browser/react/use-navigation.js.map +1 -0
  182. package/dist/browser/react/use-segments.d.ts +38 -0
  183. package/dist/browser/react/use-segments.d.ts.map +1 -0
  184. package/dist/browser/react/use-segments.js +130 -0
  185. package/dist/browser/react/use-segments.js.map +1 -0
  186. package/dist/browser/request-controller.d.ts +26 -0
  187. package/dist/browser/request-controller.d.ts.map +1 -0
  188. package/dist/browser/request-controller.js +147 -0
  189. package/dist/browser/request-controller.js.map +1 -0
  190. package/dist/browser/rsc-router.d.ts +129 -0
  191. package/dist/browser/rsc-router.d.ts.map +1 -0
  192. package/dist/browser/rsc-router.js +195 -0
  193. package/dist/browser/rsc-router.js.map +1 -0
  194. package/dist/browser/scroll-restoration.d.ts +93 -0
  195. package/dist/browser/scroll-restoration.d.ts.map +1 -0
  196. package/dist/browser/scroll-restoration.js +321 -0
  197. package/dist/browser/scroll-restoration.js.map +1 -0
  198. package/dist/browser/segment-structure-assert.d.ts +17 -0
  199. package/dist/browser/segment-structure-assert.d.ts.map +1 -0
  200. package/dist/browser/segment-structure-assert.js +59 -0
  201. package/dist/browser/segment-structure-assert.js.map +1 -0
  202. package/dist/browser/server-action-bridge.d.ts +26 -0
  203. package/dist/browser/server-action-bridge.d.ts.map +1 -0
  204. package/dist/browser/server-action-bridge.js +668 -0
  205. package/dist/browser/server-action-bridge.js.map +1 -0
  206. package/dist/browser/shallow.d.ts +12 -0
  207. package/dist/browser/shallow.d.ts.map +1 -0
  208. package/dist/browser/shallow.js +34 -0
  209. package/dist/browser/shallow.js.map +1 -0
  210. package/dist/browser/types.d.ts +369 -0
  211. package/dist/browser/types.d.ts.map +1 -0
  212. package/dist/browser/types.js +2 -0
  213. package/dist/browser/types.js.map +1 -0
  214. package/dist/build/__tests__/generate-cli.test.d.ts +2 -0
  215. package/dist/build/__tests__/generate-cli.test.d.ts.map +1 -0
  216. package/dist/build/__tests__/generate-cli.test.js +237 -0
  217. package/dist/build/__tests__/generate-cli.test.js.map +1 -0
  218. package/dist/build/__tests__/generate-manifest.test.d.ts +2 -0
  219. package/dist/build/__tests__/generate-manifest.test.d.ts.map +1 -0
  220. package/dist/build/__tests__/generate-manifest.test.js +119 -0
  221. package/dist/build/__tests__/generate-manifest.test.js.map +1 -0
  222. package/dist/build/__tests__/generate-route-types.test.d.ts +2 -0
  223. package/dist/build/__tests__/generate-route-types.test.d.ts.map +1 -0
  224. package/dist/build/__tests__/generate-route-types.test.js +620 -0
  225. package/dist/build/__tests__/generate-route-types.test.js.map +1 -0
  226. package/dist/build/__tests__/per-router-manifest.test.d.ts +2 -0
  227. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +1 -0
  228. package/dist/build/__tests__/per-router-manifest.test.js +308 -0
  229. package/dist/build/__tests__/per-router-manifest.test.js.map +1 -0
  230. package/dist/build/generate-manifest.d.ts +81 -0
  231. package/dist/build/generate-manifest.d.ts.map +1 -0
  232. package/dist/build/generate-manifest.js +276 -0
  233. package/dist/build/generate-manifest.js.map +1 -0
  234. package/dist/build/generate-route-types.d.ts +115 -0
  235. package/dist/build/generate-route-types.d.ts.map +1 -0
  236. package/dist/build/generate-route-types.js +740 -0
  237. package/dist/build/generate-route-types.js.map +1 -0
  238. package/dist/build/index.d.ts +21 -0
  239. package/dist/build/index.d.ts.map +1 -0
  240. package/dist/build/index.js +21 -0
  241. package/dist/build/index.js.map +1 -0
  242. package/dist/build/route-trie.d.ts +71 -0
  243. package/dist/build/route-trie.d.ts.map +1 -0
  244. package/dist/build/route-trie.js +175 -0
  245. package/dist/build/route-trie.js.map +1 -0
  246. package/dist/cache/__tests__/cache-scope.test.d.ts +2 -0
  247. package/dist/cache/__tests__/cache-scope.test.d.ts.map +1 -0
  248. package/dist/cache/__tests__/cache-scope.test.js +208 -0
  249. package/dist/cache/__tests__/cache-scope.test.js.map +1 -0
  250. package/dist/cache/__tests__/document-cache.test.d.ts +2 -0
  251. package/dist/cache/__tests__/document-cache.test.d.ts.map +1 -0
  252. package/dist/cache/__tests__/document-cache.test.js +345 -0
  253. package/dist/cache/__tests__/document-cache.test.js.map +1 -0
  254. package/dist/cache/__tests__/memory-segment-store.test.d.ts +2 -0
  255. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +1 -0
  256. package/dist/cache/__tests__/memory-segment-store.test.js +425 -0
  257. package/dist/cache/__tests__/memory-segment-store.test.js.map +1 -0
  258. package/dist/cache/__tests__/memory-store.test.d.ts +2 -0
  259. package/dist/cache/__tests__/memory-store.test.d.ts.map +1 -0
  260. package/dist/cache/__tests__/memory-store.test.js +367 -0
  261. package/dist/cache/__tests__/memory-store.test.js.map +1 -0
  262. package/dist/cache/cache-scope.d.ts +102 -0
  263. package/dist/cache/cache-scope.d.ts.map +1 -0
  264. package/dist/cache/cache-scope.js +440 -0
  265. package/dist/cache/cache-scope.js.map +1 -0
  266. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +2 -0
  267. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +1 -0
  268. package/dist/cache/cf/__tests__/cf-cache-store.test.js +330 -0
  269. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +1 -0
  270. package/dist/cache/cf/cf-cache-store.d.ts +165 -0
  271. package/dist/cache/cf/cf-cache-store.d.ts.map +1 -0
  272. package/dist/cache/cf/cf-cache-store.js +242 -0
  273. package/dist/cache/cf/cf-cache-store.js.map +1 -0
  274. package/dist/cache/cf/index.d.ts +14 -0
  275. package/dist/cache/cf/index.d.ts.map +1 -0
  276. package/dist/cache/cf/index.js +17 -0
  277. package/dist/cache/cf/index.js.map +1 -0
  278. package/dist/cache/document-cache.d.ts +64 -0
  279. package/dist/cache/document-cache.d.ts.map +1 -0
  280. package/dist/cache/document-cache.js +228 -0
  281. package/dist/cache/document-cache.js.map +1 -0
  282. package/dist/cache/index.d.ts +19 -0
  283. package/dist/cache/index.d.ts.map +1 -0
  284. package/dist/cache/index.js +21 -0
  285. package/dist/cache/index.js.map +1 -0
  286. package/dist/cache/memory-segment-store.d.ts +110 -0
  287. package/dist/cache/memory-segment-store.d.ts.map +1 -0
  288. package/dist/cache/memory-segment-store.js +117 -0
  289. package/dist/cache/memory-segment-store.js.map +1 -0
  290. package/dist/cache/memory-store.d.ts +41 -0
  291. package/dist/cache/memory-store.d.ts.map +1 -0
  292. package/dist/cache/memory-store.js +191 -0
  293. package/dist/cache/memory-store.js.map +1 -0
  294. package/dist/cache/types.d.ts +317 -0
  295. package/dist/cache/types.d.ts.map +1 -0
  296. package/dist/cache/types.js +12 -0
  297. package/dist/cache/types.js.map +1 -0
  298. package/dist/client.d.ts +248 -0
  299. package/dist/client.d.ts.map +1 -0
  300. package/dist/client.js +367 -0
  301. package/dist/client.js.map +1 -0
  302. package/dist/client.rsc.d.ts +26 -0
  303. package/dist/client.rsc.d.ts.map +1 -0
  304. package/dist/client.rsc.js +46 -0
  305. package/dist/client.rsc.js.map +1 -0
  306. package/dist/component-utils.d.ts +36 -0
  307. package/dist/component-utils.d.ts.map +1 -0
  308. package/dist/component-utils.js +61 -0
  309. package/dist/component-utils.js.map +1 -0
  310. package/dist/components/DefaultDocument.d.ts +13 -0
  311. package/dist/components/DefaultDocument.d.ts.map +1 -0
  312. package/dist/components/DefaultDocument.js +15 -0
  313. package/dist/components/DefaultDocument.js.map +1 -0
  314. package/dist/debug.d.ts +58 -0
  315. package/dist/debug.d.ts.map +1 -0
  316. package/dist/debug.js +157 -0
  317. package/dist/debug.js.map +1 -0
  318. package/dist/default-error-boundary.d.ts +11 -0
  319. package/dist/default-error-boundary.d.ts.map +1 -0
  320. package/dist/default-error-boundary.js +45 -0
  321. package/dist/default-error-boundary.js.map +1 -0
  322. package/dist/deps/browser.d.ts +2 -0
  323. package/dist/deps/browser.d.ts.map +1 -0
  324. package/dist/deps/browser.js +3 -0
  325. package/dist/deps/browser.js.map +1 -0
  326. package/dist/deps/html-stream-client.d.ts +2 -0
  327. package/dist/deps/html-stream-client.d.ts.map +1 -0
  328. package/dist/deps/html-stream-client.js +3 -0
  329. package/dist/deps/html-stream-client.js.map +1 -0
  330. package/dist/deps/html-stream-server.d.ts +2 -0
  331. package/dist/deps/html-stream-server.d.ts.map +1 -0
  332. package/dist/deps/html-stream-server.js +3 -0
  333. package/dist/deps/html-stream-server.js.map +1 -0
  334. package/dist/deps/rsc.d.ts +2 -0
  335. package/dist/deps/rsc.d.ts.map +1 -0
  336. package/dist/deps/rsc.js +4 -0
  337. package/dist/deps/rsc.js.map +1 -0
  338. package/dist/deps/ssr.d.ts +2 -0
  339. package/dist/deps/ssr.d.ts.map +1 -0
  340. package/dist/deps/ssr.js +3 -0
  341. package/dist/deps/ssr.js.map +1 -0
  342. package/dist/errors.d.ts +174 -0
  343. package/dist/errors.d.ts.map +1 -0
  344. package/dist/errors.js +241 -0
  345. package/dist/errors.js.map +1 -0
  346. package/dist/handle.d.ts +78 -0
  347. package/dist/handle.d.ts.map +1 -0
  348. package/dist/handle.js +82 -0
  349. package/dist/handle.js.map +1 -0
  350. package/dist/handles/MetaTags.d.ts +14 -0
  351. package/dist/handles/MetaTags.d.ts.map +1 -0
  352. package/dist/handles/MetaTags.js +136 -0
  353. package/dist/handles/MetaTags.js.map +1 -0
  354. package/dist/handles/index.d.ts +6 -0
  355. package/dist/handles/index.d.ts.map +1 -0
  356. package/dist/handles/index.js +6 -0
  357. package/dist/handles/index.js.map +1 -0
  358. package/dist/handles/meta.d.ts +39 -0
  359. package/dist/handles/meta.d.ts.map +1 -0
  360. package/dist/handles/meta.js +202 -0
  361. package/dist/handles/meta.js.map +1 -0
  362. package/dist/host/__tests__/errors.test.d.ts +2 -0
  363. package/dist/host/__tests__/errors.test.d.ts.map +1 -0
  364. package/dist/host/__tests__/errors.test.js +76 -0
  365. package/dist/host/__tests__/errors.test.js.map +1 -0
  366. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +2 -0
  367. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +1 -0
  368. package/dist/host/__tests__/pattern-comprehensive.test.js +732 -0
  369. package/dist/host/__tests__/pattern-comprehensive.test.js.map +1 -0
  370. package/dist/host/__tests__/pattern-matcher.test.d.ts +2 -0
  371. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +1 -0
  372. package/dist/host/__tests__/pattern-matcher.test.js +251 -0
  373. package/dist/host/__tests__/pattern-matcher.test.js.map +1 -0
  374. package/dist/host/__tests__/router.test.d.ts +2 -0
  375. package/dist/host/__tests__/router.test.d.ts.map +1 -0
  376. package/dist/host/__tests__/router.test.js +241 -0
  377. package/dist/host/__tests__/router.test.js.map +1 -0
  378. package/dist/host/__tests__/testing.test.d.ts +2 -0
  379. package/dist/host/__tests__/testing.test.d.ts.map +1 -0
  380. package/dist/host/__tests__/testing.test.js +64 -0
  381. package/dist/host/__tests__/testing.test.js.map +1 -0
  382. package/dist/host/__tests__/utils.test.d.ts +2 -0
  383. package/dist/host/__tests__/utils.test.d.ts.map +1 -0
  384. package/dist/host/__tests__/utils.test.js +29 -0
  385. package/dist/host/__tests__/utils.test.js.map +1 -0
  386. package/dist/host/cookie-handler.d.ts +34 -0
  387. package/dist/host/cookie-handler.d.ts.map +1 -0
  388. package/dist/host/cookie-handler.js +124 -0
  389. package/dist/host/cookie-handler.js.map +1 -0
  390. package/dist/host/errors.d.ts +56 -0
  391. package/dist/host/errors.d.ts.map +1 -0
  392. package/dist/host/errors.js +79 -0
  393. package/dist/host/errors.js.map +1 -0
  394. package/dist/host/index.d.ts +29 -0
  395. package/dist/host/index.d.ts.map +1 -0
  396. package/dist/host/index.js +32 -0
  397. package/dist/host/index.js.map +1 -0
  398. package/dist/host/pattern-matcher.d.ts +36 -0
  399. package/dist/host/pattern-matcher.d.ts.map +1 -0
  400. package/dist/host/pattern-matcher.js +172 -0
  401. package/dist/host/pattern-matcher.js.map +1 -0
  402. package/dist/host/router.d.ts +26 -0
  403. package/dist/host/router.d.ts.map +1 -0
  404. package/dist/host/router.js +218 -0
  405. package/dist/host/router.js.map +1 -0
  406. package/dist/host/testing.d.ts +36 -0
  407. package/dist/host/testing.d.ts.map +1 -0
  408. package/dist/host/testing.js +55 -0
  409. package/dist/host/testing.js.map +1 -0
  410. package/dist/host/types.d.ts +115 -0
  411. package/dist/host/types.d.ts.map +1 -0
  412. package/dist/host/types.js +7 -0
  413. package/dist/host/types.js.map +1 -0
  414. package/dist/host/utils.d.ts +21 -0
  415. package/dist/host/utils.d.ts.map +1 -0
  416. package/dist/host/utils.js +23 -0
  417. package/dist/host/utils.js.map +1 -0
  418. package/dist/href-client.d.ts +131 -0
  419. package/dist/href-client.d.ts.map +1 -0
  420. package/dist/href-client.js +64 -0
  421. package/dist/href-client.js.map +1 -0
  422. package/dist/href-context.d.ts +29 -0
  423. package/dist/href-context.d.ts.map +1 -0
  424. package/dist/href-context.js +21 -0
  425. package/dist/href-context.js.map +1 -0
  426. package/dist/index.d.ts +73 -0
  427. package/dist/index.d.ts.map +1 -0
  428. package/dist/index.js +91 -0
  429. package/dist/index.js.map +1 -0
  430. package/dist/index.rsc.d.ts +32 -0
  431. package/dist/index.rsc.d.ts.map +1 -0
  432. package/dist/index.rsc.js +40 -0
  433. package/dist/index.rsc.js.map +1 -0
  434. package/dist/internal-debug.d.ts +2 -0
  435. package/dist/internal-debug.d.ts.map +1 -0
  436. package/dist/internal-debug.js +5 -0
  437. package/dist/internal-debug.js.map +1 -0
  438. package/dist/loader.d.ts +14 -0
  439. package/dist/loader.d.ts.map +1 -0
  440. package/dist/loader.js +20 -0
  441. package/dist/loader.js.map +1 -0
  442. package/dist/loader.rsc.d.ts +19 -0
  443. package/dist/loader.rsc.d.ts.map +1 -0
  444. package/dist/loader.rsc.js +99 -0
  445. package/dist/loader.rsc.js.map +1 -0
  446. package/dist/network-error-thrower.d.ts +17 -0
  447. package/dist/network-error-thrower.d.ts.map +1 -0
  448. package/dist/network-error-thrower.js +14 -0
  449. package/dist/network-error-thrower.js.map +1 -0
  450. package/dist/outlet-context.d.ts +13 -0
  451. package/dist/outlet-context.d.ts.map +1 -0
  452. package/dist/outlet-context.js +3 -0
  453. package/dist/outlet-context.js.map +1 -0
  454. package/dist/prerender/__tests__/param-hash.test.d.ts +2 -0
  455. package/dist/prerender/__tests__/param-hash.test.d.ts.map +1 -0
  456. package/dist/prerender/__tests__/param-hash.test.js +148 -0
  457. package/dist/prerender/__tests__/param-hash.test.js.map +1 -0
  458. package/dist/prerender/param-hash.d.ts +16 -0
  459. package/dist/prerender/param-hash.d.ts.map +1 -0
  460. package/dist/prerender/param-hash.js +36 -0
  461. package/dist/prerender/param-hash.js.map +1 -0
  462. package/dist/prerender/store.d.ts +38 -0
  463. package/dist/prerender/store.d.ts.map +1 -0
  464. package/dist/prerender/store.js +61 -0
  465. package/dist/prerender/store.js.map +1 -0
  466. package/dist/prerender.d.ts +66 -0
  467. package/dist/prerender.d.ts.map +1 -0
  468. package/dist/prerender.js +57 -0
  469. package/dist/prerender.js.map +1 -0
  470. package/dist/reverse.d.ts +196 -0
  471. package/dist/reverse.d.ts.map +1 -0
  472. package/dist/reverse.js +78 -0
  473. package/dist/reverse.js.map +1 -0
  474. package/dist/root-error-boundary.d.ts +33 -0
  475. package/dist/root-error-boundary.d.ts.map +1 -0
  476. package/dist/root-error-boundary.js +165 -0
  477. package/dist/root-error-boundary.js.map +1 -0
  478. package/dist/route-content-wrapper.d.ts +46 -0
  479. package/dist/route-content-wrapper.d.ts.map +1 -0
  480. package/dist/route-content-wrapper.js +77 -0
  481. package/dist/route-content-wrapper.js.map +1 -0
  482. package/dist/route-definition.d.ts +421 -0
  483. package/dist/route-definition.d.ts.map +1 -0
  484. package/dist/route-definition.js +868 -0
  485. package/dist/route-definition.js.map +1 -0
  486. package/dist/route-map-builder.d.ts +155 -0
  487. package/dist/route-map-builder.d.ts.map +1 -0
  488. package/dist/route-map-builder.js +237 -0
  489. package/dist/route-map-builder.js.map +1 -0
  490. package/dist/route-types.d.ts +165 -0
  491. package/dist/route-types.d.ts.map +1 -0
  492. package/dist/route-types.js +7 -0
  493. package/dist/route-types.js.map +1 -0
  494. package/dist/router/__tests__/handler-context.test.d.ts +2 -0
  495. package/dist/router/__tests__/handler-context.test.d.ts.map +1 -0
  496. package/dist/router/__tests__/handler-context.test.js +65 -0
  497. package/dist/router/__tests__/handler-context.test.js.map +1 -0
  498. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +2 -0
  499. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +1 -0
  500. package/dist/router/__tests__/loader-cycle-detection.test.js +221 -0
  501. package/dist/router/__tests__/loader-cycle-detection.test.js.map +1 -0
  502. package/dist/router/__tests__/match-context.test.d.ts +2 -0
  503. package/dist/router/__tests__/match-context.test.d.ts.map +1 -0
  504. package/dist/router/__tests__/match-context.test.js +92 -0
  505. package/dist/router/__tests__/match-context.test.js.map +1 -0
  506. package/dist/router/__tests__/match-pipelines.test.d.ts +2 -0
  507. package/dist/router/__tests__/match-pipelines.test.d.ts.map +1 -0
  508. package/dist/router/__tests__/match-pipelines.test.js +417 -0
  509. package/dist/router/__tests__/match-pipelines.test.js.map +1 -0
  510. package/dist/router/__tests__/match-result.test.d.ts +2 -0
  511. package/dist/router/__tests__/match-result.test.d.ts.map +1 -0
  512. package/dist/router/__tests__/match-result.test.js +457 -0
  513. package/dist/router/__tests__/match-result.test.js.map +1 -0
  514. package/dist/router/__tests__/on-error.test.d.ts +2 -0
  515. package/dist/router/__tests__/on-error.test.d.ts.map +1 -0
  516. package/dist/router/__tests__/on-error.test.js +678 -0
  517. package/dist/router/__tests__/on-error.test.js.map +1 -0
  518. package/dist/router/__tests__/pattern-matching.test.d.ts +2 -0
  519. package/dist/router/__tests__/pattern-matching.test.d.ts.map +1 -0
  520. package/dist/router/__tests__/pattern-matching.test.js +629 -0
  521. package/dist/router/__tests__/pattern-matching.test.js.map +1 -0
  522. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +2 -0
  523. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +1 -0
  524. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +155 -0
  525. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +1 -0
  526. package/dist/router/error-handling.d.ts +77 -0
  527. package/dist/router/error-handling.d.ts.map +1 -0
  528. package/dist/router/error-handling.js +202 -0
  529. package/dist/router/error-handling.js.map +1 -0
  530. package/dist/router/handler-context.d.ts +20 -0
  531. package/dist/router/handler-context.d.ts.map +1 -0
  532. package/dist/router/handler-context.js +198 -0
  533. package/dist/router/handler-context.js.map +1 -0
  534. package/dist/router/intercept-resolution.d.ts +66 -0
  535. package/dist/router/intercept-resolution.d.ts.map +1 -0
  536. package/dist/router/intercept-resolution.js +246 -0
  537. package/dist/router/intercept-resolution.js.map +1 -0
  538. package/dist/router/loader-resolution.d.ts +64 -0
  539. package/dist/router/loader-resolution.d.ts.map +1 -0
  540. package/dist/router/loader-resolution.js +284 -0
  541. package/dist/router/loader-resolution.js.map +1 -0
  542. package/dist/router/logging.d.ts +15 -0
  543. package/dist/router/logging.d.ts.map +1 -0
  544. package/dist/router/logging.js +99 -0
  545. package/dist/router/logging.js.map +1 -0
  546. package/dist/router/manifest.d.ts +22 -0
  547. package/dist/router/manifest.d.ts.map +1 -0
  548. package/dist/router/manifest.js +181 -0
  549. package/dist/router/manifest.js.map +1 -0
  550. package/dist/router/match-api.d.ts +35 -0
  551. package/dist/router/match-api.d.ts.map +1 -0
  552. package/dist/router/match-api.js +406 -0
  553. package/dist/router/match-api.js.map +1 -0
  554. package/dist/router/match-context.d.ts +206 -0
  555. package/dist/router/match-context.d.ts.map +1 -0
  556. package/dist/router/match-context.js +17 -0
  557. package/dist/router/match-context.js.map +1 -0
  558. package/dist/router/match-middleware/background-revalidation.d.ts +127 -0
  559. package/dist/router/match-middleware/background-revalidation.d.ts.map +1 -0
  560. package/dist/router/match-middleware/background-revalidation.js +75 -0
  561. package/dist/router/match-middleware/background-revalidation.js.map +1 -0
  562. package/dist/router/match-middleware/cache-lookup.d.ts +112 -0
  563. package/dist/router/match-middleware/cache-lookup.d.ts.map +1 -0
  564. package/dist/router/match-middleware/cache-lookup.js +257 -0
  565. package/dist/router/match-middleware/cache-lookup.js.map +1 -0
  566. package/dist/router/match-middleware/cache-store.d.ts +113 -0
  567. package/dist/router/match-middleware/cache-store.d.ts.map +1 -0
  568. package/dist/router/match-middleware/cache-store.js +108 -0
  569. package/dist/router/match-middleware/cache-store.js.map +1 -0
  570. package/dist/router/match-middleware/index.d.ts +81 -0
  571. package/dist/router/match-middleware/index.d.ts.map +1 -0
  572. package/dist/router/match-middleware/index.js +80 -0
  573. package/dist/router/match-middleware/index.js.map +1 -0
  574. package/dist/router/match-middleware/intercept-resolution.d.ts +117 -0
  575. package/dist/router/match-middleware/intercept-resolution.d.ts.map +1 -0
  576. package/dist/router/match-middleware/intercept-resolution.js +134 -0
  577. package/dist/router/match-middleware/intercept-resolution.js.map +1 -0
  578. package/dist/router/match-middleware/segment-resolution.d.ts +99 -0
  579. package/dist/router/match-middleware/segment-resolution.d.ts.map +1 -0
  580. package/dist/router/match-middleware/segment-resolution.js +53 -0
  581. package/dist/router/match-middleware/segment-resolution.js.map +1 -0
  582. package/dist/router/match-pipelines.d.ts +147 -0
  583. package/dist/router/match-pipelines.d.ts.map +1 -0
  584. package/dist/router/match-pipelines.js +82 -0
  585. package/dist/router/match-pipelines.js.map +1 -0
  586. package/dist/router/match-result.d.ts +126 -0
  587. package/dist/router/match-result.d.ts.map +1 -0
  588. package/dist/router/match-result.js +93 -0
  589. package/dist/router/match-result.js.map +1 -0
  590. package/dist/router/metrics.d.ts +20 -0
  591. package/dist/router/metrics.d.ts.map +1 -0
  592. package/dist/router/metrics.js +47 -0
  593. package/dist/router/metrics.js.map +1 -0
  594. package/dist/router/middleware.d.ts +249 -0
  595. package/dist/router/middleware.d.ts.map +1 -0
  596. package/dist/router/middleware.js +434 -0
  597. package/dist/router/middleware.js.map +1 -0
  598. package/dist/router/middleware.test.d.ts +2 -0
  599. package/dist/router/middleware.test.d.ts.map +1 -0
  600. package/dist/router/middleware.test.js +816 -0
  601. package/dist/router/middleware.test.js.map +1 -0
  602. package/dist/router/pattern-matching.d.ts +149 -0
  603. package/dist/router/pattern-matching.d.ts.map +1 -0
  604. package/dist/router/pattern-matching.js +349 -0
  605. package/dist/router/pattern-matching.js.map +1 -0
  606. package/dist/router/revalidation.d.ts +44 -0
  607. package/dist/router/revalidation.d.ts.map +1 -0
  608. package/dist/router/revalidation.js +147 -0
  609. package/dist/router/revalidation.js.map +1 -0
  610. package/dist/router/router-context.d.ts +135 -0
  611. package/dist/router/router-context.d.ts.map +1 -0
  612. package/dist/router/router-context.js +36 -0
  613. package/dist/router/router-context.js.map +1 -0
  614. package/dist/router/segment-resolution.d.ts +127 -0
  615. package/dist/router/segment-resolution.d.ts.map +1 -0
  616. package/dist/router/segment-resolution.js +919 -0
  617. package/dist/router/segment-resolution.js.map +1 -0
  618. package/dist/router/trie-matching.d.ts +40 -0
  619. package/dist/router/trie-matching.d.ts.map +1 -0
  620. package/dist/router/trie-matching.js +127 -0
  621. package/dist/router/trie-matching.js.map +1 -0
  622. package/dist/router/types.d.ts +136 -0
  623. package/dist/router/types.d.ts.map +1 -0
  624. package/dist/router/types.js +7 -0
  625. package/dist/router/types.js.map +1 -0
  626. package/dist/router.d.ts +753 -0
  627. package/dist/router.d.ts.map +1 -0
  628. package/dist/router.gen.d.ts +6 -0
  629. package/dist/router.gen.d.ts.map +1 -0
  630. package/dist/router.gen.js +6 -0
  631. package/dist/router.gen.js.map +1 -0
  632. package/dist/router.js +1304 -0
  633. package/dist/router.js.map +1 -0
  634. package/dist/rsc/__tests__/helpers.test.d.ts +2 -0
  635. package/dist/rsc/__tests__/helpers.test.d.ts.map +1 -0
  636. package/dist/rsc/__tests__/helpers.test.js +140 -0
  637. package/dist/rsc/__tests__/helpers.test.js.map +1 -0
  638. package/dist/rsc/handler.d.ts +45 -0
  639. package/dist/rsc/handler.d.ts.map +1 -0
  640. package/dist/rsc/handler.js +1172 -0
  641. package/dist/rsc/handler.js.map +1 -0
  642. package/dist/rsc/helpers.d.ts +16 -0
  643. package/dist/rsc/helpers.d.ts.map +1 -0
  644. package/dist/rsc/helpers.js +55 -0
  645. package/dist/rsc/helpers.js.map +1 -0
  646. package/dist/rsc/index.d.ts +22 -0
  647. package/dist/rsc/index.d.ts.map +1 -0
  648. package/dist/rsc/index.js +23 -0
  649. package/dist/rsc/index.js.map +1 -0
  650. package/dist/rsc/nonce.d.ts +9 -0
  651. package/dist/rsc/nonce.d.ts.map +1 -0
  652. package/dist/rsc/nonce.js +18 -0
  653. package/dist/rsc/nonce.js.map +1 -0
  654. package/dist/rsc/types.d.ts +206 -0
  655. package/dist/rsc/types.d.ts.map +1 -0
  656. package/dist/rsc/types.js +8 -0
  657. package/dist/rsc/types.js.map +1 -0
  658. package/dist/search-params.d.ts +103 -0
  659. package/dist/search-params.d.ts.map +1 -0
  660. package/dist/search-params.js +74 -0
  661. package/dist/search-params.js.map +1 -0
  662. package/dist/segment-system.d.ts +75 -0
  663. package/dist/segment-system.d.ts.map +1 -0
  664. package/dist/segment-system.js +336 -0
  665. package/dist/segment-system.js.map +1 -0
  666. package/dist/server/context.d.ts +245 -0
  667. package/dist/server/context.d.ts.map +1 -0
  668. package/dist/server/context.js +197 -0
  669. package/dist/server/context.js.map +1 -0
  670. package/dist/server/fetchable-loader-store.d.ts +18 -0
  671. package/dist/server/fetchable-loader-store.d.ts.map +1 -0
  672. package/dist/server/fetchable-loader-store.js +18 -0
  673. package/dist/server/fetchable-loader-store.js.map +1 -0
  674. package/dist/server/handle-store.d.ts +85 -0
  675. package/dist/server/handle-store.d.ts.map +1 -0
  676. package/dist/server/handle-store.js +142 -0
  677. package/dist/server/handle-store.js.map +1 -0
  678. package/dist/server/loader-registry.d.ts +55 -0
  679. package/dist/server/loader-registry.d.ts.map +1 -0
  680. package/dist/server/loader-registry.js +132 -0
  681. package/dist/server/loader-registry.js.map +1 -0
  682. package/dist/server/request-context.d.ts +226 -0
  683. package/dist/server/request-context.d.ts.map +1 -0
  684. package/dist/server/request-context.js +290 -0
  685. package/dist/server/request-context.js.map +1 -0
  686. package/dist/server/root-layout.d.ts +4 -0
  687. package/dist/server/root-layout.d.ts.map +1 -0
  688. package/dist/server/root-layout.js +5 -0
  689. package/dist/server/root-layout.js.map +1 -0
  690. package/dist/server.d.ts +15 -0
  691. package/dist/server.d.ts.map +1 -0
  692. package/dist/server.js +20 -0
  693. package/dist/server.js.map +1 -0
  694. package/dist/ssr/__tests__/ssr-handler.test.d.ts +2 -0
  695. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +1 -0
  696. package/dist/ssr/__tests__/ssr-handler.test.js +132 -0
  697. package/dist/ssr/__tests__/ssr-handler.test.js.map +1 -0
  698. package/dist/ssr/index.d.ts +98 -0
  699. package/dist/ssr/index.d.ts.map +1 -0
  700. package/dist/ssr/index.js +158 -0
  701. package/dist/ssr/index.js.map +1 -0
  702. package/dist/static-handler.d.ts +50 -0
  703. package/dist/static-handler.d.ts.map +1 -0
  704. package/dist/static-handler.gen.d.ts +5 -0
  705. package/dist/static-handler.gen.d.ts.map +1 -0
  706. package/dist/static-handler.gen.js +5 -0
  707. package/dist/static-handler.gen.js.map +1 -0
  708. package/dist/static-handler.js +29 -0
  709. package/dist/static-handler.js.map +1 -0
  710. package/dist/theme/ThemeProvider.d.ts +20 -0
  711. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  712. package/dist/theme/ThemeProvider.js +240 -0
  713. package/dist/theme/ThemeProvider.js.map +1 -0
  714. package/dist/theme/ThemeScript.d.ts +48 -0
  715. package/dist/theme/ThemeScript.d.ts.map +1 -0
  716. package/dist/theme/ThemeScript.js +13 -0
  717. package/dist/theme/ThemeScript.js.map +1 -0
  718. package/dist/theme/__tests__/theme.test.d.ts +2 -0
  719. package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
  720. package/dist/theme/__tests__/theme.test.js +103 -0
  721. package/dist/theme/__tests__/theme.test.js.map +1 -0
  722. package/dist/theme/constants.d.ts +29 -0
  723. package/dist/theme/constants.d.ts.map +1 -0
  724. package/dist/theme/constants.js +48 -0
  725. package/dist/theme/constants.js.map +1 -0
  726. package/dist/theme/index.d.ts +31 -0
  727. package/dist/theme/index.d.ts.map +1 -0
  728. package/dist/theme/index.js +36 -0
  729. package/dist/theme/index.js.map +1 -0
  730. package/dist/theme/theme-context.d.ts +40 -0
  731. package/dist/theme/theme-context.d.ts.map +1 -0
  732. package/dist/theme/theme-context.js +60 -0
  733. package/dist/theme/theme-context.js.map +1 -0
  734. package/dist/theme/theme-script.d.ts +27 -0
  735. package/dist/theme/theme-script.d.ts.map +1 -0
  736. package/dist/theme/theme-script.js +147 -0
  737. package/dist/theme/theme-script.js.map +1 -0
  738. package/dist/theme/types.d.ts +163 -0
  739. package/dist/theme/types.d.ts.map +1 -0
  740. package/dist/theme/types.js +11 -0
  741. package/dist/theme/types.js.map +1 -0
  742. package/dist/theme/use-theme.d.ts +12 -0
  743. package/dist/theme/use-theme.d.ts.map +1 -0
  744. package/dist/theme/use-theme.js +40 -0
  745. package/dist/theme/use-theme.js.map +1 -0
  746. package/dist/types.d.ts +1479 -0
  747. package/dist/types.d.ts.map +1 -0
  748. package/dist/types.js +10 -0
  749. package/dist/types.js.map +1 -0
  750. package/dist/urls.d.ts +441 -0
  751. package/dist/urls.d.ts.map +1 -0
  752. package/dist/urls.gen.d.ts +8 -0
  753. package/dist/urls.gen.d.ts.map +1 -0
  754. package/dist/urls.gen.js +8 -0
  755. package/dist/urls.gen.js.map +1 -0
  756. package/dist/urls.js +443 -0
  757. package/dist/urls.js.map +1 -0
  758. package/dist/use-loader.d.ts +127 -0
  759. package/dist/use-loader.d.ts.map +1 -0
  760. package/dist/use-loader.js +237 -0
  761. package/dist/use-loader.js.map +1 -0
  762. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +2 -0
  763. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +1 -0
  764. package/dist/vite/__tests__/ast-handler-extract.test.js +294 -0
  765. package/dist/vite/__tests__/ast-handler-extract.test.js.map +1 -0
  766. package/dist/vite/__tests__/expose-id-utils.test.d.ts +2 -0
  767. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +1 -0
  768. package/dist/vite/__tests__/expose-id-utils.test.js +224 -0
  769. package/dist/vite/__tests__/expose-id-utils.test.js.map +1 -0
  770. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +2 -0
  771. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +1 -0
  772. package/dist/vite/__tests__/expose-internal-ids.test.js +647 -0
  773. package/dist/vite/__tests__/expose-internal-ids.test.js.map +1 -0
  774. package/dist/vite/__tests__/expose-router-id.test.d.ts +2 -0
  775. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +1 -0
  776. package/dist/vite/__tests__/expose-router-id.test.js +39 -0
  777. package/dist/vite/__tests__/expose-router-id.test.js.map +1 -0
  778. package/dist/vite/ast-handler-extract.d.ts +49 -0
  779. package/dist/vite/ast-handler-extract.d.ts.map +1 -0
  780. package/dist/vite/ast-handler-extract.js +249 -0
  781. package/dist/vite/ast-handler-extract.js.map +1 -0
  782. package/dist/vite/expose-action-id.d.ts +19 -0
  783. package/dist/vite/expose-action-id.d.ts.map +1 -0
  784. package/dist/vite/expose-action-id.js +250 -0
  785. package/dist/vite/expose-action-id.js.map +1 -0
  786. package/dist/vite/expose-id-utils.d.ts +69 -0
  787. package/dist/vite/expose-id-utils.d.ts.map +1 -0
  788. package/dist/vite/expose-id-utils.js +289 -0
  789. package/dist/vite/expose-id-utils.js.map +1 -0
  790. package/dist/vite/expose-internal-ids.d.ts +22 -0
  791. package/dist/vite/expose-internal-ids.d.ts.map +1 -0
  792. package/dist/vite/expose-internal-ids.js +886 -0
  793. package/dist/vite/expose-internal-ids.js.map +1 -0
  794. package/dist/vite/index.d.ts +149 -0
  795. package/dist/vite/index.d.ts.map +1 -0
  796. package/dist/vite/index.js +135 -143
  797. package/dist/vite/index.js.bak +5448 -0
  798. package/dist/vite/index.js.map +1 -0
  799. package/dist/vite/index.named-routes.gen.ts +103 -0
  800. package/dist/vite/package-resolution.d.ts +43 -0
  801. package/dist/vite/package-resolution.d.ts.map +1 -0
  802. package/dist/vite/package-resolution.js +112 -0
  803. package/dist/vite/package-resolution.js.map +1 -0
  804. package/dist/vite/virtual-entries.d.ts +25 -0
  805. package/dist/vite/virtual-entries.d.ts.map +1 -0
  806. package/dist/vite/virtual-entries.js +110 -0
  807. package/dist/vite/virtual-entries.js.map +1 -0
  808. package/package.json +6 -6
  809. package/skills/cache-guide/SKILL.md +30 -15
  810. package/skills/hooks/SKILL.md +2 -0
  811. package/skills/links/SKILL.md +2 -0
  812. package/skills/loader/SKILL.md +1 -1
  813. package/skills/middleware/SKILL.md +3 -3
  814. package/skills/mime-routes/SKILL.md +27 -0
  815. package/skills/observability/SKILL.md +3 -1
  816. package/skills/prerender/SKILL.md +13 -13
  817. package/skills/rango/SKILL.md +9 -0
  818. package/skills/response-routes/SKILL.md +27 -3
  819. package/skills/router-setup/SKILL.md +3 -3
  820. package/skills/typesafety/SKILL.md +186 -31
  821. package/src/__augment-tests__/augment.ts +37 -0
  822. package/src/__augment-tests__/augmented.check.ts +64 -0
  823. package/src/browser/index.ts +3 -3
  824. package/src/browser/react/location-state-shared.ts +3 -3
  825. package/src/browser/rsc-router.tsx +14 -14
  826. package/src/browser/segment-structure-assert.ts +2 -2
  827. package/src/build/generate-manifest.ts +3 -3
  828. package/src/build/route-types/codegen.ts +4 -4
  829. package/src/build/route-types/include-resolution.ts +1 -1
  830. package/src/build/route-types/per-module-writer.ts +3 -3
  831. package/src/build/route-types/router-processing.ts +4 -4
  832. package/src/build/route-types/scan-filter.ts +1 -1
  833. package/src/errors.ts +1 -1
  834. package/src/handle.ts +2 -2
  835. package/src/href-client.ts +1 -1
  836. package/src/index.rsc.ts +2 -2
  837. package/src/loader.rsc.ts +1 -1
  838. package/src/loader.ts +1 -1
  839. package/src/prerender.ts +4 -4
  840. package/src/route-definition/dsl-helpers.ts +2 -2
  841. package/src/route-definition/helpers-types.ts +2 -2
  842. package/src/router/error-handling.ts +1 -1
  843. package/src/router/lazy-includes.ts +2 -2
  844. package/src/router/metrics.ts +1 -1
  845. package/src/router/middleware-types.ts +1 -1
  846. package/src/router/prerender-match.ts +1 -1
  847. package/src/router/router-interfaces.ts +34 -28
  848. package/src/router/router-options.ts +1 -1
  849. package/src/router/router-registry.ts +2 -5
  850. package/src/router/segment-resolution/fresh.ts +2 -2
  851. package/src/router/segment-resolution/revalidation.ts +2 -2
  852. package/src/router.ts +13 -16
  853. package/src/rsc/handler-context.ts +2 -2
  854. package/src/rsc/index.ts +1 -1
  855. package/src/rsc/types.ts +2 -2
  856. package/src/search-params.ts +4 -4
  857. package/src/server/context.ts +16 -16
  858. package/src/static-handler.ts +1 -1
  859. package/src/types/global-namespace.ts +39 -26
  860. package/src/types/handler-context.ts +3 -3
  861. package/src/urls/path-helper-types.ts +2 -2
  862. package/src/urls/pattern-types.ts +34 -0
  863. package/src/vite/discovery/bundle-postprocess.ts +6 -6
  864. package/src/vite/discovery/discover-routers.ts +3 -3
  865. package/src/vite/discovery/discovery-errors.ts +1 -1
  866. package/src/vite/discovery/prerender-collection.ts +19 -25
  867. package/src/vite/discovery/route-types-writer.ts +3 -3
  868. package/src/vite/plugins/cloudflare-protocol-stub.ts +1 -1
  869. package/src/vite/plugins/expose-action-id.ts +2 -2
  870. package/src/vite/plugins/expose-id-utils.ts +12 -8
  871. package/src/vite/plugins/expose-ids/export-analysis.ts +33 -9
  872. package/src/vite/plugins/expose-internal-ids.ts +1 -1
  873. package/src/vite/plugins/performance-tracks.ts +12 -16
  874. package/src/vite/plugins/use-cache-transform.ts +1 -1
  875. package/src/vite/plugins/version-plugin.ts +2 -2
  876. package/src/vite/plugins/virtual-entries.ts +2 -2
  877. package/src/vite/rango.ts +11 -11
  878. package/src/vite/router-discovery.ts +15 -19
  879. package/src/vite/utils/ast-handler-extract.ts +15 -15
  880. package/src/vite/utils/bundle-analysis.ts +4 -2
  881. package/src/vite/utils/shared-utils.ts +26 -22
@@ -776,6 +776,8 @@ function MountInfo() {
776
776
 
777
777
  Mount-aware local reverse for client components. Import the generated `routes` map from a `urls()` module's `.gen.ts` and call `reverse(".name", params?)`. Auto-fills params from `useParams()`; explicit params override.
778
778
 
779
+ > Per-module `*.gen.ts` files are **CLI opt-in and not Vite-watched** — run `rango generate <urls-file>` (or wire it into `predev`) and re-run it whenever the module's routes change. See `/links` for the full generated-file setup and exposure-boundary rules.
780
+
779
781
  ```tsx
780
782
  "use client";
781
783
  import { Link, useReverse } from "@rangojs/router/client";
@@ -263,6 +263,8 @@ function MountInfo() {
263
263
 
264
264
  Hook that returns a typed local reverse function for a `routes` map imported from a generated `.gen.ts` next to a `urls()` module. The route map is the **exposure boundary** — `useReverse` only knows about names in that map, never the full app manifest.
265
265
 
266
+ > Import the per-module `routes` (e.g. `urls/blog.gen.ts`), **not** `router.named-routes.gen.ts`. The named-routes file is the whole app manifest and is server-only data — importing it into a client component pulls every route name into the client bundle.
267
+
266
268
  ```tsx
267
269
  "use client";
268
270
  import { Link, useReverse } from "@rangojs/router/client";
@@ -185,7 +185,7 @@ export const ProductLoader = createLoader(async (ctx) => {
185
185
  // Request headers
186
186
  const auth = ctx.request.headers.get("Authorization");
187
187
 
188
- // Variables set by middleware (from RSCRouter.Vars augmentation)
188
+ // Variables set by middleware (from Rango.Vars augmentation)
189
189
  const user = ctx.get("user");
190
190
 
191
191
  // Type-checked URLs for payloads. `.name` resolves within the current
@@ -196,7 +196,7 @@ export const myMiddleware: Middleware = async (ctx, next) => {
196
196
  ctx.env.DB; // D1Database
197
197
  ctx.env.KV; // KVNamespace
198
198
 
199
- // Set variables for downstream handlers (typed via RSCRouter.Vars)
199
+ // Set variables for downstream handlers (typed via Rango.Vars)
200
200
  ctx.set("user", { id: "123", name: "John" });
201
201
 
202
202
  // Continue to next middleware/handler
@@ -237,8 +237,8 @@ const Dashboard: Handler<"dashboard"> = (ctx) => {
237
237
  ```
238
238
 
239
239
  This works alongside `ctx.get("key")` / `ctx.set("key", value)` (global typing
240
- via RSCRouter.Vars augmentation). Use `createVar` for route-local or feature-scoped
241
- data; use RSCRouter.Vars for app-wide middleware state.
240
+ via Rango.Vars augmentation). Use `createVar` for route-local or feature-scoped
241
+ data; use Rango.Vars for app-wide middleware state.
242
242
 
243
243
  ## Redirect with State in Middleware
244
244
 
@@ -108,6 +108,33 @@ path.text("/api/data", () => "plain text version", { name: "dataText" }),
108
108
  Without an RSC primary, there is no `text/html` candidate — the Accept header
109
109
  picks among the response-type candidates directly.
110
110
 
111
+ ## Type Safety For Negotiated Paths
112
+
113
+ `router.named-routes.gen.ts` validates route names, params, search, `href()`, and
114
+ `ValidPaths`, but it does not carry response payload metadata. For MIME or
115
+ response payload types, use one of these surfaces:
116
+
117
+ - `RouteResponse<typeof patterns, "routeName">` for a specific response variant
118
+ by route name. This is the clearest option when several MIME variants share
119
+ one URL pattern.
120
+ - `PathResponse<"/products/:id">` for global URL-pattern lookup after the app
121
+ registers `typeof router.routeMap`:
122
+
123
+ ```typescript
124
+ // router.tsx
125
+ export const router = createRouter({ document: Document }).routes(urlpatterns);
126
+
127
+ declare global {
128
+ namespace Rango {
129
+ interface RegisteredRoutes extends typeof router.routeMap {}
130
+ }
131
+ }
132
+ ```
133
+
134
+ `RegisteredRoutes` is what exposes the richer routeMap entries containing
135
+ response payload metadata. Without it, URL-pattern response lookup has paths but
136
+ no payloads, so response types resolve to `ResponseEnvelope<never>`.
137
+
111
138
  ## How It Works
112
139
 
113
140
  1. **Build time**: `buildRouteTrie()` calls `mergeLeaves()` when multiple routes share a pattern.
@@ -17,7 +17,9 @@ Rango exposes two complementary observability surfaces:
17
17
  2. **Structured telemetry** (`telemetry`) — lifecycle events sent to a pluggable
18
18
  sink for production monitoring, OpenTelemetry, or custom metrics.
19
19
 
20
- See `packages/rangojs-router/docs/telemetry.md` for the complete event contract.
20
+ The essentials are below. The exported `TelemetryEvent` union type
21
+ (`import type { TelemetryEvent } from "@rangojs/router"`) is the full event
22
+ contract — every event kind and its fields are typed there.
21
23
 
22
24
  ## Performance timeline
23
25
 
@@ -358,16 +358,16 @@ Both error types propagate to the router's `onError` callback with phase
358
358
  The build produces per-URL timing logs:
359
359
 
360
360
  ```
361
- [rsc-router] Pre-rendering 12 URL(s) (concurrency: 4)...
362
- [rsc-router] OK /articles/hello (42ms)
363
- [rsc-router] PASS /articles/remote-only (5ms) - live fallback
364
- [rsc-router] SKIP /articles/draft-post (3ms) - Article is a draft
365
- [rsc-router] Pre-render complete: 11 done, 1 skipped (1204ms total)
366
-
367
- [rsc-router] Rendering 3 static handler(s)...
368
- [rsc-router] OK DocsLayout (28ms)
369
- [rsc-router] SKIP TocSidebar (1ms) - Not ready
370
- [rsc-router] Static render complete: 2 done, 1 skipped (120ms total)
361
+ [rango] Pre-rendering 12 URL(s) (concurrency: 4)...
362
+ [rango] OK /articles/hello (42ms)
363
+ [rango] PASS /articles/remote-only (5ms) - live fallback
364
+ [rango] SKIP /articles/draft-post (3ms) - Article is a draft
365
+ [rango] Pre-render complete: 11 done, 1 skipped (1204ms total)
366
+
367
+ [rango] Rendering 3 static handler(s)...
368
+ [rango] OK DocsLayout (28ms)
369
+ [rango] SKIP TocSidebar (1ms) - Not ready
370
+ [rango] Static render complete: 2 done, 1 skipped (120ms total)
371
371
  ```
372
372
 
373
373
  A `FAIL` line is logged per-URL when a handler throws a non-Skip error. The
@@ -463,9 +463,9 @@ export const Product = Passthrough(ProductDef, async (ctx) => {
463
463
  Passthrough entries are logged distinctly:
464
464
 
465
465
  ```
466
- [rsc-router] OK /blog/a (42ms)
467
- [rsc-router] PASS /blog/b (3ms) - live fallback
468
- [rsc-router] OK /blog/c (38ms)
466
+ [rango] OK /blog/a (42ms)
467
+ [rango] PASS /blog/b (3ms) - live fallback
468
+ [rango] OK /blog/c (38ms)
469
469
  ```
470
470
 
471
471
  ## Edge Cases and Constraints
@@ -266,6 +266,15 @@ Each file is classified by its contents:
266
266
  Directories are scanned recursively for `.ts`/`.tsx` files, skipping `node_modules`,
267
267
  dotfiles, and existing `.gen.` files.
268
268
 
269
+ > The two generated files are **not interchangeable surfaces**.
270
+ > `router.named-routes.gen.ts` augments the global `GeneratedRouteMap` for
271
+ > named-route typing (`Handler<"name">`, `ctx.reverse("name")`, prerender).
272
+ > Per-module `*.gen.ts` exports a local `routes` map for `useReverse(routes)`
273
+ > and explicit local handler typing (`Handler<".name", routes>`). Neither
274
+ > carries response payloads — response/MIME payload inference comes from
275
+ > `typeof router.routeMap` via `RegisteredRoutes`, not `*.named-routes.gen.ts`.
276
+ > See `/typesafety` for the full surface breakdown.
277
+
269
278
  ### Recursive includes
270
279
 
271
280
  The generator follows `include()` calls across files, resolving imports to build
@@ -238,7 +238,24 @@ type ProductsData = RouteResponse<typeof apiPatterns, "products">;
238
238
 
239
239
  ### PathResponse (global lookup by URL pattern)
240
240
 
241
- Look up response type from the merged route map by URL pattern:
241
+ `PathResponse` reads from `RegisteredRoutes`, which carries response payload
242
+ metadata. That surface is **not** auto-wired — without the augmentation below,
243
+ `PathResponse` falls back to the generated path/search map, or to a permissive
244
+ map when nothing is generated. Either way, it has no response payload metadata,
245
+ so response routes resolve to `ResponseEnvelope<never>`:
246
+
247
+ ```typescript
248
+ // router.tsx
249
+ export const router = createRouter({ document: Document }).routes(urlpatterns);
250
+
251
+ declare global {
252
+ namespace Rango {
253
+ interface RegisteredRoutes extends typeof router.routeMap {}
254
+ }
255
+ }
256
+ ```
257
+
258
+ With that in place, look up the response type by URL pattern:
242
259
 
243
260
  ```typescript
244
261
  import type { PathResponse } from "@rangojs/router/client";
@@ -252,6 +269,11 @@ type Home = PathResponse<"/">;
252
269
  // = ResponseEnvelope<never>
253
270
  ```
254
271
 
272
+ For local/scoped response typing without global augmentation, prefer
273
+ `RouteResponse<typeof patterns, "routeName">` (see the section above) — it reads
274
+ the response payload straight from the `urls()` patterns and needs no
275
+ `RegisteredRoutes` wiring.
276
+
255
277
  ### ParamsFor with Response Routes
256
278
 
257
279
  ```typescript
@@ -363,11 +385,13 @@ export const urlpatterns = urls(({ path, include }) => [
363
385
  import type { RouteResponse } from "@rangojs/router";
364
386
  import type { PathResponse, ParamsFor } from "@rangojs/router/client";
365
387
 
366
- // Scoped (before mount) -- use the module directly
388
+ // Scoped (before mount) -- use the module directly, no global wiring needed
367
389
  type Stats = RouteResponse<typeof blogApiPatterns, "stats">;
368
390
  // = ResponseEnvelope<{ views: number; visitors: number }>
369
391
 
370
- // After mounting -- names get prefixed
392
+ // After mounting -- names get prefixed.
393
+ // PathResponse needs `RegisteredRoutes extends typeof router.routeMap` (see above),
394
+ // otherwise it resolves to ResponseEnvelope<never>.
371
395
  type BlogStats = PathResponse<"/blog/api/stats">;
372
396
  // = ResponseEnvelope<{ views: number; visitors: number }>
373
397
 
@@ -71,7 +71,7 @@ urls(
71
71
  ## Router Options
72
72
 
73
73
  ```typescript
74
- interface RSCRouterOptions<TEnv> {
74
+ interface RangoOptions<TEnv> {
75
75
  // URL patterns from urls() function
76
76
  urls: UrlPatterns;
77
77
 
@@ -405,7 +405,7 @@ interface AppBindings {
405
405
  KV: KVNamespace;
406
406
  }
407
407
 
408
- // Variables declared via module augmentation
408
+ // Variables declared via global namespace augmentation
409
409
  interface AppVariables {
410
410
  user?: { id: string; name: string };
411
411
  }
@@ -417,7 +417,7 @@ const router = createRouter<AppBindings>({
417
417
 
418
418
  // Register types globally for implicit typing
419
419
  declare global {
420
- namespace RSCRouter {
420
+ namespace Rango {
421
421
  interface Env extends AppBindings {}
422
422
  interface Vars extends AppVariables {}
423
423
  }
@@ -37,7 +37,28 @@ available globally.
37
37
  - `typeof router.routeMap` — the real merged route map from your router
38
38
  instance, including response-route metadata such as `{ path, response }`.
39
39
  - `RegisteredRoutes` — manual global hook for exposing `typeof router.routeMap`
40
- to utilities like `href()`, `ValidPaths`, and `PathResponse`.
40
+ to global utilities that need the exact router-builder map, especially
41
+ `PathResponse`.
42
+
43
+ ### Generated Route Type Surfaces
44
+
45
+ There are three distinct typing surfaces. They are **not** interchangeable —
46
+ pick the one that matches what you need to type:
47
+
48
+ | Surface | Source | Scope | Gives | Does not give |
49
+ | ------------------- | ---------------------------------------- | ------ | ---------------------------------------- | ------------------------------------------------------------------------------------------------ |
50
+ | `GeneratedRouteMap` | `router.named-routes.gen.ts` (auto) | global | route names, path params, search schemas | response/MIME payloads |
51
+ | `routes` | per-module `*.gen.ts` (`rango generate`) | local | local names, params, search | the global app map |
52
+ | `RegisteredRoutes` | manual `extends typeof router.routeMap` | global | paths, params, **response payloads** | the `Handler`/`Prerender` default (those read `GeneratedRouteMap` to avoid a `router.tsx` cycle) |
53
+
54
+ Key consequence: `href()` and `ValidPaths` are typed from whichever map is
55
+ present — they prefer `RegisteredRoutes` when you wire it, otherwise fall back to
56
+ the auto-generated `GeneratedRouteMap`, so **`rango generate` alone gives you
57
+ path-checked `href()`** with no manual augmentation. Response and MIME payload
58
+ inference is the exception: it comes only from `typeof router.routeMap` (via
59
+ `RegisteredRoutes`), because `GeneratedRouteMap` carries paths + search but no
60
+ payloads — so `PathResponse` resolves to `ResponseEnvelope<never>` until you wire
61
+ `RegisteredRoutes`.
41
62
 
42
63
  Recommended setup:
43
64
 
@@ -50,7 +71,7 @@ import type { AppBindings, AppVars } from "./env";
50
71
  export const router = createRouter<AppBindings>({}).routes(urlpatterns);
51
72
 
52
73
  declare global {
53
- namespace RSCRouter {
74
+ namespace Rango {
54
75
  interface Env extends AppBindings {}
55
76
  interface Vars extends AppVars {}
56
77
  interface RegisteredRoutes extends typeof router.routeMap {}
@@ -58,6 +79,54 @@ declare global {
58
79
  }
59
80
  ```
60
81
 
82
+ ### Single-App Setup Checklist
83
+
84
+ For one app, keep the ambient types, generated named-routes file, and router
85
+ instance in the same TypeScript program:
86
+
87
+ ```jsonc
88
+ // tsconfig.json
89
+ {
90
+ "compilerOptions": {
91
+ "strict": true,
92
+ "moduleResolution": "bundler",
93
+ "jsx": "react-jsx",
94
+ "noEmit": true,
95
+ },
96
+ "include": ["src"],
97
+ "files": ["src/router.tsx"],
98
+ }
99
+ ```
100
+
101
+ Then generate the route types from the router file:
102
+
103
+ ```bash
104
+ npx rango generate src/router.tsx
105
+ ```
106
+
107
+ This creates `src/router.named-routes.gen.ts`, which augments
108
+ `Rango.GeneratedRouteMap`. Keep that generated file committed with the router
109
+ source. The `files` entry keeps `router.tsx` in the program even when nothing
110
+ imports it directly, so `Rango.Env`, `Rango.Vars`, and optional
111
+ `Rango.RegisteredRoutes` augmentation are visible to handlers, loaders, actions,
112
+ and client helpers.
113
+
114
+ ### Named Routes, `$$routeNames`, And `router.routeMap`
115
+
116
+ There are two runtime/type surfaces with similar names:
117
+
118
+ - `router.named-routes.gen.ts` exports `NamedRoutes` and augments
119
+ `Rango.GeneratedRouteMap`. The Vite plugin imports that file internally and
120
+ injects it as `$$routeNames` so `router.reverse` has the static route-name map.
121
+ App code should not pass or import `$$routeNames` directly.
122
+ - `router.routeMap` is the public router instance property for type extraction.
123
+ Use `typeof router.routeMap` when augmenting `Rango.RegisteredRoutes` for
124
+ global response payload helpers such as `PathResponse`.
125
+
126
+ Do not document or use a public `router.routeNames` API unless one is
127
+ intentionally added. Today, the public extraction surface is `router.routeMap`;
128
+ the generated file and `$$routeNames` are build machinery.
129
+
61
130
  ## Route Definition with Type-Safe Names
62
131
 
63
132
  ```typescript
@@ -127,12 +196,15 @@ function ShopNav() {
127
196
  }
128
197
  ```
129
198
 
130
- `href()` and path-based response utilities read from `RegisteredRoutes`, so if
131
- you want them typed globally you should augment:
199
+ `href()` and `ValidPaths` read from `RegisteredRoutes` when you augment it,
200
+ otherwise from the auto-generated `GeneratedRouteMap` so `rango generate` alone
201
+ type-checks `href()` paths with no manual augmentation. The augmentation below is
202
+ only needed for **`PathResponse`** (response-payload inference), which
203
+ `GeneratedRouteMap` cannot provide:
132
204
 
133
205
  ```typescript
134
206
  declare global {
135
- namespace RSCRouter {
207
+ namespace Rango {
136
208
  interface RegisteredRoutes extends typeof router.routeMap {}
137
209
  }
138
210
  }
@@ -155,7 +227,7 @@ export interface AppBindings {
155
227
  AI: Ai;
156
228
  }
157
229
 
158
- // Variables set by middleware — declared via module augmentation
230
+ // Variables set by middleware — declared via global namespace augmentation
159
231
  export interface AppVariables {
160
232
  user?: { id: string; email: string; role: string };
161
233
  requestId?: string;
@@ -175,7 +247,7 @@ const router = createRouter<AppBindings>({
175
247
 
176
248
  // Register bindings and variables globally for implicit typing
177
249
  declare global {
178
- namespace RSCRouter {
250
+ namespace Rango {
179
251
  interface Env extends AppBindings {}
180
252
  interface Vars extends AppVariables {}
181
253
  }
@@ -196,7 +268,7 @@ export const authMiddleware: Middleware = async (ctx, next) => {
196
268
  // loaders - typed context
197
269
  export const UserLoader = createLoader(async (ctx) => {
198
270
  const db = ctx.env.DB; // D1Database (plain bindings)
199
- const userId = ctx.get("user")?.id; // from RSCRouter.Vars
271
+ const userId = ctx.get("user")?.id; // from Rango.Vars
200
272
  return db.prepare("SELECT * FROM users WHERE id = ?").bind(userId).first();
201
273
  });
202
274
  ```
@@ -208,7 +280,7 @@ Register environment types globally for implicit typing:
208
280
  ```typescript
209
281
  // router.tsx
210
282
  declare global {
211
- namespace RSCRouter {
283
+ namespace Rango {
212
284
  interface Env extends AppBindings {}
213
285
  interface Vars extends AppVariables {}
214
286
  }
@@ -220,8 +292,8 @@ Now handlers have typed context without explicit imports:
220
292
  ```typescript
221
293
  // In loaders
222
294
  export const DashboardLoader = createLoader(async (ctx) => {
223
- // ctx.env.DB is typed from global RSCRouter.Env
224
- // ctx.get("user") is typed from global RSCRouter.Vars
295
+ // ctx.env.DB is typed from global Rango.Env
296
+ // ctx.get("user") is typed from global Rango.Vars
225
297
  const user = ctx.get("user");
226
298
  return { user };
227
299
  });
@@ -259,15 +331,21 @@ This avoids circular references because `Handler` defaults to `GeneratedRouteMap
259
331
  (from `router.named-routes.gen.ts`) instead of `RegisteredRoutes` (which depends on `router.tsx`).
260
332
 
261
333
  You can also pass an explicit route map for per-module isolation (opt-in,
262
- after running `npx rango generate`):
334
+ after running `npx rango generate`). With a local map, the route name is
335
+ **dot-prefixed** so params and search resolve from `routes`, not the global map:
263
336
 
264
337
  ```typescript
265
338
  import type { Handler } from "@rangojs/router";
266
339
  import type { routes } from "./urls.gen.js";
267
340
 
268
- export const SearchPage: Handler<"search", routes> = (ctx) => { ... };
341
+ export const SearchPage: Handler<".search", routes> = (ctx) => { ... };
269
342
  ```
270
343
 
344
+ Note the difference: `Handler<"search">` (no dot) resolves against the global
345
+ `GeneratedRouteMap`; `Handler<".search", routes>` resolves against the local
346
+ `routes` map. Mixing them — `Handler<"search", routes>` — silently ignores
347
+ `routes` for param/search inference and only uses it for local `ctx.reverse(".x")`.
348
+
271
349
  Supported types: `"string"`, `"number"`, `"boolean"`, with `?` suffix for optional.
272
350
  Values are automatically coerced from query string (e.g., `"2"` becomes `2` for numbers).
273
351
  Routes without a `search` schema keep the standard `URLSearchParams` behavior.
@@ -325,11 +403,18 @@ export const NamedRoutes = {
325
403
  } as const;
326
404
  ```
327
405
 
328
- You never open a `.gen.ts` by hand the generated types exist only to make call
329
- sites honest. Treat the generated machinery as invisible: don't import from
330
- `*.gen.ts`, don't reach for `RSCRouter.GeneratedRouteMap` directly, and if a type
331
- error points at the generated map instead of your call site, that's a smell — fix
332
- the call site (or regenerate), never edit the generated file.
406
+ You never open a `.gen.ts` by hand. Treat the generated types as call-site
407
+ honesty checks, not modules to read:
408
+
409
+ - **Do not import `router.named-routes.gen.ts` directly**, and don't reach for
410
+ `Rango.GeneratedRouteMap`. It is the whole-app manifest, auto-wired
411
+ globally — `Handler<"name">` and `ctx.reverse("name")` already see it.
412
+ - **Per-module `*.gen.ts` imports are fine** — they are the opt-in local-route
413
+ pattern for `useReverse(routes)` and explicit local handler typing
414
+ (`Handler<".name", routes>`). See `/links`.
415
+
416
+ If a type error points at a generated map instead of your call site, that's a
417
+ smell — fix the call site (or regenerate), never edit the generated file.
333
418
 
334
419
  ## Loader Type Safety
335
420
 
@@ -420,9 +505,9 @@ export function PaginationLayout(ctx: any) {
420
505
  }
421
506
  ```
422
507
 
423
- ### Why not just use RSCRouter.Vars?
508
+ ### Why not just use Rango.Vars?
424
509
 
425
- `RSCRouter.Vars` (via module augmentation) provides app-global typing for
510
+ `Rango.Vars` (via global namespace augmentation) provides app-global typing for
426
511
  `ctx.get("key")` / `ctx.set("key", value)`. It works for middleware state
427
512
  shared app-wide. `createVar<T>()` is for route-local or feature-scoped
428
513
  context -- the producer and consumer import the same token, creating a
@@ -570,9 +655,37 @@ function ProductHeader() {
570
655
 
571
656
  ## Multi-Project tsconfig Setup
572
657
 
573
- For monorepos or multi-app setups, use a shared base tsconfig. Each app only needs
574
- to extend the base and add its `router.tsx` to `files` so TypeScript picks up the
575
- global type declarations (like `RSCRouter.Env`).
658
+ For monorepos or multi-app setups, each app should have its own TypeScript
659
+ program. Do not typecheck two Rango apps with different `Rango.Env`,
660
+ `Rango.Vars`, or `Rango.RegisteredRoutes` declarations in one tsconfig, because
661
+ ambient global interfaces merge across the whole program.
662
+
663
+ ### Multiple routers in one program
664
+
665
+ `Rango.GeneratedRouteMap` is a **single global interface**. Each router's
666
+ generated `router.named-routes.gen.ts` augments it, so two routers in the **same
667
+ TS program** that define overlapping route names (e.g. both have a `home`) make
668
+ the augmentations collide:
669
+
670
+ ```text
671
+ Interface 'GeneratedRouteMap' cannot simultaneously extend ...
672
+ Named property 'home' ... are not identical.
673
+ ```
674
+
675
+ This is the multi-router / host-router case. Resolve it by:
676
+
677
+ - **Separate TS programs** — give each router its own tsconfig (as below) so only
678
+ one generated map is in scope per program. Recommended.
679
+ - **Unique route-name prefixes** — name routes per router (`appA.home`,
680
+ `appB.home`) so the merged global map has no duplicate keys.
681
+
682
+ A single global generated map is a single-router convenience; global named-route
683
+ typing across multiple routers in one program is not supported today (it would
684
+ need per-router scoping in the generated map).
685
+
686
+ Use a shared base tsconfig for common compiler options, then make every app
687
+ tsconfig include its own source tree, its own `router.tsx`, and the generated
688
+ `router.named-routes.gen.ts` that lives beside that router.
576
689
 
577
690
  ```jsonc
578
691
  // tsconfig.base.json (root)
@@ -611,10 +724,49 @@ global type declarations (like `RSCRouter.Env`).
611
724
  }
612
725
  ```
613
726
 
614
- The `files` array ensures `router.tsx` (which contains `declare global { namespace RSCRouter { interface Env; interface Vars } }`)
615
- is always included in the compilation even if nothing directly imports it. Route types come from the
616
- auto-generated `*.named-routes.gen.ts` file (via `rango generate`), not from manual declaration.
617
- Each app gets its own typed environment without interfering with other apps.
727
+ Run generation per app:
728
+
729
+ ```bash
730
+ npx rango generate apps/shop/src/router.tsx
731
+ npx rango generate apps/blog/src/router.tsx
732
+ ```
733
+
734
+ If an app has multiple tsconfigs (`tsconfig.app.json`, `tsconfig.test.json`,
735
+ `tsconfig.worker.json`), every tsconfig that typechecks Rango handlers,
736
+ components, loaders, actions, or client navigation must see the same app-local
737
+ type surfaces:
738
+
739
+ ```jsonc
740
+ // apps/shop/tsconfig.test.json
741
+ {
742
+ "extends": "./tsconfig.json",
743
+ "include": ["src", "tests"],
744
+ "files": ["src/router.tsx"],
745
+ }
746
+ ```
747
+
748
+ The `files` array ensures `router.tsx` is always included even if nothing
749
+ directly imports it. The generated `router.named-routes.gen.ts` is normally
750
+ covered by `include: ["src"]`; if a tsconfig uses a narrow `include`, add the
751
+ generated file explicitly. Each app gets its own typed environment and named
752
+ route map without interfering with other apps.
753
+
754
+ For response and MIME payload lookup in each app, augment `RegisteredRoutes`
755
+ inside that app's router file:
756
+
757
+ ```typescript
758
+ // apps/shop/src/router.tsx
759
+ export const router = createRouter<ShopEnv>({ document: Document }).routes(
760
+ urlpatterns,
761
+ );
762
+
763
+ declare global {
764
+ namespace Rango {
765
+ interface Env extends ShopEnv {}
766
+ interface RegisteredRoutes extends typeof router.routeMap {}
767
+ }
768
+ }
769
+ ```
618
770
 
619
771
  ## Complete Type-Safe Setup
620
772
 
@@ -650,7 +802,7 @@ const router = createRouter<AppBindings>({
650
802
 
651
803
  // Register bindings and variables globally for implicit typing
652
804
  declare global {
653
- namespace RSCRouter {
805
+ namespace Rango {
654
806
  interface Env extends AppBindings {}
655
807
  interface Vars extends AppVariables {}
656
808
  }
@@ -661,13 +813,16 @@ export default router;
661
813
 
662
814
  // 4. Run `npx rango generate src/router.tsx` to generate
663
815
  // router.named-routes.gen.ts (auto-registers GeneratedRouteMap globally).
664
- // No manual RegisteredRoutes declaration needed.
816
+ // No manual RegisteredRoutes declaration is needed for named-route handlers,
817
+ // ctx.reverse, prerender, href(), or ValidPaths. Add `RegisteredRoutes
818
+ // extends typeof router.routeMap` when global response payload helpers such
819
+ // as PathResponse need the richer router.routeMap metadata.
665
820
 
666
821
  // 5. loaders/*.ts - Type-safe loaders
667
822
  export const ProductLoader = createLoader(async (ctx) => {
668
823
  // ctx.params: { slug: string }
669
- // ctx.get("user"): User | undefined (from RSCRouter.Vars)
670
- // ctx.env.DB: D1Database (plain bindings from RSCRouter.Env)
824
+ // ctx.get("user"): User | undefined (from Rango.Vars)
825
+ // ctx.env.DB: D1Database (plain bindings from Rango.Env)
671
826
  return { product: await fetchProduct(ctx.params.slug) };
672
827
  });
673
828
 
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Simulates a consumer augmenting the Rango global namespace, the way a real
3
+ * app does in router.tsx (Env/Vars) and via the generated router.named-routes.gen.ts
4
+ * (GeneratedRouteMap).
5
+ *
6
+ * This file is compiled ONLY by tsconfig.augment-check.json and is excluded from
7
+ * the main program, so the global augmentation here does not leak into the rest
8
+ * of the type tests, which assert the UNAUGMENTED fallbacks
9
+ * (see src/__tests__/augmentation-fallback-types.test.ts).
10
+ */
11
+
12
+ export interface TestBindings {
13
+ DB: { query: (sql: string) => string };
14
+ SECRET: string;
15
+ }
16
+
17
+ export interface TestVars {
18
+ user?: { id: string; role: "admin" | "user" };
19
+ requestId?: string;
20
+ }
21
+
22
+ declare global {
23
+ namespace Rango {
24
+ interface Env extends TestBindings {}
25
+ interface Vars extends TestVars {}
26
+ // Mirrors the shape emitted into router.named-routes.gen.ts: plain string
27
+ // patterns, plus { path, search } objects for routes with a search schema.
28
+ interface GeneratedRouteMap {
29
+ readonly home: "/";
30
+ readonly "blog.post": "/blog/:slug";
31
+ readonly search: {
32
+ readonly path: "/search";
33
+ readonly search: { readonly q: "string"; readonly page: "number?" };
34
+ };
35
+ }
36
+ }
37
+ }