@farm.js/core 0.1.49 → 0.1.51-beta.0

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 (363) hide show
  1. package/README.md +163 -3
  2. package/dist/{agent-mcp-Bb8hnnqd.d.ts → agent-mcp-BBMfNpsC.d.ts} +1 -1
  3. package/dist/{agent-mcp-ir3v4fHf.d.mts → agent-mcp-D44ip11f.d.mts} +1 -1
  4. package/dist/agent-runtime.cjs +3 -3
  5. package/dist/agent-runtime.d.mts +6 -6
  6. package/dist/agent-runtime.d.ts +6 -6
  7. package/dist/agent-runtime.mjs +2 -2
  8. package/dist/analyzer-HOUCQR3K.mjs +1066 -0
  9. package/dist/analyzer-VKUDHNDF.cjs +1066 -0
  10. package/dist/api/client.d.mts +0 -1
  11. package/dist/api/client.d.ts +0 -1
  12. package/dist/api/route-manager.cjs +8 -8
  13. package/dist/api/route-manager.d.mts +10 -10
  14. package/dist/api/route-manager.d.ts +10 -10
  15. package/dist/api/route-manager.mjs +7 -7
  16. package/dist/api/runtime.cjs +3 -3
  17. package/dist/api/runtime.d.mts +7 -7
  18. package/dist/api/runtime.d.ts +7 -7
  19. package/dist/api/runtime.mjs +2 -2
  20. package/dist/api.cjs +9 -9
  21. package/dist/api.d.mts +10 -10
  22. package/dist/api.d.ts +10 -10
  23. package/dist/api.mjs +8 -8
  24. package/dist/{app-y649szYm.d.ts → app-CourU3rQ.d.ts} +7 -7
  25. package/dist/{app-DLzz02du.d.mts → app-aeD4s_mg.d.mts} +7 -7
  26. package/dist/{app-manifest-Crn8Qd3U.d.mts → app-manifest-BC6mFn5A.d.mts} +1 -1
  27. package/dist/{app-manifest-DNeTKMRL.d.ts → app-manifest-LzjoNPeq.d.ts} +1 -1
  28. package/dist/app-markdown.d.mts +7 -7
  29. package/dist/app-markdown.d.ts +7 -7
  30. package/dist/base-path-BOUV5ozD.d.mts +10 -0
  31. package/dist/base-path-BOUV5ozD.d.ts +10 -0
  32. package/dist/cache.d.mts +4 -3
  33. package/dist/cache.d.ts +4 -3
  34. package/dist/{chunk-YQGZLCT4.cjs → chunk-2IAPKPEB.cjs} +6 -6
  35. package/dist/chunk-2KVDHNQS.mjs +224 -0
  36. package/dist/{chunk-QFQDRJKJ.mjs → chunk-3HA7PP72.mjs} +2 -2
  37. package/dist/{chunk-6LH33DLL.cjs → chunk-3OWVWZ6R.cjs} +28 -2
  38. package/dist/{chunk-GXSMF7UR.mjs → chunk-4GJJ65RB.mjs} +10 -2
  39. package/dist/{chunk-GERUXONA.cjs → chunk-5A77OEIG.cjs} +4 -1
  40. package/dist/{chunk-4HBKBHVP.mjs → chunk-5ENW27SL.mjs} +1 -1
  41. package/dist/{chunk-MTB57GOK.mjs → chunk-724WT3NI.mjs} +4 -2
  42. package/dist/{chunk-XLYXG73A.mjs → chunk-75WWOZ5C.mjs} +22 -0
  43. package/dist/{chunk-VCKGOXFI.cjs → chunk-76GHW3WI.cjs} +7 -1
  44. package/dist/{chunk-ZIBIE7AH.mjs → chunk-7UPCJDB5.mjs} +7 -1
  45. package/dist/{chunk-4IICUBQX.cjs → chunk-A5BJKSZE.cjs} +2 -2
  46. package/dist/{chunk-UYQOIPXE.mjs → chunk-AER5I65K.mjs} +1 -1
  47. package/dist/{chunk-WB6XES4V.mjs → chunk-ALEUMLJN.mjs} +34 -5
  48. package/dist/{chunk-Z4LTSH7D.mjs → chunk-AMRK3P6W.mjs} +175 -71
  49. package/dist/{chunk-TTYXOAB7.mjs → chunk-ANHZ6SUL.mjs} +1 -1
  50. package/dist/{chunk-ZBS3GOQZ.cjs → chunk-AQLHD6HZ.cjs} +35 -61
  51. package/dist/{chunk-L6QDME5Z.cjs → chunk-B3GZAQSC.cjs} +3 -3
  52. package/dist/chunk-CKPTIEDX.cjs +12 -0
  53. package/dist/{chunk-JPAVNDZH.cjs → chunk-CY7H5KS4.cjs} +25 -25
  54. package/dist/{chunk-4S7M63WX.cjs → chunk-DGOLAZLV.cjs} +22 -1
  55. package/dist/{chunk-4HM5B5RR.cjs → chunk-DWW3AMJX.cjs} +343 -308
  56. package/dist/{chunk-EQMTJBB7.cjs → chunk-DZZHTMWM.cjs} +35 -6
  57. package/dist/chunk-E36C43IX.cjs +224 -0
  58. package/dist/{chunk-J2ZEVDEK.cjs → chunk-EHB77D5U.cjs} +3 -3
  59. package/dist/{chunk-WQGRD5BJ.cjs → chunk-EX6ZSN5P.cjs} +1 -16
  60. package/dist/{chunk-C5S457CK.cjs → chunk-F42U3R4F.cjs} +214 -193
  61. package/dist/{chunk-FGJQS4EC.cjs → chunk-FK25QSVC.cjs} +4 -3
  62. package/dist/{chunk-JOHXK4BB.mjs → chunk-FSQMN2MQ.mjs} +2 -1
  63. package/dist/{chunk-2H3FJYY6.mjs → chunk-FSXSQQTV.mjs} +3 -2
  64. package/dist/chunk-G2KTRMWA.mjs +40 -0
  65. package/dist/{chunk-C6U66WWF.mjs → chunk-GFT5AHAT.mjs} +13 -0
  66. package/dist/chunk-GNZIAJGB.mjs +358 -0
  67. package/dist/{chunk-TXK4D46O.mjs → chunk-H3ASZDT7.mjs} +21 -1
  68. package/dist/{chunk-AXRNEVCS.cjs → chunk-HASX6DC7.cjs} +8 -8
  69. package/dist/{chunk-NW2BKDVT.mjs → chunk-HHFMECFO.mjs} +1 -1
  70. package/dist/{chunk-HELQXYVI.cjs → chunk-I2DQGS56.cjs} +11 -9
  71. package/dist/{chunk-IVHPRF4W.mjs → chunk-I2ZA5SXS.mjs} +81 -46
  72. package/dist/{chunk-EVCQX243.cjs → chunk-IOUOGRDX.cjs} +13 -5
  73. package/dist/{chunk-CBJKDB6F.mjs → chunk-IRSS4HS4.mjs} +1 -1
  74. package/dist/{chunk-NPPT4RWF.cjs → chunk-J22JD5YJ.cjs} +7 -7
  75. package/dist/{chunk-VJXLUTBM.mjs → chunk-JF5CNHHF.mjs} +9 -9
  76. package/dist/{chunk-VR4SEDEM.mjs → chunk-JWI5PUO2.mjs} +6 -2
  77. package/dist/{chunk-6XFGJBYX.cjs → chunk-JYNNIGQO.cjs} +16 -7
  78. package/dist/{chunk-EXHEPWFJ.cjs → chunk-KHXAJ2KA.cjs} +16 -16
  79. package/dist/{chunk-ALD2WMLA.mjs → chunk-KY32FWK7.mjs} +4 -4
  80. package/dist/{chunk-BR5FSKZ5.cjs → chunk-LEIXUFJN.cjs} +6 -2
  81. package/dist/{chunk-5566GNEG.cjs → chunk-LIFUPCXW.cjs} +13 -0
  82. package/dist/{chunk-I2SWKWO7.mjs → chunk-LJDIFIJ2.mjs} +1 -1
  83. package/dist/chunk-LMFJCXDD.mjs +55 -0
  84. package/dist/{chunk-IXSMFKZ2.cjs → chunk-LNM57D3H.cjs} +4 -4
  85. package/dist/{chunk-ATHPRVP2.mjs → chunk-LZ4SB57H.mjs} +3 -3
  86. package/dist/{chunk-73XBJRZW.cjs → chunk-MMEEXMUQ.cjs} +2 -2
  87. package/dist/chunk-N4AQNEXR.cjs +17 -0
  88. package/dist/{chunk-JZMZKABS.cjs → chunk-NWUHS6GV.cjs} +3 -2
  89. package/dist/{chunk-KZT2VHRQ.cjs → chunk-O3MMJPC2.cjs} +19 -19
  90. package/dist/{chunk-JWP56HCP.mjs → chunk-OD6WM3I7.mjs} +2 -2
  91. package/dist/{chunk-R2SEZEBC.cjs → chunk-OYNNA4DD.cjs} +4 -4
  92. package/dist/{chunk-GBPDSUFE.mjs → chunk-OZK2DS44.mjs} +1 -1
  93. package/dist/{chunk-A7DK663W.cjs → chunk-PDJSL7PL.cjs} +50 -39
  94. package/dist/{chunk-XLLVWLWO.mjs → chunk-PIHKO25G.mjs} +1 -1
  95. package/dist/chunk-PIUTGRDI.cjs +358 -0
  96. package/dist/{chunk-XO6WL6NL.mjs → chunk-PPDHCRTC.mjs} +1 -1
  97. package/dist/{chunk-LZBM35DH.mjs → chunk-QI5AQMEE.mjs} +20 -9
  98. package/dist/{chunk-FR4HJDI6.cjs → chunk-QK3HBOTG.cjs} +27 -30
  99. package/dist/{chunk-Q3UU2KXC.mjs → chunk-QMDU6QHN.mjs} +4 -1
  100. package/dist/chunk-QXJADAQB.cjs +40 -0
  101. package/dist/{chunk-DGVVVYKD.mjs → chunk-R5P4KFPM.mjs} +2 -2
  102. package/dist/{chunk-3HBFI373.cjs → chunk-S5AQ7CAC.cjs} +14 -14
  103. package/dist/{chunk-Z3BXMMFF.mjs → chunk-S5ZA2T2W.mjs} +63 -42
  104. package/dist/{chunk-PXEXOQ5R.mjs → chunk-SHS6KXOZ.mjs} +1 -1
  105. package/dist/{chunk-ETF5C6HR.cjs → chunk-SJ23LJ3N.cjs} +3 -3
  106. package/dist/{chunk-LL7TDMOM.mjs → chunk-SMUW7UST.mjs} +33 -59
  107. package/dist/{chunk-VCFBQFOV.mjs → chunk-SN5VSO3Q.mjs} +9 -7
  108. package/dist/{chunk-AIHD6VME.cjs → chunk-SO3T6T4I.cjs} +482 -378
  109. package/dist/{chunk-JHXJBNLY.cjs → chunk-SUCDVKUB.cjs} +21 -1
  110. package/dist/{chunk-DM3TFCC2.cjs → chunk-SUV6YO4Q.cjs} +5 -5
  111. package/dist/{chunk-NG44F7AH.mjs → chunk-T4EW7AAD.mjs} +2 -2
  112. package/dist/{chunk-JUMPFVMK.mjs → chunk-TUOO6IK3.mjs} +9 -0
  113. package/dist/chunk-UB7RVEMX.mjs +73 -0
  114. package/dist/{chunk-CDTIXBKN.mjs → chunk-UN6N623E.mjs} +2 -2
  115. package/dist/{chunk-BEXYFR2R.cjs → chunk-USL2ANCB.cjs} +10 -10
  116. package/dist/{chunk-HAH4FBTA.mjs → chunk-VAHBCI6X.mjs} +1 -1
  117. package/dist/{chunk-QNQEK3OF.cjs → chunk-VIFPE5RG.cjs} +14 -14
  118. package/dist/{chunk-HTLCLOXQ.cjs → chunk-VO6NLTV4.cjs} +3 -3
  119. package/dist/{chunk-XN2MB4QZ.cjs → chunk-VQJYGZNX.cjs} +4 -4
  120. package/dist/{chunk-N25RPPO5.cjs → chunk-WAPQWAE6.cjs} +10 -10
  121. package/dist/{chunk-5PKDHKQP.cjs → chunk-WFVSAT7Y.cjs} +6 -4
  122. package/dist/{chunk-EA5PMJDU.mjs → chunk-WSY2JD7O.mjs} +7 -7
  123. package/dist/{chunk-HNAUK3SC.mjs → chunk-WVX3BUNJ.mjs} +40 -199
  124. package/dist/chunk-X3EFRVXY.mjs +12 -0
  125. package/dist/{chunk-UCQ52TJY.mjs → chunk-X3JNB2TB.mjs} +1 -1
  126. package/dist/{chunk-J5VCA45K.cjs → chunk-X5BCMLGP.cjs} +1 -1
  127. package/dist/{chunk-SSNN55Q6.cjs → chunk-XB24LZWI.cjs} +10 -10
  128. package/dist/{chunk-XXB37YET.cjs → chunk-XLRLSTJ6.cjs} +7 -7
  129. package/dist/{chunk-BNMHXVLL.mjs → chunk-XMHERKSE.mjs} +0 -15
  130. package/dist/chunk-XPMC4E2G.cjs +55 -0
  131. package/dist/{chunk-J27BZO67.mjs → chunk-XWC5NAHV.mjs} +23 -26
  132. package/dist/{chunk-DRFADSKY.mjs → chunk-XXXRRVY6.mjs} +4 -4
  133. package/dist/{chunk-C7425KDG.cjs → chunk-XYL4HSVC.cjs} +2 -2
  134. package/dist/{chunk-2SVJGOAX.mjs → chunk-Y3N5BFRJ.mjs} +3 -3
  135. package/dist/{chunk-ZSIGEHSE.cjs → chunk-Y7TLL65B.cjs} +21 -180
  136. package/dist/{chunk-PEHL3IZL.cjs → chunk-YB44NKC2.cjs} +2 -2
  137. package/dist/chunk-YKHRCY4T.cjs +73 -0
  138. package/dist/{chunk-RYDDUCNJ.mjs → chunk-YLNBWUVS.mjs} +1 -1
  139. package/dist/chunk-Z5A6CNV2.mjs +60 -0
  140. package/dist/chunk-Z64V4WZI.mjs +17 -0
  141. package/dist/{chunk-ACI52TCN.mjs → chunk-ZF3GX4O7.mjs} +1 -1
  142. package/dist/client/lifecycle.d.mts +1 -1
  143. package/dist/client/lifecycle.d.ts +1 -1
  144. package/dist/{client-plugins-DFDQUI9Q.d.ts → client-plugins-CFBEfVPO.d.ts} +34 -10
  145. package/dist/{client-plugins-BNBeyLMi.d.mts → client-plugins-cqy_dQd0.d.mts} +34 -10
  146. package/dist/client-plugins.d.mts +6 -6
  147. package/dist/client-plugins.d.ts +6 -6
  148. package/dist/client.cjs +13 -9
  149. package/dist/client.d.mts +11 -10
  150. package/dist/client.d.ts +11 -10
  151. package/dist/client.mjs +15 -11
  152. package/dist/client.react-server.mjs +1 -1
  153. package/dist/config-CnhyvvmT.d.mts +188 -0
  154. package/dist/config-CnhyvvmT.d.ts +188 -0
  155. package/dist/config.d.mts +6 -6
  156. package/dist/config.d.ts +6 -6
  157. package/dist/cron.cjs +4 -4
  158. package/dist/cron.mjs +3 -3
  159. package/dist/desktop.d.mts +7 -7
  160. package/dist/desktop.d.ts +7 -7
  161. package/dist/{dev-guard-YO6KPIOQ.mjs → dev-guard-4PFQNXQX.mjs} +2 -1
  162. package/dist/{dev-guard-PLHL6OTJ.cjs → dev-guard-YLO5DE3H.cjs} +4 -3
  163. package/dist/{devtools-BLKHPY3C.mjs → devtools-4MLL3RAL.mjs} +10 -10
  164. package/dist/{devtools-A37WWJZL.cjs → devtools-4ZLMD454.cjs} +12 -12
  165. package/dist/docs.cjs +14 -14
  166. package/dist/docs.d.mts +7 -7
  167. package/dist/docs.d.ts +7 -7
  168. package/dist/docs.mjs +13 -13
  169. package/dist/environment/vite.d.mts +1 -1
  170. package/dist/environment/vite.d.ts +1 -1
  171. package/dist/generate-route-types-DQP0cUzk.d.ts +33 -0
  172. package/dist/generate-route-types-TF5Wwtvz.d.mts +33 -0
  173. package/dist/i18n/client.d.mts +2 -2
  174. package/dist/i18n/client.d.ts +2 -2
  175. package/dist/i18n/index.d.mts +3 -3
  176. package/dist/i18n/index.d.ts +3 -3
  177. package/dist/i18n/server.d.mts +5 -5
  178. package/dist/i18n/server.d.ts +5 -5
  179. package/dist/image/server.cjs +3 -3
  180. package/dist/image/server.mjs +2 -2
  181. package/dist/image/sharp.cjs +10 -10
  182. package/dist/image/sharp.mjs +2 -2
  183. package/dist/{index-DBdiTkNc.d.ts → index-BYkNbeQV.d.mts} +2 -2
  184. package/dist/{index-CeJ9_s9p.d.mts → index-BxjN_UDZ.d.ts} +2 -2
  185. package/dist/{index-MocnSP3a.d.ts → index-D3l4tREW.d.ts} +2 -2
  186. package/dist/{index-Cl3akY5U.d.mts → index-DPUAPho_.d.mts} +2 -2
  187. package/dist/index.cjs +88 -79
  188. package/dist/index.d.mts +29 -45
  189. package/dist/index.d.ts +29 -45
  190. package/dist/index.mjs +92 -83
  191. package/dist/integrations.cjs +3 -3
  192. package/dist/integrations.d.mts +6 -6
  193. package/dist/integrations.d.ts +6 -6
  194. package/dist/integrations.mjs +2 -2
  195. package/dist/internal/app-markdown-runtime.d.mts +7 -7
  196. package/dist/internal/app-markdown-runtime.d.ts +7 -7
  197. package/dist/internal/build-runtime.cjs +47 -43
  198. package/dist/internal/build-runtime.d.mts +9 -9
  199. package/dist/internal/build-runtime.d.ts +9 -9
  200. package/dist/internal/build-runtime.mjs +46 -42
  201. package/dist/internal/cli-runtime.cjs +24 -23
  202. package/dist/internal/cli-runtime.mjs +24 -23
  203. package/dist/internal/client-error-overlay.cjs +4 -4
  204. package/dist/internal/client-error-overlay.mjs +1 -1
  205. package/dist/internal/client-runtime.cjs +22 -3
  206. package/dist/internal/client-runtime.d.mts +46 -4
  207. package/dist/internal/client-runtime.d.ts +46 -4
  208. package/dist/internal/client-runtime.mjs +22 -3
  209. package/dist/internal/compression-runtime.d.mts +6 -6
  210. package/dist/internal/compression-runtime.d.ts +6 -6
  211. package/dist/internal/config-runtime.cjs +20 -13
  212. package/dist/internal/config-runtime.d.mts +259 -18
  213. package/dist/internal/config-runtime.d.ts +259 -18
  214. package/dist/internal/config-runtime.mjs +18 -11
  215. package/dist/internal/form-actions.cjs +5 -4
  216. package/dist/internal/form-actions.mjs +4 -3
  217. package/dist/internal/infra-analytics-runtime.cjs +6 -6
  218. package/dist/internal/infra-analytics-runtime.mjs +4 -4
  219. package/dist/internal/islands-runtime.cjs +56 -0
  220. package/dist/internal/islands-runtime.mjs +57 -1
  221. package/dist/internal/metadata-image-runtime.cjs +3 -3
  222. package/dist/internal/metadata-image-runtime.mjs +2 -2
  223. package/dist/internal/product-telemetry-runtime.cjs +2 -2
  224. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  225. package/dist/internal/production-runtime.cjs +18 -15
  226. package/dist/internal/production-runtime.d.mts +33 -20
  227. package/dist/internal/production-runtime.d.ts +33 -20
  228. package/dist/internal/production-runtime.mjs +20 -17
  229. package/dist/internal/server-fn-transform.cjs +13 -0
  230. package/dist/internal/server-fn-transform.d.mts +24 -0
  231. package/dist/internal/server-fn-transform.d.ts +24 -0
  232. package/dist/internal/server-fn-transform.mjs +13 -0
  233. package/dist/{layers-D9fbe-rz.d.ts → layers-CcS42OGR.d.mts} +1 -1
  234. package/dist/{layers-D9fbe-rz.d.mts → layers-CcS42OGR.d.ts} +1 -1
  235. package/dist/{lifecycle-DK06VuKP.d.ts → lifecycle-C2aLBOwu.d.mts} +1 -1
  236. package/dist/{lifecycle-DK06VuKP.d.mts → lifecycle-C2aLBOwu.d.ts} +1 -1
  237. package/dist/markdown.d.mts +6 -6
  238. package/dist/markdown.d.ts +6 -6
  239. package/dist/middleware.cjs +11 -11
  240. package/dist/middleware.d.mts +8 -8
  241. package/dist/middleware.d.ts +8 -8
  242. package/dist/middleware.mjs +10 -10
  243. package/dist/mobile.cjs +9 -0
  244. package/dist/mobile.d.mts +94 -0
  245. package/dist/mobile.d.ts +94 -0
  246. package/dist/mobile.mjs +9 -0
  247. package/dist/navigation-delegate-BU4xqdnw.d.ts +29 -0
  248. package/dist/navigation-delegate-DLhbfEN4.d.mts +29 -0
  249. package/dist/navigation.cjs +5 -5
  250. package/dist/navigation.d.mts +9 -9
  251. package/dist/navigation.d.ts +9 -9
  252. package/dist/navigation.mjs +4 -4
  253. package/dist/{nitro-BIXIKJZS.cjs → nitro-CK7M4RMY.cjs} +12 -12
  254. package/dist/{nitro-UT2J5A5D.mjs → nitro-R444AF3O.mjs} +8 -8
  255. package/dist/platform.cjs +2 -1
  256. package/dist/platform.d.mts +4 -3
  257. package/dist/platform.d.ts +4 -3
  258. package/dist/platform.mjs +2 -1
  259. package/dist/{plugin-4KYXV7BB.mjs → plugin-53SY5YBS.mjs} +1 -1
  260. package/dist/{plugin-WBANOZQM.cjs → plugin-HZIBL3DW.cjs} +2 -2
  261. package/dist/plugin.cjs +40 -36
  262. package/dist/plugin.d.mts +13 -8
  263. package/dist/plugin.d.ts +13 -8
  264. package/dist/plugin.mjs +39 -35
  265. package/dist/{production-runtime-B3qFFtKF.d.ts → production-runtime-C78A8YgK.d.ts} +3 -3
  266. package/dist/{production-runtime-DcD-GRAv.d.mts → production-runtime-DLA4J5WG.d.mts} +3 -3
  267. package/dist/production-vite-BQFAlG7n.d.mts +13 -0
  268. package/dist/production-vite-BQFAlG7n.d.ts +13 -0
  269. package/dist/{programmatic-routes-client-fD9f4XqU.d.ts → programmatic-routes-client-CBqkNhBy.d.ts} +2 -2
  270. package/dist/{programmatic-routes-client-DzbYGiZQ.d.mts → programmatic-routes-client-NpqGBn-i.d.mts} +2 -2
  271. package/dist/query/client.cjs +6 -6
  272. package/dist/query/client.mjs +2 -2
  273. package/dist/{render-plan-DqJ51ufr.d.mts → render-plan-C9sWvDTv.d.mts} +1 -1
  274. package/dist/{render-plan-B6cfssrr.d.ts → render-plan-CrqcBbnV.d.ts} +1 -1
  275. package/dist/renderer-client.cjs +17 -12
  276. package/dist/renderer-client.d.mts +9 -8
  277. package/dist/renderer-client.d.ts +9 -8
  278. package/dist/renderer-client.mjs +10 -5
  279. package/dist/{request-jhvUMXRx.d.ts → request-BizeuqD7.d.ts} +1 -1
  280. package/dist/{request-UuAxHn8h.d.mts → request-WwB1-Uim.d.mts} +1 -1
  281. package/dist/request.d.mts +7 -7
  282. package/dist/request.d.ts +7 -7
  283. package/dist/{resolver-DC57A4vz.d.ts → resolver-CJ-D9nP-.d.ts} +1 -1
  284. package/dist/{resolver-C2G-3Tm6.d.mts → resolver-TDyZKgKI.d.mts} +1 -1
  285. package/dist/{route-rendering-Sn50cYZf.d.ts → route-rendering-BGhJN64l.d.ts} +1 -1
  286. package/dist/{route-rendering-Cou00t1X.d.mts → route-rendering-S6NFjnx4.d.mts} +1 -1
  287. package/dist/{router-0X9DCTcm.d.mts → router-BIheIy9G.d.mts} +1 -1
  288. package/dist/{router-xwLvi48p.d.ts → router-BUD_j2EL.d.ts} +1 -1
  289. package/dist/routes-8PT9cl60.d.ts +121 -0
  290. package/dist/routes-kEUsXHx3.d.mts +121 -0
  291. package/dist/routes.cjs +3 -2
  292. package/dist/routes.d.mts +7 -7
  293. package/dist/routes.d.ts +7 -7
  294. package/dist/routes.mjs +2 -1
  295. package/dist/{rsc-pipeline-VKHMABDJ.cjs → rsc-pipeline-JRGUZBYM.cjs} +18 -16
  296. package/dist/{rsc-pipeline-F6ZPH5MU.mjs → rsc-pipeline-OLAVIKI3.mjs} +17 -15
  297. package/dist/{runtime-B9HmxiZc.d.ts → runtime-C4CmlOOh.d.ts} +2 -2
  298. package/dist/{runtime-tkSXZiqO.d.ts → runtime-CWP-21hP.d.ts} +1 -1
  299. package/dist/{runtime-CMrsyChI.d.mts → runtime-CgJwe6H_.d.mts} +1 -1
  300. package/dist/{runtime-CCxTmGuf.d.mts → runtime-CihDZ2Rn.d.mts} +2 -2
  301. package/dist/runtime-G23RSLEK.cjs +1005 -0
  302. package/dist/runtime-OGCHDACZ.mjs +1005 -0
  303. package/dist/{schema-dev-notice-O3I5HLXK.mjs → schema-dev-notice-F6QYSOAI.mjs} +4 -4
  304. package/dist/{schema-dev-notice-Z73J3NJ6.cjs → schema-dev-notice-UU7DMZEU.cjs} +7 -7
  305. package/dist/{search-client-BTXL5XWD.mjs → search-client-OXH6GBNO.mjs} +5 -3
  306. package/dist/search-client-ZZLKVO5R.cjs +15 -0
  307. package/dist/server-action-security.cjs +3 -3
  308. package/dist/server-action-security.mjs +2 -2
  309. package/dist/server-fn-client.d.mts +0 -1
  310. package/dist/server-fn-client.d.ts +0 -1
  311. package/dist/server-fn.cjs +4 -4
  312. package/dist/server-fn.d.mts +0 -1
  313. package/dist/server-fn.d.ts +0 -1
  314. package/dist/server-fn.mjs +3 -3
  315. package/dist/server-plugins.cjs +1 -1
  316. package/dist/server-plugins.d.mts +7 -7
  317. package/dist/server-plugins.d.ts +7 -7
  318. package/dist/server-plugins.mjs +1 -1
  319. package/dist/server-query-client.cjs +4 -3
  320. package/dist/server-query-client.d.mts +0 -1
  321. package/dist/server-query-client.d.ts +0 -1
  322. package/dist/server-query-client.mjs +3 -2
  323. package/dist/server-query.cjs +5 -5
  324. package/dist/server-query.d.mts +0 -1
  325. package/dist/server-query.d.ts +0 -1
  326. package/dist/server-query.mjs +4 -4
  327. package/dist/server.cjs +104 -79
  328. package/dist/server.d.mts +22 -17
  329. package/dist/server.d.ts +22 -17
  330. package/dist/server.mjs +73 -48
  331. package/dist/{spa-router-B48EjsS1.d.mts → spa-router-CVOL0Vrq.d.mts} +4 -4
  332. package/dist/{spa-router-B06APnGK.d.ts → spa-router-Kytv4jSB.d.ts} +4 -4
  333. package/dist/testing.cjs +16 -15
  334. package/dist/testing.d.mts +6 -6
  335. package/dist/testing.d.ts +6 -6
  336. package/dist/testing.mjs +12 -11
  337. package/dist/{types--Wh02r5_.d.mts → types-C41ePjvP.d.mts} +1 -1
  338. package/dist/{types--Wh02r5_.d.ts → types-C41ePjvP.d.ts} +1 -1
  339. package/dist/{utils-C5fyK2tE.d.ts → utils-DbyXlzaj.d.ts} +1 -1
  340. package/dist/{utils-hyAwmcN6.d.mts → utils-Dsa1HZ7X.d.mts} +1 -1
  341. package/dist/version.cjs +2 -2
  342. package/dist/version.mjs +1 -1
  343. package/dist/vite.cjs +40 -36
  344. package/dist/vite.d.mts +9 -9
  345. package/dist/vite.d.ts +9 -9
  346. package/dist/vite.mjs +39 -35
  347. package/dist/{workflows-Df1C_7OG.d.mts → workflows-CRMzQZ3k.d.mts} +2 -1
  348. package/dist/{workflows-Df1C_7OG.d.ts → workflows-CRMzQZ3k.d.ts} +2 -1
  349. package/dist/workflows.cjs +5 -5
  350. package/dist/workflows.d.mts +1 -1
  351. package/dist/workflows.d.ts +1 -1
  352. package/dist/workflows.mjs +4 -4
  353. package/package.json +16 -3
  354. package/dist/base-path-leyrqXbX.d.mts +0 -19
  355. package/dist/base-path-leyrqXbX.d.ts +0 -19
  356. package/dist/cache-invalidation-BD0z_lfu.d.mts +0 -4
  357. package/dist/cache-invalidation-BD0z_lfu.d.ts +0 -4
  358. package/dist/chunk-45EUIICW.mjs +0 -15
  359. package/dist/chunk-MJ6IC4K2.mjs +0 -34
  360. package/dist/chunk-V7KTQR4C.cjs +0 -15
  361. package/dist/search-client-QCYAL6AY.cjs +0 -13
  362. package/dist/{chunk-5OJVKXFV.cjs → chunk-N7JQXQAV.cjs} +2 -2
  363. package/dist/{chunk-72KABRWN.mjs → chunk-WSDKXV4E.mjs} +4 -4
