@rangojs/router 0.0.0-experimental.60 → 0.0.0-experimental.60c5dbde

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 (889) hide show
  1. package/README.md +61 -8
  2. package/dist/bin/rango.js +2 -1
  3. package/dist/vite/index.js +448 -179
  4. package/package.json +3 -3
  5. package/skills/handler-use/SKILL.md +362 -0
  6. package/skills/intercept/SKILL.md +20 -0
  7. package/skills/layout/SKILL.md +22 -0
  8. package/skills/middleware/SKILL.md +32 -3
  9. package/skills/migrate-nextjs/SKILL.md +560 -0
  10. package/skills/migrate-react-router/SKILL.md +764 -0
  11. package/skills/parallel/SKILL.md +59 -0
  12. package/skills/prerender/SKILL.md +110 -68
  13. package/skills/rango/SKILL.md +24 -22
  14. package/skills/route/SKILL.md +24 -0
  15. package/src/__internal.ts +1 -1
  16. package/src/browser/navigation-bridge.ts +7 -1
  17. package/src/browser/navigation-client.ts +34 -6
  18. package/src/browser/partial-update.ts +5 -0
  19. package/src/browser/prefetch/cache.ts +16 -6
  20. package/src/browser/prefetch/fetch.ts +60 -4
  21. package/src/browser/react/Link.tsx +25 -2
  22. package/src/browser/react/use-handle.ts +9 -58
  23. package/src/browser/segment-reconciler.ts +72 -2
  24. package/src/build/generate-manifest.ts +3 -6
  25. package/src/build/route-trie.ts +50 -24
  26. package/src/build/route-types/scan-filter.ts +8 -1
  27. package/src/client.tsx +5 -66
  28. package/src/handle.ts +40 -0
  29. package/src/index.rsc.ts +3 -1
  30. package/src/index.ts +46 -6
  31. package/src/prerender/store.ts +5 -4
  32. package/src/prerender.ts +138 -77
  33. package/src/reverse.ts +6 -1
  34. package/src/route-definition/dsl-helpers.ts +194 -32
  35. package/src/route-definition/helpers-types.ts +61 -14
  36. package/src/route-definition/index.ts +3 -0
  37. package/src/route-definition/resolve-handler-use.ts +149 -0
  38. package/src/route-types.ts +11 -0
  39. package/src/router/content-negotiation.ts +100 -1
  40. package/src/router/handler-context.ts +26 -6
  41. package/src/router/loader-resolution.ts +147 -19
  42. package/src/router/match-api.ts +124 -189
  43. package/src/router/match-middleware/cache-lookup.ts +24 -7
  44. package/src/router/match-middleware/segment-resolution.ts +53 -0
  45. package/src/router/match-result.ts +82 -4
  46. package/src/router/navigation-snapshot.ts +182 -0
  47. package/src/router/prerender-match.ts +108 -8
  48. package/src/router/preview-match.ts +30 -102
  49. package/src/router/request-classification.ts +310 -0
  50. package/src/router/route-snapshot.ts +245 -0
  51. package/src/router/router-interfaces.ts +11 -0
  52. package/src/router/segment-resolution/fresh.ts +59 -2
  53. package/src/router/segment-resolution/revalidation.ts +79 -6
  54. package/src/router.ts +13 -1
  55. package/src/rsc/handler.ts +468 -377
  56. package/src/rsc/loader-fetch.ts +23 -3
  57. package/src/rsc/progressive-enhancement.ts +10 -2
  58. package/src/rsc/rsc-rendering.ts +5 -1
  59. package/src/rsc/server-action.ts +6 -0
  60. package/src/rsc/ssr-setup.ts +1 -1
  61. package/src/rsc/types.ts +1 -0
  62. package/src/segment-content-promise.ts +38 -0
  63. package/src/segment-system.tsx +25 -11
  64. package/src/server/context.ts +14 -1
  65. package/src/server/handle-store.ts +19 -0
  66. package/src/server/request-context.ts +125 -3
  67. package/src/static-handler.ts +18 -6
  68. package/src/types/handler-context.ts +12 -2
  69. package/src/types/loader-types.ts +32 -4
  70. package/src/types/route-entry.ts +1 -1
  71. package/src/types/segments.ts +4 -0
  72. package/src/urls/path-helper-types.ts +39 -6
  73. package/src/urls/path-helper.ts +47 -12
  74. package/src/urls/response-types.ts +16 -6
  75. package/src/use-loader.tsx +77 -5
  76. package/src/vite/discovery/bundle-postprocess.ts +30 -33
  77. package/src/vite/discovery/prerender-collection.ts +128 -74
  78. package/src/vite/discovery/state.ts +13 -4
  79. package/src/vite/index.ts +4 -0
  80. package/src/vite/plugin-types.ts +60 -5
  81. package/src/vite/plugins/expose-id-utils.ts +12 -0
  82. package/src/vite/plugins/expose-ids/handler-transform.ts +30 -0
  83. package/src/vite/plugins/expose-internal-ids.ts +257 -40
  84. package/src/vite/rango.ts +2 -1
  85. package/src/vite/router-discovery.ts +178 -37
  86. package/src/vite/utils/prerender-utils.ts +37 -5
  87. package/dist/__internal.d.ts +0 -83
  88. package/dist/__internal.d.ts.map +0 -1
  89. package/dist/__internal.js +0 -19
  90. package/dist/__internal.js.map +0 -1
  91. package/dist/__mocks__/version.d.ts +0 -7
  92. package/dist/__mocks__/version.d.ts.map +0 -1
  93. package/dist/__mocks__/version.js +0 -7
  94. package/dist/__mocks__/version.js.map +0 -1
  95. package/dist/__tests__/client-href.test.d.ts +0 -2
  96. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  97. package/dist/__tests__/client-href.test.js +0 -74
  98. package/dist/__tests__/client-href.test.js.map +0 -1
  99. package/dist/__tests__/component-utils.test.d.ts +0 -2
  100. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  101. package/dist/__tests__/component-utils.test.js +0 -51
  102. package/dist/__tests__/component-utils.test.js.map +0 -1
  103. package/dist/__tests__/event-controller.test.d.ts +0 -2
  104. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  105. package/dist/__tests__/event-controller.test.js +0 -538
  106. package/dist/__tests__/event-controller.test.js.map +0 -1
  107. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  108. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  109. package/dist/__tests__/helpers/route-tree.js +0 -374
  110. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  111. package/dist/__tests__/match-result.test.d.ts +0 -2
  112. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  113. package/dist/__tests__/match-result.test.js +0 -154
  114. package/dist/__tests__/match-result.test.js.map +0 -1
  115. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  116. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  117. package/dist/__tests__/navigation-store.test.js +0 -440
  118. package/dist/__tests__/navigation-store.test.js.map +0 -1
  119. package/dist/__tests__/partial-update.test.d.ts +0 -2
  120. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  121. package/dist/__tests__/partial-update.test.js +0 -1009
  122. package/dist/__tests__/partial-update.test.js.map +0 -1
  123. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  124. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  125. package/dist/__tests__/reverse-types.test.js +0 -656
  126. package/dist/__tests__/reverse-types.test.js.map +0 -1
  127. package/dist/__tests__/route-definition.test.d.ts +0 -2
  128. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  129. package/dist/__tests__/route-definition.test.js +0 -55
  130. package/dist/__tests__/route-definition.test.js.map +0 -1
  131. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  132. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  133. package/dist/__tests__/router-helpers.test.js +0 -377
  134. package/dist/__tests__/router-helpers.test.js.map +0 -1
  135. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  136. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  137. package/dist/__tests__/router-integration-2.test.js +0 -426
  138. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  139. package/dist/__tests__/router-integration.test.d.ts +0 -2
  140. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  141. package/dist/__tests__/router-integration.test.js +0 -1051
  142. package/dist/__tests__/router-integration.test.js.map +0 -1
  143. package/dist/__tests__/search-params.test.d.ts +0 -5
  144. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  145. package/dist/__tests__/search-params.test.js +0 -306
  146. package/dist/__tests__/search-params.test.js.map +0 -1
  147. package/dist/__tests__/segment-system.test.d.ts +0 -2
  148. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  149. package/dist/__tests__/segment-system.test.js +0 -627
  150. package/dist/__tests__/segment-system.test.js.map +0 -1
  151. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  152. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  153. package/dist/__tests__/static-handler-types.test.js +0 -63
  154. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  155. package/dist/__tests__/urls.test.d.ts +0 -2
  156. package/dist/__tests__/urls.test.d.ts.map +0 -1
  157. package/dist/__tests__/urls.test.js +0 -421
  158. package/dist/__tests__/urls.test.js.map +0 -1
  159. package/dist/__tests__/use-mount.test.d.ts +0 -2
  160. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  161. package/dist/__tests__/use-mount.test.js +0 -35
  162. package/dist/__tests__/use-mount.test.js.map +0 -1
  163. package/dist/bin/rango.d.ts +0 -2
  164. package/dist/bin/rango.d.ts.map +0 -1
  165. package/dist/bin/rango.js.map +0 -1
  166. package/dist/browser/event-controller.d.ts +0 -191
  167. package/dist/browser/event-controller.d.ts.map +0 -1
  168. package/dist/browser/event-controller.js +0 -559
  169. package/dist/browser/event-controller.js.map +0 -1
  170. package/dist/browser/index.d.ts +0 -2
  171. package/dist/browser/index.d.ts.map +0 -1
  172. package/dist/browser/index.js +0 -14
  173. package/dist/browser/index.js.map +0 -1
  174. package/dist/browser/link-interceptor.d.ts +0 -38
  175. package/dist/browser/link-interceptor.d.ts.map +0 -1
  176. package/dist/browser/link-interceptor.js +0 -99
  177. package/dist/browser/link-interceptor.js.map +0 -1
  178. package/dist/browser/logging.d.ts +0 -10
  179. package/dist/browser/logging.d.ts.map +0 -1
  180. package/dist/browser/logging.js +0 -29
  181. package/dist/browser/logging.js.map +0 -1
  182. package/dist/browser/lru-cache.d.ts +0 -17
  183. package/dist/browser/lru-cache.d.ts.map +0 -1
  184. package/dist/browser/lru-cache.js +0 -50
  185. package/dist/browser/lru-cache.js.map +0 -1
  186. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  187. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  188. package/dist/browser/merge-segment-loaders.js +0 -102
  189. package/dist/browser/merge-segment-loaders.js.map +0 -1
  190. package/dist/browser/navigation-bridge.d.ts +0 -102
  191. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  192. package/dist/browser/navigation-bridge.js +0 -708
  193. package/dist/browser/navigation-bridge.js.map +0 -1
  194. package/dist/browser/navigation-client.d.ts +0 -25
  195. package/dist/browser/navigation-client.d.ts.map +0 -1
  196. package/dist/browser/navigation-client.js +0 -157
  197. package/dist/browser/navigation-client.js.map +0 -1
  198. package/dist/browser/navigation-store.d.ts +0 -101
  199. package/dist/browser/navigation-store.d.ts.map +0 -1
  200. package/dist/browser/navigation-store.js +0 -625
  201. package/dist/browser/navigation-store.js.map +0 -1
  202. package/dist/browser/partial-update.d.ts +0 -75
  203. package/dist/browser/partial-update.d.ts.map +0 -1
  204. package/dist/browser/partial-update.js +0 -426
  205. package/dist/browser/partial-update.js.map +0 -1
  206. package/dist/browser/react/Link.d.ts +0 -86
  207. package/dist/browser/react/Link.d.ts.map +0 -1
  208. package/dist/browser/react/Link.js +0 -128
  209. package/dist/browser/react/Link.js.map +0 -1
  210. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  211. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  212. package/dist/browser/react/NavigationProvider.js +0 -216
  213. package/dist/browser/react/NavigationProvider.js.map +0 -1
  214. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  215. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  216. package/dist/browser/react/ScrollRestoration.js +0 -57
  217. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  218. package/dist/browser/react/context.d.ts +0 -46
  219. package/dist/browser/react/context.d.ts.map +0 -1
  220. package/dist/browser/react/context.js +0 -10
  221. package/dist/browser/react/context.js.map +0 -1
  222. package/dist/browser/react/index.d.ts +0 -11
  223. package/dist/browser/react/index.d.ts.map +0 -1
  224. package/dist/browser/react/index.js +0 -22
  225. package/dist/browser/react/index.js.map +0 -1
  226. package/dist/browser/react/location-state-shared.d.ts +0 -63
  227. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  228. package/dist/browser/react/location-state-shared.js +0 -81
  229. package/dist/browser/react/location-state-shared.js.map +0 -1
  230. package/dist/browser/react/location-state.d.ts +0 -23
  231. package/dist/browser/react/location-state.d.ts.map +0 -1
  232. package/dist/browser/react/location-state.js +0 -29
  233. package/dist/browser/react/location-state.js.map +0 -1
  234. package/dist/browser/react/mount-context.d.ts +0 -24
  235. package/dist/browser/react/mount-context.d.ts.map +0 -1
  236. package/dist/browser/react/mount-context.js +0 -24
  237. package/dist/browser/react/mount-context.js.map +0 -1
  238. package/dist/browser/react/use-action.d.ts +0 -64
  239. package/dist/browser/react/use-action.d.ts.map +0 -1
  240. package/dist/browser/react/use-action.js +0 -134
  241. package/dist/browser/react/use-action.js.map +0 -1
  242. package/dist/browser/react/use-client-cache.d.ts +0 -41
  243. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  244. package/dist/browser/react/use-client-cache.js +0 -39
  245. package/dist/browser/react/use-client-cache.js.map +0 -1
  246. package/dist/browser/react/use-handle.d.ts +0 -31
  247. package/dist/browser/react/use-handle.d.ts.map +0 -1
  248. package/dist/browser/react/use-handle.js +0 -144
  249. package/dist/browser/react/use-handle.js.map +0 -1
  250. package/dist/browser/react/use-href.d.ts +0 -33
  251. package/dist/browser/react/use-href.d.ts.map +0 -1
  252. package/dist/browser/react/use-href.js +0 -39
  253. package/dist/browser/react/use-href.js.map +0 -1
  254. package/dist/browser/react/use-link-status.d.ts +0 -37
  255. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  256. package/dist/browser/react/use-link-status.js +0 -99
  257. package/dist/browser/react/use-link-status.js.map +0 -1
  258. package/dist/browser/react/use-mount.d.ts +0 -25
  259. package/dist/browser/react/use-mount.d.ts.map +0 -1
  260. package/dist/browser/react/use-mount.js +0 -30
  261. package/dist/browser/react/use-mount.js.map +0 -1
  262. package/dist/browser/react/use-navigation.d.ts +0 -27
  263. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  264. package/dist/browser/react/use-navigation.js +0 -87
  265. package/dist/browser/react/use-navigation.js.map +0 -1
  266. package/dist/browser/react/use-segments.d.ts +0 -38
  267. package/dist/browser/react/use-segments.d.ts.map +0 -1
  268. package/dist/browser/react/use-segments.js +0 -130
  269. package/dist/browser/react/use-segments.js.map +0 -1
  270. package/dist/browser/request-controller.d.ts +0 -26
  271. package/dist/browser/request-controller.d.ts.map +0 -1
  272. package/dist/browser/request-controller.js +0 -147
  273. package/dist/browser/request-controller.js.map +0 -1
  274. package/dist/browser/rsc-router.d.ts +0 -129
  275. package/dist/browser/rsc-router.d.ts.map +0 -1
  276. package/dist/browser/rsc-router.js +0 -195
  277. package/dist/browser/rsc-router.js.map +0 -1
  278. package/dist/browser/scroll-restoration.d.ts +0 -93
  279. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  280. package/dist/browser/scroll-restoration.js +0 -321
  281. package/dist/browser/scroll-restoration.js.map +0 -1
  282. package/dist/browser/segment-structure-assert.d.ts +0 -17
  283. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  284. package/dist/browser/segment-structure-assert.js +0 -59
  285. package/dist/browser/segment-structure-assert.js.map +0 -1
  286. package/dist/browser/server-action-bridge.d.ts +0 -26
  287. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  288. package/dist/browser/server-action-bridge.js +0 -668
  289. package/dist/browser/server-action-bridge.js.map +0 -1
  290. package/dist/browser/shallow.d.ts +0 -12
  291. package/dist/browser/shallow.d.ts.map +0 -1
  292. package/dist/browser/shallow.js +0 -34
  293. package/dist/browser/shallow.js.map +0 -1
  294. package/dist/browser/types.d.ts +0 -369
  295. package/dist/browser/types.d.ts.map +0 -1
  296. package/dist/browser/types.js +0 -2
  297. package/dist/browser/types.js.map +0 -1
  298. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  299. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  300. package/dist/build/__tests__/generate-cli.test.js +0 -237
  301. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  302. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  303. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  304. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  305. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  306. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  307. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  308. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  309. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  310. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  311. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  312. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  313. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  314. package/dist/build/generate-manifest.d.ts +0 -81
  315. package/dist/build/generate-manifest.d.ts.map +0 -1
  316. package/dist/build/generate-manifest.js +0 -276
  317. package/dist/build/generate-manifest.js.map +0 -1
  318. package/dist/build/generate-route-types.d.ts +0 -115
  319. package/dist/build/generate-route-types.d.ts.map +0 -1
  320. package/dist/build/generate-route-types.js +0 -740
  321. package/dist/build/generate-route-types.js.map +0 -1
  322. package/dist/build/index.d.ts +0 -21
  323. package/dist/build/index.d.ts.map +0 -1
  324. package/dist/build/index.js +0 -21
  325. package/dist/build/index.js.map +0 -1
  326. package/dist/build/route-trie.d.ts +0 -71
  327. package/dist/build/route-trie.d.ts.map +0 -1
  328. package/dist/build/route-trie.js +0 -175
  329. package/dist/build/route-trie.js.map +0 -1
  330. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  331. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  332. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  333. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  334. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  335. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  336. package/dist/cache/__tests__/document-cache.test.js +0 -345
  337. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  338. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  339. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  340. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  341. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  342. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  343. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  344. package/dist/cache/__tests__/memory-store.test.js +0 -367
  345. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  346. package/dist/cache/cache-scope.d.ts +0 -102
  347. package/dist/cache/cache-scope.d.ts.map +0 -1
  348. package/dist/cache/cache-scope.js +0 -440
  349. package/dist/cache/cache-scope.js.map +0 -1
  350. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  351. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  352. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  353. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  354. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  355. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  356. package/dist/cache/cf/cf-cache-store.js +0 -242
  357. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  358. package/dist/cache/cf/index.d.ts +0 -14
  359. package/dist/cache/cf/index.d.ts.map +0 -1
  360. package/dist/cache/cf/index.js +0 -17
  361. package/dist/cache/cf/index.js.map +0 -1
  362. package/dist/cache/document-cache.d.ts +0 -64
  363. package/dist/cache/document-cache.d.ts.map +0 -1
  364. package/dist/cache/document-cache.js +0 -228
  365. package/dist/cache/document-cache.js.map +0 -1
  366. package/dist/cache/index.d.ts +0 -19
  367. package/dist/cache/index.d.ts.map +0 -1
  368. package/dist/cache/index.js +0 -21
  369. package/dist/cache/index.js.map +0 -1
  370. package/dist/cache/memory-segment-store.d.ts +0 -110
  371. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  372. package/dist/cache/memory-segment-store.js +0 -117
  373. package/dist/cache/memory-segment-store.js.map +0 -1
  374. package/dist/cache/memory-store.d.ts +0 -41
  375. package/dist/cache/memory-store.d.ts.map +0 -1
  376. package/dist/cache/memory-store.js +0 -191
  377. package/dist/cache/memory-store.js.map +0 -1
  378. package/dist/cache/types.d.ts +0 -317
  379. package/dist/cache/types.d.ts.map +0 -1
  380. package/dist/cache/types.js +0 -12
  381. package/dist/cache/types.js.map +0 -1
  382. package/dist/client.d.ts +0 -248
  383. package/dist/client.d.ts.map +0 -1
  384. package/dist/client.js +0 -367
  385. package/dist/client.js.map +0 -1
  386. package/dist/client.rsc.d.ts +0 -26
  387. package/dist/client.rsc.d.ts.map +0 -1
  388. package/dist/client.rsc.js +0 -46
  389. package/dist/client.rsc.js.map +0 -1
  390. package/dist/component-utils.d.ts +0 -36
  391. package/dist/component-utils.d.ts.map +0 -1
  392. package/dist/component-utils.js +0 -61
  393. package/dist/component-utils.js.map +0 -1
  394. package/dist/components/DefaultDocument.d.ts +0 -13
  395. package/dist/components/DefaultDocument.d.ts.map +0 -1
  396. package/dist/components/DefaultDocument.js +0 -15
  397. package/dist/components/DefaultDocument.js.map +0 -1
  398. package/dist/debug.d.ts +0 -58
  399. package/dist/debug.d.ts.map +0 -1
  400. package/dist/debug.js +0 -157
  401. package/dist/debug.js.map +0 -1
  402. package/dist/default-error-boundary.d.ts +0 -11
  403. package/dist/default-error-boundary.d.ts.map +0 -1
  404. package/dist/default-error-boundary.js +0 -45
  405. package/dist/default-error-boundary.js.map +0 -1
  406. package/dist/deps/browser.d.ts +0 -2
  407. package/dist/deps/browser.d.ts.map +0 -1
  408. package/dist/deps/browser.js +0 -3
  409. package/dist/deps/browser.js.map +0 -1
  410. package/dist/deps/html-stream-client.d.ts +0 -2
  411. package/dist/deps/html-stream-client.d.ts.map +0 -1
  412. package/dist/deps/html-stream-client.js +0 -3
  413. package/dist/deps/html-stream-client.js.map +0 -1
  414. package/dist/deps/html-stream-server.d.ts +0 -2
  415. package/dist/deps/html-stream-server.d.ts.map +0 -1
  416. package/dist/deps/html-stream-server.js +0 -3
  417. package/dist/deps/html-stream-server.js.map +0 -1
  418. package/dist/deps/rsc.d.ts +0 -2
  419. package/dist/deps/rsc.d.ts.map +0 -1
  420. package/dist/deps/rsc.js +0 -4
  421. package/dist/deps/rsc.js.map +0 -1
  422. package/dist/deps/ssr.d.ts +0 -2
  423. package/dist/deps/ssr.d.ts.map +0 -1
  424. package/dist/deps/ssr.js +0 -3
  425. package/dist/deps/ssr.js.map +0 -1
  426. package/dist/errors.d.ts +0 -174
  427. package/dist/errors.d.ts.map +0 -1
  428. package/dist/errors.js +0 -241
  429. package/dist/errors.js.map +0 -1
  430. package/dist/handle.d.ts +0 -78
  431. package/dist/handle.d.ts.map +0 -1
  432. package/dist/handle.js +0 -82
  433. package/dist/handle.js.map +0 -1
  434. package/dist/handles/MetaTags.d.ts +0 -14
  435. package/dist/handles/MetaTags.d.ts.map +0 -1
  436. package/dist/handles/MetaTags.js +0 -136
  437. package/dist/handles/MetaTags.js.map +0 -1
  438. package/dist/handles/index.d.ts +0 -6
  439. package/dist/handles/index.d.ts.map +0 -1
  440. package/dist/handles/index.js +0 -6
  441. package/dist/handles/index.js.map +0 -1
  442. package/dist/handles/meta.d.ts +0 -39
  443. package/dist/handles/meta.d.ts.map +0 -1
  444. package/dist/handles/meta.js +0 -202
  445. package/dist/handles/meta.js.map +0 -1
  446. package/dist/host/__tests__/errors.test.d.ts +0 -2
  447. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  448. package/dist/host/__tests__/errors.test.js +0 -76
  449. package/dist/host/__tests__/errors.test.js.map +0 -1
  450. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  451. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  452. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  453. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  454. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  455. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  456. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  457. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  458. package/dist/host/__tests__/router.test.d.ts +0 -2
  459. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  460. package/dist/host/__tests__/router.test.js +0 -241
  461. package/dist/host/__tests__/router.test.js.map +0 -1
  462. package/dist/host/__tests__/testing.test.d.ts +0 -2
  463. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  464. package/dist/host/__tests__/testing.test.js +0 -64
  465. package/dist/host/__tests__/testing.test.js.map +0 -1
  466. package/dist/host/__tests__/utils.test.d.ts +0 -2
  467. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  468. package/dist/host/__tests__/utils.test.js +0 -29
  469. package/dist/host/__tests__/utils.test.js.map +0 -1
  470. package/dist/host/cookie-handler.d.ts +0 -34
  471. package/dist/host/cookie-handler.d.ts.map +0 -1
  472. package/dist/host/cookie-handler.js +0 -124
  473. package/dist/host/cookie-handler.js.map +0 -1
  474. package/dist/host/errors.d.ts +0 -56
  475. package/dist/host/errors.d.ts.map +0 -1
  476. package/dist/host/errors.js +0 -79
  477. package/dist/host/errors.js.map +0 -1
  478. package/dist/host/index.d.ts +0 -29
  479. package/dist/host/index.d.ts.map +0 -1
  480. package/dist/host/index.js +0 -32
  481. package/dist/host/index.js.map +0 -1
  482. package/dist/host/pattern-matcher.d.ts +0 -36
  483. package/dist/host/pattern-matcher.d.ts.map +0 -1
  484. package/dist/host/pattern-matcher.js +0 -172
  485. package/dist/host/pattern-matcher.js.map +0 -1
  486. package/dist/host/router.d.ts +0 -26
  487. package/dist/host/router.d.ts.map +0 -1
  488. package/dist/host/router.js +0 -218
  489. package/dist/host/router.js.map +0 -1
  490. package/dist/host/testing.d.ts +0 -36
  491. package/dist/host/testing.d.ts.map +0 -1
  492. package/dist/host/testing.js +0 -55
  493. package/dist/host/testing.js.map +0 -1
  494. package/dist/host/types.d.ts +0 -115
  495. package/dist/host/types.d.ts.map +0 -1
  496. package/dist/host/types.js +0 -7
  497. package/dist/host/types.js.map +0 -1
  498. package/dist/host/utils.d.ts +0 -21
  499. package/dist/host/utils.d.ts.map +0 -1
  500. package/dist/host/utils.js +0 -23
  501. package/dist/host/utils.js.map +0 -1
  502. package/dist/href-client.d.ts +0 -131
  503. package/dist/href-client.d.ts.map +0 -1
  504. package/dist/href-client.js +0 -64
  505. package/dist/href-client.js.map +0 -1
  506. package/dist/href-context.d.ts +0 -29
  507. package/dist/href-context.d.ts.map +0 -1
  508. package/dist/href-context.js +0 -21
  509. package/dist/href-context.js.map +0 -1
  510. package/dist/index.d.ts +0 -73
  511. package/dist/index.d.ts.map +0 -1
  512. package/dist/index.js +0 -91
  513. package/dist/index.js.map +0 -1
  514. package/dist/index.rsc.d.ts +0 -32
  515. package/dist/index.rsc.d.ts.map +0 -1
  516. package/dist/index.rsc.js +0 -40
  517. package/dist/index.rsc.js.map +0 -1
  518. package/dist/internal-debug.d.ts +0 -2
  519. package/dist/internal-debug.d.ts.map +0 -1
  520. package/dist/internal-debug.js +0 -5
  521. package/dist/internal-debug.js.map +0 -1
  522. package/dist/loader.d.ts +0 -14
  523. package/dist/loader.d.ts.map +0 -1
  524. package/dist/loader.js +0 -20
  525. package/dist/loader.js.map +0 -1
  526. package/dist/loader.rsc.d.ts +0 -19
  527. package/dist/loader.rsc.d.ts.map +0 -1
  528. package/dist/loader.rsc.js +0 -99
  529. package/dist/loader.rsc.js.map +0 -1
  530. package/dist/network-error-thrower.d.ts +0 -17
  531. package/dist/network-error-thrower.d.ts.map +0 -1
  532. package/dist/network-error-thrower.js +0 -14
  533. package/dist/network-error-thrower.js.map +0 -1
  534. package/dist/outlet-context.d.ts +0 -13
  535. package/dist/outlet-context.d.ts.map +0 -1
  536. package/dist/outlet-context.js +0 -3
  537. package/dist/outlet-context.js.map +0 -1
  538. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  539. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  540. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  541. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  542. package/dist/prerender/param-hash.d.ts +0 -16
  543. package/dist/prerender/param-hash.d.ts.map +0 -1
  544. package/dist/prerender/param-hash.js +0 -36
  545. package/dist/prerender/param-hash.js.map +0 -1
  546. package/dist/prerender/store.d.ts +0 -38
  547. package/dist/prerender/store.d.ts.map +0 -1
  548. package/dist/prerender/store.js +0 -61
  549. package/dist/prerender/store.js.map +0 -1
  550. package/dist/prerender.d.ts +0 -66
  551. package/dist/prerender.d.ts.map +0 -1
  552. package/dist/prerender.js +0 -57
  553. package/dist/prerender.js.map +0 -1
  554. package/dist/reverse.d.ts +0 -196
  555. package/dist/reverse.d.ts.map +0 -1
  556. package/dist/reverse.js +0 -78
  557. package/dist/reverse.js.map +0 -1
  558. package/dist/root-error-boundary.d.ts +0 -33
  559. package/dist/root-error-boundary.d.ts.map +0 -1
  560. package/dist/root-error-boundary.js +0 -165
  561. package/dist/root-error-boundary.js.map +0 -1
  562. package/dist/route-content-wrapper.d.ts +0 -46
  563. package/dist/route-content-wrapper.d.ts.map +0 -1
  564. package/dist/route-content-wrapper.js +0 -77
  565. package/dist/route-content-wrapper.js.map +0 -1
  566. package/dist/route-definition.d.ts +0 -421
  567. package/dist/route-definition.d.ts.map +0 -1
  568. package/dist/route-definition.js +0 -868
  569. package/dist/route-definition.js.map +0 -1
  570. package/dist/route-map-builder.d.ts +0 -155
  571. package/dist/route-map-builder.d.ts.map +0 -1
  572. package/dist/route-map-builder.js +0 -237
  573. package/dist/route-map-builder.js.map +0 -1
  574. package/dist/route-types.d.ts +0 -165
  575. package/dist/route-types.d.ts.map +0 -1
  576. package/dist/route-types.js +0 -7
  577. package/dist/route-types.js.map +0 -1
  578. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  579. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  580. package/dist/router/__tests__/handler-context.test.js +0 -65
  581. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  582. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  583. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  584. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  585. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  586. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  587. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  588. package/dist/router/__tests__/match-context.test.js +0 -92
  589. package/dist/router/__tests__/match-context.test.js.map +0 -1
  590. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  591. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  592. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  593. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  594. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  595. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  596. package/dist/router/__tests__/match-result.test.js +0 -457
  597. package/dist/router/__tests__/match-result.test.js.map +0 -1
  598. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  599. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  600. package/dist/router/__tests__/on-error.test.js +0 -678
  601. package/dist/router/__tests__/on-error.test.js.map +0 -1
  602. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  603. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  604. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  605. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  606. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  607. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  608. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  609. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  610. package/dist/router/error-handling.d.ts +0 -77
  611. package/dist/router/error-handling.d.ts.map +0 -1
  612. package/dist/router/error-handling.js +0 -202
  613. package/dist/router/error-handling.js.map +0 -1
  614. package/dist/router/handler-context.d.ts +0 -20
  615. package/dist/router/handler-context.d.ts.map +0 -1
  616. package/dist/router/handler-context.js +0 -198
  617. package/dist/router/handler-context.js.map +0 -1
  618. package/dist/router/intercept-resolution.d.ts +0 -66
  619. package/dist/router/intercept-resolution.d.ts.map +0 -1
  620. package/dist/router/intercept-resolution.js +0 -246
  621. package/dist/router/intercept-resolution.js.map +0 -1
  622. package/dist/router/loader-resolution.d.ts +0 -64
  623. package/dist/router/loader-resolution.d.ts.map +0 -1
  624. package/dist/router/loader-resolution.js +0 -284
  625. package/dist/router/loader-resolution.js.map +0 -1
  626. package/dist/router/logging.d.ts +0 -15
  627. package/dist/router/logging.d.ts.map +0 -1
  628. package/dist/router/logging.js +0 -99
  629. package/dist/router/logging.js.map +0 -1
  630. package/dist/router/manifest.d.ts +0 -22
  631. package/dist/router/manifest.d.ts.map +0 -1
  632. package/dist/router/manifest.js +0 -181
  633. package/dist/router/manifest.js.map +0 -1
  634. package/dist/router/match-api.d.ts +0 -35
  635. package/dist/router/match-api.d.ts.map +0 -1
  636. package/dist/router/match-api.js +0 -406
  637. package/dist/router/match-api.js.map +0 -1
  638. package/dist/router/match-context.d.ts +0 -206
  639. package/dist/router/match-context.d.ts.map +0 -1
  640. package/dist/router/match-context.js +0 -17
  641. package/dist/router/match-context.js.map +0 -1
  642. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  643. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  644. package/dist/router/match-middleware/background-revalidation.js +0 -75
  645. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  646. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  647. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  648. package/dist/router/match-middleware/cache-lookup.js +0 -257
  649. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  650. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  651. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  652. package/dist/router/match-middleware/cache-store.js +0 -108
  653. package/dist/router/match-middleware/cache-store.js.map +0 -1
  654. package/dist/router/match-middleware/index.d.ts +0 -81
  655. package/dist/router/match-middleware/index.d.ts.map +0 -1
  656. package/dist/router/match-middleware/index.js +0 -80
  657. package/dist/router/match-middleware/index.js.map +0 -1
  658. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  659. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  660. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  661. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  662. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  663. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  664. package/dist/router/match-middleware/segment-resolution.js +0 -53
  665. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  666. package/dist/router/match-pipelines.d.ts +0 -147
  667. package/dist/router/match-pipelines.d.ts.map +0 -1
  668. package/dist/router/match-pipelines.js +0 -82
  669. package/dist/router/match-pipelines.js.map +0 -1
  670. package/dist/router/match-result.d.ts +0 -126
  671. package/dist/router/match-result.d.ts.map +0 -1
  672. package/dist/router/match-result.js +0 -93
  673. package/dist/router/match-result.js.map +0 -1
  674. package/dist/router/metrics.d.ts +0 -20
  675. package/dist/router/metrics.d.ts.map +0 -1
  676. package/dist/router/metrics.js +0 -47
  677. package/dist/router/metrics.js.map +0 -1
  678. package/dist/router/middleware.d.ts +0 -249
  679. package/dist/router/middleware.d.ts.map +0 -1
  680. package/dist/router/middleware.js +0 -434
  681. package/dist/router/middleware.js.map +0 -1
  682. package/dist/router/middleware.test.d.ts +0 -2
  683. package/dist/router/middleware.test.d.ts.map +0 -1
  684. package/dist/router/middleware.test.js +0 -816
  685. package/dist/router/middleware.test.js.map +0 -1
  686. package/dist/router/pattern-matching.d.ts +0 -149
  687. package/dist/router/pattern-matching.d.ts.map +0 -1
  688. package/dist/router/pattern-matching.js +0 -349
  689. package/dist/router/pattern-matching.js.map +0 -1
  690. package/dist/router/revalidation.d.ts +0 -44
  691. package/dist/router/revalidation.d.ts.map +0 -1
  692. package/dist/router/revalidation.js +0 -147
  693. package/dist/router/revalidation.js.map +0 -1
  694. package/dist/router/router-context.d.ts +0 -135
  695. package/dist/router/router-context.d.ts.map +0 -1
  696. package/dist/router/router-context.js +0 -36
  697. package/dist/router/router-context.js.map +0 -1
  698. package/dist/router/segment-resolution.d.ts +0 -127
  699. package/dist/router/segment-resolution.d.ts.map +0 -1
  700. package/dist/router/segment-resolution.js +0 -919
  701. package/dist/router/segment-resolution.js.map +0 -1
  702. package/dist/router/trie-matching.d.ts +0 -40
  703. package/dist/router/trie-matching.d.ts.map +0 -1
  704. package/dist/router/trie-matching.js +0 -127
  705. package/dist/router/trie-matching.js.map +0 -1
  706. package/dist/router/types.d.ts +0 -136
  707. package/dist/router/types.d.ts.map +0 -1
  708. package/dist/router/types.js +0 -7
  709. package/dist/router/types.js.map +0 -1
  710. package/dist/router.d.ts +0 -753
  711. package/dist/router.d.ts.map +0 -1
  712. package/dist/router.gen.d.ts +0 -6
  713. package/dist/router.gen.d.ts.map +0 -1
  714. package/dist/router.gen.js +0 -6
  715. package/dist/router.gen.js.map +0 -1
  716. package/dist/router.js +0 -1304
  717. package/dist/router.js.map +0 -1
  718. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  719. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  720. package/dist/rsc/__tests__/helpers.test.js +0 -140
  721. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  722. package/dist/rsc/handler.d.ts +0 -45
  723. package/dist/rsc/handler.d.ts.map +0 -1
  724. package/dist/rsc/handler.js +0 -1172
  725. package/dist/rsc/handler.js.map +0 -1
  726. package/dist/rsc/helpers.d.ts +0 -16
  727. package/dist/rsc/helpers.d.ts.map +0 -1
  728. package/dist/rsc/helpers.js +0 -55
  729. package/dist/rsc/helpers.js.map +0 -1
  730. package/dist/rsc/index.d.ts +0 -22
  731. package/dist/rsc/index.d.ts.map +0 -1
  732. package/dist/rsc/index.js +0 -23
  733. package/dist/rsc/index.js.map +0 -1
  734. package/dist/rsc/nonce.d.ts +0 -9
  735. package/dist/rsc/nonce.d.ts.map +0 -1
  736. package/dist/rsc/nonce.js +0 -18
  737. package/dist/rsc/nonce.js.map +0 -1
  738. package/dist/rsc/types.d.ts +0 -206
  739. package/dist/rsc/types.d.ts.map +0 -1
  740. package/dist/rsc/types.js +0 -8
  741. package/dist/rsc/types.js.map +0 -1
  742. package/dist/search-params.d.ts +0 -103
  743. package/dist/search-params.d.ts.map +0 -1
  744. package/dist/search-params.js +0 -74
  745. package/dist/search-params.js.map +0 -1
  746. package/dist/segment-system.d.ts +0 -75
  747. package/dist/segment-system.d.ts.map +0 -1
  748. package/dist/segment-system.js +0 -336
  749. package/dist/segment-system.js.map +0 -1
  750. package/dist/server/context.d.ts +0 -245
  751. package/dist/server/context.d.ts.map +0 -1
  752. package/dist/server/context.js +0 -197
  753. package/dist/server/context.js.map +0 -1
  754. package/dist/server/fetchable-loader-store.d.ts +0 -18
  755. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  756. package/dist/server/fetchable-loader-store.js +0 -18
  757. package/dist/server/fetchable-loader-store.js.map +0 -1
  758. package/dist/server/handle-store.d.ts +0 -85
  759. package/dist/server/handle-store.d.ts.map +0 -1
  760. package/dist/server/handle-store.js +0 -142
  761. package/dist/server/handle-store.js.map +0 -1
  762. package/dist/server/loader-registry.d.ts +0 -55
  763. package/dist/server/loader-registry.d.ts.map +0 -1
  764. package/dist/server/loader-registry.js +0 -132
  765. package/dist/server/loader-registry.js.map +0 -1
  766. package/dist/server/request-context.d.ts +0 -226
  767. package/dist/server/request-context.d.ts.map +0 -1
  768. package/dist/server/request-context.js +0 -290
  769. package/dist/server/request-context.js.map +0 -1
  770. package/dist/server/root-layout.d.ts +0 -4
  771. package/dist/server/root-layout.d.ts.map +0 -1
  772. package/dist/server/root-layout.js +0 -5
  773. package/dist/server/root-layout.js.map +0 -1
  774. package/dist/server.d.ts +0 -15
  775. package/dist/server.d.ts.map +0 -1
  776. package/dist/server.js +0 -20
  777. package/dist/server.js.map +0 -1
  778. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  779. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  780. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  781. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  782. package/dist/ssr/index.d.ts +0 -98
  783. package/dist/ssr/index.d.ts.map +0 -1
  784. package/dist/ssr/index.js +0 -158
  785. package/dist/ssr/index.js.map +0 -1
  786. package/dist/static-handler.d.ts +0 -50
  787. package/dist/static-handler.d.ts.map +0 -1
  788. package/dist/static-handler.gen.d.ts +0 -5
  789. package/dist/static-handler.gen.d.ts.map +0 -1
  790. package/dist/static-handler.gen.js +0 -5
  791. package/dist/static-handler.gen.js.map +0 -1
  792. package/dist/static-handler.js +0 -29
  793. package/dist/static-handler.js.map +0 -1
  794. package/dist/theme/ThemeProvider.d.ts +0 -20
  795. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  796. package/dist/theme/ThemeProvider.js +0 -240
  797. package/dist/theme/ThemeProvider.js.map +0 -1
  798. package/dist/theme/ThemeScript.d.ts +0 -48
  799. package/dist/theme/ThemeScript.d.ts.map +0 -1
  800. package/dist/theme/ThemeScript.js +0 -13
  801. package/dist/theme/ThemeScript.js.map +0 -1
  802. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  803. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  804. package/dist/theme/__tests__/theme.test.js +0 -103
  805. package/dist/theme/__tests__/theme.test.js.map +0 -1
  806. package/dist/theme/constants.d.ts +0 -29
  807. package/dist/theme/constants.d.ts.map +0 -1
  808. package/dist/theme/constants.js +0 -48
  809. package/dist/theme/constants.js.map +0 -1
  810. package/dist/theme/index.d.ts +0 -31
  811. package/dist/theme/index.d.ts.map +0 -1
  812. package/dist/theme/index.js +0 -36
  813. package/dist/theme/index.js.map +0 -1
  814. package/dist/theme/theme-context.d.ts +0 -40
  815. package/dist/theme/theme-context.d.ts.map +0 -1
  816. package/dist/theme/theme-context.js +0 -60
  817. package/dist/theme/theme-context.js.map +0 -1
  818. package/dist/theme/theme-script.d.ts +0 -27
  819. package/dist/theme/theme-script.d.ts.map +0 -1
  820. package/dist/theme/theme-script.js +0 -147
  821. package/dist/theme/theme-script.js.map +0 -1
  822. package/dist/theme/types.d.ts +0 -163
  823. package/dist/theme/types.d.ts.map +0 -1
  824. package/dist/theme/types.js +0 -11
  825. package/dist/theme/types.js.map +0 -1
  826. package/dist/theme/use-theme.d.ts +0 -12
  827. package/dist/theme/use-theme.d.ts.map +0 -1
  828. package/dist/theme/use-theme.js +0 -40
  829. package/dist/theme/use-theme.js.map +0 -1
  830. package/dist/types.d.ts +0 -1479
  831. package/dist/types.d.ts.map +0 -1
  832. package/dist/types.js +0 -10
  833. package/dist/types.js.map +0 -1
  834. package/dist/urls.d.ts +0 -441
  835. package/dist/urls.d.ts.map +0 -1
  836. package/dist/urls.gen.d.ts +0 -8
  837. package/dist/urls.gen.d.ts.map +0 -1
  838. package/dist/urls.gen.js +0 -8
  839. package/dist/urls.gen.js.map +0 -1
  840. package/dist/urls.js +0 -443
  841. package/dist/urls.js.map +0 -1
  842. package/dist/use-loader.d.ts +0 -127
  843. package/dist/use-loader.d.ts.map +0 -1
  844. package/dist/use-loader.js +0 -237
  845. package/dist/use-loader.js.map +0 -1
  846. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  847. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  848. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  849. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  850. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  851. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  852. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  853. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  854. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  855. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  856. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  857. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  858. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  859. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  860. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  861. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  862. package/dist/vite/ast-handler-extract.d.ts +0 -49
  863. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  864. package/dist/vite/ast-handler-extract.js +0 -249
  865. package/dist/vite/ast-handler-extract.js.map +0 -1
  866. package/dist/vite/expose-action-id.d.ts +0 -19
  867. package/dist/vite/expose-action-id.d.ts.map +0 -1
  868. package/dist/vite/expose-action-id.js +0 -250
  869. package/dist/vite/expose-action-id.js.map +0 -1
  870. package/dist/vite/expose-id-utils.d.ts +0 -69
  871. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  872. package/dist/vite/expose-id-utils.js +0 -289
  873. package/dist/vite/expose-id-utils.js.map +0 -1
  874. package/dist/vite/expose-internal-ids.d.ts +0 -22
  875. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  876. package/dist/vite/expose-internal-ids.js +0 -886
  877. package/dist/vite/expose-internal-ids.js.map +0 -1
  878. package/dist/vite/index.d.ts +0 -149
  879. package/dist/vite/index.d.ts.map +0 -1
  880. package/dist/vite/index.js.map +0 -1
  881. package/dist/vite/index.named-routes.gen.ts +0 -103
  882. package/dist/vite/package-resolution.d.ts +0 -43
  883. package/dist/vite/package-resolution.d.ts.map +0 -1
  884. package/dist/vite/package-resolution.js +0 -112
  885. package/dist/vite/package-resolution.js.map +0 -1
  886. package/dist/vite/virtual-entries.d.ts +0 -25
  887. package/dist/vite/virtual-entries.d.ts.map +0 -1
  888. package/dist/vite/virtual-entries.js +0 -110
  889. package/dist/vite/virtual-entries.js.map +0 -1
