@rangojs/router 0.0.0-experimental.73ab3466 → 0.0.0-experimental.73e3d61f

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 (835) hide show
  1. package/dist/vite/index.js +80 -150
  2. package/package.json +2 -2
  3. package/src/browser/app-version.ts +14 -0
  4. package/src/browser/navigation-bridge.ts +10 -3
  5. package/src/browser/navigation-client.ts +60 -64
  6. package/src/browser/partial-update.ts +10 -4
  7. package/src/browser/react/Link.tsx +3 -2
  8. package/src/browser/react/NavigationProvider.tsx +1 -1
  9. package/src/browser/react/context.ts +1 -2
  10. package/src/browser/react/use-router.ts +2 -1
  11. package/src/browser/rsc-router.tsx +18 -3
  12. package/src/browser/server-action-bridge.ts +3 -18
  13. package/src/browser/types.ts +2 -1
  14. package/src/deps/browser.ts +0 -1
  15. package/src/host/router.ts +19 -9
  16. package/src/router/intercept-resolution.ts +3 -2
  17. package/src/router/match-middleware/cache-lookup.ts +4 -1
  18. package/src/router/segment-resolution/fresh.ts +11 -3
  19. package/src/router/segment-resolution/revalidation.ts +8 -3
  20. package/src/router.ts +4 -1
  21. package/src/rsc/handler.ts +2 -27
  22. package/src/rsc/loader-fetch.ts +2 -7
  23. package/src/rsc/progressive-enhancement.ts +1 -4
  24. package/src/rsc/rsc-rendering.ts +1 -4
  25. package/src/rsc/server-action.ts +0 -2
  26. package/src/rsc/types.ts +0 -4
  27. package/src/server/context.ts +57 -1
  28. package/src/server/request-context.ts +0 -7
  29. package/src/vite/plugins/performance-tracks.ts +64 -216
  30. package/src/vite/rango.ts +15 -10
  31. package/src/vite/utils/shared-utils.ts +3 -2
  32. package/dist/__internal.d.ts +0 -83
  33. package/dist/__internal.d.ts.map +0 -1
  34. package/dist/__internal.js +0 -19
  35. package/dist/__internal.js.map +0 -1
  36. package/dist/__mocks__/version.d.ts +0 -7
  37. package/dist/__mocks__/version.d.ts.map +0 -1
  38. package/dist/__mocks__/version.js +0 -7
  39. package/dist/__mocks__/version.js.map +0 -1
  40. package/dist/__tests__/client-href.test.d.ts +0 -2
  41. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  42. package/dist/__tests__/client-href.test.js +0 -74
  43. package/dist/__tests__/client-href.test.js.map +0 -1
  44. package/dist/__tests__/component-utils.test.d.ts +0 -2
  45. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  46. package/dist/__tests__/component-utils.test.js +0 -51
  47. package/dist/__tests__/component-utils.test.js.map +0 -1
  48. package/dist/__tests__/event-controller.test.d.ts +0 -2
  49. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  50. package/dist/__tests__/event-controller.test.js +0 -538
  51. package/dist/__tests__/event-controller.test.js.map +0 -1
  52. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  53. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  54. package/dist/__tests__/helpers/route-tree.js +0 -374
  55. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  56. package/dist/__tests__/match-result.test.d.ts +0 -2
  57. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  58. package/dist/__tests__/match-result.test.js +0 -154
  59. package/dist/__tests__/match-result.test.js.map +0 -1
  60. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  61. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  62. package/dist/__tests__/navigation-store.test.js +0 -440
  63. package/dist/__tests__/navigation-store.test.js.map +0 -1
  64. package/dist/__tests__/partial-update.test.d.ts +0 -2
  65. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  66. package/dist/__tests__/partial-update.test.js +0 -1009
  67. package/dist/__tests__/partial-update.test.js.map +0 -1
  68. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  69. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  70. package/dist/__tests__/reverse-types.test.js +0 -656
  71. package/dist/__tests__/reverse-types.test.js.map +0 -1
  72. package/dist/__tests__/route-definition.test.d.ts +0 -2
  73. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  74. package/dist/__tests__/route-definition.test.js +0 -55
  75. package/dist/__tests__/route-definition.test.js.map +0 -1
  76. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  77. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  78. package/dist/__tests__/router-helpers.test.js +0 -377
  79. package/dist/__tests__/router-helpers.test.js.map +0 -1
  80. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  81. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  82. package/dist/__tests__/router-integration-2.test.js +0 -426
  83. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  84. package/dist/__tests__/router-integration.test.d.ts +0 -2
  85. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  86. package/dist/__tests__/router-integration.test.js +0 -1051
  87. package/dist/__tests__/router-integration.test.js.map +0 -1
  88. package/dist/__tests__/search-params.test.d.ts +0 -5
  89. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  90. package/dist/__tests__/search-params.test.js +0 -306
  91. package/dist/__tests__/search-params.test.js.map +0 -1
  92. package/dist/__tests__/segment-system.test.d.ts +0 -2
  93. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  94. package/dist/__tests__/segment-system.test.js +0 -627
  95. package/dist/__tests__/segment-system.test.js.map +0 -1
  96. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  97. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  98. package/dist/__tests__/static-handler-types.test.js +0 -63
  99. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  100. package/dist/__tests__/urls.test.d.ts +0 -2
  101. package/dist/__tests__/urls.test.d.ts.map +0 -1
  102. package/dist/__tests__/urls.test.js +0 -421
  103. package/dist/__tests__/urls.test.js.map +0 -1
  104. package/dist/__tests__/use-mount.test.d.ts +0 -2
  105. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  106. package/dist/__tests__/use-mount.test.js +0 -35
  107. package/dist/__tests__/use-mount.test.js.map +0 -1
  108. package/dist/bin/rango.d.ts +0 -2
  109. package/dist/bin/rango.d.ts.map +0 -1
  110. package/dist/bin/rango.js.map +0 -1
  111. package/dist/browser/event-controller.d.ts +0 -191
  112. package/dist/browser/event-controller.d.ts.map +0 -1
  113. package/dist/browser/event-controller.js +0 -559
  114. package/dist/browser/event-controller.js.map +0 -1
  115. package/dist/browser/index.d.ts +0 -2
  116. package/dist/browser/index.d.ts.map +0 -1
  117. package/dist/browser/index.js +0 -14
  118. package/dist/browser/index.js.map +0 -1
  119. package/dist/browser/link-interceptor.d.ts +0 -38
  120. package/dist/browser/link-interceptor.d.ts.map +0 -1
  121. package/dist/browser/link-interceptor.js +0 -99
  122. package/dist/browser/link-interceptor.js.map +0 -1
  123. package/dist/browser/logging.d.ts +0 -10
  124. package/dist/browser/logging.d.ts.map +0 -1
  125. package/dist/browser/logging.js +0 -29
  126. package/dist/browser/logging.js.map +0 -1
  127. package/dist/browser/lru-cache.d.ts +0 -17
  128. package/dist/browser/lru-cache.d.ts.map +0 -1
  129. package/dist/browser/lru-cache.js +0 -50
  130. package/dist/browser/lru-cache.js.map +0 -1
  131. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  132. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  133. package/dist/browser/merge-segment-loaders.js +0 -102
  134. package/dist/browser/merge-segment-loaders.js.map +0 -1
  135. package/dist/browser/navigation-bridge.d.ts +0 -102
  136. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  137. package/dist/browser/navigation-bridge.js +0 -708
  138. package/dist/browser/navigation-bridge.js.map +0 -1
  139. package/dist/browser/navigation-client.d.ts +0 -25
  140. package/dist/browser/navigation-client.d.ts.map +0 -1
  141. package/dist/browser/navigation-client.js +0 -157
  142. package/dist/browser/navigation-client.js.map +0 -1
  143. package/dist/browser/navigation-store.d.ts +0 -101
  144. package/dist/browser/navigation-store.d.ts.map +0 -1
  145. package/dist/browser/navigation-store.js +0 -625
  146. package/dist/browser/navigation-store.js.map +0 -1
  147. package/dist/browser/partial-update.d.ts +0 -75
  148. package/dist/browser/partial-update.d.ts.map +0 -1
  149. package/dist/browser/partial-update.js +0 -426
  150. package/dist/browser/partial-update.js.map +0 -1
  151. package/dist/browser/react/Link.d.ts +0 -86
  152. package/dist/browser/react/Link.d.ts.map +0 -1
  153. package/dist/browser/react/Link.js +0 -128
  154. package/dist/browser/react/Link.js.map +0 -1
  155. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  156. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  157. package/dist/browser/react/NavigationProvider.js +0 -216
  158. package/dist/browser/react/NavigationProvider.js.map +0 -1
  159. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  160. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  161. package/dist/browser/react/ScrollRestoration.js +0 -57
  162. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  163. package/dist/browser/react/context.d.ts +0 -46
  164. package/dist/browser/react/context.d.ts.map +0 -1
  165. package/dist/browser/react/context.js +0 -10
  166. package/dist/browser/react/context.js.map +0 -1
  167. package/dist/browser/react/index.d.ts +0 -11
  168. package/dist/browser/react/index.d.ts.map +0 -1
  169. package/dist/browser/react/index.js +0 -22
  170. package/dist/browser/react/index.js.map +0 -1
  171. package/dist/browser/react/location-state-shared.d.ts +0 -63
  172. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  173. package/dist/browser/react/location-state-shared.js +0 -81
  174. package/dist/browser/react/location-state-shared.js.map +0 -1
  175. package/dist/browser/react/location-state.d.ts +0 -23
  176. package/dist/browser/react/location-state.d.ts.map +0 -1
  177. package/dist/browser/react/location-state.js +0 -29
  178. package/dist/browser/react/location-state.js.map +0 -1
  179. package/dist/browser/react/mount-context.d.ts +0 -24
  180. package/dist/browser/react/mount-context.d.ts.map +0 -1
  181. package/dist/browser/react/mount-context.js +0 -24
  182. package/dist/browser/react/mount-context.js.map +0 -1
  183. package/dist/browser/react/use-action.d.ts +0 -64
  184. package/dist/browser/react/use-action.d.ts.map +0 -1
  185. package/dist/browser/react/use-action.js +0 -134
  186. package/dist/browser/react/use-action.js.map +0 -1
  187. package/dist/browser/react/use-client-cache.d.ts +0 -41
  188. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  189. package/dist/browser/react/use-client-cache.js +0 -39
  190. package/dist/browser/react/use-client-cache.js.map +0 -1
  191. package/dist/browser/react/use-handle.d.ts +0 -31
  192. package/dist/browser/react/use-handle.d.ts.map +0 -1
  193. package/dist/browser/react/use-handle.js +0 -144
  194. package/dist/browser/react/use-handle.js.map +0 -1
  195. package/dist/browser/react/use-href.d.ts +0 -33
  196. package/dist/browser/react/use-href.d.ts.map +0 -1
  197. package/dist/browser/react/use-href.js +0 -39
  198. package/dist/browser/react/use-href.js.map +0 -1
  199. package/dist/browser/react/use-link-status.d.ts +0 -37
  200. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  201. package/dist/browser/react/use-link-status.js +0 -99
  202. package/dist/browser/react/use-link-status.js.map +0 -1
  203. package/dist/browser/react/use-mount.d.ts +0 -25
  204. package/dist/browser/react/use-mount.d.ts.map +0 -1
  205. package/dist/browser/react/use-mount.js +0 -30
  206. package/dist/browser/react/use-mount.js.map +0 -1
  207. package/dist/browser/react/use-navigation.d.ts +0 -27
  208. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  209. package/dist/browser/react/use-navigation.js +0 -87
  210. package/dist/browser/react/use-navigation.js.map +0 -1
  211. package/dist/browser/react/use-segments.d.ts +0 -38
  212. package/dist/browser/react/use-segments.d.ts.map +0 -1
  213. package/dist/browser/react/use-segments.js +0 -130
  214. package/dist/browser/react/use-segments.js.map +0 -1
  215. package/dist/browser/request-controller.d.ts +0 -26
  216. package/dist/browser/request-controller.d.ts.map +0 -1
  217. package/dist/browser/request-controller.js +0 -147
  218. package/dist/browser/request-controller.js.map +0 -1
  219. package/dist/browser/rsc-router.d.ts +0 -129
  220. package/dist/browser/rsc-router.d.ts.map +0 -1
  221. package/dist/browser/rsc-router.js +0 -195
  222. package/dist/browser/rsc-router.js.map +0 -1
  223. package/dist/browser/scroll-restoration.d.ts +0 -93
  224. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  225. package/dist/browser/scroll-restoration.js +0 -321
  226. package/dist/browser/scroll-restoration.js.map +0 -1
  227. package/dist/browser/segment-structure-assert.d.ts +0 -17
  228. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  229. package/dist/browser/segment-structure-assert.js +0 -59
  230. package/dist/browser/segment-structure-assert.js.map +0 -1
  231. package/dist/browser/server-action-bridge.d.ts +0 -26
  232. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  233. package/dist/browser/server-action-bridge.js +0 -668
  234. package/dist/browser/server-action-bridge.js.map +0 -1
  235. package/dist/browser/shallow.d.ts +0 -12
  236. package/dist/browser/shallow.d.ts.map +0 -1
  237. package/dist/browser/shallow.js +0 -34
  238. package/dist/browser/shallow.js.map +0 -1
  239. package/dist/browser/types.d.ts +0 -369
  240. package/dist/browser/types.d.ts.map +0 -1
  241. package/dist/browser/types.js +0 -2
  242. package/dist/browser/types.js.map +0 -1
  243. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  244. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  245. package/dist/build/__tests__/generate-cli.test.js +0 -237
  246. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  247. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  248. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  249. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  250. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  251. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  252. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  253. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  254. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  255. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  256. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  257. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  258. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  259. package/dist/build/generate-manifest.d.ts +0 -81
  260. package/dist/build/generate-manifest.d.ts.map +0 -1
  261. package/dist/build/generate-manifest.js +0 -276
  262. package/dist/build/generate-manifest.js.map +0 -1
  263. package/dist/build/generate-route-types.d.ts +0 -115
  264. package/dist/build/generate-route-types.d.ts.map +0 -1
  265. package/dist/build/generate-route-types.js +0 -740
  266. package/dist/build/generate-route-types.js.map +0 -1
  267. package/dist/build/index.d.ts +0 -21
  268. package/dist/build/index.d.ts.map +0 -1
  269. package/dist/build/index.js +0 -21
  270. package/dist/build/index.js.map +0 -1
  271. package/dist/build/route-trie.d.ts +0 -71
  272. package/dist/build/route-trie.d.ts.map +0 -1
  273. package/dist/build/route-trie.js +0 -175
  274. package/dist/build/route-trie.js.map +0 -1
  275. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  276. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  277. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  278. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  279. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  280. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  281. package/dist/cache/__tests__/document-cache.test.js +0 -345
  282. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  283. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  284. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  285. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  286. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  287. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  288. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  289. package/dist/cache/__tests__/memory-store.test.js +0 -367
  290. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  291. package/dist/cache/cache-scope.d.ts +0 -102
  292. package/dist/cache/cache-scope.d.ts.map +0 -1
  293. package/dist/cache/cache-scope.js +0 -440
  294. package/dist/cache/cache-scope.js.map +0 -1
  295. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  296. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  297. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  298. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  299. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  300. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  301. package/dist/cache/cf/cf-cache-store.js +0 -242
  302. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  303. package/dist/cache/cf/index.d.ts +0 -14
  304. package/dist/cache/cf/index.d.ts.map +0 -1
  305. package/dist/cache/cf/index.js +0 -17
  306. package/dist/cache/cf/index.js.map +0 -1
  307. package/dist/cache/document-cache.d.ts +0 -64
  308. package/dist/cache/document-cache.d.ts.map +0 -1
  309. package/dist/cache/document-cache.js +0 -228
  310. package/dist/cache/document-cache.js.map +0 -1
  311. package/dist/cache/index.d.ts +0 -19
  312. package/dist/cache/index.d.ts.map +0 -1
  313. package/dist/cache/index.js +0 -21
  314. package/dist/cache/index.js.map +0 -1
  315. package/dist/cache/memory-segment-store.d.ts +0 -110
  316. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  317. package/dist/cache/memory-segment-store.js +0 -117
  318. package/dist/cache/memory-segment-store.js.map +0 -1
  319. package/dist/cache/memory-store.d.ts +0 -41
  320. package/dist/cache/memory-store.d.ts.map +0 -1
  321. package/dist/cache/memory-store.js +0 -191
  322. package/dist/cache/memory-store.js.map +0 -1
  323. package/dist/cache/types.d.ts +0 -317
  324. package/dist/cache/types.d.ts.map +0 -1
  325. package/dist/cache/types.js +0 -12
  326. package/dist/cache/types.js.map +0 -1
  327. package/dist/client.d.ts +0 -248
  328. package/dist/client.d.ts.map +0 -1
  329. package/dist/client.js +0 -367
  330. package/dist/client.js.map +0 -1
  331. package/dist/client.rsc.d.ts +0 -26
  332. package/dist/client.rsc.d.ts.map +0 -1
  333. package/dist/client.rsc.js +0 -46
  334. package/dist/client.rsc.js.map +0 -1
  335. package/dist/component-utils.d.ts +0 -36
  336. package/dist/component-utils.d.ts.map +0 -1
  337. package/dist/component-utils.js +0 -61
  338. package/dist/component-utils.js.map +0 -1
  339. package/dist/components/DefaultDocument.d.ts +0 -13
  340. package/dist/components/DefaultDocument.d.ts.map +0 -1
  341. package/dist/components/DefaultDocument.js +0 -15
  342. package/dist/components/DefaultDocument.js.map +0 -1
  343. package/dist/debug.d.ts +0 -58
  344. package/dist/debug.d.ts.map +0 -1
  345. package/dist/debug.js +0 -157
  346. package/dist/debug.js.map +0 -1
  347. package/dist/default-error-boundary.d.ts +0 -11
  348. package/dist/default-error-boundary.d.ts.map +0 -1
  349. package/dist/default-error-boundary.js +0 -45
  350. package/dist/default-error-boundary.js.map +0 -1
  351. package/dist/deps/browser.d.ts +0 -2
  352. package/dist/deps/browser.d.ts.map +0 -1
  353. package/dist/deps/browser.js +0 -3
  354. package/dist/deps/browser.js.map +0 -1
  355. package/dist/deps/html-stream-client.d.ts +0 -2
  356. package/dist/deps/html-stream-client.d.ts.map +0 -1
  357. package/dist/deps/html-stream-client.js +0 -3
  358. package/dist/deps/html-stream-client.js.map +0 -1
  359. package/dist/deps/html-stream-server.d.ts +0 -2
  360. package/dist/deps/html-stream-server.d.ts.map +0 -1
  361. package/dist/deps/html-stream-server.js +0 -3
  362. package/dist/deps/html-stream-server.js.map +0 -1
  363. package/dist/deps/rsc.d.ts +0 -2
  364. package/dist/deps/rsc.d.ts.map +0 -1
  365. package/dist/deps/rsc.js +0 -4
  366. package/dist/deps/rsc.js.map +0 -1
  367. package/dist/deps/ssr.d.ts +0 -2
  368. package/dist/deps/ssr.d.ts.map +0 -1
  369. package/dist/deps/ssr.js +0 -3
  370. package/dist/deps/ssr.js.map +0 -1
  371. package/dist/errors.d.ts +0 -174
  372. package/dist/errors.d.ts.map +0 -1
  373. package/dist/errors.js +0 -241
  374. package/dist/errors.js.map +0 -1
  375. package/dist/handle.d.ts +0 -78
  376. package/dist/handle.d.ts.map +0 -1
  377. package/dist/handle.js +0 -82
  378. package/dist/handle.js.map +0 -1
  379. package/dist/handles/MetaTags.d.ts +0 -14
  380. package/dist/handles/MetaTags.d.ts.map +0 -1
  381. package/dist/handles/MetaTags.js +0 -136
  382. package/dist/handles/MetaTags.js.map +0 -1
  383. package/dist/handles/index.d.ts +0 -6
  384. package/dist/handles/index.d.ts.map +0 -1
  385. package/dist/handles/index.js +0 -6
  386. package/dist/handles/index.js.map +0 -1
  387. package/dist/handles/meta.d.ts +0 -39
  388. package/dist/handles/meta.d.ts.map +0 -1
  389. package/dist/handles/meta.js +0 -202
  390. package/dist/handles/meta.js.map +0 -1
  391. package/dist/host/__tests__/errors.test.d.ts +0 -2
  392. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  393. package/dist/host/__tests__/errors.test.js +0 -76
  394. package/dist/host/__tests__/errors.test.js.map +0 -1
  395. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  396. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  397. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  398. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  399. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  400. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  401. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  402. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  403. package/dist/host/__tests__/router.test.d.ts +0 -2
  404. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  405. package/dist/host/__tests__/router.test.js +0 -241
  406. package/dist/host/__tests__/router.test.js.map +0 -1
  407. package/dist/host/__tests__/testing.test.d.ts +0 -2
  408. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  409. package/dist/host/__tests__/testing.test.js +0 -64
  410. package/dist/host/__tests__/testing.test.js.map +0 -1
  411. package/dist/host/__tests__/utils.test.d.ts +0 -2
  412. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  413. package/dist/host/__tests__/utils.test.js +0 -29
  414. package/dist/host/__tests__/utils.test.js.map +0 -1
  415. package/dist/host/cookie-handler.d.ts +0 -34
  416. package/dist/host/cookie-handler.d.ts.map +0 -1
  417. package/dist/host/cookie-handler.js +0 -124
  418. package/dist/host/cookie-handler.js.map +0 -1
  419. package/dist/host/errors.d.ts +0 -56
  420. package/dist/host/errors.d.ts.map +0 -1
  421. package/dist/host/errors.js +0 -79
  422. package/dist/host/errors.js.map +0 -1
  423. package/dist/host/index.d.ts +0 -29
  424. package/dist/host/index.d.ts.map +0 -1
  425. package/dist/host/index.js +0 -32
  426. package/dist/host/index.js.map +0 -1
  427. package/dist/host/pattern-matcher.d.ts +0 -36
  428. package/dist/host/pattern-matcher.d.ts.map +0 -1
  429. package/dist/host/pattern-matcher.js +0 -172
  430. package/dist/host/pattern-matcher.js.map +0 -1
  431. package/dist/host/router.d.ts +0 -26
  432. package/dist/host/router.d.ts.map +0 -1
  433. package/dist/host/router.js +0 -218
  434. package/dist/host/router.js.map +0 -1
  435. package/dist/host/testing.d.ts +0 -36
  436. package/dist/host/testing.d.ts.map +0 -1
  437. package/dist/host/testing.js +0 -55
  438. package/dist/host/testing.js.map +0 -1
  439. package/dist/host/types.d.ts +0 -115
  440. package/dist/host/types.d.ts.map +0 -1
  441. package/dist/host/types.js +0 -7
  442. package/dist/host/types.js.map +0 -1
  443. package/dist/host/utils.d.ts +0 -21
  444. package/dist/host/utils.d.ts.map +0 -1
  445. package/dist/host/utils.js +0 -23
  446. package/dist/host/utils.js.map +0 -1
  447. package/dist/href-client.d.ts +0 -131
  448. package/dist/href-client.d.ts.map +0 -1
  449. package/dist/href-client.js +0 -64
  450. package/dist/href-client.js.map +0 -1
  451. package/dist/href-context.d.ts +0 -29
  452. package/dist/href-context.d.ts.map +0 -1
  453. package/dist/href-context.js +0 -21
  454. package/dist/href-context.js.map +0 -1
  455. package/dist/index.d.ts +0 -73
  456. package/dist/index.d.ts.map +0 -1
  457. package/dist/index.js +0 -91
  458. package/dist/index.js.map +0 -1
  459. package/dist/index.rsc.d.ts +0 -32
  460. package/dist/index.rsc.d.ts.map +0 -1
  461. package/dist/index.rsc.js +0 -40
  462. package/dist/index.rsc.js.map +0 -1
  463. package/dist/internal-debug.d.ts +0 -2
  464. package/dist/internal-debug.d.ts.map +0 -1
  465. package/dist/internal-debug.js +0 -5
  466. package/dist/internal-debug.js.map +0 -1
  467. package/dist/loader.d.ts +0 -14
  468. package/dist/loader.d.ts.map +0 -1
  469. package/dist/loader.js +0 -20
  470. package/dist/loader.js.map +0 -1
  471. package/dist/loader.rsc.d.ts +0 -19
  472. package/dist/loader.rsc.d.ts.map +0 -1
  473. package/dist/loader.rsc.js +0 -99
  474. package/dist/loader.rsc.js.map +0 -1
  475. package/dist/network-error-thrower.d.ts +0 -17
  476. package/dist/network-error-thrower.d.ts.map +0 -1
  477. package/dist/network-error-thrower.js +0 -14
  478. package/dist/network-error-thrower.js.map +0 -1
  479. package/dist/outlet-context.d.ts +0 -13
  480. package/dist/outlet-context.d.ts.map +0 -1
  481. package/dist/outlet-context.js +0 -3
  482. package/dist/outlet-context.js.map +0 -1
  483. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  484. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  485. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  486. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  487. package/dist/prerender/param-hash.d.ts +0 -16
  488. package/dist/prerender/param-hash.d.ts.map +0 -1
  489. package/dist/prerender/param-hash.js +0 -36
  490. package/dist/prerender/param-hash.js.map +0 -1
  491. package/dist/prerender/store.d.ts +0 -38
  492. package/dist/prerender/store.d.ts.map +0 -1
  493. package/dist/prerender/store.js +0 -61
  494. package/dist/prerender/store.js.map +0 -1
  495. package/dist/prerender.d.ts +0 -66
  496. package/dist/prerender.d.ts.map +0 -1
  497. package/dist/prerender.js +0 -57
  498. package/dist/prerender.js.map +0 -1
  499. package/dist/reverse.d.ts +0 -196
  500. package/dist/reverse.d.ts.map +0 -1
  501. package/dist/reverse.js +0 -78
  502. package/dist/reverse.js.map +0 -1
  503. package/dist/root-error-boundary.d.ts +0 -33
  504. package/dist/root-error-boundary.d.ts.map +0 -1
  505. package/dist/root-error-boundary.js +0 -165
  506. package/dist/root-error-boundary.js.map +0 -1
  507. package/dist/route-content-wrapper.d.ts +0 -46
  508. package/dist/route-content-wrapper.d.ts.map +0 -1
  509. package/dist/route-content-wrapper.js +0 -77
  510. package/dist/route-content-wrapper.js.map +0 -1
  511. package/dist/route-definition.d.ts +0 -421
  512. package/dist/route-definition.d.ts.map +0 -1
  513. package/dist/route-definition.js +0 -868
  514. package/dist/route-definition.js.map +0 -1
  515. package/dist/route-map-builder.d.ts +0 -155
  516. package/dist/route-map-builder.d.ts.map +0 -1
  517. package/dist/route-map-builder.js +0 -237
  518. package/dist/route-map-builder.js.map +0 -1
  519. package/dist/route-types.d.ts +0 -165
  520. package/dist/route-types.d.ts.map +0 -1
  521. package/dist/route-types.js +0 -7
  522. package/dist/route-types.js.map +0 -1
  523. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  524. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  525. package/dist/router/__tests__/handler-context.test.js +0 -65
  526. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  527. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  528. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  529. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  530. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  531. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  532. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  533. package/dist/router/__tests__/match-context.test.js +0 -92
  534. package/dist/router/__tests__/match-context.test.js.map +0 -1
  535. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  536. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  537. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  538. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  539. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  540. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  541. package/dist/router/__tests__/match-result.test.js +0 -457
  542. package/dist/router/__tests__/match-result.test.js.map +0 -1
  543. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  544. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  545. package/dist/router/__tests__/on-error.test.js +0 -678
  546. package/dist/router/__tests__/on-error.test.js.map +0 -1
  547. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  548. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  549. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  550. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  551. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  552. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  553. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  554. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  555. package/dist/router/error-handling.d.ts +0 -77
  556. package/dist/router/error-handling.d.ts.map +0 -1
  557. package/dist/router/error-handling.js +0 -202
  558. package/dist/router/error-handling.js.map +0 -1
  559. package/dist/router/handler-context.d.ts +0 -20
  560. package/dist/router/handler-context.d.ts.map +0 -1
  561. package/dist/router/handler-context.js +0 -198
  562. package/dist/router/handler-context.js.map +0 -1
  563. package/dist/router/intercept-resolution.d.ts +0 -66
  564. package/dist/router/intercept-resolution.d.ts.map +0 -1
  565. package/dist/router/intercept-resolution.js +0 -246
  566. package/dist/router/intercept-resolution.js.map +0 -1
  567. package/dist/router/loader-resolution.d.ts +0 -64
  568. package/dist/router/loader-resolution.d.ts.map +0 -1
  569. package/dist/router/loader-resolution.js +0 -284
  570. package/dist/router/loader-resolution.js.map +0 -1
  571. package/dist/router/logging.d.ts +0 -15
  572. package/dist/router/logging.d.ts.map +0 -1
  573. package/dist/router/logging.js +0 -99
  574. package/dist/router/logging.js.map +0 -1
  575. package/dist/router/manifest.d.ts +0 -22
  576. package/dist/router/manifest.d.ts.map +0 -1
  577. package/dist/router/manifest.js +0 -181
  578. package/dist/router/manifest.js.map +0 -1
  579. package/dist/router/match-api.d.ts +0 -35
  580. package/dist/router/match-api.d.ts.map +0 -1
  581. package/dist/router/match-api.js +0 -406
  582. package/dist/router/match-api.js.map +0 -1
  583. package/dist/router/match-context.d.ts +0 -206
  584. package/dist/router/match-context.d.ts.map +0 -1
  585. package/dist/router/match-context.js +0 -17
  586. package/dist/router/match-context.js.map +0 -1
  587. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  588. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  589. package/dist/router/match-middleware/background-revalidation.js +0 -75
  590. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  591. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  592. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  593. package/dist/router/match-middleware/cache-lookup.js +0 -257
  594. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  595. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  596. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  597. package/dist/router/match-middleware/cache-store.js +0 -108
  598. package/dist/router/match-middleware/cache-store.js.map +0 -1
  599. package/dist/router/match-middleware/index.d.ts +0 -81
  600. package/dist/router/match-middleware/index.d.ts.map +0 -1
  601. package/dist/router/match-middleware/index.js +0 -80
  602. package/dist/router/match-middleware/index.js.map +0 -1
  603. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  604. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  605. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  606. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  607. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  608. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  609. package/dist/router/match-middleware/segment-resolution.js +0 -53
  610. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  611. package/dist/router/match-pipelines.d.ts +0 -147
  612. package/dist/router/match-pipelines.d.ts.map +0 -1
  613. package/dist/router/match-pipelines.js +0 -82
  614. package/dist/router/match-pipelines.js.map +0 -1
  615. package/dist/router/match-result.d.ts +0 -126
  616. package/dist/router/match-result.d.ts.map +0 -1
  617. package/dist/router/match-result.js +0 -93
  618. package/dist/router/match-result.js.map +0 -1
  619. package/dist/router/metrics.d.ts +0 -20
  620. package/dist/router/metrics.d.ts.map +0 -1
  621. package/dist/router/metrics.js +0 -47
  622. package/dist/router/metrics.js.map +0 -1
  623. package/dist/router/middleware.d.ts +0 -249
  624. package/dist/router/middleware.d.ts.map +0 -1
  625. package/dist/router/middleware.js +0 -434
  626. package/dist/router/middleware.js.map +0 -1
  627. package/dist/router/middleware.test.d.ts +0 -2
  628. package/dist/router/middleware.test.d.ts.map +0 -1
  629. package/dist/router/middleware.test.js +0 -816
  630. package/dist/router/middleware.test.js.map +0 -1
  631. package/dist/router/pattern-matching.d.ts +0 -149
  632. package/dist/router/pattern-matching.d.ts.map +0 -1
  633. package/dist/router/pattern-matching.js +0 -349
  634. package/dist/router/pattern-matching.js.map +0 -1
  635. package/dist/router/revalidation.d.ts +0 -44
  636. package/dist/router/revalidation.d.ts.map +0 -1
  637. package/dist/router/revalidation.js +0 -147
  638. package/dist/router/revalidation.js.map +0 -1
  639. package/dist/router/router-context.d.ts +0 -135
  640. package/dist/router/router-context.d.ts.map +0 -1
  641. package/dist/router/router-context.js +0 -36
  642. package/dist/router/router-context.js.map +0 -1
  643. package/dist/router/segment-resolution.d.ts +0 -127
  644. package/dist/router/segment-resolution.d.ts.map +0 -1
  645. package/dist/router/segment-resolution.js +0 -919
  646. package/dist/router/segment-resolution.js.map +0 -1
  647. package/dist/router/trie-matching.d.ts +0 -40
  648. package/dist/router/trie-matching.d.ts.map +0 -1
  649. package/dist/router/trie-matching.js +0 -127
  650. package/dist/router/trie-matching.js.map +0 -1
  651. package/dist/router/types.d.ts +0 -136
  652. package/dist/router/types.d.ts.map +0 -1
  653. package/dist/router/types.js +0 -7
  654. package/dist/router/types.js.map +0 -1
  655. package/dist/router.d.ts +0 -753
  656. package/dist/router.d.ts.map +0 -1
  657. package/dist/router.gen.d.ts +0 -6
  658. package/dist/router.gen.d.ts.map +0 -1
  659. package/dist/router.gen.js +0 -6
  660. package/dist/router.gen.js.map +0 -1
  661. package/dist/router.js +0 -1304
  662. package/dist/router.js.map +0 -1
  663. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  664. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  665. package/dist/rsc/__tests__/helpers.test.js +0 -140
  666. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  667. package/dist/rsc/handler.d.ts +0 -45
  668. package/dist/rsc/handler.d.ts.map +0 -1
  669. package/dist/rsc/handler.js +0 -1172
  670. package/dist/rsc/handler.js.map +0 -1
  671. package/dist/rsc/helpers.d.ts +0 -16
  672. package/dist/rsc/helpers.d.ts.map +0 -1
  673. package/dist/rsc/helpers.js +0 -55
  674. package/dist/rsc/helpers.js.map +0 -1
  675. package/dist/rsc/index.d.ts +0 -22
  676. package/dist/rsc/index.d.ts.map +0 -1
  677. package/dist/rsc/index.js +0 -23
  678. package/dist/rsc/index.js.map +0 -1
  679. package/dist/rsc/nonce.d.ts +0 -9
  680. package/dist/rsc/nonce.d.ts.map +0 -1
  681. package/dist/rsc/nonce.js +0 -18
  682. package/dist/rsc/nonce.js.map +0 -1
  683. package/dist/rsc/types.d.ts +0 -206
  684. package/dist/rsc/types.d.ts.map +0 -1
  685. package/dist/rsc/types.js +0 -8
  686. package/dist/rsc/types.js.map +0 -1
  687. package/dist/search-params.d.ts +0 -103
  688. package/dist/search-params.d.ts.map +0 -1
  689. package/dist/search-params.js +0 -74
  690. package/dist/search-params.js.map +0 -1
  691. package/dist/segment-system.d.ts +0 -75
  692. package/dist/segment-system.d.ts.map +0 -1
  693. package/dist/segment-system.js +0 -336
  694. package/dist/segment-system.js.map +0 -1
  695. package/dist/server/context.d.ts +0 -245
  696. package/dist/server/context.d.ts.map +0 -1
  697. package/dist/server/context.js +0 -197
  698. package/dist/server/context.js.map +0 -1
  699. package/dist/server/fetchable-loader-store.d.ts +0 -18
  700. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  701. package/dist/server/fetchable-loader-store.js +0 -18
  702. package/dist/server/fetchable-loader-store.js.map +0 -1
  703. package/dist/server/handle-store.d.ts +0 -85
  704. package/dist/server/handle-store.d.ts.map +0 -1
  705. package/dist/server/handle-store.js +0 -142
  706. package/dist/server/handle-store.js.map +0 -1
  707. package/dist/server/loader-registry.d.ts +0 -55
  708. package/dist/server/loader-registry.d.ts.map +0 -1
  709. package/dist/server/loader-registry.js +0 -132
  710. package/dist/server/loader-registry.js.map +0 -1
  711. package/dist/server/request-context.d.ts +0 -226
  712. package/dist/server/request-context.d.ts.map +0 -1
  713. package/dist/server/request-context.js +0 -290
  714. package/dist/server/request-context.js.map +0 -1
  715. package/dist/server/root-layout.d.ts +0 -4
  716. package/dist/server/root-layout.d.ts.map +0 -1
  717. package/dist/server/root-layout.js +0 -5
  718. package/dist/server/root-layout.js.map +0 -1
  719. package/dist/server.d.ts +0 -15
  720. package/dist/server.d.ts.map +0 -1
  721. package/dist/server.js +0 -20
  722. package/dist/server.js.map +0 -1
  723. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  724. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  725. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  726. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  727. package/dist/ssr/index.d.ts +0 -98
  728. package/dist/ssr/index.d.ts.map +0 -1
  729. package/dist/ssr/index.js +0 -158
  730. package/dist/ssr/index.js.map +0 -1
  731. package/dist/static-handler.d.ts +0 -50
  732. package/dist/static-handler.d.ts.map +0 -1
  733. package/dist/static-handler.gen.d.ts +0 -5
  734. package/dist/static-handler.gen.d.ts.map +0 -1
  735. package/dist/static-handler.gen.js +0 -5
  736. package/dist/static-handler.gen.js.map +0 -1
  737. package/dist/static-handler.js +0 -29
  738. package/dist/static-handler.js.map +0 -1
  739. package/dist/theme/ThemeProvider.d.ts +0 -20
  740. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  741. package/dist/theme/ThemeProvider.js +0 -240
  742. package/dist/theme/ThemeProvider.js.map +0 -1
  743. package/dist/theme/ThemeScript.d.ts +0 -48
  744. package/dist/theme/ThemeScript.d.ts.map +0 -1
  745. package/dist/theme/ThemeScript.js +0 -13
  746. package/dist/theme/ThemeScript.js.map +0 -1
  747. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  748. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  749. package/dist/theme/__tests__/theme.test.js +0 -103
  750. package/dist/theme/__tests__/theme.test.js.map +0 -1
  751. package/dist/theme/constants.d.ts +0 -29
  752. package/dist/theme/constants.d.ts.map +0 -1
  753. package/dist/theme/constants.js +0 -48
  754. package/dist/theme/constants.js.map +0 -1
  755. package/dist/theme/index.d.ts +0 -31
  756. package/dist/theme/index.d.ts.map +0 -1
  757. package/dist/theme/index.js +0 -36
  758. package/dist/theme/index.js.map +0 -1
  759. package/dist/theme/theme-context.d.ts +0 -40
  760. package/dist/theme/theme-context.d.ts.map +0 -1
  761. package/dist/theme/theme-context.js +0 -60
  762. package/dist/theme/theme-context.js.map +0 -1
  763. package/dist/theme/theme-script.d.ts +0 -27
  764. package/dist/theme/theme-script.d.ts.map +0 -1
  765. package/dist/theme/theme-script.js +0 -147
  766. package/dist/theme/theme-script.js.map +0 -1
  767. package/dist/theme/types.d.ts +0 -163
  768. package/dist/theme/types.d.ts.map +0 -1
  769. package/dist/theme/types.js +0 -11
  770. package/dist/theme/types.js.map +0 -1
  771. package/dist/theme/use-theme.d.ts +0 -12
  772. package/dist/theme/use-theme.d.ts.map +0 -1
  773. package/dist/theme/use-theme.js +0 -40
  774. package/dist/theme/use-theme.js.map +0 -1
  775. package/dist/types.d.ts +0 -1479
  776. package/dist/types.d.ts.map +0 -1
  777. package/dist/types.js +0 -10
  778. package/dist/types.js.map +0 -1
  779. package/dist/urls.d.ts +0 -441
  780. package/dist/urls.d.ts.map +0 -1
  781. package/dist/urls.gen.d.ts +0 -8
  782. package/dist/urls.gen.d.ts.map +0 -1
  783. package/dist/urls.gen.js +0 -8
  784. package/dist/urls.gen.js.map +0 -1
  785. package/dist/urls.js +0 -443
  786. package/dist/urls.js.map +0 -1
  787. package/dist/use-loader.d.ts +0 -127
  788. package/dist/use-loader.d.ts.map +0 -1
  789. package/dist/use-loader.js +0 -237
  790. package/dist/use-loader.js.map +0 -1
  791. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  792. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  793. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  794. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  795. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  796. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  797. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  798. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  799. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  800. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  801. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  802. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  803. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  804. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  805. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  806. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  807. package/dist/vite/ast-handler-extract.d.ts +0 -49
  808. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  809. package/dist/vite/ast-handler-extract.js +0 -249
  810. package/dist/vite/ast-handler-extract.js.map +0 -1
  811. package/dist/vite/expose-action-id.d.ts +0 -19
  812. package/dist/vite/expose-action-id.d.ts.map +0 -1
  813. package/dist/vite/expose-action-id.js +0 -250
  814. package/dist/vite/expose-action-id.js.map +0 -1
  815. package/dist/vite/expose-id-utils.d.ts +0 -69
  816. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  817. package/dist/vite/expose-id-utils.js +0 -289
  818. package/dist/vite/expose-id-utils.js.map +0 -1
  819. package/dist/vite/expose-internal-ids.d.ts +0 -22
  820. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  821. package/dist/vite/expose-internal-ids.js +0 -886
  822. package/dist/vite/expose-internal-ids.js.map +0 -1
  823. package/dist/vite/index.d.ts +0 -149
  824. package/dist/vite/index.d.ts.map +0 -1
  825. package/dist/vite/index.js.map +0 -1
  826. package/dist/vite/index.named-routes.gen.ts +0 -103
  827. package/dist/vite/package-resolution.d.ts +0 -43
  828. package/dist/vite/package-resolution.d.ts.map +0 -1
  829. package/dist/vite/package-resolution.js +0 -112
  830. package/dist/vite/package-resolution.js.map +0 -1
  831. package/dist/vite/virtual-entries.d.ts +0 -25
  832. package/dist/vite/virtual-entries.d.ts.map +0 -1
  833. package/dist/vite/virtual-entries.js +0 -110
  834. package/dist/vite/virtual-entries.js.map +0 -1
  835. package/src/browser/debug-channel.ts +0 -93
