@rangojs/router 0.0.0-experimental.ae6e7825 → 0.0.0-experimental.bf2846be

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 (908) hide show
  1. package/README.md +76 -18
  2. package/dist/bin/rango.js +130 -47
  3. package/dist/vite/index.js +688 -433
  4. package/package.json +1 -1
  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 +98 -69
  13. package/src/browser/navigation-store.ts +43 -8
  14. package/src/browser/partial-update.ts +32 -5
  15. package/src/browser/prefetch/cache.ts +16 -6
  16. package/src/browser/prefetch/fetch.ts +35 -6
  17. package/src/browser/react/Link.tsx +67 -8
  18. package/src/browser/react/NavigationProvider.tsx +8 -1
  19. package/src/browser/react/context.ts +7 -2
  20. package/src/browser/react/use-handle.ts +9 -58
  21. package/src/browser/react/use-router.ts +21 -8
  22. package/src/browser/rsc-router.tsx +28 -22
  23. package/src/browser/scroll-restoration.ts +10 -8
  24. package/src/browser/segment-reconciler.ts +26 -0
  25. package/src/browser/server-action-bridge.ts +8 -18
  26. package/src/browser/types.ts +21 -15
  27. package/src/build/generate-manifest.ts +6 -6
  28. package/src/build/generate-route-types.ts +3 -0
  29. package/src/build/route-types/include-resolution.ts +8 -1
  30. package/src/build/route-types/router-processing.ts +211 -72
  31. package/src/build/route-types/scan-filter.ts +8 -1
  32. package/src/client.tsx +2 -56
  33. package/src/deps/browser.ts +0 -1
  34. package/src/handle.ts +40 -0
  35. package/src/index.rsc.ts +3 -1
  36. package/src/index.ts +12 -0
  37. package/src/prerender/store.ts +5 -4
  38. package/src/prerender.ts +138 -77
  39. package/src/reverse.ts +22 -1
  40. package/src/route-definition/dsl-helpers.ts +42 -19
  41. package/src/route-definition/helpers-types.ts +4 -1
  42. package/src/route-definition/index.ts +3 -0
  43. package/src/route-definition/redirect.ts +9 -1
  44. package/src/route-definition/resolve-handler-use.ts +149 -0
  45. package/src/route-types.ts +11 -0
  46. package/src/router/content-negotiation.ts +100 -1
  47. package/src/router/handler-context.ts +48 -15
  48. package/src/router/intercept-resolution.ts +9 -4
  49. package/src/router/loader-resolution.ts +150 -21
  50. package/src/router/match-api.ts +124 -189
  51. package/src/router/match-middleware/cache-lookup.ts +26 -7
  52. package/src/router/match-middleware/segment-resolution.ts +53 -0
  53. package/src/router/match-result.ts +82 -4
  54. package/src/router/middleware-types.ts +0 -6
  55. package/src/router/middleware.ts +0 -3
  56. package/src/router/navigation-snapshot.ts +182 -0
  57. package/src/router/prerender-match.ts +110 -10
  58. package/src/router/preview-match.ts +30 -102
  59. package/src/router/request-classification.ts +310 -0
  60. package/src/router/route-snapshot.ts +245 -0
  61. package/src/router/router-interfaces.ts +36 -4
  62. package/src/router/router-options.ts +37 -11
  63. package/src/router/segment-resolution/fresh.ts +70 -5
  64. package/src/router/segment-resolution/revalidation.ts +87 -9
  65. package/src/router.ts +53 -5
  66. package/src/rsc/handler.ts +472 -398
  67. package/src/rsc/loader-fetch.ts +18 -3
  68. package/src/rsc/manifest-init.ts +5 -1
  69. package/src/rsc/progressive-enhancement.ts +12 -3
  70. package/src/rsc/rsc-rendering.ts +8 -3
  71. package/src/rsc/server-action.ts +8 -2
  72. package/src/rsc/ssr-setup.ts +2 -2
  73. package/src/rsc/types.ts +6 -7
  74. package/src/server/context.ts +39 -2
  75. package/src/server/handle-store.ts +19 -0
  76. package/src/server/loader-registry.ts +9 -8
  77. package/src/server/request-context.ts +131 -16
  78. package/src/ssr/index.tsx +4 -13
  79. package/src/static-handler.ts +18 -6
  80. package/src/types/cache-types.ts +4 -4
  81. package/src/types/handler-context.ts +17 -11
  82. package/src/types/loader-types.ts +32 -5
  83. package/src/types/route-entry.ts +1 -1
  84. package/src/types/segments.ts +1 -0
  85. package/src/urls/path-helper-types.ts +9 -2
  86. package/src/urls/path-helper.ts +47 -12
  87. package/src/urls/pattern-types.ts +12 -0
  88. package/src/urls/response-types.ts +16 -6
  89. package/src/use-loader.tsx +77 -5
  90. package/src/vite/discovery/bundle-postprocess.ts +30 -33
  91. package/src/vite/discovery/discover-routers.ts +5 -1
  92. package/src/vite/discovery/prerender-collection.ts +128 -74
  93. package/src/vite/discovery/state.ts +13 -4
  94. package/src/vite/index.ts +4 -0
  95. package/src/vite/plugin-types.ts +60 -5
  96. package/src/vite/plugins/expose-id-utils.ts +12 -0
  97. package/src/vite/plugins/expose-ids/handler-transform.ts +30 -0
  98. package/src/vite/plugins/expose-internal-ids.ts +257 -40
  99. package/src/vite/plugins/performance-tracks.ts +57 -280
  100. package/src/vite/plugins/refresh-cmd.ts +88 -26
  101. package/src/vite/rango.ts +17 -11
  102. package/src/vite/router-discovery.ts +178 -37
  103. package/src/vite/utils/prerender-utils.ts +18 -0
  104. package/src/vite/utils/shared-utils.ts +3 -2
  105. package/dist/__internal.d.ts +0 -83
  106. package/dist/__internal.d.ts.map +0 -1
  107. package/dist/__internal.js +0 -19
  108. package/dist/__internal.js.map +0 -1
  109. package/dist/__mocks__/version.d.ts +0 -7
  110. package/dist/__mocks__/version.d.ts.map +0 -1
  111. package/dist/__mocks__/version.js +0 -7
  112. package/dist/__mocks__/version.js.map +0 -1
  113. package/dist/__tests__/client-href.test.d.ts +0 -2
  114. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  115. package/dist/__tests__/client-href.test.js +0 -74
  116. package/dist/__tests__/client-href.test.js.map +0 -1
  117. package/dist/__tests__/component-utils.test.d.ts +0 -2
  118. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  119. package/dist/__tests__/component-utils.test.js +0 -51
  120. package/dist/__tests__/component-utils.test.js.map +0 -1
  121. package/dist/__tests__/event-controller.test.d.ts +0 -2
  122. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  123. package/dist/__tests__/event-controller.test.js +0 -538
  124. package/dist/__tests__/event-controller.test.js.map +0 -1
  125. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  126. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  127. package/dist/__tests__/helpers/route-tree.js +0 -374
  128. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  129. package/dist/__tests__/match-result.test.d.ts +0 -2
  130. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  131. package/dist/__tests__/match-result.test.js +0 -154
  132. package/dist/__tests__/match-result.test.js.map +0 -1
  133. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  134. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  135. package/dist/__tests__/navigation-store.test.js +0 -440
  136. package/dist/__tests__/navigation-store.test.js.map +0 -1
  137. package/dist/__tests__/partial-update.test.d.ts +0 -2
  138. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  139. package/dist/__tests__/partial-update.test.js +0 -1009
  140. package/dist/__tests__/partial-update.test.js.map +0 -1
  141. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  142. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  143. package/dist/__tests__/reverse-types.test.js +0 -656
  144. package/dist/__tests__/reverse-types.test.js.map +0 -1
  145. package/dist/__tests__/route-definition.test.d.ts +0 -2
  146. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  147. package/dist/__tests__/route-definition.test.js +0 -55
  148. package/dist/__tests__/route-definition.test.js.map +0 -1
  149. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  150. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  151. package/dist/__tests__/router-helpers.test.js +0 -377
  152. package/dist/__tests__/router-helpers.test.js.map +0 -1
  153. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  154. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  155. package/dist/__tests__/router-integration-2.test.js +0 -426
  156. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  157. package/dist/__tests__/router-integration.test.d.ts +0 -2
  158. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  159. package/dist/__tests__/router-integration.test.js +0 -1051
  160. package/dist/__tests__/router-integration.test.js.map +0 -1
  161. package/dist/__tests__/search-params.test.d.ts +0 -5
  162. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  163. package/dist/__tests__/search-params.test.js +0 -306
  164. package/dist/__tests__/search-params.test.js.map +0 -1
  165. package/dist/__tests__/segment-system.test.d.ts +0 -2
  166. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  167. package/dist/__tests__/segment-system.test.js +0 -627
  168. package/dist/__tests__/segment-system.test.js.map +0 -1
  169. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  170. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  171. package/dist/__tests__/static-handler-types.test.js +0 -63
  172. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  173. package/dist/__tests__/urls.test.d.ts +0 -2
  174. package/dist/__tests__/urls.test.d.ts.map +0 -1
  175. package/dist/__tests__/urls.test.js +0 -421
  176. package/dist/__tests__/urls.test.js.map +0 -1
  177. package/dist/__tests__/use-mount.test.d.ts +0 -2
  178. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  179. package/dist/__tests__/use-mount.test.js +0 -35
  180. package/dist/__tests__/use-mount.test.js.map +0 -1
  181. package/dist/bin/rango.d.ts +0 -2
  182. package/dist/bin/rango.d.ts.map +0 -1
  183. package/dist/bin/rango.js.map +0 -1
  184. package/dist/browser/event-controller.d.ts +0 -191
  185. package/dist/browser/event-controller.d.ts.map +0 -1
  186. package/dist/browser/event-controller.js +0 -559
  187. package/dist/browser/event-controller.js.map +0 -1
  188. package/dist/browser/index.d.ts +0 -2
  189. package/dist/browser/index.d.ts.map +0 -1
  190. package/dist/browser/index.js +0 -14
  191. package/dist/browser/index.js.map +0 -1
  192. package/dist/browser/link-interceptor.d.ts +0 -38
  193. package/dist/browser/link-interceptor.d.ts.map +0 -1
  194. package/dist/browser/link-interceptor.js +0 -99
  195. package/dist/browser/link-interceptor.js.map +0 -1
  196. package/dist/browser/logging.d.ts +0 -10
  197. package/dist/browser/logging.d.ts.map +0 -1
  198. package/dist/browser/logging.js +0 -29
  199. package/dist/browser/logging.js.map +0 -1
  200. package/dist/browser/lru-cache.d.ts +0 -17
  201. package/dist/browser/lru-cache.d.ts.map +0 -1
  202. package/dist/browser/lru-cache.js +0 -50
  203. package/dist/browser/lru-cache.js.map +0 -1
  204. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  205. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  206. package/dist/browser/merge-segment-loaders.js +0 -102
  207. package/dist/browser/merge-segment-loaders.js.map +0 -1
  208. package/dist/browser/navigation-bridge.d.ts +0 -102
  209. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  210. package/dist/browser/navigation-bridge.js +0 -708
  211. package/dist/browser/navigation-bridge.js.map +0 -1
  212. package/dist/browser/navigation-client.d.ts +0 -25
  213. package/dist/browser/navigation-client.d.ts.map +0 -1
  214. package/dist/browser/navigation-client.js +0 -157
  215. package/dist/browser/navigation-client.js.map +0 -1
  216. package/dist/browser/navigation-store.d.ts +0 -101
  217. package/dist/browser/navigation-store.d.ts.map +0 -1
  218. package/dist/browser/navigation-store.js +0 -625
  219. package/dist/browser/navigation-store.js.map +0 -1
  220. package/dist/browser/partial-update.d.ts +0 -75
  221. package/dist/browser/partial-update.d.ts.map +0 -1
  222. package/dist/browser/partial-update.js +0 -426
  223. package/dist/browser/partial-update.js.map +0 -1
  224. package/dist/browser/react/Link.d.ts +0 -86
  225. package/dist/browser/react/Link.d.ts.map +0 -1
  226. package/dist/browser/react/Link.js +0 -128
  227. package/dist/browser/react/Link.js.map +0 -1
  228. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  229. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  230. package/dist/browser/react/NavigationProvider.js +0 -216
  231. package/dist/browser/react/NavigationProvider.js.map +0 -1
  232. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  233. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  234. package/dist/browser/react/ScrollRestoration.js +0 -57
  235. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  236. package/dist/browser/react/context.d.ts +0 -46
  237. package/dist/browser/react/context.d.ts.map +0 -1
  238. package/dist/browser/react/context.js +0 -10
  239. package/dist/browser/react/context.js.map +0 -1
  240. package/dist/browser/react/index.d.ts +0 -11
  241. package/dist/browser/react/index.d.ts.map +0 -1
  242. package/dist/browser/react/index.js +0 -22
  243. package/dist/browser/react/index.js.map +0 -1
  244. package/dist/browser/react/location-state-shared.d.ts +0 -63
  245. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  246. package/dist/browser/react/location-state-shared.js +0 -81
  247. package/dist/browser/react/location-state-shared.js.map +0 -1
  248. package/dist/browser/react/location-state.d.ts +0 -23
  249. package/dist/browser/react/location-state.d.ts.map +0 -1
  250. package/dist/browser/react/location-state.js +0 -29
  251. package/dist/browser/react/location-state.js.map +0 -1
  252. package/dist/browser/react/mount-context.d.ts +0 -24
  253. package/dist/browser/react/mount-context.d.ts.map +0 -1
  254. package/dist/browser/react/mount-context.js +0 -24
  255. package/dist/browser/react/mount-context.js.map +0 -1
  256. package/dist/browser/react/use-action.d.ts +0 -64
  257. package/dist/browser/react/use-action.d.ts.map +0 -1
  258. package/dist/browser/react/use-action.js +0 -134
  259. package/dist/browser/react/use-action.js.map +0 -1
  260. package/dist/browser/react/use-client-cache.d.ts +0 -41
  261. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  262. package/dist/browser/react/use-client-cache.js +0 -39
  263. package/dist/browser/react/use-client-cache.js.map +0 -1
  264. package/dist/browser/react/use-handle.d.ts +0 -31
  265. package/dist/browser/react/use-handle.d.ts.map +0 -1
  266. package/dist/browser/react/use-handle.js +0 -144
  267. package/dist/browser/react/use-handle.js.map +0 -1
  268. package/dist/browser/react/use-href.d.ts +0 -33
  269. package/dist/browser/react/use-href.d.ts.map +0 -1
  270. package/dist/browser/react/use-href.js +0 -39
  271. package/dist/browser/react/use-href.js.map +0 -1
  272. package/dist/browser/react/use-link-status.d.ts +0 -37
  273. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  274. package/dist/browser/react/use-link-status.js +0 -99
  275. package/dist/browser/react/use-link-status.js.map +0 -1
  276. package/dist/browser/react/use-mount.d.ts +0 -25
  277. package/dist/browser/react/use-mount.d.ts.map +0 -1
  278. package/dist/browser/react/use-mount.js +0 -30
  279. package/dist/browser/react/use-mount.js.map +0 -1
  280. package/dist/browser/react/use-navigation.d.ts +0 -27
  281. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  282. package/dist/browser/react/use-navigation.js +0 -87
  283. package/dist/browser/react/use-navigation.js.map +0 -1
  284. package/dist/browser/react/use-segments.d.ts +0 -38
  285. package/dist/browser/react/use-segments.d.ts.map +0 -1
  286. package/dist/browser/react/use-segments.js +0 -130
  287. package/dist/browser/react/use-segments.js.map +0 -1
  288. package/dist/browser/request-controller.d.ts +0 -26
  289. package/dist/browser/request-controller.d.ts.map +0 -1
  290. package/dist/browser/request-controller.js +0 -147
  291. package/dist/browser/request-controller.js.map +0 -1
  292. package/dist/browser/rsc-router.d.ts +0 -129
  293. package/dist/browser/rsc-router.d.ts.map +0 -1
  294. package/dist/browser/rsc-router.js +0 -195
  295. package/dist/browser/rsc-router.js.map +0 -1
  296. package/dist/browser/scroll-restoration.d.ts +0 -93
  297. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  298. package/dist/browser/scroll-restoration.js +0 -321
  299. package/dist/browser/scroll-restoration.js.map +0 -1
  300. package/dist/browser/segment-structure-assert.d.ts +0 -17
  301. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  302. package/dist/browser/segment-structure-assert.js +0 -59
  303. package/dist/browser/segment-structure-assert.js.map +0 -1
  304. package/dist/browser/server-action-bridge.d.ts +0 -26
  305. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  306. package/dist/browser/server-action-bridge.js +0 -668
  307. package/dist/browser/server-action-bridge.js.map +0 -1
  308. package/dist/browser/shallow.d.ts +0 -12
  309. package/dist/browser/shallow.d.ts.map +0 -1
  310. package/dist/browser/shallow.js +0 -34
  311. package/dist/browser/shallow.js.map +0 -1
  312. package/dist/browser/types.d.ts +0 -369
  313. package/dist/browser/types.d.ts.map +0 -1
  314. package/dist/browser/types.js +0 -2
  315. package/dist/browser/types.js.map +0 -1
  316. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  317. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  318. package/dist/build/__tests__/generate-cli.test.js +0 -237
  319. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  320. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  321. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  322. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  323. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  324. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  325. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  326. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  327. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  328. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  329. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  330. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  331. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  332. package/dist/build/generate-manifest.d.ts +0 -81
  333. package/dist/build/generate-manifest.d.ts.map +0 -1
  334. package/dist/build/generate-manifest.js +0 -276
  335. package/dist/build/generate-manifest.js.map +0 -1
  336. package/dist/build/generate-route-types.d.ts +0 -115
  337. package/dist/build/generate-route-types.d.ts.map +0 -1
  338. package/dist/build/generate-route-types.js +0 -740
  339. package/dist/build/generate-route-types.js.map +0 -1
  340. package/dist/build/index.d.ts +0 -21
  341. package/dist/build/index.d.ts.map +0 -1
  342. package/dist/build/index.js +0 -21
  343. package/dist/build/index.js.map +0 -1
  344. package/dist/build/route-trie.d.ts +0 -71
  345. package/dist/build/route-trie.d.ts.map +0 -1
  346. package/dist/build/route-trie.js +0 -175
  347. package/dist/build/route-trie.js.map +0 -1
  348. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  349. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  350. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  351. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  352. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  353. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  354. package/dist/cache/__tests__/document-cache.test.js +0 -345
  355. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  356. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  357. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  358. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  359. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  360. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  361. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  362. package/dist/cache/__tests__/memory-store.test.js +0 -367
  363. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  364. package/dist/cache/cache-scope.d.ts +0 -102
  365. package/dist/cache/cache-scope.d.ts.map +0 -1
  366. package/dist/cache/cache-scope.js +0 -440
  367. package/dist/cache/cache-scope.js.map +0 -1
  368. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  369. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  370. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  371. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  372. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  373. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  374. package/dist/cache/cf/cf-cache-store.js +0 -242
  375. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  376. package/dist/cache/cf/index.d.ts +0 -14
  377. package/dist/cache/cf/index.d.ts.map +0 -1
  378. package/dist/cache/cf/index.js +0 -17
  379. package/dist/cache/cf/index.js.map +0 -1
  380. package/dist/cache/document-cache.d.ts +0 -64
  381. package/dist/cache/document-cache.d.ts.map +0 -1
  382. package/dist/cache/document-cache.js +0 -228
  383. package/dist/cache/document-cache.js.map +0 -1
  384. package/dist/cache/index.d.ts +0 -19
  385. package/dist/cache/index.d.ts.map +0 -1
  386. package/dist/cache/index.js +0 -21
  387. package/dist/cache/index.js.map +0 -1
  388. package/dist/cache/memory-segment-store.d.ts +0 -110
  389. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  390. package/dist/cache/memory-segment-store.js +0 -117
  391. package/dist/cache/memory-segment-store.js.map +0 -1
  392. package/dist/cache/memory-store.d.ts +0 -41
  393. package/dist/cache/memory-store.d.ts.map +0 -1
  394. package/dist/cache/memory-store.js +0 -191
  395. package/dist/cache/memory-store.js.map +0 -1
  396. package/dist/cache/types.d.ts +0 -317
  397. package/dist/cache/types.d.ts.map +0 -1
  398. package/dist/cache/types.js +0 -12
  399. package/dist/cache/types.js.map +0 -1
  400. package/dist/client.d.ts +0 -248
  401. package/dist/client.d.ts.map +0 -1
  402. package/dist/client.js +0 -367
  403. package/dist/client.js.map +0 -1
  404. package/dist/client.rsc.d.ts +0 -26
  405. package/dist/client.rsc.d.ts.map +0 -1
  406. package/dist/client.rsc.js +0 -46
  407. package/dist/client.rsc.js.map +0 -1
  408. package/dist/component-utils.d.ts +0 -36
  409. package/dist/component-utils.d.ts.map +0 -1
  410. package/dist/component-utils.js +0 -61
  411. package/dist/component-utils.js.map +0 -1
  412. package/dist/components/DefaultDocument.d.ts +0 -13
  413. package/dist/components/DefaultDocument.d.ts.map +0 -1
  414. package/dist/components/DefaultDocument.js +0 -15
  415. package/dist/components/DefaultDocument.js.map +0 -1
  416. package/dist/debug.d.ts +0 -58
  417. package/dist/debug.d.ts.map +0 -1
  418. package/dist/debug.js +0 -157
  419. package/dist/debug.js.map +0 -1
  420. package/dist/default-error-boundary.d.ts +0 -11
  421. package/dist/default-error-boundary.d.ts.map +0 -1
  422. package/dist/default-error-boundary.js +0 -45
  423. package/dist/default-error-boundary.js.map +0 -1
  424. package/dist/deps/browser.d.ts +0 -2
  425. package/dist/deps/browser.d.ts.map +0 -1
  426. package/dist/deps/browser.js +0 -3
  427. package/dist/deps/browser.js.map +0 -1
  428. package/dist/deps/html-stream-client.d.ts +0 -2
  429. package/dist/deps/html-stream-client.d.ts.map +0 -1
  430. package/dist/deps/html-stream-client.js +0 -3
  431. package/dist/deps/html-stream-client.js.map +0 -1
  432. package/dist/deps/html-stream-server.d.ts +0 -2
  433. package/dist/deps/html-stream-server.d.ts.map +0 -1
  434. package/dist/deps/html-stream-server.js +0 -3
  435. package/dist/deps/html-stream-server.js.map +0 -1
  436. package/dist/deps/rsc.d.ts +0 -2
  437. package/dist/deps/rsc.d.ts.map +0 -1
  438. package/dist/deps/rsc.js +0 -4
  439. package/dist/deps/rsc.js.map +0 -1
  440. package/dist/deps/ssr.d.ts +0 -2
  441. package/dist/deps/ssr.d.ts.map +0 -1
  442. package/dist/deps/ssr.js +0 -3
  443. package/dist/deps/ssr.js.map +0 -1
  444. package/dist/errors.d.ts +0 -174
  445. package/dist/errors.d.ts.map +0 -1
  446. package/dist/errors.js +0 -241
  447. package/dist/errors.js.map +0 -1
  448. package/dist/handle.d.ts +0 -78
  449. package/dist/handle.d.ts.map +0 -1
  450. package/dist/handle.js +0 -82
  451. package/dist/handle.js.map +0 -1
  452. package/dist/handles/MetaTags.d.ts +0 -14
  453. package/dist/handles/MetaTags.d.ts.map +0 -1
  454. package/dist/handles/MetaTags.js +0 -136
  455. package/dist/handles/MetaTags.js.map +0 -1
  456. package/dist/handles/index.d.ts +0 -6
  457. package/dist/handles/index.d.ts.map +0 -1
  458. package/dist/handles/index.js +0 -6
  459. package/dist/handles/index.js.map +0 -1
  460. package/dist/handles/meta.d.ts +0 -39
  461. package/dist/handles/meta.d.ts.map +0 -1
  462. package/dist/handles/meta.js +0 -202
  463. package/dist/handles/meta.js.map +0 -1
  464. package/dist/host/__tests__/errors.test.d.ts +0 -2
  465. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  466. package/dist/host/__tests__/errors.test.js +0 -76
  467. package/dist/host/__tests__/errors.test.js.map +0 -1
  468. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  469. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  470. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  471. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  472. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  473. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  474. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  475. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  476. package/dist/host/__tests__/router.test.d.ts +0 -2
  477. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  478. package/dist/host/__tests__/router.test.js +0 -241
  479. package/dist/host/__tests__/router.test.js.map +0 -1
  480. package/dist/host/__tests__/testing.test.d.ts +0 -2
  481. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  482. package/dist/host/__tests__/testing.test.js +0 -64
  483. package/dist/host/__tests__/testing.test.js.map +0 -1
  484. package/dist/host/__tests__/utils.test.d.ts +0 -2
  485. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  486. package/dist/host/__tests__/utils.test.js +0 -29
  487. package/dist/host/__tests__/utils.test.js.map +0 -1
  488. package/dist/host/cookie-handler.d.ts +0 -34
  489. package/dist/host/cookie-handler.d.ts.map +0 -1
  490. package/dist/host/cookie-handler.js +0 -124
  491. package/dist/host/cookie-handler.js.map +0 -1
  492. package/dist/host/errors.d.ts +0 -56
  493. package/dist/host/errors.d.ts.map +0 -1
  494. package/dist/host/errors.js +0 -79
  495. package/dist/host/errors.js.map +0 -1
  496. package/dist/host/index.d.ts +0 -29
  497. package/dist/host/index.d.ts.map +0 -1
  498. package/dist/host/index.js +0 -32
  499. package/dist/host/index.js.map +0 -1
  500. package/dist/host/pattern-matcher.d.ts +0 -36
  501. package/dist/host/pattern-matcher.d.ts.map +0 -1
  502. package/dist/host/pattern-matcher.js +0 -172
  503. package/dist/host/pattern-matcher.js.map +0 -1
  504. package/dist/host/router.d.ts +0 -26
  505. package/dist/host/router.d.ts.map +0 -1
  506. package/dist/host/router.js +0 -218
  507. package/dist/host/router.js.map +0 -1
  508. package/dist/host/testing.d.ts +0 -36
  509. package/dist/host/testing.d.ts.map +0 -1
  510. package/dist/host/testing.js +0 -55
  511. package/dist/host/testing.js.map +0 -1
  512. package/dist/host/types.d.ts +0 -115
  513. package/dist/host/types.d.ts.map +0 -1
  514. package/dist/host/types.js +0 -7
  515. package/dist/host/types.js.map +0 -1
  516. package/dist/host/utils.d.ts +0 -21
  517. package/dist/host/utils.d.ts.map +0 -1
  518. package/dist/host/utils.js +0 -23
  519. package/dist/host/utils.js.map +0 -1
  520. package/dist/href-client.d.ts +0 -131
  521. package/dist/href-client.d.ts.map +0 -1
  522. package/dist/href-client.js +0 -64
  523. package/dist/href-client.js.map +0 -1
  524. package/dist/href-context.d.ts +0 -29
  525. package/dist/href-context.d.ts.map +0 -1
  526. package/dist/href-context.js +0 -21
  527. package/dist/href-context.js.map +0 -1
  528. package/dist/index.d.ts +0 -73
  529. package/dist/index.d.ts.map +0 -1
  530. package/dist/index.js +0 -91
  531. package/dist/index.js.map +0 -1
  532. package/dist/index.rsc.d.ts +0 -32
  533. package/dist/index.rsc.d.ts.map +0 -1
  534. package/dist/index.rsc.js +0 -40
  535. package/dist/index.rsc.js.map +0 -1
  536. package/dist/internal-debug.d.ts +0 -2
  537. package/dist/internal-debug.d.ts.map +0 -1
  538. package/dist/internal-debug.js +0 -5
  539. package/dist/internal-debug.js.map +0 -1
  540. package/dist/loader.d.ts +0 -14
  541. package/dist/loader.d.ts.map +0 -1
  542. package/dist/loader.js +0 -20
  543. package/dist/loader.js.map +0 -1
  544. package/dist/loader.rsc.d.ts +0 -19
  545. package/dist/loader.rsc.d.ts.map +0 -1
  546. package/dist/loader.rsc.js +0 -99
  547. package/dist/loader.rsc.js.map +0 -1
  548. package/dist/network-error-thrower.d.ts +0 -17
  549. package/dist/network-error-thrower.d.ts.map +0 -1
  550. package/dist/network-error-thrower.js +0 -14
  551. package/dist/network-error-thrower.js.map +0 -1
  552. package/dist/outlet-context.d.ts +0 -13
  553. package/dist/outlet-context.d.ts.map +0 -1
  554. package/dist/outlet-context.js +0 -3
  555. package/dist/outlet-context.js.map +0 -1
  556. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  557. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  558. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  559. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  560. package/dist/prerender/param-hash.d.ts +0 -16
  561. package/dist/prerender/param-hash.d.ts.map +0 -1
  562. package/dist/prerender/param-hash.js +0 -36
  563. package/dist/prerender/param-hash.js.map +0 -1
  564. package/dist/prerender/store.d.ts +0 -38
  565. package/dist/prerender/store.d.ts.map +0 -1
  566. package/dist/prerender/store.js +0 -61
  567. package/dist/prerender/store.js.map +0 -1
  568. package/dist/prerender.d.ts +0 -66
  569. package/dist/prerender.d.ts.map +0 -1
  570. package/dist/prerender.js +0 -57
  571. package/dist/prerender.js.map +0 -1
  572. package/dist/reverse.d.ts +0 -196
  573. package/dist/reverse.d.ts.map +0 -1
  574. package/dist/reverse.js +0 -78
  575. package/dist/reverse.js.map +0 -1
  576. package/dist/root-error-boundary.d.ts +0 -33
  577. package/dist/root-error-boundary.d.ts.map +0 -1
  578. package/dist/root-error-boundary.js +0 -165
  579. package/dist/root-error-boundary.js.map +0 -1
  580. package/dist/route-content-wrapper.d.ts +0 -46
  581. package/dist/route-content-wrapper.d.ts.map +0 -1
  582. package/dist/route-content-wrapper.js +0 -77
  583. package/dist/route-content-wrapper.js.map +0 -1
  584. package/dist/route-definition.d.ts +0 -421
  585. package/dist/route-definition.d.ts.map +0 -1
  586. package/dist/route-definition.js +0 -868
  587. package/dist/route-definition.js.map +0 -1
  588. package/dist/route-map-builder.d.ts +0 -155
  589. package/dist/route-map-builder.d.ts.map +0 -1
  590. package/dist/route-map-builder.js +0 -237
  591. package/dist/route-map-builder.js.map +0 -1
  592. package/dist/route-types.d.ts +0 -165
  593. package/dist/route-types.d.ts.map +0 -1
  594. package/dist/route-types.js +0 -7
  595. package/dist/route-types.js.map +0 -1
  596. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  597. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  598. package/dist/router/__tests__/handler-context.test.js +0 -65
  599. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  600. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  601. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  602. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  603. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  604. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  605. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  606. package/dist/router/__tests__/match-context.test.js +0 -92
  607. package/dist/router/__tests__/match-context.test.js.map +0 -1
  608. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  609. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  610. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  611. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  612. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  613. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  614. package/dist/router/__tests__/match-result.test.js +0 -457
  615. package/dist/router/__tests__/match-result.test.js.map +0 -1
  616. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  617. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  618. package/dist/router/__tests__/on-error.test.js +0 -678
  619. package/dist/router/__tests__/on-error.test.js.map +0 -1
  620. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  621. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  622. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  623. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  624. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  625. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  626. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  627. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  628. package/dist/router/error-handling.d.ts +0 -77
  629. package/dist/router/error-handling.d.ts.map +0 -1
  630. package/dist/router/error-handling.js +0 -202
  631. package/dist/router/error-handling.js.map +0 -1
  632. package/dist/router/handler-context.d.ts +0 -20
  633. package/dist/router/handler-context.d.ts.map +0 -1
  634. package/dist/router/handler-context.js +0 -198
  635. package/dist/router/handler-context.js.map +0 -1
  636. package/dist/router/intercept-resolution.d.ts +0 -66
  637. package/dist/router/intercept-resolution.d.ts.map +0 -1
  638. package/dist/router/intercept-resolution.js +0 -246
  639. package/dist/router/intercept-resolution.js.map +0 -1
  640. package/dist/router/loader-resolution.d.ts +0 -64
  641. package/dist/router/loader-resolution.d.ts.map +0 -1
  642. package/dist/router/loader-resolution.js +0 -284
  643. package/dist/router/loader-resolution.js.map +0 -1
  644. package/dist/router/logging.d.ts +0 -15
  645. package/dist/router/logging.d.ts.map +0 -1
  646. package/dist/router/logging.js +0 -99
  647. package/dist/router/logging.js.map +0 -1
  648. package/dist/router/manifest.d.ts +0 -22
  649. package/dist/router/manifest.d.ts.map +0 -1
  650. package/dist/router/manifest.js +0 -181
  651. package/dist/router/manifest.js.map +0 -1
  652. package/dist/router/match-api.d.ts +0 -35
  653. package/dist/router/match-api.d.ts.map +0 -1
  654. package/dist/router/match-api.js +0 -406
  655. package/dist/router/match-api.js.map +0 -1
  656. package/dist/router/match-context.d.ts +0 -206
  657. package/dist/router/match-context.d.ts.map +0 -1
  658. package/dist/router/match-context.js +0 -17
  659. package/dist/router/match-context.js.map +0 -1
  660. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  661. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  662. package/dist/router/match-middleware/background-revalidation.js +0 -75
  663. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  664. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  665. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  666. package/dist/router/match-middleware/cache-lookup.js +0 -257
  667. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  668. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  669. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  670. package/dist/router/match-middleware/cache-store.js +0 -108
  671. package/dist/router/match-middleware/cache-store.js.map +0 -1
  672. package/dist/router/match-middleware/index.d.ts +0 -81
  673. package/dist/router/match-middleware/index.d.ts.map +0 -1
  674. package/dist/router/match-middleware/index.js +0 -80
  675. package/dist/router/match-middleware/index.js.map +0 -1
  676. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  677. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  678. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  679. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  680. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  681. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  682. package/dist/router/match-middleware/segment-resolution.js +0 -53
  683. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  684. package/dist/router/match-pipelines.d.ts +0 -147
  685. package/dist/router/match-pipelines.d.ts.map +0 -1
  686. package/dist/router/match-pipelines.js +0 -82
  687. package/dist/router/match-pipelines.js.map +0 -1
  688. package/dist/router/match-result.d.ts +0 -126
  689. package/dist/router/match-result.d.ts.map +0 -1
  690. package/dist/router/match-result.js +0 -93
  691. package/dist/router/match-result.js.map +0 -1
  692. package/dist/router/metrics.d.ts +0 -20
  693. package/dist/router/metrics.d.ts.map +0 -1
  694. package/dist/router/metrics.js +0 -47
  695. package/dist/router/metrics.js.map +0 -1
  696. package/dist/router/middleware.d.ts +0 -249
  697. package/dist/router/middleware.d.ts.map +0 -1
  698. package/dist/router/middleware.js +0 -434
  699. package/dist/router/middleware.js.map +0 -1
  700. package/dist/router/middleware.test.d.ts +0 -2
  701. package/dist/router/middleware.test.d.ts.map +0 -1
  702. package/dist/router/middleware.test.js +0 -816
  703. package/dist/router/middleware.test.js.map +0 -1
  704. package/dist/router/pattern-matching.d.ts +0 -149
  705. package/dist/router/pattern-matching.d.ts.map +0 -1
  706. package/dist/router/pattern-matching.js +0 -349
  707. package/dist/router/pattern-matching.js.map +0 -1
  708. package/dist/router/revalidation.d.ts +0 -44
  709. package/dist/router/revalidation.d.ts.map +0 -1
  710. package/dist/router/revalidation.js +0 -147
  711. package/dist/router/revalidation.js.map +0 -1
  712. package/dist/router/router-context.d.ts +0 -135
  713. package/dist/router/router-context.d.ts.map +0 -1
  714. package/dist/router/router-context.js +0 -36
  715. package/dist/router/router-context.js.map +0 -1
  716. package/dist/router/segment-resolution.d.ts +0 -127
  717. package/dist/router/segment-resolution.d.ts.map +0 -1
  718. package/dist/router/segment-resolution.js +0 -919
  719. package/dist/router/segment-resolution.js.map +0 -1
  720. package/dist/router/trie-matching.d.ts +0 -40
  721. package/dist/router/trie-matching.d.ts.map +0 -1
  722. package/dist/router/trie-matching.js +0 -127
  723. package/dist/router/trie-matching.js.map +0 -1
  724. package/dist/router/types.d.ts +0 -136
  725. package/dist/router/types.d.ts.map +0 -1
  726. package/dist/router/types.js +0 -7
  727. package/dist/router/types.js.map +0 -1
  728. package/dist/router.d.ts +0 -753
  729. package/dist/router.d.ts.map +0 -1
  730. package/dist/router.gen.d.ts +0 -6
  731. package/dist/router.gen.d.ts.map +0 -1
  732. package/dist/router.gen.js +0 -6
  733. package/dist/router.gen.js.map +0 -1
  734. package/dist/router.js +0 -1304
  735. package/dist/router.js.map +0 -1
  736. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  737. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  738. package/dist/rsc/__tests__/helpers.test.js +0 -140
  739. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  740. package/dist/rsc/handler.d.ts +0 -45
  741. package/dist/rsc/handler.d.ts.map +0 -1
  742. package/dist/rsc/handler.js +0 -1172
  743. package/dist/rsc/handler.js.map +0 -1
  744. package/dist/rsc/helpers.d.ts +0 -16
  745. package/dist/rsc/helpers.d.ts.map +0 -1
  746. package/dist/rsc/helpers.js +0 -55
  747. package/dist/rsc/helpers.js.map +0 -1
  748. package/dist/rsc/index.d.ts +0 -22
  749. package/dist/rsc/index.d.ts.map +0 -1
  750. package/dist/rsc/index.js +0 -23
  751. package/dist/rsc/index.js.map +0 -1
  752. package/dist/rsc/nonce.d.ts +0 -9
  753. package/dist/rsc/nonce.d.ts.map +0 -1
  754. package/dist/rsc/nonce.js +0 -18
  755. package/dist/rsc/nonce.js.map +0 -1
  756. package/dist/rsc/types.d.ts +0 -206
  757. package/dist/rsc/types.d.ts.map +0 -1
  758. package/dist/rsc/types.js +0 -8
  759. package/dist/rsc/types.js.map +0 -1
  760. package/dist/search-params.d.ts +0 -103
  761. package/dist/search-params.d.ts.map +0 -1
  762. package/dist/search-params.js +0 -74
  763. package/dist/search-params.js.map +0 -1
  764. package/dist/segment-system.d.ts +0 -75
  765. package/dist/segment-system.d.ts.map +0 -1
  766. package/dist/segment-system.js +0 -336
  767. package/dist/segment-system.js.map +0 -1
  768. package/dist/server/context.d.ts +0 -245
  769. package/dist/server/context.d.ts.map +0 -1
  770. package/dist/server/context.js +0 -197
  771. package/dist/server/context.js.map +0 -1
  772. package/dist/server/fetchable-loader-store.d.ts +0 -18
  773. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  774. package/dist/server/fetchable-loader-store.js +0 -18
  775. package/dist/server/fetchable-loader-store.js.map +0 -1
  776. package/dist/server/handle-store.d.ts +0 -85
  777. package/dist/server/handle-store.d.ts.map +0 -1
  778. package/dist/server/handle-store.js +0 -142
  779. package/dist/server/handle-store.js.map +0 -1
  780. package/dist/server/loader-registry.d.ts +0 -55
  781. package/dist/server/loader-registry.d.ts.map +0 -1
  782. package/dist/server/loader-registry.js +0 -132
  783. package/dist/server/loader-registry.js.map +0 -1
  784. package/dist/server/request-context.d.ts +0 -226
  785. package/dist/server/request-context.d.ts.map +0 -1
  786. package/dist/server/request-context.js +0 -290
  787. package/dist/server/request-context.js.map +0 -1
  788. package/dist/server/root-layout.d.ts +0 -4
  789. package/dist/server/root-layout.d.ts.map +0 -1
  790. package/dist/server/root-layout.js +0 -5
  791. package/dist/server/root-layout.js.map +0 -1
  792. package/dist/server.d.ts +0 -15
  793. package/dist/server.d.ts.map +0 -1
  794. package/dist/server.js +0 -20
  795. package/dist/server.js.map +0 -1
  796. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  797. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  798. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  799. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  800. package/dist/ssr/index.d.ts +0 -98
  801. package/dist/ssr/index.d.ts.map +0 -1
  802. package/dist/ssr/index.js +0 -158
  803. package/dist/ssr/index.js.map +0 -1
  804. package/dist/static-handler.d.ts +0 -50
  805. package/dist/static-handler.d.ts.map +0 -1
  806. package/dist/static-handler.gen.d.ts +0 -5
  807. package/dist/static-handler.gen.d.ts.map +0 -1
  808. package/dist/static-handler.gen.js +0 -5
  809. package/dist/static-handler.gen.js.map +0 -1
  810. package/dist/static-handler.js +0 -29
  811. package/dist/static-handler.js.map +0 -1
  812. package/dist/theme/ThemeProvider.d.ts +0 -20
  813. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  814. package/dist/theme/ThemeProvider.js +0 -240
  815. package/dist/theme/ThemeProvider.js.map +0 -1
  816. package/dist/theme/ThemeScript.d.ts +0 -48
  817. package/dist/theme/ThemeScript.d.ts.map +0 -1
  818. package/dist/theme/ThemeScript.js +0 -13
  819. package/dist/theme/ThemeScript.js.map +0 -1
  820. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  821. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  822. package/dist/theme/__tests__/theme.test.js +0 -103
  823. package/dist/theme/__tests__/theme.test.js.map +0 -1
  824. package/dist/theme/constants.d.ts +0 -29
  825. package/dist/theme/constants.d.ts.map +0 -1
  826. package/dist/theme/constants.js +0 -48
  827. package/dist/theme/constants.js.map +0 -1
  828. package/dist/theme/index.d.ts +0 -31
  829. package/dist/theme/index.d.ts.map +0 -1
  830. package/dist/theme/index.js +0 -36
  831. package/dist/theme/index.js.map +0 -1
  832. package/dist/theme/theme-context.d.ts +0 -40
  833. package/dist/theme/theme-context.d.ts.map +0 -1
  834. package/dist/theme/theme-context.js +0 -60
  835. package/dist/theme/theme-context.js.map +0 -1
  836. package/dist/theme/theme-script.d.ts +0 -27
  837. package/dist/theme/theme-script.d.ts.map +0 -1
  838. package/dist/theme/theme-script.js +0 -147
  839. package/dist/theme/theme-script.js.map +0 -1
  840. package/dist/theme/types.d.ts +0 -163
  841. package/dist/theme/types.d.ts.map +0 -1
  842. package/dist/theme/types.js +0 -11
  843. package/dist/theme/types.js.map +0 -1
  844. package/dist/theme/use-theme.d.ts +0 -12
  845. package/dist/theme/use-theme.d.ts.map +0 -1
  846. package/dist/theme/use-theme.js +0 -40
  847. package/dist/theme/use-theme.js.map +0 -1
  848. package/dist/types.d.ts +0 -1479
  849. package/dist/types.d.ts.map +0 -1
  850. package/dist/types.js +0 -10
  851. package/dist/types.js.map +0 -1
  852. package/dist/urls.d.ts +0 -441
  853. package/dist/urls.d.ts.map +0 -1
  854. package/dist/urls.gen.d.ts +0 -8
  855. package/dist/urls.gen.d.ts.map +0 -1
  856. package/dist/urls.gen.js +0 -8
  857. package/dist/urls.gen.js.map +0 -1
  858. package/dist/urls.js +0 -443
  859. package/dist/urls.js.map +0 -1
  860. package/dist/use-loader.d.ts +0 -127
  861. package/dist/use-loader.d.ts.map +0 -1
  862. package/dist/use-loader.js +0 -237
  863. package/dist/use-loader.js.map +0 -1
  864. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  865. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  866. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  867. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  868. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  869. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  870. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  871. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  872. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  873. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  874. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  875. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  876. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  877. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  878. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  879. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  880. package/dist/vite/ast-handler-extract.d.ts +0 -49
  881. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  882. package/dist/vite/ast-handler-extract.js +0 -249
  883. package/dist/vite/ast-handler-extract.js.map +0 -1
  884. package/dist/vite/expose-action-id.d.ts +0 -19
  885. package/dist/vite/expose-action-id.d.ts.map +0 -1
  886. package/dist/vite/expose-action-id.js +0 -250
  887. package/dist/vite/expose-action-id.js.map +0 -1
  888. package/dist/vite/expose-id-utils.d.ts +0 -69
  889. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  890. package/dist/vite/expose-id-utils.js +0 -289
  891. package/dist/vite/expose-id-utils.js.map +0 -1
  892. package/dist/vite/expose-internal-ids.d.ts +0 -22
  893. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  894. package/dist/vite/expose-internal-ids.js +0 -886
  895. package/dist/vite/expose-internal-ids.js.map +0 -1
  896. package/dist/vite/index.d.ts +0 -149
  897. package/dist/vite/index.d.ts.map +0 -1
  898. package/dist/vite/index.js.map +0 -1
  899. package/dist/vite/index.named-routes.gen.ts +0 -103
  900. package/dist/vite/package-resolution.d.ts +0 -43
  901. package/dist/vite/package-resolution.d.ts.map +0 -1
  902. package/dist/vite/package-resolution.js +0 -112
  903. package/dist/vite/package-resolution.js.map +0 -1
  904. package/dist/vite/virtual-entries.d.ts +0 -25
  905. package/dist/vite/virtual-entries.d.ts.map +0 -1
  906. package/dist/vite/virtual-entries.js +0 -110
  907. package/dist/vite/virtual-entries.js.map +0 -1
  908. package/src/browser/debug-channel.ts +0 -112
