@rangojs/router 0.0.0-experimental.10 → 0.0.0-experimental.101

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 (1132) hide show
  1. package/AGENTS.md +9 -0
  2. package/README.md +1037 -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/dist/__mocks__/version.js +7 -0
  10. package/dist/__mocks__/version.js.map +1 -0
  11. package/dist/__tests__/client-href.test.d.ts +2 -0
  12. package/dist/__tests__/client-href.test.d.ts.map +1 -0
  13. package/dist/__tests__/client-href.test.js +74 -0
  14. package/dist/__tests__/client-href.test.js.map +1 -0
  15. package/dist/__tests__/component-utils.test.d.ts +2 -0
  16. package/dist/__tests__/component-utils.test.d.ts.map +1 -0
  17. package/dist/__tests__/component-utils.test.js +51 -0
  18. package/dist/__tests__/component-utils.test.js.map +1 -0
  19. package/dist/__tests__/event-controller.test.d.ts +2 -0
  20. package/dist/__tests__/event-controller.test.d.ts.map +1 -0
  21. package/dist/__tests__/event-controller.test.js +538 -0
  22. package/dist/__tests__/event-controller.test.js.map +1 -0
  23. package/dist/__tests__/helpers/route-tree.d.ts +118 -0
  24. package/dist/__tests__/helpers/route-tree.d.ts.map +1 -0
  25. package/dist/__tests__/helpers/route-tree.js +374 -0
  26. package/dist/__tests__/helpers/route-tree.js.map +1 -0
  27. package/dist/__tests__/match-result.test.d.ts +2 -0
  28. package/dist/__tests__/match-result.test.d.ts.map +1 -0
  29. package/dist/__tests__/match-result.test.js +154 -0
  30. package/dist/__tests__/match-result.test.js.map +1 -0
  31. package/dist/__tests__/navigation-store.test.d.ts +2 -0
  32. package/dist/__tests__/navigation-store.test.d.ts.map +1 -0
  33. package/dist/__tests__/navigation-store.test.js +440 -0
  34. package/dist/__tests__/navigation-store.test.js.map +1 -0
  35. package/dist/__tests__/partial-update.test.d.ts +2 -0
  36. package/dist/__tests__/partial-update.test.d.ts.map +1 -0
  37. package/dist/__tests__/partial-update.test.js +1009 -0
  38. package/dist/__tests__/partial-update.test.js.map +1 -0
  39. package/dist/__tests__/reverse-types.test.d.ts +8 -0
  40. package/dist/__tests__/reverse-types.test.d.ts.map +1 -0
  41. package/dist/__tests__/reverse-types.test.js +656 -0
  42. package/dist/__tests__/reverse-types.test.js.map +1 -0
  43. package/dist/__tests__/route-definition.test.d.ts +2 -0
  44. package/dist/__tests__/route-definition.test.d.ts.map +1 -0
  45. package/dist/__tests__/route-definition.test.js +55 -0
  46. package/dist/__tests__/route-definition.test.js.map +1 -0
  47. package/dist/__tests__/router-helpers.test.d.ts +2 -0
  48. package/dist/__tests__/router-helpers.test.d.ts.map +1 -0
  49. package/dist/__tests__/router-helpers.test.js +377 -0
  50. package/dist/__tests__/router-helpers.test.js.map +1 -0
  51. package/dist/__tests__/router-integration-2.test.d.ts +2 -0
  52. package/dist/__tests__/router-integration-2.test.d.ts.map +1 -0
  53. package/dist/__tests__/router-integration-2.test.js +426 -0
  54. package/dist/__tests__/router-integration-2.test.js.map +1 -0
  55. package/dist/__tests__/router-integration.test.d.ts +2 -0
  56. package/dist/__tests__/router-integration.test.d.ts.map +1 -0
  57. package/dist/__tests__/router-integration.test.js +1051 -0
  58. package/dist/__tests__/router-integration.test.js.map +1 -0
  59. package/dist/__tests__/search-params.test.d.ts +5 -0
  60. package/dist/__tests__/search-params.test.d.ts.map +1 -0
  61. package/dist/__tests__/search-params.test.js +306 -0
  62. package/dist/__tests__/search-params.test.js.map +1 -0
  63. package/dist/__tests__/segment-system.test.d.ts +2 -0
  64. package/dist/__tests__/segment-system.test.d.ts.map +1 -0
  65. package/dist/__tests__/segment-system.test.js +627 -0
  66. package/dist/__tests__/segment-system.test.js.map +1 -0
  67. package/dist/__tests__/static-handler-types.test.d.ts +8 -0
  68. package/dist/__tests__/static-handler-types.test.d.ts.map +1 -0
  69. package/dist/__tests__/static-handler-types.test.js +63 -0
  70. package/dist/__tests__/static-handler-types.test.js.map +1 -0
  71. package/dist/__tests__/urls.test.d.ts +2 -0
  72. package/dist/__tests__/urls.test.d.ts.map +1 -0
  73. package/dist/__tests__/urls.test.js +421 -0
  74. package/dist/__tests__/urls.test.js.map +1 -0
  75. package/dist/__tests__/use-mount.test.d.ts +2 -0
  76. package/dist/__tests__/use-mount.test.d.ts.map +1 -0
  77. package/dist/__tests__/use-mount.test.js +35 -0
  78. package/dist/__tests__/use-mount.test.js.map +1 -0
  79. package/dist/bin/rango.d.ts +2 -0
  80. package/dist/bin/rango.d.ts.map +1 -0
  81. package/dist/bin/rango.js +1634 -157
  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 +5823 -2295
  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/{src/vite/package-resolution.ts → dist/vite/package-resolution.js} +53 -66
  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} +12 -16
  809. package/dist/vite/virtual-entries.js.map +1 -0
  810. package/package.json +71 -63
  811. package/skills/breadcrumbs/SKILL.md +252 -0
  812. package/skills/cache-guide/SKILL.md +294 -0
  813. package/skills/caching/SKILL.md +93 -23
  814. package/skills/composability/SKILL.md +172 -0
  815. package/skills/debug-manifest/SKILL.md +12 -8
  816. package/skills/document-cache/SKILL.md +18 -16
  817. package/skills/fonts/SKILL.md +6 -4
  818. package/skills/handler-use/SKILL.md +364 -0
  819. package/skills/hooks/SKILL.md +408 -71
  820. package/skills/host-router/SKILL.md +218 -0
  821. package/skills/i18n/SKILL.md +276 -0
  822. package/skills/intercept/SKILL.md +176 -8
  823. package/skills/layout/SKILL.md +124 -3
  824. package/skills/links/SKILL.md +304 -25
  825. package/skills/loader/SKILL.md +481 -47
  826. package/skills/middleware/SKILL.md +207 -37
  827. package/skills/migrate-nextjs/SKILL.md +562 -0
  828. package/skills/migrate-react-router/SKILL.md +769 -0
  829. package/skills/mime-routes/SKILL.md +15 -11
  830. package/skills/parallel/SKILL.md +272 -1
  831. package/skills/prerender/SKILL.md +467 -65
  832. package/skills/rango/SKILL.md +89 -21
  833. package/skills/response-routes/SKILL.md +152 -91
  834. package/skills/route/SKILL.md +305 -14
  835. package/skills/router-setup/SKILL.md +210 -32
  836. package/skills/server-actions/SKILL.md +739 -0
  837. package/skills/streams-and-websockets/SKILL.md +283 -0
  838. package/skills/theme/SKILL.md +9 -8
  839. package/skills/typesafety/SKILL.md +333 -86
  840. package/skills/use-cache/SKILL.md +324 -0
  841. package/skills/view-transitions/SKILL.md +212 -0
  842. package/src/__internal.ts +102 -4
  843. package/src/bin/rango.ts +312 -15
  844. package/src/browser/action-coordinator.ts +97 -0
  845. package/src/browser/action-response-classifier.ts +99 -0
  846. package/src/browser/app-shell.ts +52 -0
  847. package/src/browser/app-version.ts +14 -0
  848. package/src/browser/event-controller.ts +136 -68
  849. package/src/browser/history-state.ts +80 -0
  850. package/src/browser/intercept-utils.ts +52 -0
  851. package/src/browser/link-interceptor.ts +24 -4
  852. package/src/browser/logging.ts +55 -0
  853. package/src/browser/merge-segment-loaders.ts +20 -12
  854. package/src/browser/navigation-bridge.ts +374 -561
  855. package/src/browser/navigation-client.ts +228 -70
  856. package/src/browser/navigation-store.ts +97 -55
  857. package/src/browser/navigation-transaction.ts +297 -0
  858. package/src/browser/network-error-handler.ts +61 -0
  859. package/src/browser/partial-update.ts +376 -315
  860. package/src/browser/prefetch/cache.ts +314 -0
  861. package/src/browser/prefetch/fetch.ts +282 -0
  862. package/src/browser/prefetch/observer.ts +65 -0
  863. package/src/browser/prefetch/policy.ts +48 -0
  864. package/src/browser/prefetch/queue.ts +191 -0
  865. package/src/browser/prefetch/resource-ready.ts +77 -0
  866. package/src/browser/rango-state.ts +152 -0
  867. package/src/browser/react/Link.tsx +255 -71
  868. package/src/browser/react/NavigationProvider.tsx +152 -24
  869. package/src/browser/react/context.ts +11 -0
  870. package/src/browser/react/filter-segment-order.ts +55 -0
  871. package/src/browser/react/index.ts +15 -12
  872. package/src/browser/react/location-state-shared.ts +95 -53
  873. package/src/browser/react/location-state.ts +60 -15
  874. package/src/browser/react/mount-context.ts +6 -1
  875. package/src/browser/react/nonce-context.ts +23 -0
  876. package/src/browser/react/shallow-equal.ts +27 -0
  877. package/src/browser/react/use-action.ts +29 -51
  878. package/src/browser/react/use-client-cache.ts +5 -3
  879. package/src/browser/react/use-handle.ts +30 -120
  880. package/src/browser/react/use-link-status.ts +6 -5
  881. package/src/browser/react/use-navigation.ts +44 -65
  882. package/src/browser/react/use-params.ts +78 -0
  883. package/src/browser/react/use-pathname.ts +47 -0
  884. package/src/browser/react/use-reverse.ts +99 -0
  885. package/src/browser/react/use-router.ts +83 -0
  886. package/src/browser/react/use-search-params.ts +56 -0
  887. package/src/browser/react/use-segments.ts +85 -99
  888. package/src/browser/response-adapter.ts +73 -0
  889. package/src/browser/rsc-router.tsx +246 -64
  890. package/src/browser/scroll-restoration.ts +132 -49
  891. package/src/browser/segment-reconciler.ts +243 -0
  892. package/src/browser/segment-structure-assert.ts +16 -0
  893. package/src/browser/server-action-bridge.ts +510 -603
  894. package/src/browser/shallow.ts +6 -1
  895. package/src/browser/types.ts +158 -48
  896. package/src/browser/validate-redirect-origin.ts +29 -0
  897. package/src/build/generate-manifest.ts +84 -23
  898. package/src/build/generate-route-types.ts +39 -828
  899. package/src/build/index.ts +4 -5
  900. package/src/build/route-trie.ts +85 -32
  901. package/src/build/route-types/ast-helpers.ts +25 -0
  902. package/src/build/route-types/ast-route-extraction.ts +98 -0
  903. package/src/build/route-types/codegen.ts +102 -0
  904. package/src/build/route-types/include-resolution.ts +418 -0
  905. package/src/build/route-types/param-extraction.ts +48 -0
  906. package/src/build/route-types/per-module-writer.ts +128 -0
  907. package/src/build/route-types/router-processing.ts +618 -0
  908. package/src/build/route-types/scan-filter.ts +85 -0
  909. package/src/build/runtime-discovery.ts +231 -0
  910. package/src/cache/background-task.ts +34 -0
  911. package/src/cache/cache-key-utils.ts +44 -0
  912. package/src/cache/cache-policy.ts +125 -0
  913. package/src/cache/cache-runtime.ts +342 -0
  914. package/src/cache/cache-scope.ts +167 -307
  915. package/src/cache/cf/cf-cache-store.ts +573 -21
  916. package/src/cache/cf/index.ts +13 -3
  917. package/src/cache/document-cache.ts +116 -77
  918. package/src/cache/handle-capture.ts +81 -0
  919. package/src/cache/handle-snapshot.ts +41 -0
  920. package/src/cache/index.ts +1 -15
  921. package/src/cache/memory-segment-store.ts +191 -13
  922. package/src/cache/profile-registry.ts +73 -0
  923. package/src/cache/read-through-swr.ts +134 -0
  924. package/src/cache/segment-codec.ts +256 -0
  925. package/src/cache/taint.ts +153 -0
  926. package/src/cache/types.ts +72 -122
  927. package/src/client.rsc.tsx +6 -1
  928. package/src/client.tsx +118 -302
  929. package/src/component-utils.ts +4 -4
  930. package/src/components/DefaultDocument.tsx +5 -1
  931. package/src/context-var.ts +156 -0
  932. package/src/debug.ts +19 -9
  933. package/src/errors.ts +77 -7
  934. package/src/handle.ts +55 -10
  935. package/src/handles/MetaTags.tsx +73 -20
  936. package/src/handles/breadcrumbs.ts +66 -0
  937. package/src/handles/index.ts +1 -0
  938. package/src/handles/meta.ts +30 -13
  939. package/src/host/cookie-handler.ts +21 -15
  940. package/src/host/errors.ts +8 -8
  941. package/src/host/index.ts +4 -7
  942. package/src/host/pattern-matcher.ts +27 -27
  943. package/src/host/router.ts +61 -39
  944. package/src/host/testing.ts +8 -8
  945. package/src/host/types.ts +15 -7
  946. package/src/host/utils.ts +1 -1
  947. package/src/href-client.ts +69 -46
  948. package/src/index.rsc.ts +138 -21
  949. package/src/index.ts +206 -51
  950. package/src/internal-debug.ts +11 -0
  951. package/src/loader-store.ts +202 -0
  952. package/src/loader.rsc.ts +25 -143
  953. package/src/loader.ts +27 -10
  954. package/src/network-error-thrower.tsx +3 -1
  955. package/src/outlet-context.ts +1 -1
  956. package/src/outlet-provider.tsx +45 -0
  957. package/src/prerender/param-hash.ts +4 -2
  958. package/src/prerender/store.ts +159 -13
  959. package/src/prerender.ts +397 -29
  960. package/src/response-utils.ts +28 -0
  961. package/src/reverse.ts +231 -121
  962. package/src/root-error-boundary.tsx +41 -29
  963. package/src/route-content-wrapper.tsx +7 -4
  964. package/src/route-definition/dsl-helpers.ts +1134 -0
  965. package/src/route-definition/helper-factories.ts +200 -0
  966. package/src/route-definition/helpers-types.ts +483 -0
  967. package/src/route-definition/index.ts +55 -0
  968. package/src/route-definition/redirect.ts +101 -0
  969. package/src/route-definition/resolve-handler-use.ts +155 -0
  970. package/src/route-definition.ts +1 -1431
  971. package/src/route-map-builder.ts +162 -123
  972. package/src/route-name.ts +53 -0
  973. package/src/route-types.ts +66 -9
  974. package/src/router/content-negotiation.ts +215 -0
  975. package/src/router/debug-manifest.ts +72 -0
  976. package/src/router/error-handling.ts +9 -9
  977. package/src/router/find-match.ts +160 -0
  978. package/src/router/handler-context.ts +418 -86
  979. package/src/router/intercept-resolution.ts +35 -20
  980. package/src/router/lazy-includes.ts +237 -0
  981. package/src/router/loader-resolution.ts +359 -128
  982. package/src/router/logging.ts +251 -0
  983. package/src/router/manifest.ts +98 -32
  984. package/src/router/match-api.ts +196 -261
  985. package/src/router/match-context.ts +4 -2
  986. package/src/router/match-handlers.ts +441 -0
  987. package/src/router/match-middleware/background-revalidation.ts +108 -93
  988. package/src/router/match-middleware/cache-lookup.ts +415 -86
  989. package/src/router/match-middleware/cache-store.ts +91 -29
  990. package/src/router/match-middleware/intercept-resolution.ts +48 -21
  991. package/src/router/match-middleware/segment-resolution.ts +73 -9
  992. package/src/router/match-pipelines.ts +10 -45
  993. package/src/router/match-result.ts +154 -35
  994. package/src/router/metrics.ts +240 -15
  995. package/src/router/middleware-cookies.ts +55 -0
  996. package/src/router/middleware-types.ts +209 -0
  997. package/src/router/middleware.ts +373 -371
  998. package/src/router/navigation-snapshot.ts +182 -0
  999. package/src/router/pattern-matching.ts +292 -52
  1000. package/src/router/prerender-match.ts +502 -0
  1001. package/src/router/preview-match.ts +98 -0
  1002. package/src/router/request-classification.ts +310 -0
  1003. package/src/router/revalidation.ts +152 -39
  1004. package/src/router/route-snapshot.ts +245 -0
  1005. package/src/router/router-context.ts +41 -21
  1006. package/src/router/router-interfaces.ts +484 -0
  1007. package/src/router/router-options.ts +618 -0
  1008. package/src/router/router-registry.ts +24 -0
  1009. package/src/router/segment-resolution/fresh.ts +756 -0
  1010. package/src/router/segment-resolution/helpers.ts +268 -0
  1011. package/src/router/segment-resolution/loader-cache.ts +199 -0
  1012. package/src/router/segment-resolution/revalidation.ts +1407 -0
  1013. package/src/router/segment-resolution/static-store.ts +67 -0
  1014. package/src/router/segment-resolution.ts +21 -1315
  1015. package/src/router/segment-wrappers.ts +291 -0
  1016. package/src/router/substitute-pattern-params.ts +56 -0
  1017. package/src/router/telemetry-otel.ts +299 -0
  1018. package/src/router/telemetry.ts +300 -0
  1019. package/src/router/timeout.ts +148 -0
  1020. package/src/router/trie-matching.ts +111 -39
  1021. package/src/router/types.ts +17 -9
  1022. package/src/router/url-params.ts +49 -0
  1023. package/src/router.ts +642 -2011
  1024. package/src/rsc/handler-context.ts +45 -0
  1025. package/src/rsc/handler.ts +864 -1114
  1026. package/src/rsc/helpers.ts +181 -19
  1027. package/src/rsc/index.ts +0 -20
  1028. package/src/rsc/loader-fetch.ts +229 -0
  1029. package/src/rsc/manifest-init.ts +90 -0
  1030. package/src/rsc/nonce.ts +14 -0
  1031. package/src/rsc/origin-guard.ts +141 -0
  1032. package/src/rsc/progressive-enhancement.ts +395 -0
  1033. package/src/rsc/response-error.ts +37 -0
  1034. package/src/rsc/response-route-handler.ts +360 -0
  1035. package/src/rsc/rsc-rendering.ts +256 -0
  1036. package/src/rsc/runtime-warnings.ts +42 -0
  1037. package/src/rsc/server-action.ts +360 -0
  1038. package/src/rsc/ssr-setup.ts +128 -0
  1039. package/src/rsc/types.ts +52 -11
  1040. package/src/search-params.ts +230 -0
  1041. package/src/segment-content-promise.ts +67 -0
  1042. package/src/segment-loader-promise.ts +122 -0
  1043. package/src/segment-system.tsx +187 -38
  1044. package/src/server/context.ts +333 -59
  1045. package/src/server/cookie-store.ts +190 -0
  1046. package/src/server/fetchable-loader-store.ts +37 -0
  1047. package/src/server/handle-store.ts +113 -15
  1048. package/src/server/loader-registry.ts +24 -64
  1049. package/src/server/request-context.ts +603 -109
  1050. package/src/server.ts +35 -155
  1051. package/src/ssr/index.tsx +107 -30
  1052. package/src/static-handler.ts +126 -0
  1053. package/src/theme/ThemeProvider.tsx +21 -15
  1054. package/src/theme/ThemeScript.tsx +5 -5
  1055. package/src/theme/constants.ts +5 -2
  1056. package/src/theme/index.ts +4 -14
  1057. package/src/theme/theme-context.ts +4 -30
  1058. package/src/theme/theme-script.ts +21 -18
  1059. package/src/types/boundaries.ts +158 -0
  1060. package/src/types/cache-types.ts +198 -0
  1061. package/src/types/error-types.ts +192 -0
  1062. package/src/types/global-namespace.ts +100 -0
  1063. package/src/types/handler-context.ts +764 -0
  1064. package/src/types/index.ts +88 -0
  1065. package/src/types/loader-types.ts +209 -0
  1066. package/src/types/request-scope.ts +126 -0
  1067. package/src/types/route-config.ts +170 -0
  1068. package/src/types/route-entry.ts +120 -0
  1069. package/src/types/segments.ts +167 -0
  1070. package/src/types.ts +1 -1757
  1071. package/src/urls/include-helper.ts +207 -0
  1072. package/src/urls/index.ts +53 -0
  1073. package/src/urls/path-helper-types.ts +372 -0
  1074. package/src/urls/path-helper.ts +364 -0
  1075. package/src/urls/pattern-types.ts +107 -0
  1076. package/src/urls/response-types.ts +108 -0
  1077. package/src/urls/type-extraction.ts +372 -0
  1078. package/src/urls/urls-function.ts +98 -0
  1079. package/src/urls.ts +1 -1282
  1080. package/src/use-loader.tsx +327 -103
  1081. package/src/vite/debug.ts +184 -0
  1082. package/src/vite/discovery/bundle-postprocess.ts +181 -0
  1083. package/src/vite/discovery/discover-routers.ts +376 -0
  1084. package/src/vite/discovery/gate-state.ts +171 -0
  1085. package/src/vite/discovery/prerender-collection.ts +486 -0
  1086. package/src/vite/discovery/route-types-writer.ts +258 -0
  1087. package/src/vite/discovery/self-gen-tracking.ts +73 -0
  1088. package/src/vite/discovery/state.ts +126 -0
  1089. package/src/vite/discovery/virtual-module-codegen.ts +203 -0
  1090. package/src/vite/index.ts +15 -2063
  1091. package/src/vite/plugin-types.ts +103 -0
  1092. package/src/vite/plugins/cjs-to-esm.ts +98 -0
  1093. package/src/vite/plugins/client-ref-dedup.ts +131 -0
  1094. package/src/vite/plugins/client-ref-hashing.ts +117 -0
  1095. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  1096. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  1097. package/src/vite/plugins/cloudflare-protocol-stub.ts +214 -0
  1098. package/src/vite/{expose-action-id.ts → plugins/expose-action-id.ts} +107 -64
  1099. package/src/vite/plugins/expose-id-utils.ts +299 -0
  1100. package/src/vite/plugins/expose-ids/export-analysis.ts +296 -0
  1101. package/src/vite/plugins/expose-ids/handler-transform.ts +209 -0
  1102. package/src/vite/plugins/expose-ids/loader-transform.ts +74 -0
  1103. package/src/vite/plugins/expose-ids/router-transform.ts +127 -0
  1104. package/src/vite/plugins/expose-ids/types.ts +45 -0
  1105. package/src/vite/plugins/expose-internal-ids.ts +816 -0
  1106. package/src/vite/plugins/performance-tracks.ts +96 -0
  1107. package/src/vite/plugins/refresh-cmd.ts +127 -0
  1108. package/src/vite/plugins/use-cache-transform.ts +336 -0
  1109. package/src/vite/plugins/version-injector.ts +109 -0
  1110. package/src/vite/plugins/version-plugin.ts +323 -0
  1111. package/src/vite/plugins/virtual-entries.ts +123 -0
  1112. package/src/vite/plugins/virtual-stub-plugin.ts +29 -0
  1113. package/src/vite/rango.ts +497 -0
  1114. package/src/vite/router-discovery.ts +1482 -0
  1115. package/src/vite/utils/ast-handler-extract.ts +517 -0
  1116. package/src/vite/utils/banner.ts +36 -0
  1117. package/src/vite/utils/bundle-analysis.ts +137 -0
  1118. package/src/vite/utils/manifest-utils.ts +70 -0
  1119. package/src/vite/utils/package-resolution.ts +161 -0
  1120. package/src/vite/utils/prerender-utils.ts +222 -0
  1121. package/src/vite/utils/shared-utils.ts +170 -0
  1122. package/CLAUDE.md +0 -43
  1123. package/src/browser/lru-cache.ts +0 -69
  1124. package/src/browser/request-controller.ts +0 -164
  1125. package/src/cache/memory-store.ts +0 -253
  1126. package/src/router.gen.ts +0 -6
  1127. package/src/urls.gen.ts +0 -8
  1128. package/src/vite/expose-handle-id.ts +0 -209
  1129. package/src/vite/expose-loader-id.ts +0 -426
  1130. package/src/vite/expose-location-state-id.ts +0 -177
  1131. package/src/vite/expose-prerender-handler-id.ts +0 -429
  1132. /package/src/vite/{version.d.ts → plugins/version.d.ts} +0 -0
