@rangojs/router 0.0.0-experimental.117 → 0.0.0-experimental.118

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 (845) hide show
  1. package/dist/__internal.d.ts +83 -0
  2. package/dist/__internal.d.ts.map +1 -0
  3. package/dist/__internal.js +19 -0
  4. package/dist/__internal.js.map +1 -0
  5. package/dist/__mocks__/version.d.ts +7 -0
  6. package/dist/__mocks__/version.d.ts.map +1 -0
  7. package/dist/__mocks__/version.js +7 -0
  8. package/dist/__mocks__/version.js.map +1 -0
  9. package/dist/__tests__/client-href.test.d.ts +2 -0
  10. package/dist/__tests__/client-href.test.d.ts.map +1 -0
  11. package/dist/__tests__/client-href.test.js +74 -0
  12. package/dist/__tests__/client-href.test.js.map +1 -0
  13. package/dist/__tests__/component-utils.test.d.ts +2 -0
  14. package/dist/__tests__/component-utils.test.d.ts.map +1 -0
  15. package/dist/__tests__/component-utils.test.js +51 -0
  16. package/dist/__tests__/component-utils.test.js.map +1 -0
  17. package/dist/__tests__/event-controller.test.d.ts +2 -0
  18. package/dist/__tests__/event-controller.test.d.ts.map +1 -0
  19. package/dist/__tests__/event-controller.test.js +538 -0
  20. package/dist/__tests__/event-controller.test.js.map +1 -0
  21. package/dist/__tests__/helpers/route-tree.d.ts +118 -0
  22. package/dist/__tests__/helpers/route-tree.d.ts.map +1 -0
  23. package/dist/__tests__/helpers/route-tree.js +374 -0
  24. package/dist/__tests__/helpers/route-tree.js.map +1 -0
  25. package/dist/__tests__/match-result.test.d.ts +2 -0
  26. package/dist/__tests__/match-result.test.d.ts.map +1 -0
  27. package/dist/__tests__/match-result.test.js +154 -0
  28. package/dist/__tests__/match-result.test.js.map +1 -0
  29. package/dist/__tests__/navigation-store.test.d.ts +2 -0
  30. package/dist/__tests__/navigation-store.test.d.ts.map +1 -0
  31. package/dist/__tests__/navigation-store.test.js +440 -0
  32. package/dist/__tests__/navigation-store.test.js.map +1 -0
  33. package/dist/__tests__/partial-update.test.d.ts +2 -0
  34. package/dist/__tests__/partial-update.test.d.ts.map +1 -0
  35. package/dist/__tests__/partial-update.test.js +1009 -0
  36. package/dist/__tests__/partial-update.test.js.map +1 -0
  37. package/dist/__tests__/reverse-types.test.d.ts +8 -0
  38. package/dist/__tests__/reverse-types.test.d.ts.map +1 -0
  39. package/dist/__tests__/reverse-types.test.js +656 -0
  40. package/dist/__tests__/reverse-types.test.js.map +1 -0
  41. package/dist/__tests__/route-definition.test.d.ts +2 -0
  42. package/dist/__tests__/route-definition.test.d.ts.map +1 -0
  43. package/dist/__tests__/route-definition.test.js +55 -0
  44. package/dist/__tests__/route-definition.test.js.map +1 -0
  45. package/dist/__tests__/router-helpers.test.d.ts +2 -0
  46. package/dist/__tests__/router-helpers.test.d.ts.map +1 -0
  47. package/dist/__tests__/router-helpers.test.js +377 -0
  48. package/dist/__tests__/router-helpers.test.js.map +1 -0
  49. package/dist/__tests__/router-integration-2.test.d.ts +2 -0
  50. package/dist/__tests__/router-integration-2.test.d.ts.map +1 -0
  51. package/dist/__tests__/router-integration-2.test.js +426 -0
  52. package/dist/__tests__/router-integration-2.test.js.map +1 -0
  53. package/dist/__tests__/router-integration.test.d.ts +2 -0
  54. package/dist/__tests__/router-integration.test.d.ts.map +1 -0
  55. package/dist/__tests__/router-integration.test.js +1051 -0
  56. package/dist/__tests__/router-integration.test.js.map +1 -0
  57. package/dist/__tests__/search-params.test.d.ts +5 -0
  58. package/dist/__tests__/search-params.test.d.ts.map +1 -0
  59. package/dist/__tests__/search-params.test.js +306 -0
  60. package/dist/__tests__/search-params.test.js.map +1 -0
  61. package/dist/__tests__/segment-system.test.d.ts +2 -0
  62. package/dist/__tests__/segment-system.test.d.ts.map +1 -0
  63. package/dist/__tests__/segment-system.test.js +627 -0
  64. package/dist/__tests__/segment-system.test.js.map +1 -0
  65. package/dist/__tests__/static-handler-types.test.d.ts +8 -0
  66. package/dist/__tests__/static-handler-types.test.d.ts.map +1 -0
  67. package/dist/__tests__/static-handler-types.test.js +63 -0
  68. package/dist/__tests__/static-handler-types.test.js.map +1 -0
  69. package/dist/__tests__/urls.test.d.ts +2 -0
  70. package/dist/__tests__/urls.test.d.ts.map +1 -0
  71. package/dist/__tests__/urls.test.js +421 -0
  72. package/dist/__tests__/urls.test.js.map +1 -0
  73. package/dist/__tests__/use-mount.test.d.ts +2 -0
  74. package/dist/__tests__/use-mount.test.d.ts.map +1 -0
  75. package/dist/__tests__/use-mount.test.js +35 -0
  76. package/dist/__tests__/use-mount.test.js.map +1 -0
  77. package/dist/bin/rango.d.ts +2 -0
  78. package/dist/bin/rango.d.ts.map +1 -0
  79. package/dist/bin/rango.js.map +1 -0
  80. package/dist/browser/event-controller.d.ts +191 -0
  81. package/dist/browser/event-controller.d.ts.map +1 -0
  82. package/dist/browser/event-controller.js +559 -0
  83. package/dist/browser/event-controller.js.map +1 -0
  84. package/dist/browser/index.d.ts +2 -0
  85. package/dist/browser/index.d.ts.map +1 -0
  86. package/dist/browser/index.js +14 -0
  87. package/dist/browser/index.js.map +1 -0
  88. package/dist/browser/link-interceptor.d.ts +38 -0
  89. package/dist/browser/link-interceptor.d.ts.map +1 -0
  90. package/dist/browser/link-interceptor.js +99 -0
  91. package/dist/browser/link-interceptor.js.map +1 -0
  92. package/dist/browser/logging.d.ts +10 -0
  93. package/dist/browser/logging.d.ts.map +1 -0
  94. package/dist/browser/logging.js +29 -0
  95. package/dist/browser/logging.js.map +1 -0
  96. package/dist/browser/lru-cache.d.ts +17 -0
  97. package/dist/browser/lru-cache.d.ts.map +1 -0
  98. package/dist/browser/lru-cache.js +50 -0
  99. package/dist/browser/lru-cache.js.map +1 -0
  100. package/dist/browser/merge-segment-loaders.d.ts +39 -0
  101. package/dist/browser/merge-segment-loaders.d.ts.map +1 -0
  102. package/dist/browser/merge-segment-loaders.js +102 -0
  103. package/dist/browser/merge-segment-loaders.js.map +1 -0
  104. package/dist/browser/navigation-bridge.d.ts +102 -0
  105. package/dist/browser/navigation-bridge.d.ts.map +1 -0
  106. package/dist/browser/navigation-bridge.js +708 -0
  107. package/dist/browser/navigation-bridge.js.map +1 -0
  108. package/dist/browser/navigation-client.d.ts +25 -0
  109. package/dist/browser/navigation-client.d.ts.map +1 -0
  110. package/dist/browser/navigation-client.js +157 -0
  111. package/dist/browser/navigation-client.js.map +1 -0
  112. package/dist/browser/navigation-store.d.ts +101 -0
  113. package/dist/browser/navigation-store.d.ts.map +1 -0
  114. package/dist/browser/navigation-store.js +625 -0
  115. package/dist/browser/navigation-store.js.map +1 -0
  116. package/dist/browser/partial-update.d.ts +75 -0
  117. package/dist/browser/partial-update.d.ts.map +1 -0
  118. package/dist/browser/partial-update.js +426 -0
  119. package/dist/browser/partial-update.js.map +1 -0
  120. package/dist/browser/react/Link.d.ts +86 -0
  121. package/dist/browser/react/Link.d.ts.map +1 -0
  122. package/dist/browser/react/Link.js +128 -0
  123. package/dist/browser/react/Link.js.map +1 -0
  124. package/dist/browser/react/NavigationProvider.d.ts +63 -0
  125. package/dist/browser/react/NavigationProvider.d.ts.map +1 -0
  126. package/dist/browser/react/NavigationProvider.js +216 -0
  127. package/dist/browser/react/NavigationProvider.js.map +1 -0
  128. package/dist/browser/react/ScrollRestoration.d.ts +75 -0
  129. package/dist/browser/react/ScrollRestoration.d.ts.map +1 -0
  130. package/dist/browser/react/ScrollRestoration.js +57 -0
  131. package/dist/browser/react/ScrollRestoration.js.map +1 -0
  132. package/dist/browser/react/context.d.ts +46 -0
  133. package/dist/browser/react/context.d.ts.map +1 -0
  134. package/dist/browser/react/context.js +10 -0
  135. package/dist/browser/react/context.js.map +1 -0
  136. package/dist/browser/react/index.d.ts +11 -0
  137. package/dist/browser/react/index.d.ts.map +1 -0
  138. package/dist/browser/react/index.js +22 -0
  139. package/dist/browser/react/index.js.map +1 -0
  140. package/dist/browser/react/location-state-shared.d.ts +63 -0
  141. package/dist/browser/react/location-state-shared.d.ts.map +1 -0
  142. package/dist/browser/react/location-state-shared.js +81 -0
  143. package/dist/browser/react/location-state-shared.js.map +1 -0
  144. package/dist/browser/react/location-state.d.ts +23 -0
  145. package/dist/browser/react/location-state.d.ts.map +1 -0
  146. package/dist/browser/react/location-state.js +29 -0
  147. package/dist/browser/react/location-state.js.map +1 -0
  148. package/dist/browser/react/mount-context.d.ts +24 -0
  149. package/dist/browser/react/mount-context.d.ts.map +1 -0
  150. package/dist/browser/react/mount-context.js +24 -0
  151. package/dist/browser/react/mount-context.js.map +1 -0
  152. package/dist/browser/react/use-action.d.ts +64 -0
  153. package/dist/browser/react/use-action.d.ts.map +1 -0
  154. package/dist/browser/react/use-action.js +134 -0
  155. package/dist/browser/react/use-action.js.map +1 -0
  156. package/dist/browser/react/use-client-cache.d.ts +41 -0
  157. package/dist/browser/react/use-client-cache.d.ts.map +1 -0
  158. package/dist/browser/react/use-client-cache.js +39 -0
  159. package/dist/browser/react/use-client-cache.js.map +1 -0
  160. package/dist/browser/react/use-handle.d.ts +31 -0
  161. package/dist/browser/react/use-handle.d.ts.map +1 -0
  162. package/dist/browser/react/use-handle.js +144 -0
  163. package/dist/browser/react/use-handle.js.map +1 -0
  164. package/dist/browser/react/use-href.d.ts +33 -0
  165. package/dist/browser/react/use-href.d.ts.map +1 -0
  166. package/dist/browser/react/use-href.js +39 -0
  167. package/dist/browser/react/use-href.js.map +1 -0
  168. package/dist/browser/react/use-link-status.d.ts +37 -0
  169. package/dist/browser/react/use-link-status.d.ts.map +1 -0
  170. package/dist/browser/react/use-link-status.js +99 -0
  171. package/dist/browser/react/use-link-status.js.map +1 -0
  172. package/dist/browser/react/use-mount.d.ts +25 -0
  173. package/dist/browser/react/use-mount.d.ts.map +1 -0
  174. package/dist/browser/react/use-mount.js +30 -0
  175. package/dist/browser/react/use-mount.js.map +1 -0
  176. package/dist/browser/react/use-navigation.d.ts +27 -0
  177. package/dist/browser/react/use-navigation.d.ts.map +1 -0
  178. package/dist/browser/react/use-navigation.js +87 -0
  179. package/dist/browser/react/use-navigation.js.map +1 -0
  180. package/dist/browser/react/use-segments.d.ts +38 -0
  181. package/dist/browser/react/use-segments.d.ts.map +1 -0
  182. package/dist/browser/react/use-segments.js +130 -0
  183. package/dist/browser/react/use-segments.js.map +1 -0
  184. package/dist/browser/request-controller.d.ts +26 -0
  185. package/dist/browser/request-controller.d.ts.map +1 -0
  186. package/dist/browser/request-controller.js +147 -0
  187. package/dist/browser/request-controller.js.map +1 -0
  188. package/dist/browser/rsc-router.d.ts +129 -0
  189. package/dist/browser/rsc-router.d.ts.map +1 -0
  190. package/dist/browser/rsc-router.js +195 -0
  191. package/dist/browser/rsc-router.js.map +1 -0
  192. package/dist/browser/scroll-restoration.d.ts +93 -0
  193. package/dist/browser/scroll-restoration.d.ts.map +1 -0
  194. package/dist/browser/scroll-restoration.js +321 -0
  195. package/dist/browser/scroll-restoration.js.map +1 -0
  196. package/dist/browser/segment-structure-assert.d.ts +17 -0
  197. package/dist/browser/segment-structure-assert.d.ts.map +1 -0
  198. package/dist/browser/segment-structure-assert.js +59 -0
  199. package/dist/browser/segment-structure-assert.js.map +1 -0
  200. package/dist/browser/server-action-bridge.d.ts +26 -0
  201. package/dist/browser/server-action-bridge.d.ts.map +1 -0
  202. package/dist/browser/server-action-bridge.js +668 -0
  203. package/dist/browser/server-action-bridge.js.map +1 -0
  204. package/dist/browser/shallow.d.ts +12 -0
  205. package/dist/browser/shallow.d.ts.map +1 -0
  206. package/dist/browser/shallow.js +34 -0
  207. package/dist/browser/shallow.js.map +1 -0
  208. package/dist/browser/types.d.ts +369 -0
  209. package/dist/browser/types.d.ts.map +1 -0
  210. package/dist/browser/types.js +2 -0
  211. package/dist/browser/types.js.map +1 -0
  212. package/dist/build/__tests__/generate-cli.test.d.ts +2 -0
  213. package/dist/build/__tests__/generate-cli.test.d.ts.map +1 -0
  214. package/dist/build/__tests__/generate-cli.test.js +237 -0
  215. package/dist/build/__tests__/generate-cli.test.js.map +1 -0
  216. package/dist/build/__tests__/generate-manifest.test.d.ts +2 -0
  217. package/dist/build/__tests__/generate-manifest.test.d.ts.map +1 -0
  218. package/dist/build/__tests__/generate-manifest.test.js +119 -0
  219. package/dist/build/__tests__/generate-manifest.test.js.map +1 -0
  220. package/dist/build/__tests__/generate-route-types.test.d.ts +2 -0
  221. package/dist/build/__tests__/generate-route-types.test.d.ts.map +1 -0
  222. package/dist/build/__tests__/generate-route-types.test.js +620 -0
  223. package/dist/build/__tests__/generate-route-types.test.js.map +1 -0
  224. package/dist/build/__tests__/per-router-manifest.test.d.ts +2 -0
  225. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +1 -0
  226. package/dist/build/__tests__/per-router-manifest.test.js +308 -0
  227. package/dist/build/__tests__/per-router-manifest.test.js.map +1 -0
  228. package/dist/build/generate-manifest.d.ts +81 -0
  229. package/dist/build/generate-manifest.d.ts.map +1 -0
  230. package/dist/build/generate-manifest.js +276 -0
  231. package/dist/build/generate-manifest.js.map +1 -0
  232. package/dist/build/generate-route-types.d.ts +115 -0
  233. package/dist/build/generate-route-types.d.ts.map +1 -0
  234. package/dist/build/generate-route-types.js +740 -0
  235. package/dist/build/generate-route-types.js.map +1 -0
  236. package/dist/build/index.d.ts +21 -0
  237. package/dist/build/index.d.ts.map +1 -0
  238. package/dist/build/index.js +21 -0
  239. package/dist/build/index.js.map +1 -0
  240. package/dist/build/route-trie.d.ts +71 -0
  241. package/dist/build/route-trie.d.ts.map +1 -0
  242. package/dist/build/route-trie.js +175 -0
  243. package/dist/build/route-trie.js.map +1 -0
  244. package/dist/cache/__tests__/cache-scope.test.d.ts +2 -0
  245. package/dist/cache/__tests__/cache-scope.test.d.ts.map +1 -0
  246. package/dist/cache/__tests__/cache-scope.test.js +208 -0
  247. package/dist/cache/__tests__/cache-scope.test.js.map +1 -0
  248. package/dist/cache/__tests__/document-cache.test.d.ts +2 -0
  249. package/dist/cache/__tests__/document-cache.test.d.ts.map +1 -0
  250. package/dist/cache/__tests__/document-cache.test.js +345 -0
  251. package/dist/cache/__tests__/document-cache.test.js.map +1 -0
  252. package/dist/cache/__tests__/memory-segment-store.test.d.ts +2 -0
  253. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +1 -0
  254. package/dist/cache/__tests__/memory-segment-store.test.js +425 -0
  255. package/dist/cache/__tests__/memory-segment-store.test.js.map +1 -0
  256. package/dist/cache/__tests__/memory-store.test.d.ts +2 -0
  257. package/dist/cache/__tests__/memory-store.test.d.ts.map +1 -0
  258. package/dist/cache/__tests__/memory-store.test.js +367 -0
  259. package/dist/cache/__tests__/memory-store.test.js.map +1 -0
  260. package/dist/cache/cache-scope.d.ts +102 -0
  261. package/dist/cache/cache-scope.d.ts.map +1 -0
  262. package/dist/cache/cache-scope.js +440 -0
  263. package/dist/cache/cache-scope.js.map +1 -0
  264. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +2 -0
  265. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +1 -0
  266. package/dist/cache/cf/__tests__/cf-cache-store.test.js +330 -0
  267. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +1 -0
  268. package/dist/cache/cf/cf-cache-store.d.ts +165 -0
  269. package/dist/cache/cf/cf-cache-store.d.ts.map +1 -0
  270. package/dist/cache/cf/cf-cache-store.js +242 -0
  271. package/dist/cache/cf/cf-cache-store.js.map +1 -0
  272. package/dist/cache/cf/index.d.ts +14 -0
  273. package/dist/cache/cf/index.d.ts.map +1 -0
  274. package/dist/cache/cf/index.js +17 -0
  275. package/dist/cache/cf/index.js.map +1 -0
  276. package/dist/cache/document-cache.d.ts +64 -0
  277. package/dist/cache/document-cache.d.ts.map +1 -0
  278. package/dist/cache/document-cache.js +228 -0
  279. package/dist/cache/document-cache.js.map +1 -0
  280. package/dist/cache/index.d.ts +19 -0
  281. package/dist/cache/index.d.ts.map +1 -0
  282. package/dist/cache/index.js +21 -0
  283. package/dist/cache/index.js.map +1 -0
  284. package/dist/cache/memory-segment-store.d.ts +110 -0
  285. package/dist/cache/memory-segment-store.d.ts.map +1 -0
  286. package/dist/cache/memory-segment-store.js +117 -0
  287. package/dist/cache/memory-segment-store.js.map +1 -0
  288. package/dist/cache/memory-store.d.ts +41 -0
  289. package/dist/cache/memory-store.d.ts.map +1 -0
  290. package/dist/cache/memory-store.js +191 -0
  291. package/dist/cache/memory-store.js.map +1 -0
  292. package/dist/cache/types.d.ts +317 -0
  293. package/dist/cache/types.d.ts.map +1 -0
  294. package/dist/cache/types.js +12 -0
  295. package/dist/cache/types.js.map +1 -0
  296. package/dist/client.d.ts +248 -0
  297. package/dist/client.d.ts.map +1 -0
  298. package/dist/client.js +367 -0
  299. package/dist/client.js.map +1 -0
  300. package/dist/client.rsc.d.ts +26 -0
  301. package/dist/client.rsc.d.ts.map +1 -0
  302. package/dist/client.rsc.js +46 -0
  303. package/dist/client.rsc.js.map +1 -0
  304. package/dist/component-utils.d.ts +36 -0
  305. package/dist/component-utils.d.ts.map +1 -0
  306. package/dist/component-utils.js +61 -0
  307. package/dist/component-utils.js.map +1 -0
  308. package/dist/components/DefaultDocument.d.ts +13 -0
  309. package/dist/components/DefaultDocument.d.ts.map +1 -0
  310. package/dist/components/DefaultDocument.js +15 -0
  311. package/dist/components/DefaultDocument.js.map +1 -0
  312. package/dist/debug.d.ts +58 -0
  313. package/dist/debug.d.ts.map +1 -0
  314. package/dist/debug.js +157 -0
  315. package/dist/debug.js.map +1 -0
  316. package/dist/default-error-boundary.d.ts +11 -0
  317. package/dist/default-error-boundary.d.ts.map +1 -0
  318. package/dist/default-error-boundary.js +45 -0
  319. package/dist/default-error-boundary.js.map +1 -0
  320. package/dist/deps/browser.d.ts +2 -0
  321. package/dist/deps/browser.d.ts.map +1 -0
  322. package/dist/deps/browser.js +3 -0
  323. package/dist/deps/browser.js.map +1 -0
  324. package/dist/deps/html-stream-client.d.ts +2 -0
  325. package/dist/deps/html-stream-client.d.ts.map +1 -0
  326. package/dist/deps/html-stream-client.js +3 -0
  327. package/dist/deps/html-stream-client.js.map +1 -0
  328. package/dist/deps/html-stream-server.d.ts +2 -0
  329. package/dist/deps/html-stream-server.d.ts.map +1 -0
  330. package/dist/deps/html-stream-server.js +3 -0
  331. package/dist/deps/html-stream-server.js.map +1 -0
  332. package/dist/deps/rsc.d.ts +2 -0
  333. package/dist/deps/rsc.d.ts.map +1 -0
  334. package/dist/deps/rsc.js +4 -0
  335. package/dist/deps/rsc.js.map +1 -0
  336. package/dist/deps/ssr.d.ts +2 -0
  337. package/dist/deps/ssr.d.ts.map +1 -0
  338. package/dist/deps/ssr.js +3 -0
  339. package/dist/deps/ssr.js.map +1 -0
  340. package/dist/errors.d.ts +174 -0
  341. package/dist/errors.d.ts.map +1 -0
  342. package/dist/errors.js +241 -0
  343. package/dist/errors.js.map +1 -0
  344. package/dist/handle.d.ts +78 -0
  345. package/dist/handle.d.ts.map +1 -0
  346. package/dist/handle.js +82 -0
  347. package/dist/handle.js.map +1 -0
  348. package/dist/handles/MetaTags.d.ts +14 -0
  349. package/dist/handles/MetaTags.d.ts.map +1 -0
  350. package/dist/handles/MetaTags.js +136 -0
  351. package/dist/handles/MetaTags.js.map +1 -0
  352. package/dist/handles/index.d.ts +6 -0
  353. package/dist/handles/index.d.ts.map +1 -0
  354. package/dist/handles/index.js +6 -0
  355. package/dist/handles/index.js.map +1 -0
  356. package/dist/handles/meta.d.ts +39 -0
  357. package/dist/handles/meta.d.ts.map +1 -0
  358. package/dist/handles/meta.js +202 -0
  359. package/dist/handles/meta.js.map +1 -0
  360. package/dist/host/__tests__/errors.test.d.ts +2 -0
  361. package/dist/host/__tests__/errors.test.d.ts.map +1 -0
  362. package/dist/host/__tests__/errors.test.js +76 -0
  363. package/dist/host/__tests__/errors.test.js.map +1 -0
  364. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +2 -0
  365. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +1 -0
  366. package/dist/host/__tests__/pattern-comprehensive.test.js +732 -0
  367. package/dist/host/__tests__/pattern-comprehensive.test.js.map +1 -0
  368. package/dist/host/__tests__/pattern-matcher.test.d.ts +2 -0
  369. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +1 -0
  370. package/dist/host/__tests__/pattern-matcher.test.js +251 -0
  371. package/dist/host/__tests__/pattern-matcher.test.js.map +1 -0
  372. package/dist/host/__tests__/router.test.d.ts +2 -0
  373. package/dist/host/__tests__/router.test.d.ts.map +1 -0
  374. package/dist/host/__tests__/router.test.js +241 -0
  375. package/dist/host/__tests__/router.test.js.map +1 -0
  376. package/dist/host/__tests__/testing.test.d.ts +2 -0
  377. package/dist/host/__tests__/testing.test.d.ts.map +1 -0
  378. package/dist/host/__tests__/testing.test.js +64 -0
  379. package/dist/host/__tests__/testing.test.js.map +1 -0
  380. package/dist/host/__tests__/utils.test.d.ts +2 -0
  381. package/dist/host/__tests__/utils.test.d.ts.map +1 -0
  382. package/dist/host/__tests__/utils.test.js +29 -0
  383. package/dist/host/__tests__/utils.test.js.map +1 -0
  384. package/dist/host/cookie-handler.d.ts +34 -0
  385. package/dist/host/cookie-handler.d.ts.map +1 -0
  386. package/dist/host/cookie-handler.js +124 -0
  387. package/dist/host/cookie-handler.js.map +1 -0
  388. package/dist/host/errors.d.ts +56 -0
  389. package/dist/host/errors.d.ts.map +1 -0
  390. package/dist/host/errors.js +79 -0
  391. package/dist/host/errors.js.map +1 -0
  392. package/dist/host/index.d.ts +29 -0
  393. package/dist/host/index.d.ts.map +1 -0
  394. package/dist/host/index.js +32 -0
  395. package/dist/host/index.js.map +1 -0
  396. package/dist/host/pattern-matcher.d.ts +36 -0
  397. package/dist/host/pattern-matcher.d.ts.map +1 -0
  398. package/dist/host/pattern-matcher.js +172 -0
  399. package/dist/host/pattern-matcher.js.map +1 -0
  400. package/dist/host/router.d.ts +26 -0
  401. package/dist/host/router.d.ts.map +1 -0
  402. package/dist/host/router.js +218 -0
  403. package/dist/host/router.js.map +1 -0
  404. package/dist/host/testing.d.ts +36 -0
  405. package/dist/host/testing.d.ts.map +1 -0
  406. package/dist/host/testing.js +55 -0
  407. package/dist/host/testing.js.map +1 -0
  408. package/dist/host/types.d.ts +115 -0
  409. package/dist/host/types.d.ts.map +1 -0
  410. package/dist/host/types.js +7 -0
  411. package/dist/host/types.js.map +1 -0
  412. package/dist/host/utils.d.ts +21 -0
  413. package/dist/host/utils.d.ts.map +1 -0
  414. package/dist/host/utils.js +23 -0
  415. package/dist/host/utils.js.map +1 -0
  416. package/dist/href-client.d.ts +131 -0
  417. package/dist/href-client.d.ts.map +1 -0
  418. package/dist/href-client.js +64 -0
  419. package/dist/href-client.js.map +1 -0
  420. package/dist/href-context.d.ts +29 -0
  421. package/dist/href-context.d.ts.map +1 -0
  422. package/dist/href-context.js +21 -0
  423. package/dist/href-context.js.map +1 -0
  424. package/dist/index.d.ts +73 -0
  425. package/dist/index.d.ts.map +1 -0
  426. package/dist/index.js +91 -0
  427. package/dist/index.js.map +1 -0
  428. package/dist/index.rsc.d.ts +32 -0
  429. package/dist/index.rsc.d.ts.map +1 -0
  430. package/dist/index.rsc.js +40 -0
  431. package/dist/index.rsc.js.map +1 -0
  432. package/dist/internal-debug.d.ts +2 -0
  433. package/dist/internal-debug.d.ts.map +1 -0
  434. package/dist/internal-debug.js +5 -0
  435. package/dist/internal-debug.js.map +1 -0
  436. package/dist/loader.d.ts +14 -0
  437. package/dist/loader.d.ts.map +1 -0
  438. package/dist/loader.js +20 -0
  439. package/dist/loader.js.map +1 -0
  440. package/dist/loader.rsc.d.ts +19 -0
  441. package/dist/loader.rsc.d.ts.map +1 -0
  442. package/dist/loader.rsc.js +99 -0
  443. package/dist/loader.rsc.js.map +1 -0
  444. package/dist/network-error-thrower.d.ts +17 -0
  445. package/dist/network-error-thrower.d.ts.map +1 -0
  446. package/dist/network-error-thrower.js +14 -0
  447. package/dist/network-error-thrower.js.map +1 -0
  448. package/dist/outlet-context.d.ts +13 -0
  449. package/dist/outlet-context.d.ts.map +1 -0
  450. package/dist/outlet-context.js +3 -0
  451. package/dist/outlet-context.js.map +1 -0
  452. package/dist/prerender/__tests__/param-hash.test.d.ts +2 -0
  453. package/dist/prerender/__tests__/param-hash.test.d.ts.map +1 -0
  454. package/dist/prerender/__tests__/param-hash.test.js +148 -0
  455. package/dist/prerender/__tests__/param-hash.test.js.map +1 -0
  456. package/dist/prerender/param-hash.d.ts +16 -0
  457. package/dist/prerender/param-hash.d.ts.map +1 -0
  458. package/dist/prerender/param-hash.js +36 -0
  459. package/dist/prerender/param-hash.js.map +1 -0
  460. package/dist/prerender/store.d.ts +38 -0
  461. package/dist/prerender/store.d.ts.map +1 -0
  462. package/dist/prerender/store.js +61 -0
  463. package/dist/prerender/store.js.map +1 -0
  464. package/dist/prerender.d.ts +66 -0
  465. package/dist/prerender.d.ts.map +1 -0
  466. package/dist/prerender.js +57 -0
  467. package/dist/prerender.js.map +1 -0
  468. package/dist/reverse.d.ts +196 -0
  469. package/dist/reverse.d.ts.map +1 -0
  470. package/dist/reverse.js +78 -0
  471. package/dist/reverse.js.map +1 -0
  472. package/dist/root-error-boundary.d.ts +33 -0
  473. package/dist/root-error-boundary.d.ts.map +1 -0
  474. package/dist/root-error-boundary.js +165 -0
  475. package/dist/root-error-boundary.js.map +1 -0
  476. package/dist/route-content-wrapper.d.ts +46 -0
  477. package/dist/route-content-wrapper.d.ts.map +1 -0
  478. package/dist/route-content-wrapper.js +77 -0
  479. package/dist/route-content-wrapper.js.map +1 -0
  480. package/dist/route-definition.d.ts +421 -0
  481. package/dist/route-definition.d.ts.map +1 -0
  482. package/dist/route-definition.js +868 -0
  483. package/dist/route-definition.js.map +1 -0
  484. package/dist/route-map-builder.d.ts +155 -0
  485. package/dist/route-map-builder.d.ts.map +1 -0
  486. package/dist/route-map-builder.js +237 -0
  487. package/dist/route-map-builder.js.map +1 -0
  488. package/dist/route-types.d.ts +165 -0
  489. package/dist/route-types.d.ts.map +1 -0
  490. package/dist/route-types.js +7 -0
  491. package/dist/route-types.js.map +1 -0
  492. package/dist/router/__tests__/handler-context.test.d.ts +2 -0
  493. package/dist/router/__tests__/handler-context.test.d.ts.map +1 -0
  494. package/dist/router/__tests__/handler-context.test.js +65 -0
  495. package/dist/router/__tests__/handler-context.test.js.map +1 -0
  496. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +2 -0
  497. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +1 -0
  498. package/dist/router/__tests__/loader-cycle-detection.test.js +221 -0
  499. package/dist/router/__tests__/loader-cycle-detection.test.js.map +1 -0
  500. package/dist/router/__tests__/match-context.test.d.ts +2 -0
  501. package/dist/router/__tests__/match-context.test.d.ts.map +1 -0
  502. package/dist/router/__tests__/match-context.test.js +92 -0
  503. package/dist/router/__tests__/match-context.test.js.map +1 -0
  504. package/dist/router/__tests__/match-pipelines.test.d.ts +2 -0
  505. package/dist/router/__tests__/match-pipelines.test.d.ts.map +1 -0
  506. package/dist/router/__tests__/match-pipelines.test.js +417 -0
  507. package/dist/router/__tests__/match-pipelines.test.js.map +1 -0
  508. package/dist/router/__tests__/match-result.test.d.ts +2 -0
  509. package/dist/router/__tests__/match-result.test.d.ts.map +1 -0
  510. package/dist/router/__tests__/match-result.test.js +457 -0
  511. package/dist/router/__tests__/match-result.test.js.map +1 -0
  512. package/dist/router/__tests__/on-error.test.d.ts +2 -0
  513. package/dist/router/__tests__/on-error.test.d.ts.map +1 -0
  514. package/dist/router/__tests__/on-error.test.js +678 -0
  515. package/dist/router/__tests__/on-error.test.js.map +1 -0
  516. package/dist/router/__tests__/pattern-matching.test.d.ts +2 -0
  517. package/dist/router/__tests__/pattern-matching.test.d.ts.map +1 -0
  518. package/dist/router/__tests__/pattern-matching.test.js +629 -0
  519. package/dist/router/__tests__/pattern-matching.test.js.map +1 -0
  520. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +2 -0
  521. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +1 -0
  522. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +155 -0
  523. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +1 -0
  524. package/dist/router/error-handling.d.ts +77 -0
  525. package/dist/router/error-handling.d.ts.map +1 -0
  526. package/dist/router/error-handling.js +202 -0
  527. package/dist/router/error-handling.js.map +1 -0
  528. package/dist/router/handler-context.d.ts +20 -0
  529. package/dist/router/handler-context.d.ts.map +1 -0
  530. package/dist/router/handler-context.js +198 -0
  531. package/dist/router/handler-context.js.map +1 -0
  532. package/dist/router/intercept-resolution.d.ts +66 -0
  533. package/dist/router/intercept-resolution.d.ts.map +1 -0
  534. package/dist/router/intercept-resolution.js +246 -0
  535. package/dist/router/intercept-resolution.js.map +1 -0
  536. package/dist/router/loader-resolution.d.ts +64 -0
  537. package/dist/router/loader-resolution.d.ts.map +1 -0
  538. package/dist/router/loader-resolution.js +284 -0
  539. package/dist/router/loader-resolution.js.map +1 -0
  540. package/dist/router/logging.d.ts +15 -0
  541. package/dist/router/logging.d.ts.map +1 -0
  542. package/dist/router/logging.js +99 -0
  543. package/dist/router/logging.js.map +1 -0
  544. package/dist/router/manifest.d.ts +22 -0
  545. package/dist/router/manifest.d.ts.map +1 -0
  546. package/dist/router/manifest.js +181 -0
  547. package/dist/router/manifest.js.map +1 -0
  548. package/dist/router/match-api.d.ts +35 -0
  549. package/dist/router/match-api.d.ts.map +1 -0
  550. package/dist/router/match-api.js +406 -0
  551. package/dist/router/match-api.js.map +1 -0
  552. package/dist/router/match-context.d.ts +206 -0
  553. package/dist/router/match-context.d.ts.map +1 -0
  554. package/dist/router/match-context.js +17 -0
  555. package/dist/router/match-context.js.map +1 -0
  556. package/dist/router/match-middleware/background-revalidation.d.ts +127 -0
  557. package/dist/router/match-middleware/background-revalidation.d.ts.map +1 -0
  558. package/dist/router/match-middleware/background-revalidation.js +75 -0
  559. package/dist/router/match-middleware/background-revalidation.js.map +1 -0
  560. package/dist/router/match-middleware/cache-lookup.d.ts +112 -0
  561. package/dist/router/match-middleware/cache-lookup.d.ts.map +1 -0
  562. package/dist/router/match-middleware/cache-lookup.js +257 -0
  563. package/dist/router/match-middleware/cache-lookup.js.map +1 -0
  564. package/dist/router/match-middleware/cache-store.d.ts +113 -0
  565. package/dist/router/match-middleware/cache-store.d.ts.map +1 -0
  566. package/dist/router/match-middleware/cache-store.js +108 -0
  567. package/dist/router/match-middleware/cache-store.js.map +1 -0
  568. package/dist/router/match-middleware/index.d.ts +81 -0
  569. package/dist/router/match-middleware/index.d.ts.map +1 -0
  570. package/dist/router/match-middleware/index.js +80 -0
  571. package/dist/router/match-middleware/index.js.map +1 -0
  572. package/dist/router/match-middleware/intercept-resolution.d.ts +117 -0
  573. package/dist/router/match-middleware/intercept-resolution.d.ts.map +1 -0
  574. package/dist/router/match-middleware/intercept-resolution.js +134 -0
  575. package/dist/router/match-middleware/intercept-resolution.js.map +1 -0
  576. package/dist/router/match-middleware/segment-resolution.d.ts +99 -0
  577. package/dist/router/match-middleware/segment-resolution.d.ts.map +1 -0
  578. package/dist/router/match-middleware/segment-resolution.js +53 -0
  579. package/dist/router/match-middleware/segment-resolution.js.map +1 -0
  580. package/dist/router/match-pipelines.d.ts +147 -0
  581. package/dist/router/match-pipelines.d.ts.map +1 -0
  582. package/dist/router/match-pipelines.js +82 -0
  583. package/dist/router/match-pipelines.js.map +1 -0
  584. package/dist/router/match-result.d.ts +126 -0
  585. package/dist/router/match-result.d.ts.map +1 -0
  586. package/dist/router/match-result.js +93 -0
  587. package/dist/router/match-result.js.map +1 -0
  588. package/dist/router/metrics.d.ts +20 -0
  589. package/dist/router/metrics.d.ts.map +1 -0
  590. package/dist/router/metrics.js +47 -0
  591. package/dist/router/metrics.js.map +1 -0
  592. package/dist/router/middleware.d.ts +249 -0
  593. package/dist/router/middleware.d.ts.map +1 -0
  594. package/dist/router/middleware.js +434 -0
  595. package/dist/router/middleware.js.map +1 -0
  596. package/dist/router/middleware.test.d.ts +2 -0
  597. package/dist/router/middleware.test.d.ts.map +1 -0
  598. package/dist/router/middleware.test.js +816 -0
  599. package/dist/router/middleware.test.js.map +1 -0
  600. package/dist/router/pattern-matching.d.ts +149 -0
  601. package/dist/router/pattern-matching.d.ts.map +1 -0
  602. package/dist/router/pattern-matching.js +349 -0
  603. package/dist/router/pattern-matching.js.map +1 -0
  604. package/dist/router/revalidation.d.ts +44 -0
  605. package/dist/router/revalidation.d.ts.map +1 -0
  606. package/dist/router/revalidation.js +147 -0
  607. package/dist/router/revalidation.js.map +1 -0
  608. package/dist/router/router-context.d.ts +135 -0
  609. package/dist/router/router-context.d.ts.map +1 -0
  610. package/dist/router/router-context.js +36 -0
  611. package/dist/router/router-context.js.map +1 -0
  612. package/dist/router/segment-resolution.d.ts +127 -0
  613. package/dist/router/segment-resolution.d.ts.map +1 -0
  614. package/dist/router/segment-resolution.js +919 -0
  615. package/dist/router/segment-resolution.js.map +1 -0
  616. package/dist/router/trie-matching.d.ts +40 -0
  617. package/dist/router/trie-matching.d.ts.map +1 -0
  618. package/dist/router/trie-matching.js +127 -0
  619. package/dist/router/trie-matching.js.map +1 -0
  620. package/dist/router/types.d.ts +136 -0
  621. package/dist/router/types.d.ts.map +1 -0
  622. package/dist/router/types.js +7 -0
  623. package/dist/router/types.js.map +1 -0
  624. package/dist/router.d.ts +753 -0
  625. package/dist/router.d.ts.map +1 -0
  626. package/dist/router.gen.d.ts +6 -0
  627. package/dist/router.gen.d.ts.map +1 -0
  628. package/dist/router.gen.js +6 -0
  629. package/dist/router.gen.js.map +1 -0
  630. package/dist/router.js +1304 -0
  631. package/dist/router.js.map +1 -0
  632. package/dist/rsc/__tests__/helpers.test.d.ts +2 -0
  633. package/dist/rsc/__tests__/helpers.test.d.ts.map +1 -0
  634. package/dist/rsc/__tests__/helpers.test.js +140 -0
  635. package/dist/rsc/__tests__/helpers.test.js.map +1 -0
  636. package/dist/rsc/handler.d.ts +45 -0
  637. package/dist/rsc/handler.d.ts.map +1 -0
  638. package/dist/rsc/handler.js +1172 -0
  639. package/dist/rsc/handler.js.map +1 -0
  640. package/dist/rsc/helpers.d.ts +16 -0
  641. package/dist/rsc/helpers.d.ts.map +1 -0
  642. package/dist/rsc/helpers.js +55 -0
  643. package/dist/rsc/helpers.js.map +1 -0
  644. package/dist/rsc/index.d.ts +22 -0
  645. package/dist/rsc/index.d.ts.map +1 -0
  646. package/dist/rsc/index.js +23 -0
  647. package/dist/rsc/index.js.map +1 -0
  648. package/dist/rsc/nonce.d.ts +9 -0
  649. package/dist/rsc/nonce.d.ts.map +1 -0
  650. package/dist/rsc/nonce.js +18 -0
  651. package/dist/rsc/nonce.js.map +1 -0
  652. package/dist/rsc/types.d.ts +206 -0
  653. package/dist/rsc/types.d.ts.map +1 -0
  654. package/dist/rsc/types.js +8 -0
  655. package/dist/rsc/types.js.map +1 -0
  656. package/dist/search-params.d.ts +103 -0
  657. package/dist/search-params.d.ts.map +1 -0
  658. package/dist/search-params.js +74 -0
  659. package/dist/search-params.js.map +1 -0
  660. package/dist/segment-system.d.ts +75 -0
  661. package/dist/segment-system.d.ts.map +1 -0
  662. package/dist/segment-system.js +336 -0
  663. package/dist/segment-system.js.map +1 -0
  664. package/dist/server/context.d.ts +245 -0
  665. package/dist/server/context.d.ts.map +1 -0
  666. package/dist/server/context.js +197 -0
  667. package/dist/server/context.js.map +1 -0
  668. package/dist/server/fetchable-loader-store.d.ts +18 -0
  669. package/dist/server/fetchable-loader-store.d.ts.map +1 -0
  670. package/dist/server/fetchable-loader-store.js +18 -0
  671. package/dist/server/fetchable-loader-store.js.map +1 -0
  672. package/dist/server/handle-store.d.ts +85 -0
  673. package/dist/server/handle-store.d.ts.map +1 -0
  674. package/dist/server/handle-store.js +142 -0
  675. package/dist/server/handle-store.js.map +1 -0
  676. package/dist/server/loader-registry.d.ts +55 -0
  677. package/dist/server/loader-registry.d.ts.map +1 -0
  678. package/dist/server/loader-registry.js +132 -0
  679. package/dist/server/loader-registry.js.map +1 -0
  680. package/dist/server/request-context.d.ts +226 -0
  681. package/dist/server/request-context.d.ts.map +1 -0
  682. package/dist/server/request-context.js +290 -0
  683. package/dist/server/request-context.js.map +1 -0
  684. package/dist/server/root-layout.d.ts +4 -0
  685. package/dist/server/root-layout.d.ts.map +1 -0
  686. package/dist/server/root-layout.js +5 -0
  687. package/dist/server/root-layout.js.map +1 -0
  688. package/dist/server.d.ts +15 -0
  689. package/dist/server.d.ts.map +1 -0
  690. package/dist/server.js +20 -0
  691. package/dist/server.js.map +1 -0
  692. package/dist/ssr/__tests__/ssr-handler.test.d.ts +2 -0
  693. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +1 -0
  694. package/dist/ssr/__tests__/ssr-handler.test.js +132 -0
  695. package/dist/ssr/__tests__/ssr-handler.test.js.map +1 -0
  696. package/dist/ssr/index.d.ts +98 -0
  697. package/dist/ssr/index.d.ts.map +1 -0
  698. package/dist/ssr/index.js +158 -0
  699. package/dist/ssr/index.js.map +1 -0
  700. package/dist/static-handler.d.ts +50 -0
  701. package/dist/static-handler.d.ts.map +1 -0
  702. package/dist/static-handler.gen.d.ts +5 -0
  703. package/dist/static-handler.gen.d.ts.map +1 -0
  704. package/dist/static-handler.gen.js +5 -0
  705. package/dist/static-handler.gen.js.map +1 -0
  706. package/dist/static-handler.js +29 -0
  707. package/dist/static-handler.js.map +1 -0
  708. package/dist/testing/vitest.js +82 -0
  709. package/dist/theme/ThemeProvider.d.ts +20 -0
  710. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  711. package/dist/theme/ThemeProvider.js +240 -0
  712. package/dist/theme/ThemeProvider.js.map +1 -0
  713. package/dist/theme/ThemeScript.d.ts +48 -0
  714. package/dist/theme/ThemeScript.d.ts.map +1 -0
  715. package/dist/theme/ThemeScript.js +13 -0
  716. package/dist/theme/ThemeScript.js.map +1 -0
  717. package/dist/theme/__tests__/theme.test.d.ts +2 -0
  718. package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
  719. package/dist/theme/__tests__/theme.test.js +103 -0
  720. package/dist/theme/__tests__/theme.test.js.map +1 -0
  721. package/dist/theme/constants.d.ts +29 -0
  722. package/dist/theme/constants.d.ts.map +1 -0
  723. package/dist/theme/constants.js +48 -0
  724. package/dist/theme/constants.js.map +1 -0
  725. package/dist/theme/index.d.ts +31 -0
  726. package/dist/theme/index.d.ts.map +1 -0
  727. package/dist/theme/index.js +36 -0
  728. package/dist/theme/index.js.map +1 -0
  729. package/dist/theme/theme-context.d.ts +40 -0
  730. package/dist/theme/theme-context.d.ts.map +1 -0
  731. package/dist/theme/theme-context.js +60 -0
  732. package/dist/theme/theme-context.js.map +1 -0
  733. package/dist/theme/theme-script.d.ts +27 -0
  734. package/dist/theme/theme-script.d.ts.map +1 -0
  735. package/dist/theme/theme-script.js +147 -0
  736. package/dist/theme/theme-script.js.map +1 -0
  737. package/dist/theme/types.d.ts +163 -0
  738. package/dist/theme/types.d.ts.map +1 -0
  739. package/dist/theme/types.js +11 -0
  740. package/dist/theme/types.js.map +1 -0
  741. package/dist/theme/use-theme.d.ts +12 -0
  742. package/dist/theme/use-theme.d.ts.map +1 -0
  743. package/dist/theme/use-theme.js +40 -0
  744. package/dist/theme/use-theme.js.map +1 -0
  745. package/dist/types.d.ts +1479 -0
  746. package/dist/types.d.ts.map +1 -0
  747. package/dist/types.js +10 -0
  748. package/dist/types.js.map +1 -0
  749. package/dist/urls.d.ts +441 -0
  750. package/dist/urls.d.ts.map +1 -0
  751. package/dist/urls.gen.d.ts +8 -0
  752. package/dist/urls.gen.d.ts.map +1 -0
  753. package/dist/urls.gen.js +8 -0
  754. package/dist/urls.gen.js.map +1 -0
  755. package/dist/urls.js +443 -0
  756. package/dist/urls.js.map +1 -0
  757. package/dist/use-loader.d.ts +127 -0
  758. package/dist/use-loader.d.ts.map +1 -0
  759. package/dist/use-loader.js +237 -0
  760. package/dist/use-loader.js.map +1 -0
  761. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +2 -0
  762. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +1 -0
  763. package/dist/vite/__tests__/ast-handler-extract.test.js +294 -0
  764. package/dist/vite/__tests__/ast-handler-extract.test.js.map +1 -0
  765. package/dist/vite/__tests__/expose-id-utils.test.d.ts +2 -0
  766. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +1 -0
  767. package/dist/vite/__tests__/expose-id-utils.test.js +224 -0
  768. package/dist/vite/__tests__/expose-id-utils.test.js.map +1 -0
  769. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +2 -0
  770. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +1 -0
  771. package/dist/vite/__tests__/expose-internal-ids.test.js +647 -0
  772. package/dist/vite/__tests__/expose-internal-ids.test.js.map +1 -0
  773. package/dist/vite/__tests__/expose-router-id.test.d.ts +2 -0
  774. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +1 -0
  775. package/dist/vite/__tests__/expose-router-id.test.js +39 -0
  776. package/dist/vite/__tests__/expose-router-id.test.js.map +1 -0
  777. package/dist/vite/ast-handler-extract.d.ts +49 -0
  778. package/dist/vite/ast-handler-extract.d.ts.map +1 -0
  779. package/dist/vite/ast-handler-extract.js +249 -0
  780. package/dist/vite/ast-handler-extract.js.map +1 -0
  781. package/dist/vite/expose-action-id.d.ts +19 -0
  782. package/dist/vite/expose-action-id.d.ts.map +1 -0
  783. package/dist/vite/expose-action-id.js +250 -0
  784. package/dist/vite/expose-action-id.js.map +1 -0
  785. package/dist/vite/expose-id-utils.d.ts +69 -0
  786. package/dist/vite/expose-id-utils.d.ts.map +1 -0
  787. package/dist/vite/expose-id-utils.js +289 -0
  788. package/dist/vite/expose-id-utils.js.map +1 -0
  789. package/dist/vite/expose-internal-ids.d.ts +22 -0
  790. package/dist/vite/expose-internal-ids.d.ts.map +1 -0
  791. package/dist/vite/expose-internal-ids.js +886 -0
  792. package/dist/vite/expose-internal-ids.js.map +1 -0
  793. package/dist/vite/index.d.ts +149 -0
  794. package/dist/vite/index.d.ts.map +1 -0
  795. package/dist/vite/index.js +8 -10
  796. package/dist/vite/index.js.bak +5448 -0
  797. package/dist/vite/index.js.map +1 -0
  798. package/dist/vite/index.named-routes.gen.ts +103 -0
  799. package/dist/vite/package-resolution.d.ts +43 -0
  800. package/dist/vite/package-resolution.d.ts.map +1 -0
  801. package/dist/vite/package-resolution.js +112 -0
  802. package/dist/vite/package-resolution.js.map +1 -0
  803. package/dist/vite/virtual-entries.d.ts +25 -0
  804. package/dist/vite/virtual-entries.d.ts.map +1 -0
  805. package/dist/vite/virtual-entries.js +110 -0
  806. package/dist/vite/virtual-entries.js.map +1 -0
  807. package/package.json +1 -1
  808. package/skills/css/SKILL.md +76 -0
  809. package/skills/host-router/SKILL.md +21 -0
  810. package/skills/rango/SKILL.md +1 -0
  811. package/skills/tailwind/SKILL.md +27 -3
  812. package/src/browser/app-shell.ts +14 -27
  813. package/src/browser/navigation-bridge.ts +2 -51
  814. package/src/browser/navigation-client.ts +14 -0
  815. package/src/browser/navigation-store.ts +1 -25
  816. package/src/browser/partial-update.ts +19 -32
  817. package/src/browser/prefetch/cache.ts +39 -21
  818. package/src/browser/prefetch/fetch.ts +10 -1
  819. package/src/browser/rango-state.ts +6 -22
  820. package/src/browser/react/NavigationProvider.tsx +12 -9
  821. package/src/browser/react/use-router.ts +4 -3
  822. package/src/browser/response-adapter.ts +20 -0
  823. package/src/browser/rsc-router.tsx +15 -13
  824. package/src/browser/server-action-bridge.ts +21 -0
  825. package/src/browser/types.ts +4 -15
  826. package/src/cache/cache-runtime.ts +17 -5
  827. package/src/cache/cache-scope.ts +23 -7
  828. package/src/cache/cf/cf-cache-store.ts +4 -4
  829. package/src/cache/handle-snapshot.ts +103 -0
  830. package/src/cache/memory-segment-store.ts +3 -2
  831. package/src/cache/types.ts +10 -6
  832. package/src/prerender/store.ts +9 -7
  833. package/src/router/match-middleware/cache-lookup.ts +13 -4
  834. package/src/router/prerender-match.ts +39 -14
  835. package/src/router/request-classification.ts +36 -9
  836. package/src/router/router-interfaces.ts +6 -7
  837. package/src/router/segment-resolution/static-store.ts +19 -5
  838. package/src/rsc/handler.ts +30 -8
  839. package/src/rsc/origin-guard.ts +2 -0
  840. package/src/rsc/response-route-handler.ts +20 -1
  841. package/src/rsc/rsc-rendering.ts +10 -0
  842. package/src/rsc/server-action.ts +16 -2
  843. package/src/urls/path-helper-types.ts +6 -0
  844. package/src/vite/discovery/prerender-collection.ts +5 -5
  845. package/src/vite/router-discovery.ts +3 -4