@@ -9,10 +9,10 @@ import {
9
9
  } from "./chunk-IYEY3JWJ.mjs";
10
10
  import {
11
11
  APIRouteConflictError
12
- } from "./chunk-ALD2WMLA.mjs";
12
+ } from "./chunk-KY32FWK7.mjs";
13
13
  import {
14
14
  findProgrammaticRouteFilesInDir
15
- } from "./chunk-2H3FJYY6.mjs";
15
+ } from "./chunk-FSXSQQTV.mjs";
16
16
  import {
17
17
  isFarmAPIRouteFileName
18
18
  } from "./chunk-YX6AFPXC.mjs";
@@ -20,10 +20,11 @@ import {
20
20
  API_ROUTE_METHODS,
21
21
  getAllowedAPIRouteMethods,
22
22
  invokeAPIRouteEndpoint,
23
+ isFarmAPIPathname,
23
24
  matchAPIRouteAtBasePath,
24
25
  mergePluginAPIRoutes,
25
26
  resolveAPIRouteEndpoint
26
- } from "./chunk-I2SWKWO7.mjs";
27
+ } from "./chunk-LJDIFIJ2.mjs";
27
28
  import {
28
29
  isProgrammaticRoutesFileName
29
30
  } from "./chunk-6YFC3ZFX.mjs";
