@rangojs/router 0.0.0-experimental.65 → 0.0.0-experimental.655f3c16

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 (852) hide show
  1. package/dist/vite/index.js +253 -81
  2. package/package.json +3 -3
  3. package/skills/handler-use/SKILL.md +362 -0
  4. package/skills/intercept/SKILL.md +20 -0
  5. package/skills/layout/SKILL.md +22 -0
  6. package/skills/middleware/SKILL.md +32 -3
  7. package/skills/migrate-nextjs/SKILL.md +560 -0
  8. package/skills/migrate-react-router/SKILL.md +764 -0
  9. package/skills/parallel/SKILL.md +59 -0
  10. package/skills/rango/SKILL.md +24 -22
  11. package/skills/route/SKILL.md +24 -0
  12. package/src/browser/navigation-bridge.ts +7 -1
  13. package/src/browser/navigation-client.ts +34 -6
  14. package/src/browser/partial-update.ts +5 -0
  15. package/src/browser/prefetch/cache.ts +16 -6
  16. package/src/browser/prefetch/fetch.ts +60 -4
  17. package/src/browser/react/Link.tsx +25 -2
  18. package/src/browser/segment-reconciler.ts +81 -15
  19. package/src/build/route-trie.ts +50 -24
  20. package/src/client.tsx +3 -10
  21. package/src/index.ts +41 -9
  22. package/src/reverse.ts +4 -1
  23. package/src/route-definition/dsl-helpers.ts +159 -20
  24. package/src/route-definition/helpers-types.ts +57 -13
  25. package/src/router/handler-context.ts +4 -1
  26. package/src/router/loader-resolution.ts +70 -47
  27. package/src/router/match-middleware/cache-lookup.ts +10 -5
  28. package/src/router/match-middleware/segment-resolution.ts +1 -1
  29. package/src/router/match-result.ts +82 -4
  30. package/src/router/segment-resolution/fresh.ts +5 -0
  31. package/src/router/segment-resolution/revalidation.ts +7 -1
  32. package/src/rsc/handler.ts +13 -5
  33. package/src/rsc/loader-fetch.ts +23 -3
  34. package/src/rsc/progressive-enhancement.ts +10 -2
  35. package/src/rsc/rsc-rendering.ts +5 -1
  36. package/src/rsc/server-action.ts +6 -0
  37. package/src/rsc/types.ts +1 -0
  38. package/src/segment-content-promise.ts +38 -0
  39. package/src/segment-system.tsx +25 -11
  40. package/src/server/handle-store.ts +19 -0
  41. package/src/server/request-context.ts +30 -2
  42. package/src/types/segments.ts +4 -0
  43. package/src/urls/path-helper-types.ts +30 -4
  44. package/src/use-loader.tsx +4 -1
  45. package/src/vite/discovery/prerender-collection.ts +124 -83
  46. package/src/vite/plugins/expose-id-utils.ts +12 -0
  47. package/src/vite/plugins/expose-internal-ids.ts +213 -2
  48. package/src/vite/utils/prerender-utils.ts +20 -6
  49. package/dist/__internal.d.ts +0 -83
  50. package/dist/__internal.d.ts.map +0 -1
  51. package/dist/__internal.js +0 -19
  52. package/dist/__internal.js.map +0 -1
  53. package/dist/__mocks__/version.d.ts +0 -7
  54. package/dist/__mocks__/version.d.ts.map +0 -1
  55. package/dist/__mocks__/version.js +0 -7
  56. package/dist/__mocks__/version.js.map +0 -1
  57. package/dist/__tests__/client-href.test.d.ts +0 -2
  58. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  59. package/dist/__tests__/client-href.test.js +0 -74
  60. package/dist/__tests__/client-href.test.js.map +0 -1
  61. package/dist/__tests__/component-utils.test.d.ts +0 -2
  62. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  63. package/dist/__tests__/component-utils.test.js +0 -51
  64. package/dist/__tests__/component-utils.test.js.map +0 -1
  65. package/dist/__tests__/event-controller.test.d.ts +0 -2
  66. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  67. package/dist/__tests__/event-controller.test.js +0 -538
  68. package/dist/__tests__/event-controller.test.js.map +0 -1
  69. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  70. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  71. package/dist/__tests__/helpers/route-tree.js +0 -374
  72. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  73. package/dist/__tests__/match-result.test.d.ts +0 -2
  74. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  75. package/dist/__tests__/match-result.test.js +0 -154
  76. package/dist/__tests__/match-result.test.js.map +0 -1
  77. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  78. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  79. package/dist/__tests__/navigation-store.test.js +0 -440
  80. package/dist/__tests__/navigation-store.test.js.map +0 -1
  81. package/dist/__tests__/partial-update.test.d.ts +0 -2
  82. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  83. package/dist/__tests__/partial-update.test.js +0 -1009
  84. package/dist/__tests__/partial-update.test.js.map +0 -1
  85. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  86. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  87. package/dist/__tests__/reverse-types.test.js +0 -656
  88. package/dist/__tests__/reverse-types.test.js.map +0 -1
  89. package/dist/__tests__/route-definition.test.d.ts +0 -2
  90. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  91. package/dist/__tests__/route-definition.test.js +0 -55
  92. package/dist/__tests__/route-definition.test.js.map +0 -1
  93. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  94. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  95. package/dist/__tests__/router-helpers.test.js +0 -377
  96. package/dist/__tests__/router-helpers.test.js.map +0 -1
  97. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  98. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  99. package/dist/__tests__/router-integration-2.test.js +0 -426
  100. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  101. package/dist/__tests__/router-integration.test.d.ts +0 -2
  102. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  103. package/dist/__tests__/router-integration.test.js +0 -1051
  104. package/dist/__tests__/router-integration.test.js.map +0 -1
  105. package/dist/__tests__/search-params.test.d.ts +0 -5
  106. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  107. package/dist/__tests__/search-params.test.js +0 -306
  108. package/dist/__tests__/search-params.test.js.map +0 -1
  109. package/dist/__tests__/segment-system.test.d.ts +0 -2
  110. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  111. package/dist/__tests__/segment-system.test.js +0 -627
  112. package/dist/__tests__/segment-system.test.js.map +0 -1
  113. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  114. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  115. package/dist/__tests__/static-handler-types.test.js +0 -63
  116. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  117. package/dist/__tests__/urls.test.d.ts +0 -2
  118. package/dist/__tests__/urls.test.d.ts.map +0 -1
  119. package/dist/__tests__/urls.test.js +0 -421
  120. package/dist/__tests__/urls.test.js.map +0 -1
  121. package/dist/__tests__/use-mount.test.d.ts +0 -2
  122. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  123. package/dist/__tests__/use-mount.test.js +0 -35
  124. package/dist/__tests__/use-mount.test.js.map +0 -1
  125. package/dist/bin/rango.d.ts +0 -2
  126. package/dist/bin/rango.d.ts.map +0 -1
  127. package/dist/bin/rango.js.map +0 -1
  128. package/dist/browser/event-controller.d.ts +0 -191
  129. package/dist/browser/event-controller.d.ts.map +0 -1
  130. package/dist/browser/event-controller.js +0 -559
  131. package/dist/browser/event-controller.js.map +0 -1
  132. package/dist/browser/index.d.ts +0 -2
  133. package/dist/browser/index.d.ts.map +0 -1
  134. package/dist/browser/index.js +0 -14
  135. package/dist/browser/index.js.map +0 -1
  136. package/dist/browser/link-interceptor.d.ts +0 -38
  137. package/dist/browser/link-interceptor.d.ts.map +0 -1
  138. package/dist/browser/link-interceptor.js +0 -99
  139. package/dist/browser/link-interceptor.js.map +0 -1
  140. package/dist/browser/logging.d.ts +0 -10
  141. package/dist/browser/logging.d.ts.map +0 -1
  142. package/dist/browser/logging.js +0 -29
  143. package/dist/browser/logging.js.map +0 -1
  144. package/dist/browser/lru-cache.d.ts +0 -17
  145. package/dist/browser/lru-cache.d.ts.map +0 -1
  146. package/dist/browser/lru-cache.js +0 -50
  147. package/dist/browser/lru-cache.js.map +0 -1
  148. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  149. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  150. package/dist/browser/merge-segment-loaders.js +0 -102
  151. package/dist/browser/merge-segment-loaders.js.map +0 -1
  152. package/dist/browser/navigation-bridge.d.ts +0 -102
  153. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  154. package/dist/browser/navigation-bridge.js +0 -708
  155. package/dist/browser/navigation-bridge.js.map +0 -1
  156. package/dist/browser/navigation-client.d.ts +0 -25
  157. package/dist/browser/navigation-client.d.ts.map +0 -1
  158. package/dist/browser/navigation-client.js +0 -157
  159. package/dist/browser/navigation-client.js.map +0 -1
  160. package/dist/browser/navigation-store.d.ts +0 -101
  161. package/dist/browser/navigation-store.d.ts.map +0 -1
  162. package/dist/browser/navigation-store.js +0 -625
  163. package/dist/browser/navigation-store.js.map +0 -1
  164. package/dist/browser/partial-update.d.ts +0 -75
  165. package/dist/browser/partial-update.d.ts.map +0 -1
  166. package/dist/browser/partial-update.js +0 -426
  167. package/dist/browser/partial-update.js.map +0 -1
  168. package/dist/browser/react/Link.d.ts +0 -86
  169. package/dist/browser/react/Link.d.ts.map +0 -1
  170. package/dist/browser/react/Link.js +0 -128
  171. package/dist/browser/react/Link.js.map +0 -1
  172. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  173. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  174. package/dist/browser/react/NavigationProvider.js +0 -216
  175. package/dist/browser/react/NavigationProvider.js.map +0 -1
  176. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  177. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  178. package/dist/browser/react/ScrollRestoration.js +0 -57
  179. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  180. package/dist/browser/react/context.d.ts +0 -46
  181. package/dist/browser/react/context.d.ts.map +0 -1
  182. package/dist/browser/react/context.js +0 -10
  183. package/dist/browser/react/context.js.map +0 -1
  184. package/dist/browser/react/index.d.ts +0 -11
  185. package/dist/browser/react/index.d.ts.map +0 -1
  186. package/dist/browser/react/index.js +0 -22
  187. package/dist/browser/react/index.js.map +0 -1
  188. package/dist/browser/react/location-state-shared.d.ts +0 -63
  189. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  190. package/dist/browser/react/location-state-shared.js +0 -81
  191. package/dist/browser/react/location-state-shared.js.map +0 -1
  192. package/dist/browser/react/location-state.d.ts +0 -23
  193. package/dist/browser/react/location-state.d.ts.map +0 -1
  194. package/dist/browser/react/location-state.js +0 -29
  195. package/dist/browser/react/location-state.js.map +0 -1
  196. package/dist/browser/react/mount-context.d.ts +0 -24
  197. package/dist/browser/react/mount-context.d.ts.map +0 -1
  198. package/dist/browser/react/mount-context.js +0 -24
  199. package/dist/browser/react/mount-context.js.map +0 -1
  200. package/dist/browser/react/use-action.d.ts +0 -64
  201. package/dist/browser/react/use-action.d.ts.map +0 -1
  202. package/dist/browser/react/use-action.js +0 -134
  203. package/dist/browser/react/use-action.js.map +0 -1
  204. package/dist/browser/react/use-client-cache.d.ts +0 -41
  205. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  206. package/dist/browser/react/use-client-cache.js +0 -39
  207. package/dist/browser/react/use-client-cache.js.map +0 -1
  208. package/dist/browser/react/use-handle.d.ts +0 -31
  209. package/dist/browser/react/use-handle.d.ts.map +0 -1
  210. package/dist/browser/react/use-handle.js +0 -144
  211. package/dist/browser/react/use-handle.js.map +0 -1
  212. package/dist/browser/react/use-href.d.ts +0 -33
  213. package/dist/browser/react/use-href.d.ts.map +0 -1
  214. package/dist/browser/react/use-href.js +0 -39
  215. package/dist/browser/react/use-href.js.map +0 -1
  216. package/dist/browser/react/use-link-status.d.ts +0 -37
  217. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  218. package/dist/browser/react/use-link-status.js +0 -99
  219. package/dist/browser/react/use-link-status.js.map +0 -1
  220. package/dist/browser/react/use-mount.d.ts +0 -25
  221. package/dist/browser/react/use-mount.d.ts.map +0 -1
  222. package/dist/browser/react/use-mount.js +0 -30
  223. package/dist/browser/react/use-mount.js.map +0 -1
  224. package/dist/browser/react/use-navigation.d.ts +0 -27
  225. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  226. package/dist/browser/react/use-navigation.js +0 -87
  227. package/dist/browser/react/use-navigation.js.map +0 -1
  228. package/dist/browser/react/use-segments.d.ts +0 -38
  229. package/dist/browser/react/use-segments.d.ts.map +0 -1
  230. package/dist/browser/react/use-segments.js +0 -130
  231. package/dist/browser/react/use-segments.js.map +0 -1
  232. package/dist/browser/request-controller.d.ts +0 -26
  233. package/dist/browser/request-controller.d.ts.map +0 -1
  234. package/dist/browser/request-controller.js +0 -147
  235. package/dist/browser/request-controller.js.map +0 -1
  236. package/dist/browser/rsc-router.d.ts +0 -129
  237. package/dist/browser/rsc-router.d.ts.map +0 -1
  238. package/dist/browser/rsc-router.js +0 -195
  239. package/dist/browser/rsc-router.js.map +0 -1
  240. package/dist/browser/scroll-restoration.d.ts +0 -93
  241. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  242. package/dist/browser/scroll-restoration.js +0 -321
  243. package/dist/browser/scroll-restoration.js.map +0 -1
  244. package/dist/browser/segment-structure-assert.d.ts +0 -17
  245. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  246. package/dist/browser/segment-structure-assert.js +0 -59
  247. package/dist/browser/segment-structure-assert.js.map +0 -1
  248. package/dist/browser/server-action-bridge.d.ts +0 -26
  249. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  250. package/dist/browser/server-action-bridge.js +0 -668
  251. package/dist/browser/server-action-bridge.js.map +0 -1
  252. package/dist/browser/shallow.d.ts +0 -12
  253. package/dist/browser/shallow.d.ts.map +0 -1
  254. package/dist/browser/shallow.js +0 -34
  255. package/dist/browser/shallow.js.map +0 -1
  256. package/dist/browser/types.d.ts +0 -369
  257. package/dist/browser/types.d.ts.map +0 -1
  258. package/dist/browser/types.js +0 -2
  259. package/dist/browser/types.js.map +0 -1
  260. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  261. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  262. package/dist/build/__tests__/generate-cli.test.js +0 -237
  263. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  264. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  265. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  266. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  267. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  268. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  269. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  270. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  271. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  272. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  273. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  274. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  275. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  276. package/dist/build/generate-manifest.d.ts +0 -81
  277. package/dist/build/generate-manifest.d.ts.map +0 -1
  278. package/dist/build/generate-manifest.js +0 -276
  279. package/dist/build/generate-manifest.js.map +0 -1
  280. package/dist/build/generate-route-types.d.ts +0 -115
  281. package/dist/build/generate-route-types.d.ts.map +0 -1
  282. package/dist/build/generate-route-types.js +0 -740
  283. package/dist/build/generate-route-types.js.map +0 -1
  284. package/dist/build/index.d.ts +0 -21
  285. package/dist/build/index.d.ts.map +0 -1
  286. package/dist/build/index.js +0 -21
  287. package/dist/build/index.js.map +0 -1
  288. package/dist/build/route-trie.d.ts +0 -71
  289. package/dist/build/route-trie.d.ts.map +0 -1
  290. package/dist/build/route-trie.js +0 -175
  291. package/dist/build/route-trie.js.map +0 -1
  292. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  293. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  294. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  295. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  296. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  297. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  298. package/dist/cache/__tests__/document-cache.test.js +0 -345
  299. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  300. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  301. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  302. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  303. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  304. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  305. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  306. package/dist/cache/__tests__/memory-store.test.js +0 -367
  307. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  308. package/dist/cache/cache-scope.d.ts +0 -102
  309. package/dist/cache/cache-scope.d.ts.map +0 -1
  310. package/dist/cache/cache-scope.js +0 -440
  311. package/dist/cache/cache-scope.js.map +0 -1
  312. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  313. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  314. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  315. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  316. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  317. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  318. package/dist/cache/cf/cf-cache-store.js +0 -242
  319. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  320. package/dist/cache/cf/index.d.ts +0 -14
  321. package/dist/cache/cf/index.d.ts.map +0 -1
  322. package/dist/cache/cf/index.js +0 -17
  323. package/dist/cache/cf/index.js.map +0 -1
  324. package/dist/cache/document-cache.d.ts +0 -64
  325. package/dist/cache/document-cache.d.ts.map +0 -1
  326. package/dist/cache/document-cache.js +0 -228
  327. package/dist/cache/document-cache.js.map +0 -1
  328. package/dist/cache/index.d.ts +0 -19
  329. package/dist/cache/index.d.ts.map +0 -1
  330. package/dist/cache/index.js +0 -21
  331. package/dist/cache/index.js.map +0 -1
  332. package/dist/cache/memory-segment-store.d.ts +0 -110
  333. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  334. package/dist/cache/memory-segment-store.js +0 -117
  335. package/dist/cache/memory-segment-store.js.map +0 -1
  336. package/dist/cache/memory-store.d.ts +0 -41
  337. package/dist/cache/memory-store.d.ts.map +0 -1
  338. package/dist/cache/memory-store.js +0 -191
  339. package/dist/cache/memory-store.js.map +0 -1
  340. package/dist/cache/types.d.ts +0 -317
  341. package/dist/cache/types.d.ts.map +0 -1
  342. package/dist/cache/types.js +0 -12
  343. package/dist/cache/types.js.map +0 -1
  344. package/dist/client.d.ts +0 -248
  345. package/dist/client.d.ts.map +0 -1
  346. package/dist/client.js +0 -367
  347. package/dist/client.js.map +0 -1
  348. package/dist/client.rsc.d.ts +0 -26
  349. package/dist/client.rsc.d.ts.map +0 -1
  350. package/dist/client.rsc.js +0 -46
  351. package/dist/client.rsc.js.map +0 -1
  352. package/dist/component-utils.d.ts +0 -36
  353. package/dist/component-utils.d.ts.map +0 -1
  354. package/dist/component-utils.js +0 -61
  355. package/dist/component-utils.js.map +0 -1
  356. package/dist/components/DefaultDocument.d.ts +0 -13
  357. package/dist/components/DefaultDocument.d.ts.map +0 -1
  358. package/dist/components/DefaultDocument.js +0 -15
  359. package/dist/components/DefaultDocument.js.map +0 -1
  360. package/dist/debug.d.ts +0 -58
  361. package/dist/debug.d.ts.map +0 -1
  362. package/dist/debug.js +0 -157
  363. package/dist/debug.js.map +0 -1
  364. package/dist/default-error-boundary.d.ts +0 -11
  365. package/dist/default-error-boundary.d.ts.map +0 -1
  366. package/dist/default-error-boundary.js +0 -45
  367. package/dist/default-error-boundary.js.map +0 -1
  368. package/dist/deps/browser.d.ts +0 -2
  369. package/dist/deps/browser.d.ts.map +0 -1
  370. package/dist/deps/browser.js +0 -3
  371. package/dist/deps/browser.js.map +0 -1
  372. package/dist/deps/html-stream-client.d.ts +0 -2
  373. package/dist/deps/html-stream-client.d.ts.map +0 -1
  374. package/dist/deps/html-stream-client.js +0 -3
  375. package/dist/deps/html-stream-client.js.map +0 -1
  376. package/dist/deps/html-stream-server.d.ts +0 -2
  377. package/dist/deps/html-stream-server.d.ts.map +0 -1
  378. package/dist/deps/html-stream-server.js +0 -3
  379. package/dist/deps/html-stream-server.js.map +0 -1
  380. package/dist/deps/rsc.d.ts +0 -2
  381. package/dist/deps/rsc.d.ts.map +0 -1
  382. package/dist/deps/rsc.js +0 -4
  383. package/dist/deps/rsc.js.map +0 -1
  384. package/dist/deps/ssr.d.ts +0 -2
  385. package/dist/deps/ssr.d.ts.map +0 -1
  386. package/dist/deps/ssr.js +0 -3
  387. package/dist/deps/ssr.js.map +0 -1
  388. package/dist/errors.d.ts +0 -174
  389. package/dist/errors.d.ts.map +0 -1
  390. package/dist/errors.js +0 -241
  391. package/dist/errors.js.map +0 -1
  392. package/dist/handle.d.ts +0 -78
  393. package/dist/handle.d.ts.map +0 -1
  394. package/dist/handle.js +0 -82
  395. package/dist/handle.js.map +0 -1
  396. package/dist/handles/MetaTags.d.ts +0 -14
  397. package/dist/handles/MetaTags.d.ts.map +0 -1
  398. package/dist/handles/MetaTags.js +0 -136
  399. package/dist/handles/MetaTags.js.map +0 -1
  400. package/dist/handles/index.d.ts +0 -6
  401. package/dist/handles/index.d.ts.map +0 -1
  402. package/dist/handles/index.js +0 -6
  403. package/dist/handles/index.js.map +0 -1
  404. package/dist/handles/meta.d.ts +0 -39
  405. package/dist/handles/meta.d.ts.map +0 -1
  406. package/dist/handles/meta.js +0 -202
  407. package/dist/handles/meta.js.map +0 -1
  408. package/dist/host/__tests__/errors.test.d.ts +0 -2
  409. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  410. package/dist/host/__tests__/errors.test.js +0 -76
  411. package/dist/host/__tests__/errors.test.js.map +0 -1
  412. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  413. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  414. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  415. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  416. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  417. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  418. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  419. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  420. package/dist/host/__tests__/router.test.d.ts +0 -2
  421. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  422. package/dist/host/__tests__/router.test.js +0 -241
  423. package/dist/host/__tests__/router.test.js.map +0 -1
  424. package/dist/host/__tests__/testing.test.d.ts +0 -2
  425. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  426. package/dist/host/__tests__/testing.test.js +0 -64
  427. package/dist/host/__tests__/testing.test.js.map +0 -1
  428. package/dist/host/__tests__/utils.test.d.ts +0 -2
  429. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  430. package/dist/host/__tests__/utils.test.js +0 -29
  431. package/dist/host/__tests__/utils.test.js.map +0 -1
  432. package/dist/host/cookie-handler.d.ts +0 -34
  433. package/dist/host/cookie-handler.d.ts.map +0 -1
  434. package/dist/host/cookie-handler.js +0 -124
  435. package/dist/host/cookie-handler.js.map +0 -1
  436. package/dist/host/errors.d.ts +0 -56
  437. package/dist/host/errors.d.ts.map +0 -1
  438. package/dist/host/errors.js +0 -79
  439. package/dist/host/errors.js.map +0 -1
  440. package/dist/host/index.d.ts +0 -29
  441. package/dist/host/index.d.ts.map +0 -1
  442. package/dist/host/index.js +0 -32
  443. package/dist/host/index.js.map +0 -1
  444. package/dist/host/pattern-matcher.d.ts +0 -36
  445. package/dist/host/pattern-matcher.d.ts.map +0 -1
  446. package/dist/host/pattern-matcher.js +0 -172
  447. package/dist/host/pattern-matcher.js.map +0 -1
  448. package/dist/host/router.d.ts +0 -26
  449. package/dist/host/router.d.ts.map +0 -1
  450. package/dist/host/router.js +0 -218
  451. package/dist/host/router.js.map +0 -1
  452. package/dist/host/testing.d.ts +0 -36
  453. package/dist/host/testing.d.ts.map +0 -1
  454. package/dist/host/testing.js +0 -55
  455. package/dist/host/testing.js.map +0 -1
  456. package/dist/host/types.d.ts +0 -115
  457. package/dist/host/types.d.ts.map +0 -1
  458. package/dist/host/types.js +0 -7
  459. package/dist/host/types.js.map +0 -1
  460. package/dist/host/utils.d.ts +0 -21
  461. package/dist/host/utils.d.ts.map +0 -1
  462. package/dist/host/utils.js +0 -23
  463. package/dist/host/utils.js.map +0 -1
  464. package/dist/href-client.d.ts +0 -131
  465. package/dist/href-client.d.ts.map +0 -1
  466. package/dist/href-client.js +0 -64
  467. package/dist/href-client.js.map +0 -1
  468. package/dist/href-context.d.ts +0 -29
  469. package/dist/href-context.d.ts.map +0 -1
  470. package/dist/href-context.js +0 -21
  471. package/dist/href-context.js.map +0 -1
  472. package/dist/index.d.ts +0 -73
  473. package/dist/index.d.ts.map +0 -1
  474. package/dist/index.js +0 -91
  475. package/dist/index.js.map +0 -1
  476. package/dist/index.rsc.d.ts +0 -32
  477. package/dist/index.rsc.d.ts.map +0 -1
  478. package/dist/index.rsc.js +0 -40
  479. package/dist/index.rsc.js.map +0 -1
  480. package/dist/internal-debug.d.ts +0 -2
  481. package/dist/internal-debug.d.ts.map +0 -1
  482. package/dist/internal-debug.js +0 -5
  483. package/dist/internal-debug.js.map +0 -1
  484. package/dist/loader.d.ts +0 -14
  485. package/dist/loader.d.ts.map +0 -1
  486. package/dist/loader.js +0 -20
  487. package/dist/loader.js.map +0 -1
  488. package/dist/loader.rsc.d.ts +0 -19
  489. package/dist/loader.rsc.d.ts.map +0 -1
  490. package/dist/loader.rsc.js +0 -99
  491. package/dist/loader.rsc.js.map +0 -1
  492. package/dist/network-error-thrower.d.ts +0 -17
  493. package/dist/network-error-thrower.d.ts.map +0 -1
  494. package/dist/network-error-thrower.js +0 -14
  495. package/dist/network-error-thrower.js.map +0 -1
  496. package/dist/outlet-context.d.ts +0 -13
  497. package/dist/outlet-context.d.ts.map +0 -1
  498. package/dist/outlet-context.js +0 -3
  499. package/dist/outlet-context.js.map +0 -1
  500. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  501. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  502. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  503. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  504. package/dist/prerender/param-hash.d.ts +0 -16
  505. package/dist/prerender/param-hash.d.ts.map +0 -1
  506. package/dist/prerender/param-hash.js +0 -36
  507. package/dist/prerender/param-hash.js.map +0 -1
  508. package/dist/prerender/store.d.ts +0 -38
  509. package/dist/prerender/store.d.ts.map +0 -1
  510. package/dist/prerender/store.js +0 -61
  511. package/dist/prerender/store.js.map +0 -1
  512. package/dist/prerender.d.ts +0 -66
  513. package/dist/prerender.d.ts.map +0 -1
  514. package/dist/prerender.js +0 -57
  515. package/dist/prerender.js.map +0 -1
  516. package/dist/reverse.d.ts +0 -196
  517. package/dist/reverse.d.ts.map +0 -1
  518. package/dist/reverse.js +0 -78
  519. package/dist/reverse.js.map +0 -1
  520. package/dist/root-error-boundary.d.ts +0 -33
  521. package/dist/root-error-boundary.d.ts.map +0 -1
  522. package/dist/root-error-boundary.js +0 -165
  523. package/dist/root-error-boundary.js.map +0 -1
  524. package/dist/route-content-wrapper.d.ts +0 -46
  525. package/dist/route-content-wrapper.d.ts.map +0 -1
  526. package/dist/route-content-wrapper.js +0 -77
  527. package/dist/route-content-wrapper.js.map +0 -1
  528. package/dist/route-definition.d.ts +0 -421
  529. package/dist/route-definition.d.ts.map +0 -1
  530. package/dist/route-definition.js +0 -868
  531. package/dist/route-definition.js.map +0 -1
  532. package/dist/route-map-builder.d.ts +0 -155
  533. package/dist/route-map-builder.d.ts.map +0 -1
  534. package/dist/route-map-builder.js +0 -237
  535. package/dist/route-map-builder.js.map +0 -1
  536. package/dist/route-types.d.ts +0 -165
  537. package/dist/route-types.d.ts.map +0 -1
  538. package/dist/route-types.js +0 -7
  539. package/dist/route-types.js.map +0 -1
  540. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  541. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  542. package/dist/router/__tests__/handler-context.test.js +0 -65
  543. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  544. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  545. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  546. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  547. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  548. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  549. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  550. package/dist/router/__tests__/match-context.test.js +0 -92
  551. package/dist/router/__tests__/match-context.test.js.map +0 -1
  552. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  553. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  554. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  555. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  556. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  557. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  558. package/dist/router/__tests__/match-result.test.js +0 -457
  559. package/dist/router/__tests__/match-result.test.js.map +0 -1
  560. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  561. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  562. package/dist/router/__tests__/on-error.test.js +0 -678
  563. package/dist/router/__tests__/on-error.test.js.map +0 -1
  564. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  565. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  566. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  567. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  568. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  569. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  570. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  571. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  572. package/dist/router/error-handling.d.ts +0 -77
  573. package/dist/router/error-handling.d.ts.map +0 -1
  574. package/dist/router/error-handling.js +0 -202
  575. package/dist/router/error-handling.js.map +0 -1
  576. package/dist/router/handler-context.d.ts +0 -20
  577. package/dist/router/handler-context.d.ts.map +0 -1
  578. package/dist/router/handler-context.js +0 -198
  579. package/dist/router/handler-context.js.map +0 -1
  580. package/dist/router/intercept-resolution.d.ts +0 -66
  581. package/dist/router/intercept-resolution.d.ts.map +0 -1
  582. package/dist/router/intercept-resolution.js +0 -246
  583. package/dist/router/intercept-resolution.js.map +0 -1
  584. package/dist/router/loader-resolution.d.ts +0 -64
  585. package/dist/router/loader-resolution.d.ts.map +0 -1
  586. package/dist/router/loader-resolution.js +0 -284
  587. package/dist/router/loader-resolution.js.map +0 -1
  588. package/dist/router/logging.d.ts +0 -15
  589. package/dist/router/logging.d.ts.map +0 -1
  590. package/dist/router/logging.js +0 -99
  591. package/dist/router/logging.js.map +0 -1
  592. package/dist/router/manifest.d.ts +0 -22
  593. package/dist/router/manifest.d.ts.map +0 -1
  594. package/dist/router/manifest.js +0 -181
  595. package/dist/router/manifest.js.map +0 -1
  596. package/dist/router/match-api.d.ts +0 -35
  597. package/dist/router/match-api.d.ts.map +0 -1
  598. package/dist/router/match-api.js +0 -406
  599. package/dist/router/match-api.js.map +0 -1
  600. package/dist/router/match-context.d.ts +0 -206
  601. package/dist/router/match-context.d.ts.map +0 -1
  602. package/dist/router/match-context.js +0 -17
  603. package/dist/router/match-context.js.map +0 -1
  604. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  605. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  606. package/dist/router/match-middleware/background-revalidation.js +0 -75
  607. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  608. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  609. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  610. package/dist/router/match-middleware/cache-lookup.js +0 -257
  611. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  612. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  613. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  614. package/dist/router/match-middleware/cache-store.js +0 -108
  615. package/dist/router/match-middleware/cache-store.js.map +0 -1
  616. package/dist/router/match-middleware/index.d.ts +0 -81
  617. package/dist/router/match-middleware/index.d.ts.map +0 -1
  618. package/dist/router/match-middleware/index.js +0 -80
  619. package/dist/router/match-middleware/index.js.map +0 -1
  620. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  621. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  622. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  623. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  624. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  625. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  626. package/dist/router/match-middleware/segment-resolution.js +0 -53
  627. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  628. package/dist/router/match-pipelines.d.ts +0 -147
  629. package/dist/router/match-pipelines.d.ts.map +0 -1
  630. package/dist/router/match-pipelines.js +0 -82
  631. package/dist/router/match-pipelines.js.map +0 -1
  632. package/dist/router/match-result.d.ts +0 -126
  633. package/dist/router/match-result.d.ts.map +0 -1
  634. package/dist/router/match-result.js +0 -93
  635. package/dist/router/match-result.js.map +0 -1
  636. package/dist/router/metrics.d.ts +0 -20
  637. package/dist/router/metrics.d.ts.map +0 -1
  638. package/dist/router/metrics.js +0 -47
  639. package/dist/router/metrics.js.map +0 -1
  640. package/dist/router/middleware.d.ts +0 -249
  641. package/dist/router/middleware.d.ts.map +0 -1
  642. package/dist/router/middleware.js +0 -434
  643. package/dist/router/middleware.js.map +0 -1
  644. package/dist/router/middleware.test.d.ts +0 -2
  645. package/dist/router/middleware.test.d.ts.map +0 -1
  646. package/dist/router/middleware.test.js +0 -816
  647. package/dist/router/middleware.test.js.map +0 -1
  648. package/dist/router/pattern-matching.d.ts +0 -149
  649. package/dist/router/pattern-matching.d.ts.map +0 -1
  650. package/dist/router/pattern-matching.js +0 -349
  651. package/dist/router/pattern-matching.js.map +0 -1
  652. package/dist/router/revalidation.d.ts +0 -44
  653. package/dist/router/revalidation.d.ts.map +0 -1
  654. package/dist/router/revalidation.js +0 -147
  655. package/dist/router/revalidation.js.map +0 -1
  656. package/dist/router/router-context.d.ts +0 -135
  657. package/dist/router/router-context.d.ts.map +0 -1
  658. package/dist/router/router-context.js +0 -36
  659. package/dist/router/router-context.js.map +0 -1
  660. package/dist/router/segment-resolution.d.ts +0 -127
  661. package/dist/router/segment-resolution.d.ts.map +0 -1
  662. package/dist/router/segment-resolution.js +0 -919
  663. package/dist/router/segment-resolution.js.map +0 -1
  664. package/dist/router/trie-matching.d.ts +0 -40
  665. package/dist/router/trie-matching.d.ts.map +0 -1
  666. package/dist/router/trie-matching.js +0 -127
  667. package/dist/router/trie-matching.js.map +0 -1
  668. package/dist/router/types.d.ts +0 -136
  669. package/dist/router/types.d.ts.map +0 -1
  670. package/dist/router/types.js +0 -7
  671. package/dist/router/types.js.map +0 -1
  672. package/dist/router.d.ts +0 -753
  673. package/dist/router.d.ts.map +0 -1
  674. package/dist/router.gen.d.ts +0 -6
  675. package/dist/router.gen.d.ts.map +0 -1
  676. package/dist/router.gen.js +0 -6
  677. package/dist/router.gen.js.map +0 -1
  678. package/dist/router.js +0 -1304
  679. package/dist/router.js.map +0 -1
  680. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  681. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  682. package/dist/rsc/__tests__/helpers.test.js +0 -140
  683. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  684. package/dist/rsc/handler.d.ts +0 -45
  685. package/dist/rsc/handler.d.ts.map +0 -1
  686. package/dist/rsc/handler.js +0 -1172
  687. package/dist/rsc/handler.js.map +0 -1
  688. package/dist/rsc/helpers.d.ts +0 -16
  689. package/dist/rsc/helpers.d.ts.map +0 -1
  690. package/dist/rsc/helpers.js +0 -55
  691. package/dist/rsc/helpers.js.map +0 -1
  692. package/dist/rsc/index.d.ts +0 -22
  693. package/dist/rsc/index.d.ts.map +0 -1
  694. package/dist/rsc/index.js +0 -23
  695. package/dist/rsc/index.js.map +0 -1
  696. package/dist/rsc/nonce.d.ts +0 -9
  697. package/dist/rsc/nonce.d.ts.map +0 -1
  698. package/dist/rsc/nonce.js +0 -18
  699. package/dist/rsc/nonce.js.map +0 -1
  700. package/dist/rsc/types.d.ts +0 -206
  701. package/dist/rsc/types.d.ts.map +0 -1
  702. package/dist/rsc/types.js +0 -8
  703. package/dist/rsc/types.js.map +0 -1
  704. package/dist/search-params.d.ts +0 -103
  705. package/dist/search-params.d.ts.map +0 -1
  706. package/dist/search-params.js +0 -74
  707. package/dist/search-params.js.map +0 -1
  708. package/dist/segment-system.d.ts +0 -75
  709. package/dist/segment-system.d.ts.map +0 -1
  710. package/dist/segment-system.js +0 -336
  711. package/dist/segment-system.js.map +0 -1
  712. package/dist/server/context.d.ts +0 -245
  713. package/dist/server/context.d.ts.map +0 -1
  714. package/dist/server/context.js +0 -197
  715. package/dist/server/context.js.map +0 -1
  716. package/dist/server/fetchable-loader-store.d.ts +0 -18
  717. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  718. package/dist/server/fetchable-loader-store.js +0 -18
  719. package/dist/server/fetchable-loader-store.js.map +0 -1
  720. package/dist/server/handle-store.d.ts +0 -85
  721. package/dist/server/handle-store.d.ts.map +0 -1
  722. package/dist/server/handle-store.js +0 -142
  723. package/dist/server/handle-store.js.map +0 -1
  724. package/dist/server/loader-registry.d.ts +0 -55
  725. package/dist/server/loader-registry.d.ts.map +0 -1
  726. package/dist/server/loader-registry.js +0 -132
  727. package/dist/server/loader-registry.js.map +0 -1
  728. package/dist/server/request-context.d.ts +0 -226
  729. package/dist/server/request-context.d.ts.map +0 -1
  730. package/dist/server/request-context.js +0 -290
  731. package/dist/server/request-context.js.map +0 -1
  732. package/dist/server/root-layout.d.ts +0 -4
  733. package/dist/server/root-layout.d.ts.map +0 -1
  734. package/dist/server/root-layout.js +0 -5
  735. package/dist/server/root-layout.js.map +0 -1
  736. package/dist/server.d.ts +0 -15
  737. package/dist/server.d.ts.map +0 -1
  738. package/dist/server.js +0 -20
  739. package/dist/server.js.map +0 -1
  740. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  741. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  742. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  743. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  744. package/dist/ssr/index.d.ts +0 -98
  745. package/dist/ssr/index.d.ts.map +0 -1
  746. package/dist/ssr/index.js +0 -158
  747. package/dist/ssr/index.js.map +0 -1
  748. package/dist/static-handler.d.ts +0 -50
  749. package/dist/static-handler.d.ts.map +0 -1
  750. package/dist/static-handler.gen.d.ts +0 -5
  751. package/dist/static-handler.gen.d.ts.map +0 -1
  752. package/dist/static-handler.gen.js +0 -5
  753. package/dist/static-handler.gen.js.map +0 -1
  754. package/dist/static-handler.js +0 -29
  755. package/dist/static-handler.js.map +0 -1
  756. package/dist/theme/ThemeProvider.d.ts +0 -20
  757. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  758. package/dist/theme/ThemeProvider.js +0 -240
  759. package/dist/theme/ThemeProvider.js.map +0 -1
  760. package/dist/theme/ThemeScript.d.ts +0 -48
  761. package/dist/theme/ThemeScript.d.ts.map +0 -1
  762. package/dist/theme/ThemeScript.js +0 -13
  763. package/dist/theme/ThemeScript.js.map +0 -1
  764. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  765. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  766. package/dist/theme/__tests__/theme.test.js +0 -103
  767. package/dist/theme/__tests__/theme.test.js.map +0 -1
  768. package/dist/theme/constants.d.ts +0 -29
  769. package/dist/theme/constants.d.ts.map +0 -1
  770. package/dist/theme/constants.js +0 -48
  771. package/dist/theme/constants.js.map +0 -1
  772. package/dist/theme/index.d.ts +0 -31
  773. package/dist/theme/index.d.ts.map +0 -1
  774. package/dist/theme/index.js +0 -36
  775. package/dist/theme/index.js.map +0 -1
  776. package/dist/theme/theme-context.d.ts +0 -40
  777. package/dist/theme/theme-context.d.ts.map +0 -1
  778. package/dist/theme/theme-context.js +0 -60
  779. package/dist/theme/theme-context.js.map +0 -1
  780. package/dist/theme/theme-script.d.ts +0 -27
  781. package/dist/theme/theme-script.d.ts.map +0 -1
  782. package/dist/theme/theme-script.js +0 -147
  783. package/dist/theme/theme-script.js.map +0 -1
  784. package/dist/theme/types.d.ts +0 -163
  785. package/dist/theme/types.d.ts.map +0 -1
  786. package/dist/theme/types.js +0 -11
  787. package/dist/theme/types.js.map +0 -1
  788. package/dist/theme/use-theme.d.ts +0 -12
  789. package/dist/theme/use-theme.d.ts.map +0 -1
  790. package/dist/theme/use-theme.js +0 -40
  791. package/dist/theme/use-theme.js.map +0 -1
  792. package/dist/types.d.ts +0 -1479
  793. package/dist/types.d.ts.map +0 -1
  794. package/dist/types.js +0 -10
  795. package/dist/types.js.map +0 -1
  796. package/dist/urls.d.ts +0 -441
  797. package/dist/urls.d.ts.map +0 -1
  798. package/dist/urls.gen.d.ts +0 -8
  799. package/dist/urls.gen.d.ts.map +0 -1
  800. package/dist/urls.gen.js +0 -8
  801. package/dist/urls.gen.js.map +0 -1
  802. package/dist/urls.js +0 -443
  803. package/dist/urls.js.map +0 -1
  804. package/dist/use-loader.d.ts +0 -127
  805. package/dist/use-loader.d.ts.map +0 -1
  806. package/dist/use-loader.js +0 -237
  807. package/dist/use-loader.js.map +0 -1
  808. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  809. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  810. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  811. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  812. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  813. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  814. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  815. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  816. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  817. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  818. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  819. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  820. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  821. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  822. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  823. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  824. package/dist/vite/ast-handler-extract.d.ts +0 -49
  825. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  826. package/dist/vite/ast-handler-extract.js +0 -249
  827. package/dist/vite/ast-handler-extract.js.map +0 -1
  828. package/dist/vite/expose-action-id.d.ts +0 -19
  829. package/dist/vite/expose-action-id.d.ts.map +0 -1
  830. package/dist/vite/expose-action-id.js +0 -250
  831. package/dist/vite/expose-action-id.js.map +0 -1
  832. package/dist/vite/expose-id-utils.d.ts +0 -69
  833. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  834. package/dist/vite/expose-id-utils.js +0 -289
  835. package/dist/vite/expose-id-utils.js.map +0 -1
  836. package/dist/vite/expose-internal-ids.d.ts +0 -22
  837. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  838. package/dist/vite/expose-internal-ids.js +0 -886
  839. package/dist/vite/expose-internal-ids.js.map +0 -1
  840. package/dist/vite/index.d.ts +0 -149
  841. package/dist/vite/index.d.ts.map +0 -1
  842. package/dist/vite/index.js.bak +0 -5448
  843. package/dist/vite/index.js.map +0 -1
  844. package/dist/vite/index.named-routes.gen.ts +0 -103
  845. package/dist/vite/package-resolution.d.ts +0 -43
  846. package/dist/vite/package-resolution.d.ts.map +0 -1
  847. package/dist/vite/package-resolution.js +0 -112
  848. package/dist/vite/package-resolution.js.map +0 -1
  849. package/dist/vite/virtual-entries.d.ts +0 -25
  850. package/dist/vite/virtual-entries.d.ts.map +0 -1
  851. package/dist/vite/virtual-entries.js +0 -110
  852. package/dist/vite/virtual-entries.js.map +0 -1
