@farm.js/core 0.1.16 → 0.1.18
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.
- package/dist/after.cjs +12 -225
- package/dist/agent-runtime.cjs +83 -2800
- package/dist/agent-runtime.d.mts +3 -3
- package/dist/agent-runtime.d.ts +3 -3
- package/dist/api/client.cjs +17 -4026
- package/dist/api/client.d.mts +3 -3
- package/dist/api/client.d.ts +3 -3
- package/dist/api/client.mjs +3 -3
- package/dist/api/route-manager.cjs +34 -4317
- package/dist/api/route-manager.d.mts +3 -3
- package/dist/api/route-manager.d.ts +3 -3
- package/dist/api/route-manager.mjs +5 -5
- package/dist/api/runtime.cjs +29 -2660
- package/dist/api/runtime.d.mts +3 -3
- package/dist/api/runtime.d.ts +3 -3
- package/dist/api/runtime.mjs +6 -3
- package/dist/{api-client-B-n3pm_Q.d.mts → api-client-Cx54IR5g.d.mts} +2 -2
- package/dist/{api-client-C0_NZEBl.d.ts → api-client-DykpaKcY.d.ts} +2 -2
- package/dist/api.cjs +88 -8361
- package/dist/api.d.mts +5 -5
- package/dist/api.d.ts +5 -5
- package/dist/api.mjs +8 -8
- package/dist/{app-AyjEsCBq.d.ts → app-BHY_10Lm.d.ts} +3 -3
- package/dist/{app-CYPHeOo_.d.mts → app-BMk0do23.d.mts} +3 -3
- package/dist/app-markdown.cjs +39 -280
- package/dist/app-markdown.d.mts +4 -4
- package/dist/app-markdown.d.ts +4 -4
- package/dist/app-markdown.mjs +3 -3
- package/dist/cache.cjs +38 -1526
- package/dist/cache.d.mts +11 -1
- package/dist/cache.d.ts +11 -1
- package/dist/cache.mjs +1 -1
- package/dist/chunk-22GUSVNJ.cjs +351 -0
- package/dist/chunk-2CQ74SP6.cjs +13 -0
- package/dist/chunk-2SJ4RQ6P.cjs +57 -0
- package/dist/chunk-3376ZTRC.cjs +1 -0
- package/dist/{chunk-IL5RWYK7.mjs → chunk-3XG26Z3J.mjs} +1 -1
- package/dist/{chunk-7HDZYYS4.mjs → chunk-4OOBRCJX.mjs} +27 -5
- package/dist/chunk-4PNUXIVU.cjs +472 -0
- package/dist/chunk-4PPEPOZZ.cjs +21 -0
- package/dist/chunk-4ZFL5GFN.cjs +520 -0
- package/dist/{chunk-B76DT5Y6.mjs → chunk-57J3Y7Y3.mjs} +1 -1
- package/dist/chunk-5OVTOKGH.cjs +65 -0
- package/dist/chunk-5QIKR7RR.cjs +224 -0
- package/dist/{chunk-MOQNHLTS.mjs → chunk-5QOEPUYE.mjs} +5 -2
- package/dist/{chunk-HKLRP3BN.mjs → chunk-5SPPCN5J.mjs} +1 -1
- package/dist/chunk-5ZSWG4UX.cjs +127 -0
- package/dist/chunk-62YJ2IEB.cjs +238 -0
- package/dist/chunk-6EODJYCX.cjs +183 -0
- package/dist/chunk-6EXBPJ24.cjs +434 -0
- package/dist/chunk-6QQDAAAZ.cjs +38 -0
- package/dist/chunk-6V4TDWEC.cjs +455 -0
- package/dist/{chunk-LUC2FAGW.mjs → chunk-6VQIKZZO.mjs} +1 -1
- package/dist/chunk-72ADZ6GQ.cjs +19 -0
- package/dist/chunk-75BRBIFP.cjs +172 -0
- package/dist/{chunk-7ZWL7XOU.mjs → chunk-76DG3LF3.mjs} +1 -1
- package/dist/chunk-7W3CPVXS.cjs +24 -0
- package/dist/chunk-A6WIQH5Z.cjs +31 -0
- package/dist/{chunk-EWDK36MM.mjs → chunk-A72YEUZ3.mjs} +1 -1
- package/dist/chunk-AFOD3LYZ.cjs +377 -0
- package/dist/chunk-AMDMVWMI.cjs +39 -0
- package/dist/chunk-AORPIPNB.cjs +552 -0
- package/dist/chunk-ARJWXNQL.cjs +256 -0
- package/dist/{chunk-ZHOIQC6U.mjs → chunk-ATERBVHQ.mjs} +2 -2
- package/dist/chunk-AWRISO2H.cjs +2199 -0
- package/dist/chunk-AYJR42WX.cjs +711 -0
- package/dist/chunk-B4CH33IG.cjs +644 -0
- package/dist/chunk-BIDYX3SL.cjs +91 -0
- package/dist/chunk-BSTRERPP.cjs +40 -0
- package/dist/chunk-BYODCJD6.cjs +663 -0
- package/dist/chunk-C3VRMB6H.cjs +85 -0
- package/dist/chunk-C5GUTBZK.cjs +173 -0
- package/dist/chunk-CIAGU2X4.cjs +337 -0
- package/dist/chunk-CMGMGHUZ.cjs +27 -0
- package/dist/chunk-CXP5U3RW.cjs +54 -0
- package/dist/chunk-D2ULAULS.cjs +166 -0
- package/dist/chunk-D7JTOLFK.cjs +285 -0
- package/dist/chunk-DVM4FKZL.cjs +169 -0
- package/dist/chunk-DYEJQTDN.cjs +49 -0
- package/dist/chunk-E2BMSZ2W.cjs +151 -0
- package/dist/chunk-E3UK5IIB.cjs +593 -0
- package/dist/chunk-EM6SBQKM.cjs +470 -0
- package/dist/{chunk-27JNCYEK.mjs → chunk-EN7WTEAY.mjs} +2 -2
- package/dist/{chunk-IGO2HEV7.mjs → chunk-F6SJAKFJ.mjs} +62 -28
- package/dist/{chunk-GSDIZACQ.mjs → chunk-FG5H2VCJ.mjs} +2 -2
- package/dist/chunk-FJSWYIR7.cjs +482 -0
- package/dist/chunk-FK6GO24V.cjs +54 -0
- package/dist/chunk-FXUUWYAX.cjs +654 -0
- package/dist/chunk-G3HRIVEY.cjs +395 -0
- package/dist/chunk-G643DQCH.cjs +13 -0
- package/dist/chunk-G7HXGLEC.cjs +175 -0
- package/dist/chunk-GDSHDTJ4.cjs +152 -0
- package/dist/chunk-GNEO2XOF.cjs +2040 -0
- package/dist/{chunk-NHHKW2T6.mjs → chunk-GYKJCFTS.mjs} +170 -52
- package/dist/chunk-H6G5INWM.cjs +1094 -0
- package/dist/chunk-HBTUGXHS.cjs +180 -0
- package/dist/chunk-HREOKQWT.cjs +45 -0
- package/dist/chunk-I4J452B7.cjs +435 -0
- package/dist/chunk-I57LW5VZ.cjs +94 -0
- package/dist/chunk-I7PUUDGY.cjs +389 -0
- package/dist/chunk-IAMRBF3Z.cjs +86 -0
- package/dist/chunk-IKNRN4VS.cjs +14214 -0
- package/dist/chunk-IQXFRNY2.cjs +169 -0
- package/dist/chunk-IXTFU4PL.cjs +2355 -0
- package/dist/chunk-J2OP5GG3.cjs +725 -0
- package/dist/chunk-J3LOGE4T.cjs +42 -0
- package/dist/chunk-J7FSKED3.cjs +93 -0
- package/dist/chunk-JDNHKPTD.cjs +22 -0
- package/dist/chunk-JSROZYYO.cjs +164 -0
- package/dist/chunk-K6FNHVDR.cjs +696 -0
- package/dist/chunk-KGZIORNL.cjs +43 -0
- package/dist/{chunk-LZK5CXDW.mjs → chunk-KLSSO6YD.mjs} +2 -2
- package/dist/{chunk-TYVVIQ5M.mjs → chunk-KPNVGRBL.mjs} +32 -25
- package/dist/chunk-KR6CKSXT.cjs +15 -0
- package/dist/chunk-KROWKCUH.cjs +185 -0
- package/dist/chunk-KVFPGF2M.cjs +46 -0
- package/dist/{chunk-KUO3GBPK.mjs → chunk-L6V3P73N.mjs} +1 -1
- package/dist/chunk-LCCBO7PJ.cjs +46 -0
- package/dist/chunk-LIUGYUX3.cjs +22 -0
- package/dist/chunk-LTNGXMQ6.cjs +55 -0
- package/dist/chunk-M2L4MYDQ.cjs +14 -0
- package/dist/chunk-MCJLA63J.cjs +1 -0
- package/dist/chunk-MKB2EGIR.cjs +148 -0
- package/dist/chunk-MQ3H6LT5.cjs +202 -0
- package/dist/chunk-MT763TDW.cjs +43 -0
- package/dist/chunk-MWSK6C4J.cjs +18 -0
- package/dist/chunk-MWWVKDW3.cjs +169 -0
- package/dist/{chunk-KTGFMHET.mjs → chunk-N6UROPT7.mjs} +1 -1
- package/dist/chunk-NO3WWW3N.cjs +192 -0
- package/dist/{chunk-NDD2YVGU.mjs → chunk-NRVGEI5I.mjs} +10 -3
- package/dist/chunk-NV3A5DXM.cjs +862 -0
- package/dist/chunk-NWOD6NIT.cjs +9 -0
- package/dist/chunk-NZKJGRB3.cjs +230 -0
- package/dist/chunk-OAVTUMJP.cjs +1496 -0
- package/dist/chunk-OHY2ZWUG.cjs +25 -0
- package/dist/chunk-OI6CMLWX.cjs +47 -0
- package/dist/chunk-OIEOCXKG.cjs +453 -0
- package/dist/chunk-OWOUTKIJ.cjs +558 -0
- package/dist/chunk-OX6O6WVA.cjs +74 -0
- package/dist/chunk-OXSIH4D6.cjs +476 -0
- package/dist/chunk-OYEUREB6.cjs +35 -0
- package/dist/chunk-PCOTGFSM.cjs +139 -0
- package/dist/chunk-PZYCPSCC.cjs +35 -0
- package/dist/chunk-QBK2AA4U.cjs +445 -0
- package/dist/chunk-QBPXNZGV.cjs +487 -0
- package/dist/{chunk-IXTEENRS.mjs → chunk-QGVJVSNX.mjs} +5 -5
- package/dist/chunk-QNPEUFHQ.cjs +27 -0
- package/dist/chunk-QZRVZSPN.cjs +236 -0
- package/dist/chunk-R5A5KNVX.cjs +20 -0
- package/dist/chunk-R5JIFR6B.cjs +42 -0
- package/dist/chunk-R6AIILII.cjs +193 -0
- package/dist/chunk-RG3ZOTG5.cjs +34 -0
- package/dist/chunk-ROUTX2E5.cjs +390 -0
- package/dist/chunk-RTHIVJ2G.cjs +54 -0
- package/dist/chunk-S3A45T7F.cjs +166 -0
- package/dist/chunk-S3JO3N4H.cjs +17 -0
- package/dist/chunk-SK35NQKK.cjs +27 -0
- package/dist/chunk-SU7MH53P.cjs +180 -0
- package/dist/chunk-SVRTJOUF.cjs +113 -0
- package/dist/chunk-SWN467MP.cjs +18 -0
- package/dist/{chunk-6SCB2MXB.mjs → chunk-SXHV42UQ.mjs} +16 -1
- package/dist/{chunk-OWTIOHON.mjs → chunk-SYGGPS4A.mjs} +2 -2
- package/dist/chunk-SYQ3MOWW.cjs +73 -0
- package/dist/chunk-T5CERMEH.cjs +417 -0
- package/dist/chunk-TFAXUHWX.cjs +206 -0
- package/dist/chunk-TIWHTW3Q.cjs +24 -0
- package/dist/chunk-TKJZFIML.cjs +20 -0
- package/dist/chunk-TKNSDBBN.cjs +193 -0
- package/dist/{chunk-NC333MFA.mjs → chunk-TSWW5BVH.mjs} +7 -4
- package/dist/chunk-TWGMSEHX.cjs +525 -0
- package/dist/chunk-TYQUSXUG.cjs +1357 -0
- package/dist/chunk-U4KT7QP3.cjs +23 -0
- package/dist/{chunk-LK6FGAQR.mjs → chunk-UDBJCUPA.mjs} +7 -4
- package/dist/chunk-UJ2C4ICS.cjs +277 -0
- package/dist/chunk-UN5GHC5V.cjs +10244 -0
- package/dist/chunk-UQZ4AYTH.cjs +168 -0
- package/dist/chunk-US2QVW3E.cjs +36 -0
- package/dist/{chunk-NUD6XBMO.mjs → chunk-UTBVHYS3.mjs} +2 -2
- package/dist/{chunk-76MNRHTS.mjs → chunk-UUYF3CHN.mjs} +2 -2
- package/dist/chunk-VB6UCX3V.cjs +421 -0
- package/dist/chunk-VEKFLAQM.cjs +300 -0
- package/dist/chunk-VQDBNVOO.cjs +14 -0
- package/dist/chunk-W4E7WMXE.cjs +71 -0
- package/dist/{chunk-VVTREAG5.mjs → chunk-WD4YXVLV.mjs} +11 -3
- package/dist/{chunk-UQZPTIML.mjs → chunk-WD5PNSOB.mjs} +2 -2
- package/dist/chunk-WJ3HK3LJ.cjs +1102 -0
- package/dist/chunk-WMAPPDMM.cjs +28 -0
- package/dist/chunk-WMOGFOUJ.cjs +223 -0
- package/dist/chunk-WPYFSQKK.cjs +37 -0
- package/dist/chunk-WZMNW2IW.cjs +1415 -0
- package/dist/chunk-XGC343EY.cjs +443 -0
- package/dist/{chunk-DPZUDPVJ.mjs → chunk-XP777LRD.mjs} +1 -1
- package/dist/chunk-XSKZORAS.cjs +727 -0
- package/dist/chunk-XWAWFQFS.cjs +82 -0
- package/dist/{chunk-KATQ6I56.mjs → chunk-XWAYMDLB.mjs} +1 -1
- package/dist/chunk-Y4YMF2NQ.cjs +460 -0
- package/dist/chunk-Y4YWHNKU.cjs +250 -0
- package/dist/chunk-Y53ZSFN6.cjs +504 -0
- package/dist/chunk-YA6LLTIJ.cjs +411 -0
- package/dist/chunk-YFPGHF5F.cjs +202 -0
- package/dist/chunk-YJRZR7VU.cjs +28 -0
- package/dist/chunk-YTAABQEV.cjs +1 -0
- package/dist/chunk-YX3DBN4M.cjs +18 -0
- package/dist/chunk-YZTASLPQ.cjs +64 -0
- package/dist/chunk-Z5HIWVDP.cjs +2173 -0
- package/dist/{chunk-Q3MDL7TM.mjs → chunk-ZCNJKLA2.mjs} +30 -11
- package/dist/chunk-ZEG3OPIB.cjs +93 -0
- package/dist/chunk-ZMN3H73H.cjs +155 -0
- package/dist/client/lifecycle.cjs +6 -35
- package/dist/{client-plugins-CqVtZi5X.d.ts → client-plugins-C089bQhN.d.ts} +2 -2
- package/dist/{client-plugins-CIPRtSsW.d.mts → client-plugins-JXXmZliS.d.mts} +2 -2
- package/dist/client-plugins.cjs +7 -448
- package/dist/client-plugins.d.mts +3 -3
- package/dist/client-plugins.d.ts +3 -3
- package/dist/client.cjs +171 -9774
- package/dist/client.d.mts +8 -8
- package/dist/client.d.ts +8 -8
- package/dist/client.mjs +6 -6
- package/dist/config.cjs +8 -36
- package/dist/config.d.mts +3 -3
- package/dist/config.d.ts +3 -3
- package/dist/cron.cjs +24 -491
- package/dist/cron.mjs +2 -2
- package/dist/deferred.cjs +26 -475
- package/dist/deployment.cjs +39 -210
- package/dist/devtools-OUIPHVV6.cjs +388 -0
- package/dist/{devtools-IU7LKZOH.mjs → devtools-UFVTMQX5.mjs} +7 -7
- package/dist/devtools-client-4WAPJY5L.cjs +254 -0
- package/dist/devtools-ui-5GBDIGMK.cjs +1296 -0
- package/dist/docs.cjs +46 -5649
- package/dist/docs.mjs +9 -9
- package/dist/{endpoint-kSAxE52R.d.ts → endpoint-1zA994xL.d.ts} +1 -1
- package/dist/{endpoint-Bu3XgeMK.d.mts → endpoint-DAc96i93.d.mts} +1 -1
- package/dist/env-types.cjs +5 -226
- package/dist/env.cjs +23 -306
- package/dist/env.d.mts +5 -3
- package/dist/env.d.ts +5 -3
- package/dist/env.mjs +2 -1
- package/dist/environment/vite.cjs +8 -372
- package/dist/environment.cjs +12 -94
- package/dist/font.cjs +13 -63
- package/dist/headers.cjs +7 -123
- package/dist/i18n/client.cjs +55 -294
- package/dist/i18n/index.cjs +22 -209
- package/dist/i18n/server.cjs +22 -745
- package/dist/image/server.cjs +13 -729
- package/dist/image/sharp.cjs +33 -171
- package/dist/image.cjs +41 -85
- package/dist/index.cjs +1151 -67862
- package/dist/index.d.mts +14 -14
- package/dist/index.d.ts +14 -14
- package/dist/index.mjs +34 -34
- package/dist/instrumentation.cjs +12 -138
- package/dist/integration-orm-55F7CII5.cjs +13 -0
- package/dist/integrations.cjs +55 -4090
- package/dist/integrations.d.mts +3 -3
- package/dist/integrations.d.ts +3 -3
- package/dist/internal/app-markdown-runtime.cjs +27 -224
- package/dist/internal/app-markdown-runtime.d.mts +3 -3
- package/dist/internal/app-markdown-runtime.d.ts +3 -3
- package/dist/internal/app-markdown-runtime.mjs +2 -2
- package/dist/internal/build-runtime.cjs +120 -52038
- package/dist/internal/build-runtime.d.mts +5 -5
- package/dist/internal/build-runtime.d.ts +5 -5
- package/dist/internal/build-runtime.mjs +23 -23
- package/dist/internal/cli-runtime.cjs +67 -13765
- package/dist/internal/cli-runtime.mjs +13 -13
- package/dist/internal/client-error-overlay.cjs +80 -733
- package/dist/internal/client-error-overlay.mjs +1 -1
- package/dist/internal/client-runtime.cjs +81 -913
- package/dist/internal/compression-runtime.cjs +8 -214
- package/dist/internal/compression-runtime.d.mts +3 -3
- package/dist/internal/compression-runtime.d.ts +3 -3
- package/dist/internal/config-runtime.cjs +42 -6535
- package/dist/internal/config-runtime.d.mts +4 -4
- package/dist/internal/config-runtime.d.ts +4 -4
- package/dist/internal/config-runtime.mjs +7 -7
- package/dist/internal/docs-precompiled-runtime.cjs +26 -46
- package/dist/internal/infra-analytics-runtime.cjs +10 -536
- package/dist/internal/isolated-boundary.cjs +14 -414
- package/dist/internal/metadata-image-runtime.cjs +7 -285
- package/dist/internal/product-telemetry-runtime.cjs +42 -97
- package/dist/internal/product-telemetry-runtime.mjs +1 -1
- package/dist/internal/production-node-env.cjs +6 -63
- package/dist/internal/production-runtime.cjs +418 -7073
- package/dist/internal/production-runtime.d.mts +9 -9
- package/dist/internal/production-runtime.d.ts +9 -9
- package/dist/internal/production-runtime.mjs +6 -6
- package/dist/internal/request-cookies.cjs +6 -54
- package/dist/json-ld.cjs +24 -50
- package/dist/layers-E4WPJNY5.cjs +17 -0
- package/dist/manager-G4B2IPYE.cjs +14 -0
- package/dist/markdown.cjs +21 -532
- package/dist/markdown.mjs +1 -1
- package/dist/{metadata-8g__AMPM.d.ts → metadata-BcNJP4fq.d.ts} +1 -1
- package/dist/{metadata-OMX6wFNf.d.mts → metadata-C1Z9vLbb.d.mts} +1 -1
- package/dist/middleware.cjs +36 -2988
- package/dist/middleware.d.mts +5 -5
- package/dist/middleware.d.ts +5 -5
- package/dist/middleware.mjs +4 -4
- package/dist/navigation.cjs +22 -2588
- package/dist/nitro-4I2MYLY2.cjs +652 -0
- package/dist/{nitro-3N4ZXRYM.mjs → nitro-CVZ36JM5.mjs} +4 -4
- package/dist/observability.cjs +22 -614
- package/dist/og.cjs +5 -28
- package/dist/plugin.cjs +106 -37291
- package/dist/plugin.d.mts +3 -3
- package/dist/plugin.d.ts +3 -3
- package/dist/plugin.mjs +19 -19
- package/dist/{production-runtime-W3M0eNDV.d.mts → production-runtime-jcrTlRTb.d.mts} +1 -1
- package/dist/{production-runtime-BJh7o6Cr.d.ts → production-runtime-oKmC0WU-.d.ts} +1 -1
- package/dist/query/client.cjs +113 -449
- package/dist/query/index.cjs +26 -288
- package/dist/query/parsers.cjs +23 -247
- package/dist/query/server.cjs +36 -298
- package/dist/{render-plan-io7pvDNc.d.mts → render-plan-BLIfc4jt.d.mts} +1 -1
- package/dist/{render-plan-Be4ZGTJP.d.ts → render-plan-DOB9cV-h.d.ts} +1 -1
- package/dist/renderer/react/client.cjs +9 -43
- package/dist/renderer/react/server.cjs +40 -103
- package/dist/renderer/react/vite.cjs +7 -29
- package/dist/renderer-client.cjs +126 -4261
- package/dist/renderer-client.d.mts +5 -5
- package/dist/renderer-client.d.ts +5 -5
- package/dist/renderer-client.mjs +3 -3
- package/dist/renderer.cjs +31 -249
- package/dist/{request-DZkHYQ89.d.mts → request-Cr53NRHr.d.mts} +1 -1
- package/dist/{request-G8JhKr4F.d.ts → request-Dt2gNuQD.d.ts} +1 -1
- package/dist/request.cjs +5 -68
- package/dist/request.d.mts +4 -4
- package/dist/request.d.ts +4 -4
- package/dist/{route-C_eLaFTZ.d.mts → route-B0XrsrFk.d.mts} +1 -1
- package/dist/{route-BxNJT447.d.ts → route-DOEpbyWZ.d.ts} +1 -1
- package/dist/{route-rendering-BcLLPJgN.d.ts → route-rendering-CWYd8Mv1.d.ts} +1 -1
- package/dist/{route-rendering-CbAKr1TY.d.mts → route-rendering-CeFBEAoZ.d.mts} +1 -1
- package/dist/router.cjs +11 -474
- package/dist/routes.cjs +42 -2424
- package/dist/routes.d.mts +4 -4
- package/dist/routes.d.ts +4 -4
- package/dist/routes.mjs +2 -2
- package/dist/schema-dev-notice-MXSZMVDG.cjs +56 -0
- package/dist/schema.cjs +6 -33
- package/dist/search-client-G3RICOFU.cjs +13 -0
- package/dist/server-action-security.cjs +25 -541
- package/dist/server-fn-client.cjs +6 -337
- package/dist/server-fn-client.d.mts +3 -3
- package/dist/server-fn-client.d.ts +3 -3
- package/dist/server-fn.cjs +32 -1799
- package/dist/server-fn.d.mts +1 -1
- package/dist/server-fn.d.ts +1 -1
- package/dist/server-fn.mjs +2 -2
- package/dist/server-plugins.cjs +15 -884
- package/dist/server-plugins.d.mts +4 -4
- package/dist/server-plugins.d.ts +4 -4
- package/dist/server-query-client.cjs +15 -1849
- package/dist/server-query-client.d.mts +1 -1
- package/dist/server-query-client.d.ts +1 -1
- package/dist/server-query-client.mjs +4 -4
- package/dist/server-query.cjs +16 -1796
- package/dist/server-query.d.mts +1 -1
- package/dist/server-query.d.ts +1 -1
- package/dist/server-query.mjs +3 -3
- package/dist/server.cjs +296 -44522
- package/dist/server.d.mts +9 -9
- package/dist/server.d.ts +9 -9
- package/dist/server.mjs +22 -22
- package/dist/{spa-router-BcS_4nqm.d.mts → spa-router-CQWiYGxS.d.mts} +2 -2
- package/dist/{spa-router-BzFBUJkn.d.ts → spa-router-Wjiw-8hB.d.ts} +2 -2
- package/dist/storage.cjs +57 -576
- package/dist/testing.cjs +92 -3148
- package/dist/testing.d.mts +3 -3
- package/dist/testing.d.ts +3 -3
- package/dist/testing.mjs +11 -7
- package/dist/theme/client.cjs +13 -108
- package/dist/theme/index.cjs +6 -68
- package/dist/theme/runtime.cjs +13 -78
- package/dist/theme/server.cjs +10 -179
- package/dist/{utils-C4yrAhNc.d.ts → utils-B0XJmG_b.d.ts} +1 -1
- package/dist/{utils-5kQP1mFR.d.mts → utils-uUxF0K0P.d.mts} +1 -1
- package/dist/version.cjs +4 -32
- package/dist/version.mjs +1 -1
- package/dist/vite.cjs +119 -37622
- package/dist/vite.d.mts +3 -3
- package/dist/vite.d.ts +3 -3
- package/dist/vite.mjs +19 -19
- package/dist/workflows.cjs +19 -1040
- package/dist/workflows.mjs +2 -2
- package/package.json +2 -2
- package/dist/{chunk-VO5SCWF5.mjs → chunk-BNGS6KJ6.mjs} +0 -0
- package/dist/{chunk-MUUZJLCI.mjs → chunk-EGJDUF4Q.mjs} +3 -3
- package/dist/{chunk-4L7SZOHZ.mjs → chunk-YHOCRI4H.mjs} +3 -3
package/dist/cron.cjs
CHANGED
|
@@ -1,502 +1,35 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __create = Object.create;
|
|
3
|
-
var __defProp = Object.defineProperty;
|
|
4
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
-
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
9
|
-
var __export = (target, all) => {
|
|
10
|
-
for (var name in all)
|
|
11
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
12
|
-
};
|
|
13
|
-
var __copyProps = (to, from, except, desc) => {
|
|
14
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
-
for (let key of __getOwnPropNames(from))
|
|
16
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
17
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
18
|
-
}
|
|
19
|
-
return to;
|
|
20
|
-
};
|
|
21
|
-
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
22
|
-
// If the importer is in node compatibility mode or this is not an ESM
|
|
23
|
-
// file that has been converted to a CommonJS file using a Babel-
|
|
24
|
-
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
25
|
-
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
26
|
-
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
27
|
-
mod
|
|
28
|
-
));
|
|
29
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});
|
|
30
2
|
|
|
31
|
-
// src/cron.ts
|
|
32
|
-
var cron_exports = {};
|
|
33
|
-
__export(cron_exports, {
|
|
34
|
-
DEFAULT_FARM_CRON_SECRET_ENV: () => DEFAULT_FARM_CRON_SECRET_ENV,
|
|
35
|
-
FARM_CRON_MANIFEST: () => FARM_CRON_MANIFEST,
|
|
36
|
-
applyFarmCronVercelCrons: () => applyFarmCronVercelCrons,
|
|
37
|
-
createFarmCronCloudflareConfig: () => createFarmCronCloudflareConfig,
|
|
38
|
-
createFarmCronCloudflareTriggers: () => createFarmCronCloudflareTriggers,
|
|
39
|
-
createFarmCronManifest: () => createFarmCronManifest,
|
|
40
|
-
createFarmCronVercelCrons: () => createFarmCronVercelCrons,
|
|
41
|
-
cronRoute: () => cronRoute,
|
|
42
|
-
isCronRequestAuthorized: () => isCronRequestAuthorized,
|
|
43
|
-
mergeScheduledTasks: () => mergeScheduledTasks,
|
|
44
|
-
prepareFarmCronForNitro: () => prepareFarmCronForNitro,
|
|
45
|
-
resolveCronConfig: () => resolveCronConfig
|
|
46
|
-
});
|
|
47
|
-
module.exports = __toCommonJS(cron_exports);
|
|
48
3
|
|
|
49
|
-
// src/secret-compare.ts
|
|
50
|
-
function farmSecretsMatch(provided, expected) {
|
|
51
|
-
if (typeof provided !== "string" || typeof expected !== "string") return false;
|
|
52
|
-
if (expected.length === 0) return false;
|
|
53
|
-
let mismatch = provided.length ^ expected.length;
|
|
54
|
-
const length = Math.max(provided.length, expected.length);
|
|
55
|
-
for (let index = 0; index < length; index += 1) {
|
|
56
|
-
const providedCode = index < provided.length ? provided.charCodeAt(index) : 0;
|
|
57
|
-
const expectedCode = index < expected.length ? expected.charCodeAt(index) : 0;
|
|
58
|
-
mismatch |= providedCode ^ expectedCode;
|
|
59
|
-
}
|
|
60
|
-
return mismatch === 0;
|
|
61
|
-
}
|
|
62
|
-
__name(farmSecretsMatch, "farmSecretsMatch");
|
|
63
4
|
|
|
64
|
-
// src/utils.ts
|
|
65
|
-
function toPosixPath(filePath) {
|
|
66
|
-
return filePath.replace(/\\/g, "/");
|
|
67
|
-
}
|
|
68
|
-
__name(toPosixPath, "toPosixPath");
|
|
69
5
|
|
|
70
|
-
// src/utils/runtime-env.ts
|
|
71
|
-
function getFarmRuntimeBindings() {
|
|
72
|
-
const runtimeBindings = globalThis.__env__;
|
|
73
|
-
return runtimeBindings && typeof runtimeBindings === "object" ? runtimeBindings : void 0;
|
|
74
|
-
}
|
|
75
|
-
__name(getFarmRuntimeBindings, "getFarmRuntimeBindings");
|
|
76
|
-
function readFarmEnvironmentValue(name) {
|
|
77
|
-
const runtimeValue = getFarmRuntimeBindings()?.[name];
|
|
78
|
-
if (typeof runtimeValue === "string") return runtimeValue;
|
|
79
|
-
return typeof process !== "undefined" ? process.env?.[name] : void 0;
|
|
80
|
-
}
|
|
81
|
-
__name(readFarmEnvironmentValue, "readFarmEnvironmentValue");
|
|
82
6
|
|
|
83
|
-
// src/cron.ts
|
|
84
|
-
var DEFAULT_FARM_CRON_SECRET_ENV = "CRON_SECRET";
|
|
85
|
-
var FARM_CRON_MANIFEST = "cron-manifest.json";
|
|
86
|
-
var CRON_FIELD_RANGES = [
|
|
87
|
-
[0, 59, "minute"],
|
|
88
|
-
[0, 23, "hour"],
|
|
89
|
-
[1, 31, "day of month"],
|
|
90
|
-
[1, 12, "month"],
|
|
91
|
-
[0, 6, "day of week"]
|
|
92
|
-
];
|
|
93
|
-
function resolveCronConfig(cron) {
|
|
94
|
-
if (isResolvedCronConfig(cron)) return cron;
|
|
95
|
-
if (!cron) {
|
|
96
|
-
return {
|
|
97
|
-
enabled: false,
|
|
98
|
-
secretEnv: DEFAULT_FARM_CRON_SECRET_ENV,
|
|
99
|
-
jobs: []
|
|
100
|
-
};
|
|
101
|
-
}
|
|
102
|
-
const jobs = [];
|
|
103
|
-
for (const [name, job] of Object.entries(cron)) {
|
|
104
|
-
if (!job || typeof job !== "object" || Array.isArray(job)) {
|
|
105
|
-
throw new TypeError(`Farm cron ${JSON.stringify(name)} must be a configuration object.`);
|
|
106
|
-
}
|
|
107
|
-
if (job.enabled === false) continue;
|
|
108
|
-
jobs.push(normalizeCronJob(name, job));
|
|
109
|
-
}
|
|
110
|
-
return {
|
|
111
|
-
enabled: jobs.length > 0,
|
|
112
|
-
secretEnv: DEFAULT_FARM_CRON_SECRET_ENV,
|
|
113
|
-
jobs
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
__name(resolveCronConfig, "resolveCronConfig");
|
|
117
|
-
async function prepareFarmCronForNitro(config) {
|
|
118
|
-
const cron = isResolvedCronConfig(config.cron) ? config.cron : resolveCronConfig(config.cron);
|
|
119
|
-
const root = config.root || process.cwd();
|
|
120
|
-
const distDir = config.distDir || ".farm";
|
|
121
|
-
const fs = await import("fs/promises");
|
|
122
|
-
const path = await import("path");
|
|
123
|
-
const manifestPath = path.join(root, distDir, FARM_CRON_MANIFEST);
|
|
124
|
-
const generatedDir = path.join(root, distDir, ".nitro", "farm-cron");
|
|
125
|
-
if (!cron.enabled) {
|
|
126
|
-
await Promise.all([
|
|
127
|
-
fs.rm(manifestPath, { force: true }),
|
|
128
|
-
fs.rm(generatedDir, { recursive: true, force: true })
|
|
129
|
-
]);
|
|
130
|
-
return {
|
|
131
|
-
jobs: [],
|
|
132
|
-
tasks: {},
|
|
133
|
-
scheduledTasks: {}
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
|
-
await fs.rm(generatedDir, { recursive: true, force: true });
|
|
137
|
-
await fs.mkdir(generatedDir, { recursive: true });
|
|
138
|
-
const tasks = {};
|
|
139
|
-
const wrapperNames = resolveCronWrapperFileNames(cron.jobs.map((job) => job.name));
|
|
140
|
-
for (const job of cron.jobs) {
|
|
141
|
-
const taskName = getFarmCronTaskName(job.name);
|
|
142
|
-
const wrapperPath = toPosixPath(path.join(generatedDir, `${wrapperNames.get(job.name)}.mjs`));
|
|
143
|
-
await fs.writeFile(wrapperPath, createNitroCronTaskWrapper(job, cron.secretEnv), "utf8");
|
|
144
|
-
tasks[taskName] = {
|
|
145
|
-
handler: wrapperPath,
|
|
146
|
-
description: job.description || `Farm cron ${job.name}`
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
const manifest = createFarmCronManifest(cron);
|
|
150
|
-
await fs.mkdir(path.dirname(manifestPath), { recursive: true });
|
|
151
|
-
await fs.writeFile(manifestPath, `${JSON.stringify(manifest, null, 2)}
|
|
152
|
-
`, "utf8");
|
|
153
|
-
return {
|
|
154
|
-
jobs: cron.jobs,
|
|
155
|
-
tasks,
|
|
156
|
-
scheduledTasks: createCronScheduledTasks(cron.jobs),
|
|
157
|
-
manifestPath
|
|
158
|
-
};
|
|
159
|
-
}
|
|
160
|
-
__name(prepareFarmCronForNitro, "prepareFarmCronForNitro");
|
|
161
|
-
function createFarmCronManifest(cron) {
|
|
162
|
-
return {
|
|
163
|
-
schemaVersion: 1,
|
|
164
|
-
secretEnv: cron.secretEnv,
|
|
165
|
-
jobs: cron.jobs.map((job) => ({
|
|
166
|
-
name: job.name,
|
|
167
|
-
schedule: job.schedule,
|
|
168
|
-
path: job.path,
|
|
169
|
-
description: job.description || null
|
|
170
|
-
}))
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
__name(createFarmCronManifest, "createFarmCronManifest");
|
|
174
|
-
function createFarmCronVercelCrons(jobs) {
|
|
175
|
-
return jobs.flatMap(
|
|
176
|
-
(job) => job.schedule.map((schedule) => ({
|
|
177
|
-
path: job.path,
|
|
178
|
-
schedule
|
|
179
|
-
}))
|
|
180
|
-
);
|
|
181
|
-
}
|
|
182
|
-
__name(createFarmCronVercelCrons, "createFarmCronVercelCrons");
|
|
183
|
-
function applyFarmCronVercelCrons(vercelConfig, jobs) {
|
|
184
|
-
const existingCrons = Array.isArray(vercelConfig.crons) ? vercelConfig.crons : [];
|
|
185
|
-
const seen = new Set(existingCrons.map((cron) => `${cron.path}:${cron.schedule}`));
|
|
186
|
-
const crons = [...existingCrons];
|
|
187
|
-
for (const cron of createFarmCronVercelCrons(jobs)) {
|
|
188
|
-
const key = `${cron.path}:${cron.schedule}`;
|
|
189
|
-
if (seen.has(key)) continue;
|
|
190
|
-
seen.add(key);
|
|
191
|
-
crons.push(cron);
|
|
192
|
-
}
|
|
193
|
-
return crons.length > 0 ? { ...vercelConfig, crons } : vercelConfig;
|
|
194
|
-
}
|
|
195
|
-
__name(applyFarmCronVercelCrons, "applyFarmCronVercelCrons");
|
|
196
|
-
function createFarmCronCloudflareTriggers(jobs) {
|
|
197
|
-
return [...new Set(jobs.flatMap((job) => job.schedule))];
|
|
198
|
-
}
|
|
199
|
-
__name(createFarmCronCloudflareTriggers, "createFarmCronCloudflareTriggers");
|
|
200
|
-
function createFarmCronCloudflareConfig(jobs) {
|
|
201
|
-
const crons = createFarmCronCloudflareTriggers(jobs);
|
|
202
|
-
if (crons.length === 0) return void 0;
|
|
203
|
-
return {
|
|
204
|
-
deployConfig: true,
|
|
205
|
-
wrangler: {
|
|
206
|
-
triggers: { crons }
|
|
207
|
-
}
|
|
208
|
-
};
|
|
209
|
-
}
|
|
210
|
-
__name(createFarmCronCloudflareConfig, "createFarmCronCloudflareConfig");
|
|
211
|
-
function mergeScheduledTasks(...maps) {
|
|
212
|
-
const merged = /* @__PURE__ */ new Map();
|
|
213
|
-
for (const map of maps) {
|
|
214
|
-
for (const [schedule, taskNames] of Object.entries(map || {})) {
|
|
215
|
-
const current = merged.get(schedule) || [];
|
|
216
|
-
for (const taskName of Array.isArray(taskNames) ? taskNames : [taskNames]) {
|
|
217
|
-
if (!current.includes(taskName)) current.push(taskName);
|
|
218
|
-
}
|
|
219
|
-
merged.set(schedule, current);
|
|
220
|
-
}
|
|
221
|
-
}
|
|
222
|
-
return Object.fromEntries(
|
|
223
|
-
[...merged].map(([schedule, taskNames]) => [
|
|
224
|
-
schedule,
|
|
225
|
-
taskNames.length === 1 ? taskNames[0] : taskNames
|
|
226
|
-
])
|
|
227
|
-
);
|
|
228
|
-
}
|
|
229
|
-
__name(mergeScheduledTasks, "mergeScheduledTasks");
|
|
230
|
-
function isExplicitDevelopmentEnv() {
|
|
231
|
-
const nodeEnv = readFarmEnvironmentValue("NODE_ENV");
|
|
232
|
-
return nodeEnv === "development" || nodeEnv === "test";
|
|
233
|
-
}
|
|
234
|
-
__name(isExplicitDevelopmentEnv, "isExplicitDevelopmentEnv");
|
|
235
|
-
function isCronRequestAuthorized(request, options = {}) {
|
|
236
|
-
const secretEnv = options.secretEnv || DEFAULT_FARM_CRON_SECRET_ENV;
|
|
237
|
-
const secret = options.secret || readFarmEnvironmentValue(secretEnv);
|
|
238
|
-
if (!secret) {
|
|
239
|
-
return options.allowUnsecured === true || !getFarmRuntimeBindings() && isExplicitDevelopmentEnv();
|
|
240
|
-
}
|
|
241
|
-
const authorization = request.headers.get("authorization") || "";
|
|
242
|
-
const bearer = /^Bearer (.*)$/i.exec(authorization)?.[1] || "";
|
|
243
|
-
const headerSecret = request.headers.get("x-farm-cron-secret") || "";
|
|
244
|
-
return farmSecretsMatch(bearer, secret) || farmSecretsMatch(headerSecret, secret);
|
|
245
|
-
}
|
|
246
|
-
__name(isCronRequestAuthorized, "isCronRequestAuthorized");
|
|
247
|
-
function cronRoute(handler, options = {}) {
|
|
248
|
-
return (request, ...args) => {
|
|
249
|
-
if (!isCronRequestAuthorized(request, options)) {
|
|
250
|
-
return Promise.resolve(
|
|
251
|
-
Response.json({ error: "Unauthorized cron request." }, { status: 401 })
|
|
252
|
-
);
|
|
253
|
-
}
|
|
254
|
-
return handler(request, ...args);
|
|
255
|
-
};
|
|
256
|
-
}
|
|
257
|
-
__name(cronRoute, "cronRoute");
|
|
258
|
-
function normalizeCronJob(name, job) {
|
|
259
|
-
if (!/^[a-zA-Z0-9][a-zA-Z0-9._-]*$/.test(name)) {
|
|
260
|
-
throw new TypeError(
|
|
261
|
-
`Farm cron name ${JSON.stringify(name)} must start with a letter or number and contain only letters, numbers, dots, underscores, or hyphens.`
|
|
262
|
-
);
|
|
263
|
-
}
|
|
264
|
-
if (!job || typeof job !== "object" || Array.isArray(job)) {
|
|
265
|
-
throw new TypeError(`Farm cron ${JSON.stringify(name)} must be a configuration object.`);
|
|
266
|
-
}
|
|
267
|
-
const path = normalizeCronPath(name, job.path);
|
|
268
|
-
const rawSchedule = Array.isArray(job.schedule) ? job.schedule : [job.schedule];
|
|
269
|
-
const schedule = [...new Set(rawSchedule.map((value) => normalizeCronExpression(name, value)))];
|
|
270
|
-
if (schedule.length === 0) {
|
|
271
|
-
throw new TypeError(`Farm cron ${JSON.stringify(name)} must define at least one schedule.`);
|
|
272
|
-
}
|
|
273
|
-
return {
|
|
274
|
-
name,
|
|
275
|
-
schedule,
|
|
276
|
-
path,
|
|
277
|
-
description: job.description?.trim() || void 0
|
|
278
|
-
};
|
|
279
|
-
}
|
|
280
|
-
__name(normalizeCronJob, "normalizeCronJob");
|
|
281
|
-
function normalizeCronPath(name, value) {
|
|
282
|
-
if (typeof value !== "string" || !value.trim().startsWith("/")) {
|
|
283
|
-
throw new TypeError(`Farm cron ${JSON.stringify(name)} path must start with "/".`);
|
|
284
|
-
}
|
|
285
|
-
const hasUnstableCharacters = /* @__PURE__ */ __name((candidate) => candidate.includes("\\") || Array.from(candidate).some((character) => {
|
|
286
|
-
const code = character.charCodeAt(0);
|
|
287
|
-
return code <= 31 || code >= 127 && code <= 159;
|
|
288
|
-
}), "hasUnstableCharacters");
|
|
289
|
-
if (hasUnstableCharacters(value)) {
|
|
290
|
-
throw new TypeError(
|
|
291
|
-
`Farm cron ${JSON.stringify(name)} path cannot contain backslashes or control characters.`
|
|
292
|
-
);
|
|
293
|
-
}
|
|
294
|
-
const path = value.trim();
|
|
295
|
-
if (path.startsWith("//") || path.includes("?") || path.includes("#")) {
|
|
296
|
-
throw new TypeError(
|
|
297
|
-
`Farm cron ${JSON.stringify(name)} path must be an application pathname without a host, query, or hash.`
|
|
298
|
-
);
|
|
299
|
-
}
|
|
300
|
-
for (const segment of path.split("/")) {
|
|
301
|
-
let decoded = segment;
|
|
302
|
-
try {
|
|
303
|
-
decoded = decodeURIComponent(segment);
|
|
304
|
-
} catch {
|
|
305
|
-
}
|
|
306
|
-
if (hasUnstableCharacters(decoded)) {
|
|
307
|
-
throw new TypeError(
|
|
308
|
-
`Farm cron ${JSON.stringify(name)} path cannot contain backslashes or control characters.`
|
|
309
|
-
);
|
|
310
|
-
}
|
|
311
|
-
if (decoded.includes("/")) {
|
|
312
|
-
throw new TypeError(
|
|
313
|
-
`Farm cron ${JSON.stringify(name)} path cannot contain percent-encoded path separators.`
|
|
314
|
-
);
|
|
315
|
-
}
|
|
316
|
-
if (decoded === "." || decoded === "..") {
|
|
317
|
-
throw new TypeError(
|
|
318
|
-
`Farm cron ${JSON.stringify(name)} path cannot contain "." or ".." path segments.`
|
|
319
|
-
);
|
|
320
|
-
}
|
|
321
|
-
}
|
|
322
|
-
return path.length > 1 ? path.replace(/\/+$/, "") : path;
|
|
323
|
-
}
|
|
324
|
-
__name(normalizeCronPath, "normalizeCronPath");
|
|
325
|
-
function normalizeCronExpression(name, value) {
|
|
326
|
-
if (typeof value !== "string") {
|
|
327
|
-
throw new TypeError(`Farm cron ${JSON.stringify(name)} schedule must be a string.`);
|
|
328
|
-
}
|
|
329
|
-
const expression = value.trim().replace(/\s+/g, " ");
|
|
330
|
-
const fields = expression.split(" ");
|
|
331
|
-
if (fields.length !== CRON_FIELD_RANGES.length) {
|
|
332
|
-
throw new TypeError(
|
|
333
|
-
`Farm cron ${JSON.stringify(name)} schedule ${JSON.stringify(expression)} must use five fields: minute hour day-of-month month day-of-week.`
|
|
334
|
-
);
|
|
335
|
-
}
|
|
336
|
-
fields.forEach((field, index) => {
|
|
337
|
-
const [minimum, maximum, label] = CRON_FIELD_RANGES[index];
|
|
338
|
-
validateCronField(name, expression, field, minimum, maximum, label);
|
|
339
|
-
});
|
|
340
|
-
if (fields[2] !== "*" && fields[4] !== "*") {
|
|
341
|
-
throw new TypeError(
|
|
342
|
-
`Farm cron ${JSON.stringify(name)} schedule ${JSON.stringify(expression)} cannot constrain both day-of-month and day-of-week.`
|
|
343
|
-
);
|
|
344
|
-
}
|
|
345
|
-
return expression;
|
|
346
|
-
}
|
|
347
|
-
__name(normalizeCronExpression, "normalizeCronExpression");
|
|
348
|
-
function validateCronField(name, expression, field, minimum, maximum, label) {
|
|
349
|
-
for (const segment of field.split(",")) {
|
|
350
|
-
const [range, stepText, ...extra] = segment.split("/");
|
|
351
|
-
if (!range || extra.length > 0 || stepText !== void 0 && !isIntegerInRange(stepText, 1)) {
|
|
352
|
-
throwInvalidCronField(name, expression, label);
|
|
353
|
-
}
|
|
354
|
-
if (range === "*") continue;
|
|
355
|
-
const bounds = range.split("-");
|
|
356
|
-
if (bounds.length > 2 || !bounds.every((value) => isIntegerInRange(value, minimum, maximum))) {
|
|
357
|
-
throwInvalidCronField(name, expression, label);
|
|
358
|
-
}
|
|
359
|
-
if (bounds.length === 2 && Number(bounds[0]) > Number(bounds[1])) {
|
|
360
|
-
throwInvalidCronField(name, expression, label);
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
__name(validateCronField, "validateCronField");
|
|
365
|
-
function isIntegerInRange(value, minimum, maximum = Number.MAX_SAFE_INTEGER) {
|
|
366
|
-
if (!/^\d+$/.test(value)) return false;
|
|
367
|
-
const parsed = Number(value);
|
|
368
|
-
return parsed >= minimum && parsed <= maximum;
|
|
369
|
-
}
|
|
370
|
-
__name(isIntegerInRange, "isIntegerInRange");
|
|
371
|
-
function throwInvalidCronField(name, expression, label) {
|
|
372
|
-
throw new TypeError(
|
|
373
|
-
`Farm cron ${JSON.stringify(name)} schedule ${JSON.stringify(expression)} has an invalid ${label} field.`
|
|
374
|
-
);
|
|
375
|
-
}
|
|
376
|
-
__name(throwInvalidCronField, "throwInvalidCronField");
|
|
377
|
-
function isResolvedCronConfig(value) {
|
|
378
|
-
return !!value && typeof value === "object" && "enabled" in value && typeof value.enabled === "boolean" && "jobs" in value && Array.isArray(value.jobs) && "secretEnv" in value;
|
|
379
|
-
}
|
|
380
|
-
__name(isResolvedCronConfig, "isResolvedCronConfig");
|
|
381
|
-
function createCronScheduledTasks(jobs) {
|
|
382
|
-
const scheduledTasks = {};
|
|
383
|
-
for (const job of jobs) {
|
|
384
|
-
const taskName = getFarmCronTaskName(job.name);
|
|
385
|
-
for (const schedule of job.schedule) {
|
|
386
|
-
scheduledTasks[schedule] = mergeTaskNames(scheduledTasks[schedule], taskName);
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
return scheduledTasks;
|
|
390
|
-
}
|
|
391
|
-
__name(createCronScheduledTasks, "createCronScheduledTasks");
|
|
392
|
-
function mergeTaskNames(current, taskName) {
|
|
393
|
-
if (!current) return taskName;
|
|
394
|
-
const names = Array.isArray(current) ? current : [current];
|
|
395
|
-
return names.includes(taskName) ? names : [...names, taskName];
|
|
396
|
-
}
|
|
397
|
-
__name(mergeTaskNames, "mergeTaskNames");
|
|
398
|
-
function getFarmCronTaskName(name) {
|
|
399
|
-
return `farm:cron:${name}`;
|
|
400
|
-
}
|
|
401
|
-
__name(getFarmCronTaskName, "getFarmCronTaskName");
|
|
402
|
-
function createNitroCronTaskWrapper(job, secretEnv) {
|
|
403
|
-
return `
|
|
404
|
-
import { useNitroApp } from "nitro/app";
|
|
405
|
-
import { defineTask } from "nitro/task";
|
|
406
7
|
|
|
407
|
-
const name = ${JSON.stringify(job.name)};
|
|
408
|
-
const path = ${JSON.stringify(job.path)};
|
|
409
|
-
const secretEnv = ${JSON.stringify(secretEnv)};
|
|
410
8
|
|
|
411
|
-
function readSecret(event) {
|
|
412
|
-
const runtimeEnv = event?.context?.cloudflare?.env || event?.context?.env || {};
|
|
413
|
-
return runtimeEnv[secretEnv] || (typeof process !== "undefined" ? process.env?.[secretEnv] : "") || "";
|
|
414
|
-
}
|
|
415
9
|
|
|
416
|
-
export default defineTask({
|
|
417
|
-
meta: {
|
|
418
|
-
name: ${JSON.stringify(getFarmCronTaskName(job.name))},
|
|
419
|
-
description: ${JSON.stringify(job.description || `Farm cron ${job.name}`)}
|
|
420
|
-
},
|
|
421
|
-
async run(event) {
|
|
422
|
-
const headers = new Headers({
|
|
423
|
-
"x-farm-cron-name": name,
|
|
424
|
-
"x-farm-cron-scheduled-at": String(event?.payload?.scheduledTime || Date.now())
|
|
425
|
-
});
|
|
426
|
-
const secret = readSecret(event);
|
|
427
|
-
if (secret) headers.set("authorization", "Bearer " + secret);
|
|
428
10
|
|
|
429
|
-
const response = await useNitroApp().fetch(path, { method: "GET", headers });
|
|
430
|
-
const contentType = response.headers.get("content-type") || "";
|
|
431
|
-
const body = response.status === 204
|
|
432
|
-
? null
|
|
433
|
-
: contentType.includes("application/json")
|
|
434
|
-
? await response.json().catch(() => null)
|
|
435
|
-
: await response.text();
|
|
436
11
|
|
|
437
|
-
if (!response.ok) {
|
|
438
|
-
const detail = typeof body === "string" ? body : JSON.stringify(body);
|
|
439
|
-
throw new Error(
|
|
440
|
-
"Farm cron " + JSON.stringify(name) + " received " + response.status +
|
|
441
|
-
" from " + path + (detail ? ": " + detail : "")
|
|
442
|
-
);
|
|
443
|
-
}
|
|
444
12
|
|
|
445
|
-
|
|
446
|
-
|
|
447
|
-
|
|
448
|
-
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
}
|
|
469
|
-
claimed.set(fileName.toLowerCase(), name);
|
|
470
|
-
resolved.set(name, fileName);
|
|
471
|
-
}
|
|
472
|
-
return resolved;
|
|
473
|
-
}
|
|
474
|
-
__name(resolveCronWrapperFileNames, "resolveCronWrapperFileNames");
|
|
475
|
-
function cronNameFingerprint(value) {
|
|
476
|
-
let hash = 2166136261;
|
|
477
|
-
for (let index = 0; index < value.length; index += 1) {
|
|
478
|
-
hash ^= value.charCodeAt(index);
|
|
479
|
-
hash = Math.imul(hash, 16777619);
|
|
480
|
-
}
|
|
481
|
-
return (hash >>> 0).toString(16).padStart(8, "0");
|
|
482
|
-
}
|
|
483
|
-
__name(cronNameFingerprint, "cronNameFingerprint");
|
|
484
|
-
function safeFileName(value) {
|
|
485
|
-
return value.replace(/[^a-zA-Z0-9._-]+/g, "-") || "cron";
|
|
486
|
-
}
|
|
487
|
-
__name(safeFileName, "safeFileName");
|
|
488
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
489
|
-
0 && (module.exports = {
|
|
490
|
-
DEFAULT_FARM_CRON_SECRET_ENV,
|
|
491
|
-
FARM_CRON_MANIFEST,
|
|
492
|
-
applyFarmCronVercelCrons,
|
|
493
|
-
createFarmCronCloudflareConfig,
|
|
494
|
-
createFarmCronCloudflareTriggers,
|
|
495
|
-
createFarmCronManifest,
|
|
496
|
-
createFarmCronVercelCrons,
|
|
497
|
-
cronRoute,
|
|
498
|
-
isCronRequestAuthorized,
|
|
499
|
-
mergeScheduledTasks,
|
|
500
|
-
prepareFarmCronForNitro,
|
|
501
|
-
resolveCronConfig
|
|
502
|
-
});
|
|
13
|
+
|
|
14
|
+
var _chunk6EXBPJ24cjs = require('./chunk-6EXBPJ24.cjs');
|
|
15
|
+
require('./chunk-JDNHKPTD.cjs');
|
|
16
|
+
require('./chunk-CMGMGHUZ.cjs');
|
|
17
|
+
require('./chunk-5QIKR7RR.cjs');
|
|
18
|
+
require('./chunk-QNPEUFHQ.cjs');
|
|
19
|
+
require('./chunk-US2QVW3E.cjs');
|
|
20
|
+
require('./chunk-NO3WWW3N.cjs');
|
|
21
|
+
require('./chunk-S3JO3N4H.cjs');
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
exports.DEFAULT_FARM_CRON_SECRET_ENV = _chunk6EXBPJ24cjs.DEFAULT_FARM_CRON_SECRET_ENV; exports.FARM_CRON_MANIFEST = _chunk6EXBPJ24cjs.FARM_CRON_MANIFEST; exports.applyFarmCronVercelCrons = _chunk6EXBPJ24cjs.applyFarmCronVercelCrons; exports.createFarmCronCloudflareConfig = _chunk6EXBPJ24cjs.createFarmCronCloudflareConfig; exports.createFarmCronCloudflareTriggers = _chunk6EXBPJ24cjs.createFarmCronCloudflareTriggers; exports.createFarmCronManifest = _chunk6EXBPJ24cjs.createFarmCronManifest; exports.createFarmCronVercelCrons = _chunk6EXBPJ24cjs.createFarmCronVercelCrons; exports.cronRoute = _chunk6EXBPJ24cjs.cronRoute; exports.isCronRequestAuthorized = _chunk6EXBPJ24cjs.isCronRequestAuthorized; exports.mergeScheduledTasks = _chunk6EXBPJ24cjs.mergeScheduledTasks; exports.prepareFarmCronForNitro = _chunk6EXBPJ24cjs.prepareFarmCronForNitro; exports.resolveCronConfig = _chunk6EXBPJ24cjs.resolveCronConfig;
|
package/dist/cron.mjs
CHANGED
|
@@ -11,9 +11,9 @@ import {
|
|
|
11
11
|
mergeScheduledTasks,
|
|
12
12
|
prepareFarmCronForNitro,
|
|
13
13
|
resolveCronConfig
|
|
14
|
-
} from "./chunk-
|
|
15
|
-
import "./chunk-ONUEYC6N.mjs";
|
|
14
|
+
} from "./chunk-YHOCRI4H.mjs";
|
|
16
15
|
import "./chunk-2UC36WAC.mjs";
|
|
16
|
+
import "./chunk-ONUEYC6N.mjs";
|
|
17
17
|
import "./chunk-KI3MESHB.mjs";
|
|
18
18
|
import "./chunk-QVKYGNVM.mjs";
|
|
19
19
|
import "./chunk-CQ6OSQ3K.mjs";
|