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

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 (447) hide show
  1. package/dist/after.cjs +227 -0
  2. package/dist/after.cjs.map +1 -0
  3. package/dist/after.d.mts +25 -0
  4. package/dist/after.d.ts +25 -0
  5. package/dist/after.mjs +14 -0
  6. package/dist/after.mjs.map +1 -0
  7. package/dist/agent-runtime.cjs +2379 -0
  8. package/dist/agent-runtime.cjs.map +1 -0
  9. package/dist/agent-runtime.d.mts +94 -0
  10. package/dist/agent-runtime.d.ts +94 -0
  11. package/dist/agent-runtime.mjs +479 -0
  12. package/dist/agent-runtime.mjs.map +1 -0
  13. package/dist/api/route-manager.d.mts +66 -0
  14. package/dist/api/route-manager.d.ts +66 -0
  15. package/dist/api/runtime.d.mts +3 -0
  16. package/dist/api/runtime.d.ts +3 -0
  17. package/dist/api.cjs +4100 -0
  18. package/dist/api.cjs.map +1 -0
  19. package/dist/api.d.mts +48 -0
  20. package/dist/api.d.ts +48 -0
  21. package/dist/api.mjs +93 -0
  22. package/dist/api.mjs.map +1 -0
  23. package/dist/app-BWtqQu3R.d.mts +302 -0
  24. package/dist/app-markdown.cjs +244 -0
  25. package/dist/app-markdown.cjs.map +1 -0
  26. package/dist/app-markdown.d.mts +22 -0
  27. package/dist/app-markdown.d.ts +22 -0
  28. package/dist/app-markdown.mjs +27 -0
  29. package/dist/app-markdown.mjs.map +1 -0
  30. package/dist/app-xltejvLY.d.ts +302 -0
  31. package/dist/cache.cjs +945 -0
  32. package/dist/cache.cjs.map +1 -0
  33. package/dist/cache.d.mts +192 -0
  34. package/dist/cache.d.ts +192 -0
  35. package/dist/cache.mjs +46 -0
  36. package/dist/cache.mjs.map +1 -0
  37. package/dist/chunk-2ED5Q2GH.mjs +422 -0
  38. package/dist/chunk-2ED5Q2GH.mjs.map +1 -0
  39. package/dist/chunk-32W4QEJP.mjs +158 -0
  40. package/dist/chunk-32W4QEJP.mjs.map +1 -0
  41. package/dist/chunk-3XNTL3FQ.mjs +452 -0
  42. package/dist/chunk-3XNTL3FQ.mjs.map +1 -0
  43. package/dist/chunk-44ZCFSKE.mjs +84 -0
  44. package/dist/chunk-44ZCFSKE.mjs.map +1 -0
  45. package/dist/chunk-4MGVSBRP.mjs +7787 -0
  46. package/dist/chunk-4MGVSBRP.mjs.map +1 -0
  47. package/dist/chunk-4S3ORGFA.mjs +44 -0
  48. package/dist/chunk-4S3ORGFA.mjs.map +1 -0
  49. package/dist/chunk-5BY76U2M.mjs +1 -0
  50. package/dist/chunk-5BY76U2M.mjs.map +1 -0
  51. package/dist/chunk-5ZGPRGWV.mjs +136 -0
  52. package/dist/chunk-5ZGPRGWV.mjs.map +1 -0
  53. package/dist/chunk-65A7QIKI.mjs +142 -0
  54. package/dist/chunk-65A7QIKI.mjs.map +1 -0
  55. package/dist/chunk-74YTBPTY.mjs +450 -0
  56. package/dist/chunk-74YTBPTY.mjs.map +1 -0
  57. package/dist/chunk-7FBJLMQH.mjs +338 -0
  58. package/dist/chunk-7FBJLMQH.mjs.map +1 -0
  59. package/dist/chunk-7HO6AEOP.mjs +74 -0
  60. package/dist/chunk-7HO6AEOP.mjs.map +1 -0
  61. package/dist/chunk-7MABZJIM.mjs +29 -0
  62. package/dist/chunk-7MABZJIM.mjs.map +1 -0
  63. package/dist/chunk-7N62DNSO.mjs +41 -0
  64. package/dist/chunk-7N62DNSO.mjs.map +1 -0
  65. package/dist/chunk-7ZY5AIJO.mjs +161 -0
  66. package/dist/chunk-7ZY5AIJO.mjs.map +1 -0
  67. package/dist/chunk-ALCLXXTY.mjs +187 -0
  68. package/dist/chunk-ALCLXXTY.mjs.map +1 -0
  69. package/dist/chunk-AZ7YUVNR.mjs +65 -0
  70. package/dist/chunk-AZ7YUVNR.mjs.map +1 -0
  71. package/dist/chunk-B232I2GP.mjs +163 -0
  72. package/dist/chunk-B232I2GP.mjs.map +1 -0
  73. package/dist/chunk-B4W3BNTL.mjs +483 -0
  74. package/dist/chunk-B4W3BNTL.mjs.map +1 -0
  75. package/dist/chunk-C2ROET2V.mjs +718 -0
  76. package/dist/chunk-C2ROET2V.mjs.map +1 -0
  77. package/dist/chunk-CGILA3WO.mjs +14 -0
  78. package/dist/chunk-CGILA3WO.mjs.map +1 -0
  79. package/dist/chunk-CGIXMLSY.mjs +184 -0
  80. package/dist/chunk-CGIXMLSY.mjs.map +1 -0
  81. package/dist/chunk-DJSGLHCN.mjs +597 -0
  82. package/dist/chunk-DJSGLHCN.mjs.map +1 -0
  83. package/dist/chunk-E2MPIBRE.mjs +149 -0
  84. package/dist/chunk-E2MPIBRE.mjs.map +1 -0
  85. package/dist/chunk-E6EPN5BT.mjs +203 -0
  86. package/dist/chunk-E6EPN5BT.mjs.map +1 -0
  87. package/dist/chunk-EI43C4RA.mjs +6277 -0
  88. package/dist/chunk-EI43C4RA.mjs.map +1 -0
  89. package/dist/chunk-EJ7T4TPB.mjs +622 -0
  90. package/dist/chunk-EJ7T4TPB.mjs.map +1 -0
  91. package/dist/chunk-FQYDHKKU.mjs +128 -0
  92. package/dist/chunk-FQYDHKKU.mjs.map +1 -0
  93. package/dist/chunk-FRPWCMMG.mjs +299 -0
  94. package/dist/chunk-FRPWCMMG.mjs.map +1 -0
  95. package/dist/chunk-GN72QAIH.mjs +146 -0
  96. package/dist/chunk-GN72QAIH.mjs.map +1 -0
  97. package/dist/chunk-GQVGIUSN.mjs +149 -0
  98. package/dist/chunk-GQVGIUSN.mjs.map +1 -0
  99. package/dist/chunk-GS6K5OCM.mjs +407 -0
  100. package/dist/chunk-GS6K5OCM.mjs.map +1 -0
  101. package/dist/chunk-GXASWWJU.mjs +364 -0
  102. package/dist/chunk-GXASWWJU.mjs.map +1 -0
  103. package/dist/chunk-GY2STC2S.mjs +180 -0
  104. package/dist/chunk-GY2STC2S.mjs.map +1 -0
  105. package/dist/chunk-H2FA2SBS.mjs +51 -0
  106. package/dist/chunk-H2FA2SBS.mjs.map +1 -0
  107. package/dist/chunk-I4CUBGVF.mjs +93 -0
  108. package/dist/chunk-I4CUBGVF.mjs.map +1 -0
  109. package/dist/chunk-ITN462YM.mjs +98 -0
  110. package/dist/chunk-ITN462YM.mjs.map +1 -0
  111. package/dist/chunk-J23HNLFY.mjs +72 -0
  112. package/dist/chunk-J23HNLFY.mjs.map +1 -0
  113. package/dist/chunk-J4FNJ5IU.mjs +179 -0
  114. package/dist/chunk-J4FNJ5IU.mjs.map +1 -0
  115. package/dist/chunk-J5YWQVI5.mjs +211 -0
  116. package/dist/chunk-J5YWQVI5.mjs.map +1 -0
  117. package/dist/chunk-JDEOUK5V.mjs +427 -0
  118. package/dist/chunk-JDEOUK5V.mjs.map +1 -0
  119. package/dist/chunk-JK25YEN6.mjs +219 -0
  120. package/dist/chunk-JK25YEN6.mjs.map +1 -0
  121. package/dist/chunk-K4667E2Q.mjs +1916 -0
  122. package/dist/chunk-K4667E2Q.mjs.map +1 -0
  123. package/dist/chunk-LGHEOHBU.mjs +218 -0
  124. package/dist/chunk-LGHEOHBU.mjs.map +1 -0
  125. package/dist/chunk-LM2YNO4U.mjs +24 -0
  126. package/dist/chunk-LM2YNO4U.mjs.map +1 -0
  127. package/dist/chunk-ME4MO2RJ.mjs +3540 -0
  128. package/dist/chunk-ME4MO2RJ.mjs.map +1 -0
  129. package/dist/chunk-MIUW47JX.mjs +639 -0
  130. package/dist/chunk-MIUW47JX.mjs.map +1 -0
  131. package/dist/chunk-NNLCAVB6.mjs +391 -0
  132. package/dist/chunk-NNLCAVB6.mjs.map +1 -0
  133. package/dist/chunk-P7QDS5AT.mjs +191 -0
  134. package/dist/chunk-P7QDS5AT.mjs.map +1 -0
  135. package/dist/chunk-PFE6GMNE.mjs +603 -0
  136. package/dist/chunk-PFE6GMNE.mjs.map +1 -0
  137. package/dist/chunk-QGOHVJ6J.mjs +63 -0
  138. package/dist/chunk-QGOHVJ6J.mjs.map +1 -0
  139. package/dist/chunk-QKVUNGAH.mjs +39 -0
  140. package/dist/chunk-QKVUNGAH.mjs.map +1 -0
  141. package/dist/chunk-QM746KUO.mjs +56 -0
  142. package/dist/chunk-QM746KUO.mjs.map +1 -0
  143. package/dist/chunk-QTZZ2ISQ.mjs +753 -0
  144. package/dist/chunk-QTZZ2ISQ.mjs.map +1 -0
  145. package/dist/chunk-RBRLLZL5.mjs +81 -0
  146. package/dist/chunk-RBRLLZL5.mjs.map +1 -0
  147. package/dist/chunk-RHIFZZUI.mjs +69 -0
  148. package/dist/chunk-RHIFZZUI.mjs.map +1 -0
  149. package/dist/chunk-RQ633A5I.mjs +187 -0
  150. package/dist/chunk-RQ633A5I.mjs.map +1 -0
  151. package/dist/chunk-SCFX4UTD.mjs +28 -0
  152. package/dist/chunk-SCFX4UTD.mjs.map +1 -0
  153. package/dist/chunk-SL6HTIOK.mjs +66 -0
  154. package/dist/chunk-SL6HTIOK.mjs.map +1 -0
  155. package/dist/chunk-SPBBQLXI.mjs +207 -0
  156. package/dist/chunk-SPBBQLXI.mjs.map +1 -0
  157. package/dist/chunk-SSA7THPX.mjs +10 -0
  158. package/dist/chunk-SSA7THPX.mjs.map +1 -0
  159. package/dist/chunk-T4QJQK76.mjs +459 -0
  160. package/dist/chunk-T4QJQK76.mjs.map +1 -0
  161. package/dist/chunk-TQAEEJB4.mjs +157 -0
  162. package/dist/chunk-TQAEEJB4.mjs.map +1 -0
  163. package/dist/chunk-UB5UOSHB.mjs +458 -0
  164. package/dist/chunk-UB5UOSHB.mjs.map +1 -0
  165. package/dist/chunk-USWZZUEH.mjs +25 -0
  166. package/dist/chunk-USWZZUEH.mjs.map +1 -0
  167. package/dist/chunk-UVCIEUJC.mjs +16 -0
  168. package/dist/chunk-UVCIEUJC.mjs.map +1 -0
  169. package/dist/chunk-UXUAWNO5.mjs +396 -0
  170. package/dist/chunk-UXUAWNO5.mjs.map +1 -0
  171. package/dist/chunk-V3XURYJO.mjs +756 -0
  172. package/dist/chunk-V3XURYJO.mjs.map +1 -0
  173. package/dist/chunk-V6WE6JSZ.mjs +352 -0
  174. package/dist/chunk-V6WE6JSZ.mjs.map +1 -0
  175. package/dist/chunk-V7RBCSDJ.mjs +170 -0
  176. package/dist/chunk-V7RBCSDJ.mjs.map +1 -0
  177. package/dist/chunk-VCANOYFI.mjs +588 -0
  178. package/dist/chunk-VCANOYFI.mjs.map +1 -0
  179. package/dist/chunk-VY2UYN5R.mjs +224 -0
  180. package/dist/chunk-VY2UYN5R.mjs.map +1 -0
  181. package/dist/chunk-W2CRQFF6.mjs +1352 -0
  182. package/dist/chunk-W2CRQFF6.mjs.map +1 -0
  183. package/dist/chunk-WDU6QXNK.mjs +872 -0
  184. package/dist/chunk-WDU6QXNK.mjs.map +1 -0
  185. package/dist/chunk-WZ5QFROO.mjs +23 -0
  186. package/dist/chunk-WZ5QFROO.mjs.map +1 -0
  187. package/dist/chunk-XIVV5IWN.mjs +541 -0
  188. package/dist/chunk-XIVV5IWN.mjs.map +1 -0
  189. package/dist/chunk-YW7OBE6Q.mjs +119 -0
  190. package/dist/chunk-YW7OBE6Q.mjs.map +1 -0
  191. package/dist/chunk-Z5CQMP54.mjs +365 -0
  192. package/dist/chunk-Z5CQMP54.mjs.map +1 -0
  193. package/dist/chunk-ZBE6MLHL.mjs +230 -0
  194. package/dist/chunk-ZBE6MLHL.mjs.map +1 -0
  195. package/dist/chunk-ZVWA4ZQ3.mjs +189 -0
  196. package/dist/chunk-ZVWA4ZQ3.mjs.map +1 -0
  197. package/dist/chunk-ZZ57EH5Z.mjs +173 -0
  198. package/dist/chunk-ZZ57EH5Z.mjs.map +1 -0
  199. package/dist/client-BT1mFQas.d.mts +447 -0
  200. package/dist/client-Nn0q4eO4.d.ts +447 -0
  201. package/dist/client-cache-CIlyBlmx.d.ts +6 -0
  202. package/dist/client-cache-D-EZ7XVW.d.mts +6 -0
  203. package/dist/client-plugins-BI2R6Eae.d.mts +1926 -0
  204. package/dist/client-plugins-DU9oMspX.d.ts +1926 -0
  205. package/dist/client-plugins.cjs +415 -0
  206. package/dist/client-plugins.cjs.map +1 -0
  207. package/dist/client-plugins.d.mts +22 -0
  208. package/dist/client-plugins.d.ts +22 -0
  209. package/dist/client-plugins.mjs +10 -0
  210. package/dist/client-plugins.mjs.map +1 -0
  211. package/dist/client.cjs +5402 -0
  212. package/dist/client.cjs.map +1 -0
  213. package/dist/client.d.mts +447 -0
  214. package/dist/client.d.ts +447 -0
  215. package/dist/client.mjs +110 -0
  216. package/dist/client.mjs.map +1 -0
  217. package/dist/config.cjs +38 -0
  218. package/dist/config.cjs.map +1 -0
  219. package/dist/config.d.mts +29 -0
  220. package/dist/config.d.ts +29 -0
  221. package/dist/config.mjs +10 -0
  222. package/dist/config.mjs.map +1 -0
  223. package/dist/cron.cjs +406 -0
  224. package/dist/cron.cjs.map +1 -0
  225. package/dist/cron.d.mts +78 -0
  226. package/dist/cron.d.ts +78 -0
  227. package/dist/cron.mjs +30 -0
  228. package/dist/cron.mjs.map +1 -0
  229. package/dist/deferred.cjs +438 -0
  230. package/dist/deferred.cjs.map +1 -0
  231. package/dist/deferred.d.mts +42 -0
  232. package/dist/deferred.d.ts +42 -0
  233. package/dist/deferred.mjs +28 -0
  234. package/dist/deferred.mjs.map +1 -0
  235. package/dist/deployment.cjs +199 -0
  236. package/dist/deployment.cjs.map +1 -0
  237. package/dist/deployment.d.mts +34 -0
  238. package/dist/deployment.d.ts +34 -0
  239. package/dist/deployment.mjs +38 -0
  240. package/dist/deployment.mjs.map +1 -0
  241. package/dist/devtools-REQTS3I7.mjs +371 -0
  242. package/dist/devtools-REQTS3I7.mjs.map +1 -0
  243. package/dist/devtools-client-3XRTBND5.mjs +216 -0
  244. package/dist/devtools-client-3XRTBND5.mjs.map +1 -0
  245. package/dist/devtools-ui-NJKFORTG.mjs +1349 -0
  246. package/dist/devtools-ui-NJKFORTG.mjs.map +1 -0
  247. package/dist/docs.cjs +5548 -0
  248. package/dist/docs.cjs.map +1 -0
  249. package/dist/docs.d.mts +69 -0
  250. package/dist/docs.d.ts +69 -0
  251. package/dist/docs.mjs +47 -0
  252. package/dist/docs.mjs.map +1 -0
  253. package/dist/env-types.cjs +232 -0
  254. package/dist/env-types.cjs.map +1 -0
  255. package/dist/env-types.d.mts +12 -0
  256. package/dist/env-types.d.ts +12 -0
  257. package/dist/env-types.mjs +11 -0
  258. package/dist/env-types.mjs.map +1 -0
  259. package/dist/env.cjs +215 -0
  260. package/dist/env.cjs.map +1 -0
  261. package/dist/env.d.mts +45 -0
  262. package/dist/env.d.ts +45 -0
  263. package/dist/env.mjs +22 -0
  264. package/dist/env.mjs.map +1 -0
  265. package/dist/environment/vite.d.mts +22 -0
  266. package/dist/environment/vite.d.ts +22 -0
  267. package/dist/environment.cjs +96 -0
  268. package/dist/environment.cjs.map +1 -0
  269. package/dist/environment.d.mts +18 -0
  270. package/dist/environment.d.ts +18 -0
  271. package/dist/environment.mjs +14 -0
  272. package/dist/environment.mjs.map +1 -0
  273. package/dist/headers.cjs +126 -0
  274. package/dist/headers.cjs.map +1 -0
  275. package/dist/headers.d.mts +22 -0
  276. package/dist/headers.d.ts +22 -0
  277. package/dist/headers.mjs +12 -0
  278. package/dist/headers.mjs.map +1 -0
  279. package/dist/i18n/client.d.mts +32 -0
  280. package/dist/i18n/client.d.ts +32 -0
  281. package/dist/i18n/index.d.mts +20 -0
  282. package/dist/i18n/index.d.ts +20 -0
  283. package/dist/i18n/server.d.mts +30 -0
  284. package/dist/i18n/server.d.ts +30 -0
  285. package/dist/image/server.d.mts +37 -0
  286. package/dist/image/server.d.ts +37 -0
  287. package/dist/image/sharp.d.mts +7 -0
  288. package/dist/image/sharp.d.ts +7 -0
  289. package/dist/image-config-Duob7wER.d.mts +50 -0
  290. package/dist/image-config-Duob7wER.d.ts +50 -0
  291. package/dist/image.cjs +209 -0
  292. package/dist/image.cjs.map +1 -0
  293. package/dist/image.d.mts +39 -0
  294. package/dist/image.d.ts +39 -0
  295. package/dist/image.mjs +165 -0
  296. package/dist/image.mjs.map +1 -0
  297. package/dist/index.cjs +42186 -0
  298. package/dist/index.cjs.map +1 -0
  299. package/dist/index.d.mts +454 -0
  300. package/dist/index.d.ts +454 -0
  301. package/dist/index.mjs +980 -0
  302. package/dist/index.mjs.map +1 -0
  303. package/dist/integration-api-CHT2OKAf.d.mts +93 -0
  304. package/dist/integration-api-CHT2OKAf.d.ts +93 -0
  305. package/dist/integration-orm-GQLGU66X.mjs +13 -0
  306. package/dist/integration-orm-GQLGU66X.mjs.map +1 -0
  307. package/dist/integrations.cjs +2820 -0
  308. package/dist/integrations.cjs.map +1 -0
  309. package/dist/integrations.d.mts +22 -0
  310. package/dist/integrations.d.ts +22 -0
  311. package/dist/integrations.mjs +51 -0
  312. package/dist/integrations.mjs.map +1 -0
  313. package/dist/internal/build-runtime.cjs +643 -322
  314. package/dist/internal/build-runtime.cjs.map +1 -1
  315. package/dist/internal/build-runtime.d.mts +39 -0
  316. package/dist/internal/build-runtime.d.ts +39 -0
  317. package/dist/internal/build-runtime.mjs +11 -10
  318. package/dist/internal/client-runtime.d.mts +2 -0
  319. package/dist/internal/client-runtime.d.ts +2 -0
  320. package/dist/internal/config-runtime.cjs +135 -39
  321. package/dist/internal/config-runtime.cjs.map +1 -1
  322. package/dist/internal/config-runtime.d.mts +39 -0
  323. package/dist/internal/config-runtime.d.ts +39 -0
  324. package/dist/internal/config-runtime.mjs +5 -4
  325. package/dist/internal/production-node-env.d.mts +12 -0
  326. package/dist/internal/production-node-env.d.ts +12 -0
  327. package/dist/internal/production-runtime.d.mts +39 -0
  328. package/dist/internal/production-runtime.d.ts +39 -0
  329. package/dist/layers-VWVDTPUZ.mjs +16 -0
  330. package/dist/layers-VWVDTPUZ.mjs.map +1 -0
  331. package/dist/manager-THKFTOFE.mjs +10 -0
  332. package/dist/manager-THKFTOFE.mjs.map +1 -0
  333. package/dist/markdown.cjs +364 -0
  334. package/dist/markdown.cjs.map +1 -0
  335. package/dist/markdown.d.mts +60 -0
  336. package/dist/markdown.d.ts +60 -0
  337. package/dist/markdown.mjs +18 -0
  338. package/dist/markdown.mjs.map +1 -0
  339. package/dist/metadata-Cm9ujH4I.d.ts +22 -0
  340. package/dist/metadata-DacXbnLA.d.mts +22 -0
  341. package/dist/middleware.cjs +2148 -0
  342. package/dist/middleware.cjs.map +1 -0
  343. package/dist/middleware.d.mts +164 -0
  344. package/dist/middleware.d.ts +164 -0
  345. package/dist/middleware.mjs +49 -0
  346. package/dist/middleware.mjs.map +1 -0
  347. package/dist/navigation-errors-Dvwpzaer.d.mts +13 -0
  348. package/dist/navigation-errors-Dvwpzaer.d.ts +13 -0
  349. package/dist/navigation.cjs +1329 -0
  350. package/dist/navigation.cjs.map +1 -0
  351. package/dist/navigation.d.mts +14 -0
  352. package/dist/navigation.d.ts +14 -0
  353. package/dist/navigation.mjs +33 -0
  354. package/dist/navigation.mjs.map +1 -0
  355. package/dist/nitro-QO5LV6QK.mjs +689 -0
  356. package/dist/nitro-QO5LV6QK.mjs.map +1 -0
  357. package/dist/observability.cjs +186 -0
  358. package/dist/observability.cjs.map +1 -0
  359. package/dist/observability.d.mts +335 -0
  360. package/dist/observability.d.ts +335 -0
  361. package/dist/observability.mjs +16 -0
  362. package/dist/observability.mjs.map +1 -0
  363. package/dist/params-BALtrRim.d.ts +15 -0
  364. package/dist/params-ry-lxqmy.d.mts +15 -0
  365. package/dist/plugin-BJDf43dc.d.mts +165 -0
  366. package/dist/plugin-BJDf43dc.d.ts +165 -0
  367. package/dist/plugin.cjs +23470 -0
  368. package/dist/plugin.cjs.map +1 -1
  369. package/dist/plugin.d.mts +22 -0
  370. package/dist/plugin.d.ts +22 -0
  371. package/dist/plugin.mjs +8 -7
  372. package/dist/production-runtime-4KKq1AVC.d.mts +79 -0
  373. package/dist/production-runtime-C_B79w2P.d.mts +28 -0
  374. package/dist/production-runtime-DDEM1D2q.d.ts +28 -0
  375. package/dist/production-runtime-DRsWDN2x.d.ts +79 -0
  376. package/dist/query/client.d.mts +61 -0
  377. package/dist/query/client.d.ts +61 -0
  378. package/dist/query/index.d.mts +90 -0
  379. package/dist/query/index.d.ts +90 -0
  380. package/dist/query/parsers.d.mts +25 -0
  381. package/dist/query/parsers.d.ts +25 -0
  382. package/dist/query/server.d.mts +55 -0
  383. package/dist/query/server.d.ts +55 -0
  384. package/dist/request-Dsq4kGW0.d.mts +6 -0
  385. package/dist/request-udtobOLv.d.ts +6 -0
  386. package/dist/request.d.mts +2 -0
  387. package/dist/request.d.ts +2 -0
  388. package/dist/resolver-DJqjLMg_.d.mts +14 -0
  389. package/dist/resolver-IH4RmPEl.d.ts +14 -0
  390. package/dist/route-runtime-DoOHzCAD.d.mts +38 -0
  391. package/dist/route-runtime-DoOHzCAD.d.ts +38 -0
  392. package/dist/router.d.mts +36 -0
  393. package/dist/router.d.ts +36 -0
  394. package/dist/routes.d.mts +224 -0
  395. package/dist/routes.d.ts +224 -0
  396. package/dist/runtime-9nQjVM7X.d.mts +206 -0
  397. package/dist/runtime-Cxpq6xZN.d.mts +27 -0
  398. package/dist/runtime-DgeS2skB.d.ts +206 -0
  399. package/dist/runtime-bv63eUiO.d.ts +27 -0
  400. package/dist/server-action-security.d.mts +43 -0
  401. package/dist/server-action-security.d.ts +43 -0
  402. package/dist/server-fn-client.d.mts +32 -0
  403. package/dist/server-fn-client.d.ts +32 -0
  404. package/dist/server-fn.d.mts +93 -0
  405. package/dist/server-fn.d.ts +93 -0
  406. package/dist/server-plugins.d.mts +55 -0
  407. package/dist/server-plugins.d.ts +55 -0
  408. package/dist/server-query-client.d.mts +50 -0
  409. package/dist/server-query-client.d.ts +50 -0
  410. package/dist/server-query.d.mts +36 -0
  411. package/dist/server-query.d.ts +36 -0
  412. package/dist/server.cjs +731 -447
  413. package/dist/server.cjs.map +1 -1
  414. package/dist/server.d.mts +48 -0
  415. package/dist/server.d.ts +48 -0
  416. package/dist/server.mjs +9 -8
  417. package/dist/server.mjs.map +1 -1
  418. package/dist/storage.d.mts +52 -0
  419. package/dist/storage.d.ts +52 -0
  420. package/dist/testing.d.mts +101 -0
  421. package/dist/testing.d.ts +101 -0
  422. package/dist/transport-BmbGTXA5.d.mts +49 -0
  423. package/dist/transport-BmbGTXA5.d.ts +49 -0
  424. package/dist/types-BMxWr97v.d.mts +81 -0
  425. package/dist/types-BMxWr97v.d.ts +81 -0
  426. package/dist/types-C9N-nk5R.d.mts +53 -0
  427. package/dist/types-C9N-nk5R.d.ts +53 -0
  428. package/dist/types-D1A6-XvH.d.mts +73 -0
  429. package/dist/types-D1A6-XvH.d.ts +73 -0
  430. package/dist/utils-B-cUHwoK.d.ts +23 -0
  431. package/dist/utils-Cm41AefV.d.mts +23 -0
  432. package/dist/version.cjs +1 -1
  433. package/dist/version.cjs.map +1 -1
  434. package/dist/version.d.mts +3 -0
  435. package/dist/version.d.ts +3 -0
  436. package/dist/version.mjs +1 -1
  437. package/dist/vite.cjs +682 -437
  438. package/dist/vite.cjs.map +1 -1
  439. package/dist/vite.d.mts +22 -0
  440. package/dist/vite.d.ts +22 -0
  441. package/dist/vite.mjs +6 -5
  442. package/dist/workflows.d.mts +110 -0
  443. package/dist/workflows.d.ts +110 -0
  444. package/package.json +3 -2
  445. package/types/client.d.ts +1 -1
  446. package/types/image.d.ts +4 -0
  447. package/types/images.d.ts +59 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/api/endpoint.ts","../src/api/runtime.ts"],"sourcesContent":["import { createEndpoint as betterCallEndpoint } from \"better-call\";\nimport { applyFarmCacheInvalidationTargets, type FarmCacheInvalidationTarget } from \"../cache\";\nimport { isMultipartSchema, type MultipartSchema, type TypedFormData } from \"./transport\";\n\n// Generic schema type that works with both Zod v3 and v4\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnySchema = { _output?: any; _input?: any; parse?: (data: unknown) => any };\n\ntype MaybePromise<T> = T | Promise<T>;\ntype Simplify<T> = { [TKey in keyof T]: T[TKey] } & {};\ntype UnionToIntersection<T> = (T extends unknown ? (value: T) => void : never) extends (\n value: infer TIntersection,\n) => void\n ? TIntersection\n : never;\n\n// Infer output type from schema (works with Zod v3 and v4)\ntype InferOutput<T> = T extends { _output: infer O }\n ? O\n : T extends { parse: (data: unknown) => infer R }\n ? R\n : unknown;\n\ntype InferBodyInput<T> =\n T extends MultipartSchema<AnySchema> ? TypedFormData<InferOutput<T>> : InferOutput<T>;\n\ntype InferHeadersOutput<T> = [T] extends [never]\n ? Record<string, string>\n : T extends AnySchema\n ? InferOutput<T>\n : Record<string, string>;\n\nexport type EndpointErrorDefinition<\n TSchema extends AnySchema = AnySchema,\n TStatus extends number = number,\n> = {\n status: TStatus;\n schema: TSchema;\n /** Public message safe to expose to API callers. */\n message?: string;\n};\n\nexport type EndpointErrorDefinitions = Record<string, EndpointErrorDefinition<AnySchema, number>>;\n\nexport type EndpointErrorContracts<TErrors extends EndpointErrorDefinitions> = {\n [TCode in keyof TErrors]: {\n data: InferOutput<TErrors[TCode][\"schema\"]>;\n status: TErrors[TCode][\"status\"];\n };\n};\n\nexport type EndpointFail<TErrors extends EndpointErrorDefinitions> = <\n TCode extends keyof TErrors & string,\n>(\n code: TCode,\n data: InferOutput<TErrors[TCode][\"schema\"]>,\n) => never;\n\nexport class EndpointFailure<TCode extends string = string, TData = unknown> extends Error {\n readonly code: TCode;\n readonly data: TData;\n readonly status: number;\n\n constructor(\n code: TCode,\n data: TData,\n options: {\n status: number;\n message: string;\n },\n ) {\n super(options.message);\n this.name = \"EndpointFailure\";\n this.code = code;\n this.data = data;\n this.status = options.status;\n }\n}\n\nexport function isEndpointFailure(value: unknown): value is EndpointFailure<string, unknown> {\n return value instanceof EndpointFailure;\n}\n\nexport type EndpointParamValue = string | string[];\nexport type EndpointParams = Record<string, EndpointParamValue>;\n\nexport type EndpointMiddlewareContext<\n TContext extends object = {},\n TBody = unknown,\n TQuery = unknown,\n THeaders = Record<string, string>,\n> = {\n body: TBody;\n query: TQuery;\n headers: THeaders;\n request: Request;\n /** Context accumulated from middleware that ran earlier in the chain. */\n context: Readonly<TContext>;\n params: EndpointParams;\n};\n\nexport type EndpointMiddlewareResult<TProvidedContext extends object = object> =\n | TProvidedContext\n | true\n | false\n | Response;\n\n/** A plain async function. No wrapper or `next()` callback is required. */\nexport type EndpointMiddleware<\n TProvidedContext extends object = object,\n TContext extends object = {},\n TBody = unknown,\n TQuery = unknown,\n THeaders = Record<string, string>,\n> = (\n ctx: EndpointMiddlewareContext<TContext, TBody, TQuery, THeaders>,\n) => MaybePromise<EndpointMiddlewareResult<TProvidedContext>>;\n\nexport type AnyEndpointMiddleware = (ctx: EndpointMiddlewareContext<any, any, any, any>) => unknown;\n\nexport type EndpointInvalidationTarget = FarmCacheInvalidationTarget;\n\nexport type EndpointInvalidationContext<\n TContext extends object = {},\n TBody = unknown,\n TQuery = unknown,\n THeaders = Record<string, string>,\n> = EndpointMiddlewareContext<TContext, TBody, TQuery, THeaders> & {\n /** The raw value returned by the endpoint handler. */\n result: unknown;\n};\n\nexport type EndpointInvalidations<\n TContext extends object = {},\n TBody = unknown,\n TQuery = unknown,\n THeaders = Record<string, string>,\n> =\n | readonly EndpointInvalidationTarget[]\n | ((\n context: EndpointInvalidationContext<TContext, TBody, TQuery, THeaders>,\n ) => readonly EndpointInvalidationTarget[] | Promise<readonly EndpointInvalidationTarget[]>);\n\ntype ValidateEndpointMiddlewares<TMiddlewares extends readonly AnyEndpointMiddleware[]> = {\n readonly [TIndex in keyof TMiddlewares]: TMiddlewares[TIndex] extends AnyEndpointMiddleware\n ? [Awaited<ReturnType<TMiddlewares[TIndex]>>] extends [EndpointMiddlewareResult<object>]\n ? TMiddlewares[TIndex]\n : never\n : never;\n};\n\ntype ContextFromMiddlewareResult<TResult> =\n Exclude<TResult, Response | boolean> extends infer TContext\n ? [TContext] extends [never]\n ? {}\n : TContext extends object\n ? TContext\n : {}\n : {};\n\ntype ContextFromMiddleware<TMiddleware> = TMiddleware extends (...args: any[]) => infer TResult\n ? ContextFromMiddlewareResult<Awaited<TResult>>\n : {};\n\nexport type InferEndpointMiddlewareContext<\n TMiddlewares extends readonly ((...args: any[]) => any)[],\n TContext extends object = {},\n> = TMiddlewares extends readonly [infer TMiddleware, ...infer TRest]\n ? TMiddleware extends (...args: any[]) => any\n ? TRest extends readonly ((...args: any[]) => any)[]\n ? InferEndpointMiddlewareContext<\n TRest,\n Simplify<TContext & ContextFromMiddleware<TMiddleware>>\n >\n : Simplify<TContext>\n : Simplify<TContext>\n : number extends TMiddlewares[\"length\"]\n ? Simplify<TContext & UnionToIntersection<ContextFromMiddleware<TMiddlewares[number]>>>\n : Simplify<TContext>;\n\nexport type EndpointOptions<\n TBody extends AnySchema = never,\n TQuery extends AnySchema = never,\n THeaders extends AnySchema = never,\n TMiddlewares extends readonly AnyEndpointMiddleware[] = readonly [],\n TErrors extends EndpointErrorDefinitions = {},\n> = {\n method?: \"GET\" | \"HEAD\" | \"POST\" | \"PUT\" | \"DELETE\" | \"PATCH\" | \"OPTIONS\";\n body?: TBody;\n query?: TQuery;\n headers?: THeaders;\n middleware?: TMiddlewares;\n /**\n * Cache keys, tags, and route paths made stale after a successful handler result.\n * The resolver receives validated input and middleware context.\n */\n invalidates?: EndpointInvalidations<\n InferEndpointMiddlewareContext<TMiddlewares>,\n InferOutput<TBody>,\n InferOutput<TQuery>,\n InferHeadersOutput<THeaders>\n >;\n errors?: TErrors;\n /** @deprecated Use plain functions in `middleware` for Farm endpoint middleware. */\n use?: any[];\n};\n\nexport type EndpointHandler<\n TBody extends AnySchema = never,\n TQuery extends AnySchema = never,\n THeaders extends AnySchema = never,\n TResponse = any,\n TContext extends object = {},\n TErrors extends EndpointErrorDefinitions = {},\n> = (ctx: {\n body: InferOutput<TBody>;\n query: InferOutput<TQuery>;\n headers: InferHeadersOutput<THeaders>;\n request: Request;\n context: Readonly<TContext>;\n params: EndpointParams;\n fail: EndpointFail<TErrors>;\n}) => Promise<TResponse> | TResponse;\n\n// Type to represent an endpoint with its input/output types\nexport type TypedEndpoint<\n TBody = never,\n TQuery = never,\n TResponse = any,\n THeaders = Record<string, string>,\n TErrors = never,\n TBodyInput = TBody,\n> = {\n __types: {\n body: TBody;\n inputBody: TBodyInput;\n query: TQuery;\n headers: THeaders;\n response: TResponse;\n errors: TErrors;\n };\n __path?: string;\n __method?: string;\n} & ((options?: { body?: TBody; query?: TQuery }) => Promise<TResponse>);\n\ntype CreatedEndpoint<\n TBody extends AnySchema,\n TQuery extends AnySchema,\n THeaders extends AnySchema,\n TResponse,\n TErrors extends EndpointErrorDefinitions = {},\n> = TypedEndpoint<\n InferOutput<TBody>,\n InferOutput<TQuery>,\n Awaited<TResponse>,\n InferHeadersOutput<THeaders>,\n EndpointErrorContracts<TErrors>,\n InferBodyInput<TBody>\n>;\n\ntype AnyEndpointOptions = EndpointOptions<\n AnySchema,\n AnySchema,\n AnySchema,\n readonly AnyEndpointMiddleware[],\n EndpointErrorDefinitions\n>;\ntype EndpointBodyFromOptions<TOptions> = TOptions extends {\n body: infer TBody extends AnySchema;\n}\n ? TBody\n : never;\ntype EndpointQueryFromOptions<TOptions> = TOptions extends {\n query: infer TQuery extends AnySchema;\n}\n ? TQuery\n : never;\ntype EndpointHeadersFromOptions<TOptions> = TOptions extends {\n headers: infer THeaders extends AnySchema;\n}\n ? THeaders\n : never;\ntype EndpointMiddlewaresFromOptions<TOptions> = TOptions extends {\n middleware: infer TMiddlewares extends readonly AnyEndpointMiddleware[];\n}\n ? TMiddlewares\n : readonly [];\ntype EndpointErrorsFromOptions<TOptions> = TOptions extends {\n errors: infer TErrors extends EndpointErrorDefinitions;\n}\n ? TErrors\n : {};\ntype MethodlessEndpointOptions = Omit<AnyEndpointOptions, \"method\">;\ntype EndpointHandlerFromOptions<TOptions, TResponse> = EndpointHandler<\n EndpointBodyFromOptions<TOptions>,\n EndpointQueryFromOptions<TOptions>,\n EndpointHeadersFromOptions<TOptions>,\n TResponse,\n InferEndpointMiddlewareContext<EndpointMiddlewaresFromOptions<TOptions>>,\n EndpointErrorsFromOptions<TOptions>\n>;\ntype ValidatedEndpointHandlerFromOptions<TOptions, TResponse> = EndpointHandlerFromOptions<\n TOptions,\n TResponse\n> &\n (EndpointMiddlewaresFromOptions<TOptions> extends ValidateEndpointMiddlewares<\n EndpointMiddlewaresFromOptions<TOptions>\n >\n ? unknown\n : never);\ntype CreatedEndpointFromOptions<TOptions, TResponse> = CreatedEndpoint<\n EndpointBodyFromOptions<TOptions>,\n EndpointQueryFromOptions<TOptions>,\n EndpointHeadersFromOptions<TOptions>,\n TResponse,\n EndpointErrorsFromOptions<TOptions>\n>;\n\n/**\n * Create a Farm.js API endpoint\n *\n * Supports two patterns:\n * 1. File-based routing (path auto-inferred from file location):\n * `export const POST = createEndpoint({ method: 'POST', body: schema }, handler)`\n * `createEndpoint({ method: 'GET', query: z.object({...}) }, handler)`\n *\n * 2. Explicit path (for routes.ts at project root):\n * `createEndpoint('/api/hello', { method: 'GET', query: z.object({...}) }, handler)`\n */\nexport function createEndpoint<const TOptions extends AnyEndpointOptions, TResponse = any>(\n options: TOptions,\n handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>,\n): CreatedEndpointFromOptions<TOptions, TResponse>;\nexport function createEndpoint<const TOptions extends AnyEndpointOptions, TResponse = any>(\n path: string,\n options: TOptions,\n handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>,\n): CreatedEndpointFromOptions<TOptions, TResponse>;\nexport function createEndpoint<\n TBody extends AnySchema = never,\n TQuery extends AnySchema = never,\n THeaders extends AnySchema = never,\n TResponse = any,\n>(\n options: EndpointOptions<TBody, TQuery, THeaders, readonly []>,\n handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>,\n): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;\nexport function createEndpoint<\n TBody extends AnySchema = never,\n TQuery extends AnySchema = never,\n THeaders extends AnySchema = never,\n TResponse = any,\n>(\n path: string,\n options: EndpointOptions<TBody, TQuery, THeaders, readonly []>,\n handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>,\n): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;\nexport function createEndpoint(\n pathOrOptions:\n | string\n | EndpointOptions<any, any, any, readonly AnyEndpointMiddleware[], EndpointErrorDefinitions>,\n optionsOrHandler:\n | EndpointOptions<any, any, any, readonly AnyEndpointMiddleware[], EndpointErrorDefinitions>\n | EndpointHandler<any, any, any, any, any, EndpointErrorDefinitions>,\n maybeHandler?: EndpointHandler<any, any, any, any, any, EndpointErrorDefinitions>,\n): TypedEndpoint<any, any, any, any> {\n // Determine if first arg is path or options\n let path: string;\n let options: EndpointOptions<\n any,\n any,\n any,\n readonly AnyEndpointMiddleware[],\n EndpointErrorDefinitions\n >;\n let handler: EndpointHandler<any, any, any, any, any, EndpointErrorDefinitions>;\n\n if (typeof pathOrOptions === \"string\") {\n // createEndpoint('/path', options, handler)\n path = pathOrOptions;\n options = optionsOrHandler as typeof options;\n handler = maybeHandler as typeof handler;\n } else {\n // createEndpoint(options, handler) - path will be set by API plugin from file location\n path = \"\";\n options = pathOrOptions;\n handler = optionsOrHandler as typeof handler;\n }\n\n if (typeof handler !== \"function\") {\n throw new TypeError(\"createEndpoint requires a handler function\");\n }\n\n const middleware = normalizeEndpointMiddleware(options.middleware);\n const errors = normalizeEndpointErrors(options.errors);\n const fail = createEndpointFail(errors);\n const wrappedHandler = (async (ctx: EndpointMiddlewareContext<any, any, any, any>) => {\n const execution = await runEndpointMiddleware(\n middleware,\n ctx,\n handler,\n fail,\n options.invalidates,\n );\n return execution.result;\n }) as typeof handler;\n const {\n middleware: _middleware,\n errors: _errors,\n invalidates: _invalidates,\n ...betterCallOptions\n } = options;\n\n // Create the endpoint - path will be set later by API plugin if not provided\n // We use a temporary path that will be replaced when the router is created\n const endpoint = betterCallEndpoint(\n path || \"/__farm_auto_path__\",\n betterCallOptions as any,\n wrappedHandler as any,\n ) as any;\n\n // Store the path and type information on the endpoint for later access\n // Empty/undefined path means it will be inferred from file location by the API plugin\n endpoint.__path = path || undefined;\n endpoint.__method = options.method || \"GET\";\n endpoint.__autoPath = !path; // Flag to indicate path should be auto-inferred\n endpoint.__handler = wrappedHandler; // Used by Farm's route runtime.\n endpoint.__farmInvoke = (ctx: EndpointMiddlewareContext<any, any, any, any>) =>\n runEndpointMiddleware(middleware, ctx, handler, fail, options.invalidates);\n endpoint.__middleware = middleware;\n endpoint.__sourceHandler = handler;\n endpoint.__invalidates = options.invalidates;\n endpoint.__errors = errors;\n\n // Store type information for inference\n endpoint.__types = {\n body: options.body,\n inputBody: isMultipartSchema(options.body) ? \"form-data\" : options.body,\n query: options.query,\n headers: options.headers,\n response: null as any,\n errors,\n };\n\n return endpoint as any;\n}\n\nconst EMPTY_ENDPOINT_MIDDLEWARE = Object.freeze([]) as readonly AnyEndpointMiddleware[];\nconst EMPTY_ENDPOINT_CONTEXT = Object.freeze(Object.create(null)) as Readonly<\n Record<string | symbol, unknown>\n>;\nconst UNSAFE_ENDPOINT_CONTEXT_KEYS = new Set([\"__proto__\", \"constructor\", \"prototype\"]);\n\nfunction normalizeEndpointErrors(\n definitions: EndpointErrorDefinitions | undefined,\n): Readonly<EndpointErrorDefinitions> {\n if (definitions === undefined) return Object.freeze({});\n if (!isPlainEndpointContext(definitions)) {\n throw new TypeError(\"createEndpoint errors must be an object\");\n }\n\n const normalized: EndpointErrorDefinitions = Object.create(null);\n for (const [code, definition] of Object.entries(definitions)) {\n if (!code.trim()) {\n throw new TypeError(\"Endpoint error codes cannot be empty\");\n }\n if (!definition || typeof definition !== \"object\") {\n throw new TypeError(`Endpoint error \"${code}\" must be an object`);\n }\n if (\n !Number.isInteger(definition.status) ||\n definition.status < 400 ||\n definition.status > 599\n ) {\n throw new TypeError(`Endpoint error \"${code}\" status must be an integer between 400 and 599`);\n }\n if (!definition.schema || typeof definition.schema.parse !== \"function\") {\n throw new TypeError(`Endpoint error \"${code}\" requires a schema with parse()`);\n }\n if (definition.message !== undefined && typeof definition.message !== \"string\") {\n throw new TypeError(`Endpoint error \"${code}\" message must be a string`);\n }\n\n normalized[code] = Object.freeze({ ...definition });\n }\n\n return Object.freeze(normalized);\n}\n\nfunction createEndpointFail(\n definitions: Readonly<EndpointErrorDefinitions>,\n): EndpointFail<EndpointErrorDefinitions> {\n return ((code: string, data: unknown): never => {\n const definition = definitions[code];\n if (!definition) {\n throw new TypeError(`Endpoint error \"${code}\" is not declared`);\n }\n\n const parsed = definition.schema.parse!(data);\n throw new EndpointFailure(code, parsed, {\n status: definition.status,\n message: definition.message ?? \"Request failed\",\n });\n }) as EndpointFail<EndpointErrorDefinitions>;\n}\n\nfunction normalizeEndpointMiddleware(\n middleware: readonly AnyEndpointMiddleware[] | undefined,\n): readonly AnyEndpointMiddleware[] {\n if (middleware === undefined) return EMPTY_ENDPOINT_MIDDLEWARE;\n if (!Array.isArray(middleware)) {\n throw new TypeError(\"createEndpoint middleware must be an array of functions\");\n }\n\n const normalized = [...middleware];\n for (const entry of normalized) {\n if (typeof entry !== \"function\") {\n throw new TypeError(\"createEndpoint middleware entries must be functions\");\n }\n }\n\n return Object.freeze(normalized);\n}\n\nasync function runEndpointMiddleware(\n middleware: readonly AnyEndpointMiddleware[],\n handlerContext: EndpointMiddlewareContext<any, any, any, any>,\n handler: EndpointHandler<any, any, any, any, any, EndpointErrorDefinitions>,\n fail: EndpointFail<EndpointErrorDefinitions>,\n invalidations: EndpointInvalidations<any, any, any, any> | undefined,\n): Promise<{\n result: unknown;\n context: Readonly<Record<string | symbol, unknown>>;\n handlerExecuted: boolean;\n invalidations: readonly string[];\n}> {\n let context = createInitialEndpointContext(handlerContext.context);\n\n for (let index = 0; index < middleware.length; index++) {\n const result = await middleware[index]({ ...handlerContext, context });\n\n if (isEndpointResponse(result)) {\n return {\n result,\n context,\n handlerExecuted: false,\n invalidations: [],\n };\n }\n if (result === false) {\n return {\n result: forbiddenEndpointResponse(),\n context,\n handlerExecuted: false,\n invalidations: [],\n };\n }\n if (result === true) continue;\n\n if (!isPlainEndpointContext(result)) {\n throw new TypeError(\n `Endpoint middleware ${index + 1} must return an object, true, false, or a Response`,\n );\n }\n\n context = mergeEndpointContext(context, result, index);\n }\n\n const result = await handler({ ...handlerContext, context, fail });\n return {\n result,\n context,\n handlerExecuted: true,\n invalidations: await applyEndpointInvalidations(\n invalidations,\n {\n ...handlerContext,\n context,\n result,\n },\n result,\n ),\n };\n}\n\nasync function applyEndpointInvalidations(\n declaration: EndpointInvalidations<any, any, any, any> | undefined,\n context: EndpointInvalidationContext<any, any, any, any>,\n result: unknown,\n): Promise<readonly string[]> {\n if (!declaration || (isEndpointResponse(result) && result.status >= 400)) {\n return [];\n }\n\n const targets = typeof declaration === \"function\" ? await declaration(context) : declaration;\n if (!Array.isArray(targets)) {\n throw new TypeError(\n \"Endpoint invalidates must resolve to an array of { key }, { path }, or { tag } targets\",\n );\n }\n\n return applyFarmCacheInvalidationTargets(targets);\n}\n\nfunction createInitialEndpointContext(value: unknown) {\n if (value === undefined || value === null) return EMPTY_ENDPOINT_CONTEXT;\n if (!isPlainEndpointContext(value)) {\n throw new TypeError(\"Endpoint context must be a plain object\");\n }\n\n return mergeEndpointContext(EMPTY_ENDPOINT_CONTEXT, value);\n}\n\nfunction mergeEndpointContext(\n current: Readonly<Record<string | symbol, unknown>>,\n added: object,\n middlewareIndex?: number,\n) {\n const next = Object.assign(Object.create(null), current) as Record<string | symbol, unknown>;\n\n for (const key of Reflect.ownKeys(added)) {\n if (!Object.prototype.propertyIsEnumerable.call(added, key)) continue;\n if (typeof key === \"string\" && UNSAFE_ENDPOINT_CONTEXT_KEYS.has(key)) {\n throw new TypeError(`Endpoint middleware cannot provide the unsafe context key \"${key}\"`);\n }\n if (Object.prototype.hasOwnProperty.call(current, key)) {\n const source =\n middlewareIndex === undefined\n ? \"Endpoint context\"\n : `Endpoint middleware ${middlewareIndex + 1}`;\n throw new TypeError(`${source} cannot replace the existing context key \"${String(key)}\"`);\n }\n next[key] = (added as Record<string | symbol, unknown>)[key];\n }\n\n return Object.freeze(next);\n}\n\nfunction isPlainEndpointContext(value: unknown): value is object {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) return false;\n const prototype = Object.getPrototypeOf(value);\n return prototype === Object.prototype || prototype === null;\n}\n\nfunction isEndpointResponse(value: unknown): value is Response {\n return (\n value instanceof Response ||\n (typeof value === \"object\" &&\n value !== null &&\n \"headers\" in value &&\n \"status\" in value &&\n typeof (value as Response).arrayBuffer === \"function\")\n );\n}\n\nfunction forbiddenEndpointResponse() {\n return new Response(JSON.stringify({ error: \"Forbidden\" }), {\n status: 403,\n headers: { \"Content-Type\": \"application/json\" },\n });\n}\n\n/**\n * Convenience method for GET requests\n */\nexport function GET<T = any>(\n handler: EndpointHandler<never, never, never, T>,\n): CreatedEndpoint<never, never, never, T>;\nexport function GET<const TOptions extends MethodlessEndpointOptions, TResponse = any>(\n options: TOptions,\n handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>,\n): CreatedEndpointFromOptions<TOptions, TResponse>;\nexport function GET<\n TQuery extends AnySchema = never,\n THeaders extends AnySchema = never,\n TResponse = any,\n>(\n options: Omit<EndpointOptions<never, TQuery, THeaders, readonly []>, \"method\">,\n handler: EndpointHandler<never, TQuery, THeaders, TResponse>,\n): CreatedEndpoint<never, TQuery, THeaders, TResponse>;\nexport function GET(...args: any[]): any {\n if (args.length === 1) {\n return createEndpoint(\"\", { method: \"GET\" }, args[0]);\n }\n return createEndpoint(\"\", { ...args[0], method: \"GET\" }, args[1]);\n}\n\n/**\n * Convenience method for HEAD requests\n */\nexport function HEAD<T = any>(\n handler: EndpointHandler<never, never, never, T>,\n): CreatedEndpoint<never, never, never, T>;\nexport function HEAD<const TOptions extends MethodlessEndpointOptions, TResponse = any>(\n options: TOptions,\n handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>,\n): CreatedEndpointFromOptions<TOptions, TResponse>;\nexport function HEAD<\n TQuery extends AnySchema = never,\n THeaders extends AnySchema = never,\n TResponse = any,\n>(\n options: Omit<EndpointOptions<never, TQuery, THeaders, readonly []>, \"method\">,\n handler: EndpointHandler<never, TQuery, THeaders, TResponse>,\n): CreatedEndpoint<never, TQuery, THeaders, TResponse>;\nexport function HEAD(...args: any[]): any {\n if (args.length === 1) {\n return createEndpoint(\"\", { method: \"HEAD\" }, args[0]);\n }\n return createEndpoint(\"\", { ...args[0], method: \"HEAD\" }, args[1]);\n}\n\n/**\n * Convenience method for POST requests\n */\nexport function POST<T = any>(\n handler: EndpointHandler<never, never, never, T>,\n): CreatedEndpoint<never, never, never, T>;\nexport function POST<const TOptions extends MethodlessEndpointOptions, TResponse = any>(\n options: TOptions,\n handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>,\n): CreatedEndpointFromOptions<TOptions, TResponse>;\nexport function POST<\n TBody extends AnySchema = never,\n TQuery extends AnySchema = never,\n THeaders extends AnySchema = never,\n TResponse = any,\n>(\n options: Omit<EndpointOptions<TBody, TQuery, THeaders, readonly []>, \"method\">,\n handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>,\n): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;\nexport function POST(...args: any[]): any {\n if (args.length === 1) {\n return createEndpoint(\"\", { method: \"POST\" }, args[0]);\n }\n return createEndpoint(\"\", { ...args[0], method: \"POST\" }, args[1]);\n}\n\n/**\n * Convenience method for PUT requests\n */\nexport function PUT<T = any>(\n handler: EndpointHandler<never, never, never, T>,\n): CreatedEndpoint<never, never, never, T>;\nexport function PUT<const TOptions extends MethodlessEndpointOptions, TResponse = any>(\n options: TOptions,\n handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>,\n): CreatedEndpointFromOptions<TOptions, TResponse>;\nexport function PUT<\n TBody extends AnySchema = never,\n TQuery extends AnySchema = never,\n THeaders extends AnySchema = never,\n TResponse = any,\n>(\n options: Omit<EndpointOptions<TBody, TQuery, THeaders, readonly []>, \"method\">,\n handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>,\n): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;\nexport function PUT(...args: any[]): any {\n if (args.length === 1) {\n return createEndpoint(\"\", { method: \"PUT\" }, args[0]);\n }\n return createEndpoint(\"\", { ...args[0], method: \"PUT\" }, args[1]);\n}\n\n/**\n * Convenience method for DELETE requests\n */\nexport function DELETE<T = any>(\n handler: EndpointHandler<never, never, never, T>,\n): CreatedEndpoint<never, never, never, T>;\nexport function DELETE<const TOptions extends MethodlessEndpointOptions, TResponse = any>(\n options: TOptions,\n handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>,\n): CreatedEndpointFromOptions<TOptions, TResponse>;\nexport function DELETE<\n TBody extends AnySchema = never,\n TQuery extends AnySchema = never,\n THeaders extends AnySchema = never,\n TResponse = any,\n>(\n options: Omit<EndpointOptions<TBody, TQuery, THeaders, readonly []>, \"method\">,\n handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>,\n): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;\nexport function DELETE(...args: any[]): any {\n if (args.length === 1) {\n return createEndpoint(\"\", { method: \"DELETE\" }, args[0]);\n }\n return createEndpoint(\"\", { ...args[0], method: \"DELETE\" }, args[1]);\n}\n\n/**\n * Convenience method for PATCH requests\n */\nexport function PATCH<T = any>(\n handler: EndpointHandler<never, never, never, T>,\n): CreatedEndpoint<never, never, never, T>;\nexport function PATCH<const TOptions extends MethodlessEndpointOptions, TResponse = any>(\n options: TOptions,\n handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>,\n): CreatedEndpointFromOptions<TOptions, TResponse>;\nexport function PATCH<\n TBody extends AnySchema = never,\n TQuery extends AnySchema = never,\n THeaders extends AnySchema = never,\n TResponse = any,\n>(\n options: Omit<EndpointOptions<TBody, TQuery, THeaders, readonly []>, \"method\">,\n handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>,\n): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;\nexport function PATCH(...args: any[]): any {\n if (args.length === 1) {\n return createEndpoint(\"\", { method: \"PATCH\" }, args[0]);\n }\n return createEndpoint(\"\", { ...args[0], method: \"PATCH\" }, args[1]);\n}\n\n/**\n * Convenience method for OPTIONS requests\n */\nexport function OPTIONS<T = any>(\n handler: EndpointHandler<never, never, never, T>,\n): CreatedEndpoint<never, never, never, T>;\nexport function OPTIONS<const TOptions extends MethodlessEndpointOptions, TResponse = any>(\n options: TOptions,\n handler: ValidatedEndpointHandlerFromOptions<TOptions, TResponse>,\n): CreatedEndpointFromOptions<TOptions, TResponse>;\nexport function OPTIONS<\n TBody extends AnySchema = never,\n TQuery extends AnySchema = never,\n THeaders extends AnySchema = never,\n TResponse = any,\n>(\n options: Omit<EndpointOptions<TBody, TQuery, THeaders, readonly []>, \"method\">,\n handler: EndpointHandler<TBody, TQuery, THeaders, TResponse>,\n): CreatedEndpoint<TBody, TQuery, THeaders, TResponse>;\nexport function OPTIONS(...args: any[]): any {\n if (args.length === 1) {\n return createEndpoint(\"\", { method: \"OPTIONS\" }, args[0]);\n }\n return createEndpoint(\"\", { ...args[0], method: \"OPTIONS\" }, args[1]);\n}\n","import { _runWithCurrentRequest } from \"../server/request\";\nimport {\n decodeFarmCacheInvalidations,\n encodeFarmCacheInvalidations,\n FARM_CACHE_INVALIDATION_HEADER,\n} from \"../cache-invalidation\";\nimport { isEndpointFailure, type EndpointFailure } from \"./endpoint\";\n\nexport type APIRouteParamValue = string | string[];\nexport type APIRouteParams = Record<string, APIRouteParamValue>;\n\nexport interface APIRouteMatch<T extends { path: string }> {\n route: T;\n params: APIRouteParams;\n}\n\nexport function matchAPIRoute<T extends { path: string }>(\n routes: Map<string, T>,\n pathname: string,\n): APIRouteMatch<T> | null {\n const exactRoute = routes.get(pathname);\n if (exactRoute) {\n return { route: exactRoute, params: {} };\n }\n\n const normalizedPathname = normalizePathname(pathname);\n if (normalizedPathname !== pathname) {\n const normalizedRoute = routes.get(normalizedPathname);\n if (normalizedRoute) {\n return { route: normalizedRoute, params: {} };\n }\n }\n\n for (const route of routes.values()) {\n const params = matchRoutePath(route.path, pathname);\n if (params) {\n return { route, params };\n }\n }\n\n return null;\n}\n\nexport async function invokeAPIRouteEndpoint(\n endpoint: any,\n request: Request,\n params: APIRouteParams = {},\n): Promise<Response> {\n return _runWithCurrentRequest(request, () =>\n invokeAPIRouteEndpointInContext(endpoint, request, params),\n );\n}\n\nasync function invokeAPIRouteEndpointInContext(\n endpoint: any,\n request: Request,\n params: APIRouteParams,\n): Promise<Response> {\n const farmHandler = endpoint.__handler || (isFarmContextHandler(endpoint) ? endpoint : null);\n\n if (!farmHandler) {\n const result = await endpoint(request, {\n params: Promise.resolve(params),\n });\n return normalizeRouteResponse(result);\n }\n\n const url = new URL(request.url);\n const query: Record<string, string> = {};\n url.searchParams.forEach((value, key) => {\n query[key] = value;\n });\n\n let body: any = undefined;\n if (request.method.toUpperCase() !== \"GET\" && request.method.toUpperCase() !== \"HEAD\") {\n body = await readRequestBody(request);\n }\n\n const headers = Object.fromEntries(request.headers.entries());\n const types = endpoint.__types || {};\n\n const queryValidation = validateInput(types.query, query, \"Invalid query parameters\");\n if (queryValidation instanceof Response) {\n return queryValidation;\n }\n\n const bodyValidation = validateInput(types.body, body, \"Invalid request body\");\n if (bodyValidation instanceof Response) {\n return bodyValidation;\n }\n\n const headersValidation = validateInput(types.headers, headers, \"Invalid request headers\");\n if (headersValidation instanceof Response) {\n return headersValidation;\n }\n\n const handlerContext = {\n query: queryValidation,\n body: bodyValidation,\n headers: headersValidation,\n request,\n context: {},\n params,\n };\n let execution: {\n result: unknown;\n context: unknown;\n handlerExecuted: boolean;\n invalidations: readonly string[];\n };\n try {\n execution =\n typeof endpoint.__farmInvoke === \"function\"\n ? await endpoint.__farmInvoke(handlerContext)\n : {\n result: await farmHandler(handlerContext),\n context: handlerContext.context,\n handlerExecuted: true,\n invalidations: [],\n };\n } catch (error) {\n if (isEndpointFailure(error)) {\n return createEndpointFailureResponse(error);\n }\n throw error;\n }\n\n const response = normalizeRouteResponse(execution.result);\n return attachEndpointInvalidations(response, execution.invalidations);\n}\n\nexport function normalizeRouteResponse(result: unknown): Response {\n if (isWebResponse(result)) {\n return result;\n }\n\n if (result === undefined) {\n return new Response(null, { status: 204 });\n }\n\n return new Response(JSON.stringify(result), {\n status: 200,\n headers: { \"Content-Type\": \"application/json\" },\n });\n}\n\nexport function isWebResponse(value: unknown): value is Response {\n return (\n value instanceof Response ||\n (typeof value === \"object\" &&\n value !== null &&\n \"headers\" in value &&\n \"status\" in value &&\n typeof (value as Response).arrayBuffer === \"function\")\n );\n}\n\nfunction attachEndpointInvalidations(response: Response, keys: readonly string[]): Response {\n const existing = decodeFarmCacheInvalidations(\n response.headers.get(FARM_CACHE_INVALIDATION_HEADER),\n );\n const encoded = encodeFarmCacheInvalidations([...existing, ...keys]);\n if (!encoded) return response;\n\n const headers = new Headers(response.headers);\n headers.set(FARM_CACHE_INVALIDATION_HEADER, encoded);\n return new Response(response.body, {\n status: response.status,\n statusText: response.statusText,\n headers,\n });\n}\n\nexport function createEndpointFailureResponse(failure: EndpointFailure<string, unknown>): Response {\n return new Response(\n JSON.stringify({\n error: {\n code: failure.code,\n message: failure.message,\n data: failure.data,\n },\n }),\n {\n status: failure.status,\n headers: {\n \"cache-control\": \"no-store\",\n \"content-type\": \"application/json\",\n },\n },\n );\n}\n\nfunction isFarmContextHandler(endpoint: unknown): boolean {\n if (typeof endpoint !== \"function\") {\n return false;\n }\n\n const source = Function.prototype.toString.call(endpoint).trim();\n const arrowMatch = source.match(/^(?:async\\s*)?(?:\\(([^)]*)\\)|([A-Za-z_$][\\w$]*))\\s*=>/);\n const functionMatch = source.match(/^(?:async\\s*)?function[^(]*\\(([^)]*)\\)/);\n const firstParameter = (arrowMatch?.[1] || arrowMatch?.[2] || functionMatch?.[1] || \"\")\n .split(\",\")[0]\n .trim();\n\n return firstParameter === \"ctx\" || firstParameter === \"context\" || firstParameter.startsWith(\"{\");\n}\n\nasync function readRequestBody(request: Request): Promise<unknown> {\n const contentType = request.headers.get(\"content-type\")?.split(\";\", 1)[0]?.trim().toLowerCase();\n\n try {\n if (contentType === \"multipart/form-data\") {\n return formDataToObject(await request.clone().formData());\n }\n\n const text = await request.clone().text();\n if (!text) return undefined;\n if (contentType === \"application/x-www-form-urlencoded\") {\n return searchParamsToObject(new URLSearchParams(text));\n }\n if (contentType === \"application/json\" || contentType?.endsWith(\"+json\")) {\n return JSON.parse(text);\n }\n\n // Preserve the previous permissive behavior for callers that omit the\n // content type but still send JSON.\n return JSON.parse(text);\n } catch {\n // The body format is unsupported or malformed. Schema validation below\n // will turn the missing value into a typed 400 response when applicable.\n }\n\n return undefined;\n}\n\nfunction formDataToObject(\n formData: FormData,\n): Record<string, FormDataEntryValue | FormDataEntryValue[]> {\n return entriesToObject(formData.entries());\n}\n\nfunction searchParamsToObject(searchParams: URLSearchParams): Record<string, string | string[]> {\n return entriesToObject(searchParams.entries());\n}\n\nfunction entriesToObject<TValue>(\n entries: IterableIterator<[string, TValue]>,\n): Record<string, TValue | TValue[]> {\n const output: Record<string, TValue | TValue[]> = Object.create(null);\n for (const [key, value] of entries) {\n if (key === \"__proto__\" || key === \"constructor\" || key === \"prototype\") continue;\n const current = output[key];\n if (current === undefined) {\n output[key] = value;\n } else if (Array.isArray(current)) {\n current.push(value);\n } else {\n output[key] = [current, value];\n }\n }\n return output;\n}\n\nfunction validateInput(schema: any, value: unknown, error: string): unknown | Response {\n if (!schema || typeof schema.parse !== \"function\") {\n return value;\n }\n\n try {\n return schema.parse(value);\n } catch (validationError: any) {\n return new Response(\n JSON.stringify({\n error,\n details: validationError.errors || validationError.issues || validationError.message,\n }),\n {\n status: 400,\n headers: { \"Content-Type\": \"application/json\" },\n },\n );\n }\n}\n\nfunction matchRoutePath(routePath: string, pathname: string): APIRouteParams | null {\n const routeSegments = getPathSegments(routePath);\n const pathnameSegments = getPathSegments(pathname);\n const params: APIRouteParams = {};\n let pathIndex = 0;\n\n for (const routeSegment of routeSegments) {\n const dynamicSegment = parseDynamicSegment(routeSegment);\n\n if (dynamicSegment?.catchAll) {\n const remainingSegments = pathnameSegments.slice(pathIndex).map(decodePathSegment);\n if (remainingSegments.length === 0 && !dynamicSegment.optional) {\n return null;\n }\n if (remainingSegments.length > 0) {\n params[dynamicSegment.name] = remainingSegments;\n }\n pathIndex = pathnameSegments.length;\n continue;\n }\n\n const pathnameSegment = pathnameSegments[pathIndex];\n if (pathnameSegment === undefined) {\n return null;\n }\n\n if (dynamicSegment) {\n params[dynamicSegment.name] = decodePathSegment(pathnameSegment);\n pathIndex++;\n continue;\n }\n\n if (routeSegment !== pathnameSegment) {\n return null;\n }\n\n pathIndex++;\n }\n\n return pathIndex === pathnameSegments.length ? params : null;\n}\n\nfunction getPathSegments(pathname: string): string[] {\n return normalizePathname(pathname)\n .split(\"/\")\n .filter((segment) => segment.length > 0);\n}\n\nfunction normalizePathname(pathname: string): string {\n if (pathname.length > 1 && pathname.endsWith(\"/\")) {\n return pathname.replace(/\\/+$/, \"\");\n }\n\n return pathname;\n}\n\nfunction parseDynamicSegment(\n segment: string,\n): { name: string; catchAll: boolean; optional: boolean } | null {\n const optionalCatchAll = segment.match(/^\\[\\[\\.\\.\\.(.+)\\]\\]$/);\n if (optionalCatchAll?.[1]) {\n return { name: optionalCatchAll[1], catchAll: true, optional: true };\n }\n\n const catchAll = segment.match(/^\\[\\.\\.\\.(.+)\\]$/);\n if (catchAll?.[1]) {\n return { name: catchAll[1], catchAll: true, optional: false };\n }\n\n const dynamic = segment.match(/^\\[(.+)\\]$/);\n if (dynamic?.[1]) {\n return { name: dynamic[1], catchAll: false, optional: false };\n }\n\n return null;\n}\n\nfunction decodePathSegment(segment: string): string {\n try {\n return decodeURIComponent(segment);\n } catch {\n return segment;\n }\n}\n"],"mappings":"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","names":["result"]}