@@ -1,118 +0,0 @@
1
- import type { urls } from "../../urls.js";
2
- import { type EntryData, type InterceptEntry, type LoaderEntry } from "../../server/context.js";
3
- import { type RouteMatchResult } from "../../router/pattern-matching.js";
4
- import type { RouteEntry } from "../../types.js";
5
- export type { EntryData, InterceptEntry, LoaderEntry };
6
- export interface SegmentInfo {
7
- id: string;
8
- type: EntryData["type"];
9
- pattern?: string;
10
- }
11
- export interface InterceptInfo {
12
- slotName: string;
13
- routeName: string;
14
- hasWhen: boolean;
15
- whenCount: number;
16
- hasLoader: boolean;
17
- hasMiddleware: boolean;
18
- }
19
- /**
20
- * Build a route tree from url patterns for inspection.
21
- *
22
- * Executes the urls() handler inside RSCRouterContext and extracts
23
- * the manifest, patterns, and route entries. Lazy includes are
24
- * eagerly evaluated so the full tree is available.
25
- *
26
- * @example
27
- * ```ts
28
- * const tree = buildRouteTree(
29
- * urls(({ path, layout }) => [
30
- * layout(RootLayout, () => [
31
- * path("/", HomePage, { name: "home" }),
32
- * path("/about", AboutPage, { name: "about" }),
33
- * ]),
34
- * ])
35
- * );
36
- *
37
- * // Inspect patterns
38
- * expect(tree.routes()).toEqual({ home: "/", about: "/about" });
39
- *
40
- * // Inspect segment IDs
41
- * expect(tree.segmentId("home")).toBe("M0L0L0R0");
42
- *
43
- * // Match a URL
44
- * const match = tree.match("/about");
45
- * expect(match?.routeKey).toBe("about");
46
- * ```
47
- */
48
- export declare function buildRouteTree(urlPatterns: ReturnType<typeof urls>, options?: {
49
- mountIndex?: number;
50
- }): RouteTree;
51
- /**
52
- * Wrapper around the raw manifest/patterns/entries providing
53
- * convenient inspection methods for route tree, segment IDs,
54
- * middleware, intercepts, loaders, and parallel slots.
55
- */
56
- export declare class RouteTree {
57
- readonly manifest: Map<string, EntryData>;
58
- readonly patterns: Map<string, string>;
59
- readonly routeEntries: RouteEntry[];
60
- constructor(manifest: Map<string, EntryData>, patterns: Map<string, string>, routeEntries: RouteEntry[]);
61
- /** Route name -> URL pattern map as a plain object */
62
- routes(): Record<string, string>;
63
- /** Get all route names */
64
- routeNames(): string[];
65
- /** Get the segment ID (shortCode) for a named route */
66
- segmentId(name: string): string | undefined;
67
- /** Get segment IDs for all named routes */
68
- segmentIds(): Record<string, string>;
69
- /**
70
- * Get the full segment path from root to a named route.
71
- * Returns an array of { id, type, pattern? } entries.
72
- */
73
- segmentPath(name: string): SegmentInfo[];
74
- /** Get the EntryData for a named route */
75
- entry(name: string): EntryData | undefined;
76
- /** Get the EntryData for a route matching a URL pattern string */
77
- entryByPattern(pattern: string): EntryData | undefined;
78
- /** Match a pathname and return the match result (routeKey, params) */
79
- match(pathname: string): RouteMatchResult | null;
80
- /** Get middleware functions attached to a named route/layout */
81
- middleware(name: string): Array<Function>;
82
- /** Check if a named route/layout has middleware */
83
- hasMiddleware(name: string): boolean;
84
- /**
85
- * Collect all middleware in the chain from root to a named route.
86
- * Returns them in execution order (root first).
87
- */
88
- middlewareChain(name: string): Array<{
89
- segmentId: string;
90
- count: number;
91
- }>;
92
- /** Get intercept entries for a named route/layout */
93
- intercepts(name: string): InterceptInfo[];
94
- /** Get raw InterceptEntry objects for a named route/layout */
95
- interceptEntries(name: string): InterceptEntry[];
96
- /** Get loader entries for a named route/layout */
97
- loaders(name: string): LoaderEntry[];
98
- /** Check if a named route/layout has loaders */
99
- hasLoaders(name: string): boolean;
100
- /** Get parallel slot entries (child EntryData with type="parallel") */
101
- parallelSlots(name: string): EntryData[];
102
- /** Get parallel slot names for a named route/layout */
103
- parallelSlotNames(name: string): string[];
104
- /** Check if a named route/layout has an error boundary */
105
- hasErrorBoundary(name: string): boolean;
106
- /** Check if a named route/layout has a not-found boundary */
107
- hasNotFoundBoundary(name: string): boolean;
108
- /** Check if a named route/layout has cache config */
109
- hasCache(name: string): boolean;
110
- /** Check if a named route/layout has a loading component */
111
- hasLoading(name: string): boolean;
112
- /**
113
- * Debug print the route tree.
114
- * Useful for exploring the structure in tests.
115
- */
116
- debug(): string;
117
- }
118
- //# sourceMappingURL=route-tree.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"route-tree.d.ts","sourceRoot":"","sources":["../../../src/__tests__/helpers/route-tree.ts"],"names":[],"mappings":"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"}
@@ -1,374 +0,0 @@
1
- /**
2
- * Route Tree Test Utilities
3
- *
4
- * Builds a route tree from urls() patterns and exposes the manifest,
5
- * patterns map, and route entries for inspection. Replicates the
6
- * pattern extraction logic from createRouter.routes() (router.ts)
7
- * without importing the full router (which depends on virtual modules).
8
- *
9
- * Not shipped with the npm package (lives in __tests__/).
10
- */
11
- import React from "react";
12
- import { RSCRouterContext, runWithPrefixes, } from "../../server/context.js";
13
- import { findMatch, isLazyEvaluationNeeded, } from "../../router/pattern-matching.js";
14
- // ============================================================================
15
- // buildRouteTree
16
- // ============================================================================
17
- /**
18
- * Build a route tree from url patterns for inspection.
19
- *
20
- * Executes the urls() handler inside RSCRouterContext and extracts
21
- * the manifest, patterns, and route entries. Lazy includes are
22
- * eagerly evaluated so the full tree is available.
23
- *
24
- * @example
25
- * ```ts
26
- * const tree = buildRouteTree(
27
- * urls(({ path, layout }) => [
28
- * layout(RootLayout, () => [
29
- * path("/", HomePage, { name: "home" }),
30
- * path("/about", AboutPage, { name: "about" }),
31
- * ]),
32
- * ])
33
- * );
34
- *
35
- * // Inspect patterns
36
- * expect(tree.routes()).toEqual({ home: "/", about: "/about" });
37
- *
38
- * // Inspect segment IDs
39
- * expect(tree.segmentId("home")).toBe("M0L0L0R0");
40
- *
41
- * // Match a URL
42
- * const match = tree.match("/about");
43
- * expect(match?.routeKey).toBe("about");
44
- * ```
45
- */
46
- export function buildRouteTree(urlPatterns, options) {
47
- const manifest = new Map();
48
- const patterns = new Map();
49
- const patternsByPrefix = new Map();
50
- const trailingSlashMap = new Map();
51
- const mountIndex = options?.mountIndex ?? 0;
52
- // Synthetic root layout to match createRouter behavior
53
- const syntheticMapRoot = {
54
- type: "layout",
55
- id: `#synthetic-maproot-M${mountIndex}`,
56
- shortCode: `M${mountIndex}L0`,
57
- parent: null,
58
- handler: React.createElement(React.Fragment),
59
- middleware: [],
60
- revalidate: [],
61
- errorBoundary: [],
62
- notFoundBoundary: [],
63
- layout: [],
64
- parallel: [],
65
- intercept: [],
66
- loader: [],
67
- };
68
- let handlerResult = [];
69
- RSCRouterContext.run({
70
- manifest,
71
- patterns,
72
- patternsByPrefix,
73
- trailingSlash: trailingSlashMap,
74
- namespace: "root",
75
- parent: syntheticMapRoot,
76
- counters: {},
77
- mountIndex,
78
- }, () => {
79
- handlerResult = urlPatterns.handler();
80
- });
81
- // Eagerly evaluate lazy includes
82
- const lazyIncludes = findLazyIncludes(handlerResult);
83
- for (const lazy of lazyIncludes) {
84
- const lazyManifest = new Map();
85
- const lazyPatterns = new Map();
86
- const lazyCounters = {};
87
- if (lazy.context.counters) {
88
- for (const [key, value] of Object.entries(lazy.context.counters)) {
89
- lazyCounters[key] = value;
90
- }
91
- }
92
- RSCRouterContext.run({
93
- manifest: lazyManifest,
94
- patterns: lazyPatterns,
95
- patternsByPrefix: new Map(),
96
- trailingSlash: trailingSlashMap,
97
- namespace: "lazy",
98
- parent: lazy.context.parent ?? null,
99
- counters: lazyCounters,
100
- mountIndex,
101
- }, () => {
102
- const fullPrefix = (lazy.context.urlPrefix || "") + lazy.prefix;
103
- if (fullPrefix || lazy.context.namePrefix) {
104
- runWithPrefixes(fullPrefix, lazy.context.namePrefix, () => {
105
- lazy.patterns.handler();
106
- });
107
- }
108
- else {
109
- lazy.patterns.handler();
110
- }
111
- });
112
- for (const [k, v] of lazyManifest)
113
- manifest.set(k, v);
114
- for (const [k, v] of lazyPatterns)
115
- patterns.set(k, v);
116
- }
117
- // Build route entries for findMatch
118
- const routesObject = {};
119
- for (const [name, pattern] of patterns.entries()) {
120
- routesObject[name] = pattern;
121
- }
122
- const routeEntries = [
123
- {
124
- prefix: "",
125
- staticPrefix: "",
126
- routes: routesObject,
127
- handler: urlPatterns.handler,
128
- mountIndex,
129
- },
130
- ];
131
- return new RouteTree(manifest, patterns, routeEntries);
132
- }
133
- // ============================================================================
134
- // RouteTree
135
- // ============================================================================
136
- /**
137
- * Wrapper around the raw manifest/patterns/entries providing
138
- * convenient inspection methods for route tree, segment IDs,
139
- * middleware, intercepts, loaders, and parallel slots.
140
- */
141
- export class RouteTree {
142
- constructor(manifest, patterns, routeEntries) {
143
- this.manifest = manifest;
144
- this.patterns = patterns;
145
- this.routeEntries = routeEntries;
146
- }
147
- // --- Route patterns ---
148
- /** Route name -> URL pattern map as a plain object */
149
- routes() {
150
- return Object.fromEntries(this.patterns);
151
- }
152
- /** Get all route names */
153
- routeNames() {
154
- return [...this.patterns.keys()];
155
- }
156
- // --- Segment IDs ---
157
- /** Get the segment ID (shortCode) for a named route */
158
- segmentId(name) {
159
- return this.entry(name)?.shortCode;
160
- }
161
- /** Get segment IDs for all named routes */
162
- segmentIds() {
163
- const result = {};
164
- for (const name of this.patterns.keys()) {
165
- const id = this.segmentId(name);
166
- if (id)
167
- result[name] = id;
168
- }
169
- return result;
170
- }
171
- /**
172
- * Get the full segment path from root to a named route.
173
- * Returns an array of { id, type, pattern? } entries.
174
- */
175
- segmentPath(name) {
176
- const entry = this.entry(name);
177
- if (!entry)
178
- return [];
179
- const path = [];
180
- let current = entry;
181
- while (current) {
182
- path.unshift({
183
- id: current.shortCode,
184
- type: current.type,
185
- pattern: current.type === "route" ? current.pattern : undefined,
186
- });
187
- current = current.parent;
188
- }
189
- return path;
190
- }
191
- // --- Entry access ---
192
- /** Get the EntryData for a named route */
193
- entry(name) {
194
- const direct = this.manifest.get(name);
195
- if (direct)
196
- return direct;
197
- for (const [key, entry] of this.manifest) {
198
- if (key.endsWith(`.${name}`))
199
- return entry;
200
- }
201
- return undefined;
202
- }
203
- /** Get the EntryData for a route matching a URL pattern string */
204
- entryByPattern(pattern) {
205
- for (const entry of this.manifest.values()) {
206
- if (entry.type === "route" && entry.pattern === pattern) {
207
- return entry;
208
- }
209
- }
210
- return undefined;
211
- }
212
- // --- URL matching ---
213
- /** Match a pathname and return the match result (routeKey, params) */
214
- match(pathname) {
215
- const result = findMatch(pathname, this.routeEntries);
216
- if (!result || isLazyEvaluationNeeded(result))
217
- return null;
218
- return result;
219
- }
220
- // --- Middleware ---
221
- /** Get middleware functions attached to a named route/layout */
222
- middleware(name) {
223
- const entry = this.entry(name);
224
- return entry?.middleware ?? [];
225
- }
226
- /** Check if a named route/layout has middleware */
227
- hasMiddleware(name) {
228
- return this.middleware(name).length > 0;
229
- }
230
- /**
231
- * Collect all middleware in the chain from root to a named route.
232
- * Returns them in execution order (root first).
233
- */
234
- middlewareChain(name) {
235
- const entry = this.entry(name);
236
- if (!entry)
237
- return [];
238
- const chain = [];
239
- let current = entry;
240
- const stack = [];
241
- while (current) {
242
- stack.unshift(current);
243
- current = current.parent;
244
- }
245
- for (const e of stack) {
246
- if (e.middleware.length > 0) {
247
- chain.push({ segmentId: e.shortCode, count: e.middleware.length });
248
- }
249
- }
250
- return chain;
251
- }
252
- // --- Intercepts ---
253
- /** Get intercept entries for a named route/layout */
254
- intercepts(name) {
255
- const entry = this.entry(name);
256
- if (!entry)
257
- return [];
258
- return entry.intercept.map((i) => ({
259
- slotName: i.slotName,
260
- routeName: i.routeName,
261
- hasWhen: i.when.length > 0,
262
- whenCount: i.when.length,
263
- hasLoader: i.loader.length > 0,
264
- hasMiddleware: i.middleware.length > 0,
265
- }));
266
- }
267
- /** Get raw InterceptEntry objects for a named route/layout */
268
- interceptEntries(name) {
269
- return this.entry(name)?.intercept ?? [];
270
- }
271
- // --- Loaders ---
272
- /** Get loader entries for a named route/layout */
273
- loaders(name) {
274
- return this.entry(name)?.loader ?? [];
275
- }
276
- /** Check if a named route/layout has loaders */
277
- hasLoaders(name) {
278
- return this.loaders(name).length > 0;
279
- }
280
- // --- Parallel slots ---
281
- /** Get parallel slot entries (child EntryData with type="parallel") */
282
- parallelSlots(name) {
283
- return this.entry(name)?.parallel ?? [];
284
- }
285
- /** Get parallel slot names for a named route/layout */
286
- parallelSlotNames(name) {
287
- const entry = this.entry(name);
288
- if (!entry)
289
- return [];
290
- // Parallel entry handler is Record<`@${string}`, Handler>
291
- return entry.parallel.map((p) => {
292
- if (p.type === "parallel" && typeof p.handler === "object" && p.handler !== null) {
293
- return Object.keys(p.handler);
294
- }
295
- return [];
296
- }).flat();
297
- }
298
- // --- Error/NotFound boundaries ---
299
- /** Check if a named route/layout has an error boundary */
300
- hasErrorBoundary(name) {
301
- return (this.entry(name)?.errorBoundary?.length ?? 0) > 0;
302
- }
303
- /** Check if a named route/layout has a not-found boundary */
304
- hasNotFoundBoundary(name) {
305
- return (this.entry(name)?.notFoundBoundary?.length ?? 0) > 0;
306
- }
307
- // --- Cache ---
308
- /** Check if a named route/layout has cache config */
309
- hasCache(name) {
310
- return this.entry(name)?.cache !== undefined;
311
- }
312
- // --- Loading ---
313
- /** Check if a named route/layout has a loading component */
314
- hasLoading(name) {
315
- const entry = this.entry(name);
316
- if (!entry)
317
- return false;
318
- return "loading" in entry && entry.loading !== undefined;
319
- }
320
- // --- Debug ---
321
- /**
322
- * Debug print the route tree.
323
- * Useful for exploring the structure in tests.
324
- */
325
- debug() {
326
- const lines = ["Route Tree:"];
327
- for (const [name, pattern] of this.patterns) {
328
- const entry = this.entry(name);
329
- const segPath = this.segmentPath(name);
330
- const ids = segPath.map((s) => s.id).join(" > ");
331
- const extras = [];
332
- if (entry && entry.middleware.length > 0)
333
- extras.push(`mw:${entry.middleware.length}`);
334
- if (entry && entry.loader.length > 0)
335
- extras.push(`ld:${entry.loader.length}`);
336
- if (entry && entry.intercept.length > 0)
337
- extras.push(`int:${entry.intercept.length}`);
338
- if (entry && entry.parallel.length > 0)
339
- extras.push(`par:${entry.parallel.length}`);
340
- if (entry?.errorBoundary?.length)
341
- extras.push("err");
342
- if (entry?.cache)
343
- extras.push("cache");
344
- const suffix = extras.length > 0 ? ` {${extras.join(", ")}}` : "";
345
- lines.push(` ${name}: ${pattern} [${entry?.shortCode}] (${ids})${suffix}`);
346
- }
347
- return lines.join("\n");
348
- }
349
- }
350
- // ============================================================================
351
- // Internal helpers
352
- // ============================================================================
353
- function findLazyIncludes(items) {
354
- const result = [];
355
- for (const item of items) {
356
- if (!item)
357
- continue;
358
- if (item.type === "include") {
359
- const includeItem = item;
360
- if (includeItem.lazy === true && includeItem._lazyContext) {
361
- result.push({
362
- prefix: includeItem.prefix,
363
- patterns: includeItem.patterns,
364
- context: includeItem._lazyContext,
365
- });
366
- }
367
- }
368
- if (item.uses && Array.isArray(item.uses)) {
369
- result.push(...findLazyIncludes(item.uses));
370
- }
371
- }
372
- return result;
373
- }
374
- //# sourceMappingURL=route-tree.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"route-tree.js","sourceRoot":"","sources":["../../../src/__tests__/helpers/route-tree.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=match-result.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"match-result.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/match-result.test.ts"],"names":[],"mappings":""}
@@ -1,154 +0,0 @@
1
- import { describe, it, expect, vi } from "vitest";
2
- import { buildMatchResult } from "../router/match-result.js";
3
- // Mock metrics and logging (not relevant to these tests)
4
- vi.mock("../router/metrics.js", () => ({
5
- generateServerTiming: vi.fn(),
6
- logMetrics: vi.fn(),
7
- }));
8
- vi.mock("../router/logging.js", () => ({
9
- debugLog: vi.fn(),
10
- }));
11
- // ---------------------------------------------------------------------------
12
- // Helpers
13
- // ---------------------------------------------------------------------------
14
- function seg(id, overrides) {
15
- return {
16
- id,
17
- namespace: "",
18
- index: 0,
19
- type: "layout",
20
- component: `component-${id}`,
21
- ...overrides,
22
- };
23
- }
24
- function makeCtx(overrides) {
25
- return {
26
- isFullMatch: true,
27
- matched: { params: {} },
28
- routeKey: "test",
29
- request: { method: "GET" },
30
- pathname: "/test",
31
- clientSegmentIds: [],
32
- interceptResult: null,
33
- routeMiddleware: [],
34
- ...overrides,
35
- };
36
- }
37
- function makeState(overrides) {
38
- return {
39
- cacheHit: false,
40
- segments: [],
41
- matchedIds: [],
42
- interceptSegments: [],
43
- slots: {},
44
- ...overrides,
45
- };
46
- }
47
- // ---------------------------------------------------------------------------
48
- // Tests
49
- // ---------------------------------------------------------------------------
50
- describe("buildMatchResult", () => {
51
- describe("unique segment ID invariant", () => {
52
- it("produces unique matched IDs for full match with unique segments", () => {
53
- const segments = [
54
- seg("M0L0"),
55
- seg("M0L0C0"),
56
- seg("M0L0C0L0"),
57
- seg("M0L0C0L0R0", { type: "route" }),
58
- ];
59
- const result = buildMatchResult(segments, makeCtx(), makeState());
60
- expect(result.matched).toEqual([
61
- "M0L0", "M0L0C0", "M0L0C0L0", "M0L0C0L0R0",
62
- ]);
63
- expect(new Set(result.matched).size).toBe(result.matched.length);
64
- });
65
- it("deduplicates segment IDs when allSegments contains duplicates from include() scopes", () => {
66
- // Simulates the bug: include() scopes produce entries that resolve the
67
- // same shared layout segment. Without dedup, the client receives duplicate
68
- // IDs in matched[], changing the React tree depth and causing remounts.
69
- const segments = [
70
- seg("M0L0"),
71
- seg("M0L0C0"), // shared layout (first occurrence)
72
- seg("M0L0C0L0"),
73
- seg("M0L0C0"), // shared layout (DUPLICATE from second include scope)
74
- seg("M0L0C0L0R0", { type: "route" }),
75
- ];
76
- const result = buildMatchResult(segments, makeCtx(), makeState());
77
- // matched must have unique IDs - no duplicates
78
- expect(new Set(result.matched).size).toBe(result.matched.length);
79
- expect(result.matched).toEqual([
80
- "M0L0", "M0L0C0", "M0L0C0L0", "M0L0C0L0R0",
81
- ]);
82
- });
83
- it("deduplicates segments array (not just IDs) for full match", () => {
84
- const segments = [
85
- seg("M0L0"),
86
- seg("M0L0C0"),
87
- seg("M0L0"), // duplicate
88
- seg("M0L0C0L0R0", { type: "route" }),
89
- ];
90
- const result = buildMatchResult(segments, makeCtx(), makeState());
91
- // segments should also be deduped (keeping first occurrence)
92
- expect(result.segments.length).toBe(3);
93
- expect(result.segments.map((s) => s.id)).toEqual([
94
- "M0L0", "M0L0C0", "M0L0C0L0R0",
95
- ]);
96
- });
97
- it("deduplicates matched IDs for partial match", () => {
98
- const segments = [
99
- seg("M0L0"),
100
- seg("M0L0C0", { component: null }), // null = client already has it
101
- seg("M0L0C0L0", { component: null }), // null = client already has it
102
- seg("M0L0C0L0R0", { type: "route" }), // has component
103
- ];
104
- const state = makeState({
105
- // matchedIds with duplicates (simulating unfixed resolveAllSegmentsWithRevalidation)
106
- matchedIds: ["M0L0", "M0L0C0", "M0L0C0L0", "M0L0", "M0L0C0L0R0"],
107
- });
108
- const result = buildMatchResult(segments, makeCtx({ isFullMatch: false }), state);
109
- // matched must have unique IDs
110
- expect(new Set(result.matched).size).toBe(result.matched.length);
111
- expect(result.matched).toEqual([
112
- "M0L0", "M0L0C0", "M0L0C0L0", "M0L0C0L0R0",
113
- ]);
114
- });
115
- it("preserves order while deduplicating (first occurrence wins)", () => {
116
- const segments = [
117
- seg("A"),
118
- seg("B"),
119
- seg("C"),
120
- seg("A"), // duplicate of first
121
- seg("B"), // duplicate of second
122
- seg("D", { type: "route" }),
123
- ];
124
- const result = buildMatchResult(segments, makeCtx(), makeState());
125
- expect(result.matched).toEqual(["A", "B", "C", "D"]);
126
- });
127
- });
128
- describe("diff array", () => {
129
- it("diff matches segments for full match (unique)", () => {
130
- const segments = [
131
- seg("L0"),
132
- seg("L0R0", { type: "route" }),
133
- ];
134
- const result = buildMatchResult(segments, makeCtx(), makeState());
135
- expect(result.diff).toEqual(["L0", "L0R0"]);
136
- expect(new Set(result.diff).size).toBe(result.diff.length);
137
- });
138
- it("diff only includes segments with component for partial match", () => {
139
- const segments = [
140
- seg("L0"), // has component
141
- seg("L0C0", { component: null }), // null = skip
142
- seg("L0C0R0", { type: "route" }), // has component
143
- seg("L0D0", { type: "loader", component: null }), // loader = keep even if null
144
- ];
145
- const state = makeState({
146
- matchedIds: ["L0", "L0C0", "L0C0R0", "L0D0"],
147
- });
148
- const result = buildMatchResult(segments, makeCtx({ isFullMatch: false }), state);
149
- // diff = filtered segments (component !== null OR type === "loader")
150
- expect(result.diff).toEqual(["L0", "L0C0R0", "L0D0"]);
151
- });
152
- });
153
- });
154
- //# sourceMappingURL=match-result.test.js.map