@farm.js/core 0.1.38 → 0.1.40

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 (368) hide show
  1. package/dist/{agent-mcp-BwKlpnc7.d.mts → agent-mcp-DRlXq3lM.d.ts} +1 -1
  2. package/dist/{agent-mcp-De1imoMS.d.ts → agent-mcp-XNF4JqHw.d.mts} +1 -1
  3. package/dist/{agent-mcp-handler-OLRMZONF.mjs → agent-mcp-handler-HVV5LNXF.mjs} +6 -6
  4. package/dist/{agent-mcp-handler-MRGP3WJ3.cjs → agent-mcp-handler-YKG7KVCY.cjs} +7 -7
  5. package/dist/agent-runtime.cjs +10 -6
  6. package/dist/agent-runtime.d.mts +5 -7
  7. package/dist/agent-runtime.d.ts +5 -7
  8. package/dist/agent-runtime.mjs +9 -5
  9. package/dist/api/client.cjs +3 -3
  10. package/dist/api/client.d.mts +3 -3
  11. package/dist/api/client.d.ts +3 -3
  12. package/dist/api/client.mjs +2 -2
  13. package/dist/api/route-manager.cjs +15 -13
  14. package/dist/api/route-manager.d.mts +7 -9
  15. package/dist/api/route-manager.d.ts +7 -9
  16. package/dist/api/route-manager.mjs +14 -12
  17. package/dist/api/runtime.cjs +12 -10
  18. package/dist/api/runtime.d.mts +6 -8
  19. package/dist/api/runtime.d.ts +6 -8
  20. package/dist/api/runtime.mjs +11 -9
  21. package/dist/{api-client-CyFtZFJ4.d.ts → api-client-BJv9mTbO.d.ts} +2 -2
  22. package/dist/{api-client-BjMmY8OD.d.mts → api-client-Dk9QOLwr.d.mts} +2 -2
  23. package/dist/api.cjs +17 -15
  24. package/dist/api.d.mts +9 -11
  25. package/dist/api.d.ts +9 -11
  26. package/dist/api.mjs +16 -14
  27. package/dist/{app-kT_QXTdx.d.ts → app-CDJHPqZn.d.ts} +11 -4
  28. package/dist/{app-CFZt-srr.d.mts → app-CWjCklhF.d.mts} +11 -4
  29. package/dist/app-markdown.cjs +7 -6
  30. package/dist/app-markdown.d.mts +6 -8
  31. package/dist/app-markdown.d.ts +6 -8
  32. package/dist/app-markdown.mjs +6 -5
  33. package/dist/cache.cjs +6 -3
  34. package/dist/cache.d.mts +23 -2
  35. package/dist/cache.d.ts +23 -2
  36. package/dist/cache.mjs +5 -2
  37. package/dist/{chunk-3UEVPCGW.mjs → chunk-2DMWQWNJ.mjs} +6 -1
  38. package/dist/{chunk-ZXH4TS3F.cjs → chunk-2JG2LJDI.cjs} +3 -64
  39. package/dist/{chunk-QTXBII4Z.cjs → chunk-3TB5QGUW.cjs} +5 -5
  40. package/dist/chunk-45QJHGZM.cjs +1063 -0
  41. package/dist/{chunk-JCKYH4LG.mjs → chunk-45UZKX2J.mjs} +12 -44
  42. package/dist/{chunk-FUCSUGDM.cjs → chunk-4A3YUB4D.cjs} +3 -3
  43. package/dist/{chunk-FUZEBRP3.mjs → chunk-4GP3XZ4Z.mjs} +5 -3
  44. package/dist/chunk-4TLUFAIP.cjs +92 -0
  45. package/dist/chunk-4U5XZDLG.cjs +80 -0
  46. package/dist/{chunk-VXEEATVD.cjs → chunk-4XO5GSD6.cjs} +2 -2
  47. package/dist/{chunk-P664ZVTV.mjs → chunk-4ZZNPK25.mjs} +2 -2
  48. package/dist/{chunk-TGFQVLLF.cjs → chunk-54QWHSNR.cjs} +697 -422
  49. package/dist/{chunk-W36M2BQ4.mjs → chunk-5E65AL7P.mjs} +3 -3
  50. package/dist/{chunk-3LOLJTFV.cjs → chunk-5JEC43MQ.cjs} +11 -11
  51. package/dist/{chunk-INL3THCU.mjs → chunk-5LL6TKII.mjs} +1 -1
  52. package/dist/{chunk-KIIMAWOJ.cjs → chunk-5NAVKJCZ.cjs} +35 -105
  53. package/dist/{chunk-PGZDEPTM.cjs → chunk-5XS5NCVM.cjs} +10 -10
  54. package/dist/{chunk-HXRYZWTA.mjs → chunk-62DY5GKS.mjs} +3 -3
  55. package/dist/{chunk-LSKZMJMP.cjs → chunk-64SBBZDU.cjs} +38 -1
  56. package/dist/chunk-6BWKJ6QS.cjs +43 -0
  57. package/dist/{chunk-JSROZYYO.cjs → chunk-6D24SDKO.cjs} +1 -20
  58. package/dist/{chunk-EIPC3FDA.cjs → chunk-6ILGLCXF.cjs} +9 -5
  59. package/dist/chunk-6QOLZITB.cjs +22 -0
  60. package/dist/{chunk-CXEN47J3.mjs → chunk-73WX6PRY.mjs} +25 -0
  61. package/dist/{chunk-RW63BOV7.cjs → chunk-7FHZ3E6D.cjs} +2 -2
  62. package/dist/chunk-7GNWGLWB.mjs +14 -0
  63. package/dist/{chunk-34UCJRQO.cjs → chunk-7RNAKBWF.cjs} +2 -2
  64. package/dist/{chunk-MSSFIQGM.mjs → chunk-7VAJSSPG.mjs} +41 -10
  65. package/dist/{chunk-KHKLMNI5.mjs → chunk-ACLPN56I.mjs} +43 -25
  66. package/dist/{chunk-JCYYXBAJ.cjs → chunk-AGR7F3LA.cjs} +3 -3
  67. package/dist/{chunk-4GWRFP22.cjs → chunk-ALPWLT27.cjs} +35 -3
  68. package/dist/{chunk-IBUQWVYA.mjs → chunk-AX7S67YV.mjs} +43 -40
  69. package/dist/{chunk-CUM5NYL5.mjs → chunk-AXB5P7BK.mjs} +1 -1
  70. package/dist/{chunk-2ZYGC6SS.cjs → chunk-B6IMBBOS.cjs} +3 -3
  71. package/dist/{chunk-472NCAZ7.cjs → chunk-B77AUCBV.cjs} +3 -3
  72. package/dist/{chunk-FWE7LEQC.cjs → chunk-BD3D7EZV.cjs} +4 -4
  73. package/dist/{chunk-H5CLOUZS.cjs → chunk-BMOBTMDR.cjs} +5 -5
  74. package/dist/{chunk-CQMVIOYP.mjs → chunk-BPGO2IEP.mjs} +7 -7
  75. package/dist/{chunk-E2ROOWQC.cjs → chunk-BPOTSHDO.cjs} +24 -87
  76. package/dist/chunk-BRYPZIMB.mjs +6 -0
  77. package/dist/{chunk-WFRT7JPX.mjs → chunk-BYQVROIP.mjs} +2 -2
  78. package/dist/{chunk-HALDNTIV.mjs → chunk-BYR3RQPB.mjs} +10 -73
  79. package/dist/{chunk-IWZKTWHZ.cjs → chunk-CA62IQY3.cjs} +7 -2
  80. package/dist/chunk-CALY6QG6.mjs +963 -0
  81. package/dist/{chunk-WC5UV2HQ.cjs → chunk-CBXBGM72.cjs} +2 -2
  82. package/dist/{chunk-WW46B6HA.cjs → chunk-CGR525MJ.cjs} +84 -45
  83. package/dist/{chunk-6V4TDWEC.cjs → chunk-CGVPXIRN.cjs} +18 -1
  84. package/dist/{chunk-TYMMBFN2.mjs → chunk-CKFK3Z2V.mjs} +1 -1
  85. package/dist/chunk-CZS6OACQ.mjs +63 -0
  86. package/dist/{chunk-SGBJ247Q.cjs → chunk-D4ROBNTK.cjs} +2 -2
  87. package/dist/{chunk-WEW2JVA4.cjs → chunk-D5IHNDHI.cjs} +6 -6
  88. package/dist/{chunk-ULASELLA.cjs → chunk-DATEWH3W.cjs} +13 -1
  89. package/dist/{chunk-KKSTAEMY.cjs → chunk-DKU6NXRK.cjs} +1 -1
  90. package/dist/{chunk-NBBEQLOK.cjs → chunk-E55H6UKH.cjs} +9 -9
  91. package/dist/{chunk-YR2VBEMO.cjs → chunk-EGCT3AHF.cjs} +1455 -8187
  92. package/dist/{chunk-SDOTRX3V.cjs → chunk-EORXKFLR.cjs} +7 -7
  93. package/dist/{chunk-HD5CF3OE.mjs → chunk-ETPEZLS3.mjs} +2 -2
  94. package/dist/{chunk-2DD4JMQC.cjs → chunk-EW4MEVLE.cjs} +30 -30
  95. package/dist/{chunk-TUBTR2OP.mjs → chunk-FCOLU5P6.mjs} +1173 -7905
  96. package/dist/chunk-FGH3ZXTP.mjs +1063 -0
  97. package/dist/{chunk-Q3NXS4MU.cjs → chunk-FLZ4H25A.cjs} +44 -32
  98. package/dist/chunk-FVPXT2JR.cjs +63 -0
  99. package/dist/{chunk-D2ULAULS.cjs → chunk-FXFKIJDA.cjs} +9 -7
  100. package/dist/chunk-GC3EM6H4.mjs +80 -0
  101. package/dist/chunk-GKQL726H.cjs +6096 -0
  102. package/dist/{chunk-5PWXMJOH.cjs → chunk-GNVEJUT5.cjs} +36 -36
  103. package/dist/{chunk-E3UK5IIB.cjs → chunk-GS3WR5HX.cjs} +5 -3
  104. package/dist/{chunk-QFW2IH5E.mjs → chunk-GZTUT75U.mjs} +5 -2
  105. package/dist/chunk-H3EGVQE5.mjs +22 -0
  106. package/dist/{chunk-KCQBAKIY.cjs → chunk-H44XGLFU.cjs} +36 -68
  107. package/dist/{chunk-LI2F57NI.mjs → chunk-H56MQYEG.mjs} +1 -1
  108. package/dist/chunk-HANGSYMB.mjs +67 -0
  109. package/dist/{chunk-5BWWFHR2.mjs → chunk-HBEBV7OZ.mjs} +3 -3
  110. package/dist/{chunk-RSOJ7DRT.mjs → chunk-HCSVR4YZ.mjs} +1 -58
  111. package/dist/{chunk-HZFM2LWQ.mjs → chunk-HKFBMHCD.mjs} +34 -2
  112. package/dist/{chunk-MLY2RP5R.mjs → chunk-I63UCMXW.mjs} +6 -2
  113. package/dist/{chunk-TO4GJ56K.cjs → chunk-I64GEPOB.cjs} +58 -18
  114. package/dist/{chunk-VNGH5MLF.mjs → chunk-I6UVKUYK.mjs} +1 -1
  115. package/dist/{chunk-EPYU2EBL.mjs → chunk-IF4NU2NG.mjs} +1 -1
  116. package/dist/{chunk-IVLZZZEI.mjs → chunk-IM7DY3ED.mjs} +1 -1
  117. package/dist/{chunk-A3EAIURZ.mjs → chunk-IMQO6ZUU.mjs} +2 -2
  118. package/dist/{chunk-F5QO4FNE.mjs → chunk-INQ64HTJ.mjs} +43 -11
  119. package/dist/{chunk-XKVVMZP5.cjs → chunk-IRYK4Z5M.cjs} +4 -4
  120. package/dist/{chunk-UWPLULNK.mjs → chunk-JGHCKIRI.mjs} +84 -24
  121. package/dist/{chunk-7FPTZLKH.mjs → chunk-JIYYX7WU.mjs} +10 -8
  122. package/dist/{chunk-6MVFL3R5.cjs → chunk-JR4QCLJY.cjs} +1 -58
  123. package/dist/{chunk-Q2KB32T4.mjs → chunk-JXB6DVCO.mjs} +5 -5
  124. package/dist/{chunk-CGBDNNSM.cjs → chunk-KEXK442I.cjs} +44 -12
  125. package/dist/{chunk-5D2JIPLH.cjs → chunk-KK22JPQM.cjs} +10 -10
  126. package/dist/{chunk-EA5K5BKU.mjs → chunk-KNHBTJP6.mjs} +18 -1
  127. package/dist/{chunk-MVL2RAJW.mjs → chunk-KYN5ODF6.mjs} +1 -1
  128. package/dist/{chunk-TYJALEHQ.cjs → chunk-LDPKAYVS.cjs} +16 -16
  129. package/dist/chunk-LFHCG2DU.mjs +43 -0
  130. package/dist/{chunk-EK4QAEFZ.cjs → chunk-LZESP4IR.cjs} +25 -0
  131. package/dist/{chunk-FZ6YYU2W.mjs → chunk-MGMF4VP7.mjs} +38 -1
  132. package/dist/{chunk-EKF7KDFD.mjs → chunk-MNUSIXGS.mjs} +2 -2
  133. package/dist/{chunk-MYIZXDZA.mjs → chunk-MOSYH4CY.mjs} +1 -1
  134. package/dist/{chunk-4ZFL5GFN.cjs → chunk-OILHPMFX.cjs} +86 -26
  135. package/dist/{chunk-AJQTP4OO.mjs → chunk-OJ7JP7RJ.mjs} +1 -1
  136. package/dist/{chunk-7PEP3BUT.mjs → chunk-OLQ73ZO5.mjs} +2 -2
  137. package/dist/{chunk-5OKBARDN.cjs → chunk-OZN4XL6L.cjs} +10 -10
  138. package/dist/{chunk-T5OJPTVN.cjs → chunk-P4TYB4SF.cjs} +2 -2
  139. package/dist/chunk-P7XDC7UJ.mjs +92 -0
  140. package/dist/{chunk-4E5QXOCL.cjs → chunk-PGW7HZE2.cjs} +6 -6
  141. package/dist/{chunk-SHLXACIO.cjs → chunk-PJ42JESY.cjs} +1 -9
  142. package/dist/{chunk-U6QLDL3G.mjs → chunk-PNCM5MFD.mjs} +1 -1
  143. package/dist/{chunk-OAHTRMIC.mjs → chunk-PYQ3ZG4Z.mjs} +11 -11
  144. package/dist/{chunk-KMTGADN3.mjs → chunk-QCVIRVHE.mjs} +1 -9
  145. package/dist/{chunk-RWFLWR5J.cjs → chunk-QJM7A4CR.cjs} +17 -15
  146. package/dist/{chunk-VU6AAZVY.cjs → chunk-RHGK2JEN.cjs} +65 -62
  147. package/dist/{chunk-QV4VE2OW.mjs → chunk-S6ENKNNG.mjs} +5 -3
  148. package/dist/{chunk-EMO6K4YY.cjs → chunk-SHFXCE5A.cjs} +7 -7
  149. package/dist/{chunk-EKN7NSZO.cjs → chunk-SZLNU3GJ.cjs} +8 -5
  150. package/dist/{chunk-WLL43JMO.mjs → chunk-T36UJS3X.mjs} +7 -5
  151. package/dist/{chunk-CNNOLE4O.mjs → chunk-T4II4MMW.mjs} +1 -1
  152. package/dist/{chunk-B6G5CKMC.mjs → chunk-T6DLMX5V.mjs} +11 -11
  153. package/dist/{chunk-4IE345DM.cjs → chunk-TAKG7ZCD.cjs} +14 -14
  154. package/dist/{chunk-SKVTP5PR.mjs → chunk-TFX4RTH2.mjs} +1 -62
  155. package/dist/chunk-TI7UANHI.cjs +77 -0
  156. package/dist/{chunk-ND2CWPOD.mjs → chunk-TS4JHGUJ.mjs} +1 -1
  157. package/dist/{chunk-6BK3K2GB.mjs → chunk-UIDWEU7M.mjs} +83 -44
  158. package/dist/{chunk-DRLKAXDM.mjs → chunk-UM3ZV5EP.mjs} +2 -2
  159. package/dist/{chunk-YWN746US.cjs → chunk-UMQAK3KP.cjs} +85 -54
  160. package/dist/chunk-UNJZGVPU.cjs +6 -0
  161. package/dist/{chunk-XKG2BLFN.cjs → chunk-UXMIFB44.cjs} +18 -35
  162. package/dist/{chunk-DMEPTZTI.mjs → chunk-VBN3UAPQ.mjs} +47 -7
  163. package/dist/chunk-VDRM36QB.cjs +963 -0
  164. package/dist/{chunk-RG4A6LB2.cjs → chunk-VNPXKF3G.cjs} +7 -7
  165. package/dist/chunk-VQDBNVOO.cjs +14 -0
  166. package/dist/chunk-VQGKD7RV.mjs +25 -0
  167. package/dist/{chunk-6HB6V3R7.mjs → chunk-WCWV25PG.mjs} +10 -27
  168. package/dist/{chunk-ZMSZZXOR.mjs → chunk-WDMIW6Q6.mjs} +0 -19
  169. package/dist/{chunk-4WVJLURN.mjs → chunk-WMHG64DA.mjs} +1 -1
  170. package/dist/{chunk-L4DD7ODZ.cjs → chunk-WSOBCAYO.cjs} +37 -35
  171. package/dist/{chunk-ARC7I3O2.mjs → chunk-WW374SGU.mjs} +1 -1
  172. package/dist/{chunk-J63ZH5OQ.cjs → chunk-X3GMHKO3.cjs} +2 -2
  173. package/dist/{chunk-VT4WFRHA.mjs → chunk-XJAEZCT6.mjs} +1 -1
  174. package/dist/{chunk-OCIEZME4.mjs → chunk-XKIUHXHW.mjs} +618 -343
  175. package/dist/{chunk-6XWDE2P2.cjs → chunk-XVIEGKTT.cjs} +30 -5
  176. package/dist/{chunk-N32CC42M.cjs → chunk-Y2GNNXGV.cjs} +72 -54
  177. package/dist/{chunk-ZJD2PN6Z.mjs → chunk-Y4QVEU67.mjs} +30 -18
  178. package/dist/chunk-Y5RG6B7S.mjs +77 -0
  179. package/dist/{chunk-QRKIMN7T.mjs → chunk-Y6LRPO2K.mjs} +13 -1
  180. package/dist/{chunk-BZHXGVMA.mjs → chunk-YJBWB6GF.mjs} +5 -3
  181. package/dist/{chunk-WXJLNP33.cjs → chunk-YR2P74F7.cjs} +9 -7
  182. package/dist/chunk-YZAKIXRL.cjs +67 -0
  183. package/dist/chunk-ZKVJYQPO.mjs +6095 -0
  184. package/dist/{chunk-POSPE3IO.mjs → chunk-ZOABCQGT.mjs} +27 -2
  185. package/dist/chunk-ZQRCSUSB.cjs +25 -0
  186. package/dist/{chunk-ZMMBIVQM.mjs → chunk-ZZGQD7A4.mjs} +16 -86
  187. package/dist/{client-plugins-DUrIYX9B.d.mts → client-plugins-B_5QbNrp.d.mts} +2551 -2653
  188. package/dist/{client-plugins-BvlNhGEB.d.ts → client-plugins-DgSfIWIF.d.ts} +2551 -2653
  189. package/dist/client-plugins.d.mts +5 -7
  190. package/dist/client-plugins.d.ts +5 -7
  191. package/dist/client.cjs +7 -7
  192. package/dist/client.d.mts +11 -12
  193. package/dist/client.d.ts +11 -12
  194. package/dist/client.mjs +6 -6
  195. package/dist/config.d.mts +5 -7
  196. package/dist/config.d.ts +5 -7
  197. package/dist/{devtools-VQWJANJV.cjs → devtools-ANJ7JAPQ.cjs} +21 -18
  198. package/dist/{devtools-JYJNOLPQ.mjs → devtools-VEQQDVHE.mjs} +20 -17
  199. package/dist/docs.cjs +23 -20
  200. package/dist/docs.d.mts +6 -8
  201. package/dist/docs.d.ts +6 -8
  202. package/dist/docs.mjs +22 -19
  203. package/dist/{endpoint-CA-TNX60.d.ts → endpoint-BOE0IAaG.d.ts} +6 -3
  204. package/dist/{endpoint-CCHFqyTE.d.mts → endpoint-DGZRZHux.d.mts} +6 -3
  205. package/dist/environment/vite.cjs +6 -2
  206. package/dist/environment/vite.d.mts +11 -2
  207. package/dist/environment/vite.d.ts +11 -2
  208. package/dist/environment/vite.mjs +5 -1
  209. package/dist/headers.cjs +4 -4
  210. package/dist/headers.mjs +3 -3
  211. package/dist/image/server.cjs +7 -3
  212. package/dist/image/server.d.mts +9 -1
  213. package/dist/image/server.d.ts +9 -1
  214. package/dist/image/server.mjs +6 -2
  215. package/dist/image/sharp.cjs +12 -10
  216. package/dist/image/sharp.mjs +4 -2
  217. package/dist/index.cjs +89 -69
  218. package/dist/index.d.mts +27 -24
  219. package/dist/index.d.ts +27 -24
  220. package/dist/index.mjs +102 -82
  221. package/dist/{integration-api-BPJo5oXb.d.ts → integration-api-BuPHMeKz.d.ts} +2 -2
  222. package/dist/{integration-api-0y4FXJpC.d.mts → integration-api-DWyMmvrR.d.mts} +2 -2
  223. package/dist/integration-orm-P2II2EBK.cjs +14 -0
  224. package/dist/{integration-orm-KV5B3BGZ.mjs → integration-orm-RBKCIQYZ.mjs} +4 -3
  225. package/dist/integrations.cjs +7 -5
  226. package/dist/integrations.d.mts +7 -9
  227. package/dist/integrations.d.ts +7 -9
  228. package/dist/integrations.mjs +6 -4
  229. package/dist/internal/app-markdown-runtime.cjs +6 -5
  230. package/dist/internal/app-markdown-runtime.d.mts +6 -8
  231. package/dist/internal/app-markdown-runtime.d.ts +6 -8
  232. package/dist/internal/app-markdown-runtime.mjs +5 -4
  233. package/dist/internal/build-runtime.cjs +57 -56
  234. package/dist/internal/build-runtime.d.mts +7 -9
  235. package/dist/internal/build-runtime.d.ts +7 -9
  236. package/dist/internal/build-runtime.mjs +56 -55
  237. package/dist/internal/cli-runtime.cjs +36 -30
  238. package/dist/internal/cli-runtime.mjs +36 -30
  239. package/dist/internal/client-error-overlay.cjs +4 -4
  240. package/dist/internal/client-error-overlay.mjs +1 -1
  241. package/dist/internal/compression-runtime.d.mts +5 -7
  242. package/dist/internal/compression-runtime.d.ts +5 -7
  243. package/dist/internal/config-runtime.cjs +21 -18
  244. package/dist/internal/config-runtime.d.mts +6 -8
  245. package/dist/internal/config-runtime.d.ts +6 -8
  246. package/dist/internal/config-runtime.mjs +20 -17
  247. package/dist/internal/docs-precompiled-runtime.cjs +3 -3
  248. package/dist/internal/docs-precompiled-runtime.mjs +2 -2
  249. package/dist/internal/infra-analytics-runtime.cjs +7 -7
  250. package/dist/internal/infra-analytics-runtime.mjs +5 -5
  251. package/dist/internal/metadata-image-runtime.cjs +4 -3
  252. package/dist/internal/metadata-image-runtime.mjs +3 -2
  253. package/dist/internal/product-telemetry-runtime.cjs +2 -2
  254. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  255. package/dist/internal/production-node-env.cjs +2 -2
  256. package/dist/internal/production-node-env.mjs +1 -1
  257. package/dist/internal/production-runtime.cjs +47 -28
  258. package/dist/internal/production-runtime.d.mts +25 -14
  259. package/dist/internal/production-runtime.d.ts +25 -14
  260. package/dist/internal/production-runtime.mjs +50 -31
  261. package/dist/layers-CM5i6T7z.d.mts +55 -0
  262. package/dist/layers-CM5i6T7z.d.ts +55 -0
  263. package/dist/markdown.cjs +4 -4
  264. package/dist/markdown.d.mts +5 -7
  265. package/dist/markdown.d.ts +5 -7
  266. package/dist/markdown.mjs +3 -3
  267. package/dist/middleware.cjs +16 -10
  268. package/dist/middleware.d.mts +7 -9
  269. package/dist/middleware.d.ts +7 -9
  270. package/dist/middleware.mjs +19 -13
  271. package/dist/navigation.cjs +6 -6
  272. package/dist/navigation.d.mts +8 -9
  273. package/dist/navigation.d.ts +8 -9
  274. package/dist/navigation.mjs +5 -5
  275. package/dist/{nitro-MPZJGPXK.mjs → nitro-NFG2LBRC.mjs} +3 -2
  276. package/dist/{nitro-7F65EZZS.cjs → nitro-S2QABUFA.cjs} +4 -3
  277. package/dist/observability.cjs +2 -2
  278. package/dist/observability.mjs +1 -1
  279. package/dist/plugin-DBBZ4JI2.cjs +32 -0
  280. package/dist/plugin-SYMK7PQ2.mjs +32 -0
  281. package/dist/plugin.cjs +56 -43
  282. package/dist/plugin.d.mts +23 -7
  283. package/dist/plugin.d.ts +23 -7
  284. package/dist/plugin.mjs +57 -44
  285. package/dist/{production-runtime-D2aMyzjr.d.ts → production-runtime-DfknD3g_.d.ts} +17 -3
  286. package/dist/{production-runtime-BQ4_WLwQ.d.mts → production-runtime-j_WCfuwB.d.mts} +17 -3
  287. package/dist/programmatic-routes-client-DcoxEaLe.d.mts +55 -0
  288. package/dist/programmatic-routes-client-DcoxEaLe.d.ts +55 -0
  289. package/dist/query/client.cjs +8 -8
  290. package/dist/query/client.mjs +3 -3
  291. package/dist/{render-plan-25p4hrj4.d.ts → render-plan-CFIhcYYS.d.ts} +1 -1
  292. package/dist/{render-plan-DtkXMN8D.d.mts → render-plan-ChUtsymc.d.mts} +1 -1
  293. package/dist/renderer-client.cjs +5 -5
  294. package/dist/renderer-client.d.mts +7 -8
  295. package/dist/renderer-client.d.ts +7 -8
  296. package/dist/renderer-client.mjs +2 -2
  297. package/dist/{request-DgCkIdcn.d.mts → request-F4HRwzSd.d.mts} +1 -1
  298. package/dist/{request-jF4jwx8f.d.ts → request-RJvelT8L.d.ts} +1 -1
  299. package/dist/request.cjs +3 -3
  300. package/dist/request.d.mts +6 -8
  301. package/dist/request.d.ts +6 -8
  302. package/dist/request.mjs +2 -2
  303. package/dist/{route-rendering-Bji6S6a_.d.ts → route-rendering-3a4fbNyC.d.mts} +1 -1
  304. package/dist/{route-rendering-CSBF78Ya.d.mts → route-rendering-D4coJ-kw.d.ts} +1 -1
  305. package/dist/{router-B09Ui3Qm.d.mts → router-DqIssGRO.d.mts} +1 -1
  306. package/dist/{router-CPB9cXtG.d.ts → router-WLEW3Te1.d.ts} +1 -1
  307. package/dist/routes.cjs +6 -5
  308. package/dist/routes.d.mts +5 -7
  309. package/dist/routes.d.ts +5 -7
  310. package/dist/routes.mjs +5 -4
  311. package/dist/{runtime-EDMwLdjv.d.ts → runtime-BrNdLOq9.d.ts} +3 -3
  312. package/dist/{runtime-CM6E6yuI.d.mts → runtime-CmE_j-js.d.mts} +3 -3
  313. package/dist/{schema-dev-notice-Y7MQEFGN.cjs → schema-dev-notice-5JPE67AI.cjs} +6 -4
  314. package/dist/{schema-dev-notice-O67CPXJ6.mjs → schema-dev-notice-WLPZ6WKU.mjs} +4 -2
  315. package/dist/server-action-security.cjs +4 -3
  316. package/dist/server-action-security.mjs +3 -2
  317. package/dist/server-client-bridge-DKWDl5NB.d.mts +7 -0
  318. package/dist/server-client-bridge-DKWDl5NB.d.ts +7 -0
  319. package/dist/server-fn-client.d.mts +3 -3
  320. package/dist/server-fn-client.d.ts +3 -3
  321. package/dist/server-fn.cjs +8 -7
  322. package/dist/server-fn.d.mts +1 -1
  323. package/dist/server-fn.d.ts +1 -1
  324. package/dist/server-fn.mjs +7 -6
  325. package/dist/server-plugins.cjs +5 -5
  326. package/dist/server-plugins.d.mts +6 -8
  327. package/dist/server-plugins.d.ts +6 -8
  328. package/dist/server-plugins.mjs +4 -4
  329. package/dist/server-query-client.d.mts +1 -1
  330. package/dist/server-query-client.d.ts +1 -1
  331. package/dist/server-query.cjs +9 -8
  332. package/dist/server-query.d.mts +1 -1
  333. package/dist/server-query.d.ts +1 -1
  334. package/dist/server-query.mjs +8 -7
  335. package/dist/server.cjs +97 -73
  336. package/dist/server.d.mts +16 -12
  337. package/dist/server.d.ts +16 -12
  338. package/dist/server.mjs +82 -58
  339. package/dist/{spa-router-Cgimzfbi.d.mts → spa-router-C41zjnFl.d.mts} +2 -2
  340. package/dist/{spa-router-B_N8XgVu.d.ts → spa-router-D_0VXqPC.d.ts} +2 -2
  341. package/dist/storage.cjs +6 -2
  342. package/dist/storage.d.mts +9 -1
  343. package/dist/storage.d.ts +9 -1
  344. package/dist/storage.mjs +5 -1
  345. package/dist/testing.cjs +20 -18
  346. package/dist/testing.d.mts +6 -8
  347. package/dist/testing.d.ts +6 -8
  348. package/dist/testing.mjs +16 -14
  349. package/dist/theme/server.cjs +4 -4
  350. package/dist/theme/server.mjs +3 -3
  351. package/dist/{utils-DZciYXYl.d.mts → utils-BKWSe3S7.d.mts} +1 -1
  352. package/dist/{utils-BNxAKAuT.d.ts → utils-YYcWsOJp.d.ts} +1 -1
  353. package/dist/version.cjs +2 -2
  354. package/dist/version.mjs +1 -1
  355. package/dist/vite.cjs +58 -45
  356. package/dist/vite.d.mts +92 -10
  357. package/dist/vite.d.ts +92 -10
  358. package/dist/vite.mjs +59 -46
  359. package/dist/{workflows-jZ4BcdoZ.d.ts → workflows-IWP1ddBm.d.mts} +5 -2
  360. package/dist/{workflows-jZ4BcdoZ.d.mts → workflows-IWP1ddBm.d.ts} +5 -2
  361. package/dist/workflows.cjs +4 -3
  362. package/dist/workflows.d.mts +1 -1
  363. package/dist/workflows.d.ts +1 -1
  364. package/dist/workflows.mjs +3 -2
  365. package/package.json +2 -1
  366. package/dist/chunk-3SDFA7UF.cjs +0 -701
  367. package/dist/chunk-E5GNDG5F.mjs +0 -701
  368. package/dist/integration-orm-55F7CII5.cjs +0 -13
