@farm.js/core 0.1.60 → 0.1.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/dist/{agent-mcp.d-C-2S9bnP.d.mts → agent-mcp.d-BKZ3UNbt.d.mts} +1 -1
  2. package/dist/{agent-mcp.d-SIoCUP1I.d.ts → agent-mcp.d-C1zr_nGS.d.ts} +1 -1
  3. package/dist/agent-runtime.cjs +3 -3
  4. package/dist/agent-runtime.d.mts +2 -2
  5. package/dist/agent-runtime.d.ts +2 -2
  6. package/dist/agent-runtime.mjs +2 -2
  7. package/dist/analyzer-2AHWJJR7.cjs +15 -0
  8. package/dist/analyzer-YESYU3GK.mjs +15 -0
  9. package/dist/api/route-manager.cjs +4 -4
  10. package/dist/api/route-manager.d.mts +4 -4
  11. package/dist/api/route-manager.d.ts +4 -4
  12. package/dist/api/route-manager.mjs +3 -3
  13. package/dist/api/runtime.cjs +3 -3
  14. package/dist/api/runtime.d.mts +3 -3
  15. package/dist/api/runtime.d.ts +3 -3
  16. package/dist/api/runtime.mjs +2 -2
  17. package/dist/api.cjs +5 -5
  18. package/dist/api.d.mts +4 -4
  19. package/dist/api.d.ts +4 -4
  20. package/dist/api.mjs +4 -4
  21. package/dist/{app-manifest.d-DrSAHskY.d.mts → app-manifest.d-BpvhfKRH.d.mts} +1 -1
  22. package/dist/{app-manifest.d-Tb3CJpL4.d.ts → app-manifest.d-ntch_bvA.d.ts} +1 -1
  23. package/dist/app-markdown.d.mts +3 -3
  24. package/dist/app-markdown.d.ts +3 -3
  25. package/dist/{app.d-CmWlYpZJ.d.ts → app.d-AE8_v3Db.d.ts} +4 -10
  26. package/dist/{app.d-D6QQM_kk.d.mts → app.d-CysWA_8v.d.mts} +4 -10
  27. package/dist/{chunk-FORSVMEJ.mjs → chunk-2CNKQC3G.mjs} +1 -1
  28. package/dist/{chunk-ZFUKPWFC.mjs → chunk-2JYBLE63.mjs} +416 -208
  29. package/dist/{chunk-QRX4JRBO.cjs → chunk-3CCAICF7.cjs} +5 -5
  30. package/dist/{chunk-ANHZ6SUL.mjs → chunk-3TXKFRSO.mjs} +1 -1
  31. package/dist/{chunk-BHJAYPYU.mjs → chunk-3UZVPO72.mjs} +1 -1
  32. package/dist/{chunk-6UUH4N4J.mjs → chunk-43V3ANPQ.mjs} +1 -1
  33. package/dist/chunk-4EBC7EMW.cjs +8 -0
  34. package/dist/{chunk-VZY7MAVS.cjs → chunk-4IHMHFQB.cjs} +27 -1
  35. package/dist/{chunk-FK25QSVC.cjs → chunk-4P5634G6.cjs} +2 -2
  36. package/dist/{chunk-4JTQPOKO.cjs → chunk-53ZCZ46B.cjs} +2 -2
  37. package/dist/{chunk-NQJDO7K7.cjs → chunk-545WJ5UG.cjs} +321 -37
  38. package/dist/{chunk-VU3MYZPO.mjs → chunk-5FE5YT2N.mjs} +26 -0
  39. package/dist/{chunk-A5BJKSZE.cjs → chunk-5IQ2ERQA.cjs} +2 -2
  40. package/dist/{chunk-SJRCWF4Z.mjs → chunk-5Y22WNTO.mjs} +2 -2
  41. package/dist/{chunk-U4BJKNIR.cjs → chunk-752XUZIM.cjs} +11 -6
  42. package/dist/{chunk-JBK7UJOI.cjs → chunk-AJB3DHN6.cjs} +2 -2
  43. package/dist/{chunk-YB44NKC2.cjs → chunk-AXVRUDMB.cjs} +2 -2
  44. package/dist/{chunk-LJVNMGE3.mjs → chunk-BM2LH2JM.mjs} +8 -3
  45. package/dist/{chunk-YI6FKTTN.cjs → chunk-BT4SEFLC.cjs} +261 -38
  46. package/dist/{chunk-LIFUPCXW.cjs → chunk-CFG4QERR.cjs} +13 -2
  47. package/dist/{chunk-3OWVWZ6R.cjs → chunk-CLFEQGET.cjs} +6 -6
  48. package/dist/{chunk-OZK2DS44.mjs → chunk-CROAFCMW.mjs} +1 -1
  49. package/dist/{chunk-2KTYMMWT.mjs → chunk-DPE53XWL.mjs} +1 -1
  50. package/dist/{chunk-3PX4AIXO.mjs → chunk-DQF3QLOH.mjs} +258 -35
  51. package/dist/{chunk-FSQMN2MQ.mjs → chunk-E46NXBNJ.mjs} +1 -1
  52. package/dist/{chunk-EGVC4LIG.mjs → chunk-E4RDMG3K.mjs} +1 -1
  53. package/dist/{chunk-X2CZTWQA.mjs → chunk-ECKQFEX2.mjs} +1 -1
  54. package/dist/{chunk-MTWXOEI4.cjs → chunk-EXXFSZOC.cjs} +246 -193
  55. package/dist/{chunk-UYSTTPYJ.cjs → chunk-GGNJAGGE.cjs} +643 -435
  56. package/dist/{chunk-XTG73QZA.cjs → chunk-GVOMPU3Y.cjs} +12 -8
  57. package/dist/{chunk-ZP32GNJQ.cjs → chunk-I32V5CZL.cjs} +14 -13
  58. package/dist/{chunk-37PYUEK5.mjs → chunk-IOF4KXMP.mjs} +7 -3
  59. package/dist/{chunk-ILMTRGBG.mjs → chunk-IQIKPKFP.mjs} +157 -45
  60. package/dist/{chunk-5JNUYGNF.cjs → chunk-IWRLV46X.cjs} +2 -2
  61. package/dist/{chunk-KPOMS5RO.cjs → chunk-J3GFOQOL.cjs} +3 -3
  62. package/dist/{chunk-NHD7BAKD.mjs → chunk-JCEFKP5M.mjs} +41 -25
  63. package/dist/{analyzer-LCSI3NSH.cjs → chunk-JEJQGZI7.cjs} +16 -13
  64. package/dist/{chunk-LB3DPQP6.cjs → chunk-JLDNXURZ.cjs} +23 -23
  65. package/dist/{chunk-VGG74PSU.cjs → chunk-L2JG337G.cjs} +2 -2
  66. package/dist/chunk-L4RTTTVE.mjs +8 -0
  67. package/dist/chunk-LEJDW34D.cjs +115 -0
  68. package/dist/{analyzer-22BEYV7S.mjs → chunk-LVWGURLD.mjs} +6 -3
  69. package/dist/{chunk-Z5A6CNV2.mjs → chunk-MK5E44WP.mjs} +1 -1
  70. package/dist/{chunk-T4EW7AAD.mjs → chunk-NKRZLQUK.mjs} +2 -2
  71. package/dist/{chunk-HPWB57PZ.mjs → chunk-NT3QDN2E.mjs} +1 -1
  72. package/dist/{chunk-T7I62A4C.mjs → chunk-OUWRNHTV.mjs} +81 -28
  73. package/dist/{chunk-GFT5AHAT.mjs → chunk-QDWMCFTH.mjs} +12 -1
  74. package/dist/{chunk-AER5I65K.mjs → chunk-QTD6EMN2.mjs} +1 -1
  75. package/dist/{chunk-UDJY2ZGY.cjs → chunk-RMUD75WT.cjs} +413 -301
  76. package/dist/chunk-RZNCMRD3.mjs +141 -0
  77. package/dist/{chunk-D7LTCK3U.mjs → chunk-SA7MLSP4.mjs} +11 -6
  78. package/dist/{chunk-2FRLSDBT.cjs → chunk-SM25ZC4S.cjs} +1 -1
  79. package/dist/{chunk-3YMLUNL2.cjs → chunk-SVXOCTQ2.cjs} +1 -1
  80. package/dist/{chunk-W2RZ73IU.cjs → chunk-SYXPWJ7N.cjs} +8 -8
  81. package/dist/{chunk-F6Y7ZAPQ.mjs → chunk-T46NNU4D.mjs} +6 -3
  82. package/dist/{chunk-IFHPDLIS.mjs → chunk-TGULJSHD.mjs} +5 -4
  83. package/dist/{chunk-JPIUGDK4.mjs → chunk-TZVUF5JJ.mjs} +1 -1
  84. package/dist/chunk-UWI3SJAK.cjs +141 -0
  85. package/dist/{chunk-JI5D7MXY.mjs → chunk-UYRI6U3P.mjs} +1 -1
  86. package/dist/{chunk-D2X5MUF5.cjs → chunk-V727H3RI.cjs} +47 -31
  87. package/dist/{chunk-ZMHAFH4R.mjs → chunk-VM7X5CKC.mjs} +2 -2
  88. package/dist/{chunk-VPTWKOCY.mjs → chunk-VWW4Q3BJ.mjs} +287 -6
  89. package/dist/{chunk-4P23B7DU.cjs → chunk-WKJQ2FJA.cjs} +3 -3
  90. package/dist/{chunk-HASX6DC7.cjs → chunk-WKPBIT5Q.cjs} +8 -8
  91. package/dist/{chunk-RAWWCDCT.cjs → chunk-WYAXRIYP.cjs} +3 -3
  92. package/dist/{chunk-3TL3AH25.cjs → chunk-X4K7TYN6.cjs} +12 -7
  93. package/dist/chunk-XCXHQBMM.mjs +115 -0
  94. package/dist/{chunk-DPJ66FSI.cjs → chunk-XX32BOMM.cjs} +7 -7
  95. package/dist/{chunk-2IAPKPEB.cjs → chunk-YN6BHOYY.cjs} +6 -6
  96. package/dist/{chunk-CBKRS3M4.cjs → chunk-Z7P2BTZ3.cjs} +7 -6
  97. package/dist/{chunk-SX7EECTS.mjs → chunk-ZBUAOGMY.mjs} +1 -1
  98. package/dist/{chunk-RPUJHJHE.mjs → chunk-ZFWYCVKS.mjs} +4 -3
  99. package/dist/{chunk-IFXSBJPN.cjs → chunk-ZVIEFTUA.cjs} +20 -17
  100. package/dist/{chunk-EXUONJYV.mjs → chunk-ZZI56IUY.mjs} +3 -3
  101. package/dist/{programmatic-routes-client.d-CLG2N1yH.d.ts → client-component.d-Bgt3x5Fu.d.ts} +18 -3
  102. package/dist/{programmatic-routes-client.d-CPbNqtIi.d.mts → client-component.d-BoqC2MLC.d.mts} +18 -3
  103. package/dist/{client-plugins.d-vXrbcfJ1.d.ts → client-plugins.d-BcqIy4au.d.ts} +1 -1
  104. package/dist/{client-plugins.d-CgQQ-EAv.d.mts → client-plugins.d-CWyYBxXf.d.mts} +1 -1
  105. package/dist/client-plugins.d.mts +2 -2
  106. package/dist/client-plugins.d.ts +2 -2
  107. package/dist/client.d.mts +7 -7
  108. package/dist/client.d.ts +7 -7
  109. package/dist/{config.d-DqZkLwef.d.ts → config.d-qt-mE8O5.d.mts} +6 -2
  110. package/dist/{config.d-DqZkLwef.d.mts → config.d-qt-mE8O5.d.ts} +6 -2
  111. package/dist/config.d.mts +2 -2
  112. package/dist/config.d.ts +2 -2
  113. package/dist/cron.cjs +12 -2
  114. package/dist/cron.d.mts +101 -3
  115. package/dist/cron.d.ts +101 -3
  116. package/dist/cron.mjs +11 -1
  117. package/dist/desktop.d.mts +3 -3
  118. package/dist/desktop.d.ts +3 -3
  119. package/dist/{devtools-KQZ6SRCJ.mjs → devtools-NUVXYG7I.mjs} +6 -6
  120. package/dist/{devtools-UF6JYHUN.cjs → devtools-SVRSGPNC.cjs} +8 -8
  121. package/dist/docs.cjs +9 -9
  122. package/dist/docs.d.mts +3 -3
  123. package/dist/docs.d.ts +3 -3
  124. package/dist/docs.mjs +8 -8
  125. package/dist/image/server.cjs +3 -3
  126. package/dist/image/server.mjs +2 -2
  127. package/dist/image/sharp.cjs +10 -10
  128. package/dist/image/sharp.mjs +2 -2
  129. package/dist/index.cjs +42 -27
  130. package/dist/{index.d-Dmfb7Kb_.d.mts → index.d-BDaiu2i5.d.mts} +1 -1
  131. package/dist/{index.d-DlCELfhf.d.ts → index.d-nAncqTXz.d.ts} +1 -1
  132. package/dist/index.d.mts +18 -18
  133. package/dist/index.d.ts +18 -18
  134. package/dist/index.mjs +42 -27
  135. package/dist/integrations.cjs +3 -3
  136. package/dist/integrations.d.mts +2 -2
  137. package/dist/integrations.d.ts +2 -2
  138. package/dist/integrations.mjs +2 -2
  139. package/dist/internal/app-markdown-runtime.d.mts +3 -3
  140. package/dist/internal/app-markdown-runtime.d.ts +3 -3
  141. package/dist/internal/build-runtime.cjs +27 -22
  142. package/dist/internal/build-runtime.d.mts +4 -4
  143. package/dist/internal/build-runtime.d.ts +4 -4
  144. package/dist/internal/build-runtime.mjs +26 -21
  145. package/dist/internal/cli-runtime.cjs +12 -11
  146. package/dist/internal/cli-runtime.mjs +11 -10
  147. package/dist/internal/client-error-overlay.cjs +4 -4
  148. package/dist/internal/client-error-overlay.mjs +1 -1
  149. package/dist/internal/client-runtime.d.mts +5 -5
  150. package/dist/internal/client-runtime.d.ts +5 -5
  151. package/dist/internal/compression-runtime.d.mts +2 -2
  152. package/dist/internal/compression-runtime.d.ts +2 -2
  153. package/dist/internal/config-runtime.cjs +8 -8
  154. package/dist/internal/config-runtime.d.mts +5 -5
  155. package/dist/internal/config-runtime.d.ts +5 -5
  156. package/dist/internal/config-runtime.mjs +7 -7
  157. package/dist/internal/form-actions.cjs +4 -4
  158. package/dist/internal/form-actions.mjs +3 -3
  159. package/dist/internal/infra-analytics-runtime.cjs +6 -6
  160. package/dist/internal/infra-analytics-runtime.mjs +4 -4
  161. package/dist/internal/metadata-image-runtime.cjs +3 -3
  162. package/dist/internal/metadata-image-runtime.mjs +2 -2
  163. package/dist/internal/native-server-fns.cjs +25 -0
  164. package/dist/internal/native-server-fns.d.mts +42 -0
  165. package/dist/internal/native-server-fns.d.ts +42 -0
  166. package/dist/internal/native-server-fns.mjs +25 -0
  167. package/dist/internal/product-telemetry-runtime.cjs +2 -2
  168. package/dist/internal/product-telemetry-runtime.mjs +1 -1
  169. package/dist/internal/production-node-env.cjs +2 -2
  170. package/dist/internal/production-node-env.mjs +1 -1
  171. package/dist/internal/production-runtime.cjs +16 -10
  172. package/dist/internal/production-runtime.d.mts +39 -12
  173. package/dist/internal/production-runtime.d.ts +39 -12
  174. package/dist/internal/production-runtime.mjs +15 -9
  175. package/dist/internal/react-cache.cjs +51 -0
  176. package/dist/internal/react-cache.d.mts +3 -0
  177. package/dist/internal/react-cache.d.ts +3 -0
  178. package/dist/internal/react-cache.mjs +51 -0
  179. package/dist/markdown.d.mts +2 -2
  180. package/dist/markdown.d.ts +2 -2
  181. package/dist/middleware.cjs +3 -3
  182. package/dist/middleware.d.mts +4 -4
  183. package/dist/middleware.d.ts +4 -4
  184. package/dist/middleware.mjs +2 -2
  185. package/dist/mobile.d.mts +10 -4
  186. package/dist/mobile.d.ts +10 -4
  187. package/dist/{modules-VHD7BELU.mjs → modules-KOKD4XS6.mjs} +2 -2
  188. package/dist/modules-QTP7WJPD.cjs +13 -0
  189. package/dist/native-server-fn-handler-GLRHAYWV.mjs +28 -0
  190. package/dist/native-server-fn-handler-J5MYRXN6.cjs +28 -0
  191. package/dist/native-specs-5OLED4MM.cjs +15 -0
  192. package/dist/{native-specs-BD7HOTMJ.mjs → native-specs-LDV6IZ4N.mjs} +1 -1
  193. package/dist/{native-tree-VWNW2MQ2.mjs → native-tree-AS5L3ID3.mjs} +2 -2
  194. package/dist/{native-tree-6G5O53O3.cjs → native-tree-Z2WYUJEV.cjs} +3 -3
  195. package/dist/native.cjs +1 -1
  196. package/dist/native.d.mts +5 -5
  197. package/dist/native.d.ts +5 -5
  198. package/dist/native.mjs +1 -1
  199. package/dist/{navigation-delegate.d-JXx40JzR.d.ts → navigation-delegate.d-BbUHRXxG.d.ts} +1 -1
  200. package/dist/{navigation-delegate.d-CnOTWOyi.d.mts → navigation-delegate.d-CSCm8ZxL.d.mts} +1 -1
  201. package/dist/navigation.d.mts +5 -5
  202. package/dist/navigation.d.ts +5 -5
  203. package/dist/{nitro-FLN6DRGJ.mjs → nitro-DD4QCA66.mjs} +5 -5
  204. package/dist/{nitro-HXAZZQKY.cjs → nitro-VRDX2H4M.cjs} +8 -8
  205. package/dist/plugin.cjs +19 -18
  206. package/dist/plugin.d.mts +5 -5
  207. package/dist/plugin.d.ts +5 -5
  208. package/dist/plugin.mjs +18 -17
  209. package/dist/{port-WOOQ3V56.mjs → port-UFUZL6RI.mjs} +2 -2
  210. package/dist/{port-C6GBH4C6.cjs → port-VTLHPZOI.cjs} +10 -10
  211. package/dist/{production-runtime.d-CP5s6RuY.d.mts → production-runtime.d-CcQiDko5.d.mts} +1 -1
  212. package/dist/{production-runtime.d-N-cE3pmy.d.ts → production-runtime.d-DgT24A0f.d.ts} +1 -1
  213. package/dist/{render-plan.d-DZ-qjjdG.d.mts → render-plan.d-BH9WF-JZ.d.mts} +1 -1
  214. package/dist/{render-plan.d-B9lAP3uX.d.ts → render-plan.d-CyrX6MDs.d.ts} +1 -1
  215. package/dist/renderer-client.d.mts +5 -5
  216. package/dist/renderer-client.d.ts +5 -5
  217. package/dist/{request.d-BiicaNxb.d.ts → request.d-BB8M8bcD.d.ts} +1 -1
  218. package/dist/{request.d-DV0oeUit.d.mts → request.d-CUrPnCW7.d.mts} +1 -1
  219. package/dist/request.d.mts +3 -3
  220. package/dist/request.d.ts +3 -3
  221. package/dist/{route-rendering.d-BrIKA51A.d.mts → route-rendering.d-CYxlzaFm.d.mts} +1 -1
  222. package/dist/{route-rendering.d-Iss0C7GR.d.ts → route-rendering.d-DYqZMIf4.d.ts} +1 -1
  223. package/dist/{router.d-mNTbOGV_.d.mts → router.d-7o24CD8u.d.mts} +1 -1
  224. package/dist/{router.d-DjGn_al7.d.ts → router.d-DaKo507j.d.ts} +1 -1
  225. package/dist/{routes.d-BKSjHuH9.d.ts → routes.d-BknKQcTu.d.ts} +7 -1
  226. package/dist/{routes.d-qd8Qf4LG.d.mts → routes.d-D1IrO9KK.d.mts} +7 -1
  227. package/dist/routes.d.mts +2 -2
  228. package/dist/routes.d.ts +2 -2
  229. package/dist/{rsc-pipeline-SVLBTY7H.cjs → rsc-pipeline-OF2I7PCX.cjs} +8 -8
  230. package/dist/{rsc-pipeline-WBLBDQXA.mjs → rsc-pipeline-RFLHDAKD.mjs} +7 -7
  231. package/dist/{runtime-DGUOWSMF.cjs → runtime-LBTK62AD.cjs} +70 -47
  232. package/dist/{runtime-HFZTVNFF.mjs → runtime-M6UJCSLA.mjs} +38 -15
  233. package/dist/{runtime.d-Bm_4hP5T.d.ts → runtime.d-CN73a-IL.d.ts} +1 -1
  234. package/dist/{runtime.d-BNVbojF1.d.mts → runtime.d-CcNuzhX6.d.mts} +1 -1
  235. package/dist/server-action-security.cjs +3 -3
  236. package/dist/server-action-security.mjs +2 -2
  237. package/dist/server-fn.cjs +4 -4
  238. package/dist/server-fn.mjs +3 -3
  239. package/dist/server-plugins.d.mts +3 -3
  240. package/dist/server-plugins.d.ts +3 -3
  241. package/dist/server-query.cjs +5 -5
  242. package/dist/server-query.mjs +4 -4
  243. package/dist/server.cjs +38 -37
  244. package/dist/server.d.mts +10 -10
  245. package/dist/server.d.ts +10 -10
  246. package/dist/server.mjs +23 -22
  247. package/dist/{spa-router.d-DHDoXxDE.d.mts → spa-router.d-CNi77LZm.d.mts} +2 -2
  248. package/dist/{spa-router.d-DAtnNoBe.d.ts → spa-router.d-Cvgf5QP4.d.ts} +2 -2
  249. package/dist/testing.cjs +6 -6
  250. package/dist/testing.d.mts +2 -2
  251. package/dist/testing.d.ts +2 -2
  252. package/dist/testing.mjs +4 -4
  253. package/dist/{utils.d-DwZ-KLSB.d.ts → utils.d-C3H-14_Y.d.ts} +1 -1
  254. package/dist/{utils.d-uKZcKJk4.d.mts → utils.d-D8VfzZYn.d.mts} +1 -1
  255. package/dist/version.cjs +2 -2
  256. package/dist/version.mjs +1 -1
  257. package/dist/vite.cjs +21 -18
  258. package/dist/vite.d.mts +5 -5
  259. package/dist/vite.d.ts +5 -5
  260. package/dist/vite.mjs +20 -17
  261. package/dist/workflows.cjs +3 -3
  262. package/dist/workflows.mjs +2 -2
  263. package/package.json +12 -2
  264. package/dist/modules-WT5D3AWY.cjs +0 -13
  265. package/dist/native-specs-IQQRJOOW.cjs +0 -15
