@farm.js/core 0.1.51-beta.3 → 0.1.60

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 (320) hide show
  1. package/dist/{agent-mcp-handler-7JSKGSOW.mjs → agent-mcp-handler-7QMX2LUY.mjs} +7 -7
  2. package/dist/agent-mcp-handler-OV4WRFBL.cjs +18 -0
  3. package/dist/{agent-mcp.d-BJKChOrO.d.mts → agent-mcp.d-C-2S9bnP.d.mts} +1 -1
  4. package/dist/{agent-mcp.d-BAR9njbJ.d.ts → agent-mcp.d-SIoCUP1I.d.ts} +1 -1
  5. package/dist/agent-runtime.cjs +5 -5
  6. package/dist/agent-runtime.d.mts +2 -2
  7. package/dist/agent-runtime.d.ts +2 -2
  8. package/dist/agent-runtime.mjs +4 -4
  9. package/dist/{analyzer-OTPEWH5W.mjs → analyzer-22BEYV7S.mjs} +116 -13
  10. package/dist/{analyzer-TSQXZCZN.cjs → analyzer-LCSI3NSH.cjs} +123 -20
  11. package/dist/api/client.cjs +5 -4
  12. package/dist/api/client.d.mts +1 -1
  13. package/dist/api/client.d.ts +1 -1
  14. package/dist/api/client.mjs +3 -2
  15. package/dist/api/client.native.cjs +45 -0
  16. package/dist/api/client.native.d.mts +23 -0
  17. package/dist/api/client.native.d.ts +23 -0
  18. package/dist/api/client.native.mjs +45 -0
  19. package/dist/api/route-manager.cjs +7 -7
  20. package/dist/api/route-manager.d.mts +4 -4
  21. package/dist/api/route-manager.d.ts +4 -4
  22. package/dist/api/route-manager.mjs +6 -6
  23. package/dist/api/runtime.cjs +5 -5
  24. package/dist/api/runtime.d.mts +3 -3
  25. package/dist/api/runtime.d.ts +3 -3
  26. package/dist/api/runtime.mjs +4 -4
  27. package/dist/{api-client.d-CeA6tNA6.d.mts → api-client.d-BNLXNCXJ.d.mts} +1 -1
  28. package/dist/{api-client.d-BWcqZciH.d.ts → api-client.d-ddQBNGtu.d.ts} +1 -1
  29. package/dist/api.cjs +11 -11
  30. package/dist/api.d.mts +5 -5
  31. package/dist/api.d.ts +5 -5
  32. package/dist/api.mjs +10 -10
  33. package/dist/{app-manifest.d-DEQNnNhV.d.mts → app-manifest.d-DrSAHskY.d.mts} +1 -1
  34. package/dist/{app-manifest.d-BLFbaqx8.d.ts → app-manifest.d-Tb3CJpL4.d.ts} +1 -1
  35. package/dist/app-markdown.cjs +7 -7
  36. package/dist/app-markdown.d.mts +3 -3
  37. package/dist/app-markdown.d.ts +3 -3
  38. package/dist/app-markdown.mjs +6 -6
  39. package/dist/{app.d-CNPaUYaa.d.ts → app.d-CmWlYpZJ.d.ts} +9 -4
  40. package/dist/{app.d-CT7xDkj2.d.mts → app.d-D6QQM_kk.d.mts} +9 -4
  41. package/dist/{chunk-SN5VSO3Q.mjs → chunk-25T5VXOE.mjs} +7 -9
  42. package/dist/{chunk-OAMUSC7H.cjs → chunk-2FRLSDBT.cjs} +1 -1
  43. package/dist/{chunk-LM2YOGDK.mjs → chunk-2I6PUKWJ.mjs} +1 -1
  44. package/dist/{chunk-ZD2VKAUI.mjs → chunk-2KTYMMWT.mjs} +1 -1
  45. package/dist/{chunk-B5BBTPJQ.cjs → chunk-2OF5RPVU.cjs} +14 -14
  46. package/dist/{chunk-UQF3OJVE.mjs → chunk-37PYUEK5.mjs} +173 -29
  47. package/dist/{chunk-VSLM6BHX.cjs → chunk-3OJNNCDL.cjs} +9 -9
  48. package/dist/{chunk-X3JNB2TB.mjs → chunk-3PX4AIXO.mjs} +36 -5
  49. package/dist/{chunk-UQHIWZZ6.cjs → chunk-3TL3AH25.cjs} +12 -6
  50. package/dist/chunk-3YMLUNL2.cjs +251 -0
  51. package/dist/chunk-4JTQPOKO.cjs +137 -0
  52. package/dist/{chunk-7MD37P5V.cjs → chunk-4P23B7DU.cjs} +5 -5
  53. package/dist/{chunk-3BLEXUGE.mjs → chunk-55U5QIXQ.mjs} +1 -1
  54. package/dist/{chunk-TWHXBMLJ.cjs → chunk-5JNUYGNF.cjs} +4 -4
  55. package/dist/{chunk-53SACYBY.cjs → chunk-6BJJYOFL.cjs} +7 -7
  56. package/dist/chunk-6UUH4N4J.mjs +251 -0
  57. package/dist/{chunk-2NHOYYUT.mjs → chunk-7H45IJWO.mjs} +2 -2
  58. package/dist/{chunk-NN3MOPSI.mjs → chunk-A2MN5PQJ.mjs} +7 -7
  59. package/dist/{chunk-KY32FWK7.mjs → chunk-BHJAYPYU.mjs} +2 -2
  60. package/dist/{chunk-VAHBCI6X.mjs → chunk-BQWBHWEW.mjs} +26 -1
  61. package/dist/{chunk-KJMWAUKE.mjs → chunk-C7GJDVN4.mjs} +1 -1
  62. package/dist/{chunk-OYNNA4DD.cjs → chunk-CBKRS3M4.cjs} +9 -9
  63. package/dist/{chunk-I2DQGS56.cjs → chunk-CBOEJ5Z4.cjs} +39 -41
  64. package/dist/{chunk-UJL4JOXV.cjs → chunk-CI4UNQHO.cjs} +2 -2
  65. package/dist/{chunk-S5AQ7CAC.cjs → chunk-CNNBFGL5.cjs} +39 -14
  66. package/dist/chunk-D2X5MUF5.cjs +1457 -0
  67. package/dist/{chunk-LEIXUFJN.cjs → chunk-D4MRNBVF.cjs} +10 -9
  68. package/dist/{chunk-2KVDHNQS.mjs → chunk-D7LTCK3U.mjs} +2 -2
  69. package/dist/{chunk-4SEHMBL4.cjs → chunk-DPJ66FSI.cjs} +22 -22
  70. package/dist/{chunk-FFE2EMF7.cjs → chunk-DZPR2W6U.cjs} +5 -5
  71. package/dist/{chunk-3Z63X45F.mjs → chunk-E72UD6ME.mjs} +1 -1
  72. package/dist/{chunk-XXXRRVY6.mjs → chunk-EGVC4LIG.mjs} +5 -5
  73. package/dist/{chunk-72NBDVWQ.mjs → chunk-EXUONJYV.mjs} +3 -3
  74. package/dist/{chunk-VS7EHLLW.mjs → chunk-EZ34EHQP.mjs} +1 -1
  75. package/dist/{chunk-5FXPJIOT.mjs → chunk-F6Y7ZAPQ.mjs} +2 -2
  76. package/dist/{chunk-LMFJCXDD.mjs → chunk-FN5UEC7I.mjs} +1 -1
  77. package/dist/{chunk-3SMXQNFD.mjs → chunk-FORSVMEJ.mjs} +2 -2
  78. package/dist/{chunk-R4PHCZ3G.mjs → chunk-HPWB57PZ.mjs} +1 -1
  79. package/dist/{chunk-Y2G5SJFB.mjs → chunk-IFHPDLIS.mjs} +1 -1
  80. package/dist/{chunk-3XQ57EFI.cjs → chunk-IFXSBJPN.cjs} +16 -16
  81. package/dist/{chunk-3WSIYBMG.mjs → chunk-ILMTRGBG.mjs} +279 -48
  82. package/dist/{chunk-HLWOWZFX.cjs → chunk-JBK7UJOI.cjs} +14 -11
  83. package/dist/chunk-JI5D7MXY.mjs +137 -0
  84. package/dist/{chunk-QXJADAQB.cjs → chunk-JIBEFLQ7.cjs} +6 -2
  85. package/dist/{chunk-LZ4SB57H.mjs → chunk-JPIUGDK4.mjs} +1 -1
  86. package/dist/{chunk-Y3N5BFRJ.mjs → chunk-JSDV2NUN.mjs} +1 -1
  87. package/dist/{chunk-IRSS4HS4.mjs → chunk-K3RU5MOR.mjs} +1 -1
  88. package/dist/chunk-KPOMS5RO.cjs +237 -0
  89. package/dist/{chunk-YAJTD3ZG.mjs → chunk-KVW2M6PI.mjs} +1 -1
  90. package/dist/{chunk-5IONBVJY.cjs → chunk-LB3DPQP6.cjs} +22 -22
  91. package/dist/{chunk-CZ35L6PL.mjs → chunk-LJVNMGE3.mjs} +10 -4
  92. package/dist/{chunk-X2AMN2WV.cjs → chunk-LQNW3ABP.cjs} +10 -10
  93. package/dist/{chunk-6ONBZGVH.cjs → chunk-LRB5OVRT.cjs} +3 -3
  94. package/dist/{chunk-D7UQC4O6.cjs → chunk-LT4VAF5Z.cjs} +2 -2
  95. package/dist/{chunk-F6TLUMH7.mjs → chunk-M53MIIXY.mjs} +1 -1
  96. package/dist/{chunk-H33PJEXN.cjs → chunk-MEQN6DDA.cjs} +5 -5
  97. package/dist/{chunk-XLRLSTJ6.cjs → chunk-MGKW5XZE.cjs} +7 -7
  98. package/dist/{chunk-B3GZAQSC.cjs → chunk-MHLNWRCJ.cjs} +3 -3
  99. package/dist/{chunk-5ENW27SL.mjs → chunk-MMK4MZUN.mjs} +1 -1
  100. package/dist/{chunk-WGUHDWT5.cjs → chunk-MTWXOEI4.cjs} +527 -366
  101. package/dist/chunk-NHD7BAKD.mjs +1457 -0
  102. package/dist/{chunk-KLNFJDFM.cjs → chunk-NQJDO7K7.cjs} +31 -31
  103. package/dist/{chunk-TSFMFPRU.cjs → chunk-O27PLNQZ.cjs} +10 -10
  104. package/dist/{chunk-PIHKO25G.mjs → chunk-OM7WILES.mjs} +1 -1
  105. package/dist/{chunk-YUEYBL35.mjs → chunk-PCXIJKPM.mjs} +8 -8
  106. package/dist/{chunk-IWFV5ZED.cjs → chunk-PMJSG4JS.cjs} +1 -1
  107. package/dist/{chunk-B3GM5I6N.cjs → chunk-PRFNLQSP.cjs} +4 -4
  108. package/dist/{chunk-46KXZBOG.cjs → chunk-QAS7KE7J.cjs} +7 -7
  109. package/dist/chunk-QGOZLGVP.mjs +0 -0
  110. package/dist/{chunk-VQJYGZNX.cjs → chunk-QMNWKQL4.cjs} +1 -1
  111. package/dist/{chunk-XB24LZWI.cjs → chunk-QRX4JRBO.cjs} +3 -3
  112. package/dist/{chunk-LNM57D3H.cjs → chunk-R53QDV6T.cjs} +4 -4
  113. package/dist/{chunk-SUV6YO4Q.cjs → chunk-RAWWCDCT.cjs} +5 -5
  114. package/dist/{chunk-LJDIFIJ2.mjs → chunk-RPUJHJHE.mjs} +4 -4
  115. package/dist/{chunk-G2KTRMWA.mjs → chunk-RSEAX5MW.mjs} +4 -0
  116. package/dist/chunk-SJRCWF4Z.mjs +237 -0
  117. package/dist/{chunk-4353ZRE5.mjs → chunk-SX7EECTS.mjs} +8 -5
  118. package/dist/{chunk-LDNSSHEG.mjs → chunk-T4TBK5NY.mjs} +2 -2
  119. package/dist/{chunk-NOTSHVRN.mjs → chunk-T7I62A4C.mjs} +293 -132
  120. package/dist/{chunk-E36C43IX.cjs → chunk-U4BJKNIR.cjs} +6 -6
  121. package/dist/{chunk-4CGOMZP3.cjs → chunk-UDJY2ZGY.cjs} +487 -256
  122. package/dist/{chunk-SHS6KXOZ.mjs → chunk-UR25Z5Z6.mjs} +1 -1
  123. package/dist/{chunk-TQMI6BYO.cjs → chunk-UYSTTPYJ.cjs} +1262 -936
  124. package/dist/{chunk-E5DXF5GE.mjs → chunk-UZZ6IEQP.mjs} +3 -3
  125. package/dist/{chunk-EKJYE4Y7.cjs → chunk-VGG74PSU.cjs} +25 -25
  126. package/dist/{chunk-GAO7MS5O.mjs → chunk-VPTWKOCY.mjs} +19 -19
  127. package/dist/{chunk-UN6N623E.mjs → chunk-VQJHT2ND.mjs} +2 -2
  128. package/dist/{chunk-SJ23LJ3N.cjs → chunk-VVTJTMGQ.cjs} +3 -3
  129. package/dist/{chunk-KHXAJ2KA.cjs → chunk-W2RZ73IU.cjs} +12 -12
  130. package/dist/{chunk-JWI5PUO2.mjs → chunk-W2ZXMMHA.mjs} +2 -1
  131. package/dist/{chunk-BLD5GVCG.mjs → chunk-W6QLRQ3V.mjs} +1 -1
  132. package/dist/{chunk-AV26KHTG.mjs → chunk-X2CZTWQA.mjs} +2 -2
  133. package/dist/chunk-XPIPMWY3.cjs +1 -0
  134. package/dist/{chunk-JXEPLIXD.cjs → chunk-XTG73QZA.cjs} +183 -39
  135. package/dist/{chunk-XPMC4E2G.cjs → chunk-XVSBALOY.cjs} +3 -3
  136. package/dist/{chunk-XYL4HSVC.cjs → chunk-YI6FKTTN.cjs} +38 -7
  137. package/dist/{chunk-LPDKG6RA.mjs → chunk-YSXTNSXS.mjs} +1 -1
  138. package/dist/{chunk-EHB77D5U.cjs → chunk-ZDAEHG2O.cjs} +3 -3
  139. package/dist/{chunk-3TLKUBXG.mjs → chunk-ZFUKPWFC.mjs} +912 -586
  140. package/dist/{chunk-4TKAIO2F.mjs → chunk-ZMHAFH4R.mjs} +8 -8
  141. package/dist/{chunk-ZOWNWHK6.cjs → chunk-ZNH6NR3H.cjs} +2 -2
  142. package/dist/{chunk-PFV2KPDZ.cjs → chunk-ZOYKJBP5.cjs} +3 -3
  143. package/dist/{chunk-CECUDGXQ.cjs → chunk-ZP32GNJQ.cjs} +13 -13
  144. package/dist/{chunk-MRNDAJEV.mjs → chunk-ZZ2QKCKW.mjs} +1 -1
  145. package/dist/{client-plugins.d-DllmH8eM.d.mts → client-plugins.d-CgQQ-EAv.d.mts} +10 -2
  146. package/dist/{client-plugins.d-n3iWY1EJ.d.ts → client-plugins.d-vXrbcfJ1.d.ts} +10 -2
  147. package/dist/client-plugins.d.mts +2 -2
  148. package/dist/client-plugins.d.ts +2 -2
  149. package/dist/client.cjs +9 -9
  150. package/dist/client.d.mts +9 -9
  151. package/dist/client.d.ts +9 -9
  152. package/dist/client.mjs +9 -9
  153. package/dist/{config.d-DqKaCr1r.d.ts → config.d-DqZkLwef.d.mts} +139 -1
  154. package/dist/{config.d-DqKaCr1r.d.mts → config.d-DqZkLwef.d.ts} +139 -1
  155. package/dist/config.d.mts +2 -2
  156. package/dist/config.d.ts +2 -2
  157. package/dist/cron.cjs +3 -3
  158. package/dist/cron.d.mts +10 -0
  159. package/dist/cron.d.ts +10 -0
  160. package/dist/cron.mjs +2 -2
  161. package/dist/desktop.d.mts +3 -3
  162. package/dist/desktop.d.ts +3 -3
  163. package/dist/{devtools-UESYARTF.mjs → devtools-KQZ6SRCJ.mjs} +16 -16
  164. package/dist/{devtools-TO6TAO32.cjs → devtools-UF6JYHUN.cjs} +18 -18
  165. package/dist/docs.cjs +19 -19
  166. package/dist/docs.d.mts +3 -3
  167. package/dist/docs.d.ts +3 -3
  168. package/dist/docs.mjs +18 -18
  169. package/dist/index.cjs +96 -96
  170. package/dist/{index.d-BXsAXm1U.d.ts → index.d-DlCELfhf.d.ts} +1 -1
  171. package/dist/{index.d-BL7KKiwa.d.mts → index.d-Dmfb7Kb_.d.mts} +1 -1
  172. package/dist/index.d.mts +18 -18
  173. package/dist/index.d.ts +18 -18
  174. package/dist/index.mjs +139 -139
  175. package/dist/integrations.cjs +5 -5
  176. package/dist/integrations.d.mts +2 -2
  177. package/dist/integrations.d.ts +2 -2
  178. package/dist/integrations.mjs +4 -4
  179. package/dist/internal/app-markdown-runtime.cjs +6 -6
  180. package/dist/internal/app-markdown-runtime.d.mts +3 -3
  181. package/dist/internal/app-markdown-runtime.d.ts +3 -3
  182. package/dist/internal/app-markdown-runtime.mjs +5 -5
  183. package/dist/internal/build-runtime.cjs +50 -50
  184. package/dist/internal/build-runtime.d.mts +4 -4
  185. package/dist/internal/build-runtime.d.ts +4 -4
  186. package/dist/internal/build-runtime.mjs +49 -49
  187. package/dist/internal/cli-runtime.cjs +28 -28
  188. package/dist/internal/cli-runtime.mjs +28 -28
  189. package/dist/internal/client-error-overlay.cjs +4 -4
  190. package/dist/internal/client-error-overlay.mjs +1 -1
  191. package/dist/internal/client-runtime.cjs +20 -15
  192. package/dist/internal/client-runtime.d.mts +5 -5
  193. package/dist/internal/client-runtime.d.ts +5 -5
  194. package/dist/internal/client-runtime.mjs +8 -3
  195. package/dist/internal/compression-runtime.d.mts +2 -2
  196. package/dist/internal/compression-runtime.d.ts +2 -2
  197. package/dist/internal/config-runtime.cjs +18 -18
  198. package/dist/internal/config-runtime.d.mts +94 -6
  199. package/dist/internal/config-runtime.d.ts +94 -6
  200. package/dist/internal/config-runtime.mjs +17 -17
  201. package/dist/internal/infra-analytics-runtime.cjs +11 -11
  202. package/dist/internal/infra-analytics-runtime.mjs +9 -9
  203. package/dist/internal/islands-boot.cjs +211 -0
  204. package/dist/internal/islands-boot.d.mts +8 -0
  205. package/dist/internal/islands-boot.d.ts +8 -0
  206. package/dist/internal/islands-boot.mjs +211 -0
  207. package/dist/internal/product-telemetry-runtime.cjs +2 -2
  208. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  209. package/dist/internal/production-runtime.cjs +37 -101
  210. package/dist/internal/production-runtime.d.mts +17 -11
  211. package/dist/internal/production-runtime.d.ts +17 -11
  212. package/dist/internal/production-runtime.mjs +47 -111
  213. package/dist/markdown.cjs +5 -5
  214. package/dist/markdown.d.mts +2 -2
  215. package/dist/markdown.d.ts +2 -2
  216. package/dist/markdown.mjs +4 -4
  217. package/dist/middleware.cjs +10 -10
  218. package/dist/middleware.d.mts +4 -4
  219. package/dist/middleware.d.ts +4 -4
  220. package/dist/middleware.mjs +9 -9
  221. package/dist/mobile.d.mts +27 -5
  222. package/dist/mobile.d.ts +27 -5
  223. package/dist/modules-VHD7BELU.mjs +13 -0
  224. package/dist/modules-WT5D3AWY.cjs +13 -0
  225. package/dist/native-specs-BD7HOTMJ.mjs +15 -0
  226. package/dist/native-specs-IQQRJOOW.cjs +15 -0
  227. package/dist/native-tree-6G5O53O3.cjs +27 -0
  228. package/dist/{native-tree-EBPDFTRW.mjs → native-tree-VWNW2MQ2.mjs} +10 -8
  229. package/dist/native.cjs +87 -0
  230. package/dist/native.d.mts +72 -0
  231. package/dist/native.d.ts +72 -0
  232. package/dist/native.mjs +87 -0
  233. package/dist/{navigation-delegate.d-C76gXTmO.d.mts → navigation-delegate.d-CnOTWOyi.d.mts} +1 -1
  234. package/dist/{navigation-delegate.d-DIyDslxt.d.ts → navigation-delegate.d-JXx40JzR.d.ts} +1 -1
  235. package/dist/navigation.cjs +5 -5
  236. package/dist/navigation.d.mts +5 -5
  237. package/dist/navigation.d.ts +5 -5
  238. package/dist/navigation.mjs +4 -4
  239. package/dist/{nitro-R444AF3O.mjs → nitro-FLN6DRGJ.mjs} +7 -7
  240. package/dist/{nitro-CK7M4RMY.cjs → nitro-HXAZZQKY.cjs} +12 -12
  241. package/dist/plugin.cjs +42 -42
  242. package/dist/plugin.d.mts +4 -4
  243. package/dist/plugin.d.ts +4 -4
  244. package/dist/plugin.mjs +41 -41
  245. package/dist/port-C6GBH4C6.cjs +419 -0
  246. package/dist/port-WOOQ3V56.mjs +419 -0
  247. package/dist/{production-runtime.d-CDHztggO.d.mts → production-runtime.d-CP5s6RuY.d.mts} +1 -1
  248. package/dist/{production-runtime.d-tyaGdbk6.d.ts → production-runtime.d-N-cE3pmy.d.ts} +1 -1
  249. package/dist/{programmatic-routes-client.d-XfmIrCK1.d.ts → programmatic-routes-client.d-CLG2N1yH.d.ts} +2 -2
  250. package/dist/{programmatic-routes-client.d-aAWiDd64.d.mts → programmatic-routes-client.d-CPbNqtIi.d.mts} +2 -2
  251. package/dist/query/client.cjs +6 -6
  252. package/dist/query/client.mjs +2 -2
  253. package/dist/{render-plan.d-Dr5WRjoV.d.ts → render-plan.d-B9lAP3uX.d.ts} +1 -1
  254. package/dist/{render-plan.d-Diwybxo8.d.mts → render-plan.d-DZ-qjjdG.d.mts} +1 -1
  255. package/dist/renderer/react/server.cjs +2 -2
  256. package/dist/renderer/react/server.mjs +3 -3
  257. package/dist/renderer-client.cjs +6 -6
  258. package/dist/renderer-client.d.mts +5 -5
  259. package/dist/renderer-client.d.ts +5 -5
  260. package/dist/renderer-client.mjs +2 -2
  261. package/dist/{request.d-D01fRn--.d.ts → request.d-BiicaNxb.d.ts} +1 -1
  262. package/dist/{request.d-Dd3AFR79.d.mts → request.d-DV0oeUit.d.mts} +1 -1
  263. package/dist/request.d.mts +3 -3
  264. package/dist/request.d.ts +3 -3
  265. package/dist/{route-rendering.d-BQ53lJ_D.d.mts → route-rendering.d-BrIKA51A.d.mts} +1 -1
  266. package/dist/{route-rendering.d-Bhx4QoJt.d.ts → route-rendering.d-Iss0C7GR.d.ts} +1 -1
  267. package/dist/{router.d-DQ3k7EYn.d.ts → router.d-DjGn_al7.d.ts} +1 -1
  268. package/dist/{router.d-Bi23a6Xc.d.mts → router.d-mNTbOGV_.d.mts} +1 -1
  269. package/dist/{routes.d-C7jMJFvP.d.ts → routes.d-BKSjHuH9.d.ts} +25 -2
  270. package/dist/{routes.d-BgTd7vI4.d.mts → routes.d-qd8Qf4LG.d.mts} +25 -2
  271. package/dist/routes.d.mts +2 -2
  272. package/dist/routes.d.ts +2 -2
  273. package/dist/{rsc-pipeline-OCZIT5OF.cjs → rsc-pipeline-SVLBTY7H.cjs} +21 -21
  274. package/dist/{rsc-pipeline-K3ER3Q4N.mjs → rsc-pipeline-WBLBDQXA.mjs} +20 -20
  275. package/dist/{runtime-DKNSIH7V.cjs → runtime-DGUOWSMF.cjs} +293 -41
  276. package/dist/{runtime-MKYDEUZT.mjs → runtime-HFZTVNFF.mjs} +283 -31
  277. package/dist/{runtime.d-B2Js6qZ2.d.mts → runtime.d-BNVbojF1.d.mts} +1 -1
  278. package/dist/{runtime.d-BL-CGwoi.d.ts → runtime.d-Bm_4hP5T.d.ts} +1 -1
  279. package/dist/{schema-dev-notice-F6QYSOAI.mjs → schema-dev-notice-JMXEQWIQ.mjs} +3 -3
  280. package/dist/{schema-dev-notice-UU7DMZEU.cjs → schema-dev-notice-PLBFDTOF.cjs} +6 -6
  281. package/dist/server-fn-client.d.mts +1 -1
  282. package/dist/server-fn-client.d.ts +1 -1
  283. package/dist/server-plugins.cjs +1 -1
  284. package/dist/server-plugins.d.mts +3 -3
  285. package/dist/server-plugins.d.ts +3 -3
  286. package/dist/server-plugins.mjs +1 -1
  287. package/dist/server.cjs +81 -81
  288. package/dist/server.d.mts +11 -11
  289. package/dist/server.d.ts +11 -11
  290. package/dist/server.mjs +64 -64
  291. package/dist/session-2Q72D4QV.cjs +23 -0
  292. package/dist/{session-IGEDQ5PY.mjs → session-QZXZOPR2.mjs} +2 -2
  293. package/dist/shell-render.d-CG6bPiiA.d.mts +41 -0
  294. package/dist/shell-render.d-CG6bPiiA.d.ts +41 -0
  295. package/dist/{spa-router.d-DqZ6Lfs0.d.ts → spa-router.d-DAtnNoBe.d.ts} +11 -2
  296. package/dist/{spa-router.d-B2rIFGs0.d.mts → spa-router.d-DHDoXxDE.d.mts} +11 -2
  297. package/dist/testing.cjs +7 -7
  298. package/dist/testing.d.mts +2 -2
  299. package/dist/testing.d.ts +2 -2
  300. package/dist/testing.mjs +6 -6
  301. package/dist/{utils.d-Bv2MPeLR.d.ts → utils.d-DwZ-KLSB.d.ts} +7 -1
  302. package/dist/{utils.d-fqXe8lNc.d.mts → utils.d-uKZcKJk4.d.mts} +7 -1
  303. package/dist/version.cjs +2 -2
  304. package/dist/version.mjs +1 -1
  305. package/dist/vite.cjs +42 -42
  306. package/dist/vite.d.mts +10 -5
  307. package/dist/vite.d.ts +10 -5
  308. package/dist/vite.mjs +41 -41
  309. package/dist/workflows.cjs +3 -3
  310. package/dist/workflows.mjs +2 -2
  311. package/package.json +17 -3
  312. package/dist/agent-mcp-handler-YE4AGWHN.cjs +0 -18
  313. package/dist/chunk-MIGFX2FN.mjs +0 -758
  314. package/dist/chunk-P6MHI5O2.cjs +0 -758
  315. package/dist/native-tree-MMZS7S6W.cjs +0 -25
  316. package/dist/session-AAU7RNRO.cjs +0 -23
  317. package/dist/{chunk-7FVVQEVL.cjs → chunk-4BS3HSY7.cjs} +2 -2
  318. package/dist/{chunk-N7JQXQAV.cjs → chunk-5OJVKXFV.cjs} +2 -2
  319. package/dist/{chunk-WSDKXV4E.mjs → chunk-72KABRWN.mjs} +4 -4
  320. package/dist/{chunk-C3BOESDW.mjs → chunk-B4CWYGCG.mjs} +3 -3
