@farm.js/core 0.1.0-beta.5 → 0.1.0-beta.6

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 (424) hide show
  1. package/package.json +1 -1
  2. package/dist/after.cjs +0 -227
  3. package/dist/after.cjs.map +0 -1
  4. package/dist/after.d.mts +0 -25
  5. package/dist/after.d.ts +0 -25
  6. package/dist/after.mjs +0 -14
  7. package/dist/after.mjs.map +0 -1
  8. package/dist/agent-runtime.cjs +0 -2379
  9. package/dist/agent-runtime.cjs.map +0 -1
  10. package/dist/agent-runtime.d.mts +0 -94
  11. package/dist/agent-runtime.d.ts +0 -94
  12. package/dist/agent-runtime.mjs +0 -479
  13. package/dist/agent-runtime.mjs.map +0 -1
  14. package/dist/api/route-manager.d.mts +0 -66
  15. package/dist/api/route-manager.d.ts +0 -66
  16. package/dist/api/runtime.d.mts +0 -3
  17. package/dist/api/runtime.d.ts +0 -3
  18. package/dist/api.cjs +0 -4100
  19. package/dist/api.cjs.map +0 -1
  20. package/dist/api.d.mts +0 -48
  21. package/dist/api.d.ts +0 -48
  22. package/dist/api.mjs +0 -93
  23. package/dist/api.mjs.map +0 -1
  24. package/dist/app-BjN-da13.d.ts +0 -300
  25. package/dist/app-CakAr8Be.d.mts +0 -300
  26. package/dist/app-markdown.cjs +0 -220
  27. package/dist/app-markdown.cjs.map +0 -1
  28. package/dist/app-markdown.d.mts +0 -22
  29. package/dist/app-markdown.d.ts +0 -22
  30. package/dist/app-markdown.mjs +0 -26
  31. package/dist/app-markdown.mjs.map +0 -1
  32. package/dist/cache.cjs +0 -945
  33. package/dist/cache.cjs.map +0 -1
  34. package/dist/cache.d.mts +0 -192
  35. package/dist/cache.d.ts +0 -192
  36. package/dist/cache.mjs +0 -46
  37. package/dist/cache.mjs.map +0 -1
  38. package/dist/chunk-2CUKEMVR.mjs +0 -872
  39. package/dist/chunk-2CUKEMVR.mjs.map +0 -1
  40. package/dist/chunk-2ED5Q2GH.mjs +0 -422
  41. package/dist/chunk-2ED5Q2GH.mjs.map +0 -1
  42. package/dist/chunk-2NHCNRF6.mjs +0 -6241
  43. package/dist/chunk-2NHCNRF6.mjs.map +0 -1
  44. package/dist/chunk-32W4QEJP.mjs +0 -158
  45. package/dist/chunk-32W4QEJP.mjs.map +0 -1
  46. package/dist/chunk-3XNTL3FQ.mjs +0 -452
  47. package/dist/chunk-3XNTL3FQ.mjs.map +0 -1
  48. package/dist/chunk-44ZCFSKE.mjs +0 -84
  49. package/dist/chunk-44ZCFSKE.mjs.map +0 -1
  50. package/dist/chunk-4S3ORGFA.mjs +0 -44
  51. package/dist/chunk-4S3ORGFA.mjs.map +0 -1
  52. package/dist/chunk-5BY76U2M.mjs +0 -1
  53. package/dist/chunk-5BY76U2M.mjs.map +0 -1
  54. package/dist/chunk-5ZGPRGWV.mjs +0 -136
  55. package/dist/chunk-5ZGPRGWV.mjs.map +0 -1
  56. package/dist/chunk-65A7QIKI.mjs +0 -142
  57. package/dist/chunk-65A7QIKI.mjs.map +0 -1
  58. package/dist/chunk-74YTBPTY.mjs +0 -450
  59. package/dist/chunk-74YTBPTY.mjs.map +0 -1
  60. package/dist/chunk-7HO6AEOP.mjs +0 -74
  61. package/dist/chunk-7HO6AEOP.mjs.map +0 -1
  62. package/dist/chunk-7MABZJIM.mjs +0 -29
  63. package/dist/chunk-7MABZJIM.mjs.map +0 -1
  64. package/dist/chunk-7N62DNSO.mjs +0 -41
  65. package/dist/chunk-7N62DNSO.mjs.map +0 -1
  66. package/dist/chunk-7ZY5AIJO.mjs +0 -161
  67. package/dist/chunk-7ZY5AIJO.mjs.map +0 -1
  68. package/dist/chunk-A2LUXHD2.mjs +0 -7631
  69. package/dist/chunk-A2LUXHD2.mjs.map +0 -1
  70. package/dist/chunk-ALCLXXTY.mjs +0 -187
  71. package/dist/chunk-ALCLXXTY.mjs.map +0 -1
  72. package/dist/chunk-AZ7YUVNR.mjs +0 -65
  73. package/dist/chunk-AZ7YUVNR.mjs.map +0 -1
  74. package/dist/chunk-B232I2GP.mjs +0 -163
  75. package/dist/chunk-B232I2GP.mjs.map +0 -1
  76. package/dist/chunk-BHG3LVHH.mjs +0 -176
  77. package/dist/chunk-BHG3LVHH.mjs.map +0 -1
  78. package/dist/chunk-C2ROET2V.mjs +0 -718
  79. package/dist/chunk-C2ROET2V.mjs.map +0 -1
  80. package/dist/chunk-C3DLZMBU.mjs +0 -597
  81. package/dist/chunk-C3DLZMBU.mjs.map +0 -1
  82. package/dist/chunk-CGILA3WO.mjs +0 -14
  83. package/dist/chunk-CGILA3WO.mjs.map +0 -1
  84. package/dist/chunk-E2MPIBRE.mjs +0 -149
  85. package/dist/chunk-E2MPIBRE.mjs.map +0 -1
  86. package/dist/chunk-E6EPN5BT.mjs +0 -203
  87. package/dist/chunk-E6EPN5BT.mjs.map +0 -1
  88. package/dist/chunk-EEABSBKK.mjs +0 -10
  89. package/dist/chunk-EEABSBKK.mjs.map +0 -1
  90. package/dist/chunk-EJ7T4TPB.mjs +0 -622
  91. package/dist/chunk-EJ7T4TPB.mjs.map +0 -1
  92. package/dist/chunk-FQYDHKKU.mjs +0 -128
  93. package/dist/chunk-FQYDHKKU.mjs.map +0 -1
  94. package/dist/chunk-FRPWCMMG.mjs +0 -299
  95. package/dist/chunk-FRPWCMMG.mjs.map +0 -1
  96. package/dist/chunk-GN72QAIH.mjs +0 -146
  97. package/dist/chunk-GN72QAIH.mjs.map +0 -1
  98. package/dist/chunk-GQVGIUSN.mjs +0 -149
  99. package/dist/chunk-GQVGIUSN.mjs.map +0 -1
  100. package/dist/chunk-GS6K5OCM.mjs +0 -407
  101. package/dist/chunk-GS6K5OCM.mjs.map +0 -1
  102. package/dist/chunk-GXASWWJU.mjs +0 -364
  103. package/dist/chunk-GXASWWJU.mjs.map +0 -1
  104. package/dist/chunk-GY2STC2S.mjs +0 -180
  105. package/dist/chunk-GY2STC2S.mjs.map +0 -1
  106. package/dist/chunk-H2FA2SBS.mjs +0 -51
  107. package/dist/chunk-H2FA2SBS.mjs.map +0 -1
  108. package/dist/chunk-HNIQFZKB.mjs +0 -3550
  109. package/dist/chunk-HNIQFZKB.mjs.map +0 -1
  110. package/dist/chunk-ITN462YM.mjs +0 -98
  111. package/dist/chunk-ITN462YM.mjs.map +0 -1
  112. package/dist/chunk-J23HNLFY.mjs +0 -72
  113. package/dist/chunk-J23HNLFY.mjs.map +0 -1
  114. package/dist/chunk-J4FNJ5IU.mjs +0 -179
  115. package/dist/chunk-J4FNJ5IU.mjs.map +0 -1
  116. package/dist/chunk-J5YWQVI5.mjs +0 -211
  117. package/dist/chunk-J5YWQVI5.mjs.map +0 -1
  118. package/dist/chunk-JDEOUK5V.mjs +0 -427
  119. package/dist/chunk-JDEOUK5V.mjs.map +0 -1
  120. package/dist/chunk-JK25YEN6.mjs +0 -219
  121. package/dist/chunk-JK25YEN6.mjs.map +0 -1
  122. package/dist/chunk-K4667E2Q.mjs +0 -1916
  123. package/dist/chunk-K4667E2Q.mjs.map +0 -1
  124. package/dist/chunk-LGHEOHBU.mjs +0 -218
  125. package/dist/chunk-LGHEOHBU.mjs.map +0 -1
  126. package/dist/chunk-LLC7BNXW.mjs +0 -275
  127. package/dist/chunk-LLC7BNXW.mjs.map +0 -1
  128. package/dist/chunk-LM2YNO4U.mjs +0 -24
  129. package/dist/chunk-LM2YNO4U.mjs.map +0 -1
  130. package/dist/chunk-MIUW47JX.mjs +0 -639
  131. package/dist/chunk-MIUW47JX.mjs.map +0 -1
  132. package/dist/chunk-NM3CRAAL.mjs +0 -467
  133. package/dist/chunk-NM3CRAAL.mjs.map +0 -1
  134. package/dist/chunk-NNLCAVB6.mjs +0 -391
  135. package/dist/chunk-NNLCAVB6.mjs.map +0 -1
  136. package/dist/chunk-P7QDS5AT.mjs +0 -191
  137. package/dist/chunk-P7QDS5AT.mjs.map +0 -1
  138. package/dist/chunk-PFE6GMNE.mjs +0 -603
  139. package/dist/chunk-PFE6GMNE.mjs.map +0 -1
  140. package/dist/chunk-QGOHVJ6J.mjs +0 -63
  141. package/dist/chunk-QGOHVJ6J.mjs.map +0 -1
  142. package/dist/chunk-QGQX7SFC.mjs +0 -180
  143. package/dist/chunk-QGQX7SFC.mjs.map +0 -1
  144. package/dist/chunk-QKVUNGAH.mjs +0 -39
  145. package/dist/chunk-QKVUNGAH.mjs.map +0 -1
  146. package/dist/chunk-QM746KUO.mjs +0 -56
  147. package/dist/chunk-QM746KUO.mjs.map +0 -1
  148. package/dist/chunk-QTZZ2ISQ.mjs +0 -753
  149. package/dist/chunk-QTZZ2ISQ.mjs.map +0 -1
  150. package/dist/chunk-RBRLLZL5.mjs +0 -81
  151. package/dist/chunk-RBRLLZL5.mjs.map +0 -1
  152. package/dist/chunk-RHIFZZUI.mjs +0 -69
  153. package/dist/chunk-RHIFZZUI.mjs.map +0 -1
  154. package/dist/chunk-RSKVYESE.mjs +0 -187
  155. package/dist/chunk-RSKVYESE.mjs.map +0 -1
  156. package/dist/chunk-SCFX4UTD.mjs +0 -28
  157. package/dist/chunk-SCFX4UTD.mjs.map +0 -1
  158. package/dist/chunk-SL6HTIOK.mjs +0 -66
  159. package/dist/chunk-SL6HTIOK.mjs.map +0 -1
  160. package/dist/chunk-SPBBQLXI.mjs +0 -207
  161. package/dist/chunk-SPBBQLXI.mjs.map +0 -1
  162. package/dist/chunk-T4QJQK76.mjs +0 -459
  163. package/dist/chunk-T4QJQK76.mjs.map +0 -1
  164. package/dist/chunk-TQAEEJB4.mjs +0 -157
  165. package/dist/chunk-TQAEEJB4.mjs.map +0 -1
  166. package/dist/chunk-UB5UOSHB.mjs +0 -458
  167. package/dist/chunk-UB5UOSHB.mjs.map +0 -1
  168. package/dist/chunk-USWZZUEH.mjs +0 -25
  169. package/dist/chunk-USWZZUEH.mjs.map +0 -1
  170. package/dist/chunk-UVCIEUJC.mjs +0 -16
  171. package/dist/chunk-UVCIEUJC.mjs.map +0 -1
  172. package/dist/chunk-UXUAWNO5.mjs +0 -396
  173. package/dist/chunk-UXUAWNO5.mjs.map +0 -1
  174. package/dist/chunk-V3XURYJO.mjs +0 -756
  175. package/dist/chunk-V3XURYJO.mjs.map +0 -1
  176. package/dist/chunk-V6WE6JSZ.mjs +0 -352
  177. package/dist/chunk-V6WE6JSZ.mjs.map +0 -1
  178. package/dist/chunk-V7RBCSDJ.mjs +0 -170
  179. package/dist/chunk-V7RBCSDJ.mjs.map +0 -1
  180. package/dist/chunk-VCANOYFI.mjs +0 -588
  181. package/dist/chunk-VCANOYFI.mjs.map +0 -1
  182. package/dist/chunk-VY2UYN5R.mjs +0 -224
  183. package/dist/chunk-VY2UYN5R.mjs.map +0 -1
  184. package/dist/chunk-W2CRQFF6.mjs +0 -1352
  185. package/dist/chunk-W2CRQFF6.mjs.map +0 -1
  186. package/dist/chunk-WZ5QFROO.mjs +0 -23
  187. package/dist/chunk-WZ5QFROO.mjs.map +0 -1
  188. package/dist/chunk-XIVV5IWN.mjs +0 -541
  189. package/dist/chunk-XIVV5IWN.mjs.map +0 -1
  190. package/dist/chunk-YW7OBE6Q.mjs +0 -119
  191. package/dist/chunk-YW7OBE6Q.mjs.map +0 -1
  192. package/dist/chunk-Z5CQMP54.mjs +0 -365
  193. package/dist/chunk-Z5CQMP54.mjs.map +0 -1
  194. package/dist/chunk-ZBE6MLHL.mjs +0 -230
  195. package/dist/chunk-ZBE6MLHL.mjs.map +0 -1
  196. package/dist/chunk-ZZ57EH5Z.mjs +0 -173
  197. package/dist/chunk-ZZ57EH5Z.mjs.map +0 -1
  198. package/dist/client-BT1mFQas.d.mts +0 -447
  199. package/dist/client-Nn0q4eO4.d.ts +0 -447
  200. package/dist/client-cache-CIlyBlmx.d.ts +0 -6
  201. package/dist/client-cache-D-EZ7XVW.d.mts +0 -6
  202. package/dist/client-plugins-Cw4qUGsw.d.ts +0 -1855
  203. package/dist/client-plugins-DQQ1adXM.d.mts +0 -1855
  204. package/dist/client-plugins.cjs +0 -415
  205. package/dist/client-plugins.cjs.map +0 -1
  206. package/dist/client-plugins.d.mts +0 -22
  207. package/dist/client-plugins.d.ts +0 -22
  208. package/dist/client-plugins.mjs +0 -10
  209. package/dist/client-plugins.mjs.map +0 -1
  210. package/dist/client.cjs +0 -5402
  211. package/dist/client.cjs.map +0 -1
  212. package/dist/client.d.mts +0 -447
  213. package/dist/client.d.ts +0 -447
  214. package/dist/client.mjs +0 -110
  215. package/dist/client.mjs.map +0 -1
  216. package/dist/config.cjs +0 -38
  217. package/dist/config.cjs.map +0 -1
  218. package/dist/config.d.mts +0 -29
  219. package/dist/config.d.ts +0 -29
  220. package/dist/config.mjs +0 -10
  221. package/dist/config.mjs.map +0 -1
  222. package/dist/cron.cjs +0 -406
  223. package/dist/cron.cjs.map +0 -1
  224. package/dist/cron.d.mts +0 -78
  225. package/dist/cron.d.ts +0 -78
  226. package/dist/cron.mjs +0 -30
  227. package/dist/cron.mjs.map +0 -1
  228. package/dist/deferred.cjs +0 -438
  229. package/dist/deferred.cjs.map +0 -1
  230. package/dist/deferred.d.mts +0 -42
  231. package/dist/deferred.d.ts +0 -42
  232. package/dist/deferred.mjs +0 -28
  233. package/dist/deferred.mjs.map +0 -1
  234. package/dist/deployment.cjs +0 -199
  235. package/dist/deployment.cjs.map +0 -1
  236. package/dist/deployment.d.mts +0 -34
  237. package/dist/deployment.d.ts +0 -34
  238. package/dist/deployment.mjs +0 -38
  239. package/dist/deployment.mjs.map +0 -1
  240. package/dist/devtools-LVC3VB5P.mjs +0 -370
  241. package/dist/devtools-LVC3VB5P.mjs.map +0 -1
  242. package/dist/devtools-client-3XRTBND5.mjs +0 -216
  243. package/dist/devtools-client-3XRTBND5.mjs.map +0 -1
  244. package/dist/devtools-ui-NJKFORTG.mjs +0 -1349
  245. package/dist/devtools-ui-NJKFORTG.mjs.map +0 -1
  246. package/dist/docs.cjs +0 -5553
  247. package/dist/docs.cjs.map +0 -1
  248. package/dist/docs.d.mts +0 -69
  249. package/dist/docs.d.ts +0 -69
  250. package/dist/docs.mjs +0 -46
  251. package/dist/docs.mjs.map +0 -1
  252. package/dist/env-types.cjs +0 -223
  253. package/dist/env-types.cjs.map +0 -1
  254. package/dist/env-types.d.mts +0 -11
  255. package/dist/env-types.d.ts +0 -11
  256. package/dist/env-types.mjs +0 -9
  257. package/dist/env-types.mjs.map +0 -1
  258. package/dist/env.cjs +0 -215
  259. package/dist/env.cjs.map +0 -1
  260. package/dist/env.d.mts +0 -45
  261. package/dist/env.d.ts +0 -45
  262. package/dist/env.mjs +0 -22
  263. package/dist/env.mjs.map +0 -1
  264. package/dist/environment/vite.d.mts +0 -22
  265. package/dist/environment/vite.d.ts +0 -22
  266. package/dist/environment.cjs +0 -96
  267. package/dist/environment.cjs.map +0 -1
  268. package/dist/environment.d.mts +0 -18
  269. package/dist/environment.d.ts +0 -18
  270. package/dist/environment.mjs +0 -14
  271. package/dist/environment.mjs.map +0 -1
  272. package/dist/headers.cjs +0 -126
  273. package/dist/headers.cjs.map +0 -1
  274. package/dist/headers.d.mts +0 -22
  275. package/dist/headers.d.ts +0 -22
  276. package/dist/headers.mjs +0 -12
  277. package/dist/headers.mjs.map +0 -1
  278. package/dist/i18n/client.d.mts +0 -32
  279. package/dist/i18n/client.d.ts +0 -32
  280. package/dist/i18n/index.d.mts +0 -20
  281. package/dist/i18n/index.d.ts +0 -20
  282. package/dist/i18n/server.d.mts +0 -30
  283. package/dist/i18n/server.d.ts +0 -30
  284. package/dist/image/server.d.mts +0 -37
  285. package/dist/image/server.d.ts +0 -37
  286. package/dist/image/sharp.d.mts +0 -7
  287. package/dist/image/sharp.d.ts +0 -7
  288. package/dist/image-config-Duob7wER.d.mts +0 -50
  289. package/dist/image-config-Duob7wER.d.ts +0 -50
  290. package/dist/image.cjs +0 -209
  291. package/dist/image.cjs.map +0 -1
  292. package/dist/image.d.mts +0 -39
  293. package/dist/image.d.ts +0 -39
  294. package/dist/image.mjs +0 -165
  295. package/dist/image.mjs.map +0 -1
  296. package/dist/index.cjs +0 -41822
  297. package/dist/index.cjs.map +0 -1
  298. package/dist/index.d.mts +0 -451
  299. package/dist/index.d.ts +0 -451
  300. package/dist/index.mjs +0 -973
  301. package/dist/index.mjs.map +0 -1
  302. package/dist/integration-api-CHT2OKAf.d.mts +0 -93
  303. package/dist/integration-api-CHT2OKAf.d.ts +0 -93
  304. package/dist/integration-orm-GQLGU66X.mjs +0 -13
  305. package/dist/integration-orm-GQLGU66X.mjs.map +0 -1
  306. package/dist/integrations.cjs +0 -2820
  307. package/dist/integrations.cjs.map +0 -1
  308. package/dist/integrations.d.mts +0 -22
  309. package/dist/integrations.d.ts +0 -22
  310. package/dist/integrations.mjs +0 -51
  311. package/dist/integrations.mjs.map +0 -1
  312. package/dist/internal/build-runtime.d.mts +0 -39
  313. package/dist/internal/build-runtime.d.ts +0 -39
  314. package/dist/internal/client-runtime.d.mts +0 -2
  315. package/dist/internal/client-runtime.d.ts +0 -2
  316. package/dist/internal/config-runtime.d.mts +0 -39
  317. package/dist/internal/config-runtime.d.ts +0 -39
  318. package/dist/internal/production-node-env.d.mts +0 -12
  319. package/dist/internal/production-node-env.d.ts +0 -12
  320. package/dist/internal/production-runtime.d.mts +0 -39
  321. package/dist/internal/production-runtime.d.ts +0 -39
  322. package/dist/layers-VWVDTPUZ.mjs +0 -16
  323. package/dist/layers-VWVDTPUZ.mjs.map +0 -1
  324. package/dist/manager-THKFTOFE.mjs +0 -10
  325. package/dist/manager-THKFTOFE.mjs.map +0 -1
  326. package/dist/markdown.cjs +0 -299
  327. package/dist/markdown.cjs.map +0 -1
  328. package/dist/markdown.d.mts +0 -43
  329. package/dist/markdown.d.ts +0 -43
  330. package/dist/markdown.mjs +0 -14
  331. package/dist/markdown.mjs.map +0 -1
  332. package/dist/metadata-BAPg_Nmo.d.ts +0 -22
  333. package/dist/metadata-_6i9oFG3.d.mts +0 -22
  334. package/dist/middleware.cjs +0 -2148
  335. package/dist/middleware.cjs.map +0 -1
  336. package/dist/middleware.d.mts +0 -164
  337. package/dist/middleware.d.ts +0 -164
  338. package/dist/middleware.mjs +0 -49
  339. package/dist/middleware.mjs.map +0 -1
  340. package/dist/navigation-errors-Dvwpzaer.d.mts +0 -13
  341. package/dist/navigation-errors-Dvwpzaer.d.ts +0 -13
  342. package/dist/navigation.cjs +0 -1329
  343. package/dist/navigation.cjs.map +0 -1
  344. package/dist/navigation.d.mts +0 -14
  345. package/dist/navigation.d.ts +0 -14
  346. package/dist/navigation.mjs +0 -33
  347. package/dist/navigation.mjs.map +0 -1
  348. package/dist/nitro-QO5LV6QK.mjs +0 -689
  349. package/dist/nitro-QO5LV6QK.mjs.map +0 -1
  350. package/dist/observability.cjs +0 -186
  351. package/dist/observability.cjs.map +0 -1
  352. package/dist/observability.d.mts +0 -335
  353. package/dist/observability.d.ts +0 -335
  354. package/dist/observability.mjs +0 -16
  355. package/dist/observability.mjs.map +0 -1
  356. package/dist/params-BALtrRim.d.ts +0 -15
  357. package/dist/params-ry-lxqmy.d.mts +0 -15
  358. package/dist/plugin-BJDf43dc.d.mts +0 -165
  359. package/dist/plugin-BJDf43dc.d.ts +0 -165
  360. package/dist/plugin.cjs +0 -23225
  361. package/dist/plugin.d.mts +0 -22
  362. package/dist/plugin.d.ts +0 -22
  363. package/dist/production-runtime-BoJDc5mc.d.ts +0 -79
  364. package/dist/production-runtime-C_B79w2P.d.mts +0 -28
  365. package/dist/production-runtime-DDEM1D2q.d.ts +0 -28
  366. package/dist/production-runtime-DPfgMV9Y.d.mts +0 -79
  367. package/dist/query/client.d.mts +0 -61
  368. package/dist/query/client.d.ts +0 -61
  369. package/dist/query/index.d.mts +0 -90
  370. package/dist/query/index.d.ts +0 -90
  371. package/dist/query/parsers.d.mts +0 -25
  372. package/dist/query/parsers.d.ts +0 -25
  373. package/dist/query/server.d.mts +0 -55
  374. package/dist/query/server.d.ts +0 -55
  375. package/dist/request-BrFBuc8G.d.mts +0 -6
  376. package/dist/request-BslSZIRz.d.ts +0 -6
  377. package/dist/request.d.mts +0 -2
  378. package/dist/request.d.ts +0 -2
  379. package/dist/resolver-C6iecsDV.d.ts +0 -14
  380. package/dist/resolver-DlOPpjkB.d.mts +0 -14
  381. package/dist/route-runtime-DoOHzCAD.d.mts +0 -38
  382. package/dist/route-runtime-DoOHzCAD.d.ts +0 -38
  383. package/dist/router.d.mts +0 -36
  384. package/dist/router.d.ts +0 -36
  385. package/dist/routes.d.mts +0 -224
  386. package/dist/routes.d.ts +0 -224
  387. package/dist/runtime-9nQjVM7X.d.mts +0 -206
  388. package/dist/runtime-B6GvwDS1.d.ts +0 -27
  389. package/dist/runtime-DeAAZ6gO.d.mts +0 -27
  390. package/dist/runtime-DgeS2skB.d.ts +0 -206
  391. package/dist/server-action-security.d.mts +0 -43
  392. package/dist/server-action-security.d.ts +0 -43
  393. package/dist/server-fn-client.d.mts +0 -32
  394. package/dist/server-fn-client.d.ts +0 -32
  395. package/dist/server-fn.d.mts +0 -93
  396. package/dist/server-fn.d.ts +0 -93
  397. package/dist/server-plugins.d.mts +0 -55
  398. package/dist/server-plugins.d.ts +0 -55
  399. package/dist/server-query-client.d.mts +0 -50
  400. package/dist/server-query-client.d.ts +0 -50
  401. package/dist/server-query.d.mts +0 -36
  402. package/dist/server-query.d.ts +0 -36
  403. package/dist/server.d.mts +0 -48
  404. package/dist/server.d.ts +0 -48
  405. package/dist/storage.d.mts +0 -52
  406. package/dist/storage.d.ts +0 -52
  407. package/dist/testing.d.mts +0 -101
  408. package/dist/testing.d.ts +0 -101
  409. package/dist/transport-BmbGTXA5.d.mts +0 -49
  410. package/dist/transport-BmbGTXA5.d.ts +0 -49
  411. package/dist/types-BH1lhg5G.d.mts +0 -81
  412. package/dist/types-BH1lhg5G.d.ts +0 -81
  413. package/dist/types-C9N-nk5R.d.mts +0 -53
  414. package/dist/types-C9N-nk5R.d.ts +0 -53
  415. package/dist/types-D1A6-XvH.d.mts +0 -73
  416. package/dist/types-D1A6-XvH.d.ts +0 -73
  417. package/dist/utils-CHXlMDkg.d.mts +0 -23
  418. package/dist/utils-Drsyz1Vj.d.ts +0 -23
  419. package/dist/version.d.mts +0 -3
  420. package/dist/version.d.ts +0 -3
  421. package/dist/vite.d.mts +0 -22
  422. package/dist/vite.d.ts +0 -22
  423. package/dist/workflows.d.mts +0 -110
  424. package/dist/workflows.d.ts +0 -110
