@rangojs/router 0.0.0-experimental.b9cb8739 → 0.0.0-experimental.c65e9248

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 (845) hide show
  1. package/dist/bin/rango.js +5 -3
  2. package/dist/vite/index.js +133 -197
  3. package/package.json +1 -1
  4. package/skills/caching/SKILL.md +37 -4
  5. package/src/browser/navigation-bridge.ts +1 -3
  6. package/src/browser/navigation-client.ts +70 -24
  7. package/src/browser/navigation-transaction.ts +11 -9
  8. package/src/browser/partial-update.ts +39 -9
  9. package/src/browser/prefetch/cache.ts +54 -2
  10. package/src/browser/prefetch/fetch.ts +22 -12
  11. package/src/browser/prefetch/queue.ts +53 -13
  12. package/src/browser/react/Link.tsx +9 -1
  13. package/src/browser/react/NavigationProvider.tsx +27 -0
  14. package/src/browser/rsc-router.tsx +88 -57
  15. package/src/browser/scroll-restoration.ts +26 -9
  16. package/src/browser/types.ts +9 -0
  17. package/src/build/route-types/router-processing.ts +12 -2
  18. package/src/cache/cache-scope.ts +2 -2
  19. package/src/cache/cf/cf-cache-store.ts +453 -11
  20. package/src/cache/cf/index.ts +5 -1
  21. package/src/cache/index.ts +1 -0
  22. package/src/route-definition/redirect.ts +2 -2
  23. package/src/route-map-builder.ts +7 -1
  24. package/src/router/find-match.ts +4 -2
  25. package/src/router/intercept-resolution.ts +2 -0
  26. package/src/router/lazy-includes.ts +2 -0
  27. package/src/router/logging.ts +4 -1
  28. package/src/router/manifest.ts +3 -1
  29. package/src/router/match-middleware/segment-resolution.ts +1 -0
  30. package/src/router/middleware.ts +2 -1
  31. package/src/router/router-context.ts +5 -1
  32. package/src/router/segment-resolution/revalidation.ts +4 -1
  33. package/src/router/segment-wrappers.ts +2 -0
  34. package/src/router.ts +4 -0
  35. package/src/server/request-context.ts +10 -4
  36. package/src/types/route-entry.ts +7 -0
  37. package/src/vite/discovery/state.ts +0 -2
  38. package/src/vite/plugin-types.ts +0 -83
  39. package/src/vite/plugins/expose-action-id.ts +1 -3
  40. package/src/vite/plugins/version-plugin.ts +4 -1
  41. package/src/vite/rango.ts +144 -209
  42. package/src/vite/router-discovery.ts +0 -8
  43. package/dist/__internal.d.ts +0 -83
  44. package/dist/__internal.d.ts.map +0 -1
  45. package/dist/__internal.js +0 -19
  46. package/dist/__internal.js.map +0 -1
  47. package/dist/__mocks__/version.d.ts +0 -7
  48. package/dist/__mocks__/version.d.ts.map +0 -1
  49. package/dist/__mocks__/version.js +0 -7
  50. package/dist/__mocks__/version.js.map +0 -1
  51. package/dist/__tests__/client-href.test.d.ts +0 -2
  52. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  53. package/dist/__tests__/client-href.test.js +0 -74
  54. package/dist/__tests__/client-href.test.js.map +0 -1
  55. package/dist/__tests__/component-utils.test.d.ts +0 -2
  56. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  57. package/dist/__tests__/component-utils.test.js +0 -51
  58. package/dist/__tests__/component-utils.test.js.map +0 -1
  59. package/dist/__tests__/event-controller.test.d.ts +0 -2
  60. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  61. package/dist/__tests__/event-controller.test.js +0 -538
  62. package/dist/__tests__/event-controller.test.js.map +0 -1
  63. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  64. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  65. package/dist/__tests__/helpers/route-tree.js +0 -374
  66. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  67. package/dist/__tests__/match-result.test.d.ts +0 -2
  68. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  69. package/dist/__tests__/match-result.test.js +0 -154
  70. package/dist/__tests__/match-result.test.js.map +0 -1
  71. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  72. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  73. package/dist/__tests__/navigation-store.test.js +0 -440
  74. package/dist/__tests__/navigation-store.test.js.map +0 -1
  75. package/dist/__tests__/partial-update.test.d.ts +0 -2
  76. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  77. package/dist/__tests__/partial-update.test.js +0 -1009
  78. package/dist/__tests__/partial-update.test.js.map +0 -1
  79. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  80. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  81. package/dist/__tests__/reverse-types.test.js +0 -656
  82. package/dist/__tests__/reverse-types.test.js.map +0 -1
  83. package/dist/__tests__/route-definition.test.d.ts +0 -2
  84. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  85. package/dist/__tests__/route-definition.test.js +0 -55
  86. package/dist/__tests__/route-definition.test.js.map +0 -1
  87. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  88. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  89. package/dist/__tests__/router-helpers.test.js +0 -377
  90. package/dist/__tests__/router-helpers.test.js.map +0 -1
  91. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  92. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  93. package/dist/__tests__/router-integration-2.test.js +0 -426
  94. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  95. package/dist/__tests__/router-integration.test.d.ts +0 -2
  96. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  97. package/dist/__tests__/router-integration.test.js +0 -1051
  98. package/dist/__tests__/router-integration.test.js.map +0 -1
  99. package/dist/__tests__/search-params.test.d.ts +0 -5
  100. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  101. package/dist/__tests__/search-params.test.js +0 -306
  102. package/dist/__tests__/search-params.test.js.map +0 -1
  103. package/dist/__tests__/segment-system.test.d.ts +0 -2
  104. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  105. package/dist/__tests__/segment-system.test.js +0 -627
  106. package/dist/__tests__/segment-system.test.js.map +0 -1
  107. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  108. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  109. package/dist/__tests__/static-handler-types.test.js +0 -63
  110. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  111. package/dist/__tests__/urls.test.d.ts +0 -2
  112. package/dist/__tests__/urls.test.d.ts.map +0 -1
  113. package/dist/__tests__/urls.test.js +0 -421
  114. package/dist/__tests__/urls.test.js.map +0 -1
  115. package/dist/__tests__/use-mount.test.d.ts +0 -2
  116. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  117. package/dist/__tests__/use-mount.test.js +0 -35
  118. package/dist/__tests__/use-mount.test.js.map +0 -1
  119. package/dist/bin/rango.d.ts +0 -2
  120. package/dist/bin/rango.d.ts.map +0 -1
  121. package/dist/bin/rango.js.map +0 -1
  122. package/dist/browser/event-controller.d.ts +0 -191
  123. package/dist/browser/event-controller.d.ts.map +0 -1
  124. package/dist/browser/event-controller.js +0 -559
  125. package/dist/browser/event-controller.js.map +0 -1
  126. package/dist/browser/index.d.ts +0 -2
  127. package/dist/browser/index.d.ts.map +0 -1
  128. package/dist/browser/index.js +0 -14
  129. package/dist/browser/index.js.map +0 -1
  130. package/dist/browser/link-interceptor.d.ts +0 -38
  131. package/dist/browser/link-interceptor.d.ts.map +0 -1
  132. package/dist/browser/link-interceptor.js +0 -99
  133. package/dist/browser/link-interceptor.js.map +0 -1
  134. package/dist/browser/logging.d.ts +0 -10
  135. package/dist/browser/logging.d.ts.map +0 -1
  136. package/dist/browser/logging.js +0 -29
  137. package/dist/browser/logging.js.map +0 -1
  138. package/dist/browser/lru-cache.d.ts +0 -17
  139. package/dist/browser/lru-cache.d.ts.map +0 -1
  140. package/dist/browser/lru-cache.js +0 -50
  141. package/dist/browser/lru-cache.js.map +0 -1
  142. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  143. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  144. package/dist/browser/merge-segment-loaders.js +0 -102
  145. package/dist/browser/merge-segment-loaders.js.map +0 -1
  146. package/dist/browser/navigation-bridge.d.ts +0 -102
  147. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  148. package/dist/browser/navigation-bridge.js +0 -708
  149. package/dist/browser/navigation-bridge.js.map +0 -1
  150. package/dist/browser/navigation-client.d.ts +0 -25
  151. package/dist/browser/navigation-client.d.ts.map +0 -1
  152. package/dist/browser/navigation-client.js +0 -157
  153. package/dist/browser/navigation-client.js.map +0 -1
  154. package/dist/browser/navigation-store.d.ts +0 -101
  155. package/dist/browser/navigation-store.d.ts.map +0 -1
  156. package/dist/browser/navigation-store.js +0 -625
  157. package/dist/browser/navigation-store.js.map +0 -1
  158. package/dist/browser/partial-update.d.ts +0 -75
  159. package/dist/browser/partial-update.d.ts.map +0 -1
  160. package/dist/browser/partial-update.js +0 -426
  161. package/dist/browser/partial-update.js.map +0 -1
  162. package/dist/browser/react/Link.d.ts +0 -86
  163. package/dist/browser/react/Link.d.ts.map +0 -1
  164. package/dist/browser/react/Link.js +0 -128
  165. package/dist/browser/react/Link.js.map +0 -1
  166. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  167. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  168. package/dist/browser/react/NavigationProvider.js +0 -216
  169. package/dist/browser/react/NavigationProvider.js.map +0 -1
  170. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  171. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  172. package/dist/browser/react/ScrollRestoration.js +0 -57
  173. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  174. package/dist/browser/react/context.d.ts +0 -46
  175. package/dist/browser/react/context.d.ts.map +0 -1
  176. package/dist/browser/react/context.js +0 -10
  177. package/dist/browser/react/context.js.map +0 -1
  178. package/dist/browser/react/index.d.ts +0 -11
  179. package/dist/browser/react/index.d.ts.map +0 -1
  180. package/dist/browser/react/index.js +0 -22
  181. package/dist/browser/react/index.js.map +0 -1
  182. package/dist/browser/react/location-state-shared.d.ts +0 -63
  183. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  184. package/dist/browser/react/location-state-shared.js +0 -81
  185. package/dist/browser/react/location-state-shared.js.map +0 -1
  186. package/dist/browser/react/location-state.d.ts +0 -23
  187. package/dist/browser/react/location-state.d.ts.map +0 -1
  188. package/dist/browser/react/location-state.js +0 -29
  189. package/dist/browser/react/location-state.js.map +0 -1
  190. package/dist/browser/react/mount-context.d.ts +0 -24
  191. package/dist/browser/react/mount-context.d.ts.map +0 -1
  192. package/dist/browser/react/mount-context.js +0 -24
  193. package/dist/browser/react/mount-context.js.map +0 -1
  194. package/dist/browser/react/use-action.d.ts +0 -64
  195. package/dist/browser/react/use-action.d.ts.map +0 -1
  196. package/dist/browser/react/use-action.js +0 -134
  197. package/dist/browser/react/use-action.js.map +0 -1
  198. package/dist/browser/react/use-client-cache.d.ts +0 -41
  199. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  200. package/dist/browser/react/use-client-cache.js +0 -39
  201. package/dist/browser/react/use-client-cache.js.map +0 -1
  202. package/dist/browser/react/use-handle.d.ts +0 -31
  203. package/dist/browser/react/use-handle.d.ts.map +0 -1
  204. package/dist/browser/react/use-handle.js +0 -144
  205. package/dist/browser/react/use-handle.js.map +0 -1
  206. package/dist/browser/react/use-href.d.ts +0 -33
  207. package/dist/browser/react/use-href.d.ts.map +0 -1
  208. package/dist/browser/react/use-href.js +0 -39
  209. package/dist/browser/react/use-href.js.map +0 -1
  210. package/dist/browser/react/use-link-status.d.ts +0 -37
  211. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  212. package/dist/browser/react/use-link-status.js +0 -99
  213. package/dist/browser/react/use-link-status.js.map +0 -1
  214. package/dist/browser/react/use-mount.d.ts +0 -25
  215. package/dist/browser/react/use-mount.d.ts.map +0 -1
  216. package/dist/browser/react/use-mount.js +0 -30
  217. package/dist/browser/react/use-mount.js.map +0 -1
  218. package/dist/browser/react/use-navigation.d.ts +0 -27
  219. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  220. package/dist/browser/react/use-navigation.js +0 -87
  221. package/dist/browser/react/use-navigation.js.map +0 -1
  222. package/dist/browser/react/use-segments.d.ts +0 -38
  223. package/dist/browser/react/use-segments.d.ts.map +0 -1
  224. package/dist/browser/react/use-segments.js +0 -130
  225. package/dist/browser/react/use-segments.js.map +0 -1
  226. package/dist/browser/request-controller.d.ts +0 -26
  227. package/dist/browser/request-controller.d.ts.map +0 -1
  228. package/dist/browser/request-controller.js +0 -147
  229. package/dist/browser/request-controller.js.map +0 -1
  230. package/dist/browser/rsc-router.d.ts +0 -129
  231. package/dist/browser/rsc-router.d.ts.map +0 -1
  232. package/dist/browser/rsc-router.js +0 -195
  233. package/dist/browser/rsc-router.js.map +0 -1
  234. package/dist/browser/scroll-restoration.d.ts +0 -93
  235. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  236. package/dist/browser/scroll-restoration.js +0 -321
  237. package/dist/browser/scroll-restoration.js.map +0 -1
  238. package/dist/browser/segment-structure-assert.d.ts +0 -17
  239. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  240. package/dist/browser/segment-structure-assert.js +0 -59
  241. package/dist/browser/segment-structure-assert.js.map +0 -1
  242. package/dist/browser/server-action-bridge.d.ts +0 -26
  243. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  244. package/dist/browser/server-action-bridge.js +0 -668
  245. package/dist/browser/server-action-bridge.js.map +0 -1
  246. package/dist/browser/shallow.d.ts +0 -12
  247. package/dist/browser/shallow.d.ts.map +0 -1
  248. package/dist/browser/shallow.js +0 -34
  249. package/dist/browser/shallow.js.map +0 -1
  250. package/dist/browser/types.d.ts +0 -369
  251. package/dist/browser/types.d.ts.map +0 -1
  252. package/dist/browser/types.js +0 -2
  253. package/dist/browser/types.js.map +0 -1
  254. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  255. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  256. package/dist/build/__tests__/generate-cli.test.js +0 -237
  257. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  258. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  259. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  260. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  261. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  262. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  263. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  264. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  265. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  266. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  267. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  268. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  269. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  270. package/dist/build/generate-manifest.d.ts +0 -81
  271. package/dist/build/generate-manifest.d.ts.map +0 -1
  272. package/dist/build/generate-manifest.js +0 -276
  273. package/dist/build/generate-manifest.js.map +0 -1
  274. package/dist/build/generate-route-types.d.ts +0 -115
  275. package/dist/build/generate-route-types.d.ts.map +0 -1
  276. package/dist/build/generate-route-types.js +0 -740
  277. package/dist/build/generate-route-types.js.map +0 -1
  278. package/dist/build/index.d.ts +0 -21
  279. package/dist/build/index.d.ts.map +0 -1
  280. package/dist/build/index.js +0 -21
  281. package/dist/build/index.js.map +0 -1
  282. package/dist/build/route-trie.d.ts +0 -71
  283. package/dist/build/route-trie.d.ts.map +0 -1
  284. package/dist/build/route-trie.js +0 -175
  285. package/dist/build/route-trie.js.map +0 -1
  286. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  287. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  288. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  289. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  290. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  291. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  292. package/dist/cache/__tests__/document-cache.test.js +0 -345
  293. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  294. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  295. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  296. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  297. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  298. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  299. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  300. package/dist/cache/__tests__/memory-store.test.js +0 -367
  301. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  302. package/dist/cache/cache-scope.d.ts +0 -102
  303. package/dist/cache/cache-scope.d.ts.map +0 -1
  304. package/dist/cache/cache-scope.js +0 -440
  305. package/dist/cache/cache-scope.js.map +0 -1
  306. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  307. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  308. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  309. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  310. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  311. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  312. package/dist/cache/cf/cf-cache-store.js +0 -242
  313. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  314. package/dist/cache/cf/index.d.ts +0 -14
  315. package/dist/cache/cf/index.d.ts.map +0 -1
  316. package/dist/cache/cf/index.js +0 -17
  317. package/dist/cache/cf/index.js.map +0 -1
  318. package/dist/cache/document-cache.d.ts +0 -64
  319. package/dist/cache/document-cache.d.ts.map +0 -1
  320. package/dist/cache/document-cache.js +0 -228
  321. package/dist/cache/document-cache.js.map +0 -1
  322. package/dist/cache/index.d.ts +0 -19
  323. package/dist/cache/index.d.ts.map +0 -1
  324. package/dist/cache/index.js +0 -21
  325. package/dist/cache/index.js.map +0 -1
  326. package/dist/cache/memory-segment-store.d.ts +0 -110
  327. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  328. package/dist/cache/memory-segment-store.js +0 -117
  329. package/dist/cache/memory-segment-store.js.map +0 -1
  330. package/dist/cache/memory-store.d.ts +0 -41
  331. package/dist/cache/memory-store.d.ts.map +0 -1
  332. package/dist/cache/memory-store.js +0 -191
  333. package/dist/cache/memory-store.js.map +0 -1
  334. package/dist/cache/types.d.ts +0 -317
  335. package/dist/cache/types.d.ts.map +0 -1
  336. package/dist/cache/types.js +0 -12
  337. package/dist/cache/types.js.map +0 -1
  338. package/dist/client.d.ts +0 -248
  339. package/dist/client.d.ts.map +0 -1
  340. package/dist/client.js +0 -367
  341. package/dist/client.js.map +0 -1
  342. package/dist/client.rsc.d.ts +0 -26
  343. package/dist/client.rsc.d.ts.map +0 -1
  344. package/dist/client.rsc.js +0 -46
  345. package/dist/client.rsc.js.map +0 -1
  346. package/dist/component-utils.d.ts +0 -36
  347. package/dist/component-utils.d.ts.map +0 -1
  348. package/dist/component-utils.js +0 -61
  349. package/dist/component-utils.js.map +0 -1
  350. package/dist/components/DefaultDocument.d.ts +0 -13
  351. package/dist/components/DefaultDocument.d.ts.map +0 -1
  352. package/dist/components/DefaultDocument.js +0 -15
  353. package/dist/components/DefaultDocument.js.map +0 -1
  354. package/dist/debug.d.ts +0 -58
  355. package/dist/debug.d.ts.map +0 -1
  356. package/dist/debug.js +0 -157
  357. package/dist/debug.js.map +0 -1
  358. package/dist/default-error-boundary.d.ts +0 -11
  359. package/dist/default-error-boundary.d.ts.map +0 -1
  360. package/dist/default-error-boundary.js +0 -45
  361. package/dist/default-error-boundary.js.map +0 -1
  362. package/dist/deps/browser.d.ts +0 -2
  363. package/dist/deps/browser.d.ts.map +0 -1
  364. package/dist/deps/browser.js +0 -3
  365. package/dist/deps/browser.js.map +0 -1
  366. package/dist/deps/html-stream-client.d.ts +0 -2
  367. package/dist/deps/html-stream-client.d.ts.map +0 -1
  368. package/dist/deps/html-stream-client.js +0 -3
  369. package/dist/deps/html-stream-client.js.map +0 -1
  370. package/dist/deps/html-stream-server.d.ts +0 -2
  371. package/dist/deps/html-stream-server.d.ts.map +0 -1
  372. package/dist/deps/html-stream-server.js +0 -3
  373. package/dist/deps/html-stream-server.js.map +0 -1
  374. package/dist/deps/rsc.d.ts +0 -2
  375. package/dist/deps/rsc.d.ts.map +0 -1
  376. package/dist/deps/rsc.js +0 -4
  377. package/dist/deps/rsc.js.map +0 -1
  378. package/dist/deps/ssr.d.ts +0 -2
  379. package/dist/deps/ssr.d.ts.map +0 -1
  380. package/dist/deps/ssr.js +0 -3
  381. package/dist/deps/ssr.js.map +0 -1
  382. package/dist/errors.d.ts +0 -174
  383. package/dist/errors.d.ts.map +0 -1
  384. package/dist/errors.js +0 -241
  385. package/dist/errors.js.map +0 -1
  386. package/dist/handle.d.ts +0 -78
  387. package/dist/handle.d.ts.map +0 -1
  388. package/dist/handle.js +0 -82
  389. package/dist/handle.js.map +0 -1
  390. package/dist/handles/MetaTags.d.ts +0 -14
  391. package/dist/handles/MetaTags.d.ts.map +0 -1
  392. package/dist/handles/MetaTags.js +0 -136
  393. package/dist/handles/MetaTags.js.map +0 -1
  394. package/dist/handles/index.d.ts +0 -6
  395. package/dist/handles/index.d.ts.map +0 -1
  396. package/dist/handles/index.js +0 -6
  397. package/dist/handles/index.js.map +0 -1
  398. package/dist/handles/meta.d.ts +0 -39
  399. package/dist/handles/meta.d.ts.map +0 -1
  400. package/dist/handles/meta.js +0 -202
  401. package/dist/handles/meta.js.map +0 -1
  402. package/dist/host/__tests__/errors.test.d.ts +0 -2
  403. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  404. package/dist/host/__tests__/errors.test.js +0 -76
  405. package/dist/host/__tests__/errors.test.js.map +0 -1
  406. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  407. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  408. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  409. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  410. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  411. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  412. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  413. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  414. package/dist/host/__tests__/router.test.d.ts +0 -2
  415. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  416. package/dist/host/__tests__/router.test.js +0 -241
  417. package/dist/host/__tests__/router.test.js.map +0 -1
  418. package/dist/host/__tests__/testing.test.d.ts +0 -2
  419. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  420. package/dist/host/__tests__/testing.test.js +0 -64
  421. package/dist/host/__tests__/testing.test.js.map +0 -1
  422. package/dist/host/__tests__/utils.test.d.ts +0 -2
  423. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  424. package/dist/host/__tests__/utils.test.js +0 -29
  425. package/dist/host/__tests__/utils.test.js.map +0 -1
  426. package/dist/host/cookie-handler.d.ts +0 -34
  427. package/dist/host/cookie-handler.d.ts.map +0 -1
  428. package/dist/host/cookie-handler.js +0 -124
  429. package/dist/host/cookie-handler.js.map +0 -1
  430. package/dist/host/errors.d.ts +0 -56
  431. package/dist/host/errors.d.ts.map +0 -1
  432. package/dist/host/errors.js +0 -79
  433. package/dist/host/errors.js.map +0 -1
  434. package/dist/host/index.d.ts +0 -29
  435. package/dist/host/index.d.ts.map +0 -1
  436. package/dist/host/index.js +0 -32
  437. package/dist/host/index.js.map +0 -1
  438. package/dist/host/pattern-matcher.d.ts +0 -36
  439. package/dist/host/pattern-matcher.d.ts.map +0 -1
  440. package/dist/host/pattern-matcher.js +0 -172
  441. package/dist/host/pattern-matcher.js.map +0 -1
  442. package/dist/host/router.d.ts +0 -26
  443. package/dist/host/router.d.ts.map +0 -1
  444. package/dist/host/router.js +0 -218
  445. package/dist/host/router.js.map +0 -1
  446. package/dist/host/testing.d.ts +0 -36
  447. package/dist/host/testing.d.ts.map +0 -1
  448. package/dist/host/testing.js +0 -55
  449. package/dist/host/testing.js.map +0 -1
  450. package/dist/host/types.d.ts +0 -115
  451. package/dist/host/types.d.ts.map +0 -1
  452. package/dist/host/types.js +0 -7
  453. package/dist/host/types.js.map +0 -1
  454. package/dist/host/utils.d.ts +0 -21
  455. package/dist/host/utils.d.ts.map +0 -1
  456. package/dist/host/utils.js +0 -23
  457. package/dist/host/utils.js.map +0 -1
  458. package/dist/href-client.d.ts +0 -131
  459. package/dist/href-client.d.ts.map +0 -1
  460. package/dist/href-client.js +0 -64
  461. package/dist/href-client.js.map +0 -1
  462. package/dist/href-context.d.ts +0 -29
  463. package/dist/href-context.d.ts.map +0 -1
  464. package/dist/href-context.js +0 -21
  465. package/dist/href-context.js.map +0 -1
  466. package/dist/index.d.ts +0 -73
  467. package/dist/index.d.ts.map +0 -1
  468. package/dist/index.js +0 -91
  469. package/dist/index.js.map +0 -1
  470. package/dist/index.rsc.d.ts +0 -32
  471. package/dist/index.rsc.d.ts.map +0 -1
  472. package/dist/index.rsc.js +0 -40
  473. package/dist/index.rsc.js.map +0 -1
  474. package/dist/internal-debug.d.ts +0 -2
  475. package/dist/internal-debug.d.ts.map +0 -1
  476. package/dist/internal-debug.js +0 -5
  477. package/dist/internal-debug.js.map +0 -1
  478. package/dist/loader.d.ts +0 -14
  479. package/dist/loader.d.ts.map +0 -1
  480. package/dist/loader.js +0 -20
  481. package/dist/loader.js.map +0 -1
  482. package/dist/loader.rsc.d.ts +0 -19
  483. package/dist/loader.rsc.d.ts.map +0 -1
  484. package/dist/loader.rsc.js +0 -99
  485. package/dist/loader.rsc.js.map +0 -1
  486. package/dist/network-error-thrower.d.ts +0 -17
  487. package/dist/network-error-thrower.d.ts.map +0 -1
  488. package/dist/network-error-thrower.js +0 -14
  489. package/dist/network-error-thrower.js.map +0 -1
  490. package/dist/outlet-context.d.ts +0 -13
  491. package/dist/outlet-context.d.ts.map +0 -1
  492. package/dist/outlet-context.js +0 -3
  493. package/dist/outlet-context.js.map +0 -1
  494. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  495. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  496. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  497. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  498. package/dist/prerender/param-hash.d.ts +0 -16
  499. package/dist/prerender/param-hash.d.ts.map +0 -1
  500. package/dist/prerender/param-hash.js +0 -36
  501. package/dist/prerender/param-hash.js.map +0 -1
  502. package/dist/prerender/store.d.ts +0 -38
  503. package/dist/prerender/store.d.ts.map +0 -1
  504. package/dist/prerender/store.js +0 -61
  505. package/dist/prerender/store.js.map +0 -1
  506. package/dist/prerender.d.ts +0 -66
  507. package/dist/prerender.d.ts.map +0 -1
  508. package/dist/prerender.js +0 -57
  509. package/dist/prerender.js.map +0 -1
  510. package/dist/reverse.d.ts +0 -196
  511. package/dist/reverse.d.ts.map +0 -1
  512. package/dist/reverse.js +0 -78
  513. package/dist/reverse.js.map +0 -1
  514. package/dist/root-error-boundary.d.ts +0 -33
  515. package/dist/root-error-boundary.d.ts.map +0 -1
  516. package/dist/root-error-boundary.js +0 -165
  517. package/dist/root-error-boundary.js.map +0 -1
  518. package/dist/route-content-wrapper.d.ts +0 -46
  519. package/dist/route-content-wrapper.d.ts.map +0 -1
  520. package/dist/route-content-wrapper.js +0 -77
  521. package/dist/route-content-wrapper.js.map +0 -1
  522. package/dist/route-definition.d.ts +0 -421
  523. package/dist/route-definition.d.ts.map +0 -1
  524. package/dist/route-definition.js +0 -868
  525. package/dist/route-definition.js.map +0 -1
  526. package/dist/route-map-builder.d.ts +0 -155
  527. package/dist/route-map-builder.d.ts.map +0 -1
  528. package/dist/route-map-builder.js +0 -237
  529. package/dist/route-map-builder.js.map +0 -1
  530. package/dist/route-types.d.ts +0 -165
  531. package/dist/route-types.d.ts.map +0 -1
  532. package/dist/route-types.js +0 -7
  533. package/dist/route-types.js.map +0 -1
  534. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  535. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  536. package/dist/router/__tests__/handler-context.test.js +0 -65
  537. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  538. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  539. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  540. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  541. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  542. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  543. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  544. package/dist/router/__tests__/match-context.test.js +0 -92
  545. package/dist/router/__tests__/match-context.test.js.map +0 -1
  546. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  547. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  548. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  549. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  550. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  551. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  552. package/dist/router/__tests__/match-result.test.js +0 -457
  553. package/dist/router/__tests__/match-result.test.js.map +0 -1
  554. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  555. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  556. package/dist/router/__tests__/on-error.test.js +0 -678
  557. package/dist/router/__tests__/on-error.test.js.map +0 -1
  558. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  559. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  560. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  561. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  562. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  563. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  564. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  565. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  566. package/dist/router/error-handling.d.ts +0 -77
  567. package/dist/router/error-handling.d.ts.map +0 -1
  568. package/dist/router/error-handling.js +0 -202
  569. package/dist/router/error-handling.js.map +0 -1
  570. package/dist/router/handler-context.d.ts +0 -20
  571. package/dist/router/handler-context.d.ts.map +0 -1
  572. package/dist/router/handler-context.js +0 -198
  573. package/dist/router/handler-context.js.map +0 -1
  574. package/dist/router/intercept-resolution.d.ts +0 -66
  575. package/dist/router/intercept-resolution.d.ts.map +0 -1
  576. package/dist/router/intercept-resolution.js +0 -246
  577. package/dist/router/intercept-resolution.js.map +0 -1
  578. package/dist/router/loader-resolution.d.ts +0 -64
  579. package/dist/router/loader-resolution.d.ts.map +0 -1
  580. package/dist/router/loader-resolution.js +0 -284
  581. package/dist/router/loader-resolution.js.map +0 -1
  582. package/dist/router/logging.d.ts +0 -15
  583. package/dist/router/logging.d.ts.map +0 -1
  584. package/dist/router/logging.js +0 -99
  585. package/dist/router/logging.js.map +0 -1
  586. package/dist/router/manifest.d.ts +0 -22
  587. package/dist/router/manifest.d.ts.map +0 -1
  588. package/dist/router/manifest.js +0 -181
  589. package/dist/router/manifest.js.map +0 -1
  590. package/dist/router/match-api.d.ts +0 -35
  591. package/dist/router/match-api.d.ts.map +0 -1
  592. package/dist/router/match-api.js +0 -406
  593. package/dist/router/match-api.js.map +0 -1
  594. package/dist/router/match-context.d.ts +0 -206
  595. package/dist/router/match-context.d.ts.map +0 -1
  596. package/dist/router/match-context.js +0 -17
  597. package/dist/router/match-context.js.map +0 -1
  598. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  599. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  600. package/dist/router/match-middleware/background-revalidation.js +0 -75
  601. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  602. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  603. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  604. package/dist/router/match-middleware/cache-lookup.js +0 -257
  605. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  606. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  607. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  608. package/dist/router/match-middleware/cache-store.js +0 -108
  609. package/dist/router/match-middleware/cache-store.js.map +0 -1
  610. package/dist/router/match-middleware/index.d.ts +0 -81
  611. package/dist/router/match-middleware/index.d.ts.map +0 -1
  612. package/dist/router/match-middleware/index.js +0 -80
  613. package/dist/router/match-middleware/index.js.map +0 -1
  614. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  615. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  616. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  617. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  618. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  619. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  620. package/dist/router/match-middleware/segment-resolution.js +0 -53
  621. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  622. package/dist/router/match-pipelines.d.ts +0 -147
  623. package/dist/router/match-pipelines.d.ts.map +0 -1
  624. package/dist/router/match-pipelines.js +0 -82
  625. package/dist/router/match-pipelines.js.map +0 -1
  626. package/dist/router/match-result.d.ts +0 -126
  627. package/dist/router/match-result.d.ts.map +0 -1
  628. package/dist/router/match-result.js +0 -93
  629. package/dist/router/match-result.js.map +0 -1
  630. package/dist/router/metrics.d.ts +0 -20
  631. package/dist/router/metrics.d.ts.map +0 -1
  632. package/dist/router/metrics.js +0 -47
  633. package/dist/router/metrics.js.map +0 -1
  634. package/dist/router/middleware.d.ts +0 -249
  635. package/dist/router/middleware.d.ts.map +0 -1
  636. package/dist/router/middleware.js +0 -434
  637. package/dist/router/middleware.js.map +0 -1
  638. package/dist/router/middleware.test.d.ts +0 -2
  639. package/dist/router/middleware.test.d.ts.map +0 -1
  640. package/dist/router/middleware.test.js +0 -816
  641. package/dist/router/middleware.test.js.map +0 -1
  642. package/dist/router/pattern-matching.d.ts +0 -149
  643. package/dist/router/pattern-matching.d.ts.map +0 -1
  644. package/dist/router/pattern-matching.js +0 -349
  645. package/dist/router/pattern-matching.js.map +0 -1
  646. package/dist/router/revalidation.d.ts +0 -44
  647. package/dist/router/revalidation.d.ts.map +0 -1
  648. package/dist/router/revalidation.js +0 -147
  649. package/dist/router/revalidation.js.map +0 -1
  650. package/dist/router/router-context.d.ts +0 -135
  651. package/dist/router/router-context.d.ts.map +0 -1
  652. package/dist/router/router-context.js +0 -36
  653. package/dist/router/router-context.js.map +0 -1
  654. package/dist/router/segment-resolution.d.ts +0 -127
  655. package/dist/router/segment-resolution.d.ts.map +0 -1
  656. package/dist/router/segment-resolution.js +0 -919
  657. package/dist/router/segment-resolution.js.map +0 -1
  658. package/dist/router/trie-matching.d.ts +0 -40
  659. package/dist/router/trie-matching.d.ts.map +0 -1
  660. package/dist/router/trie-matching.js +0 -127
  661. package/dist/router/trie-matching.js.map +0 -1
  662. package/dist/router/types.d.ts +0 -136
  663. package/dist/router/types.d.ts.map +0 -1
  664. package/dist/router/types.js +0 -7
  665. package/dist/router/types.js.map +0 -1
  666. package/dist/router.d.ts +0 -753
  667. package/dist/router.d.ts.map +0 -1
  668. package/dist/router.gen.d.ts +0 -6
  669. package/dist/router.gen.d.ts.map +0 -1
  670. package/dist/router.gen.js +0 -6
  671. package/dist/router.gen.js.map +0 -1
  672. package/dist/router.js +0 -1304
  673. package/dist/router.js.map +0 -1
  674. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  675. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  676. package/dist/rsc/__tests__/helpers.test.js +0 -140
  677. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  678. package/dist/rsc/handler.d.ts +0 -45
  679. package/dist/rsc/handler.d.ts.map +0 -1
  680. package/dist/rsc/handler.js +0 -1172
  681. package/dist/rsc/handler.js.map +0 -1
  682. package/dist/rsc/helpers.d.ts +0 -16
  683. package/dist/rsc/helpers.d.ts.map +0 -1
  684. package/dist/rsc/helpers.js +0 -55
  685. package/dist/rsc/helpers.js.map +0 -1
  686. package/dist/rsc/index.d.ts +0 -22
  687. package/dist/rsc/index.d.ts.map +0 -1
  688. package/dist/rsc/index.js +0 -23
  689. package/dist/rsc/index.js.map +0 -1
  690. package/dist/rsc/nonce.d.ts +0 -9
  691. package/dist/rsc/nonce.d.ts.map +0 -1
  692. package/dist/rsc/nonce.js +0 -18
  693. package/dist/rsc/nonce.js.map +0 -1
  694. package/dist/rsc/types.d.ts +0 -206
  695. package/dist/rsc/types.d.ts.map +0 -1
  696. package/dist/rsc/types.js +0 -8
  697. package/dist/rsc/types.js.map +0 -1
  698. package/dist/search-params.d.ts +0 -103
  699. package/dist/search-params.d.ts.map +0 -1
  700. package/dist/search-params.js +0 -74
  701. package/dist/search-params.js.map +0 -1
  702. package/dist/segment-system.d.ts +0 -75
  703. package/dist/segment-system.d.ts.map +0 -1
  704. package/dist/segment-system.js +0 -336
  705. package/dist/segment-system.js.map +0 -1
  706. package/dist/server/context.d.ts +0 -245
  707. package/dist/server/context.d.ts.map +0 -1
  708. package/dist/server/context.js +0 -197
  709. package/dist/server/context.js.map +0 -1
  710. package/dist/server/fetchable-loader-store.d.ts +0 -18
  711. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  712. package/dist/server/fetchable-loader-store.js +0 -18
  713. package/dist/server/fetchable-loader-store.js.map +0 -1
  714. package/dist/server/handle-store.d.ts +0 -85
  715. package/dist/server/handle-store.d.ts.map +0 -1
  716. package/dist/server/handle-store.js +0 -142
  717. package/dist/server/handle-store.js.map +0 -1
  718. package/dist/server/loader-registry.d.ts +0 -55
  719. package/dist/server/loader-registry.d.ts.map +0 -1
  720. package/dist/server/loader-registry.js +0 -132
  721. package/dist/server/loader-registry.js.map +0 -1
  722. package/dist/server/request-context.d.ts +0 -226
  723. package/dist/server/request-context.d.ts.map +0 -1
  724. package/dist/server/request-context.js +0 -290
  725. package/dist/server/request-context.js.map +0 -1
  726. package/dist/server/root-layout.d.ts +0 -4
  727. package/dist/server/root-layout.d.ts.map +0 -1
  728. package/dist/server/root-layout.js +0 -5
  729. package/dist/server/root-layout.js.map +0 -1
  730. package/dist/server.d.ts +0 -15
  731. package/dist/server.d.ts.map +0 -1
  732. package/dist/server.js +0 -20
  733. package/dist/server.js.map +0 -1
  734. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  735. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  736. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  737. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  738. package/dist/ssr/index.d.ts +0 -98
  739. package/dist/ssr/index.d.ts.map +0 -1
  740. package/dist/ssr/index.js +0 -158
  741. package/dist/ssr/index.js.map +0 -1
  742. package/dist/static-handler.d.ts +0 -50
  743. package/dist/static-handler.d.ts.map +0 -1
  744. package/dist/static-handler.gen.d.ts +0 -5
  745. package/dist/static-handler.gen.d.ts.map +0 -1
  746. package/dist/static-handler.gen.js +0 -5
  747. package/dist/static-handler.gen.js.map +0 -1
  748. package/dist/static-handler.js +0 -29
  749. package/dist/static-handler.js.map +0 -1
  750. package/dist/theme/ThemeProvider.d.ts +0 -20
  751. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  752. package/dist/theme/ThemeProvider.js +0 -240
  753. package/dist/theme/ThemeProvider.js.map +0 -1
  754. package/dist/theme/ThemeScript.d.ts +0 -48
  755. package/dist/theme/ThemeScript.d.ts.map +0 -1
  756. package/dist/theme/ThemeScript.js +0 -13
  757. package/dist/theme/ThemeScript.js.map +0 -1
  758. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  759. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  760. package/dist/theme/__tests__/theme.test.js +0 -103
  761. package/dist/theme/__tests__/theme.test.js.map +0 -1
  762. package/dist/theme/constants.d.ts +0 -29
  763. package/dist/theme/constants.d.ts.map +0 -1
  764. package/dist/theme/constants.js +0 -48
  765. package/dist/theme/constants.js.map +0 -1
  766. package/dist/theme/index.d.ts +0 -31
  767. package/dist/theme/index.d.ts.map +0 -1
  768. package/dist/theme/index.js +0 -36
  769. package/dist/theme/index.js.map +0 -1
  770. package/dist/theme/theme-context.d.ts +0 -40
  771. package/dist/theme/theme-context.d.ts.map +0 -1
  772. package/dist/theme/theme-context.js +0 -60
  773. package/dist/theme/theme-context.js.map +0 -1
  774. package/dist/theme/theme-script.d.ts +0 -27
  775. package/dist/theme/theme-script.d.ts.map +0 -1
  776. package/dist/theme/theme-script.js +0 -147
  777. package/dist/theme/theme-script.js.map +0 -1
  778. package/dist/theme/types.d.ts +0 -163
  779. package/dist/theme/types.d.ts.map +0 -1
  780. package/dist/theme/types.js +0 -11
  781. package/dist/theme/types.js.map +0 -1
  782. package/dist/theme/use-theme.d.ts +0 -12
  783. package/dist/theme/use-theme.d.ts.map +0 -1
  784. package/dist/theme/use-theme.js +0 -40
  785. package/dist/theme/use-theme.js.map +0 -1
  786. package/dist/types.d.ts +0 -1479
  787. package/dist/types.d.ts.map +0 -1
  788. package/dist/types.js +0 -10
  789. package/dist/types.js.map +0 -1
  790. package/dist/urls.d.ts +0 -441
  791. package/dist/urls.d.ts.map +0 -1
  792. package/dist/urls.gen.d.ts +0 -8
  793. package/dist/urls.gen.d.ts.map +0 -1
  794. package/dist/urls.gen.js +0 -8
  795. package/dist/urls.gen.js.map +0 -1
  796. package/dist/urls.js +0 -443
  797. package/dist/urls.js.map +0 -1
  798. package/dist/use-loader.d.ts +0 -127
  799. package/dist/use-loader.d.ts.map +0 -1
  800. package/dist/use-loader.js +0 -237
  801. package/dist/use-loader.js.map +0 -1
  802. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  803. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  804. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  805. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  806. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  807. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  808. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  809. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  810. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  811. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  812. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  813. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  814. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  815. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  816. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  817. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  818. package/dist/vite/ast-handler-extract.d.ts +0 -49
  819. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  820. package/dist/vite/ast-handler-extract.js +0 -249
  821. package/dist/vite/ast-handler-extract.js.map +0 -1
  822. package/dist/vite/expose-action-id.d.ts +0 -19
  823. package/dist/vite/expose-action-id.d.ts.map +0 -1
  824. package/dist/vite/expose-action-id.js +0 -250
  825. package/dist/vite/expose-action-id.js.map +0 -1
  826. package/dist/vite/expose-id-utils.d.ts +0 -69
  827. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  828. package/dist/vite/expose-id-utils.js +0 -289
  829. package/dist/vite/expose-id-utils.js.map +0 -1
  830. package/dist/vite/expose-internal-ids.d.ts +0 -22
  831. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  832. package/dist/vite/expose-internal-ids.js +0 -886
  833. package/dist/vite/expose-internal-ids.js.map +0 -1
  834. package/dist/vite/index.d.ts +0 -149
  835. package/dist/vite/index.d.ts.map +0 -1
  836. package/dist/vite/index.js.map +0 -1
  837. package/dist/vite/index.named-routes.gen.ts +0 -103
  838. package/dist/vite/package-resolution.d.ts +0 -43
  839. package/dist/vite/package-resolution.d.ts.map +0 -1
  840. package/dist/vite/package-resolution.js +0 -112
  841. package/dist/vite/package-resolution.js.map +0 -1
  842. package/dist/vite/virtual-entries.d.ts +0 -25
  843. package/dist/vite/virtual-entries.d.ts.map +0 -1
  844. package/dist/vite/virtual-entries.js +0 -110
  845. package/dist/vite/virtual-entries.js.map +0 -1
