@farm.js/core 0.1.39 → 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 (362) hide show
  1. package/dist/{agent-mcp-BhneNPb4.d.mts → agent-mcp-DRlXq3lM.d.ts} +1 -1
  2. package/dist/{agent-mcp-HcTYQmNX.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-CMkoghtp.d.ts → app-CDJHPqZn.d.ts} +11 -4
  28. package/dist/{app-DVzmmbNO.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-QYMZOOC5.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-YFYUYWL7.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-RW63BOV7.cjs → chunk-7FHZ3E6D.cjs} +2 -2
  61. package/dist/chunk-7GNWGLWB.mjs +14 -0
  62. package/dist/{chunk-34UCJRQO.cjs → chunk-7RNAKBWF.cjs} +2 -2
  63. package/dist/{chunk-MSSFIQGM.mjs → chunk-7VAJSSPG.mjs} +41 -10
  64. package/dist/{chunk-PVZE2JGJ.mjs → chunk-ACLPN56I.mjs} +43 -25
  65. package/dist/{chunk-JCYYXBAJ.cjs → chunk-AGR7F3LA.cjs} +3 -3
  66. package/dist/{chunk-UPJLHLJU.cjs → chunk-ALPWLT27.cjs} +4 -4
  67. package/dist/{chunk-ATSDUUFK.mjs → chunk-AX7S67YV.mjs} +33 -40
  68. package/dist/{chunk-CUM5NYL5.mjs → chunk-AXB5P7BK.mjs} +1 -1
  69. package/dist/{chunk-2ZYGC6SS.cjs → chunk-B6IMBBOS.cjs} +3 -3
  70. package/dist/{chunk-472NCAZ7.cjs → chunk-B77AUCBV.cjs} +3 -3
  71. package/dist/{chunk-H5CLOUZS.cjs → chunk-BMOBTMDR.cjs} +5 -5
  72. package/dist/{chunk-CQMVIOYP.mjs → chunk-BPGO2IEP.mjs} +7 -7
  73. package/dist/{chunk-E2ROOWQC.cjs → chunk-BPOTSHDO.cjs} +24 -87
  74. package/dist/chunk-BRYPZIMB.mjs +6 -0
  75. package/dist/{chunk-WFRT7JPX.mjs → chunk-BYQVROIP.mjs} +2 -2
  76. package/dist/{chunk-HALDNTIV.mjs → chunk-BYR3RQPB.mjs} +10 -73
  77. package/dist/{chunk-IWZKTWHZ.cjs → chunk-CA62IQY3.cjs} +7 -2
  78. package/dist/chunk-CALY6QG6.mjs +963 -0
  79. package/dist/{chunk-WC5UV2HQ.cjs → chunk-CBXBGM72.cjs} +2 -2
  80. package/dist/{chunk-WW46B6HA.cjs → chunk-CGR525MJ.cjs} +84 -45
  81. package/dist/{chunk-6V4TDWEC.cjs → chunk-CGVPXIRN.cjs} +18 -1
  82. package/dist/{chunk-677THUVP.mjs → chunk-CKFK3Z2V.mjs} +1 -1
  83. package/dist/chunk-CZS6OACQ.mjs +63 -0
  84. package/dist/{chunk-SGBJ247Q.cjs → chunk-D4ROBNTK.cjs} +2 -2
  85. package/dist/{chunk-WEW2JVA4.cjs → chunk-D5IHNDHI.cjs} +6 -6
  86. package/dist/{chunk-ULASELLA.cjs → chunk-DATEWH3W.cjs} +13 -1
  87. package/dist/{chunk-QUCXCDE2.cjs → chunk-DKU6NXRK.cjs} +1 -1
  88. package/dist/{chunk-NBBEQLOK.cjs → chunk-E55H6UKH.cjs} +9 -9
  89. package/dist/{chunk-AS2VPMEE.cjs → chunk-EGCT3AHF.cjs} +1440 -8172
  90. package/dist/{chunk-SDOTRX3V.cjs → chunk-EORXKFLR.cjs} +7 -7
  91. package/dist/{chunk-HD5CF3OE.mjs → chunk-ETPEZLS3.mjs} +2 -2
  92. package/dist/{chunk-RVXFINNS.cjs → chunk-EW4MEVLE.cjs} +30 -30
  93. package/dist/{chunk-HYTZYOW2.mjs → chunk-FCOLU5P6.mjs} +1172 -7904
  94. package/dist/chunk-FGH3ZXTP.mjs +1063 -0
  95. package/dist/{chunk-HRETEZ2Z.cjs → chunk-FLZ4H25A.cjs} +37 -35
  96. package/dist/chunk-FVPXT2JR.cjs +63 -0
  97. package/dist/{chunk-D2ULAULS.cjs → chunk-FXFKIJDA.cjs} +9 -7
  98. package/dist/chunk-GC3EM6H4.mjs +80 -0
  99. package/dist/chunk-GKQL726H.cjs +6096 -0
  100. package/dist/{chunk-5PWXMJOH.cjs → chunk-GNVEJUT5.cjs} +36 -36
  101. package/dist/{chunk-E3UK5IIB.cjs → chunk-GS3WR5HX.cjs} +5 -3
  102. package/dist/{chunk-QFW2IH5E.mjs → chunk-GZTUT75U.mjs} +5 -2
  103. package/dist/chunk-H3EGVQE5.mjs +22 -0
  104. package/dist/{chunk-LMPAPBUA.cjs → chunk-H44XGLFU.cjs} +36 -68
  105. package/dist/{chunk-SOP2EAA6.mjs → chunk-H56MQYEG.mjs} +1 -1
  106. package/dist/chunk-HANGSYMB.mjs +67 -0
  107. package/dist/{chunk-5BWWFHR2.mjs → chunk-HBEBV7OZ.mjs} +3 -3
  108. package/dist/{chunk-RSOJ7DRT.mjs → chunk-HCSVR4YZ.mjs} +1 -58
  109. package/dist/{chunk-P3PLW4FR.mjs → chunk-HKFBMHCD.mjs} +4 -4
  110. package/dist/{chunk-MLY2RP5R.mjs → chunk-I63UCMXW.mjs} +6 -2
  111. package/dist/{chunk-TO4GJ56K.cjs → chunk-I64GEPOB.cjs} +58 -18
  112. package/dist/{chunk-VNGH5MLF.mjs → chunk-I6UVKUYK.mjs} +1 -1
  113. package/dist/{chunk-EPYU2EBL.mjs → chunk-IF4NU2NG.mjs} +1 -1
  114. package/dist/{chunk-IVLZZZEI.mjs → chunk-IM7DY3ED.mjs} +1 -1
  115. package/dist/{chunk-YKZRDB5Z.mjs → chunk-IMQO6ZUU.mjs} +2 -2
  116. package/dist/{chunk-F5QO4FNE.mjs → chunk-INQ64HTJ.mjs} +43 -11
  117. package/dist/{chunk-BXDJXFQG.cjs → chunk-IRYK4Z5M.cjs} +4 -4
  118. package/dist/{chunk-UWPLULNK.mjs → chunk-JGHCKIRI.mjs} +84 -24
  119. package/dist/{chunk-BFJTHYTN.mjs → chunk-JIYYX7WU.mjs} +10 -8
  120. package/dist/{chunk-6MVFL3R5.cjs → chunk-JR4QCLJY.cjs} +1 -58
  121. package/dist/{chunk-Q2KB32T4.mjs → chunk-JXB6DVCO.mjs} +5 -5
  122. package/dist/{chunk-CGBDNNSM.cjs → chunk-KEXK442I.cjs} +44 -12
  123. package/dist/{chunk-5D2JIPLH.cjs → chunk-KK22JPQM.cjs} +10 -10
  124. package/dist/{chunk-EA5K5BKU.mjs → chunk-KNHBTJP6.mjs} +18 -1
  125. package/dist/{chunk-MVL2RAJW.mjs → chunk-KYN5ODF6.mjs} +1 -1
  126. package/dist/{chunk-B5J2YVG7.cjs → chunk-LDPKAYVS.cjs} +2 -2
  127. package/dist/chunk-LFHCG2DU.mjs +43 -0
  128. package/dist/{chunk-FZ6YYU2W.mjs → chunk-MGMF4VP7.mjs} +38 -1
  129. package/dist/{chunk-KTSUBU2E.mjs → chunk-MNUSIXGS.mjs} +2 -2
  130. package/dist/{chunk-MYIZXDZA.mjs → chunk-MOSYH4CY.mjs} +1 -1
  131. package/dist/{chunk-4ZFL5GFN.cjs → chunk-OILHPMFX.cjs} +86 -26
  132. package/dist/{chunk-AJQTP4OO.mjs → chunk-OJ7JP7RJ.mjs} +1 -1
  133. package/dist/{chunk-VWBHM3F6.mjs → chunk-OLQ73ZO5.mjs} +1 -1
  134. package/dist/{chunk-5OKBARDN.cjs → chunk-OZN4XL6L.cjs} +10 -10
  135. package/dist/{chunk-T5OJPTVN.cjs → chunk-P4TYB4SF.cjs} +2 -2
  136. package/dist/chunk-P7XDC7UJ.mjs +92 -0
  137. package/dist/{chunk-5ULKUBIA.cjs → chunk-PGW7HZE2.cjs} +6 -6
  138. package/dist/{chunk-SHLXACIO.cjs → chunk-PJ42JESY.cjs} +1 -9
  139. package/dist/{chunk-U6QLDL3G.mjs → chunk-PNCM5MFD.mjs} +1 -1
  140. package/dist/{chunk-OAHTRMIC.mjs → chunk-PYQ3ZG4Z.mjs} +11 -11
  141. package/dist/{chunk-KMTGADN3.mjs → chunk-QCVIRVHE.mjs} +1 -9
  142. package/dist/{chunk-RWFLWR5J.cjs → chunk-QJM7A4CR.cjs} +17 -15
  143. package/dist/{chunk-BWIQR4DH.cjs → chunk-RHGK2JEN.cjs} +56 -63
  144. package/dist/{chunk-QV4VE2OW.mjs → chunk-S6ENKNNG.mjs} +5 -3
  145. package/dist/{chunk-HRSAQ23K.cjs → chunk-SHFXCE5A.cjs} +4 -4
  146. package/dist/{chunk-EKN7NSZO.cjs → chunk-SZLNU3GJ.cjs} +8 -5
  147. package/dist/{chunk-WLL43JMO.mjs → chunk-T36UJS3X.mjs} +7 -5
  148. package/dist/{chunk-CNNOLE4O.mjs → chunk-T4II4MMW.mjs} +1 -1
  149. package/dist/{chunk-GKBWWRBG.mjs → chunk-T6DLMX5V.mjs} +11 -11
  150. package/dist/{chunk-CIOT4HGT.cjs → chunk-TAKG7ZCD.cjs} +14 -14
  151. package/dist/{chunk-SKVTP5PR.mjs → chunk-TFX4RTH2.mjs} +1 -62
  152. package/dist/chunk-TI7UANHI.cjs +77 -0
  153. package/dist/{chunk-6BK3K2GB.mjs → chunk-UIDWEU7M.mjs} +83 -44
  154. package/dist/{chunk-EGCTIS5F.mjs → chunk-UM3ZV5EP.mjs} +1 -1
  155. package/dist/{chunk-YWN746US.cjs → chunk-UMQAK3KP.cjs} +85 -54
  156. package/dist/chunk-UNJZGVPU.cjs +6 -0
  157. package/dist/{chunk-XKG2BLFN.cjs → chunk-UXMIFB44.cjs} +18 -35
  158. package/dist/{chunk-DMEPTZTI.mjs → chunk-VBN3UAPQ.mjs} +47 -7
  159. package/dist/chunk-VDRM36QB.cjs +963 -0
  160. package/dist/{chunk-RG4A6LB2.cjs → chunk-VNPXKF3G.cjs} +7 -7
  161. package/dist/chunk-VQDBNVOO.cjs +14 -0
  162. package/dist/chunk-VQGKD7RV.mjs +25 -0
  163. package/dist/{chunk-6HB6V3R7.mjs → chunk-WCWV25PG.mjs} +10 -27
  164. package/dist/{chunk-ZMSZZXOR.mjs → chunk-WDMIW6Q6.mjs} +0 -19
  165. package/dist/{chunk-4WVJLURN.mjs → chunk-WMHG64DA.mjs} +1 -1
  166. package/dist/{chunk-A657YSP4.cjs → chunk-WSOBCAYO.cjs} +37 -35
  167. package/dist/{chunk-ARC7I3O2.mjs → chunk-WW374SGU.mjs} +1 -1
  168. package/dist/{chunk-J63ZH5OQ.cjs → chunk-X3GMHKO3.cjs} +2 -2
  169. package/dist/{chunk-VT4WFRHA.mjs → chunk-XJAEZCT6.mjs} +1 -1
  170. package/dist/{chunk-ZUPXLIGB.mjs → chunk-XKIUHXHW.mjs} +618 -343
  171. package/dist/{chunk-6XWDE2P2.cjs → chunk-XVIEGKTT.cjs} +30 -5
  172. package/dist/{chunk-QG775BRV.cjs → chunk-Y2GNNXGV.cjs} +72 -54
  173. package/dist/{chunk-75HN5IZ3.mjs → chunk-Y4QVEU67.mjs} +21 -19
  174. package/dist/chunk-Y5RG6B7S.mjs +77 -0
  175. package/dist/{chunk-QRKIMN7T.mjs → chunk-Y6LRPO2K.mjs} +13 -1
  176. package/dist/{chunk-BZHXGVMA.mjs → chunk-YJBWB6GF.mjs} +5 -3
  177. package/dist/{chunk-WXJLNP33.cjs → chunk-YR2P74F7.cjs} +9 -7
  178. package/dist/chunk-YZAKIXRL.cjs +67 -0
  179. package/dist/chunk-ZKVJYQPO.mjs +6095 -0
  180. package/dist/{chunk-POSPE3IO.mjs → chunk-ZOABCQGT.mjs} +27 -2
  181. package/dist/chunk-ZQRCSUSB.cjs +25 -0
  182. package/dist/{chunk-ZMMBIVQM.mjs → chunk-ZZGQD7A4.mjs} +16 -86
  183. package/dist/{client-plugins-CsCuCLBz.d.mts → client-plugins-B_5QbNrp.d.mts} +2544 -2664
  184. package/dist/{client-plugins-D0ke-Hc8.d.ts → client-plugins-DgSfIWIF.d.ts} +2544 -2664
  185. package/dist/client-plugins.d.mts +5 -7
  186. package/dist/client-plugins.d.ts +5 -7
  187. package/dist/client.cjs +5 -5
  188. package/dist/client.d.mts +11 -12
  189. package/dist/client.d.ts +11 -12
  190. package/dist/client.mjs +4 -4
  191. package/dist/config.d.mts +5 -7
  192. package/dist/config.d.ts +5 -7
  193. package/dist/{devtools-LW4QQ5J3.cjs → devtools-ANJ7JAPQ.cjs} +21 -18
  194. package/dist/{devtools-5AFIPVUJ.mjs → devtools-VEQQDVHE.mjs} +20 -17
  195. package/dist/docs.cjs +23 -20
  196. package/dist/docs.d.mts +6 -8
  197. package/dist/docs.d.ts +6 -8
  198. package/dist/docs.mjs +22 -19
  199. package/dist/{endpoint-CA-TNX60.d.ts → endpoint-BOE0IAaG.d.ts} +6 -3
  200. package/dist/{endpoint-CCHFqyTE.d.mts → endpoint-DGZRZHux.d.mts} +6 -3
  201. package/dist/environment/vite.cjs +6 -2
  202. package/dist/environment/vite.d.mts +11 -2
  203. package/dist/environment/vite.d.ts +11 -2
  204. package/dist/environment/vite.mjs +5 -1
  205. package/dist/headers.cjs +4 -4
  206. package/dist/headers.mjs +3 -3
  207. package/dist/image/server.cjs +7 -3
  208. package/dist/image/server.d.mts +9 -1
  209. package/dist/image/server.d.ts +9 -1
  210. package/dist/image/server.mjs +6 -2
  211. package/dist/image/sharp.cjs +12 -10
  212. package/dist/image/sharp.mjs +4 -2
  213. package/dist/index.cjs +87 -67
  214. package/dist/index.d.mts +27 -24
  215. package/dist/index.d.ts +27 -24
  216. package/dist/index.mjs +100 -80
  217. package/dist/{integration-api-BPJo5oXb.d.ts → integration-api-BuPHMeKz.d.ts} +2 -2
  218. package/dist/{integration-api-0y4FXJpC.d.mts → integration-api-DWyMmvrR.d.mts} +2 -2
  219. package/dist/integration-orm-P2II2EBK.cjs +14 -0
  220. package/dist/{integration-orm-KV5B3BGZ.mjs → integration-orm-RBKCIQYZ.mjs} +4 -3
  221. package/dist/integrations.cjs +7 -5
  222. package/dist/integrations.d.mts +7 -9
  223. package/dist/integrations.d.ts +7 -9
  224. package/dist/integrations.mjs +6 -4
  225. package/dist/internal/app-markdown-runtime.cjs +6 -5
  226. package/dist/internal/app-markdown-runtime.d.mts +6 -8
  227. package/dist/internal/app-markdown-runtime.d.ts +6 -8
  228. package/dist/internal/app-markdown-runtime.mjs +5 -4
  229. package/dist/internal/build-runtime.cjs +56 -55
  230. package/dist/internal/build-runtime.d.mts +7 -9
  231. package/dist/internal/build-runtime.d.ts +7 -9
  232. package/dist/internal/build-runtime.mjs +55 -54
  233. package/dist/internal/cli-runtime.cjs +36 -30
  234. package/dist/internal/cli-runtime.mjs +36 -30
  235. package/dist/internal/client-error-overlay.cjs +4 -4
  236. package/dist/internal/client-error-overlay.mjs +1 -1
  237. package/dist/internal/compression-runtime.d.mts +5 -7
  238. package/dist/internal/compression-runtime.d.ts +5 -7
  239. package/dist/internal/config-runtime.cjs +21 -18
  240. package/dist/internal/config-runtime.d.mts +6 -8
  241. package/dist/internal/config-runtime.d.ts +6 -8
  242. package/dist/internal/config-runtime.mjs +20 -17
  243. package/dist/internal/docs-precompiled-runtime.cjs +3 -3
  244. package/dist/internal/docs-precompiled-runtime.mjs +2 -2
  245. package/dist/internal/infra-analytics-runtime.cjs +7 -7
  246. package/dist/internal/infra-analytics-runtime.mjs +5 -5
  247. package/dist/internal/metadata-image-runtime.cjs +4 -3
  248. package/dist/internal/metadata-image-runtime.mjs +3 -2
  249. package/dist/internal/product-telemetry-runtime.cjs +2 -2
  250. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  251. package/dist/internal/production-node-env.cjs +2 -2
  252. package/dist/internal/production-node-env.mjs +1 -1
  253. package/dist/internal/production-runtime.cjs +44 -27
  254. package/dist/internal/production-runtime.d.mts +25 -14
  255. package/dist/internal/production-runtime.d.ts +25 -14
  256. package/dist/internal/production-runtime.mjs +47 -30
  257. package/dist/layers-CM5i6T7z.d.mts +55 -0
  258. package/dist/layers-CM5i6T7z.d.ts +55 -0
  259. package/dist/markdown.cjs +4 -4
  260. package/dist/markdown.d.mts +5 -7
  261. package/dist/markdown.d.ts +5 -7
  262. package/dist/markdown.mjs +3 -3
  263. package/dist/middleware.cjs +16 -10
  264. package/dist/middleware.d.mts +7 -9
  265. package/dist/middleware.d.ts +7 -9
  266. package/dist/middleware.mjs +19 -13
  267. package/dist/navigation.cjs +4 -4
  268. package/dist/navigation.d.mts +8 -9
  269. package/dist/navigation.d.ts +8 -9
  270. package/dist/navigation.mjs +3 -3
  271. package/dist/{nitro-MPZJGPXK.mjs → nitro-NFG2LBRC.mjs} +3 -2
  272. package/dist/{nitro-7F65EZZS.cjs → nitro-S2QABUFA.cjs} +4 -3
  273. package/dist/observability.cjs +2 -2
  274. package/dist/observability.mjs +1 -1
  275. package/dist/plugin-DBBZ4JI2.cjs +32 -0
  276. package/dist/plugin-SYMK7PQ2.mjs +32 -0
  277. package/dist/plugin.cjs +55 -42
  278. package/dist/plugin.d.mts +23 -7
  279. package/dist/plugin.d.ts +23 -7
  280. package/dist/plugin.mjs +56 -43
  281. package/dist/{production-runtime-BaI3WHnV.d.ts → production-runtime-DfknD3g_.d.ts} +17 -3
  282. package/dist/{production-runtime-DfRP0cV0.d.mts → production-runtime-j_WCfuwB.d.mts} +17 -3
  283. package/dist/programmatic-routes-client-DcoxEaLe.d.mts +55 -0
  284. package/dist/programmatic-routes-client-DcoxEaLe.d.ts +55 -0
  285. package/dist/query/client.cjs +2 -2
  286. package/dist/query/client.mjs +1 -1
  287. package/dist/{render-plan-CfIdJKAf.d.ts → render-plan-CFIhcYYS.d.ts} +1 -1
  288. package/dist/{render-plan-Dg8RBYFa.d.mts → render-plan-ChUtsymc.d.mts} +1 -1
  289. package/dist/renderer-client.d.mts +7 -8
  290. package/dist/renderer-client.d.ts +7 -8
  291. package/dist/{request-DfE02G_A.d.mts → request-F4HRwzSd.d.mts} +1 -1
  292. package/dist/{request-CEbHIIl4.d.ts → request-RJvelT8L.d.ts} +1 -1
  293. package/dist/request.cjs +3 -3
  294. package/dist/request.d.mts +6 -8
  295. package/dist/request.d.ts +6 -8
  296. package/dist/request.mjs +2 -2
  297. package/dist/{route-rendering-C4oHbv6C.d.ts → route-rendering-3a4fbNyC.d.mts} +1 -1
  298. package/dist/{route-rendering-BHyOfXjD.d.mts → route-rendering-D4coJ-kw.d.ts} +1 -1
  299. package/dist/{router-DwhA61SB.d.mts → router-DqIssGRO.d.mts} +1 -1
  300. package/dist/{router-uRN_29Em.d.ts → router-WLEW3Te1.d.ts} +1 -1
  301. package/dist/routes.cjs +6 -5
  302. package/dist/routes.d.mts +5 -7
  303. package/dist/routes.d.ts +5 -7
  304. package/dist/routes.mjs +5 -4
  305. package/dist/{runtime-COk03hmx.d.ts → runtime-BrNdLOq9.d.ts} +3 -3
  306. package/dist/{runtime-BEdHhN4C.d.mts → runtime-CmE_j-js.d.mts} +3 -3
  307. package/dist/{schema-dev-notice-Y7MQEFGN.cjs → schema-dev-notice-5JPE67AI.cjs} +6 -4
  308. package/dist/{schema-dev-notice-O67CPXJ6.mjs → schema-dev-notice-WLPZ6WKU.mjs} +4 -2
  309. package/dist/server-action-security.cjs +4 -3
  310. package/dist/server-action-security.mjs +3 -2
  311. package/dist/server-client-bridge-DKWDl5NB.d.mts +7 -0
  312. package/dist/server-client-bridge-DKWDl5NB.d.ts +7 -0
  313. package/dist/server-fn-client.d.mts +3 -3
  314. package/dist/server-fn-client.d.ts +3 -3
  315. package/dist/server-fn.cjs +8 -7
  316. package/dist/server-fn.d.mts +1 -1
  317. package/dist/server-fn.d.ts +1 -1
  318. package/dist/server-fn.mjs +7 -6
  319. package/dist/server-plugins.cjs +5 -5
  320. package/dist/server-plugins.d.mts +6 -8
  321. package/dist/server-plugins.d.ts +6 -8
  322. package/dist/server-plugins.mjs +4 -4
  323. package/dist/server-query-client.d.mts +1 -1
  324. package/dist/server-query-client.d.ts +1 -1
  325. package/dist/server-query.cjs +9 -8
  326. package/dist/server-query.d.mts +1 -1
  327. package/dist/server-query.d.ts +1 -1
  328. package/dist/server-query.mjs +8 -7
  329. package/dist/server.cjs +96 -72
  330. package/dist/server.d.mts +16 -12
  331. package/dist/server.d.ts +16 -12
  332. package/dist/server.mjs +81 -57
  333. package/dist/{spa-router-w4aFOuyn.d.mts → spa-router-C41zjnFl.d.mts} +2 -2
  334. package/dist/{spa-router-DrVOBVGg.d.ts → spa-router-D_0VXqPC.d.ts} +2 -2
  335. package/dist/storage.cjs +6 -2
  336. package/dist/storage.d.mts +9 -1
  337. package/dist/storage.d.ts +9 -1
  338. package/dist/storage.mjs +5 -1
  339. package/dist/testing.cjs +20 -18
  340. package/dist/testing.d.mts +6 -8
  341. package/dist/testing.d.ts +6 -8
  342. package/dist/testing.mjs +16 -14
  343. package/dist/theme/server.cjs +4 -4
  344. package/dist/theme/server.mjs +3 -3
  345. package/dist/{utils-Dhuqwmd2.d.ts → utils-BKWSe3S7.d.mts} +1 -1
  346. package/dist/{utils-BtYehqeU.d.mts → utils-YYcWsOJp.d.ts} +1 -1
  347. package/dist/version.cjs +2 -2
  348. package/dist/version.mjs +1 -1
  349. package/dist/vite.cjs +57 -44
  350. package/dist/vite.d.mts +92 -10
  351. package/dist/vite.d.ts +92 -10
  352. package/dist/vite.mjs +58 -45
  353. package/dist/{workflows-jZ4BcdoZ.d.ts → workflows-IWP1ddBm.d.mts} +5 -2
  354. package/dist/{workflows-jZ4BcdoZ.d.mts → workflows-IWP1ddBm.d.ts} +5 -2
  355. package/dist/workflows.cjs +4 -3
  356. package/dist/workflows.d.mts +1 -1
  357. package/dist/workflows.d.ts +1 -1
  358. package/dist/workflows.mjs +3 -2
  359. package/package.json +2 -1
  360. package/dist/chunk-3SDFA7UF.cjs +0 -701
  361. package/dist/chunk-E5GNDG5F.mjs +0 -701
  362. package/dist/integration-orm-55F7CII5.cjs +0 -13
