@rangojs/router 0.0.0-experimental.f2337aef → 0.0.0-experimental.f2d1a2f1

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 (972) hide show
  1. package/README.md +126 -38
  2. package/dist/bin/rango.js +138 -50
  3. package/dist/vite/index.js +1183 -461
  4. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  5. package/package.json +7 -5
  6. package/skills/breadcrumbs/SKILL.md +3 -1
  7. package/skills/cache-guide/SKILL.md +32 -0
  8. package/skills/caching/SKILL.md +45 -4
  9. package/skills/handler-use/SKILL.md +362 -0
  10. package/skills/hooks/SKILL.md +28 -20
  11. package/skills/intercept/SKILL.md +20 -0
  12. package/skills/layout/SKILL.md +22 -0
  13. package/skills/links/SKILL.md +91 -17
  14. package/skills/loader/SKILL.md +88 -45
  15. package/skills/middleware/SKILL.md +34 -3
  16. package/skills/migrate-nextjs/SKILL.md +560 -0
  17. package/skills/migrate-react-router/SKILL.md +765 -0
  18. package/skills/parallel/SKILL.md +185 -0
  19. package/skills/prerender/SKILL.md +110 -68
  20. package/skills/rango/SKILL.md +24 -22
  21. package/skills/response-routes/SKILL.md +8 -0
  22. package/skills/route/SKILL.md +55 -0
  23. package/skills/router-setup/SKILL.md +87 -2
  24. package/skills/streams-and-websockets/SKILL.md +283 -0
  25. package/skills/typesafety/SKILL.md +13 -1
  26. package/src/__internal.ts +1 -1
  27. package/src/browser/app-shell.ts +52 -0
  28. package/src/browser/app-version.ts +14 -0
  29. package/src/browser/event-controller.ts +5 -0
  30. package/src/browser/navigation-bridge.ts +88 -9
  31. package/src/browser/navigation-client.ts +167 -59
  32. package/src/browser/navigation-store.ts +68 -9
  33. package/src/browser/navigation-transaction.ts +11 -9
  34. package/src/browser/partial-update.ts +109 -15
  35. package/src/browser/prefetch/cache.ts +175 -15
  36. package/src/browser/prefetch/fetch.ts +180 -33
  37. package/src/browser/prefetch/queue.ts +123 -20
  38. package/src/browser/prefetch/resource-ready.ts +77 -0
  39. package/src/browser/rango-state.ts +53 -13
  40. package/src/browser/react/Link.tsx +81 -9
  41. package/src/browser/react/NavigationProvider.tsx +89 -14
  42. package/src/browser/react/context.ts +7 -2
  43. package/src/browser/react/use-handle.ts +9 -58
  44. package/src/browser/react/use-navigation.ts +22 -2
  45. package/src/browser/react/use-params.ts +11 -1
  46. package/src/browser/react/use-router.ts +29 -9
  47. package/src/browser/rsc-router.tsx +168 -65
  48. package/src/browser/scroll-restoration.ts +30 -15
  49. package/src/browser/segment-reconciler.ts +36 -9
  50. package/src/browser/server-action-bridge.ts +8 -6
  51. package/src/browser/types.ts +49 -5
  52. package/src/build/generate-manifest.ts +6 -6
  53. package/src/build/generate-route-types.ts +3 -0
  54. package/src/build/route-trie.ts +50 -24
  55. package/src/build/route-types/include-resolution.ts +8 -1
  56. package/src/build/route-types/router-processing.ts +223 -74
  57. package/src/build/route-types/scan-filter.ts +8 -1
  58. package/src/cache/cache-runtime.ts +15 -11
  59. package/src/cache/cache-scope.ts +48 -7
  60. package/src/cache/cf/cf-cache-store.ts +455 -15
  61. package/src/cache/cf/index.ts +5 -1
  62. package/src/cache/document-cache.ts +17 -7
  63. package/src/cache/index.ts +1 -0
  64. package/src/cache/taint.ts +55 -0
  65. package/src/client.tsx +84 -230
  66. package/src/context-var.ts +72 -2
  67. package/src/debug.ts +2 -2
  68. package/src/handle.ts +40 -0
  69. package/src/index.rsc.ts +6 -1
  70. package/src/index.ts +49 -6
  71. package/src/outlet-context.ts +1 -1
  72. package/src/prerender/store.ts +5 -4
  73. package/src/prerender.ts +138 -77
  74. package/src/response-utils.ts +28 -0
  75. package/src/reverse.ts +27 -2
  76. package/src/route-definition/dsl-helpers.ts +240 -40
  77. package/src/route-definition/helpers-types.ts +67 -19
  78. package/src/route-definition/index.ts +3 -0
  79. package/src/route-definition/redirect.ts +11 -3
  80. package/src/route-definition/resolve-handler-use.ts +155 -0
  81. package/src/route-types.ts +18 -0
  82. package/src/router/content-negotiation.ts +100 -1
  83. package/src/router/handler-context.ts +101 -25
  84. package/src/router/intercept-resolution.ts +9 -4
  85. package/src/router/lazy-includes.ts +10 -7
  86. package/src/router/loader-resolution.ts +159 -21
  87. package/src/router/logging.ts +1 -1
  88. package/src/router/manifest.ts +31 -16
  89. package/src/router/match-api.ts +127 -192
  90. package/src/router/match-middleware/background-revalidation.ts +30 -2
  91. package/src/router/match-middleware/cache-lookup.ts +94 -17
  92. package/src/router/match-middleware/cache-store.ts +53 -10
  93. package/src/router/match-middleware/intercept-resolution.ts +9 -7
  94. package/src/router/match-middleware/segment-resolution.ts +60 -5
  95. package/src/router/match-result.ts +104 -10
  96. package/src/router/metrics.ts +6 -1
  97. package/src/router/middleware-types.ts +8 -30
  98. package/src/router/middleware.ts +36 -10
  99. package/src/router/navigation-snapshot.ts +182 -0
  100. package/src/router/pattern-matching.ts +60 -9
  101. package/src/router/prerender-match.ts +110 -10
  102. package/src/router/preview-match.ts +30 -102
  103. package/src/router/request-classification.ts +310 -0
  104. package/src/router/route-snapshot.ts +245 -0
  105. package/src/router/router-context.ts +1 -0
  106. package/src/router/router-interfaces.ts +36 -4
  107. package/src/router/router-options.ts +37 -11
  108. package/src/router/segment-resolution/fresh.ts +198 -20
  109. package/src/router/segment-resolution/helpers.ts +29 -24
  110. package/src/router/segment-resolution/loader-cache.ts +1 -0
  111. package/src/router/segment-resolution/revalidation.ts +433 -296
  112. package/src/router/trie-matching.ts +10 -4
  113. package/src/router/types.ts +1 -0
  114. package/src/router/url-params.ts +49 -0
  115. package/src/router.ts +60 -8
  116. package/src/rsc/handler.ts +478 -374
  117. package/src/rsc/helpers.ts +69 -41
  118. package/src/rsc/loader-fetch.ts +23 -3
  119. package/src/rsc/manifest-init.ts +5 -1
  120. package/src/rsc/progressive-enhancement.ts +16 -2
  121. package/src/rsc/response-route-handler.ts +14 -1
  122. package/src/rsc/rsc-rendering.ts +17 -1
  123. package/src/rsc/server-action.ts +10 -0
  124. package/src/rsc/ssr-setup.ts +2 -2
  125. package/src/rsc/types.ts +9 -1
  126. package/src/segment-content-promise.ts +67 -0
  127. package/src/segment-loader-promise.ts +122 -0
  128. package/src/segment-system.tsx +109 -23
  129. package/src/server/context.ts +166 -17
  130. package/src/server/handle-store.ts +19 -0
  131. package/src/server/loader-registry.ts +9 -8
  132. package/src/server/request-context.ts +194 -60
  133. package/src/ssr/index.tsx +4 -0
  134. package/src/static-handler.ts +18 -6
  135. package/src/types/cache-types.ts +4 -4
  136. package/src/types/handler-context.ts +137 -65
  137. package/src/types/loader-types.ts +41 -15
  138. package/src/types/request-scope.ts +126 -0
  139. package/src/types/route-entry.ts +19 -1
  140. package/src/types/segments.ts +2 -0
  141. package/src/urls/include-helper.ts +24 -14
  142. package/src/urls/path-helper-types.ts +39 -6
  143. package/src/urls/path-helper.ts +48 -13
  144. package/src/urls/pattern-types.ts +12 -0
  145. package/src/urls/response-types.ts +18 -16
  146. package/src/use-loader.tsx +77 -5
  147. package/src/vite/debug.ts +86 -0
  148. package/src/vite/discovery/bundle-postprocess.ts +30 -33
  149. package/src/vite/discovery/discover-routers.ts +5 -1
  150. package/src/vite/discovery/prerender-collection.ts +128 -74
  151. package/src/vite/discovery/state.ts +13 -6
  152. package/src/vite/index.ts +4 -0
  153. package/src/vite/plugin-types.ts +51 -79
  154. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  155. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  156. package/src/vite/plugins/cloudflare-protocol-stub.ts +214 -0
  157. package/src/vite/plugins/expose-action-id.ts +1 -3
  158. package/src/vite/plugins/expose-id-utils.ts +12 -0
  159. package/src/vite/plugins/expose-ids/handler-transform.ts +30 -0
  160. package/src/vite/plugins/expose-internal-ids.ts +257 -40
  161. package/src/vite/plugins/performance-tracks.ts +86 -0
  162. package/src/vite/plugins/refresh-cmd.ts +88 -26
  163. package/src/vite/plugins/version-plugin.ts +13 -1
  164. package/src/vite/rango.ts +204 -217
  165. package/src/vite/router-discovery.ts +335 -64
  166. package/src/vite/utils/banner.ts +4 -4
  167. package/src/vite/utils/package-resolution.ts +41 -1
  168. package/src/vite/utils/prerender-utils.ts +37 -5
  169. package/src/vite/utils/shared-utils.ts +3 -2
  170. package/dist/__internal.d.ts +0 -83
  171. package/dist/__internal.d.ts.map +0 -1
  172. package/dist/__internal.js +0 -19
  173. package/dist/__internal.js.map +0 -1
  174. package/dist/__mocks__/version.d.ts +0 -7
  175. package/dist/__mocks__/version.d.ts.map +0 -1
  176. package/dist/__mocks__/version.js +0 -7
  177. package/dist/__mocks__/version.js.map +0 -1
  178. package/dist/__tests__/client-href.test.d.ts +0 -2
  179. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  180. package/dist/__tests__/client-href.test.js +0 -74
  181. package/dist/__tests__/client-href.test.js.map +0 -1
  182. package/dist/__tests__/component-utils.test.d.ts +0 -2
  183. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  184. package/dist/__tests__/component-utils.test.js +0 -51
  185. package/dist/__tests__/component-utils.test.js.map +0 -1
  186. package/dist/__tests__/event-controller.test.d.ts +0 -2
  187. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  188. package/dist/__tests__/event-controller.test.js +0 -538
  189. package/dist/__tests__/event-controller.test.js.map +0 -1
  190. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  191. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  192. package/dist/__tests__/helpers/route-tree.js +0 -374
  193. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  194. package/dist/__tests__/match-result.test.d.ts +0 -2
  195. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  196. package/dist/__tests__/match-result.test.js +0 -154
  197. package/dist/__tests__/match-result.test.js.map +0 -1
  198. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  199. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  200. package/dist/__tests__/navigation-store.test.js +0 -440
  201. package/dist/__tests__/navigation-store.test.js.map +0 -1
  202. package/dist/__tests__/partial-update.test.d.ts +0 -2
  203. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  204. package/dist/__tests__/partial-update.test.js +0 -1009
  205. package/dist/__tests__/partial-update.test.js.map +0 -1
  206. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  207. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  208. package/dist/__tests__/reverse-types.test.js +0 -656
  209. package/dist/__tests__/reverse-types.test.js.map +0 -1
  210. package/dist/__tests__/route-definition.test.d.ts +0 -2
  211. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  212. package/dist/__tests__/route-definition.test.js +0 -55
  213. package/dist/__tests__/route-definition.test.js.map +0 -1
  214. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  215. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  216. package/dist/__tests__/router-helpers.test.js +0 -377
  217. package/dist/__tests__/router-helpers.test.js.map +0 -1
  218. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  219. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  220. package/dist/__tests__/router-integration-2.test.js +0 -426
  221. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  222. package/dist/__tests__/router-integration.test.d.ts +0 -2
  223. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  224. package/dist/__tests__/router-integration.test.js +0 -1051
  225. package/dist/__tests__/router-integration.test.js.map +0 -1
  226. package/dist/__tests__/search-params.test.d.ts +0 -5
  227. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  228. package/dist/__tests__/search-params.test.js +0 -306
  229. package/dist/__tests__/search-params.test.js.map +0 -1
  230. package/dist/__tests__/segment-system.test.d.ts +0 -2
  231. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  232. package/dist/__tests__/segment-system.test.js +0 -627
  233. package/dist/__tests__/segment-system.test.js.map +0 -1
  234. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  235. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  236. package/dist/__tests__/static-handler-types.test.js +0 -63
  237. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  238. package/dist/__tests__/urls.test.d.ts +0 -2
  239. package/dist/__tests__/urls.test.d.ts.map +0 -1
  240. package/dist/__tests__/urls.test.js +0 -421
  241. package/dist/__tests__/urls.test.js.map +0 -1
  242. package/dist/__tests__/use-mount.test.d.ts +0 -2
  243. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  244. package/dist/__tests__/use-mount.test.js +0 -35
  245. package/dist/__tests__/use-mount.test.js.map +0 -1
  246. package/dist/bin/rango.d.ts +0 -2
  247. package/dist/bin/rango.d.ts.map +0 -1
  248. package/dist/bin/rango.js.map +0 -1
  249. package/dist/browser/event-controller.d.ts +0 -191
  250. package/dist/browser/event-controller.d.ts.map +0 -1
  251. package/dist/browser/event-controller.js +0 -559
  252. package/dist/browser/event-controller.js.map +0 -1
  253. package/dist/browser/index.d.ts +0 -2
  254. package/dist/browser/index.d.ts.map +0 -1
  255. package/dist/browser/index.js +0 -14
  256. package/dist/browser/index.js.map +0 -1
  257. package/dist/browser/link-interceptor.d.ts +0 -38
  258. package/dist/browser/link-interceptor.d.ts.map +0 -1
  259. package/dist/browser/link-interceptor.js +0 -99
  260. package/dist/browser/link-interceptor.js.map +0 -1
  261. package/dist/browser/logging.d.ts +0 -10
  262. package/dist/browser/logging.d.ts.map +0 -1
  263. package/dist/browser/logging.js +0 -29
  264. package/dist/browser/logging.js.map +0 -1
  265. package/dist/browser/lru-cache.d.ts +0 -17
  266. package/dist/browser/lru-cache.d.ts.map +0 -1
  267. package/dist/browser/lru-cache.js +0 -50
  268. package/dist/browser/lru-cache.js.map +0 -1
  269. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  270. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  271. package/dist/browser/merge-segment-loaders.js +0 -102
  272. package/dist/browser/merge-segment-loaders.js.map +0 -1
  273. package/dist/browser/navigation-bridge.d.ts +0 -102
  274. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  275. package/dist/browser/navigation-bridge.js +0 -708
  276. package/dist/browser/navigation-bridge.js.map +0 -1
  277. package/dist/browser/navigation-client.d.ts +0 -25
  278. package/dist/browser/navigation-client.d.ts.map +0 -1
  279. package/dist/browser/navigation-client.js +0 -157
  280. package/dist/browser/navigation-client.js.map +0 -1
  281. package/dist/browser/navigation-store.d.ts +0 -101
  282. package/dist/browser/navigation-store.d.ts.map +0 -1
  283. package/dist/browser/navigation-store.js +0 -625
  284. package/dist/browser/navigation-store.js.map +0 -1
  285. package/dist/browser/partial-update.d.ts +0 -75
  286. package/dist/browser/partial-update.d.ts.map +0 -1
  287. package/dist/browser/partial-update.js +0 -426
  288. package/dist/browser/partial-update.js.map +0 -1
  289. package/dist/browser/react/Link.d.ts +0 -86
  290. package/dist/browser/react/Link.d.ts.map +0 -1
  291. package/dist/browser/react/Link.js +0 -128
  292. package/dist/browser/react/Link.js.map +0 -1
  293. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  294. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  295. package/dist/browser/react/NavigationProvider.js +0 -216
  296. package/dist/browser/react/NavigationProvider.js.map +0 -1
  297. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  298. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  299. package/dist/browser/react/ScrollRestoration.js +0 -57
  300. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  301. package/dist/browser/react/context.d.ts +0 -46
  302. package/dist/browser/react/context.d.ts.map +0 -1
  303. package/dist/browser/react/context.js +0 -10
  304. package/dist/browser/react/context.js.map +0 -1
  305. package/dist/browser/react/index.d.ts +0 -11
  306. package/dist/browser/react/index.d.ts.map +0 -1
  307. package/dist/browser/react/index.js +0 -22
  308. package/dist/browser/react/index.js.map +0 -1
  309. package/dist/browser/react/location-state-shared.d.ts +0 -63
  310. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  311. package/dist/browser/react/location-state-shared.js +0 -81
  312. package/dist/browser/react/location-state-shared.js.map +0 -1
  313. package/dist/browser/react/location-state.d.ts +0 -23
  314. package/dist/browser/react/location-state.d.ts.map +0 -1
  315. package/dist/browser/react/location-state.js +0 -29
  316. package/dist/browser/react/location-state.js.map +0 -1
  317. package/dist/browser/react/mount-context.d.ts +0 -24
  318. package/dist/browser/react/mount-context.d.ts.map +0 -1
  319. package/dist/browser/react/mount-context.js +0 -24
  320. package/dist/browser/react/mount-context.js.map +0 -1
  321. package/dist/browser/react/use-action.d.ts +0 -64
  322. package/dist/browser/react/use-action.d.ts.map +0 -1
  323. package/dist/browser/react/use-action.js +0 -134
  324. package/dist/browser/react/use-action.js.map +0 -1
  325. package/dist/browser/react/use-client-cache.d.ts +0 -41
  326. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  327. package/dist/browser/react/use-client-cache.js +0 -39
  328. package/dist/browser/react/use-client-cache.js.map +0 -1
  329. package/dist/browser/react/use-handle.d.ts +0 -31
  330. package/dist/browser/react/use-handle.d.ts.map +0 -1
  331. package/dist/browser/react/use-handle.js +0 -144
  332. package/dist/browser/react/use-handle.js.map +0 -1
  333. package/dist/browser/react/use-href.d.ts +0 -33
  334. package/dist/browser/react/use-href.d.ts.map +0 -1
  335. package/dist/browser/react/use-href.js +0 -39
  336. package/dist/browser/react/use-href.js.map +0 -1
  337. package/dist/browser/react/use-link-status.d.ts +0 -37
  338. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  339. package/dist/browser/react/use-link-status.js +0 -99
  340. package/dist/browser/react/use-link-status.js.map +0 -1
  341. package/dist/browser/react/use-mount.d.ts +0 -25
  342. package/dist/browser/react/use-mount.d.ts.map +0 -1
  343. package/dist/browser/react/use-mount.js +0 -30
  344. package/dist/browser/react/use-mount.js.map +0 -1
  345. package/dist/browser/react/use-navigation.d.ts +0 -27
  346. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  347. package/dist/browser/react/use-navigation.js +0 -87
  348. package/dist/browser/react/use-navigation.js.map +0 -1
  349. package/dist/browser/react/use-segments.d.ts +0 -38
  350. package/dist/browser/react/use-segments.d.ts.map +0 -1
  351. package/dist/browser/react/use-segments.js +0 -130
  352. package/dist/browser/react/use-segments.js.map +0 -1
  353. package/dist/browser/request-controller.d.ts +0 -26
  354. package/dist/browser/request-controller.d.ts.map +0 -1
  355. package/dist/browser/request-controller.js +0 -147
  356. package/dist/browser/request-controller.js.map +0 -1
  357. package/dist/browser/rsc-router.d.ts +0 -129
  358. package/dist/browser/rsc-router.d.ts.map +0 -1
  359. package/dist/browser/rsc-router.js +0 -195
  360. package/dist/browser/rsc-router.js.map +0 -1
  361. package/dist/browser/scroll-restoration.d.ts +0 -93
  362. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  363. package/dist/browser/scroll-restoration.js +0 -321
  364. package/dist/browser/scroll-restoration.js.map +0 -1
  365. package/dist/browser/segment-structure-assert.d.ts +0 -17
  366. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  367. package/dist/browser/segment-structure-assert.js +0 -59
  368. package/dist/browser/segment-structure-assert.js.map +0 -1
  369. package/dist/browser/server-action-bridge.d.ts +0 -26
  370. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  371. package/dist/browser/server-action-bridge.js +0 -668
  372. package/dist/browser/server-action-bridge.js.map +0 -1
  373. package/dist/browser/shallow.d.ts +0 -12
  374. package/dist/browser/shallow.d.ts.map +0 -1
  375. package/dist/browser/shallow.js +0 -34
  376. package/dist/browser/shallow.js.map +0 -1
  377. package/dist/browser/types.d.ts +0 -369
  378. package/dist/browser/types.d.ts.map +0 -1
  379. package/dist/browser/types.js +0 -2
  380. package/dist/browser/types.js.map +0 -1
  381. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  382. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  383. package/dist/build/__tests__/generate-cli.test.js +0 -237
  384. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  385. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  386. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  387. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  388. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  389. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  390. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  391. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  392. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  393. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  394. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  395. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  396. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  397. package/dist/build/generate-manifest.d.ts +0 -81
  398. package/dist/build/generate-manifest.d.ts.map +0 -1
  399. package/dist/build/generate-manifest.js +0 -276
  400. package/dist/build/generate-manifest.js.map +0 -1
  401. package/dist/build/generate-route-types.d.ts +0 -115
  402. package/dist/build/generate-route-types.d.ts.map +0 -1
  403. package/dist/build/generate-route-types.js +0 -740
  404. package/dist/build/generate-route-types.js.map +0 -1
  405. package/dist/build/index.d.ts +0 -21
  406. package/dist/build/index.d.ts.map +0 -1
  407. package/dist/build/index.js +0 -21
  408. package/dist/build/index.js.map +0 -1
  409. package/dist/build/route-trie.d.ts +0 -71
  410. package/dist/build/route-trie.d.ts.map +0 -1
  411. package/dist/build/route-trie.js +0 -175
  412. package/dist/build/route-trie.js.map +0 -1
  413. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  414. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  415. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  416. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  417. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  418. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  419. package/dist/cache/__tests__/document-cache.test.js +0 -345
  420. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  421. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  422. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  423. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  424. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  425. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  426. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  427. package/dist/cache/__tests__/memory-store.test.js +0 -367
  428. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  429. package/dist/cache/cache-scope.d.ts +0 -102
  430. package/dist/cache/cache-scope.d.ts.map +0 -1
  431. package/dist/cache/cache-scope.js +0 -440
  432. package/dist/cache/cache-scope.js.map +0 -1
  433. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  434. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  435. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  436. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  437. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  438. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  439. package/dist/cache/cf/cf-cache-store.js +0 -242
  440. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  441. package/dist/cache/cf/index.d.ts +0 -14
  442. package/dist/cache/cf/index.d.ts.map +0 -1
  443. package/dist/cache/cf/index.js +0 -17
  444. package/dist/cache/cf/index.js.map +0 -1
  445. package/dist/cache/document-cache.d.ts +0 -64
  446. package/dist/cache/document-cache.d.ts.map +0 -1
  447. package/dist/cache/document-cache.js +0 -228
  448. package/dist/cache/document-cache.js.map +0 -1
  449. package/dist/cache/index.d.ts +0 -19
  450. package/dist/cache/index.d.ts.map +0 -1
  451. package/dist/cache/index.js +0 -21
  452. package/dist/cache/index.js.map +0 -1
  453. package/dist/cache/memory-segment-store.d.ts +0 -110
  454. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  455. package/dist/cache/memory-segment-store.js +0 -117
  456. package/dist/cache/memory-segment-store.js.map +0 -1
  457. package/dist/cache/memory-store.d.ts +0 -41
  458. package/dist/cache/memory-store.d.ts.map +0 -1
  459. package/dist/cache/memory-store.js +0 -191
  460. package/dist/cache/memory-store.js.map +0 -1
  461. package/dist/cache/types.d.ts +0 -317
  462. package/dist/cache/types.d.ts.map +0 -1
  463. package/dist/cache/types.js +0 -12
  464. package/dist/cache/types.js.map +0 -1
  465. package/dist/client.d.ts +0 -248
  466. package/dist/client.d.ts.map +0 -1
  467. package/dist/client.js +0 -367
  468. package/dist/client.js.map +0 -1
  469. package/dist/client.rsc.d.ts +0 -26
  470. package/dist/client.rsc.d.ts.map +0 -1
  471. package/dist/client.rsc.js +0 -46
  472. package/dist/client.rsc.js.map +0 -1
  473. package/dist/component-utils.d.ts +0 -36
  474. package/dist/component-utils.d.ts.map +0 -1
  475. package/dist/component-utils.js +0 -61
  476. package/dist/component-utils.js.map +0 -1
  477. package/dist/components/DefaultDocument.d.ts +0 -13
  478. package/dist/components/DefaultDocument.d.ts.map +0 -1
  479. package/dist/components/DefaultDocument.js +0 -15
  480. package/dist/components/DefaultDocument.js.map +0 -1
  481. package/dist/debug.d.ts +0 -58
  482. package/dist/debug.d.ts.map +0 -1
  483. package/dist/debug.js +0 -157
  484. package/dist/debug.js.map +0 -1
  485. package/dist/default-error-boundary.d.ts +0 -11
  486. package/dist/default-error-boundary.d.ts.map +0 -1
  487. package/dist/default-error-boundary.js +0 -45
  488. package/dist/default-error-boundary.js.map +0 -1
  489. package/dist/deps/browser.d.ts +0 -2
  490. package/dist/deps/browser.d.ts.map +0 -1
  491. package/dist/deps/browser.js +0 -3
  492. package/dist/deps/browser.js.map +0 -1
  493. package/dist/deps/html-stream-client.d.ts +0 -2
  494. package/dist/deps/html-stream-client.d.ts.map +0 -1
  495. package/dist/deps/html-stream-client.js +0 -3
  496. package/dist/deps/html-stream-client.js.map +0 -1
  497. package/dist/deps/html-stream-server.d.ts +0 -2
  498. package/dist/deps/html-stream-server.d.ts.map +0 -1
  499. package/dist/deps/html-stream-server.js +0 -3
  500. package/dist/deps/html-stream-server.js.map +0 -1
  501. package/dist/deps/rsc.d.ts +0 -2
  502. package/dist/deps/rsc.d.ts.map +0 -1
  503. package/dist/deps/rsc.js +0 -4
  504. package/dist/deps/rsc.js.map +0 -1
  505. package/dist/deps/ssr.d.ts +0 -2
  506. package/dist/deps/ssr.d.ts.map +0 -1
  507. package/dist/deps/ssr.js +0 -3
  508. package/dist/deps/ssr.js.map +0 -1
  509. package/dist/errors.d.ts +0 -174
  510. package/dist/errors.d.ts.map +0 -1
  511. package/dist/errors.js +0 -241
  512. package/dist/errors.js.map +0 -1
  513. package/dist/handle.d.ts +0 -78
  514. package/dist/handle.d.ts.map +0 -1
  515. package/dist/handle.js +0 -82
  516. package/dist/handle.js.map +0 -1
  517. package/dist/handles/MetaTags.d.ts +0 -14
  518. package/dist/handles/MetaTags.d.ts.map +0 -1
  519. package/dist/handles/MetaTags.js +0 -136
  520. package/dist/handles/MetaTags.js.map +0 -1
  521. package/dist/handles/index.d.ts +0 -6
  522. package/dist/handles/index.d.ts.map +0 -1
  523. package/dist/handles/index.js +0 -6
  524. package/dist/handles/index.js.map +0 -1
  525. package/dist/handles/meta.d.ts +0 -39
  526. package/dist/handles/meta.d.ts.map +0 -1
  527. package/dist/handles/meta.js +0 -202
  528. package/dist/handles/meta.js.map +0 -1
  529. package/dist/host/__tests__/errors.test.d.ts +0 -2
  530. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  531. package/dist/host/__tests__/errors.test.js +0 -76
  532. package/dist/host/__tests__/errors.test.js.map +0 -1
  533. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  534. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  535. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  536. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  537. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  538. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  539. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  540. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  541. package/dist/host/__tests__/router.test.d.ts +0 -2
  542. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  543. package/dist/host/__tests__/router.test.js +0 -241
  544. package/dist/host/__tests__/router.test.js.map +0 -1
  545. package/dist/host/__tests__/testing.test.d.ts +0 -2
  546. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  547. package/dist/host/__tests__/testing.test.js +0 -64
  548. package/dist/host/__tests__/testing.test.js.map +0 -1
  549. package/dist/host/__tests__/utils.test.d.ts +0 -2
  550. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  551. package/dist/host/__tests__/utils.test.js +0 -29
  552. package/dist/host/__tests__/utils.test.js.map +0 -1
  553. package/dist/host/cookie-handler.d.ts +0 -34
  554. package/dist/host/cookie-handler.d.ts.map +0 -1
  555. package/dist/host/cookie-handler.js +0 -124
  556. package/dist/host/cookie-handler.js.map +0 -1
  557. package/dist/host/errors.d.ts +0 -56
  558. package/dist/host/errors.d.ts.map +0 -1
  559. package/dist/host/errors.js +0 -79
  560. package/dist/host/errors.js.map +0 -1
  561. package/dist/host/index.d.ts +0 -29
  562. package/dist/host/index.d.ts.map +0 -1
  563. package/dist/host/index.js +0 -32
  564. package/dist/host/index.js.map +0 -1
  565. package/dist/host/pattern-matcher.d.ts +0 -36
  566. package/dist/host/pattern-matcher.d.ts.map +0 -1
  567. package/dist/host/pattern-matcher.js +0 -172
  568. package/dist/host/pattern-matcher.js.map +0 -1
  569. package/dist/host/router.d.ts +0 -26
  570. package/dist/host/router.d.ts.map +0 -1
  571. package/dist/host/router.js +0 -218
  572. package/dist/host/router.js.map +0 -1
  573. package/dist/host/testing.d.ts +0 -36
  574. package/dist/host/testing.d.ts.map +0 -1
  575. package/dist/host/testing.js +0 -55
  576. package/dist/host/testing.js.map +0 -1
  577. package/dist/host/types.d.ts +0 -115
  578. package/dist/host/types.d.ts.map +0 -1
  579. package/dist/host/types.js +0 -7
  580. package/dist/host/types.js.map +0 -1
  581. package/dist/host/utils.d.ts +0 -21
  582. package/dist/host/utils.d.ts.map +0 -1
  583. package/dist/host/utils.js +0 -23
  584. package/dist/host/utils.js.map +0 -1
  585. package/dist/href-client.d.ts +0 -131
  586. package/dist/href-client.d.ts.map +0 -1
  587. package/dist/href-client.js +0 -64
  588. package/dist/href-client.js.map +0 -1
  589. package/dist/href-context.d.ts +0 -29
  590. package/dist/href-context.d.ts.map +0 -1
  591. package/dist/href-context.js +0 -21
  592. package/dist/href-context.js.map +0 -1
  593. package/dist/index.d.ts +0 -73
  594. package/dist/index.d.ts.map +0 -1
  595. package/dist/index.js +0 -91
  596. package/dist/index.js.map +0 -1
  597. package/dist/index.rsc.d.ts +0 -32
  598. package/dist/index.rsc.d.ts.map +0 -1
  599. package/dist/index.rsc.js +0 -40
  600. package/dist/index.rsc.js.map +0 -1
  601. package/dist/internal-debug.d.ts +0 -2
  602. package/dist/internal-debug.d.ts.map +0 -1
  603. package/dist/internal-debug.js +0 -5
  604. package/dist/internal-debug.js.map +0 -1
  605. package/dist/loader.d.ts +0 -14
  606. package/dist/loader.d.ts.map +0 -1
  607. package/dist/loader.js +0 -20
  608. package/dist/loader.js.map +0 -1
  609. package/dist/loader.rsc.d.ts +0 -19
  610. package/dist/loader.rsc.d.ts.map +0 -1
  611. package/dist/loader.rsc.js +0 -99
  612. package/dist/loader.rsc.js.map +0 -1
  613. package/dist/network-error-thrower.d.ts +0 -17
  614. package/dist/network-error-thrower.d.ts.map +0 -1
  615. package/dist/network-error-thrower.js +0 -14
  616. package/dist/network-error-thrower.js.map +0 -1
  617. package/dist/outlet-context.d.ts +0 -13
  618. package/dist/outlet-context.d.ts.map +0 -1
  619. package/dist/outlet-context.js +0 -3
  620. package/dist/outlet-context.js.map +0 -1
  621. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  622. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  623. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  624. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  625. package/dist/prerender/param-hash.d.ts +0 -16
  626. package/dist/prerender/param-hash.d.ts.map +0 -1
  627. package/dist/prerender/param-hash.js +0 -36
  628. package/dist/prerender/param-hash.js.map +0 -1
  629. package/dist/prerender/store.d.ts +0 -38
  630. package/dist/prerender/store.d.ts.map +0 -1
  631. package/dist/prerender/store.js +0 -61
  632. package/dist/prerender/store.js.map +0 -1
  633. package/dist/prerender.d.ts +0 -66
  634. package/dist/prerender.d.ts.map +0 -1
  635. package/dist/prerender.js +0 -57
  636. package/dist/prerender.js.map +0 -1
  637. package/dist/reverse.d.ts +0 -196
  638. package/dist/reverse.d.ts.map +0 -1
  639. package/dist/reverse.js +0 -78
  640. package/dist/reverse.js.map +0 -1
  641. package/dist/root-error-boundary.d.ts +0 -33
  642. package/dist/root-error-boundary.d.ts.map +0 -1
  643. package/dist/root-error-boundary.js +0 -165
  644. package/dist/root-error-boundary.js.map +0 -1
  645. package/dist/route-content-wrapper.d.ts +0 -46
  646. package/dist/route-content-wrapper.d.ts.map +0 -1
  647. package/dist/route-content-wrapper.js +0 -77
  648. package/dist/route-content-wrapper.js.map +0 -1
  649. package/dist/route-definition.d.ts +0 -421
  650. package/dist/route-definition.d.ts.map +0 -1
  651. package/dist/route-definition.js +0 -868
  652. package/dist/route-definition.js.map +0 -1
  653. package/dist/route-map-builder.d.ts +0 -155
  654. package/dist/route-map-builder.d.ts.map +0 -1
  655. package/dist/route-map-builder.js +0 -237
  656. package/dist/route-map-builder.js.map +0 -1
  657. package/dist/route-types.d.ts +0 -165
  658. package/dist/route-types.d.ts.map +0 -1
  659. package/dist/route-types.js +0 -7
  660. package/dist/route-types.js.map +0 -1
  661. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  662. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  663. package/dist/router/__tests__/handler-context.test.js +0 -65
  664. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  665. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  666. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  667. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  668. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  669. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  670. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  671. package/dist/router/__tests__/match-context.test.js +0 -92
  672. package/dist/router/__tests__/match-context.test.js.map +0 -1
  673. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  674. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  675. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  676. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  677. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  678. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  679. package/dist/router/__tests__/match-result.test.js +0 -457
  680. package/dist/router/__tests__/match-result.test.js.map +0 -1
  681. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  682. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  683. package/dist/router/__tests__/on-error.test.js +0 -678
  684. package/dist/router/__tests__/on-error.test.js.map +0 -1
  685. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  686. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  687. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  688. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  689. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  690. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  691. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  692. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  693. package/dist/router/error-handling.d.ts +0 -77
  694. package/dist/router/error-handling.d.ts.map +0 -1
  695. package/dist/router/error-handling.js +0 -202
  696. package/dist/router/error-handling.js.map +0 -1
  697. package/dist/router/handler-context.d.ts +0 -20
  698. package/dist/router/handler-context.d.ts.map +0 -1
  699. package/dist/router/handler-context.js +0 -198
  700. package/dist/router/handler-context.js.map +0 -1
  701. package/dist/router/intercept-resolution.d.ts +0 -66
  702. package/dist/router/intercept-resolution.d.ts.map +0 -1
  703. package/dist/router/intercept-resolution.js +0 -246
  704. package/dist/router/intercept-resolution.js.map +0 -1
  705. package/dist/router/loader-resolution.d.ts +0 -64
  706. package/dist/router/loader-resolution.d.ts.map +0 -1
  707. package/dist/router/loader-resolution.js +0 -284
  708. package/dist/router/loader-resolution.js.map +0 -1
  709. package/dist/router/logging.d.ts +0 -15
  710. package/dist/router/logging.d.ts.map +0 -1
  711. package/dist/router/logging.js +0 -99
  712. package/dist/router/logging.js.map +0 -1
  713. package/dist/router/manifest.d.ts +0 -22
  714. package/dist/router/manifest.d.ts.map +0 -1
  715. package/dist/router/manifest.js +0 -181
  716. package/dist/router/manifest.js.map +0 -1
  717. package/dist/router/match-api.d.ts +0 -35
  718. package/dist/router/match-api.d.ts.map +0 -1
  719. package/dist/router/match-api.js +0 -406
  720. package/dist/router/match-api.js.map +0 -1
  721. package/dist/router/match-context.d.ts +0 -206
  722. package/dist/router/match-context.d.ts.map +0 -1
  723. package/dist/router/match-context.js +0 -17
  724. package/dist/router/match-context.js.map +0 -1
  725. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  726. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  727. package/dist/router/match-middleware/background-revalidation.js +0 -75
  728. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  729. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  730. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  731. package/dist/router/match-middleware/cache-lookup.js +0 -257
  732. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  733. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  734. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  735. package/dist/router/match-middleware/cache-store.js +0 -108
  736. package/dist/router/match-middleware/cache-store.js.map +0 -1
  737. package/dist/router/match-middleware/index.d.ts +0 -81
  738. package/dist/router/match-middleware/index.d.ts.map +0 -1
  739. package/dist/router/match-middleware/index.js +0 -80
  740. package/dist/router/match-middleware/index.js.map +0 -1
  741. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  742. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  743. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  744. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  745. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  746. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  747. package/dist/router/match-middleware/segment-resolution.js +0 -53
  748. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  749. package/dist/router/match-pipelines.d.ts +0 -147
  750. package/dist/router/match-pipelines.d.ts.map +0 -1
  751. package/dist/router/match-pipelines.js +0 -82
  752. package/dist/router/match-pipelines.js.map +0 -1
  753. package/dist/router/match-result.d.ts +0 -126
  754. package/dist/router/match-result.d.ts.map +0 -1
  755. package/dist/router/match-result.js +0 -93
  756. package/dist/router/match-result.js.map +0 -1
  757. package/dist/router/metrics.d.ts +0 -20
  758. package/dist/router/metrics.d.ts.map +0 -1
  759. package/dist/router/metrics.js +0 -47
  760. package/dist/router/metrics.js.map +0 -1
  761. package/dist/router/middleware.d.ts +0 -249
  762. package/dist/router/middleware.d.ts.map +0 -1
  763. package/dist/router/middleware.js +0 -434
  764. package/dist/router/middleware.js.map +0 -1
  765. package/dist/router/middleware.test.d.ts +0 -2
  766. package/dist/router/middleware.test.d.ts.map +0 -1
  767. package/dist/router/middleware.test.js +0 -816
  768. package/dist/router/middleware.test.js.map +0 -1
  769. package/dist/router/pattern-matching.d.ts +0 -149
  770. package/dist/router/pattern-matching.d.ts.map +0 -1
  771. package/dist/router/pattern-matching.js +0 -349
  772. package/dist/router/pattern-matching.js.map +0 -1
  773. package/dist/router/revalidation.d.ts +0 -44
  774. package/dist/router/revalidation.d.ts.map +0 -1
  775. package/dist/router/revalidation.js +0 -147
  776. package/dist/router/revalidation.js.map +0 -1
  777. package/dist/router/router-context.d.ts +0 -135
  778. package/dist/router/router-context.d.ts.map +0 -1
  779. package/dist/router/router-context.js +0 -36
  780. package/dist/router/router-context.js.map +0 -1
  781. package/dist/router/segment-resolution.d.ts +0 -127
  782. package/dist/router/segment-resolution.d.ts.map +0 -1
  783. package/dist/router/segment-resolution.js +0 -919
  784. package/dist/router/segment-resolution.js.map +0 -1
  785. package/dist/router/trie-matching.d.ts +0 -40
  786. package/dist/router/trie-matching.d.ts.map +0 -1
  787. package/dist/router/trie-matching.js +0 -127
  788. package/dist/router/trie-matching.js.map +0 -1
  789. package/dist/router/types.d.ts +0 -136
  790. package/dist/router/types.d.ts.map +0 -1
  791. package/dist/router/types.js +0 -7
  792. package/dist/router/types.js.map +0 -1
  793. package/dist/router.d.ts +0 -753
  794. package/dist/router.d.ts.map +0 -1
  795. package/dist/router.gen.d.ts +0 -6
  796. package/dist/router.gen.d.ts.map +0 -1
  797. package/dist/router.gen.js +0 -6
  798. package/dist/router.gen.js.map +0 -1
  799. package/dist/router.js +0 -1304
  800. package/dist/router.js.map +0 -1
  801. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  802. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  803. package/dist/rsc/__tests__/helpers.test.js +0 -140
  804. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  805. package/dist/rsc/handler.d.ts +0 -45
  806. package/dist/rsc/handler.d.ts.map +0 -1
  807. package/dist/rsc/handler.js +0 -1172
  808. package/dist/rsc/handler.js.map +0 -1
  809. package/dist/rsc/helpers.d.ts +0 -16
  810. package/dist/rsc/helpers.d.ts.map +0 -1
  811. package/dist/rsc/helpers.js +0 -55
  812. package/dist/rsc/helpers.js.map +0 -1
  813. package/dist/rsc/index.d.ts +0 -22
  814. package/dist/rsc/index.d.ts.map +0 -1
  815. package/dist/rsc/index.js +0 -23
  816. package/dist/rsc/index.js.map +0 -1
  817. package/dist/rsc/nonce.d.ts +0 -9
  818. package/dist/rsc/nonce.d.ts.map +0 -1
  819. package/dist/rsc/nonce.js +0 -18
  820. package/dist/rsc/nonce.js.map +0 -1
  821. package/dist/rsc/types.d.ts +0 -206
  822. package/dist/rsc/types.d.ts.map +0 -1
  823. package/dist/rsc/types.js +0 -8
  824. package/dist/rsc/types.js.map +0 -1
  825. package/dist/search-params.d.ts +0 -103
  826. package/dist/search-params.d.ts.map +0 -1
  827. package/dist/search-params.js +0 -74
  828. package/dist/search-params.js.map +0 -1
  829. package/dist/segment-system.d.ts +0 -75
  830. package/dist/segment-system.d.ts.map +0 -1
  831. package/dist/segment-system.js +0 -336
  832. package/dist/segment-system.js.map +0 -1
  833. package/dist/server/context.d.ts +0 -245
  834. package/dist/server/context.d.ts.map +0 -1
  835. package/dist/server/context.js +0 -197
  836. package/dist/server/context.js.map +0 -1
  837. package/dist/server/fetchable-loader-store.d.ts +0 -18
  838. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  839. package/dist/server/fetchable-loader-store.js +0 -18
  840. package/dist/server/fetchable-loader-store.js.map +0 -1
  841. package/dist/server/handle-store.d.ts +0 -85
  842. package/dist/server/handle-store.d.ts.map +0 -1
  843. package/dist/server/handle-store.js +0 -142
  844. package/dist/server/handle-store.js.map +0 -1
  845. package/dist/server/loader-registry.d.ts +0 -55
  846. package/dist/server/loader-registry.d.ts.map +0 -1
  847. package/dist/server/loader-registry.js +0 -132
  848. package/dist/server/loader-registry.js.map +0 -1
  849. package/dist/server/request-context.d.ts +0 -226
  850. package/dist/server/request-context.d.ts.map +0 -1
  851. package/dist/server/request-context.js +0 -290
  852. package/dist/server/request-context.js.map +0 -1
  853. package/dist/server/root-layout.d.ts +0 -4
  854. package/dist/server/root-layout.d.ts.map +0 -1
  855. package/dist/server/root-layout.js +0 -5
  856. package/dist/server/root-layout.js.map +0 -1
  857. package/dist/server.d.ts +0 -15
  858. package/dist/server.d.ts.map +0 -1
  859. package/dist/server.js +0 -20
  860. package/dist/server.js.map +0 -1
  861. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  862. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  863. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  864. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  865. package/dist/ssr/index.d.ts +0 -98
  866. package/dist/ssr/index.d.ts.map +0 -1
  867. package/dist/ssr/index.js +0 -158
  868. package/dist/ssr/index.js.map +0 -1
  869. package/dist/static-handler.d.ts +0 -50
  870. package/dist/static-handler.d.ts.map +0 -1
  871. package/dist/static-handler.gen.d.ts +0 -5
  872. package/dist/static-handler.gen.d.ts.map +0 -1
  873. package/dist/static-handler.gen.js +0 -5
  874. package/dist/static-handler.gen.js.map +0 -1
  875. package/dist/static-handler.js +0 -29
  876. package/dist/static-handler.js.map +0 -1
  877. package/dist/theme/ThemeProvider.d.ts +0 -20
  878. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  879. package/dist/theme/ThemeProvider.js +0 -240
  880. package/dist/theme/ThemeProvider.js.map +0 -1
  881. package/dist/theme/ThemeScript.d.ts +0 -48
  882. package/dist/theme/ThemeScript.d.ts.map +0 -1
  883. package/dist/theme/ThemeScript.js +0 -13
  884. package/dist/theme/ThemeScript.js.map +0 -1
  885. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  886. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  887. package/dist/theme/__tests__/theme.test.js +0 -103
  888. package/dist/theme/__tests__/theme.test.js.map +0 -1
  889. package/dist/theme/constants.d.ts +0 -29
  890. package/dist/theme/constants.d.ts.map +0 -1
  891. package/dist/theme/constants.js +0 -48
  892. package/dist/theme/constants.js.map +0 -1
  893. package/dist/theme/index.d.ts +0 -31
  894. package/dist/theme/index.d.ts.map +0 -1
  895. package/dist/theme/index.js +0 -36
  896. package/dist/theme/index.js.map +0 -1
  897. package/dist/theme/theme-context.d.ts +0 -40
  898. package/dist/theme/theme-context.d.ts.map +0 -1
  899. package/dist/theme/theme-context.js +0 -60
  900. package/dist/theme/theme-context.js.map +0 -1
  901. package/dist/theme/theme-script.d.ts +0 -27
  902. package/dist/theme/theme-script.d.ts.map +0 -1
  903. package/dist/theme/theme-script.js +0 -147
  904. package/dist/theme/theme-script.js.map +0 -1
  905. package/dist/theme/types.d.ts +0 -163
  906. package/dist/theme/types.d.ts.map +0 -1
  907. package/dist/theme/types.js +0 -11
  908. package/dist/theme/types.js.map +0 -1
  909. package/dist/theme/use-theme.d.ts +0 -12
  910. package/dist/theme/use-theme.d.ts.map +0 -1
  911. package/dist/theme/use-theme.js +0 -40
  912. package/dist/theme/use-theme.js.map +0 -1
  913. package/dist/types.d.ts +0 -1479
  914. package/dist/types.d.ts.map +0 -1
  915. package/dist/types.js +0 -10
  916. package/dist/types.js.map +0 -1
  917. package/dist/urls.d.ts +0 -441
  918. package/dist/urls.d.ts.map +0 -1
  919. package/dist/urls.gen.d.ts +0 -8
  920. package/dist/urls.gen.d.ts.map +0 -1
  921. package/dist/urls.gen.js +0 -8
  922. package/dist/urls.gen.js.map +0 -1
  923. package/dist/urls.js +0 -443
  924. package/dist/urls.js.map +0 -1
  925. package/dist/use-loader.d.ts +0 -127
  926. package/dist/use-loader.d.ts.map +0 -1
  927. package/dist/use-loader.js +0 -237
  928. package/dist/use-loader.js.map +0 -1
  929. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  930. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  931. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  932. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  933. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  934. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  935. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  936. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  937. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  938. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  939. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  940. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  941. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  942. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  943. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  944. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  945. package/dist/vite/ast-handler-extract.d.ts +0 -49
  946. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  947. package/dist/vite/ast-handler-extract.js +0 -249
  948. package/dist/vite/ast-handler-extract.js.map +0 -1
  949. package/dist/vite/expose-action-id.d.ts +0 -19
  950. package/dist/vite/expose-action-id.d.ts.map +0 -1
  951. package/dist/vite/expose-action-id.js +0 -250
  952. package/dist/vite/expose-action-id.js.map +0 -1
  953. package/dist/vite/expose-id-utils.d.ts +0 -69
  954. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  955. package/dist/vite/expose-id-utils.js +0 -289
  956. package/dist/vite/expose-id-utils.js.map +0 -1
  957. package/dist/vite/expose-internal-ids.d.ts +0 -22
  958. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  959. package/dist/vite/expose-internal-ids.js +0 -886
  960. package/dist/vite/expose-internal-ids.js.map +0 -1
  961. package/dist/vite/index.d.ts +0 -149
  962. package/dist/vite/index.d.ts.map +0 -1
  963. package/dist/vite/index.js.map +0 -1
  964. package/dist/vite/index.named-routes.gen.ts +0 -103
  965. package/dist/vite/package-resolution.d.ts +0 -43
  966. package/dist/vite/package-resolution.d.ts.map +0 -1
  967. package/dist/vite/package-resolution.js +0 -112
  968. package/dist/vite/package-resolution.js.map +0 -1
  969. package/dist/vite/virtual-entries.d.ts +0 -25
  970. package/dist/vite/virtual-entries.d.ts.map +0 -1
  971. package/dist/vite/virtual-entries.js +0 -110
  972. package/dist/vite/virtual-entries.js.map +0 -1