@@ -1,14 +1,14 @@
1
1
  import {
2
2
  handleFarmDefaultMCPRequest
3
- } from "./chunk-MRNDAJEV.mjs";
4
- import "./chunk-E5DXF5GE.mjs";
5
- import "./chunk-YAJTD3ZG.mjs";
6
- import "./chunk-LPDKG6RA.mjs";
7
- import "./chunk-KJMWAUKE.mjs";
3
+ } from "./chunk-ZZ2QKCKW.mjs";
4
+ import "./chunk-UZZ6IEQP.mjs";
5
+ import "./chunk-KVW2M6PI.mjs";
6
+ import "./chunk-YSXTNSXS.mjs";
7
+ import "./chunk-C7GJDVN4.mjs";
8
8
  import "./chunk-2DA7CLY7.mjs";
9
- import "./chunk-LM2YOGDK.mjs";
9
+ import "./chunk-2I6PUKWJ.mjs";
10
10
  import "./chunk-GUZC226X.mjs";
11
- import "./chunk-BLD5GVCG.mjs";
11
+ import "./chunk-W6QLRQ3V.mjs";
12
12
  import "./chunk-LM55GS4R.mjs";
13
13
  import "./chunk-SF3JB56B.mjs";
14
14
  import "./chunk-AYP2YFVN.mjs";