@@ -32,11 +33,11 @@ import {
32
33
  } from "./chunk-IGL6CO6M.mjs";
33
34
  import {
34
35
  loadFarmDevModule
35
- } from "./chunk-JUMPFVMK.mjs";
36
+ } from "./chunk-TUOO6IK3.mjs";
36
37
  import {
37
38
  toPosixPath,
38
39
  toViteModuleId
39
- } from "./chunk-2SVJGOAX.mjs";
40
+ } from "./chunk-Y3N5BFRJ.mjs";
40
41
  import {
41
42
  sendWebResponse
42
43
  } from "./chunk-IUQLRTTO.mjs";
@@ -44,7 +45,7 @@ import {
44
45
  createFarmRequestBodyErrorResponse,
45
46
  readNodeRequestBody,
46
47
  resolveFarmServerConfig
47
- } from "./chunk-C6U66WWF.mjs";
48
+ } from "./chunk-GFT5AHAT.mjs";
48
49
  import {
49
50
  resolveFarmRequestURL
50
51
  } from "./chunk-6HRAK7I5.mjs";
@@ -400,16 +401,26 @@ function farmApiPlugin(options = {}) {
400
401
  const pathname = url.split("?")[0];
401
402
  const method = req.method || "GET";
402
403
  if (discoveryPromise) await waitForDiscovery();
404
+ const farmMiddleware = server.__farmMiddleware__;
405
+ let middlewareRan = false;
403
406
  if (!matchAPIRouteAtBasePath(servedRoutes(), pathname, basePath)) {
404
- return next();
407
+ if (!farmMiddleware || !apiRouterHandler || !isFarmAPIPathname(pathname, basePath)) {
408
+ return next();
409
+ }
410
+ await farmMiddleware.waitForDiscovery?.();
411
+ if (await farmMiddleware.execute(req, res, pathname, /* @__PURE__ */ new Map())) return;
412
+ middlewareRan = true;
413
+ const rewrittenPathname = (req.url || url).split("?")[0];
414
+ if (rewrittenPathname === pathname || !matchAPIRouteAtBasePath(servedRoutes(), rewrittenPathname, basePath)) {
415
+ return next();
416
+ }
405
417
  }
406
418
  if (!apiRouterHandler) {
407
419
  return next();
408
420
  }
409
421
  const startTime = Date.now();
410
422
  try {
411
- const farmMiddleware = server.__farmMiddleware__;
412
- if (farmMiddleware) {
423
+ if (farmMiddleware && !middlewareRan) {
413
424
  await farmMiddleware.waitForDiscovery?.();
414
425
  const middlewareData = /* @__PURE__ */ new Map();
415
426
  const handled = await farmMiddleware.execute(req, res, pathname, middlewareData);
@@ -1,19 +1,23 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } async function _asyncNullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return await 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; } async function _asyncOptionalChain(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 = await fn(value); } else if (op === 'call' || op === 'optionalCall') { value = await fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
3
 
4
- var _chunkETF5C6HRcjs = require('./chunk-ETF5C6HR.cjs');
4
+ var _chunkSJ23LJ3Ncjs = require('./chunk-SJ23LJ3N.cjs');
5
5
 
6
6
 
7
- var _chunkKZT2VHRQcjs = require('./chunk-KZT2VHRQ.cjs');
7
+ var _chunkXPMC4E2Gcjs = require('./chunk-XPMC4E2G.cjs');
8
8
 
9
9
 
10
- var _chunk4S7M63WXcjs = require('./chunk-4S7M63WX.cjs');
10
+ var _chunkO3MMJPC2cjs = require('./chunk-O3MMJPC2.cjs');
11
11
 
12
12
 
13
- var _chunkZBS3GOQZcjs = require('./chunk-ZBS3GOQZ.cjs');
14
13
 
14
+ var _chunkDGOLAZLVcjs = require('./chunk-DGOLAZLV.cjs');
15
15
 
16
- var _chunkIXSMFKZ2cjs = require('./chunk-IXSMFKZ2.cjs');
16
+
17
+ var _chunkLNM57D3Hcjs = require('./chunk-LNM57D3H.cjs');
18
+
19
+
20
+ var _chunkAQLHD6HZcjs = require('./chunk-AQLHD6HZ.cjs');
17
21
 
18
22
  // src/rsc-pipeline.ts
19
23
  var _fs = require('fs');
@@ -50,7 +54,7 @@ function pickImportTarget(entry) {
50
54
  return void 0;
51
55
  }
52
56
  async function importFromApp(root, packageName, subpath = ".") {
53
- const packageDir = _chunkETF5C6HRcjs.findFarmAppPackageDir.call(void 0, root, packageName);
57
+ const packageDir = _chunkSJ23LJ3Ncjs.findFarmAppPackageDir.call(void 0, root, packageName);
54
58
  if (!packageDir) return void 0;
55
59
  const manifest = JSON.parse(_fs.readFileSync.call(void 0, _path2.default.join(packageDir, "package.json"), "utf8"));
56
60
  const exportsMap = manifest.exports;
@@ -77,9 +81,9 @@ async function createFarmRscViteConfig(userConfig, options) {
77
81
  importFromApp(root, "@vitejs/plugin-rsc"),
78
82
  importFromApp(root, "@vitejs/plugin-react")
79
83
  ]);
80
- if (!pluginRsc || !viteRsc || !_chunkETF5C6HRcjs.findFarmAppPackageDir.call(void 0, root, "react-server-dom-webpack")) {
84
+ if (!pluginRsc || !viteRsc || !_chunkSJ23LJ3Ncjs.findFarmAppPackageDir.call(void 0, root, "react-server-dom-webpack")) {
81
85
  throw new Error(
82
- `[Farm.js] experimental.serverComponents runs on @farm.js/plugin and the official @vitejs/plugin-rsc. Install them: ${_chunkETF5C6HRcjs.FARM_RSC_INSTALL_HINT}`
86
+ `[Farm.js] experimental.serverComponents runs on @farm.js/plugin and the official @vitejs/plugin-rsc. Install them: ${_chunkSJ23LJ3Ncjs.FARM_RSC_INSTALL_HINT}`
83
87
  );
84
88
  }
85
89
  const { plugins: vitePlugins = [], ...viteOptions } = _nullishCoalesce(userConfig.vite, () => ( {}));
@@ -87,14 +91,18 @@ async function createFarmRscViteConfig(userConfig, options) {
87
91
  for (const key of FARM_RSC_CONFIG_KEYS) {
88
92
  if (userConfig[key] !== void 0) rscConfig[key] = userConfig[key];
89
93
  }
90
- const createReactPlugin = hasPluginNamed(vitePlugins, "vite:react") ? void 0 : await _asyncNullishCoalesce(await _asyncOptionalChain([viteReact, 'optionalAccess', async _2 => _2.default]), async () => ( (options.command === "serve" ? (await _chunk4S7M63WXcjs.loadFarmReactPlugin.call(void 0, )).default : void 0)));
91
- const tailwind = hasPluginNamed(vitePlugins, "@tailwindcss/vite") ? void 0 : await _chunkIXSMFKZ2cjs.loadTailwindVitePlugin.call(void 0, );
94
+ const createReactPlugin = hasPluginNamed(vitePlugins, "vite:react") ? void 0 : await _asyncNullishCoalesce(await _asyncOptionalChain([viteReact, 'optionalAccess', async _2 => _2.default]), async () => ( (options.command === "serve" ? (await _chunkDGOLAZLVcjs.loadFarmReactPlugin.call(void 0, )).default : void 0)));
95
+ const tailwind = hasPluginNamed(vitePlugins, "@tailwindcss/vite") ? void 0 : await _chunkLNM57D3Hcjs.loadTailwindVitePlugin.call(void 0, );
92
96
  const farmConfig = pluginRsc.defineConfig({
93
97
  ...rscConfig,
94
98
  experimental: { ...userConfig.experimental, serverComponents: true },
95
99
  port: _nullishCoalesce(options.port, () => ( _optionalChain([userConfig, 'access', _3 => _3.server, 'optionalAccess', _4 => _4.port]))),
96
100
  plugins: [
97
- ...options.command === "serve" && _chunkZBS3GOQZcjs.resolveFarmPlatform.call(void 0, ) === "desktop" ? [farmRscDesktopDevGuardPlugin(userConfig.basePath)] : [],
101
+ ...options.command === "serve" && _chunkAQLHD6HZcjs.resolveFarmPlatform.call(void 0, ) === "desktop" ? [
102
+ _chunkDGOLAZLVcjs.farmDesktopDevGuardPlugin.call(void 0,
103
+ typeof userConfig.basePath === "string" ? userConfig.basePath : void 0
104
+ )
105
+ ] : [],
98
106
  ...tailwind ? [tailwind] : [],
99
107
  ...vitePlugins,
100
108
  viteRsc.default({ serverHandler: false, entries: FARM_RSC_ENTRIES }),
@@ -103,7 +111,7 @@ async function createFarmRscViteConfig(userConfig, options) {
103
111
  server: { environmentName: "rsc" },
104
112
  config: {
105
113
  preset: options.preset,
106
- outputDir: options.outputDir && _chunkKZT2VHRQcjs.resolveDeployOutputPath.call(void 0, root, options.outputDir)
114
+ outputDir: options.outputDir && _chunkO3MMJPC2cjs.resolveDeployOutputPath.call(void 0, root, options.outputDir)
107
115
  }
108
116
  })
109
117
  ]
@@ -120,26 +128,15 @@ async function createFarmRscViteConfig(userConfig, options) {
120
128
  mode: options.command === "build" ? "production" : "development"
121
129
  };
122
130
  }
123
- function farmRscDesktopDevGuardPlugin(basePath) {
124
- return {
125
- name: "farm:desktop-dev-guard",
126
- enforce: "pre",
127
- configureServer: {
128
- order: "pre",
129
- async handler(server) {
130
- const { createFarmDesktopDevGuard } = await import("./dev-guard-PLHL6OTJ.cjs");
131
- server.middlewares.use(
132
- createFarmDesktopDevGuard(server, {
133
- basePath: typeof basePath === "string" ? basePath : ""
134
- })
135
- );
136
- }
137
- }
138
- };
139
- }
140
131
  async function createFarmRscDevServer(userConfig, options) {
141
132
  const { createServer } = await import("vite");
142
- return createServer(await createFarmRscViteConfig(userConfig, { ...options, command: "serve" }));
133
+ const { host, ...configOptions } = options;
134
+ const config = await createFarmRscViteConfig(userConfig, { ...configOptions, command: "serve" });
135
+ return createServer({
136
+ ...config,
137
+ plugins: [..._nullishCoalesce(config.plugins, () => ( [])), _chunkXPMC4E2Gcjs.createFarmDevLoopbackPlugin.call(void 0, )],
138
+ ...host === void 0 ? {} : { server: { ...config.server, host } }
139
+ });
143
140
  }
144
141
  async function buildFarmRsc(userConfig, options) {
145
142
  const { createBuilder } = await import("vite");
@@ -15,6 +15,9 @@ import {
15
15
  createRouteDataCacheTag,
16
16
  getFarmDataCache
17
17
  } from "./chunk-RLEALQEN.mjs";
18
+ import {
19
+ createFarmSearchParams
20
+ } from "./chunk-H3ASZDT7.mjs";
18
21
  import {
19
22
  createFarmCacheKey
20
23
  } from "./chunk-GLOICKDO.mjs";
@@ -535,7 +538,7 @@ async function resolveProgrammaticRouteProps(route, props) {
535
538
  ...props,
536
539
  params,
537
540
  search,
538
- searchParams: Promise.resolve(search)
541
+ searchParams: createFarmSearchParams(search)
539
542
  };
540
543
  const routeContextProps = {
541
544
  ...baseProps,
@@ -0,0 +1,40 @@
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; }// src/client/hash-target.ts
2
+ function getHashTargetElement(hash) {
3
+ const fragment = hash.startsWith("#") ? hash.slice(1) : hash;
4
+ if (!fragment) return null;
5
+ let decoded = fragment;
6
+ try {
7
+ decoded = decodeURIComponent(fragment);
8
+ } catch (e) {
9
+ }
10
+ return document.getElementById(decoded) || document.getElementById(fragment) || document.getElementsByName(decoded)[0] || null;
11
+ }
12
+
13
+ // src/client/navigation-delegate.ts
14
+ var DELEGATES = /* @__PURE__ */ Symbol.for("farm.navigation.delegates");
15
+ function delegateNavigation(delegate) {
16
+ const host = globalThis;
17
+ const delegates = _nullishCoalesce(host[DELEGATES], () => ( (host[DELEGATES] = /* @__PURE__ */ new Set())));
18
+ delegates.add(delegate);
19
+ return () => {
20
+ delegates.delete(delegate);
21
+ };
22
+ }
23
+ async function runFarmNavigationDelegates(context) {
24
+ const delegates = globalThis[DELEGATES];
25
+ if (!_optionalChain([delegates, 'optionalAccess', _ => _.size])) return false;
26
+ for (const delegate of delegates) {
27
+ try {
28
+ if (await delegate(context) === true) return true;
29
+ } catch (error) {
30
+ console.error("[Farm.js] A navigation delegate failed; navigating in place.", error);
31
+ }
32
+ }
33
+ return false;
34
+ }
35
+
36
+
37
+
38
+
39
+
40
+ exports.getHashTargetElement = getHashTargetElement; exports.delegateNavigation = delegateNavigation; exports.runFarmNavigationDelegates = runFarmNavigationDelegates;
@@ -16,14 +16,14 @@ import {
16
16
  import {
17
17
  createFarmWeakETag,
18
18
  matchesFarmIfNoneMatch
19
- } from "./chunk-C6U66WWF.mjs";
19
+ } from "./chunk-GFT5AHAT.mjs";
20
20
  import {
21
21
  resolveFarmAPIServerBasePath,
22
22
  resolveFarmAPIServerRoutePath
23
23
  } from "./chunk-LM2YOGDK.mjs";
24
24
  import {
25
25
  FARM_VERSION
26
- } from "./chunk-ACI52TCN.mjs";
26
+ } from "./chunk-ZF3GX4O7.mjs";
27
27
  import {
28
28
  applyFarmBasePath
29
29
  } from "./chunk-SF3JB56B.mjs";
@@ -7,7 +7,7 @@ var _chunk53EHWHT2cjs = require('./chunk-53EHWHT2.cjs');
7
7
 
8
8
 
9
9
 
10
- var _chunkHELQXYVIcjs = require('./chunk-HELQXYVI.cjs');
10
+ var _chunkI2DQGS56cjs = require('./chunk-I2DQGS56.cjs');
11
11
 
12
12
 
13
13
  var _chunkRI3EVPKDcjs = require('./chunk-RI3EVPKD.cjs');
@@ -48,7 +48,7 @@ function shouldBlockUnload(options) {
48
48
  function navigateViaRouter(href, basePath, replace, options = {}) {
49
49
  if (typeof window === "undefined") return;
50
50
  const url = _chunkD22BUQKWcjs.applyFarmBasePath.call(void 0, href, basePath);
51
- const spaRouter = _chunkHELQXYVIcjs.getInstalledFarmSPARouter.call(void 0, );
51
+ const spaRouter = _chunkI2DQGS56cjs.getInstalledFarmSPARouter.call(void 0, );
52
52
  if (spaRouter) {
53
53
  void spaRouter.navigate(url, {
54
54
  replace,
@@ -61,7 +61,7 @@ function navigateViaRouter(href, basePath, replace, options = {}) {
61
61
  } else {
62
62
  window.history.pushState(null, "", url);
63
63
  }
64
- _chunkHELQXYVIcjs.notifyHistoryChange.call(void 0, "url-search");
64
+ _chunkI2DQGS56cjs.notifyHistoryChange.call(void 0, "url-search");
65
65
  }
66
66
  function useRouter(options = {}) {
67
67
  const basePath = options.basePath === void 0 ? _chunkD22BUQKWcjs.getFarmBasePath.call(void 0, ) : _chunkD22BUQKWcjs.normalizeFarmBasePath.call(void 0, options.basePath);
@@ -80,7 +80,7 @@ function useRouter(options = {}) {
80
80
  setState(readRouterState(basePath, routeMatcher));
81
81
  };
82
82
  handlePopState();
83
- const unsubscribe = _chunkHELQXYVIcjs.subscribeHistoryChange.call(void 0, handlePopState);
83
+ const unsubscribe = _chunkI2DQGS56cjs.subscribeHistoryChange.call(void 0, handlePopState);
84
84
  return unsubscribe;
85
85
  }, [basePath, routeMatcher]);
86
86
  const push = (href, navigateOptions) => {
@@ -91,11 +91,11 @@ function useRouter(options = {}) {
91
91
  };
92
92
  const pushState = (pageState, href) => {
93
93
  if (typeof window === "undefined") return;
94
- _chunkHELQXYVIcjs.getRouter.call(void 0, ).pushState(pageState, resolveClientHref(href, basePath));
94
+ _chunkI2DQGS56cjs.getRouter.call(void 0, ).pushState(pageState, resolveClientHref(href, basePath));
95
95
  };
96
96
  const replaceState = (pageState, href) => {
97
97
  if (typeof window === "undefined") return;
98
- _chunkHELQXYVIcjs.getRouter.call(void 0, ).replaceState(pageState, resolveClientHref(href, basePath));
98
+ _chunkI2DQGS56cjs.getRouter.call(void 0, ).replaceState(pageState, resolveClientHref(href, basePath));
99
99
  };
100
100
  const back = () => {
101
101
  if (typeof window !== "undefined") {
@@ -118,24 +118,24 @@ function useRouter(options = {}) {
118
118
  };
119
119
  }
120
120
  function usePageState() {
121
- const [state, setState] = _react.useState.call(void 0, () => _chunkHELQXYVIcjs.readPageState.call(void 0, ));
121
+ const [state, setState] = _react.useState.call(void 0, () => _chunkI2DQGS56cjs.readPageState.call(void 0, ));
122
122
  _react.useEffect.call(void 0, () => {
123
123
  if (typeof window === "undefined") return;
124
124
  const handlePopState = () => {
125
- setState(_chunkHELQXYVIcjs.readPageState.call(void 0, ));
125
+ setState(_chunkI2DQGS56cjs.readPageState.call(void 0, ));
126
126
  };
127
127
  handlePopState();
128
- return _chunkHELQXYVIcjs.subscribeHistoryChange.call(void 0, handlePopState);
128
+ return _chunkI2DQGS56cjs.subscribeHistoryChange.call(void 0, handlePopState);
129
129
  }, []);
130
130
  return state;
131
131
  }
132
132
  function useNavigation() {
133
133
  const [state, setState] = _react.useState.call(void 0,
134
- () => _chunkHELQXYVIcjs.getRouter.call(void 0, ).getNavigationState()
134
+ () => _chunkI2DQGS56cjs.getRouter.call(void 0, ).getNavigationState()
135
135
  );
136
136
  _react.useEffect.call(void 0, () => {
137
137
  if (typeof window === "undefined") return;
138
- return _chunkHELQXYVIcjs.getRouter.call(void 0, ).subscribeNavigation(setState);
138
+ return _chunkI2DQGS56cjs.getRouter.call(void 0, ).subscribeNavigation(setState);
139
139
  }, []);
140
140
  return state;
141
141
  }
@@ -147,7 +147,7 @@ function useBlocker(options) {
147
147
  if (typeof window === "undefined" || !active) {
148
148
  return;
149
149
  }
150
- return _chunkHELQXYVIcjs.getRouter.call(void 0, ).addBlocker(
150
+ return _chunkI2DQGS56cjs.getRouter.call(void 0, ).addBlocker(
151
151
  async (context) => {
152
152
  const current = optionsRef.current;
153
153
  const when = typeof current.when === "function" ? current.when(context) : current.when;
@@ -170,7 +170,7 @@ function useScrollRestoration(key) {
170
170
  _react.useEffect.call(void 0, () => {
171
171
  const element = ref.current;
172
172
  if (!element) return;
173
- return _chunkHELQXYVIcjs.getRouter.call(void 0, ).registerScrollElement(key, element);
173
+ return _chunkI2DQGS56cjs.getRouter.call(void 0, ).registerScrollElement(key, element);
174
174
  }, [key]);
175
175
  return ref;
176
176
  }
@@ -191,7 +191,7 @@ function readRouterState(basePath, routeMatcher) {
191
191
  pathname,
192
192
  searchParams: url.searchParams,
193
193
  params: _optionalChain([routeMatcher, 'optionalAccess', _5 => _5.match, 'call', _6 => _6(routePathname), 'optionalAccess', _7 => _7.params]) || {},
194
- pageState: typeof window === "undefined" ? null : _chunkHELQXYVIcjs.readPageState.call(void 0, )
194
+ pageState: typeof window === "undefined" ? null : _chunkI2DQGS56cjs.readPageState.call(void 0, )
195
195
  };
196
196
  }
197
197
  function readCurrentUrl() {
@@ -1,11 +1,11 @@
1
+ import {
2
+ resolveFarmPlatform
3
+ } from "./chunk-SMUW7UST.mjs";
1
4
  import {
2
5
  collectSSGPages,
3
6
  matchSSGPage,
4
7
  resolveRouteRenderingConfigFromFile
5
- } from "./chunk-HNAUK3SC.mjs";
6
- import {
7
- createFarmMetadataImageResponse
8
- } from "./chunk-GBPDSUFE.mjs";
8
+ } from "./chunk-WVX3BUNJ.mjs";
9
9
  import {
10
10
  classifyFarmDocumentPrefix,
11
11
  composeFarmFullDocument,
@@ -30,10 +30,10 @@ import {
30
30
  renderFarmLocaleAlternateLinks,
31
31
  resolveDefaultErrorStatus,
32
32
  routeBoundaryCoversDirectory
33
- } from "./chunk-ZIBIE7AH.mjs";
33
+ } from "./chunk-7UPCJDB5.mjs";
34
34
  import {
35
35
  listFarmMCPLlmsTxtLinks
36
- } from "./chunk-DGVVVYKD.mjs";
36
+ } from "./chunk-R5P4KFPM.mjs";
37
37
  import {
38
38
  FARM_DEFAULT_MCP_PATH,
39
39
  collectFarmDefaultMCPPages,
@@ -42,13 +42,16 @@ import {
42
42
  isFarmDefaultMCPPathname,
43
43
  resolveFarmDefaultMCPServer
44
44
  } from "./chunk-KRRZJ77U.mjs";
45
+ import {
46
+ createFarmMetadataImageResponse
47
+ } from "./chunk-OZK2DS44.mjs";
45
48
  import {
46
49
  installFarmIslandValues,
47
50
  uninstallFarmIslandValues
48
51
  } from "./chunk-A4PWGL46.mjs";
49
52
  import {
50
53
  handleFarmFormActionRequest
51
- } from "./chunk-MJ6IC4K2.mjs";
54
+ } from "./chunk-Z5A6CNV2.mjs";
52
55
  import {
53
56
  FARM_ISLAND_REPLAYABLE_SELECTOR,
54
57
  isFarmIslandStrategy
@@ -58,6 +61,13 @@ import {
58
61
  mergeProgrammaticClientRoutes,
59
62
  resolveProgrammaticClientRoutes
60
63
  } from "./chunk-C5JXCUKR.mjs";
64
+ import {
65
+ createFarmMarkdownRouteModuleFromFile,
66
+ loadFarmMdxComponents
67
+ } from "./chunk-YVJV7Q2X.mjs";
68
+ import {
69
+ isFarmMarkdownPageFile
70
+ } from "./chunk-GW4YUIHW.mjs";
61
71
  import {
62
72
  _setDefaultFarmThemeConfig,
63
73
  getTheme
@@ -118,29 +128,22 @@ import {
118
128
  getFarmAppDirectories,
119
129
  getFarmSourceRoots
120
130
  } from "./chunk-52Y3C3HG.mjs";
131
+ import {
132
+ resolveFarmMdxComponentsModulePath,
133
+ resolveMdxConfig
134
+ } from "./chunk-UIJOLBUL.mjs";
121
135
  import {
122
136
  resolveWorkflowsConfig
123
- } from "./chunk-ATHPRVP2.mjs";
137
+ } from "./chunk-LZ4SB57H.mjs";
124
138
  import {
125
139
  resolveCronConfig
126
- } from "./chunk-UCQ52TJY.mjs";
140
+ } from "./chunk-X3JNB2TB.mjs";
127
141
  import {
128
142
  resolveServerActionsConfig
129
- } from "./chunk-JOHXK4BB.mjs";
143
+ } from "./chunk-FSQMN2MQ.mjs";
130
144
  import {
131
145
  resolveFarmThemeConfig
132
146
  } from "./chunk-YWPNIYUP.mjs";
133
- import {
134
- createFarmMarkdownRouteModuleFromFile,
135
- loadFarmMdxComponents
136
- } from "./chunk-YVJV7Q2X.mjs";
137
- import {
138
- isFarmMarkdownPageFile
139
- } from "./chunk-GW4YUIHW.mjs";
140
- import {
141
- resolveFarmMdxComponentsModulePath,
142
- resolveMdxConfig
143
- } from "./chunk-UIJOLBUL.mjs";
144
147
  import {
145
148
  FARM_MARKDOWN_CONTENT_TYPE,
146
149
  FARM_MARKDOWN_PAGE_CHECK_HEADER,
@@ -161,11 +164,11 @@ import {
161
164
  getIntegrationProviders,
162
165
  getRegisteredIntegrationAPIManifest,
163
166
  isFarmIntegrationProviderComponentReference
164
- } from "./chunk-NW2BKDVT.mjs";
167
+ } from "./chunk-HHFMECFO.mjs";
165
168
  import {
166
169
  createRouteSlotContainerId,
167
170
  parseRouteSlotFile
168
- } from "./chunk-CBJKDB6F.mjs";
171
+ } from "./chunk-IRSS4HS4.mjs";
169
172
  import {
170
173
  _clearCurrentMiddlewareContext,
171
174
  _clearCurrentMiddlewareData,
@@ -175,7 +178,7 @@ import {
175
178
  import {
176
179
  findProgrammaticRouteFiles,
177
180
  loadProgrammaticRouteManifests
178
- } from "./chunk-2H3FJYY6.mjs";
181
+ } from "./chunk-FSXSQQTV.mjs";
179
182
  import {
180
183
  _runWithFarmI18nRequest,
181
184
  _setDefaultFarmI18nRuntime,
@@ -210,7 +213,7 @@ import {
210
213
  } from "./chunk-VHIXGZYH.mjs";
211
214
  import {
212
215
  loadFarmDevModule
213
- } from "./chunk-JUMPFVMK.mjs";
216
+ } from "./chunk-TUOO6IK3.mjs";
214
217
  import {
215
218
  resolveFarmI18nConfig
216
219
  } from "./chunk-MU5V7XHL.mjs";
@@ -227,10 +230,11 @@ import {
227
230
  splitRoutePath,
228
231
  toRootRelativeUrlPath,
229
232
  toViteModuleId
230
- } from "./chunk-2SVJGOAX.mjs";
233
+ } from "./chunk-Y3N5BFRJ.mjs";
231
234
  import {
235
+ createFarmSearchParams,
232
236
  searchParamsToObject
233
- } from "./chunk-TXK4D46O.mjs";
237
+ } from "./chunk-H3ASZDT7.mjs";
234
238
  import {
235
239
  configureFarmObservability,
236
240
  emitFarmEvent
@@ -241,7 +245,7 @@ import {
241
245
  import {
242
246
  matchesFarmIfNoneMatch,
243
247
  resolveFarmServerConfig
244
- } from "./chunk-C6U66WWF.mjs";
248
+ } from "./chunk-GFT5AHAT.mjs";
245
249
  import {
246
250
  getRequestContextSnapshot
247
251
  } from "./chunk-D2LCAV6L.mjs";
@@ -250,7 +254,7 @@ import {
250
254
  } from "./chunk-LM2YOGDK.mjs";
251
255
  import {
252
256
  FARM_VERSION
253
- } from "./chunk-ACI52TCN.mjs";
257
+ } from "./chunk-ZF3GX4O7.mjs";
254
258
  import {
255
259
  resolveFarmTrailingSlashRedirect,
256
260
  setFarmTrailingSlashPreference
@@ -4462,7 +4466,12 @@ function withFarmIslandsRenders(runtime, islandsRuntime) {
4462
4466
  return wrapped;
4463
4467
  }
4464
4468
  var cachedClerkProvider = null;
4465
- var importRuntimeModule = new Function("specifier", "return import(specifier);");
4469
+ function importRuntimeModule(specifier) {
4470
+ return import(
4471
+ /* @vite-ignore */
4472
+ specifier
4473
+ );
4474
+ }
4466
4475
  function shouldServePrerenderedPage(nodeEnv, method) {
4467
4476
  if (nodeEnv !== "production") return false;
4468
4477
  const normalizedMethod = (method || "GET").toUpperCase();
@@ -4652,7 +4661,7 @@ async function parseRouteModuleProps(routeModule, input) {
4652
4661
  ...input.props,
4653
4662
  params,
4654
4663
  search,
4655
- searchParams: Promise.resolve(search)
4664
+ searchParams: createFarmSearchParams(search)
4656
4665
  };
4657
4666
  }
4658
4667
  function parseRouteModuleSchema(schema, value, label, routePath) {
@@ -4670,7 +4679,7 @@ function createRouteStateProps(input) {
4670
4679
  return {
4671
4680
  params: input.params,
4672
4681
  search: input.searchParamsObject,
4673
- searchParams: Promise.resolve(input.searchParamsObject),
4682
+ searchParams: createFarmSearchParams(input.searchParamsObject),
4674
4683
  path: input.path,
4675
4684
  middleware: input.middlewareMap.size > 0 ? { data: input.middlewareMap } : void 0,
4676
4685
  context: input.pluginExposedContext.size > 0 ? { data: input.pluginExposedContext } : void 0
@@ -5123,7 +5132,7 @@ var ServerRenderer = class {
5123
5132
  const PageComponent = mod.default;
5124
5133
  const pageProps = {
5125
5134
  params: page.params,
5126
- searchParams: Promise.resolve({}),
5135
+ searchParams: createFarmSearchParams({}),
5127
5136
  path: page.urlPath
5128
5137
  };
5129
5138
  let pageElement = this.rendererRuntime.createElement(PageComponent, pageProps);
@@ -5409,7 +5418,7 @@ var ServerRenderer = class {
5409
5418
  const rawPageProps = withFarmRouteContext(
5410
5419
  {
5411
5420
  params,
5412
- searchParams: Promise.resolve(searchParamsObject),
5421
+ searchParams: createFarmSearchParams(searchParamsObject),
5413
5422
  path: pathname,
5414
5423
  middleware: middlewareMap.size > 0 ? { data: middlewareMap } : void 0,
5415
5424
  context: pluginExposedContext.size > 0 ? { data: pluginExposedContext } : void 0
@@ -5432,7 +5441,7 @@ var ServerRenderer = class {
5432
5441
  const routeStateProps = {
5433
5442
  ...rawPageProps,
5434
5443
  search: searchParamsObject,
5435
- searchParams: Promise.resolve(searchParamsObject),
5444
+ searchParams: createFarmSearchParams(searchParamsObject),
5436
5445
  error
5437
5446
  };
5438
5447
  if (isFarmNotFoundError(error) && programmaticRouteComponents?.notFound) {
@@ -5550,7 +5559,7 @@ var ServerRenderer = class {
5550
5559
  const rawSlotProps = withFarmRouteContext(
5551
5560
  {
5552
5561
  params: slot.params,
5553
- searchParams: Promise.resolve(searchParamsObject),
5562
+ searchParams: createFarmSearchParams(searchParamsObject),
5554
5563
  path: pathname,
5555
5564
  middleware: middlewareMap.size > 0 ? { data: middlewareMap } : void 0,
5556
5565
  context: pluginExposedContext.size > 0 ? { data: pluginExposedContext } : void 0
@@ -6414,7 +6423,7 @@ var ServerRenderer = class {
6414
6423
  }
6415
6424
  const imageProps = {
6416
6425
  params: options.params,
6417
- searchParams: Promise.resolve(options.searchParamsObject),
6426
+ searchParams: createFarmSearchParams(options.searchParamsObject),
6418
6427
  path: options.pagePath
6419
6428
  };
6420
6429
  const handlerResult = typeof imageModule.default === "function" ? await imageModule.default(imageProps) : imageModule.default;
@@ -7718,7 +7727,7 @@ function resolveFarmAppPackages(root) {
7718
7727
  import fs7 from "fs";
7719
7728
  import { createRequire as createRequire2 } from "module";
7720
7729
  import path12 from "path";
7721
- import fg from "fast-glob";
7730
+ import { globSync } from "tinyglobby";
7722
7731
  var WEBMCP_CLIENT = "@farm.js/webmcp/client";
7723
7732
  var DEFINERS = /* @__PURE__ */ new Set(["defineWebMCPTool", "registerWebMCPTool", "registerWebMCPTools"]);
7724
7733
  var HINTS = ["readOnlyHint", "destructiveHint", "idempotentHint", "openWorldHint"];
@@ -7862,9 +7871,10 @@ function collectFarmWebMCPTools(root, srcDir = "src") {
7862
7871
  const base = path12.resolve(root, srcDir);
7863
7872
  let files;
7864
7873
  try {
7865
- files = fg.sync("**/*.{ts,tsx,js,jsx,mts,mjs,cts,cjs}", {
7874
+ files = globSync("**/*.{ts,tsx,js,jsx,mts,mjs,cts,cjs}", {
7866
7875
  cwd: base,
7867
7876
  absolute: true,
7877
+ expandDirectories: false,
7868
7878
  ignore: ["**/node_modules/**", "**/*.d.ts", "**/*.{test,spec}.*", "**/__tests__/**"]
7869
7879
  });
7870
7880
  } catch {
@@ -7912,6 +7922,12 @@ var CLIENT_KEYS = [
7912
7922
  ];
7913
7923
  var HYDRATION_KEYS = ["before", "after"];
7914
7924
  var NAVIGATION_KEYS = ["before", "loaded", "resolved", "rendered", "error"];
7925
+ var MOBILE_SHELL_CLIENT_IMPORT = 'import { farmMobileShellClient as __farmMobileShellClient } from "@farm.js/core/internal/client-runtime";';
7926
+ var MOBILE_SHELL_CLIENT_REGISTRATION = ` {
7927
+ name: "farm:mobile-shell",
7928
+ enforce: "pre",
7929
+ definition: __farmMobileShellClient,
7930
+ }`;
7915
7931
  var APP_CLIENT_EXTENSIONS = ["ts", "tsx", "js", "jsx", "mts", "mjs"];
7916
7932
  function resolveFarmAppClientEntry(root = process.cwd(), srcDir = "src") {
7917
7933
  const sourceRoot = path13.resolve(root, srcDir);
@@ -7941,15 +7957,20 @@ function resolveFarmClientPlugins(plugins, _root) {
7941
7957
  function generateFarmClientPluginEntryCode(plugins, root, srcDir = "src", appPublicData) {
7942
7958
  const resolved = resolveFarmClientPlugins(plugins, root);
7943
7959
  const appClientEntry = root ? resolveFarmAppClientEntry(root, srcDir) : void 0;
7944
- const imports = appClientEntry ? `import farmAppClientDefinition from ${JSON.stringify(appClientEntry.replace(/\\/g, "/"))};` : "";
7945
- const serializedPlugins = resolved.map(
7946
- (plugin) => ` {
7960
+ const appImport = appClientEntry ? `import farmAppClientDefinition from ${JSON.stringify(appClientEntry.replace(/\\/g, "/"))};` : "";
7961
+ const mobileShell = resolveFarmPlatform() === "mobile";
7962
+ const imports = mobileShell ? [MOBILE_SHELL_CLIENT_IMPORT, appImport].filter(Boolean).join("\n") : appImport;
7963
+ const serializedPlugins = mobileShell ? [MOBILE_SHELL_CLIENT_REGISTRATION] : [];
7964
+ serializedPlugins.push(
7965
+ ...resolved.map(
7966
+ (plugin) => ` {
7947
7967
  name: ${JSON.stringify(plugin.name)},
7948
7968
  version: ${serializeOptionalString(plugin.version)},
7949
7969
  enforce: ${serializeOptionalString(plugin.enforce)},
7950
7970
  definition: ${serializeClientLifecycle(plugin.definition, plugin.name)},
7951
7971
  public: ${serializePublicData(plugin.publicData)},
7952
7972
  }`
7973
+ )
7953
7974
  );
7954
7975
  if (appClientEntry) {
7955
7976
  assertPublicData(appPublicData, "farm:app-client");