@@ -0,0 +1,67 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-LPEX4YW6.mjs";
4
+
5
+ // src/middleware/server.ts
6
+ import { AsyncLocalStorage } from "async_hooks";
7
+ var MIDDLEWARE_DATA_STORE_KEY = /* @__PURE__ */ Symbol.for("farm.middlewareDataStore");
8
+ var MIDDLEWARE_CONTEXT_STORE_KEY = /* @__PURE__ */ Symbol.for("farm.middlewareContextStore");
9
+ function getGlobalMiddlewareStore(key) {
10
+ const state = globalThis;
11
+ const existing = state[key];
12
+ if (existing instanceof AsyncLocalStorage) {
13
+ return existing;
14
+ }
15
+ const store = new AsyncLocalStorage();
16
+ state[key] = store;
17
+ return store;
18
+ }
19
+ __name(getGlobalMiddlewareStore, "getGlobalMiddlewareStore");
20
+ var middlewareStore = getGlobalMiddlewareStore(MIDDLEWARE_DATA_STORE_KEY);
21
+ var middlewareContextStore = getGlobalMiddlewareStore(MIDDLEWARE_CONTEXT_STORE_KEY);
22
+ function toMiddlewareMap(data) {
23
+ if (data instanceof Map) {
24
+ return new Map(data);
25
+ }
26
+ return new Map(Object.entries(data));
27
+ }
28
+ __name(toMiddlewareMap, "toMiddlewareMap");
29
+ function _clearCurrentMiddlewareData() {
30
+ middlewareStore.enterWith(/* @__PURE__ */ new Map());
31
+ }
32
+ __name(_clearCurrentMiddlewareData, "_clearCurrentMiddlewareData");
33
+ function _clearCurrentMiddlewareContext() {
34
+ middlewareContextStore.enterWith(/* @__PURE__ */ new Map());
35
+ }
36
+ __name(_clearCurrentMiddlewareContext, "_clearCurrentMiddlewareContext");
37
+ async function _runWithMiddlewareData(data, fn) {
38
+ return middlewareStore.run(toMiddlewareMap(data), fn);
39
+ }
40
+ __name(_runWithMiddlewareData, "_runWithMiddlewareData");
41
+ async function _runWithMiddlewareContext(context, fn) {
42
+ return middlewareContextStore.run(toMiddlewareMap(context), fn);
43
+ }
44
+ __name(_runWithMiddlewareContext, "_runWithMiddlewareContext");
45
+ function getMiddlewareData() {
46
+ return middlewareStore.getStore() || /* @__PURE__ */ new Map();
47
+ }
48
+ __name(getMiddlewareData, "getMiddlewareData");
49
+ function getMiddlewareValue(key) {
50
+ const data = getMiddlewareData();
51
+ return data.get(key);
52
+ }
53
+ __name(getMiddlewareValue, "getMiddlewareValue");
54
+ function getMiddlewareContext() {
55
+ return middlewareContextStore.getStore() || /* @__PURE__ */ new Map();
56
+ }
57
+ __name(getMiddlewareContext, "getMiddlewareContext");
58
+
59
+ export {
60
+ _clearCurrentMiddlewareData,
61
+ _clearCurrentMiddlewareContext,
62
+ _runWithMiddlewareData,
63
+ _runWithMiddlewareContext,
64
+ getMiddlewareData,
65
+ getMiddlewareValue,
66
+ getMiddlewareContext
67
+ };
@@ -15,13 +15,13 @@ import {
15
15
  } from "./chunk-TVGP4BBZ.mjs";
