@farm.js/core 0.1.60 → 0.1.61

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 (1276) hide show
  1. package/dist/after.cjs +3 -3
  2. package/dist/after.mjs +2 -2
  3. package/dist/agent-mcp-handler-LPJ2CADR.mjs +19 -0
  4. package/dist/agent-mcp-handler-SJAHFSPI.cjs +19 -0
  5. package/dist/agent-runtime.cjs +59 -36
  6. package/dist/agent-runtime.mjs +58 -35
  7. package/dist/api/client.cjs +15 -16
  8. package/dist/api/client.mjs +13 -14
  9. package/dist/api/route-manager.cjs +39 -41
  10. package/dist/api/route-manager.mjs +38 -40
  11. package/dist/api/runtime.cjs +22 -24
  12. package/dist/api/runtime.mjs +22 -24
  13. package/dist/api.cjs +50 -52
  14. package/dist/api.mjs +49 -51
  15. package/dist/app-markdown.cjs +15 -15
  16. package/dist/app-markdown.mjs +14 -14
  17. package/dist/cache.cjs +7 -10
  18. package/dist/cache.mjs +6 -9
  19. package/dist/chunk-23MGIV4X.mjs +579 -0
  20. package/dist/chunk-27ZWSI3W.cjs +64 -0
  21. package/dist/chunk-2A3EQHXX.mjs +173 -0
  22. package/dist/chunk-2CQ74SP6.cjs +13 -0
  23. package/dist/chunk-2ELDTQRN.mjs +85 -0
  24. package/dist/chunk-2J7W2WND.mjs +149 -0
  25. package/dist/chunk-2NNMOPDN.mjs +237 -0
  26. package/dist/chunk-2PQNJXFM.mjs +20 -0
  27. package/dist/chunk-2SJ4RQ6P.cjs +57 -0
  28. package/dist/chunk-2UC36WAC.mjs +22 -0
  29. package/dist/chunk-2VQKKQ6D.mjs +51 -0
  30. package/dist/chunk-2Y3JRYVG.mjs +71 -0
  31. package/dist/chunk-35GKZR22.mjs +157 -0
  32. package/dist/chunk-3BU22U3M.cjs +237 -0
  33. package/dist/chunk-3KZS4SUS.mjs +414 -0
  34. package/dist/chunk-3SDFA7UF.cjs +701 -0
  35. package/dist/chunk-3TLO7SBY.cjs +240 -0
  36. package/dist/chunk-3UEVPCGW.mjs +435 -0
  37. package/dist/chunk-3WNDJT2E.cjs +109 -0
  38. package/dist/chunk-44SYJEG3.mjs +13 -0
  39. package/dist/chunk-45ZSJLDT.mjs +183 -0
  40. package/dist/chunk-4E5AEDKY.mjs +696 -0
  41. package/dist/chunk-4E5WBPEG.mjs +1157 -0
  42. package/dist/chunk-4GLOOWKE.mjs +1344 -0
  43. package/dist/chunk-4JCQDWPX.mjs +24 -0
  44. package/dist/chunk-4NU4GGTC.cjs +484 -0
  45. package/dist/chunk-4OOBRCJX.mjs +300 -0
  46. package/dist/chunk-4PPEPOZZ.cjs +21 -0
  47. package/dist/chunk-4RB44K6Z.mjs +94 -0
  48. package/dist/chunk-4SIYUGRY.mjs +93 -0
  49. package/dist/chunk-4WQ6PGSJ.cjs +367 -0
  50. package/dist/chunk-4WVJLURN.mjs +417 -0
  51. package/dist/chunk-4ZFL5GFN.cjs +520 -0
  52. package/dist/chunk-54UPOYFS.mjs +35 -0
  53. package/dist/chunk-55YI3RRB.mjs +192 -0
  54. package/dist/chunk-5I3OT426.cjs +11021 -0
  55. package/dist/chunk-5QIKR7RR.cjs +224 -0
  56. package/dist/chunk-5SJWVY6R.mjs +26 -0
  57. package/dist/chunk-5WI2S4CO.mjs +20 -0
  58. package/dist/chunk-63H6BKXG.cjs +389 -0
  59. package/dist/chunk-655RLQQL.mjs +43 -0
  60. package/dist/chunk-6EODJYCX.cjs +183 -0
  61. package/dist/chunk-6EXBPJ24.cjs +434 -0
  62. package/dist/chunk-6MVFL3R5.cjs +506 -0
  63. package/dist/chunk-6NT6S2VQ.mjs +180 -0
  64. package/dist/chunk-6QQDAAAZ.cjs +38 -0
  65. package/dist/chunk-6SJ2KJTA.mjs +314 -0
  66. package/dist/chunk-6SM5XXFS.cjs +70 -0
  67. package/dist/chunk-6V4TDWEC.cjs +455 -0
  68. package/dist/chunk-72ADZ6GQ.cjs +19 -0
  69. package/dist/chunk-72AK62H5.mjs +55 -0
  70. package/dist/chunk-75RZHGLS.cjs +135 -0
  71. package/dist/chunk-77GNHH2Z.cjs +236 -0
  72. package/dist/chunk-7DBXEASO.cjs +40 -0
  73. package/dist/chunk-7LTCDQRS.mjs +166 -0
  74. package/dist/chunk-7W3CPVXS.cjs +24 -0
  75. package/dist/chunk-A6WIQH5Z.cjs +31 -0
  76. package/dist/chunk-ADEA7PN3.cjs +1101 -0
  77. package/dist/chunk-AELACLOB.mjs +47 -0
  78. package/dist/chunk-AHGECQEW.mjs +49 -0
  79. package/dist/chunk-AI7QMY7O.cjs +41 -0
  80. package/dist/chunk-AJQTP4OO.mjs +212 -0
  81. package/dist/chunk-AMDMVWMI.cjs +39 -0
  82. package/dist/chunk-ARJWXNQL.cjs +256 -0
  83. package/dist/chunk-BCMSYSN2.mjs +183 -0
  84. package/dist/chunk-BIDYX3SL.cjs +91 -0
  85. package/dist/chunk-BJIYRUGQ.mjs +35 -0
  86. package/dist/chunk-BJPBQNIE.cjs +2355 -0
  87. package/dist/chunk-BO36SELV.cjs +395 -0
  88. package/dist/chunk-BOYNDCZL.mjs +54 -0
  89. package/dist/chunk-BPMATOP2.cjs +687 -0
  90. package/dist/chunk-BPOF5U4N.mjs +566 -0
  91. package/dist/chunk-BRYHOB4X.mjs +18 -0
  92. package/dist/chunk-BSC7JTOK.mjs +70 -0
  93. package/dist/chunk-BTHHUD7Q.mjs +51 -0
  94. package/dist/chunk-BUGNQIHC.mjs +449 -0
  95. package/dist/chunk-C4NCTZLM.mjs +22 -0
  96. package/dist/chunk-C4SPBWFM.cjs +26 -0
  97. package/dist/chunk-C5GUTBZK.cjs +173 -0
  98. package/dist/chunk-CBBLJMR5.mjs +74 -0
  99. package/dist/chunk-CBJJH36A.cjs +2187 -0
  100. package/dist/chunk-CGBDNNSM.cjs +664 -0
  101. package/dist/chunk-CI6E3UOH.cjs +314 -0
  102. package/dist/chunk-CMGMGHUZ.cjs +27 -0
  103. package/dist/chunk-CNOQY6Z7.mjs +156 -0
  104. package/dist/chunk-CQ6OSQ3K.mjs +36 -0
  105. package/dist/chunk-CU625VAY.mjs +13 -0
  106. package/dist/chunk-CVOSWIQA.mjs +15300 -0
  107. package/dist/chunk-CXEN47J3.mjs +550 -0
  108. package/dist/chunk-CXP5U3RW.cjs +54 -0
  109. package/dist/chunk-D227TIEN.cjs +1114 -0
  110. package/dist/chunk-D2BB47NB.cjs +157 -0
  111. package/dist/chunk-D2ULAULS.cjs +166 -0
  112. package/dist/chunk-D7JTOLFK.cjs +285 -0
  113. package/dist/chunk-DAATZTKJ.mjs +220 -0
  114. package/dist/chunk-DAO7JGTS.mjs +73 -0
  115. package/dist/chunk-DQQOKWYA.cjs +42 -0
  116. package/dist/chunk-DTSROJ5J.mjs +367 -0
  117. package/dist/chunk-DVM4FKZL.cjs +169 -0
  118. package/dist/chunk-DZ5ZVB2K.cjs +9 -0
  119. package/dist/chunk-E2ROOWQC.cjs +2225 -0
  120. package/dist/chunk-E3UK5IIB.cjs +593 -0
  121. package/dist/chunk-E5GNDG5F.mjs +701 -0
  122. package/dist/chunk-EA5K5BKU.mjs +455 -0
  123. package/dist/chunk-ECKF2BAM.cjs +403 -0
  124. package/dist/chunk-EK4QAEFZ.cjs +550 -0
  125. package/dist/chunk-EMLAPBEM.mjs +256 -0
  126. package/dist/chunk-ENLZ4R3Y.mjs +55 -0
  127. package/dist/chunk-EUV4YR3V.cjs +1362 -0
  128. package/dist/chunk-EWET4D2Y.mjs +395 -0
  129. package/dist/chunk-EZDQRNQ7.mjs +1496 -0
  130. package/dist/chunk-F2SE2VDO.mjs +65 -0
  131. package/dist/chunk-F3LTXB63.mjs +40 -0
  132. package/dist/chunk-F3VB7ONA.mjs +338 -0
  133. package/dist/chunk-F5QO4FNE.mjs +664 -0
  134. package/dist/chunk-FA2W42OV.mjs +25 -0
  135. package/dist/chunk-FDR64H6B.mjs +140 -0
  136. package/dist/chunk-FFFW3OQ7.cjs +65 -0
  137. package/dist/chunk-FJ3M4CUX.cjs +46 -0
  138. package/dist/chunk-FK6GO24V.cjs +54 -0
  139. package/dist/chunk-FNO7A7CM.cjs +1496 -0
  140. package/dist/chunk-FO427P6I.cjs +392 -0
  141. package/dist/chunk-FP2INE7H.mjs +113 -0
  142. package/dist/chunk-FUZEBRP3.mjs +593 -0
  143. package/dist/chunk-FZ6YYU2W.mjs +65 -0
  144. package/dist/chunk-G2KY33I6.mjs +202 -0
  145. package/dist/chunk-G4MWPDSE.mjs +19 -0
  146. package/dist/chunk-G643DQCH.cjs +13 -0
  147. package/dist/chunk-G7HXGLEC.cjs +175 -0
  148. package/dist/chunk-GC3SUL6M.mjs +109 -0
  149. package/dist/chunk-GCXWJJKH.mjs +169 -0
  150. package/dist/chunk-GHFS7RUB.mjs +152 -0
  151. package/dist/chunk-GQ3Z3IZI.cjs +241 -0
  152. package/dist/chunk-H4AMB6ZE.mjs +421 -0
  153. package/dist/chunk-H77NVNJ2.mjs +57 -0
  154. package/dist/chunk-HALDNTIV.mjs +2225 -0
  155. package/dist/chunk-HITLGIAO.cjs +55 -0
  156. package/dist/chunk-HLJ6MBUZ.cjs +183 -0
  157. package/dist/chunk-HOXTWRGB.mjs +484 -0
  158. package/dist/chunk-HREOKQWT.cjs +45 -0
  159. package/dist/chunk-I2BHUNBU.mjs +14 -0
  160. package/dist/chunk-I57LW5VZ.cjs +94 -0
  161. package/dist/chunk-IE7XCHH3.cjs +85 -0
  162. package/dist/chunk-IHNIDL6H.cjs +772 -0
  163. package/dist/chunk-IK6LVLKC.cjs +51 -0
  164. package/dist/chunk-IOEH4VWN.mjs +202 -0
  165. package/dist/chunk-IWZKTWHZ.cjs +435 -0
  166. package/dist/chunk-IZY3V5XW.mjs +23 -0
  167. package/dist/chunk-J63ZH5OQ.cjs +62 -0
  168. package/dist/chunk-J7FSKED3.cjs +93 -0
  169. package/dist/chunk-JBSVKMC5.mjs +28 -0
  170. package/dist/chunk-JDNHKPTD.cjs +22 -0
  171. package/dist/chunk-JG6DJF5A.mjs +238 -0
  172. package/dist/chunk-JGLC4TO3.cjs +192 -0
  173. package/dist/chunk-JM5XPKWH.mjs +41 -0
  174. package/dist/chunk-JNUWCDTF.cjs +1344 -0
  175. package/dist/chunk-JNZ4TDWM.mjs +445 -0
  176. package/dist/chunk-JPLUGGRV.mjs +230 -0
  177. package/dist/chunk-JSROZYYO.cjs +164 -0
  178. package/dist/chunk-KCMTCM6I.cjs +53 -0
  179. package/dist/chunk-KGB5UXJJ.mjs +27 -0
  180. package/dist/chunk-KGZIORNL.cjs +43 -0
  181. package/dist/chunk-KI3MESHB.mjs +224 -0
  182. package/dist/chunk-KIIMAWOJ.cjs +505 -0
  183. package/dist/chunk-KMTGADN3.mjs +95 -0
  184. package/dist/chunk-KN7K4VQN.mjs +236 -0
  185. package/dist/chunk-KNBBQHO2.cjs +51 -0
  186. package/dist/chunk-KR6CKSXT.cjs +15 -0
  187. package/dist/chunk-KXWRO25S.cjs +85 -0
  188. package/dist/chunk-L3KT7IXV.mjs +91 -0
  189. package/dist/chunk-LCCBO7PJ.cjs +46 -0
  190. package/dist/chunk-LIUGYUX3.cjs +22 -0
  191. package/dist/chunk-LPEX4YW6.mjs +13 -0
  192. package/dist/chunk-LSKZMJMP.cjs +65 -0
  193. package/dist/chunk-LSZAVSGY.mjs +1101 -0
  194. package/dist/chunk-LTNGXMQ6.cjs +55 -0
  195. package/dist/chunk-LYLEZIG3.cjs +73 -0
  196. package/dist/chunk-LYV44OIR.mjs +256 -0
  197. package/dist/chunk-M2L4MYDQ.cjs +14 -0
  198. package/dist/chunk-M7MKQXAF.cjs +87 -0
  199. package/dist/chunk-MKYBIIAQ.mjs +2187 -0
  200. package/dist/chunk-MQ3H6LT5.cjs +202 -0
  201. package/dist/chunk-MRMI32SN.cjs +1157 -0
  202. package/dist/chunk-MSSFIQGM.mjs +1002 -0
  203. package/dist/chunk-MT763TDW.cjs +43 -0
  204. package/dist/chunk-MVL2RAJW.mjs +62 -0
  205. package/dist/chunk-MWSK6C4J.cjs +18 -0
  206. package/dist/chunk-MWWVKDW3.cjs +169 -0
  207. package/dist/chunk-N2NAS2AM.cjs +725 -0
  208. package/dist/chunk-N46M65CI.mjs +54 -0
  209. package/dist/chunk-N4UOK6ZI.cjs +256 -0
  210. package/dist/chunk-NI2TCCTG.mjs +11020 -0
  211. package/dist/chunk-NO3WWW3N.cjs +192 -0
  212. package/dist/chunk-NPC7VWJE.mjs +277 -0
  213. package/dist/chunk-NRDBW4MP.mjs +45 -0
  214. package/dist/chunk-NRSN7G7E.mjs +42 -0
  215. package/dist/chunk-NYJMY3JA.cjs +156 -0
  216. package/dist/chunk-NZKJGRB3.cjs +230 -0
  217. package/dist/chunk-O6BCQV2T.mjs +46 -0
  218. package/dist/chunk-O6I6VWKK.mjs +493 -0
  219. package/dist/chunk-O6WAEAX3.mjs +2028 -0
  220. package/dist/chunk-O7BH5O46.mjs +175 -0
  221. package/dist/chunk-OFZUJMCU.mjs +601 -0
  222. package/dist/chunk-OHLSEQ57.mjs +910 -0
  223. package/dist/chunk-OHY2ZWUG.cjs +25 -0
  224. package/dist/chunk-OI6CMLWX.cjs +47 -0
  225. package/dist/chunk-ONUEYC6N.mjs +27 -0
  226. package/dist/chunk-OO7GXVSR.mjs +9 -0
  227. package/dist/chunk-OT6ZEW74.mjs +139 -0
  228. package/dist/chunk-OTC5BDGO.mjs +687 -0
  229. package/dist/chunk-OX6O6WVA.cjs +74 -0
  230. package/dist/chunk-OYEUREB6.cjs +35 -0
  231. package/dist/chunk-OZVEHHMA.cjs +194 -0
  232. package/dist/chunk-P5TJO5IS.mjs +240 -0
  233. package/dist/chunk-PCOTGFSM.cjs +139 -0
  234. package/dist/chunk-PNGWZFUQ.mjs +39 -0
  235. package/dist/chunk-PSV6XKPO.cjs +220 -0
  236. package/dist/chunk-PTZ2TVNE.cjs +178 -0
  237. package/dist/chunk-PZNL3WEG.mjs +772 -0
  238. package/dist/chunk-PZYCPSCC.cjs +35 -0
  239. package/dist/chunk-Q2KB32T4.mjs +690 -0
  240. package/dist/chunk-Q5B3KJBP.cjs +152 -0
  241. package/dist/chunk-QBK2AA4U.cjs +445 -0
  242. package/dist/chunk-QCFBDFRS.mjs +169 -0
  243. package/dist/chunk-QCVE2OCI.cjs +169 -0
  244. package/dist/chunk-QE6VAKLT.mjs +85 -0
  245. package/dist/chunk-QNPEUFHQ.cjs +27 -0
  246. package/dist/chunk-QORUJDIV.mjs +46 -0
  247. package/dist/chunk-QV4VE2OW.mjs +166 -0
  248. package/dist/chunk-QVKYGNVM.mjs +27 -0
  249. package/dist/chunk-QVYLBY73.mjs +93 -0
  250. package/dist/chunk-R3DS7A2T.mjs +21 -0
  251. package/dist/chunk-R5A5KNVX.cjs +20 -0
  252. package/dist/chunk-R5JIFR6B.cjs +42 -0
  253. package/dist/chunk-RHAZ22ZN.mjs +87 -0
  254. package/dist/chunk-RKPDESVW.cjs +15301 -0
  255. package/dist/chunk-RSOJ7DRT.mjs +506 -0
  256. package/dist/chunk-S3A45T7F.cjs +166 -0
  257. package/dist/chunk-S3FNNQHR.mjs +31 -0
  258. package/dist/chunk-S3JO3N4H.cjs +17 -0
  259. package/dist/chunk-S67OYZU7.mjs +711 -0
  260. package/dist/chunk-S6VYG6XU.cjs +493 -0
  261. package/dist/chunk-SAXPH6G5.mjs +169 -0
  262. package/dist/chunk-SC2WYWPF.mjs +241 -0
  263. package/dist/chunk-SDOTRX3V.cjs +690 -0
  264. package/dist/chunk-SEJ5N6SL.mjs +38 -0
  265. package/dist/chunk-SFGWNC43.mjs +97 -0
  266. package/dist/chunk-SHB3GYXI.mjs +285 -0
  267. package/dist/chunk-SHLXACIO.cjs +95 -0
  268. package/dist/chunk-SJNMVDDF.cjs +86 -0
  269. package/dist/chunk-SK35NQKK.cjs +27 -0
  270. package/dist/chunk-SKNL7VA2.mjs +42 -0
  271. package/dist/chunk-SLQCDJSO.mjs +18 -0
  272. package/dist/chunk-SOR334EB.cjs +149 -0
  273. package/dist/chunk-SU7MH53P.cjs +180 -0
  274. package/dist/chunk-SVRTJOUF.cjs +113 -0
  275. package/dist/chunk-SYQ3MOWW.cjs +73 -0
  276. package/dist/chunk-T4OGRVNS.mjs +392 -0
  277. package/dist/chunk-T5OJPTVN.cjs +417 -0
  278. package/dist/chunk-TE2G5ION.cjs +2028 -0
  279. package/dist/chunk-TFQG7TBC.mjs +43 -0
  280. package/dist/chunk-TIWHTW3Q.cjs +24 -0
  281. package/dist/chunk-TKJZFIML.cjs +20 -0
  282. package/dist/chunk-TKSCR644.cjs +414 -0
  283. package/dist/chunk-TVGP4BBZ.mjs +45 -0
  284. package/dist/chunk-U4KT7QP3.cjs +23 -0
  285. package/dist/chunk-UDNPLXW7.mjs +86 -0
  286. package/dist/chunk-UFDAAQFX.cjs +169 -0
  287. package/dist/chunk-UFDV5N3C.cjs +711 -0
  288. package/dist/chunk-UH6QN5NL.mjs +178 -0
  289. package/dist/chunk-UP4CW6WP.mjs +169 -0
  290. package/dist/chunk-UQZ4AYTH.cjs +168 -0
  291. package/dist/chunk-US2QVW3E.cjs +36 -0
  292. package/dist/chunk-UVW64BCB.cjs +910 -0
  293. package/dist/chunk-UWPLULNK.mjs +520 -0
  294. package/dist/chunk-UXFQ3UDA.cjs +140 -0
  295. package/dist/chunk-UYIHRDE4.cjs +97 -0
  296. package/dist/chunk-V2FTMRS7.mjs +223 -0
  297. package/dist/chunk-VB6UCX3V.cjs +421 -0
  298. package/dist/chunk-VEKFLAQM.cjs +300 -0
  299. package/dist/chunk-VILIPRS6.mjs +725 -0
  300. package/dist/chunk-VQLJWDVW.cjs +696 -0
  301. package/dist/chunk-W3B4PKAW.mjs +28 -0
  302. package/dist/chunk-W4E7WMXE.cjs +71 -0
  303. package/dist/chunk-W7LF2J2S.mjs +64 -0
  304. package/dist/chunk-WBKEZXWE.cjs +449 -0
  305. package/dist/chunk-WC5UV2HQ.cjs +212 -0
  306. package/dist/chunk-WMAPPDMM.cjs +28 -0
  307. package/dist/chunk-WMOGFOUJ.cjs +223 -0
  308. package/dist/chunk-WNSDDRNU.mjs +24 -0
  309. package/dist/chunk-WWFTAUFG.cjs +45 -0
  310. package/dist/chunk-WWIKMBRN.mjs +1362 -0
  311. package/dist/chunk-XCMCS4DA.mjs +1114 -0
  312. package/dist/chunk-XJJVLDM6.mjs +194 -0
  313. package/dist/chunk-XJXBIP67.cjs +277 -0
  314. package/dist/chunk-XNPDONUH.mjs +389 -0
  315. package/dist/chunk-XSIRSMAS.cjs +339 -0
  316. package/dist/chunk-XZNTNMHT.mjs +15 -0
  317. package/dist/chunk-Y5SJM2W7.cjs +579 -0
  318. package/dist/chunk-YDQZGSDS.mjs +2355 -0
  319. package/dist/chunk-YFILVET3.mjs +192 -0
  320. package/dist/chunk-YFPGHF5F.cjs +202 -0
  321. package/dist/chunk-YHOCRI4H.mjs +434 -0
  322. package/dist/chunk-YJRZR7VU.cjs +28 -0
  323. package/dist/chunk-YKX5BK66.cjs +46 -0
  324. package/dist/chunk-YOZYCI6Z.mjs +73 -0
  325. package/dist/chunk-YSCV4SJF.cjs +49 -0
  326. package/dist/chunk-YSLWRWWP.cjs +601 -0
  327. package/dist/chunk-YWMZUGIS.mjs +403 -0
  328. package/dist/chunk-YWN746US.cjs +1002 -0
  329. package/dist/chunk-YX3DBN4M.cjs +18 -0
  330. package/dist/chunk-Z2HLU4IX.cjs +238 -0
  331. package/dist/chunk-Z2RZJZIZ.mjs +168 -0
  332. package/dist/chunk-Z3HATSKO.mjs +46 -0
  333. package/dist/chunk-ZEG3OPIB.cjs +93 -0
  334. package/dist/chunk-ZLAT2CWY.mjs +135 -0
  335. package/dist/chunk-ZMMBIVQM.mjs +505 -0
  336. package/dist/chunk-ZMSZZXOR.mjs +164 -0
  337. package/dist/chunk-ZWM5KGAA.cjs +566 -0
  338. package/dist/chunk-ZZSRYEYU.mjs +53 -0
  339. package/dist/client/lifecycle.cjs +3 -3
  340. package/dist/client/lifecycle.mjs +2 -2
  341. package/dist/client-plugins.cjs +3 -3
  342. package/dist/client-plugins.mjs +2 -2
  343. package/dist/client.cjs +40 -45
  344. package/dist/client.mjs +39 -44
  345. package/dist/config.cjs +3 -3
  346. package/dist/config.mjs +2 -2
  347. package/dist/cron.cjs +9 -9
  348. package/dist/cron.mjs +8 -8
  349. package/dist/deferred.cjs +3 -3
  350. package/dist/deferred.mjs +2 -2
  351. package/dist/deployment.cjs +3 -3
  352. package/dist/deployment.mjs +2 -2
  353. package/dist/devtools-ERIKFEXX.mjs +472 -0
  354. package/dist/devtools-JZJJY5CK.cjs +472 -0
  355. package/dist/devtools-client-CXQ6PXI6.cjs +254 -0
  356. package/dist/devtools-client-HJS2T34Y.mjs +254 -0
  357. package/dist/devtools-ui-5GBDIGMK.cjs +1296 -0
  358. package/dist/devtools-ui-5KDAVPIF.mjs +1296 -0
  359. package/dist/docs.cjs +58 -66
  360. package/dist/docs.mjs +57 -65
  361. package/dist/env-types.cjs +4 -4
  362. package/dist/env-types.mjs +3 -3
  363. package/dist/env.cjs +4 -4
  364. package/dist/env.mjs +3 -3
  365. package/dist/environment/vite.cjs +3 -7
  366. package/dist/environment/vite.mjs +2 -6
  367. package/dist/environment.cjs +3 -3
  368. package/dist/environment.mjs +2 -2
  369. package/dist/font.cjs +3 -3
  370. package/dist/font.mjs +2 -2
  371. package/dist/headers.cjs +6 -8
  372. package/dist/headers.mjs +5 -7
  373. package/dist/i18n/client.cjs +30 -19
  374. package/dist/i18n/client.mjs +20 -9
  375. package/dist/i18n/index.cjs +6 -6
  376. package/dist/i18n/index.mjs +5 -5
  377. package/dist/i18n/server.cjs +10 -10
  378. package/dist/i18n/server.mjs +9 -9
  379. package/dist/image/server.cjs +5 -9
  380. package/dist/image/server.mjs +4 -8
  381. package/dist/image/sharp.cjs +20 -16
  382. package/dist/image/sharp.mjs +12 -8
  383. package/dist/image.cjs +18 -9
  384. package/dist/image.mjs +13 -4
  385. package/dist/index.cjs +174 -235
  386. package/dist/index.mjs +241 -302
  387. package/dist/instrumentation.cjs +5 -5
  388. package/dist/instrumentation.mjs +4 -4
  389. package/dist/integration-orm-55F7CII5.cjs +13 -0
  390. package/dist/integration-orm-KV5B3BGZ.mjs +13 -0
  391. package/dist/integrations.cjs +17 -23
  392. package/dist/integrations.mjs +18 -24
  393. package/dist/internal/app-markdown-runtime.cjs +13 -13
  394. package/dist/internal/app-markdown-runtime.mjs +12 -12
  395. package/dist/internal/build-runtime.cjs +133 -161
  396. package/dist/internal/build-runtime.mjs +121 -149
  397. package/dist/internal/cli-runtime.cjs +79 -101
  398. package/dist/internal/cli-runtime.mjs +79 -101
  399. package/dist/internal/client-error-overlay.cjs +49 -18
  400. package/dist/internal/client-error-overlay.mjs +45 -14
  401. package/dist/internal/client-runtime.cjs +59 -73
  402. package/dist/internal/client-runtime.mjs +52 -66
  403. package/dist/internal/compression-runtime.cjs +4 -4
  404. package/dist/internal/compression-runtime.mjs +3 -3
  405. package/dist/internal/config-runtime.cjs +65 -94
  406. package/dist/internal/config-runtime.mjs +51 -80
  407. package/dist/internal/docs-precompiled-runtime.cjs +24 -18
  408. package/dist/internal/docs-precompiled-runtime.mjs +20 -14
  409. package/dist/internal/infra-analytics-runtime.cjs +8 -22
  410. package/dist/internal/infra-analytics-runtime.mjs +6 -20
  411. package/dist/internal/isolated-boundary.cjs +4 -5
  412. package/dist/internal/isolated-boundary.mjs +3 -4
  413. package/dist/internal/metadata-image-runtime.cjs +7 -8
  414. package/dist/internal/metadata-image-runtime.mjs +6 -7
  415. package/dist/internal/product-telemetry-runtime.cjs +17 -5
  416. package/dist/internal/product-telemetry-runtime.mjs +15 -3
  417. package/dist/internal/production-node-env.cjs +3 -7
  418. package/dist/internal/production-node-env.mjs +2 -6
  419. package/dist/internal/production-runtime.cjs +90 -172
  420. package/dist/internal/production-runtime.mjs +114 -196
  421. package/dist/internal/request-cookies.cjs +3 -3
  422. package/dist/internal/request-cookies.mjs +2 -2
  423. package/dist/internal/server-tree.cjs +4 -7
  424. package/dist/internal/server-tree.mjs +5 -8
  425. package/dist/json-ld.cjs +16 -3
  426. package/dist/json-ld.mjs +16 -3
  427. package/dist/layers-UTB43B7A.mjs +18 -0
  428. package/dist/layers-VUWIOFEO.cjs +18 -0
  429. package/dist/manager-RT733VRK.mjs +14 -0
  430. package/dist/manager-XZ5TX7AO.cjs +14 -0
  431. package/dist/markdown.cjs +12 -19
  432. package/dist/markdown.mjs +11 -18
  433. package/dist/middleware.cjs +26 -34
  434. package/dist/middleware.mjs +30 -38
  435. package/dist/navigation.cjs +21 -22
  436. package/dist/navigation.mjs +20 -21
  437. package/dist/nitro-7F65EZZS.cjs +653 -0
  438. package/dist/nitro-MPZJGPXK.mjs +653 -0
  439. package/dist/node-module-bundle-L5L7JCZ4.mjs +11 -0
  440. package/dist/node-module-bundle-VAFZOXMJ.cjs +11 -0
  441. package/dist/observability.cjs +3 -3
  442. package/dist/observability.mjs +2 -2
  443. package/dist/og.cjs +1 -1
  444. package/dist/og.mjs +1 -1
  445. package/dist/plugin.cjs +124 -153
  446. package/dist/plugin.mjs +107 -136
  447. package/dist/query/client.cjs +69 -59
  448. package/dist/query/client.mjs +61 -51
  449. package/dist/query/index.cjs +4 -4
  450. package/dist/query/index.mjs +3 -3
  451. package/dist/query/parsers.cjs +3 -3
  452. package/dist/query/parsers.mjs +2 -2
  453. package/dist/query/server.cjs +11 -5
  454. package/dist/query/server.mjs +9 -3
  455. package/dist/renderer/react/client.cjs +1 -1
  456. package/dist/renderer/react/client.mjs +1 -1
  457. package/dist/renderer/react/server.cjs +14 -10
  458. package/dist/renderer/react/server.mjs +16 -12
  459. package/dist/renderer/react/vite.cjs +4 -1
  460. package/dist/renderer/react/vite.mjs +4 -1
  461. package/dist/renderer-client.cjs +77 -71
  462. package/dist/renderer-client.mjs +57 -51
  463. package/dist/renderer.cjs +3 -3
  464. package/dist/renderer.mjs +2 -2
  465. package/dist/request.cjs +4 -4
  466. package/dist/request.mjs +3 -3
  467. package/dist/router.cjs +5 -5
  468. package/dist/router.mjs +4 -4
  469. package/dist/routes.cjs +12 -14
  470. package/dist/routes.mjs +11 -13
  471. package/dist/schema-dev-notice-O67CPXJ6.mjs +56 -0
  472. package/dist/schema-dev-notice-Y7MQEFGN.cjs +56 -0
  473. package/dist/schema.cjs +3 -3
  474. package/dist/schema.mjs +2 -2
  475. package/dist/search-client-G3RICOFU.cjs +13 -0
  476. package/dist/search-client-KR7YRIVR.mjs +13 -0
  477. package/dist/server-action-security.cjs +7 -8
  478. package/dist/server-action-security.mjs +6 -7
  479. package/dist/server-fn-client.cjs +4 -4
  480. package/dist/server-fn-client.mjs +3 -3
  481. package/dist/server-fn.cjs +14 -15
  482. package/dist/server-fn.mjs +13 -14
  483. package/dist/server-plugins.cjs +15 -15
  484. package/dist/server-plugins.mjs +14 -14
  485. package/dist/server-query-client.cjs +8 -9
  486. package/dist/server-query-client.mjs +7 -8
  487. package/dist/server-query.cjs +16 -17
  488. package/dist/server-query.mjs +15 -16
  489. package/dist/server.cjs +199 -265
  490. package/dist/server.mjs +172 -238
  491. package/dist/storage.cjs +3 -7
  492. package/dist/storage.mjs +2 -6
  493. package/dist/testing.cjs +76 -59
  494. package/dist/testing.mjs +66 -49
  495. package/dist/theme/client.cjs +5 -5
  496. package/dist/theme/client.mjs +4 -4
  497. package/dist/theme/index.cjs +3 -3
  498. package/dist/theme/index.mjs +2 -2
  499. package/dist/theme/runtime.cjs +3 -3
  500. package/dist/theme/runtime.mjs +2 -2
  501. package/dist/theme/server.cjs +8 -8
  502. package/dist/theme/server.mjs +7 -7
  503. package/dist/version.cjs +3 -3
  504. package/dist/version.mjs +2 -2
  505. package/dist/vite.cjs +121 -166
  506. package/dist/vite.mjs +107 -152
  507. package/dist/workflows.cjs +13 -14
  508. package/dist/workflows.mjs +12 -13
  509. package/package.json +6 -1
  510. package/dist/after.d.mts +0 -25
  511. package/dist/after.d.ts +0 -25
  512. package/dist/agent-mcp-handler-7QMX2LUY.mjs +0 -18
  513. package/dist/agent-mcp-handler-OV4WRFBL.cjs +0 -18
  514. package/dist/agent-mcp.d-C-2S9bnP.d.mts +0 -115
  515. package/dist/agent-mcp.d-SIoCUP1I.d.ts +0 -115
  516. package/dist/agent-runtime.d.mts +0 -105
  517. package/dist/agent-runtime.d.ts +0 -105
  518. package/dist/analyzer-22BEYV7S.mjs +0 -1229
  519. package/dist/analyzer-LCSI3NSH.cjs +0 -1229
  520. package/dist/api/client.d.mts +0 -5
  521. package/dist/api/client.d.ts +0 -5
  522. package/dist/api/client.native.cjs +0 -45
  523. package/dist/api/client.native.d.mts +0 -23
  524. package/dist/api/client.native.d.ts +0 -23
  525. package/dist/api/client.native.mjs +0 -45
  526. package/dist/api/route-manager.d.mts +0 -119
  527. package/dist/api/route-manager.d.ts +0 -119
  528. package/dist/api/runtime.d.mts +0 -35
  529. package/dist/api/runtime.d.ts +0 -35
  530. package/dist/api-client.d-BNLXNCXJ.d.mts +0 -622
  531. package/dist/api-client.d-ddQBNGtu.d.ts +0 -622
  532. package/dist/api.d.mts +0 -103
  533. package/dist/api.d.ts +0 -103
  534. package/dist/app-manifest.d-DrSAHskY.d.mts +0 -120
  535. package/dist/app-manifest.d-Tb3CJpL4.d.ts +0 -120
  536. package/dist/app-markdown.d.mts +0 -48
  537. package/dist/app-markdown.d.ts +0 -48
  538. package/dist/app.d-CmWlYpZJ.d.ts +0 -569
  539. package/dist/app.d-D6QQM_kk.d.mts +0 -569
  540. package/dist/base-path.d-BOUV5ozD.d.mts +0 -10
  541. package/dist/base-path.d-BOUV5ozD.d.ts +0 -10
  542. package/dist/cache.d.mts +0 -333
  543. package/dist/cache.d.ts +0 -333
  544. package/dist/chunk-22W4FNTG.mjs +0 -538
  545. package/dist/chunk-23LVFSID.mjs +0 -182
  546. package/dist/chunk-25T5VXOE.mjs +0 -1093
  547. package/dist/chunk-2DA7CLY7.mjs +0 -560
  548. package/dist/chunk-2DLGV2ZG.mjs +0 -71
  549. package/dist/chunk-2FRLSDBT.cjs +0 -9
  550. package/dist/chunk-2HW5LWAH.cjs +0 -19
  551. package/dist/chunk-2I6PUKWJ.mjs +0 -44
  552. package/dist/chunk-2IAPKPEB.cjs +0 -368
  553. package/dist/chunk-2KMIJDY6.cjs +0 -20
  554. package/dist/chunk-2KTYMMWT.mjs +0 -1980
  555. package/dist/chunk-2NGZFOKG.mjs +0 -190
  556. package/dist/chunk-2OF5RPVU.cjs +0 -44
  557. package/dist/chunk-2WZTGPK6.mjs +0 -65
  558. package/dist/chunk-2XGBJSDV.cjs +0 -408
  559. package/dist/chunk-37PYUEK5.mjs +0 -533
  560. package/dist/chunk-3BIASUGR.cjs +0 -59
  561. package/dist/chunk-3EEET2Q5.cjs +0 -1044
  562. package/dist/chunk-3EIPOTZV.cjs +0 -272
  563. package/dist/chunk-3HLQTOVU.cjs +0 -6
  564. package/dist/chunk-3OJNNCDL.cjs +0 -2250
  565. package/dist/chunk-3OWVWZ6R.cjs +0 -60
  566. package/dist/chunk-3PX4AIXO.mjs +0 -437
  567. package/dist/chunk-3TL3AH25.cjs +0 -1035
  568. package/dist/chunk-3YMLUNL2.cjs +0 -251
  569. package/dist/chunk-46P5KNTE.mjs +0 -8
  570. package/dist/chunk-47JV57DA.cjs +0 -69
  571. package/dist/chunk-4BS3HSY7.cjs +0 -541
  572. package/dist/chunk-4DCWVSL2.cjs +0 -15
  573. package/dist/chunk-4JTQPOKO.cjs +0 -137
  574. package/dist/chunk-4MU4QCX4.mjs +0 -158
  575. package/dist/chunk-4P23B7DU.cjs +0 -433
  576. package/dist/chunk-4ZJ5C7UJ.cjs +0 -75
  577. package/dist/chunk-52Y3C3HG.mjs +0 -421
  578. package/dist/chunk-53EHWHT2.cjs +0 -166
  579. package/dist/chunk-55U5QIXQ.mjs +0 -35
  580. package/dist/chunk-5A77OEIG.cjs +0 -778
  581. package/dist/chunk-5C7XMKQ4.cjs +0 -410
  582. package/dist/chunk-5DX3O6TT.cjs +0 -266
  583. package/dist/chunk-5J45H65F.mjs +0 -48
  584. package/dist/chunk-5JNUYGNF.cjs +0 -1980
  585. package/dist/chunk-5OJVKXFV.cjs +0 -2072
  586. package/dist/chunk-5PZJ63PK.mjs +0 -17
  587. package/dist/chunk-5Y2P454O.cjs +0 -421
  588. package/dist/chunk-5Y4GYKKH.mjs +0 -13
  589. package/dist/chunk-5YPBFMBN.cjs +0 -19
  590. package/dist/chunk-65Y5SIBH.cjs +0 -112
  591. package/dist/chunk-6BJJYOFL.cjs +0 -293
  592. package/dist/chunk-6BLAY2VQ.mjs +0 -45
  593. package/dist/chunk-6CTFVBAT.cjs +0 -29
  594. package/dist/chunk-6FXBJPF5.cjs +0 -35
  595. package/dist/chunk-6HRAK7I5.mjs +0 -215
  596. package/dist/chunk-6IOZPJ3I.cjs +0 -549
  597. package/dist/chunk-6JHZPB52.cjs +0 -538
  598. package/dist/chunk-6UUH4N4J.mjs +0 -251
  599. package/dist/chunk-6XQSPIN6.cjs +0 -155
  600. package/dist/chunk-6YFC3ZFX.mjs +0 -449
  601. package/dist/chunk-6ZFRWRHO.mjs +0 -54
  602. package/dist/chunk-724WT3NI.mjs +0 -83
  603. package/dist/chunk-72KABRWN.mjs +0 -2072
  604. package/dist/chunk-72KCTHLV.cjs +0 -723
  605. package/dist/chunk-75XSZIRE.mjs +0 -180
  606. package/dist/chunk-7EPYN7GW.cjs +0 -30
  607. package/dist/chunk-7H45IJWO.mjs +0 -2250
  608. package/dist/chunk-7H4SVNC4.cjs +0 -700
  609. package/dist/chunk-7JUIK547.cjs +0 -62
  610. package/dist/chunk-7KJJ4SBS.cjs +0 -13
  611. package/dist/chunk-7PTISZSQ.cjs +0 -176
  612. package/dist/chunk-7PZVXMWG.mjs +0 -113
  613. package/dist/chunk-7S7AAK2D.mjs +0 -82
  614. package/dist/chunk-A25FXJ7D.cjs +0 -38
  615. package/dist/chunk-A2MN5PQJ.mjs +0 -527
  616. package/dist/chunk-A4PWGL46.mjs +0 -141
  617. package/dist/chunk-A5BJKSZE.cjs +0 -657
  618. package/dist/chunk-AER5I65K.mjs +0 -368
  619. package/dist/chunk-ALEUMLJN.mjs +0 -190
  620. package/dist/chunk-ANHZ6SUL.mjs +0 -657
  621. package/dist/chunk-AOKXITZ6.cjs +0 -16
  622. package/dist/chunk-AQLHD6HZ.cjs +0 -196
  623. package/dist/chunk-ATYTLVSI.cjs +0 -45
  624. package/dist/chunk-AY2YD5ZX.mjs +0 -34
  625. package/dist/chunk-AYP2YFVN.mjs +0 -168
  626. package/dist/chunk-AZQXXXDX.mjs +0 -80
  627. package/dist/chunk-B4CWYGCG.mjs +0 -541
  628. package/dist/chunk-BBPDJGCU.cjs +0 -157
  629. package/dist/chunk-BHJAYPYU.mjs +0 -387
  630. package/dist/chunk-BMQAPZXD.mjs +0 -31
  631. package/dist/chunk-BNH53KOT.cjs +0 -69
  632. package/dist/chunk-BPAXGCKX.mjs +0 -166
  633. package/dist/chunk-BPNOYILC.cjs +0 -450
  634. package/dist/chunk-BQWBHWEW.mjs +0 -252
  635. package/dist/chunk-BRWIVOV4.cjs +0 -48
  636. package/dist/chunk-BRYPZIMB.mjs +0 -6
  637. package/dist/chunk-BTZ5O6VM.cjs +0 -14
  638. package/dist/chunk-BUC3FDYC.cjs +0 -158
  639. package/dist/chunk-C64XOPBZ.mjs +0 -380
  640. package/dist/chunk-C7GJDVN4.mjs +0 -124
  641. package/dist/chunk-C7LCTVJ2.cjs +0 -30
  642. package/dist/chunk-CA7DNRHO.cjs +0 -164
  643. package/dist/chunk-CBKRS3M4.cjs +0 -453
  644. package/dist/chunk-CBOEJ5Z4.cjs +0 -1093
  645. package/dist/chunk-CI4UNQHO.cjs +0 -35
  646. package/dist/chunk-CKPTIEDX.cjs +0 -12
  647. package/dist/chunk-CL2ONP73.cjs +0 -180
  648. package/dist/chunk-CNNBFGL5.cjs +0 -252
  649. package/dist/chunk-CO6UYM2D.mjs +0 -172
  650. package/dist/chunk-CQL5ZGFU.cjs +0 -50
  651. package/dist/chunk-CSLUBKGG.mjs +0 -44
  652. package/dist/chunk-CU5SYTJG.mjs +0 -23
  653. package/dist/chunk-CV6MFQ4Y.mjs +0 -259
  654. package/dist/chunk-D22BUQKW.cjs +0 -82
  655. package/dist/chunk-D2LCAV6L.mjs +0 -79
  656. package/dist/chunk-D2X5MUF5.cjs +0 -1457
  657. package/dist/chunk-D4MRNBVF.cjs +0 -1462
  658. package/dist/chunk-D4XGKF67.cjs +0 -127
  659. package/dist/chunk-D7LTCK3U.mjs +0 -224
  660. package/dist/chunk-D7Y63SOY.mjs +0 -15
  661. package/dist/chunk-DMAP4RND.cjs +0 -998
  662. package/dist/chunk-DPJ66FSI.cjs +0 -491
  663. package/dist/chunk-DQJ2CIH7.cjs +0 -87
  664. package/dist/chunk-DU4VHHPJ.mjs +0 -157
  665. package/dist/chunk-DUIP64BF.cjs +0 -16
  666. package/dist/chunk-DV52ZS53.cjs +0 -40
  667. package/dist/chunk-DXUXQP2T.cjs +0 -142
  668. package/dist/chunk-DZPR2W6U.cjs +0 -593
  669. package/dist/chunk-DZZHTMWM.cjs +0 -190
  670. package/dist/chunk-E552H232.cjs +0 -154
  671. package/dist/chunk-E72UD6ME.mjs +0 -277
  672. package/dist/chunk-E7QOEV5Z.cjs +0 -449
  673. package/dist/chunk-EDPENAVO.mjs +0 -266
  674. package/dist/chunk-EFLNOZGH.mjs +0 -30
  675. package/dist/chunk-EFZGB7JC.cjs +0 -114
  676. package/dist/chunk-EGHPFXPZ.cjs +0 -590
  677. package/dist/chunk-EGVC4LIG.mjs +0 -697
  678. package/dist/chunk-EJCVG25Z.mjs +0 -49
  679. package/dist/chunk-EMDGXYUD.mjs +0 -75
  680. package/dist/chunk-EOXPRC2C.cjs +0 -48
  681. package/dist/chunk-ERMUL73L.cjs +0 -39
  682. package/dist/chunk-ES2LD2YD.mjs +0 -203
  683. package/dist/chunk-EV4SBMPX.mjs +0 -208
  684. package/dist/chunk-EVIWKPJV.cjs +0 -560
  685. package/dist/chunk-EVMXPJCB.mjs +0 -133
  686. package/dist/chunk-EX6ZSN5P.cjs +0 -224
  687. package/dist/chunk-EXUONJYV.mjs +0 -588
  688. package/dist/chunk-EZ34EHQP.mjs +0 -462
  689. package/dist/chunk-EZTKXD6P.cjs +0 -182
  690. package/dist/chunk-F3N52U7S.mjs +0 -138
  691. package/dist/chunk-F6Y7ZAPQ.mjs +0 -713
  692. package/dist/chunk-FBEBSAVI.cjs +0 -225
  693. package/dist/chunk-FEFCISOX.cjs +0 -102
  694. package/dist/chunk-FHURJABM.mjs +0 -45
  695. package/dist/chunk-FK25QSVC.cjs +0 -386
  696. package/dist/chunk-FN5UEC7I.mjs +0 -55
  697. package/dist/chunk-FORSVMEJ.mjs +0 -433
  698. package/dist/chunk-FSQMN2MQ.mjs +0 -386
  699. package/dist/chunk-FSXSQQTV.mjs +0 -79
  700. package/dist/chunk-GBMWLDCC.cjs +0 -138
  701. package/dist/chunk-GFT5AHAT.mjs +0 -423
  702. package/dist/chunk-GHNW564E.mjs +0 -1044
  703. package/dist/chunk-GL3ZDHKI.mjs +0 -274
  704. package/dist/chunk-GLOICKDO.mjs +0 -142
  705. package/dist/chunk-GNZIAJGB.mjs +0 -358
  706. package/dist/chunk-GSVJ3IIF.cjs +0 -173
  707. package/dist/chunk-GUZC226X.mjs +0 -164
  708. package/dist/chunk-GWXZS7K5.mjs +0 -24
  709. package/dist/chunk-GYMGK467.mjs +0 -214
  710. package/dist/chunk-H227LYHT.mjs +0 -88
  711. package/dist/chunk-H3ASZDT7.mjs +0 -42
  712. package/dist/chunk-H4WUWLQR.mjs +0 -16
  713. package/dist/chunk-HA7YRO53.cjs +0 -214
  714. package/dist/chunk-HASX6DC7.cjs +0 -150
  715. package/dist/chunk-HEPJIKKQ.cjs +0 -190
  716. package/dist/chunk-HLYRXN2I.cjs +0 -242
  717. package/dist/chunk-HNAISJFD.cjs +0 -215
  718. package/dist/chunk-HPP2II4Z.mjs +0 -332
  719. package/dist/chunk-HPWB57PZ.mjs +0 -9
  720. package/dist/chunk-HXNLKCWH.cjs +0 -13
  721. package/dist/chunk-HZOMT5DY.mjs +0 -30
  722. package/dist/chunk-I2BYNELA.cjs +0 -380
  723. package/dist/chunk-IAPTECEB.mjs +0 -48
  724. package/dist/chunk-IFHPDLIS.mjs +0 -1964
  725. package/dist/chunk-IFTGERT3.mjs +0 -408
  726. package/dist/chunk-IFXSBJPN.cjs +0 -713
  727. package/dist/chunk-IGL6CO6M.mjs +0 -9
  728. package/dist/chunk-ILMTRGBG.mjs +0 -6488
  729. package/dist/chunk-ITV4QQL2.cjs +0 -93
  730. package/dist/chunk-IYEY3JWJ.mjs +0 -186
  731. package/dist/chunk-JBK7UJOI.cjs +0 -156
  732. package/dist/chunk-JGAE5XPL.cjs +0 -26
  733. package/dist/chunk-JI5D7MXY.mjs +0 -137
  734. package/dist/chunk-JIBEFLQ7.cjs +0 -44
  735. package/dist/chunk-JMYXO572.cjs +0 -531
  736. package/dist/chunk-JNYFXL7X.mjs +0 -62
  737. package/dist/chunk-JPIUGDK4.mjs +0 -651
  738. package/dist/chunk-JRHGJVJH.mjs +0 -44
  739. package/dist/chunk-JSDV2NUN.mjs +0 -206
  740. package/dist/chunk-JXIYH2NO.cjs +0 -24
  741. package/dist/chunk-JYNNIGQO.cjs +0 -87
  742. package/dist/chunk-JYT7AN37.cjs +0 -79
  743. package/dist/chunk-K3RU5MOR.mjs +0 -80
  744. package/dist/chunk-K5EW7GUU.mjs +0 -417
  745. package/dist/chunk-K76CBYQM.mjs +0 -157
  746. package/dist/chunk-KBGZ5FD6.cjs +0 -17
  747. package/dist/chunk-KORZ6PRE.cjs +0 -64
  748. package/dist/chunk-KPAJWD3N.mjs +0 -168
  749. package/dist/chunk-KPOMS5RO.cjs +0 -237
  750. package/dist/chunk-KQH2COEJ.mjs +0 -42
  751. package/dist/chunk-KVW2M6PI.mjs +0 -341
  752. package/dist/chunk-L5JDKFMQ.cjs +0 -44
  753. package/dist/chunk-LB3DPQP6.cjs +0 -588
  754. package/dist/chunk-LIFUPCXW.cjs +0 -423
  755. package/dist/chunk-LJVNMGE3.mjs +0 -1035
  756. package/dist/chunk-LLZSYFOM.mjs +0 -6
  757. package/dist/chunk-LM55GS4R.mjs +0 -38
  758. package/dist/chunk-LNVGXUL3.cjs +0 -172
  759. package/dist/chunk-LQNW3ABP.cjs +0 -527
  760. package/dist/chunk-LRB5OVRT.cjs +0 -124
  761. package/dist/chunk-LSHX2H5G.cjs +0 -57
  762. package/dist/chunk-LT4VAF5Z.cjs +0 -1359
  763. package/dist/chunk-M25IONJP.mjs +0 -16
  764. package/dist/chunk-M53MIIXY.mjs +0 -172
  765. package/dist/chunk-MEQN6DDA.cjs +0 -341
  766. package/dist/chunk-MF3IA2AW.cjs +0 -25
  767. package/dist/chunk-MFQGU5CC.mjs +0 -127
  768. package/dist/chunk-MGKW5XZE.cjs +0 -40
  769. package/dist/chunk-MHLNWRCJ.cjs +0 -36
  770. package/dist/chunk-MMK4MZUN.mjs +0 -36
  771. package/dist/chunk-MNIR7I7B.mjs +0 -217
  772. package/dist/chunk-MPU5DOXX.cjs +0 -21
  773. package/dist/chunk-MTWXOEI4.cjs +0 -12683
  774. package/dist/chunk-MU5V7XHL.mjs +0 -172
  775. package/dist/chunk-N33DLJBC.mjs +0 -272
  776. package/dist/chunk-N35YPV4N.mjs +0 -48
  777. package/dist/chunk-N4AQNEXR.cjs +0 -17
  778. package/dist/chunk-N7XWC6BN.mjs +0 -21
  779. package/dist/chunk-NBIVGHAT.mjs +0 -50
  780. package/dist/chunk-NCIAP562.mjs +0 -27
  781. package/dist/chunk-NHD7BAKD.mjs +0 -1457
  782. package/dist/chunk-NK2VWS7P.cjs +0 -954
  783. package/dist/chunk-NQJDO7K7.cjs +0 -1010
  784. package/dist/chunk-NR63PD3P.mjs +0 -64
  785. package/dist/chunk-NRNAHZ57.mjs +0 -39
  786. package/dist/chunk-NWUHS6GV.cjs +0 -79
  787. package/dist/chunk-O27PLNQZ.cjs +0 -878
  788. package/dist/chunk-O4F3JUST.mjs +0 -176
  789. package/dist/chunk-OAJOQU5J.mjs +0 -225
  790. package/dist/chunk-OCS3PSYR.cjs +0 -51
  791. package/dist/chunk-OHWM2VI4.mjs +0 -29
  792. package/dist/chunk-OJO2GOM3.mjs +0 -69
  793. package/dist/chunk-OLGQZRW6.mjs +0 -700
  794. package/dist/chunk-OM7WILES.mjs +0 -100
  795. package/dist/chunk-ONG4RDW3.mjs +0 -155
  796. package/dist/chunk-OOJBBHYW.cjs +0 -38
  797. package/dist/chunk-OOZEU5KK.cjs +0 -18
  798. package/dist/chunk-OWQV6MLM.cjs +0 -82
  799. package/dist/chunk-OY5XDG24.cjs +0 -113
  800. package/dist/chunk-OYZXVBZP.cjs +0 -133
  801. package/dist/chunk-OZC2JPW6.cjs +0 -10
  802. package/dist/chunk-OZK2DS44.mjs +0 -203
  803. package/dist/chunk-P2355C6E.cjs +0 -186
  804. package/dist/chunk-PAKCHVUS.mjs +0 -450
  805. package/dist/chunk-PCXIJKPM.mjs +0 -878
  806. package/dist/chunk-PENBZAHJ.cjs +0 -88
  807. package/dist/chunk-PIUTGRDI.cjs +0 -358
  808. package/dist/chunk-PMJSG4JS.cjs +0 -152
  809. package/dist/chunk-PO5MXV5X.cjs +0 -13
  810. package/dist/chunk-PRFNLQSP.cjs +0 -277
  811. package/dist/chunk-PSUYE5HR.mjs +0 -25
  812. package/dist/chunk-PTLXHRJZ.mjs +0 -57
  813. package/dist/chunk-PZXYAWYG.cjs +0 -274
  814. package/dist/chunk-Q5B4LNON.mjs +0 -19
  815. package/dist/chunk-QAS7KE7J.cjs +0 -169
  816. package/dist/chunk-QGJ4FI2G.mjs +0 -723
  817. package/dist/chunk-QGOZLGVP.mjs +0 -0
  818. package/dist/chunk-QISW423S.cjs +0 -335
  819. package/dist/chunk-QMDU6QHN.mjs +0 -778
  820. package/dist/chunk-QMNWKQL4.cjs +0 -206
  821. package/dist/chunk-QOSDWGKT.mjs +0 -109
  822. package/dist/chunk-QPJ4MZTO.mjs +0 -60
  823. package/dist/chunk-QPNVDSFZ.mjs +0 -18
  824. package/dist/chunk-QQ44FYRO.cjs +0 -27
  825. package/dist/chunk-QRX4JRBO.cjs +0 -651
  826. package/dist/chunk-QSTRBKHZ.mjs +0 -102
  827. package/dist/chunk-R53QDV6T.cjs +0 -100
  828. package/dist/chunk-R5U7OIPI.cjs +0 -34
  829. package/dist/chunk-R62SF5R4.mjs +0 -410
  830. package/dist/chunk-RAWWCDCT.cjs +0 -697
  831. package/dist/chunk-RD623KW4.cjs +0 -203
  832. package/dist/chunk-RFKTJTWZ.mjs +0 -26
  833. package/dist/chunk-RI3EVPKD.cjs +0 -57
  834. package/dist/chunk-RLEALQEN.mjs +0 -998
  835. package/dist/chunk-RPUJHJHE.mjs +0 -453
  836. package/dist/chunk-RSEAX5MW.mjs +0 -44
  837. package/dist/chunk-RVGLYMJM.cjs +0 -259
  838. package/dist/chunk-S32PDOLO.mjs +0 -13
  839. package/dist/chunk-S6O2L47H.mjs +0 -549
  840. package/dist/chunk-SBDWCDS6.cjs +0 -8
  841. package/dist/chunk-SF3JB56B.mjs +0 -82
  842. package/dist/chunk-SG57PX7K.cjs +0 -65
  843. package/dist/chunk-SGBNF56S.cjs +0 -44
  844. package/dist/chunk-SHD265HW.cjs +0 -19
  845. package/dist/chunk-SHIWRBFI.cjs +0 -17
  846. package/dist/chunk-SJRCWF4Z.mjs +0 -237
  847. package/dist/chunk-SM2SYWAR.cjs +0 -49
  848. package/dist/chunk-SMUW7UST.mjs +0 -196
  849. package/dist/chunk-SNP33A33.cjs +0 -9
  850. package/dist/chunk-STF6VDYQ.cjs +0 -23
  851. package/dist/chunk-SUCDVKUB.cjs +0 -42
  852. package/dist/chunk-SVCUSOEF.mjs +0 -590
  853. package/dist/chunk-SX7EECTS.mjs +0 -156
  854. package/dist/chunk-SXCL2MIN.cjs +0 -208
  855. package/dist/chunk-SYW346ZN.cjs +0 -71
  856. package/dist/chunk-T4EW7AAD.mjs +0 -150
  857. package/dist/chunk-T4TBK5NY.mjs +0 -593
  858. package/dist/chunk-T7I62A4C.mjs +0 -12680
  859. package/dist/chunk-TGSEVBPO.mjs +0 -93
  860. package/dist/chunk-TJVUTGED.mjs +0 -531
  861. package/dist/chunk-TUOO6IK3.mjs +0 -87
  862. package/dist/chunk-TUPKMMXT.mjs +0 -173
  863. package/dist/chunk-TVCFY3KK.cjs +0 -217
  864. package/dist/chunk-U4BJKNIR.cjs +0 -224
  865. package/dist/chunk-UAQD67HM.mjs +0 -154
  866. package/dist/chunk-UB7RVEMX.mjs +0 -73
  867. package/dist/chunk-UDJY2ZGY.cjs +0 -6488
  868. package/dist/chunk-UIJOLBUL.mjs +0 -19
  869. package/dist/chunk-UNJZGVPU.cjs +0 -6
  870. package/dist/chunk-UPYIFH2H.cjs +0 -168
  871. package/dist/chunk-UR25Z5Z6.mjs +0 -135
  872. package/dist/chunk-UUMKLGUU.mjs +0 -69
  873. package/dist/chunk-UYSTTPYJ.cjs +0 -9277
  874. package/dist/chunk-UYTAP4FQ.cjs +0 -60
  875. package/dist/chunk-UZCMMJJT.cjs +0 -80
  876. package/dist/chunk-UZZ6IEQP.mjs +0 -169
  877. package/dist/chunk-V3UOEWCB.cjs +0 -46
  878. package/dist/chunk-V56632LA.cjs +0 -141
  879. package/dist/chunk-VE3FWJBO.mjs +0 -46
  880. package/dist/chunk-VFXE6NWR.mjs +0 -87
  881. package/dist/chunk-VGG74PSU.cjs +0 -712
  882. package/dist/chunk-VHIXGZYH.mjs +0 -9
  883. package/dist/chunk-VISQDC6W.mjs +0 -10
  884. package/dist/chunk-VIXTAVEA.mjs +0 -59
  885. package/dist/chunk-VM57CK74.cjs +0 -42
  886. package/dist/chunk-VOQ7XZZT.cjs +0 -157
  887. package/dist/chunk-VPTWKOCY.mjs +0 -1010
  888. package/dist/chunk-VQJHT2ND.mjs +0 -40
  889. package/dist/chunk-VR6QLTTX.mjs +0 -59
  890. package/dist/chunk-VU3MYZPO.mjs +0 -432
  891. package/dist/chunk-VVTJTMGQ.cjs +0 -135
  892. package/dist/chunk-VXCFJWK5.cjs +0 -59
  893. package/dist/chunk-VZY7MAVS.cjs +0 -432
  894. package/dist/chunk-W2RZ73IU.cjs +0 -387
  895. package/dist/chunk-W2ZXMMHA.mjs +0 -1462
  896. package/dist/chunk-W6QLRQ3V.mjs +0 -152
  897. package/dist/chunk-WCLLPR6H.mjs +0 -35
  898. package/dist/chunk-WEGAVN37.cjs +0 -45
  899. package/dist/chunk-WFVSAT7Y.cjs +0 -83
  900. package/dist/chunk-WNDAISB7.mjs +0 -51
  901. package/dist/chunk-WNLPQW7W.mjs +0 -19
  902. package/dist/chunk-WT6RAN2I.cjs +0 -41
  903. package/dist/chunk-WXFY5JIY.mjs +0 -20
  904. package/dist/chunk-WYL4ODZ4.mjs +0 -38
  905. package/dist/chunk-X2CZTWQA.mjs +0 -712
  906. package/dist/chunk-X333W5KV.cjs +0 -31
  907. package/dist/chunk-X3EFRVXY.mjs +0 -12
  908. package/dist/chunk-X3XUZWRB.mjs +0 -141
  909. package/dist/chunk-XGJVRPYL.cjs +0 -141
  910. package/dist/chunk-XMHERKSE.mjs +0 -224
  911. package/dist/chunk-XPIPMWY3.cjs +0 -1
  912. package/dist/chunk-XQ4DPO4G.mjs +0 -13
  913. package/dist/chunk-XQSYOVCW.cjs +0 -417
  914. package/dist/chunk-XR2ZIBQK.mjs +0 -57
  915. package/dist/chunk-XTG73QZA.cjs +0 -533
  916. package/dist/chunk-XURDCXNH.cjs +0 -48
  917. package/dist/chunk-XVSBALOY.cjs +0 -55
  918. package/dist/chunk-Y3WG64CP.cjs +0 -9
  919. package/dist/chunk-Y6FXYEAI.mjs +0 -10
  920. package/dist/chunk-Y7NN63LS.mjs +0 -40
  921. package/dist/chunk-YB44NKC2.cjs +0 -203
  922. package/dist/chunk-YDXLC4DW.cjs +0 -54
  923. package/dist/chunk-YI6FKTTN.cjs +0 -437
  924. package/dist/chunk-YIHRZBD7.cjs +0 -172
  925. package/dist/chunk-YKHRCY4T.cjs +0 -73
  926. package/dist/chunk-YP7YO3S3.mjs +0 -17
  927. package/dist/chunk-YSXTNSXS.mjs +0 -1359
  928. package/dist/chunk-YT3SLLZK.mjs +0 -242
  929. package/dist/chunk-YTVSWXEZ.cjs +0 -168
  930. package/dist/chunk-YWPNIYUP.mjs +0 -41
  931. package/dist/chunk-YX6AFPXC.mjs +0 -8
  932. package/dist/chunk-Z5A6CNV2.mjs +0 -60
  933. package/dist/chunk-Z64V4WZI.mjs +0 -17
  934. package/dist/chunk-ZDAEHG2O.cjs +0 -80
  935. package/dist/chunk-ZFUKPWFC.mjs +0 -9274
  936. package/dist/chunk-ZMHAFH4R.mjs +0 -491
  937. package/dist/chunk-ZNH6NR3H.cjs +0 -462
  938. package/dist/chunk-ZNXTU4YH.mjs +0 -114
  939. package/dist/chunk-ZOYKJBP5.cjs +0 -172
  940. package/dist/chunk-ZP32GNJQ.cjs +0 -1964
  941. package/dist/chunk-ZQ5BDNKW.mjs +0 -954
  942. package/dist/chunk-ZXK2EYQW.cjs +0 -8
  943. package/dist/chunk-ZZ2QKCKW.mjs +0 -293
  944. package/dist/chunk-recovery.d-lnQFzcQP.d.mts +0 -26
  945. package/dist/chunk-recovery.d-lnQFzcQP.d.ts +0 -26
  946. package/dist/client/lifecycle.d.mts +0 -1
  947. package/dist/client/lifecycle.d.ts +0 -1
  948. package/dist/client-cache.d-Deoqq-nM.d.ts +0 -76
  949. package/dist/client-cache.d-di_Nasxa.d.mts +0 -76
  950. package/dist/client-plugins.d-CgQQ-EAv.d.mts +0 -4009
  951. package/dist/client-plugins.d-vXrbcfJ1.d.ts +0 -4009
  952. package/dist/client-plugins.d.mts +0 -33
  953. package/dist/client-plugins.d.ts +0 -33
  954. package/dist/client.d.mts +0 -452
  955. package/dist/client.d.ts +0 -452
  956. package/dist/client.react-server.mjs +0 -2
  957. package/dist/config.d-DqZkLwef.d.mts +0 -337
  958. package/dist/config.d-DqZkLwef.d.ts +0 -337
  959. package/dist/config.d.mts +0 -40
  960. package/dist/config.d.ts +0 -40
  961. package/dist/cron.d.mts +0 -88
  962. package/dist/cron.d.ts +0 -88
  963. package/dist/deferred.d.mts +0 -44
  964. package/dist/deferred.d.ts +0 -44
  965. package/dist/deployment.d.mts +0 -36
  966. package/dist/deployment.d.ts +0 -36
  967. package/dist/desktop.cjs +0 -13
  968. package/dist/desktop.d.mts +0 -120
  969. package/dist/desktop.d.ts +0 -120
  970. package/dist/desktop.mjs +0 -13
  971. package/dist/dev-guard-2UW2KERP.cjs +0 -59
  972. package/dist/dev-guard-ONNMVQUN.mjs +0 -59
  973. package/dist/devtools-KQZ6SRCJ.mjs +0 -463
  974. package/dist/devtools-UF6JYHUN.cjs +0 -463
  975. package/dist/devtools-client-SU4XH46J.mjs +0 -250
  976. package/dist/devtools-client-X5OQCXDF.cjs +0 -250
  977. package/dist/devtools-ui-CYBVFLPH.mjs +0 -1265
  978. package/dist/devtools-ui-SYRUXUA7.cjs +0 -1265
  979. package/dist/docs.d.mts +0 -169
  980. package/dist/docs.d.ts +0 -169
  981. package/dist/endpoint.d-BgHn0lhl.d.ts +0 -370
  982. package/dist/endpoint.d-BkMSCRf6.d.mts +0 -370
  983. package/dist/env-types.d.mts +0 -12
  984. package/dist/env-types.d.ts +0 -12
  985. package/dist/env.d.mts +0 -65
  986. package/dist/env.d.ts +0 -65
  987. package/dist/environment/vite.d.mts +0 -31
  988. package/dist/environment/vite.d.ts +0 -31
  989. package/dist/environment.d.mts +0 -18
  990. package/dist/environment.d.ts +0 -18
  991. package/dist/font.d.mts +0 -95
  992. package/dist/font.d.ts +0 -95
  993. package/dist/generate-route-types.d-BL2pq6xC.d.ts +0 -33
  994. package/dist/generate-route-types.d-BoVDU8qX.d.mts +0 -33
  995. package/dist/headers.d.mts +0 -32
  996. package/dist/headers.d.ts +0 -32
  997. package/dist/i18n/client.d.mts +0 -32
  998. package/dist/i18n/client.d.ts +0 -32
  999. package/dist/i18n/index.d.mts +0 -3
  1000. package/dist/i18n/index.d.ts +0 -3
  1001. package/dist/i18n/server.d.mts +0 -30
  1002. package/dist/i18n/server.d.ts +0 -30
  1003. package/dist/image/server.d.mts +0 -59
  1004. package/dist/image/server.d.ts +0 -59
  1005. package/dist/image/sharp.d.mts +0 -20
  1006. package/dist/image/sharp.d.ts +0 -20
  1007. package/dist/image-config.d-CeDgNyX4.d.mts +0 -53
  1008. package/dist/image-config.d-CeDgNyX4.d.ts +0 -53
  1009. package/dist/image.d.mts +0 -39
  1010. package/dist/image.d.ts +0 -39
  1011. package/dist/index.d-BNNDpql4.d.ts +0 -20
  1012. package/dist/index.d-BqcfqJvt.d.mts +0 -20
  1013. package/dist/index.d-DlCELfhf.d.ts +0 -54
  1014. package/dist/index.d-Dmfb7Kb_.d.mts +0 -54
  1015. package/dist/index.d.mts +0 -1053
  1016. package/dist/index.d.ts +0 -1053
  1017. package/dist/instrumentation-runtime.d-CX9Zh-16.d.mts +0 -22
  1018. package/dist/instrumentation-runtime.d-CX9Zh-16.d.ts +0 -22
  1019. package/dist/instrumentation.d.mts +0 -7
  1020. package/dist/instrumentation.d.ts +0 -7
  1021. package/dist/integration-orm-52GPGTHO.cjs +0 -14
  1022. package/dist/integration-orm-CO23MSFE.mjs +0 -14
  1023. package/dist/integrations.d.mts +0 -33
  1024. package/dist/integrations.d.ts +0 -33
  1025. package/dist/internal/app-markdown-runtime.d.mts +0 -86
  1026. package/dist/internal/app-markdown-runtime.d.ts +0 -86
  1027. package/dist/internal/build-runtime.d.mts +0 -46
  1028. package/dist/internal/build-runtime.d.ts +0 -46
  1029. package/dist/internal/client-error-overlay.d.mts +0 -25
  1030. package/dist/internal/client-error-overlay.d.ts +0 -25
  1031. package/dist/internal/client-runtime.d.mts +0 -93
  1032. package/dist/internal/client-runtime.d.ts +0 -93
  1033. package/dist/internal/compression-runtime.d.mts +0 -48
  1034. package/dist/internal/compression-runtime.d.ts +0 -48
  1035. package/dist/internal/config-runtime.d.mts +0 -336
  1036. package/dist/internal/config-runtime.d.ts +0 -336
  1037. package/dist/internal/desktop-guard.cjs +0 -17
  1038. package/dist/internal/desktop-guard.d.mts +0 -52
  1039. package/dist/internal/desktop-guard.d.ts +0 -52
  1040. package/dist/internal/desktop-guard.mjs +0 -17
  1041. package/dist/internal/docs-precompiled-runtime.d.mts +0 -43
  1042. package/dist/internal/docs-precompiled-runtime.d.ts +0 -43
  1043. package/dist/internal/form-actions-client.cjs +0 -14
  1044. package/dist/internal/form-actions-client.d.mts +0 -5
  1045. package/dist/internal/form-actions-client.d.ts +0 -5
  1046. package/dist/internal/form-actions-client.mjs +0 -14
  1047. package/dist/internal/form-actions.cjs +0 -19
  1048. package/dist/internal/form-actions.d.mts +0 -14
  1049. package/dist/internal/form-actions.d.ts +0 -14
  1050. package/dist/internal/form-actions.mjs +0 -19
  1051. package/dist/internal/infra-analytics-runtime.d.mts +0 -16
  1052. package/dist/internal/infra-analytics-runtime.d.ts +0 -16
  1053. package/dist/internal/island-codec.cjs +0 -22
  1054. package/dist/internal/island-codec.d.mts +0 -29
  1055. package/dist/internal/island-codec.d.ts +0 -29
  1056. package/dist/internal/island-codec.mjs +0 -22
  1057. package/dist/internal/island-value-store.cjs +0 -10
  1058. package/dist/internal/island-value-store.d.mts +0 -6
  1059. package/dist/internal/island-value-store.d.ts +0 -6
  1060. package/dist/internal/island-value-store.mjs +0 -10
  1061. package/dist/internal/islands-boot.cjs +0 -211
  1062. package/dist/internal/islands-boot.d.mts +0 -8
  1063. package/dist/internal/islands-boot.d.ts +0 -8
  1064. package/dist/internal/islands-boot.mjs +0 -211
  1065. package/dist/internal/islands-runtime.cjs +0 -161
  1066. package/dist/internal/islands-runtime.d.mts +0 -66
  1067. package/dist/internal/islands-runtime.d.ts +0 -66
  1068. package/dist/internal/islands-runtime.mjs +0 -161
  1069. package/dist/internal/islands-server.cjs +0 -16
  1070. package/dist/internal/islands-server.d.mts +0 -3
  1071. package/dist/internal/islands-server.d.ts +0 -3
  1072. package/dist/internal/islands-server.mjs +0 -16
  1073. package/dist/internal/islx-client.cjs +0 -5
  1074. package/dist/internal/islx-client.d.mts +0 -6
  1075. package/dist/internal/islx-client.d.ts +0 -6
  1076. package/dist/internal/islx-client.mjs +0 -3
  1077. package/dist/internal/islx-react.cjs +0 -4
  1078. package/dist/internal/islx-react.d.mts +0 -1
  1079. package/dist/internal/islx-react.d.ts +0 -1
  1080. package/dist/internal/islx-react.mjs +0 -2
  1081. package/dist/internal/islx-server.cjs +0 -5
  1082. package/dist/internal/islx-server.d.mts +0 -2
  1083. package/dist/internal/islx-server.d.ts +0 -2
  1084. package/dist/internal/islx-server.mjs +0 -3
  1085. package/dist/internal/isolated-boundary.d.mts +0 -66
  1086. package/dist/internal/isolated-boundary.d.ts +0 -66
  1087. package/dist/internal/metadata-image-runtime.d.mts +0 -30
  1088. package/dist/internal/metadata-image-runtime.d.ts +0 -30
  1089. package/dist/internal/product-telemetry-runtime.d.mts +0 -45
  1090. package/dist/internal/product-telemetry-runtime.d.ts +0 -45
  1091. package/dist/internal/production-node-env.d.mts +0 -21
  1092. package/dist/internal/production-node-env.d.ts +0 -21
  1093. package/dist/internal/production-runtime.d.mts +0 -539
  1094. package/dist/internal/production-runtime.d.ts +0 -539
  1095. package/dist/internal/request-cookies.d.mts +0 -16
  1096. package/dist/internal/request-cookies.d.ts +0 -16
  1097. package/dist/internal/server-fn-transform.cjs +0 -13
  1098. package/dist/internal/server-fn-transform.d.mts +0 -24
  1099. package/dist/internal/server-fn-transform.d.ts +0 -24
  1100. package/dist/internal/server-fn-transform.mjs +0 -13
  1101. package/dist/internal/server-tree.d.mts +0 -50
  1102. package/dist/internal/server-tree.d.ts +0 -50
  1103. package/dist/island-value-protocol.d-BRayRghM.d.mts +0 -12
  1104. package/dist/island-value-protocol.d-BRayRghM.d.ts +0 -12
  1105. package/dist/island.d-CfGru1MO.d.mts +0 -9
  1106. package/dist/island.d-CfGru1MO.d.ts +0 -9
  1107. package/dist/json-ld.d.mts +0 -94
  1108. package/dist/json-ld.d.ts +0 -94
  1109. package/dist/layers-DMRXRL7F.cjs +0 -18
  1110. package/dist/layers-T55SA47E.mjs +0 -18
  1111. package/dist/layers.d-CcS42OGR.d.mts +0 -55
  1112. package/dist/layers.d-CcS42OGR.d.ts +0 -55
  1113. package/dist/lifecycle.d-C2aLBOwu.d.mts +0 -176
  1114. package/dist/lifecycle.d-C2aLBOwu.d.ts +0 -176
  1115. package/dist/manager-2LUKNX2N.cjs +0 -14
  1116. package/dist/manager-H5ZM3HAM.mjs +0 -14
  1117. package/dist/markdown.d.mts +0 -33
  1118. package/dist/markdown.d.ts +0 -33
  1119. package/dist/middleware.d.mts +0 -225
  1120. package/dist/middleware.d.ts +0 -225
  1121. package/dist/mobile.cjs +0 -9
  1122. package/dist/mobile.d.mts +0 -132
  1123. package/dist/mobile.d.ts +0 -132
  1124. package/dist/mobile.mjs +0 -9
  1125. package/dist/modules-VHD7BELU.mjs +0 -13
  1126. package/dist/modules-WT5D3AWY.cjs +0 -13
  1127. package/dist/native-specs-BD7HOTMJ.mjs +0 -15
  1128. package/dist/native-specs-IQQRJOOW.cjs +0 -15
  1129. package/dist/native-tree-6G5O53O3.cjs +0 -27
  1130. package/dist/native-tree-VWNW2MQ2.mjs +0 -27
  1131. package/dist/native.cjs +0 -87
  1132. package/dist/native.d.mts +0 -72
  1133. package/dist/native.d.ts +0 -72
  1134. package/dist/native.mjs +0 -87
  1135. package/dist/navigation-delegate.d-CnOTWOyi.d.mts +0 -29
  1136. package/dist/navigation-delegate.d-JXx40JzR.d.ts +0 -29
  1137. package/dist/navigation.d.mts +0 -51
  1138. package/dist/navigation.d.ts +0 -51
  1139. package/dist/nitro-FLN6DRGJ.mjs +0 -650
  1140. package/dist/nitro-HXAZZQKY.cjs +0 -650
  1141. package/dist/node-module-bundle-7JHPPF6B.mjs +0 -11
  1142. package/dist/node-module-bundle-YJGYBOGK.cjs +0 -11
  1143. package/dist/observability.d-B2363jB6.d.mts +0 -448
  1144. package/dist/observability.d-B2363jB6.d.ts +0 -448
  1145. package/dist/observability.d.mts +0 -2
  1146. package/dist/observability.d.ts +0 -2
  1147. package/dist/og.d.mts +0 -1
  1148. package/dist/og.d.ts +0 -1
  1149. package/dist/params.d-BALtrRim.d.ts +0 -15
  1150. package/dist/params.d-ry-lxqmy.d.mts +0 -15
  1151. package/dist/platform.cjs +0 -29
  1152. package/dist/platform.d.mts +0 -24
  1153. package/dist/platform.d.ts +0 -24
  1154. package/dist/platform.mjs +0 -29
  1155. package/dist/plugin-53SY5YBS.mjs +0 -32
  1156. package/dist/plugin-HZIBL3DW.cjs +0 -32
  1157. package/dist/plugin.d.mts +0 -58
  1158. package/dist/plugin.d.ts +0 -58
  1159. package/dist/port-C6GBH4C6.cjs +0 -419
  1160. package/dist/port-WOOQ3V56.mjs +0 -419
  1161. package/dist/production-runtime.d-CP5s6RuY.d.mts +0 -123
  1162. package/dist/production-runtime.d-N-cE3pmy.d.ts +0 -123
  1163. package/dist/production-vite.d-BQFAlG7n.d.mts +0 -13
  1164. package/dist/production-vite.d-BQFAlG7n.d.ts +0 -13
  1165. package/dist/programmatic-routes-client.d-CLG2N1yH.d.ts +0 -192
  1166. package/dist/programmatic-routes-client.d-CPbNqtIi.d.mts +0 -192
  1167. package/dist/query/client.d.mts +0 -61
  1168. package/dist/query/client.d.ts +0 -61
  1169. package/dist/query/index.d.mts +0 -90
  1170. package/dist/query/index.d.ts +0 -90
  1171. package/dist/query/parsers.d.mts +0 -29
  1172. package/dist/query/parsers.d.ts +0 -29
  1173. package/dist/query/server.d.mts +0 -55
  1174. package/dist/query/server.d.ts +0 -55
  1175. package/dist/render-plan.d-B9lAP3uX.d.ts +0 -25
  1176. package/dist/render-plan.d-DZ-qjjdG.d.mts +0 -25
  1177. package/dist/renderer/react/client.d.mts +0 -3
  1178. package/dist/renderer/react/client.d.ts +0 -3
  1179. package/dist/renderer/react/server.d.mts +0 -48
  1180. package/dist/renderer/react/server.d.ts +0 -48
  1181. package/dist/renderer/react/vite.d.mts +0 -4
  1182. package/dist/renderer/react/vite.d.ts +0 -4
  1183. package/dist/renderer-client.d.mts +0 -126
  1184. package/dist/renderer-client.d.ts +0 -126
  1185. package/dist/renderer.d.mts +0 -260
  1186. package/dist/renderer.d.ts +0 -260
  1187. package/dist/request.d-BiicaNxb.d.ts +0 -24
  1188. package/dist/request.d-DV0oeUit.d.mts +0 -24
  1189. package/dist/request.d.mts +0 -34
  1190. package/dist/request.d.ts +0 -34
  1191. package/dist/resolver.d-BHyZgpa7.d.ts +0 -14
  1192. package/dist/resolver.d-JnZKKsc5.d.mts +0 -14
  1193. package/dist/response.d-BolW0Vx_.d.mts +0 -10
  1194. package/dist/response.d-BolW0Vx_.d.ts +0 -10
  1195. package/dist/route-pattern.d-CVsVbq5n.d.mts +0 -13
  1196. package/dist/route-pattern.d-CVsVbq5n.d.ts +0 -13
  1197. package/dist/route-rendering.d-BrIKA51A.d.mts +0 -44
  1198. package/dist/route-rendering.d-Iss0C7GR.d.ts +0 -44
  1199. package/dist/route.d-BaVH3V0w.d.mts +0 -224
  1200. package/dist/route.d-DBTEqifW.d.ts +0 -224
  1201. package/dist/router.d-DjGn_al7.d.ts +0 -50
  1202. package/dist/router.d-mNTbOGV_.d.mts +0 -50
  1203. package/dist/router.d.mts +0 -36
  1204. package/dist/router.d.ts +0 -36
  1205. package/dist/routes.d-BKSjHuH9.d.ts +0 -231
  1206. package/dist/routes.d-qd8Qf4LG.d.mts +0 -231
  1207. package/dist/routes.d.mts +0 -273
  1208. package/dist/routes.d.ts +0 -273
  1209. package/dist/rsc-pipeline-SVLBTY7H.cjs +0 -83
  1210. package/dist/rsc-pipeline-WBLBDQXA.mjs +0 -83
  1211. package/dist/runtime-DGUOWSMF.cjs +0 -1313
  1212. package/dist/runtime-HFZTVNFF.mjs +0 -1313
  1213. package/dist/runtime.d-3iJAKptR.d.mts +0 -28
  1214. package/dist/runtime.d-BNVbojF1.d.mts +0 -69
  1215. package/dist/runtime.d-Bm_4hP5T.d.ts +0 -69
  1216. package/dist/runtime.d-BtL3PCL3.d.ts +0 -28
  1217. package/dist/schema-dev-notice-JMXEQWIQ.mjs +0 -54
  1218. package/dist/schema-dev-notice-PLBFDTOF.cjs +0 -54
  1219. package/dist/schema.d.mts +0 -115
  1220. package/dist/schema.d.ts +0 -115
  1221. package/dist/search-client-OXH6GBNO.mjs +0 -15
  1222. package/dist/search-client-ZZLKVO5R.cjs +0 -15
  1223. package/dist/server-action-security.d.mts +0 -45
  1224. package/dist/server-action-security.d.ts +0 -45
  1225. package/dist/server-client-bridge.d-DKWDl5NB.d.mts +0 -7
  1226. package/dist/server-client-bridge.d-DKWDl5NB.d.ts +0 -7
  1227. package/dist/server-fn-client.d.mts +0 -60
  1228. package/dist/server-fn-client.d.ts +0 -60
  1229. package/dist/server-fn-error.d-DrcH9cc1.d.mts +0 -26
  1230. package/dist/server-fn-error.d-DrcH9cc1.d.ts +0 -26
  1231. package/dist/server-fn.d.mts +0 -192
  1232. package/dist/server-fn.d.ts +0 -192
  1233. package/dist/server-plugins.d.mts +0 -65
  1234. package/dist/server-plugins.d.ts +0 -65
  1235. package/dist/server-query-client.d.mts +0 -26
  1236. package/dist/server-query-client.d.ts +0 -26
  1237. package/dist/server-query-runtime.d-DXRNhX_3.d.ts +0 -36
  1238. package/dist/server-query-runtime.d-aP52iuL5.d.mts +0 -36
  1239. package/dist/server-query.d.mts +0 -46
  1240. package/dist/server-query.d.ts +0 -46
  1241. package/dist/server.d.mts +0 -78
  1242. package/dist/server.d.ts +0 -78
  1243. package/dist/session-2Q72D4QV.cjs +0 -23
  1244. package/dist/session-QZXZOPR2.mjs +0 -23
  1245. package/dist/shell-render.d-CG6bPiiA.d.mts +0 -41
  1246. package/dist/shell-render.d-CG6bPiiA.d.ts +0 -41
  1247. package/dist/spa-router.d-DAtnNoBe.d.ts +0 -248
  1248. package/dist/spa-router.d-DHDoXxDE.d.mts +0 -248
  1249. package/dist/storage.d.mts +0 -60
  1250. package/dist/storage.d.ts +0 -60
  1251. package/dist/testing.d.mts +0 -110
  1252. package/dist/testing.d.ts +0 -110
  1253. package/dist/theme/client.d.mts +0 -10
  1254. package/dist/theme/client.d.ts +0 -10
  1255. package/dist/theme/index.d.mts +0 -6
  1256. package/dist/theme/index.d.ts +0 -6
  1257. package/dist/theme/runtime.d.mts +0 -13
  1258. package/dist/theme/runtime.d.ts +0 -13
  1259. package/dist/theme/server.d.mts +0 -8
  1260. package/dist/theme/server.d.ts +0 -8
  1261. package/dist/types.d-BnIqOn9w.d.mts +0 -73
  1262. package/dist/types.d-BnIqOn9w.d.ts +0 -73
  1263. package/dist/types.d-C41ePjvP.d.mts +0 -85
  1264. package/dist/types.d-C41ePjvP.d.ts +0 -85
  1265. package/dist/types.d-DQnyD3VD.d.mts +0 -30
  1266. package/dist/types.d-DQnyD3VD.d.ts +0 -30
  1267. package/dist/utils.d-DwZ-KLSB.d.ts +0 -54
  1268. package/dist/utils.d-uKZcKJk4.d.mts +0 -54
  1269. package/dist/version.d.mts +0 -3
  1270. package/dist/version.d.ts +0 -3
  1271. package/dist/vite.d.mts +0 -168
  1272. package/dist/vite.d.ts +0 -168
  1273. package/dist/workflows.d-CRMzQZ3k.d.mts +0 -188
  1274. package/dist/workflows.d-CRMzQZ3k.d.ts +0 -188
  1275. package/dist/workflows.d.mts +0 -1
  1276. package/dist/workflows.d.ts +0 -1