@@ -0,0 +1,18 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _chunk6BJJYOFLcjs = require('./chunk-6BJJYOFL.cjs');
4
+ require('./chunk-QAS7KE7J.cjs');
5
+ require('./chunk-MEQN6DDA.cjs');
6
+ require('./chunk-LT4VAF5Z.cjs');
7
+ require('./chunk-LRB5OVRT.cjs');
8
+ require('./chunk-EVIWKPJV.cjs');
9
+ require('./chunk-2OF5RPVU.cjs');
10
+ require('./chunk-CA7DNRHO.cjs');
11
+ require('./chunk-PMJSG4JS.cjs');
12
+ require('./chunk-A25FXJ7D.cjs');
13
+ require('./chunk-D22BUQKW.cjs');
14
+ require('./chunk-YTVSWXEZ.cjs');
15
+ require('./chunk-BTZ5O6VM.cjs');
16
+
17
+
18
+ exports.handleFarmDefaultMCPRequest = _chunk6BJJYOFLcjs.handleFarmDefaultMCPRequest;
@@ -1,4 +1,4 @@
1
- import { M as Metadata, bp as FarmAgentJsonLd, bq as FarmMCPServerRegistration, br as FarmMarkdownResolvedConfig } from './client-plugins.d-DllmH8eM.mjs';
1
+ import { M as Metadata, bp as FarmAgentJsonLd, bq as FarmMCPServerRegistration, br as FarmMarkdownResolvedConfig } from './client-plugins.d-CgQQ-EAv.mjs';
2
2
 