16
16
  import {
17
17
  stampFarmCspNonce
18
- } from "./chunk-U6QLDL3G.mjs";
18
+ } from "./chunk-PNCM5MFD.mjs";
19
19
  import {
20
20
  farmAcceptQuality
21
- } from "./chunk-VNGH5MLF.mjs";
21
+ } from "./chunk-I6UVKUYK.mjs";
22
22
  import {
23
23
  matchesFarmIfNoneMatch
24
- } from "./chunk-ZMMBIVQM.mjs";
24
+ } from "./chunk-ZZGQD7A4.mjs";
25
25
  import {
26
26
  __name
27
27
  } from "./chunk-LPEX4YW6.mjs";
@@ -304,61 +304,6 @@ if (import.meta.hot) {
304
304
  }
305
305
  __name(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
- __name(pluginShortName, "pluginShortName");
312
- function assertPluginDependencies(plugins, integrations) {
313
- const integrationKeys = integrations && !Array.isArray(integrations) ? Object.keys(integrations) : [];
314
- const matches = /* @__PURE__ */ __name((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__ */ __name((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 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
- __name(assertPluginDependencies, "assertPluginDependencies");
361
-
362
307
  // src/utils/source-dir.ts
363
308
  import path from "path";
364
309
  var FARM_PROJECT_SOURCE_DIRS = /* @__PURE__ */ Symbol.for("farm.projectSourceDirs");
@@ -500,7 +445,5 @@ export {
500
445
  resolveFarmDevIndicatorsConfig,
501
446
  generateFarmDevIndicatorsClientRuntime,
502
447
  resolveFarmAuthConfig,
503
- resolveFarmAuthIntegration,
504
- pluginShortName,
505
- assertPluginDependencies
448
+ resolveFarmAuthIntegration
506
449
  };
@@ -67,18 +67,18 @@ function parseColonParam(segment) {
67
67
  }
68
68
  __name(parseColonParam, "parseColonParam");
69
69
  var MATCHER_PARAM_NAME = /^[\p{L}\p{N}_$-]+$/u;
70
- var MATCHER_REGEX_SYNTAX = /[()[\]|\\{}^$?]/;
70
+ var MATCHER_UNSUPPORTED_LITERAL = /[()[\]|\\{}^$?:]|\.[*+]/;
71
71
  var MATCHER_BRACKET_PARAM = /^\[\[\.\.\.(.+)\]\]$|^\[\.\.\.(.+)\]$|^\[(.+)\]$/;
72
72
  function isSupportedMatcherSegment(segment) {
73
73
  if (segment === "*" || segment === "**") return true;
74
74
  if (segment.startsWith(":")) return MATCHER_PARAM_NAME.test(parseColonParam(segment).name);
75
75
  const bracket = MATCHER_BRACKET_PARAM.exec(segment);
76
76
  if (bracket) return MATCHER_PARAM_NAME.test(bracket[1] ?? bracket[2] ?? bracket[3]);
77
- return !MATCHER_REGEX_SYNTAX.test(segment);
77
+ return !MATCHER_UNSUPPORTED_LITERAL.test(segment);
78
78
  }
79
79
  __name(isSupportedMatcherSegment, "isSupportedMatcherSegment");
80
80
  function isLiteralMatcherSegment(segment) {
81
- return !MATCHER_REGEX_SYNTAX.test(segment) && !segment.includes("*") && !segment.startsWith(":");
81
+ return !MATCHER_UNSUPPORTED_LITERAL.test(segment) && !segment.includes("*");
82
82
  }
83
83
  __name(isLiteralMatcherSegment, "isLiteralMatcherSegment");
84
84
  function assertSupportedMiddlewareMatcher(pattern) {
@@ -88,7 +88,7 @@ function assertSupportedMiddlewareMatcher(pattern) {
88
88
  const segments = path.split("/").filter(Boolean);
89
89
  if (segments.every(subtree ? isLiteralMatcherSegment : isSupportedMatcherSegment)) return;
90
90
  throw new Error(
91
- `Middleware matcher "${pattern}" is not a supported string pattern, so it would never match a request and the middleware would not run. String matchers do not accept regular-expression syntax such as groups, alternation, character classes, or lookaheads. Pass a RegExp instead, for example \`matcher: /^\\/(?!api|_next).*/\`, or use the supported forms: /path/:param, /path/:param*, /path/[param], /path/[...param], /path/*, /path/**, or a trailing (.*) such as /path(.*).`
91
+ `Middleware matcher "${pattern}" is not a supported string pattern, so it would never match a request and the middleware would not run. String matchers do not accept regular-expression syntax such as groups, alternation, character classes, lookaheads, or \`.*\`, or a param after literal text such as \`/user-:id\`. Pass a RegExp instead, for example \`matcher: /^\\/(?!api|_next).*/\`, or use the supported forms: /path/:param, /path/:param*, /path/[param], /path/[...param], /path/*, /path/**, or a trailing (.*) such as /path(.*).`
92
92
  );
93
93
  }
94
94
  __name(assertSupportedMiddlewareMatcher, "assertSupportedMiddlewareMatcher");
@@ -2,21 +2,24 @@ import {
2
2
  parseRequestCookieHeader
3
3
  } from "./chunk-JM5XPKWH.mjs";
4
4
  import {
5
+ _assertRequestReadAllowed,
5
6
  getCurrentRequest
6
- } from "./chunk-POSPE3IO.mjs";
7
+ } from "./chunk-ZOABCQGT.mjs";
7
8
  import {
8
9
  _resolveCurrentCspNonce
9
- } from "./chunk-QRKIMN7T.mjs";
10
+ } from "./chunk-Y6LRPO2K.mjs";
10
11
  import {
11
12
  __name
12
13
  } from "./chunk-LPEX4YW6.mjs";
13
14
 
14
15
  // src/headers.ts
15
16
  function headers() {
17
+ _assertRequestReadAllowed("headers()");
16
18
  return new Headers(getCurrentRequest().headers);
17
19
  }
18
20
  __name(headers, "headers");
19
21
  function cookies() {
22
+ _assertRequestReadAllowed("cookies()");
20
23
  const cookieHeader = getCurrentRequest().headers.get("cookie") || "";
21
24
  const parsed = parseRequestCookieHeader(cookieHeader);
22
25
  return {
@@ -39,6 +42,7 @@ function cookies() {
39
42
  }
40
43
  __name(cookies, "cookies");
41
44
  function getCspNonce() {
45
+ _assertRequestReadAllowed("getCspNonce()");
42
46
  return _resolveCurrentCspNonce();
43
47
  }
44
48
  __name(getCspNonce, "getCspNonce");
@@ -4,14 +4,17 @@ var _chunk6QQDAAAZcjs = require('./chunk-6QQDAAAZ.cjs');
4
4
 
5
5
 
6
6
 
7
- var _chunk6V4TDWECcjs = require('./chunk-6V4TDWEC.cjs');
7
+
8
+
9
+
10
+ var _chunkCGVPXIRNcjs = require('./chunk-CGVPXIRN.cjs');
8
11
 
9
12
 
10
13
  var _chunkSOR334EBcjs = require('./chunk-SOR334EB.cjs');
11
14
 
12
15
 
13
16
 
14
- var _chunkYWN746UScjs = require('./chunk-YWN746US.cjs');
17
+ var _chunkUMQAK3KPcjs = require('./chunk-UMQAK3KP.cjs');
15
18
 
16
19
 
17
20
  var _chunkNYJMY3JAcjs = require('./chunk-NYJMY3JA.cjs');
@@ -39,7 +42,9 @@ function defineRoutes(input) {
39
42
  const routes = typeof input === "function" ? input(routesBuilder) : input;
40
43
  const manifest = {
41
44
  __farmRoutes: true,
42
- routes: routes.map(normalizeProgrammaticRoute)
45
+ routes: routes.map(
46
+ (route) => stampProgrammaticRouteSource(normalizeProgrammaticRoute(route), route, false)
47
+ )
43
48
  };
44
49
  Object.defineProperty(manifest, FARM_ROUTES_BRAND, {
45
50
  value: true,
@@ -50,14 +55,14 @@ function defineRoutes(input) {
50
55
  _chunkS3JO3N4Hcjs.__name.call(void 0, defineRoutes, "defineRoutes");
51
56
  var routesBuilder = {
52
57
  page(path, options) {
53
- return normalizeProgrammaticRoute({
58
+ return createProgrammaticRoute({
54
59
  kind: "page",
55
60
  path,
56
61
  ...options
57
62
  });
58
63
  },
59
64
  layout(path, options) {
60
- return normalizeProgrammaticRoute({
65
+ return createProgrammaticRoute({
61
66
  kind: "layout",
62
67
  path,
63
68
  ...options
@@ -65,7 +70,7 @@ var routesBuilder = {
65
70
  },
66
71
  api(path, options) {
67
72
  const { render, runtime, regions, maxDuration, ...methods } = options;
68
- return normalizeProgrammaticRoute({
73
+ return createProgrammaticRoute({
69
74
  kind: "api",
70
75
  path,
71
76
  render,
@@ -76,7 +81,7 @@ var routesBuilder = {
76
81
  });
77
82
  },
78
83
  redirect(source, destination, options = {}) {
79
- return normalizeProgrammaticRoute({
84
+ return createProgrammaticRoute({
80
85
  kind: "redirect",
81
86
  source,
82
87
  destination,
@@ -84,6 +89,41 @@ var routesBuilder = {
84
89
  });
85
90
  }
86
91
  };
92
+ function createProgrammaticRoute(route) {
93
+ return stampProgrammaticRouteSource(normalizeProgrammaticRoute(route), route, true);
94
+ }
95
+ _chunkS3JO3N4Hcjs.__name.call(void 0, createProgrammaticRoute, "createProgrammaticRoute");
96
+ function stampProgrammaticRouteSource(route, input, created) {
97
+ if (!globalThis[_chunkCGVPXIRNcjs.TRACK_PROGRAMMATIC_ROUTE_SOURCES]) return route;
98
+ const previous = _chunkCGVPXIRNcjs.getProgrammaticRouteDefinitionSource.call(void 0, input);
99
+ const source = {
100
+ stacks: [..._nullishCoalesce(_optionalChain([previous, 'optionalAccess', _ => _.stacks]), () => ( [])), captureRouteSourceStack()],
101
+ raw: created ? false : _nullishCoalesce(_optionalChain([previous, 'optionalAccess', _2 => _2.raw]), () => ( true))
102
+ };
103
+ Object.defineProperty(route, _chunkCGVPXIRNcjs.PROGRAMMATIC_ROUTE_SOURCE, {
104
+ value: source,
105
+ enumerable: true,
106
+ configurable: true,
107
+ writable: true
108
+ });
109
+ return route;
110
+ }
111
+ _chunkS3JO3N4Hcjs.__name.call(void 0, stampProgrammaticRouteSource, "stampProgrammaticRouteSource");
112
+ function captureRouteSourceStack() {
113
+ const limit = Error.stackTraceLimit;
114
+ try {
115
+ Error.stackTraceLimit = 200;
116
+ return _nullishCoalesce(new Error().stack, () => ( ""));
117
+ } catch (e) {
118
+ return "";
119
+ } finally {
120
+ try {
121
+ Error.stackTraceLimit = limit;
122
+ } catch (e2) {
123
+ }
124
+ }
125
+ }
126
+ _chunkS3JO3N4Hcjs.__name.call(void 0, captureRouteSourceStack, "captureRouteSourceStack");
87
127
  var page = routesBuilder.page;
88
128
  var layout = routesBuilder.layout;
89
129
  var api = routesBuilder.api;
@@ -98,8 +138,8 @@ function getProgrammaticRouteSearchClientOptions(search) {
98
138
  if (!search || isProgrammaticRouteSchema(search)) return void 0;
99
139
  const options = {};
100
140
  if (typeof search.stripDefaults !== "undefined") options.stripDefaults = search.stripDefaults;
101
- if (_optionalChain([search, 'access', _ => _.preserve, 'optionalAccess', _2 => _2.length])) options.preserve = [...search.preserve];
102
- if (_optionalChain([search, 'access', _3 => _3.temporary, 'optionalAccess', _4 => _4.length])) options.temporary = [...search.temporary];
141
+ if (_optionalChain([search, 'access', _3 => _3.preserve, 'optionalAccess', _4 => _4.length])) options.preserve = [...search.preserve];
142
+ if (_optionalChain([search, 'access', _5 => _5.temporary, 'optionalAccess', _6 => _6.length])) options.temporary = [...search.temporary];
103
143
  return Object.keys(options).length > 0 ? options : void 0;
104
144
  }
105
145
  _chunkS3JO3N4Hcjs.__name.call(void 0, getProgrammaticRouteSearchClientOptions, "getProgrammaticRouteSearchClientOptions");
@@ -128,7 +168,7 @@ function isProgrammaticRouteSchema(value) {
128
168
  _chunkS3JO3N4Hcjs.__name.call(void 0, isProgrammaticRouteSchema, "isProgrammaticRouteSchema");
129
169
  function resolveProgrammaticRouteCanonicalPath(input) {
130
170
  const options = input.options;
131
- if (!_optionalChain([options, 'optionalAccess', _5 => _5.temporary, 'optionalAccess', _6 => _6.length]) && !_optionalChain([options, 'optionalAccess', _7 => _7.stripDefaults])) {
171
+ if (!_optionalChain([options, 'optionalAccess', _7 => _7.temporary, 'optionalAccess', _8 => _8.length]) && !_optionalChain([options, 'optionalAccess', _9 => _9.stripDefaults])) {
132
172
  return void 0;
133
173
  }
134
174
  const params = createSearchParams(input.rawSearch);
@@ -174,7 +214,7 @@ function parseDefaultSearch(schema) {
174
214
  try {
175
215
  const value = schema.parse({});
176
216
  return value && typeof value === "object" ? value : void 0;
177
- } catch (e) {
217
+ } catch (e3) {
178
218
  return void 0;
179
219
  }
180
220
  }
@@ -274,7 +314,7 @@ function parseProgrammaticRouteModuleId(moduleId) {
274
314
  }
275
315
  _chunkS3JO3N4Hcjs.__name.call(void 0, parseProgrammaticRouteModuleId, "parseProgrammaticRouteModuleId");
276
316
  function parseProgrammaticRoutePath2(routePath, type = "page") {
277
- return _chunk6V4TDWECcjs.parseProgrammaticRoutePath.call(void 0, routePath, type);
317
+ return _chunkCGVPXIRNcjs.parseProgrammaticRoutePath.call(void 0, routePath, type);
278
318
  }
279
319
  _chunkS3JO3N4Hcjs.__name.call(void 0, parseProgrammaticRoutePath2, "parseProgrammaticRoutePath");
280
320
  function createRouteModuleFromProgrammaticPage(route, rendererRuntime) {
@@ -337,7 +377,7 @@ function createLayoutModuleFromProgrammaticLayout(route) {
337
377
  _chunkS3JO3N4Hcjs.__name.call(void 0, createLayoutModuleFromProgrammaticLayout, "createLayoutModuleFromProgrammaticLayout");
338
378
  function scanProgrammaticPagePaths(source) {
339
379
  const paths = /* @__PURE__ */ new Set();
340
- for (const routePath of _chunk6V4TDWECcjs.extractProgrammaticPageCallPathLiterals.call(void 0, source)) {
380
+ for (const routePath of _chunkCGVPXIRNcjs.extractProgrammaticPageCallPathLiterals.call(void 0, source)) {
341
381
  if (routePath) {
342
382
  paths.add(normalizeRoutePath(routePath));
343
383
  }
@@ -357,7 +397,7 @@ function createProgrammaticPageComponent(route, rendererRuntime) {
357
397
  }
358
398
  return rendererRuntime.createElement(...args);
359
399
  }, "createElement");
360
- const markFunctionComponent = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (component) => _nullishCoalesce(_optionalChain([rendererRuntime, 'optionalAccess', _8 => _8.markFunctionComponent, 'optionalCall', _9 => _9(component)]), () => ( component)), "markFunctionComponent");
400
+ const markFunctionComponent = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, (component) => _nullishCoalesce(_optionalChain([rendererRuntime, 'optionalAccess', _10 => _10.markFunctionComponent, 'optionalCall', _11 => _11(component)]), () => ( component)), "markFunctionComponent");
361
401
  const Component = route.component;
362
402
  if (route.pending) {
363
403
  const PendingComponent = route.pending;
@@ -562,7 +602,7 @@ async function resolveProgrammaticRouteProps(route, props) {
562
602
  }
563
603
  _chunkS3JO3N4Hcjs.__name.call(void 0, resolveProgrammaticRouteProps, "resolveProgrammaticRouteProps");
564
604
  async function resolveProgrammaticRouteData(route, dataHooks, context) {
565
- if (!_optionalChain([dataHooks, 'optionalAccess', _10 => _10.key])) {
605
+ if (!_optionalChain([dataHooks, 'optionalAccess', _12 => _12.key])) {
566
606
  return dataHooks.main(context);
567
607
  }
568
608
  const routeDataKey = await dataHooks.key(context);
@@ -576,7 +616,7 @@ async function resolveProgrammaticRouteData(route, dataHooks, context) {
576
616
  const cacheKey = _chunkNYJMY3JAcjs.createFarmCacheKey.call(void 0, ["route-data", routeDataKey]);
577
617
  const cacheOptions = {
578
618
  tags: [
579
- _chunkYWN746UScjs.createRouteDataCacheTag.call(void 0, routeDataKey),
619
+ _chunkUMQAK3KPcjs.createRouteDataCacheTag.call(void 0, routeDataKey),
580
620
  ...await resolveProgrammaticRouteDataKeys(dataHooks.tags, context)
581
621
  ],
582
622
  paths: [
@@ -585,7 +625,7 @@ async function resolveProgrammaticRouteData(route, dataHooks, context) {
585
625
  ],
586
626
  revalidate
587
627
  };
588
- return _chunkYWN746UScjs.getFarmDataCache.call(void 0, ).getOrSet(cacheKey, () => dataHooks.main(context), cacheOptions);
628
+ return _chunkUMQAK3KPcjs.getFarmDataCache.call(void 0, ).getOrSet(cacheKey, () => dataHooks.main(context), cacheOptions);
589
629
  }
590
630
  _chunkS3JO3N4Hcjs.__name.call(void 0, resolveProgrammaticRouteData, "resolveProgrammaticRouteData");
591
631
  async function resolveProgrammaticRouteDataKeys(input, context) {
@@ -672,7 +712,7 @@ function normalizeProgrammaticRoute(route) {
672
712
  };
673
713
  }
674
714
  const routeActions = route.kind === "page" ? normalizeProgrammaticRouteActions(route) : void 0;
675
- normalizeProgrammaticRouteStaleTime(_optionalChain([route, 'access', _11 => _11.data, 'optionalAccess', _12 => _12.staleTime]), route.path);
715
+ normalizeProgrammaticRouteStaleTime(_optionalChain([route, 'access', _13 => _13.data, 'optionalAccess', _14 => _14.staleTime]), route.path);
676
716
  return {
677
717
  ...route,
678
718
  ...routeActions,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  emitFarmAgentRead
3
- } from "./chunk-MVL2RAJW.mjs";
3
+ } from "./chunk-KYN5ODF6.mjs";
4
4
  import {
5
5
  _findFarmMCPEndpointTool
6
6
  } from "./chunk-ZLAT2CWY.mjs";
@@ -2,7 +2,7 @@ import {
2
2
  FARM_DEFAULT_MCP_DESCRIPTION,
3
3
  FARM_DEFAULT_MCP_PROTOCOL_VERSIONS,
4
4
  FARM_DEFAULT_MCP_TOOLS
5
- } from "./chunk-P664ZVTV.mjs";
5
+ } from "./chunk-4ZZNPK25.mjs";
6
6
  import {
7
7
  stripFarmBasePath
8
8
  } from "./chunk-4RB44K6Z.mjs";
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  createFarmMarkdownRouteModule
3
- } from "./chunk-QFW2IH5E.mjs";
3
+ } from "./chunk-GZTUT75U.mjs";
4
4
  import {
5
5
  __name
6
6
  } from "./chunk-LPEX4YW6.mjs";
@@ -4,14 +4,14 @@ import {
4
4
  loadFarmDocsPage,
5
5
  resolveFarmDocsContentDir,
6
6
  toFarmDocsMarkdownPage
7
- } from "./chunk-5BWWFHR2.mjs";
7
+ } from "./chunk-HBEBV7OZ.mjs";
8
8
  import {
9
9
  docsEngine,
10
10
  loadFarmDocsEngine
11
11
  } from "./chunk-2VQKKQ6D.mjs";
12
12
  import {
13
13
  resolveDocsConfig
14
- } from "./chunk-75HN5IZ3.mjs";
14
+ } from "./chunk-Y4QVEU67.mjs";
15
15
  import {
16
16
  getFarmDocsAdapterConfigModule,
17
17
  isSecretDocsConfigKey
@@ -1,6 +1,9 @@
1
+ import {
2
+ FARM_ANONYMOUS_CLIENT_ADDRESS
3
+ } from "./chunk-BRYPZIMB.mjs";
1
4
  import {
2
5
  matchesFarmIfNoneMatch
3
- } from "./chunk-ZMMBIVQM.mjs";
6
+ } from "./chunk-ZZGQD7A4.mjs";
4
7
  import {
5
8
  __name
6
9
  } from "./chunk-LPEX4YW6.mjs";
@@ -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 : fetchRemote ?? fetcher;
358
+ const isTrustedLocal = currentUrl.origin === trustedLocalOrigin;
359
+ const sourceFetcher = isTrustedLocal ? fetcher : 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
  __name(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 state[FARM_IMAGE_SOURCE_TOKEN] ?? (state[FARM_IMAGE_SOURCE_TOKEN] = globalThis.crypto.randomUUID());
413
+ }
414
+ __name(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: FARM_ANONYMOUS_CLIENT_ADDRESS };
419
+ }
420
+ __name(_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
  __name(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 = value?.split(";", 1)[0].trim().toLowerCase() ?? "";
540
- return type.startsWith("image/") ? type : "";
571
+ return OPTIMIZED_IMAGE_TYPES.has(type) ? type : "";
541
572
  }
542
573
  __name(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
  __name(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,11 +609,11 @@ 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
617
  if (matchesFarmIfNoneMatch(request.headers.get("if-none-match"), image.etag)) {
587
618
  headers.delete("content-length");
588
619
  return new Response(null, { status: 304, headers });
@@ -660,5 +691,6 @@ export {
660
691
  createFarmImageHandler,
661
692
  createCloudflareImageTransformer,
662
693
  selectOutputFormat,
663
- isPrivateImageAddress
694
+ isPrivateImageAddress,
695
+ _withFarmImageSourceClientAddress
664
696
  };
@@ -1,9 +1,9 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 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 _chunkLMPAPBUAcjs = require('./chunk-LMPAPBUA.cjs');
3
+ var _chunkH44XGLFUcjs = require('./chunk-H44XGLFU.cjs');
4
4
 
5
5
 
6
- var _chunkUPJLHLJUcjs = require('./chunk-UPJLHLJU.cjs');
6
+ var _chunkALPWLT27cjs = require('./chunk-ALPWLT27.cjs');
7
7
 
8
8
 
9
9
  var _chunkHLJ6MBUZcjs = require('./chunk-HLJ6MBUZ.cjs');
@@ -213,7 +213,7 @@ var _MiddlewareChainImpl = class _MiddlewareChainImpl {
213
213
  */
214
214
  when(condition, fn) {
215
215
  const conditionalMiddleware = /* @__PURE__ */ _chunkS3JO3N4Hcjs.__name.call(void 0, async (ctx, next) => {
216
- const shouldRun = typeof condition === "function" ? _chunkUPJLHLJUcjs.matchesMiddlewarePredicate.call(void 0, condition, ctx) : condition;
216
+ const shouldRun = typeof condition === "function" ? _chunkALPWLT27cjs.matchesMiddlewarePredicate.call(void 0, condition, ctx) : condition;
217
217
  if (!shouldRun) {
218
218
  return next();
219
219
  }
@@ -418,7 +418,7 @@ function farmMiddlewarePlugin(options = {}) {
418
418
  mode: server.config.mode === "production" ? "production" : "development",
419
419
  basePath: _nullishCoalesce(options.basePath, () => ( "/"))
420
420
  });
421
- manager = new (0, _chunkLMPAPBUAcjs.MiddlewareManager)(
421
+ manager = new (0, _chunkH44XGLFUcjs.MiddlewareManager)(
422
422
  getMiddlewareAppDirectory(server.config.root, srcDir),
423
423
  server,
424
424
  options.middleware,