package/src/server.ts CHANGED
@@ -1,171 +1,51 @@
1
1
  /**
2
- * rsc-router/server
2
+ * @rangojs/router/server — Internal subpath
3
3
  *
4
- * Server-only exports for route definition and building
5
- * These should only be imported in server-side handler files
4
+ * This module is NOT user-facing. Import from "@rangojs/router" instead.
5
+ *
6
+ * Exports here are consumed by the Vite plugin (discovery, manifest injection,
7
+ * virtual modules) and the RSC handler internals. They are not part of the
8
+ * public API and may change without notice.
6
9
  */
7
10
 
8
- // Route definition helpers (server-only)
9
- export {
10
- createLoader,
11
- redirect,
12
- type RouteHelpers,
13
- type RouteHandlers,
14
- } from "./route-definition.js";
15
-
16
- // Django-style URL patterns (server-only)
17
- export {
18
- urls,
19
- RESPONSE_TYPE,
20
- type PathHelpers,
21
- type PathOptions,
22
- type UrlPatterns,
23
- type IncludeOptions,
24
- type ResponseHandler,
25
- type ResponseHandlerContext,
26
- type JsonResponseHandler,
27
- type TextResponseHandler,
28
- type JsonValue,
29
- type ResponsePathFn,
30
- type JsonResponsePathFn,
31
- type TextResponsePathFn,
32
- type RouteResponse,
33
- type ResponseError,
34
- type ResponseEnvelope,
35
- } from "./urls.js";
36
-
37
- // Re-export IncludeItem from route-types
38
- export type { IncludeItem } from "./route-types.js";
11
+ // Router registry (used by Vite plugin for build-time discovery)
12
+ export { RSC_ROUTER_BRAND, RouterRegistry } from "./router.js";
39
13
 
