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

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 (834) hide show
  1. package/README.md +43 -10
  2. package/dist/vite/index.js +2 -3
  3. package/package.json +1 -1
  4. package/skills/caching/SKILL.md +4 -4
  5. package/skills/document-cache/SKILL.md +2 -2
  6. package/skills/hooks/SKILL.md +13 -12
  7. package/skills/host-router/SKILL.md +218 -0
  8. package/skills/loader/SKILL.md +2 -2
  9. package/skills/prerender/SKILL.md +2 -2
  10. package/skills/rango/SKILL.md +0 -1
  11. package/skills/router-setup/SKILL.md +2 -2
  12. package/skills/typesafety/SKILL.md +1 -1
  13. package/src/host/index.ts +0 -3
  14. package/src/index.ts +30 -31
  15. package/src/route-definition/index.ts +0 -3
  16. package/src/router/loader-resolution.ts +1 -1
  17. package/src/router/metrics.ts +90 -10
  18. package/src/router/middleware-types.ts +12 -0
  19. package/src/router/middleware.ts +55 -9
  20. package/src/router/router-options.ts +1 -1
  21. package/src/router/segment-resolution/fresh.ts +18 -0
  22. package/src/router/segment-resolution/revalidation.ts +21 -6
  23. package/src/router.ts +6 -2
  24. package/src/rsc/index.ts +0 -20
  25. package/src/server/context.ts +8 -2
  26. package/src/server/request-context.ts +5 -1
  27. package/src/server.ts +6 -0
  28. package/src/theme/index.ts +4 -13
  29. package/src/vite/discovery/discover-routers.ts +2 -3
  30. package/dist/__internal.d.ts +0 -83
  31. package/dist/__internal.d.ts.map +0 -1
  32. package/dist/__internal.js +0 -19
  33. package/dist/__internal.js.map +0 -1
  34. package/dist/__mocks__/version.d.ts +0 -7
  35. package/dist/__mocks__/version.d.ts.map +0 -1
  36. package/dist/__mocks__/version.js +0 -7
  37. package/dist/__mocks__/version.js.map +0 -1
  38. package/dist/__tests__/client-href.test.d.ts +0 -2
  39. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  40. package/dist/__tests__/client-href.test.js +0 -74
  41. package/dist/__tests__/client-href.test.js.map +0 -1
  42. package/dist/__tests__/component-utils.test.d.ts +0 -2
  43. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  44. package/dist/__tests__/component-utils.test.js +0 -51
  45. package/dist/__tests__/component-utils.test.js.map +0 -1
  46. package/dist/__tests__/event-controller.test.d.ts +0 -2
  47. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  48. package/dist/__tests__/event-controller.test.js +0 -538
  49. package/dist/__tests__/event-controller.test.js.map +0 -1
  50. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  51. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  52. package/dist/__tests__/helpers/route-tree.js +0 -374
  53. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  54. package/dist/__tests__/match-result.test.d.ts +0 -2
  55. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  56. package/dist/__tests__/match-result.test.js +0 -154
  57. package/dist/__tests__/match-result.test.js.map +0 -1
  58. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  59. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  60. package/dist/__tests__/navigation-store.test.js +0 -440
  61. package/dist/__tests__/navigation-store.test.js.map +0 -1
  62. package/dist/__tests__/partial-update.test.d.ts +0 -2
  63. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  64. package/dist/__tests__/partial-update.test.js +0 -1009
  65. package/dist/__tests__/partial-update.test.js.map +0 -1
  66. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  67. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  68. package/dist/__tests__/reverse-types.test.js +0 -656
  69. package/dist/__tests__/reverse-types.test.js.map +0 -1
  70. package/dist/__tests__/route-definition.test.d.ts +0 -2
  71. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  72. package/dist/__tests__/route-definition.test.js +0 -55
  73. package/dist/__tests__/route-definition.test.js.map +0 -1
  74. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  75. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  76. package/dist/__tests__/router-helpers.test.js +0 -377
  77. package/dist/__tests__/router-helpers.test.js.map +0 -1
  78. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  79. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  80. package/dist/__tests__/router-integration-2.test.js +0 -426
  81. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  82. package/dist/__tests__/router-integration.test.d.ts +0 -2
  83. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  84. package/dist/__tests__/router-integration.test.js +0 -1051
  85. package/dist/__tests__/router-integration.test.js.map +0 -1
  86. package/dist/__tests__/search-params.test.d.ts +0 -5
  87. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  88. package/dist/__tests__/search-params.test.js +0 -306
  89. package/dist/__tests__/search-params.test.js.map +0 -1
  90. package/dist/__tests__/segment-system.test.d.ts +0 -2
  91. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  92. package/dist/__tests__/segment-system.test.js +0 -627
  93. package/dist/__tests__/segment-system.test.js.map +0 -1
  94. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  95. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  96. package/dist/__tests__/static-handler-types.test.js +0 -63
  97. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  98. package/dist/__tests__/urls.test.d.ts +0 -2
  99. package/dist/__tests__/urls.test.d.ts.map +0 -1
  100. package/dist/__tests__/urls.test.js +0 -421
  101. package/dist/__tests__/urls.test.js.map +0 -1
  102. package/dist/__tests__/use-mount.test.d.ts +0 -2
  103. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  104. package/dist/__tests__/use-mount.test.js +0 -35
  105. package/dist/__tests__/use-mount.test.js.map +0 -1
  106. package/dist/bin/rango.d.ts +0 -2
  107. package/dist/bin/rango.d.ts.map +0 -1
  108. package/dist/bin/rango.js.map +0 -1
  109. package/dist/browser/event-controller.d.ts +0 -191
  110. package/dist/browser/event-controller.d.ts.map +0 -1
  111. package/dist/browser/event-controller.js +0 -559
  112. package/dist/browser/event-controller.js.map +0 -1
  113. package/dist/browser/index.d.ts +0 -2
  114. package/dist/browser/index.d.ts.map +0 -1
  115. package/dist/browser/index.js +0 -14
  116. package/dist/browser/index.js.map +0 -1
  117. package/dist/browser/link-interceptor.d.ts +0 -38
  118. package/dist/browser/link-interceptor.d.ts.map +0 -1
  119. package/dist/browser/link-interceptor.js +0 -99
  120. package/dist/browser/link-interceptor.js.map +0 -1
  121. package/dist/browser/logging.d.ts +0 -10
  122. package/dist/browser/logging.d.ts.map +0 -1
  123. package/dist/browser/logging.js +0 -29
  124. package/dist/browser/logging.js.map +0 -1
  125. package/dist/browser/lru-cache.d.ts +0 -17
  126. package/dist/browser/lru-cache.d.ts.map +0 -1
  127. package/dist/browser/lru-cache.js +0 -50
  128. package/dist/browser/lru-cache.js.map +0 -1
  129. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  130. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  131. package/dist/browser/merge-segment-loaders.js +0 -102
  132. package/dist/browser/merge-segment-loaders.js.map +0 -1
  133. package/dist/browser/navigation-bridge.d.ts +0 -102
  134. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  135. package/dist/browser/navigation-bridge.js +0 -708
  136. package/dist/browser/navigation-bridge.js.map +0 -1
  137. package/dist/browser/navigation-client.d.ts +0 -25
  138. package/dist/browser/navigation-client.d.ts.map +0 -1
  139. package/dist/browser/navigation-client.js +0 -157
  140. package/dist/browser/navigation-client.js.map +0 -1
  141. package/dist/browser/navigation-store.d.ts +0 -101
  142. package/dist/browser/navigation-store.d.ts.map +0 -1
  143. package/dist/browser/navigation-store.js +0 -625
  144. package/dist/browser/navigation-store.js.map +0 -1
  145. package/dist/browser/partial-update.d.ts +0 -75
  146. package/dist/browser/partial-update.d.ts.map +0 -1
  147. package/dist/browser/partial-update.js +0 -426
  148. package/dist/browser/partial-update.js.map +0 -1
  149. package/dist/browser/react/Link.d.ts +0 -86
  150. package/dist/browser/react/Link.d.ts.map +0 -1
  151. package/dist/browser/react/Link.js +0 -128
  152. package/dist/browser/react/Link.js.map +0 -1
  153. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  154. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  155. package/dist/browser/react/NavigationProvider.js +0 -216
  156. package/dist/browser/react/NavigationProvider.js.map +0 -1
  157. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  158. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  159. package/dist/browser/react/ScrollRestoration.js +0 -57
  160. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  161. package/dist/browser/react/context.d.ts +0 -46
  162. package/dist/browser/react/context.d.ts.map +0 -1
  163. package/dist/browser/react/context.js +0 -10
  164. package/dist/browser/react/context.js.map +0 -1
  165. package/dist/browser/react/index.d.ts +0 -11
  166. package/dist/browser/react/index.d.ts.map +0 -1
  167. package/dist/browser/react/index.js +0 -22
  168. package/dist/browser/react/index.js.map +0 -1
  169. package/dist/browser/react/location-state-shared.d.ts +0 -63
  170. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  171. package/dist/browser/react/location-state-shared.js +0 -81
  172. package/dist/browser/react/location-state-shared.js.map +0 -1
  173. package/dist/browser/react/location-state.d.ts +0 -23
  174. package/dist/browser/react/location-state.d.ts.map +0 -1
  175. package/dist/browser/react/location-state.js +0 -29
  176. package/dist/browser/react/location-state.js.map +0 -1
  177. package/dist/browser/react/mount-context.d.ts +0 -24
  178. package/dist/browser/react/mount-context.d.ts.map +0 -1
  179. package/dist/browser/react/mount-context.js +0 -24
  180. package/dist/browser/react/mount-context.js.map +0 -1
  181. package/dist/browser/react/use-action.d.ts +0 -64
  182. package/dist/browser/react/use-action.d.ts.map +0 -1
  183. package/dist/browser/react/use-action.js +0 -134
  184. package/dist/browser/react/use-action.js.map +0 -1
  185. package/dist/browser/react/use-client-cache.d.ts +0 -41
  186. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  187. package/dist/browser/react/use-client-cache.js +0 -39
  188. package/dist/browser/react/use-client-cache.js.map +0 -1
  189. package/dist/browser/react/use-handle.d.ts +0 -31
  190. package/dist/browser/react/use-handle.d.ts.map +0 -1
  191. package/dist/browser/react/use-handle.js +0 -144
  192. package/dist/browser/react/use-handle.js.map +0 -1
  193. package/dist/browser/react/use-href.d.ts +0 -33
  194. package/dist/browser/react/use-href.d.ts.map +0 -1
  195. package/dist/browser/react/use-href.js +0 -39
  196. package/dist/browser/react/use-href.js.map +0 -1
  197. package/dist/browser/react/use-link-status.d.ts +0 -37
  198. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  199. package/dist/browser/react/use-link-status.js +0 -99
  200. package/dist/browser/react/use-link-status.js.map +0 -1
  201. package/dist/browser/react/use-mount.d.ts +0 -25
  202. package/dist/browser/react/use-mount.d.ts.map +0 -1
  203. package/dist/browser/react/use-mount.js +0 -30
  204. package/dist/browser/react/use-mount.js.map +0 -1
  205. package/dist/browser/react/use-navigation.d.ts +0 -27
  206. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  207. package/dist/browser/react/use-navigation.js +0 -87
  208. package/dist/browser/react/use-navigation.js.map +0 -1
  209. package/dist/browser/react/use-segments.d.ts +0 -38
  210. package/dist/browser/react/use-segments.d.ts.map +0 -1
  211. package/dist/browser/react/use-segments.js +0 -130
  212. package/dist/browser/react/use-segments.js.map +0 -1
  213. package/dist/browser/request-controller.d.ts +0 -26
  214. package/dist/browser/request-controller.d.ts.map +0 -1
  215. package/dist/browser/request-controller.js +0 -147
  216. package/dist/browser/request-controller.js.map +0 -1
  217. package/dist/browser/rsc-router.d.ts +0 -129
  218. package/dist/browser/rsc-router.d.ts.map +0 -1
  219. package/dist/browser/rsc-router.js +0 -195
  220. package/dist/browser/rsc-router.js.map +0 -1
  221. package/dist/browser/scroll-restoration.d.ts +0 -93
  222. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  223. package/dist/browser/scroll-restoration.js +0 -321
  224. package/dist/browser/scroll-restoration.js.map +0 -1
  225. package/dist/browser/segment-structure-assert.d.ts +0 -17
  226. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  227. package/dist/browser/segment-structure-assert.js +0 -59
  228. package/dist/browser/segment-structure-assert.js.map +0 -1
  229. package/dist/browser/server-action-bridge.d.ts +0 -26
  230. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  231. package/dist/browser/server-action-bridge.js +0 -668
  232. package/dist/browser/server-action-bridge.js.map +0 -1
  233. package/dist/browser/shallow.d.ts +0 -12
  234. package/dist/browser/shallow.d.ts.map +0 -1
  235. package/dist/browser/shallow.js +0 -34
  236. package/dist/browser/shallow.js.map +0 -1
  237. package/dist/browser/types.d.ts +0 -369
  238. package/dist/browser/types.d.ts.map +0 -1
  239. package/dist/browser/types.js +0 -2
  240. package/dist/browser/types.js.map +0 -1
  241. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  242. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  243. package/dist/build/__tests__/generate-cli.test.js +0 -237
  244. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  245. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  246. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  247. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  248. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  249. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  250. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  251. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  252. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  253. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  254. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  255. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  256. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  257. package/dist/build/generate-manifest.d.ts +0 -81
  258. package/dist/build/generate-manifest.d.ts.map +0 -1
  259. package/dist/build/generate-manifest.js +0 -276
  260. package/dist/build/generate-manifest.js.map +0 -1
  261. package/dist/build/generate-route-types.d.ts +0 -115
  262. package/dist/build/generate-route-types.d.ts.map +0 -1
  263. package/dist/build/generate-route-types.js +0 -740
  264. package/dist/build/generate-route-types.js.map +0 -1
  265. package/dist/build/index.d.ts +0 -21
  266. package/dist/build/index.d.ts.map +0 -1
  267. package/dist/build/index.js +0 -21
  268. package/dist/build/index.js.map +0 -1
  269. package/dist/build/route-trie.d.ts +0 -71
  270. package/dist/build/route-trie.d.ts.map +0 -1
  271. package/dist/build/route-trie.js +0 -175
  272. package/dist/build/route-trie.js.map +0 -1
  273. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  274. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  275. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  276. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  277. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  278. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  279. package/dist/cache/__tests__/document-cache.test.js +0 -345
  280. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  281. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  282. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  283. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  284. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  285. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  286. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  287. package/dist/cache/__tests__/memory-store.test.js +0 -367
  288. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  289. package/dist/cache/cache-scope.d.ts +0 -102
  290. package/dist/cache/cache-scope.d.ts.map +0 -1
  291. package/dist/cache/cache-scope.js +0 -440
  292. package/dist/cache/cache-scope.js.map +0 -1
  293. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  294. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  295. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  296. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  297. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  298. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  299. package/dist/cache/cf/cf-cache-store.js +0 -242
  300. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  301. package/dist/cache/cf/index.d.ts +0 -14
  302. package/dist/cache/cf/index.d.ts.map +0 -1
  303. package/dist/cache/cf/index.js +0 -17
  304. package/dist/cache/cf/index.js.map +0 -1
  305. package/dist/cache/document-cache.d.ts +0 -64
  306. package/dist/cache/document-cache.d.ts.map +0 -1
  307. package/dist/cache/document-cache.js +0 -228
  308. package/dist/cache/document-cache.js.map +0 -1
  309. package/dist/cache/index.d.ts +0 -19
  310. package/dist/cache/index.d.ts.map +0 -1
  311. package/dist/cache/index.js +0 -21
  312. package/dist/cache/index.js.map +0 -1
  313. package/dist/cache/memory-segment-store.d.ts +0 -110
  314. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  315. package/dist/cache/memory-segment-store.js +0 -117
  316. package/dist/cache/memory-segment-store.js.map +0 -1
  317. package/dist/cache/memory-store.d.ts +0 -41
  318. package/dist/cache/memory-store.d.ts.map +0 -1
  319. package/dist/cache/memory-store.js +0 -191
  320. package/dist/cache/memory-store.js.map +0 -1
  321. package/dist/cache/types.d.ts +0 -317
  322. package/dist/cache/types.d.ts.map +0 -1
  323. package/dist/cache/types.js +0 -12
  324. package/dist/cache/types.js.map +0 -1
  325. package/dist/client.d.ts +0 -248
  326. package/dist/client.d.ts.map +0 -1
  327. package/dist/client.js +0 -367
  328. package/dist/client.js.map +0 -1
  329. package/dist/client.rsc.d.ts +0 -26
  330. package/dist/client.rsc.d.ts.map +0 -1
  331. package/dist/client.rsc.js +0 -46
  332. package/dist/client.rsc.js.map +0 -1
  333. package/dist/component-utils.d.ts +0 -36
  334. package/dist/component-utils.d.ts.map +0 -1
  335. package/dist/component-utils.js +0 -61
  336. package/dist/component-utils.js.map +0 -1
  337. package/dist/components/DefaultDocument.d.ts +0 -13
  338. package/dist/components/DefaultDocument.d.ts.map +0 -1
  339. package/dist/components/DefaultDocument.js +0 -15
  340. package/dist/components/DefaultDocument.js.map +0 -1
  341. package/dist/debug.d.ts +0 -58
  342. package/dist/debug.d.ts.map +0 -1
  343. package/dist/debug.js +0 -157
  344. package/dist/debug.js.map +0 -1
  345. package/dist/default-error-boundary.d.ts +0 -11
  346. package/dist/default-error-boundary.d.ts.map +0 -1
  347. package/dist/default-error-boundary.js +0 -45
  348. package/dist/default-error-boundary.js.map +0 -1
  349. package/dist/deps/browser.d.ts +0 -2
  350. package/dist/deps/browser.d.ts.map +0 -1
  351. package/dist/deps/browser.js +0 -3
  352. package/dist/deps/browser.js.map +0 -1
  353. package/dist/deps/html-stream-client.d.ts +0 -2
  354. package/dist/deps/html-stream-client.d.ts.map +0 -1
  355. package/dist/deps/html-stream-client.js +0 -3
  356. package/dist/deps/html-stream-client.js.map +0 -1
  357. package/dist/deps/html-stream-server.d.ts +0 -2
  358. package/dist/deps/html-stream-server.d.ts.map +0 -1
  359. package/dist/deps/html-stream-server.js +0 -3
  360. package/dist/deps/html-stream-server.js.map +0 -1
  361. package/dist/deps/rsc.d.ts +0 -2
  362. package/dist/deps/rsc.d.ts.map +0 -1
  363. package/dist/deps/rsc.js +0 -4
  364. package/dist/deps/rsc.js.map +0 -1
  365. package/dist/deps/ssr.d.ts +0 -2
  366. package/dist/deps/ssr.d.ts.map +0 -1
  367. package/dist/deps/ssr.js +0 -3
  368. package/dist/deps/ssr.js.map +0 -1
  369. package/dist/errors.d.ts +0 -174
  370. package/dist/errors.d.ts.map +0 -1
  371. package/dist/errors.js +0 -241
  372. package/dist/errors.js.map +0 -1
  373. package/dist/handle.d.ts +0 -78
  374. package/dist/handle.d.ts.map +0 -1
  375. package/dist/handle.js +0 -82
  376. package/dist/handle.js.map +0 -1
  377. package/dist/handles/MetaTags.d.ts +0 -14
  378. package/dist/handles/MetaTags.d.ts.map +0 -1
  379. package/dist/handles/MetaTags.js +0 -136
  380. package/dist/handles/MetaTags.js.map +0 -1
  381. package/dist/handles/index.d.ts +0 -6
  382. package/dist/handles/index.d.ts.map +0 -1
  383. package/dist/handles/index.js +0 -6
  384. package/dist/handles/index.js.map +0 -1
  385. package/dist/handles/meta.d.ts +0 -39
  386. package/dist/handles/meta.d.ts.map +0 -1
  387. package/dist/handles/meta.js +0 -202
  388. package/dist/handles/meta.js.map +0 -1
  389. package/dist/host/__tests__/errors.test.d.ts +0 -2
  390. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  391. package/dist/host/__tests__/errors.test.js +0 -76
  392. package/dist/host/__tests__/errors.test.js.map +0 -1
  393. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  394. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  395. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  396. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  397. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  398. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  399. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  400. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  401. package/dist/host/__tests__/router.test.d.ts +0 -2
  402. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  403. package/dist/host/__tests__/router.test.js +0 -241
  404. package/dist/host/__tests__/router.test.js.map +0 -1
  405. package/dist/host/__tests__/testing.test.d.ts +0 -2
  406. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  407. package/dist/host/__tests__/testing.test.js +0 -64
  408. package/dist/host/__tests__/testing.test.js.map +0 -1
  409. package/dist/host/__tests__/utils.test.d.ts +0 -2
  410. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  411. package/dist/host/__tests__/utils.test.js +0 -29
  412. package/dist/host/__tests__/utils.test.js.map +0 -1
  413. package/dist/host/cookie-handler.d.ts +0 -34
  414. package/dist/host/cookie-handler.d.ts.map +0 -1
  415. package/dist/host/cookie-handler.js +0 -124
  416. package/dist/host/cookie-handler.js.map +0 -1
  417. package/dist/host/errors.d.ts +0 -56
  418. package/dist/host/errors.d.ts.map +0 -1
  419. package/dist/host/errors.js +0 -79
  420. package/dist/host/errors.js.map +0 -1
  421. package/dist/host/index.d.ts +0 -29
  422. package/dist/host/index.d.ts.map +0 -1
  423. package/dist/host/index.js +0 -32
  424. package/dist/host/index.js.map +0 -1
  425. package/dist/host/pattern-matcher.d.ts +0 -36
  426. package/dist/host/pattern-matcher.d.ts.map +0 -1
  427. package/dist/host/pattern-matcher.js +0 -172
  428. package/dist/host/pattern-matcher.js.map +0 -1
  429. package/dist/host/router.d.ts +0 -26
  430. package/dist/host/router.d.ts.map +0 -1
  431. package/dist/host/router.js +0 -218
  432. package/dist/host/router.js.map +0 -1
  433. package/dist/host/testing.d.ts +0 -36
  434. package/dist/host/testing.d.ts.map +0 -1
  435. package/dist/host/testing.js +0 -55
  436. package/dist/host/testing.js.map +0 -1
  437. package/dist/host/types.d.ts +0 -115
  438. package/dist/host/types.d.ts.map +0 -1
  439. package/dist/host/types.js +0 -7
  440. package/dist/host/types.js.map +0 -1
  441. package/dist/host/utils.d.ts +0 -21
  442. package/dist/host/utils.d.ts.map +0 -1
  443. package/dist/host/utils.js +0 -23
  444. package/dist/host/utils.js.map +0 -1
  445. package/dist/href-client.d.ts +0 -131
  446. package/dist/href-client.d.ts.map +0 -1
  447. package/dist/href-client.js +0 -64
  448. package/dist/href-client.js.map +0 -1
  449. package/dist/href-context.d.ts +0 -29
  450. package/dist/href-context.d.ts.map +0 -1
  451. package/dist/href-context.js +0 -21
  452. package/dist/href-context.js.map +0 -1
  453. package/dist/index.d.ts +0 -73
  454. package/dist/index.d.ts.map +0 -1
  455. package/dist/index.js +0 -91
  456. package/dist/index.js.map +0 -1
  457. package/dist/index.rsc.d.ts +0 -32
  458. package/dist/index.rsc.d.ts.map +0 -1
  459. package/dist/index.rsc.js +0 -40
  460. package/dist/index.rsc.js.map +0 -1
  461. package/dist/internal-debug.d.ts +0 -2
  462. package/dist/internal-debug.d.ts.map +0 -1
  463. package/dist/internal-debug.js +0 -5
  464. package/dist/internal-debug.js.map +0 -1
  465. package/dist/loader.d.ts +0 -14
  466. package/dist/loader.d.ts.map +0 -1
  467. package/dist/loader.js +0 -20
  468. package/dist/loader.js.map +0 -1
  469. package/dist/loader.rsc.d.ts +0 -19
  470. package/dist/loader.rsc.d.ts.map +0 -1
  471. package/dist/loader.rsc.js +0 -99
  472. package/dist/loader.rsc.js.map +0 -1
  473. package/dist/network-error-thrower.d.ts +0 -17
  474. package/dist/network-error-thrower.d.ts.map +0 -1
  475. package/dist/network-error-thrower.js +0 -14
  476. package/dist/network-error-thrower.js.map +0 -1
  477. package/dist/outlet-context.d.ts +0 -13
  478. package/dist/outlet-context.d.ts.map +0 -1
  479. package/dist/outlet-context.js +0 -3
  480. package/dist/outlet-context.js.map +0 -1
  481. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  482. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  483. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  484. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  485. package/dist/prerender/param-hash.d.ts +0 -16
  486. package/dist/prerender/param-hash.d.ts.map +0 -1
  487. package/dist/prerender/param-hash.js +0 -36
  488. package/dist/prerender/param-hash.js.map +0 -1
  489. package/dist/prerender/store.d.ts +0 -38
  490. package/dist/prerender/store.d.ts.map +0 -1
  491. package/dist/prerender/store.js +0 -61
  492. package/dist/prerender/store.js.map +0 -1
  493. package/dist/prerender.d.ts +0 -66
  494. package/dist/prerender.d.ts.map +0 -1
  495. package/dist/prerender.js +0 -57
  496. package/dist/prerender.js.map +0 -1
  497. package/dist/reverse.d.ts +0 -196
  498. package/dist/reverse.d.ts.map +0 -1
  499. package/dist/reverse.js +0 -78
  500. package/dist/reverse.js.map +0 -1
  501. package/dist/root-error-boundary.d.ts +0 -33
  502. package/dist/root-error-boundary.d.ts.map +0 -1
  503. package/dist/root-error-boundary.js +0 -165
  504. package/dist/root-error-boundary.js.map +0 -1
  505. package/dist/route-content-wrapper.d.ts +0 -46
  506. package/dist/route-content-wrapper.d.ts.map +0 -1
  507. package/dist/route-content-wrapper.js +0 -77
  508. package/dist/route-content-wrapper.js.map +0 -1
  509. package/dist/route-definition.d.ts +0 -421
  510. package/dist/route-definition.d.ts.map +0 -1
  511. package/dist/route-definition.js +0 -868
  512. package/dist/route-definition.js.map +0 -1
  513. package/dist/route-map-builder.d.ts +0 -155
  514. package/dist/route-map-builder.d.ts.map +0 -1
  515. package/dist/route-map-builder.js +0 -237
  516. package/dist/route-map-builder.js.map +0 -1
  517. package/dist/route-types.d.ts +0 -165
  518. package/dist/route-types.d.ts.map +0 -1
  519. package/dist/route-types.js +0 -7
  520. package/dist/route-types.js.map +0 -1
  521. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  522. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  523. package/dist/router/__tests__/handler-context.test.js +0 -65
  524. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  525. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  526. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  527. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  528. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  529. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  530. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  531. package/dist/router/__tests__/match-context.test.js +0 -92
  532. package/dist/router/__tests__/match-context.test.js.map +0 -1
  533. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  534. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  535. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  536. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  537. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  538. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  539. package/dist/router/__tests__/match-result.test.js +0 -457
  540. package/dist/router/__tests__/match-result.test.js.map +0 -1
  541. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  542. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  543. package/dist/router/__tests__/on-error.test.js +0 -678
  544. package/dist/router/__tests__/on-error.test.js.map +0 -1
  545. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  546. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  547. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  548. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  549. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  550. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  551. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  552. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  553. package/dist/router/error-handling.d.ts +0 -77
  554. package/dist/router/error-handling.d.ts.map +0 -1
  555. package/dist/router/error-handling.js +0 -202
  556. package/dist/router/error-handling.js.map +0 -1
  557. package/dist/router/handler-context.d.ts +0 -20
  558. package/dist/router/handler-context.d.ts.map +0 -1
  559. package/dist/router/handler-context.js +0 -198
  560. package/dist/router/handler-context.js.map +0 -1
  561. package/dist/router/intercept-resolution.d.ts +0 -66
  562. package/dist/router/intercept-resolution.d.ts.map +0 -1
  563. package/dist/router/intercept-resolution.js +0 -246
  564. package/dist/router/intercept-resolution.js.map +0 -1
  565. package/dist/router/loader-resolution.d.ts +0 -64
  566. package/dist/router/loader-resolution.d.ts.map +0 -1
  567. package/dist/router/loader-resolution.js +0 -284
  568. package/dist/router/loader-resolution.js.map +0 -1
  569. package/dist/router/logging.d.ts +0 -15
  570. package/dist/router/logging.d.ts.map +0 -1
  571. package/dist/router/logging.js +0 -99
  572. package/dist/router/logging.js.map +0 -1
  573. package/dist/router/manifest.d.ts +0 -22
  574. package/dist/router/manifest.d.ts.map +0 -1
  575. package/dist/router/manifest.js +0 -181
  576. package/dist/router/manifest.js.map +0 -1
  577. package/dist/router/match-api.d.ts +0 -35
  578. package/dist/router/match-api.d.ts.map +0 -1
  579. package/dist/router/match-api.js +0 -406
  580. package/dist/router/match-api.js.map +0 -1
  581. package/dist/router/match-context.d.ts +0 -206
  582. package/dist/router/match-context.d.ts.map +0 -1
  583. package/dist/router/match-context.js +0 -17
  584. package/dist/router/match-context.js.map +0 -1
  585. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  586. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  587. package/dist/router/match-middleware/background-revalidation.js +0 -75
  588. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  589. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  590. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  591. package/dist/router/match-middleware/cache-lookup.js +0 -257
  592. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  593. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  594. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  595. package/dist/router/match-middleware/cache-store.js +0 -108
  596. package/dist/router/match-middleware/cache-store.js.map +0 -1
  597. package/dist/router/match-middleware/index.d.ts +0 -81
  598. package/dist/router/match-middleware/index.d.ts.map +0 -1
  599. package/dist/router/match-middleware/index.js +0 -80
  600. package/dist/router/match-middleware/index.js.map +0 -1
  601. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  602. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  603. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  604. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  605. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  606. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  607. package/dist/router/match-middleware/segment-resolution.js +0 -53
  608. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  609. package/dist/router/match-pipelines.d.ts +0 -147
  610. package/dist/router/match-pipelines.d.ts.map +0 -1
  611. package/dist/router/match-pipelines.js +0 -82
  612. package/dist/router/match-pipelines.js.map +0 -1
  613. package/dist/router/match-result.d.ts +0 -126
  614. package/dist/router/match-result.d.ts.map +0 -1
  615. package/dist/router/match-result.js +0 -93
  616. package/dist/router/match-result.js.map +0 -1
  617. package/dist/router/metrics.d.ts +0 -20
  618. package/dist/router/metrics.d.ts.map +0 -1
  619. package/dist/router/metrics.js +0 -47
  620. package/dist/router/metrics.js.map +0 -1
  621. package/dist/router/middleware.d.ts +0 -249
  622. package/dist/router/middleware.d.ts.map +0 -1
  623. package/dist/router/middleware.js +0 -434
  624. package/dist/router/middleware.js.map +0 -1
  625. package/dist/router/middleware.test.d.ts +0 -2
  626. package/dist/router/middleware.test.d.ts.map +0 -1
  627. package/dist/router/middleware.test.js +0 -816
  628. package/dist/router/middleware.test.js.map +0 -1
  629. package/dist/router/pattern-matching.d.ts +0 -149
  630. package/dist/router/pattern-matching.d.ts.map +0 -1
  631. package/dist/router/pattern-matching.js +0 -349
  632. package/dist/router/pattern-matching.js.map +0 -1
  633. package/dist/router/revalidation.d.ts +0 -44
  634. package/dist/router/revalidation.d.ts.map +0 -1
  635. package/dist/router/revalidation.js +0 -147
  636. package/dist/router/revalidation.js.map +0 -1
  637. package/dist/router/router-context.d.ts +0 -135
  638. package/dist/router/router-context.d.ts.map +0 -1
  639. package/dist/router/router-context.js +0 -36
  640. package/dist/router/router-context.js.map +0 -1
  641. package/dist/router/segment-resolution.d.ts +0 -127
  642. package/dist/router/segment-resolution.d.ts.map +0 -1
  643. package/dist/router/segment-resolution.js +0 -919
  644. package/dist/router/segment-resolution.js.map +0 -1
  645. package/dist/router/trie-matching.d.ts +0 -40
  646. package/dist/router/trie-matching.d.ts.map +0 -1
  647. package/dist/router/trie-matching.js +0 -127
  648. package/dist/router/trie-matching.js.map +0 -1
  649. package/dist/router/types.d.ts +0 -136
  650. package/dist/router/types.d.ts.map +0 -1
  651. package/dist/router/types.js +0 -7
  652. package/dist/router/types.js.map +0 -1
  653. package/dist/router.d.ts +0 -753
  654. package/dist/router.d.ts.map +0 -1
  655. package/dist/router.gen.d.ts +0 -6
  656. package/dist/router.gen.d.ts.map +0 -1
  657. package/dist/router.gen.js +0 -6
  658. package/dist/router.gen.js.map +0 -1
  659. package/dist/router.js +0 -1304
  660. package/dist/router.js.map +0 -1
  661. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  662. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  663. package/dist/rsc/__tests__/helpers.test.js +0 -140
  664. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  665. package/dist/rsc/handler.d.ts +0 -45
  666. package/dist/rsc/handler.d.ts.map +0 -1
  667. package/dist/rsc/handler.js +0 -1172
  668. package/dist/rsc/handler.js.map +0 -1
  669. package/dist/rsc/helpers.d.ts +0 -16
  670. package/dist/rsc/helpers.d.ts.map +0 -1
  671. package/dist/rsc/helpers.js +0 -55
  672. package/dist/rsc/helpers.js.map +0 -1
  673. package/dist/rsc/index.d.ts +0 -22
  674. package/dist/rsc/index.d.ts.map +0 -1
  675. package/dist/rsc/index.js +0 -23
  676. package/dist/rsc/index.js.map +0 -1
  677. package/dist/rsc/nonce.d.ts +0 -9
  678. package/dist/rsc/nonce.d.ts.map +0 -1
  679. package/dist/rsc/nonce.js +0 -18
  680. package/dist/rsc/nonce.js.map +0 -1
  681. package/dist/rsc/types.d.ts +0 -206
  682. package/dist/rsc/types.d.ts.map +0 -1
  683. package/dist/rsc/types.js +0 -8
  684. package/dist/rsc/types.js.map +0 -1
  685. package/dist/search-params.d.ts +0 -103
  686. package/dist/search-params.d.ts.map +0 -1
  687. package/dist/search-params.js +0 -74
  688. package/dist/search-params.js.map +0 -1
  689. package/dist/segment-system.d.ts +0 -75
  690. package/dist/segment-system.d.ts.map +0 -1
  691. package/dist/segment-system.js +0 -336
  692. package/dist/segment-system.js.map +0 -1
  693. package/dist/server/context.d.ts +0 -245
  694. package/dist/server/context.d.ts.map +0 -1
  695. package/dist/server/context.js +0 -197
  696. package/dist/server/context.js.map +0 -1
  697. package/dist/server/fetchable-loader-store.d.ts +0 -18
  698. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  699. package/dist/server/fetchable-loader-store.js +0 -18
  700. package/dist/server/fetchable-loader-store.js.map +0 -1
  701. package/dist/server/handle-store.d.ts +0 -85
  702. package/dist/server/handle-store.d.ts.map +0 -1
  703. package/dist/server/handle-store.js +0 -142
  704. package/dist/server/handle-store.js.map +0 -1
  705. package/dist/server/loader-registry.d.ts +0 -55
  706. package/dist/server/loader-registry.d.ts.map +0 -1
  707. package/dist/server/loader-registry.js +0 -132
  708. package/dist/server/loader-registry.js.map +0 -1
  709. package/dist/server/request-context.d.ts +0 -226
  710. package/dist/server/request-context.d.ts.map +0 -1
  711. package/dist/server/request-context.js +0 -290
  712. package/dist/server/request-context.js.map +0 -1
  713. package/dist/server/root-layout.d.ts +0 -4
  714. package/dist/server/root-layout.d.ts.map +0 -1
  715. package/dist/server/root-layout.js +0 -5
  716. package/dist/server/root-layout.js.map +0 -1
  717. package/dist/server.d.ts +0 -15
  718. package/dist/server.d.ts.map +0 -1
  719. package/dist/server.js +0 -20
  720. package/dist/server.js.map +0 -1
  721. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  722. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  723. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  724. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  725. package/dist/ssr/index.d.ts +0 -98
  726. package/dist/ssr/index.d.ts.map +0 -1
  727. package/dist/ssr/index.js +0 -158
  728. package/dist/ssr/index.js.map +0 -1
  729. package/dist/static-handler.d.ts +0 -50
  730. package/dist/static-handler.d.ts.map +0 -1
  731. package/dist/static-handler.gen.d.ts +0 -5
  732. package/dist/static-handler.gen.d.ts.map +0 -1
  733. package/dist/static-handler.gen.js +0 -5
  734. package/dist/static-handler.gen.js.map +0 -1
  735. package/dist/static-handler.js +0 -29
  736. package/dist/static-handler.js.map +0 -1
  737. package/dist/theme/ThemeProvider.d.ts +0 -20
  738. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  739. package/dist/theme/ThemeProvider.js +0 -240
  740. package/dist/theme/ThemeProvider.js.map +0 -1
  741. package/dist/theme/ThemeScript.d.ts +0 -48
  742. package/dist/theme/ThemeScript.d.ts.map +0 -1
  743. package/dist/theme/ThemeScript.js +0 -13
  744. package/dist/theme/ThemeScript.js.map +0 -1
  745. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  746. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  747. package/dist/theme/__tests__/theme.test.js +0 -103
  748. package/dist/theme/__tests__/theme.test.js.map +0 -1
  749. package/dist/theme/constants.d.ts +0 -29
  750. package/dist/theme/constants.d.ts.map +0 -1
  751. package/dist/theme/constants.js +0 -48
  752. package/dist/theme/constants.js.map +0 -1
  753. package/dist/theme/index.d.ts +0 -31
  754. package/dist/theme/index.d.ts.map +0 -1
  755. package/dist/theme/index.js +0 -36
  756. package/dist/theme/index.js.map +0 -1
  757. package/dist/theme/theme-context.d.ts +0 -40
  758. package/dist/theme/theme-context.d.ts.map +0 -1
  759. package/dist/theme/theme-context.js +0 -60
  760. package/dist/theme/theme-context.js.map +0 -1
  761. package/dist/theme/theme-script.d.ts +0 -27
  762. package/dist/theme/theme-script.d.ts.map +0 -1
  763. package/dist/theme/theme-script.js +0 -147
  764. package/dist/theme/theme-script.js.map +0 -1
  765. package/dist/theme/types.d.ts +0 -163
  766. package/dist/theme/types.d.ts.map +0 -1
  767. package/dist/theme/types.js +0 -11
  768. package/dist/theme/types.js.map +0 -1
  769. package/dist/theme/use-theme.d.ts +0 -12
  770. package/dist/theme/use-theme.d.ts.map +0 -1
  771. package/dist/theme/use-theme.js +0 -40
  772. package/dist/theme/use-theme.js.map +0 -1
  773. package/dist/types.d.ts +0 -1479
  774. package/dist/types.d.ts.map +0 -1
  775. package/dist/types.js +0 -10
  776. package/dist/types.js.map +0 -1
  777. package/dist/urls.d.ts +0 -441
  778. package/dist/urls.d.ts.map +0 -1
  779. package/dist/urls.gen.d.ts +0 -8
  780. package/dist/urls.gen.d.ts.map +0 -1
  781. package/dist/urls.gen.js +0 -8
  782. package/dist/urls.gen.js.map +0 -1
  783. package/dist/urls.js +0 -443
  784. package/dist/urls.js.map +0 -1
  785. package/dist/use-loader.d.ts +0 -127
  786. package/dist/use-loader.d.ts.map +0 -1
  787. package/dist/use-loader.js +0 -237
  788. package/dist/use-loader.js.map +0 -1
  789. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  790. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  791. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  792. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  793. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  794. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  795. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  796. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  797. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  798. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  799. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  800. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  801. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  802. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  803. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  804. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  805. package/dist/vite/ast-handler-extract.d.ts +0 -49
  806. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  807. package/dist/vite/ast-handler-extract.js +0 -249
  808. package/dist/vite/ast-handler-extract.js.map +0 -1
  809. package/dist/vite/expose-action-id.d.ts +0 -19
  810. package/dist/vite/expose-action-id.d.ts.map +0 -1
  811. package/dist/vite/expose-action-id.js +0 -250
  812. package/dist/vite/expose-action-id.js.map +0 -1
  813. package/dist/vite/expose-id-utils.d.ts +0 -69
  814. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  815. package/dist/vite/expose-id-utils.js +0 -289
  816. package/dist/vite/expose-id-utils.js.map +0 -1
  817. package/dist/vite/expose-internal-ids.d.ts +0 -22
  818. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  819. package/dist/vite/expose-internal-ids.js +0 -886
  820. package/dist/vite/expose-internal-ids.js.map +0 -1
  821. package/dist/vite/index.d.ts +0 -149
  822. package/dist/vite/index.d.ts.map +0 -1
  823. package/dist/vite/index.js.map +0 -1
  824. package/dist/vite/index.named-routes.gen.ts +0 -103
  825. package/dist/vite/package-resolution.d.ts +0 -43
  826. package/dist/vite/package-resolution.d.ts.map +0 -1
  827. package/dist/vite/package-resolution.js +0 -112
  828. package/dist/vite/package-resolution.js.map +0 -1
  829. package/dist/vite/virtual-entries.d.ts +0 -25
  830. package/dist/vite/virtual-entries.d.ts.map +0 -1
  831. package/dist/vite/virtual-entries.js +0 -110
  832. package/dist/vite/virtual-entries.js.map +0 -1
  833. package/skills/testing/SKILL.md +0 -226
  834. package/src/route-definition/route-function.ts +0 -119