@@ -0,0 +1,63 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-CGILA3WO.mjs";
4
+
5
+ // src/server/response.ts
6
+ import { once } from "events";
7
+ async function sendWebResponse(res, response) {
8
+ res.statusCode = response.status;
9
+ const responseHeaders = response.headers;
10
+ const setCookies = responseHeaders.getSetCookie?.() || [];
11
+ if (setCookies.length > 0) {
12
+ res.setHeader("Set-Cookie", setCookies);
13
+ }
14
+ response.headers.forEach((value, key) => {
15
+ if (key.toLowerCase() === "set-cookie" && setCookies.length > 0) {
16
+ return;
17
+ }
18
+ res.setHeader(key, value);
19
+ });
20
+ if (!response.body) {
21
+ res.end();
22
+ return;
23
+ }
24
+ if (typeof res.write !== "function") {
25
+ const body = await response.arrayBuffer();
26
+ res.end(Buffer.from(body));
27
+ return;
28
+ }
29
+ const reader = response.body.getReader();
30
+ try {
31
+ while (true) {
32
+ const { done, value } = await reader.read();
33
+ if (done) {
34
+ break;
35
+ }
36
+ if (!value || value.byteLength === 0) {
37
+ continue;
38
+ }
39
+ if (!res.write(value)) {
40
+ await once(res, "drain");
41
+ }
42
+ }
43
+ res.end();
44
+ } catch (error) {
45
+ if (!res.writableEnded) {
46
+ const responseError = error instanceof Error ? error : new Error(String(error));
47
+ if (typeof res.destroy === "function") {
48
+ res.destroy(responseError);
49
+ } else {
50
+ res.end();
51
+ }
52
+ }
53
+ throw error;
54
+ } finally {
55
+ reader.releaseLock();
56
+ }
57
+ }
58
+ __name(sendWebResponse, "sendWebResponse");
59
+
60
+ export {
61
+ sendWebResponse
62
+ };
63
+ //# sourceMappingURL=chunk-QGOHVJ6J.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/response.ts"],"sourcesContent":["import { once } from \"node:events\";\nimport type { ServerResponse } from \"node:http\";\n\nexport async function sendWebResponse(res: ServerResponse, response: Response): Promise<void> {\n res.statusCode = response.status;\n\n const responseHeaders = response.headers as Headers & {\n getSetCookie?: () => string[];\n };\n const setCookies = responseHeaders.getSetCookie?.() || [];\n if (setCookies.length > 0) {\n res.setHeader(\"Set-Cookie\", setCookies);\n }\n\n response.headers.forEach((value, key) => {\n if (key.toLowerCase() === \"set-cookie\" && setCookies.length > 0) {\n return;\n }\n res.setHeader(key, value);\n });\n\n if (!response.body) {\n res.end();\n return;\n }\n\n if (typeof res.write !== \"function\") {\n const body = await response.arrayBuffer();\n res.end(Buffer.from(body));\n return;\n }\n\n const reader = response.body.getReader();\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n\n if (!value || value.byteLength === 0) {\n continue;\n }\n\n if (!res.write(value)) {\n await once(res, \"drain\");\n }\n }\n\n res.end();\n } catch (error) {\n if (!res.writableEnded) {\n const responseError = error instanceof Error ? error : new Error(String(error));\n if (typeof res.destroy === \"function\") {\n res.destroy(responseError);\n } else {\n res.end();\n }\n }\n throw error;\n } finally {\n reader.releaseLock();\n }\n}\n"],"mappings":";;;;;AAAA,SAAS,YAAY;AAGrB,eAAsB,gBAAgB,KAAqB,UAAmC;AAC5F,MAAI,aAAa,SAAS;AAE1B,QAAM,kBAAkB,SAAS;AAGjC,QAAM,aAAa,gBAAgB,eAAe,KAAK,CAAC;AACxD,MAAI,WAAW,SAAS,GAAG;AACzB,QAAI,UAAU,cAAc,UAAU;AAAA,EACxC;AAEA,WAAS,QAAQ,QAAQ,CAAC,OAAO,QAAQ;AACvC,QAAI,IAAI,YAAY,MAAM,gBAAgB,WAAW,SAAS,GAAG;AAC/D;AAAA,IACF;AACA,QAAI,UAAU,KAAK,KAAK;AAAA,EAC1B,CAAC;AAED,MAAI,CAAC,SAAS,MAAM;AAClB,QAAI,IAAI;AACR;AAAA,EACF;AAEA,MAAI,OAAO,IAAI,UAAU,YAAY;AACnC,UAAM,OAAO,MAAM,SAAS,YAAY;AACxC,QAAI,IAAI,OAAO,KAAK,IAAI,CAAC;AACzB;AAAA,EACF;AAEA,QAAM,SAAS,SAAS,KAAK,UAAU;AAEvC,MAAI;AACF,WAAO,MAAM;AACX,YAAM,EAAE,MAAM,MAAM,IAAI,MAAM,OAAO,KAAK;AAC1C,UAAI,MAAM;AACR;AAAA,MACF;AAEA,UAAI,CAAC,SAAS,MAAM,eAAe,GAAG;AACpC;AAAA,MACF;AAEA,UAAI,CAAC,IAAI,MAAM,KAAK,GAAG;AACrB,cAAM,KAAK,KAAK,OAAO;AAAA,MACzB;AAAA,IACF;AAEA,QAAI,IAAI;AAAA,EACV,SAAS,OAAO;AACd,QAAI,CAAC,IAAI,eAAe;AACtB,YAAM,gBAAgB,iBAAiB,QAAQ,QAAQ,IAAI,MAAM,OAAO,KAAK,CAAC;AAC9E,UAAI,OAAO,IAAI,YAAY,YAAY;AACrC,YAAI,QAAQ,aAAa;AAAA,MAC3B,OAAO;AACL,YAAI,IAAI;AAAA,MACV;AAAA,IACF;AACA,UAAM;AAAA,EACR,UAAE;AACA,WAAO,YAAY;AAAA,EACrB;AACF;AA7DsB;","names":[]}
@@ -0,0 +1,39 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-CGILA3WO.mjs";
4
+
5
+ // src/route-context.ts
6
+ var FARM_ROUTE_CONTEXT_SYMBOL = /* @__PURE__ */ Symbol.for("farm.routeContext");
7
+ async function resolveFarmRouteContext(config, input) {
8
+ if (typeof config.context !== "function") {
9
+ return void 0;
10
+ }
11
+ return config.context(input);
12
+ }
13
+ __name(resolveFarmRouteContext, "resolveFarmRouteContext");
14
+ function withFarmRouteContext(props, context) {
15
+ if (context === void 0) {
16
+ return props;
17
+ }
18
+ Object.defineProperty(props, FARM_ROUTE_CONTEXT_SYMBOL, {
19
+ value: context,
20
+ enumerable: false,
21
+ configurable: true
22
+ });
23
+ return props;
24
+ }
25
+ __name(withFarmRouteContext, "withFarmRouteContext");
26
+ function getFarmRouteContext(props) {
27
+ if (!props || typeof props !== "object") {
28
+ return void 0;
29
+ }
30
+ return props[FARM_ROUTE_CONTEXT_SYMBOL];
31
+ }
32
+ __name(getFarmRouteContext, "getFarmRouteContext");
33
+
34
+ export {
35
+ resolveFarmRouteContext,
36
+ withFarmRouteContext,
37
+ getFarmRouteContext
38
+ };
39
+ //# sourceMappingURL=chunk-QKVUNGAH.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/route-context.ts"],"sourcesContent":["import type { FarmConfig, FarmContextFactoryInput } from \"./types\";\n\nexport const FARM_ROUTE_CONTEXT_SYMBOL = Symbol.for(\"farm.routeContext\");\n\nexport type FarmRouteContextCarrier<TContext = unknown> = {\n [FARM_ROUTE_CONTEXT_SYMBOL]?: TContext;\n};\n\nexport async function resolveFarmRouteContext(\n config: Pick<FarmConfig, \"context\">,\n input: FarmContextFactoryInput,\n): Promise<unknown> {\n if (typeof config.context !== \"function\") {\n return undefined;\n }\n\n return config.context(input);\n}\n\nexport function withFarmRouteContext<TProps extends object, TContext>(\n props: TProps,\n context: TContext | undefined,\n): TProps & FarmRouteContextCarrier<TContext> {\n if (context === undefined) {\n return props as TProps & FarmRouteContextCarrier<TContext>;\n }\n\n Object.defineProperty(props, FARM_ROUTE_CONTEXT_SYMBOL, {\n value: context,\n enumerable: false,\n configurable: true,\n });\n\n return props as TProps & FarmRouteContextCarrier<TContext>;\n}\n\nexport function getFarmRouteContext<TContext = unknown>(props: unknown): TContext | undefined {\n if (!props || typeof props !== \"object\") {\n return undefined;\n }\n\n return (props as FarmRouteContextCarrier<TContext>)[FARM_ROUTE_CONTEXT_SYMBOL];\n}\n"],"mappings":";;;;;AAEO,IAAM,4BAA4B,uBAAO,IAAI,mBAAmB;AAMvE,eAAsB,wBACpB,QACA,OACkB;AAClB,MAAI,OAAO,OAAO,YAAY,YAAY;AACxC,WAAO;AAAA,EACT;AAEA,SAAO,OAAO,QAAQ,KAAK;AAC7B;AATsB;AAWf,SAAS,qBACd,OACA,SAC4C;AAC5C,MAAI,YAAY,QAAW;AACzB,WAAO;AAAA,EACT;AAEA,SAAO,eAAe,OAAO,2BAA2B;AAAA,IACtD,OAAO;AAAA,IACP,YAAY;AAAA,IACZ,cAAc;AAAA,EAChB,CAAC;AAED,SAAO;AACT;AAfgB;AAiBT,SAAS,oBAAwC,OAAsC;AAC5F,MAAI,CAAC,SAAS,OAAO,UAAU,UAAU;AACvC,WAAO;AAAA,EACT;AAEA,SAAQ,MAA4C,yBAAyB;AAC/E;AANgB;","names":[]}
@@ -0,0 +1,56 @@
1
+ import {
2
+ __name
3
+ } from "./chunk-CGILA3WO.mjs";
4
+
5
+ // src/server/vite-config.ts
6
+ function mergeNoExternal(farmValue, userValue) {
7
+ if (farmValue === true || userValue === true) return true;
8
+ const normalize = /* @__PURE__ */ __name((value) => value == null || value === true ? [] : Array.isArray(value) ? value : [value], "normalize");
9
+ return Array.from(/* @__PURE__ */ new Set([...normalize(farmValue), ...normalize(userValue)]));
10
+ }
11
+ __name(mergeNoExternal, "mergeNoExternal");
12
+ function mergeFarmViteConfig(farmConfig, userConfig = {}) {
13
+ return {
14
+ ...farmConfig,
15
+ ...userConfig,
16
+ plugins: [...farmConfig.plugins || [], ...userConfig.plugins || []],
17
+ server: {
18
+ ...farmConfig.server,
19
+ ...userConfig.server
20
+ },
21
+ resolve: {
22
+ ...farmConfig.resolve,
23
+ ...userConfig.resolve,
24
+ dedupe: Array.from(
25
+ /* @__PURE__ */ new Set([...farmConfig.resolve?.dedupe || [], ...userConfig.resolve?.dedupe || []])
26
+ )
27
+ },
28
+ optimizeDeps: {
29
+ ...farmConfig.optimizeDeps,
30
+ ...userConfig.optimizeDeps,
31
+ include: Array.from(
32
+ /* @__PURE__ */ new Set([
33
+ ...farmConfig.optimizeDeps?.include || [],
34
+ ...userConfig.optimizeDeps?.include || []
35
+ ])
36
+ ),
37
+ exclude: Array.from(
38
+ /* @__PURE__ */ new Set([
39
+ ...farmConfig.optimizeDeps?.exclude || [],
40
+ ...userConfig.optimizeDeps?.exclude || []
41
+ ])
42
+ )
43
+ },
44
+ ssr: {
45
+ ...farmConfig.ssr,
46
+ ...userConfig.ssr,
47
+ noExternal: mergeNoExternal(farmConfig.ssr?.noExternal, userConfig.ssr?.noExternal)
48
+ }
49
+ };
50
+ }
51
+ __name(mergeFarmViteConfig, "mergeFarmViteConfig");
52
+
53
+ export {
54
+ mergeFarmViteConfig
55
+ };
56
+ //# sourceMappingURL=chunk-QM746KUO.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/vite-config.ts"],"sourcesContent":["import type { UserConfig as ViteUserConfig } from \"vite\";\n\ntype ViteNoExternal = NonNullable<NonNullable<ViteUserConfig[\"ssr\"]>[\"noExternal\"]>;\n\nfunction mergeNoExternal(\n farmValue: ViteNoExternal | undefined,\n userValue: ViteNoExternal | undefined,\n): ViteNoExternal {\n if (farmValue === true || userValue === true) return true;\n\n const normalize = (value: ViteNoExternal | undefined): Array<string | RegExp> =>\n value == null || value === true ? [] : Array.isArray(value) ? value : [value];\n\n return Array.from(new Set([...normalize(farmValue), ...normalize(userValue)]));\n}\n\nexport function mergeFarmViteConfig(\n farmConfig: ViteUserConfig,\n userConfig: ViteUserConfig = {},\n): ViteUserConfig {\n return {\n ...farmConfig,\n ...userConfig,\n plugins: [...(farmConfig.plugins || []), ...(userConfig.plugins || [])],\n server: {\n ...farmConfig.server,\n ...userConfig.server,\n },\n resolve: {\n ...farmConfig.resolve,\n ...userConfig.resolve,\n dedupe: Array.from(\n new Set([...(farmConfig.resolve?.dedupe || []), ...(userConfig.resolve?.dedupe || [])]),\n ),\n },\n optimizeDeps: {\n ...farmConfig.optimizeDeps,\n ...userConfig.optimizeDeps,\n include: Array.from(\n new Set([\n ...(farmConfig.optimizeDeps?.include || []),\n ...(userConfig.optimizeDeps?.include || []),\n ]),\n ),\n exclude: Array.from(\n new Set([\n ...(farmConfig.optimizeDeps?.exclude || []),\n ...(userConfig.optimizeDeps?.exclude || []),\n ]),\n ),\n },\n ssr: {\n ...farmConfig.ssr,\n ...userConfig.ssr,\n noExternal: mergeNoExternal(farmConfig.ssr?.noExternal, userConfig.ssr?.noExternal),\n },\n };\n}\n"],"mappings":";;;;;AAIA,SAAS,gBACP,WACA,WACgB;AAChB,MAAI,cAAc,QAAQ,cAAc,KAAM,QAAO;AAErD,QAAM,YAAY,wBAAC,UACjB,SAAS,QAAQ,UAAU,OAAO,CAAC,IAAI,MAAM,QAAQ,KAAK,IAAI,QAAQ,CAAC,KAAK,GAD5D;AAGlB,SAAO,MAAM,KAAK,oBAAI,IAAI,CAAC,GAAG,UAAU,SAAS,GAAG,GAAG,UAAU,SAAS,CAAC,CAAC,CAAC;AAC/E;AAVS;AAYF,SAAS,oBACd,YACA,aAA6B,CAAC,GACd;AAChB,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG;AAAA,IACH,SAAS,CAAC,GAAI,WAAW,WAAW,CAAC,GAAI,GAAI,WAAW,WAAW,CAAC,CAAE;AAAA,IACtE,QAAQ;AAAA,MACN,GAAG,WAAW;AAAA,MACd,GAAG,WAAW;AAAA,IAChB;AAAA,IACA,SAAS;AAAA,MACP,GAAG,WAAW;AAAA,MACd,GAAG,WAAW;AAAA,MACd,QAAQ,MAAM;AAAA,QACZ,oBAAI,IAAI,CAAC,GAAI,WAAW,SAAS,UAAU,CAAC,GAAI,GAAI,WAAW,SAAS,UAAU,CAAC,CAAE,CAAC;AAAA,MACxF;AAAA,IACF;AAAA,IACA,cAAc;AAAA,MACZ,GAAG,WAAW;AAAA,MACd,GAAG,WAAW;AAAA,MACd,SAAS,MAAM;AAAA,QACb,oBAAI,IAAI;AAAA,UACN,GAAI,WAAW,cAAc,WAAW,CAAC;AAAA,UACzC,GAAI,WAAW,cAAc,WAAW,CAAC;AAAA,QAC3C,CAAC;AAAA,MACH;AAAA,MACA,SAAS,MAAM;AAAA,QACb,oBAAI,IAAI;AAAA,UACN,GAAI,WAAW,cAAc,WAAW,CAAC;AAAA,UACzC,GAAI,WAAW,cAAc,WAAW,CAAC;AAAA,QAC3C,CAAC;AAAA,MACH;AAAA,IACF;AAAA,IACA,KAAK;AAAA,MACH,GAAG,WAAW;AAAA,MACd,GAAG,WAAW;AAAA,MACd,YAAY,gBAAgB,WAAW,KAAK,YAAY,WAAW,KAAK,UAAU;AAAA,IACpF;AAAA,EACF;AACF;AAzCgB;","names":[]}