@farm.js/core 0.1.0-beta.96 → 0.1.0-beta.97

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 (311) hide show
  1. package/dist/after.cjs +1 -1
  2. package/dist/after.mjs +1 -1
  3. package/dist/agent-runtime.d.mts +3 -2
  4. package/dist/agent-runtime.d.ts +3 -2
  5. package/dist/api/route-manager.cjs +43 -4
  6. package/dist/api/route-manager.d.mts +4 -3
  7. package/dist/api/route-manager.d.ts +4 -3
  8. package/dist/api/route-manager.mjs +6 -6
  9. package/dist/api/runtime.cjs +43 -4
  10. package/dist/api/runtime.d.mts +1 -1
  11. package/dist/api/runtime.d.ts +1 -1
  12. package/dist/api/runtime.mjs +4 -4
  13. package/dist/api.cjs +239 -70
  14. package/dist/api.d.mts +7 -6
  15. package/dist/api.d.ts +7 -6
  16. package/dist/api.mjs +17 -11
  17. package/dist/{app-CIIEvA4r.d.ts → app-CIOx3LvY.d.ts} +4 -4
  18. package/dist/{app-O4AEC1OH.d.mts → app-DBd6437H.d.mts} +4 -4
  19. package/dist/app-markdown.d.mts +4 -3
  20. package/dist/app-markdown.d.ts +4 -3
  21. package/dist/cache.cjs +42 -4
  22. package/dist/cache.d.mts +68 -1
  23. package/dist/cache.d.ts +68 -1
  24. package/dist/cache.mjs +3 -3
  25. package/dist/{chunk-AXVJCMVF.mjs → chunk-2HDOV47R.mjs} +3 -3
  26. package/dist/chunk-2HDOV47R.mjs.map +1 -0
  27. package/dist/{chunk-RBRLLZL5.mjs → chunk-34IAPZBG.mjs} +16 -3
  28. package/dist/chunk-34IAPZBG.mjs.map +1 -0
  29. package/dist/{chunk-VV24CC42.mjs → chunk-35NPLKQJ.mjs} +2 -2
  30. package/dist/{chunk-MM46HTX6.mjs → chunk-3TWQERDE.mjs} +4 -3
  31. package/dist/chunk-3TWQERDE.mjs.map +1 -0
  32. package/dist/{chunk-RWYRFCLG.mjs → chunk-4X57GXQA.mjs} +2 -2
  33. package/dist/{chunk-3I55IGXU.mjs → chunk-52BR7LTX.mjs} +14 -15
  34. package/dist/chunk-52BR7LTX.mjs.map +1 -0
  35. package/dist/{chunk-RAGSHKDC.mjs → chunk-6EJHNHH4.mjs} +38 -3
  36. package/dist/chunk-6EJHNHH4.mjs.map +1 -0
  37. package/dist/{chunk-ZFNK77WN.mjs → chunk-6JNGOC37.mjs} +2 -2
  38. package/dist/{after.cjs.map → chunk-6JNGOC37.mjs.map} +1 -1
  39. package/dist/{chunk-MOW47IF5.mjs → chunk-6UYVU46O.mjs} +2 -2
  40. package/dist/{chunk-7MABZJIM.mjs → chunk-7PYVLJ4J.mjs} +1 -1
  41. package/dist/chunk-7PYVLJ4J.mjs.map +1 -0
  42. package/dist/{chunk-54XSGLKT.mjs → chunk-D7F7YZ7L.mjs} +93 -67
  43. package/dist/chunk-D7F7YZ7L.mjs.map +1 -0
  44. package/dist/{chunk-SCFX4UTD.mjs → chunk-EHTUKVSW.mjs} +1 -1
  45. package/dist/chunk-EHTUKVSW.mjs.map +1 -0
  46. package/dist/{chunk-LZTGDH3H.mjs → chunk-EPDIF432.mjs} +424 -10
  47. package/dist/chunk-EPDIF432.mjs.map +1 -0
  48. package/dist/{chunk-GZHKWHCH.mjs → chunk-FP5Q67FO.mjs} +167 -96
  49. package/dist/chunk-FP5Q67FO.mjs.map +1 -0
  50. package/dist/{chunk-HHZAOTQD.mjs → chunk-GJ7W6LNK.mjs} +7 -6
  51. package/dist/chunk-GJ7W6LNK.mjs.map +1 -0
  52. package/dist/{chunk-RLGUZ3HS.mjs → chunk-I3OOUWO5.mjs} +3 -3
  53. package/dist/{chunk-LKKMI7JG.mjs → chunk-IZBX2TEU.mjs} +153 -68
  54. package/dist/chunk-IZBX2TEU.mjs.map +1 -0
  55. package/dist/{chunk-74QPONAN.mjs → chunk-J3MPQ4MQ.mjs} +2 -2
  56. package/dist/{chunk-74QPONAN.mjs.map → chunk-J3MPQ4MQ.mjs.map} +1 -1
  57. package/dist/{chunk-ODJGAWDH.mjs → chunk-JV7JUD7Q.mjs} +4 -4
  58. package/dist/{chunk-Q3OX763A.mjs → chunk-LXDASSTE.mjs} +2 -2
  59. package/dist/{chunk-ZRBCBOEX.mjs → chunk-N2FY2QZ7.mjs} +28 -3
  60. package/dist/chunk-N2FY2QZ7.mjs.map +1 -0
  61. package/dist/{chunk-MRVJCLYQ.mjs → chunk-PSQ7N4XP.mjs} +4 -2
  62. package/dist/chunk-PSQ7N4XP.mjs.map +1 -0
  63. package/dist/{chunk-HVG3HLQZ.mjs → chunk-Q7WGOOAI.mjs} +3 -3
  64. package/dist/{chunk-WTYAPO5I.mjs → chunk-RCNWMEBT.mjs} +3 -2
  65. package/dist/{chunk-WTYAPO5I.mjs.map → chunk-RCNWMEBT.mjs.map} +1 -1
  66. package/dist/{chunk-3INDBMUU.mjs → chunk-TGDIACZT.mjs} +2 -2
  67. package/dist/{chunk-WB75GIX2.mjs → chunk-TQTB33JS.mjs} +14 -3
  68. package/dist/chunk-TQTB33JS.mjs.map +1 -0
  69. package/dist/{chunk-WMAYETRD.mjs → chunk-TT3E2JOF.mjs} +3 -3
  70. package/dist/{chunk-FVAM43KI.mjs → chunk-UMUWR5XA.mjs} +2 -2
  71. package/dist/{chunk-VOUJW4FL.mjs → chunk-WD2EBM3I.mjs} +70 -15
  72. package/dist/chunk-WD2EBM3I.mjs.map +1 -0
  73. package/dist/{chunk-ZPG6SNHH.mjs → chunk-WMJGA32P.mjs} +47 -5
  74. package/dist/chunk-WMJGA32P.mjs.map +1 -0
  75. package/dist/{chunk-TKQCJMY7.mjs → chunk-X4SFHKFH.mjs} +7 -4
  76. package/dist/{chunk-TKQCJMY7.mjs.map → chunk-X4SFHKFH.mjs.map} +1 -1
  77. package/dist/{chunk-Q7GPJZCO.mjs → chunk-YIBV77KZ.mjs} +26 -7
  78. package/dist/chunk-YIBV77KZ.mjs.map +1 -0
  79. package/dist/client/lifecycle.mjs +2 -2
  80. package/dist/{client-mcMC334J.d.mts → client-DWoLZ3QU.d.mts} +52 -5
  81. package/dist/{client-d5ONQ-Pd.d.ts → client-DuQuQC1h.d.ts} +52 -5
  82. package/dist/client-cache-BMxuFqwH.d.ts +18 -0
  83. package/dist/client-cache-CCK-fCe0.d.mts +18 -0
  84. package/dist/{client-plugins-BvClItiL.d.mts → client-plugins-B6-07YmP.d.mts} +52 -99
  85. package/dist/{client-plugins-B9Sq-iMg.d.ts → client-plugins-By6MVUX-.d.ts} +52 -99
  86. package/dist/client-plugins.cjs +1 -1
  87. package/dist/client-plugins.d.mts +3 -2
  88. package/dist/client-plugins.d.ts +3 -2
  89. package/dist/client-plugins.mjs +2 -2
  90. package/dist/client.cjs +757 -104
  91. package/dist/client.d.mts +124 -16
  92. package/dist/client.d.ts +124 -16
  93. package/dist/client.mjs +28 -14
  94. package/dist/config.d.mts +3 -2
  95. package/dist/config.d.ts +3 -2
  96. package/dist/{devtools-S52RRRMN.mjs → devtools-XWZX6CCL.mjs} +5 -5
  97. package/dist/{devtools-client-EOVDBPOI.mjs → devtools-client-Z7QQA3Q2.mjs} +2 -2
  98. package/dist/{devtools-ui-NJKFORTG.mjs → devtools-ui-2HG5M4EL.mjs} +3 -1
  99. package/dist/devtools-ui-2HG5M4EL.mjs.map +1 -0
  100. package/dist/docs.cjs +24 -5
  101. package/dist/docs.mjs +5 -5
  102. package/dist/i18n/server.cjs +13 -2
  103. package/dist/i18n/server.d.mts +2 -2
  104. package/dist/i18n/server.d.ts +2 -2
  105. package/dist/i18n/server.mjs +1 -1
  106. package/dist/index.cjs +1578 -772
  107. package/dist/index.d.mts +28 -20
  108. package/dist/index.d.ts +28 -20
  109. package/dist/index.mjs +53 -33
  110. package/dist/index.mjs.map +1 -1
  111. package/dist/integration-api-BT024nuJ.d.mts +97 -0
  112. package/dist/integration-api-BT024nuJ.d.ts +97 -0
  113. package/dist/integrations.d.mts +3 -2
  114. package/dist/integrations.d.ts +3 -2
  115. package/dist/internal/build-runtime.cjs +710 -532
  116. package/dist/internal/build-runtime.d.mts +5 -4
  117. package/dist/internal/build-runtime.d.ts +5 -4
  118. package/dist/internal/build-runtime.mjs +15 -15
  119. package/dist/internal/client-runtime.cjs +1 -1
  120. package/dist/internal/client-runtime.mjs +2 -2
  121. package/dist/internal/config-runtime.cjs +4 -1
  122. package/dist/internal/config-runtime.d.mts +4 -3
  123. package/dist/internal/config-runtime.d.ts +4 -3
  124. package/dist/internal/config-runtime.mjs +4 -4
  125. package/dist/internal/product-telemetry-runtime.cjs +1 -1
  126. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  127. package/dist/internal/production-runtime.cjs +29 -3
  128. package/dist/internal/production-runtime.d.mts +8 -7
  129. package/dist/internal/production-runtime.d.ts +8 -7
  130. package/dist/internal/production-runtime.mjs +5 -5
  131. package/dist/{metadata-route-yV4U6X8h.d.ts → metadata-route-8_V3UonT.d.ts} +1 -1
  132. package/dist/{metadata-route-p4K1l92V.d.mts → metadata-route-CWP_HjGU.d.mts} +1 -1
  133. package/dist/middleware.cjs +28 -2
  134. package/dist/middleware.d.mts +5 -4
  135. package/dist/middleware.d.ts +5 -4
  136. package/dist/middleware.mjs +4 -4
  137. package/dist/navigation.cjs +3 -1
  138. package/dist/navigation.mjs +3 -3
  139. package/dist/observability.cjs +27 -2
  140. package/dist/observability.mjs +1 -1
  141. package/dist/plugin.cjs +474 -334
  142. package/dist/plugin.d.mts +3 -2
  143. package/dist/plugin.d.ts +3 -2
  144. package/dist/plugin.mjs +12 -12
  145. package/dist/{production-runtime-IkB0Qj4i.d.mts → production-runtime-BGRH1dKG.d.mts} +1 -1
  146. package/dist/{production-runtime-0JTch4_d.d.ts → production-runtime-CdmzsDax.d.ts} +1 -1
  147. package/dist/query/client.cjs +11 -3
  148. package/dist/query/client.mjs +12 -4
  149. package/dist/query/client.mjs.map +1 -1
  150. package/dist/{render-plan-Dc8CjNI7.d.ts → render-plan-0GeHiGVZ.d.ts} +1 -1
  151. package/dist/{render-plan-CU31j-Jk.d.mts → render-plan-DLxJYAA5.d.mts} +1 -1
  152. package/dist/renderer-client.cjs +140 -26
  153. package/dist/renderer-client.d.mts +7 -6
  154. package/dist/renderer-client.d.ts +7 -6
  155. package/dist/renderer-client.mjs +16 -19
  156. package/dist/renderer-client.mjs.map +1 -1
  157. package/dist/{request-BXa1KY8i.d.mts → request-BCNXSXLh.d.mts} +1 -1
  158. package/dist/{request-CUUBujZt.d.ts → request-BstWbZ6O.d.ts} +1 -1
  159. package/dist/request.d.mts +4 -3
  160. package/dist/request.d.ts +4 -3
  161. package/dist/{route-Y8lfz1wF.d.ts → route-4pd-EVtw.d.ts} +45 -50
  162. package/dist/{route-Cq3aObmj.d.mts → route-CvEr4Uc9.d.mts} +45 -50
  163. package/dist/routes.cjs +27 -2
  164. package/dist/routes.d.mts +3 -2
  165. package/dist/routes.d.ts +3 -2
  166. package/dist/routes.mjs +4 -4
  167. package/dist/{runtime-j1S3sDTh.d.ts → runtime-BgDQzBiu.d.ts} +1 -0
  168. package/dist/{runtime-DDwvDtS4.d.mts → runtime-CV2UCV-5.d.mts} +1 -0
  169. package/dist/server-action-security.mjs +2 -2
  170. package/dist/server-fn-client.cjs +34 -2
  171. package/dist/server-fn-client.d.mts +6 -0
  172. package/dist/server-fn-client.d.ts +6 -0
  173. package/dist/server-fn-client.mjs +1 -1
  174. package/dist/server-fn.cjs +42 -4
  175. package/dist/server-fn.mjs +5 -5
  176. package/dist/server-plugins.d.mts +4 -3
  177. package/dist/server-plugins.d.ts +4 -3
  178. package/dist/server-query-client.cjs +146 -27
  179. package/dist/server-query-client.d.mts +3 -3
  180. package/dist/server-query-client.d.ts +3 -3
  181. package/dist/server-query-client.mjs +7 -7
  182. package/dist/{server-query-runtime-3zAj77yv.d.ts → server-query-runtime-DXRNhX_3.d.ts} +2 -0
  183. package/dist/{server-query-runtime-B50KAcj5.d.mts → server-query-runtime-aP52iuL5.d.mts} +2 -0
  184. package/dist/server-query.cjs +44 -5
  185. package/dist/server-query.d.mts +4 -0
  186. package/dist/server-query.d.ts +4 -0
  187. package/dist/server-query.mjs +7 -7
  188. package/dist/server.cjs +499 -355
  189. package/dist/server.d.mts +11 -10
  190. package/dist/server.d.ts +11 -10
  191. package/dist/server.mjs +16 -16
  192. package/dist/{spa-router-CyLkwst6.d.mts → spa-router-BeyAVSc6.d.mts} +1 -1
  193. package/dist/{spa-router-BkqGXaV_.d.ts → spa-router-COgu4txb.d.ts} +1 -1
  194. package/dist/testing.cjs +27 -2
  195. package/dist/testing.d.mts +3 -2
  196. package/dist/testing.d.ts +3 -2
  197. package/dist/testing.mjs +8 -8
  198. package/dist/{utils-NKR6SoNv.d.mts → utils-DL2VwDQl.d.mts} +1 -1
  199. package/dist/{utils-B2OHrb9F.d.ts → utils-DkU2c_1B.d.ts} +1 -1
  200. package/dist/version.cjs +1 -1
  201. package/dist/version.mjs +1 -1
  202. package/dist/vite.cjs +482 -338
  203. package/dist/vite.d.mts +3 -2
  204. package/dist/vite.d.ts +3 -2
  205. package/dist/vite.mjs +16 -12
  206. package/package.json +17 -17
  207. package/types/client.d.ts +87 -1
  208. package/dist/agent-runtime.cjs.map +0 -1
  209. package/dist/api/route-manager.cjs.map +0 -1
  210. package/dist/api/runtime.cjs.map +0 -1
  211. package/dist/api.cjs.map +0 -1
  212. package/dist/app-markdown.cjs.map +0 -1
  213. package/dist/cache.cjs.map +0 -1
  214. package/dist/chunk-3I55IGXU.mjs.map +0 -1
  215. package/dist/chunk-54XSGLKT.mjs.map +0 -1
  216. package/dist/chunk-7MABZJIM.mjs.map +0 -1
  217. package/dist/chunk-AXVJCMVF.mjs.map +0 -1
  218. package/dist/chunk-GZHKWHCH.mjs.map +0 -1
  219. package/dist/chunk-HHZAOTQD.mjs.map +0 -1
  220. package/dist/chunk-LKKMI7JG.mjs.map +0 -1
  221. package/dist/chunk-LZTGDH3H.mjs.map +0 -1
  222. package/dist/chunk-MM46HTX6.mjs.map +0 -1
  223. package/dist/chunk-MRVJCLYQ.mjs.map +0 -1
  224. package/dist/chunk-Q7GPJZCO.mjs.map +0 -1
  225. package/dist/chunk-RAGSHKDC.mjs.map +0 -1
  226. package/dist/chunk-RBRLLZL5.mjs.map +0 -1
  227. package/dist/chunk-SCFX4UTD.mjs.map +0 -1
  228. package/dist/chunk-VOUJW4FL.mjs.map +0 -1
  229. package/dist/chunk-WB75GIX2.mjs.map +0 -1
  230. package/dist/chunk-ZFNK77WN.mjs.map +0 -1
  231. package/dist/chunk-ZPG6SNHH.mjs.map +0 -1
  232. package/dist/chunk-ZRBCBOEX.mjs.map +0 -1
  233. package/dist/client/lifecycle.cjs.map +0 -1
  234. package/dist/client-cache-CopR_MaI.d.mts +0 -6
  235. package/dist/client-cache-Djy_TlE8.d.ts +0 -6
  236. package/dist/client-plugins.cjs.map +0 -1
  237. package/dist/client.cjs.map +0 -1
  238. package/dist/config.cjs.map +0 -1
  239. package/dist/cron.cjs.map +0 -1
  240. package/dist/deferred.cjs.map +0 -1
  241. package/dist/deployment.cjs.map +0 -1
  242. package/dist/devtools-ui-NJKFORTG.mjs.map +0 -1
  243. package/dist/docs.cjs.map +0 -1
  244. package/dist/env-types.cjs.map +0 -1
  245. package/dist/env.cjs.map +0 -1
  246. package/dist/environment/vite.cjs.map +0 -1
  247. package/dist/environment.cjs.map +0 -1
  248. package/dist/font.cjs.map +0 -1
  249. package/dist/headers.cjs.map +0 -1
  250. package/dist/i18n/client.cjs.map +0 -1
  251. package/dist/i18n/index.cjs.map +0 -1
  252. package/dist/i18n/server.cjs.map +0 -1
  253. package/dist/image/server.cjs.map +0 -1
  254. package/dist/image/sharp.cjs.map +0 -1
  255. package/dist/image.cjs.map +0 -1
  256. package/dist/index.cjs.map +0 -1
  257. package/dist/instrumentation.cjs.map +0 -1
  258. package/dist/integrations.cjs.map +0 -1
  259. package/dist/internal/build-runtime.cjs.map +0 -1
  260. package/dist/internal/client-runtime.cjs.map +0 -1
  261. package/dist/internal/config-runtime.cjs.map +0 -1
  262. package/dist/internal/isolated-boundary.cjs.map +0 -1
  263. package/dist/internal/metadata-image-runtime.cjs.map +0 -1
  264. package/dist/internal/product-telemetry-runtime.cjs.map +0 -1
  265. package/dist/internal/production-node-env.cjs.map +0 -1
  266. package/dist/internal/production-runtime.cjs.map +0 -1
  267. package/dist/markdown.cjs.map +0 -1
  268. package/dist/middleware.cjs.map +0 -1
  269. package/dist/navigation.cjs.map +0 -1
  270. package/dist/observability.cjs.map +0 -1
  271. package/dist/plugin.cjs.map +0 -1
  272. package/dist/query/client.cjs.map +0 -1
  273. package/dist/query/index.cjs.map +0 -1
  274. package/dist/query/parsers.cjs.map +0 -1
  275. package/dist/query/server.cjs.map +0 -1
  276. package/dist/renderer/react/client.cjs.map +0 -1
  277. package/dist/renderer/react/server.cjs.map +0 -1
  278. package/dist/renderer/react/vite.cjs.map +0 -1
  279. package/dist/renderer-client.cjs.map +0 -1
  280. package/dist/renderer.cjs.map +0 -1
  281. package/dist/request.cjs.map +0 -1
  282. package/dist/router.cjs.map +0 -1
  283. package/dist/routes.cjs.map +0 -1
  284. package/dist/server-action-security.cjs.map +0 -1
  285. package/dist/server-fn-client.cjs.map +0 -1
  286. package/dist/server-fn.cjs.map +0 -1
  287. package/dist/server-plugins.cjs.map +0 -1
  288. package/dist/server-query-client.cjs.map +0 -1
  289. package/dist/server-query.cjs.map +0 -1
  290. package/dist/server.cjs.map +0 -1
  291. package/dist/storage.cjs.map +0 -1
  292. package/dist/testing.cjs.map +0 -1
  293. package/dist/theme/client.cjs.map +0 -1
  294. package/dist/theme/index.cjs.map +0 -1
  295. package/dist/theme/runtime.cjs.map +0 -1
  296. package/dist/theme/server.cjs.map +0 -1
  297. package/dist/version.cjs.map +0 -1
  298. package/dist/vite.cjs.map +0 -1
  299. package/dist/workflows.cjs.map +0 -1
  300. /package/dist/{chunk-VV24CC42.mjs.map → chunk-35NPLKQJ.mjs.map} +0 -0
  301. /package/dist/{chunk-RWYRFCLG.mjs.map → chunk-4X57GXQA.mjs.map} +0 -0
  302. /package/dist/{chunk-MOW47IF5.mjs.map → chunk-6UYVU46O.mjs.map} +0 -0
  303. /package/dist/{chunk-RLGUZ3HS.mjs.map → chunk-I3OOUWO5.mjs.map} +0 -0
  304. /package/dist/{chunk-ODJGAWDH.mjs.map → chunk-JV7JUD7Q.mjs.map} +0 -0
  305. /package/dist/{chunk-Q3OX763A.mjs.map → chunk-LXDASSTE.mjs.map} +0 -0
  306. /package/dist/{chunk-HVG3HLQZ.mjs.map → chunk-Q7WGOOAI.mjs.map} +0 -0
  307. /package/dist/{chunk-3INDBMUU.mjs.map → chunk-TGDIACZT.mjs.map} +0 -0
  308. /package/dist/{chunk-WMAYETRD.mjs.map → chunk-TT3E2JOF.mjs.map} +0 -0
  309. /package/dist/{chunk-FVAM43KI.mjs.map → chunk-UMUWR5XA.mjs.map} +0 -0
  310. /package/dist/{devtools-S52RRRMN.mjs.map → devtools-XWZX6CCL.mjs.map} +0 -0
  311. /package/dist/{devtools-client-EOVDBPOI.mjs.map → devtools-client-Z7QQA3Q2.mjs.map} +0 -0
