@rangojs/router 0.0.0-experimental.124 → 0.0.0-experimental.125

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 (1009) hide show
  1. package/dist/bin/rango.js +3 -4
  2. package/dist/vite/index.js +9 -43
  3. package/package.json +1 -1
  4. package/skills/hooks/SKILL.md +2 -2
  5. package/skills/route/SKILL.md +6 -0
  6. package/src/__internal.ts +0 -65
  7. package/src/browser/action-coordinator.ts +1 -1
  8. package/src/browser/action-fence.ts +10 -0
  9. package/src/browser/event-controller.ts +1 -83
  10. package/src/browser/navigation-store-handle.ts +3 -4
  11. package/src/browser/navigation-store.ts +0 -39
  12. package/src/browser/navigation-transaction.ts +0 -32
  13. package/src/browser/partial-update.ts +1 -83
  14. package/src/browser/prefetch/cache.ts +6 -45
  15. package/src/browser/prefetch/queue.ts +6 -3
  16. package/src/browser/rango-state.ts +2 -23
  17. package/src/browser/react/Link.tsx +0 -2
  18. package/src/browser/react/NavigationProvider.tsx +2 -1
  19. package/src/browser/react/ScrollRestoration.tsx +10 -6
  20. package/src/browser/react/filter-segment-order.ts +0 -2
  21. package/src/browser/react/index.ts +0 -45
  22. package/src/browser/react/location-state-shared.ts +0 -13
  23. package/src/browser/react/location-state.ts +0 -1
  24. package/src/browser/react/use-action.ts +6 -15
  25. package/src/browser/react/use-handle.ts +0 -5
  26. package/src/browser/react/use-link-status.ts +0 -4
  27. package/src/browser/react/use-navigation.ts +0 -3
  28. package/src/browser/react/use-params.ts +0 -2
  29. package/src/browser/react/use-search-params.ts +0 -5
  30. package/src/browser/react/use-segments.ts +0 -13
  31. package/src/browser/rsc-router.tsx +2 -2
  32. package/src/browser/types.ts +0 -1
  33. package/src/browser/validate-redirect-origin.ts +4 -5
  34. package/src/build/route-trie.ts +3 -0
  35. package/src/build/route-types/param-extraction.ts +6 -3
  36. package/src/build/route-types/router-processing.ts +0 -8
  37. package/src/cache/cache-policy.ts +0 -54
  38. package/src/cache/cache-runtime.ts +27 -24
  39. package/src/cache/cache-scope.ts +0 -27
  40. package/src/cache/cache-tag.ts +0 -37
  41. package/src/cache/cf/cf-cache-store.ts +72 -45
  42. package/src/cache/cf/index.ts +0 -24
  43. package/src/cache/document-cache.ts +0 -36
  44. package/src/cache/handle-snapshot.ts +0 -40
  45. package/src/cache/index.ts +0 -27
  46. package/src/cache/memory-segment-store.ts +0 -52
  47. package/src/cache/profile-registry.ts +7 -3
  48. package/src/cache/read-through-swr.ts +41 -11
  49. package/src/cache/segment-codec.ts +0 -16
  50. package/src/cache/types.ts +0 -98
  51. package/src/client.rsc.tsx +1 -22
  52. package/src/client.tsx +14 -32
  53. package/src/deps/ssr.ts +0 -1
  54. package/src/handle.ts +2 -12
  55. package/src/handles/MetaTags.tsx +0 -14
  56. package/src/handles/meta.ts +0 -39
  57. package/src/host/cookie-handler.ts +0 -36
  58. package/src/host/errors.ts +0 -24
  59. package/src/host/index.ts +6 -0
  60. package/src/host/pattern-matcher.ts +7 -50
  61. package/src/host/router.ts +1 -65
  62. package/src/host/testing.ts +0 -16
  63. package/src/host/types.ts +6 -2
  64. package/src/href-client.ts +0 -4
  65. package/src/index.rsc.ts +20 -2
  66. package/src/internal-debug.ts +2 -4
  67. package/src/loader.rsc.ts +4 -15
  68. package/src/loader.ts +3 -9
  69. package/src/network-error-thrower.tsx +1 -6
  70. package/src/outlet-provider.tsx +1 -5
  71. package/src/prerender/param-hash.ts +10 -11
  72. package/src/prerender/store.ts +23 -30
  73. package/src/prerender.ts +34 -0
  74. package/src/root-error-boundary.tsx +1 -19
  75. package/src/route-content-wrapper.tsx +1 -44
  76. package/src/route-definition/dsl-helpers.ts +7 -19
  77. package/src/route-definition/helpers-types.ts +3 -3
  78. package/src/route-definition/redirect.ts +11 -1
  79. package/src/route-map-builder.ts +0 -16
  80. package/src/router/content-negotiation.ts +0 -13
  81. package/src/router/error-handling.ts +12 -16
  82. package/src/router/find-match.ts +4 -30
  83. package/src/router/intercept-resolution.ts +10 -1
  84. package/src/router/lazy-includes.ts +1 -57
  85. package/src/router/loader-resolution.ts +3 -2
  86. package/src/router/logging.ts +0 -6
  87. package/src/router/manifest.ts +1 -25
  88. package/src/router/match-api.ts +0 -20
  89. package/src/router/match-context.ts +0 -22
  90. package/src/router/match-handlers.ts +0 -43
  91. package/src/router/match-middleware/background-revalidation.ts +0 -7
  92. package/src/router/match-middleware/cache-lookup.ts +1 -54
  93. package/src/router/match-middleware/cache-store.ts +0 -31
  94. package/src/router/match-middleware/intercept-resolution.ts +0 -22
  95. package/src/router/match-middleware/segment-resolution.ts +0 -21
  96. package/src/router/match-pipelines.ts +1 -42
  97. package/src/router/match-result.ts +1 -52
  98. package/src/router/metrics.ts +0 -34
  99. package/src/router/middleware-cookies.ts +0 -13
  100. package/src/router/middleware-types.ts +0 -115
  101. package/src/router/middleware.ts +7 -30
  102. package/src/router/navigation-snapshot.ts +0 -51
  103. package/src/router/params-util.ts +23 -0
  104. package/src/router/pattern-matching.ts +1 -33
  105. package/src/router/prerender-match.ts +29 -45
  106. package/src/router/request-classification.ts +1 -38
  107. package/src/router/revalidation.ts +5 -58
  108. package/src/router/router-context.ts +0 -26
  109. package/src/router/segment-resolution/fresh.ts +25 -57
  110. package/src/router/segment-resolution/helpers.ts +34 -0
  111. package/src/router/segment-resolution/loader-cache.ts +10 -13
  112. package/src/router/segment-resolution/revalidation.ts +5 -42
  113. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  114. package/src/router/segment-resolution.ts +4 -1
  115. package/src/router/telemetry-otel.ts +0 -20
  116. package/src/router/telemetry.ts +0 -22
  117. package/src/router/timeout.ts +0 -20
  118. package/src/router/trie-matching.ts +63 -40
  119. package/src/router/types.ts +1 -63
  120. package/src/router/url-params.ts +0 -5
  121. package/src/router.ts +4 -2
  122. package/src/rsc/handler.ts +11 -2
  123. package/src/rsc/helpers.ts +15 -0
  124. package/src/rsc/origin-guard.ts +0 -12
  125. package/src/rsc/progressive-enhancement.ts +2 -1
  126. package/src/rsc/rsc-rendering.ts +2 -7
  127. package/src/rsc/runtime-warnings.ts +14 -0
  128. package/src/rsc/server-action.ts +30 -28
  129. package/src/rsc/types.ts +0 -1
  130. package/src/search-params.ts +0 -16
  131. package/src/segment-loader-promise.ts +14 -2
  132. package/src/segment-system.tsx +79 -88
  133. package/src/server/handle-store.ts +7 -24
  134. package/src/server/loader-registry.ts +5 -24
  135. package/src/server/request-context.ts +6 -78
  136. package/src/ssr/index.tsx +14 -14
  137. package/src/static-handler.ts +2 -27
  138. package/src/testing/cache-status.ts +0 -47
  139. package/src/testing/collect-handle.ts +1 -24
  140. package/src/testing/e2e/index.ts +0 -22
  141. package/src/testing/e2e/matchers.ts +0 -16
  142. package/src/testing/flight-matchers.ts +0 -13
  143. package/src/testing/flight-normalize.ts +3 -30
  144. package/src/testing/flight.ts +0 -48
  145. package/src/testing/generated-routes.ts +1 -41
  146. package/src/testing/index.ts +0 -21
  147. package/src/testing/internal/context.ts +3 -45
  148. package/src/testing/internal/seed-vars.ts +0 -26
  149. package/src/testing/render-handler.ts +0 -49
  150. package/src/testing/render-route.tsx +0 -90
  151. package/src/testing/run-loader.ts +0 -96
  152. package/src/testing/run-middleware.ts +0 -26
  153. package/src/theme/ThemeProvider.tsx +0 -52
  154. package/src/theme/ThemeScript.tsx +0 -6
  155. package/src/theme/constants.ts +0 -12
  156. package/src/theme/index.ts +0 -7
  157. package/src/theme/theme-context.ts +1 -5
  158. package/src/theme/theme-script.ts +0 -14
  159. package/src/theme/use-theme.ts +0 -3
  160. package/src/types/boundaries.ts +0 -35
  161. package/src/types/error-types.ts +25 -89
  162. package/src/types/global-namespace.ts +4 -14
  163. package/src/types/handler-context.ts +0 -8
  164. package/src/types/index.ts +0 -10
  165. package/src/types/request-scope.ts +0 -19
  166. package/src/types/route-config.ts +6 -50
  167. package/src/types/route-entry.ts +0 -6
  168. package/src/types/segments.ts +0 -13
  169. package/src/urls/include-helper.ts +0 -4
  170. package/src/urls/index.ts +0 -6
  171. package/src/urls/path-helper-types.ts +2 -2
  172. package/src/urls/path-helper.ts +0 -54
  173. package/src/urls/urls-function.ts +0 -13
  174. package/src/use-loader.tsx +0 -186
  175. package/src/vite/discovery/bundle-postprocess.ts +2 -1
  176. package/src/vite/discovery/discover-routers.ts +6 -7
  177. package/src/vite/discovery/virtual-module-codegen.ts +1 -11
  178. package/src/vite/plugin-types.ts +3 -1
  179. package/src/vite/plugins/cjs-to-esm.ts +0 -11
  180. package/src/vite/plugins/client-ref-dedup.ts +0 -11
  181. package/src/vite/plugins/client-ref-hashing.ts +0 -10
  182. package/src/vite/plugins/cloudflare-protocol-stub.ts +0 -20
  183. package/src/vite/plugins/expose-action-id.ts +2 -73
  184. package/src/vite/plugins/expose-id-utils.ts +0 -55
  185. package/src/vite/plugins/expose-ids/export-analysis.ts +0 -38
  186. package/src/vite/plugins/expose-ids/handler-transform.ts +0 -15
  187. package/src/vite/plugins/expose-ids/loader-transform.ts +0 -15
  188. package/src/vite/plugins/expose-ids/router-transform.ts +0 -13
  189. package/src/vite/plugins/expose-internal-ids.ts +10 -0
  190. package/src/vite/plugins/performance-tracks.ts +0 -3
  191. package/src/vite/plugins/use-cache-transform.ts +0 -36
  192. package/src/vite/plugins/version-injector.ts +0 -20
  193. package/src/vite/plugins/version-plugin.ts +1 -49
  194. package/src/vite/plugins/virtual-entries.ts +0 -15
  195. package/src/vite/rango.ts +1 -108
  196. package/src/vite/router-discovery.ts +2 -1
  197. package/src/vite/utils/ast-handler-extract.ts +0 -16
  198. package/src/vite/utils/bundle-analysis.ts +6 -13
  199. package/src/vite/utils/client-chunks.ts +0 -6
  200. package/src/vite/utils/forward-user-plugins.ts +0 -22
  201. package/src/vite/utils/manifest-utils.ts +0 -4
  202. package/src/vite/utils/package-resolution.ts +1 -73
  203. package/src/vite/utils/prerender-utils.ts +0 -35
  204. package/src/vite/utils/shared-utils.ts +3 -35
  205. package/dist/__internal.d.ts +0 -83
  206. package/dist/__internal.d.ts.map +0 -1
  207. package/dist/__internal.js +0 -19
  208. package/dist/__internal.js.map +0 -1
  209. package/dist/__mocks__/version.d.ts +0 -7
  210. package/dist/__mocks__/version.d.ts.map +0 -1
  211. package/dist/__mocks__/version.js +0 -7
  212. package/dist/__mocks__/version.js.map +0 -1
  213. package/dist/__tests__/client-href.test.d.ts +0 -2
  214. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  215. package/dist/__tests__/client-href.test.js +0 -74
  216. package/dist/__tests__/client-href.test.js.map +0 -1
  217. package/dist/__tests__/component-utils.test.d.ts +0 -2
  218. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  219. package/dist/__tests__/component-utils.test.js +0 -51
  220. package/dist/__tests__/component-utils.test.js.map +0 -1
  221. package/dist/__tests__/event-controller.test.d.ts +0 -2
  222. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  223. package/dist/__tests__/event-controller.test.js +0 -538
  224. package/dist/__tests__/event-controller.test.js.map +0 -1
  225. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  226. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  227. package/dist/__tests__/helpers/route-tree.js +0 -374
  228. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  229. package/dist/__tests__/match-result.test.d.ts +0 -2
  230. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  231. package/dist/__tests__/match-result.test.js +0 -154
  232. package/dist/__tests__/match-result.test.js.map +0 -1
  233. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  234. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  235. package/dist/__tests__/navigation-store.test.js +0 -440
  236. package/dist/__tests__/navigation-store.test.js.map +0 -1
  237. package/dist/__tests__/partial-update.test.d.ts +0 -2
  238. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  239. package/dist/__tests__/partial-update.test.js +0 -1009
  240. package/dist/__tests__/partial-update.test.js.map +0 -1
  241. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  242. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  243. package/dist/__tests__/reverse-types.test.js +0 -656
  244. package/dist/__tests__/reverse-types.test.js.map +0 -1
  245. package/dist/__tests__/route-definition.test.d.ts +0 -2
  246. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  247. package/dist/__tests__/route-definition.test.js +0 -55
  248. package/dist/__tests__/route-definition.test.js.map +0 -1
  249. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  250. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  251. package/dist/__tests__/router-helpers.test.js +0 -377
  252. package/dist/__tests__/router-helpers.test.js.map +0 -1
  253. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  254. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  255. package/dist/__tests__/router-integration-2.test.js +0 -426
  256. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  257. package/dist/__tests__/router-integration.test.d.ts +0 -2
  258. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  259. package/dist/__tests__/router-integration.test.js +0 -1051
  260. package/dist/__tests__/router-integration.test.js.map +0 -1
  261. package/dist/__tests__/search-params.test.d.ts +0 -5
  262. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  263. package/dist/__tests__/search-params.test.js +0 -306
  264. package/dist/__tests__/search-params.test.js.map +0 -1
  265. package/dist/__tests__/segment-system.test.d.ts +0 -2
  266. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  267. package/dist/__tests__/segment-system.test.js +0 -627
  268. package/dist/__tests__/segment-system.test.js.map +0 -1
  269. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  270. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  271. package/dist/__tests__/static-handler-types.test.js +0 -63
  272. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  273. package/dist/__tests__/urls.test.d.ts +0 -2
  274. package/dist/__tests__/urls.test.d.ts.map +0 -1
  275. package/dist/__tests__/urls.test.js +0 -421
  276. package/dist/__tests__/urls.test.js.map +0 -1
  277. package/dist/__tests__/use-mount.test.d.ts +0 -2
  278. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  279. package/dist/__tests__/use-mount.test.js +0 -35
  280. package/dist/__tests__/use-mount.test.js.map +0 -1
  281. package/dist/bin/rango.d.ts +0 -2
  282. package/dist/bin/rango.d.ts.map +0 -1
  283. package/dist/bin/rango.js.map +0 -1
  284. package/dist/browser/event-controller.d.ts +0 -191
  285. package/dist/browser/event-controller.d.ts.map +0 -1
  286. package/dist/browser/event-controller.js +0 -559
  287. package/dist/browser/event-controller.js.map +0 -1
  288. package/dist/browser/index.d.ts +0 -2
  289. package/dist/browser/index.d.ts.map +0 -1
  290. package/dist/browser/index.js +0 -14
  291. package/dist/browser/index.js.map +0 -1
  292. package/dist/browser/link-interceptor.d.ts +0 -38
  293. package/dist/browser/link-interceptor.d.ts.map +0 -1
  294. package/dist/browser/link-interceptor.js +0 -99
  295. package/dist/browser/link-interceptor.js.map +0 -1
  296. package/dist/browser/logging.d.ts +0 -10
  297. package/dist/browser/logging.d.ts.map +0 -1
  298. package/dist/browser/logging.js +0 -29
  299. package/dist/browser/logging.js.map +0 -1
  300. package/dist/browser/lru-cache.d.ts +0 -17
  301. package/dist/browser/lru-cache.d.ts.map +0 -1
  302. package/dist/browser/lru-cache.js +0 -50
  303. package/dist/browser/lru-cache.js.map +0 -1
  304. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  305. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  306. package/dist/browser/merge-segment-loaders.js +0 -102
  307. package/dist/browser/merge-segment-loaders.js.map +0 -1
  308. package/dist/browser/navigation-bridge.d.ts +0 -102
  309. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  310. package/dist/browser/navigation-bridge.js +0 -708
  311. package/dist/browser/navigation-bridge.js.map +0 -1
  312. package/dist/browser/navigation-client.d.ts +0 -25
  313. package/dist/browser/navigation-client.d.ts.map +0 -1
  314. package/dist/browser/navigation-client.js +0 -157
  315. package/dist/browser/navigation-client.js.map +0 -1
  316. package/dist/browser/navigation-store.d.ts +0 -101
  317. package/dist/browser/navigation-store.d.ts.map +0 -1
  318. package/dist/browser/navigation-store.js +0 -625
  319. package/dist/browser/navigation-store.js.map +0 -1
  320. package/dist/browser/partial-update.d.ts +0 -75
  321. package/dist/browser/partial-update.d.ts.map +0 -1
  322. package/dist/browser/partial-update.js +0 -426
  323. package/dist/browser/partial-update.js.map +0 -1
  324. package/dist/browser/react/Link.d.ts +0 -86
  325. package/dist/browser/react/Link.d.ts.map +0 -1
  326. package/dist/browser/react/Link.js +0 -128
  327. package/dist/browser/react/Link.js.map +0 -1
  328. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  329. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  330. package/dist/browser/react/NavigationProvider.js +0 -216
  331. package/dist/browser/react/NavigationProvider.js.map +0 -1
  332. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  333. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  334. package/dist/browser/react/ScrollRestoration.js +0 -57
  335. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  336. package/dist/browser/react/context.d.ts +0 -46
  337. package/dist/browser/react/context.d.ts.map +0 -1
  338. package/dist/browser/react/context.js +0 -10
  339. package/dist/browser/react/context.js.map +0 -1
  340. package/dist/browser/react/index.d.ts +0 -11
  341. package/dist/browser/react/index.d.ts.map +0 -1
  342. package/dist/browser/react/index.js +0 -22
  343. package/dist/browser/react/index.js.map +0 -1
  344. package/dist/browser/react/location-state-shared.d.ts +0 -63
  345. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  346. package/dist/browser/react/location-state-shared.js +0 -81
  347. package/dist/browser/react/location-state-shared.js.map +0 -1
  348. package/dist/browser/react/location-state.d.ts +0 -23
  349. package/dist/browser/react/location-state.d.ts.map +0 -1
  350. package/dist/browser/react/location-state.js +0 -29
  351. package/dist/browser/react/location-state.js.map +0 -1
  352. package/dist/browser/react/mount-context.d.ts +0 -24
  353. package/dist/browser/react/mount-context.d.ts.map +0 -1
  354. package/dist/browser/react/mount-context.js +0 -24
  355. package/dist/browser/react/mount-context.js.map +0 -1
  356. package/dist/browser/react/use-action.d.ts +0 -64
  357. package/dist/browser/react/use-action.d.ts.map +0 -1
  358. package/dist/browser/react/use-action.js +0 -134
  359. package/dist/browser/react/use-action.js.map +0 -1
  360. package/dist/browser/react/use-client-cache.d.ts +0 -41
  361. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  362. package/dist/browser/react/use-client-cache.js +0 -39
  363. package/dist/browser/react/use-client-cache.js.map +0 -1
  364. package/dist/browser/react/use-handle.d.ts +0 -31
  365. package/dist/browser/react/use-handle.d.ts.map +0 -1
  366. package/dist/browser/react/use-handle.js +0 -144
  367. package/dist/browser/react/use-handle.js.map +0 -1
  368. package/dist/browser/react/use-href.d.ts +0 -33
  369. package/dist/browser/react/use-href.d.ts.map +0 -1
  370. package/dist/browser/react/use-href.js +0 -39
  371. package/dist/browser/react/use-href.js.map +0 -1
  372. package/dist/browser/react/use-link-status.d.ts +0 -37
  373. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  374. package/dist/browser/react/use-link-status.js +0 -99
  375. package/dist/browser/react/use-link-status.js.map +0 -1
  376. package/dist/browser/react/use-mount.d.ts +0 -25
  377. package/dist/browser/react/use-mount.d.ts.map +0 -1
  378. package/dist/browser/react/use-mount.js +0 -30
  379. package/dist/browser/react/use-mount.js.map +0 -1
  380. package/dist/browser/react/use-navigation.d.ts +0 -27
  381. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  382. package/dist/browser/react/use-navigation.js +0 -87
  383. package/dist/browser/react/use-navigation.js.map +0 -1
  384. package/dist/browser/react/use-segments.d.ts +0 -38
  385. package/dist/browser/react/use-segments.d.ts.map +0 -1
  386. package/dist/browser/react/use-segments.js +0 -130
  387. package/dist/browser/react/use-segments.js.map +0 -1
  388. package/dist/browser/request-controller.d.ts +0 -26
  389. package/dist/browser/request-controller.d.ts.map +0 -1
  390. package/dist/browser/request-controller.js +0 -147
  391. package/dist/browser/request-controller.js.map +0 -1
  392. package/dist/browser/rsc-router.d.ts +0 -129
  393. package/dist/browser/rsc-router.d.ts.map +0 -1
  394. package/dist/browser/rsc-router.js +0 -195
  395. package/dist/browser/rsc-router.js.map +0 -1
  396. package/dist/browser/scroll-restoration.d.ts +0 -93
  397. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  398. package/dist/browser/scroll-restoration.js +0 -321
  399. package/dist/browser/scroll-restoration.js.map +0 -1
  400. package/dist/browser/segment-structure-assert.d.ts +0 -17
  401. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  402. package/dist/browser/segment-structure-assert.js +0 -59
  403. package/dist/browser/segment-structure-assert.js.map +0 -1
  404. package/dist/browser/server-action-bridge.d.ts +0 -26
  405. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  406. package/dist/browser/server-action-bridge.js +0 -668
  407. package/dist/browser/server-action-bridge.js.map +0 -1
  408. package/dist/browser/shallow.d.ts +0 -12
  409. package/dist/browser/shallow.d.ts.map +0 -1
  410. package/dist/browser/shallow.js +0 -34
  411. package/dist/browser/shallow.js.map +0 -1
  412. package/dist/browser/types.d.ts +0 -369
  413. package/dist/browser/types.d.ts.map +0 -1
  414. package/dist/browser/types.js +0 -2
  415. package/dist/browser/types.js.map +0 -1
  416. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  417. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  418. package/dist/build/__tests__/generate-cli.test.js +0 -237
  419. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  420. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  421. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  422. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  423. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  424. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  425. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  426. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  427. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  428. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  429. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  430. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  431. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  432. package/dist/build/generate-manifest.d.ts +0 -81
  433. package/dist/build/generate-manifest.d.ts.map +0 -1
  434. package/dist/build/generate-manifest.js +0 -276
  435. package/dist/build/generate-manifest.js.map +0 -1
  436. package/dist/build/generate-route-types.d.ts +0 -115
  437. package/dist/build/generate-route-types.d.ts.map +0 -1
  438. package/dist/build/generate-route-types.js +0 -740
  439. package/dist/build/generate-route-types.js.map +0 -1
  440. package/dist/build/index.d.ts +0 -21
  441. package/dist/build/index.d.ts.map +0 -1
  442. package/dist/build/index.js +0 -21
  443. package/dist/build/index.js.map +0 -1
  444. package/dist/build/route-trie.d.ts +0 -71
  445. package/dist/build/route-trie.d.ts.map +0 -1
  446. package/dist/build/route-trie.js +0 -175
  447. package/dist/build/route-trie.js.map +0 -1
  448. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  449. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  450. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  451. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  452. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  453. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  454. package/dist/cache/__tests__/document-cache.test.js +0 -345
  455. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  456. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  457. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  458. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  459. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  460. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  461. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  462. package/dist/cache/__tests__/memory-store.test.js +0 -367
  463. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  464. package/dist/cache/cache-scope.d.ts +0 -102
  465. package/dist/cache/cache-scope.d.ts.map +0 -1
  466. package/dist/cache/cache-scope.js +0 -440
  467. package/dist/cache/cache-scope.js.map +0 -1
  468. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  469. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  470. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  471. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  472. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  473. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  474. package/dist/cache/cf/cf-cache-store.js +0 -242
  475. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  476. package/dist/cache/cf/index.d.ts +0 -14
  477. package/dist/cache/cf/index.d.ts.map +0 -1
  478. package/dist/cache/cf/index.js +0 -17
  479. package/dist/cache/cf/index.js.map +0 -1
  480. package/dist/cache/document-cache.d.ts +0 -64
  481. package/dist/cache/document-cache.d.ts.map +0 -1
  482. package/dist/cache/document-cache.js +0 -228
  483. package/dist/cache/document-cache.js.map +0 -1
  484. package/dist/cache/index.d.ts +0 -19
  485. package/dist/cache/index.d.ts.map +0 -1
  486. package/dist/cache/index.js +0 -21
  487. package/dist/cache/index.js.map +0 -1
  488. package/dist/cache/memory-segment-store.d.ts +0 -110
  489. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  490. package/dist/cache/memory-segment-store.js +0 -117
  491. package/dist/cache/memory-segment-store.js.map +0 -1
  492. package/dist/cache/memory-store.d.ts +0 -41
  493. package/dist/cache/memory-store.d.ts.map +0 -1
  494. package/dist/cache/memory-store.js +0 -191
  495. package/dist/cache/memory-store.js.map +0 -1
  496. package/dist/cache/types.d.ts +0 -317
  497. package/dist/cache/types.d.ts.map +0 -1
  498. package/dist/cache/types.js +0 -12
  499. package/dist/cache/types.js.map +0 -1
  500. package/dist/client.d.ts +0 -248
  501. package/dist/client.d.ts.map +0 -1
  502. package/dist/client.js +0 -367
  503. package/dist/client.js.map +0 -1
  504. package/dist/client.rsc.d.ts +0 -26
  505. package/dist/client.rsc.d.ts.map +0 -1
  506. package/dist/client.rsc.js +0 -46
  507. package/dist/client.rsc.js.map +0 -1
  508. package/dist/component-utils.d.ts +0 -36
  509. package/dist/component-utils.d.ts.map +0 -1
  510. package/dist/component-utils.js +0 -61
  511. package/dist/component-utils.js.map +0 -1
  512. package/dist/components/DefaultDocument.d.ts +0 -13
  513. package/dist/components/DefaultDocument.d.ts.map +0 -1
  514. package/dist/components/DefaultDocument.js +0 -15
  515. package/dist/components/DefaultDocument.js.map +0 -1
  516. package/dist/debug.d.ts +0 -58
  517. package/dist/debug.d.ts.map +0 -1
  518. package/dist/debug.js +0 -157
  519. package/dist/debug.js.map +0 -1
  520. package/dist/default-error-boundary.d.ts +0 -11
  521. package/dist/default-error-boundary.d.ts.map +0 -1
  522. package/dist/default-error-boundary.js +0 -45
  523. package/dist/default-error-boundary.js.map +0 -1
  524. package/dist/deps/browser.d.ts +0 -2
  525. package/dist/deps/browser.d.ts.map +0 -1
  526. package/dist/deps/browser.js +0 -3
  527. package/dist/deps/browser.js.map +0 -1
  528. package/dist/deps/html-stream-client.d.ts +0 -2
  529. package/dist/deps/html-stream-client.d.ts.map +0 -1
  530. package/dist/deps/html-stream-client.js +0 -3
  531. package/dist/deps/html-stream-client.js.map +0 -1
  532. package/dist/deps/html-stream-server.d.ts +0 -2
  533. package/dist/deps/html-stream-server.d.ts.map +0 -1
  534. package/dist/deps/html-stream-server.js +0 -3
  535. package/dist/deps/html-stream-server.js.map +0 -1
  536. package/dist/deps/rsc.d.ts +0 -2
  537. package/dist/deps/rsc.d.ts.map +0 -1
  538. package/dist/deps/rsc.js +0 -4
  539. package/dist/deps/rsc.js.map +0 -1
  540. package/dist/deps/ssr.d.ts +0 -2
  541. package/dist/deps/ssr.d.ts.map +0 -1
  542. package/dist/deps/ssr.js +0 -3
  543. package/dist/deps/ssr.js.map +0 -1
  544. package/dist/errors.d.ts +0 -174
  545. package/dist/errors.d.ts.map +0 -1
  546. package/dist/errors.js +0 -241
  547. package/dist/errors.js.map +0 -1
  548. package/dist/handle.d.ts +0 -78
  549. package/dist/handle.d.ts.map +0 -1
  550. package/dist/handle.js +0 -82
  551. package/dist/handle.js.map +0 -1
  552. package/dist/handles/MetaTags.d.ts +0 -14
  553. package/dist/handles/MetaTags.d.ts.map +0 -1
  554. package/dist/handles/MetaTags.js +0 -136
  555. package/dist/handles/MetaTags.js.map +0 -1
  556. package/dist/handles/index.d.ts +0 -6
  557. package/dist/handles/index.d.ts.map +0 -1
  558. package/dist/handles/index.js +0 -6
  559. package/dist/handles/index.js.map +0 -1
  560. package/dist/handles/meta.d.ts +0 -39
  561. package/dist/handles/meta.d.ts.map +0 -1
  562. package/dist/handles/meta.js +0 -202
  563. package/dist/handles/meta.js.map +0 -1
  564. package/dist/host/__tests__/errors.test.d.ts +0 -2
  565. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  566. package/dist/host/__tests__/errors.test.js +0 -76
  567. package/dist/host/__tests__/errors.test.js.map +0 -1
  568. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  569. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  570. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  571. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  572. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  573. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  574. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  575. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  576. package/dist/host/__tests__/router.test.d.ts +0 -2
  577. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  578. package/dist/host/__tests__/router.test.js +0 -241
  579. package/dist/host/__tests__/router.test.js.map +0 -1
  580. package/dist/host/__tests__/testing.test.d.ts +0 -2
  581. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  582. package/dist/host/__tests__/testing.test.js +0 -64
  583. package/dist/host/__tests__/testing.test.js.map +0 -1
  584. package/dist/host/__tests__/utils.test.d.ts +0 -2
  585. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  586. package/dist/host/__tests__/utils.test.js +0 -29
  587. package/dist/host/__tests__/utils.test.js.map +0 -1
  588. package/dist/host/cookie-handler.d.ts +0 -34
  589. package/dist/host/cookie-handler.d.ts.map +0 -1
  590. package/dist/host/cookie-handler.js +0 -124
  591. package/dist/host/cookie-handler.js.map +0 -1
  592. package/dist/host/errors.d.ts +0 -56
  593. package/dist/host/errors.d.ts.map +0 -1
  594. package/dist/host/errors.js +0 -79
  595. package/dist/host/errors.js.map +0 -1
  596. package/dist/host/index.d.ts +0 -29
  597. package/dist/host/index.d.ts.map +0 -1
  598. package/dist/host/index.js +0 -32
  599. package/dist/host/index.js.map +0 -1
  600. package/dist/host/pattern-matcher.d.ts +0 -36
  601. package/dist/host/pattern-matcher.d.ts.map +0 -1
  602. package/dist/host/pattern-matcher.js +0 -172
  603. package/dist/host/pattern-matcher.js.map +0 -1
  604. package/dist/host/router.d.ts +0 -26
  605. package/dist/host/router.d.ts.map +0 -1
  606. package/dist/host/router.js +0 -218
  607. package/dist/host/router.js.map +0 -1
  608. package/dist/host/testing.d.ts +0 -36
  609. package/dist/host/testing.d.ts.map +0 -1
  610. package/dist/host/testing.js +0 -55
  611. package/dist/host/testing.js.map +0 -1
  612. package/dist/host/types.d.ts +0 -115
  613. package/dist/host/types.d.ts.map +0 -1
  614. package/dist/host/types.js +0 -7
  615. package/dist/host/types.js.map +0 -1
  616. package/dist/host/utils.d.ts +0 -21
  617. package/dist/host/utils.d.ts.map +0 -1
  618. package/dist/host/utils.js +0 -23
  619. package/dist/host/utils.js.map +0 -1
  620. package/dist/href-client.d.ts +0 -131
  621. package/dist/href-client.d.ts.map +0 -1
  622. package/dist/href-client.js +0 -64
  623. package/dist/href-client.js.map +0 -1
  624. package/dist/href-context.d.ts +0 -29
  625. package/dist/href-context.d.ts.map +0 -1
  626. package/dist/href-context.js +0 -21
  627. package/dist/href-context.js.map +0 -1
  628. package/dist/index.d.ts +0 -73
  629. package/dist/index.d.ts.map +0 -1
  630. package/dist/index.js +0 -91
  631. package/dist/index.js.map +0 -1
  632. package/dist/index.rsc.d.ts +0 -32
  633. package/dist/index.rsc.d.ts.map +0 -1
  634. package/dist/index.rsc.js +0 -40
  635. package/dist/index.rsc.js.map +0 -1
  636. package/dist/internal-debug.d.ts +0 -2
  637. package/dist/internal-debug.d.ts.map +0 -1
  638. package/dist/internal-debug.js +0 -5
  639. package/dist/internal-debug.js.map +0 -1
  640. package/dist/loader.d.ts +0 -14
  641. package/dist/loader.d.ts.map +0 -1
  642. package/dist/loader.js +0 -20
  643. package/dist/loader.js.map +0 -1
  644. package/dist/loader.rsc.d.ts +0 -19
  645. package/dist/loader.rsc.d.ts.map +0 -1
  646. package/dist/loader.rsc.js +0 -99
  647. package/dist/loader.rsc.js.map +0 -1
  648. package/dist/network-error-thrower.d.ts +0 -17
  649. package/dist/network-error-thrower.d.ts.map +0 -1
  650. package/dist/network-error-thrower.js +0 -14
  651. package/dist/network-error-thrower.js.map +0 -1
  652. package/dist/outlet-context.d.ts +0 -13
  653. package/dist/outlet-context.d.ts.map +0 -1
  654. package/dist/outlet-context.js +0 -3
  655. package/dist/outlet-context.js.map +0 -1
  656. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  657. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  658. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  659. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  660. package/dist/prerender/param-hash.d.ts +0 -16
  661. package/dist/prerender/param-hash.d.ts.map +0 -1
  662. package/dist/prerender/param-hash.js +0 -36
  663. package/dist/prerender/param-hash.js.map +0 -1
  664. package/dist/prerender/store.d.ts +0 -38
  665. package/dist/prerender/store.d.ts.map +0 -1
  666. package/dist/prerender/store.js +0 -61
  667. package/dist/prerender/store.js.map +0 -1
  668. package/dist/prerender.d.ts +0 -66
  669. package/dist/prerender.d.ts.map +0 -1
  670. package/dist/prerender.js +0 -57
  671. package/dist/prerender.js.map +0 -1
  672. package/dist/reverse.d.ts +0 -196
  673. package/dist/reverse.d.ts.map +0 -1
  674. package/dist/reverse.js +0 -78
  675. package/dist/reverse.js.map +0 -1
  676. package/dist/root-error-boundary.d.ts +0 -33
  677. package/dist/root-error-boundary.d.ts.map +0 -1
  678. package/dist/root-error-boundary.js +0 -165
  679. package/dist/root-error-boundary.js.map +0 -1
  680. package/dist/route-content-wrapper.d.ts +0 -46
  681. package/dist/route-content-wrapper.d.ts.map +0 -1
  682. package/dist/route-content-wrapper.js +0 -77
  683. package/dist/route-content-wrapper.js.map +0 -1
  684. package/dist/route-definition.d.ts +0 -421
  685. package/dist/route-definition.d.ts.map +0 -1
  686. package/dist/route-definition.js +0 -868
  687. package/dist/route-definition.js.map +0 -1
  688. package/dist/route-map-builder.d.ts +0 -155
  689. package/dist/route-map-builder.d.ts.map +0 -1
  690. package/dist/route-map-builder.js +0 -237
  691. package/dist/route-map-builder.js.map +0 -1
  692. package/dist/route-types.d.ts +0 -165
  693. package/dist/route-types.d.ts.map +0 -1
  694. package/dist/route-types.js +0 -7
  695. package/dist/route-types.js.map +0 -1
  696. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  697. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  698. package/dist/router/__tests__/handler-context.test.js +0 -65
  699. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  700. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  701. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  702. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  703. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  704. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  705. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  706. package/dist/router/__tests__/match-context.test.js +0 -92
  707. package/dist/router/__tests__/match-context.test.js.map +0 -1
  708. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  709. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  710. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  711. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  712. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  713. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  714. package/dist/router/__tests__/match-result.test.js +0 -457
  715. package/dist/router/__tests__/match-result.test.js.map +0 -1
  716. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  717. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  718. package/dist/router/__tests__/on-error.test.js +0 -678
  719. package/dist/router/__tests__/on-error.test.js.map +0 -1
  720. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  721. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  722. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  723. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  724. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  725. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  726. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  727. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  728. package/dist/router/error-handling.d.ts +0 -77
  729. package/dist/router/error-handling.d.ts.map +0 -1
  730. package/dist/router/error-handling.js +0 -202
  731. package/dist/router/error-handling.js.map +0 -1
  732. package/dist/router/handler-context.d.ts +0 -20
  733. package/dist/router/handler-context.d.ts.map +0 -1
  734. package/dist/router/handler-context.js +0 -198
  735. package/dist/router/handler-context.js.map +0 -1
  736. package/dist/router/intercept-resolution.d.ts +0 -66
  737. package/dist/router/intercept-resolution.d.ts.map +0 -1
  738. package/dist/router/intercept-resolution.js +0 -246
  739. package/dist/router/intercept-resolution.js.map +0 -1
  740. package/dist/router/loader-resolution.d.ts +0 -64
  741. package/dist/router/loader-resolution.d.ts.map +0 -1
  742. package/dist/router/loader-resolution.js +0 -284
  743. package/dist/router/loader-resolution.js.map +0 -1
  744. package/dist/router/logging.d.ts +0 -15
  745. package/dist/router/logging.d.ts.map +0 -1
  746. package/dist/router/logging.js +0 -99
  747. package/dist/router/logging.js.map +0 -1
  748. package/dist/router/manifest.d.ts +0 -22
  749. package/dist/router/manifest.d.ts.map +0 -1
  750. package/dist/router/manifest.js +0 -181
  751. package/dist/router/manifest.js.map +0 -1
  752. package/dist/router/match-api.d.ts +0 -35
  753. package/dist/router/match-api.d.ts.map +0 -1
  754. package/dist/router/match-api.js +0 -406
  755. package/dist/router/match-api.js.map +0 -1
  756. package/dist/router/match-context.d.ts +0 -206
  757. package/dist/router/match-context.d.ts.map +0 -1
  758. package/dist/router/match-context.js +0 -17
  759. package/dist/router/match-context.js.map +0 -1
  760. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  761. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  762. package/dist/router/match-middleware/background-revalidation.js +0 -75
  763. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  764. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  765. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  766. package/dist/router/match-middleware/cache-lookup.js +0 -257
  767. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  768. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  769. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  770. package/dist/router/match-middleware/cache-store.js +0 -108
  771. package/dist/router/match-middleware/cache-store.js.map +0 -1
  772. package/dist/router/match-middleware/index.d.ts +0 -81
  773. package/dist/router/match-middleware/index.d.ts.map +0 -1
  774. package/dist/router/match-middleware/index.js +0 -80
  775. package/dist/router/match-middleware/index.js.map +0 -1
  776. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  777. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  778. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  779. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  780. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  781. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  782. package/dist/router/match-middleware/segment-resolution.js +0 -53
  783. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  784. package/dist/router/match-pipelines.d.ts +0 -147
  785. package/dist/router/match-pipelines.d.ts.map +0 -1
  786. package/dist/router/match-pipelines.js +0 -82
  787. package/dist/router/match-pipelines.js.map +0 -1
  788. package/dist/router/match-result.d.ts +0 -126
  789. package/dist/router/match-result.d.ts.map +0 -1
  790. package/dist/router/match-result.js +0 -93
  791. package/dist/router/match-result.js.map +0 -1
  792. package/dist/router/metrics.d.ts +0 -20
  793. package/dist/router/metrics.d.ts.map +0 -1
  794. package/dist/router/metrics.js +0 -47
  795. package/dist/router/metrics.js.map +0 -1
  796. package/dist/router/middleware.d.ts +0 -249
  797. package/dist/router/middleware.d.ts.map +0 -1
  798. package/dist/router/middleware.js +0 -434
  799. package/dist/router/middleware.js.map +0 -1
  800. package/dist/router/middleware.test.d.ts +0 -2
  801. package/dist/router/middleware.test.d.ts.map +0 -1
  802. package/dist/router/middleware.test.js +0 -816
  803. package/dist/router/middleware.test.js.map +0 -1
  804. package/dist/router/pattern-matching.d.ts +0 -149
  805. package/dist/router/pattern-matching.d.ts.map +0 -1
  806. package/dist/router/pattern-matching.js +0 -349
  807. package/dist/router/pattern-matching.js.map +0 -1
  808. package/dist/router/revalidation.d.ts +0 -44
  809. package/dist/router/revalidation.d.ts.map +0 -1
  810. package/dist/router/revalidation.js +0 -147
  811. package/dist/router/revalidation.js.map +0 -1
  812. package/dist/router/router-context.d.ts +0 -135
  813. package/dist/router/router-context.d.ts.map +0 -1
  814. package/dist/router/router-context.js +0 -36
  815. package/dist/router/router-context.js.map +0 -1
  816. package/dist/router/segment-resolution.d.ts +0 -127
  817. package/dist/router/segment-resolution.d.ts.map +0 -1
  818. package/dist/router/segment-resolution.js +0 -919
  819. package/dist/router/segment-resolution.js.map +0 -1
  820. package/dist/router/trie-matching.d.ts +0 -40
  821. package/dist/router/trie-matching.d.ts.map +0 -1
  822. package/dist/router/trie-matching.js +0 -127
  823. package/dist/router/trie-matching.js.map +0 -1
  824. package/dist/router/types.d.ts +0 -136
  825. package/dist/router/types.d.ts.map +0 -1
  826. package/dist/router/types.js +0 -7
  827. package/dist/router/types.js.map +0 -1
  828. package/dist/router.d.ts +0 -753
  829. package/dist/router.d.ts.map +0 -1
  830. package/dist/router.gen.d.ts +0 -6
  831. package/dist/router.gen.d.ts.map +0 -1
  832. package/dist/router.gen.js +0 -6
  833. package/dist/router.gen.js.map +0 -1
  834. package/dist/router.js +0 -1304
  835. package/dist/router.js.map +0 -1
  836. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  837. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  838. package/dist/rsc/__tests__/helpers.test.js +0 -140
  839. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  840. package/dist/rsc/handler.d.ts +0 -45
  841. package/dist/rsc/handler.d.ts.map +0 -1
  842. package/dist/rsc/handler.js +0 -1172
  843. package/dist/rsc/handler.js.map +0 -1
  844. package/dist/rsc/helpers.d.ts +0 -16
  845. package/dist/rsc/helpers.d.ts.map +0 -1
  846. package/dist/rsc/helpers.js +0 -55
  847. package/dist/rsc/helpers.js.map +0 -1
  848. package/dist/rsc/index.d.ts +0 -22
  849. package/dist/rsc/index.d.ts.map +0 -1
  850. package/dist/rsc/index.js +0 -23
  851. package/dist/rsc/index.js.map +0 -1
  852. package/dist/rsc/nonce.d.ts +0 -9
  853. package/dist/rsc/nonce.d.ts.map +0 -1
  854. package/dist/rsc/nonce.js +0 -18
  855. package/dist/rsc/nonce.js.map +0 -1
  856. package/dist/rsc/types.d.ts +0 -206
  857. package/dist/rsc/types.d.ts.map +0 -1
  858. package/dist/rsc/types.js +0 -8
  859. package/dist/rsc/types.js.map +0 -1
  860. package/dist/search-params.d.ts +0 -103
  861. package/dist/search-params.d.ts.map +0 -1
  862. package/dist/search-params.js +0 -74
  863. package/dist/search-params.js.map +0 -1
  864. package/dist/segment-system.d.ts +0 -75
  865. package/dist/segment-system.d.ts.map +0 -1
  866. package/dist/segment-system.js +0 -336
  867. package/dist/segment-system.js.map +0 -1
  868. package/dist/server/context.d.ts +0 -245
  869. package/dist/server/context.d.ts.map +0 -1
  870. package/dist/server/context.js +0 -197
  871. package/dist/server/context.js.map +0 -1
  872. package/dist/server/fetchable-loader-store.d.ts +0 -18
  873. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  874. package/dist/server/fetchable-loader-store.js +0 -18
  875. package/dist/server/fetchable-loader-store.js.map +0 -1
  876. package/dist/server/handle-store.d.ts +0 -85
  877. package/dist/server/handle-store.d.ts.map +0 -1
  878. package/dist/server/handle-store.js +0 -142
  879. package/dist/server/handle-store.js.map +0 -1
  880. package/dist/server/loader-registry.d.ts +0 -55
  881. package/dist/server/loader-registry.d.ts.map +0 -1
  882. package/dist/server/loader-registry.js +0 -132
  883. package/dist/server/loader-registry.js.map +0 -1
  884. package/dist/server/request-context.d.ts +0 -226
  885. package/dist/server/request-context.d.ts.map +0 -1
  886. package/dist/server/request-context.js +0 -290
  887. package/dist/server/request-context.js.map +0 -1
  888. package/dist/server/root-layout.d.ts +0 -4
  889. package/dist/server/root-layout.d.ts.map +0 -1
  890. package/dist/server/root-layout.js +0 -5
  891. package/dist/server/root-layout.js.map +0 -1
  892. package/dist/server.d.ts +0 -15
  893. package/dist/server.d.ts.map +0 -1
  894. package/dist/server.js +0 -20
  895. package/dist/server.js.map +0 -1
  896. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  897. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  898. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  899. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  900. package/dist/ssr/index.d.ts +0 -98
  901. package/dist/ssr/index.d.ts.map +0 -1
  902. package/dist/ssr/index.js +0 -158
  903. package/dist/ssr/index.js.map +0 -1
  904. package/dist/static-handler.d.ts +0 -50
  905. package/dist/static-handler.d.ts.map +0 -1
  906. package/dist/static-handler.gen.d.ts +0 -5
  907. package/dist/static-handler.gen.d.ts.map +0 -1
  908. package/dist/static-handler.gen.js +0 -5
  909. package/dist/static-handler.gen.js.map +0 -1
  910. package/dist/static-handler.js +0 -29
  911. package/dist/static-handler.js.map +0 -1
  912. package/dist/theme/ThemeProvider.d.ts +0 -20
  913. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  914. package/dist/theme/ThemeProvider.js +0 -240
  915. package/dist/theme/ThemeProvider.js.map +0 -1
  916. package/dist/theme/ThemeScript.d.ts +0 -48
  917. package/dist/theme/ThemeScript.d.ts.map +0 -1
  918. package/dist/theme/ThemeScript.js +0 -13
  919. package/dist/theme/ThemeScript.js.map +0 -1
  920. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  921. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  922. package/dist/theme/__tests__/theme.test.js +0 -103
  923. package/dist/theme/__tests__/theme.test.js.map +0 -1
  924. package/dist/theme/constants.d.ts +0 -29
  925. package/dist/theme/constants.d.ts.map +0 -1
  926. package/dist/theme/constants.js +0 -48
  927. package/dist/theme/constants.js.map +0 -1
  928. package/dist/theme/index.d.ts +0 -31
  929. package/dist/theme/index.d.ts.map +0 -1
  930. package/dist/theme/index.js +0 -36
  931. package/dist/theme/index.js.map +0 -1
  932. package/dist/theme/theme-context.d.ts +0 -40
  933. package/dist/theme/theme-context.d.ts.map +0 -1
  934. package/dist/theme/theme-context.js +0 -60
  935. package/dist/theme/theme-context.js.map +0 -1
  936. package/dist/theme/theme-script.d.ts +0 -27
  937. package/dist/theme/theme-script.d.ts.map +0 -1
  938. package/dist/theme/theme-script.js +0 -147
  939. package/dist/theme/theme-script.js.map +0 -1
  940. package/dist/theme/types.d.ts +0 -163
  941. package/dist/theme/types.d.ts.map +0 -1
  942. package/dist/theme/types.js +0 -11
  943. package/dist/theme/types.js.map +0 -1
  944. package/dist/theme/use-theme.d.ts +0 -12
  945. package/dist/theme/use-theme.d.ts.map +0 -1
  946. package/dist/theme/use-theme.js +0 -40
  947. package/dist/theme/use-theme.js.map +0 -1
  948. package/dist/types.d.ts +0 -1479
  949. package/dist/types.d.ts.map +0 -1
  950. package/dist/types.js +0 -10
  951. package/dist/types.js.map +0 -1
  952. package/dist/urls.d.ts +0 -441
  953. package/dist/urls.d.ts.map +0 -1
  954. package/dist/urls.gen.d.ts +0 -8
  955. package/dist/urls.gen.d.ts.map +0 -1
  956. package/dist/urls.gen.js +0 -8
  957. package/dist/urls.gen.js.map +0 -1
  958. package/dist/urls.js +0 -443
  959. package/dist/urls.js.map +0 -1
  960. package/dist/use-loader.d.ts +0 -127
  961. package/dist/use-loader.d.ts.map +0 -1
  962. package/dist/use-loader.js +0 -237
  963. package/dist/use-loader.js.map +0 -1
  964. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  965. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  966. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  967. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  968. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  969. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  970. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  971. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  972. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  973. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  974. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  975. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  976. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  977. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  978. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  979. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  980. package/dist/vite/ast-handler-extract.d.ts +0 -49
  981. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  982. package/dist/vite/ast-handler-extract.js +0 -249
  983. package/dist/vite/ast-handler-extract.js.map +0 -1
  984. package/dist/vite/expose-action-id.d.ts +0 -19
  985. package/dist/vite/expose-action-id.d.ts.map +0 -1
  986. package/dist/vite/expose-action-id.js +0 -250
  987. package/dist/vite/expose-action-id.js.map +0 -1
  988. package/dist/vite/expose-id-utils.d.ts +0 -69
  989. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  990. package/dist/vite/expose-id-utils.js +0 -289
  991. package/dist/vite/expose-id-utils.js.map +0 -1
  992. package/dist/vite/expose-internal-ids.d.ts +0 -22
  993. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  994. package/dist/vite/expose-internal-ids.js +0 -886
  995. package/dist/vite/expose-internal-ids.js.map +0 -1
  996. package/dist/vite/index.d.ts +0 -149
  997. package/dist/vite/index.d.ts.map +0 -1
  998. package/dist/vite/index.js.bak +0 -5448
  999. package/dist/vite/index.js.map +0 -1
  1000. package/dist/vite/index.named-routes.gen.ts +0 -103
  1001. package/dist/vite/package-resolution.d.ts +0 -43
  1002. package/dist/vite/package-resolution.d.ts.map +0 -1
  1003. package/dist/vite/package-resolution.js +0 -112
  1004. package/dist/vite/package-resolution.js.map +0 -1
  1005. package/dist/vite/virtual-entries.d.ts +0 -25
  1006. package/dist/vite/virtual-entries.d.ts.map +0 -1
  1007. package/dist/vite/virtual-entries.js +0 -110
  1008. package/dist/vite/virtual-entries.js.map +0 -1
  1009. package/src/browser/shallow.ts +0 -40
