discord-sb.js 1.0.0

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 +2 -0
  3. package/package.json +91 -0
  4. package/src/WebSocket.js +39 -0
  5. package/src/client/BaseClient.js +86 -0
  6. package/src/client/Client.js +978 -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 +1249 -0
  71. package/src/client/voice/dispatcher/AnnexBDispatcher.js +120 -0
  72. package/src/client/voice/dispatcher/AudioDispatcher.js +145 -0
  73. package/src/client/voice/dispatcher/BaseDispatcher.js +459 -0
  74. package/src/client/voice/dispatcher/VPxDispatcher.js +54 -0
  75. package/src/client/voice/dispatcher/VideoDispatcher.js +68 -0
  76. package/src/client/voice/networking/VoiceUDPClient.js +173 -0
  77. package/src/client/voice/networking/VoiceWebSocket.js +286 -0
  78. package/src/client/voice/player/MediaPlayer.js +321 -0
  79. package/src/client/voice/player/processing/AnnexBNalSplitter.js +244 -0
  80. package/src/client/voice/player/processing/IvfSplitter.js +106 -0
  81. package/src/client/voice/player/processing/PCMInsertSilence.js +37 -0
  82. package/src/client/voice/receiver/PacketHandler.js +260 -0
  83. package/src/client/voice/receiver/Receiver.js +96 -0
  84. package/src/client/voice/receiver/Recorder.js +173 -0
  85. package/src/client/voice/util/Function.js +116 -0
  86. package/src/client/voice/util/PlayInterface.js +122 -0
  87. package/src/client/voice/util/Secretbox.js +64 -0
  88. package/src/client/voice/util/Silence.js +16 -0
  89. package/src/client/voice/util/Socket.js +62 -0
  90. package/src/client/voice/util/VolumeInterface.js +104 -0
  91. package/src/client/websocket/WebSocketManager.js +392 -0
  92. package/src/client/websocket/WebSocketShard.js +907 -0
  93. package/src/client/websocket/handlers/APPLICATION_COMMAND_CREATE.js +18 -0
  94. package/src/client/websocket/handlers/APPLICATION_COMMAND_DELETE.js +20 -0
  95. package/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +5 -0
  96. package/src/client/websocket/handlers/APPLICATION_COMMAND_UPDATE.js +20 -0
  97. package/src/client/websocket/handlers/AUTO_MODERATION_ACTION_EXECUTION.js +5 -0
  98. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_CREATE.js +5 -0
  99. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_DELETE.js +5 -0
  100. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_UPDATE.js +5 -0
  101. package/src/client/websocket/handlers/CALL_CREATE.js +14 -0
  102. package/src/client/websocket/handlers/CALL_DELETE.js +11 -0
  103. package/src/client/websocket/handlers/CALL_UPDATE.js +11 -0
  104. package/src/client/websocket/handlers/CHANNEL_CREATE.js +5 -0
  105. package/src/client/websocket/handlers/CHANNEL_DELETE.js +5 -0
  106. package/src/client/websocket/handlers/CHANNEL_PINS_UPDATE.js +22 -0
  107. package/src/client/websocket/handlers/CHANNEL_RECIPIENT_ADD.js +19 -0
  108. package/src/client/websocket/handlers/CHANNEL_RECIPIENT_REMOVE.js +16 -0
  109. package/src/client/websocket/handlers/CHANNEL_UPDATE.js +16 -0
  110. package/src/client/websocket/handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.js +5 -0
  111. package/src/client/websocket/handlers/GUILD_BAN_ADD.js +5 -0
  112. package/src/client/websocket/handlers/GUILD_BAN_REMOVE.js +5 -0
  113. package/src/client/websocket/handlers/GUILD_CREATE.js +52 -0
  114. package/src/client/websocket/handlers/GUILD_DELETE.js +5 -0
  115. package/src/client/websocket/handlers/GUILD_EMOJIS_UPDATE.js +5 -0
  116. package/src/client/websocket/handlers/GUILD_INTEGRATIONS_UPDATE.js +5 -0
  117. package/src/client/websocket/handlers/GUILD_MEMBERS_CHUNK.js +39 -0
  118. package/src/client/websocket/handlers/GUILD_MEMBER_ADD.js +20 -0
  119. package/src/client/websocket/handlers/GUILD_MEMBER_REMOVE.js +5 -0
  120. package/src/client/websocket/handlers/GUILD_MEMBER_UPDATE.js +5 -0
  121. package/src/client/websocket/handlers/GUILD_ROLE_CREATE.js +5 -0
  122. package/src/client/websocket/handlers/GUILD_ROLE_DELETE.js +5 -0
  123. package/src/client/websocket/handlers/GUILD_ROLE_UPDATE.js +5 -0
  124. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_CREATE.js +5 -0
  125. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_DELETE.js +5 -0
  126. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_UPDATE.js +5 -0
  127. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_ADD.js +5 -0
  128. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +5 -0
  129. package/src/client/websocket/handlers/GUILD_STICKERS_UPDATE.js +5 -0
  130. package/src/client/websocket/handlers/GUILD_UPDATE.js +5 -0
  131. package/src/client/websocket/handlers/INTERACTION_MODAL_CREATE.js +12 -0
  132. package/src/client/websocket/handlers/INVITE_CREATE.js +5 -0
  133. package/src/client/websocket/handlers/INVITE_DELETE.js +5 -0
  134. package/src/client/websocket/handlers/MESSAGE_CREATE.js +5 -0
  135. package/src/client/websocket/handlers/MESSAGE_DELETE.js +5 -0
  136. package/src/client/websocket/handlers/MESSAGE_DELETE_BULK.js +5 -0
  137. package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_ADD.js +5 -0
  138. package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_REMOVE.js +5 -0
  139. package/src/client/websocket/handlers/MESSAGE_REACTION_ADD.js +5 -0
  140. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE.js +5 -0
  141. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_ALL.js +5 -0
  142. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_EMOJI.js +5 -0
  143. package/src/client/websocket/handlers/MESSAGE_UPDATE.js +16 -0
  144. package/src/client/websocket/handlers/PRESENCE_UPDATE.js +5 -0
  145. package/src/client/websocket/handlers/READY.js +121 -0
  146. package/src/client/websocket/handlers/RELATIONSHIP_ADD.js +19 -0
  147. package/src/client/websocket/handlers/RELATIONSHIP_REMOVE.js +17 -0
  148. package/src/client/websocket/handlers/RELATIONSHIP_UPDATE.js +41 -0
  149. package/src/client/websocket/handlers/RESUMED.js +14 -0
  150. package/src/client/websocket/handlers/STAGE_INSTANCE_CREATE.js +5 -0
  151. package/src/client/websocket/handlers/STAGE_INSTANCE_DELETE.js +5 -0
  152. package/src/client/websocket/handlers/STAGE_INSTANCE_UPDATE.js +5 -0
  153. package/src/client/websocket/handlers/THREAD_CREATE.js +5 -0
  154. package/src/client/websocket/handlers/THREAD_DELETE.js +5 -0
  155. package/src/client/websocket/handlers/THREAD_LIST_SYNC.js +5 -0
  156. package/src/client/websocket/handlers/THREAD_MEMBERS_UPDATE.js +5 -0
  157. package/src/client/websocket/handlers/THREAD_MEMBER_UPDATE.js +5 -0
  158. package/src/client/websocket/handlers/THREAD_UPDATE.js +16 -0
  159. package/src/client/websocket/handlers/TYPING_START.js +5 -0
  160. package/src/client/websocket/handlers/USER_GUILD_SETTINGS_UPDATE.js +6 -0
  161. package/src/client/websocket/handlers/USER_NOTE_UPDATE.js +5 -0
  162. package/src/client/websocket/handlers/USER_REQUIRED_ACTION_UPDATE.js +78 -0
  163. package/src/client/websocket/handlers/USER_SETTINGS_UPDATE.js +5 -0
  164. package/src/client/websocket/handlers/USER_UPDATE.js +5 -0
  165. package/src/client/websocket/handlers/VOICE_CHANNEL_EFFECT_SEND.js +16 -0
  166. package/src/client/websocket/handlers/VOICE_CHANNEL_STATUS_UPDATE.js +12 -0
  167. package/src/client/websocket/handlers/VOICE_SERVER_UPDATE.js +6 -0
  168. package/src/client/websocket/handlers/VOICE_STATE_UPDATE.js +5 -0
  169. package/src/client/websocket/handlers/WEBHOOKS_UPDATE.js +5 -0
  170. package/src/client/websocket/handlers/index.js +84 -0
  171. package/src/errors/DJSError.js +61 -0
  172. package/src/errors/Messages.js +217 -0
  173. package/src/errors/index.js +4 -0
  174. package/src/index.js +172 -0
  175. package/src/managers/ApplicationCommandManager.js +264 -0
  176. package/src/managers/ApplicationCommandPermissionsManager.js +417 -0
  177. package/src/managers/AutoModerationRuleManager.js +296 -0
  178. package/src/managers/BaseGuildEmojiManager.js +80 -0
  179. package/src/managers/BaseManager.js +19 -0
  180. package/src/managers/BillingManager.js +66 -0
  181. package/src/managers/CachedManager.js +71 -0
  182. package/src/managers/ChannelManager.js +148 -0
  183. package/src/managers/ClientUserSettingManager.js +372 -0
  184. package/src/managers/DataManager.js +61 -0
  185. package/src/managers/DeveloperManager.js +254 -0
  186. package/src/managers/GuildBanManager.js +250 -0
  187. package/src/managers/GuildChannelManager.js +488 -0
  188. package/src/managers/GuildEmojiManager.js +171 -0
  189. package/src/managers/GuildEmojiRoleManager.js +118 -0
  190. package/src/managers/GuildForumThreadManager.js +108 -0
  191. package/src/managers/GuildInviteManager.js +213 -0
  192. package/src/managers/GuildManager.js +338 -0
  193. package/src/managers/GuildMemberManager.js +599 -0
  194. package/src/managers/GuildMemberRoleManager.js +195 -0
  195. package/src/managers/GuildScheduledEventManager.js +314 -0
  196. package/src/managers/GuildSettingManager.js +155 -0
  197. package/src/managers/GuildStickerManager.js +179 -0
  198. package/src/managers/GuildTextThreadManager.js +98 -0
  199. package/src/managers/InteractionManager.js +39 -0
  200. package/src/managers/MessageManager.js +423 -0
  201. package/src/managers/PermissionOverwriteManager.js +164 -0
  202. package/src/managers/PresenceManager.js +71 -0
  203. package/src/managers/QuestManager.js +353 -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 +154 -0
  216. package/src/rest/APIRouter.js +53 -0
  217. package/src/rest/DiscordAPIError.js +119 -0
  218. package/src/rest/HTTPError.js +62 -0
  219. package/src/rest/RESTManager.js +67 -0
  220. package/src/rest/RateLimitError.js +55 -0
  221. package/src/rest/RequestHandler.js +466 -0
  222. package/src/sharding/Shard.js +444 -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 +655 -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 +1791 -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 +636 -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 +1252 -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 +354 -0
  286. package/src/structures/MessageReaction.js +181 -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 +1157 -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 +640 -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 +953 -0
  333. package/src/structures/interfaces/Collector.js +300 -0
  334. package/src/structures/interfaces/InteractionResponses.js +313 -0
  335. package/src/structures/interfaces/TextBasedChannel.js +821 -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 +170 -0
  341. package/src/util/ChannelFlags.js +45 -0
  342. package/src/util/Constants.js +1914 -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 +131 -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/RemoteAuth.js +415 -0
  355. package/src/util/RoleFlags.js +37 -0
  356. package/src/util/SnowflakeUtil.js +92 -0
  357. package/src/util/Speaking.js +33 -0
  358. package/src/util/Sweepers.js +466 -0
  359. package/src/util/SystemChannelFlags.js +55 -0
  360. package/src/util/ThreadMemberFlags.js +30 -0
  361. package/src/util/UserFlags.js +104 -0
  362. package/src/util/Util.js +1048 -0
  363. package/typings/enums.d.ts +439 -0
  364. package/typings/index.d.ts +8505 -0
  365. package/typings/index.test-d.ts +0 -0
  366. package/typings/rawDataTypes.d.ts +403 -0
