@rangojs/router 0.0.0-experimental.0b82333f

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 (1108) hide show
  1. package/AGENTS.md +9 -0
  2. package/README.md +899 -0
  3. package/dist/__internal.d.ts +83 -0
  4. package/dist/__internal.d.ts.map +1 -0
  5. package/dist/__internal.js +19 -0
  6. package/dist/__internal.js.map +1 -0
  7. package/dist/__mocks__/version.d.ts +7 -0
  8. package/dist/__mocks__/version.d.ts.map +1 -0
  9. package/dist/__mocks__/version.js +7 -0
  10. package/dist/__mocks__/version.js.map +1 -0
  11. package/dist/__tests__/client-href.test.d.ts +2 -0
  12. package/dist/__tests__/client-href.test.d.ts.map +1 -0
  13. package/dist/__tests__/client-href.test.js +74 -0
  14. package/dist/__tests__/client-href.test.js.map +1 -0
  15. package/dist/__tests__/component-utils.test.d.ts +2 -0
  16. package/dist/__tests__/component-utils.test.d.ts.map +1 -0
  17. package/dist/__tests__/component-utils.test.js +51 -0
  18. package/dist/__tests__/component-utils.test.js.map +1 -0
  19. package/dist/__tests__/event-controller.test.d.ts +2 -0
  20. package/dist/__tests__/event-controller.test.d.ts.map +1 -0
  21. package/dist/__tests__/event-controller.test.js +538 -0
  22. package/dist/__tests__/event-controller.test.js.map +1 -0
  23. package/dist/__tests__/helpers/route-tree.d.ts +118 -0
  24. package/dist/__tests__/helpers/route-tree.d.ts.map +1 -0
  25. package/dist/__tests__/helpers/route-tree.js +374 -0
  26. package/dist/__tests__/helpers/route-tree.js.map +1 -0
  27. package/dist/__tests__/match-result.test.d.ts +2 -0
  28. package/dist/__tests__/match-result.test.d.ts.map +1 -0
  29. package/dist/__tests__/match-result.test.js +154 -0
  30. package/dist/__tests__/match-result.test.js.map +1 -0
  31. package/dist/__tests__/navigation-store.test.d.ts +2 -0
  32. package/dist/__tests__/navigation-store.test.d.ts.map +1 -0
  33. package/dist/__tests__/navigation-store.test.js +440 -0
  34. package/dist/__tests__/navigation-store.test.js.map +1 -0
  35. package/dist/__tests__/partial-update.test.d.ts +2 -0
  36. package/dist/__tests__/partial-update.test.d.ts.map +1 -0
  37. package/dist/__tests__/partial-update.test.js +1009 -0
  38. package/dist/__tests__/partial-update.test.js.map +1 -0
  39. package/dist/__tests__/reverse-types.test.d.ts +8 -0
  40. package/dist/__tests__/reverse-types.test.d.ts.map +1 -0
  41. package/dist/__tests__/reverse-types.test.js +656 -0
  42. package/dist/__tests__/reverse-types.test.js.map +1 -0
  43. package/dist/__tests__/route-definition.test.d.ts +2 -0
  44. package/dist/__tests__/route-definition.test.d.ts.map +1 -0
  45. package/dist/__tests__/route-definition.test.js +55 -0
  46. package/dist/__tests__/route-definition.test.js.map +1 -0
  47. package/dist/__tests__/router-helpers.test.d.ts +2 -0
  48. package/dist/__tests__/router-helpers.test.d.ts.map +1 -0
  49. package/dist/__tests__/router-helpers.test.js +377 -0
  50. package/dist/__tests__/router-helpers.test.js.map +1 -0
  51. package/dist/__tests__/router-integration-2.test.d.ts +2 -0
  52. package/dist/__tests__/router-integration-2.test.d.ts.map +1 -0
  53. package/dist/__tests__/router-integration-2.test.js +426 -0
  54. package/dist/__tests__/router-integration-2.test.js.map +1 -0
  55. package/dist/__tests__/router-integration.test.d.ts +2 -0
  56. package/dist/__tests__/router-integration.test.d.ts.map +1 -0
  57. package/dist/__tests__/router-integration.test.js +1051 -0
  58. package/dist/__tests__/router-integration.test.js.map +1 -0
  59. package/dist/__tests__/search-params.test.d.ts +5 -0
  60. package/dist/__tests__/search-params.test.d.ts.map +1 -0
  61. package/dist/__tests__/search-params.test.js +306 -0
  62. package/dist/__tests__/search-params.test.js.map +1 -0
  63. package/dist/__tests__/segment-system.test.d.ts +2 -0
  64. package/dist/__tests__/segment-system.test.d.ts.map +1 -0
  65. package/dist/__tests__/segment-system.test.js +627 -0
  66. package/dist/__tests__/segment-system.test.js.map +1 -0
  67. package/dist/__tests__/static-handler-types.test.d.ts +8 -0
  68. package/dist/__tests__/static-handler-types.test.d.ts.map +1 -0
  69. package/dist/__tests__/static-handler-types.test.js +63 -0
  70. package/dist/__tests__/static-handler-types.test.js.map +1 -0
  71. package/dist/__tests__/urls.test.d.ts +2 -0
  72. package/dist/__tests__/urls.test.d.ts.map +1 -0
  73. package/dist/__tests__/urls.test.js +421 -0
  74. package/dist/__tests__/urls.test.js.map +1 -0
  75. package/dist/__tests__/use-mount.test.d.ts +2 -0
  76. package/dist/__tests__/use-mount.test.d.ts.map +1 -0
  77. package/dist/__tests__/use-mount.test.js +35 -0
  78. package/dist/__tests__/use-mount.test.js.map +1 -0
  79. package/dist/bin/rango.d.ts +2 -0
  80. package/dist/bin/rango.d.ts.map +1 -0
  81. package/dist/bin/rango.js +1601 -0
  82. package/dist/bin/rango.js.map +1 -0
  83. package/dist/browser/event-controller.d.ts +191 -0
  84. package/dist/browser/event-controller.d.ts.map +1 -0
  85. package/dist/browser/event-controller.js +559 -0
  86. package/dist/browser/event-controller.js.map +1 -0
  87. package/dist/browser/index.d.ts +2 -0
  88. package/dist/browser/index.d.ts.map +1 -0
  89. package/dist/browser/index.js +14 -0
  90. package/dist/browser/index.js.map +1 -0
  91. package/dist/browser/link-interceptor.d.ts +38 -0
  92. package/dist/browser/link-interceptor.d.ts.map +1 -0
  93. package/dist/browser/link-interceptor.js +99 -0
  94. package/dist/browser/link-interceptor.js.map +1 -0
  95. package/dist/browser/logging.d.ts +10 -0
  96. package/dist/browser/logging.d.ts.map +1 -0
  97. package/dist/browser/logging.js +29 -0
  98. package/dist/browser/logging.js.map +1 -0
  99. package/dist/browser/lru-cache.d.ts +17 -0
  100. package/dist/browser/lru-cache.d.ts.map +1 -0
  101. package/dist/browser/lru-cache.js +50 -0
  102. package/dist/browser/lru-cache.js.map +1 -0
  103. package/dist/browser/merge-segment-loaders.d.ts +39 -0
  104. package/dist/browser/merge-segment-loaders.d.ts.map +1 -0
  105. package/dist/browser/merge-segment-loaders.js +102 -0
  106. package/dist/browser/merge-segment-loaders.js.map +1 -0
  107. package/dist/browser/navigation-bridge.d.ts +102 -0
  108. package/dist/browser/navigation-bridge.d.ts.map +1 -0
  109. package/dist/browser/navigation-bridge.js +708 -0
  110. package/dist/browser/navigation-bridge.js.map +1 -0
  111. package/dist/browser/navigation-client.d.ts +25 -0
  112. package/dist/browser/navigation-client.d.ts.map +1 -0
  113. package/dist/browser/navigation-client.js +157 -0
  114. package/dist/browser/navigation-client.js.map +1 -0
  115. package/dist/browser/navigation-store.d.ts +101 -0
  116. package/dist/browser/navigation-store.d.ts.map +1 -0
  117. package/dist/browser/navigation-store.js +625 -0
  118. package/dist/browser/navigation-store.js.map +1 -0
  119. package/dist/browser/partial-update.d.ts +75 -0
  120. package/dist/browser/partial-update.d.ts.map +1 -0
  121. package/dist/browser/partial-update.js +426 -0
  122. package/dist/browser/partial-update.js.map +1 -0
  123. package/dist/browser/react/Link.d.ts +86 -0
  124. package/dist/browser/react/Link.d.ts.map +1 -0
  125. package/dist/browser/react/Link.js +128 -0
  126. package/dist/browser/react/Link.js.map +1 -0
  127. package/dist/browser/react/NavigationProvider.d.ts +63 -0
  128. package/dist/browser/react/NavigationProvider.d.ts.map +1 -0
  129. package/dist/browser/react/NavigationProvider.js +216 -0
  130. package/dist/browser/react/NavigationProvider.js.map +1 -0
  131. package/dist/browser/react/ScrollRestoration.d.ts +75 -0
  132. package/dist/browser/react/ScrollRestoration.d.ts.map +1 -0
  133. package/dist/browser/react/ScrollRestoration.js +57 -0
  134. package/dist/browser/react/ScrollRestoration.js.map +1 -0
  135. package/dist/browser/react/context.d.ts +46 -0
  136. package/dist/browser/react/context.d.ts.map +1 -0
  137. package/dist/browser/react/context.js +10 -0
  138. package/dist/browser/react/context.js.map +1 -0
  139. package/dist/browser/react/index.d.ts +11 -0
  140. package/dist/browser/react/index.d.ts.map +1 -0
  141. package/dist/browser/react/index.js +22 -0
  142. package/dist/browser/react/index.js.map +1 -0
  143. package/dist/browser/react/location-state-shared.d.ts +63 -0
  144. package/dist/browser/react/location-state-shared.d.ts.map +1 -0
  145. package/dist/browser/react/location-state-shared.js +81 -0
  146. package/dist/browser/react/location-state-shared.js.map +1 -0
  147. package/dist/browser/react/location-state.d.ts +23 -0
  148. package/dist/browser/react/location-state.d.ts.map +1 -0
  149. package/dist/browser/react/location-state.js +29 -0
  150. package/dist/browser/react/location-state.js.map +1 -0
  151. package/dist/browser/react/mount-context.d.ts +24 -0
  152. package/dist/browser/react/mount-context.d.ts.map +1 -0
  153. package/dist/browser/react/mount-context.js +24 -0
  154. package/dist/browser/react/mount-context.js.map +1 -0
  155. package/dist/browser/react/use-action.d.ts +64 -0
  156. package/dist/browser/react/use-action.d.ts.map +1 -0
  157. package/dist/browser/react/use-action.js +134 -0
  158. package/dist/browser/react/use-action.js.map +1 -0
  159. package/dist/browser/react/use-client-cache.d.ts +41 -0
  160. package/dist/browser/react/use-client-cache.d.ts.map +1 -0
  161. package/dist/browser/react/use-client-cache.js +39 -0
  162. package/dist/browser/react/use-client-cache.js.map +1 -0
  163. package/dist/browser/react/use-handle.d.ts +31 -0
  164. package/dist/browser/react/use-handle.d.ts.map +1 -0
  165. package/dist/browser/react/use-handle.js +144 -0
  166. package/dist/browser/react/use-handle.js.map +1 -0
  167. package/dist/browser/react/use-href.d.ts +33 -0
  168. package/dist/browser/react/use-href.d.ts.map +1 -0
  169. package/dist/browser/react/use-href.js +39 -0
  170. package/dist/browser/react/use-href.js.map +1 -0
  171. package/dist/browser/react/use-link-status.d.ts +37 -0
  172. package/dist/browser/react/use-link-status.d.ts.map +1 -0
  173. package/dist/browser/react/use-link-status.js +99 -0
  174. package/dist/browser/react/use-link-status.js.map +1 -0
  175. package/dist/browser/react/use-mount.d.ts +25 -0
  176. package/dist/browser/react/use-mount.d.ts.map +1 -0
  177. package/dist/browser/react/use-mount.js +30 -0
  178. package/dist/browser/react/use-mount.js.map +1 -0
  179. package/dist/browser/react/use-navigation.d.ts +27 -0
  180. package/dist/browser/react/use-navigation.d.ts.map +1 -0
  181. package/dist/browser/react/use-navigation.js +87 -0
  182. package/dist/browser/react/use-navigation.js.map +1 -0
  183. package/dist/browser/react/use-segments.d.ts +38 -0
  184. package/dist/browser/react/use-segments.d.ts.map +1 -0
  185. package/dist/browser/react/use-segments.js +130 -0
  186. package/dist/browser/react/use-segments.js.map +1 -0
  187. package/dist/browser/request-controller.d.ts +26 -0
  188. package/dist/browser/request-controller.d.ts.map +1 -0
  189. package/dist/browser/request-controller.js +147 -0
  190. package/dist/browser/request-controller.js.map +1 -0
  191. package/dist/browser/rsc-router.d.ts +129 -0
  192. package/dist/browser/rsc-router.d.ts.map +1 -0
  193. package/dist/browser/rsc-router.js +195 -0
  194. package/dist/browser/rsc-router.js.map +1 -0
  195. package/dist/browser/scroll-restoration.d.ts +93 -0
  196. package/dist/browser/scroll-restoration.d.ts.map +1 -0
  197. package/dist/browser/scroll-restoration.js +321 -0
  198. package/dist/browser/scroll-restoration.js.map +1 -0
  199. package/dist/browser/segment-structure-assert.d.ts +17 -0
  200. package/dist/browser/segment-structure-assert.d.ts.map +1 -0
  201. package/dist/browser/segment-structure-assert.js +59 -0
  202. package/dist/browser/segment-structure-assert.js.map +1 -0
  203. package/dist/browser/server-action-bridge.d.ts +26 -0
  204. package/dist/browser/server-action-bridge.d.ts.map +1 -0
  205. package/dist/browser/server-action-bridge.js +668 -0
  206. package/dist/browser/server-action-bridge.js.map +1 -0
  207. package/dist/browser/shallow.d.ts +12 -0
  208. package/dist/browser/shallow.d.ts.map +1 -0
  209. package/dist/browser/shallow.js +34 -0
  210. package/dist/browser/shallow.js.map +1 -0
  211. package/dist/browser/types.d.ts +369 -0
  212. package/dist/browser/types.d.ts.map +1 -0
  213. package/dist/browser/types.js +2 -0
  214. package/dist/browser/types.js.map +1 -0
  215. package/dist/build/__tests__/generate-cli.test.d.ts +2 -0
  216. package/dist/build/__tests__/generate-cli.test.d.ts.map +1 -0
  217. package/dist/build/__tests__/generate-cli.test.js +237 -0
  218. package/dist/build/__tests__/generate-cli.test.js.map +1 -0
  219. package/dist/build/__tests__/generate-manifest.test.d.ts +2 -0
  220. package/dist/build/__tests__/generate-manifest.test.d.ts.map +1 -0
  221. package/dist/build/__tests__/generate-manifest.test.js +119 -0
  222. package/dist/build/__tests__/generate-manifest.test.js.map +1 -0
  223. package/dist/build/__tests__/generate-route-types.test.d.ts +2 -0
  224. package/dist/build/__tests__/generate-route-types.test.d.ts.map +1 -0
  225. package/dist/build/__tests__/generate-route-types.test.js +620 -0
  226. package/dist/build/__tests__/generate-route-types.test.js.map +1 -0
  227. package/dist/build/__tests__/per-router-manifest.test.d.ts +2 -0
  228. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +1 -0
  229. package/dist/build/__tests__/per-router-manifest.test.js +308 -0
  230. package/dist/build/__tests__/per-router-manifest.test.js.map +1 -0
  231. package/dist/build/generate-manifest.d.ts +81 -0
  232. package/dist/build/generate-manifest.d.ts.map +1 -0
  233. package/dist/build/generate-manifest.js +276 -0
  234. package/dist/build/generate-manifest.js.map +1 -0
  235. package/dist/build/generate-route-types.d.ts +115 -0
  236. package/dist/build/generate-route-types.d.ts.map +1 -0
  237. package/dist/build/generate-route-types.js +740 -0
  238. package/dist/build/generate-route-types.js.map +1 -0
  239. package/dist/build/index.d.ts +21 -0
  240. package/dist/build/index.d.ts.map +1 -0
  241. package/dist/build/index.js +21 -0
  242. package/dist/build/index.js.map +1 -0
  243. package/dist/build/route-trie.d.ts +71 -0
  244. package/dist/build/route-trie.d.ts.map +1 -0
  245. package/dist/build/route-trie.js +175 -0
  246. package/dist/build/route-trie.js.map +1 -0
  247. package/dist/cache/__tests__/cache-scope.test.d.ts +2 -0
  248. package/dist/cache/__tests__/cache-scope.test.d.ts.map +1 -0
  249. package/dist/cache/__tests__/cache-scope.test.js +208 -0
  250. package/dist/cache/__tests__/cache-scope.test.js.map +1 -0
  251. package/dist/cache/__tests__/document-cache.test.d.ts +2 -0
  252. package/dist/cache/__tests__/document-cache.test.d.ts.map +1 -0
  253. package/dist/cache/__tests__/document-cache.test.js +345 -0
  254. package/dist/cache/__tests__/document-cache.test.js.map +1 -0
  255. package/dist/cache/__tests__/memory-segment-store.test.d.ts +2 -0
  256. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +1 -0
  257. package/dist/cache/__tests__/memory-segment-store.test.js +425 -0
  258. package/dist/cache/__tests__/memory-segment-store.test.js.map +1 -0
  259. package/dist/cache/__tests__/memory-store.test.d.ts +2 -0
  260. package/dist/cache/__tests__/memory-store.test.d.ts.map +1 -0
  261. package/dist/cache/__tests__/memory-store.test.js +367 -0
  262. package/dist/cache/__tests__/memory-store.test.js.map +1 -0
  263. package/dist/cache/cache-scope.d.ts +102 -0
  264. package/dist/cache/cache-scope.d.ts.map +1 -0
  265. package/dist/cache/cache-scope.js +440 -0
  266. package/dist/cache/cache-scope.js.map +1 -0
  267. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +2 -0
  268. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +1 -0
  269. package/dist/cache/cf/__tests__/cf-cache-store.test.js +330 -0
  270. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +1 -0
  271. package/dist/cache/cf/cf-cache-store.d.ts +165 -0
  272. package/dist/cache/cf/cf-cache-store.d.ts.map +1 -0
  273. package/dist/cache/cf/cf-cache-store.js +242 -0
  274. package/dist/cache/cf/cf-cache-store.js.map +1 -0
  275. package/dist/cache/cf/index.d.ts +14 -0
  276. package/dist/cache/cf/index.d.ts.map +1 -0
  277. package/dist/cache/cf/index.js +17 -0
  278. package/dist/cache/cf/index.js.map +1 -0
  279. package/dist/cache/document-cache.d.ts +64 -0
  280. package/dist/cache/document-cache.d.ts.map +1 -0
  281. package/dist/cache/document-cache.js +228 -0
  282. package/dist/cache/document-cache.js.map +1 -0
  283. package/dist/cache/index.d.ts +19 -0
  284. package/dist/cache/index.d.ts.map +1 -0
  285. package/dist/cache/index.js +21 -0
  286. package/dist/cache/index.js.map +1 -0
  287. package/dist/cache/memory-segment-store.d.ts +110 -0
  288. package/dist/cache/memory-segment-store.d.ts.map +1 -0
  289. package/dist/cache/memory-segment-store.js +117 -0
  290. package/dist/cache/memory-segment-store.js.map +1 -0
  291. package/dist/cache/memory-store.d.ts +41 -0
  292. package/dist/cache/memory-store.d.ts.map +1 -0
  293. package/dist/cache/memory-store.js +191 -0
  294. package/dist/cache/memory-store.js.map +1 -0
  295. package/dist/cache/types.d.ts +317 -0
  296. package/dist/cache/types.d.ts.map +1 -0
  297. package/dist/cache/types.js +12 -0
  298. package/dist/cache/types.js.map +1 -0
  299. package/dist/client.d.ts +248 -0
  300. package/dist/client.d.ts.map +1 -0
  301. package/dist/client.js +367 -0
  302. package/dist/client.js.map +1 -0
  303. package/dist/client.rsc.d.ts +26 -0
  304. package/dist/client.rsc.d.ts.map +1 -0
  305. package/dist/client.rsc.js +46 -0
  306. package/dist/client.rsc.js.map +1 -0
  307. package/dist/component-utils.d.ts +36 -0
  308. package/dist/component-utils.d.ts.map +1 -0
  309. package/dist/component-utils.js +61 -0
  310. package/dist/component-utils.js.map +1 -0
  311. package/dist/components/DefaultDocument.d.ts +13 -0
  312. package/dist/components/DefaultDocument.d.ts.map +1 -0
  313. package/dist/components/DefaultDocument.js +15 -0
  314. package/dist/components/DefaultDocument.js.map +1 -0
  315. package/dist/debug.d.ts +58 -0
  316. package/dist/debug.d.ts.map +1 -0
  317. package/dist/debug.js +157 -0
  318. package/dist/debug.js.map +1 -0
  319. package/dist/default-error-boundary.d.ts +11 -0
  320. package/dist/default-error-boundary.d.ts.map +1 -0
  321. package/dist/default-error-boundary.js +45 -0
  322. package/dist/default-error-boundary.js.map +1 -0
  323. package/dist/deps/browser.d.ts +2 -0
  324. package/dist/deps/browser.d.ts.map +1 -0
  325. package/dist/deps/browser.js +3 -0
  326. package/dist/deps/browser.js.map +1 -0
  327. package/dist/deps/html-stream-client.d.ts +2 -0
  328. package/dist/deps/html-stream-client.d.ts.map +1 -0
  329. package/dist/deps/html-stream-client.js +3 -0
  330. package/dist/deps/html-stream-client.js.map +1 -0
  331. package/dist/deps/html-stream-server.d.ts +2 -0
  332. package/dist/deps/html-stream-server.d.ts.map +1 -0
  333. package/dist/deps/html-stream-server.js +3 -0
  334. package/dist/deps/html-stream-server.js.map +1 -0
  335. package/dist/deps/rsc.d.ts +2 -0
  336. package/dist/deps/rsc.d.ts.map +1 -0
  337. package/dist/deps/rsc.js +4 -0
  338. package/dist/deps/rsc.js.map +1 -0
  339. package/dist/deps/ssr.d.ts +2 -0
  340. package/dist/deps/ssr.d.ts.map +1 -0
  341. package/dist/deps/ssr.js +3 -0
  342. package/dist/deps/ssr.js.map +1 -0
  343. package/dist/errors.d.ts +174 -0
  344. package/dist/errors.d.ts.map +1 -0
  345. package/dist/errors.js +241 -0
  346. package/dist/errors.js.map +1 -0
  347. package/dist/handle.d.ts +78 -0
  348. package/dist/handle.d.ts.map +1 -0
  349. package/dist/handle.js +82 -0
  350. package/dist/handle.js.map +1 -0
  351. package/dist/handles/MetaTags.d.ts +14 -0
  352. package/dist/handles/MetaTags.d.ts.map +1 -0
  353. package/dist/handles/MetaTags.js +136 -0
  354. package/dist/handles/MetaTags.js.map +1 -0
  355. package/dist/handles/index.d.ts +6 -0
  356. package/dist/handles/index.d.ts.map +1 -0
  357. package/dist/handles/index.js +6 -0
  358. package/dist/handles/index.js.map +1 -0
  359. package/dist/handles/meta.d.ts +39 -0
  360. package/dist/handles/meta.d.ts.map +1 -0
  361. package/dist/handles/meta.js +202 -0
  362. package/dist/handles/meta.js.map +1 -0
  363. package/dist/host/__tests__/errors.test.d.ts +2 -0
  364. package/dist/host/__tests__/errors.test.d.ts.map +1 -0
  365. package/dist/host/__tests__/errors.test.js +76 -0
  366. package/dist/host/__tests__/errors.test.js.map +1 -0
  367. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +2 -0
  368. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +1 -0
  369. package/dist/host/__tests__/pattern-comprehensive.test.js +732 -0
  370. package/dist/host/__tests__/pattern-comprehensive.test.js.map +1 -0
  371. package/dist/host/__tests__/pattern-matcher.test.d.ts +2 -0
  372. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +1 -0
  373. package/dist/host/__tests__/pattern-matcher.test.js +251 -0
  374. package/dist/host/__tests__/pattern-matcher.test.js.map +1 -0
  375. package/dist/host/__tests__/router.test.d.ts +2 -0
  376. package/dist/host/__tests__/router.test.d.ts.map +1 -0
  377. package/dist/host/__tests__/router.test.js +241 -0
  378. package/dist/host/__tests__/router.test.js.map +1 -0
  379. package/dist/host/__tests__/testing.test.d.ts +2 -0
  380. package/dist/host/__tests__/testing.test.d.ts.map +1 -0
  381. package/dist/host/__tests__/testing.test.js +64 -0
  382. package/dist/host/__tests__/testing.test.js.map +1 -0
  383. package/dist/host/__tests__/utils.test.d.ts +2 -0
  384. package/dist/host/__tests__/utils.test.d.ts.map +1 -0
  385. package/dist/host/__tests__/utils.test.js +29 -0
  386. package/dist/host/__tests__/utils.test.js.map +1 -0
  387. package/dist/host/cookie-handler.d.ts +34 -0
  388. package/dist/host/cookie-handler.d.ts.map +1 -0
  389. package/dist/host/cookie-handler.js +124 -0
  390. package/dist/host/cookie-handler.js.map +1 -0
  391. package/dist/host/errors.d.ts +56 -0
  392. package/dist/host/errors.d.ts.map +1 -0
  393. package/dist/host/errors.js +79 -0
  394. package/dist/host/errors.js.map +1 -0
  395. package/dist/host/index.d.ts +29 -0
  396. package/dist/host/index.d.ts.map +1 -0
  397. package/dist/host/index.js +32 -0
  398. package/dist/host/index.js.map +1 -0
  399. package/dist/host/pattern-matcher.d.ts +36 -0
  400. package/dist/host/pattern-matcher.d.ts.map +1 -0
  401. package/dist/host/pattern-matcher.js +172 -0
  402. package/dist/host/pattern-matcher.js.map +1 -0
  403. package/dist/host/router.d.ts +26 -0
  404. package/dist/host/router.d.ts.map +1 -0
  405. package/dist/host/router.js +218 -0
  406. package/dist/host/router.js.map +1 -0
  407. package/dist/host/testing.d.ts +36 -0
  408. package/dist/host/testing.d.ts.map +1 -0
  409. package/dist/host/testing.js +55 -0
  410. package/dist/host/testing.js.map +1 -0
  411. package/dist/host/types.d.ts +115 -0
  412. package/dist/host/types.d.ts.map +1 -0
  413. package/dist/host/types.js +7 -0
  414. package/dist/host/types.js.map +1 -0
  415. package/dist/host/utils.d.ts +21 -0
  416. package/dist/host/utils.d.ts.map +1 -0
  417. package/dist/host/utils.js +23 -0
  418. package/dist/host/utils.js.map +1 -0
  419. package/dist/href-client.d.ts +131 -0
  420. package/dist/href-client.d.ts.map +1 -0
  421. package/dist/href-client.js +64 -0
  422. package/dist/href-client.js.map +1 -0
  423. package/dist/href-context.d.ts +29 -0
  424. package/dist/href-context.d.ts.map +1 -0
  425. package/dist/href-context.js +21 -0
  426. package/dist/href-context.js.map +1 -0
  427. package/dist/index.d.ts +73 -0
  428. package/dist/index.d.ts.map +1 -0
  429. package/dist/index.js +91 -0
  430. package/dist/index.js.map +1 -0
  431. package/dist/index.rsc.d.ts +32 -0
  432. package/dist/index.rsc.d.ts.map +1 -0
  433. package/dist/index.rsc.js +40 -0
  434. package/dist/index.rsc.js.map +1 -0
  435. package/dist/internal-debug.d.ts +2 -0
  436. package/dist/internal-debug.d.ts.map +1 -0
  437. package/dist/internal-debug.js +5 -0
  438. package/dist/internal-debug.js.map +1 -0
  439. package/dist/loader.d.ts +14 -0
  440. package/dist/loader.d.ts.map +1 -0
  441. package/dist/loader.js +20 -0
  442. package/dist/loader.js.map +1 -0
  443. package/dist/loader.rsc.d.ts +19 -0
  444. package/dist/loader.rsc.d.ts.map +1 -0
  445. package/dist/loader.rsc.js +99 -0
  446. package/dist/loader.rsc.js.map +1 -0
  447. package/dist/network-error-thrower.d.ts +17 -0
  448. package/dist/network-error-thrower.d.ts.map +1 -0
  449. package/dist/network-error-thrower.js +14 -0
  450. package/dist/network-error-thrower.js.map +1 -0
  451. package/dist/outlet-context.d.ts +13 -0
  452. package/dist/outlet-context.d.ts.map +1 -0
  453. package/dist/outlet-context.js +3 -0
  454. package/dist/outlet-context.js.map +1 -0
  455. package/dist/prerender/__tests__/param-hash.test.d.ts +2 -0
  456. package/dist/prerender/__tests__/param-hash.test.d.ts.map +1 -0
  457. package/dist/prerender/__tests__/param-hash.test.js +148 -0
  458. package/dist/prerender/__tests__/param-hash.test.js.map +1 -0
  459. package/dist/prerender/param-hash.d.ts +16 -0
  460. package/dist/prerender/param-hash.d.ts.map +1 -0
  461. package/dist/prerender/param-hash.js +36 -0
  462. package/dist/prerender/param-hash.js.map +1 -0
  463. package/dist/prerender/store.d.ts +38 -0
  464. package/dist/prerender/store.d.ts.map +1 -0
  465. package/dist/prerender/store.js +61 -0
  466. package/dist/prerender/store.js.map +1 -0
  467. package/dist/prerender.d.ts +66 -0
  468. package/dist/prerender.d.ts.map +1 -0
  469. package/dist/prerender.js +57 -0
  470. package/dist/prerender.js.map +1 -0
  471. package/dist/reverse.d.ts +196 -0
  472. package/dist/reverse.d.ts.map +1 -0
  473. package/dist/reverse.js +78 -0
  474. package/dist/reverse.js.map +1 -0
  475. package/dist/root-error-boundary.d.ts +33 -0
  476. package/dist/root-error-boundary.d.ts.map +1 -0
  477. package/dist/root-error-boundary.js +165 -0
  478. package/dist/root-error-boundary.js.map +1 -0
  479. package/dist/route-content-wrapper.d.ts +46 -0
  480. package/dist/route-content-wrapper.d.ts.map +1 -0
  481. package/dist/route-content-wrapper.js +77 -0
  482. package/dist/route-content-wrapper.js.map +1 -0
  483. package/dist/route-definition.d.ts +421 -0
  484. package/dist/route-definition.d.ts.map +1 -0
  485. package/dist/route-definition.js +868 -0
  486. package/dist/route-definition.js.map +1 -0
  487. package/dist/route-map-builder.d.ts +155 -0
  488. package/dist/route-map-builder.d.ts.map +1 -0
  489. package/dist/route-map-builder.js +237 -0
  490. package/dist/route-map-builder.js.map +1 -0
  491. package/dist/route-types.d.ts +165 -0
  492. package/dist/route-types.d.ts.map +1 -0
  493. package/dist/route-types.js +7 -0
  494. package/dist/route-types.js.map +1 -0
  495. package/dist/router/__tests__/handler-context.test.d.ts +2 -0
  496. package/dist/router/__tests__/handler-context.test.d.ts.map +1 -0
  497. package/dist/router/__tests__/handler-context.test.js +65 -0
  498. package/dist/router/__tests__/handler-context.test.js.map +1 -0
  499. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +2 -0
  500. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +1 -0
  501. package/dist/router/__tests__/loader-cycle-detection.test.js +221 -0
  502. package/dist/router/__tests__/loader-cycle-detection.test.js.map +1 -0
  503. package/dist/router/__tests__/match-context.test.d.ts +2 -0
  504. package/dist/router/__tests__/match-context.test.d.ts.map +1 -0
  505. package/dist/router/__tests__/match-context.test.js +92 -0
  506. package/dist/router/__tests__/match-context.test.js.map +1 -0
  507. package/dist/router/__tests__/match-pipelines.test.d.ts +2 -0
  508. package/dist/router/__tests__/match-pipelines.test.d.ts.map +1 -0
  509. package/dist/router/__tests__/match-pipelines.test.js +417 -0
  510. package/dist/router/__tests__/match-pipelines.test.js.map +1 -0
  511. package/dist/router/__tests__/match-result.test.d.ts +2 -0
  512. package/dist/router/__tests__/match-result.test.d.ts.map +1 -0
  513. package/dist/router/__tests__/match-result.test.js +457 -0
  514. package/dist/router/__tests__/match-result.test.js.map +1 -0
  515. package/dist/router/__tests__/on-error.test.d.ts +2 -0
  516. package/dist/router/__tests__/on-error.test.d.ts.map +1 -0
  517. package/dist/router/__tests__/on-error.test.js +678 -0
  518. package/dist/router/__tests__/on-error.test.js.map +1 -0
  519. package/dist/router/__tests__/pattern-matching.test.d.ts +2 -0
  520. package/dist/router/__tests__/pattern-matching.test.d.ts.map +1 -0
  521. package/dist/router/__tests__/pattern-matching.test.js +629 -0
  522. package/dist/router/__tests__/pattern-matching.test.js.map +1 -0
  523. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +2 -0
  524. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +1 -0
  525. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +155 -0
  526. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +1 -0
  527. package/dist/router/error-handling.d.ts +77 -0
  528. package/dist/router/error-handling.d.ts.map +1 -0
  529. package/dist/router/error-handling.js +202 -0
  530. package/dist/router/error-handling.js.map +1 -0
  531. package/dist/router/handler-context.d.ts +20 -0
  532. package/dist/router/handler-context.d.ts.map +1 -0
  533. package/dist/router/handler-context.js +198 -0
  534. package/dist/router/handler-context.js.map +1 -0
  535. package/dist/router/intercept-resolution.d.ts +66 -0
  536. package/dist/router/intercept-resolution.d.ts.map +1 -0
  537. package/dist/router/intercept-resolution.js +246 -0
  538. package/dist/router/intercept-resolution.js.map +1 -0
  539. package/dist/router/loader-resolution.d.ts +64 -0
  540. package/dist/router/loader-resolution.d.ts.map +1 -0
  541. package/dist/router/loader-resolution.js +284 -0
  542. package/dist/router/loader-resolution.js.map +1 -0
  543. package/dist/router/logging.d.ts +15 -0
  544. package/dist/router/logging.d.ts.map +1 -0
  545. package/dist/router/logging.js +99 -0
  546. package/dist/router/logging.js.map +1 -0
  547. package/dist/router/manifest.d.ts +22 -0
  548. package/dist/router/manifest.d.ts.map +1 -0
  549. package/dist/router/manifest.js +181 -0
  550. package/dist/router/manifest.js.map +1 -0
  551. package/dist/router/match-api.d.ts +35 -0
  552. package/dist/router/match-api.d.ts.map +1 -0
  553. package/dist/router/match-api.js +406 -0
  554. package/dist/router/match-api.js.map +1 -0
  555. package/dist/router/match-context.d.ts +206 -0
  556. package/dist/router/match-context.d.ts.map +1 -0
  557. package/dist/router/match-context.js +17 -0
  558. package/dist/router/match-context.js.map +1 -0
  559. package/dist/router/match-middleware/background-revalidation.d.ts +127 -0
  560. package/dist/router/match-middleware/background-revalidation.d.ts.map +1 -0
  561. package/dist/router/match-middleware/background-revalidation.js +75 -0
  562. package/dist/router/match-middleware/background-revalidation.js.map +1 -0
  563. package/dist/router/match-middleware/cache-lookup.d.ts +112 -0
  564. package/dist/router/match-middleware/cache-lookup.d.ts.map +1 -0
  565. package/dist/router/match-middleware/cache-lookup.js +257 -0
  566. package/dist/router/match-middleware/cache-lookup.js.map +1 -0
  567. package/dist/router/match-middleware/cache-store.d.ts +113 -0
  568. package/dist/router/match-middleware/cache-store.d.ts.map +1 -0
  569. package/dist/router/match-middleware/cache-store.js +108 -0
  570. package/dist/router/match-middleware/cache-store.js.map +1 -0
  571. package/dist/router/match-middleware/index.d.ts +81 -0
  572. package/dist/router/match-middleware/index.d.ts.map +1 -0
  573. package/dist/router/match-middleware/index.js +80 -0
  574. package/dist/router/match-middleware/index.js.map +1 -0
  575. package/dist/router/match-middleware/intercept-resolution.d.ts +117 -0
  576. package/dist/router/match-middleware/intercept-resolution.d.ts.map +1 -0
  577. package/dist/router/match-middleware/intercept-resolution.js +134 -0
  578. package/dist/router/match-middleware/intercept-resolution.js.map +1 -0
  579. package/dist/router/match-middleware/segment-resolution.d.ts +99 -0
  580. package/dist/router/match-middleware/segment-resolution.d.ts.map +1 -0
  581. package/dist/router/match-middleware/segment-resolution.js +53 -0
  582. package/dist/router/match-middleware/segment-resolution.js.map +1 -0
  583. package/dist/router/match-pipelines.d.ts +147 -0
  584. package/dist/router/match-pipelines.d.ts.map +1 -0
  585. package/dist/router/match-pipelines.js +82 -0
  586. package/dist/router/match-pipelines.js.map +1 -0
  587. package/dist/router/match-result.d.ts +126 -0
  588. package/dist/router/match-result.d.ts.map +1 -0
  589. package/dist/router/match-result.js +93 -0
  590. package/dist/router/match-result.js.map +1 -0
  591. package/dist/router/metrics.d.ts +20 -0
  592. package/dist/router/metrics.d.ts.map +1 -0
  593. package/dist/router/metrics.js +47 -0
  594. package/dist/router/metrics.js.map +1 -0
  595. package/dist/router/middleware.d.ts +249 -0
  596. package/dist/router/middleware.d.ts.map +1 -0
  597. package/dist/router/middleware.js +434 -0
  598. package/dist/router/middleware.js.map +1 -0
  599. package/dist/router/middleware.test.d.ts +2 -0
  600. package/dist/router/middleware.test.d.ts.map +1 -0
  601. package/dist/router/middleware.test.js +816 -0
  602. package/dist/router/middleware.test.js.map +1 -0
  603. package/dist/router/pattern-matching.d.ts +149 -0
  604. package/dist/router/pattern-matching.d.ts.map +1 -0
  605. package/dist/router/pattern-matching.js +349 -0
  606. package/dist/router/pattern-matching.js.map +1 -0
  607. package/dist/router/revalidation.d.ts +44 -0
  608. package/dist/router/revalidation.d.ts.map +1 -0
  609. package/dist/router/revalidation.js +147 -0
  610. package/dist/router/revalidation.js.map +1 -0
  611. package/dist/router/router-context.d.ts +135 -0
  612. package/dist/router/router-context.d.ts.map +1 -0
  613. package/dist/router/router-context.js +36 -0
  614. package/dist/router/router-context.js.map +1 -0
  615. package/dist/router/segment-resolution.d.ts +127 -0
  616. package/dist/router/segment-resolution.d.ts.map +1 -0
  617. package/dist/router/segment-resolution.js +919 -0
  618. package/dist/router/segment-resolution.js.map +1 -0
  619. package/dist/router/trie-matching.d.ts +40 -0
  620. package/dist/router/trie-matching.d.ts.map +1 -0
  621. package/dist/router/trie-matching.js +127 -0
  622. package/dist/router/trie-matching.js.map +1 -0
  623. package/dist/router/types.d.ts +136 -0
  624. package/dist/router/types.d.ts.map +1 -0
  625. package/dist/router/types.js +7 -0
  626. package/dist/router/types.js.map +1 -0
  627. package/dist/router.d.ts +753 -0
  628. package/dist/router.d.ts.map +1 -0
  629. package/dist/router.gen.d.ts +6 -0
  630. package/dist/router.gen.d.ts.map +1 -0
  631. package/dist/router.gen.js +6 -0
  632. package/dist/router.gen.js.map +1 -0
  633. package/dist/router.js +1304 -0
  634. package/dist/router.js.map +1 -0
  635. package/dist/rsc/__tests__/helpers.test.d.ts +2 -0
  636. package/dist/rsc/__tests__/helpers.test.d.ts.map +1 -0
  637. package/dist/rsc/__tests__/helpers.test.js +140 -0
  638. package/dist/rsc/__tests__/helpers.test.js.map +1 -0
  639. package/dist/rsc/handler.d.ts +45 -0
  640. package/dist/rsc/handler.d.ts.map +1 -0
  641. package/dist/rsc/handler.js +1172 -0
  642. package/dist/rsc/handler.js.map +1 -0
  643. package/dist/rsc/helpers.d.ts +16 -0
  644. package/dist/rsc/helpers.d.ts.map +1 -0
  645. package/dist/rsc/helpers.js +55 -0
  646. package/dist/rsc/helpers.js.map +1 -0
  647. package/dist/rsc/index.d.ts +22 -0
  648. package/dist/rsc/index.d.ts.map +1 -0
  649. package/dist/rsc/index.js +23 -0
  650. package/dist/rsc/index.js.map +1 -0
  651. package/dist/rsc/nonce.d.ts +9 -0
  652. package/dist/rsc/nonce.d.ts.map +1 -0
  653. package/dist/rsc/nonce.js +18 -0
  654. package/dist/rsc/nonce.js.map +1 -0
  655. package/dist/rsc/types.d.ts +206 -0
  656. package/dist/rsc/types.d.ts.map +1 -0
  657. package/dist/rsc/types.js +8 -0
  658. package/dist/rsc/types.js.map +1 -0
  659. package/dist/search-params.d.ts +103 -0
  660. package/dist/search-params.d.ts.map +1 -0
  661. package/dist/search-params.js +74 -0
  662. package/dist/search-params.js.map +1 -0
  663. package/dist/segment-system.d.ts +75 -0
  664. package/dist/segment-system.d.ts.map +1 -0
  665. package/dist/segment-system.js +336 -0
  666. package/dist/segment-system.js.map +1 -0
  667. package/dist/server/context.d.ts +245 -0
  668. package/dist/server/context.d.ts.map +1 -0
  669. package/dist/server/context.js +197 -0
  670. package/dist/server/context.js.map +1 -0
  671. package/dist/server/fetchable-loader-store.d.ts +18 -0
  672. package/dist/server/fetchable-loader-store.d.ts.map +1 -0
  673. package/dist/server/fetchable-loader-store.js +18 -0
  674. package/dist/server/fetchable-loader-store.js.map +1 -0
  675. package/dist/server/handle-store.d.ts +85 -0
  676. package/dist/server/handle-store.d.ts.map +1 -0
  677. package/dist/server/handle-store.js +142 -0
  678. package/dist/server/handle-store.js.map +1 -0
  679. package/dist/server/loader-registry.d.ts +55 -0
  680. package/dist/server/loader-registry.d.ts.map +1 -0
  681. package/dist/server/loader-registry.js +132 -0
  682. package/dist/server/loader-registry.js.map +1 -0
  683. package/dist/server/request-context.d.ts +226 -0
  684. package/dist/server/request-context.d.ts.map +1 -0
  685. package/dist/server/request-context.js +290 -0
  686. package/dist/server/request-context.js.map +1 -0
  687. package/dist/server/root-layout.d.ts +4 -0
  688. package/dist/server/root-layout.d.ts.map +1 -0
  689. package/dist/server/root-layout.js +5 -0
  690. package/dist/server/root-layout.js.map +1 -0
  691. package/dist/server.d.ts +15 -0
  692. package/dist/server.d.ts.map +1 -0
  693. package/dist/server.js +20 -0
  694. package/dist/server.js.map +1 -0
  695. package/dist/ssr/__tests__/ssr-handler.test.d.ts +2 -0
  696. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +1 -0
  697. package/dist/ssr/__tests__/ssr-handler.test.js +132 -0
  698. package/dist/ssr/__tests__/ssr-handler.test.js.map +1 -0
  699. package/dist/ssr/index.d.ts +98 -0
  700. package/dist/ssr/index.d.ts.map +1 -0
  701. package/dist/ssr/index.js +158 -0
  702. package/dist/ssr/index.js.map +1 -0
  703. package/dist/static-handler.d.ts +50 -0
  704. package/dist/static-handler.d.ts.map +1 -0
  705. package/dist/static-handler.gen.d.ts +5 -0
  706. package/dist/static-handler.gen.d.ts.map +1 -0
  707. package/dist/static-handler.gen.js +5 -0
  708. package/dist/static-handler.gen.js.map +1 -0
  709. package/dist/static-handler.js +29 -0
  710. package/dist/static-handler.js.map +1 -0
  711. package/dist/theme/ThemeProvider.d.ts +20 -0
  712. package/dist/theme/ThemeProvider.d.ts.map +1 -0
  713. package/dist/theme/ThemeProvider.js +240 -0
  714. package/dist/theme/ThemeProvider.js.map +1 -0
  715. package/dist/theme/ThemeScript.d.ts +48 -0
  716. package/dist/theme/ThemeScript.d.ts.map +1 -0
  717. package/dist/theme/ThemeScript.js +13 -0
  718. package/dist/theme/ThemeScript.js.map +1 -0
  719. package/dist/theme/__tests__/theme.test.d.ts +2 -0
  720. package/dist/theme/__tests__/theme.test.d.ts.map +1 -0
  721. package/dist/theme/__tests__/theme.test.js +103 -0
  722. package/dist/theme/__tests__/theme.test.js.map +1 -0
  723. package/dist/theme/constants.d.ts +29 -0
  724. package/dist/theme/constants.d.ts.map +1 -0
  725. package/dist/theme/constants.js +48 -0
  726. package/dist/theme/constants.js.map +1 -0
  727. package/dist/theme/index.d.ts +31 -0
  728. package/dist/theme/index.d.ts.map +1 -0
  729. package/dist/theme/index.js +36 -0
  730. package/dist/theme/index.js.map +1 -0
  731. package/dist/theme/theme-context.d.ts +40 -0
  732. package/dist/theme/theme-context.d.ts.map +1 -0
  733. package/dist/theme/theme-context.js +60 -0
  734. package/dist/theme/theme-context.js.map +1 -0
  735. package/dist/theme/theme-script.d.ts +27 -0
  736. package/dist/theme/theme-script.d.ts.map +1 -0
  737. package/dist/theme/theme-script.js +147 -0
  738. package/dist/theme/theme-script.js.map +1 -0
  739. package/dist/theme/types.d.ts +163 -0
  740. package/dist/theme/types.d.ts.map +1 -0
  741. package/dist/theme/types.js +11 -0
  742. package/dist/theme/types.js.map +1 -0
  743. package/dist/theme/use-theme.d.ts +12 -0
  744. package/dist/theme/use-theme.d.ts.map +1 -0
  745. package/dist/theme/use-theme.js +40 -0
  746. package/dist/theme/use-theme.js.map +1 -0
  747. package/dist/types.d.ts +1479 -0
  748. package/dist/types.d.ts.map +1 -0
  749. package/dist/types.js +10 -0
  750. package/dist/types.js.map +1 -0
  751. package/dist/urls.d.ts +441 -0
  752. package/dist/urls.d.ts.map +1 -0
  753. package/dist/urls.gen.d.ts +8 -0
  754. package/dist/urls.gen.d.ts.map +1 -0
  755. package/dist/urls.gen.js +8 -0
  756. package/dist/urls.gen.js.map +1 -0
  757. package/dist/urls.js +443 -0
  758. package/dist/urls.js.map +1 -0
  759. package/dist/use-loader.d.ts +127 -0
  760. package/dist/use-loader.d.ts.map +1 -0
  761. package/dist/use-loader.js +237 -0
  762. package/dist/use-loader.js.map +1 -0
  763. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +2 -0
  764. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +1 -0
  765. package/dist/vite/__tests__/ast-handler-extract.test.js +294 -0
  766. package/dist/vite/__tests__/ast-handler-extract.test.js.map +1 -0
  767. package/dist/vite/__tests__/expose-id-utils.test.d.ts +2 -0
  768. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +1 -0
  769. package/dist/vite/__tests__/expose-id-utils.test.js +224 -0
  770. package/dist/vite/__tests__/expose-id-utils.test.js.map +1 -0
  771. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +2 -0
  772. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +1 -0
  773. package/dist/vite/__tests__/expose-internal-ids.test.js +647 -0
  774. package/dist/vite/__tests__/expose-internal-ids.test.js.map +1 -0
  775. package/dist/vite/__tests__/expose-router-id.test.d.ts +2 -0
  776. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +1 -0
  777. package/dist/vite/__tests__/expose-router-id.test.js +39 -0
  778. package/dist/vite/__tests__/expose-router-id.test.js.map +1 -0
  779. package/dist/vite/ast-handler-extract.d.ts +49 -0
  780. package/dist/vite/ast-handler-extract.d.ts.map +1 -0
  781. package/dist/vite/ast-handler-extract.js +249 -0
  782. package/dist/vite/ast-handler-extract.js.map +1 -0
  783. package/dist/vite/expose-action-id.d.ts +19 -0
  784. package/dist/vite/expose-action-id.d.ts.map +1 -0
  785. package/dist/vite/expose-action-id.js +250 -0
  786. package/dist/vite/expose-action-id.js.map +1 -0
  787. package/dist/vite/expose-id-utils.d.ts +69 -0
  788. package/dist/vite/expose-id-utils.d.ts.map +1 -0
  789. package/dist/vite/expose-id-utils.js +289 -0
  790. package/dist/vite/expose-id-utils.js.map +1 -0
  791. package/dist/vite/expose-internal-ids.d.ts +22 -0
  792. package/dist/vite/expose-internal-ids.d.ts.map +1 -0
  793. package/dist/vite/expose-internal-ids.js +886 -0
  794. package/dist/vite/expose-internal-ids.js.map +1 -0
  795. package/dist/vite/index.d.ts +149 -0
  796. package/dist/vite/index.d.ts.map +1 -0
  797. package/dist/vite/index.js +5214 -0
  798. package/dist/vite/index.js.map +1 -0
  799. package/dist/vite/index.named-routes.gen.ts +103 -0
  800. package/dist/vite/package-resolution.d.ts +43 -0
  801. package/dist/vite/package-resolution.d.ts.map +1 -0
  802. package/dist/vite/package-resolution.js +112 -0
  803. package/dist/vite/package-resolution.js.map +1 -0
  804. package/dist/vite/virtual-entries.d.ts +25 -0
  805. package/dist/vite/virtual-entries.d.ts.map +1 -0
  806. package/dist/vite/virtual-entries.js +110 -0
  807. package/dist/vite/virtual-entries.js.map +1 -0
  808. package/package.json +177 -0
  809. package/skills/breadcrumbs/SKILL.md +250 -0
  810. package/skills/cache-guide/SKILL.md +262 -0
  811. package/skills/caching/SKILL.md +220 -0
  812. package/skills/composability/SKILL.md +172 -0
  813. package/skills/debug-manifest/SKILL.md +112 -0
  814. package/skills/document-cache/SKILL.md +182 -0
  815. package/skills/fonts/SKILL.md +167 -0
  816. package/skills/hooks/SKILL.md +704 -0
  817. package/skills/host-router/SKILL.md +218 -0
  818. package/skills/intercept/SKILL.md +313 -0
  819. package/skills/layout/SKILL.md +310 -0
  820. package/skills/links/SKILL.md +239 -0
  821. package/skills/loader/SKILL.md +596 -0
  822. package/skills/middleware/SKILL.md +339 -0
  823. package/skills/mime-routes/SKILL.md +128 -0
  824. package/skills/parallel/SKILL.md +305 -0
  825. package/skills/prerender/SKILL.md +643 -0
  826. package/skills/rango/SKILL.md +118 -0
  827. package/skills/response-routes/SKILL.md +411 -0
  828. package/skills/route/SKILL.md +385 -0
  829. package/skills/router-setup/SKILL.md +439 -0
  830. package/skills/tailwind/SKILL.md +129 -0
  831. package/skills/theme/SKILL.md +79 -0
  832. package/skills/typesafety/SKILL.md +623 -0
  833. package/skills/use-cache/SKILL.md +324 -0
  834. package/src/__internal.ts +273 -0
  835. package/src/bin/rango.ts +321 -0
  836. package/src/browser/action-coordinator.ts +97 -0
  837. package/src/browser/action-response-classifier.ts +99 -0
  838. package/src/browser/event-controller.ts +899 -0
  839. package/src/browser/history-state.ts +80 -0
  840. package/src/browser/index.ts +18 -0
  841. package/src/browser/intercept-utils.ts +52 -0
  842. package/src/browser/link-interceptor.ts +141 -0
  843. package/src/browser/logging.ts +55 -0
  844. package/src/browser/merge-segment-loaders.ts +134 -0
  845. package/src/browser/navigation-bridge.ts +640 -0
  846. package/src/browser/navigation-client.ts +215 -0
  847. package/src/browser/navigation-store.ts +806 -0
  848. package/src/browser/navigation-transaction.ts +295 -0
  849. package/src/browser/network-error-handler.ts +61 -0
  850. package/src/browser/partial-update.ts +552 -0
  851. package/src/browser/prefetch/cache.ts +154 -0
  852. package/src/browser/prefetch/fetch.ts +135 -0
  853. package/src/browser/prefetch/observer.ts +65 -0
  854. package/src/browser/prefetch/policy.ts +48 -0
  855. package/src/browser/prefetch/queue.ts +88 -0
  856. package/src/browser/rango-state.ts +112 -0
  857. package/src/browser/react/Link.tsx +360 -0
  858. package/src/browser/react/NavigationProvider.tsx +386 -0
  859. package/src/browser/react/ScrollRestoration.tsx +94 -0
  860. package/src/browser/react/context.ts +59 -0
  861. package/src/browser/react/filter-segment-order.ts +11 -0
  862. package/src/browser/react/index.ts +52 -0
  863. package/src/browser/react/location-state-shared.ts +162 -0
  864. package/src/browser/react/location-state.ts +107 -0
  865. package/src/browser/react/mount-context.ts +37 -0
  866. package/src/browser/react/nonce-context.ts +23 -0
  867. package/src/browser/react/shallow-equal.ts +27 -0
  868. package/src/browser/react/use-action.ts +218 -0
  869. package/src/browser/react/use-client-cache.ts +58 -0
  870. package/src/browser/react/use-handle.ts +162 -0
  871. package/src/browser/react/use-href.tsx +40 -0
  872. package/src/browser/react/use-link-status.ts +135 -0
  873. package/src/browser/react/use-mount.ts +31 -0
  874. package/src/browser/react/use-navigation.ts +99 -0
  875. package/src/browser/react/use-params.ts +65 -0
  876. package/src/browser/react/use-pathname.ts +47 -0
  877. package/src/browser/react/use-router.ts +63 -0
  878. package/src/browser/react/use-search-params.ts +56 -0
  879. package/src/browser/react/use-segments.ts +171 -0
  880. package/src/browser/response-adapter.ts +73 -0
  881. package/src/browser/rsc-router.tsx +431 -0
  882. package/src/browser/scroll-restoration.ts +384 -0
  883. package/src/browser/segment-reconciler.ts +216 -0
  884. package/src/browser/segment-structure-assert.ts +83 -0
  885. package/src/browser/server-action-bridge.ts +667 -0
  886. package/src/browser/shallow.ts +40 -0
  887. package/src/browser/types.ts +538 -0
  888. package/src/browser/validate-redirect-origin.ts +29 -0
  889. package/src/build/generate-manifest.ts +438 -0
  890. package/src/build/generate-route-types.ts +36 -0
  891. package/src/build/index.ts +35 -0
  892. package/src/build/route-trie.ts +265 -0
  893. package/src/build/route-types/ast-helpers.ts +25 -0
  894. package/src/build/route-types/ast-route-extraction.ts +98 -0
  895. package/src/build/route-types/codegen.ts +102 -0
  896. package/src/build/route-types/include-resolution.ts +411 -0
  897. package/src/build/route-types/param-extraction.ts +48 -0
  898. package/src/build/route-types/per-module-writer.ts +128 -0
  899. package/src/build/route-types/router-processing.ts +469 -0
  900. package/src/build/route-types/scan-filter.ts +78 -0
  901. package/src/build/runtime-discovery.ts +231 -0
  902. package/src/cache/background-task.ts +34 -0
  903. package/src/cache/cache-key-utils.ts +44 -0
  904. package/src/cache/cache-policy.ts +125 -0
  905. package/src/cache/cache-runtime.ts +338 -0
  906. package/src/cache/cache-scope.ts +382 -0
  907. package/src/cache/cf/cf-cache-store.ts +540 -0
  908. package/src/cache/cf/index.ts +25 -0
  909. package/src/cache/document-cache.ts +369 -0
  910. package/src/cache/handle-capture.ts +81 -0
  911. package/src/cache/handle-snapshot.ts +41 -0
  912. package/src/cache/index.ts +43 -0
  913. package/src/cache/memory-segment-store.ts +328 -0
  914. package/src/cache/profile-registry.ts +73 -0
  915. package/src/cache/read-through-swr.ts +134 -0
  916. package/src/cache/segment-codec.ts +256 -0
  917. package/src/cache/taint.ts +98 -0
  918. package/src/cache/types.ts +342 -0
  919. package/src/client.rsc.tsx +85 -0
  920. package/src/client.tsx +601 -0
  921. package/src/component-utils.ts +76 -0
  922. package/src/components/DefaultDocument.tsx +27 -0
  923. package/src/context-var.ts +86 -0
  924. package/src/debug.ts +243 -0
  925. package/src/default-error-boundary.tsx +88 -0
  926. package/src/deps/browser.ts +8 -0
  927. package/src/deps/html-stream-client.ts +2 -0
  928. package/src/deps/html-stream-server.ts +2 -0
  929. package/src/deps/rsc.ts +10 -0
  930. package/src/deps/ssr.ts +2 -0
  931. package/src/errors.ts +365 -0
  932. package/src/handle.ts +135 -0
  933. package/src/handles/MetaTags.tsx +246 -0
  934. package/src/handles/breadcrumbs.ts +66 -0
  935. package/src/handles/index.ts +7 -0
  936. package/src/handles/meta.ts +264 -0
  937. package/src/host/cookie-handler.ts +165 -0
  938. package/src/host/errors.ts +97 -0
  939. package/src/host/index.ts +53 -0
  940. package/src/host/pattern-matcher.ts +214 -0
  941. package/src/host/router.ts +352 -0
  942. package/src/host/testing.ts +79 -0
  943. package/src/host/types.ts +146 -0
  944. package/src/host/utils.ts +25 -0
  945. package/src/href-client.ts +222 -0
  946. package/src/index.rsc.ts +233 -0
  947. package/src/index.ts +277 -0
  948. package/src/internal-debug.ts +11 -0
  949. package/src/loader.rsc.ts +89 -0
  950. package/src/loader.ts +64 -0
  951. package/src/network-error-thrower.tsx +23 -0
  952. package/src/outlet-context.ts +15 -0
  953. package/src/outlet-provider.tsx +45 -0
  954. package/src/prerender/param-hash.ts +37 -0
  955. package/src/prerender/store.ts +185 -0
  956. package/src/prerender.ts +463 -0
  957. package/src/reverse.ts +330 -0
  958. package/src/root-error-boundary.tsx +289 -0
  959. package/src/route-content-wrapper.tsx +196 -0
  960. package/src/route-definition/dsl-helpers.ts +934 -0
  961. package/src/route-definition/helper-factories.ts +200 -0
  962. package/src/route-definition/helpers-types.ts +430 -0
  963. package/src/route-definition/index.ts +52 -0
  964. package/src/route-definition/redirect.ts +93 -0
  965. package/src/route-definition.ts +1 -0
  966. package/src/route-map-builder.ts +275 -0
  967. package/src/route-name.ts +53 -0
  968. package/src/route-types.ts +259 -0
  969. package/src/router/content-negotiation.ts +116 -0
  970. package/src/router/debug-manifest.ts +72 -0
  971. package/src/router/error-handling.ts +287 -0
  972. package/src/router/find-match.ts +158 -0
  973. package/src/router/handler-context.ts +451 -0
  974. package/src/router/intercept-resolution.ts +395 -0
  975. package/src/router/lazy-includes.ts +234 -0
  976. package/src/router/loader-resolution.ts +420 -0
  977. package/src/router/logging.ts +248 -0
  978. package/src/router/manifest.ts +267 -0
  979. package/src/router/match-api.ts +620 -0
  980. package/src/router/match-context.ts +266 -0
  981. package/src/router/match-handlers.ts +440 -0
  982. package/src/router/match-middleware/background-revalidation.ts +223 -0
  983. package/src/router/match-middleware/cache-lookup.ts +634 -0
  984. package/src/router/match-middleware/cache-store.ts +295 -0
  985. package/src/router/match-middleware/index.ts +81 -0
  986. package/src/router/match-middleware/intercept-resolution.ts +306 -0
  987. package/src/router/match-middleware/segment-resolution.ts +192 -0
  988. package/src/router/match-pipelines.ts +179 -0
  989. package/src/router/match-result.ts +219 -0
  990. package/src/router/metrics.ts +282 -0
  991. package/src/router/middleware-cookies.ts +55 -0
  992. package/src/router/middleware-types.ts +222 -0
  993. package/src/router/middleware.ts +748 -0
  994. package/src/router/pattern-matching.ts +563 -0
  995. package/src/router/prerender-match.ts +402 -0
  996. package/src/router/preview-match.ts +170 -0
  997. package/src/router/revalidation.ts +289 -0
  998. package/src/router/router-context.ts +316 -0
  999. package/src/router/router-interfaces.ts +452 -0
  1000. package/src/router/router-options.ts +592 -0
  1001. package/src/router/router-registry.ts +24 -0
  1002. package/src/router/segment-resolution/fresh.ts +570 -0
  1003. package/src/router/segment-resolution/helpers.ts +263 -0
  1004. package/src/router/segment-resolution/loader-cache.ts +198 -0
  1005. package/src/router/segment-resolution/revalidation.ts +1239 -0
  1006. package/src/router/segment-resolution/static-store.ts +67 -0
  1007. package/src/router/segment-resolution.ts +21 -0
  1008. package/src/router/segment-wrappers.ts +289 -0
  1009. package/src/router/telemetry-otel.ts +299 -0
  1010. package/src/router/telemetry.ts +300 -0
  1011. package/src/router/timeout.ts +148 -0
  1012. package/src/router/trie-matching.ts +239 -0
  1013. package/src/router/types.ts +170 -0
  1014. package/src/router.ts +1002 -0
  1015. package/src/rsc/handler-context.ts +45 -0
  1016. package/src/rsc/handler.ts +1089 -0
  1017. package/src/rsc/helpers.ts +198 -0
  1018. package/src/rsc/index.ts +36 -0
  1019. package/src/rsc/loader-fetch.ts +209 -0
  1020. package/src/rsc/manifest-init.ts +86 -0
  1021. package/src/rsc/nonce.ts +32 -0
  1022. package/src/rsc/origin-guard.ts +141 -0
  1023. package/src/rsc/progressive-enhancement.ts +379 -0
  1024. package/src/rsc/response-error.ts +37 -0
  1025. package/src/rsc/response-route-handler.ts +347 -0
  1026. package/src/rsc/rsc-rendering.ts +237 -0
  1027. package/src/rsc/runtime-warnings.ts +42 -0
  1028. package/src/rsc/server-action.ts +348 -0
  1029. package/src/rsc/ssr-setup.ts +128 -0
  1030. package/src/rsc/types.ts +263 -0
  1031. package/src/search-params.ts +230 -0
  1032. package/src/segment-system.tsx +454 -0
  1033. package/src/server/context.ts +591 -0
  1034. package/src/server/cookie-store.ts +190 -0
  1035. package/src/server/fetchable-loader-store.ts +37 -0
  1036. package/src/server/handle-store.ts +308 -0
  1037. package/src/server/loader-registry.ts +133 -0
  1038. package/src/server/request-context.ts +914 -0
  1039. package/src/server/root-layout.tsx +10 -0
  1040. package/src/server/tsconfig.json +14 -0
  1041. package/src/server.ts +51 -0
  1042. package/src/ssr/index.tsx +365 -0
  1043. package/src/static-handler.ts +114 -0
  1044. package/src/theme/ThemeProvider.tsx +297 -0
  1045. package/src/theme/ThemeScript.tsx +61 -0
  1046. package/src/theme/constants.ts +62 -0
  1047. package/src/theme/index.ts +48 -0
  1048. package/src/theme/theme-context.ts +44 -0
  1049. package/src/theme/theme-script.ts +155 -0
  1050. package/src/theme/types.ts +182 -0
  1051. package/src/theme/use-theme.ts +44 -0
  1052. package/src/types/boundaries.ts +158 -0
  1053. package/src/types/cache-types.ts +198 -0
  1054. package/src/types/error-types.ts +192 -0
  1055. package/src/types/global-namespace.ts +100 -0
  1056. package/src/types/handler-context.ts +687 -0
  1057. package/src/types/index.ts +88 -0
  1058. package/src/types/loader-types.ts +183 -0
  1059. package/src/types/route-config.ts +170 -0
  1060. package/src/types/route-entry.ts +102 -0
  1061. package/src/types/segments.ts +148 -0
  1062. package/src/types.ts +1 -0
  1063. package/src/urls/include-helper.ts +197 -0
  1064. package/src/urls/index.ts +53 -0
  1065. package/src/urls/path-helper-types.ts +339 -0
  1066. package/src/urls/path-helper.ts +329 -0
  1067. package/src/urls/pattern-types.ts +95 -0
  1068. package/src/urls/response-types.ts +106 -0
  1069. package/src/urls/type-extraction.ts +372 -0
  1070. package/src/urls/urls-function.ts +98 -0
  1071. package/src/urls.ts +1 -0
  1072. package/src/use-loader.tsx +354 -0
  1073. package/src/vite/discovery/bundle-postprocess.ts +184 -0
  1074. package/src/vite/discovery/discover-routers.ts +344 -0
  1075. package/src/vite/discovery/prerender-collection.ts +385 -0
  1076. package/src/vite/discovery/route-types-writer.ts +258 -0
  1077. package/src/vite/discovery/self-gen-tracking.ts +47 -0
  1078. package/src/vite/discovery/state.ts +110 -0
  1079. package/src/vite/discovery/virtual-module-codegen.ts +203 -0
  1080. package/src/vite/index.ts +16 -0
  1081. package/src/vite/plugin-types.ts +131 -0
  1082. package/src/vite/plugins/cjs-to-esm.ts +93 -0
  1083. package/src/vite/plugins/client-ref-dedup.ts +115 -0
  1084. package/src/vite/plugins/client-ref-hashing.ts +105 -0
  1085. package/src/vite/plugins/expose-action-id.ts +365 -0
  1086. package/src/vite/plugins/expose-id-utils.ts +287 -0
  1087. package/src/vite/plugins/expose-ids/export-analysis.ts +296 -0
  1088. package/src/vite/plugins/expose-ids/handler-transform.ts +179 -0
  1089. package/src/vite/plugins/expose-ids/loader-transform.ts +74 -0
  1090. package/src/vite/plugins/expose-ids/router-transform.ts +110 -0
  1091. package/src/vite/plugins/expose-ids/types.ts +45 -0
  1092. package/src/vite/plugins/expose-internal-ids.ts +569 -0
  1093. package/src/vite/plugins/refresh-cmd.ts +65 -0
  1094. package/src/vite/plugins/use-cache-transform.ts +323 -0
  1095. package/src/vite/plugins/version-injector.ts +83 -0
  1096. package/src/vite/plugins/version-plugin.ts +254 -0
  1097. package/src/vite/plugins/version.d.ts +12 -0
  1098. package/src/vite/plugins/virtual-entries.ts +123 -0
  1099. package/src/vite/plugins/virtual-stub-plugin.ts +29 -0
  1100. package/src/vite/rango.ts +510 -0
  1101. package/src/vite/router-discovery.ts +785 -0
  1102. package/src/vite/utils/ast-handler-extract.ts +517 -0
  1103. package/src/vite/utils/banner.ts +36 -0
  1104. package/src/vite/utils/bundle-analysis.ts +137 -0
  1105. package/src/vite/utils/manifest-utils.ts +70 -0
  1106. package/src/vite/utils/package-resolution.ts +121 -0
  1107. package/src/vite/utils/prerender-utils.ts +189 -0
  1108. package/src/vite/utils/shared-utils.ts +169 -0
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Deep clone handle data to create a snapshot.
3
+ * @internal
4
+ */
5
+ function cloneHandleData(data) {
6
+ const clone = {};
7
+ for (const handleName in data) {
8
+ clone[handleName] = {};
9
+ for (const segmentId in data[handleName]) {
10
+ clone[handleName][segmentId] = [...data[handleName][segmentId]];
11
+ }
12
+ }
13
+ return clone;
14
+ }
15
+ /**
16
+ * Create a new HandleStore instance.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * const handleStore = createHandleStore();
21
+ *
22
+ * // In router - track without awaiting
23
+ * const component = handleStore.track(entry.handler(context));
24
+ *
25
+ * // In handler - push handle data (value, promise, or async callback result)
26
+ * handleStore.push("breadcrumbs", segmentId, { label: "Home", href: "/" });
27
+ * handleStore.push("meta", segmentId, fetchMetaAsync()); // promise
28
+ *
29
+ * // Stream handle data progressively
30
+ * for await (const handles of handleStore.stream()) {
31
+ * console.log("Handle update:", handles);
32
+ * }
33
+ * ```
34
+ */
35
+ export function createHandleStore() {
36
+ const pending = [];
37
+ const data = {};
38
+ // Queue for pending emissions and resolver for waiting consumer
39
+ let pendingEmissions = [];
40
+ let emissionResolver = null;
41
+ let completed = false;
42
+ // Signal that a new emission is available
43
+ function signalEmission() {
44
+ if (emissionResolver) {
45
+ const resolver = emissionResolver;
46
+ emissionResolver = null;
47
+ resolver();
48
+ }
49
+ }
50
+ // Wait for the next emission or completion
51
+ function waitForEmission() {
52
+ if (pendingEmissions.length > 0 || completed) {
53
+ return Promise.resolve();
54
+ }
55
+ return new Promise((resolve) => {
56
+ emissionResolver = resolve;
57
+ });
58
+ }
59
+ return {
60
+ track(promise) {
61
+ pending.push(promise);
62
+ return promise;
63
+ },
64
+ get settled() {
65
+ if (pending.length === 0) {
66
+ return Promise.resolve();
67
+ }
68
+ return Promise.allSettled(pending).then(() => { });
69
+ },
70
+ push(handleName, segmentId, value) {
71
+ if (!data[handleName]) {
72
+ data[handleName] = {};
73
+ }
74
+ if (!data[handleName][segmentId]) {
75
+ data[handleName][segmentId] = [];
76
+ }
77
+ data[handleName][segmentId].push(value);
78
+ // Queue a snapshot for emission
79
+ pendingEmissions.push(cloneHandleData(data));
80
+ signalEmission();
81
+ },
82
+ getData() {
83
+ return this.settled.then(() => data);
84
+ },
85
+ async *stream() {
86
+ // Set up completion handler
87
+ this.settled.then(() => {
88
+ completed = true;
89
+ signalEmission();
90
+ });
91
+ // Initial small delay to batch rapid synchronous pushes
92
+ // This allows multiple handles pushing in quick succession to be batched
93
+ await new Promise((resolve) => setTimeout(resolve, 0));
94
+ // If we already have data, yield the accumulated state
95
+ if (Object.keys(data).length > 0) {
96
+ // Clear pending emissions since we're yielding current state
97
+ pendingEmissions = [];
98
+ yield cloneHandleData(data);
99
+ }
100
+ // Continue streaming on each push
101
+ while (!completed) {
102
+ await waitForEmission();
103
+ // Yield all pending emissions (yield latest only)
104
+ if (pendingEmissions.length > 0) {
105
+ // Skip intermediate states, yield the latest
106
+ const latest = pendingEmissions[pendingEmissions.length - 1];
107
+ pendingEmissions = [];
108
+ yield latest;
109
+ }
110
+ }
111
+ // Final yield only if there are pending emissions that weren't yielded
112
+ // (handles that pushed after our last yield but before completion)
113
+ if (pendingEmissions.length > 0) {
114
+ yield cloneHandleData(data);
115
+ }
116
+ },
117
+ getDataForSegment(segmentId) {
118
+ const result = {};
119
+ for (const handleName in data) {
120
+ if (data[handleName][segmentId]) {
121
+ result[handleName] = [...data[handleName][segmentId]];
122
+ }
123
+ }
124
+ return result;
125
+ },
126
+ replaySegmentData(segmentId, segmentHandles) {
127
+ for (const handleName in segmentHandles) {
128
+ if (!data[handleName]) {
129
+ data[handleName] = {};
130
+ }
131
+ // Replace with replayed data (not append) to avoid handle bleeding between routes.
132
+ // When a cached segment is restored, its handles should replace any existing data
133
+ // for that segment, not accumulate on top of data from a different route.
134
+ data[handleName][segmentId] = [...segmentHandles[handleName]];
135
+ }
136
+ // Trigger emission for streaming
137
+ pendingEmissions.push(cloneHandleData(data));
138
+ signalEmission();
139
+ },
140
+ };
141
+ }
142
+ //# sourceMappingURL=handle-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"handle-store.js","sourceRoot":"","sources":["../../src/server/handle-store.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Server-side loader registry for GET-based fetching
3
+ *
4
+ * Loaders are loaded lazily via dynamic imports when first requested.
5
+ * The RSC handler looks up loaders by $$id to execute them.
6
+ */
7
+ import type { LoaderFn } from "../types.js";
8
+ import type { MiddlewareFn } from "../router/middleware.js";
9
+ interface RegisteredLoader {
10
+ fn: LoaderFn<any, any, any>;
11
+ middleware: MiddlewareFn[];
12
+ }
13
+ type LazyLoaderImport = () => Promise<{
14
+ $$id: string;
15
+ }>;
16
+ /**
17
+ * Set the lazy loader imports map (called by the loader manifest)
18
+ */
19
+ export declare function setLoaderImports(imports: Record<string, LazyLoaderImport>): void;
20
+ /**
21
+ * Register a fetchable loader by $$id
22
+ * Called by createLoader when fetchable option is provided
23
+ */
24
+ export declare function registerLoader(id: string, fn: LoaderFn<any, any, any>, middleware?: MiddlewareFn[]): void;
25
+ /**
26
+ * Get a registered loader by $$id (synchronous)
27
+ * Returns undefined if loader is not registered
28
+ */
29
+ export declare function getLoader(id: string): RegisteredLoader | undefined;
30
+ /**
31
+ * Get a loader by $$id, loading it lazily if needed
32
+ * This is the primary method for the RSC handler to get loaders
33
+ *
34
+ * In production: IDs are hashed, looked up via the lazy import map
35
+ * In dev: IDs are "filePath#exportName", resolved via dynamic import
36
+ */
37
+ export declare function getLoaderLazy(id: string): Promise<RegisteredLoader | undefined>;
38
+ /**
39
+ * Check if a loader is registered by $$id
40
+ */
41
+ export declare function hasLoader(id: string): boolean;
42
+ /**
43
+ * Get all registered loader IDs (for debugging)
44
+ */
45
+ export declare function getRegisteredLoaderIds(): string[];
46
+ /**
47
+ * Register a loader by its $$id (injected by Vite plugin)
48
+ * This is called during module loading to cache loaders
49
+ */
50
+ export declare function registerLoaderById(loader: {
51
+ $$id: string;
52
+ fn?: LoaderFn<any, any, any>;
53
+ }): void;
54
+ export {};
55
+ //# sourceMappingURL=loader-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader-registry.d.ts","sourceRoot":"","sources":["../../src/server/loader-registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAG5D,UAAU,gBAAgB;IACxB,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5B,UAAU,EAAE,YAAY,EAAE,CAAC;CAC5B;AAaD,KAAK,gBAAgB,GAAG,MAAM,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAGxD;;GAEG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAAC,GACxC,IAAI,CAEN;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAC5B,EAAE,EAAE,MAAM,EACV,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAC3B,UAAU,GAAE,YAAY,EAAO,GAC9B,IAAI,CAIN;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAElE;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC,CA0DvC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE7C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,CAAC,EAAE,QAAQ,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;CAC9B,GAAG,IAAI,CAgBP"}
@@ -0,0 +1,132 @@
1
+ /**
2
+ * Server-side loader registry for GET-based fetching
3
+ *
4
+ * Loaders are loaded lazily via dynamic imports when first requested.
5
+ * The RSC handler looks up loaders by $$id to execute them.
6
+ */
7
+ import { getFetchableLoader } from "./fetchable-loader-store.js";
8
+ // Server-side cache - maps loader $$id to function and middleware
9
+ // This is a CACHE populated by getLoaderLazy() when loaders are first accessed.
10
+ // The source of truth is fetchableLoaderRegistry in loader.ts, which is populated
11
+ // when createLoader() runs. This cache exists to:
12
+ // 1. Avoid repeated lookups/imports for the same loader
13
+ // 2. Support lazy loading in production (loaders imported on-demand)
14
+ // 3. Provide a stable reference for the RSC handler
15
+ const loaderRegistry = new Map();
16
+ let lazyLoaderImports = null;
17
+ /**
18
+ * Set the lazy loader imports map (called by the loader manifest)
19
+ */
20
+ export function setLoaderImports(imports) {
21
+ lazyLoaderImports = new Map(Object.entries(imports));
22
+ }
23
+ /**
24
+ * Register a fetchable loader by $$id
25
+ * Called by createLoader when fetchable option is provided
26
+ */
27
+ export function registerLoader(id, fn, middleware = []) {
28
+ // Always update the registry entry. During HMR, the module is re-executed
29
+ // with the new loader function, so we must replace the stale reference.
30
+ loaderRegistry.set(id, { fn, middleware });
31
+ }
32
+ /**
33
+ * Get a registered loader by $$id (synchronous)
34
+ * Returns undefined if loader is not registered
35
+ */
36
+ export function getLoader(id) {
37
+ return loaderRegistry.get(id);
38
+ }
39
+ /**
40
+ * Get a loader by $$id, loading it lazily if needed
41
+ * This is the primary method for the RSC handler to get loaders
42
+ *
43
+ * In production: IDs are hashed, looked up via the lazy import map
44
+ * In dev: IDs are "filePath#exportName", resolved via dynamic import
45
+ */
46
+ export async function getLoaderLazy(id) {
47
+ // Check if already cached in main registry
48
+ const existing = loaderRegistry.get(id);
49
+ if (existing) {
50
+ return existing;
51
+ }
52
+ // Check the fetchable loader registry (populated by createLoader)
53
+ const fetchable = getFetchableLoader(id);
54
+ if (fetchable) {
55
+ // Cache in main registry for future requests
56
+ loaderRegistry.set(id, fetchable);
57
+ return fetchable;
58
+ }
59
+ // Try to lazy load from the import map (production mode)
60
+ if (lazyLoaderImports && lazyLoaderImports.size > 0) {
61
+ const lazyImport = lazyLoaderImports.get(id);
62
+ if (lazyImport) {
63
+ try {
64
+ // Import the loader module - this triggers createLoader which registers fn
65
+ await lazyImport();
66
+ // Now try to get from fetchable registry (createLoader registered it)
67
+ const registered = getFetchableLoader(id);
68
+ if (registered) {
69
+ loaderRegistry.set(id, registered);
70
+ return registered;
71
+ }
72
+ }
73
+ catch (error) {
74
+ console.error(`[LoaderRegistry] Failed to load loader "${id}":`, error);
75
+ }
76
+ }
77
+ }
78
+ // Dev mode fallback: parse the ID and use Vite's dynamic import
79
+ // ID format in dev: "src/path/to/file.ts#ExportName"
80
+ const hashIndex = id.indexOf("#");
81
+ if (hashIndex !== -1) {
82
+ const filePath = id.slice(0, hashIndex);
83
+ try {
84
+ // In dev mode, Vite handles dynamic imports
85
+ // Just importing the module triggers createLoader which registers the fn
86
+ await import(/* @vite-ignore */ `/${filePath}`);
87
+ // Now try to get from fetchable registry
88
+ const registered = getFetchableLoader(id);
89
+ if (registered) {
90
+ loaderRegistry.set(id, registered);
91
+ return registered;
92
+ }
93
+ }
94
+ catch (error) {
95
+ console.error(`[LoaderRegistry] Failed to load loader "${id}":`, error);
96
+ }
97
+ }
98
+ return undefined;
99
+ }
100
+ /**
101
+ * Check if a loader is registered by $$id
102
+ */
103
+ export function hasLoader(id) {
104
+ return loaderRegistry.has(id) || getFetchableLoader(id) !== undefined;
105
+ }
106
+ /**
107
+ * Get all registered loader IDs (for debugging)
108
+ */
109
+ export function getRegisteredLoaderIds() {
110
+ return Array.from(loaderRegistry.keys());
111
+ }
112
+ /**
113
+ * Register a loader by its $$id (injected by Vite plugin)
114
+ * This is called during module loading to cache loaders
115
+ */
116
+ export function registerLoaderById(loader) {
117
+ if (!loader.$$id) {
118
+ return;
119
+ }
120
+ // For fetchable loaders, fn is stored in the fetchable registry by $$id.
121
+ // Always re-check the fetchable registry so HMR picks up the new function.
122
+ const fetchable = getFetchableLoader(loader.$$id);
123
+ if (fetchable) {
124
+ loaderRegistry.set(loader.$$id, fetchable);
125
+ return;
126
+ }
127
+ // Fall back to using fn from the loader object (non-fetchable loaders)
128
+ if (loader.fn) {
129
+ loaderRegistry.set(loader.$$id, { fn: loader.fn, middleware: [] });
130
+ }
131
+ }
132
+ //# sourceMappingURL=loader-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"loader-registry.js","sourceRoot":"","sources":["../../src/server/loader-registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,226 @@
1
+ /**
2
+ * Request Context - AsyncLocalStorage for passing request-scoped data throughout rendering
3
+ *
4
+ * This is the unified context used everywhere:
5
+ * - Middleware execution
6
+ * - Route handlers and loaders
7
+ * - Server components during rendering
8
+ * - Error boundaries and streaming
9
+ *
10
+ * Available via getRequestContext() anywhere in the request lifecycle.
11
+ */
12
+ import type { CookieOptions } from "../router/middleware.js";
13
+ import type { LoaderDefinition } from "../types.js";
14
+ import type { Handle } from "../handle.js";
15
+ import { type HandleStore } from "./handle-store.js";
16
+ import type { SegmentCacheStore } from "../cache/types.js";
17
+ import type { Theme, ResolvedThemeConfig } from "../theme/types.js";
18
+ /**
19
+ * Unified request context available via getRequestContext()
20
+ *
21
+ * This is the same context passed to middleware and handlers.
22
+ * Use this when you need access to request data outside of route handlers.
23
+ */
24
+ export interface RequestContext<TEnv = unknown, TParams = Record<string, string>> {
25
+ /** Platform bindings (Cloudflare env, etc.) */
26
+ env: TEnv;
27
+ /** Original HTTP request */
28
+ request: Request;
29
+ /** Parsed URL (system params like _rsc* are NOT filtered here) */
30
+ url: URL;
31
+ /** URL pathname */
32
+ pathname: string;
33
+ /** URL search params (system params like _rsc* are NOT filtered here) */
34
+ searchParams: URLSearchParams;
35
+ /** Variables set by middleware (same as ctx.var) */
36
+ var: Record<string, any>;
37
+ /** Get a variable set by middleware */
38
+ get: <K extends string>(key: K) => any;
39
+ /** Set a variable (shared with middleware and handlers) */
40
+ set: <K extends string>(key: K, value: any) => void;
41
+ /**
42
+ * Route params (populated after route matching)
43
+ * Initially empty, then set to matched params
44
+ */
45
+ params: TParams;
46
+ /**
47
+ * Stub response for setting headers/cookies
48
+ * Headers set here are merged into the final response
49
+ */
50
+ res: Response;
51
+ /** Get a cookie value from the request */
52
+ cookie(name: string): string | undefined;
53
+ /** Get all cookies from the request */
54
+ cookies(): Record<string, string>;
55
+ /** Set a cookie on the response */
56
+ setCookie(name: string, value: string, options?: CookieOptions): void;
57
+ /** Delete a cookie */
58
+ deleteCookie(name: string, options?: Pick<CookieOptions, "domain" | "path">): void;
59
+ /** Set a response header */
60
+ header(name: string, value: string): void;
61
+ /**
62
+ * Access loader data or push handle data.
63
+ *
64
+ * For loaders: Returns a promise that resolves to the loader data.
65
+ * Loaders are executed in parallel and memoized per request.
66
+ *
67
+ * For handles: Returns a push function to add data for this segment.
68
+ * Handle data accumulates across all matched route segments.
69
+ *
70
+ * @example
71
+ * ```typescript
72
+ * // Loader usage
73
+ * const cart = await ctx.use(CartLoader);
74
+ *
75
+ * // Handle usage
76
+ * const push = ctx.use(Breadcrumbs);
77
+ * push({ label: "Shop", href: "/shop" });
78
+ * ```
79
+ */
80
+ use: {
81
+ <T, TLoaderParams = any>(loader: LoaderDefinition<T, TLoaderParams>): Promise<T>;
82
+ <TData, TAccumulated = TData[]>(handle: Handle<TData, TAccumulated>): (data: TData | Promise<TData> | (() => Promise<TData>)) => void;
83
+ };
84
+ /** HTTP method (GET, POST, PUT, PATCH, DELETE, etc.) */
85
+ method: string;
86
+ /** @internal Handle store for tracking handle data across segments */
87
+ _handleStore: HandleStore;
88
+ /** @internal Cache store for segment caching (optional, used by CacheScope) */
89
+ _cacheStore?: SegmentCacheStore;
90
+ /**
91
+ * Schedule work to run after the response is sent.
92
+ * On Cloudflare Workers, uses ctx.waitUntil().
93
+ * On Node.js, runs as fire-and-forget.
94
+ *
95
+ * @example
96
+ * ```typescript
97
+ * ctx.waitUntil(async () => {
98
+ * await cacheStore.set(key, data, ttl);
99
+ * });
100
+ * ```
101
+ */
102
+ waitUntil(fn: () => Promise<void>): void;
103
+ /**
104
+ * Register a callback to run when the response is created.
105
+ * Callbacks are sync and receive the response. They can:
106
+ * - Inspect response status/headers
107
+ * - Return a modified response
108
+ * - Schedule async work via waitUntil
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * ctx.onResponse((res) => {
113
+ * if (res.status === 200) {
114
+ * ctx.waitUntil(async () => await cacheIt());
115
+ * }
116
+ * return res;
117
+ * });
118
+ * ```
119
+ */
120
+ onResponse(callback: (response: Response) => Response): void;
121
+ /** @internal Registered onResponse callbacks */
122
+ _onResponseCallbacks: Array<(response: Response) => Response>;
123
+ /**
124
+ * Current theme setting (only available when theme is enabled in router config)
125
+ *
126
+ * Returns the theme value from the cookie, or the default theme if not set.
127
+ * This is the user's preference ("light", "dark", or "system"), not the resolved value.
128
+ *
129
+ * @example
130
+ * ```typescript
131
+ * route("settings", (ctx) => {
132
+ * const currentTheme = ctx.theme; // "light" | "dark" | "system" | undefined
133
+ * return <SettingsPage theme={currentTheme} />;
134
+ * });
135
+ * ```
136
+ */
137
+ theme?: Theme;
138
+ /**
139
+ * Set the theme (only available when theme is enabled in router config)
140
+ *
141
+ * Sets a cookie with the new theme value. The change takes effect on the next request.
142
+ *
143
+ * @example
144
+ * ```typescript
145
+ * route("settings", (ctx) => {
146
+ * if (ctx.method === "POST") {
147
+ * const formData = await ctx.request.formData();
148
+ * const newTheme = formData.get("theme") as Theme;
149
+ * ctx.setTheme(newTheme);
150
+ * }
151
+ * return <SettingsPage />;
152
+ * });
153
+ * ```
154
+ */
155
+ setTheme?: (theme: Theme) => void;
156
+ /** @internal Theme configuration (null if theme not enabled) */
157
+ _themeConfig?: ResolvedThemeConfig | null;
158
+ }
159
+ /**
160
+ * Run a function within a request context
161
+ * Used by the RSC handler to provide context to server actions
162
+ */
163
+ export declare function runWithRequestContext<TEnv, T>(context: RequestContext<TEnv>, fn: () => T): T;
164
+ /**
165
+ * Get the current request context
166
+ * Returns undefined if not running within a request context
167
+ */
168
+ export declare function getRequestContext<TEnv = unknown>(): RequestContext<TEnv> | undefined;
169
+ /**
170
+ * Update params on the current request context
171
+ * Called after route matching to populate route params
172
+ */
173
+ export declare function setRequestContextParams(params: Record<string, string>): void;
174
+ /**
175
+ * Get the current request context, throwing if not available
176
+ * Use this when context is required (e.g., in loader actions)
177
+ */
178
+ export declare function requireRequestContext<TEnv = unknown>(): RequestContext<TEnv>;
179
+ /**
180
+ * Cloudflare Workers ExecutionContext (subset we need)
181
+ */
182
+ export interface ExecutionContext {
183
+ waitUntil(promise: Promise<any>): void;
184
+ passThroughOnException(): void;
185
+ }
186
+ /**
187
+ * Options for creating a request context
188
+ */
189
+ export interface CreateRequestContextOptions<TEnv> {
190
+ env: TEnv;
191
+ request: Request;
192
+ url: URL;
193
+ variables: Record<string, any>;
194
+ /** Optional cache store for segment caching (used by CacheScope) */
195
+ cacheStore?: SegmentCacheStore;
196
+ /** Optional Cloudflare execution context for waitUntil support */
197
+ executionContext?: ExecutionContext;
198
+ /** Optional theme configuration (enables ctx.theme and ctx.setTheme) */
199
+ themeConfig?: ResolvedThemeConfig | null;
200
+ }
201
+ /**
202
+ * Create a full request context with all methods implemented
203
+ *
204
+ * This is used by the RSC handler to create the unified context that's:
205
+ * - Available via getRequestContext() throughout the request
206
+ * - Passed to middleware as ctx
207
+ * - Passed to handlers as ctx
208
+ */
209
+ export declare function createRequestContext<TEnv>(options: CreateRequestContextOptions<TEnv>): RequestContext<TEnv>;
210
+ /**
211
+ * Options for creating the use() function
212
+ */
213
+ export interface CreateUseFunctionOptions<TEnv> {
214
+ handleStore: HandleStore;
215
+ loaderPromises: Map<string, Promise<any>>;
216
+ getContext: () => RequestContext<TEnv>;
217
+ }
218
+ /**
219
+ * Create the use() function for loader and handle composition.
220
+ *
221
+ * This is the unified implementation used by both RequestContext and HandlerContext.
222
+ * - For loaders: executes and memoizes loader functions
223
+ * - For handles: returns a push function to add handle data
224
+ */
225
+ export declare function createUseFunction<TEnv>(options: CreateUseFunctionOptions<TEnv>): RequestContext["use"];
226
+ //# sourceMappingURL=request-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"request-context.d.ts","sourceRoot":"","sources":["../../src/server/request-context.ts"],"names":[],"mappings":"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"}