3
3
  type MetadataImageKind = "opengraph" | "twitter";
4
4
  interface FarmMetadataImageReference {
@@ -1,4 +1,4 @@
1
- import { M as Metadata, bp as FarmAgentJsonLd, bq as FarmMCPServerRegistration, br as FarmMarkdownResolvedConfig } from './client-plugins.d-n3iWY1EJ.js';
1
+ import { M as Metadata, bp as FarmAgentJsonLd, bq as FarmMCPServerRegistration, br as FarmMarkdownResolvedConfig } from './client-plugins.d-vXrbcfJ1.js';
2
2
 
3
3
  type MetadataImageKind = "opengraph" | "twitter";
4
4
  interface FarmMetadataImageReference {
@@ -1,18 +1,18 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkCECUDGXQcjs = require('./chunk-CECUDGXQ.cjs');
3
+ var _chunkZP32GNJQcjs = require('./chunk-ZP32GNJQ.cjs');
4
4
  require('./chunk-DUIP64BF.cjs');
5
- require('./chunk-PFV2KPDZ.cjs');
5
+ require('./chunk-ZOYKJBP5.cjs');
6
6
  require('./chunk-ZXK2EYQW.cjs');
7
7
  require('./chunk-5DX3O6TT.cjs');
8
8
  require('./chunk-ITV4QQL2.cjs');
9
9
  require('./chunk-FEFCISOX.cjs');
10
10
  require('./chunk-YIHRZBD7.cjs');
11
+ require('./chunk-2OF5RPVU.cjs');
11
12
  require('./chunk-LIFUPCXW.cjs');
12
13
  require('./chunk-JYT7AN37.cjs');
13
- require('./chunk-B5BBTPJQ.cjs');
14
14
  require('./chunk-HA7YRO53.cjs');
15
- require('./chunk-IWFV5ZED.cjs');
15
+ require('./chunk-PMJSG4JS.cjs');
16
16
  require('./chunk-6XQSPIN6.cjs');
17
17
  require('./chunk-6CTFVBAT.cjs');
18
18
  require('./chunk-OWQV6MLM.cjs');
@@ -97,7 +97,7 @@ function createAgentRuntimeIntegration(options) {
97
97
  });
98
98
  }
