@farm.js/core 0.1.60 → 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 (265) hide show
  1. package/dist/{agent-mcp.d-C-2S9bnP.d.mts → agent-mcp.d-BKZ3UNbt.d.mts} +1 -1
  2. package/dist/{agent-mcp.d-SIoCUP1I.d.ts → agent-mcp.d-C1zr_nGS.d.ts} +1 -1
  3. package/dist/agent-runtime.cjs +3 -3
  4. package/dist/agent-runtime.d.mts +2 -2
  5. package/dist/agent-runtime.d.ts +2 -2
  6. package/dist/agent-runtime.mjs +2 -2
  7. package/dist/analyzer-2AHWJJR7.cjs +15 -0
  8. package/dist/analyzer-YESYU3GK.mjs +15 -0
  9. package/dist/api/route-manager.cjs +4 -4
  10. package/dist/api/route-manager.d.mts +4 -4
  11. package/dist/api/route-manager.d.ts +4 -4
  12. package/dist/api/route-manager.mjs +3 -3
  13. package/dist/api/runtime.cjs +3 -3
  14. package/dist/api/runtime.d.mts +3 -3
  15. package/dist/api/runtime.d.ts +3 -3
  16. package/dist/api/runtime.mjs +2 -2
  17. package/dist/api.cjs +5 -5
  18. package/dist/api.d.mts +4 -4
  19. package/dist/api.d.ts +4 -4
  20. package/dist/api.mjs +4 -4
  21. package/dist/{app-manifest.d-DrSAHskY.d.mts → app-manifest.d-BpvhfKRH.d.mts} +1 -1
  22. package/dist/{app-manifest.d-Tb3CJpL4.d.ts → app-manifest.d-ntch_bvA.d.ts} +1 -1
  23. package/dist/app-markdown.d.mts +3 -3
  24. package/dist/app-markdown.d.ts +3 -3
  25. package/dist/{app.d-CmWlYpZJ.d.ts → app.d-AE8_v3Db.d.ts} +4 -10
  26. package/dist/{app.d-D6QQM_kk.d.mts → app.d-CysWA_8v.d.mts} +4 -10
  27. package/dist/{chunk-FORSVMEJ.mjs → chunk-2CNKQC3G.mjs} +1 -1
  28. package/dist/{chunk-ZFUKPWFC.mjs → chunk-2JYBLE63.mjs} +416 -208
  29. package/dist/{chunk-QRX4JRBO.cjs → chunk-3CCAICF7.cjs} +5 -5
  30. package/dist/{chunk-ANHZ6SUL.mjs → chunk-3TXKFRSO.mjs} +1 -1
  31. package/dist/{chunk-BHJAYPYU.mjs → chunk-3UZVPO72.mjs} +1 -1
  32. package/dist/{chunk-6UUH4N4J.mjs → chunk-43V3ANPQ.mjs} +1 -1
  33. package/dist/chunk-4EBC7EMW.cjs +8 -0
  34. package/dist/{chunk-VZY7MAVS.cjs → chunk-4IHMHFQB.cjs} +27 -1
  35. package/dist/{chunk-FK25QSVC.cjs → chunk-4P5634G6.cjs} +2 -2
  36. package/dist/{chunk-4JTQPOKO.cjs → chunk-53ZCZ46B.cjs} +2 -2
  37. package/dist/{chunk-NQJDO7K7.cjs → chunk-545WJ5UG.cjs} +321 -37
  38. package/dist/{chunk-VU3MYZPO.mjs → chunk-5FE5YT2N.mjs} +26 -0
  39. package/dist/{chunk-A5BJKSZE.cjs → chunk-5IQ2ERQA.cjs} +2 -2
  40. package/dist/{chunk-SJRCWF4Z.mjs → chunk-5Y22WNTO.mjs} +2 -2
  41. package/dist/{chunk-U4BJKNIR.cjs → chunk-752XUZIM.cjs} +11 -6
  42. package/dist/{chunk-JBK7UJOI.cjs → chunk-AJB3DHN6.cjs} +2 -2
  43. package/dist/{chunk-YB44NKC2.cjs → chunk-AXVRUDMB.cjs} +2 -2
  44. package/dist/{chunk-LJVNMGE3.mjs → chunk-BM2LH2JM.mjs} +8 -3
  45. package/dist/{chunk-YI6FKTTN.cjs → chunk-BT4SEFLC.cjs} +261 -38
  46. package/dist/{chunk-LIFUPCXW.cjs → chunk-CFG4QERR.cjs} +13 -2
  47. package/dist/{chunk-3OWVWZ6R.cjs → chunk-CLFEQGET.cjs} +6 -6
  48. package/dist/{chunk-OZK2DS44.mjs → chunk-CROAFCMW.mjs} +1 -1
  49. package/dist/{chunk-2KTYMMWT.mjs → chunk-DPE53XWL.mjs} +1 -1
  50. package/dist/{chunk-3PX4AIXO.mjs → chunk-DQF3QLOH.mjs} +258 -35
  51. package/dist/{chunk-FSQMN2MQ.mjs → chunk-E46NXBNJ.mjs} +1 -1
  52. package/dist/{chunk-EGVC4LIG.mjs → chunk-E4RDMG3K.mjs} +1 -1
  53. package/dist/{chunk-X2CZTWQA.mjs → chunk-ECKQFEX2.mjs} +1 -1
  54. package/dist/{chunk-MTWXOEI4.cjs → chunk-EXXFSZOC.cjs} +246 -193
  55. package/dist/{chunk-UYSTTPYJ.cjs → chunk-GGNJAGGE.cjs} +643 -435
  56. package/dist/{chunk-XTG73QZA.cjs → chunk-GVOMPU3Y.cjs} +12 -8
  57. package/dist/{chunk-ZP32GNJQ.cjs → chunk-I32V5CZL.cjs} +14 -13
  58. package/dist/{chunk-37PYUEK5.mjs → chunk-IOF4KXMP.mjs} +7 -3
  59. package/dist/{chunk-ILMTRGBG.mjs → chunk-IQIKPKFP.mjs} +157 -45
  60. package/dist/{chunk-5JNUYGNF.cjs → chunk-IWRLV46X.cjs} +2 -2
  61. package/dist/{chunk-KPOMS5RO.cjs → chunk-J3GFOQOL.cjs} +3 -3
  62. package/dist/{chunk-NHD7BAKD.mjs → chunk-JCEFKP5M.mjs} +41 -25
  63. package/dist/{analyzer-LCSI3NSH.cjs → chunk-JEJQGZI7.cjs} +16 -13
  64. package/dist/{chunk-LB3DPQP6.cjs → chunk-JLDNXURZ.cjs} +23 -23
  65. package/dist/{chunk-VGG74PSU.cjs → chunk-L2JG337G.cjs} +2 -2
  66. package/dist/chunk-L4RTTTVE.mjs +8 -0
  67. package/dist/chunk-LEJDW34D.cjs +115 -0
  68. package/dist/{analyzer-22BEYV7S.mjs → chunk-LVWGURLD.mjs} +6 -3
  69. package/dist/{chunk-Z5A6CNV2.mjs → chunk-MK5E44WP.mjs} +1 -1
  70. package/dist/{chunk-T4EW7AAD.mjs → chunk-NKRZLQUK.mjs} +2 -2
  71. package/dist/{chunk-HPWB57PZ.mjs → chunk-NT3QDN2E.mjs} +1 -1
  72. package/dist/{chunk-T7I62A4C.mjs → chunk-OUWRNHTV.mjs} +81 -28
  73. package/dist/{chunk-GFT5AHAT.mjs → chunk-QDWMCFTH.mjs} +12 -1
  74. package/dist/{chunk-AER5I65K.mjs → chunk-QTD6EMN2.mjs} +1 -1
  75. package/dist/{chunk-UDJY2ZGY.cjs → chunk-RMUD75WT.cjs} +413 -301
  76. package/dist/chunk-RZNCMRD3.mjs +141 -0
  77. package/dist/{chunk-D7LTCK3U.mjs → chunk-SA7MLSP4.mjs} +11 -6
  78. package/dist/{chunk-2FRLSDBT.cjs → chunk-SM25ZC4S.cjs} +1 -1
  79. package/dist/{chunk-3YMLUNL2.cjs → chunk-SVXOCTQ2.cjs} +1 -1
  80. package/dist/{chunk-W2RZ73IU.cjs → chunk-SYXPWJ7N.cjs} +8 -8
  81. package/dist/{chunk-F6Y7ZAPQ.mjs → chunk-T46NNU4D.mjs} +6 -3
  82. package/dist/{chunk-IFHPDLIS.mjs → chunk-TGULJSHD.mjs} +5 -4
  83. package/dist/{chunk-JPIUGDK4.mjs → chunk-TZVUF5JJ.mjs} +1 -1
  84. package/dist/chunk-UWI3SJAK.cjs +141 -0
  85. package/dist/{chunk-JI5D7MXY.mjs → chunk-UYRI6U3P.mjs} +1 -1
  86. package/dist/{chunk-D2X5MUF5.cjs → chunk-V727H3RI.cjs} +47 -31
  87. package/dist/{chunk-ZMHAFH4R.mjs → chunk-VM7X5CKC.mjs} +2 -2
  88. package/dist/{chunk-VPTWKOCY.mjs → chunk-VWW4Q3BJ.mjs} +287 -6
  89. package/dist/{chunk-4P23B7DU.cjs → chunk-WKJQ2FJA.cjs} +3 -3
  90. package/dist/{chunk-HASX6DC7.cjs → chunk-WKPBIT5Q.cjs} +8 -8
  91. package/dist/{chunk-RAWWCDCT.cjs → chunk-WYAXRIYP.cjs} +3 -3
  92. package/dist/{chunk-3TL3AH25.cjs → chunk-X4K7TYN6.cjs} +12 -7
  93. package/dist/chunk-XCXHQBMM.mjs +115 -0
  94. package/dist/{chunk-DPJ66FSI.cjs → chunk-XX32BOMM.cjs} +7 -7
  95. package/dist/{chunk-2IAPKPEB.cjs → chunk-YN6BHOYY.cjs} +6 -6
  96. package/dist/{chunk-CBKRS3M4.cjs → chunk-Z7P2BTZ3.cjs} +7 -6
  97. package/dist/{chunk-SX7EECTS.mjs → chunk-ZBUAOGMY.mjs} +1 -1
  98. package/dist/{chunk-RPUJHJHE.mjs → chunk-ZFWYCVKS.mjs} +4 -3
  99. package/dist/{chunk-IFXSBJPN.cjs → chunk-ZVIEFTUA.cjs} +20 -17
  100. package/dist/{chunk-EXUONJYV.mjs → chunk-ZZI56IUY.mjs} +3 -3
  101. package/dist/{programmatic-routes-client.d-CLG2N1yH.d.ts → client-component.d-Bgt3x5Fu.d.ts} +18 -3
  102. package/dist/{programmatic-routes-client.d-CPbNqtIi.d.mts → client-component.d-BoqC2MLC.d.mts} +18 -3
  103. package/dist/{client-plugins.d-vXrbcfJ1.d.ts → client-plugins.d-BcqIy4au.d.ts} +1 -1
  104. package/dist/{client-plugins.d-CgQQ-EAv.d.mts → client-plugins.d-CWyYBxXf.d.mts} +1 -1
  105. package/dist/client-plugins.d.mts +2 -2
  106. package/dist/client-plugins.d.ts +2 -2
  107. package/dist/client.d.mts +7 -7
  108. package/dist/client.d.ts +7 -7
  109. package/dist/{config.d-DqZkLwef.d.ts → config.d-qt-mE8O5.d.mts} +6 -2
  110. package/dist/{config.d-DqZkLwef.d.mts → config.d-qt-mE8O5.d.ts} +6 -2
  111. package/dist/config.d.mts +2 -2
  112. package/dist/config.d.ts +2 -2
  113. package/dist/cron.cjs +12 -2
  114. package/dist/cron.d.mts +101 -3
  115. package/dist/cron.d.ts +101 -3
  116. package/dist/cron.mjs +11 -1
  117. package/dist/desktop.d.mts +3 -3
  118. package/dist/desktop.d.ts +3 -3
  119. package/dist/{devtools-KQZ6SRCJ.mjs → devtools-NUVXYG7I.mjs} +6 -6
  120. package/dist/{devtools-UF6JYHUN.cjs → devtools-SVRSGPNC.cjs} +8 -8
  121. package/dist/docs.cjs +9 -9
  122. package/dist/docs.d.mts +3 -3
  123. package/dist/docs.d.ts +3 -3
  124. package/dist/docs.mjs +8 -8
  125. package/dist/image/server.cjs +3 -3
  126. package/dist/image/server.mjs +2 -2
  127. package/dist/image/sharp.cjs +10 -10
  128. package/dist/image/sharp.mjs +2 -2
  129. package/dist/index.cjs +42 -27
  130. package/dist/{index.d-Dmfb7Kb_.d.mts → index.d-BDaiu2i5.d.mts} +1 -1
  131. package/dist/{index.d-DlCELfhf.d.ts → index.d-nAncqTXz.d.ts} +1 -1
  132. package/dist/index.d.mts +18 -18
  133. package/dist/index.d.ts +18 -18
  134. package/dist/index.mjs +42 -27
  135. package/dist/integrations.cjs +3 -3
  136. package/dist/integrations.d.mts +2 -2
  137. package/dist/integrations.d.ts +2 -2
  138. package/dist/integrations.mjs +2 -2
  139. package/dist/internal/app-markdown-runtime.d.mts +3 -3
  140. package/dist/internal/app-markdown-runtime.d.ts +3 -3
  141. package/dist/internal/build-runtime.cjs +27 -22
  142. package/dist/internal/build-runtime.d.mts +4 -4
  143. package/dist/internal/build-runtime.d.ts +4 -4
  144. package/dist/internal/build-runtime.mjs +26 -21
  145. package/dist/internal/cli-runtime.cjs +12 -11
  146. package/dist/internal/cli-runtime.mjs +11 -10
  147. package/dist/internal/client-error-overlay.cjs +4 -4
  148. package/dist/internal/client-error-overlay.mjs +1 -1
  149. package/dist/internal/client-runtime.d.mts +5 -5
  150. package/dist/internal/client-runtime.d.ts +5 -5
  151. package/dist/internal/compression-runtime.d.mts +2 -2
  152. package/dist/internal/compression-runtime.d.ts +2 -2
  153. package/dist/internal/config-runtime.cjs +8 -8
  154. package/dist/internal/config-runtime.d.mts +5 -5
  155. package/dist/internal/config-runtime.d.ts +5 -5
  156. package/dist/internal/config-runtime.mjs +7 -7
  157. package/dist/internal/form-actions.cjs +4 -4
  158. package/dist/internal/form-actions.mjs +3 -3
  159. package/dist/internal/infra-analytics-runtime.cjs +6 -6
  160. package/dist/internal/infra-analytics-runtime.mjs +4 -4
  161. package/dist/internal/metadata-image-runtime.cjs +3 -3
  162. package/dist/internal/metadata-image-runtime.mjs +2 -2
  163. package/dist/internal/native-server-fns.cjs +25 -0
  164. package/dist/internal/native-server-fns.d.mts +42 -0
  165. package/dist/internal/native-server-fns.d.ts +42 -0
  166. package/dist/internal/native-server-fns.mjs +25 -0
  167. package/dist/internal/product-telemetry-runtime.cjs +2 -2
  168. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  169. package/dist/internal/production-node-env.cjs +2 -2
  170. package/dist/internal/production-node-env.mjs +1 -1
  171. package/dist/internal/production-runtime.cjs +16 -10
  172. package/dist/internal/production-runtime.d.mts +39 -12
  173. package/dist/internal/production-runtime.d.ts +39 -12
  174. package/dist/internal/production-runtime.mjs +15 -9
  175. package/dist/internal/react-cache.cjs +51 -0
  176. package/dist/internal/react-cache.d.mts +3 -0
  177. package/dist/internal/react-cache.d.ts +3 -0
  178. package/dist/internal/react-cache.mjs +51 -0
  179. package/dist/markdown.d.mts +2 -2
  180. package/dist/markdown.d.ts +2 -2
  181. package/dist/middleware.cjs +3 -3
  182. package/dist/middleware.d.mts +4 -4
  183. package/dist/middleware.d.ts +4 -4
  184. package/dist/middleware.mjs +2 -2
  185. package/dist/mobile.d.mts +10 -4
  186. package/dist/mobile.d.ts +10 -4
  187. package/dist/{modules-VHD7BELU.mjs → modules-KOKD4XS6.mjs} +2 -2
  188. package/dist/modules-QTP7WJPD.cjs +13 -0
  189. package/dist/native-server-fn-handler-GLRHAYWV.mjs +28 -0
  190. package/dist/native-server-fn-handler-J5MYRXN6.cjs +28 -0
  191. package/dist/native-specs-5OLED4MM.cjs +15 -0
  192. package/dist/{native-specs-BD7HOTMJ.mjs → native-specs-LDV6IZ4N.mjs} +1 -1
  193. package/dist/{native-tree-VWNW2MQ2.mjs → native-tree-AS5L3ID3.mjs} +2 -2
  194. package/dist/{native-tree-6G5O53O3.cjs → native-tree-Z2WYUJEV.cjs} +3 -3
  195. package/dist/native.cjs +1 -1
  196. package/dist/native.d.mts +5 -5
  197. package/dist/native.d.ts +5 -5
  198. package/dist/native.mjs +1 -1
  199. package/dist/{navigation-delegate.d-JXx40JzR.d.ts → navigation-delegate.d-BbUHRXxG.d.ts} +1 -1
  200. package/dist/{navigation-delegate.d-CnOTWOyi.d.mts → navigation-delegate.d-CSCm8ZxL.d.mts} +1 -1
  201. package/dist/navigation.d.mts +5 -5
  202. package/dist/navigation.d.ts +5 -5
  203. package/dist/{nitro-FLN6DRGJ.mjs → nitro-DD4QCA66.mjs} +5 -5
  204. package/dist/{nitro-HXAZZQKY.cjs → nitro-VRDX2H4M.cjs} +8 -8
  205. package/dist/plugin.cjs +19 -18
  206. package/dist/plugin.d.mts +5 -5
  207. package/dist/plugin.d.ts +5 -5
  208. package/dist/plugin.mjs +18 -17
  209. package/dist/{port-WOOQ3V56.mjs → port-UFUZL6RI.mjs} +2 -2
  210. package/dist/{port-C6GBH4C6.cjs → port-VTLHPZOI.cjs} +10 -10
  211. package/dist/{production-runtime.d-CP5s6RuY.d.mts → production-runtime.d-CcQiDko5.d.mts} +1 -1
  212. package/dist/{production-runtime.d-N-cE3pmy.d.ts → production-runtime.d-DgT24A0f.d.ts} +1 -1
  213. package/dist/{render-plan.d-DZ-qjjdG.d.mts → render-plan.d-BH9WF-JZ.d.mts} +1 -1
  214. package/dist/{render-plan.d-B9lAP3uX.d.ts → render-plan.d-CyrX6MDs.d.ts} +1 -1
  215. package/dist/renderer-client.d.mts +5 -5
  216. package/dist/renderer-client.d.ts +5 -5
  217. package/dist/{request.d-BiicaNxb.d.ts → request.d-BB8M8bcD.d.ts} +1 -1
  218. package/dist/{request.d-DV0oeUit.d.mts → request.d-CUrPnCW7.d.mts} +1 -1
  219. package/dist/request.d.mts +3 -3
  220. package/dist/request.d.ts +3 -3
  221. package/dist/{route-rendering.d-BrIKA51A.d.mts → route-rendering.d-CYxlzaFm.d.mts} +1 -1
  222. package/dist/{route-rendering.d-Iss0C7GR.d.ts → route-rendering.d-DYqZMIf4.d.ts} +1 -1
  223. package/dist/{router.d-mNTbOGV_.d.mts → router.d-7o24CD8u.d.mts} +1 -1
  224. package/dist/{router.d-DjGn_al7.d.ts → router.d-DaKo507j.d.ts} +1 -1
  225. package/dist/{routes.d-BKSjHuH9.d.ts → routes.d-BknKQcTu.d.ts} +7 -1
  226. package/dist/{routes.d-qd8Qf4LG.d.mts → routes.d-D1IrO9KK.d.mts} +7 -1
  227. package/dist/routes.d.mts +2 -2
  228. package/dist/routes.d.ts +2 -2
  229. package/dist/{rsc-pipeline-SVLBTY7H.cjs → rsc-pipeline-OF2I7PCX.cjs} +8 -8
  230. package/dist/{rsc-pipeline-WBLBDQXA.mjs → rsc-pipeline-RFLHDAKD.mjs} +7 -7
  231. package/dist/{runtime-DGUOWSMF.cjs → runtime-LBTK62AD.cjs} +70 -47
  232. package/dist/{runtime-HFZTVNFF.mjs → runtime-M6UJCSLA.mjs} +38 -15
  233. package/dist/{runtime.d-Bm_4hP5T.d.ts → runtime.d-CN73a-IL.d.ts} +1 -1
  234. package/dist/{runtime.d-BNVbojF1.d.mts → runtime.d-CcNuzhX6.d.mts} +1 -1
  235. package/dist/server-action-security.cjs +3 -3
  236. package/dist/server-action-security.mjs +2 -2
  237. package/dist/server-fn.cjs +4 -4
  238. package/dist/server-fn.mjs +3 -3
  239. package/dist/server-plugins.d.mts +3 -3
  240. package/dist/server-plugins.d.ts +3 -3
  241. package/dist/server-query.cjs +5 -5
  242. package/dist/server-query.mjs +4 -4
  243. package/dist/server.cjs +38 -37
  244. package/dist/server.d.mts +10 -10
  245. package/dist/server.d.ts +10 -10
  246. package/dist/server.mjs +23 -22
  247. package/dist/{spa-router.d-DHDoXxDE.d.mts → spa-router.d-CNi77LZm.d.mts} +2 -2
  248. package/dist/{spa-router.d-DAtnNoBe.d.ts → spa-router.d-Cvgf5QP4.d.ts} +2 -2
  249. package/dist/testing.cjs +6 -6
  250. package/dist/testing.d.mts +2 -2
  251. package/dist/testing.d.ts +2 -2
  252. package/dist/testing.mjs +4 -4
  253. package/dist/{utils.d-DwZ-KLSB.d.ts → utils.d-C3H-14_Y.d.ts} +1 -1
  254. package/dist/{utils.d-uKZcKJk4.d.mts → utils.d-D8VfzZYn.d.mts} +1 -1
  255. package/dist/version.cjs +2 -2
  256. package/dist/version.mjs +1 -1
  257. package/dist/vite.cjs +21 -18
  258. package/dist/vite.d.mts +5 -5
  259. package/dist/vite.d.ts +5 -5
  260. package/dist/vite.mjs +20 -17
  261. package/dist/workflows.cjs +3 -3
  262. package/dist/workflows.mjs +2 -2
  263. package/package.json +12 -2
  264. package/dist/modules-WT5D3AWY.cjs +0 -13
  265. package/dist/native-specs-IQQRJOOW.cjs +0 -15