@@ -10,14 +10,19 @@ import type { Plugin } from "vite";
10
10
  import { createServer as createViteServer } from "vite";
11
11
  import { resolve } from "node:path";
12
12
  import { readFileSync } from "node:fs";
13
+ import { createRequire, register } from "node:module";
14
+ import { pathToFileURL } from "node:url";
13
15
  import {
14
16
  formatNestedRouterConflictError,
15
17
  findNestedRouterConflict,
16
18
  findRouterFiles,
17
- createScanFilter,
18
19
  } from "../build/generate-route-types.js";
19
20
  import { createVersionPlugin } from "./plugins/version-plugin.js";
20
21
  import { createVirtualStubPlugin } from "./plugins/virtual-stub-plugin.js";
22
+ import {
23
+ BUILD_ENV_GLOBAL_KEY,
24
+ createCloudflareProtocolStubPlugin,
25
+ } from "./plugins/cloudflare-protocol-stub.js";
21
26
  import {
22
27
  exposeInternalIds,
23
28
  exposeRouterId,
@@ -43,9 +48,56 @@ import {
43
48
  } from "./discovery/virtual-module-codegen.js";
44
49
  import { postprocessBundle } from "./discovery/bundle-postprocess.js";
45
50
  import { resetStagedBuildAssets } from "./utils/prerender-utils.js";
51
+ import { createRangoDebugger, timed, timedSync } from "./debug.js";
52
+
53
+ const debugDiscovery = createRangoDebugger("rango:discovery");
54
+ const debugRoutes = createRangoDebugger("rango:routes");
46
55
 
47
56
  export { VIRTUAL_ROUTES_MANIFEST_ID };
48
57
 
58
+ // ============================================================================
59
+ // Node ESM Loader Hook Registration
60
+ // ============================================================================
61
+
62
+ /**
63
+ * Registers a Node ESM loader hook that resolves `cloudflare:*` specifiers
64
+ * to a data: URL stub. Defense-in-depth alongside the Vite transform in
65
+ * `cloudflare-protocol-stub.ts`:
66
+ *
67
+ * - The Vite transform catches `cloudflare:*` imports in modules that flow
68
+ * through Vite's plugin pipeline. That's the vast majority of cases.
69
+ * - The Node loader catches imports in modules that Vite/Rollup externalize
70
+ * (e.g. the `partyserver` package, which has a top-level
71
+ * `import { DurableObject, env } from "cloudflare:workers"` and ships
72
+ * shapes plugin-rsc marks as external). Externalized modules are loaded
73
+ * via Node's native ESM loader, which rejects URL schemes.
74
+ *
75
+ * Registration is process-global and one-shot. The hook only intercepts
76
+ * `cloudflare:*` specifiers; everything else passes through via
77
+ * `nextResolve()`. It runs in a separate worker thread (Node ESM loader
78
+ * architecture), so it can't read the `globalThis[BUILD_ENV_GLOBAL_KEY]`
79
+ * bridge that the Vite transform uses — the stubs served here always
80
+ * return `env = {}`. That's fine because externalized libraries don't
81
+ * typically access `env` at module top level; user source (where real
82
+ * `env` matters at build time) flows through the Vite transform.
83
+ */
84
+ let loaderHookRegistered = false;
85
+ function ensureCloudflareProtocolLoaderRegistered(): void {
86
+ if (loaderHookRegistered) return;
87
+ loaderHookRegistered = true;
88
+ try {
89
+ register(
90
+ new URL("./plugins/cloudflare-protocol-loader-hook.mjs", import.meta.url),
91
+ );
92
+ } catch (err: any) {
93
+ // register() requires Node 18.19+ / 20.6+. Older Node still has the
94
+ // Vite transform as primary defense.
95
+ console.warn(
96
+ `[rsc-router] Could not register Node ESM loader hook for cloudflare:* imports (${err?.message ?? err}). Falling back to Vite transform only.`,
97
+ );
98
+ }
99
+ }
100
+
49
101
  // ============================================================================
50
102
  // Temp Server Factory
51
103
  // ============================================================================
@@ -65,6 +117,11 @@ async function createTempRscServer(
65
117
  state: DiscoveryState,
66
118
  options: { forceBuild?: boolean; cacheDir?: string } = {},
67
119
  ) {
120
+ // Install the Node ESM loader hook before any module evaluation so
121
+ // `cloudflare:*` specifiers in externalized/loader-delegated modules
122
+ // (e.g. packages plugin-rsc marks as external) resolve to stubs
123
+ // instead of crashing Node's native loader.
124
+ ensureCloudflareProtocolLoaderRegistered();
68
125
  const { default: rsc } = await import("@vitejs/plugin-rsc");
69
126
  return createViteServer({
70
127
  root: state.projectRoot,
@@ -87,6 +144,7 @@ async function createTempRscServer(
87
144
  ...(options.forceBuild ? [hashClientRefs(state.projectRoot)] : []),
88
145
  createVersionPlugin(),
89
146
  createVirtualStubPlugin(),
147
+ createCloudflareProtocolStubPlugin(),
90
148
  // Dev prerender must use dev-mode IDs (path-based) to match the workerd
91
149
  // runtime. forceBuild produces hashed IDs for production bundle consistency.
92
150
  exposeInternalIds(options.forceBuild ? { forceBuild: true } : undefined),
@@ -95,6 +153,111 @@ async function createTempRscServer(
95
153
  });
96
154
  }
97
155
 
156
+ // ============================================================================
157
+ // Build-Time Env Resolution
158
+ // ============================================================================
159
+
160
+ import type {
161
+ BuildEnvOption,
162
+ BuildEnvFactoryContext,
163
+ BuildEnvResult,
164
+ } from "./plugin-types.js";
165
+
166
+ /**
167
+ * Resolve the buildEnv option into a concrete { env, dispose? } result.
168
+ * Handles all four input shapes: false, "auto", factory, plain object.
169
+ */
170
+ async function resolveBuildEnv(
171
+ option: BuildEnvOption | undefined,
172
+ factoryCtx: BuildEnvFactoryContext,
173
+ ): Promise<BuildEnvResult | null> {
174
+ if (!option) return null;
175
+
176
+ if (option === "auto") {
177
+ if (factoryCtx.preset !== "cloudflare") {
178
+ throw new Error(
179
+ '[rsc-router] buildEnv: "auto" is only supported with preset: "cloudflare". ' +
180
+ "Use a factory function or plain object for other presets.",
181
+ );
182
+ }
183
+ try {
184
+ // Resolve wrangler from the user's project root (not the router package)
185
+ const userRequire = createRequire(
186
+ resolve(factoryCtx.root, "package.json"),
187
+ );
188
+ const wranglerPath = userRequire.resolve("wrangler");
189
+ const { getPlatformProxy } = (await import(
190
+ pathToFileURL(wranglerPath).href
191
+ )) as {
192
+ getPlatformProxy: (opts?: any) => Promise<any>;
193
+ };
194
+ const proxy = await getPlatformProxy();
195
+ return {
196
+ env: proxy.env as Record<string, unknown>,
197
+ dispose: proxy.dispose,
198
+ };
199
+ } catch (err: any) {
200
+ throw new Error(
201
+ '[rsc-router] buildEnv: "auto" requires wrangler to be installed.\n' +
202
+ `Install it with: pnpm add -D wrangler\n${err.message}`,
203
+ );
204
+ }
205
+ }
206
+
207
+ if (typeof option === "function") {
208
+ return await option(factoryCtx);
209
+ }
210
+
211
+ // Plain object
212
+ return { env: option };
213
+ }
214
+
215
+ /**
216
+ * Acquire build-time env bindings and store on discovery state.
217
+ * Returns true if env was acquired, false if buildEnv is disabled.
218
+ */
219
+ async function acquireBuildEnv(
220
+ s: DiscoveryState,
221
+ command: "serve" | "build",
222
+ mode: string,
223
+ ): Promise<boolean> {
224
+ const option = s.opts?.buildEnv;
225
+ if (!option) return false;
226
+
227
+ const result = await resolveBuildEnv(option, {
228
+ root: s.projectRoot,
229
+ mode,
230
+ command,
231
+ preset: s.opts?.preset ?? "node",
232
+ });
233
+ if (!result) return false;
234
+
235
+ s.resolvedBuildEnv = result.env;
236
+ s.buildEnvDispose = result.dispose ?? null;
237
+ // Bridge the resolved env into `cloudflare:workers`'s stubbed `env`
238
+ // export so user code that does `import { env } from "cloudflare:workers"`
239
+ // sees the real bindings proxy during discovery + prerender instead of
240
+ // an empty object. The stub reads this global at module-evaluation time.
241
+ (globalThis as Record<string, unknown>)[BUILD_ENV_GLOBAL_KEY] = result.env;
242
+ return true;
243
+ }
244
+
245
+ /**
246
+ * Release build-time env resources and clear state.
247
+ */
248
+ async function releaseBuildEnv(s: DiscoveryState): Promise<void> {
249
+ if (s.buildEnvDispose) {
250
+ try {
251
+ await s.buildEnvDispose();
252
+ } catch (err: any) {
253
+ console.warn(`[rsc-router] buildEnv dispose failed: ${err.message}`);
254
+ }
255
+ s.buildEnvDispose = null;
256
+ }
257
+ s.resolvedBuildEnv = undefined;
258
+ delete (globalThis as Record<string, unknown>)[BUILD_ENV_GLOBAL_KEY];
259
+ }
260
+
98
261
  /**
99
262
  * Plugin that discovers router instances at dev/build time via the RSC environment.
100
263
  *
@@ -112,6 +275,8 @@ export function createRouterDiscoveryPlugin(
112
275
  opts?: PluginOptions,
113
276
  ): Plugin {
114
277
  const s = createDiscoveryState(entryPath, opts);
278
+ let viteCommand: "serve" | "build" = "build";
279
+ let viteMode = "production";
115
280
 
116
281
  return {
117
282
  name: "@rangojs/router:discovery",
@@ -122,32 +287,20 @@ export function createRouterDiscoveryPlugin(
122
287
  __RANGO_DEBUG__: JSON.stringify(!!process.env.INTERNAL_RANGO_DEBUG),
123
288
  },
124
289
  };
125
- if (opts?.enableBuildPrerender) {
126
- config.environments = {
127
- rsc: {
128
- build: {
129
- rollupOptions: {
130
- output: {
131
- manualChunks(id: string) {
132
- if (s.resolvedPrerenderModules?.has(id)) {
133
- return "__prerender-handlers";
134
- }
135
- if (s.resolvedStaticModules?.has(id)) {
136
- return "__static-handlers";
137
- }
138
- },
139
- },
140
- },
141
- },
142
- },
143
- };
144
- }
290
+ // Prerender/static handler modules are bundled naturally with the
291
+ // rest of the RSC entry. A previous design forced them into dedicated
292
+ // __prerender-handlers / __static-handlers chunks via manualChunks,
293
+ // but Rollup hoisted all shared dependencies into those chunks,
294
+ // inflating them to ~1 MB with active runtime code. Handler code is
295
+ // evicted in closeBundle regardless of which chunk it lands in.
145
296
  return config;
146
297
  },
147
298
 
148
299
  configResolved(config) {
149
300
  s.projectRoot = config.root;
150
301
  s.isBuildMode = config.command === "build";
302
+ viteCommand = config.command as "serve" | "build";
303
+ viteMode = config.mode;
151
304
  // Capture user's resolve aliases for the temp server
152
305
  s.userResolveAlias = config.resolve.alias;
153
306
  // Node preset: pick up auto-discovered router path from the config() hook.
@@ -168,13 +321,6 @@ export function createRouterDiscoveryPlugin(
168
321
  s.resolvedEntryPath = entries[0];
169
322
  }
170
323
  }
171
- // Compile include/exclude patterns into a scan filter
172
- if (opts?.include || opts?.exclude) {
173
- s.scanFilter = createScanFilter(s.projectRoot, {
174
- include: opts.include,
175
- exclude: opts.exclude,
176
- });
177
- }
178
324
  // Generate combined named-routes.gen.ts from static source parsing.
179
325
  // Runs before the dev server starts so the gen file exists immediately for IDE.
180
326
  // In build mode, the runtime discovery in buildStart produces the definitive
@@ -225,12 +371,13 @@ export function createRouterDiscoveryPlugin(
225
371
  let prerenderTempServer: any = null;
226
372
  let prerenderNodeRegistry: Map<string, any> | null = null;
227
373
 
228
- // Clean up the temporary server when the dev server shuts down
374
+ // Clean up the temporary server and build env when the dev server shuts down
229
375
  server.httpServer?.on("close", () => {
230
376
  if (prerenderTempServer) {
231
377
  prerenderTempServer.close().catch(() => {});
232
378
  prerenderTempServer = null;
233
379
  }
380
+ releaseBuildEnv(s).catch(() => {});
234
381
  });
235
382
 
236
383
  async function getOrCreateTempServer(): Promise<any | null> {
@@ -260,20 +407,35 @@ export function createRouterDiscoveryPlugin(
260
407
  }
261
408
 
262
409
  const discover = async () => {
410
+ const discoverStart = performance.now();
263
411
  const rscEnv = (server.environments as any)?.rsc;
264
412
  if (!rscEnv?.runner) {
265
413
  // Cloudflare dev: no module runner available (workerd-based RSC env).
266
414
  // Set devServerOrigin so the virtual module can inject __PRERENDER_DEV_URL
267
415
  // for on-demand prerender via the /__rsc_prerender endpoint.
416
+ debugDiscovery?.("dev: no rsc runner (cloudflare path)");
268
417
  s.devServerOrigin = getDevServerOrigin();
269
418
 
270
419
  // Create a temp Node.js server to run runtime discovery and generate
271
420
  // named route types (static parser can't resolve factory calls).
272
421
  try {
273
- const tempRscEnv = await getOrCreateTempServer();
422
+ // Acquire build-time env bindings for dev prerender
423
+ await timed(debugDiscovery, "acquireBuildEnv", () =>
424
+ acquireBuildEnv(s, viteCommand, viteMode),
425
+ );
426
+
427
+ const tempRscEnv = await timed(
428
+ debugDiscovery,
429
+ "getOrCreateTempServer",
430
+ () => getOrCreateTempServer(),
431
+ );
274
432
  if (tempRscEnv) {
275
- await discoverRouters(s, tempRscEnv);
276
- writeRouteTypesFiles(s);
433
+ await timed(debugDiscovery, "discoverRouters (cloudflare)", () =>
434
+ discoverRouters(s, tempRscEnv),
435
+ );
436
+ timedSync(debugDiscovery, "writeRouteTypesFiles", () =>
437
+ writeRouteTypesFiles(s),
438
+ );
277
439
  }
278
440
  } catch (err: any) {
279
441
  console.warn(
@@ -281,21 +443,35 @@ export function createRouterDiscoveryPlugin(
281
443
  );
282
444
  }
283
445
 
446
+ debugDiscovery?.(
447
+ "dev discovery done (%sms)",
448
+ (performance.now() - discoverStart).toFixed(1),
449
+ );
284
450
  resolveDiscovery!();
285
451
  return;
286
452
  }
287
453
 
288
454
  try {
455
+ // Acquire build-time env bindings for dev prerender (Node.js path)
456
+ debugDiscovery?.("dev: node path start");
457
+ await timed(debugDiscovery, "acquireBuildEnv", () =>
458
+ acquireBuildEnv(s, viteCommand, viteMode),
459
+ );
460
+
289
461
  // Set the readiness gate BEFORE discovery so early requests
290
462
  // block until manifest is populated
291
- const serverMod = await rscEnv.runner.import(
292
- "@rangojs/router/server",
463
+ const serverMod = await timed(
464
+ debugDiscovery,
465
+ "import @rangojs/router/server",
466
+ () => rscEnv.runner.import("@rangojs/router/server"),
293
467
  );
294
468
  if (serverMod?.setManifestReadyPromise) {
295
469
  serverMod.setManifestReadyPromise(discoveryPromise);
296
470
  }
297
471
 
298
- await discoverRouters(s, rscEnv);
472
+ await timed(debugDiscovery, "discoverRouters", () =>
473
+ discoverRouters(s, rscEnv),
474
+ );
299
475
 
300
476
  // Store server origin for dev prerender endpoint (virtual module injection)
301
477
  s.devServerOrigin = getDevServerOrigin();
@@ -305,15 +481,23 @@ export function createRouterDiscoveryPlugin(
305
481
  // routes (e.g. Array.from loops) that the static parser cannot see.
306
482
  // writeRouteTypesFiles() only writes when content changes, so this
307
483
  // won't cause unnecessary HMR triggers.
308
- writeRouteTypesFiles(s);
484
+ timedSync(debugDiscovery, "writeRouteTypesFiles", () =>
485
+ writeRouteTypesFiles(s),
486
+ );
309
487
 
310
488
  // Populate the route map and per-router data in the RSC env
311
- await propagateDiscoveryState(rscEnv);
489
+ await timed(debugDiscovery, "propagateDiscoveryState", () =>
490
+ propagateDiscoveryState(rscEnv),
491
+ );
312
492
  } catch (err: any) {
313
493
  console.warn(
314
494
  `[rsc-router] Router discovery failed: ${err.message}\n${err.stack}`,
315
495
  );
316
496
  } finally {
497
+ debugDiscovery?.(
498
+ "dev discovery done (%sms)",
499
+ (performance.now() - discoverStart).toFixed(1),
500
+ );
317
501
  resolveDiscovery!();
318
502
  }
319
503
  };
@@ -390,9 +574,31 @@ export function createRouterDiscoveryPlugin(
390
574
  return;
391
575
  }
392
576
 
393
- // Prefer the main server's registry (Node.js preset: module runner available).
394
- // Fall back to a temp server for Cloudflare where the main RSC env uses workerd.
395
- let registry = mainRegistry;
577
+ // Import the user's entry module to force re-evaluation of any
578
+ // HMR-invalidated modules in the chain (entry router urls handlers).
579
+ // This ensures createRouter() re-runs with updated handler code before
580
+ // we read RouterRegistry. Without this, edits to prerender handler files
581
+ // produce stale content because the old router instance remains registered.
582
+ const rscEnv = (server.environments as any)?.rsc;
583
+ let registry: Map<string, any> | null = null;
584
+ if (rscEnv?.runner && s.resolvedEntryPath) {
585
+ try {
586
+ await rscEnv.runner.import(s.resolvedEntryPath);
587
+ const serverMod = await rscEnv.runner.import(
588
+ "@rangojs/router/server",
589
+ );
590
+ registry = serverMod.RouterRegistry ?? null;
591
+ } catch (err: any) {
592
+ console.warn(
593
+ `[rsc-router] Dev prerender module refresh failed: ${err.message}`,
594
+ );
595
+ res.statusCode = 500;
596
+ res.end(`Prerender handler error: ${err.message}`);
597
+ return;
598
+ }
599
+ } else {
600
+ registry = mainRegistry;
601
+ }
396
602
 
397
603
  if (!registry) {
398
604
  // No main registry: the RSC env has no module runner (Cloudflare dev).
@@ -421,6 +627,8 @@ export function createRouterDiscoveryPlugin(
421
627
  {},
422
628
  undefined,
423
629
  wantPassthrough,
630
+ s.resolvedBuildEnv,
631
+ true, // devMode: check getParams for passthrough routes
424
632
  );
425
633
  if (!result) continue;
426
634
  if (result.passthrough) continue;
@@ -499,15 +707,26 @@ export function createRouterDiscoveryPlugin(
499
707
  const rscEnv = (server.environments as any)?.rsc;
500
708
  if (!rscEnv?.runner || runtimeRediscoveryInProgress) return;
501
709
  runtimeRediscoveryInProgress = true;
710
+ const hmrStart = performance.now();
502
711
  try {
503
- await discoverRouters(s, rscEnv);
504
- writeRouteTypesFiles(s);
505
- await propagateDiscoveryState(rscEnv);
712
+ await timed(debugDiscovery, "hmr discoverRouters", () =>
713
+ discoverRouters(s, rscEnv),
714
+ );
715
+ timedSync(debugDiscovery, "hmr writeRouteTypesFiles", () =>
716
+ writeRouteTypesFiles(s),
717
+ );
718
+ await timed(debugDiscovery, "hmr propagateDiscoveryState", () =>
719
+ propagateDiscoveryState(rscEnv),
720
+ );
506
721
  } catch (err: any) {
507
722
  console.warn(
508
723
  `[rsc-router] Runtime re-discovery failed: ${err.message}`,
509
724
  );
510
725
  } finally {
726
+ debugDiscovery?.(
727
+ "hmr re-discovery done (%sms)",
728
+ (performance.now() - hmrStart).toFixed(1),
729
+ );
511
730
  runtimeRediscoveryInProgress = false;
512
731
  }
513
732
  };
@@ -605,10 +824,17 @@ export function createRouterDiscoveryPlugin(
605
824
  if (!s.isBuildMode) return;
606
825
  // Only run once across environment builds
607
826
  if (s.mergedRouteManifest !== null) return;
827
+ const buildStartTime = performance.now();
828
+ debugDiscovery?.("build: start");
608
829
  resetStagedBuildAssets(s.projectRoot);
609
830
  s.prerenderManifestEntries = null;
610
831
  s.staticManifestEntries = null;
611
832
 
833
+ // Acquire build-time env bindings if configured
834
+ await timed(debugDiscovery, "build acquireBuildEnv", () =>
835
+ acquireBuildEnv(s, viteCommand, viteMode),
836
+ );
837
+
612
838
  let tempServer: any = null;
613
839
  // Signal to user-space code (e.g. reverse.ts) that build-time discovery
614
840
  // is active. Uses globalThis because the temp server's module runner
@@ -616,7 +842,11 @@ export function createRouterDiscoveryPlugin(
616
842
  // between the vite plugin and user code loaded via runner.import().
617
843
  (globalThis as any).__rscRouterDiscoveryActive = true;
618
844
  try {
619
- tempServer = await createTempRscServer(s, { forceBuild: true });
845
+ tempServer = await timed(
846
+ debugDiscovery,
847
+ "build createTempRscServer",
848
+ () => createTempRscServer(s, { forceBuild: true }),
849
+ );
620
850
 
621
851
  const rscEnv = (tempServer.environments as any)?.rsc;
622
852
  if (!rscEnv?.runner) {
@@ -636,11 +866,15 @@ export function createRouterDiscoveryPlugin(
636
866
  s.resolvedStaticModules = tempIdsPlugin.api.staticHandlerModules;
637
867
  }
638
868
 
639
- await discoverRouters(s, rscEnv);
869
+ await timed(debugDiscovery, "build discoverRouters", () =>
870
+ discoverRouters(s, rscEnv),
871
+ );
640
872
  // Update named-routes.gen.ts from runtime discovery.
641
873
  // The runtime manifest includes dynamically generated routes
642
874
  // that the static parser cannot extract from source code.
643
- writeRouteTypesFiles(s);
875
+ timedSync(debugDiscovery, "build writeRouteTypesFiles", () =>
876
+ writeRouteTypesFiles(s),
877
+ );
644
878
  } catch (err: any) {
645
879
  // Extract the user source file from the stack trace (skip internal frames)
646
880
  const sourceFile = err.stack
@@ -665,8 +899,15 @@ export function createRouterDiscoveryPlugin(
665
899
  } finally {
666
900
  delete (globalThis as any).__rscRouterDiscoveryActive;
667
901
  if (tempServer) {
668
- await tempServer.close();
902
+ await timed(debugDiscovery, "build tempServer.close", () =>
903
+ tempServer.close(),
904
+ );
669
905
  }
906
+ await releaseBuildEnv(s);
907
+ debugDiscovery?.(
908
+ "build discovery done (%sms)",
909
+ (performance.now() - buildStartTime).toFixed(1),
910
+ );
670
911
  }
671
912
  },
672
913
 
@@ -690,19 +931,34 @@ export function createRouterDiscoveryPlugin(
690
931
  // This is critical for Cloudflare dev where the worker runs in a separate
691
932
  // Miniflare process and can only receive manifest data via the virtual module.
692
933
  if (s.discoveryDone) {
693
- await s.discoveryDone;
934
+ await timed(debugRoutes, "await discoveryDone (manifest)", () =>
935
+ Promise.resolve(s.discoveryDone),
936
+ );
694
937
  }
695
- return generateRoutesManifestModule(s);
938
+ const code = await timed(
939
+ debugRoutes,
940
+ "generateRoutesManifestModule",
941
+ () => generateRoutesManifestModule(s),
942
+ );
943
+ debugRoutes?.("manifest module emitted (%d bytes)", code?.length ?? 0);
944
+ return code;
696
945
  }
697
946
  // Per-router virtual modules: pure data exports (no side effects).
698
947
  // ensureRouterManifest() imports the module and stores the data.
699
948
  const perRouterPrefix = "\0" + VIRTUAL_ROUTES_MANIFEST_ID + "/";
700
949
  if (id.startsWith(perRouterPrefix)) {
701
950
  if (s.discoveryDone) {
702
- await s.discoveryDone;
951
+ await timed(debugRoutes, "await discoveryDone (per-router)", () =>
952
+ Promise.resolve(s.discoveryDone),
953
+ );
703
954
  }
704
955
  const routerId = id.slice(perRouterPrefix.length);
705
- return generatePerRouterModule(s, routerId);
956
+ const code = await timed(
957
+ debugRoutes,
958
+ `generatePerRouterModule ${routerId}`,
959
+ () => generatePerRouterModule(s, routerId),
960
+ );
961
+ return code;
706
962
  }
707
963
  // virtual:rsc-router/prerender-paths load handler removed
708
964
  return null;
@@ -727,33 +983,40 @@ export function createRouterDiscoveryPlugin(
727
983
  if (!s.resolvedPrerenderModules?.size && !s.resolvedStaticModules?.size)
728
984
  return;
729
985
 
986
+ // Clear maps at the start of each RSC generateBundle pass.
987
+ // Vite 6 multi-environment builds run RSC twice (analysis + production);
988
+ // clearing prevents stale/duplicate records from the analysis pass.
989
+ s.handlerChunkInfoMap.clear();
990
+ s.staticHandlerChunkInfoMap.clear();
991
+
730
992
  for (const [fileName, chunk] of Object.entries(bundle) as [
731
993
  string,
732
994
  any,
733
995
  ][]) {
734
996
  if (chunk.type !== "chunk") continue;
735
997
 
736
- // Prerender handlers chunk
737
- if (
738
- fileName.includes("__prerender-handlers") &&
739
- s.resolvedPrerenderModules?.size
740
- ) {
998
+ // Scan all chunks for handler exports (handlers may land in any chunk)
999
+ if (s.resolvedPrerenderModules?.size) {
741
1000
  const handlers = extractHandlerExportsFromChunk(
742
1001
  chunk.code,
743
1002
  s.resolvedPrerenderModules,
744
1003
  "Prerender",
745
- true,
1004
+ false,
746
1005
  );
747
1006
  if (handlers.length > 0) {
748
- s.handlerChunkInfo = { fileName, exports: handlers };
1007
+ const existing = s.handlerChunkInfoMap.get(fileName);
1008
+ if (existing) {
1009
+ existing.exports.push(...handlers);
1010
+ } else {
1011
+ s.handlerChunkInfoMap.set(fileName, {
1012
+ fileName,
1013
+ exports: handlers,
1014
+ });
1015
+ }
749
1016
  }
750
1017
  }
751
1018
 
752
- // Static handlers chunk
753
- if (
754
- fileName.includes("__static-handlers") &&
755
- s.resolvedStaticModules?.size
756
- ) {
1019
+ if (s.resolvedStaticModules?.size) {
757
1020
  const handlers = extractHandlerExportsFromChunk(
758
1021
  chunk.code,
759
1022
  s.resolvedStaticModules,
@@ -761,7 +1024,15 @@ export function createRouterDiscoveryPlugin(
761
1024
  false,
762
1025
  );
763
1026
  if (handlers.length > 0) {
764
- s.staticHandlerChunkInfo = { fileName, exports: handlers };
1027
+ const existing = s.staticHandlerChunkInfoMap.get(fileName);
1028
+ if (existing) {
1029
+ existing.exports.push(...handlers);
1030
+ } else {
1031
+ s.staticHandlerChunkInfoMap.set(fileName, {
1032
+ fileName,
1033
+ exports: handlers,
1034
+ });
1035
+ }
765
1036
  }
766
1037
  }
767
1038
  }
@@ -1,4 +1,4 @@
1
- import packageJson from "../../../package.json" with { type: "json" };
1
+ import packageJson from "../../../package.json";
2
2
 
3
3
  export const rangoVersion: string = packageJson.version;
4
4
 
@@ -23,11 +23,11 @@ ${dim} ╱${reset} ${bold}╔═╗${reset}${dim} * ╱
23
23
  ${dim} ${reset}${bold}║ ║${reset} ${bold}╔═╗${reset}${dim} * ✧. ╱${reset}
24
24
  ${dim} ${reset}${bold}╔╗ ║ ║ ║ ║${reset}${dim} * ╱${reset}
25
25
  ${dim} ${reset}${bold}║║ ║ ║ ║ ║ ╦═╗╔═╗╔╗╔╔═╗╔═╗${reset}${dim} ✧ ✦${reset}
26
- ${dim} ${reset}${bold}═╣║ ║ ╠═╝ ║ ╠╦╝╠═╣║║║║ ╦║ ║${reset}${dim} * ✧${reset}
26
+ ${dim} ${reset}${bold}║║ ║ ╠═╝ ║ ╠╦╝╠═╣║║║║ ╦║ ║${reset}${dim} * ✧${reset}
27
27
  ${dim} ${reset}${bold}║╚═╝ ╔═══╝ ╩╚═╩ ╩╝╚╝╚═╝╚═╝${reset}${dim} ✦ . *${reset}
28
28
  ${dim} ${reset}${bold}╚══╗ ║${reset}${dim} * RSC Wrangler ✧ ✦${reset}
29
- ${dim} * ${reset}${bold}║ ╠═${reset}${dim} * ✧. ╱${reset}
30
- ${bold}══════╝ ╚═════════╩═══${reset}${dim} ✦ *${reset}
29
+ ${dim} * ${reset}${bold}║ ║${reset}${dim} * ✧. ╱${reset}
30
+ ${dim} ${reset}${bold}═══╝ ╚════${reset}${dim} ✦ *${reset}
31
31
 
32
32
  v${version} · ${preset} · ${mode}
33
33
  `;