40
- // Core router (server-only)
14
+ // Host router registry (used by Vite plugin for host-router lazy discovery)
41
15
  export {
42
- createRouter,
43
- RSC_ROUTER_BRAND,
44
- RouterRegistry,
45
- type RSCRouter,
46
- type RSCRouterOptions,
47
- type RootLayoutProps,
48
- } from "./router.js";
16
+ HostRouterRegistry,
17
+ type HostRouterRegistryEntry,
18
+ } from "./host/router.js";
49
19
 
50
- // Type-safe reverse utilities (Django-style URL reversal)
20
+ // Route map builder (Vite plugin injects these via virtual modules)
51
21
  export {
52
- createReverse,
53
- type ReverseFunction,
54
- type PrefixedRoutes,
55
- type PrefixRoutePatterns,
56
- type ParamsFor,
57
- type SanitizePrefix,
58
- type MergeRoutes,
59
- } from "./reverse.js";
22
+ registerRouteMap,
23
+ setCachedManifest,
24
+ clearCachedManifest,
25
+ clearAllRouterData,
26
+ getGlobalRouteMap,
27
+ getRouterManifest,
28
+ setPrecomputedEntries,
29
+ setRouteTrie,
30
+ setManifestReadyPromise,
31
+ setRouterManifest,
32
+ setRouterTrie,
33
+ setRouterPrecomputedEntries,
34
+ registerRouterManifestLoader,
35
+ ensureRouterManifest,
36
+ } from "./route-map-builder.js";
60
37
 