@@ -2,23 +2,23 @@
2
2
 
3
3
 
4
4
 
5
- var _chunkKPOMS5ROcjs = require('./chunk-KPOMS5RO.cjs');
6
- require('./chunk-3YMLUNL2.cjs');
5
+ var _chunkJ3GFOQOLcjs = require('./chunk-J3GFOQOL.cjs');
6
+ require('./chunk-SVXOCTQ2.cjs');
7
7
 
8
8
 
9
9
 
10
10
 
11
11
 
12
12
 
13
- var _chunk4JTQPOKOcjs = require('./chunk-4JTQPOKO.cjs');
13
+ var _chunk53ZCZ46Bcjs = require('./chunk-53ZCZ46B.cjs');
14
14
 
15
15
 
16
16
  var _chunkEFZGB7JCcjs = require('./chunk-EFZGB7JC.cjs');
17
- require('./chunk-RAWWCDCT.cjs');
17
+ require('./chunk-WYAXRIYP.cjs');
18
18
 
19
19
 
20
20
 
21
- var _chunkNQJDO7K7cjs = require('./chunk-NQJDO7K7.cjs');
21
+ var _chunk545WJ5UGcjs = require('./chunk-545WJ5UG.cjs');
22
22
  require('./chunk-OZC2JPW6.cjs');