@@ -25,4 +25,4 @@ export {
25
25
  createFarmServerQueryResult,
26
26
  isFarmServerQueryResult
27
27
  };
28
- //# sourceMappingURL=chunk-SCFX4UTD.mjs.map
28
+ //# sourceMappingURL=chunk-EHTUKVSW.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server-query-protocol.ts"],"sourcesContent":["export const FARM_SERVER_QUERY_RESULT_VERSION = 1 as const;\n\nexport type FarmServerQueryResult<TData> = {\n __farmServerQuery: {\n version: typeof FARM_SERVER_QUERY_RESULT_VERSION;\n key: string;\n staleTime: number | false;\n updatedAt: number;\n /** Declared by the query; allows the client persistence adapter to store the entry. */\n persist?: boolean;\n };\n data: TData;\n};\n\nexport function createFarmServerQueryResult<TData>(\n data: TData,\n metadata: Omit<FarmServerQueryResult<TData>[\"__farmServerQuery\"], \"version\">,\n): FarmServerQueryResult<TData> {\n return {\n __farmServerQuery: {\n version: FARM_SERVER_QUERY_RESULT_VERSION,\n ...metadata,\n },\n data,\n };\n}\n\nexport function isFarmServerQueryResult(value: unknown): value is FarmServerQueryResult<unknown> {\n if (!value || typeof value !== \"object\") return false;\n\n const metadata = (value as Partial<FarmServerQueryResult<unknown>>).__farmServerQuery;\n return (\n metadata?.version === FARM_SERVER_QUERY_RESULT_VERSION &&\n typeof metadata.key === \"string\" &&\n (metadata.staleTime === false || typeof metadata.staleTime === \"number\") &&\n typeof metadata.updatedAt === \"number\" &&\n \"data\" in value\n );\n}\n"],"mappings":";;;;;AAAO,IAAM,mCAAmC;AAczC,SAAS,4BACd,MACA,UAC8B;AAC9B,SAAO;AAAA,IACL,mBAAmB;AAAA,MACjB,SAAS;AAAA,MACT,GAAG;AAAA,IACL;AAAA,IACA;AAAA,EACF;AACF;AAXgB;AAaT,SAAS,wBAAwB,OAAyD;AAC/F,MAAI,CAAC,SAAS,OAAO,UAAU,SAAU,QAAO;AAEhD,QAAM,WAAY,MAAkD;AACpE,SACE,UAAU,YAAY,oCACtB,OAAO,SAAS,QAAQ,aACvB,SAAS,cAAc,SAAS,OAAO,SAAS,cAAc,aAC/D,OAAO,SAAS,cAAc,YAC9B,UAAU;AAEd;AAXgB;","names":[]}
@@ -1,7 +1,13 @@
1
1
  import {
2
+ invokeMutationWithRetry
3
+ } from "./chunk-6EJHNHH4.mjs";
4
+ import {
5
+ applyServerFnOptimisticUpdates,
2
6
  getAPIRouteRefMetadata,
3
- isAPIRouteRef
4
- } from "./chunk-LKKMI7JG.mjs";
7
+ isAPIRouteRef,
8
+ resolveServerFnInvalidateTargets,
9
+ settleServerFnOptimisticUpdates
10
+ } from "./chunk-IZBX2TEU.mjs";
5
11
  import {
6
12
  notifyClientObserver
7
13
  } from "./chunk-DU3PKDVQ.mjs";