61
- // Segment system (server-only)
62
- export { renderSegments } from "./segment-system.js";
63
-
64
- // Performance tracking (server-only)
65
- export { track } from "./server/context.js";
66
-
67
- // Handle API (works in both server and client contexts)
68
- export { createHandle, isHandle, type Handle } from "./handle.js";
69
-
70
- // Pre-render handler API
38
+ // Loader registry (Vite plugin registers lazy loader imports)
71
39
  export {
72
- createPrerenderHandler,
73
- isPrerenderHandler,
74
- type PrerenderHandlerDefinition,
75
- type PrerenderOptions,
76
- type BuildContext,
77
- } from "./prerender.js";
78
-
79
- // Built-in handles
80
- export { Meta } from "./handles/meta.js";
81
-
82
- // Loader registry (for GET-based loader fetching)
83
- export { registerLoaderById, setLoaderImports } from "./server/loader-registry.js";
40
+ registerLoaderById,
41
+ setLoaderImports,
42
+ } from "./server/loader-registry.js";
84
43
 
85
- // Route map builder (for build-time manifest registration)
86
- export { registerRouteMap, setCachedManifest, setPrecomputedEntries, setRouteTrie, setManifestReadyPromise } from "./route-map-builder.js";
87
-
88
- // Request context (for accessing request data in server components/actions)
44
+ // Request context creation (used by RSC handler, not user-facing)
89
45
  export {
90
- getRequestContext,
91
- requireRequestContext,
92
46
  createRequestContext,
93
- type RequestContext,
94
47
  type CreateRequestContextOptions,
95
48
  } from "./server/request-context.js";