@@ -1,868 +0,0 @@
1
- import { getContext, getNamePrefix, getUrlPrefix, } from "./server/context";
2
- import { invariant } from "./errors";
3
- import { isStaticHandler } from "./static-handler.js";
4
- import RootLayout from "./server/root-layout";
5
- /**
6
- * Check if a value is a RouteConfig object
7
- */
8
- function isRouteConfig(value) {
9
- return (typeof value === "object" &&
10
- value !== null &&
11
- "path" in value &&
12
- typeof value.path === "string");
13
- }
14
- /**
15
- * Define routes with optional trailing slash configuration
16
- *
17
- * @example
18
- * ```typescript
19
- * // Simple string paths
20
- * const routes = route({
21
- * blog: "/blog",
22
- * post: "/blog/:id",
23
- * });
24
- *
25
- * // With trailing slash config
26
- * const routes = route({
27
- * blog: "/blog",
28
- * api: { path: "/api", trailingSlash: "ignore" },
29
- * }, { trailingSlash: "never" }); // global default
30
- * ```
31
- */
32
- export function route(input, options) {
33
- const trailingSlash = {};
34
- const routes = flattenRoutes(input, "", trailingSlash, options?.trailingSlash);
35
- // Attach trailing slash config as a non-enumerable property
36
- // This keeps backwards compatibility while passing the config through
37
- const result = routes;
38
- if (Object.keys(trailingSlash).length > 0) {
39
- Object.defineProperty(result, "__trailingSlash", {
40
- value: trailingSlash,
41
- enumerable: false,
42
- writable: false,
43
- });
44
- }
45
- return result;
46
- }
47
- /**
48
- * Flatten nested route definitions
49
- */
50
- function flattenRoutes(routes, prefix, trailingSlashConfig, defaultTrailingSlash) {
51
- const flattened = {};
52
- for (const [key, value] of Object.entries(routes)) {
53
- const fullKey = prefix + key;
54
- if (typeof value === "string") {
55
- // Direct route pattern - include prefix
56
- flattened[fullKey] = value;
57
- // Apply default trailing slash if set
58
- if (defaultTrailingSlash) {
59
- trailingSlashConfig[fullKey] = defaultTrailingSlash;
60
- }
61
- }
62
- else if (isRouteConfig(value)) {
63
- // Route config object with path and optional trailingSlash
64
- flattened[fullKey] = value.path;
65
- // Use route-specific config or fall back to default
66
- const mode = value.trailingSlash ?? defaultTrailingSlash;
67
- if (mode) {
68
- trailingSlashConfig[fullKey] = mode;
69
- }
70
- }
71
- else {
72
- // Nested routes - flatten recursively
73
- const nested = flattenRoutes(value, `${fullKey}.`, trailingSlashConfig, defaultTrailingSlash);
74
- Object.assign(flattened, nested);
75
- }
76
- }
77
- return flattened;
78
- }
79
- /**
80
- * Check if an item contains routes (directly or inside nested structures like cache).
81
- * Used to determine if a layout or cache should be treated as an orphan.
82
- */
83
- const hasRoutesInItem = (item) => {
84
- if (item.type === "route")
85
- return true;
86
- // Lazy includes contain deferred routes — treat them as having routes
87
- // to prevent the parent layout from being misclassified as orphan,
88
- // which would clear its parent pointer and break the middleware chain.
89
- if (item.type === "include")
90
- return true;
91
- if (item.type === "cache" && item.uses) {
92
- return item.uses.some((child) => hasRoutesInItem(child));
93
- }
94
- if (item.type === "layout" && item.uses) {
95
- return item.uses.some((child) => hasRoutesInItem(child));
96
- }
97
- return false;
98
- };
99
- const revalidate = (fn) => {
100
- const ctx = getContext().getStore();
101
- if (!ctx)
102
- throw new Error("revalidate() must be called inside map()");
103
- // Attach to last entry in stack
104
- const parent = ctx.parent;
105
- if (!parent || !("revalidate" in parent)) {
106
- invariant(false, "No parent entry available for revalidate()");
107
- }
108
- const name = `$${getContext().getNextIndex("revalidate")}`;
109
- parent.revalidate.push(fn);
110
- return { name, type: "revalidate" };
111
- };
112
- /**
113
- * Error boundary helper - attaches an error fallback to the current entry
114
- *
115
- * When an error occurs during rendering of this segment or its children,
116
- * the fallback will be rendered instead. The fallback can be:
117
- * - A static ReactNode (e.g., <ErrorPage />)
118
- * - A handler function that receives error info and reset function
119
- *
120
- * Error boundaries catch errors from:
121
- * - Middleware execution
122
- * - Loader execution
123
- * - Handler/component rendering
124
- *
125
- * @example
126
- * ```typescript
127
- * layout(<ShopLayout />, () => [
128
- * errorBoundary(<ShopErrorFallback />),
129
- * route("products.detail", ProductDetail),
130
- * ])
131
- *
132
- * // Or with handler for dynamic error UI:
133
- * route("products.detail", ProductDetail, () => [
134
- * errorBoundary(({ error, reset }) => (
135
- * <div>
136
- * <h2>Product failed to load</h2>
137
- * <p>{error.message}</p>
138
- * <button onClick={reset}>Retry</button>
139
- * </div>
140
- * )),
141
- * ])
142
- * ```
143
- */
144
- const errorBoundary = (fallback) => {
145
- const ctx = getContext().getStore();
146
- if (!ctx)
147
- throw new Error("errorBoundary() must be called inside map()");
148
- // Attach to parent entry in stack
149
- const parent = ctx.parent;
150
- if (!parent || !("errorBoundary" in parent)) {
151
- invariant(false, "No parent entry available for errorBoundary()");
152
- }
153
- const name = `$${getContext().getNextIndex("errorBoundary")}`;
154
- parent.errorBoundary.push(fallback);
155
- return { name, type: "errorBoundary" };
156
- };
157
- /**
158
- * NotFound boundary helper - attaches a not-found fallback to the current entry
159
- *
160
- * When a DataNotFoundError is thrown (via notFound()) during rendering of this
161
- * segment or its children, the fallback will be rendered instead. The fallback can be:
162
- * - A static ReactNode (e.g., <ProductNotFound />)
163
- * - A handler function that receives not found info
164
- *
165
- * NotFound boundaries catch DataNotFoundError from:
166
- * - Loader execution
167
- * - Handler/component rendering
168
- *
169
- * @example
170
- * ```typescript
171
- * layout(<ShopLayout />, () => [
172
- * notFoundBoundary(<ProductNotFound />),
173
- * route("products.detail", ProductDetail),
174
- * ])
175
- *
176
- * // Or with handler for dynamic not found UI:
177
- * route("products.detail", ProductDetail, () => [
178
- * notFoundBoundary(({ notFound }) => (
179
- * <div>
180
- * <h2>Product not found</h2>
181
- * <p>{notFound.message}</p>
182
- * <a href="/products">Browse all products</a>
183
- * </div>
184
- * )),
185
- * ])
186
- * ```
187
- */
188
- const notFoundBoundary = (fallback) => {
189
- const ctx = getContext().getStore();
190
- if (!ctx)
191
- throw new Error("notFoundBoundary() must be called inside map()");
192
- // Attach to parent entry in stack
193
- const parent = ctx.parent;
194
- if (!parent || !("notFoundBoundary" in parent)) {
195
- invariant(false, "No parent entry available for notFoundBoundary()");
196
- }
197
- const name = `$${getContext().getNextIndex("notFoundBoundary")}`;
198
- parent.notFoundBoundary.push(fallback);
199
- return { name, type: "notFoundBoundary" };
200
- };
201
- /**
202
- * When helper - defines a condition for intercept activation
203
- *
204
- * Only valid inside intercept() use() callback. The when() function
205
- * is captured by the intercept and stored in its `when` array.
206
- * During soft navigation, all when() conditions must return true
207
- * for the intercept to activate.
208
- */
209
- const when = (fn) => {
210
- const ctx = getContext().getStore();
211
- if (!ctx)
212
- throw new Error("when() must be called inside intercept()");
213
- // The when() function needs to be captured by the intercept's tempParent
214
- // which should have a `when` array. If not present, we're not inside intercept()
215
- const parent = ctx.parent;
216
- if (!parent || !("when" in parent)) {
217
- invariant(false, "when() can only be used inside intercept() use() callback");
218
- }
219
- const name = `$${getContext().getNextIndex("when")}`;
220
- parent.when.push(fn);
221
- return { name, type: "when" };
222
- };
223
- /**
224
- * Cache helper - defines caching configuration for segments
225
- *
226
- * Creates a cache boundary that applies to all children unless overridden.
227
- * When used without children, attaches cache config to the parent entry
228
- * (e.g., for loader-specific caching).
229
- *
230
- * Supports three call signatures:
231
- * - cache() - no args, uses app-level defaults (for loader caching)
232
- * - cache(() => [...]) - wraps children with app-level defaults
233
- * - cache({ ttl: 60 }, () => [...]) - with explicit options
234
- */
235
- const cache = (optionsOrChildren, maybeChildren) => {
236
- const store = getContext();
237
- const ctx = store.getStore();
238
- if (!ctx)
239
- throw new Error("cache() must be called inside map()");
240
- // Handle overloaded signature: cache(), cache(children), or cache(options, children)
241
- let options;
242
- let children;
243
- if (optionsOrChildren === undefined) {
244
- // cache() - no args, use defaults
245
- options = {};
246
- children = undefined;
247
- }
248
- else if (typeof optionsOrChildren === "function") {
249
- // cache(() => [...]) - use empty options (will use defaults)
250
- options = {};
251
- children = optionsOrChildren;
252
- }
253
- else {
254
- // cache(options, children) - explicit options
255
- options = optionsOrChildren;
256
- children = maybeChildren;
257
- }
258
- const name = `$${store.getNextIndex("cache")}`;
259
- const cacheConfig = { options };
260
- // If no children, create an orphan cache entry (like orphan layouts)
261
- // This allows cache() to wrap subsequent siblings
262
- if (!children) {
263
- const parent = ctx.parent;
264
- // Check if we're inside a loader() use() callback - special case for loader caching
265
- if (parent && parent.type === "loader") {
266
- // Direct assignment to loader entry's cache field
267
- parent.cache = cacheConfig;
268
- return { name, type: "cache" };
269
- }
270
- // Create orphan cache entry (like orphan layout)
271
- // Subsequent siblings in the same array will attach to this entry
272
- const namespace = `${ctx.namespace}.${store.getNextIndex("cache")}`;
273
- const cacheUrlPrefix = getUrlPrefix();
274
- const entry = {
275
- id: namespace,
276
- shortCode: store.getShortCode("cache"),
277
- type: "cache",
278
- parent: parent, // link to current parent for hierarchy
279
- cache: cacheConfig,
280
- handler: RootLayout,
281
- middleware: [],
282
- revalidate: [],
283
- errorBoundary: [],
284
- notFoundBoundary: [],
285
- layout: [],
286
- parallel: [],
287
- intercept: [],
288
- loader: [],
289
- ...(cacheUrlPrefix ? { mountPath: cacheUrlPrefix } : {}),
290
- };
291
- // Attach to parent's layout array (cache entries are structural like layouts)
292
- if (parent && "layout" in parent) {
293
- parent.layout.push(entry);
294
- }
295
- // Update context parent so subsequent siblings attach to this cache entry
296
- // This makes cache() act as sugar for cache(() => [...])
297
- ctx.parent = entry;
298
- return { name: namespace, type: "cache" };
299
- }
300
- // With children: create a cache entry (like layout with caching semantics)
301
- const cacheNextIndex = store.getNextIndex("cache");
302
- const namespace = `${ctx.namespace}.${cacheNextIndex}`;
303
- const cacheShortCode = store.getShortCode("cache");
304
- const cacheUrlPrefix2 = getUrlPrefix();
305
- const entry = {
306
- id: namespace,
307
- shortCode: cacheShortCode,
308
- type: "cache",
309
- parent: ctx.parent,
310
- cache: cacheConfig,
311
- // Cache entries render like layouts (with Outlet as default handler)
312
- handler: RootLayout, // RootLayout just renders <Outlet />
313
- middleware: [],
314
- revalidate: [],
315
- errorBoundary: [],
316
- notFoundBoundary: [],
317
- layout: [],
318
- parallel: [],
319
- intercept: [],
320
- loader: [],
321
- ...(cacheUrlPrefix2 ? { mountPath: cacheUrlPrefix2 } : {}),
322
- };
323
- // Run children with cache entry as parent
324
- const result = store.run(namespace, entry, children);
325
- invariant(Array.isArray(result) && result.every((item) => isValidUseItem(item)), `cache() children callback must return an array of use items [${namespace}]`);
326
- // Check if this cache has routes (including nested caches/layouts)
327
- const hasRoutes = result &&
328
- Array.isArray(result) &&
329
- result.some((item) => hasRoutesInItem(item));
330
- if (!hasRoutes) {
331
- const parent = ctx.parent;
332
- if (parent && "layout" in parent) {
333
- // Attach to parent's layout array (cache entries are structural like layouts)
334
- entry.parent = null;
335
- parent.layout.push(entry);
336
- }
337
- }
338
- return { name: namespace, type: "cache", uses: result };
339
- };
340
- const middleware = (...fn) => {
341
- const ctx = getContext().getStore();
342
- if (!ctx)
343
- throw new Error("middleware() must be called inside map()");
344
- // Attach to last entry in stack
345
- const parent = ctx.parent;
346
- if (!parent || !("middleware" in parent)) {
347
- invariant(false, "No parent entry available for middleware()");
348
- }
349
- const name = `$${getContext().getNextIndex("middleware")}`;
350
- parent.middleware.push(...fn);
351
- return { name, type: "middleware" };
352
- };
353
- const parallel = (slots, use) => {
354
- const store = getContext();
355
- const ctx = store.getStore();
356
- if (!ctx)
357
- throw new Error("parallel() must be called inside map()");
358
- if (!ctx.parent || !ctx.parent?.parallel) {
359
- invariant(false, "No parent entry available for parallel()");
360
- }
361
- invariant(ctx.parent.type !== "parallel", "parallel() cannot be nested inside another parallel()");
362
- const namespace = `${ctx.namespace}.$${store.getNextIndex("parallel")}`;
363
- // Unwrap any static handler definitions in parallel slots
364
- const unwrappedSlots = {};
365
- let hasStaticSlot = false;
366
- for (const [slotName, slotHandler] of Object.entries(slots)) {
367
- if (isStaticHandler(slotHandler)) {
368
- hasStaticSlot = true;
369
- unwrappedSlots[slotName] = slotHandler.handler;
370
- }
371
- else {
372
- unwrappedSlots[slotName] = slotHandler;
373
- }
374
- }
375
- // Create full EntryData for parallel with its own loaders/revalidate/loading
376
- const parallelUrlPrefix = getUrlPrefix();
377
- const entry = {
378
- id: namespace,
379
- shortCode: store.getShortCode("parallel"),
380
- type: "parallel",
381
- parent: null, // Parallels don't participate in parent chain traversal
382
- handler: unwrappedSlots,
383
- loading: undefined, // Allow loading() to attach loading state
384
- middleware: [],
385
- revalidate: [],
386
- errorBoundary: [],
387
- notFoundBoundary: [],
388
- layout: [],
389
- parallel: [],
390
- intercept: [],
391
- loader: [],
392
- ...(parallelUrlPrefix ? { mountPath: parallelUrlPrefix } : {}),
393
- ...(hasStaticSlot ? { isStaticPrerender: true } : {}),
394
- };
395
- // Run use callback if provided to collect loaders, revalidate, loading
396
- if (use && typeof use === "function") {
397
- const result = store.run(namespace, entry, use);
398
- invariant(Array.isArray(result) && result.every((item) => isValidUseItem(item)), `parallel() use() callback must return an array of use items [${namespace}]`);
399
- }
400
- ctx.parent.parallel.push(entry);
401
- return { name: namespace, type: "parallel" };
402
- };
403
- /**
404
- * Intercept helper - defines an intercepting route for soft navigation
405
- */
406
- const intercept = (slotName, routeName, handler, use) => {
407
- const store = getContext();
408
- const ctx = store.getStore();
409
- if (!ctx)
410
- throw new Error("intercept() must be called inside map()");
411
- if (!ctx.parent || !ctx.parent?.intercept) {
412
- invariant(false, "No parent entry available for intercept()");
413
- }
414
- invariant(ctx.parent.type !== "parallel", "intercept() cannot be used inside parallel()");
415
- const namespace = `${ctx.namespace}.$${store.getNextIndex("intercept")}.${slotName}`;
416
- // Apply name prefix to routeName (from include())
417
- // This ensures intercepts match prefixed route keys
418
- const namePrefix = getNamePrefix();
419
- const prefixedRouteName = namePrefix ? `${namePrefix}.${routeName}` : routeName;
420
- // Create intercept entry with its own loaders/revalidate/middleware/when
421
- const entry = {
422
- slotName: slotName,
423
- routeName: prefixedRouteName,
424
- handler,
425
- middleware: [],
426
- revalidate: [],
427
- errorBoundary: [],
428
- notFoundBoundary: [],
429
- loader: [],
430
- when: [], // Selector conditions for conditional interception
431
- };
432
- // Run use callback if provided to collect loaders, revalidate, middleware, etc.
433
- if (use && typeof use === "function") {
434
- // Create a temporary parent context for the use() callback
435
- // so that middleware, loader, revalidate attach to the intercept entry
436
- const originalParent = ctx.parent;
437
- // Capture layouts in a temporary array
438
- const capturedLayouts = [];
439
- const tempParent = {
440
- ...originalParent,
441
- middleware: entry.middleware,
442
- revalidate: entry.revalidate,
443
- errorBoundary: entry.errorBoundary,
444
- notFoundBoundary: entry.notFoundBoundary,
445
- loader: entry.loader,
446
- layout: capturedLayouts, // Capture layout() calls
447
- when: entry.when, // Capture when() conditions
448
- // Use getter/setter to capture loading on the entry
449
- get loading() {
450
- return entry.loading;
451
- },
452
- set loading(value) {
453
- entry.loading = value;
454
- },
455
- };
456
- ctx.parent = tempParent;
457
- const result = use();
458
- // Restore original parent
459
- ctx.parent = originalParent;
460
- // Extract layout from captured layouts (use first one if multiple)
461
- // Layout inside intercept should always be ReactNode or Handler, not Record slots
462
- if (capturedLayouts.length > 0 && capturedLayouts[0].type === "layout") {
463
- entry.layout = capturedLayouts[0].handler;
464
- }
465
- invariant(Array.isArray(result) && result.every((item) => isValidUseItem(item)), `intercept() use() callback must return an array of use items [${namespace}]`);
466
- }
467
- ctx.parent.intercept.push(entry);
468
- return { name: namespace, type: "intercept" };
469
- };
470
- /**
471
- * Loader helper - attaches a loader to the current entry
472
- */
473
- const loaderFn = (loaderDef, use) => {
474
- const store = getContext();
475
- const ctx = store.getStore();
476
- if (!ctx)
477
- throw new Error("loader() must be called inside map()");
478
- // Attach to last entry in stack
479
- if (!ctx.parent || !ctx.parent?.loader) {
480
- invariant(false, "No parent entry available for loader()");
481
- }
482
- const name = `${ctx.namespace}.$${store.getNextIndex("loader")}`;
483
- // Create loader entry with empty revalidate array
484
- const loaderEntry = {
485
- loader: loaderDef,
486
- revalidate: [],
487
- };
488
- // If use() callback provided, run it to collect revalidation rules
489
- if (use && typeof use === "function") {
490
- // Temporarily set context for revalidate() calls to target this loader
491
- const originalParent = ctx.parent;
492
- // Create a temporary "parent" that has the revalidate array we want to populate
493
- const tempParent = {
494
- ...originalParent,
495
- revalidate: loaderEntry.revalidate,
496
- };
497
- ctx.parent = tempParent;
498
- const result = use();
499
- // Restore original parent
500
- ctx.parent = originalParent;
501
- invariant(Array.isArray(result) && result.every((item) => isValidUseItem(item)), `loader() use() callback must return an array of use items [${name}]`);
502
- }
503
- ctx.parent.loader.push(loaderEntry);
504
- return { name, type: "loader" };
505
- };
506
- /**
507
- * Loading helper - attaches a loading component to the current entry
508
- * Loading components are static (no context) and shown during navigation
509
- */
510
- const loadingFn = (component, options) => {
511
- const store = getContext();
512
- const ctx = store.getStore();
513
- if (!ctx)
514
- throw new Error("loading() must be called inside map()");
515
- const parent = ctx.parent;
516
- if (!parent || !("loading" in parent)) {
517
- invariant(false, "No parent entry available for loading()");
518
- }
519
- // If ssr: false and we're in SSR, set loading to false
520
- if (options?.ssr === false && ctx.isSSR) {
521
- parent.loading = false;
522
- }
523
- else {
524
- parent.loading = component;
525
- }
526
- const name = `$${store.getNextIndex("loading")}`;
527
- return { name, type: "loading" };
528
- };
529
- const routeFn = (name, handler, use) => {
530
- const store = getContext();
531
- const ctx = store.getStore();
532
- if (!ctx)
533
- throw new Error("route() must be called inside map()");
534
- const namespace = `${ctx.namespace}.${store.getNextIndex("route")}.${name}`;
535
- const entry = {
536
- id: namespace,
537
- shortCode: store.getShortCode("route"),
538
- type: "route",
539
- parent: ctx.parent,
540
- handler,
541
- loading: undefined, // Allow loading() to attach loading state
542
- middleware: [],
543
- revalidate: [],
544
- errorBoundary: [],
545
- notFoundBoundary: [],
546
- layout: [],
547
- parallel: [],
548
- intercept: [],
549
- loader: [],
550
- };
551
- /* We will throw if user is registring same route name twice */
552
- invariant(ctx.manifest.get(name) === undefined, `Duplicate route name: ${name} at ${namespace}`);
553
- /* Register route entry */
554
- ctx.manifest.set(name, entry);
555
- /* Run use and attach handlers */
556
- if (use && typeof use === "function") {
557
- const result = store.run(namespace, entry, use);
558
- invariant(Array.isArray(result) && result.every((item) => isValidUseItem(item)), `route() use() callback must return an array of use items [${namespace}]`);
559
- return { name: namespace, type: "route", uses: result };
560
- }
561
- /* typesafe item */
562
- return { name: namespace, type: "route" };
563
- };
564
- const layout = (handler, use) => {
565
- const store = getContext();
566
- const ctx = store.getStore();
567
- if (!ctx)
568
- throw new Error("layout() must be called inside map()");
569
- invariant(!ctx.parent || ctx.parent.type !== "parallel", "layout() cannot be used inside parallel()");
570
- const isRoot = !ctx.parent || ctx.parent === null;
571
- const nextIndex = isRoot ? "$root" : store.getNextIndex("layout");
572
- const namespace = `${ctx.namespace}.${nextIndex}`;
573
- const shortCode = store.getShortCode("layout");
574
- // Unwrap static handler definition, extract the actual handler function
575
- const isStatic = isStaticHandler(handler);
576
- const unwrappedHandler = isStatic ? handler.handler : handler;
577
- const urlPrefix = getUrlPrefix();
578
- const entry = {
579
- id: namespace,
580
- shortCode,
581
- type: "layout",
582
- parent: ctx.parent,
583
- handler: unwrappedHandler,
584
- loading: undefined, // Allow loading() to attach loading state
585
- middleware: [],
586
- revalidate: [],
587
- errorBoundary: [],
588
- notFoundBoundary: [],
589
- parallel: [],
590
- intercept: [],
591
- layout: [],
592
- loader: [],
593
- ...(urlPrefix ? { mountPath: urlPrefix } : {}),
594
- ...(isStatic ? { isStaticPrerender: true } : {}),
595
- };
596
- // Run use callback if provided
597
- let result;
598
- if (use && typeof use === "function") {
599
- result = store.run(namespace, entry, use);
600
- invariant(Array.isArray(result) && result.every((item) => isValidUseItem(item)), `layout() use() callback must return an array of use items [${namespace}]`);
601
- }
602
- // Check if this is an orphan layout (no routes in children, including nested caches)
603
- const hasRoutes = result &&
604
- Array.isArray(result) &&
605
- result.some((item) => hasRoutesInItem(item));
606
- if (!hasRoutes) {
607
- // Orphan layouts must not contain other layouts as children.
608
- // If we're here, all child layouts are also orphan (if any had routes,
609
- // hasRoutesInItem would have returned true). Nested orphan chains are
610
- // confusing — use sibling orphan layouts instead.
611
- if (result) {
612
- invariant(!result.some((item) => item?.type === "layout"), `orphan layout cannot contain other layouts as children [${namespace}]`);
613
- }
614
- const parent = ctx.parent;
615
- // Allow orphan layouts at root level if they're part of map() builder result
616
- if (!parent || parent === null) {
617
- if (!isRoot) {
618
- invariant(false, `Orphan layout cannot be used at non-root level without parent [${namespace}]`);
619
- }
620
- // Root-level orphan is allowed (e.g., sibling layouts in map() builder)
621
- }
622
- else {
623
- // Has parent - register as orphan layout
624
- invariant(parent.type === "route" ||
625
- parent.type === "layout" ||
626
- parent.type === "cache", `Orphan layouts can only be defined inside route or layout > check [${namespace}]`);
627
- // Clear parent pointer for orphan layouts to prevent duplicate processing
628
- entry.parent = null;
629
- parent.layout.push(entry);
630
- }
631
- }
632
- if (result) {
633
- return { name: namespace, type: "layout", uses: result };
634
- }
635
- return {
636
- name: namespace,
637
- type: "layout",
638
- };
639
- };
640
- const isValidUseItem = (item) => {
641
- return (typeof item === "undefined" ||
642
- item === null ||
643
- (item &&
644
- typeof item === "object" &&
645
- "type" in item &&
646
- [
647
- "layout",
648
- "route",
649
- "middleware",
650
- "revalidate",
651
- "parallel",
652
- "intercept",
653
- "loader",
654
- "loading",
655
- "errorBoundary",
656
- "notFoundBoundary",
657
- "when",
658
- "cache",
659
- "include", // For urls() include() helper
660
- ].includes(item.type)));
661
- };
662
- const isOrphanLayout = (item) => {
663
- return (item.type === "layout" &&
664
- !item.uses?.some((child) => hasRoutesInItem(child)));
665
- };
666
- /*
667
- * Create revalidate helper
668
- */
669
- const createRevalidateHelper = () => {
670
- return revalidate;
671
- };
672
- /**
673
- * Create errorBoundary helper
674
- */
675
- const createErrorBoundaryHelper = () => {
676
- return errorBoundary;
677
- };
678
- /**
679
- * Create notFoundBoundary helper
680
- */
681
- const createNotFoundBoundaryHelper = () => {
682
- return notFoundBoundary;
683
- };
684
- /**
685
- * Create middleware helper
686
- */
687
- const createMiddlewareHelper = () => {
688
- return middleware;
689
- };
690
- /**
691
- * Create parallel helper
692
- */
693
- const createParallelHelper = () => {
694
- return parallel;
695
- };
696
- /**
697
- * Create intercept helper
698
- */
699
- const createInterceptHelper = () => {
700
- return intercept;
701
- };
702
- /**
703
- * Create loader helper
704
- */
705
- const createLoaderHelper = () => {
706
- return loaderFn;
707
- };
708
- /**
709
- * Create loading helper
710
- */
711
- const createLoadingHelper = () => {
712
- return loadingFn;
713
- };
714
- /**
715
- * Create route helper
716
- */
717
- const createRouteHelper = () => {
718
- return routeFn;
719
- };
720
- /**
721
- * Create layout helper
722
- */
723
- const createLayoutHelper = () => {
724
- return layout;
725
- };
726
- /**
727
- * Create when helper for intercept conditions
728
- */
729
- const createWhenHelper = () => {
730
- return when;
731
- };
732
- /**
733
- * Create cache helper for cache configuration
734
- */
735
- const createCacheHelper = () => {
736
- return cache;
737
- };
738
- /**
739
- * Type-safe handler definition helper
740
- *
741
- */
742
- export function map(builder) {
743
- const handler = () => {
744
- // Check if it's a builder function (array-based API)
745
- invariant(typeof builder === "function", "map() expects a builder function as its argument");
746
- // Create helpers
747
- const helpers = {
748
- route: createRouteHelper(),
749
- layout: createLayoutHelper(),
750
- parallel: createParallelHelper(),
751
- intercept: createInterceptHelper(),
752
- middleware: createMiddlewareHelper(),
753
- revalidate: createRevalidateHelper(),
754
- loader: createLoaderHelper(),
755
- loading: createLoadingHelper(),
756
- errorBoundary: createErrorBoundaryHelper(),
757
- notFoundBoundary: createNotFoundBoundaryHelper(),
758
- when: createWhenHelper(),
759
- cache: createCacheHelper(),
760
- };
761
- return [layout(RootLayout, () => builder(helpers))].flat(3);
762
- };
763
- // Cast to RouteHandlers to carry the route type brand
764
- return handler;
765
- }
766
- /**
767
- * Create RouteHelpers for inline route definitions
768
- * Used internally by router.map() for inline handler syntax
769
- */
770
- export function createRouteHelpers() {
771
- return {
772
- route: createRouteHelper(),
773
- layout: createLayoutHelper(),
774
- parallel: createParallelHelper(),
775
- intercept: createInterceptHelper(),
776
- middleware: createMiddlewareHelper(),
777
- revalidate: createRevalidateHelper(),
778
- loader: createLoaderHelper(),
779
- loading: createLoadingHelper(),
780
- errorBoundary: createErrorBoundaryHelper(),
781
- notFoundBoundary: createNotFoundBoundaryHelper(),
782
- when: createWhenHelper(),
783
- cache: createCacheHelper(),
784
- };
785
- }
786
- /**
787
- * Create a loader definition
788
- *
789
- * Loaders are RSC-compatible data fetchers that:
790
- * - Run after middleware, before handlers
791
- * - Are scoped to where attached (layout/route subtree)
792
- * - Revalidate independently from UI segments
793
- * - Are memoized per request (multiple ctx.use() calls return same value)
794
- *
795
- * Use the `"use server"` directive inside the loader function to ensure
796
- * the function is stripped from client bundles.
797
- *
798
- * Return type is automatically inferred from the callback.
799
- *
800
- * @param fn - Async function that fetches data (should contain "use server" directive)
801
- * @param fetchable - Optional flag to make the loader fetchable via useFetchLoader
802
- *
803
- * @example
804
- * ```typescript
805
- * // loaders/cart.ts - return type inferred from callback
806
- * export const CartLoader = createLoader(async (ctx) => {
807
- * "use server";
808
- * const user = ctx.get("user");
809
- * return await db.cart.get(user.id); // Return type inferred!
810
- * });
811
- *
812
- * // loaders/product.ts - return type inferred
813
- * export const ProductLoader = createLoader(async (ctx) => {
814
- * "use server";
815
- * const { slug } = ctx.params;
816
- * return await db.products.findBySlug(slug); // Return type inferred!
817
- * });
818
- *
819
- * // Usage in handlers
820
- * layout(<ShopLayout />, () => [
821
- * loader(CartLoader),
822
- * loader(CartLoader, () => [
823
- * revalidate(({ actionId }) => actionId?.includes("Cart") ?? false),
824
- * ]),
825
- * ])
826
- *
827
- * // Server-side access
828
- * route("cart", (ctx) => {
829
- * const cart = ctx.use(CartLoader);
830
- * return <CartPage cart={cart} />;
831
- * });
832
- *
833
- * // Client-side access
834
- * const cart = useLoader(CartLoader);
835
- * ```
836
- */
837
- // Re-export createLoader from loader.rsc.ts for RSC/server context
838
- export { createLoader } from "./loader.rsc.js";
839
- /**
840
- * Create a soft redirect Response for middleware short-circuit
841
- *
842
- * Returns a Response that signals a client-side navigation to the target URL.
843
- * Unlike Response.redirect() which causes a full page reload, this redirect
844
- * is handled by the router for SPA-style navigation.
845
- *
846
- * @param url - The URL to redirect to
847
- * @param status - HTTP status code (default: 302)
848
- *
849
- * @example
850
- * ```typescript
851
- * middleware((ctx, next) => {
852
- * if (!ctx.get('user')) {
853
- * return redirect('/login');
854
- * }
855
- * next();
856
- * })
857
- * ```
858
- */
859
- export function redirect(url, status = 302) {
860
- return new Response(null, {
861
- status,
862
- headers: {
863
- Location: url,
864
- "X-RSC-Redirect": "soft",
865
- },
866
- });
867
- }
868
- //# sourceMappingURL=route-definition.js.map