@rangojs/router 0.0.0-experimental.0b82333f → 0.0.0-experimental.0e02cd4e

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 (943) hide show
  1. package/README.md +76 -18
  2. package/dist/bin/rango.js +138 -50
  3. package/dist/vite/index.js +839 -429
  4. package/package.json +2 -2
  5. package/skills/cache-guide/SKILL.md +32 -0
  6. package/skills/caching/SKILL.md +45 -4
  7. package/skills/links/SKILL.md +3 -1
  8. package/skills/loader/SKILL.md +53 -43
  9. package/skills/middleware/SKILL.md +2 -0
  10. package/skills/parallel/SKILL.md +126 -0
  11. package/skills/prerender/SKILL.md +110 -68
  12. package/skills/route/SKILL.md +31 -0
  13. package/skills/router-setup/SKILL.md +87 -2
  14. package/skills/typesafety/SKILL.md +10 -0
  15. package/src/__internal.ts +1 -1
  16. package/src/browser/app-version.ts +14 -0
  17. package/src/browser/event-controller.ts +5 -0
  18. package/src/browser/navigation-bridge.ts +17 -6
  19. package/src/browser/navigation-client.ts +132 -61
  20. package/src/browser/navigation-store.ts +43 -8
  21. package/src/browser/navigation-transaction.ts +11 -9
  22. package/src/browser/partial-update.ts +76 -13
  23. package/src/browser/prefetch/cache.ts +78 -11
  24. package/src/browser/prefetch/fetch.ts +76 -27
  25. package/src/browser/prefetch/queue.ts +92 -20
  26. package/src/browser/prefetch/resource-ready.ts +77 -0
  27. package/src/browser/react/Link.tsx +67 -9
  28. package/src/browser/react/NavigationProvider.tsx +40 -4
  29. package/src/browser/react/context.ts +7 -2
  30. package/src/browser/react/use-handle.ts +9 -58
  31. package/src/browser/react/use-router.ts +21 -8
  32. package/src/browser/rsc-router.tsx +134 -59
  33. package/src/browser/scroll-restoration.ts +30 -15
  34. package/src/browser/segment-reconciler.ts +6 -1
  35. package/src/browser/server-action-bridge.ts +8 -6
  36. package/src/browser/types.ts +36 -5
  37. package/src/build/generate-manifest.ts +6 -6
  38. package/src/build/generate-route-types.ts +3 -0
  39. package/src/build/route-types/include-resolution.ts +8 -1
  40. package/src/build/route-types/router-processing.ts +223 -74
  41. package/src/build/route-types/scan-filter.ts +8 -1
  42. package/src/cache/cache-runtime.ts +15 -11
  43. package/src/cache/cache-scope.ts +48 -7
  44. package/src/cache/cf/cf-cache-store.ts +453 -11
  45. package/src/cache/cf/index.ts +5 -1
  46. package/src/cache/document-cache.ts +17 -7
  47. package/src/cache/index.ts +1 -0
  48. package/src/cache/taint.ts +55 -0
  49. package/src/client.tsx +2 -56
  50. package/src/context-var.ts +72 -2
  51. package/src/debug.ts +2 -2
  52. package/src/handle.ts +40 -0
  53. package/src/index.rsc.ts +3 -1
  54. package/src/index.ts +12 -0
  55. package/src/prerender/store.ts +5 -4
  56. package/src/prerender.ts +138 -77
  57. package/src/reverse.ts +22 -1
  58. package/src/route-definition/dsl-helpers.ts +73 -25
  59. package/src/route-definition/helpers-types.ts +10 -6
  60. package/src/route-definition/index.ts +3 -0
  61. package/src/route-definition/redirect.ts +11 -3
  62. package/src/route-definition/resolve-handler-use.ts +149 -0
  63. package/src/route-map-builder.ts +7 -1
  64. package/src/route-types.ts +11 -0
  65. package/src/router/content-negotiation.ts +100 -1
  66. package/src/router/find-match.ts +4 -2
  67. package/src/router/handler-context.ts +79 -23
  68. package/src/router/intercept-resolution.ts +11 -4
  69. package/src/router/lazy-includes.ts +4 -1
  70. package/src/router/loader-resolution.ts +156 -21
  71. package/src/router/logging.ts +5 -2
  72. package/src/router/manifest.ts +9 -3
  73. package/src/router/match-api.ts +124 -189
  74. package/src/router/match-middleware/background-revalidation.ts +30 -2
  75. package/src/router/match-middleware/cache-lookup.ts +92 -16
  76. package/src/router/match-middleware/cache-store.ts +53 -10
  77. package/src/router/match-middleware/intercept-resolution.ts +9 -7
  78. package/src/router/match-middleware/segment-resolution.ts +61 -5
  79. package/src/router/match-result.ts +104 -10
  80. package/src/router/metrics.ts +6 -1
  81. package/src/router/middleware-types.ts +6 -8
  82. package/src/router/middleware.ts +4 -6
  83. package/src/router/navigation-snapshot.ts +182 -0
  84. package/src/router/prerender-match.ts +110 -10
  85. package/src/router/preview-match.ts +30 -102
  86. package/src/router/request-classification.ts +310 -0
  87. package/src/router/route-snapshot.ts +245 -0
  88. package/src/router/router-context.ts +6 -1
  89. package/src/router/router-interfaces.ts +36 -4
  90. package/src/router/router-options.ts +37 -11
  91. package/src/router/segment-resolution/fresh.ts +198 -20
  92. package/src/router/segment-resolution/helpers.ts +29 -24
  93. package/src/router/segment-resolution/loader-cache.ts +1 -0
  94. package/src/router/segment-resolution/revalidation.ts +437 -297
  95. package/src/router/segment-wrappers.ts +2 -0
  96. package/src/router/types.ts +1 -0
  97. package/src/router.ts +59 -6
  98. package/src/rsc/handler.ts +472 -372
  99. package/src/rsc/loader-fetch.ts +23 -3
  100. package/src/rsc/manifest-init.ts +5 -1
  101. package/src/rsc/progressive-enhancement.ts +14 -2
  102. package/src/rsc/rsc-rendering.ts +10 -1
  103. package/src/rsc/server-action.ts +8 -0
  104. package/src/rsc/ssr-setup.ts +2 -2
  105. package/src/rsc/types.ts +9 -1
  106. package/src/segment-system.tsx +140 -4
  107. package/src/server/context.ts +140 -14
  108. package/src/server/handle-store.ts +19 -0
  109. package/src/server/loader-registry.ts +9 -8
  110. package/src/server/request-context.ts +185 -19
  111. package/src/ssr/index.tsx +4 -0
  112. package/src/static-handler.ts +18 -6
  113. package/src/types/cache-types.ts +4 -4
  114. package/src/types/handler-context.ts +137 -33
  115. package/src/types/loader-types.ts +36 -9
  116. package/src/types/route-entry.ts +8 -1
  117. package/src/types/segments.ts +3 -0
  118. package/src/urls/path-helper-types.ts +9 -2
  119. package/src/urls/path-helper.ts +48 -13
  120. package/src/urls/pattern-types.ts +12 -0
  121. package/src/urls/response-types.ts +16 -6
  122. package/src/use-loader.tsx +77 -5
  123. package/src/vite/discovery/bundle-postprocess.ts +30 -33
  124. package/src/vite/discovery/discover-routers.ts +5 -1
  125. package/src/vite/discovery/prerender-collection.ts +128 -74
  126. package/src/vite/discovery/state.ts +13 -6
  127. package/src/vite/index.ts +4 -0
  128. package/src/vite/plugin-types.ts +51 -79
  129. package/src/vite/plugins/expose-action-id.ts +1 -3
  130. package/src/vite/plugins/expose-id-utils.ts +12 -0
  131. package/src/vite/plugins/expose-ids/handler-transform.ts +30 -0
  132. package/src/vite/plugins/expose-internal-ids.ts +257 -40
  133. package/src/vite/plugins/performance-tracks.ts +88 -0
  134. package/src/vite/plugins/refresh-cmd.ts +88 -26
  135. package/src/vite/plugins/version-plugin.ts +13 -1
  136. package/src/vite/rango.ts +163 -211
  137. package/src/vite/router-discovery.ts +178 -45
  138. package/src/vite/utils/banner.ts +3 -3
  139. package/src/vite/utils/prerender-utils.ts +18 -0
  140. package/src/vite/utils/shared-utils.ts +3 -2
  141. package/dist/__internal.d.ts +0 -83
  142. package/dist/__internal.d.ts.map +0 -1
  143. package/dist/__internal.js +0 -19
  144. package/dist/__internal.js.map +0 -1
  145. package/dist/__mocks__/version.d.ts +0 -7
  146. package/dist/__mocks__/version.d.ts.map +0 -1
  147. package/dist/__mocks__/version.js +0 -7
  148. package/dist/__mocks__/version.js.map +0 -1
  149. package/dist/__tests__/client-href.test.d.ts +0 -2
  150. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  151. package/dist/__tests__/client-href.test.js +0 -74
  152. package/dist/__tests__/client-href.test.js.map +0 -1
  153. package/dist/__tests__/component-utils.test.d.ts +0 -2
  154. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  155. package/dist/__tests__/component-utils.test.js +0 -51
  156. package/dist/__tests__/component-utils.test.js.map +0 -1
  157. package/dist/__tests__/event-controller.test.d.ts +0 -2
  158. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  159. package/dist/__tests__/event-controller.test.js +0 -538
  160. package/dist/__tests__/event-controller.test.js.map +0 -1
  161. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  162. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  163. package/dist/__tests__/helpers/route-tree.js +0 -374
  164. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  165. package/dist/__tests__/match-result.test.d.ts +0 -2
  166. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  167. package/dist/__tests__/match-result.test.js +0 -154
  168. package/dist/__tests__/match-result.test.js.map +0 -1
  169. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  170. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  171. package/dist/__tests__/navigation-store.test.js +0 -440
  172. package/dist/__tests__/navigation-store.test.js.map +0 -1
  173. package/dist/__tests__/partial-update.test.d.ts +0 -2
  174. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  175. package/dist/__tests__/partial-update.test.js +0 -1009
  176. package/dist/__tests__/partial-update.test.js.map +0 -1
  177. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  178. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  179. package/dist/__tests__/reverse-types.test.js +0 -656
  180. package/dist/__tests__/reverse-types.test.js.map +0 -1
  181. package/dist/__tests__/route-definition.test.d.ts +0 -2
  182. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  183. package/dist/__tests__/route-definition.test.js +0 -55
  184. package/dist/__tests__/route-definition.test.js.map +0 -1
  185. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  186. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  187. package/dist/__tests__/router-helpers.test.js +0 -377
  188. package/dist/__tests__/router-helpers.test.js.map +0 -1
  189. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  190. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  191. package/dist/__tests__/router-integration-2.test.js +0 -426
  192. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  193. package/dist/__tests__/router-integration.test.d.ts +0 -2
  194. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  195. package/dist/__tests__/router-integration.test.js +0 -1051
  196. package/dist/__tests__/router-integration.test.js.map +0 -1
  197. package/dist/__tests__/search-params.test.d.ts +0 -5
  198. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  199. package/dist/__tests__/search-params.test.js +0 -306
  200. package/dist/__tests__/search-params.test.js.map +0 -1
  201. package/dist/__tests__/segment-system.test.d.ts +0 -2
  202. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  203. package/dist/__tests__/segment-system.test.js +0 -627
  204. package/dist/__tests__/segment-system.test.js.map +0 -1
  205. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  206. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  207. package/dist/__tests__/static-handler-types.test.js +0 -63
  208. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  209. package/dist/__tests__/urls.test.d.ts +0 -2
  210. package/dist/__tests__/urls.test.d.ts.map +0 -1
  211. package/dist/__tests__/urls.test.js +0 -421
  212. package/dist/__tests__/urls.test.js.map +0 -1
  213. package/dist/__tests__/use-mount.test.d.ts +0 -2
  214. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  215. package/dist/__tests__/use-mount.test.js +0 -35
  216. package/dist/__tests__/use-mount.test.js.map +0 -1
  217. package/dist/bin/rango.d.ts +0 -2
  218. package/dist/bin/rango.d.ts.map +0 -1
  219. package/dist/bin/rango.js.map +0 -1
  220. package/dist/browser/event-controller.d.ts +0 -191
  221. package/dist/browser/event-controller.d.ts.map +0 -1
  222. package/dist/browser/event-controller.js +0 -559
  223. package/dist/browser/event-controller.js.map +0 -1
  224. package/dist/browser/index.d.ts +0 -2
  225. package/dist/browser/index.d.ts.map +0 -1
  226. package/dist/browser/index.js +0 -14
  227. package/dist/browser/index.js.map +0 -1
  228. package/dist/browser/link-interceptor.d.ts +0 -38
  229. package/dist/browser/link-interceptor.d.ts.map +0 -1
  230. package/dist/browser/link-interceptor.js +0 -99
  231. package/dist/browser/link-interceptor.js.map +0 -1
  232. package/dist/browser/logging.d.ts +0 -10
  233. package/dist/browser/logging.d.ts.map +0 -1
  234. package/dist/browser/logging.js +0 -29
  235. package/dist/browser/logging.js.map +0 -1
  236. package/dist/browser/lru-cache.d.ts +0 -17
  237. package/dist/browser/lru-cache.d.ts.map +0 -1
  238. package/dist/browser/lru-cache.js +0 -50
  239. package/dist/browser/lru-cache.js.map +0 -1
  240. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  241. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  242. package/dist/browser/merge-segment-loaders.js +0 -102
  243. package/dist/browser/merge-segment-loaders.js.map +0 -1
  244. package/dist/browser/navigation-bridge.d.ts +0 -102
  245. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  246. package/dist/browser/navigation-bridge.js +0 -708
  247. package/dist/browser/navigation-bridge.js.map +0 -1
  248. package/dist/browser/navigation-client.d.ts +0 -25
  249. package/dist/browser/navigation-client.d.ts.map +0 -1
  250. package/dist/browser/navigation-client.js +0 -157
  251. package/dist/browser/navigation-client.js.map +0 -1
  252. package/dist/browser/navigation-store.d.ts +0 -101
  253. package/dist/browser/navigation-store.d.ts.map +0 -1
  254. package/dist/browser/navigation-store.js +0 -625
  255. package/dist/browser/navigation-store.js.map +0 -1
  256. package/dist/browser/partial-update.d.ts +0 -75
  257. package/dist/browser/partial-update.d.ts.map +0 -1
  258. package/dist/browser/partial-update.js +0 -426
  259. package/dist/browser/partial-update.js.map +0 -1
  260. package/dist/browser/react/Link.d.ts +0 -86
  261. package/dist/browser/react/Link.d.ts.map +0 -1
  262. package/dist/browser/react/Link.js +0 -128
  263. package/dist/browser/react/Link.js.map +0 -1
  264. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  265. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  266. package/dist/browser/react/NavigationProvider.js +0 -216
  267. package/dist/browser/react/NavigationProvider.js.map +0 -1
  268. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  269. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  270. package/dist/browser/react/ScrollRestoration.js +0 -57
  271. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  272. package/dist/browser/react/context.d.ts +0 -46
  273. package/dist/browser/react/context.d.ts.map +0 -1
  274. package/dist/browser/react/context.js +0 -10
  275. package/dist/browser/react/context.js.map +0 -1
  276. package/dist/browser/react/index.d.ts +0 -11
  277. package/dist/browser/react/index.d.ts.map +0 -1
  278. package/dist/browser/react/index.js +0 -22
  279. package/dist/browser/react/index.js.map +0 -1
  280. package/dist/browser/react/location-state-shared.d.ts +0 -63
  281. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  282. package/dist/browser/react/location-state-shared.js +0 -81
  283. package/dist/browser/react/location-state-shared.js.map +0 -1
  284. package/dist/browser/react/location-state.d.ts +0 -23
  285. package/dist/browser/react/location-state.d.ts.map +0 -1
  286. package/dist/browser/react/location-state.js +0 -29
  287. package/dist/browser/react/location-state.js.map +0 -1
  288. package/dist/browser/react/mount-context.d.ts +0 -24
  289. package/dist/browser/react/mount-context.d.ts.map +0 -1
  290. package/dist/browser/react/mount-context.js +0 -24
  291. package/dist/browser/react/mount-context.js.map +0 -1
  292. package/dist/browser/react/use-action.d.ts +0 -64
  293. package/dist/browser/react/use-action.d.ts.map +0 -1
  294. package/dist/browser/react/use-action.js +0 -134
  295. package/dist/browser/react/use-action.js.map +0 -1
  296. package/dist/browser/react/use-client-cache.d.ts +0 -41
  297. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  298. package/dist/browser/react/use-client-cache.js +0 -39
  299. package/dist/browser/react/use-client-cache.js.map +0 -1
  300. package/dist/browser/react/use-handle.d.ts +0 -31
  301. package/dist/browser/react/use-handle.d.ts.map +0 -1
  302. package/dist/browser/react/use-handle.js +0 -144
  303. package/dist/browser/react/use-handle.js.map +0 -1
  304. package/dist/browser/react/use-href.d.ts +0 -33
  305. package/dist/browser/react/use-href.d.ts.map +0 -1
  306. package/dist/browser/react/use-href.js +0 -39
  307. package/dist/browser/react/use-href.js.map +0 -1
  308. package/dist/browser/react/use-link-status.d.ts +0 -37
  309. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  310. package/dist/browser/react/use-link-status.js +0 -99
  311. package/dist/browser/react/use-link-status.js.map +0 -1
  312. package/dist/browser/react/use-mount.d.ts +0 -25
  313. package/dist/browser/react/use-mount.d.ts.map +0 -1
  314. package/dist/browser/react/use-mount.js +0 -30
  315. package/dist/browser/react/use-mount.js.map +0 -1
  316. package/dist/browser/react/use-navigation.d.ts +0 -27
  317. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  318. package/dist/browser/react/use-navigation.js +0 -87
  319. package/dist/browser/react/use-navigation.js.map +0 -1
  320. package/dist/browser/react/use-segments.d.ts +0 -38
  321. package/dist/browser/react/use-segments.d.ts.map +0 -1
  322. package/dist/browser/react/use-segments.js +0 -130
  323. package/dist/browser/react/use-segments.js.map +0 -1
  324. package/dist/browser/request-controller.d.ts +0 -26
  325. package/dist/browser/request-controller.d.ts.map +0 -1
  326. package/dist/browser/request-controller.js +0 -147
  327. package/dist/browser/request-controller.js.map +0 -1
  328. package/dist/browser/rsc-router.d.ts +0 -129
  329. package/dist/browser/rsc-router.d.ts.map +0 -1
  330. package/dist/browser/rsc-router.js +0 -195
  331. package/dist/browser/rsc-router.js.map +0 -1
  332. package/dist/browser/scroll-restoration.d.ts +0 -93
  333. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  334. package/dist/browser/scroll-restoration.js +0 -321
  335. package/dist/browser/scroll-restoration.js.map +0 -1
  336. package/dist/browser/segment-structure-assert.d.ts +0 -17
  337. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  338. package/dist/browser/segment-structure-assert.js +0 -59
  339. package/dist/browser/segment-structure-assert.js.map +0 -1
  340. package/dist/browser/server-action-bridge.d.ts +0 -26
  341. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  342. package/dist/browser/server-action-bridge.js +0 -668
  343. package/dist/browser/server-action-bridge.js.map +0 -1
  344. package/dist/browser/shallow.d.ts +0 -12
  345. package/dist/browser/shallow.d.ts.map +0 -1
  346. package/dist/browser/shallow.js +0 -34
  347. package/dist/browser/shallow.js.map +0 -1
  348. package/dist/browser/types.d.ts +0 -369
  349. package/dist/browser/types.d.ts.map +0 -1
  350. package/dist/browser/types.js +0 -2
  351. package/dist/browser/types.js.map +0 -1
  352. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  353. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  354. package/dist/build/__tests__/generate-cli.test.js +0 -237
  355. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  356. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  357. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  358. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  359. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  360. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  361. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  362. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  363. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  364. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  365. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  366. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  367. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  368. package/dist/build/generate-manifest.d.ts +0 -81
  369. package/dist/build/generate-manifest.d.ts.map +0 -1
  370. package/dist/build/generate-manifest.js +0 -276
  371. package/dist/build/generate-manifest.js.map +0 -1
  372. package/dist/build/generate-route-types.d.ts +0 -115
  373. package/dist/build/generate-route-types.d.ts.map +0 -1
  374. package/dist/build/generate-route-types.js +0 -740
  375. package/dist/build/generate-route-types.js.map +0 -1
  376. package/dist/build/index.d.ts +0 -21
  377. package/dist/build/index.d.ts.map +0 -1
  378. package/dist/build/index.js +0 -21
  379. package/dist/build/index.js.map +0 -1
  380. package/dist/build/route-trie.d.ts +0 -71
  381. package/dist/build/route-trie.d.ts.map +0 -1
  382. package/dist/build/route-trie.js +0 -175
  383. package/dist/build/route-trie.js.map +0 -1
  384. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  385. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  386. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  387. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  388. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  389. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  390. package/dist/cache/__tests__/document-cache.test.js +0 -345
  391. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  392. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  393. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  394. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  395. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  396. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  397. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  398. package/dist/cache/__tests__/memory-store.test.js +0 -367
  399. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  400. package/dist/cache/cache-scope.d.ts +0 -102
  401. package/dist/cache/cache-scope.d.ts.map +0 -1
  402. package/dist/cache/cache-scope.js +0 -440
  403. package/dist/cache/cache-scope.js.map +0 -1
  404. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  405. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  406. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  407. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  408. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  409. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  410. package/dist/cache/cf/cf-cache-store.js +0 -242
  411. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  412. package/dist/cache/cf/index.d.ts +0 -14
  413. package/dist/cache/cf/index.d.ts.map +0 -1
  414. package/dist/cache/cf/index.js +0 -17
  415. package/dist/cache/cf/index.js.map +0 -1
  416. package/dist/cache/document-cache.d.ts +0 -64
  417. package/dist/cache/document-cache.d.ts.map +0 -1
  418. package/dist/cache/document-cache.js +0 -228
  419. package/dist/cache/document-cache.js.map +0 -1
  420. package/dist/cache/index.d.ts +0 -19
  421. package/dist/cache/index.d.ts.map +0 -1
  422. package/dist/cache/index.js +0 -21
  423. package/dist/cache/index.js.map +0 -1
  424. package/dist/cache/memory-segment-store.d.ts +0 -110
  425. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  426. package/dist/cache/memory-segment-store.js +0 -117
  427. package/dist/cache/memory-segment-store.js.map +0 -1
  428. package/dist/cache/memory-store.d.ts +0 -41
  429. package/dist/cache/memory-store.d.ts.map +0 -1
  430. package/dist/cache/memory-store.js +0 -191
  431. package/dist/cache/memory-store.js.map +0 -1
  432. package/dist/cache/types.d.ts +0 -317
  433. package/dist/cache/types.d.ts.map +0 -1
  434. package/dist/cache/types.js +0 -12
  435. package/dist/cache/types.js.map +0 -1
  436. package/dist/client.d.ts +0 -248
  437. package/dist/client.d.ts.map +0 -1
  438. package/dist/client.js +0 -367
  439. package/dist/client.js.map +0 -1
  440. package/dist/client.rsc.d.ts +0 -26
  441. package/dist/client.rsc.d.ts.map +0 -1
  442. package/dist/client.rsc.js +0 -46
  443. package/dist/client.rsc.js.map +0 -1
  444. package/dist/component-utils.d.ts +0 -36
  445. package/dist/component-utils.d.ts.map +0 -1
  446. package/dist/component-utils.js +0 -61
  447. package/dist/component-utils.js.map +0 -1
  448. package/dist/components/DefaultDocument.d.ts +0 -13
  449. package/dist/components/DefaultDocument.d.ts.map +0 -1
  450. package/dist/components/DefaultDocument.js +0 -15
  451. package/dist/components/DefaultDocument.js.map +0 -1
  452. package/dist/debug.d.ts +0 -58
  453. package/dist/debug.d.ts.map +0 -1
  454. package/dist/debug.js +0 -157
  455. package/dist/debug.js.map +0 -1
  456. package/dist/default-error-boundary.d.ts +0 -11
  457. package/dist/default-error-boundary.d.ts.map +0 -1
  458. package/dist/default-error-boundary.js +0 -45
  459. package/dist/default-error-boundary.js.map +0 -1
  460. package/dist/deps/browser.d.ts +0 -2
  461. package/dist/deps/browser.d.ts.map +0 -1
  462. package/dist/deps/browser.js +0 -3
  463. package/dist/deps/browser.js.map +0 -1
  464. package/dist/deps/html-stream-client.d.ts +0 -2
  465. package/dist/deps/html-stream-client.d.ts.map +0 -1
  466. package/dist/deps/html-stream-client.js +0 -3
  467. package/dist/deps/html-stream-client.js.map +0 -1
  468. package/dist/deps/html-stream-server.d.ts +0 -2
  469. package/dist/deps/html-stream-server.d.ts.map +0 -1
  470. package/dist/deps/html-stream-server.js +0 -3
  471. package/dist/deps/html-stream-server.js.map +0 -1
  472. package/dist/deps/rsc.d.ts +0 -2
  473. package/dist/deps/rsc.d.ts.map +0 -1
  474. package/dist/deps/rsc.js +0 -4
  475. package/dist/deps/rsc.js.map +0 -1
  476. package/dist/deps/ssr.d.ts +0 -2
  477. package/dist/deps/ssr.d.ts.map +0 -1
  478. package/dist/deps/ssr.js +0 -3
  479. package/dist/deps/ssr.js.map +0 -1
  480. package/dist/errors.d.ts +0 -174
  481. package/dist/errors.d.ts.map +0 -1
  482. package/dist/errors.js +0 -241
  483. package/dist/errors.js.map +0 -1
  484. package/dist/handle.d.ts +0 -78
  485. package/dist/handle.d.ts.map +0 -1
  486. package/dist/handle.js +0 -82
  487. package/dist/handle.js.map +0 -1
  488. package/dist/handles/MetaTags.d.ts +0 -14
  489. package/dist/handles/MetaTags.d.ts.map +0 -1
  490. package/dist/handles/MetaTags.js +0 -136
  491. package/dist/handles/MetaTags.js.map +0 -1
  492. package/dist/handles/index.d.ts +0 -6
  493. package/dist/handles/index.d.ts.map +0 -1
  494. package/dist/handles/index.js +0 -6
  495. package/dist/handles/index.js.map +0 -1
  496. package/dist/handles/meta.d.ts +0 -39
  497. package/dist/handles/meta.d.ts.map +0 -1
  498. package/dist/handles/meta.js +0 -202
  499. package/dist/handles/meta.js.map +0 -1
  500. package/dist/host/__tests__/errors.test.d.ts +0 -2
  501. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  502. package/dist/host/__tests__/errors.test.js +0 -76
  503. package/dist/host/__tests__/errors.test.js.map +0 -1
  504. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  505. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  506. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  507. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  508. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  509. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  510. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  511. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  512. package/dist/host/__tests__/router.test.d.ts +0 -2
  513. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  514. package/dist/host/__tests__/router.test.js +0 -241
  515. package/dist/host/__tests__/router.test.js.map +0 -1
  516. package/dist/host/__tests__/testing.test.d.ts +0 -2
  517. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  518. package/dist/host/__tests__/testing.test.js +0 -64
  519. package/dist/host/__tests__/testing.test.js.map +0 -1
  520. package/dist/host/__tests__/utils.test.d.ts +0 -2
  521. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  522. package/dist/host/__tests__/utils.test.js +0 -29
  523. package/dist/host/__tests__/utils.test.js.map +0 -1
  524. package/dist/host/cookie-handler.d.ts +0 -34
  525. package/dist/host/cookie-handler.d.ts.map +0 -1
  526. package/dist/host/cookie-handler.js +0 -124
  527. package/dist/host/cookie-handler.js.map +0 -1
  528. package/dist/host/errors.d.ts +0 -56
  529. package/dist/host/errors.d.ts.map +0 -1
  530. package/dist/host/errors.js +0 -79
  531. package/dist/host/errors.js.map +0 -1
  532. package/dist/host/index.d.ts +0 -29
  533. package/dist/host/index.d.ts.map +0 -1
  534. package/dist/host/index.js +0 -32
  535. package/dist/host/index.js.map +0 -1
  536. package/dist/host/pattern-matcher.d.ts +0 -36
  537. package/dist/host/pattern-matcher.d.ts.map +0 -1
  538. package/dist/host/pattern-matcher.js +0 -172
  539. package/dist/host/pattern-matcher.js.map +0 -1
  540. package/dist/host/router.d.ts +0 -26
  541. package/dist/host/router.d.ts.map +0 -1
  542. package/dist/host/router.js +0 -218
  543. package/dist/host/router.js.map +0 -1
  544. package/dist/host/testing.d.ts +0 -36
  545. package/dist/host/testing.d.ts.map +0 -1
  546. package/dist/host/testing.js +0 -55
  547. package/dist/host/testing.js.map +0 -1
  548. package/dist/host/types.d.ts +0 -115
  549. package/dist/host/types.d.ts.map +0 -1
  550. package/dist/host/types.js +0 -7
  551. package/dist/host/types.js.map +0 -1
  552. package/dist/host/utils.d.ts +0 -21
  553. package/dist/host/utils.d.ts.map +0 -1
  554. package/dist/host/utils.js +0 -23
  555. package/dist/host/utils.js.map +0 -1
  556. package/dist/href-client.d.ts +0 -131
  557. package/dist/href-client.d.ts.map +0 -1
  558. package/dist/href-client.js +0 -64
  559. package/dist/href-client.js.map +0 -1
  560. package/dist/href-context.d.ts +0 -29
  561. package/dist/href-context.d.ts.map +0 -1
  562. package/dist/href-context.js +0 -21
  563. package/dist/href-context.js.map +0 -1
  564. package/dist/index.d.ts +0 -73
  565. package/dist/index.d.ts.map +0 -1
  566. package/dist/index.js +0 -91
  567. package/dist/index.js.map +0 -1
  568. package/dist/index.rsc.d.ts +0 -32
  569. package/dist/index.rsc.d.ts.map +0 -1
  570. package/dist/index.rsc.js +0 -40
  571. package/dist/index.rsc.js.map +0 -1
  572. package/dist/internal-debug.d.ts +0 -2
  573. package/dist/internal-debug.d.ts.map +0 -1
  574. package/dist/internal-debug.js +0 -5
  575. package/dist/internal-debug.js.map +0 -1
  576. package/dist/loader.d.ts +0 -14
  577. package/dist/loader.d.ts.map +0 -1
  578. package/dist/loader.js +0 -20
  579. package/dist/loader.js.map +0 -1
  580. package/dist/loader.rsc.d.ts +0 -19
  581. package/dist/loader.rsc.d.ts.map +0 -1
  582. package/dist/loader.rsc.js +0 -99
  583. package/dist/loader.rsc.js.map +0 -1
  584. package/dist/network-error-thrower.d.ts +0 -17
  585. package/dist/network-error-thrower.d.ts.map +0 -1
  586. package/dist/network-error-thrower.js +0 -14
  587. package/dist/network-error-thrower.js.map +0 -1
  588. package/dist/outlet-context.d.ts +0 -13
  589. package/dist/outlet-context.d.ts.map +0 -1
  590. package/dist/outlet-context.js +0 -3
  591. package/dist/outlet-context.js.map +0 -1
  592. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  593. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  594. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  595. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  596. package/dist/prerender/param-hash.d.ts +0 -16
  597. package/dist/prerender/param-hash.d.ts.map +0 -1
  598. package/dist/prerender/param-hash.js +0 -36
  599. package/dist/prerender/param-hash.js.map +0 -1
  600. package/dist/prerender/store.d.ts +0 -38
  601. package/dist/prerender/store.d.ts.map +0 -1
  602. package/dist/prerender/store.js +0 -61
  603. package/dist/prerender/store.js.map +0 -1
  604. package/dist/prerender.d.ts +0 -66
  605. package/dist/prerender.d.ts.map +0 -1
  606. package/dist/prerender.js +0 -57
  607. package/dist/prerender.js.map +0 -1
  608. package/dist/reverse.d.ts +0 -196
  609. package/dist/reverse.d.ts.map +0 -1
  610. package/dist/reverse.js +0 -78
  611. package/dist/reverse.js.map +0 -1
  612. package/dist/root-error-boundary.d.ts +0 -33
  613. package/dist/root-error-boundary.d.ts.map +0 -1
  614. package/dist/root-error-boundary.js +0 -165
  615. package/dist/root-error-boundary.js.map +0 -1
  616. package/dist/route-content-wrapper.d.ts +0 -46
  617. package/dist/route-content-wrapper.d.ts.map +0 -1
  618. package/dist/route-content-wrapper.js +0 -77
  619. package/dist/route-content-wrapper.js.map +0 -1
  620. package/dist/route-definition.d.ts +0 -421
  621. package/dist/route-definition.d.ts.map +0 -1
  622. package/dist/route-definition.js +0 -868
  623. package/dist/route-definition.js.map +0 -1
  624. package/dist/route-map-builder.d.ts +0 -155
  625. package/dist/route-map-builder.d.ts.map +0 -1
  626. package/dist/route-map-builder.js +0 -237
  627. package/dist/route-map-builder.js.map +0 -1
  628. package/dist/route-types.d.ts +0 -165
  629. package/dist/route-types.d.ts.map +0 -1
  630. package/dist/route-types.js +0 -7
  631. package/dist/route-types.js.map +0 -1
  632. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  633. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  634. package/dist/router/__tests__/handler-context.test.js +0 -65
  635. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  636. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  637. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  638. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  639. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  640. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  641. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  642. package/dist/router/__tests__/match-context.test.js +0 -92
  643. package/dist/router/__tests__/match-context.test.js.map +0 -1
  644. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  645. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  646. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  647. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  648. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  649. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  650. package/dist/router/__tests__/match-result.test.js +0 -457
  651. package/dist/router/__tests__/match-result.test.js.map +0 -1
  652. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  653. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  654. package/dist/router/__tests__/on-error.test.js +0 -678
  655. package/dist/router/__tests__/on-error.test.js.map +0 -1
  656. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  657. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  658. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  659. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  660. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  661. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  662. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  663. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  664. package/dist/router/error-handling.d.ts +0 -77
  665. package/dist/router/error-handling.d.ts.map +0 -1
  666. package/dist/router/error-handling.js +0 -202
  667. package/dist/router/error-handling.js.map +0 -1
  668. package/dist/router/handler-context.d.ts +0 -20
  669. package/dist/router/handler-context.d.ts.map +0 -1
  670. package/dist/router/handler-context.js +0 -198
  671. package/dist/router/handler-context.js.map +0 -1
  672. package/dist/router/intercept-resolution.d.ts +0 -66
  673. package/dist/router/intercept-resolution.d.ts.map +0 -1
  674. package/dist/router/intercept-resolution.js +0 -246
  675. package/dist/router/intercept-resolution.js.map +0 -1
  676. package/dist/router/loader-resolution.d.ts +0 -64
  677. package/dist/router/loader-resolution.d.ts.map +0 -1
  678. package/dist/router/loader-resolution.js +0 -284
  679. package/dist/router/loader-resolution.js.map +0 -1
  680. package/dist/router/logging.d.ts +0 -15
  681. package/dist/router/logging.d.ts.map +0 -1
  682. package/dist/router/logging.js +0 -99
  683. package/dist/router/logging.js.map +0 -1
  684. package/dist/router/manifest.d.ts +0 -22
  685. package/dist/router/manifest.d.ts.map +0 -1
  686. package/dist/router/manifest.js +0 -181
  687. package/dist/router/manifest.js.map +0 -1
  688. package/dist/router/match-api.d.ts +0 -35
  689. package/dist/router/match-api.d.ts.map +0 -1
  690. package/dist/router/match-api.js +0 -406
  691. package/dist/router/match-api.js.map +0 -1
  692. package/dist/router/match-context.d.ts +0 -206
  693. package/dist/router/match-context.d.ts.map +0 -1
  694. package/dist/router/match-context.js +0 -17
  695. package/dist/router/match-context.js.map +0 -1
  696. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  697. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  698. package/dist/router/match-middleware/background-revalidation.js +0 -75
  699. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  700. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  701. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  702. package/dist/router/match-middleware/cache-lookup.js +0 -257
  703. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  704. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  705. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  706. package/dist/router/match-middleware/cache-store.js +0 -108
  707. package/dist/router/match-middleware/cache-store.js.map +0 -1
  708. package/dist/router/match-middleware/index.d.ts +0 -81
  709. package/dist/router/match-middleware/index.d.ts.map +0 -1
  710. package/dist/router/match-middleware/index.js +0 -80
  711. package/dist/router/match-middleware/index.js.map +0 -1
  712. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  713. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  714. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  715. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  716. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  717. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  718. package/dist/router/match-middleware/segment-resolution.js +0 -53
  719. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  720. package/dist/router/match-pipelines.d.ts +0 -147
  721. package/dist/router/match-pipelines.d.ts.map +0 -1
  722. package/dist/router/match-pipelines.js +0 -82
  723. package/dist/router/match-pipelines.js.map +0 -1
  724. package/dist/router/match-result.d.ts +0 -126
  725. package/dist/router/match-result.d.ts.map +0 -1
  726. package/dist/router/match-result.js +0 -93
  727. package/dist/router/match-result.js.map +0 -1
  728. package/dist/router/metrics.d.ts +0 -20
  729. package/dist/router/metrics.d.ts.map +0 -1
  730. package/dist/router/metrics.js +0 -47
  731. package/dist/router/metrics.js.map +0 -1
  732. package/dist/router/middleware.d.ts +0 -249
  733. package/dist/router/middleware.d.ts.map +0 -1
  734. package/dist/router/middleware.js +0 -434
  735. package/dist/router/middleware.js.map +0 -1
  736. package/dist/router/middleware.test.d.ts +0 -2
  737. package/dist/router/middleware.test.d.ts.map +0 -1
  738. package/dist/router/middleware.test.js +0 -816
  739. package/dist/router/middleware.test.js.map +0 -1
  740. package/dist/router/pattern-matching.d.ts +0 -149
  741. package/dist/router/pattern-matching.d.ts.map +0 -1
  742. package/dist/router/pattern-matching.js +0 -349
  743. package/dist/router/pattern-matching.js.map +0 -1
  744. package/dist/router/revalidation.d.ts +0 -44
  745. package/dist/router/revalidation.d.ts.map +0 -1
  746. package/dist/router/revalidation.js +0 -147
  747. package/dist/router/revalidation.js.map +0 -1
  748. package/dist/router/router-context.d.ts +0 -135
  749. package/dist/router/router-context.d.ts.map +0 -1
  750. package/dist/router/router-context.js +0 -36
  751. package/dist/router/router-context.js.map +0 -1
  752. package/dist/router/segment-resolution.d.ts +0 -127
  753. package/dist/router/segment-resolution.d.ts.map +0 -1
  754. package/dist/router/segment-resolution.js +0 -919
  755. package/dist/router/segment-resolution.js.map +0 -1
  756. package/dist/router/trie-matching.d.ts +0 -40
  757. package/dist/router/trie-matching.d.ts.map +0 -1
  758. package/dist/router/trie-matching.js +0 -127
  759. package/dist/router/trie-matching.js.map +0 -1
  760. package/dist/router/types.d.ts +0 -136
  761. package/dist/router/types.d.ts.map +0 -1
  762. package/dist/router/types.js +0 -7
  763. package/dist/router/types.js.map +0 -1
  764. package/dist/router.d.ts +0 -753
  765. package/dist/router.d.ts.map +0 -1
  766. package/dist/router.gen.d.ts +0 -6
  767. package/dist/router.gen.d.ts.map +0 -1
  768. package/dist/router.gen.js +0 -6
  769. package/dist/router.gen.js.map +0 -1
  770. package/dist/router.js +0 -1304
  771. package/dist/router.js.map +0 -1
  772. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  773. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  774. package/dist/rsc/__tests__/helpers.test.js +0 -140
  775. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  776. package/dist/rsc/handler.d.ts +0 -45
  777. package/dist/rsc/handler.d.ts.map +0 -1
  778. package/dist/rsc/handler.js +0 -1172
  779. package/dist/rsc/handler.js.map +0 -1
  780. package/dist/rsc/helpers.d.ts +0 -16
  781. package/dist/rsc/helpers.d.ts.map +0 -1
  782. package/dist/rsc/helpers.js +0 -55
  783. package/dist/rsc/helpers.js.map +0 -1
  784. package/dist/rsc/index.d.ts +0 -22
  785. package/dist/rsc/index.d.ts.map +0 -1
  786. package/dist/rsc/index.js +0 -23
  787. package/dist/rsc/index.js.map +0 -1
  788. package/dist/rsc/nonce.d.ts +0 -9
  789. package/dist/rsc/nonce.d.ts.map +0 -1
  790. package/dist/rsc/nonce.js +0 -18
  791. package/dist/rsc/nonce.js.map +0 -1
  792. package/dist/rsc/types.d.ts +0 -206
  793. package/dist/rsc/types.d.ts.map +0 -1
  794. package/dist/rsc/types.js +0 -8
  795. package/dist/rsc/types.js.map +0 -1
  796. package/dist/search-params.d.ts +0 -103
  797. package/dist/search-params.d.ts.map +0 -1
  798. package/dist/search-params.js +0 -74
  799. package/dist/search-params.js.map +0 -1
  800. package/dist/segment-system.d.ts +0 -75
  801. package/dist/segment-system.d.ts.map +0 -1
  802. package/dist/segment-system.js +0 -336
  803. package/dist/segment-system.js.map +0 -1
  804. package/dist/server/context.d.ts +0 -245
  805. package/dist/server/context.d.ts.map +0 -1
  806. package/dist/server/context.js +0 -197
  807. package/dist/server/context.js.map +0 -1
  808. package/dist/server/fetchable-loader-store.d.ts +0 -18
  809. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  810. package/dist/server/fetchable-loader-store.js +0 -18
  811. package/dist/server/fetchable-loader-store.js.map +0 -1
  812. package/dist/server/handle-store.d.ts +0 -85
  813. package/dist/server/handle-store.d.ts.map +0 -1
  814. package/dist/server/handle-store.js +0 -142
  815. package/dist/server/handle-store.js.map +0 -1
  816. package/dist/server/loader-registry.d.ts +0 -55
  817. package/dist/server/loader-registry.d.ts.map +0 -1
  818. package/dist/server/loader-registry.js +0 -132
  819. package/dist/server/loader-registry.js.map +0 -1
  820. package/dist/server/request-context.d.ts +0 -226
  821. package/dist/server/request-context.d.ts.map +0 -1
  822. package/dist/server/request-context.js +0 -290
  823. package/dist/server/request-context.js.map +0 -1
  824. package/dist/server/root-layout.d.ts +0 -4
  825. package/dist/server/root-layout.d.ts.map +0 -1
  826. package/dist/server/root-layout.js +0 -5
  827. package/dist/server/root-layout.js.map +0 -1
  828. package/dist/server.d.ts +0 -15
  829. package/dist/server.d.ts.map +0 -1
  830. package/dist/server.js +0 -20
  831. package/dist/server.js.map +0 -1
  832. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  833. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  834. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  835. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  836. package/dist/ssr/index.d.ts +0 -98
  837. package/dist/ssr/index.d.ts.map +0 -1
  838. package/dist/ssr/index.js +0 -158
  839. package/dist/ssr/index.js.map +0 -1
  840. package/dist/static-handler.d.ts +0 -50
  841. package/dist/static-handler.d.ts.map +0 -1
  842. package/dist/static-handler.gen.d.ts +0 -5
  843. package/dist/static-handler.gen.d.ts.map +0 -1
  844. package/dist/static-handler.gen.js +0 -5
  845. package/dist/static-handler.gen.js.map +0 -1
  846. package/dist/static-handler.js +0 -29
  847. package/dist/static-handler.js.map +0 -1
  848. package/dist/theme/ThemeProvider.d.ts +0 -20
  849. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  850. package/dist/theme/ThemeProvider.js +0 -240
  851. package/dist/theme/ThemeProvider.js.map +0 -1
  852. package/dist/theme/ThemeScript.d.ts +0 -48
  853. package/dist/theme/ThemeScript.d.ts.map +0 -1
  854. package/dist/theme/ThemeScript.js +0 -13
  855. package/dist/theme/ThemeScript.js.map +0 -1
  856. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  857. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  858. package/dist/theme/__tests__/theme.test.js +0 -103
  859. package/dist/theme/__tests__/theme.test.js.map +0 -1
  860. package/dist/theme/constants.d.ts +0 -29
  861. package/dist/theme/constants.d.ts.map +0 -1
  862. package/dist/theme/constants.js +0 -48
  863. package/dist/theme/constants.js.map +0 -1
  864. package/dist/theme/index.d.ts +0 -31
  865. package/dist/theme/index.d.ts.map +0 -1
  866. package/dist/theme/index.js +0 -36
  867. package/dist/theme/index.js.map +0 -1
  868. package/dist/theme/theme-context.d.ts +0 -40
  869. package/dist/theme/theme-context.d.ts.map +0 -1
  870. package/dist/theme/theme-context.js +0 -60
  871. package/dist/theme/theme-context.js.map +0 -1
  872. package/dist/theme/theme-script.d.ts +0 -27
  873. package/dist/theme/theme-script.d.ts.map +0 -1
  874. package/dist/theme/theme-script.js +0 -147
  875. package/dist/theme/theme-script.js.map +0 -1
  876. package/dist/theme/types.d.ts +0 -163
  877. package/dist/theme/types.d.ts.map +0 -1
  878. package/dist/theme/types.js +0 -11
  879. package/dist/theme/types.js.map +0 -1
  880. package/dist/theme/use-theme.d.ts +0 -12
  881. package/dist/theme/use-theme.d.ts.map +0 -1
  882. package/dist/theme/use-theme.js +0 -40
  883. package/dist/theme/use-theme.js.map +0 -1
  884. package/dist/types.d.ts +0 -1479
  885. package/dist/types.d.ts.map +0 -1
  886. package/dist/types.js +0 -10
  887. package/dist/types.js.map +0 -1
  888. package/dist/urls.d.ts +0 -441
  889. package/dist/urls.d.ts.map +0 -1
  890. package/dist/urls.gen.d.ts +0 -8
  891. package/dist/urls.gen.d.ts.map +0 -1
  892. package/dist/urls.gen.js +0 -8
  893. package/dist/urls.gen.js.map +0 -1
  894. package/dist/urls.js +0 -443
  895. package/dist/urls.js.map +0 -1
  896. package/dist/use-loader.d.ts +0 -127
  897. package/dist/use-loader.d.ts.map +0 -1
  898. package/dist/use-loader.js +0 -237
  899. package/dist/use-loader.js.map +0 -1
  900. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  901. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  902. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  903. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  904. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  905. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  906. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  907. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  908. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  909. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  910. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  911. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  912. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  913. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  914. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  915. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  916. package/dist/vite/ast-handler-extract.d.ts +0 -49
  917. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  918. package/dist/vite/ast-handler-extract.js +0 -249
  919. package/dist/vite/ast-handler-extract.js.map +0 -1
  920. package/dist/vite/expose-action-id.d.ts +0 -19
  921. package/dist/vite/expose-action-id.d.ts.map +0 -1
  922. package/dist/vite/expose-action-id.js +0 -250
  923. package/dist/vite/expose-action-id.js.map +0 -1
  924. package/dist/vite/expose-id-utils.d.ts +0 -69
  925. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  926. package/dist/vite/expose-id-utils.js +0 -289
  927. package/dist/vite/expose-id-utils.js.map +0 -1
  928. package/dist/vite/expose-internal-ids.d.ts +0 -22
  929. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  930. package/dist/vite/expose-internal-ids.js +0 -886
  931. package/dist/vite/expose-internal-ids.js.map +0 -1
  932. package/dist/vite/index.d.ts +0 -149
  933. package/dist/vite/index.d.ts.map +0 -1
  934. package/dist/vite/index.js.map +0 -1
  935. package/dist/vite/index.named-routes.gen.ts +0 -103
  936. package/dist/vite/package-resolution.d.ts +0 -43
  937. package/dist/vite/package-resolution.d.ts.map +0 -1
  938. package/dist/vite/package-resolution.js +0 -112
  939. package/dist/vite/package-resolution.js.map +0 -1
  940. package/dist/vite/virtual-entries.d.ts +0 -25
  941. package/dist/vite/virtual-entries.d.ts.map +0 -1
  942. package/dist/vite/virtual-entries.js +0 -110
  943. package/dist/vite/virtual-entries.js.map +0 -1
