@rangojs/router 0.0.0-experimental.2 → 0.0.0-experimental.20dbba0c

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 (1145) hide show
  1. package/AGENTS.md +9 -0
  2. package/README.md +972 -4
  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/{src/__mocks__/version.ts → dist/__mocks__/version.js} +1 -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 +1689 -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/{src/href-context.ts → dist/href-context.d.ts} +7 -11
  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 +5320 -834
  798. package/dist/vite/index.js.bak +5448 -0
  799. package/dist/vite/index.js.map +1 -0
  800. package/dist/vite/index.named-routes.gen.ts +103 -0
  801. package/dist/vite/package-resolution.d.ts +43 -0
  802. package/dist/vite/package-resolution.d.ts.map +1 -0
  803. package/dist/vite/package-resolution.js +112 -0
  804. package/dist/vite/package-resolution.js.map +1 -0
  805. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  806. package/dist/vite/virtual-entries.d.ts +25 -0
  807. package/dist/vite/virtual-entries.d.ts.map +1 -0
  808. package/{src/vite/virtual-entries.ts → dist/vite/virtual-entries.js} +18 -17
  809. package/dist/vite/virtual-entries.js.map +1 -0
  810. package/package.json +92 -55
  811. package/skills/breadcrumbs/SKILL.md +252 -0
  812. package/skills/cache-guide/SKILL.md +294 -0
  813. package/skills/caching/SKILL.md +173 -231
  814. package/skills/composability/SKILL.md +172 -0
  815. package/skills/debug-manifest/SKILL.md +112 -0
  816. package/skills/document-cache/SKILL.md +88 -58
  817. package/skills/fonts/SKILL.md +167 -0
  818. package/skills/handler-use/SKILL.md +362 -0
  819. package/skills/hooks/SKILL.md +420 -67
  820. package/skills/host-router/SKILL.md +218 -0
  821. package/skills/intercept/SKILL.md +243 -202
  822. package/skills/layout/SKILL.md +262 -146
  823. package/skills/links/SKILL.md +313 -0
  824. package/skills/loader/SKILL.md +525 -251
  825. package/skills/middleware/SKILL.md +248 -320
  826. package/skills/migrate-nextjs/SKILL.md +560 -0
  827. package/skills/migrate-react-router/SKILL.md +765 -0
  828. package/skills/mime-routes/SKILL.md +128 -0
  829. package/skills/parallel/SKILL.md +393 -158
  830. package/skills/prerender/SKILL.md +685 -0
  831. package/skills/rango/SKILL.md +120 -0
  832. package/skills/response-routes/SKILL.md +419 -0
  833. package/skills/route/SKILL.md +388 -89
  834. package/skills/router-setup/SKILL.md +388 -267
  835. package/skills/streams-and-websockets/SKILL.md +283 -0
  836. package/skills/tailwind/SKILL.md +129 -0
  837. package/skills/theme/SKILL.md +36 -11
  838. package/skills/typesafety/SKILL.md +456 -173
  839. package/skills/use-cache/SKILL.md +324 -0
  840. package/src/__internal.ts +273 -0
  841. package/src/bin/rango.ts +321 -0
  842. package/src/browser/action-coordinator.ts +97 -0
  843. package/src/browser/action-response-classifier.ts +99 -0
  844. package/src/browser/app-shell.ts +52 -0
  845. package/src/browser/app-version.ts +14 -0
  846. package/src/browser/event-controller.ts +92 -64
  847. package/src/browser/history-state.ts +80 -0
  848. package/src/browser/intercept-utils.ts +52 -0
  849. package/src/browser/link-interceptor.ts +24 -4
  850. package/src/browser/logging.ts +55 -0
  851. package/src/browser/merge-segment-loaders.ts +20 -12
  852. package/src/browser/navigation-bridge.ts +383 -557
  853. package/src/browser/navigation-client.ts +229 -68
  854. package/src/browser/navigation-store.ts +97 -55
  855. package/src/browser/navigation-transaction.ts +297 -0
  856. package/src/browser/network-error-handler.ts +61 -0
  857. package/src/browser/partial-update.ts +391 -304
  858. package/src/browser/prefetch/cache.ts +314 -0
  859. package/src/browser/prefetch/fetch.ts +282 -0
  860. package/src/browser/prefetch/observer.ts +65 -0
  861. package/src/browser/prefetch/policy.ts +48 -0
  862. package/src/browser/prefetch/queue.ts +191 -0
  863. package/src/browser/prefetch/resource-ready.ts +77 -0
  864. package/src/browser/rango-state.ts +152 -0
  865. package/src/browser/react/Link.tsx +258 -74
  866. package/src/browser/react/NavigationProvider.tsx +219 -33
  867. package/src/browser/react/context.ts +11 -0
  868. package/src/browser/react/filter-segment-order.ts +11 -0
  869. package/src/browser/react/index.ts +12 -12
  870. package/src/browser/react/location-state-shared.ts +95 -53
  871. package/src/browser/react/location-state.ts +60 -15
  872. package/src/browser/react/mount-context.ts +37 -0
  873. package/src/browser/react/nonce-context.ts +23 -0
  874. package/src/browser/react/shallow-equal.ts +27 -0
  875. package/src/browser/react/use-action.ts +29 -51
  876. package/src/browser/react/use-client-cache.ts +5 -3
  877. package/src/browser/react/use-handle.ts +30 -95
  878. package/src/browser/react/use-href.tsx +20 -188
  879. package/src/browser/react/use-link-status.ts +6 -5
  880. package/src/browser/react/use-mount.ts +31 -0
  881. package/src/browser/react/use-navigation.ts +49 -80
  882. package/src/browser/react/use-params.ts +75 -0
  883. package/src/browser/react/use-pathname.ts +47 -0
  884. package/src/browser/react/use-router.ts +83 -0
  885. package/src/browser/react/use-search-params.ts +56 -0
  886. package/src/browser/react/use-segments.ts +80 -97
  887. package/src/browser/response-adapter.ts +73 -0
  888. package/src/browser/rsc-router.tsx +251 -70
  889. package/src/browser/scroll-restoration.ts +127 -52
  890. package/src/browser/segment-reconciler.ts +243 -0
  891. package/src/browser/segment-structure-assert.ts +83 -0
  892. package/src/browser/server-action-bridge.ts +510 -588
  893. package/src/browser/shallow.ts +6 -1
  894. package/src/browser/types.ts +176 -58
  895. package/src/browser/validate-redirect-origin.ts +29 -0
  896. package/src/build/generate-manifest.ts +438 -0
  897. package/src/build/generate-route-types.ts +39 -0
  898. package/src/build/index.ts +35 -0
  899. package/src/build/route-trie.ts +291 -0
  900. package/src/build/route-types/ast-helpers.ts +25 -0
  901. package/src/build/route-types/ast-route-extraction.ts +98 -0
  902. package/src/build/route-types/codegen.ts +102 -0
  903. package/src/build/route-types/include-resolution.ts +418 -0
  904. package/src/build/route-types/param-extraction.ts +48 -0
  905. package/src/build/route-types/per-module-writer.ts +128 -0
  906. package/src/build/route-types/router-processing.ts +618 -0
  907. package/src/build/route-types/scan-filter.ts +85 -0
  908. package/src/build/runtime-discovery.ts +231 -0
  909. package/src/cache/background-task.ts +34 -0
  910. package/src/cache/cache-key-utils.ts +44 -0
  911. package/src/cache/cache-policy.ts +125 -0
  912. package/src/cache/cache-runtime.ts +342 -0
  913. package/src/cache/cache-scope.ts +167 -309
  914. package/src/cache/cf/cf-cache-store.ts +573 -21
  915. package/src/cache/cf/index.ts +13 -3
  916. package/src/cache/document-cache.ts +116 -77
  917. package/src/cache/handle-capture.ts +81 -0
  918. package/src/cache/handle-snapshot.ts +41 -0
  919. package/src/cache/index.ts +1 -15
  920. package/src/cache/memory-segment-store.ts +191 -13
  921. package/src/cache/profile-registry.ts +73 -0
  922. package/src/cache/read-through-swr.ts +134 -0
  923. package/src/cache/segment-codec.ts +256 -0
  924. package/src/cache/taint.ts +153 -0
  925. package/src/cache/types.ts +76 -121
  926. package/src/client.rsc.tsx +12 -15
  927. package/src/client.tsx +142 -308
  928. package/src/component-utils.ts +4 -4
  929. package/src/components/DefaultDocument.tsx +6 -2
  930. package/src/context-var.ts +156 -0
  931. package/src/debug.ts +243 -0
  932. package/src/errors.ts +108 -2
  933. package/src/handle.ts +74 -19
  934. package/src/handles/MetaTags.tsx +76 -23
  935. package/src/handles/breadcrumbs.ts +66 -0
  936. package/src/handles/index.ts +1 -0
  937. package/src/handles/meta.ts +32 -15
  938. package/src/host/cookie-handler.ts +165 -0
  939. package/src/host/errors.ts +97 -0
  940. package/src/host/index.ts +53 -0
  941. package/src/host/pattern-matcher.ts +214 -0
  942. package/src/host/router.ts +352 -0
  943. package/src/host/testing.ts +79 -0
  944. package/src/host/types.ts +146 -0
  945. package/src/host/utils.ts +25 -0
  946. package/src/href-client.ts +141 -47
  947. package/src/index.rsc.ts +187 -28
  948. package/src/index.ts +271 -38
  949. package/src/internal-debug.ts +11 -0
  950. package/src/loader.rsc.ts +27 -142
  951. package/src/loader.ts +27 -10
  952. package/src/network-error-thrower.tsx +3 -1
  953. package/src/outlet-context.ts +1 -1
  954. package/src/outlet-provider.tsx +45 -0
  955. package/src/prerender/param-hash.ts +37 -0
  956. package/src/prerender/store.ts +186 -0
  957. package/src/prerender.ts +524 -0
  958. package/src/response-utils.ts +28 -0
  959. package/src/reverse.ts +355 -0
  960. package/src/root-error-boundary.tsx +41 -29
  961. package/src/route-content-wrapper.tsx +9 -11
  962. package/src/route-definition/dsl-helpers.ts +1134 -0
  963. package/src/route-definition/helper-factories.ts +200 -0
  964. package/src/route-definition/helpers-types.ts +478 -0
  965. package/src/route-definition/index.ts +55 -0
  966. package/src/route-definition/redirect.ts +101 -0
  967. package/src/route-definition/resolve-handler-use.ts +155 -0
  968. package/src/route-definition.ts +1 -1371
  969. package/src/route-map-builder.ts +247 -112
  970. package/src/route-name.ts +53 -0
  971. package/src/route-types.ts +88 -9
  972. package/src/router/content-negotiation.ts +215 -0
  973. package/src/router/debug-manifest.ts +72 -0
  974. package/src/router/error-handling.ts +9 -9
  975. package/src/router/find-match.ts +160 -0
  976. package/src/router/handler-context.ts +457 -88
  977. package/src/router/intercept-resolution.ts +402 -0
  978. package/src/router/lazy-includes.ts +237 -0
  979. package/src/router/loader-resolution.ts +360 -128
  980. package/src/router/logging.ts +251 -0
  981. package/src/router/manifest.ts +187 -43
  982. package/src/router/match-api.ts +555 -0
  983. package/src/router/match-context.ts +6 -4
  984. package/src/router/match-handlers.ts +440 -0
  985. package/src/router/match-middleware/background-revalidation.ts +108 -93
  986. package/src/router/match-middleware/cache-lookup.ts +460 -10
  987. package/src/router/match-middleware/cache-store.ts +98 -26
  988. package/src/router/match-middleware/intercept-resolution.ts +57 -17
  989. package/src/router/match-middleware/segment-resolution.ts +80 -6
  990. package/src/router/match-pipelines.ts +10 -45
  991. package/src/router/match-result.ts +135 -36
  992. package/src/router/metrics.ts +240 -15
  993. package/src/router/middleware-cookies.ts +55 -0
  994. package/src/router/middleware-types.ts +200 -0
  995. package/src/router/middleware.ts +359 -333
  996. package/src/router/navigation-snapshot.ts +182 -0
  997. package/src/router/pattern-matching.ts +375 -33
  998. package/src/router/prerender-match.ts +502 -0
  999. package/src/router/preview-match.ts +98 -0
  1000. package/src/router/request-classification.ts +310 -0
  1001. package/src/router/revalidation.ts +137 -38
  1002. package/src/router/route-snapshot.ts +245 -0
  1003. package/src/router/router-context.ts +45 -23
  1004. package/src/router/router-interfaces.ts +484 -0
  1005. package/src/router/router-options.ts +618 -0
  1006. package/src/router/router-registry.ts +24 -0
  1007. package/src/router/segment-resolution/fresh.ts +748 -0
  1008. package/src/router/segment-resolution/helpers.ts +268 -0
  1009. package/src/router/segment-resolution/loader-cache.ts +199 -0
  1010. package/src/router/segment-resolution/revalidation.ts +1379 -0
  1011. package/src/router/segment-resolution/static-store.ts +67 -0
  1012. package/src/router/segment-resolution.ts +21 -0
  1013. package/src/router/segment-wrappers.ts +291 -0
  1014. package/src/router/telemetry-otel.ts +299 -0
  1015. package/src/router/telemetry.ts +300 -0
  1016. package/src/router/timeout.ts +148 -0
  1017. package/src/router/trie-matching.ts +245 -0
  1018. package/src/router/types.ts +79 -4
  1019. package/src/router/url-params.ts +49 -0
  1020. package/src/router.ts +750 -3572
  1021. package/src/rsc/handler-context.ts +45 -0
  1022. package/src/rsc/handler.ts +934 -801
  1023. package/src/rsc/helpers.ts +181 -19
  1024. package/src/rsc/index.ts +5 -25
  1025. package/src/rsc/loader-fetch.ts +229 -0
  1026. package/src/rsc/manifest-init.ts +90 -0
  1027. package/src/rsc/nonce.ts +14 -0
  1028. package/src/rsc/origin-guard.ts +141 -0
  1029. package/src/rsc/progressive-enhancement.ts +393 -0
  1030. package/src/rsc/response-error.ts +37 -0
  1031. package/src/rsc/response-route-handler.ts +360 -0
  1032. package/src/rsc/rsc-rendering.ts +253 -0
  1033. package/src/rsc/runtime-warnings.ts +42 -0
  1034. package/src/rsc/server-action.ts +358 -0
  1035. package/src/rsc/ssr-setup.ts +128 -0
  1036. package/src/rsc/types.ts +48 -14
  1037. package/src/search-params.ts +230 -0
  1038. package/src/segment-content-promise.ts +67 -0
  1039. package/src/segment-loader-promise.ts +122 -0
  1040. package/src/segment-system.tsx +165 -81
  1041. package/src/server/context.ts +384 -61
  1042. package/src/server/cookie-store.ts +190 -0
  1043. package/src/server/fetchable-loader-store.ts +37 -0
  1044. package/src/server/handle-store.ts +117 -20
  1045. package/src/server/loader-registry.ts +24 -64
  1046. package/src/server/request-context.ts +603 -109
  1047. package/src/server.ts +36 -131
  1048. package/src/ssr/index.tsx +160 -25
  1049. package/src/static-handler.ts +126 -0
  1050. package/src/theme/ThemeProvider.tsx +21 -15
  1051. package/src/theme/ThemeScript.tsx +5 -5
  1052. package/src/theme/constants.ts +11 -4
  1053. package/src/theme/index.ts +4 -14
  1054. package/src/theme/theme-context.ts +5 -31
  1055. package/src/theme/theme-script.ts +21 -18
  1056. package/src/theme/types.ts +1 -1
  1057. package/src/types/boundaries.ts +158 -0
  1058. package/src/types/cache-types.ts +198 -0
  1059. package/src/types/error-types.ts +192 -0
  1060. package/src/types/global-namespace.ts +100 -0
  1061. package/src/types/handler-context.ts +759 -0
  1062. package/src/types/index.ts +88 -0
  1063. package/src/types/loader-types.ts +209 -0
  1064. package/src/types/request-scope.ts +126 -0
  1065. package/src/types/route-config.ts +170 -0
  1066. package/src/types/route-entry.ts +120 -0
  1067. package/src/types/segments.ts +150 -0
  1068. package/src/types.ts +1 -1561
  1069. package/src/urls/include-helper.ts +207 -0
  1070. package/src/urls/index.ts +53 -0
  1071. package/src/urls/path-helper-types.ts +372 -0
  1072. package/src/urls/path-helper.ts +364 -0
  1073. package/src/urls/pattern-types.ts +107 -0
  1074. package/src/urls/response-types.ts +108 -0
  1075. package/src/urls/type-extraction.ts +372 -0
  1076. package/src/urls/urls-function.ts +98 -0
  1077. package/src/urls.ts +1 -726
  1078. package/src/use-loader.tsx +161 -81
  1079. package/src/vite/discovery/bundle-postprocess.ts +181 -0
  1080. package/src/vite/discovery/discover-routers.ts +348 -0
  1081. package/src/vite/discovery/prerender-collection.ts +439 -0
  1082. package/src/vite/discovery/route-types-writer.ts +258 -0
  1083. package/src/vite/discovery/self-gen-tracking.ts +47 -0
  1084. package/src/vite/discovery/state.ts +117 -0
  1085. package/src/vite/discovery/virtual-module-codegen.ts +203 -0
  1086. package/src/vite/index.ts +18 -785
  1087. package/src/vite/plugin-types.ts +103 -0
  1088. package/src/vite/plugins/cjs-to-esm.ts +93 -0
  1089. package/src/vite/plugins/client-ref-dedup.ts +115 -0
  1090. package/src/vite/plugins/client-ref-hashing.ts +105 -0
  1091. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  1092. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1093. package/src/vite/plugins/cloudflare-protocol-stub.ts +214 -0
  1094. package/src/vite/{expose-action-id.ts → plugins/expose-action-id.ts} +72 -53
  1095. package/src/vite/plugins/expose-id-utils.ts +299 -0
  1096. package/src/vite/plugins/expose-ids/export-analysis.ts +296 -0
  1097. package/src/vite/plugins/expose-ids/handler-transform.ts +209 -0
  1098. package/src/vite/plugins/expose-ids/loader-transform.ts +74 -0
  1099. package/src/vite/plugins/expose-ids/router-transform.ts +110 -0
  1100. package/src/vite/plugins/expose-ids/types.ts +45 -0
  1101. package/src/vite/plugins/expose-internal-ids.ts +786 -0
  1102. package/src/vite/plugins/performance-tracks.ts +88 -0
  1103. package/src/vite/plugins/refresh-cmd.ts +127 -0
  1104. package/src/vite/plugins/use-cache-transform.ts +323 -0
  1105. package/src/vite/plugins/version-injector.ts +83 -0
  1106. package/src/vite/plugins/version-plugin.ts +266 -0
  1107. package/src/vite/plugins/virtual-entries.ts +123 -0
  1108. package/src/vite/plugins/virtual-stub-plugin.ts +29 -0
  1109. package/src/vite/rango.ts +483 -0
  1110. package/src/vite/router-discovery.ts +977 -0
  1111. package/src/vite/utils/ast-handler-extract.ts +517 -0
  1112. package/src/vite/utils/banner.ts +36 -0
  1113. package/src/vite/utils/bundle-analysis.ts +137 -0
  1114. package/src/vite/utils/manifest-utils.ts +70 -0
  1115. package/src/vite/{package-resolution.ts → utils/package-resolution.ts} +58 -29
  1116. package/src/vite/utils/prerender-utils.ts +221 -0
  1117. package/src/vite/utils/shared-utils.ts +170 -0
  1118. package/CLAUDE.md +0 -7
  1119. package/src/__tests__/component-utils.test.ts +0 -76
  1120. package/src/__tests__/route-definition.test.ts +0 -63
  1121. package/src/__tests__/urls.test.tsx +0 -436
  1122. package/src/browser/lru-cache.ts +0 -69
  1123. package/src/browser/request-controller.ts +0 -164
  1124. package/src/cache/__tests__/document-cache.test.ts +0 -522
  1125. package/src/cache/__tests__/memory-segment-store.test.ts +0 -487
  1126. package/src/cache/__tests__/memory-store.test.ts +0 -484
  1127. package/src/cache/cf/__tests__/cf-cache-store.test.ts +0 -428
  1128. package/src/cache/memory-store.ts +0 -253
  1129. package/src/href.ts +0 -177
  1130. package/src/route-utils.ts +0 -89
  1131. package/src/router/__tests__/match-context.test.ts +0 -104
  1132. package/src/router/__tests__/match-pipelines.test.ts +0 -537
  1133. package/src/router/__tests__/match-result.test.ts +0 -566
  1134. package/src/router/__tests__/on-error.test.ts +0 -935
  1135. package/src/router/__tests__/pattern-matching.test.ts +0 -577
  1136. package/src/router/middleware.test.ts +0 -1355
  1137. package/src/rsc/__tests__/helpers.test.ts +0 -175
  1138. package/src/server/__tests__/request-context.test.ts +0 -171
  1139. package/src/ssr/__tests__/ssr-handler.test.tsx +0 -188
  1140. package/src/theme/__tests__/theme.test.ts +0 -120
  1141. package/src/vite/__tests__/expose-loader-id.test.ts +0 -117
  1142. package/src/vite/expose-handle-id.ts +0 -209
  1143. package/src/vite/expose-loader-id.ts +0 -357
  1144. package/src/vite/expose-location-state-id.ts +0 -177
  1145. /package/src/vite/{version.d.ts → plugins/version.d.ts} +0 -0
