@rangojs/router 0.0.0-experimental.2 → 0.0.0-experimental.21

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 (1118) hide show
  1. package/AGENTS.md +5 -0
  2. package/README.md +850 -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 +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/{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 +4630 -749
  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/{src/vite/virtual-entries.ts → dist/vite/virtual-entries.js} +18 -17
  807. package/dist/vite/virtual-entries.js.map +1 -0
  808. package/package.json +82 -46
  809. package/skills/cache-guide/SKILL.md +262 -0
  810. package/skills/caching/SKILL.md +139 -238
  811. package/skills/composability/SKILL.md +172 -0
  812. package/skills/debug-manifest/SKILL.md +112 -0
  813. package/skills/document-cache/SKILL.md +87 -57
  814. package/skills/fonts/SKILL.md +167 -0
  815. package/skills/hooks/SKILL.md +403 -60
  816. package/skills/intercept/SKILL.md +224 -203
  817. package/skills/layout/SKILL.md +243 -149
  818. package/skills/links/SKILL.md +239 -0
  819. package/skills/loader/SKILL.md +444 -253
  820. package/skills/middleware/SKILL.md +222 -325
  821. package/skills/mime-routes/SKILL.md +128 -0
  822. package/skills/parallel/SKILL.md +220 -170
  823. package/skills/prerender/SKILL.md +643 -0
  824. package/skills/rango/SKILL.md +119 -0
  825. package/skills/response-routes/SKILL.md +411 -0
  826. package/skills/route/SKILL.md +334 -89
  827. package/skills/router-setup/SKILL.md +305 -274
  828. package/skills/tailwind/SKILL.md +129 -0
  829. package/skills/testing/SKILL.md +226 -0
  830. package/skills/theme/SKILL.md +36 -11
  831. package/skills/typesafety/SKILL.md +437 -168
  832. package/skills/use-cache/SKILL.md +324 -0
  833. package/src/__internal.ts +181 -0
  834. package/src/bin/rango.ts +321 -0
  835. package/src/browser/action-coordinator.ts +97 -0
  836. package/src/browser/action-response-classifier.ts +99 -0
  837. package/src/browser/event-controller.ts +87 -64
  838. package/src/browser/history-state.ts +80 -0
  839. package/src/browser/intercept-utils.ts +52 -0
  840. package/src/browser/link-interceptor.ts +20 -4
  841. package/src/browser/logging.ts +55 -0
  842. package/src/browser/merge-segment-loaders.ts +20 -12
  843. package/src/browser/navigation-bridge.ts +217 -549
  844. package/src/browser/navigation-client.ts +74 -46
  845. package/src/browser/navigation-store.ts +33 -50
  846. package/src/browser/navigation-transaction.ts +295 -0
  847. package/src/browser/network-error-handler.ts +61 -0
  848. package/src/browser/partial-update.ts +288 -297
  849. package/src/browser/prefetch/cache.ts +67 -0
  850. package/src/browser/prefetch/fetch.ts +137 -0
  851. package/src/browser/prefetch/observer.ts +65 -0
  852. package/src/browser/prefetch/policy.ts +42 -0
  853. package/src/browser/prefetch/queue.ts +88 -0
  854. package/src/browser/rango-state.ts +112 -0
  855. package/src/browser/react/Link.tsx +173 -73
  856. package/src/browser/react/NavigationProvider.tsx +138 -27
  857. package/src/browser/react/context.ts +6 -0
  858. package/src/browser/react/filter-segment-order.ts +11 -0
  859. package/src/browser/react/index.ts +12 -12
  860. package/src/browser/react/location-state-shared.ts +95 -53
  861. package/src/browser/react/location-state.ts +60 -15
  862. package/src/browser/react/mount-context.ts +37 -0
  863. package/src/browser/react/nonce-context.ts +23 -0
  864. package/src/browser/react/shallow-equal.ts +27 -0
  865. package/src/browser/react/use-action.ts +29 -51
  866. package/src/browser/react/use-client-cache.ts +5 -3
  867. package/src/browser/react/use-handle.ts +49 -65
  868. package/src/browser/react/use-href.tsx +20 -188
  869. package/src/browser/react/use-link-status.ts +6 -5
  870. package/src/browser/react/use-mount.ts +31 -0
  871. package/src/browser/react/use-navigation.ts +27 -78
  872. package/src/browser/react/use-params.ts +65 -0
  873. package/src/browser/react/use-pathname.ts +47 -0
  874. package/src/browser/react/use-router.ts +63 -0
  875. package/src/browser/react/use-search-params.ts +56 -0
  876. package/src/browser/react/use-segments.ts +80 -97
  877. package/src/browser/response-adapter.ts +73 -0
  878. package/src/browser/rsc-router.tsx +104 -34
  879. package/src/browser/scroll-restoration.ts +92 -16
  880. package/src/browser/segment-reconciler.ts +216 -0
  881. package/src/browser/segment-structure-assert.ts +83 -0
  882. package/src/browser/server-action-bridge.ts +504 -584
  883. package/src/browser/shallow.ts +6 -1
  884. package/src/browser/types.ts +107 -57
  885. package/src/browser/validate-redirect-origin.ts +29 -0
  886. package/src/build/generate-manifest.ts +438 -0
  887. package/src/build/generate-route-types.ts +36 -0
  888. package/src/build/index.ts +35 -0
  889. package/src/build/route-trie.ts +249 -0
  890. package/src/build/route-types/ast-helpers.ts +25 -0
  891. package/src/build/route-types/ast-route-extraction.ts +98 -0
  892. package/src/build/route-types/codegen.ts +102 -0
  893. package/src/build/route-types/include-resolution.ts +411 -0
  894. package/src/build/route-types/param-extraction.ts +48 -0
  895. package/src/build/route-types/per-module-writer.ts +128 -0
  896. package/src/build/route-types/router-processing.ts +469 -0
  897. package/src/build/route-types/scan-filter.ts +78 -0
  898. package/src/build/runtime-discovery.ts +231 -0
  899. package/src/cache/background-task.ts +34 -0
  900. package/src/cache/cache-key-utils.ts +44 -0
  901. package/src/cache/cache-policy.ts +125 -0
  902. package/src/cache/cache-runtime.ts +338 -0
  903. package/src/cache/cache-scope.ts +120 -303
  904. package/src/cache/cf/cf-cache-store.ts +119 -7
  905. package/src/cache/cf/index.ts +8 -2
  906. package/src/cache/document-cache.ts +101 -72
  907. package/src/cache/handle-capture.ts +81 -0
  908. package/src/cache/handle-snapshot.ts +41 -0
  909. package/src/cache/index.ts +0 -15
  910. package/src/cache/memory-segment-store.ts +191 -13
  911. package/src/cache/profile-registry.ts +73 -0
  912. package/src/cache/read-through-swr.ts +134 -0
  913. package/src/cache/segment-codec.ts +256 -0
  914. package/src/cache/taint.ts +98 -0
  915. package/src/cache/types.ts +76 -121
  916. package/src/client.rsc.tsx +10 -14
  917. package/src/client.tsx +114 -89
  918. package/src/component-utils.ts +4 -4
  919. package/src/components/DefaultDocument.tsx +6 -2
  920. package/src/context-var.ts +86 -0
  921. package/src/debug.ts +243 -0
  922. package/src/errors.ts +108 -2
  923. package/src/handle.ts +34 -19
  924. package/src/handles/MetaTags.tsx +76 -23
  925. package/src/handles/meta.ts +32 -15
  926. package/src/host/cookie-handler.ts +165 -0
  927. package/src/host/errors.ts +97 -0
  928. package/src/host/index.ts +56 -0
  929. package/src/host/pattern-matcher.ts +214 -0
  930. package/src/host/router.ts +352 -0
  931. package/src/host/testing.ts +79 -0
  932. package/src/host/types.ts +146 -0
  933. package/src/host/utils.ts +25 -0
  934. package/src/href-client.ts +141 -47
  935. package/src/index.rsc.ts +209 -23
  936. package/src/index.ts +256 -32
  937. package/src/internal-debug.ts +11 -0
  938. package/src/loader.rsc.ts +27 -142
  939. package/src/loader.ts +27 -10
  940. package/src/network-error-thrower.tsx +3 -1
  941. package/src/outlet-provider.tsx +45 -0
  942. package/src/prerender/param-hash.ts +37 -0
  943. package/src/prerender/store.ts +185 -0
  944. package/src/prerender.ts +463 -0
  945. package/src/reverse.ts +330 -0
  946. package/src/root-error-boundary.tsx +41 -29
  947. package/src/route-content-wrapper.tsx +9 -11
  948. package/src/route-definition/dsl-helpers.ts +934 -0
  949. package/src/route-definition/helper-factories.ts +200 -0
  950. package/src/route-definition/helpers-types.ts +430 -0
  951. package/src/route-definition/index.ts +55 -0
  952. package/src/route-definition/redirect.ts +93 -0
  953. package/src/route-definition/route-function.ts +119 -0
  954. package/src/route-definition.ts +1 -1371
  955. package/src/route-map-builder.ts +241 -112
  956. package/src/route-name.ts +53 -0
  957. package/src/route-types.ts +70 -9
  958. package/src/router/content-negotiation.ts +116 -0
  959. package/src/router/debug-manifest.ts +72 -0
  960. package/src/router/error-handling.ts +9 -9
  961. package/src/router/find-match.ts +158 -0
  962. package/src/router/handler-context.ts +348 -82
  963. package/src/router/intercept-resolution.ts +395 -0
  964. package/src/router/lazy-includes.ts +234 -0
  965. package/src/router/loader-resolution.ts +215 -121
  966. package/src/router/logging.ts +248 -0
  967. package/src/router/manifest.ts +172 -43
  968. package/src/router/match-api.ts +620 -0
  969. package/src/router/match-context.ts +6 -4
  970. package/src/router/match-handlers.ts +440 -0
  971. package/src/router/match-middleware/background-revalidation.ts +80 -93
  972. package/src/router/match-middleware/cache-lookup.ts +382 -9
  973. package/src/router/match-middleware/cache-store.ts +51 -22
  974. package/src/router/match-middleware/intercept-resolution.ts +55 -17
  975. package/src/router/match-middleware/segment-resolution.ts +24 -6
  976. package/src/router/match-pipelines.ts +10 -45
  977. package/src/router/match-result.ts +34 -20
  978. package/src/router/metrics.ts +3 -3
  979. package/src/router/middleware-cookies.ts +55 -0
  980. package/src/router/middleware-types.ts +179 -0
  981. package/src/router/middleware.ts +239 -328
  982. package/src/router/pattern-matching.ts +302 -26
  983. package/src/router/prerender-match.ts +398 -0
  984. package/src/router/preview-match.ts +170 -0
  985. package/src/router/revalidation.ts +112 -33
  986. package/src/router/router-context.ts +40 -23
  987. package/src/router/router-interfaces.ts +439 -0
  988. package/src/router/router-options.ts +587 -0
  989. package/src/router/router-registry.ts +24 -0
  990. package/src/router/segment-resolution/fresh.ts +552 -0
  991. package/src/router/segment-resolution/helpers.ts +263 -0
  992. package/src/router/segment-resolution/loader-cache.ts +198 -0
  993. package/src/router/segment-resolution/revalidation.ts +1226 -0
  994. package/src/router/segment-resolution/static-store.ts +67 -0
  995. package/src/router/segment-resolution.ts +21 -0
  996. package/src/router/segment-wrappers.ts +289 -0
  997. package/src/router/telemetry-otel.ts +299 -0
  998. package/src/router/telemetry.ts +300 -0
  999. package/src/router/timeout.ts +148 -0
  1000. package/src/router/trie-matching.ts +221 -0
  1001. package/src/router/types.ts +78 -4
  1002. package/src/router.ts +672 -3566
  1003. package/src/rsc/handler-context.ts +45 -0
  1004. package/src/rsc/handler.ts +691 -757
  1005. package/src/rsc/helpers.ts +140 -6
  1006. package/src/rsc/index.ts +5 -5
  1007. package/src/rsc/loader-fetch.ts +209 -0
  1008. package/src/rsc/manifest-init.ts +86 -0
  1009. package/src/rsc/nonce.ts +14 -0
  1010. package/src/rsc/origin-guard.ts +141 -0
  1011. package/src/rsc/progressive-enhancement.ts +366 -0
  1012. package/src/rsc/response-error.ts +37 -0
  1013. package/src/rsc/response-route-handler.ts +347 -0
  1014. package/src/rsc/rsc-rendering.ts +250 -0
  1015. package/src/rsc/runtime-warnings.ts +42 -0
  1016. package/src/rsc/server-action.ts +344 -0
  1017. package/src/rsc/types.ts +38 -14
  1018. package/src/search-params.ts +227 -0
  1019. package/src/segment-system.tsx +59 -61
  1020. package/src/server/context.ts +217 -49
  1021. package/src/server/cookie-store.ts +190 -0
  1022. package/src/server/fetchable-loader-store.ts +37 -0
  1023. package/src/server/handle-store.ts +98 -20
  1024. package/src/server/loader-registry.ts +15 -56
  1025. package/src/server/request-context.ts +406 -65
  1026. package/src/server.ts +32 -133
  1027. package/src/ssr/index.tsx +157 -26
  1028. package/src/static-handler.ts +114 -0
  1029. package/src/theme/ThemeProvider.tsx +21 -15
  1030. package/src/theme/ThemeScript.tsx +5 -5
  1031. package/src/theme/constants.ts +11 -4
  1032. package/src/theme/index.ts +6 -7
  1033. package/src/theme/theme-context.ts +5 -31
  1034. package/src/theme/theme-script.ts +21 -18
  1035. package/src/theme/types.ts +1 -1
  1036. package/src/types/boundaries.ts +158 -0
  1037. package/src/types/cache-types.ts +198 -0
  1038. package/src/types/error-types.ts +192 -0
  1039. package/src/types/global-namespace.ts +100 -0
  1040. package/src/types/handler-context.ts +691 -0
  1041. package/src/types/index.ts +88 -0
  1042. package/src/types/loader-types.ts +183 -0
  1043. package/src/types/route-config.ts +161 -0
  1044. package/src/types/route-entry.ts +102 -0
  1045. package/src/types/segments.ts +153 -0
  1046. package/src/types.ts +1 -1561
  1047. package/src/urls/include-helper.ts +197 -0
  1048. package/src/urls/index.ts +53 -0
  1049. package/src/urls/path-helper-types.ts +339 -0
  1050. package/src/urls/path-helper.ts +329 -0
  1051. package/src/urls/pattern-types.ts +95 -0
  1052. package/src/urls/response-types.ts +106 -0
  1053. package/src/urls/type-extraction.ts +372 -0
  1054. package/src/urls/urls-function.ts +98 -0
  1055. package/src/urls.ts +1 -726
  1056. package/src/use-loader.tsx +85 -77
  1057. package/src/vite/discovery/bundle-postprocess.ts +184 -0
  1058. package/src/vite/discovery/discover-routers.ts +345 -0
  1059. package/src/vite/discovery/prerender-collection.ts +385 -0
  1060. package/src/vite/discovery/route-types-writer.ts +258 -0
  1061. package/src/vite/discovery/self-gen-tracking.ts +47 -0
  1062. package/src/vite/discovery/state.ts +110 -0
  1063. package/src/vite/discovery/virtual-module-codegen.ts +203 -0
  1064. package/src/vite/index.ts +10 -782
  1065. package/src/vite/plugin-types.ts +131 -0
  1066. package/src/vite/plugins/cjs-to-esm.ts +93 -0
  1067. package/src/vite/plugins/client-ref-dedup.ts +115 -0
  1068. package/src/vite/plugins/client-ref-hashing.ts +105 -0
  1069. package/src/vite/{expose-action-id.ts → plugins/expose-action-id.ts} +72 -51
  1070. package/src/vite/plugins/expose-id-utils.ts +287 -0
  1071. package/src/vite/plugins/expose-ids/export-analysis.ts +296 -0
  1072. package/src/vite/plugins/expose-ids/handler-transform.ts +179 -0
  1073. package/src/vite/plugins/expose-ids/loader-transform.ts +74 -0
  1074. package/src/vite/plugins/expose-ids/router-transform.ts +110 -0
  1075. package/src/vite/plugins/expose-ids/types.ts +45 -0
  1076. package/src/vite/plugins/expose-internal-ids.ts +569 -0
  1077. package/src/vite/plugins/use-cache-transform.ts +323 -0
  1078. package/src/vite/plugins/version-injector.ts +83 -0
  1079. package/src/vite/plugins/version-plugin.ts +254 -0
  1080. package/src/vite/plugins/virtual-entries.ts +123 -0
  1081. package/src/vite/plugins/virtual-stub-plugin.ts +29 -0
  1082. package/src/vite/rango.ts +510 -0
  1083. package/src/vite/router-discovery.ts +785 -0
  1084. package/src/vite/utils/ast-handler-extract.ts +517 -0
  1085. package/src/vite/utils/banner.ts +36 -0
  1086. package/src/vite/utils/bundle-analysis.ts +137 -0
  1087. package/src/vite/utils/manifest-utils.ts +70 -0
  1088. package/src/vite/{package-resolution.ts → utils/package-resolution.ts} +25 -29
  1089. package/src/vite/utils/prerender-utils.ts +189 -0
  1090. package/src/vite/utils/shared-utils.ts +169 -0
  1091. package/CLAUDE.md +0 -7
  1092. package/src/__tests__/component-utils.test.ts +0 -76
  1093. package/src/__tests__/route-definition.test.ts +0 -63
  1094. package/src/__tests__/urls.test.tsx +0 -436
  1095. package/src/browser/lru-cache.ts +0 -69
  1096. package/src/browser/request-controller.ts +0 -164
  1097. package/src/cache/__tests__/document-cache.test.ts +0 -522
  1098. package/src/cache/__tests__/memory-segment-store.test.ts +0 -487
  1099. package/src/cache/__tests__/memory-store.test.ts +0 -484
  1100. package/src/cache/cf/__tests__/cf-cache-store.test.ts +0 -428
  1101. package/src/cache/memory-store.ts +0 -253
  1102. package/src/href.ts +0 -177
  1103. package/src/route-utils.ts +0 -89
  1104. package/src/router/__tests__/match-context.test.ts +0 -104
  1105. package/src/router/__tests__/match-pipelines.test.ts +0 -537
  1106. package/src/router/__tests__/match-result.test.ts +0 -566
  1107. package/src/router/__tests__/on-error.test.ts +0 -935
  1108. package/src/router/__tests__/pattern-matching.test.ts +0 -577
  1109. package/src/router/middleware.test.ts +0 -1355
  1110. package/src/rsc/__tests__/helpers.test.ts +0 -175
  1111. package/src/server/__tests__/request-context.test.ts +0 -171
  1112. package/src/ssr/__tests__/ssr-handler.test.tsx +0 -188
  1113. package/src/theme/__tests__/theme.test.ts +0 -120
  1114. package/src/vite/__tests__/expose-loader-id.test.ts +0 -117
  1115. package/src/vite/expose-handle-id.ts +0 -209
  1116. package/src/vite/expose-loader-id.ts +0 -357
  1117. package/src/vite/expose-location-state-id.ts +0 -177
  1118. /package/src/vite/{version.d.ts → plugins/version.d.ts} +0 -0
@@ -0,0 +1,317 @@
1
+ /**
2
+ * Cache Store Types
3
+ *
4
+ * Generic caching interface supporting multiple value types.
5
+ * Designed to be implemented by different backends:
6
+ * - MemoryCacheStore (dev/testing)
7
+ * - Cloudflare Cache API adapter
8
+ * - Cloudflare KV adapter
9
+ * - Redis adapter
10
+ */
11
+ import type { ResolvedSegment } from "../types.js";
12
+ import type { RequestContext } from "../server/request-context.js";
13
+ /**
14
+ * Result from cache get() including data and revalidation status
15
+ */
16
+ export interface CacheGetResult {
17
+ /** The cached entry data */
18
+ data: CachedEntryData;
19
+ /**
20
+ * Whether the caller should trigger background revalidation.
21
+ * True when entry is stale AND not already being revalidated.
22
+ * The store atomically marks the entry as REVALIDATING when returning true.
23
+ */
24
+ shouldRevalidate: boolean;
25
+ }
26
+ /**
27
+ * Low-level segment cache store interface.
28
+ *
29
+ * Implementations handle the actual storage (memory, KV, Redis, etc.).
30
+ * The store deals with serialized data - RSC serialization is handled
31
+ * by the cache provider layer.
32
+ *
33
+ * @typeParam TEnv - Platform bindings type (e.g., Cloudflare env)
34
+ */
35
+ export interface SegmentCacheStore<TEnv = unknown> {
36
+ /**
37
+ * Default cache options for this store.
38
+ * Used by cache() boundaries when ttl/swr are not explicitly specified.
39
+ */
40
+ readonly defaults?: CacheDefaults;
41
+ /**
42
+ * Custom key generator applied to all cache operations using this store.
43
+ * Receives the full RequestContext and the default-generated key.
44
+ * Return value becomes the final cache key (unless route overrides with `key` option).
45
+ *
46
+ * Resolution priority:
47
+ * 1. Route-level `key` function (full override)
48
+ * 2. Store-level `keyGenerator` (modifies default key)
49
+ * 3. Default key generation (prefix:pathname:params)
50
+ *
51
+ * @example Using headers for cache segmentation
52
+ * ```typescript
53
+ * keyGenerator: (ctx, defaultKey) => {
54
+ * const segment = ctx.request.headers.get('x-user-segment') || 'default';
55
+ * return `${segment}:${defaultKey}`;
56
+ * }
57
+ * ```
58
+ *
59
+ * @example Using env bindings (Cloudflare)
60
+ * ```typescript
61
+ * keyGenerator: (ctx, defaultKey) => {
62
+ * const region = ctx.env.REGION || 'us';
63
+ * return `${region}:${defaultKey}`;
64
+ * }
65
+ * ```
66
+ *
67
+ * @example Using cookies for locale
68
+ * ```typescript
69
+ * keyGenerator: (ctx, defaultKey) => {
70
+ * const locale = ctx.cookie('locale') || 'en';
71
+ * return `${locale}:${defaultKey}`;
72
+ * }
73
+ * ```
74
+ */
75
+ readonly keyGenerator?: (ctx: RequestContext<TEnv>, defaultKey: string) => string | Promise<string>;
76
+ /**
77
+ * Get cached entry data by key
78
+ * @returns Cache result with data and staleness, or null if not found/expired
79
+ */
80
+ get(key: string): Promise<CacheGetResult | null>;
81
+ /**
82
+ * Store entry data with TTL
83
+ * @param key - Cache key
84
+ * @param data - Serialized entry data
85
+ * @param ttl - Time-to-live in seconds
86
+ * @param swr - Optional stale-while-revalidate window in seconds
87
+ */
88
+ set(key: string, data: CachedEntryData, ttl: number, swr?: number): Promise<void>;
89
+ /**
90
+ * Delete a cached entry
91
+ * @returns true if deleted, false if not found
92
+ */
93
+ delete(key: string): Promise<boolean>;
94
+ /**
95
+ * Clear all cached entries (optional, for testing)
96
+ */
97
+ clear?(): Promise<void>;
98
+ /**
99
+ * Get a cached Response by key.
100
+ * Returns the response and whether it should be revalidated (SWR).
101
+ */
102
+ getResponse?(key: string): Promise<{
103
+ response: Response;
104
+ shouldRevalidate: boolean;
105
+ } | null>;
106
+ /**
107
+ * Store a Response with TTL and optional SWR window.
108
+ * @param key - Cache key
109
+ * @param response - Response to cache (will be cloned)
110
+ * @param ttl - Time-to-live in seconds
111
+ * @param swr - Optional stale-while-revalidate window in seconds
112
+ */
113
+ putResponse?(key: string, response: Response, ttl: number, swr?: number): Promise<void>;
114
+ }
115
+ /**
116
+ * Serialized segment data stored in cache
117
+ * Note: loading is preserved to ensure consistent tree structure between cached and fresh renders
118
+ *
119
+ * @internal This type is an implementation detail and may change without notice.
120
+ */
121
+ export interface SerializedSegmentData {
122
+ /** RSC-encoded component string */
123
+ encoded: string;
124
+ /** RSC-encoded layout string (if present) */
125
+ encodedLayout?: string;
126
+ /** RSC-encoded loading skeleton string (if present), or "null" for explicit null */
127
+ encodedLoading?: string;
128
+ /** RSC-encoded loaderData (if present) */
129
+ encodedLoaderData?: string;
130
+ /** RSC-encoded loaderDataPromise (if present) */
131
+ encodedLoaderDataPromise?: string;
132
+ /** Segment metadata (everything except component, layout, loading, and loader data) */
133
+ metadata: Omit<ResolvedSegment, "component" | "layout" | "loading" | "loaderData" | "loaderDataPromise">;
134
+ }
135
+ /**
136
+ * Raw data stored in cache for an entry
137
+ *
138
+ * @internal This type is an implementation detail and may change without notice.
139
+ */
140
+ export interface CachedEntryData {
141
+ /** Serialized segments for this entry */
142
+ segments: SerializedSegmentData[];
143
+ /** Handle data keyed by segment ID */
144
+ handles: Record<string, SegmentHandleData>;
145
+ /** Expiration timestamp (ms since epoch) */
146
+ expiresAt: number;
147
+ }
148
+ /**
149
+ * Default cache options applied to all cache() boundaries.
150
+ * Individual cache() calls can override any of these values.
151
+ *
152
+ * @example
153
+ * ```ts
154
+ * const store = new CFCacheStore({
155
+ * defaults: { ttl: 60, swr: 300 }
156
+ * });
157
+ * ```
158
+ */
159
+ export interface CacheDefaults {
160
+ /**
161
+ * Default time-to-live in seconds.
162
+ * After TTL expires, cached entry is considered stale.
163
+ */
164
+ ttl?: number;
165
+ /**
166
+ * Default stale-while-revalidate window in seconds.
167
+ * During SWR window, stale content is served while revalidating in background.
168
+ */
169
+ swr?: number;
170
+ }
171
+ /**
172
+ * Cache configuration for RSC handler
173
+ */
174
+ export interface CacheConfig {
175
+ /** Cache store implementation (includes defaults) */
176
+ store: SegmentCacheStore;
177
+ /** Enable/disable caching (default: true) */
178
+ enabled?: boolean;
179
+ }
180
+ /**
181
+ * Cache configuration - can be static or a function receiving env
182
+ */
183
+ export type CacheConfigOrFactory<TEnv> = CacheConfig | ((env: TEnv) => CacheConfig);
184
+ /**
185
+ * Handle data for a single segment
186
+ * Structure: { handleName: [values...] }
187
+ */
188
+ export type SegmentHandleData = Record<string, unknown[]>;
189
+ /**
190
+ * Result from cache get() including segments and their handle data
191
+ * Each entry can produce multiple segments (main + parallels)
192
+ */
193
+ export interface CachedEntryResult {
194
+ /** All segments for this entry (main segment + parallels) */
195
+ segments: ResolvedSegment[];
196
+ /** Handle data keyed by segment ID */
197
+ handles: Record<string, SegmentHandleData>;
198
+ }
199
+ /**
200
+ * Segment cache provider interface
201
+ *
202
+ * Used by router to check/store segment cache during matching.
203
+ * Accessed via request context - if not present, caching is disabled.
204
+ *
205
+ * @internal Not currently implemented - CacheScope is used directly.
206
+ * Reserved for future extensibility.
207
+ */
208
+ export interface SegmentCacheProvider {
209
+ /** Whether caching is enabled for this request */
210
+ readonly enabled: boolean;
211
+ /**
212
+ * Get cached segments and restore handles/loaders.
213
+ *
214
+ * Combines cache get with handle replay and loader data restoration.
215
+ * Returns tuple of [segments, segmentIds] if cache hit, null if miss or disabled.
216
+ *
217
+ * @param cacheKey - Cache key to look up
218
+ * @param params - Route params for cache key generation
219
+ * @param loaderPromises - Map to restore loader data into
220
+ * @returns Tuple of [segments, segmentIds] or null if miss
221
+ */
222
+ restore(cacheKey: string, params: Record<string, string>, loaderPromises: Map<string, Promise<any>>): Promise<[ResolvedSegment[], string[]] | null>;
223
+ /**
224
+ * Cache entry with automatic handle collection (non-blocking).
225
+ *
226
+ * Schedules caching via waitUntil - handles are collected after they settle.
227
+ * Validates segments have actual components before caching.
228
+ *
229
+ * @param cacheKey - The cache key to store under
230
+ * @param segments - All resolved segments for this entry
231
+ */
232
+ cacheEntry(cacheKey: string, segments: ResolvedSegment[]): void;
233
+ }
234
+ /**
235
+ * Supported cache value types for the generic CacheStore interface.
236
+ * @internal Reserved for future extensibility
237
+ */
238
+ export type CacheValue = ReadableStream<Uint8Array> | Response | ArrayBuffer | string | unknown[] | Record<string, unknown>;
239
+ /**
240
+ * Cache entry returned by match().
241
+ * @internal Reserved for future extensibility
242
+ */
243
+ export interface CacheEntry<T = CacheValue> {
244
+ /** The cached value */
245
+ value: T;
246
+ /** Optional metadata stored with the entry */
247
+ metadata?: CacheMetadata;
248
+ }
249
+ /**
250
+ * Original value type for reconstruction.
251
+ * @internal Reserved for future extensibility
252
+ */
253
+ export type CacheValueType = "stream" | "response" | "arraybuffer" | "string" | "object";
254
+ /**
255
+ * Metadata associated with a cache entry.
256
+ * @internal Reserved for future extensibility
257
+ */
258
+ export interface CacheMetadata {
259
+ /** Timestamp when entry expires (ms since epoch) */
260
+ expiresAt?: number;
261
+ /** Tags for bulk invalidation */
262
+ tags?: string[];
263
+ /** Original value type for reconstruction on read */
264
+ valueType?: CacheValueType;
265
+ /** Response headers (preserved when caching Response) */
266
+ responseHeaders?: Record<string, string>;
267
+ /** Response status (preserved when caching Response) */
268
+ responseStatus?: number;
269
+ /** Custom metadata */
270
+ [key: string]: unknown;
271
+ }
272
+ /**
273
+ * Options for put().
274
+ * @internal Reserved for future extensibility
275
+ */
276
+ export interface CachePutOptions {
277
+ /** Time-to-live in seconds */
278
+ ttl?: number;
279
+ /** Metadata to store with entry */
280
+ metadata?: Omit<CacheMetadata, "expiresAt">;
281
+ }
282
+ /**
283
+ * Generic cache store interface for arbitrary value types.
284
+ *
285
+ * This interface is designed for future extensibility to support caching
286
+ * responses, streams, and other values. Currently, segment caching uses
287
+ * the SegmentCacheStore interface directly.
288
+ *
289
+ * Implementations must handle:
290
+ * - Stream values (clone before storing, streams can only be read once)
291
+ * - Promise values (await before storing)
292
+ * - Expiration/TTL
293
+ *
294
+ * @internal Reserved for future extensibility
295
+ */
296
+ export interface CacheStore {
297
+ /**
298
+ * Retrieve a cached entry by key.
299
+ * @param key - Cache key
300
+ * @returns The cached entry or undefined if not found/expired
301
+ */
302
+ match<T = CacheValue>(key: string): Promise<CacheEntry<T> | undefined>;
303
+ /**
304
+ * Store a value in the cache.
305
+ * @param key - Cache key
306
+ * @param value - Value to cache (stream, response, string, object, etc.)
307
+ * @param options - TTL, metadata, etc.
308
+ */
309
+ put<T extends CacheValue>(key: string, value: T, options?: CachePutOptions): Promise<void>;
310
+ /**
311
+ * Delete a cached entry.
312
+ * @param key - Cache key
313
+ * @returns true if entry was deleted, false if not found
314
+ */
315
+ delete(key: string): Promise<boolean>;
316
+ }
317
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/cache/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Cache Store Types
3
+ *
4
+ * Generic caching interface supporting multiple value types.
5
+ * Designed to be implemented by different backends:
6
+ * - MemoryCacheStore (dev/testing)
7
+ * - Cloudflare Cache API adapter
8
+ * - Cloudflare KV adapter
9
+ * - Redis adapter
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/cache/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,248 @@
1
+ import { Component, type ReactNode } from "react";
2
+ import { type ClientErrorBoundaryFallbackProps, type LoaderDefinition, type LoaderFn, type ResolvedSegment } from "./types";
3
+ /**
4
+ * Outlet component - renders child content in layouts
5
+ *
6
+ * If the current segment defines a loading component, the outlet content
7
+ * is wrapped in Suspense with the loading component as fallback.
8
+ * This means during navigation/streaming, React's Suspense will automatically
9
+ * show the loading skeleton until the content is ready.
10
+ *
11
+ * When a name prop is provided (e.g., "@modal"), renders content from
12
+ * the parallel segment with that slot name instead of the default content.
13
+ * This is used for parallel routes and intercepting routes.
14
+ *
15
+ * @param name - Optional slot name for parallel/intercept content (must start with @)
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * function BlogLayout() {
20
+ * return (
21
+ * <div>
22
+ * <h1>Blog</h1>
23
+ * <Outlet />
24
+ * </div>
25
+ * );
26
+ * }
27
+ *
28
+ * // With named slot for modal/parallel content:
29
+ * function KanbanLayout() {
30
+ * return (
31
+ * <div>
32
+ * <KanbanBoard />
33
+ * <Outlet name="@modal" />
34
+ * <Outlet />
35
+ * </div>
36
+ * );
37
+ * }
38
+ * ```
39
+ */
40
+ export declare function Outlet({ name }?: {
41
+ name?: `@${string}`;
42
+ }): ReactNode;
43
+ /**
44
+ * ParallelOutlet component - renders content for a named parallel slot
45
+ *
46
+ * If the parallel segment defines a loading component, the content
47
+ * is wrapped in Suspense with the loading component as fallback.
48
+ * This enables streaming and navigation loading states for parallels.
49
+ *
50
+ * @param name - The slot name (must start with @, e.g., "@modal", "@sidebar")
51
+ *
52
+ * @example
53
+ * ```tsx
54
+ * function DashboardLayout() {
55
+ * return (
56
+ * <div>
57
+ * <h1>Dashboard</h1>
58
+ * <ParallelOutlet name="@sidebar" />
59
+ * <ParallelOutlet name="@modal" />
60
+ * </div>
61
+ * );
62
+ * }
63
+ * ```
64
+ */
65
+ export declare function ParallelOutlet({ name }: {
66
+ name: `@${string}`;
67
+ }): ReactNode;
68
+ /**
69
+ * Provider for outlet content - used internally by renderSegments
70
+ *
71
+ * Stores a reference to parent context so useLoader can walk up the chain
72
+ * to find loader data from parent layouts. If this segment defines a loading
73
+ * component, Outlet will wrap content with Suspense using that as fallback.
74
+ */
75
+ export declare function OutletProvider({ content, parallel, segment, loaderData, children, }: {
76
+ content: ReactNode;
77
+ parallel?: ResolvedSegment[];
78
+ segment?: ResolvedSegment;
79
+ loaderData?: Record<string, any>;
80
+ children: ReactNode;
81
+ }): ReactNode;
82
+ /**
83
+ * Hook to access outlet content programmatically
84
+ *
85
+ * Alternative to using <Outlet /> component. Useful when you need
86
+ * direct access to the outlet content in your logic.
87
+ *
88
+ * @example
89
+ * ```tsx
90
+ * function BlogLayout() {
91
+ * const outlet = useOutlet();
92
+ * return <div><h1>Blog</h1>{outlet}</div>;
93
+ * }
94
+ * ```
95
+ */
96
+ export declare function useOutlet(): ReactNode;
97
+ export { useLoader, useFetchLoader, type LoadFunction, type UseLoaderResult, type UseFetchLoaderResult, type UseLoaderOptions, } from "./use-loader.js";
98
+ /**
99
+ * Hook to access all loader data in the current context
100
+ *
101
+ * Returns a record of all loader data available in the current outlet context
102
+ * and all parent contexts. Useful for debugging or when you need access to
103
+ * multiple loaders.
104
+ *
105
+ * @returns Record of loader name to data, or empty object if no loaders
106
+ *
107
+ * @example
108
+ * ```tsx
109
+ * "use client";
110
+ * import { useLoaderData } from "rsc-router/client";
111
+ *
112
+ * export function DebugPanel() {
113
+ * const loaderData = useLoaderData();
114
+ * return <pre>{JSON.stringify(loaderData, null, 2)}</pre>;
115
+ * }
116
+ * ```
117
+ */
118
+ export declare function useLoaderData(): Record<string, any>;
119
+ /**
120
+ * Client-safe createLoader factory
121
+ *
122
+ * Creates a loader definition that can be used with useLoader().
123
+ * This is the client-side version that only stores the $$id - the function
124
+ * is ignored since loaders only execute on the server.
125
+ *
126
+ * The $$id is injected by the exposeLoaderId Vite plugin. In most cases,
127
+ * you should import the loader directly from the server file rather than
128
+ * creating a reference manually.
129
+ *
130
+ * @param fn - Loader function (ignored on client, kept for API compatibility)
131
+ * @param _fetchable - Optional fetchable flag (ignored on client)
132
+ * @param __injectedId - $$id injected by Vite plugin
133
+ *
134
+ * @example
135
+ * ```tsx
136
+ * "use client";
137
+ * import { useLoader } from "rsc-router/client";
138
+ * import { CartLoader } from "../loaders/cart"; // Import from server file
139
+ *
140
+ * export function CartIcon() {
141
+ * const cart = useLoader(CartLoader);
142
+ * return <span>Cart ({cart?.items.length ?? 0})</span>;
143
+ * }
144
+ * ```
145
+ */
146
+ export declare function createLoader<T>(fn: LoaderFn<T, Record<string, string | undefined>, any>): LoaderDefinition<Awaited<T>, Record<string, string | undefined>>;
147
+ export declare function createLoader<T>(fn: LoaderFn<T, Record<string, string | undefined>, any>, fetchable: true): LoaderDefinition<Awaited<T>, Record<string, string | undefined>>;
148
+ /**
149
+ * Props for the ErrorBoundary component
150
+ */
151
+ export interface ErrorBoundaryProps {
152
+ /** Fallback UI to show when an error is caught */
153
+ fallback: ReactNode | ((props: ClientErrorBoundaryFallbackProps) => ReactNode);
154
+ /** Children to render */
155
+ children: ReactNode;
156
+ /** Optional callback when an error is caught */
157
+ onError?: (error: Error, errorInfo: React.ErrorInfo) => void;
158
+ }
159
+ interface ErrorBoundaryState {
160
+ hasError: boolean;
161
+ error: Error | null;
162
+ }
163
+ /**
164
+ * Client-side ErrorBoundary component
165
+ *
166
+ * Catches JavaScript errors in child components during rendering,
167
+ * in lifecycle methods, and in constructors of the whole tree below them.
168
+ * Displays a fallback UI instead of the component tree that crashed.
169
+ *
170
+ * Use this to wrap client components that might throw during hydration
171
+ * or user interaction. For server-side errors (middleware, loaders, handlers),
172
+ * use the errorBoundary() helper in route definitions instead.
173
+ *
174
+ * @example
175
+ * ```tsx
176
+ * "use client";
177
+ * import { ErrorBoundary } from "rsc-router/client";
178
+ *
179
+ * function MyComponent() {
180
+ * return (
181
+ * <ErrorBoundary fallback={<div>Something went wrong</div>}>
182
+ * <ComponentThatMightThrow />
183
+ * </ErrorBoundary>
184
+ * );
185
+ * }
186
+ *
187
+ * // Or with a function fallback for more control:
188
+ * function MyComponent() {
189
+ * return (
190
+ * <ErrorBoundary
191
+ * fallback={({ error, reset }) => (
192
+ * <div>
193
+ * <p>Error: {error.message}</p>
194
+ * <button onClick={reset}>Try again</button>
195
+ * </div>
196
+ * )}
197
+ * >
198
+ * <ComponentThatMightThrow />
199
+ * </ErrorBoundary>
200
+ * );
201
+ * }
202
+ * ```
203
+ */
204
+ export declare class ErrorBoundary extends Component<ErrorBoundaryProps, ErrorBoundaryState> {
205
+ constructor(props: ErrorBoundaryProps);
206
+ static getDerivedStateFromError(error: Error): ErrorBoundaryState;
207
+ componentDidCatch(error: Error, errorInfo: React.ErrorInfo): void;
208
+ reset: () => void;
209
+ render(): ReactNode;
210
+ }
211
+ export { useNavigation, type NavigationMethods, type NavigationValue, } from "./browser/react/use-navigation.js";
212
+ export { useAction, type ServerActionFunction, } from "./browser/react/use-action.js";
213
+ export { useSegments, type SegmentsState, } from "./browser/react/use-segments.js";
214
+ export { useClientCache, type ClientCacheControls, } from "./browser/react/use-client-cache.js";
215
+ export { NavigationProvider, type NavigationProviderProps, } from "./browser/react/NavigationProvider.js";
216
+ export { Link, type LinkProps, type PrefetchStrategy, type StateOrGetter, } from "./browser/react/Link.js";
217
+ export { useLinkStatus, type LinkStatus, } from "./browser/react/use-link-status.js";
218
+ export { ScrollRestoration, useScrollRestoration, type ScrollRestorationProps, } from "./browser/react/ScrollRestoration.js";
219
+ export { createHandle, isHandle, type Handle } from "./handle.js";
220
+ export { useHandle } from "./browser/react/use-handle.js";
221
+ export { Meta } from "./handles/meta.js";
222
+ export { MetaTags } from "./handles/MetaTags.js";
223
+ export type { MetaDescriptor, MetaDescriptorBase } from "./router/types.js";
224
+ export { createLocationState, useLocationState, type LocationStateDefinition, type LocationStateEntry, } from "./browser/react/location-state.js";
225
+ export { href, type ValidPaths, type PatternToPath, type PathResponse } from "./href-client.js";
226
+ export type { ResponseEnvelope, ResponseError } from "./urls.js";
227
+ /**
228
+ * Type guard for checking if a response envelope contains an error.
229
+ *
230
+ * @example
231
+ * ```typescript
232
+ * const result: ResponseEnvelope<Product> = await fetch(url).then(r => r.json());
233
+ * if (isResponseError(result)) {
234
+ * console.log(result.error.message, result.error.code);
235
+ * return;
236
+ * }
237
+ * result.data // fully typed as Product
238
+ * ```
239
+ */
240
+ export declare function isResponseError<T>(result: import("./urls.js").ResponseEnvelope<T>): result is import("./urls.js").ResponseEnvelope<T> & {
241
+ error: import("./urls.js").ResponseError;
242
+ };
243
+ export { useMount } from "./browser/react/use-mount.js";
244
+ export { MountContext } from "./browser/react/mount-context.js";
245
+ export { useHref } from "./browser/react/use-href.js";
246
+ export type { ScopedReverseFunction } from "./reverse.js";
247
+ export type { LoaderDefinition } from "./types.js";
248
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,SAAS,EAKT,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,EACL,KAAK,gCAAgC,EAErC,KAAK,gBAAgB,EACrB,KAAK,QAAQ,EACb,KAAK,eAAe,EACrB,MAAM,SAAS,CAAC;AAMjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAgB,MAAM,CAAC,EAAE,IAAI,EAAE,GAAE;IAAE,IAAI,CAAC,EAAE,IAAI,MAAM,EAAE,CAAA;CAAO,GAAG,SAAS,CA4FxE;AACD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,IAAI,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,CA+E1E;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,QAAQ,EACR,OAAO,EACP,UAAU,EACV,QAAQ,GACT,EAAE;IACD,OAAO,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,eAAe,EAAE,CAAC;IAC7B,OAAO,CAAC,EAAE,eAAe,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACjC,QAAQ,EAAE,SAAS,CAAC;CACrB,GAAG,SAAS,CAmBZ;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,SAAS,IAAI,SAAS,CAGrC;AAGD,OAAO,EACL,SAAS,EACT,cAAc,EACd,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,GACtB,MAAM,iBAAiB,CAAC;AAEzB;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAwBnD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AAEH,wBAAgB,YAAY,CAAC,CAAC,EAC5B,EAAE,EAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,GACvD,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAGpE,wBAAgB,YAAY,CAAC,CAAC,EAC5B,EAAE,EAAE,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,EAAE,GAAG,CAAC,EACxD,SAAS,EAAE,IAAI,GACd,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC,CAAC;AAepE;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,kDAAkD;IAClD,QAAQ,EACJ,SAAS,GACT,CAAC,CAAC,KAAK,EAAE,gCAAgC,KAAK,SAAS,CAAC,CAAC;IAC7D,yBAAyB;IACzB,QAAQ,EAAE,SAAS,CAAC;IACpB,gDAAgD;IAChD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,KAAK,IAAI,CAAC;CAC9D;AAED,UAAU,kBAAkB;IAC1B,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwCG;AACH,qBAAa,aAAc,SAAQ,SAAS,CAC1C,kBAAkB,EAClB,kBAAkB,CACnB;gBACa,KAAK,EAAE,kBAAkB;IAKrC,MAAM,CAAC,wBAAwB,CAAC,KAAK,EAAE,KAAK,GAAG,kBAAkB;IAIjE,iBAAiB,CAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,CAAC,SAAS,GAAG,IAAI;IAKjE,KAAK,QAAO,IAAI,CAEd;IAEF,MAAM,IAAI,SAAS;CAwBpB;AAQD,OAAO,EACL,aAAa,EACb,KAAK,iBAAiB,EACtB,KAAK,eAAe,GACrB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EACL,SAAS,EACT,KAAK,oBAAoB,GAC1B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EACL,WAAW,EACX,KAAK,aAAa,GACnB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EACL,cAAc,EACd,KAAK,mBAAmB,GACzB,MAAM,qCAAqC,CAAC;AAG7C,OAAO,EACL,kBAAkB,EAClB,KAAK,uBAAuB,GAC7B,MAAM,uCAAuC,CAAC;AAG/C,OAAO,EACL,IAAI,EACJ,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,aAAa,GACnB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,aAAa,EACb,KAAK,UAAU,GAChB,MAAM,oCAAoC,CAAC;AAG5C,OAAO,EACL,iBAAiB,EACjB,oBAAoB,EACpB,KAAK,sBAAsB,GAC5B,MAAM,sCAAsC,CAAC;AAG9C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,aAAa,CAAC;AAGlE,OAAO,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAG1D,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAG5E,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAChB,KAAK,uBAAuB,EAC5B,KAAK,kBAAkB,GACxB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGhG,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAEjE;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAC/B,MAAM,EAAE,OAAO,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAC9C,MAAM,IAAI,OAAO,WAAW,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG;IAAE,KAAK,EAAE,OAAO,WAAW,EAAE,aAAa,CAAA;CAAE,CAElG;AAGD,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGhE,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAC;AAGtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAG1D,YAAY,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC"}