99
99
  };
100
- return _chunkCECUDGXQcjs.defineIntegration.call(void 0, {
100
+ return _chunkZP32GNJQcjs.defineIntegration.call(void 0, {
101
101
  category: "agent",
102
102
  type: provider,
103
103
  serverRuntime: options.serverRuntime,
@@ -1,5 +1,5 @@
1
1
  import { ChildProcess } from 'node:child_process';
2
- import { B as BundleResultPayload, F as FarmPlugin, a as FarmIntegration } from './client-plugins.d-DllmH8eM.mjs';
2
+ import { B as BundleResultPayload, F as FarmPlugin, a as FarmIntegration } from './client-plugins.d-CgQQ-EAv.mjs';
3
3
  import './lifecycle.d-C2aLBOwu.mjs';
4
4
  import './route.d-BaVH3V0w.mjs';
5
5
  import './endpoint.d-BkMSCRf6.mjs';
@@ -29,7 +29,7 @@ import 'rolldown/utils';
29
29
  import 'rolldown';
30
30
  import './image-config.d-CeDgNyX4.mjs';
31
31
  import './types.d-C41ePjvP.mjs';
32
- import './config.d-DqKaCr1r.mjs';
32
+ import './config.d-DqZkLwef.mjs';
33
33
  import './types.d-DQnyD3VD.mjs';
34
34
  import './font.mjs';
35
35
 
@@ -1,5 +1,5 @@
1
1
  import { ChildProcess } from 'node:child_process';
2
- import { B as BundleResultPayload, F as FarmPlugin, a as FarmIntegration } from './client-plugins.d-n3iWY1EJ.js';
2
+ import { B as BundleResultPayload, F as FarmPlugin, a as FarmIntegration } from './client-plugins.d-vXrbcfJ1.js';
3
3
  import './lifecycle.d-C2aLBOwu.js';
4
4
  import './route.d-DBTEqifW.js';
5
5
  import './endpoint.d-BgHn0lhl.js';
@@ -29,7 +29,7 @@ import 'rolldown/utils';
29
29
  import 'rolldown';
30
30
  import './image-config.d-CeDgNyX4.js';
31
31
  import './types.d-C41ePjvP.js';
32
- import './config.d-DqKaCr1r.js';
32
+ import './config.d-DqZkLwef.js';
33
33
  import './types.d-DQnyD3VD.js';
34
34
  import './font.js';
35
35
 
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  defineIntegration
3
- } from "./chunk-Y2G5SJFB.mjs";
3
+ } from "./chunk-IFHPDLIS.mjs";
4
4
  import "./chunk-H4WUWLQR.mjs";
5
- import "./chunk-F6TLUMH7.mjs";
5
+ import "./chunk-M53MIIXY.mjs";
6
6
  import "./chunk-46P5KNTE.mjs";
7
7
  import "./chunk-EDPENAVO.mjs";
8
8
  import "./chunk-TGSEVBPO.mjs";
9
9
  import "./chunk-QSTRBKHZ.mjs";
10
10
  import "./chunk-CO6UYM2D.mjs";
11
+ import "./chunk-2I6PUKWJ.mjs";
11
12
  import "./chunk-GFT5AHAT.mjs";
12
13
  import "./chunk-D2LCAV6L.mjs";
13
- import "./chunk-LM2YOGDK.mjs";
14
14
  import "./chunk-GYMGK467.mjs";
15
- import "./chunk-BLD5GVCG.mjs";
15
+ import "./chunk-W6QLRQ3V.mjs";
16
16
  import "./chunk-ONG4RDW3.mjs";
17
17
  import "./chunk-OHWM2VI4.mjs";
18
18
  import "./chunk-7S7AAK2D.mjs";
@@ -1,10 +1,14 @@
1
1
  import {
2
2
  FARM_NATIVE_STYLE_PROPERTIES,
3
- farmNativeClassProblem
4
- } from "./chunk-MIGFX2FN.mjs";
3
+ FARM_NATIVE_TEXT_KEYS,
4
+ farmNativeClassProblem,
5
+ inspectFarmNativeStylesheets,
6
+ parseFarmNativeStylesheet,
7
+ resolveFarmNativeClasses
8
+ } from "./chunk-NHD7BAKD.mjs";
5
9
  import {
6
10
  FARM_VERSION
7
- } from "./chunk-R4PHCZ3G.mjs";
11
+ } from "./chunk-HPWB57PZ.mjs";
8
12
  import "./chunk-Y6FXYEAI.mjs";