@@ -1,9 +1,71 @@
1
1
  "use client";
2
2
 
3
- import { useCallback, useContext, useEffect, useRef, useState } from "react";
3
+ import {
4
+ isValidElement,
5
+ startTransition,
6
+ useCallback,
7
+ useContext,
8
+ useEffect,
9
+ useMemo,
10
+ useRef,
11
+ useState,
12
+ type ReactNode,
13
+ } from "react";
4
14
  import { OutletContext, type OutletContextValue } from "./outlet-context.js";
5
15
  import type { LoaderDefinition, LoadOptions } from "./types.js";
6
16
 
17
+ /**
18
+ * Extract a specific loader's data from a content ReactNode.
19
+ *
20
+ * When a route registers loaders via loader(), the resolved data lives in
21
+ * the route's OutletProvider (rendered as <Outlet /> content). Parallel
22
+ * slots are siblings of <Outlet />, so they can't find it by walking
23
+ * the parent context chain. This helper traverses wrapper elements
24
+ * (MountContextProvider, ViewTransition, etc.) to reach the OutletProvider
25
+ * and extract the loader data directly.
26
+ */
27
+ const NOT_FOUND = Symbol("not-found");
28
+
29
+ function extractContentLoaderData(
30
+ node: ReactNode,
31
+ loaderId: string,
32
+ ): unknown | typeof NOT_FOUND {
33
+ if (!isValidElement(node)) return NOT_FOUND;
34
+ const props = node.props as Record<string, any> | undefined;
35
+ if (!props) return NOT_FOUND;
36
+
37
+ // Direct OutletProvider with loaderData
38
+ if (props.loaderData && loaderId in props.loaderData) {
39
+ return props.loaderData[loaderId];
40
+ }
41
+
42
+ // LoaderBoundary: loaderIds + loaderDataPromise (already resolved array).
43
+ // When the segment has loading(), loaderData is resolved inside
44
+ // LoaderBoundary via use(). If the promise was pre-awaited (forceAwait
45
+ // or isAction), the prop is a raw array we can index into.
46
+ if (
47
+ props.loaderIds &&
48
+ Array.isArray(props.loaderIds) &&
49
+ props.loaderDataPromise &&
50
+ !(props.loaderDataPromise instanceof Promise)
51
+ ) {
52
+ const idx = (props.loaderIds as string[]).indexOf(loaderId);
53
+ if (idx !== -1) {
54
+ const data = (props.loaderDataPromise as any[])[idx];
55
+ // loaderDataPromise entries may be { ok, data } result objects
56
+ if (data && typeof data === "object" && "ok" in data) {
57
+ return data.ok ? data.data : NOT_FOUND;
58
+ }
59
+ return data;
60
+ }
61
+ }
62
+
63
+ // Traverse into wrapper elements (MountContextProvider, ViewTransition,
64
+ // Suspense wrappers, etc.)
65
+ if (props.children) return extractContentLoaderData(props.children, loaderId);
66
+ return NOT_FOUND;
67
+ }
68
+
7
69
  /**
8
70
  * Payload returned by loader RSC requests
9
71
  */