@@ -0,0 +1,95 @@
1
+ 'use strict';
2
+
3
+ const { Collection } = require('@discordjs/collection');
4
+ const Base = require('./Base');
5
+ const { Sticker } = require('./Sticker');
6
+ const SnowflakeUtil = require('../util/SnowflakeUtil');
7
+
8
+ /**
9
+ * Represents a pack of standard stickers.
10
+ * @extends {Base}
11
+ */
12
+ class StickerPack extends Base {
13
+ constructor(client, pack) {
14
+ super(client);
15
+ /**
16
+ * The Sticker pack's id
17
+ * @type {Snowflake}
18
+ */
19
+ this.id = pack.id;
20
+
21
+ /**
22
+ * The stickers in the pack
23
+ * @type {Collection<Snowflake, Sticker>}
24
+ */
25
+ this.stickers = new Collection(pack.stickers.map(s => [s.id, new Sticker(client, s)]));
26
+
27
+ /**
28
+ * The name of the sticker pack
29
+ * @type {string}
30
+ */
31
+ this.name = pack.name;
32
+
33
+ /**
34
+ * The id of the pack's SKU
35
+ * @type {Snowflake}
36
+ */
37
+ this.skuId = pack.sku_id;
38
+
39
+ /**
40
+ * The id of a sticker in the pack which is shown as the pack's icon
41
+ * @type {?Snowflake}
42
+ */
43
+ this.coverStickerId = pack.cover_sticker_id ?? null;
44
+
45
+ /**
46
+ * The description of the sticker pack
47
+ * @type {string}
48
+ */
49
+ this.description = pack.description;
50
+
51
+ /**
52
+ * The id of the sticker pack's banner image
53
+ * @type {?Snowflake}
54
+ */
55
+ this.bannerId = pack.banner_asset_id ?? null;
56
+ }
57
+
58
+ /**
59
+ * The timestamp the sticker was created at
60
+ * @type {number}
61
+ * @readonly
62
+ */
63
+ get createdTimestamp() {
64
+ return SnowflakeUtil.timestampFrom(this.id);
65
+ }
66
+
67
+ /**
68
+ * The time the sticker was created at
69
+ * @type {Date}
70
+ * @readonly
71
+ */
72
+ get createdAt() {
73
+ return new Date(this.createdTimestamp);
74
+ }
75
+
76
+ /**
77
+ * The sticker which is shown as the pack's icon
78
+ * @type {?Sticker}
79
+ * @readonly
80
+ */
81
+ get coverSticker() {
82
+ return this.coverStickerId && this.stickers.get(this.coverStickerId);
83
+ }
84
+
85
+ /**
86
+ * The URL to this sticker pack's banner.
87
+ * @param {StaticImageURLOptions} [options={}] Options for the Image URL
88
+ * @returns {?string}
89
+ */
90
+ bannerURL({ format, size } = {}) {
91
+ return this.bannerId && this.client.rest.cdn.StickerPackBanner(this.bannerId, format, size);
92
+ }
93
+ }
94
+
95
+ module.exports = StickerPack;
@@ -0,0 +1,56 @@
1
+ 'use strict';
2
+
3
+ const GuildChannel = require('./GuildChannel');
4
+
5
+ /**
6
+ * Represents a guild store channel on Discord.
7
+ * <warn>Store channels have been removed from Discord. See
8
+ * [Self-serve Game Selling Deprecation](https://support-dev.discord.com/hc/en-us/articles/6309018858647)
9
+ * for more information.</warn>
10
+ * @extends {GuildChannel}
11
+ */
12
+ class StoreChannel extends GuildChannel {
13
+ constructor(guild, data, client) {
14
+ super(guild, data, client);
15
+
16
+ /**
17
+ * If the guild considers this channel NSFW
18
+ * @type {boolean}
19
+ */
20
+ this.nsfw = Boolean(data.nsfw);
21
+ }
22
+
23
+ _patch(data) {
24
+ super._patch(data);
25
+
26
+ if ('nsfw' in data) {
27
+ this.nsfw = Boolean(data.nsfw);
28
+ }
29
+ }
30
+
31
+ /**
32
+ * Creates an invite to this guild channel.
33
+ * @param {CreateInviteOptions} [options={}] The options for creating the invite
34
+ * @returns {Promise<Invite>}
35
+ * @example
36
+ * // Create an invite to a channel
37
+ * channel.createInvite()
38
+ * .then(invite => console.log(`Created an invite with a code of ${invite.code}`))
39
+ * .catch(console.error);
40
+ */
41
+ createInvite(options) {
42
+ return this.guild.invites.create(this.id, options);
43
+ }
44
+
45
+ /**
46
+ * Fetches a collection of invites to this guild channel.
47
+ * Resolves with a collection mapping invites by their codes.
48
+ * @param {boolean} [cache=true] Whether or not to cache the fetched invites
49
+ * @returns {Promise<Collection<string, Invite>>}
50
+ */
51
+ fetchInvites(cache = true) {
52
+ return this.guild.invites.fetch({ channelId: this.id, cache });
53
+ }
54
+ }
55
+
56
+ module.exports = StoreChannel;
@@ -0,0 +1,118 @@
1
+ 'use strict';
2
+
3
+ const { Collection } = require('@discordjs/collection');
4
+ const Base = require('./Base');
5
+ const TeamMember = require('./TeamMember');
6
+ const SnowflakeUtil = require('../util/SnowflakeUtil');
7
+
8
+ /**
9
+ * Represents a Client OAuth2 Application Team.
10
+ * @extends {Base}
11
+ */
12
+ class Team extends Base {
13
+ constructor(client, data) {
14
+ super(client);
15
+ this._patch(data);
16
+ }
17
+
18
+ _patch(data) {
19
+ /**
20
+ * The Team's id
21
+ * @type {Snowflake}
22
+ */
23
+ this.id = data.id;
24
+
25
+ if ('name' in data) {
26
+ /**
27
+ * The name of the Team
28
+ * @type {string}
29
+ */
30
+ this.name = data.name;
31
+ }
32
+
33
+ if ('icon' in data) {
34
+ /**
35
+ * The Team's icon hash
36
+ * @type {?string}
37
+ */
38
+ this.icon = data.icon;
39
+ } else {
40
+ this.icon ??= null;
41
+ }
42
+
43
+ if ('owner_user_id' in data) {
44
+ /**
45
+ * The Team's owner id
46
+ * @type {?Snowflake}
47
+ */
48
+ this.ownerId = data.owner_user_id;
49
+ } else {
50
+ this.ownerId ??= null;
51
+ }
52
+ /**
53
+ * The Team's members
54
+ * @type {Collection<Snowflake, TeamMember>}
55
+ */
56
+ this.members = new Collection();
57
+
58
+ for (const memberData of data.members) {
59
+ const member = new TeamMember(this, memberData);
60
+ this.members.set(member.id, member);
61
+ }
62
+ }
63
+
64
+ /**
65
+ * The owner of this team
66
+ * @type {?TeamMember}
67
+ * @readonly
68
+ */
69
+ get owner() {
70
+ return this.members.get(this.ownerId) ?? null;
71
+ }
72
+
73
+ /**
74
+ * The timestamp the team was created at
75
+ * @type {number}
76
+ * @readonly
77
+ */
78
+ get createdTimestamp() {
79
+ return SnowflakeUtil.timestampFrom(this.id);
80
+ }
81
+
82
+ /**
83
+ * The time the team was created at
84
+ * @type {Date}
85
+ * @readonly
86
+ */
87
+ get createdAt() {
88
+ return new Date(this.createdTimestamp);
89
+ }
90
+
91
+ /**
92
+ * A link to the team's icon.
93
+ * @param {StaticImageURLOptions} [options={}] Options for the Image URL
94
+ * @returns {?string}
95
+ */
96
+ iconURL({ format, size } = {}) {
97
+ if (!this.icon) return null;
98
+ return this.client.rest.cdn.TeamIcon(this.id, this.icon, { format, size });
99
+ }
100
+
101
+ /**
102
+ * When concatenated with a string, this automatically returns the Team's name instead of the
103
+ * Team object.
104
+ * @returns {string}
105
+ * @example
106
+ * // Logs: Team name: My Team
107
+ * console.log(`Team name: ${team}`);
108
+ */
109
+ toString() {
110
+ return this.name;
111
+ }
112
+
113
+ toJSON() {
114
+ return super.toJSON({ createdTimestamp: true });
115
+ }
116
+ }
117
+
118
+ module.exports = Team;
@@ -0,0 +1,80 @@
1
+ 'use strict';
2
+
3
+ const Base = require('./Base');
4
+ const { MembershipStates } = require('../util/Constants');
5
+
6
+ /**
7
+ * Represents a Client OAuth2 Application Team Member.
8
+ * @extends {Base}
9
+ */
10
+ class TeamMember extends Base {
11
+ constructor(team, data) {
12
+ super(team.client);
13
+
14
+ /**
15
+ * The Team this member is part of
16
+ * @type {Team}
17
+ */
18
+ this.team = team;
19
+
20
+ this._patch(data);
21
+ }
22
+
23
+ _patch(data) {
24
+ if ('permissions' in data) {
25
+ /**
26
+ * The permissions this Team Member has with regard to the team
27
+ * @type {string[]}
28
+ * @deprecated Use {@link TeamMember#role} instead.
29
+ */
30
+ this.permissions = data.permissions;
31
+ }
32
+
33
+ if ('role' in data) {
34
+ /**
35
+ * The role of this Team Member
36
+ * @type {TeamMemberRole}
37
+ */
38
+ this.role = data.role;
39
+ }
40
+
41
+ if ('membership_state' in data) {
42
+ /**
43
+ * The permissions this Team Member has with regard to the team
44
+ * @type {MembershipState}
45
+ */
46
+ this.membershipState = MembershipStates[data.membership_state];
47
+ }
48
+
49
+ if ('user' in data) {
50
+ /**
51
+ * The user for this Team Member
52
+ * @type {User}
53
+ */
54
+ this.user = this.client.users._add(data.user);
55
+ }
56
+ }
57
+
58
+ /**
59
+ * The Team Member's id
60
+ * @type {Snowflake}
61
+ * @readonly
62
+ */
63
+ get id() {
64
+ return this.user.id;
65
+ }
66
+
67
+ /**
68
+ * When concatenated with a string, this automatically returns the team member's mention instead of the
69
+ * TeamMember object.
70
+ * @returns {string}
71
+ * @example
72
+ * // Logs: Team Member's mention: <@123456789012345678>
73
+ * console.log(`Team Member's mention: ${teamMember}`);
74
+ */
75
+ toString() {
76
+ return this.user.toString();
77
+ }
78
+ }
79
+
80
+ module.exports = TeamMember;
@@ -0,0 +1,33 @@
1
+ 'use strict';
2
+
3
+ const BaseGuildTextChannel = require('./BaseGuildTextChannel');
4
+
5
+ /**
6
+ * Represents a guild text channel on Discord.
7
+ * @extends {BaseGuildTextChannel}
8
+ */
9
+ class TextChannel extends BaseGuildTextChannel {
10
+ _patch(data) {
11
+ super._patch(data);
12
+
13
+ if ('rate_limit_per_user' in data) {
14
+ /**
15
+ * The rate limit per user (slowmode) for this channel in seconds
16
+ * @type {number}
17
+ */
18
+ this.rateLimitPerUser = data.rate_limit_per_user;
19
+ }
20
+ }
21
+
22
+ /**
23
+ * Sets the rate limit per user (slowmode) for this channel.
24
+ * @param {number} rateLimitPerUser The new rate limit in seconds
25
+ * @param {string} [reason] Reason for changing the channel's rate limit
26
+ * @returns {Promise<TextChannel>}
27
+ */
28
+ setRateLimitPerUser(rateLimitPerUser, reason) {
29
+ return this.edit({ rateLimitPerUser }, reason);
30
+ }
31
+ }
32
+
33
+ module.exports = TextChannel;
@@ -0,0 +1,40 @@
1
+ 'use strict';
2
+
3
+ const BaseMessageComponent = require('./BaseMessageComponent');
4
+ const { MessageComponentTypes } = require('../util/Constants');
5
+
6
+ class TextDisplayComponent extends BaseMessageComponent {
7
+ /**
8
+ * @property {String} [content] Text that will be displayed similar to a message
9
+ */
10
+
11
+ /**
12
+ * @param {TextDisplayComponent | APITextDisplayComponent} [data={}] The data
13
+ */
14
+ constructor(data = {}) {
15
+ super({ type: 'TEXT_DISPLAY' });
16
+
17
+ this.setup(data);
18
+ }
19
+
20
+ setup(data) {
21
+ super.setup(data);
22
+ /**
23
+ * Text that will be displayed similar to a message
24
+ * @type {String}
25
+ */
26
+ this.content = data.content ?? null;
27
+ }
28
+
29
+ /**
30
+ * @returns {APITextDisplayComponent}
31
+ */
32
+ toJSON() {
33
+ return {
34
+ type: MessageComponentTypes[this.type],
35
+ content: this.content,
36
+ };
37
+ }
38
+ }
39
+
40
+ module.exports = TextDisplayComponent;
@@ -0,0 +1,132 @@
1
+ 'use strict';
2
+
3
+ const BaseMessageComponent = require('./BaseMessageComponent');
4
+ const { RangeError } = require('../errors');
5
+ const { TextInputStyles, MessageComponentTypes } = require('../util/Constants');
6
+ const Util = require('../util/Util');
7
+
8
+ /**
9
+ * Represents a text input component in a modal
10
+ * @extends {BaseMessageComponent}
11
+ */
12
+
13
+ class TextInputComponent extends BaseMessageComponent {
14
+ /**
15
+ * @typedef {BaseMessageComponentOptions} TextInputComponentOptions
16
+ * @property {string} [customId] A unique string to be sent in the interaction when submitted
17
+ * @property {string} [label] The text to be displayed above this text input component
18
+ * @property {number} [maxLength] Maximum length of text that can be entered
19
+ * @property {number} [minLength] Minimum length of text required to be entered
20
+ * @property {string} [placeholder] Custom placeholder text to display when no text is entered
21
+ * @property {boolean} [required] Whether or not this text input component is required
22
+ * @property {TextInputStyleResolvable} [style] The style of this text input component
23
+ * @property {string} [value] Value of this text input component
24
+ */
25
+
26
+ /**
27
+ * @param {TextInputComponent|TextInputComponentOptions} [data={}] TextInputComponent to clone or raw data
28
+ */
29
+ constructor(data = {}) {
30
+ super({ type: 'TEXT_INPUT' });
31
+
32
+ this.setup(data);
33
+ }
34
+
35
+ setup(data) {
36
+ super.setup(data);
37
+ /**
38
+ * A unique string to be sent in the interaction when submitted
39
+ * @type {?string}
40
+ */
41
+ this.customId = data.custom_id ?? data.customId ?? null;
42
+
43
+ /**
44
+ * The text to be displayed above this text input component
45
+ * @type {?string}
46
+ */
47
+ this.label = data.label ?? null;
48
+
49
+ /**
50
+ * Maximum length of text that can be entered
51
+ * @type {?number}
52
+ */
53
+ this.maxLength = data.max_length ?? data.maxLength ?? null;
54
+
55
+ /**
56
+ * Minimum length of text required to be entered
57
+ * @type {?string}
58
+ */
59
+ this.minLength = data.min_length ?? data.minLength ?? null;
60
+
61
+ /**
62
+ * Custom placeholder text to display when no text is entered
63
+ * @type {?string}
64
+ */
65
+ this.placeholder = data.placeholder ?? null;
66
+
67
+ /**
68
+ * Whether or not this text input component is required
69
+ * @type {?boolean}
70
+ */
71
+ this.required = data.required ?? false;
72
+
73
+ /**
74
+ * The style of this text input component
75
+ * @type {?TextInputStyle}
76
+ */
77
+ this.style = data.style ? TextInputComponent.resolveStyle(data.style) : null;
78
+
79
+ /**
80
+ * Value of this text input component
81
+ * @type {?string}
82
+ */
83
+ this.value = data.value ?? null;
84
+ }
85
+
86
+ /**
87
+ * Sets the value of this text input component
88
+ * @param {string} value Value of this text input component
89
+ * @returns {TextInputComponent}
90
+ */
91
+ setValue(value) {
92
+ this.value = Util.verifyString(value, RangeError, 'TEXT_INPUT_VALUE');
93
+ return this;
94
+ }
95
+
96
+ /**
97
+ * Transforms the text input component into a plain object
98
+ * @returns {APITextInput} The raw data of this text input component
99
+ */
100
+ toJSON() {
101
+ return {
102
+ custom_id: this.customId,
103
+ label: this.label,
104
+ max_length: this.maxLength,
105
+ min_length: this.minLength,
106
+ placeholder: this.placeholder,
107
+ required: this.required,
108
+ style: TextInputStyles[this.style],
109
+ type: MessageComponentTypes[this.type],
110
+ value: this.value,
111
+ };
112
+ }
113
+
114
+ /**
115
+ * Data that can be resolved to a TextInputStyle. This can be
116
+ * * TextInputStyle
117
+ * * number
118
+ * @typedef {number|TextInputStyle} TextInputStyleResolvable
119
+ */
120
+
121
+ /**
122
+ * Resolves the style of a text input component
123
+ * @param {TextInputStyleResolvable} style The style to resolve
124
+ * @returns {TextInputStyle}
125
+ * @private
126
+ */
127
+ static resolveStyle(style) {
128
+ return typeof style === 'string' ? style : TextInputStyles[style];
129
+ }
130
+ }
131
+
132
+ module.exports = TextInputComponent;