23
23
 
24
24
 
@@ -30,7 +30,7 @@ require('./chunk-OZC2JPW6.cjs');
30
30
  var _chunkYKHRCY4Tcjs = require('./chunk-YKHRCY4T.cjs');
31
31
 
32
32
 
33
- var _chunkU4BJKNIRcjs = require('./chunk-U4BJKNIR.cjs');
33
+ var _chunk752XUZIMcjs = require('./chunk-752XUZIM.cjs');
34
34
  require('./chunk-5YPBFMBN.cjs');
35
35
 
36
36
 
@@ -53,13 +53,13 @@ require('./chunk-3EIPOTZV.cjs');
53
53
  require('./chunk-2HW5LWAH.cjs');
54
54
  require('./chunk-LT4VAF5Z.cjs');
55
55
  require('./chunk-DQJ2CIH7.cjs');
56
- require('./chunk-QRX4JRBO.cjs');
57
- require('./chunk-YI6FKTTN.cjs');
56
+ require('./chunk-3CCAICF7.cjs');
57
+ require('./chunk-BT4SEFLC.cjs');
58
58
  require('./chunk-2KMIJDY6.cjs');
59
- require('./chunk-FK25QSVC.cjs');
59
+ require('./chunk-4P5634G6.cjs');
60
60
  require('./chunk-SHIWRBFI.cjs');
61
61
  require('./chunk-WT6RAN2I.cjs');
62
- require('./chunk-ZP32GNJQ.cjs');
62
+ require('./chunk-I32V5CZL.cjs');
63
63
  require('./chunk-DUIP64BF.cjs');
64
64
  require('./chunk-ZOYKJBP5.cjs');
65
65
  require('./chunk-ZXK2EYQW.cjs');
@@ -78,7 +78,7 @@ require('./chunk-SUCDVKUB.cjs');
78
78
  require('./chunk-EVIWKPJV.cjs');
79
79
  require('./chunk-YIHRZBD7.cjs');
80
80
  require('./chunk-2OF5RPVU.cjs');
81
- require('./chunk-LIFUPCXW.cjs');
81
+ require('./chunk-CFG4QERR.cjs');
82
82
  require('./chunk-JYT7AN37.cjs');
83
83
  require('./chunk-HA7YRO53.cjs');
84
84
  require('./chunk-CA7DNRHO.cjs');
@@ -463,7 +463,7 @@ function resolveFarmMobileConfig(input, options, context) {
463
463
  budgets: { ...native.budgets }
464
464
  },
465
465
  shells: config.shells === true,
