@rangojs/router 0.0.0-experimental.ae6e7825 → 0.0.0-experimental.bf2846be

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 (908) hide show
  1. package/README.md +76 -18
  2. package/dist/bin/rango.js +130 -47
  3. package/dist/vite/index.js +688 -433
  4. package/package.json +1 -1
  5. package/skills/links/SKILL.md +3 -1
  6. package/skills/middleware/SKILL.md +2 -0
  7. package/skills/prerender/SKILL.md +110 -68
  8. package/skills/router-setup/SKILL.md +35 -0
  9. package/src/__internal.ts +1 -1
  10. package/src/browser/app-version.ts +14 -0
  11. package/src/browser/navigation-bridge.ts +16 -3
  12. package/src/browser/navigation-client.ts +98 -69
  13. package/src/browser/navigation-store.ts +43 -8
  14. package/src/browser/partial-update.ts +32 -5
  15. package/src/browser/prefetch/cache.ts +16 -6
  16. package/src/browser/prefetch/fetch.ts +35 -6
  17. package/src/browser/react/Link.tsx +67 -8
  18. package/src/browser/react/NavigationProvider.tsx +8 -1
  19. package/src/browser/react/context.ts +7 -2
  20. package/src/browser/react/use-handle.ts +9 -58
  21. package/src/browser/react/use-router.ts +21 -8
  22. package/src/browser/rsc-router.tsx +28 -22
  23. package/src/browser/scroll-restoration.ts +10 -8
  24. package/src/browser/segment-reconciler.ts +26 -0
  25. package/src/browser/server-action-bridge.ts +8 -18
  26. package/src/browser/types.ts +21 -15
  27. package/src/build/generate-manifest.ts +6 -6
  28. package/src/build/generate-route-types.ts +3 -0
  29. package/src/build/route-types/include-resolution.ts +8 -1
  30. package/src/build/route-types/router-processing.ts +211 -72
  31. package/src/build/route-types/scan-filter.ts +8 -1
  32. package/src/client.tsx +2 -56
  33. package/src/deps/browser.ts +0 -1
  34. package/src/handle.ts +40 -0
  35. package/src/index.rsc.ts +3 -1
  36. package/src/index.ts +12 -0
  37. package/src/prerender/store.ts +5 -4
  38. package/src/prerender.ts +138 -77
  39. package/src/reverse.ts +22 -1
  40. package/src/route-definition/dsl-helpers.ts +42 -19
  41. package/src/route-definition/helpers-types.ts +4 -1
  42. package/src/route-definition/index.ts +3 -0
  43. package/src/route-definition/redirect.ts +9 -1
  44. package/src/route-definition/resolve-handler-use.ts +149 -0
  45. package/src/route-types.ts +11 -0
  46. package/src/router/content-negotiation.ts +100 -1
  47. package/src/router/handler-context.ts +48 -15
  48. package/src/router/intercept-resolution.ts +9 -4
  49. package/src/router/loader-resolution.ts +150 -21
  50. package/src/router/match-api.ts +124 -189
  51. package/src/router/match-middleware/cache-lookup.ts +26 -7
  52. package/src/router/match-middleware/segment-resolution.ts +53 -0
  53. package/src/router/match-result.ts +82 -4
  54. package/src/router/middleware-types.ts +0 -6
  55. package/src/router/middleware.ts +0 -3
  56. package/src/router/navigation-snapshot.ts +182 -0
  57. package/src/router/prerender-match.ts +110 -10
  58. package/src/router/preview-match.ts +30 -102
  59. package/src/router/request-classification.ts +310 -0
  60. package/src/router/route-snapshot.ts +245 -0
  61. package/src/router/router-interfaces.ts +36 -4
  62. package/src/router/router-options.ts +37 -11
  63. package/src/router/segment-resolution/fresh.ts +70 -5
  64. package/src/router/segment-resolution/revalidation.ts +87 -9
  65. package/src/router.ts +53 -5
  66. package/src/rsc/handler.ts +472 -398
  67. package/src/rsc/loader-fetch.ts +18 -3
  68. package/src/rsc/manifest-init.ts +5 -1
  69. package/src/rsc/progressive-enhancement.ts +12 -3
  70. package/src/rsc/rsc-rendering.ts +8 -3
  71. package/src/rsc/server-action.ts +8 -2
  72. package/src/rsc/ssr-setup.ts +2 -2
  73. package/src/rsc/types.ts +6 -7
  74. package/src/server/context.ts +39 -2
  75. package/src/server/handle-store.ts +19 -0
  76. package/src/server/loader-registry.ts +9 -8
  77. package/src/server/request-context.ts +131 -16
  78. package/src/ssr/index.tsx +4 -13
  79. package/src/static-handler.ts +18 -6
  80. package/src/types/cache-types.ts +4 -4
  81. package/src/types/handler-context.ts +17 -11
  82. package/src/types/loader-types.ts +32 -5
  83. package/src/types/route-entry.ts +1 -1
  84. package/src/types/segments.ts +1 -0
  85. package/src/urls/path-helper-types.ts +9 -2
  86. package/src/urls/path-helper.ts +47 -12
  87. package/src/urls/pattern-types.ts +12 -0
  88. package/src/urls/response-types.ts +16 -6
  89. package/src/use-loader.tsx +77 -5
  90. package/src/vite/discovery/bundle-postprocess.ts +30 -33
  91. package/src/vite/discovery/discover-routers.ts +5 -1
  92. package/src/vite/discovery/prerender-collection.ts +128 -74
  93. package/src/vite/discovery/state.ts +13 -4
  94. package/src/vite/index.ts +4 -0
  95. package/src/vite/plugin-types.ts +60 -5
  96. package/src/vite/plugins/expose-id-utils.ts +12 -0
  97. package/src/vite/plugins/expose-ids/handler-transform.ts +30 -0
  98. package/src/vite/plugins/expose-internal-ids.ts +257 -40
  99. package/src/vite/plugins/performance-tracks.ts +57 -280
  100. package/src/vite/plugins/refresh-cmd.ts +88 -26
  101. package/src/vite/rango.ts +17 -11
  102. package/src/vite/router-discovery.ts +178 -37
  103. package/src/vite/utils/prerender-utils.ts +18 -0
  104. package/src/vite/utils/shared-utils.ts +3 -2
  105. package/dist/__internal.d.ts +0 -83
  106. package/dist/__internal.d.ts.map +0 -1
  107. package/dist/__internal.js +0 -19
  108. package/dist/__internal.js.map +0 -1
  109. package/dist/__mocks__/version.d.ts +0 -7
  110. package/dist/__mocks__/version.d.ts.map +0 -1
  111. package/dist/__mocks__/version.js +0 -7
  112. package/dist/__mocks__/version.js.map +0 -1
  113. package/dist/__tests__/client-href.test.d.ts +0 -2
  114. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  115. package/dist/__tests__/client-href.test.js +0 -74
  116. package/dist/__tests__/client-href.test.js.map +0 -1
  117. package/dist/__tests__/component-utils.test.d.ts +0 -2
  118. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  119. package/dist/__tests__/component-utils.test.js +0 -51
  120. package/dist/__tests__/component-utils.test.js.map +0 -1
  121. package/dist/__tests__/event-controller.test.d.ts +0 -2
  122. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  123. package/dist/__tests__/event-controller.test.js +0 -538
  124. package/dist/__tests__/event-controller.test.js.map +0 -1
  125. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  126. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  127. package/dist/__tests__/helpers/route-tree.js +0 -374
  128. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  129. package/dist/__tests__/match-result.test.d.ts +0 -2
  130. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  131. package/dist/__tests__/match-result.test.js +0 -154
  132. package/dist/__tests__/match-result.test.js.map +0 -1
  133. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  134. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  135. package/dist/__tests__/navigation-store.test.js +0 -440
  136. package/dist/__tests__/navigation-store.test.js.map +0 -1
  137. package/dist/__tests__/partial-update.test.d.ts +0 -2
  138. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  139. package/dist/__tests__/partial-update.test.js +0 -1009
  140. package/dist/__tests__/partial-update.test.js.map +0 -1
  141. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  142. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  143. package/dist/__tests__/reverse-types.test.js +0 -656
  144. package/dist/__tests__/reverse-types.test.js.map +0 -1
  145. package/dist/__tests__/route-definition.test.d.ts +0 -2
  146. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  147. package/dist/__tests__/route-definition.test.js +0 -55
  148. package/dist/__tests__/route-definition.test.js.map +0 -1
  149. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  150. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  151. package/dist/__tests__/router-helpers.test.js +0 -377
  152. package/dist/__tests__/router-helpers.test.js.map +0 -1
  153. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  154. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  155. package/dist/__tests__/router-integration-2.test.js +0 -426
  156. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  157. package/dist/__tests__/router-integration.test.d.ts +0 -2
  158. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  159. package/dist/__tests__/router-integration.test.js +0 -1051
  160. package/dist/__tests__/router-integration.test.js.map +0 -1
  161. package/dist/__tests__/search-params.test.d.ts +0 -5
  162. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  163. package/dist/__tests__/search-params.test.js +0 -306
  164. package/dist/__tests__/search-params.test.js.map +0 -1
  165. package/dist/__tests__/segment-system.test.d.ts +0 -2
  166. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  167. package/dist/__tests__/segment-system.test.js +0 -627
  168. package/dist/__tests__/segment-system.test.js.map +0 -1
  169. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  170. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  171. package/dist/__tests__/static-handler-types.test.js +0 -63
  172. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  173. package/dist/__tests__/urls.test.d.ts +0 -2
  174. package/dist/__tests__/urls.test.d.ts.map +0 -1
  175. package/dist/__tests__/urls.test.js +0 -421
  176. package/dist/__tests__/urls.test.js.map +0 -1
  177. package/dist/__tests__/use-mount.test.d.ts +0 -2
  178. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  179. package/dist/__tests__/use-mount.test.js +0 -35
  180. package/dist/__tests__/use-mount.test.js.map +0 -1
  181. package/dist/bin/rango.d.ts +0 -2
  182. package/dist/bin/rango.d.ts.map +0 -1
  183. package/dist/bin/rango.js.map +0 -1
  184. package/dist/browser/event-controller.d.ts +0 -191
  185. package/dist/browser/event-controller.d.ts.map +0 -1
  186. package/dist/browser/event-controller.js +0 -559
  187. package/dist/browser/event-controller.js.map +0 -1
  188. package/dist/browser/index.d.ts +0 -2
  189. package/dist/browser/index.d.ts.map +0 -1
  190. package/dist/browser/index.js +0 -14
  191. package/dist/browser/index.js.map +0 -1
  192. package/dist/browser/link-interceptor.d.ts +0 -38
  193. package/dist/browser/link-interceptor.d.ts.map +0 -1
  194. package/dist/browser/link-interceptor.js +0 -99
  195. package/dist/browser/link-interceptor.js.map +0 -1
  196. package/dist/browser/logging.d.ts +0 -10
  197. package/dist/browser/logging.d.ts.map +0 -1
  198. package/dist/browser/logging.js +0 -29
  199. package/dist/browser/logging.js.map +0 -1
  200. package/dist/browser/lru-cache.d.ts +0 -17
  201. package/dist/browser/lru-cache.d.ts.map +0 -1
  202. package/dist/browser/lru-cache.js +0 -50
  203. package/dist/browser/lru-cache.js.map +0 -1
  204. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  205. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  206. package/dist/browser/merge-segment-loaders.js +0 -102
  207. package/dist/browser/merge-segment-loaders.js.map +0 -1
  208. package/dist/browser/navigation-bridge.d.ts +0 -102
  209. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  210. package/dist/browser/navigation-bridge.js +0 -708
  211. package/dist/browser/navigation-bridge.js.map +0 -1
  212. package/dist/browser/navigation-client.d.ts +0 -25
  213. package/dist/browser/navigation-client.d.ts.map +0 -1
  214. package/dist/browser/navigation-client.js +0 -157
  215. package/dist/browser/navigation-client.js.map +0 -1
  216. package/dist/browser/navigation-store.d.ts +0 -101
  217. package/dist/browser/navigation-store.d.ts.map +0 -1
  218. package/dist/browser/navigation-store.js +0 -625
  219. package/dist/browser/navigation-store.js.map +0 -1
  220. package/dist/browser/partial-update.d.ts +0 -75
  221. package/dist/browser/partial-update.d.ts.map +0 -1
  222. package/dist/browser/partial-update.js +0 -426
  223. package/dist/browser/partial-update.js.map +0 -1
  224. package/dist/browser/react/Link.d.ts +0 -86
  225. package/dist/browser/react/Link.d.ts.map +0 -1
  226. package/dist/browser/react/Link.js +0 -128
  227. package/dist/browser/react/Link.js.map +0 -1
  228. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  229. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  230. package/dist/browser/react/NavigationProvider.js +0 -216
  231. package/dist/browser/react/NavigationProvider.js.map +0 -1
  232. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  233. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  234. package/dist/browser/react/ScrollRestoration.js +0 -57
  235. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  236. package/dist/browser/react/context.d.ts +0 -46
  237. package/dist/browser/react/context.d.ts.map +0 -1
  238. package/dist/browser/react/context.js +0 -10
  239. package/dist/browser/react/context.js.map +0 -1
  240. package/dist/browser/react/index.d.ts +0 -11
  241. package/dist/browser/react/index.d.ts.map +0 -1
  242. package/dist/browser/react/index.js +0 -22
  243. package/dist/browser/react/index.js.map +0 -1
  244. package/dist/browser/react/location-state-shared.d.ts +0 -63
  245. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  246. package/dist/browser/react/location-state-shared.js +0 -81
  247. package/dist/browser/react/location-state-shared.js.map +0 -1
  248. package/dist/browser/react/location-state.d.ts +0 -23
  249. package/dist/browser/react/location-state.d.ts.map +0 -1
  250. package/dist/browser/react/location-state.js +0 -29
  251. package/dist/browser/react/location-state.js.map +0 -1
  252. package/dist/browser/react/mount-context.d.ts +0 -24
  253. package/dist/browser/react/mount-context.d.ts.map +0 -1
  254. package/dist/browser/react/mount-context.js +0 -24
  255. package/dist/browser/react/mount-context.js.map +0 -1
  256. package/dist/browser/react/use-action.d.ts +0 -64
  257. package/dist/browser/react/use-action.d.ts.map +0 -1
  258. package/dist/browser/react/use-action.js +0 -134
  259. package/dist/browser/react/use-action.js.map +0 -1
  260. package/dist/browser/react/use-client-cache.d.ts +0 -41
  261. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  262. package/dist/browser/react/use-client-cache.js +0 -39
  263. package/dist/browser/react/use-client-cache.js.map +0 -1
  264. package/dist/browser/react/use-handle.d.ts +0 -31
  265. package/dist/browser/react/use-handle.d.ts.map +0 -1
  266. package/dist/browser/react/use-handle.js +0 -144
  267. package/dist/browser/react/use-handle.js.map +0 -1
  268. package/dist/browser/react/use-href.d.ts +0 -33
  269. package/dist/browser/react/use-href.d.ts.map +0 -1
  270. package/dist/browser/react/use-href.js +0 -39
  271. package/dist/browser/react/use-href.js.map +0 -1
  272. package/dist/browser/react/use-link-status.d.ts +0 -37
  273. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  274. package/dist/browser/react/use-link-status.js +0 -99
  275. package/dist/browser/react/use-link-status.js.map +0 -1
  276. package/dist/browser/react/use-mount.d.ts +0 -25
  277. package/dist/browser/react/use-mount.d.ts.map +0 -1
  278. package/dist/browser/react/use-mount.js +0 -30
  279. package/dist/browser/react/use-mount.js.map +0 -1
  280. package/dist/browser/react/use-navigation.d.ts +0 -27
  281. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  282. package/dist/browser/react/use-navigation.js +0 -87
  283. package/dist/browser/react/use-navigation.js.map +0 -1
  284. package/dist/browser/react/use-segments.d.ts +0 -38
  285. package/dist/browser/react/use-segments.d.ts.map +0 -1
  286. package/dist/browser/react/use-segments.js +0 -130
  287. package/dist/browser/react/use-segments.js.map +0 -1
  288. package/dist/browser/request-controller.d.ts +0 -26
  289. package/dist/browser/request-controller.d.ts.map +0 -1
  290. package/dist/browser/request-controller.js +0 -147
  291. package/dist/browser/request-controller.js.map +0 -1
  292. package/dist/browser/rsc-router.d.ts +0 -129
  293. package/dist/browser/rsc-router.d.ts.map +0 -1
  294. package/dist/browser/rsc-router.js +0 -195
  295. package/dist/browser/rsc-router.js.map +0 -1
  296. package/dist/browser/scroll-restoration.d.ts +0 -93
  297. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  298. package/dist/browser/scroll-restoration.js +0 -321
  299. package/dist/browser/scroll-restoration.js.map +0 -1
  300. package/dist/browser/segment-structure-assert.d.ts +0 -17
  301. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  302. package/dist/browser/segment-structure-assert.js +0 -59
  303. package/dist/browser/segment-structure-assert.js.map +0 -1
  304. package/dist/browser/server-action-bridge.d.ts +0 -26
  305. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  306. package/dist/browser/server-action-bridge.js +0 -668
  307. package/dist/browser/server-action-bridge.js.map +0 -1
  308. package/dist/browser/shallow.d.ts +0 -12
  309. package/dist/browser/shallow.d.ts.map +0 -1
  310. package/dist/browser/shallow.js +0 -34
  311. package/dist/browser/shallow.js.map +0 -1
  312. package/dist/browser/types.d.ts +0 -369
  313. package/dist/browser/types.d.ts.map +0 -1
  314. package/dist/browser/types.js +0 -2
  315. package/dist/browser/types.js.map +0 -1
  316. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  317. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  318. package/dist/build/__tests__/generate-cli.test.js +0 -237
  319. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  320. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  321. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  322. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  323. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  324. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  325. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  326. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  327. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  328. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  329. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  330. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  331. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  332. package/dist/build/generate-manifest.d.ts +0 -81
  333. package/dist/build/generate-manifest.d.ts.map +0 -1
  334. package/dist/build/generate-manifest.js +0 -276
  335. package/dist/build/generate-manifest.js.map +0 -1
  336. package/dist/build/generate-route-types.d.ts +0 -115
  337. package/dist/build/generate-route-types.d.ts.map +0 -1
  338. package/dist/build/generate-route-types.js +0 -740
  339. package/dist/build/generate-route-types.js.map +0 -1
  340. package/dist/build/index.d.ts +0 -21
  341. package/dist/build/index.d.ts.map +0 -1
  342. package/dist/build/index.js +0 -21
  343. package/dist/build/index.js.map +0 -1
  344. package/dist/build/route-trie.d.ts +0 -71
  345. package/dist/build/route-trie.d.ts.map +0 -1
  346. package/dist/build/route-trie.js +0 -175
  347. package/dist/build/route-trie.js.map +0 -1
  348. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  349. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  350. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  351. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  352. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  353. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  354. package/dist/cache/__tests__/document-cache.test.js +0 -345
  355. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  356. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  357. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  358. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  359. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  360. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  361. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  362. package/dist/cache/__tests__/memory-store.test.js +0 -367
  363. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  364. package/dist/cache/cache-scope.d.ts +0 -102
  365. package/dist/cache/cache-scope.d.ts.map +0 -1
  366. package/dist/cache/cache-scope.js +0 -440
  367. package/dist/cache/cache-scope.js.map +0 -1
  368. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  369. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  370. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  371. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  372. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  373. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  374. package/dist/cache/cf/cf-cache-store.js +0 -242
  375. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  376. package/dist/cache/cf/index.d.ts +0 -14
  377. package/dist/cache/cf/index.d.ts.map +0 -1
  378. package/dist/cache/cf/index.js +0 -17
  379. package/dist/cache/cf/index.js.map +0 -1
  380. package/dist/cache/document-cache.d.ts +0 -64
  381. package/dist/cache/document-cache.d.ts.map +0 -1
  382. package/dist/cache/document-cache.js +0 -228
  383. package/dist/cache/document-cache.js.map +0 -1
  384. package/dist/cache/index.d.ts +0 -19
  385. package/dist/cache/index.d.ts.map +0 -1
  386. package/dist/cache/index.js +0 -21
  387. package/dist/cache/index.js.map +0 -1
  388. package/dist/cache/memory-segment-store.d.ts +0 -110
  389. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  390. package/dist/cache/memory-segment-store.js +0 -117
  391. package/dist/cache/memory-segment-store.js.map +0 -1
  392. package/dist/cache/memory-store.d.ts +0 -41
  393. package/dist/cache/memory-store.d.ts.map +0 -1
  394. package/dist/cache/memory-store.js +0 -191
  395. package/dist/cache/memory-store.js.map +0 -1
  396. package/dist/cache/types.d.ts +0 -317
  397. package/dist/cache/types.d.ts.map +0 -1
  398. package/dist/cache/types.js +0 -12
  399. package/dist/cache/types.js.map +0 -1
  400. package/dist/client.d.ts +0 -248
  401. package/dist/client.d.ts.map +0 -1
  402. package/dist/client.js +0 -367
  403. package/dist/client.js.map +0 -1
  404. package/dist/client.rsc.d.ts +0 -26
  405. package/dist/client.rsc.d.ts.map +0 -1
  406. package/dist/client.rsc.js +0 -46
  407. package/dist/client.rsc.js.map +0 -1
  408. package/dist/component-utils.d.ts +0 -36
  409. package/dist/component-utils.d.ts.map +0 -1
  410. package/dist/component-utils.js +0 -61
  411. package/dist/component-utils.js.map +0 -1
  412. package/dist/components/DefaultDocument.d.ts +0 -13
  413. package/dist/components/DefaultDocument.d.ts.map +0 -1
  414. package/dist/components/DefaultDocument.js +0 -15
  415. package/dist/components/DefaultDocument.js.map +0 -1
  416. package/dist/debug.d.ts +0 -58
  417. package/dist/debug.d.ts.map +0 -1
  418. package/dist/debug.js +0 -157
  419. package/dist/debug.js.map +0 -1
  420. package/dist/default-error-boundary.d.ts +0 -11
  421. package/dist/default-error-boundary.d.ts.map +0 -1
  422. package/dist/default-error-boundary.js +0 -45
  423. package/dist/default-error-boundary.js.map +0 -1
  424. package/dist/deps/browser.d.ts +0 -2
  425. package/dist/deps/browser.d.ts.map +0 -1
  426. package/dist/deps/browser.js +0 -3
  427. package/dist/deps/browser.js.map +0 -1
  428. package/dist/deps/html-stream-client.d.ts +0 -2
  429. package/dist/deps/html-stream-client.d.ts.map +0 -1
  430. package/dist/deps/html-stream-client.js +0 -3
  431. package/dist/deps/html-stream-client.js.map +0 -1
  432. package/dist/deps/html-stream-server.d.ts +0 -2
  433. package/dist/deps/html-stream-server.d.ts.map +0 -1
  434. package/dist/deps/html-stream-server.js +0 -3
  435. package/dist/deps/html-stream-server.js.map +0 -1
  436. package/dist/deps/rsc.d.ts +0 -2
  437. package/dist/deps/rsc.d.ts.map +0 -1
  438. package/dist/deps/rsc.js +0 -4
  439. package/dist/deps/rsc.js.map +0 -1
  440. package/dist/deps/ssr.d.ts +0 -2
  441. package/dist/deps/ssr.d.ts.map +0 -1
  442. package/dist/deps/ssr.js +0 -3
  443. package/dist/deps/ssr.js.map +0 -1
  444. package/dist/errors.d.ts +0 -174
  445. package/dist/errors.d.ts.map +0 -1
  446. package/dist/errors.js +0 -241
  447. package/dist/errors.js.map +0 -1
  448. package/dist/handle.d.ts +0 -78
  449. package/dist/handle.d.ts.map +0 -1
  450. package/dist/handle.js +0 -82
  451. package/dist/handle.js.map +0 -1
  452. package/dist/handles/MetaTags.d.ts +0 -14
  453. package/dist/handles/MetaTags.d.ts.map +0 -1
  454. package/dist/handles/MetaTags.js +0 -136
  455. package/dist/handles/MetaTags.js.map +0 -1
  456. package/dist/handles/index.d.ts +0 -6
  457. package/dist/handles/index.d.ts.map +0 -1
  458. package/dist/handles/index.js +0 -6
  459. package/dist/handles/index.js.map +0 -1
  460. package/dist/handles/meta.d.ts +0 -39
  461. package/dist/handles/meta.d.ts.map +0 -1
  462. package/dist/handles/meta.js +0 -202
  463. package/dist/handles/meta.js.map +0 -1
  464. package/dist/host/__tests__/errors.test.d.ts +0 -2
  465. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  466. package/dist/host/__tests__/errors.test.js +0 -76
  467. package/dist/host/__tests__/errors.test.js.map +0 -1
  468. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  469. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  470. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  471. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  472. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  473. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  474. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  475. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  476. package/dist/host/__tests__/router.test.d.ts +0 -2
  477. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  478. package/dist/host/__tests__/router.test.js +0 -241
  479. package/dist/host/__tests__/router.test.js.map +0 -1
  480. package/dist/host/__tests__/testing.test.d.ts +0 -2
  481. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  482. package/dist/host/__tests__/testing.test.js +0 -64
  483. package/dist/host/__tests__/testing.test.js.map +0 -1
  484. package/dist/host/__tests__/utils.test.d.ts +0 -2
  485. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  486. package/dist/host/__tests__/utils.test.js +0 -29
  487. package/dist/host/__tests__/utils.test.js.map +0 -1
  488. package/dist/host/cookie-handler.d.ts +0 -34
  489. package/dist/host/cookie-handler.d.ts.map +0 -1
  490. package/dist/host/cookie-handler.js +0 -124
  491. package/dist/host/cookie-handler.js.map +0 -1
  492. package/dist/host/errors.d.ts +0 -56
  493. package/dist/host/errors.d.ts.map +0 -1
  494. package/dist/host/errors.js +0 -79
  495. package/dist/host/errors.js.map +0 -1
  496. package/dist/host/index.d.ts +0 -29
  497. package/dist/host/index.d.ts.map +0 -1
  498. package/dist/host/index.js +0 -32
  499. package/dist/host/index.js.map +0 -1
  500. package/dist/host/pattern-matcher.d.ts +0 -36
  501. package/dist/host/pattern-matcher.d.ts.map +0 -1
  502. package/dist/host/pattern-matcher.js +0 -172
  503. package/dist/host/pattern-matcher.js.map +0 -1
  504. package/dist/host/router.d.ts +0 -26
  505. package/dist/host/router.d.ts.map +0 -1
  506. package/dist/host/router.js +0 -218
  507. package/dist/host/router.js.map +0 -1
  508. package/dist/host/testing.d.ts +0 -36
  509. package/dist/host/testing.d.ts.map +0 -1
  510. package/dist/host/testing.js +0 -55
  511. package/dist/host/testing.js.map +0 -1
  512. package/dist/host/types.d.ts +0 -115
  513. package/dist/host/types.d.ts.map +0 -1
  514. package/dist/host/types.js +0 -7
  515. package/dist/host/types.js.map +0 -1
  516. package/dist/host/utils.d.ts +0 -21
  517. package/dist/host/utils.d.ts.map +0 -1
  518. package/dist/host/utils.js +0 -23
  519. package/dist/host/utils.js.map +0 -1
  520. package/dist/href-client.d.ts +0 -131
  521. package/dist/href-client.d.ts.map +0 -1
  522. package/dist/href-client.js +0 -64
  523. package/dist/href-client.js.map +0 -1
  524. package/dist/href-context.d.ts +0 -29
  525. package/dist/href-context.d.ts.map +0 -1
  526. package/dist/href-context.js +0 -21
  527. package/dist/href-context.js.map +0 -1
  528. package/dist/index.d.ts +0 -73
  529. package/dist/index.d.ts.map +0 -1
  530. package/dist/index.js +0 -91
  531. package/dist/index.js.map +0 -1
  532. package/dist/index.rsc.d.ts +0 -32
  533. package/dist/index.rsc.d.ts.map +0 -1
  534. package/dist/index.rsc.js +0 -40
  535. package/dist/index.rsc.js.map +0 -1
  536. package/dist/internal-debug.d.ts +0 -2
  537. package/dist/internal-debug.d.ts.map +0 -1
  538. package/dist/internal-debug.js +0 -5
  539. package/dist/internal-debug.js.map +0 -1
  540. package/dist/loader.d.ts +0 -14
  541. package/dist/loader.d.ts.map +0 -1
  542. package/dist/loader.js +0 -20
  543. package/dist/loader.js.map +0 -1
  544. package/dist/loader.rsc.d.ts +0 -19
  545. package/dist/loader.rsc.d.ts.map +0 -1
  546. package/dist/loader.rsc.js +0 -99
  547. package/dist/loader.rsc.js.map +0 -1
  548. package/dist/network-error-thrower.d.ts +0 -17
  549. package/dist/network-error-thrower.d.ts.map +0 -1
  550. package/dist/network-error-thrower.js +0 -14
  551. package/dist/network-error-thrower.js.map +0 -1
  552. package/dist/outlet-context.d.ts +0 -13
  553. package/dist/outlet-context.d.ts.map +0 -1
  554. package/dist/outlet-context.js +0 -3
  555. package/dist/outlet-context.js.map +0 -1
  556. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  557. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  558. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  559. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  560. package/dist/prerender/param-hash.d.ts +0 -16
  561. package/dist/prerender/param-hash.d.ts.map +0 -1
  562. package/dist/prerender/param-hash.js +0 -36
  563. package/dist/prerender/param-hash.js.map +0 -1
  564. package/dist/prerender/store.d.ts +0 -38
  565. package/dist/prerender/store.d.ts.map +0 -1
  566. package/dist/prerender/store.js +0 -61
  567. package/dist/prerender/store.js.map +0 -1
  568. package/dist/prerender.d.ts +0 -66
  569. package/dist/prerender.d.ts.map +0 -1
  570. package/dist/prerender.js +0 -57
  571. package/dist/prerender.js.map +0 -1
  572. package/dist/reverse.d.ts +0 -196
  573. package/dist/reverse.d.ts.map +0 -1
  574. package/dist/reverse.js +0 -78
  575. package/dist/reverse.js.map +0 -1
  576. package/dist/root-error-boundary.d.ts +0 -33
  577. package/dist/root-error-boundary.d.ts.map +0 -1
  578. package/dist/root-error-boundary.js +0 -165
  579. package/dist/root-error-boundary.js.map +0 -1
  580. package/dist/route-content-wrapper.d.ts +0 -46
  581. package/dist/route-content-wrapper.d.ts.map +0 -1
  582. package/dist/route-content-wrapper.js +0 -77
  583. package/dist/route-content-wrapper.js.map +0 -1
  584. package/dist/route-definition.d.ts +0 -421
  585. package/dist/route-definition.d.ts.map +0 -1
  586. package/dist/route-definition.js +0 -868
  587. package/dist/route-definition.js.map +0 -1
  588. package/dist/route-map-builder.d.ts +0 -155
  589. package/dist/route-map-builder.d.ts.map +0 -1
  590. package/dist/route-map-builder.js +0 -237
  591. package/dist/route-map-builder.js.map +0 -1
  592. package/dist/route-types.d.ts +0 -165
  593. package/dist/route-types.d.ts.map +0 -1
  594. package/dist/route-types.js +0 -7
  595. package/dist/route-types.js.map +0 -1
  596. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  597. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  598. package/dist/router/__tests__/handler-context.test.js +0 -65
  599. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  600. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  601. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  602. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  603. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  604. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  605. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  606. package/dist/router/__tests__/match-context.test.js +0 -92
  607. package/dist/router/__tests__/match-context.test.js.map +0 -1
  608. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  609. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  610. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  611. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  612. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  613. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  614. package/dist/router/__tests__/match-result.test.js +0 -457
  615. package/dist/router/__tests__/match-result.test.js.map +0 -1
  616. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  617. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  618. package/dist/router/__tests__/on-error.test.js +0 -678
  619. package/dist/router/__tests__/on-error.test.js.map +0 -1
  620. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  621. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  622. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  623. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  624. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  625. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  626. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  627. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  628. package/dist/router/error-handling.d.ts +0 -77
  629. package/dist/router/error-handling.d.ts.map +0 -1
  630. package/dist/router/error-handling.js +0 -202
  631. package/dist/router/error-handling.js.map +0 -1
  632. package/dist/router/handler-context.d.ts +0 -20
  633. package/dist/router/handler-context.d.ts.map +0 -1
  634. package/dist/router/handler-context.js +0 -198
  635. package/dist/router/handler-context.js.map +0 -1
  636. package/dist/router/intercept-resolution.d.ts +0 -66
  637. package/dist/router/intercept-resolution.d.ts.map +0 -1
  638. package/dist/router/intercept-resolution.js +0 -246
  639. package/dist/router/intercept-resolution.js.map +0 -1
  640. package/dist/router/loader-resolution.d.ts +0 -64
  641. package/dist/router/loader-resolution.d.ts.map +0 -1
  642. package/dist/router/loader-resolution.js +0 -284
  643. package/dist/router/loader-resolution.js.map +0 -1
  644. package/dist/router/logging.d.ts +0 -15
  645. package/dist/router/logging.d.ts.map +0 -1
  646. package/dist/router/logging.js +0 -99
  647. package/dist/router/logging.js.map +0 -1
  648. package/dist/router/manifest.d.ts +0 -22
  649. package/dist/router/manifest.d.ts.map +0 -1
  650. package/dist/router/manifest.js +0 -181
  651. package/dist/router/manifest.js.map +0 -1
  652. package/dist/router/match-api.d.ts +0 -35
  653. package/dist/router/match-api.d.ts.map +0 -1
  654. package/dist/router/match-api.js +0 -406
  655. package/dist/router/match-api.js.map +0 -1
  656. package/dist/router/match-context.d.ts +0 -206
  657. package/dist/router/match-context.d.ts.map +0 -1
  658. package/dist/router/match-context.js +0 -17
  659. package/dist/router/match-context.js.map +0 -1
  660. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  661. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  662. package/dist/router/match-middleware/background-revalidation.js +0 -75
  663. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  664. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  665. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  666. package/dist/router/match-middleware/cache-lookup.js +0 -257
  667. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  668. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  669. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  670. package/dist/router/match-middleware/cache-store.js +0 -108
  671. package/dist/router/match-middleware/cache-store.js.map +0 -1
  672. package/dist/router/match-middleware/index.d.ts +0 -81
  673. package/dist/router/match-middleware/index.d.ts.map +0 -1
  674. package/dist/router/match-middleware/index.js +0 -80
  675. package/dist/router/match-middleware/index.js.map +0 -1
  676. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  677. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  678. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  679. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  680. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  681. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  682. package/dist/router/match-middleware/segment-resolution.js +0 -53
  683. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  684. package/dist/router/match-pipelines.d.ts +0 -147
  685. package/dist/router/match-pipelines.d.ts.map +0 -1
  686. package/dist/router/match-pipelines.js +0 -82
  687. package/dist/router/match-pipelines.js.map +0 -1
  688. package/dist/router/match-result.d.ts +0 -126
  689. package/dist/router/match-result.d.ts.map +0 -1
  690. package/dist/router/match-result.js +0 -93
  691. package/dist/router/match-result.js.map +0 -1
  692. package/dist/router/metrics.d.ts +0 -20
  693. package/dist/router/metrics.d.ts.map +0 -1
  694. package/dist/router/metrics.js +0 -47
  695. package/dist/router/metrics.js.map +0 -1
  696. package/dist/router/middleware.d.ts +0 -249
  697. package/dist/router/middleware.d.ts.map +0 -1
  698. package/dist/router/middleware.js +0 -434
  699. package/dist/router/middleware.js.map +0 -1
  700. package/dist/router/middleware.test.d.ts +0 -2
  701. package/dist/router/middleware.test.d.ts.map +0 -1
  702. package/dist/router/middleware.test.js +0 -816
  703. package/dist/router/middleware.test.js.map +0 -1
  704. package/dist/router/pattern-matching.d.ts +0 -149
  705. package/dist/router/pattern-matching.d.ts.map +0 -1
  706. package/dist/router/pattern-matching.js +0 -349
  707. package/dist/router/pattern-matching.js.map +0 -1
  708. package/dist/router/revalidation.d.ts +0 -44
  709. package/dist/router/revalidation.d.ts.map +0 -1
  710. package/dist/router/revalidation.js +0 -147
  711. package/dist/router/revalidation.js.map +0 -1
  712. package/dist/router/router-context.d.ts +0 -135
  713. package/dist/router/router-context.d.ts.map +0 -1
  714. package/dist/router/router-context.js +0 -36
  715. package/dist/router/router-context.js.map +0 -1
  716. package/dist/router/segment-resolution.d.ts +0 -127
  717. package/dist/router/segment-resolution.d.ts.map +0 -1
  718. package/dist/router/segment-resolution.js +0 -919
  719. package/dist/router/segment-resolution.js.map +0 -1
  720. package/dist/router/trie-matching.d.ts +0 -40
  721. package/dist/router/trie-matching.d.ts.map +0 -1
  722. package/dist/router/trie-matching.js +0 -127
  723. package/dist/router/trie-matching.js.map +0 -1
  724. package/dist/router/types.d.ts +0 -136
  725. package/dist/router/types.d.ts.map +0 -1
  726. package/dist/router/types.js +0 -7
  727. package/dist/router/types.js.map +0 -1
  728. package/dist/router.d.ts +0 -753
  729. package/dist/router.d.ts.map +0 -1
  730. package/dist/router.gen.d.ts +0 -6
  731. package/dist/router.gen.d.ts.map +0 -1
  732. package/dist/router.gen.js +0 -6
  733. package/dist/router.gen.js.map +0 -1
  734. package/dist/router.js +0 -1304
  735. package/dist/router.js.map +0 -1
  736. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  737. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  738. package/dist/rsc/__tests__/helpers.test.js +0 -140
  739. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  740. package/dist/rsc/handler.d.ts +0 -45
  741. package/dist/rsc/handler.d.ts.map +0 -1
  742. package/dist/rsc/handler.js +0 -1172
  743. package/dist/rsc/handler.js.map +0 -1
  744. package/dist/rsc/helpers.d.ts +0 -16
  745. package/dist/rsc/helpers.d.ts.map +0 -1
  746. package/dist/rsc/helpers.js +0 -55
  747. package/dist/rsc/helpers.js.map +0 -1
  748. package/dist/rsc/index.d.ts +0 -22
  749. package/dist/rsc/index.d.ts.map +0 -1
  750. package/dist/rsc/index.js +0 -23
  751. package/dist/rsc/index.js.map +0 -1
  752. package/dist/rsc/nonce.d.ts +0 -9
  753. package/dist/rsc/nonce.d.ts.map +0 -1
  754. package/dist/rsc/nonce.js +0 -18
  755. package/dist/rsc/nonce.js.map +0 -1
  756. package/dist/rsc/types.d.ts +0 -206
  757. package/dist/rsc/types.d.ts.map +0 -1
  758. package/dist/rsc/types.js +0 -8
  759. package/dist/rsc/types.js.map +0 -1
  760. package/dist/search-params.d.ts +0 -103
  761. package/dist/search-params.d.ts.map +0 -1
  762. package/dist/search-params.js +0 -74
  763. package/dist/search-params.js.map +0 -1
  764. package/dist/segment-system.d.ts +0 -75
  765. package/dist/segment-system.d.ts.map +0 -1
  766. package/dist/segment-system.js +0 -336
  767. package/dist/segment-system.js.map +0 -1
  768. package/dist/server/context.d.ts +0 -245
  769. package/dist/server/context.d.ts.map +0 -1
  770. package/dist/server/context.js +0 -197
  771. package/dist/server/context.js.map +0 -1
  772. package/dist/server/fetchable-loader-store.d.ts +0 -18
  773. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  774. package/dist/server/fetchable-loader-store.js +0 -18
  775. package/dist/server/fetchable-loader-store.js.map +0 -1
  776. package/dist/server/handle-store.d.ts +0 -85
  777. package/dist/server/handle-store.d.ts.map +0 -1
  778. package/dist/server/handle-store.js +0 -142
  779. package/dist/server/handle-store.js.map +0 -1
  780. package/dist/server/loader-registry.d.ts +0 -55
  781. package/dist/server/loader-registry.d.ts.map +0 -1
  782. package/dist/server/loader-registry.js +0 -132
  783. package/dist/server/loader-registry.js.map +0 -1
  784. package/dist/server/request-context.d.ts +0 -226
  785. package/dist/server/request-context.d.ts.map +0 -1
  786. package/dist/server/request-context.js +0 -290
  787. package/dist/server/request-context.js.map +0 -1
  788. package/dist/server/root-layout.d.ts +0 -4
  789. package/dist/server/root-layout.d.ts.map +0 -1
  790. package/dist/server/root-layout.js +0 -5
  791. package/dist/server/root-layout.js.map +0 -1
  792. package/dist/server.d.ts +0 -15
  793. package/dist/server.d.ts.map +0 -1
  794. package/dist/server.js +0 -20
  795. package/dist/server.js.map +0 -1
  796. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  797. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  798. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  799. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  800. package/dist/ssr/index.d.ts +0 -98
  801. package/dist/ssr/index.d.ts.map +0 -1
  802. package/dist/ssr/index.js +0 -158
  803. package/dist/ssr/index.js.map +0 -1
  804. package/dist/static-handler.d.ts +0 -50
  805. package/dist/static-handler.d.ts.map +0 -1
  806. package/dist/static-handler.gen.d.ts +0 -5
  807. package/dist/static-handler.gen.d.ts.map +0 -1
  808. package/dist/static-handler.gen.js +0 -5
  809. package/dist/static-handler.gen.js.map +0 -1
  810. package/dist/static-handler.js +0 -29
  811. package/dist/static-handler.js.map +0 -1
  812. package/dist/theme/ThemeProvider.d.ts +0 -20
  813. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  814. package/dist/theme/ThemeProvider.js +0 -240
  815. package/dist/theme/ThemeProvider.js.map +0 -1
  816. package/dist/theme/ThemeScript.d.ts +0 -48
  817. package/dist/theme/ThemeScript.d.ts.map +0 -1
  818. package/dist/theme/ThemeScript.js +0 -13
  819. package/dist/theme/ThemeScript.js.map +0 -1
  820. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  821. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  822. package/dist/theme/__tests__/theme.test.js +0 -103
  823. package/dist/theme/__tests__/theme.test.js.map +0 -1
  824. package/dist/theme/constants.d.ts +0 -29
  825. package/dist/theme/constants.d.ts.map +0 -1
  826. package/dist/theme/constants.js +0 -48
  827. package/dist/theme/constants.js.map +0 -1
  828. package/dist/theme/index.d.ts +0 -31
  829. package/dist/theme/index.d.ts.map +0 -1
  830. package/dist/theme/index.js +0 -36
  831. package/dist/theme/index.js.map +0 -1
  832. package/dist/theme/theme-context.d.ts +0 -40
  833. package/dist/theme/theme-context.d.ts.map +0 -1
  834. package/dist/theme/theme-context.js +0 -60
  835. package/dist/theme/theme-context.js.map +0 -1
  836. package/dist/theme/theme-script.d.ts +0 -27
  837. package/dist/theme/theme-script.d.ts.map +0 -1
  838. package/dist/theme/theme-script.js +0 -147
  839. package/dist/theme/theme-script.js.map +0 -1
  840. package/dist/theme/types.d.ts +0 -163
  841. package/dist/theme/types.d.ts.map +0 -1
  842. package/dist/theme/types.js +0 -11
  843. package/dist/theme/types.js.map +0 -1
  844. package/dist/theme/use-theme.d.ts +0 -12
  845. package/dist/theme/use-theme.d.ts.map +0 -1
  846. package/dist/theme/use-theme.js +0 -40
  847. package/dist/theme/use-theme.js.map +0 -1
  848. package/dist/types.d.ts +0 -1479
  849. package/dist/types.d.ts.map +0 -1
  850. package/dist/types.js +0 -10
  851. package/dist/types.js.map +0 -1
  852. package/dist/urls.d.ts +0 -441
  853. package/dist/urls.d.ts.map +0 -1
  854. package/dist/urls.gen.d.ts +0 -8
  855. package/dist/urls.gen.d.ts.map +0 -1
  856. package/dist/urls.gen.js +0 -8
  857. package/dist/urls.gen.js.map +0 -1
  858. package/dist/urls.js +0 -443
  859. package/dist/urls.js.map +0 -1
  860. package/dist/use-loader.d.ts +0 -127
  861. package/dist/use-loader.d.ts.map +0 -1
  862. package/dist/use-loader.js +0 -237
  863. package/dist/use-loader.js.map +0 -1
  864. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  865. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  866. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  867. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  868. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  869. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  870. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  871. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  872. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  873. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  874. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  875. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  876. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  877. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  878. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  879. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  880. package/dist/vite/ast-handler-extract.d.ts +0 -49
  881. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  882. package/dist/vite/ast-handler-extract.js +0 -249
  883. package/dist/vite/ast-handler-extract.js.map +0 -1
  884. package/dist/vite/expose-action-id.d.ts +0 -19
  885. package/dist/vite/expose-action-id.d.ts.map +0 -1
  886. package/dist/vite/expose-action-id.js +0 -250
  887. package/dist/vite/expose-action-id.js.map +0 -1
  888. package/dist/vite/expose-id-utils.d.ts +0 -69
  889. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  890. package/dist/vite/expose-id-utils.js +0 -289
  891. package/dist/vite/expose-id-utils.js.map +0 -1
  892. package/dist/vite/expose-internal-ids.d.ts +0 -22
  893. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  894. package/dist/vite/expose-internal-ids.js +0 -886
  895. package/dist/vite/expose-internal-ids.js.map +0 -1
  896. package/dist/vite/index.d.ts +0 -149
  897. package/dist/vite/index.d.ts.map +0 -1
  898. package/dist/vite/index.js.map +0 -1
  899. package/dist/vite/index.named-routes.gen.ts +0 -103
  900. package/dist/vite/package-resolution.d.ts +0 -43
  901. package/dist/vite/package-resolution.d.ts.map +0 -1
  902. package/dist/vite/package-resolution.js +0 -112
  903. package/dist/vite/package-resolution.js.map +0 -1
  904. package/dist/vite/virtual-entries.d.ts +0 -25
  905. package/dist/vite/virtual-entries.d.ts.map +0 -1
  906. package/dist/vite/virtual-entries.js +0 -110
  907. package/dist/vite/virtual-entries.js.map +0 -1
  908. package/src/browser/debug-channel.ts +0 -112
