@rangojs/router 0.0.0-experimental.137 → 0.0.0-experimental.139

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 (866) hide show
  1. package/README.md +273 -924
  2. package/dist/bin/rango.js +265 -56
  3. package/dist/vite/index.js +710 -119
  4. package/package.json +16 -1
  5. package/skills/comparison/SKILL.md +50 -0
  6. package/skills/comparison/agents/openai.yaml +4 -0
  7. package/skills/comparison/references/framework-comparison.md +837 -0
  8. package/skills/composability/SKILL.md +50 -0
  9. package/skills/host-router/SKILL.md +45 -3
  10. package/skills/layout/SKILL.md +26 -9
  11. package/skills/middleware/SKILL.md +6 -2
  12. package/skills/migrate-nextjs/SKILL.md +12 -0
  13. package/skills/observability/SKILL.md +23 -1
  14. package/skills/parallel/SKILL.md +11 -3
  15. package/skills/rango/SKILL.md +76 -24
  16. package/skills/response-routes/SKILL.md +14 -0
  17. package/skills/route/SKILL.md +19 -3
  18. package/skills/router-setup/SKILL.md +13 -0
  19. package/skills/shell-manifest/SKILL.md +185 -0
  20. package/skills/testing/reverse-and-types.md +8 -7
  21. package/skills/vercel/SKILL.md +128 -0
  22. package/src/build/generate-manifest.ts +155 -131
  23. package/src/build/generate-route-types.ts +1 -0
  24. package/src/build/index.ts +3 -1
  25. package/src/build/route-types/include-resolution.ts +347 -47
  26. package/src/build/route-types/router-processing.ts +77 -27
  27. package/src/build/runtime-discovery.ts +4 -1
  28. package/src/cache/cf/cf-cache-store.ts +22 -0
  29. package/src/cache/index.ts +12 -0
  30. package/src/cache/vercel/index.ts +11 -0
  31. package/src/cache/vercel/vercel-cache-store.ts +948 -0
  32. package/src/host/errors.ts +15 -0
  33. package/src/host/index.ts +1 -0
  34. package/src/router/find-match.ts +71 -7
  35. package/src/router/lazy-includes.ts +64 -10
  36. package/src/router/manifest.ts +43 -6
  37. package/src/router/match-api.ts +2 -2
  38. package/src/router/navigation-snapshot.ts +7 -5
  39. package/src/router/prerender-match.ts +4 -2
  40. package/src/router/preview-match.ts +3 -1
  41. package/src/router/request-classification.ts +3 -1
  42. package/src/router/route-snapshot.ts +4 -2
  43. package/src/router/router-context.ts +3 -1
  44. package/src/router/router-interfaces.ts +9 -1
  45. package/src/router.ts +9 -2
  46. package/src/rsc/manifest-init.ts +1 -1
  47. package/src/testing/dispatch.ts +3 -3
  48. package/src/testing/generated-routes.ts +27 -11
  49. package/src/urls/include-helper.ts +10 -8
  50. package/src/urls/include-provider.ts +71 -0
  51. package/src/urls/path-helper-types.ts +25 -1
  52. package/src/vercel/index.ts +11 -0
  53. package/src/vercel/tracing.ts +88 -0
  54. package/src/vite/discovery/discover-routers.ts +1 -1
  55. package/src/vite/discovery/state.ts +1 -1
  56. package/src/vite/index.ts +2 -0
  57. package/src/vite/plugin-types.ts +84 -2
  58. package/src/vite/plugins/vercel-output.ts +384 -0
  59. package/src/vite/plugins/virtual-entries.ts +72 -0
  60. package/src/vite/rango.ts +128 -21
  61. package/src/vite/router-discovery.ts +8 -0
  62. package/src/vite/utils/shared-utils.ts +52 -2
  63. package/dist/__internal.d.ts +0 -83
  64. package/dist/__internal.d.ts.map +0 -1
  65. package/dist/__internal.js +0 -19
  66. package/dist/__internal.js.map +0 -1
  67. package/dist/__mocks__/version.d.ts +0 -7
  68. package/dist/__mocks__/version.d.ts.map +0 -1
  69. package/dist/__mocks__/version.js +0 -7
  70. package/dist/__mocks__/version.js.map +0 -1
  71. package/dist/__tests__/client-href.test.d.ts +0 -2
  72. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  73. package/dist/__tests__/client-href.test.js +0 -74
  74. package/dist/__tests__/client-href.test.js.map +0 -1
  75. package/dist/__tests__/component-utils.test.d.ts +0 -2
  76. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  77. package/dist/__tests__/component-utils.test.js +0 -51
  78. package/dist/__tests__/component-utils.test.js.map +0 -1
  79. package/dist/__tests__/event-controller.test.d.ts +0 -2
  80. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  81. package/dist/__tests__/event-controller.test.js +0 -538
  82. package/dist/__tests__/event-controller.test.js.map +0 -1
  83. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  84. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  85. package/dist/__tests__/helpers/route-tree.js +0 -374
  86. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  87. package/dist/__tests__/match-result.test.d.ts +0 -2
  88. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  89. package/dist/__tests__/match-result.test.js +0 -154
  90. package/dist/__tests__/match-result.test.js.map +0 -1
  91. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  92. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  93. package/dist/__tests__/navigation-store.test.js +0 -440
  94. package/dist/__tests__/navigation-store.test.js.map +0 -1
  95. package/dist/__tests__/partial-update.test.d.ts +0 -2
  96. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  97. package/dist/__tests__/partial-update.test.js +0 -1009
  98. package/dist/__tests__/partial-update.test.js.map +0 -1
  99. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  100. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  101. package/dist/__tests__/reverse-types.test.js +0 -656
  102. package/dist/__tests__/reverse-types.test.js.map +0 -1
  103. package/dist/__tests__/route-definition.test.d.ts +0 -2
  104. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  105. package/dist/__tests__/route-definition.test.js +0 -55
  106. package/dist/__tests__/route-definition.test.js.map +0 -1
  107. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  108. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  109. package/dist/__tests__/router-helpers.test.js +0 -377
  110. package/dist/__tests__/router-helpers.test.js.map +0 -1
  111. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  112. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  113. package/dist/__tests__/router-integration-2.test.js +0 -426
  114. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  115. package/dist/__tests__/router-integration.test.d.ts +0 -2
  116. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  117. package/dist/__tests__/router-integration.test.js +0 -1051
  118. package/dist/__tests__/router-integration.test.js.map +0 -1
  119. package/dist/__tests__/search-params.test.d.ts +0 -5
  120. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  121. package/dist/__tests__/search-params.test.js +0 -306
  122. package/dist/__tests__/search-params.test.js.map +0 -1
  123. package/dist/__tests__/segment-system.test.d.ts +0 -2
  124. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  125. package/dist/__tests__/segment-system.test.js +0 -627
  126. package/dist/__tests__/segment-system.test.js.map +0 -1
  127. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  128. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  129. package/dist/__tests__/static-handler-types.test.js +0 -63
  130. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  131. package/dist/__tests__/urls.test.d.ts +0 -2
  132. package/dist/__tests__/urls.test.d.ts.map +0 -1
  133. package/dist/__tests__/urls.test.js +0 -421
  134. package/dist/__tests__/urls.test.js.map +0 -1
  135. package/dist/__tests__/use-mount.test.d.ts +0 -2
  136. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  137. package/dist/__tests__/use-mount.test.js +0 -35
  138. package/dist/__tests__/use-mount.test.js.map +0 -1
  139. package/dist/bin/rango.d.ts +0 -2
  140. package/dist/bin/rango.d.ts.map +0 -1
  141. package/dist/bin/rango.js.map +0 -1
  142. package/dist/browser/event-controller.d.ts +0 -191
  143. package/dist/browser/event-controller.d.ts.map +0 -1
  144. package/dist/browser/event-controller.js +0 -559
  145. package/dist/browser/event-controller.js.map +0 -1
  146. package/dist/browser/index.d.ts +0 -2
  147. package/dist/browser/index.d.ts.map +0 -1
  148. package/dist/browser/index.js +0 -14
  149. package/dist/browser/index.js.map +0 -1
  150. package/dist/browser/link-interceptor.d.ts +0 -38
  151. package/dist/browser/link-interceptor.d.ts.map +0 -1
  152. package/dist/browser/link-interceptor.js +0 -99
  153. package/dist/browser/link-interceptor.js.map +0 -1
  154. package/dist/browser/logging.d.ts +0 -10
  155. package/dist/browser/logging.d.ts.map +0 -1
  156. package/dist/browser/logging.js +0 -29
  157. package/dist/browser/logging.js.map +0 -1
  158. package/dist/browser/lru-cache.d.ts +0 -17
  159. package/dist/browser/lru-cache.d.ts.map +0 -1
  160. package/dist/browser/lru-cache.js +0 -50
  161. package/dist/browser/lru-cache.js.map +0 -1
  162. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  163. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  164. package/dist/browser/merge-segment-loaders.js +0 -102
  165. package/dist/browser/merge-segment-loaders.js.map +0 -1
  166. package/dist/browser/navigation-bridge.d.ts +0 -102
  167. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  168. package/dist/browser/navigation-bridge.js +0 -708
  169. package/dist/browser/navigation-bridge.js.map +0 -1
  170. package/dist/browser/navigation-client.d.ts +0 -25
  171. package/dist/browser/navigation-client.d.ts.map +0 -1
  172. package/dist/browser/navigation-client.js +0 -157
  173. package/dist/browser/navigation-client.js.map +0 -1
  174. package/dist/browser/navigation-store.d.ts +0 -101
  175. package/dist/browser/navigation-store.d.ts.map +0 -1
  176. package/dist/browser/navigation-store.js +0 -625
  177. package/dist/browser/navigation-store.js.map +0 -1
  178. package/dist/browser/partial-update.d.ts +0 -75
  179. package/dist/browser/partial-update.d.ts.map +0 -1
  180. package/dist/browser/partial-update.js +0 -426
  181. package/dist/browser/partial-update.js.map +0 -1
  182. package/dist/browser/react/Link.d.ts +0 -86
  183. package/dist/browser/react/Link.d.ts.map +0 -1
  184. package/dist/browser/react/Link.js +0 -128
  185. package/dist/browser/react/Link.js.map +0 -1
  186. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  187. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  188. package/dist/browser/react/NavigationProvider.js +0 -216
  189. package/dist/browser/react/NavigationProvider.js.map +0 -1
  190. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  191. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  192. package/dist/browser/react/ScrollRestoration.js +0 -57
  193. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  194. package/dist/browser/react/context.d.ts +0 -46
  195. package/dist/browser/react/context.d.ts.map +0 -1
  196. package/dist/browser/react/context.js +0 -10
  197. package/dist/browser/react/context.js.map +0 -1
  198. package/dist/browser/react/index.d.ts +0 -11
  199. package/dist/browser/react/index.d.ts.map +0 -1
  200. package/dist/browser/react/index.js +0 -22
  201. package/dist/browser/react/index.js.map +0 -1
  202. package/dist/browser/react/location-state-shared.d.ts +0 -63
  203. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  204. package/dist/browser/react/location-state-shared.js +0 -81
  205. package/dist/browser/react/location-state-shared.js.map +0 -1
  206. package/dist/browser/react/location-state.d.ts +0 -23
  207. package/dist/browser/react/location-state.d.ts.map +0 -1
  208. package/dist/browser/react/location-state.js +0 -29
  209. package/dist/browser/react/location-state.js.map +0 -1
  210. package/dist/browser/react/mount-context.d.ts +0 -24
  211. package/dist/browser/react/mount-context.d.ts.map +0 -1
  212. package/dist/browser/react/mount-context.js +0 -24
  213. package/dist/browser/react/mount-context.js.map +0 -1
  214. package/dist/browser/react/use-action.d.ts +0 -64
  215. package/dist/browser/react/use-action.d.ts.map +0 -1
  216. package/dist/browser/react/use-action.js +0 -134
  217. package/dist/browser/react/use-action.js.map +0 -1
  218. package/dist/browser/react/use-client-cache.d.ts +0 -41
  219. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  220. package/dist/browser/react/use-client-cache.js +0 -39
  221. package/dist/browser/react/use-client-cache.js.map +0 -1
  222. package/dist/browser/react/use-handle.d.ts +0 -31
  223. package/dist/browser/react/use-handle.d.ts.map +0 -1
  224. package/dist/browser/react/use-handle.js +0 -144
  225. package/dist/browser/react/use-handle.js.map +0 -1
  226. package/dist/browser/react/use-href.d.ts +0 -33
  227. package/dist/browser/react/use-href.d.ts.map +0 -1
  228. package/dist/browser/react/use-href.js +0 -39
  229. package/dist/browser/react/use-href.js.map +0 -1
  230. package/dist/browser/react/use-link-status.d.ts +0 -37
  231. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  232. package/dist/browser/react/use-link-status.js +0 -99
  233. package/dist/browser/react/use-link-status.js.map +0 -1
  234. package/dist/browser/react/use-mount.d.ts +0 -25
  235. package/dist/browser/react/use-mount.d.ts.map +0 -1
  236. package/dist/browser/react/use-mount.js +0 -30
  237. package/dist/browser/react/use-mount.js.map +0 -1
  238. package/dist/browser/react/use-navigation.d.ts +0 -27
  239. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  240. package/dist/browser/react/use-navigation.js +0 -87
  241. package/dist/browser/react/use-navigation.js.map +0 -1
  242. package/dist/browser/react/use-segments.d.ts +0 -38
  243. package/dist/browser/react/use-segments.d.ts.map +0 -1
  244. package/dist/browser/react/use-segments.js +0 -130
  245. package/dist/browser/react/use-segments.js.map +0 -1
  246. package/dist/browser/request-controller.d.ts +0 -26
  247. package/dist/browser/request-controller.d.ts.map +0 -1
  248. package/dist/browser/request-controller.js +0 -147
  249. package/dist/browser/request-controller.js.map +0 -1
  250. package/dist/browser/rsc-router.d.ts +0 -129
  251. package/dist/browser/rsc-router.d.ts.map +0 -1
  252. package/dist/browser/rsc-router.js +0 -195
  253. package/dist/browser/rsc-router.js.map +0 -1
  254. package/dist/browser/scroll-restoration.d.ts +0 -93
  255. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  256. package/dist/browser/scroll-restoration.js +0 -321
  257. package/dist/browser/scroll-restoration.js.map +0 -1
  258. package/dist/browser/segment-structure-assert.d.ts +0 -17
  259. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  260. package/dist/browser/segment-structure-assert.js +0 -59
  261. package/dist/browser/segment-structure-assert.js.map +0 -1
  262. package/dist/browser/server-action-bridge.d.ts +0 -26
  263. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  264. package/dist/browser/server-action-bridge.js +0 -668
  265. package/dist/browser/server-action-bridge.js.map +0 -1
  266. package/dist/browser/shallow.d.ts +0 -12
  267. package/dist/browser/shallow.d.ts.map +0 -1
  268. package/dist/browser/shallow.js +0 -34
  269. package/dist/browser/shallow.js.map +0 -1
  270. package/dist/browser/types.d.ts +0 -369
  271. package/dist/browser/types.d.ts.map +0 -1
  272. package/dist/browser/types.js +0 -2
  273. package/dist/browser/types.js.map +0 -1
  274. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  275. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  276. package/dist/build/__tests__/generate-cli.test.js +0 -237
  277. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  278. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  279. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  280. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  281. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  282. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  283. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  284. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  285. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  286. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  287. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  288. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  289. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  290. package/dist/build/generate-manifest.d.ts +0 -81
  291. package/dist/build/generate-manifest.d.ts.map +0 -1
  292. package/dist/build/generate-manifest.js +0 -276
  293. package/dist/build/generate-manifest.js.map +0 -1
  294. package/dist/build/generate-route-types.d.ts +0 -115
  295. package/dist/build/generate-route-types.d.ts.map +0 -1
  296. package/dist/build/generate-route-types.js +0 -740
  297. package/dist/build/generate-route-types.js.map +0 -1
  298. package/dist/build/index.d.ts +0 -21
  299. package/dist/build/index.d.ts.map +0 -1
  300. package/dist/build/index.js +0 -21
  301. package/dist/build/index.js.map +0 -1
  302. package/dist/build/route-trie.d.ts +0 -71
  303. package/dist/build/route-trie.d.ts.map +0 -1
  304. package/dist/build/route-trie.js +0 -175
  305. package/dist/build/route-trie.js.map +0 -1
  306. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  307. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  308. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  309. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  310. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  311. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  312. package/dist/cache/__tests__/document-cache.test.js +0 -345
  313. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  314. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  315. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  316. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  317. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  318. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  319. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  320. package/dist/cache/__tests__/memory-store.test.js +0 -367
  321. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  322. package/dist/cache/cache-scope.d.ts +0 -102
  323. package/dist/cache/cache-scope.d.ts.map +0 -1
  324. package/dist/cache/cache-scope.js +0 -440
  325. package/dist/cache/cache-scope.js.map +0 -1
  326. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  327. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  328. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  329. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  330. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  331. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  332. package/dist/cache/cf/cf-cache-store.js +0 -242
  333. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  334. package/dist/cache/cf/index.d.ts +0 -14
  335. package/dist/cache/cf/index.d.ts.map +0 -1
  336. package/dist/cache/cf/index.js +0 -17
  337. package/dist/cache/cf/index.js.map +0 -1
  338. package/dist/cache/document-cache.d.ts +0 -64
  339. package/dist/cache/document-cache.d.ts.map +0 -1
  340. package/dist/cache/document-cache.js +0 -228
  341. package/dist/cache/document-cache.js.map +0 -1
  342. package/dist/cache/index.d.ts +0 -19
  343. package/dist/cache/index.d.ts.map +0 -1
  344. package/dist/cache/index.js +0 -21
  345. package/dist/cache/index.js.map +0 -1
  346. package/dist/cache/memory-segment-store.d.ts +0 -110
  347. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  348. package/dist/cache/memory-segment-store.js +0 -117
  349. package/dist/cache/memory-segment-store.js.map +0 -1
  350. package/dist/cache/memory-store.d.ts +0 -41
  351. package/dist/cache/memory-store.d.ts.map +0 -1
  352. package/dist/cache/memory-store.js +0 -191
  353. package/dist/cache/memory-store.js.map +0 -1
  354. package/dist/cache/types.d.ts +0 -317
  355. package/dist/cache/types.d.ts.map +0 -1
  356. package/dist/cache/types.js +0 -12
  357. package/dist/cache/types.js.map +0 -1
  358. package/dist/client.d.ts +0 -248
  359. package/dist/client.d.ts.map +0 -1
  360. package/dist/client.js +0 -367
  361. package/dist/client.js.map +0 -1
  362. package/dist/client.rsc.d.ts +0 -26
  363. package/dist/client.rsc.d.ts.map +0 -1
  364. package/dist/client.rsc.js +0 -46
  365. package/dist/client.rsc.js.map +0 -1
  366. package/dist/component-utils.d.ts +0 -36
  367. package/dist/component-utils.d.ts.map +0 -1
  368. package/dist/component-utils.js +0 -61
  369. package/dist/component-utils.js.map +0 -1
  370. package/dist/components/DefaultDocument.d.ts +0 -13
  371. package/dist/components/DefaultDocument.d.ts.map +0 -1
  372. package/dist/components/DefaultDocument.js +0 -15
  373. package/dist/components/DefaultDocument.js.map +0 -1
  374. package/dist/debug.d.ts +0 -58
  375. package/dist/debug.d.ts.map +0 -1
  376. package/dist/debug.js +0 -157
  377. package/dist/debug.js.map +0 -1
  378. package/dist/default-error-boundary.d.ts +0 -11
  379. package/dist/default-error-boundary.d.ts.map +0 -1
  380. package/dist/default-error-boundary.js +0 -45
  381. package/dist/default-error-boundary.js.map +0 -1
  382. package/dist/deps/browser.d.ts +0 -2
  383. package/dist/deps/browser.d.ts.map +0 -1
  384. package/dist/deps/browser.js +0 -3
  385. package/dist/deps/browser.js.map +0 -1
  386. package/dist/deps/html-stream-client.d.ts +0 -2
  387. package/dist/deps/html-stream-client.d.ts.map +0 -1
  388. package/dist/deps/html-stream-client.js +0 -3
  389. package/dist/deps/html-stream-client.js.map +0 -1
  390. package/dist/deps/html-stream-server.d.ts +0 -2
  391. package/dist/deps/html-stream-server.d.ts.map +0 -1
  392. package/dist/deps/html-stream-server.js +0 -3
  393. package/dist/deps/html-stream-server.js.map +0 -1
  394. package/dist/deps/rsc.d.ts +0 -2
  395. package/dist/deps/rsc.d.ts.map +0 -1
  396. package/dist/deps/rsc.js +0 -4
  397. package/dist/deps/rsc.js.map +0 -1
  398. package/dist/deps/ssr.d.ts +0 -2
  399. package/dist/deps/ssr.d.ts.map +0 -1
  400. package/dist/deps/ssr.js +0 -3
  401. package/dist/deps/ssr.js.map +0 -1
  402. package/dist/errors.d.ts +0 -174
  403. package/dist/errors.d.ts.map +0 -1
  404. package/dist/errors.js +0 -241
  405. package/dist/errors.js.map +0 -1
  406. package/dist/handle.d.ts +0 -78
  407. package/dist/handle.d.ts.map +0 -1
  408. package/dist/handle.js +0 -82
  409. package/dist/handle.js.map +0 -1
  410. package/dist/handles/MetaTags.d.ts +0 -14
  411. package/dist/handles/MetaTags.d.ts.map +0 -1
  412. package/dist/handles/MetaTags.js +0 -136
  413. package/dist/handles/MetaTags.js.map +0 -1
  414. package/dist/handles/index.d.ts +0 -6
  415. package/dist/handles/index.d.ts.map +0 -1
  416. package/dist/handles/index.js +0 -6
  417. package/dist/handles/index.js.map +0 -1
  418. package/dist/handles/meta.d.ts +0 -39
  419. package/dist/handles/meta.d.ts.map +0 -1
  420. package/dist/handles/meta.js +0 -202
  421. package/dist/handles/meta.js.map +0 -1
  422. package/dist/host/__tests__/errors.test.d.ts +0 -2
  423. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  424. package/dist/host/__tests__/errors.test.js +0 -76
  425. package/dist/host/__tests__/errors.test.js.map +0 -1
  426. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  427. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  428. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  429. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  430. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  431. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  432. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  433. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  434. package/dist/host/__tests__/router.test.d.ts +0 -2
  435. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  436. package/dist/host/__tests__/router.test.js +0 -241
  437. package/dist/host/__tests__/router.test.js.map +0 -1
  438. package/dist/host/__tests__/testing.test.d.ts +0 -2
  439. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  440. package/dist/host/__tests__/testing.test.js +0 -64
  441. package/dist/host/__tests__/testing.test.js.map +0 -1
  442. package/dist/host/__tests__/utils.test.d.ts +0 -2
  443. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  444. package/dist/host/__tests__/utils.test.js +0 -29
  445. package/dist/host/__tests__/utils.test.js.map +0 -1
  446. package/dist/host/cookie-handler.d.ts +0 -34
  447. package/dist/host/cookie-handler.d.ts.map +0 -1
  448. package/dist/host/cookie-handler.js +0 -124
  449. package/dist/host/cookie-handler.js.map +0 -1
  450. package/dist/host/errors.d.ts +0 -56
  451. package/dist/host/errors.d.ts.map +0 -1
  452. package/dist/host/errors.js +0 -79
  453. package/dist/host/errors.js.map +0 -1
  454. package/dist/host/index.d.ts +0 -29
  455. package/dist/host/index.d.ts.map +0 -1
  456. package/dist/host/index.js +0 -32
  457. package/dist/host/index.js.map +0 -1
  458. package/dist/host/pattern-matcher.d.ts +0 -36
  459. package/dist/host/pattern-matcher.d.ts.map +0 -1
  460. package/dist/host/pattern-matcher.js +0 -172
  461. package/dist/host/pattern-matcher.js.map +0 -1
  462. package/dist/host/router.d.ts +0 -26
  463. package/dist/host/router.d.ts.map +0 -1
  464. package/dist/host/router.js +0 -218
  465. package/dist/host/router.js.map +0 -1
  466. package/dist/host/testing.d.ts +0 -36
  467. package/dist/host/testing.d.ts.map +0 -1
  468. package/dist/host/testing.js +0 -55
  469. package/dist/host/testing.js.map +0 -1
  470. package/dist/host/types.d.ts +0 -115
  471. package/dist/host/types.d.ts.map +0 -1
  472. package/dist/host/types.js +0 -7
  473. package/dist/host/types.js.map +0 -1
  474. package/dist/host/utils.d.ts +0 -21
  475. package/dist/host/utils.d.ts.map +0 -1
  476. package/dist/host/utils.js +0 -23
  477. package/dist/host/utils.js.map +0 -1
  478. package/dist/href-client.d.ts +0 -131
  479. package/dist/href-client.d.ts.map +0 -1
  480. package/dist/href-client.js +0 -64
  481. package/dist/href-client.js.map +0 -1
  482. package/dist/href-context.d.ts +0 -29
  483. package/dist/href-context.d.ts.map +0 -1
  484. package/dist/href-context.js +0 -21
  485. package/dist/href-context.js.map +0 -1
  486. package/dist/index.d.ts +0 -73
  487. package/dist/index.d.ts.map +0 -1
  488. package/dist/index.js +0 -91
  489. package/dist/index.js.map +0 -1
  490. package/dist/index.rsc.d.ts +0 -32
  491. package/dist/index.rsc.d.ts.map +0 -1
  492. package/dist/index.rsc.js +0 -40
  493. package/dist/index.rsc.js.map +0 -1
  494. package/dist/internal-debug.d.ts +0 -2
  495. package/dist/internal-debug.d.ts.map +0 -1
  496. package/dist/internal-debug.js +0 -5
  497. package/dist/internal-debug.js.map +0 -1
  498. package/dist/loader.d.ts +0 -14
  499. package/dist/loader.d.ts.map +0 -1
  500. package/dist/loader.js +0 -20
  501. package/dist/loader.js.map +0 -1
  502. package/dist/loader.rsc.d.ts +0 -19
  503. package/dist/loader.rsc.d.ts.map +0 -1
  504. package/dist/loader.rsc.js +0 -99
  505. package/dist/loader.rsc.js.map +0 -1
  506. package/dist/network-error-thrower.d.ts +0 -17
  507. package/dist/network-error-thrower.d.ts.map +0 -1
  508. package/dist/network-error-thrower.js +0 -14
  509. package/dist/network-error-thrower.js.map +0 -1
  510. package/dist/outlet-context.d.ts +0 -13
  511. package/dist/outlet-context.d.ts.map +0 -1
  512. package/dist/outlet-context.js +0 -3
  513. package/dist/outlet-context.js.map +0 -1
  514. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  515. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  516. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  517. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  518. package/dist/prerender/param-hash.d.ts +0 -16
  519. package/dist/prerender/param-hash.d.ts.map +0 -1
  520. package/dist/prerender/param-hash.js +0 -36
  521. package/dist/prerender/param-hash.js.map +0 -1
  522. package/dist/prerender/store.d.ts +0 -38
  523. package/dist/prerender/store.d.ts.map +0 -1
  524. package/dist/prerender/store.js +0 -61
  525. package/dist/prerender/store.js.map +0 -1
  526. package/dist/prerender.d.ts +0 -66
  527. package/dist/prerender.d.ts.map +0 -1
  528. package/dist/prerender.js +0 -57
  529. package/dist/prerender.js.map +0 -1
  530. package/dist/reverse.d.ts +0 -196
  531. package/dist/reverse.d.ts.map +0 -1
  532. package/dist/reverse.js +0 -78
  533. package/dist/reverse.js.map +0 -1
  534. package/dist/root-error-boundary.d.ts +0 -33
  535. package/dist/root-error-boundary.d.ts.map +0 -1
  536. package/dist/root-error-boundary.js +0 -165
  537. package/dist/root-error-boundary.js.map +0 -1
  538. package/dist/route-content-wrapper.d.ts +0 -46
  539. package/dist/route-content-wrapper.d.ts.map +0 -1
  540. package/dist/route-content-wrapper.js +0 -77
  541. package/dist/route-content-wrapper.js.map +0 -1
  542. package/dist/route-definition.d.ts +0 -421
  543. package/dist/route-definition.d.ts.map +0 -1
  544. package/dist/route-definition.js +0 -868
  545. package/dist/route-definition.js.map +0 -1
  546. package/dist/route-map-builder.d.ts +0 -155
  547. package/dist/route-map-builder.d.ts.map +0 -1
  548. package/dist/route-map-builder.js +0 -237
  549. package/dist/route-map-builder.js.map +0 -1
  550. package/dist/route-types.d.ts +0 -165
  551. package/dist/route-types.d.ts.map +0 -1
  552. package/dist/route-types.js +0 -7
  553. package/dist/route-types.js.map +0 -1
  554. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  555. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  556. package/dist/router/__tests__/handler-context.test.js +0 -65
  557. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  558. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  559. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  560. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  561. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  562. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  563. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  564. package/dist/router/__tests__/match-context.test.js +0 -92
  565. package/dist/router/__tests__/match-context.test.js.map +0 -1
  566. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  567. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  568. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  569. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  570. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  571. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  572. package/dist/router/__tests__/match-result.test.js +0 -457
  573. package/dist/router/__tests__/match-result.test.js.map +0 -1
  574. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  575. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  576. package/dist/router/__tests__/on-error.test.js +0 -678
  577. package/dist/router/__tests__/on-error.test.js.map +0 -1
  578. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  579. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  580. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  581. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  582. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  583. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  584. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  585. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  586. package/dist/router/error-handling.d.ts +0 -77
  587. package/dist/router/error-handling.d.ts.map +0 -1
  588. package/dist/router/error-handling.js +0 -202
  589. package/dist/router/error-handling.js.map +0 -1
  590. package/dist/router/handler-context.d.ts +0 -20
  591. package/dist/router/handler-context.d.ts.map +0 -1
  592. package/dist/router/handler-context.js +0 -198
  593. package/dist/router/handler-context.js.map +0 -1
  594. package/dist/router/intercept-resolution.d.ts +0 -66
  595. package/dist/router/intercept-resolution.d.ts.map +0 -1
  596. package/dist/router/intercept-resolution.js +0 -246
  597. package/dist/router/intercept-resolution.js.map +0 -1
  598. package/dist/router/loader-resolution.d.ts +0 -64
  599. package/dist/router/loader-resolution.d.ts.map +0 -1
  600. package/dist/router/loader-resolution.js +0 -284
  601. package/dist/router/loader-resolution.js.map +0 -1
  602. package/dist/router/logging.d.ts +0 -15
  603. package/dist/router/logging.d.ts.map +0 -1
  604. package/dist/router/logging.js +0 -99
  605. package/dist/router/logging.js.map +0 -1
  606. package/dist/router/manifest.d.ts +0 -22
  607. package/dist/router/manifest.d.ts.map +0 -1
  608. package/dist/router/manifest.js +0 -181
  609. package/dist/router/manifest.js.map +0 -1
  610. package/dist/router/match-api.d.ts +0 -35
  611. package/dist/router/match-api.d.ts.map +0 -1
  612. package/dist/router/match-api.js +0 -406
  613. package/dist/router/match-api.js.map +0 -1
  614. package/dist/router/match-context.d.ts +0 -206
  615. package/dist/router/match-context.d.ts.map +0 -1
  616. package/dist/router/match-context.js +0 -17
  617. package/dist/router/match-context.js.map +0 -1
  618. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  619. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  620. package/dist/router/match-middleware/background-revalidation.js +0 -75
  621. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  622. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  623. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  624. package/dist/router/match-middleware/cache-lookup.js +0 -257
  625. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  626. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  627. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  628. package/dist/router/match-middleware/cache-store.js +0 -108
  629. package/dist/router/match-middleware/cache-store.js.map +0 -1
  630. package/dist/router/match-middleware/index.d.ts +0 -81
  631. package/dist/router/match-middleware/index.d.ts.map +0 -1
  632. package/dist/router/match-middleware/index.js +0 -80
  633. package/dist/router/match-middleware/index.js.map +0 -1
  634. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  635. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  636. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  637. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  638. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  639. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  640. package/dist/router/match-middleware/segment-resolution.js +0 -53
  641. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  642. package/dist/router/match-pipelines.d.ts +0 -147
  643. package/dist/router/match-pipelines.d.ts.map +0 -1
  644. package/dist/router/match-pipelines.js +0 -82
  645. package/dist/router/match-pipelines.js.map +0 -1
  646. package/dist/router/match-result.d.ts +0 -126
  647. package/dist/router/match-result.d.ts.map +0 -1
  648. package/dist/router/match-result.js +0 -93
  649. package/dist/router/match-result.js.map +0 -1
  650. package/dist/router/metrics.d.ts +0 -20
  651. package/dist/router/metrics.d.ts.map +0 -1
  652. package/dist/router/metrics.js +0 -47
  653. package/dist/router/metrics.js.map +0 -1
  654. package/dist/router/middleware.d.ts +0 -249
  655. package/dist/router/middleware.d.ts.map +0 -1
  656. package/dist/router/middleware.js +0 -434
  657. package/dist/router/middleware.js.map +0 -1
  658. package/dist/router/middleware.test.d.ts +0 -2
  659. package/dist/router/middleware.test.d.ts.map +0 -1
  660. package/dist/router/middleware.test.js +0 -816
  661. package/dist/router/middleware.test.js.map +0 -1
  662. package/dist/router/pattern-matching.d.ts +0 -149
  663. package/dist/router/pattern-matching.d.ts.map +0 -1
  664. package/dist/router/pattern-matching.js +0 -349
  665. package/dist/router/pattern-matching.js.map +0 -1
  666. package/dist/router/revalidation.d.ts +0 -44
  667. package/dist/router/revalidation.d.ts.map +0 -1
  668. package/dist/router/revalidation.js +0 -147
  669. package/dist/router/revalidation.js.map +0 -1
  670. package/dist/router/router-context.d.ts +0 -135
  671. package/dist/router/router-context.d.ts.map +0 -1
  672. package/dist/router/router-context.js +0 -36
  673. package/dist/router/router-context.js.map +0 -1
  674. package/dist/router/segment-resolution.d.ts +0 -127
  675. package/dist/router/segment-resolution.d.ts.map +0 -1
  676. package/dist/router/segment-resolution.js +0 -919
  677. package/dist/router/segment-resolution.js.map +0 -1
  678. package/dist/router/trie-matching.d.ts +0 -40
  679. package/dist/router/trie-matching.d.ts.map +0 -1
  680. package/dist/router/trie-matching.js +0 -127
  681. package/dist/router/trie-matching.js.map +0 -1
  682. package/dist/router/types.d.ts +0 -136
  683. package/dist/router/types.d.ts.map +0 -1
  684. package/dist/router/types.js +0 -7
  685. package/dist/router/types.js.map +0 -1
  686. package/dist/router.d.ts +0 -753
  687. package/dist/router.d.ts.map +0 -1
  688. package/dist/router.gen.d.ts +0 -6
  689. package/dist/router.gen.d.ts.map +0 -1
  690. package/dist/router.gen.js +0 -6
  691. package/dist/router.gen.js.map +0 -1
  692. package/dist/router.js +0 -1304
  693. package/dist/router.js.map +0 -1
  694. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  695. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  696. package/dist/rsc/__tests__/helpers.test.js +0 -140
  697. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  698. package/dist/rsc/handler.d.ts +0 -45
  699. package/dist/rsc/handler.d.ts.map +0 -1
  700. package/dist/rsc/handler.js +0 -1172
  701. package/dist/rsc/handler.js.map +0 -1
  702. package/dist/rsc/helpers.d.ts +0 -16
  703. package/dist/rsc/helpers.d.ts.map +0 -1
  704. package/dist/rsc/helpers.js +0 -55
  705. package/dist/rsc/helpers.js.map +0 -1
  706. package/dist/rsc/index.d.ts +0 -22
  707. package/dist/rsc/index.d.ts.map +0 -1
  708. package/dist/rsc/index.js +0 -23
  709. package/dist/rsc/index.js.map +0 -1
  710. package/dist/rsc/nonce.d.ts +0 -9
  711. package/dist/rsc/nonce.d.ts.map +0 -1
  712. package/dist/rsc/nonce.js +0 -18
  713. package/dist/rsc/nonce.js.map +0 -1
  714. package/dist/rsc/types.d.ts +0 -206
  715. package/dist/rsc/types.d.ts.map +0 -1
  716. package/dist/rsc/types.js +0 -8
  717. package/dist/rsc/types.js.map +0 -1
  718. package/dist/search-params.d.ts +0 -103
  719. package/dist/search-params.d.ts.map +0 -1
  720. package/dist/search-params.js +0 -74
  721. package/dist/search-params.js.map +0 -1
  722. package/dist/segment-system.d.ts +0 -75
  723. package/dist/segment-system.d.ts.map +0 -1
  724. package/dist/segment-system.js +0 -336
  725. package/dist/segment-system.js.map +0 -1
  726. package/dist/server/context.d.ts +0 -245
  727. package/dist/server/context.d.ts.map +0 -1
  728. package/dist/server/context.js +0 -197
  729. package/dist/server/context.js.map +0 -1
  730. package/dist/server/fetchable-loader-store.d.ts +0 -18
  731. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  732. package/dist/server/fetchable-loader-store.js +0 -18
  733. package/dist/server/fetchable-loader-store.js.map +0 -1
  734. package/dist/server/handle-store.d.ts +0 -85
  735. package/dist/server/handle-store.d.ts.map +0 -1
  736. package/dist/server/handle-store.js +0 -142
  737. package/dist/server/handle-store.js.map +0 -1
  738. package/dist/server/loader-registry.d.ts +0 -55
  739. package/dist/server/loader-registry.d.ts.map +0 -1
  740. package/dist/server/loader-registry.js +0 -132
  741. package/dist/server/loader-registry.js.map +0 -1
  742. package/dist/server/request-context.d.ts +0 -226
  743. package/dist/server/request-context.d.ts.map +0 -1
  744. package/dist/server/request-context.js +0 -290
  745. package/dist/server/request-context.js.map +0 -1
  746. package/dist/server/root-layout.d.ts +0 -4
  747. package/dist/server/root-layout.d.ts.map +0 -1
  748. package/dist/server/root-layout.js +0 -5
  749. package/dist/server/root-layout.js.map +0 -1
  750. package/dist/server.d.ts +0 -15
  751. package/dist/server.d.ts.map +0 -1
  752. package/dist/server.js +0 -20
  753. package/dist/server.js.map +0 -1
  754. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  755. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  756. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  757. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  758. package/dist/ssr/index.d.ts +0 -98
  759. package/dist/ssr/index.d.ts.map +0 -1
  760. package/dist/ssr/index.js +0 -158
  761. package/dist/ssr/index.js.map +0 -1
  762. package/dist/static-handler.d.ts +0 -50
  763. package/dist/static-handler.d.ts.map +0 -1
  764. package/dist/static-handler.gen.d.ts +0 -5
  765. package/dist/static-handler.gen.d.ts.map +0 -1
  766. package/dist/static-handler.gen.js +0 -5
  767. package/dist/static-handler.gen.js.map +0 -1
  768. package/dist/static-handler.js +0 -29
  769. package/dist/static-handler.js.map +0 -1
  770. package/dist/theme/ThemeProvider.d.ts +0 -20
  771. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  772. package/dist/theme/ThemeProvider.js +0 -240
  773. package/dist/theme/ThemeProvider.js.map +0 -1
  774. package/dist/theme/ThemeScript.d.ts +0 -48
  775. package/dist/theme/ThemeScript.d.ts.map +0 -1
  776. package/dist/theme/ThemeScript.js +0 -13
  777. package/dist/theme/ThemeScript.js.map +0 -1
  778. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  779. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  780. package/dist/theme/__tests__/theme.test.js +0 -103
  781. package/dist/theme/__tests__/theme.test.js.map +0 -1
  782. package/dist/theme/constants.d.ts +0 -29
  783. package/dist/theme/constants.d.ts.map +0 -1
  784. package/dist/theme/constants.js +0 -48
  785. package/dist/theme/constants.js.map +0 -1
  786. package/dist/theme/index.d.ts +0 -31
  787. package/dist/theme/index.d.ts.map +0 -1
  788. package/dist/theme/index.js +0 -36
  789. package/dist/theme/index.js.map +0 -1
  790. package/dist/theme/theme-context.d.ts +0 -40
  791. package/dist/theme/theme-context.d.ts.map +0 -1
  792. package/dist/theme/theme-context.js +0 -60
  793. package/dist/theme/theme-context.js.map +0 -1
  794. package/dist/theme/theme-script.d.ts +0 -27
  795. package/dist/theme/theme-script.d.ts.map +0 -1
  796. package/dist/theme/theme-script.js +0 -147
  797. package/dist/theme/theme-script.js.map +0 -1
  798. package/dist/theme/types.d.ts +0 -163
  799. package/dist/theme/types.d.ts.map +0 -1
  800. package/dist/theme/types.js +0 -11
  801. package/dist/theme/types.js.map +0 -1
  802. package/dist/theme/use-theme.d.ts +0 -12
  803. package/dist/theme/use-theme.d.ts.map +0 -1
  804. package/dist/theme/use-theme.js +0 -40
  805. package/dist/theme/use-theme.js.map +0 -1
  806. package/dist/types.d.ts +0 -1479
  807. package/dist/types.d.ts.map +0 -1
  808. package/dist/types.js +0 -10
  809. package/dist/types.js.map +0 -1
  810. package/dist/urls.d.ts +0 -441
  811. package/dist/urls.d.ts.map +0 -1
  812. package/dist/urls.gen.d.ts +0 -8
  813. package/dist/urls.gen.d.ts.map +0 -1
  814. package/dist/urls.gen.js +0 -8
  815. package/dist/urls.gen.js.map +0 -1
  816. package/dist/urls.js +0 -443
  817. package/dist/urls.js.map +0 -1
  818. package/dist/use-loader.d.ts +0 -127
  819. package/dist/use-loader.d.ts.map +0 -1
  820. package/dist/use-loader.js +0 -237
  821. package/dist/use-loader.js.map +0 -1
  822. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  823. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  824. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  825. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  826. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  827. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  828. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  829. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  830. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  831. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  832. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  833. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  834. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  835. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  836. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  837. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  838. package/dist/vite/ast-handler-extract.d.ts +0 -49
  839. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  840. package/dist/vite/ast-handler-extract.js +0 -249
  841. package/dist/vite/ast-handler-extract.js.map +0 -1
  842. package/dist/vite/expose-action-id.d.ts +0 -19
  843. package/dist/vite/expose-action-id.d.ts.map +0 -1
  844. package/dist/vite/expose-action-id.js +0 -250
  845. package/dist/vite/expose-action-id.js.map +0 -1
  846. package/dist/vite/expose-id-utils.d.ts +0 -69
  847. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  848. package/dist/vite/expose-id-utils.js +0 -289
  849. package/dist/vite/expose-id-utils.js.map +0 -1
  850. package/dist/vite/expose-internal-ids.d.ts +0 -22
  851. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  852. package/dist/vite/expose-internal-ids.js +0 -886
  853. package/dist/vite/expose-internal-ids.js.map +0 -1
  854. package/dist/vite/index.d.ts +0 -149
  855. package/dist/vite/index.d.ts.map +0 -1
  856. package/dist/vite/index.js.bak +0 -5448
  857. package/dist/vite/index.js.map +0 -1
  858. package/dist/vite/index.named-routes.gen.ts +0 -103
  859. package/dist/vite/package-resolution.d.ts +0 -43
  860. package/dist/vite/package-resolution.d.ts.map +0 -1
  861. package/dist/vite/package-resolution.js +0 -112
  862. package/dist/vite/package-resolution.js.map +0 -1
  863. package/dist/vite/virtual-entries.d.ts +0 -25
  864. package/dist/vite/virtual-entries.d.ts.map +0 -1
  865. package/dist/vite/virtual-entries.js +0 -110
  866. package/dist/vite/virtual-entries.js.map +0 -1
