@farm.js/core 0.1.61 → 0.1.62

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