@farm.js/core 0.1.61 → 0.1.63

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 (1294) hide show
  1. package/dist/after.cjs +3 -3
  2. package/dist/after.d.mts +25 -0
  3. package/dist/after.d.ts +25 -0
  4. package/dist/after.mjs +2 -2
  5. package/dist/agent-mcp-handler-7QMX2LUY.mjs +18 -0
  6. package/dist/agent-mcp-handler-OV4WRFBL.cjs +18 -0
  7. package/dist/agent-mcp.d-CCQ-wKwg.d.mts +115 -0
  8. package/dist/agent-mcp.d-DOJCBSh9.d.ts +115 -0
  9. package/dist/agent-runtime.cjs +36 -59
  10. package/dist/agent-runtime.d.mts +105 -0
  11. package/dist/agent-runtime.d.ts +105 -0
  12. package/dist/agent-runtime.mjs +35 -58
  13. package/dist/analyzer-KEA5JVDR.cjs +15 -0
  14. package/dist/analyzer-WNPQPWFR.mjs +15 -0
  15. package/dist/api/client.cjs +16 -15
  16. package/dist/api/client.d.mts +5 -0
  17. package/dist/api/client.d.ts +5 -0
  18. package/dist/api/client.mjs +14 -13
  19. package/dist/api/client.native.cjs +45 -0
  20. package/dist/api/client.native.d.mts +23 -0
  21. package/dist/api/client.native.d.ts +23 -0
  22. package/dist/api/client.native.mjs +45 -0
  23. package/dist/api/route-manager.cjs +41 -39
  24. package/dist/api/route-manager.d.mts +119 -0
  25. package/dist/api/route-manager.d.ts +119 -0
  26. package/dist/api/route-manager.mjs +40 -38
  27. package/dist/api/runtime.cjs +24 -22
  28. package/dist/api/runtime.d.mts +35 -0
  29. package/dist/api/runtime.d.ts +35 -0
  30. package/dist/api/runtime.mjs +24 -22
  31. package/dist/api-client.d-BNLXNCXJ.d.mts +622 -0
  32. package/dist/api-client.d-ddQBNGtu.d.ts +622 -0
  33. package/dist/api.cjs +52 -50
  34. package/dist/api.d.mts +103 -0
  35. package/dist/api.d.ts +103 -0
  36. package/dist/api.mjs +51 -49
  37. package/dist/app-manifest.d-BaA0omsv.d.mts +128 -0
  38. package/dist/app-manifest.d-poayV4lq.d.ts +128 -0
  39. package/dist/app-markdown.cjs +15 -15
  40. package/dist/app-markdown.d.mts +48 -0
  41. package/dist/app-markdown.d.ts +48 -0
  42. package/dist/app-markdown.mjs +14 -14
  43. package/dist/app.d-D4Dn03E3.d.ts +563 -0
  44. package/dist/app.d-DdWxeIGU.d.mts +563 -0
  45. package/dist/base-path.d-BOUV5ozD.d.mts +10 -0
  46. package/dist/base-path.d-BOUV5ozD.d.ts +10 -0
  47. package/dist/cache.cjs +10 -7
  48. package/dist/cache.d.mts +333 -0
  49. package/dist/cache.d.ts +333 -0
  50. package/dist/cache.mjs +9 -6
  51. package/dist/chunk-22W4FNTG.mjs +538 -0
  52. package/dist/chunk-23LVFSID.mjs +182 -0
  53. package/dist/chunk-25T5VXOE.mjs +1093 -0
  54. package/dist/chunk-2DA7CLY7.mjs +560 -0
  55. package/dist/chunk-2DLGV2ZG.mjs +71 -0
  56. package/dist/chunk-2HW5LWAH.cjs +19 -0
  57. package/dist/chunk-2I6PUKWJ.mjs +44 -0
  58. package/dist/chunk-2KMIJDY6.cjs +20 -0
  59. package/dist/chunk-2NGZFOKG.mjs +190 -0
  60. package/dist/chunk-2OF5RPVU.cjs +44 -0
  61. package/dist/chunk-2XGBJSDV.cjs +408 -0
  62. package/dist/chunk-3BIASUGR.cjs +59 -0
  63. package/dist/chunk-3CCAICF7.cjs +651 -0
  64. package/dist/chunk-3EEET2Q5.cjs +1044 -0
  65. package/dist/chunk-3EIPOTZV.cjs +272 -0
  66. package/dist/chunk-3HLQTOVU.cjs +6 -0
  67. package/dist/chunk-3OJNNCDL.cjs +2250 -0
  68. package/dist/chunk-3TXKFRSO.mjs +657 -0
  69. package/dist/chunk-3UZVPO72.mjs +387 -0
  70. package/dist/chunk-43V3ANPQ.mjs +251 -0
  71. package/dist/chunk-46P5KNTE.mjs +8 -0
  72. package/dist/chunk-47JV57DA.cjs +69 -0
  73. package/dist/chunk-4BS3HSY7.cjs +541 -0
  74. package/dist/chunk-4DCWVSL2.cjs +15 -0
  75. package/dist/chunk-4DIKLG56.mjs +141 -0
  76. package/dist/chunk-4EBC7EMW.cjs +8 -0
  77. package/dist/chunk-4IHMHFQB.cjs +458 -0
  78. package/dist/chunk-4MU4QCX4.mjs +158 -0
  79. package/dist/chunk-4P5634G6.cjs +386 -0
  80. package/dist/chunk-4ZJ5C7UJ.cjs +75 -0
  81. package/dist/chunk-52Y3C3HG.mjs +421 -0
  82. package/dist/chunk-53EHWHT2.cjs +166 -0
  83. package/dist/chunk-53ZCZ46B.cjs +137 -0
  84. package/dist/chunk-55U5QIXQ.mjs +35 -0
  85. package/dist/chunk-5A77OEIG.cjs +778 -0
  86. package/dist/chunk-5C7XMKQ4.cjs +410 -0
  87. package/dist/chunk-5DX3O6TT.cjs +266 -0
  88. package/dist/chunk-5FE5YT2N.mjs +458 -0
  89. package/dist/chunk-5IKQ7BIR.cjs +716 -0
  90. package/dist/chunk-5IQ2ERQA.cjs +657 -0
  91. package/dist/chunk-5J45H65F.mjs +48 -0
  92. package/dist/chunk-5L7I6AMY.cjs +433 -0
  93. package/dist/chunk-5OJVKXFV.cjs +2072 -0
  94. package/dist/chunk-5PZJ63PK.mjs +17 -0
  95. package/dist/chunk-5Y22WNTO.mjs +237 -0
  96. package/dist/chunk-5Y2P454O.cjs +421 -0
  97. package/dist/chunk-5Y4GYKKH.mjs +13 -0
  98. package/dist/chunk-5YPBFMBN.cjs +19 -0
  99. package/dist/chunk-65Y5SIBH.cjs +112 -0
  100. package/dist/chunk-6BJJYOFL.cjs +293 -0
  101. package/dist/chunk-6BLAY2VQ.mjs +45 -0
  102. package/dist/chunk-6CTFVBAT.cjs +29 -0
  103. package/dist/chunk-6FXBJPF5.cjs +35 -0
  104. package/dist/chunk-6HRAK7I5.mjs +215 -0
  105. package/dist/chunk-6IOZPJ3I.cjs +549 -0
  106. package/dist/chunk-6JHZPB52.cjs +538 -0
  107. package/dist/chunk-6XQSPIN6.cjs +155 -0
  108. package/dist/chunk-6YFC3ZFX.mjs +449 -0
  109. package/dist/chunk-6ZFRWRHO.mjs +54 -0
  110. package/dist/chunk-724WT3NI.mjs +83 -0
  111. package/dist/chunk-72KABRWN.mjs +2072 -0
  112. package/dist/chunk-72KCTHLV.cjs +723 -0
  113. package/dist/chunk-752XUZIM.cjs +229 -0
  114. package/dist/chunk-75XSZIRE.mjs +180 -0
  115. package/dist/chunk-7EPYN7GW.cjs +30 -0
  116. package/dist/chunk-7FFW7DC4.mjs +517 -0
  117. package/dist/chunk-7H45IJWO.mjs +2250 -0
  118. package/dist/chunk-7H4SVNC4.cjs +700 -0
  119. package/dist/chunk-7JUIK547.cjs +62 -0
  120. package/dist/chunk-7KJJ4SBS.cjs +13 -0
  121. package/dist/chunk-7PTISZSQ.cjs +176 -0
  122. package/dist/chunk-7PZVXMWG.mjs +113 -0
  123. package/dist/chunk-7S7AAK2D.mjs +82 -0
  124. package/dist/chunk-A25FXJ7D.cjs +38 -0
  125. package/dist/chunk-A2MN5PQJ.mjs +527 -0
  126. package/dist/chunk-A4PWGL46.mjs +141 -0
  127. package/dist/chunk-ALEUMLJN.mjs +190 -0
  128. package/dist/chunk-ANXU3D32.cjs +1232 -0
  129. package/dist/chunk-AOKXITZ6.cjs +16 -0
  130. package/dist/chunk-AQLHD6HZ.cjs +196 -0
  131. package/dist/chunk-ATYTLVSI.cjs +45 -0
  132. package/dist/chunk-AXVRUDMB.cjs +203 -0
  133. package/dist/chunk-AY2YD5ZX.mjs +34 -0
  134. package/dist/chunk-AYP2YFVN.mjs +168 -0
  135. package/dist/chunk-AZQXXXDX.mjs +80 -0
  136. package/dist/chunk-B4CWYGCG.mjs +541 -0
  137. package/dist/chunk-BA2IA32Q.mjs +1291 -0
  138. package/dist/chunk-BBPDJGCU.cjs +157 -0
  139. package/dist/chunk-BM2LH2JM.mjs +1040 -0
  140. package/dist/chunk-BMQAPZXD.mjs +31 -0
  141. package/dist/chunk-BNH53KOT.cjs +69 -0
  142. package/dist/chunk-BPAXGCKX.mjs +166 -0
  143. package/dist/chunk-BPNOYILC.cjs +450 -0
  144. package/dist/chunk-BQWBHWEW.mjs +252 -0
  145. package/dist/chunk-BRWIVOV4.cjs +48 -0
  146. package/dist/chunk-BRYPZIMB.mjs +6 -0
  147. package/dist/chunk-BT4SEFLC.cjs +660 -0
  148. package/dist/chunk-BTVDYS4B.cjs +70 -0
  149. package/dist/chunk-BTZ5O6VM.cjs +14 -0
  150. package/dist/chunk-BUC3FDYC.cjs +158 -0
  151. package/dist/chunk-C64XOPBZ.mjs +380 -0
  152. package/dist/chunk-C7GJDVN4.mjs +124 -0
  153. package/dist/chunk-C7LCTVJ2.cjs +30 -0
  154. package/dist/chunk-CA7DNRHO.cjs +164 -0
  155. package/dist/chunk-CBDRR3J3.mjs +6680 -0
  156. package/dist/chunk-CBOEJ5Z4.cjs +1093 -0
  157. package/dist/chunk-CFG4QERR.cjs +434 -0
  158. package/dist/chunk-CI4UNQHO.cjs +35 -0
  159. package/dist/chunk-CKPTIEDX.cjs +12 -0
  160. package/dist/chunk-CL2ONP73.cjs +180 -0
  161. package/dist/chunk-CLFEQGET.cjs +60 -0
  162. package/dist/chunk-CNNBFGL5.cjs +252 -0
  163. package/dist/chunk-CO6UYM2D.mjs +172 -0
  164. package/dist/chunk-CQL5ZGFU.cjs +50 -0
  165. package/dist/chunk-CROAFCMW.mjs +203 -0
  166. package/dist/chunk-CU5SYTJG.mjs +23 -0
  167. package/dist/chunk-CV6MFQ4Y.mjs +259 -0
  168. package/dist/chunk-D22BUQKW.cjs +82 -0
  169. package/dist/chunk-D2LCAV6L.mjs +79 -0
  170. package/dist/chunk-D4MRNBVF.cjs +1462 -0
  171. package/dist/chunk-D4XGKF67.cjs +127 -0
  172. package/dist/chunk-D7Y63SOY.mjs +15 -0
  173. package/dist/chunk-DMAP4RND.cjs +998 -0
  174. package/dist/chunk-DPE53XWL.mjs +1980 -0
  175. package/dist/chunk-DQF3QLOH.mjs +660 -0
  176. package/dist/chunk-DQJ2CIH7.cjs +87 -0
  177. package/dist/chunk-DU4VHHPJ.mjs +157 -0
  178. package/dist/chunk-DUIP64BF.cjs +16 -0
  179. package/dist/chunk-DV52ZS53.cjs +40 -0
  180. package/dist/chunk-DXUXQP2T.cjs +142 -0
  181. package/dist/chunk-DZPR2W6U.cjs +593 -0
  182. package/dist/chunk-DZZHTMWM.cjs +190 -0
  183. package/dist/chunk-E46NXBNJ.mjs +386 -0
  184. package/dist/chunk-E4RDMG3K.mjs +697 -0
  185. package/dist/chunk-E552H232.cjs +154 -0
  186. package/dist/chunk-E72UD6ME.mjs +277 -0
  187. package/dist/chunk-E7QOEV5Z.cjs +449 -0
  188. package/dist/chunk-ECKQFEX2.mjs +712 -0
  189. package/dist/chunk-EDPENAVO.mjs +266 -0
  190. package/dist/chunk-EENTT56C.mjs +12733 -0
  191. package/dist/chunk-EFLNOZGH.mjs +30 -0
  192. package/dist/chunk-EFZGB7JC.cjs +114 -0
  193. package/dist/chunk-EGHPFXPZ.cjs +590 -0
  194. package/dist/chunk-EJCVG25Z.mjs +49 -0
  195. package/dist/chunk-EMDGXYUD.mjs +75 -0
  196. package/dist/chunk-EOXPRC2C.cjs +48 -0
  197. package/dist/chunk-ERMUL73L.cjs +39 -0
  198. package/dist/chunk-ES2LD2YD.mjs +203 -0
  199. package/dist/chunk-EV4SBMPX.mjs +208 -0
  200. package/dist/chunk-EVIWKPJV.cjs +560 -0
  201. package/dist/chunk-EVMXPJCB.mjs +133 -0
  202. package/dist/chunk-EX6ZSN5P.cjs +224 -0
  203. package/dist/chunk-EYLC6GD6.cjs +517 -0
  204. package/dist/chunk-EZ34EHQP.mjs +462 -0
  205. package/dist/chunk-EZTKXD6P.cjs +182 -0
  206. package/dist/chunk-F3N52U7S.mjs +138 -0
  207. package/dist/chunk-FBEBSAVI.cjs +225 -0
  208. package/dist/chunk-FEFCISOX.cjs +102 -0
  209. package/dist/chunk-FHURJABM.mjs +45 -0
  210. package/dist/chunk-FN5UEC7I.mjs +55 -0
  211. package/dist/chunk-FNHN3RBD.cjs +9 -0
  212. package/dist/chunk-FSXSQQTV.mjs +79 -0
  213. package/dist/chunk-GBMWLDCC.cjs +138 -0
  214. package/dist/chunk-GHNW564E.mjs +1044 -0
  215. package/dist/chunk-GL3ZDHKI.mjs +274 -0
  216. package/dist/chunk-GLOICKDO.mjs +142 -0
  217. package/dist/chunk-GNZIAJGB.mjs +358 -0
  218. package/dist/chunk-GPKBUME5.mjs +716 -0
  219. package/dist/chunk-GSVJ3IIF.cjs +173 -0
  220. package/dist/chunk-GUZC226X.mjs +164 -0
  221. package/dist/chunk-GVOMPU3Y.cjs +537 -0
  222. package/dist/chunk-GWXZS7K5.mjs +24 -0
  223. package/dist/chunk-GYMGK467.mjs +214 -0
  224. package/dist/chunk-H227LYHT.mjs +88 -0
  225. package/dist/chunk-H3ASZDT7.mjs +42 -0
  226. package/dist/chunk-H4WUWLQR.mjs +16 -0
  227. package/dist/chunk-HA7YRO53.cjs +214 -0
  228. package/dist/chunk-HEPJIKKQ.cjs +190 -0
  229. package/dist/chunk-HLYRXN2I.cjs +242 -0
  230. package/dist/chunk-HNAISJFD.cjs +215 -0
  231. package/dist/chunk-HPP2II4Z.mjs +332 -0
  232. package/dist/chunk-HXNLKCWH.cjs +13 -0
  233. package/dist/chunk-HZOMT5DY.mjs +30 -0
  234. package/dist/chunk-I2BYNELA.cjs +380 -0
  235. package/dist/chunk-I32V5CZL.cjs +1965 -0
  236. package/dist/chunk-IAPTECEB.mjs +48 -0
  237. package/dist/chunk-IFTGERT3.mjs +408 -0
  238. package/dist/chunk-IGL6CO6M.mjs +9 -0
  239. package/dist/chunk-IOF4KXMP.mjs +537 -0
  240. package/dist/chunk-ITV4QQL2.cjs +93 -0
  241. package/dist/chunk-IWRLV46X.cjs +1980 -0
  242. package/dist/chunk-IYEY3JWJ.mjs +186 -0
  243. package/dist/chunk-J3GFOQOL.cjs +237 -0
  244. package/dist/chunk-JCEFKP5M.mjs +1473 -0
  245. package/dist/chunk-JGAE5XPL.cjs +26 -0
  246. package/dist/chunk-JIBEFLQ7.cjs +44 -0
  247. package/dist/chunk-JLDNXURZ.cjs +588 -0
  248. package/dist/chunk-JMYXO572.cjs +531 -0
  249. package/dist/chunk-JNYFXL7X.mjs +62 -0
  250. package/dist/chunk-JRHGJVJH.mjs +44 -0
  251. package/dist/chunk-JSDV2NUN.mjs +206 -0
  252. package/dist/chunk-JXIYH2NO.cjs +24 -0
  253. package/dist/chunk-JYNNIGQO.cjs +87 -0
  254. package/dist/chunk-JYT7AN37.cjs +79 -0
  255. package/dist/chunk-K3RU5MOR.mjs +80 -0
  256. package/dist/chunk-K5EW7GUU.mjs +417 -0
  257. package/dist/chunk-K76CBYQM.mjs +157 -0
  258. package/dist/chunk-KBGZ5FD6.cjs +17 -0
  259. package/dist/chunk-KORZ6PRE.cjs +64 -0
  260. package/dist/chunk-KPAJWD3N.mjs +168 -0
  261. package/dist/chunk-KQH2COEJ.mjs +42 -0
  262. package/dist/chunk-KVW2M6PI.mjs +341 -0
  263. package/dist/chunk-L2JG337G.cjs +712 -0
  264. package/dist/chunk-L4RTTTVE.mjs +8 -0
  265. package/dist/chunk-L5JDKFMQ.cjs +44 -0
  266. package/dist/chunk-LA45FN37.mjs +10009 -0
  267. package/dist/chunk-LA6O5EL2.mjs +254 -0
  268. package/dist/chunk-LEJDW34D.cjs +115 -0
  269. package/dist/chunk-LFFSDZ4Y.cjs +141 -0
  270. package/dist/chunk-LLZSYFOM.mjs +6 -0
  271. package/dist/chunk-LM55GS4R.mjs +38 -0
  272. package/dist/chunk-LNVGXUL3.cjs +172 -0
  273. package/dist/chunk-LQNW3ABP.cjs +527 -0
  274. package/dist/chunk-LRB5OVRT.cjs +124 -0
  275. package/dist/chunk-LSHX2H5G.cjs +57 -0
  276. package/dist/chunk-LT4VAF5Z.cjs +1359 -0
  277. package/dist/chunk-LWWDTBGL.cjs +254 -0
  278. package/dist/chunk-M25IONJP.mjs +16 -0
  279. package/dist/chunk-M53MIIXY.mjs +172 -0
  280. package/dist/chunk-MEQN6DDA.cjs +341 -0
  281. package/dist/chunk-MF3IA2AW.cjs +25 -0
  282. package/dist/chunk-MFQGU5CC.mjs +127 -0
  283. package/dist/chunk-MGKW5XZE.cjs +40 -0
  284. package/dist/chunk-MHLNWRCJ.cjs +36 -0
  285. package/dist/chunk-MK5E44WP.mjs +60 -0
  286. package/dist/chunk-MMK4MZUN.mjs +36 -0
  287. package/dist/chunk-MNIR7I7B.mjs +217 -0
  288. package/dist/chunk-MPU5DOXX.cjs +21 -0
  289. package/dist/chunk-MU5V7XHL.mjs +172 -0
  290. package/dist/chunk-N33DLJBC.mjs +272 -0
  291. package/dist/chunk-N35YPV4N.mjs +48 -0
  292. package/dist/chunk-N4AQNEXR.cjs +17 -0
  293. package/dist/chunk-N7XWC6BN.mjs +21 -0
  294. package/dist/chunk-NBIVGHAT.mjs +50 -0
  295. package/dist/chunk-NCIAP562.mjs +27 -0
  296. package/dist/chunk-NK2VWS7P.cjs +954 -0
  297. package/dist/chunk-NKRZLQUK.mjs +150 -0
  298. package/dist/chunk-NR63PD3P.mjs +64 -0
  299. package/dist/chunk-NRNAHZ57.mjs +39 -0
  300. package/dist/chunk-NWUHS6GV.cjs +79 -0
  301. package/dist/chunk-O27PLNQZ.cjs +878 -0
  302. package/dist/chunk-O4F3JUST.mjs +176 -0
  303. package/dist/chunk-O5FCWI6O.mjs +156 -0
  304. package/dist/chunk-OAJOQU5J.mjs +225 -0
  305. package/dist/chunk-OCS3PSYR.cjs +51 -0
  306. package/dist/chunk-OHWM2VI4.mjs +29 -0
  307. package/dist/chunk-OJO2GOM3.mjs +69 -0
  308. package/dist/chunk-OLGQZRW6.mjs +700 -0
  309. package/dist/chunk-OM7WILES.mjs +100 -0
  310. package/dist/chunk-ONG4RDW3.mjs +155 -0
  311. package/dist/chunk-OOJBBHYW.cjs +38 -0
  312. package/dist/chunk-OOZEU5KK.cjs +18 -0
  313. package/dist/chunk-OWQV6MLM.cjs +82 -0
  314. package/dist/chunk-OY5XDG24.cjs +113 -0
  315. package/dist/chunk-OYZXVBZP.cjs +133 -0
  316. package/dist/chunk-OZC2JPW6.cjs +10 -0
  317. package/dist/chunk-P2355C6E.cjs +186 -0
  318. package/dist/chunk-PAKCHVUS.mjs +450 -0
  319. package/dist/chunk-PCXIJKPM.mjs +878 -0
  320. package/dist/chunk-PENBZAHJ.cjs +88 -0
  321. package/dist/chunk-PIUTGRDI.cjs +358 -0
  322. package/dist/chunk-PMJSG4JS.cjs +152 -0
  323. package/dist/chunk-PO5MXV5X.cjs +13 -0
  324. package/dist/chunk-PRFNLQSP.cjs +277 -0
  325. package/dist/chunk-PSUYE5HR.mjs +25 -0
  326. package/dist/chunk-PTLXHRJZ.mjs +57 -0
  327. package/dist/chunk-PVJX4UPA.cjs +6680 -0
  328. package/dist/chunk-PZXYAWYG.cjs +274 -0
  329. package/dist/chunk-Q5B4LNON.mjs +19 -0
  330. package/dist/chunk-QAS7KE7J.cjs +169 -0
  331. package/dist/chunk-QDWMCFTH.mjs +434 -0
  332. package/dist/chunk-QGJ4FI2G.mjs +723 -0
  333. package/dist/chunk-QGOZLGVP.mjs +0 -0
  334. package/dist/chunk-QISW423S.cjs +335 -0
  335. package/dist/chunk-QMDU6QHN.mjs +778 -0
  336. package/dist/chunk-QMNWKQL4.cjs +206 -0
  337. package/dist/chunk-QN5WRQSQ.cjs +10012 -0
  338. package/dist/chunk-QOSDWGKT.mjs +109 -0
  339. package/dist/chunk-QPJ4MZTO.mjs +60 -0
  340. package/dist/chunk-QPNVDSFZ.mjs +18 -0
  341. package/dist/chunk-QQ44FYRO.cjs +27 -0
  342. package/dist/chunk-QSTRBKHZ.mjs +102 -0
  343. package/dist/chunk-QTD6EMN2.mjs +368 -0
  344. package/dist/chunk-R53QDV6T.cjs +100 -0
  345. package/dist/chunk-R5U7OIPI.cjs +34 -0
  346. package/dist/chunk-R62SF5R4.mjs +410 -0
  347. package/dist/chunk-RD623KW4.cjs +203 -0
  348. package/dist/chunk-RFKTJTWZ.mjs +26 -0
  349. package/dist/chunk-RFYL5OLP.mjs +9 -0
  350. package/dist/chunk-RI3EVPKD.cjs +57 -0
  351. package/dist/chunk-RLEALQEN.mjs +998 -0
  352. package/dist/chunk-RSEAX5MW.mjs +44 -0
  353. package/dist/chunk-RVGLYMJM.cjs +259 -0
  354. package/dist/chunk-S2NUYHRY.mjs +1232 -0
  355. package/dist/chunk-S32PDOLO.mjs +13 -0
  356. package/dist/chunk-S6O2L47H.mjs +549 -0
  357. package/dist/chunk-SA7MLSP4.mjs +229 -0
  358. package/dist/chunk-SBDWCDS6.cjs +8 -0
  359. package/dist/chunk-SF3JB56B.mjs +82 -0
  360. package/dist/chunk-SHD265HW.cjs +19 -0
  361. package/dist/chunk-SHIWRBFI.cjs +17 -0
  362. package/dist/chunk-SM2SYWAR.cjs +49 -0
  363. package/dist/chunk-SMUW7UST.mjs +196 -0
  364. package/dist/chunk-SNP33A33.cjs +9 -0
  365. package/dist/chunk-SQ5O7I3L.mjs +70 -0
  366. package/dist/chunk-STF6VDYQ.cjs +23 -0
  367. package/dist/chunk-SUCDVKUB.cjs +42 -0
  368. package/dist/chunk-SVCUSOEF.mjs +590 -0
  369. package/dist/chunk-SVXOCTQ2.cjs +251 -0
  370. package/dist/chunk-SXCL2MIN.cjs +208 -0
  371. package/dist/chunk-SYW346ZN.cjs +71 -0
  372. package/dist/chunk-SYXPWJ7N.cjs +387 -0
  373. package/dist/chunk-T4TBK5NY.mjs +593 -0
  374. package/dist/chunk-TGSEVBPO.mjs +93 -0
  375. package/dist/chunk-TGULJSHD.mjs +1965 -0
  376. package/dist/chunk-TJVUTGED.mjs +531 -0
  377. package/dist/chunk-TUOO6IK3.mjs +87 -0
  378. package/dist/chunk-TUPKMMXT.mjs +173 -0
  379. package/dist/chunk-TVCFY3KK.cjs +217 -0
  380. package/dist/chunk-TZVUF5JJ.mjs +651 -0
  381. package/dist/chunk-U6WCUVSV.cjs +1294 -0
  382. package/dist/chunk-UAQD67HM.mjs +154 -0
  383. package/dist/chunk-UB7RVEMX.mjs +73 -0
  384. package/dist/chunk-UIJOLBUL.mjs +19 -0
  385. package/dist/chunk-UNJZGVPU.cjs +6 -0
  386. package/dist/chunk-UPYIFH2H.cjs +168 -0
  387. package/dist/chunk-UR25Z5Z6.mjs +135 -0
  388. package/dist/chunk-UUMKLGUU.mjs +69 -0
  389. package/dist/chunk-UYRI6U3P.mjs +137 -0
  390. package/dist/chunk-UYTAP4FQ.cjs +60 -0
  391. package/dist/chunk-UZCMMJJT.cjs +80 -0
  392. package/dist/chunk-UZZ6IEQP.mjs +169 -0
  393. package/dist/chunk-V3UOEWCB.cjs +46 -0
  394. package/dist/chunk-V56632LA.cjs +141 -0
  395. package/dist/chunk-V727H3RI.cjs +1473 -0
  396. package/dist/chunk-VE3FWJBO.mjs +46 -0
  397. package/dist/chunk-VFXE6NWR.mjs +87 -0
  398. package/dist/chunk-VHIXGZYH.mjs +9 -0
  399. package/dist/chunk-VISQDC6W.mjs +10 -0
  400. package/dist/chunk-VIXTAVEA.mjs +59 -0
  401. package/dist/chunk-VM57CK74.cjs +42 -0
  402. package/dist/chunk-VOQ7XZZT.cjs +157 -0
  403. package/dist/chunk-VQJHT2ND.mjs +40 -0
  404. package/dist/chunk-VR6QLTTX.mjs +59 -0
  405. package/dist/chunk-VVTJTMGQ.cjs +135 -0
  406. package/dist/chunk-VXCFJWK5.cjs +59 -0
  407. package/dist/chunk-W2ZXMMHA.mjs +1462 -0
  408. package/dist/chunk-W6QLRQ3V.mjs +152 -0
  409. package/dist/chunk-WCLLPR6H.mjs +35 -0
  410. package/dist/chunk-WEGAVN37.cjs +45 -0
  411. package/dist/chunk-WFVSAT7Y.cjs +83 -0
  412. package/dist/chunk-WKPBIT5Q.cjs +150 -0
  413. package/dist/chunk-WNDAISB7.mjs +51 -0
  414. package/dist/chunk-WNLPQW7W.mjs +19 -0
  415. package/dist/chunk-WT6RAN2I.cjs +41 -0
  416. package/dist/chunk-WXFY5JIY.mjs +20 -0
  417. package/dist/chunk-WYAXRIYP.cjs +697 -0
  418. package/dist/chunk-WYL4ODZ4.mjs +38 -0
  419. package/dist/chunk-X333W5KV.cjs +31 -0
  420. package/dist/chunk-X3EFRVXY.mjs +12 -0
  421. package/dist/chunk-X3XUZWRB.mjs +141 -0
  422. package/dist/chunk-X4K7TYN6.cjs +1040 -0
  423. package/dist/chunk-XCXHQBMM.mjs +115 -0
  424. package/dist/chunk-XGJVRPYL.cjs +141 -0
  425. package/dist/chunk-XICXQXYE.mjs +433 -0
  426. package/dist/chunk-XMHERKSE.mjs +224 -0
  427. package/dist/chunk-XPIPMWY3.cjs +1 -0
  428. package/dist/chunk-XQ4DPO4G.mjs +13 -0
  429. package/dist/chunk-XQSYOVCW.cjs +417 -0
  430. package/dist/chunk-XR2ZIBQK.mjs +57 -0
  431. package/dist/chunk-XURDCXNH.cjs +48 -0
  432. package/dist/chunk-XVSBALOY.cjs +55 -0
  433. package/dist/chunk-Y2YBNQ3D.cjs +156 -0
  434. package/dist/chunk-Y3WG64CP.cjs +9 -0
  435. package/dist/chunk-Y6FXYEAI.mjs +10 -0
  436. package/dist/chunk-Y7NN63LS.mjs +40 -0
  437. package/dist/chunk-YDXLC4DW.cjs +54 -0
  438. package/dist/chunk-YIHRZBD7.cjs +172 -0
  439. package/dist/chunk-YKHRCY4T.cjs +73 -0
  440. package/dist/chunk-YN6BHOYY.cjs +368 -0
  441. package/dist/chunk-YP7YO3S3.mjs +17 -0
  442. package/dist/chunk-YSXTNSXS.mjs +1359 -0
  443. package/dist/chunk-YT3SLLZK.mjs +242 -0
  444. package/dist/chunk-YTVSWXEZ.cjs +168 -0
  445. package/dist/chunk-YWPNIYUP.mjs +41 -0
  446. package/dist/chunk-YX6AFPXC.mjs +8 -0
  447. package/dist/chunk-Z64V4WZI.mjs +17 -0
  448. package/dist/chunk-Z74NNER4.cjs +12736 -0
  449. package/dist/chunk-Z7P2BTZ3.cjs +454 -0
  450. package/dist/chunk-ZDAEHG2O.cjs +80 -0
  451. package/dist/chunk-ZFWYCVKS.mjs +454 -0
  452. package/dist/chunk-ZNH6NR3H.cjs +462 -0
  453. package/dist/chunk-ZNXTU4YH.mjs +114 -0
  454. package/dist/chunk-ZOYKJBP5.cjs +172 -0
  455. package/dist/chunk-ZQ5BDNKW.mjs +954 -0
  456. package/dist/chunk-ZXK2EYQW.cjs +8 -0
  457. package/dist/chunk-ZZ2QKCKW.mjs +293 -0
  458. package/dist/chunk-ZZI56IUY.mjs +588 -0
  459. package/dist/chunk-recovery.d-lnQFzcQP.d.mts +26 -0
  460. package/dist/chunk-recovery.d-lnQFzcQP.d.ts +26 -0
  461. package/dist/client/lifecycle.cjs +3 -3
  462. package/dist/client/lifecycle.d.mts +1 -0
  463. package/dist/client/lifecycle.d.ts +1 -0
  464. package/dist/client/lifecycle.mjs +2 -2
  465. package/dist/client-cache.d-Deoqq-nM.d.ts +76 -0
  466. package/dist/client-cache.d-di_Nasxa.d.mts +76 -0
  467. package/dist/client-component.d-CQLvqLAJ.d.ts +218 -0
  468. package/dist/client-component.d-CSEFlHfG.d.mts +218 -0
  469. package/dist/client-plugins.cjs +3 -3
  470. package/dist/client-plugins.d-BTF0gZm4.d.mts +4018 -0
  471. package/dist/client-plugins.d-BgPUYPc9.d.ts +4018 -0
  472. package/dist/client-plugins.d.mts +33 -0
  473. package/dist/client-plugins.d.ts +33 -0
  474. package/dist/client-plugins.mjs +2 -2
  475. package/dist/client.cjs +45 -40
  476. package/dist/client.d.mts +452 -0
  477. package/dist/client.d.ts +452 -0
  478. package/dist/client.mjs +44 -39
  479. package/dist/client.react-server.mjs +2 -0
  480. package/dist/config.cjs +3 -3
  481. package/dist/config.d-qt-mE8O5.d.mts +341 -0
  482. package/dist/config.d-qt-mE8O5.d.ts +341 -0
  483. package/dist/config.d.mts +40 -0
  484. package/dist/config.d.ts +40 -0
  485. package/dist/config.mjs +2 -2
  486. package/dist/cron.cjs +19 -9
  487. package/dist/cron.d.mts +186 -0
  488. package/dist/cron.d.ts +186 -0
  489. package/dist/cron.mjs +18 -8
  490. package/dist/deferred.cjs +3 -3
  491. package/dist/deferred.d.mts +44 -0
  492. package/dist/deferred.d.ts +44 -0
  493. package/dist/deferred.mjs +2 -2
  494. package/dist/deployment.cjs +3 -3
  495. package/dist/deployment.d.mts +36 -0
  496. package/dist/deployment.d.ts +36 -0
  497. package/dist/deployment.mjs +2 -2
  498. package/dist/desktop.cjs +13 -0
  499. package/dist/desktop.d.mts +120 -0
  500. package/dist/desktop.d.ts +120 -0
  501. package/dist/desktop.mjs +13 -0
  502. package/dist/dev-guard-2UW2KERP.cjs +59 -0
  503. package/dist/dev-guard-ONNMVQUN.mjs +59 -0
  504. package/dist/devtools-HDKTYIZF.mjs +463 -0
  505. package/dist/devtools-ZHN5JLVI.cjs +463 -0
  506. package/dist/devtools-client-SU4XH46J.mjs +250 -0
  507. package/dist/devtools-client-X5OQCXDF.cjs +250 -0
  508. package/dist/devtools-ui-CYBVFLPH.mjs +1265 -0
  509. package/dist/devtools-ui-SYRUXUA7.cjs +1265 -0
  510. package/dist/docs.cjs +66 -58
  511. package/dist/docs.d.mts +169 -0
  512. package/dist/docs.d.ts +169 -0
  513. package/dist/docs.mjs +65 -57
  514. package/dist/endpoint.d-BgHn0lhl.d.ts +370 -0
  515. package/dist/endpoint.d-BkMSCRf6.d.mts +370 -0
  516. package/dist/env-types.cjs +4 -4
  517. package/dist/env-types.d.mts +12 -0
  518. package/dist/env-types.d.ts +12 -0
  519. package/dist/env-types.mjs +3 -3
  520. package/dist/env.cjs +4 -4
  521. package/dist/env.d.mts +65 -0
  522. package/dist/env.d.ts +65 -0
  523. package/dist/env.mjs +3 -3
  524. package/dist/environment/vite.cjs +7 -3
  525. package/dist/environment/vite.d.mts +31 -0
  526. package/dist/environment/vite.d.ts +31 -0
  527. package/dist/environment/vite.mjs +6 -2
  528. package/dist/environment.cjs +3 -3
  529. package/dist/environment.d.mts +18 -0
  530. package/dist/environment.d.ts +18 -0
  531. package/dist/environment.mjs +2 -2
  532. package/dist/font.cjs +3 -3
  533. package/dist/font.d.mts +95 -0
  534. package/dist/font.d.ts +95 -0
  535. package/dist/font.mjs +2 -2
  536. package/dist/generate-route-types.d-BL2pq6xC.d.ts +33 -0
  537. package/dist/generate-route-types.d-BoVDU8qX.d.mts +33 -0
  538. package/dist/headers.cjs +8 -6
  539. package/dist/headers.d.mts +32 -0
  540. package/dist/headers.d.ts +32 -0
  541. package/dist/headers.mjs +7 -5
  542. package/dist/i18n/client.cjs +19 -30
  543. package/dist/i18n/client.d.mts +32 -0
  544. package/dist/i18n/client.d.ts +32 -0
  545. package/dist/i18n/client.mjs +9 -20
  546. package/dist/i18n/index.cjs +6 -6
  547. package/dist/i18n/index.d.mts +3 -0
  548. package/dist/i18n/index.d.ts +3 -0
  549. package/dist/i18n/index.mjs +5 -5
  550. package/dist/i18n/server.cjs +10 -10
  551. package/dist/i18n/server.d.mts +30 -0
  552. package/dist/i18n/server.d.ts +30 -0
  553. package/dist/i18n/server.mjs +9 -9
  554. package/dist/image/server.cjs +9 -5
  555. package/dist/image/server.d.mts +59 -0
  556. package/dist/image/server.d.ts +59 -0
  557. package/dist/image/server.mjs +8 -4
  558. package/dist/image/sharp.cjs +16 -20
  559. package/dist/image/sharp.d.mts +20 -0
  560. package/dist/image/sharp.d.ts +20 -0
  561. package/dist/image/sharp.mjs +8 -12
  562. package/dist/image-config.d-CeDgNyX4.d.mts +53 -0
  563. package/dist/image-config.d-CeDgNyX4.d.ts +53 -0
  564. package/dist/image.cjs +9 -18
  565. package/dist/image.d.mts +39 -0
  566. package/dist/image.d.ts +39 -0
  567. package/dist/image.mjs +4 -13
  568. package/dist/index.cjs +250 -174
  569. package/dist/index.d-BNNDpql4.d.ts +20 -0
  570. package/dist/index.d-BqcfqJvt.d.mts +20 -0
  571. package/dist/index.d-Coow7bD4.d.ts +54 -0
  572. package/dist/index.d-Dbjx0ku7.d.mts +54 -0
  573. package/dist/index.d.mts +1053 -0
  574. package/dist/index.d.ts +1053 -0
  575. package/dist/index.mjs +318 -242
  576. package/dist/instrumentation-runtime.d-CX9Zh-16.d.mts +22 -0
  577. package/dist/instrumentation-runtime.d-CX9Zh-16.d.ts +22 -0
  578. package/dist/instrumentation.cjs +5 -5
  579. package/dist/instrumentation.d.mts +7 -0
  580. package/dist/instrumentation.d.ts +7 -0
  581. package/dist/instrumentation.mjs +4 -4
  582. package/dist/integration-orm-52GPGTHO.cjs +14 -0
  583. package/dist/integration-orm-CO23MSFE.mjs +14 -0
  584. package/dist/integrations.cjs +23 -17
  585. package/dist/integrations.d.mts +33 -0
  586. package/dist/integrations.d.ts +33 -0
  587. package/dist/integrations.mjs +24 -18
  588. package/dist/internal/app-markdown-runtime.cjs +13 -13
  589. package/dist/internal/app-markdown-runtime.d.mts +86 -0
  590. package/dist/internal/app-markdown-runtime.d.ts +86 -0
  591. package/dist/internal/app-markdown-runtime.mjs +12 -12
  592. package/dist/internal/build-runtime.cjs +166 -133
  593. package/dist/internal/build-runtime.d.mts +46 -0
  594. package/dist/internal/build-runtime.d.ts +46 -0
  595. package/dist/internal/build-runtime.mjs +154 -121
  596. package/dist/internal/cli-runtime.cjs +102 -79
  597. package/dist/internal/cli-runtime.mjs +102 -79
  598. package/dist/internal/client-error-overlay.cjs +18 -49
  599. package/dist/internal/client-error-overlay.d.mts +25 -0
  600. package/dist/internal/client-error-overlay.d.ts +25 -0
  601. package/dist/internal/client-error-overlay.mjs +14 -45
  602. package/dist/internal/client-runtime.cjs +73 -59
  603. package/dist/internal/client-runtime.d.mts +93 -0
  604. package/dist/internal/client-runtime.d.ts +93 -0
  605. package/dist/internal/client-runtime.mjs +66 -52
  606. package/dist/internal/compression-runtime.cjs +4 -4
  607. package/dist/internal/compression-runtime.d.mts +48 -0
  608. package/dist/internal/compression-runtime.d.ts +48 -0
  609. package/dist/internal/compression-runtime.mjs +3 -3
  610. package/dist/internal/config-runtime.cjs +94 -65
  611. package/dist/internal/config-runtime.d.mts +336 -0
  612. package/dist/internal/config-runtime.d.ts +336 -0
  613. package/dist/internal/config-runtime.mjs +80 -51
  614. package/dist/internal/desktop-guard.cjs +17 -0
  615. package/dist/internal/desktop-guard.d.mts +52 -0
  616. package/dist/internal/desktop-guard.d.ts +52 -0
  617. package/dist/internal/desktop-guard.mjs +17 -0
  618. package/dist/internal/docs-precompiled-runtime.cjs +18 -24
  619. package/dist/internal/docs-precompiled-runtime.d.mts +43 -0
  620. package/dist/internal/docs-precompiled-runtime.d.ts +43 -0
  621. package/dist/internal/docs-precompiled-runtime.mjs +14 -20
  622. package/dist/internal/form-actions-client.cjs +14 -0
  623. package/dist/internal/form-actions-client.d.mts +5 -0
  624. package/dist/internal/form-actions-client.d.ts +5 -0
  625. package/dist/internal/form-actions-client.mjs +14 -0
  626. package/dist/internal/form-actions.cjs +19 -0
  627. package/dist/internal/form-actions.d.mts +14 -0
  628. package/dist/internal/form-actions.d.ts +14 -0
  629. package/dist/internal/form-actions.mjs +19 -0
  630. package/dist/internal/infra-analytics-runtime.cjs +24 -8
  631. package/dist/internal/infra-analytics-runtime.d.mts +16 -0
  632. package/dist/internal/infra-analytics-runtime.d.ts +16 -0
  633. package/dist/internal/infra-analytics-runtime.mjs +22 -6
  634. package/dist/internal/island-codec.cjs +22 -0
  635. package/dist/internal/island-codec.d.mts +29 -0
  636. package/dist/internal/island-codec.d.ts +29 -0
  637. package/dist/internal/island-codec.mjs +22 -0
  638. package/dist/internal/island-value-store.cjs +10 -0
  639. package/dist/internal/island-value-store.d.mts +6 -0
  640. package/dist/internal/island-value-store.d.ts +6 -0
  641. package/dist/internal/island-value-store.mjs +10 -0
  642. package/dist/internal/islands-boot.cjs +211 -0
  643. package/dist/internal/islands-boot.d.mts +8 -0
  644. package/dist/internal/islands-boot.d.ts +8 -0
  645. package/dist/internal/islands-boot.mjs +211 -0
  646. package/dist/internal/islands-runtime.cjs +161 -0
  647. package/dist/internal/islands-runtime.d.mts +66 -0
  648. package/dist/internal/islands-runtime.d.ts +66 -0
  649. package/dist/internal/islands-runtime.mjs +161 -0
  650. package/dist/internal/islands-server.cjs +16 -0
  651. package/dist/internal/islands-server.d.mts +3 -0
  652. package/dist/internal/islands-server.d.ts +3 -0
  653. package/dist/internal/islands-server.mjs +16 -0
  654. package/dist/internal/islx-client.cjs +5 -0
  655. package/dist/internal/islx-client.d.mts +6 -0
  656. package/dist/internal/islx-client.d.ts +6 -0
  657. package/dist/internal/islx-client.mjs +3 -0
  658. package/dist/internal/islx-react.cjs +4 -0
  659. package/dist/internal/islx-react.d.mts +1 -0
  660. package/dist/internal/islx-react.d.ts +1 -0
  661. package/dist/internal/islx-react.mjs +2 -0
  662. package/dist/internal/islx-server.cjs +5 -0
  663. package/dist/internal/islx-server.d.mts +2 -0
  664. package/dist/internal/islx-server.d.ts +2 -0
  665. package/dist/internal/islx-server.mjs +3 -0
  666. package/dist/internal/isolated-boundary.cjs +5 -4
  667. package/dist/internal/isolated-boundary.d.mts +66 -0
  668. package/dist/internal/isolated-boundary.d.ts +66 -0
  669. package/dist/internal/isolated-boundary.mjs +4 -3
  670. package/dist/internal/metadata-image-runtime.cjs +8 -7
  671. package/dist/internal/metadata-image-runtime.d.mts +30 -0
  672. package/dist/internal/metadata-image-runtime.d.ts +30 -0
  673. package/dist/internal/metadata-image-runtime.mjs +7 -6
  674. package/dist/internal/native-server-fns.cjs +25 -0
  675. package/dist/internal/native-server-fns.d.mts +42 -0
  676. package/dist/internal/native-server-fns.d.ts +42 -0
  677. package/dist/internal/native-server-fns.mjs +25 -0
  678. package/dist/internal/product-telemetry-runtime.cjs +22 -228
  679. package/dist/internal/product-telemetry-runtime.d.mts +45 -0
  680. package/dist/internal/product-telemetry-runtime.d.ts +45 -0
  681. package/dist/internal/product-telemetry-runtime.mjs +11 -217
  682. package/dist/internal/production-node-env.cjs +7 -3
  683. package/dist/internal/production-node-env.d.mts +21 -0
  684. package/dist/internal/production-node-env.d.ts +21 -0
  685. package/dist/internal/production-node-env.mjs +6 -2
  686. package/dist/internal/production-runtime.cjs +179 -90
  687. package/dist/internal/production-runtime.d.mts +566 -0
  688. package/dist/internal/production-runtime.d.ts +566 -0
  689. package/dist/internal/production-runtime.mjs +203 -114
  690. package/dist/internal/react-cache.cjs +71 -0
  691. package/dist/internal/react-cache.d.mts +10 -0
  692. package/dist/internal/react-cache.d.ts +10 -0
  693. package/dist/internal/react-cache.mjs +71 -0
  694. package/dist/internal/request-cookies.cjs +3 -3
  695. package/dist/internal/request-cookies.d.mts +16 -0
  696. package/dist/internal/request-cookies.d.ts +16 -0
  697. package/dist/internal/request-cookies.mjs +2 -2
  698. package/dist/internal/server-fn-transform.cjs +13 -0
  699. package/dist/internal/server-fn-transform.d.mts +24 -0
  700. package/dist/internal/server-fn-transform.d.ts +24 -0
  701. package/dist/internal/server-fn-transform.mjs +13 -0
  702. package/dist/internal/server-tree.cjs +7 -4
  703. package/dist/internal/server-tree.d.mts +50 -0
  704. package/dist/internal/server-tree.d.ts +50 -0
  705. package/dist/internal/server-tree.mjs +8 -5
  706. package/dist/island-value-protocol.d-BRayRghM.d.mts +12 -0
  707. package/dist/island-value-protocol.d-BRayRghM.d.ts +12 -0
  708. package/dist/island.d-CfGru1MO.d.mts +9 -0
  709. package/dist/island.d-CfGru1MO.d.ts +9 -0
  710. package/dist/json-ld.cjs +3 -16
  711. package/dist/json-ld.d.mts +94 -0
  712. package/dist/json-ld.d.ts +94 -0
  713. package/dist/json-ld.mjs +3 -16
  714. package/dist/layers-DMRXRL7F.cjs +18 -0
  715. package/dist/layers-T55SA47E.mjs +18 -0
  716. package/dist/layers.d-CcS42OGR.d.mts +55 -0
  717. package/dist/layers.d-CcS42OGR.d.ts +55 -0
  718. package/dist/lifecycle.d-C2aLBOwu.d.mts +176 -0
  719. package/dist/lifecycle.d-C2aLBOwu.d.ts +176 -0
  720. package/dist/manager-2LUKNX2N.cjs +14 -0
  721. package/dist/manager-H5ZM3HAM.mjs +14 -0
  722. package/dist/markdown.cjs +19 -12
  723. package/dist/markdown.d.mts +33 -0
  724. package/dist/markdown.d.ts +33 -0
  725. package/dist/markdown.mjs +18 -11
  726. package/dist/middleware.cjs +34 -26
  727. package/dist/middleware.d.mts +225 -0
  728. package/dist/middleware.d.ts +225 -0
  729. package/dist/middleware.mjs +38 -30
  730. package/dist/mobile.cjs +9 -0
  731. package/dist/mobile.d.mts +138 -0
  732. package/dist/mobile.d.ts +138 -0
  733. package/dist/mobile.mjs +9 -0
  734. package/dist/modules-KOKD4XS6.mjs +13 -0
  735. package/dist/modules-QTP7WJPD.cjs +13 -0
  736. package/dist/native-server-fn-handler-GLRHAYWV.mjs +28 -0
  737. package/dist/native-server-fn-handler-J5MYRXN6.cjs +28 -0
  738. package/dist/native-specs-5OLED4MM.cjs +15 -0
  739. package/dist/native-specs-LDV6IZ4N.mjs +15 -0
  740. package/dist/native-tree-AS5L3ID3.mjs +27 -0
  741. package/dist/native-tree-Z2WYUJEV.cjs +27 -0
  742. package/dist/native.cjs +87 -0
  743. package/dist/native.d.mts +72 -0
  744. package/dist/native.d.ts +72 -0
  745. package/dist/native.mjs +87 -0
  746. package/dist/navigation-delegate.d-Ca_BV0Wu.d.mts +29 -0
  747. package/dist/navigation-delegate.d-aHiPI6GL.d.ts +29 -0
  748. package/dist/navigation.cjs +22 -21
  749. package/dist/navigation.d.mts +51 -0
  750. package/dist/navigation.d.ts +51 -0
  751. package/dist/navigation.mjs +21 -20
  752. package/dist/nitro-DD4QCA66.mjs +650 -0
  753. package/dist/nitro-VRDX2H4M.cjs +650 -0
  754. package/dist/node-module-bundle-7JHPPF6B.mjs +11 -0
  755. package/dist/node-module-bundle-YJGYBOGK.cjs +11 -0
  756. package/dist/observability.cjs +3 -3
  757. package/dist/observability.d-B2363jB6.d.mts +448 -0
  758. package/dist/observability.d-B2363jB6.d.ts +448 -0
  759. package/dist/observability.d.mts +2 -0
  760. package/dist/observability.d.ts +2 -0
  761. package/dist/observability.mjs +2 -2
  762. package/dist/og.cjs +1 -1
  763. package/dist/og.d.mts +1 -0
  764. package/dist/og.d.ts +1 -0
  765. package/dist/og.mjs +1 -1
  766. package/dist/params.d-BALtrRim.d.ts +15 -0
  767. package/dist/params.d-ry-lxqmy.d.mts +15 -0
  768. package/dist/platform.cjs +29 -0
  769. package/dist/platform.d.mts +24 -0
  770. package/dist/platform.d.ts +24 -0
  771. package/dist/platform.mjs +29 -0
  772. package/dist/plugin-53SY5YBS.mjs +32 -0
  773. package/dist/plugin-HZIBL3DW.cjs +32 -0
  774. package/dist/plugin.cjs +154 -124
  775. package/dist/plugin.d.mts +58 -0
  776. package/dist/plugin.d.ts +58 -0
  777. package/dist/plugin.mjs +137 -107
  778. package/dist/port-UFUZL6RI.mjs +419 -0
  779. package/dist/port-VTLHPZOI.cjs +419 -0
  780. package/dist/production-runtime.d-C0rF7a10.d.ts +123 -0
  781. package/dist/production-runtime.d-CnAsSWgF.d.mts +123 -0
  782. package/dist/production-vite.d-BQFAlG7n.d.mts +13 -0
  783. package/dist/production-vite.d-BQFAlG7n.d.ts +13 -0
  784. package/dist/query/client.cjs +59 -69
  785. package/dist/query/client.d.mts +61 -0
  786. package/dist/query/client.d.ts +61 -0
  787. package/dist/query/client.mjs +51 -61
  788. package/dist/query/index.cjs +4 -4
  789. package/dist/query/index.d.mts +90 -0
  790. package/dist/query/index.d.ts +90 -0
  791. package/dist/query/index.mjs +3 -3
  792. package/dist/query/parsers.cjs +3 -3
  793. package/dist/query/parsers.d.mts +29 -0
  794. package/dist/query/parsers.d.ts +29 -0
  795. package/dist/query/parsers.mjs +2 -2
  796. package/dist/query/server.cjs +5 -11
  797. package/dist/query/server.d.mts +55 -0
  798. package/dist/query/server.d.ts +55 -0
  799. package/dist/query/server.mjs +3 -9
  800. package/dist/render-plan.d-BxeITFT1.d.ts +25 -0
  801. package/dist/render-plan.d-Z-93m5GZ.d.mts +25 -0
  802. package/dist/renderer/react/client.cjs +1 -1
  803. package/dist/renderer/react/client.d.mts +3 -0
  804. package/dist/renderer/react/client.d.ts +3 -0
  805. package/dist/renderer/react/client.mjs +1 -1
  806. package/dist/renderer/react/server.cjs +10 -14
  807. package/dist/renderer/react/server.d.mts +48 -0
  808. package/dist/renderer/react/server.d.ts +48 -0
  809. package/dist/renderer/react/server.mjs +12 -16
  810. package/dist/renderer/react/vite.cjs +1 -4
  811. package/dist/renderer/react/vite.d.mts +4 -0
  812. package/dist/renderer/react/vite.d.ts +4 -0
  813. package/dist/renderer/react/vite.mjs +1 -4
  814. package/dist/renderer-client.cjs +71 -77
  815. package/dist/renderer-client.d.mts +126 -0
  816. package/dist/renderer-client.d.ts +126 -0
  817. package/dist/renderer-client.mjs +51 -57
  818. package/dist/renderer.cjs +3 -3
  819. package/dist/renderer.d.mts +260 -0
  820. package/dist/renderer.d.ts +260 -0
  821. package/dist/renderer.mjs +2 -2
  822. package/dist/request.cjs +4 -4
  823. package/dist/request.d-8_fMFNEb.d.mts +24 -0
  824. package/dist/request.d-X7Q1vmGF.d.ts +24 -0
  825. package/dist/request.d.mts +34 -0
  826. package/dist/request.d.ts +34 -0
  827. package/dist/request.mjs +3 -3
  828. package/dist/resolver.d-BHyZgpa7.d.ts +14 -0
  829. package/dist/resolver.d-JnZKKsc5.d.mts +14 -0
  830. package/dist/response.d-BolW0Vx_.d.mts +10 -0
  831. package/dist/response.d-BolW0Vx_.d.ts +10 -0
  832. package/dist/route-pattern.d-CVsVbq5n.d.mts +13 -0
  833. package/dist/route-pattern.d-CVsVbq5n.d.ts +13 -0
  834. package/dist/route-rendering.d-BInmBmul.d.mts +44 -0
  835. package/dist/route-rendering.d-BUr3Jp8S.d.ts +44 -0
  836. package/dist/route.d-BaVH3V0w.d.mts +224 -0
  837. package/dist/route.d-DBTEqifW.d.ts +224 -0
  838. package/dist/router.cjs +5 -5
  839. package/dist/router.d-CZQmbpHx.d.mts +50 -0
  840. package/dist/router.d-crorSRiW.d.ts +50 -0
  841. package/dist/router.d.mts +36 -0
  842. package/dist/router.d.ts +36 -0
  843. package/dist/router.mjs +4 -4
  844. package/dist/routes.cjs +14 -12
  845. package/dist/routes.d-BknKQcTu.d.ts +237 -0
  846. package/dist/routes.d-D1IrO9KK.d.mts +237 -0
  847. package/dist/routes.d.mts +273 -0
  848. package/dist/routes.d.ts +273 -0
  849. package/dist/routes.mjs +13 -11
  850. package/dist/rsc-pipeline-3MPRULGA.mjs +83 -0
  851. package/dist/rsc-pipeline-RHEZNBFQ.cjs +83 -0
  852. package/dist/runtime-OZKFZQCU.cjs +1336 -0
  853. package/dist/runtime-X5UR7VHP.mjs +1336 -0
  854. package/dist/runtime.d-3iJAKptR.d.mts +28 -0
  855. package/dist/runtime.d-BtL3PCL3.d.ts +28 -0
  856. package/dist/runtime.d-CCsjTZJW.d.ts +69 -0
  857. package/dist/runtime.d-CETtpLb-.d.mts +69 -0
  858. package/dist/schema-dev-notice-JMXEQWIQ.mjs +54 -0
  859. package/dist/schema-dev-notice-PLBFDTOF.cjs +54 -0
  860. package/dist/schema.cjs +3 -3
  861. package/dist/schema.d.mts +115 -0
  862. package/dist/schema.d.ts +115 -0
  863. package/dist/schema.mjs +2 -2
  864. package/dist/search-client-OXH6GBNO.mjs +15 -0
  865. package/dist/search-client-ZZLKVO5R.cjs +15 -0
  866. package/dist/server-action-security.cjs +8 -7
  867. package/dist/server-action-security.d.mts +45 -0
  868. package/dist/server-action-security.d.ts +45 -0
  869. package/dist/server-action-security.mjs +7 -6
  870. package/dist/server-client-bridge.d-DKWDl5NB.d.mts +7 -0
  871. package/dist/server-client-bridge.d-DKWDl5NB.d.ts +7 -0
  872. package/dist/server-fn-client.cjs +4 -4
  873. package/dist/server-fn-client.d.mts +60 -0
  874. package/dist/server-fn-client.d.ts +60 -0
  875. package/dist/server-fn-client.mjs +3 -3
  876. package/dist/server-fn-error.d-DrcH9cc1.d.mts +26 -0
  877. package/dist/server-fn-error.d-DrcH9cc1.d.ts +26 -0
  878. package/dist/server-fn.cjs +15 -14
  879. package/dist/server-fn.d.mts +192 -0
  880. package/dist/server-fn.d.ts +192 -0
  881. package/dist/server-fn.mjs +14 -13
  882. package/dist/server-plugins.cjs +15 -15
  883. package/dist/server-plugins.d.mts +65 -0
  884. package/dist/server-plugins.d.ts +65 -0
  885. package/dist/server-plugins.mjs +14 -14
  886. package/dist/server-query-client.cjs +9 -8
  887. package/dist/server-query-client.d.mts +26 -0
  888. package/dist/server-query-client.d.ts +26 -0
  889. package/dist/server-query-client.mjs +8 -7
  890. package/dist/server-query-runtime.d-DXRNhX_3.d.ts +36 -0
  891. package/dist/server-query-runtime.d-aP52iuL5.d.mts +36 -0
  892. package/dist/server-query.cjs +17 -16
  893. package/dist/server-query.d.mts +46 -0
  894. package/dist/server-query.d.ts +46 -0
  895. package/dist/server-query.mjs +16 -15
  896. package/dist/server.cjs +266 -199
  897. package/dist/server.d.mts +78 -0
  898. package/dist/server.d.ts +78 -0
  899. package/dist/server.mjs +239 -172
  900. package/dist/session-2Q72D4QV.cjs +23 -0
  901. package/dist/session-QZXZOPR2.mjs +23 -0
  902. package/dist/shell-render.d-CG6bPiiA.d.mts +41 -0
  903. package/dist/shell-render.d-CG6bPiiA.d.ts +41 -0
  904. package/dist/spa-router.d-CCADbSqJ.d.ts +248 -0
  905. package/dist/spa-router.d-CtSHzXlC.d.mts +248 -0
  906. package/dist/storage.cjs +7 -3
  907. package/dist/storage.d.mts +60 -0
  908. package/dist/storage.d.ts +60 -0
  909. package/dist/storage.mjs +6 -2
  910. package/dist/testing.cjs +59 -76
  911. package/dist/testing.d.mts +110 -0
  912. package/dist/testing.d.ts +110 -0
  913. package/dist/testing.mjs +49 -66
  914. package/dist/theme/client.cjs +5 -5
  915. package/dist/theme/client.d.mts +10 -0
  916. package/dist/theme/client.d.ts +10 -0
  917. package/dist/theme/client.mjs +4 -4
  918. package/dist/theme/index.cjs +3 -3
  919. package/dist/theme/index.d.mts +6 -0
  920. package/dist/theme/index.d.ts +6 -0
  921. package/dist/theme/index.mjs +2 -2
  922. package/dist/theme/runtime.cjs +3 -3
  923. package/dist/theme/runtime.d.mts +13 -0
  924. package/dist/theme/runtime.d.ts +13 -0
  925. package/dist/theme/runtime.mjs +2 -2
  926. package/dist/theme/server.cjs +8 -8
  927. package/dist/theme/server.d.mts +8 -0
  928. package/dist/theme/server.d.ts +8 -0
  929. package/dist/theme/server.mjs +7 -7
  930. package/dist/types.d-BnIqOn9w.d.mts +73 -0
  931. package/dist/types.d-BnIqOn9w.d.ts +73 -0
  932. package/dist/types.d-C41ePjvP.d.mts +85 -0
  933. package/dist/types.d-C41ePjvP.d.ts +85 -0
  934. package/dist/types.d-DQnyD3VD.d.mts +30 -0
  935. package/dist/types.d-DQnyD3VD.d.ts +30 -0
  936. package/dist/utils.d-CjyE-npA.d.ts +54 -0
  937. package/dist/utils.d-zFPHKFFJ.d.mts +54 -0
  938. package/dist/version.cjs +3 -3
  939. package/dist/version.d.mts +3 -0
  940. package/dist/version.d.ts +3 -0
  941. package/dist/version.mjs +2 -2
  942. package/dist/vite.cjs +172 -120
  943. package/dist/vite.d.mts +186 -0
  944. package/dist/vite.d.ts +186 -0
  945. package/dist/vite.mjs +159 -107
  946. package/dist/workflows.cjs +14 -13
  947. package/dist/workflows.d-CRMzQZ3k.d.mts +188 -0
  948. package/dist/workflows.d-CRMzQZ3k.d.ts +188 -0
  949. package/dist/workflows.d.mts +1 -0
  950. package/dist/workflows.d.ts +1 -0
  951. package/dist/workflows.mjs +13 -12
  952. package/package.json +7 -2
  953. package/dist/agent-mcp-handler-LPJ2CADR.mjs +0 -19
  954. package/dist/agent-mcp-handler-SJAHFSPI.cjs +0 -19
  955. package/dist/chunk-23MGIV4X.mjs +0 -579
  956. package/dist/chunk-27ZWSI3W.cjs +0 -64
  957. package/dist/chunk-2A3EQHXX.mjs +0 -173
  958. package/dist/chunk-2CQ74SP6.cjs +0 -13
  959. package/dist/chunk-2ELDTQRN.mjs +0 -85
  960. package/dist/chunk-2J7W2WND.mjs +0 -149
  961. package/dist/chunk-2NNMOPDN.mjs +0 -237
  962. package/dist/chunk-2PQNJXFM.mjs +0 -20
  963. package/dist/chunk-2SJ4RQ6P.cjs +0 -57
  964. package/dist/chunk-2UC36WAC.mjs +0 -22
  965. package/dist/chunk-2VQKKQ6D.mjs +0 -51
  966. package/dist/chunk-2Y3JRYVG.mjs +0 -71
  967. package/dist/chunk-35GKZR22.mjs +0 -157
  968. package/dist/chunk-3BU22U3M.cjs +0 -237
  969. package/dist/chunk-3KZS4SUS.mjs +0 -414
  970. package/dist/chunk-3SDFA7UF.cjs +0 -701
  971. package/dist/chunk-3TLO7SBY.cjs +0 -240
  972. package/dist/chunk-3UEVPCGW.mjs +0 -435
  973. package/dist/chunk-3WNDJT2E.cjs +0 -109
  974. package/dist/chunk-44SYJEG3.mjs +0 -13
  975. package/dist/chunk-45ZSJLDT.mjs +0 -183
  976. package/dist/chunk-4E5AEDKY.mjs +0 -696
  977. package/dist/chunk-4E5WBPEG.mjs +0 -1157
  978. package/dist/chunk-4GLOOWKE.mjs +0 -1344
  979. package/dist/chunk-4JCQDWPX.mjs +0 -24
  980. package/dist/chunk-4NU4GGTC.cjs +0 -484
  981. package/dist/chunk-4OOBRCJX.mjs +0 -300
  982. package/dist/chunk-4PPEPOZZ.cjs +0 -21
  983. package/dist/chunk-4RB44K6Z.mjs +0 -94
  984. package/dist/chunk-4SIYUGRY.mjs +0 -93
  985. package/dist/chunk-4WQ6PGSJ.cjs +0 -367
  986. package/dist/chunk-4WVJLURN.mjs +0 -417
  987. package/dist/chunk-4ZFL5GFN.cjs +0 -520
  988. package/dist/chunk-54UPOYFS.mjs +0 -35
  989. package/dist/chunk-55YI3RRB.mjs +0 -192
  990. package/dist/chunk-5I3OT426.cjs +0 -11021
  991. package/dist/chunk-5QIKR7RR.cjs +0 -224
  992. package/dist/chunk-5SJWVY6R.mjs +0 -26
  993. package/dist/chunk-5WI2S4CO.mjs +0 -20
  994. package/dist/chunk-63H6BKXG.cjs +0 -389
  995. package/dist/chunk-655RLQQL.mjs +0 -43
  996. package/dist/chunk-6EODJYCX.cjs +0 -183
  997. package/dist/chunk-6EXBPJ24.cjs +0 -434
  998. package/dist/chunk-6MVFL3R5.cjs +0 -506
  999. package/dist/chunk-6NT6S2VQ.mjs +0 -180
  1000. package/dist/chunk-6QQDAAAZ.cjs +0 -38
  1001. package/dist/chunk-6SJ2KJTA.mjs +0 -314
  1002. package/dist/chunk-6SM5XXFS.cjs +0 -70
  1003. package/dist/chunk-6V4TDWEC.cjs +0 -455
  1004. package/dist/chunk-72ADZ6GQ.cjs +0 -19
  1005. package/dist/chunk-72AK62H5.mjs +0 -55
  1006. package/dist/chunk-75RZHGLS.cjs +0 -135
  1007. package/dist/chunk-77GNHH2Z.cjs +0 -236
  1008. package/dist/chunk-7DBXEASO.cjs +0 -40
  1009. package/dist/chunk-7LTCDQRS.mjs +0 -166
  1010. package/dist/chunk-7W3CPVXS.cjs +0 -24
  1011. package/dist/chunk-A6WIQH5Z.cjs +0 -31
  1012. package/dist/chunk-ADEA7PN3.cjs +0 -1101
  1013. package/dist/chunk-AELACLOB.mjs +0 -47
  1014. package/dist/chunk-AHGECQEW.mjs +0 -49
  1015. package/dist/chunk-AI7QMY7O.cjs +0 -41
  1016. package/dist/chunk-AJQTP4OO.mjs +0 -212
  1017. package/dist/chunk-AMDMVWMI.cjs +0 -39
  1018. package/dist/chunk-ARJWXNQL.cjs +0 -256
  1019. package/dist/chunk-BCMSYSN2.mjs +0 -183
  1020. package/dist/chunk-BIDYX3SL.cjs +0 -91
  1021. package/dist/chunk-BJIYRUGQ.mjs +0 -35
  1022. package/dist/chunk-BJPBQNIE.cjs +0 -2355
  1023. package/dist/chunk-BO36SELV.cjs +0 -395
  1024. package/dist/chunk-BOYNDCZL.mjs +0 -54
  1025. package/dist/chunk-BPMATOP2.cjs +0 -687
  1026. package/dist/chunk-BPOF5U4N.mjs +0 -566
  1027. package/dist/chunk-BRYHOB4X.mjs +0 -18
  1028. package/dist/chunk-BSC7JTOK.mjs +0 -70
  1029. package/dist/chunk-BTHHUD7Q.mjs +0 -51
  1030. package/dist/chunk-BUGNQIHC.mjs +0 -449
  1031. package/dist/chunk-C4NCTZLM.mjs +0 -22
  1032. package/dist/chunk-C4SPBWFM.cjs +0 -26
  1033. package/dist/chunk-C5GUTBZK.cjs +0 -173
  1034. package/dist/chunk-CBBLJMR5.mjs +0 -74
  1035. package/dist/chunk-CBJJH36A.cjs +0 -2187
  1036. package/dist/chunk-CGBDNNSM.cjs +0 -664
  1037. package/dist/chunk-CI6E3UOH.cjs +0 -314
  1038. package/dist/chunk-CMGMGHUZ.cjs +0 -27
  1039. package/dist/chunk-CNOQY6Z7.mjs +0 -156
  1040. package/dist/chunk-CQ6OSQ3K.mjs +0 -36
  1041. package/dist/chunk-CU625VAY.mjs +0 -13
  1042. package/dist/chunk-CVOSWIQA.mjs +0 -15300
  1043. package/dist/chunk-CXEN47J3.mjs +0 -550
  1044. package/dist/chunk-CXP5U3RW.cjs +0 -54
  1045. package/dist/chunk-D227TIEN.cjs +0 -1114
  1046. package/dist/chunk-D2BB47NB.cjs +0 -157
  1047. package/dist/chunk-D2ULAULS.cjs +0 -166
  1048. package/dist/chunk-D7JTOLFK.cjs +0 -285
  1049. package/dist/chunk-DAATZTKJ.mjs +0 -220
  1050. package/dist/chunk-DAO7JGTS.mjs +0 -73
  1051. package/dist/chunk-DQQOKWYA.cjs +0 -42
  1052. package/dist/chunk-DTSROJ5J.mjs +0 -367
  1053. package/dist/chunk-DVM4FKZL.cjs +0 -169
  1054. package/dist/chunk-DZ5ZVB2K.cjs +0 -9
  1055. package/dist/chunk-E2ROOWQC.cjs +0 -2225
  1056. package/dist/chunk-E3UK5IIB.cjs +0 -593
  1057. package/dist/chunk-E5GNDG5F.mjs +0 -701
  1058. package/dist/chunk-EA5K5BKU.mjs +0 -455
  1059. package/dist/chunk-ECKF2BAM.cjs +0 -403
  1060. package/dist/chunk-EK4QAEFZ.cjs +0 -550
  1061. package/dist/chunk-EMLAPBEM.mjs +0 -256
  1062. package/dist/chunk-ENLZ4R3Y.mjs +0 -55
  1063. package/dist/chunk-EUV4YR3V.cjs +0 -1362
  1064. package/dist/chunk-EWET4D2Y.mjs +0 -395
  1065. package/dist/chunk-EZDQRNQ7.mjs +0 -1496
  1066. package/dist/chunk-F2SE2VDO.mjs +0 -65
  1067. package/dist/chunk-F3LTXB63.mjs +0 -40
  1068. package/dist/chunk-F3VB7ONA.mjs +0 -338
  1069. package/dist/chunk-F5QO4FNE.mjs +0 -664
  1070. package/dist/chunk-FA2W42OV.mjs +0 -25
  1071. package/dist/chunk-FDR64H6B.mjs +0 -140
  1072. package/dist/chunk-FFFW3OQ7.cjs +0 -65
  1073. package/dist/chunk-FJ3M4CUX.cjs +0 -46
  1074. package/dist/chunk-FK6GO24V.cjs +0 -54
  1075. package/dist/chunk-FNO7A7CM.cjs +0 -1496
  1076. package/dist/chunk-FO427P6I.cjs +0 -392
  1077. package/dist/chunk-FP2INE7H.mjs +0 -113
  1078. package/dist/chunk-FUZEBRP3.mjs +0 -593
  1079. package/dist/chunk-FZ6YYU2W.mjs +0 -65
  1080. package/dist/chunk-G2KY33I6.mjs +0 -202
  1081. package/dist/chunk-G4MWPDSE.mjs +0 -19
  1082. package/dist/chunk-G643DQCH.cjs +0 -13
  1083. package/dist/chunk-G7HXGLEC.cjs +0 -175
  1084. package/dist/chunk-GC3SUL6M.mjs +0 -109
  1085. package/dist/chunk-GCXWJJKH.mjs +0 -169
  1086. package/dist/chunk-GHFS7RUB.mjs +0 -152
  1087. package/dist/chunk-GQ3Z3IZI.cjs +0 -241
  1088. package/dist/chunk-H4AMB6ZE.mjs +0 -421
  1089. package/dist/chunk-H77NVNJ2.mjs +0 -57
  1090. package/dist/chunk-HALDNTIV.mjs +0 -2225
  1091. package/dist/chunk-HITLGIAO.cjs +0 -55
  1092. package/dist/chunk-HLJ6MBUZ.cjs +0 -183
  1093. package/dist/chunk-HOXTWRGB.mjs +0 -484
  1094. package/dist/chunk-HREOKQWT.cjs +0 -45
  1095. package/dist/chunk-I2BHUNBU.mjs +0 -14
  1096. package/dist/chunk-I57LW5VZ.cjs +0 -94
  1097. package/dist/chunk-IE7XCHH3.cjs +0 -85
  1098. package/dist/chunk-IHNIDL6H.cjs +0 -772
  1099. package/dist/chunk-IK6LVLKC.cjs +0 -51
  1100. package/dist/chunk-IOEH4VWN.mjs +0 -202
  1101. package/dist/chunk-IWZKTWHZ.cjs +0 -435
  1102. package/dist/chunk-IZY3V5XW.mjs +0 -23
  1103. package/dist/chunk-J63ZH5OQ.cjs +0 -62
  1104. package/dist/chunk-J7FSKED3.cjs +0 -93
  1105. package/dist/chunk-JBSVKMC5.mjs +0 -28
  1106. package/dist/chunk-JDNHKPTD.cjs +0 -22
  1107. package/dist/chunk-JG6DJF5A.mjs +0 -238
  1108. package/dist/chunk-JGLC4TO3.cjs +0 -192
  1109. package/dist/chunk-JM5XPKWH.mjs +0 -41
  1110. package/dist/chunk-JNUWCDTF.cjs +0 -1344
  1111. package/dist/chunk-JNZ4TDWM.mjs +0 -445
  1112. package/dist/chunk-JPLUGGRV.mjs +0 -230
  1113. package/dist/chunk-JSROZYYO.cjs +0 -164
  1114. package/dist/chunk-KCMTCM6I.cjs +0 -53
  1115. package/dist/chunk-KGB5UXJJ.mjs +0 -27
  1116. package/dist/chunk-KGZIORNL.cjs +0 -43
  1117. package/dist/chunk-KI3MESHB.mjs +0 -224
  1118. package/dist/chunk-KIIMAWOJ.cjs +0 -505
  1119. package/dist/chunk-KMTGADN3.mjs +0 -95
  1120. package/dist/chunk-KN7K4VQN.mjs +0 -236
  1121. package/dist/chunk-KNBBQHO2.cjs +0 -51
  1122. package/dist/chunk-KR6CKSXT.cjs +0 -15
  1123. package/dist/chunk-KXWRO25S.cjs +0 -85
  1124. package/dist/chunk-L3KT7IXV.mjs +0 -91
  1125. package/dist/chunk-LCCBO7PJ.cjs +0 -46
  1126. package/dist/chunk-LIUGYUX3.cjs +0 -22
  1127. package/dist/chunk-LPEX4YW6.mjs +0 -13
  1128. package/dist/chunk-LSKZMJMP.cjs +0 -65
  1129. package/dist/chunk-LSZAVSGY.mjs +0 -1101
  1130. package/dist/chunk-LTNGXMQ6.cjs +0 -55
  1131. package/dist/chunk-LYLEZIG3.cjs +0 -73
  1132. package/dist/chunk-LYV44OIR.mjs +0 -256
  1133. package/dist/chunk-M2L4MYDQ.cjs +0 -14
  1134. package/dist/chunk-M7MKQXAF.cjs +0 -87
  1135. package/dist/chunk-MKYBIIAQ.mjs +0 -2187
  1136. package/dist/chunk-MQ3H6LT5.cjs +0 -202
  1137. package/dist/chunk-MRMI32SN.cjs +0 -1157
  1138. package/dist/chunk-MSSFIQGM.mjs +0 -1002
  1139. package/dist/chunk-MT763TDW.cjs +0 -43
  1140. package/dist/chunk-MVL2RAJW.mjs +0 -62
  1141. package/dist/chunk-MWSK6C4J.cjs +0 -18
  1142. package/dist/chunk-MWWVKDW3.cjs +0 -169
  1143. package/dist/chunk-N2NAS2AM.cjs +0 -725
  1144. package/dist/chunk-N46M65CI.mjs +0 -54
  1145. package/dist/chunk-N4UOK6ZI.cjs +0 -256
  1146. package/dist/chunk-NI2TCCTG.mjs +0 -11020
  1147. package/dist/chunk-NO3WWW3N.cjs +0 -192
  1148. package/dist/chunk-NPC7VWJE.mjs +0 -277
  1149. package/dist/chunk-NRDBW4MP.mjs +0 -45
  1150. package/dist/chunk-NRSN7G7E.mjs +0 -42
  1151. package/dist/chunk-NYJMY3JA.cjs +0 -156
  1152. package/dist/chunk-NZKJGRB3.cjs +0 -230
  1153. package/dist/chunk-O6BCQV2T.mjs +0 -46
  1154. package/dist/chunk-O6I6VWKK.mjs +0 -493
  1155. package/dist/chunk-O6WAEAX3.mjs +0 -2028
  1156. package/dist/chunk-O7BH5O46.mjs +0 -175
  1157. package/dist/chunk-OFZUJMCU.mjs +0 -601
  1158. package/dist/chunk-OHLSEQ57.mjs +0 -910
  1159. package/dist/chunk-OHY2ZWUG.cjs +0 -25
  1160. package/dist/chunk-OI6CMLWX.cjs +0 -47
  1161. package/dist/chunk-ONUEYC6N.mjs +0 -27
  1162. package/dist/chunk-OO7GXVSR.mjs +0 -9
  1163. package/dist/chunk-OT6ZEW74.mjs +0 -139
  1164. package/dist/chunk-OTC5BDGO.mjs +0 -687
  1165. package/dist/chunk-OX6O6WVA.cjs +0 -74
  1166. package/dist/chunk-OYEUREB6.cjs +0 -35
  1167. package/dist/chunk-OZVEHHMA.cjs +0 -194
  1168. package/dist/chunk-P5TJO5IS.mjs +0 -240
  1169. package/dist/chunk-PCOTGFSM.cjs +0 -139
  1170. package/dist/chunk-PNGWZFUQ.mjs +0 -39
  1171. package/dist/chunk-PSV6XKPO.cjs +0 -220
  1172. package/dist/chunk-PTZ2TVNE.cjs +0 -178
  1173. package/dist/chunk-PZNL3WEG.mjs +0 -772
  1174. package/dist/chunk-PZYCPSCC.cjs +0 -35
  1175. package/dist/chunk-Q2KB32T4.mjs +0 -690
  1176. package/dist/chunk-Q5B3KJBP.cjs +0 -152
  1177. package/dist/chunk-QBK2AA4U.cjs +0 -445
  1178. package/dist/chunk-QCFBDFRS.mjs +0 -169
  1179. package/dist/chunk-QCVE2OCI.cjs +0 -169
  1180. package/dist/chunk-QE6VAKLT.mjs +0 -85
  1181. package/dist/chunk-QNPEUFHQ.cjs +0 -27
  1182. package/dist/chunk-QORUJDIV.mjs +0 -46
  1183. package/dist/chunk-QV4VE2OW.mjs +0 -166
  1184. package/dist/chunk-QVKYGNVM.mjs +0 -27
  1185. package/dist/chunk-QVYLBY73.mjs +0 -93
  1186. package/dist/chunk-R3DS7A2T.mjs +0 -21
  1187. package/dist/chunk-R5A5KNVX.cjs +0 -20
  1188. package/dist/chunk-R5JIFR6B.cjs +0 -42
  1189. package/dist/chunk-RHAZ22ZN.mjs +0 -87
  1190. package/dist/chunk-RKPDESVW.cjs +0 -15301
  1191. package/dist/chunk-RSOJ7DRT.mjs +0 -506
  1192. package/dist/chunk-S3A45T7F.cjs +0 -166
  1193. package/dist/chunk-S3FNNQHR.mjs +0 -31
  1194. package/dist/chunk-S3JO3N4H.cjs +0 -17
  1195. package/dist/chunk-S67OYZU7.mjs +0 -711
  1196. package/dist/chunk-S6VYG6XU.cjs +0 -493
  1197. package/dist/chunk-SAXPH6G5.mjs +0 -169
  1198. package/dist/chunk-SC2WYWPF.mjs +0 -241
  1199. package/dist/chunk-SDOTRX3V.cjs +0 -690
  1200. package/dist/chunk-SEJ5N6SL.mjs +0 -38
  1201. package/dist/chunk-SFGWNC43.mjs +0 -97
  1202. package/dist/chunk-SHB3GYXI.mjs +0 -285
  1203. package/dist/chunk-SHLXACIO.cjs +0 -95
  1204. package/dist/chunk-SJNMVDDF.cjs +0 -86
  1205. package/dist/chunk-SK35NQKK.cjs +0 -27
  1206. package/dist/chunk-SKNL7VA2.mjs +0 -42
  1207. package/dist/chunk-SLQCDJSO.mjs +0 -18
  1208. package/dist/chunk-SOR334EB.cjs +0 -149
  1209. package/dist/chunk-SU7MH53P.cjs +0 -180
  1210. package/dist/chunk-SVRTJOUF.cjs +0 -113
  1211. package/dist/chunk-SYQ3MOWW.cjs +0 -73
  1212. package/dist/chunk-T4OGRVNS.mjs +0 -392
  1213. package/dist/chunk-T5OJPTVN.cjs +0 -417
  1214. package/dist/chunk-TE2G5ION.cjs +0 -2028
  1215. package/dist/chunk-TFQG7TBC.mjs +0 -43
  1216. package/dist/chunk-TIWHTW3Q.cjs +0 -24
  1217. package/dist/chunk-TKJZFIML.cjs +0 -20
  1218. package/dist/chunk-TKSCR644.cjs +0 -414
  1219. package/dist/chunk-TVGP4BBZ.mjs +0 -45
  1220. package/dist/chunk-U4KT7QP3.cjs +0 -23
  1221. package/dist/chunk-UDNPLXW7.mjs +0 -86
  1222. package/dist/chunk-UFDAAQFX.cjs +0 -169
  1223. package/dist/chunk-UFDV5N3C.cjs +0 -711
  1224. package/dist/chunk-UH6QN5NL.mjs +0 -178
  1225. package/dist/chunk-UP4CW6WP.mjs +0 -169
  1226. package/dist/chunk-UQZ4AYTH.cjs +0 -168
  1227. package/dist/chunk-US2QVW3E.cjs +0 -36
  1228. package/dist/chunk-UVW64BCB.cjs +0 -910
  1229. package/dist/chunk-UWPLULNK.mjs +0 -520
  1230. package/dist/chunk-UXFQ3UDA.cjs +0 -140
  1231. package/dist/chunk-UYIHRDE4.cjs +0 -97
  1232. package/dist/chunk-V2FTMRS7.mjs +0 -223
  1233. package/dist/chunk-VB6UCX3V.cjs +0 -421
  1234. package/dist/chunk-VEKFLAQM.cjs +0 -300
  1235. package/dist/chunk-VILIPRS6.mjs +0 -725
  1236. package/dist/chunk-VQLJWDVW.cjs +0 -696
  1237. package/dist/chunk-W3B4PKAW.mjs +0 -28
  1238. package/dist/chunk-W4E7WMXE.cjs +0 -71
  1239. package/dist/chunk-W7LF2J2S.mjs +0 -64
  1240. package/dist/chunk-WBKEZXWE.cjs +0 -449
  1241. package/dist/chunk-WC5UV2HQ.cjs +0 -212
  1242. package/dist/chunk-WMAPPDMM.cjs +0 -28
  1243. package/dist/chunk-WMOGFOUJ.cjs +0 -223
  1244. package/dist/chunk-WNSDDRNU.mjs +0 -24
  1245. package/dist/chunk-WWFTAUFG.cjs +0 -45
  1246. package/dist/chunk-WWIKMBRN.mjs +0 -1362
  1247. package/dist/chunk-XCMCS4DA.mjs +0 -1114
  1248. package/dist/chunk-XJJVLDM6.mjs +0 -194
  1249. package/dist/chunk-XJXBIP67.cjs +0 -277
  1250. package/dist/chunk-XNPDONUH.mjs +0 -389
  1251. package/dist/chunk-XSIRSMAS.cjs +0 -339
  1252. package/dist/chunk-XZNTNMHT.mjs +0 -15
  1253. package/dist/chunk-Y5SJM2W7.cjs +0 -579
  1254. package/dist/chunk-YDQZGSDS.mjs +0 -2355
  1255. package/dist/chunk-YFILVET3.mjs +0 -192
  1256. package/dist/chunk-YFPGHF5F.cjs +0 -202
  1257. package/dist/chunk-YHOCRI4H.mjs +0 -434
  1258. package/dist/chunk-YJRZR7VU.cjs +0 -28
  1259. package/dist/chunk-YKX5BK66.cjs +0 -46
  1260. package/dist/chunk-YOZYCI6Z.mjs +0 -73
  1261. package/dist/chunk-YSCV4SJF.cjs +0 -49
  1262. package/dist/chunk-YSLWRWWP.cjs +0 -601
  1263. package/dist/chunk-YWMZUGIS.mjs +0 -403
  1264. package/dist/chunk-YWN746US.cjs +0 -1002
  1265. package/dist/chunk-YX3DBN4M.cjs +0 -18
  1266. package/dist/chunk-Z2HLU4IX.cjs +0 -238
  1267. package/dist/chunk-Z2RZJZIZ.mjs +0 -168
  1268. package/dist/chunk-Z3HATSKO.mjs +0 -46
  1269. package/dist/chunk-ZEG3OPIB.cjs +0 -93
  1270. package/dist/chunk-ZLAT2CWY.mjs +0 -135
  1271. package/dist/chunk-ZMMBIVQM.mjs +0 -505
  1272. package/dist/chunk-ZMSZZXOR.mjs +0 -164
  1273. package/dist/chunk-ZWM5KGAA.cjs +0 -566
  1274. package/dist/chunk-ZZSRYEYU.mjs +0 -53
  1275. package/dist/devtools-ERIKFEXX.mjs +0 -472
  1276. package/dist/devtools-JZJJY5CK.cjs +0 -472
  1277. package/dist/devtools-client-CXQ6PXI6.cjs +0 -254
  1278. package/dist/devtools-client-HJS2T34Y.mjs +0 -254
  1279. package/dist/devtools-ui-5GBDIGMK.cjs +0 -1296
  1280. package/dist/devtools-ui-5KDAVPIF.mjs +0 -1296
  1281. package/dist/integration-orm-55F7CII5.cjs +0 -13
  1282. package/dist/integration-orm-KV5B3BGZ.mjs +0 -13
  1283. package/dist/layers-UTB43B7A.mjs +0 -18
  1284. package/dist/layers-VUWIOFEO.cjs +0 -18
  1285. package/dist/manager-RT733VRK.mjs +0 -14
  1286. package/dist/manager-XZ5TX7AO.cjs +0 -14
  1287. package/dist/nitro-7F65EZZS.cjs +0 -653
  1288. package/dist/nitro-MPZJGPXK.mjs +0 -653
  1289. package/dist/node-module-bundle-L5L7JCZ4.mjs +0 -11
  1290. package/dist/node-module-bundle-VAFZOXMJ.cjs +0 -11
  1291. package/dist/schema-dev-notice-O67CPXJ6.mjs +0 -56
  1292. package/dist/schema-dev-notice-Y7MQEFGN.cjs +0 -56
  1293. package/dist/search-client-G3RICOFU.cjs +0 -13
  1294. package/dist/search-client-KR7YRIVR.mjs +0 -13