@@ -160,6 +160,56 @@ export const adminPatterns = urls(({ path }) => [
160
160
  ]);
161
161
  ```
162
162
 
163
+ ## Code-splitting a route group with async include()
164
+
165
+ `include()` takes a route module two ways. Eager — the module is already in the
166
+ graph:
167
+
168
+ ```typescript
169
+ import { shopPatterns } from "./shop-patterns";
170
+
171
+ urls(({ include }) => [include("/shop", shopPatterns, { name: "shop" })]);
172
+ ```
173
+
174
+ Async — the module is code-split behind a `() => import()` thunk. It becomes its
175
+ own chunk that is NOT evaluated at startup; the router imports it on the first
176
+ request that reaches the prefix, then caches it:
177
+
178
+ ```typescript
179
+ urls(({ include }) => [
180
+ include("/shop", () => import("./shop-patterns"), { name: "shop" }),
181
+ ]);
182
+ ```
183
+
184
+ The split module exposes its `urls()` value as the default export (convention):
185
+
186
+ ```typescript
187
+ // src/shop-patterns.ts
188
+ import { urls } from "@rangojs/router";
189
+
190
+ export const shopPatterns = urls(({ path, include }) => [
191
+ path("/", ShopHome, { name: "home" }),
192
+ include("/product", productPatterns, { name: "product" }), // nesting is fine
193
+ ]);
194
+
195
+ export default shopPatterns; // async include() resolves this
196
+ ```
197
+
198
+ **Prefer the async form** for any route group that is a natural,
199
+ independently-loadable unit (a localized section, an admin area, an API surface
200
+ with heavy handlers) — it trims the eagerly-parsed entry bundle and keeps that
201
+ subgraph off the cold-start path. The **eager form is still fully valid** (not
202
+ deprecated): keep it for small groups, or ones that share most of their module
203
+ graph with the entry (the bundler keeps shared modules common regardless, so
204
+ splitting a thin group buys little). Both match identically at runtime — only the
205
+ module's runtime evaluation timing differs.
206
+
207
+ What you do NOT lose by splitting: build-time discovery `await`s the provider, so
208
+ `href()`, `reverse()`, generated route types, and prerender still see every route
209
+ in the group — including nested `include()`s inside the split module. Only the
210
+ module's runtime evaluation defers. `rango generate` resolves the `() => import()`
211
+ the same way, so a code-split group is still fully typed.
212
+
163
213
  ## Composition Types
164
214
 
165
215
  For typed factories, import the composition types:
@@ -33,6 +33,48 @@ export default {
33
33
  };
34
34
  ```