@@ -1,1313 +0,0 @@
1
- import {
2
- readFarmMobileWebModules,
3
- resolveFarmMobileModules,
4
- scanFarmMobileAppModules
5
- } from "./chunk-SJRCWF4Z.mjs";
6
- import "./chunk-6UUH4N4J.mjs";
7
- import {
8
- FARM_SHELL_HEADER,
9
- FARM_SHELL_PARAM_SEGMENT,
10
- FARM_SHELL_RENDER_HEADER,
11
- FARM_SHELL_ROUTE_HEADER,
12
- createFarmMobileShellRenderPath
13
- } from "./chunk-JI5D7MXY.mjs";
14
- import {
15
- readFarmMobileClientManifest
16
- } from "./chunk-ZNXTU4YH.mjs";
17
- import "./chunk-EGVC4LIG.mjs";
18
- import {
19
- loadConfig,
20
- resolveConfig
21
- } from "./chunk-VPTWKOCY.mjs";
22
- import "./chunk-VISQDC6W.mjs";
23
- import {
24
- createPlatformBlockChecker,
25
- isPlainObject,
26
- readAppPackageJson,
27
- resolveAppPackageName,
28
- resolvePlatformBlock,
29
- resolvePlatformProfile
30
- } from "./chunk-UB7RVEMX.mjs";
31
- import {
32
- scanRoutePatterns
33
- } from "./chunk-D7LTCK3U.mjs";
34
- import "./chunk-Q5B4LNON.mjs";
35
- import {
36
- resolveFarmServerComponentsMode
37
- } from "./chunk-PAKCHVUS.mjs";
38
- import "./chunk-X3XUZWRB.mjs";
39
- import "./chunk-XR2ZIBQK.mjs";
40
- import "./chunk-CU5SYTJG.mjs";
41
- import {
42
- getFarmRendererComponentExtensions
43
- } from "./chunk-ES2LD2YD.mjs";
44
- import "./chunk-T4TBK5NY.mjs";
45
- import "./chunk-22W4FNTG.mjs";
46
- import "./chunk-2WZTGPK6.mjs";
47
- import "./chunk-KVW2M6PI.mjs";
48
- import {
49
- getFarmSourceRoots
50
- } from "./chunk-52Y3C3HG.mjs";
51
- import "./chunk-2NGZFOKG.mjs";
52
- import "./chunk-N33DLJBC.mjs";
53
- import "./chunk-UIJOLBUL.mjs";
54
- import "./chunk-YSXTNSXS.mjs";
55
- import "./chunk-VFXE6NWR.mjs";
56
- import "./chunk-JPIUGDK4.mjs";
57
- import "./chunk-3PX4AIXO.mjs";
58
- import "./chunk-WXFY5JIY.mjs";
59
- import "./chunk-FSQMN2MQ.mjs";
60
- import "./chunk-YP7YO3S3.mjs";
61
- import "./chunk-YWPNIYUP.mjs";
62
- import "./chunk-IFHPDLIS.mjs";
63
- import "./chunk-H4WUWLQR.mjs";
64
- import "./chunk-M53MIIXY.mjs";
65
- import "./chunk-46P5KNTE.mjs";
66
- import "./chunk-K3RU5MOR.mjs";
67
- import "./chunk-KPAJWD3N.mjs";
68
- import "./chunk-EDPENAVO.mjs";
69
- import "./chunk-FSXSQQTV.mjs";
70
- import "./chunk-C7GJDVN4.mjs";
71
- import "./chunk-6YFC3ZFX.mjs";
72
- import "./chunk-EVMXPJCB.mjs";
73
- import "./chunk-TGSEVBPO.mjs";
74
- import "./chunk-QSTRBKHZ.mjs";
75
- import "./chunk-MU5V7XHL.mjs";
76
- import "./chunk-JSDV2NUN.mjs";
77
- import "./chunk-H3ASZDT7.mjs";
78
- import "./chunk-2DA7CLY7.mjs";
79
- import "./chunk-CO6UYM2D.mjs";
80
- import "./chunk-2I6PUKWJ.mjs";
81
- import "./chunk-GFT5AHAT.mjs";
82
- import "./chunk-D2LCAV6L.mjs";
83
- import "./chunk-GYMGK467.mjs";
84
- import "./chunk-GUZC226X.mjs";
85
- import "./chunk-W6QLRQ3V.mjs";
86
- import "./chunk-AY2YD5ZX.mjs";
87
- import "./chunk-WCLLPR6H.mjs";
88
- import "./chunk-UAQD67HM.mjs";
89
- import "./chunk-AZQXXXDX.mjs";
90
- import "./chunk-ONG4RDW3.mjs";
91
- import "./chunk-LM55GS4R.mjs";
92
- import "./chunk-JNYFXL7X.mjs";
93
- import "./chunk-6HRAK7I5.mjs";
94
- import "./chunk-OHWM2VI4.mjs";
95
- import "./chunk-VIXTAVEA.mjs";
96
- import "./chunk-7S7AAK2D.mjs";
97
- import {
98
- normalizeFarmBasePath
99
- } from "./chunk-SF3JB56B.mjs";
100
- import {
101
- compareRoutePatternSpecificity,
102
- getRoutePatternShape
103
- } from "./chunk-AYP2YFVN.mjs";
104
- import "./chunk-Y6FXYEAI.mjs";
105
-
106
- // src/mobile/runtime.ts
107
- import { mkdir, readFile, rm, writeFile } from "fs/promises";
108
- import * as path2 from "path";
109
-
110
- // src/mobile/config.ts
111
- var MOBILE_KEYS = /* @__PURE__ */ new Set([
112
- "name",
113
- "id",
114
- "server",
115
- "tabs",
116
- "routes",
117
- "native",
118
- "shells",
119
- "modules"
120
- ]);
121
- var ROUTE_KEYS = /* @__PURE__ */ new Set(["presentation"]);
122
- var TAB_KEYS = /* @__PURE__ */ new Set(["path", "title", "icon"]);
123
- var NATIVE_KEYS = /* @__PURE__ */ new Set(["engine", "auto", "routes", "islands", "prefetch", "budgets"]);
124
- var NATIVE_ROUTE_KEYS = /* @__PURE__ */ new Set(["screen", "android", "ios", "presentation"]);
125
- var BUDGET_KEYS = /* @__PURE__ */ new Set(["appSizeMb", "screenOpenMs", "droppedFrames"]);
126
- var PAGE_KEYS = /* @__PURE__ */ new Set(["presentation", "prefetch", "native"]);
127
- var PRESENTATIONS = /* @__PURE__ */ new Set(["push", "modal", "replace"]);
128
- var SCREENS = /* @__PURE__ */ new Set(["web", "native", "platform"]);
129
- var ENGINES = /* @__PURE__ */ new Set(["react-native", "platform"]);
130
- var AUTO_MODES = /* @__PURE__ */ new Set(["off", "report", "on"]);
131
- var MOBILE_OS = /* @__PURE__ */ new Set(["android", "ios"]);
132
- var MAX_TABS = 5;
133
- var APP_ID_SEGMENT = /^[A-Za-z][A-Za-z0-9]*$/;
134
- var JAVA_KEYWORDS = new Set(
135
- "abstract assert boolean break byte case catch char class const continue default do double else enum extends false final finally float for goto if implements import instanceof int interface long native new null package private protected public return short static strictfp super switch synchronized this throw throws transient true try void volatile while".split(" ")
136
- );
137
- var ICON_NAME = /^[A-Za-z0-9][A-Za-z0-9._-]*$/;
138
- var ISLAND_NAME = /^[A-Z][A-Za-z0-9]*$/;
139
- function mobileChecker(context) {
140
- return createPlatformBlockChecker(context ? `mobile (os: ${context.os})` : "mobile");
141
- }
142
- function isLoopbackOrLanHost(hostname) {
143
- const host = hostname.replace(/^\[|\]$/g, "").toLowerCase();
144
- if (host === "localhost" || host.endsWith(".localhost") || host.endsWith(".local")) return true;
145
- if (host === "::1" || /^fe[89ab][0-9a-f]:/.test(host) || /^f[cd][0-9a-f]{2}:/.test(host)) {
146
- return true;
147
- }
148
- const ipv4 = host.match(/^(\d+)\.(\d+)\.(\d+)\.(\d+)$/);
149
- if (!ipv4) return false;
150
- const [a, b] = [Number(ipv4[1]), Number(ipv4[2])];
151
- return a === 127 || a === 10 || a === 172 && b >= 16 && b <= 31 || a === 192 && b === 168 || a === 169 && b === 254;
152
- }
153
- function resolveFarmMobileServer(value, context, check = mobileChecker(), key = "server") {
154
- let url;
155
- try {
156
- url = new URL(value);
157
- } catch {
158
- return check.fail(`${key} must be an absolute URL such as "https://notes.example.com".`);
159
- }
160
- if (url.username || url.password || url.search || url.hash || url.pathname !== "/") {
161
- check.fail(
162
- `${key} must be an origin such as "https://notes.example.com", without a path, query, or credentials. A base path comes from basePath.`
163
- );
164
- }
165
- if (url.protocol === "https:") return url.origin;
166
- if (url.protocol !== "http:") check.fail(`${key} must use https://, got "${url.protocol}".`);
167
- if (context.command !== "dev") {
168
- check.fail(
169
- `${key} must use https:// in a build, got "${value}". http:// is allowed only for loopback and LAN hosts in dev.`
170
- );
171
- }
172
- if (!isLoopbackOrLanHost(url.hostname)) {
173
- check.fail(
174
- `${key} may use http:// only for a loopback or LAN host (such as http://10.0.2.2:3000 for the Android emulator), got "${value}". Use https:// for public hosts.`
175
- );
176
- }
177
- return url.origin;
178
- }
179
- function checkAppId(id, { fail }) {
180
- const segments = id.split(".");
181
- if (segments.length < 2 || !segments.every((segment) => APP_ID_SEGMENT.test(segment))) {
182
- fail(
183
- `id must be a reverse-DNS identifier such as "com.example.notes", with segments of letters and digits that start with a letter (valid on Android and iOS), got "${id}".`
184
- );
185
- }
186
- const keyword = segments.find((segment) => JAVA_KEYWORDS.has(segment.toLowerCase()));
187
- if (keyword) fail(`id segment "${keyword}" is a Java keyword, which Android rejects.`);
188
- }
189
- function nativeModuleMovedMessage(where, pattern) {
190
- const dir = pattern === "/" ? "" : stripRouteGroupsFromPattern(pattern);
191
- return `${where}.native no longer names a src/native/ module (src/native/ is for native module specs). Add src/app${dir}/page.native.tsx next to its page.tsx, or set native: { routes: { "${pattern}": { screen: "native" } } }.`;
192
- }
193
- function checkRouteKey(pattern, where, { fail }) {
194
- if (!pattern.startsWith("/")) fail(`${where}: the key must be an app route such as "/notes".`);
195
- }
196
- function checkPresentation(value, where, { fail }) {
197
- if (value !== void 0 && !PRESENTATIONS.has(value)) {
198
- fail(`${where}.presentation must be "push", "modal", or "replace".`);
199
- }
200
- }
201
- function checkPrefetch(value, where, { fail }) {
202
- if (value !== void 0 && value !== "intent" && value !== "off") {
203
- fail(`${where}prefetch must be "intent" or "off".`);
204
- }
205
- }
206
- function validateNativeConfig(native, check) {
207
- const { checkKeys } = check;
208
- function fail(message) {
209
- return check.fail(message);
210
- }
211
- if (!isPlainObject(native)) {
212
- fail('native must be an object, such as { routes: { "/feed": { screen: "native" } } }.');
213
- }
214
- checkKeys(native, NATIVE_KEYS, "native.");
215
- if (native.engine !== void 0 && !ENGINES.has(native.engine)) {
216
- fail('native.engine must be "react-native" or "platform".');
217
- }
218
- if (native.auto !== void 0 && !AUTO_MODES.has(native.auto)) {
219
- fail('native.auto must be "off", "report", or "on".');
220
- }
221
- checkPrefetch(native.prefetch, "native.", check);
222
- if (native.islands !== void 0) {
223
- if (!Array.isArray(native.islands) || !native.islands.every((entry) => typeof entry === "string" && ISLAND_NAME.test(entry))) {
224
- fail('native.islands must be an array of component names, such as ["Map", "Video"].');
225
- }
226
- }
227
- if (native.budgets !== void 0) {
228
- if (!isPlainObject(native.budgets)) {
229
- fail("native.budgets must be an object, such as { screenOpenMs: 300 }.");
230
- }
231
- checkKeys(native.budgets, BUDGET_KEYS, "native.budgets.");
232
- for (const [key, value] of Object.entries(native.budgets)) {
233
- if (typeof value !== "number" || !Number.isFinite(value) || value < 0) {
234
- fail(`native.budgets.${key} must be a number of 0 or more.`);
235
- }
236
- }
237
- }
238
- if (native.routes === void 0) return;
239
- if (!isPlainObject(native.routes)) {
240
- fail(
241
- 'native.routes must be an object keyed by route, such as { "/notes/new": { presentation: "modal" } }.'
242
- );
243
- }
244
- for (const [pattern, route] of Object.entries(native.routes)) {
245
- const where = `native.routes["${pattern}"]`;
246
- checkRouteKey(pattern, where, check);
247
- if (!isPlainObject(route)) fail(`${where} must be an object, such as { screen: "native" }.`);
248
- if (typeof route.native === "string") fail(nativeModuleMovedMessage(where, pattern));
249
- checkKeys(route, NATIVE_ROUTE_KEYS, `${where}.`);
250
- if (route.screen === void 0) {
251
- fail(`${where}.screen is required: "web", "native", or "platform".`);
252
- }
253
- for (const field of ["screen", "android", "ios"]) {
254
- if (route[field] !== void 0 && !SCREENS.has(route[field])) {
255
- fail(`${where}.${field} must be "web", "native", or "platform".`);
256
- }
257
- }
258
- checkPresentation(route.presentation, where, check);
259
- }
260
- }
261
- function validateFarmMobilePageConfig(value, where, context) {
262
- const check = mobileChecker(context);
263
- const { checkKeys } = check;
264
- function fail(message) {
265
- return check.fail(message);
266
- }
267
- if (!isPlainObject(value)) {
268
- fail(`${where}: export const mobile must be an object, such as { presentation: "modal" }.`);
269
- }
270
- checkKeys(value, PAGE_KEYS, `${where}: mobile.`);
271
- checkPresentation(value.presentation, `${where}: mobile`, check);
272
- checkPrefetch(value.prefetch, `${where}: mobile.`, check);
273
- if (value.native !== void 0 && typeof value.native !== "boolean") {
274
- fail(`${where}: mobile.native must be true or false.`);
275
- }
276
- return value;
277
- }
278
- function validateFarmMobileConfig(input, context) {
279
- const check = mobileChecker(context);
280
- const { checkKeys, optionalString } = check;
281
- function fail(message) {
282
- return check.fail(message);
283
- }
284
- if (input === void 0) return void 0;
285
- if (!isPlainObject(input)) {
286
- fail(
287
- context ? 'the function must return an object, such as { id: "com.example.notes" }.' : 'must be an object, such as { id: "com.example.notes" }, or a function that returns one.'
288
- );
289
- }
290
- checkKeys(input, MOBILE_KEYS, "");
291
- optionalString(input.name, "name");
292
- const id = optionalString(input.id, "id");
293
- if (id !== void 0) checkAppId(id, check);
294
- const server = optionalString(input.server, "server");
295
- if (server !== void 0) resolveFarmMobileServer(server, context ?? { command: "build" }, check);
296
- if (input.tabs !== void 0) {
297
- if (!Array.isArray(input.tabs)) {
298
- fail('tabs must be an array, such as [{ path: "/", title: "Home", icon: "home" }].');
299
- }
300
- const tabs = input.tabs;
301
- if (tabs.length > MAX_TABS) {
302
- fail(`tabs has ${tabs.length} entries; a tab bar shows at most ${MAX_TABS}.`);
303
- }
304
- const seen = /* @__PURE__ */ new Set();
305
- tabs.forEach((tab, index) => {
306
- const where = `tabs[${index}]`;
307
- if (!isPlainObject(tab)) {
308
- fail(`${where} must be an object, such as { path: "/", title: "Home", icon: "home" }.`);
309
- }
310
- checkKeys(tab, TAB_KEYS, `${where}.`);
311
- const { path: tabPath, title, icon } = tab;
312
- if (typeof tabPath !== "string" || !tabPath.startsWith("/")) {
313
- fail(`${where}.path must be a route path such as "/notes".`);
314
- }
315
- if (/[[\]()?#]/.test(tabPath)) {
316
- fail(`${where}.path must be a static route such as "/notes", got "${tabPath}".`);
317
- }
318
- if (seen.has(tabPath)) fail(`${where}.path "${tabPath}" is already a tab.`);
319
- seen.add(tabPath);
320
- if (optionalString(title, `${where}.title`) === void 0) {
321
- fail(`${where}.title must be a non-empty string.`);
322
- }
323
- const iconName = optionalString(icon, `${where}.icon`);
324
- if (iconName === void 0 || !ICON_NAME.test(iconName)) {
325
- fail(
326
- `${where}.icon must be an icon name such as "note.text" or "ic_notes", got "${String(icon)}".`
327
- );
328
- }
329
- });
330
- }
331
- if (input.routes !== void 0) {
332
- if (!isPlainObject(input.routes)) {
333
- fail(
334
- 'routes must be an object keyed by route, such as { "/notes/new": { presentation: "modal" } }.'
335
- );
336
- }
337
- for (const [pattern, route] of Object.entries(input.routes)) {
338
- const where = `routes["${pattern}"]`;
339
- checkRouteKey(pattern, where, check);
340
- if (!isPlainObject(route)) {
341
- fail(`${where} must be an object, such as { presentation: "modal" }.`);
342
- }
343
- if (route.native !== void 0) fail(nativeModuleMovedMessage(where, pattern));
344
- checkKeys(route, ROUTE_KEYS, `${where}.`);
345
- checkPresentation(route.presentation, where, check);
346
- }
347
- }
348
- if (input.native !== void 0) validateNativeConfig(input.native, check);
349
- if (input.shells !== void 0 && typeof input.shells !== "boolean") {
350
- fail("shells must be true or false.");
351
- }
352
- if (input.modules !== void 0 && !isPlainObject(input.modules)) {
353
- fail(
354
- 'modules must be an object keyed by module name, such as { Device: { permissions: ["android.permission.VIBRATE"] } }.'
355
- );
356
- }
357
- if (isPlainObject(input.routes) && isPlainObject(input.native)) {
358
- const nativeRoutes = isPlainObject(input.native.routes) ? input.native.routes : {};
359
- const presented = new Map(
360
- Object.entries(input.routes).filter(([, route]) => isPlainObject(route) && route.presentation !== void 0).map(([pattern]) => [stripRouteGroupsFromPattern(pattern), pattern])
361
- );
362
- for (const [pattern, route] of Object.entries(nativeRoutes)) {
363
- const other = presented.get(stripRouteGroupsFromPattern(pattern));
364
- if (other !== void 0 && isPlainObject(route) && route.presentation !== void 0) {
365
- fail(
366
- `routes["${other}"].presentation and native.routes["${pattern}"].presentation set the same field. Keep one.`
367
- );
368
- }
369
- }
370
- }
371
- return input;
372
- }
373
- function stripRouteGroupsFromPattern(pattern) {
374
- const segments = pattern.split("/").filter((segment) => segment && !(segment.startsWith("(") && segment.endsWith(")")));
375
- return segments.length === 0 ? "/" : `/${segments.join("/")}`;
376
- }
377
- function safeShape(pattern) {
378
- try {
379
- return getRoutePatternShape(pattern);
380
- } catch {
381
- return void 0;
382
- }
383
- }
384
- function resolveFarmMobileConfig(input, options, context) {
385
- const config = validateFarmMobileConfig(input, context) ?? {};
386
- const check = mobileChecker(context);
387
- function fail(message) {
388
- return check.fail(message);
389
- }
390
- const pages = new Set(options.routes.map(stripRouteGroupsFromPattern));
391
- const byShape = /* @__PURE__ */ new Map();
392
- for (const page of pages) {
393
- const shape = safeShape(page);
394
- if (shape) byShape.set(shape, page);
395
- }
396
- const tabs = (config.tabs ?? []).map((tab, index) => {
397
- const tabPath = stripRouteGroupsFromPattern(tab.path);
398
- if (!pages.has(tabPath)) {
399
- fail(
400
- `tabs[${index}].path "${tab.path}" is not a page route. Add src/app${tabPath === "/" ? "" : tabPath}/page.tsx or pick an existing route.`
401
- );
402
- }
403
- return { path: tabPath, title: tab.title.trim(), icon: tab.icon.trim() };
404
- });
405
- const tabPaths = new Set(tabs.map((tab) => tab.path));
406
- const checkPage = (key, where) => {
407
- const pattern = stripRouteGroupsFromPattern(key);
408
- if (!pages.has(pattern)) {
409
- const shape = safeShape(pattern);
410
- const sameShape = shape ? byShape.get(shape) : void 0;
411
- fail(
412
- sameShape ? `${where} is not a page route; did you mean "${sameShape}"?` : `${where} is not a page route. Keys are app route patterns such as "/notes/[id]".`
413
- );
414
- }
415
- return pattern;
416
- };
417
- const checkTabPresentation = (pattern, where, presentation) => {
418
- if (presentation !== void 0 && tabPaths.has(pattern)) {
419
- fail(`${where}.presentation does not apply to a tab route; tabs switch in place.`);
420
- }
421
- };
422
- const routes = {};
423
- for (const [key, route] of Object.entries(config.routes ?? {})) {
424
- const where = `routes["${key}"]`;
425
- const pattern = checkPage(key, where);
426
- checkTabPresentation(pattern, where, route.presentation);
427
- routes[pattern] = route.presentation ? { presentation: route.presentation } : {};
428
- }
429
- const native = config.native ?? {};
430
- const nativeRoutes = {};
431
- for (const [key, route] of Object.entries(native.routes ?? {})) {
432
- const where = `native.routes["${key}"]`;
433
- const pattern = checkPage(key, where);
434
- checkTabPresentation(pattern, where, route.presentation);
435
- nativeRoutes[pattern] = Object.fromEntries(
436
- ["screen", "android", "ios", "presentation"].filter((field) => route[field] !== void 0).map((field) => [field, route[field]])
437
- );
438
- }
439
- const pkg = readAppPackageJson(options.root);
440
- const name = config.name?.trim() || resolveAppPackageName(options.root, pkg) || "Farm App";
441
- const idName = name.replace(/[^A-Za-z0-9]+/g, "").replace(/^[^A-Za-z]+/, "") || "app";
442
- const id = config.id?.trim() || `local.farm.${idName.toLowerCase()}`;
443
- if (!config.id?.trim()) {
444
- checkAppId(id, {
445
- ...check,
446
- fail: (message) => fail(
447
- `${message} It comes from the app's name; set mobile.id, such as "com.example.notes".`
448
- )
449
- });
450
- }
451
- return {
452
- name,
453
- id,
454
- ...config.server ? { server: resolveFarmMobileServer(config.server, context) } : {},
455
- tabs,
456
- routes,
457
- native: {
458
- engine: native.engine ?? "react-native",
459
- auto: native.auto ?? "report",
460
- routes: nativeRoutes,
461
- islands: [...new Set(native.islands ?? [])].sort(),
462
- prefetch: native.prefetch ?? "intent",
463
- budgets: { ...native.budgets }
464
- },
465
- shells: config.shells === true,
466
- modules: resolveFarmMobileModules(config.modules, options, fail)
467
- };
468
- }
469
- function createFarmMobileContext(options) {
470
- const os = options.os ?? "android";
471
- if (!MOBILE_OS.has(os)) throw new TypeError(`--os must be android or ios, got "${os}".`);
472
- if (options.command !== "dev" && options.command !== "build") {
473
- throw new TypeError(`--command must be dev or build, got "${options.command}".`);
474
- }
475
- return Object.freeze({
476
- os,
477
- mode: options.mode,
478
- command: options.command,
479
- profile: resolvePlatformProfile(options.profile),
480
- env: Object.freeze({ ...process.env }),
481
- root: options.root
482
- });
483
- }
484
- function resolveFarmMobileBlock(input, context, cache) {
485
- return resolvePlatformBlock(
486
- input,
487
- context,
488
- (value, ctx) => validateFarmMobileConfig(value, ctx) ?? {},
489
- cache
490
- );
491
- }
492
-
493
- // src/mobile/report.ts
494
- function createFarmMobileNativeReport(options) {
495
- const summary = {
496
- routes: 0,
497
- analyzed: 0,
498
- port: 0,
499
- portableNoWin: 0,
500
- blocked: 0,
501
- native: 0,
502
- tiers: { native: 0, "react-native": 0, web: 0 }
503
- };
504
- const routes = options.routes.map((route) => {
505
- const decision = options.screens[route];
506
- const analyzed = options.analysis[route];
507
- summary.routes += 1;
508
- if (decision.screen !== "web") summary.native += 1;
509
- if (analyzed) {
510
- summary.analyzed += 1;
511
- summary.tiers[analyzed.tier] += 1;
512
- if (analyzed.decision === "port") summary.port += 1;
513
- else if (analyzed.portable) summary.portableNoWin += 1;
514
- else summary.blocked += 1;
515
- }
516
- const { route: _route, ...analysis } = analyzed ?? {};
517
- return {
518
- route,
519
- screen: decision.screen,
520
- source: decision.source,
521
- ...decision.requested ? { requested: decision.requested } : {},
522
- ...decision.file ? { file: decision.file } : {},
523
- ...analyzed ? { analysis } : {}
524
- };
525
- });
526
- return {
527
- version: 1,
528
- os: options.os,
529
- engine: options.engine,
530
- auto: options.auto,
531
- summary,
532
- routes
533
- };
534
- }
535
- function reasonFor(entry) {
536
- const analysis = entry.analysis;
537
- if (!analysis) {
538
- if (entry.source === "page") {
539
- return `${entry.file}: mobile.native ${entry.requested ? "true" : "false"}`;
540
- }
541
- if (entry.source === "file") return entry.file;
542
- if (entry.source === "config") {
543
- return entry.file ? `native.routes, ${entry.file}` : "native.routes";
544
- }
545
- return "";
546
- }
547
- if (analysis.tier === "native") return "renders natively, no JavaScript on the device";
548
- if (analysis.portable) {
549
- return analysis.wins.length > 0 ? `portable; ${analysis.wins.join(", ")}` : `portable; no win (${analysis.elements.total} elements)`;
550
- }
551
- const [first, ...rest] = analysis.nativeBlockers.length ? analysis.nativeBlockers : analysis.blockers;
552
- const where = first.file ? `${first.file}:${first.line}:${first.column} ` : "";
553
- return `${where}${first.message}${rest.length > 0 ? ` (+${rest.length} more)` : ""}`;
554
- }
555
- function formatFarmMobileNativeReport(report, options = {}) {
556
- const rows = report.routes.map((entry) => [
557
- entry.route,
558
- entry.screen,
559
- entry.analysis ? entry.analysis.tier : "-",
560
- entry.analysis ? entry.analysis.decision : "-",
561
- entry.analysis ? `${entry.analysis.elements.mapped}/${entry.analysis.elements.total}` : "",
562
- entry.analysis ? `${entry.analysis.portablePercent}%` : "",
563
- reasonFor(entry)
564
- ]);
565
- const header = ["route", "screen", "tier", "decision", "mapped", "portable", "reason"];
566
- const widths = header.map(
567
- (title, column) => Math.min(
568
- column === 0 ? 40 : 12,
569
- Math.max(title.length, ...rows.map((row) => row[column].length))
570
- )
571
- );
572
- const line = (cells) => cells.map(
573
- (cell, column) => column === cells.length - 1 ? cell : cell.padEnd(widths[column]).slice(0, widths[column])
574
- ).join(" ").trimEnd();
575
- const { summary } = report;
576
- const lines = [
577
- `mobile.native.auto: "${report.auto}" (os: ${report.os})`,
578
- "",
579
- line(header),
580
- ...rows.map(line),
581
- "",
582
- `${summary.routes} routes: ${summary.port} port, ${summary.portableNoWin} portable without a win, ${summary.blocked} blocked, ${summary.native} native from files or config`,
583
- `tiers: ${summary.tiers.native} native, ${summary.tiers["react-native"]} react-native, ${summary.tiers.web} web`
584
- ];
585
- if (options.stats) {
586
- const { modules, parsed, cached, ms } = options.stats;
587
- lines.push(`analyzed ${modules} modules (${parsed} parsed, ${cached} cached) in ${ms} ms`);
588
- }
589
- if (options.file) lines.push(`full report: ${options.file}`);
590
- return lines.join("\n");
591
- }
592
-
593
- // src/mobile/screens.ts
594
- import * as path from "path";
595
- function createFarmMobileModuleId(route) {
596
- return route === "/" ? "app" : `app${route}`;
597
- }
598
- function relativeFile(root, file) {
599
- return path.relative(root, file).split(path.sep).join("/");
600
- }
601
- function resolveFarmMobileScreens(options) {
602
- const { os, root } = options;
603
- const { native } = options.mobile;
604
- const prefix = `mobile (os: ${os})`;
605
- const nativeTier = native.engine === "platform" ? "platform" : "native";
606
- const platformFileName = os === "android" ? "page.kt" : "page.swift";
607
- const screens = {};
608
- const warnings = [];
609
- for (const route of options.routes) {
610
- const where = `native.routes["${route}"]`;
611
- const routeConfig = native.routes[route];
612
- const tier = routeConfig ? routeConfig[os] ?? routeConfig.screen : void 0;
613
- const tierKey = routeConfig?.[os] !== void 0 ? os : "screen";
614
- const page = options.pageExports?.get(route);
615
- const files = options.nativePages?.get(route) ?? {};
616
- const reactFile = files[os] ?? files.native;
617
- const platformFile = os === "android" ? files.kt : files.swift;
618
- const module = createFarmMobileModuleId(route);
619
- if (native.engine === "platform") {
620
- const reactNative = files.native ?? files.ios ?? files.android;
621
- if (reactNative) {
622
- throw new TypeError(
623
- `${prefix}: ${relativeFile(root, reactNative)} is a React Native screen, but native.engine is "platform" (no React Native). Remove the file or use ${platformFileName}.`
624
- );
625
- }
626
- }
627
- if (reactFile && platformFile) {
628
- throw new TypeError(
629
- `${prefix}: "${route}" has two screens on ${os}: ${relativeFile(root, reactFile)} and ${relativeFile(root, platformFile)}. Keep one.`
630
- );
631
- }
632
- const configPresentation = options.mobile.routes[route]?.presentation ?? routeConfig?.presentation;
633
- if (page?.config.presentation !== void 0 && configPresentation !== void 0) {
634
- warnings.push(
635
- `${page.file}: mobile.presentation "${page.config.presentation}" overrides the config's "${configPresentation}" for "${route}".`
636
- );
637
- }
638
- const base = {
639
- presentation: page?.config.presentation ?? configPresentation ?? "push",
640
- prefetch: page?.config.prefetch ?? native.prefetch
641
- };
642
- if (page?.config.native === false) {
643
- if (tier !== void 0 && tier !== "web") {
644
- warnings.push(
645
- `${page.file}: mobile.native false overrides ${where}.${tierKey} "${tier}"; the route stays web.`
646
- );
647
- }
648
- for (const unused of [reactFile, platformFile]) {
649
- if (unused) {
650
- warnings.push(
651
- `${relativeFile(root, unused)} is unused: ${page.file} sets mobile.native to false.`
652
- );
653
- }
654
- }
655
- screens[route] = { screen: "web", source: "page", file: page.file, ...base };
656
- continue;
657
- }
658
- if (page?.config.native === true) {
659
- if (tier !== void 0 && tier !== "native") {
660
- warnings.push(`${page.file}: mobile.native true overrides ${where}.${tierKey} "${tier}".`);
661
- }
662
- const file2 = reactFile ?? platformFile;
663
- if (file2) {
664
- screens[route] = {
665
- screen: reactFile ? "native" : "platform",
666
- source: "page",
667
- file: relativeFile(root, file2),
668
- module,
669
- ...base
670
- };
671
- continue;
672
- }
673
- const analysis = options.analyzerTiers?.get(route);
674
- if (analysis && analysis.tier !== "native") {
675
- throw new TypeError(
676
- `${prefix}: ${page.file} sets mobile.native to true, but "${route}" cannot render as a native screen:
677
- ${analysis.nativeBlockers.map((blocker) => ` - ${blocker}`).join("\n")}
678
- ` + (analysis.tier === "react-native" ? "It needs JavaScript on the device: add page.native.tsx next to the page, or " : "Remove the blockers, add page.native.tsx next to the page, or ") + "remove mobile.native."
679
- );
680
- }
681
- screens[route] = analysis ? { screen: "server", source: "page", file: page.file, module, ...base } : { screen: "web", source: "page", file: page.file, requested: "native", ...base };
682
- continue;
683
- }
684
- if (tier === "web") {
685
- screens[route] = { screen: "web", source: "config", ...base };
686
- continue;
687
- }
688
- if (tier === "platform" || tier === "native" && nativeTier === "platform" && platformFile) {
689
- if (!platformFile) {
690
- throw new TypeError(
691
- `${prefix}: ${where}.${tierKey} is "platform", which needs ${platformFileName} next to the route's page.tsx.`
692
- );
693
- }
694
- screens[route] = {
695
- screen: "platform",
696
- source: "config",
697
- file: relativeFile(root, platformFile),
698
- module,
699
- ...base
700
- };
701
- continue;
702
- }
703
- if (tier === "native") {
704
- if (nativeTier === "native" && reactFile) {
705
- screens[route] = {
706
- screen: "native",
707
- source: "config",
708
- file: relativeFile(root, reactFile),
709
- module,
710
- ...base
711
- };
712
- continue;
713
- }
714
- if (options.analyzerTiers?.get(route)?.tier === "native") {
715
- screens[route] = { screen: "server", source: "config", module, ...base };
716
- continue;
717
- }
718
- const portFile = options.portFiles?.get(route);
719
- if (nativeTier === "native" && portFile) {
720
- screens[route] = {
721
- screen: "native",
722
- source: "config",
723
- file: relativeFile(root, portFile),
724
- module,
725
- ...base
726
- };
727
- continue;
728
- }
729
- const blockers = options.analyzerBlockers?.get(route);
730
- const problems = options.portProblems?.get(route);
731
- warnings.push(
732
- `${where}.${tierKey} is "native", but "${route}" has no ${nativeTier === "native" ? "page.native.tsx" : platformFileName} and Farm cannot port it yet, so it stays web` + (blockers?.length ? `. The analyzer would keep it web: ${blockers.join("; ")}` : "") + (problems?.length ? `. The port would need: ${problems.join("; ")}` : "") + ". This fails the build once native screens ship."
733
- );
734
- screens[route] = { screen: "web", source: "config", requested: nativeTier, ...base };
735
- continue;
736
- }
737
- const file = reactFile ?? platformFile;
738
- if (file) {
739
- screens[route] = {
740
- screen: reactFile ? "native" : "platform",
741
- source: "file",
742
- file: relativeFile(root, file),
743
- module,
744
- ...base
745
- };
746
- continue;
747
- }
748
- if (native.auto === "on" && options.analyzerTiers?.get(route)?.tier === "native") {
749
- screens[route] = { screen: "server", source: "analyzer", module, ...base };
750
- continue;
751
- }
752
- if (native.auto === "on" && options.analyzerPorts?.has(route)) {
753
- const portFile = options.portFiles?.get(route);
754
- if (nativeTier === "native" && portFile) {
755
- screens[route] = {
756
- screen: "native",
757
- source: "analyzer",
758
- file: relativeFile(root, portFile),
759
- module,
760
- ...base
761
- };
762
- continue;
763
- }
764
- const problems = options.portProblems?.get(route);
765
- if (problems?.length) {
766
- warnings.push(
767
- `${prefix}: "${route}" is portable, but Farm cannot port it yet, so it stays web: ${problems.join("; ")}.`
768
- );
769
- }
770
- screens[route] = { screen: "web", source: "analyzer", requested: nativeTier, ...base };
771
- continue;
772
- }
773
- screens[route] = { screen: "web", source: "default", ...base };
774
- }
775
- return { screens, warnings };
776
- }
777
- function unwrap(node) {
778
- let current = node;
779
- while (current.type === "TSAsExpression" || current.type === "TSSatisfiesExpression" || current.type === "ParenthesizedExpression") {
780
- current = current.expression;
781
- }
782
- return current;
783
- }
784
- function literalValue(node, fail) {
785
- const value = unwrap(node);
786
- if (value.type === "Literal") return value.value;
787
- if (value.type === "ObjectExpression") {
788
- const result = {};
789
- for (const property of value.properties) {
790
- const key = property.key;
791
- if (property.type !== "Property" || property.computed || !key) {
792
- fail("must be an object literal without spreads or computed keys");
793
- }
794
- const name = key.type === "Identifier" ? key.name : key.value;
795
- if (typeof name !== "string") fail("must use plain keys");
796
- result[name] = literalValue(property.value, fail);
797
- }
798
- return result;
799
- }
800
- return fail('must use literal values, such as { presentation: "modal" }');
801
- }
802
- function readFarmMobilePageExport(source, file, parse, context) {
803
- if (!/\bmobile\b/.test(source)) return void 0;
804
- const prefix = context ? `mobile (os: ${context.os})` : "mobile";
805
- const fail = (message) => {
806
- throw new TypeError(
807
- `${prefix}: ${file}: export const mobile ${message}. Farm reads it without running the page.`
808
- );
809
- };
810
- for (const statement of parse(file, source).body) {
811
- if (statement.type !== "ExportNamedDeclaration") continue;
812
- for (const specifier of statement.specifiers ?? []) {
813
- const exported = specifier.exported;
814
- if ((exported.name ?? exported.value) === "mobile") {
815
- fail("must be declared in place, as export const mobile = { ... }");
816
- }
817
- }
818
- const declaration = statement.declaration;
819
- if (!declaration) continue;
820
- if (declaration.type === "VariableDeclaration") {
821
- for (const declarator of declaration.declarations) {
822
- const id = declarator.id;
823
- if (id.type !== "Identifier" || id.name !== "mobile") continue;
824
- if (declaration.kind !== "const") fail("must be a const");
825
- if (!declarator.init) fail("needs a value");
826
- const value = literalValue(declarator.init, fail);
827
- return validateFarmMobilePageConfig(value, file, context);
828
- }
829
- } else if (declaration.id?.name === "mobile") {
830
- fail('must be an object, such as export const mobile = { presentation: "modal" }');
831
- }
832
- }
833
- return void 0;
834
- }
835
-
836
- // src/mobile/routes.ts
837
- var REGEX_SPECIAL = /[\\^$.|?*+()[\]{}]/g;
838
- function escapeRegex(value) {
839
- return value.replace(REGEX_SPECIAL, "\\$&");
840
- }
841
- function caseInsensitive(value) {
842
- return Array.from(value).map((character) => {
843
- const lower = character.toLowerCase();
844
- const upper = character.toUpperCase();
845
- return lower === upper ? escapeRegex(character) : `[${upper}${lower}]`;
846
- }).join("");
847
- }
848
- function decodeSegment(segment) {
849
- try {
850
- return decodeURIComponent(segment);
851
- } catch {
852
- return segment;
853
- }
854
- }
855
- function createFarmMobileRoutePattern(pattern, options = {}) {
856
- let source = `^${escapeRegex(normalizeFarmBasePath(options.basePath))}`;
857
- const i18n = options.i18n;
858
- if (i18n && i18n.routing !== "none" && i18n.locales.length > 0) {
859
- const locale = `/(?:${i18n.locales.map(caseInsensitive).join("|")})`;
860
- source += `(?:${locale}|(?!${locale}(?:/|$)))`;
861
- }
862
- for (const segment of pattern.split("/").filter(Boolean)) {
863
- if (segment.startsWith("(") && segment.endsWith(")")) continue;
864
- if (segment.startsWith("[[...") && segment.endsWith("]]")) source += "(?:/[^/]+)*";
865
- else if (segment.startsWith("[...") && segment.endsWith("]")) source += "(?:/[^/]+)+";
866
- else if (segment.startsWith("[") && segment.endsWith("]")) source += "/[^/]+";
867
- else source += `/${escapeRegex(decodeSegment(segment))}`;
868
- }
869
- return `${source}/?$`;
870
- }
871
- function stripRouteGroups(pattern) {
872
- const segments = pattern.split("/").filter((segment) => segment && !(segment.startsWith("(") && segment.endsWith(")")));
873
- return segments.length === 0 ? "/" : `/${segments.join("/")}`;
874
- }
875
- function createFarmMobileRouteManifest(mobile, options) {
876
- const server = options.server ?? mobile.server;
877
- if (!server) {
878
- throw new TypeError(
879
- 'mobile: server is required, such as server: "https://notes.example.com" (the web deployment the app loads pages from).'
880
- );
881
- }
882
- const basePath = normalizeFarmBasePath(options.basePath);
883
- const tabIndex = new Map(mobile.tabs.map((tab, index) => [tab.path, index]));
884
- const routes = [...new Set(options.routes.map(stripRouteGroups))].sort().sort((left, right) => compareRoutePatternSpecificity(left, right));
885
- const screens = options.screens ?? resolveFarmMobileScreens({ root: "", os: options.os ?? "android", routes, mobile }).screens;
886
- const rules = routes.map((route) => {
887
- const decision = screens[route] ?? {
888
- screen: "web",
889
- source: "default",
890
- presentation: "push",
891
- prefetch: mobile.native.prefetch
892
- };
893
- const tab = tabIndex.get(route);
894
- return {
895
- route,
896
- pattern: createFarmMobileRoutePattern(route, options),
897
- presentation: tab !== void 0 ? "tab" : decision.presentation,
898
- ...tab !== void 0 ? { tab } : {},
899
- screen: decision.screen,
900
- source: decision.source,
901
- ...decision.module ? { module: decision.module } : {},
902
- ...decision.prefetch !== mobile.native.prefetch ? { prefetch: decision.prefetch } : {}
903
- };
904
- });
905
- rules.push({ pattern: "^/", presentation: "push", screen: "web" });
906
- return {
907
- version: 1,
908
- server,
909
- tabs: mobile.tabs.map((tab) => ({
910
- ...tab,
911
- path: basePath ? tab.path === "/" ? basePath : `${basePath}${tab.path}` : tab.path
912
- })),
913
- prefetch: mobile.native.prefetch,
914
- rules,
915
- ...options.shells && Object.keys(options.shells.routes).length > 0 ? { shells: { client: options.shells.client, routes: { ...options.shells.routes } } } : {}
916
- };
917
- }
918
-
919
- // src/mobile/page-shells.ts
920
- import { createHash } from "crypto";
921
- var SCRIPT = /<script\b[^>]*>[\s\S]*?<\/script\s*>/gi;
922
- var LINK = /<link\b[^>]*>/gi;
923
- var REMOVED = "\0";
924
- var REMOVED_ALL = /\u0000/g;
925
- var REMOVED_LINE = /\n[ \t\u0000]*\u0000[ \t\u0000]*(?=\n|$)/g;
926
- var HEAD = /<head\b[^>]*>[\s\S]*?<\/head\s*>/i;
927
- var BLANK_LINE = /\n[ \t]*(?=\n)/g;
928
- function attribute(tag, name) {
929
- const match = tag.match(
930
- new RegExp(`\\s${name}\\s*=\\s*(?:"([^"]*)"|'([^']*)'|([^\\s"'>]+))`, "i")
931
- );
932
- if (!match) return void 0;
933
- return (match[1] ?? match[2] ?? match[3] ?? "").replace(/&amp;/g, "&");
934
- }
935
- function relList(tag) {
936
- return (attribute(tag, "rel") ?? "").toLowerCase().split(/\s+/).filter(Boolean);
937
- }
938
- function inlineStyle(css, media) {
939
- const safeMedia = media && /^[\w\s(),:.-]+$/.test(media) ? ` media="${media}"` : "";
940
- return `<style${safeMedia}>${css.replace(/<\/(style)/gi, "<\\/$1")}</style>`;
941
- }
942
- function createFarmMobilePageShell(html, options) {
943
- let shell = html.replace(REMOVED_ALL, "").replace(SCRIPT, REMOVED);
944
- shell = shell.replace(LINK, (tag) => {
945
- const rel = relList(tag);
946
- if (rel.includes("modulepreload") || rel.includes("preload") && (attribute(tag, "as") ?? "").toLowerCase() === "script" || !rel.includes("stylesheet") && (rel.includes("canonical") || rel.includes("alternate"))) {
947
- return REMOVED;
948
- }
949
- if (options.os !== "ios" || !rel.includes("stylesheet")) return tag;
950
- const href = attribute(tag, "href");
951
- const css = href === void 0 ? void 0 : options.readStylesheet?.(href);
952
- return css === void 0 ? tag : inlineStyle(css, attribute(tag, "media"));
953
- });
954
- shell = shell.replace(REMOVED_LINE, "").replace(REMOVED_ALL, "");
955
- shell = shell.replace(HEAD, (head) => head.replace(BLANK_LINE, ""));
956
- return shell.replace(
957
- /<html\b([^>]*)>/i,
958
- (tag, attributes) => /\sdata-farm-page-shell\b/i.test(attributes) ? tag : `<html${attributes} data-farm-page-shell>`
959
- );
960
- }
961
- function getFarmMobilePageShellFile(shell) {
962
- return `${createHash("sha256").update(shell).digest("hex").slice(0, 16)}.html`;
963
- }
964
- async function renderFarmMobilePageShells(options) {
965
- const routes = {};
966
- const files = {};
967
- const skipped = [];
968
- const queue = [...new Set(options.routes)].sort();
969
- const render = async (route) => {
970
- const response = await options.fetch(
971
- `${options.basePath}${createFarmMobileShellRenderPath(route)}`,
972
- {
973
- headers: {
974
- Accept: "text/html",
975
- [FARM_SHELL_HEADER]: options.os,
976
- [FARM_SHELL_RENDER_HEADER]: options.token,
977
- [FARM_SHELL_ROUTE_HEADER]: route
978
- }
979
- }
980
- );
981
- const body = await response.text();
982
- if (response.headers.get(FARM_SHELL_RENDER_HEADER) === "none") {
983
- skipped.push({ route, reason: body.trim() || "the server rendered no shell" });
984
- return;
985
- }
986
- const type = response.headers.get("content-type")?.toLowerCase() ?? "";
987
- if (response.status !== 200 || !type.includes("text/html")) {
988
- const location = response.headers.get("location");
989
- skipped.push({
990
- route,
991
- reason: `the server answered ${response.status}${location ? ` (to ${location})` : ""}`
992
- });
993
- return;
994
- }
995
- const shell = createFarmMobilePageShell(body, options);
996
- const file = getFarmMobilePageShellFile(shell);
997
- files[file] = shell;
998
- routes[route] = file;
999
- };
1000
- const workers = Array.from(
1001
- { length: Math.max(1, Math.min(options.concurrency ?? 4, queue.length)) },
1002
- async () => {
1003
- for (let route = queue.shift(); route !== void 0; route = queue.shift()) {
1004
- await render(route);
1005
- }
1006
- }
1007
- );
1008
- await Promise.all(workers);
1009
- skipped.sort((left, right) => left.route < right.route ? -1 : left.route > right.route ? 1 : 0);
1010
- return {
1011
- shells: {
1012
- client: options.client,
1013
- routes: Object.fromEntries(Object.entries(routes).sort(([a], [b]) => a < b ? -1 : 1)),
1014
- files: Object.fromEntries(Object.entries(files).sort(([a], [b]) => a < b ? -1 : 1))
1015
- },
1016
- skipped
1017
- };
1018
- }
1019
-
1020
- // src/mobile/runtime.ts
1021
- var FarmMobileError = class extends Error {
1022
- constructor() {
1023
- super(...arguments);
1024
- this.name = "FarmMobileError";
1025
- }
1026
- };
1027
- function getFarmMobileOutputDirs(distDir) {
1028
- const root = path2.join(distDir, "output", "mobile");
1029
- return {
1030
- root,
1031
- routes: path2.join(root, "farm-routes.json"),
1032
- www: path2.join(root, "www"),
1033
- android: path2.join(root, "android"),
1034
- ios: path2.join(root, "ios"),
1035
- dist: path2.join(root, "dist"),
1036
- report: path2.join(root, "native-report.json"),
1037
- ports: path2.join(root, "ports"),
1038
- analyzerCache: path2.join(distDir, "cache", "mobile", "analyzer.json"),
1039
- client: path2.join(distDir, "client")
1040
- };
1041
- }
1042
- var SCRIPT_PAGE = /\.(?:tsx|ts|jsx|js)$/;
1043
- function describe(blocker) {
1044
- return `${blocker.file ? `${blocker.file}:${blocker.line}:${blocker.column} ` : ""}${blocker.message}`;
1045
- }
1046
- function scriptLang(file) {
1047
- return file.endsWith(".tsx") ? "tsx" : file.endsWith(".ts") ? "ts" : "jsx";
1048
- }
1049
- async function readPageExports(root, pageFiles, os) {
1050
- const exports = /* @__PURE__ */ new Map();
1051
- let parseSync;
1052
- await Promise.all(
1053
- [...pageFiles].map(async ([route, file]) => {
1054
- if (!SCRIPT_PAGE.test(file)) return;
1055
- const source = await readFile(file, "utf8");
1056
- if (!/\bmobile\b/.test(source)) return;
1057
- parseSync ?? (parseSync = (await import("rolldown/utils")).parseSync);
1058
- const parse = parseSync;
1059
- const relative3 = path2.relative(root, file).split(path2.sep).join("/");
1060
- const config = readFarmMobilePageExport(
1061
- source,
1062
- relative3,
1063
- (name, code) => parse(name, code, { lang: scriptLang(name) }).program,
1064
- { os }
1065
- );
1066
- if (config) exports.set(route, { file: relative3, config });
1067
- })
1068
- );
1069
- return exports;
1070
- }
1071
- async function resolveFarmMobileApp(options = {}) {
1072
- const root = path2.resolve(options.config?.root ?? options.root ?? process.cwd());
1073
- const command = options.command ?? "build";
1074
- const mode = command === "dev" ? "development" : "production";
1075
- const userConfig = options.userConfig === void 0 ? await loadConfig(root, void 0, mode) : options.userConfig;
1076
- if (userConfig?.mobile === void 0) {
1077
- throw new FarmMobileError(
1078
- 'farm.config.ts has no `mobile` entry. Add one, such as `mobile: { id: "com.example.notes", server: "https://notes.example.com" }`.'
1079
- );
1080
- }
1081
- const context = createFarmMobileContext({
1082
- command,
1083
- profile: options.profile,
1084
- os: options.os,
1085
- root,
1086
- mode
1087
- });
1088
- const block = await resolveFarmMobileBlock(userConfig.mobile, context, options.cache);
1089
- const config = options.config ?? await resolveConfig({ ...userConfig, root }, mode);
1090
- const scan = await scanRoutePatterns({
1091
- root,
1092
- srcDir: config.srcDir,
1093
- sourceRoots: getFarmSourceRoots(config),
1094
- componentExtensions: getFarmRendererComponentExtensions(config.renderer),
1095
- platformFiles: true
1096
- });
1097
- const routes = [...scan.pages].sort();
1098
- let appModules;
1099
- try {
1100
- appModules = scanFarmMobileAppModules({ root, srcDir: config.srcDir });
1101
- } catch (error) {
1102
- throw Object.assign(
1103
- new FarmMobileError(`mobile (os: ${context.os}): ${error.message}`),
1104
- { cause: error }
1105
- );
1106
- }
1107
- const mobile = resolveFarmMobileConfig(
1108
- block,
1109
- {
1110
- root,
1111
- srcDir: config.srcDir,
1112
- routes,
1113
- appModules: appModules?.specs.map((spec) => spec.name)
1114
- },
1115
- context
1116
- );
1117
- if (appModules && Object.values(mobile.modules).some((module) => module.web)) {
1118
- try {
1119
- appModules = readFarmMobileWebModules(appModules, mobile.modules, { root });
1120
- } catch (error) {
1121
- throw Object.assign(
1122
- new FarmMobileError(`mobile (os: ${context.os}): ${error.message}`),
1123
- { cause: error }
1124
- );
1125
- }
1126
- }
1127
- const pageExports = await readPageExports(root, scan.pageFiles, context.os);
1128
- for (const [route, page] of pageExports) {
1129
- if (page.config.presentation !== void 0 && mobile.tabs.some((tab) => tab.path === route)) {
1130
- throw new TypeError(
1131
- `mobile (os: ${context.os}): ${page.file}: mobile.presentation does not apply to a tab route; tabs switch in place.`
1132
- );
1133
- }
1134
- }
1135
- const screenOptions = {
1136
- root,
1137
- os: context.os,
1138
- routes,
1139
- mobile,
1140
- nativePages: scan.nativePages,
1141
- pageExports
1142
- };
1143
- let { screens, warnings } = resolveFarmMobileScreens(screenOptions);
1144
- let report;
1145
- let analyzerStats;
1146
- const ports = /* @__PURE__ */ new Map();
1147
- const portProblems = /* @__PURE__ */ new Map();
1148
- const asserted = [...pageExports.values()].some((page) => page.config.native === true);
1149
- const analyze = options.analyze === "always" || asserted || options.analyze === true && mobile.native.auto !== "off";
1150
- if (analyze) {
1151
- const candidates = routes.filter((route) => {
1152
- const decision = screens[route];
1153
- return decision.source === "default" || decision.requested !== void 0;
1154
- });
1155
- const portable = context.os === "android" && mobile.native.engine !== "platform" && (mobile.native.auto === "on" || candidates.some((route) => screens[route].requested === "native"));
1156
- const { analyzeFarmMobileRoutes } = await import("./analyzer-22BEYV7S.mjs");
1157
- const analyzed = await analyzeFarmMobileRoutes({
1158
- root,
1159
- srcDir: config.srcDir,
1160
- routes: portable ? routes : candidates,
1161
- pageFiles: scan.pageFiles,
1162
- serverComponents: resolveFarmServerComponentsMode(config.experimental?.serverComponents) !== void 0,
1163
- cacheFile: path2.resolve(root, getFarmMobileOutputDirs(config.distDir).analyzerCache)
1164
- });
1165
- analyzerStats = analyzed.stats;
1166
- const result = {
1167
- ...analyzed,
1168
- routes: Object.fromEntries(
1169
- candidates.flatMap(
1170
- (route) => analyzed.routes[route] ? [[route, analyzed.routes[route]]] : []
1171
- )
1172
- )
1173
- };
1174
- if (portable) {
1175
- const { emitFarmMobilePort } = await import("./port-WOOQ3V56.mjs");
1176
- const portsDir = path2.resolve(root, getFarmMobileOutputDirs(config.distDir).ports);
1177
- for (const analysis of Object.values(result.routes)) {
1178
- const graph = result.graphs[analysis.route];
1179
- const wanted = mobile.native.auto === "on" && analysis.decision === "port" || screens[analysis.route].requested === "native";
1180
- if (!graph || !wanted || analysis.tier === "native") continue;
1181
- const emitted = await emitFarmMobilePort({
1182
- root,
1183
- graph,
1184
- portsDir,
1185
- module: createFarmMobileModuleId(analysis.route),
1186
- stylesheets: result.stylesheets,
1187
- unreadStylesheets: result.unreadStylesheets
1188
- });
1189
- if ("problems" in emitted) portProblems.set(analysis.route, emitted.problems);
1190
- else ports.set(analysis.route, emitted.port);
1191
- }
1192
- }
1193
- ({ screens, warnings } = resolveFarmMobileScreens({
1194
- ...screenOptions,
1195
- portFiles: new Map(
1196
- [...ports].map(([route, port]) => [
1197
- route,
1198
- path2.resolve(root, getFarmMobileOutputDirs(config.distDir).ports, port.entry)
1199
- ])
1200
- ),
1201
- portProblems,
1202
- analyzerPorts: new Set(
1203
- Object.values(result.routes).filter((route) => route.decision === "port").map((route) => route.route)
1204
- ),
1205
- analyzerBlockers: new Map(
1206
- Object.values(result.routes).map((route) => [route.route, route.blockers.map(describe)])
1207
- ),
1208
- analyzerTiers: new Map(
1209
- Object.values(result.routes).map((route) => [
1210
- route.route,
1211
- { tier: route.tier, nativeBlockers: route.nativeBlockers.map(describe) }
1212
- ])
1213
- )
1214
- }));
1215
- report = createFarmMobileNativeReport({
1216
- os: context.os,
1217
- engine: mobile.native.engine,
1218
- auto: mobile.native.auto,
1219
- routes,
1220
- screens,
1221
- analysis: result.routes
1222
- });
1223
- }
1224
- const nativeLayouts = Object.fromEntries(
1225
- [...scan.nativeLayouts].sort().map(([route, files]) => [
1226
- route,
1227
- Object.fromEntries(
1228
- Object.entries(files).map(([platform, file]) => [
1229
- platform,
1230
- path2.relative(root, file).split(path2.sep).join("/")
1231
- ])
1232
- )
1233
- ])
1234
- );
1235
- const server = options.server === void 0 ? void 0 : resolveFarmMobileServer(options.server, context, void 0, "the server URL");
1236
- if (!server && !mobile.server) {
1237
- throw new FarmMobileError(
1238
- `mobile (os: ${context.os}): server is required, such as server: "https://notes.example.com" (the web deployment the app loads pages from).`
1239
- );
1240
- }
1241
- const i18n = config.i18n && typeof config.i18n === "object" && config.i18n.enabled ? { locales: config.i18n.locales, routing: config.i18n.routing } : null;
1242
- const manifest = createFarmMobileRouteManifest(mobile, {
1243
- routes,
1244
- server,
1245
- basePath: config.basePath,
1246
- i18n,
1247
- screens,
1248
- ...options.shells ? { shells: options.shells } : {}
1249
- });
1250
- return {
1251
- context,
1252
- mobile,
1253
- manifest,
1254
- config,
1255
- screens,
1256
- warnings,
1257
- nativeLayouts,
1258
- pageFiles: scan.pageFiles,
1259
- ports: Object.fromEntries(ports),
1260
- ...report ? { report, analyzerStats } : {},
1261
- ...appModules ? { appModules } : {}
1262
- };
1263
- }
1264
- async function generateFarmMobileRoutes(options = {}) {
1265
- const app = await resolveFarmMobileApp(options);
1266
- const dirs = getFarmMobileOutputDirs(app.config.distDir);
1267
- const file = path2.resolve(app.config.root, dirs.routes);
1268
- await mkdir(path2.dirname(file), { recursive: true });
1269
- await writeFile(file, `${JSON.stringify(app.manifest, null, 2)}
1270
- `);
1271
- const portsDir = path2.resolve(app.config.root, dirs.ports);
1272
- await rm(portsDir, { recursive: true, force: true });
1273
- for (const port of Object.values(app.ports)) {
1274
- for (const [relative3, source] of Object.entries(port.files)) {
1275
- const target = path2.join(portsDir, relative3);
1276
- await mkdir(path2.dirname(target), { recursive: true });
1277
- await writeFile(target, source);
1278
- }
1279
- }
1280
- if (!app.report) return { ...app, file };
1281
- const reportFile = path2.resolve(app.config.root, dirs.report);
1282
- await writeFile(reportFile, `${JSON.stringify(app.report, null, 2)}
1283
- `);
1284
- const table = formatFarmMobileNativeReport(app.report, {
1285
- stats: app.analyzerStats,
1286
- file: path2.relative(app.config.root, reportFile).split(path2.sep).join("/")
1287
- });
1288
- return { ...app, file, reportFile, table };
1289
- }
1290
- export {
1291
- FARM_SHELL_PARAM_SEGMENT,
1292
- FARM_SHELL_RENDER_HEADER,
1293
- FARM_SHELL_ROUTE_HEADER,
1294
- FarmMobileError,
1295
- createFarmMobileContext,
1296
- createFarmMobileModuleId,
1297
- createFarmMobilePageShell,
1298
- createFarmMobileRouteManifest,
1299
- createFarmMobileRoutePattern,
1300
- createFarmMobileShellRenderPath,
1301
- formatFarmMobileNativeReport,
1302
- generateFarmMobileRoutes,
1303
- getFarmMobileOutputDirs,
1304
- getFarmMobilePageShellFile,
1305
- readFarmMobileClientManifest,
1306
- readFarmMobilePageExport,
1307
- renderFarmMobilePageShells,
1308
- resolveFarmMobileApp,
1309
- resolveFarmMobileBlock,
1310
- resolveFarmMobileConfig,
1311
- resolveFarmMobileScreens,
1312
- validateFarmMobileConfig
1313
- };