@@ -0,0 +1,294 @@
1
+ ---
2
+ name: cache-guide
3
+ description: When to use cache() DSL vs "use cache" directive — key differences and decision guide
4
+ argument-hint:
5
+ ---
6
+
7
+ # cache() vs "use cache" — When to Use Which
8
+
9
+ Both mechanisms share the same backing store, cache profiles, and tag-based
10
+ invalidation. They differ in scope, cache key, execution model, and runtime control.
11
+
12
+ ## Key Differences
13
+
14
+ | | `cache()` DSL | `"use cache"` directive |
15
+ | -------------------- | ----------------------------------------------------- | -------------------------------------------------- |
16
+ | **Scope** | Route segment tree (handler + children + parallels) | Single function return value |
17
+ | **Defined at** | Route definition site (`urls.ts`) | Inside function body or at file top |
18
+ | **Cache key** | Request type + pathname + params (+ optional custom) | Function identity + serialized non-tainted args |
19
+ | **Execution on hit** | All-or-nothing: entire handler skipped | Partial: function body skipped, calling code runs |
20
+ | **Runtime control** | `condition` to disable, custom `key` function | None — if the directive is present, it caches |
21
+ | **Side effects** | No guards needed — handler doesn't run on hit | `ctx.header()`, `ctx.set()`, etc. throw at runtime |
22
+ | **Handle data** | Captured and replayed | Captured and replayed |
23
+ | **Loaders** | Always fresh — excluded from cache, opt-in per loader | Can be used inside loaders |
24
+ | **Nesting** | Nest `cache()` boundaries with different TTLs | Compose by calling cached functions from uncached |
25
+
26
+ ### cache() Cache Key
27
+
28
+ The key is `{requestType}:{pathname}:{params}` where requestType is one of
29
+ `doc:`, `partial:`, or `intercept:`. This means the same URL cached separately
30
+ for full document loads, client navigations, and intercept navigations.
31
+
32
+ Custom `key` functions can segment the cache further (e.g., by user role or locale).
33
+ `condition` can disable caching entirely at runtime (e.g., skip for authenticated users).
34
+
35
+ ### "use cache" Cache Key
36
+
37
+ The key is `use-cache:{functionId}:{serializedArgs}` where functionId is a stable
38
+ ID from the Vite transform (module path + export name) and args are serialized via
39
+ RSC `encodeReply()`. Tainted arguments (ctx, env, req) are excluded.
40
+
41
+ ## Execution Model
42
+
43
+ This is the most important distinction.
44
+
45
+ ### cache() — all-or-nothing
46
+
47
+ On cache hit, the cache-lookup middleware short-circuits the entire pipeline.
48
+ No handler code runs. On miss, all handlers execute normally and segments are
49
+ stored.
50
+
51
+ ```
52
+ HIT → cached segments served, loaders resolved fresh, no handler runs
53
+ MISS → all handlers run, segments cached, response built normally
54
+ ```
55
+
56
+ Headers, cookies, and ctx.set() calls inside handlers naturally don't execute on
57
+ hit. There is no partial execution, so no runtime guards are needed.
58
+
59
+ ### "use cache" — partial execution
60
+
61
+ Only the wrapped function body is skipped on hit. The code that calls the
62
+ cached function still runs. This means ctx side effects inside the cached body
63
+ would silently disappear on hit.
64
+
65
+ ```
66
+ HIT → function body skipped, calling code runs, handle data replayed
67
+ MISS → function body runs, return value + handle data cached
68
+ ```
69
+
70
+ Runtime guards throw if you call cookies(), headers(), ctx.header(), ctx.set(),
71
+ ctx.onResponse(), ctx.setTheme(), or ctx.setLocationState() inside a "use cache"
72
+ function. cookies() and headers() are blocked because per-request data is not in the
73
+ cache key. Side-effect methods are blocked because their effects are lost on hit.
74
+ Use ctx.use(Handle) instead for data — handle data is captured and replayed.
75
+
76
+ ## When to Use cache()
77
+
78
+ Use the route-level `cache()` DSL when:
79
+
80
+ - **Caching entire routes or sections** — wrap a set of paths with one TTL.
81
+ - **You need runtime control** — disable caching for authenticated users with
82
+ `condition`, or segment cache keys by user/locale with `key`.
83
+ - **UI rendering is expensive** — the cached segments include the rendered
84
+ component tree, skipping RSC rendering on hit.
85
+ - **You want one cache entry per URL** — keyed on pathname + params, not on
86
+ function arguments.
87
+
88
+ ```typescript
89
+ export const urlpatterns = urls(({ path, cache }) => [
90
+ cache({ ttl: 300, condition: (ctx) => !ctx.get("user") }, () => [
91
+ path("/blog", BlogIndex, { name: "blog" }),
92
+ path("/blog/:slug", BlogPost, { name: "blogPost" }),
93
+ ]),
94
+ ]);
95
+ ```
96
+
97
+ ## When to Use "use cache"
98
+
99
+ Use the `"use cache"` directive when:
100
+
101
+ - **Caching a specific data fetch** — one database query used across multiple
102
+ routes or components.
103
+ - **Different call sites need different cache entries** — the cache key includes
104
+ all non-tainted arguments, so `getProduct("a")` and `getProduct("b")` cache
105
+ separately.
106
+ - **Fine-grained caching within a handler** — cache the expensive part, keep
107
+ ctx side effects outside.
108
+ - **Caching an RSC component** — a component that fetches its own data can cache
109
+ its entire render.
110
+
111
+ ```typescript
112
+ async function getProductData(slug: string) {
113
+ "use cache: short";
114
+ return await db.query("SELECT * FROM products WHERE slug = ?", [slug]);
115
+ }
116
+
117
+ // Handler calls cached function, sets headers outside
118
+ async function ProductPage(ctx) {
119
+ const data = await getProductData(ctx.params.slug);
120
+ ctx.header("X-Product", data.id);
121
+ return <Product data={data} />;
122
+ }
123
+ ```
124
+
125
+ ## Combining Both
126
+
127
+ They compose naturally. Use `cache()` for the route boundary and `"use cache"`
128
+ for shared data functions:
129
+
130
+ ```typescript
131
+ // urls.tsx — route-level cache for the rendered segment tree
132
+ cache({ ttl: 60 }, () => [
133
+ path("/product/:slug", ProductPage, { name: "product" }),
134
+ ]);
135
+
136
+ // data.ts — function-level cache for the database query
137
+ export async function getProductData(slug: string) {
138
+ "use cache: long";
139
+ return await db.query("SELECT * FROM products WHERE slug = ?", [slug]);
140
+ }
141
+ ```
142
+
143
+ On cache hit for the route, the handler doesn't run and `getProductData` is never
144
+ called. On cache miss, the handler runs and `getProductData` may itself return a
145
+ cached value from a previous call with the same slug.
146
+
147
+ ## Headers and Cookies
148
+
149
+ Neither mechanism caches response headers or cookies.
150
+
151
+ - **cache()**: Headers set by handlers are naturally absent on hit because no
152
+ handler runs. If you need headers on every response, set them in middleware
153
+ (which runs before cache lookup).
154
+ - **"use cache"**: cookies() and headers() throw inside the cached function
155
+ (both reads and writes). ctx.header() also throws. Move them outside.
156
+
157
+ ```typescript
158
+ // Set headers that must appear on every response in middleware
159
+ middleware(async (ctx, next) => {
160
+ ctx.header("X-Frame-Options", "DENY");
161
+ await next();
162
+ });
163
+ ```
164
+
165
+ ## Context Variable Cache Safety
166
+
167
+ Context variables created with `createVar()` are cacheable by default and can
168
+ be read freely inside `cache()` and `"use cache"` scopes. Non-cacheable vars
169
+ throw at read time to prevent request-specific data from being captured.
170
+
171
+ There are two ways to mark a value as non-cacheable:
172
+
173
+ ```typescript
174
+ // Var-level policy — inherently request-specific data
175
+ const Session = createVar<SessionData>({ cache: false });
176
+
177
+ // Write-level escalation — this specific write is non-cacheable
178
+ ctx.set(Theme, derivedTheme, { cache: false });
179
+ ```
180
+
181
+ "Least cacheable wins": if either the var definition or the `ctx.set()` call
182
+ specifies `cache: false`, the value is non-cacheable.
183
+
184
+ **Behavior inside cache scopes:**
185
+
186
+ | Operation | Inside `cache()` / `"use cache"` |
187
+ | ----------------------------------- | -------------------------------- |
188
+ | `ctx.get(cacheableVar)` | Allowed |
189
+ | `ctx.get(nonCacheableVar)` | Throws |
190
+ | `ctx.set(var, value)` (cacheable) | Allowed |
191
+ | `ctx.header()`, `ctx.cookie()`, etc | Throws (response side effects) |
192
+
193
+ Write is dumb — `ctx.set()` stores the cache metadata but does not enforce.
194
+ Enforcement happens at read time (`ctx.get()`), where ALS detects the cache
195
+ scope and rejects non-cacheable reads.
196
+
197
+ ## Loaders Are Always Fresh
198
+
199
+ Loaders are **never cached** by route-level `cache()`. Even on a full cache hit
200
+ where all UI segments are served from cache, loaders are re-resolved fresh on
201
+ every request. This is enforced at two levels:
202
+
203
+ 1. **Storage**: `cacheRoute()` filters out loader segments before serialization
204
+ (`segments.filter(s => s.type !== "loader")`).
205
+ 2. **Retrieval**: On cache hit, `resolveLoadersOnly()` runs after yielding cached
206
+ UI segments, ensuring fresh data regardless of cache state.
207
+
208
+ This means `cache()` gives you cached UI + fresh data by default. To also cache
209
+ a loader's data, explicitly opt in with `loader(Fn, () => [cache({...})])`.
210
+
211
+ ## cache() Placement Patterns
212
+
213
+ ### Wrapping children of a path
214
+
215
+ An orphan `cache()` inside a path's children becomes the parent for all
216
+ subsequent siblings. Everything below the cache boundary is cached as one unit:
217
+
218
+ ```typescript
219
+ path("/dashboard", DashboardPage, { name: "dashboard" }, () => [
220
+ cache("long"),
221
+ layout(DashboardSidebar, () => [
222
+ parallel("@stats", StatsPanel),
223
+ parallel("@activity", ActivityFeed),
224
+ ]),
225
+ ]),
226
+ ```
227
+
228
+ On hit: DashboardPage, DashboardSidebar, StatsPanel, and ActivityFeed are all
229
+ served from cache. On miss: all handlers run, all segments cached together.
230
+
231
+ ### Uncached layout with cached children
232
+
233
+ The cache boundary only covers what's inside it. Parent segments above the
234
+ boundary are not cached and always re-render:
235
+
236
+ ```typescript
237
+ layout(RootLayout, () => [
238
+ // RootLayout is NOT cached — runs every request
239
+ path("/products/:slug", ProductPage, { name: "product" }, () => [
240
+ cache("long"),
241
+ layout(ProductSidebar),
242
+ parallel("@reviews", ReviewsPanel),
243
+ parallel("@related", RelatedProducts),
244
+ ]),
245
+ ]),
246
+ ```
247
+
248
+ RootLayout renders fresh every request. ProductPage, ProductSidebar,
249
+ ReviewsPanel, and RelatedProducts are all inside the cache boundary and
250
+ served from cache on hit. This is useful when the root layout depends on
251
+ request-specific data (user session, theme) but the product content is
252
+ cacheable.
253
+
254
+ ### Loader-level caching
255
+
256
+ Loaders are excluded from route-level `cache()` by default — they always
257
+ resolve fresh. To opt a specific loader into caching, give it its own
258
+ `cache()` child:
259
+
260
+ ```typescript
261
+ path("/product/:slug", ProductPage, { name: "product" }, () => [
262
+ // This loader is cached for 5 minutes
263
+ loader(ProductLoader, () => [cache({ ttl: 300 })]),
264
+
265
+ // This loader is always fresh
266
+ loader(CartLoader),
267
+ ]),
268
+ ```
269
+
270
+ This attaches the cache config directly to the loader entry. The loader's
271
+ data is cached independently from the route's segment cache. Loader caching
272
+ supports custom keys, tags, SWR, conditional bypass, and per-loader store
273
+ overrides — see `/loader` for the full reference.
274
+
275
+ ## Decision Flowchart
276
+
277
+ 1. Do you want to cache an entire route or group of routes?
278
+ **Yes** -> `cache()`
279
+ 2. Do you need runtime conditions (skip for auth users, key by locale)?
280
+ **Yes** -> `cache()` with `condition` / `key`
281
+ 3. Do you want to cache a data fetch shared across routes?
282
+ **Yes** -> `"use cache"`
283
+ 4. Do you need different cache entries for different arguments?
284
+ **Yes** -> `"use cache"` (keyed by args)
285
+ 5. Is the expensive part rendering, not data fetching?
286
+ **Yes** -> `cache()` (caches rendered segments)
287
+ 6. Is the expensive part a single query inside a larger handler?
288
+ **Yes** -> `"use cache"` on the query function
289
+
290
+ ## See Also
291
+
292
+ - `/caching` — cache() DSL setup, stores, nested boundaries
293
+ - `/use-cache` — "use cache" directive details, profiles, transforms, guards
294
+ - `/document-cache` — Edge caching with Cache-Control headers (different layer)