35
35
 
36
+ ## Deploying: Cloudflare vs node/vercel
37
+
38
+ How a host router is _served_ depends on the preset, because the preset decides who owns the server entry.
39
+
40
+ | Preset | Who owns the entry | What the host module exports |
41
+ | ----------------- | --------------------------- | ----------------------------------------------------------------------------------------------------------- |
42
+ | `cloudflare` | You (your `worker.rsc.tsx`) | `export default { fetch(request, env, ctx) { return router.match(request, { env, ctx }); } }` |
43
+ | `node` / `vercel` | rango (generated RSC entry) | `export default router;` (the `HostRouter` instance itself), or a named `export const hostRouter`/`router`. |
44
+
45
+ On `node`/`vercel`, rango generates the served RSC entry, so it needs the `HostRouter` **instance** to call `hostRouter.match()` for you. Export the instance, not a `{ fetch }` object:
46
+
47
+ ```typescript
48
+ // src/worker.rsc.tsx (node / vercel)
49
+ import { createHostRouter } from "@rangojs/router/host";
50
+
51
+ export const hostRouter = createHostRouter();
52
+ hostRouter.host(["admin.*"]).lazy(() => import("./apps/admin/handler.js"));
53
+ hostRouter.host(["."]).lazy(() => import("./apps/site/handler.js"));
54
+
55
+ // Export the instance — the generated entry serves it via hostRouter.match().
56
+ export default hostRouter;
57
+ ```
58
+
59
+ Each sub-app exports a handler exactly as on Cloudflare (no change):
60
+
61
+ ```typescript
62
+ // src/apps/admin/handler.ts
63
+ import { router } from "./router.js";
64
+ export default (request: Request, input: any) => router.fetch(request, input);
65
+ ```
66
+
67
+ Selecting the host entry — a host app has several `createRouter()` sub-apps, so single-router auto-discovery can't pick one. Either let rango auto-detect the lone `createHostRouter()` file, or point at it explicitly:
68
+
69
+ ```typescript
70
+ // vite.config.ts
71
+ rango({ preset: "vercel", hostRouter: "./src/worker.rsc.tsx" });
72
+ ```
73
+
74
+ On Vercel this is a single function running `hostRouter.match()` for every request (mirrors the Cloudflare single-worker model); `{ env, ctx }` (`process.env` + `{ waitUntil }`) is threaded unchanged to each matched sub-app's handler and `cache(env, ctx)` factory. See the `vercel` skill.
75
+
76
+ Unmatched hosts on node/vercel: because rango owns the generated entry (you have no worker `try/catch`), it catches `NoRouteMatchError` and returns **404** by default — so you do **not** need a catch-all host route. If you want different behavior (a branded 404, a redirect, a default app), register a catch-all mount as the **last** route, e.g. `host(["**"]).lazy(() => import("./apps/site/handler.js"))` — it matches any host, so the built-in 404 only fires when nothing matched at all. (Note `fallback()` is for cookie-override errors, not general unmatched hosts.)
77
+
36
78
  ## Inline handlers (`.map`) vs lazy mounts (`.lazy`)