@@ -9,18 +9,18 @@ import fs from "node:fs";
9
9
 
10
10
  // src/vite/plugins/expose-id-utils.ts
11
11
  import path from "node:path";
12
- import crypto2 from "node:crypto";
12
+ import crypto from "node:crypto";
13
13
  function normalizePath(p) {
14
14
  return p.split(path.sep).join("/");
15
15
  }
16
16
  function hashId(filePath, exportName) {
17
17
  const input = `${filePath}#${exportName}`;
18
- const hash = crypto2.createHash("sha256").update(input).digest("hex");
18
+ const hash = crypto.createHash("sha256").update(input).digest("hex");
19
19
  return `${hash.slice(0, 8)}#${exportName}`;
20
20
  }
21
21
  function hashInlineId(filePath, lineNumber, index) {
22
22
  const input = index !== void 0 && index > 0 ? `${filePath}:${lineNumber}:${index}` : `${filePath}:${lineNumber}`;
23
- return crypto2.createHash("sha256").update(input).digest("hex").slice(0, 8);
23
+ return crypto.createHash("sha256").update(input).digest("hex").slice(0, 8);
24
24
  }
25
25
  function buildExportMap(program) {
26
26
  const exportMap = /* @__PURE__ */ new Map();
@@ -1745,7 +1745,7 @@ import { resolve } from "node:path";
1745
1745
  // package.json
1746
1746
  var package_default = {
1747
1747
  name: "@rangojs/router",
1748
- version: "0.0.0-experimental.73ab3466",
1748
+ version: "0.0.0-experimental.73e3d61f",
1749
1749
  description: "Django-inspired RSC router with composable URL patterns",
1750
1750
  keywords: [
1751
1751
  "react",
@@ -1887,7 +1887,7 @@ var package_default = {
1887
1887
  "test:unit:watch": "vitest"
1888
1888
  },
1889
1889
  dependencies: {
1890
- "@vitejs/plugin-rsc": "^0.5.14",
1890
+ "@vitejs/plugin-rsc": "^0.5.19",
1891
1891
  "magic-string": "^0.30.17",
1892
1892
  picomatch: "^4.0.3",
1893
1893
  "rsc-html-stream": "^0.0.7"
@@ -2784,6 +2784,68 @@ function createVersionPlugin() {
2784
2784
 
2785
2785
  // src/vite/utils/shared-utils.ts
2786
2786
  import * as Vite from "vite";
2787
+
2788
+ // src/vite/plugins/performance-tracks.ts
2789
+ import { readFile } from "node:fs/promises";
2790
+ var RSDW_PATCH_RE = /((?:var|let|const)\s+\w+\s*=\s*root\._children\s*,\s*(\w+)\s*=\s*root\._debugInfo\s*[;,])/;
2791
+ function buildPatchReplacement(match, debugInfoVar) {
2792
+ return `${match}
2793
+ if (${debugInfoVar} && 0 === ${debugInfoVar}.length && "fulfilled" === root.status) {
2794
+ var _resolved = "function" === typeof resolveLazy ? resolveLazy(root.value) : root.value;
2795
+ if ("object" === typeof _resolved && null !== _resolved && isArrayImpl(_resolved._debugInfo)) {
2796
+ ${debugInfoVar} = _resolved._debugInfo;
2797
+ }
2798
+ }`;
2799
+ }
2800
+ function patchRsdwClientDebugInfoRecovery(code) {
2801
+ const match = code.match(RSDW_PATCH_RE);
2802
+ if (!match) {
2803
+ return { code, debugInfoVar: null };
2804
+ }
2805
+ return {
2806
+ code: code.replace(match[1], buildPatchReplacement(match[1], match[2])),
2807
+ debugInfoVar: match[2]
2808
+ };
2809
+ }
2810
+ function performanceTracksOptimizeDepsPlugin() {
2811
+ return {
2812
+ name: "@rangojs/router:performance-tracks-optimize-deps",
2813
+ setup(build) {
2814
+ build.onLoad(
2815
+ {
2816
+ filter: /react-server-dom-webpack-client\.browser\.(development|production)\.js$/
2817
+ },
2818
+ async (args) => {
2819
+ const code = await readFile(args.path, "utf8");
2820
+ const patched = patchRsdwClientDebugInfoRecovery(code);
2821
+ return {
2822
+ contents: patched.code,
2823
+ loader: "js"
2824
+ };
2825
+ }
2826
+ );
2827
+ }
2828
+ };
2829
+ }
2830
+ function performanceTracksPlugin() {
2831
+ return {
2832
+ name: "@rangojs/router:performance-tracks",
2833
+ transform(code, id) {
2834
+ if (!id.includes("react-server-dom") || !id.includes("client")) return;
2835
+ const patched = patchRsdwClientDebugInfoRecovery(code);
2836
+ if (!patched.debugInfoVar) return;
2837
+ if (process.env.INTERNAL_RANGO_DEBUG)
2838
+ console.log(
2839
+ "[perf-tracks] patched RSDW client (var:",
2840
+ patched.debugInfoVar,
2841
+ ")"
2842
+ );
2843
+ return patched.code;
2844
+ }
2845
+ };
2846
+ }
2847
+
2848
+ // src/vite/utils/shared-utils.ts
2787
2849
  var versionEsbuildPlugin = {
2788
2850
  name: "@rangojs/router-version",
2789
2851
  setup(build) {
@@ -2801,7 +2863,7 @@ var versionEsbuildPlugin = {
2801
2863
  }
2802
2864
  };
2803
2865
  var sharedEsbuildOptions = {
2804
- plugins: [versionEsbuildPlugin]
2866
+ plugins: [versionEsbuildPlugin, performanceTracksOptimizeDepsPlugin()]
2805
2867
  };
2806
2868
  function createVirtualEntriesPlugin(entries, routerPathRef) {
2807
2869
  const virtualModules = {};
@@ -4861,151 +4923,23 @@ ${details}`
4861
4923
  };
4862
4924
  }
4863
4925
 
4864
- // src/vite/plugins/performance-tracks.ts
4865
- import { Module } from "node:module";
4866
- var DEBUG_ID_HEADER = "X-RSC-Debug-Id";
4867
- var DEBUG_S2C_EVENT = "rango:perf-s2c";
4868
- var DEBUG_C2S_EVENT = "rango:perf-c2s";
4869
- var GLOBAL_KEY = "__RANGO_DEBUG_CHANNELS__";
4870
- function getRegistry() {
4871
- return Module[GLOBAL_KEY] ??= {
4872
- channels: /* @__PURE__ */ new Map(),
4873
- sessions: /* @__PURE__ */ new Map()
4874
- };
4875
- }
4876
- var bytesToBase64 = (bytes) => Buffer.from(bytes).toString("base64");
4877
- var base64ToBytes = (base64) => new Uint8Array(Buffer.from(base64, "base64"));
4878
- function performanceTracksPlugin() {
4879
- return {
4880
- name: "@rangojs/router:performance-tracks",
4881
- // Only configureServer hook — naturally dev-only
4882
- configureServer(server) {
4883
- console.log("[perf-tracks] plugin loaded, configureServer called");
4884
- const hot = server.environments.client.hot;
4885
- const registry = getRegistry();
4886
- const sessions = registry.sessions;
4887
- const sendChunk = (debugId, chunk) => {
4888
- hot.send(DEBUG_S2C_EVENT, {
4889
- i: debugId,
4890
- b: bytesToBase64(chunk)
4891
- });
4892
- };
4893
- const cleanupIfEnded = (debugId, session) => {
4894
- if (session.pendingChunks || !session.ended) return;
4895
- sessions.delete(debugId);
4896
- hot.send(DEBUG_S2C_EVENT, {
4897
- i: debugId,
4898
- d: true
4899
- });
4900
- };
4901
- const registerDebugChannel = (debugId) => {
4902
- let session = sessions.get(debugId);
4903
- if (!session) {
4904
- session = { pendingChunks: [], ended: false };
4905
- sessions.set(debugId, session);
4906
- }
4907
- const readable = new ReadableStream({
4908
- start(controller) {
4909
- session.cmdController = controller;
4910
- },
4911
- cancel() {
4912
- delete session.cmdController;
4913
- }
4914
- });
4915
- const writable = new WritableStream({
4916
- write(chunk) {
4917
- if (session.pendingChunks) {
4918
- session.pendingChunks.push(chunk);
4919
- } else {
4920
- sendChunk(debugId, chunk);
4921
- }
4922
- },
4923
- close() {
4924
- session.ended = true;
4925
- cleanupIfEnded(debugId, session);
4926
- },
4927
- abort() {
4928
- session.ended = true;
4929
- cleanupIfEnded(debugId, session);
4930
- }
4931
- });
4932
- registry.channels.set(debugId, { readable, writable });
4933
- };
4934
- hot.on(DEBUG_C2S_EVENT, (raw) => {
4935
- const payload = raw;
4936
- const session = sessions.get(payload.i);
4937
- if (payload.d) {
4938
- if (session?.cmdController) {
4939
- try {
4940
- session.cmdController.close();
4941
- } catch {
4942
- }
4943
- delete session.cmdController;
4944
- }
4945
- return;
4946
- }
4947
- if (payload.b) {
4948
- if (session?.cmdController) {
4949
- try {
4950
- session.cmdController.enqueue(base64ToBytes(payload.b));
4951
- } catch {
4952
- delete session.cmdController;
4953
- }
4954
- }
4955
- return;
4956
- }
4957
- if (session) {
4958
- if (session.pendingChunks) {
4959
- for (const chunk of session.pendingChunks) {
4960
- sendChunk(payload.i, chunk);
4961
- }
4962
- delete session.pendingChunks;
4963
- }
4964
- cleanupIfEnded(payload.i, session);
4965
- } else {
4966
- sessions.set(payload.i, { ended: false });
4967
- }
4968
- });
4969
- server.middlewares.use((req, _res, next) => {
4970
- const url = req.url || "";
4971
- const existingId = req.headers[DEBUG_ID_HEADER.toLowerCase()];
4972
- const isHtml = req.headers.accept?.includes("text/html");
4973
- const isRsc = url.includes("_rsc_partial");
4974
- if (!existingId && !isHtml && !isRsc) {
4975
- next();
4976
- return;
4977
- }
4978
- const debugId = existingId || crypto.randomUUID();
4979
- if (!existingId) {
4980
- const lowerName = DEBUG_ID_HEADER.toLowerCase();
4981
- req.headers[lowerName] = debugId;
4982
- if (req.rawHeaders) {
4983
- req.rawHeaders.push(DEBUG_ID_HEADER, debugId);
4984
- }
4985
- }
4986
- registerDebugChannel(debugId);
4987
- console.log(
4988
- "[perf-tracks] middleware: channel for",
4989
- debugId,
4990
- "url:",
4991
- url.slice(0, 80),
4992
- existingId ? "(client)" : isHtml ? "(SSR)" : "(RSC partial)"
4993
- );
4994
- next();
4995
- });
4996
- }
4997
- };
4998
- }
4999
-
5000
4926
  // src/vite/rango.ts
5001
4927
  async function rango(options) {
5002
4928
  const resolvedOptions = options ?? { preset: "node" };
5003
4929
  const preset = resolvedOptions.preset ?? "node";
5004
- console.log("[perf-tracks] rango() called, preset:", preset);
5005
4930
  const showBanner = resolvedOptions.banner ?? true;
5006
4931
  const plugins = [];
5007
4932
  const rangoAliases = getPackageAliases();
5008
- const excludeDeps = getExcludeDeps();
4933
+ const excludeDeps = [
4934
+ ...getExcludeDeps(),
4935
+ // The public browser entry re-exports the RSDW browser client.
4936
+ // Excluding both keeps Vite from freezing the unpatched bundle into
4937
+ // .vite/deps before our source transforms run.
4938
+ "@vitejs/plugin-rsc/browser",
4939
+ // Keep the browser RSDW client out of Vite's dep optimizer so our
4940
+ // cjs-to-esm transform can patch the real file.
4941
+ "@vitejs/plugin-rsc/vendor/react-server-dom/client.browser"
4942
+ ];
5009
4943
  const routerRef = { path: void 0 };
5010
4944
  const prerenderEnabled = true;
5011
4945
  if (preset === "cloudflare") {
@@ -5101,6 +5035,7 @@ async function rango(options) {
5101
5035
  }
5102
5036
  });
5103
5037
  plugins.push(createVirtualEntriesPlugin(finalEntries));
5038
+ plugins.push(performanceTracksPlugin());
5104
5039
  plugins.push(
5105
5040
  rsc({
5106
5041
  entries: finalEntries,
@@ -5219,12 +5154,7 @@ ${list}`);
5219
5154
  }
5220
5155
  });
5221
5156
  plugins.push(createVirtualEntriesPlugin(finalEntries, routerRef));
5222
- const perfPlugin = performanceTracksPlugin();
5223
- console.log(
5224
- "[perf-tracks] rango: plugin created, has configureServer:",
5225
- !!perfPlugin.configureServer
5226
- );
5227
- plugins.push(perfPlugin);
5157
+ plugins.push(performanceTracksPlugin());
5228
5158
  plugins.push(
5229
5159
  rsc({
5230
5160
  entries: finalEntries
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rangojs/router",
3
- "version": "0.0.0-experimental.73ab3466",
3
+ "version": "0.0.0-experimental.73e3d61f",
4
4
  "description": "Django-inspired RSC router with composable URL patterns",
5
5
  "keywords": [
6
6
  "react",
@@ -142,7 +142,7 @@
142
142
  "test:unit:watch": "vitest"
143
143
  },
144
144
  "dependencies": {
145
- "@vitejs/plugin-rsc": "^0.5.14",
145
+ "@vitejs/plugin-rsc": "^0.5.19",
146
146
  "magic-string": "^0.30.17",
147
147
  "picomatch": "^4.0.3",
148
148
  "rsc-html-stream": "^0.0.7"
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Mutable app version — updated after HMR revalidation.
3
+ * Read by prefetch, navigation, and context code.
4
+ */
5
+
6
+ let currentVersion: string | undefined;
7
+
8
+ export function getAppVersion(): string | undefined {
9
+ return currentVersion;
10
+ }
11
+
12
+ export function setAppVersion(version: string | undefined): void {
13
+ currentVersion = version;
14
+ }
@@ -4,6 +4,7 @@ import type {
4
4
  NavigateOptionsInternal,
5
5
  ResolvedSegment,
6
6
  } from "./types.js";
7
+ import { setAppVersion } from "./app-version.js";
7
8
  import * as React from "react";
8
9
  import { startTransition } from "react";
9
10
  import {
@@ -67,8 +68,8 @@ export interface NavigationBridgeConfigWithController extends NavigationBridgeCo
67
68
  export function createNavigationBridge(
68
69
  config: NavigationBridgeConfigWithController,
69
70
  ): NavigationBridge {
70
- const { store, client, eventController, onUpdate, renderSegments, version } =
71
- config;
71
+ const { store, client, eventController, onUpdate, renderSegments } = config;
72
+ let version = config.version;
72
73
 
73
74
  // Create shared partial updater
74
75
  const fetchPartialUpdate = createPartialUpdater({
@@ -76,7 +77,7 @@ export function createNavigationBridge(
76
77
  client,
77
78
  onUpdate,
78
79
  renderSegments,
79
- version,
80
+ getVersion: () => version,
80
81
  });
81
82
 
82
83
  return {
@@ -632,6 +633,12 @@ export function createNavigationBridge(
632
633
  window.removeEventListener("pageshow", handlePageShow);
633
634
  };
634
635
  },
636
+
637
+ updateVersion(newVersion: string): void {
638
+ version = newVersion;
639
+ setAppVersion(newVersion);
640
+ store.clearHistoryCache();
641
+ },
635
642
  };
636
643
  }
637
644
 
@@ -12,8 +12,6 @@ import {
12
12
  startBrowserTransaction,
13
13
  } from "./logging.js";
14
14
  import { getRangoState } from "./rango-state.js";
15
- import { createClientDebugChannel, DEBUG_ID_HEADER } from "./debug-channel.js";
16
- import { findSourceMapURL } from "../deps/browser.js";
17
15
  import {
18
16
  extractRscHeaderUrl,
19
17
  emptyResponse,
@@ -109,21 +107,53 @@ export function createNavigationClient(
109
107
  resolveStreamComplete = resolve;
110
108
  });
111
109
 
112
- // Dev-only: create debug channel for React Performance Tracks
113
- const debugId = (import.meta as any).hot
114
- ? crypto.randomUUID()
115
- : undefined;
116
- const debugChannel = debugId
117
- ? createClientDebugChannel(debugId)
118
- : undefined;
119
- if (debugId) {
120
- console.log(
121
- "[perf-tracks] client: debugId =",
122
- debugId,
123
- "channel =",
124
- debugChannel ? "created" : "null (no HMR)",
125
- );
126
- }
110
+ /**
111
+ * Validate RSC control headers on any response (fresh, cached, or
112
+ * in-flight). Handles version-mismatch reloads and server redirects.
113
+ * Returns the response unchanged when no control header is present.
114
+ */
115
+ const validateRscHeaders = (
116
+ response: Response,
117
+ source: string,
118
+ ): Response | Promise<Response> => {
119
+ // Version mismatch — server wants a full page reload
120
+ const reload = extractRscHeaderUrl(response, "X-RSC-Reload");
121
+ if (reload === "blocked") {
122
+ resolveStreamComplete();
123
+ return emptyResponse();
124
+ }
125
+ if (reload) {
126
+ if (tx) {
127
+ browserDebugLog(tx, `version mismatch, reloading (${source})`, {
128
+ reloadUrl: reload.url,
129
+ });
130
+ }
131
+ window.location.href = reload.url;
132
+ // Block further processing — page is reloading
133
+ return new Promise<Response>(() => {});
134
+ }
135
+
136
+ // Server-side redirect without state: the server returned 204 with
137
+ // X-RSC-Redirect instead of a 3xx (which fetch would auto-follow
138
+ // to a URL rendering full HTML). Throw ServerRedirect so the
139
+ // navigation bridge catches it and re-navigates with _skipCache.
140
+ const redirect = extractRscHeaderUrl(response, "X-RSC-Redirect");
141
+ if (redirect === "blocked") {
142
+ resolveStreamComplete();
143
+ return emptyResponse();
144
+ }
145
+ if (redirect) {
146
+ if (tx) {
147
+ browserDebugLog(tx, `server redirect (${source})`, {
148
+ redirectUrl: redirect.url,
149
+ });
150
+ }
151
+ resolveStreamComplete();
152
+ throw new ServerRedirect(redirect.url, undefined);
153
+ }
154
+
155
+ return response;
156
+ };
127
157
 
128
158
  /** Start a fresh navigation fetch (no cache / inflight hit). */
129
159
  const doFreshFetch = (): Promise<Response> => {
@@ -142,47 +172,14 @@ export function createNavigationClient(
142
172
  "X-RSC-Router-Intercept-Source": interceptSourceUrl,
143
173
  }),
144
174
  ...(hmr && { "X-RSC-HMR": "1" }),
145
- ...(debugId && { [DEBUG_ID_HEADER]: debugId }),
146
175
  },
147
176
  signal,
148
177
  }).then((response) => {
149
- // Check for version mismatch - server wants us to reload
150
- const reload = extractRscHeaderUrl(response, "X-RSC-Reload");
151
- if (reload === "blocked") {
152
- resolveStreamComplete();
153
- return emptyResponse();
154
- }
155
- if (reload) {
156
- if (tx) {
157
- browserDebugLog(tx, "version mismatch, reloading", {
158
- reloadUrl: reload.url,
159
- });
160
- }
161
- window.location.href = reload.url;
162
- return new Promise<Response>(() => {});
163
- }
164
-
165
- // Server-side redirect without state: the server returned 204 with
166
- // X-RSC-Redirect instead of a 3xx (which fetch would auto-follow
167
- // to a URL rendering full HTML). Throw ServerRedirect so the
168
- // navigation bridge catches it and re-navigates with _skipCache.
169
- const redirect = extractRscHeaderUrl(response, "X-RSC-Redirect");
170
- if (redirect === "blocked") {
171
- resolveStreamComplete();
172
- return emptyResponse();
173
- }
174
- if (redirect) {
175
- if (tx) {
176
- browserDebugLog(tx, "server redirect", {
177
- redirectUrl: redirect.url,
178
- });
179
- }
180
- resolveStreamComplete();
181
- throw new ServerRedirect(redirect.url, undefined);
182
- }
178
+ const validated = validateRscHeaders(response, "fetch");
179
+ if (validated instanceof Promise) return validated;
183
180
 
184
181
  return teeWithCompletion(
185
- response,
182
+ validated,
186
183
  () => {
187
184
  if (tx) browserDebugLog(tx, "stream complete");
188
185
  resolveStreamComplete();
@@ -198,11 +195,12 @@ export function createNavigationClient(
198
195
  if (tx) {
199
196
  browserDebugLog(tx, "prefetch cache hit", { key: cacheKey });
200
197
  }
201
- // Cached response body is already fully buffered (arrayBuffer),
202
- // so stream completion is immediate.
203
198
  responsePromise = Promise.resolve(cachedResponse).then((response) => {
199
+ const validated = validateRscHeaders(response, "prefetch cache");
200
+ if (validated instanceof Promise) return validated;
201
+
204
202
  return teeWithCompletion(
205
- response,
203
+ validated,
206
204
  () => {
207
205
  if (tx) browserDebugLog(tx, "stream complete (from cache)");
208
206
  resolveStreamComplete();
@@ -222,8 +220,11 @@ export function createNavigationClient(
222
220
  return doFreshFetch();
223
221
  }
224
222
 
223
+ const validated = validateRscHeaders(response, "inflight prefetch");
224
+ if (validated instanceof Promise) return validated;
225
+
225
226
  return teeWithCompletion(
226
- response,
227
+ validated,
227
228
  () => {
228
229
  if (tx) {
229
230
  browserDebugLog(tx, "stream complete (from inflight prefetch)");
@@ -238,13 +239,8 @@ export function createNavigationClient(
238
239
  }
239
240
 
240
241
  try {
241
- // Deserialize RSC payload
242
- const payload = await deps.createFromFetch<RscPayload>(
243
- responsePromise,
244
- {
245
- ...(debugChannel && { debugChannel, findSourceMapURL }),
246
- },
247
- );
242
+ const payload = await deps.createFromFetch<RscPayload>(responsePromise);
243
+
248
244
  if (tx) {
249
245
  browserDebugLog(tx, "response received", {
250
246
  isPartial: payload.metadata?.isPartial,
@@ -39,8 +39,8 @@ export interface PartialUpdateConfig {
39
39
  segments: ResolvedSegment[],
40
40
  options?: RenderSegmentsOptions,
41
41
  ) => Promise<ReactNode> | ReactNode;
42
- /** RSC version received from server (from initial payload metadata) */
43
- version?: string;
42
+ /** RSC version getter returns the current version (may change after HMR) */
43
+ getVersion?: () => string | undefined;
44
44
  }
45
45
 
46
46
  /**
@@ -104,7 +104,13 @@ export type PartialUpdater = (
104
104
  export function createPartialUpdater(
105
105
  config: PartialUpdateConfig,
106
106
  ): PartialUpdater {
107
- const { store, client, onUpdate, renderSegments, version } = config;
107
+ const {
108
+ store,
109
+ client,
110
+ onUpdate,
111
+ renderSegments,
112
+ getVersion = () => undefined,
113
+ } = config;
108
114
 
109
115
  /**
110
116
  * Get current page's cached segments as an array
@@ -193,7 +199,7 @@ export function createPartialUpdater(
193
199
  // (action redirect sends empty segments for a fresh render).
194
200
  staleRevalidation:
195
201
  mode.type === "stale-revalidation" || segments.length === 0,
196
- version,
202
+ version: getVersion(),
197
203
  });
198
204
  // Mark navigation as streaming (response received, now parsing RSC).
199
205
  // Called after fetchPartial so pendingUrl stays set during the network wait,
@@ -32,6 +32,7 @@ export type LinkState =
32
32
  | StateOrGetter<Record<string, unknown>>;
33
33
 
34
34
  import { prefetchDirect, prefetchQueued } from "../prefetch/fetch.js";
35
+ import { getAppVersion } from "../app-version.js";
35
36
  import {
36
37
  observeForPrefetch,
37
38
  unobserveForPrefetch,
@@ -289,7 +290,7 @@ export const Link: ForwardRefExoticComponent<
289
290
  // prefetch — prefetchDirect bypasses the queue, and hasPrefetch
290
291
  // deduplicates if the viewport prefetch already completed.
291
292
  const segmentState = ctx.store.getSegmentState();
292
- prefetchDirect(to, segmentState.currentSegmentIds, ctx.version);
293
+ prefetchDirect(to, segmentState.currentSegmentIds, getAppVersion());
293
294
  }
294
295
  }, [resolvedStrategy, to, isExternal, ctx]);
295
296
 
@@ -308,7 +309,7 @@ export const Link: ForwardRefExoticComponent<
308
309
  const triggerPrefetch = () => {
309
310
  if (cancelled) return;
310
311
  const segmentState = ctx.store.getSegmentState();
311
- prefetchQueued(to, segmentState.currentSegmentIds, ctx.version);
312
+ prefetchQueued(to, segmentState.currentSegmentIds, getAppVersion());
312
313
  };
313
314
 
314
315
  // Schedule prefetch only when the app is idle (no navigation/streaming).
@@ -134,7 +134,7 @@ export interface NavigationProviderProps {
134
134
 
135
135
  /**
136
136
  * App version from server payload (stable, immutable).
137
- * Forwarded to prefetch requests for version mismatch detection.
137
+ * Forwarded to context for cache key building.
138
138
  */
139
139
  version?: string;
140
140
  }
@@ -43,8 +43,7 @@ export interface NavigationStoreContextValue {
43
43
  refresh: () => Promise<void>;
44
44
 
45
45
  /**
46
- * App version from server payload (stable, immutable).
47
- * Used in prefetch requests for version mismatch detection.
46
+ * App version from the initial server payload.
48
47
  */
49
48
  version: string | undefined;
50
49
  }
@@ -3,6 +3,7 @@
3
3
  import { useContext, useMemo } from "react";
4
4
  import { NavigationStoreContext } from "./context.js";
5
5
  import { prefetchDirect } from "../prefetch/fetch.js";
6
+ import { getAppVersion } from "../app-version.js";
6
7
  import type { RouterInstance, RouterNavigateOptions } from "../types.js";
7
8
 
8
9
  /**
@@ -46,7 +47,7 @@ export function useRouter(): RouterInstance {
46
47
  prefetch(url: string): void {
47
48
  const segmentState = ctx.store?.getSegmentState();
48
49
  if (segmentState) {
49
- prefetchDirect(url, segmentState.currentSegmentIds, ctx.version);
50
+ prefetchDirect(url, segmentState.currentSegmentIds, getAppVersion());
50
51
  }
51
52
  },
52
53