@@ -71,19 +133,27 @@ function useLoaderInternal<T>(
71
133
  const context = useContext(OutletContext);
72
134
 
73
135
  // Get data from context (SSR/navigation)
74
- const getContextData = useCallback((): T | undefined => {
136
+ const contextData = useMemo((): T | undefined => {
75
137
  let current: OutletContextValue | null | undefined = context;
76
138
  while (current) {
77
139
  if (current.loaderData && loader.$$id in current.loaderData) {
78
140
  return current.loaderData[loader.$$id] as T;
79
141
  }
142
+ // Check content element — the route's OutletProvider is rendered as
143
+ // <Outlet /> content (a child), so its loaderData isn't in the parent
144
+ // chain. Parallel slots need to reach into it to find route-level loaders.
145
+ const contentData = extractContentLoaderData(
146
+ current.content,
147
+ loader.$$id,
148
+ );
149
+ if (contentData !== NOT_FOUND) {
150
+ return contentData as T;
151
+ }
80
152
  current = current.parent;
81
153
  }
82
154
  return undefined;
83
155
  }, [context, loader.$$id]);
84
156
 
85
- const contextData = getContextData();
86
-
87
157
  // Local state for fetched data (from load() calls)
88
158
  const [fetchedData, setFetchedData] = useState<T | undefined>(undefined);
89
159
  const [isLoading, setIsLoading] = useState(false);
@@ -215,7 +285,9 @@ function useLoaderInternal<T>(
215
285
 
216
286
  const result = payload.loaderResult;
217
287
  if (requestId === requestIdRef.current) {
218
- setFetchedData(result);
288
+ startTransition(() => {
289
+ setFetchedData(result);
290
+ });
219
291
  }
220
292
  return result;
221
293
  } catch (e) {
@@ -31,25 +31,25 @@ export function postprocessBundle(state: DiscoveryState): void {
31
31
  state.rscEntryFileName ?? "index.js",
32
32
  );
33
33
 
34
- // 1. Evict handler code from __prerender-handlers and __static-handlers chunks.
35
- // handlerChunkInfo/staticHandlerChunkInfo are populated by generateBundle
34
+ // 1. Evict handler code from whichever chunks contain handler exports.
35
+ // handlerChunkInfoMap/staticHandlerChunkInfoMap are populated by generateBundle
36
36
  // after the production RSC build. In Vite 6 multi-environment builds, the
37
- // RSC build runs twice (analysis + production). Chunk info is only available
38
- // after the production pass, so we run eviction whenever it becomes available.
37
+ // RSC build runs twice (analysis + production). The maps are cleared at the
38
+ // start of each generateBundle pass so only production data is used here.
39
39
  const evictionTargets: Array<{
40
- info: typeof state.handlerChunkInfo;
40
+ infos: Iterable<import("./state.js").ChunkInfo>;
41
41
  fnName: string;
42
42
  brand: string;
43
43
  label: string;
44
44
  }> = [
45
45
  {
46
- info: state.handlerChunkInfo,
46
+ infos: state.handlerChunkInfoMap.values(),
47
47
  fnName: "Prerender",
48
48
  brand: "prerenderHandler",
49
49
  label: "handler code from RSC bundle",
50
50
  },
51
51
  {
52
- info: state.staticHandlerChunkInfo,
52
+ infos: state.staticHandlerChunkInfoMap.values(),
53
53
  fnName: "Static",
54
54
  brand: "staticHandler",
55
55
  label: "static handler code",
@@ -57,35 +57,32 @@ export function postprocessBundle(state: DiscoveryState): void {
57
57
  ];
58
58
 
59
59
  for (const target of evictionTargets) {
60
- if (!target.info) continue;
61
- const chunkPath = resolve(
62
- state.projectRoot,
63
- "dist/rsc",
64
- target.info.fileName,
65
- );
66
- try {
67
- const code = readFileSync(chunkPath, "utf-8");
68
- const result = evictHandlerCode(
69
- code,
70
- target.info.exports,
71
- target.fnName,
72
- target.brand,
73
- );
74
- if (result) {
75
- writeFileSync(chunkPath, result.code);
76
- const savedKB = (result.savedBytes / 1024).toFixed(1);
77
- console.log(
78
- `[rsc-router] Evicted ${target.label} (${savedKB} KB saved): ${target.info.fileName}`,
60
+ for (const info of target.infos) {
61
+ const chunkPath = resolve(state.projectRoot, "dist/rsc", info.fileName);
62
+ try {
63
+ const code = readFileSync(chunkPath, "utf-8");
64
+ const result = evictHandlerCode(
65
+ code,
66
+ info.exports,
67
+ target.fnName,
68
+ target.brand,
69
+ );
70
+ if (result) {
71
+ writeFileSync(chunkPath, result.code);
72
+ const savedKB = (result.savedBytes / 1024).toFixed(1);
73
+ console.log(
74
+ `[rsc-router] Evicted ${target.label} (${savedKB} KB saved): ${info.fileName}`,
75
+ );
76
+ }
77
+ } catch (replaceErr: any) {
78
+ console.warn(
79
+ `[rsc-router] Failed to evict ${target.label}: ${replaceErr.message}`,
79
80
  );
80
81
  }
81
- } catch (replaceErr: any) {
82
- console.warn(
83
- `[rsc-router] Failed to evict ${target.label}: ${replaceErr.message}`,
84
- );
85
82
  }
86
83
  }
87
- state.handlerChunkInfo = null;
88
- state.staticHandlerChunkInfo = null;
84
+ state.handlerChunkInfoMap.clear();
85
+ state.staticHandlerChunkInfoMap.clear();
89
86
 
90
87
  // 2. Write prerender data as separate importable asset modules
91
88
  // and inject a lazy manifest loader into the RSC entry.
@@ -138,7 +135,7 @@ export function postprocessBundle(state: DiscoveryState): void {
138
135
  // and inject a __STATIC_MANIFEST import into the RSC entry.
139
136
  if (hasStaticData && existsSync(rscEntryPath)) {
140
137
  const rscCode = readFileSync(rscEntryPath, "utf-8");
141
- if (!rscCode.includes("__STATIC_MANIFEST")) {
138
+ if (!rscCode.includes("__static-manifest.js")) {
142
139
  try {
143
140
  const manifestEntries: string[] = [];
144
141
  let totalBytes = copyStagedBuildAssets(
@@ -135,7 +135,11 @@ export async function discoverRouters(
135
135
  continue;
136
136
  }
137
137
 
138
- const manifest = generateManifestFull(router.urlpatterns, routerMountIndex);
138
+ const manifest = generateManifestFull(
139
+ router.urlpatterns,
140
+ routerMountIndex,
141
+ router.__basename ? { urlPrefix: router.__basename } : undefined,
142
+ );
139
143
  routerMountIndex++;
140
144
  allManifests.push({ id, manifest });
141
145
  const routeCount = Object.keys(manifest.routeManifest).length;
@@ -51,93 +51,144 @@ export async function expandPrerenderRoutes(
51
51
  return substituteRouteParams(pattern, params);
52
52
  };
53
53
 
54
+ let resolvedRoutes = 0;
55
+ let totalDynamic = 0;
56
+
57
+ // Count dynamic routes upfront for progress reporting
54
58
  for (const { manifest } of allManifests) {
55
59
  if (!manifest.prerenderRoutes) continue;
56
- const defs = manifest._prerenderDefs || {};
57
60
  for (const routeName of manifest.prerenderRoutes) {
58
61
  const pattern = manifest.routeManifest[routeName];
59
- if (!pattern) continue;
60
- const def = defs[routeName];
61
- const isPassthroughRoute = !!def?.options?.passthrough;
62
- const hasDynamic = pattern.includes(":") || pattern.includes("*");
63
- if (!hasDynamic) {
64
- // Static route: use pattern directly (strip trailing slash for URL)
65
- entries.push({
66
- urlPath: pattern.replace(/\/$/, "") || "/",
67
- routeName,
68
- concurrency: 1,
69
- isPassthroughRoute,
70
- });
71
- } else {
72
- // Dynamic route: call getParams() to enumerate param combinations
73
- if (def?.getParams) {
74
- try {
75
- const buildVars: Record<string, any> = {};
76
- const getParamsCtx = {
77
- build: true as const,
78
- set: ((keyOrVar: any, value: any) => {
79
- contextSet(buildVars, keyOrVar, value);
80
- }) as any,
81
- reverse: getParamsReverse,
82
- };
83
- const paramsList = await def.getParams(getParamsCtx);
84
- const concurrency = def.options?.concurrency ?? 1;
85
- const hasBuildVars =
86
- Object.keys(buildVars).length > 0 ||
87
- Object.getOwnPropertySymbols(buildVars).length > 0;
88
- for (const params of paramsList) {
89
- let url = substituteRouteParams(
90
- pattern,
91
- params as Record<string, string>,
92
- encodePathParam,
93
- );
94
- // Anonymous wildcard fallback: use conventional keys if provided
95
- if (url.includes("*")) {
96
- const wildcardValue =
97
- (params as Record<string, string>)["*"] ??
98
- (params as Record<string, string>).splat;
99
- if (wildcardValue !== undefined) {
100
- url = url.replace(/\*[^/]*$/, encodePathParam(wildcardValue));
62
+ if (pattern && (pattern.includes(":") || pattern.includes("*"))) {
63
+ totalDynamic++;
64
+ }
65
+ }
66
+ }
67
+
68
+ // Periodic progress log so long getParams() calls don't look stalled
69
+ const paramsStart = performance.now();
70
+ const progressInterval =
71
+ totalDynamic > 0
72
+ ? setInterval(() => {
73
+ const elapsed = ((performance.now() - paramsStart) / 1000).toFixed(1);
74
+ console.log(
75
+ `[rsc-router] Resolving prerender params... ${resolvedRoutes}/${totalDynamic} routes (${elapsed}s)`,
76
+ );
77
+ }, 5000)
78
+ : undefined;
79
+
80
+ try {
81
+ for (const { manifest } of allManifests) {
82
+ if (!manifest.prerenderRoutes) continue;
83
+ const defs = manifest._prerenderDefs || {};
84
+ const passthroughSet = new Set(manifest.passthroughRoutes || []);
85
+ for (const routeName of manifest.prerenderRoutes) {
86
+ const pattern = manifest.routeManifest[routeName];
87
+ if (!pattern) continue;
88
+ const def = defs[routeName];
89
+ const isPassthroughRoute = passthroughSet.has(routeName);
90
+ const hasDynamic = pattern.includes(":") || pattern.includes("*");
91
+ if (!hasDynamic) {
92
+ // Static route: use pattern directly (strip trailing slash for URL)
93
+ entries.push({
94
+ urlPath: pattern.replace(/\/$/, "") || "/",
95
+ routeName,
96
+ concurrency: 1,
97
+ isPassthroughRoute,
98
+ });
99
+ } else {
100
+ // Dynamic route: call getParams() to enumerate param combinations
101
+ if (def?.getParams) {
102
+ try {
103
+ const buildVars: Record<string, any> = {};
104
+ const buildEnv = state.resolvedBuildEnv;
105
+ const getParamsCtx = {
106
+ build: true as const,
107
+ dev: !state.isBuildMode,
108
+ set: ((keyOrVar: any, value: any) => {
109
+ contextSet(buildVars, keyOrVar, value);
110
+ }) as any,
111
+ reverse: getParamsReverse,
112
+ get env() {
113
+ if (buildEnv !== undefined) return buildEnv;
114
+ throw new Error(
115
+ "[rsc-router] ctx.env is not available during build-time getParams(). " +
116
+ "Configure buildEnv in your rango() plugin options to enable build-time env access.",
117
+ );
118
+ },
119
+ };
120
+ const paramsList = await def.getParams(getParamsCtx);
121
+ const concurrency = def.options?.concurrency ?? 1;
122
+ const hasBuildVars =
123
+ Object.keys(buildVars).length > 0 ||
124
+ Object.getOwnPropertySymbols(buildVars).length > 0;
125
+ for (const params of paramsList) {
126
+ let url = substituteRouteParams(
127
+ pattern,
128
+ params as Record<string, string>,
129
+ encodePathParam,
130
+ );
131
+ // Anonymous wildcard fallback: use conventional keys if provided
132
+ if (url.includes("*")) {
133
+ const wildcardValue =
134
+ (params as Record<string, string>)["*"] ??
135
+ (params as Record<string, string>).splat;
136
+ if (wildcardValue !== undefined) {
137
+ url = url.replace(
138
+ /\*[^/]*$/,
139
+ encodePathParam(wildcardValue),
140
+ );
141
+ }
101
142
  }
143
+ entries.push({
144
+ urlPath: url.replace(/\/$/, "") || "/",
145
+ routeName,
146
+ concurrency,
147
+ ...(hasBuildVars ? { buildVars } : {}),
148
+ isPassthroughRoute,
149
+ });
102
150
  }
103
- entries.push({
104
- urlPath: url.replace(/\/$/, "") || "/",
105
- routeName,
106
- concurrency,
107
- ...(hasBuildVars ? { buildVars } : {}),
108
- isPassthroughRoute,
109
- });
110
- }
111
- } catch (err: any) {
112
- // Skip in getParams() skips the entire route
113
- if (err.name === "Skip") {
114
- console.log(
115
- `[rsc-router] SKIP route "${routeName}" - ${err.message}`,
116
- );
117
- notifyOnError(
118
- registry,
119
- err,
120
- "prerender",
121
- routeName,
122
- undefined,
123
- true,
151
+ resolvedRoutes++;
152
+ } catch (err: any) {
153
+ resolvedRoutes++;
154
+ // Skip in getParams() skips the entire route
155
+ if (err.name === "Skip") {
156
+ console.log(
157
+ `[rsc-router] SKIP route "${routeName}" - ${err.message}`,
158
+ );
159
+ notifyOnError(
160
+ registry,
161
+ err,
162
+ "prerender",
163
+ routeName,
164
+ undefined,
165
+ true,
166
+ );
167
+ continue;
168
+ }
169
+ // Regular error: fail the build
170
+ console.error(
171
+ `[rsc-router] Failed to get params for prerender route "${routeName}": ${err.message}`,
124
172
  );
125
- continue;
173
+ notifyOnError(registry, err, "prerender", routeName);
174
+ throw err;
126
175
  }
127
- // Regular error: fail the build
128
- console.error(
129
- `[rsc-router] Failed to get params for prerender route "${routeName}": ${err.message}`,
176
+ } else {
177
+ console.warn(
178
+ `[rsc-router] Dynamic prerender route "${routeName}" has no getParams(), skipping`,
130
179
  );
131
- notifyOnError(registry, err, "prerender", routeName);
132
- throw err;
133
180
  }
134
- } else {
135
- console.warn(
136
- `[rsc-router] Dynamic prerender route "${routeName}" has no getParams(), skipping`,
137
- );
138
181
  }
139
182
  }
140
183
  }
184
+ } finally {
185
+ if (progressInterval) {
186
+ clearInterval(progressInterval);
187
+ const elapsed = ((performance.now() - paramsStart) / 1000).toFixed(1);
188
+ console.log(
189
+ `[rsc-router] Resolved prerender params: ${resolvedRoutes}/${totalDynamic} routes (${elapsed}s)`,
190
+ );
191
+ }
141
192
  }
142
193
 
143
194
  if (entries.length === 0) return;
@@ -175,6 +226,7 @@ export async function expandPrerenderRoutes(
175
226
  {},
176
227
  entry.buildVars,
177
228
  entry.isPassthroughRoute,
229
+ state.resolvedBuildEnv,
178
230
  );
179
231
  if (!result) continue;
180
232
 
@@ -326,6 +378,8 @@ export async function renderStaticHandlers(
326
378
  def.handler,
327
379
  def.$$id,
328
380
  (def as any).$$routePrefix,
381
+ state.resolvedBuildEnv,
382
+ !state.isBuildMode,
329
383
  );
330
384
  if (result) {
331
385
  const hasHandles = Object.keys(result.handles).length > 0;
@@ -13,11 +13,13 @@ export const VIRTUAL_ROUTES_MANIFEST_ID = "virtual:rsc-router/routes-manifest";
13
13
  export interface PluginOptions {
14
14
  enableBuildPrerender?: boolean;
15
15
  staticRouteTypesGeneration?: boolean;
16
- include?: string[];
17
- exclude?: string[];
18
16
  // Mutable ref for deferred auto-discovery (node preset).
19
17
  // The auto-discover config() hook populates this before configResolved.
20
18
  routerPathRef?: { path?: string };
19
+ /** Build-time env option from rango() config. */
20
+ buildEnv?: import("../plugin-types.js").BuildEnvOption;
21
+ /** Deployment preset (needed for buildEnv "auto" resolution). */
22
+ preset?: "node" | "cloudflare";
21
23
  }
22
24
 
23
25
  export interface PrecomputedEntry {
@@ -58,8 +60,8 @@ export interface DiscoveryState {
58
60
 
59
61
  prerenderManifestEntries: Record<string, string> | null;
60
62
  staticManifestEntries: Record<string, string> | null;
61
- handlerChunkInfo: ChunkInfo | null;
62
- staticHandlerChunkInfo: ChunkInfo | null;
63
+ handlerChunkInfoMap: Map<string, ChunkInfo>;
64
+ staticHandlerChunkInfoMap: Map<string, ChunkInfo>;
63
65
  rscEntryFileName: string | null;
64
66
  resolvedPrerenderModules: Map<string, string[]> | undefined;
65
67
  resolvedStaticModules: Map<string, string[]> | undefined;
@@ -69,6 +71,11 @@ export interface DiscoveryState {
69
71
  devServer: any;
70
72
  selfWrittenGenFiles: Map<string, { at: number; hash: string }>;
71
73
  SELF_WRITE_WINDOW_MS: number;
74
+
75
+ /** Resolved build-time env bindings (set during buildStart/configureServer). */
76
+ resolvedBuildEnv?: Record<string, unknown>;
77
+ /** Cleanup function for build-time env resources (e.g., miniflare). */
78
+ buildEnvDispose?: (() => Promise<void> | void) | null;
72
79
  }
73
80
 
74
81
  export function createDiscoveryState(
@@ -95,8 +102,8 @@ export function createDiscoveryState(
95
102
 
96
103
  prerenderManifestEntries: null,
97
104
  staticManifestEntries: null,
98
- handlerChunkInfo: null,
99
- staticHandlerChunkInfo: null,
105
+ handlerChunkInfoMap: new Map(),
106
+ staticHandlerChunkInfoMap: new Map(),
100
107
  rscEntryFileName: null,
101
108
  resolvedPrerenderModules: undefined,
102
109
  resolvedStaticModules: undefined,
package/src/vite/index.ts CHANGED
@@ -13,4 +13,8 @@ export type {
13
13
  RangoNodeOptions,
14
14
  RangoCloudflareOptions,
15
15
  RangoOptions,
16
+ BuildEnvOption,
17
+ BuildEnvFactory,
18
+ BuildEnvFactoryContext,
19
+ BuildEnvResult,
16
20
  } from "./plugin-types.js";