@rangojs/router 0.0.0-experimental.7a20d911 → 0.0.0-experimental.7cf4e116

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 (1198) hide show
  1. package/AGENTS.md +8 -0
  2. package/README.md +169 -31
  3. package/dist/bin/rango.js +312 -93
  4. package/dist/testing/vitest.js +82 -0
  5. package/dist/vite/index.js +2974 -1019
  6. package/dist/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  7. package/package.json +66 -12
  8. package/skills/api-client/SKILL.md +211 -0
  9. package/skills/breadcrumbs/SKILL.md +64 -2
  10. package/skills/bundle-analysis/SKILL.md +159 -0
  11. package/skills/cache-guide/SKILL.md +224 -32
  12. package/skills/caching/SKILL.md +279 -17
  13. package/skills/composability/SKILL.md +27 -2
  14. package/skills/css/SKILL.md +76 -0
  15. package/skills/debug-manifest/SKILL.md +4 -2
  16. package/skills/document-cache/SKILL.md +78 -55
  17. package/skills/handler-use/SKILL.md +364 -0
  18. package/skills/hooks/SKILL.md +250 -30
  19. package/skills/host-router/SKILL.md +83 -23
  20. package/skills/i18n/SKILL.md +276 -0
  21. package/skills/intercept/SKILL.md +50 -6
  22. package/skills/layout/SKILL.md +35 -9
  23. package/skills/links/SKILL.md +247 -17
  24. package/skills/loader/SKILL.md +225 -9
  25. package/skills/middleware/SKILL.md +50 -13
  26. package/skills/migrate-nextjs/SKILL.md +584 -0
  27. package/skills/migrate-react-router/SKILL.md +771 -0
  28. package/skills/mime-routes/SKILL.md +28 -1
  29. package/skills/observability/SKILL.md +172 -0
  30. package/skills/parallel/SKILL.md +77 -7
  31. package/skills/prerender/SKILL.md +45 -43
  32. package/skills/rango/SKILL.md +251 -22
  33. package/skills/react-compiler/SKILL.md +168 -0
  34. package/skills/response-routes/SKILL.md +123 -48
  35. package/skills/route/SKILL.md +70 -5
  36. package/skills/router-setup/SKILL.md +29 -6
  37. package/skills/scripts/SKILL.md +179 -0
  38. package/skills/server-actions/SKILL.md +775 -0
  39. package/skills/streams-and-websockets/SKILL.md +283 -0
  40. package/skills/tailwind/SKILL.md +27 -3
  41. package/skills/testing/SKILL.md +129 -0
  42. package/skills/testing/bindings.md +103 -0
  43. package/skills/testing/cache-prerender.md +127 -0
  44. package/skills/testing/client-components.md +124 -0
  45. package/skills/testing/e2e-parity.md +125 -0
  46. package/skills/testing/flight.md +91 -0
  47. package/skills/testing/handles.md +129 -0
  48. package/skills/testing/loader.md +128 -0
  49. package/skills/testing/middleware.md +99 -0
  50. package/skills/testing/render-handler.md +121 -0
  51. package/skills/testing/response-routes.md +95 -0
  52. package/skills/testing/reverse-and-types.md +84 -0
  53. package/skills/testing/server-actions.md +107 -0
  54. package/skills/testing/server-tree.md +128 -0
  55. package/skills/testing/setup.md +123 -0
  56. package/skills/typesafety/SKILL.md +322 -29
  57. package/skills/use-cache/SKILL.md +46 -14
  58. package/skills/view-transitions/SKILL.md +294 -0
  59. package/src/__augment-tests__/augment.ts +81 -0
  60. package/src/__augment-tests__/augmented.check.ts +116 -0
  61. package/src/__internal.ts +0 -65
  62. package/src/browser/action-coordinator.ts +53 -36
  63. package/src/browser/action-fence.ts +47 -0
  64. package/src/browser/app-shell.ts +39 -0
  65. package/src/browser/connection-warmup.ts +134 -0
  66. package/src/browser/cookie-name.ts +140 -0
  67. package/src/browser/event-controller.ts +192 -150
  68. package/src/browser/history-state.ts +21 -0
  69. package/src/browser/index.ts +3 -3
  70. package/src/browser/invalidate-client-cache.ts +52 -0
  71. package/src/browser/navigation-bridge.ts +92 -18
  72. package/src/browser/navigation-client.ts +146 -69
  73. package/src/browser/navigation-store-handle.ts +38 -0
  74. package/src/browser/navigation-store.ts +33 -59
  75. package/src/browser/navigation-transaction.ts +9 -59
  76. package/src/browser/network-error-handler.ts +34 -7
  77. package/src/browser/partial-update.ts +131 -121
  78. package/src/browser/prefetch/cache.ts +205 -62
  79. package/src/browser/prefetch/fetch.ts +321 -37
  80. package/src/browser/prefetch/queue.ts +42 -8
  81. package/src/browser/rango-state.ts +158 -76
  82. package/src/browser/react/Link.tsx +60 -9
  83. package/src/browser/react/NavigationProvider.tsx +162 -118
  84. package/src/browser/react/ScrollRestoration.tsx +10 -6
  85. package/src/browser/react/filter-segment-order.ts +66 -7
  86. package/src/browser/react/index.ts +0 -48
  87. package/src/browser/react/location-state-shared.ts +178 -8
  88. package/src/browser/react/location-state.ts +39 -14
  89. package/src/browser/react/use-action.ts +6 -15
  90. package/src/browser/react/use-handle.ts +17 -14
  91. package/src/browser/react/use-href.tsx +8 -1
  92. package/src/browser/react/use-link-status.ts +33 -8
  93. package/src/browser/react/use-navigation.ts +32 -7
  94. package/src/browser/react/use-params.ts +20 -10
  95. package/src/browser/react/use-reverse.ts +106 -0
  96. package/src/browser/react/use-router.ts +25 -3
  97. package/src/browser/react/use-search-params.ts +0 -5
  98. package/src/browser/react/use-segments.ts +11 -21
  99. package/src/browser/response-adapter.ts +80 -5
  100. package/src/browser/rsc-router.tsx +91 -24
  101. package/src/browser/scroll-restoration.ts +30 -17
  102. package/src/browser/segment-reconciler.ts +36 -14
  103. package/src/browser/segment-structure-assert.ts +2 -2
  104. package/src/browser/server-action-bridge.ts +214 -55
  105. package/src/browser/types.ts +57 -8
  106. package/src/browser/validate-redirect-origin.ts +43 -16
  107. package/src/build/collect-fallback-refs.ts +107 -0
  108. package/src/build/generate-manifest.ts +60 -35
  109. package/src/build/generate-route-types.ts +2 -1
  110. package/src/build/index.ts +8 -2
  111. package/src/build/prefix-tree-utils.ts +123 -0
  112. package/src/build/route-trie.ts +165 -36
  113. package/src/build/route-types/ast-route-extraction.ts +15 -8
  114. package/src/build/route-types/codegen.ts +16 -5
  115. package/src/build/route-types/include-resolution.ts +117 -23
  116. package/src/build/route-types/param-extraction.ts +6 -3
  117. package/src/build/route-types/per-module-writer.ts +22 -6
  118. package/src/build/route-types/router-processing.ts +55 -28
  119. package/src/build/route-types/scan-filter.ts +1 -1
  120. package/src/build/route-types/source-scan.ts +216 -0
  121. package/src/build/runtime-discovery.ts +9 -20
  122. package/src/cache/cache-error.ts +104 -0
  123. package/src/cache/cache-key-utils.ts +29 -13
  124. package/src/cache/cache-policy.ts +108 -34
  125. package/src/cache/cache-runtime.ts +199 -37
  126. package/src/cache/cache-scope.ts +188 -82
  127. package/src/cache/cache-tag.ts +103 -0
  128. package/src/cache/cf/cf-base64.ts +33 -0
  129. package/src/cache/cf/cf-cache-constants.ts +127 -0
  130. package/src/cache/cf/cf-cache-store.ts +1989 -378
  131. package/src/cache/cf/cf-cache-types.ts +349 -0
  132. package/src/cache/cf/cf-kv-utils.ts +46 -0
  133. package/src/cache/cf/cf-tag-marker-memo.ts +105 -0
  134. package/src/cache/cf/index.ts +6 -16
  135. package/src/cache/document-cache.ts +72 -20
  136. package/src/cache/handle-snapshot.ts +70 -0
  137. package/src/cache/index.ts +10 -20
  138. package/src/cache/memory-segment-store.ts +136 -37
  139. package/src/cache/profile-registry.ts +31 -31
  140. package/src/cache/read-through-swr.ts +41 -11
  141. package/src/cache/segment-codec.ts +9 -17
  142. package/src/cache/tag-invalidation.ts +230 -0
  143. package/src/cache/types.ts +37 -100
  144. package/src/client.rsc.tsx +44 -21
  145. package/src/client.tsx +118 -235
  146. package/src/cloudflare/index.ts +11 -0
  147. package/src/cloudflare/tracing.ts +109 -0
  148. package/src/component-utils.ts +19 -0
  149. package/src/components/DefaultDocument.tsx +8 -2
  150. package/src/context-var.ts +18 -6
  151. package/src/decode-loader-results.ts +52 -0
  152. package/src/defer.ts +196 -0
  153. package/src/deps/ssr.ts +0 -1
  154. package/src/encode-kv.ts +49 -0
  155. package/src/errors.ts +30 -4
  156. package/src/escape-script.ts +52 -0
  157. package/src/handle.ts +31 -23
  158. package/src/handles/MetaTags.tsx +62 -19
  159. package/src/handles/Scripts.tsx +183 -0
  160. package/src/handles/breadcrumbs.ts +37 -8
  161. package/src/handles/is-thenable.ts +19 -0
  162. package/src/handles/meta.ts +51 -40
  163. package/src/handles/script.ts +244 -0
  164. package/src/host/cookie-handler.ts +9 -60
  165. package/src/host/errors.ts +0 -24
  166. package/src/host/index.ts +8 -2
  167. package/src/host/pattern-matcher.ts +23 -52
  168. package/src/host/router.ts +107 -99
  169. package/src/host/testing.ts +40 -27
  170. package/src/host/types.ts +37 -4
  171. package/src/host/utils.ts +1 -1
  172. package/src/href-client.ts +137 -22
  173. package/src/index.rsc.ts +90 -11
  174. package/src/index.ts +129 -19
  175. package/src/internal-debug.ts +11 -10
  176. package/src/loader-store.ts +500 -0
  177. package/src/loader.rsc.ts +20 -13
  178. package/src/loader.ts +12 -11
  179. package/src/missing-id-error.ts +68 -0
  180. package/src/outlet-context.ts +1 -1
  181. package/src/outlet-provider.tsx +1 -5
  182. package/src/prerender/param-hash.ts +16 -16
  183. package/src/prerender/store.ts +32 -37
  184. package/src/prerender.ts +61 -6
  185. package/src/redirect-origin.ts +100 -0
  186. package/src/regex-escape.ts +8 -0
  187. package/src/render-error-thrower.tsx +20 -0
  188. package/src/response-utils.ts +62 -0
  189. package/src/reverse.ts +65 -36
  190. package/src/root-error-boundary.tsx +1 -19
  191. package/src/route-content-wrapper.tsx +7 -72
  192. package/src/route-definition/dsl-helpers.ts +418 -273
  193. package/src/route-definition/helper-factories.ts +29 -139
  194. package/src/route-definition/helpers-types.ts +103 -31
  195. package/src/route-definition/redirect.ts +44 -11
  196. package/src/route-definition/resolve-handler-use.ts +12 -0
  197. package/src/route-definition/use-item-types.ts +32 -0
  198. package/src/route-map-builder.ts +0 -16
  199. package/src/route-types.ts +26 -41
  200. package/src/router/basename.ts +14 -0
  201. package/src/router/content-negotiation.ts +73 -25
  202. package/src/router/error-handling.ts +45 -18
  203. package/src/router/find-match.ts +44 -23
  204. package/src/router/handler-context.ts +27 -39
  205. package/src/router/instrument.ts +350 -0
  206. package/src/router/intercept-resolution.ts +39 -20
  207. package/src/router/lazy-includes.ts +15 -52
  208. package/src/router/loader-resolution.ts +198 -92
  209. package/src/router/logging.ts +0 -6
  210. package/src/router/manifest.ts +40 -42
  211. package/src/router/match-api.ts +4 -23
  212. package/src/router/match-context.ts +0 -22
  213. package/src/router/match-handlers.ts +58 -58
  214. package/src/router/match-middleware/background-revalidation.ts +6 -7
  215. package/src/router/match-middleware/cache-lookup.ts +164 -285
  216. package/src/router/match-middleware/cache-store.ts +31 -34
  217. package/src/router/match-middleware/intercept-resolution.ts +0 -22
  218. package/src/router/match-middleware/segment-resolution.ts +1 -23
  219. package/src/router/match-pipelines.ts +1 -42
  220. package/src/router/match-result.ts +87 -39
  221. package/src/router/metrics.ts +0 -34
  222. package/src/router/middleware-types.ts +7 -134
  223. package/src/router/middleware.ts +266 -166
  224. package/src/router/navigation-snapshot.ts +0 -51
  225. package/src/router/params-util.ts +23 -0
  226. package/src/router/pattern-matching.ts +132 -90
  227. package/src/router/prefetch-cache-ttl.ts +51 -0
  228. package/src/router/prerender-match.ts +104 -65
  229. package/src/router/preview-match.ts +3 -1
  230. package/src/router/request-classification.ts +28 -62
  231. package/src/router/revalidation.ts +123 -73
  232. package/src/router/route-snapshot.ts +0 -1
  233. package/src/router/router-context.ts +3 -28
  234. package/src/router/router-interfaces.ts +83 -35
  235. package/src/router/router-options.ts +136 -5
  236. package/src/router/router-registry.ts +2 -5
  237. package/src/router/segment-resolution/fresh.ts +98 -84
  238. package/src/router/segment-resolution/helpers.ts +86 -6
  239. package/src/router/segment-resolution/loader-cache.ts +62 -37
  240. package/src/router/segment-resolution/revalidation.ts +274 -319
  241. package/src/router/segment-resolution/static-store.ts +19 -5
  242. package/src/router/segment-resolution/streamed-handler-telemetry.ts +52 -0
  243. package/src/router/segment-resolution/view-transition-default.ts +36 -0
  244. package/src/router/segment-resolution.ts +5 -1
  245. package/src/router/segment-wrappers.ts +6 -5
  246. package/src/router/state-cookie-name.ts +33 -0
  247. package/src/router/substitute-pattern-params.ts +56 -0
  248. package/src/router/telemetry-otel.ts +161 -199
  249. package/src/router/telemetry.ts +96 -19
  250. package/src/router/timeout.ts +0 -20
  251. package/src/router/tracing.ts +206 -0
  252. package/src/router/trie-matching.ts +163 -59
  253. package/src/router/types.ts +9 -63
  254. package/src/router/url-params.ts +44 -0
  255. package/src/router.ts +110 -55
  256. package/src/rsc/handler-context.ts +3 -2
  257. package/src/rsc/handler.ts +279 -224
  258. package/src/rsc/helpers.ts +168 -46
  259. package/src/rsc/index.ts +2 -5
  260. package/src/rsc/json-route-result.ts +38 -0
  261. package/src/rsc/loader-fetch.ts +127 -31
  262. package/src/rsc/manifest-init.ts +28 -41
  263. package/src/rsc/origin-guard.ts +39 -25
  264. package/src/rsc/progressive-enhancement.ts +73 -11
  265. package/src/rsc/redirect-guard.ts +99 -0
  266. package/src/rsc/response-cache-serve.ts +238 -0
  267. package/src/rsc/response-error.ts +79 -12
  268. package/src/rsc/response-route-handler.ts +99 -189
  269. package/src/rsc/rsc-rendering.ts +104 -76
  270. package/src/rsc/runtime-warnings.ts +23 -10
  271. package/src/rsc/server-action.ts +262 -113
  272. package/src/rsc/ssr-setup.ts +16 -0
  273. package/src/rsc/types.ts +24 -5
  274. package/src/runtime-env.ts +18 -0
  275. package/src/search-params.ts +35 -30
  276. package/src/segment-content-promise.ts +67 -0
  277. package/src/segment-loader-promise.ts +149 -0
  278. package/src/segment-system.tsx +218 -202
  279. package/src/serialize.ts +243 -0
  280. package/src/server/context.ts +175 -53
  281. package/src/server/cookie-parse.ts +32 -0
  282. package/src/server/cookie-store.ts +80 -5
  283. package/src/server/handle-store.ts +40 -38
  284. package/src/server/loader-registry.ts +21 -42
  285. package/src/server/request-context.ts +258 -170
  286. package/src/ssr/index.tsx +21 -16
  287. package/src/static-handler.ts +10 -13
  288. package/src/testing/cache-status.ts +162 -0
  289. package/src/testing/collect-handle.ts +40 -0
  290. package/src/testing/dispatch.ts +701 -0
  291. package/src/testing/dom.entry.ts +22 -0
  292. package/src/testing/e2e/fixture.ts +188 -0
  293. package/src/testing/e2e/index.ts +128 -0
  294. package/src/testing/e2e/matchers.ts +35 -0
  295. package/src/testing/e2e/page-helpers.ts +272 -0
  296. package/src/testing/e2e/parity.ts +387 -0
  297. package/src/testing/e2e/server.ts +195 -0
  298. package/src/testing/flight-matchers.ts +97 -0
  299. package/src/testing/flight-normalize.ts +11 -0
  300. package/src/testing/flight-runtime.d.ts +57 -0
  301. package/src/testing/flight-tree.ts +682 -0
  302. package/src/testing/flight.entry.ts +52 -0
  303. package/src/testing/flight.ts +257 -0
  304. package/src/testing/generated-routes.ts +183 -0
  305. package/src/testing/index.ts +99 -0
  306. package/src/testing/internal/context.ts +371 -0
  307. package/src/testing/internal/flight-client-globals.ts +30 -0
  308. package/src/testing/internal/seed-vars.ts +54 -0
  309. package/src/testing/render-handler.ts +343 -0
  310. package/src/testing/render-route.tsx +581 -0
  311. package/src/testing/run-loader.ts +385 -0
  312. package/src/testing/run-middleware.ts +205 -0
  313. package/src/testing/vitest-stubs/cloudflare-email.ts +9 -0
  314. package/src/testing/vitest-stubs/cloudflare-workers.ts +21 -0
  315. package/src/testing/vitest-stubs/plugin-rsc.ts +16 -0
  316. package/src/testing/vitest-stubs/version.ts +5 -0
  317. package/src/testing/vitest.ts +305 -0
  318. package/src/theme/ThemeProvider.tsx +20 -58
  319. package/src/theme/ThemeScript.tsx +7 -9
  320. package/src/theme/constants.ts +52 -13
  321. package/src/theme/index.ts +0 -7
  322. package/src/theme/theme-context.ts +1 -5
  323. package/src/theme/theme-script.ts +22 -21
  324. package/src/theme/use-theme.ts +0 -3
  325. package/src/types/boundaries.ts +0 -35
  326. package/src/types/cache-types.ts +13 -4
  327. package/src/types/error-types.ts +30 -90
  328. package/src/types/global-namespace.ts +54 -41
  329. package/src/types/handler-context.ts +109 -61
  330. package/src/types/index.ts +1 -10
  331. package/src/types/loader-types.ts +11 -9
  332. package/src/types/request-scope.ts +112 -0
  333. package/src/types/route-config.ts +6 -50
  334. package/src/types/route-entry.ts +11 -6
  335. package/src/types/segments.ts +36 -15
  336. package/src/urls/include-helper.ts +33 -70
  337. package/src/urls/index.ts +1 -11
  338. package/src/urls/path-helper-types.ts +49 -9
  339. package/src/urls/path-helper.ts +17 -106
  340. package/src/urls/pattern-types.ts +36 -19
  341. package/src/urls/response-types.ts +22 -29
  342. package/src/urls/type-extraction.ts +58 -139
  343. package/src/urls/urls-function.ts +1 -18
  344. package/src/use-loader.tsx +295 -107
  345. package/src/vite/debug.ts +185 -0
  346. package/src/vite/discovery/bundle-postprocess.ts +8 -7
  347. package/src/vite/discovery/discover-routers.ts +126 -85
  348. package/src/vite/discovery/discovery-errors.ts +194 -0
  349. package/src/vite/discovery/gate-state.ts +171 -0
  350. package/src/vite/discovery/prerender-collection.ts +211 -142
  351. package/src/vite/discovery/route-types-writer.ts +40 -84
  352. package/src/vite/discovery/self-gen-tracking.ts +27 -1
  353. package/src/vite/discovery/state.ts +44 -0
  354. package/src/vite/discovery/virtual-module-codegen.ts +14 -34
  355. package/src/vite/index.ts +2 -0
  356. package/src/vite/inject-client-debug.ts +36 -0
  357. package/src/vite/plugin-types.ts +126 -8
  358. package/src/vite/plugins/cjs-to-esm.ts +16 -19
  359. package/src/vite/plugins/client-ref-dedup.ts +16 -11
  360. package/src/vite/plugins/client-ref-hashing.ts +28 -15
  361. package/src/vite/plugins/cloudflare-protocol-loader-hook.d.mts +23 -0
  362. package/src/vite/plugins/cloudflare-protocol-loader-hook.mjs +76 -0
  363. package/src/vite/plugins/cloudflare-protocol-stub.ts +194 -0
  364. package/src/vite/plugins/expose-action-id.ts +48 -95
  365. package/src/vite/plugins/expose-id-utils.ts +96 -51
  366. package/src/vite/plugins/expose-ids/export-analysis.ts +101 -34
  367. package/src/vite/plugins/expose-ids/handler-transform.ts +15 -64
  368. package/src/vite/plugins/expose-ids/loader-transform.ts +14 -24
  369. package/src/vite/plugins/expose-ids/router-transform.ts +118 -29
  370. package/src/vite/plugins/expose-internal-ids.ts +553 -317
  371. package/src/vite/plugins/performance-tracks.ts +26 -25
  372. package/src/vite/plugins/refresh-cmd.ts +1 -1
  373. package/src/vite/plugins/use-cache-transform.ts +73 -83
  374. package/src/vite/plugins/version-injector.ts +21 -25
  375. package/src/vite/plugins/version-plugin.ts +37 -40
  376. package/src/vite/plugins/virtual-entries.ts +13 -18
  377. package/src/vite/rango.ts +109 -118
  378. package/src/vite/router-discovery.ts +777 -119
  379. package/src/vite/utils/ast-handler-extract.ts +26 -35
  380. package/src/vite/utils/banner.ts +1 -1
  381. package/src/vite/utils/bundle-analysis.ts +10 -15
  382. package/src/vite/utils/client-chunks.ts +184 -0
  383. package/src/vite/utils/directive-prologue.ts +40 -0
  384. package/src/vite/utils/forward-user-plugins.ts +171 -0
  385. package/src/vite/utils/manifest-utils.ts +4 -59
  386. package/src/vite/utils/package-resolution.ts +20 -52
  387. package/src/vite/utils/prerender-utils.ts +67 -38
  388. package/src/vite/utils/shared-utils.ts +90 -41
  389. package/dist/__internal.d.ts +0 -83
  390. package/dist/__internal.d.ts.map +0 -1
  391. package/dist/__internal.js +0 -19
  392. package/dist/__internal.js.map +0 -1
  393. package/dist/__mocks__/version.d.ts +0 -7
  394. package/dist/__mocks__/version.d.ts.map +0 -1
  395. package/dist/__mocks__/version.js +0 -7
  396. package/dist/__mocks__/version.js.map +0 -1
  397. package/dist/__tests__/client-href.test.d.ts +0 -2
  398. package/dist/__tests__/client-href.test.d.ts.map +0 -1
  399. package/dist/__tests__/client-href.test.js +0 -74
  400. package/dist/__tests__/client-href.test.js.map +0 -1
  401. package/dist/__tests__/component-utils.test.d.ts +0 -2
  402. package/dist/__tests__/component-utils.test.d.ts.map +0 -1
  403. package/dist/__tests__/component-utils.test.js +0 -51
  404. package/dist/__tests__/component-utils.test.js.map +0 -1
  405. package/dist/__tests__/event-controller.test.d.ts +0 -2
  406. package/dist/__tests__/event-controller.test.d.ts.map +0 -1
  407. package/dist/__tests__/event-controller.test.js +0 -538
  408. package/dist/__tests__/event-controller.test.js.map +0 -1
  409. package/dist/__tests__/helpers/route-tree.d.ts +0 -118
  410. package/dist/__tests__/helpers/route-tree.d.ts.map +0 -1
  411. package/dist/__tests__/helpers/route-tree.js +0 -374
  412. package/dist/__tests__/helpers/route-tree.js.map +0 -1
  413. package/dist/__tests__/match-result.test.d.ts +0 -2
  414. package/dist/__tests__/match-result.test.d.ts.map +0 -1
  415. package/dist/__tests__/match-result.test.js +0 -154
  416. package/dist/__tests__/match-result.test.js.map +0 -1
  417. package/dist/__tests__/navigation-store.test.d.ts +0 -2
  418. package/dist/__tests__/navigation-store.test.d.ts.map +0 -1
  419. package/dist/__tests__/navigation-store.test.js +0 -440
  420. package/dist/__tests__/navigation-store.test.js.map +0 -1
  421. package/dist/__tests__/partial-update.test.d.ts +0 -2
  422. package/dist/__tests__/partial-update.test.d.ts.map +0 -1
  423. package/dist/__tests__/partial-update.test.js +0 -1009
  424. package/dist/__tests__/partial-update.test.js.map +0 -1
  425. package/dist/__tests__/reverse-types.test.d.ts +0 -8
  426. package/dist/__tests__/reverse-types.test.d.ts.map +0 -1
  427. package/dist/__tests__/reverse-types.test.js +0 -656
  428. package/dist/__tests__/reverse-types.test.js.map +0 -1
  429. package/dist/__tests__/route-definition.test.d.ts +0 -2
  430. package/dist/__tests__/route-definition.test.d.ts.map +0 -1
  431. package/dist/__tests__/route-definition.test.js +0 -55
  432. package/dist/__tests__/route-definition.test.js.map +0 -1
  433. package/dist/__tests__/router-helpers.test.d.ts +0 -2
  434. package/dist/__tests__/router-helpers.test.d.ts.map +0 -1
  435. package/dist/__tests__/router-helpers.test.js +0 -377
  436. package/dist/__tests__/router-helpers.test.js.map +0 -1
  437. package/dist/__tests__/router-integration-2.test.d.ts +0 -2
  438. package/dist/__tests__/router-integration-2.test.d.ts.map +0 -1
  439. package/dist/__tests__/router-integration-2.test.js +0 -426
  440. package/dist/__tests__/router-integration-2.test.js.map +0 -1
  441. package/dist/__tests__/router-integration.test.d.ts +0 -2
  442. package/dist/__tests__/router-integration.test.d.ts.map +0 -1
  443. package/dist/__tests__/router-integration.test.js +0 -1051
  444. package/dist/__tests__/router-integration.test.js.map +0 -1
  445. package/dist/__tests__/search-params.test.d.ts +0 -5
  446. package/dist/__tests__/search-params.test.d.ts.map +0 -1
  447. package/dist/__tests__/search-params.test.js +0 -306
  448. package/dist/__tests__/search-params.test.js.map +0 -1
  449. package/dist/__tests__/segment-system.test.d.ts +0 -2
  450. package/dist/__tests__/segment-system.test.d.ts.map +0 -1
  451. package/dist/__tests__/segment-system.test.js +0 -627
  452. package/dist/__tests__/segment-system.test.js.map +0 -1
  453. package/dist/__tests__/static-handler-types.test.d.ts +0 -8
  454. package/dist/__tests__/static-handler-types.test.d.ts.map +0 -1
  455. package/dist/__tests__/static-handler-types.test.js +0 -63
  456. package/dist/__tests__/static-handler-types.test.js.map +0 -1
  457. package/dist/__tests__/urls.test.d.ts +0 -2
  458. package/dist/__tests__/urls.test.d.ts.map +0 -1
  459. package/dist/__tests__/urls.test.js +0 -421
  460. package/dist/__tests__/urls.test.js.map +0 -1
  461. package/dist/__tests__/use-mount.test.d.ts +0 -2
  462. package/dist/__tests__/use-mount.test.d.ts.map +0 -1
  463. package/dist/__tests__/use-mount.test.js +0 -35
  464. package/dist/__tests__/use-mount.test.js.map +0 -1
  465. package/dist/bin/rango.d.ts +0 -2
  466. package/dist/bin/rango.d.ts.map +0 -1
  467. package/dist/bin/rango.js.map +0 -1
  468. package/dist/browser/event-controller.d.ts +0 -191
  469. package/dist/browser/event-controller.d.ts.map +0 -1
  470. package/dist/browser/event-controller.js +0 -559
  471. package/dist/browser/event-controller.js.map +0 -1
  472. package/dist/browser/index.d.ts +0 -2
  473. package/dist/browser/index.d.ts.map +0 -1
  474. package/dist/browser/index.js +0 -14
  475. package/dist/browser/index.js.map +0 -1
  476. package/dist/browser/link-interceptor.d.ts +0 -38
  477. package/dist/browser/link-interceptor.d.ts.map +0 -1
  478. package/dist/browser/link-interceptor.js +0 -99
  479. package/dist/browser/link-interceptor.js.map +0 -1
  480. package/dist/browser/logging.d.ts +0 -10
  481. package/dist/browser/logging.d.ts.map +0 -1
  482. package/dist/browser/logging.js +0 -29
  483. package/dist/browser/logging.js.map +0 -1
  484. package/dist/browser/lru-cache.d.ts +0 -17
  485. package/dist/browser/lru-cache.d.ts.map +0 -1
  486. package/dist/browser/lru-cache.js +0 -50
  487. package/dist/browser/lru-cache.js.map +0 -1
  488. package/dist/browser/merge-segment-loaders.d.ts +0 -39
  489. package/dist/browser/merge-segment-loaders.d.ts.map +0 -1
  490. package/dist/browser/merge-segment-loaders.js +0 -102
  491. package/dist/browser/merge-segment-loaders.js.map +0 -1
  492. package/dist/browser/navigation-bridge.d.ts +0 -102
  493. package/dist/browser/navigation-bridge.d.ts.map +0 -1
  494. package/dist/browser/navigation-bridge.js +0 -708
  495. package/dist/browser/navigation-bridge.js.map +0 -1
  496. package/dist/browser/navigation-client.d.ts +0 -25
  497. package/dist/browser/navigation-client.d.ts.map +0 -1
  498. package/dist/browser/navigation-client.js +0 -157
  499. package/dist/browser/navigation-client.js.map +0 -1
  500. package/dist/browser/navigation-store.d.ts +0 -101
  501. package/dist/browser/navigation-store.d.ts.map +0 -1
  502. package/dist/browser/navigation-store.js +0 -625
  503. package/dist/browser/navigation-store.js.map +0 -1
  504. package/dist/browser/partial-update.d.ts +0 -75
  505. package/dist/browser/partial-update.d.ts.map +0 -1
  506. package/dist/browser/partial-update.js +0 -426
  507. package/dist/browser/partial-update.js.map +0 -1
  508. package/dist/browser/react/Link.d.ts +0 -86
  509. package/dist/browser/react/Link.d.ts.map +0 -1
  510. package/dist/browser/react/Link.js +0 -128
  511. package/dist/browser/react/Link.js.map +0 -1
  512. package/dist/browser/react/NavigationProvider.d.ts +0 -63
  513. package/dist/browser/react/NavigationProvider.d.ts.map +0 -1
  514. package/dist/browser/react/NavigationProvider.js +0 -216
  515. package/dist/browser/react/NavigationProvider.js.map +0 -1
  516. package/dist/browser/react/ScrollRestoration.d.ts +0 -75
  517. package/dist/browser/react/ScrollRestoration.d.ts.map +0 -1
  518. package/dist/browser/react/ScrollRestoration.js +0 -57
  519. package/dist/browser/react/ScrollRestoration.js.map +0 -1
  520. package/dist/browser/react/context.d.ts +0 -46
  521. package/dist/browser/react/context.d.ts.map +0 -1
  522. package/dist/browser/react/context.js +0 -10
  523. package/dist/browser/react/context.js.map +0 -1
  524. package/dist/browser/react/index.d.ts +0 -11
  525. package/dist/browser/react/index.d.ts.map +0 -1
  526. package/dist/browser/react/index.js +0 -22
  527. package/dist/browser/react/index.js.map +0 -1
  528. package/dist/browser/react/location-state-shared.d.ts +0 -63
  529. package/dist/browser/react/location-state-shared.d.ts.map +0 -1
  530. package/dist/browser/react/location-state-shared.js +0 -81
  531. package/dist/browser/react/location-state-shared.js.map +0 -1
  532. package/dist/browser/react/location-state.d.ts +0 -23
  533. package/dist/browser/react/location-state.d.ts.map +0 -1
  534. package/dist/browser/react/location-state.js +0 -29
  535. package/dist/browser/react/location-state.js.map +0 -1
  536. package/dist/browser/react/mount-context.d.ts +0 -24
  537. package/dist/browser/react/mount-context.d.ts.map +0 -1
  538. package/dist/browser/react/mount-context.js +0 -24
  539. package/dist/browser/react/mount-context.js.map +0 -1
  540. package/dist/browser/react/use-action.d.ts +0 -64
  541. package/dist/browser/react/use-action.d.ts.map +0 -1
  542. package/dist/browser/react/use-action.js +0 -134
  543. package/dist/browser/react/use-action.js.map +0 -1
  544. package/dist/browser/react/use-client-cache.d.ts +0 -41
  545. package/dist/browser/react/use-client-cache.d.ts.map +0 -1
  546. package/dist/browser/react/use-client-cache.js +0 -39
  547. package/dist/browser/react/use-client-cache.js.map +0 -1
  548. package/dist/browser/react/use-handle.d.ts +0 -31
  549. package/dist/browser/react/use-handle.d.ts.map +0 -1
  550. package/dist/browser/react/use-handle.js +0 -144
  551. package/dist/browser/react/use-handle.js.map +0 -1
  552. package/dist/browser/react/use-href.d.ts +0 -33
  553. package/dist/browser/react/use-href.d.ts.map +0 -1
  554. package/dist/browser/react/use-href.js +0 -39
  555. package/dist/browser/react/use-href.js.map +0 -1
  556. package/dist/browser/react/use-link-status.d.ts +0 -37
  557. package/dist/browser/react/use-link-status.d.ts.map +0 -1
  558. package/dist/browser/react/use-link-status.js +0 -99
  559. package/dist/browser/react/use-link-status.js.map +0 -1
  560. package/dist/browser/react/use-mount.d.ts +0 -25
  561. package/dist/browser/react/use-mount.d.ts.map +0 -1
  562. package/dist/browser/react/use-mount.js +0 -30
  563. package/dist/browser/react/use-mount.js.map +0 -1
  564. package/dist/browser/react/use-navigation.d.ts +0 -27
  565. package/dist/browser/react/use-navigation.d.ts.map +0 -1
  566. package/dist/browser/react/use-navigation.js +0 -87
  567. package/dist/browser/react/use-navigation.js.map +0 -1
  568. package/dist/browser/react/use-segments.d.ts +0 -38
  569. package/dist/browser/react/use-segments.d.ts.map +0 -1
  570. package/dist/browser/react/use-segments.js +0 -130
  571. package/dist/browser/react/use-segments.js.map +0 -1
  572. package/dist/browser/request-controller.d.ts +0 -26
  573. package/dist/browser/request-controller.d.ts.map +0 -1
  574. package/dist/browser/request-controller.js +0 -147
  575. package/dist/browser/request-controller.js.map +0 -1
  576. package/dist/browser/rsc-router.d.ts +0 -129
  577. package/dist/browser/rsc-router.d.ts.map +0 -1
  578. package/dist/browser/rsc-router.js +0 -195
  579. package/dist/browser/rsc-router.js.map +0 -1
  580. package/dist/browser/scroll-restoration.d.ts +0 -93
  581. package/dist/browser/scroll-restoration.d.ts.map +0 -1
  582. package/dist/browser/scroll-restoration.js +0 -321
  583. package/dist/browser/scroll-restoration.js.map +0 -1
  584. package/dist/browser/segment-structure-assert.d.ts +0 -17
  585. package/dist/browser/segment-structure-assert.d.ts.map +0 -1
  586. package/dist/browser/segment-structure-assert.js +0 -59
  587. package/dist/browser/segment-structure-assert.js.map +0 -1
  588. package/dist/browser/server-action-bridge.d.ts +0 -26
  589. package/dist/browser/server-action-bridge.d.ts.map +0 -1
  590. package/dist/browser/server-action-bridge.js +0 -668
  591. package/dist/browser/server-action-bridge.js.map +0 -1
  592. package/dist/browser/shallow.d.ts +0 -12
  593. package/dist/browser/shallow.d.ts.map +0 -1
  594. package/dist/browser/shallow.js +0 -34
  595. package/dist/browser/shallow.js.map +0 -1
  596. package/dist/browser/types.d.ts +0 -369
  597. package/dist/browser/types.d.ts.map +0 -1
  598. package/dist/browser/types.js +0 -2
  599. package/dist/browser/types.js.map +0 -1
  600. package/dist/build/__tests__/generate-cli.test.d.ts +0 -2
  601. package/dist/build/__tests__/generate-cli.test.d.ts.map +0 -1
  602. package/dist/build/__tests__/generate-cli.test.js +0 -237
  603. package/dist/build/__tests__/generate-cli.test.js.map +0 -1
  604. package/dist/build/__tests__/generate-manifest.test.d.ts +0 -2
  605. package/dist/build/__tests__/generate-manifest.test.d.ts.map +0 -1
  606. package/dist/build/__tests__/generate-manifest.test.js +0 -119
  607. package/dist/build/__tests__/generate-manifest.test.js.map +0 -1
  608. package/dist/build/__tests__/generate-route-types.test.d.ts +0 -2
  609. package/dist/build/__tests__/generate-route-types.test.d.ts.map +0 -1
  610. package/dist/build/__tests__/generate-route-types.test.js +0 -620
  611. package/dist/build/__tests__/generate-route-types.test.js.map +0 -1
  612. package/dist/build/__tests__/per-router-manifest.test.d.ts +0 -2
  613. package/dist/build/__tests__/per-router-manifest.test.d.ts.map +0 -1
  614. package/dist/build/__tests__/per-router-manifest.test.js +0 -308
  615. package/dist/build/__tests__/per-router-manifest.test.js.map +0 -1
  616. package/dist/build/generate-manifest.d.ts +0 -81
  617. package/dist/build/generate-manifest.d.ts.map +0 -1
  618. package/dist/build/generate-manifest.js +0 -276
  619. package/dist/build/generate-manifest.js.map +0 -1
  620. package/dist/build/generate-route-types.d.ts +0 -115
  621. package/dist/build/generate-route-types.d.ts.map +0 -1
  622. package/dist/build/generate-route-types.js +0 -740
  623. package/dist/build/generate-route-types.js.map +0 -1
  624. package/dist/build/index.d.ts +0 -21
  625. package/dist/build/index.d.ts.map +0 -1
  626. package/dist/build/index.js +0 -21
  627. package/dist/build/index.js.map +0 -1
  628. package/dist/build/route-trie.d.ts +0 -71
  629. package/dist/build/route-trie.d.ts.map +0 -1
  630. package/dist/build/route-trie.js +0 -175
  631. package/dist/build/route-trie.js.map +0 -1
  632. package/dist/cache/__tests__/cache-scope.test.d.ts +0 -2
  633. package/dist/cache/__tests__/cache-scope.test.d.ts.map +0 -1
  634. package/dist/cache/__tests__/cache-scope.test.js +0 -208
  635. package/dist/cache/__tests__/cache-scope.test.js.map +0 -1
  636. package/dist/cache/__tests__/document-cache.test.d.ts +0 -2
  637. package/dist/cache/__tests__/document-cache.test.d.ts.map +0 -1
  638. package/dist/cache/__tests__/document-cache.test.js +0 -345
  639. package/dist/cache/__tests__/document-cache.test.js.map +0 -1
  640. package/dist/cache/__tests__/memory-segment-store.test.d.ts +0 -2
  641. package/dist/cache/__tests__/memory-segment-store.test.d.ts.map +0 -1
  642. package/dist/cache/__tests__/memory-segment-store.test.js +0 -425
  643. package/dist/cache/__tests__/memory-segment-store.test.js.map +0 -1
  644. package/dist/cache/__tests__/memory-store.test.d.ts +0 -2
  645. package/dist/cache/__tests__/memory-store.test.d.ts.map +0 -1
  646. package/dist/cache/__tests__/memory-store.test.js +0 -367
  647. package/dist/cache/__tests__/memory-store.test.js.map +0 -1
  648. package/dist/cache/cache-scope.d.ts +0 -102
  649. package/dist/cache/cache-scope.d.ts.map +0 -1
  650. package/dist/cache/cache-scope.js +0 -440
  651. package/dist/cache/cache-scope.js.map +0 -1
  652. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts +0 -2
  653. package/dist/cache/cf/__tests__/cf-cache-store.test.d.ts.map +0 -1
  654. package/dist/cache/cf/__tests__/cf-cache-store.test.js +0 -330
  655. package/dist/cache/cf/__tests__/cf-cache-store.test.js.map +0 -1
  656. package/dist/cache/cf/cf-cache-store.d.ts +0 -165
  657. package/dist/cache/cf/cf-cache-store.d.ts.map +0 -1
  658. package/dist/cache/cf/cf-cache-store.js +0 -242
  659. package/dist/cache/cf/cf-cache-store.js.map +0 -1
  660. package/dist/cache/cf/index.d.ts +0 -14
  661. package/dist/cache/cf/index.d.ts.map +0 -1
  662. package/dist/cache/cf/index.js +0 -17
  663. package/dist/cache/cf/index.js.map +0 -1
  664. package/dist/cache/document-cache.d.ts +0 -64
  665. package/dist/cache/document-cache.d.ts.map +0 -1
  666. package/dist/cache/document-cache.js +0 -228
  667. package/dist/cache/document-cache.js.map +0 -1
  668. package/dist/cache/index.d.ts +0 -19
  669. package/dist/cache/index.d.ts.map +0 -1
  670. package/dist/cache/index.js +0 -21
  671. package/dist/cache/index.js.map +0 -1
  672. package/dist/cache/memory-segment-store.d.ts +0 -110
  673. package/dist/cache/memory-segment-store.d.ts.map +0 -1
  674. package/dist/cache/memory-segment-store.js +0 -117
  675. package/dist/cache/memory-segment-store.js.map +0 -1
  676. package/dist/cache/memory-store.d.ts +0 -41
  677. package/dist/cache/memory-store.d.ts.map +0 -1
  678. package/dist/cache/memory-store.js +0 -191
  679. package/dist/cache/memory-store.js.map +0 -1
  680. package/dist/cache/types.d.ts +0 -317
  681. package/dist/cache/types.d.ts.map +0 -1
  682. package/dist/cache/types.js +0 -12
  683. package/dist/cache/types.js.map +0 -1
  684. package/dist/client.d.ts +0 -248
  685. package/dist/client.d.ts.map +0 -1
  686. package/dist/client.js +0 -367
  687. package/dist/client.js.map +0 -1
  688. package/dist/client.rsc.d.ts +0 -26
  689. package/dist/client.rsc.d.ts.map +0 -1
  690. package/dist/client.rsc.js +0 -46
  691. package/dist/client.rsc.js.map +0 -1
  692. package/dist/component-utils.d.ts +0 -36
  693. package/dist/component-utils.d.ts.map +0 -1
  694. package/dist/component-utils.js +0 -61
  695. package/dist/component-utils.js.map +0 -1
  696. package/dist/components/DefaultDocument.d.ts +0 -13
  697. package/dist/components/DefaultDocument.d.ts.map +0 -1
  698. package/dist/components/DefaultDocument.js +0 -15
  699. package/dist/components/DefaultDocument.js.map +0 -1
  700. package/dist/debug.d.ts +0 -58
  701. package/dist/debug.d.ts.map +0 -1
  702. package/dist/debug.js +0 -157
  703. package/dist/debug.js.map +0 -1
  704. package/dist/default-error-boundary.d.ts +0 -11
  705. package/dist/default-error-boundary.d.ts.map +0 -1
  706. package/dist/default-error-boundary.js +0 -45
  707. package/dist/default-error-boundary.js.map +0 -1
  708. package/dist/deps/browser.d.ts +0 -2
  709. package/dist/deps/browser.d.ts.map +0 -1
  710. package/dist/deps/browser.js +0 -3
  711. package/dist/deps/browser.js.map +0 -1
  712. package/dist/deps/html-stream-client.d.ts +0 -2
  713. package/dist/deps/html-stream-client.d.ts.map +0 -1
  714. package/dist/deps/html-stream-client.js +0 -3
  715. package/dist/deps/html-stream-client.js.map +0 -1
  716. package/dist/deps/html-stream-server.d.ts +0 -2
  717. package/dist/deps/html-stream-server.d.ts.map +0 -1
  718. package/dist/deps/html-stream-server.js +0 -3
  719. package/dist/deps/html-stream-server.js.map +0 -1
  720. package/dist/deps/rsc.d.ts +0 -2
  721. package/dist/deps/rsc.d.ts.map +0 -1
  722. package/dist/deps/rsc.js +0 -4
  723. package/dist/deps/rsc.js.map +0 -1
  724. package/dist/deps/ssr.d.ts +0 -2
  725. package/dist/deps/ssr.d.ts.map +0 -1
  726. package/dist/deps/ssr.js +0 -3
  727. package/dist/deps/ssr.js.map +0 -1
  728. package/dist/errors.d.ts +0 -174
  729. package/dist/errors.d.ts.map +0 -1
  730. package/dist/errors.js +0 -241
  731. package/dist/errors.js.map +0 -1
  732. package/dist/handle.d.ts +0 -78
  733. package/dist/handle.d.ts.map +0 -1
  734. package/dist/handle.js +0 -82
  735. package/dist/handle.js.map +0 -1
  736. package/dist/handles/MetaTags.d.ts +0 -14
  737. package/dist/handles/MetaTags.d.ts.map +0 -1
  738. package/dist/handles/MetaTags.js +0 -136
  739. package/dist/handles/MetaTags.js.map +0 -1
  740. package/dist/handles/index.d.ts +0 -6
  741. package/dist/handles/index.d.ts.map +0 -1
  742. package/dist/handles/index.js +0 -6
  743. package/dist/handles/index.js.map +0 -1
  744. package/dist/handles/meta.d.ts +0 -39
  745. package/dist/handles/meta.d.ts.map +0 -1
  746. package/dist/handles/meta.js +0 -202
  747. package/dist/handles/meta.js.map +0 -1
  748. package/dist/host/__tests__/errors.test.d.ts +0 -2
  749. package/dist/host/__tests__/errors.test.d.ts.map +0 -1
  750. package/dist/host/__tests__/errors.test.js +0 -76
  751. package/dist/host/__tests__/errors.test.js.map +0 -1
  752. package/dist/host/__tests__/pattern-comprehensive.test.d.ts +0 -2
  753. package/dist/host/__tests__/pattern-comprehensive.test.d.ts.map +0 -1
  754. package/dist/host/__tests__/pattern-comprehensive.test.js +0 -732
  755. package/dist/host/__tests__/pattern-comprehensive.test.js.map +0 -1
  756. package/dist/host/__tests__/pattern-matcher.test.d.ts +0 -2
  757. package/dist/host/__tests__/pattern-matcher.test.d.ts.map +0 -1
  758. package/dist/host/__tests__/pattern-matcher.test.js +0 -251
  759. package/dist/host/__tests__/pattern-matcher.test.js.map +0 -1
  760. package/dist/host/__tests__/router.test.d.ts +0 -2
  761. package/dist/host/__tests__/router.test.d.ts.map +0 -1
  762. package/dist/host/__tests__/router.test.js +0 -241
  763. package/dist/host/__tests__/router.test.js.map +0 -1
  764. package/dist/host/__tests__/testing.test.d.ts +0 -2
  765. package/dist/host/__tests__/testing.test.d.ts.map +0 -1
  766. package/dist/host/__tests__/testing.test.js +0 -64
  767. package/dist/host/__tests__/testing.test.js.map +0 -1
  768. package/dist/host/__tests__/utils.test.d.ts +0 -2
  769. package/dist/host/__tests__/utils.test.d.ts.map +0 -1
  770. package/dist/host/__tests__/utils.test.js +0 -29
  771. package/dist/host/__tests__/utils.test.js.map +0 -1
  772. package/dist/host/cookie-handler.d.ts +0 -34
  773. package/dist/host/cookie-handler.d.ts.map +0 -1
  774. package/dist/host/cookie-handler.js +0 -124
  775. package/dist/host/cookie-handler.js.map +0 -1
  776. package/dist/host/errors.d.ts +0 -56
  777. package/dist/host/errors.d.ts.map +0 -1
  778. package/dist/host/errors.js +0 -79
  779. package/dist/host/errors.js.map +0 -1
  780. package/dist/host/index.d.ts +0 -29
  781. package/dist/host/index.d.ts.map +0 -1
  782. package/dist/host/index.js +0 -32
  783. package/dist/host/index.js.map +0 -1
  784. package/dist/host/pattern-matcher.d.ts +0 -36
  785. package/dist/host/pattern-matcher.d.ts.map +0 -1
  786. package/dist/host/pattern-matcher.js +0 -172
  787. package/dist/host/pattern-matcher.js.map +0 -1
  788. package/dist/host/router.d.ts +0 -26
  789. package/dist/host/router.d.ts.map +0 -1
  790. package/dist/host/router.js +0 -218
  791. package/dist/host/router.js.map +0 -1
  792. package/dist/host/testing.d.ts +0 -36
  793. package/dist/host/testing.d.ts.map +0 -1
  794. package/dist/host/testing.js +0 -55
  795. package/dist/host/testing.js.map +0 -1
  796. package/dist/host/types.d.ts +0 -115
  797. package/dist/host/types.d.ts.map +0 -1
  798. package/dist/host/types.js +0 -7
  799. package/dist/host/types.js.map +0 -1
  800. package/dist/host/utils.d.ts +0 -21
  801. package/dist/host/utils.d.ts.map +0 -1
  802. package/dist/host/utils.js +0 -23
  803. package/dist/host/utils.js.map +0 -1
  804. package/dist/href-client.d.ts +0 -131
  805. package/dist/href-client.d.ts.map +0 -1
  806. package/dist/href-client.js +0 -64
  807. package/dist/href-client.js.map +0 -1
  808. package/dist/href-context.d.ts +0 -29
  809. package/dist/href-context.d.ts.map +0 -1
  810. package/dist/href-context.js +0 -21
  811. package/dist/href-context.js.map +0 -1
  812. package/dist/index.d.ts +0 -73
  813. package/dist/index.d.ts.map +0 -1
  814. package/dist/index.js +0 -91
  815. package/dist/index.js.map +0 -1
  816. package/dist/index.rsc.d.ts +0 -32
  817. package/dist/index.rsc.d.ts.map +0 -1
  818. package/dist/index.rsc.js +0 -40
  819. package/dist/index.rsc.js.map +0 -1
  820. package/dist/internal-debug.d.ts +0 -2
  821. package/dist/internal-debug.d.ts.map +0 -1
  822. package/dist/internal-debug.js +0 -5
  823. package/dist/internal-debug.js.map +0 -1
  824. package/dist/loader.d.ts +0 -14
  825. package/dist/loader.d.ts.map +0 -1
  826. package/dist/loader.js +0 -20
  827. package/dist/loader.js.map +0 -1
  828. package/dist/loader.rsc.d.ts +0 -19
  829. package/dist/loader.rsc.d.ts.map +0 -1
  830. package/dist/loader.rsc.js +0 -99
  831. package/dist/loader.rsc.js.map +0 -1
  832. package/dist/network-error-thrower.d.ts +0 -17
  833. package/dist/network-error-thrower.d.ts.map +0 -1
  834. package/dist/network-error-thrower.js +0 -14
  835. package/dist/network-error-thrower.js.map +0 -1
  836. package/dist/outlet-context.d.ts +0 -13
  837. package/dist/outlet-context.d.ts.map +0 -1
  838. package/dist/outlet-context.js +0 -3
  839. package/dist/outlet-context.js.map +0 -1
  840. package/dist/prerender/__tests__/param-hash.test.d.ts +0 -2
  841. package/dist/prerender/__tests__/param-hash.test.d.ts.map +0 -1
  842. package/dist/prerender/__tests__/param-hash.test.js +0 -148
  843. package/dist/prerender/__tests__/param-hash.test.js.map +0 -1
  844. package/dist/prerender/param-hash.d.ts +0 -16
  845. package/dist/prerender/param-hash.d.ts.map +0 -1
  846. package/dist/prerender/param-hash.js +0 -36
  847. package/dist/prerender/param-hash.js.map +0 -1
  848. package/dist/prerender/store.d.ts +0 -38
  849. package/dist/prerender/store.d.ts.map +0 -1
  850. package/dist/prerender/store.js +0 -61
  851. package/dist/prerender/store.js.map +0 -1
  852. package/dist/prerender.d.ts +0 -66
  853. package/dist/prerender.d.ts.map +0 -1
  854. package/dist/prerender.js +0 -57
  855. package/dist/prerender.js.map +0 -1
  856. package/dist/reverse.d.ts +0 -196
  857. package/dist/reverse.d.ts.map +0 -1
  858. package/dist/reverse.js +0 -78
  859. package/dist/reverse.js.map +0 -1
  860. package/dist/root-error-boundary.d.ts +0 -33
  861. package/dist/root-error-boundary.d.ts.map +0 -1
  862. package/dist/root-error-boundary.js +0 -165
  863. package/dist/root-error-boundary.js.map +0 -1
  864. package/dist/route-content-wrapper.d.ts +0 -46
  865. package/dist/route-content-wrapper.d.ts.map +0 -1
  866. package/dist/route-content-wrapper.js +0 -77
  867. package/dist/route-content-wrapper.js.map +0 -1
  868. package/dist/route-definition.d.ts +0 -421
  869. package/dist/route-definition.d.ts.map +0 -1
  870. package/dist/route-definition.js +0 -868
  871. package/dist/route-definition.js.map +0 -1
  872. package/dist/route-map-builder.d.ts +0 -155
  873. package/dist/route-map-builder.d.ts.map +0 -1
  874. package/dist/route-map-builder.js +0 -237
  875. package/dist/route-map-builder.js.map +0 -1
  876. package/dist/route-types.d.ts +0 -165
  877. package/dist/route-types.d.ts.map +0 -1
  878. package/dist/route-types.js +0 -7
  879. package/dist/route-types.js.map +0 -1
  880. package/dist/router/__tests__/handler-context.test.d.ts +0 -2
  881. package/dist/router/__tests__/handler-context.test.d.ts.map +0 -1
  882. package/dist/router/__tests__/handler-context.test.js +0 -65
  883. package/dist/router/__tests__/handler-context.test.js.map +0 -1
  884. package/dist/router/__tests__/loader-cycle-detection.test.d.ts +0 -2
  885. package/dist/router/__tests__/loader-cycle-detection.test.d.ts.map +0 -1
  886. package/dist/router/__tests__/loader-cycle-detection.test.js +0 -221
  887. package/dist/router/__tests__/loader-cycle-detection.test.js.map +0 -1
  888. package/dist/router/__tests__/match-context.test.d.ts +0 -2
  889. package/dist/router/__tests__/match-context.test.d.ts.map +0 -1
  890. package/dist/router/__tests__/match-context.test.js +0 -92
  891. package/dist/router/__tests__/match-context.test.js.map +0 -1
  892. package/dist/router/__tests__/match-pipelines.test.d.ts +0 -2
  893. package/dist/router/__tests__/match-pipelines.test.d.ts.map +0 -1
  894. package/dist/router/__tests__/match-pipelines.test.js +0 -417
  895. package/dist/router/__tests__/match-pipelines.test.js.map +0 -1
  896. package/dist/router/__tests__/match-result.test.d.ts +0 -2
  897. package/dist/router/__tests__/match-result.test.d.ts.map +0 -1
  898. package/dist/router/__tests__/match-result.test.js +0 -457
  899. package/dist/router/__tests__/match-result.test.js.map +0 -1
  900. package/dist/router/__tests__/on-error.test.d.ts +0 -2
  901. package/dist/router/__tests__/on-error.test.d.ts.map +0 -1
  902. package/dist/router/__tests__/on-error.test.js +0 -678
  903. package/dist/router/__tests__/on-error.test.js.map +0 -1
  904. package/dist/router/__tests__/pattern-matching.test.d.ts +0 -2
  905. package/dist/router/__tests__/pattern-matching.test.d.ts.map +0 -1
  906. package/dist/router/__tests__/pattern-matching.test.js +0 -629
  907. package/dist/router/__tests__/pattern-matching.test.js.map +0 -1
  908. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts +0 -2
  909. package/dist/router/__tests__/segment-resolution-parallel-loading.test.d.ts.map +0 -1
  910. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js +0 -155
  911. package/dist/router/__tests__/segment-resolution-parallel-loading.test.js.map +0 -1
  912. package/dist/router/error-handling.d.ts +0 -77
  913. package/dist/router/error-handling.d.ts.map +0 -1
  914. package/dist/router/error-handling.js +0 -202
  915. package/dist/router/error-handling.js.map +0 -1
  916. package/dist/router/handler-context.d.ts +0 -20
  917. package/dist/router/handler-context.d.ts.map +0 -1
  918. package/dist/router/handler-context.js +0 -198
  919. package/dist/router/handler-context.js.map +0 -1
  920. package/dist/router/intercept-resolution.d.ts +0 -66
  921. package/dist/router/intercept-resolution.d.ts.map +0 -1
  922. package/dist/router/intercept-resolution.js +0 -246
  923. package/dist/router/intercept-resolution.js.map +0 -1
  924. package/dist/router/loader-resolution.d.ts +0 -64
  925. package/dist/router/loader-resolution.d.ts.map +0 -1
  926. package/dist/router/loader-resolution.js +0 -284
  927. package/dist/router/loader-resolution.js.map +0 -1
  928. package/dist/router/logging.d.ts +0 -15
  929. package/dist/router/logging.d.ts.map +0 -1
  930. package/dist/router/logging.js +0 -99
  931. package/dist/router/logging.js.map +0 -1
  932. package/dist/router/manifest.d.ts +0 -22
  933. package/dist/router/manifest.d.ts.map +0 -1
  934. package/dist/router/manifest.js +0 -181
  935. package/dist/router/manifest.js.map +0 -1
  936. package/dist/router/match-api.d.ts +0 -35
  937. package/dist/router/match-api.d.ts.map +0 -1
  938. package/dist/router/match-api.js +0 -406
  939. package/dist/router/match-api.js.map +0 -1
  940. package/dist/router/match-context.d.ts +0 -206
  941. package/dist/router/match-context.d.ts.map +0 -1
  942. package/dist/router/match-context.js +0 -17
  943. package/dist/router/match-context.js.map +0 -1
  944. package/dist/router/match-middleware/background-revalidation.d.ts +0 -127
  945. package/dist/router/match-middleware/background-revalidation.d.ts.map +0 -1
  946. package/dist/router/match-middleware/background-revalidation.js +0 -75
  947. package/dist/router/match-middleware/background-revalidation.js.map +0 -1
  948. package/dist/router/match-middleware/cache-lookup.d.ts +0 -112
  949. package/dist/router/match-middleware/cache-lookup.d.ts.map +0 -1
  950. package/dist/router/match-middleware/cache-lookup.js +0 -257
  951. package/dist/router/match-middleware/cache-lookup.js.map +0 -1
  952. package/dist/router/match-middleware/cache-store.d.ts +0 -113
  953. package/dist/router/match-middleware/cache-store.d.ts.map +0 -1
  954. package/dist/router/match-middleware/cache-store.js +0 -108
  955. package/dist/router/match-middleware/cache-store.js.map +0 -1
  956. package/dist/router/match-middleware/index.d.ts +0 -81
  957. package/dist/router/match-middleware/index.d.ts.map +0 -1
  958. package/dist/router/match-middleware/index.js +0 -80
  959. package/dist/router/match-middleware/index.js.map +0 -1
  960. package/dist/router/match-middleware/intercept-resolution.d.ts +0 -117
  961. package/dist/router/match-middleware/intercept-resolution.d.ts.map +0 -1
  962. package/dist/router/match-middleware/intercept-resolution.js +0 -134
  963. package/dist/router/match-middleware/intercept-resolution.js.map +0 -1
  964. package/dist/router/match-middleware/segment-resolution.d.ts +0 -99
  965. package/dist/router/match-middleware/segment-resolution.d.ts.map +0 -1
  966. package/dist/router/match-middleware/segment-resolution.js +0 -53
  967. package/dist/router/match-middleware/segment-resolution.js.map +0 -1
  968. package/dist/router/match-pipelines.d.ts +0 -147
  969. package/dist/router/match-pipelines.d.ts.map +0 -1
  970. package/dist/router/match-pipelines.js +0 -82
  971. package/dist/router/match-pipelines.js.map +0 -1
  972. package/dist/router/match-result.d.ts +0 -126
  973. package/dist/router/match-result.d.ts.map +0 -1
  974. package/dist/router/match-result.js +0 -93
  975. package/dist/router/match-result.js.map +0 -1
  976. package/dist/router/metrics.d.ts +0 -20
  977. package/dist/router/metrics.d.ts.map +0 -1
  978. package/dist/router/metrics.js +0 -47
  979. package/dist/router/metrics.js.map +0 -1
  980. package/dist/router/middleware.d.ts +0 -249
  981. package/dist/router/middleware.d.ts.map +0 -1
  982. package/dist/router/middleware.js +0 -434
  983. package/dist/router/middleware.js.map +0 -1
  984. package/dist/router/middleware.test.d.ts +0 -2
  985. package/dist/router/middleware.test.d.ts.map +0 -1
  986. package/dist/router/middleware.test.js +0 -816
  987. package/dist/router/middleware.test.js.map +0 -1
  988. package/dist/router/pattern-matching.d.ts +0 -149
  989. package/dist/router/pattern-matching.d.ts.map +0 -1
  990. package/dist/router/pattern-matching.js +0 -349
  991. package/dist/router/pattern-matching.js.map +0 -1
  992. package/dist/router/revalidation.d.ts +0 -44
  993. package/dist/router/revalidation.d.ts.map +0 -1
  994. package/dist/router/revalidation.js +0 -147
  995. package/dist/router/revalidation.js.map +0 -1
  996. package/dist/router/router-context.d.ts +0 -135
  997. package/dist/router/router-context.d.ts.map +0 -1
  998. package/dist/router/router-context.js +0 -36
  999. package/dist/router/router-context.js.map +0 -1
  1000. package/dist/router/segment-resolution.d.ts +0 -127
  1001. package/dist/router/segment-resolution.d.ts.map +0 -1
  1002. package/dist/router/segment-resolution.js +0 -919
  1003. package/dist/router/segment-resolution.js.map +0 -1
  1004. package/dist/router/trie-matching.d.ts +0 -40
  1005. package/dist/router/trie-matching.d.ts.map +0 -1
  1006. package/dist/router/trie-matching.js +0 -127
  1007. package/dist/router/trie-matching.js.map +0 -1
  1008. package/dist/router/types.d.ts +0 -136
  1009. package/dist/router/types.d.ts.map +0 -1
  1010. package/dist/router/types.js +0 -7
  1011. package/dist/router/types.js.map +0 -1
  1012. package/dist/router.d.ts +0 -753
  1013. package/dist/router.d.ts.map +0 -1
  1014. package/dist/router.gen.d.ts +0 -6
  1015. package/dist/router.gen.d.ts.map +0 -1
  1016. package/dist/router.gen.js +0 -6
  1017. package/dist/router.gen.js.map +0 -1
  1018. package/dist/router.js +0 -1304
  1019. package/dist/router.js.map +0 -1
  1020. package/dist/rsc/__tests__/helpers.test.d.ts +0 -2
  1021. package/dist/rsc/__tests__/helpers.test.d.ts.map +0 -1
  1022. package/dist/rsc/__tests__/helpers.test.js +0 -140
  1023. package/dist/rsc/__tests__/helpers.test.js.map +0 -1
  1024. package/dist/rsc/handler.d.ts +0 -45
  1025. package/dist/rsc/handler.d.ts.map +0 -1
  1026. package/dist/rsc/handler.js +0 -1172
  1027. package/dist/rsc/handler.js.map +0 -1
  1028. package/dist/rsc/helpers.d.ts +0 -16
  1029. package/dist/rsc/helpers.d.ts.map +0 -1
  1030. package/dist/rsc/helpers.js +0 -55
  1031. package/dist/rsc/helpers.js.map +0 -1
  1032. package/dist/rsc/index.d.ts +0 -22
  1033. package/dist/rsc/index.d.ts.map +0 -1
  1034. package/dist/rsc/index.js +0 -23
  1035. package/dist/rsc/index.js.map +0 -1
  1036. package/dist/rsc/nonce.d.ts +0 -9
  1037. package/dist/rsc/nonce.d.ts.map +0 -1
  1038. package/dist/rsc/nonce.js +0 -18
  1039. package/dist/rsc/nonce.js.map +0 -1
  1040. package/dist/rsc/types.d.ts +0 -206
  1041. package/dist/rsc/types.d.ts.map +0 -1
  1042. package/dist/rsc/types.js +0 -8
  1043. package/dist/rsc/types.js.map +0 -1
  1044. package/dist/search-params.d.ts +0 -103
  1045. package/dist/search-params.d.ts.map +0 -1
  1046. package/dist/search-params.js +0 -74
  1047. package/dist/search-params.js.map +0 -1
  1048. package/dist/segment-system.d.ts +0 -75
  1049. package/dist/segment-system.d.ts.map +0 -1
  1050. package/dist/segment-system.js +0 -336
  1051. package/dist/segment-system.js.map +0 -1
  1052. package/dist/server/context.d.ts +0 -245
  1053. package/dist/server/context.d.ts.map +0 -1
  1054. package/dist/server/context.js +0 -197
  1055. package/dist/server/context.js.map +0 -1
  1056. package/dist/server/fetchable-loader-store.d.ts +0 -18
  1057. package/dist/server/fetchable-loader-store.d.ts.map +0 -1
  1058. package/dist/server/fetchable-loader-store.js +0 -18
  1059. package/dist/server/fetchable-loader-store.js.map +0 -1
  1060. package/dist/server/handle-store.d.ts +0 -85
  1061. package/dist/server/handle-store.d.ts.map +0 -1
  1062. package/dist/server/handle-store.js +0 -142
  1063. package/dist/server/handle-store.js.map +0 -1
  1064. package/dist/server/loader-registry.d.ts +0 -55
  1065. package/dist/server/loader-registry.d.ts.map +0 -1
  1066. package/dist/server/loader-registry.js +0 -132
  1067. package/dist/server/loader-registry.js.map +0 -1
  1068. package/dist/server/request-context.d.ts +0 -226
  1069. package/dist/server/request-context.d.ts.map +0 -1
  1070. package/dist/server/request-context.js +0 -290
  1071. package/dist/server/request-context.js.map +0 -1
  1072. package/dist/server/root-layout.d.ts +0 -4
  1073. package/dist/server/root-layout.d.ts.map +0 -1
  1074. package/dist/server/root-layout.js +0 -5
  1075. package/dist/server/root-layout.js.map +0 -1
  1076. package/dist/server.d.ts +0 -15
  1077. package/dist/server.d.ts.map +0 -1
  1078. package/dist/server.js +0 -20
  1079. package/dist/server.js.map +0 -1
  1080. package/dist/ssr/__tests__/ssr-handler.test.d.ts +0 -2
  1081. package/dist/ssr/__tests__/ssr-handler.test.d.ts.map +0 -1
  1082. package/dist/ssr/__tests__/ssr-handler.test.js +0 -132
  1083. package/dist/ssr/__tests__/ssr-handler.test.js.map +0 -1
  1084. package/dist/ssr/index.d.ts +0 -98
  1085. package/dist/ssr/index.d.ts.map +0 -1
  1086. package/dist/ssr/index.js +0 -158
  1087. package/dist/ssr/index.js.map +0 -1
  1088. package/dist/static-handler.d.ts +0 -50
  1089. package/dist/static-handler.d.ts.map +0 -1
  1090. package/dist/static-handler.gen.d.ts +0 -5
  1091. package/dist/static-handler.gen.d.ts.map +0 -1
  1092. package/dist/static-handler.gen.js +0 -5
  1093. package/dist/static-handler.gen.js.map +0 -1
  1094. package/dist/static-handler.js +0 -29
  1095. package/dist/static-handler.js.map +0 -1
  1096. package/dist/theme/ThemeProvider.d.ts +0 -20
  1097. package/dist/theme/ThemeProvider.d.ts.map +0 -1
  1098. package/dist/theme/ThemeProvider.js +0 -240
  1099. package/dist/theme/ThemeProvider.js.map +0 -1
  1100. package/dist/theme/ThemeScript.d.ts +0 -48
  1101. package/dist/theme/ThemeScript.d.ts.map +0 -1
  1102. package/dist/theme/ThemeScript.js +0 -13
  1103. package/dist/theme/ThemeScript.js.map +0 -1
  1104. package/dist/theme/__tests__/theme.test.d.ts +0 -2
  1105. package/dist/theme/__tests__/theme.test.d.ts.map +0 -1
  1106. package/dist/theme/__tests__/theme.test.js +0 -103
  1107. package/dist/theme/__tests__/theme.test.js.map +0 -1
  1108. package/dist/theme/constants.d.ts +0 -29
  1109. package/dist/theme/constants.d.ts.map +0 -1
  1110. package/dist/theme/constants.js +0 -48
  1111. package/dist/theme/constants.js.map +0 -1
  1112. package/dist/theme/index.d.ts +0 -31
  1113. package/dist/theme/index.d.ts.map +0 -1
  1114. package/dist/theme/index.js +0 -36
  1115. package/dist/theme/index.js.map +0 -1
  1116. package/dist/theme/theme-context.d.ts +0 -40
  1117. package/dist/theme/theme-context.d.ts.map +0 -1
  1118. package/dist/theme/theme-context.js +0 -60
  1119. package/dist/theme/theme-context.js.map +0 -1
  1120. package/dist/theme/theme-script.d.ts +0 -27
  1121. package/dist/theme/theme-script.d.ts.map +0 -1
  1122. package/dist/theme/theme-script.js +0 -147
  1123. package/dist/theme/theme-script.js.map +0 -1
  1124. package/dist/theme/types.d.ts +0 -163
  1125. package/dist/theme/types.d.ts.map +0 -1
  1126. package/dist/theme/types.js +0 -11
  1127. package/dist/theme/types.js.map +0 -1
  1128. package/dist/theme/use-theme.d.ts +0 -12
  1129. package/dist/theme/use-theme.d.ts.map +0 -1
  1130. package/dist/theme/use-theme.js +0 -40
  1131. package/dist/theme/use-theme.js.map +0 -1
  1132. package/dist/types.d.ts +0 -1479
  1133. package/dist/types.d.ts.map +0 -1
  1134. package/dist/types.js +0 -10
  1135. package/dist/types.js.map +0 -1
  1136. package/dist/urls.d.ts +0 -441
  1137. package/dist/urls.d.ts.map +0 -1
  1138. package/dist/urls.gen.d.ts +0 -8
  1139. package/dist/urls.gen.d.ts.map +0 -1
  1140. package/dist/urls.gen.js +0 -8
  1141. package/dist/urls.gen.js.map +0 -1
  1142. package/dist/urls.js +0 -443
  1143. package/dist/urls.js.map +0 -1
  1144. package/dist/use-loader.d.ts +0 -127
  1145. package/dist/use-loader.d.ts.map +0 -1
  1146. package/dist/use-loader.js +0 -237
  1147. package/dist/use-loader.js.map +0 -1
  1148. package/dist/vite/__tests__/ast-handler-extract.test.d.ts +0 -2
  1149. package/dist/vite/__tests__/ast-handler-extract.test.d.ts.map +0 -1
  1150. package/dist/vite/__tests__/ast-handler-extract.test.js +0 -294
  1151. package/dist/vite/__tests__/ast-handler-extract.test.js.map +0 -1
  1152. package/dist/vite/__tests__/expose-id-utils.test.d.ts +0 -2
  1153. package/dist/vite/__tests__/expose-id-utils.test.d.ts.map +0 -1
  1154. package/dist/vite/__tests__/expose-id-utils.test.js +0 -224
  1155. package/dist/vite/__tests__/expose-id-utils.test.js.map +0 -1
  1156. package/dist/vite/__tests__/expose-internal-ids.test.d.ts +0 -2
  1157. package/dist/vite/__tests__/expose-internal-ids.test.d.ts.map +0 -1
  1158. package/dist/vite/__tests__/expose-internal-ids.test.js +0 -647
  1159. package/dist/vite/__tests__/expose-internal-ids.test.js.map +0 -1
  1160. package/dist/vite/__tests__/expose-router-id.test.d.ts +0 -2
  1161. package/dist/vite/__tests__/expose-router-id.test.d.ts.map +0 -1
  1162. package/dist/vite/__tests__/expose-router-id.test.js +0 -39
  1163. package/dist/vite/__tests__/expose-router-id.test.js.map +0 -1
  1164. package/dist/vite/ast-handler-extract.d.ts +0 -49
  1165. package/dist/vite/ast-handler-extract.d.ts.map +0 -1
  1166. package/dist/vite/ast-handler-extract.js +0 -249
  1167. package/dist/vite/ast-handler-extract.js.map +0 -1
  1168. package/dist/vite/expose-action-id.d.ts +0 -19
  1169. package/dist/vite/expose-action-id.d.ts.map +0 -1
  1170. package/dist/vite/expose-action-id.js +0 -250
  1171. package/dist/vite/expose-action-id.js.map +0 -1
  1172. package/dist/vite/expose-id-utils.d.ts +0 -69
  1173. package/dist/vite/expose-id-utils.d.ts.map +0 -1
  1174. package/dist/vite/expose-id-utils.js +0 -289
  1175. package/dist/vite/expose-id-utils.js.map +0 -1
  1176. package/dist/vite/expose-internal-ids.d.ts +0 -22
  1177. package/dist/vite/expose-internal-ids.d.ts.map +0 -1
  1178. package/dist/vite/expose-internal-ids.js +0 -886
  1179. package/dist/vite/expose-internal-ids.js.map +0 -1
  1180. package/dist/vite/index.d.ts +0 -149
  1181. package/dist/vite/index.d.ts.map +0 -1
  1182. package/dist/vite/index.js.bak +0 -5448
  1183. package/dist/vite/index.js.map +0 -1
  1184. package/dist/vite/index.named-routes.gen.ts +0 -103
  1185. package/dist/vite/package-resolution.d.ts +0 -43
  1186. package/dist/vite/package-resolution.d.ts.map +0 -1
  1187. package/dist/vite/package-resolution.js +0 -112
  1188. package/dist/vite/package-resolution.js.map +0 -1
  1189. package/dist/vite/virtual-entries.d.ts +0 -25
  1190. package/dist/vite/virtual-entries.d.ts.map +0 -1
  1191. package/dist/vite/virtual-entries.js +0 -110
  1192. package/dist/vite/virtual-entries.js.map +0 -1
  1193. package/src/browser/action-response-classifier.ts +0 -99
  1194. package/src/browser/react/use-client-cache.ts +0 -58
  1195. package/src/browser/shallow.ts +0 -40
  1196. package/src/handles/index.ts +0 -7
  1197. package/src/network-error-thrower.tsx +0 -23
  1198. package/src/router/middleware-cookies.ts +0 -55
