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

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 (824) hide show
  1. package/README.md +1 -1
  2. package/dist/vite/index.js +12 -8
  3. package/package.json +1 -1
  4. package/skills/links/SKILL.md +11 -1
  5. package/skills/mime-routes/SKILL.md +2 -2
  6. package/skills/response-routes/SKILL.md +39 -14
  7. package/skills/typesafety/SKILL.md +98 -11
  8. package/src/__augment-tests__/augment.ts +44 -0
  9. package/src/__augment-tests__/augmented.check.ts +56 -3
  10. package/src/browser/react/use-handle.ts +17 -9
  11. package/src/client.tsx +4 -7
  12. package/src/href-client.ts +135 -18
  13. package/src/index.rsc.ts +2 -2
  14. package/src/index.ts +2 -2
  15. package/src/serialize.ts +243 -0
  16. package/src/urls/type-extraction.ts +6 -1
  17. package/src/use-loader.tsx +6 -4
  18. package/src/vite/discovery/state.ts +4 -4
  19. package/src/vite/router-discovery.ts +11 -10
  20. package/src/vite/utils/forward-user-plugins.ts +46 -17
  21. package/dist/__internal.d.ts +0 -83
  22. package/dist/__internal.d.ts.map +0 -1
  23. package/dist/__internal.js +0 -19
  24. package/dist/__internal.js.map +0 -1
  25. package/dist/__mocks__/version.d.ts +0 -7
  26. package/dist/__mocks__/version.d.ts.map +0 -1
  27. package/dist/__mocks__/version.js +0 -7
  28. package/dist/__mocks__/version.js.map +0 -1
  29. package/dist/__tests__/client-href.test.d.ts +0 -2
  30. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  31. package/dist/__tests__/client-href.test.js +0 -74
  32. package/dist/__tests__/client-href.test.js.map +0 -1
  33. package/dist/__tests__/component-utils.test.d.ts +0 -2
  34. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  35. package/dist/__tests__/component-utils.test.js +0 -51
  36. package/dist/__tests__/component-utils.test.js.map +0 -1
  37. package/dist/__tests__/event-controller.test.d.ts +0 -2
  38. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  39. package/dist/__tests__/event-controller.test.js +0 -538
  40. package/dist/__tests__/event-controller.test.js.map +0 -1
  41. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  42. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  43. package/dist/__tests__/helpers/route-tree.js +0 -374
  44. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  45. package/dist/__tests__/match-result.test.d.ts +0 -2
  46. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  47. package/dist/__tests__/match-result.test.js +0 -154
  48. package/dist/__tests__/match-result.test.js.map +0 -1
  49. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  50. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  51. package/dist/__tests__/navigation-store.test.js +0 -440
  52. package/dist/__tests__/navigation-store.test.js.map +0 -1
  53. package/dist/__tests__/partial-update.test.d.ts +0 -2
  54. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  55. package/dist/__tests__/partial-update.test.js +0 -1009
  56. package/dist/__tests__/partial-update.test.js.map +0 -1
  57. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  58. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  59. package/dist/__tests__/reverse-types.test.js +0 -656
  60. package/dist/__tests__/reverse-types.test.js.map +0 -1
  61. package/dist/__tests__/route-definition.test.d.ts +0 -2
  62. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  63. package/dist/__tests__/route-definition.test.js +0 -55
  64. package/dist/__tests__/route-definition.test.js.map +0 -1
  65. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  66. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  67. package/dist/__tests__/router-helpers.test.js +0 -377
  68. package/dist/__tests__/router-helpers.test.js.map +0 -1
  69. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  70. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  71. package/dist/__tests__/router-integration-2.test.js +0 -426
  72. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  73. package/dist/__tests__/router-integration.test.d.ts +0 -2
  74. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  75. package/dist/__tests__/router-integration.test.js +0 -1051
  76. package/dist/__tests__/router-integration.test.js.map +0 -1
  77. package/dist/__tests__/search-params.test.d.ts +0 -5
  78. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  79. package/dist/__tests__/search-params.test.js +0 -306
  80. package/dist/__tests__/search-params.test.js.map +0 -1
  81. package/dist/__tests__/segment-system.test.d.ts +0 -2
  82. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  83. package/dist/__tests__/segment-system.test.js +0 -627
  84. package/dist/__tests__/segment-system.test.js.map +0 -1
  85. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  86. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  87. package/dist/__tests__/static-handler-types.test.js +0 -63
  88. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  89. package/dist/__tests__/urls.test.d.ts +0 -2
  90. package/dist/__tests__/urls.test.d.ts.map +0 -1
  91. package/dist/__tests__/urls.test.js +0 -421
  92. package/dist/__tests__/urls.test.js.map +0 -1
  93. package/dist/__tests__/use-mount.test.d.ts +0 -2
  94. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  95. package/dist/__tests__/use-mount.test.js +0 -35
  96. package/dist/__tests__/use-mount.test.js.map +0 -1
  97. package/dist/bin/rango.d.ts +0 -2
  98. package/dist/bin/rango.d.ts.map +0 -1
  99. package/dist/bin/rango.js.map +0 -1
  100. package/dist/browser/event-controller.d.ts +0 -191
  101. package/dist/browser/event-controller.d.ts.map +0 -1
  102. package/dist/browser/event-controller.js +0 -559
  103. package/dist/browser/event-controller.js.map +0 -1
  104. package/dist/browser/index.d.ts +0 -2
  105. package/dist/browser/index.d.ts.map +0 -1
  106. package/dist/browser/index.js +0 -14
  107. package/dist/browser/index.js.map +0 -1
  108. package/dist/browser/link-interceptor.d.ts +0 -38
  109. package/dist/browser/link-interceptor.d.ts.map +0 -1
  110. package/dist/browser/link-interceptor.js +0 -99
  111. package/dist/browser/link-interceptor.js.map +0 -1
  112. package/dist/browser/logging.d.ts +0 -10
  113. package/dist/browser/logging.d.ts.map +0 -1
  114. package/dist/browser/logging.js +0 -29
  115. package/dist/browser/logging.js.map +0 -1
  116. package/dist/browser/lru-cache.d.ts +0 -17
  117. package/dist/browser/lru-cache.d.ts.map +0 -1
  118. package/dist/browser/lru-cache.js +0 -50
  119. package/dist/browser/lru-cache.js.map +0 -1
  120. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  121. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  122. package/dist/browser/merge-segment-loaders.js +0 -102
  123. package/dist/browser/merge-segment-loaders.js.map +0 -1
  124. package/dist/browser/navigation-bridge.d.ts +0 -102
  125. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  126. package/dist/browser/navigation-bridge.js +0 -708
  127. package/dist/browser/navigation-bridge.js.map +0 -1
  128. package/dist/browser/navigation-client.d.ts +0 -25
  129. package/dist/browser/navigation-client.d.ts.map +0 -1
  130. package/dist/browser/navigation-client.js +0 -157
  131. package/dist/browser/navigation-client.js.map +0 -1
  132. package/dist/browser/navigation-store.d.ts +0 -101
  133. package/dist/browser/navigation-store.d.ts.map +0 -1
  134. package/dist/browser/navigation-store.js +0 -625
  135. package/dist/browser/navigation-store.js.map +0 -1
  136. package/dist/browser/partial-update.d.ts +0 -75
  137. package/dist/browser/partial-update.d.ts.map +0 -1
  138. package/dist/browser/partial-update.js +0 -426
  139. package/dist/browser/partial-update.js.map +0 -1
  140. package/dist/browser/react/Link.d.ts +0 -86
  141. package/dist/browser/react/Link.d.ts.map +0 -1
  142. package/dist/browser/react/Link.js +0 -128
  143. package/dist/browser/react/Link.js.map +0 -1
  144. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  145. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  146. package/dist/browser/react/NavigationProvider.js +0 -216
  147. package/dist/browser/react/NavigationProvider.js.map +0 -1
  148. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  149. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  150. package/dist/browser/react/ScrollRestoration.js +0 -57
  151. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  152. package/dist/browser/react/context.d.ts +0 -46
  153. package/dist/browser/react/context.d.ts.map +0 -1
  154. package/dist/browser/react/context.js +0 -10
  155. package/dist/browser/react/context.js.map +0 -1
  156. package/dist/browser/react/index.d.ts +0 -11
  157. package/dist/browser/react/index.d.ts.map +0 -1
  158. package/dist/browser/react/index.js +0 -22
  159. package/dist/browser/react/index.js.map +0 -1
  160. package/dist/browser/react/location-state-shared.d.ts +0 -63
  161. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  162. package/dist/browser/react/location-state-shared.js +0 -81
  163. package/dist/browser/react/location-state-shared.js.map +0 -1
  164. package/dist/browser/react/location-state.d.ts +0 -23
  165. package/dist/browser/react/location-state.d.ts.map +0 -1
  166. package/dist/browser/react/location-state.js +0 -29
  167. package/dist/browser/react/location-state.js.map +0 -1
  168. package/dist/browser/react/mount-context.d.ts +0 -24
  169. package/dist/browser/react/mount-context.d.ts.map +0 -1
  170. package/dist/browser/react/mount-context.js +0 -24
  171. package/dist/browser/react/mount-context.js.map +0 -1
  172. package/dist/browser/react/use-action.d.ts +0 -64
  173. package/dist/browser/react/use-action.d.ts.map +0 -1
  174. package/dist/browser/react/use-action.js +0 -134
  175. package/dist/browser/react/use-action.js.map +0 -1
  176. package/dist/browser/react/use-client-cache.d.ts +0 -41
  177. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  178. package/dist/browser/react/use-client-cache.js +0 -39
  179. package/dist/browser/react/use-client-cache.js.map +0 -1
  180. package/dist/browser/react/use-handle.d.ts +0 -31
  181. package/dist/browser/react/use-handle.d.ts.map +0 -1
  182. package/dist/browser/react/use-handle.js +0 -144
  183. package/dist/browser/react/use-handle.js.map +0 -1
  184. package/dist/browser/react/use-href.d.ts +0 -33
  185. package/dist/browser/react/use-href.d.ts.map +0 -1
  186. package/dist/browser/react/use-href.js +0 -39
  187. package/dist/browser/react/use-href.js.map +0 -1
  188. package/dist/browser/react/use-link-status.d.ts +0 -37
  189. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  190. package/dist/browser/react/use-link-status.js +0 -99
  191. package/dist/browser/react/use-link-status.js.map +0 -1
  192. package/dist/browser/react/use-mount.d.ts +0 -25
  193. package/dist/browser/react/use-mount.d.ts.map +0 -1
  194. package/dist/browser/react/use-mount.js +0 -30
  195. package/dist/browser/react/use-mount.js.map +0 -1
  196. package/dist/browser/react/use-navigation.d.ts +0 -27
  197. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  198. package/dist/browser/react/use-navigation.js +0 -87
  199. package/dist/browser/react/use-navigation.js.map +0 -1
  200. package/dist/browser/react/use-segments.d.ts +0 -38
  201. package/dist/browser/react/use-segments.d.ts.map +0 -1
  202. package/dist/browser/react/use-segments.js +0 -130
  203. package/dist/browser/react/use-segments.js.map +0 -1
  204. package/dist/browser/request-controller.d.ts +0 -26
  205. package/dist/browser/request-controller.d.ts.map +0 -1
  206. package/dist/browser/request-controller.js +0 -147
  207. package/dist/browser/request-controller.js.map +0 -1
  208. package/dist/browser/rsc-router.d.ts +0 -129
  209. package/dist/browser/rsc-router.d.ts.map +0 -1
  210. package/dist/browser/rsc-router.js +0 -195
  211. package/dist/browser/rsc-router.js.map +0 -1
  212. package/dist/browser/scroll-restoration.d.ts +0 -93
  213. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  214. package/dist/browser/scroll-restoration.js +0 -321
  215. package/dist/browser/scroll-restoration.js.map +0 -1
  216. package/dist/browser/segment-structure-assert.d.ts +0 -17
  217. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  218. package/dist/browser/segment-structure-assert.js +0 -59
  219. package/dist/browser/segment-structure-assert.js.map +0 -1
  220. package/dist/browser/server-action-bridge.d.ts +0 -26
  221. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  222. package/dist/browser/server-action-bridge.js +0 -668
  223. package/dist/browser/server-action-bridge.js.map +0 -1
  224. package/dist/browser/shallow.d.ts +0 -12
  225. package/dist/browser/shallow.d.ts.map +0 -1
  226. package/dist/browser/shallow.js +0 -34
  227. package/dist/browser/shallow.js.map +0 -1
  228. package/dist/browser/types.d.ts +0 -369
  229. package/dist/browser/types.d.ts.map +0 -1
  230. package/dist/browser/types.js +0 -2
  231. package/dist/browser/types.js.map +0 -1
  232. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  233. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  234. package/dist/build/__tests__/generate-cli.test.js +0 -237
  235. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  236. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  237. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  238. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  239. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  240. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  241. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  242. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  243. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  244. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  245. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  246. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  247. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  248. package/dist/build/generate-manifest.d.ts +0 -81
  249. package/dist/build/generate-manifest.d.ts.map +0 -1
  250. package/dist/build/generate-manifest.js +0 -276
  251. package/dist/build/generate-manifest.js.map +0 -1
  252. package/dist/build/generate-route-types.d.ts +0 -115
  253. package/dist/build/generate-route-types.d.ts.map +0 -1
  254. package/dist/build/generate-route-types.js +0 -740
  255. package/dist/build/generate-route-types.js.map +0 -1
  256. package/dist/build/index.d.ts +0 -21
  257. package/dist/build/index.d.ts.map +0 -1
  258. package/dist/build/index.js +0 -21
  259. package/dist/build/index.js.map +0 -1
  260. package/dist/build/route-trie.d.ts +0 -71
  261. package/dist/build/route-trie.d.ts.map +0 -1
  262. package/dist/build/route-trie.js +0 -175
  263. package/dist/build/route-trie.js.map +0 -1
  264. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  265. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  266. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  267. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  268. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  269. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  270. package/dist/cache/__tests__/document-cache.test.js +0 -345
  271. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  272. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  273. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  274. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  275. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  276. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  277. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  278. package/dist/cache/__tests__/memory-store.test.js +0 -367
  279. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  280. package/dist/cache/cache-scope.d.ts +0 -102
  281. package/dist/cache/cache-scope.d.ts.map +0 -1
  282. package/dist/cache/cache-scope.js +0 -440
  283. package/dist/cache/cache-scope.js.map +0 -1
  284. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  285. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  286. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  287. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  288. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  289. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  290. package/dist/cache/cf/cf-cache-store.js +0 -242
  291. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  292. package/dist/cache/cf/index.d.ts +0 -14
  293. package/dist/cache/cf/index.d.ts.map +0 -1
  294. package/dist/cache/cf/index.js +0 -17
  295. package/dist/cache/cf/index.js.map +0 -1
  296. package/dist/cache/document-cache.d.ts +0 -64
  297. package/dist/cache/document-cache.d.ts.map +0 -1
  298. package/dist/cache/document-cache.js +0 -228
  299. package/dist/cache/document-cache.js.map +0 -1
  300. package/dist/cache/index.d.ts +0 -19
  301. package/dist/cache/index.d.ts.map +0 -1
  302. package/dist/cache/index.js +0 -21
  303. package/dist/cache/index.js.map +0 -1
  304. package/dist/cache/memory-segment-store.d.ts +0 -110
  305. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  306. package/dist/cache/memory-segment-store.js +0 -117
  307. package/dist/cache/memory-segment-store.js.map +0 -1
  308. package/dist/cache/memory-store.d.ts +0 -41
  309. package/dist/cache/memory-store.d.ts.map +0 -1
  310. package/dist/cache/memory-store.js +0 -191
  311. package/dist/cache/memory-store.js.map +0 -1
  312. package/dist/cache/types.d.ts +0 -317
  313. package/dist/cache/types.d.ts.map +0 -1
  314. package/dist/cache/types.js +0 -12
  315. package/dist/cache/types.js.map +0 -1
  316. package/dist/client.d.ts +0 -248
  317. package/dist/client.d.ts.map +0 -1
  318. package/dist/client.js +0 -367
  319. package/dist/client.js.map +0 -1
  320. package/dist/client.rsc.d.ts +0 -26
  321. package/dist/client.rsc.d.ts.map +0 -1
  322. package/dist/client.rsc.js +0 -46
  323. package/dist/client.rsc.js.map +0 -1
  324. package/dist/component-utils.d.ts +0 -36
  325. package/dist/component-utils.d.ts.map +0 -1
  326. package/dist/component-utils.js +0 -61
  327. package/dist/component-utils.js.map +0 -1
  328. package/dist/components/DefaultDocument.d.ts +0 -13
  329. package/dist/components/DefaultDocument.d.ts.map +0 -1
  330. package/dist/components/DefaultDocument.js +0 -15
  331. package/dist/components/DefaultDocument.js.map +0 -1
  332. package/dist/debug.d.ts +0 -58
  333. package/dist/debug.d.ts.map +0 -1
  334. package/dist/debug.js +0 -157
  335. package/dist/debug.js.map +0 -1
  336. package/dist/default-error-boundary.d.ts +0 -11
  337. package/dist/default-error-boundary.d.ts.map +0 -1
  338. package/dist/default-error-boundary.js +0 -45
  339. package/dist/default-error-boundary.js.map +0 -1
  340. package/dist/deps/browser.d.ts +0 -2
  341. package/dist/deps/browser.d.ts.map +0 -1
  342. package/dist/deps/browser.js +0 -3
  343. package/dist/deps/browser.js.map +0 -1
  344. package/dist/deps/html-stream-client.d.ts +0 -2
  345. package/dist/deps/html-stream-client.d.ts.map +0 -1
  346. package/dist/deps/html-stream-client.js +0 -3
  347. package/dist/deps/html-stream-client.js.map +0 -1
  348. package/dist/deps/html-stream-server.d.ts +0 -2
  349. package/dist/deps/html-stream-server.d.ts.map +0 -1
  350. package/dist/deps/html-stream-server.js +0 -3
  351. package/dist/deps/html-stream-server.js.map +0 -1
  352. package/dist/deps/rsc.d.ts +0 -2
  353. package/dist/deps/rsc.d.ts.map +0 -1
  354. package/dist/deps/rsc.js +0 -4
  355. package/dist/deps/rsc.js.map +0 -1
  356. package/dist/deps/ssr.d.ts +0 -2
  357. package/dist/deps/ssr.d.ts.map +0 -1
  358. package/dist/deps/ssr.js +0 -3
  359. package/dist/deps/ssr.js.map +0 -1
  360. package/dist/errors.d.ts +0 -174
  361. package/dist/errors.d.ts.map +0 -1
  362. package/dist/errors.js +0 -241
  363. package/dist/errors.js.map +0 -1
  364. package/dist/handle.d.ts +0 -78
  365. package/dist/handle.d.ts.map +0 -1
  366. package/dist/handle.js +0 -82
  367. package/dist/handle.js.map +0 -1
  368. package/dist/handles/MetaTags.d.ts +0 -14
  369. package/dist/handles/MetaTags.d.ts.map +0 -1
  370. package/dist/handles/MetaTags.js +0 -136
  371. package/dist/handles/MetaTags.js.map +0 -1
  372. package/dist/handles/index.d.ts +0 -6
  373. package/dist/handles/index.d.ts.map +0 -1
  374. package/dist/handles/index.js +0 -6
  375. package/dist/handles/index.js.map +0 -1
  376. package/dist/handles/meta.d.ts +0 -39
  377. package/dist/handles/meta.d.ts.map +0 -1
  378. package/dist/handles/meta.js +0 -202
  379. package/dist/handles/meta.js.map +0 -1
  380. package/dist/host/__tests__/errors.test.d.ts +0 -2
  381. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  382. package/dist/host/__tests__/errors.test.js +0 -76
  383. package/dist/host/__tests__/errors.test.js.map +0 -1
  384. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  385. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  386. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  387. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  388. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  389. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  390. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  391. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  392. package/dist/host/__tests__/router.test.d.ts +0 -2
  393. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  394. package/dist/host/__tests__/router.test.js +0 -241
  395. package/dist/host/__tests__/router.test.js.map +0 -1
  396. package/dist/host/__tests__/testing.test.d.ts +0 -2
  397. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  398. package/dist/host/__tests__/testing.test.js +0 -64
  399. package/dist/host/__tests__/testing.test.js.map +0 -1
  400. package/dist/host/__tests__/utils.test.d.ts +0 -2
  401. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  402. package/dist/host/__tests__/utils.test.js +0 -29
  403. package/dist/host/__tests__/utils.test.js.map +0 -1
  404. package/dist/host/cookie-handler.d.ts +0 -34
  405. package/dist/host/cookie-handler.d.ts.map +0 -1
  406. package/dist/host/cookie-handler.js +0 -124
  407. package/dist/host/cookie-handler.js.map +0 -1
  408. package/dist/host/errors.d.ts +0 -56
  409. package/dist/host/errors.d.ts.map +0 -1
  410. package/dist/host/errors.js +0 -79
  411. package/dist/host/errors.js.map +0 -1
  412. package/dist/host/index.d.ts +0 -29
  413. package/dist/host/index.d.ts.map +0 -1
  414. package/dist/host/index.js +0 -32
  415. package/dist/host/index.js.map +0 -1
  416. package/dist/host/pattern-matcher.d.ts +0 -36
  417. package/dist/host/pattern-matcher.d.ts.map +0 -1
  418. package/dist/host/pattern-matcher.js +0 -172
  419. package/dist/host/pattern-matcher.js.map +0 -1
  420. package/dist/host/router.d.ts +0 -26
  421. package/dist/host/router.d.ts.map +0 -1
  422. package/dist/host/router.js +0 -218
  423. package/dist/host/router.js.map +0 -1
  424. package/dist/host/testing.d.ts +0 -36
  425. package/dist/host/testing.d.ts.map +0 -1
  426. package/dist/host/testing.js +0 -55
  427. package/dist/host/testing.js.map +0 -1
  428. package/dist/host/types.d.ts +0 -115
  429. package/dist/host/types.d.ts.map +0 -1
  430. package/dist/host/types.js +0 -7
  431. package/dist/host/types.js.map +0 -1
  432. package/dist/host/utils.d.ts +0 -21
  433. package/dist/host/utils.d.ts.map +0 -1
  434. package/dist/host/utils.js +0 -23
  435. package/dist/host/utils.js.map +0 -1
  436. package/dist/href-client.d.ts +0 -131
  437. package/dist/href-client.d.ts.map +0 -1
  438. package/dist/href-client.js +0 -64
  439. package/dist/href-client.js.map +0 -1
  440. package/dist/href-context.d.ts +0 -29
  441. package/dist/href-context.d.ts.map +0 -1
  442. package/dist/href-context.js +0 -21
  443. package/dist/href-context.js.map +0 -1
  444. package/dist/index.d.ts +0 -73
  445. package/dist/index.d.ts.map +0 -1
  446. package/dist/index.js +0 -91
  447. package/dist/index.js.map +0 -1
  448. package/dist/index.rsc.d.ts +0 -32
  449. package/dist/index.rsc.d.ts.map +0 -1
  450. package/dist/index.rsc.js +0 -40
  451. package/dist/index.rsc.js.map +0 -1
  452. package/dist/internal-debug.d.ts +0 -2
  453. package/dist/internal-debug.d.ts.map +0 -1
  454. package/dist/internal-debug.js +0 -5
  455. package/dist/internal-debug.js.map +0 -1
  456. package/dist/loader.d.ts +0 -14
  457. package/dist/loader.d.ts.map +0 -1
  458. package/dist/loader.js +0 -20
  459. package/dist/loader.js.map +0 -1
  460. package/dist/loader.rsc.d.ts +0 -19
  461. package/dist/loader.rsc.d.ts.map +0 -1
  462. package/dist/loader.rsc.js +0 -99
  463. package/dist/loader.rsc.js.map +0 -1
  464. package/dist/network-error-thrower.d.ts +0 -17
  465. package/dist/network-error-thrower.d.ts.map +0 -1
  466. package/dist/network-error-thrower.js +0 -14
  467. package/dist/network-error-thrower.js.map +0 -1
  468. package/dist/outlet-context.d.ts +0 -13
  469. package/dist/outlet-context.d.ts.map +0 -1
  470. package/dist/outlet-context.js +0 -3
  471. package/dist/outlet-context.js.map +0 -1
  472. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  473. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  474. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  475. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  476. package/dist/prerender/param-hash.d.ts +0 -16
  477. package/dist/prerender/param-hash.d.ts.map +0 -1
  478. package/dist/prerender/param-hash.js +0 -36
  479. package/dist/prerender/param-hash.js.map +0 -1
  480. package/dist/prerender/store.d.ts +0 -38
  481. package/dist/prerender/store.d.ts.map +0 -1
  482. package/dist/prerender/store.js +0 -61
  483. package/dist/prerender/store.js.map +0 -1
  484. package/dist/prerender.d.ts +0 -66
  485. package/dist/prerender.d.ts.map +0 -1
  486. package/dist/prerender.js +0 -57
  487. package/dist/prerender.js.map +0 -1
  488. package/dist/reverse.d.ts +0 -196
  489. package/dist/reverse.d.ts.map +0 -1
  490. package/dist/reverse.js +0 -78
  491. package/dist/reverse.js.map +0 -1
  492. package/dist/root-error-boundary.d.ts +0 -33
  493. package/dist/root-error-boundary.d.ts.map +0 -1
  494. package/dist/root-error-boundary.js +0 -165
  495. package/dist/root-error-boundary.js.map +0 -1
  496. package/dist/route-content-wrapper.d.ts +0 -46
  497. package/dist/route-content-wrapper.d.ts.map +0 -1
  498. package/dist/route-content-wrapper.js +0 -77
  499. package/dist/route-content-wrapper.js.map +0 -1
  500. package/dist/route-definition.d.ts +0 -421
  501. package/dist/route-definition.d.ts.map +0 -1
  502. package/dist/route-definition.js +0 -868
  503. package/dist/route-definition.js.map +0 -1
  504. package/dist/route-map-builder.d.ts +0 -155
  505. package/dist/route-map-builder.d.ts.map +0 -1
  506. package/dist/route-map-builder.js +0 -237
  507. package/dist/route-map-builder.js.map +0 -1
  508. package/dist/route-types.d.ts +0 -165
  509. package/dist/route-types.d.ts.map +0 -1
  510. package/dist/route-types.js +0 -7
  511. package/dist/route-types.js.map +0 -1
  512. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  513. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  514. package/dist/router/__tests__/handler-context.test.js +0 -65
  515. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  516. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  517. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  518. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  519. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  520. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  521. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  522. package/dist/router/__tests__/match-context.test.js +0 -92
  523. package/dist/router/__tests__/match-context.test.js.map +0 -1
  524. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  525. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  526. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  527. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  528. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  529. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  530. package/dist/router/__tests__/match-result.test.js +0 -457
  531. package/dist/router/__tests__/match-result.test.js.map +0 -1
  532. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  533. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  534. package/dist/router/__tests__/on-error.test.js +0 -678
  535. package/dist/router/__tests__/on-error.test.js.map +0 -1
  536. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  537. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  538. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  539. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  540. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  541. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  542. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  543. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  544. package/dist/router/error-handling.d.ts +0 -77
  545. package/dist/router/error-handling.d.ts.map +0 -1
  546. package/dist/router/error-handling.js +0 -202
  547. package/dist/router/error-handling.js.map +0 -1
  548. package/dist/router/handler-context.d.ts +0 -20
  549. package/dist/router/handler-context.d.ts.map +0 -1
  550. package/dist/router/handler-context.js +0 -198
  551. package/dist/router/handler-context.js.map +0 -1
  552. package/dist/router/intercept-resolution.d.ts +0 -66
  553. package/dist/router/intercept-resolution.d.ts.map +0 -1
  554. package/dist/router/intercept-resolution.js +0 -246
  555. package/dist/router/intercept-resolution.js.map +0 -1
  556. package/dist/router/loader-resolution.d.ts +0 -64
  557. package/dist/router/loader-resolution.d.ts.map +0 -1
  558. package/dist/router/loader-resolution.js +0 -284
  559. package/dist/router/loader-resolution.js.map +0 -1
  560. package/dist/router/logging.d.ts +0 -15
  561. package/dist/router/logging.d.ts.map +0 -1
  562. package/dist/router/logging.js +0 -99
  563. package/dist/router/logging.js.map +0 -1
  564. package/dist/router/manifest.d.ts +0 -22
  565. package/dist/router/manifest.d.ts.map +0 -1
  566. package/dist/router/manifest.js +0 -181
  567. package/dist/router/manifest.js.map +0 -1
  568. package/dist/router/match-api.d.ts +0 -35
  569. package/dist/router/match-api.d.ts.map +0 -1
  570. package/dist/router/match-api.js +0 -406
  571. package/dist/router/match-api.js.map +0 -1
  572. package/dist/router/match-context.d.ts +0 -206
  573. package/dist/router/match-context.d.ts.map +0 -1
  574. package/dist/router/match-context.js +0 -17
  575. package/dist/router/match-context.js.map +0 -1
  576. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  577. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  578. package/dist/router/match-middleware/background-revalidation.js +0 -75
  579. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  580. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  581. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  582. package/dist/router/match-middleware/cache-lookup.js +0 -257
  583. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  584. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  585. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  586. package/dist/router/match-middleware/cache-store.js +0 -108
  587. package/dist/router/match-middleware/cache-store.js.map +0 -1
  588. package/dist/router/match-middleware/index.d.ts +0 -81
  589. package/dist/router/match-middleware/index.d.ts.map +0 -1
  590. package/dist/router/match-middleware/index.js +0 -80
  591. package/dist/router/match-middleware/index.js.map +0 -1
  592. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  593. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  594. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  595. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  596. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  597. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  598. package/dist/router/match-middleware/segment-resolution.js +0 -53
  599. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  600. package/dist/router/match-pipelines.d.ts +0 -147
  601. package/dist/router/match-pipelines.d.ts.map +0 -1
  602. package/dist/router/match-pipelines.js +0 -82
  603. package/dist/router/match-pipelines.js.map +0 -1
  604. package/dist/router/match-result.d.ts +0 -126
  605. package/dist/router/match-result.d.ts.map +0 -1
  606. package/dist/router/match-result.js +0 -93
  607. package/dist/router/match-result.js.map +0 -1
  608. package/dist/router/metrics.d.ts +0 -20
  609. package/dist/router/metrics.d.ts.map +0 -1
  610. package/dist/router/metrics.js +0 -47
  611. package/dist/router/metrics.js.map +0 -1
  612. package/dist/router/middleware.d.ts +0 -249
  613. package/dist/router/middleware.d.ts.map +0 -1
  614. package/dist/router/middleware.js +0 -434
  615. package/dist/router/middleware.js.map +0 -1
  616. package/dist/router/middleware.test.d.ts +0 -2
  617. package/dist/router/middleware.test.d.ts.map +0 -1
  618. package/dist/router/middleware.test.js +0 -816
  619. package/dist/router/middleware.test.js.map +0 -1
  620. package/dist/router/pattern-matching.d.ts +0 -149
  621. package/dist/router/pattern-matching.d.ts.map +0 -1
  622. package/dist/router/pattern-matching.js +0 -349
  623. package/dist/router/pattern-matching.js.map +0 -1
  624. package/dist/router/revalidation.d.ts +0 -44
  625. package/dist/router/revalidation.d.ts.map +0 -1
  626. package/dist/router/revalidation.js +0 -147
  627. package/dist/router/revalidation.js.map +0 -1
  628. package/dist/router/router-context.d.ts +0 -135
  629. package/dist/router/router-context.d.ts.map +0 -1
  630. package/dist/router/router-context.js +0 -36
  631. package/dist/router/router-context.js.map +0 -1
  632. package/dist/router/segment-resolution.d.ts +0 -127
  633. package/dist/router/segment-resolution.d.ts.map +0 -1
  634. package/dist/router/segment-resolution.js +0 -919
  635. package/dist/router/segment-resolution.js.map +0 -1
  636. package/dist/router/trie-matching.d.ts +0 -40
  637. package/dist/router/trie-matching.d.ts.map +0 -1
  638. package/dist/router/trie-matching.js +0 -127
  639. package/dist/router/trie-matching.js.map +0 -1
  640. package/dist/router/types.d.ts +0 -136
  641. package/dist/router/types.d.ts.map +0 -1
  642. package/dist/router/types.js +0 -7
  643. package/dist/router/types.js.map +0 -1
  644. package/dist/router.d.ts +0 -753
  645. package/dist/router.d.ts.map +0 -1
  646. package/dist/router.gen.d.ts +0 -6
  647. package/dist/router.gen.d.ts.map +0 -1
  648. package/dist/router.gen.js +0 -6
  649. package/dist/router.gen.js.map +0 -1
  650. package/dist/router.js +0 -1304
  651. package/dist/router.js.map +0 -1
  652. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  653. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  654. package/dist/rsc/__tests__/helpers.test.js +0 -140
  655. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  656. package/dist/rsc/handler.d.ts +0 -45
  657. package/dist/rsc/handler.d.ts.map +0 -1
  658. package/dist/rsc/handler.js +0 -1172
  659. package/dist/rsc/handler.js.map +0 -1
  660. package/dist/rsc/helpers.d.ts +0 -16
  661. package/dist/rsc/helpers.d.ts.map +0 -1
  662. package/dist/rsc/helpers.js +0 -55
  663. package/dist/rsc/helpers.js.map +0 -1
  664. package/dist/rsc/index.d.ts +0 -22
  665. package/dist/rsc/index.d.ts.map +0 -1
  666. package/dist/rsc/index.js +0 -23
  667. package/dist/rsc/index.js.map +0 -1
  668. package/dist/rsc/nonce.d.ts +0 -9
  669. package/dist/rsc/nonce.d.ts.map +0 -1
  670. package/dist/rsc/nonce.js +0 -18
  671. package/dist/rsc/nonce.js.map +0 -1
  672. package/dist/rsc/types.d.ts +0 -206
  673. package/dist/rsc/types.d.ts.map +0 -1
  674. package/dist/rsc/types.js +0 -8
  675. package/dist/rsc/types.js.map +0 -1
  676. package/dist/search-params.d.ts +0 -103
  677. package/dist/search-params.d.ts.map +0 -1
  678. package/dist/search-params.js +0 -74
  679. package/dist/search-params.js.map +0 -1
  680. package/dist/segment-system.d.ts +0 -75
  681. package/dist/segment-system.d.ts.map +0 -1
  682. package/dist/segment-system.js +0 -336
  683. package/dist/segment-system.js.map +0 -1
  684. package/dist/server/context.d.ts +0 -245
  685. package/dist/server/context.d.ts.map +0 -1
  686. package/dist/server/context.js +0 -197
  687. package/dist/server/context.js.map +0 -1
  688. package/dist/server/fetchable-loader-store.d.ts +0 -18
  689. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  690. package/dist/server/fetchable-loader-store.js +0 -18
  691. package/dist/server/fetchable-loader-store.js.map +0 -1
  692. package/dist/server/handle-store.d.ts +0 -85
  693. package/dist/server/handle-store.d.ts.map +0 -1
  694. package/dist/server/handle-store.js +0 -142
  695. package/dist/server/handle-store.js.map +0 -1
  696. package/dist/server/loader-registry.d.ts +0 -55
  697. package/dist/server/loader-registry.d.ts.map +0 -1
  698. package/dist/server/loader-registry.js +0 -132
  699. package/dist/server/loader-registry.js.map +0 -1
  700. package/dist/server/request-context.d.ts +0 -226
  701. package/dist/server/request-context.d.ts.map +0 -1
  702. package/dist/server/request-context.js +0 -290
  703. package/dist/server/request-context.js.map +0 -1
  704. package/dist/server/root-layout.d.ts +0 -4
  705. package/dist/server/root-layout.d.ts.map +0 -1
  706. package/dist/server/root-layout.js +0 -5
  707. package/dist/server/root-layout.js.map +0 -1
  708. package/dist/server.d.ts +0 -15
  709. package/dist/server.d.ts.map +0 -1
  710. package/dist/server.js +0 -20
  711. package/dist/server.js.map +0 -1
  712. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  713. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  714. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  715. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  716. package/dist/ssr/index.d.ts +0 -98
  717. package/dist/ssr/index.d.ts.map +0 -1
  718. package/dist/ssr/index.js +0 -158
  719. package/dist/ssr/index.js.map +0 -1
  720. package/dist/static-handler.d.ts +0 -50
  721. package/dist/static-handler.d.ts.map +0 -1
  722. package/dist/static-handler.gen.d.ts +0 -5
  723. package/dist/static-handler.gen.d.ts.map +0 -1
  724. package/dist/static-handler.gen.js +0 -5
  725. package/dist/static-handler.gen.js.map +0 -1
  726. package/dist/static-handler.js +0 -29
  727. package/dist/static-handler.js.map +0 -1
  728. package/dist/theme/ThemeProvider.d.ts +0 -20
  729. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  730. package/dist/theme/ThemeProvider.js +0 -240
  731. package/dist/theme/ThemeProvider.js.map +0 -1
  732. package/dist/theme/ThemeScript.d.ts +0 -48
  733. package/dist/theme/ThemeScript.d.ts.map +0 -1
  734. package/dist/theme/ThemeScript.js +0 -13
  735. package/dist/theme/ThemeScript.js.map +0 -1
  736. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  737. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  738. package/dist/theme/__tests__/theme.test.js +0 -103
  739. package/dist/theme/__tests__/theme.test.js.map +0 -1
  740. package/dist/theme/constants.d.ts +0 -29
  741. package/dist/theme/constants.d.ts.map +0 -1
  742. package/dist/theme/constants.js +0 -48
  743. package/dist/theme/constants.js.map +0 -1
  744. package/dist/theme/index.d.ts +0 -31
  745. package/dist/theme/index.d.ts.map +0 -1
  746. package/dist/theme/index.js +0 -36
  747. package/dist/theme/index.js.map +0 -1
  748. package/dist/theme/theme-context.d.ts +0 -40
  749. package/dist/theme/theme-context.d.ts.map +0 -1
  750. package/dist/theme/theme-context.js +0 -60
  751. package/dist/theme/theme-context.js.map +0 -1
  752. package/dist/theme/theme-script.d.ts +0 -27
  753. package/dist/theme/theme-script.d.ts.map +0 -1
  754. package/dist/theme/theme-script.js +0 -147
  755. package/dist/theme/theme-script.js.map +0 -1
  756. package/dist/theme/types.d.ts +0 -163
  757. package/dist/theme/types.d.ts.map +0 -1
  758. package/dist/theme/types.js +0 -11
  759. package/dist/theme/types.js.map +0 -1
  760. package/dist/theme/use-theme.d.ts +0 -12
  761. package/dist/theme/use-theme.d.ts.map +0 -1
  762. package/dist/theme/use-theme.js +0 -40
  763. package/dist/theme/use-theme.js.map +0 -1
  764. package/dist/types.d.ts +0 -1479
  765. package/dist/types.d.ts.map +0 -1
  766. package/dist/types.js +0 -10
  767. package/dist/types.js.map +0 -1
  768. package/dist/urls.d.ts +0 -441
  769. package/dist/urls.d.ts.map +0 -1
  770. package/dist/urls.gen.d.ts +0 -8
  771. package/dist/urls.gen.d.ts.map +0 -1
  772. package/dist/urls.gen.js +0 -8
  773. package/dist/urls.gen.js.map +0 -1
  774. package/dist/urls.js +0 -443
  775. package/dist/urls.js.map +0 -1
  776. package/dist/use-loader.d.ts +0 -127
  777. package/dist/use-loader.d.ts.map +0 -1
  778. package/dist/use-loader.js +0 -237
  779. package/dist/use-loader.js.map +0 -1
  780. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  781. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  782. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  783. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  784. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  785. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  786. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  787. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  788. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  789. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  790. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  791. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  792. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  793. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  794. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  795. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  796. package/dist/vite/ast-handler-extract.d.ts +0 -49
  797. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  798. package/dist/vite/ast-handler-extract.js +0 -249
  799. package/dist/vite/ast-handler-extract.js.map +0 -1
  800. package/dist/vite/expose-action-id.d.ts +0 -19
  801. package/dist/vite/expose-action-id.d.ts.map +0 -1
  802. package/dist/vite/expose-action-id.js +0 -250
  803. package/dist/vite/expose-action-id.js.map +0 -1
  804. package/dist/vite/expose-id-utils.d.ts +0 -69
  805. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  806. package/dist/vite/expose-id-utils.js +0 -289
  807. package/dist/vite/expose-id-utils.js.map +0 -1
  808. package/dist/vite/expose-internal-ids.d.ts +0 -22
  809. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  810. package/dist/vite/expose-internal-ids.js +0 -886
  811. package/dist/vite/expose-internal-ids.js.map +0 -1
  812. package/dist/vite/index.d.ts +0 -149
  813. package/dist/vite/index.d.ts.map +0 -1
  814. package/dist/vite/index.js.bak +0 -5448
  815. package/dist/vite/index.js.map +0 -1
  816. package/dist/vite/index.named-routes.gen.ts +0 -103
  817. package/dist/vite/package-resolution.d.ts +0 -43
  818. package/dist/vite/package-resolution.d.ts.map +0 -1
  819. package/dist/vite/package-resolution.js +0 -112
  820. package/dist/vite/package-resolution.js.map +0 -1
  821. package/dist/vite/virtual-entries.d.ts +0 -25
  822. package/dist/vite/virtual-entries.d.ts.map +0 -1
  823. package/dist/vite/virtual-entries.js +0 -110
  824. package/dist/vite/virtual-entries.js.map +0 -1
