rockcord 4.0.0-dev.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +48 -0
  3. package/package.json +107 -0
  4. package/src/WebSocket.js +39 -0
  5. package/src/client/BaseClient.js +86 -0
  6. package/src/client/Client.js +946 -0
  7. package/src/client/WebhookClient.js +61 -0
  8. package/src/client/actions/Action.js +116 -0
  9. package/src/client/actions/ActionsManager.js +80 -0
  10. package/src/client/actions/ApplicationCommandPermissionsUpdate.js +34 -0
  11. package/src/client/actions/AutoModerationActionExecution.js +27 -0
  12. package/src/client/actions/AutoModerationRuleCreate.js +28 -0
  13. package/src/client/actions/AutoModerationRuleDelete.js +32 -0
  14. package/src/client/actions/AutoModerationRuleUpdate.js +30 -0
  15. package/src/client/actions/ChannelCreate.js +23 -0
  16. package/src/client/actions/ChannelDelete.js +39 -0
  17. package/src/client/actions/ChannelUpdate.js +43 -0
  18. package/src/client/actions/GuildAuditLogEntryCreate.js +29 -0
  19. package/src/client/actions/GuildBanAdd.js +20 -0
  20. package/src/client/actions/GuildBanRemove.js +25 -0
  21. package/src/client/actions/GuildChannelsPositionUpdate.js +21 -0
  22. package/src/client/actions/GuildDelete.js +65 -0
  23. package/src/client/actions/GuildEmojiCreate.js +20 -0
  24. package/src/client/actions/GuildEmojiDelete.js +21 -0
  25. package/src/client/actions/GuildEmojiUpdate.js +20 -0
  26. package/src/client/actions/GuildEmojisUpdate.js +34 -0
  27. package/src/client/actions/GuildIntegrationsUpdate.js +19 -0
  28. package/src/client/actions/GuildMemberRemove.js +33 -0
  29. package/src/client/actions/GuildMemberUpdate.js +44 -0
  30. package/src/client/actions/GuildRoleCreate.js +25 -0
  31. package/src/client/actions/GuildRoleDelete.js +31 -0
  32. package/src/client/actions/GuildRoleUpdate.js +39 -0
  33. package/src/client/actions/GuildRolesPositionUpdate.js +21 -0
  34. package/src/client/actions/GuildScheduledEventCreate.js +27 -0
  35. package/src/client/actions/GuildScheduledEventDelete.js +31 -0
  36. package/src/client/actions/GuildScheduledEventUpdate.js +30 -0
  37. package/src/client/actions/GuildScheduledEventUserAdd.js +32 -0
  38. package/src/client/actions/GuildScheduledEventUserRemove.js +32 -0
  39. package/src/client/actions/GuildStickerCreate.js +20 -0
  40. package/src/client/actions/GuildStickerDelete.js +21 -0
  41. package/src/client/actions/GuildStickerUpdate.js +20 -0
  42. package/src/client/actions/GuildStickersUpdate.js +34 -0
  43. package/src/client/actions/GuildUpdate.js +33 -0
  44. package/src/client/actions/InviteCreate.js +28 -0
  45. package/src/client/actions/InviteDelete.js +30 -0
  46. package/src/client/actions/MessageCreate.js +50 -0
  47. package/src/client/actions/MessageDelete.js +32 -0
  48. package/src/client/actions/MessageDeleteBulk.js +46 -0
  49. package/src/client/actions/MessagePollVoteAdd.js +33 -0
  50. package/src/client/actions/MessagePollVoteRemove.js +33 -0
  51. package/src/client/actions/MessageReactionAdd.js +68 -0
  52. package/src/client/actions/MessageReactionRemove.js +50 -0
  53. package/src/client/actions/MessageReactionRemoveAll.js +33 -0
  54. package/src/client/actions/MessageReactionRemoveEmoji.js +28 -0
  55. package/src/client/actions/MessageUpdate.js +26 -0
  56. package/src/client/actions/PresenceUpdate.js +50 -0
  57. package/src/client/actions/StageInstanceCreate.js +28 -0
  58. package/src/client/actions/StageInstanceDelete.js +33 -0
  59. package/src/client/actions/StageInstanceUpdate.js +30 -0
  60. package/src/client/actions/ThreadCreate.js +24 -0
  61. package/src/client/actions/ThreadDelete.js +32 -0
  62. package/src/client/actions/ThreadListSync.js +59 -0
  63. package/src/client/actions/ThreadMemberUpdate.js +30 -0
  64. package/src/client/actions/ThreadMembersUpdate.js +34 -0
  65. package/src/client/actions/TypingStart.js +29 -0
  66. package/src/client/actions/UserUpdate.js +35 -0
  67. package/src/client/actions/VoiceStateUpdate.js +50 -0
  68. package/src/client/actions/WebhooksUpdate.js +20 -0
  69. package/src/client/voice/ClientVoiceManager.js +151 -0
  70. package/src/client/voice/VoiceConnection.js +1295 -0
  71. package/src/client/voice/dispatcher/AnnexBDispatcher.js +136 -0
  72. package/src/client/voice/dispatcher/AudioDispatcher.js +145 -0
  73. package/src/client/voice/dispatcher/BaseDispatcher.js +473 -0
  74. package/src/client/voice/dispatcher/VPxDispatcher.js +58 -0
  75. package/src/client/voice/dispatcher/VideoDispatcher.js +68 -0
  76. package/src/client/voice/networking/DAVE.js +184 -0
  77. package/src/client/voice/networking/VoiceUDPClient.js +190 -0
  78. package/src/client/voice/networking/VoiceWebSocket.js +366 -0
  79. package/src/client/voice/player/MediaPlayer.js +321 -0
  80. package/src/client/voice/player/processing/AnnexBNalSplitter.js +267 -0
  81. package/src/client/voice/player/processing/IvfSplitter.js +106 -0
  82. package/src/client/voice/player/processing/PCMInsertSilence.js +37 -0
  83. package/src/client/voice/receiver/PacketHandler.js +329 -0
  84. package/src/client/voice/receiver/Receiver.js +115 -0
  85. package/src/client/voice/receiver/Recorder.js +197 -0
  86. package/src/client/voice/util/Function.js +122 -0
  87. package/src/client/voice/util/PlayInterface.js +122 -0
  88. package/src/client/voice/util/Secretbox.js +64 -0
  89. package/src/client/voice/util/Silence.js +16 -0
  90. package/src/client/voice/util/Socket.js +68 -0
  91. package/src/client/voice/util/VideoFrames.js +183 -0
  92. package/src/client/voice/util/VolumeInterface.js +105 -0
  93. package/src/client/websocket/WebSocketManager.js +405 -0
  94. package/src/client/websocket/WebSocketShard.js +908 -0
  95. package/src/client/websocket/handlers/APPLICATION_COMMAND_CREATE.js +18 -0
  96. package/src/client/websocket/handlers/APPLICATION_COMMAND_DELETE.js +20 -0
  97. package/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +5 -0
  98. package/src/client/websocket/handlers/APPLICATION_COMMAND_UPDATE.js +20 -0
  99. package/src/client/websocket/handlers/AUTO_MODERATION_ACTION_EXECUTION.js +5 -0
  100. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_CREATE.js +5 -0
  101. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_DELETE.js +5 -0
  102. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_UPDATE.js +5 -0
  103. package/src/client/websocket/handlers/CALL_CREATE.js +14 -0
  104. package/src/client/websocket/handlers/CALL_DELETE.js +11 -0
  105. package/src/client/websocket/handlers/CALL_UPDATE.js +11 -0
  106. package/src/client/websocket/handlers/CHANNEL_CREATE.js +5 -0
  107. package/src/client/websocket/handlers/CHANNEL_DELETE.js +5 -0
  108. package/src/client/websocket/handlers/CHANNEL_PINS_UPDATE.js +22 -0
  109. package/src/client/websocket/handlers/CHANNEL_RECIPIENT_ADD.js +19 -0
  110. package/src/client/websocket/handlers/CHANNEL_RECIPIENT_REMOVE.js +16 -0
  111. package/src/client/websocket/handlers/CHANNEL_UPDATE.js +16 -0
  112. package/src/client/websocket/handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.js +5 -0
  113. package/src/client/websocket/handlers/GUILD_BAN_ADD.js +5 -0
  114. package/src/client/websocket/handlers/GUILD_BAN_REMOVE.js +5 -0
  115. package/src/client/websocket/handlers/GUILD_CREATE.js +52 -0
  116. package/src/client/websocket/handlers/GUILD_DELETE.js +5 -0
  117. package/src/client/websocket/handlers/GUILD_EMOJIS_UPDATE.js +5 -0
  118. package/src/client/websocket/handlers/GUILD_INTEGRATIONS_UPDATE.js +5 -0
  119. package/src/client/websocket/handlers/GUILD_MEMBERS_CHUNK.js +39 -0
  120. package/src/client/websocket/handlers/GUILD_MEMBER_ADD.js +20 -0
  121. package/src/client/websocket/handlers/GUILD_MEMBER_REMOVE.js +5 -0
  122. package/src/client/websocket/handlers/GUILD_MEMBER_UPDATE.js +5 -0
  123. package/src/client/websocket/handlers/GUILD_ROLE_CREATE.js +5 -0
  124. package/src/client/websocket/handlers/GUILD_ROLE_DELETE.js +5 -0
  125. package/src/client/websocket/handlers/GUILD_ROLE_UPDATE.js +5 -0
  126. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_CREATE.js +5 -0
  127. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_DELETE.js +5 -0
  128. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_UPDATE.js +5 -0
  129. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_ADD.js +5 -0
  130. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +5 -0
  131. package/src/client/websocket/handlers/GUILD_STICKERS_UPDATE.js +5 -0
  132. package/src/client/websocket/handlers/GUILD_UPDATE.js +5 -0
  133. package/src/client/websocket/handlers/INTERACTION_MODAL_CREATE.js +12 -0
  134. package/src/client/websocket/handlers/INVITE_CREATE.js +5 -0
  135. package/src/client/websocket/handlers/INVITE_DELETE.js +5 -0
  136. package/src/client/websocket/handlers/MESSAGE_CREATE.js +5 -0
  137. package/src/client/websocket/handlers/MESSAGE_DELETE.js +5 -0
  138. package/src/client/websocket/handlers/MESSAGE_DELETE_BULK.js +5 -0
  139. package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_ADD.js +5 -0
  140. package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_REMOVE.js +5 -0
  141. package/src/client/websocket/handlers/MESSAGE_REACTION_ADD.js +5 -0
  142. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE.js +5 -0
  143. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_ALL.js +5 -0
  144. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_EMOJI.js +5 -0
  145. package/src/client/websocket/handlers/MESSAGE_UPDATE.js +16 -0
  146. package/src/client/websocket/handlers/PRESENCE_UPDATE.js +5 -0
  147. package/src/client/websocket/handlers/READY.js +121 -0
  148. package/src/client/websocket/handlers/RELATIONSHIP_ADD.js +19 -0
  149. package/src/client/websocket/handlers/RELATIONSHIP_REMOVE.js +17 -0
  150. package/src/client/websocket/handlers/RELATIONSHIP_UPDATE.js +41 -0
  151. package/src/client/websocket/handlers/RESUMED.js +14 -0
  152. package/src/client/websocket/handlers/STAGE_INSTANCE_CREATE.js +5 -0
  153. package/src/client/websocket/handlers/STAGE_INSTANCE_DELETE.js +5 -0
  154. package/src/client/websocket/handlers/STAGE_INSTANCE_UPDATE.js +5 -0
  155. package/src/client/websocket/handlers/THREAD_CREATE.js +5 -0
  156. package/src/client/websocket/handlers/THREAD_DELETE.js +5 -0
  157. package/src/client/websocket/handlers/THREAD_LIST_SYNC.js +5 -0
  158. package/src/client/websocket/handlers/THREAD_MEMBERS_UPDATE.js +5 -0
  159. package/src/client/websocket/handlers/THREAD_MEMBER_UPDATE.js +5 -0
  160. package/src/client/websocket/handlers/THREAD_UPDATE.js +16 -0
  161. package/src/client/websocket/handlers/TYPING_START.js +5 -0
  162. package/src/client/websocket/handlers/USER_GUILD_SETTINGS_UPDATE.js +6 -0
  163. package/src/client/websocket/handlers/USER_NOTE_UPDATE.js +5 -0
  164. package/src/client/websocket/handlers/USER_REQUIRED_ACTION_UPDATE.js +78 -0
  165. package/src/client/websocket/handlers/USER_SETTINGS_UPDATE.js +5 -0
  166. package/src/client/websocket/handlers/USER_UPDATE.js +5 -0
  167. package/src/client/websocket/handlers/VOICE_CHANNEL_EFFECT_SEND.js +16 -0
  168. package/src/client/websocket/handlers/VOICE_CHANNEL_STATUS_UPDATE.js +12 -0
  169. package/src/client/websocket/handlers/VOICE_SERVER_UPDATE.js +6 -0
  170. package/src/client/websocket/handlers/VOICE_STATE_UPDATE.js +5 -0
  171. package/src/client/websocket/handlers/WEBHOOKS_UPDATE.js +5 -0
  172. package/src/client/websocket/handlers/index.js +84 -0
  173. package/src/errors/DJSError.js +61 -0
  174. package/src/errors/Messages.js +219 -0
  175. package/src/errors/index.js +4 -0
  176. package/src/index.js +218 -0
  177. package/src/managers/ApplicationCommandManager.js +264 -0
  178. package/src/managers/ApplicationCommandPermissionsManager.js +417 -0
  179. package/src/managers/AutoModerationRuleManager.js +296 -0
  180. package/src/managers/BaseGuildEmojiManager.js +80 -0
  181. package/src/managers/BaseManager.js +19 -0
  182. package/src/managers/BillingManager.js +66 -0
  183. package/src/managers/CachedManager.js +71 -0
  184. package/src/managers/ChannelManager.js +148 -0
  185. package/src/managers/ClientUserSettingManager.js +372 -0
  186. package/src/managers/DataManager.js +61 -0
  187. package/src/managers/GuildBanManager.js +250 -0
  188. package/src/managers/GuildChannelManager.js +488 -0
  189. package/src/managers/GuildEmojiManager.js +171 -0
  190. package/src/managers/GuildEmojiRoleManager.js +118 -0
  191. package/src/managers/GuildForumThreadManager.js +94 -0
  192. package/src/managers/GuildInviteManager.js +213 -0
  193. package/src/managers/GuildManager.js +338 -0
  194. package/src/managers/GuildMemberManager.js +599 -0
  195. package/src/managers/GuildMemberRoleManager.js +195 -0
  196. package/src/managers/GuildScheduledEventManager.js +314 -0
  197. package/src/managers/GuildSettingManager.js +155 -0
  198. package/src/managers/GuildStickerManager.js +179 -0
  199. package/src/managers/GuildTextThreadManager.js +98 -0
  200. package/src/managers/InteractionManager.js +39 -0
  201. package/src/managers/MessageManager.js +426 -0
  202. package/src/managers/PermissionOverwriteManager.js +164 -0
  203. package/src/managers/PresenceManager.js +71 -0
  204. package/src/managers/ReactionManager.js +67 -0
  205. package/src/managers/ReactionUserManager.js +73 -0
  206. package/src/managers/RelationshipManager.js +278 -0
  207. package/src/managers/RoleManager.js +448 -0
  208. package/src/managers/SessionManager.js +66 -0
  209. package/src/managers/StageInstanceManager.js +162 -0
  210. package/src/managers/ThreadManager.js +175 -0
  211. package/src/managers/ThreadMemberManager.js +186 -0
  212. package/src/managers/UserManager.js +136 -0
  213. package/src/managers/UserNoteManager.js +53 -0
  214. package/src/managers/VoiceStateManager.js +59 -0
  215. package/src/rest/APIRequest.js +149 -0
  216. package/src/rest/APIRouter.js +53 -0
  217. package/src/rest/DiscordAPIError.js +121 -0
  218. package/src/rest/HTTPError.js +64 -0
  219. package/src/rest/RESTManager.js +97 -0
  220. package/src/rest/RateLimitError.js +55 -0
  221. package/src/rest/RequestHandler.js +476 -0
  222. package/src/sharding/Shard.js +476 -0
  223. package/src/sharding/ShardClientUtil.js +279 -0
  224. package/src/sharding/ShardingManager.js +319 -0
  225. package/src/structures/AnonymousGuild.js +98 -0
  226. package/src/structures/ApplicationCommand.js +593 -0
  227. package/src/structures/ApplicationRoleConnectionMetadata.js +48 -0
  228. package/src/structures/AutoModerationActionExecution.js +89 -0
  229. package/src/structures/AutoModerationRule.js +294 -0
  230. package/src/structures/AutocompleteInteraction.js +107 -0
  231. package/src/structures/Base.js +43 -0
  232. package/src/structures/BaseCommandInteraction.js +211 -0
  233. package/src/structures/BaseGuild.js +116 -0
  234. package/src/structures/BaseGuildEmoji.js +56 -0
  235. package/src/structures/BaseGuildTextChannel.js +191 -0
  236. package/src/structures/BaseGuildVoiceChannel.js +241 -0
  237. package/src/structures/BaseMessageComponent.js +181 -0
  238. package/src/structures/ButtonInteraction.js +11 -0
  239. package/src/structures/CallState.js +63 -0
  240. package/src/structures/CategoryChannel.js +85 -0
  241. package/src/structures/Channel.js +284 -0
  242. package/src/structures/ClientPresence.js +77 -0
  243. package/src/structures/ClientUser.js +449 -0
  244. package/src/structures/CommandInteraction.js +41 -0
  245. package/src/structures/CommandInteractionOptionResolver.js +276 -0
  246. package/src/structures/ContainerComponent.js +68 -0
  247. package/src/structures/ContextMenuInteraction.js +65 -0
  248. package/src/structures/DMChannel.js +219 -0
  249. package/src/structures/DirectoryChannel.js +20 -0
  250. package/src/structures/Emoji.js +148 -0
  251. package/src/structures/FileComponent.js +49 -0
  252. package/src/structures/ForumChannel.js +31 -0
  253. package/src/structures/GroupDMChannel.js +394 -0
  254. package/src/structures/Guild.js +1638 -0
  255. package/src/structures/GuildAuditLogs.js +746 -0
  256. package/src/structures/GuildBan.js +59 -0
  257. package/src/structures/GuildBoost.js +108 -0
  258. package/src/structures/GuildChannel.js +470 -0
  259. package/src/structures/GuildEmoji.js +161 -0
  260. package/src/structures/GuildMember.js +639 -0
  261. package/src/structures/GuildPreview.js +191 -0
  262. package/src/structures/GuildPreviewEmoji.js +27 -0
  263. package/src/structures/GuildScheduledEvent.js +536 -0
  264. package/src/structures/GuildTemplate.js +236 -0
  265. package/src/structures/Integration.js +188 -0
  266. package/src/structures/IntegrationApplication.js +96 -0
  267. package/src/structures/Interaction.js +290 -0
  268. package/src/structures/InteractionCollector.js +248 -0
  269. package/src/structures/InteractionWebhook.js +43 -0
  270. package/src/structures/Invite.js +358 -0
  271. package/src/structures/InviteGuild.js +23 -0
  272. package/src/structures/InviteStageInstance.js +86 -0
  273. package/src/structures/MediaChannel.js +11 -0
  274. package/src/structures/MediaGalleryComponent.js +41 -0
  275. package/src/structures/MediaGalleryItem.js +47 -0
  276. package/src/structures/Message.js +1257 -0
  277. package/src/structures/MessageActionRow.js +105 -0
  278. package/src/structures/MessageAttachment.js +216 -0
  279. package/src/structures/MessageButton.js +166 -0
  280. package/src/structures/MessageCollector.js +146 -0
  281. package/src/structures/MessageComponentInteraction.js +120 -0
  282. package/src/structures/MessageContextMenuInteraction.js +20 -0
  283. package/src/structures/MessageEmbed.js +596 -0
  284. package/src/structures/MessageMentions.js +273 -0
  285. package/src/structures/MessagePayload.js +352 -0
  286. package/src/structures/MessageReaction.js +184 -0
  287. package/src/structures/MessageSelectMenu.js +141 -0
  288. package/src/structures/Modal.js +161 -0
  289. package/src/structures/ModalSubmitFieldsResolver.js +53 -0
  290. package/src/structures/ModalSubmitInteraction.js +119 -0
  291. package/src/structures/NewsChannel.js +32 -0
  292. package/src/structures/OAuth2Guild.js +28 -0
  293. package/src/structures/PermissionOverwrites.js +198 -0
  294. package/src/structures/Poll.js +108 -0
  295. package/src/structures/PollAnswer.js +88 -0
  296. package/src/structures/Presence.js +1105 -0
  297. package/src/structures/ReactionCollector.js +229 -0
  298. package/src/structures/ReactionEmoji.js +31 -0
  299. package/src/structures/Role.js +590 -0
  300. package/src/structures/SectionComponent.js +48 -0
  301. package/src/structures/SelectMenuInteraction.js +21 -0
  302. package/src/structures/SeparatorComponent.js +48 -0
  303. package/src/structures/Session.js +81 -0
  304. package/src/structures/StageChannel.js +104 -0
  305. package/src/structures/StageInstance.js +208 -0
  306. package/src/structures/Sticker.js +310 -0
  307. package/src/structures/StickerPack.js +95 -0
  308. package/src/structures/StoreChannel.js +56 -0
  309. package/src/structures/Team.js +118 -0
  310. package/src/structures/TeamMember.js +80 -0
  311. package/src/structures/TextChannel.js +33 -0
  312. package/src/structures/TextDisplayComponent.js +40 -0
  313. package/src/structures/TextInputComponent.js +132 -0
  314. package/src/structures/ThreadChannel.js +605 -0
  315. package/src/structures/ThreadMember.js +105 -0
  316. package/src/structures/ThreadOnlyChannel.js +249 -0
  317. package/src/structures/ThumbnailComponent.js +57 -0
  318. package/src/structures/Typing.js +74 -0
  319. package/src/structures/UnfurledMediaItem.js +29 -0
  320. package/src/structures/User.js +624 -0
  321. package/src/structures/UserContextMenuInteraction.js +29 -0
  322. package/src/structures/VoiceChannel.js +110 -0
  323. package/src/structures/VoiceChannelEffect.js +69 -0
  324. package/src/structures/VoiceRegion.js +53 -0
  325. package/src/structures/VoiceState.js +354 -0
  326. package/src/structures/WebEmbed.js +373 -0
  327. package/src/structures/Webhook.js +478 -0
  328. package/src/structures/WelcomeChannel.js +60 -0
  329. package/src/structures/WelcomeScreen.js +48 -0
  330. package/src/structures/Widget.js +87 -0
  331. package/src/structures/WidgetMember.js +99 -0
  332. package/src/structures/interfaces/Application.js +825 -0
  333. package/src/structures/interfaces/Collector.js +301 -0
  334. package/src/structures/interfaces/InteractionResponses.js +313 -0
  335. package/src/structures/interfaces/TextBasedChannel.js +743 -0
  336. package/src/util/APITypes.js +59 -0
  337. package/src/util/ActivityFlags.js +44 -0
  338. package/src/util/ApplicationFlags.js +76 -0
  339. package/src/util/AttachmentFlags.js +38 -0
  340. package/src/util/BitField.js +182 -0
  341. package/src/util/ChannelFlags.js +45 -0
  342. package/src/util/Constants.js +1927 -0
  343. package/src/util/DataResolver.js +146 -0
  344. package/src/util/Formatters.js +228 -0
  345. package/src/util/GuildMemberFlags.js +43 -0
  346. package/src/util/Intents.js +74 -0
  347. package/src/util/InviteFlags.js +34 -0
  348. package/src/util/LimitedCollection.js +134 -0
  349. package/src/util/MessageFlags.js +63 -0
  350. package/src/util/Options.js +358 -0
  351. package/src/util/Permissions.js +202 -0
  352. package/src/util/PremiumUsageFlags.js +31 -0
  353. package/src/util/PurchasedFlags.js +33 -0
  354. package/src/util/Redact.js +26 -0
  355. package/src/util/RemoteAuth.js +449 -0
  356. package/src/util/RoleFlags.js +37 -0
  357. package/src/util/SnowflakeUtil.js +92 -0
  358. package/src/util/Speaking.js +33 -0
  359. package/src/util/Sweepers.js +466 -0
  360. package/src/util/SystemChannelFlags.js +55 -0
  361. package/src/util/ThreadMemberFlags.js +30 -0
  362. package/src/util/UserFlags.js +104 -0
  363. package/src/util/Util.js +1079 -0
  364. package/typings/enums.d.ts +437 -0
  365. package/typings/index.d.ts +8197 -0
  366. package/typings/rawDataTypes.d.ts +403 -0
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @external APIGuildScheduledEventRecurrenceRule
3
+ * @see {@link https://discord-api-types.dev/api/discord-api-types-v10/interface/APIGuildScheduledEventRecurrenceRule}
4
+ */
5
+
6
+ /**
7
+ * @external APIIncidentsData
8
+ * @see {@link https://discord-api-types.dev/api/discord-api-types-v10/interface/APIIncidentsData}
9
+ */
10
+
11
+ /**
12
+ * @external GuildScheduledEventRecurrenceRuleFrequency
13
+ * @see {@link https://discord-api-types.dev/api/discord-api-types-v10/enum/GuildScheduledEventRecurrenceRuleFrequency}
14
+ */
15
+
16
+ /**
17
+ * @external GuildScheduledEventRecurrenceRuleMonth
18
+ * @see {@link https://discord-api-types.dev/api/discord-api-types-v10/enum/GuildScheduledEventRecurrenceRuleMonth}
19
+ */
20
+
21
+ /**
22
+ * @external GuildScheduledEventRecurrenceRuleWeekday
23
+ * @see {@link https://discord-api-types.dev/api/discord-api-types-v10/enum/GuildScheduledEventRecurrenceRuleWeekday}
24
+ */
25
+
26
+ /**
27
+ * @external MessageActivityType
28
+ * @see {@link https://discord-api-types.dev/api/discord-api-types-v10/enum/MessageActivityType}
29
+ */
30
+
31
+ /**
32
+ * @external NameplatePalette
33
+ * @see {@link https://discord-api-types.dev/api/discord-api-types-v10/enum/NameplatePalette}
34
+ */
35
+
36
+ /**
37
+ * @external PollLayoutType
38
+ * @see {@link https://discord-api-types.dev/api/discord-api-types-v10/enum/PollLayoutType}
39
+ */
40
+
41
+ /**
42
+ * @external ReactionType
43
+ * @see {@link https://discord-api-types.dev/api/discord-api-types-v10/enum/ReactionType}
44
+ */
45
+
46
+ /**
47
+ * @external RtpPacket
48
+ * @see {@link https://github.com/shinyoshiaki/werift-webrtc/blob/develop/doc/classes/RtpPacket.md}
49
+ */
50
+
51
+ /**
52
+ * @external TeamMemberRole
53
+ * @see {@link https://discord-api-types.dev/api/discord-api-types-v10/enum/TeamMemberRole}
54
+ */
55
+
56
+ /**
57
+ * @external VoiceChannelEffectSendAnimationType
58
+ * @see {@link https://discord-api-types.dev/api/discord-api-types-v10/enum/VoiceChannelEffectSendAnimationType}
59
+ */
@@ -0,0 +1,44 @@
1
+ 'use strict';
2
+
3
+ const BitField = require('./BitField');
4
+
5
+ /**
6
+ * Data structure that makes it easy to interact with an {@link Activity#flags} bitfield.
7
+ * @extends {BitField}
8
+ */
9
+ class ActivityFlags extends BitField {}
10
+
11
+ /**
12
+ * @name ActivityFlags
13
+ * @kind constructor
14
+ * @memberof ActivityFlags
15
+ * @param {BitFieldResolvable} [bits=0] Bit(s) to read from
16
+ */
17
+
18
+ /**
19
+ * Numeric activity flags. All available properties:
20
+ * * `INSTANCE`
21
+ * * `JOIN`
22
+ * * `SPECTATE`
23
+ * * `JOIN_REQUEST`
24
+ * * `SYNC`
25
+ * * `PLAY`
26
+ * * `PARTY_PRIVACY_FRIENDS`
27
+ * * `PARTY_PRIVACY_VOICE_CHANNEL`
28
+ * * `EMBEDDED`
29
+ * @type {Object}
30
+ * @see {@link https://discord.com/developers/docs/topics/gateway-events#activity-object-activity-flags}
31
+ */
32
+ ActivityFlags.FLAGS = {
33
+ INSTANCE: 1 << 0,
34
+ JOIN: 1 << 1,
35
+ SPECTATE: 1 << 2,
36
+ JOIN_REQUEST: 1 << 3,
37
+ SYNC: 1 << 4,
38
+ PLAY: 1 << 5,
39
+ PARTY_PRIVACY_FRIENDS: 1 << 6,
40
+ PARTY_PRIVACY_VOICE_CHANNEL: 1 << 7,
41
+ EMBEDDED: 1 << 8,
42
+ };
43
+
44
+ module.exports = ActivityFlags;
@@ -0,0 +1,76 @@
1
+ 'use strict';
2
+
3
+ const BitField = require('./BitField');
4
+
5
+ /**
6
+ * Data structure that makes it easy to interact with a {@link Application#flags} bitfield.
7
+ * @extends {BitField}
8
+ */
9
+ class ApplicationFlags extends BitField {}
10
+
11
+ /**
12
+ * @name ApplicationFlags
13
+ * @kind constructor
14
+ * @memberof ApplicationFlags
15
+ * @param {BitFieldResolvable} [bits=0] Bit(s) to read from
16
+ */
17
+
18
+ /**
19
+ * Bitfield of the packed bits
20
+ * @type {number}
21
+ * @name ApplicationFlags#bitfield
22
+ */
23
+
24
+ /**
25
+ * Numeric application flags. All available properties:
26
+ * * `EMBEDDED_RELEASED`
27
+ * * `MANAGED_EMOJI`
28
+ * * `GROUP_DM_CREATE`
29
+ * * `RPC_PRIVATE_BETA`
30
+ * * `APPLICATION_AUTO_MODERATION_RULE_CREATE_BADGE`
31
+ * * `ALLOW_ASSETS`
32
+ * * `ALLOW_ACTIVITY_ACTION_SPECTATE`
33
+ * * `ALLOW_ACTIVITY_ACTION_JOIN_REQUEST`
34
+ * * `RPC_HAS_CONNECTED`
35
+ * * `GATEWAY_PRESENCE`
36
+ * * `GATEWAY_PRESENCE_LIMITED`
37
+ * * `GATEWAY_GUILD_MEMBERS`
38
+ * * `GATEWAY_GUILD_MEMBERS_LIMITED`
39
+ * * `VERIFICATION_PENDING_GUILD_LIMIT`
40
+ * * `EMBEDDED`
41
+ * * `GATEWAY_MESSAGE_CONTENT`
42
+ * * `GATEWAY_MESSAGE_CONTENT_LIMITED`
43
+ * * `EMBEDDED_FIRST_PARTY`
44
+ * * `APPLICATION_COMMAND_BADGE`
45
+ * * `ACTIVE`
46
+ * * `IFRAME_MODAL`
47
+ * @type {Object}
48
+ * @see {@link https://discord.com/developers/docs/resources/application#application-object-application-flags}
49
+ * @see {@link https://flags.lewistehminerz.dev/}
50
+ */
51
+ ApplicationFlags.FLAGS = {
52
+ EMBEDDED_RELEASED: 1 << 1,
53
+ MANAGED_EMOJI: 1 << 2,
54
+ EMBEDDED_IAP: 1 << 3,
55
+ GROUP_DM_CREATE: 1 << 4,
56
+ RPC_PRIVATE_BETA: 1 << 5,
57
+ APPLICATION_AUTO_MODERATION_RULE_CREATE_BADGE: 1 << 6,
58
+ ALLOW_ASSETS: 1 << 8,
59
+ ALLOW_ACTIVITY_ACTION_SPECTATE: 1 << 9,
60
+ ALLOW_ACTIVITY_ACTION_JOIN_REQUEST: 1 << 10,
61
+ RPC_HAS_CONNECTED: 1 << 11,
62
+ GATEWAY_PRESENCE: 1 << 12,
63
+ GATEWAY_PRESENCE_LIMITED: 1 << 13,
64
+ GATEWAY_GUILD_MEMBERS: 1 << 14,
65
+ GATEWAY_GUILD_MEMBERS_LIMITED: 1 << 15,
66
+ VERIFICATION_PENDING_GUILD_LIMIT: 1 << 16,
67
+ EMBEDDED: 1 << 17,
68
+ GATEWAY_MESSAGE_CONTENT: 1 << 18,
69
+ GATEWAY_MESSAGE_CONTENT_LIMITED: 1 << 19,
70
+ EMBEDDED_FIRST_PARTY: 1 << 20,
71
+ APPLICATION_COMMAND_BADGE: 1 << 23,
72
+ ACTIVE: 1 << 24,
73
+ IFRAME_MODAL: 1 << 26,
74
+ };
75
+
76
+ module.exports = ApplicationFlags;
@@ -0,0 +1,38 @@
1
+ 'use strict';
2
+
3
+ const BitField = require('./BitField');
4
+
5
+ /**
6
+ * Data structure that makes it easy to interact with an {@link GuildMember#flags} bitfield.
7
+ * @extends {BitField}
8
+ */
9
+ class AttachmentFlags extends BitField {}
10
+
11
+ /**
12
+ * @name AttachmentFlags
13
+ * @kind constructor
14
+ * @memberof AttachmentFlags
15
+ * @param {BitFieldResolvable} [bits=0] Bit(s) to read from
16
+ */
17
+
18
+ /* eslint-disable max-len */
19
+ /**
20
+ * Numeric guild member flags. All available properties:
21
+ * * `IS_REMIX`
22
+ * @type {Object}
23
+ * @see {@link https://discord.com/developers/docs/resources/channel#attachment-object-attachment-structure-attachment-flags}
24
+ */
25
+ AttachmentFlags.FLAGS = {
26
+ IS_REMIX: 1 << 2,
27
+ };
28
+
29
+ /**
30
+ * Data that can be resolved to give a guild attachment bitfield. This can be:
31
+ * * A string (see {@link AttachmentFlags.FLAGS})
32
+ * * A attachment flag
33
+ * * An instance of AttachmentFlags
34
+ * * An Array of AttachmentFlagsResolvable
35
+ * @typedef {string|number|AttachmentFlags|AttachmentFlagsResolvable[]} AttachmentFlagsResolvable
36
+ */
37
+
38
+ module.exports = AttachmentFlags;
@@ -0,0 +1,182 @@
1
+ 'use strict';
2
+
3
+ const { RangeError } = require('../errors');
4
+
5
+ /**
6
+ * Data structure that makes it easy to interact with a bitfield.
7
+ */
8
+ class BitField {
9
+ /**
10
+ * @param {BitFieldResolvable} [bits=this.constructor.defaultBit] Bit(s) to read from
11
+ */
12
+ constructor(bits = this.constructor.defaultBit) {
13
+ /**
14
+ * Bitfield of the packed bits
15
+ * @type {number|bigint}
16
+ */
17
+ this.bitfield = this.constructor.resolve(bits);
18
+ }
19
+
20
+ /**
21
+ * Checks whether the bitfield has a bit, or any of multiple bits.
22
+ * @param {BitFieldResolvable} bit Bit(s) to check for
23
+ * @returns {boolean}
24
+ */
25
+ any(bit) {
26
+ return (BigInt(this.bitfield) & BigInt(this.constructor.resolve(bit))) !== 0n;
27
+ }
28
+
29
+ /**
30
+ * Checks if this bitfield equals another
31
+ * @param {BitFieldResolvable} bit Bit(s) to check for
32
+ * @returns {boolean}
33
+ */
34
+ equals(bit) {
35
+ return this.bitfield === this.constructor.resolve(bit);
36
+ }
37
+
38
+ /**
39
+ * Checks whether the bitfield has a bit, or multiple bits.
40
+ * @param {BitFieldResolvable} bit Bit(s) to check for
41
+ * @returns {boolean}
42
+ */
43
+ has(bit) {
44
+ bit = this.constructor.resolve(bit);
45
+ return (BigInt(this.bitfield) & BigInt(bit)) === BigInt(bit);
46
+ }
47
+
48
+ /**
49
+ * Gets all given bits that are missing from the bitfield.
50
+ * @param {BitFieldResolvable} bits Bit(s) to check for
51
+ * @param {...*} hasParams Additional parameters for the has method, if any
52
+ * @returns {string[]}
53
+ */
54
+ missing(bits, ...hasParams) {
55
+ return new this.constructor(bits).remove(this).toArray(...hasParams);
56
+ }
57
+
58
+ /**
59
+ * Freezes these bits, making them immutable.
60
+ * @returns {Readonly<BitField>}
61
+ */
62
+ freeze() {
63
+ return Object.freeze(this);
64
+ }
65
+
66
+ /**
67
+ * Adds bits to these ones.
68
+ * @param {...BitFieldResolvable} [bits] Bits to add
69
+ * @returns {BitField} These bits or new BitField if the instance is frozen.
70
+ */
71
+ add(...bits) {
72
+ let total = 0n;
73
+ for (const bit of bits) {
74
+ total |= BigInt(this.constructor.resolve(bit));
75
+ }
76
+ const result = this.constructor.convert(BigInt(this.bitfield) | total);
77
+ if (Object.isFrozen(this)) return new this.constructor(result);
78
+ this.bitfield = result;
79
+ return this;
80
+ }
81
+
82
+ /**
83
+ * Removes bits from these.
84
+ * @param {...BitFieldResolvable} [bits] Bits to remove
85
+ * @returns {BitField} These bits or new BitField if the instance is frozen.
86
+ */
87
+ remove(...bits) {
88
+ let total = 0n;
89
+ for (const bit of bits) {
90
+ total |= BigInt(this.constructor.resolve(bit));
91
+ }
92
+ const result = this.constructor.convert(BigInt(this.bitfield) & ~total);
93
+ if (Object.isFrozen(this)) return new this.constructor(result);
94
+ this.bitfield = result;
95
+ return this;
96
+ }
97
+
98
+ /**
99
+ * Gets an object mapping field names to a {@link boolean} indicating whether the
100
+ * bit is available.
101
+ * @param {...*} hasParams Additional parameters for the has method, if any
102
+ * @returns {Object}
103
+ */
104
+ serialize(...hasParams) {
105
+ const serialized = {};
106
+ for (const [flag, bit] of Object.entries(this.constructor.FLAGS)) serialized[flag] = this.has(bit, ...hasParams);
107
+ return serialized;
108
+ }
109
+
110
+ /**
111
+ * Gets an {@link Array} of bitfield names based on the bits available.
112
+ * @param {...*} hasParams Additional parameters for the has method, if any
113
+ * @returns {string[]}
114
+ */
115
+ toArray(...hasParams) {
116
+ return Object.keys(this.constructor.FLAGS).filter(bit => this.has(bit, ...hasParams));
117
+ }
118
+
119
+ toJSON() {
120
+ return typeof this.bitfield === 'number' ? this.bitfield : this.bitfield.toString();
121
+ }
122
+
123
+ valueOf() {
124
+ return this.bitfield;
125
+ }
126
+
127
+ *[Symbol.iterator]() {
128
+ yield* this.toArray();
129
+ }
130
+
131
+ /**
132
+ * Data that can be resolved to give a bitfield. This can be:
133
+ * * A bit number (this can be a number literal or a value taken from {@link BitField.FLAGS})
134
+ * * A string bit number
135
+ * * An instance of BitField
136
+ * * An Array of BitFieldResolvable
137
+ * @typedef {number|string|bigint|BitField|BitFieldResolvable[]} BitFieldResolvable
138
+ */
139
+
140
+ /**
141
+ * Resolves bitfields to their numeric form.
142
+ * @param {BitFieldResolvable} [bit] bit(s) to resolve
143
+ * @returns {number|bigint}
144
+ */
145
+ static resolve(bit) {
146
+ const { defaultBit } = this;
147
+ if (
148
+ typeof defaultBit === typeof bit &&
149
+ bit >= defaultBit &&
150
+ (typeof bit === 'bigint' || Number.isSafeInteger(bit))
151
+ ) {
152
+ return bit;
153
+ }
154
+ if (bit instanceof BitField) return this.resolve(bit.bitfield);
155
+ if (Array.isArray(bit)) return this.convert(bit.reduce((prev, p) => prev | BigInt(this.resolve(p)), 0n));
156
+ if (typeof bit === 'string') {
157
+ if (/^\d+$/.test(bit)) return this.resolve(typeof defaultBit === 'bigint' ? BigInt(bit) : Number(bit));
158
+ if (this.FLAGS[bit] !== undefined) return this.FLAGS[bit];
159
+ }
160
+ throw new RangeError('BITFIELD_INVALID', bit);
161
+ }
162
+
163
+ static convert(bit) {
164
+ return this.resolve(typeof this.defaultBit === 'bigint' ? bit : Number(bit));
165
+ }
166
+ }
167
+
168
+ /**
169
+ * Numeric bitfield flags.
170
+ * <info>Defined in extension classes</info>
171
+ * @type {Object}
172
+ * @abstract
173
+ */
174
+ BitField.FLAGS = {};
175
+
176
+ /**
177
+ * @type {number|bigint}
178
+ * @private
179
+ */
180
+ BitField.defaultBit = 0;
181
+
182
+ module.exports = BitField;
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ const BitField = require('./BitField');
4
+
5
+ /**
6
+ * Data structure that makes it easy to interact with a {@link Channel#flags} bitfield.
7
+ * @extends {BitField}
8
+ */
9
+ class ChannelFlags extends BitField {}
10
+
11
+ /**
12
+ * Numeric guild channel flags. All available properties:
13
+ * * `PINNED`
14
+ * * `REQUIRE_TAG`
15
+ * @type {Object}
16
+ * @see {@link https://discord.com/developers/docs/resources/channel#channel-object-channel-flags}
17
+ */
18
+ ChannelFlags.FLAGS = {
19
+ PINNED: 1 << 1,
20
+ REQUIRE_TAG: 1 << 4,
21
+ };
22
+
23
+ /**
24
+ * @name ChannelFlags
25
+ * @kind constructor
26
+ * @memberof ChannelFlags
27
+ * @param {BitFieldResolvable} [bits=0] Bit(s) to read from
28
+ */
29
+
30
+ /**
31
+ * Bitfield of the packed bits
32
+ * @type {number}
33
+ * @name ChannelFlags#bitfield
34
+ */
35
+
36
+ /**
37
+ * Data that can be resolved to give a channel flag bitfield. This can be:
38
+ * * A string (see {@link ChannelFlags.FLAGS})
39
+ * * A channel flag
40
+ * * An instance of ChannelFlags
41
+ * * An Array of ChannelFlags
42
+ * @typedef {string|number|ChannelFlags|ChannelFlagsResolvable[]} ChannelFlagsResolvable
43
+ */
44
+
45
+ module.exports = ChannelFlags;