@@ -24,6 +24,26 @@ export function emptyResponse(): Response {
24
24
  return new Response(null, { status: 200 });
25
25
  }
26
26
 
27
+ /**
28
+ * Whether an RSC content response carries a server-stamped router identity
29
+ * (`X-RSC-Router-Id`) that DIFFERS from the id this client expects (its own
30
+ * routerId, also sent as `_rsc_rid`). Pre-decode integrity check: lets a caller
31
+ * refuse a foreign app's payload before `createFromFetch` imports its chunks.
32
+ *
33
+ * True ONLY when both the header and the expected id are present and differ. An
34
+ * absent header (control-only reload/redirect responses are not stamped) or an
35
+ * absent expected id (e.g. before the client is seeded) is a pass-through —
36
+ * never a false reject.
37
+ */
38
+ export function isForeignRouterId(
39
+ response: Response,
40
+ expectedId: string | undefined,
41
+ ): boolean {
42
+ const got = response.headers.get("X-RSC-Router-Id");
43
+ if (!got || !expectedId) return false;
44
+ return got !== expectedId;
45
+ }
46
+
27
47
  /**
28
48
  * Handle the X-RSC-Reload control header (server requests a full page reload on
29
49
  * a version mismatch). Returns a short-circuit response when the header is
@@ -117,10 +117,12 @@ export interface BrowserAppContext {
117
117
  /** App version for prefetch version mismatch detection */
