djs-selfbot-v13 3.2.2 → 3.7.1

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 (363) hide show
  1. package/README.md +37 -36
  2. package/package.json +89 -85
  3. package/src/WebSocket.js +39 -39
  4. package/src/client/BaseClient.js +86 -86
  5. package/src/client/Client.js +934 -836
  6. package/src/client/WebhookClient.js +61 -61
  7. package/src/client/actions/Action.js +116 -120
  8. package/src/client/actions/ActionsManager.js +80 -78
  9. package/src/client/actions/ApplicationCommandPermissionsUpdate.js +34 -34
  10. package/src/client/actions/AutoModerationActionExecution.js +27 -27
  11. package/src/client/actions/AutoModerationRuleCreate.js +28 -28
  12. package/src/client/actions/AutoModerationRuleDelete.js +32 -32
  13. package/src/client/actions/AutoModerationRuleUpdate.js +30 -30
  14. package/src/client/actions/ChannelCreate.js +23 -23
  15. package/src/client/actions/ChannelDelete.js +39 -39
  16. package/src/client/actions/ChannelUpdate.js +43 -43
  17. package/src/client/actions/GuildAuditLogEntryCreate.js +29 -29
  18. package/src/client/actions/GuildBanAdd.js +20 -20
  19. package/src/client/actions/GuildBanRemove.js +25 -25
  20. package/src/client/actions/GuildChannelsPositionUpdate.js +21 -21
  21. package/src/client/actions/GuildDelete.js +65 -65
  22. package/src/client/actions/GuildEmojiCreate.js +20 -20
  23. package/src/client/actions/GuildEmojiDelete.js +21 -21
  24. package/src/client/actions/GuildEmojiUpdate.js +20 -20
  25. package/src/client/actions/GuildEmojisUpdate.js +34 -34
  26. package/src/client/actions/GuildIntegrationsUpdate.js +19 -19
  27. package/src/client/actions/GuildMemberRemove.js +33 -32
  28. package/src/client/actions/GuildMemberUpdate.js +44 -43
  29. package/src/client/actions/GuildRoleCreate.js +25 -25
  30. package/src/client/actions/GuildRoleDelete.js +31 -31
  31. package/src/client/actions/GuildRoleUpdate.js +39 -39
  32. package/src/client/actions/GuildRolesPositionUpdate.js +21 -21
  33. package/src/client/actions/GuildScheduledEventCreate.js +27 -27
  34. package/src/client/actions/GuildScheduledEventDelete.js +31 -31
  35. package/src/client/actions/GuildScheduledEventUpdate.js +30 -30
  36. package/src/client/actions/GuildScheduledEventUserAdd.js +32 -32
  37. package/src/client/actions/GuildScheduledEventUserRemove.js +32 -32
  38. package/src/client/actions/GuildStickerCreate.js +20 -20
  39. package/src/client/actions/GuildStickerDelete.js +21 -21
  40. package/src/client/actions/GuildStickerUpdate.js +20 -20
  41. package/src/client/actions/GuildStickersUpdate.js +34 -34
  42. package/src/client/actions/GuildUpdate.js +33 -33
  43. package/src/client/actions/InviteCreate.js +28 -28
  44. package/src/client/actions/InviteDelete.js +30 -30
  45. package/src/client/actions/MessageCreate.js +50 -46
  46. package/src/client/actions/MessageDelete.js +32 -32
  47. package/src/client/actions/MessageDeleteBulk.js +46 -46
  48. package/src/client/actions/MessagePollVoteAdd.js +33 -0
  49. package/src/client/actions/MessagePollVoteRemove.js +33 -0
  50. package/src/client/actions/MessageReactionAdd.js +68 -56
  51. package/src/client/actions/MessageReactionRemove.js +50 -45
  52. package/src/client/actions/MessageReactionRemoveAll.js +33 -33
  53. package/src/client/actions/MessageReactionRemoveEmoji.js +28 -28
  54. package/src/client/actions/MessageUpdate.js +26 -26
  55. package/src/client/actions/PresenceUpdate.js +50 -46
  56. package/src/client/actions/StageInstanceCreate.js +28 -28
  57. package/src/client/actions/StageInstanceDelete.js +33 -33
  58. package/src/client/actions/StageInstanceUpdate.js +30 -30
  59. package/src/client/actions/ThreadCreate.js +24 -24
  60. package/src/client/actions/ThreadDelete.js +32 -32
  61. package/src/client/actions/ThreadListSync.js +59 -59
  62. package/src/client/actions/ThreadMemberUpdate.js +30 -30
  63. package/src/client/actions/ThreadMembersUpdate.js +34 -34
  64. package/src/client/actions/TypingStart.js +29 -29
  65. package/src/client/actions/UserUpdate.js +35 -35
  66. package/src/client/actions/VoiceStateUpdate.js +50 -57
  67. package/src/client/actions/WebhooksUpdate.js +20 -20
  68. package/src/client/voice/ClientVoiceManager.js +151 -51
  69. package/src/client/voice/VoiceConnection.js +1249 -0
  70. package/src/client/voice/dispatcher/AnnexBDispatcher.js +120 -0
  71. package/src/client/voice/dispatcher/AudioDispatcher.js +145 -0
  72. package/src/client/voice/dispatcher/BaseDispatcher.js +459 -0
  73. package/src/client/voice/dispatcher/VPxDispatcher.js +54 -0
  74. package/src/client/voice/dispatcher/VideoDispatcher.js +68 -0
  75. package/src/client/voice/networking/VoiceUDPClient.js +173 -0
  76. package/src/client/voice/networking/VoiceWebSocket.js +286 -0
  77. package/src/client/voice/player/MediaPlayer.js +321 -0
  78. package/src/client/voice/player/processing/AnnexBNalSplitter.js +244 -0
  79. package/src/client/voice/player/processing/IvfSplitter.js +106 -0
  80. package/src/client/voice/player/processing/PCMInsertSilence.js +37 -0
  81. package/src/client/voice/receiver/PacketHandler.js +260 -0
  82. package/src/client/voice/receiver/Receiver.js +96 -0
  83. package/src/client/voice/receiver/Recorder.js +173 -0
  84. package/src/client/voice/util/Function.js +116 -0
  85. package/src/client/voice/util/PlayInterface.js +122 -0
  86. package/src/client/voice/util/Secretbox.js +64 -0
  87. package/src/client/voice/util/Silence.js +16 -0
  88. package/src/client/voice/util/Socket.js +62 -0
  89. package/src/client/voice/util/VolumeInterface.js +104 -0
  90. package/src/client/websocket/WebSocketManager.js +392 -392
  91. package/src/client/websocket/WebSocketShard.js +907 -906
  92. package/src/client/websocket/handlers/APPLICATION_COMMAND_CREATE.js +18 -18
  93. package/src/client/websocket/handlers/APPLICATION_COMMAND_DELETE.js +20 -20
  94. package/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +5 -5
  95. package/src/client/websocket/handlers/APPLICATION_COMMAND_UPDATE.js +20 -20
  96. package/src/client/websocket/handlers/AUTO_MODERATION_ACTION_EXECUTION.js +5 -5
  97. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_CREATE.js +5 -5
  98. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_DELETE.js +5 -5
  99. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_UPDATE.js +5 -5
  100. package/src/client/websocket/handlers/CALL_CREATE.js +14 -14
  101. package/src/client/websocket/handlers/CALL_DELETE.js +11 -11
  102. package/src/client/websocket/handlers/CALL_UPDATE.js +11 -11
  103. package/src/client/websocket/handlers/CHANNEL_CREATE.js +5 -5
  104. package/src/client/websocket/handlers/CHANNEL_DELETE.js +5 -5
  105. package/src/client/websocket/handlers/CHANNEL_PINS_UPDATE.js +22 -22
  106. package/src/client/websocket/handlers/CHANNEL_RECIPIENT_ADD.js +19 -19
  107. package/src/client/websocket/handlers/CHANNEL_RECIPIENT_REMOVE.js +16 -16
  108. package/src/client/websocket/handlers/CHANNEL_UPDATE.js +16 -16
  109. package/src/client/websocket/handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.js +5 -5
  110. package/src/client/websocket/handlers/GUILD_BAN_ADD.js +5 -5
  111. package/src/client/websocket/handlers/GUILD_BAN_REMOVE.js +5 -5
  112. package/src/client/websocket/handlers/GUILD_CREATE.js +52 -52
  113. package/src/client/websocket/handlers/GUILD_DELETE.js +5 -5
  114. package/src/client/websocket/handlers/GUILD_EMOJIS_UPDATE.js +5 -5
  115. package/src/client/websocket/handlers/GUILD_INTEGRATIONS_UPDATE.js +5 -5
  116. package/src/client/websocket/handlers/GUILD_MEMBERS_CHUNK.js +39 -39
  117. package/src/client/websocket/handlers/GUILD_MEMBER_ADD.js +20 -19
  118. package/src/client/websocket/handlers/GUILD_MEMBER_REMOVE.js +5 -5
  119. package/src/client/websocket/handlers/GUILD_MEMBER_UPDATE.js +5 -5
  120. package/src/client/websocket/handlers/GUILD_ROLE_CREATE.js +5 -5
  121. package/src/client/websocket/handlers/GUILD_ROLE_DELETE.js +5 -5
  122. package/src/client/websocket/handlers/GUILD_ROLE_UPDATE.js +5 -5
  123. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_CREATE.js +5 -5
  124. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_DELETE.js +5 -5
  125. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_UPDATE.js +5 -5
  126. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_ADD.js +5 -5
  127. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +5 -5
  128. package/src/client/websocket/handlers/GUILD_STICKERS_UPDATE.js +5 -5
  129. package/src/client/websocket/handlers/GUILD_UPDATE.js +5 -5
  130. package/src/client/websocket/handlers/INTERACTION_MODAL_CREATE.js +12 -12
  131. package/src/client/websocket/handlers/INVITE_CREATE.js +5 -5
  132. package/src/client/websocket/handlers/INVITE_DELETE.js +5 -5
  133. package/src/client/websocket/handlers/MESSAGE_CREATE.js +5 -5
  134. package/src/client/websocket/handlers/MESSAGE_DELETE.js +5 -5
  135. package/src/client/websocket/handlers/MESSAGE_DELETE_BULK.js +5 -5
  136. package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_ADD.js +5 -22
  137. package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_REMOVE.js +5 -12
  138. package/src/client/websocket/handlers/MESSAGE_REACTION_ADD.js +5 -5
  139. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE.js +5 -5
  140. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_ALL.js +5 -5
  141. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_EMOJI.js +5 -5
  142. package/src/client/websocket/handlers/MESSAGE_UPDATE.js +16 -16
  143. package/src/client/websocket/handlers/PRESENCE_UPDATE.js +5 -5
  144. package/src/client/websocket/handlers/READY.js +121 -120
  145. package/src/client/websocket/handlers/RELATIONSHIP_ADD.js +19 -19
  146. package/src/client/websocket/handlers/RELATIONSHIP_REMOVE.js +17 -17
  147. package/src/client/websocket/handlers/RELATIONSHIP_UPDATE.js +41 -41
  148. package/src/client/websocket/handlers/RESUMED.js +14 -14
  149. package/src/client/websocket/handlers/STAGE_INSTANCE_CREATE.js +5 -5
  150. package/src/client/websocket/handlers/STAGE_INSTANCE_DELETE.js +5 -5
  151. package/src/client/websocket/handlers/STAGE_INSTANCE_UPDATE.js +5 -5
  152. package/src/client/websocket/handlers/THREAD_CREATE.js +5 -5
  153. package/src/client/websocket/handlers/THREAD_DELETE.js +5 -5
  154. package/src/client/websocket/handlers/THREAD_LIST_SYNC.js +5 -5
  155. package/src/client/websocket/handlers/THREAD_MEMBERS_UPDATE.js +5 -5
  156. package/src/client/websocket/handlers/THREAD_MEMBER_UPDATE.js +5 -5
  157. package/src/client/websocket/handlers/THREAD_UPDATE.js +16 -16
  158. package/src/client/websocket/handlers/TYPING_START.js +5 -5
  159. package/src/client/websocket/handlers/USER_GUILD_SETTINGS_UPDATE.js +6 -6
  160. package/src/client/websocket/handlers/USER_NOTE_UPDATE.js +5 -5
  161. package/src/client/websocket/handlers/USER_REQUIRED_ACTION_UPDATE.js +78 -78
  162. package/src/client/websocket/handlers/USER_SETTINGS_UPDATE.js +5 -5
  163. package/src/client/websocket/handlers/USER_UPDATE.js +5 -5
  164. package/src/client/websocket/handlers/VOICE_CHANNEL_EFFECT_SEND.js +16 -0
  165. package/src/client/websocket/handlers/VOICE_CHANNEL_STATUS_UPDATE.js +12 -12
  166. package/src/client/websocket/handlers/VOICE_SERVER_UPDATE.js +6 -6
  167. package/src/client/websocket/handlers/VOICE_STATE_UPDATE.js +5 -5
  168. package/src/client/websocket/handlers/WEBHOOKS_UPDATE.js +5 -5
  169. package/src/client/websocket/handlers/index.js +84 -83
  170. package/src/errors/DJSError.js +61 -61
  171. package/src/errors/Messages.js +217 -183
  172. package/src/errors/index.js +4 -4
  173. package/src/index.js +172 -159
  174. package/src/managers/ApplicationCommandManager.js +264 -264
  175. package/src/managers/ApplicationCommandPermissionsManager.js +417 -417
  176. package/src/managers/AutoModerationRuleManager.js +296 -296
  177. package/src/managers/BaseGuildEmojiManager.js +80 -80
  178. package/src/managers/BaseManager.js +19 -19
  179. package/src/managers/BillingManager.js +66 -66
  180. package/src/managers/CachedManager.js +71 -71
  181. package/src/managers/ChannelManager.js +148 -138
  182. package/src/managers/ClientUserSettingManager.js +372 -372
  183. package/src/managers/DataManager.js +61 -61
  184. package/src/managers/GuildBanManager.js +250 -250
  185. package/src/managers/GuildChannelManager.js +488 -488
  186. package/src/managers/GuildEmojiManager.js +171 -171
  187. package/src/managers/GuildEmojiRoleManager.js +118 -118
  188. package/src/managers/GuildForumThreadManager.js +108 -108
  189. package/src/managers/GuildInviteManager.js +213 -213
  190. package/src/managers/GuildManager.js +338 -304
  191. package/src/managers/GuildMemberManager.js +599 -597
  192. package/src/managers/GuildMemberRoleManager.js +195 -191
  193. package/src/managers/GuildScheduledEventManager.js +314 -296
  194. package/src/managers/GuildSettingManager.js +155 -155
  195. package/src/managers/GuildStickerManager.js +179 -179
  196. package/src/managers/GuildTextThreadManager.js +98 -98
  197. package/src/managers/InteractionManager.js +39 -39
  198. package/src/managers/MessageManager.js +423 -391
  199. package/src/managers/PermissionOverwriteManager.js +164 -166
  200. package/src/managers/PresenceManager.js +71 -58
  201. package/src/managers/ReactionManager.js +67 -67
  202. package/src/managers/ReactionUserManager.js +73 -71
  203. package/src/managers/RelationshipManager.js +278 -265
  204. package/src/managers/RoleManager.js +448 -352
  205. package/src/managers/SessionManager.js +66 -0
  206. package/src/managers/StageInstanceManager.js +162 -162
  207. package/src/managers/ThreadManager.js +175 -174
  208. package/src/managers/ThreadMemberManager.js +186 -186
  209. package/src/managers/UserManager.js +136 -146
  210. package/src/managers/UserNoteManager.js +53 -53
  211. package/src/managers/VoiceStateManager.js +59 -37
  212. package/src/rest/APIRequest.js +154 -160
  213. package/src/rest/APIRouter.js +53 -53
  214. package/src/rest/DiscordAPIError.js +119 -104
  215. package/src/rest/HTTPError.js +62 -62
  216. package/src/rest/RESTManager.js +67 -62
  217. package/src/rest/RateLimitError.js +55 -55
  218. package/src/rest/RequestHandler.js +466 -444
  219. package/src/sharding/Shard.js +444 -443
  220. package/src/sharding/ShardClientUtil.js +279 -275
  221. package/src/sharding/ShardingManager.js +319 -318
  222. package/src/structures/AnonymousGuild.js +98 -98
  223. package/src/structures/ApplicationCommand.js +593 -593
  224. package/src/structures/ApplicationRoleConnectionMetadata.js +48 -48
  225. package/src/structures/AutoModerationActionExecution.js +89 -89
  226. package/src/structures/AutoModerationRule.js +294 -294
  227. package/src/structures/AutocompleteInteraction.js +107 -107
  228. package/src/structures/Base.js +43 -43
  229. package/src/structures/BaseCommandInteraction.js +211 -211
  230. package/src/structures/BaseGuild.js +116 -116
  231. package/src/structures/BaseGuildEmoji.js +56 -56
  232. package/src/structures/BaseGuildTextChannel.js +191 -191
  233. package/src/structures/BaseGuildVoiceChannel.js +241 -241
  234. package/src/structures/BaseMessageComponent.js +181 -114
  235. package/src/structures/ButtonInteraction.js +11 -11
  236. package/src/structures/CallState.js +63 -63
  237. package/src/structures/CategoryChannel.js +85 -85
  238. package/src/structures/Channel.js +284 -270
  239. package/src/structures/ClientPresence.js +77 -85
  240. package/src/structures/ClientUser.js +479 -448
  241. package/src/structures/CommandInteraction.js +41 -41
  242. package/src/structures/CommandInteractionOptionResolver.js +276 -276
  243. package/src/structures/ContainerComponent.js +68 -0
  244. package/src/structures/ContextMenuInteraction.js +65 -65
  245. package/src/structures/DMChannel.js +219 -217
  246. package/src/structures/DirectoryChannel.js +20 -20
  247. package/src/structures/Emoji.js +148 -148
  248. package/src/structures/FileComponent.js +49 -0
  249. package/src/structures/ForumChannel.js +31 -261
  250. package/src/structures/GroupDMChannel.js +394 -387
  251. package/src/structures/Guild.js +1643 -1608
  252. package/src/structures/GuildAuditLogs.js +746 -729
  253. package/src/structures/GuildBan.js +59 -59
  254. package/src/structures/GuildBoost.js +108 -108
  255. package/src/structures/GuildChannel.js +470 -468
  256. package/src/structures/GuildEmoji.js +161 -161
  257. package/src/structures/GuildMember.js +636 -568
  258. package/src/structures/GuildPreview.js +191 -191
  259. package/src/structures/GuildPreviewEmoji.js +27 -27
  260. package/src/structures/GuildScheduledEvent.js +536 -441
  261. package/src/structures/GuildTemplate.js +236 -236
  262. package/src/structures/Integration.js +188 -188
  263. package/src/structures/IntegrationApplication.js +96 -96
  264. package/src/structures/Interaction.js +290 -290
  265. package/src/structures/InteractionCollector.js +248 -248
  266. package/src/structures/InteractionWebhook.js +43 -43
  267. package/src/structures/Invite.js +358 -358
  268. package/src/structures/InviteGuild.js +23 -23
  269. package/src/structures/InviteStageInstance.js +86 -86
  270. package/src/structures/MediaChannel.js +11 -0
  271. package/src/structures/MediaGalleryComponent.js +41 -0
  272. package/src/structures/MediaGalleryItem.js +47 -0
  273. package/src/structures/Message.js +1252 -1227
  274. package/src/structures/MessageActionRow.js +105 -103
  275. package/src/structures/MessageAttachment.js +216 -204
  276. package/src/structures/MessageButton.js +166 -165
  277. package/src/structures/MessageCollector.js +146 -146
  278. package/src/structures/MessageComponentInteraction.js +120 -120
  279. package/src/structures/MessageContextMenuInteraction.js +20 -20
  280. package/src/structures/MessageEmbed.js +596 -586
  281. package/src/structures/MessageMentions.js +273 -273
  282. package/src/structures/MessagePayload.js +354 -318
  283. package/src/structures/MessageReaction.js +181 -171
  284. package/src/structures/MessageSelectMenu.js +141 -140
  285. package/src/structures/Modal.js +161 -161
  286. package/src/structures/ModalSubmitFieldsResolver.js +53 -53
  287. package/src/structures/ModalSubmitInteraction.js +119 -119
  288. package/src/structures/NewsChannel.js +32 -32
  289. package/src/structures/OAuth2Guild.js +28 -28
  290. package/src/structures/PermissionOverwrites.js +198 -196
  291. package/src/structures/Poll.js +108 -0
  292. package/src/structures/PollAnswer.js +88 -0
  293. package/src/structures/Presence.js +1105 -1101
  294. package/src/structures/ReactionCollector.js +229 -229
  295. package/src/structures/ReactionEmoji.js +31 -31
  296. package/src/structures/Role.js +590 -531
  297. package/src/structures/SectionComponent.js +48 -0
  298. package/src/structures/SelectMenuInteraction.js +21 -21
  299. package/src/structures/SeparatorComponent.js +48 -0
  300. package/src/structures/Session.js +81 -0
  301. package/src/structures/StageChannel.js +104 -104
  302. package/src/structures/StageInstance.js +208 -208
  303. package/src/structures/Sticker.js +310 -310
  304. package/src/structures/StickerPack.js +95 -95
  305. package/src/structures/StoreChannel.js +56 -56
  306. package/src/structures/Team.js +118 -118
  307. package/src/structures/TeamMember.js +80 -71
  308. package/src/structures/TextChannel.js +33 -33
  309. package/src/structures/TextDisplayComponent.js +40 -0
  310. package/src/structures/TextInputComponent.js +132 -131
  311. package/src/structures/ThreadChannel.js +605 -607
  312. package/src/structures/ThreadMember.js +105 -105
  313. package/src/structures/ThreadOnlyChannel.js +249 -0
  314. package/src/structures/ThumbnailComponent.js +57 -0
  315. package/src/structures/Typing.js +74 -74
  316. package/src/structures/UnfurledMediaItem.js +29 -0
  317. package/src/structures/User.js +640 -543
  318. package/src/structures/UserContextMenuInteraction.js +29 -29
  319. package/src/structures/VoiceChannel.js +110 -110
  320. package/src/structures/VoiceChannelEffect.js +69 -0
  321. package/src/structures/VoiceRegion.js +53 -53
  322. package/src/structures/VoiceState.js +354 -341
  323. package/src/structures/WebEmbed.js +373 -373
  324. package/src/structures/Webhook.js +478 -467
  325. package/src/structures/WelcomeChannel.js +60 -60
  326. package/src/structures/WelcomeScreen.js +48 -48
  327. package/src/structures/Widget.js +87 -87
  328. package/src/structures/WidgetMember.js +99 -99
  329. package/src/structures/interfaces/Application.js +825 -313
  330. package/src/structures/interfaces/Collector.js +300 -300
  331. package/src/structures/interfaces/InteractionResponses.js +313 -313
  332. package/src/structures/interfaces/TextBasedChannel.js +759 -719
  333. package/src/util/APITypes.js +59 -0
  334. package/src/util/ActivityFlags.js +44 -44
  335. package/src/util/ApplicationFlags.js +76 -76
  336. package/src/util/AttachmentFlags.js +38 -38
  337. package/src/util/BitField.js +170 -170
  338. package/src/util/ChannelFlags.js +45 -45
  339. package/src/util/Constants.js +1914 -1773
  340. package/src/util/DataResolver.js +146 -145
  341. package/src/util/Formatters.js +228 -228
  342. package/src/util/GuildMemberFlags.js +43 -43
  343. package/src/util/Intents.js +74 -74
  344. package/src/util/InviteFlags.js +34 -29
  345. package/src/util/LimitedCollection.js +131 -131
  346. package/src/util/MessageFlags.js +63 -54
  347. package/src/util/Options.js +358 -336
  348. package/src/util/Permissions.js +202 -202
  349. package/src/util/PremiumUsageFlags.js +31 -31
  350. package/src/util/PurchasedFlags.js +33 -33
  351. package/src/util/RemoteAuth.js +382 -379
  352. package/src/util/RoleFlags.js +37 -37
  353. package/src/util/SnowflakeUtil.js +92 -92
  354. package/src/util/Speaking.js +33 -0
  355. package/src/util/Sweepers.js +466 -466
  356. package/src/util/SystemChannelFlags.js +55 -55
  357. package/src/util/ThreadMemberFlags.js +30 -30
  358. package/src/util/UserFlags.js +104 -104
  359. package/src/util/Util.js +1048 -889
  360. package/typings/enums.d.ts +439 -297
  361. package/typings/index.d.ts +8247 -7432
  362. package/typings/rawDataTypes.d.ts +403 -342
  363. package/src/structures/MessagePoll.js +0 -238