@@ -1,678 +0,0 @@
1
- import { describe, it, expect, vi } from "vitest";
2
- import { wrapLoaderWithErrorHandling } from "../loader-resolution";
3
- import { invokeOnError } from "../error-handling";
4
- describe("OnError Types", () => {
5
- describe("OnErrorContext", () => {
6
- it("should have all required properties", () => {
7
- const context = {
8
- error: new Error("Test error"),
9
- phase: "routing",
10
- request: new Request("https://example.com/test"),
11
- url: new URL("https://example.com/test"),
12
- pathname: "/test",
13
- method: "GET",
14
- };
15
- expect(context.error).toBeInstanceOf(Error);
16
- expect(context.phase).toBe("routing");
17
- expect(context.request).toBeInstanceOf(Request);
18
- expect(context.url).toBeInstanceOf(URL);
19
- expect(context.pathname).toBe("/test");
20
- expect(context.method).toBe("GET");
21
- });
22
- it("should support optional properties", () => {
23
- const context = {
24
- error: new Error("Test error"),
25
- phase: "loader",
26
- request: new Request("https://example.com/products/123"),
27
- url: new URL("https://example.com/products/123"),
28
- pathname: "/products/123",
29
- method: "GET",
30
- routeKey: "products.detail",
31
- params: { id: "123" },
32
- segmentId: "M1L0R0",
33
- segmentType: "loader",
34
- loaderName: "ProductLoader",
35
- duration: 150.5,
36
- isPartial: true,
37
- handledByBoundary: true,
38
- stack: "Error: Test error\n at ...",
39
- metadata: { custom: "data" },
40
- };
41
- expect(context.routeKey).toBe("products.detail");
42
- expect(context.params).toEqual({ id: "123" });
43
- expect(context.segmentId).toBe("M1L0R0");
44
- expect(context.segmentType).toBe("loader");
45
- expect(context.loaderName).toBe("ProductLoader");
46
- expect(context.duration).toBe(150.5);
47
- expect(context.isPartial).toBe(true);
48
- expect(context.handledByBoundary).toBe(true);
49
- expect(context.stack).toBeDefined();
50
- expect(context.metadata).toEqual({ custom: "data" });
51
- });
52
- it("should support action-specific properties", () => {
53
- const context = {
54
- error: new Error("Action failed"),
55
- phase: "action",
56
- request: new Request("https://example.com/api", { method: "POST" }),
57
- url: new URL("https://example.com/api"),
58
- pathname: "/api",
59
- method: "POST",
60
- actionId: "src/actions.ts#addToCart",
61
- };
62
- expect(context.phase).toBe("action");
63
- expect(context.actionId).toBe("src/actions.ts#addToCart");
64
- expect(context.method).toBe("POST");
65
- });
66
- it("should support middleware-specific properties", () => {
67
- const context = {
68
- error: new Error("Auth failed"),
69
- phase: "middleware",
70
- request: new Request("https://example.com/admin"),
71
- url: new URL("https://example.com/admin"),
72
- pathname: "/admin",
73
- method: "GET",
74
- middlewareId: "auth",
75
- segmentType: "middleware",
76
- };
77
- expect(context.phase).toBe("middleware");
78
- expect(context.middlewareId).toBe("auth");
79
- expect(context.segmentType).toBe("middleware");
80
- });
81
- it("should support typed env", () => {
82
- const context = {
83
- error: new Error("DB error"),
84
- phase: "loader",
85
- request: new Request("https://example.com"),
86
- url: new URL("https://example.com"),
87
- pathname: "/",
88
- method: "GET",
89
- env: {
90
- DB: { query: () => { } },
91
- USER_ID: "user-123",
92
- },
93
- };
94
- expect(context.env?.DB).toBeDefined();
95
- expect(context.env?.USER_ID).toBe("user-123");
96
- });
97
- });
98
- describe("ErrorPhase", () => {
99
- it("should include all valid phases", () => {
100
- const phases = [
101
- "routing",
102
- "manifest",
103
- "middleware",
104
- "loader",
105
- "handler",
106
- "rendering",
107
- "action",
108
- "revalidation",
109
- "unknown",
110
- ];
111
- expect(phases).toHaveLength(9);
112
- phases.forEach((phase) => {
113
- expect(typeof phase).toBe("string");
114
- });
115
- });
116
- });
117
- describe("OnErrorCallback", () => {
118
- it("should accept sync callback", () => {
119
- const errors = [];
120
- const callback = (context) => {
121
- errors.push(context);
122
- };
123
- const context = {
124
- error: new Error("Test"),
125
- phase: "routing",
126
- request: new Request("https://example.com"),
127
- url: new URL("https://example.com"),
128
- pathname: "/",
129
- method: "GET",
130
- };
131
- callback(context);
132
- expect(errors).toHaveLength(1);
133
- });
134
- it("should accept async callback", async () => {
135
- const errors = [];
136
- const callback = async (context) => {
137
- await Promise.resolve();
138
- errors.push(context);
139
- };
140
- const context = {
141
- error: new Error("Test"),
142
- phase: "action",
143
- request: new Request("https://example.com"),
144
- url: new URL("https://example.com"),
145
- pathname: "/",
146
- method: "POST",
147
- };
148
- await callback(context);
149
- expect(errors).toHaveLength(1);
150
- });
151
- it("should work with typed env", () => {
152
- const callback = (context) => {
153
- // Type-safe access to env
154
- const secret = context.env?.secret;
155
- expect(typeof secret).toBe("string");
156
- };
157
- callback({
158
- error: new Error("Test"),
159
- phase: "routing",
160
- request: new Request("https://example.com"),
161
- url: new URL("https://example.com"),
162
- pathname: "/",
163
- method: "GET",
164
- env: { secret: "test-secret" },
165
- });
166
- });
167
- });
168
- });
169
- describe("OnError Callback Integration", () => {
170
- it("should capture error details from context", () => {
171
- const capturedErrors = [];
172
- const onError = (context) => {
173
- capturedErrors.push({
174
- message: context.error.message,
175
- phase: context.phase,
176
- route: context.routeKey,
177
- duration: context.duration,
178
- });
179
- };
180
- // Simulate errors from different phases
181
- onError({
182
- error: new Error("Route not found"),
183
- phase: "routing",
184
- request: new Request("https://example.com/unknown"),
185
- url: new URL("https://example.com/unknown"),
186
- pathname: "/unknown",
187
- method: "GET",
188
- });
189
- onError({
190
- error: new Error("Loader failed"),
191
- phase: "loader",
192
- request: new Request("https://example.com/products"),
193
- url: new URL("https://example.com/products"),
194
- pathname: "/products",
195
- method: "GET",
196
- routeKey: "products.list",
197
- loaderName: "ProductsLoader",
198
- duration: 100,
199
- });
200
- onError({
201
- error: new Error("Action failed"),
202
- phase: "action",
203
- request: new Request("https://example.com/cart", { method: "POST" }),
204
- url: new URL("https://example.com/cart"),
205
- pathname: "/cart",
206
- method: "POST",
207
- actionId: "addToCart",
208
- duration: 50,
209
- });
210
- expect(capturedErrors).toHaveLength(3);
211
- expect(capturedErrors[0]).toEqual({
212
- message: "Route not found",
213
- phase: "routing",
214
- route: undefined,
215
- duration: undefined,
216
- });
217
- expect(capturedErrors[1]).toEqual({
218
- message: "Loader failed",
219
- phase: "loader",
220
- route: "products.list",
221
- duration: 100,
222
- });
223
- expect(capturedErrors[2]).toEqual({
224
- message: "Action failed",
225
- phase: "action",
226
- route: undefined,
227
- duration: 50,
228
- });
229
- });
230
- it("should handle errors thrown in callback gracefully", () => {
231
- const consoleErrorSpy = vi.spyOn(console, "error").mockImplementation(() => { });
232
- const badCallback = () => {
233
- throw new Error("Callback error");
234
- };
235
- // The callback throws, but it shouldn't propagate
236
- // In real implementation, this is caught by invokeOnError
237
- expect(() => {
238
- try {
239
- badCallback({
240
- error: new Error("Original error"),
241
- phase: "routing",
242
- request: new Request("https://example.com"),
243
- url: new URL("https://example.com"),
244
- pathname: "/",
245
- method: "GET",
246
- });
247
- }
248
- catch (e) {
249
- // In real code, invokeOnError catches this
250
- console.error("[Router.onError] Callback error:", e);
251
- }
252
- }).not.toThrow();
253
- consoleErrorSpy.mockRestore();
254
- });
255
- it("should handle async callback rejection gracefully", async () => {
256
- const consoleErrorSpy = vi.spyOn(console, "error").mockImplementation(() => { });
257
- const badAsyncCallback = async () => {
258
- await Promise.reject(new Error("Async callback error"));
259
- };
260
- const context = {
261
- error: new Error("Original error"),
262
- phase: "action",
263
- request: new Request("https://example.com"),
264
- url: new URL("https://example.com"),
265
- pathname: "/",
266
- method: "POST",
267
- };
268
- // In real implementation, the promise rejection is caught
269
- const result = badAsyncCallback(context);
270
- if (result instanceof Promise) {
271
- await result.catch((e) => {
272
- console.error("[Router.onError] Callback error:", e);
273
- });
274
- }
275
- consoleErrorSpy.mockRestore();
276
- });
277
- });
278
- describe("wrapLoaderWithErrorHandling", () => {
279
- const mockEntry = { id: "test-entry" };
280
- const mockPathname = "/test";
281
- const createMockErrorInfo = (error, segmentId, segmentType) => ({
282
- message: error instanceof Error ? error.message : String(error),
283
- name: error instanceof Error ? error.name : "Error",
284
- segmentId,
285
- segmentType,
286
- });
287
- describe("successful resolution", () => {
288
- it("should return ok: true with data on success", async () => {
289
- const promise = Promise.resolve({ name: "Test Product" });
290
- const result = await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.ProductLoader", mockPathname, () => null, createMockErrorInfo);
291
- expect(result).toEqual({
292
- __loaderResult: true,
293
- ok: true,
294
- data: { name: "Test Product" },
295
- });
296
- });
297
- it("should not invoke onError on success", async () => {
298
- const onError = vi.fn();
299
- const promise = Promise.resolve("success");
300
- await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.TestLoader", mockPathname, () => null, createMockErrorInfo, onError);
301
- expect(onError).not.toHaveBeenCalled();
302
- });
303
- });
304
- describe("error handling without boundary", () => {
305
- it("should return ok: false with error info when no boundary", async () => {
306
- const promise = Promise.reject(new Error("Loader failed"));
307
- const result = await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.FailingLoader", mockPathname, () => null, // No error boundary
308
- createMockErrorInfo);
309
- expect(result).toEqual({
310
- __loaderResult: true,
311
- ok: false,
312
- error: {
313
- message: "Loader failed",
314
- name: "Error",
315
- segmentId: "M1L0.FailingLoader",
316
- segmentType: "loader",
317
- },
318
- fallback: null,
319
- });
320
- });
321
- it("should invoke onError with handledByBoundary: false", async () => {
322
- const onError = vi.fn();
323
- const testError = new Error("Test error");
324
- const promise = Promise.reject(testError);
325
- await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.TestLoader", mockPathname, () => null, // No boundary
326
- createMockErrorInfo, onError);
327
- expect(onError).toHaveBeenCalledWith(testError, {
328
- segmentId: "M1L0.TestLoader",
329
- loaderName: "TestLoader",
330
- handledByBoundary: false,
331
- });
332
- });
333
- });
334
- describe("error handling with boundary", () => {
335
- it("should return fallback when error boundary exists", async () => {
336
- const consoleSpy = vi.spyOn(console, "log").mockImplementation(() => { });
337
- const promise = Promise.reject(new Error("Handled error"));
338
- const fallbackElement = "Error Fallback UI";
339
- const result = await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.HandledLoader", mockPathname, () => fallbackElement, // Has error boundary
340
- createMockErrorInfo);
341
- expect(result).toEqual({
342
- __loaderResult: true,
343
- ok: false,
344
- error: {
345
- message: "Handled error",
346
- name: "Error",
347
- segmentId: "M1L0.HandledLoader",
348
- segmentType: "loader",
349
- },
350
- fallback: fallbackElement,
351
- });
352
- consoleSpy.mockRestore();
353
- });
354
- it("should invoke onError with handledByBoundary: true", async () => {
355
- const consoleSpy = vi.spyOn(console, "log").mockImplementation(() => { });
356
- const onError = vi.fn();
357
- const testError = new Error("Boundary handled");
358
- const promise = Promise.reject(testError);
359
- await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.BoundaryLoader", mockPathname, () => "Fallback", // Has boundary
360
- createMockErrorInfo, onError);
361
- expect(onError).toHaveBeenCalledWith(testError, {
362
- segmentId: "M1L0.BoundaryLoader",
363
- loaderName: "BoundaryLoader",
364
- handledByBoundary: true,
365
- });
366
- consoleSpy.mockRestore();
367
- });
368
- it("should call ErrorBoundaryHandler function with error props", async () => {
369
- const consoleSpy = vi.spyOn(console, "log").mockImplementation(() => { });
370
- const promise = Promise.reject(new Error("Handler error"));
371
- const boundaryHandler = vi.fn().mockReturnValue("Rendered Fallback");
372
- const result = await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.HandlerLoader", mockPathname, () => boundaryHandler, createMockErrorInfo);
373
- expect(boundaryHandler).toHaveBeenCalledWith({
374
- error: {
375
- message: "Handler error",
376
- name: "Error",
377
- segmentId: "M1L0.HandlerLoader",
378
- segmentType: "loader",
379
- },
380
- });
381
- if (!result.ok) {
382
- expect(result.fallback).toBe("Rendered Fallback");
383
- }
384
- consoleSpy.mockRestore();
385
- });
386
- });
387
- describe("loaderName extraction", () => {
388
- it("should extract loader name from segmentId with dot notation", async () => {
389
- const onError = vi.fn();
390
- const promise = Promise.reject(new Error("test"));
391
- await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0D0.ProductLoader", mockPathname, () => null, createMockErrorInfo, onError);
392
- expect(onError).toHaveBeenCalledWith(expect.any(Error), expect.objectContaining({ loaderName: "ProductLoader" }));
393
- });
394
- it("should handle segmentId without dots", async () => {
395
- const onError = vi.fn();
396
- const promise = Promise.reject(new Error("test"));
397
- await wrapLoaderWithErrorHandling(promise, mockEntry, "SimpleLoader", mockPathname, () => null, createMockErrorInfo, onError);
398
- expect(onError).toHaveBeenCalledWith(expect.any(Error), expect.objectContaining({ loaderName: "SimpleLoader" }));
399
- });
400
- it("should return 'unknown' for empty segmentId", async () => {
401
- const onError = vi.fn();
402
- const promise = Promise.reject(new Error("test"));
403
- await wrapLoaderWithErrorHandling(promise, mockEntry, "", mockPathname, () => null, createMockErrorInfo, onError);
404
- expect(onError).toHaveBeenCalledWith(expect.any(Error), expect.objectContaining({ loaderName: "unknown" }));
405
- });
406
- });
407
- describe("non-Error objects", () => {
408
- it("should handle string errors", async () => {
409
- const promise = Promise.reject("String error message");
410
- const result = await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.StringErrorLoader", mockPathname, () => null, createMockErrorInfo);
411
- expect(result.ok).toBe(false);
412
- if (!result.ok) {
413
- expect(result.error?.message).toBe("String error message");
414
- }
415
- });
416
- it("should handle object errors", async () => {
417
- const promise = Promise.reject({ code: "ERR_001", detail: "Failed" });
418
- const result = await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.ObjectErrorLoader", mockPathname, () => null, (error) => ({
419
- message: String(error),
420
- name: "Error",
421
- segmentId: "test",
422
- segmentType: "loader",
423
- }));
424
- expect(result.ok).toBe(false);
425
- });
426
- it("should handle null/undefined errors", async () => {
427
- const promise = Promise.reject(null);
428
- const result = await wrapLoaderWithErrorHandling(promise, mockEntry, "M1L0.NullErrorLoader", mockPathname, () => null, (error) => ({
429
- message: String(error),
430
- name: "Error",
431
- segmentId: "test",
432
- segmentType: "loader",
433
- }));
434
- expect(result.ok).toBe(false);
435
- if (!result.ok) {
436
- expect(result.error?.message).toBe("null");
437
- }
438
- });
439
- });
440
- });
441
- describe("Error Context Edge Cases", () => {
442
- it("should handle errors with circular references in metadata", () => {
443
- const circular = { name: "test" };
444
- circular.self = circular;
445
- const context = {
446
- error: new Error("Circular test"),
447
- phase: "loader",
448
- request: new Request("https://example.com"),
449
- url: new URL("https://example.com"),
450
- pathname: "/",
451
- method: "GET",
452
- metadata: { circular }, // This shouldn't crash serialization
453
- };
454
- expect(context.metadata?.circular).toBe(circular);
455
- });
456
- it("should handle errors without stack traces", () => {
457
- const errorWithoutStack = new Error("No stack");
458
- delete errorWithoutStack.stack;
459
- const context = {
460
- error: errorWithoutStack,
461
- phase: "routing",
462
- request: new Request("https://example.com"),
463
- url: new URL("https://example.com"),
464
- pathname: "/",
465
- method: "GET",
466
- stack: errorWithoutStack.stack,
467
- };
468
- expect(context.stack).toBeUndefined();
469
- });
470
- it("should handle very long error messages", () => {
471
- const longMessage = "x".repeat(10000);
472
- const context = {
473
- error: new Error(longMessage),
474
- phase: "handler",
475
- request: new Request("https://example.com"),
476
- url: new URL("https://example.com"),
477
- pathname: "/",
478
- method: "GET",
479
- };
480
- expect(context.error.message.length).toBe(10000);
481
- });
482
- it("should preserve error cause chain", () => {
483
- const rootCause = new Error("Root cause");
484
- const wrappedError = new Error("Wrapped error", { cause: rootCause });
485
- const context = {
486
- error: wrappedError,
487
- phase: "loader",
488
- request: new Request("https://example.com"),
489
- url: new URL("https://example.com"),
490
- pathname: "/",
491
- method: "GET",
492
- };
493
- expect(context.error.cause).toBe(rootCause);
494
- });
495
- });
496
- describe("invokeOnError Shared Utility", () => {
497
- const createMockContext = () => ({
498
- request: new Request("https://example.com/test"),
499
- url: new URL("https://example.com/test"),
500
- });
501
- describe("callback invocation", () => {
502
- it("should not call callback if undefined", () => {
503
- const context = createMockContext();
504
- expect(() => {
505
- invokeOnError(undefined, new Error("test"), "routing", context);
506
- }).not.toThrow();
507
- });
508
- it("should invoke callback with full context", () => {
509
- const callback = vi.fn();
510
- const error = new Error("Test error");
511
- const context = {
512
- request: new Request("https://example.com/products/123"),
513
- url: new URL("https://example.com/products/123"),
514
- routeKey: "products.detail",
515
- params: { id: "123" },
516
- segmentId: "M1R0",
517
- segmentType: "route",
518
- env: { DB: "test" },
519
- isPartial: true,
520
- handledByBoundary: false,
521
- };
522
- invokeOnError(callback, error, "handler", context);
523
- expect(callback).toHaveBeenCalledTimes(1);
524
- const receivedContext = callback.mock.calls[0][0];
525
- expect(receivedContext.error).toBe(error);
526
- expect(receivedContext.phase).toBe("handler");
527
- expect(receivedContext.pathname).toBe("/products/123");
528
- expect(receivedContext.method).toBe("GET");
529
- expect(receivedContext.routeKey).toBe("products.detail");
530
- expect(receivedContext.params).toEqual({ id: "123" });
531
- expect(receivedContext.segmentId).toBe("M1R0");
532
- expect(receivedContext.segmentType).toBe("route");
533
- expect(receivedContext.env).toEqual({ DB: "test" });
534
- expect(receivedContext.isPartial).toBe(true);
535
- expect(receivedContext.handledByBoundary).toBe(false);
536
- expect(receivedContext.stack).toBeDefined();
537
- });
538
- it("should convert non-Error objects to Error", () => {
539
- const callback = vi.fn();
540
- const context = createMockContext();
541
- invokeOnError(callback, "string error", "routing", context);
542
- const receivedContext = callback.mock.calls[0][0];
543
- expect(receivedContext.error).toBeInstanceOf(Error);
544
- expect(receivedContext.error.message).toBe("string error");
545
- });
546
- it("should calculate duration from requestStartTime", () => {
547
- const callback = vi.fn();
548
- const context = {
549
- ...createMockContext(),
550
- requestStartTime: performance.now() - 100, // 100ms ago
551
- };
552
- invokeOnError(callback, new Error("test"), "loader", context);
553
- const receivedContext = callback.mock.calls[0][0];
554
- expect(receivedContext.duration).toBeGreaterThanOrEqual(100);
555
- expect(receivedContext.duration).toBeLessThan(200);
556
- });
557
- it("should not set duration if requestStartTime is not provided", () => {
558
- const callback = vi.fn();
559
- const context = createMockContext();
560
- invokeOnError(callback, new Error("test"), "loader", context);
561
- const receivedContext = callback.mock.calls[0][0];
562
- expect(receivedContext.duration).toBeUndefined();
563
- });
564
- });
565
- describe("error handling in callback", () => {
566
- it("should catch sync callback errors and log them", () => {
567
- const consoleSpy = vi.spyOn(console, "error").mockImplementation(() => { });
568
- const callback = () => {
569
- throw new Error("Callback sync error");
570
- };
571
- const context = createMockContext();
572
- expect(() => {
573
- invokeOnError(callback, new Error("original"), "routing", context);
574
- }).not.toThrow();
575
- expect(consoleSpy).toHaveBeenCalledWith("[Router.onError] Callback error:", expect.any(Error));
576
- consoleSpy.mockRestore();
577
- });
578
- it("should catch async callback rejections and log them", async () => {
579
- const consoleSpy = vi.spyOn(console, "error").mockImplementation(() => { });
580
- const callback = async () => {
581
- throw new Error("Callback async error");
582
- };
583
- const context = createMockContext();
584
- invokeOnError(callback, new Error("original"), "routing", context);
585
- // Wait for the async rejection to be caught
586
- await new Promise((resolve) => setTimeout(resolve, 10));
587
- expect(consoleSpy).toHaveBeenCalledWith("[Router.onError] Callback error:", expect.any(Error));
588
- consoleSpy.mockRestore();
589
- });
590
- it("should use custom log prefix", () => {
591
- const consoleSpy = vi.spyOn(console, "error").mockImplementation(() => { });
592
- const callback = () => {
593
- throw new Error("Callback error");
594
- };
595
- const context = createMockContext();
596
- invokeOnError(callback, new Error("original"), "rendering", context, "RSC");
597
- expect(consoleSpy).toHaveBeenCalledWith("[RSC.onError] Callback error:", expect.any(Error));
598
- consoleSpy.mockRestore();
599
- });
600
- });
601
- describe("all phases", () => {
602
- const phases = [
603
- "routing",
604
- "manifest",
605
- "middleware",
606
- "loader",
607
- "handler",
608
- "rendering",
609
- "action",
610
- "revalidation",
611
- "unknown",
612
- ];
613
- phases.forEach((phase) => {
614
- it(`should accept phase: ${phase}`, () => {
615
- const callback = vi.fn();
616
- const context = createMockContext();
617
- invokeOnError(callback, new Error("test"), phase, context);
618
- expect(callback).toHaveBeenCalledWith(expect.objectContaining({ phase }));
619
- });
620
- });
621
- });
622
- describe("optional context fields", () => {
623
- it("should pass through all optional fields", () => {
624
- const callback = vi.fn();
625
- const context = {
626
- request: new Request("https://example.com/api", { method: "POST" }),
627
- url: new URL("https://example.com/api"),
628
- routeKey: "api.action",
629
- params: { id: "1" },
630
- segmentId: "M1A0",
631
- segmentType: "middleware",
632
- loaderName: "TestLoader",
633
- middlewareId: "auth",
634
- actionId: "createItem",
635
- env: { secret: "123" },
636
- isPartial: false,
637
- handledByBoundary: true,
638
- metadata: { custom: "data" },
639
- requestStartTime: performance.now() - 50,
640
- };
641
- invokeOnError(callback, new Error("test"), "action", context);
642
- const received = callback.mock.calls[0][0];
643
- expect(received.method).toBe("POST");
644
- expect(received.loaderName).toBe("TestLoader");
645
- expect(received.middlewareId).toBe("auth");
646
- expect(received.actionId).toBe("createItem");
647
- expect(received.metadata).toEqual({ custom: "data" });
648
- });
649
- it("should handle minimal context", () => {
650
- const callback = vi.fn();
651
- const context = {
652
- request: new Request("https://example.com"),
653
- url: new URL("https://example.com"),
654
- };
655
- invokeOnError(callback, new Error("test"), "unknown", context);
656
- const received = callback.mock.calls[0][0];
657
- expect(received.routeKey).toBeUndefined();
658
- expect(received.params).toBeUndefined();
659
- expect(received.segmentId).toBeUndefined();
660
- expect(received.duration).toBeUndefined();
661
- });
662
- });
663
- });
664
- describe("LoaderErrorCallback Type", () => {
665
- it("should accept valid callback signature", () => {
666
- const callback = (error, context) => {
667
- expect(typeof context.segmentId).toBe("string");
668
- expect(typeof context.loaderName).toBe("string");
669
- expect(typeof context.handledByBoundary).toBe("boolean");
670
- };
671
- callback(new Error("test"), {
672
- segmentId: "M1L0.TestLoader",
673
- loaderName: "TestLoader",
674
- handledByBoundary: false,
675
- });
676
- });
677
- });
678
- //# sourceMappingURL=on-error.test.js.map