37
79
 
38
80
  A host pattern maps to one of two things, and you pick the method by intent:
@@ -134,17 +176,17 @@ router.fallback().map((request) => {
134
176
  });
135
177
  ```
136
178
 
137
- For unmatched hosts without `hostOverride`, catch `NoRouteMatchError` in your worker fetch:
179
+ For unmatched hosts without `hostOverride`, catch `NoRouteMatchError` in your worker fetch. Use the `isNoRouteMatchError()` guard rather than a bare `instanceof`: a workspace with a duplicated `@rangojs/router` copy can throw the error with a different class identity, and `instanceof` would then turn the 404 into an opaque 500.
138
180
 
139
181
  ```typescript
140
- import { NoRouteMatchError } from "@rangojs/router/host";
182
+ import { isNoRouteMatchError } from "@rangojs/router/host";
141
183
 
142
184
  export default {
143
185
  async fetch(request: Request, env: Env, ctx: ExecutionContext) {
144
186
  try {
145
187
  return await router.match(request, { env, ctx });
146
188
  } catch (err) {
147
- if (err instanceof NoRouteMatchError) {
189
+ if (isNoRouteMatchError(err)) {
148
190
  return new Response("Not Found", { status: 404 });
149
191
  }
150
192
  throw err;
@@ -147,12 +147,21 @@ A layout as a child of `path()` wraps the route content and can read
147
147
  data set by the route handler via `ctx.get()`. The handler always
148
148
  executes before its children.
149
149
 
150
- This handler-first guarantee applies to a single full render pass
151
- (initial render, prerender, or full HTML re-render). During partial
152
- action revalidation, only the segments that revalidate are recomputed.
153
- If an orphan layout depends on data established by an outer handler or
154
- layout, that outer segment must also revalidate, or the orphan must
155
- guard/reload the data independently.
150
+ This is the recommended way to pass handler data downward, and it is
151
+ safe under partial action revalidation with zero configuration: orphan
152
+ layouts (and their parallels) belong to the route entry, and on an
153
+ action the whole entry re-runs together by default — route segment,
154
+ loaders, and `belongsToRoute` children all seed revalidate-true, with
155
+ handler-first ordering preserved. Producer and consumer cannot desync
156
+ unless you narrow one side with a predicate that returns a hard `false`
157
+ (then put the same contract on both — see "Revalidation Contracts").
158
+
159
+ Data from an **outer** handler or layout entry is the opposite case:
160
+ outer entries do not revalidate on actions by default (parent-chain
161
+ skip). If an orphan layout depends on data established above its own
162
+ route entry, that outer segment must share a revalidation contract, or
163
+ the orphan must guard/reload the data independently. See `/rango` →
164
+ "Passing data down the tree" for the full safest-first ladder.
156
165
 
157
166
  ```typescript
158
167
  import { Outlet, ParallelOutlet } from "@rangojs/router/client";
@@ -191,7 +200,10 @@ orphan layouts to read them.
191
200
 
192
201
  ## Layout Revalidation
193
202
 
194
- Layouts don't revalidate by default. Control with `revalidate()`:
203
+ Standalone `layout()` entries don't revalidate by default — on an action,
204
+ parent-chain segments are skipped unless a `revalidate()` opts them in.
205
+ (Orphan layouts inside a `path()` are the opposite: they ride along with
206
+ the route entry by default.) Control with `revalidate()`:
195
207
 
196
208
  ```typescript
197
209
  layout(<ShopLayout />, () => [
@@ -218,8 +230,13 @@ their `ctx.set()` state.
218
230
 
219
231
  ### Revalidation Contracts
220
232
 
221
- For shared upstream data, define named revalidation functions and reuse
222
- them on both producer and consumer segments:
233
+ Contracts are the tool for cross-entry sharing — the bottom rung of the
234
+ data-passing ladder (`/rango` → "Passing data down the tree"). Before
235
+ writing one, check whether the producer can move down a rung: into the
236
+ consumer's own entry as an orphan layout, into middleware, or into a
237
+ loader. When the data genuinely must flow from an outer entry, define
238
+ named revalidation functions and reuse them on both producer and
239
+ consumer segments:
223
240
 
224
241
  ```typescript
225
242
  // revalidation-contracts.ts
@@ -60,8 +60,12 @@ data itself.
60
60
  ### Revalidation Contracts with Middleware-Backed Trees
61
61
 
62
62
  Middleware can establish request-level context (`ctx.set`) for segments that
63
- execute in the current render pass. It does not change partial revalidation
64
- boundaries between handler/layout/parallel segments.
63
+ execute in the current render pass. Because route middleware wraps **every**
64
+ render pass — normal renders, post-action revalidation, PE re-renders — its
65
+ variables are never stale: middleware is the safest `ctx.set` rung on the
66
+ data-passing ladder (`/rango` → "Passing data down the tree"). But it does
67
+ not change partial revalidation boundaries between handler/layout/parallel
68
+ segments.
65
69
 
66
70
  For shared segment data, use named revalidation contracts on both the producer
67
71
  and consumer segments, even when middleware is present in the chain.
@@ -153,6 +153,18 @@ export const marketingPatterns = urls(({ path }) => [
153
153
  include("/", marketingPatterns, { name: "marketing" }),
154
154
  ```
155
155
 
156
+ Next.js code-splits each route segment automatically. Rango's eager `include()`
157
+ bundles the group into the entry chunk; to get Next-style per-section splitting,
158
+ pass an async provider so the group loads on the first request under its prefix:
159
+
160
+ ```typescript
161
+ // urls/admin.tsx: `export default adminPatterns` — loads on first /admin request
162
+ include("/admin", () => import("./urls/admin"), { name: "admin" }),
163
+ ```
164
+
165
+ Route types, `href()`, and prerender still see every route in the split group.
166
+ See `/composability`.
167
+
156
168
  ### Parallel routes
157
169
 
158
170
  In Next.js, `@sidebar` and `@main` are both named slots. In Rango, the main content
@@ -112,7 +112,29 @@ const router = createRouter({
112
112
  });
113
113
  ```
114
114
 
115
- Both factories return a `RouterTracingConfig` for the same `tracing` slot;
115
+ On **Vercel Functions** (Node runtime), use `createVercelTracing` — a thin
116
+ wrapper over `createOTelTracing` that reads the global OTel tracer
117
+ `@vercel/otel`'s `registerOTel()` installs, so you do not call `trace.getTracer`
118
+ yourself. Custom spans are Node-only (unsupported on the Edge runtime):
119
+
120
+ ```typescript
121
+ // instrumentation.ts — install the provider, then export the tracing config.
122
+ // Importing this module is what runs registerOTel() — a Rango/Vite app does not
123
+ // auto-load instrumentation.ts like Next.js, so a standalone registerOTel() that
124
+ // nothing imports is a silent no-op.
125
+ import { registerOTel } from "@vercel/otel";
126
+ import { createVercelTracing } from "@rangojs/router/vercel";
127
+ registerOTel({ serviceName: "my-app" });
128
+ export const tracing = createVercelTracing(); // { enabled, spans, tracerName, tracer }
129
+
130
+ // router.tsx — importing `tracing` runs instrumentation.ts
131
+ import { createRouter } from "@rangojs/router";
132
+ import { tracing } from "./instrumentation.js";
133
+
134
+ const router = createRouter({ document: Document, urls: urlpatterns, tracing });
135
+ ```
136
+
137
+ These factories return a `RouterTracingConfig` for the same `tracing` slot;
116
138
  `telemetry` stays independent (events only, no phase spans). Phase spans:
117
139
  `rango.request`, `rango.middleware`, `rango.action`, `rango.loader`,
118
140
  `rango.render`, `rango.ssr` — the same phases the `debugPerformance` timeline
@@ -344,9 +344,17 @@ parallel(
344
344
  )
345
345
  ```
346
346
 
347
- Revalidating only the parallel does not re-run outer handlers/layouts.
348
- If the slot reads `ctx.get()` data established above it, opt the outer
349
- segment into revalidation as well.
347
+ Where the slot sits decides its action default. A parallel under a
348
+ `path()` (or one of its orphan layouts) belongs to the route entry and
349
+ revalidates together with it on every action — handler-set data stays
350
+ consistent with no configuration. A parallel under a standalone
351
+ `layout()` entry follows the parent-chain default instead: skipped on
352
+ actions unless a `revalidate()` opts it in.
353
+
354
+ In either position, revalidating only the parallel does not re-run outer
355
+ handlers/layouts. If the slot reads `ctx.get()` data established above
356
+ it, opt the outer segment into revalidation as well (see `/rango` →
357
+ "Passing data down the tree").
350
358
 
351
359
  A `revalidate()` callback may return a hard `boolean`, a soft
352
360
  `{ defaultShouldRevalidate }` object, or nothing (`void` / `null` /
@@ -59,22 +59,57 @@ appears, not up front.
59
59
  To decide where something can live: **does it define a URL? structure, stays in
60
60
  `urls()`. Does it modify a node? config, compose freely.**
61
61
 
62
+ ## Passing data down the tree
63
+
64
+ Four ways to get per-request data to a segment below you, ordered safest-first.
65
+ Reach for the next rung only when the one above doesn't fit — the higher rungs
66
+ are immune to partial-revalidation staleness by construction.
67
+
68
+ 1. **A loader** (`loader()` + `useLoader()`). Loaders resolve fresh on every
69
+ pass — full renders, action revalidations, cache hits. Nothing to keep in
70
+ sync. If the data can be a loader, make it a loader.
71
+ 2. **Middleware `ctx.set()`**. Route middleware wraps every render pass,
72
+ including post-action revalidation and PE re-renders, so its variables are
73
+ never stale. Right for request-shaped context: auth, session, locale.
74
+ 3. **Handler `ctx.set()` to its own children** —
75
+ `path(handler, ..., () => [layout(...)])`. Orphan layouts and their
76
+ parallels belong to the route entry: on an action the whole entry re-runs
77
+ together by default (handler-first preserved), so the data stays consistent
78
+ with zero configuration. Right for data the page must compute anyway —
79
+ e.g. pagination, where the handler's search decides how many pages the
80
+ layout chrome renders. One rule: if you narrow the entry's revalidation
81
+ with a predicate that can return a hard `false`, put the same contract on
82
+ the entry's children too — a hard `false` on one side of a
83
+ producer/consumer pair desyncs it.
84
+ 4. **Cross-entry sharing** — an outer `layout()` entry feeding descendants.
85
+ Outer entries do NOT revalidate on actions by default (the revalidation
86
+ trace calls this `action:parent-chain-skip`), so this rung always requires
87
+ a shared revalidation contract: the same named `revalidate()` function on
88
+ the producer and every consumer. See `/layout` → "Revalidation Contracts".
89
+ Before writing one, check whether the producer can move down a rung.
90
+
91
+ The failure mode this ladder prevents: a consumer re-runs, its producer
92
+ doesn't, `ctx.get()` reads `undefined`, and fallback UI silently replaces good
93
+ UI after an action. Rungs 1–3 make that unrepresentable; rung 4 makes it a
94
+ stated, greppable contract.
95
+
62
96
  ## Pick a primitive
63
97
 
64
- | I need to… | Use | Skill |
65
- | ------------------------------------- | -------------------------------- | ----------------------- |
66
- | render data fresh every request | `loader()` + `useLoader()` | /loader |
67
- | cache a rendered subtree | `cache()` on a segment | /caching |
68
- | cache one function/component's result | `"use cache"` | /use-cache |
69
- | cache a loader's data | `loader(L, () => [cache()])` | /loader, /caching |
70
- | re-render a segment after an action | `revalidate()` | /loader |
71
- | mutate | `"use server"` action | /server-actions |
72
- | debug a slow request | `debugPerformance` / telemetry | /observability |
73
- | share config across routes | factory returning a helper array | /composability |
74
- | compose a sub-app / module | `include()` | /route |
75
- | modal / soft navigation | `intercept()` | /intercept |
76
- | pre-render a route at build time | `Prerender(...)` wrapper | /prerender |
77
- | stream SSE / upgrade a WebSocket | `path.stream()` / `path.any()` | /streams-and-websockets |
98
+ | I need to… | Use | Skill |
99
+ | ------------------------------------- | ---------------------------------- | ----------------------- |
100
+ | render data fresh every request | `loader()` + `useLoader()` | /loader |
101
+ | cache a rendered subtree | `cache()` on a segment | /caching |
102
+ | cache one function/component's result | `"use cache"` | /use-cache |
103
+ | cache a loader's data | `loader(L, () => [cache()])` | /loader, /caching |
104
+ | re-render a segment after an action | `revalidate()` | /loader |
105
+ | mutate | `"use server"` action | /server-actions |
106
+ | debug a slow request | `debugPerformance` / telemetry | /observability |
107
+ | share config across routes | factory returning a helper array | /composability |
108
+ | compose a sub-app / module | `include()` | /route |
109
+ | modal / soft navigation | `intercept()` | /intercept |
110
+ | pre-render a route at build time | `Prerender(...)` wrapper | /prerender |
111
+ | feed live loaders from a cached shell | replayed handle + `ctx.rendered()` | /shell-manifest |
112
+ | stream SSE / upgrade a WebSocket | `path.stream()` / `path.any()` | /streams-and-websockets |
78
113
 
79
114
  ## Invariants
80
115
 
@@ -185,6 +220,12 @@ resolve `dist/` outside `./vite`, and it may lag `src/`.
185
220
 
186
221
  Grouped by concern — read when you need to…
187
222
 
223
+ **Positioning & evaluation**:
224
+
225
+ | Skill | Description |
226
+ | ------------- | ------------------------------------------------------------ |
227
+ | `/comparison` | Compare Rango with Next.js, TanStack Start, and Waku fairly. |
228
+
188
229
  **Structure & routing** — shape URLs, layouts, navigation, and request processing:
189
230
 
190
231
  | Skill | Description |
@@ -206,15 +247,16 @@ Grouped by concern — read when you need to…
206
247
 
207
248
  **Data & caching** — fetch, mutate, and cache:
208
249
 
209
- | Skill | Description |
210
- | ----------------- | ----------------------------------------------------------------------- |
211
- | `/loader` | Data loaders with `createLoader()` and `revalidate()` |
212
- | `/server-actions` | Mutations with `"use server"`, useActionState, validation, revalidation |
213
- | `/caching` | Segment caching with memory or KV stores |
214
- | `/use-cache` | Function-level caching with `"use cache"` directive |
215
- | `/cache-guide` | When to use `cache()` vs `"use cache"` — differences and decision guide |
216
- | `/document-cache` | Edge caching with Cache-Control headers |
217
- | `/prerender` | Pre-render route segments at build time (Passthrough live fallback) |
250
+ | Skill | Description |
251
+ | ----------------- | ------------------------------------------------------------------------------------------ |
252
+ | `/loader` | Data loaders with `createLoader()` and `revalidate()` |
253
+ | `/server-actions` | Mutations with `"use server"`, useActionState, validation, revalidation |
254
+ | `/caching` | Segment caching with memory or KV stores |
255
+ | `/use-cache` | Function-level caching with `"use cache"` directive |
256
+ | `/cache-guide` | When to use `cache()` vs `"use cache"` — differences and decision guide |
257
+ | `/document-cache` | Edge caching with Cache-Control headers |
258
+ | `/prerender` | Pre-render route segments at build time (Passthrough live fallback) |
259
+ | `/shell-manifest` | Replayed handles as cache metadata read by live loaders (frozen shell, batched live holes) |
218
260
 
219
261
  **Client & presentation** — build the client-side UX:
220
262
 
@@ -239,6 +281,12 @@ Grouped by concern — read when you need to…
239
281
  | `/bundle-analysis` | Audit your app's production bundle for server leaks and oversized chunks |
240
282
  | `/debug-manifest` | Inspect route manifest structure |
241
283
 
284
+ **Deployment**:
285
+
286
+ | Skill | Description |
287
+ | --------- | ----------------------------------------------------------------------------------------- |
288
+ | `/vercel` | Deploy to Vercel Functions (`preset: "vercel"`), Runtime Cache, and `createVercelTracing` |
289
+
242
290
  **Testing**:
243
291
 
244
292
  | Skill | Description |
@@ -319,7 +367,11 @@ dotfiles, and existing `.gen.` files.
319
367
  ### Recursive includes
320
368
 
321
369
  The generator follows `include()` calls across files, resolving imports to build
322
- the full route tree. Circular includes are detected and warned about.
370
+ the full route tree. It resolves both the eager form `include("/x", patterns)`
371
+ and the code-split async form `include("/x", () => import("./x"))` — for the
372
+ latter it walks the imported module's `export default urls(...)`, including any
373
+ nested `include()`s inside it — so a code-split route group is still fully typed
374
+ (see `/composability`). Circular includes are detected and warned about.
323
375
 
324
376
  ### First-wins deduplication
325
377
 
@@ -418,6 +418,20 @@ export const urlpatterns = urls(({ path, include }) => [
418
418
  ]);
419
419
  ```
420
420
 
421
+ A heavy module like this is a good code-split candidate. Pass an async provider
422
+ and the module — its handlers, response serializers, and any nested
423
+ `include()`s — loads on the first request under the prefix instead of at startup:
424
+
425
+ ```typescript
426
+ // blog/urls.tsx: `export default blogPatterns`
427
+ include("/blog", () => import("./blog/urls"), { name: "blog" }),
428
+ ```
429
+
430
+ Named routes and response types still resolve through the split: `TRoutes` and
431
+ the `_responses` phantom are inferred from the resolved `urls()` value, so
432
+ `Rango.PathResponse<"/blog/api/stats">` and `ctx.reverse` are unchanged. See
433
+ `/composability`.
434
+
421
435
  ### Type safety after mounting
422
436
 
423
437
  ```typescript
@@ -154,6 +154,13 @@ first. Use `ctx.set(key, value)` to share data with children, who read it
154
154
  via `ctx.get(key)`. Caching wraps all segments together, so either all run
155
155
  or none do.
156
156
 
157
+ This pattern is also safe under partial action revalidation: on an action,
158
+ the route entry re-runs as a unit by default — route segment, loaders, and
159
+ `belongsToRoute` children (orphan layouts, entry parallels) all seed
160
+ revalidate-true, with handler-first ordering preserved. Handler-set data
161
+ stays consistent with no configuration. See `/rango` → "Passing data down
162
+ the tree" for the safest-first ladder.
163
+
157
164
  ### Typed context variables with createVar
158
165
 
159
166
  Use `createVar<T>()` to create a typed token for `ctx.set()`/`ctx.get()`.
@@ -240,9 +247,18 @@ Cacheable vars (the default) can be read freely inside cache scopes.
240
247
  > decides hit/miss/ttl/swr independently and never reads `revalidate()`. See
241
248
  > `/cache-guide` → "Two axes" and `/rango` → "The shape of rango".
242
249
 
243
- Handler-first guarantees apply within a single full render pass. For partial
244
- action revalidation, define named revalidation contracts and reuse them on both
245
- the producer route and the consumer child segments.
250
+ With no `revalidate()` configured, an entry needs no contract: on an action
251
+ the route handler and its children re-run together by default, so handler
252
+ data stays consistent on its own. Contracts matter in two cases:
253
+
254
+ 1. **You narrow the entry's revalidation** with a predicate that can return a
255
+ hard `false` (e.g. bare `ctx.isAction(X)`). A hard `false` on one side of a
256
+ producer/consumer pair desyncs it — the child re-runs by default and reads
257
+ `undefined`, or vice versa. Put the same named contract on the route and
258
+ its dependent children so they narrow together.
259
+ 2. **The producer is an outer entry** (a standalone `layout()` above this
260
+ route). Outer entries skip action revalidation by default, so the shared
261
+ contract is mandatory — see `/layout` → "Revalidation Contracts".
246
262
 
247
263
  ```typescript
248
264
  // revalidation-contracts.ts
@@ -398,6 +398,18 @@ export const urlpatterns = urls(({ path, include }) => [
398
398
  ]);
399
399
  ```
400
400
 
401
+ `include()` also accepts an async provider to code-split that group into its own
402
+ chunk, imported on the first request reaching the prefix instead of at startup:
403
+
404
+ ```typescript
405
+ // urls/shop.tsx: `export default shopPatterns`
406
+ include("/shop", () => import("./urls/shop"), { name: "shop" }),
407
+ ```
408
+
409
+ Build-time discovery still `await`s the provider, so route types, `href()`, and
410
+ prerender see every route in the split group. Reach for it when a group is a
411
+ large, independently-loadable unit — see `/composability`.
412
+
401
413
  ## Environment Types
402
414
 
403
415
  ```typescript
@@ -493,6 +505,7 @@ const router = createRouter({
493
505
  ```typescript
494
506
  // On Cloudflare Workers, swap the tracing factory for native custom spans
495
507
  // (no @opentelemetry/api dependency); the telemetry slot is unchanged.
508
+ // On Vercel (Node runtime) use createVercelTracing() from @rangojs/router/vercel.
496
509
  import { createCloudflareTracing } from "@rangojs/router/cloudflare";
497
510
 
498
511
  const router = createRouter({