@@ -5,66 +5,81 @@ import {
5
5
  // src/storage/index.ts
6
6
  import { createStorage, prefixStorage, builtinDrivers } from "unstorage";
7
7
  import memoryDriver from "unstorage/drivers/memory";
8
- var loadModule = /* @__PURE__ */ __name((specifier) => import(
9
- /* @vite-ignore */
10
- specifier
11
- ), "loadModule");
8
+ var STORAGE_MODULES_KEY = /* @__PURE__ */ Symbol.for("farmjs.storage.modules");
9
+ function getRegisteredStorageModules() {
10
+ return globalThis[STORAGE_MODULES_KEY];
11
+ }
12
+ __name(getRegisteredStorageModules, "getRegisteredStorageModules");
13
+ var loadModule = /* @__PURE__ */ __name((specifier) => {
14
+ const registered = getRegisteredStorageModules()?.[specifier];
15
+ return registered ? registered() : import(
16
+ /* @vite-ignore */
17
+ specifier
18
+ );
19
+ }, "loadModule");
20
+ function _registerFarmStorageModules(loaders) {
21
+ globalThis[STORAGE_MODULES_KEY] = {
22
+ ...getRegisteredStorageModules(),
23
+ ...loaders
24
+ };
25
+ }
26
+ __name(_registerFarmStorageModules, "_registerFarmStorageModules");
12
27
  var DATABASE_CONNECTORS = {
13
28
  sqlite: {
14
29
  connector: "node-sqlite",
15
- load: /* @__PURE__ */ __name(() => loadModule("db0/connectors/node-sqlite"), "load")
30
+ module: "db0/connectors/node-sqlite"
16
31
  },
17
32
  "node-sqlite": {
18
33
  connector: "node-sqlite",
19
- load: /* @__PURE__ */ __name(() => loadModule("db0/connectors/node-sqlite"), "load")
34
+ module: "db0/connectors/node-sqlite"
20
35
  },
21
36
  sqlite3: {
22
37
  connector: "sqlite3",
23
- load: /* @__PURE__ */ __name(() => loadModule("db0/connectors/sqlite3"), "load")
38
+ module: "db0/connectors/sqlite3"
24
39
  },
25
40
  "better-sqlite3": {
26
41
  connector: "better-sqlite3",
27
- load: /* @__PURE__ */ __name(() => loadModule("db0/connectors/better-sqlite3"), "load")
42
+ module: "db0/connectors/better-sqlite3"
28
43
  },
29
44
  postgres: {
30
45
  connector: "postgresql",
31
- load: /* @__PURE__ */ __name(() => loadModule("db0/connectors/postgresql"), "load")
46
+ module: "db0/connectors/postgresql"
32
47
  },
33
48
  postgresql: {
34
49
  connector: "postgresql",
35
- load: /* @__PURE__ */ __name(() => loadModule("db0/connectors/postgresql"), "load")
50
+ module: "db0/connectors/postgresql"
36
51
  },
37
52
  pg: {
38
53
  connector: "postgresql",
39
- load: /* @__PURE__ */ __name(() => loadModule("db0/connectors/postgresql"), "load")
54
+ module: "db0/connectors/postgresql"
40
55
  },
41
56
  mysql: {
42
57
  connector: "mysql2",
43
- load: /* @__PURE__ */ __name(() => loadModule("db0/connectors/mysql2"), "load")
58
+ module: "db0/connectors/mysql2"
44
59
  },
45
60
  mysql2: {
46
61
  connector: "mysql2",
47
- load: /* @__PURE__ */ __name(() => loadModule("db0/connectors/mysql2"), "load")
62
+ module: "db0/connectors/mysql2"
48
63
  },
49
64
  pglite: {
50
65
  connector: "pglite",
51
- load: /* @__PURE__ */ __name(() => loadModule("db0/connectors/pglite"), "load")
66
+ module: "db0/connectors/pglite"
52
67
  },
53
68
  planetscale: {
54
69
  connector: "planetscale",
55
- load: /* @__PURE__ */ __name(() => loadModule("db0/connectors/planetscale"), "load")
70
+ module: "db0/connectors/planetscale"
56
71
  },
57
72
  libsql: {
58
73
  connector: "libsql",
59
- load: /* @__PURE__ */ __name(() => loadModule("db0/connectors/libsql/node"), "load")
74
+ module: "db0/connectors/libsql/node"
60
75
  },
61
76
  "libsql-node": {
62
77
  connector: "libsql-node",
63
- load: /* @__PURE__ */ __name(() => loadModule("db0/connectors/libsql/node"), "load")
78
+ module: "db0/connectors/libsql/node"
64
79
  },
65
80
  "libsql-http": {
66
81
  connector: "libsql-http",
67
- load: /* @__PURE__ */ __name(() => loadModule("db0/connectors/libsql/http"), "load")
82
+ module: "db0/connectors/libsql/http"
68
83
  }
69
84
  };
70
85
  function createMemoryStorage() {
@@ -133,6 +148,7 @@ function extractDriverOptions(config) {
133
148
  }
134
149
  __name(extractDriverOptions, "extractDriverOptions");
135
150
  async function loadBuiltinDriver(name, options) {
151
+ if (name === "memory") return memoryDriver();
136
152
  const modulePath = builtinDrivers[name];
137
153
  if (!modulePath) {
138
154
  throw new Error(`Unsupported storage driver "${name}".`);
@@ -145,7 +161,7 @@ async function loadDatabaseDriver(config) {
145
161
  const connectorEntry = DATABASE_CONNECTORS[config.driver];
146
162
  const [{ createDatabase }, connectorModule, db0DriverModule] = await Promise.all([
147
163
  loadModule("db0"),
148
- connectorEntry.load(),
164
+ loadModule(connectorEntry.module),
149
165
  loadModule("unstorage/drivers/db0")
150
166
  ]);
151
167
  const database = createDatabase(connectorModule.default(extractDriverOptions(config) || {}));
@@ -184,7 +200,8 @@ async function resolveDriver(config) {
184
200
  );
185
201
  }
186
202
  __name(resolveDriver, "resolveDriver");
187
- function createStorageClientFromResolver(resolveDriver2) {
203
+ var STORAGE_CLIENT_MODULES_KEY = /* @__PURE__ */ Symbol.for("farmjs.storage.clientModules");
204
+ function createStorageClientFromResolver(resolveDriver2, modules = []) {
188
205
  let driverPromise;
189
206
  let storagePromise;
190
207
  const ensureDriver = /* @__PURE__ */ __name(() => {
@@ -216,7 +233,8 @@ function createStorageClientFromResolver(resolveDriver2) {
216
233
  kind: "farm-storage-client",
217
234
  ready: ensureStorage,
218
235
  createStorage: ensureStorage,
219
- resolveDriver: ensureDriver
236
+ resolveDriver: ensureDriver,
237
+ [STORAGE_CLIENT_MODULES_KEY]: modules
220
238
  };
221
239
  return new Proxy(target, {
222
240
  get(currentTarget, prop, receiver) {
@@ -249,7 +267,10 @@ function defineStorageClient(resolveDriver2) {
249
267
  }
250
268
  __name(defineStorageClient, "defineStorageClient");
251
269
  function createStorageClient(config) {
252
- return defineStorageClient(() => resolveDriver(config));
270
+ return createStorageClientFromResolver(
271
+ () => resolveDriver(config),
272
+ _collectFarmStorageModules(config)
273
+ );
253
274
  }
254
275
  __name(createStorageClient, "createStorageClient");
255
276
  function driverStorage(driver) {
@@ -257,14 +278,14 @@ function driverStorage(driver) {
257
278
  }
258
279
  __name(driverStorage, "driverStorage");
259
280
  function databaseStorage(database, options = {}) {
260
- return defineStorageClient(async () => {
281
+ return createStorageClientFromResolver(async () => {
261
282
  const db0DriverModule = await loadModule("unstorage/drivers/db0");
262
283
  const { dispose: _dispose, ...driver } = db0DriverModule.default({
263
284
  database,
264
285
  tableName: options.tableName
265
286
  });
266
287
  return driver;
267
- });
288
+ }, ["unstorage/drivers/db0"]);
268
289
  }
269
290
  __name(databaseStorage, "databaseStorage");
270
291
  function memoryStorage() {
@@ -377,6 +398,38 @@ function vercelBlobStorage(options) {
377
398
  });
378
399
  }
379
400
  __name(vercelBlobStorage, "vercelBlobStorage");
401
+ function collectDriverModules(config, modules) {
402
+ if (!config || typeof config !== "object") return;
403
+ if (isStorageClient(config)) {
404
+ const clientModules = config[STORAGE_CLIENT_MODULES_KEY];
405
+ if (Array.isArray(clientModules)) for (const module of clientModules) modules.add(module);
406
+ return;
407
+ }
408
+ if (isStorageInstance(config)) return;
409
+ const source = config;
410
+ const driver = source.driver;
411
+ if (typeof driver === "string") {
412
+ if (isDatabaseDriverName(driver)) {
413
+ modules.add("db0");
414
+ modules.add(DATABASE_CONNECTORS[driver].module);
415
+ modules.add("unstorage/drivers/db0");
416
+ } else if (driver !== "memory") {
417
+ const module = builtinDrivers[driver === "local" ? "fs-lite" : driver];
418
+ if (module) modules.add(module);
419
+ }
420
+ }
421
+ collectDriverModules(source.client, modules);
422
+ if (source.mounts && typeof source.mounts === "object") {
423
+ for (const mount of Object.values(source.mounts)) collectDriverModules(mount, modules);
424
+ }
425
+ }
426
+ __name(collectDriverModules, "collectDriverModules");
427
+ function _collectFarmStorageModules(config) {
428
+ const modules = /* @__PURE__ */ new Set();
429
+ collectDriverModules(config, modules);
430
+ return [...modules];
431
+ }
432
+ __name(_collectFarmStorageModules, "_collectFarmStorageModules");
380
433
  async function mountNamespaces(storage, mounts) {
381
434
  if (!mounts) {
382
435
  return;
@@ -434,6 +487,11 @@ function getStorage(namespace) {
434
487
  globalStorage = getActiveGlobalStorage();
435
488
  const base = normalizeMountKey(namespace);
436
489
  if (!base) {
490
+ if (namespace) {
491
+ throw new TypeError(
492
+ `getStorage(${JSON.stringify(namespace)}) names no namespace. Pass a non-empty name, or call getStorage() for the root store.`
493
+ );
494
+ }
437
495
  return globalStorage;
438
496
  }
439
497
  const namespaced = prefixStorage(globalStorage, base);
@@ -491,6 +549,7 @@ async function disposeStorage() {
491
549
  __name(disposeStorage, "disposeStorage");
492
550
 
493
551
  export {
552
+ _registerFarmStorageModules,
494
553
  defineStorageClient,
495
554
  createStorageClient,
496
555
  driverStorage,
@@ -512,6 +571,7 @@ export {
512
571
  netlifyBlobsStorage,
513
572
  vercelKVStorage,
514
573
  vercelBlobStorage,
574
+ _collectFarmStorageModules,
515
575
  createFarmStorage,
516
576
  resolveStorageRuntimeClient,
517
577
  initStorage,
@@ -1,33 +1,35 @@
1
1
  import {
2
2
  resolveIntegrationOrmRuntimeClient
3
- } from "./chunk-QV4VE2OW.mjs";
3
+ } from "./chunk-S6ENKNNG.mjs";
4
4
  import {
5
- collectSchemaExtensions,
6
5
  collectSchemaModels,
7
6
  columnTypeFamily,
8
7
  createSchemaExecutor,
9
8
  createSchemaSnapshot,
10
9
  describeForeignKeyApproval,
11
- describeSchemaExtensionApproval,
12
10
  describeSchemaTable,
13
11
  diffSchemaSnapshots,
14
12
  findSchemaTableOwners,
15
13
  getSqlColumnType,
16
14
  hasSchemaChanges,
17
- isSchemaExtensionAllowed,
18
15
  planCrossOwnerReferences,
19
16
  planOwnerSchemaSteps,
20
17
  planSchemaMigration,
21
18
  readSchemaState,
22
- readSchemaTables,
23
19
  withoutRenameTargets
24
- } from "./chunk-HALDNTIV.mjs";
20
+ } from "./chunk-BYR3RQPB.mjs";
21
+ import {
22
+ collectSchemaExtensions,
23
+ describeSchemaExtensionApproval,
24
+ isSchemaExtensionAllowed,
25
+ readSchemaTables
26
+ } from "./chunk-GC3EM6H4.mjs";
25
27
  import {
26
28
  resolveSchemaModels
27
- } from "./chunk-ZMSZZXOR.mjs";
29
+ } from "./chunk-WDMIW6Q6.mjs";
28
30
  import {
29
31
  getIntegrationSchemas
30
- } from "./chunk-IBUQWVYA.mjs";
32
+ } from "./chunk-AX7S67YV.mjs";
31
33
  import {
32
34
  __name
33
35
  } from "./chunk-LPEX4YW6.mjs";
@@ -304,61 +304,6 @@ if (import.meta.hot) {
304
304
  }
305
305
  _chunkS3JO3N4Hcjs.__name.call(void 0, generateFarmDevIndicatorsClientRuntime, "generateFarmDevIndicatorsClientRuntime");
306
306
 
307
- // src/plugin-dependencies.ts
308
- function pluginShortName(name) {
309
- return name.slice(Math.max(name.lastIndexOf(":"), name.lastIndexOf("/")) + 1);
310
- }
311
- _chunkS3JO3N4Hcjs.__name.call(void 0, pluginShortName, "pluginShortName");
312
- function assertPluginDependencies(plugins, integrations) {
313
- const integrationKeys = integrations && !Array.isArray(integrations) ? Object.keys(integrations) : [];
314
- const matches = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (plugin, dependency) => plugin.name === dependency || pluginShortName(plugin.name) === dependency, "matches");
315
- for (const plugin of plugins) {
316
- if (plugin.dependsOn === void 0) continue;
317
- if (!Array.isArray(plugin.dependsOn) || plugin.dependsOn.some((entry) => typeof entry !== "string" || entry.trim() === "")) {
318
- throw new TypeError(
319
- `Plugin "${plugin.name}" has an invalid \`dependsOn\`: list plugin names, such as ["teams"].`
320
- );
321
- }
322
- for (const dependency of plugin.dependsOn) {
323
- if (matches(plugin, dependency)) {
324
- throw new Error(`Plugin "${plugin.name}" lists itself in \`dependsOn\`.`);
325
- }
326
- const found = plugins.some((candidate) => candidate !== plugin && matches(candidate, dependency)) || integrationKeys.includes(dependency);
327
- if (!found) {
328
- const configured = [
329
- ...plugins.map((candidate) => candidate.name),
330
- ...integrationKeys
331
- ].filter((name) => name !== plugin.name);
332
- throw new Error(
333
- `Plugin "${plugin.name}" depends on "${dependency}", which is not configured. Add it to \`plugins\` (or \`integrations\`) in farm.config.${configured.length > 0 ? ` Configured: ${configured.join(", ")}.` : ""}`
334
- );
335
- }
336
- }
337
- }
338
- const state = /* @__PURE__ */ new Map();
339
- const path3 = [];
340
- const visit = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (plugin) => {
341
- if (state.get(plugin) === "done") return;
342
- if (state.get(plugin) === "visiting") {
343
- const cycle = [...path3.slice(path3.indexOf(plugin)), plugin].map(
344
- (entry) => pluginShortName(entry.name)
345
- );
346
- throw new Error(`Plugins depend on each other in a cycle: ${cycle.join(" \u2192 ")}.`);
347
- }
348
- state.set(plugin, "visiting");
349
- path3.push(plugin);
350
- for (const dependency of _nullishCoalesce(plugin.dependsOn, () => ( []))) {
351
- for (const candidate of plugins) {
352
- if (candidate !== plugin && matches(candidate, dependency)) visit(candidate);
353
- }
354
- }
355
- path3.pop();
356
- state.set(plugin, "done");
357
- }, "visit");
358
- for (const plugin of plugins) visit(plugin);
359
- }
360
- _chunkS3JO3N4Hcjs.__name.call(void 0, assertPluginDependencies, "assertPluginDependencies");
361
-
362
307
  // src/utils/source-dir.ts
363
308
  var _path = require('path'); var _path2 = _interopRequireDefault(_path);
364
309
  var FARM_PROJECT_SOURCE_DIRS = /* @__PURE__ */ Symbol.for("farm.projectSourceDirs");
@@ -501,6 +446,4 @@ _chunkS3JO3N4Hcjs.__name.call(void 0, validateFarmAuthConfig, "validateFarmAuthC
501
446
 
502
447
 
503
448
 
504
-
505
-
506
- exports.setFarmProjectSourceDir = setFarmProjectSourceDir; exports.getFarmProjectSourceDir = getFarmProjectSourceDir; exports.resolveFarmDevIndicatorsConfig = resolveFarmDevIndicatorsConfig; exports.generateFarmDevIndicatorsClientRuntime = generateFarmDevIndicatorsClientRuntime; exports.resolveFarmAuthConfig = resolveFarmAuthConfig; exports.resolveFarmAuthIntegration = resolveFarmAuthIntegration; exports.pluginShortName = pluginShortName; exports.assertPluginDependencies = assertPluginDependencies;
449
+ exports.setFarmProjectSourceDir = setFarmProjectSourceDir; exports.getFarmProjectSourceDir = getFarmProjectSourceDir; exports.resolveFarmDevIndicatorsConfig = resolveFarmDevIndicatorsConfig; exports.generateFarmDevIndicatorsClientRuntime = generateFarmDevIndicatorsClientRuntime; exports.resolveFarmAuthConfig = resolveFarmAuthConfig; exports.resolveFarmAuthIntegration = resolveFarmAuthIntegration;
@@ -5,17 +5,17 @@ import {
5
5
  isFarmDeployedRuntime,
6
6
  readFarmEnvironmentValue
7
7
  } from "./chunk-ONUEYC6N.mjs";
8
- import {
9
- createFarmRequestBodyErrorResponse,
10
- readFarmRequestBody,
11
- resolveFarmServerConfig
12
- } from "./chunk-ZMMBIVQM.mjs";
13
8
  import {
14
9
  toPosixPath
15
10
  } from "./chunk-KI3MESHB.mjs";
16
11
  import {
17
12
  searchParamsToObject
18
13
  } from "./chunk-QVKYGNVM.mjs";
14
+ import {
15
+ createFarmRequestBodyErrorResponse,
16
+ readFarmRequestBody,
17
+ resolveFarmServerConfig
18
+ } from "./chunk-ZZGQD7A4.mjs";
19
19
  import {
20
20
  validateConfigRouteSource
21
21
  } from "./chunk-SAXPH6G5.mjs";
@@ -1,6 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkKIIMAWOJcjs = require('./chunk-KIIMAWOJ.cjs');
3
+ var _chunkUNJZGVPUcjs = require('./chunk-UNJZGVPU.cjs');
4
+
5
+
6
+ var _chunk5NAVKJCZcjs = require('./chunk-5NAVKJCZ.cjs');
4
7
 
5
8
 
6
9
  var _chunkS3JO3N4Hcjs = require('./chunk-S3JO3N4H.cjs');
@@ -122,7 +125,7 @@ ${negotiatedFormat}`;
122
125
  return entry;
123
126
  });
124
127
  }
125
- return createOptimizedImageResponse(request, optimized, config);
128
+ return createOptimizedImageResponse(request, optimized);
126
129
  } catch (error) {
127
130
  if (!(error instanceof FarmImageRequestError) && !isAbortError(error)) {
128
131
  try {
@@ -352,14 +355,18 @@ async function fetchImageSource(initialUrl, requestOrigin, trustedLocalOrigin, c
352
355
  let currentUrl = initialUrl;
353
356
  for (let redirectCount = 0; ; redirectCount += 1) {
354
357
  throwIfAborted(signal);
355
- const sourceFetcher = currentUrl.origin === trustedLocalOrigin ? fetcher : _nullishCoalesce(fetchRemote, () => ( fetcher));
358
+ const isTrustedLocal = currentUrl.origin === trustedLocalOrigin;
359
+ const sourceFetcher = isTrustedLocal ? fetcher : _nullishCoalesce(fetchRemote, () => ( fetcher));
356
360
  const response = await sourceFetcher(currentUrl, {
357
361
  method: "GET",
358
362
  redirect: "manual",
359
363
  signal,
360
364
  headers: {
361
365
  accept: "image/avif,image/webp,image/*,*/*;q=0.8",
362
- "user-agent": "Farm.js Image Optimizer"
366
+ "user-agent": "Farm.js Image Optimizer",
367
+ // This server fetching from itself arrives from a loopback address.
368
+ // Mark it so the app sees an anonymous visitor, not a trusted local one.
369
+ ...isTrustedLocal ? { [FARM_IMAGE_SOURCE_HEADER]: getFarmImageSourceToken() } : {}
363
370
  }
364
371
  });
365
372
  if (![301, 302, 303, 307, 308].includes(response.status)) {
@@ -398,6 +405,19 @@ async function fetchImageSource(initialUrl, requestOrigin, trustedLocalOrigin, c
398
405
  }
399
406
  }
400
407
  _chunkS3JO3N4Hcjs.__name.call(void 0, fetchImageSource, "fetchImageSource");
408
+ var FARM_IMAGE_SOURCE_HEADER = "x-farm-image-source";
409
+ var FARM_IMAGE_SOURCE_TOKEN = /* @__PURE__ */ Symbol.for("farm.image.sourceToken");
410
+ function getFarmImageSourceToken() {
411
+ const state = globalThis;
412
+ return _nullishCoalesce(state[FARM_IMAGE_SOURCE_TOKEN], () => ( (state[FARM_IMAGE_SOURCE_TOKEN] = globalThis.crypto.randomUUID())));
413
+ }
414
+ _chunkS3JO3N4Hcjs.__name.call(void 0, getFarmImageSourceToken, "getFarmImageSourceToken");
415
+ function _withFarmImageSourceClientAddress(request, context) {
416
+ const token = globalThis[FARM_IMAGE_SOURCE_TOKEN];
417
+ if (!token || request.headers.get(FARM_IMAGE_SOURCE_HEADER) !== token) return context;
418
+ return { ...context, clientAddress: _chunkUNJZGVPUcjs.FARM_ANONYMOUS_CLIENT_ADDRESS };
419
+ }
420
+ _chunkS3JO3N4Hcjs.__name.call(void 0, _withFarmImageSourceClientAddress, "_withFarmImageSourceClientAddress");
401
421
  function resolveTrustedLocalOrigin(configured) {
402
422
  const value = typeof configured === "function" ? configured() : configured;
403
423
  if (!value) return void 0;
@@ -532,12 +552,23 @@ function validateTransformedResult(result, config) {
532
552
  if (!contentType || contentType === "image/svg+xml" && !config.dangerouslyAllowSVG) {
533
553
  throw new Error("The image transformer returned an unsupported content type");
534
554
  }
555
+ if (detectImageContentType(result.body) !== contentType) {
556
+ throw new Error("The image transformer returned bytes that do not match their content type");
557
+ }
535
558
  result.contentType = contentType;
536
559
  }
537
560
  _chunkS3JO3N4Hcjs.__name.call(void 0, validateTransformedResult, "validateTransformedResult");
561
+ var OPTIMIZED_IMAGE_TYPES = /* @__PURE__ */ new Set([
562
+ "image/png",
563
+ "image/jpeg",
564
+ "image/gif",
565
+ "image/webp",
566
+ "image/avif",
567
+ "image/svg+xml"
568
+ ]);
538
569
  function normalizeImageContentType(value) {
539
570
  const type = _nullishCoalesce(_optionalChain([value, 'optionalAccess', _10 => _10.split, 'call', _11 => _11(";", 1), 'access', _12 => _12[0], 'access', _13 => _13.trim, 'call', _14 => _14(), 'access', _15 => _15.toLowerCase, 'call', _16 => _16()]), () => ( ""));
540
- return type.startsWith("image/") ? type : "";
571
+ return OPTIMIZED_IMAGE_TYPES.has(type) ? type : "";
541
572
  }
542
573
  _chunkS3JO3N4Hcjs.__name.call(void 0, normalizeImageContentType, "normalizeImageContentType");
543
574
  function matchesRemoteSource(url, config) {
@@ -570,7 +601,7 @@ function matchesHostname(hostname, pattern) {
570
601
  return normalizedHostname === normalizedPattern;
571
602
  }
572
603
  _chunkS3JO3N4Hcjs.__name.call(void 0, matchesHostname, "matchesHostname");
573
- function createOptimizedImageResponse(request, image, config) {
604
+ function createOptimizedImageResponse(request, image) {
574
605
  const headers = new Headers({
575
606
  "cache-control": image.cacheControl,
576
607
  "content-type": image.contentType,
@@ -578,12 +609,12 @@ function createOptimizedImageResponse(request, image, config) {
578
609
  "content-disposition": "inline",
579
610
  etag: image.etag,
580
611
  vary: "Accept",
581
- "x-content-type-options": "nosniff"
612
+ "x-content-type-options": "nosniff",
613
+ // Every optimized image, not only SVG: if a response is ever rendered as a
614
+ // document, it still cannot run script or load anything.
615
+ "content-security-policy": "default-src 'none'; sandbox"
582
616
  });
583
- if (image.contentType === "image/svg+xml" && config.dangerouslyAllowSVG) {
584
- headers.set("content-security-policy", "default-src 'none'; sandbox");
585
- }
586
- if (_chunkKIIMAWOJcjs.matchesFarmIfNoneMatch.call(void 0, request.headers.get("if-none-match"), image.etag)) {
617
+ if (_chunk5NAVKJCZcjs.matchesFarmIfNoneMatch.call(void 0, request.headers.get("if-none-match"), image.etag)) {
587
618
  headers.delete("content-length");
588
619
  return new Response(null, { status: 304, headers });
589
620
  }
@@ -661,4 +692,5 @@ var FarmImageMemoryCache = _FarmImageMemoryCache;
661
692
 
662
693
 
663
694
 
664
- exports.FarmImageRequestError = FarmImageRequestError; exports.createFarmImageHandler = createFarmImageHandler; exports.createCloudflareImageTransformer = createCloudflareImageTransformer; exports.selectOutputFormat = selectOutputFormat; exports.isPrivateImageAddress = isPrivateImageAddress;
695
+
696
+ exports.FarmImageRequestError = FarmImageRequestError; exports.createFarmImageHandler = createFarmImageHandler; exports.createCloudflareImageTransformer = createCloudflareImageTransformer; exports.selectOutputFormat = selectOutputFormat; exports.isPrivateImageAddress = isPrivateImageAddress; exports._withFarmImageSourceClientAddress = _withFarmImageSourceClientAddress;
@@ -3,10 +3,10 @@
3
3
  var _chunkXSIRSMAScjs = require('./chunk-XSIRSMAS.cjs');
4
4
 
5
5
 
6
- var _chunkE2ROOWQCcjs = require('./chunk-E2ROOWQC.cjs');
6
+ var _chunk4U5XZDLGcjs = require('./chunk-4U5XZDLG.cjs');
7
7
 
8
8
 
9
- var _chunkJSROZYYOcjs = require('./chunk-JSROZYYO.cjs');
9
+ var _chunk6D24SDKOcjs = require('./chunk-6D24SDKO.cjs');
10
10
 
11
11
 
12
12
  var _chunkSYQ3MOWWcjs = require('./chunk-SYQ3MOWW.cjs');
@@ -19,23 +19,23 @@ var _chunk6EODJYCXcjs = require('./chunk-6EODJYCX.cjs');
19
19
  var _chunkTIWHTW3Qcjs = require('./chunk-TIWHTW3Q.cjs');
20
20
 
21
21
 
22
+ var _chunkPSV6XKPOcjs = require('./chunk-PSV6XKPO.cjs');
22
23
 
23
- var _chunkWBKEZXWEcjs = require('./chunk-WBKEZXWE.cjs');
24
24
 
25
25
 
26
- var _chunkPSV6XKPOcjs = require('./chunk-PSV6XKPO.cjs');
26
+ var _chunkWBKEZXWEcjs = require('./chunk-WBKEZXWE.cjs');
27
27
 
28
28
 
29
29
  var _chunkM7MKQXAFcjs = require('./chunk-M7MKQXAF.cjs');
30
30
 
31
31
 
32
- var _chunkFUCSUGDMcjs = require('./chunk-FUCSUGDM.cjs');
32
+ var _chunk4A3YUB4Dcjs = require('./chunk-4A3YUB4D.cjs');
33
33
 
34
34
 
35
35
  var _chunkUFDAAQFXcjs = require('./chunk-UFDAAQFX.cjs');
36
36
 
37
37
 
38
- var _chunkIWZKTWHZcjs = require('./chunk-IWZKTWHZ.cjs');
38
+ var _chunkCA62IQY3cjs = require('./chunk-CA62IQY3.cjs');
39
39
 
40
40
 
41
41
  var _chunk5QIKR7RRcjs = require('./chunk-5QIKR7RR.cjs');
@@ -736,7 +736,7 @@ async function createRouteTypeDeclarations(options, outPath) {
736
736
  }
737
737
  }
738
738
  }
739
- for (const route of await _chunkFUCSUGDMcjs.discoverProgrammaticRoutePaths.call(void 0, source.root, source.srcDir)) {
739
+ for (const route of await _chunk4A3YUB4Dcjs.discoverProgrammaticRoutePaths.call(void 0, source.root, source.srcDir)) {
740
740
  patterns.add(route);
741
741
  routeModulePatterns.add(route);
742
742
  }
@@ -1010,10 +1010,10 @@ function createSyncModelTypeDeclarations(plugins) {
1010
1010
  const rowEntries = [];
1011
1011
  const insertEntries = [];
1012
1012
  for (const plugin of _nullishCoalesce(plugins, () => ( []))) {
1013
- const declaration = _chunkE2ROOWQCcjs.readSchemaTables.call(void 0, plugin);
1013
+ const declaration = _chunk4U5XZDLGcjs.readSchemaTables.call(void 0, plugin);
1014
1014
  if (!declaration || declaration.name !== "sync") continue;
1015
1015
  const exposed = declaration.models ? new Set(declaration.models) : null;
1016
- const models = _chunkJSROZYYOcjs.resolveSchemaModels.call(void 0, declaration.name, declaration.schema);
1016
+ const models = _chunk6D24SDKOcjs.resolveSchemaModels.call(void 0, declaration.name, declaration.schema);
1017
1017
  for (const [modelKey, model] of Object.entries(models)) {
1018
1018
  if (exposed && !exposed.has(modelKey)) continue;
1019
1019
  if (model.external) continue;
@@ -1132,7 +1132,7 @@ async function generateFarmTypeArtifacts(options) {
1132
1132
  const generator = new (0, _chunkXSIRSMAScjs.APITypeGenerator)(appDirs);
1133
1133
  const apiRoutes = generator.scanAPIRoutes();
1134
1134
  const apiTypesPath = options.apiTypesOutFile ? _path.resolve.call(void 0, root, options.apiTypesOutFile) : _path.join.call(void 0, root, srcDir, "lib", "api.generated.ts");
1135
- const pluginRoutes = _chunkIWZKTWHZcjs.resolvePluginRoutes.call(void 0, options.plugins);
1135
+ const pluginRoutes = _chunkCA62IQY3cjs.resolvePluginRoutes.call(void 0, options.plugins);
1136
1136
  const configFiles = [
1137
1137
  ...(_nullishCoalesce(options.layers, () => ( []))).map((layer) => layer.configFile).filter((file) => Boolean(file)),
1138
1138
  options.configPath ? _path.resolve.call(void 0, root, options.configPath) : [
@@ -442,6 +442,18 @@ function parseRouteSegment(segment) {
442
442
  return { segment, isDynamic: false, isOptional: false, isCatchAll: false };
443
443
  }
444
444
  __name(parseRouteSegment, "parseRouteSegment");
445
+ var PROGRAMMATIC_ROUTE_SOURCE = /* @__PURE__ */ Symbol.for("farm.routes.source");
446
+ var TRACK_PROGRAMMATIC_ROUTE_SOURCES = /* @__PURE__ */ Symbol.for("farm.routes.trackSources");
447
+ function trackProgrammaticRouteSources() {
448
+ globalThis[TRACK_PROGRAMMATIC_ROUTE_SOURCES] = true;
449
+ }
450
+ __name(trackProgrammaticRouteSources, "trackProgrammaticRouteSources");
451
+ function getProgrammaticRouteDefinitionSource(route) {
452
+ if (!route || typeof route !== "object") return void 0;
453
+ const source = route[PROGRAMMATIC_ROUTE_SOURCE];
454
+ return source && typeof source === "object" && Array.isArray(source.stacks) ? source : void 0;
455
+ }
456
+ __name(getProgrammaticRouteDefinitionSource, "getProgrammaticRouteDefinitionSource");
445
457
 
446
458
  export {
447
459
  extractProgrammaticPageCallPathLiterals,
@@ -451,5 +463,10 @@ export {
451
463
  createProgrammaticRouteModuleId,
452
464
  parseProgrammaticRouteModuleId,
453
465
  parseProgrammaticRoutePath,
454
- scanProgrammaticPagePaths
466
+ scanProgrammaticPagePaths,
467
+ normalizeProgrammaticRoutePath,
468
+ PROGRAMMATIC_ROUTE_SOURCE,
469
+ TRACK_PROGRAMMATIC_ROUTE_SOURCES,
470
+ trackProgrammaticRouteSources,
471
+ getProgrammaticRouteDefinitionSource
455
472
  };
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  emitFarmEvent
3
- } from "./chunk-FUZEBRP3.mjs";
3
+ } from "./chunk-4GP3XZ4Z.mjs";
4
4
  import {
5
5
  __name
6
6
  } from "./chunk-LPEX4YW6.mjs";