@@ -12,9 +18,18 @@ import {
12
18
  isFarmLocaleChangeHref,
13
19
  localizeActiveFarmHref
14
20
  } from "./chunk-ULD4ENAH.mjs";
21
+ import {
22
+ getFarmClientDataCache
23
+ } from "./chunk-WMJGA32P.mjs";
15
24
  import {
16
25
  getFarmTrailingSlashPreference
17
26
  } from "./chunk-RCNUKRBF.mjs";
27
+ import {
28
+ decodeFarmCacheInvalidations,
29
+ encodeFarmCacheInvalidations,
30
+ notifyFarmCacheInvalidation,
31
+ subscribeFarmCacheInvalidation
32
+ } from "./chunk-34IAPZBG.mjs";
18
33
  import {
19
34
  applyFarmBasePath,
20
35
  getFarmBasePath,
@@ -26,6 +41,22 @@ import {
26
41
 
27
42
  // src/mutation-client.ts
28
43
  import { useCallback, useMemo, useRef, useState } from "react";
44
+
45
+ // src/client-network-status.ts
46
+ function isNavigatorOnline() {
47
+ if (typeof navigator === "undefined" || typeof navigator.onLine !== "boolean") return true;
48
+ return navigator.onLine;
49
+ }
50
+ __name(isNavigatorOnline, "isNavigatorOnline");
51
+ function subscribeOnline(listener) {
52
+ if (typeof window === "undefined") return () => {
53
+ };
54
+ window.addEventListener("online", listener);
55
+ return () => window.removeEventListener("online", listener);
56
+ }
57
+ __name(subscribeOnline, "subscribeOnline");
58
+
59
+ // src/mutation-client.ts
29
60
  function useMutation(target, options = {}) {
30
61
  return useMutationLifecycle(target, options).mutation;
31
62
  }
@@ -38,12 +69,14 @@ function useMutationLifecycle(target, options = {}) {
38
69
  const lastResetIdRef = useRef(0);
39
70
  const initialState = {
40
71
  pendingCount: 0,
72
+ pausedCount: 0,
41
73
  status: "idle",
42
74
  data: initialData,
43
75
  error: null,
44
76
  variables: void 0
45
77
  };
46
78
  const stateRef = useRef(initialState);
79
+ const resetWakersRef = useRef(/* @__PURE__ */ new Set());
47
80
  const [state, setState] = useState(initialState);
48
81
  optionsRef.current = options;
49
82
  targetRef.current = target;
@@ -55,6 +88,31 @@ function useMutationLifecycle(target, options = {}) {
55
88
  },
56
89
  []
57
90
  );
91
+ const waitForReconnect = useCallback(
92
+ async (requestId) => {
93
+ while (!isNavigatorOnline()) {
94
+ if (requestId < lastResetIdRef.current) return;
95
+ setMutationState((current) => ({ ...current, pausedCount: current.pausedCount + 1 }));
96
+ try {
97
+ await new Promise((resolve) => {
98
+ const wake = /* @__PURE__ */ __name(() => {
99
+ unsubscribe();
100
+ resetWakersRef.current.delete(wake);
101
+ resolve();
102
+ }, "wake");
103
+ const unsubscribe = subscribeOnline(wake);
104
+ resetWakersRef.current.add(wake);
105
+ });
106
+ } finally {
107
+ setMutationState((current) => ({
108
+ ...current,
109
+ pausedCount: Math.max(0, current.pausedCount - 1)
110
+ }));
111
+ }
112
+ }
113
+ },
114
+ [setMutationState]
115
+ );
58
116
  const mutatePreparedAsync = useCallback(
59
117
  async (prepare) => {
60
118
  const requestId = ++requestIdRef.current;
@@ -77,17 +135,49 @@ function useMutationLifecycle(target, options = {}) {
77
135
  if (requestId !== requestIdRef.current) return { ...current, pendingCount };
78
136
  return {
79
137
  pendingCount,
138
+ pausedCount: current.pausedCount,
80
139
  status: "pending",
81
140
  data: hasOptimisticData ? optimisticData : currentOptions.resetOnMutate === false ? current.data : null,
82
141
  error: null,
83
142
  variables
84
143
  };
85
144
  });
145
+ const mutationTarget = targetRef.current;
146
+ const isAPITarget = isAPIRouteRef(mutationTarget);
147
+ const sharedOptimistic = !preparationFailed && !isAPITarget ? currentOptions.request?.optimistic : void 0;
148
+ const sharedSnapshots = sharedOptimistic?.update?.length ? applyServerFnOptimisticUpdates(sharedOptimistic.update) : [];
86
149
  try {
87
150
  if (preparationFailed) throw preparationError;
88
- const mutationTarget = targetRef.current;
89
- const rawResult = isAPIRouteRef(mutationTarget) ? await mutationTarget(variables, currentOptions.request) : await mutationTarget(variables);
90
- const data = unwrapMutationResult(rawResult, isAPIRouteRef(mutationTarget));
151
+ let data;
152
+ while (true) {
153
+ if (currentOptions.networkMode === "online") {
154
+ await waitForReconnect(requestId);
155
+ if (requestId < lastResetIdRef.current) {
156
+ throw new Error("Mutation reset while waiting for reconnection");
157
+ }
158
+ }
159
+ try {
160
+ const rawResult = isAPITarget ? await mutationTarget(variables, currentOptions.request) : await invokeMutationWithRetry(
161
+ () => targetRef.current(variables),
162
+ currentOptions.request?.retry,
163
+ // A reset disowns this submission; stop scheduling retries then.
164
+ () => requestId >= lastResetIdRef.current
165
+ );
166
+ data = unwrapMutationResult(rawResult, isAPITarget);
167
+ break;
168
+ } catch (cause) {
169
+ if (currentOptions.networkMode === "online" && !isNavigatorOnline() && requestId >= lastResetIdRef.current) {
170
+ continue;
171
+ }
172
+ throw cause;
173
+ }
174
+ }
175
+ settleServerFnOptimisticUpdates(sharedSnapshots, "commit");
176
+ if (!isAPITarget && currentOptions.request?.invalidate) {
177
+ for (const key of resolveServerFnInvalidateTargets(currentOptions.request.invalidate)) {
178
+ notifyFarmCacheInvalidation(key);
179
+ }
180
+ }
91
181
  const isLatestRequest = requestId === requestIdRef.current;
92
182
  setMutationState((current) => {
93
183
  if (requestId < lastResetIdRef.current) return current;
@@ -100,6 +190,7 @@ function useMutationLifecycle(target, options = {}) {
100
190
  }
101
191
  return {
102
192
  pendingCount,
193
+ pausedCount: current.pausedCount,
103
194
  status: "success",
104
195
  data,
105
196
  error: null,
@@ -118,6 +209,10 @@ function useMutationLifecycle(target, options = {}) {
118
209
  }
119
210
  return data;
120
211
  } catch (cause) {
212
+ settleServerFnOptimisticUpdates(
213
+ sharedSnapshots,
214
+ sharedOptimistic?.rollbackOnError ? "rollback" : "invalidate"
215
+ );
121
216
  const error = normalizeMutationError(cause);
122
217
  const isLatestRequest = requestId === requestIdRef.current;
123
218
  setMutationState((current) => {
@@ -131,6 +226,7 @@ function useMutationLifecycle(target, options = {}) {
131
226
  }
132
227
  return {
133
228
  pendingCount,
229
+ pausedCount: current.pausedCount,
134
230
  status: "error",
135
231
  data: hasOptimisticData && currentOptions.rollbackOnError ? previousData : currentOptions.resetOnMutate === false ? current.data : null,
136
232
  error,
@@ -150,7 +246,7 @@ function useMutationLifecycle(target, options = {}) {
150
246
  throw error;
151
247
  }
152
248
  },
153
- [setMutationState]
249
+ [setMutationState, waitForReconnect]
154
250
  );
155
251
  const mutateAsync = useCallback(
156
252
  (variables) => mutatePreparedAsync(() => variables),
@@ -167,15 +263,20 @@ function useMutationLifecycle(target, options = {}) {
167
263
  lastResetIdRef.current = ++requestIdRef.current;
168
264
  setMutationState({
169
265
  pendingCount: 0,
266
+ pausedCount: 0,
170
267
  status: "idle",
171
268
  data: optionsRef.current.initialData ?? null,
172
269
  error: null,
173
270
  variables: void 0
174
271
  });
272
+ const wakers = Array.from(resetWakersRef.current);
273
+ resetWakersRef.current.clear();
274
+ for (const wake of wakers) wake();
175
275
  }, [setMutationState]);
176
276
  const mutation = useMemo(
177
277
  () => ({
178
278
  pending: state.pendingCount > 0,
279
+ paused: state.pausedCount > 0,
179
280
  status: state.status,
180
281
  data: state.data,
181
282
  error: state.error,
@@ -190,6 +291,7 @@ function useMutationLifecycle(target, options = {}) {
190
291
  reset,
191
292
  state.data,
192
293
  state.error,
294
+ state.pausedCount,
193
295
  state.pendingCount,
194
296
  state.status,
195
297
  state.variables
@@ -315,6 +417,7 @@ function useFetcher(target, options = {}) {
315
417
  state: mutation.pending ? "submitting" : "idle",
316
418
  status: mutation.status,
317
419
  pending: mutation.pending,
420
+ paused: mutation.paused,
318
421
  data: mutation.data,
319
422
  error: mutation.error,
320
423
  variables: mutation.variables,
@@ -329,6 +432,7 @@ function useFetcher(target, options = {}) {
329
432
  formData,
330
433
  mutation.data,
331
434
  mutation.error,
435
+ mutation.paused,
332
436
  mutation.pending,
333
437
  mutation.status,
334
438
  mutation.variables,
@@ -347,9 +451,18 @@ function mapFetcherFormData(target, formData, options) {
347
451
  if (!isAPIRouteRef(target)) {
348
452
  return formData;
349
453
  }
350
- const values = formDataToObject(formData);
351
454
  const method = getAPIRouteRefMetadata(target)?.method;
352
- return method === "GET" || method === "HEAD" ? { query: values } : { body: values };
455
+ const query = method === "GET" || method === "HEAD";
456
+ const encoding = context.submitter?.getAttribute("formenctype") ?? context.form?.enctype;
457
+ if (!query && (encoding?.toLowerCase() === "multipart/form-data" || Array.from(formData.values()).some((value) => typeof value !== "string"))) {
458
+ const body = new FormData();
459
+ for (const [key, value] of formData) {
460
+ if (!isUnsafeFormKey(key)) body.append(key, value);
461
+ }
462
+ return { body };
463
+ }
464
+ const values = formDataToObject(formData);
465
+ return query ? { query: values } : { body: values };
353
466
  }
354
467
  __name(mapFetcherFormData, "mapFetcherFormData");
355
468
  function resolveFetcherFormAction(target, metadata) {
@@ -361,7 +474,7 @@ __name(resolveFetcherFormAction, "resolveFetcherFormAction");
361
474
  function formDataToObject(formData) {
362
475
  const output = /* @__PURE__ */ Object.create(null);
363
476
  for (const [key, value] of formData.entries()) {
364
- if (key === "__proto__" || key === "constructor" || key === "prototype") continue;
477
+ if (isUnsafeFormKey(key)) continue;
365
478
  const current = output[key];
366
479
  if (current === void 0) {
367
480
  output[key] = value;
@@ -374,6 +487,10 @@ function formDataToObject(formData) {
374
487
  return output;
375
488
  }
376
489
  __name(formDataToObject, "formDataToObject");
490
+ function isUnsafeFormKey(key) {
491
+ return key === "__proto__" || key === "constructor" || key === "prototype";
492
+ }
493
+ __name(isUnsafeFormKey, "isUnsafeFormKey");
377
494
  function createSubmitterFormData(form, submitter) {
378
495
  try {
379
496
  return new FormData(form, submitter);
@@ -403,6 +520,296 @@ function isFormData(value) {
403
520
  }
404
521
  __name(isFormData, "isFormData");
405
522
 
523
+ // src/cache-invalidation-broadcast.ts
524
+ var FARM_CACHE_INVALIDATION_CHANNEL = "farm:cache-invalidation";
525
+ var activeBridge;
526
+ function enableCrossTabCacheInvalidation(options = {}) {
527
+ if (typeof BroadcastChannel !== "function") return () => {
528
+ };
529
+ const channelName = options.channelName ?? FARM_CACHE_INVALIDATION_CHANNEL;
530
+ if (activeBridge) {
531
+ if (activeBridge.channelName !== channelName) {
532
+ throw new Error(
533
+ `Cross-tab cache invalidation is already enabled on channel "${activeBridge.channelName}".`
534
+ );
535
+ }
536
+ activeBridge.refCount += 1;
537
+ } else {
538
+ activeBridge = createBridge(channelName);
539
+ }
540
+ let disposed = false;
541
+ return () => {
542
+ if (disposed || !activeBridge) return;
543
+ disposed = true;
544
+ activeBridge.refCount -= 1;
545
+ if (activeBridge.refCount === 0) {
546
+ activeBridge.teardown();
547
+ activeBridge = void 0;
548
+ }
549
+ };
550
+ }
551
+ __name(enableCrossTabCacheInvalidation, "enableCrossTabCacheInvalidation");
552
+ function createBridge(channelName) {
553
+ const channel = new BroadcastChannel(channelName);
554
+ let applyingRemote = false;
555
+ let pending = [];
556
+ let flushScheduled = false;
557
+ let closed = false;
558
+ const flush = /* @__PURE__ */ __name(() => {
559
+ flushScheduled = false;
560
+ if (closed || pending.length === 0) return;
561
+ const encoded = encodeFarmCacheInvalidations(pending);
562
+ pending = [];
563
+ if (encoded !== null) channel.postMessage(encoded);
564
+ }, "flush");
565
+ const unsubscribe = subscribeFarmCacheInvalidation((key) => {
566
+ if (applyingRemote || closed) return;
567
+ pending.push(key);
568
+ if (!flushScheduled) {
569
+ flushScheduled = true;
570
+ queueMicrotask(flush);
571
+ }
572
+ });
573
+ channel.onmessage = (event) => {
574
+ const keys = decodeFarmCacheInvalidations(
575
+ typeof event.data === "string" ? event.data : void 0
576
+ );
577
+ if (keys.length === 0) return;
578
+ applyingRemote = true;
579
+ try {
580
+ for (const key of keys) notifyFarmCacheInvalidation(key);
581
+ } finally {
582
+ applyingRemote = false;
583
+ }
584
+ };
585
+ return {
586
+ channelName,
587
+ refCount: 1,
588
+ teardown() {
589
+ closed = true;
590
+ pending = [];
591
+ unsubscribe();
592
+ channel.onmessage = null;
593
+ channel.close();
594
+ }
595
+ };
596
+ }
597
+ __name(createBridge, "createBridge");
598
+
599
+ // src/client-cache-persistence.ts
600
+ var FARM_CLIENT_CACHE_PERSIST_VERSION = "1";
601
+ function defineClientCacheAdapter(adapter) {
602
+ for (const method of ["keys", "get", "set", "delete", "clear"]) {
603
+ if (typeof adapter?.[method] !== "function") {
604
+ throw new TypeError(
605
+ `defineClientCacheAdapter expects a "${method}" method. Implement keys/get/set/delete/clear over your storage.`
606
+ );
607
+ }
608
+ }
609
+ return adapter;
610
+ }
611
+ __name(defineClientCacheAdapter, "defineClientCacheAdapter");
612
+ function storageClientCacheAdapter(storage, options = {}) {
613
+ if (!storage || typeof storage.getItem !== "function" || typeof storage.setItem !== "function" || typeof storage.removeItem !== "function") {
614
+ throw new TypeError("storageClientCacheAdapter expects a compatible key-value client.");
615
+ }
616
+ const base = options.base ?? "farm-client-cache";
617
+ const entryKey = /* @__PURE__ */ __name((key) => `${base}:${key}`, "entryKey");
618
+ const enumerate = storage.getKeys?.bind(storage) ?? storage.keys?.bind(storage);
619
+ return {
620
+ async keys() {
621
+ if (!enumerate) return [];
622
+ const keys = await enumerate(base);
623
+ const prefix = `${base}:`;
624
+ return keys.filter((key) => key.startsWith(prefix)).map((key) => key.slice(prefix.length));
625
+ },
626
+ async get(key) {
627
+ return await storage.getItem(entryKey(key)) ?? null;
628
+ },
629
+ async set(key, entry) {
630
+ await storage.setItem(entryKey(key), entry);
631
+ },
632
+ async delete(key) {
633
+ await storage.removeItem(entryKey(key));
634
+ },
635
+ async clear() {
636
+ if (storage.clear) {
637
+ await storage.clear(base);
638
+ return;
639
+ }
640
+ if (!enumerate) return;
641
+ const prefix = `${base}:`;
642
+ for (const key of await enumerate(base)) {
643
+ if (key.startsWith(prefix)) await storage.removeItem(key);
644
+ }
645
+ }
646
+ };
647
+ }
648
+ __name(storageClientCacheAdapter, "storageClientCacheAdapter");
649
+ var activeEngine;
650
+ function reportPersistenceFailure(error) {
651
+ const report = typeof reportError === "function" ? reportError : console.error;
652
+ if (error instanceof Error) {
653
+ report(error);
654
+ return;
655
+ }
656
+ const normalized = new Error("Client cache persistence failed");
657
+ normalized.cause = error;
658
+ report(normalized);
659
+ }
660
+ __name(reportPersistenceFailure, "reportPersistenceFailure");
661
+ function disableEngine(engine, error) {
662
+ if (engine.disabled) return;
663
+ engine.disabled = true;
664
+ engine.pendingSets.clear();
665
+ engine.pendingDeletes.clear();
666
+ if (engine.flushTimer !== void 0) {
667
+ clearTimeout(engine.flushTimer);
668
+ engine.flushTimer = void 0;
669
+ }
670
+ reportPersistenceFailure(error);
671
+ }
672
+ __name(disableEngine, "disableEngine");
673
+ function scheduleFlush(engine) {
674
+ if (engine.disabled || engine.flushTimer !== void 0) return;
675
+ const timer = setTimeout(() => {
676
+ engine.flushTimer = void 0;
677
+ void flushEngine(engine);
678
+ }, engine.flushDelayMs);
679
+ timer.unref?.();
680
+ engine.flushTimer = timer;
681
+ }
682
+ __name(scheduleFlush, "scheduleFlush");
683
+ async function flushEngine(engine) {
684
+ if (engine.disabled) return;
685
+ const sets = Array.from(engine.pendingSets.entries());
686
+ const deletes = Array.from(engine.pendingDeletes);
687
+ engine.pendingSets.clear();
688
+ engine.pendingDeletes.clear();
689
+ try {
690
+ if (sets.length > 0) {
691
+ if (engine.adapter.setMany) await engine.adapter.setMany(sets);
692
+ else for (const [key, entry] of sets) await engine.adapter.set(key, entry);
693
+ }
694
+ for (const key of deletes) await engine.adapter.delete(key);
695
+ } catch (error) {
696
+ disableEngine(engine, error);
697
+ }
698
+ }
699
+ __name(flushEngine, "flushEngine");
700
+ async function hydrateEngine(engine) {
701
+ const now = Date.now();
702
+ const keys = await engine.adapter.keys();
703
+ if (keys.length === 0) return;
704
+ const persisted = engine.adapter.getMany ? await engine.adapter.getMany(keys) : await Promise.all(keys.map((key) => engine.adapter.get(key)));
705
+ engine.hydrating = true;
706
+ try {
707
+ for (let index = 0; index < keys.length; index += 1) {
708
+ const key = keys[index];
709
+ const entry = persisted[index];
710
+ if (engine.disabled) return;
711
+ if (!entry || entry.version !== engine.version || entry.gcAt !== void 0 && now >= entry.gcAt) {
712
+ engine.pendingDeletes.add(key);
713
+ continue;
714
+ }
715
+ if (engine.cache.get(key, now)) continue;
716
+ engine.cache.set(key, {
717
+ data: entry.data,
718
+ updatedAt: entry.updatedAt,
719
+ staleAt: 0,
720
+ gcAt: entry.gcAt,
721
+ status: "success",
722
+ error: null,
723
+ persist: true
724
+ });
725
+ }
726
+ } finally {
727
+ engine.hydrating = false;
728
+ }
729
+ if (engine.pendingDeletes.size > 0) scheduleFlush(engine);
730
+ }
731
+ __name(hydrateEngine, "hydrateEngine");
732
+ function createSink(engine) {
733
+ return {
734
+ onSet(key, entry) {
735
+ if (engine.disabled || engine.hydrating) return;
736
+ if (!entry.persist || entry.fetching || entry.error || entry.status === "pending") return;
737
+ if (engine.persistKey && !engine.persistKey(key)) return;
738
+ engine.pendingDeletes.delete(key);
739
+ engine.pendingSets.set(key, {
740
+ data: entry.data,
741
+ updatedAt: entry.updatedAt,
742
+ staleAt: entry.staleAt,
743
+ gcAt: entry.gcAt,
744
+ version: engine.version
745
+ });
746
+ scheduleFlush(engine);
747
+ },
748
+ onDelete(key) {
749
+ if (engine.disabled) return;
750
+ engine.pendingSets.delete(key);
751
+ engine.pendingDeletes.add(key);
752
+ scheduleFlush(engine);
753
+ },
754
+ onClear() {
755
+ if (engine.disabled) return;
756
+ engine.pendingSets.clear();
757
+ engine.pendingDeletes.clear();
758
+ void engine.adapter.clear().catch((error) => disableEngine(engine, error));
759
+ }
760
+ };
761
+ }
762
+ __name(createSink, "createSink");
763
+ function initPersistedClientCache(adapter, options = {}) {
764
+ defineClientCacheAdapter(adapter);
765
+ disposePersistedClientCache();
766
+ const engine = {
767
+ adapter,
768
+ cache: getFarmClientDataCache(),
769
+ version: options.version ? `${FARM_CLIENT_CACHE_PERSIST_VERSION}:${options.version}` : FARM_CLIENT_CACHE_PERSIST_VERSION,
770
+ persistKey: options.persistKey,
771
+ flushDelayMs: options.flushDelayMs ?? 300,
772
+ pendingSets: /* @__PURE__ */ new Map(),
773
+ pendingDeletes: /* @__PURE__ */ new Set(),
774
+ flushTimer: void 0,
775
+ hydrating: false,
776
+ disabled: false
777
+ };
778
+ activeEngine = engine;
779
+ engine.cache.attachPersistence(createSink(engine));
780
+ void hydrateEngine(engine).catch((error) => disableEngine(engine, error));
781
+ return () => {
782
+ if (activeEngine !== engine) return;
783
+ disposePersistedClientCache();
784
+ };
785
+ }
786
+ __name(initPersistedClientCache, "initPersistedClientCache");
787
+ function disposePersistedClientCache() {
788
+ const engine = activeEngine;
789
+ if (!engine) return;
790
+ activeEngine = void 0;
791
+ engine.cache.attachPersistence(void 0);
792
+ if (engine.flushTimer !== void 0) {
793
+ clearTimeout(engine.flushTimer);
794
+ engine.flushTimer = void 0;
795
+ }
796
+ engine.pendingSets.clear();
797
+ engine.pendingDeletes.clear();
798
+ }
799
+ __name(disposePersistedClientCache, "disposePersistedClientCache");
800
+ async function clearPersistedCache() {
801
+ const engine = activeEngine;
802
+ if (!engine) return;
803
+ engine.pendingSets.clear();
804
+ engine.pendingDeletes.clear();
805
+ try {
806
+ await engine.adapter.clear();
807
+ } catch (error) {
808
+ disableEngine(engine, error);
809
+ }
810
+ }
811
+ __name(clearPersistedCache, "clearPersistedCache");
812
+
406
813
  // src/store.ts
407
814
  import { useSyncExternalStore } from "react";
408
815
  var RESERVED_STORE_KEYS = /* @__PURE__ */ new Set([
@@ -966,7 +1373,14 @@ export {
966
1373
  useMutation,
967
1374
  FetcherInputError,
968
1375
  useFetcher,
1376
+ FARM_CACHE_INVALIDATION_CHANNEL,
1377
+ enableCrossTabCacheInvalidation,
1378
+ FARM_CLIENT_CACHE_PERSIST_VERSION,
1379
+ defineClientCacheAdapter,
1380
+ storageClientCacheAdapter,
1381
+ initPersistedClientCache,
1382
+ clearPersistedCache,
969
1383
  createStore,
970
1384
  Link
971
1385
  };
972
- //# sourceMappingURL=chunk-LZTGDH3H.mjs.map
1386
+ //# sourceMappingURL=chunk-EPDIF432.mjs.map