466
- modules: _chunkKPOMS5ROcjs.resolveFarmMobileModules.call(void 0, config.modules, options, fail)
466
+ modules: _chunkJ3GFOQOLcjs.resolveFarmMobileModules.call(void 0, config.modules, options, fail)
467
467
  };
468
468
  }
469
469
  function createFarmMobileContext(options) {
@@ -639,7 +639,27 @@ function resolveFarmMobileScreens(options) {
639
639
  presentation: _nullishCoalesce(_nullishCoalesce(_optionalChain([page, 'optionalAccess', _24 => _24.config, 'access', _25 => _25.presentation]), () => ( configPresentation)), () => ( "push")),
640
640
  prefetch: _nullishCoalesce(_optionalChain([page, 'optionalAccess', _26 => _26.config, 'access', _27 => _27.prefetch]), () => ( native.prefetch))
641
641
  };
642
- if (_optionalChain([page, 'optionalAccess', _28 => _28.config, 'access', _29 => _29.native]) === false) {
642
+ if (_optionalChain([options, 'access', _28 => _28.nativeOnlyRoutes, 'optionalAccess', _29 => _29.has, 'call', _30 => _30(route)])) {
643
+ if (tier === "web") {
644
+ throw new TypeError(
645
+ `${prefix}: ${where}.${tierKey} is "web", but "${route}" is native-only: it has ${relativeFile(root, _nullishCoalesce(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 = _nullishCoalesce(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 (_optionalChain([page, 'optionalAccess', _31 => _31.config, 'access', _32 => _32.native]) === false) {
643
663
  if (tier !== void 0 && tier !== "web") {
644
664
  warnings.push(
645
665
  `${page.file}: mobile.native false overrides ${where}.${tierKey} "${tier}"; the route stays web.`
@@ -655,7 +675,7 @@ function resolveFarmMobileScreens(options) {
655
675
  screens[route] = { screen: "web", source: "page", file: page.file, ...base };
656
676
  continue;
657
677
  }
658
- if (_optionalChain([page, 'optionalAccess', _30 => _30.config, 'access', _31 => _31.native]) === true) {
678
+ if (_optionalChain([page, 'optionalAccess', _33 => _33.config, 'access', _34 => _34.native]) === true) {
659
679
  if (tier !== void 0 && tier !== "native") {
660
680
  warnings.push(`${page.file}: mobile.native true overrides ${where}.${tierKey} "${tier}".`);
661
681
  }
@@ -670,7 +690,7 @@ function resolveFarmMobileScreens(options) {
670
690
  };
671
691
  continue;
672
692
  }
673
- const analysis = _optionalChain([options, 'access', _32 => _32.analyzerTiers, 'optionalAccess', _33 => _33.get, 'call', _34 => _34(route)]);
693
+ const analysis = _optionalChain([options, 'access', _35 => _35.analyzerTiers, 'optionalAccess', _36 => _36.get, 'call', _37 => _37(route)]);
674
694
  if (analysis && analysis.tier !== "native") {
675
695
  throw new TypeError(
676
696
  `${prefix}: ${page.file} sets mobile.native to true, but "${route}" cannot render as a native screen:
@@ -711,11 +731,11 @@ ${analysis.nativeBlockers.map((blocker) => ` - ${blocker}`).join("\n")}
711
731
  };
712
732
  continue;
713
733
  }
714
- if (_optionalChain([options, 'access', _35 => _35.analyzerTiers, 'optionalAccess', _36 => _36.get, 'call', _37 => _37(route), 'optionalAccess', _38 => _38.tier]) === "native") {
734
+ if (_optionalChain([options, 'access', _38 => _38.analyzerTiers, 'optionalAccess', _39 => _39.get, 'call', _40 => _40(route), 'optionalAccess', _41 => _41.tier]) === "native") {
715
735
  screens[route] = { screen: "server", source: "config", module, ...base };
716
736
  continue;
717
737
  }
718
- const portFile = _optionalChain([options, 'access', _39 => _39.portFiles, 'optionalAccess', _40 => _40.get, 'call', _41 => _41(route)]);
738
+ const portFile = _optionalChain([options, 'access', _42 => _42.portFiles, 'optionalAccess', _43 => _43.get, 'call', _44 => _44(route)]);
719
739
  if (nativeTier === "native" && portFile) {
720
740
  screens[route] = {
721
741
  screen: "native",
@@ -726,10 +746,10 @@ ${analysis.nativeBlockers.map((blocker) => ` - ${blocker}`).join("\n")}
726
746
  };
727
747
  continue;
728
748
  }
729
- const blockers = _optionalChain([options, 'access', _42 => _42.analyzerBlockers, 'optionalAccess', _43 => _43.get, 'call', _44 => _44(route)]);
730
- const problems = _optionalChain([options, 'access', _45 => _45.portProblems, 'optionalAccess', _46 => _46.get, 'call', _47 => _47(route)]);
749
+ const blockers = _optionalChain([options, 'access', _45 => _45.analyzerBlockers, 'optionalAccess', _46 => _46.get, 'call', _47 => _47(route)]);
750
+ const problems = _optionalChain([options, 'access', _48 => _48.portProblems, 'optionalAccess', _49 => _49.get, 'call', _50 => _50(route)]);
731
751
  warnings.push(
732
- `${where}.${tierKey} is "native", but "${route}" has no ${nativeTier === "native" ? "page.native.tsx" : platformFileName} and Farm cannot port it yet, so it stays web` + (_optionalChain([blockers, 'optionalAccess', _48 => _48.length]) ? `. The analyzer would keep it web: ${blockers.join("; ")}` : "") + (_optionalChain([problems, 'optionalAccess', _49 => _49.length]) ? `. The port would need: ${problems.join("; ")}` : "") + ". This fails the build once native screens ship."
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` + (_optionalChain([blockers, 'optionalAccess', _51 => _51.length]) ? `. The analyzer would keep it web: ${blockers.join("; ")}` : "") + (_optionalChain([problems, 'optionalAccess', _52 => _52.length]) ? `. The port would need: ${problems.join("; ")}` : "") + ". This fails the build once native screens ship."
733
753
  );
734
754
  screens[route] = { screen: "web", source: "config", requested: nativeTier, ...base };
735
755
  continue;
@@ -745,12 +765,12 @@ ${analysis.nativeBlockers.map((blocker) => ` - ${blocker}`).join("\n")}
745
765
  };
746
766
  continue;
747
767
  }
748
- if (native.auto === "on" && _optionalChain([options, 'access', _50 => _50.analyzerTiers, 'optionalAccess', _51 => _51.get, 'call', _52 => _52(route), 'optionalAccess', _53 => _53.tier]) === "native") {
768
+ if (native.auto === "on" && _optionalChain([options, 'access', _53 => _53.analyzerTiers, 'optionalAccess', _54 => _54.get, 'call', _55 => _55(route), 'optionalAccess', _56 => _56.tier]) === "native") {
749
769
  screens[route] = { screen: "server", source: "analyzer", module, ...base };
750
770
  continue;
751
771
  }
752
- if (native.auto === "on" && _optionalChain([options, 'access', _54 => _54.analyzerPorts, 'optionalAccess', _55 => _55.has, 'call', _56 => _56(route)])) {
753
- const portFile = _optionalChain([options, 'access', _57 => _57.portFiles, 'optionalAccess', _58 => _58.get, 'call', _59 => _59(route)]);
772
+ if (native.auto === "on" && _optionalChain([options, 'access', _57 => _57.analyzerPorts, 'optionalAccess', _58 => _58.has, 'call', _59 => _59(route)])) {
773
+ const portFile = _optionalChain([options, 'access', _60 => _60.portFiles, 'optionalAccess', _61 => _61.get, 'call', _62 => _62(route)]);
754
774
  if (nativeTier === "native" && portFile) {
755
775
  screens[route] = {
756
776
  screen: "native",
@@ -761,8 +781,8 @@ ${analysis.nativeBlockers.map((blocker) => ` - ${blocker}`).join("\n")}
761
781
  };
762
782
  continue;
763
783
  }
764
- const problems = _optionalChain([options, 'access', _60 => _60.portProblems, 'optionalAccess', _61 => _61.get, 'call', _62 => _62(route)]);
765
- if (_optionalChain([problems, 'optionalAccess', _63 => _63.length])) {
784
+ const problems = _optionalChain([options, 'access', _63 => _63.portProblems, 'optionalAccess', _64 => _64.get, 'call', _65 => _65(route)]);
785
+ if (_optionalChain([problems, 'optionalAccess', _66 => _66.length])) {
766
786
  warnings.push(
767
787
  `${prefix}: "${route}" is portable, but Farm cannot port it yet, so it stays web: ${problems.join("; ")}.`
768
788
  );
@@ -826,7 +846,7 @@ function readFarmMobilePageExport(source, file, parse, context) {
826
846
  const value = literalValue(declarator.init, fail);
827
847
  return validateFarmMobilePageConfig(value, file, context);
828
848
  }
829
- } else if (_optionalChain([declaration, 'access', _64 => _64.id, 'optionalAccess', _65 => _65.name]) === "mobile") {
849
+ } else if (_optionalChain([declaration, 'access', _67 => _67.id, 'optionalAccess', _68 => _68.name]) === "mobile") {
830
850
  fail('must be an object, such as export const mobile = { presentation: "modal" }');
831
851
  }
832
852
  }
@@ -899,6 +919,7 @@ function createFarmMobileRouteManifest(mobile, options) {
899
919
  screen: decision.screen,
900
920
  source: decision.source,
901
921
  ...decision.module ? { module: decision.module } : {},
922
+ ...decision.nativeOnly ? { nativeOnly: true } : {},
902
923
  ...decision.prefetch !== mobile.native.prefetch ? { prefetch: decision.prefetch } : {}
903
924
  };
904
925
  });
@@ -948,7 +969,7 @@ function createFarmMobilePageShell(html, options) {
948
969
  }
949
970
  if (options.os !== "ios" || !rel.includes("stylesheet")) return tag;
950
971
  const href = attribute(tag, "href");
951
- const css = href === void 0 ? void 0 : _optionalChain([options, 'access', _66 => _66.readStylesheet, 'optionalCall', _67 => _67(href)]);
972
+ const css = href === void 0 ? void 0 : _optionalChain([options, 'access', _69 => _69.readStylesheet, 'optionalCall', _70 => _70(href)]);
952
973
  return css === void 0 ? tag : inlineStyle(css, attribute(tag, "media"));
953
974
  });
954
975
  shell = shell.replace(REMOVED_LINE, "").replace(REMOVED_ALL, "");
@@ -968,22 +989,22 @@ async function renderFarmMobilePageShells(options) {
968
989
  const queue = [...new Set(options.routes)].sort();
969
990
  const render = async (route) => {
970
991
  const response = await options.fetch(
971
- `${options.basePath}${_chunk4JTQPOKOcjs.createFarmMobileShellRenderPath.call(void 0, route)}`,
992
+ `${options.basePath}${_chunk53ZCZ46Bcjs.createFarmMobileShellRenderPath.call(void 0, route)}`,
972
993
  {
973
994
  headers: {
974
995
  Accept: "text/html",
975
- [_chunk4JTQPOKOcjs.FARM_SHELL_HEADER]: options.os,
976
- [_chunk4JTQPOKOcjs.FARM_SHELL_RENDER_HEADER]: options.token,
977
- [_chunk4JTQPOKOcjs.FARM_SHELL_ROUTE_HEADER]: route
996
+ [_chunk53ZCZ46Bcjs.FARM_SHELL_HEADER]: options.os,
997
+ [_chunk53ZCZ46Bcjs.FARM_SHELL_RENDER_HEADER]: options.token,
998
+ [_chunk53ZCZ46Bcjs.FARM_SHELL_ROUTE_HEADER]: route
978
999
  }
979
1000
  }
980
1001
  );
981
1002
  const body = await response.text();
982
- if (response.headers.get(_chunk4JTQPOKOcjs.FARM_SHELL_RENDER_HEADER) === "none") {
1003
+ if (response.headers.get(_chunk53ZCZ46Bcjs.FARM_SHELL_RENDER_HEADER) === "none") {
983
1004
  skipped.push({ route, reason: body.trim() || "the server rendered no shell" });
984
1005
  return;
985
1006
  }
986
- const type = _nullishCoalesce(_optionalChain([response, 'access', _68 => _68.headers, 'access', _69 => _69.get, 'call', _70 => _70("content-type"), 'optionalAccess', _71 => _71.toLowerCase, 'call', _72 => _72()]), () => ( ""));
1007
+ const type = _nullishCoalesce(_optionalChain([response, 'access', _71 => _71.headers, 'access', _72 => _72.get, 'call', _73 => _73("content-type"), 'optionalAccess', _74 => _74.toLowerCase, 'call', _75 => _75()]), () => ( ""));
987
1008
  if (response.status !== 200 || !type.includes("text/html")) {
988
1009
  const location = response.headers.get("location");
989
1010
  skipped.push({
@@ -1069,11 +1090,11 @@ async function readPageExports(root, pageFiles, os) {
1069
1090
  return exports;
1070
1091
  }
1071
1092
  async function resolveFarmMobileApp(options = {}) {
1072
- const root = path2.resolve(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'access', _73 => _73.config, 'optionalAccess', _74 => _74.root]), () => ( options.root)), () => ( process.cwd())));
1093
+ const root = path2.resolve(_nullishCoalesce(_nullishCoalesce(_optionalChain([options, 'access', _76 => _76.config, 'optionalAccess', _77 => _77.root]), () => ( options.root)), () => ( process.cwd())));
1073
1094
  const command = _nullishCoalesce(options.command, () => ( "build"));
1074
1095
  const mode = command === "dev" ? "development" : "production";
1075
- const userConfig = options.userConfig === void 0 ? await _chunkNQJDO7K7cjs.loadConfig.call(void 0, root, void 0, mode) : options.userConfig;
1076
- if (_optionalChain([userConfig, 'optionalAccess', _75 => _75.mobile]) === void 0) {
1096
+ const userConfig = options.userConfig === void 0 ? await _chunk545WJ5UGcjs.loadConfig.call(void 0, root, void 0, mode) : options.userConfig;
1097
+ if (_optionalChain([userConfig, 'optionalAccess', _78 => _78.mobile]) === void 0) {
1077
1098
  throw new FarmMobileError(
1078
1099
  'farm.config.ts has no `mobile` entry. Add one, such as `mobile: { id: "com.example.notes", server: "https://notes.example.com" }`.'
1079
1100
  );
@@ -1086,18 +1107,18 @@ async function resolveFarmMobileApp(options = {}) {
1086
1107
  mode
1087
1108
  });
1088
1109
  const block = await resolveFarmMobileBlock(userConfig.mobile, context, options.cache);
1089
- const config = await _asyncNullishCoalesce(options.config, async () => ( await _chunkNQJDO7K7cjs.resolveConfig.call(void 0, { ...userConfig, root }, mode)));
1090
- const scan = await _chunkU4BJKNIRcjs.scanRoutePatterns.call(void 0, {
1110
+ const config = await _asyncNullishCoalesce(options.config, async () => ( await _chunk545WJ5UGcjs.resolveConfig.call(void 0, { ...userConfig, root }, mode)));
1111
+ const scan = await _chunk752XUZIMcjs.scanRoutePatterns.call(void 0, {
1091
1112
  root,
1092
1113
  srcDir: config.srcDir,
1093
1114
  sourceRoots: _chunk5Y2P454Ocjs.getFarmSourceRoots.call(void 0, config),
1094
1115
  componentExtensions: _chunkRD623KW4cjs.getFarmRendererComponentExtensions.call(void 0, config.renderer),
1095
1116
  platformFiles: true
1096
1117
  });
1097
- const routes = [...scan.pages].sort();
1118
+ const routes = [...scan.pages, ...scan.nativeOnlyPages].sort();
1098
1119
  let appModules;
1099
1120
  try {
1100
- appModules = _chunkKPOMS5ROcjs.scanFarmMobileAppModules.call(void 0, { root, srcDir: config.srcDir });
1121
+ appModules = _chunkJ3GFOQOLcjs.scanFarmMobileAppModules.call(void 0, { root, srcDir: config.srcDir });
1101
1122
  } catch (error) {
1102
1123
  throw Object.assign(
1103
1124
  new FarmMobileError(`mobile (os: ${context.os}): ${error.message}`),
@@ -1110,13 +1131,13 @@ async function resolveFarmMobileApp(options = {}) {
1110
1131
  root,
1111
1132
  srcDir: config.srcDir,
1112
1133
  routes,
1113
- appModules: _optionalChain([appModules, 'optionalAccess', _76 => _76.specs, 'access', _77 => _77.map, 'call', _78 => _78((spec) => spec.name)])
1134
+ appModules: _optionalChain([appModules, 'optionalAccess', _79 => _79.specs, 'access', _80 => _80.map, 'call', _81 => _81((spec) => spec.name)])
1114
1135
  },
1115
1136
  context
1116
1137
  );
1117
1138
  if (appModules && Object.values(mobile.modules).some((module) => module.web)) {
1118
1139
  try {
1119
- appModules = _chunkKPOMS5ROcjs.readFarmMobileWebModules.call(void 0, appModules, mobile.modules, { root });
1140
+ appModules = _chunkJ3GFOQOLcjs.readFarmMobileWebModules.call(void 0, appModules, mobile.modules, { root });
1120
1141
  } catch (error) {
1121
1142
  throw Object.assign(
1122
1143
  new FarmMobileError(`mobile (os: ${context.os}): ${error.message}`),
@@ -1138,6 +1159,7 @@ async function resolveFarmMobileApp(options = {}) {
1138
1159
  routes,
1139
1160
  mobile,
1140
1161
  nativePages: scan.nativePages,
1162
+ nativeOnlyRoutes: scan.nativeOnlyPages,
1141
1163
  pageExports
1142
1164
  };
1143
1165
  let { screens, warnings } = resolveFarmMobileScreens(screenOptions);
@@ -1152,14 +1174,15 @@ async function resolveFarmMobileApp(options = {}) {
1152
1174
  const decision = screens[route];
1153
1175
  return decision.source === "default" || decision.requested !== void 0;
1154
1176
  });
1155
- const portable = context.os === "android" && mobile.native.engine !== "platform" && (mobile.native.auto === "on" || candidates.some((route) => screens[route].requested === "native"));
1156
- const { analyzeFarmMobileRoutes } = await import("./analyzer-LCSI3NSH.cjs");
1177
+ const portable = mobile.native.engine !== "platform" && (mobile.native.auto === "on" || candidates.some((route) => screens[route].requested === "native"));
1178
+ const { analyzeFarmMobileRoutes } = await import("./analyzer-2AHWJJR7.cjs");
1157
1179
  const analyzed = await analyzeFarmMobileRoutes({
1158
1180
  root,
1159
1181
  srcDir: config.srcDir,
1160
1182
  routes: portable ? routes : candidates,
1161
1183
  pageFiles: scan.pageFiles,
1162
- serverComponents: _chunkBPNOYILCcjs.resolveFarmServerComponentsMode.call(void 0, _optionalChain([config, 'access', _79 => _79.experimental, 'optionalAccess', _80 => _80.serverComponents])) !== void 0,
1184
+ nativeOnlyRoutes: scan.nativeOnlyPages,
1185
+ serverComponents: _chunkBPNOYILCcjs.resolveFarmServerComponentsMode.call(void 0, _optionalChain([config, 'access', _82 => _82.experimental, 'optionalAccess', _83 => _83.serverComponents])) !== void 0,
1163
1186
  cacheFile: path2.resolve(root, getFarmMobileOutputDirs(config.distDir).analyzerCache)
1164
1187
  });
1165
1188
  analyzerStats = analyzed.stats;
@@ -1172,7 +1195,7 @@ async function resolveFarmMobileApp(options = {}) {
1172
1195
  )
1173
1196
  };
1174
1197
  if (portable) {
1175
- const { emitFarmMobilePort } = await import("./port-C6GBH4C6.cjs");
1198
+ const { emitFarmMobilePort } = await import("./port-VTLHPZOI.cjs");
1176
1199
  const portsDir = path2.resolve(root, getFarmMobileOutputDirs(config.distDir).ports);
1177
1200
  for (const analysis of Object.values(result.routes)) {
1178
1201
  const graph = result.graphs[analysis.route];
@@ -1310,4 +1333,4 @@ async function generateFarmMobileRoutes(options = {}) {
1310
1333
 
1311
1334
 
1312
1335
 
1313
- exports.FARM_SHELL_PARAM_SEGMENT = _chunk4JTQPOKOcjs.FARM_SHELL_PARAM_SEGMENT; exports.FARM_SHELL_RENDER_HEADER = _chunk4JTQPOKOcjs.FARM_SHELL_RENDER_HEADER; exports.FARM_SHELL_ROUTE_HEADER = _chunk4JTQPOKOcjs.FARM_SHELL_ROUTE_HEADER; exports.FarmMobileError = FarmMobileError; exports.createFarmMobileContext = createFarmMobileContext; exports.createFarmMobileModuleId = createFarmMobileModuleId; exports.createFarmMobilePageShell = createFarmMobilePageShell; exports.createFarmMobileRouteManifest = createFarmMobileRouteManifest; exports.createFarmMobileRoutePattern = createFarmMobileRoutePattern; exports.createFarmMobileShellRenderPath = _chunk4JTQPOKOcjs.createFarmMobileShellRenderPath; exports.formatFarmMobileNativeReport = formatFarmMobileNativeReport; exports.generateFarmMobileRoutes = generateFarmMobileRoutes; exports.getFarmMobileOutputDirs = getFarmMobileOutputDirs; exports.getFarmMobilePageShellFile = getFarmMobilePageShellFile; exports.readFarmMobileClientManifest = _chunkEFZGB7JCcjs.readFarmMobileClientManifest; exports.readFarmMobilePageExport = readFarmMobilePageExport; exports.renderFarmMobilePageShells = renderFarmMobilePageShells; exports.resolveFarmMobileApp = resolveFarmMobileApp; exports.resolveFarmMobileBlock = resolveFarmMobileBlock; exports.resolveFarmMobileConfig = resolveFarmMobileConfig; exports.resolveFarmMobileScreens = resolveFarmMobileScreens; exports.validateFarmMobileConfig = validateFarmMobileConfig;
1336
+ exports.FARM_SHELL_PARAM_SEGMENT = _chunk53ZCZ46Bcjs.FARM_SHELL_PARAM_SEGMENT; exports.FARM_SHELL_RENDER_HEADER = _chunk53ZCZ46Bcjs.FARM_SHELL_RENDER_HEADER; exports.FARM_SHELL_ROUTE_HEADER = _chunk53ZCZ46Bcjs.FARM_SHELL_ROUTE_HEADER; exports.FarmMobileError = FarmMobileError; exports.createFarmMobileContext = createFarmMobileContext; exports.createFarmMobileModuleId = createFarmMobileModuleId; exports.createFarmMobilePageShell = createFarmMobilePageShell; exports.createFarmMobileRouteManifest = createFarmMobileRouteManifest; exports.createFarmMobileRoutePattern = createFarmMobileRoutePattern; exports.createFarmMobileShellRenderPath = _chunk53ZCZ46Bcjs.createFarmMobileShellRenderPath; exports.formatFarmMobileNativeReport = formatFarmMobileNativeReport; exports.generateFarmMobileRoutes = generateFarmMobileRoutes; exports.getFarmMobileOutputDirs = getFarmMobileOutputDirs; exports.getFarmMobilePageShellFile = getFarmMobilePageShellFile; exports.readFarmMobileClientManifest = _chunkEFZGB7JCcjs.readFarmMobileClientManifest; exports.readFarmMobilePageExport = readFarmMobilePageExport; exports.renderFarmMobilePageShells = renderFarmMobilePageShells; exports.resolveFarmMobileApp = resolveFarmMobileApp; exports.resolveFarmMobileBlock = resolveFarmMobileBlock; exports.resolveFarmMobileConfig = resolveFarmMobileConfig; exports.resolveFarmMobileScreens = resolveFarmMobileScreens; exports.validateFarmMobileConfig = validateFarmMobileConfig;
@@ -2,23 +2,23 @@ import {
2
2
  readFarmMobileWebModules,
3
3
  resolveFarmMobileModules,
4
4
  scanFarmMobileAppModules
5
- } from "./chunk-SJRCWF4Z.mjs";
6
- import "./chunk-6UUH4N4J.mjs";
5
+ } from "./chunk-5Y22WNTO.mjs";
6
+ import "./chunk-43V3ANPQ.mjs";
7
7
  import {
8
8
  FARM_SHELL_HEADER,
9
9
  FARM_SHELL_PARAM_SEGMENT,
10
10
  FARM_SHELL_RENDER_HEADER,
11
11
  FARM_SHELL_ROUTE_HEADER,
12
12
  createFarmMobileShellRenderPath
13
- } from "./chunk-JI5D7MXY.mjs";
13
+ } from "./chunk-UYRI6U3P.mjs";
14
14
  import {
15
15
  readFarmMobileClientManifest
16
16
  } from "./chunk-ZNXTU4YH.mjs";
17
- import "./chunk-EGVC4LIG.mjs";
17
+ import "./chunk-E4RDMG3K.mjs";
18
18
  import {
19
19
  loadConfig,
20
20
  resolveConfig
21
- } from "./chunk-VPTWKOCY.mjs";
21
+ } from "./chunk-VWW4Q3BJ.mjs";
22
22
  import "./chunk-VISQDC6W.mjs";
23
23
  import {
24
24
  createPlatformBlockChecker,
@@ -30,7 +30,7 @@ import {
30
30
  } from "./chunk-UB7RVEMX.mjs";
31
31
  import {
32
32
  scanRoutePatterns
33
- } from "./chunk-D7LTCK3U.mjs";
33
+ } from "./chunk-SA7MLSP4.mjs";
34
34
  import "./chunk-Q5B4LNON.mjs";
35
35
  import {
36
36
  resolveFarmServerComponentsMode
@@ -53,13 +53,13 @@ import "./chunk-N33DLJBC.mjs";
53
53
  import "./chunk-UIJOLBUL.mjs";
54
54
  import "./chunk-YSXTNSXS.mjs";
55
55
  import "./chunk-VFXE6NWR.mjs";
56
- import "./chunk-JPIUGDK4.mjs";
57
- import "./chunk-3PX4AIXO.mjs";
56
+ import "./chunk-TZVUF5JJ.mjs";
57
+ import "./chunk-DQF3QLOH.mjs";
58
58
  import "./chunk-WXFY5JIY.mjs";
59
- import "./chunk-FSQMN2MQ.mjs";
59
+ import "./chunk-E46NXBNJ.mjs";
60
60
  import "./chunk-YP7YO3S3.mjs";
61
61
  import "./chunk-YWPNIYUP.mjs";
62
- import "./chunk-IFHPDLIS.mjs";
62
+ import "./chunk-TGULJSHD.mjs";
63
63
  import "./chunk-H4WUWLQR.mjs";
64
64
  import "./chunk-M53MIIXY.mjs";
65
65
  import "./chunk-46P5KNTE.mjs";
@@ -78,7 +78,7 @@ import "./chunk-H3ASZDT7.mjs";
78
78
  import "./chunk-2DA7CLY7.mjs";
79
79
  import "./chunk-CO6UYM2D.mjs";
80
80
  import "./chunk-2I6PUKWJ.mjs";
81
- import "./chunk-GFT5AHAT.mjs";
81
+ import "./chunk-QDWMCFTH.mjs";
82
82
  import "./chunk-D2LCAV6L.mjs";
83
83
  import "./chunk-GYMGK467.mjs";
84
84
  import "./chunk-GUZC226X.mjs";
@@ -639,6 +639,26 @@ function resolveFarmMobileScreens(options) {
639
639
  presentation: page?.config.presentation ?? configPresentation ?? "push",
640
640
  prefetch: page?.config.prefetch ?? native.prefetch
641
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
+ }
642
662
  if (page?.config.native === false) {
643
663
  if (tier !== void 0 && tier !== "web") {
644
664
  warnings.push(
@@ -899,6 +919,7 @@ function createFarmMobileRouteManifest(mobile, options) {
899
919
  screen: decision.screen,
900
920
  source: decision.source,
901
921
  ...decision.module ? { module: decision.module } : {},
922
+ ...decision.nativeOnly ? { nativeOnly: true } : {},
902
923
  ...decision.prefetch !== mobile.native.prefetch ? { prefetch: decision.prefetch } : {}
903
924
  };
904
925
  });
@@ -1094,7 +1115,7 @@ async function resolveFarmMobileApp(options = {}) {
1094
1115
  componentExtensions: getFarmRendererComponentExtensions(config.renderer),
1095
1116
  platformFiles: true
1096
1117
  });
1097
- const routes = [...scan.pages].sort();
1118
+ const routes = [...scan.pages, ...scan.nativeOnlyPages].sort();
1098
1119
  let appModules;
1099
1120
  try {
1100
1121
  appModules = scanFarmMobileAppModules({ root, srcDir: config.srcDir });
@@ -1138,6 +1159,7 @@ async function resolveFarmMobileApp(options = {}) {
1138
1159
  routes,
1139
1160
  mobile,
1140
1161
  nativePages: scan.nativePages,
1162
+ nativeOnlyRoutes: scan.nativeOnlyPages,
1141
1163
  pageExports
1142
1164
  };
1143
1165
  let { screens, warnings } = resolveFarmMobileScreens(screenOptions);
@@ -1152,13 +1174,14 @@ async function resolveFarmMobileApp(options = {}) {
1152
1174
  const decision = screens[route];
1153
1175
  return decision.source === "default" || decision.requested !== void 0;
1154
1176
  });
1155
- const portable = context.os === "android" && mobile.native.engine !== "platform" && (mobile.native.auto === "on" || candidates.some((route) => screens[route].requested === "native"));
1156
- const { analyzeFarmMobileRoutes } = await import("./analyzer-22BEYV7S.mjs");
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");
1157
1179
  const analyzed = await analyzeFarmMobileRoutes({
1158
1180
  root,
1159
1181
  srcDir: config.srcDir,
1160
1182
  routes: portable ? routes : candidates,
1161
1183
  pageFiles: scan.pageFiles,
1184
+ nativeOnlyRoutes: scan.nativeOnlyPages,
1162
1185
  serverComponents: resolveFarmServerComponentsMode(config.experimental?.serverComponents) !== void 0,
1163
1186
  cacheFile: path2.resolve(root, getFarmMobileOutputDirs(config.distDir).analyzerCache)
1164
1187
  });
@@ -1172,7 +1195,7 @@ async function resolveFarmMobileApp(options = {}) {
1172
1195
  )
1173
1196
  };
1174
1197
  if (portable) {
1175
- const { emitFarmMobilePort } = await import("./port-WOOQ3V56.mjs");
1198
+ const { emitFarmMobilePort } = await import("./port-UFUZL6RI.mjs");
1176
1199
  const portsDir = path2.resolve(root, getFarmMobileOutputDirs(config.distDir).ports);
1177
1200
  for (const analysis of Object.values(result.routes)) {
1178
1201
  const graph = result.graphs[analysis.route];
@@ -1,7 +1,7 @@
1
1
  import { f as EndpointFailure } from './endpoint.d-BgHn0lhl.js';
2
2
  import { c as PluginRoutesFactory } from './route.d-DBTEqifW.js';
3
3
  import { b as APIRouteParams, A as APIRouteMatch } from './route-pattern.d-CVsVbq5n.js';
4
- import './client-plugins.d-vXrbcfJ1.js';
4
+ import './client-plugins.d-BcqIy4au.js';
5
5
 
6
6
  interface MountedRoute {
7
7
  path: string;
@@ -1,7 +1,7 @@
1
1
  import { f as EndpointFailure } from './endpoint.d-BkMSCRf6.mjs';
2
2
  import { c as PluginRoutesFactory } from './route.d-BaVH3V0w.mjs';
3
3
  import { b as APIRouteParams, A as APIRouteMatch } from './route-pattern.d-CVsVbq5n.mjs';
4
- import './client-plugins.d-CgQQ-EAv.mjs';
4
+ import './client-plugins.d-CWyYBxXf.mjs';
5
5
 
6
6
  interface MountedRoute {
7
7
  path: string;
@@ -10,9 +10,9 @@
10
10
 
11
11
 
12
12
 
13
- var _chunkFK25QSVCcjs = require('./chunk-FK25QSVC.cjs');
13
+ var _chunk4P5634G6cjs = require('./chunk-4P5634G6.cjs');
14
14
  require('./chunk-FEFCISOX.cjs');
15
- require('./chunk-LIFUPCXW.cjs');
15
+ require('./chunk-CFG4QERR.cjs');
16
16
  require('./chunk-JYT7AN37.cjs');
17
17
  require('./chunk-UZCMMJJT.cjs');
18
18
  require('./chunk-YTVSWXEZ.cjs');
@@ -29,4 +29,4 @@ require('./chunk-BTZ5O6VM.cjs');
29
29
 
30
30
 
31
31
 
32
- exports.DEFAULT_SERVER_ACTION_BODY_SIZE_LIMIT = _chunkFK25QSVCcjs.DEFAULT_SERVER_ACTION_BODY_SIZE_LIMIT; exports.ServerActionRequestError = _chunkFK25QSVCcjs.ServerActionRequestError; exports.createServerActionRequestErrorResponse = _chunkFK25QSVCcjs.createServerActionRequestErrorResponse; exports.getServerActionExecutionContext = _chunkFK25QSVCcjs.getServerActionExecutionContext; exports.getServerActionInvalidations = _chunkFK25QSVCcjs.getServerActionInvalidations; exports.getServerActionSignal = _chunkFK25QSVCcjs.getServerActionSignal; exports.prepareServerActionRequest = _chunkFK25QSVCcjs.prepareServerActionRequest; exports.resolveServerActionsConfig = _chunkFK25QSVCcjs.resolveServerActionsConfig; exports.runWithServerActionRequest = _chunkFK25QSVCcjs.runWithServerActionRequest; exports.sanitizeServerActionError = _chunkFK25QSVCcjs.sanitizeServerActionError; exports.validateServerActionRequest = _chunkFK25QSVCcjs.validateServerActionRequest;
32
+ exports.DEFAULT_SERVER_ACTION_BODY_SIZE_LIMIT = _chunk4P5634G6cjs.DEFAULT_SERVER_ACTION_BODY_SIZE_LIMIT; exports.ServerActionRequestError = _chunk4P5634G6cjs.ServerActionRequestError; exports.createServerActionRequestErrorResponse = _chunk4P5634G6cjs.createServerActionRequestErrorResponse; exports.getServerActionExecutionContext = _chunk4P5634G6cjs.getServerActionExecutionContext; exports.getServerActionInvalidations = _chunk4P5634G6cjs.getServerActionInvalidations; exports.getServerActionSignal = _chunk4P5634G6cjs.getServerActionSignal; exports.prepareServerActionRequest = _chunk4P5634G6cjs.prepareServerActionRequest; exports.resolveServerActionsConfig = _chunk4P5634G6cjs.resolveServerActionsConfig; exports.runWithServerActionRequest = _chunk4P5634G6cjs.runWithServerActionRequest; exports.sanitizeServerActionError = _chunk4P5634G6cjs.sanitizeServerActionError; exports.validateServerActionRequest = _chunk4P5634G6cjs.validateServerActionRequest;
@@ -10,9 +10,9 @@ import {
10
10
  runWithServerActionRequest,
11
11
  sanitizeServerActionError,
12
12
  validateServerActionRequest
13
- } from "./chunk-FSQMN2MQ.mjs";
13
+ } from "./chunk-E46NXBNJ.mjs";
14
14
  import "./chunk-QSTRBKHZ.mjs";
15
- import "./chunk-GFT5AHAT.mjs";
15
+ import "./chunk-QDWMCFTH.mjs";
16
16
  import "./chunk-D2LCAV6L.mjs";
17
17
  import "./chunk-AZQXXXDX.mjs";
18
18
  import "./chunk-AYP2YFVN.mjs";
@@ -8,18 +8,18 @@
8
8
 
9
9
 
10
10
 
11
- var _chunk2IAPKPEBcjs = require('./chunk-2IAPKPEB.cjs');
11
+ var _chunkYN6BHOYYcjs = require('./chunk-YN6BHOYY.cjs');
12
12
 
13
13
 
14
14
 
15
15
 
16
16
 
17
17
 
18
- var _chunkFK25QSVCcjs = require('./chunk-FK25QSVC.cjs');
18
+ var _chunk4P5634G6cjs = require('./chunk-4P5634G6.cjs');
19
19
  require('./chunk-DMAP4RND.cjs');
20
20
  require('./chunk-FEFCISOX.cjs');
21
21
  require('./chunk-EVIWKPJV.cjs');
22
- require('./chunk-LIFUPCXW.cjs');
22
+ require('./chunk-CFG4QERR.cjs');
23
23
  require('./chunk-JYT7AN37.cjs');
24
24
  require('./chunk-AOKXITZ6.cjs');
25
25
  require('./chunk-DXUXQP2T.cjs');
@@ -43,4 +43,4 @@ require('./chunk-BTZ5O6VM.cjs');
43
43
 
44
44
 
45
45
 
46
- exports.FARM_SERVER_FN_FAILURE_SYMBOL = _chunkFK25QSVCcjs.FARM_SERVER_FN_FAILURE_SYMBOL; exports.FARM_SERVER_FN_SYMBOL = _chunk2IAPKPEBcjs.FARM_SERVER_FN_SYMBOL; exports.ServerActionError = _chunkFK25QSVCcjs.ServerActionError; exports.ServerFnFailure = _chunkFK25QSVCcjs.ServerFnFailure; exports._attachServerFunctionDescriptor = _chunk2IAPKPEBcjs._attachServerFunctionDescriptor; exports._describeServerFunction = _chunk2IAPKPEBcjs._describeServerFunction; exports._invokeServerFunction = _chunk2IAPKPEBcjs._invokeServerFunction; exports._parseServerFnSchema = _chunk2IAPKPEBcjs._parseServerFnSchema; exports._runServerFunctionForCaller = _chunk2IAPKPEBcjs._runServerFunctionForCaller; exports.createServerFn = _chunk2IAPKPEBcjs.createServerFn; exports.createServerFnTransportError = _chunkFK25QSVCcjs.createServerFnTransportError; exports.createServerFunctionDescriptor = _chunk2IAPKPEBcjs.createServerFunctionDescriptor; exports.createServerMiddleware = _chunk2IAPKPEBcjs.createServerMiddleware; exports.isServerFnFailure = _chunkFK25QSVCcjs.isServerFnFailure;
46
+ exports.FARM_SERVER_FN_FAILURE_SYMBOL = _chunk4P5634G6cjs.FARM_SERVER_FN_FAILURE_SYMBOL; exports.FARM_SERVER_FN_SYMBOL = _chunkYN6BHOYYcjs.FARM_SERVER_FN_SYMBOL; exports.ServerActionError = _chunk4P5634G6cjs.ServerActionError; exports.ServerFnFailure = _chunk4P5634G6cjs.ServerFnFailure; exports._attachServerFunctionDescriptor = _chunkYN6BHOYYcjs._attachServerFunctionDescriptor; exports._describeServerFunction = _chunkYN6BHOYYcjs._describeServerFunction; exports._invokeServerFunction = _chunkYN6BHOYYcjs._invokeServerFunction; exports._parseServerFnSchema = _chunkYN6BHOYYcjs._parseServerFnSchema; exports._runServerFunctionForCaller = _chunkYN6BHOYYcjs._runServerFunctionForCaller; exports.createServerFn = _chunkYN6BHOYYcjs.createServerFn; exports.createServerFnTransportError = _chunk4P5634G6cjs.createServerFnTransportError; exports.createServerFunctionDescriptor = _chunkYN6BHOYYcjs.createServerFunctionDescriptor; exports.createServerMiddleware = _chunkYN6BHOYYcjs.createServerMiddleware; exports.isServerFnFailure = _chunk4P5634G6cjs.isServerFnFailure;
@@ -8,18 +8,18 @@ import {
8
8
  createServerFn,
9
9
  createServerFunctionDescriptor,
10
10
  createServerMiddleware
11
- } from "./chunk-AER5I65K.mjs";
11
+ } from "./chunk-QTD6EMN2.mjs";
12
12
  import {
13
13
  FARM_SERVER_FN_FAILURE_SYMBOL,
14
14
  ServerActionError,
15
15
  ServerFnFailure,
16
16
  createServerFnTransportError,
17
17
  isServerFnFailure
18
- } from "./chunk-FSQMN2MQ.mjs";
18
+ } from "./chunk-E46NXBNJ.mjs";
19
19
  import "./chunk-RLEALQEN.mjs";
20
20
  import "./chunk-QSTRBKHZ.mjs";
21
21
  import "./chunk-2DA7CLY7.mjs";
22
- import "./chunk-GFT5AHAT.mjs";
22
+ import "./chunk-QDWMCFTH.mjs";
23
23
  import "./chunk-D2LCAV6L.mjs";
24
24
  import "./chunk-M25IONJP.mjs";
25
25
  import "./chunk-GLOICKDO.mjs";
@@ -1,5 +1,5 @@
1
- import { eF as RedirectConfig, s as FarmRequest, t as FarmResponse, u as FarmPluginContext, F as FarmPlugin, ef as HeaderConfig, eO as RewriteConfig } from './client-plugins.d-CgQQ-EAv.mjs';
2
- export { a4 as FarmPluginLifecycle, ad as FarmPluginRuntimeEndpoint, ae as FarmPluginRuntimeEndpointEvent, ao as FarmRequestPluginContext, ap as FarmRequestStore } from './client-plugins.d-CgQQ-EAv.mjs';
1
+ import { eF as RedirectConfig, s as FarmRequest, t as FarmResponse, u as FarmPluginContext, F as FarmPlugin, ef as HeaderConfig, eO as RewriteConfig } from './client-plugins.d-CWyYBxXf.mjs';
2
+ export { a4 as FarmPluginLifecycle, ad as FarmPluginRuntimeEndpoint, ae as FarmPluginRuntimeEndpointEvent, ao as FarmRequestPluginContext, ap as FarmRequestStore } from './client-plugins.d-CWyYBxXf.mjs';
3
3
  import { R as ResolvedFarmI18nConfig } from './types.d-C41ePjvP.mjs';
4
4
  export { createCompressionPlugin } from './internal/compression-runtime.mjs';
5
5
  import './lifecycle.d-C2aLBOwu.mjs';
@@ -30,7 +30,7 @@ import './layers.d-CcS42OGR.mjs';
30
30
  import 'rolldown/utils';
31
31
  import 'rolldown';
32
32
  import './image-config.d-CeDgNyX4.mjs';
33
- import './config.d-DqZkLwef.mjs';
33
+ import './config.d-qt-mE8O5.mjs';
34
34
  import './types.d-DQnyD3VD.mjs';
35
35
  import './font.mjs';
36
36
 
@@ -1,5 +1,5 @@
1
- import { eF as RedirectConfig, s as FarmRequest, t as FarmResponse, u as FarmPluginContext, F as FarmPlugin, ef as HeaderConfig, eO as RewriteConfig } from './client-plugins.d-vXrbcfJ1.js';
2
- export { a4 as FarmPluginLifecycle, ad as FarmPluginRuntimeEndpoint, ae as FarmPluginRuntimeEndpointEvent, ao as FarmRequestPluginContext, ap as FarmRequestStore } from './client-plugins.d-vXrbcfJ1.js';
1
+ import { eF as RedirectConfig, s as FarmRequest, t as FarmResponse, u as FarmPluginContext, F as FarmPlugin, ef as HeaderConfig, eO as RewriteConfig } from './client-plugins.d-BcqIy4au.js';
2
+ export { a4 as FarmPluginLifecycle, ad as FarmPluginRuntimeEndpoint, ae as FarmPluginRuntimeEndpointEvent, ao as FarmRequestPluginContext, ap as FarmRequestStore } from './client-plugins.d-BcqIy4au.js';
3
3
  import { R as ResolvedFarmI18nConfig } from './types.d-C41ePjvP.js';
4
4
  export { createCompressionPlugin } from './internal/compression-runtime.js';
5
5
  import './lifecycle.d-C2aLBOwu.js';
@@ -30,7 +30,7 @@ import './layers.d-CcS42OGR.js';
30
30
  import 'rolldown/utils';
31
31
  import 'rolldown';
32
32
  import './image-config.d-CeDgNyX4.js';
33
- import './config.d-DqZkLwef.js';
33
+ import './config.d-qt-mE8O5.js';
34
34
  import './types.d-DQnyD3VD.js';
35
35
  import './font.js';
36
36