@rangojs/router 0.0.0-experimental.0da83ed6 → 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 (906) hide show
  1. package/README.md +76 -18
  2. package/dist/bin/rango.js +130 -47
  3. package/dist/vite/index.js +689 -361
  4. package/package.json +2 -2
  5. package/skills/links/SKILL.md +3 -1
  6. package/skills/middleware/SKILL.md +2 -0
  7. package/skills/prerender/SKILL.md +110 -68
  8. package/skills/router-setup/SKILL.md +35 -0
  9. package/src/__internal.ts +1 -1
  10. package/src/browser/app-version.ts +14 -0
  11. package/src/browser/navigation-bridge.ts +16 -3
  12. package/src/browser/navigation-client.ts +86 -63
  13. package/src/browser/navigation-store.ts +43 -8
  14. package/src/browser/partial-update.ts +27 -5
  15. package/src/browser/prefetch/cache.ts +21 -6
  16. package/src/browser/prefetch/fetch.ts +46 -6
  17. package/src/browser/react/Link.tsx +58 -8
  18. package/src/browser/react/NavigationProvider.tsx +8 -1
  19. package/src/browser/react/context.ts +7 -2
  20. package/src/browser/react/use-handle.ts +9 -58
  21. package/src/browser/react/use-router.ts +21 -8
  22. package/src/browser/rsc-router.tsx +26 -3
  23. package/src/browser/scroll-restoration.ts +10 -8
  24. package/src/browser/server-action-bridge.ts +8 -17
  25. package/src/browser/types.ts +24 -5
  26. package/src/build/generate-manifest.ts +6 -6
  27. package/src/build/generate-route-types.ts +3 -0
  28. package/src/build/route-types/include-resolution.ts +8 -1
  29. package/src/build/route-types/router-processing.ts +211 -72
  30. package/src/build/route-types/scan-filter.ts +8 -1
  31. package/src/client.tsx +2 -56
  32. package/src/handle.ts +40 -0
  33. package/src/index.rsc.ts +3 -1
  34. package/src/index.ts +12 -0
  35. package/src/prerender/store.ts +5 -4
  36. package/src/prerender.ts +138 -77
  37. package/src/reverse.ts +22 -1
  38. package/src/route-definition/dsl-helpers.ts +42 -19
  39. package/src/route-definition/helpers-types.ts +4 -1
  40. package/src/route-definition/index.ts +3 -0
  41. package/src/route-definition/redirect.ts +9 -1
  42. package/src/route-definition/resolve-handler-use.ts +149 -0
  43. package/src/route-types.ts +11 -0
  44. package/src/router/content-negotiation.ts +100 -1
  45. package/src/router/handler-context.ts +48 -15
  46. package/src/router/intercept-resolution.ts +9 -4
  47. package/src/router/loader-resolution.ts +150 -21
  48. package/src/router/match-api.ts +124 -189
  49. package/src/router/match-middleware/cache-lookup.ts +26 -7
  50. package/src/router/match-middleware/segment-resolution.ts +53 -0
  51. package/src/router/match-result.ts +82 -4
  52. package/src/router/middleware-types.ts +0 -6
  53. package/src/router/middleware.ts +0 -3
  54. package/src/router/navigation-snapshot.ts +182 -0
  55. package/src/router/prerender-match.ts +110 -10
  56. package/src/router/preview-match.ts +30 -102
  57. package/src/router/request-classification.ts +310 -0
  58. package/src/router/route-snapshot.ts +245 -0
  59. package/src/router/router-interfaces.ts +36 -4
  60. package/src/router/router-options.ts +37 -11
  61. package/src/router/segment-resolution/fresh.ts +70 -5
  62. package/src/router/segment-resolution/revalidation.ts +87 -9
  63. package/src/router.ts +53 -5
  64. package/src/rsc/handler.ts +472 -393
  65. package/src/rsc/loader-fetch.ts +18 -3
  66. package/src/rsc/manifest-init.ts +5 -1
  67. package/src/rsc/progressive-enhancement.ts +12 -3
  68. package/src/rsc/rsc-rendering.ts +8 -2
  69. package/src/rsc/server-action.ts +8 -2
  70. package/src/rsc/ssr-setup.ts +2 -2
  71. package/src/rsc/types.ts +6 -4
  72. package/src/server/context.ts +39 -2
  73. package/src/server/handle-store.ts +19 -0
  74. package/src/server/loader-registry.ts +9 -8
  75. package/src/server/request-context.ts +132 -13
  76. package/src/ssr/index.tsx +3 -0
  77. package/src/static-handler.ts +18 -6
  78. package/src/types/cache-types.ts +4 -4
  79. package/src/types/handler-context.ts +17 -11
  80. package/src/types/loader-types.ts +32 -5
  81. package/src/types/route-entry.ts +1 -1
  82. package/src/types/segments.ts +1 -0
  83. package/src/urls/path-helper-types.ts +9 -2
  84. package/src/urls/path-helper.ts +47 -12
  85. package/src/urls/pattern-types.ts +12 -0
  86. package/src/urls/response-types.ts +16 -6
  87. package/src/use-loader.tsx +77 -5
  88. package/src/vite/discovery/bundle-postprocess.ts +30 -33
  89. package/src/vite/discovery/discover-routers.ts +5 -1
  90. package/src/vite/discovery/prerender-collection.ts +128 -74
  91. package/src/vite/discovery/state.ts +13 -4
  92. package/src/vite/index.ts +4 -0
  93. package/src/vite/plugin-types.ts +60 -5
  94. package/src/vite/plugins/expose-id-utils.ts +12 -0
  95. package/src/vite/plugins/expose-ids/handler-transform.ts +30 -0
  96. package/src/vite/plugins/expose-internal-ids.ts +257 -40
  97. package/src/vite/plugins/performance-tracks.ts +66 -198
  98. package/src/vite/plugins/refresh-cmd.ts +88 -26
  99. package/src/vite/rango.ts +18 -5
  100. package/src/vite/router-discovery.ts +178 -37
  101. package/src/vite/utils/prerender-utils.ts +18 -0
  102. package/src/vite/utils/shared-utils.ts +3 -2
  103. package/dist/__internal.d.ts +0 -83
  104. package/dist/__internal.d.ts.map +0 -1
  105. package/dist/__internal.js +0 -19
  106. package/dist/__internal.js.map +0 -1
  107. package/dist/__mocks__/version.d.ts +0 -7
  108. package/dist/__mocks__/version.d.ts.map +0 -1
  109. package/dist/__mocks__/version.js +0 -7
  110. package/dist/__mocks__/version.js.map +0 -1
  111. package/dist/__tests__/client-href.test.d.ts +0 -2
  112. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  113. package/dist/__tests__/client-href.test.js +0 -74
  114. package/dist/__tests__/client-href.test.js.map +0 -1
  115. package/dist/__tests__/component-utils.test.d.ts +0 -2
  116. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  117. package/dist/__tests__/component-utils.test.js +0 -51
  118. package/dist/__tests__/component-utils.test.js.map +0 -1
  119. package/dist/__tests__/event-controller.test.d.ts +0 -2
  120. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  121. package/dist/__tests__/event-controller.test.js +0 -538
  122. package/dist/__tests__/event-controller.test.js.map +0 -1
  123. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  124. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  125. package/dist/__tests__/helpers/route-tree.js +0 -374
  126. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  127. package/dist/__tests__/match-result.test.d.ts +0 -2
  128. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  129. package/dist/__tests__/match-result.test.js +0 -154
  130. package/dist/__tests__/match-result.test.js.map +0 -1
  131. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  132. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  133. package/dist/__tests__/navigation-store.test.js +0 -440
  134. package/dist/__tests__/navigation-store.test.js.map +0 -1
  135. package/dist/__tests__/partial-update.test.d.ts +0 -2
  136. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  137. package/dist/__tests__/partial-update.test.js +0 -1009
  138. package/dist/__tests__/partial-update.test.js.map +0 -1
  139. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  140. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  141. package/dist/__tests__/reverse-types.test.js +0 -656
  142. package/dist/__tests__/reverse-types.test.js.map +0 -1
  143. package/dist/__tests__/route-definition.test.d.ts +0 -2
  144. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  145. package/dist/__tests__/route-definition.test.js +0 -55
  146. package/dist/__tests__/route-definition.test.js.map +0 -1
  147. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  148. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  149. package/dist/__tests__/router-helpers.test.js +0 -377
  150. package/dist/__tests__/router-helpers.test.js.map +0 -1
  151. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  152. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  153. package/dist/__tests__/router-integration-2.test.js +0 -426
  154. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  155. package/dist/__tests__/router-integration.test.d.ts +0 -2
  156. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  157. package/dist/__tests__/router-integration.test.js +0 -1051
  158. package/dist/__tests__/router-integration.test.js.map +0 -1
  159. package/dist/__tests__/search-params.test.d.ts +0 -5
  160. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  161. package/dist/__tests__/search-params.test.js +0 -306
  162. package/dist/__tests__/search-params.test.js.map +0 -1
  163. package/dist/__tests__/segment-system.test.d.ts +0 -2
  164. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  165. package/dist/__tests__/segment-system.test.js +0 -627
  166. package/dist/__tests__/segment-system.test.js.map +0 -1
  167. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  168. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  169. package/dist/__tests__/static-handler-types.test.js +0 -63
  170. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  171. package/dist/__tests__/urls.test.d.ts +0 -2
  172. package/dist/__tests__/urls.test.d.ts.map +0 -1
  173. package/dist/__tests__/urls.test.js +0 -421
  174. package/dist/__tests__/urls.test.js.map +0 -1
  175. package/dist/__tests__/use-mount.test.d.ts +0 -2
  176. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  177. package/dist/__tests__/use-mount.test.js +0 -35
  178. package/dist/__tests__/use-mount.test.js.map +0 -1
  179. package/dist/bin/rango.d.ts +0 -2
  180. package/dist/bin/rango.d.ts.map +0 -1
  181. package/dist/bin/rango.js.map +0 -1
  182. package/dist/browser/event-controller.d.ts +0 -191
  183. package/dist/browser/event-controller.d.ts.map +0 -1
  184. package/dist/browser/event-controller.js +0 -559
  185. package/dist/browser/event-controller.js.map +0 -1
  186. package/dist/browser/index.d.ts +0 -2
  187. package/dist/browser/index.d.ts.map +0 -1
  188. package/dist/browser/index.js +0 -14
  189. package/dist/browser/index.js.map +0 -1
  190. package/dist/browser/link-interceptor.d.ts +0 -38
  191. package/dist/browser/link-interceptor.d.ts.map +0 -1
  192. package/dist/browser/link-interceptor.js +0 -99
  193. package/dist/browser/link-interceptor.js.map +0 -1
  194. package/dist/browser/logging.d.ts +0 -10
  195. package/dist/browser/logging.d.ts.map +0 -1
  196. package/dist/browser/logging.js +0 -29
  197. package/dist/browser/logging.js.map +0 -1
  198. package/dist/browser/lru-cache.d.ts +0 -17
  199. package/dist/browser/lru-cache.d.ts.map +0 -1
  200. package/dist/browser/lru-cache.js +0 -50
  201. package/dist/browser/lru-cache.js.map +0 -1
  202. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  203. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  204. package/dist/browser/merge-segment-loaders.js +0 -102
  205. package/dist/browser/merge-segment-loaders.js.map +0 -1
  206. package/dist/browser/navigation-bridge.d.ts +0 -102
  207. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  208. package/dist/browser/navigation-bridge.js +0 -708
  209. package/dist/browser/navigation-bridge.js.map +0 -1
  210. package/dist/browser/navigation-client.d.ts +0 -25
  211. package/dist/browser/navigation-client.d.ts.map +0 -1
  212. package/dist/browser/navigation-client.js +0 -157
  213. package/dist/browser/navigation-client.js.map +0 -1
  214. package/dist/browser/navigation-store.d.ts +0 -101
  215. package/dist/browser/navigation-store.d.ts.map +0 -1
  216. package/dist/browser/navigation-store.js +0 -625
  217. package/dist/browser/navigation-store.js.map +0 -1
  218. package/dist/browser/partial-update.d.ts +0 -75
  219. package/dist/browser/partial-update.d.ts.map +0 -1
  220. package/dist/browser/partial-update.js +0 -426
  221. package/dist/browser/partial-update.js.map +0 -1
  222. package/dist/browser/react/Link.d.ts +0 -86
  223. package/dist/browser/react/Link.d.ts.map +0 -1
  224. package/dist/browser/react/Link.js +0 -128
  225. package/dist/browser/react/Link.js.map +0 -1
  226. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  227. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  228. package/dist/browser/react/NavigationProvider.js +0 -216
  229. package/dist/browser/react/NavigationProvider.js.map +0 -1
  230. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  231. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  232. package/dist/browser/react/ScrollRestoration.js +0 -57
  233. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  234. package/dist/browser/react/context.d.ts +0 -46
  235. package/dist/browser/react/context.d.ts.map +0 -1
  236. package/dist/browser/react/context.js +0 -10
  237. package/dist/browser/react/context.js.map +0 -1
  238. package/dist/browser/react/index.d.ts +0 -11
  239. package/dist/browser/react/index.d.ts.map +0 -1
  240. package/dist/browser/react/index.js +0 -22
  241. package/dist/browser/react/index.js.map +0 -1
  242. package/dist/browser/react/location-state-shared.d.ts +0 -63
  243. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  244. package/dist/browser/react/location-state-shared.js +0 -81
  245. package/dist/browser/react/location-state-shared.js.map +0 -1
  246. package/dist/browser/react/location-state.d.ts +0 -23
  247. package/dist/browser/react/location-state.d.ts.map +0 -1
  248. package/dist/browser/react/location-state.js +0 -29
  249. package/dist/browser/react/location-state.js.map +0 -1
  250. package/dist/browser/react/mount-context.d.ts +0 -24
  251. package/dist/browser/react/mount-context.d.ts.map +0 -1
  252. package/dist/browser/react/mount-context.js +0 -24
  253. package/dist/browser/react/mount-context.js.map +0 -1
  254. package/dist/browser/react/use-action.d.ts +0 -64
  255. package/dist/browser/react/use-action.d.ts.map +0 -1
  256. package/dist/browser/react/use-action.js +0 -134
  257. package/dist/browser/react/use-action.js.map +0 -1
  258. package/dist/browser/react/use-client-cache.d.ts +0 -41
  259. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  260. package/dist/browser/react/use-client-cache.js +0 -39
  261. package/dist/browser/react/use-client-cache.js.map +0 -1
  262. package/dist/browser/react/use-handle.d.ts +0 -31
  263. package/dist/browser/react/use-handle.d.ts.map +0 -1
  264. package/dist/browser/react/use-handle.js +0 -144
  265. package/dist/browser/react/use-handle.js.map +0 -1
  266. package/dist/browser/react/use-href.d.ts +0 -33
  267. package/dist/browser/react/use-href.d.ts.map +0 -1
  268. package/dist/browser/react/use-href.js +0 -39
  269. package/dist/browser/react/use-href.js.map +0 -1
  270. package/dist/browser/react/use-link-status.d.ts +0 -37
  271. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  272. package/dist/browser/react/use-link-status.js +0 -99
  273. package/dist/browser/react/use-link-status.js.map +0 -1
  274. package/dist/browser/react/use-mount.d.ts +0 -25
  275. package/dist/browser/react/use-mount.d.ts.map +0 -1
  276. package/dist/browser/react/use-mount.js +0 -30
  277. package/dist/browser/react/use-mount.js.map +0 -1
  278. package/dist/browser/react/use-navigation.d.ts +0 -27
  279. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  280. package/dist/browser/react/use-navigation.js +0 -87
  281. package/dist/browser/react/use-navigation.js.map +0 -1
  282. package/dist/browser/react/use-segments.d.ts +0 -38
  283. package/dist/browser/react/use-segments.d.ts.map +0 -1
  284. package/dist/browser/react/use-segments.js +0 -130
  285. package/dist/browser/react/use-segments.js.map +0 -1
  286. package/dist/browser/request-controller.d.ts +0 -26
  287. package/dist/browser/request-controller.d.ts.map +0 -1
  288. package/dist/browser/request-controller.js +0 -147
  289. package/dist/browser/request-controller.js.map +0 -1
  290. package/dist/browser/rsc-router.d.ts +0 -129
  291. package/dist/browser/rsc-router.d.ts.map +0 -1
  292. package/dist/browser/rsc-router.js +0 -195
  293. package/dist/browser/rsc-router.js.map +0 -1
  294. package/dist/browser/scroll-restoration.d.ts +0 -93
  295. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  296. package/dist/browser/scroll-restoration.js +0 -321
  297. package/dist/browser/scroll-restoration.js.map +0 -1
  298. package/dist/browser/segment-structure-assert.d.ts +0 -17
  299. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  300. package/dist/browser/segment-structure-assert.js +0 -59
  301. package/dist/browser/segment-structure-assert.js.map +0 -1
  302. package/dist/browser/server-action-bridge.d.ts +0 -26
  303. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  304. package/dist/browser/server-action-bridge.js +0 -668
  305. package/dist/browser/server-action-bridge.js.map +0 -1
  306. package/dist/browser/shallow.d.ts +0 -12
  307. package/dist/browser/shallow.d.ts.map +0 -1
  308. package/dist/browser/shallow.js +0 -34
  309. package/dist/browser/shallow.js.map +0 -1
  310. package/dist/browser/types.d.ts +0 -369
  311. package/dist/browser/types.d.ts.map +0 -1
  312. package/dist/browser/types.js +0 -2
  313. package/dist/browser/types.js.map +0 -1
  314. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  315. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  316. package/dist/build/__tests__/generate-cli.test.js +0 -237
  317. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  318. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  319. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  320. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  321. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  322. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  323. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  324. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  325. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  326. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  327. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  328. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  329. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  330. package/dist/build/generate-manifest.d.ts +0 -81
  331. package/dist/build/generate-manifest.d.ts.map +0 -1
  332. package/dist/build/generate-manifest.js +0 -276
  333. package/dist/build/generate-manifest.js.map +0 -1
  334. package/dist/build/generate-route-types.d.ts +0 -115
  335. package/dist/build/generate-route-types.d.ts.map +0 -1
  336. package/dist/build/generate-route-types.js +0 -740
  337. package/dist/build/generate-route-types.js.map +0 -1
  338. package/dist/build/index.d.ts +0 -21
  339. package/dist/build/index.d.ts.map +0 -1
  340. package/dist/build/index.js +0 -21
  341. package/dist/build/index.js.map +0 -1
  342. package/dist/build/route-trie.d.ts +0 -71
  343. package/dist/build/route-trie.d.ts.map +0 -1
  344. package/dist/build/route-trie.js +0 -175
  345. package/dist/build/route-trie.js.map +0 -1
  346. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  347. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  348. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  349. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  350. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  351. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  352. package/dist/cache/__tests__/document-cache.test.js +0 -345
  353. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  354. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  355. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  356. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  357. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  358. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  359. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  360. package/dist/cache/__tests__/memory-store.test.js +0 -367
  361. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  362. package/dist/cache/cache-scope.d.ts +0 -102
  363. package/dist/cache/cache-scope.d.ts.map +0 -1
  364. package/dist/cache/cache-scope.js +0 -440
  365. package/dist/cache/cache-scope.js.map +0 -1
  366. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  367. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  368. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  369. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  370. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  371. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  372. package/dist/cache/cf/cf-cache-store.js +0 -242
  373. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  374. package/dist/cache/cf/index.d.ts +0 -14
  375. package/dist/cache/cf/index.d.ts.map +0 -1
  376. package/dist/cache/cf/index.js +0 -17
  377. package/dist/cache/cf/index.js.map +0 -1
  378. package/dist/cache/document-cache.d.ts +0 -64
  379. package/dist/cache/document-cache.d.ts.map +0 -1
  380. package/dist/cache/document-cache.js +0 -228
  381. package/dist/cache/document-cache.js.map +0 -1
  382. package/dist/cache/index.d.ts +0 -19
  383. package/dist/cache/index.d.ts.map +0 -1
  384. package/dist/cache/index.js +0 -21
  385. package/dist/cache/index.js.map +0 -1
  386. package/dist/cache/memory-segment-store.d.ts +0 -110
  387. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  388. package/dist/cache/memory-segment-store.js +0 -117
  389. package/dist/cache/memory-segment-store.js.map +0 -1
  390. package/dist/cache/memory-store.d.ts +0 -41
  391. package/dist/cache/memory-store.d.ts.map +0 -1
  392. package/dist/cache/memory-store.js +0 -191
  393. package/dist/cache/memory-store.js.map +0 -1
  394. package/dist/cache/types.d.ts +0 -317
  395. package/dist/cache/types.d.ts.map +0 -1
  396. package/dist/cache/types.js +0 -12
  397. package/dist/cache/types.js.map +0 -1
  398. package/dist/client.d.ts +0 -248
  399. package/dist/client.d.ts.map +0 -1
  400. package/dist/client.js +0 -367
  401. package/dist/client.js.map +0 -1
  402. package/dist/client.rsc.d.ts +0 -26
  403. package/dist/client.rsc.d.ts.map +0 -1
  404. package/dist/client.rsc.js +0 -46
  405. package/dist/client.rsc.js.map +0 -1
  406. package/dist/component-utils.d.ts +0 -36
  407. package/dist/component-utils.d.ts.map +0 -1
  408. package/dist/component-utils.js +0 -61
  409. package/dist/component-utils.js.map +0 -1
  410. package/dist/components/DefaultDocument.d.ts +0 -13
  411. package/dist/components/DefaultDocument.d.ts.map +0 -1
  412. package/dist/components/DefaultDocument.js +0 -15
  413. package/dist/components/DefaultDocument.js.map +0 -1
  414. package/dist/debug.d.ts +0 -58
  415. package/dist/debug.d.ts.map +0 -1
  416. package/dist/debug.js +0 -157
  417. package/dist/debug.js.map +0 -1
  418. package/dist/default-error-boundary.d.ts +0 -11
  419. package/dist/default-error-boundary.d.ts.map +0 -1
  420. package/dist/default-error-boundary.js +0 -45
  421. package/dist/default-error-boundary.js.map +0 -1
  422. package/dist/deps/browser.d.ts +0 -2
  423. package/dist/deps/browser.d.ts.map +0 -1
  424. package/dist/deps/browser.js +0 -3
  425. package/dist/deps/browser.js.map +0 -1
  426. package/dist/deps/html-stream-client.d.ts +0 -2
  427. package/dist/deps/html-stream-client.d.ts.map +0 -1
  428. package/dist/deps/html-stream-client.js +0 -3
  429. package/dist/deps/html-stream-client.js.map +0 -1
  430. package/dist/deps/html-stream-server.d.ts +0 -2
  431. package/dist/deps/html-stream-server.d.ts.map +0 -1
  432. package/dist/deps/html-stream-server.js +0 -3
  433. package/dist/deps/html-stream-server.js.map +0 -1
  434. package/dist/deps/rsc.d.ts +0 -2
  435. package/dist/deps/rsc.d.ts.map +0 -1
  436. package/dist/deps/rsc.js +0 -4
  437. package/dist/deps/rsc.js.map +0 -1
  438. package/dist/deps/ssr.d.ts +0 -2
  439. package/dist/deps/ssr.d.ts.map +0 -1
  440. package/dist/deps/ssr.js +0 -3
  441. package/dist/deps/ssr.js.map +0 -1
  442. package/dist/errors.d.ts +0 -174
  443. package/dist/errors.d.ts.map +0 -1
  444. package/dist/errors.js +0 -241
  445. package/dist/errors.js.map +0 -1
  446. package/dist/handle.d.ts +0 -78
  447. package/dist/handle.d.ts.map +0 -1
  448. package/dist/handle.js +0 -82
  449. package/dist/handle.js.map +0 -1
  450. package/dist/handles/MetaTags.d.ts +0 -14
  451. package/dist/handles/MetaTags.d.ts.map +0 -1
  452. package/dist/handles/MetaTags.js +0 -136
  453. package/dist/handles/MetaTags.js.map +0 -1
  454. package/dist/handles/index.d.ts +0 -6
  455. package/dist/handles/index.d.ts.map +0 -1
  456. package/dist/handles/index.js +0 -6
  457. package/dist/handles/index.js.map +0 -1
  458. package/dist/handles/meta.d.ts +0 -39
  459. package/dist/handles/meta.d.ts.map +0 -1
  460. package/dist/handles/meta.js +0 -202
  461. package/dist/handles/meta.js.map +0 -1
  462. package/dist/host/__tests__/errors.test.d.ts +0 -2
  463. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  464. package/dist/host/__tests__/errors.test.js +0 -76
  465. package/dist/host/__tests__/errors.test.js.map +0 -1
  466. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  467. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  468. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  469. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  470. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  471. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  472. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  473. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  474. package/dist/host/__tests__/router.test.d.ts +0 -2
  475. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  476. package/dist/host/__tests__/router.test.js +0 -241
  477. package/dist/host/__tests__/router.test.js.map +0 -1
  478. package/dist/host/__tests__/testing.test.d.ts +0 -2
  479. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  480. package/dist/host/__tests__/testing.test.js +0 -64
  481. package/dist/host/__tests__/testing.test.js.map +0 -1
  482. package/dist/host/__tests__/utils.test.d.ts +0 -2
  483. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  484. package/dist/host/__tests__/utils.test.js +0 -29
  485. package/dist/host/__tests__/utils.test.js.map +0 -1
  486. package/dist/host/cookie-handler.d.ts +0 -34
  487. package/dist/host/cookie-handler.d.ts.map +0 -1
  488. package/dist/host/cookie-handler.js +0 -124
  489. package/dist/host/cookie-handler.js.map +0 -1
  490. package/dist/host/errors.d.ts +0 -56
  491. package/dist/host/errors.d.ts.map +0 -1
  492. package/dist/host/errors.js +0 -79
  493. package/dist/host/errors.js.map +0 -1
  494. package/dist/host/index.d.ts +0 -29
  495. package/dist/host/index.d.ts.map +0 -1
  496. package/dist/host/index.js +0 -32
  497. package/dist/host/index.js.map +0 -1
  498. package/dist/host/pattern-matcher.d.ts +0 -36
  499. package/dist/host/pattern-matcher.d.ts.map +0 -1
  500. package/dist/host/pattern-matcher.js +0 -172
  501. package/dist/host/pattern-matcher.js.map +0 -1
  502. package/dist/host/router.d.ts +0 -26
  503. package/dist/host/router.d.ts.map +0 -1
  504. package/dist/host/router.js +0 -218
  505. package/dist/host/router.js.map +0 -1
  506. package/dist/host/testing.d.ts +0 -36
  507. package/dist/host/testing.d.ts.map +0 -1
  508. package/dist/host/testing.js +0 -55
  509. package/dist/host/testing.js.map +0 -1
  510. package/dist/host/types.d.ts +0 -115
  511. package/dist/host/types.d.ts.map +0 -1
  512. package/dist/host/types.js +0 -7
  513. package/dist/host/types.js.map +0 -1
  514. package/dist/host/utils.d.ts +0 -21
  515. package/dist/host/utils.d.ts.map +0 -1
  516. package/dist/host/utils.js +0 -23
  517. package/dist/host/utils.js.map +0 -1
  518. package/dist/href-client.d.ts +0 -131
  519. package/dist/href-client.d.ts.map +0 -1
  520. package/dist/href-client.js +0 -64
  521. package/dist/href-client.js.map +0 -1
  522. package/dist/href-context.d.ts +0 -29
  523. package/dist/href-context.d.ts.map +0 -1
  524. package/dist/href-context.js +0 -21
  525. package/dist/href-context.js.map +0 -1
  526. package/dist/index.d.ts +0 -73
  527. package/dist/index.d.ts.map +0 -1
  528. package/dist/index.js +0 -91
  529. package/dist/index.js.map +0 -1
  530. package/dist/index.rsc.d.ts +0 -32
  531. package/dist/index.rsc.d.ts.map +0 -1
  532. package/dist/index.rsc.js +0 -40
  533. package/dist/index.rsc.js.map +0 -1
  534. package/dist/internal-debug.d.ts +0 -2
  535. package/dist/internal-debug.d.ts.map +0 -1
  536. package/dist/internal-debug.js +0 -5
  537. package/dist/internal-debug.js.map +0 -1
  538. package/dist/loader.d.ts +0 -14
  539. package/dist/loader.d.ts.map +0 -1
  540. package/dist/loader.js +0 -20
  541. package/dist/loader.js.map +0 -1
  542. package/dist/loader.rsc.d.ts +0 -19
  543. package/dist/loader.rsc.d.ts.map +0 -1
  544. package/dist/loader.rsc.js +0 -99
  545. package/dist/loader.rsc.js.map +0 -1
  546. package/dist/network-error-thrower.d.ts +0 -17
  547. package/dist/network-error-thrower.d.ts.map +0 -1
  548. package/dist/network-error-thrower.js +0 -14
  549. package/dist/network-error-thrower.js.map +0 -1
  550. package/dist/outlet-context.d.ts +0 -13
  551. package/dist/outlet-context.d.ts.map +0 -1
  552. package/dist/outlet-context.js +0 -3
  553. package/dist/outlet-context.js.map +0 -1
  554. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  555. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  556. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  557. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  558. package/dist/prerender/param-hash.d.ts +0 -16
  559. package/dist/prerender/param-hash.d.ts.map +0 -1
  560. package/dist/prerender/param-hash.js +0 -36
  561. package/dist/prerender/param-hash.js.map +0 -1
  562. package/dist/prerender/store.d.ts +0 -38
  563. package/dist/prerender/store.d.ts.map +0 -1
  564. package/dist/prerender/store.js +0 -61
  565. package/dist/prerender/store.js.map +0 -1
  566. package/dist/prerender.d.ts +0 -66
  567. package/dist/prerender.d.ts.map +0 -1
  568. package/dist/prerender.js +0 -57
  569. package/dist/prerender.js.map +0 -1
  570. package/dist/reverse.d.ts +0 -196
  571. package/dist/reverse.d.ts.map +0 -1
  572. package/dist/reverse.js +0 -78
  573. package/dist/reverse.js.map +0 -1
  574. package/dist/root-error-boundary.d.ts +0 -33
  575. package/dist/root-error-boundary.d.ts.map +0 -1
  576. package/dist/root-error-boundary.js +0 -165
  577. package/dist/root-error-boundary.js.map +0 -1
  578. package/dist/route-content-wrapper.d.ts +0 -46
  579. package/dist/route-content-wrapper.d.ts.map +0 -1
  580. package/dist/route-content-wrapper.js +0 -77
  581. package/dist/route-content-wrapper.js.map +0 -1
  582. package/dist/route-definition.d.ts +0 -421
  583. package/dist/route-definition.d.ts.map +0 -1
  584. package/dist/route-definition.js +0 -868
  585. package/dist/route-definition.js.map +0 -1
  586. package/dist/route-map-builder.d.ts +0 -155
  587. package/dist/route-map-builder.d.ts.map +0 -1
  588. package/dist/route-map-builder.js +0 -237
  589. package/dist/route-map-builder.js.map +0 -1
  590. package/dist/route-types.d.ts +0 -165
  591. package/dist/route-types.d.ts.map +0 -1
  592. package/dist/route-types.js +0 -7
  593. package/dist/route-types.js.map +0 -1
  594. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  595. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  596. package/dist/router/__tests__/handler-context.test.js +0 -65
  597. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  598. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  599. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  600. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  601. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  602. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  603. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  604. package/dist/router/__tests__/match-context.test.js +0 -92
  605. package/dist/router/__tests__/match-context.test.js.map +0 -1
  606. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  607. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  608. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  609. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  610. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  611. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  612. package/dist/router/__tests__/match-result.test.js +0 -457
  613. package/dist/router/__tests__/match-result.test.js.map +0 -1
  614. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  615. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  616. package/dist/router/__tests__/on-error.test.js +0 -678
  617. package/dist/router/__tests__/on-error.test.js.map +0 -1
  618. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  619. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  620. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  621. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  622. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  623. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  624. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  625. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  626. package/dist/router/error-handling.d.ts +0 -77
  627. package/dist/router/error-handling.d.ts.map +0 -1
  628. package/dist/router/error-handling.js +0 -202
  629. package/dist/router/error-handling.js.map +0 -1
  630. package/dist/router/handler-context.d.ts +0 -20
  631. package/dist/router/handler-context.d.ts.map +0 -1
  632. package/dist/router/handler-context.js +0 -198
  633. package/dist/router/handler-context.js.map +0 -1
  634. package/dist/router/intercept-resolution.d.ts +0 -66
  635. package/dist/router/intercept-resolution.d.ts.map +0 -1
  636. package/dist/router/intercept-resolution.js +0 -246
  637. package/dist/router/intercept-resolution.js.map +0 -1
  638. package/dist/router/loader-resolution.d.ts +0 -64
  639. package/dist/router/loader-resolution.d.ts.map +0 -1
  640. package/dist/router/loader-resolution.js +0 -284
  641. package/dist/router/loader-resolution.js.map +0 -1
  642. package/dist/router/logging.d.ts +0 -15
  643. package/dist/router/logging.d.ts.map +0 -1
  644. package/dist/router/logging.js +0 -99
  645. package/dist/router/logging.js.map +0 -1
  646. package/dist/router/manifest.d.ts +0 -22
  647. package/dist/router/manifest.d.ts.map +0 -1
  648. package/dist/router/manifest.js +0 -181
  649. package/dist/router/manifest.js.map +0 -1
  650. package/dist/router/match-api.d.ts +0 -35
  651. package/dist/router/match-api.d.ts.map +0 -1
  652. package/dist/router/match-api.js +0 -406
  653. package/dist/router/match-api.js.map +0 -1
  654. package/dist/router/match-context.d.ts +0 -206
  655. package/dist/router/match-context.d.ts.map +0 -1
  656. package/dist/router/match-context.js +0 -17
  657. package/dist/router/match-context.js.map +0 -1
  658. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  659. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  660. package/dist/router/match-middleware/background-revalidation.js +0 -75
  661. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  662. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  663. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  664. package/dist/router/match-middleware/cache-lookup.js +0 -257
  665. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  666. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  667. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  668. package/dist/router/match-middleware/cache-store.js +0 -108
  669. package/dist/router/match-middleware/cache-store.js.map +0 -1
  670. package/dist/router/match-middleware/index.d.ts +0 -81
  671. package/dist/router/match-middleware/index.d.ts.map +0 -1
  672. package/dist/router/match-middleware/index.js +0 -80
  673. package/dist/router/match-middleware/index.js.map +0 -1
  674. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  675. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  676. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  677. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  678. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  679. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  680. package/dist/router/match-middleware/segment-resolution.js +0 -53
  681. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  682. package/dist/router/match-pipelines.d.ts +0 -147
  683. package/dist/router/match-pipelines.d.ts.map +0 -1
  684. package/dist/router/match-pipelines.js +0 -82
  685. package/dist/router/match-pipelines.js.map +0 -1
  686. package/dist/router/match-result.d.ts +0 -126
  687. package/dist/router/match-result.d.ts.map +0 -1
  688. package/dist/router/match-result.js +0 -93
  689. package/dist/router/match-result.js.map +0 -1
  690. package/dist/router/metrics.d.ts +0 -20
  691. package/dist/router/metrics.d.ts.map +0 -1
  692. package/dist/router/metrics.js +0 -47
  693. package/dist/router/metrics.js.map +0 -1
  694. package/dist/router/middleware.d.ts +0 -249
  695. package/dist/router/middleware.d.ts.map +0 -1
  696. package/dist/router/middleware.js +0 -434
  697. package/dist/router/middleware.js.map +0 -1
  698. package/dist/router/middleware.test.d.ts +0 -2
  699. package/dist/router/middleware.test.d.ts.map +0 -1
  700. package/dist/router/middleware.test.js +0 -816
  701. package/dist/router/middleware.test.js.map +0 -1
  702. package/dist/router/pattern-matching.d.ts +0 -149
  703. package/dist/router/pattern-matching.d.ts.map +0 -1
  704. package/dist/router/pattern-matching.js +0 -349
  705. package/dist/router/pattern-matching.js.map +0 -1
  706. package/dist/router/revalidation.d.ts +0 -44
  707. package/dist/router/revalidation.d.ts.map +0 -1
  708. package/dist/router/revalidation.js +0 -147
  709. package/dist/router/revalidation.js.map +0 -1
  710. package/dist/router/router-context.d.ts +0 -135
  711. package/dist/router/router-context.d.ts.map +0 -1
  712. package/dist/router/router-context.js +0 -36
  713. package/dist/router/router-context.js.map +0 -1
  714. package/dist/router/segment-resolution.d.ts +0 -127
  715. package/dist/router/segment-resolution.d.ts.map +0 -1
  716. package/dist/router/segment-resolution.js +0 -919
  717. package/dist/router/segment-resolution.js.map +0 -1
  718. package/dist/router/trie-matching.d.ts +0 -40
  719. package/dist/router/trie-matching.d.ts.map +0 -1
  720. package/dist/router/trie-matching.js +0 -127
  721. package/dist/router/trie-matching.js.map +0 -1
  722. package/dist/router/types.d.ts +0 -136
  723. package/dist/router/types.d.ts.map +0 -1
  724. package/dist/router/types.js +0 -7
  725. package/dist/router/types.js.map +0 -1
  726. package/dist/router.d.ts +0 -753
  727. package/dist/router.d.ts.map +0 -1
  728. package/dist/router.gen.d.ts +0 -6
  729. package/dist/router.gen.d.ts.map +0 -1
  730. package/dist/router.gen.js +0 -6
  731. package/dist/router.gen.js.map +0 -1
  732. package/dist/router.js +0 -1304
  733. package/dist/router.js.map +0 -1
  734. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  735. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  736. package/dist/rsc/__tests__/helpers.test.js +0 -140
  737. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  738. package/dist/rsc/handler.d.ts +0 -45
  739. package/dist/rsc/handler.d.ts.map +0 -1
  740. package/dist/rsc/handler.js +0 -1172
  741. package/dist/rsc/handler.js.map +0 -1
  742. package/dist/rsc/helpers.d.ts +0 -16
  743. package/dist/rsc/helpers.d.ts.map +0 -1
  744. package/dist/rsc/helpers.js +0 -55
  745. package/dist/rsc/helpers.js.map +0 -1
  746. package/dist/rsc/index.d.ts +0 -22
  747. package/dist/rsc/index.d.ts.map +0 -1
  748. package/dist/rsc/index.js +0 -23
  749. package/dist/rsc/index.js.map +0 -1
  750. package/dist/rsc/nonce.d.ts +0 -9
  751. package/dist/rsc/nonce.d.ts.map +0 -1
  752. package/dist/rsc/nonce.js +0 -18
  753. package/dist/rsc/nonce.js.map +0 -1
  754. package/dist/rsc/types.d.ts +0 -206
  755. package/dist/rsc/types.d.ts.map +0 -1
  756. package/dist/rsc/types.js +0 -8
  757. package/dist/rsc/types.js.map +0 -1
  758. package/dist/search-params.d.ts +0 -103
  759. package/dist/search-params.d.ts.map +0 -1
  760. package/dist/search-params.js +0 -74
  761. package/dist/search-params.js.map +0 -1
  762. package/dist/segment-system.d.ts +0 -75
  763. package/dist/segment-system.d.ts.map +0 -1
  764. package/dist/segment-system.js +0 -336
  765. package/dist/segment-system.js.map +0 -1
  766. package/dist/server/context.d.ts +0 -245
  767. package/dist/server/context.d.ts.map +0 -1
  768. package/dist/server/context.js +0 -197
  769. package/dist/server/context.js.map +0 -1
  770. package/dist/server/fetchable-loader-store.d.ts +0 -18
  771. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  772. package/dist/server/fetchable-loader-store.js +0 -18
  773. package/dist/server/fetchable-loader-store.js.map +0 -1
  774. package/dist/server/handle-store.d.ts +0 -85
  775. package/dist/server/handle-store.d.ts.map +0 -1
  776. package/dist/server/handle-store.js +0 -142
  777. package/dist/server/handle-store.js.map +0 -1
  778. package/dist/server/loader-registry.d.ts +0 -55
  779. package/dist/server/loader-registry.d.ts.map +0 -1
  780. package/dist/server/loader-registry.js +0 -132
  781. package/dist/server/loader-registry.js.map +0 -1
  782. package/dist/server/request-context.d.ts +0 -226
  783. package/dist/server/request-context.d.ts.map +0 -1
  784. package/dist/server/request-context.js +0 -290
  785. package/dist/server/request-context.js.map +0 -1
  786. package/dist/server/root-layout.d.ts +0 -4
  787. package/dist/server/root-layout.d.ts.map +0 -1
  788. package/dist/server/root-layout.js +0 -5
  789. package/dist/server/root-layout.js.map +0 -1
  790. package/dist/server.d.ts +0 -15
  791. package/dist/server.d.ts.map +0 -1
  792. package/dist/server.js +0 -20
  793. package/dist/server.js.map +0 -1
  794. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  795. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  796. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  797. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  798. package/dist/ssr/index.d.ts +0 -98
  799. package/dist/ssr/index.d.ts.map +0 -1
  800. package/dist/ssr/index.js +0 -158
  801. package/dist/ssr/index.js.map +0 -1
  802. package/dist/static-handler.d.ts +0 -50
  803. package/dist/static-handler.d.ts.map +0 -1
  804. package/dist/static-handler.gen.d.ts +0 -5
  805. package/dist/static-handler.gen.d.ts.map +0 -1
  806. package/dist/static-handler.gen.js +0 -5
  807. package/dist/static-handler.gen.js.map +0 -1
  808. package/dist/static-handler.js +0 -29
  809. package/dist/static-handler.js.map +0 -1
  810. package/dist/theme/ThemeProvider.d.ts +0 -20
  811. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  812. package/dist/theme/ThemeProvider.js +0 -240
  813. package/dist/theme/ThemeProvider.js.map +0 -1
  814. package/dist/theme/ThemeScript.d.ts +0 -48
  815. package/dist/theme/ThemeScript.d.ts.map +0 -1
  816. package/dist/theme/ThemeScript.js +0 -13
  817. package/dist/theme/ThemeScript.js.map +0 -1
  818. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  819. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  820. package/dist/theme/__tests__/theme.test.js +0 -103
  821. package/dist/theme/__tests__/theme.test.js.map +0 -1
  822. package/dist/theme/constants.d.ts +0 -29
  823. package/dist/theme/constants.d.ts.map +0 -1
  824. package/dist/theme/constants.js +0 -48
  825. package/dist/theme/constants.js.map +0 -1
  826. package/dist/theme/index.d.ts +0 -31
  827. package/dist/theme/index.d.ts.map +0 -1
  828. package/dist/theme/index.js +0 -36
  829. package/dist/theme/index.js.map +0 -1
  830. package/dist/theme/theme-context.d.ts +0 -40
  831. package/dist/theme/theme-context.d.ts.map +0 -1
  832. package/dist/theme/theme-context.js +0 -60
  833. package/dist/theme/theme-context.js.map +0 -1
  834. package/dist/theme/theme-script.d.ts +0 -27
  835. package/dist/theme/theme-script.d.ts.map +0 -1
  836. package/dist/theme/theme-script.js +0 -147
  837. package/dist/theme/theme-script.js.map +0 -1
  838. package/dist/theme/types.d.ts +0 -163
  839. package/dist/theme/types.d.ts.map +0 -1
  840. package/dist/theme/types.js +0 -11
  841. package/dist/theme/types.js.map +0 -1
  842. package/dist/theme/use-theme.d.ts +0 -12
  843. package/dist/theme/use-theme.d.ts.map +0 -1
  844. package/dist/theme/use-theme.js +0 -40
  845. package/dist/theme/use-theme.js.map +0 -1
  846. package/dist/types.d.ts +0 -1479
  847. package/dist/types.d.ts.map +0 -1
  848. package/dist/types.js +0 -10
  849. package/dist/types.js.map +0 -1
  850. package/dist/urls.d.ts +0 -441
  851. package/dist/urls.d.ts.map +0 -1
  852. package/dist/urls.gen.d.ts +0 -8
  853. package/dist/urls.gen.d.ts.map +0 -1
  854. package/dist/urls.gen.js +0 -8
  855. package/dist/urls.gen.js.map +0 -1
  856. package/dist/urls.js +0 -443
  857. package/dist/urls.js.map +0 -1
  858. package/dist/use-loader.d.ts +0 -127
  859. package/dist/use-loader.d.ts.map +0 -1
  860. package/dist/use-loader.js +0 -237
  861. package/dist/use-loader.js.map +0 -1
  862. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  863. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  864. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  865. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  866. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  867. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  868. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  869. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  870. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  871. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  872. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  873. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  874. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  875. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  876. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  877. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  878. package/dist/vite/ast-handler-extract.d.ts +0 -49
  879. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  880. package/dist/vite/ast-handler-extract.js +0 -249
  881. package/dist/vite/ast-handler-extract.js.map +0 -1
  882. package/dist/vite/expose-action-id.d.ts +0 -19
  883. package/dist/vite/expose-action-id.d.ts.map +0 -1
  884. package/dist/vite/expose-action-id.js +0 -250
  885. package/dist/vite/expose-action-id.js.map +0 -1
  886. package/dist/vite/expose-id-utils.d.ts +0 -69
  887. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  888. package/dist/vite/expose-id-utils.js +0 -289
  889. package/dist/vite/expose-id-utils.js.map +0 -1
  890. package/dist/vite/expose-internal-ids.d.ts +0 -22
  891. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  892. package/dist/vite/expose-internal-ids.js +0 -886
  893. package/dist/vite/expose-internal-ids.js.map +0 -1
  894. package/dist/vite/index.d.ts +0 -149
  895. package/dist/vite/index.d.ts.map +0 -1
  896. package/dist/vite/index.js.map +0 -1
  897. package/dist/vite/index.named-routes.gen.ts +0 -103
  898. package/dist/vite/package-resolution.d.ts +0 -43
  899. package/dist/vite/package-resolution.d.ts.map +0 -1
  900. package/dist/vite/package-resolution.js +0 -112
  901. package/dist/vite/package-resolution.js.map +0 -1
  902. package/dist/vite/virtual-entries.d.ts +0 -25
  903. package/dist/vite/virtual-entries.d.ts.map +0 -1
  904. package/dist/vite/virtual-entries.js +0 -110
  905. package/dist/vite/virtual-entries.js.map +0 -1
  906. package/src/browser/debug-channel.ts +0 -93