@@ -12,23 +12,25 @@
12
12
  */
13
13
 
14
14
  import type { MiddlewareFn, MiddlewareContext } from "../router/middleware.js";
15
- import { getRequestContext } from "../server/request-context.js";
15
+ import { hasPerClientSignal } from "../browser/cookie-name.js";
16
+ import {
17
+ getRequestContext,
18
+ type RequestContext,
19
+ } from "../server/request-context.js";
16
20
  import { mayNeedSSR } from "../rsc/ssr-setup.js";
17
21
  import { sortedSearchString } from "./cache-key-utils.js";
18
22
  import { runBackground } from "./background-task.js";
23
+ import { reportCacheError } from "./cache-error.js";
19
24
 
20
- // ============================================================================
21
- // Constants
22
- // ============================================================================
23
-
24
- /** Header indicating cache status for debugging */
25
25
  const CACHE_STATUS_HEADER = "x-document-cache-status";
26
26
 
27
- /**
28
- * Simple hash function for segment IDs.
29
- * Creates a short, deterministic hash to differentiate cache keys
30
- * based on which segments the client already has.
31
- */
27
+ function collectRequestTags(
28
+ requestCtx: RequestContext | undefined,
29
+ ): string[] | undefined {
30
+ const tags = requestCtx?._requestTags;
31
+ return tags && tags.size > 0 ? [...tags] : undefined;
32
+ }
33
+
32
34
  function hashSegmentIds(segmentIds: string): string {
33
35
  if (!segmentIds) return "";
34
36
 
@@ -37,12 +39,9 @@ function hashSegmentIds(segmentIds: string): string {
37
39
  const char = segmentIds.charCodeAt(i);
38
40
  hash = ((hash << 5) - hash + char) | 0;
39
41
  }
40
- // Convert to base36 for shorter string, take absolute value
41
42
  return Math.abs(hash).toString(36);
42
43
  }