9
13
 
10
14
  // src/mobile/analyzer.ts
@@ -12,7 +16,7 @@ import { createHash } from "crypto";
12
16
  import { existsSync, readFileSync, statSync } from "fs";
13
17
  import { mkdir, readFile, writeFile } from "fs/promises";
14
18
  import * as path from "path";
15
- var ANALYZER_VERSION = `3:${FARM_VERSION}`;
19
+ var ANALYZER_VERSION = `5:${FARM_VERSION}`;
16
20
  var INTRINSIC_KINDS = {};
17
21
  for (const tag of "div section main article header footer nav aside figure hr li".split(" ")) {
18
22
  INTRINSIC_KINDS[tag] = "View";
@@ -132,6 +136,18 @@ var CORE_PORTABLE = {
132
136
  "@farm.js/core/version": /* @__PURE__ */ new Set(["FARM_VERSION"]),
133
137
  "@farm.js/core/platform": /* @__PURE__ */ new Set(["platform"])
134
138
  };
139
+ var INLINE_BOX_TAGS = new Set("span strong em b i small label code".split(" "));
140
+ function hasBoxStyle(node) {
141
+ const tokens = node.style ?? [];
142
+ const classes = tokens.filter((token) => !token.startsWith("style."));
143
+ const resolved = resolveFarmNativeClasses(classes.join(" "));
144
+ const keys = [
145
+ ...Object.keys(resolved.style),
146
+ ...Object.keys(resolved.dark ?? {}),
147
+ ...tokens.filter((token) => token.startsWith("style.")).map((token) => token.slice(6))
148
+ ];
149
+ return keys.some((key) => !FARM_NATIVE_TEXT_KEYS.has(key));
150
+ }
135
151
  var MAPPED_COMPONENTS = {
136
152
  "@farm.js/core": { Link: "Pressable" },
137
153
  "@farm.js/core/client": { Link: "Pressable" },
@@ -304,7 +320,9 @@ function analyzeSource(file, source, parseSync) {
304
320
  useClient: false,
305
321
  serverBoundary: false,
306
322
  asyncDefault: false,
307
- components: {}
323
+ components: {},
324
+ appClasses: [],
325
+ tags: []
308
326
  };
309
327
  const starts = lineStarts(source);
310
328
  const block = (node, rule, message, only) => {
@@ -402,6 +420,7 @@ function analyzeSource(file, source, parseSync) {
402
420
  const isIntrinsic = opening.name.type === "JSXIdentifier" && /^[a-z]/.test(tag);
403
421
  if (isIntrinsic) {
404
422
  kind = INTRINSIC_KINDS[tag];
423
+ if (!facts.tags.includes(tag)) facts.tags.push(tag);
405
424
  if (!kind) block(opening, "unmapped-element", `<${tag}> has no native mapping`);
406
425
  } else if (opening.name.type === "JSXNamespacedName") {
407
426
  block(opening, "unmapped-element", `<${tag}> has no native mapping`);
@@ -488,7 +507,9 @@ function analyzeSource(file, source, parseSync) {
488
507
  }
489
508
  for (const token of classes.split(/\s+/).filter(Boolean)) {
490
509
  const problem = classifyClass(token);
491
- if (problem) block(attribute, "class-name", problem);
510
+ if (problem && /^class ".*" is not in the native Tailwind subset$/.test(problem)) {
511
+ facts.appClasses.push({ name: token, ...locate(starts, attribute.start) });
512
+ } else if (problem) block(attribute, "class-name", problem);
492
513
  else {
493
514
  style.push(token);
494
515
  const native = farmNativeClassProblem(token);
@@ -573,6 +594,14 @@ function analyzeSource(file, source, parseSync) {
573
594
  return void 0;
574
595
  case "JSXElement": {
575
596
  const ui = classifyElement(node);
597
+ if (INLINE_BOX_TAGS.has(ui.tag) && parent && parent.kind !== "Fragment" && parent.kind !== "Component" && !parent.style?.some((token) => token === "flex" || token === "inline-flex") && hasBoxStyle(ui)) {
598
+ block(
599
+ node.openingElement,
600
+ "class-name",
601
+ `<${ui.tag}> with a background, border, padding, or size inside text has no native-tier layout`,
602
+ "native"
603
+ );
604
+ }
576
605
  for (const attribute of node.openingElement.attributes) {
577
606
  visit(attribute.type === "JSXSpreadAttribute" ? attribute.argument : attribute.value);
578
607
  }
@@ -946,18 +975,13 @@ async function analyzeFarmMobileRoutes(options) {
946
975
  const blocker = classifyPackage(fact, moduleFacts.serverBoundary);
947
976
  return blocker ? { fact, blocker } : { fact };
948
977
  }
949
- if (STYLE_FILE.test(specifier)) {
950
- return {
951
- fact,
952
- blocker: { ...at, rule: "css-import", message: `import "${specifier}" is a stylesheet` }
953
- };
954
- }
955
978
  if (ASSET_FILE.test(specifier)) return { fact };
956
979
  for (const candidate of candidates) {
957
980
  const file = resolveFile(candidate);
958
981
  if (file) {
959
982
  if (ASSET_FILE.test(file)) return { fact };
960
983
  if (STYLE_FILE.test(file)) {
984
+ if (file.endsWith(".css")) return { fact, stylesheet: file };
961
985
  return {
962
986
  fact,
963
987
  blocker: {
@@ -1009,15 +1033,32 @@ async function analyzeFarmMobileRoutes(options) {
1009
1033
  }
1010
1034
  }
1011
1035
  await Promise.all([...scripts].map(visitModule));
1036
+ const parsedSheets = /* @__PURE__ */ new Map();
1037
+ const readStylesheet = (file) => {
1038
+ let sheet = parsedSheets.get(file);
1039
+ if (!sheet) {
1040
+ sheet = parseFarmNativeStylesheet(readFileSync(file, "utf8"));
1041
+ parsedSheets.set(file, sheet);
1042
+ }
1043
+ return sheet;
1044
+ };
1012
1045
  const settled = /* @__PURE__ */ new Map();
1013
1046
  for (const [file, pending] of facts) settled.set(file, await pending);
1014
1047
  const routes = {};
1048
+ const graphs = {};
1049
+ const allStylesheets = /* @__PURE__ */ new Set();
1050
+ const unreadStylesheets = /* @__PURE__ */ new Set();
1015
1051
  for (const [route, { page, layouts }] of entries) {
1016
1052
  const blockers = [];
1017
1053
  const wins = /* @__PURE__ */ new Set();
1018
1054
  const elements = { total: 0, mapped: 0, byKind: {} };
1019
1055
  const seen = /* @__PURE__ */ new Set();
1020
1056
  const ir = { root: "", components: {} };
1057
+ const stylesheets = /* @__PURE__ */ new Set();
1058
+ const appClasses = [];
1059
+ const tags = /* @__PURE__ */ new Set();
1060
+ const graph = [];
1061
+ const layoutClasses = /* @__PURE__ */ new Set();
1021
1062
  const walk = (file, entry, layout) => {
1022
1063
  if (seen.has(file)) return;
1023
1064
  seen.add(file);
@@ -1047,8 +1088,32 @@ async function analyzeFarmMobileRoutes(options) {
1047
1088
  only: "react-native"
1048
1089
  });
1049
1090
  }
1091
+ if (!layout) {
1092
+ graph.push({
1093
+ file,
1094
+ serverBoundary: moduleFacts.serverBoundary,
1095
+ imports: (resolved.get(file) ?? []).map((entryImport) => ({
1096
+ source: entryImport.fact.source,
1097
+ ...entryImport.file ? { file: entryImport.file } : {}
1098
+ }))
1099
+ });
1100
+ }
1101
+ if (layout) {
1102
+ for (const appClass of moduleFacts.appClasses) layoutClasses.add(appClass.name);
1103
+ const visit = (node) => {
1104
+ for (const token of node.style ?? [])
1105
+ if (!token.startsWith("style.")) layoutClasses.add(token);
1106
+ for (const child of node.children ?? []) visit(child);
1107
+ };
1108
+ for (const node of Object.values(moduleFacts.components)) visit(node);
1109
+ }
1050
1110
  if (moduleFacts.serverBoundary && !entry) return;
1051
1111
  for (const blocker of moduleFacts.blockers) add({ file: label, ...blocker });
1112
+ if (!layout) {
1113
+ for (const appClass of moduleFacts.appClasses)
1114
+ appClasses.push({ file: label, ...appClass });
1115
+ for (const tag of moduleFacts.tags) tags.add(tag);
1116
+ }
1052
1117
  for (const win of moduleFacts.wins) wins.add(win);
1053
1118
  elements.total += moduleFacts.elements.total;
1054
1119
  elements.mapped += moduleFacts.elements.mapped;
@@ -1059,6 +1124,12 @@ async function analyzeFarmMobileRoutes(options) {
1059
1124
  ir.components[`${label}#${name}`] = node;
1060
1125
  }
1061
1126
  for (const entryImport of resolved.get(file) ?? []) {
1127
+ if (entryImport.stylesheet) {
1128
+ stylesheets.add(entryImport.stylesheet);
1129
+ allStylesheets.add(entryImport.stylesheet);
1130
+ } else if (entryImport.blocker?.rule === "css-import") {
1131
+ unreadStylesheets.add(entryImport.fact.source);
1132
+ }
1062
1133
  if (entryImport.blocker) add({ file: label, ...entryImport.blocker });
1063
1134
  if (entryImport.file) walk(entryImport.file, false, layout);
1064
1135
  }
@@ -1084,6 +1155,34 @@ async function analyzeFarmMobileRoutes(options) {
1084
1155
  ir.root = `${relative2(root, page)}#default`;
1085
1156
  }
1086
1157
  for (const layout of layouts) walk(layout, true, true);
1158
+ const sheets = [...stylesheets].map(readStylesheet);
1159
+ for (const appClass of appClasses) {
1160
+ const { styled, problems } = inspectFarmNativeStylesheets(sheets, { class: appClass.name });
1161
+ const at = { file: appClass.file, line: appClass.line, column: appClass.column };
1162
+ if (!styled) {
1163
+ blockers.push({
1164
+ ...at,
1165
+ rule: "class-name",
1166
+ message: `class "${appClass.name}" is neither Tailwind nor in the app's CSS`,
1167
+ only: "native"
1168
+ });
1169
+ }
1170
+ for (const message of problems) {
1171
+ blockers.push({ ...at, rule: "class-name", message, only: "native" });
1172
+ }
1173
+ }
1174
+ for (const tag of tags) {
1175
+ for (const message of inspectFarmNativeStylesheets(sheets, { tag }).problems) {
1176
+ blockers.push({
1177
+ file: relative2(root, page ?? ""),
1178
+ line: 1,
1179
+ column: 1,
1180
+ rule: "style",
1181
+ message,
1182
+ only: "native"
1183
+ });
1184
+ }
1185
+ }
1087
1186
  const strip = ({ only: _only, ...blocker }) => blocker;
1088
1187
  const portBlockers = blockers.filter((blocker) => blocker.only !== "native").map(strip);
1089
1188
  const nativeBlockers = blockers.filter((blocker) => blocker.only !== "react-native").map(strip);
@@ -1105,6 +1204,7 @@ async function analyzeFarmMobileRoutes(options) {
1105
1204
  if (portable) {
1106
1205
  analysis.ir = ir;
1107
1206
  analysis.irBytes = Buffer.byteLength(JSON.stringify(ir));
1207
+ if (page) graphs[route] = { page, modules: graph, layoutClasses: [...layoutClasses].sort() };
1108
1208
  }
1109
1209
  routes[route] = analysis;
1110
1210
  }
@@ -1117,7 +1217,10 @@ async function analyzeFarmMobileRoutes(options) {
1117
1217
  }
1118
1218
  return {
1119
1219
  routes,
1120
- stats: { modules: facts.size, parsed, cached, ms: Math.round(performance.now() - started) }
1220
+ stats: { modules: facts.size, parsed, cached, ms: Math.round(performance.now() - started) },
1221
+ graphs,
1222
+ stylesheets: [...allStylesheets].sort(),
1223
+ unreadStylesheets: [...unreadStylesheets].sort()
1121
1224
  };
1122
1225
  }
1123
1226
  export {