@rangojs/router 0.0.0-experimental.8678bb02 → 0.0.0-experimental.88a3b2f7

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