@@ -0,0 +1,2250 @@
1
+ import {
2
+ notifyClientObserver,
3
+ resolveClientRetryCount,
4
+ resolveClientRetryDelay
5
+ } from "./chunk-IAPTECEB.mjs";
6
+ import {
7
+ FarmClientDataCache,
8
+ getFarmClientDataCache,
9
+ normalizeFarmClientCacheKey
10
+ } from "./chunk-C64XOPBZ.mjs";
11
+ import {
12
+ createClientCancellation
13
+ } from "./chunk-H227LYHT.mjs";
14
+ import {
15
+ resolveAPIRequestRuntime
16
+ } from "./chunk-5Y4GYKKH.mjs";
17
+ import {
18
+ isFarmAPIStream,
19
+ isJSONStreamResponse,
20
+ readJSONStream
21
+ } from "./chunk-YT3SLLZK.mjs";
22
+ import {
23
+ matchAPIRoute,
24
+ parseDynamicSegment
25
+ } from "./chunk-GUZC226X.mjs";
26
+ import {
27
+ getFarmAPIBaseURL,
28
+ resolveFarmAPIRequestURL
29
+ } from "./chunk-W6QLRQ3V.mjs";
30
+ import {
31
+ FARM_CACHE_INVALIDATION_HEADER,
32
+ applyFarmCacheInvalidations,
33
+ decodeFarmCacheInvalidations
34
+ } from "./chunk-AZQXXXDX.mjs";
35
+ import {
36
+ _resolveCurrentRequest
37
+ } from "./chunk-VIXTAVEA.mjs";
38
+
39
+ // src/client-headers.ts
40
+ function resolveClientHeaders(source) {
41
+ const value = typeof source === "function" ? source() : source;
42
+ if (value && typeof value.then === "function") {
43
+ return Promise.resolve(value).then((headers) => new Headers(headers));
44
+ }
45
+ return new Headers(value);
46
+ }
47
+
48
+ // src/integration-client.ts
49
+ var IntegrationClientError = class extends Error {
50
+ constructor(message, response, data) {
51
+ super(message);
52
+ this.name = "IntegrationClientError";
53
+ this.status = response.status;
54
+ this.response = response;
55
+ this.data = data;
56
+ }
57
+ };
58
+ var INTEGRATION_RUNTIME_REGISTRY_KEY = /* @__PURE__ */ Symbol.for("farm.integrationRuntimeRegistry");
59
+ var CURRENT_REQUEST_RESOLVER_KEY = /* @__PURE__ */ Symbol.for("farm.currentRequestResolver");
60
+ var INTEGRATION_REQUEST_DISPATCHER_KEY = /* @__PURE__ */ Symbol.for("farm.integrationRequestDispatcher");
61
+ function isOperation(value) {
62
+ return !!value && typeof value === "object" && value.kind === "farm-integration-api-operation";
63
+ }
64
+ function tryResolveSourceAPI(source) {
65
+ if ("kind" in source && source.kind === "farm-integration") {
66
+ if (!source.api) {
67
+ return null;
68
+ }
69
+ return source.api;
70
+ }
71
+ return source;
72
+ }
73
+ function getIntegrationRuntimeRegistry() {
74
+ const globalState = globalThis;
75
+ return globalState[INTEGRATION_RUNTIME_REGISTRY_KEY] || /* @__PURE__ */ new Map();
76
+ }
77
+ function getRegisteredIntegrationRuntimeLocal(key) {
78
+ return getIntegrationRuntimeRegistry().get(key);
79
+ }
80
+ function getRegisteredIntegrationsLocal() {
81
+ return Object.fromEntries(
82
+ Array.from(getIntegrationRuntimeRegistry().entries()).map(([key, runtime]) => [
83
+ key,
84
+ runtime.integration
85
+ ])
86
+ );
87
+ }
88
+ function resolveCurrentRequestLocal() {
89
+ const globalState = globalThis;
90
+ return globalState[CURRENT_REQUEST_RESOLVER_KEY]?.();
91
+ }
92
+ function resolveIntegrationRequestDispatcherLocal() {
93
+ const globalState = globalThis;
94
+ return globalState[INTEGRATION_REQUEST_DISPATCHER_KEY];
95
+ }
96
+ var INTEGRATION_DATA_HEADER = "x-farm-integration-data";
97
+ var INTEGRATION_DATA_HEADER_MAX_LENGTH = 16 * 1024;
98
+ var BLOCKED_INTEGRATION_DATA_KEYS = /* @__PURE__ */ new Set(["__proto__", "constructor", "prototype"]);
99
+ function isIntegrationClientData(value) {
100
+ return !!value && typeof value === "object" && !Array.isArray(value);
101
+ }
102
+ function isPlainIntegrationDataObject(value) {
103
+ if (!isIntegrationClientData(value)) {
104
+ return false;
105
+ }
106
+ const prototype = Object.getPrototypeOf(value);
107
+ return prototype === Object.prototype || prototype === null;
108
+ }
109
+ function sanitizeIntegrationClientDataValue(value) {
110
+ if (Array.isArray(value)) {
111
+ return value.map((item) => sanitizeIntegrationClientDataValue(item));
112
+ }
113
+ if (!isPlainIntegrationDataObject(value)) {
114
+ return value;
115
+ }
116
+ const sanitized = {};
117
+ for (const [key, item] of Object.entries(value)) {
118
+ if (BLOCKED_INTEGRATION_DATA_KEYS.has(key)) {
119
+ continue;
120
+ }
121
+ sanitized[key] = sanitizeIntegrationClientDataValue(item);
122
+ }
123
+ return sanitized;
124
+ }
125
+ function normalizeIntegrationClientData(value) {
126
+ if (!isIntegrationClientData(value)) {
127
+ return void 0;
128
+ }
129
+ const sanitized = sanitizeIntegrationClientDataValue(value);
130
+ return isIntegrationClientData(sanitized) && Object.keys(sanitized).length > 0 ? sanitized : void 0;
131
+ }
132
+ function getIntegrationDataHeaderByteLength(value) {
133
+ return new TextEncoder().encode(value).byteLength;
134
+ }
135
+ function mergeIntegrationClientData(...values) {
136
+ let merged;
137
+ for (const value of values) {
138
+ const data = normalizeIntegrationClientData(value);
139
+ if (!data) {
140
+ continue;
141
+ }
142
+ merged = {
143
+ ...merged,
144
+ ...data
145
+ };
146
+ }
147
+ return merged && Object.keys(merged).length > 0 ? merged : void 0;
148
+ }
149
+ function serializeIntegrationClientData(data) {
150
+ const serialized = JSON.stringify(data);
151
+ if (getIntegrationDataHeaderByteLength(serialized) > INTEGRATION_DATA_HEADER_MAX_LENGTH) {
152
+ throw new Error(
153
+ `Integration client data must be smaller than ${INTEGRATION_DATA_HEADER_MAX_LENGTH} bytes when sent over HTTP headers.`
154
+ );
155
+ }
156
+ return serialized;
157
+ }
158
+ function appendIntegrationClientDataHeader(headers, data) {
159
+ if (!data) {
160
+ return;
161
+ }
162
+ headers.set(INTEGRATION_DATA_HEADER, serializeIntegrationClientData(data));
163
+ }
164
+ function resolveAutomaticClientNamespaces() {
165
+ const globalState = globalThis;
166
+ const manifest = globalState.window?.__FARM_INTEGRATION_API_MANIFEST__ || globalState.__FARM_INTEGRATION_API_MANIFEST__ || {};
167
+ return Object.entries(manifest).map(([key, api]) => [key, api, api]);
168
+ }
169
+ function resolveAutomaticServerNamespaces() {
170
+ return Object.entries(getRegisteredIntegrationsLocal()).flatMap(([key, source]) => {
171
+ const api = tryResolveSourceAPI(source);
172
+ return api ? [[key, api, source]] : [];
173
+ });
174
+ }
175
+ function appendQuery(url, query) {
176
+ if (!query) {
177
+ return;
178
+ }
179
+ for (const [key, value] of Object.entries(query)) {
180
+ if (value == null) {
181
+ continue;
182
+ }
183
+ if (Array.isArray(value)) {
184
+ for (const item of value) {
185
+ if (item != null) {
186
+ url.searchParams.append(key, String(item));
187
+ }
188
+ }
189
+ continue;
190
+ }
191
+ url.searchParams.set(key, String(value));
192
+ }
193
+ }
194
+ function appendHeaders(target, source) {
195
+ if (!source) {
196
+ return;
197
+ }
198
+ const headers = new Headers(source);
199
+ headers.forEach((value, key) => {
200
+ target.set(key, value);
201
+ });
202
+ }
203
+ var DEFAULT_FORWARDED_HEADERS = [
204
+ "authorization",
205
+ "cookie",
206
+ "x-client-ip",
207
+ "x-forwarded-for",
208
+ "x-forwarded-host",
209
+ "x-forwarded-proto",
210
+ "x-real-ip"
211
+ ];
212
+ function resolveRequestLike(request) {
213
+ if (!request) {
214
+ return void 0;
215
+ }
216
+ if (request instanceof Request) {
217
+ return {
218
+ url: request.url,
219
+ headers: request.headers
220
+ };
221
+ }
222
+ return {
223
+ url: request.url,
224
+ headers: request.headers ? new Headers(request.headers) : void 0
225
+ };
226
+ }
227
+ function resolveServerBaseURL(explicitBaseURL, request) {
228
+ if (explicitBaseURL) {
229
+ return explicitBaseURL;
230
+ }
231
+ if (request?.url) {
232
+ try {
233
+ return new URL(request.url).origin;
234
+ } catch {
235
+ }
236
+ }
237
+ const headers = request?.headers;
238
+ const host = headers?.get("x-forwarded-host") || headers?.get("host");
239
+ if (host) {
240
+ const proto = headers?.get("x-forwarded-proto") || "http";
241
+ return `${proto}://${host}`;
242
+ }
243
+ return "http://localhost:3000";
244
+ }
245
+ function resolveForwardHeaders(request, forwardHeaders) {
246
+ if (!request?.headers || forwardHeaders === false) {
247
+ return new Headers();
248
+ }
249
+ const allowed = Array.isArray(forwardHeaders) && forwardHeaders.length > 0 ? new Set(forwardHeaders.map((item) => item.toLowerCase())) : new Set(DEFAULT_FORWARDED_HEADERS);
250
+ const headers = new Headers();
251
+ request.headers.forEach((value, key) => {
252
+ if (allowed.has(key.toLowerCase())) {
253
+ headers.set(key, value);
254
+ }
255
+ });
256
+ return headers;
257
+ }
258
+ function createBody(format, body, headers) {
259
+ if (body == null || format === "none") {
260
+ return void 0;
261
+ }
262
+ if (format === "form") {
263
+ if (body instanceof FormData || body instanceof URLSearchParams) {
264
+ return body;
265
+ }
266
+ const form = new URLSearchParams();
267
+ for (const [key, value] of Object.entries(body)) {
268
+ if (value == null) {
269
+ continue;
270
+ }
271
+ if (Array.isArray(value)) {
272
+ for (const item of value) {
273
+ if (item != null) {
274
+ form.append(key, String(item));
275
+ }
276
+ }
277
+ continue;
278
+ }
279
+ form.set(key, String(value));
280
+ }
281
+ headers.set("content-type", "application/x-www-form-urlencoded;charset=UTF-8");
282
+ return form;
283
+ }
284
+ headers.set("content-type", "application/json");
285
+ return JSON.stringify(body);
286
+ }
287
+ function createOperationBody(operation, body, headers) {
288
+ const requestBody = createBody(operation.bodyFormat, body, headers);
289
+ if (operation.method === "QUERY" && requestBody === void 0 && !headers.has("content-type")) {
290
+ headers.set(
291
+ "content-type",
292
+ operation.bodyFormat === "form" ? "application/x-www-form-urlencoded;charset=UTF-8" : "application/json"
293
+ );
294
+ }
295
+ return requestBody;
296
+ }
297
+ async function parseResponseData(response) {
298
+ if (response.status === 204 || response.status === 205) {
299
+ return void 0;
300
+ }
301
+ const contentType = response.headers.get("content-type") || "";
302
+ if (isJSONMediaType(contentType)) {
303
+ return await response.json();
304
+ }
305
+ return await response.text();
306
+ }
307
+ function isJSONMediaType(contentType) {
308
+ const mediaType = contentType.split(";", 1)[0].trim().toLowerCase();
309
+ return mediaType === "application/json" || mediaType.endsWith("+json");
310
+ }
311
+ async function safeParseResponseData(response) {
312
+ try {
313
+ return await parseResponseData(response);
314
+ } catch {
315
+ return void 0;
316
+ }
317
+ }
318
+ function createResponseError(response, errorData) {
319
+ const message = typeof errorData === "string" ? errorData : typeof errorData === "object" && errorData ? String(
320
+ errorData.error || errorData.message || response.statusText
321
+ ) : response.statusText || "Integration request failed.";
322
+ return new IntegrationClientError(message, response, errorData);
323
+ }
324
+ function normalizeExecutionError(error) {
325
+ if (error instanceof Error) {
326
+ return error;
327
+ }
328
+ if (typeof error === "string" && error.length > 0) {
329
+ return new Error(error);
330
+ }
331
+ return new Error("Integration request failed.");
332
+ }
333
+ async function finalizeOperationResponse(operation, response) {
334
+ if (!response.ok) {
335
+ const errorData = await safeParseResponseData(response);
336
+ return {
337
+ data: null,
338
+ error: createResponseError(response, errorData)
339
+ };
340
+ }
341
+ if (operation.responseFormat === "response") {
342
+ return {
343
+ data: response,
344
+ error: null
345
+ };
346
+ }
347
+ return {
348
+ data: await parseResponseData(response),
349
+ error: null
350
+ };
351
+ }
352
+ var integrationRequestCounter = 0;
353
+ var noIntegrationObservers = {
354
+ response(_response) {
355
+ },
356
+ finish(result) {
357
+ return result;
358
+ }
359
+ };
360
+ function createIntegrationObservers(operation, options, requestOptions) {
361
+ if (!options.onRequest && !options.onResponse && !options.onError && !requestOptions?.onRequest && !requestOptions?.onResponse && !requestOptions?.onError) {
362
+ return noIntegrationObservers;
363
+ }
364
+ const requestEvent = {
365
+ requestId: `integration-${Date.now()}-${++integrationRequestCounter}`,
366
+ method: operation.method,
367
+ path: operation.path ?? "",
368
+ attempt: 0,
369
+ timestamp: Date.now()
370
+ };
371
+ let response;
372
+ notifyClientObserver(options.onRequest, [requestEvent]);
373
+ notifyClientObserver(requestOptions?.onRequest, [requestEvent]);
374
+ return {
375
+ response(value) {
376
+ response = value;
377
+ },
378
+ finish(result) {
379
+ const data = result.error ? void 0 : result.data;
380
+ const event = {
381
+ ...requestEvent,
382
+ timestamp: Date.now(),
383
+ response,
384
+ data,
385
+ error: result.error ?? void 0,
386
+ ok: !result.error,
387
+ status: response?.status
388
+ };
389
+ notifyClientObserver(options.onResponse, [data, result.error, event]);
390
+ notifyClientObserver(requestOptions?.onResponse, [data, result.error, event]);
391
+ if (result.error) {
392
+ notifyClientObserver(options.onError, [result.error]);
393
+ notifyClientObserver(requestOptions?.onError, [result.error]);
394
+ }
395
+ return result;
396
+ }
397
+ };
398
+ }
399
+ async function executeClientOperation(operation, input, options, requestOptions) {
400
+ const cancellation = createClientCancellation(
401
+ requestOptions?.signal,
402
+ requestOptions?.timeoutMs ?? options.timeoutMs
403
+ );
404
+ const observers = createIntegrationObservers(operation, options, requestOptions);
405
+ try {
406
+ const result = await cancellation.run(async () => {
407
+ if (!operation.path) {
408
+ return {
409
+ data: null,
410
+ error: new Error(
411
+ "Integration API operation path is missing. Pass a path to api.get/post/... or wrap pathless methods with api.route(path, { ... })."
412
+ )
413
+ };
414
+ }
415
+ const baseURL = options.baseURL || (typeof window !== "undefined" ? window.location.origin : "http://localhost:3000");
416
+ const url = resolveFarmAPIRequestURL(operation.path, baseURL);
417
+ appendQuery(url, input.query);
418
+ const resolved = resolveClientHeaders(options.headers);
419
+ const headers = resolved instanceof Headers ? resolved : await resolved;
420
+ cancellation.check();
421
+ appendHeaders(headers, operation.headers);
422
+ appendHeaders(headers, requestOptions?.headers);
423
+ headers.set("x-farm-integration-client", "1");
424
+ if (operation.responseFormat !== "response") {
425
+ headers.set("accept", "application/json");
426
+ }
427
+ appendIntegrationClientDataHeader(
428
+ headers,
429
+ mergeIntegrationClientData(options.data, requestOptions?.data)
430
+ );
431
+ const body = createOperationBody(operation, input.body, headers);
432
+ const response = await (options.fetch ?? fetch)(url.toString(), {
433
+ method: operation.method,
434
+ headers,
435
+ body,
436
+ credentials: requestOptions?.credentials ?? operation.credentials ?? options.credentials ?? "include",
437
+ signal: cancellation.signal
438
+ });
439
+ cancellation.check();
440
+ observers.response(response);
441
+ if (!response.ok) {
442
+ const errorData = await safeParseResponseData(response);
443
+ return {
444
+ data: null,
445
+ error: createResponseError(response, errorData)
446
+ };
447
+ }
448
+ if (operation.responseFormat === "response") {
449
+ return {
450
+ data: response,
451
+ error: null
452
+ };
453
+ }
454
+ return {
455
+ data: await parseResponseData(response),
456
+ error: null
457
+ };
458
+ });
459
+ return observers.finish(result);
460
+ } catch (error) {
461
+ return observers.finish({
462
+ data: null,
463
+ error: normalizeExecutionError(error)
464
+ });
465
+ } finally {
466
+ cancellation.dispose();
467
+ }
468
+ }
469
+ async function executeServerOperation(operation, input, options, requestOptions, integrationKey, source) {
470
+ const currentRequest = requestOptions?.request instanceof Request ? requestOptions.request : options.request instanceof Request ? options.request : resolveCurrentRequestLocal();
471
+ const cancellation = createClientCancellation(
472
+ requestOptions?.signal,
473
+ requestOptions?.timeoutMs ?? options.timeoutMs,
474
+ currentRequest?.signal
475
+ );
476
+ const observers = createIntegrationObservers(operation, options, requestOptions);
477
+ try {
478
+ const result = await cancellation.run(async () => {
479
+ if (!operation.path) {
480
+ return {
481
+ data: null,
482
+ error: new Error(
483
+ "Integration API operation path is missing. Pass a path to api.get/post/... or wrap pathless methods with api.route(path, { ... })."
484
+ )
485
+ };
486
+ }
487
+ const serverRequestOptions = requestOptions && ("request" in requestOptions || "baseURL" in requestOptions || "forwardHeaders" in requestOptions) ? requestOptions : void 0;
488
+ const request = resolveRequestLike(
489
+ serverRequestOptions?.request ?? options.request ?? currentRequest
490
+ );
491
+ const baseURL = resolveServerBaseURL(
492
+ serverRequestOptions?.baseURL ?? options.baseURL,
493
+ request
494
+ );
495
+ const origin = resolveServerBaseURL(void 0, request);
496
+ const url = new URL(operation.path, new URL(baseURL, origin));
497
+ appendQuery(url, input.query);
498
+ const headers = new Headers();
499
+ appendHeaders(
500
+ headers,
501
+ resolveForwardHeaders(
502
+ request,
503
+ serverRequestOptions?.forwardHeaders ?? options.forwardHeaders
504
+ )
505
+ );
506
+ const resolved = resolveClientHeaders(options.headers);
507
+ appendHeaders(headers, resolved instanceof Headers ? resolved : await resolved);
508
+ cancellation.check();
509
+ appendHeaders(headers, operation.headers);
510
+ appendHeaders(headers, requestOptions?.headers);
511
+ headers.set("x-farm-integration-client", "1");
512
+ if (operation.responseFormat !== "response") {
513
+ headers.set("accept", "application/json");
514
+ }
515
+ const data = mergeIntegrationClientData(options.data, requestOptions?.data);
516
+ if (integrationKey) {
517
+ const runtime = "kind" in (source || {}) && source.kind === "farm-integration" ? getRegisteredIntegrationRuntimeLocal(integrationKey) || {
518
+ integration: source,
519
+ config: {},
520
+ isDev: process.env.NODE_ENV !== "production",
521
+ isProd: process.env.NODE_ENV === "production"
522
+ } : getRegisteredIntegrationRuntimeLocal(integrationKey);
523
+ if (runtime) {
524
+ const dispatchIntegrationRequest = resolveIntegrationRequestDispatcherLocal();
525
+ const body2 = createOperationBody(operation, input.body, headers);
526
+ const directResponse = dispatchIntegrationRequest ? await dispatchIntegrationRequest(
527
+ runtime,
528
+ new Request(url.toString(), {
529
+ method: operation.method,
530
+ headers,
531
+ body: body2,
532
+ signal: cancellation.signal
533
+ }),
534
+ {
535
+ currentRequest,
536
+ data,
537
+ internal: true
538
+ }
539
+ ) : null;
540
+ cancellation.check();
541
+ if (directResponse) {
542
+ observers.response(directResponse);
543
+ return await finalizeOperationResponse(operation, directResponse);
544
+ }
545
+ }
546
+ }
547
+ appendIntegrationClientDataHeader(headers, data);
548
+ const body = createOperationBody(operation, input.body, headers);
549
+ const httpURL = resolveFarmAPIRequestURL(operation.path, baseURL, origin);
550
+ appendQuery(httpURL, input.query);
551
+ const response = await (options.fetch ?? fetch)(httpURL.toString(), {
552
+ method: operation.method,
553
+ headers,
554
+ body,
555
+ credentials: requestOptions?.credentials ?? operation.credentials ?? options.credentials ?? "include",
556
+ signal: cancellation.signal
557
+ });
558
+ cancellation.check();
559
+ observers.response(response);
560
+ return await finalizeOperationResponse(operation, response);
561
+ });
562
+ return observers.finish(result);
563
+ } catch (error) {
564
+ return observers.finish({
565
+ data: null,
566
+ error: normalizeExecutionError(error)
567
+ });
568
+ } finally {
569
+ cancellation.dispose();
570
+ }
571
+ }
572
+ function createIntegrationClient(sources, options = {}) {
573
+ const rawSources = "integrations" in sources ? sources.integrations : sources;
574
+ const isServer = options.isServer === true;
575
+ const namespaces = Object.entries(rawSources).map(([key, source]) => {
576
+ const api = tryResolveSourceAPI(source);
577
+ if (!api) {
578
+ return null;
579
+ }
580
+ return [key, api, source];
581
+ }).filter(
582
+ (value) => value !== null
583
+ );
584
+ const cache = /* @__PURE__ */ new Map();
585
+ const integrationNamespaces = new Proxy(
586
+ {},
587
+ {
588
+ get(target, property) {
589
+ if (typeof property !== "string") {
590
+ return void 0;
591
+ }
592
+ if (Reflect.has(target, property)) {
593
+ return Reflect.get(target, property);
594
+ }
595
+ if (cache.has(property)) {
596
+ return cache.get(property);
597
+ }
598
+ const match = namespaces.find(([key]) => key === property);
599
+ if (!match) {
600
+ return void 0;
601
+ }
602
+ const namespace = isServer ? createServerNamespaceProxy(
603
+ match[0],
604
+ match[2],
605
+ match[1],
606
+ options
607
+ ) : createNamespaceProxy(match[1], options);
608
+ cache.set(property, namespace);
609
+ return namespace;
610
+ }
611
+ }
612
+ );
613
+ if ("integrations" in sources) {
614
+ Object.defineProperty(integrationNamespaces, "integrations", {
615
+ value: integrationNamespaces,
616
+ enumerable: false,
617
+ configurable: false,
618
+ writable: false
619
+ });
620
+ return integrationNamespaces;
621
+ }
622
+ return integrationNamespaces;
623
+ }
624
+ function createAutomaticIntegrationAliases(isServer, options = {}) {
625
+ const cache = isServer ? /* @__PURE__ */ new Map() : null;
626
+ const integrationNamespaces = new Proxy(
627
+ {},
628
+ {
629
+ get(_target, property) {
630
+ if (typeof property !== "string") {
631
+ return void 0;
632
+ }
633
+ if (property === "integrations") {
634
+ return integrationNamespaces;
635
+ }
636
+ if (cache?.has(property)) {
637
+ return cache.get(property);
638
+ }
639
+ const namespaces = isServer ? resolveAutomaticServerNamespaces() : resolveAutomaticClientNamespaces();
640
+ const match = namespaces.find(([key]) => key === property);
641
+ if (!match) {
642
+ return void 0;
643
+ }
644
+ const namespace = isServer ? createServerNamespaceProxy(
645
+ match[0],
646
+ match[2],
647
+ match[1],
648
+ options
649
+ ) : createNamespaceProxy(match[1], options);
650
+ cache?.set(property, namespace);
651
+ return namespace;
652
+ }
653
+ }
654
+ );
655
+ Object.defineProperty(integrationNamespaces, "integrations", {
656
+ value: integrationNamespaces,
657
+ enumerable: false,
658
+ configurable: false,
659
+ writable: false
660
+ });
661
+ return integrationNamespaces;
662
+ }
663
+ function integrationsClient(options = {}) {
664
+ return createAutomaticIntegrationAliases(
665
+ false,
666
+ options
667
+ );
668
+ }
669
+ function integrationsServer(options = {}) {
670
+ return createAutomaticIntegrationAliases(true, {
671
+ ...options,
672
+ isServer: true
673
+ });
674
+ }
675
+ function createIntegrationServerClient(sources, options = {}) {
676
+ return createIntegrationClient(sources, {
677
+ ...options,
678
+ isServer: true
679
+ });
680
+ }
681
+ function createIntegrationApi(sources, options = {}) {
682
+ const client = createIntegrationClient(sources, options);
683
+ return {
684
+ ...client,
685
+ server(serverOptions = {}) {
686
+ return createIntegrationServerClient(sources, {
687
+ ...options,
688
+ ...serverOptions
689
+ });
690
+ }
691
+ };
692
+ }
693
+ function isIntegrationClientOptionsInput(value) {
694
+ return !!value && typeof value === "object" && !Array.isArray(value) && ("baseURL" in value || "headers" in value || "credentials" in value || "timeoutMs" in value || "fetch" in value || "onRequest" in value || "onResponse" in value || "onError" in value || "data" in value || "isServer" in value);
695
+ }
696
+ function resolveIntegrationServerOptions(clientOptions = {}, serverOptions = {}) {
697
+ const data = mergeIntegrationClientData(clientOptions.data, serverOptions.data);
698
+ return {
699
+ baseURL: clientOptions.baseURL,
700
+ headers: clientOptions.headers,
701
+ credentials: clientOptions.credentials,
702
+ timeoutMs: clientOptions.timeoutMs,
703
+ fetch: clientOptions.fetch,
704
+ onRequest: clientOptions.onRequest,
705
+ onResponse: clientOptions.onResponse,
706
+ onError: clientOptions.onError,
707
+ ...serverOptions,
708
+ ...data ? { data } : {}
709
+ };
710
+ }
711
+ function createIntegrationClients(sources, clientOptions, serverOptions) {
712
+ if (arguments.length === 0 || isIntegrationClientOptionsInput(sources)) {
713
+ const automaticClientOptions = isIntegrationClientOptionsInput(sources) ? sources : {};
714
+ const automaticServerOptions = arguments.length > 1 ? clientOptions : void 0;
715
+ return {
716
+ api: integrationsServer(
717
+ resolveIntegrationServerOptions(
718
+ automaticClientOptions,
719
+ automaticServerOptions
720
+ )
721
+ ),
722
+ apiClient: integrationsClient(automaticClientOptions)
723
+ };
724
+ }
725
+ const explicitSources = sources && "integrations" in sources ? sources.integrations : sources;
726
+ return {
727
+ api: createIntegrationServerClient(
728
+ {
729
+ integrations: explicitSources
730
+ },
731
+ resolveIntegrationServerOptions(clientOptions, serverOptions)
732
+ ),
733
+ apiClient: createIntegrationClient(
734
+ {
735
+ integrations: explicitSources
736
+ },
737
+ clientOptions
738
+ )
739
+ };
740
+ }
741
+ function createIntegrations(sources, clientOptions, serverOptions) {
742
+ if (arguments.length === 0) {
743
+ return createIntegrationClients();
744
+ }
745
+ return createIntegrationClients(
746
+ sources,
747
+ clientOptions,
748
+ serverOptions
749
+ );
750
+ }
751
+ function createClientSafeIntegrationAPI(api) {
752
+ if (!api) {
753
+ return void 0;
754
+ }
755
+ const entries = Object.entries(api).map(([key, value]) => {
756
+ if (isOperation(value)) {
757
+ return [
758
+ key,
759
+ {
760
+ kind: value.kind,
761
+ path: value.path,
762
+ method: value.method,
763
+ bodyFormat: value.bodyFormat,
764
+ responseFormat: value.responseFormat,
765
+ credentials: value.credentials,
766
+ isServer: value.isServer,
767
+ __pathless: value.__pathless
768
+ }
769
+ ];
770
+ }
771
+ if (value && typeof value === "object") {
772
+ return [key, createClientSafeIntegrationAPI(value)];
773
+ }
774
+ return [key, value];
775
+ });
776
+ return Object.fromEntries(entries);
777
+ }
778
+ function getIntegrationAPIManifest() {
779
+ const manifestEntries = Object.entries(getRegisteredIntegrationsLocal()).map(([key, integration]) => {
780
+ const api = createClientSafeIntegrationAPI(integration.api);
781
+ return api ? [key, api] : null;
782
+ }).filter((value) => value !== null);
783
+ return Object.fromEntries(manifestEntries);
784
+ }
785
+ function integrationClients(sources, clientOptions, serverOptions) {
786
+ if (arguments.length === 0) {
787
+ return createIntegrationClients();
788
+ }
789
+ return createIntegrationClients(
790
+ sources,
791
+ clientOptions,
792
+ serverOptions
793
+ );
794
+ }
795
+ function resolveSingleNamespaceOperation(api) {
796
+ const entries = Object.entries(api);
797
+ if (entries.length !== 1) {
798
+ return null;
799
+ }
800
+ const [, value] = entries[0];
801
+ return isOperation(value) ? value : null;
802
+ }
803
+ function createClientOperationCaller(operation, property, options) {
804
+ if (operation.isServer === true) {
805
+ return async () => {
806
+ throw new Error(
807
+ `Integration method "${property}" is registered with isServer: true and is only available from a server integration client.`
808
+ );
809
+ };
810
+ }
811
+ return async (input = {}, requestOptions) => {
812
+ if (typeof window === "undefined") {
813
+ throw new Error(
814
+ "Client integration API cannot be called on the server. Pass { isServer: true } to createIntegrationClient(...) during server rendering, or provide { isServer: true, request } outside it."
815
+ );
816
+ }
817
+ return executeClientOperation(operation, input, options, requestOptions);
818
+ };
819
+ }
820
+ function createServerOperationCaller(operation, options, integrationKey, source) {
821
+ return async (input = {}, requestOptions) => {
822
+ if (typeof window !== "undefined") {
823
+ throw new Error(
824
+ "Server integration API cannot be called in the browser. Remove { isServer: true } and create a client integration API instead."
825
+ );
826
+ }
827
+ return executeServerOperation(
828
+ operation,
829
+ input,
830
+ options,
831
+ requestOptions,
832
+ integrationKey,
833
+ source
834
+ );
835
+ };
836
+ }
837
+ function createNamespaceProxy(api, options) {
838
+ const cache = /* @__PURE__ */ new Map();
839
+ const directOperation = resolveSingleNamespaceOperation(api);
840
+ const target = directOperation ? createClientOperationCaller(directOperation, directOperation.method.toLowerCase(), options) : {};
841
+ return new Proxy(target, {
842
+ get(targetObject, property, receiver) {
843
+ if (typeof property !== "string") {
844
+ return Reflect.get(targetObject, property, receiver);
845
+ }
846
+ if (cache.has(property)) {
847
+ return cache.get(property);
848
+ }
849
+ const value = api[property];
850
+ if (!value) {
851
+ return Reflect.get(targetObject, property, receiver);
852
+ }
853
+ if (isOperation(value)) {
854
+ const caller = createClientOperationCaller(value, property, options);
855
+ cache.set(property, caller);
856
+ return caller;
857
+ }
858
+ const namespace = createNamespaceProxy(value, options);
859
+ cache.set(property, namespace);
860
+ return namespace;
861
+ }
862
+ });
863
+ }
864
+ function createServerNamespaceProxy(integrationKey, source, api, options) {
865
+ const cache = /* @__PURE__ */ new Map();
866
+ const directOperation = resolveSingleNamespaceOperation(api);
867
+ const target = directOperation ? createServerOperationCaller(directOperation, options, integrationKey, source) : {};
868
+ return new Proxy(target, {
869
+ get(targetObject, property, receiver) {
870
+ if (typeof property !== "string") {
871
+ return Reflect.get(targetObject, property, receiver);
872
+ }
873
+ if (cache.has(property)) {
874
+ return cache.get(property);
875
+ }
876
+ const value = api[property];
877
+ if (!value) {
878
+ return Reflect.get(targetObject, property, receiver);
879
+ }
880
+ if (isOperation(value)) {
881
+ const caller = createServerOperationCaller(value, options, integrationKey, source);
882
+ cache.set(property, caller);
883
+ return caller;
884
+ }
885
+ const namespace = createServerNamespaceProxy(
886
+ integrationKey,
887
+ source,
888
+ value,
889
+ options
890
+ );
891
+ cache.set(property, namespace);
892
+ return namespace;
893
+ }
894
+ });
895
+ }
896
+
897
+ // src/api/client-routes.ts
898
+ var ClientRouteManifest = class {
899
+ constructor(routes) {
900
+ this.candidates = /* @__PURE__ */ new Map();
901
+ this.nextSegments = /* @__PURE__ */ new Map();
902
+ this.routes = new Map(
903
+ routes.map((route) => [
904
+ route.path.replace(/\/$/, ""),
905
+ {
906
+ path: route.path.replace(/\/$/, ""),
907
+ methods: [...route.methods]
908
+ }
909
+ ])
910
+ );
911
+ const addCandidate = (path, route) => {
912
+ let candidates = this.candidates.get(path);
913
+ if (!candidates) this.candidates.set(path, candidates = []);
914
+ candidates.push(route);
915
+ };
916
+ for (const route of this.routes.values()) {
917
+ addCandidate(route.path, route);
918
+ const segments = route.path.split("/");
919
+ let parent = "";
920
+ for (let i = 0; i < segments.length; i++) {
921
+ const segment = segments[i];
922
+ if (i > 0 && parseDynamicSegment(segment)) {
923
+ let next = this.nextSegments.get(parent);
924
+ if (!next) this.nextSegments.set(parent, next = /* @__PURE__ */ new Set());
925
+ next.add(segment);
926
+ if (i === segments.length - 1) addCandidate(parent, route);
927
+ }
928
+ parent = i === 0 ? segment : `${parent}/${segment}`;
929
+ }
930
+ }
931
+ }
932
+ bind(path, input) {
933
+ const params = readParams(input);
934
+ const normalized = path.replace(/\/$/, "");
935
+ const candidates = new Set(
936
+ [...this.nextSegments.get(normalized) ?? []].filter((segment2) => {
937
+ const dynamic2 = parseDynamicSegment(segment2);
938
+ return dynamic2 && Object.keys(params).every((key) => key === dynamic2.name) && (Object.prototype.hasOwnProperty.call(params, dynamic2.name) || dynamic2.optional);
939
+ })
940
+ );
941
+ if (candidates.size !== 1)
942
+ throw new TypeError(
943
+ `Cannot bind route params at ${path}: supply exactly the next dynamic segment's parameter.`
944
+ );
945
+ const segment = [...candidates][0];
946
+ const dynamic = parseDynamicSegment(segment);
947
+ encodeParameter(dynamic, params[dynamic.name]);
948
+ return {
949
+ segment,
950
+ params: Object.freeze(
951
+ Object.fromEntries(
952
+ Object.entries(params).map(([key, value]) => [
953
+ key,
954
+ Array.isArray(value) ? Object.freeze([...value]) : value
955
+ ])
956
+ )
957
+ )
958
+ };
959
+ }
960
+ resolve(path, method, bound, input) {
961
+ const normalized = path.replace(/\/$/, "");
962
+ const supplied = readParams(input?.params);
963
+ const candidates = (this.candidates.get(normalized) ?? []).filter((route2) => {
964
+ if (route2.path === normalized) return true;
965
+ if (!route2.path.startsWith(`${normalized}/`)) return false;
966
+ const tail = route2.path.slice(normalized.length + 1);
967
+ return !tail.includes("/") && Boolean(parseDynamicSegment(tail)) && input?.params !== void 0;
968
+ });
969
+ const selected = candidates.filter((route2) => {
970
+ const unbound = route2.path.split("/").map(parseDynamicSegment).filter((part) => part && !Object.prototype.hasOwnProperty.call(bound, part.name));
971
+ return Object.keys(supplied).every((key) => unbound.some((part) => part.name === key)) && unbound.every(
972
+ (part) => part.optional || Object.prototype.hasOwnProperty.call(supplied, part.name)
973
+ );
974
+ });
975
+ if (selected.length !== 1)
976
+ throw new TypeError(
977
+ `Cannot resolve ${method} ${normalized}: missing, unexpected, or ambiguous route params.`
978
+ );
979
+ const route = selected[0];
980
+ if (!route.methods.includes(method) && !(method === "HEAD" && route.methods.includes("GET"))) {
981
+ throw new TypeError(`${method} is not registered for ${route.path}.`);
982
+ }
983
+ const params = { ...bound, ...supplied };
984
+ const resolved = route.path.split("/").map((segment) => {
985
+ const dynamic = parseDynamicSegment(segment);
986
+ return dynamic ? encodeParameter(dynamic, params[dynamic.name]) : segment;
987
+ }).filter(Boolean).join("/");
988
+ const pathname = `/${resolved}`;
989
+ const winner = matchAPIRoute(this.routes, pathname);
990
+ if (winner?.route.path !== route.path) {
991
+ throw new TypeError(
992
+ `Route ${route.path} resolves to ${pathname}, which is shadowed by ${winner?.route.path ?? "another route"}.`
993
+ );
994
+ }
995
+ return pathname;
996
+ }
997
+ };
998
+ function readParams(input) {
999
+ if (input === void 0) return {};
1000
+ if (!input || typeof input !== "object" || Array.isArray(input) || ![Object.prototype, null].includes(Object.getPrototypeOf(input))) {
1001
+ throw new TypeError("Route params must be a plain object.");
1002
+ }
1003
+ for (const key of Object.keys(input)) {
1004
+ if (["__proto__", "constructor", "prototype"].includes(key))
1005
+ throw new TypeError(`Unsafe route parameter ${key}.`);
1006
+ }
1007
+ return input;
1008
+ }
1009
+ function encodeParameter(parameter, value) {
1010
+ if (parameter.optional && value === void 0) return "";
1011
+ const parts = parameter.catchAll ? value : [value];
1012
+ if (!Array.isArray(parts) || !parts.length && !parameter.optional) {
1013
+ throw new TypeError(
1014
+ `Route parameter ${parameter.name} must be ${parameter.catchAll ? "a non-empty array of strings" : "a string"}.`
1015
+ );
1016
+ }
1017
+ return Array.from(parts, (part) => {
1018
+ if (typeof part !== "string" || !part || part === "." || part === ".." || Array.from(part).some(
1019
+ (character) => character.charCodeAt(0) <= 31 || character.charCodeAt(0) >= 127 && character.charCodeAt(0) <= 159
1020
+ )) {
1021
+ throw new TypeError(`Invalid value for route parameter ${parameter.name}.`);
1022
+ }
1023
+ return encodeURIComponent(part);
1024
+ }).join("/");
1025
+ }
1026
+
1027
+ // src/api/client.ts
1028
+ var FARM_API_ROUTE_REF_SYMBOL = /* @__PURE__ */ Symbol.for("farm.api.route-ref");
1029
+ var FARM_API_ROUTE_META_SYMBOL = /* @__PURE__ */ Symbol.for("farm.api.route-meta");
1030
+ var APIClientError = class extends Error {
1031
+ constructor(code, data, options) {
1032
+ super(options.message);
1033
+ this.name = "APIClientError";
1034
+ this.code = code;
1035
+ this.data = data;
1036
+ this.status = options.status;
1037
+ this.response = options.response;
1038
+ }
1039
+ };
1040
+ var FARM_IDEMPOTENT_METHODS = /* @__PURE__ */ new Set(["GET", "HEAD", "OPTIONS", "PUT", "DELETE", "QUERY"]);
1041
+ var FARM_RETRYABLE_STATUSES = /* @__PURE__ */ new Set([408, 425, 429]);
1042
+ function isFarmRetryableFailure(context) {
1043
+ if (!FARM_IDEMPOTENT_METHODS.has(context.method)) return false;
1044
+ if (context.status === void 0) return true;
1045
+ return context.status >= 500 || FARM_RETRYABLE_STATUSES.has(context.status);
1046
+ }
1047
+ function createApiClients(options = {}) {
1048
+ const localScopes = /* @__PURE__ */ new WeakMap();
1049
+ const routeMeta = /* @__PURE__ */ new WeakMap();
1050
+ const api = createNestedProxy(
1051
+ [],
1052
+ async (path, method, input, clientOptions) => {
1053
+ if (typeof window !== "undefined") {
1054
+ throw new Error(
1055
+ "api is server-only. Use apiClient from createApiClients() in the browser."
1056
+ );
1057
+ }
1058
+ const currentRequest = _resolveCurrentRequest();
1059
+ const runtime = resolveAPIRequestRuntime();
1060
+ if (!currentRequest || !runtime) {
1061
+ throw new Error(
1062
+ "api requires an active Farm server request. Call it from a server page, query, action, or API handler; use apiClient with an absolute baseURL for standalone HTTP calls."
1063
+ );
1064
+ }
1065
+ let localClients = localScopes.get(runtime);
1066
+ if (!localClients) {
1067
+ localClients = /* @__PURE__ */ new WeakMap();
1068
+ localScopes.set(runtime, localClients);
1069
+ }
1070
+ let local = localClients.get(currentRequest);
1071
+ if (!local) {
1072
+ const origin = new URL(currentRequest.url).origin;
1073
+ const headers = new Headers();
1074
+ for (const name of ["cookie", "authorization", "accept-language"]) {
1075
+ const value = currentRequest.headers.get(name);
1076
+ if (value !== null) headers.set(name, value);
1077
+ }
1078
+ local = createAPIClientRuntime(
1079
+ {
1080
+ ...options,
1081
+ integrations: false,
1082
+ baseURL: new URL(runtime.basePath, origin).toString()
1083
+ },
1084
+ {
1085
+ headers,
1086
+ signal: currentRequest.signal,
1087
+ cache: new FarmClientDataCache({ subscribeToInvalidation: false }),
1088
+ routeMeta,
1089
+ fetch: (url, init) => {
1090
+ if (new URL(url).origin !== origin) {
1091
+ throw new Error(
1092
+ "api can only dispatch to this Farm app. Use apiClient for HTTP calls."
1093
+ );
1094
+ }
1095
+ currentRequest.signal.throwIfAborted();
1096
+ return runtime.dispatch(new Request(url, init));
1097
+ }
1098
+ }
1099
+ );
1100
+ localClients.set(currentRequest, local);
1101
+ }
1102
+ return local.request(path, method, input, clientOptions);
1103
+ },
1104
+ routeMeta,
1105
+ "/api",
1106
+ true,
1107
+ options.integrations === false ? void 0 : {
1108
+ integrations: integrationsServer({
1109
+ baseURL: options.baseURL,
1110
+ headers: options.headers,
1111
+ credentials: options.credentials,
1112
+ timeoutMs: options.timeoutMs,
1113
+ fetch: options.fetch,
1114
+ onRequest: options.onRequest,
1115
+ onResponse: options.onResponse,
1116
+ onError: options.onError,
1117
+ ...options.integrations
1118
+ })
1119
+ },
1120
+ options.routes ? new ClientRouteManifest(options.routes) : void 0
1121
+ );
1122
+ return {
1123
+ api,
1124
+ apiClient: createAPIClient(options)
1125
+ };
1126
+ }
1127
+ function createAPIClient(options = {}) {
1128
+ return createAPIClientRuntime(options).client;
1129
+ }
1130
+ function createAPIClientRuntime(options = {}, transport) {
1131
+ options ?? (options = {});
1132
+ const baseURL = options.baseURL || getFarmAPIBaseURL();
1133
+ const httpFetch = options.fetch;
1134
+ const integrationOptions = options.integrations === false ? false : {
1135
+ baseURL: options.baseURL,
1136
+ headers: options.headers,
1137
+ credentials: options.credentials,
1138
+ timeoutMs: options.timeoutMs,
1139
+ fetch: httpFetch,
1140
+ onRequest: options.onRequest,
1141
+ onResponse: options.onResponse,
1142
+ onError: options.onError,
1143
+ ...typeof options.integrations === "object" ? options.integrations : {}
1144
+ };
1145
+ const rootAliases = integrationOptions === false ? void 0 : {
1146
+ integrations: integrationsClient(integrationOptions)
1147
+ };
1148
+ const sharedCacheState = transport?.cache ?? getFarmClientDataCache();
1149
+ const localCaches = transport ? /* @__PURE__ */ new Set([sharedCacheState]) : void 0;
1150
+ const sharedInflightState = /* @__PURE__ */ new Map();
1151
+ let scopedRequestState;
1152
+ const routeMeta = transport?.routeMeta ?? /* @__PURE__ */ new WeakMap();
1153
+ let requestCounter = 0;
1154
+ const fetchClient = async (path, requestOptions, defaultHeaders, cancellation) => {
1155
+ const url = resolveFarmAPIRequestURL(path, baseURL);
1156
+ const method = String(requestOptions.method || "GET").toUpperCase();
1157
+ if (requestOptions.query) {
1158
+ appendAPIQuery(url.searchParams, requestOptions.query);
1159
+ }
1160
+ const headers = new Headers(defaultHeaders);
1161
+ new Headers(requestOptions.headers).forEach((value, key) => headers.set(key, value));
1162
+ const fetchOptions = {
1163
+ method,
1164
+ headers,
1165
+ credentials: options.credentials,
1166
+ signal: cancellation.signal
1167
+ };
1168
+ if (method === "QUERY" && !headers.has("content-type")) {
1169
+ headers.set("content-type", "application/json");
1170
+ }
1171
+ if (requestOptions.body !== void 0) {
1172
+ if (isFormData(requestOptions.body)) {
1173
+ headers.delete("content-type");
1174
+ fetchOptions.body = requestOptions.body;
1175
+ } else {
1176
+ if (!headers.has("content-type")) headers.set("content-type", "application/json");
1177
+ fetchOptions.body = JSON.stringify(requestOptions.body);
1178
+ }
1179
+ }
1180
+ cancellation.check();
1181
+ const response = await (transport?.fetch ?? httpFetch ?? fetch)(url.toString(), fetchOptions);
1182
+ cancellation.check();
1183
+ const invalidations = decodeFarmCacheInvalidations(
1184
+ response.headers?.get?.(FARM_CACHE_INVALIDATION_HEADER)
1185
+ );
1186
+ if (transport) {
1187
+ for (const cache of localCaches) {
1188
+ for (const key of invalidations) cache.invalidate(key);
1189
+ }
1190
+ } else {
1191
+ applyFarmCacheInvalidations(invalidations);
1192
+ }
1193
+ let data;
1194
+ try {
1195
+ data = await readAPIResponseData(response, method);
1196
+ cancellation.check();
1197
+ } catch (decodeError) {
1198
+ if (!(decodeError instanceof APIResponseDecodeError)) throw decodeError;
1199
+ if (response.ok) throw decodeError.cause;
1200
+ return { response, data: void 0, decodeError: decodeError.cause };
1201
+ }
1202
+ return { response, data };
1203
+ };
1204
+ const request = async (path, method, input = {}, clientOptions) => {
1205
+ const maxRetries = resolveClientRetryCount(clientOptions?.retry?.count);
1206
+ if (typeof clientOptions?.retry?.delay !== "function") {
1207
+ resolveClientRetryDelay(clientOptions?.retry?.delay);
1208
+ }
1209
+ const cancellation = createClientCancellation(
1210
+ clientOptions?.signal,
1211
+ clientOptions?.timeoutMs ?? options.timeoutMs,
1212
+ transport?.signal
1213
+ );
1214
+ const normalizeCallError = (error) => {
1215
+ if (!cancellation.signal?.aborted) return normalizeError(error);
1216
+ const normalized = new APIClientError(
1217
+ cancellation.timedOut ? "timeout" : "aborted",
1218
+ void 0,
1219
+ {
1220
+ status: 0,
1221
+ message: cancellation.timedOut ? "Client request timed out" : "Client request aborted"
1222
+ }
1223
+ );
1224
+ normalized.cause = cancellation.signal.reason;
1225
+ return normalized;
1226
+ };
1227
+ try {
1228
+ const methodUpper = method.toUpperCase();
1229
+ const requestId = `${Date.now()}-${++requestCounter}`;
1230
+ const defaultHeaders = new Headers(transport?.headers);
1231
+ let requestContextError;
1232
+ try {
1233
+ cancellation.check();
1234
+ const resolved = resolveClientHeaders(options.headers);
1235
+ const headers = resolved instanceof Headers ? resolved : await cancellation.run(() => resolved);
1236
+ cancellation.check();
1237
+ headers.forEach((value, name) => defaultHeaders.set(name, value));
1238
+ } catch (error) {
1239
+ requestContextError = normalizeCallError(error);
1240
+ }
1241
+ const cacheOptions = clientOptions?.cache ? {
1242
+ ...options.cacheDefaults,
1243
+ ...clientOptions.cache
1244
+ } : void 0;
1245
+ const configuredCacheKey = clientOptions?.key ?? cacheOptions?.key;
1246
+ const cacheKey = normalizeFarmClientCacheKey(
1247
+ configuredCacheKey ?? buildCacheKey(methodUpper, path, input, baseURL, defaultHeaders)
1248
+ );
1249
+ const now = Date.now();
1250
+ const emitStatus = (phase, payload) => {
1251
+ notifyClientObserver(
1252
+ clientOptions?.onStatus,
1253
+ [
1254
+ {
1255
+ phase,
1256
+ requestId,
1257
+ method: methodUpper,
1258
+ key: cacheKey,
1259
+ input,
1260
+ timestamp: Date.now(),
1261
+ ...payload
1262
+ }
1263
+ ],
1264
+ "API client onStatus"
1265
+ );
1266
+ };
1267
+ const policy = cacheOptions?.policy ?? (cacheOptions ? "cache-first" : "network-only");
1268
+ const staleTime = cacheOptions?.staleTime ?? 0;
1269
+ const hasReliableDefaultCacheKey = methodUpper !== "QUERY" || !isFormData(input?.body) || configuredCacheKey !== void 0;
1270
+ const isCacheEnabled = Boolean(cacheOptions) && (methodUpper === "GET" || methodUpper === "QUERY") && hasReliableDefaultCacheKey;
1271
+ const needsCacheState = isCacheEnabled || Boolean(clientOptions?.optimistic?.update?.length) || Boolean(clientOptions?.invalidate);
1272
+ let requestCacheContext = void 0;
1273
+ if (needsCacheState && !requestContextError) {
1274
+ try {
1275
+ requestCacheContext = getRequestCacheContext(
1276
+ { headers: defaultHeaders, credentials: options.credentials },
1277
+ input,
1278
+ // Custom transports can inject an identity outside visible headers.
1279
+ // Never share their cached data with other client instances.
1280
+ httpFetch ? "client" : cacheOptions?.scope
1281
+ );
1282
+ } catch (error) {
1283
+ requestContextError = normalizeError(error);
1284
+ }
1285
+ }
1286
+ let cacheState = sharedCacheState;
1287
+ let inflightState = sharedInflightState;
1288
+ let requestScopedState;
1289
+ if (requestCacheContext !== void 0) {
1290
+ if (scopedRequestState && scopedRequestState.context !== requestCacheContext) {
1291
+ scopedRequestState.retired = true;
1292
+ if (scopedRequestState.inflight.size === 0) scopedRequestState.cache.dispose();
1293
+ scopedRequestState = void 0;
1294
+ }
1295
+ scopedRequestState ?? (scopedRequestState = {
1296
+ context: requestCacheContext,
1297
+ cache: new FarmClientDataCache({ subscribeToInvalidation: !transport }),
1298
+ inflight: /* @__PURE__ */ new Map(),
1299
+ retired: false
1300
+ });
1301
+ requestScopedState = scopedRequestState;
1302
+ cacheState = requestScopedState.cache;
1303
+ localCaches?.add(cacheState);
1304
+ inflightState = requestScopedState.inflight;
1305
+ }
1306
+ const optimisticState = getOptimisticState(cacheState);
1307
+ const entry = getValidCacheEntry(cacheState, cacheKey, now);
1308
+ const isStale = entry ? isEntryStale(entry, now) : true;
1309
+ const applyOptimisticUpdates = () => {
1310
+ if (!clientOptions?.optimistic?.update?.length) return [];
1311
+ const snapshots = /* @__PURE__ */ new Map();
1312
+ for (const update of clientOptions.optimistic.update) {
1313
+ const [target, targetInput, updater] = update.length === 2 ? [update[0], void 0, update[1]] : [update[0], update[1], update[2]];
1314
+ const targetKey = resolveTargetKey(
1315
+ routeMeta,
1316
+ target,
1317
+ targetInput,
1318
+ baseURL,
1319
+ defaultHeaders,
1320
+ transport ? baseURL : void 0
1321
+ );
1322
+ if (!targetKey) continue;
1323
+ const targetEntry = getValidCacheEntry(cacheState, targetKey, now);
1324
+ const currentEntry = cacheState.get(targetKey);
1325
+ let stack = optimisticState.get(targetKey);
1326
+ if (stack && !reconcileOptimisticInvalidation(cacheState, targetKey, stack)) {
1327
+ stack = void 0;
1328
+ }
1329
+ if (!stack) {
1330
+ stack = {
1331
+ entry: targetEntry ? { ...targetEntry } : void 0,
1332
+ layers: [],
1333
+ renderedEntry: currentEntry
1334
+ };
1335
+ optimisticState.set(targetKey, stack);
1336
+ }
1337
+ let snapshot = snapshots.get(targetKey);
1338
+ if (!snapshot) {
1339
+ const previousEntry = stack.layers.length === 0 ? stack.entry : stack.renderedEntry;
1340
+ const layer = {
1341
+ updaters: [],
1342
+ updatedAt: now,
1343
+ staleAt: targetEntry?.staleAt ?? now + (cacheOptions?.staleTime ?? options.cacheDefaults?.staleTime ?? 0),
1344
+ gcAt: targetEntry?.gcAt ?? getGcAt(now, cacheOptions?.gcTime ?? options.cacheDefaults?.gcTime)
1345
+ };
1346
+ stack.layers.push(layer);
1347
+ snapshot = {
1348
+ key: targetKey,
1349
+ stack,
1350
+ layer
1351
+ };
1352
+ snapshots.set(targetKey, snapshot);
1353
+ snapshot.layer.updaters.push(updater);
1354
+ const nextEntry2 = applyOptimisticLayer(previousEntry, {
1355
+ ...snapshot.layer,
1356
+ updaters: [updater]
1357
+ });
1358
+ storeOptimisticEntry(cacheState, targetKey, stack, nextEntry2);
1359
+ continue;
1360
+ }
1361
+ snapshot.layer.updaters.push(updater);
1362
+ const nextEntry = applyOptimisticLayer(stack.renderedEntry, {
1363
+ ...snapshot.layer,
1364
+ updaters: [updater]
1365
+ });
1366
+ storeOptimisticEntry(cacheState, targetKey, stack, nextEntry);
1367
+ }
1368
+ return Array.from(snapshots.values());
1369
+ };
1370
+ const rollbackOptimisticUpdates = (snapshots) => {
1371
+ if (!clientOptions?.optimistic?.rollbackOnError) return;
1372
+ settleOptimisticUpdates(cacheState, optimisticState, snapshots, "rollback");
1373
+ };
1374
+ const invalidateUncommittedOptimisticUpdates = (snapshots) => {
1375
+ if (clientOptions?.optimistic?.rollbackOnError) return;
1376
+ for (const key of settleOptimisticUpdates(
1377
+ cacheState,
1378
+ optimisticState,
1379
+ snapshots,
1380
+ "invalidate"
1381
+ )) {
1382
+ emitStatus("invalidated", { key });
1383
+ }
1384
+ };
1385
+ const executeNetwork = async (opts) => {
1386
+ const release = cancellation.hold();
1387
+ let unsubscribeInvalidation;
1388
+ let readOwners;
1389
+ let readOwner;
1390
+ const resolvedCacheKey = cacheState.resolveKey(cacheKey);
1391
+ try {
1392
+ const dedupeMs = cacheOptions?.dedupeMs ?? 0;
1393
+ const inflight = inflightState.get(cacheKey);
1394
+ const allowDedupe = isCacheEnabled && dedupeMs > 0 && !cancellation.signal && !requestContextError;
1395
+ if (allowDedupe && inflight && !inflight.cancellable && now - inflight.startedAt < dedupeMs) {
1396
+ emitStatus("pending", { isBackground: opts?.isBackground, data: entry?.data });
1397
+ const result2 = await inflight.promise;
1398
+ if (result2.error) {
1399
+ emitStatus("error", { error: result2.error, isBackground: opts?.isBackground });
1400
+ notifyClientObserver(options.onError, [result2.error]);
1401
+ if (opts?.callCallbacks !== false) {
1402
+ notifyClientObserver(clientOptions?.onError, [result2.error], "API client onError");
1403
+ }
1404
+ } else {
1405
+ emitStatus("success", { data: result2.data, isBackground: opts?.isBackground });
1406
+ if (opts?.callCallbacks !== false) {
1407
+ notifyClientObserver(
1408
+ clientOptions?.onSuccess,
1409
+ [result2.data],
1410
+ "API client onSuccess"
1411
+ );
1412
+ }
1413
+ }
1414
+ return result2;
1415
+ }
1416
+ let invalidatedDuringRequest = false;
1417
+ if (isCacheEnabled) {
1418
+ readOwners = getCacheReadOwners(cacheState);
1419
+ readOwner = {};
1420
+ readOwners.set(resolvedCacheKey, readOwner);
1421
+ unsubscribeInvalidation = cacheState.subscribe(cacheKey, (event) => {
1422
+ if (event === "invalidate") invalidatedDuringRequest = true;
1423
+ });
1424
+ }
1425
+ emitStatus(opts?.isBackground ? "revalidating" : "pending", {
1426
+ isBackground: opts?.isBackground
1427
+ });
1428
+ const promise = (async () => {
1429
+ const shouldRetryFailure = clientOptions?.retry?.shouldRetry ?? isFarmRetryableFailure;
1430
+ let attempt = 0;
1431
+ while (true) {
1432
+ if (options.onRequest || clientOptions?.onRequest) {
1433
+ const requestEvent = {
1434
+ requestId,
1435
+ method: methodUpper,
1436
+ key: cacheKey,
1437
+ path,
1438
+ input,
1439
+ attempt,
1440
+ timestamp: Date.now()
1441
+ };
1442
+ notifyClientObserver(options.onRequest, [requestEvent]);
1443
+ notifyClientObserver(
1444
+ clientOptions?.onRequest,
1445
+ [requestEvent],
1446
+ "API client onRequest"
1447
+ );
1448
+ }
1449
+ try {
1450
+ if (requestContextError) throw requestContextError;
1451
+ const { response, data, decodeError } = await cancellation.run(
1452
+ () => fetchClient(
1453
+ path,
1454
+ {
1455
+ ...input,
1456
+ method: methodUpper
1457
+ },
1458
+ defaultHeaders,
1459
+ cancellation
1460
+ )
1461
+ );
1462
+ const error = response.ok ? null : createResponseError2(response, data, decodeError);
1463
+ const responseEvent = {
1464
+ requestId,
1465
+ method: methodUpper,
1466
+ key: cacheKey,
1467
+ path,
1468
+ input,
1469
+ attempt,
1470
+ timestamp: Date.now(),
1471
+ response,
1472
+ data: response.ok ? data : void 0,
1473
+ error: error ?? void 0,
1474
+ ok: response.ok,
1475
+ status: response.status
1476
+ };
1477
+ notifyClientObserver(options.onResponse, [
1478
+ response.ok ? data : void 0,
1479
+ error,
1480
+ responseEvent
1481
+ ]);
1482
+ notifyResponseObserver(
1483
+ clientOptions?.onResponse,
1484
+ response.ok ? data : void 0,
1485
+ error,
1486
+ responseEvent
1487
+ );
1488
+ if (!error) {
1489
+ return { data, error: null, key: cacheKey };
1490
+ }
1491
+ if (attempt >= maxRetries || !shouldRetryFailure({
1492
+ attempt,
1493
+ method: methodUpper,
1494
+ status: response.status,
1495
+ error
1496
+ })) {
1497
+ return { data: void 0, error, key: cacheKey };
1498
+ }
1499
+ } catch (err) {
1500
+ const error = normalizeCallError(err);
1501
+ const responseEvent = {
1502
+ requestId,
1503
+ method: methodUpper,
1504
+ key: cacheKey,
1505
+ path,
1506
+ input,
1507
+ attempt,
1508
+ timestamp: Date.now(),
1509
+ error,
1510
+ ok: false
1511
+ };
1512
+ notifyClientObserver(options.onResponse, [void 0, error, responseEvent]);
1513
+ notifyResponseObserver(clientOptions?.onResponse, void 0, error, responseEvent);
1514
+ if (attempt >= maxRetries || requestContextError || cancellation.signal?.aborted || !shouldRetryFailure({ attempt, method: methodUpper, error })) {
1515
+ return { data: void 0, error, key: cacheKey };
1516
+ }
1517
+ }
1518
+ attempt += 1;
1519
+ const delay = resolveClientRetryDelay(
1520
+ typeof clientOptions?.retry?.delay === "function" ? clientOptions.retry.delay(attempt) : clientOptions?.retry?.delay
1521
+ );
1522
+ if (delay > 0) {
1523
+ try {
1524
+ await cancellation.delay(delay);
1525
+ } catch (error) {
1526
+ return { data: void 0, error: normalizeCallError(error), key: cacheKey };
1527
+ }
1528
+ }
1529
+ }
1530
+ })();
1531
+ const inflightEntry = {
1532
+ promise,
1533
+ startedAt: now,
1534
+ cancellable: !!cancellation.signal || !!requestContextError
1535
+ };
1536
+ inflightState.set(cacheKey, inflightEntry);
1537
+ try {
1538
+ const result2 = await promise;
1539
+ if (inflightState.get(cacheKey) === inflightEntry && readOwners?.get(resolvedCacheKey) === readOwner && !invalidatedDuringRequest && !result2.error && isCacheEnabled && !isFarmAPIStream(result2.data)) {
1540
+ const updatedAt = Date.now();
1541
+ const cached = {
1542
+ data: result2.data,
1543
+ updatedAt,
1544
+ staleAt: updatedAt + staleTime,
1545
+ gcAt: getGcAt(updatedAt, cacheOptions?.gcTime),
1546
+ invalidatedAt: void 0,
1547
+ persist: cacheOptions?.persist === true ? true : void 0,
1548
+ [API_CACHE_REFETCH]: createCacheRefetch(
1549
+ request,
1550
+ path,
1551
+ method,
1552
+ input,
1553
+ cacheKey,
1554
+ cacheOptions,
1555
+ clientOptions,
1556
+ options.onError
1557
+ )
1558
+ };
1559
+ cacheState.set(cacheKey, cached);
1560
+ }
1561
+ if (result2.error) {
1562
+ emitStatus("error", { error: result2.error, isBackground: opts?.isBackground });
1563
+ notifyClientObserver(options.onError, [result2.error]);
1564
+ if (opts?.callCallbacks !== false) {
1565
+ notifyClientObserver(clientOptions?.onError, [result2.error], "API client onError");
1566
+ }
1567
+ } else {
1568
+ emitStatus("success", { data: result2.data, isBackground: opts?.isBackground });
1569
+ if (opts?.callCallbacks !== false) {
1570
+ notifyClientObserver(
1571
+ clientOptions?.onSuccess,
1572
+ [result2.data],
1573
+ "API client onSuccess"
1574
+ );
1575
+ }
1576
+ }
1577
+ return result2;
1578
+ } finally {
1579
+ if (inflightState.get(cacheKey) === inflightEntry) {
1580
+ inflightState.delete(cacheKey);
1581
+ }
1582
+ if (requestContextError && requestScopedState) {
1583
+ requestScopedState.retired = true;
1584
+ if (scopedRequestState === requestScopedState) scopedRequestState = void 0;
1585
+ }
1586
+ if (requestScopedState?.retired && requestScopedState.inflight.size === 0) {
1587
+ requestScopedState.cache.dispose();
1588
+ }
1589
+ }
1590
+ } finally {
1591
+ if (readOwner && readOwners?.get(resolvedCacheKey) === readOwner) {
1592
+ readOwners.delete(resolvedCacheKey);
1593
+ }
1594
+ unsubscribeInvalidation?.();
1595
+ release();
1596
+ }
1597
+ };
1598
+ const invalidateTargets = async () => {
1599
+ if (!clientOptions?.invalidate) return;
1600
+ const invalidateOptions = Array.isArray(clientOptions.invalidate) ? { targets: clientOptions.invalidate, refetch: false } : {
1601
+ targets: clientOptions.invalidate.targets,
1602
+ refetch: clientOptions.invalidate.refetch ?? false
1603
+ };
1604
+ const refetches = /* @__PURE__ */ new Set();
1605
+ for (const target of invalidateOptions.targets) {
1606
+ const targetKey = resolveTargetKey(
1607
+ routeMeta,
1608
+ target,
1609
+ void 0,
1610
+ baseURL,
1611
+ defaultHeaders,
1612
+ transport ? baseURL : void 0
1613
+ );
1614
+ if (!targetKey) continue;
1615
+ const existing = cacheState.get(targetKey);
1616
+ const invalidatedAt = Date.now();
1617
+ cacheState.invalidate(targetKey, invalidatedAt);
1618
+ if (existing) {
1619
+ const stack = optimisticState.get(targetKey);
1620
+ if (stack?.renderedEntry === existing) {
1621
+ stack.invalidatedAt = invalidatedAt;
1622
+ stack.renderedEntry = cacheState.get(targetKey);
1623
+ }
1624
+ }
1625
+ emitStatus("invalidated", { key: targetKey });
1626
+ const refetch = existing?.[API_CACHE_REFETCH];
1627
+ if (invalidateOptions.refetch && refetch) {
1628
+ refetches.add(refetch);
1629
+ }
1630
+ }
1631
+ for (const refetch of refetches) refetch();
1632
+ };
1633
+ const optimisticSnapshots = requestContextError ? [] : applyOptimisticUpdates();
1634
+ if (isCacheEnabled && !requestContextError && !cancellation.signal?.aborted) {
1635
+ if (entry && !isStale && policy !== "network-only") {
1636
+ emitStatus("success", { data: entry.data });
1637
+ notifyClientObserver(clientOptions?.onSuccess, [entry.data], "API client onSuccess");
1638
+ notifyClientObserver(
1639
+ clientOptions?.onSettled,
1640
+ [entry.data, null],
1641
+ "API client onSettled"
1642
+ );
1643
+ return { data: entry.data, error: null, key: cacheKey };
1644
+ }
1645
+ if (entry && isStale && policy === "stale-while-revalidate") {
1646
+ emitStatus("success", { data: entry.data });
1647
+ notifyClientObserver(clientOptions?.onSuccess, [entry.data], "API client onSuccess");
1648
+ notifyClientObserver(
1649
+ clientOptions?.onSettled,
1650
+ [entry.data, null],
1651
+ "API client onSettled"
1652
+ );
1653
+ void executeNetwork({ isBackground: true, callCallbacks: false });
1654
+ return { data: entry.data, error: null, key: cacheKey };
1655
+ }
1656
+ }
1657
+ const result = await executeNetwork();
1658
+ if (result.error) {
1659
+ if (cancellation.signal?.aborted) {
1660
+ settleOptimisticUpdates(cacheState, optimisticState, optimisticSnapshots, "rollback");
1661
+ } else {
1662
+ rollbackOptimisticUpdates(optimisticSnapshots);
1663
+ invalidateUncommittedOptimisticUpdates(optimisticSnapshots);
1664
+ }
1665
+ } else {
1666
+ settleOptimisticUpdates(cacheState, optimisticState, optimisticSnapshots, "commit");
1667
+ await invalidateTargets();
1668
+ }
1669
+ notifyClientObserver(
1670
+ clientOptions?.onSettled,
1671
+ [result.data, result.error],
1672
+ "API client onSettled"
1673
+ );
1674
+ return result;
1675
+ } finally {
1676
+ cancellation.dispose();
1677
+ }
1678
+ };
1679
+ const client = createNestedProxy(
1680
+ [],
1681
+ request,
1682
+ routeMeta,
1683
+ baseURL,
1684
+ isSameOriginAPIBaseURL(baseURL),
1685
+ rootAliases,
1686
+ options.routes ? new ClientRouteManifest(options.routes) : void 0
1687
+ );
1688
+ return { client, request };
1689
+ }
1690
+ async function readAPIResponseData(response, method) {
1691
+ if (method === "HEAD" || response.status === 204 || response.status === 205 || response.status === 304) {
1692
+ return void 0;
1693
+ }
1694
+ if (!response.headers?.get && typeof response.json === "function") {
1695
+ return readResponseJSON(response);
1696
+ }
1697
+ if (response.body === null) return void 0;
1698
+ if (isJSONStreamResponse(response)) {
1699
+ return readJSONStream(response);
1700
+ }
1701
+ const contentType = response.headers.get("content-type")?.split(";", 1)[0]?.trim().toLowerCase();
1702
+ if (typeof response.arrayBuffer === "function") {
1703
+ const data = await response.arrayBuffer();
1704
+ if (data.byteLength === 0) return void 0;
1705
+ if (!contentType || contentType === "application/json" || contentType.endsWith("+json")) {
1706
+ return parseResponseJSON(new TextDecoder().decode(data));
1707
+ }
1708
+ if (contentType.startsWith("text/") || contentType === "application/xml" || contentType === "application/xhtml+xml" || contentType === "application/graphql") {
1709
+ return new TextDecoder().decode(data);
1710
+ }
1711
+ return data;
1712
+ }
1713
+ if ((!contentType || contentType === "application/json" || contentType.endsWith("+json")) && typeof response.json === "function") {
1714
+ return readResponseJSON(response);
1715
+ }
1716
+ if ((contentType?.startsWith("text/") || contentType === "application/xml" || contentType === "application/xhtml+xml" || contentType === "application/graphql") && typeof response.text === "function") {
1717
+ return response.text();
1718
+ }
1719
+ if (typeof response.json === "function") {
1720
+ return readResponseJSON(response);
1721
+ }
1722
+ return void 0;
1723
+ }
1724
+ var APIResponseDecodeError = class extends Error {
1725
+ constructor(cause) {
1726
+ super(cause instanceof Error ? cause.message : "Failed to decode JSON response");
1727
+ this.name = "APIResponseDecodeError";
1728
+ this.cause = cause;
1729
+ }
1730
+ };
1731
+ function parseResponseJSON(value) {
1732
+ try {
1733
+ return JSON.parse(value);
1734
+ } catch (error) {
1735
+ throw new APIResponseDecodeError(error);
1736
+ }
1737
+ }
1738
+ async function readResponseJSON(response) {
1739
+ try {
1740
+ return await response.json();
1741
+ } catch (error) {
1742
+ if (error instanceof SyntaxError) throw new APIResponseDecodeError(error);
1743
+ throw error;
1744
+ }
1745
+ }
1746
+ function createNestedProxy(path, client, routeMeta, baseURL, sameOrigin, rootAliases, manifest, bound = {}) {
1747
+ const target = () => {
1748
+ };
1749
+ const proxy = new Proxy(target, {
1750
+ // When accessing a property (api.hello)
1751
+ get(_target, prop) {
1752
+ if (prop === "then") return void 0;
1753
+ if (prop === "$params") {
1754
+ return (params) => {
1755
+ if (!manifest)
1756
+ throw new TypeError(
1757
+ "$params requires createAPIClient({ routes: apiRoutes }) from the generated API manifest."
1758
+ );
1759
+ const scope = manifest.bind(buildProxyRoutePath(path), params);
1760
+ return createNestedProxy(
1761
+ [...path, scope.segment],
1762
+ client,
1763
+ routeMeta,
1764
+ baseURL,
1765
+ sameOrigin,
1766
+ rootAliases,
1767
+ manifest,
1768
+ Object.freeze({ ...bound, ...scope.params })
1769
+ );
1770
+ };
1771
+ }
1772
+ if (prop === FARM_API_ROUTE_REF_SYMBOL) {
1773
+ return path.length > 0;
1774
+ }
1775
+ if (prop === FARM_API_ROUTE_META_SYMBOL) {
1776
+ let metadata;
1777
+ try {
1778
+ metadata = resolveRouteMeta({ path, baseURL, manifest, bound });
1779
+ } catch {
1780
+ return null;
1781
+ }
1782
+ const requestURL = resolveFarmAPIRequestURL(metadata.routePath, baseURL);
1783
+ return Object.freeze({
1784
+ path: `${requestURL.pathname}${requestURL.search}${requestURL.hash}`,
1785
+ method: metadata.method,
1786
+ baseURL: requestURL.origin,
1787
+ sameOrigin
1788
+ });
1789
+ }
1790
+ if (path.length === 0 && typeof prop === "string" && rootAliases && Object.prototype.hasOwnProperty.call(rootAliases, prop)) {
1791
+ return rootAliases[prop];
1792
+ }
1793
+ if (typeof prop !== "string") {
1794
+ return Reflect.get(_target, prop);
1795
+ }
1796
+ return createNestedProxy(
1797
+ [...path, prop],
1798
+ client,
1799
+ routeMeta,
1800
+ baseURL,
1801
+ sameOrigin,
1802
+ rootAliases,
1803
+ manifest,
1804
+ bound
1805
+ );
1806
+ },
1807
+ // When calling as a function
1808
+ apply(_target, _thisArg, args) {
1809
+ const lastPart = path[path.length - 1];
1810
+ const httpMethods = ["get", "head", "query", "post", "put", "delete", "patch", "options"];
1811
+ if (httpMethods.includes(lastPart)) {
1812
+ const routePath = buildProxyRoutePath(path.slice(0, -1));
1813
+ const method = lastPart.toUpperCase();
1814
+ const [options, clientOptions] = args;
1815
+ const resolved = manifest ? manifest.resolve(routePath, method, bound, options) : routePath;
1816
+ if (!manifest && options?.params)
1817
+ throw new TypeError("Dynamic params require the generated routes manifest.");
1818
+ return client(resolved, method, options, clientOptions);
1819
+ } else {
1820
+ const routePath = buildProxyRoutePath(path);
1821
+ const [options, clientOptions] = args;
1822
+ const method = options?.method || "GET";
1823
+ const resolved = manifest ? manifest.resolve(routePath, method, bound, options) : routePath;
1824
+ return client(resolved, method, options, clientOptions);
1825
+ }
1826
+ }
1827
+ });
1828
+ routeMeta.set(proxy, { path: [...path], baseURL, manifest, bound });
1829
+ return proxy;
1830
+ }
1831
+ function buildProxyRoutePath(path) {
1832
+ return "/api/" + path.join("/").replace(/^\/+/, "");
1833
+ }
1834
+ function isAPIRouteRef(value) {
1835
+ return typeof value === "function" && value[FARM_API_ROUTE_REF_SYMBOL] === true;
1836
+ }
1837
+ function getAPIRouteRefMetadata(value) {
1838
+ if (!isAPIRouteRef(value)) return null;
1839
+ const metadata = value[FARM_API_ROUTE_META_SYMBOL];
1840
+ if (!metadata || typeof metadata !== "object") return null;
1841
+ const candidate = metadata;
1842
+ if (typeof candidate.path !== "string" || typeof candidate.method !== "string" || typeof candidate.baseURL !== "string" || typeof candidate.sameOrigin !== "boolean") {
1843
+ return null;
1844
+ }
1845
+ return {
1846
+ path: candidate.path,
1847
+ method: candidate.method,
1848
+ baseURL: candidate.baseURL,
1849
+ sameOrigin: candidate.sameOrigin
1850
+ };
1851
+ }
1852
+ function createServerAPIClient(endpoints, options = {}) {
1853
+ if (options.integrations === false || Object.prototype.hasOwnProperty.call(endpoints, "integrations")) {
1854
+ return endpoints;
1855
+ }
1856
+ Object.defineProperty(endpoints, "integrations", {
1857
+ get() {
1858
+ return integrationsServer(
1859
+ typeof options.integrations === "object" ? options.integrations : {}
1860
+ );
1861
+ },
1862
+ enumerable: false,
1863
+ configurable: true
1864
+ });
1865
+ return endpoints;
1866
+ }
1867
+ var API_CACHE_REFETCH = /* @__PURE__ */ Symbol.for("farm.api.cache-refetch");
1868
+ function createCacheRefetch(request, path, method, input, key, cache, options, onError) {
1869
+ const readOptions = {
1870
+ cache: { ...cache, key, policy: "network-only", dedupeMs: 0 },
1871
+ retry: options?.retry,
1872
+ timeoutMs: options?.timeoutMs
1873
+ };
1874
+ return () => {
1875
+ void request(path, method, input, readOptions).catch((error) => {
1876
+ notifyClientObserver(onError, [normalizeError(error)]);
1877
+ });
1878
+ };
1879
+ }
1880
+ var optimisticStates = /* @__PURE__ */ new WeakMap();
1881
+ var cacheReadOwners = /* @__PURE__ */ new WeakMap();
1882
+ function getCacheReadOwners(cache) {
1883
+ let owners = cacheReadOwners.get(cache);
1884
+ if (!owners) {
1885
+ owners = /* @__PURE__ */ new Map();
1886
+ cacheReadOwners.set(cache, owners);
1887
+ }
1888
+ return owners;
1889
+ }
1890
+ function getOptimisticState(cache) {
1891
+ let state = optimisticStates.get(cache);
1892
+ if (!state) {
1893
+ state = /* @__PURE__ */ new Map();
1894
+ optimisticStates.set(cache, state);
1895
+ }
1896
+ return state;
1897
+ }
1898
+ function applyOptimisticLayer(entry, layer) {
1899
+ let data = entry?.data;
1900
+ for (const updater of layer.updaters) data = updater(data);
1901
+ return {
1902
+ data,
1903
+ updatedAt: layer.updatedAt,
1904
+ staleAt: entry?.staleAt ?? layer.staleAt,
1905
+ gcAt: entry?.gcAt ?? layer.gcAt,
1906
+ invalidatedAt: entry?.invalidatedAt,
1907
+ [API_CACHE_REFETCH]: entry?.[API_CACHE_REFETCH]
1908
+ };
1909
+ }
1910
+ function storeOptimisticEntry(cacheState, key, stack, entry) {
1911
+ if (!entry) {
1912
+ cacheState.delete(key);
1913
+ stack.renderedEntry = void 0;
1914
+ return;
1915
+ }
1916
+ cacheState.set(key, entry);
1917
+ if (stack.invalidatedAt !== void 0) {
1918
+ cacheState.invalidate(key, stack.invalidatedAt);
1919
+ }
1920
+ stack.renderedEntry = cacheState.get(key);
1921
+ }
1922
+ function reconcileOptimisticInvalidation(cacheState, key, stack) {
1923
+ const current = cacheState.get(key);
1924
+ const rendered = stack.renderedEntry;
1925
+ if (current === rendered) return true;
1926
+ if (!current || !rendered || current.data !== rendered.data || current.updatedAt !== rendered.updatedAt || current.gcAt !== rendered.gcAt || current.status !== rendered.status || current.error !== rendered.error || current.fetching !== rendered.fetching || current.staleAt !== 0 || current.invalidatedAt === void 0) {
1927
+ return false;
1928
+ }
1929
+ stack.invalidatedAt = current.invalidatedAt;
1930
+ stack.renderedEntry = current;
1931
+ return true;
1932
+ }
1933
+ function renderOptimisticStack(cacheState, key, stack) {
1934
+ let entry = stack.entry ? { ...stack.entry } : void 0;
1935
+ for (const layer of stack.layers) entry = applyOptimisticLayer(entry, layer);
1936
+ storeOptimisticEntry(cacheState, key, stack, entry);
1937
+ }
1938
+ function settleOptimisticUpdates(cacheState, optimisticState, snapshots, outcome) {
1939
+ const settledKeys = [];
1940
+ for (const snapshot of snapshots) {
1941
+ const stack = optimisticState.get(snapshot.key);
1942
+ if (stack !== snapshot.stack) continue;
1943
+ if (!reconcileOptimisticInvalidation(cacheState, snapshot.key, stack)) {
1944
+ optimisticState.delete(snapshot.key);
1945
+ continue;
1946
+ }
1947
+ if (outcome === "rollback") {
1948
+ stack.layers = stack.layers.filter((layer) => layer !== snapshot.layer);
1949
+ } else {
1950
+ snapshot.layer.committed = true;
1951
+ if (outcome === "invalidate") stack.invalidatedAt = Date.now();
1952
+ }
1953
+ while (stack.layers[0]?.committed) {
1954
+ stack.entry = applyOptimisticLayer(stack.entry, stack.layers.shift());
1955
+ }
1956
+ renderOptimisticStack(cacheState, snapshot.key, stack);
1957
+ if (stack.layers.length === 0) optimisticState.delete(snapshot.key);
1958
+ settledKeys.push(snapshot.key);
1959
+ }
1960
+ return settledKeys;
1961
+ }
1962
+ function applyServerFnOptimisticUpdates(updates, now = Date.now()) {
1963
+ const cacheState = getFarmClientDataCache();
1964
+ const optimisticState = getOptimisticState(cacheState);
1965
+ const snapshots = /* @__PURE__ */ new Map();
1966
+ for (const update of updates) {
1967
+ if (update.length !== 2) continue;
1968
+ const [target, updater] = update;
1969
+ if (typeof updater !== "function") continue;
1970
+ const targetKey = typeof target === "string" || Array.isArray(target) ? normalizeFarmClientCacheKey(target) : null;
1971
+ if (!targetKey) continue;
1972
+ const targetEntry = getValidCacheEntry(cacheState, targetKey, now);
1973
+ const currentEntry = cacheState.get(targetKey);
1974
+ let stack = optimisticState.get(targetKey);
1975
+ if (stack && !reconcileOptimisticInvalidation(cacheState, targetKey, stack)) {
1976
+ stack = void 0;
1977
+ }
1978
+ if (!stack) {
1979
+ stack = {
1980
+ entry: targetEntry ? { ...targetEntry } : void 0,
1981
+ layers: [],
1982
+ renderedEntry: currentEntry
1983
+ };
1984
+ optimisticState.set(targetKey, stack);
1985
+ }
1986
+ let snapshot = snapshots.get(targetKey);
1987
+ if (!snapshot) {
1988
+ const previousEntry = stack.layers.length === 0 ? stack.entry : stack.renderedEntry;
1989
+ const layer = {
1990
+ updaters: [],
1991
+ updatedAt: now,
1992
+ // A server function has no cache policy of its own; preserve the
1993
+ // target read's freshness metadata when it exists.
1994
+ staleAt: targetEntry?.staleAt ?? now,
1995
+ gcAt: targetEntry?.gcAt
1996
+ };
1997
+ stack.layers.push(layer);
1998
+ snapshot = { key: targetKey, stack, layer };
1999
+ snapshots.set(targetKey, snapshot);
2000
+ snapshot.layer.updaters.push(updater);
2001
+ const nextEntry2 = applyOptimisticLayer(previousEntry, {
2002
+ ...snapshot.layer,
2003
+ updaters: [updater]
2004
+ });
2005
+ storeOptimisticEntry(cacheState, targetKey, stack, nextEntry2);
2006
+ continue;
2007
+ }
2008
+ snapshot.layer.updaters.push(updater);
2009
+ const nextEntry = applyOptimisticLayer(stack.renderedEntry, {
2010
+ ...snapshot.layer,
2011
+ updaters: [updater]
2012
+ });
2013
+ storeOptimisticEntry(cacheState, targetKey, stack, nextEntry);
2014
+ }
2015
+ return Array.from(snapshots.values());
2016
+ }
2017
+ function settleServerFnOptimisticUpdates(snapshots, outcome) {
2018
+ if (snapshots.length === 0) return;
2019
+ const cacheState = getFarmClientDataCache();
2020
+ settleOptimisticUpdates(cacheState, getOptimisticState(cacheState), snapshots, outcome);
2021
+ }
2022
+ function resolveServerFnInvalidateTargets(invalidate) {
2023
+ const targets = Array.isArray(invalidate) ? invalidate : invalidate.targets;
2024
+ const keys = [];
2025
+ for (const target of targets) {
2026
+ if (typeof target === "string" || Array.isArray(target)) {
2027
+ if (Array.isArray(target) && typeof target[0] === "function") continue;
2028
+ keys.push(normalizeFarmClientCacheKey(target));
2029
+ } else if (target && typeof target === "object" && "key" in target) {
2030
+ keys.push(normalizeFarmClientCacheKey(target.key));
2031
+ }
2032
+ }
2033
+ return keys;
2034
+ }
2035
+ function buildCacheKey(method, path, input, baseURL, defaultHeaders) {
2036
+ const keyInput = input && typeof input === "object" ? {
2037
+ query: input.query,
2038
+ body: input.body,
2039
+ ...method === "QUERY" ? {
2040
+ contentType: getHeader(input.headers, "content-type") ?? getHeader(defaultHeaders, "content-type") ?? "application/json",
2041
+ contentEncoding: getHeader(input.headers, "content-encoding") ?? getHeader(defaultHeaders, "content-encoding")
2042
+ } : {}
2043
+ } : input;
2044
+ const url = resolveFarmAPIRequestURL(path, baseURL);
2045
+ return `${method}:${url.origin}${url.pathname}:${stableStringify(keyInput ?? {})}`;
2046
+ }
2047
+ function isSameOriginAPIBaseURL(baseURL) {
2048
+ if (typeof window === "undefined" || !window.location) return baseURL.startsWith("/");
2049
+ return resolveFarmAPIRequestURL("/api", baseURL).origin === window.location.origin;
2050
+ }
2051
+ function stableStringify(value) {
2052
+ if (value === null || value === void 0) return String(value);
2053
+ if (value instanceof Date) return value.toISOString();
2054
+ if (typeof value === "bigint") return `bigint:${value.toString()}`;
2055
+ if (typeof value !== "object") return JSON.stringify(value);
2056
+ if (Array.isArray(value)) {
2057
+ return `[${value.map((item) => stableStringify(item)).join(",")}]`;
2058
+ }
2059
+ if (value instanceof URLSearchParams) {
2060
+ return `urlsearchparams:${stableStringify(Array.from(value.entries()))}`;
2061
+ }
2062
+ const keys = Object.keys(value).sort();
2063
+ const entries = keys.map((key) => `${JSON.stringify(key)}:${stableStringify(value[key])}`);
2064
+ return `{${entries.join(",")}}`;
2065
+ }
2066
+ function getHeader(headers, name) {
2067
+ if (!headers || typeof headers !== "object") return void 0;
2068
+ if (typeof Headers !== "undefined" && headers instanceof Headers) {
2069
+ return headers.get(name) ?? void 0;
2070
+ }
2071
+ const entry = Object.entries(headers).find(([key]) => key.toLowerCase() === name);
2072
+ return entry?.[1] === void 0 ? void 0 : String(entry[1]);
2073
+ }
2074
+ function getRequestCacheContext(options, input, scope) {
2075
+ const credentials = options.credentials ?? "same-origin";
2076
+ const headers = new Headers(options.headers);
2077
+ const requestHeaders = input && typeof input === "object" && "headers" in input ? input.headers : void 0;
2078
+ if (requestHeaders) {
2079
+ new Headers(requestHeaders).forEach((value, key) => headers.set(key, value));
2080
+ }
2081
+ const carriesBrowserIdentity = credentials !== "omit" || [...headers].length > 0;
2082
+ if (scope !== "client" && !carriesBrowserIdentity) return void 0;
2083
+ return stableStringify({
2084
+ credentials,
2085
+ headers: [...headers].sort(([left], [right]) => left.localeCompare(right))
2086
+ });
2087
+ }
2088
+ function getGcAt(now, gcTime) {
2089
+ if (gcTime === void 0) return void 0;
2090
+ if (!Number.isFinite(gcTime) || gcTime <= 0) return now;
2091
+ return now + gcTime;
2092
+ }
2093
+ function getValidCacheEntry(cacheState, key, now) {
2094
+ const entry = cacheState.get(key);
2095
+ if (!entry) return void 0;
2096
+ if (entry.gcAt !== void 0 && now >= entry.gcAt) {
2097
+ cacheState.delete(key);
2098
+ return void 0;
2099
+ }
2100
+ return entry;
2101
+ }
2102
+ function isEntryStale(entry, now) {
2103
+ if (entry.invalidatedAt !== void 0) return true;
2104
+ return now >= entry.staleAt;
2105
+ }
2106
+ function resolveTargetKey(routeMeta, target, input, baseURL = "http://localhost:3000", defaultHeaders, localBaseURL) {
2107
+ if (!target) return null;
2108
+ if (typeof target === "string") return target;
2109
+ if (typeof target === "function") {
2110
+ const meta = routeMeta.get(target);
2111
+ if (!meta) return null;
2112
+ const { method, routePath } = resolveRouteMeta(meta, input);
2113
+ return buildCacheKey(
2114
+ method,
2115
+ routePath,
2116
+ input ?? {},
2117
+ localBaseURL ?? meta.baseURL,
2118
+ defaultHeaders
2119
+ );
2120
+ }
2121
+ if (Array.isArray(target)) {
2122
+ const [route, routeInput] = target;
2123
+ if (typeof route === "function") {
2124
+ return resolveTargetKey(routeMeta, route, routeInput, baseURL, defaultHeaders, localBaseURL);
2125
+ }
2126
+ return normalizeFarmClientCacheKey(target);
2127
+ }
2128
+ if ("key" in target) return normalizeFarmClientCacheKey(target.key);
2129
+ if ("path" in target) {
2130
+ const method = target.method ?? "GET";
2131
+ return buildCacheKey(method, target.path, target.input ?? {}, baseURL, defaultHeaders);
2132
+ }
2133
+ return null;
2134
+ }
2135
+ function resolveRouteMeta(meta, input) {
2136
+ const httpMethods = ["get", "head", "query", "post", "put", "delete", "patch", "options"];
2137
+ const lastPart = meta.path[meta.path.length - 1];
2138
+ if (lastPart && httpMethods.includes(lastPart)) {
2139
+ return {
2140
+ routePath: meta.manifest ? meta.manifest.resolve(
2141
+ buildProxyRoutePath(meta.path.slice(0, -1)),
2142
+ lastPart.toUpperCase(),
2143
+ meta.bound ?? {},
2144
+ input
2145
+ ) : buildProxyRoutePath(meta.path.slice(0, -1)),
2146
+ method: lastPart.toUpperCase()
2147
+ };
2148
+ }
2149
+ return {
2150
+ routePath: meta.manifest ? meta.manifest.resolve(buildProxyRoutePath(meta.path), "GET", meta.bound ?? {}, input) : buildProxyRoutePath(meta.path),
2151
+ method: "GET"
2152
+ };
2153
+ }
2154
+ function normalizeError(error) {
2155
+ if (error instanceof APIClientError) return error;
2156
+ const normalized = new APIClientError("network_error", void 0, {
2157
+ status: 0,
2158
+ message: error instanceof Error ? error.message : typeof error === "string" ? error : "Network request failed"
2159
+ });
2160
+ normalized.cause = error;
2161
+ return normalized;
2162
+ }
2163
+ function notifyResponseObserver(observer, data, error, event) {
2164
+ notifyClientObserver(observer, [data, error, event], "API client onResponse");
2165
+ }
2166
+ function isFormData(value) {
2167
+ return typeof value === "object" && value !== null && (typeof FormData !== "undefined" && value instanceof FormData || Object.prototype.toString.call(value) === "[object FormData]" && typeof value.entries === "function");
2168
+ }
2169
+ function appendAPIQuery(searchParams, query) {
2170
+ if (query instanceof URLSearchParams) {
2171
+ const keys = new Set(query.keys());
2172
+ for (const key of keys) searchParams.delete(key);
2173
+ query.forEach((value, key) => searchParams.append(key, value));
2174
+ return;
2175
+ }
2176
+ if (!query || typeof query !== "object" || Array.isArray(query)) {
2177
+ throw new TypeError("API query input must be an object or URLSearchParams.");
2178
+ }
2179
+ for (const [key, value] of Object.entries(query)) {
2180
+ if (value === void 0 || value === null) continue;
2181
+ searchParams.delete(key);
2182
+ const values = Array.isArray(value) ? value : [value];
2183
+ for (const item of values) {
2184
+ if (item === void 0 || item === null) continue;
2185
+ if (!isAPIQueryPrimitive(item)) {
2186
+ throw new TypeError(
2187
+ `API query parameter "${key}" must be a string, number, boolean, bigint, or an array of those values.`
2188
+ );
2189
+ }
2190
+ searchParams.append(key, String(item));
2191
+ }
2192
+ }
2193
+ }
2194
+ function isAPIQueryPrimitive(value) {
2195
+ return typeof value === "string" || typeof value === "number" || typeof value === "boolean" || typeof value === "bigint";
2196
+ }
2197
+ function createResponseError2(response, data, cause) {
2198
+ const expected = readEndpointErrorEnvelope(data);
2199
+ if (expected) {
2200
+ return new APIClientError(expected.code, expected.data, {
2201
+ status: response.status,
2202
+ message: expected.message,
2203
+ response
2204
+ });
2205
+ }
2206
+ const error = new APIClientError("http_error", data, {
2207
+ status: response.status,
2208
+ message: `HTTP ${response.status}: ${response.statusText}`,
2209
+ response
2210
+ });
2211
+ if (cause !== void 0) error.cause = cause;
2212
+ return error;
2213
+ }
2214
+ function readEndpointErrorEnvelope(data) {
2215
+ if (!data || typeof data !== "object") return null;
2216
+ const error = data.error;
2217
+ if (!error || typeof error !== "object") return null;
2218
+ const code = error.code;
2219
+ const message = error.message;
2220
+ if (typeof code !== "string" || typeof message !== "string") return null;
2221
+ return {
2222
+ code,
2223
+ message,
2224
+ data: error.data
2225
+ };
2226
+ }
2227
+
2228
+ export {
2229
+ IntegrationClientError,
2230
+ createIntegrationClient,
2231
+ integrationsClient,
2232
+ integrationsServer,
2233
+ createIntegrationServerClient,
2234
+ createIntegrationApi,
2235
+ createIntegrationClients,
2236
+ createIntegrations,
2237
+ getIntegrationAPIManifest,
2238
+ integrationClients,
2239
+ FARM_API_ROUTE_REF_SYMBOL,
2240
+ FARM_API_ROUTE_META_SYMBOL,
2241
+ APIClientError,
2242
+ createApiClients,
2243
+ createAPIClient,
2244
+ isAPIRouteRef,
2245
+ getAPIRouteRefMetadata,
2246
+ createServerAPIClient,
2247
+ applyServerFnOptimisticUpdates,
2248
+ settleServerFnOptimisticUpdates,
2249
+ resolveServerFnInvalidateTargets
2250
+ };