@@ -18,6 +18,9 @@ function hashId(filePath, exportName) {
18
18
  const hash = crypto.createHash("sha256").update(input).digest("hex");
19
19
  return `${hash.slice(0, 8)}#${exportName}`;
20
20
  }
21
+ function makeStubId(filePath, exportName, isBuild) {
22
+ return isBuild ? hashId(filePath, exportName) : `${filePath}#${exportName}`;
23
+ }
21
24
  function hashInlineId(filePath, lineNumber, index) {
22
25
  const input = index !== void 0 && index > 0 ? `${filePath}:${lineNumber}:${index}` : `${filePath}:${lineNumber}`;
23
26
  return crypto.createHash("sha256").update(input).digest("hex").slice(0, 8);
@@ -910,9 +913,7 @@ function generateWholeFileStubs(cfg, bindings, code, filePath, isBuild) {
910
913
  });
911
914
  return { code: stubs.join("\n") + "\n", map: null };
912
915
  }
913
- function generateExprStubs(cfg, bindings, code, filePath, sourceId, isBuild) {
914
- if (bindings.length === 0) return null;
915
- const s = new MagicString2(code);
916
+ function stubHandlerExprs(cfg, bindings, s, filePath, isBuild) {
916
917
  let hasChanges = false;
917
918
  for (const binding of bindings) {
918
919
  const exportName = binding.exportNames[0];
@@ -924,15 +925,7 @@ function generateExprStubs(cfg, bindings, code, filePath, sourceId, isBuild) {
924
925
  );
925
926
  hasChanges = true;
926
927
  }
927
- if (!hasChanges) return null;
928
- return {
929
- code: s.toString(),
930
- map: s.generateMap({
931
- source: sourceId,
932
- includeContent: true,
933
- hires: "boundary"
934
- })
935
- };
928
+ return hasChanges;
936
929
  }
937
930
  function transformHandlerIds(cfg, bindings, s, filePath, isBuild) {
938
931
  let hasChanges = false;
@@ -1269,15 +1262,6 @@ ${lazyImports.join(",\n")}
1269
1262
  isBuild
1270
1263
  );
1271
1264
  if (wholeFile) return wholeFile;
1272
- const exprStubs = generateExprStubs(
1273
- PRERENDER_CONFIG,
1274
- bindings,
1275
- code,
1276
- filePath,
1277
- id,
1278
- isBuild
1279
- );
1280
- if (exprStubs) return exprStubs;
1281
1265
  }