@@ -1,9 +1,3 @@
1
- /**
2
- * Cookie Override Handler
3
- *
4
- * Manages cookie-based host override for development environments.
5
- */
6
-
7
1
  import type { HostOverrideConfig } from "./types.js";
8
2
  import type { RouterRequestInput } from "../router/router-interfaces.js";
9
3
  import { matchPattern, parseRequest } from "./pattern-matcher.js";
@@ -13,9 +7,6 @@ import {
13
7
  HostValidationError,
14
8
  } from "./errors.js";
15
9
 
16
- /**
17
- * Parse cookies from request
18
- */
19
10
  export function parseCookies(request: Request): Record<string, string> {
20
11
  const cookieHeader = request.headers.get("cookie");
21
12
  if (!cookieHeader) {
@@ -40,24 +31,15 @@ export function parseCookies(request: Request): Record<string, string> {
40
31
  return cookies;
41
32
  }
42
33
 
43
- /**
44
- * Get cookie value from request
45
- */
46
34
  export function getCookie(request: Request, name: string): string | undefined {
47
35
  const cookies = parseCookies(request);
48
36
  return cookies[name];
49
37
  }
50
38
 
51
- /**
52
- * Create Set-Cookie header to delete a cookie
53
- */
54
39
  export function createDeleteCookieHeader(name: string): string {
55
40
  return `${name}=; Max-Age=0; Path=/; Secure; HttpOnly`;
56
41
  }
57
42
 
58
- /**
59
- * Create error response with cookie deletion
60
- */
61
43
  export function createCookieErrorResponse(
62
44
  cookieName: string,
63
45
  message: string,
@@ -77,9 +59,6 @@ export function createCookieErrorResponse(
77
59
  );
78
60
  }
79
61
 
80
- /**
81
- * Check if current host is allowed to use override
82
- */
83
62
  export function isHostAllowed(
84
63
  request: Request,
85
64
  allowedHosts: string[],
@@ -95,12 +74,6 @@ export function isHostAllowed(
95
74
  return false;
96
75
  }
97
76
 
98
- /**
99
- * Handle cookie override logic
100
- *
101
- * Returns overridden hostname if valid, original hostname if no override.
102
- * Throws errors for invalid overrides.
103
- */
104
77
  export function handleCookieOverride(
105
78
  request: Request,
106
79
  config: HostOverrideConfig | undefined,
@@ -115,46 +88,37 @@ export function handleCookieOverride(
115
88
  const cookieValue = getCookie(request, cookieName);
116
89
  const { hostname: originalHostname } = parseRequest(request);
117
90
 
118
- // No cookie - return original hostname
119
91
  if (!cookieValue) {
120
92
  return originalHostname;
121
93
  }
122
94
 
123
- // Check if current host is allowed
124
95
  const allowed = isHostAllowed(request, allowedHosts);
125
96
 
126
- // If not allowed, throw error
127
97
  if (!allowed) {
128
98
  throw new HostOverrideNotAllowedError(originalHostname, cookieName, {
129
99
  cause: { cookieValue, currentHost: originalHostname },
130
100
  });
131
101
  }
132
102
 
133
- // If allowed and has custom validation, run it
134
103
  if (validate) {
135
104
  try {
136
105
  const validatedHostname = validate(request, cookieValue, input);
137
106
  return validatedHostname;
138
107
  } catch (error) {
139
- // Wrap in HostValidationError
140
108
  const message = error instanceof Error ? error.message : String(error);
141
109
  throw new HostValidationError(message, error);
142
110
  }
143
111
  }
144
112
 
145
- // Default validation - verify it's a valid hostname using URL constructor
146
113
  try {
147
- // Try to construct a URL with the hostname to validate it
148
114
  const testUrl = new URL(`https://${cookieValue}`);
149
115
 
150
- // Ensure the hostname matches what we provided (URL constructor normalizes it)
151
116
  if (testUrl.hostname !== cookieValue) {
152
117
  throw new InvalidHostnameError(cookieValue, {
153
118
  cause: { original: cookieValue, normalized: testUrl.hostname },
154
119
  });
155
120
  }
156
121
  } catch (error) {
157
- // If URL constructor failed, throw InvalidHostnameError with cause
158
122
  if (error instanceof InvalidHostnameError) {
159
123
  throw error;
160
124
  }
@@ -4,16 +4,10 @@
4
4
  * All host router errors extend HostRouterError for easy instance checking.
5
5
  */
6
6
 
7
- /**
8
- * Error options with cause
9
- */
10
7
  interface ErrorOptions {
11
8
  cause?: unknown;
12
9
  }
13
10
 
14
- /**
15
- * Base error class for all host router errors
16
- */
17
11
  export class HostRouterError extends Error {
18
12
  cause?: unknown;
19
13
 
@@ -27,9 +21,6 @@ export class HostRouterError extends Error {
27
21
  }
28
22
  }
29
23
 
30
- /**
31
- * Error thrown when pattern validation fails
32
- */
33
24
  export class InvalidPatternError extends HostRouterError {
34
25
  constructor(pattern: string, reason: string, options?: ErrorOptions) {
35
26
  super(`Invalid pattern "${pattern}": ${reason}`, options);
@@ -38,9 +29,6 @@ export class InvalidPatternError extends HostRouterError {
38
29
  }
39
30
  }
40
31
 
41
- /**
42
- * Error thrown when cookie override is not allowed
43
- */
44
32
  export class HostOverrideNotAllowedError extends HostRouterError {
45
33
  constructor(currentHost: string, cookieName: string, options?: ErrorOptions) {
46
34
  super(
@@ -52,9 +40,6 @@ export class HostOverrideNotAllowedError extends HostRouterError {
52
40
  }
53
41
  }
54
42
 
55
- /**
56
- * Error thrown when cookie hostname is invalid
57
- */
58
43
  export class InvalidHostnameError extends HostRouterError {
59
44
  constructor(hostname: string, options?: ErrorOptions) {
60
45
  super(`Invalid hostname format: "${hostname}"`, options);
@@ -63,9 +48,6 @@ export class InvalidHostnameError extends HostRouterError {
63
48
  }
64
49
  }
65
50
 
66
- /**
67
- * Error thrown when custom validation fails
68
- */
69
51
  export class HostValidationError extends HostRouterError {
70
52
  constructor(message: string, cause?: unknown) {
71
53
  super(message, { cause });
@@ -74,9 +56,6 @@ export class HostValidationError extends HostRouterError {
74
56
  }
75
57
  }
76
58
 
77
- /**
78
- * Error thrown when no route matches
79
- */
80
59
  export class NoRouteMatchError extends HostRouterError {
81
60
  constructor(hostname: string, pathname: string, options?: ErrorOptions) {
82
61
  super(`No route matched for ${hostname}${pathname}`, options);
@@ -85,9 +64,6 @@ export class NoRouteMatchError extends HostRouterError {
85
64
  }
86
65
  }
87
66
 
88
- /**
89
- * Error thrown when handler type is invalid
90
- */
91
67
  export class InvalidHandlerError extends HostRouterError {
92
68
  constructor(handler: unknown, options?: ErrorOptions) {
93
69
  super(`Invalid handler type: ${typeof handler}`, options);
package/src/host/index.ts CHANGED
@@ -20,6 +20,12 @@
20
20
  * }
21
21
  * };
22
22
  * ```
23
+ *
24
+ * The host surface (`Handler`, `Middleware`, `match`, `HostOverrideConfig.validate`)
25
+ * types `input` as `RouterRequestInput<any>` by design: a host router fans out to
26
+ * heterogeneous sub-apps with differing env/vars shapes, so there is no single
27
+ * `TEnv`/`TVars` to thread through. `input.env`/`input.vars` are therefore `any`
28
+ * here; the typed env shape lives on each sub-app's `createRouter<TEnv>()`.
23
29
  */
24
30
 
25
31
  // Core router
@@ -12,15 +12,18 @@
12
12
  * - `**.example.com` - any depth subdomain
13
13
  * - `admin.*` - admin subdomain of any apex
14
14
  * - `example.com/admin` - specific domain with path prefix
15
+ *
16
+ * Apex vs subdomain is classified purely by dot-part COUNT (apex == exactly 2
17
+ * parts) — there is no Public Suffix List. A registrable domain under a
18
+ * multi-label public suffix (example.co.uk, shop.com.au) has 3+ parts and is
19
+ * therefore treated as a SUBDOMAIN, not an apex: `.`/`*` will NOT match it and
20
+ * `*.` WILL. If registrable-domain accuracy matters for a host-router consumer,
21
+ * supply an explicit apex/host hint rather than relying on the part count.
15
22
  */
16
23
 
17
24
  import { InvalidPatternError } from "./errors.js";
18
25
 
19
- /**
20
- * Normalize a pattern by removing trailing slashes from paths
21
- */
22
26
  export function normalizePattern(pattern: string): string {
23
- // If pattern has a path component, remove trailing slash
24
27
  const slashIndex = pattern.indexOf("/");
25
28
  if (slashIndex !== -1) {
26
29
  const domain = pattern.slice(0, slashIndex);
@@ -30,9 +33,6 @@ export function normalizePattern(pattern: string): string {
30
33
  return pattern;
31
34
  }
32
35
 
33
- /**
34
- * Parse hostname and path from request URL
35
- */
36
36
  export function parseRequest(request: Request): {
37
37
  hostname: string;
38
38
  pathname: string;
@@ -46,26 +46,14 @@ export function parseRequest(request: Request): {
46
46
  return { hostname, pathname, parts };
47
47
  }
48
48
 
49
- /**
50
- * Count subdomain levels (0 for apex, 1+ for subdomains)
51
- */
52
49
  function getSubdomainLevel(parts: string[]): number {
53
- // Apex domain has 2 parts (example.com)
54
- // Single subdomain has 3 parts (www.example.com)
55
- // Multi-level has 4+ parts (a.b.example.com)
56
50
  return Math.max(0, parts.length - 2);
57
51
  }
58
52
 
59
- /**
60
- * Check if hostname is an apex domain (no subdomains)
61
- */
62
53
  function isApexDomain(parts: string[]): boolean {
63
54
  return parts.length === 2;
64
55
  }
65
56
 
66
- /**
67
- * Match a single pattern against hostname and path
68
- */
69
57
  export function matchPattern(
70
58
  pattern: string,
71
59
  hostname: string,
@@ -74,19 +62,16 @@ export function matchPattern(
74
62
  ): boolean {
75
63
  const normalized = normalizePattern(pattern);
76
64
 
77
- // Check if pattern has path component
78
65
  const slashIndex = normalized.indexOf("/");
79
66
  const hasPath = slashIndex !== -1;
80
67
  const domainPattern = hasPath ? normalized.slice(0, slashIndex) : normalized;
81
68
  const pathPattern = hasPath ? normalized.slice(slashIndex) : null;
82
69
 
83
- // First match domain
84
70
  const domainMatch = matchDomainPattern(domainPattern, hostname, parts);
85
71
  if (!domainMatch) {
86
72
  return false;
87
73
  }
88
74
 
89
- // Then match path (prefix match)
90
75
  if (pathPattern) {
91
76
  return pathname === pathPattern || pathname.startsWith(pathPattern + "/");
92
77
  }
@@ -94,81 +79,62 @@ export function matchPattern(
94
79
  return true;
95
80
  }
96
81
 
97
- /**
98
- * Match domain pattern against hostname
99
- */
100
82
  function matchDomainPattern(
101
83
  pattern: string,
102
84
  hostname: string,
103
85
  parts: string[],
104
86
  ): boolean {
105
- // Exact match
106
87
  if (pattern === hostname) {
107
88
  return true;
108
89
  }
109
90
 
110
- // `.` or `*` - any apex domain
111
91
  if (pattern === "." || pattern === "*") {
112
92
  return isApexDomain(parts);
113
93
  }
114
94
 
115
- // `**` - any domain (apex + all subdomains)
116
95
  if (pattern === "**") {
117
96
  return true;
118
97
  }
119
98
 
120
- // `*.` - any single-level subdomain
121
99
  if (pattern === "*.") {
122
100
  return getSubdomainLevel(parts) === 1;
123
101
  }
124
102
 
125
- // `**.` - any multi-level subdomain (2+ levels)
126
103
  if (pattern === "**.") {
127
104
  return getSubdomainLevel(parts) >= 2;
128
105
  }
129
106
 
130
- // `*.tld` - any apex domain with specific TLD (e.g., *.com)
131
107
  if (pattern.startsWith("*.") && !pattern.includes(".", 2)) {
132
108
  const tld = pattern.slice(2);
133
109
  return isApexDomain(parts) && hostname.endsWith("." + tld);
134
110
  }
135
111
 
136
- // `*.example.com` - single subdomain of specific domain
137
112
  if (pattern.startsWith("*.")) {
138
113
  const baseDomain = pattern.slice(2);
139
114
  if (hostname.endsWith("." + baseDomain)) {
140
- // Count parts: if pattern is *.example.com (3 parts),
141
- // hostname should have exactly 4 parts (www.example.com)
142
115
  const patternParts = baseDomain.split(".");
143
116
  return parts.length === patternParts.length + 1;
144
117
  }
145
118
  return false;
146
119
  }
147
120
 
148
- // `**.example.com` - any depth subdomain of specific domain
149
121
  if (pattern.startsWith("**.")) {
150
122
  const baseDomain = pattern.slice(3);
151
123
  if (hostname.endsWith("." + baseDomain)) {
152
124
  const patternParts = baseDomain.split(".");
153
- // Must have more parts than the base domain (i.e., has subdomains)
154
125
  return parts.length > patternParts.length;
155
126
  }
156
127
  return false;
157
128
  }
158
129
 
159
- // `subdomain.*` - specific subdomain of any apex domain
160
- // e.g., admin.* matches admin.example.com, admin.google.com
161
130
  if (pattern.endsWith(".*")) {
162
131
  const subdomain = pattern.slice(0, -2);
163
- // Must be single-level subdomain (3 parts total)
164
132
  if (parts.length === 3 && parts[0] === subdomain) {
165
133
  return true;
166
134
  }
167
135
  return false;
168
136
  }
169
137
 
170
- // `subdomain.**` - specific subdomain of any domain (including multi-level)
171
- // e.g., admin.** matches admin.example.com, admin.sub.example.com
172
138
  if (pattern.endsWith(".**")) {
173
139
  const subdomain = pattern.slice(0, -3);
174
140
  if (parts.length >= 3 && parts[0] === subdomain) {
@@ -177,11 +143,8 @@ function matchDomainPattern(
177
143
  return false;
178
144
  }
179
145
 
180
- // `subdomain.` - specific subdomain of any apex domain (no wildcard)
181
- // e.g., admin. matches admin.example.com, admin.google.com
182
146
  if (pattern.endsWith(".") && !pattern.includes("*")) {
183
147
  const subdomain = pattern.slice(0, -1);
184
- // Must be exactly 3 parts (subdomain.domain.tld)
185
148
  if (parts.length === 3 && parts[0] === subdomain) {
186
149
  return true;
187
150
  }
@@ -191,9 +154,6 @@ function matchDomainPattern(
191
154
  return false;
192
155
  }
193
156
 
194
- /**
195
- * Validate pattern format
196
- */
197
157
  export function validatePattern(pattern: string): void {
198
158
  if (!pattern || typeof pattern !== "string") {
199
159
  throw new InvalidPatternError(
@@ -203,12 +163,9 @@ export function validatePattern(pattern: string): void {
203
163
  );
204
164
  }
205
165
 
206
- // Check for invalid characters (spaces, etc.)
207
166
  if (/\s/.test(pattern)) {
208
167
  throw new InvalidPatternError(pattern, "contains whitespace", {
209
168
  cause: { pattern },
210
169
  });
211
170
  }
212
-
213
- // Additional validation can be added here
214
171
  }
@@ -32,27 +32,16 @@ import {
32
32
  InvalidHandlerError,
33
33
  } from "./errors.js";
34
34
 
35
- /**
36
- * Registry entry for a host router instance.
37
- * Stores references to the live routes array and fallback, so the discovery
38
- * plugin can iterate handlers registered after createHostRouter() returns.
39
- */
40
35
  export interface HostRouterRegistryEntry {
41
36
  routes: RouteEntry[];
42
37
  fallback: RouteEntry | null;
43
38
  }
44
39
 
45
- /**
46
- * Global registry for host routers (parallel to RouterRegistry for RSC routers).
47
- * Populated by createHostRouter() so the build-time discovery plugin can find
48
- * host routers and resolve their lazy handlers to trigger sub-app createRouter() calls.
49
- */
50
40
  export const HostRouterRegistry: Map<string, HostRouterRegistryEntry> =
51
41
  new Map();
52
42
 
53
43
  let hostRouterAutoId = 0;
54
44
 
55
- /** Whether a value is thenable (a Promise or Promise-like). */
56
45
  function isThenable(value: unknown): value is PromiseLike<unknown> {
57
46
  return (
58
47
  value !== null &&
@@ -61,12 +50,6 @@ function isThenable(value: unknown): value is PromiseLike<unknown> {
61
50
  );
62
51
  }
63
52
 
64
- /**
65
- * Whether a resolved value looks like a module namespace from a lazy import -
66
- * an object with a `default` export that is a function (a Handler) or a host
67
- * router (an object with `match`). Used to detect a `.map(() => import(...))`
68
- * misuse: an inline handler should return a Response, not a module.
69
- */
70
53
  function looksLikeLazyModule(value: unknown): boolean {
71
54
  if (value === null || typeof value !== "object" || !("default" in value)) {
72
55
  return false;
@@ -80,9 +63,6 @@ function looksLikeLazyModule(value: unknown): boolean {
80
63
  );
81
64
  }
82
65
 
83
- /**
84
- * Create a host router
85
- */
86
66
  export function createHostRouter(options: HostRouterOptions = {}): HostRouter {
87
67
  const routes: RouteEntry[] = [];
88
68
  const globalMiddleware: Middleware[] = [];
@@ -96,9 +76,6 @@ export function createHostRouter(options: HostRouterOptions = {}): HostRouter {
96
76
  }
97
77
  }
98
78
 
99
- /**
100
- * Create a route builder for chaining
101
- */
102
79
  function createRouteBuilder(
103
80
  patterns: string[],
104
81
  isFallback = false,
@@ -147,9 +124,6 @@ export function createHostRouter(options: HostRouterOptions = {}): HostRouter {
147
124
  };
148
125
  }
149
126
 
150
- /**
151
- * Find matching route for hostname and path
152
- */
153
127
  function findMatchingRoute(
154
128
  hostname: string,
155
129
  pathname: string,
@@ -168,9 +142,6 @@ export function createHostRouter(options: HostRouterOptions = {}): HostRouter {
168
142
  return null;
169
143
  }
170
144
 
171
- /**
172
- * Execute middleware chain
173
- */
174
145
  async function executeMiddleware(
175
146
  middleware: Middleware[],
176
147
  request: Request,
@@ -189,8 +160,6 @@ export function createHostRouter(options: HostRouterOptions = {}): HostRouter {
189
160
  return finalHandler();
190
161
  }
191
162
 
192
- // Guard against double next() calls — a second call would
193
- // re-enter the downstream chain and run handlers/side-effects twice.
194
163
  let nextCalled = false;
195
164
  const guardedNext = (): Promise<Response> => {
196
165
  if (nextCalled) {
@@ -208,15 +177,6 @@ export function createHostRouter(options: HostRouterOptions = {}): HostRouter {
208
177
  return next();
209
178
  }
210
179
 
211
- /**
212
- * Execute a route entry, branching on its declared kind:
213
- * - "lazy": await the loader, then delegate to the default export
214
- * (a nested HostRouter via `.match`, or a request Handler directly).
215
- * - "handler": call the inline handler with the request. A `.map()` handler
216
- * that resolves to a module namespace (`{ default }`) is almost certainly
217
- * a misused lazy import, so it is rejected with a clear message rather
218
- * than silently returning a module object as the response.
219
- */
220
180
  async function executeHandler(
221
181
  entry: RouteEntry,
222
182
  request: Request,
@@ -236,8 +196,6 @@ export function createHostRouter(options: HostRouterOptions = {}): HostRouter {
236
196
 
237
197
  const result = (handler as Handler)(request, input);
238
198
 
239
- // Inline handlers may be async; await to obtain the Response and to run the
240
- // misuse guard below.
241
199
  if (isThenable(result)) {
242
200
  const awaited = await result;
243
201
  if (looksLikeLazyModule(awaited)) {
@@ -251,10 +209,6 @@ export function createHostRouter(options: HostRouterOptions = {}): HostRouter {
251
209
  return result;
252
210
  }
253
211
 
254
- /**
255
- * Resolve a `.lazy()` mount: invoke the zero-arg loader, then dispatch to the
256
- * module's default export.
257
- */
258
212
  async function executeLazyMount(
259
213
  loader: LazyHandler,
260
214
  request: Request,
@@ -266,7 +220,6 @@ export function createHostRouter(options: HostRouterOptions = {}): HostRouter {
266
220
  const defaultExport = (module as { default: Handler | HostRouter })
267
221
  .default;
268
222
 
269
- // Default export is a nested host router
270
223
  if (
271
224
  typeof defaultExport === "object" &&
272
225
  defaultExport !== null &&
@@ -275,7 +228,6 @@ export function createHostRouter(options: HostRouterOptions = {}): HostRouter {
275
228
  return (defaultExport as HostRouter).match(request, input);
276
229
  }
277
230
 
278
- // Otherwise treat the default export as a request handler
279
231
  return (defaultExport as Handler)(request, input);
280
232
  }
281
233
 
@@ -288,14 +240,10 @@ export function createHostRouter(options: HostRouterOptions = {}): HostRouter {
288
240
  });
289
241
  }
290
242
 
291
- /**
292
- * Router instance
293
- */
294
243
  const router: HostRouter = {
295
244
  host(patterns: HostPattern): HostRouteBuilder {
296
245
  const patternsArray = Array.isArray(patterns) ? patterns : [patterns];
297
246
 
298
- // Validate and normalize patterns
299
247
  const normalized = patternsArray.map((p) => {
300
248
  validatePattern(p);
301
249
  return normalizePattern(p);
@@ -314,9 +262,8 @@ export function createHostRouter(options: HostRouterOptions = {}): HostRouter {
314
262
  return createRouteBuilder([], true);
315
263
  },
316
264
 
317
- test(hostname: string): HostMatchResult | null {
265
+ test(hostname: string, pathname = "/"): HostMatchResult | null {
318
266
  const parts = hostname.split(".");
319
- const pathname = "/";
320
267
 
321
268
  for (const route of routes) {
322
269
  for (const pattern of route.patterns) {
@@ -342,14 +289,11 @@ export function createHostRouter(options: HostRouterOptions = {}): HostRouter {
342
289
  let effectiveHostname: string;
343
290
 
344
291
  try {
345
- // Handle cookie override (may throw HostRouterError)
346
292
  effectiveHostname = handleCookieOverride(request, hostOverride, input);
347
293
  } catch (error) {
348
- // If it's a HostRouterError from cookie override
349
294
  if (error instanceof HostRouterError) {
350
295
  log(`Cookie override error: ${error.message}`);
351
296
 
352
- // If fallback exists, use it
353
297
  if (fallbackRoute) {
354
298
  const fallbackInput = { ...input, error };
355
299
  const allMiddleware = [
@@ -365,7 +309,6 @@ export function createHostRouter(options: HostRouterOptions = {}): HostRouter {
365
309
  );
366
310
  }
367
311
 
368
- // Otherwise return error response with cookie deletion
369
312
  if (hostOverride) {
370
313
  return createCookieErrorResponse(
371
314
  hostOverride.cookieName,
@@ -374,7 +317,6 @@ export function createHostRouter(options: HostRouterOptions = {}): HostRouter {
374
317
  }
375
318
  }
376
319
 
377
- // Re-throw non-HostRouterErrors
378
320
  throw error;
379
321
  }
380
322
 
@@ -384,7 +326,6 @@ export function createHostRouter(options: HostRouterOptions = {}): HostRouter {
384
326
  log(`Cookie override: ${effectiveHostname}`);
385
327
  }
386
328
 
387
- // Find matching route
388
329
  const matchedRoute = findMatchingRoute(effectiveHostname, pathname);
389
330
 
390
331
  if (!matchedRoute) {
@@ -397,19 +338,14 @@ export function createHostRouter(options: HostRouterOptions = {}): HostRouter {
397
338
  });
398
339
  }
399
340
 
400
- // Combine global and route-specific middleware
401
341
  const allMiddleware = [...globalMiddleware, ...matchedRoute.middleware];
402
342
 
403
- // Execute middleware chain and handler
404
343
  return executeMiddleware(allMiddleware, request, input, () =>
405
344
  executeHandler(matchedRoute, request, input),
406
345
  );
407
346
  },
408
347
  };
409
348
 
410
- // Register in the global HostRouterRegistry for build-time discovery.
411
- // The routes array and fallbackRoute ref are live - they reflect routes
412
- // added via .host().map()/.lazy() after this point.
413
349
  const registryId = `host-router-${hostRouterAutoId++}`;
414
350
  HostRouterRegistry.set(registryId, {
415
351
  get routes() {
@@ -14,18 +14,6 @@ export interface CreateTestRequestOptions {
14
14
  headers?: Record<string, string>;
15
15
  }
16
16
 
17
- /**
18
- * Create a test request with specific host and cookies
19
- *
20
- * @example
21
- * ```ts
22
- * const request = createTestRequest({
23
- * host: 'admin.example.com',
24
- * path: '/dashboard',
25
- * cookies: { 'x-requested-host': 'api.example.com' }
26
- * });
27
- * ```
28
- */
29
17
  export function createTestRequest(options: CreateTestRequestOptions): Request {
30
18
  const {
31
19
  host,
@@ -38,7 +26,6 @@ export function createTestRequest(options: CreateTestRequestOptions): Request {
38
26
  const url = `http://${host}${path}`;
39
27
  const requestHeaders = new Headers(headers);
40
28
 
41
- // Add cookies if provided
42
29
  if (Object.keys(cookies).length > 0) {
43
30
  const cookieString = Object.entries(cookies)
44
31
  .map(([key, value]) => `${key}=${encodeURIComponent(value)}`)
@@ -52,9 +39,6 @@ export function createTestRequest(options: CreateTestRequestOptions): Request {
52
39
  });
53
40
  }
54
41
 
55
- // Try each pattern (a single pattern or any in an array) against the already
56
- // parsed host + path. Shared by testPattern and matchesHost so the
57
- // normalize-and-loop lives once.
58
42
  function matchPatterns(
59
43
  pattern: string | string[],
60
44
  hostname: string,
package/src/host/types.ts CHANGED
@@ -110,9 +110,13 @@ export interface HostRouter {
110
110
  fallback(): HostRouteBuilder;
111
111
 
112
112
  /**
113
- * Test which handler would match a hostname
113
+ * Test which handler would match a hostname (and optional pathname).
114
+ *
115
+ * `pathname` defaults to `"/"`. Pass it to probe path-prefixed patterns
116
+ * such as `host(["example.com/admin"])`, which only match when the request
117
+ * path is under the prefix.
114
118
  */
115
- test(hostname: string): HostMatchResult | null;
119
+ test(hostname: string, pathname?: string): HostMatchResult | null;
116
120
  }
117
121
 
118
122
  /**
@@ -298,13 +298,9 @@ declare global {
298
298
  */
299
299
  export function href<T extends ValidPaths>(path: T, mount?: string): string {
300
300
  if (mount && mount !== "/") {
301
- // Strip trailing slash from mount to avoid double-slash when joining
302
301
  const normalizedMount = mount.endsWith("/") ? mount.slice(0, -1) : mount;
303
302
  return normalizedMount + path;
304
303
  }
305
- // ValidPaths is built from template literals so T does extend string at
306
- // runtime, but the inference can fail past a certain route-union complexity
307
- // and TypeScript reports T as not assignable to string.
308
304
  return path as string;
309
305
  }
310
306