package/dist/cron.cjs CHANGED
@@ -11,7 +11,12 @@
11
11
 
12
12
 
13
13
 
14
- var _chunkYI6FKTTNcjs = require('./chunk-YI6FKTTN.cjs');
14
+
15
+
16
+
17
+
18
+
19
+ var _chunkBT4SEFLCcjs = require('./chunk-BT4SEFLC.cjs');
15
20
  require('./chunk-2KMIJDY6.cjs');
16
21
  require('./chunk-SHIWRBFI.cjs');
17
22
  require('./chunk-QMNWKQL4.cjs');
@@ -32,4 +37,9 @@ require('./chunk-BTZ5O6VM.cjs');
32
37
 
33
38
 
34
39
 
35
- exports.DEFAULT_FARM_CRON_SECRET_ENV = _chunkYI6FKTTNcjs.DEFAULT_FARM_CRON_SECRET_ENV; exports.FARM_CRON_MANIFEST = _chunkYI6FKTTNcjs.FARM_CRON_MANIFEST; exports.applyFarmCronVercelCrons = _chunkYI6FKTTNcjs.applyFarmCronVercelCrons; exports.createFarmCronCloudflareConfig = _chunkYI6FKTTNcjs.createFarmCronCloudflareConfig; exports.createFarmCronCloudflareTriggers = _chunkYI6FKTTNcjs.createFarmCronCloudflareTriggers; exports.createFarmCronManifest = _chunkYI6FKTTNcjs.createFarmCronManifest; exports.createFarmCronVercelCrons = _chunkYI6FKTTNcjs.createFarmCronVercelCrons; exports.cronRoute = _chunkYI6FKTTNcjs.cronRoute; exports.isCronRequestAuthorized = _chunkYI6FKTTNcjs.isCronRequestAuthorized; exports.mergeScheduledTasks = _chunkYI6FKTTNcjs.mergeScheduledTasks; exports.prepareFarmCronForNitro = _chunkYI6FKTTNcjs.prepareFarmCronForNitro; exports.resolveCronConfig = _chunkYI6FKTTNcjs.resolveCronConfig;
40
+
41
+
42
+
43
+
44
+
45
+ exports.DEFAULT_FARM_CRON_SECRET_ENV = _chunkBT4SEFLCcjs.DEFAULT_FARM_CRON_SECRET_ENV; exports.FARM_CRON_MANIFEST = _chunkBT4SEFLCcjs.FARM_CRON_MANIFEST; exports.FARM_CRON_NAME_SEGMENT_PATTERN = _chunkBT4SEFLCcjs.FARM_CRON_NAME_SEGMENT_PATTERN; exports.FARM_CRON_SIGNATURE_HEADER = _chunkBT4SEFLCcjs.FARM_CRON_SIGNATURE_HEADER; exports.applyFarmCronVercelCrons = _chunkBT4SEFLCcjs.applyFarmCronVercelCrons; exports.authorizeCronRequest = _chunkBT4SEFLCcjs.authorizeCronRequest; exports.createFarmCronCloudflareConfig = _chunkBT4SEFLCcjs.createFarmCronCloudflareConfig; exports.createFarmCronCloudflareTriggers = _chunkBT4SEFLCcjs.createFarmCronCloudflareTriggers; exports.createFarmCronManifest = _chunkBT4SEFLCcjs.createFarmCronManifest; exports.createFarmCronVercelCrons = _chunkBT4SEFLCcjs.createFarmCronVercelCrons; exports.cronRoute = _chunkBT4SEFLCcjs.cronRoute; exports.farmCronSignature = _chunkBT4SEFLCcjs.farmCronSignature; exports.isCronRequestAuthorized = _chunkBT4SEFLCcjs.isCronRequestAuthorized; exports.mergeScheduledTasks = _chunkBT4SEFLCcjs.mergeScheduledTasks; exports.normalizeCronExpression = _chunkBT4SEFLCcjs.normalizeCronExpression; exports.prepareFarmCronForNitro = _chunkBT4SEFLCcjs.prepareFarmCronForNitro; exports.resolveCronConfig = _chunkBT4SEFLCcjs.resolveCronConfig;
package/dist/cron.d.mts CHANGED
@@ -2,6 +2,30 @@ import { T as TypedEndpoint } from './endpoint.d-BkMSCRf6.mjs';
2
2
  import './cache.mjs';