96
49
 
97
- // Meta types
98
- export type { MetaDescriptor, MetaDescriptorBase } from "./router/types.js";
99
-
100
- // Middleware context types (Middleware type is exported from types.ts)
101
- export type {
102
- MiddlewareContext,
103
- CookieOptions,
104
- } from "./router/middleware.js";
105
-
106
- // Error classes and utilities
107
- export {
108
- RouteNotFoundError,
109
- DataNotFoundError,
110
- notFound,
111
- MiddlewareError,
112
- HandlerError,
113
- BuildError,
114
- InvalidHandlerError,
115
- sanitizeError,
116
- RouterError,
117
- } from "./errors.js";
118
-
119
- // Component utilities
120
- export {
121
- isClientComponent,
122
- assertClientComponent,
123
- } from "./component-utils.js";
124
-
125
- // Debug utilities for route matching (development only)
126
- export {
127
- enableMatchDebug,
128
- getMatchDebugStats,
129
- } from "./router/pattern-matching.js";
130
-
131
- // Types (re-exported for convenience - user-facing only)
132
- export type {
133
- // Configuration types
134
- RouterEnv,
135
- DefaultEnv,
136
- RouteDefinition,
137
- RouteConfig,
138
- RouteDefinitionOptions,
139
- TrailingSlashMode,
140
- // Handler types
141
- Handler, // Supports params object, path pattern, or route name
142
- HandlerContext,
143
- ExtractParams,
144
- GenericParams,
145
- // Middleware types (also exported from router/middleware.js above)
146
- Middleware, // Supports env type and optional route name for params
147
- // Revalidation types
148
- RevalidateParams,
149
- Revalidate,
150
- RouteKeys,
151
- // Loader types
152
- LoaderDefinition,
153
- LoaderFn,
154
- LoaderContext,
155
- // Error boundary types
156
- ErrorInfo,
157
- ErrorBoundaryFallbackProps,
158
- ErrorBoundaryHandler,
159
- ClientErrorBoundaryFallbackProps,
160
- // NotFound boundary types
161
- NotFoundInfo,
162
- NotFoundBoundaryFallbackProps,
163
- NotFoundBoundaryHandler,
164
- // Error handling callback types
165
- ErrorPhase,
166
- OnErrorContext,
167
- OnErrorCallback,
168
- } from "./types.js";
169
-
170
- // Path-based response type lookup from RegisteredRoutes
171
- export type { PathResponse } from "./href-client.js";
50
+ // Component utilities (used internally for server/client boundary checks)
51
+ export { isClientComponent, assertClientComponent } from "./component-utils.js";
package/src/ssr/index.tsx CHANGED
@@ -1,14 +1,18 @@
1
1
  import React from "react";
2
- import { initHandleDataSync } from "../browser/react/use-handle.js";
3
- import { initSegmentsSync } from "../browser/react/use-segments.js";
4
- import { initThemeConfigSync } from "../theme/theme-context.js";
2
+ import { renderSegments } from "../segment-system.js";
3
+ import { filterSegmentOrder } from "../browser/react/filter-segment-order.js";
5
4
  import { ThemeProvider } from "../theme/ThemeProvider.js";
5
+ import { NonceContext } from "../browser/react/nonce-context.js";
6
6
  import { NavigationStoreContext } from "../browser/react/context.js";
7
7
  import type { NavigationStoreContextValue } from "../browser/react/context.js";
8
8
  import type { HandleData } from "../browser/types.js";
9
9
  import type { ErrorPhase } from "../types.js";