118
118
  version?: string;
119
119
  /**
120
- * Live app-shell ref. Cross-app navigations replace its contents so the
121
- * NavigationProvider and renderSegments pick up the target app's
122
- * rootLayout, basename, and version without consumer rerenders. Theme,
123
- * warmup, and prefetch TTL are document-lifetime (see AppShell).
120
+ * App-shell ref, read through on each render so renderSegments and the
121
+ * NavigationProvider see rootLayout/basename/version without closing over a
122
+ * stale snapshot. Set once from the initial payload and not swapped within a
123
+ * session: a cross-app navigation is a full document load (X-RSC-Reload), so
124
+ * the target app establishes its own shell on load. Theme, warmup, and
125
+ * prefetch TTL are document-lifetime too (see AppShell).
124
126
  */
125
127
  appShellRef?: import("./app-shell.js").AppShellRef;
126
128
  }
@@ -213,11 +215,11 @@ export async function initBrowserApp(
213
215
  // Create composable utilities
214
216
  const client = createNavigationClient(deps);
215
217
 
216
- // Capture the per-router app-shell so cross-app navigations can replace
217
- // it atomically. rootLayout, basename, and version live here and are
218
- // read through the ref at call time rather than closed over. Theme,
219
- // warmup, and prefetch TTL are deliberately excluded they are
220
- // document-lifetime and stay stable across smooth cross-app transitions.
218
+ // Capture the per-router app-shell. rootLayout, basename, and version live
219
+ // here and are read through the ref at call time rather than closed over.
220
+ // It is set once from the initial payload and not swapped within a session:
221
+ // a cross-app navigation is a full document load (X-RSC-Reload), so the
222
+ // target app establishes its own shell on load.
221
223
  const version = initialPayload.metadata?.version;
222
224
  const appShellRef = createAppShellRef({
223
225
  routerId: initialPayload.metadata?.routerId,
@@ -243,9 +245,10 @@ export async function initBrowserApp(
243
245
  // client chunks (same createFromFetch the navigation client uses).
244
246
  setPrefetchDecoder((response) => deps.createFromFetch<RscPayload>(response));
245
247
 
246
- // Create a bound renderSegments that reads rootLayout through the shell
247
- // ref. On app switch the ref is updated before the tree re-renders, so
248
- // the new app's Document (rootLayout) replaces the previous one.
248
+ // Create a bound renderSegments that reads rootLayout through the shell ref.
249
+ // The shell is set once at init and not swapped within a session (a cross-app
250
+ // navigation is a full document load), so this always renders this app's
251
+ // Document; reading through the ref just avoids closing over a stale value.
249
252
  const renderSegments = (
250
253
  segments: ResolvedSegment[],
251
254
  options?: RenderSegmentsOptions,
@@ -285,7 +288,6 @@ export async function initBrowserApp(
285
288
  onUpdate: (update) => store.emitUpdate(update),
286
289
  renderSegments,
287
290
  version: version,
288
- appShellRef,
289
291
  });
290
292
 
291
293
  // Connect action redirect → navigation bridge (now that both are initialized)
@@ -27,6 +27,7 @@ import {
27
27
  emptyResponse,
28
28
  handleReloadHeader,
29
29
  teeWithCompletion,
30
+ isForeignRouterId,
30
31
  } from "./response-adapter.js";
31
32
  import { mergeLocationState } from "./history-state.js";
32
33
  import { classifyActionOutcome } from "./action-coordinator.js";
@@ -260,6 +261,26 @@ export function createServerActionBridge(
260
261
  return emptyResponse();
261
262
  }
262
263
 
264
+ // Integrity check (pre-decode): a foreign app's action response must
265
+ // not be decoded + applied here. This is the one decode-and-apply path
266
+ // the post-decode partial-update guard does NOT cover (the action
267
+ // bridge has its own createFromFetch -> onUpdate). Ordered after the
268
+ // reload/redirect handlers, which steer control responses first.
269
+ // Reloads via window.location.reload() rather than navigating to a
270
+ // target (as the navigation-client guard does): an action has no
271
+ // navigation target, so reloading the current URL re-syncs the
272
+ // document against the server-applied action effect.
273
+ if (
274
+ !handle.signal.aborted &&
275
+ isForeignRouterId(response, store.getRouterId?.())
276
+ ) {
277
+ log("action router id mismatch, reloading to re-sync");
278
+ handle.complete(undefined);
279
+ resolveStreamComplete();
280
+ window.location.reload();
281
+ return new Promise<Response>(() => {});
282
+ }
283
+
263
284
  // Start streaming immediately when response arrives
264
285
  if (!handle.signal.aborted) {
265
286
  streamingToken = handle.startStreaming();
@@ -32,8 +32,10 @@ export type HandleData = Record<string, Record<string, unknown[]>>;
32
32
  export interface RscMetadata {
33
33
  pathname: string;
34
34
  segments: ResolvedSegment[];
35
- /** Router instance ID. When this changes between navigations, the client
36
- * forces a full tree replacement (app switch via host router). */
35
+ /** Router instance ID the current app's identity. A mismatch with the
36
+ * client's id (sent as _rsc_rid) is detected server-side and answered with
37
+ * X-RSC-Reload (full document load), so the client never swaps apps
38
+ * in-session; within a session this always equals the current app. */
37
39
  routerId?: string;
38
40
  isPartial?: boolean;
39
41
  isError?: boolean;
@@ -433,12 +435,6 @@ export interface NavigationStore {
433
435
  markCacheAsStale(): void;
434
436
  markCacheAsStaleAndBroadcast(): void;
435
437
  clearHistoryCache(): void;
436
- /**
437
- * Clear this tab's nav + prefetch caches without broadcasting or rotating
438
- * shared state. Intended for app-switch transitions that affect only this
439
- * tab's session.
440
- */
441
- clearHistoryCacheLocal(): void;
442
438
  broadcastCacheInvalidation(): void;
443
439
 
444
440
  // Cross-tab refresh callback (set by navigation bridge)
@@ -556,13 +552,6 @@ export interface NavigationBridge {
556
552
  getVersion(): string | undefined;
557
553
  /** Update the RSC version (e.g. after HMR). Clears prefetch cache. */
558
554
  updateVersion(newVersion: string): void;
559
- /**
560
- * Replace the active app-shell snapshot (rootLayout, basename, version)
561
- * atomically. Used on cross-app navigations when the response's routerId
562
- * indicates the user entered a different app. Theme, warmup, and prefetch
563
- * TTL are document-lifetime and not part of the shell.
564
- */
565
- updateAppShell(next: import("./app-shell.js").AppShell): void;
566
555
  }
567
556
 
568
557
  /**
@@ -32,7 +32,11 @@ import {
32
32
  export { isCachedFunction };
33
33
  import { serializeResult, deserializeResult } from "./segment-codec.js";
34
34
  import { createHandleStore } from "../server/handle-store.js";
35
- import { restoreHandles } from "./handle-snapshot.js";
35
+ import {
36
+ restoreHandles,
37
+ encodeHandles,
38
+ decodeHandles,
39
+ } from "./handle-snapshot.js";
36
40
  import { startHandleCapture, type HandleCapture } from "./handle-capture.js";
37
41
  import { sortedSearchString } from "./cache-key-utils.js";
38
42
  import { runBackground } from "./background-task.js";
@@ -170,7 +174,8 @@ export function registerCachedFunction<T extends (...args: any[]) => any>(
170
174
  if (cached.handles && hasTaintedArgs) {
171
175
  const handleStore = requestCtx?._handleStore;
172
176
  if (handleStore) {
173
- restoreHandles(cached.handles, handleStore);
177
+ const r = await decodeHandles(cached.handles);
178
+ if (r) restoreHandles(r, handleStore);
174
179
  }
175
180
  }
176
181
  return result;
@@ -186,7 +191,8 @@ export function registerCachedFunction<T extends (...args: any[]) => any>(
186
191
  if (cached.handles && hasTaintedArgs) {
187
192
  const handleStore = requestCtx?._handleStore;
188
193
  if (handleStore) {
189
- restoreHandles(cached.handles, handleStore);
194
+ const r = await decodeHandles(cached.handles);
195
+ if (r) restoreHandles(r, handleStore);
190
196
  }
191
197
  }
192
198
  // Background revalidation — must capture handles if tainted args present.
@@ -242,8 +248,11 @@ export function registerCachedFunction<T extends (...args: any[]) => any>(
242
248
  bgStopCapture?.();
243
249
  const serialized = await serializeResult(freshResult);
244
250
  if (serialized !== null) {
251
+ const encodedHandles = bgCapture?.data
252
+ ? await encodeHandles(bgCapture.data)
253
+ : undefined;
245
254
  await store.setItem!(cacheKey, serialized, {
246
- handles: bgCapture?.data,
255
+ handles: encodedHandles,
247
256
  ttl: profile.ttl,
248
257
  swr: profile.swr,
249
258
  tags: profile.tags,
@@ -317,8 +326,11 @@ export function registerCachedFunction<T extends (...args: any[]) => any>(
317
326
  try {
318
327
  const serialized = await serializeResult(result);
319
328
  if (serialized !== null) {
329
+ const encodedHandles = capture?.data
330
+ ? await encodeHandles(capture.data)
331
+ : undefined;
320
332
  await store.setItem!(cacheKey, serialized, {
321
- handles: capture?.data,
333
+ handles: encodedHandles,
322
334
  ttl: profile.ttl,
323
335
  swr: profile.swr,
324
336
  tags: profile.tags,
@@ -17,7 +17,12 @@ import {
17
17
  _getRequestContext,
18
18
  } from "../server/request-context.js";
19
19
  import { serializeSegments, deserializeSegments } from "./segment-codec.js";
20
- import { captureHandles, restoreHandles } from "./handle-snapshot.js";
20
+ import {
21
+ captureHandles,
22
+ restoreHandles,
23
+ encodeHandles,
24
+ decodeHandles,
25
+ } from "./handle-snapshot.js";
21
26
  import { sortedSearchString, sortedRouteParams } from "./cache-key-utils.js";
22
27
  import {
23
28
  DEFAULT_ROUTE_TTL,
@@ -251,10 +256,16 @@ export class CacheScope {
251
256
  // Deserialize segments
252
257
  const segments = await deserializeSegments(cached.segments);
253
258
 
254
- // Replay handle data
259
+ // Replay handle data. An empty string means the route pushed no handles —
260
+ // skip the decode entirely (the common case). Otherwise decode the
261
+ // Flight-encoded blob; a decode failure skips handle restore but keeps the
262
+ // valid cached segments.
255
263
  const handleStore = _getRequestContext()?._handleStore;
256
- if (handleStore) {
257
- restoreHandles(cached.handles, handleStore);
264
+ if (handleStore && cached.handles) {
265
+ const handlesRecord = await decodeHandles(cached.handles);
266
+ if (handlesRecord) {
267
+ restoreHandles(handlesRecord, handleStore);
268
+ }
258
269
  }
259
270
 
260
271
  if (INTERNAL_RANGO_DEBUG) {
@@ -367,12 +378,17 @@ export class CacheScope {
367
378
  );
368
379
  }
369
380
 
370
- // Serialize non-loader segments only
371
- const serializedSegments = await serializeSegments(nonLoaderSegments);
381
+ // Serialize segments and Flight-encode handles in parallel. Handles go
382
+ // through the codec (not raw into the entry) so Promise/ReactNode handle
383
+ // values survive a JSON-serializing store — see encodeHandles.
384
+ const [serializedSegments, encodedHandles] = await Promise.all([
385
+ serializeSegments(nonLoaderSegments),
386
+ encodeHandles(handles),
387
+ ]);
372
388
 
373
389
  const data: CachedEntryData = {
374
390
  segments: serializedSegments,
375
- handles,
391
+ handles: encodedHandles,
376
392
  expiresAt: Date.now() + ttl * 1000,
377
393
  };
378
394
 
@@ -116,8 +116,8 @@ interface KVSegmentEnvelope {
116
116
  interface KVItemEnvelope {
117
117
  /** RSC-serialized return value */
118
118
  v: string;
119
- /** Handle data */
120
- h?: Record<string, Record<string, unknown[]>>;
119
+ /** RSC-encoded handle data (see handle-snapshot.ts encodeHandles) */
120
+ h?: string;
121
121
  /** When entry becomes stale (ms epoch) */
122
122
  s: number;
123
123
  /** When entry hard-expires (ms epoch) */
@@ -278,7 +278,7 @@ export class CFCacheStore<TEnv = unknown> implements SegmentCacheStore<TEnv> {
278
278
  * @internal
279
279
  */
280
280
  private deriveBaseUrl(): string {
281
- const fallback = "https://rsc-cache.internal.com/";
281
+ const fallback = "https://rsc-dummy-host-1.com/";
282
282
 
283
283
  const ctx = _getRequestContext();
284
284
  if (!ctx?.request) {
@@ -638,7 +638,7 @@ export class CFCacheStore<TEnv = unknown> implements SegmentCacheStore<TEnv> {
638
638
 
639
639
  const data = (await response.json()) as {
640
640
  value: string;
641
- handles?: Record<string, Record<string, unknown[]>>;
641
+ handles?: string;
642
642
  };
643
643
 
644
644
  if (!isStale || isRevalidating) {
@@ -9,6 +9,109 @@
9
9
  import type { ResolvedSegment } from "../types.js";
10
10
  import type { HandleStore } from "../server/handle-store.js";
11
11
  import type { SegmentHandleData } from "./types.js";
12
+ import { serializeResult, deserializeResult } from "./segment-codec.js";
13
+
14
+ /**
15
+ * Bound on the background cache-write encode of handle data. A pushed handle
16
+ * value can be a Promise (request-context push-a-promise) or a Promise<ReactNode>
17
+ * (Breadcrumbs content), which the Flight encoder awaits while draining. The
18
+ * encode runs in waitUntil/runBackground, so a never-resolving handle value
19
+ * would otherwise pin a background slot indefinitely; on timeout the entry's
20
+ * handles coalesce to empty rather than hanging or poisoning the whole write.
21
+ */
22
+ const HANDLE_ENCODE_TIMEOUT_MS = 5000;
23
+
24
+ type HandleRecord = Record<string, SegmentHandleData>;
25
+
26
+ // captureHandles builds a per-segment map keyed by every cached segment id, even
27
+ // segments that pushed nothing (their entry is an empty object). "No handle data"
28
+ // means no segment has any handle, in which case we skip the Flight encode and
29
+ // store an empty string — so the common handle-free route pays neither an encode
30
+ // on write nor a decode on every cache hit.
31
+ function hasHandleData(handles: HandleRecord): boolean {
32
+ for (const segId in handles) {
33
+ for (const _ in handles[segId]) return true;
34
+ }
35
+ return false;
36
+ }
37
+
38
+ function withTimeout<T>(p: Promise<T>, ms: number, onTimeout: T): Promise<T> {
39
+ let timer: ReturnType<typeof setTimeout>;
40
+ const timeout = new Promise<T>((resolve) => {
41
+ timer = setTimeout(() => resolve(onTimeout), ms);
42
+ });
43
+ return Promise.race([
44
+ p.then(
45
+ (v) => {
46
+ clearTimeout(timer);
47
+ return v;
48
+ },
49
+ (e) => {
50
+ clearTimeout(timer);
51
+ throw e;
52
+ },
53
+ ),
54
+ timeout,
55
+ ]);
56
+ }
57
+
58
+ /**
59
+ * Encode a captured handle map to a string for cache storage.
60
+ *
61
+ * Handle values can be Promises or React elements (e.g. Breadcrumbs `content`).
62
+ * JSON.stringify destroys those (Promise -> {}, ReactNode non-representable), so
63
+ * persisting the raw map silently corrupts non-scalar handle values on stores
64
+ * that serialize to JSON (the Cloudflare cache). Routing the map through the same
65
+ * RSC-Flight codec the segments/value already use awaits Promises and serializes
66
+ * React elements, so the stored field is a lossless, JSON-safe string. The
67
+ * in-memory store keeps the same string by reference, so both backends replay
68
+ * identical decoded values.
69
+ */
70
+ export async function encodeHandles(handles: HandleRecord): Promise<string> {
71
+ // No handle was pushed anywhere — store an empty marker (decoded as "skip").
72
+ if (!hasHandleData(handles)) return "";
73
+ return encodeHandleValue(handles);
74
+ }
75
+
76
+ /**
77
+ * Decode a stored handle string back to a handle map. Returns null on any
78
+ * decode failure (e.g. a cross-version entry read under a pinned static
79
+ * version), so the caller can skip handle restore without discarding the
80
+ * otherwise-valid cached segments alongside it.
81
+ */
82
+ export function decodeHandles(encoded: string): Promise<HandleRecord | null> {
83
+ return decodeHandleValue<HandleRecord>(encoded);
84
+ }
85
+
86
+ /**
87
+ * Encode an arbitrary handle-data value to a Flight string. Used directly by the
88
+ * prerender/static pipeline, whose static path holds a single segment's
89
+ * `SegmentHandleData` (not a segId-keyed map). Bounded by the same timeout as
90
+ * encodeHandles; failure/timeout coalesces to "". The caller owns the empty
91
+ * check (an empty value still encodes to a non-empty Flight string, so skip the
92
+ * call when there is nothing to store).
93
+ */
94
+ export async function encodeHandleValue(value: unknown): Promise<string> {
95
+ const encoded = await withTimeout(
96
+ serializeResult(value),
97
+ HANDLE_ENCODE_TIMEOUT_MS,
98
+ null,
99
+ );
100
+ return encoded ?? "";
101
+ }
102
+
103
+ /**
104
+ * Decode a Flight-encoded handle-data string. Returns null on any decode
105
+ * failure so the caller can skip handle restore without discarding valid
106
+ * cached/prerendered segments.
107
+ */
108
+ export async function decodeHandleValue<T>(encoded: string): Promise<T | null> {
109
+ try {
110
+ return await deserializeResult<T>(encoded);
111
+ } catch {
112
+ return null;
113
+ }
114
+ }
12
115
 
13
116
  /**
14
117
  * Capture handle data for a set of segments from the handle store.
@@ -12,7 +12,6 @@ import type {
12
12
  CacheGetResult,
13
13
  CacheItemResult,
14
14
  CacheItemOptions,
15
- SegmentHandleData,
16
15
  } from "./types.js";
17
16
  import type { RequestContext } from "../server/request-context.js";
18
17
  import {
@@ -56,7 +55,9 @@ interface CachedResponseEntry {
56
55
 
57
56
  interface CachedItemEntry {
58
57
  value: string;
59
- handles?: Record<string, SegmentHandleData>;
58
+ /** RSC-encoded handle data (see handle-snapshot.ts encodeHandles). Stored as
59
+ * the encoded string by reference, identical to the JSON-serializing stores. */
60
+ handles?: string;
60
61
  expiresAt: number;
61
62
  staleAt: number;
62
63
  }
@@ -175,8 +175,10 @@ export interface SegmentCacheStore<TEnv = unknown> {
175
175
  export interface CacheItemResult {
176
176
  /** RSC-serialized return value */
177
177
  value: string;
178
- /** Handle data captured during execution (breadcrumbs, metadata, etc.) */
179
- handles?: Record<string, SegmentHandleData>;
178
+ /** RSC-encoded handle data captured during execution (breadcrumbs, metadata,
179
+ * etc.). Encoded via the Flight codec so Promise/ReactNode handle values
180
+ * survive JSON-serializing stores — see handle-snapshot.ts encodeHandles. */
181
+ handles?: string;
180
182
  /** Whether the entry is stale and should be revalidated */
181
183
  shouldRevalidate: boolean;
182
184
  }
@@ -185,8 +187,8 @@ export interface CacheItemResult {
185
187
  * Options for setItem() for function-level caching ("use cache").
186
188
  */
187
189
  export interface CacheItemOptions {
188
- /** Handle data to store alongside the value */
189
- handles?: Record<string, SegmentHandleData>;
190
+ /** RSC-encoded handle data to store alongside the value (see encodeHandles). */
191
+ handles?: string;
190
192
  /** Time-to-live in seconds */
191
193
  ttl?: number;
192
194
  /** Stale-while-revalidate window in seconds */
@@ -227,8 +229,10 @@ export interface SerializedSegmentData {
227
229
  export interface CachedEntryData {
228
230
  /** Serialized segments for this entry */
229
231
  segments: SerializedSegmentData[];
230
- /** Handle data keyed by segment ID */
231
- handles: Record<string, SegmentHandleData>;
232
+ /** RSC-encoded handle data keyed by segment ID. Encoded via the Flight codec
233
+ * (see handle-snapshot.ts encodeHandles) so Promise/ReactNode handle values
234
+ * round-trip through JSON-serializing stores instead of being flattened. */
235
+ handles: string;
232
236
  /** Expiration timestamp (ms since epoch) */
233
237
  expiresAt: number;
234
238
  }
@@ -8,14 +8,14 @@
8
8
  * that anchors import() resolution relative to the manifest file.
9
9
  */
10
10
 
11
- import type {
12
- SerializedSegmentData,
13
- SegmentHandleData,
14
- } from "../cache/types.js";
11
+ import type { SerializedSegmentData } from "../cache/types.js";
15
12
 
16
13
  export interface PrerenderEntry {
17
14
  segments: SerializedSegmentData[];
18
- handles: Record<string, SegmentHandleData>;
15
+ /** RSC-encoded handle map (see handle-snapshot.ts encodeHandles); "" when the
16
+ * route pushed no handles. Encoded so Promise/ReactNode handle values survive
17
+ * the JSON-serialized build artifact / dev wire, identical to the runtime cache. */
18
+ handles: string;
19
19
  }
20
20
 
21
21
  export interface PrerenderStore {
@@ -28,7 +28,9 @@ export interface PrerenderStore {
28
28
 
29
29
  export interface StaticEntry {
30
30
  encoded: string;
31
- handles: Record<string, unknown[]>;
31
+ /** RSC-encoded single-segment handle data (see encodeHandleValue); "" when the
32
+ * Static handler pushed no handles. */
33
+ handles: string;
32
34
  }
33
35
 
34
36
  export interface StaticStore {
@@ -174,7 +176,7 @@ export function createStaticStore(): StaticStore | null {
174
176
  const val = mod.default;
175
177
  // Normalize: string-only (no handles) or { encoded, handles }
176
178
  if (typeof val === "string") {
177
- return { encoded: val, handles: {} } as StaticEntry;
179
+ return { encoded: val, handles: "" } as StaticEntry;
178
180
  }
179
181
  return val as StaticEntry;
180
182
  })
@@ -114,6 +114,9 @@ let _deserializeSegments:
114
114
  let _restoreHandles:
115
115
  | typeof import("../../cache/handle-snapshot.js").restoreHandles
116
116
  | undefined;
117
+ let _decodeHandles:
118
+ | typeof import("../../cache/handle-snapshot.js").decodeHandles
119
+ | undefined;
117
120
  let _hashParams:
118
121
  | typeof import("../../prerender/param-hash.js").hashParams
119
122
  | undefined;
@@ -148,6 +151,7 @@ async function ensurePrerenderDeps() {
148
151
  ]);
149
152
  _deserializeSegments = codec.deserializeSegments;
150
153
  _restoreHandles = snapshot.restoreHandles;
154
+ _decodeHandles = snapshot.decodeHandles;
151
155
  _hashParams = paramHash.hashParams;
152
156
  _lazyGetRequestContext = reqCtx.getRequestContext;
153
157
  if (prerenderStoreInstance === undefined) {
@@ -174,6 +178,7 @@ async function* yieldFromStore<TEnv>(
174
178
  if (
175
179
  !_deserializeSegments ||
176
180
  !_restoreHandles ||
181
+ !_decodeHandles ||
177
182
  !_hashParams ||
178
183
  !_lazyGetRequestContext
179
184
  ) {
@@ -182,11 +187,15 @@ async function* yieldFromStore<TEnv>(
182
187
 
183
188
  const segments = await _deserializeSegments(entry.segments);
184
189
 
185
- // Replay handle data (same as runtime cache hit path).
186
- // Prefer the eagerly-captured handleStoreRef to avoid ALS disruption in workerd.
190
+ // Replay handle data (same as runtime cache hit path). entry.handles is a
191
+ // Flight-encoded string ("" when none) decode before restore so
192
+ // Promise/ReactNode handle values are revived, not the corrupted JSON form.
187
193
  const handleStore = handleStoreRef ?? _lazyGetRequestContext()?._handleStore;
188
- if (handleStore) {
189
- _restoreHandles(entry.handles, handleStore);
194
+ if (handleStore && entry.handles) {
195
+ const handlesRecord = await _decodeHandles(entry.handles);
196
+ if (handlesRecord) {
197
+ _restoreHandles(handlesRecord, handleStore);
198
+ }
190
199
  }
191
200
 
192
201
  state.cacheHit = true;