3
3
 
4
4
  type FarmCronSchedule = string | string[];
5
+ /**
6
+ * Who fires the schedules. `host` is the platform chosen by `deploy.target` or the Nitro preset
7
+ * (Vercel Cron, Cloudflare Cron Triggers, or Nitro scheduled tasks); `farmjs` is Farm.js Infra.
8
+ */
9
+ type FarmCronProvider = "host" | "farmjs";
10
+ /** A JSON value, as route-level cron `input` must survive the build manifest unchanged. */
11
+ type FarmCronInputValue = string | number | boolean | null | FarmCronInputValue[] | {
12
+ [key: string]: FarmCronInputValue;
13
+ };
14
+ /**
15
+ * What a cron-guarded endpoint handler reads as `context.cron`. Only the endpoint form receives
16
+ * it; a plain `(request) => ...` handler reads the `x-farm-cron-name` and
17
+ * `x-farm-cron-scheduled-at` headers itself.
18
+ */
19
+ interface FarmCronContext {
20
+ /** Job name from the `x-farm-cron-name` header; a direct platform call sends none. */
21
+ name?: string;
22
+ /** When the scheduler meant to fire, from `x-farm-cron-scheduled-at` (a millisecond epoch). */
23
+ scheduledAt?: Date;
24
+ /** The literal `input` from the route options; `undefined` when the options set none. */
25
+ input: FarmCronInputValue | undefined;
26
+ /** Aborts when the handler outlives the route's `timeoutMs`. */
27
+ signal: AbortSignal;
28
+ }
5
29
  interface FarmCronJobConfig {
6
30
  /** Portable five-field cron expression, or a list of expressions. */
7
31
  schedule: FarmCronSchedule;
@@ -12,14 +36,31 @@ interface FarmCronJobConfig {
12
36
  /** Disable this schedule without removing its configuration. */
13
37
  enabled?: boolean;
14
38
  }
15
- type FarmCronUserConfig = Record<string, FarmCronJobConfig>;
39
+ interface FarmCronConfig {
40
+ /**
41
+ * Who runs the schedules. `host` uses the scheduler of the platform you deploy to with
42
+ * `deploy.target` or the Nitro preset. `farmjs` leaves the host output empty and writes a manifest
43
+ * for `farm cron sync` after deployment. Credentials never select Infra.
44
+ * @default "host"
45
+ * @example { provider: "farmjs" }
46
+ */
47
+ provider: FarmCronProvider;
48
+ /** Named jobs, merged with route-local `cronRoute()` schedules. */
49
+ jobs?: Record<string, FarmCronJobConfig>;
50
+ }
51
+ type FarmCronUserConfig = Record<string, FarmCronJobConfig> | FarmCronConfig;
16
52
  interface FarmCronJob {
17
53
  name: string;
18
54
  schedule: string[];
19
55
  path: string;
20
56
  description?: string;
57
+ /** Literal `input` from route-level options; config entries never carry one. */
58
+ input?: FarmCronInputValue;
59
+ /** Route-level `timeoutMs`, carried to the manifest so external schedulers can honor it. */
60
+ timeoutMs?: number;
21
61
  }
22
62
  interface FarmCronResolvedConfig {
63
+ provider?: FarmCronProvider;
23
64
  enabled: boolean;
24
65
  secretEnv: typeof DEFAULT_FARM_CRON_SECRET_ENV;
25
66
  jobs: FarmCronJob[];
@@ -32,6 +73,8 @@ interface PreparedFarmCron {
32
73
  }>;
33
74
  scheduledTasks: Record<string, string | string[]>;
34
75
  manifestPath?: string;
76
+ /** Who fires the jobs: the deploy platform, or Farm.js Infra (then the host outputs stay empty). */
77
+ provider: FarmCronProvider;
35
78
  }
36
79
  interface FarmCronRouteOptions {
37
80
  /** Environment variable containing the bearer token. */
@@ -40,6 +83,35 @@ interface FarmCronRouteOptions {
40
83
  secret?: string;
41
84
  /** Allow a production route without a secret. Defaults to false. */
42
85
  allowUnsecured?: boolean;
86
+ /**
87
+ * Schedule this route beside its code: one portable five-field UTC cron expression, or a list.
88
+ * A route with a `schedule` is a cron job, equivalent to a `cron` config entry. The build reads
89
+ * `schedule`, `name`, `description`, `input`, `timeoutMs`, and `enabled` statically from the
90
+ * route file, so they must be written as literals in the `cronRoute()` call.
91
+ */
92
+ schedule?: FarmCronSchedule;
93
+ /** Job name. Defaults to the route path without the leading `/api/`. */
94
+ name?: string;
95
+ /** Human-readable purpose shown by CLI output and the build manifest. */
96
+ description?: string;
97
+ /** JSON literal handed to the handler as `context.cron.input` (endpoint form only). */
98
+ input?: FarmCronInputValue;
99
+ /**
100
+ * Milliseconds the handler may run. When it has not finished, `context.cron.signal` aborts and
101
+ * the route answers 504; a handler that finishes first keeps its own result.
102
+ */
103
+ timeoutMs?: number;
104
+ /**
105
+ * `"skip"` answers 409 `{ skipped: true }` while a run of the same job is still going, without
106
+ * running the handler. Per-process only in v1: replicas and serverless instances do not share
107
+ * the in-flight set, so it is not a distributed lock.
108
+ */
109
+ overlap?: "skip";
110
+ /**
111
+ * `false` keeps the route callable with the same auth but removes it from scheduling outputs,
112
+ * like a disabled `cron` config entry.
113
+ */
114
+ enabled?: boolean;
43
115
  }
44
116
  interface FarmCronCloudflareConfig {
45
117
  deployConfig: true;
@@ -57,10 +129,13 @@ declare function prepareFarmCronForNitro(config: {
57
129
  distDir?: string;
58
130
  cron?: FarmCronResolvedConfig | FarmCronUserConfig | false;
59
131
  }): Promise<PreparedFarmCron>;
60
- declare function createFarmCronManifest(cron: FarmCronResolvedConfig): {
132
+ declare function createFarmCronManifest(cron: FarmCronResolvedConfig, provider?: FarmCronProvider): {
61
133
  schemaVersion: number;
134
+ provider: FarmCronProvider;
62
135
  secretEnv: "CRON_SECRET";
63
136
  jobs: {
137
+ input?: FarmCronInputValue | undefined;
138
+ timeoutMs?: number | undefined;
64
139
  name: string;
65
140
  schedule: string[];
66
141
  path: string;
@@ -81,8 +156,31 @@ type FarmCronEndpoint = TypedEndpoint<any, any, any, any, any, any, any, any>;
81
156
  /**
82
157
  * Guards an API route so only the scheduler can call it: a `createEndpoint()` result, which keeps its
83
158
  * validation, types and metadata, or a plain handler that receives the `Request`.
159
+ *
160
+ * Options may also carry the job's `schedule` and its scheduling fields beside the code; the
161
+ * build reads them statically, so they must be literals in the call. `timeoutMs` and
162
+ * `overlap: "skip"` guard both forms at runtime; `context.cron` is endpoint-form only, a plain
163
+ * handler reads the cron headers from its `Request` itself.
164
+ */
165
+ /** Header carrying Farm.js Infra's signature on a scheduled call. */
166
+ declare const FARM_CRON_SIGNATURE_HEADER = "farmjs-signature";
167
+ /**
168
+ * @internal Exported for tests. `v1` of a scheduled call's `farmjs-signature`: HMAC-SHA256 keyed
169
+ * with the hex SHA-256 of `FARMJS_API_KEY` (as text), over `farmjs-cron-v1\n<t>\nGET <pathname>`.
170
+ * Web Crypto only, so the same code runs on Workers.
171
+ */
172
+ declare function farmCronSignature(apiKey: string, t: number, pathname: string): Promise<string>;
173
+ /**
174
+ * Whether a scheduler may run this cron request: the configured secret
175
+ * (`isCronRequestAuthorized`), or Farm.js Infra's `farmjs-signature`, verified with the
176
+ * `FARMJS_API_KEY` the runtime already has. No key in the runtime means signatures never verify.
84
177
  */
178
+ declare function authorizeCronRequest(request: Request, options?: FarmCronRouteOptions, now?: number): Promise<boolean>;
85
179
  declare function cronRoute<TEndpoint extends FarmCronEndpoint>(endpoint: TEndpoint, options?: FarmCronRouteOptions): TEndpoint;
86
180
  declare function cronRoute<TArgs extends unknown[], TResult>(handler: (request: Request, ...args: TArgs) => TResult, options?: FarmCronRouteOptions): (request: Request, ...args: TArgs) => TResult | Promise<Response>;
181
+ /** @internal One segment of a cron job name; route-level names join segments with `/`. */
182
+ declare const FARM_CRON_NAME_SEGMENT_PATTERN: RegExp;
183
+ /** @internal Validate and normalize one cron expression; the build scan reuses config's rules. */
184
+ declare function normalizeCronExpression(name: string, value: unknown): string;
87
185
 
88
- export { DEFAULT_FARM_CRON_SECRET_ENV, FARM_CRON_MANIFEST, type FarmCronCloudflareConfig, type FarmCronJob, type FarmCronJobConfig, type FarmCronResolvedConfig, type FarmCronRouteOptions, type FarmCronSchedule, type FarmCronUserConfig, type PreparedFarmCron, applyFarmCronVercelCrons, createFarmCronCloudflareConfig, createFarmCronCloudflareTriggers, createFarmCronManifest, createFarmCronVercelCrons, cronRoute, isCronRequestAuthorized, mergeScheduledTasks, prepareFarmCronForNitro, resolveCronConfig };
186
+ export { DEFAULT_FARM_CRON_SECRET_ENV, FARM_CRON_MANIFEST, FARM_CRON_NAME_SEGMENT_PATTERN, FARM_CRON_SIGNATURE_HEADER, type FarmCronCloudflareConfig, type FarmCronConfig, type FarmCronContext, type FarmCronInputValue, type FarmCronJob, type FarmCronJobConfig, type FarmCronProvider, type FarmCronResolvedConfig, type FarmCronRouteOptions, type FarmCronSchedule, type FarmCronUserConfig, type PreparedFarmCron, applyFarmCronVercelCrons, authorizeCronRequest, createFarmCronCloudflareConfig, createFarmCronCloudflareTriggers, createFarmCronManifest, createFarmCronVercelCrons, cronRoute, farmCronSignature, isCronRequestAuthorized, mergeScheduledTasks, normalizeCronExpression, prepareFarmCronForNitro, resolveCronConfig };
package/dist/cron.d.ts CHANGED
@@ -2,6 +2,30 @@ import { T as TypedEndpoint } from './endpoint.d-BgHn0lhl.js';
2
2
  import './cache.js';
3
3
 
4
4
  type FarmCronSchedule = string | string[];
5
+ /**
6
+ * Who fires the schedules. `host` is the platform chosen by `deploy.target` or the Nitro preset
7
+ * (Vercel Cron, Cloudflare Cron Triggers, or Nitro scheduled tasks); `farmjs` is Farm.js Infra.
8
+ */
9
+ type FarmCronProvider = "host" | "farmjs";
10
+ /** A JSON value, as route-level cron `input` must survive the build manifest unchanged. */
11
+ type FarmCronInputValue = string | number | boolean | null | FarmCronInputValue[] | {
12
+ [key: string]: FarmCronInputValue;
13
+ };
14
+ /**
15
+ * What a cron-guarded endpoint handler reads as `context.cron`. Only the endpoint form receives
16
+ * it; a plain `(request) => ...` handler reads the `x-farm-cron-name` and
17
+ * `x-farm-cron-scheduled-at` headers itself.
18
+ */
19
+ interface FarmCronContext {
20
+ /** Job name from the `x-farm-cron-name` header; a direct platform call sends none. */
21
+ name?: string;
22
+ /** When the scheduler meant to fire, from `x-farm-cron-scheduled-at` (a millisecond epoch). */
23
+ scheduledAt?: Date;
24
+ /** The literal `input` from the route options; `undefined` when the options set none. */
25
+ input: FarmCronInputValue | undefined;
26
+ /** Aborts when the handler outlives the route's `timeoutMs`. */
27
+ signal: AbortSignal;
28
+ }
5
29
  interface FarmCronJobConfig {
6
30
  /** Portable five-field cron expression, or a list of expressions. */
7
31
  schedule: FarmCronSchedule;
@@ -12,14 +36,31 @@ interface FarmCronJobConfig {
12
36
  /** Disable this schedule without removing its configuration. */
13
37
  enabled?: boolean;
14
38
  }
15
- type FarmCronUserConfig = Record<string, FarmCronJobConfig>;
39
+ interface FarmCronConfig {
40
+ /**
41
+ * Who runs the schedules. `host` uses the scheduler of the platform you deploy to with
42
+ * `deploy.target` or the Nitro preset. `farmjs` leaves the host output empty and writes a manifest
43
+ * for `farm cron sync` after deployment. Credentials never select Infra.
44
+ * @default "host"
45
+ * @example { provider: "farmjs" }
46
+ */
47
+ provider: FarmCronProvider;
48
+ /** Named jobs, merged with route-local `cronRoute()` schedules. */
49
+ jobs?: Record<string, FarmCronJobConfig>;
50
+ }
51
+ type FarmCronUserConfig = Record<string, FarmCronJobConfig> | FarmCronConfig;
16
52
  interface FarmCronJob {
17
53
  name: string;
18
54
  schedule: string[];
19
55
  path: string;
20
56
  description?: string;
57
+ /** Literal `input` from route-level options; config entries never carry one. */
58
+ input?: FarmCronInputValue;
59
+ /** Route-level `timeoutMs`, carried to the manifest so external schedulers can honor it. */
60
+ timeoutMs?: number;
21
61
  }
22
62
  interface FarmCronResolvedConfig {
63
+ provider?: FarmCronProvider;
23
64
  enabled: boolean;
24
65
  secretEnv: typeof DEFAULT_FARM_CRON_SECRET_ENV;
25
66
  jobs: FarmCronJob[];
@@ -32,6 +73,8 @@ interface PreparedFarmCron {
32
73
  }>;
33
74
  scheduledTasks: Record<string, string | string[]>;
34
75
  manifestPath?: string;
76
+ /** Who fires the jobs: the deploy platform, or Farm.js Infra (then the host outputs stay empty). */
77
+ provider: FarmCronProvider;
35
78
  }
36
79
  interface FarmCronRouteOptions {
37
80
  /** Environment variable containing the bearer token. */
@@ -40,6 +83,35 @@ interface FarmCronRouteOptions {
40
83
  secret?: string;
41
84
  /** Allow a production route without a secret. Defaults to false. */
42
85
  allowUnsecured?: boolean;
86
+ /**
87
+ * Schedule this route beside its code: one portable five-field UTC cron expression, or a list.
88
+ * A route with a `schedule` is a cron job, equivalent to a `cron` config entry. The build reads
89
+ * `schedule`, `name`, `description`, `input`, `timeoutMs`, and `enabled` statically from the
90
+ * route file, so they must be written as literals in the `cronRoute()` call.
91
+ */
92
+ schedule?: FarmCronSchedule;
93
+ /** Job name. Defaults to the route path without the leading `/api/`. */
94
+ name?: string;
95
+ /** Human-readable purpose shown by CLI output and the build manifest. */
96
+ description?: string;
97
+ /** JSON literal handed to the handler as `context.cron.input` (endpoint form only). */
98
+ input?: FarmCronInputValue;
99
+ /**
100
+ * Milliseconds the handler may run. When it has not finished, `context.cron.signal` aborts and
101
+ * the route answers 504; a handler that finishes first keeps its own result.
102
+ */
103
+ timeoutMs?: number;
104
+ /**
105
+ * `"skip"` answers 409 `{ skipped: true }` while a run of the same job is still going, without
106
+ * running the handler. Per-process only in v1: replicas and serverless instances do not share
107
+ * the in-flight set, so it is not a distributed lock.
108
+ */
109
+ overlap?: "skip";
110
+ /**
111
+ * `false` keeps the route callable with the same auth but removes it from scheduling outputs,
112
+ * like a disabled `cron` config entry.
113
+ */
114
+ enabled?: boolean;
43
115
  }
44
116
  interface FarmCronCloudflareConfig {
45
117
  deployConfig: true;
@@ -57,10 +129,13 @@ declare function prepareFarmCronForNitro(config: {
57
129
  distDir?: string;
58
130
  cron?: FarmCronResolvedConfig | FarmCronUserConfig | false;
59
131
  }): Promise<PreparedFarmCron>;
60
- declare function createFarmCronManifest(cron: FarmCronResolvedConfig): {
132
+ declare function createFarmCronManifest(cron: FarmCronResolvedConfig, provider?: FarmCronProvider): {
61
133
  schemaVersion: number;
134
+ provider: FarmCronProvider;
62
135
  secretEnv: "CRON_SECRET";
63
136
  jobs: {
137
+ input?: FarmCronInputValue | undefined;
138
+ timeoutMs?: number | undefined;
64
139
  name: string;
65
140
  schedule: string[];
66
141
  path: string;
@@ -81,8 +156,31 @@ type FarmCronEndpoint = TypedEndpoint<any, any, any, any, any, any, any, any>;
81
156
  /**
82
157
  * Guards an API route so only the scheduler can call it: a `createEndpoint()` result, which keeps its
83
158
  * validation, types and metadata, or a plain handler that receives the `Request`.
159
+ *
160
+ * Options may also carry the job's `schedule` and its scheduling fields beside the code; the
161
+ * build reads them statically, so they must be literals in the call. `timeoutMs` and
162
+ * `overlap: "skip"` guard both forms at runtime; `context.cron` is endpoint-form only, a plain
163
+ * handler reads the cron headers from its `Request` itself.
164
+ */
165
+ /** Header carrying Farm.js Infra's signature on a scheduled call. */
166
+ declare const FARM_CRON_SIGNATURE_HEADER = "farmjs-signature";
167
+ /**
168
+ * @internal Exported for tests. `v1` of a scheduled call's `farmjs-signature`: HMAC-SHA256 keyed
169
+ * with the hex SHA-256 of `FARMJS_API_KEY` (as text), over `farmjs-cron-v1\n<t>\nGET <pathname>`.
170
+ * Web Crypto only, so the same code runs on Workers.
171
+ */
172
+ declare function farmCronSignature(apiKey: string, t: number, pathname: string): Promise<string>;
173
+ /**
174
+ * Whether a scheduler may run this cron request: the configured secret
175
+ * (`isCronRequestAuthorized`), or Farm.js Infra's `farmjs-signature`, verified with the
176
+ * `FARMJS_API_KEY` the runtime already has. No key in the runtime means signatures never verify.
84
177
  */
178
+ declare function authorizeCronRequest(request: Request, options?: FarmCronRouteOptions, now?: number): Promise<boolean>;
85
179
  declare function cronRoute<TEndpoint extends FarmCronEndpoint>(endpoint: TEndpoint, options?: FarmCronRouteOptions): TEndpoint;
86
180
  declare function cronRoute<TArgs extends unknown[], TResult>(handler: (request: Request, ...args: TArgs) => TResult, options?: FarmCronRouteOptions): (request: Request, ...args: TArgs) => TResult | Promise<Response>;
181
+ /** @internal One segment of a cron job name; route-level names join segments with `/`. */
182
+ declare const FARM_CRON_NAME_SEGMENT_PATTERN: RegExp;
183
+ /** @internal Validate and normalize one cron expression; the build scan reuses config's rules. */
184
+ declare function normalizeCronExpression(name: string, value: unknown): string;
87
185
 
88
- export { DEFAULT_FARM_CRON_SECRET_ENV, FARM_CRON_MANIFEST, type FarmCronCloudflareConfig, type FarmCronJob, type FarmCronJobConfig, type FarmCronResolvedConfig, type FarmCronRouteOptions, type FarmCronSchedule, type FarmCronUserConfig, type PreparedFarmCron, applyFarmCronVercelCrons, createFarmCronCloudflareConfig, createFarmCronCloudflareTriggers, createFarmCronManifest, createFarmCronVercelCrons, cronRoute, isCronRequestAuthorized, mergeScheduledTasks, prepareFarmCronForNitro, resolveCronConfig };
186
+ export { DEFAULT_FARM_CRON_SECRET_ENV, FARM_CRON_MANIFEST, FARM_CRON_NAME_SEGMENT_PATTERN, FARM_CRON_SIGNATURE_HEADER, type FarmCronCloudflareConfig, type FarmCronConfig, type FarmCronContext, type FarmCronInputValue, type FarmCronJob, type FarmCronJobConfig, type FarmCronProvider, type FarmCronResolvedConfig, type FarmCronRouteOptions, type FarmCronSchedule, type FarmCronUserConfig, type PreparedFarmCron, applyFarmCronVercelCrons, authorizeCronRequest, createFarmCronCloudflareConfig, createFarmCronCloudflareTriggers, createFarmCronManifest, createFarmCronVercelCrons, cronRoute, farmCronSignature, isCronRequestAuthorized, mergeScheduledTasks, normalizeCronExpression, prepareFarmCronForNitro, resolveCronConfig };
package/dist/cron.mjs CHANGED
@@ -1,17 +1,22 @@
1
1
  import {
2
2
  DEFAULT_FARM_CRON_SECRET_ENV,
3
3
  FARM_CRON_MANIFEST,
4
+ FARM_CRON_NAME_SEGMENT_PATTERN,
5
+ FARM_CRON_SIGNATURE_HEADER,
4
6
  applyFarmCronVercelCrons,
7
+ authorizeCronRequest,
5
8
  createFarmCronCloudflareConfig,
6
9
  createFarmCronCloudflareTriggers,
7
10
  createFarmCronManifest,
8
11
  createFarmCronVercelCrons,
9
12
  cronRoute,
13
+ farmCronSignature,
10
14
  isCronRequestAuthorized,
11
15
  mergeScheduledTasks,
16
+ normalizeCronExpression,
12
17
  prepareFarmCronForNitro,
13
18
  resolveCronConfig
14
- } from "./chunk-3PX4AIXO.mjs";
19
+ } from "./chunk-DQF3QLOH.mjs";
15
20
  import "./chunk-WXFY5JIY.mjs";
16
21
  import "./chunk-YP7YO3S3.mjs";
17
22
  import "./chunk-JSDV2NUN.mjs";
@@ -22,14 +27,19 @@ import "./chunk-Y6FXYEAI.mjs";
22
27
  export {
23
28
  DEFAULT_FARM_CRON_SECRET_ENV,
24
29
  FARM_CRON_MANIFEST,
30
+ FARM_CRON_NAME_SEGMENT_PATTERN,
31
+ FARM_CRON_SIGNATURE_HEADER,
25
32
  applyFarmCronVercelCrons,
33
+ authorizeCronRequest,
26
34
  createFarmCronCloudflareConfig,
27
35
  createFarmCronCloudflareTriggers,
28
36
  createFarmCronManifest,
29
37
  createFarmCronVercelCrons,
30
38
  cronRoute,
39
+ farmCronSignature,
31
40
  isCronRequestAuthorized,
32
41
  mergeScheduledTasks,
42
+ normalizeCronExpression,
33
43
  prepareFarmCronForNitro,
34
44
  resolveCronConfig
35
45
  };
@@ -1,5 +1,5 @@
1
- import { R as ResolvedFarmDesktopConfig } from './client-plugins.d-CgQQ-EAv.mjs';
2
- export { b as FarmDesktopConfigInput, c as FarmDesktopContext, d as FarmDesktopUserConfig, e as FarmDesktopWindowConfig } from './client-plugins.d-CgQQ-EAv.mjs';
1
+ import { R as ResolvedFarmDesktopConfig } from './client-plugins.d-CWyYBxXf.mjs';
2
+ export { b as FarmDesktopConfigInput, c as FarmDesktopContext, d as FarmDesktopUserConfig, e as FarmDesktopWindowConfig } from './client-plugins.d-CWyYBxXf.mjs';
3
3
  import './lifecycle.d-C2aLBOwu.mjs';
4
4
  import './route.d-BaVH3V0w.mjs';
5
5
  import './endpoint.d-BkMSCRf6.mjs';
@@ -29,7 +29,7 @@ import 'rolldown/utils';
29
29
  import 'rolldown';
30
30
  import './image-config.d-CeDgNyX4.mjs';
31
31
  import './types.d-C41ePjvP.mjs';
32
- import './config.d-DqZkLwef.mjs';
32
+ import './config.d-qt-mE8O5.mjs';
33
33
  import './types.d-DQnyD3VD.mjs';
34
34
  import './font.mjs';
35
35
 
package/dist/desktop.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { R as ResolvedFarmDesktopConfig } from './client-plugins.d-vXrbcfJ1.js';
2
- export { b as FarmDesktopConfigInput, c as FarmDesktopContext, d as FarmDesktopUserConfig, e as FarmDesktopWindowConfig } from './client-plugins.d-vXrbcfJ1.js';
1
+ import { R as ResolvedFarmDesktopConfig } from './client-plugins.d-BcqIy4au.js';
2
+ export { b as FarmDesktopConfigInput, c as FarmDesktopContext, d as FarmDesktopUserConfig, e as FarmDesktopWindowConfig } from './client-plugins.d-BcqIy4au.js';
3
3
  import './lifecycle.d-C2aLBOwu.js';
4
4
  import './route.d-DBTEqifW.js';
5
5
  import './endpoint.d-BgHn0lhl.js';
@@ -29,7 +29,7 @@ import 'rolldown/utils';
29
29
  import 'rolldown';
30
30
  import './image-config.d-CeDgNyX4.js';
31
31
  import './types.d-C41ePjvP.js';
32
- import './config.d-DqZkLwef.js';
32
+ import './config.d-qt-mE8O5.js';
33
33
  import './types.d-DQnyD3VD.js';
34
34
  import './font.js';
35
35
 
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  getDeployTargetForPreset
3
- } from "./chunk-VPTWKOCY.mjs";
3
+ } from "./chunk-VWW4Q3BJ.mjs";
4
4
  import "./chunk-VISQDC6W.mjs";
5
5
  import "./chunk-PAKCHVUS.mjs";
6
6
  import "./chunk-X3XUZWRB.mjs";
@@ -17,15 +17,15 @@ import "./chunk-N33DLJBC.mjs";
17
17
  import "./chunk-UIJOLBUL.mjs";
18
18
  import "./chunk-YSXTNSXS.mjs";
19
19
  import "./chunk-VFXE6NWR.mjs";
20
- import "./chunk-JPIUGDK4.mjs";
20
+ import "./chunk-TZVUF5JJ.mjs";
21
21
  import {
22
22
  resolveCronConfig
23
- } from "./chunk-3PX4AIXO.mjs";
23
+ } from "./chunk-DQF3QLOH.mjs";
24
24
  import "./chunk-WXFY5JIY.mjs";
25
- import "./chunk-FSQMN2MQ.mjs";
25
+ import "./chunk-E46NXBNJ.mjs";
26
26
  import "./chunk-YP7YO3S3.mjs";
27
27
  import "./chunk-YWPNIYUP.mjs";
28
- import "./chunk-IFHPDLIS.mjs";
28
+ import "./chunk-TGULJSHD.mjs";
29
29
  import "./chunk-H4WUWLQR.mjs";
30
30
  import "./chunk-M53MIIXY.mjs";
31
31
  import "./chunk-46P5KNTE.mjs";
@@ -44,7 +44,7 @@ import "./chunk-H3ASZDT7.mjs";
44
44
  import "./chunk-2DA7CLY7.mjs";
45
45
  import "./chunk-CO6UYM2D.mjs";
46
46
  import "./chunk-2I6PUKWJ.mjs";
47
- import "./chunk-GFT5AHAT.mjs";
47
+ import "./chunk-QDWMCFTH.mjs";
48
48
  import "./chunk-D2LCAV6L.mjs";
49
49
  import "./chunk-GYMGK467.mjs";
50
50
  import "./chunk-GUZC226X.mjs";
@@ -1,6 +1,6 @@
1
1
  "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
2
 
3
- var _chunkNQJDO7K7cjs = require('./chunk-NQJDO7K7.cjs');
3
+ var _chunk545WJ5UGcjs = require('./chunk-545WJ5UG.cjs');
4
4
  require('./chunk-OZC2JPW6.cjs');
5
5
  require('./chunk-BPNOYILC.cjs');
6
6
  require('./chunk-V56632LA.cjs');
@@ -17,15 +17,15 @@ require('./chunk-3EIPOTZV.cjs');
17
17
  require('./chunk-2HW5LWAH.cjs');
18
18
  require('./chunk-LT4VAF5Z.cjs');
19
19
  require('./chunk-DQJ2CIH7.cjs');
20
- require('./chunk-QRX4JRBO.cjs');
20
+ require('./chunk-3CCAICF7.cjs');
21
21
 
22
22
 
23
- var _chunkYI6FKTTNcjs = require('./chunk-YI6FKTTN.cjs');
23
+ var _chunkBT4SEFLCcjs = require('./chunk-BT4SEFLC.cjs');
24
24
  require('./chunk-2KMIJDY6.cjs');
25
- require('./chunk-FK25QSVC.cjs');
25
+ require('./chunk-4P5634G6.cjs');
26
26
  require('./chunk-SHIWRBFI.cjs');
27
27
  require('./chunk-WT6RAN2I.cjs');
28
- require('./chunk-ZP32GNJQ.cjs');
28
+ require('./chunk-I32V5CZL.cjs');
29
29
  require('./chunk-DUIP64BF.cjs');
30
30
  require('./chunk-ZOYKJBP5.cjs');
31
31
  require('./chunk-ZXK2EYQW.cjs');
@@ -44,7 +44,7 @@ require('./chunk-SUCDVKUB.cjs');
44
44
  require('./chunk-EVIWKPJV.cjs');
45
45
  require('./chunk-YIHRZBD7.cjs');
46
46
  require('./chunk-2OF5RPVU.cjs');
47
- require('./chunk-LIFUPCXW.cjs');
47
+ require('./chunk-CFG4QERR.cjs');
48
48
  require('./chunk-JYT7AN37.cjs');
49
49
  require('./chunk-HA7YRO53.cjs');
50
50
  require('./chunk-CA7DNRHO.cjs');
@@ -332,7 +332,7 @@ async function createFarmDevtoolsSnapshot(input) {
332
332
  );
333
333
  const integrations = collectIntegrations(config.integrations);
334
334
  const storage = collectStorage(config.storage);
335
- const cron = _chunkYI6FKTTNcjs.resolveCronConfig.call(void 0, config.cron);
335
+ const cron = _chunkBT4SEFLCcjs.resolveCronConfig.call(void 0, config.cron);
336
336
  const workflows = (input.workflows || []).map((workflow) => ({
337
337
  id: workflow.id,
338
338
  filePath: toProjectPath(input.root, workflow.filePath),
@@ -347,7 +347,7 @@ async function createFarmDevtoolsSnapshot(input) {
347
347
  }));
348
348
  const deploymentPreset = String(_optionalChain([config, 'access', _13 => _13.deploy, 'optionalAccess', _14 => _14.preset]) || config.preset || "node-server");
349
349
  const deploymentTarget = String(
350
- _optionalChain([config, 'access', _15 => _15.deploy, 'optionalAccess', _16 => _16.target]) || _chunkNQJDO7K7cjs.getDeployTargetForPreset.call(void 0, deploymentPreset) || "node"
350
+ _optionalChain([config, 'access', _15 => _15.deploy, 'optionalAccess', _16 => _16.target]) || _chunk545WJ5UGcjs.getDeployTargetForPreset.call(void 0, deploymentPreset) || "node"
351
351
  );
352
352
  const env = input.env || process.env;
353
353
  if (pageRoutes.length === 0) {
package/dist/docs.cjs CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var _chunkIFXSBJPNcjs = require('./chunk-IFXSBJPN.cjs');
8
+ var _chunkZVIEFTUAcjs = require('./chunk-ZVIEFTUA.cjs');
9
9
 
10
10
 
11
11
 
@@ -14,11 +14,11 @@ var _chunkIFXSBJPNcjs = require('./chunk-IFXSBJPN.cjs');
14
14
 
15
15
 
16
16
 
17
- var _chunk5JNUYGNFcjs = require('./chunk-5JNUYGNF.cjs');
17
+ var _chunkIWRLV46Xcjs = require('./chunk-IWRLV46X.cjs');
18
18
  require('./chunk-DZZHTMWM.cjs');
19
19
  require('./chunk-OOJBBHYW.cjs');
20
20
  require('./chunk-V3UOEWCB.cjs');
21
- require('./chunk-NQJDO7K7.cjs');
21
+ require('./chunk-545WJ5UG.cjs');
22
22
  require('./chunk-OZC2JPW6.cjs');
23
23
  require('./chunk-SM2SYWAR.cjs');
24
24
  require('./chunk-ERMUL73L.cjs');
@@ -37,13 +37,13 @@ require('./chunk-3EIPOTZV.cjs');
37
37
  require('./chunk-2HW5LWAH.cjs');
38
38
  require('./chunk-LT4VAF5Z.cjs');
39
39
  require('./chunk-DQJ2CIH7.cjs');
40
- require('./chunk-QRX4JRBO.cjs');
41
- require('./chunk-YI6FKTTN.cjs');
40
+ require('./chunk-3CCAICF7.cjs');
41
+ require('./chunk-BT4SEFLC.cjs');
42
42
  require('./chunk-2KMIJDY6.cjs');
43
- require('./chunk-FK25QSVC.cjs');
43
+ require('./chunk-4P5634G6.cjs');
44
44
  require('./chunk-SHIWRBFI.cjs');
45
45
  require('./chunk-WT6RAN2I.cjs');
46
- require('./chunk-ZP32GNJQ.cjs');
46
+ require('./chunk-I32V5CZL.cjs');
47
47
  require('./chunk-DUIP64BF.cjs');
48
48
  require('./chunk-ZOYKJBP5.cjs');
49
49
  require('./chunk-ZXK2EYQW.cjs');
@@ -59,7 +59,7 @@ require('./chunk-SUCDVKUB.cjs');
59
59
  require('./chunk-EVIWKPJV.cjs');
60
60
  require('./chunk-YIHRZBD7.cjs');
61
61
  require('./chunk-2OF5RPVU.cjs');
62
- require('./chunk-LIFUPCXW.cjs');
62
+ require('./chunk-CFG4QERR.cjs');
63
63
  require('./chunk-JYT7AN37.cjs');
64
64
  require('./chunk-HA7YRO53.cjs');
65
65
  require('./chunk-CA7DNRHO.cjs');
@@ -90,4 +90,4 @@ require('./chunk-BTZ5O6VM.cjs');
90
90
 
91
91
 
92
92
 
93
- exports.createDocsAPI = _chunkIFXSBJPNcjs.createDocsAPI; exports.createFarmDocsAPIHandler = _chunkIFXSBJPNcjs.createFarmDocsAPIHandler; exports.createFarmDocsAdapterHandler = _chunkIFXSBJPNcjs.createFarmDocsAdapterHandler; exports.createFarmDocsHandler = _chunk5JNUYGNFcjs.createFarmDocsHandler; exports.discoverFarmDocsPages = _chunk5JNUYGNFcjs.discoverFarmDocsPages; exports.getFarmDocsConfigModuleRoot = _chunkIFXSBJPNcjs.getFarmDocsConfigModuleRoot; exports.getFarmDocsDocumentNavigationMatchers = _chunk5JNUYGNFcjs.getFarmDocsDocumentNavigationMatchers; exports.getFarmDocsRouteTypeEntries = _chunk5JNUYGNFcjs.getFarmDocsRouteTypeEntries; exports.hasFarmDocsRuntimeAdapter = _chunkIFXSBJPNcjs.hasFarmDocsRuntimeAdapter; exports.isFarmDocsAPIRequest = _chunkIFXSBJPNcjs.isFarmDocsAPIRequest; exports.isFarmDocsRequest = _chunk5JNUYGNFcjs.isFarmDocsRequest; exports.loadFarmDocsPage = _chunk5JNUYGNFcjs.loadFarmDocsPage; exports.resolveFarmDocsContentDir = _chunk5JNUYGNFcjs.resolveFarmDocsContentDir;
93
+ exports.createDocsAPI = _chunkZVIEFTUAcjs.createDocsAPI; exports.createFarmDocsAPIHandler = _chunkZVIEFTUAcjs.createFarmDocsAPIHandler; exports.createFarmDocsAdapterHandler = _chunkZVIEFTUAcjs.createFarmDocsAdapterHandler; exports.createFarmDocsHandler = _chunkIWRLV46Xcjs.createFarmDocsHandler; exports.discoverFarmDocsPages = _chunkIWRLV46Xcjs.discoverFarmDocsPages; exports.getFarmDocsConfigModuleRoot = _chunkZVIEFTUAcjs.getFarmDocsConfigModuleRoot; exports.getFarmDocsDocumentNavigationMatchers = _chunkIWRLV46Xcjs.getFarmDocsDocumentNavigationMatchers; exports.getFarmDocsRouteTypeEntries = _chunkIWRLV46Xcjs.getFarmDocsRouteTypeEntries; exports.hasFarmDocsRuntimeAdapter = _chunkZVIEFTUAcjs.hasFarmDocsRuntimeAdapter; exports.isFarmDocsAPIRequest = _chunkZVIEFTUAcjs.isFarmDocsAPIRequest; exports.isFarmDocsRequest = _chunkIWRLV46Xcjs.isFarmDocsRequest; exports.loadFarmDocsPage = _chunkIWRLV46Xcjs.loadFarmDocsPage; exports.resolveFarmDocsContentDir = _chunkIWRLV46Xcjs.resolveFarmDocsContentDir;
package/dist/docs.d.mts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { FarmLayoutFonts } from './font.mjs';
2
- import { by as FarmDocsResolvedConfig, bq as FarmMCPServerRegistration, cy as FarmDocsUserConfig } from './client-plugins.d-CgQQ-EAv.mjs';
3
- export { cr as FarmDocsConfigInput, cs as FarmDocsNavigationConfig, ct as FarmDocsResolvedRoot, cu as FarmDocsRootInput, cv as FarmDocsSidebarItem, cw as FarmDocsSocialImageConfig, cx as FarmDocsSocialImageFonts } from './client-plugins.d-CgQQ-EAv.mjs';
2
+ import { by as FarmDocsResolvedConfig, bq as FarmMCPServerRegistration, cy as FarmDocsUserConfig } from './client-plugins.d-CWyYBxXf.mjs';
3
+ export { cr as FarmDocsConfigInput, cs as FarmDocsNavigationConfig, ct as FarmDocsResolvedRoot, cu as FarmDocsRootInput, cv as FarmDocsSidebarItem, cw as FarmDocsSocialImageConfig, cx as FarmDocsSocialImageFonts } from './client-plugins.d-CWyYBxXf.mjs';
4
4
  import { DocsConfig } from '@farming-labs/docs';
5
5
  import './lifecycle.d-C2aLBOwu.mjs';
6
6
  import './route.d-BaVH3V0w.mjs';
@@ -30,7 +30,7 @@ import 'rolldown/utils';
30
30
  import 'rolldown';
31
31
  import './image-config.d-CeDgNyX4.mjs';
32
32
  import './types.d-C41ePjvP.mjs';
33
- import './config.d-DqZkLwef.mjs';
33
+ import './config.d-qt-mE8O5.mjs';
34
34
  import './types.d-DQnyD3VD.mjs';
35
35
 
36
36
  interface FarmDocsPublicFontAsset {
package/dist/docs.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import { FarmLayoutFonts } from './font.js';
2
- import { by as FarmDocsResolvedConfig, bq as FarmMCPServerRegistration, cy as FarmDocsUserConfig } from './client-plugins.d-vXrbcfJ1.js';
3
- export { cr as FarmDocsConfigInput, cs as FarmDocsNavigationConfig, ct as FarmDocsResolvedRoot, cu as FarmDocsRootInput, cv as FarmDocsSidebarItem, cw as FarmDocsSocialImageConfig, cx as FarmDocsSocialImageFonts } from './client-plugins.d-vXrbcfJ1.js';
2
+ import { by as FarmDocsResolvedConfig, bq as FarmMCPServerRegistration, cy as FarmDocsUserConfig } from './client-plugins.d-BcqIy4au.js';
3
+ export { cr as FarmDocsConfigInput, cs as FarmDocsNavigationConfig, ct as FarmDocsResolvedRoot, cu as FarmDocsRootInput, cv as FarmDocsSidebarItem, cw as FarmDocsSocialImageConfig, cx as FarmDocsSocialImageFonts } from './client-plugins.d-BcqIy4au.js';
4
4
  import { DocsConfig } from '@farming-labs/docs';
5
5
  import './lifecycle.d-C2aLBOwu.js';
6
6
  import './route.d-DBTEqifW.js';
@@ -30,7 +30,7 @@ import 'rolldown/utils';
30
30
  import 'rolldown';
31
31
  import './image-config.d-CeDgNyX4.js';
32
32
  import './types.d-C41ePjvP.js';
33
- import './config.d-DqZkLwef.js';
33
+ import './config.d-qt-mE8O5.js';
34
34
  import './types.d-DQnyD3VD.js';
35
35
 
36
36
  interface FarmDocsPublicFontAsset {