@rangojs/router 0.0.0-experimental.78a48627 → 0.0.0-experimental.7dc955ec

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (866) hide show
  1. package/dist/bin/rango.js +8 -3
  2. package/dist/vite/index.js +155 -201
  3. package/package.json +1 -1
  4. package/skills/cache-guide/SKILL.md +32 -0
  5. package/skills/caching/SKILL.md +45 -4
  6. package/skills/parallel/SKILL.md +126 -0
  7. package/skills/route/SKILL.md +31 -0
  8. package/skills/typesafety/SKILL.md +10 -0
  9. package/src/browser/event-controller.ts +5 -0
  10. package/src/browser/navigation-client.ts +60 -27
  11. package/src/browser/partial-update.ts +23 -16
  12. package/src/browser/prefetch/cache.ts +57 -5
  13. package/src/browser/prefetch/fetch.ts +30 -21
  14. package/src/browser/prefetch/queue.ts +53 -13
  15. package/src/browser/react/Link.tsx +9 -1
  16. package/src/browser/react/NavigationProvider.tsx +3 -3
  17. package/src/browser/rsc-router.tsx +109 -57
  18. package/src/browser/scroll-restoration.ts +11 -10
  19. package/src/browser/segment-reconciler.ts +6 -1
  20. package/src/build/route-types/router-processing.ts +12 -2
  21. package/src/cache/cache-runtime.ts +15 -11
  22. package/src/cache/cache-scope.ts +48 -7
  23. package/src/cache/cf/cf-cache-store.ts +453 -11
  24. package/src/cache/cf/index.ts +5 -1
  25. package/src/cache/document-cache.ts +17 -7
  26. package/src/cache/index.ts +1 -0
  27. package/src/cache/taint.ts +55 -0
  28. package/src/context-var.ts +72 -2
  29. package/src/debug.ts +2 -2
  30. package/src/route-definition/dsl-helpers.ts +32 -7
  31. package/src/route-definition/redirect.ts +2 -2
  32. package/src/router/handler-context.ts +31 -8
  33. package/src/router/lazy-includes.ts +2 -1
  34. package/src/router/logging.ts +1 -1
  35. package/src/router/manifest.ts +6 -2
  36. package/src/router/match-middleware/background-revalidation.ts +30 -2
  37. package/src/router/match-middleware/cache-lookup.ts +66 -9
  38. package/src/router/match-middleware/cache-store.ts +53 -10
  39. package/src/router/match-middleware/intercept-resolution.ts +9 -7
  40. package/src/router/match-middleware/segment-resolution.ts +7 -5
  41. package/src/router/match-result.ts +22 -6
  42. package/src/router/metrics.ts +6 -1
  43. package/src/router/middleware-types.ts +6 -2
  44. package/src/router/middleware.ts +4 -3
  45. package/src/router/router-context.ts +1 -0
  46. package/src/router/segment-resolution/fresh.ts +141 -17
  47. package/src/router/segment-resolution/loader-cache.ts +1 -0
  48. package/src/router/segment-resolution/revalidation.ts +357 -289
  49. package/src/router.ts +1 -1
  50. package/src/segment-system.tsx +140 -4
  51. package/src/server/context.ts +102 -13
  52. package/src/server/request-context.ts +54 -13
  53. package/src/ssr/index.tsx +1 -0
  54. package/src/types/handler-context.ts +113 -19
  55. package/src/types/segments.ts +2 -0
  56. package/src/urls/path-helper.ts +1 -1
  57. package/src/vite/discovery/state.ts +0 -2
  58. package/src/vite/plugin-types.ts +0 -83
  59. package/src/vite/plugins/expose-action-id.ts +1 -3
  60. package/src/vite/plugins/version-plugin.ts +13 -1
  61. package/src/vite/rango.ts +144 -209
  62. package/src/vite/router-discovery.ts +0 -8
  63. package/src/vite/utils/banner.ts +3 -3
  64. package/dist/__internal.d.ts +0 -83
  65. package/dist/__internal.d.ts.map +0 -1
  66. package/dist/__internal.js +0 -19
  67. package/dist/__internal.js.map +0 -1
  68. package/dist/__mocks__/version.d.ts +0 -7
  69. package/dist/__mocks__/version.d.ts.map +0 -1
  70. package/dist/__mocks__/version.js +0 -7
  71. package/dist/__mocks__/version.js.map +0 -1
  72. package/dist/__tests__/client-href.test.d.ts +0 -2
  73. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  74. package/dist/__tests__/client-href.test.js +0 -74
  75. package/dist/__tests__/client-href.test.js.map +0 -1
  76. package/dist/__tests__/component-utils.test.d.ts +0 -2
  77. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  78. package/dist/__tests__/component-utils.test.js +0 -51
  79. package/dist/__tests__/component-utils.test.js.map +0 -1
  80. package/dist/__tests__/event-controller.test.d.ts +0 -2
  81. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  82. package/dist/__tests__/event-controller.test.js +0 -538
  83. package/dist/__tests__/event-controller.test.js.map +0 -1
  84. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  85. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  86. package/dist/__tests__/helpers/route-tree.js +0 -374
  87. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  88. package/dist/__tests__/match-result.test.d.ts +0 -2
  89. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  90. package/dist/__tests__/match-result.test.js +0 -154
  91. package/dist/__tests__/match-result.test.js.map +0 -1
  92. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  93. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  94. package/dist/__tests__/navigation-store.test.js +0 -440
  95. package/dist/__tests__/navigation-store.test.js.map +0 -1
  96. package/dist/__tests__/partial-update.test.d.ts +0 -2
  97. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  98. package/dist/__tests__/partial-update.test.js +0 -1009
  99. package/dist/__tests__/partial-update.test.js.map +0 -1
  100. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  101. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  102. package/dist/__tests__/reverse-types.test.js +0 -656
  103. package/dist/__tests__/reverse-types.test.js.map +0 -1
  104. package/dist/__tests__/route-definition.test.d.ts +0 -2
  105. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  106. package/dist/__tests__/route-definition.test.js +0 -55
  107. package/dist/__tests__/route-definition.test.js.map +0 -1
  108. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  109. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  110. package/dist/__tests__/router-helpers.test.js +0 -377
  111. package/dist/__tests__/router-helpers.test.js.map +0 -1
  112. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  113. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  114. package/dist/__tests__/router-integration-2.test.js +0 -426
  115. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  116. package/dist/__tests__/router-integration.test.d.ts +0 -2
  117. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  118. package/dist/__tests__/router-integration.test.js +0 -1051
  119. package/dist/__tests__/router-integration.test.js.map +0 -1
  120. package/dist/__tests__/search-params.test.d.ts +0 -5
  121. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  122. package/dist/__tests__/search-params.test.js +0 -306
  123. package/dist/__tests__/search-params.test.js.map +0 -1
  124. package/dist/__tests__/segment-system.test.d.ts +0 -2
  125. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  126. package/dist/__tests__/segment-system.test.js +0 -627
  127. package/dist/__tests__/segment-system.test.js.map +0 -1
  128. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  129. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  130. package/dist/__tests__/static-handler-types.test.js +0 -63
  131. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  132. package/dist/__tests__/urls.test.d.ts +0 -2
  133. package/dist/__tests__/urls.test.d.ts.map +0 -1
  134. package/dist/__tests__/urls.test.js +0 -421
  135. package/dist/__tests__/urls.test.js.map +0 -1
  136. package/dist/__tests__/use-mount.test.d.ts +0 -2
  137. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  138. package/dist/__tests__/use-mount.test.js +0 -35
  139. package/dist/__tests__/use-mount.test.js.map +0 -1
  140. package/dist/bin/rango.d.ts +0 -2
  141. package/dist/bin/rango.d.ts.map +0 -1
  142. package/dist/bin/rango.js.map +0 -1
  143. package/dist/browser/event-controller.d.ts +0 -191
  144. package/dist/browser/event-controller.d.ts.map +0 -1
  145. package/dist/browser/event-controller.js +0 -559
  146. package/dist/browser/event-controller.js.map +0 -1
  147. package/dist/browser/index.d.ts +0 -2
  148. package/dist/browser/index.d.ts.map +0 -1
  149. package/dist/browser/index.js +0 -14
  150. package/dist/browser/index.js.map +0 -1
  151. package/dist/browser/link-interceptor.d.ts +0 -38
  152. package/dist/browser/link-interceptor.d.ts.map +0 -1
  153. package/dist/browser/link-interceptor.js +0 -99
  154. package/dist/browser/link-interceptor.js.map +0 -1
  155. package/dist/browser/logging.d.ts +0 -10
  156. package/dist/browser/logging.d.ts.map +0 -1
  157. package/dist/browser/logging.js +0 -29
  158. package/dist/browser/logging.js.map +0 -1
  159. package/dist/browser/lru-cache.d.ts +0 -17
  160. package/dist/browser/lru-cache.d.ts.map +0 -1
  161. package/dist/browser/lru-cache.js +0 -50
  162. package/dist/browser/lru-cache.js.map +0 -1
  163. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  164. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  165. package/dist/browser/merge-segment-loaders.js +0 -102
  166. package/dist/browser/merge-segment-loaders.js.map +0 -1
  167. package/dist/browser/navigation-bridge.d.ts +0 -102
  168. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  169. package/dist/browser/navigation-bridge.js +0 -708
  170. package/dist/browser/navigation-bridge.js.map +0 -1
  171. package/dist/browser/navigation-client.d.ts +0 -25
  172. package/dist/browser/navigation-client.d.ts.map +0 -1
  173. package/dist/browser/navigation-client.js +0 -157
  174. package/dist/browser/navigation-client.js.map +0 -1
  175. package/dist/browser/navigation-store.d.ts +0 -101
  176. package/dist/browser/navigation-store.d.ts.map +0 -1
  177. package/dist/browser/navigation-store.js +0 -625
  178. package/dist/browser/navigation-store.js.map +0 -1
  179. package/dist/browser/partial-update.d.ts +0 -75
  180. package/dist/browser/partial-update.d.ts.map +0 -1
  181. package/dist/browser/partial-update.js +0 -426
  182. package/dist/browser/partial-update.js.map +0 -1
  183. package/dist/browser/react/Link.d.ts +0 -86
  184. package/dist/browser/react/Link.d.ts.map +0 -1
  185. package/dist/browser/react/Link.js +0 -128
  186. package/dist/browser/react/Link.js.map +0 -1
  187. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  188. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  189. package/dist/browser/react/NavigationProvider.js +0 -216
  190. package/dist/browser/react/NavigationProvider.js.map +0 -1
  191. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  192. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  193. package/dist/browser/react/ScrollRestoration.js +0 -57
  194. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  195. package/dist/browser/react/context.d.ts +0 -46
  196. package/dist/browser/react/context.d.ts.map +0 -1
  197. package/dist/browser/react/context.js +0 -10
  198. package/dist/browser/react/context.js.map +0 -1
  199. package/dist/browser/react/index.d.ts +0 -11
  200. package/dist/browser/react/index.d.ts.map +0 -1
  201. package/dist/browser/react/index.js +0 -22
  202. package/dist/browser/react/index.js.map +0 -1
  203. package/dist/browser/react/location-state-shared.d.ts +0 -63
  204. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  205. package/dist/browser/react/location-state-shared.js +0 -81
  206. package/dist/browser/react/location-state-shared.js.map +0 -1
  207. package/dist/browser/react/location-state.d.ts +0 -23
  208. package/dist/browser/react/location-state.d.ts.map +0 -1
  209. package/dist/browser/react/location-state.js +0 -29
  210. package/dist/browser/react/location-state.js.map +0 -1
  211. package/dist/browser/react/mount-context.d.ts +0 -24
  212. package/dist/browser/react/mount-context.d.ts.map +0 -1
  213. package/dist/browser/react/mount-context.js +0 -24
  214. package/dist/browser/react/mount-context.js.map +0 -1
  215. package/dist/browser/react/use-action.d.ts +0 -64
  216. package/dist/browser/react/use-action.d.ts.map +0 -1
  217. package/dist/browser/react/use-action.js +0 -134
  218. package/dist/browser/react/use-action.js.map +0 -1
  219. package/dist/browser/react/use-client-cache.d.ts +0 -41
  220. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  221. package/dist/browser/react/use-client-cache.js +0 -39
  222. package/dist/browser/react/use-client-cache.js.map +0 -1
  223. package/dist/browser/react/use-handle.d.ts +0 -31
  224. package/dist/browser/react/use-handle.d.ts.map +0 -1
  225. package/dist/browser/react/use-handle.js +0 -144
  226. package/dist/browser/react/use-handle.js.map +0 -1
  227. package/dist/browser/react/use-href.d.ts +0 -33
  228. package/dist/browser/react/use-href.d.ts.map +0 -1
  229. package/dist/browser/react/use-href.js +0 -39
  230. package/dist/browser/react/use-href.js.map +0 -1
  231. package/dist/browser/react/use-link-status.d.ts +0 -37
  232. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  233. package/dist/browser/react/use-link-status.js +0 -99
  234. package/dist/browser/react/use-link-status.js.map +0 -1
  235. package/dist/browser/react/use-mount.d.ts +0 -25
  236. package/dist/browser/react/use-mount.d.ts.map +0 -1
  237. package/dist/browser/react/use-mount.js +0 -30
  238. package/dist/browser/react/use-mount.js.map +0 -1
  239. package/dist/browser/react/use-navigation.d.ts +0 -27
  240. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  241. package/dist/browser/react/use-navigation.js +0 -87
  242. package/dist/browser/react/use-navigation.js.map +0 -1
  243. package/dist/browser/react/use-segments.d.ts +0 -38
  244. package/dist/browser/react/use-segments.d.ts.map +0 -1
  245. package/dist/browser/react/use-segments.js +0 -130
  246. package/dist/browser/react/use-segments.js.map +0 -1
  247. package/dist/browser/request-controller.d.ts +0 -26
  248. package/dist/browser/request-controller.d.ts.map +0 -1
  249. package/dist/browser/request-controller.js +0 -147
  250. package/dist/browser/request-controller.js.map +0 -1
  251. package/dist/browser/rsc-router.d.ts +0 -129
  252. package/dist/browser/rsc-router.d.ts.map +0 -1
  253. package/dist/browser/rsc-router.js +0 -195
  254. package/dist/browser/rsc-router.js.map +0 -1
  255. package/dist/browser/scroll-restoration.d.ts +0 -93
  256. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  257. package/dist/browser/scroll-restoration.js +0 -321
  258. package/dist/browser/scroll-restoration.js.map +0 -1
  259. package/dist/browser/segment-structure-assert.d.ts +0 -17
  260. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  261. package/dist/browser/segment-structure-assert.js +0 -59
  262. package/dist/browser/segment-structure-assert.js.map +0 -1
  263. package/dist/browser/server-action-bridge.d.ts +0 -26
  264. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  265. package/dist/browser/server-action-bridge.js +0 -668
  266. package/dist/browser/server-action-bridge.js.map +0 -1
  267. package/dist/browser/shallow.d.ts +0 -12
  268. package/dist/browser/shallow.d.ts.map +0 -1
  269. package/dist/browser/shallow.js +0 -34
  270. package/dist/browser/shallow.js.map +0 -1
  271. package/dist/browser/types.d.ts +0 -369
  272. package/dist/browser/types.d.ts.map +0 -1
  273. package/dist/browser/types.js +0 -2
  274. package/dist/browser/types.js.map +0 -1
  275. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  276. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  277. package/dist/build/__tests__/generate-cli.test.js +0 -237
  278. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  279. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  280. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  281. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  282. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  283. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  284. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  285. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  286. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  287. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  288. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  289. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  290. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  291. package/dist/build/generate-manifest.d.ts +0 -81
  292. package/dist/build/generate-manifest.d.ts.map +0 -1
  293. package/dist/build/generate-manifest.js +0 -276
  294. package/dist/build/generate-manifest.js.map +0 -1
  295. package/dist/build/generate-route-types.d.ts +0 -115
  296. package/dist/build/generate-route-types.d.ts.map +0 -1
  297. package/dist/build/generate-route-types.js +0 -740
  298. package/dist/build/generate-route-types.js.map +0 -1
  299. package/dist/build/index.d.ts +0 -21
  300. package/dist/build/index.d.ts.map +0 -1
  301. package/dist/build/index.js +0 -21
  302. package/dist/build/index.js.map +0 -1
  303. package/dist/build/route-trie.d.ts +0 -71
  304. package/dist/build/route-trie.d.ts.map +0 -1
  305. package/dist/build/route-trie.js +0 -175
  306. package/dist/build/route-trie.js.map +0 -1
  307. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  308. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  309. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  310. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  311. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  312. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  313. package/dist/cache/__tests__/document-cache.test.js +0 -345
  314. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  315. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  316. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  317. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  318. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  319. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  320. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  321. package/dist/cache/__tests__/memory-store.test.js +0 -367
  322. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  323. package/dist/cache/cache-scope.d.ts +0 -102
  324. package/dist/cache/cache-scope.d.ts.map +0 -1
  325. package/dist/cache/cache-scope.js +0 -440
  326. package/dist/cache/cache-scope.js.map +0 -1
  327. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  328. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  329. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  330. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  331. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  332. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  333. package/dist/cache/cf/cf-cache-store.js +0 -242
  334. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  335. package/dist/cache/cf/index.d.ts +0 -14
  336. package/dist/cache/cf/index.d.ts.map +0 -1
  337. package/dist/cache/cf/index.js +0 -17
  338. package/dist/cache/cf/index.js.map +0 -1
  339. package/dist/cache/document-cache.d.ts +0 -64
  340. package/dist/cache/document-cache.d.ts.map +0 -1
  341. package/dist/cache/document-cache.js +0 -228
  342. package/dist/cache/document-cache.js.map +0 -1
  343. package/dist/cache/index.d.ts +0 -19
  344. package/dist/cache/index.d.ts.map +0 -1
  345. package/dist/cache/index.js +0 -21
  346. package/dist/cache/index.js.map +0 -1
  347. package/dist/cache/memory-segment-store.d.ts +0 -110
  348. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  349. package/dist/cache/memory-segment-store.js +0 -117
  350. package/dist/cache/memory-segment-store.js.map +0 -1
  351. package/dist/cache/memory-store.d.ts +0 -41
  352. package/dist/cache/memory-store.d.ts.map +0 -1
  353. package/dist/cache/memory-store.js +0 -191
  354. package/dist/cache/memory-store.js.map +0 -1
  355. package/dist/cache/types.d.ts +0 -317
  356. package/dist/cache/types.d.ts.map +0 -1
  357. package/dist/cache/types.js +0 -12
  358. package/dist/cache/types.js.map +0 -1
  359. package/dist/client.d.ts +0 -248
  360. package/dist/client.d.ts.map +0 -1
  361. package/dist/client.js +0 -367
  362. package/dist/client.js.map +0 -1
  363. package/dist/client.rsc.d.ts +0 -26
  364. package/dist/client.rsc.d.ts.map +0 -1
  365. package/dist/client.rsc.js +0 -46
  366. package/dist/client.rsc.js.map +0 -1
  367. package/dist/component-utils.d.ts +0 -36
  368. package/dist/component-utils.d.ts.map +0 -1
  369. package/dist/component-utils.js +0 -61
  370. package/dist/component-utils.js.map +0 -1
  371. package/dist/components/DefaultDocument.d.ts +0 -13
  372. package/dist/components/DefaultDocument.d.ts.map +0 -1
  373. package/dist/components/DefaultDocument.js +0 -15
  374. package/dist/components/DefaultDocument.js.map +0 -1
  375. package/dist/debug.d.ts +0 -58
  376. package/dist/debug.d.ts.map +0 -1
  377. package/dist/debug.js +0 -157
  378. package/dist/debug.js.map +0 -1
  379. package/dist/default-error-boundary.d.ts +0 -11
  380. package/dist/default-error-boundary.d.ts.map +0 -1
  381. package/dist/default-error-boundary.js +0 -45
  382. package/dist/default-error-boundary.js.map +0 -1
  383. package/dist/deps/browser.d.ts +0 -2
  384. package/dist/deps/browser.d.ts.map +0 -1
  385. package/dist/deps/browser.js +0 -3
  386. package/dist/deps/browser.js.map +0 -1
  387. package/dist/deps/html-stream-client.d.ts +0 -2
  388. package/dist/deps/html-stream-client.d.ts.map +0 -1
  389. package/dist/deps/html-stream-client.js +0 -3
  390. package/dist/deps/html-stream-client.js.map +0 -1
  391. package/dist/deps/html-stream-server.d.ts +0 -2
  392. package/dist/deps/html-stream-server.d.ts.map +0 -1
  393. package/dist/deps/html-stream-server.js +0 -3
  394. package/dist/deps/html-stream-server.js.map +0 -1
  395. package/dist/deps/rsc.d.ts +0 -2
  396. package/dist/deps/rsc.d.ts.map +0 -1
  397. package/dist/deps/rsc.js +0 -4
  398. package/dist/deps/rsc.js.map +0 -1
  399. package/dist/deps/ssr.d.ts +0 -2
  400. package/dist/deps/ssr.d.ts.map +0 -1
  401. package/dist/deps/ssr.js +0 -3
  402. package/dist/deps/ssr.js.map +0 -1
  403. package/dist/errors.d.ts +0 -174
  404. package/dist/errors.d.ts.map +0 -1
  405. package/dist/errors.js +0 -241
  406. package/dist/errors.js.map +0 -1
  407. package/dist/handle.d.ts +0 -78
  408. package/dist/handle.d.ts.map +0 -1
  409. package/dist/handle.js +0 -82
  410. package/dist/handle.js.map +0 -1
  411. package/dist/handles/MetaTags.d.ts +0 -14
  412. package/dist/handles/MetaTags.d.ts.map +0 -1
  413. package/dist/handles/MetaTags.js +0 -136
  414. package/dist/handles/MetaTags.js.map +0 -1
  415. package/dist/handles/index.d.ts +0 -6
  416. package/dist/handles/index.d.ts.map +0 -1
  417. package/dist/handles/index.js +0 -6
  418. package/dist/handles/index.js.map +0 -1
  419. package/dist/handles/meta.d.ts +0 -39
  420. package/dist/handles/meta.d.ts.map +0 -1
  421. package/dist/handles/meta.js +0 -202
  422. package/dist/handles/meta.js.map +0 -1
  423. package/dist/host/__tests__/errors.test.d.ts +0 -2
  424. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  425. package/dist/host/__tests__/errors.test.js +0 -76
  426. package/dist/host/__tests__/errors.test.js.map +0 -1
  427. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  428. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  429. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  430. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  431. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  432. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  433. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  434. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  435. package/dist/host/__tests__/router.test.d.ts +0 -2
  436. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  437. package/dist/host/__tests__/router.test.js +0 -241
  438. package/dist/host/__tests__/router.test.js.map +0 -1
  439. package/dist/host/__tests__/testing.test.d.ts +0 -2
  440. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  441. package/dist/host/__tests__/testing.test.js +0 -64
  442. package/dist/host/__tests__/testing.test.js.map +0 -1
  443. package/dist/host/__tests__/utils.test.d.ts +0 -2
  444. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  445. package/dist/host/__tests__/utils.test.js +0 -29
  446. package/dist/host/__tests__/utils.test.js.map +0 -1
  447. package/dist/host/cookie-handler.d.ts +0 -34
  448. package/dist/host/cookie-handler.d.ts.map +0 -1
  449. package/dist/host/cookie-handler.js +0 -124
  450. package/dist/host/cookie-handler.js.map +0 -1
  451. package/dist/host/errors.d.ts +0 -56
  452. package/dist/host/errors.d.ts.map +0 -1
  453. package/dist/host/errors.js +0 -79
  454. package/dist/host/errors.js.map +0 -1
  455. package/dist/host/index.d.ts +0 -29
  456. package/dist/host/index.d.ts.map +0 -1
  457. package/dist/host/index.js +0 -32
  458. package/dist/host/index.js.map +0 -1
  459. package/dist/host/pattern-matcher.d.ts +0 -36
  460. package/dist/host/pattern-matcher.d.ts.map +0 -1
  461. package/dist/host/pattern-matcher.js +0 -172
  462. package/dist/host/pattern-matcher.js.map +0 -1
  463. package/dist/host/router.d.ts +0 -26
  464. package/dist/host/router.d.ts.map +0 -1
  465. package/dist/host/router.js +0 -218
  466. package/dist/host/router.js.map +0 -1
  467. package/dist/host/testing.d.ts +0 -36
  468. package/dist/host/testing.d.ts.map +0 -1
  469. package/dist/host/testing.js +0 -55
  470. package/dist/host/testing.js.map +0 -1
  471. package/dist/host/types.d.ts +0 -115
  472. package/dist/host/types.d.ts.map +0 -1
  473. package/dist/host/types.js +0 -7
  474. package/dist/host/types.js.map +0 -1
  475. package/dist/host/utils.d.ts +0 -21
  476. package/dist/host/utils.d.ts.map +0 -1
  477. package/dist/host/utils.js +0 -23
  478. package/dist/host/utils.js.map +0 -1
  479. package/dist/href-client.d.ts +0 -131
  480. package/dist/href-client.d.ts.map +0 -1
  481. package/dist/href-client.js +0 -64
  482. package/dist/href-client.js.map +0 -1
  483. package/dist/href-context.d.ts +0 -29
  484. package/dist/href-context.d.ts.map +0 -1
  485. package/dist/href-context.js +0 -21
  486. package/dist/href-context.js.map +0 -1
  487. package/dist/index.d.ts +0 -73
  488. package/dist/index.d.ts.map +0 -1
  489. package/dist/index.js +0 -91
  490. package/dist/index.js.map +0 -1
  491. package/dist/index.rsc.d.ts +0 -32
  492. package/dist/index.rsc.d.ts.map +0 -1
  493. package/dist/index.rsc.js +0 -40
  494. package/dist/index.rsc.js.map +0 -1
  495. package/dist/internal-debug.d.ts +0 -2
  496. package/dist/internal-debug.d.ts.map +0 -1
  497. package/dist/internal-debug.js +0 -5
  498. package/dist/internal-debug.js.map +0 -1
  499. package/dist/loader.d.ts +0 -14
  500. package/dist/loader.d.ts.map +0 -1
  501. package/dist/loader.js +0 -20
  502. package/dist/loader.js.map +0 -1
  503. package/dist/loader.rsc.d.ts +0 -19
  504. package/dist/loader.rsc.d.ts.map +0 -1
  505. package/dist/loader.rsc.js +0 -99
  506. package/dist/loader.rsc.js.map +0 -1
  507. package/dist/network-error-thrower.d.ts +0 -17
  508. package/dist/network-error-thrower.d.ts.map +0 -1
  509. package/dist/network-error-thrower.js +0 -14
  510. package/dist/network-error-thrower.js.map +0 -1
  511. package/dist/outlet-context.d.ts +0 -13
  512. package/dist/outlet-context.d.ts.map +0 -1
  513. package/dist/outlet-context.js +0 -3
  514. package/dist/outlet-context.js.map +0 -1
  515. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  516. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  517. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  518. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  519. package/dist/prerender/param-hash.d.ts +0 -16
  520. package/dist/prerender/param-hash.d.ts.map +0 -1
  521. package/dist/prerender/param-hash.js +0 -36
  522. package/dist/prerender/param-hash.js.map +0 -1
  523. package/dist/prerender/store.d.ts +0 -38
  524. package/dist/prerender/store.d.ts.map +0 -1
  525. package/dist/prerender/store.js +0 -61
  526. package/dist/prerender/store.js.map +0 -1
  527. package/dist/prerender.d.ts +0 -66
  528. package/dist/prerender.d.ts.map +0 -1
  529. package/dist/prerender.js +0 -57
  530. package/dist/prerender.js.map +0 -1
  531. package/dist/reverse.d.ts +0 -196
  532. package/dist/reverse.d.ts.map +0 -1
  533. package/dist/reverse.js +0 -78
  534. package/dist/reverse.js.map +0 -1
  535. package/dist/root-error-boundary.d.ts +0 -33
  536. package/dist/root-error-boundary.d.ts.map +0 -1
  537. package/dist/root-error-boundary.js +0 -165
  538. package/dist/root-error-boundary.js.map +0 -1
  539. package/dist/route-content-wrapper.d.ts +0 -46
  540. package/dist/route-content-wrapper.d.ts.map +0 -1
  541. package/dist/route-content-wrapper.js +0 -77
  542. package/dist/route-content-wrapper.js.map +0 -1
  543. package/dist/route-definition.d.ts +0 -421
  544. package/dist/route-definition.d.ts.map +0 -1
  545. package/dist/route-definition.js +0 -868
  546. package/dist/route-definition.js.map +0 -1
  547. package/dist/route-map-builder.d.ts +0 -155
  548. package/dist/route-map-builder.d.ts.map +0 -1
  549. package/dist/route-map-builder.js +0 -237
  550. package/dist/route-map-builder.js.map +0 -1
  551. package/dist/route-types.d.ts +0 -165
  552. package/dist/route-types.d.ts.map +0 -1
  553. package/dist/route-types.js +0 -7
  554. package/dist/route-types.js.map +0 -1
  555. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  556. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  557. package/dist/router/__tests__/handler-context.test.js +0 -65
  558. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  559. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  560. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  561. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  562. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  563. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  564. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  565. package/dist/router/__tests__/match-context.test.js +0 -92
  566. package/dist/router/__tests__/match-context.test.js.map +0 -1
  567. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  568. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  569. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  570. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  571. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  572. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  573. package/dist/router/__tests__/match-result.test.js +0 -457
  574. package/dist/router/__tests__/match-result.test.js.map +0 -1
  575. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  576. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  577. package/dist/router/__tests__/on-error.test.js +0 -678
  578. package/dist/router/__tests__/on-error.test.js.map +0 -1
  579. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  580. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  581. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  582. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  583. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  584. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  585. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  586. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  587. package/dist/router/error-handling.d.ts +0 -77
  588. package/dist/router/error-handling.d.ts.map +0 -1
  589. package/dist/router/error-handling.js +0 -202
  590. package/dist/router/error-handling.js.map +0 -1
  591. package/dist/router/handler-context.d.ts +0 -20
  592. package/dist/router/handler-context.d.ts.map +0 -1
  593. package/dist/router/handler-context.js +0 -198
  594. package/dist/router/handler-context.js.map +0 -1
  595. package/dist/router/intercept-resolution.d.ts +0 -66
  596. package/dist/router/intercept-resolution.d.ts.map +0 -1
  597. package/dist/router/intercept-resolution.js +0 -246
  598. package/dist/router/intercept-resolution.js.map +0 -1
  599. package/dist/router/loader-resolution.d.ts +0 -64
  600. package/dist/router/loader-resolution.d.ts.map +0 -1
  601. package/dist/router/loader-resolution.js +0 -284
  602. package/dist/router/loader-resolution.js.map +0 -1
  603. package/dist/router/logging.d.ts +0 -15
  604. package/dist/router/logging.d.ts.map +0 -1
  605. package/dist/router/logging.js +0 -99
  606. package/dist/router/logging.js.map +0 -1
  607. package/dist/router/manifest.d.ts +0 -22
  608. package/dist/router/manifest.d.ts.map +0 -1
  609. package/dist/router/manifest.js +0 -181
  610. package/dist/router/manifest.js.map +0 -1
  611. package/dist/router/match-api.d.ts +0 -35
  612. package/dist/router/match-api.d.ts.map +0 -1
  613. package/dist/router/match-api.js +0 -406
  614. package/dist/router/match-api.js.map +0 -1
  615. package/dist/router/match-context.d.ts +0 -206
  616. package/dist/router/match-context.d.ts.map +0 -1
  617. package/dist/router/match-context.js +0 -17
  618. package/dist/router/match-context.js.map +0 -1
  619. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  620. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  621. package/dist/router/match-middleware/background-revalidation.js +0 -75
  622. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  623. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  624. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  625. package/dist/router/match-middleware/cache-lookup.js +0 -257
  626. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  627. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  628. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  629. package/dist/router/match-middleware/cache-store.js +0 -108
  630. package/dist/router/match-middleware/cache-store.js.map +0 -1
  631. package/dist/router/match-middleware/index.d.ts +0 -81
  632. package/dist/router/match-middleware/index.d.ts.map +0 -1
  633. package/dist/router/match-middleware/index.js +0 -80
  634. package/dist/router/match-middleware/index.js.map +0 -1
  635. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  636. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  637. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  638. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  639. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  640. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  641. package/dist/router/match-middleware/segment-resolution.js +0 -53
  642. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  643. package/dist/router/match-pipelines.d.ts +0 -147
  644. package/dist/router/match-pipelines.d.ts.map +0 -1
  645. package/dist/router/match-pipelines.js +0 -82
  646. package/dist/router/match-pipelines.js.map +0 -1
  647. package/dist/router/match-result.d.ts +0 -126
  648. package/dist/router/match-result.d.ts.map +0 -1
  649. package/dist/router/match-result.js +0 -93
  650. package/dist/router/match-result.js.map +0 -1
  651. package/dist/router/metrics.d.ts +0 -20
  652. package/dist/router/metrics.d.ts.map +0 -1
  653. package/dist/router/metrics.js +0 -47
  654. package/dist/router/metrics.js.map +0 -1
  655. package/dist/router/middleware.d.ts +0 -249
  656. package/dist/router/middleware.d.ts.map +0 -1
  657. package/dist/router/middleware.js +0 -434
  658. package/dist/router/middleware.js.map +0 -1
  659. package/dist/router/middleware.test.d.ts +0 -2
  660. package/dist/router/middleware.test.d.ts.map +0 -1
  661. package/dist/router/middleware.test.js +0 -816
  662. package/dist/router/middleware.test.js.map +0 -1
  663. package/dist/router/pattern-matching.d.ts +0 -149
  664. package/dist/router/pattern-matching.d.ts.map +0 -1
  665. package/dist/router/pattern-matching.js +0 -349
  666. package/dist/router/pattern-matching.js.map +0 -1
  667. package/dist/router/revalidation.d.ts +0 -44
  668. package/dist/router/revalidation.d.ts.map +0 -1
  669. package/dist/router/revalidation.js +0 -147
  670. package/dist/router/revalidation.js.map +0 -1
  671. package/dist/router/router-context.d.ts +0 -135
  672. package/dist/router/router-context.d.ts.map +0 -1
  673. package/dist/router/router-context.js +0 -36
  674. package/dist/router/router-context.js.map +0 -1
  675. package/dist/router/segment-resolution.d.ts +0 -127
  676. package/dist/router/segment-resolution.d.ts.map +0 -1
  677. package/dist/router/segment-resolution.js +0 -919
  678. package/dist/router/segment-resolution.js.map +0 -1
  679. package/dist/router/trie-matching.d.ts +0 -40
  680. package/dist/router/trie-matching.d.ts.map +0 -1
  681. package/dist/router/trie-matching.js +0 -127
  682. package/dist/router/trie-matching.js.map +0 -1
  683. package/dist/router/types.d.ts +0 -136
  684. package/dist/router/types.d.ts.map +0 -1
  685. package/dist/router/types.js +0 -7
  686. package/dist/router/types.js.map +0 -1
  687. package/dist/router.d.ts +0 -753
  688. package/dist/router.d.ts.map +0 -1
  689. package/dist/router.gen.d.ts +0 -6
  690. package/dist/router.gen.d.ts.map +0 -1
  691. package/dist/router.gen.js +0 -6
  692. package/dist/router.gen.js.map +0 -1
  693. package/dist/router.js +0 -1304
  694. package/dist/router.js.map +0 -1
  695. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  696. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  697. package/dist/rsc/__tests__/helpers.test.js +0 -140
  698. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  699. package/dist/rsc/handler.d.ts +0 -45
  700. package/dist/rsc/handler.d.ts.map +0 -1
  701. package/dist/rsc/handler.js +0 -1172
  702. package/dist/rsc/handler.js.map +0 -1
  703. package/dist/rsc/helpers.d.ts +0 -16
  704. package/dist/rsc/helpers.d.ts.map +0 -1
  705. package/dist/rsc/helpers.js +0 -55
  706. package/dist/rsc/helpers.js.map +0 -1
  707. package/dist/rsc/index.d.ts +0 -22
  708. package/dist/rsc/index.d.ts.map +0 -1
  709. package/dist/rsc/index.js +0 -23
  710. package/dist/rsc/index.js.map +0 -1
  711. package/dist/rsc/nonce.d.ts +0 -9
  712. package/dist/rsc/nonce.d.ts.map +0 -1
  713. package/dist/rsc/nonce.js +0 -18
  714. package/dist/rsc/nonce.js.map +0 -1
  715. package/dist/rsc/types.d.ts +0 -206
  716. package/dist/rsc/types.d.ts.map +0 -1
  717. package/dist/rsc/types.js +0 -8
  718. package/dist/rsc/types.js.map +0 -1
  719. package/dist/search-params.d.ts +0 -103
  720. package/dist/search-params.d.ts.map +0 -1
  721. package/dist/search-params.js +0 -74
  722. package/dist/search-params.js.map +0 -1
  723. package/dist/segment-system.d.ts +0 -75
  724. package/dist/segment-system.d.ts.map +0 -1
  725. package/dist/segment-system.js +0 -336
  726. package/dist/segment-system.js.map +0 -1
  727. package/dist/server/context.d.ts +0 -245
  728. package/dist/server/context.d.ts.map +0 -1
  729. package/dist/server/context.js +0 -197
  730. package/dist/server/context.js.map +0 -1
  731. package/dist/server/fetchable-loader-store.d.ts +0 -18
  732. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  733. package/dist/server/fetchable-loader-store.js +0 -18
  734. package/dist/server/fetchable-loader-store.js.map +0 -1
  735. package/dist/server/handle-store.d.ts +0 -85
  736. package/dist/server/handle-store.d.ts.map +0 -1
  737. package/dist/server/handle-store.js +0 -142
  738. package/dist/server/handle-store.js.map +0 -1
  739. package/dist/server/loader-registry.d.ts +0 -55
  740. package/dist/server/loader-registry.d.ts.map +0 -1
  741. package/dist/server/loader-registry.js +0 -132
  742. package/dist/server/loader-registry.js.map +0 -1
  743. package/dist/server/request-context.d.ts +0 -226
  744. package/dist/server/request-context.d.ts.map +0 -1
  745. package/dist/server/request-context.js +0 -290
  746. package/dist/server/request-context.js.map +0 -1
  747. package/dist/server/root-layout.d.ts +0 -4
  748. package/dist/server/root-layout.d.ts.map +0 -1
  749. package/dist/server/root-layout.js +0 -5
  750. package/dist/server/root-layout.js.map +0 -1
  751. package/dist/server.d.ts +0 -15
  752. package/dist/server.d.ts.map +0 -1
  753. package/dist/server.js +0 -20
  754. package/dist/server.js.map +0 -1
  755. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  756. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  757. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  758. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  759. package/dist/ssr/index.d.ts +0 -98
  760. package/dist/ssr/index.d.ts.map +0 -1
  761. package/dist/ssr/index.js +0 -158
  762. package/dist/ssr/index.js.map +0 -1
  763. package/dist/static-handler.d.ts +0 -50
  764. package/dist/static-handler.d.ts.map +0 -1
  765. package/dist/static-handler.gen.d.ts +0 -5
  766. package/dist/static-handler.gen.d.ts.map +0 -1
  767. package/dist/static-handler.gen.js +0 -5
  768. package/dist/static-handler.gen.js.map +0 -1
  769. package/dist/static-handler.js +0 -29
  770. package/dist/static-handler.js.map +0 -1
  771. package/dist/theme/ThemeProvider.d.ts +0 -20
  772. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  773. package/dist/theme/ThemeProvider.js +0 -240
  774. package/dist/theme/ThemeProvider.js.map +0 -1
  775. package/dist/theme/ThemeScript.d.ts +0 -48
  776. package/dist/theme/ThemeScript.d.ts.map +0 -1
  777. package/dist/theme/ThemeScript.js +0 -13
  778. package/dist/theme/ThemeScript.js.map +0 -1
  779. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  780. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  781. package/dist/theme/__tests__/theme.test.js +0 -103
  782. package/dist/theme/__tests__/theme.test.js.map +0 -1
  783. package/dist/theme/constants.d.ts +0 -29
  784. package/dist/theme/constants.d.ts.map +0 -1
  785. package/dist/theme/constants.js +0 -48
  786. package/dist/theme/constants.js.map +0 -1
  787. package/dist/theme/index.d.ts +0 -31
  788. package/dist/theme/index.d.ts.map +0 -1
  789. package/dist/theme/index.js +0 -36
  790. package/dist/theme/index.js.map +0 -1
  791. package/dist/theme/theme-context.d.ts +0 -40
  792. package/dist/theme/theme-context.d.ts.map +0 -1
  793. package/dist/theme/theme-context.js +0 -60
  794. package/dist/theme/theme-context.js.map +0 -1
  795. package/dist/theme/theme-script.d.ts +0 -27
  796. package/dist/theme/theme-script.d.ts.map +0 -1
  797. package/dist/theme/theme-script.js +0 -147
  798. package/dist/theme/theme-script.js.map +0 -1
  799. package/dist/theme/types.d.ts +0 -163
  800. package/dist/theme/types.d.ts.map +0 -1
  801. package/dist/theme/types.js +0 -11
  802. package/dist/theme/types.js.map +0 -1
  803. package/dist/theme/use-theme.d.ts +0 -12
  804. package/dist/theme/use-theme.d.ts.map +0 -1
  805. package/dist/theme/use-theme.js +0 -40
  806. package/dist/theme/use-theme.js.map +0 -1
  807. package/dist/types.d.ts +0 -1479
  808. package/dist/types.d.ts.map +0 -1
  809. package/dist/types.js +0 -10
  810. package/dist/types.js.map +0 -1
  811. package/dist/urls.d.ts +0 -441
  812. package/dist/urls.d.ts.map +0 -1
  813. package/dist/urls.gen.d.ts +0 -8
  814. package/dist/urls.gen.d.ts.map +0 -1
  815. package/dist/urls.gen.js +0 -8
  816. package/dist/urls.gen.js.map +0 -1
  817. package/dist/urls.js +0 -443
  818. package/dist/urls.js.map +0 -1
  819. package/dist/use-loader.d.ts +0 -127
  820. package/dist/use-loader.d.ts.map +0 -1
  821. package/dist/use-loader.js +0 -237
  822. package/dist/use-loader.js.map +0 -1
  823. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  824. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  825. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  826. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  827. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  828. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  829. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  830. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  831. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  832. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  833. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  834. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  835. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  836. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  837. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  838. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  839. package/dist/vite/ast-handler-extract.d.ts +0 -49
  840. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  841. package/dist/vite/ast-handler-extract.js +0 -249
  842. package/dist/vite/ast-handler-extract.js.map +0 -1
  843. package/dist/vite/expose-action-id.d.ts +0 -19
  844. package/dist/vite/expose-action-id.d.ts.map +0 -1
  845. package/dist/vite/expose-action-id.js +0 -250
  846. package/dist/vite/expose-action-id.js.map +0 -1
  847. package/dist/vite/expose-id-utils.d.ts +0 -69
  848. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  849. package/dist/vite/expose-id-utils.js +0 -289
  850. package/dist/vite/expose-id-utils.js.map +0 -1
  851. package/dist/vite/expose-internal-ids.d.ts +0 -22
  852. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  853. package/dist/vite/expose-internal-ids.js +0 -886
  854. package/dist/vite/expose-internal-ids.js.map +0 -1
  855. package/dist/vite/index.d.ts +0 -149
  856. package/dist/vite/index.d.ts.map +0 -1
  857. package/dist/vite/index.js.map +0 -1
  858. package/dist/vite/index.named-routes.gen.ts +0 -103
  859. package/dist/vite/package-resolution.d.ts +0 -43
  860. package/dist/vite/package-resolution.d.ts.map +0 -1
  861. package/dist/vite/package-resolution.js +0 -112
  862. package/dist/vite/package-resolution.js.map +0 -1
  863. package/dist/vite/virtual-entries.d.ts +0 -25
  864. package/dist/vite/virtual-entries.d.ts.map +0 -1
  865. package/dist/vite/virtual-entries.js +0 -110
  866. package/dist/vite/virtual-entries.js.map +0 -1
@@ -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