@@ -1,211 +1,211 @@
1
- 'use strict';
2
-
3
- const { Collection } = require('@discordjs/collection');
4
- const Interaction = require('./Interaction');
5
- const InteractionWebhook = require('./InteractionWebhook');
6
- const MessageAttachment = require('./MessageAttachment');
7
- const InteractionResponses = require('./interfaces/InteractionResponses');
8
- const { ApplicationCommandOptionTypes } = require('../util/Constants');
9
-
10
- /**
11
- * Represents a command interaction.
12
- * @extends {Interaction}
13
- * @implements {InteractionResponses}
14
- * @abstract
15
- */
16
- class BaseCommandInteraction extends Interaction {
17
- constructor(client, data) {
18
- super(client, data);
19
-
20
- /**
21
- * The id of the channel this interaction was sent in
22
- * @type {Snowflake}
23
- * @name BaseCommandInteraction#channelId
24
- */
25
-
26
- /**
27
- * The invoked application command's id
28
- * @type {Snowflake}
29
- */
30
- this.commandId = data.data.id;
31
-
32
- /**
33
- * The invoked application command's name
34
- * @type {string}
35
- */
36
- this.commandName = data.data.name;
37
-
38
- /**
39
- * Whether the reply to this interaction has been deferred
40
- * @type {boolean}
41
- */
42
- this.deferred = false;
43
-
44
- /**
45
- * Whether this interaction has already been replied to
46
- * @type {boolean}
47
- */
48
- this.replied = false;
49
-
50
- /**
51
- * Whether the reply to this interaction is ephemeral
52
- * @type {?boolean}
53
- */
54
- this.ephemeral = null;
55
-
56
- /**
57
- * An associated interaction webhook, can be used to further interact with this interaction
58
- * @type {InteractionWebhook}
59
- */
60
- this.webhook = new InteractionWebhook(this.client, this.applicationId, this.token);
61
- }
62
-
63
- /**
64
- * The invoked application command, if it was fetched before
65
- * @type {?ApplicationCommand}
66
- */
67
- get command() {
68
- const id = this.commandId;
69
- return this.guild?.commands.cache.get(id) ?? this.client.application.commands.cache.get(id) ?? null;
70
- }
71
-
72
- /**
73
- * Represents the resolved data of a received command interaction.
74
- * @typedef {Object} CommandInteractionResolvedData
75
- * @property {Collection<Snowflake, User>} [users] The resolved users
76
- * @property {Collection<Snowflake, GuildMember|APIGuildMember>} [members] The resolved guild members
77
- * @property {Collection<Snowflake, Role|APIRole>} [roles] The resolved roles
78
- * @property {Collection<Snowflake, Channel|APIChannel>} [channels] The resolved channels
79
- * @property {Collection<Snowflake, Message|APIMessage>} [messages] The resolved messages
80
- * @property {Collection<Snowflake, MessageAttachment>} [attachments] The resolved attachments
81
- */
82
-
83
- /**
84
- * Transforms the resolved received from the API.
85
- * @param {APIInteractionDataResolved} resolved The received resolved objects
86
- * @returns {CommandInteractionResolvedData}
87
- * @private
88
- */
89
- transformResolved({ members, users, channels, roles, messages, attachments }) {
90
- const result = {};
91
-
92
- if (members) {
93
- result.members = new Collection();
94
- for (const [id, member] of Object.entries(members)) {
95
- const user = users[id];
96
- result.members.set(id, this.guild?.members._add({ user, ...member }) ?? member);
97
- }
98
- }
99
-
100
- if (users) {
101
- result.users = new Collection();
102
- for (const user of Object.values(users)) {
103
- result.users.set(user.id, this.client.users._add(user));
104
- }
105
- }
106
-
107
- if (roles) {
108
- result.roles = new Collection();
109
- for (const role of Object.values(roles)) {
110
- result.roles.set(role.id, this.guild?.roles._add(role) ?? role);
111
- }
112
- }
113
-
114
- if (channels) {
115
- result.channels = new Collection();
116
- for (const channel of Object.values(channels)) {
117
- result.channels.set(channel.id, this.client.channels._add(channel, this.guild) ?? channel);
118
- }
119
- }
120
-
121
- if (messages) {
122
- result.messages = new Collection();
123
- for (const message of Object.values(messages)) {
124
- result.messages.set(message.id, this.channel?.messages?._add(message) ?? message);
125
- }
126
- }
127
-
128
- if (attachments) {
129
- result.attachments = new Collection();
130
- for (const attachment of Object.values(attachments)) {
131
- const patched = new MessageAttachment(attachment.url, attachment.filename, attachment);
132
- result.attachments.set(attachment.id, patched);
133
- }
134
- }
135
-
136
- return result;
137
- }
138
-
139
- /**
140
- * Represents an option of a received command interaction.
141
- * @typedef {Object} CommandInteractionOption
142
- * @property {string} name The name of the option
143
- * @property {ApplicationCommandOptionType} type The type of the option
144
- * @property {boolean} [autocomplete] Whether the option is an autocomplete option
145
- * @property {string|number|boolean} [value] The value of the option
146
- * @property {CommandInteractionOption[]} [options] Additional options if this option is a
147
- * subcommand (group)
148
- * @property {User} [user] The resolved user
149
- * @property {GuildMember|APIGuildMember} [member] The resolved member
150
- * @property {GuildChannel|ThreadChannel|APIChannel} [channel] The resolved channel
151
- * @property {Role|APIRole} [role] The resolved role
152
- * @property {MessageAttachment} [attachment] The resolved attachment
153
- */
154
-
155
- /**
156
- * Transforms an option received from the API.
157
- * @param {APIApplicationCommandOption} option The received option
158
- * @param {APIInteractionDataResolved} resolved The resolved interaction data
159
- * @returns {CommandInteractionOption}
160
- * @private
161
- */
162
- transformOption(option, resolved) {
163
- const result = {
164
- name: option.name,
165
- type: ApplicationCommandOptionTypes[option.type],
166
- };
167
-
168
- if ('value' in option) result.value = option.value;
169
- if ('options' in option) result.options = option.options.map(opt => this.transformOption(opt, resolved));
170
-
171
- if (resolved) {
172
- const user = resolved.users?.[option.value];
173
- if (user) result.user = this.client.users._add(user);
174
-
175
- const member = resolved.members?.[option.value];
176
- if (member) result.member = this.guild?.members._add({ user, ...member }) ?? member;
177
-
178
- const channel = resolved.channels?.[option.value];
179
- if (channel) result.channel = this.client.channels._add(channel, this.guild) ?? channel;
180
-
181
- const role = resolved.roles?.[option.value];
182
- if (role) result.role = this.guild?.roles._add(role) ?? role;
183
-
184
- const attachment = resolved.attachments?.[option.value];
185
- if (attachment) result.attachment = new MessageAttachment(attachment.url, attachment.filename, attachment);
186
- }
187
-
188
- return result;
189
- }
190
-
191
- // These are here only for documentation purposes - they are implemented by InteractionResponses
192
- /* eslint-disable no-empty-function */
193
- deferReply() {}
194
- reply() {}
195
- fetchReply() {}
196
- editReply() {}
197
- deleteReply() {}
198
- followUp() {}
199
- showModal() {}
200
- awaitModalSubmit() {}
201
- }
202
-
203
- InteractionResponses.applyToClass(BaseCommandInteraction, ['deferUpdate', 'update']);
204
-
205
- module.exports = BaseCommandInteraction;
206
-
207
- /* eslint-disable max-len */
208
- /**
209
- * @external APIInteractionDataResolved
210
- * @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-resolved-data-structure}
211
- */
1
+ 'use strict';
2
+
3
+ const { Collection } = require('@discordjs/collection');
4
+ const Interaction = require('./Interaction');
5
+ const InteractionWebhook = require('./InteractionWebhook');
6
+ const MessageAttachment = require('./MessageAttachment');
7
+ const InteractionResponses = require('./interfaces/InteractionResponses');
8
+ const { ApplicationCommandOptionTypes } = require('../util/Constants');
9
+
10
+ /**
11
+ * Represents a command interaction.
12
+ * @extends {Interaction}
13
+ * @implements {InteractionResponses}
14
+ * @abstract
15
+ */
16
+ class BaseCommandInteraction extends Interaction {
17
+ constructor(client, data) {
18
+ super(client, data);
19
+
20
+ /**
21
+ * The id of the channel this interaction was sent in
22
+ * @type {Snowflake}
23
+ * @name BaseCommandInteraction#channelId
24
+ */
25
+
26
+ /**
27
+ * The invoked application command's id
28
+ * @type {Snowflake}
29
+ */
30
+ this.commandId = data.data.id;
31
+
32
+ /**
33
+ * The invoked application command's name
34
+ * @type {string}
35
+ */
36
+ this.commandName = data.data.name;
37
+
38
+ /**
39
+ * Whether the reply to this interaction has been deferred
40
+ * @type {boolean}
41
+ */
42
+ this.deferred = false;
43
+
44
+ /**
45
+ * Whether this interaction has already been replied to
46
+ * @type {boolean}
47
+ */
48
+ this.replied = false;
49
+
50
+ /**
51
+ * Whether the reply to this interaction is ephemeral
52
+ * @type {?boolean}
53
+ */
54
+ this.ephemeral = null;
55
+
56
+ /**
57
+ * An associated interaction webhook, can be used to further interact with this interaction
58
+ * @type {InteractionWebhook}
59
+ */
60
+ this.webhook = new InteractionWebhook(this.client, this.applicationId, this.token);
61
+ }
62
+
63
+ /**
64
+ * The invoked application command, if it was fetched before
65
+ * @type {?ApplicationCommand}
66
+ */
67
+ get command() {
68
+ const id = this.commandId;
69
+ return this.guild?.commands.cache.get(id) ?? this.client.application.commands.cache.get(id) ?? null;
70
+ }
71
+
72
+ /**
73
+ * Represents the resolved data of a received command interaction.
74
+ * @typedef {Object} CommandInteractionResolvedData
75
+ * @property {Collection<Snowflake, User>} [users] The resolved users
76
+ * @property {Collection<Snowflake, GuildMember|APIGuildMember>} [members] The resolved guild members
77
+ * @property {Collection<Snowflake, Role|APIRole>} [roles] The resolved roles
78
+ * @property {Collection<Snowflake, Channel|APIChannel>} [channels] The resolved channels
79
+ * @property {Collection<Snowflake, Message|APIMessage>} [messages] The resolved messages
80
+ * @property {Collection<Snowflake, MessageAttachment>} [attachments] The resolved attachments
81
+ */
82
+
83
+ /**
84
+ * Transforms the resolved received from the API.
85
+ * @param {APIInteractionDataResolved} resolved The received resolved objects
86
+ * @returns {CommandInteractionResolvedData}
87
+ * @private
88
+ */
89
+ transformResolved({ members, users, channels, roles, messages, attachments }) {
90
+ const result = {};
91
+
92
+ if (members) {
93
+ result.members = new Collection();
94
+ for (const [id, member] of Object.entries(members)) {
95
+ const user = users[id];
96
+ result.members.set(id, this.guild?.members._add({ user, ...member }) ?? member);
97
+ }
98
+ }
99
+
100
+ if (users) {
101
+ result.users = new Collection();
102
+ for (const user of Object.values(users)) {
103
+ result.users.set(user.id, this.client.users._add(user));
104
+ }
105
+ }
106
+
107
+ if (roles) {
108
+ result.roles = new Collection();
109
+ for (const role of Object.values(roles)) {
110
+ result.roles.set(role.id, this.guild?.roles._add(role) ?? role);
111
+ }
112
+ }
113
+
114
+ if (channels) {
115
+ result.channels = new Collection();
116
+ for (const channel of Object.values(channels)) {
117
+ result.channels.set(channel.id, this.client.channels._add(channel, this.guild) ?? channel);
118
+ }
119
+ }
120
+
121
+ if (messages) {
122
+ result.messages = new Collection();
123
+ for (const message of Object.values(messages)) {
124
+ result.messages.set(message.id, this.channel?.messages?._add(message) ?? message);
125
+ }
126
+ }
127
+
128
+ if (attachments) {
129
+ result.attachments = new Collection();
130
+ for (const attachment of Object.values(attachments)) {
131
+ const patched = new MessageAttachment(attachment.url, attachment.filename, attachment);
132
+ result.attachments.set(attachment.id, patched);
133
+ }
134
+ }
135
+
136
+ return result;
137
+ }
138
+
139
+ /**
140
+ * Represents an option of a received command interaction.
141
+ * @typedef {Object} CommandInteractionOption
142
+ * @property {string} name The name of the option
143
+ * @property {ApplicationCommandOptionType} type The type of the option
144
+ * @property {boolean} [autocomplete] Whether the option is an autocomplete option
145
+ * @property {string|number|boolean} [value] The value of the option
146
+ * @property {CommandInteractionOption[]} [options] Additional options if this option is a
147
+ * subcommand (group)
148
+ * @property {User} [user] The resolved user
149
+ * @property {GuildMember|APIGuildMember} [member] The resolved member
150
+ * @property {GuildChannel|ThreadChannel|APIChannel} [channel] The resolved channel
151
+ * @property {Role|APIRole} [role] The resolved role
152
+ * @property {MessageAttachment} [attachment] The resolved attachment
153
+ */
154
+
155
+ /**
156
+ * Transforms an option received from the API.
157
+ * @param {APIApplicationCommandOption} option The received option
158
+ * @param {APIInteractionDataResolved} resolved The resolved interaction data
159
+ * @returns {CommandInteractionOption}
160
+ * @private
161
+ */
162
+ transformOption(option, resolved) {
163
+ const result = {
164
+ name: option.name,
165
+ type: ApplicationCommandOptionTypes[option.type],
166
+ };
167
+
168
+ if ('value' in option) result.value = option.value;
169
+ if ('options' in option) result.options = option.options.map(opt => this.transformOption(opt, resolved));
170
+
171
+ if (resolved) {
172
+ const user = resolved.users?.[option.value];
173
+ if (user) result.user = this.client.users._add(user);
174
+
175
+ const member = resolved.members?.[option.value];
176
+ if (member) result.member = this.guild?.members._add({ user, ...member }) ?? member;
177
+
178
+ const channel = resolved.channels?.[option.value];
179
+ if (channel) result.channel = this.client.channels._add(channel, this.guild) ?? channel;
180
+
181
+ const role = resolved.roles?.[option.value];
182
+ if (role) result.role = this.guild?.roles._add(role) ?? role;
183
+
184
+ const attachment = resolved.attachments?.[option.value];
185
+ if (attachment) result.attachment = new MessageAttachment(attachment.url, attachment.filename, attachment);
186
+ }
187
+
188
+ return result;
189
+ }
190
+
191
+ // These are here only for documentation purposes - they are implemented by InteractionResponses
192
+ /* eslint-disable no-empty-function */
193
+ deferReply() {}
194
+ reply() {}
195
+ fetchReply() {}
196
+ editReply() {}
197
+ deleteReply() {}
198
+ followUp() {}
199
+ showModal() {}
200
+ awaitModalSubmit() {}
201
+ }
202
+
203
+ InteractionResponses.applyToClass(BaseCommandInteraction, ['deferUpdate', 'update']);
204
+
205
+ module.exports = BaseCommandInteraction;
206
+
207
+ /* eslint-disable max-len */
208
+ /**
209
+ * @external APIInteractionDataResolved
210
+ * @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-resolved-data-structure}
211
+ */
@@ -1,116 +1,116 @@
1
- 'use strict';
2
-
3
- const Base = require('./Base');
4
- const SnowflakeUtil = require('../util/SnowflakeUtil');
5
-
6
- /**
7
- * The base class for {@link Guild}, {@link OAuth2Guild} and {@link InviteGuild}.
8
- * @extends {Base}
9
- * @abstract
10
- */
11
- class BaseGuild extends Base {
12
- constructor(client, data) {
13
- super(client);
14
-
15
- /**
16
- * The guild's id
17
- * @type {Snowflake}
18
- */
19
- this.id = data.id;
20
-
21
- /**
22
- * The name of this guild
23
- * @type {string}
24
- */
25
- this.name = data.name;
26
-
27
- /**
28
- * The icon hash of this guild
29
- * @type {?string}
30
- */
31
- this.icon = data.icon;
32
-
33
- /**
34
- * An array of features available to this guild
35
- * @type {Features[]}
36
- */
37
- this.features = data.features;
38
- }
39
-
40
- /**
41
- * The timestamp this guild was created at
42
- * @type {number}
43
- * @readonly
44
- */
45
- get createdTimestamp() {
46
- return SnowflakeUtil.timestampFrom(this.id);
47
- }
48
-
49
- /**
50
- * The time this guild was created at
51
- * @type {Date}
52
- * @readonly
53
- */
54
- get createdAt() {
55
- return new Date(this.createdTimestamp);
56
- }
57
-
58
- /**
59
- * The acronym that shows up in place of a guild icon
60
- * @type {string}
61
- * @readonly
62
- */
63
- get nameAcronym() {
64
- return this.name
65
- .replace(/'s /g, ' ')
66
- .replace(/\w+/g, e => e[0])
67
- .replace(/\s/g, '');
68
- }
69
-
70
- /**
71
- * Whether this guild is partnered
72
- * @type {boolean}
73
- * @readonly
74
- */
75
- get partnered() {
76
- return this.features.includes('PARTNERED');
77
- }
78
-
79
- /**
80
- * Whether this guild is verified
81
- * @type {boolean}
82
- * @readonly
83
- */
84
- get verified() {
85
- return this.features.includes('VERIFIED');
86
- }
87
-
88
- /**
89
- * The URL to this guild's icon.
90
- * @param {ImageURLOptions} [options={}] Options for the Image URL
91
- * @returns {?string}
92
- */
93
- iconURL({ format, size, dynamic } = {}) {
94
- if (!this.icon) return null;
95
- return this.client.rest.cdn.Icon(this.id, this.icon, format, size, dynamic);
96
- }
97
-
98
- /**
99
- * Fetches this guild.
100
- * @returns {Promise<Guild>}
101
- */
102
- async fetch() {
103
- const data = await this.client.api.guilds(this.id).get({ query: { with_counts: true } });
104
- return this.client.guilds._add(data);
105
- }
106
-
107
- /**
108
- * When concatenated with a string, this automatically returns the guild's name instead of the Guild object.
109
- * @returns {string}
110
- */
111
- toString() {
112
- return this.name;
113
- }
114
- }
115
-
116
- module.exports = BaseGuild;
1
+ 'use strict';
2
+
3
+ const Base = require('./Base');
4
+ const SnowflakeUtil = require('../util/SnowflakeUtil');
5
+
6
+ /**
7
+ * The base class for {@link Guild}, {@link OAuth2Guild} and {@link InviteGuild}.
8
+ * @extends {Base}
9
+ * @abstract
10
+ */
11
+ class BaseGuild extends Base {
12
+ constructor(client, data) {
13
+ super(client);
14
+
15
+ /**
16
+ * The guild's id
17
+ * @type {Snowflake}
18
+ */
19
+ this.id = data.id;
20
+
21
+ /**
22
+ * The name of this guild
23
+ * @type {string}
24
+ */
25
+ this.name = data.name;
26
+
27
+ /**
28
+ * The icon hash of this guild
29
+ * @type {?string}
30
+ */
31
+ this.icon = data.icon ?? null;
32
+
33
+ /**
34
+ * An array of features available to this guild
35
+ * @type {Features[]}
36
+ */
37
+ this.features = data.features;
38
+ }
39
+
40
+ /**
41
+ * The timestamp this guild was created at
42
+ * @type {number}
43
+ * @readonly
44
+ */
45
+ get createdTimestamp() {
46
+ return SnowflakeUtil.timestampFrom(this.id);
47
+ }
48
+
49
+ /**
50
+ * The time this guild was created at
51
+ * @type {Date}
52
+ * @readonly
53
+ */
54
+ get createdAt() {
55
+ return new Date(this.createdTimestamp);
56
+ }
57
+
58
+ /**
59
+ * The acronym that shows up in place of a guild icon
60
+ * @type {string}
61
+ * @readonly
62
+ */
63
+ get nameAcronym() {
64
+ return this.name
65
+ .replace(/'s /g, ' ')
66
+ .replace(/\w+/g, e => e[0])
67
+ .replace(/\s/g, '');
68
+ }
69
+
70
+ /**
71
+ * Whether this guild is partnered
72
+ * @type {boolean}
73
+ * @readonly
74
+ */
75
+ get partnered() {
76
+ return this.features.includes('PARTNERED');
77
+ }
78
+
79
+ /**
80
+ * Whether this guild is verified
81
+ * @type {boolean}
82
+ * @readonly
83
+ */
84
+ get verified() {
85
+ return this.features.includes('VERIFIED');
86
+ }
87
+
88
+ /**
89
+ * The URL to this guild's icon.
90
+ * @param {ImageURLOptions} [options={}] Options for the Image URL
91
+ * @returns {?string}
92
+ */
93
+ iconURL({ format, size, dynamic } = {}) {
94
+ if (!this.icon) return null;
95
+ return this.client.rest.cdn.Icon(this.id, this.icon, format, size, dynamic);
96
+ }
97
+
98
+ /**
99
+ * Fetches this guild.
100
+ * @returns {Promise<Guild>}
101
+ */
102
+ async fetch() {
103
+ const data = await this.client.api.guilds(this.id).get({ query: { with_counts: true } });
104
+ return this.client.guilds._add(data);
105
+ }
106
+
107
+ /**
108
+ * When concatenated with a string, this automatically returns the guild's name instead of the Guild object.
109
+ * @returns {string}
110
+ */
111
+ toString() {
112
+ return this.name;
113
+ }
114
+ }
115
+
116
+ module.exports = BaseGuild;