@@ -1,8 +1,13 @@
1
1
  import type { Plugin } from "vite";
2
2
 
3
3
  /**
4
- * Vite plugin that triggers a full browser reload when Ctrl+R is pressed
5
- * in the terminal running the dev server.
4
+ * Vite plugin that triggers a full browser reload from terminal input.
5
+ *
6
+ * This plugin is intentionally passive:
7
+ * - it never enables raw mode on stdin
8
+ * - it never restores terminal state
9
+ * - it reacts to Ctrl+R when that raw byte reaches the process
10
+ * - it also supports safe line-based fallbacks like "e" + Enter
6
11
  *
7
12
  * Usage:
8
13
  * ```ts
@@ -20,35 +25,95 @@ export function poke(): Plugin {
20
25
 
21
26
  configureServer(server) {
22
27
  const stdin = process.stdin;
28
+ const debug = process.env.RANGO_POKE_DEBUG === "1";
29
+
30
+ const triggerReload = (source: string) => {
31
+ server.hot.send({ type: "full-reload", path: "*" });
32
+ server.config.logger.info(` browser reload (${source})`, {
33
+ timestamp: true,
34
+ });
35
+ };
36
+
37
+ const toBuffer = (chunk: string | Buffer): Buffer => {
38
+ return typeof chunk === "string" ? Buffer.from(chunk, "utf8") : chunk;
39
+ };
40
+
41
+ const formatChunk = (chunk: string | Buffer): string => {
42
+ const data = toBuffer(chunk);
43
+ const hex = Array.from(data)
44
+ .map((byte) => `0x${byte.toString(16).padStart(2, "0")}`)
45
+ .join(" ");
46
+ const ascii = Array.from(data)
47
+ .map((byte) => {
48
+ if (byte >= 0x20 && byte <= 0x7e) return String.fromCharCode(byte);
49
+ if (byte === 0x0a) return "\\n";
50
+ if (byte === 0x0d) return "\\r";
51
+ if (byte === 0x09) return "\\t";
52
+ return ".";
53
+ })
54
+ .join("");
55
+ return `len=${data.length} hex=[${hex}] ascii="${ascii}"`;
56
+ };
57
+
58
+ const readCtrlR = (chunk: string | Buffer): boolean => {
59
+ const data =
60
+ typeof chunk === "string" ? Buffer.from(chunk, "utf8") : chunk;
61
+ return data.length === 1 && data[0] === 0x12;
62
+ };
63
+
64
+ const readSubmittedCommands = (chunk: string | Buffer): string[] => {
65
+ const text = toBuffer(chunk)
66
+ .toString("utf8")
67
+ .replace(/\r\n/g, "\n")
68
+ .replace(/\r/g, "\n");
69
+
70
+ if (!text.includes("\n")) return [];
71
+
72
+ const lines = text.split("\n");
73
+ lines.pop();
74
+ return lines;
75
+ };
76
+
77
+ if (debug) {
78
+ server.config.logger.info(
79
+ ` poke debug enabled (isTTY=${stdin.isTTY ? "yes" : "no"}, isRaw=${stdin.isTTY ? (stdin.isRaw ? "yes" : "no") : "n/a"})`,
80
+ { timestamp: true },
81
+ );
82
+ }
23
83
 
24
- // Raw mode delivers individual keystrokes as immediate single-byte
25
- // events instead of waiting for Enter (cooked/line-buffered mode).
26
- // Without it, Ctrl+R (0x12) is never delivered as a discrete byte.
27
- // When stdin is a pipe (CI, spawned process) setRawMode is unavailable
28
- // but data already arrives unbuffered, so the isTTY guard suffices.
29
- const previousRawMode = stdin.isTTY ? stdin.isRaw : null;
30
84
  if (stdin.isTTY) {
31
- stdin.setRawMode(true);
85
+ server.config.logger.info(
86
+ " poke ready: press e + enter to reload browser (ctrl+r also works when available)",
87
+ { timestamp: true },
88
+ );
32
89
  }
33
90
 
34
- const onData = (data: Buffer) => {
35
- if (data.length !== 1) return;
91
+ const onData = (data: string | Buffer) => {
92
+ if (debug) {
93
+ server.config.logger.info(` poke stdin ${formatChunk(data)}`, {
94
+ timestamp: true,
95
+ });
96
+ }
36
97
 
37
- // Ctrl+C (0x03) defensive fallback. This plugin enables raw mode
38
- // before Vite's internal stdin handler is registered (user plugins
39
- // run first), so there is a brief window where Ctrl+C would be
40
- // swallowed. Re-emit SIGINT so the process exits as expected.
41
- if (data[0] === 0x03) {
42
- process.emit("SIGINT", "SIGINT");
98
+ // Only react to the exact Ctrl+R byte when some host terminal or
99
+ // wrapper already delivers it to this process. We intentionally do
100
+ // not enable raw mode here because that can steal Vite shortcuts
101
+ // like "r" / "q" and interfere with terminal-level controls.
102
+ if (readCtrlR(data)) {
103
+ triggerReload("ctrl+r");
43
104
  return;
44
105
  }
45
106
 
46
- // Ctrl+R = 0x12 in raw mode
47
- if (data[0] === 0x12) {
48
- server.hot.send({ type: "full-reload", path: "*" });
49
- server.config.logger.info(" browser reload (ctrl+r)", {
50
- timestamp: true,
51
- });
107
+ for (const command of readSubmittedCommands(data)) {
108
+ if (command === "e") {
109
+ triggerReload("e+enter");
110
+ return;
111
+ }
112
+
113
+ if (command === "\u001br") {
114
+ triggerReload("option+r+enter");
115
+ return;
116
+ }
52
117
  }
53
118
  };
54
119
 
@@ -56,9 +121,6 @@ export function poke(): Plugin {
56
121
 
57
122
  server.httpServer?.on("close", () => {
58
123
  stdin.off("data", onData);
59
- if (stdin.isTTY && previousRawMode !== null) {
60
- stdin.setRawMode(previousRawMode);
61
- }
62
124
  });
63
125
  },
64
126
  };
package/src/vite/rango.ts CHANGED
@@ -61,7 +61,16 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
61
61
 
62
62
  // Get package resolution info (workspace vs npm install)
63
63
  const rangoAliases = getPackageAliases();
64
- const excludeDeps = getExcludeDeps();
64
+ const excludeDeps = [
65
+ ...getExcludeDeps(),
66
+ // The public browser entry re-exports the RSDW browser client.
67
+ // Excluding both keeps Vite from freezing the unpatched bundle into
68
+ // .vite/deps before our source transforms run.
69
+ "@vitejs/plugin-rsc/browser",
70
+ // Keep the browser RSDW client out of Vite's dep optimizer so our
71
+ // cjs-to-esm transform can patch the real file.
72
+ "@vitejs/plugin-rsc/vendor/react-server-dom/client.browser",
73
+ ];
65
74
 
66
75
  // Mutable ref for router path (node preset only).
67
76
  // Set immediately when user-specified, or populated by the auto-discover
@@ -183,6 +192,9 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
183
192
 
184
193
  plugins.push(createVirtualEntriesPlugin(finalEntries));
185
194
 
195
+ // Dev-only: RSDW client patch for React Performance Tracks
196
+ plugins.push(performanceTracksPlugin());
197
+
186
198
  // Add RSC plugin with cloudflare-specific options
187
199
  // Note: loadModuleDevProxy should NOT be used with childEnvironments
188
200
  // since SSR runs in workerd alongside RSC
@@ -335,6 +347,9 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
335
347
  // Add virtual entries plugin (RSC entry generated lazily from routerRef)
336
348
  plugins.push(createVirtualEntriesPlugin(finalEntries, routerRef));
337
349
 
350
+ // Dev-only: RSDW client patch for React Performance Tracks
351
+ plugins.push(performanceTracksPlugin());
352
+
338
353
  plugins.push(
339
354
  rsc({
340
355
  entries: finalEntries,
@@ -438,12 +453,10 @@ export async function rango(options?: RangoOptions): Promise<PluginOption[]> {
438
453
  createRouterDiscoveryPlugin(discoveryEntryPath, {
439
454
  routerPathRef: discoveryRouterRef,
440
455
  enableBuildPrerender: prerenderEnabled,
441
- staticRouteTypesGeneration: resolvedOptions.staticRouteTypesGeneration,
456
+ buildEnv: options?.buildEnv,
457
+ preset,
442
458
  }),
443
459
  );
444
460
 
445
- // Dev-only: React Performance Tracks (debugChannel transport via HMR WS)
446
- plugins.push(performanceTracksPlugin());
447
-
448
461
  return plugins;
449
462
  }
@@ -10,6 +10,8 @@ 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 } from "node:module";
14
+ import { pathToFileURL } from "node:url";
13
15
  import {
14
16
  formatNestedRouterConflictError,
15
17
  findNestedRouterConflict,
@@ -94,6 +96,105 @@ async function createTempRscServer(
94
96
  });
95
97
  }
96
98
 
99
+ // ============================================================================
100
+ // Build-Time Env Resolution
101
+ // ============================================================================
102
+
103
+ import type {
104
+ BuildEnvOption,
105
+ BuildEnvFactoryContext,
106
+ BuildEnvResult,
107
+ } from "./plugin-types.js";
108
+
109
+ /**
110
+ * Resolve the buildEnv option into a concrete { env, dispose? } result.
111
+ * Handles all four input shapes: false, "auto", factory, plain object.
112
+ */
113
+ async function resolveBuildEnv(
114
+ option: BuildEnvOption | undefined,
115
+ factoryCtx: BuildEnvFactoryContext,
116
+ ): Promise<BuildEnvResult | null> {
117
+ if (!option) return null;
118
+
119
+ if (option === "auto") {
120
+ if (factoryCtx.preset !== "cloudflare") {
121
+ throw new Error(
122
+ '[rsc-router] buildEnv: "auto" is only supported with preset: "cloudflare". ' +
123
+ "Use a factory function or plain object for other presets.",
124
+ );
125
+ }
126
+ try {
127
+ // Resolve wrangler from the user's project root (not the router package)
128
+ const userRequire = createRequire(
129
+ resolve(factoryCtx.root, "package.json"),
130
+ );
131
+ const wranglerPath = userRequire.resolve("wrangler");
132
+ const { getPlatformProxy } = (await import(
133
+ pathToFileURL(wranglerPath).href
134
+ )) as {
135
+ getPlatformProxy: (opts?: any) => Promise<any>;
136
+ };
137
+ const proxy = await getPlatformProxy();
138
+ return {
139
+ env: proxy.env as Record<string, unknown>,
140
+ dispose: proxy.dispose,
141
+ };
142
+ } catch (err: any) {
143
+ throw new Error(
144
+ '[rsc-router] buildEnv: "auto" requires wrangler to be installed.\n' +
145
+ `Install it with: pnpm add -D wrangler\n${err.message}`,
146
+ );
147
+ }
148
+ }
149
+
150
+ if (typeof option === "function") {
151
+ return await option(factoryCtx);
152
+ }
153
+
154
+ // Plain object
155
+ return { env: option };
156
+ }
157
+
158
+ /**
159
+ * Acquire build-time env bindings and store on discovery state.
160
+ * Returns true if env was acquired, false if buildEnv is disabled.
161
+ */
162
+ async function acquireBuildEnv(
163
+ s: DiscoveryState,
164
+ command: "serve" | "build",
165
+ mode: string,
166
+ ): Promise<boolean> {
167
+ const option = s.opts?.buildEnv;
168
+ if (!option) return false;
169
+
170
+ const result = await resolveBuildEnv(option, {
171
+ root: s.projectRoot,
172
+ mode,
173
+ command,
174
+ preset: s.opts?.preset ?? "node",
175
+ });
176
+ if (!result) return false;
177
+
178
+ s.resolvedBuildEnv = result.env;
179
+ s.buildEnvDispose = result.dispose ?? null;
180
+ return true;
181
+ }
182
+
183
+ /**
184
+ * Release build-time env resources and clear state.
185
+ */
186
+ async function releaseBuildEnv(s: DiscoveryState): Promise<void> {
187
+ if (s.buildEnvDispose) {
188
+ try {
189
+ await s.buildEnvDispose();
190
+ } catch (err: any) {
191
+ console.warn(`[rsc-router] buildEnv dispose failed: ${err.message}`);
192
+ }
193
+ s.buildEnvDispose = null;
194
+ }
195
+ s.resolvedBuildEnv = undefined;
196
+ }
197
+
97
198
  /**
98
199
  * Plugin that discovers router instances at dev/build time via the RSC environment.
99
200
  *
@@ -111,6 +212,8 @@ export function createRouterDiscoveryPlugin(
111
212
  opts?: PluginOptions,
112
213
  ): Plugin {
113
214
  const s = createDiscoveryState(entryPath, opts);
215
+ let viteCommand: "serve" | "build" = "build";
216
+ let viteMode = "production";
114
217
 
115
218
  return {
116
219
  name: "@rangojs/router:discovery",
@@ -121,32 +224,20 @@ export function createRouterDiscoveryPlugin(
121
224
  __RANGO_DEBUG__: JSON.stringify(!!process.env.INTERNAL_RANGO_DEBUG),
122
225
  },
123
226
  };
124
- if (opts?.enableBuildPrerender) {
125
- config.environments = {
126
- rsc: {
127
- build: {
128
- rollupOptions: {
129
- output: {
130
- manualChunks(id: string) {
131
- if (s.resolvedPrerenderModules?.has(id)) {
132
- return "__prerender-handlers";
133
- }
134
- if (s.resolvedStaticModules?.has(id)) {
135
- return "__static-handlers";
136
- }
137
- },
138
- },
139
- },
140
- },
141
- },
142
- };
143
- }
227
+ // Prerender/static handler modules are bundled naturally with the
228
+ // rest of the RSC entry. A previous design forced them into dedicated
229
+ // __prerender-handlers / __static-handlers chunks via manualChunks,
230
+ // but Rollup hoisted all shared dependencies into those chunks,
231
+ // inflating them to ~1 MB with active runtime code. Handler code is
232
+ // evicted in closeBundle regardless of which chunk it lands in.
144
233
  return config;
145
234
  },
146
235
 
147
236
  configResolved(config) {
148
237
  s.projectRoot = config.root;
149
238
  s.isBuildMode = config.command === "build";
239
+ viteCommand = config.command as "serve" | "build";
240
+ viteMode = config.mode;
150
241
  // Capture user's resolve aliases for the temp server
151
242
  s.userResolveAlias = config.resolve.alias;
152
243
  // Node preset: pick up auto-discovered router path from the config() hook.
@@ -217,12 +308,13 @@ export function createRouterDiscoveryPlugin(
217
308
  let prerenderTempServer: any = null;
218
309
  let prerenderNodeRegistry: Map<string, any> | null = null;
219
310
 
220
- // Clean up the temporary server when the dev server shuts down
311
+ // Clean up the temporary server and build env when the dev server shuts down
221
312
  server.httpServer?.on("close", () => {
222
313
  if (prerenderTempServer) {
223
314
  prerenderTempServer.close().catch(() => {});
224
315
  prerenderTempServer = null;
225
316
  }
317
+ releaseBuildEnv(s).catch(() => {});
226
318
  });
227
319
 
228
320
  async function getOrCreateTempServer(): Promise<any | null> {
@@ -262,6 +354,9 @@ export function createRouterDiscoveryPlugin(
262
354
  // Create a temp Node.js server to run runtime discovery and generate
263
355
  // named route types (static parser can't resolve factory calls).
264
356
  try {
357
+ // Acquire build-time env bindings for dev prerender
358
+ await acquireBuildEnv(s, viteCommand, viteMode);
359
+
265
360
  const tempRscEnv = await getOrCreateTempServer();
266
361
  if (tempRscEnv) {
267
362
  await discoverRouters(s, tempRscEnv);
@@ -278,6 +373,9 @@ export function createRouterDiscoveryPlugin(
278
373
  }
279
374
 
280
375
  try {
376
+ // Acquire build-time env bindings for dev prerender (Node.js path)
377
+ await acquireBuildEnv(s, viteCommand, viteMode);
378
+
281
379
  // Set the readiness gate BEFORE discovery so early requests
282
380
  // block until manifest is populated
283
381
  const serverMod = await rscEnv.runner.import(
@@ -382,9 +480,31 @@ export function createRouterDiscoveryPlugin(
382
480
  return;
383
481
  }
384
482
 
385
- // Prefer the main server's registry (Node.js preset: module runner available).
386
- // Fall back to a temp server for Cloudflare where the main RSC env uses workerd.
387
- let registry = mainRegistry;
483
+ // Import the user's entry module to force re-evaluation of any
484
+ // HMR-invalidated modules in the chain (entry router urls handlers).
485
+ // This ensures createRouter() re-runs with updated handler code before
486
+ // we read RouterRegistry. Without this, edits to prerender handler files
487
+ // produce stale content because the old router instance remains registered.
488
+ const rscEnv = (server.environments as any)?.rsc;
489
+ let registry: Map<string, any> | null = null;
490
+ if (rscEnv?.runner && s.resolvedEntryPath) {
491
+ try {
492
+ await rscEnv.runner.import(s.resolvedEntryPath);
493
+ const serverMod = await rscEnv.runner.import(
494
+ "@rangojs/router/server",
495
+ );
496
+ registry = serverMod.RouterRegistry ?? null;
497
+ } catch (err: any) {
498
+ console.warn(
499
+ `[rsc-router] Dev prerender module refresh failed: ${err.message}`,
500
+ );
501
+ res.statusCode = 500;
502
+ res.end(`Prerender handler error: ${err.message}`);
503
+ return;
504
+ }
505
+ } else {
506
+ registry = mainRegistry;
507
+ }
388
508
 
389
509
  if (!registry) {
390
510
  // No main registry: the RSC env has no module runner (Cloudflare dev).
@@ -413,6 +533,8 @@ export function createRouterDiscoveryPlugin(
413
533
  {},
414
534
  undefined,
415
535
  wantPassthrough,
536
+ s.resolvedBuildEnv,
537
+ true, // devMode: check getParams for passthrough routes
416
538
  );
417
539
  if (!result) continue;
418
540
  if (result.passthrough) continue;
@@ -601,6 +723,9 @@ export function createRouterDiscoveryPlugin(
601
723
  s.prerenderManifestEntries = null;
602
724
  s.staticManifestEntries = null;
603
725
 
726
+ // Acquire build-time env bindings if configured
727
+ await acquireBuildEnv(s, viteCommand, viteMode);
728
+
604
729
  let tempServer: any = null;
605
730
  // Signal to user-space code (e.g. reverse.ts) that build-time discovery
606
731
  // is active. Uses globalThis because the temp server's module runner
@@ -659,6 +784,7 @@ export function createRouterDiscoveryPlugin(
659
784
  if (tempServer) {
660
785
  await tempServer.close();
661
786
  }
787
+ await releaseBuildEnv(s);
662
788
  }
663
789
  },
664
790
 
@@ -719,33 +845,40 @@ export function createRouterDiscoveryPlugin(
719
845
  if (!s.resolvedPrerenderModules?.size && !s.resolvedStaticModules?.size)
720
846
  return;
721
847
 
848
+ // Clear maps at the start of each RSC generateBundle pass.
849
+ // Vite 6 multi-environment builds run RSC twice (analysis + production);
850
+ // clearing prevents stale/duplicate records from the analysis pass.
851
+ s.handlerChunkInfoMap.clear();
852
+ s.staticHandlerChunkInfoMap.clear();
853
+
722
854
  for (const [fileName, chunk] of Object.entries(bundle) as [
723
855
  string,
724
856
  any,
725
857
  ][]) {
726
858
  if (chunk.type !== "chunk") continue;
727
859
 
728
- // Prerender handlers chunk
729
- if (
730
- fileName.includes("__prerender-handlers") &&
731
- s.resolvedPrerenderModules?.size
732
- ) {
860
+ // Scan all chunks for handler exports (handlers may land in any chunk)
861
+ if (s.resolvedPrerenderModules?.size) {
733
862
  const handlers = extractHandlerExportsFromChunk(
734
863
  chunk.code,
735
864
  s.resolvedPrerenderModules,
736
865
  "Prerender",
737
- true,
866
+ false,
738
867
  );
739
868
  if (handlers.length > 0) {
740
- s.handlerChunkInfo = { fileName, exports: handlers };
869
+ const existing = s.handlerChunkInfoMap.get(fileName);
870
+ if (existing) {
871
+ existing.exports.push(...handlers);
872
+ } else {
873
+ s.handlerChunkInfoMap.set(fileName, {
874
+ fileName,
875
+ exports: handlers,
876
+ });
877
+ }
741
878
  }
742
879
  }
743
880
 
744
- // Static handlers chunk
745
- if (
746
- fileName.includes("__static-handlers") &&
747
- s.resolvedStaticModules?.size
748
- ) {
881
+ if (s.resolvedStaticModules?.size) {
749
882
  const handlers = extractHandlerExportsFromChunk(
750
883
  chunk.code,
751
884
  s.resolvedStaticModules,
@@ -753,7 +886,15 @@ export function createRouterDiscoveryPlugin(
753
886
  false,
754
887
  );
755
888
  if (handlers.length > 0) {
756
- s.staticHandlerChunkInfo = { fileName, exports: handlers };
889
+ const existing = s.staticHandlerChunkInfoMap.get(fileName);
890
+ if (existing) {
891
+ existing.exports.push(...handlers);
892
+ } else {
893
+ s.staticHandlerChunkInfoMap.set(fileName, {
894
+ fileName,
895
+ exports: handlers,
896
+ });
897
+ }
757
898
  }
758
899
  }
759
900
  }
@@ -31,6 +31,7 @@ export function encodePathParam(value: unknown): string {
31
31
  /**
32
32
  * Substitute route params into a pattern, stripping constraint and optional
33
33
  * syntax (:param(a|b)? -> value). Also handles wildcard params (*key).
34
+ * Optional params not present in `params` are removed from the output.
34
35
  */