10
+ import type { ResolvedSegment } from "../types.js";
10
11
  import type { ResolvedThemeConfig, Theme } from "../theme/types.js";
11
- import type { EventController, DerivedNavigationState } from "../browser/event-controller.js";
12
+ import type {
13
+ EventController,
14
+ DerivedNavigationState,
15
+ } from "../browser/event-controller.js";
12
16
 
13
17
  /**
14
18
  * Options for injectRSCPayload
@@ -29,6 +33,13 @@ interface RenderToReadableStreamOptions {
29
33
  formState?: unknown;
30
34
  }
31
35
 
36
+ /**
37
+ * ReadableStream with the allReady promise added by react-dom/server.edge.
38
+ */
39
+ interface ReactDOMReadableStream extends ReadableStream<Uint8Array> {
40
+ allReady: Promise<void>;
41
+ }
42
+
32
43
  /**
33
44
  * Options for the renderHTML function
34
45
  */
@@ -45,6 +56,14 @@ export interface SSRRenderOptions {
45
56
  * Nonce for Content Security Policy (CSP)
46
57
  */
47
58
  nonce?: string;
59
+
60
+ /**
61
+ * SSR stream mode.
62
+ *
63
+ * - `"stream"` (default) — start flushing HTML immediately.
64
+ * - `"allReady"` — await `stream.allReady` before returning.
65
+ */
66
+ streamMode?: import("../router/router-options.js").SSRStreamMode;
48
67
  }
49
68
 
50
69
  /**
@@ -54,22 +73,24 @@ export interface SSRDependencies<TEnv = unknown> {
54
73
  /**
55
74
  * createFromReadableStream from @vitejs/plugin-rsc/ssr
56
75
  */
57
- createFromReadableStream: <T>(stream: ReadableStream<Uint8Array>) => Promise<T>;
76
+ createFromReadableStream: <T>(
77
+ stream: ReadableStream<Uint8Array>,
78
+ ) => Promise<T>;
58
79
 
59
80
  /**
60
81
  * renderToReadableStream from react-dom/server.edge
61
82
  */
62
83
  renderToReadableStream: (
63
84
  element: React.ReactNode,
64
- options?: RenderToReadableStreamOptions
65
- ) => Promise<ReadableStream<Uint8Array>>;
85
+ options?: RenderToReadableStreamOptions,
86
+ ) => Promise<ReactDOMReadableStream>;
66
87
 
67
88
  /**
68
89
  * injectRSCPayload from rsc-html-stream/server
69
90
  */
70
91
  injectRSCPayload: (
71
92
  rscStream: ReadableStream<Uint8Array>,
72
- options?: InjectRSCPayloadOptions
93
+ options?: InjectRSCPayloadOptions,
73
94
  ) => TransformStream<Uint8Array, Uint8Array>;
74
95
 
75
96
  /**
@@ -101,13 +122,17 @@ export interface SSRDependencies<TEnv = unknown> {
101
122
  * RSC payload type (minimal interface for SSR)
102
123
  */
103
124
  interface RscPayload {
104
- root: React.ReactNode;
105
125
  metadata?: {
126
+ segments?: ResolvedSegment[];
127
+ rootLayout?: React.ComponentType<{ children: React.ReactNode }>;
106
128
  handles?: AsyncGenerator<HandleData, void, unknown>;
107
129
  matched?: string[];
108
130
  pathname?: string;
131
+ params?: Record<string, string>;
132
+ basename?: string;
109
133
  themeConfig?: ResolvedThemeConfig | null;
110
134
  initialTheme?: Theme;
135
+ version?: string;
111
136
  };
112
137
  }
113
138
 