1282
1266
  if (hasPrerenderHandlerCode && isRscEnv && isBuild) {
1283
1267
  const fnNames = getFnNames(PRERENDER_CONFIG.fnName);
@@ -1329,15 +1313,134 @@ ${lazyImports.join(",\n")}
1329
1313
  isBuild
1330
1314
  );
1331
1315
  if (wholeFile) return wholeFile;
1332
- const exprStubs = generateExprStubs(
1333
- STATIC_CONFIG,
1334
- bindings,
1335
- code,
1336
- filePath,
1337
- id,
1338
- isBuild
1339
- );
1340
- if (exprStubs) return exprStubs;
1316
+ }
1317
+ if (!isRscEnv && (hasPrerenderHandlerCode || hasStaticHandlerCode)) {
1318
+ const prerenderFnNames = hasPrerenderHandlerCode ? getFnNames(PRERENDER_CONFIG.fnName) : [];
1319
+ const staticFnNames = hasStaticHandlerCode ? getFnNames(STATIC_CONFIG.fnName) : [];
1320
+ const loaderFnNames = hasLoaderCode ? getFnNames("createLoader") : [];
1321
+ const handleFnNames = hasHandleCode ? getFnNames("createHandle") : [];
1322
+ const lsFnNames = hasLocationStateCode ? getFnNames("createLocationState") : [];
1323
+ const allBindings = [];
1324
+ for (const fnNames of [
1325
+ prerenderFnNames,
1326
+ staticFnNames,
1327
+ loaderFnNames,
1328
+ handleFnNames,
1329
+ lsFnNames
1330
+ ]) {
1331
+ if (fnNames.length > 0) {
1332
+ allBindings.push(...getBindings(code, fnNames));
1333
+ }
1334
+ }
1335
+ let canStubWholeFile = allBindings.length > 0 && isExportOnlyFile(code, allBindings);
1336
+ if (canStubWholeFile && (handleFnNames.length > 0 || lsFnNames.length > 0)) {
1337
+ const exportedLocals = new Set(allBindings.map((b) => b.localName));
1338
+ const strippedBindings = [];
1339
+ const localDeclPattern = /(?:^|;|\n)\s*(?:const|let|var|function)\s+(\w+)/g;
1340
+ let declMatch;
1341
+ while ((declMatch = localDeclPattern.exec(code)) !== null) {
1342
+ const name = declMatch[1];
1343
+ if (!exportedLocals.has(name) && !/^_c\d*$/.test(name)) {
1344
+ strippedBindings.push(name);
1345
+ }
1346
+ }
1347
+ const importPattern = /import\s*\{([^}]*)\}\s*from\s*["'](?!@rangojs\/router)[^"']*["']/g;
1348
+ let importMatch;
1349
+ while ((importMatch = importPattern.exec(code)) !== null) {
1350
+ for (const spec of importMatch[1].split(",")) {
1351
+ const m = spec.trim().match(/^[A-Za-z_$][\w$]*(?:\s+as\s+([A-Za-z_$][\w$]*))?$/);
1352
+ if (m) strippedBindings.push(m[1] || m[0].trim().split(/\s/)[0]);
1353
+ }
1354
+ }
1355
+ const defaultImportPattern = /import\s+([A-Za-z_$][\w$]*)\s+from\s*["'](?!@rangojs\/router)[^"']*["']/g;
1356
+ while ((importMatch = defaultImportPattern.exec(code)) !== null) {
1357
+ strippedBindings.push(importMatch[1]);
1358
+ }
1359
+ const nsImportPattern = /import\s+\*\s+as\s+([A-Za-z_$][\w$]*)\s+from\s*["'](?!@rangojs\/router)[^"']*["']/g;
1360
+ while ((importMatch = nsImportPattern.exec(code)) !== null) {
1361
+ strippedBindings.push(importMatch[1]);
1362
+ }
1363
+ if (strippedBindings.length > 0) {
1364
+ const preservedBindings = allBindings.filter((b) => {
1365
+ const fc = code.slice(b.callExprStart, b.callOpenParenPos + 1);
1366
+ return handleFnNames.some((n) => fc.includes(n)) || lsFnNames.some((n) => fc.includes(n));
1367
+ });
1368
+ const strippedRe = new RegExp(
1369
+ `\\b(?:${strippedBindings.join("|")})\\b`
1370
+ );
1371
+ canStubWholeFile = !preservedBindings.some((b) => {
1372
+ const expr = code.slice(b.callExprStart, b.callCloseParenPos + 1);
1373
+ return strippedRe.test(expr);
1374
+ });
1375
+ }
1376
+ }
1377
+ if (canStubWholeFile) {
1378
+ const lines = [];
1379
+ const neededImports = [];
1380
+ if (handleFnNames.length > 0) neededImports.push("createHandle");
1381
+ if (lsFnNames.length > 0) neededImports.push("createLocationState");
1382
+ if (neededImports.length > 0) {
1383
+ lines.push(
1384
+ `import { ${neededImports.join(", ")} } from "@rangojs/router";`
1385
+ );
1386
+ }
1387
+ for (const binding of allBindings) {
1388
+ const fnCall = code.slice(
1389
+ binding.callExprStart,
1390
+ binding.callOpenParenPos + 1
1391
+ );
1392
+ const isHandle = handleFnNames.some((n) => fnCall.includes(n));
1393
+ const isLocationState = lsFnNames.some((n) => fnCall.includes(n));
1394
+ const primaryName = binding.exportNames[0];
1395
+ const stubId = makeStubId(filePath, primaryName, isBuild);
1396
+ if (isHandle || isLocationState) {
1397
+ const rawArgs = code.slice(binding.callOpenParenPos + 1, binding.callCloseParenPos).replace(/\b_c\d*\s*=\s*/g, "");
1398
+ const canonicalName = isHandle ? "createHandle" : "createLocationState";
1399
+ const activeFnNames = isHandle ? handleFnNames : lsFnNames;
1400
+ let rawCallee = code.slice(
1401
+ binding.callExprStart,
1402
+ binding.callOpenParenPos
1403
+ );
1404
+ for (const alias of activeFnNames) {
1405
+ if (alias !== canonicalName && rawCallee.startsWith(alias)) {
1406
+ rawCallee = canonicalName + rawCallee.slice(alias.length);
1407
+ break;
1408
+ }
1409
+ }
1410
+ if (isHandle) {
1411
+ const idParam = binding.argCount === 0 ? `undefined, "${stubId}"` : `, "${stubId}"`;
1412
+ lines.push(
1413
+ `export const ${primaryName} = ${rawCallee}(${rawArgs}${idParam});`
1414
+ );
1415
+ lines.push(`${primaryName}.$$id = "${stubId}";`);
1416
+ } else {
1417
+ lines.push(
1418
+ `export const ${primaryName} = ${rawCallee}(${rawArgs});`
1419
+ );
1420
+ lines.push(
1421
+ `${primaryName}.__rsc_ls_key = "__rsc_ls_${stubId}";`
1422
+ );
1423
+ }
1424
+ for (const name of binding.exportNames.slice(1)) {
1425
+ lines.push(`export const ${name} = ${primaryName};`);
1426
+ }
1427
+ } else {
1428
+ let brand = "loader";
1429
+ if (prerenderFnNames.some((n) => fnCall.includes(n))) {
1430
+ brand = PRERENDER_CONFIG.brand;
1431
+ } else if (staticFnNames.some((n) => fnCall.includes(n))) {
1432
+ brand = STATIC_CONFIG.brand;
1433
+ }
1434
+ lines.push(
1435
+ `export const ${primaryName} = { __brand: "${brand}", $$id: "${stubId}" };`
1436
+ );
1437
+ for (const name of binding.exportNames.slice(1)) {
1438
+ lines.push(`export const ${name} = ${primaryName};`);
1439
+ }
1440
+ }
1441
+ }
1442
+ return { code: lines.join("\n") + "\n", map: null };
1443
+ }
1341
1444
  }