43
44
 
44
- // ============================================================================
45
- // Cache Control Parsing
46
45
  // ============================================================================
47
46
 
48
47
  interface CacheDirectives {
@@ -56,6 +55,27 @@ interface CacheDirectives {
56
55
  function parseCacheControl(header: string | null): CacheDirectives | null {
57
56
  if (!header) return null;
58
57
 
58
+ // RFC 7234: in a SHARED cache, `private` and `no-store` forbid storage and
59
+ // MUST win over `s-maxage` even though `private, s-maxage` is contradictory.
60
+ // The document cache is a shared edge store, so refuse both regardless of any
61
+ // s-maxage / stale-while-revalidate also present. Match standalone directive
62
+ // tokens (start/end, whitespace, comma, semicolon, or `=` bounded), not a
63
+ // substring, so a value containing "private" cannot false-veto.
64
+ if (/(^|[\s,;])(private|no-store)(?=$|[\s,;=])/i.test(header)) {
65
+ return null;
66
+ }
67
+
68
+ // RFC 7234 §5.2.2.2: a shared cache MUST NOT serve a stored `no-cache`
69
+ // response without successful origin validation. This store's hit path has no
70
+ // validation step, so serving a stored no-cache response within s-maxage
71
+ // would hand the client content the origin marked must-revalidate. Refuse to
72
+ // store it. Only UNqualified `no-cache` (no `=`) vetoes — the field-name-
73
+ // scoped `no-cache="set-cookie"` form IS storable per the RFC, so the `=`
74
+ // boundary is excluded from the lookahead (unlike private/no-store above).
75
+ if (/(^|[\s,;])no-cache(?=$|[\s,;])/i.test(header)) {
76
+ return null;
77
+ }
78
+
59
79
  const directives: CacheDirectives = {};
60
80
 
61
81
  // Parse s-maxage
@@ -87,6 +107,16 @@ function shouldCacheResponse(response: Response): CacheDirectives | null {
87
107
  return null;
88
108
  }
89
109
 
110
+ // Never cache a per-client signal into a SHARED response store. A Set-Cookie
111
+ // (e.g. a rango state rotation from invalidateClientCache(), or any cookie a
112
+ // loader set) would be replayed to every client on a hit — pinning them to
113
+ // one value and even rolling a rotated client back to a prior one. The
114
+ // x-rango-keep-cache directive header is the mirror image: a replayed "keep"
115
+ // would suppress invalidation for every replayed client. Refuse both.
116
+ if (hasPerClientSignal(response.headers)) {
117
+ return null;
118
+ }
119
+
90
120
  const cacheControl = response.headers.get("Cache-Control");
91
121
  return parseCacheControl(cacheControl);
92
122
  }
@@ -303,17 +333,26 @@ export function createDocumentCacheMiddleware<TEnv = any>(
303
333
  const fresh = await next();
304
334
  const directives = shouldCacheResponse(fresh);
305
335
 
306
- if (directives) {
336
+ if (directives && fresh.body) {
337
+ // Background revalidation: nothing streams to a client, so drain
338
+ // the fresh render fully before snapshotting tags (same
339
+ // render-complete barrier as the miss path).
340
+ const body = await new Response(fresh.body).arrayBuffer();
307
341
  await store.putResponse!(
308
342
  cacheKey,
309
- fresh,
343
+ new Response(body, fresh),
310
344
  directives.sMaxAge!,
311
345
  directives.staleWhileRevalidate,
346
+ collectRequestTags(requestCtx),
312
347
  );
313
348
  log(`[DocumentCache] REVALIDATED ${typeLabel}: ${url.pathname}`);
314
349
  }
315
350
  } catch (error) {
316
- console.error(`[DocumentCache] Revalidation failed:`, error);
351
+ reportCacheError(
352
+ error,
353
+ "cache-write",
354
+ "[DocumentCache] revalidation",
355
+ );
317
356
  }
318
357
  });
319
358
 
@@ -346,14 +385,27 @@ export function createDocumentCacheMiddleware<TEnv = any>(
346
385
  // Clone response for caching (non-blocking)
347
386
  runBackground(requestCtx, async () => {
348
387
  try {
388
+ // Drain the cache copy fully BEFORE snapshotting tags. Tags from
389
+ // Suspense-streamed "use cache"/cacheTag and loaders are recorded as
390
+ // each value resolves during the RSC/HTML render, which completes
391
+ // only when the stream ends - the handler-settlement barrier is too
392
+ // early. Buffering the body (the client streams the other tee branch,
393
+ // unaffected) is the render-complete barrier that keeps the cached
394
+ // body and its tag set consistent.
395
+ const body = await new Response(cacheStream).arrayBuffer();
349
396
  await store.putResponse!(
350
397
  cacheKey,
351
- new Response(cacheStream, originalResponse),
398
+ new Response(body, originalResponse),
352
399
  directives.sMaxAge!,
353
400
  directives.staleWhileRevalidate,
401
+ collectRequestTags(requestCtx),
354
402
  );
355
403
  } catch (error) {
356
- console.error(`[DocumentCache] Cache write failed:`, error);
404
+ reportCacheError(
405
+ error,
406
+ "cache-write",
407
+ "[DocumentCache] cache write",
408
+ );
357
409
  }
358
410
  });
359
411
 
@@ -366,7 +418,7 @@ export function createDocumentCacheMiddleware<TEnv = any>(
366
418
  // No cache headers - pass through
367
419
  return originalResponse;
368
420
  } catch (error) {
369
- console.error(`[DocumentCache] Error:`, error);
421
+ reportCacheError(error, "cache-read", "[DocumentCache] middleware");
370
422
  if (handlerCalled) {
371
423
  // Post-handler failure (e.g. body.tee()): do not call next() again
372
424
  // as that would re-run handler side effects.
@@ -9,6 +9,76 @@
9
9
  import type { ResolvedSegment } from "../types.js";
10
10
  import type { HandleStore } from "../server/handle-store.js";
11
11
  import type { SegmentHandleData } from "./types.js";
12
+ // segment-codec eagerly pulls @vitejs/plugin-rsc (a virtual: module unresolvable
13
+ // in plain node/vitest). It is imported LAZILY inside the two async encode/decode
14
+ // helpers below so that modules which import handle-snapshot only for the
15
+ // plugin-rsc-free captureHandles/restoreHandles (e.g. cache-scope, on dispatch's
16
+ // lazy response-route cache path) do not pull plugin-rsc at module load. Behavior
17
+ // is unchanged: both helpers are async and already awaited the codec.
18
+
19
+ const HANDLE_ENCODE_TIMEOUT_MS = 5000;
20
+
21
+ type HandleRecord = Record<string, SegmentHandleData>;
22
+
23
+ function hasHandleData(handles: HandleRecord): boolean {
24
+ for (const segId in handles) {
25
+ for (const _ in handles[segId]) return true;
26
+ }
27
+ return false;
28
+ }
29
+
30
+ function withTimeout<T>(p: Promise<T>, ms: number, onTimeout: T): Promise<T> {
31
+ let timer: ReturnType<typeof setTimeout>;
32
+ const timeout = new Promise<T>((resolve) => {
33
+ timer = setTimeout(() => resolve(onTimeout), ms);
34
+ });
35
+ return Promise.race([
36
+ p.then(
37
+ (v) => {
38
+ clearTimeout(timer);
39
+ return v;
40
+ },
41
+ (e) => {
42
+ clearTimeout(timer);
43
+ throw e;
44
+ },
45
+ ),
46
+ timeout,
47
+ ]);
48
+ }
49
+
50
+ export async function encodeHandles(handles: HandleRecord): Promise<string> {
51
+ if (!hasHandleData(handles)) return "";
52
+ return encodeHandleValue(handles);
53
+ }
54
+
55
+ export function decodeHandles(encoded: string): Promise<HandleRecord | null> {
56
+ return decodeHandleValue<HandleRecord>(encoded);
57
+ }
58
+
59
+ export async function encodeHandleValue(value: unknown): Promise<string> {
60
+ const { serializeResult } = await import("./segment-codec.js");
61
+ const encoded = await withTimeout(
62
+ serializeResult(value),
63
+ HANDLE_ENCODE_TIMEOUT_MS,
64
+ null,
65
+ );
66
+ return encoded ?? "";
67
+ }
68
+
69
+ /**
70
+ * Decode a Flight-encoded handle-data string. Returns null on any decode
71
+ * failure so the caller can skip handle restore without discarding valid
72
+ * cached/prerendered segments.
73
+ */
74
+ export async function decodeHandleValue<T>(encoded: string): Promise<T | null> {
75
+ try {
76
+ const { deserializeResult } = await import("./segment-codec.js");
77
+ return await deserializeResult<T>(encoded);
78
+ } catch {
79
+ return null;
80
+ }
81
+ }
12
82
 
13
83
  /**
14
84
  * Capture handle data for a set of segments from the handle store.
@@ -1,44 +1,34 @@
1
- /**
2
- * Cache Store
3
- *
4
- * Server-side caching for RSC segments and loader data.
5
- *
6
- * Main exports for users:
7
- * - SegmentCacheStore - Interface for implementing custom cache stores
8
- * - MemorySegmentCacheStore - In-memory cache for development/testing
9
- * - CFCacheStore - Cloudflare edge cache store for production
10
- * - CacheScope / createCacheScope - Request-scoped cache provider
11
- */
12
-
13
- // Segment cache store types and implementations
14
1
  export type {
15
2
  SegmentCacheStore,
16
- SegmentCacheProvider,
17
3
  CachedEntryData,
18
- CachedEntryResult,
19
4
  CacheGetResult,
5
+ CacheItemResult,
6
+ CacheItemOptions,
20
7
  SerializedSegmentData,
21
8
  SegmentHandleData,
22
- CacheConfig,
23
- CacheConfigOrFactory,
24
9
  } from "./types.js";
25
10
 
26
11
  export { MemorySegmentCacheStore } from "./memory-segment-store.js";
27
12
 
28
- // Cloudflare cache store
29
13
  export {
30
14
  CFCacheStore,
31
15
  type CFCacheStoreOptions,
16
+ type CFCacheDebug,
17
+ type CFCacheReadDebugEvent,
32
18
  type KVNamespace,
33
19
  CACHE_STALE_AT_HEADER,
34
20
  CACHE_STATUS_HEADER,
21
+ CACHE_REVALIDATING_AT_HEADER,
22
+ EDGE_LOOKUP_TIMEOUT_MS,
23
+ EDGE_READ_TIMEOUT_MS,
24
+ KV_READ_TIMEOUT_MS,
35
25
  } from "./cf/index.js";
36
26
 
37
- // Cache scope
38
27
  export { CacheScope, createCacheScope } from "./cache-scope.js";
39
28
 
40
- // Document-level cache middleware
41
29
  export {
42
30
  createDocumentCacheMiddleware,
43
31
  type DocumentCacheOptions,
44
32
  } from "./document-cache.js";
33
+
34
+ export type { CacheErrorCategory } from "./cache-error.js";
@@ -12,19 +12,22 @@ import type {
12
12
  CacheGetResult,
13
13
  CacheItemResult,
14
14
  CacheItemOptions,
15
- SegmentHandleData,
16
15
  } from "./types.js";
17
16
  import type { RequestContext } from "../server/request-context.js";
17
+ import { isPerClientSignalHeader } from "../browser/cookie-name.js";
18
18
  import {
19
19
  resolveTtl,
20
20
  resolveSwrWindow,
21
21
  computeExpiration,
22
22
  DEFAULT_FUNCTION_TTL,
23
23
  } from "./cache-policy.js";
24
+ import { reportCacheError } from "./cache-error.js";
24
25
 
25
26
  const CACHE_REGISTRY_KEY = "__rsc_router_segment_cache_registry__";
26
27
  const RESPONSE_CACHE_REGISTRY_KEY = "__rsc_router_response_cache_registry__";
27
28
  const ITEM_CACHE_REGISTRY_KEY = "__rsc_router_item_cache_registry__";
29
+ const TAG_INDEX_REGISTRY_KEY = "__rsc_router_tag_index_registry__";
30
+ const KEY_TAGS_REGISTRY_KEY = "__rsc_router_key_tags_registry__";
28
31
 
29
32
  /**
30
33
  * Get or create a named Map from a globalThis-backed registry.
@@ -56,9 +59,10 @@ interface CachedResponseEntry {
56
59
 
57
60
  interface CachedItemEntry {
58
61
  value: string;
59
- handles?: Record<string, SegmentHandleData>;
62
+ handles?: string;
60
63
  expiresAt: number;
61
64
  staleAt: number;
65
+ tags?: string[];
62
66
  }
63
67
 
64
68
  /**
@@ -73,6 +77,11 @@ export interface MemorySegmentCacheStoreOptions<TEnv = unknown> {
73
77
  * When omitted, the store uses a plain instance-level Map with no
74
78
  * globalThis sharing, which is the safest default for isolation.
75
79
  *
80
+ * Caveat: two instances constructed with the SAME name share all backing maps
81
+ * (data + tag index), but each keeps its OWN `defaults` and `keyGenerator` from
82
+ * its options - those are not shared. Use one instance per name, or keep the
83
+ * options identical, to avoid surprising divergence.
84
+ *
76
85
  * @example
77
86
  * ```typescript
78
87
  * // Two named stores are isolated from each other
@@ -121,6 +130,11 @@ export interface MemorySegmentCacheStoreOptions<TEnv = unknown> {
121
130
  * For production with multiple instances, use a distributed store
122
131
  * like Cloudflare KV or Redis.
123
132
  *
133
+ * Tag-index cleanup is lazy, mirroring the data maps: a tagged entry that
134
+ * expires but is never re-read or invalidated leaves its forward+reverse index
135
+ * entries resident until the key is reused or invalidated. This is bounded by
136
+ * the distinct-tag count and acceptable for a dev/single-instance store.
137
+ *
124
138
  * @example
125
139
  * ```typescript
126
140
  * // Basic usage
@@ -143,6 +157,10 @@ export class MemorySegmentCacheStore<
143
157
  private cache: Map<string, CachedEntryData>;
144
158
  private responseCache: Map<string, CachedResponseEntry>;
145
159
  private itemCache: Map<string, CachedItemEntry>;
160
+ /** tag -> set of prefixed cache keys (seg:key, res:key, item:key) */
161
+ private tagIndex: Map<string, Set<string>>;
162
+ /** prefixed cache key -> set of tags (reverse index for O(tags) unregister) */
163
+ private keyTags: Map<string, Set<string>>;
146
164
  readonly defaults?: CacheDefaults;
147
165
  readonly keyGenerator?: (
148
166
  ctx: RequestContext<TEnv>,
@@ -151,8 +169,6 @@ export class MemorySegmentCacheStore<
151
169
 
152
170
  constructor(options?: MemorySegmentCacheStoreOptions<TEnv>) {
153
171
  if (options?.name != null) {
154
- // Named stores use the globalThis registry so data survives HMR.
155
- // Each name gets its own isolated Map.
156
172
  this.cache = getNamedMap<CachedEntryData>(
157
173
  CACHE_REGISTRY_KEY,
158
174
  options.name,
@@ -165,11 +181,20 @@ export class MemorySegmentCacheStore<
165
181
  ITEM_CACHE_REGISTRY_KEY,
166
182
  options.name,
167
183
  );
184
+ this.tagIndex = getNamedMap<Set<string>>(
185
+ TAG_INDEX_REGISTRY_KEY,
186
+ options.name,
187
+ );
188
+ this.keyTags = getNamedMap<Set<string>>(
189
+ KEY_TAGS_REGISTRY_KEY,
190
+ options.name,
191
+ );
168
192
  } else {
169
- // Unnamed stores get a plain instance-level Map (no globalThis sharing).
170
193
  this.cache = new Map<string, CachedEntryData>();
171
194
  this.responseCache = new Map<string, CachedResponseEntry>();
172
195
  this.itemCache = new Map<string, CachedItemEntry>();
196
+ this.tagIndex = new Map<string, Set<string>>();
197
+ this.keyTags = new Map<string, Set<string>>();
173
198
  }
174
199
  this.defaults = options?.defaults;
175
200
  this.keyGenerator = options?.keyGenerator;
@@ -184,6 +209,7 @@ export class MemorySegmentCacheStore<
184
209
 
185
210
  // Check expiration
186
211
  if (Date.now() > cached.expiresAt) {
212
+ this.unregisterTags(`seg:${key}`);
187
213
  this.cache.delete(key);
188
214
  return null;
189
215
  }
@@ -198,16 +224,20 @@ export class MemorySegmentCacheStore<
198
224
  ttl: number,
199
225
  _swr?: number,
200
226
  ): Promise<void> {
201
- // Note: Memory store doesn't implement SWR - entries just expire at TTL
202
- // For SWR support, use CFCacheStore or similar distributed cache
203
227
  const entry: CachedEntryData = {
204
228
  ...data,
205
229
  expiresAt: Date.now() + ttl * 1000,
206
230
  };
231
+ const prefixedKey = `seg:${key}`;
232
+ this.unregisterTags(prefixedKey);
207
233
  this.cache.set(key, entry);
234
+ if (data.tags && data.tags.length > 0) {
235
+ this.registerTags(data.tags, prefixedKey);
236
+ }
208
237
  }
209
238
 
210
239
  async delete(key: string): Promise<boolean> {
240
+ this.unregisterTags(`seg:${key}`);
211
241
  return this.cache.delete(key);
212
242
  }
213
243
 
@@ -215,6 +245,8 @@ export class MemorySegmentCacheStore<
215
245
  this.cache.clear();
216
246
  this.responseCache.clear();
217
247
  this.itemCache.clear();
248
+ this.tagIndex.clear();
249
+ this.keyTags.clear();
218
250
  }
219
251
 
220
252
  async getResponse(
@@ -224,6 +256,7 @@ export class MemorySegmentCacheStore<
224
256
  if (!cached) return null;
225
257
 
226
258
  if (Date.now() > cached.expiresAt) {
259
+ this.unregisterTags(`res:${key}`);
227
260
  this.responseCache.delete(key);
228
261
  return null;
229
262
  }
@@ -244,23 +277,38 @@ export class MemorySegmentCacheStore<
244
277
  response: Response,
245
278
  ttl: number,
246
279
  swr?: number,
280
+ tags?: string[],
247
281
  ): Promise<void> {
248
- const body = await response.clone().arrayBuffer();
249
- const headers: [string, string][] = [];
250
- response.headers.forEach((value, name) => {
251
- headers.push([name, value]);
252
- });
282
+ try {
283
+ const body = await response.clone().arrayBuffer();
284
+ const headers: [string, string][] = [];
285
+ response.headers.forEach((value, name) => {
286
+ if (isPerClientSignalHeader(name)) return;
287
+ headers.push([name, value]);
288
+ });
253
289
 
254
- const swrWindow = resolveSwrWindow(swr, this.defaults);
255
- const { staleAt, expiresAt } = computeExpiration(ttl, swrWindow);
290
+ const swrWindow = resolveSwrWindow(swr, this.defaults);
291
+ const { staleAt, expiresAt } = computeExpiration(ttl, swrWindow);
256
292
 
257
- this.responseCache.set(key, {
258
- body,
259
- status: response.status,
260
- headers,
261
- expiresAt,
262
- staleAt,
263
- });
293
+ const prefixedKey = `res:${key}`;
294
+ this.unregisterTags(prefixedKey);
295
+ this.responseCache.set(key, {
296
+ body,
297
+ status: response.status,
298
+ headers,
299
+ expiresAt,
300
+ staleAt,
301
+ });
302
+ if (tags && tags.length > 0) {
303
+ this.registerTags(tags, prefixedKey);
304
+ }
305
+ } catch (error) {
306
+ reportCacheError(
307
+ error,
308
+ "cache-write",
309
+ "[MemorySegmentCacheStore] putResponse",
310
+ );
311
+ }
264
312
  }
265
313
 
266
314
  async getItem(key: string): Promise<CacheItemResult | null> {
@@ -269,6 +317,7 @@ export class MemorySegmentCacheStore<
269
317
 
270
318
  const now = Date.now();
271
319
  if (now > cached.expiresAt) {
320
+ this.unregisterTags(`item:${key}`);
272
321
  this.itemCache.delete(key);
273
322
  return null;
274
323
  }
@@ -278,6 +327,7 @@ export class MemorySegmentCacheStore<
278
327
  value: cached.value,
279
328
  handles: cached.handles,
280
329
  shouldRevalidate: isStale,
330
+ tags: cached.tags,
281
331
  };
282
332
  }
283
333
 
@@ -289,18 +339,77 @@ export class MemorySegmentCacheStore<
289
339
  const ttl = resolveTtl(options?.ttl, this.defaults, DEFAULT_FUNCTION_TTL);
290
340
  const swrWindow = resolveSwrWindow(options?.swr, this.defaults);
291
341
  const { staleAt, expiresAt } = computeExpiration(ttl, swrWindow);
342
+ const prefixedKey = `item:${key}`;
343
+ this.unregisterTags(prefixedKey);
292
344
  this.itemCache.set(key, {
293
345
  value,
294
346
  handles: options?.handles,
295
347
  expiresAt,
296
348
  staleAt,
349
+ tags: options?.tags,
297
350
  });
351
+ if (options?.tags && options.tags.length > 0) {
352
+ this.registerTags(options.tags, prefixedKey);
353
+ }
354
+ }
355
+
356
+ async invalidateTags(tags: string[]): Promise<void> {
357
+ for (const tag of tags) {
358
+ const keys = this.tagIndex.get(tag);
359
+ if (!keys || keys.size === 0) continue;
360
+
361
+ const prefixedKeys = [...keys];
362
+
363
+ for (const prefixedKey of prefixedKeys) {
364
+ const colonIdx = prefixedKey.indexOf(":");
365
+ const prefix = prefixedKey.slice(0, colonIdx);
366
+ const rawKey = prefixedKey.slice(colonIdx + 1);
367
+
368
+ if (prefix === "seg") {
369
+ this.cache.delete(rawKey);
370
+ } else if (prefix === "res") {
371
+ this.responseCache.delete(rawKey);
372
+ } else if (prefix === "item") {
373
+ this.itemCache.delete(rawKey);
374
+ }
375
+
376
+ this.unregisterTags(prefixedKey);
377
+ }
378
+ }
379
+ }
380
+
381
+ private registerTags(tags: string[], prefixedKey: string): void {
382
+ let tagSet = this.keyTags.get(prefixedKey);
383
+ if (!tagSet) {
384
+ tagSet = new Set();
385
+ this.keyTags.set(prefixedKey, tagSet);
386
+ }
387
+ for (const tag of tags) {
388
+ tagSet.add(tag);
389
+ let keys = this.tagIndex.get(tag);
390
+ if (!keys) {
391
+ keys = new Set();
392
+ this.tagIndex.set(tag, keys);
393
+ }
394
+ keys.add(prefixedKey);
395
+ }
396
+ }
397
+
398
+ private unregisterTags(prefixedKey: string): void {
399
+ const tagSet = this.keyTags.get(prefixedKey);
400
+ if (!tagSet) return;
401
+ for (const tag of tagSet) {
402
+ const keys = this.tagIndex.get(tag);
403
+ if (keys) {
404
+ keys.delete(prefixedKey);
405
+ if (keys.size === 0) {
406
+ this.tagIndex.delete(tag);
407
+ }
408
+ }
409
+ }
410
+ this.keyTags.delete(prefixedKey);
298
411
  }
299
412
 
300
- /**
301
- * Get cache statistics for debugging purposes.
302
- * @internal
303
- */
304
413
  getStats(): { size: number; keys: string[] } {
305
414
  return {
306
415
  size: this.cache.size,
@@ -308,21 +417,11 @@ export class MemorySegmentCacheStore<
308
417
  };
309
418
  }
310
419
 
311
- /**
312
- * Reset the global cache registry.
313
- * Useful for test isolation - call this in beforeEach to ensure
314
- * tests don't share cache state via globalThis.
315
- *
316
- * @example
317
- * ```typescript
318
- * beforeEach(() => {
319
- * MemorySegmentCacheStore.resetGlobalCache();
320
- * });
321
- * ```
322
- */
323
420
  static resetGlobalCache(): void {
324
421
  delete (globalThis as any)[CACHE_REGISTRY_KEY];
325
422
  delete (globalThis as any)[RESPONSE_CACHE_REGISTRY_KEY];
326
423
  delete (globalThis as any)[ITEM_CACHE_REGISTRY_KEY];
424
+ delete (globalThis as any)[TAG_INDEX_REGISTRY_KEY];
425
+ delete (globalThis as any)[KEY_TAGS_REGISTRY_KEY];
327
426
  }
328
427
  }
@@ -1,9 +1,11 @@
1
1
  /**
2
- * Cache Profile Registry
2
+ * Cache profile resolution.
3
3
  *
4
- * Named cache profiles for "use cache" directive.
5
- * Profiles define TTL, SWR, and optional default tags.
6
- * Set by createRouter() at startup, read by registerCachedFunction() at runtime.
4
+ * Named cache profiles for the "use cache" directive define TTL, SWR, and
5
+ * optional default tags. createRouter() resolves the user's profiles once via
6
+ * resolveCacheProfiles() and threads the resulting map onto each request
7
+ * context; the "use cache: <profile>" runtime path reads it from there
8
+ * (request-scoped) — there is no global registry.
7
9
  */
8
10
 
9
11
  export interface CacheProfile {
@@ -17,10 +19,6 @@ export interface CacheProfile {
17
19
 
18
20
  const DEFAULT_PROFILE: CacheProfile = { ttl: 900, swr: 1800 };
19
21
 
20
- let _profiles: Record<string, CacheProfile> = {
21
- default: DEFAULT_PROFILE,
22
- };
23
-
24
22
  const PROFILE_NAME_RE = /^[a-zA-Z0-9_-]+$/;
25
23
 
26
24
  /**
@@ -44,30 +42,32 @@ export function resolveCacheProfiles(
44
42
  `Profile names must match [a-zA-Z0-9_-]+.`,
45
43
  );
46
44
  }
47
- merged[name] = profiles[name];
45
+ const profile = profiles[name];
46
+ // Validate ttl/swr VALUES, not just the name. An unvalidated NaN/Infinity
47
+ // ttl flows into computeExpiration -> staleAt/expiresAt = NaN, and every
48
+ // expiry check (`now > NaN`) is false, so the entry never evicts and never
49
+ // revalidates: it is served fresh forever and accumulates unbounded. A
50
+ // negative ttl makes every read a guaranteed miss. This guard's policy is
51
+ // to FAIL FAST at config time on any non-finite/negative ttl — distinct
52
+ // from prefetch-cache-ttl.ts (falls back to the default) and defer.ts
53
+ // (treats Infinity as an intentional disable). Do not conflate them.
54
+ if (!Number.isFinite(profile.ttl) || profile.ttl < 0) {
55
+ throw new Error(
56
+ `Invalid cache profile "${name}": ttl must be a finite non-negative ` +
57
+ `number (got ${profile.ttl}).`,
58
+ );
59
+ }
60
+ if (
61
+ profile.swr !== undefined &&
62
+ (!Number.isFinite(profile.swr) || profile.swr < 0)
63
+ ) {
64
+ throw new Error(
65
+ `Invalid cache profile "${name}": swr must be a finite non-negative ` +
66
+ `number (got ${profile.swr}).`,
67
+ );
68
+ }
69
+ merged[name] = profile;
48
70
  }
49
71
  }
50
72
  return merged;
51
73
  }
52
-
53
- /**
54
- * Set all cache profiles in the global registry.
55
- * Called by createRouter() at startup for DSL-time resolution
56
- * (cache("profileName") reads from this during route definition).
57
- *
58
- * WARNING: This is global mutable state. It exists only for DSL-time
59
- * reads. Runtime resolution (registerCachedFunction) uses request-scoped
60
- * profiles and does NOT read from this registry.
61
- */
62
- export function setCacheProfiles(profiles: Record<string, CacheProfile>): void {
63
- _profiles = resolveCacheProfiles(profiles);
64
- }
65
-
66
- /**
67
- * Get a cache profile by name from the global registry.
68
- * Used only at DSL-time (cache("profileName") inside urls() evaluation).
69
- * Runtime code uses request-scoped profiles instead.
70
- */
71
- export function getCacheProfile(name: string): CacheProfile | undefined {
72
- return _profiles[name];
73
- }