@rangojs/router 0.0.0-experimental.9c9afef3 → 0.0.0-experimental.9eb4192e

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