@fluxerjs/core 1.1.6 → 1.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Channel-2WNJ445K.mjs +17 -0
- package/dist/Channel-3TAZVAC5.mjs +21 -0
- package/dist/Channel-4WVFDOCG.mjs +22 -0
- package/dist/Channel-ADRBK5JN.mjs +19 -0
- package/dist/Channel-AMX4IOLY.mjs +20 -0
- package/dist/Channel-BEZOW4VC.mjs +17 -0
- package/dist/Channel-BLJMK4T5.mjs +19 -0
- package/dist/Channel-DPLLHL7Y.mjs +19 -0
- package/dist/Channel-DTJWTA4N.mjs +20 -0
- package/dist/Channel-ELXWZIY4.mjs +20 -0
- package/dist/Channel-EYNPKHH2.mjs +20 -0
- package/dist/Channel-EZAKOCLZ.mjs +19 -0
- package/dist/Channel-EZSBZJTJ.mjs +20 -0
- package/dist/Channel-HBKXUNL5.mjs +22 -0
- package/dist/Channel-HK7VT35N.mjs +22 -0
- package/dist/Channel-HM2UY4DN.mjs +17 -0
- package/dist/Channel-ICWNKXBR.mjs +19 -0
- package/dist/Channel-IESEJJGP.mjs +22 -0
- package/dist/Channel-IGCIDQB3.mjs +19 -0
- package/dist/Channel-IKL3SJXN.mjs +17 -0
- package/dist/Channel-JFQXR7SZ.mjs +22 -0
- package/dist/Channel-KILNV5V3.mjs +17 -0
- package/dist/Channel-KOTARBSF.mjs +17 -0
- package/dist/Channel-LPAK4B5K.mjs +20 -0
- package/dist/Channel-LXEGJ3BH.mjs +20 -0
- package/dist/Channel-MGABB7NZ.mjs +19 -0
- package/dist/Channel-MS2XLT5H.mjs +19 -0
- package/dist/Channel-MXKULRP2.mjs +19 -0
- package/dist/Channel-NBJUUPIA.mjs +22 -0
- package/dist/Channel-NFVAR3VH.mjs +19 -0
- package/dist/Channel-NKQB7NPD.mjs +20 -0
- package/dist/Channel-ON7O3D3M.mjs +17 -0
- package/dist/Channel-OSOB6ELO.mjs +19 -0
- package/dist/Channel-PCUCLDOG.mjs +22 -0
- package/dist/Channel-QEJBBSOB.mjs +20 -0
- package/dist/Channel-RB4X65FA.mjs +19 -0
- package/dist/Channel-SM7NMKEO.mjs +19 -0
- package/dist/Channel-TOAQGSRX.mjs +17 -0
- package/dist/Channel-UHN4IOM5.mjs +19 -0
- package/dist/Channel-UNCURQZU.mjs +19 -0
- package/dist/Channel-VENHOL7S.mjs +17 -0
- package/dist/Channel-VFCLGG5D.mjs +22 -0
- package/dist/Channel-WDHLDQJC.mjs +22 -0
- package/dist/Channel-WJZZSNML.mjs +21 -0
- package/dist/Channel-XUJNTC3R.mjs +21 -0
- package/dist/Channel-YB3LWDHZ.mjs +22 -0
- package/dist/Channel-YVGPVOVB.mjs +17 -0
- package/dist/Channel-ZABU3K5W.mjs +19 -0
- package/dist/Channel-ZNYZSC7R.mjs +20 -0
- package/dist/ClientUser-2OHUFUV5.mjs +9 -0
- package/dist/ClientUser-35IVTH2S.mjs +8 -0
- package/dist/ClientUser-4MC4EFLT.mjs +8 -0
- package/dist/ClientUser-4TYNCHEP.mjs +7 -0
- package/dist/ClientUser-576UGSIO.mjs +8 -0
- package/dist/ClientUser-5DS73MJV.mjs +8 -0
- package/dist/ClientUser-5NZXMF6I.mjs +8 -0
- package/dist/ClientUser-6HBAPU6H.mjs +8 -0
- package/dist/ClientUser-76LLHLHL.mjs +8 -0
- package/dist/ClientUser-7CQO74QQ.mjs +8 -0
- package/dist/ClientUser-A73AHVOW.mjs +8 -0
- package/dist/ClientUser-AJLODDUV.mjs +8 -0
- package/dist/ClientUser-ALGC4FNY.mjs +8 -0
- package/dist/ClientUser-BKDGVNAY.mjs +8 -0
- package/dist/ClientUser-CDU2QEMV.mjs +8 -0
- package/dist/ClientUser-D3ZNDAJU.mjs +8 -0
- package/dist/ClientUser-DJO2FS7P.mjs +8 -0
- package/dist/ClientUser-GBD34QB5.mjs +9 -0
- package/dist/ClientUser-GISPHEM6.mjs +8 -0
- package/dist/ClientUser-ISZ3MTSZ.mjs +8 -0
- package/dist/ClientUser-J6HQVSDJ.mjs +9 -0
- package/dist/ClientUser-JCRVGIJL.mjs +8 -0
- package/dist/ClientUser-JG4EX6F4.mjs +8 -0
- package/dist/ClientUser-K2T5J3YS.mjs +8 -0
- package/dist/ClientUser-KWOQRQPD.mjs +8 -0
- package/dist/ClientUser-LBK6K4YD.mjs +8 -0
- package/dist/ClientUser-LLL6WX35.mjs +8 -0
- package/dist/ClientUser-MOMS7WLQ.mjs +8 -0
- package/dist/ClientUser-N7ZXYAQ3.mjs +8 -0
- package/dist/ClientUser-OGDA7D77.mjs +8 -0
- package/dist/ClientUser-PXAAKR2P.mjs +8 -0
- package/dist/ClientUser-QBJLDW5Y.mjs +8 -0
- package/dist/ClientUser-QQXLZ5WP.mjs +8 -0
- package/dist/ClientUser-RDGNVUVQ.mjs +8 -0
- package/dist/ClientUser-RNDKHQ3Z.mjs +9 -0
- package/dist/ClientUser-RXOB6K6C.mjs +8 -0
- package/dist/ClientUser-TN2LZ6NT.mjs +8 -0
- package/dist/ClientUser-TRA2WERQ.mjs +8 -0
- package/dist/ClientUser-U5TR5GIT.mjs +8 -0
- package/dist/ClientUser-UKG5K744.mjs +8 -0
- package/dist/ClientUser-V43WRWTN.mjs +8 -0
- package/dist/ClientUser-VZ2JS6RD.mjs +8 -0
- package/dist/ClientUser-WFID4IXD.mjs +8 -0
- package/dist/ClientUser-WWXUMO5O.mjs +8 -0
- package/dist/ClientUser-XX2PE3TB.mjs +8 -0
- package/dist/ClientUser-YEZNAK3W.mjs +8 -0
- package/dist/ClientUser-YQXVRO2A.mjs +8 -0
- package/dist/ClientUser-ZDE7A36W.mjs +8 -0
- package/dist/Guild-2LUH7U7B.mjs +10 -0
- package/dist/Guild-2OVJTJYO.mjs +10 -0
- package/dist/Guild-2P77HBQM.mjs +11 -0
- package/dist/Guild-36EGAAEW.mjs +8 -0
- package/dist/Guild-3ETPHHF5.mjs +12 -0
- package/dist/Guild-3PLQFT2I.mjs +12 -0
- package/dist/Guild-5UBZNIGD.mjs +9 -0
- package/dist/Guild-63VQBPKF.mjs +11 -0
- package/dist/Guild-AA7WOQRM.mjs +12 -0
- package/dist/Guild-AJNEG7LH.mjs +10 -0
- package/dist/Guild-ARMAVVJK.mjs +10 -0
- package/dist/Guild-AYHGH54T.mjs +10 -0
- package/dist/Guild-BRYNE2LO.mjs +11 -0
- package/dist/Guild-CA3W6DOD.mjs +8 -0
- package/dist/Guild-EATTLGFJ.mjs +11 -0
- package/dist/Guild-F6JU3UR6.mjs +11 -0
- package/dist/Guild-FE3A7REJ.mjs +9 -0
- package/dist/Guild-FMBCTAV4.mjs +12 -0
- package/dist/Guild-FSGTZATW.mjs +12 -0
- package/dist/Guild-FSIEY6C5.mjs +11 -0
- package/dist/Guild-FTMIT5T5.mjs +10 -0
- package/dist/Guild-GIXJJBFM.mjs +9 -0
- package/dist/Guild-GOQZ7XP4.mjs +8 -0
- package/dist/Guild-H7AUG7DI.mjs +10 -0
- package/dist/Guild-I4O63HEY.mjs +12 -0
- package/dist/Guild-IRBC63IR.mjs +12 -0
- package/dist/Guild-ITSZV3DE.mjs +9 -0
- package/dist/Guild-K5AJM2C7.mjs +12 -0
- package/dist/Guild-KKIQCGCV.mjs +11 -0
- package/dist/Guild-L6OWKAO6.mjs +11 -0
- package/dist/Guild-MDW7KF33.mjs +12 -0
- package/dist/Guild-NAD5F5DP.mjs +12 -0
- package/dist/Guild-NHNQ5TIA.mjs +8 -0
- package/dist/Guild-OKTDQS5K.mjs +12 -0
- package/dist/Guild-PO5D3NEA.mjs +10 -0
- package/dist/Guild-PS2BCXNB.mjs +11 -0
- package/dist/Guild-RPQGTXB7.mjs +12 -0
- package/dist/Guild-RSNXYHFM.mjs +10 -0
- package/dist/Guild-RXGLAN54.mjs +12 -0
- package/dist/Guild-S3AOK72T.mjs +9 -0
- package/dist/Guild-S3YWFZTC.mjs +11 -0
- package/dist/Guild-S436SLOP.mjs +9 -0
- package/dist/Guild-TM6YGJWB.mjs +10 -0
- package/dist/Guild-TZOCAXXV.mjs +9 -0
- package/dist/Guild-WAFXK2EX.mjs +9 -0
- package/dist/Guild-WGZEW2AP.mjs +10 -0
- package/dist/Guild-WNPS7DBT.mjs +11 -0
- package/dist/Guild-WQA4CPDE.mjs +10 -0
- package/dist/Guild-XPOMHZZG.mjs +9 -0
- package/dist/Guild-ZOFF5LFR.mjs +8 -0
- package/dist/GuildBan-M4PA3HAA.mjs +7 -0
- package/dist/GuildEmoji-LP55RVIV.mjs +7 -0
- package/dist/GuildEmoji-OCXBPS6I.mjs +8 -0
- package/dist/GuildMember-3PC5QAU4.mjs +8 -0
- package/dist/GuildMember-43B5E5CH.mjs +9 -0
- package/dist/GuildMember-B7IFPCWC.mjs +9 -0
- package/dist/GuildMember-BJJNCL6W.mjs +8 -0
- package/dist/GuildMember-DW2N6ITI.mjs +7 -0
- package/dist/GuildMember-E72JU6JE.mjs +9 -0
- package/dist/GuildMember-FSGDPKUU.mjs +9 -0
- package/dist/GuildMember-FX2JAWES.mjs +8 -0
- package/dist/GuildMember-GS72FCQD.mjs +9 -0
- package/dist/GuildMember-H7CP2HMW.mjs +9 -0
- package/dist/GuildMember-K5FLBNHV.mjs +8 -0
- package/dist/GuildMember-L35WIMIH.mjs +9 -0
- package/dist/GuildMember-OXTGJ3MF.mjs +9 -0
- package/dist/GuildMember-RGVPVUAG.mjs +9 -0
- package/dist/GuildMember-RZWZ3OCG.mjs +7 -0
- package/dist/GuildMember-UBNHZBCO.mjs +8 -0
- package/dist/GuildMember-UU26WJGN.mjs +8 -0
- package/dist/GuildMember-XF7K2R45.mjs +9 -0
- package/dist/GuildMember-YWXA2FVO.mjs +8 -0
- package/dist/GuildSticker-B7AZADJR.mjs +8 -0
- package/dist/GuildSticker-STHUU6RM.mjs +7 -0
- package/dist/Invite-4WSFNMH4.mjs +7 -0
- package/dist/Message-23Z3RPCZ.mjs +9 -0
- package/dist/Message-2MPW7ZWA.mjs +7 -0
- package/dist/Message-33APPS76.mjs +9 -0
- package/dist/Message-3XJH5D7I.mjs +7 -0
- package/dist/Message-43PACCS7.mjs +8 -0
- package/dist/Message-5RFJTHNU.mjs +7 -0
- package/dist/Message-6IYEYSV6.mjs +7 -0
- package/dist/Message-6RSAGIRP.mjs +8 -0
- package/dist/Message-6YRGUZSW.mjs +9 -0
- package/dist/Message-AKOXO3LZ.mjs +7 -0
- package/dist/Message-C4A23STA.mjs +9 -0
- package/dist/Message-DXBXIQIJ.mjs +9 -0
- package/dist/Message-E3WU3J2Q.mjs +8 -0
- package/dist/Message-EMJ3JUVX.mjs +8 -0
- package/dist/Message-F3K5GNIB.mjs +8 -0
- package/dist/Message-F4SCFNF5.mjs +8 -0
- package/dist/Message-G4KR7O2J.mjs +7 -0
- package/dist/Message-O4CXWR57.mjs +7 -0
- package/dist/Message-OFIVTTAZ.mjs +9 -0
- package/dist/Message-ONWLVMU7.mjs +8 -0
- package/dist/Message-OXTQHFCF.mjs +8 -0
- package/dist/Message-PZUU7ZFR.mjs +9 -0
- package/dist/Message-QSDAA2HG.mjs +9 -0
- package/dist/Message-QXPHQOVC.mjs +8 -0
- package/dist/Message-R7GZYIQQ.mjs +8 -0
- package/dist/Message-SHUOVKB5.mjs +7 -0
- package/dist/Message-U3UPCS7C.mjs +7 -0
- package/dist/Message-W624MHJF.mjs +8 -0
- package/dist/Message-XB5WNMHL.mjs +9 -0
- package/dist/Message-ZCS7IGJX.mjs +8 -0
- package/dist/Message-ZL2PJPQA.mjs +8 -0
- package/dist/MessageReaction-AYSOCOMX.mjs +8 -0
- package/dist/MessageReaction-FSX3HHRZ.mjs +7 -0
- package/dist/MessageReaction-GNM5YJ4V.mjs +8 -0
- package/dist/MessageReaction-ME5KGEG4.mjs +8 -0
- package/dist/MessageReaction-MUBQ6GIN.mjs +8 -0
- package/dist/MessageReaction-NIAHV3EM.mjs +8 -0
- package/dist/MessageReaction-PZ53DNAW.mjs +8 -0
- package/dist/MessageReaction-TQFIS53C.mjs +8 -0
- package/dist/MessageReaction-V4UZ7OXE.mjs +7 -0
- package/dist/MessageReaction-XRPYZDSC.mjs +7 -0
- package/dist/Role-5MWSGL66.mjs +7 -0
- package/dist/Role-DWZ2YDFB.mjs +7 -0
- package/dist/Role-J7ENREP6.mjs +7 -0
- package/dist/Role-N2ZEMRUQ.mjs +7 -0
- package/dist/Role-SVLWIAMN.mjs +7 -0
- package/dist/Webhook-2MQESB7Z.mjs +7 -0
- package/dist/Webhook-2RHBXH7R.mjs +7 -0
- package/dist/Webhook-32VJD4AL.mjs +7 -0
- package/dist/Webhook-6BCEHBZ6.mjs +8 -0
- package/dist/Webhook-A5KZ4S4N.mjs +10 -0
- package/dist/Webhook-AG6QFM2I.mjs +7 -0
- package/dist/Webhook-EARQN5EG.mjs +10 -0
- package/dist/Webhook-GB77DXAF.mjs +10 -0
- package/dist/Webhook-H4IMADRQ.mjs +10 -0
- package/dist/Webhook-H7VKDOJX.mjs +7 -0
- package/dist/Webhook-IHLGW7NL.mjs +8 -0
- package/dist/Webhook-L2D43K5N.mjs +7 -0
- package/dist/Webhook-LEYRYH23.mjs +7 -0
- package/dist/Webhook-NPIXOCEH.mjs +10 -0
- package/dist/Webhook-NUQCJAWZ.mjs +7 -0
- package/dist/Webhook-OXXVFNNU.mjs +9 -0
- package/dist/Webhook-RWDDYW2Q.mjs +10 -0
- package/dist/Webhook-SNLT45PN.mjs +7 -0
- package/dist/Webhook-TGAZZRQQ.mjs +7 -0
- package/dist/Webhook-WIF6OGPA.mjs +10 -0
- package/dist/Webhook-YL3NNZDI.mjs +8 -0
- package/dist/Webhook-ZL7A4766.mjs +10 -0
- package/dist/chunk-226TVUXE.mjs +136 -0
- package/dist/chunk-23KVLHIZ.mjs +147 -0
- package/dist/chunk-24E6OQID.mjs +193 -0
- package/dist/chunk-25Q2GMSK.mjs +137 -0
- package/dist/chunk-26GCIGHL.mjs +52 -0
- package/dist/chunk-2CIZJCEO.mjs +132 -0
- package/dist/chunk-2FIZRRSO.mjs +88 -0
- package/dist/chunk-2GXOBRSF.mjs +184 -0
- package/dist/chunk-2HH5NZT3.mjs +137 -0
- package/dist/chunk-2QU3TS4S.mjs +496 -0
- package/dist/chunk-367NAOYQ.mjs +127 -0
- package/dist/chunk-3BJ4OOCQ.mjs +86 -0
- package/dist/chunk-3CNUPFDI.mjs +59 -0
- package/dist/chunk-3KOM5WYW.mjs +502 -0
- package/dist/chunk-3UJYRWDI.mjs +132 -0
- package/dist/chunk-4DBGMFOQ.mjs +14 -0
- package/dist/chunk-4F765HVV.mjs +137 -0
- package/dist/chunk-4OQ4XACY.mjs +190 -0
- package/dist/chunk-4PLHVYRY.mjs +579 -0
- package/dist/chunk-4QKSUNTV.mjs +263 -0
- package/dist/chunk-4S42USSG.mjs +137 -0
- package/dist/chunk-4SWR3ZEZ.mjs +579 -0
- package/dist/chunk-4XJIM6SC.mjs +315 -0
- package/dist/chunk-52L544OS.mjs +259 -0
- package/dist/chunk-53Y37KRG.mjs +111 -0
- package/dist/chunk-5APVDWQU.mjs +184 -0
- package/dist/chunk-5HQRX3KJ.mjs +70 -0
- package/dist/chunk-5I54OXBG.mjs +111 -0
- package/dist/chunk-5MPQG6OV.mjs +120 -0
- package/dist/chunk-5RCTNYPY.mjs +151 -0
- package/dist/chunk-5VIV7EPG.mjs +180 -0
- package/dist/chunk-62S4AB2S.mjs +54 -0
- package/dist/chunk-6C3LYAUX.mjs +496 -0
- package/dist/chunk-6CEFV56Z.mjs +142 -0
- package/dist/chunk-6CEMF2LO.mjs +14 -0
- package/dist/chunk-6EBNOON4.mjs +86 -0
- package/dist/chunk-6GF5H3JH.mjs +137 -0
- package/dist/chunk-6IGR45JC.mjs +137 -0
- package/dist/chunk-6LREQZXU.mjs +259 -0
- package/dist/chunk-6S3BDHBI.mjs +28 -0
- package/dist/chunk-6VWXGTX2.mjs +585 -0
- package/dist/chunk-72OY7B3D.mjs +72 -0
- package/dist/chunk-737R7BFN.mjs +112 -0
- package/dist/chunk-7EPDZMZS.mjs +264 -0
- package/dist/chunk-7FYM4D2E.mjs +50 -0
- package/dist/chunk-7GZN6JXT.mjs +50 -0
- package/dist/chunk-7H3TKJUT.mjs +53 -0
- package/dist/chunk-7K35BCCD.mjs +263 -0
- package/dist/chunk-7SIS5CUA.mjs +14 -0
- package/dist/chunk-ABGLEIZG.mjs +191 -0
- package/dist/chunk-AC7PFILS.mjs +107 -0
- package/dist/chunk-AI5E6LS5.mjs +361 -0
- package/dist/chunk-AK6Q62VE.mjs +109 -0
- package/dist/chunk-AKJZBSCE.mjs +155 -0
- package/dist/chunk-BAZBIWMG.mjs +209 -0
- package/dist/chunk-BF7OCTE6.mjs +142 -0
- package/dist/chunk-BFSGXVZ7.mjs +148 -0
- package/dist/chunk-BGJSL6JI.mjs +14 -0
- package/dist/chunk-BI2MRKB7.mjs +150 -0
- package/dist/chunk-BKPVGBOT.mjs +8 -0
- package/dist/chunk-BMAFJS7T.mjs +575 -0
- package/dist/chunk-BRIU4HGS.mjs +579 -0
- package/dist/chunk-BUEXP5SZ.mjs +70 -0
- package/dist/chunk-BUIHWKTK.mjs +132 -0
- package/dist/chunk-BYTAODAO.mjs +70 -0
- package/dist/chunk-CEABHTAF.mjs +43 -0
- package/dist/chunk-CJLJBBFO.mjs +54 -0
- package/dist/chunk-CJVQNARM.mjs +145 -0
- package/dist/chunk-CNCPVNXS.mjs +160 -0
- package/dist/chunk-CNXK6SYW.mjs +220 -0
- package/dist/chunk-CQ5ZVTLX.mjs +71 -0
- package/dist/chunk-CQ7MDBHD.mjs +199 -0
- package/dist/chunk-CREI4MOS.mjs +406 -0
- package/dist/chunk-DJBCSVZX.mjs +102 -0
- package/dist/chunk-DJQXAQLR.mjs +496 -0
- package/dist/chunk-DLROMCIJ.mjs +50 -0
- package/dist/chunk-DLVBAJTE.mjs +52 -0
- package/dist/chunk-DNDCNIN2.mjs +263 -0
- package/dist/chunk-DO7MLFT6.mjs +579 -0
- package/dist/chunk-DPZHAYCK.mjs +71 -0
- package/dist/chunk-DQ4TNBPG.mjs +63 -0
- package/dist/chunk-DSPSRPHF.mjs +200 -0
- package/dist/chunk-DUQAD7F6.mjs +173 -0
- package/dist/chunk-E27LKSSS.mjs +142 -0
- package/dist/chunk-E6SU3TR5.mjs +64 -0
- package/dist/chunk-E75ZVY3I.mjs +14 -0
- package/dist/chunk-EC4ES5VH.mjs +171 -0
- package/dist/chunk-EF32ILJL.mjs +102 -0
- package/dist/chunk-EI2LRVWJ.mjs +207 -0
- package/dist/chunk-F2EEQP5O.mjs +86 -0
- package/dist/chunk-F3JU2ZCE.mjs +575 -0
- package/dist/chunk-FGFWZMUQ.mjs +64 -0
- package/dist/chunk-FH6ICLNP.mjs +142 -0
- package/dist/chunk-FHFXUKFP.mjs +147 -0
- package/dist/chunk-FJS5FBXO.mjs +233 -0
- package/dist/chunk-FK5X6HFL.mjs +111 -0
- package/dist/chunk-FNFID6QB.mjs +45 -0
- package/dist/chunk-FRVZ7D6D.mjs +293 -0
- package/dist/chunk-FSXTONUR.mjs +147 -0
- package/dist/chunk-G2YVDCRB.mjs +137 -0
- package/dist/chunk-G4L7WAJS.mjs +64 -0
- package/dist/chunk-G6F6VL4O.mjs +54 -0
- package/dist/chunk-GCIJYVRC.mjs +86 -0
- package/dist/chunk-GEPISSKR.mjs +263 -0
- package/dist/chunk-GFUJVQ7L.mjs +64 -0
- package/dist/chunk-GIIJQKAV.mjs +164 -0
- package/dist/chunk-GUNWHOQO.mjs +42 -0
- package/dist/chunk-GWSLXZES.mjs +263 -0
- package/dist/chunk-H5KYMLLB.mjs +14 -0
- package/dist/chunk-HAUQAFOF.mjs +97 -0
- package/dist/chunk-HBF5QEDH.mjs +42 -0
- package/dist/chunk-I2MHQEEZ.mjs +575 -0
- package/dist/chunk-IE3V5VLN.mjs +64 -0
- package/dist/chunk-IHXSHE2Z.mjs +56 -0
- package/dist/chunk-IPHFDI2L.mjs +68 -0
- package/dist/chunk-J3EIGOXQ.mjs +72 -0
- package/dist/chunk-JHNKZIHY.mjs +137 -0
- package/dist/chunk-JJHZBWZM.mjs +118 -0
- package/dist/chunk-JOUNLDB6.mjs +225 -0
- package/dist/chunk-JS55BGBM.mjs +157 -0
- package/dist/chunk-JTL3CVFU.mjs +114 -0
- package/dist/chunk-JVEOQFUX.mjs +52 -0
- package/dist/chunk-JW4BRX5E.mjs +140 -0
- package/dist/chunk-K2ZJWUV6.mjs +86 -0
- package/dist/chunk-K6NLD6SB.mjs +64 -0
- package/dist/chunk-KALJBR6Z.mjs +142 -0
- package/dist/chunk-KBXXX7L4.mjs +209 -0
- package/dist/chunk-KHE3G7SG.mjs +184 -0
- package/dist/chunk-KOTF4TTZ.mjs +403 -0
- package/dist/chunk-KQNLUUBZ.mjs +137 -0
- package/dist/chunk-KQXR3GN2.mjs +140 -0
- package/dist/chunk-KR26CBFE.mjs +58 -0
- package/dist/chunk-KWA5TKXS.mjs +574 -0
- package/dist/chunk-KXI2IOJM.mjs +97 -0
- package/dist/chunk-KXJLNURI.mjs +153 -0
- package/dist/chunk-KXY2PTDQ.mjs +263 -0
- package/dist/chunk-L25ON7WB.mjs +52 -0
- package/dist/chunk-LBBIQOSH.mjs +53 -0
- package/dist/chunk-LD7ATCWW.mjs +97 -0
- package/dist/chunk-LDR7MZLX.mjs +227 -0
- package/dist/chunk-LRMB4VBU.mjs +112 -0
- package/dist/chunk-LTO3TVUW.mjs +71 -0
- package/dist/chunk-LU2SNC5G.mjs +392 -0
- package/dist/chunk-LVMFPATK.mjs +54 -0
- package/dist/chunk-MILMGDQ2.mjs +15 -0
- package/dist/chunk-MKEHOFA2.mjs +43 -0
- package/dist/chunk-MSMABD52.mjs +72 -0
- package/dist/chunk-MTGPR7WY.mjs +142 -0
- package/dist/chunk-MTMKXMB3.mjs +496 -0
- package/dist/chunk-MWRADLNP.mjs +86 -0
- package/dist/chunk-N65TF5SP.mjs +184 -0
- package/dist/chunk-NCBAWY7A.mjs +139 -0
- package/dist/chunk-ND223BOF.mjs +256 -0
- package/dist/chunk-NGJKJ4R2.mjs +184 -0
- package/dist/chunk-NISGA2YZ.mjs +55 -0
- package/dist/chunk-NM6PHRGO.mjs +263 -0
- package/dist/chunk-NMMHN5LB.mjs +579 -0
- package/dist/chunk-NNKU4OZY.mjs +147 -0
- package/dist/chunk-NNZUZLG3.mjs +416 -0
- package/dist/chunk-NOLYW3V4.mjs +140 -0
- package/dist/chunk-NYEWIYVQ.mjs +86 -0
- package/dist/chunk-NZJJ7FRK.mjs +339 -0
- package/dist/chunk-O77KTDMH.mjs +44 -0
- package/dist/chunk-OALSL7C2.mjs +212 -0
- package/dist/chunk-OGJSTE4A.mjs +86 -0
- package/dist/chunk-OHIHIQAS.mjs +102 -0
- package/dist/chunk-OJJADMUB.mjs +71 -0
- package/dist/chunk-OMFDQURC.mjs +84 -0
- package/dist/chunk-ORRPH43K.mjs +127 -0
- package/dist/chunk-OXO3HVCT.mjs +124 -0
- package/dist/chunk-P4IRDGB4.mjs +43 -0
- package/dist/chunk-PD42OYFT.mjs +150 -0
- package/dist/chunk-PJ62NB7Z.mjs +319 -0
- package/dist/chunk-PL26CDZN.mjs +97 -0
- package/dist/chunk-PM2IUGNR.mjs +29 -0
- package/dist/chunk-PO5JZQVN.mjs +111 -0
- package/dist/chunk-PQR6WIIY.mjs +348 -0
- package/dist/chunk-PS6PZL5W.mjs +86 -0
- package/dist/chunk-PTBV5DCB.mjs +97 -0
- package/dist/chunk-PXZCOEZ6.mjs +184 -0
- package/dist/chunk-PYYXC7US.mjs +76 -0
- package/dist/chunk-Q4W4ODBP.mjs +319 -0
- package/dist/chunk-QAJ4C5RT.mjs +263 -0
- package/dist/chunk-QDCFQF6J.mjs +36 -0
- package/dist/chunk-QDNFJVVE.mjs +70 -0
- package/dist/chunk-QG7OB5MD.mjs +86 -0
- package/dist/chunk-QM7TE5C3.mjs +97 -0
- package/dist/chunk-QRQG2BI2.mjs +67 -0
- package/dist/chunk-QXJNV5EJ.mjs +110 -0
- package/dist/chunk-QYAZXDXI.mjs +142 -0
- package/dist/chunk-RCP27MRC.mjs +33 -0
- package/dist/chunk-RGLEJWLU.mjs +173 -0
- package/dist/chunk-RIXU6NZ2.mjs +122 -0
- package/dist/chunk-RNDHAIPS.mjs +64 -0
- package/dist/chunk-RTSLRXJC.mjs +122 -0
- package/dist/chunk-RWFKZ3DF.mjs +413 -0
- package/dist/chunk-RWZ3ORIM.mjs +136 -0
- package/dist/chunk-RXHJYGSJ.mjs +53 -0
- package/dist/chunk-S25KNTHZ.mjs +137 -0
- package/dist/chunk-SCOVKXZ7.mjs +223 -0
- package/dist/chunk-SGIJ36LI.mjs +259 -0
- package/dist/chunk-SHYMRCLT.mjs +221 -0
- package/dist/chunk-SQVCCSNN.mjs +41 -0
- package/dist/chunk-SU26BEIK.mjs +86 -0
- package/dist/chunk-SW6KNICI.mjs +52 -0
- package/dist/chunk-SY6DVJKB.mjs +184 -0
- package/dist/chunk-T23OBCRC.mjs +295 -0
- package/dist/chunk-T2NSVWBH.mjs +77 -0
- package/dist/chunk-T3PPEX64.mjs +164 -0
- package/dist/chunk-TDQUAKUL.mjs +64 -0
- package/dist/chunk-TE5IC7IP.mjs +36 -0
- package/dist/chunk-TKASBGF7.mjs +62 -0
- package/dist/chunk-TMDZALIN.mjs +110 -0
- package/dist/chunk-TU4VVM34.mjs +23 -0
- package/dist/chunk-U2WETRQJ.mjs +86 -0
- package/dist/chunk-U3RZV7XO.mjs +58 -0
- package/dist/chunk-UU6LVKA3.mjs +112 -0
- package/dist/chunk-UXODHQZH.mjs +41 -0
- package/dist/chunk-V37YOE4P.mjs +184 -0
- package/dist/chunk-V6QVJWJR.mjs +86 -0
- package/dist/chunk-V6T5VMWD.mjs +26 -0
- package/dist/chunk-V72EJZDX.mjs +137 -0
- package/dist/chunk-V7LPVPGH.mjs +305 -0
- package/dist/chunk-VESIRBN4.mjs +263 -0
- package/dist/chunk-VGKL2ALO.mjs +184 -0
- package/dist/chunk-VPZEDAAB.mjs +184 -0
- package/dist/chunk-VQHHSD7C.mjs +97 -0
- package/dist/chunk-VZPN7FNH.mjs +308 -0
- package/dist/chunk-WB5BPM5Q.mjs +55 -0
- package/dist/chunk-WFONGZGK.mjs +42 -0
- package/dist/chunk-WKZ2ZIPO.mjs +112 -0
- package/dist/chunk-WVRHFGGB.mjs +97 -0
- package/dist/chunk-WYSHH4LR.mjs +141 -0
- package/dist/chunk-WZVY7DA6.mjs +44 -0
- package/dist/chunk-X3GPLJGD.mjs +152 -0
- package/dist/chunk-X77DFNE3.mjs +136 -0
- package/dist/chunk-XRLFLKHG.mjs +14 -0
- package/dist/chunk-XTDZQD4A.mjs +110 -0
- package/dist/chunk-XTFNK6PX.mjs +220 -0
- package/dist/chunk-XXCBJJZE.mjs +88 -0
- package/dist/chunk-Y3PX242G.mjs +225 -0
- package/dist/chunk-Y57QWXS4.mjs +122 -0
- package/dist/chunk-YKP7JHV2.mjs +102 -0
- package/dist/chunk-YRCBBEPB.mjs +142 -0
- package/dist/chunk-YSKZR66G.mjs +102 -0
- package/dist/chunk-YUDOACNS.mjs +184 -0
- package/dist/chunk-YVNZMBZ6.mjs +501 -0
- package/dist/chunk-YWE5AILJ.mjs +137 -0
- package/dist/chunk-YYER5QOG.mjs +44 -0
- package/dist/chunk-Z6LVSACJ.mjs +86 -0
- package/dist/chunk-ZFLKX6WD.mjs +97 -0
- package/dist/chunk-ZGMM6IPQ.mjs +79 -0
- package/dist/chunk-ZHNFS3MK.mjs +56 -0
- package/dist/chunk-ZHRQQZ4X.mjs +102 -0
- package/dist/chunk-ZJCAKCMN.mjs +89 -0
- package/dist/chunk-ZKKBIQBA.mjs +413 -0
- package/dist/chunk-ZMIMAMO2.mjs +14 -0
- package/dist/chunk-ZR53XY37.mjs +499 -0
- package/dist/chunk-ZR6MFTT7.mjs +142 -0
- package/dist/chunk-ZVFZIZM2.mjs +150 -0
- package/dist/index.d.mts +22 -4
- package/dist/index.d.ts +22 -4
- package/dist/index.js +75 -21
- package/dist/index.mjs +93 -41
- package/package.json +7 -7
|
@@ -0,0 +1,295 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Events
|
|
3
|
+
} from "./chunk-AH7KYH2Z.mjs";
|
|
4
|
+
import {
|
|
5
|
+
buildSendBody
|
|
6
|
+
} from "./chunk-PM2IUGNR.mjs";
|
|
7
|
+
import {
|
|
8
|
+
Base
|
|
9
|
+
} from "./chunk-XNS4O6QJ.mjs";
|
|
10
|
+
|
|
11
|
+
// src/structures/Message.ts
|
|
12
|
+
import { Collection as Collection2 } from "@fluxerjs/collection";
|
|
13
|
+
import { MessageType, Routes } from "@fluxerjs/types";
|
|
14
|
+
import { EmbedBuilder } from "@fluxerjs/builders";
|
|
15
|
+
|
|
16
|
+
// src/util/ReactionCollector.ts
|
|
17
|
+
import { EventEmitter } from "events";
|
|
18
|
+
import { Collection } from "@fluxerjs/collection";
|
|
19
|
+
var ReactionCollector = class extends EventEmitter {
|
|
20
|
+
client;
|
|
21
|
+
messageId;
|
|
22
|
+
channelId;
|
|
23
|
+
options;
|
|
24
|
+
collected = new Collection();
|
|
25
|
+
_timeout = null;
|
|
26
|
+
_ended = false;
|
|
27
|
+
_listener;
|
|
28
|
+
constructor(client, messageId, channelId, options = {}) {
|
|
29
|
+
super();
|
|
30
|
+
this.client = client;
|
|
31
|
+
this.messageId = messageId;
|
|
32
|
+
this.channelId = channelId;
|
|
33
|
+
this.options = {
|
|
34
|
+
filter: options.filter ?? (() => true),
|
|
35
|
+
time: options.time ?? 0,
|
|
36
|
+
max: options.max ?? 0
|
|
37
|
+
};
|
|
38
|
+
this._listener = (reaction, user, _msgId, chId, _emoji, userId) => {
|
|
39
|
+
if (this._ended || reaction.messageId !== this.messageId || chId !== this.channelId)
|
|
40
|
+
return;
|
|
41
|
+
if (!this.options.filter(reaction, user)) return;
|
|
42
|
+
const key = `${userId}:${reaction.emoji.id ?? reaction.emoji.name}`;
|
|
43
|
+
this.collected.set(key, { reaction, user });
|
|
44
|
+
this.emit("collect", reaction, user);
|
|
45
|
+
if (this.options.max > 0 && this.collected.size >= this.options.max) {
|
|
46
|
+
this.stop("limit");
|
|
47
|
+
}
|
|
48
|
+
};
|
|
49
|
+
this.client.on(Events.MessageReactionAdd, this._listener);
|
|
50
|
+
if (this.options.time > 0) {
|
|
51
|
+
this._timeout = setTimeout(() => this.stop("time"), this.options.time);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
stop(reason = "user") {
|
|
55
|
+
if (this._ended) return;
|
|
56
|
+
this._ended = true;
|
|
57
|
+
this.client.off(Events.MessageReactionAdd, this._listener);
|
|
58
|
+
if (this._timeout) {
|
|
59
|
+
clearTimeout(this._timeout);
|
|
60
|
+
this._timeout = null;
|
|
61
|
+
}
|
|
62
|
+
this.emit("end", this.collected, reason);
|
|
63
|
+
}
|
|
64
|
+
on(event, listener) {
|
|
65
|
+
return super.on(event, listener);
|
|
66
|
+
}
|
|
67
|
+
emit(event, ...args) {
|
|
68
|
+
return super.emit(event, ...args);
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
// src/structures/Message.ts
|
|
73
|
+
var Message = class _Message extends Base {
|
|
74
|
+
client;
|
|
75
|
+
id;
|
|
76
|
+
channelId;
|
|
77
|
+
guildId;
|
|
78
|
+
author;
|
|
79
|
+
content;
|
|
80
|
+
createdAt;
|
|
81
|
+
editedAt;
|
|
82
|
+
pinned;
|
|
83
|
+
attachments;
|
|
84
|
+
type;
|
|
85
|
+
flags;
|
|
86
|
+
mentionEveryone;
|
|
87
|
+
tts;
|
|
88
|
+
embeds;
|
|
89
|
+
stickers;
|
|
90
|
+
reactions;
|
|
91
|
+
messageReference;
|
|
92
|
+
messageSnapshots;
|
|
93
|
+
call;
|
|
94
|
+
referencedMessage;
|
|
95
|
+
/** Webhook ID if this message was sent via webhook. Null otherwise. */
|
|
96
|
+
webhookId;
|
|
97
|
+
/** Users mentioned in this message. */
|
|
98
|
+
mentions;
|
|
99
|
+
/** Role IDs mentioned in this message. */
|
|
100
|
+
mentionRoles;
|
|
101
|
+
/** Client-side nonce for acknowledgment. Null if not provided. */
|
|
102
|
+
nonce;
|
|
103
|
+
/** Channel where this message was sent. Resolved from cache; null if not cached (e.g. DM channel not in cache). */
|
|
104
|
+
get channel() {
|
|
105
|
+
return this.client.channels.get(this.channelId) ?? null;
|
|
106
|
+
}
|
|
107
|
+
/** Guild where this message was sent. Resolved from cache; null for DMs or if not cached. */
|
|
108
|
+
get guild() {
|
|
109
|
+
return this.guildId ? this.client.guilds.get(this.guildId) ?? null : null;
|
|
110
|
+
}
|
|
111
|
+
/** @param data - API message from POST/PATCH /channels/{id}/messages or gateway MESSAGE_CREATE */
|
|
112
|
+
constructor(client, data) {
|
|
113
|
+
super();
|
|
114
|
+
this.client = client;
|
|
115
|
+
this.id = data.id;
|
|
116
|
+
this.channelId = data.channel_id;
|
|
117
|
+
this.guildId = data.guild_id ?? null;
|
|
118
|
+
this.author = client.getOrCreateUser(data.author);
|
|
119
|
+
this.content = data.content;
|
|
120
|
+
this.createdAt = new Date(data.timestamp);
|
|
121
|
+
this.editedAt = data.edited_timestamp ? new Date(data.edited_timestamp) : null;
|
|
122
|
+
this.pinned = data.pinned;
|
|
123
|
+
this.attachments = new Collection2();
|
|
124
|
+
for (const a of data.attachments ?? []) this.attachments.set(a.id, a);
|
|
125
|
+
this.type = data.type ?? MessageType.Default;
|
|
126
|
+
this.flags = data.flags ?? 0;
|
|
127
|
+
this.mentionEveryone = data.mention_everyone ?? false;
|
|
128
|
+
this.tts = data.tts ?? false;
|
|
129
|
+
this.embeds = data.embeds ?? [];
|
|
130
|
+
this.stickers = data.stickers ?? [];
|
|
131
|
+
this.reactions = data.reactions ?? [];
|
|
132
|
+
this.messageReference = data.message_reference ?? null;
|
|
133
|
+
this.messageSnapshots = data.message_snapshots ?? [];
|
|
134
|
+
this.call = data.call ?? null;
|
|
135
|
+
this.referencedMessage = data.referenced_message ? new _Message(client, data.referenced_message) : null;
|
|
136
|
+
this.webhookId = data.webhook_id ?? null;
|
|
137
|
+
this.mentions = (data.mentions ?? []).map((u) => client.getOrCreateUser(u));
|
|
138
|
+
this.mentionRoles = data.mention_roles ?? [];
|
|
139
|
+
this.nonce = data.nonce ?? null;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Send a message to this channel without replying. Use when you want a standalone message.
|
|
143
|
+
* @param options - Text content or object with content, embeds, and/or files
|
|
144
|
+
* @example
|
|
145
|
+
* await message.send('Pong!');
|
|
146
|
+
* await message.send({ embeds: [embed.toJSON()] });
|
|
147
|
+
* await message.send({ content: 'File', files: [{ name: 'data.txt', data }] });
|
|
148
|
+
*/
|
|
149
|
+
async send(options) {
|
|
150
|
+
const opts = typeof options === "string" ? { content: options } : options;
|
|
151
|
+
const body = buildSendBody(options);
|
|
152
|
+
const postOptions = opts.files?.length ? { body, files: opts.files } : { body };
|
|
153
|
+
const data = await this.client.rest.post(
|
|
154
|
+
Routes.channelMessages(this.channelId),
|
|
155
|
+
postOptions
|
|
156
|
+
);
|
|
157
|
+
return new _Message(this.client, data);
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* Send a message to a specific channel. Use for logging, forwarding, or sending to another channel in the guild.
|
|
161
|
+
* @param channelId - Snowflake of the target channel (e.g. log channel ID)
|
|
162
|
+
* @param options - Text content or object with content and/or embeds
|
|
163
|
+
* @example
|
|
164
|
+
* await message.sendTo(logChannelId, 'User ' + message.author.username + ' said: ' + message.content);
|
|
165
|
+
* await message.sendTo(announceChannelId, { embeds: [embed.toJSON()] });
|
|
166
|
+
*/
|
|
167
|
+
async sendTo(channelId, options) {
|
|
168
|
+
return this.client.channels.send(channelId, options);
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Reply to this message.
|
|
172
|
+
* @param options - Text content or object with content, embeds, and/or files
|
|
173
|
+
*/
|
|
174
|
+
async reply(options) {
|
|
175
|
+
const opts = typeof options === "string" ? { content: options } : options;
|
|
176
|
+
const base = buildSendBody(options);
|
|
177
|
+
const body = {
|
|
178
|
+
...base,
|
|
179
|
+
message_reference: {
|
|
180
|
+
channel_id: this.channelId,
|
|
181
|
+
message_id: this.id,
|
|
182
|
+
guild_id: this.guildId ?? void 0
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
const postOptions = opts.files?.length ? { body, files: opts.files } : { body };
|
|
186
|
+
const data = await this.client.rest.post(
|
|
187
|
+
Routes.channelMessages(this.channelId),
|
|
188
|
+
postOptions
|
|
189
|
+
);
|
|
190
|
+
return new _Message(this.client, data);
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* Edit this message. Only the author (or admins) can edit.
|
|
194
|
+
* @param options - New content and/or embeds
|
|
195
|
+
*/
|
|
196
|
+
async edit(options) {
|
|
197
|
+
const body = {};
|
|
198
|
+
if (options.content !== void 0) body.content = options.content;
|
|
199
|
+
if (options.embeds?.length) {
|
|
200
|
+
body.embeds = options.embeds.map((e) => e instanceof EmbedBuilder ? e.toJSON() : e);
|
|
201
|
+
}
|
|
202
|
+
const data = await this.client.rest.patch(Routes.channelMessage(this.channelId, this.id), {
|
|
203
|
+
body
|
|
204
|
+
});
|
|
205
|
+
return new _Message(this.client, data);
|
|
206
|
+
}
|
|
207
|
+
/**
|
|
208
|
+
* Create a reaction collector for this message.
|
|
209
|
+
* Collects reactions matching the filter until time expires or max is reached.
|
|
210
|
+
* @param options - Filter, time (ms), and max count
|
|
211
|
+
* @example
|
|
212
|
+
* const collector = message.createReactionCollector({ filter: (r, u) => u.id === userId, time: 10000 });
|
|
213
|
+
* collector.on('collect', (reaction, user) => console.log(user.username, 'reacted with', reaction.emoji.name));
|
|
214
|
+
* collector.on('end', (collected, reason) => { ... });
|
|
215
|
+
*/
|
|
216
|
+
createReactionCollector(options) {
|
|
217
|
+
return new ReactionCollector(this.client, this.id, this.channelId, options);
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Re-fetch this message from the API to get the latest content, embeds, reactions, etc.
|
|
221
|
+
* Use when you have a stale Message (e.g. from an old event or cache) and need fresh data.
|
|
222
|
+
* @returns The updated message
|
|
223
|
+
* @throws FluxerError with MESSAGE_NOT_FOUND if the message was deleted or does not exist
|
|
224
|
+
* @example
|
|
225
|
+
* const updated = await message.fetch();
|
|
226
|
+
* console.log('Latest content:', updated.content);
|
|
227
|
+
*/
|
|
228
|
+
async fetch() {
|
|
229
|
+
return this.client.channels.fetchMessage(this.channelId, this.id);
|
|
230
|
+
}
|
|
231
|
+
/** Delete this message. */
|
|
232
|
+
async delete() {
|
|
233
|
+
await this.client.rest.delete(Routes.channelMessage(this.channelId, this.id));
|
|
234
|
+
}
|
|
235
|
+
/** Pin this message to the channel. Requires Manage Messages permission. */
|
|
236
|
+
async pin() {
|
|
237
|
+
await this.client.rest.put(Routes.channelPinMessage(this.channelId, this.id));
|
|
238
|
+
this.pinned = true;
|
|
239
|
+
}
|
|
240
|
+
/** Unpin this message from the channel. Requires Manage Messages permission. */
|
|
241
|
+
async unpin() {
|
|
242
|
+
await this.client.rest.delete(Routes.channelPinMessage(this.channelId, this.id));
|
|
243
|
+
this.pinned = false;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Format emoji for reaction API: unicode string or "name:id" for custom.
|
|
247
|
+
* For string resolution (e.g. :name:), use client.resolveEmoji; Message methods resolve automatically when guildId is available.
|
|
248
|
+
*/
|
|
249
|
+
static formatEmoji(emoji) {
|
|
250
|
+
if (typeof emoji === "string") return emoji;
|
|
251
|
+
return `${emoji.name}:${emoji.id}`;
|
|
252
|
+
}
|
|
253
|
+
resolveEmojiForReaction(emoji) {
|
|
254
|
+
return this.client.resolveEmoji(emoji, this.guildId);
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* Add a reaction to this message (as the bot).
|
|
258
|
+
* @param emoji - Unicode emoji, custom `{ name, id }`, `:name:`, `name:id`, or `<:name:id>`
|
|
259
|
+
*/
|
|
260
|
+
async react(emoji) {
|
|
261
|
+
const emojiStr = await this.resolveEmojiForReaction(emoji);
|
|
262
|
+
const route = `${Routes.channelMessageReaction(this.channelId, this.id, emojiStr)}/@me`;
|
|
263
|
+
await this.client.rest.put(route);
|
|
264
|
+
}
|
|
265
|
+
/**
|
|
266
|
+
* Remove the bot's reaction, or a specific user's reaction if userId is provided.
|
|
267
|
+
* @param emoji - Unicode emoji, custom `{ name, id }`, `:name:`, `name:id`, or `<:name:id>`
|
|
268
|
+
* @param userId - If provided, removes that user's reaction (requires moderator permissions)
|
|
269
|
+
*/
|
|
270
|
+
async removeReaction(emoji, userId) {
|
|
271
|
+
const emojiStr = await this.resolveEmojiForReaction(emoji);
|
|
272
|
+
const route = `${Routes.channelMessageReaction(this.channelId, this.id, emojiStr)}/${userId ?? "@me"}`;
|
|
273
|
+
await this.client.rest.delete(route);
|
|
274
|
+
}
|
|
275
|
+
/**
|
|
276
|
+
* Remove all reactions from this message.
|
|
277
|
+
* Requires moderator permissions.
|
|
278
|
+
*/
|
|
279
|
+
async removeAllReactions() {
|
|
280
|
+
await this.client.rest.delete(Routes.channelMessageReactions(this.channelId, this.id));
|
|
281
|
+
}
|
|
282
|
+
/**
|
|
283
|
+
* Remove all reactions of a specific emoji from this message.
|
|
284
|
+
* @param emoji - Unicode emoji, custom `{ name, id }`, `:name:`, `name:id`, or `<:name:id>`. Requires moderator permissions.
|
|
285
|
+
*/
|
|
286
|
+
async removeReactionEmoji(emoji) {
|
|
287
|
+
const emojiStr = await this.resolveEmojiForReaction(emoji);
|
|
288
|
+
await this.client.rest.delete(Routes.channelMessageReaction(this.channelId, this.id, emojiStr));
|
|
289
|
+
}
|
|
290
|
+
};
|
|
291
|
+
|
|
292
|
+
export {
|
|
293
|
+
ReactionCollector,
|
|
294
|
+
Message
|
|
295
|
+
};
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Base
|
|
3
|
+
} from "./chunk-XNS4O6QJ.mjs";
|
|
4
|
+
|
|
5
|
+
// src/structures/Webhook.ts
|
|
6
|
+
import { Routes } from "@fluxerjs/types";
|
|
7
|
+
var Webhook = class _Webhook extends Base {
|
|
8
|
+
client;
|
|
9
|
+
id;
|
|
10
|
+
guildId;
|
|
11
|
+
channelId;
|
|
12
|
+
name;
|
|
13
|
+
avatar;
|
|
14
|
+
/** Present only when webhook was created via createWebhook(); not returned when fetching. */
|
|
15
|
+
token;
|
|
16
|
+
/** @param data - API webhook from POST /channels/{id}/webhooks (has token) or GET /webhooks/{id} (no token) */
|
|
17
|
+
constructor(client, data) {
|
|
18
|
+
super();
|
|
19
|
+
this.client = client;
|
|
20
|
+
this.id = data.id;
|
|
21
|
+
this.guildId = data.guild_id;
|
|
22
|
+
this.channelId = data.channel_id;
|
|
23
|
+
this.name = data.name ?? "Unknown";
|
|
24
|
+
this.avatar = data.avatar ?? null;
|
|
25
|
+
this.token = data.token ?? null;
|
|
26
|
+
}
|
|
27
|
+
/** Delete this webhook. Requires bot token with Manage Webhooks permission. */
|
|
28
|
+
async delete() {
|
|
29
|
+
await this.client.rest.delete(Routes.webhook(this.id), { auth: true });
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Send a message via this webhook. Requires the webhook token (only present when created, not when fetched).
|
|
33
|
+
* @throws Error if token is not available
|
|
34
|
+
*/
|
|
35
|
+
async send(options) {
|
|
36
|
+
if (!this.token) {
|
|
37
|
+
throw new Error("Webhook token is required to send. The token is only returned when creating a webhook; fetched webhooks cannot send.");
|
|
38
|
+
}
|
|
39
|
+
const body = typeof options === "string" ? { content: options } : options;
|
|
40
|
+
await this.client.rest.post(Routes.webhookExecute(this.id, this.token), {
|
|
41
|
+
body,
|
|
42
|
+
auth: false
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Fetch a webhook by ID using bot auth.
|
|
47
|
+
* @param client - The client instance
|
|
48
|
+
* @param webhookId - The webhook ID
|
|
49
|
+
* @returns Webhook without token (cannot send)
|
|
50
|
+
*/
|
|
51
|
+
static async fetch(client, webhookId) {
|
|
52
|
+
const data = await client.rest.get(Routes.webhook(webhookId));
|
|
53
|
+
return new _Webhook(client, data);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Create a Webhook instance from an ID and token (e.g. from a stored webhook URL).
|
|
57
|
+
* @param client - The client instance
|
|
58
|
+
* @param webhookId - The webhook ID
|
|
59
|
+
* @param token - The webhook token (from createWebhook or stored)
|
|
60
|
+
* @param options - Optional channelId, guildId, name for display
|
|
61
|
+
*/
|
|
62
|
+
static fromToken(client, webhookId, token, options) {
|
|
63
|
+
return new _Webhook(client, {
|
|
64
|
+
id: webhookId,
|
|
65
|
+
guild_id: options?.guildId ?? "",
|
|
66
|
+
channel_id: options?.channelId ?? "",
|
|
67
|
+
name: options?.name ?? "Webhook",
|
|
68
|
+
avatar: null,
|
|
69
|
+
token,
|
|
70
|
+
user: { id: "", username: "webhook", discriminator: "0" }
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
export {
|
|
76
|
+
Webhook
|
|
77
|
+
};
|
|
@@ -0,0 +1,164 @@
|
|
|
1
|
+
import {
|
|
2
|
+
Base
|
|
3
|
+
} from "./chunk-XNS4O6QJ.mjs";
|
|
4
|
+
|
|
5
|
+
// src/structures/Channel.ts
|
|
6
|
+
import { ChannelType, Routes } from "@fluxerjs/types";
|
|
7
|
+
var Channel = class _Channel extends Base {
|
|
8
|
+
/** Whether this channel has a send method (TextChannel, DMChannel). */
|
|
9
|
+
isSendable() {
|
|
10
|
+
return "send" in this;
|
|
11
|
+
}
|
|
12
|
+
/** Whether this channel is a DM or Group DM. */
|
|
13
|
+
isDM() {
|
|
14
|
+
return this.type === ChannelType.DM || this.type === ChannelType.GroupDM;
|
|
15
|
+
}
|
|
16
|
+
/** Whether this channel is voice-based (VoiceChannel). */
|
|
17
|
+
isVoice() {
|
|
18
|
+
return "bitrate" in this;
|
|
19
|
+
}
|
|
20
|
+
/** Create a DM channel from API data (type DM or GroupDM). */
|
|
21
|
+
static createDM(client, data) {
|
|
22
|
+
return new DMChannel(client, data);
|
|
23
|
+
}
|
|
24
|
+
client;
|
|
25
|
+
id;
|
|
26
|
+
type;
|
|
27
|
+
/** @param data - API channel from GET /channels/{id} or GET /guilds/{id}/channels */
|
|
28
|
+
constructor(client, data) {
|
|
29
|
+
super();
|
|
30
|
+
this.client = client;
|
|
31
|
+
this.id = data.id;
|
|
32
|
+
this.type = data.type;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Create the appropriate channel subclass from API data.
|
|
36
|
+
* @param client - The client instance
|
|
37
|
+
* @param data - Channel data from the API
|
|
38
|
+
*/
|
|
39
|
+
static from(client, data) {
|
|
40
|
+
const type = data.type ?? 0;
|
|
41
|
+
if (type === ChannelType.GuildText) return new TextChannel(client, data);
|
|
42
|
+
if (type === ChannelType.GuildCategory) return new CategoryChannel(client, data);
|
|
43
|
+
if (type === ChannelType.GuildVoice) return new VoiceChannel(client, data);
|
|
44
|
+
if (type === ChannelType.GuildLink || type === ChannelType.GuildLinkExtended)
|
|
45
|
+
return new LinkChannel(client, data);
|
|
46
|
+
return new GuildChannel(client, data);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Create a channel from API data, including DM and GroupDM.
|
|
50
|
+
* Used by ChannelManager.fetch() for GET /channels/{id}.
|
|
51
|
+
*/
|
|
52
|
+
static fromOrCreate(client, data) {
|
|
53
|
+
const type = data.type ?? 0;
|
|
54
|
+
if (type === ChannelType.DM || type === ChannelType.GroupDM)
|
|
55
|
+
return _Channel.createDM(client, data);
|
|
56
|
+
return _Channel.from(client, data);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
var GuildChannel = class extends Channel {
|
|
60
|
+
guildId;
|
|
61
|
+
name;
|
|
62
|
+
position;
|
|
63
|
+
parentId;
|
|
64
|
+
constructor(client, data) {
|
|
65
|
+
super(client, data);
|
|
66
|
+
this.guildId = data.guild_id ?? "";
|
|
67
|
+
this.name = data.name ?? null;
|
|
68
|
+
this.position = data.position;
|
|
69
|
+
this.parentId = data.parent_id ?? null;
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Create a webhook in this channel.
|
|
73
|
+
* @param options - Webhook name and optional avatar URL
|
|
74
|
+
* @returns The webhook with token (required for send()). Requires Manage Webhooks permission.
|
|
75
|
+
*/
|
|
76
|
+
async createWebhook(options) {
|
|
77
|
+
const { Webhook } = await import("./Webhook-2MQESB7Z.mjs");
|
|
78
|
+
const data = await this.client.rest.post(Routes.channelWebhooks(this.id), {
|
|
79
|
+
body: options,
|
|
80
|
+
auth: true
|
|
81
|
+
});
|
|
82
|
+
return new Webhook(this.client, data);
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Fetch all webhooks in this channel.
|
|
86
|
+
* @returns Webhooks (includes token when listing from channel; can send via send())
|
|
87
|
+
*/
|
|
88
|
+
async fetchWebhooks() {
|
|
89
|
+
const { Webhook } = await import("./Webhook-2MQESB7Z.mjs");
|
|
90
|
+
const data = await this.client.rest.get(Routes.channelWebhooks(this.id));
|
|
91
|
+
const list = Array.isArray(data) ? data : Object.values(data ?? {});
|
|
92
|
+
return list.map((w) => new Webhook(this.client, w));
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
var TextChannel = class extends GuildChannel {
|
|
96
|
+
topic;
|
|
97
|
+
nsfw;
|
|
98
|
+
rateLimitPerUser;
|
|
99
|
+
lastMessageId;
|
|
100
|
+
constructor(client, data) {
|
|
101
|
+
super(client, data);
|
|
102
|
+
this.topic = data.topic ?? null;
|
|
103
|
+
this.nsfw = data.nsfw ?? false;
|
|
104
|
+
this.rateLimitPerUser = data.rate_limit_per_user ?? 0;
|
|
105
|
+
this.lastMessageId = data.last_message_id ?? null;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Send a message to this channel.
|
|
109
|
+
* @param options - Text content or object with `content` and/or `embeds`
|
|
110
|
+
*/
|
|
111
|
+
async send(options) {
|
|
112
|
+
const body = typeof options === "string" ? { content: options } : options;
|
|
113
|
+
const { Message } = await import("./Message-G4KR7O2J.mjs");
|
|
114
|
+
const data = await this.client.rest.post(Routes.channelMessages(this.id), { body });
|
|
115
|
+
return new Message(this.client, data);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
var CategoryChannel = class extends GuildChannel {
|
|
119
|
+
};
|
|
120
|
+
var VoiceChannel = class extends GuildChannel {
|
|
121
|
+
bitrate;
|
|
122
|
+
userLimit;
|
|
123
|
+
rtcRegion;
|
|
124
|
+
constructor(client, data) {
|
|
125
|
+
super(client, data);
|
|
126
|
+
this.bitrate = data.bitrate ?? null;
|
|
127
|
+
this.userLimit = data.user_limit ?? null;
|
|
128
|
+
this.rtcRegion = data.rtc_region ?? null;
|
|
129
|
+
}
|
|
130
|
+
};
|
|
131
|
+
var LinkChannel = class extends GuildChannel {
|
|
132
|
+
url;
|
|
133
|
+
constructor(client, data) {
|
|
134
|
+
super(client, data);
|
|
135
|
+
this.url = data.url ?? null;
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
var DMChannel = class extends Channel {
|
|
139
|
+
lastMessageId;
|
|
140
|
+
constructor(client, data) {
|
|
141
|
+
super(client, data);
|
|
142
|
+
this.lastMessageId = data.last_message_id ?? null;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Send a message to this DM channel.
|
|
146
|
+
* @param options - Text content or object with `content` and/or `embeds`
|
|
147
|
+
*/
|
|
148
|
+
async send(options) {
|
|
149
|
+
const body = typeof options === "string" ? { content: options } : options;
|
|
150
|
+
const { Message } = await import("./Message-G4KR7O2J.mjs");
|
|
151
|
+
const data = await this.client.rest.post(Routes.channelMessages(this.id), { body });
|
|
152
|
+
return new Message(this.client, data);
|
|
153
|
+
}
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
export {
|
|
157
|
+
Channel,
|
|
158
|
+
GuildChannel,
|
|
159
|
+
TextChannel,
|
|
160
|
+
CategoryChannel,
|
|
161
|
+
VoiceChannel,
|
|
162
|
+
LinkChannel,
|
|
163
|
+
DMChannel
|
|
164
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ErrorCodes,
|
|
3
|
+
FluxerError
|
|
4
|
+
} from "./chunk-6S3BDHBI.mjs";
|
|
5
|
+
import {
|
|
6
|
+
Base
|
|
7
|
+
} from "./chunk-XNS4O6QJ.mjs";
|
|
8
|
+
|
|
9
|
+
// src/structures/MessageReaction.ts
|
|
10
|
+
import { Routes } from "@fluxerjs/types";
|
|
11
|
+
import { FluxerAPIError, RateLimitError } from "@fluxerjs/rest";
|
|
12
|
+
var MessageReaction = class extends Base {
|
|
13
|
+
client;
|
|
14
|
+
messageId;
|
|
15
|
+
channelId;
|
|
16
|
+
guildId;
|
|
17
|
+
emoji;
|
|
18
|
+
/** Raw gateway payload for low-level access. */
|
|
19
|
+
_data;
|
|
20
|
+
constructor(client, data) {
|
|
21
|
+
super();
|
|
22
|
+
this.client = client;
|
|
23
|
+
this._data = data;
|
|
24
|
+
this.messageId = data.message_id;
|
|
25
|
+
this.channelId = data.channel_id;
|
|
26
|
+
this.guildId = data.guild_id ?? null;
|
|
27
|
+
this.emoji = data.emoji;
|
|
28
|
+
}
|
|
29
|
+
/** Emoji as a string: unicode or "name:id" for custom. */
|
|
30
|
+
get emojiIdentifier() {
|
|
31
|
+
return this.emoji.id ? `${this.emoji.name}:${this.emoji.id}` : this.emoji.name;
|
|
32
|
+
}
|
|
33
|
+
/** Guild where this reaction was added. Resolved from cache; null for DMs or if not cached. */
|
|
34
|
+
get guild() {
|
|
35
|
+
return this.guildId ? this.client.guilds.get(this.guildId) ?? null : null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Fetch the message this reaction belongs to.
|
|
39
|
+
* Use when you need to edit, delete, or otherwise interact with the message.
|
|
40
|
+
* @throws FluxerError with MESSAGE_NOT_FOUND if the message does not exist
|
|
41
|
+
*/
|
|
42
|
+
async fetchMessage() {
|
|
43
|
+
try {
|
|
44
|
+
const { Message } = await import("./Message-QNWAPT55.mjs");
|
|
45
|
+
const data = await this.client.rest.get(
|
|
46
|
+
Routes.channelMessage(this.channelId, this.messageId)
|
|
47
|
+
);
|
|
48
|
+
return new Message(this.client, data);
|
|
49
|
+
} catch (err) {
|
|
50
|
+
if (err instanceof RateLimitError) throw err;
|
|
51
|
+
if (err instanceof FluxerAPIError && err.statusCode === 404) {
|
|
52
|
+
throw new FluxerError(`Message ${this.messageId} not found in channel ${this.channelId}`, {
|
|
53
|
+
code: ErrorCodes.MessageNotFound,
|
|
54
|
+
cause: err
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
throw err instanceof FluxerError ? err : new FluxerError(String(err), { cause: err });
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export {
|
|
63
|
+
MessageReaction
|
|
64
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import {
|
|
2
|
+
User
|
|
3
|
+
} from "./chunk-P4IRDGB4.mjs";
|
|
4
|
+
import {
|
|
5
|
+
Base
|
|
6
|
+
} from "./chunk-XNS4O6QJ.mjs";
|
|
7
|
+
|
|
8
|
+
// src/structures/GuildMember.ts
|
|
9
|
+
var GuildMember = class extends Base {
|
|
10
|
+
client;
|
|
11
|
+
id;
|
|
12
|
+
user;
|
|
13
|
+
guild;
|
|
14
|
+
nick;
|
|
15
|
+
roles;
|
|
16
|
+
joinedAt;
|
|
17
|
+
communicationDisabledUntil;
|
|
18
|
+
constructor(client, data, guild) {
|
|
19
|
+
super();
|
|
20
|
+
this.client = client;
|
|
21
|
+
this.user = new User(client, data.user);
|
|
22
|
+
this.id = data.user.id;
|
|
23
|
+
this.guild = guild;
|
|
24
|
+
this.nick = data.nick ?? null;
|
|
25
|
+
this.roles = data.roles ?? [];
|
|
26
|
+
this.joinedAt = new Date(data.joined_at);
|
|
27
|
+
this.communicationDisabledUntil = data.communication_disabled_until ? new Date(data.communication_disabled_until) : null;
|
|
28
|
+
}
|
|
29
|
+
get displayName() {
|
|
30
|
+
return this.nick ?? this.user.globalName ?? this.user.username;
|
|
31
|
+
}
|
|
32
|
+
};
|
|
33
|
+
|
|
34
|
+
export {
|
|
35
|
+
GuildMember
|
|
36
|
+
};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
// src/util/Constants.ts
|
|
2
|
+
var CDN_URL = "https://fluxerusercontent.com";
|
|
3
|
+
|
|
4
|
+
// src/util/cdn.ts
|
|
5
|
+
function getExtension(hash, options) {
|
|
6
|
+
const ext = options?.extension ?? "png";
|
|
7
|
+
if (hash?.startsWith("a_")) return "gif";
|
|
8
|
+
return ext;
|
|
9
|
+
}
|
|
10
|
+
function appendSize(options) {
|
|
11
|
+
return options?.size ? `?size=${options.size}` : "";
|
|
12
|
+
}
|
|
13
|
+
function getCdnBase(options) {
|
|
14
|
+
return options?.cdnBase ?? CDN_URL;
|
|
15
|
+
}
|
|
16
|
+
function cdnAvatarURL(userId, avatarHash, options) {
|
|
17
|
+
if (!avatarHash) return null;
|
|
18
|
+
const base = getCdnBase(options);
|
|
19
|
+
const ext = getExtension(avatarHash, options);
|
|
20
|
+
const size = appendSize(options);
|
|
21
|
+
return `${base}/avatars/${userId}/${avatarHash}.${ext}${size}`;
|
|
22
|
+
}
|
|
23
|
+
function cdnDisplayAvatarURL(userId, avatarHash, options) {
|
|
24
|
+
const base = getCdnBase(options);
|
|
25
|
+
return cdnAvatarURL(userId, avatarHash, options) ?? `${base}/avatars/0/0.png`;
|
|
26
|
+
}
|
|
27
|
+
function cdnBannerURL(resourceId, bannerHash, options) {
|
|
28
|
+
if (!bannerHash) return null;
|
|
29
|
+
const base = getCdnBase(options);
|
|
30
|
+
const ext = getExtension(bannerHash, options);
|
|
31
|
+
const size = appendSize(options);
|
|
32
|
+
return `${base}/banners/${resourceId}/${bannerHash}.${ext}${size}`;
|
|
33
|
+
}
|
|
34
|
+
function cdnMemberAvatarURL(guildId, userId, avatarHash, options) {
|
|
35
|
+
if (!avatarHash) return null;
|
|
36
|
+
const base = getCdnBase(options);
|
|
37
|
+
const ext = getExtension(avatarHash, options);
|
|
38
|
+
const size = appendSize(options);
|
|
39
|
+
return `${base}/guilds/${guildId}/users/${userId}/avatars/${avatarHash}.${ext}${size}`;
|
|
40
|
+
}
|
|
41
|
+
function cdnMemberBannerURL(guildId, userId, bannerHash, options) {
|
|
42
|
+
if (!bannerHash) return null;
|
|
43
|
+
const base = getCdnBase(options);
|
|
44
|
+
const ext = getExtension(bannerHash, options);
|
|
45
|
+
const size = appendSize(options);
|
|
46
|
+
return `${base}/guilds/${guildId}/users/${userId}/banners/${bannerHash}.${ext}${size}`;
|
|
47
|
+
}
|
|
48
|
+
function cdnDefaultAvatarURL(discriminatorIndex, cdnBase) {
|
|
49
|
+
const base = cdnBase ?? CDN_URL;
|
|
50
|
+
const index = discriminatorIndex != null ? discriminatorIndex % 5 : 0;
|
|
51
|
+
return `${base}/avatars/0/${index}.png`;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
export {
|
|
55
|
+
CDN_URL,
|
|
56
|
+
cdnAvatarURL,
|
|
57
|
+
cdnDisplayAvatarURL,
|
|
58
|
+
cdnBannerURL,
|
|
59
|
+
cdnMemberAvatarURL,
|
|
60
|
+
cdnMemberBannerURL,
|
|
61
|
+
cdnDefaultAvatarURL
|
|
62
|
+
};
|