@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,627 +0,0 @@
1
- import { describe, it, expect, vi } from "vitest";
2
- import { createElement } from "react";
3
- // Sentinel components for identification in the element tree
4
- function MockOutletProvider(props) {
5
- return props.children;
6
- }
7
- function MockLoaderBoundary(props) {
8
- return props.children;
9
- }
10
- function MockRouteContentWrapper(props) {
11
- return null;
12
- }
13
- function MockMountContextProvider(props) {
14
- return props.children;
15
- }
16
- function MockRootErrorBoundary(props) {
17
- return props.children;
18
- }
19
- vi.mock("../client.js", () => ({
20
- OutletProvider: MockOutletProvider,
21
- }));
22
- vi.mock("../browser/react/mount-context.js", () => ({
23
- MountContextProvider: MockMountContextProvider,
24
- }));
25
- vi.mock("../route-content-wrapper.js", () => ({
26
- RouteContentWrapper: MockRouteContentWrapper,
27
- LoaderBoundary: MockLoaderBoundary,
28
- }));
29
- vi.mock("../root-error-boundary.js", () => ({
30
- RootErrorBoundary: MockRootErrorBoundary,
31
- }));
32
- import { renderSegments } from "../segment-system";
33
- // Helper to create a minimal segment
34
- function seg(overrides) {
35
- return {
36
- namespace: "",
37
- index: 0,
38
- component: createElement("div", null, `component-${overrides.id}`),
39
- ...overrides,
40
- };
41
- }
42
- function toTreeNode(node) {
43
- if (!node || typeof node !== "object")
44
- return null;
45
- const el = node;
46
- if (!el.type)
47
- return null;
48
- const typeName = typeof el.type === "string"
49
- ? el.type
50
- : el.type.name || "Anonymous";
51
- const children = [];
52
- // Walk both `children` and `content` props since layouts pass inner
53
- // content via the `content` prop to OutletProvider
54
- for (const prop of ["children", "content"]) {
55
- const val = el.props?.[prop];
56
- if (!val)
57
- continue;
58
- if (Array.isArray(val)) {
59
- for (const child of val) {
60
- const n = toTreeNode(child);
61
- if (n)
62
- children.push(n);
63
- }
64
- }
65
- else {
66
- const n = toTreeNode(val);
67
- if (n)
68
- children.push(n);
69
- }
70
- }
71
- return { type: el.type, typeName, props: el.props || {}, children };
72
- }
73
- // Find all nodes matching a component type in the tree
74
- function findAll(tree, fn) {
75
- if (!tree)
76
- return [];
77
- const results = [];
78
- if (tree.type === fn)
79
- results.push(tree);
80
- for (const child of tree.children) {
81
- results.push(...findAll(child, fn));
82
- }
83
- return results;
84
- }
85
- // Find first node matching a component type
86
- function findFirst(tree, fn) {
87
- if (!tree)
88
- return null;
89
- if (tree.type === fn)
90
- return tree;
91
- for (const child of tree.children) {
92
- const found = findFirst(child, fn);
93
- if (found)
94
- return found;
95
- }
96
- return null;
97
- }
98
- // Collect all nodes of a type in order (depth-first)
99
- function collectByType(tree, fn) {
100
- return findAll(tree, fn);
101
- }
102
- describe("segment-system", () => {
103
- describe("renderSegments", () => {
104
- describe("basic tree structure", () => {
105
- it("renders a single route segment with OutletProvider", async () => {
106
- const segments = [
107
- seg({ id: "R0", type: "route" }),
108
- ];
109
- const result = await renderSegments(segments);
110
- const tree = toTreeNode(result);
111
- // Root is RootErrorBoundary
112
- expect(tree.type).toBe(MockRootErrorBoundary);
113
- // Inside is an OutletProvider for the route
114
- const outlets = collectByType(tree, MockOutletProvider);
115
- expect(outlets).toHaveLength(1);
116
- expect(outlets[0].props.segment.id).toBe("R0");
117
- expect(outlets[0].props.content).toBeNull(); // route has no outlet content
118
- });
119
- it("nests layout around route (layout receives route as outlet content)", async () => {
120
- const segments = [
121
- seg({ id: "L0", type: "layout" }),
122
- seg({ id: "L0R0", type: "route" }),
123
- ];
124
- const result = await renderSegments(segments);
125
- const tree = toTreeNode(result);
126
- const outlets = collectByType(tree, MockOutletProvider);
127
- // Two OutletProviders
128
- expect(outlets).toHaveLength(2);
129
- // Outer (layout) wraps inner (route)
130
- // The outermost outlet should be the layout
131
- const outerOutlet = outlets[0];
132
- expect(outerOutlet.props.segment.id).toBe("L0");
133
- // Layout's content prop is the route's OutletProvider
134
- expect(outerOutlet.props.content).not.toBeNull();
135
- });
136
- it("nests multiple layouts (root -> inner -> route)", async () => {
137
- const segments = [
138
- seg({ id: "L0", type: "layout" }),
139
- seg({ id: "L0L0", type: "layout" }),
140
- seg({ id: "L0L0R0", type: "route" }),
141
- ];
142
- const result = await renderSegments(segments);
143
- const tree = toTreeNode(result);
144
- const outlets = collectByType(tree, MockOutletProvider);
145
- expect(outlets).toHaveLength(3);
146
- // Outermost is root layout L0
147
- expect(outlets[0].props.segment.id).toBe("L0");
148
- });
149
- it("always wraps with RootErrorBoundary", async () => {
150
- const segments = [
151
- seg({ id: "R0", type: "route" }),
152
- ];
153
- const result = await renderSegments(segments);
154
- const tree = toTreeNode(result);
155
- expect(tree.type).toBe(MockRootErrorBoundary);
156
- });
157
- });
158
- describe("tree structure based on loading property", () => {
159
- it("uses OutletProvider directly when loading is undefined", async () => {
160
- const segments = [
161
- seg({ id: "R0", type: "route", loading: undefined }),
162
- ];
163
- const result = await renderSegments(segments);
164
- const tree = toTreeNode(result);
165
- expect(collectByType(tree, MockOutletProvider)).toHaveLength(1);
166
- expect(collectByType(tree, MockLoaderBoundary)).toHaveLength(0);
167
- expect(collectByType(tree, MockRouteContentWrapper)).toHaveLength(0);
168
- });
169
- it("uses OutletProvider directly when loading is null", async () => {
170
- const segments = [
171
- seg({ id: "R0", type: "route", loading: null }),
172
- ];
173
- const result = await renderSegments(segments);
174
- const tree = toTreeNode(result);
175
- expect(collectByType(tree, MockOutletProvider)).toHaveLength(1);
176
- expect(collectByType(tree, MockLoaderBoundary)).toHaveLength(0);
177
- });
178
- it("uses LoaderBoundary when loading is false (defined but falsy)", async () => {
179
- const segments = [
180
- seg({ id: "R0", type: "route", loading: false }),
181
- ];
182
- const result = await renderSegments(segments);
183
- const tree = toTreeNode(result);
184
- // loading is false: not null, not undefined, so enters LoaderBoundary path
185
- expect(collectByType(tree, MockLoaderBoundary)).toHaveLength(1);
186
- });
187
- it("uses LoaderBoundary + RouteContentWrapper when loading is a ReactNode", async () => {
188
- const loadingSkeleton = createElement("div", null, "Loading...");
189
- const segments = [
190
- seg({ id: "R0", type: "route", loading: loadingSkeleton }),
191
- ];
192
- const result = await renderSegments(segments);
193
- const tree = toTreeNode(result);
194
- expect(collectByType(tree, MockLoaderBoundary)).toHaveLength(1);
195
- // RouteContentWrapper used as the children of LoaderBoundary
196
- expect(collectByType(tree, MockRouteContentWrapper)).toHaveLength(1);
197
- });
198
- it("uses OutletProvider with awaited data when loaders exist but no loading", async () => {
199
- const segments = [
200
- seg({ id: "R0", type: "route" }),
201
- seg({
202
- id: "R0D0.data",
203
- type: "loader",
204
- loaderId: "my-loader",
205
- loaderData: { value: 42 },
206
- }),
207
- ];
208
- const result = await renderSegments(segments);
209
- const tree = toTreeNode(result);
210
- // No LoaderBoundary because loading is undefined
211
- expect(collectByType(tree, MockLoaderBoundary)).toHaveLength(0);
212
- // Uses OutletProvider with loaderData injected
213
- const outlets = collectByType(tree, MockOutletProvider);
214
- expect(outlets).toHaveLength(1);
215
- expect(outlets[0].props.loaderData).toEqual({ "my-loader": { value: 42 } });
216
- });
217
- });
218
- describe("key generation", () => {
219
- it("uses segment ID as key when no params", async () => {
220
- const segments = [
221
- seg({ id: "R0", type: "route" }),
222
- ];
223
- const result = await renderSegments(segments);
224
- const tree = toTreeNode(result);
225
- const outlet = findFirst(tree, MockOutletProvider);
226
- // Key for route without params is just the ID
227
- expect(result.props.children.key).toBeDefined();
228
- });
229
- it("includes sorted params in key for route segments", async () => {
230
- const segments = [
231
- seg({
232
- id: "R0",
233
- type: "route",
234
- params: { slug: "hello", category: "tech" },
235
- }),
236
- ];
237
- const result = await renderSegments(segments);
238
- const tree = toTreeNode(result);
239
- const outlets = collectByType(tree, MockOutletProvider);
240
- // Params are sorted alphabetically in key
241
- expect(outlets[0].props.segment.params).toEqual({
242
- slug: "hello",
243
- category: "tech",
244
- });
245
- });
246
- it("excludes params from key for non-belongsToRoute layouts", async () => {
247
- // Layout that is shared (not belongsToRoute) should use just ID as key
248
- const segments = [
249
- seg({
250
- id: "L0",
251
- type: "layout",
252
- belongsToRoute: false,
253
- params: { slug: "hello" },
254
- }),
255
- seg({ id: "L0R0", type: "route" }),
256
- ];
257
- // Should not throw - params are excluded from key for shared layouts
258
- await renderSegments(segments);
259
- });
260
- });
261
- describe("parallel segment grouping", () => {
262
- it("attaches parallel segments to correct parent by ID prefix", async () => {
263
- const segments = [
264
- seg({ id: "L0", type: "layout" }),
265
- seg({ id: "L0R0", type: "route" }),
266
- seg({
267
- id: "L0.@sidebar",
268
- type: "parallel",
269
- slot: "@sidebar",
270
- }),
271
- ];
272
- const result = await renderSegments(segments);
273
- const tree = toTreeNode(result);
274
- const outlets = collectByType(tree, MockOutletProvider);
275
- // Layout L0 should have the parallel segment
276
- const layoutOutlet = outlets.find((o) => o.props.segment.id === "L0");
277
- expect(layoutOutlet.props.parallel).toHaveLength(1);
278
- expect(layoutOutlet.props.parallel[0].slot).toBe("@sidebar");
279
- // Route should NOT have parallels
280
- const routeOutlet = outlets.find((o) => o.props.segment.id === "L0R0");
281
- expect(routeOutlet.props.parallel).toEqual([]);
282
- });
283
- it("groups multiple parallels under same parent", async () => {
284
- const segments = [
285
- seg({ id: "L0", type: "layout" }),
286
- seg({ id: "L0R0", type: "route" }),
287
- seg({ id: "L0.@sidebar", type: "parallel", slot: "@sidebar" }),
288
- seg({ id: "L0.@modal", type: "parallel", slot: "@modal" }),
289
- ];
290
- const result = await renderSegments(segments);
291
- const tree = toTreeNode(result);
292
- const outlets = collectByType(tree, MockOutletProvider);
293
- const layoutOutlet = outlets.find((o) => o.props.segment.id === "L0");
294
- expect(layoutOutlet.props.parallel).toHaveLength(2);
295
- expect(layoutOutlet.props.parallel.map((p) => p.slot).sort()).toEqual(["@modal", "@sidebar"]);
296
- });
297
- });
298
- describe("loader segment grouping", () => {
299
- it("groups loader segments by parent ID and passes data to OutletProvider", async () => {
300
- const segments = [
301
- seg({ id: "L0", type: "layout" }),
302
- seg({ id: "L0R0", type: "route" }),
303
- seg({
304
- id: "L0D0.products",
305
- type: "loader",
306
- loaderId: "products-loader",
307
- loaderData: { products: ["a", "b"] },
308
- }),
309
- ];
310
- const result = await renderSegments(segments);
311
- const tree = toTreeNode(result);
312
- const outlets = collectByType(tree, MockOutletProvider);
313
- // Layout L0 gets the loader data (parent of "L0D0.products" is "L0")
314
- const layoutOutlet = outlets.find((o) => o.props.segment.id === "L0");
315
- expect(layoutOutlet.props.loaderData).toEqual({
316
- "products-loader": { products: ["a", "b"] },
317
- });
318
- });
319
- it("resolves LoaderDataResult success wrapper", async () => {
320
- const segments = [
321
- seg({ id: "R0", type: "route" }),
322
- seg({
323
- id: "R0D0.data",
324
- type: "loader",
325
- loaderId: "my-loader",
326
- loaderData: {
327
- __loaderResult: true,
328
- ok: true,
329
- data: { value: 42 },
330
- },
331
- }),
332
- ];
333
- const result = await renderSegments(segments);
334
- const tree = toTreeNode(result);
335
- const outlets = collectByType(tree, MockOutletProvider);
336
- // Should unwrap LoaderDataResult to get the inner data
337
- expect(outlets[0].props.loaderData).toEqual({ "my-loader": { value: 42 } });
338
- });
339
- it("renders error fallback for LoaderDataResult with error+fallback", async () => {
340
- const errorFallback = createElement("div", null, "Error occurred");
341
- const segments = [
342
- seg({ id: "R0", type: "route" }),
343
- seg({
344
- id: "R0D0.data",
345
- type: "loader",
346
- loaderId: "my-loader",
347
- loaderData: {
348
- __loaderResult: true,
349
- ok: false,
350
- error: { message: "Failed" },
351
- fallback: errorFallback,
352
- },
353
- }),
354
- ];
355
- const result = await renderSegments(segments);
356
- const tree = toTreeNode(result);
357
- const outlets = collectByType(tree, MockOutletProvider);
358
- // The OutletProvider children should be the error fallback
359
- expect(outlets[0].props.children).toBe(errorFallback);
360
- });
361
- it("throws for LoaderDataResult with error but no fallback", async () => {
362
- const segments = [
363
- seg({ id: "R0", type: "route" }),
364
- seg({
365
- id: "R0D0.data",
366
- type: "loader",
367
- loaderId: "my-loader",
368
- loaderData: {
369
- __loaderResult: true,
370
- ok: false,
371
- error: { message: "Loader failed" },
372
- },
373
- }),
374
- ];
375
- await expect(renderSegments(segments)).rejects.toThrow("Loader failed");
376
- });
377
- });
378
- describe("segment ordering", () => {
379
- it("sorts segments by ID length regardless of input order", async () => {
380
- // Provide in wrong order
381
- const segments = [
382
- seg({ id: "L0L0R0", type: "route" }),
383
- seg({ id: "L0", type: "layout" }),
384
- seg({ id: "L0L0", type: "layout" }),
385
- ];
386
- const result = await renderSegments(segments);
387
- const tree = toTreeNode(result);
388
- const outlets = collectByType(tree, MockOutletProvider);
389
- expect(outlets).toHaveLength(3);
390
- // Outermost is root layout (L0)
391
- expect(outlets[0].props.segment.id).toBe("L0");
392
- });
393
- });
394
- describe("isAction behavior", () => {
395
- it("awaits component promises when isAction is true", async () => {
396
- const resolvedComponent = createElement("div", null, "resolved");
397
- const componentPromise = Promise.resolve(resolvedComponent);
398
- const segments = [
399
- seg({ id: "R0", type: "route", component: componentPromise }),
400
- ];
401
- const result = await renderSegments(segments, { isAction: true });
402
- const tree = toTreeNode(result);
403
- const outlets = collectByType(tree, MockOutletProvider);
404
- // Component should be resolved, not wrapped in RouteContentWrapper
405
- expect(outlets).toHaveLength(1);
406
- expect(collectByType(tree, MockRouteContentWrapper)).toHaveLength(0);
407
- });
408
- it("pre-resolves loader promises when isAction is true", async () => {
409
- const loadingSkeleton = createElement("div", null, "Loading...");
410
- const segments = [
411
- seg({ id: "R0", type: "route", loading: loadingSkeleton }),
412
- seg({
413
- id: "R0D0.data",
414
- type: "loader",
415
- loaderId: "test",
416
- loaderData: Promise.resolve({ count: 5 }),
417
- }),
418
- ];
419
- const result = await renderSegments(segments, { isAction: true });
420
- const tree = toTreeNode(result);
421
- const boundaries = collectByType(tree, MockLoaderBoundary);
422
- expect(boundaries).toHaveLength(1);
423
- // When isAction, the promise should be pre-resolved to an array
424
- expect(Array.isArray(boundaries[0].props.loaderDataPromise)).toBe(true);
425
- });
426
- });
427
- describe("forceAwait behavior", () => {
428
- it("pre-resolves loader promises when forceAwait is true", async () => {
429
- const loadingSkeleton = createElement("div", null, "Loading...");
430
- const segments = [
431
- seg({ id: "R0", type: "route", loading: loadingSkeleton }),
432
- seg({
433
- id: "R0D0.data",
434
- type: "loader",
435
- loaderId: "test",
436
- loaderData: Promise.resolve({ count: 5 }),
437
- }),
438
- ];
439
- const result = await renderSegments(segments, { forceAwait: true });
440
- const tree = toTreeNode(result);
441
- const boundaries = collectByType(tree, MockLoaderBoundary);
442
- expect(boundaries).toHaveLength(1);
443
- expect(Array.isArray(boundaries[0].props.loaderDataPromise)).toBe(true);
444
- });
445
- });
446
- describe("intercept segments", () => {
447
- it("injects intercept parallel segments into parent parallel group", async () => {
448
- const segments = [
449
- seg({ id: "L0", type: "layout" }),
450
- seg({ id: "L0R0", type: "route" }),
451
- ];
452
- const interceptSegments = [
453
- seg({
454
- id: "L0.@modal",
455
- type: "parallel",
456
- slot: "@modal",
457
- }),
458
- ];
459
- const result = await renderSegments(segments, { interceptSegments });
460
- const tree = toTreeNode(result);
461
- const outlets = collectByType(tree, MockOutletProvider);
462
- const layoutOutlet = outlets.find((o) => o.props.segment.id === "L0");
463
- expect(layoutOutlet.props.parallel).toHaveLength(1);
464
- expect(layoutOutlet.props.parallel[0].slot).toBe("@modal");
465
- });
466
- it("injects intercept loader segments into parent loader group", async () => {
467
- const segments = [
468
- seg({ id: "L0", type: "layout" }),
469
- seg({ id: "L0R0", type: "route" }),
470
- ];
471
- const interceptSegments = [
472
- seg({
473
- id: "L0D0.modal-data",
474
- type: "loader",
475
- loaderId: "modal-loader",
476
- loaderData: { modal: true },
477
- }),
478
- ];
479
- const result = await renderSegments(segments, { interceptSegments });
480
- const tree = toTreeNode(result);
481
- const outlets = collectByType(tree, MockOutletProvider);
482
- const layoutOutlet = outlets.find((o) => o.props.segment.id === "L0");
483
- expect(layoutOutlet.props.loaderData).toEqual({
484
- "modal-loader": { modal: true },
485
- });
486
- });
487
- });
488
- describe("rootLayout wrapping", () => {
489
- it("wraps tree with rootLayout when provided", async () => {
490
- const RootLayout = ({ children }) => createElement("div", null, children);
491
- const segments = [
492
- seg({ id: "R0", type: "route" }),
493
- ];
494
- const result = await renderSegments(segments, {
495
- rootLayout: RootLayout,
496
- });
497
- const tree = toTreeNode(result);
498
- // Root should be the RootLayout, not RootErrorBoundary
499
- expect(tree.type).toBe(RootLayout);
500
- // RootErrorBoundary should be inside
501
- const errorBoundary = findFirst(tree, MockRootErrorBoundary);
502
- expect(errorBoundary).not.toBeNull();
503
- });
504
- it("does not wrap with rootLayout when not provided", async () => {
505
- const segments = [
506
- seg({ id: "R0", type: "route" }),
507
- ];
508
- const result = await renderSegments(segments);
509
- const tree = toTreeNode(result);
510
- expect(tree.type).toBe(MockRootErrorBoundary);
511
- });
512
- });
513
- describe("MountContextProvider wrapping", () => {
514
- it("wraps segment with MountContextProvider when mountPath is set", async () => {
515
- const segments = [
516
- seg({ id: "R0", type: "route", mountPath: "/shop" }),
517
- ];
518
- const result = await renderSegments(segments);
519
- const tree = toTreeNode(result);
520
- const mounts = collectByType(tree, MockMountContextProvider);
521
- expect(mounts).toHaveLength(1);
522
- expect(mounts[0].props.value).toBe("/shop");
523
- });
524
- it("does not wrap when mountPath is undefined", async () => {
525
- const segments = [
526
- seg({ id: "R0", type: "route" }),
527
- ];
528
- const result = await renderSegments(segments);
529
- const tree = toTreeNode(result);
530
- const mounts = collectByType(tree, MockMountContextProvider);
531
- expect(mounts).toHaveLength(0);
532
- });
533
- it("wraps all segment types with MountContextProvider", async () => {
534
- const segments = [
535
- seg({ id: "L0", type: "layout", mountPath: "/shop" }),
536
- seg({ id: "L0R0", type: "route", mountPath: "/shop" }),
537
- ];
538
- const result = await renderSegments(segments);
539
- const tree = toTreeNode(result);
540
- const mounts = collectByType(tree, MockMountContextProvider);
541
- expect(mounts).toHaveLength(2);
542
- });
543
- });
544
- describe("error and notFound segments", () => {
545
- it("renders error segments in the tree", async () => {
546
- const segments = [
547
- seg({ id: "L0", type: "layout" }),
548
- seg({
549
- id: "L0E0",
550
- type: "error",
551
- component: createElement("div", null, "Error fallback"),
552
- error: {
553
- name: "Error",
554
- message: "Something broke",
555
- segmentId: "R0",
556
- segmentType: "route",
557
- },
558
- }),
559
- ];
560
- const result = await renderSegments(segments);
561
- const tree = toTreeNode(result);
562
- const outlets = collectByType(tree, MockOutletProvider);
563
- // Should have outlets for both layout and error segment
564
- expect(outlets).toHaveLength(2);
565
- const errorOutlet = outlets.find((o) => o.props.segment.type === "error");
566
- expect(errorOutlet).toBeDefined();
567
- });
568
- it("renders notFound segments in the tree", async () => {
569
- const segments = [
570
- seg({ id: "L0", type: "layout" }),
571
- seg({
572
- id: "L0NF0",
573
- type: "notFound",
574
- component: createElement("div", null, "Not found"),
575
- notFoundInfo: {
576
- message: "Page not found",
577
- segmentId: "R0",
578
- segmentType: "route",
579
- },
580
- }),
581
- ];
582
- const result = await renderSegments(segments);
583
- const tree = toTreeNode(result);
584
- const outlets = collectByType(tree, MockOutletProvider);
585
- expect(outlets).toHaveLength(2);
586
- const notFoundOutlet = outlets.find((o) => o.props.segment.type === "notFound");
587
- expect(notFoundOutlet).toBeDefined();
588
- });
589
- });
590
- describe("empty segments", () => {
591
- it("returns RootErrorBoundary wrapping null for empty segments", async () => {
592
- const result = await renderSegments([]);
593
- const tree = toTreeNode(result);
594
- expect(tree.type).toBe(MockRootErrorBoundary);
595
- });
596
- });
597
- describe("parallel segment loaders", () => {
598
- it("includes loaders from parallel segments in parent loader list", async () => {
599
- const segments = [
600
- seg({ id: "L0", type: "layout" }),
601
- seg({ id: "L0R0", type: "route" }),
602
- seg({
603
- id: "L0.@sidebar",
604
- type: "parallel",
605
- slot: "@sidebar",
606
- }),
607
- seg({
608
- id: "L0.@sidebarD0.data",
609
- type: "loader",
610
- loaderId: "sidebar-loader",
611
- loaderData: { sidebar: true },
612
- }),
613
- ];
614
- const result = await renderSegments(segments);
615
- const tree = toTreeNode(result);
616
- const outlets = collectByType(tree, MockOutletProvider);
617
- // The layout should have sidebar loader data accessible
618
- // (loaders from parallels are merged into parent's loaders)
619
- const layoutOutlet = outlets.find((o) => o.props.segment.id === "L0");
620
- // The sidebar loader is grouped under the parallel "L0.@sidebar"
621
- // which is a child of L0, so it gets included in L0's loaders
622
- expect(layoutOutlet.props.loaderData).toBeDefined();
623
- });
624
- });
625
- });
626
- });
627
- //# sourceMappingURL=segment-system.test.js.map