@@ -116,7 +141,7 @@ interface RscPayload {
116
141
  * Used for SSR where we need to await all handle data before rendering.
117
142
  */
118
143
  async function consumeAsyncGenerator(
119
- generator: AsyncGenerator<HandleData, void, unknown>
144
+ generator: AsyncGenerator<HandleData, void, unknown>,
120
145
  ): Promise<HandleData> {
121
146
  let lastData: HandleData = {};
122
147
  for await (const data of generator) {
@@ -129,11 +154,26 @@ async function consumeAsyncGenerator(
129
154
  * Create a minimal event controller for SSR.
130
155
  * This provides the correct pathname so useNavigation returns the right value during SSR.
131
156
  */
132
- function createSsrEventController(pathname: string): EventController {
133
- const location = new URL(pathname, "http://localhost");
157
+ function createSsrEventController(opts: {
158
+ pathname: string;
159
+ params?: Record<string, string>;
160
+ handleData?: HandleData;
161
+ matched?: string[];
162
+ }): EventController {
163
+ const location = new URL(opts.pathname, "http://localhost");
164
+ let params = opts.params ?? {};
165
+ const rawMatched = opts.matched ?? [];
166
+ const handleState = {
167
+ data: opts.handleData ?? {},
168
+ segmentOrder: filterSegmentOrder(rawMatched),
169
+ routeSegmentIds: rawMatched.filter(
170
+ (id) => !id.includes(".@") && !/D\d+\./.test(id),
171
+ ),
172
+ };
134
173
  const state: DerivedNavigationState = {
135
174
  state: "idle",
136
175
  isStreaming: false,
176
+ isNavigating: false,
137
177
  location,
138
178
  pendingUrl: null,
139
179
  inflightActions: [],
@@ -141,6 +181,7 @@ function createSsrEventController(pathname: string): EventController {
141
181
 
142
182
  return {
143
183
  getState: () => state,
184
+ getLocation: () => location,
144
185
  subscribe: () => () => {},
145
186
  getActionState: () => ({
146
187
  state: "idle",
@@ -152,7 +193,11 @@ function createSsrEventController(pathname: string): EventController {
152
193
  subscribeToAction: () => () => {},
153
194
  subscribeToHandles: () => () => {},
154
195
  setHandleData: () => {},
155
- getHandleState: () => ({ data: {}, segmentOrder: [] }),
196
+ getHandleState: () => handleState,
197
+ setParams: (nextParams) => {
198
+ params = nextParams;
199
+ },
200
+ getParams: () => params,
156
201
  setLocation: () => {},
157
202
  startNavigation: () => {
158
203
  throw new Error("Navigation not supported during SSR");
@@ -164,6 +209,7 @@ function createSsrEventController(pathname: string): EventController {
164
209
  abortAllActions: () => {},
165
210
  getCurrentNavigation: () => null,
166
211
  getInflightActions: () => new Map(),
212
+ hadAnyConcurrentActions: () => false,
167
213
  };
168
214
  }
169
215
 
@@ -203,9 +249,9 @@ export function createSSRHandler<TEnv = unknown>(deps: SSRDependencies<TEnv>) {
203
249
  */
204
250
  return async function renderHTML(
205
251
  rscStream: ReadableStream<Uint8Array>,
206
- options?: SSRRenderOptions
252
+ options?: SSRRenderOptions,
207
253
  ): Promise<ReadableStream<Uint8Array>> {
208
- const { nonce, formState } = options ?? {};
254
+ const { nonce, formState, streamMode } = options ?? {};
209
255
 
210
256
  try {
211
257
  // Tee the stream:
@@ -221,46 +267,69 @@ export function createSSRHandler<TEnv = unknown>(deps: SSRDependencies<TEnv>) {
221
267
  payload ??= createFromReadableStream<RscPayload>(rscStream1);
222
268
  const resolved = React.use(payload);
223
269
 
224
- // Initialize segments state before children render (for useSegments hook)
225
- initSegmentsSync(resolved.metadata?.matched, resolved.metadata?.pathname);
226
-
227
- // Initialize theme config for MetaTags to render theme script
228
270
  const themeConfig = resolved.metadata?.themeConfig ?? null;
229
- initThemeConfigSync(themeConfig);
271
+ const pathname = resolved.metadata?.pathname ?? "/";
230
272
 
231
- // Await handles and initialize state before children render
273
+ // Await handles before creating SSR event controller so hooks can
274
+ // read request-local handle data via NavigationStoreContext.
232
275
  // The handles property is an async generator that yields on each push
233
276
  // Memoize the promise since async generators can only be iterated once
277
+ let handleData: HandleData = {};
234
278
  if (resolved.metadata?.handles) {
235
279
  handlesPromise ??= consumeAsyncGenerator(resolved.metadata.handles);
236
- const handleData = React.use(handlesPromise);
237
- initHandleDataSync(handleData, resolved.metadata.matched);
280
+ handleData = React.use(handlesPromise);
238
281
  }
239
282
 
240
- // Create SSR context with correct pathname for useNavigation
283
+ // Create SSR context with request-local pathname/params/handles.
241
284
  ssrContextValue ??= {
242
285
  store: null as any,
243
- eventController: createSsrEventController(resolved.metadata?.pathname ?? "/"),
286
+ eventController: createSsrEventController({
287
+ pathname,
288
+ params: resolved.metadata?.params,
289
+ handleData,
290
+ matched: resolved.metadata?.matched,
291
+ }),
244
292
  navigate: async () => {},
245
293
  refresh: async () => {},
294
+ version: resolved.metadata?.version,
295
+ basename: resolved.metadata?.basename,
246
296
  };
247
297
 
248
- // Build content tree with all necessary providers
298
+ // Build content tree from segments.
249
299
  // Order must match NavigationProvider: NavigationStoreContext > ThemeProvider > content
250
- let content: React.ReactNode = resolved.root;
300
+ const reconstructedRoot = renderSegments(
301
+ resolved.metadata?.segments ?? [],
302
+ {
303
+ rootLayout: resolved.metadata?.rootLayout,
304
+ },
305
+ );
306
+ let content: React.ReactNode =
307
+ reconstructedRoot instanceof Promise
308
+ ? React.use(reconstructedRoot)
309
+ : reconstructedRoot;
251
310
 
252
311
  // Wrap content with ThemeProvider if theme is enabled
253
312
  if (themeConfig) {
254
313
  content = (
255
- <ThemeProvider config={themeConfig} initialTheme={resolved.metadata?.initialTheme}>
314
+ <ThemeProvider
315
+ config={themeConfig}
316
+ initialTheme={resolved.metadata?.initialTheme}
317
+ >
256
318
  {content}
257
319
  </ThemeProvider>
258
320
  );
259
321
  }
260
322
 
323
+ // Wrap with NonceContext so client components (e.g. MetaTags) can
324
+ // apply CSP nonces to inline scripts during SSR. Always present to
325
+ // match the browser-side NavigationProvider tree shape for hydration.
326
+ content = (
327
+ <NonceContext.Provider value={nonce}>{content}</NonceContext.Provider>
328
+ );
329
+
261
330
  // Wrap with NavigationStoreContext for useNavigation hook
262
331
  return (
263
- <NavigationStoreContext.Provider value={ssrContextValue}>
332
+ <NavigationStoreContext.Provider value={ssrContextValue!}>
264
333
  {content}
265
334
  </NavigationStoreContext.Provider>
266
335
  );
@@ -278,12 +347,20 @@ export function createSSRHandler<TEnv = unknown>(deps: SSRDependencies<TEnv>) {
278
347
  nonce,
279
348
  });
280
349
 
350
+ // Wait for all Suspense boundaries to resolve when streamMode is "allReady".
351
+ // This buffers the entire HTML before flushing — used for bots that
352
+ // cannot process streamed HTML.
353
+ if (streamMode === "allReady") {
354
+ await htmlStream.allReady;
355
+ }
356
+
281
357
  // Inject RSC payload into HTML as <script nonce="...">__FLIGHT_DATA__</script>
282
358
  return htmlStream.pipeThrough(injectRSCPayload(rscStream2, { nonce }));
283
359
  } catch (error) {
284
360
  // Invoke onError callback if provided
285
361
  if (onError) {
286
- const errorObj = error instanceof Error ? error : new Error(String(error));
362
+ const errorObj =
363
+ error instanceof Error ? error : new Error(String(error));
287
364
  try {
288
365
  onError(errorObj, { phase: "rendering" });
289
366
  } catch (callbackError) {
@@ -0,0 +1,126 @@
1
+ /**
2
+ * Static handler definition for build-time rendering of individual segments.
3
+ *
4
+ * Static wraps a handler so that in production the segment is
5
+ * rendered once at build time. The handler is then replaced with a static
6
+ * asset import -- no runtime store lookup needed.
7
+ *
8
+ * In dev mode, Static behaves as a normal handler: the wrapped
9
+ * function runs on every request, identical to a regular layout/path handler.
10
+ *
11
+ * The $$id is auto-generated by the Vite exposeInternalIds plugin based on
12
+ * file path and export name. No manual naming required.
13
+ *
14
+ * Key difference from Prerender:
15
+ * - Prerender: route-scoped, produces URLs via getParams, renders subtree per-params
16
+ * - Static: segment-scoped, renders once, no URLs, no params
17
+ *
18
+ * Works on: layout(), parallel(), and path().
19
+ *
20
+ * @example
21
+ * ```ts
22
+ * export const DocsNav = Static((ctx) => <Nav docs={readDocsSync()} />);
23
+ * export const DocShell = Static((ctx) => <Shell />);
24
+ *
25
+ * urls(({ path, layout }) => [
26
+ * layout(DocsNav, () => [
27
+ * path("/getting-started", DocShell, { name: "doc.gs" }),
28
+ * path("/:slug", Prerender(getParams, DocPageHandler)),
29
+ * ]),
30
+ * ]);
31
+ * ```
32
+ */
33
+ import type { ReactNode } from "react";
34
+ import type { Handler } from "./types.js";
35
+ import type { StaticBuildContext } from "./prerender.js";
36
+ import type { UseItems, HandlerUseItem } from "./route-types.js";
37
+ import { isCachedFunction } from "./cache/taint.js";
38
+
39
+ // -- Types ------------------------------------------------------------------
40
+
41
+ export interface StaticHandlerOptions {
42
+ /**
43
+ * Keep handler in server bundle for live fallback (default: false).
44
+ * false: handler replaced with stub, source-only APIs excluded from bundle.
45
+ * true: handler stays in bundle, renders live at request time.
46
+ */
47
+ passthrough?: boolean;
48
+ }
49
+
50
+ export interface StaticHandlerDefinition<
51
+ TParams extends Record<string, any> = any,
52
+ > {
53
+ readonly __brand: "staticHandler";
54
+ /** Auto-generated unique ID (injected by Vite plugin). */
55
+ $$id: string;
56
+ /** In dev mode, the actual handler function that layout/path/parallel can call. */
57
+ handler: Handler<TParams>;
58
+ /** Static handler options (passthrough support). */
59
+ options?: StaticHandlerOptions;
60
+ /** Composable default DSL items merged when the handler is mounted. */
61
+ use?: () => UseItems<HandlerUseItem>;
62
+ }
63
+
64
+ // -- Function ---------------------------------------------------------------
65
+
66
+ export function Static<TParams extends Record<string, any> = {}>(
67
+ handler: (ctx: StaticBuildContext) => ReactNode | Promise<ReactNode>,
68
+ options?: StaticHandlerOptions,
69
+ __injectedId?: string,
70
+ ): StaticHandlerDefinition<TParams>;
71
+
72
+ // -- Implementation ---------------------------------------------------------
73
+
74
+ export function Static<TParams extends Record<string, any>>(
75
+ handler: Function,
76
+ optionsOrId?: StaticHandlerOptions | string,
77
+ maybeId?: string,
78
+ ): StaticHandlerDefinition<TParams> {
79
+ if (isCachedFunction(handler)) {
80
+ throw new Error(
81
+ 'A "use cache" function cannot be used as a Static() handler. ' +
82
+ "Static handlers are rendered once at build time. Remove the " +
83
+ '"use cache" directive — Static already provides caching.',
84
+ );
85
+ }
86
+
87
+ let options: StaticHandlerOptions | undefined;
88
+ let id: string;
89
+
90
+ if (typeof optionsOrId === "string") {
91
+ id = optionsOrId;
92
+ } else {
93
+ options = optionsOrId as StaticHandlerOptions | undefined;
94
+ id = maybeId ?? "";
95
+ }
96
+
97
+ if (!id) {
98
+ throw new Error(
99
+ "[rsc-router] Static: missing $$id. " +
100
+ "Ensure the exposeInternalIds Vite plugin is configured.",
101
+ );
102
+ }
103
+
104
+ return {
105
+ __brand: "staticHandler" as const,
106
+ $$id: id,
107
+ handler: handler as Handler<TParams>,
108
+ ...(options ? { options } : {}),
109
+ };
110
+ }
111
+
112
+ // -- Type guard -------------------------------------------------------------
113
+
114
+ /**
115
+ * Type guard to check if a value is a StaticHandlerDefinition.
116
+ */
117
+ export function isStaticHandler(
118
+ value: unknown,
119
+ ): value is StaticHandlerDefinition {
120
+ return (
121
+ typeof value === "object" &&
122
+ value !== null &&
123
+ "__brand" in value &&
124
+ (value as { __brand: unknown }).__brand === "staticHandler"
125
+ );
126
+ }
@@ -11,7 +11,13 @@
11
11
  * - Handles SSR hydration by deferring system theme detection
12
12
  */
13
13
 
14
- import React, { useCallback, useEffect, useMemo, useState, useRef } from "react";
14
+ import React, {
15
+ useCallback,
16
+ useEffect,
17
+ useMemo,
18
+ useState,
19
+ useRef,
20
+ } from "react";
15
21
  import { ThemeContext } from "./theme-context.js";
16
22
  import type {
17
23
  ResolvedTheme,
@@ -44,7 +50,12 @@ function readThemeFromCookie(storageKey: string): string | null {
44
50
  for (const cookie of cookies) {
45
51
  const [name, ...rest] = cookie.trim().split("=");
46
52
  if (name === storageKey) {
47
- return decodeURIComponent(rest.join("="));
53
+ const raw = rest.join("=");
54
+ try {
55
+ return decodeURIComponent(raw);
56
+ } catch {
57
+ return raw;
58
+ }
48
59
  }
49
60
  }
50
61
  return null;
@@ -90,15 +101,13 @@ function writeThemeToStorage(storageKey: string, theme: Theme): void {
90
101
  /**
91
102
  * Apply theme to HTML element
92
103
  */
93
- function applyThemeToDocument(
94
- theme: Theme,
95
- config: ResolvedThemeConfig
96
- ): void {
104
+ function applyThemeToDocument(theme: Theme, config: ResolvedThemeConfig): void {
97
105
  if (typeof document === "undefined") return;
98
106
 
99
- const resolved = theme === "system" && config.enableSystem
100
- ? getSystemTheme()
101
- : (theme as ResolvedTheme);
107
+ const resolved =
108
+ theme === "system" && config.enableSystem
109
+ ? getSystemTheme()
110
+ : (theme as ResolvedTheme);
102
111
 
103
112
  const value = config.value[resolved] || resolved;
104
113
  const el = document.documentElement;
@@ -188,7 +197,7 @@ export function ThemeProvider({
188
197
  writeThemeToStorage(config.storageKey, newTheme);
189
198
  applyThemeToDocument(newTheme, config);
190
199
  },
191
- [config]
200
+ [config],
192
201
  );
193
202
 
194
203
  // Listen for system preference changes
@@ -227,10 +236,7 @@ export function ThemeProvider({
227
236
  if (!newTheme) return;
228
237
 
229
238
  // Validate and apply
230
- if (
231
- newTheme === "system" ||
232
- config.themes.includes(newTheme)
233
- ) {
239
+ if (newTheme === "system" || config.themes.includes(newTheme)) {
234
240
  setThemeState(newTheme as Theme);
235
241
  applyThemeToDocument(newTheme as Theme, config);
236
242
  }
@@ -280,7 +286,7 @@ export function ThemeProvider({
280
286
  themes,
281
287
  config,
282
288
  }),
283
- [theme, setTheme, resolvedTheme, systemTheme, themes, config, mounted]
289
+ [theme, setTheme, resolvedTheme, systemTheme, themes, config, mounted],
284
290
  );
285
291
 
286
292
  return (