1342
1445
  if (hasStaticHandlerCode && isRscEnv && isBuild) {
1343
1446
  const fnNames = getFnNames(STATIC_CONFIG.fnName);
@@ -1372,25 +1475,41 @@ ${lazyImports.join(",\n")}
1372
1475
  isBuild
1373
1476
  ) || changed;
1374
1477
  }
1375
- if (hasPrerenderHandlerCode && isRscEnv) {
1478
+ if (hasPrerenderHandlerCode) {
1376
1479
  const fnNames = getFnNames(PRERENDER_CONFIG.fnName);
1377
- changed = transformHandlerIds(
1378
- PRERENDER_CONFIG,
1379
- getBindings(code, fnNames),
1380
- s,
1381
- filePath,
1382
- isBuild
1383
- ) || changed;
1480
+ const bindings = getBindings(code, fnNames);
1481
+ if (isRscEnv) {
1482
+ changed = transformHandlerIds(
1483
+ PRERENDER_CONFIG,
1484
+ bindings,
1485
+ s,
1486
+ filePath,
1487
+ isBuild
1488
+ ) || changed;
1489
+ } else {
1490
+ changed = stubHandlerExprs(
1491
+ PRERENDER_CONFIG,
1492
+ bindings,
1493
+ s,
1494
+ filePath,
1495
+ isBuild
1496
+ ) || changed;
1497
+ }
1384
1498
  }
1385
- if (hasStaticHandlerCode && isRscEnv) {
1499
+ if (hasStaticHandlerCode) {
1386
1500
  const fnNames = getFnNames(STATIC_CONFIG.fnName);
1387
- changed = transformHandlerIds(
1388
- STATIC_CONFIG,
1389
- getBindings(code, fnNames),
1390
- s,
1391
- filePath,
1392
- isBuild
1393
- ) || changed;
1501
+ const bindings = getBindings(code, fnNames);
1502
+ if (isRscEnv) {
1503
+ changed = transformHandlerIds(
1504
+ STATIC_CONFIG,
1505
+ bindings,
1506
+ s,
1507
+ filePath,
1508
+ isBuild
1509
+ ) || changed;
1510
+ } else {
1511
+ changed = stubHandlerExprs(STATIC_CONFIG, bindings, s, filePath, isBuild) || changed;
1512
+ }
1394
1513
  }
1395
1514
  if (!changed) return;
1396
1515
  return {
@@ -1745,7 +1864,7 @@ import { resolve } from "node:path";
1745
1864
  // package.json
1746
1865
  var package_default = {
1747
1866
  name: "@rangojs/router",
1748
- version: "0.0.0-experimental.60",
1867
+ version: "0.0.0-experimental.60c5dbde",
1749
1868
  description: "Django-inspired RSC router with composable URL patterns",
1750
1869
  keywords: [
1751
1870
  "react",
@@ -1887,7 +2006,7 @@ var package_default = {
1887
2006
  "test:unit:watch": "vitest"
1888
2007
  },
1889
2008
  dependencies: {
1890
- "@vitejs/plugin-rsc": "^0.5.19",
2009
+ "@vitejs/plugin-rsc": "^0.5.23",
1891
2010
  "magic-string": "^0.30.17",
1892
2011
  picomatch: "^4.0.3",
1893
2012
  "rsc-html-stream": "^0.0.7"
@@ -1907,7 +2026,7 @@ var package_default = {
1907
2026
  },
1908
2027
  peerDependencies: {
1909
2028
  "@cloudflare/vite-plugin": "^1.25.0",
1910
- "@vitejs/plugin-rsc": "^0.5.14",
2029
+ "@vitejs/plugin-rsc": "^0.5.23",
1911
2030
  react: "^18.0.0 || ^19.0.0",
1912
2031
  vite: "^7.3.0"
1913
2032
  },
@@ -3141,6 +3260,8 @@ function createCjsToEsmPlugin() {
3141
3260
  import { createServer as createViteServer } from "vite";
3142
3261
  import { resolve as resolve8 } from "node:path";
3143
3262
  import { readFileSync as readFileSync6 } from "node:fs";
3263
+ import { createRequire } from "node:module";
3264
+ import { pathToFileURL } from "node:url";
3144
3265
 
3145
3266
  // src/vite/plugins/virtual-stub-plugin.ts
3146
3267
  function createVirtualStubPlugin() {
@@ -3324,8 +3445,8 @@ function createDiscoveryState(entryPath, opts) {
3324
3445
  perRouterManifestDataMap: /* @__PURE__ */ new Map(),
3325
3446
  prerenderManifestEntries: null,
3326
3447
  staticManifestEntries: null,
3327
- handlerChunkInfo: null,
3328
- staticHandlerChunkInfo: null,
3448
+ handlerChunkInfoMap: /* @__PURE__ */ new Map(),
3449
+ staticHandlerChunkInfoMap: /* @__PURE__ */ new Map(),
3329
3450
  rscEntryFileName: null,
3330
3451
  resolvedPrerenderModules: void 0,
3331
3452
  resolvedStaticModules: void 0,
@@ -3456,13 +3577,31 @@ function encodePathParam(value) {
3456
3577
  }
3457
3578
  function substituteRouteParams(pattern, params, encode = encodeURIComponent) {
3458
3579
  let result = pattern;
3580
+ let hadOmittedOptional = false;
3459
3581
  for (const [key, value] of Object.entries(params)) {
3460
3582
  const escaped = escapeRegExp2(key);
3461
- result = result.replace(
3462
- new RegExp(`:${escaped}(\\([^)]*\\))?\\??`),
3463
- encode(value)
3464
- );
3465
- result = result.replace(`*${key}`, encode(value));
3583
+ if (value === "") {
3584
+ result = result.replace(
3585
+ new RegExp(`:${escaped}(\\([^)]*\\))?(?!\\?)`),
3586
+ ""
3587
+ );
3588
+ result = result.replace(`*${key}`, "");
3589
+ } else {
3590
+ result = result.replace(
3591
+ new RegExp(`:${escaped}(\\([^)]*\\))?\\??`),
3592
+ encode(value)
3593
+ );
3594
+ result = result.replace(`*${key}`, encode(value));
3595
+ }
3596
+ }
3597
+ result = result.replace(/:([a-zA-Z_][a-zA-Z0-9_]*)(\([^)]*\))?\?/g, () => {
3598
+ hadOmittedOptional = true;
3599
+ return "";
3600
+ });
3601
+ if (hadOmittedOptional) {
3602
+ const hadTrailingSlash = pattern.length > 1 && pattern.endsWith("/");
3603
+ result = result.replace(/\/\/+/g, "/").replace(/\/+$/, "") || "/";
3604
+ if (hadTrailingSlash && !result.endsWith("/")) result += "/";
3466
3605
  }
3467
3606
  return result;
3468
3607
  }
@@ -3572,84 +3711,126 @@ async function expandPrerenderRoutes(state, rscEnv, registry, allManifests) {
3572
3711
  if (!params) return pattern;
3573
3712
  return substituteRouteParams(pattern, params);
3574
3713
  };
3714
+ let resolvedRoutes = 0;
3715
+ let totalDynamic = 0;
3575
3716
  for (const { manifest } of allManifests) {
3576
3717
  if (!manifest.prerenderRoutes) continue;
3577
- const defs = manifest._prerenderDefs || {};
3578
3718
  for (const routeName of manifest.prerenderRoutes) {
3579
3719
  const pattern = manifest.routeManifest[routeName];
3580
- if (!pattern) continue;
3581
- const def = defs[routeName];
3582
- const isPassthroughRoute = !!def?.options?.passthrough;
3583
- const hasDynamic = pattern.includes(":") || pattern.includes("*");
3584
- if (!hasDynamic) {
3585
- entries.push({
3586
- urlPath: pattern.replace(/\/$/, "") || "/",
3587
- routeName,
3588
- concurrency: 1,
3589
- isPassthroughRoute
3590
- });
3591
- } else {
3592
- if (def?.getParams) {
3593
- try {
3594
- const buildVars = {};
3595
- const getParamsCtx = {
3596
- build: true,
3597
- set: ((keyOrVar, value) => {
3598
- contextSet(buildVars, keyOrVar, value);
3599
- }),
3600
- reverse: getParamsReverse
3601
- };
3602
- const paramsList = await def.getParams(getParamsCtx);
3603
- const concurrency = def.options?.concurrency ?? 1;
3604
- const hasBuildVars = Object.keys(buildVars).length > 0 || Object.getOwnPropertySymbols(buildVars).length > 0;
3605
- for (const params of paramsList) {
3606
- let url = substituteRouteParams(
3607
- pattern,
3608
- params,
3609
- encodePathParam
3610
- );
3611
- if (url.includes("*")) {
3612
- const wildcardValue = params["*"] ?? params.splat;
3613
- if (wildcardValue !== void 0) {
3614
- url = url.replace(/\*[^/]*$/, encodePathParam(wildcardValue));
3720
+ if (pattern && (pattern.includes(":") || pattern.includes("*"))) {
3721
+ totalDynamic++;
3722
+ }
3723
+ }
3724
+ }
3725
+ const paramsStart = performance.now();
3726
+ const progressInterval = totalDynamic > 0 ? setInterval(() => {
3727
+ const elapsed = ((performance.now() - paramsStart) / 1e3).toFixed(1);
3728
+ console.log(
3729
+ `[rsc-router] Resolving prerender params... ${resolvedRoutes}/${totalDynamic} routes (${elapsed}s)`
3730
+ );
3731
+ }, 5e3) : void 0;
3732
+ try {
3733
+ for (const { manifest } of allManifests) {
3734
+ if (!manifest.prerenderRoutes) continue;
3735
+ const defs = manifest._prerenderDefs || {};
3736
+ const passthroughSet = new Set(manifest.passthroughRoutes || []);
3737
+ for (const routeName of manifest.prerenderRoutes) {
3738
+ const pattern = manifest.routeManifest[routeName];
3739
+ if (!pattern) continue;
3740
+ const def = defs[routeName];
3741
+ const isPassthroughRoute = passthroughSet.has(routeName);
3742
+ const hasDynamic = pattern.includes(":") || pattern.includes("*");
3743
+ if (!hasDynamic) {
3744
+ entries.push({
3745
+ urlPath: pattern.replace(/\/$/, "") || "/",
3746
+ routeName,
3747
+ concurrency: 1,
3748
+ isPassthroughRoute
3749
+ });
3750
+ } else {
3751
+ if (def?.getParams) {
3752
+ try {
3753
+ const buildVars = {};
3754
+ const buildEnv = state.resolvedBuildEnv;
3755
+ const getParamsCtx = {
3756
+ build: true,
3757
+ dev: !state.isBuildMode,
3758
+ set: ((keyOrVar, value) => {
3759
+ contextSet(buildVars, keyOrVar, value);
3760
+ }),
3761
+ reverse: getParamsReverse,
3762
+ get env() {
3763
+ if (buildEnv !== void 0) return buildEnv;
3764
+ throw new Error(
3765
+ "[rsc-router] ctx.env is not available during build-time getParams(). Configure buildEnv in your rango() plugin options to enable build-time env access."
3766
+ );
3615
3767
  }
3768
+ };
3769
+ const paramsList = await def.getParams(getParamsCtx);
3770
+ const concurrency = def.options?.concurrency ?? 1;
3771
+ const hasBuildVars = Object.keys(buildVars).length > 0 || Object.getOwnPropertySymbols(buildVars).length > 0;
3772
+ for (const params of paramsList) {
3773
+ let url = substituteRouteParams(
3774
+ pattern,
3775
+ params,
3776
+ encodePathParam
3777
+ );
3778
+ if (url.includes("*")) {
3779
+ const wildcardValue = params["*"] ?? params.splat;
3780
+ if (wildcardValue !== void 0) {
3781
+ url = url.replace(
3782
+ /\*[^/]*$/,
3783
+ encodePathParam(wildcardValue)
3784
+ );
3785
+ }
3786
+ }
3787
+ entries.push({
3788
+ urlPath: url.replace(/\/$/, "") || "/",
3789
+ routeName,
3790
+ concurrency,
3791
+ ...hasBuildVars ? { buildVars } : {},
3792
+ isPassthroughRoute
3793
+ });
3616
3794
  }
3617
- entries.push({
3618
- urlPath: url.replace(/\/$/, "") || "/",
3619
- routeName,
3620
- concurrency,
3621
- ...hasBuildVars ? { buildVars } : {},
3622
- isPassthroughRoute
3623
- });
3624
- }
3625
- } catch (err) {
3626
- if (err.name === "Skip") {
3627
- console.log(
3628
- `[rsc-router] SKIP route "${routeName}" - ${err.message}`
3629
- );
3630
- notifyOnError(
3631
- registry,
3632
- err,
3633
- "prerender",
3634
- routeName,
3635
- void 0,
3636
- true
3795
+ resolvedRoutes++;
3796
+ } catch (err) {
3797
+ resolvedRoutes++;
3798
+ if (err.name === "Skip") {
3799
+ console.log(
3800
+ `[rsc-router] SKIP route "${routeName}" - ${err.message}`
3801
+ );
3802
+ notifyOnError(
3803
+ registry,
3804
+ err,
3805
+ "prerender",
3806
+ routeName,
3807
+ void 0,
3808
+ true
3809
+ );
3810
+ continue;
3811
+ }
3812
+ console.error(
3813
+ `[rsc-router] Failed to get params for prerender route "${routeName}": ${err.message}`
3637
3814
  );
3638
- continue;
3815
+ notifyOnError(registry, err, "prerender", routeName);
3816
+ throw err;
3639
3817
  }
3640
- console.error(
3641
- `[rsc-router] Failed to get params for prerender route "${routeName}": ${err.message}`
3818
+ } else {
3819
+ console.warn(
3820
+ `[rsc-router] Dynamic prerender route "${routeName}" has no getParams(), skipping`
3642
3821
  );
3643
- notifyOnError(registry, err, "prerender", routeName);
3644
- throw err;
3645
3822
  }
3646
- } else {
3647
- console.warn(
3648
- `[rsc-router] Dynamic prerender route "${routeName}" has no getParams(), skipping`
3649
- );
3650
3823
  }
3651
3824
  }
3652
3825
  }
3826
+ } finally {
3827
+ if (progressInterval) {
3828
+ clearInterval(progressInterval);
3829
+ const elapsed = ((performance.now() - paramsStart) / 1e3).toFixed(1);
3830
+ console.log(
3831
+ `[rsc-router] Resolved prerender params: ${resolvedRoutes}/${totalDynamic} routes (${elapsed}s)`
3832
+ );
3833
+ }
3653
3834
  }
3654
3835
  if (entries.length === 0) return;
3655
3836
  const maxConcurrency = Math.max(...entries.map((e) => e.concurrency));
@@ -3676,7 +3857,8 @@ async function expandPrerenderRoutes(state, rscEnv, registry, allManifests) {
3676
3857
  entry.urlPath,
3677
3858
  {},
3678
3859
  entry.buildVars,
3679
- entry.isPassthroughRoute
3860
+ entry.isPassthroughRoute,
3861
+ state.resolvedBuildEnv
3680
3862
  );
3681
3863
  if (!result) continue;
3682
3864
  if (result.passthrough) {
@@ -3800,7 +3982,9 @@ async function renderStaticHandlers(state, rscEnv, registry) {
3800
3982
  const result = await routerInstance.renderStaticSegment(
3801
3983
  def.handler,
3802
3984
  def.$$id,
3803
- def.$$routePrefix
3985
+ def.$$routePrefix,
3986
+ state.resolvedBuildEnv,
3987
+ !state.isBuildMode
3804
3988
  );
3805
3989
  if (result) {
3806
3990
  const hasHandles = Object.keys(result.handles).length > 0;
@@ -4378,48 +4562,45 @@ function postprocessBundle(state) {
4378
4562
  );
4379
4563
  const evictionTargets = [
4380
4564
  {
4381
- info: state.handlerChunkInfo,
4565
+ infos: state.handlerChunkInfoMap.values(),
4382
4566
  fnName: "Prerender",
4383
4567
  brand: "prerenderHandler",
4384
4568
  label: "handler code from RSC bundle"
4385
4569
  },
4386
4570
  {
4387
- info: state.staticHandlerChunkInfo,
4571
+ infos: state.staticHandlerChunkInfoMap.values(),
4388
4572
  fnName: "Static",
4389
4573
  brand: "staticHandler",
4390
4574
  label: "static handler code"
4391
4575
  }
4392
4576
  ];
4393
4577
  for (const target of evictionTargets) {
4394
- if (!target.info) continue;
4395
- const chunkPath = resolve7(
4396
- state.projectRoot,
4397
- "dist/rsc",
4398
- target.info.fileName
4399
- );
4400
- try {
4401
- const code = readFileSync5(chunkPath, "utf-8");
4402
- const result = evictHandlerCode(
4403
- code,
4404
- target.info.exports,
4405
- target.fnName,
4406
- target.brand
4407
- );
4408
- if (result) {
4409
- writeFileSync4(chunkPath, result.code);
4410
- const savedKB = (result.savedBytes / 1024).toFixed(1);
4411
- console.log(
4412
- `[rsc-router] Evicted ${target.label} (${savedKB} KB saved): ${target.info.fileName}`
4578
+ for (const info of target.infos) {
4579
+ const chunkPath = resolve7(state.projectRoot, "dist/rsc", info.fileName);
4580
+ try {
4581
+ const code = readFileSync5(chunkPath, "utf-8");
4582
+ const result = evictHandlerCode(
4583
+ code,
4584
+ info.exports,
4585
+ target.fnName,
4586
+ target.brand
4587
+ );
4588
+ if (result) {
4589
+ writeFileSync4(chunkPath, result.code);
4590
+ const savedKB = (result.savedBytes / 1024).toFixed(1);
4591
+ console.log(
4592
+ `[rsc-router] Evicted ${target.label} (${savedKB} KB saved): ${info.fileName}`
4593
+ );
4594
+ }
4595
+ } catch (replaceErr) {
4596
+ console.warn(
4597
+ `[rsc-router] Failed to evict ${target.label}: ${replaceErr.message}`
4413
4598
  );
4414
4599
  }
4415
- } catch (replaceErr) {
4416
- console.warn(
4417
- `[rsc-router] Failed to evict ${target.label}: ${replaceErr.message}`
4418
- );
4419
4600
  }
4420
4601
  }
4421
- state.handlerChunkInfo = null;
4422
- state.staticHandlerChunkInfo = null;
4602
+ state.handlerChunkInfoMap.clear();
4603
+ state.staticHandlerChunkInfoMap.clear();
4423
4604
  if (hasPrerenderData && existsSync6(rscEntryPath)) {
4424
4605
  const rscCode = readFileSync5(rscEntryPath, "utf-8");
4425
4606
  if (!rscCode.includes("__prerender-manifest.js")) {
@@ -4462,7 +4643,7 @@ function postprocessBundle(state) {
4462
4643
  }
4463
4644
  if (hasStaticData && existsSync6(rscEntryPath)) {
4464
4645
  const rscCode = readFileSync5(rscEntryPath, "utf-8");
4465
- if (!rscCode.includes("__STATIC_MANIFEST")) {
4646
+ if (!rscCode.includes("__static-manifest.js")) {
4466
4647
  try {
4467
4648
  const manifestEntries = [];
4468
4649
  let totalBytes = copyStagedBuildAssets(
@@ -4531,8 +4712,67 @@ async function createTempRscServer(state, options = {}) {
4531
4712
  ]
4532
4713
  });
4533
4714
  }
4715
+ async function resolveBuildEnv(option, factoryCtx) {
4716
+ if (!option) return null;
4717
+ if (option === "auto") {
4718
+ if (factoryCtx.preset !== "cloudflare") {
4719
+ throw new Error(
4720
+ '[rsc-router] buildEnv: "auto" is only supported with preset: "cloudflare". Use a factory function or plain object for other presets.'
4721
+ );
4722
+ }
4723
+ try {
4724
+ const userRequire = createRequire(
4725
+ resolve8(factoryCtx.root, "package.json")
4726
+ );
4727
+ const wranglerPath = userRequire.resolve("wrangler");
4728
+ const { getPlatformProxy } = await import(pathToFileURL(wranglerPath).href);
4729
+ const proxy = await getPlatformProxy();
4730
+ return {
4731
+ env: proxy.env,
4732
+ dispose: proxy.dispose
4733
+ };
4734
+ } catch (err) {
4735
+ throw new Error(
4736
+ `[rsc-router] buildEnv: "auto" requires wrangler to be installed.
4737
+ Install it with: pnpm add -D wrangler
4738
+ ${err.message}`
4739
+ );
4740
+ }
4741
+ }
4742
+ if (typeof option === "function") {
4743
+ return await option(factoryCtx);
4744
+ }
4745
+ return { env: option };
4746
+ }
4747
+ async function acquireBuildEnv(s, command, mode) {
4748
+ const option = s.opts?.buildEnv;
4749
+ if (!option) return false;
4750
+ const result = await resolveBuildEnv(option, {
4751
+ root: s.projectRoot,
4752
+ mode,
4753
+ command,
4754
+ preset: s.opts?.preset ?? "node"
4755
+ });
4756
+ if (!result) return false;
4757
+ s.resolvedBuildEnv = result.env;
4758
+ s.buildEnvDispose = result.dispose ?? null;
4759
+ return true;
4760
+ }
4761
+ async function releaseBuildEnv(s) {
4762
+ if (s.buildEnvDispose) {
4763
+ try {
4764
+ await s.buildEnvDispose();
4765
+ } catch (err) {
4766
+ console.warn(`[rsc-router] buildEnv dispose failed: ${err.message}`);
4767
+ }
4768
+ s.buildEnvDispose = null;
4769
+ }
4770
+ s.resolvedBuildEnv = void 0;
4771
+ }
4534
4772
  function createRouterDiscoveryPlugin(entryPath, opts) {
4535
4773
  const s = createDiscoveryState(entryPath, opts);
4774
+ let viteCommand = "build";
4775
+ let viteMode = "production";
4536
4776
  return {
4537
4777
  name: "@rangojs/router:discovery",
4538
4778
  config() {
@@ -4541,31 +4781,13 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
4541
4781
  __RANGO_DEBUG__: JSON.stringify(!!process.env.INTERNAL_RANGO_DEBUG)
4542
4782
  }
4543
4783
  };
4544
- if (opts?.enableBuildPrerender) {
4545
- config.environments = {
4546
- rsc: {
4547
- build: {
4548
- rollupOptions: {
4549
- output: {
4550
- manualChunks(id) {
4551
- if (s.resolvedPrerenderModules?.has(id)) {
4552
- return "__prerender-handlers";
4553
- }
4554
- if (s.resolvedStaticModules?.has(id)) {
4555
- return "__static-handlers";
4556
- }
4557
- }
4558
- }
4559
- }
4560
- }
4561
- }
4562
- };
4563
- }
4564
4784
  return config;
4565
4785
  },
4566
4786
  configResolved(config) {
4567
4787
  s.projectRoot = config.root;
4568
4788
  s.isBuildMode = config.command === "build";
4789
+ viteCommand = config.command;
4790
+ viteMode = config.mode;
4569
4791
  s.userResolveAlias = config.resolve.alias;
4570
4792
  if (!s.resolvedEntryPath && opts?.routerPathRef?.path) {
4571
4793
  s.resolvedEntryPath = opts.routerPathRef.path;
@@ -4610,6 +4832,8 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
4610
4832
  });
4611
4833
  prerenderTempServer = null;
4612
4834
  }
4835
+ releaseBuildEnv(s).catch(() => {
4836
+ });
4613
4837
  });
4614
4838
  async function getOrCreateTempServer() {
4615
4839
  if (prerenderNodeRegistry) {
@@ -4640,6 +4864,7 @@ function createRouterDiscoveryPlugin(entryPath, opts) {
4640
4864
  if (!rscEnv?.runner) {
4641
4865
  s.devServerOrigin = getDevServerOrigin();
4642
4866
  try {
4867
+ await acquireBuildEnv(s, viteCommand, viteMode);
4643
4868
  const tempRscEnv = await getOrCreateTempServer();
4644
4869
  if (tempRscEnv) {
4645
4870
  await discoverRouters(s, tempRscEnv);
@@ -4655,6 +4880,7 @@ ${err.stack}`
4655
4880
  return;
4656
4881
  }
4657
4882
  try {
4883
+ await acquireBuildEnv(s, viteCommand, viteMode);
4658
4884
  const serverMod = await rscEnv.runner.import(
4659
4885
  "@rangojs/router/server"
4660
4886
  );
@@ -4719,7 +4945,26 @@ ${err.stack}`
4719
4945
  res.end("Missing pathname");
4720
4946
  return;
4721
4947
  }
4722
- let registry = mainRegistry;
4948
+ const rscEnv = server.environments?.rsc;
4949
+ let registry = null;
4950
+ if (rscEnv?.runner && s.resolvedEntryPath) {
4951
+ try {
4952
+ await rscEnv.runner.import(s.resolvedEntryPath);
4953
+ const serverMod = await rscEnv.runner.import(
4954
+ "@rangojs/router/server"
4955
+ );
4956
+ registry = serverMod.RouterRegistry ?? null;
4957
+ } catch (err) {
4958
+ console.warn(
4959
+ `[rsc-router] Dev prerender module refresh failed: ${err.message}`
4960
+ );
4961
+ res.statusCode = 500;
4962
+ res.end(`Prerender handler error: ${err.message}`);
4963
+ return;
4964
+ }
4965
+ } else {
4966
+ registry = mainRegistry;
4967
+ }
4723
4968
  if (!registry) {
4724
4969
  if (!prerenderNodeRegistry) {
4725
4970
  await getOrCreateTempServer();
@@ -4741,7 +4986,10 @@ ${err.stack}`
4741
4986
  pathname,
4742
4987
  {},
4743
4988
  void 0,
4744
- wantPassthrough
4989
+ wantPassthrough,
4990
+ s.resolvedBuildEnv,
4991
+ true
4992
+ // devMode: check getParams for passthrough routes
4745
4993
  );
4746
4994
  if (!result) continue;
4747
4995
  if (result.passthrough) continue;
@@ -4877,6 +5125,7 @@ ${err.stack}`
4877
5125
  resetStagedBuildAssets(s.projectRoot);
4878
5126
  s.prerenderManifestEntries = null;
4879
5127
  s.staticManifestEntries = null;
5128
+ await acquireBuildEnv(s, viteCommand, viteMode);
4880
5129
  let tempServer = null;
4881
5130
  globalThis.__rscRouterDiscoveryActive = true;
4882
5131
  try {
@@ -4916,6 +5165,7 @@ ${details}`
4916
5165
  if (tempServer) {
4917
5166
  await tempServer.close();
4918
5167
  }
5168
+ await releaseBuildEnv(s);
4919
5169
  }
4920
5170
  },
4921
5171
  // Virtual module: provides the pre-generated route manifest as a JS module
@@ -4958,20 +5208,30 @@ ${details}`
4958
5208
  }
4959
5209
  if (!s.resolvedPrerenderModules?.size && !s.resolvedStaticModules?.size)
4960
5210
  return;
5211
+ s.handlerChunkInfoMap.clear();
5212
+ s.staticHandlerChunkInfoMap.clear();
4961
5213
  for (const [fileName, chunk] of Object.entries(bundle)) {
4962
5214
  if (chunk.type !== "chunk") continue;
4963
- if (fileName.includes("__prerender-handlers") && s.resolvedPrerenderModules?.size) {
5215
+ if (s.resolvedPrerenderModules?.size) {
4964
5216
  const handlers = extractHandlerExportsFromChunk(
4965
5217
  chunk.code,
4966
5218
  s.resolvedPrerenderModules,
4967
5219
  "Prerender",
4968
- true
5220
+ false
4969
5221
  );
4970
5222
  if (handlers.length > 0) {
4971
- s.handlerChunkInfo = { fileName, exports: handlers };
5223
+ const existing = s.handlerChunkInfoMap.get(fileName);
5224
+ if (existing) {
5225
+ existing.exports.push(...handlers);
5226
+ } else {
5227
+ s.handlerChunkInfoMap.set(fileName, {
5228
+ fileName,
5229
+ exports: handlers
5230
+ });
5231
+ }
4972
5232
  }
4973
5233
  }
4974
- if (fileName.includes("__static-handlers") && s.resolvedStaticModules?.size) {
5234
+ if (s.resolvedStaticModules?.size) {
4975
5235
  const handlers = extractHandlerExportsFromChunk(
4976
5236
  chunk.code,
4977
5237
  s.resolvedStaticModules,
@@ -4979,7 +5239,15 @@ ${details}`
4979
5239
  false
4980
5240
  );
4981
5241
  if (handlers.length > 0) {
4982
- s.staticHandlerChunkInfo = { fileName, exports: handlers };
5242
+ const existing = s.staticHandlerChunkInfoMap.get(fileName);
5243
+ if (existing) {
5244
+ existing.exports.push(...handlers);
5245
+ } else {
5246
+ s.staticHandlerChunkInfoMap.set(fileName, {
5247
+ fileName,
5248
+ exports: handlers
5249
+ });
5250
+ }
4983
5251
  }
4984
5252
  }
4985
5253
  }
@@ -5271,7 +5539,8 @@ ${list}`);
5271
5539
  createRouterDiscoveryPlugin(discoveryEntryPath, {
5272
5540
  routerPathRef: discoveryRouterRef,
5273
5541
  enableBuildPrerender: prerenderEnabled,
5274
- staticRouteTypesGeneration: resolvedOptions.staticRouteTypesGeneration
5542
+ buildEnv: options?.buildEnv,
5543
+ preset
5275
5544
  })
5276
5545
  );
5277
5546
  return plugins;