@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,293 @@
|
|
|
1
|
+
import {
|
|
2
|
+
ErrorCodes,
|
|
3
|
+
FluxerError
|
|
4
|
+
} from "./chunk-V6T5VMWD.mjs";
|
|
5
|
+
import {
|
|
6
|
+
GuildMember
|
|
7
|
+
} from "./chunk-DUQAD7F6.mjs";
|
|
8
|
+
import {
|
|
9
|
+
CDN_URL
|
|
10
|
+
} from "./chunk-HQMYRYMY.mjs";
|
|
11
|
+
import {
|
|
12
|
+
Role
|
|
13
|
+
} from "./chunk-DQ4TNBPG.mjs";
|
|
14
|
+
import {
|
|
15
|
+
Base
|
|
16
|
+
} from "./chunk-XNS4O6QJ.mjs";
|
|
17
|
+
|
|
18
|
+
// src/structures/Guild.ts
|
|
19
|
+
import { parseRoleMention } from "@fluxerjs/util";
|
|
20
|
+
import { FluxerAPIError } from "@fluxerjs/rest";
|
|
21
|
+
import { Collection } from "@fluxerjs/collection";
|
|
22
|
+
import { Routes } from "@fluxerjs/types";
|
|
23
|
+
var Guild = class extends Base {
|
|
24
|
+
client;
|
|
25
|
+
id;
|
|
26
|
+
name;
|
|
27
|
+
icon;
|
|
28
|
+
banner;
|
|
29
|
+
ownerId;
|
|
30
|
+
/** Invite splash image hash. Null if none. */
|
|
31
|
+
splash;
|
|
32
|
+
/** Custom vanity URL code (e.g. fluxer.gg/code). Null if none. */
|
|
33
|
+
vanityURLCode;
|
|
34
|
+
/** Enabled guild features. */
|
|
35
|
+
features;
|
|
36
|
+
verificationLevel;
|
|
37
|
+
defaultMessageNotifications;
|
|
38
|
+
explicitContentFilter;
|
|
39
|
+
/** AFK voice channel ID. Null if none. */
|
|
40
|
+
afkChannelId;
|
|
41
|
+
/** AFK timeout in seconds. */
|
|
42
|
+
afkTimeout;
|
|
43
|
+
/** System messages channel ID. Null if none. */
|
|
44
|
+
systemChannelId;
|
|
45
|
+
/** Rules/guidelines channel ID. Null if none. */
|
|
46
|
+
rulesChannelId;
|
|
47
|
+
nsfwLevel;
|
|
48
|
+
mfaLevel;
|
|
49
|
+
/** Banner image width. Optional. */
|
|
50
|
+
bannerWidth;
|
|
51
|
+
/** Banner image height. Optional. */
|
|
52
|
+
bannerHeight;
|
|
53
|
+
/** Splash image width. Optional. */
|
|
54
|
+
splashWidth;
|
|
55
|
+
/** Splash image height. Optional. */
|
|
56
|
+
splashHeight;
|
|
57
|
+
members = new Collection();
|
|
58
|
+
channels = new Collection();
|
|
59
|
+
roles = new Collection();
|
|
60
|
+
/** @param data - API guild from GET /guilds/{id} or gateway GUILD_CREATE */
|
|
61
|
+
constructor(client, data) {
|
|
62
|
+
super();
|
|
63
|
+
this.client = client;
|
|
64
|
+
this.id = data.id;
|
|
65
|
+
this.name = data.name;
|
|
66
|
+
this.icon = data.icon ?? null;
|
|
67
|
+
this.banner = data.banner ?? null;
|
|
68
|
+
this.ownerId = data.owner_id ?? data.ownerId ?? "";
|
|
69
|
+
this.splash = data.splash ?? null;
|
|
70
|
+
this.vanityURLCode = data.vanity_url_code ?? null;
|
|
71
|
+
this.features = data.features ?? [];
|
|
72
|
+
this.verificationLevel = data.verification_level ?? 0;
|
|
73
|
+
this.defaultMessageNotifications = data.default_message_notifications ?? 0;
|
|
74
|
+
this.explicitContentFilter = data.explicit_content_filter ?? 0;
|
|
75
|
+
this.afkChannelId = data.afk_channel_id ?? null;
|
|
76
|
+
this.afkTimeout = data.afk_timeout ?? 0;
|
|
77
|
+
this.systemChannelId = data.system_channel_id ?? null;
|
|
78
|
+
this.rulesChannelId = data.rules_channel_id ?? null;
|
|
79
|
+
this.nsfwLevel = data.nsfw_level ?? 0;
|
|
80
|
+
this.mfaLevel = data.mfa_level ?? 0;
|
|
81
|
+
this.bannerWidth = data.banner_width ?? null;
|
|
82
|
+
this.bannerHeight = data.banner_height ?? null;
|
|
83
|
+
this.splashWidth = data.splash_width ?? null;
|
|
84
|
+
this.splashHeight = data.splash_height ?? null;
|
|
85
|
+
for (const r of data.roles ?? []) {
|
|
86
|
+
this.roles.set(r.id, new Role(client, r, this.id));
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
/** Get the guild icon URL, or null if no icon. */
|
|
90
|
+
iconURL(options) {
|
|
91
|
+
if (!this.icon) return null;
|
|
92
|
+
const size = options?.size ? `?size=${options.size}` : "";
|
|
93
|
+
return `${CDN_URL}/icons/${this.id}/${this.icon}.png${size}`;
|
|
94
|
+
}
|
|
95
|
+
/** Get the guild banner URL, or null if no banner. */
|
|
96
|
+
bannerURL(options) {
|
|
97
|
+
if (!this.banner) return null;
|
|
98
|
+
const size = options?.size ? `?size=${options.size}` : "";
|
|
99
|
+
return `${CDN_URL}/banners/${this.id}/${this.banner}.png${size}`;
|
|
100
|
+
}
|
|
101
|
+
/** Get the guild splash (invite background) URL, or null if no splash. */
|
|
102
|
+
splashURL(options) {
|
|
103
|
+
if (!this.splash) return null;
|
|
104
|
+
const size = options?.size ? `?size=${options.size}` : "";
|
|
105
|
+
return `${CDN_URL}/splashes/${this.id}/${this.splash}.png${size}`;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Add a role to a member by user ID. Does not require fetching the member first.
|
|
109
|
+
* @param userId - The user ID of the member
|
|
110
|
+
* @param roleId - The role ID to add (or use guild.resolveRoleId for mention/name resolution)
|
|
111
|
+
* Requires Manage Roles permission.
|
|
112
|
+
*/
|
|
113
|
+
async addRoleToMember(userId, roleId) {
|
|
114
|
+
await this.client.rest.put(Routes.guildMemberRole(this.id, userId, roleId));
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Remove a role from a member by user ID. Does not require fetching the member first.
|
|
118
|
+
* @param userId - The user ID of the member
|
|
119
|
+
* @param roleId - The role ID to remove
|
|
120
|
+
* Requires Manage Roles permission.
|
|
121
|
+
*/
|
|
122
|
+
async removeRoleFromMember(userId, roleId) {
|
|
123
|
+
await this.client.rest.delete(Routes.guildMemberRole(this.id, userId, roleId));
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Resolve a role ID from an argument (role mention, raw ID, or name).
|
|
127
|
+
* Fetches guild roles if name is provided.
|
|
128
|
+
* @param arg - Role mention (@role), role ID, or role name
|
|
129
|
+
* @returns The role ID, or null if not found
|
|
130
|
+
*/
|
|
131
|
+
async resolveRoleId(arg) {
|
|
132
|
+
const parsed = parseRoleMention(arg);
|
|
133
|
+
if (parsed) return parsed;
|
|
134
|
+
if (/^\d{17,19}$/.test(arg.trim())) return arg.trim();
|
|
135
|
+
const cached = this.roles.find(
|
|
136
|
+
(r) => !!(r.name && r.name.toLowerCase() === arg.trim().toLowerCase())
|
|
137
|
+
);
|
|
138
|
+
if (cached) return cached.id;
|
|
139
|
+
const roles = await this.client.rest.get(Routes.guildRoles(this.id));
|
|
140
|
+
const list = Array.isArray(roles) ? roles : Object.values(roles ?? {});
|
|
141
|
+
const role = list.find((r) => !!(r.name && r.name.toLowerCase() === arg.trim().toLowerCase()));
|
|
142
|
+
if (role) {
|
|
143
|
+
this.roles.set(role.id, new Role(this.client, role, this.id));
|
|
144
|
+
return role.id;
|
|
145
|
+
}
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Ban a user from this guild.
|
|
150
|
+
* @param userId - The user ID to ban
|
|
151
|
+
* @param options - Optional reason, delete_message_days (0–7), and ban_duration_seconds (temporary ban).
|
|
152
|
+
* ban_duration_seconds: 0 = permanent, or use 3600, 43200, 86400, 259200, 432000, 604800, 1209600, 2592000.
|
|
153
|
+
* Requires Ban Members permission.
|
|
154
|
+
*/
|
|
155
|
+
async ban(userId, options) {
|
|
156
|
+
const body = {};
|
|
157
|
+
if (options?.reason) body.reason = options.reason;
|
|
158
|
+
if (options?.delete_message_days != null)
|
|
159
|
+
body.delete_message_days = options.delete_message_days;
|
|
160
|
+
if (options?.ban_duration_seconds != null)
|
|
161
|
+
body.ban_duration_seconds = options.ban_duration_seconds;
|
|
162
|
+
await this.client.rest.put(Routes.guildBan(this.id, userId), {
|
|
163
|
+
body: Object.keys(body).length ? body : void 0,
|
|
164
|
+
auth: true
|
|
165
|
+
});
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Fetch guild bans. Requires Ban Members permission.
|
|
169
|
+
* @returns List of GuildBan objects
|
|
170
|
+
*/
|
|
171
|
+
async fetchBans() {
|
|
172
|
+
const { GuildBan } = await import("./GuildBan-7CXLTPKY.mjs");
|
|
173
|
+
const data = await this.client.rest.get(Routes.guildBans(this.id));
|
|
174
|
+
const list = Array.isArray(data) ? data : data?.bans ?? [];
|
|
175
|
+
return list.map((b) => new GuildBan(this.client, { ...b, guild_id: this.id }, this.id));
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Remove a ban (unban a user).
|
|
179
|
+
* @param userId - The user ID to unban
|
|
180
|
+
* Requires Ban Members permission.
|
|
181
|
+
*/
|
|
182
|
+
async unban(userId) {
|
|
183
|
+
await this.client.rest.delete(Routes.guildBan(this.id, userId), { auth: true });
|
|
184
|
+
}
|
|
185
|
+
/**
|
|
186
|
+
* Kick a member from this guild.
|
|
187
|
+
* @param userId - The user ID to kick
|
|
188
|
+
* Requires Kick Members permission.
|
|
189
|
+
*/
|
|
190
|
+
async kick(userId) {
|
|
191
|
+
await this.client.rest.delete(Routes.guildMember(this.id, userId), { auth: true });
|
|
192
|
+
}
|
|
193
|
+
/**
|
|
194
|
+
* Fetch a guild member by user ID.
|
|
195
|
+
* @param userId - The user ID of the member to fetch
|
|
196
|
+
* @returns The guild member
|
|
197
|
+
* @throws FluxerError with MEMBER_NOT_FOUND if user is not in the guild (404)
|
|
198
|
+
* @throws FluxerError with cause for permission denied (403) or other REST errors
|
|
199
|
+
*/
|
|
200
|
+
async fetchMember(userId) {
|
|
201
|
+
try {
|
|
202
|
+
const data = await this.client.rest.get(
|
|
203
|
+
Routes.guildMember(this.id, userId)
|
|
204
|
+
);
|
|
205
|
+
const member = new GuildMember(this.client, { ...data, guild_id: this.id }, this);
|
|
206
|
+
this.members.set(member.id, member);
|
|
207
|
+
return member;
|
|
208
|
+
} catch (err) {
|
|
209
|
+
const statusCode = err instanceof FluxerAPIError ? err.statusCode : err?.statusCode;
|
|
210
|
+
if (statusCode === 404) {
|
|
211
|
+
throw new FluxerError(`Member ${userId} not found in guild`, {
|
|
212
|
+
code: ErrorCodes.MemberNotFound,
|
|
213
|
+
cause: err
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
throw err instanceof FluxerError ? err : new FluxerError("Failed to fetch guild member", { cause: err });
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Fetch guild audit logs. Requires View Audit Log permission.
|
|
221
|
+
* @param options - Optional limit, before, after, user_id, action_type for filtering
|
|
222
|
+
*/
|
|
223
|
+
async fetchAuditLogs(options) {
|
|
224
|
+
const params = new URLSearchParams();
|
|
225
|
+
if (options?.limit != null) params.set("limit", String(options.limit));
|
|
226
|
+
if (options?.before) params.set("before", options.before);
|
|
227
|
+
if (options?.after) params.set("after", options.after);
|
|
228
|
+
if (options?.userId) params.set("user_id", options.userId);
|
|
229
|
+
if (options?.actionType != null) params.set("action_type", String(options.actionType));
|
|
230
|
+
const qs = params.toString();
|
|
231
|
+
const url = Routes.guildAuditLogs(this.id) + (qs ? `?${qs}` : "");
|
|
232
|
+
return this.client.rest.get(url);
|
|
233
|
+
}
|
|
234
|
+
/** Fetch all webhooks in this guild. Returned webhooks do not include the token (cannot send). */
|
|
235
|
+
async fetchWebhooks() {
|
|
236
|
+
const { Webhook } = await import("./Webhook-RWDDYW2Q.mjs");
|
|
237
|
+
const data = await this.client.rest.get(Routes.guildWebhooks(this.id));
|
|
238
|
+
const list = Array.isArray(data) ? data : Object.values(data ?? {});
|
|
239
|
+
return list.map((w) => new Webhook(this.client, w));
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Create a channel in this guild.
|
|
243
|
+
* @param data - Channel data: type (0=text, 2=voice, 4=category, 5=link), name, and optional parent_id, topic, bitrate, user_limit, nsfw, permission_overwrites
|
|
244
|
+
* Requires Manage Channels permission.
|
|
245
|
+
*/
|
|
246
|
+
async createChannel(data) {
|
|
247
|
+
const { Channel } = await import("./Channel-4WVFDOCG.mjs");
|
|
248
|
+
const created = await this.client.rest.post(Routes.guildChannels(this.id), {
|
|
249
|
+
body: data,
|
|
250
|
+
auth: true
|
|
251
|
+
});
|
|
252
|
+
const channel = Channel.from(this.client, created);
|
|
253
|
+
if (channel) {
|
|
254
|
+
this.client.channels.set(channel.id, channel);
|
|
255
|
+
this.channels.set(channel.id, channel);
|
|
256
|
+
}
|
|
257
|
+
return channel;
|
|
258
|
+
}
|
|
259
|
+
/**
|
|
260
|
+
* Fetch all channels in this guild.
|
|
261
|
+
* @returns Array of GuildChannel objects (cached in guild.channels and client.channels)
|
|
262
|
+
*/
|
|
263
|
+
async fetchChannels() {
|
|
264
|
+
const { Channel } = await import("./Channel-4WVFDOCG.mjs");
|
|
265
|
+
const data = await this.client.rest.get(Routes.guildChannels(this.id));
|
|
266
|
+
const list = Array.isArray(data) ? data : Object.values(data ?? {});
|
|
267
|
+
const channels = [];
|
|
268
|
+
for (const ch of list) {
|
|
269
|
+
const channel = Channel.from(this.client, ch);
|
|
270
|
+
if (channel) {
|
|
271
|
+
this.client.channels.set(channel.id, channel);
|
|
272
|
+
this.channels.set(channel.id, channel);
|
|
273
|
+
channels.push(channel);
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
return channels;
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Update channel positions.
|
|
280
|
+
* @param updates - Array of { id, position?, parent_id?, lock_permissions? }
|
|
281
|
+
* Requires Manage Channels permission.
|
|
282
|
+
*/
|
|
283
|
+
async setChannelPositions(updates) {
|
|
284
|
+
await this.client.rest.patch(Routes.guildChannels(this.id), {
|
|
285
|
+
body: updates,
|
|
286
|
+
auth: true
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
export {
|
|
292
|
+
Guild
|
|
293
|
+
};
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import {
|
|
2
|
+
buildSendBody,
|
|
3
|
+
resolveMessageFiles
|
|
4
|
+
} from "./chunk-VJDH54HJ.mjs";
|
|
5
|
+
import {
|
|
6
|
+
cdnAvatarURL
|
|
7
|
+
} from "./chunk-X6K3ZD62.mjs";
|
|
8
|
+
import {
|
|
9
|
+
Base
|
|
10
|
+
} from "./chunk-XNS4O6QJ.mjs";
|
|
11
|
+
|
|
12
|
+
// src/structures/Webhook.ts
|
|
13
|
+
import { Routes } from "@fluxerjs/types";
|
|
14
|
+
var Webhook = class _Webhook extends Base {
|
|
15
|
+
client;
|
|
16
|
+
id;
|
|
17
|
+
guildId;
|
|
18
|
+
channelId;
|
|
19
|
+
name;
|
|
20
|
+
avatar;
|
|
21
|
+
/** Present only when webhook was created via createWebhook(); not returned when fetching. */
|
|
22
|
+
token;
|
|
23
|
+
/** User who created the webhook. */
|
|
24
|
+
user;
|
|
25
|
+
/** @param data - API webhook from POST /channels/{id}/webhooks (has token) or GET /webhooks/{id} (no token) */
|
|
26
|
+
constructor(client, data) {
|
|
27
|
+
super();
|
|
28
|
+
this.client = client;
|
|
29
|
+
this.id = data.id;
|
|
30
|
+
this.guildId = data.guild_id;
|
|
31
|
+
this.channelId = data.channel_id;
|
|
32
|
+
this.name = data.name ?? "Unknown";
|
|
33
|
+
this.avatar = data.avatar ?? null;
|
|
34
|
+
this.token = data.token ?? null;
|
|
35
|
+
this.user = client.getOrCreateUser(data.user);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Get the URL for this webhook's avatar.
|
|
39
|
+
* Returns null if the webhook has no custom avatar.
|
|
40
|
+
*/
|
|
41
|
+
avatarURL(options) {
|
|
42
|
+
return cdnAvatarURL(this.id, this.avatar, options);
|
|
43
|
+
}
|
|
44
|
+
/** Delete this webhook. Requires bot token with Manage Webhooks permission. */
|
|
45
|
+
async delete() {
|
|
46
|
+
await this.client.rest.delete(Routes.webhook(this.id), { auth: true });
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Edit this webhook. With token: name and avatar only. Without token (bot auth): name, avatar, and channel_id.
|
|
50
|
+
* @param options - Fields to update (name, avatar, channel_id when using bot auth)
|
|
51
|
+
* @returns This webhook instance with updated fields
|
|
52
|
+
*/
|
|
53
|
+
async edit(options) {
|
|
54
|
+
const body = {};
|
|
55
|
+
if (options.name !== void 0) body.name = options.name;
|
|
56
|
+
if (options.avatar !== void 0) body.avatar = options.avatar;
|
|
57
|
+
if ("channel_id" in options && options.channel_id !== void 0 && !this.token) {
|
|
58
|
+
body.channel_id = options.channel_id;
|
|
59
|
+
}
|
|
60
|
+
if (this.token) {
|
|
61
|
+
const data2 = await this.client.rest.patch(Routes.webhookExecute(this.id, this.token), {
|
|
62
|
+
body,
|
|
63
|
+
auth: false
|
|
64
|
+
});
|
|
65
|
+
const w2 = data2;
|
|
66
|
+
this.name = w2.name ?? this.name;
|
|
67
|
+
this.avatar = w2.avatar ?? null;
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
const data = await this.client.rest.patch(Routes.webhook(this.id), {
|
|
71
|
+
body,
|
|
72
|
+
auth: true
|
|
73
|
+
});
|
|
74
|
+
const w = data;
|
|
75
|
+
this.name = w.name ?? this.name;
|
|
76
|
+
this.avatar = w.avatar ?? null;
|
|
77
|
+
this.channelId = w.channel_id ?? this.channelId;
|
|
78
|
+
return this;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Send a message via this webhook. Requires the webhook token (only present when created, not when fetched).
|
|
82
|
+
* @param options - Text content or object with content, embeds, username, avatar_url, tts, files, attachments
|
|
83
|
+
* @param wait - If true, waits for the API and returns the created Message; otherwise returns void (204)
|
|
84
|
+
* @throws Error if token is not available
|
|
85
|
+
* @example
|
|
86
|
+
* await webhook.send('Hello!');
|
|
87
|
+
* await webhook.send({ embeds: [embed.toJSON()] });
|
|
88
|
+
* await webhook.send({ content: 'File attached', files: [{ name: 'data.txt', data: buffer }] });
|
|
89
|
+
* const msg = await webhook.send({ content: 'Hi' }, true);
|
|
90
|
+
*/
|
|
91
|
+
async send(options, wait) {
|
|
92
|
+
if (!this.token) {
|
|
93
|
+
throw new Error(
|
|
94
|
+
"Webhook token is required to send. The token is only returned when creating a webhook; fetched webhooks cannot send."
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
const opts = typeof options === "string" ? { content: options } : options;
|
|
98
|
+
const body = buildSendBody(options);
|
|
99
|
+
if (opts.username !== void 0) body.username = opts.username;
|
|
100
|
+
if (opts.avatar_url !== void 0) body.avatar_url = opts.avatar_url;
|
|
101
|
+
if (opts.tts !== void 0) body.tts = opts.tts;
|
|
102
|
+
const route = Routes.webhookExecute(this.id, this.token) + (wait ? "?wait=true" : "");
|
|
103
|
+
const files = opts.files?.length ? await resolveMessageFiles(opts.files) : void 0;
|
|
104
|
+
const postOptions = files?.length ? { body, files, auth: false } : { body, auth: false };
|
|
105
|
+
const data = await this.client.rest.post(
|
|
106
|
+
route,
|
|
107
|
+
postOptions
|
|
108
|
+
);
|
|
109
|
+
if (wait && data) {
|
|
110
|
+
const { Message } = await import("./Message-DXBXIQIJ.mjs");
|
|
111
|
+
return new Message(this.client, data);
|
|
112
|
+
}
|
|
113
|
+
return void 0;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Fetch a webhook by ID using bot auth.
|
|
117
|
+
* @param client - The client instance
|
|
118
|
+
* @param webhookId - The webhook ID
|
|
119
|
+
* @returns Webhook without token (cannot send)
|
|
120
|
+
*/
|
|
121
|
+
static async fetch(client, webhookId) {
|
|
122
|
+
const data = await client.rest.get(Routes.webhook(webhookId));
|
|
123
|
+
return new _Webhook(client, data);
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Create a Webhook instance from an ID and token (e.g. from a stored webhook URL).
|
|
127
|
+
* @param client - The client instance
|
|
128
|
+
* @param webhookId - The webhook ID
|
|
129
|
+
* @param token - The webhook token (from createWebhook or stored)
|
|
130
|
+
* @param options - Optional channelId, guildId, name for display
|
|
131
|
+
*/
|
|
132
|
+
static fromToken(client, webhookId, token, options) {
|
|
133
|
+
return new _Webhook(client, {
|
|
134
|
+
id: webhookId,
|
|
135
|
+
guild_id: options?.guildId ?? "",
|
|
136
|
+
channel_id: options?.channelId ?? "",
|
|
137
|
+
name: options?.name ?? "Webhook",
|
|
138
|
+
avatar: null,
|
|
139
|
+
token,
|
|
140
|
+
user: { id: "", username: "webhook", discriminator: "0" }
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
export {
|
|
146
|
+
Webhook
|
|
147
|
+
};
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CDN_URL
|
|
3
|
+
} from "./chunk-HQMYRYMY.mjs";
|
|
4
|
+
import {
|
|
5
|
+
Base
|
|
6
|
+
} from "./chunk-XNS4O6QJ.mjs";
|
|
7
|
+
|
|
8
|
+
// src/structures/User.ts
|
|
9
|
+
import { Routes } from "@fluxerjs/types";
|
|
10
|
+
var User = class extends Base {
|
|
11
|
+
client;
|
|
12
|
+
id;
|
|
13
|
+
username;
|
|
14
|
+
discriminator;
|
|
15
|
+
globalName;
|
|
16
|
+
avatar;
|
|
17
|
+
bot;
|
|
18
|
+
/** RGB avatar color (e.g. 7577782). Null if not set. */
|
|
19
|
+
avatarColor;
|
|
20
|
+
/** Public flags bitfield. Null if not set. */
|
|
21
|
+
flags;
|
|
22
|
+
/** Whether this is an official system user. */
|
|
23
|
+
system;
|
|
24
|
+
/** Banner hash (from profile, member, or invite context). Null when not available. */
|
|
25
|
+
banner;
|
|
26
|
+
/** @param data - API user from message author, GET /users/{id}, or GET /users/@me */
|
|
27
|
+
constructor(client, data) {
|
|
28
|
+
super();
|
|
29
|
+
this.client = client;
|
|
30
|
+
this.id = data.id;
|
|
31
|
+
this.username = data.username;
|
|
32
|
+
this.discriminator = data.discriminator;
|
|
33
|
+
this.globalName = data.global_name ?? null;
|
|
34
|
+
this.avatar = data.avatar ?? null;
|
|
35
|
+
this.bot = !!data.bot;
|
|
36
|
+
this.avatarColor = data.avatar_color ?? null;
|
|
37
|
+
this.flags = data.flags ?? data.public_flags ?? null;
|
|
38
|
+
this.system = !!data.system;
|
|
39
|
+
this.banner = data.banner ?? null;
|
|
40
|
+
}
|
|
41
|
+
/** Update mutable fields from fresh API data. Used by getOrCreateUser cache. */
|
|
42
|
+
_patch(data) {
|
|
43
|
+
this.username = data.username;
|
|
44
|
+
this.discriminator = data.discriminator;
|
|
45
|
+
this.globalName = data.global_name ?? null;
|
|
46
|
+
this.avatar = data.avatar ?? null;
|
|
47
|
+
if (data.avatar_color !== void 0) this.avatarColor = data.avatar_color;
|
|
48
|
+
if (data.flags !== void 0) this.flags = data.flags;
|
|
49
|
+
if (data.banner !== void 0) this.banner = data.banner;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Get the URL for this user's avatar.
|
|
53
|
+
* Auto-detects animated avatars (hash starting with `a_`) and uses gif extension.
|
|
54
|
+
* @param options - Optional `size` and `extension` (default: png, or gif for animated)
|
|
55
|
+
*/
|
|
56
|
+
avatarURL(options) {
|
|
57
|
+
if (!this.avatar) return null;
|
|
58
|
+
const ext = this.avatar.startsWith("a_") ? "gif" : options?.extension ?? "png";
|
|
59
|
+
const size = options?.size ? `?size=${options.size}` : "";
|
|
60
|
+
return `${CDN_URL}/avatars/${this.id}/${this.avatar}.${ext}${size}`;
|
|
61
|
+
}
|
|
62
|
+
/** Get the avatar URL, or the default avatar if none set. */
|
|
63
|
+
displayAvatarURL(options) {
|
|
64
|
+
return this.avatarURL(options) ?? `${CDN_URL}/avatars/0/0.png`;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Get the URL for this user's banner.
|
|
68
|
+
* Returns null if the user has no banner (only available when fetched from profile/member context).
|
|
69
|
+
*/
|
|
70
|
+
bannerURL(options) {
|
|
71
|
+
if (!this.banner) return null;
|
|
72
|
+
const ext = this.banner.startsWith("a_") ? "gif" : options?.extension ?? "png";
|
|
73
|
+
const size = options?.size ? `?size=${options.size}` : "";
|
|
74
|
+
return `${CDN_URL}/banners/${this.id}/${this.banner}.${ext}${size}`;
|
|
75
|
+
}
|
|
76
|
+
/** Returns a mention string (e.g. `<@123456>`). */
|
|
77
|
+
toString() {
|
|
78
|
+
return `<@${this.id}>`;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Create or get a DM channel with this user.
|
|
82
|
+
* Returns the DM channel; use {@link DMChannel.send} to send messages.
|
|
83
|
+
*/
|
|
84
|
+
async createDM() {
|
|
85
|
+
const { DMChannel: DMChannelClass } = await import("./Channel-YB3LWDHZ.mjs");
|
|
86
|
+
const data = await this.client.rest.post(Routes.userMeChannels(), {
|
|
87
|
+
body: { recipient_id: this.id },
|
|
88
|
+
auth: true
|
|
89
|
+
});
|
|
90
|
+
return new DMChannelClass(this.client, data);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Send a DM to this user.
|
|
94
|
+
* Convenience method that creates the DM channel and sends the message.
|
|
95
|
+
*/
|
|
96
|
+
async send(options) {
|
|
97
|
+
const dm = await this.createDM();
|
|
98
|
+
return dm.send(options);
|
|
99
|
+
}
|
|
100
|
+
};
|
|
101
|
+
|
|
102
|
+
// src/client/ClientUser.ts
|
|
103
|
+
import { Routes as Routes2 } from "@fluxerjs/types";
|
|
104
|
+
var ClientUser = class extends User {
|
|
105
|
+
constructor(client, data) {
|
|
106
|
+
super(client, { ...data });
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Fetch guilds the bot is a member of.
|
|
110
|
+
* @returns Array of Guild objects (cached in client.guilds)
|
|
111
|
+
*/
|
|
112
|
+
async fetchGuilds() {
|
|
113
|
+
const { Guild } = await import("./Guild-MDW7KF33.mjs");
|
|
114
|
+
const data = await this.client.rest.get(Routes2.currentUserGuilds());
|
|
115
|
+
const list = Array.isArray(data) ? data : data?.guilds ?? [];
|
|
116
|
+
const guilds = [];
|
|
117
|
+
for (const g of list) {
|
|
118
|
+
const guild = new Guild(this.client, g);
|
|
119
|
+
this.client.guilds.set(guild.id, guild);
|
|
120
|
+
guilds.push(guild);
|
|
121
|
+
}
|
|
122
|
+
return guilds;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Leave a guild. Requires the bot to be a member.
|
|
126
|
+
* @param guildId - The guild ID to leave
|
|
127
|
+
*/
|
|
128
|
+
async leaveGuild(guildId) {
|
|
129
|
+
await this.client.rest.delete(Routes2.leaveGuild(guildId), { auth: true });
|
|
130
|
+
this.client.guilds.delete(guildId);
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
|
|
134
|
+
export {
|
|
135
|
+
User,
|
|
136
|
+
ClientUser
|
|
137
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import {
|
|
2
|
+
GuildMember
|
|
3
|
+
} from "./chunk-FNFID6QB.mjs";
|
|
4
|
+
import {
|
|
5
|
+
CDN_URL
|
|
6
|
+
} from "./chunk-WZVY7DA6.mjs";
|
|
7
|
+
import {
|
|
8
|
+
Base
|
|
9
|
+
} from "./chunk-XNS4O6QJ.mjs";
|
|
10
|
+
|
|
11
|
+
// src/structures/Guild.ts
|
|
12
|
+
import { Collection } from "@fluxerjs/collection";
|
|
13
|
+
import { Routes } from "@fluxerjs/types";
|
|
14
|
+
var Guild = class extends Base {
|
|
15
|
+
client;
|
|
16
|
+
id;
|
|
17
|
+
name;
|
|
18
|
+
icon;
|
|
19
|
+
banner;
|
|
20
|
+
ownerId;
|
|
21
|
+
members = new Collection();
|
|
22
|
+
channels = new Collection();
|
|
23
|
+
constructor(client, data) {
|
|
24
|
+
super();
|
|
25
|
+
this.client = client;
|
|
26
|
+
this.id = data.id;
|
|
27
|
+
this.name = data.name;
|
|
28
|
+
this.icon = data.icon ?? null;
|
|
29
|
+
this.banner = data.banner ?? null;
|
|
30
|
+
this.ownerId = data.owner_id;
|
|
31
|
+
}
|
|
32
|
+
iconURL(options) {
|
|
33
|
+
if (!this.icon) return null;
|
|
34
|
+
const size = options?.size ? `?size=${options.size}` : "";
|
|
35
|
+
return `${CDN_URL}/icons/${this.id}/${this.icon}.png${size}`;
|
|
36
|
+
}
|
|
37
|
+
bannerURL(options) {
|
|
38
|
+
if (!this.banner) return null;
|
|
39
|
+
const size = options?.size ? `?size=${options.size}` : "";
|
|
40
|
+
return `${CDN_URL}/banners/${this.id}/${this.banner}.png${size}`;
|
|
41
|
+
}
|
|
42
|
+
/** Fetch a guild member by user ID. Returns null if the member is not in the guild. */
|
|
43
|
+
async fetchMember(userId) {
|
|
44
|
+
try {
|
|
45
|
+
const data = await this.client.rest.get(
|
|
46
|
+
Routes.guildMember(this.id, userId)
|
|
47
|
+
);
|
|
48
|
+
return new GuildMember(this.client, { ...data, guild_id: this.id }, this);
|
|
49
|
+
} catch {
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
/** Fetch all webhooks in this guild. Returned webhooks do not include the token (cannot send). */
|
|
54
|
+
async fetchWebhooks() {
|
|
55
|
+
const { Webhook } = await import("./Webhook-2RHBXH7R.mjs");
|
|
56
|
+
const data = await this.client.rest.get(Routes.guildWebhooks(this.id));
|
|
57
|
+
const list = Array.isArray(data) ? data : Object.values(data ?? {});
|
|
58
|
+
return list.map((w) => new Webhook(this.client, w));
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
|
|
62
|
+
export {
|
|
63
|
+
Guild
|
|
64
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import {
|
|
2
|
+
CDN_URL,
|
|
3
|
+
STATIC_CDN_URL
|
|
4
|
+
} from "./chunk-BKPVGBOT.mjs";
|
|
5
|
+
|
|
6
|
+
// src/util/cdn.ts
|
|
7
|
+
function getExtension(hash, options) {
|
|
8
|
+
const ext = options?.extension ?? "png";
|
|
9
|
+
if (hash?.startsWith("a_")) return "gif";
|
|
10
|
+
return ext;
|
|
11
|
+
}
|
|
12
|
+
function appendSize(options) {
|
|
13
|
+
return options?.size ? `?size=${options.size}` : "";
|
|
14
|
+
}
|
|
15
|
+
function cdnAvatarURL(userId, avatarHash, options) {
|
|
16
|
+
if (!avatarHash) return null;
|
|
17
|
+
const ext = getExtension(avatarHash, options);
|
|
18
|
+
const size = appendSize(options);
|
|
19
|
+
return `${CDN_URL}/avatars/${userId}/${avatarHash}.${ext}${size}`;
|
|
20
|
+
}
|
|
21
|
+
function cdnDisplayAvatarURL(userId, avatarHash, options) {
|
|
22
|
+
return cdnAvatarURL(userId, avatarHash, options) ?? cdnDefaultAvatarURL(userId);
|
|
23
|
+
}
|
|
24
|
+
function cdnBannerURL(resourceId, bannerHash, options) {
|
|
25
|
+
if (!bannerHash) return null;
|
|
26
|
+
const ext = getExtension(bannerHash, options);
|
|
27
|
+
const size = appendSize(options);
|
|
28
|
+
return `${CDN_URL}/banners/${resourceId}/${bannerHash}.${ext}${size}`;
|
|
29
|
+
}
|
|
30
|
+
function cdnMemberAvatarURL(guildId, userId, avatarHash, options) {
|
|
31
|
+
if (!avatarHash) return null;
|
|
32
|
+
const ext = getExtension(avatarHash, options);
|
|
33
|
+
const size = appendSize(options);
|
|
34
|
+
return `${CDN_URL}/guilds/${guildId}/users/${userId}/avatars/${avatarHash}.${ext}${size}`;
|
|
35
|
+
}
|
|
36
|
+
function cdnMemberBannerURL(guildId, userId, bannerHash, options) {
|
|
37
|
+
if (!bannerHash) return null;
|
|
38
|
+
const ext = getExtension(bannerHash, options);
|
|
39
|
+
const size = appendSize(options);
|
|
40
|
+
return `${CDN_URL}/guilds/${guildId}/users/${userId}/banners/${bannerHash}.${ext}${size}`;
|
|
41
|
+
}
|
|
42
|
+
function cdnDefaultAvatarURL(userIdOrIndex) {
|
|
43
|
+
const index = typeof userIdOrIndex === "string" ? Number(BigInt(userIdOrIndex) % 6n) : Math.abs(Math.floor(userIdOrIndex) % 6);
|
|
44
|
+
return `${STATIC_CDN_URL}/avatars/${index}.png`;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
export {
|
|
48
|
+
cdnAvatarURL,
|
|
49
|
+
cdnDisplayAvatarURL,
|
|
50
|
+
cdnBannerURL,
|
|
51
|
+
cdnMemberAvatarURL,
|
|
52
|
+
cdnMemberBannerURL,
|
|
53
|
+
cdnDefaultAvatarURL
|
|
54
|
+
};
|