35
36
  export function substituteRouteParams(
36
37
  pattern: string,
@@ -38,6 +39,9 @@ export function substituteRouteParams(
38
39
  encode: (value: string) => string = encodeURIComponent,
39
40
  ): string {
40
41
  let result = pattern;
42
+ let hadOmittedOptional = false;
43
+
44
+ // First pass: substitute provided params
41
45
  for (const [key, value] of Object.entries(params)) {
42
46
  const escaped = escapeRegExp(key);
43
47
  result = result.replace(
@@ -46,6 +50,20 @@ export function substituteRouteParams(
46
50
  );
47
51
  result = result.replace(`*${key}`, encode(value));
48
52
  }
53
+
54
+ // Second pass: strip remaining optional param placeholders not in params
55
+ result = result.replace(/:([a-zA-Z_][a-zA-Z0-9_]*)(\([^)]*\))?\?/g, () => {
56
+ hadOmittedOptional = true;
57
+ return "";
58
+ });
59
+
60
+ // Clean up slashes from omitted optional segments
61
+ if (hadOmittedOptional) {
62
+ const hadTrailingSlash = pattern.length > 1 && pattern.endsWith("/");
63
+ result = result.replace(/\/\/+/g, "/").replace(/\/+$/, "") || "/";
64
+ if (hadTrailingSlash && !result.endsWith("/")) result += "/";
65
+ }
66
+
49
67
  return result;
50
68
  }
51
69
 
@@ -1,6 +1,7 @@
1
1
  import type { Plugin } from "vite";
2
2
  import * as Vite from "vite";
3
3
  import { getPublishedPackageName } from "./package-resolution.js";
4
+ import { performanceTracksOptimizeDepsPlugin } from "../plugins/performance-tracks.js";
4
5
  import {
5
6
  VIRTUAL_ENTRY_BROWSER,
6
7
  VIRTUAL_ENTRY_SSR,
@@ -35,9 +36,9 @@ const versionEsbuildPlugin = {
35
36
  * Includes the version stub plugin for all environments.
36
37
  */
37
38
  export const sharedEsbuildOptions: {
38
- plugins: (typeof versionEsbuildPlugin)[];
39
+ plugins: any[];
39
40
  } = {
40
- plugins: [versionEsbuildPlugin],
41
+ plugins: [versionEsbuildPlugin, performanceTracksOptimizeDepsPlugin()],
41
42
  };
42
43
 
43
44
  /**
@@ -1,83 +0,0 @@
1
- /**
2
- * Internal Types - Implementation Details
3
- *
4
- * @internal
5
- * These types are for internal use only and should not be relied upon by consumers.
6
- * They may change without notice between versions.
7
- *
8
- * If you find yourself needing these types, please open an issue to discuss
9
- * adding them to the public API.
10
- */
11
- /**
12
- * @internal
13
- * Internal representation of a resolved route segment.
14
- * Used during route matching and rendering pipeline.
15
- */
16
- export type { ResolvedSegment, SegmentMetadata } from "./types.js";
17
- /**
18
- * @internal
19
- * Internal match result from route resolution.
20
- */
21
- export type { MatchResult, SlotState } from "./types.js";
22
- /**
23
- * @internal
24
- * Context for intercept route selection.
25
- */
26
- export type { InterceptSelectorContext, InterceptSegmentsState, InterceptWhenFn, } from "./server/context.js";
27
- /**
28
- * @internal
29
- * RSC protocol payload structure.
30
- */
31
- export type { RscPayload, ReactFormState } from "./rsc/types.js";
32
- /**
33
- * @internal
34
- * Internal navigation store interface.
35
- */
36
- export type { NavigationStore, NavigationBridge, RscMetadata, ActionResult, InflightAction, NavigationState, TrackedActionState, ActionStateListener, SegmentCache, SegmentState, NavigationUpdate, } from "./browser/types.js";
37
- /**
38
- * @internal
39
- * Internal handle storage mechanism.
40
- */
41
- export type { HandleStore, HandleData } from "./server/handle-store.js";
42
- /**
43
- * @internal
44
- * Segment handle data in cache.
45
- */
46
- export type { SegmentHandleData } from "./cache/types.js";
47
- /**
48
- * @internal
49
- * Internal cache entry data structure.
50
- */
51
- export type { CachedEntryData, CachedEntryResult, CacheGetResult, SerializedSegmentData, CacheDefaults, } from "./cache/types.js";
52
- /**
53
- * @internal
54
- * Router context for AsyncLocalStorage.
55
- */
56
- export type { RouterContext, RevalidationContext, InterceptResult } from "./router/router-context.js";
57
- /**
58
- * @internal
59
- * Route match context during pipeline processing.
60
- */
61
- export type { MatchContext, MatchPipelineState } from "./router/match-context.js";
62
- /**
63
- * @internal
64
- * Pattern matching result.
65
- */
66
- export type { RouteMatchResult } from "./router/pattern-matching.js";
67
- /**
68
- * @internal
69
- * Entry data during route traversal.
70
- */
71
- export type { EntryData, InterceptEntry, MetricsStore, PerformanceMetric, EntryCacheConfig, EntryPropCommon, EntryPropDatas, LoaderEntry, EntryPropSegments, } from "./server/context.js";
72
- /**
73
- * @internal
74
- * Internal handler context with additional props for router internals.
75
- * Includes `_originalRequest` and `_currentSegmentId`.
76
- */
77
- export type { InternalHandlerContext } from "./types.js";
78
- /**
79
- * @internal
80
- * Debug utilities for manifest inspection and comparison.
81
- */
82
- export { serializeManifest, compareManifests, formatManifestDiff, type SerializedEntry, type SerializedManifest, } from "./debug.js";
83
- //# sourceMappingURL=__internal.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"__internal.d.ts","sourceRoot":"","sources":["../src/__internal.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH;;;;GAIG;AACH,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEnE;;;GAGG;AACH,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAMzD;;;GAGG;AACH,YAAY,EACV,wBAAwB,EACxB,sBAAsB,EACtB,eAAe,GAChB,MAAM,qBAAqB,CAAC;AAM7B;;;GAGG;AACH,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEjE;;;GAGG;AACH,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,gBAAgB,GACjB,MAAM,oBAAoB,CAAC;AAM5B;;;GAGG;AACH,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAExE;;;GAGG;AACH,YAAY,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAM1D;;;GAGG;AACH,YAAY,EACV,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,qBAAqB,EACrB,aAAa,GACd,MAAM,kBAAkB,CAAC;AAM1B;;;GAGG;AACH,YAAY,EAAE,aAAa,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAMtG;;;GAGG;AACH,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAElF;;;GAGG;AACH,YAAY,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAMrE;;;GAGG;AACH,YAAY,EACV,SAAS,EACT,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,WAAW,EACX,iBAAiB,GAClB,MAAM,qBAAqB,CAAC;AAM7B;;;;GAIG;AACH,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAMzD;;;GAGG;AACH,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,KAAK,eAAe,EACpB,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC"}