@@ -1,94 +0,0 @@
1
- import { ChildProcess } from 'node:child_process';
2
- import { U as BundleResultPayload, V as FarmPlugin, W as FarmIntegration } from './client-plugins-Cw4qUGsw.js';
3
- import './plugin-BJDf43dc.js';
4
- import 'react';
5
- import 'http';
6
- import './types-D1A6-XvH.js';
7
- import 'db0';
8
- import 'unstorage';
9
- import './integration-api-CHT2OKAf.js';
10
- import '@farming-labs/orm';
11
- import './types-C9N-nk5R.js';
12
- import '@farming-labs/docs';
13
- import './markdown.js';
14
- import './observability.js';
15
- import 'vite';
16
- import './workflows.js';
17
- import './cron.js';
18
- import './env.js';
19
- import './server-action-security.js';
20
- import './image-config-Duob7wER.js';
21
- import './types-BH1lhg5G.js';
22
- import './cache.js';
23
- import './route-runtime-DoOHzCAD.js';
24
-
25
- interface FarmAgentRuntimeInstance {
26
- readonly provider: string;
27
- readonly routePrefix: string;
28
- readonly routePrefixes: readonly string[];
29
- getOrigin(): string | undefined;
30
- }
31
- interface FarmManagedAgentRuntime {
32
- readonly origin: string;
33
- readonly process?: ChildProcess;
34
- stop(): Promise<void>;
35
- }
36
- interface FarmAgentRuntimeStartContext {
37
- readonly root: string;
38
- readonly log: {
39
- info(message: string, meta?: Record<string, unknown>): void;
40
- warn(message: string, meta?: Record<string, unknown>): void;
41
- error(message: string, meta?: Record<string, unknown>): void;
42
- };
43
- }
44
- interface FarmAgentRuntimeBuildContext extends BundleResultPayload {
45
- readonly provider: string;
46
- readonly routePrefix: string;
47
- readonly routePrefixes: readonly string[];
48
- }
49
- interface FarmAgentRuntimeIntegrationOptions {
50
- provider: string;
51
- routePrefix: string;
52
- /** Whether Farm's production server must dispatch this runtime's proxy routes. */
53
- serverRuntime?: boolean;
54
- additionalRoutePrefixes?: readonly string[];
55
- origin?: string;
56
- originEnv?: string | readonly string[];
57
- webSockets?: boolean;
58
- startDev?(context: FarmAgentRuntimeStartContext): Promise<FarmManagedAgentRuntime>;
59
- afterBuild?(context: FarmAgentRuntimeBuildContext): Promise<void> | void;
60
- plugins?: readonly FarmPlugin[];
61
- instance?: Record<string, unknown>;
62
- }
63
- interface FarmManagedProcessOptions {
64
- command: string;
65
- args?: readonly string[];
66
- cwd: string;
67
- env?: Record<string, string | undefined>;
68
- label: string;
69
- origin?: string;
70
- resolveOrigin?(output: string): string | undefined;
71
- healthPath?: string;
72
- timeoutMs?: number;
73
- stopTimeoutMs?: number;
74
- onOutput?(line: string, stream: "stdout" | "stderr"): void;
75
- }
76
- interface FarmAgentProxyOptions {
77
- fetch?: typeof globalThis.fetch;
78
- }
79
- declare function createAgentRuntimeIntegration(options: FarmAgentRuntimeIntegrationOptions): FarmIntegration;
80
- declare function applyAgentRuntimeViteProxy(config: {
81
- vite?: Record<string, any>;
82
- }, input: {
83
- origin: string;
84
- routePrefix: string;
85
- webSockets?: boolean;
86
- }): void;
87
- declare function proxyAgentRuntimeRequest(request: Request, origin: string, options?: FarmAgentProxyOptions): Promise<Response>;
88
- declare function startManagedAgentRuntime(options: FarmManagedProcessOptions): Promise<FarmManagedAgentRuntime>;
89
- declare function findAvailableAgentRuntimePort(host?: string): Promise<number>;
90
- declare function resolveProjectPackageBin(projectRoot: string, packageName: string, binName?: string): Promise<string>;
91
- declare function normalizeAgentOrigin(value: string): string;
92
- declare function normalizeAgentRoutePrefix(value: string): string;
93
-
94
- export { type FarmAgentProxyOptions, type FarmAgentRuntimeBuildContext, type FarmAgentRuntimeInstance, type FarmAgentRuntimeIntegrationOptions, type FarmAgentRuntimeStartContext, type FarmManagedAgentRuntime, type FarmManagedProcessOptions, applyAgentRuntimeViteProxy, createAgentRuntimeIntegration, findAvailableAgentRuntimePort, normalizeAgentOrigin, normalizeAgentRoutePrefix, proxyAgentRuntimeRequest, resolveProjectPackageBin, startManagedAgentRuntime };
@@ -1,479 +0,0 @@
1
- import {
2
- defineIntegration
3
- } from "./chunk-K4667E2Q.mjs";
4
- import "./chunk-QGOHVJ6J.mjs";
5
- import "./chunk-JK25YEN6.mjs";
6
- import {
7
- __name
8
- } from "./chunk-CGILA3WO.mjs";
9
-
10
- // src/agent-runtime.ts
11
- import { spawn } from "child_process";
12
- import { readFile } from "fs/promises";
13
- import { createRequire } from "module";
14
- import { createServer as createNetServer } from "net";
15
- import { dirname, isAbsolute, join, relative, resolve } from "path";
16
- var AGENT_RUNTIME_METHODS = ["GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS", "HEAD"];
17
- var HOP_BY_HOP_HEADERS = [
18
- "connection",
19
- "keep-alive",
20
- "proxy-authenticate",
21
- "proxy-authorization",
22
- "te",
23
- "trailer",
24
- "transfer-encoding",
25
- "upgrade"
26
- ];
27
- function createAgentRuntimeIntegration(options) {
28
- const provider = normalizeProviderName(options.provider);
29
- const routePrefix = normalizeAgentRoutePrefix(options.routePrefix);
30
- const routePrefixes = [
31
- routePrefix,
32
- ...(options.additionalRoutePrefixes || []).map(normalizeAgentRoutePrefix)
33
- ].filter((prefix, index, values) => values.indexOf(prefix) === index);
34
- const originEnv = normalizeOriginEnv(options.originEnv);
35
- const state = {
36
- origin: resolveConfiguredOrigin(options.origin, originEnv)
37
- };
38
- const runtimeInstance = {
39
- ...options.instance,
40
- provider,
41
- routePrefix,
42
- routePrefixes,
43
- getOrigin: /* @__PURE__ */ __name(() => state.origin ?? resolveConfiguredOrigin(options.origin, originEnv), "getOrigin")
44
- };
45
- const runtimePlugin = {
46
- name: `farm:agent-runtime:${provider}`,
47
- config(config, context) {
48
- if (!context.isDev) {
49
- return config;
50
- }
51
- const origin = runtimeInstance.getOrigin();
52
- if (!origin) {
53
- return config;
54
- }
55
- for (const prefix of routePrefixes) {
56
- applyAgentRuntimeViteProxy(config, {
57
- origin,
58
- routePrefix: prefix,
59
- webSockets: options.webSockets
60
- });
61
- }
62
- return config;
63
- },
64
- async afterBundle(result) {
65
- if (!result.success || !options.afterBuild) {
66
- return;
67
- }
68
- await options.afterBuild({
69
- ...result,
70
- provider,
71
- routePrefix,
72
- routePrefixes
73
- });
74
- }
75
- };
76
- return defineIntegration({
77
- category: "agent",
78
- type: provider,
79
- serverRuntime: options.serverRuntime,
80
- instance: runtimeInstance,
81
- async setup(context) {
82
- if (!context.isDev || state.origin || !options.startDev) {
83
- return;
84
- }
85
- state.managed = await options.startDev({
86
- root: context.appConfig.root || process.cwd(),
87
- log: context.log
88
- });
89
- state.origin = normalizeAgentOrigin(state.managed.origin);
90
- context.log.info(`${provider} runtime ready`, {
91
- origin: state.origin
92
- });
93
- await context.cleanup(async () => {
94
- await state.managed?.stop();
95
- state.managed = void 0;
96
- state.origin = void 0;
97
- });
98
- },
99
- routes: routePrefixes.map((prefix) => ({
100
- path: `${prefix}/[...farmAgentRuntimePath]`,
101
- methods: AGENT_RUNTIME_METHODS,
102
- rawBody: true,
103
- async handler(request) {
104
- const origin = runtimeInstance.getOrigin();
105
- if (!origin) {
106
- return Response.json(
107
- {
108
- error: "Agent runtime unavailable",
109
- provider
110
- },
111
- { status: 503 }
112
- );
113
- }
114
- return proxyAgentRuntimeRequest(request, origin);
115
- }
116
- })),
117
- plugins: [runtimePlugin, ...options.plugins || []]
118
- });
119
- }
120
- __name(createAgentRuntimeIntegration, "createAgentRuntimeIntegration");
121
- function applyAgentRuntimeViteProxy(config, input) {
122
- const origin = normalizeAgentOrigin(input.origin);
123
- const routePrefix = normalizeAgentRoutePrefix(input.routePrefix);
124
- const vite = config.vite || {};
125
- const server = vite.server || {};
126
- const proxy = server.proxy || {};
127
- if (proxy[routePrefix]) {
128
- throw new Error(
129
- `Farm agent runtime cannot own ${routePrefix} because vite.server.proxy already defines it.`
130
- );
131
- }
132
- config.vite = {
133
- ...vite,
134
- server: {
135
- ...server,
136
- proxy: {
137
- ...proxy,
138
- [routePrefix]: {
139
- target: origin,
140
- changeOrigin: true,
141
- ws: input.webSockets === true
142
- }
143
- }
144
- }
145
- };
146
- }
147
- __name(applyAgentRuntimeViteProxy, "applyAgentRuntimeViteProxy");
148
- async function proxyAgentRuntimeRequest(request, origin, options = {}) {
149
- const upstreamOrigin = normalizeAgentOrigin(origin);
150
- const incomingUrl = new URL(request.url);
151
- const targetUrl = new URL(`${incomingUrl.pathname}${incomingUrl.search}`, upstreamOrigin);
152
- const headers = createProxyRequestHeaders(request.headers, incomingUrl);
153
- const method = request.method.toUpperCase();
154
- const init = {
155
- method,
156
- headers,
157
- redirect: "manual",
158
- signal: request.signal
159
- };
160
- if (method !== "GET" && method !== "HEAD" && request.body) {
161
- init.body = request.body;
162
- init.duplex = "half";
163
- }
164
- try {
165
- const upstream = await (options.fetch || globalThis.fetch)(targetUrl, init);
166
- const responseHeaders = new Headers(upstream.headers);
167
- removeHopByHopHeaders(responseHeaders);
168
- rewriteProxyLocation(responseHeaders, upstreamOrigin, incomingUrl.origin);
169
- return new Response(upstream.body, {
170
- status: upstream.status,
171
- statusText: upstream.statusText,
172
- headers: responseHeaders
173
- });
174
- } catch (error) {
175
- if (request.signal.aborted || isAbortError(error)) {
176
- throw error;
177
- }
178
- return Response.json(
179
- {
180
- error: "Agent runtime request failed"
181
- },
182
- { status: 502 }
183
- );
184
- }
185
- }
186
- __name(proxyAgentRuntimeRequest, "proxyAgentRuntimeRequest");
187
- async function startManagedAgentRuntime(options) {
188
- const timeoutMs = options.timeoutMs ?? 3e4;
189
- const stopTimeoutMs = options.stopTimeoutMs ?? 2e3;
190
- const fixedOrigin = options.origin ? normalizeAgentOrigin(options.origin) : void 0;
191
- let output = "";
192
- let settled = false;
193
- let checkingReadiness = false;
194
- const child = spawn(options.command, [...options.args || []], {
195
- cwd: options.cwd,
196
- env: {
197
- ...process.env,
198
- ...options.env
199
- },
200
- stdio: ["ignore", "pipe", "pipe"]
201
- });
202
- const origin = await new Promise((resolveOrigin, reject) => {
203
- let timer;
204
- const finish = /* @__PURE__ */ __name(() => {
205
- if (settled) return;
206
- settled = true;
207
- clearTimeout(timer);
208
- child.off("error", onError);
209
- child.off("exit", onExit);
210
- }, "finish");
211
- const succeed = /* @__PURE__ */ __name(async (candidate) => {
212
- if (settled || checkingReadiness) return;
213
- checkingReadiness = true;
214
- try {
215
- const normalized = normalizeAgentOrigin(candidate);
216
- await waitForAgentRuntime(normalized, options.healthPath, timeoutMs, child);
217
- finish();
218
- resolveOrigin(normalized);
219
- } catch (error) {
220
- finish();
221
- terminateChild(child);
222
- reject(error);
223
- }
224
- }, "succeed");
225
- timer = setTimeout(() => {
226
- finish();
227
- terminateChild(child);
228
- reject(new Error(`${options.label} did not become ready within ${timeoutMs}ms.`));
229
- }, timeoutMs);
230
- const onError = /* @__PURE__ */ __name((error) => {
231
- finish();
232
- reject(error);
233
- }, "onError");
234
- const onExit = /* @__PURE__ */ __name((code, signal) => {
235
- finish();
236
- reject(
237
- new Error(
238
- `${options.label} exited before it was ready (code ${String(code)}, signal ${String(signal)}).`
239
- )
240
- );
241
- }, "onExit");
242
- const onData = /* @__PURE__ */ __name((chunk, stream) => {
243
- const text = chunk.toString("utf8");
244
- output = `${output}${text}`.slice(-16384);
245
- emitProcessOutput(text, stream, options.onOutput);
246
- if (!fixedOrigin && options.resolveOrigin) {
247
- const candidate = options.resolveOrigin(output);
248
- if (candidate) {
249
- void succeed(candidate);
250
- }
251
- }
252
- }, "onData");
253
- child.once("error", onError);
254
- child.once("exit", onExit);
255
- child.stdout?.on("data", (chunk) => onData(chunk, "stdout"));
256
- child.stderr?.on("data", (chunk) => onData(chunk, "stderr"));
257
- if (fixedOrigin) {
258
- void succeed(fixedOrigin);
259
- }
260
- });
261
- return {
262
- origin,
263
- process: child,
264
- async stop() {
265
- if (child.exitCode !== null || child.signalCode !== null) {
266
- return;
267
- }
268
- child.kill("SIGTERM");
269
- const exited = await waitForChildExit(child, stopTimeoutMs);
270
- if (!exited && child.exitCode === null && child.signalCode === null) {
271
- child.kill("SIGKILL");
272
- await waitForChildExit(child, stopTimeoutMs);
273
- }
274
- }
275
- };
276
- }
277
- __name(startManagedAgentRuntime, "startManagedAgentRuntime");
278
- async function findAvailableAgentRuntimePort(host = "127.0.0.1") {
279
- return await new Promise((resolvePort, reject) => {
280
- const server = createNetServer();
281
- server.unref();
282
- server.once("error", reject);
283
- server.listen(0, host, () => {
284
- const address = server.address();
285
- if (!address || typeof address === "string") {
286
- server.close();
287
- reject(new Error("Unable to allocate an agent runtime port."));
288
- return;
289
- }
290
- const port = address.port;
291
- server.close((error) => {
292
- if (error) reject(error);
293
- else resolvePort(port);
294
- });
295
- });
296
- });
297
- }
298
- __name(findAvailableAgentRuntimePort, "findAvailableAgentRuntimePort");
299
- async function resolveProjectPackageBin(projectRoot, packageName, binName) {
300
- const root = resolve(projectRoot);
301
- const projectRequire = createRequire(join(root, "package.json"));
302
- let packageJsonPath;
303
- try {
304
- packageJsonPath = projectRequire.resolve(`${packageName}/package.json`);
305
- } catch {
306
- throw new Error(
307
- `${packageName} is required by this agent integration. Install it in ${root} and try again.`
308
- );
309
- }
310
- const packageJson = JSON.parse(await readFile(packageJsonPath, "utf8"));
311
- const bin = typeof packageJson.bin === "string" ? packageJson.bin : packageJson.bin?.[binName || packageName.split("/").at(-1) || packageName];
312
- if (!bin) {
313
- throw new Error(
314
- `${packageName} does not expose the expected ${binName || packageName} binary.`
315
- );
316
- }
317
- const packageRoot = dirname(packageJsonPath);
318
- const binaryPath = resolve(packageRoot, bin);
319
- if (relative(packageRoot, binaryPath).startsWith("..") || isAbsolute(relative(packageRoot, binaryPath))) {
320
- throw new Error(`${packageName} exposes a binary outside its package root.`);
321
- }
322
- return binaryPath;
323
- }
324
- __name(resolveProjectPackageBin, "resolveProjectPackageBin");
325
- function normalizeAgentOrigin(value) {
326
- const input = value.trim();
327
- if (!input) {
328
- throw new Error("Agent runtime origin cannot be empty.");
329
- }
330
- const url = new URL(input);
331
- if (url.protocol !== "http:" && url.protocol !== "https:") {
332
- throw new Error("Agent runtime origin must use http or https.");
333
- }
334
- if (url.username || url.password) {
335
- throw new Error("Agent runtime origin cannot contain credentials.");
336
- }
337
- if (url.pathname !== "/" || url.search || url.hash) {
338
- throw new Error("Agent runtime origin must not contain a path, query, or hash.");
339
- }
340
- return url.origin;
341
- }
342
- __name(normalizeAgentOrigin, "normalizeAgentOrigin");
343
- function normalizeAgentRoutePrefix(value) {
344
- const normalized = `/${value.trim()}`.replace(/\/{2,}/g, "/");
345
- if (normalized === "/") {
346
- throw new Error("Agent runtime route prefix cannot own the application root.");
347
- }
348
- return normalized.replace(/\/$/, "");
349
- }
350
- __name(normalizeAgentRoutePrefix, "normalizeAgentRoutePrefix");
351
- function normalizeProviderName(value) {
352
- const provider = value.trim();
353
- if (!provider || !/^[a-z0-9][a-z0-9._-]*$/i.test(provider)) {
354
- throw new Error("Agent runtime provider must be a non-empty package-style name.");
355
- }
356
- return provider;
357
- }
358
- __name(normalizeProviderName, "normalizeProviderName");
359
- function normalizeOriginEnv(value) {
360
- if (!value) return [];
361
- return (Array.isArray(value) ? value : [value]).map((entry) => entry.trim()).filter(Boolean);
362
- }
363
- __name(normalizeOriginEnv, "normalizeOriginEnv");
364
- function resolveConfiguredOrigin(configuredOrigin, envNames) {
365
- if (configuredOrigin) {
366
- return normalizeAgentOrigin(configuredOrigin);
367
- }
368
- for (const envName of envNames) {
369
- const value = process.env[envName];
370
- if (value?.trim()) {
371
- return normalizeAgentOrigin(value);
372
- }
373
- }
374
- return void 0;
375
- }
376
- __name(resolveConfiguredOrigin, "resolveConfiguredOrigin");
377
- function createProxyRequestHeaders(input, incomingUrl) {
378
- const headers = new Headers(input);
379
- removeHopByHopHeaders(headers);
380
- headers.delete("host");
381
- headers.delete("content-length");
382
- headers.delete("accept-encoding");
383
- if (!headers.has("x-forwarded-host")) headers.set("x-forwarded-host", incomingUrl.host);
384
- if (!headers.has("x-forwarded-proto")) {
385
- headers.set("x-forwarded-proto", incomingUrl.protocol.replace(":", ""));
386
- }
387
- return headers;
388
- }
389
- __name(createProxyRequestHeaders, "createProxyRequestHeaders");
390
- function removeHopByHopHeaders(headers) {
391
- for (const header of HOP_BY_HOP_HEADERS) {
392
- headers.delete(header);
393
- }
394
- }
395
- __name(removeHopByHopHeaders, "removeHopByHopHeaders");
396
- function rewriteProxyLocation(headers, upstreamOrigin, incomingOrigin) {
397
- const location = headers.get("location");
398
- if (!location) return;
399
- try {
400
- const url = new URL(location, upstreamOrigin);
401
- if (url.origin === upstreamOrigin) {
402
- headers.set("location", `${incomingOrigin}${url.pathname}${url.search}${url.hash}`);
403
- }
404
- } catch {
405
- }
406
- }
407
- __name(rewriteProxyLocation, "rewriteProxyLocation");
408
- function isAbortError(error) {
409
- return error instanceof Error && error.name === "AbortError";
410
- }
411
- __name(isAbortError, "isAbortError");
412
- async function waitForAgentRuntime(origin, healthPath, timeoutMs, child) {
413
- const deadline = Date.now() + timeoutMs;
414
- const healthUrl = new URL(healthPath || "/", origin);
415
- while (Date.now() < deadline) {
416
- if (child.exitCode !== null || child.signalCode !== null) {
417
- throw new Error("Agent runtime exited while Farm was waiting for it to become ready.");
418
- }
419
- const controller = new AbortController();
420
- const timer = setTimeout(() => controller.abort(), 750);
421
- try {
422
- await fetch(healthUrl, {
423
- signal: controller.signal,
424
- redirect: "manual"
425
- });
426
- return;
427
- } catch {
428
- await delay(100);
429
- } finally {
430
- clearTimeout(timer);
431
- }
432
- }
433
- throw new Error(`Agent runtime at ${origin} did not answer before the startup timeout.`);
434
- }
435
- __name(waitForAgentRuntime, "waitForAgentRuntime");
436
- function emitProcessOutput(text, stream, onOutput) {
437
- if (!onOutput) return;
438
- for (const line of text.split(/\r?\n/)) {
439
- const value = line.trimEnd();
440
- if (value) onOutput(value, stream);
441
- }
442
- }
443
- __name(emitProcessOutput, "emitProcessOutput");
444
- function terminateChild(child) {
445
- if (child.exitCode === null && child.signalCode === null) {
446
- child.kill("SIGTERM");
447
- }
448
- }
449
- __name(terminateChild, "terminateChild");
450
- async function waitForChildExit(child, timeoutMs) {
451
- if (child.exitCode !== null || child.signalCode !== null) return true;
452
- return await new Promise((resolveExit) => {
453
- const timer = setTimeout(() => {
454
- child.off("exit", onExit);
455
- resolveExit(false);
456
- }, timeoutMs);
457
- const onExit = /* @__PURE__ */ __name(() => {
458
- clearTimeout(timer);
459
- resolveExit(true);
460
- }, "onExit");
461
- child.once("exit", onExit);
462
- });
463
- }
464
- __name(waitForChildExit, "waitForChildExit");
465
- function delay(ms) {
466
- return new Promise((resolveDelay) => setTimeout(resolveDelay, ms));
467
- }
468
- __name(delay, "delay");
469
- export {
470
- applyAgentRuntimeViteProxy,
471
- createAgentRuntimeIntegration,
472
- findAvailableAgentRuntimePort,
473
- normalizeAgentOrigin,
474
- normalizeAgentRoutePrefix,
475
- proxyAgentRuntimeRequest,
476
- resolveProjectPackageBin,
477
- startManagedAgentRuntime
478
- };
479
- //# sourceMappingURL=agent-runtime.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/agent-runtime.ts"],"sourcesContent":["import { spawn, type ChildProcess } from \"node:child_process\";\nimport { readFile } from \"node:fs/promises\";\nimport { createRequire } from \"node:module\";\nimport { createServer as createNetServer } from \"node:net\";\nimport { dirname, isAbsolute, join, relative, resolve } from \"node:path\";\nimport { defineIntegration, type FarmIntegration } from \"./integrations\";\nimport type { BundleResultPayload, FarmPlugin } from \"./plugin\";\n\nconst AGENT_RUNTIME_METHODS = [\"GET\", \"POST\", \"PUT\", \"PATCH\", \"DELETE\", \"OPTIONS\", \"HEAD\"] as const;\n\nconst HOP_BY_HOP_HEADERS = [\n \"connection\",\n \"keep-alive\",\n \"proxy-authenticate\",\n \"proxy-authorization\",\n \"te\",\n \"trailer\",\n \"transfer-encoding\",\n \"upgrade\",\n] as const;\n\nexport interface FarmAgentRuntimeInstance {\n readonly provider: string;\n readonly routePrefix: string;\n readonly routePrefixes: readonly string[];\n getOrigin(): string | undefined;\n}\n\nexport interface FarmManagedAgentRuntime {\n readonly origin: string;\n readonly process?: ChildProcess;\n stop(): Promise<void>;\n}\n\nexport interface FarmAgentRuntimeStartContext {\n readonly root: string;\n readonly log: {\n info(message: string, meta?: Record<string, unknown>): void;\n warn(message: string, meta?: Record<string, unknown>): void;\n error(message: string, meta?: Record<string, unknown>): void;\n };\n}\n\nexport interface FarmAgentRuntimeBuildContext extends BundleResultPayload {\n readonly provider: string;\n readonly routePrefix: string;\n readonly routePrefixes: readonly string[];\n}\n\nexport interface FarmAgentRuntimeIntegrationOptions {\n provider: string;\n routePrefix: string;\n /** Whether Farm's production server must dispatch this runtime's proxy routes. */\n serverRuntime?: boolean;\n additionalRoutePrefixes?: readonly string[];\n origin?: string;\n originEnv?: string | readonly string[];\n webSockets?: boolean;\n startDev?(context: FarmAgentRuntimeStartContext): Promise<FarmManagedAgentRuntime>;\n afterBuild?(context: FarmAgentRuntimeBuildContext): Promise<void> | void;\n plugins?: readonly FarmPlugin[];\n instance?: Record<string, unknown>;\n}\n\nexport interface FarmManagedProcessOptions {\n command: string;\n args?: readonly string[];\n cwd: string;\n env?: Record<string, string | undefined>;\n label: string;\n origin?: string;\n resolveOrigin?(output: string): string | undefined;\n healthPath?: string;\n timeoutMs?: number;\n stopTimeoutMs?: number;\n onOutput?(line: string, stream: \"stdout\" | \"stderr\"): void;\n}\n\nexport interface FarmAgentProxyOptions {\n fetch?: typeof globalThis.fetch;\n}\n\ninterface RuntimeState {\n origin?: string;\n managed?: FarmManagedAgentRuntime;\n}\n\nexport function createAgentRuntimeIntegration(\n options: FarmAgentRuntimeIntegrationOptions,\n): FarmIntegration {\n const provider = normalizeProviderName(options.provider);\n const routePrefix = normalizeAgentRoutePrefix(options.routePrefix);\n const routePrefixes = [\n routePrefix,\n ...(options.additionalRoutePrefixes || []).map(normalizeAgentRoutePrefix),\n ].filter((prefix, index, values) => values.indexOf(prefix) === index);\n const originEnv = normalizeOriginEnv(options.originEnv);\n const state: RuntimeState = {\n origin: resolveConfiguredOrigin(options.origin, originEnv),\n };\n\n const runtimeInstance: FarmAgentRuntimeInstance & Record<string, unknown> = {\n ...options.instance,\n provider,\n routePrefix,\n routePrefixes,\n getOrigin: () => state.origin ?? resolveConfiguredOrigin(options.origin, originEnv),\n };\n\n const runtimePlugin: FarmPlugin = {\n name: `farm:agent-runtime:${provider}`,\n config(config, context) {\n if (!context.isDev) {\n return config;\n }\n\n const origin = runtimeInstance.getOrigin();\n if (!origin) {\n return config;\n }\n\n for (const prefix of routePrefixes) {\n applyAgentRuntimeViteProxy(config, {\n origin,\n routePrefix: prefix,\n webSockets: options.webSockets,\n });\n }\n return config;\n },\n async afterBundle(result) {\n if (!result.success || !options.afterBuild) {\n return;\n }\n\n await options.afterBuild({\n ...result,\n provider,\n routePrefix,\n routePrefixes,\n });\n },\n };\n\n return defineIntegration({\n category: \"agent\",\n type: provider,\n serverRuntime: options.serverRuntime,\n instance: runtimeInstance,\n async setup(context) {\n if (!context.isDev || state.origin || !options.startDev) {\n return;\n }\n\n state.managed = await options.startDev({\n root: context.appConfig.root || process.cwd(),\n log: context.log,\n });\n state.origin = normalizeAgentOrigin(state.managed.origin);\n context.log.info(`${provider} runtime ready`, {\n origin: state.origin,\n });\n await context.cleanup(async () => {\n await state.managed?.stop();\n state.managed = undefined;\n state.origin = undefined;\n });\n },\n routes: routePrefixes.map((prefix) => ({\n path: `${prefix}/[...farmAgentRuntimePath]`,\n methods: AGENT_RUNTIME_METHODS,\n rawBody: true,\n async handler(request) {\n const origin = runtimeInstance.getOrigin();\n if (!origin) {\n return Response.json(\n {\n error: \"Agent runtime unavailable\",\n provider,\n },\n { status: 503 },\n );\n }\n\n return proxyAgentRuntimeRequest(request, origin);\n },\n })),\n plugins: [runtimePlugin, ...(options.plugins || [])],\n });\n}\n\nexport function applyAgentRuntimeViteProxy(\n config: { vite?: Record<string, any> },\n input: {\n origin: string;\n routePrefix: string;\n webSockets?: boolean;\n },\n): void {\n const origin = normalizeAgentOrigin(input.origin);\n const routePrefix = normalizeAgentRoutePrefix(input.routePrefix);\n const vite = config.vite || {};\n const server = vite.server || {};\n const proxy = server.proxy || {};\n\n if (proxy[routePrefix]) {\n throw new Error(\n `Farm agent runtime cannot own ${routePrefix} because vite.server.proxy already defines it.`,\n );\n }\n\n config.vite = {\n ...vite,\n server: {\n ...server,\n proxy: {\n ...proxy,\n [routePrefix]: {\n target: origin,\n changeOrigin: true,\n ws: input.webSockets === true,\n },\n },\n },\n };\n}\n\nexport async function proxyAgentRuntimeRequest(\n request: Request,\n origin: string,\n options: FarmAgentProxyOptions = {},\n): Promise<Response> {\n const upstreamOrigin = normalizeAgentOrigin(origin);\n const incomingUrl = new URL(request.url);\n const targetUrl = new URL(`${incomingUrl.pathname}${incomingUrl.search}`, upstreamOrigin);\n const headers = createProxyRequestHeaders(request.headers, incomingUrl);\n const method = request.method.toUpperCase();\n const init: RequestInit & { duplex?: \"half\" } = {\n method,\n headers,\n redirect: \"manual\",\n signal: request.signal,\n };\n\n if (method !== \"GET\" && method !== \"HEAD\" && request.body) {\n init.body = request.body;\n init.duplex = \"half\";\n }\n\n try {\n const upstream = await (options.fetch || globalThis.fetch)(targetUrl, init);\n const responseHeaders = new Headers(upstream.headers);\n removeHopByHopHeaders(responseHeaders);\n rewriteProxyLocation(responseHeaders, upstreamOrigin, incomingUrl.origin);\n\n return new Response(upstream.body, {\n status: upstream.status,\n statusText: upstream.statusText,\n headers: responseHeaders,\n });\n } catch (error) {\n if (request.signal.aborted || isAbortError(error)) {\n throw error;\n }\n\n return Response.json(\n {\n error: \"Agent runtime request failed\",\n },\n { status: 502 },\n );\n }\n}\n\nexport async function startManagedAgentRuntime(\n options: FarmManagedProcessOptions,\n): Promise<FarmManagedAgentRuntime> {\n const timeoutMs = options.timeoutMs ?? 30_000;\n const stopTimeoutMs = options.stopTimeoutMs ?? 2_000;\n const fixedOrigin = options.origin ? normalizeAgentOrigin(options.origin) : undefined;\n let output = \"\";\n let settled = false;\n let checkingReadiness = false;\n\n const child = spawn(options.command, [...(options.args || [])], {\n cwd: options.cwd,\n env: {\n ...process.env,\n ...options.env,\n },\n stdio: [\"ignore\", \"pipe\", \"pipe\"],\n });\n\n const origin = await new Promise<string>((resolveOrigin, reject) => {\n let timer: ReturnType<typeof setTimeout>;\n\n const finish = () => {\n if (settled) return;\n settled = true;\n clearTimeout(timer);\n child.off(\"error\", onError);\n child.off(\"exit\", onExit);\n };\n\n const succeed = async (candidate: string) => {\n if (settled || checkingReadiness) return;\n checkingReadiness = true;\n try {\n const normalized = normalizeAgentOrigin(candidate);\n await waitForAgentRuntime(normalized, options.healthPath, timeoutMs, child);\n finish();\n resolveOrigin(normalized);\n } catch (error) {\n finish();\n terminateChild(child);\n reject(error);\n }\n };\n\n timer = setTimeout(() => {\n finish();\n terminateChild(child);\n reject(new Error(`${options.label} did not become ready within ${timeoutMs}ms.`));\n }, timeoutMs);\n\n const onError = (error: Error) => {\n finish();\n reject(error);\n };\n\n const onExit = (code: number | null, signal: NodeJS.Signals | null) => {\n finish();\n reject(\n new Error(\n `${options.label} exited before it was ready (code ${String(code)}, signal ${String(signal)}).`,\n ),\n );\n };\n\n const onData = (chunk: Buffer, stream: \"stdout\" | \"stderr\") => {\n const text = chunk.toString(\"utf8\");\n output = `${output}${text}`.slice(-16_384);\n emitProcessOutput(text, stream, options.onOutput);\n\n if (!fixedOrigin && options.resolveOrigin) {\n const candidate = options.resolveOrigin(output);\n if (candidate) {\n void succeed(candidate);\n }\n }\n };\n\n child.once(\"error\", onError);\n child.once(\"exit\", onExit);\n child.stdout?.on(\"data\", (chunk: Buffer) => onData(chunk, \"stdout\"));\n child.stderr?.on(\"data\", (chunk: Buffer) => onData(chunk, \"stderr\"));\n\n if (fixedOrigin) {\n void succeed(fixedOrigin);\n }\n });\n\n return {\n origin,\n process: child,\n async stop() {\n if (child.exitCode !== null || child.signalCode !== null) {\n return;\n }\n\n child.kill(\"SIGTERM\");\n const exited = await waitForChildExit(child, stopTimeoutMs);\n if (!exited && child.exitCode === null && child.signalCode === null) {\n child.kill(\"SIGKILL\");\n await waitForChildExit(child, stopTimeoutMs);\n }\n },\n };\n}\n\nexport async function findAvailableAgentRuntimePort(host = \"127.0.0.1\"): Promise<number> {\n return await new Promise<number>((resolvePort, reject) => {\n const server = createNetServer();\n server.unref();\n server.once(\"error\", reject);\n server.listen(0, host, () => {\n const address = server.address();\n if (!address || typeof address === \"string\") {\n server.close();\n reject(new Error(\"Unable to allocate an agent runtime port.\"));\n return;\n }\n\n const port = address.port;\n server.close((error) => {\n if (error) reject(error);\n else resolvePort(port);\n });\n });\n });\n}\n\nexport async function resolveProjectPackageBin(\n projectRoot: string,\n packageName: string,\n binName?: string,\n): Promise<string> {\n const root = resolve(projectRoot);\n const projectRequire = createRequire(join(root, \"package.json\"));\n let packageJsonPath: string;\n\n try {\n packageJsonPath = projectRequire.resolve(`${packageName}/package.json`);\n } catch {\n throw new Error(\n `${packageName} is required by this agent integration. Install it in ${root} and try again.`,\n );\n }\n\n const packageJson = JSON.parse(await readFile(packageJsonPath, \"utf8\")) as {\n bin?: string | Record<string, string>;\n };\n const bin =\n typeof packageJson.bin === \"string\"\n ? packageJson.bin\n : packageJson.bin?.[binName || packageName.split(\"/\").at(-1) || packageName];\n\n if (!bin) {\n throw new Error(\n `${packageName} does not expose the expected ${binName || packageName} binary.`,\n );\n }\n\n const packageRoot = dirname(packageJsonPath);\n const binaryPath = resolve(packageRoot, bin);\n if (\n relative(packageRoot, binaryPath).startsWith(\"..\") ||\n isAbsolute(relative(packageRoot, binaryPath))\n ) {\n throw new Error(`${packageName} exposes a binary outside its package root.`);\n }\n\n return binaryPath;\n}\n\nexport function normalizeAgentOrigin(value: string): string {\n const input = value.trim();\n if (!input) {\n throw new Error(\"Agent runtime origin cannot be empty.\");\n }\n\n const url = new URL(input);\n if (url.protocol !== \"http:\" && url.protocol !== \"https:\") {\n throw new Error(\"Agent runtime origin must use http or https.\");\n }\n if (url.username || url.password) {\n throw new Error(\"Agent runtime origin cannot contain credentials.\");\n }\n if (url.pathname !== \"/\" || url.search || url.hash) {\n throw new Error(\"Agent runtime origin must not contain a path, query, or hash.\");\n }\n\n return url.origin;\n}\n\nexport function normalizeAgentRoutePrefix(value: string): string {\n const normalized = `/${value.trim()}`.replace(/\\/{2,}/g, \"/\");\n if (normalized === \"/\") {\n throw new Error(\"Agent runtime route prefix cannot own the application root.\");\n }\n return normalized.replace(/\\/$/, \"\");\n}\n\nfunction normalizeProviderName(value: string): string {\n const provider = value.trim();\n if (!provider || !/^[a-z0-9][a-z0-9._-]*$/i.test(provider)) {\n throw new Error(\"Agent runtime provider must be a non-empty package-style name.\");\n }\n return provider;\n}\n\nfunction normalizeOriginEnv(value: string | readonly string[] | undefined): readonly string[] {\n if (!value) return [];\n return (Array.isArray(value) ? value : [value]).map((entry) => entry.trim()).filter(Boolean);\n}\n\nfunction resolveConfiguredOrigin(\n configuredOrigin: string | undefined,\n envNames: readonly string[],\n): string | undefined {\n if (configuredOrigin) {\n return normalizeAgentOrigin(configuredOrigin);\n }\n\n for (const envName of envNames) {\n const value = process.env[envName];\n if (value?.trim()) {\n return normalizeAgentOrigin(value);\n }\n }\n\n return undefined;\n}\n\nfunction createProxyRequestHeaders(input: Headers, incomingUrl: URL): Headers {\n const headers = new Headers(input);\n removeHopByHopHeaders(headers);\n headers.delete(\"host\");\n headers.delete(\"content-length\");\n headers.delete(\"accept-encoding\");\n if (!headers.has(\"x-forwarded-host\")) headers.set(\"x-forwarded-host\", incomingUrl.host);\n if (!headers.has(\"x-forwarded-proto\")) {\n headers.set(\"x-forwarded-proto\", incomingUrl.protocol.replace(\":\", \"\"));\n }\n return headers;\n}\n\nfunction removeHopByHopHeaders(headers: Headers): void {\n for (const header of HOP_BY_HOP_HEADERS) {\n headers.delete(header);\n }\n}\n\nfunction rewriteProxyLocation(\n headers: Headers,\n upstreamOrigin: string,\n incomingOrigin: string,\n): void {\n const location = headers.get(\"location\");\n if (!location) return;\n\n try {\n const url = new URL(location, upstreamOrigin);\n if (url.origin === upstreamOrigin) {\n headers.set(\"location\", `${incomingOrigin}${url.pathname}${url.search}${url.hash}`);\n }\n } catch {\n // Preserve non-URL Location values exactly as returned by the runtime.\n }\n}\n\nfunction isAbortError(error: unknown): boolean {\n return error instanceof Error && error.name === \"AbortError\";\n}\n\nasync function waitForAgentRuntime(\n origin: string,\n healthPath: string | undefined,\n timeoutMs: number,\n child: ChildProcess,\n): Promise<void> {\n const deadline = Date.now() + timeoutMs;\n const healthUrl = new URL(healthPath || \"/\", origin);\n\n while (Date.now() < deadline) {\n if (child.exitCode !== null || child.signalCode !== null) {\n throw new Error(\"Agent runtime exited while Farm was waiting for it to become ready.\");\n }\n\n const controller = new AbortController();\n const timer = setTimeout(() => controller.abort(), 750);\n try {\n await fetch(healthUrl, {\n signal: controller.signal,\n redirect: \"manual\",\n });\n return;\n } catch {\n await delay(100);\n } finally {\n clearTimeout(timer);\n }\n }\n\n throw new Error(`Agent runtime at ${origin} did not answer before the startup timeout.`);\n}\n\nfunction emitProcessOutput(\n text: string,\n stream: \"stdout\" | \"stderr\",\n onOutput: FarmManagedProcessOptions[\"onOutput\"],\n): void {\n if (!onOutput) return;\n for (const line of text.split(/\\r?\\n/)) {\n const value = line.trimEnd();\n if (value) onOutput(value, stream);\n }\n}\n\nfunction terminateChild(child: ChildProcess): void {\n if (child.exitCode === null && child.signalCode === null) {\n child.kill(\"SIGTERM\");\n }\n}\n\nasync function waitForChildExit(child: ChildProcess, timeoutMs: number): Promise<boolean> {\n if (child.exitCode !== null || child.signalCode !== null) return true;\n return await new Promise<boolean>((resolveExit) => {\n const timer = setTimeout(() => {\n child.off(\"exit\", onExit);\n resolveExit(false);\n }, timeoutMs);\n const onExit = () => {\n clearTimeout(timer);\n resolveExit(true);\n };\n child.once(\"exit\", onExit);\n });\n}\n\nfunction delay(ms: number): Promise<void> {\n return new Promise((resolveDelay) => setTimeout(resolveDelay, ms));\n}\n"],"mappings":";;;;;;;;;;AAAA,SAAS,aAAgC;AACzC,SAAS,gBAAgB;AACzB,SAAS,qBAAqB;AAC9B,SAAS,gBAAgB,uBAAuB;AAChD,SAAS,SAAS,YAAY,MAAM,UAAU,eAAe;AAI7D,IAAM,wBAAwB,CAAC,OAAO,QAAQ,OAAO,SAAS,UAAU,WAAW,MAAM;AAEzF,IAAM,qBAAqB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAoEO,SAAS,8BACd,SACiB;AACjB,QAAM,WAAW,sBAAsB,QAAQ,QAAQ;AACvD,QAAM,cAAc,0BAA0B,QAAQ,WAAW;AACjE,QAAM,gBAAgB;AAAA,IACpB;AAAA,IACA,IAAI,QAAQ,2BAA2B,CAAC,GAAG,IAAI,yBAAyB;AAAA,EAC1E,EAAE,OAAO,CAAC,QAAQ,OAAO,WAAW,OAAO,QAAQ,MAAM,MAAM,KAAK;AACpE,QAAM,YAAY,mBAAmB,QAAQ,SAAS;AACtD,QAAM,QAAsB;AAAA,IAC1B,QAAQ,wBAAwB,QAAQ,QAAQ,SAAS;AAAA,EAC3D;AAEA,QAAM,kBAAsE;AAAA,IAC1E,GAAG,QAAQ;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,6BAAM,MAAM,UAAU,wBAAwB,QAAQ,QAAQ,SAAS,GAAvE;AAAA,EACb;AAEA,QAAM,gBAA4B;AAAA,IAChC,MAAM,sBAAsB,QAAQ;AAAA,IACpC,OAAO,QAAQ,SAAS;AACtB,UAAI,CAAC,QAAQ,OAAO;AAClB,eAAO;AAAA,MACT;AAEA,YAAM,SAAS,gBAAgB,UAAU;AACzC,UAAI,CAAC,QAAQ;AACX,eAAO;AAAA,MACT;AAEA,iBAAW,UAAU,eAAe;AAClC,mCAA2B,QAAQ;AAAA,UACjC;AAAA,UACA,aAAa;AAAA,UACb,YAAY,QAAQ;AAAA,QACtB,CAAC;AAAA,MACH;AACA,aAAO;AAAA,IACT;AAAA,IACA,MAAM,YAAY,QAAQ;AACxB,UAAI,CAAC,OAAO,WAAW,CAAC,QAAQ,YAAY;AAC1C;AAAA,MACF;AAEA,YAAM,QAAQ,WAAW;AAAA,QACvB,GAAG;AAAA,QACH;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF;AAEA,SAAO,kBAAkB;AAAA,IACvB,UAAU;AAAA,IACV,MAAM;AAAA,IACN,eAAe,QAAQ;AAAA,IACvB,UAAU;AAAA,IACV,MAAM,MAAM,SAAS;AACnB,UAAI,CAAC,QAAQ,SAAS,MAAM,UAAU,CAAC,QAAQ,UAAU;AACvD;AAAA,MACF;AAEA,YAAM,UAAU,MAAM,QAAQ,SAAS;AAAA,QACrC,MAAM,QAAQ,UAAU,QAAQ,QAAQ,IAAI;AAAA,QAC5C,KAAK,QAAQ;AAAA,MACf,CAAC;AACD,YAAM,SAAS,qBAAqB,MAAM,QAAQ,MAAM;AACxD,cAAQ,IAAI,KAAK,GAAG,QAAQ,kBAAkB;AAAA,QAC5C,QAAQ,MAAM;AAAA,MAChB,CAAC;AACD,YAAM,QAAQ,QAAQ,YAAY;AAChC,cAAM,MAAM,SAAS,KAAK;AAC1B,cAAM,UAAU;AAChB,cAAM,SAAS;AAAA,MACjB,CAAC;AAAA,IACH;AAAA,IACA,QAAQ,cAAc,IAAI,CAAC,YAAY;AAAA,MACrC,MAAM,GAAG,MAAM;AAAA,MACf,SAAS;AAAA,MACT,SAAS;AAAA,MACT,MAAM,QAAQ,SAAS;AACrB,cAAM,SAAS,gBAAgB,UAAU;AACzC,YAAI,CAAC,QAAQ;AACX,iBAAO,SAAS;AAAA,YACd;AAAA,cACE,OAAO;AAAA,cACP;AAAA,YACF;AAAA,YACA,EAAE,QAAQ,IAAI;AAAA,UAChB;AAAA,QACF;AAEA,eAAO,yBAAyB,SAAS,MAAM;AAAA,MACjD;AAAA,IACF,EAAE;AAAA,IACF,SAAS,CAAC,eAAe,GAAI,QAAQ,WAAW,CAAC,CAAE;AAAA,EACrD,CAAC;AACH;AAtGgB;AAwGT,SAAS,2BACd,QACA,OAKM;AACN,QAAM,SAAS,qBAAqB,MAAM,MAAM;AAChD,QAAM,cAAc,0BAA0B,MAAM,WAAW;AAC/D,QAAM,OAAO,OAAO,QAAQ,CAAC;AAC7B,QAAM,SAAS,KAAK,UAAU,CAAC;AAC/B,QAAM,QAAQ,OAAO,SAAS,CAAC;AAE/B,MAAI,MAAM,WAAW,GAAG;AACtB,UAAM,IAAI;AAAA,MACR,iCAAiC,WAAW;AAAA,IAC9C;AAAA,EACF;AAEA,SAAO,OAAO;AAAA,IACZ,GAAG;AAAA,IACH,QAAQ;AAAA,MACN,GAAG;AAAA,MACH,OAAO;AAAA,QACL,GAAG;AAAA,QACH,CAAC,WAAW,GAAG;AAAA,UACb,QAAQ;AAAA,UACR,cAAc;AAAA,UACd,IAAI,MAAM,eAAe;AAAA,QAC3B;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;AAlCgB;AAoChB,eAAsB,yBACpB,SACA,QACA,UAAiC,CAAC,GACf;AACnB,QAAM,iBAAiB,qBAAqB,MAAM;AAClD,QAAM,cAAc,IAAI,IAAI,QAAQ,GAAG;AACvC,QAAM,YAAY,IAAI,IAAI,GAAG,YAAY,QAAQ,GAAG,YAAY,MAAM,IAAI,cAAc;AACxF,QAAM,UAAU,0BAA0B,QAAQ,SAAS,WAAW;AACtE,QAAM,SAAS,QAAQ,OAAO,YAAY;AAC1C,QAAM,OAA0C;AAAA,IAC9C;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,QAAQ,QAAQ;AAAA,EAClB;AAEA,MAAI,WAAW,SAAS,WAAW,UAAU,QAAQ,MAAM;AACzD,SAAK,OAAO,QAAQ;AACpB,SAAK,SAAS;AAAA,EAChB;AAEA,MAAI;AACF,UAAM,WAAW,OAAO,QAAQ,SAAS,WAAW,OAAO,WAAW,IAAI;AAC1E,UAAM,kBAAkB,IAAI,QAAQ,SAAS,OAAO;AACpD,0BAAsB,eAAe;AACrC,yBAAqB,iBAAiB,gBAAgB,YAAY,MAAM;AAExE,WAAO,IAAI,SAAS,SAAS,MAAM;AAAA,MACjC,QAAQ,SAAS;AAAA,MACjB,YAAY,SAAS;AAAA,MACrB,SAAS;AAAA,IACX,CAAC;AAAA,EACH,SAAS,OAAO;AACd,QAAI,QAAQ,OAAO,WAAW,aAAa,KAAK,GAAG;AACjD,YAAM;AAAA,IACR;AAEA,WAAO,SAAS;AAAA,MACd;AAAA,QACE,OAAO;AAAA,MACT;AAAA,MACA,EAAE,QAAQ,IAAI;AAAA,IAChB;AAAA,EACF;AACF;AA7CsB;AA+CtB,eAAsB,yBACpB,SACkC;AAClC,QAAM,YAAY,QAAQ,aAAa;AACvC,QAAM,gBAAgB,QAAQ,iBAAiB;AAC/C,QAAM,cAAc,QAAQ,SAAS,qBAAqB,QAAQ,MAAM,IAAI;AAC5E,MAAI,SAAS;AACb,MAAI,UAAU;AACd,MAAI,oBAAoB;AAExB,QAAM,QAAQ,MAAM,QAAQ,SAAS,CAAC,GAAI,QAAQ,QAAQ,CAAC,CAAE,GAAG;AAAA,IAC9D,KAAK,QAAQ;AAAA,IACb,KAAK;AAAA,MACH,GAAG,QAAQ;AAAA,MACX,GAAG,QAAQ;AAAA,IACb;AAAA,IACA,OAAO,CAAC,UAAU,QAAQ,MAAM;AAAA,EAClC,CAAC;AAED,QAAM,SAAS,MAAM,IAAI,QAAgB,CAAC,eAAe,WAAW;AAClE,QAAI;AAEJ,UAAM,SAAS,6BAAM;AACnB,UAAI,QAAS;AACb,gBAAU;AACV,mBAAa,KAAK;AAClB,YAAM,IAAI,SAAS,OAAO;AAC1B,YAAM,IAAI,QAAQ,MAAM;AAAA,IAC1B,GANe;AAQf,UAAM,UAAU,8BAAO,cAAsB;AAC3C,UAAI,WAAW,kBAAmB;AAClC,0BAAoB;AACpB,UAAI;AACF,cAAM,aAAa,qBAAqB,SAAS;AACjD,cAAM,oBAAoB,YAAY,QAAQ,YAAY,WAAW,KAAK;AAC1E,eAAO;AACP,sBAAc,UAAU;AAAA,MAC1B,SAAS,OAAO;AACd,eAAO;AACP,uBAAe,KAAK;AACpB,eAAO,KAAK;AAAA,MACd;AAAA,IACF,GAbgB;AAehB,YAAQ,WAAW,MAAM;AACvB,aAAO;AACP,qBAAe,KAAK;AACpB,aAAO,IAAI,MAAM,GAAG,QAAQ,KAAK,gCAAgC,SAAS,KAAK,CAAC;AAAA,IAClF,GAAG,SAAS;AAEZ,UAAM,UAAU,wBAAC,UAAiB;AAChC,aAAO;AACP,aAAO,KAAK;AAAA,IACd,GAHgB;AAKhB,UAAM,SAAS,wBAAC,MAAqB,WAAkC;AACrE,aAAO;AACP;AAAA,QACE,IAAI;AAAA,UACF,GAAG,QAAQ,KAAK,qCAAqC,OAAO,IAAI,CAAC,YAAY,OAAO,MAAM,CAAC;AAAA,QAC7F;AAAA,MACF;AAAA,IACF,GAPe;AASf,UAAM,SAAS,wBAAC,OAAe,WAAgC;AAC7D,YAAM,OAAO,MAAM,SAAS,MAAM;AAClC,eAAS,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM,MAAO;AACzC,wBAAkB,MAAM,QAAQ,QAAQ,QAAQ;AAEhD,UAAI,CAAC,eAAe,QAAQ,eAAe;AACzC,cAAM,YAAY,QAAQ,cAAc,MAAM;AAC9C,YAAI,WAAW;AACb,eAAK,QAAQ,SAAS;AAAA,QACxB;AAAA,MACF;AAAA,IACF,GAXe;AAaf,UAAM,KAAK,SAAS,OAAO;AAC3B,UAAM,KAAK,QAAQ,MAAM;AACzB,UAAM,QAAQ,GAAG,QAAQ,CAAC,UAAkB,OAAO,OAAO,QAAQ,CAAC;AACnE,UAAM,QAAQ,GAAG,QAAQ,CAAC,UAAkB,OAAO,OAAO,QAAQ,CAAC;AAEnE,QAAI,aAAa;AACf,WAAK,QAAQ,WAAW;AAAA,IAC1B;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL;AAAA,IACA,SAAS;AAAA,IACT,MAAM,OAAO;AACX,UAAI,MAAM,aAAa,QAAQ,MAAM,eAAe,MAAM;AACxD;AAAA,MACF;AAEA,YAAM,KAAK,SAAS;AACpB,YAAM,SAAS,MAAM,iBAAiB,OAAO,aAAa;AAC1D,UAAI,CAAC,UAAU,MAAM,aAAa,QAAQ,MAAM,eAAe,MAAM;AACnE,cAAM,KAAK,SAAS;AACpB,cAAM,iBAAiB,OAAO,aAAa;AAAA,MAC7C;AAAA,IACF;AAAA,EACF;AACF;AAxGsB;AA0GtB,eAAsB,8BAA8B,OAAO,aAA8B;AACvF,SAAO,MAAM,IAAI,QAAgB,CAAC,aAAa,WAAW;AACxD,UAAM,SAAS,gBAAgB;AAC/B,WAAO,MAAM;AACb,WAAO,KAAK,SAAS,MAAM;AAC3B,WAAO,OAAO,GAAG,MAAM,MAAM;AAC3B,YAAM,UAAU,OAAO,QAAQ;AAC/B,UAAI,CAAC,WAAW,OAAO,YAAY,UAAU;AAC3C,eAAO,MAAM;AACb,eAAO,IAAI,MAAM,2CAA2C,CAAC;AAC7D;AAAA,MACF;AAEA,YAAM,OAAO,QAAQ;AACrB,aAAO,MAAM,CAAC,UAAU;AACtB,YAAI,MAAO,QAAO,KAAK;AAAA,YAClB,aAAY,IAAI;AAAA,MACvB,CAAC;AAAA,IACH,CAAC;AAAA,EACH,CAAC;AACH;AApBsB;AAsBtB,eAAsB,yBACpB,aACA,aACA,SACiB;AACjB,QAAM,OAAO,QAAQ,WAAW;AAChC,QAAM,iBAAiB,cAAc,KAAK,MAAM,cAAc,CAAC;AAC/D,MAAI;AAEJ,MAAI;AACF,sBAAkB,eAAe,QAAQ,GAAG,WAAW,eAAe;AAAA,EACxE,QAAQ;AACN,UAAM,IAAI;AAAA,MACR,GAAG,WAAW,yDAAyD,IAAI;AAAA,IAC7E;AAAA,EACF;AAEA,QAAM,cAAc,KAAK,MAAM,MAAM,SAAS,iBAAiB,MAAM,CAAC;AAGtE,QAAM,MACJ,OAAO,YAAY,QAAQ,WACvB,YAAY,MACZ,YAAY,MAAM,WAAW,YAAY,MAAM,GAAG,EAAE,GAAG,EAAE,KAAK,WAAW;AAE/E,MAAI,CAAC,KAAK;AACR,UAAM,IAAI;AAAA,MACR,GAAG,WAAW,iCAAiC,WAAW,WAAW;AAAA,IACvE;AAAA,EACF;AAEA,QAAM,cAAc,QAAQ,eAAe;AAC3C,QAAM,aAAa,QAAQ,aAAa,GAAG;AAC3C,MACE,SAAS,aAAa,UAAU,EAAE,WAAW,IAAI,KACjD,WAAW,SAAS,aAAa,UAAU,CAAC,GAC5C;AACA,UAAM,IAAI,MAAM,GAAG,WAAW,6CAA6C;AAAA,EAC7E;AAEA,SAAO;AACT;AAzCsB;AA2Cf,SAAS,qBAAqB,OAAuB;AAC1D,QAAM,QAAQ,MAAM,KAAK;AACzB,MAAI,CAAC,OAAO;AACV,UAAM,IAAI,MAAM,uCAAuC;AAAA,EACzD;AAEA,QAAM,MAAM,IAAI,IAAI,KAAK;AACzB,MAAI,IAAI,aAAa,WAAW,IAAI,aAAa,UAAU;AACzD,UAAM,IAAI,MAAM,8CAA8C;AAAA,EAChE;AACA,MAAI,IAAI,YAAY,IAAI,UAAU;AAChC,UAAM,IAAI,MAAM,kDAAkD;AAAA,EACpE;AACA,MAAI,IAAI,aAAa,OAAO,IAAI,UAAU,IAAI,MAAM;AAClD,UAAM,IAAI,MAAM,+DAA+D;AAAA,EACjF;AAEA,SAAO,IAAI;AACb;AAlBgB;AAoBT,SAAS,0BAA0B,OAAuB;AAC/D,QAAM,aAAa,IAAI,MAAM,KAAK,CAAC,GAAG,QAAQ,WAAW,GAAG;AAC5D,MAAI,eAAe,KAAK;AACtB,UAAM,IAAI,MAAM,6DAA6D;AAAA,EAC/E;AACA,SAAO,WAAW,QAAQ,OAAO,EAAE;AACrC;AANgB;AAQhB,SAAS,sBAAsB,OAAuB;AACpD,QAAM,WAAW,MAAM,KAAK;AAC5B,MAAI,CAAC,YAAY,CAAC,0BAA0B,KAAK,QAAQ,GAAG;AAC1D,UAAM,IAAI,MAAM,gEAAgE;AAAA,EAClF;AACA,SAAO;AACT;AANS;AAQT,SAAS,mBAAmB,OAAkE;AAC5F,MAAI,CAAC,MAAO,QAAO,CAAC;AACpB,UAAQ,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC,UAAU,MAAM,KAAK,CAAC,EAAE,OAAO,OAAO;AAC7F;AAHS;AAKT,SAAS,wBACP,kBACA,UACoB;AACpB,MAAI,kBAAkB;AACpB,WAAO,qBAAqB,gBAAgB;AAAA,EAC9C;AAEA,aAAW,WAAW,UAAU;AAC9B,UAAM,QAAQ,QAAQ,IAAI,OAAO;AACjC,QAAI,OAAO,KAAK,GAAG;AACjB,aAAO,qBAAqB,KAAK;AAAA,IACnC;AAAA,EACF;AAEA,SAAO;AACT;AAhBS;AAkBT,SAAS,0BAA0B,OAAgB,aAA2B;AAC5E,QAAM,UAAU,IAAI,QAAQ,KAAK;AACjC,wBAAsB,OAAO;AAC7B,UAAQ,OAAO,MAAM;AACrB,UAAQ,OAAO,gBAAgB;AAC/B,UAAQ,OAAO,iBAAiB;AAChC,MAAI,CAAC,QAAQ,IAAI,kBAAkB,EAAG,SAAQ,IAAI,oBAAoB,YAAY,IAAI;AACtF,MAAI,CAAC,QAAQ,IAAI,mBAAmB,GAAG;AACrC,YAAQ,IAAI,qBAAqB,YAAY,SAAS,QAAQ,KAAK,EAAE,CAAC;AAAA,EACxE;AACA,SAAO;AACT;AAXS;AAaT,SAAS,sBAAsB,SAAwB;AACrD,aAAW,UAAU,oBAAoB;AACvC,YAAQ,OAAO,MAAM;AAAA,EACvB;AACF;AAJS;AAMT,SAAS,qBACP,SACA,gBACA,gBACM;AACN,QAAM,WAAW,QAAQ,IAAI,UAAU;AACvC,MAAI,CAAC,SAAU;AAEf,MAAI;AACF,UAAM,MAAM,IAAI,IAAI,UAAU,cAAc;AAC5C,QAAI,IAAI,WAAW,gBAAgB;AACjC,cAAQ,IAAI,YAAY,GAAG,cAAc,GAAG,IAAI,QAAQ,GAAG,IAAI,MAAM,GAAG,IAAI,IAAI,EAAE;AAAA,IACpF;AAAA,EACF,QAAQ;AAAA,EAER;AACF;AAhBS;AAkBT,SAAS,aAAa,OAAyB;AAC7C,SAAO,iBAAiB,SAAS,MAAM,SAAS;AAClD;AAFS;AAIT,eAAe,oBACb,QACA,YACA,WACA,OACe;AACf,QAAM,WAAW,KAAK,IAAI,IAAI;AAC9B,QAAM,YAAY,IAAI,IAAI,cAAc,KAAK,MAAM;AAEnD,SAAO,KAAK,IAAI,IAAI,UAAU;AAC5B,QAAI,MAAM,aAAa,QAAQ,MAAM,eAAe,MAAM;AACxD,YAAM,IAAI,MAAM,qEAAqE;AAAA,IACvF;AAEA,UAAM,aAAa,IAAI,gBAAgB;AACvC,UAAM,QAAQ,WAAW,MAAM,WAAW,MAAM,GAAG,GAAG;AACtD,QAAI;AACF,YAAM,MAAM,WAAW;AAAA,QACrB,QAAQ,WAAW;AAAA,QACnB,UAAU;AAAA,MACZ,CAAC;AACD;AAAA,IACF,QAAQ;AACN,YAAM,MAAM,GAAG;AAAA,IACjB,UAAE;AACA,mBAAa,KAAK;AAAA,IACpB;AAAA,EACF;AAEA,QAAM,IAAI,MAAM,oBAAoB,MAAM,6CAA6C;AACzF;AA9Be;AAgCf,SAAS,kBACP,MACA,QACA,UACM;AACN,MAAI,CAAC,SAAU;AACf,aAAW,QAAQ,KAAK,MAAM,OAAO,GAAG;AACtC,UAAM,QAAQ,KAAK,QAAQ;AAC3B,QAAI,MAAO,UAAS,OAAO,MAAM;AAAA,EACnC;AACF;AAVS;AAYT,SAAS,eAAe,OAA2B;AACjD,MAAI,MAAM,aAAa,QAAQ,MAAM,eAAe,MAAM;AACxD,UAAM,KAAK,SAAS;AAAA,EACtB;AACF;AAJS;AAMT,eAAe,iBAAiB,OAAqB,WAAqC;AACxF,MAAI,MAAM,aAAa,QAAQ,MAAM,eAAe,KAAM,QAAO;AACjE,SAAO,MAAM,IAAI,QAAiB,CAAC,gBAAgB;AACjD,UAAM,QAAQ,WAAW,MAAM;AAC7B,YAAM,IAAI,QAAQ,MAAM;AACxB,kBAAY,KAAK;AAAA,IACnB,GAAG,SAAS;AACZ,UAAM,SAAS,6BAAM;AACnB,mBAAa,KAAK;AAClB,kBAAY,IAAI;AAAA,IAClB,GAHe;AAIf,UAAM,KAAK,QAAQ,MAAM;AAAA,EAC3B,CAAC;AACH;AAbe;AAef,SAAS,MAAM,IAA2B;AACxC,SAAO,IAAI,QAAQ,CAAC,iBAAiB,WAAW,cAAc,EAAE,CAAC;AACnE;AAFS;","names":[]}