revbot.js 0.0.13 → 0.0.15-build-test
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/chunk-35BYGFDX.js +25 -0
- package/dist/chunk-35BYGFDX.js.map +1 -0
- package/dist/chunk-3ANNOYXY.js +30 -0
- package/dist/chunk-3ANNOYXY.js.map +1 -0
- package/dist/chunk-3GLQHMWL.js +39 -0
- package/dist/chunk-3GLQHMWL.js.map +1 -0
- package/dist/chunk-43CUB3NP.js +30 -0
- package/dist/chunk-43CUB3NP.js.map +1 -0
- package/dist/chunk-55PAATU6.js +101 -0
- package/dist/chunk-55PAATU6.js.map +1 -0
- package/dist/chunk-5RK7FEID.js +47 -0
- package/dist/chunk-5RK7FEID.js.map +1 -0
- package/dist/chunk-6V6HPZ33.js +27 -0
- package/dist/chunk-6V6HPZ33.js.map +1 -0
- package/dist/chunk-6WJXGICC.js +25 -0
- package/dist/chunk-6WJXGICC.js.map +1 -0
- package/dist/chunk-7PA5MDKS.js +157 -0
- package/dist/chunk-7PA5MDKS.js.map +1 -0
- package/dist/chunk-7XUN3OQT.js +1 -0
- package/dist/chunk-7XUN3OQT.js.map +1 -0
- package/dist/chunk-AOKM5TCP.js +37 -0
- package/dist/chunk-AOKM5TCP.js.map +1 -0
- package/dist/chunk-BQS6ZLNY.js +80 -0
- package/dist/chunk-BQS6ZLNY.js.map +1 -0
- package/dist/chunk-CQ4AJZQD.js +51 -0
- package/dist/chunk-CQ4AJZQD.js.map +1 -0
- package/dist/chunk-DSM44DGO.js +156 -0
- package/dist/chunk-DSM44DGO.js.map +1 -0
- package/dist/chunk-E2P4PIDH.js +35 -0
- package/dist/chunk-E2P4PIDH.js.map +1 -0
- package/dist/chunk-EOZ7QHOH.js +151 -0
- package/dist/chunk-EOZ7QHOH.js.map +1 -0
- package/dist/chunk-FKNQEJE7.js +20 -0
- package/dist/chunk-FKNQEJE7.js.map +1 -0
- package/dist/chunk-G7DLVJKH.js +34 -0
- package/dist/chunk-G7DLVJKH.js.map +1 -0
- package/dist/chunk-GCIV7PRI.js +30 -0
- package/dist/chunk-GCIV7PRI.js.map +1 -0
- package/dist/chunk-GNQQG7EP.js +88 -0
- package/dist/chunk-GNQQG7EP.js.map +1 -0
- package/dist/chunk-H4SZEZP2.js +38 -0
- package/dist/chunk-H4SZEZP2.js.map +1 -0
- package/dist/chunk-HETUKFLM.js +7 -0
- package/dist/chunk-HETUKFLM.js.map +1 -0
- package/dist/chunk-HKLTWZSB.js +112 -0
- package/dist/chunk-HKLTWZSB.js.map +1 -0
- package/dist/chunk-ICANLKGX.js +97 -0
- package/dist/chunk-ICANLKGX.js.map +1 -0
- package/dist/chunk-J2RF7D67.js +105 -0
- package/dist/chunk-J2RF7D67.js.map +1 -0
- package/dist/chunk-K4VAG5ZU.js +16 -0
- package/dist/chunk-K4VAG5ZU.js.map +1 -0
- package/dist/chunk-LAL23AQK.js +105 -0
- package/dist/chunk-LAL23AQK.js.map +1 -0
- package/dist/chunk-LQUZ7Q7D.js +29 -0
- package/dist/chunk-LQUZ7Q7D.js.map +1 -0
- package/dist/chunk-LUDTY3LL.js +103 -0
- package/dist/chunk-LUDTY3LL.js.map +1 -0
- package/dist/chunk-LY7OFI25.js +26 -0
- package/dist/chunk-LY7OFI25.js.map +1 -0
- package/dist/chunk-MLKHJGSQ.js +68 -0
- package/dist/chunk-MLKHJGSQ.js.map +1 -0
- package/dist/chunk-MSJCRRXO.js +32 -0
- package/dist/chunk-MSJCRRXO.js.map +1 -0
- package/dist/chunk-O2IN5OZI.js +27 -0
- package/dist/chunk-O2IN5OZI.js.map +1 -0
- package/dist/chunk-OETI5C5L.js +30 -0
- package/dist/chunk-OETI5C5L.js.map +1 -0
- package/dist/chunk-OK227BBS.js +38 -0
- package/dist/chunk-OK227BBS.js.map +1 -0
- package/dist/chunk-R2PF552K.js +67 -0
- package/dist/chunk-R2PF552K.js.map +1 -0
- package/dist/chunk-RMACMP4R.js +26 -0
- package/dist/chunk-RMACMP4R.js.map +1 -0
- package/dist/chunk-SYXHGCHU.js +26 -0
- package/dist/chunk-SYXHGCHU.js.map +1 -0
- package/dist/chunk-VELIOWTX.js +25 -0
- package/dist/chunk-VELIOWTX.js.map +1 -0
- package/dist/chunk-VU3XNPDE.js +37 -0
- package/dist/chunk-VU3XNPDE.js.map +1 -0
- package/dist/chunk-W4XDXSOK.js +32 -0
- package/dist/chunk-W4XDXSOK.js.map +1 -0
- package/dist/chunk-WMWOEYVA.js +26 -0
- package/dist/chunk-WMWOEYVA.js.map +1 -0
- package/dist/chunk-X7VEORVS.js +43 -0
- package/dist/chunk-X7VEORVS.js.map +1 -0
- package/dist/chunk-XMS4UTPG.js +49 -0
- package/dist/chunk-XMS4UTPG.js.map +1 -0
- package/dist/chunk-XQEYCTYC.js +2601 -0
- package/dist/chunk-XQEYCTYC.js.map +1 -0
- package/dist/chunk-YLSAAPO4.js +79 -0
- package/dist/chunk-YLSAAPO4.js.map +1 -0
- package/dist/chunk-YXX4DJB3.js +27 -0
- package/dist/chunk-YXX4DJB3.js.map +1 -0
- package/dist/client/baseClient.cjs +799 -0
- package/dist/client/baseClient.cjs.map +1 -0
- package/dist/client/baseClient.d.cts +10 -0
- package/dist/client/baseClient.d.ts +10 -0
- package/dist/client/baseClient.js +18 -0
- package/dist/client/baseClient.js.map +1 -0
- package/dist/client/client.cjs +4286 -0
- package/dist/client/client.cjs.map +1 -0
- package/dist/client/client.d.cts +10 -0
- package/dist/client/client.d.ts +10 -0
- package/dist/client/client.js +53 -0
- package/dist/client/client.js.map +1 -0
- package/dist/client/events/bulkMessageDelete.cjs +104 -0
- package/dist/client/events/bulkMessageDelete.cjs.map +1 -0
- package/dist/client/events/bulkMessageDelete.d.cts +28 -0
- package/dist/client/events/bulkMessageDelete.d.ts +28 -0
- package/dist/client/events/bulkMessageDelete.js +11 -0
- package/dist/client/events/bulkMessageDelete.js.map +1 -0
- package/dist/client/events/channelCreate.cjs +136 -0
- package/dist/client/events/channelCreate.cjs.map +1 -0
- package/dist/client/events/channelCreate.d.cts +27 -0
- package/dist/client/events/channelCreate.d.ts +27 -0
- package/dist/client/events/channelCreate.js +11 -0
- package/dist/client/events/channelCreate.js.map +1 -0
- package/dist/client/events/channelDelete.cjs +113 -0
- package/dist/client/events/channelDelete.cjs.map +1 -0
- package/dist/client/events/channelDelete.d.cts +29 -0
- package/dist/client/events/channelDelete.d.ts +29 -0
- package/dist/client/events/channelDelete.js +11 -0
- package/dist/client/events/channelDelete.js.map +1 -0
- package/dist/client/events/channelGroupJoin.cjs +133 -0
- package/dist/client/events/channelGroupJoin.cjs.map +1 -0
- package/dist/client/events/channelGroupJoin.d.cts +30 -0
- package/dist/client/events/channelGroupJoin.d.ts +30 -0
- package/dist/client/events/channelGroupJoin.js +11 -0
- package/dist/client/events/channelGroupJoin.js.map +1 -0
- package/dist/client/events/channelGroupLeave.cjs +133 -0
- package/dist/client/events/channelGroupLeave.cjs.map +1 -0
- package/dist/client/events/channelGroupLeave.d.cts +30 -0
- package/dist/client/events/channelGroupLeave.d.ts +30 -0
- package/dist/client/events/channelGroupLeave.js +11 -0
- package/dist/client/events/channelGroupLeave.js.map +1 -0
- package/dist/client/events/channelStarttyping.cjs +110 -0
- package/dist/client/events/channelStarttyping.cjs.map +1 -0
- package/dist/client/events/channelStarttyping.d.cts +30 -0
- package/dist/client/events/channelStarttyping.d.ts +30 -0
- package/dist/client/events/channelStarttyping.js +11 -0
- package/dist/client/events/channelStarttyping.js.map +1 -0
- package/dist/client/events/channelStopTyping.cjs +110 -0
- package/dist/client/events/channelStopTyping.cjs.map +1 -0
- package/dist/client/events/channelStopTyping.d.cts +30 -0
- package/dist/client/events/channelStopTyping.d.ts +30 -0
- package/dist/client/events/channelStopTyping.js +11 -0
- package/dist/client/events/channelStopTyping.js.map +1 -0
- package/dist/client/events/channelUpdate.cjs +109 -0
- package/dist/client/events/channelUpdate.cjs.map +1 -0
- package/dist/client/events/channelUpdate.d.cts +31 -0
- package/dist/client/events/channelUpdate.d.ts +31 -0
- package/dist/client/events/channelUpdate.js +11 -0
- package/dist/client/events/channelUpdate.js.map +1 -0
- package/dist/client/events/event.cjs +124 -0
- package/dist/client/events/event.cjs.map +1 -0
- package/dist/client/events/event.d.cts +11 -0
- package/dist/client/events/event.d.ts +11 -0
- package/dist/client/events/event.js +13 -0
- package/dist/client/events/event.js.map +1 -0
- package/dist/client/events/eventManager.cjs +657 -0
- package/dist/client/events/eventManager.cjs.map +1 -0
- package/dist/client/events/eventManager.d.cts +10 -0
- package/dist/client/events/eventManager.d.ts +10 -0
- package/dist/client/events/eventManager.js +34 -0
- package/dist/client/events/eventManager.js.map +1 -0
- package/dist/client/events/index.cjs +629 -0
- package/dist/client/events/index.cjs.map +1 -0
- package/dist/client/events/index.d.cts +32 -0
- package/dist/client/events/index.d.ts +32 -0
- package/dist/client/events/index.js +96 -0
- package/dist/client/events/index.js.map +1 -0
- package/dist/client/events/message.cjs +136 -0
- package/dist/client/events/message.cjs.map +1 -0
- package/dist/client/events/message.d.cts +27 -0
- package/dist/client/events/message.d.ts +27 -0
- package/dist/client/events/message.js +11 -0
- package/dist/client/events/message.js.map +1 -0
- package/dist/client/events/messageDelete.cjs +114 -0
- package/dist/client/events/messageDelete.cjs.map +1 -0
- package/dist/client/events/messageDelete.d.cts +30 -0
- package/dist/client/events/messageDelete.d.ts +30 -0
- package/dist/client/events/messageDelete.js +11 -0
- package/dist/client/events/messageDelete.js.map +1 -0
- package/dist/client/events/messageReact.cjs +138 -0
- package/dist/client/events/messageReact.cjs.map +1 -0
- package/dist/client/events/messageReact.d.cts +40 -0
- package/dist/client/events/messageReact.d.ts +40 -0
- package/dist/client/events/messageReact.js +11 -0
- package/dist/client/events/messageReact.js.map +1 -0
- package/dist/client/events/messageUnreact.cjs +144 -0
- package/dist/client/events/messageUnreact.cjs.map +1 -0
- package/dist/client/events/messageUnreact.d.cts +28 -0
- package/dist/client/events/messageUnreact.d.ts +28 -0
- package/dist/client/events/messageUnreact.js +11 -0
- package/dist/client/events/messageUnreact.js.map +1 -0
- package/dist/client/events/messageUpdate.cjs +111 -0
- package/dist/client/events/messageUpdate.cjs.map +1 -0
- package/dist/client/events/messageUpdate.d.cts +31 -0
- package/dist/client/events/messageUpdate.d.ts +31 -0
- package/dist/client/events/messageUpdate.js +11 -0
- package/dist/client/events/messageUpdate.js.map +1 -0
- package/dist/client/events/serverCreate.cjs +131 -0
- package/dist/client/events/serverCreate.cjs.map +1 -0
- package/dist/client/events/serverCreate.d.cts +27 -0
- package/dist/client/events/serverCreate.d.ts +27 -0
- package/dist/client/events/serverCreate.js +11 -0
- package/dist/client/events/serverCreate.js.map +1 -0
- package/dist/client/events/serverDelete.cjs +110 -0
- package/dist/client/events/serverDelete.cjs.map +1 -0
- package/dist/client/events/serverDelete.d.cts +27 -0
- package/dist/client/events/serverDelete.d.ts +27 -0
- package/dist/client/events/serverDelete.js +11 -0
- package/dist/client/events/serverDelete.js.map +1 -0
- package/dist/client/events/serverMemberJoin.cjs +135 -0
- package/dist/client/events/serverMemberJoin.cjs.map +1 -0
- package/dist/client/events/serverMemberJoin.d.cts +30 -0
- package/dist/client/events/serverMemberJoin.d.ts +30 -0
- package/dist/client/events/serverMemberJoin.js +11 -0
- package/dist/client/events/serverMemberJoin.js.map +1 -0
- package/dist/client/events/serverMemberLeave.cjs +114 -0
- package/dist/client/events/serverMemberLeave.cjs.map +1 -0
- package/dist/client/events/serverMemberLeave.d.cts +30 -0
- package/dist/client/events/serverMemberLeave.d.ts +30 -0
- package/dist/client/events/serverMemberLeave.js +11 -0
- package/dist/client/events/serverMemberLeave.js.map +1 -0
- package/dist/client/events/serverMemberUpdate.cjs +135 -0
- package/dist/client/events/serverMemberUpdate.cjs.map +1 -0
- package/dist/client/events/serverMemberUpdate.d.cts +33 -0
- package/dist/client/events/serverMemberUpdate.d.ts +33 -0
- package/dist/client/events/serverMemberUpdate.js +11 -0
- package/dist/client/events/serverMemberUpdate.js.map +1 -0
- package/dist/client/events/serverRoleDelete.cjs +114 -0
- package/dist/client/events/serverRoleDelete.cjs.map +1 -0
- package/dist/client/events/serverRoleDelete.d.cts +30 -0
- package/dist/client/events/serverRoleDelete.d.ts +30 -0
- package/dist/client/events/serverRoleDelete.js +11 -0
- package/dist/client/events/serverRoleDelete.js.map +1 -0
- package/dist/client/events/serverRoleUpdate.cjs +111 -0
- package/dist/client/events/serverRoleUpdate.cjs.map +1 -0
- package/dist/client/events/serverRoleUpdate.d.cts +34 -0
- package/dist/client/events/serverRoleUpdate.d.ts +34 -0
- package/dist/client/events/serverRoleUpdate.js +11 -0
- package/dist/client/events/serverRoleUpdate.js.map +1 -0
- package/dist/client/events/serverupdate.cjs +109 -0
- package/dist/client/events/serverupdate.cjs.map +1 -0
- package/dist/client/events/serverupdate.d.cts +31 -0
- package/dist/client/events/serverupdate.d.ts +31 -0
- package/dist/client/events/serverupdate.js +11 -0
- package/dist/client/events/serverupdate.js.map +1 -0
- package/dist/client/events/userUpdate.cjs +109 -0
- package/dist/client/events/userUpdate.cjs.map +1 -0
- package/dist/client/events/userUpdate.d.cts +31 -0
- package/dist/client/events/userUpdate.d.ts +31 -0
- package/dist/client/events/userUpdate.js +11 -0
- package/dist/client/events/userUpdate.js.map +1 -0
- package/dist/client/webSocket.cjs +1018 -0
- package/dist/client/webSocket.cjs.map +1 -0
- package/dist/client/webSocket.d.cts +10 -0
- package/dist/client/webSocket.d.ts +10 -0
- package/dist/client/webSocket.js +53 -0
- package/dist/client/webSocket.js.map +1 -0
- package/dist/{index.d.mts → index-D44PqKGb.d.ts} +4 -242
- package/dist/index-XkxTx7UU.d.cts +2386 -0
- package/dist/{index.mjs → index.cjs} +112 -36
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +11 -0
- package/dist/index.d.ts +11 -2624
- package/dist/index.js +111 -4535
- package/dist/index.js.map +1 -0
- package/dist/managers/baseManager.cjs +63 -0
- package/dist/managers/baseManager.cjs.map +1 -0
- package/dist/managers/baseManager.d.cts +10 -0
- package/dist/managers/baseManager.d.ts +10 -0
- package/dist/managers/baseManager.js +8 -0
- package/dist/managers/baseManager.js.map +1 -0
- package/dist/managers/channelManager.cjs +1978 -0
- package/dist/managers/channelManager.cjs.map +1 -0
- package/dist/managers/channelManager.d.cts +10 -0
- package/dist/managers/channelManager.d.ts +10 -0
- package/dist/managers/channelManager.js +53 -0
- package/dist/managers/channelManager.js.map +1 -0
- package/dist/managers/index.cjs +2992 -0
- package/dist/managers/index.cjs.map +1 -0
- package/dist/managers/index.d.cts +10 -0
- package/dist/managers/index.d.ts +10 -0
- package/dist/managers/index.js +68 -0
- package/dist/managers/index.js.map +1 -0
- package/dist/managers/messageManager.cjs +1153 -0
- package/dist/managers/messageManager.cjs.map +1 -0
- package/dist/managers/messageManager.d.cts +10 -0
- package/dist/managers/messageManager.d.ts +10 -0
- package/dist/managers/messageManager.js +53 -0
- package/dist/managers/messageManager.js.map +1 -0
- package/dist/managers/roleManager.cjs +700 -0
- package/dist/managers/roleManager.cjs.map +1 -0
- package/dist/managers/roleManager.d.cts +10 -0
- package/dist/managers/roleManager.d.ts +10 -0
- package/dist/managers/roleManager.js +53 -0
- package/dist/managers/roleManager.js.map +1 -0
- package/dist/managers/serverChannelManager.cjs +1622 -0
- package/dist/managers/serverChannelManager.cjs.map +1 -0
- package/dist/managers/serverChannelManager.d.cts +10 -0
- package/dist/managers/serverChannelManager.d.ts +10 -0
- package/dist/managers/serverChannelManager.js +53 -0
- package/dist/managers/serverChannelManager.js.map +1 -0
- package/dist/managers/serverManager.cjs +2508 -0
- package/dist/managers/serverManager.cjs.map +1 -0
- package/dist/managers/serverManager.d.cts +10 -0
- package/dist/managers/serverManager.d.ts +10 -0
- package/dist/managers/serverManager.js +53 -0
- package/dist/managers/serverManager.js.map +1 -0
- package/dist/managers/serverMemberManager.cjs +1037 -0
- package/dist/managers/serverMemberManager.cjs.map +1 -0
- package/dist/managers/serverMemberManager.d.cts +10 -0
- package/dist/managers/serverMemberManager.d.ts +10 -0
- package/dist/managers/serverMemberManager.js +53 -0
- package/dist/managers/serverMemberManager.js.map +1 -0
- package/dist/managers/userManager.cjs +1103 -0
- package/dist/managers/userManager.cjs.map +1 -0
- package/dist/managers/userManager.d.cts +10 -0
- package/dist/managers/userManager.d.ts +10 -0
- package/dist/managers/userManager.js +53 -0
- package/dist/managers/userManager.js.map +1 -0
- package/dist/rest/CDNClient.cjs +608 -0
- package/dist/rest/CDNClient.cjs.map +1 -0
- package/dist/rest/CDNClient.d.cts +10 -0
- package/dist/rest/CDNClient.d.ts +10 -0
- package/dist/rest/CDNClient.js +16 -0
- package/dist/rest/CDNClient.js.map +1 -0
- package/dist/rest/restClient.cjs +652 -0
- package/dist/rest/restClient.cjs.map +1 -0
- package/dist/rest/restClient.d.cts +10 -0
- package/dist/rest/restClient.d.ts +10 -0
- package/dist/rest/restClient.js +16 -0
- package/dist/rest/restClient.js.map +1 -0
- package/dist/rest/restUtils/rateLimitQueue.cjs +138 -0
- package/dist/rest/restUtils/rateLimitQueue.cjs.map +1 -0
- package/dist/rest/restUtils/rateLimitQueue.d.cts +13 -0
- package/dist/rest/restUtils/rateLimitQueue.d.ts +13 -0
- package/dist/rest/restUtils/rateLimitQueue.js +8 -0
- package/dist/rest/restUtils/rateLimitQueue.js.map +1 -0
- package/dist/struct/attachment.cjs +263 -0
- package/dist/struct/attachment.cjs.map +1 -0
- package/dist/struct/attachment.d.cts +10 -0
- package/dist/struct/attachment.d.ts +10 -0
- package/dist/struct/attachment.js +10 -0
- package/dist/struct/attachment.js.map +1 -0
- package/dist/struct/base.cjs +234 -0
- package/dist/struct/base.cjs.map +1 -0
- package/dist/struct/base.d.cts +10 -0
- package/dist/struct/base.d.ts +10 -0
- package/dist/struct/base.js +9 -0
- package/dist/struct/base.js.map +1 -0
- package/dist/struct/category.cjs +532 -0
- package/dist/struct/category.cjs.map +1 -0
- package/dist/struct/category.d.cts +10 -0
- package/dist/struct/category.d.ts +10 -0
- package/dist/struct/category.js +53 -0
- package/dist/struct/category.js.map +1 -0
- package/dist/struct/channel.cjs +539 -0
- package/dist/struct/channel.cjs.map +1 -0
- package/dist/struct/channel.d.cts +10 -0
- package/dist/struct/channel.d.ts +10 -0
- package/dist/struct/channel.js +15 -0
- package/dist/struct/channel.js.map +1 -0
- package/dist/struct/clientUser.cjs +741 -0
- package/dist/struct/clientUser.cjs.map +1 -0
- package/dist/struct/clientUser.d.cts +10 -0
- package/dist/struct/clientUser.d.ts +10 -0
- package/dist/struct/clientUser.js +53 -0
- package/dist/struct/clientUser.js.map +1 -0
- package/dist/struct/dmChannel.cjs +1320 -0
- package/dist/struct/dmChannel.cjs.map +1 -0
- package/dist/struct/dmChannel.d.cts +10 -0
- package/dist/struct/dmChannel.d.ts +10 -0
- package/dist/struct/dmChannel.js +53 -0
- package/dist/struct/dmChannel.js.map +1 -0
- package/dist/struct/emoji.cjs +273 -0
- package/dist/struct/emoji.cjs.map +1 -0
- package/dist/struct/emoji.d.cts +10 -0
- package/dist/struct/emoji.d.ts +10 -0
- package/dist/struct/emoji.js +10 -0
- package/dist/struct/emoji.js.map +1 -0
- package/dist/struct/groupChannel.cjs +1519 -0
- package/dist/struct/groupChannel.cjs.map +1 -0
- package/dist/struct/groupChannel.d.cts +10 -0
- package/dist/struct/groupChannel.d.ts +10 -0
- package/dist/struct/groupChannel.js +53 -0
- package/dist/struct/groupChannel.js.map +1 -0
- package/dist/struct/index.cjs +2970 -0
- package/dist/struct/index.cjs.map +1 -0
- package/dist/struct/index.d.cts +10 -0
- package/dist/struct/index.d.ts +10 -0
- package/dist/struct/index.js +101 -0
- package/dist/struct/index.js.map +1 -0
- package/dist/struct/interfaces/baseChannel.cjs +19 -0
- package/dist/struct/interfaces/baseChannel.cjs.map +1 -0
- package/dist/struct/interfaces/baseChannel.d.cts +10 -0
- package/dist/struct/interfaces/baseChannel.d.ts +10 -0
- package/dist/struct/interfaces/baseChannel.js +1 -0
- package/dist/struct/interfaces/baseChannel.js.map +1 -0
- package/dist/struct/invite.cjs +293 -0
- package/dist/struct/invite.cjs.map +1 -0
- package/dist/struct/invite.d.cts +10 -0
- package/dist/struct/invite.d.ts +10 -0
- package/dist/struct/invite.js +10 -0
- package/dist/struct/invite.js.map +1 -0
- package/dist/struct/mentions.cjs +104 -0
- package/dist/struct/mentions.cjs.map +1 -0
- package/dist/struct/mentions.d.cts +10 -0
- package/dist/struct/mentions.d.ts +10 -0
- package/dist/struct/mentions.js +8 -0
- package/dist/struct/mentions.js.map +1 -0
- package/dist/struct/message.cjs +817 -0
- package/dist/struct/message.cjs.map +1 -0
- package/dist/struct/message.d.cts +10 -0
- package/dist/struct/message.d.ts +10 -0
- package/dist/struct/message.js +53 -0
- package/dist/struct/message.js.map +1 -0
- package/dist/struct/messageEmbed.cjs +205 -0
- package/dist/struct/messageEmbed.cjs.map +1 -0
- package/dist/struct/messageEmbed.d.cts +10 -0
- package/dist/struct/messageEmbed.d.ts +10 -0
- package/dist/struct/messageEmbed.js +8 -0
- package/dist/struct/messageEmbed.js.map +1 -0
- package/dist/struct/notesChannel.cjs +1327 -0
- package/dist/struct/notesChannel.cjs.map +1 -0
- package/dist/struct/notesChannel.d.cts +10 -0
- package/dist/struct/notesChannel.d.ts +10 -0
- package/dist/struct/notesChannel.js +53 -0
- package/dist/struct/notesChannel.js.map +1 -0
- package/dist/struct/presence.cjs +254 -0
- package/dist/struct/presence.cjs.map +1 -0
- package/dist/struct/presence.d.cts +10 -0
- package/dist/struct/presence.d.ts +10 -0
- package/dist/struct/presence.js +12 -0
- package/dist/struct/presence.js.map +1 -0
- package/dist/struct/role.cjs +572 -0
- package/dist/struct/role.cjs.map +1 -0
- package/dist/struct/role.d.cts +10 -0
- package/dist/struct/role.d.ts +10 -0
- package/dist/struct/role.js +53 -0
- package/dist/struct/role.js.map +1 -0
- package/dist/struct/server.cjs +2454 -0
- package/dist/struct/server.cjs.map +1 -0
- package/dist/struct/server.d.cts +10 -0
- package/dist/struct/server.d.ts +10 -0
- package/dist/struct/server.js +53 -0
- package/dist/struct/server.js.map +1 -0
- package/dist/struct/serverChannel.cjs +776 -0
- package/dist/struct/serverChannel.cjs.map +1 -0
- package/dist/struct/serverChannel.d.cts +10 -0
- package/dist/struct/serverChannel.d.ts +10 -0
- package/dist/struct/serverChannel.js +53 -0
- package/dist/struct/serverChannel.js.map +1 -0
- package/dist/struct/serverMember.cjs +711 -0
- package/dist/struct/serverMember.cjs.map +1 -0
- package/dist/struct/serverMember.d.cts +10 -0
- package/dist/struct/serverMember.d.ts +10 -0
- package/dist/struct/serverMember.js +53 -0
- package/dist/struct/serverMember.js.map +1 -0
- package/dist/struct/textChannel.cjs +1502 -0
- package/dist/struct/textChannel.cjs.map +1 -0
- package/dist/struct/textChannel.d.cts +10 -0
- package/dist/struct/textChannel.d.ts +10 -0
- package/dist/struct/textChannel.js +53 -0
- package/dist/struct/textChannel.js.map +1 -0
- package/dist/struct/user.cjs +690 -0
- package/dist/struct/user.cjs.map +1 -0
- package/dist/struct/user.d.cts +10 -0
- package/dist/struct/user.d.ts +10 -0
- package/dist/struct/user.js +53 -0
- package/dist/struct/user.js.map +1 -0
- package/dist/struct/voiceChannels.cjs +820 -0
- package/dist/struct/voiceChannels.cjs.map +1 -0
- package/dist/struct/voiceChannels.d.cts +10 -0
- package/dist/struct/voiceChannels.d.ts +10 -0
- package/dist/struct/voiceChannels.js +53 -0
- package/dist/struct/voiceChannels.js.map +1 -0
- package/dist/utils/UUID.cjs +75 -0
- package/dist/utils/UUID.cjs.map +1 -0
- package/dist/utils/UUID.d.cts +14 -0
- package/dist/utils/UUID.d.ts +14 -0
- package/dist/utils/UUID.js +8 -0
- package/dist/utils/UUID.js.map +1 -0
- package/dist/utils/badges.cjs +181 -0
- package/dist/utils/badges.cjs.map +1 -0
- package/dist/utils/badges.d.cts +25 -0
- package/dist/utils/badges.d.ts +25 -0
- package/dist/utils/badges.js +9 -0
- package/dist/utils/badges.js.map +1 -0
- package/dist/utils/bitField.cjs +161 -0
- package/dist/utils/bitField.cjs.map +1 -0
- package/dist/utils/bitField.d.cts +51 -0
- package/dist/utils/bitField.d.ts +51 -0
- package/dist/utils/bitField.js +8 -0
- package/dist/utils/bitField.js.map +1 -0
- package/dist/utils/constants.cjs +179 -0
- package/dist/utils/constants.cjs.map +1 -0
- package/dist/utils/constants.d.cts +10 -0
- package/dist/utils/constants.d.ts +10 -0
- package/dist/utils/constants.js +23 -0
- package/dist/utils/constants.js.map +1 -0
- package/dist/utils/index.cjs +489 -0
- package/dist/utils/index.cjs.map +1 -0
- package/dist/utils/index.d.cts +11 -0
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/index.js +47 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/permissions.cjs +314 -0
- package/dist/utils/permissions.cjs.map +1 -0
- package/dist/utils/permissions.d.cts +110 -0
- package/dist/utils/permissions.d.ts +110 -0
- package/dist/utils/permissions.js +17 -0
- package/dist/utils/permissions.js.map +1 -0
- package/dist/utils/types.cjs +19 -0
- package/dist/utils/types.cjs.map +1 -0
- package/dist/utils/types.d.cts +60 -0
- package/dist/utils/types.d.ts +60 -0
- package/dist/utils/types.js +1 -0
- package/dist/utils/types.js.map +1 -0
- package/package.json +16 -5
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/rest/restClient.ts","../../src/utils/UUID.ts","../../src/utils/bitField.ts","../../src/utils/constants.ts","../../src/utils/permissions.ts","../../src/utils/badges.ts","../../package.json","../../src/rest/restUtils/rateLimitQueue.ts"],"sourcesContent":["import axios, { AxiosError, AxiosRequestConfig, AxiosResponse } from \"axios\";\r\nimport { BaseClient } from \"../client/baseClient\";\r\nimport { apiUrl, DEFAULT_CLIENT_OPTIONS } from \"../utils\";\r\nimport { version } from \"../../package.json\";\r\nimport { RateLimitQueue } from \"./restUtils/rateLimitQueue\";\r\n\r\nexport class RestClient {\r\n private rateLimitQueue = new RateLimitQueue();\r\n constructor(private readonly client: BaseClient) {}\r\n\r\n /**\r\n * Helper function to handle API requests.\r\n * @param method The HTTP method (GET, POST, PATCH, PUT, DELETE).\r\n * @param url The URL for the request.\r\n * @param body The request body (if applicable).\r\n * @param query Query parameters (if applicable).\r\n * @returns The API response.\r\n */\r\n private async request<T>(\r\n method: \"GET\" | \"POST\" | \"PATCH\" | \"PUT\" | \"DELETE\",\r\n url: string,\r\n body?: any,\r\n query?: Record<string, string | number>,\r\n retry?: boolean,\r\n ): Promise<T> {\r\n try {\r\n if (!this.client.token) throw new Error(\"Token is required\");\r\n\r\n const authHeader = this.client.bot ? \"X-Bot-Token\" : \"X-Session-Token\";\r\n const config: AxiosRequestConfig & { url: string } = {\r\n ...{\r\n method,\r\n url: `${apiUrl}${url}`,\r\n params: query,\r\n data: body?.body,\r\n headers: {\r\n [authHeader]: this.client.token,\r\n \"User-Agent\": `RevBot.js/${version}`,\r\n },\r\n },\r\n url: `${apiUrl}${url}`,\r\n };\r\n\r\n // Use the rate limit queue for all requests\r\n const response: AxiosResponse<T> =\r\n await this.rateLimitQueue.request<T>(config);\r\n return response.data;\r\n } catch (error) {\r\n if (retry) throw typeof error;\r\n if (error instanceof AxiosError) {\r\n if (error.status && (error.status === 429 || error.status >= 500)) {\r\n return this.retryRequest<T>(0, method, url, body, query);\r\n }\r\n if (error.status) {\r\n throw new Error(\r\n `API call failed with status ${error.status}: ${error.response?.statusText}`,\r\n );\r\n }\r\n }\r\n throw new Error(\r\n `API call failed: ${error instanceof Error ? error.message : error}`,\r\n );\r\n }\r\n }\r\n\r\n private async retryRequest<T>(\r\n attempt: number = 0,\r\n method: \"GET\" | \"POST\" | \"PATCH\" | \"PUT\" | \"DELETE\",\r\n url: string,\r\n body?: any,\r\n query?: Record<string, string | number>,\r\n ): Promise<T> {\r\n if (attempt >= (this.client.options.rest?.retries ?? 3)) {\r\n throw new Error(\"Max retries reached\");\r\n }\r\n\r\n try {\r\n return await this.request<T>(method, url, body, query, true);\r\n } catch (error) {\r\n console.warn(`Attempt ${attempt + 1} failed:`, error);\r\n await new Promise((resolve) =>\r\n setTimeout(\r\n resolve,\r\n this.client.options.rest?.timeout ??\r\n DEFAULT_CLIENT_OPTIONS.rest?.timeout,\r\n ),\r\n );\r\n return this.retryRequest<T>(attempt + 1, method, url, body, query);\r\n }\r\n }\r\n\r\n /**\r\n * GET request.\r\n * @param url The URL for the request.\r\n * @param query Query parameters (if applicable).\r\n * @returns The API response.\r\n */\r\n async get<T>(\r\n url: string,\r\n query?: Record<string, string | number>,\r\n ): Promise<T> {\r\n return this.request<T>(\"GET\", url, undefined, query);\r\n }\r\n\r\n /**\r\n * POST request.\r\n * @param url The URL for the request.\r\n * @param body The request body.\r\n * @param query Query parameters (if applicable).\r\n * @returns The API response.\r\n */\r\n async post<T>(\r\n url: string,\r\n body: any,\r\n query?: Record<string, string | number>,\r\n ): Promise<T> {\r\n return this.request<T>(\"POST\", url, body, query);\r\n }\r\n\r\n /**\r\n * PATCH request.\r\n * @param url The URL for the request.\r\n * @param body The request body.\r\n * @param query Query parameters (if applicable).\r\n * @returns The API response.\r\n */\r\n async patch<T>(\r\n url: string,\r\n body: any,\r\n query?: Record<string, string | number>,\r\n ): Promise<T> {\r\n return this.request<T>(\"PATCH\", url, body, query);\r\n }\r\n\r\n /**\r\n * PUT request.\r\n * @param url The URL for the request.\r\n * @param body The request body.\r\n * @param query Query parameters (if applicable).\r\n * @returns The API response.\r\n */\r\n async put<T>(\r\n url: string,\r\n body?: any,\r\n query?: Record<string, string | number>,\r\n ): Promise<T> {\r\n return this.request<T>(\"PUT\", url, body, query);\r\n }\r\n\r\n /**\r\n * DELETE request.\r\n * @param url The URL for the request.\r\n * @param query Query parameters (if applicable).\r\n * @returns The API response.\r\n */\r\n async delete<T>(\r\n url: string,\r\n body?: any,\r\n query?: Record<string, string | number>,\r\n ): Promise<T> {\r\n return this.request<T>(\"DELETE\", url, body, query);\r\n }\r\n}\r\n","import { randomBytes } from \"crypto\";\r\n\r\nexport class UUID extends null {\r\n static readonly ENCODING = \"0123456789ABCDEFGHJKMNPQRSTVWXYZ\";\r\n static readonly ENCODING_LENGTH = UUID.ENCODING.length;\r\n static readonly RANDOM_LENGTH = 16;\r\n static readonly TIME_LENGTH = 10;\r\n static readonly TIME_MAX = Math.pow(2, 48) - 1;\r\n static get PROG(): number {\r\n return randomBytes(1).readUInt8() / 0xff;\r\n }\r\n\r\n private static time(now = Date.now()): string {\r\n let mod: number,\r\n result = \"\";\r\n\r\n for (let i = this.TIME_LENGTH; i > 0; i--) {\r\n mod = now % this.ENCODING_LENGTH;\r\n result = this.ENCODING.charAt(mod) + result;\r\n now = (now - mod) / this.ENCODING_LENGTH;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n private static hash(): string {\r\n let result = \"\";\r\n\r\n for (let i = this.RANDOM_LENGTH; i > 0; i--) {\r\n let random = Math.floor(this.PROG * this.ENCODING_LENGTH);\r\n\r\n if (random === this.ENCODING_LENGTH) {\r\n random = this.ENCODING_LENGTH - 1;\r\n }\r\n\r\n result = this.ENCODING.charAt(random) + result;\r\n }\r\n\r\n return result;\r\n }\r\n\r\n static generate(timestamp = Date.now()): string {\r\n return this.time(timestamp) + this.hash();\r\n }\r\n\r\n static timestampOf(id: string): Date {\r\n const timestamp = id\r\n .slice(0, this.TIME_LENGTH)\r\n .split(\"\")\r\n .reverse()\r\n .reduce((carry, char, index) => {\r\n const encodingIndex = this.ENCODING.indexOf(char);\r\n\r\n if (encodingIndex === -1) {\r\n throw new Error(\"invalid character found: \" + char);\r\n }\r\n\r\n return (carry += encodingIndex * Math.pow(this.ENCODING_LENGTH, index));\r\n }, 0);\r\n\r\n return new Date(timestamp);\r\n }\r\n}\r\n","const DEFAULT_BIT = 0;\r\n\r\nexport type BitFieldResolvable =\r\n | BitField\r\n | number\r\n | string\r\n | BitFieldResolvable[];\r\n\r\n/**\r\n * Represents a bitfield that can be used to manage flags or permissions.\r\n */\r\nexport class BitField {\r\n static FLAGS: Record<string, number> = {};\r\n bitfield = DEFAULT_BIT;\r\n constructor(bits: BitFieldResolvable = DEFAULT_BIT) {\r\n this.bitfield = this.self.resolve(bits);\r\n }\r\n\r\n /**\r\n * Resolves a bitfield or an array of bitfields into a single number.\r\n * @param bit The bitfield or array of bitfields to resolve.\r\n * @returns The resolved bitfield as a number.\r\n */\r\n static resolve(bit: BitFieldResolvable): number {\r\n if (bit instanceof BitField) return bit.bitfield;\r\n if (typeof bit === \"number\" && bit >= DEFAULT_BIT) return bit;\r\n if (Array.isArray(bit)) {\r\n return bit\r\n .map((p) => this.resolve(p))\r\n .reduce((prev, p) => prev | p, DEFAULT_BIT);\r\n }\r\n if (typeof this.FLAGS[bit] !== \"undefined\") return this.FLAGS[bit];\r\n throw new Error(\"BITFIELD_INVALID\");\r\n }\r\n /**\r\n * Returns the class that this instance belongs to.\r\n * @returns The class of the bitfield.\r\n */\r\n get self(): {\r\n FLAGS: Record<string, number>;\r\n resolve(bit: BitFieldResolvable): number;\r\n new (bits?: BitFieldResolvable): BitField;\r\n } {\r\n return this.constructor as unknown as {\r\n FLAGS: Record<string, number>;\r\n resolve(bit: BitFieldResolvable): number;\r\n new (bits?: BitFieldResolvable): BitField;\r\n };\r\n }\r\n\r\n /**\r\n * Checks if any of the bits in the bitfield are set.\r\n * @param bit The bitfield or array of bitfields to check.\r\n * @returns True if any bits are set, false otherwise.\r\n */\r\n any(bit: BitFieldResolvable): boolean {\r\n bit = this.self.resolve(bit);\r\n return (this.bitfield & bit) !== DEFAULT_BIT;\r\n }\r\n\r\n /**\r\n * checks if a specific permission is set.\r\n */\r\n has(bit: BitFieldResolvable): boolean {\r\n bit = this.self.resolve(bit);\r\n return (this.bitfield & bit) === bit;\r\n }\r\n\r\n /**\r\n * Returns an array of all the Permissions that are set in the bitfield.\r\n * @returns An array of flag names.\r\n */\r\n toArray(): string[] {\r\n return Object.keys(this.self.FLAGS).filter((bit) => this.has(bit));\r\n }\r\n\r\n add(...bits: BitFieldResolvable[]): this {\r\n let total = 0;\r\n\r\n for (const bit of bits) {\r\n total |= this.self.resolve(bit);\r\n }\r\n\r\n if (Object.isFrozen(this)) {\r\n return new this.self(this.bitfield | total) as this;\r\n }\r\n\r\n this.bitfield |= total;\r\n\r\n return this;\r\n }\r\n\r\n remove(...bits: BitFieldResolvable[]): this {\r\n let total = 0;\r\n\r\n for (const bit of bits) {\r\n total |= this.self.resolve(bit);\r\n }\r\n\r\n if (Object.isFrozen(this)) {\r\n return new this.self(this.bitfield & ~total) as this;\r\n }\r\n\r\n this.bitfield &= ~total;\r\n\r\n return this;\r\n }\r\n\r\n freeze(): Readonly<this> {\r\n return Object.freeze(this);\r\n }\r\n\r\n valueOf(): number {\r\n return this.bitfield;\r\n }\r\n\r\n /**\r\n *\r\n * @returns A record of all flags and their boolean values indicating whether they are set.\r\n */\r\n serialize(): Record<string, boolean> {\r\n const serialized: Record<string, boolean> = {};\r\n for (const [flag, bit] of Object.entries(this.self.FLAGS)) {\r\n serialized[flag] = this.has(bit);\r\n }\r\n return serialized;\r\n }\r\n\r\n *[Symbol.iterator](): Iterable<string> {\r\n yield* this.toArray();\r\n }\r\n}\r\n","import { clientOptions } from \"../client/baseClient\";\r\nimport { UUID } from \"./UUID\";\r\n\r\n/**\r\n * Enum representing the client events that can be emitted.\r\n */\r\nexport enum Events {\r\n CHANNEL_CREATE = \"channelCreate\",\r\n CHANNEL_DELETE = \"channelDelete\",\r\n CHANNEL_UPDATE = \"channelUpdate\",\r\n DEBUG = \"debug\",\r\n ERROR = \"error\",\r\n GROUP_JOIN = \"groupJoin\",\r\n GROUP_LEAVE = \"groupLeave\",\r\n MESSAGE = \"message\",\r\n MESSAGE_DELETE = \"messageDelete\",\r\n MESSAGE_DELETE_BULK = \"messageDeleteBulk\",\r\n MESSAGE_UPDATE = \"messageUpdate\",\r\n MESSAGE_REACT = \"messageReact\",\r\n MESSAGE_REACT_REMOVE = \"messageUnreact\",\r\n RAW = \"raw\",\r\n READY = \"ready\",\r\n ROLE_CREATE = \"roleCreate\",\r\n ROLE_DELETE = \"roleDelete\",\r\n ROLE_UPDATE = \"roleUpdate\",\r\n SERVER_CREATE = \"serverCreate\",\r\n SERVER_DELETE = \"serverDelete\",\r\n SERVER_MEMBER_JOIN = \"serverMemberJoin\",\r\n SERVER_MEMBER_LEAVE = \"serverMemberLeave\",\r\n SERVER_MEMBER_UPDATE = \"serverMemberUpdate\",\r\n SERVER_UPDATE = \"serverUpdate\",\r\n TYPING_START = \"typingStart\",\r\n TYPING_STOP = \"typingStop\",\r\n USER_UPDATE = \"userUpdate\",\r\n}\r\n\r\n/**\r\n * Enum representing the WebSocket events used for communication.\r\n */\r\nexport enum WSEvents {\r\n AUTHENTICATE = \"Authenticate\",\r\n AUTHENTICATED = \"Authenticated\",\r\n BEGIN_TYPING = \"BeginTyping\",\r\n BULK = \"Bulk\",\r\n CHANNEL_ACK = \"ChannelAck\",\r\n CHANNEL_CREATE = \"ChannelCreate\",\r\n CHANNEL_DELETE = \"ChannelDelete\",\r\n CHANNEL_GROUP_JOIN = \"ChannelGroupJoin\",\r\n CHANNEL_GROUP_LEAVE = \"ChannelGroupLeave\",\r\n CHANNEL_START_TYPING = \"ChannelStartTyping\",\r\n CHANNEL_STOP_TYPING = \"ChannelStopTyping\",\r\n CHANNEL_UPDATE = \"ChannelUpdate\",\r\n END_TYPING = \"EndTyping\",\r\n ERROR = \"Error\",\r\n MESSAGE = \"Message\",\r\n MESSAGE_BULK_DELETE = \"BulkMessageDelete\",\r\n MESSAGE_DELETE = \"MessageDelete\",\r\n MESSAGE_UPDATE = \"MessageUpdate\",\r\n PING = \"Ping\",\r\n PONG = \"Pong\",\r\n READY = \"Ready\",\r\n SERVER_DELETE = \"ServerDelete\",\r\n SERVER_MEMBER_JOIN = \"ServerMemberJoin\",\r\n SERVER_MEMBER_LEAVE = \"ServerMemberLeave\",\r\n SERVER_MEMBER_UPDATE = \"ServerMemberUpdate\",\r\n SERVER_ROLE_DELETE = \"ServerRoleDelete\",\r\n SERVER_ROLE_UPDATE = \"ServerRoleUpdate\",\r\n SERVER_UPDATE = \"ServerUpdate\",\r\n USER_RELATIONSHIP = \"UserRelationship\",\r\n USER_UPDATE = \"UserUpdate\",\r\n}\r\n\r\n/**\r\n * Enum representing the types of channels supported by the client.\r\n */\r\nexport enum ChannelTypes {\r\n DM = \"DM\",\r\n GROUP = \"GROUP\",\r\n TEXT = \"TEXT\",\r\n VOICE = \"VOICE\",\r\n NOTES = \"NOTES\",\r\n}\r\n\r\n/**\r\n * The default options for configuring the client.\r\n */\r\nexport const DEFAULT_CLIENT_OPTIONS: clientOptions = {\r\n fetchMembers: true,\r\n rest: {\r\n timeout: 15000,\r\n retries: 3,\r\n },\r\n ws: {\r\n heartbeatInterval: 30000,\r\n reconnect: true,\r\n },\r\n};\r\n\r\n/** The WebSocket URL for connecting to the Revolt API. */\r\nexport const wsUrl = \"wss://ws.revolt.chat?version=1&format=json\";\r\n\r\n/** The base API URL for interacting with the Revolt API. */\r\nexport const apiUrl = \"https://api.revolt.chat\";\r\n\r\n/** The base URL for the Revolt CDN, used for serving static assets. */\r\nexport const cdnUrl = \"https://cdn.revoltusercontent.com\";\r\n\r\n/** The system user ID used for identifying system messages. */\r\nexport const SYSTEM_USER_ID = \"0\".repeat(UUID.TIME_LENGTH + UUID.RANDOM_LENGTH);\r\n","import { BitField } from \"./bitField\";\r\n\r\nexport type ChannelPermissionsString = keyof typeof ChannelPermissions.FLAGS;\r\nexport type UserPermissionsString = keyof typeof UserPermissions.FLAGS;\r\nexport type ServerPermissionsString = keyof typeof ServerPermissions.FLAGS;\r\nexport type ChannelPermissionsResolvable =\r\n | number\r\n | ChannelPermissionsString\r\n | ChannelPermissions\r\n | ChannelPermissionsResolvable[];\r\nexport type UserPermissionsResolvable =\r\n | number\r\n | UserPermissionsString\r\n | UserPermissions\r\n | UserPermissionsResolvable[];\r\nexport type ServerPermissionsResolvable =\r\n | number\r\n | ServerPermissionsString\r\n | ServerPermissions\r\n | ServerPermissionsResolvable[];\r\n\r\nexport declare interface ServerPermissions {\r\n serialize(): Record<ServerPermissionsString, boolean>;\r\n any(bit: ServerPermissionsResolvable): boolean;\r\n add(...bits: ServerPermissionsResolvable[]): this;\r\n remove(...bits: ServerPermissionsResolvable[]): this;\r\n has(bit: ServerPermissionsResolvable): boolean;\r\n}\r\n\r\nexport declare interface ChannelPermissions {\r\n serialize(): Record<ChannelPermissionsString, boolean>;\r\n any(bit: ChannelPermissionsResolvable): boolean;\r\n add(...bits: ChannelPermissionsResolvable[]): this;\r\n remove(...bits: ChannelPermissionsResolvable[]): this;\r\n has(bit: ChannelPermissionsResolvable): boolean;\r\n}\r\n\r\nexport declare interface UserPermissions {\r\n serialize(): Record<UserPermissionsString, boolean>;\r\n any(bit: UserPermissionsResolvable): boolean;\r\n add(...bits: UserPermissionsResolvable[]): this;\r\n remove(...bits: UserPermissionsResolvable[]): this;\r\n has(bit: UserPermissionsResolvable): boolean;\r\n}\r\n\r\nexport class ChannelPermissions extends BitField {\r\n static readonly FLAGS = {\r\n VIEW_CHANNEL: 1 ** 0,\r\n SEND_MESSAGE: 1 ** 22,\r\n MANAGE_MESSAGE: 1 ** 2,\r\n MANAGE_CHANNEL: 1 ** 3,\r\n VOICE_CALL: 1 ** 4,\r\n INVITE_OTHERS: 1 ** 5,\r\n EMBED_LINKS: 1 ** 6,\r\n UPLOAD_FILES: 1 ** 7,\r\n } as const;\r\n\r\n constructor(bits?: ChannelPermissionsResolvable) {\r\n super(bits);\r\n }\r\n\r\n static resolve(bit: ChannelPermissionsResolvable): number {\r\n return super.resolve(bit);\r\n }\r\n}\r\n\r\nexport class UserPermissions extends BitField {\r\n static readonly FLAGS = {\r\n ACCESS: 1 ** 0,\r\n VIEW_PROFILE: 1 ** 1,\r\n SEND_MESSAGES: 1 ** 2,\r\n INVITE: 1 ** 3,\r\n } as const;\r\n\r\n constructor(bits?: UserPermissionsResolvable) {\r\n super(bits);\r\n }\r\n\r\n static resolve(bit: UserPermissionsResolvable): number {\r\n return super.resolve(bit);\r\n }\r\n}\r\n\r\nexport class ServerPermissions extends BitField {\r\n static readonly FLAGS = {\r\n VIEW_SERVER: 1 ** 0,\r\n MANAGE_ROLES: 1 ** 1,\r\n MANAGE_CHANNELS: 1 ** 2,\r\n MANAGE_SERVER: 1 ** 3,\r\n KICK_MEMBERS: 1 ** 4,\r\n BAN_MEMBERS: 1 ** 5,\r\n CHANGE_NICKNAME: 1 ** 12,\r\n MANAGE_NICKNAMES: 1 ** 13,\r\n CHANGE_AVATAR: 1 ** 14,\r\n REMOVE_AVATARS: 1 ** 15,\r\n } as const;\r\n\r\n constructor(bits?: ServerPermissionsResolvable) {\r\n super(bits);\r\n }\r\n\r\n static resolve(bit: ServerPermissionsResolvable): number {\r\n return super.resolve(bit);\r\n }\r\n}\r\n\r\nexport class FullPermissions extends BitField {\r\n static readonly FLAGS = {\r\n // * Generic permissions\r\n /// Manage the channel or channels on the server\r\n ManageChannel: 2 ** 0,\r\n /// Manage the server\r\n ManageServer: 2 ** 1,\r\n /// Manage permissions on servers or channels\r\n ManagePermissions: 2 ** 2,\r\n /// Manage roles on server\r\n ManageRole: 2 ** 3,\r\n /// Manage server customisation (includes emoji)\r\n ManageCustomisation: 2 ** 4,\r\n\r\n // * Member permissions\r\n /// Kick other members below their ranking\r\n KickMembers: 2 ** 6,\r\n /// Ban other members below their ranking\r\n BanMembers: 2 ** 7,\r\n /// Timeout other members below their ranking\r\n TimeoutMembers: 2 ** 8,\r\n /// Assign roles to members below their ranking\r\n AssignRoles: 2 ** 9,\r\n /// Change own nickname\r\n ChangeNickname: 2 ** 10,\r\n /// Change or remove other's nicknames below their ranking\r\n ManageNicknames: 2 ** 11,\r\n /// Change own avatar\r\n ChangeAvatar: 2 ** 12,\r\n /// Remove other's avatars below their ranking\r\n RemoveAvatars: 2 ** 13,\r\n\r\n // * Channel permissions\r\n /// View a channel\r\n ViewChannel: 2 ** 20,\r\n /// Read a channel's past message history\r\n ReadMessageHistory: 2 ** 21,\r\n /// Send a message in a channel\r\n SendMessage: 2 ** 22,\r\n /// Delete messages in a channel\r\n ManageMessages: 2 ** 23,\r\n /// Manage webhook entries on a channel\r\n ManageWebhooks: 2 ** 24,\r\n /// Create invites to this channel\r\n InviteOthers: 2 ** 25,\r\n /// Send embedded content in this channel\r\n SendEmbeds: 2 ** 26,\r\n /// Send attachments and media in this channel\r\n UploadFiles: 2 ** 27,\r\n /// Masquerade messages using custom nickname and avatar\r\n Masquerade: 2 ** 28,\r\n /// React to messages with emoji\r\n React: 2 ** 29,\r\n\r\n // * Voice permissions\r\n /// Connect to a voice channel\r\n Connect: 2 ** 30,\r\n /// Speak in a voice call\r\n Speak: 2 ** 31,\r\n /// Share video in a voice call\r\n Video: 2 ** 32,\r\n /// Mute other members with lower ranking in a voice call\r\n MuteMembers: 2 ** 33,\r\n /// Deafen other members with lower ranking in a voice call\r\n DeafenMembers: 2 ** 34,\r\n /// Move members between voice channels\r\n MoveMembers: 2 ** 35,\r\n\r\n // * Mention permissions\r\n /// Mention @everyone or @online\r\n MentionEveryone: 2 ** 37,\r\n /// Mention a role\r\n MentionRoles: 2 ** 38,\r\n\r\n // * Grant all permissions\r\n /// Safely grant all permissions\r\n GrantAll: 0x000f_ffff_ffff_ffff,\r\n } as const;\r\n\r\n constructor(\r\n bits?:\r\n | number\r\n | string\r\n | FullPermissions\r\n | Array<number | string | FullPermissions>,\r\n ) {\r\n super(bits);\r\n }\r\n\r\n static resolve(bit: number | string | FullPermissions): number {\r\n return super.resolve(bit);\r\n }\r\n}\r\n\r\nexport const DEFAULT_PERMISSION_DM = new ChannelPermissions([\r\n \"VIEW_CHANNEL\",\r\n \"VIEW_CHANNEL\",\r\n \"MANAGE_CHANNEL\",\r\n \"VOICE_CALL\",\r\n \"EMBED_LINKS\",\r\n \"UPLOAD_FILES\",\r\n]).freeze();\r\n","import { BitField } from \"./bitField\";\r\n\r\nexport type BadgeString = keyof typeof Badges.FLAGS;\r\nexport type BadgesResolvable =\r\n | number\r\n | BadgeString\r\n | Badges\r\n | BadgesResolvable[];\r\n\r\nexport declare interface Badges {\r\n serialize(): Record<BadgeString, boolean>;\r\n any(bit: BadgesResolvable): boolean;\r\n add(...bits: BadgesResolvable[]): this;\r\n remove(...bits: BadgesResolvable[]): this;\r\n has(bit: BadgesResolvable): boolean;\r\n}\r\n\r\nexport class Badges extends BitField {\r\n static readonly FLAGS = {\r\n DEVELOPER: 1 << 0,\r\n TRANSLATOR: 1 << 1,\r\n SUPPORTER: 1 << 2,\r\n RESPONSIBLE_DISCLOSURE: 1 << 3,\r\n REVOLT_TEAM: 1 << 4,\r\n EARLY_ADOPTER: 1 << 8,\r\n } as const;\r\n\r\n constructor(bits?: BadgesResolvable) {\r\n super(bits);\r\n }\r\n\r\n static resolve(bit: BadgesResolvable): number {\r\n return super.resolve(bit);\r\n }\r\n}\r\n","{\r\n \"name\": \"revbot.js\",\r\n \"version\": \"0.0.15-build-test\",\r\n \"description\": \"A Revolt bot client used to interact with the revolt api for Node.js, written in TypeScript.\",\r\n \"main\": \"./dist/index.cjs\",\r\n \"module\": \"./dist/index.js\",\r\n \"types\": \"./dist/index.d.ts\",\r\n \"type\": \"module\",\r\n \"files\": [\r\n \"dist/**/*\"\r\n ],\r\n \"exports\": {\r\n \"require\": {\r\n \"require\": \"./dist/index.cjs\",\r\n \"types\": \"./dist/index.d.cts\"\r\n },\r\n \"import\": {\r\n \"types\": \"./dist/index.d.ts\",\r\n \"import\": \"./dist/index.js\"\r\n }\r\n },\r\n \"engines\": {\r\n \"node\": \">=21.0.0\"\r\n },\r\n \"repository\": \"https://github.com/Jade3375/revbot.js\",\r\n \"keywords\": [\r\n \"revoltjs\",\r\n \"revolt.js\",\r\n \"bot\",\r\n \"client\",\r\n \"revbot\",\r\n \"typescript\"\r\n ],\r\n \"homepage\": \"https://jade3375.github.io/revbot.js/\",\r\n \"author\": \"Jade3375\",\r\n \"license\": \"MIT\",\r\n \"packageManager\": \"yarn@4.9.1\",\r\n \"devDependencies\": {\r\n \"@mxssfd/typedoc-theme\": \"^1.1.7\",\r\n \"@types/node\": \"^22.15.2\",\r\n \"@types/ws\": \"^8.18.1\",\r\n \"eslint-config-prettier\": \"^10.1.2\",\r\n \"prettier\": \"^3.5.3\",\r\n \"rimraf\": \"^6.0.1\",\r\n \"tsup\": \"^8.4.0\",\r\n \"typedoc\": \"^0.28.3\",\r\n \"typedoc-plugin-extras\": \"^4.0.0\",\r\n \"typedoc-plugin-mdn-links\": \"^5.0.1\",\r\n \"typedoc-plugin-merge-modules\": \"^7.0.0\",\r\n \"typescript\": \"^5.8.3\"\r\n },\r\n \"dependencies\": {\r\n \"axios\": \"^1.9.0\",\r\n \"form-data\": \"^4.0.2\",\r\n \"revolt-api\": \"^0.8.6-1\",\r\n \"ws\": \"^8.18.1\"\r\n },\r\n \"scripts\": {\r\n \"lint\": \"eslint . --ext .ts --fix\",\r\n \"build\": \"yarn clean && yarn tsup ./src/* --format cjs,esm --clean --dts --sourcemap\",\r\n \"start\": \"yarn build && yarn node --enable-source-maps dist/index.js\",\r\n \"testClient\": \"yarn test:build && yarn node --enable-source-maps dist/test.js\",\r\n \"clean\": \"rimraf dist\",\r\n \"test:docs\": \"rimraf docs && yarn typedoc --options static/typedoc.json\",\r\n \"test:build\": \"yarn clean && tsc -p tsconfig.json\"\r\n }\r\n}\r\n","import axios, { AxiosRequestConfig, AxiosResponse } from \"axios\";\r\n\r\ninterface RateLimitInfo {\r\n limit: number;\r\n remaining: number;\r\n resetAfter: number; // epoch ms\r\n bucket: string;\r\n resetIn: number; // ms until reset\r\n}\r\n\r\ninterface BucketState extends RateLimitInfo {\r\n queue: Array<() => void>;\r\n resetTimeout?: NodeJS.Timeout;\r\n lastPath: string;\r\n}\r\n\r\nexport class RateLimitQueue {\r\n private bucketMap: Map<string, BucketState> = new Map();\r\n private pathToBucket: Map<string, string> = new Map();\r\n\r\n async request<T = any>(\r\n config: AxiosRequestConfig & { url: string },\r\n ): Promise<AxiosResponse<T>> {\r\n const path = config.url!;\r\n const bucketId = this.pathToBucket.get(path);\r\n let bucket = bucketId ? this.bucketMap.get(bucketId) : undefined;\r\n\r\n if (bucket && bucket.remaining <= 0 && Date.now() < bucket.resetAfter) {\r\n // Rate limited, queue the request\r\n return new Promise<AxiosResponse<T>>((resolve, reject) => {\r\n bucket!.queue.push(async () => {\r\n try {\r\n const res = await this._doRequest<T>(config, path);\r\n resolve(res);\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n });\r\n } else {\r\n // Not rate limited, do the request\r\n return this._doRequest<T>(config, path);\r\n }\r\n }\r\n\r\n private async _doRequest<T>(\r\n config: AxiosRequestConfig,\r\n path: string,\r\n ): Promise<AxiosResponse<T>> {\r\n const response = await axios(config);\r\n this._updateRateLimit(path, response);\r\n return response;\r\n }\r\n\r\n private _updateRateLimit(path: string, response: AxiosResponse) {\r\n const headers = response.headers;\r\n const limit = parseInt(headers[\"x-ratelimit-limit\"]);\r\n const remaining = parseInt(headers[\"x-ratelimit-remaining\"]);\r\n const resetAfter =\r\n parseFloat(headers[\"x-ratelimit-reset-after\"]) * 1000 + Date.now();\r\n const bucket = headers[\"x-ratelimit-bucket\"];\r\n const resetIn = parseInt(headers[\"x-ratelimit-reset-after\"]);\r\n\r\n if (!bucket) return;\r\n this.pathToBucket.set(path, bucket);\r\n let state = this.bucketMap.get(bucket);\r\n if (!state) {\r\n state = {\r\n limit,\r\n remaining,\r\n resetAfter,\r\n bucket,\r\n resetIn,\r\n queue: [],\r\n lastPath: path,\r\n };\r\n this.bucketMap.set(bucket, state);\r\n } else {\r\n state.limit = limit;\r\n state.remaining = remaining;\r\n state.resetAfter = resetAfter;\r\n state.lastPath = path;\r\n }\r\n\r\n if (remaining <= 0) {\r\n if (state.resetTimeout) clearTimeout(state.resetTimeout);\r\n const delay = resetIn;\r\n state.resetTimeout = setTimeout(() => {\r\n state.remaining = state.limit;\r\n state.resetTimeout = undefined;\r\n // Process queued requests\r\n while (state.queue.length > 0 && state.remaining > 0) {\r\n const fn = state.queue.shift();\r\n if (fn) {\r\n state.remaining--;\r\n fn();\r\n }\r\n }\r\n }, delay);\r\n }\r\n }\r\n}\r\n"],"mappings":"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","names":["import_axios","axios","_a","_b"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { a5 as RestClient } from '../index-XkxTx7UU.cjs';
|
|
2
|
+
import 'revolt-api';
|
|
3
|
+
import '../utils/badges.cjs';
|
|
4
|
+
import '../utils/bitField.cjs';
|
|
5
|
+
import '../utils/permissions.cjs';
|
|
6
|
+
import '../utils/types.cjs';
|
|
7
|
+
import 'node:buffer';
|
|
8
|
+
import 'stream';
|
|
9
|
+
import 'node:events';
|
|
10
|
+
import 'form-data';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { a5 as RestClient } from '../index-D44PqKGb.js';
|
|
2
|
+
import 'revolt-api';
|
|
3
|
+
import '../utils/badges.js';
|
|
4
|
+
import '../utils/bitField.js';
|
|
5
|
+
import '../utils/permissions.js';
|
|
6
|
+
import '../utils/types.js';
|
|
7
|
+
import 'node:buffer';
|
|
8
|
+
import 'stream';
|
|
9
|
+
import 'node:events';
|
|
10
|
+
import 'form-data';
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import {
|
|
2
|
+
RestClient
|
|
3
|
+
} from "../chunk-DSM44DGO.js";
|
|
4
|
+
import "../chunk-HETUKFLM.js";
|
|
5
|
+
import "../chunk-GNQQG7EP.js";
|
|
6
|
+
import "../chunk-7XUN3OQT.js";
|
|
7
|
+
import "../chunk-7PA5MDKS.js";
|
|
8
|
+
import "../chunk-LY7OFI25.js";
|
|
9
|
+
import "../chunk-LUDTY3LL.js";
|
|
10
|
+
import "../chunk-CQ4AJZQD.js";
|
|
11
|
+
import "../chunk-LAL23AQK.js";
|
|
12
|
+
import "../chunk-ICANLKGX.js";
|
|
13
|
+
export {
|
|
14
|
+
RestClient
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=restClient.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __create = Object.create;
|
|
3
|
+
var __defProp = Object.defineProperty;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __copyProps = (to, from, except, desc) => {
|
|
13
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(from))
|
|
15
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
16
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return to;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
|
|
21
|
+
// If the importer is in node compatibility mode or this is not an ESM
|
|
22
|
+
// file that has been converted to a CommonJS file using a Babel-
|
|
23
|
+
// compatible transform (i.e. "__esModule" has not been set), then set
|
|
24
|
+
// "default" to the CommonJS "module.exports" for node compatibility.
|
|
25
|
+
isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
|
|
26
|
+
mod
|
|
27
|
+
));
|
|
28
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
29
|
+
var __async = (__this, __arguments, generator) => {
|
|
30
|
+
return new Promise((resolve, reject) => {
|
|
31
|
+
var fulfilled = (value) => {
|
|
32
|
+
try {
|
|
33
|
+
step(generator.next(value));
|
|
34
|
+
} catch (e) {
|
|
35
|
+
reject(e);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
var rejected = (value) => {
|
|
39
|
+
try {
|
|
40
|
+
step(generator.throw(value));
|
|
41
|
+
} catch (e) {
|
|
42
|
+
reject(e);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
var step = (x) => x.done ? resolve(x.value) : Promise.resolve(x.value).then(fulfilled, rejected);
|
|
46
|
+
step((generator = generator.apply(__this, __arguments)).next());
|
|
47
|
+
});
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
// src/rest/restUtils/rateLimitQueue.ts
|
|
51
|
+
var rateLimitQueue_exports = {};
|
|
52
|
+
__export(rateLimitQueue_exports, {
|
|
53
|
+
RateLimitQueue: () => RateLimitQueue
|
|
54
|
+
});
|
|
55
|
+
module.exports = __toCommonJS(rateLimitQueue_exports);
|
|
56
|
+
var import_axios = __toESM(require("axios"), 1);
|
|
57
|
+
var RateLimitQueue = class {
|
|
58
|
+
constructor() {
|
|
59
|
+
this.bucketMap = /* @__PURE__ */ new Map();
|
|
60
|
+
this.pathToBucket = /* @__PURE__ */ new Map();
|
|
61
|
+
}
|
|
62
|
+
request(config) {
|
|
63
|
+
return __async(this, null, function* () {
|
|
64
|
+
const path = config.url;
|
|
65
|
+
const bucketId = this.pathToBucket.get(path);
|
|
66
|
+
let bucket = bucketId ? this.bucketMap.get(bucketId) : void 0;
|
|
67
|
+
if (bucket && bucket.remaining <= 0 && Date.now() < bucket.resetAfter) {
|
|
68
|
+
return new Promise((resolve, reject) => {
|
|
69
|
+
bucket.queue.push(() => __async(this, null, function* () {
|
|
70
|
+
try {
|
|
71
|
+
const res = yield this._doRequest(config, path);
|
|
72
|
+
resolve(res);
|
|
73
|
+
} catch (e) {
|
|
74
|
+
reject(e);
|
|
75
|
+
}
|
|
76
|
+
}));
|
|
77
|
+
});
|
|
78
|
+
} else {
|
|
79
|
+
return this._doRequest(config, path);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
_doRequest(config, path) {
|
|
84
|
+
return __async(this, null, function* () {
|
|
85
|
+
const response = yield (0, import_axios.default)(config);
|
|
86
|
+
this._updateRateLimit(path, response);
|
|
87
|
+
return response;
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
_updateRateLimit(path, response) {
|
|
91
|
+
const headers = response.headers;
|
|
92
|
+
const limit = parseInt(headers["x-ratelimit-limit"]);
|
|
93
|
+
const remaining = parseInt(headers["x-ratelimit-remaining"]);
|
|
94
|
+
const resetAfter = parseFloat(headers["x-ratelimit-reset-after"]) * 1e3 + Date.now();
|
|
95
|
+
const bucket = headers["x-ratelimit-bucket"];
|
|
96
|
+
const resetIn = parseInt(headers["x-ratelimit-reset-after"]);
|
|
97
|
+
if (!bucket) return;
|
|
98
|
+
this.pathToBucket.set(path, bucket);
|
|
99
|
+
let state = this.bucketMap.get(bucket);
|
|
100
|
+
if (!state) {
|
|
101
|
+
state = {
|
|
102
|
+
limit,
|
|
103
|
+
remaining,
|
|
104
|
+
resetAfter,
|
|
105
|
+
bucket,
|
|
106
|
+
resetIn,
|
|
107
|
+
queue: [],
|
|
108
|
+
lastPath: path
|
|
109
|
+
};
|
|
110
|
+
this.bucketMap.set(bucket, state);
|
|
111
|
+
} else {
|
|
112
|
+
state.limit = limit;
|
|
113
|
+
state.remaining = remaining;
|
|
114
|
+
state.resetAfter = resetAfter;
|
|
115
|
+
state.lastPath = path;
|
|
116
|
+
}
|
|
117
|
+
if (remaining <= 0) {
|
|
118
|
+
if (state.resetTimeout) clearTimeout(state.resetTimeout);
|
|
119
|
+
const delay = resetIn;
|
|
120
|
+
state.resetTimeout = setTimeout(() => {
|
|
121
|
+
state.remaining = state.limit;
|
|
122
|
+
state.resetTimeout = void 0;
|
|
123
|
+
while (state.queue.length > 0 && state.remaining > 0) {
|
|
124
|
+
const fn = state.queue.shift();
|
|
125
|
+
if (fn) {
|
|
126
|
+
state.remaining--;
|
|
127
|
+
fn();
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}, delay);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
};
|
|
134
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
135
|
+
0 && (module.exports = {
|
|
136
|
+
RateLimitQueue
|
|
137
|
+
});
|
|
138
|
+
//# sourceMappingURL=rateLimitQueue.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/rest/restUtils/rateLimitQueue.ts"],"sourcesContent":["import axios, { AxiosRequestConfig, AxiosResponse } from \"axios\";\r\n\r\ninterface RateLimitInfo {\r\n limit: number;\r\n remaining: number;\r\n resetAfter: number; // epoch ms\r\n bucket: string;\r\n resetIn: number; // ms until reset\r\n}\r\n\r\ninterface BucketState extends RateLimitInfo {\r\n queue: Array<() => void>;\r\n resetTimeout?: NodeJS.Timeout;\r\n lastPath: string;\r\n}\r\n\r\nexport class RateLimitQueue {\r\n private bucketMap: Map<string, BucketState> = new Map();\r\n private pathToBucket: Map<string, string> = new Map();\r\n\r\n async request<T = any>(\r\n config: AxiosRequestConfig & { url: string },\r\n ): Promise<AxiosResponse<T>> {\r\n const path = config.url!;\r\n const bucketId = this.pathToBucket.get(path);\r\n let bucket = bucketId ? this.bucketMap.get(bucketId) : undefined;\r\n\r\n if (bucket && bucket.remaining <= 0 && Date.now() < bucket.resetAfter) {\r\n // Rate limited, queue the request\r\n return new Promise<AxiosResponse<T>>((resolve, reject) => {\r\n bucket!.queue.push(async () => {\r\n try {\r\n const res = await this._doRequest<T>(config, path);\r\n resolve(res);\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n });\r\n } else {\r\n // Not rate limited, do the request\r\n return this._doRequest<T>(config, path);\r\n }\r\n }\r\n\r\n private async _doRequest<T>(\r\n config: AxiosRequestConfig,\r\n path: string,\r\n ): Promise<AxiosResponse<T>> {\r\n const response = await axios(config);\r\n this._updateRateLimit(path, response);\r\n return response;\r\n }\r\n\r\n private _updateRateLimit(path: string, response: AxiosResponse) {\r\n const headers = response.headers;\r\n const limit = parseInt(headers[\"x-ratelimit-limit\"]);\r\n const remaining = parseInt(headers[\"x-ratelimit-remaining\"]);\r\n const resetAfter =\r\n parseFloat(headers[\"x-ratelimit-reset-after\"]) * 1000 + Date.now();\r\n const bucket = headers[\"x-ratelimit-bucket\"];\r\n const resetIn = parseInt(headers[\"x-ratelimit-reset-after\"]);\r\n\r\n if (!bucket) return;\r\n this.pathToBucket.set(path, bucket);\r\n let state = this.bucketMap.get(bucket);\r\n if (!state) {\r\n state = {\r\n limit,\r\n remaining,\r\n resetAfter,\r\n bucket,\r\n resetIn,\r\n queue: [],\r\n lastPath: path,\r\n };\r\n this.bucketMap.set(bucket, state);\r\n } else {\r\n state.limit = limit;\r\n state.remaining = remaining;\r\n state.resetAfter = resetAfter;\r\n state.lastPath = path;\r\n }\r\n\r\n if (remaining <= 0) {\r\n if (state.resetTimeout) clearTimeout(state.resetTimeout);\r\n const delay = resetIn;\r\n state.resetTimeout = setTimeout(() => {\r\n state.remaining = state.limit;\r\n state.resetTimeout = undefined;\r\n // Process queued requests\r\n while (state.queue.length > 0 && state.remaining > 0) {\r\n const fn = state.queue.shift();\r\n if (fn) {\r\n state.remaining--;\r\n fn();\r\n }\r\n }\r\n }, delay);\r\n }\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAyD;AAgBlD,IAAM,iBAAN,MAAqB;AAAA,EAArB;AACL,SAAQ,YAAsC,oBAAI,IAAI;AACtD,SAAQ,eAAoC,oBAAI,IAAI;AAAA;AAAA,EAE9C,QACJ,QAC2B;AAAA;AAC3B,YAAM,OAAO,OAAO;AACpB,YAAM,WAAW,KAAK,aAAa,IAAI,IAAI;AAC3C,UAAI,SAAS,WAAW,KAAK,UAAU,IAAI,QAAQ,IAAI;AAEvD,UAAI,UAAU,OAAO,aAAa,KAAK,KAAK,IAAI,IAAI,OAAO,YAAY;AAErE,eAAO,IAAI,QAA0B,CAAC,SAAS,WAAW;AACxD,iBAAQ,MAAM,KAAK,MAAY;AAC7B,gBAAI;AACF,oBAAM,MAAM,MAAM,KAAK,WAAc,QAAQ,IAAI;AACjD,sBAAQ,GAAG;AAAA,YACb,SAAS,GAAG;AACV,qBAAO,CAAC;AAAA,YACV;AAAA,UACF,EAAC;AAAA,QACH,CAAC;AAAA,MACH,OAAO;AAEL,eAAO,KAAK,WAAc,QAAQ,IAAI;AAAA,MACxC;AAAA,IACF;AAAA;AAAA,EAEc,WACZ,QACA,MAC2B;AAAA;AAC3B,YAAM,WAAW,UAAM,aAAAA,SAAM,MAAM;AACnC,WAAK,iBAAiB,MAAM,QAAQ;AACpC,aAAO;AAAA,IACT;AAAA;AAAA,EAEQ,iBAAiB,MAAc,UAAyB;AAC9D,UAAM,UAAU,SAAS;AACzB,UAAM,QAAQ,SAAS,QAAQ,mBAAmB,CAAC;AACnD,UAAM,YAAY,SAAS,QAAQ,uBAAuB,CAAC;AAC3D,UAAM,aACJ,WAAW,QAAQ,yBAAyB,CAAC,IAAI,MAAO,KAAK,IAAI;AACnE,UAAM,SAAS,QAAQ,oBAAoB;AAC3C,UAAM,UAAU,SAAS,QAAQ,yBAAyB,CAAC;AAE3D,QAAI,CAAC,OAAQ;AACb,SAAK,aAAa,IAAI,MAAM,MAAM;AAClC,QAAI,QAAQ,KAAK,UAAU,IAAI,MAAM;AACrC,QAAI,CAAC,OAAO;AACV,cAAQ;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,OAAO,CAAC;AAAA,QACR,UAAU;AAAA,MACZ;AACA,WAAK,UAAU,IAAI,QAAQ,KAAK;AAAA,IAClC,OAAO;AACL,YAAM,QAAQ;AACd,YAAM,YAAY;AAClB,YAAM,aAAa;AACnB,YAAM,WAAW;AAAA,IACnB;AAEA,QAAI,aAAa,GAAG;AAClB,UAAI,MAAM,aAAc,cAAa,MAAM,YAAY;AACvD,YAAM,QAAQ;AACd,YAAM,eAAe,WAAW,MAAM;AACpC,cAAM,YAAY,MAAM;AACxB,cAAM,eAAe;AAErB,eAAO,MAAM,MAAM,SAAS,KAAK,MAAM,YAAY,GAAG;AACpD,gBAAM,KAAK,MAAM,MAAM,MAAM;AAC7B,cAAI,IAAI;AACN,kBAAM;AACN,eAAG;AAAA,UACL;AAAA,QACF;AAAA,MACF,GAAG,KAAK;AAAA,IACV;AAAA,EACF;AACF;","names":["axios"]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AxiosRequestConfig, AxiosResponse } from 'axios';
|
|
2
|
+
|
|
3
|
+
declare class RateLimitQueue {
|
|
4
|
+
private bucketMap;
|
|
5
|
+
private pathToBucket;
|
|
6
|
+
request<T = any>(config: AxiosRequestConfig & {
|
|
7
|
+
url: string;
|
|
8
|
+
}): Promise<AxiosResponse<T>>;
|
|
9
|
+
private _doRequest;
|
|
10
|
+
private _updateRateLimit;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { RateLimitQueue };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { AxiosRequestConfig, AxiosResponse } from 'axios';
|
|
2
|
+
|
|
3
|
+
declare class RateLimitQueue {
|
|
4
|
+
private bucketMap;
|
|
5
|
+
private pathToBucket;
|
|
6
|
+
request<T = any>(config: AxiosRequestConfig & {
|
|
7
|
+
url: string;
|
|
8
|
+
}): Promise<AxiosResponse<T>>;
|
|
9
|
+
private _doRequest;
|
|
10
|
+
private _updateRateLimit;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export { RateLimitQueue };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : Symbol.for("Symbol." + name);
|
|
7
|
+
var __typeError = (msg) => {
|
|
8
|
+
throw TypeError(msg);
|
|
9
|
+
};
|
|
10
|
+
var __export = (target, all) => {
|
|
11
|
+
for (var name in all)
|
|
12
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
13
|
+
};
|
|
14
|
+
var __copyProps = (to, from, except, desc) => {
|
|
15
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
16
|
+
for (let key of __getOwnPropNames(from))
|
|
17
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
18
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
19
|
+
}
|
|
20
|
+
return to;
|
|
21
|
+
};
|
|
22
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
23
|
+
var __await = function(promise, isYieldStar) {
|
|
24
|
+
this[0] = promise;
|
|
25
|
+
this[1] = isYieldStar;
|
|
26
|
+
};
|
|
27
|
+
var __yieldStar = (value) => {
|
|
28
|
+
var obj = value[__knownSymbol("asyncIterator")], isAwait = false, method, it = {};
|
|
29
|
+
if (obj == null) {
|
|
30
|
+
obj = value[__knownSymbol("iterator")]();
|
|
31
|
+
method = (k) => it[k] = (x) => obj[k](x);
|
|
32
|
+
} else {
|
|
33
|
+
obj = obj.call(value);
|
|
34
|
+
method = (k) => it[k] = (v) => {
|
|
35
|
+
if (isAwait) {
|
|
36
|
+
isAwait = false;
|
|
37
|
+
if (k === "throw") throw v;
|
|
38
|
+
return v;
|
|
39
|
+
}
|
|
40
|
+
isAwait = true;
|
|
41
|
+
return {
|
|
42
|
+
done: false,
|
|
43
|
+
value: new __await(new Promise((resolve) => {
|
|
44
|
+
var x = obj[k](v);
|
|
45
|
+
if (!(x instanceof Object)) __typeError("Object expected");
|
|
46
|
+
resolve(x);
|
|
47
|
+
}), 1)
|
|
48
|
+
};
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return it[__knownSymbol("iterator")] = () => it, method("next"), "throw" in obj ? method("throw") : it.throw = (x) => {
|
|
52
|
+
throw x;
|
|
53
|
+
}, "return" in obj && method("return"), it;
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
// src/struct/attachment.ts
|
|
57
|
+
var attachment_exports = {};
|
|
58
|
+
__export(attachment_exports, {
|
|
59
|
+
Attachment: () => Attachment
|
|
60
|
+
});
|
|
61
|
+
module.exports = __toCommonJS(attachment_exports);
|
|
62
|
+
|
|
63
|
+
// src/utils/bitField.ts
|
|
64
|
+
var DEFAULT_BIT = 0;
|
|
65
|
+
var _BitField = class _BitField {
|
|
66
|
+
constructor(bits = DEFAULT_BIT) {
|
|
67
|
+
this.bitfield = DEFAULT_BIT;
|
|
68
|
+
this.bitfield = this.self.resolve(bits);
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Resolves a bitfield or an array of bitfields into a single number.
|
|
72
|
+
* @param bit The bitfield or array of bitfields to resolve.
|
|
73
|
+
* @returns The resolved bitfield as a number.
|
|
74
|
+
*/
|
|
75
|
+
static resolve(bit) {
|
|
76
|
+
if (bit instanceof _BitField) return bit.bitfield;
|
|
77
|
+
if (typeof bit === "number" && bit >= DEFAULT_BIT) return bit;
|
|
78
|
+
if (Array.isArray(bit)) {
|
|
79
|
+
return bit.map((p) => this.resolve(p)).reduce((prev, p) => prev | p, DEFAULT_BIT);
|
|
80
|
+
}
|
|
81
|
+
if (typeof this.FLAGS[bit] !== "undefined") return this.FLAGS[bit];
|
|
82
|
+
throw new Error("BITFIELD_INVALID");
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Returns the class that this instance belongs to.
|
|
86
|
+
* @returns The class of the bitfield.
|
|
87
|
+
*/
|
|
88
|
+
get self() {
|
|
89
|
+
return this.constructor;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Checks if any of the bits in the bitfield are set.
|
|
93
|
+
* @param bit The bitfield or array of bitfields to check.
|
|
94
|
+
* @returns True if any bits are set, false otherwise.
|
|
95
|
+
*/
|
|
96
|
+
any(bit) {
|
|
97
|
+
bit = this.self.resolve(bit);
|
|
98
|
+
return (this.bitfield & bit) !== DEFAULT_BIT;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* checks if a specific permission is set.
|
|
102
|
+
*/
|
|
103
|
+
has(bit) {
|
|
104
|
+
bit = this.self.resolve(bit);
|
|
105
|
+
return (this.bitfield & bit) === bit;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Returns an array of all the Permissions that are set in the bitfield.
|
|
109
|
+
* @returns An array of flag names.
|
|
110
|
+
*/
|
|
111
|
+
toArray() {
|
|
112
|
+
return Object.keys(this.self.FLAGS).filter((bit) => this.has(bit));
|
|
113
|
+
}
|
|
114
|
+
add(...bits) {
|
|
115
|
+
let total = 0;
|
|
116
|
+
for (const bit of bits) {
|
|
117
|
+
total |= this.self.resolve(bit);
|
|
118
|
+
}
|
|
119
|
+
if (Object.isFrozen(this)) {
|
|
120
|
+
return new this.self(this.bitfield | total);
|
|
121
|
+
}
|
|
122
|
+
this.bitfield |= total;
|
|
123
|
+
return this;
|
|
124
|
+
}
|
|
125
|
+
remove(...bits) {
|
|
126
|
+
let total = 0;
|
|
127
|
+
for (const bit of bits) {
|
|
128
|
+
total |= this.self.resolve(bit);
|
|
129
|
+
}
|
|
130
|
+
if (Object.isFrozen(this)) {
|
|
131
|
+
return new this.self(this.bitfield & ~total);
|
|
132
|
+
}
|
|
133
|
+
this.bitfield &= ~total;
|
|
134
|
+
return this;
|
|
135
|
+
}
|
|
136
|
+
freeze() {
|
|
137
|
+
return Object.freeze(this);
|
|
138
|
+
}
|
|
139
|
+
valueOf() {
|
|
140
|
+
return this.bitfield;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
*
|
|
144
|
+
* @returns A record of all flags and their boolean values indicating whether they are set.
|
|
145
|
+
*/
|
|
146
|
+
serialize() {
|
|
147
|
+
const serialized = {};
|
|
148
|
+
for (const [flag, bit] of Object.entries(this.self.FLAGS)) {
|
|
149
|
+
serialized[flag] = this.has(bit);
|
|
150
|
+
}
|
|
151
|
+
return serialized;
|
|
152
|
+
}
|
|
153
|
+
*[Symbol.iterator]() {
|
|
154
|
+
yield* __yieldStar(this.toArray());
|
|
155
|
+
}
|
|
156
|
+
};
|
|
157
|
+
_BitField.FLAGS = {};
|
|
158
|
+
var BitField = _BitField;
|
|
159
|
+
|
|
160
|
+
// src/struct/base.ts
|
|
161
|
+
var Base = class _Base {
|
|
162
|
+
/**
|
|
163
|
+
* Creates a new Base instance.
|
|
164
|
+
*
|
|
165
|
+
* @param {client} client - The client instance.
|
|
166
|
+
*/
|
|
167
|
+
constructor(client) {
|
|
168
|
+
this.client = client;
|
|
169
|
+
}
|
|
170
|
+
/**
|
|
171
|
+
* Compares this object with another to determine if they are equal.
|
|
172
|
+
*
|
|
173
|
+
* @param {this | null} [obj] - The object to compare with.
|
|
174
|
+
* @returns {boolean} `true` if the objects are equal, otherwise `false`.
|
|
175
|
+
*/
|
|
176
|
+
equals(obj) {
|
|
177
|
+
if (!obj) return false;
|
|
178
|
+
for (const key in obj) {
|
|
179
|
+
const a = obj[key], b = this[key];
|
|
180
|
+
if (a instanceof _Base && !a.equals(b)) return false;
|
|
181
|
+
if (a instanceof BitField && a.bitfield !== b.bitfield)
|
|
182
|
+
return false;
|
|
183
|
+
if (typeof a === "object" && a !== null) continue;
|
|
184
|
+
if (a !== b) return false;
|
|
185
|
+
}
|
|
186
|
+
return true;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* Updates the object with new data and returns a clone of the object.
|
|
190
|
+
*
|
|
191
|
+
* @param {PartialObject} data - The data to update the object with.
|
|
192
|
+
* @param {string[]} [clear] - Fields to clear in the object.
|
|
193
|
+
* @returns {this} A clone of the updated object.
|
|
194
|
+
*/
|
|
195
|
+
_update(data, clear) {
|
|
196
|
+
const clone = this._clone();
|
|
197
|
+
this._patch(data, clear);
|
|
198
|
+
return clone;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Patches the object with new data.
|
|
202
|
+
*
|
|
203
|
+
* @param {PartialObject} data - The data to patch the object with.
|
|
204
|
+
* @param {string[]} [_clear] - Fields to clear in the object.
|
|
205
|
+
* @returns {this} The updated object.
|
|
206
|
+
* @protected
|
|
207
|
+
*/
|
|
208
|
+
_patch(data, _clear) {
|
|
209
|
+
if ("id" in data) this.id = data.id;
|
|
210
|
+
if ("_id" in data) {
|
|
211
|
+
if (typeof data._id === "string") this.id = data._id;
|
|
212
|
+
if (typeof data._id === "object") this.id = data._id.user;
|
|
213
|
+
}
|
|
214
|
+
return this;
|
|
215
|
+
}
|
|
216
|
+
/**
|
|
217
|
+
* Creates a deep clone of the object.
|
|
218
|
+
*
|
|
219
|
+
* @returns {this} A clone of the object.
|
|
220
|
+
*/
|
|
221
|
+
_clone() {
|
|
222
|
+
const clone = Object.assign(Object.create(this), this);
|
|
223
|
+
for (const key in clone) {
|
|
224
|
+
const prop = clone[key];
|
|
225
|
+
if (prop instanceof _Base) clone[key] = prop._clone();
|
|
226
|
+
}
|
|
227
|
+
return clone;
|
|
228
|
+
}
|
|
229
|
+
};
|
|
230
|
+
|
|
231
|
+
// src/struct/attachment.ts
|
|
232
|
+
var Attachment = class extends Base {
|
|
233
|
+
/**
|
|
234
|
+
* Creates a new Attachment instance.
|
|
235
|
+
*
|
|
236
|
+
* @param {client} client - The client instance.
|
|
237
|
+
* @param {File} data - The raw data for the attachment from the API.
|
|
238
|
+
*/
|
|
239
|
+
constructor(client, data) {
|
|
240
|
+
super(client);
|
|
241
|
+
this._patch(data);
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Updates the attachment instance with new data from the API.
|
|
245
|
+
*
|
|
246
|
+
* @param {File} data - The raw data for the attachment from the API.
|
|
247
|
+
* @returns {this} The updated attachment instance.
|
|
248
|
+
* @protected
|
|
249
|
+
*/
|
|
250
|
+
_patch(data) {
|
|
251
|
+
super._patch(data);
|
|
252
|
+
if (data.filename) this.filename = data.filename;
|
|
253
|
+
if (data.content_type) this.type = data.content_type;
|
|
254
|
+
if (typeof data.size === "number") this.size = data.size;
|
|
255
|
+
if (data.metadata) this.metadata = data.metadata;
|
|
256
|
+
return this;
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
260
|
+
0 && (module.exports = {
|
|
261
|
+
Attachment
|
|
262
|
+
});
|
|
263
|
+
//# sourceMappingURL=attachment.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/struct/attachment.ts","../../src/utils/bitField.ts","../../src/struct/base.ts"],"sourcesContent":["import { Base } from \"./base\";\r\nimport type { File } from \"revolt-api\";\r\nimport type { client } from \"../client/client\";\r\n\r\n/**\r\n * Represents an attachment, such as a file or image, in a message or channel.\r\n *\r\n * @extends Base\r\n */\r\nexport class Attachment extends Base {\r\n /** The filename of the attachment. */\r\n filename!: string;\r\n\r\n /** The MIME type of the attachment (e.g., `image/png`, `application/pdf`). */\r\n type!: string;\r\n\r\n /** The size of the attachment in bytes. */\r\n size!: number;\r\n\r\n /** Metadata associated with the attachment (e.g., dimensions for images). */\r\n metadata!: File[\"metadata\"];\r\n\r\n /**\r\n * Creates a new Attachment instance.\r\n *\r\n * @param {client} client - The client instance.\r\n * @param {File} data - The raw data for the attachment from the API.\r\n */\r\n constructor(client: client, data: File) {\r\n super(client);\r\n this._patch(data);\r\n }\r\n\r\n /**\r\n * Updates the attachment instance with new data from the API.\r\n *\r\n * @param {File} data - The raw data for the attachment from the API.\r\n * @returns {this} The updated attachment instance.\r\n * @protected\r\n */\r\n protected _patch(data: File): this {\r\n super._patch(data);\r\n if (data.filename) this.filename = data.filename;\r\n if (data.content_type) this.type = data.content_type;\r\n if (typeof data.size === \"number\") this.size = data.size;\r\n if (data.metadata) this.metadata = data.metadata;\r\n return this;\r\n }\r\n}\r\n","const DEFAULT_BIT = 0;\r\n\r\nexport type BitFieldResolvable =\r\n | BitField\r\n | number\r\n | string\r\n | BitFieldResolvable[];\r\n\r\n/**\r\n * Represents a bitfield that can be used to manage flags or permissions.\r\n */\r\nexport class BitField {\r\n static FLAGS: Record<string, number> = {};\r\n bitfield = DEFAULT_BIT;\r\n constructor(bits: BitFieldResolvable = DEFAULT_BIT) {\r\n this.bitfield = this.self.resolve(bits);\r\n }\r\n\r\n /**\r\n * Resolves a bitfield or an array of bitfields into a single number.\r\n * @param bit The bitfield or array of bitfields to resolve.\r\n * @returns The resolved bitfield as a number.\r\n */\r\n static resolve(bit: BitFieldResolvable): number {\r\n if (bit instanceof BitField) return bit.bitfield;\r\n if (typeof bit === \"number\" && bit >= DEFAULT_BIT) return bit;\r\n if (Array.isArray(bit)) {\r\n return bit\r\n .map((p) => this.resolve(p))\r\n .reduce((prev, p) => prev | p, DEFAULT_BIT);\r\n }\r\n if (typeof this.FLAGS[bit] !== \"undefined\") return this.FLAGS[bit];\r\n throw new Error(\"BITFIELD_INVALID\");\r\n }\r\n /**\r\n * Returns the class that this instance belongs to.\r\n * @returns The class of the bitfield.\r\n */\r\n get self(): {\r\n FLAGS: Record<string, number>;\r\n resolve(bit: BitFieldResolvable): number;\r\n new (bits?: BitFieldResolvable): BitField;\r\n } {\r\n return this.constructor as unknown as {\r\n FLAGS: Record<string, number>;\r\n resolve(bit: BitFieldResolvable): number;\r\n new (bits?: BitFieldResolvable): BitField;\r\n };\r\n }\r\n\r\n /**\r\n * Checks if any of the bits in the bitfield are set.\r\n * @param bit The bitfield or array of bitfields to check.\r\n * @returns True if any bits are set, false otherwise.\r\n */\r\n any(bit: BitFieldResolvable): boolean {\r\n bit = this.self.resolve(bit);\r\n return (this.bitfield & bit) !== DEFAULT_BIT;\r\n }\r\n\r\n /**\r\n * checks if a specific permission is set.\r\n */\r\n has(bit: BitFieldResolvable): boolean {\r\n bit = this.self.resolve(bit);\r\n return (this.bitfield & bit) === bit;\r\n }\r\n\r\n /**\r\n * Returns an array of all the Permissions that are set in the bitfield.\r\n * @returns An array of flag names.\r\n */\r\n toArray(): string[] {\r\n return Object.keys(this.self.FLAGS).filter((bit) => this.has(bit));\r\n }\r\n\r\n add(...bits: BitFieldResolvable[]): this {\r\n let total = 0;\r\n\r\n for (const bit of bits) {\r\n total |= this.self.resolve(bit);\r\n }\r\n\r\n if (Object.isFrozen(this)) {\r\n return new this.self(this.bitfield | total) as this;\r\n }\r\n\r\n this.bitfield |= total;\r\n\r\n return this;\r\n }\r\n\r\n remove(...bits: BitFieldResolvable[]): this {\r\n let total = 0;\r\n\r\n for (const bit of bits) {\r\n total |= this.self.resolve(bit);\r\n }\r\n\r\n if (Object.isFrozen(this)) {\r\n return new this.self(this.bitfield & ~total) as this;\r\n }\r\n\r\n this.bitfield &= ~total;\r\n\r\n return this;\r\n }\r\n\r\n freeze(): Readonly<this> {\r\n return Object.freeze(this);\r\n }\r\n\r\n valueOf(): number {\r\n return this.bitfield;\r\n }\r\n\r\n /**\r\n *\r\n * @returns A record of all flags and their boolean values indicating whether they are set.\r\n */\r\n serialize(): Record<string, boolean> {\r\n const serialized: Record<string, boolean> = {};\r\n for (const [flag, bit] of Object.entries(this.self.FLAGS)) {\r\n serialized[flag] = this.has(bit);\r\n }\r\n return serialized;\r\n }\r\n\r\n *[Symbol.iterator](): Iterable<string> {\r\n yield* this.toArray();\r\n }\r\n}\r\n","import { client } from \"../client/client\";\r\nimport { BitField } from \"../utils/bitField\";\r\n\r\ntype PartialObject = Partial<\r\n { _id: string } | { id: string } | { _id: { user: string } }\r\n>;\r\n\r\n/**\r\n * Represents the base structure for all objects in the client.\r\n * Provides common functionality such as equality checks, cloning, and patching data.\r\n */\r\nexport abstract class Base {\r\n /** The unique identifier for the object. */\r\n id!: string;\r\n\r\n /**\r\n * Creates a new Base instance.\r\n *\r\n * @param {client} client - The client instance.\r\n */\r\n constructor(public readonly client: client) {}\r\n\r\n /**\r\n * Compares this object with another to determine if they are equal.\r\n *\r\n * @param {this | null} [obj] - The object to compare with.\r\n * @returns {boolean} `true` if the objects are equal, otherwise `false`.\r\n */\r\n equals(obj?: this | null): boolean {\r\n if (!obj) return false;\r\n\r\n for (const key in obj) {\r\n const a = obj[key],\r\n b = this[key];\r\n if (a instanceof Base && !a.equals(b as typeof a)) return false;\r\n if (\r\n a instanceof BitField &&\r\n a.bitfield !== (b as unknown as BitField).bitfield\r\n )\r\n return false;\r\n\r\n if (typeof a === \"object\" && a !== null) continue;\r\n if (a !== b) return false;\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /**\r\n * Updates the object with new data and returns a clone of the object.\r\n *\r\n * @param {PartialObject} data - The data to update the object with.\r\n * @param {string[]} [clear] - Fields to clear in the object.\r\n * @returns {this} A clone of the updated object.\r\n */\r\n _update(data: PartialObject, clear?: string[]): this {\r\n const clone = this._clone();\r\n this._patch(data, clear);\r\n return clone;\r\n }\r\n\r\n /**\r\n * Patches the object with new data.\r\n *\r\n * @param {PartialObject} data - The data to patch the object with.\r\n * @param {string[]} [_clear] - Fields to clear in the object.\r\n * @returns {this} The updated object.\r\n * @protected\r\n */\r\n protected _patch(data: PartialObject, _clear?: string[]): this {\r\n if (\"id\" in data) this.id = data.id!;\r\n if (\"_id\" in data) {\r\n if (typeof data._id === \"string\") this.id = data._id;\r\n if (typeof data._id === \"object\") this.id = data._id.user;\r\n }\r\n return this;\r\n }\r\n\r\n /**\r\n * Creates a deep clone of the object.\r\n *\r\n * @returns {this} A clone of the object.\r\n */\r\n _clone(): this {\r\n const clone = Object.assign(Object.create(this), this);\r\n\r\n for (const key in clone) {\r\n const prop = clone[key];\r\n if (prop instanceof Base) clone[key] = prop._clone();\r\n }\r\n\r\n return clone;\r\n }\r\n}\r\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { A as Attachment } from '../index-XkxTx7UU.cjs';
|
|
2
|
+
import 'revolt-api';
|
|
3
|
+
import '../utils/badges.cjs';
|
|
4
|
+
import '../utils/bitField.cjs';
|
|
5
|
+
import '../utils/permissions.cjs';
|
|
6
|
+
import '../utils/types.cjs';
|
|
7
|
+
import 'node:buffer';
|
|
8
|
+
import 'stream';
|
|
9
|
+
import 'node:events';
|
|
10
|
+
import 'form-data';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { A as Attachment } from '../index-D44PqKGb.js';
|
|
2
|
+
import 'revolt-api';
|
|
3
|
+
import '../utils/badges.js';
|
|
4
|
+
import '../utils/bitField.js';
|
|
5
|
+
import '../utils/permissions.js';
|
|
6
|
+
import '../utils/types.js';
|
|
7
|
+
import 'node:buffer';
|
|
8
|
+
import 'stream';
|
|
9
|
+
import 'node:events';
|
|
10
|
+
import 'form-data';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|