package/README.md CHANGED
@@ -1014,7 +1014,7 @@ Quick rule of thumb:
1014
1014
 
1015
1015
  - `GeneratedRouteMap` (auto-generated) — use for server-side named-route typing: `Handler<"name">`, `ctx.reverse()`, `Prerender<"name">`
1016
1016
  - `typeof router.routeMap` — use when you need route entries with response metadata
1017
- - `RegisteredRoutes` (manual augmentation) — use to expose `typeof router.routeMap` globally for `href()`, `PathResponse`, `ValidPaths`, and other path/response-aware utilities
1017
+ - `RegisteredRoutes` (manual augmentation) — use to expose `typeof router.routeMap` globally for `href()`, `Rango.Path`, `Rango.PathResponse`, and other path/response-aware utilities
1018
1018
 
1019
1019
  For extracted reusable loaders or middleware, prefer global dotted names on
1020
1020
  `ctx.reverse()` by default. If you want type-safe local names for a specific
@@ -2049,7 +2049,7 @@ import { resolve } from "node:path";
2049
2049
  // package.json
2050
2050
  var package_default = {
2051
2051
  name: "@rangojs/router",
2052
- version: "0.0.0-experimental.108",
2052
+ version: "0.0.0-experimental.109",
2053
2053
  description: "Django-inspired RSC router with composable URL patterns",
2054
2054
  keywords: [
2055
2055
  "react",
@@ -5266,12 +5266,17 @@ function pickForwardedRunnerConfig(config) {
5266
5266
  if (r.extensions !== void 0) resolve10.extensions = r.extensions;
5267
5267
  if (r.preserveSymlinks !== void 0)
5268
5268
  resolve10.preserveSymlinks = r.preserveSymlinks;
5269
- const userEsbuild = config.esbuild;
5270
- const esbuild = userEsbuild && typeof userEsbuild === "object" ? { ...userEsbuild, jsx: "automatic", jsxImportSource: "react" } : { jsx: "automatic", jsxImportSource: "react" };
5269
+ if (r.tsconfigPaths !== void 0) resolve10.tsconfigPaths = r.tsconfigPaths;
5270
+ const userOxc = config.oxc;
5271
+ const userJsx = userOxc && typeof userOxc === "object" && typeof userOxc.jsx === "object" && userOxc.jsx !== null ? userOxc.jsx : {};
5272
+ const oxc = userOxc && typeof userOxc === "object" ? {
5273
+ ...userOxc,
5274
+ jsx: { ...userJsx, runtime: "automatic", importSource: "react" }
5275
+ } : { jsx: { runtime: "automatic", importSource: "react" } };
5271
5276
  return {
5272
5277
  resolve: resolve10,
5273
5278
  define: config.define,
5274
- esbuild
5279
+ oxc
5275
5280
  };
5276
5281
  }
5277
5282
 
@@ -5301,9 +5306,8 @@ async function createTempRscServer(state, options = {}) {
5301
5306
  const resolveConfig = runnerConfig?.resolve ?? {
5302
5307
  alias: state.userResolveAlias
5303
5308
  };
5304
- const esbuildConfig = runnerConfig?.esbuild ?? {
5305
- jsx: "automatic",
5306
- jsxImportSource: "react"
5309
+ const oxcConfig = runnerConfig?.oxc ?? {
5310
+ jsx: { runtime: "automatic", importSource: "react" }
5307
5311
  };
5308
5312
  return createViteServer({
5309
5313
  root: state.projectRoot,
@@ -5313,7 +5317,7 @@ async function createTempRscServer(state, options = {}) {
5313
5317
  logLevel: "silent",
5314
5318
  resolve: resolveConfig,
5315
5319
  ...runnerConfig?.define ? { define: runnerConfig.define } : {},
5316
- esbuild: esbuildConfig,
5320
+ oxc: oxcConfig,
5317
5321
  ...options.cacheDir && { cacheDir: options.cacheDir },
5318
5322
  plugins: [
5319
5323
  rsc({
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rangojs/router",
3
- "version": "0.0.0-experimental.108",
3
+ "version": "0.0.0-experimental.109",
4
4
  "description": "Django-inspired RSC router with composable URL patterns",
5
5
  "keywords": [
6
6
  "react",
@@ -213,7 +213,17 @@ function GlobalNav() {
213
213
  }
214
214
  ```
215
215
 
216
- `href()` provides compile-time validation via `ValidPaths` type. Paths are validated against registered route patterns using `PatternToPath`.
216
+ `href()` provides compile-time validation via the `Rango.Path` type. Paths are validated against registered route patterns using `PatternToPath`.
217
+
218
+ When wrapping `href()`, type the wrapper's path parameter as `Rango.Path` so it
219
+ keeps the same generated-route validation. `Rango.Path` is ambient — no import,
220
+ just like `Rango.Env` / `Rango.Vars`:
221
+
222
+ ```typescript
223
+ import { href } from "@rangojs/router/client";
224
+
225
+ export const appHref = (path: Rango.Path): string => href(path);
226
+ ```
217
227
 
218
228
  `href()` is a raw path helper — it is **not** basename-aware. It returns the path as-is (or with the include mount prefix via `useHref()`). For basename-aware navigation, use `Link`, `useRouter().push()`, or `reverse()`, which auto-prefix root-relative paths with the router's basename.
219
229
 
@@ -111,13 +111,13 @@ picks among the response-type candidates directly.
111
111
  ## Type Safety For Negotiated Paths
112
112
 
113
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
114
+ the `Rango.Path` type, but it does not carry response payload metadata. For MIME or
115
115
  response payload types, use one of these surfaces:
116
116
 
117
117
  - `RouteResponse<typeof patterns, "routeName">` for a specific response variant
118
118
  by route name. This is the clearest option when several MIME variants share
119
119
  one URL pattern.
120
- - `PathResponse<"/products/:id">` for global URL-pattern lookup after the app
120
+ - `Rango.PathResponse<"/products/:id">` (ambient, no import) for global lookup by URL pattern or concrete path after the app
121
121
  registers `typeof router.routeMap`:
122
122
 
123
123
  ```typescript
@@ -236,13 +236,14 @@ type ProductsData = RouteResponse<typeof apiPatterns, "products">;
236
236
  // = ResponseEnvelope<{ id: string; name: string; price: number }[]>
237
237
  ```
238
238
 
239
- ### PathResponse (global lookup by URL pattern)
239
+ ### Rango.PathResponse (global lookup by URL pattern or concrete path)
240
240
 
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>`:
241
+ `Rango.PathResponse` is ambient (no import) and reads from `RegisteredRoutes`,
242
+ which carries response payload metadata. That surface is **not** auto-wired —
243
+ without the augmentation below, `Rango.PathResponse` falls back to the generated
244
+ path/search map, or to a permissive map when nothing is generated. Either way, it
245
+ has no response payload metadata, so response routes resolve to
246
+ `ResponseEnvelope<never>`:
246
247
 
247
248
  ```typescript
248
249
  // router.tsx
@@ -255,20 +256,44 @@ declare global {
255
256
  }
256
257
  ```
257
258
 
258
- With that in place, look up the response type by URL pattern:
259
+ With that in place, look up the response type by URL pattern (ambient, no import):
259
260
 
260
261
  ```typescript
261
- import type { PathResponse } from "@rangojs/router/client";
262
-
263
262
  // After include("/api", apiPatterns) in main urls
264
- type Health = PathResponse<"/api/health">;
263
+ type Health = Rango.PathResponse<"/api/health">;
265
264
  // = ResponseEnvelope<{ status: string; timestamp: number }>
266
265
 
267
266
  // RSC routes return ResponseEnvelope<never>
268
- type Home = PathResponse<"/">;
267
+ type Home = Rango.PathResponse<"/">;
269
268
  // = ResponseEnvelope<never>
270
269
  ```
271
270
 
271
+ `Rango.PathResponse` also accepts a **concrete path**, so it types a `fetch`
272
+ wrapper whose response is inferred from the path you pass:
273
+
274
+ ```typescript
275
+ import { href } from "@rangojs/router/client";
276
+
277
+ async function get<T extends Rango.Path>(
278
+ path: T,
279
+ ): Promise<Rango.PathResponse<T>> {
280
+ return fetch(href(path)).then((r) => r.json());
281
+ }
282
+
283
+ const product = await get("/api/products/42"); // ResponseEnvelope<Product>
284
+ ```
285
+
286
+ Pattern keys (`/:id`) match exactly; a concrete path under a _nested_ dynamic
287
+ route can match several patterns and union their responses.
288
+
289
+ `Rango.PathResponse` reports the JSON **wire** shape, not the handler's raw
290
+ return: `path.json()` serializes with `JSON.stringify`, so a handler returning
291
+ `{ createdAt: Date }` resolves to `ResponseEnvelope<{ createdAt: string }>`. This
292
+ runs through the ambient `Rango.JsonSerialize<T>` transform (`Date -> string`,
293
+ honors `toJSON()`, drops functions/`undefined`, `bigint -> never`). The
294
+ `RouteResponse` surface below applies the same `Rango.JsonSerialize` transform, so
295
+ both response lookups report the identical wire shape.
296
+
272
297
  For local/scoped response typing without global augmentation, prefer
273
298
  `RouteResponse<typeof patterns, "routeName">` (see the section above) — it reads
274
299
  the response payload straight from the `urls()` patterns and needs no
@@ -383,16 +408,16 @@ export const urlpatterns = urls(({ path, include }) => [
383
408
 
384
409
  ```typescript
385
410
  import type { RouteResponse } from "@rangojs/router";
386
- import type { PathResponse, ParamsFor } from "@rangojs/router/client";
411
+ import type { ParamsFor } from "@rangojs/router/client";
387
412
 
388
413
  // Scoped (before mount) -- use the module directly, no global wiring needed
389
414
  type Stats = RouteResponse<typeof blogApiPatterns, "stats">;
390
415
  // = ResponseEnvelope<{ views: number; visitors: number }>
391
416
 
392
417
  // After mounting -- names get prefixed.
393
- // PathResponse needs `RegisteredRoutes extends typeof router.routeMap` (see above),
418
+ // Rango.PathResponse needs `RegisteredRoutes extends typeof router.routeMap` (see above),
394
419
  // otherwise it resolves to ResponseEnvelope<never>.
395
- type BlogStats = PathResponse<"/blog/api/stats">;
420
+ type BlogStats = Rango.PathResponse<"/blog/api/stats">;
396
421
  // = ResponseEnvelope<{ views: number; visitors: number }>
397
422
 
398
423
  // Params work through nested includes
@@ -38,7 +38,7 @@ available globally.
38
38
  instance, including response-route metadata such as `{ path, response }`.
39
39
  - `RegisteredRoutes` — manual global hook for exposing `typeof router.routeMap`
40
40
  to global utilities that need the exact router-builder map, especially
41
- `PathResponse`.
41
+ `Rango.PathResponse`.
42
42
 
43
43
  ### Generated Route Type Surfaces
44
44
 
@@ -51,13 +51,13 @@ pick the one that matches what you need to type:
51
51
  | `routes` | per-module `*.gen.ts` (`rango generate`) | local | local names, params, search | the global app map |
52
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
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
54
+ Key consequence: `href()` and the ambient `Rango.Path` type are typed from
55
+ whichever map is present — they prefer `RegisteredRoutes` when you wire it, otherwise fall back to
56
56
  the auto-generated `GeneratedRouteMap`, so **`rango generate` alone gives you
57
57
  path-checked `href()`** with no manual augmentation. Response and MIME payload
58
58
  inference is the exception: it comes only from `typeof router.routeMap` (via
59
59
  `RegisteredRoutes`), because `GeneratedRouteMap` carries paths + search but no
60
- payloads — so `PathResponse` resolves to `ResponseEnvelope<never>` until you wire
60
+ payloads — so `Rango.PathResponse` resolves to `ResponseEnvelope<never>` until you wire
61
61
  `RegisteredRoutes`.
62
62
 
63
63
  Recommended setup:
@@ -121,7 +121,7 @@ There are two runtime/type surfaces with similar names:
121
121
  App code should not pass or import `$$routeNames` directly.
122
122
  - `router.routeMap` is the public router instance property for type extraction.
123
123
  Use `typeof router.routeMap` when augmenting `Rango.RegisteredRoutes` for
124
- global response payload helpers such as `PathResponse`.
124
+ global response payload helpers such as `Rango.PathResponse`.
125
125
 
126
126
  Do not document or use a public `router.routeNames` API unless one is
127
127
  intentionally added. Today, the public extraction surface is `router.routeMap`;
@@ -196,10 +196,10 @@ function ShopNav() {
196
196
  }
197
197
  ```
198
198
 
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
199
+ `href()` and the `Rango.Path` type read from `RegisteredRoutes` when you augment
200
+ it, otherwise from the auto-generated `GeneratedRouteMap` — so `rango generate`
201
+ alone type-checks `href()` paths with no manual augmentation. The augmentation
202
+ below is only needed for **`Rango.PathResponse`** (response-payload inference), which
203
203
  `GeneratedRouteMap` cannot provide:
204
204
 
205
205
  ```typescript
@@ -210,6 +210,93 @@ declare global {
210
210
  }
211
211
  ```
212
212
 
213
+ For wrapper helpers, type the path parameter as `Rango.Path`. It is ambient (no
214
+ import) and shares `href()`'s compile-time path checking, so a wrapper stays in
215
+ sync with your routes automatically:
216
+
217
+ ```typescript
218
+ import { href } from "@rangojs/router/client";
219
+
220
+ export const appHref = (path: Rango.Path): string => href(path);
221
+ ```
222
+
223
+ For response-route payloads, `Rango.PathResponse<T>` is the ambient lookup. It
224
+ accepts a route _pattern_ **or** a concrete path, so it also serves as the return
225
+ type of a typed `fetch` wrapper. It only resolves once `RegisteredRoutes` carries
226
+ response metadata:
227
+
228
+ ```typescript
229
+ import { href } from "@rangojs/router/client";
230
+
231
+ type Product = Rango.PathResponse<"/api/products/:id">; // by pattern
232
+ type Same = Rango.PathResponse<"/api/products/42">; // by concrete path
233
+
234
+ // Response inferred from the concrete path passed in:
235
+ async function get<T extends Rango.Path>(
236
+ path: T,
237
+ ): Promise<Rango.PathResponse<T>> {
238
+ return fetch(href(path)).then((r) => r.json());
239
+ }
240
+ const product = await get("/api/products/42"); // ResponseEnvelope<Product>
241
+ ```
242
+
243
+ Pattern keys (`/:id`) match exactly; a concrete path under a _nested_ dynamic
244
+ route can match several patterns and union their responses.
245
+
246
+ `Rango.PathResponse` describes the JSON **wire** shape, not the handler's raw
247
+ return. A `path.json()` handler returning `{ createdAt: Date }` resolves here to
248
+ `ResponseEnvelope<{ createdAt: string }>`, matching what `r.json()` yields. This
249
+ is applied via the ambient `Rango.JsonSerialize<T>` transform (`Date -> string`,
250
+ honors `toJSON()`, drops functions/`undefined`, `bigint -> never`). A separate
251
+ `Rango.FlightSerialize<T>` models the higher-fidelity RSC Flight boundary
252
+ (loaders / RSC props, where `Date` is preserved) — do **not** use it for
253
+ `path.json()`.
254
+
255
+ ### Overriding serialization globally
256
+
257
+ For your own types, the zero-config way to control the JSON wire shape is a
258
+ `toJSON()` method — `Rango.JsonSerialize` honors it, and it matches the runtime
259
+ exactly (`JSON.stringify` calls `toJSON()`):
260
+
261
+ ```typescript
262
+ class Money {
263
+ constructor(private cents: number) {}
264
+ toJSON(): number {
265
+ return this.cents;
266
+ }
267
+ }
268
+ // Rango.JsonSerialize<Money> is number; Rango.PathResponse reflects it.
269
+ ```
270
+
271
+ To override a transform for types you **don't** own (or for the Flight boundary,
272
+ which has no `toJSON()`), augment its override slot. Because `Rango.JsonSerialize`
273
+ / `Rango.FlightSerialize` are type _aliases_ (TS can't merge those), you provide a
274
+ single member that is your **complete** transform, delegating to the built-in for
275
+ the cases you don't change:
276
+
277
+ ```typescript
278
+ declare global {
279
+ namespace Rango {
280
+ interface JsonSerializeOverride<T> {
281
+ app: T extends Decimal ? string : Rango.JsonSerializeBuiltin<T>;
282
+ }
283
+ interface FlightSerializeOverride<T> {
284
+ app: T extends Money ? number : Rango.FlightSerializeBuiltin<T>;
285
+ }
286
+ }
287
+ }
288
+ // Rango.JsonSerialize<Decimal> -> string; Rango.FlightSerialize<Money> -> number;
289
+ // everything else stays on the built-in, recursively (nested fields too).
290
+ ```
291
+
292
+ Rules: provide **exactly one** member (the slot is read as
293
+ `Override<T>[keyof Override<T>]`, so multiple members union and conflict).
294
+ Overrides win over `toJSON()` and apply at every nesting level. Caveat for JSON:
295
+ the `path.json()` runtime is plain `JSON.stringify`, which only honors `toJSON()`,
296
+ so a `JsonSerializeOverride` that disagrees with what the runtime emits will lie —
297
+ prefer `toJSON()` for your own types and use the slot only for types you can't
298
+ modify.
299
+
213
300
  See `/links` for full URL generation guide.
214
301
 
215
302
  ## Environment Type Setup
@@ -814,9 +901,9 @@ export default router;
814
901
  // 4. Run `npx rango generate src/router.tsx` to generate
815
902
  // router.named-routes.gen.ts (auto-registers GeneratedRouteMap globally).
816
903
  // No manual RegisteredRoutes declaration is needed for named-route handlers,
817
- // ctx.reverse, prerender, href(), or ValidPaths. Add `RegisteredRoutes
904
+ // ctx.reverse, prerender, href(), or Rango.Path. Add `RegisteredRoutes
818
905
  // extends typeof router.routeMap` when global response payload helpers such
819
- // as PathResponse need the richer router.routeMap metadata.
906
+ // as Rango.PathResponse need the richer router.routeMap metadata.
820
907
 
821
908
  // 5. loaders/*.ts - Type-safe loaders
822
909
  export const ProductLoader = createLoader(async (ctx) => {
@@ -19,10 +19,42 @@ export interface TestVars {
19
19
  requestId?: string;
20
20
  }
21
21
 
22
+ /**
23
+ * A userland domain type that controls its own JSON wire shape via `toJSON()`.
24
+ * This is the augmentation hook: `Rango.JsonSerialize` honors `toJSON()`, so a
25
+ * consumer adjusts how their type serializes with no registry API.
26
+ */
27
+ export class Money {
28
+ constructor(public cents: number) {}
29
+ toJSON(): number {
30
+ return this.cents;
31
+ }
32
+ }
33
+
34
+ /**
35
+ * Mirrors `typeof router.routeMap`: the same routes as the generated map, plus a
36
+ * response route whose payload carries a userland class (`Money`, with
37
+ * `toJSON()`) and a `Date` — used to assert `Rango.PathResponse` reports the
38
+ * serialized JSON wire shape.
39
+ */
40
+ export interface TestRegisteredRoutes {
41
+ readonly home: "/";
42
+ readonly "blog.post": "/blog/:slug";
43
+ readonly search: {
44
+ readonly path: "/search";
45
+ readonly search: { readonly q: "string"; readonly page: "number?" };
46
+ };
47
+ readonly order: {
48
+ readonly path: "/orders/:id";
49
+ readonly response: { id: string; total: Money; placedAt: Date };
50
+ };
51
+ }
52
+
22
53
  declare global {
23
54
  namespace Rango {
24
55
  interface Env extends TestBindings {}
25
56
  interface Vars extends TestVars {}
57
+ interface RegisteredRoutes extends TestRegisteredRoutes {}
26
58
  // Mirrors the shape emitted into router.named-routes.gen.ts: plain string
27
59
  // patterns, plus { path, search } objects for routes with a search schema.
28
60
  interface GeneratedRouteMap {
@@ -33,5 +65,17 @@ declare global {
33
65
  readonly search: { readonly q: "string"; readonly page: "number?" };
34
66
  };
35
67
  }
68
+
69
+ // Userland serialization overrides: full-transform replacement that
70
+ // special-cases one type and delegates the rest to the built-in. Isolated to
71
+ // this augment-check program, so the main suite's built-in behavior (e.g.
72
+ // JsonSerialize<bigint> = never) is unaffected — demonstrating overrides are
73
+ // per-project augmentation.
74
+ interface JsonSerializeOverride<T> {
75
+ app: T extends bigint ? string : Rango.JsonSerializeBuiltin<T>;
76
+ }
77
+ interface FlightSerializeOverride<T> {
78
+ app: T extends Money ? number : Rango.FlightSerializeBuiltin<T>;
79
+ }
36
80
  }
37
81
  }
@@ -9,7 +9,8 @@ import "./augment.js";
9
9
  import type { Handler, RouteParams, RouteSearchParams } from "../index.js";
10
10
  import type { DefaultRouteName } from "../types/global-namespace.js";
11
11
  import { href } from "../href-client.js";
12
- import type { TestBindings } from "./augment.js";
12
+ import type { ResponseEnvelope } from "../urls.js";
13
+ import type { Money, TestBindings } from "./augment.js";
13
14
 
14
15
  type Expect<T extends true> = T;
15
16
  type Equal<A, B> =
@@ -51,7 +52,7 @@ type _search = Expect<
51
52
  Equal<RouteSearchParams<"search">, { q: string | undefined; page?: number }>
52
53
  >;
53
54
 
54
- // href / ValidPaths read GeneratedRouteMap even without a manual RegisteredRoutes
55
+ // href / Rango.Path read GeneratedRouteMap even without a manual RegisteredRoutes
55
56
  // augmentation — this is the core of the "rango generate alone enables typed
56
57
  // href()" guarantee. The paths below come from the generated map in augment.ts.
57
58
  href("/");
@@ -60,5 +61,57 @@ href("/search");
60
61
  // @ts-expect-error - path is not in the generated route map
61
62
  href("/not-a-route");
62
63
 
64
+ // Rango.Path is the ambient input type for wrapper functions around href().
65
+ // No import needed — it reads the same generated map href() does.
66
+ function wrappedHref(path: Rango.Path): string {
67
+ return href(path);
68
+ }
69
+ const arrowHref = (path: Rango.Path): string => href(path);
70
+
71
+ wrappedHref("/blog/anything");
72
+ arrowHref("/search?q=hello");
73
+ // @ts-expect-error - wrapper preserves the same generated-map validation
74
+ wrappedHref("/not-a-route");
75
+
76
+ // Userland serialization augmentation: a consumer's custom class adjusts its JSON
77
+ // wire shape via toJSON(), and Rango.PathResponse reports the serialized payload
78
+ // (Money -> number, Date -> string) — both by pattern and by concrete path.
79
+ type _orderWireByPattern = Expect<
80
+ Equal<
81
+ Rango.PathResponse<"/orders/:id">,
82
+ ResponseEnvelope<{ id: string; total: number; placedAt: string }>
83
+ >
84
+ >;
85
+ type _orderWireByPath = Expect<
86
+ Equal<
87
+ Rango.PathResponse<"/orders/42">,
88
+ ResponseEnvelope<{ id: string; total: number; placedAt: string }>
89
+ >
90
+ >;
91
+
92
+ // Project serialization overrides: the consumer augments JsonSerializeOverride /
93
+ // FlightSerializeOverride (see augment.ts) with a full transform that delegates to
94
+ // the built-in, and the transforms honor it — winning over the built-in rules.
95
+ // bigint normally JSON-serializes to `never`; Money is a class React Flight would
96
+ // otherwise reject structurally. Delegation keeps every other type (incl. the
97
+ // /orders payload above) on the built-in behavior.
98
+ type _jsonOverride = Expect<Equal<Rango.JsonSerialize<bigint>, string>>;
99
+ type _jsonOverrideNested = Expect<
100
+ Equal<
101
+ Rango.JsonSerialize<{ id: bigint; name: string }>,
102
+ { id: string; name: string }
103
+ >
104
+ >;
105
+ type _flightOverride = Expect<Equal<Rango.FlightSerialize<Money>, number>>;
106
+
63
107
  // Reference the top-level assertion aliases so they are unambiguously evaluated.
64
- export type _Assertions = [_routeName, _params, _search];
108
+ export type _Assertions = [
109
+ _routeName,
110
+ _params,
111
+ _search,
112
+ _orderWireByPattern,
113
+ _orderWireByPath,
114
+ _jsonOverride,
115
+ _jsonOverrideNested,
116
+ _flightOverride,
117
+ ];
@@ -32,27 +32,35 @@ import { shallowEqual } from "./shallow-equal.js";
32
32
  * const lastCrumb = useHandle(Breadcrumbs, (data) => data.at(-1));
33
33
  * ```
34
34
  */
35
- export function useHandle<T, A>(handle: Handle<T, A>): A;
35
+ export function useHandle<T, A>(handle: Handle<T, A>): Rango.FlightSerialize<A>;
36
36
  export function useHandle<T, A, S>(
37
37
  handle: Handle<T, A>,
38
- selector: (data: A) => S,
38
+ selector: (data: Rango.FlightSerialize<A>) => S,
39
39
  ): S;
40
40
  export function useHandle<T, A, S>(
41
41
  handle: Handle<T, A>,
42
- selector?: (data: A) => S,
43
- ): A | S {
42
+ selector?: (data: Rango.FlightSerialize<A>) => S,
43
+ ): Rango.FlightSerialize<A> | S {
44
44
  const ctx = useContext(NavigationStoreContext);
45
45
 
46
46
  // Initial state from context event controller, or empty fallback without provider.
47
- const [value, setValue] = useState<A | S>(() => {
47
+ const [value, setValue] = useState<Rango.FlightSerialize<A> | S>(() => {
48
48
  if (!ctx) {
49
- const collected = collectHandleData(handle, {}, []);
49
+ const collected = collectHandleData(
50
+ handle,
51
+ {},
52
+ [],
53
+ ) as Rango.FlightSerialize<A>;
50
54
  return selector ? selector(collected) : collected;
51
55
  }
52
56
 
53
57
  // On client, use event controller state
54
58
  const state = ctx.eventController.getHandleState();
55
- const collected = collectHandleData(handle, state.data, state.segmentOrder);
59
+ const collected = collectHandleData(
60
+ handle,
61
+ state.data,
62
+ state.segmentOrder,
63
+ ) as Rango.FlightSerialize<A>;
56
64
  return selector ? selector(collected) : collected;
57
65
  });
58
66
  const [optimisticValue, setOptimisticValue] = useOptimistic(value);
@@ -76,7 +84,7 @@ export function useHandle<T, A, S>(
76
84
  handle,
77
85
  currentHandleState.data,
78
86
  currentHandleState.segmentOrder,
79
- );
87
+ ) as Rango.FlightSerialize<A>;
80
88
  const currentValue = selectorRef.current
81
89
  ? selectorRef.current(currentCollected)
82
90
  : currentCollected;
@@ -93,7 +101,7 @@ export function useHandle<T, A, S>(
93
101
  handle,
94
102
  state.data,
95
103
  state.segmentOrder,
96
- );
104
+ ) as Rango.FlightSerialize<A>;
97
105
  const nextValue = selectorRef.current
98
106
  ? selectorRef.current(collected)
99
107
  : collected;
package/src/client.tsx CHANGED
@@ -409,13 +409,10 @@ export {
409
409
  type LocationStateOptions,
410
410
  } from "./browser/react/location-state.js";
411
411
 
412
- // Type-safe href for client-side path validation
413
- export {
414
- href,
415
- type ValidPaths,
416
- type PatternToPath,
417
- type PathResponse,
418
- } from "./href-client.js";
412
+ // Type-safe href for client-side path validation. The path and response types
413
+ // are ambient as `Rango.Path` / `Rango.PathResponse` (declared in
414
+ // href-client.ts) — no import needed.
415
+ export { href, type PatternToPath } from "./href-client.js";
419
416
 
420
417
  // Response envelope types for consuming JSON response routes
421
418
  export type { ResponseEnvelope, ResponseError } from "./urls.js";