@@ -357,12 +357,17 @@ function buildRouteMapFromBlock(
357
357
  /**
358
358
  * Build route map and search schemas together.
359
359
  * Internal helper used by the include resolution path.
360
+ *
361
+ * @param inlineBlock - Optional pre-extracted code block (e.g. from an inline
362
+ * builder function). When provided, variableName is ignored and the block
363
+ * is parsed directly for path()/include() calls.
360
364
  */
361
365
  export function buildCombinedRouteMapWithSearch(
362
366
  filePath: string,
363
367
  variableName?: string,
364
368
  visited?: Set<string>,
365
369
  diagnosticsOut?: UnresolvableInclude[],
370
+ inlineBlock?: string,
366
371
  ): {
367
372
  routes: Record<string, string>;
368
373
  searchSchemas: Record<string, Record<string, string>>;
@@ -384,7 +389,9 @@ export function buildCombinedRouteMapWithSearch(
384
389
  }
385
390
 
386
391
  let block: string;
387
- if (variableName) {
392
+ if (inlineBlock) {
393
+ block = inlineBlock;
394
+ } else if (variableName) {
388
395
  const extracted = extractUrlsBlockForVariable(source, variableName);
389
396
  if (!extracted) return { routes: {}, searchSchemas: {} };
390
397
  block = extracted;
@@ -157,13 +157,26 @@ export function formatNestedRouterConflictError(
157
157
  // ---------------------------------------------------------------------------
158
158
 
159
159
  /**
160
- * Extract the url patterns variable from a router file using AST.
161
- * Detects two patterns:
160
+ * Result of extracting URL patterns from a router file.
161
+ * - "variable": a named variable reference (e.g., `.routes(patterns)` or `urls: patterns`)
162
+ * - "inline": an inline builder function (e.g., `.routes(({ path }) => [...])` or `urls: ({ path }) => [...]`)
163
+ */
164
+ export type UrlsExtractionResult =
165
+ | { kind: "variable"; name: string }
166
+ | { kind: "inline"; block: string };
167
+
168
+ /**
169
+ * Extract the url patterns from a router file using AST.
170
+ * Detects four patterns:
162
171
  * 1. createRouter(...).routes(variableName)
163
172
  * 2. createRouter({ urls: variableName, ... })
164
- * Returns the local variable name.
173
+ * 3. createRouter(...).routes(({ path, ... }) => [...])
174
+ * 4. createRouter({ urls: ({ path, ... }) => [...], ... })
175
+ * Returns either a variable name or an inline code block.
165
176
  */
166
- export function extractUrlsVariableFromRouter(code: string): string | null {
177
+ export function extractUrlsFromRouter(
178
+ code: string,
179
+ ): UrlsExtractionResult | null {
167
180
  const sourceFile = ts.createSourceFile(
168
181
  "router.tsx",
169
182
  code,
@@ -171,7 +184,7 @@ export function extractUrlsVariableFromRouter(code: string): string | null {
171
184
  true,
172
185
  ts.ScriptKind.TSX,
173
186
  );
174
- let result: string | null = null;
187
+ let result: UrlsExtractionResult | null = null;
175
188
 
176
189
  function isCreateRouterCall(node: ts.Node): boolean {
177
190
  if (!ts.isCallExpression(node)) return false;
@@ -179,44 +192,108 @@ export function extractUrlsVariableFromRouter(code: string): string | null {
179
192
  return ts.isIdentifier(callee) && callee.text === "createRouter";
180
193
  }
181
194
 
195
+ /** Check if a node is an arrow/function expression (inline builder). */
196
+ function isInlineBuilder(node: ts.Node): boolean {
197
+ return ts.isArrowFunction(node) || ts.isFunctionExpression(node);
198
+ }
199
+
200
+ /** Check if a .routes() call chains from createRouter(). */
201
+ function isRoutesOnCreateRouter(node: ts.CallExpression): boolean {
202
+ if (
203
+ !ts.isPropertyAccessExpression(node.expression) ||
204
+ node.expression.name.text !== "routes"
205
+ )
206
+ return false;
207
+ let inner: ts.Expression = node.expression.expression;
208
+ while (
209
+ ts.isCallExpression(inner) &&
210
+ ts.isPropertyAccessExpression(inner.expression)
211
+ ) {
212
+ inner = inner.expression.expression;
213
+ }
214
+ return isCreateRouterCall(inner);
215
+ }
216
+
182
217
  function visit(node: ts.Node) {
183
218
  if (result) return;
184
219
 
185
- // Pattern 1: createRouter(...).routes(variableName)
186
- // The AST shape is CallExpression(.routes) -> PropertyAccessExpression -> CallExpression(createRouter)
220
+ // Pattern 1 & 3: createRouter(...).routes(variableName | builder)
187
221
  if (
188
222
  ts.isCallExpression(node) &&
189
- ts.isPropertyAccessExpression(node.expression) &&
190
- node.expression.name.text === "routes" &&
191
223
  node.arguments.length >= 1 &&
192
- ts.isIdentifier(node.arguments[0])
224
+ isRoutesOnCreateRouter(node)
193
225
  ) {
194
- // Walk up the chain: createRouter().middleware(...).routes(x) etc.
195
- // The innermost call should be createRouter(...)
196
- let inner: ts.Expression = node.expression.expression;
197
- while (
198
- ts.isCallExpression(inner) &&
199
- ts.isPropertyAccessExpression(inner.expression)
200
- ) {
201
- inner = inner.expression.expression;
202
- }
203
- if (isCreateRouterCall(inner)) {
204
- result = (node.arguments[0] as ts.Identifier).text;
205
- return;
226
+ const arg = node.arguments[0];
227
+ if (ts.isIdentifier(arg)) {
228
+ result = { kind: "variable", name: arg.text };
229
+ } else if (isInlineBuilder(arg)) {
230
+ result = { kind: "inline", block: arg.getText(sourceFile) };
206
231
  }
232
+ return;
207
233
  }
208
234
 
209
- // Pattern 2: createRouter({ urls: variableName, ... })
235
+ // Pattern 2 & 4: createRouter({ urls: variableName | builder, ... })
210
236
  if (isCreateRouterCall(node)) {
211
237
  const callExpr = node as ts.CallExpression;
212
- for (const arg of callExpr.arguments) {
238
+ for (const callArg of callExpr.arguments) {
239
+ if (ts.isObjectLiteralExpression(callArg)) {
240
+ for (const prop of callArg.properties) {
241
+ if (
242
+ ts.isPropertyAssignment(prop) &&
243
+ ts.isIdentifier(prop.name) &&
244
+ prop.name.text === "urls"
245
+ ) {
246
+ if (ts.isIdentifier(prop.initializer)) {
247
+ result = { kind: "variable", name: prop.initializer.text };
248
+ } else if (isInlineBuilder(prop.initializer)) {
249
+ result = {
250
+ kind: "inline",
251
+ block: prop.initializer.getText(sourceFile),
252
+ };
253
+ }
254
+ return;
255
+ }
256
+ }
257
+ }
258
+ }
259
+ }
260
+
261
+ ts.forEachChild(node, visit);
262
+ }
263
+
264
+ visit(sourceFile);
265
+ return result;
266
+ }
267
+
268
+ /**
269
+ * Extract the `basename` string literal from createRouter({ basename: "..." }).
270
+ * Returns the basename value or undefined if not present.
271
+ */
272
+ export function extractBasenameFromRouter(code: string): string | undefined {
273
+ const sourceFile = ts.createSourceFile(
274
+ "router.tsx",
275
+ code,
276
+ ts.ScriptTarget.Latest,
277
+ true,
278
+ ts.ScriptKind.TSX,
279
+ );
280
+ let result: string | undefined;
281
+
282
+ function visit(node: ts.Node) {
283
+ if (result !== undefined) return;
284
+ if (
285
+ ts.isCallExpression(node) &&
286
+ ts.isIdentifier(node.expression) &&
287
+ node.expression.text === "createRouter"
288
+ ) {
289
+ for (const arg of node.arguments) {
213
290
  if (ts.isObjectLiteralExpression(arg)) {
214
291
  for (const prop of arg.properties) {
215
292
  if (
216
293
  ts.isPropertyAssignment(prop) &&
217
294
  ts.isIdentifier(prop.name) &&
218
- prop.name.text === "urls" &&
219
- ts.isIdentifier(prop.initializer)
295
+ prop.name.text === "basename" &&
296
+ ts.isStringLiteral(prop.initializer)
220
297
  ) {
221
298
  result = prop.initializer.text;
222
299
  return;
@@ -225,7 +302,6 @@ export function extractUrlsVariableFromRouter(code: string): string | null {
225
302
  }
226
303
  }
227
304
  }
228
-
229
305
  ts.forEachChild(node, visit);
230
306
  }
231
307
 
@@ -233,9 +309,40 @@ export function extractUrlsVariableFromRouter(code: string): string | null {
233
309
  return result;
234
310
  }
235
311
 
312
+ /** @deprecated Use extractUrlsFromRouter instead */
313
+ export function extractUrlsVariableFromRouter(code: string): string | null {
314
+ const result = extractUrlsFromRouter(code);
315
+ return result?.kind === "variable" ? result.name : null;
316
+ }
317
+
318
+ /** Apply a basename prefix to all route patterns in a result set. */
319
+ function applyBasenameToRoutes(
320
+ result: {
321
+ routes: Record<string, string>;
322
+ searchSchemas: Record<string, Record<string, string>>;
323
+ },
324
+ basename: string,
325
+ ): {
326
+ routes: Record<string, string>;
327
+ searchSchemas: Record<string, Record<string, string>>;
328
+ } {
329
+ const prefixed: Record<string, string> = {};
330
+ for (const [name, pattern] of Object.entries(result.routes)) {
331
+ if (pattern === "/") {
332
+ prefixed[name] = basename;
333
+ } else if (basename.endsWith("/") && pattern.startsWith("/")) {
334
+ prefixed[name] = basename + pattern.slice(1);
335
+ } else {
336
+ prefixed[name] = basename + pattern;
337
+ }
338
+ }
339
+ return { routes: prefixed, searchSchemas: result.searchSchemas };
340
+ }
341
+
236
342
  /**
237
343
  * Resolve routes and search schemas from a router source file by following the
238
- * variable passed to `.routes(...)` or `urls: ...` in createRouter options.
344
+ * variable passed to `.routes(...)` or `urls: ...` in createRouter options,
345
+ * or by parsing an inline builder function directly.
239
346
  */
240
347
  export function buildCombinedRouteMapForRouterFile(routerFilePath: string): {
241
348
  routes: Record<string, string>;
@@ -248,21 +355,54 @@ export function buildCombinedRouteMapForRouterFile(routerFilePath: string): {
248
355
  return { routes: {}, searchSchemas: {} };
249
356
  }
250
357
 
251
- const urlsVarName = extractUrlsVariableFromRouter(routerSource);
252
- if (!urlsVarName) {
358
+ const extraction = extractUrlsFromRouter(routerSource);
359
+ if (!extraction) {
253
360
  return { routes: {}, searchSchemas: {} };
254
361
  }
255
362
 
256
- const imported = resolveImportedVariable(routerSource, urlsVarName);
257
- if (imported) {
258
- const targetFile = resolveImportPath(imported.specifier, routerFilePath);
259
- if (!targetFile) {
260
- return { routes: {}, searchSchemas: {} };
363
+ // Detect basename from createRouter({ basename: "..." })
364
+ const rawBasename = extractBasenameFromRouter(routerSource);
365
+ const basename = rawBasename
366
+ ? ("/" + rawBasename.replace(/^\/+|\/+$/g, "")).replace(/^\/$/, "")
367
+ : undefined;
368
+
369
+ let result: {
370
+ routes: Record<string, string>;
371
+ searchSchemas: Record<string, Record<string, string>>;
372
+ };
373
+
374
+ // Inline builder: extract routes directly from the function body
375
+ if (extraction.kind === "inline") {
376
+ result = buildCombinedRouteMapWithSearch(
377
+ routerFilePath,
378
+ undefined,
379
+ undefined,
380
+ undefined,
381
+ extraction.block,
382
+ );
383
+ } else {
384
+ // Variable reference: follow imports or same-file declaration
385
+ const imported = resolveImportedVariable(routerSource, extraction.name);
386
+ if (imported) {
387
+ const targetFile = resolveImportPath(imported.specifier, routerFilePath);
388
+ if (!targetFile) {
389
+ return { routes: {}, searchSchemas: {} };
390
+ }
391
+ result = buildCombinedRouteMapWithSearch(
392
+ targetFile,
393
+ imported.exportedName,
394
+ );
395
+ } else {
396
+ result = buildCombinedRouteMapWithSearch(routerFilePath, extraction.name);
261
397
  }
262
- return buildCombinedRouteMapWithSearch(targetFile, imported.exportedName);
263
398
  }
264
399
 
265
- return buildCombinedRouteMapWithSearch(routerFilePath, urlsVarName);
400
+ // Apply basename prefix to all extracted route patterns
401
+ if (basename) {
402
+ result = applyBasenameToRoutes(result, basename);
403
+ }
404
+
405
+ return result;
266
406
  }
267
407
 
268
408
  // ---------------------------------------------------------------------------
@@ -285,12 +425,26 @@ export function detectUnresolvableIncludes(
285
425
  return [];
286
426
  }
287
427
 
288
- // Extract the urls variable from the router file
289
- const urlsVarName = extractUrlsVariableFromRouter(source);
290
- if (!urlsVarName) return [];
428
+ // Extract the urls source from the router file
429
+ const extraction = extractUrlsFromRouter(source);
430
+ if (!extraction) return [];
291
431
 
292
- // Resolve where the urls variable comes from
293
- const imported = resolveImportedVariable(source, urlsVarName);
432
+ const diagnostics: UnresolvableInclude[] = [];
433
+
434
+ if (extraction.kind === "inline") {
435
+ // Inline builder: parse directly
436
+ buildCombinedRouteMapWithSearch(
437
+ realPath,
438
+ undefined,
439
+ new Set(),
440
+ diagnostics,
441
+ extraction.block,
442
+ );
443
+ return diagnostics;
444
+ }
445
+
446
+ // Variable reference: resolve where it comes from
447
+ const imported = resolveImportedVariable(source, extraction.name);
294
448
  let targetFile: string;
295
449
  let exportedName: string | undefined;
296
450
 
@@ -312,10 +466,9 @@ export function detectUnresolvableIncludes(
312
466
  } else {
313
467
  // Same-file urls() definition
314
468
  targetFile = realPath;
315
- exportedName = urlsVarName;
469
+ exportedName = extraction.name;
316
470
  }
317
471
 
318
- const diagnostics: UnresolvableInclude[] = [];
319
472
  buildCombinedRouteMapWithSearch(
320
473
  targetFile,
321
474
  exportedName,
@@ -397,34 +550,20 @@ export function writeCombinedRouteTypes(
397
550
  }
398
551
 
399
552
  for (const routerFilePath of routerFilePaths) {
400
- let routerSource: string;
401
- try {
402
- routerSource = readFileSync(routerFilePath, "utf-8");
403
- } catch {
404
- continue;
405
- }
406
- // Extract the urls variable name from .routes(varName) or urls: varName
407
- const urlsVarName = extractUrlsVariableFromRouter(routerSource);
408
- if (!urlsVarName) continue;
409
-
410
- // Resolve the variable to its source module
411
- let result: {
412
- routes: Record<string, string>;
413
- searchSchemas: Record<string, Record<string, string>>;
414
- };
415
-
416
- const imported = resolveImportedVariable(routerSource, urlsVarName);
417
- if (imported) {
418
- // Variable is imported from another module
419
- const targetFile = resolveImportPath(imported.specifier, routerFilePath);
420
- if (!targetFile) continue;
421
- result = buildCombinedRouteMapWithSearch(
422
- targetFile,
423
- imported.exportedName,
424
- );
425
- } else {
426
- // Variable is defined in the same file
427
- result = buildCombinedRouteMapWithSearch(routerFilePath, urlsVarName);
553
+ const result = buildCombinedRouteMapForRouterFile(routerFilePath);
554
+ if (
555
+ Object.keys(result.routes).length === 0 &&
556
+ Object.keys(result.searchSchemas).length === 0
557
+ ) {
558
+ // Check if the file even has a createRouter call — if not, skip entirely.
559
+ // If it does, fall through to write an empty placeholder below.
560
+ let routerSource: string;
561
+ try {
562
+ routerSource = readFileSync(routerFilePath, "utf-8");
563
+ } catch {
564
+ continue;
565
+ }
566
+ if (!extractUrlsFromRouter(routerSource)) continue;
428
567
  }
429
568
 
430
569
  const routerBasename = pathBasename(routerFilePath).replace(
@@ -61,7 +61,14 @@ export function findTsFiles(dir: string, filter?: ScanFilter): string[] {
61
61
  for (const entry of entries) {
62
62
  const fullPath = join(dir, entry.name);
63
63
  if (entry.isDirectory()) {
64
- if (entry.name === "node_modules" || entry.name.startsWith(".")) continue;
64
+ if (
65
+ entry.name === "node_modules" ||
66
+ entry.name.startsWith(".") ||
67
+ entry.name === "dist" ||
68
+ entry.name === "build" ||
69
+ entry.name === "coverage"
70
+ )
71
+ continue;
65
72
  results.push(...findTsFiles(fullPath, filter));
66
73
  } else if (
67
74
  (entry.name.endsWith(".ts") ||
package/src/client.tsx CHANGED
@@ -13,7 +13,6 @@ import {
13
13
  type ClientErrorBoundaryFallbackProps,
14
14
  type ErrorInfo,
15
15
  type LoaderDefinition,
16
- type LoaderFn,
17
16
  type ResolvedSegment,
18
17
  } from "./types";
19
18
  import {
@@ -313,57 +312,6 @@ export {
313
312
  type UseLoaderOptions,
314
313
  } from "./use-loader.js";
315
314
 
316
- /**
317
- * Client-safe createLoader factory
318
- *
319
- * Creates a loader definition that can be used with useLoader().
320
- * This is the client-side version that only stores the $$id - the function
321
- * is ignored since loaders only execute on the server.
322
- *
323
- * The $$id is injected by the exposeLoaderId Vite plugin. In most cases,
324
- * you should import the loader directly from the server file rather than
325
- * creating a reference manually.
326
- *
327
- * @param fn - Loader function (ignored on client, kept for API compatibility)
328
- * @param _fetchable - Optional fetchable flag (ignored on client)
329
- * @param __injectedId - $$id injected by Vite plugin
330
- *
331
- * @example
332
- * ```tsx
333
- * "use client";
334
- * import { useLoader } from "rsc-router/client";
335
- * import { CartLoader } from "../loaders/cart"; // Import from server file
336
- *
337
- * export function CartIcon() {
338
- * const cart = useLoader(CartLoader);
339
- * return <span>Cart ({cart?.items.length ?? 0})</span>;
340
- * }
341
- * ```
342
- */
343
- // Overload 1: With function only (not fetchable)
344
- export function createLoader<T>(
345
- fn: LoaderFn<T, Record<string, string | undefined>, any>,
346
- ): LoaderDefinition<Awaited<T>, Record<string, string | undefined>>;
347
-
348
- // Overload 2: With function and fetchable flag
349
- export function createLoader<T>(
350
- fn: LoaderFn<T, Record<string, string | undefined>, any>,
351
- fetchable: true,
352
- ): LoaderDefinition<Awaited<T>, Record<string, string | undefined>>;
353
-
354
- // Implementation - function is ignored at runtime on client
355
- // The $$id is injected by Vite plugin as hidden third parameter
356
- export function createLoader(
357
- _fn: LoaderFn<any, Record<string, string | undefined>, any>,
358
- _fetchable?: true,
359
- __injectedId?: string,
360
- ): LoaderDefinition<any, Record<string, string | undefined>> {
361
- return {
362
- __brand: "loader",
363
- $$id: __injectedId || "",
364
- };
365
- }
366
-
367
315
  /**
368
316
  * Props for the ErrorBoundary component
369
317
  */
@@ -534,10 +482,8 @@ export {
534
482
  type ScrollRestorationProps,
535
483
  } from "./browser/react/ScrollRestoration.js";
536
484
 
537
- // Handle API - for accumulating data across route segments
538
- export { createHandle, isHandle, type Handle } from "./handle.js";
539
-
540
- // Handle data hook
485
+ // Handle data hook (client-side only createHandle/isHandle are server APIs from the root export)
486
+ export { type Handle } from "./handle.js";
541
487
  export { useHandle } from "./browser/react/use-handle.js";
542
488
 
543
489
  // Built-in handles
@@ -5,5 +5,4 @@ export {
5
5
  setServerCallback,
6
6
  encodeReply,
7
7
  createTemporaryReferenceSet,
8
- findSourceMapURL,
9
8
  } from "@vitejs/plugin-rsc/browser";
package/src/handle.ts CHANGED
@@ -133,3 +133,43 @@ export function isHandle(value: unknown): value is Handle<unknown, unknown> {
133
133
  (value as { __brand: unknown }).__brand === "handle"
134
134
  );
135
135
  }
136
+
137
+ /**
138
+ * Collect handle data from a HandleData map, applying the handle's collect
139
+ * function over segments in order. Shared between server-side rendered()
140
+ * reads and client-side useHandle().
141
+ *
142
+ * @param handle - The handle to collect data for
143
+ * @param data - Full handle data map (handleName -> segmentId -> entries[])
144
+ * @param segmentOrder - Segment IDs in parent -> child resolution order
145
+ */
146
+ export function collectHandleData<TData, TAccumulated>(
147
+ handle: Handle<TData, TAccumulated>,
148
+ data: Record<string, Record<string, unknown[]>>,
149
+ segmentOrder: string[],
150
+ ): TAccumulated {
151
+ const collectFn = getCollectFn(handle.$$id);
152
+ if (!collectFn && process.env.NODE_ENV !== "production") {
153
+ console.warn(
154
+ `[rsc-router] Handle "${handle.$$id}" has no registered collect function. ` +
155
+ `Falling back to flat array. Ensure the handle module is imported so ` +
156
+ `createHandle() runs and registers the collect function.`,
157
+ );
158
+ }
159
+ const collect = (collectFn ??
160
+ (defaultCollect as unknown as (segments: unknown[][]) => unknown)) as (
161
+ segments: TData[][],
162
+ ) => TAccumulated;
163
+
164
+ const segmentData = data[handle.$$id];
165
+ if (!segmentData) return collect([]);
166
+
167
+ const segmentArrays: TData[][] = [];
168
+ for (const segmentId of segmentOrder) {
169
+ const entries = segmentData[segmentId];
170
+ if (entries && entries.length > 0) {
171
+ segmentArrays.push(entries as TData[]);
172
+ }
173
+ }
174
+ return collect(segmentArrays);
175
+ }
package/src/index.rsc.ts CHANGED
@@ -100,6 +100,7 @@ export type {
100
100
  LayoutUseItem,
101
101
  AllUseItems,
102
102
  UseItems,
103
+ HandlerUseItem,
103
104
  } from "./route-types.js";
104
105
 
105
106
  // Handle API
@@ -114,8 +115,9 @@ export { nonce } from "./rsc/nonce.js";
114
115
  // Pre-render handler API
115
116
  export {
116
117
  Prerender,
118
+ Passthrough,
117
119
  type PrerenderHandlerDefinition,
118
- type PrerenderPassthroughContext,
120
+ type PassthroughHandlerDefinition,
119
121
  type PrerenderOptions,
120
122
  type BuildContext,
121
123
  type StaticBuildContext,
package/src/index.ts CHANGED
@@ -88,6 +88,7 @@ export type {
88
88
  LayoutUseItem,
89
89
  AllUseItems,
90
90
  UseItems,
91
+ HandlerUseItem,
91
92
  } from "./route-types.js";
92
93
 
93
94
  // Response route types (usable in both server and client contexts)
@@ -152,6 +153,13 @@ export function Prerender(): never {
152
153
  throw serverOnlyStubError("Prerender");
153
154
  }
154
155
 
156
+ /**
157
+ * Error-throwing stub for server-only `Passthrough` function.
158
+ */
159
+ export function Passthrough(): never {
160
+ throw serverOnlyStubError("Passthrough");
161
+ }
162
+
155
163
  /**
156
164
  * Error-throwing stub for server-only `Static` function.
157
165
  */
@@ -235,6 +243,10 @@ export type {
235
243
  ReadonlyHeaders,
236
244
  } from "./server/cookie-store.js";
237
245
 
246
+ // Built-in handles (universal — work on both server and client)
247
+ export { Meta } from "./handles/meta.js";
248
+ export { Breadcrumbs } from "./handles/breadcrumbs.js";
249
+
238
250
  // Meta types
239
251
  export type { MetaDescriptor, MetaDescriptorBase } from "./router/types.js";
240
252
 
@@ -121,10 +121,11 @@ export function createPrerenderStore(): PrerenderStore | null {
121
121
  if (!mod) return null;
122
122
  const specifier = mod.default[key];
123
123
  if (!specifier) return null;
124
- return mod
125
- .loadPrerenderAsset(specifier)
126
- .then((asset) => asset.default)
127
- .catch(() => null);
124
+ // Let asset load errors propagate — a missing/corrupted artifact
125
+ // for a key that exists in the manifest is a build/deploy error
126
+ // and should surface as a 500, not be silently swallowed as null
127
+ // (which the handler stub would misreport as a 404).
128
+ return mod.loadPrerenderAsset(specifier).then((asset) => asset.default);
128
129
  });
129
130
  cache.set(key, promise);
130
131
  return promise;