package/src/index.ts CHANGED
@@ -115,25 +115,32 @@ export type {
115
115
  // Middleware context types
116
116
  export type { MiddlewareContext, CookieOptions } from "./router/middleware.js";
117
117
 
118
+ function serverOnlyStubError(name: string): Error {
119
+ return new Error(
120
+ `${name}() is only available from "@rangojs/router" in a react-server/RSC environment. ` +
121
+ `For client hooks and components, import from "@rangojs/router/client".`,
122
+ );
123
+ }
124
+
118
125
  /**
119
126
  * Error-throwing stub for server-only `urls` function.
120
127
  */
121
128
  export function urls(): never {
122
- throw new Error("urls() is server-only and requires RSC context.");
129
+ throw serverOnlyStubError("urls");
123
130
  }
124
131
 
125
132
  /**
126
133
  * Error-throwing stub for server-only `createRouter` function.
127
134
  */
128
135
  export function createRouter(): never {
129
- throw new Error("createRouter() is server-only and requires RSC context.");
136
+ throw serverOnlyStubError("createRouter");
130
137
  }
131
138
 
132
139
  /**
133
140
  * Error-throwing stub for server-only `redirect` function.
134
141
  */
135
142
  export function redirect(): never {
136
- throw new Error("redirect() is server-only and requires RSC context.");
143
+ throw serverOnlyStubError("redirect");
137
144
  }
138
145
 
139
146
  // Handle API (universal - works on both server and client)
@@ -149,102 +156,94 @@ export { nonce } from "./rsc/nonce.js";
149
156
  * Error-throwing stub for server-only `Prerender` function.
150
157
  */
151
158
  export function Prerender(): never {
152
- throw new Error("Prerender() is server-only and requires RSC context.");
159
+ throw serverOnlyStubError("Prerender");
153
160
  }
154
161
 
155
162
  /**
156
163
  * Error-throwing stub for server-only `Static` function.
157
164
  */
158
165
  export function Static(): never {
159
- throw new Error("Static() is server-only and requires RSC context.");
166
+ throw serverOnlyStubError("Static");
160
167
  }
161
168
 
162
169
  /**
163
170
  * Error-throwing stub for server-only `getRequestContext` function.
164
171
  */
165
172
  export function getRequestContext(): never {
166
- throw new Error(
167
- "getRequestContext() is server-only and requires RSC context.",
168
- );
173
+ throw serverOnlyStubError("getRequestContext");
169
174
  }
170
175
 
171
176
  /**
172
177
  * Error-throwing stub for server-only `cookies` function.
173
178
  */
174
179
  export function cookies(): never {
175
- throw new Error("cookies() is server-only and requires RSC context.");
180
+ throw serverOnlyStubError("cookies");
176
181
  }
177
182
 
178
183
  /**
179
184
  * Error-throwing stub for server-only `headers` function.
180
185
  */
181
186
  export function headers(): never {
182
- throw new Error("headers() is server-only and requires RSC context.");
187
+ throw serverOnlyStubError("headers");
183
188
  }
184
189
 
185
190
  /**
186
191
  * Error-throwing stub for server-only `createReverse` function.
187
192
  */
188
193
  export function createReverse(): never {
189
- throw new Error("createReverse() is server-only and requires RSC context.");
194
+ throw serverOnlyStubError("createReverse");
190
195
  }
191
196
 
192
197
  /**
193
198
  * Error-throwing stub for server-only `enableMatchDebug` function.
194
199
  */
195
200
  export function enableMatchDebug(): never {
196
- throw new Error(
197
- "enableMatchDebug() is server-only and requires RSC context.",
198
- );
201
+ throw serverOnlyStubError("enableMatchDebug");
199
202
  }
200
203
 
201
204
  /**
202
205
  * Error-throwing stub for server-only `getMatchDebugStats` function.
203
206
  */
204
207
  export function getMatchDebugStats(): never {
205
- throw new Error(
206
- "getMatchDebugStats() is server-only and requires RSC context.",
207
- );
208
+ throw serverOnlyStubError("getMatchDebugStats");
208
209
  }
209
210
 
210
211
  // Error-throwing stubs for server-only route helpers
211
212
  export function layout(): never {
212
- throw new Error("layout() is server-only and requires RSC context.");
213
+ throw serverOnlyStubError("layout");
213
214
  }
214
215
  export function cache(): never {
215
- throw new Error("cache() is server-only and requires RSC context.");
216
+ throw serverOnlyStubError("cache");
216
217
  }
217
218
  export function middleware(): never {
218
- throw new Error("middleware() is server-only and requires RSC context.");
219
+ throw serverOnlyStubError("middleware");
219
220
  }
220
221
  export function revalidate(): never {
221
- throw new Error("revalidate() is server-only and requires RSC context.");
222
+ throw serverOnlyStubError("revalidate");
222
223
  }
223
224
  export function loader(): never {
224
- throw new Error("loader() is server-only and requires RSC context.");
225
+ throw serverOnlyStubError("loader");
225
226
  }
226
227
  export function loading(): never {
227
- throw new Error("loading() is server-only and requires RSC context.");
228
+ throw serverOnlyStubError("loading");
228
229
  }
229
230
  export function parallel(): never {
230
- throw new Error("parallel() is server-only and requires RSC context.");
231
+ throw serverOnlyStubError("parallel");
231
232
  }
232
233
  export function intercept(): never {
233
- throw new Error("intercept() is server-only and requires RSC context.");
234
+ throw serverOnlyStubError("intercept");
234
235
  }
235
236
  export function when(): never {
236
- throw new Error("when() is server-only and requires RSC context.");
237
+ throw serverOnlyStubError("when");
237
238
  }
238
239
  export function errorBoundary(): never {
239
- throw new Error("errorBoundary() is server-only and requires RSC context.");
240
+ throw serverOnlyStubError("errorBoundary");
240
241
  }
241
242
  export function notFoundBoundary(): never {
242
- throw new Error(
243
- "notFoundBoundary() is server-only and requires RSC context.",
244
- );
243
+ throw serverOnlyStubError("notFoundBoundary");
245
244
  }
246
245
  export function transition(): never {
247
- throw new Error("transition() is server-only and requires RSC context.");
246
+ throw serverOnlyStubError("transition");
248
247
  }
249
248
 
250
249
  // Request context type (safe for client)
@@ -1,6 +1,3 @@
1
- // Route definition
2
- export { route, type RouteDefinitionResult } from "./route-function.js";
3
-
4
1
  // Type definitions
5
2
  export type { RouteHelpers } from "./helpers-types.js";
6
3
  export type {
@@ -262,7 +262,7 @@ function createLoaderExecutor<TEnv>(
262
262
  reverse: ctx.reverse as LoaderContext["reverse"],
263
263
  };
264
264
 
265
- const doneLoader = track(`loader:${loader.$$id}`);
265
+ const doneLoader = track(`loader:${loader.$$id}`, 2);
266
266
  const promise = Promise.resolve(
267
267
  loaderFn(loaderCtx as LoaderContext<any, TEnv>),
268
268
  ).finally(() => {
@@ -4,7 +4,56 @@
4
4
  * Performance metrics collection and reporting for RSC Router.
5
5
  */
6
6
 
7
- import type { MetricsStore } from "../server/context";
7
+ import type { MetricsStore, PerformanceMetric } from "../server/context";
8
+
9
+ const BASE_INDENT = 2;
10
+ const DEPTH_INDENT = 2;
11
+ const TIMELINE_WIDTH = 40;
12
+
13
+ function formatMs(value: number): string {
14
+ return `${value.toFixed(1)}ms`;
15
+ }
16
+
17
+ function sortMetrics(metrics: PerformanceMetric[]): PerformanceMetric[] {
18
+ return [...metrics].sort((a, b) => a.startTime - b.startTime);
19
+ }
20
+
21
+ function renderTimeline(metric: PerformanceMetric, total: number): string {
22
+ if (TIMELINE_WIDTH <= 0) {
23
+ return "||";
24
+ }
25
+
26
+ const cells = Array(TIMELINE_WIDTH).fill(".");
27
+
28
+ if (!(total > 0)) {
29
+ cells[0] = "#";
30
+ return `|${cells.join("")}|`;
31
+ }
32
+
33
+ const start = Math.max(0, metric.startTime);
34
+ const end = Math.max(start, metric.startTime + metric.duration);
35
+ const startColumn = Math.min(
36
+ TIMELINE_WIDTH - 1,
37
+ Math.floor((start / total) * TIMELINE_WIDTH),
38
+ );
39
+ const endColumn = Math.max(
40
+ startColumn + 1,
41
+ Math.min(
42
+ TIMELINE_WIDTH,
43
+ Math.ceil((Math.min(total, end) / total) * TIMELINE_WIDTH),
44
+ ),
45
+ );
46
+
47
+ cells.fill("#", startColumn, endColumn);
48
+ return `|${cells.join("")}|`;
49
+ }
50
+
51
+ function createTimelineAxis(total: number): string {
52
+ const totalLabel = formatMs(total);
53
+ return `0ms${" ".repeat(
54
+ Math.max(1, TIMELINE_WIDTH - "0ms".length - totalLabel.length),
55
+ )}${totalLabel}`;
56
+ }
8
57
 
9
58
  /**
10
59
  * Create a metrics store for the request if debugPerformance is enabled
@@ -21,7 +70,8 @@ export function createMetricsStore(
21
70
  }
22
71
 
23
72
  /**
24
- * Log metrics to console in a formatted way
73
+ * Log metrics to console in a formatted way.
74
+ * Uses a shared-axis timeline so overlapping work stays visible.
25
75
  */
26
76
  export function logMetrics(
27
77
  method: string,
@@ -30,32 +80,62 @@ export function logMetrics(
30
80
  ): void {
31
81
  const total = performance.now() - metricsStore.requestStart;
32
82
 
33
- // Find max label length for alignment
34
- const maxLabelLen = Math.max(
35
- ...metricsStore.metrics.map((m) => m.label.length),
36
- 20,
83
+ const sorted = sortMetrics(metricsStore.metrics);
84
+ const labels = sorted.map(
85
+ (m) =>
86
+ `${" ".repeat(BASE_INDENT + (m.depth ?? 0) * DEPTH_INDENT)}${m.label}`,
87
+ );
88
+ const startValues = sorted.map((m) => formatMs(m.startTime));
89
+ const durationValues = sorted.map((m) => formatMs(m.duration));
90
+ const startWidth = Math.max(
91
+ "start".length,
92
+ ...startValues.map((v) => v.length),
93
+ );
94
+ const durationWidth = Math.max(
95
+ "dur".length,
96
+ ...durationValues.map((v) => v.length),
97
+ );
98
+ const spanWidth = Math.max(
99
+ "span".length,
100
+ ...labels.map((label) => label.length),
101
+ 22,
102
+ );
103
+ const timelinePadding = " ".repeat(
104
+ startWidth + 2 + durationWidth + 2 + spanWidth + 2,
37
105
  );
38
106
 
39
107
  console.log(`[RSC Perf] ${method} ${pathname} (${total.toFixed(1)}ms)`);
108
+ console.log(
109
+ `${"start".padStart(startWidth)} ${"dur".padStart(durationWidth)} ${"span".padEnd(spanWidth)} timeline`,
110
+ );
111
+ console.log(`${timelinePadding}${createTimelineAxis(total)}`);
112
+
113
+ for (let index = 0; index < sorted.length; index++) {
114
+ const metric = sorted[index];
115
+ const label = labels[index].padEnd(spanWidth);
116
+ const start = formatMs(metric.startTime).padStart(startWidth);
117
+ const duration = formatMs(metric.duration).padStart(durationWidth);
40
118
 
41
- for (const m of metricsStore.metrics) {
42
- const paddedLabel = m.label.padEnd(maxLabelLen);
43
- console.log(` ${paddedLabel} ${m.duration.toFixed(1)}ms`);
119
+ console.log(
120
+ `${start} ${duration} ${label} ${renderTimeline(metric, total)}`,
121
+ );
44
122
  }
45
123
  }
46
124
 
47
125
  /**
48
126
  * Generate Server-Timing header value from metrics
49
127
  * Format: metric-name;dur=X.XX
128
+ * Depth is encoded as a "d{N}-" prefix for nested metrics.
50
129
  */
51
130
  export function generateServerTiming(metricsStore: MetricsStore): string {
52
131
  return metricsStore.metrics
53
132
  .map((m) => {
54
133
  // Convert label to valid Server-Timing name (alphanumeric and hyphens)
55
- const name = m.label
134
+ const base = m.label
56
135
  .replace(/:/g, "-")
57
136
  .replace(/[^a-zA-Z0-9-]/g, "")
58
137
  .toLowerCase();
138
+ const name = m.depth ? `d${m.depth}-${base}` : base;
59
139
  return `${name};dur=${m.duration.toFixed(2)}`;
60
140
  })
61
141
  .join(", ");
@@ -100,6 +100,18 @@ export interface MiddlewareContext<
100
100
  */
101
101
  routeName?: DefaultRouteName;
102
102
 
103
+ /**
104
+ * Enable performance metrics for this request.
105
+ * When called, granular timing breakdown is logged to console and
106
+ * included in the Server-Timing response header, regardless of the
107
+ * router-level `debugPerformance` option.
108
+ *
109
+ * Must be called **before** `await next()` — the metrics store is
110
+ * created at the start of route matching inside `next()`, so calling
111
+ * this after `next()` returns has no effect.
112
+ */
113
+ debugPerformance(): void;
114
+
103
115
  /**
104
116
  * Generate URLs from route names.
105
117
  * - `name` — global route, from the named-routes definition
@@ -227,6 +227,13 @@ export function createMiddlewareContext<TEnv>(
227
227
  `ctx.reverse() is not available - route map was not provided to middleware context`,
228
228
  );
229
229
  }),
230
+
231
+ debugPerformance(): void {
232
+ const reqCtx = _getRequestContext();
233
+ if (reqCtx) {
234
+ reqCtx._debugPerformance = true;
235
+ }
236
+ },
230
237
  };
231
238
  }
232
239
 
@@ -309,14 +316,21 @@ export async function executeMiddleware<TEnv>(
309
316
  }
310
317
  });
311
318
  // Also merge shared RequestContext stub (cookies written via cookies().set()).
312
- // Set-Cookie duplication is prevented by createResponseWithMergedHeaders
313
- // draining Set-Cookie from ctx.res after merging (helpers.ts).
319
+ // Dedup Set-Cookie: an inner executeMiddleware (route-level middleware)
320
+ // may have already merged the same reqCtx cookies into the response.
314
321
  const reqCtx = _getRequestContext();
315
322
  if (reqCtx) {
323
+ const stubCookies = reqCtx.res.headers.getSetCookie();
324
+ if (stubCookies.length > 0) {
325
+ const existing = new Set(mergedHeaders.getSetCookie());
326
+ for (const cookie of stubCookies) {
327
+ if (!existing.has(cookie)) {
328
+ mergedHeaders.append("set-cookie", cookie);
329
+ }
330
+ }
331
+ }
316
332
  reqCtx.res.headers.forEach((value, name) => {
317
- if (name.toLowerCase() === "set-cookie") {
318
- mergedHeaders.append(name, value);
319
- } else if (!mergedHeaders.has(name)) {
333
+ if (name !== "set-cookie" && !mergedHeaders.has(name)) {
320
334
  mergedHeaders.set(name, value);
321
335
  }
322
336
  });
@@ -391,13 +405,22 @@ export async function executeMiddleware<TEnv>(
391
405
  mergedHeaders.set(name, value);
392
406
  }
393
407
  });
394
- // Also merge shared RequestContext stub (cookies written via setCookie)
408
+ // Also merge shared RequestContext stub (cookies written via setCookie).
409
+ // Dedup Set-Cookie: an inner executeMiddleware (route-level middleware)
410
+ // may have already merged the same reqCtx cookies into the response.
395
411
  const reqCtx = _getRequestContext();
396
412
  if (reqCtx) {
413
+ const stubCookies = reqCtx.res.headers.getSetCookie();
414
+ if (stubCookies.length > 0) {
415
+ const existing = new Set(mergedHeaders.getSetCookie());
416
+ for (const cookie of stubCookies) {
417
+ if (!existing.has(cookie)) {
418
+ mergedHeaders.append("set-cookie", cookie);
419
+ }
420
+ }
421
+ }
397
422
  reqCtx.res.headers.forEach((value, name) => {
398
- if (name.toLowerCase() === "set-cookie") {
399
- mergedHeaders.append(name, value);
400
- } else if (!mergedHeaders.has(name)) {
423
+ if (name !== "set-cookie" && !mergedHeaders.has(name)) {
401
424
  mergedHeaders.set(name, value);
402
425
  }
403
426
  });
@@ -459,6 +482,29 @@ export async function executeMiddleware<TEnv>(
459
482
  throw new Error("No response generated by middleware chain");
460
483
  }
461
484
 
485
+ // Final re-merge: capture any RequestContext stub headers added after the
486
+ // last merge point (e.g. cookies().set() called after await next()).
487
+ // The reqCtx stub may have already been partially merged during finalHandler
488
+ // or early-return paths; only append *new* Set-Cookie entries to avoid dupes.
489
+ const reqCtx = _getRequestContext();
490
+ if (reqCtx) {
491
+ const stubCookies = reqCtx.res.headers.getSetCookie();
492
+ if (stubCookies.length > 0) {
493
+ const existingCookies = new Set(finalResponse.headers.getSetCookie());
494
+ for (const cookie of stubCookies) {
495
+ if (!existingCookies.has(cookie)) {
496
+ finalResponse.headers.append("set-cookie", cookie);
497
+ }
498
+ }
499
+ }
500
+ // Fill in non-cookie headers that aren't already on the response
501
+ reqCtx.res.headers.forEach((value, name) => {
502
+ if (name !== "set-cookie" && !finalResponse.headers.has(name)) {
503
+ finalResponse.headers.set(name, value);
504
+ }
505
+ });
506
+ }
507
+
462
508
  return finalResponse;
463
509
  }
464
510
 
@@ -239,7 +239,7 @@ export interface RSCRouterOptions<TEnv = any> {
239
239
  *
240
240
  * @example Static config
241
241
  * ```typescript
242
- * import { MemorySegmentCacheStore } from "rsc-router/rsc";
242
+ * import { MemorySegmentCacheStore } from "@rangojs/router/cache";
243
243
  *
244
244
  * const router = createRouter({
245
245
  * cache: {
@@ -24,6 +24,7 @@ import {
24
24
  } from "./helpers.js";
25
25
  import { getRouterContext } from "../router-context.js";
26
26
  import { resolveSink, safeEmit } from "../telemetry.js";
27
+ import { track } from "../../server/context.js";
27
28
 
28
29
  // ---------------------------------------------------------------------------
29
30
  // Streamed handler telemetry
@@ -178,7 +179,9 @@ export async function resolveSegment<TEnv>(
178
179
  (context as InternalHandlerContext<any, TEnv>)._currentSegmentId =
179
180
  entry.shortCode;
180
181
 
182
+ const doneLayoutHandler = track(`handler:${entry.id}`, 2);
181
183
  const component = await resolveLayoutComponent(entry, context);
184
+ doneLayoutHandler();
182
185
 
183
186
  segments.push({
184
187
  id: entry.shortCode,
@@ -241,9 +244,11 @@ export async function resolveSegment<TEnv>(
241
244
  entry.shortCode,
242
245
  );
243
246
  if (component === undefined) {
247
+ const doneRouteHandler = track(`handler:${entry.id}`, 2);
244
248
  if (entry.loading) {
245
249
  const result = handleHandlerResult(entry.handler(context));
246
250
  if (result instanceof Promise) {
251
+ result.finally(doneRouteHandler).catch(() => {});
247
252
  const tracked = deps.trackHandler(result, {
248
253
  segmentId: entry.shortCode,
249
254
  segmentType: entry.type,
@@ -258,10 +263,12 @@ export async function resolveSegment<TEnv>(
258
263
  );
259
264
  component = tracked;
260
265
  } else {
266
+ doneRouteHandler();
261
267
  component = result;
262
268
  }
263
269
  } else {
264
270
  component = handleHandlerResult(await entry.handler(context));
271
+ doneRouteHandler();
265
272
  }
266
273
  }
267
274
 
@@ -343,7 +350,9 @@ export async function resolveOrphanLayout<TEnv>(
343
350
 
344
351
  // Handler-first: orphan layout handler executes before its parallels
345
352
  // so that ctx.set() values are visible to parallel children.
353
+ const doneOrphanHandler = track(`handler:${orphan.id}`, 2);
346
354
  const component = await resolveLayoutComponent(orphan, context);
355
+ doneOrphanHandler();
347
356
 
348
357
  segments.push({
349
358
  id: orphan.shortCode,
@@ -410,12 +419,17 @@ export async function resolveParallelEntry<TEnv>(
410
419
  );
411
420
 
412
421
  if (component === undefined) {
422
+ const doneParallelHandler = track(
423
+ `handler:${parallelEntry.id}.${slot}`,
424
+ 2,
425
+ );
413
426
  const hasLoadingFallback =
414
427
  parallelEntry.loading !== undefined && parallelEntry.loading !== false;
415
428
  if (hasLoadingFallback) {
416
429
  const result =
417
430
  typeof handler === "function" ? handler(context) : handler;
418
431
  if (result instanceof Promise) {
432
+ result.finally(doneParallelHandler).catch(() => {});
419
433
  const tracked = deps.trackHandler(result, {
420
434
  segmentId: `${parentShortCode}.${slot}`,
421
435
  segmentType: "parallel",
@@ -430,11 +444,13 @@ export async function resolveParallelEntry<TEnv>(
430
444
  );
431
445
  component = tracked as ReactNode;
432
446
  } else {
447
+ doneParallelHandler();
433
448
  component = result as ReactNode;
434
449
  }
435
450
  } else {
436
451
  component =
437
452
  typeof handler === "function" ? await handler(context) : handler;
453
+ doneParallelHandler();
438
454
  }
439
455
  }
440
456
 
@@ -499,6 +515,7 @@ export async function resolveAllSegments<TEnv>(
499
515
  } catch {}
500
516
 
501
517
  for (const entry of entries) {
518
+ const doneEntry = track(`segment:${entry.id}`, 1);
502
519
  const resolvedSegments = await resolveWithErrorBoundary(
503
520
  entry,
504
521
  params,
@@ -518,6 +535,7 @@ export async function resolveAllSegments<TEnv>(
518
535
  { request: safeRequest, url: context.url, routeKey, telemetry },
519
536
  context.pathname,
520
537
  );
538
+ doneEntry();
521
539
  // Deduplicate by segment ID. include() scopes can produce entries that
522
540
  // resolve the same shared layout/loader segment. Duplicates in the segment
523
541
  // array propagate to the client's matched[] and change the React tree depth.
@@ -37,6 +37,7 @@ import {
37
37
  } from "./helpers.js";
38
38
  import { getRouterContext } from "../router-context.js";
39
39
  import { resolveSink, safeEmit } from "../telemetry.js";
40
+ import { track } from "../../server/context.js";
40
41
 
41
42
  // ---------------------------------------------------------------------------
42
43
  // Telemetry helpers
@@ -621,20 +622,29 @@ export async function resolveEntryHandlerWithRevalidation<TEnv>(
621
622
  return shouldRevalidate;
622
623
  },
623
624
  async () => {
625
+ const doneHandler = track(`handler:${entry.id}`, 2);
624
626
  (context as InternalHandlerContext<any, TEnv>)._currentSegmentId =
625
627
  entry.shortCode;
626
628
  if (entry.type === "layout" || entry.type === "cache") {
627
- return resolveLayoutComponent(entry, context);
629
+ const layoutComponent = await resolveLayoutComponent(entry, context);
630
+ doneHandler();
631
+ return layoutComponent;
628
632
  }
629
633
  const staticComponent = await tryStaticHandler(entry, entry.shortCode);
630
- if (staticComponent !== undefined) return staticComponent;
634
+ if (staticComponent !== undefined) {
635
+ doneHandler();
636
+ return staticComponent;
637
+ }
631
638
  const routeEntry = entry as Extract<EntryData, { type: "route" }>;
632
639
  if (!routeEntry.loading) {
633
- return handleHandlerResult(await routeEntry.handler(context));
640
+ const result = handleHandlerResult(await routeEntry.handler(context));
641
+ doneHandler();
642
+ return result;
634
643
  }
635
644
  if (!actionContext) {
636
645
  const result = handleHandlerResult(routeEntry.handler(context));
637
646
  if (result instanceof Promise) {
647
+ result.finally(doneHandler).catch(() => {});
638
648
  const tracked = deps.trackHandler(result, {
639
649
  segmentId: entry.shortCode,
640
650
  segmentType: entry.type,
@@ -649,15 +659,18 @@ export async function resolveEntryHandlerWithRevalidation<TEnv>(
649
659
  );
650
660
  return { content: tracked };
651
661
  }
662
+ doneHandler();
652
663
  return { content: result };
653
664
  }
654
665
  debugLog("segment.action", "resolving action route with awaited value", {
655
666
  entryId: entry.id,
656
667
  });
668
+ const actionResult = handleHandlerResult(
669
+ await routeEntry.handler(context),
670
+ );
671
+ doneHandler();
657
672
  return {
658
- content: Promise.resolve(
659
- handleHandlerResult(await routeEntry.handler(context)),
660
- ),
673
+ content: Promise.resolve(actionResult),
661
674
  };
662
675
  },
663
676
  () => null,
@@ -1178,6 +1191,7 @@ export async function resolveAllSegmentsWithRevalidation<TEnv>(
1178
1191
  }
1179
1192
 
1180
1193
  const nonParallelEntry = entry as Exclude<EntryData, { type: "parallel" }>;
1194
+ const doneEntry = track(`segment:${entry.id}`, 1);
1181
1195
  const resolved = await resolveWithErrorBoundary(
1182
1196
  nonParallelEntry,
1183
1197
  params,
@@ -1204,6 +1218,7 @@ export async function resolveAllSegmentsWithRevalidation<TEnv>(
1204
1218
  : undefined,
1205
1219
  pathname,
1206
1220
  );
1221
+ doneEntry();
1207
1222
 
1208
1223
  // Deduplicate segments and matchedIds by ID, matching resolveAllSegments.
1209
1224
  // include() scopes can produce entries that resolve the same shared
package/src/router.ts CHANGED
@@ -357,8 +357,12 @@ export function createRouter<TEnv = any>(
357
357
  return precomputedByPrefix;
358
358
  }
359
359
 
360
- // Wrapper to pass debugPerformance to external createMetricsStore
361
- const getMetricsStore = () => createMetricsStore(debugPerformance);
360
+ // Wrapper to pass debugPerformance to external createMetricsStore.
361
+ // Also checks per-request flag set by ctx.debugPerformance() in middleware.
362
+ const getMetricsStore = () =>
363
+ createMetricsStore(
364
+ debugPerformance || !!_getRequestContext()?._debugPerformance,
365
+ );
362
366
 
363
367
  // Wrapper to pass defaults to error/notFound boundary finders
364
368
  const findNearestErrorBoundary = (entry: EntryData | null) =>
package/src/rsc/index.ts CHANGED
@@ -29,28 +29,8 @@ export type {
29
29
  NonceProvider,
30
30
  } from "./types.js";
31
31
 
32
- // Re-export HandleStore types for consumers who need custom handling
33
- export {
34
- createHandleStore,
35
- type HandleStore,
36
- type HandleData,
37
- } from "../server/handle-store.js";
38
-
39
32
  // Re-export request context utilities for server-side access to env/request/params
40
33
  export {
41
34
  getRequestContext,
42
35
  requireRequestContext,
43
- setRequestContextParams,
44
36
  } from "../server/request-context.js";
45
-
46
- // Re-export cache store types and implementations
47
- export type {
48
- SegmentCacheStore,
49
- CachedEntryData,
50
- CachedEntryResult,
51
- SegmentCacheProvider,
52
- SegmentHandleData,
53
- } from "../cache/types.js";
54
-
55
- export { MemorySegmentCacheStore } from "../cache/memory-segment-store.js";
56
- export { CFCacheStore, type CFCacheStoreOptions } from "../cache/cf/index.js";