@biggy1337/discord-sbjs 1.3.11

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 (373) hide show
  1. package/LICENSE +674 -0
  2. package/README.md +147 -0
  3. package/package.json +80 -0
  4. package/src/WebSocket.js +39 -0
  5. package/src/client/BaseClient.js +110 -0
  6. package/src/client/Client.js +1076 -0
  7. package/src/client/WebhookClient.js +61 -0
  8. package/src/client/actions/Action.js +133 -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 +34 -0
  48. package/src/client/actions/MessageDeleteBulk.js +43 -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 +71 -0
  52. package/src/client/actions/MessageReactionRemove.js +39 -0
  53. package/src/client/actions/MessageReactionRemoveAll.js +36 -0
  54. package/src/client/actions/MessageReactionRemoveEmoji.js +30 -0
  55. package/src/client/actions/MessageUpdate.js +28 -0
  56. package/src/client/actions/PresenceUpdate.js +55 -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 +60 -0
  63. package/src/client/actions/ThreadMemberUpdate.js +30 -0
  64. package/src/client/actions/ThreadMembersUpdate.js +38 -0
  65. package/src/client/actions/TypingStart.js +31 -0
  66. package/src/client/actions/UserUpdate.js +35 -0
  67. package/src/client/actions/VoiceStateUpdate.js +63 -0
  68. package/src/client/actions/WebhooksUpdate.js +20 -0
  69. package/src/client/voice/ClientVoiceManager.js +162 -0
  70. package/src/client/voice/StreamEventRouter.js +60 -0
  71. package/src/client/voice/VoiceConnection.js +1173 -0
  72. package/src/client/voice/dispatcher/AnnexBDispatcher.js +120 -0
  73. package/src/client/voice/dispatcher/AudioDispatcher.js +145 -0
  74. package/src/client/voice/dispatcher/BaseDispatcher.js +459 -0
  75. package/src/client/voice/dispatcher/VPxDispatcher.js +54 -0
  76. package/src/client/voice/dispatcher/VideoDispatcher.js +68 -0
  77. package/src/client/voice/networking/VoiceUDPClient.js +187 -0
  78. package/src/client/voice/networking/VoiceWebSocket.js +347 -0
  79. package/src/client/voice/player/MediaPlayer.js +321 -0
  80. package/src/client/voice/player/processing/AnnexBNalSplitter.js +244 -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 +260 -0
  84. package/src/client/voice/receiver/Receiver.js +96 -0
  85. package/src/client/voice/receiver/Recorder.js +191 -0
  86. package/src/client/voice/util/Function.js +116 -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 +62 -0
  91. package/src/client/voice/util/VolumeInterface.js +104 -0
  92. package/src/client/websocket/DispatchTable.js +7 -0
  93. package/src/client/websocket/GatewaySendScheduler.js +122 -0
  94. package/src/client/websocket/WebSocketManager.js +439 -0
  95. package/src/client/websocket/WebSocketShard.js +1085 -0
  96. package/src/client/websocket/handlers/APPLICATION_COMMAND_CREATE.js +18 -0
  97. package/src/client/websocket/handlers/APPLICATION_COMMAND_DELETE.js +20 -0
  98. package/src/client/websocket/handlers/APPLICATION_COMMAND_PERMISSIONS_UPDATE.js +5 -0
  99. package/src/client/websocket/handlers/APPLICATION_COMMAND_UPDATE.js +20 -0
  100. package/src/client/websocket/handlers/AUTO_MODERATION_ACTION_EXECUTION.js +5 -0
  101. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_CREATE.js +5 -0
  102. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_DELETE.js +5 -0
  103. package/src/client/websocket/handlers/AUTO_MODERATION_RULE_UPDATE.js +5 -0
  104. package/src/client/websocket/handlers/CALL_CREATE.js +14 -0
  105. package/src/client/websocket/handlers/CALL_DELETE.js +11 -0
  106. package/src/client/websocket/handlers/CALL_UPDATE.js +11 -0
  107. package/src/client/websocket/handlers/CHANNEL_CREATE.js +5 -0
  108. package/src/client/websocket/handlers/CHANNEL_DELETE.js +5 -0
  109. package/src/client/websocket/handlers/CHANNEL_PINS_UPDATE.js +22 -0
  110. package/src/client/websocket/handlers/CHANNEL_RECIPIENT_ADD.js +19 -0
  111. package/src/client/websocket/handlers/CHANNEL_RECIPIENT_REMOVE.js +16 -0
  112. package/src/client/websocket/handlers/CHANNEL_UPDATE.js +16 -0
  113. package/src/client/websocket/handlers/GUILD_AUDIT_LOG_ENTRY_CREATE.js +5 -0
  114. package/src/client/websocket/handlers/GUILD_BAN_ADD.js +5 -0
  115. package/src/client/websocket/handlers/GUILD_BAN_REMOVE.js +5 -0
  116. package/src/client/websocket/handlers/GUILD_CREATE.js +51 -0
  117. package/src/client/websocket/handlers/GUILD_DELETE.js +5 -0
  118. package/src/client/websocket/handlers/GUILD_EMOJIS_UPDATE.js +5 -0
  119. package/src/client/websocket/handlers/GUILD_INTEGRATIONS_UPDATE.js +5 -0
  120. package/src/client/websocket/handlers/GUILD_MEMBERS_CHUNK.js +45 -0
  121. package/src/client/websocket/handlers/GUILD_MEMBER_ADD.js +20 -0
  122. package/src/client/websocket/handlers/GUILD_MEMBER_REMOVE.js +5 -0
  123. package/src/client/websocket/handlers/GUILD_MEMBER_UPDATE.js +5 -0
  124. package/src/client/websocket/handlers/GUILD_ROLE_CREATE.js +5 -0
  125. package/src/client/websocket/handlers/GUILD_ROLE_DELETE.js +5 -0
  126. package/src/client/websocket/handlers/GUILD_ROLE_UPDATE.js +5 -0
  127. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_CREATE.js +5 -0
  128. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_DELETE.js +5 -0
  129. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_UPDATE.js +5 -0
  130. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_ADD.js +5 -0
  131. package/src/client/websocket/handlers/GUILD_SCHEDULED_EVENT_USER_REMOVE.js +5 -0
  132. package/src/client/websocket/handlers/GUILD_STICKERS_UPDATE.js +5 -0
  133. package/src/client/websocket/handlers/GUILD_UPDATE.js +5 -0
  134. package/src/client/websocket/handlers/INTERACTION_MODAL_CREATE.js +12 -0
  135. package/src/client/websocket/handlers/INVITE_CREATE.js +5 -0
  136. package/src/client/websocket/handlers/INVITE_DELETE.js +5 -0
  137. package/src/client/websocket/handlers/MESSAGE_CREATE.js +5 -0
  138. package/src/client/websocket/handlers/MESSAGE_DELETE.js +5 -0
  139. package/src/client/websocket/handlers/MESSAGE_DELETE_BULK.js +5 -0
  140. package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_ADD.js +5 -0
  141. package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_REMOVE.js +5 -0
  142. package/src/client/websocket/handlers/MESSAGE_REACTION_ADD.js +5 -0
  143. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE.js +5 -0
  144. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_ALL.js +5 -0
  145. package/src/client/websocket/handlers/MESSAGE_REACTION_REMOVE_EMOJI.js +5 -0
  146. package/src/client/websocket/handlers/MESSAGE_UPDATE.js +16 -0
  147. package/src/client/websocket/handlers/PRESENCE_UPDATE.js +5 -0
  148. package/src/client/websocket/handlers/READY.js +156 -0
  149. package/src/client/websocket/handlers/RELATIONSHIP_ADD.js +19 -0
  150. package/src/client/websocket/handlers/RELATIONSHIP_REMOVE.js +17 -0
  151. package/src/client/websocket/handlers/RELATIONSHIP_UPDATE.js +41 -0
  152. package/src/client/websocket/handlers/RESUMED.js +14 -0
  153. package/src/client/websocket/handlers/STAGE_INSTANCE_CREATE.js +5 -0
  154. package/src/client/websocket/handlers/STAGE_INSTANCE_DELETE.js +5 -0
  155. package/src/client/websocket/handlers/STAGE_INSTANCE_UPDATE.js +5 -0
  156. package/src/client/websocket/handlers/THREAD_CREATE.js +5 -0
  157. package/src/client/websocket/handlers/THREAD_DELETE.js +5 -0
  158. package/src/client/websocket/handlers/THREAD_LIST_SYNC.js +5 -0
  159. package/src/client/websocket/handlers/THREAD_MEMBERS_UPDATE.js +5 -0
  160. package/src/client/websocket/handlers/THREAD_MEMBER_UPDATE.js +5 -0
  161. package/src/client/websocket/handlers/THREAD_UPDATE.js +16 -0
  162. package/src/client/websocket/handlers/TYPING_START.js +5 -0
  163. package/src/client/websocket/handlers/USER_GUILD_SETTINGS_UPDATE.js +6 -0
  164. package/src/client/websocket/handlers/USER_NOTE_UPDATE.js +5 -0
  165. package/src/client/websocket/handlers/USER_REQUIRED_ACTION_UPDATE.js +82 -0
  166. package/src/client/websocket/handlers/USER_SETTINGS_UPDATE.js +5 -0
  167. package/src/client/websocket/handlers/USER_UPDATE.js +5 -0
  168. package/src/client/websocket/handlers/VOICE_CHANNEL_EFFECT_SEND.js +16 -0
  169. package/src/client/websocket/handlers/VOICE_CHANNEL_STATUS_UPDATE.js +12 -0
  170. package/src/client/websocket/handlers/VOICE_SERVER_UPDATE.js +12 -0
  171. package/src/client/websocket/handlers/VOICE_STATE_UPDATE.js +5 -0
  172. package/src/client/websocket/handlers/WEBHOOKS_UPDATE.js +5 -0
  173. package/src/client/websocket/handlers/index.js +84 -0
  174. package/src/errors/DJSError.js +61 -0
  175. package/src/errors/Messages.js +218 -0
  176. package/src/errors/index.js +4 -0
  177. package/src/index.js +172 -0
  178. package/src/managers/ApplicationCommandManager.js +264 -0
  179. package/src/managers/ApplicationCommandPermissionsManager.js +417 -0
  180. package/src/managers/AutoModerationRuleManager.js +296 -0
  181. package/src/managers/BaseGuildEmojiManager.js +80 -0
  182. package/src/managers/BaseManager.js +19 -0
  183. package/src/managers/BillingManager.js +66 -0
  184. package/src/managers/CachedManager.js +72 -0
  185. package/src/managers/ChannelManager.js +148 -0
  186. package/src/managers/ClientUserSettingManager.js +372 -0
  187. package/src/managers/DataManager.js +61 -0
  188. package/src/managers/DeveloperManager.js +265 -0
  189. package/src/managers/GuildBanManager.js +252 -0
  190. package/src/managers/GuildChannelManager.js +488 -0
  191. package/src/managers/GuildEmojiManager.js +171 -0
  192. package/src/managers/GuildEmojiRoleManager.js +118 -0
  193. package/src/managers/GuildForumThreadManager.js +108 -0
  194. package/src/managers/GuildInviteManager.js +213 -0
  195. package/src/managers/GuildManager.js +401 -0
  196. package/src/managers/GuildMemberManager.js +608 -0
  197. package/src/managers/GuildMemberRoleManager.js +195 -0
  198. package/src/managers/GuildScheduledEventManager.js +314 -0
  199. package/src/managers/GuildSettingManager.js +155 -0
  200. package/src/managers/GuildStickerManager.js +179 -0
  201. package/src/managers/GuildTextThreadManager.js +98 -0
  202. package/src/managers/InteractionManager.js +39 -0
  203. package/src/managers/MessageManager.js +457 -0
  204. package/src/managers/PermissionOverwriteManager.js +169 -0
  205. package/src/managers/PresenceManager.js +71 -0
  206. package/src/managers/QuestManager.js +391 -0
  207. package/src/managers/ReactionManager.js +67 -0
  208. package/src/managers/ReactionUserManager.js +73 -0
  209. package/src/managers/RelationshipManager.js +341 -0
  210. package/src/managers/RoleManager.js +448 -0
  211. package/src/managers/SessionManager.js +66 -0
  212. package/src/managers/StageInstanceManager.js +162 -0
  213. package/src/managers/ThreadManager.js +175 -0
  214. package/src/managers/ThreadMemberManager.js +186 -0
  215. package/src/managers/UserManager.js +274 -0
  216. package/src/managers/UserNoteManager.js +53 -0
  217. package/src/managers/VoiceStateManager.js +59 -0
  218. package/src/rest/APIRequest.js +198 -0
  219. package/src/rest/APIRouter.js +94 -0
  220. package/src/rest/DiscordAPIError.js +120 -0
  221. package/src/rest/HTTPError.js +62 -0
  222. package/src/rest/RESTManager.js +203 -0
  223. package/src/rest/RateLimitCoordinator.js +156 -0
  224. package/src/rest/RateLimitError.js +55 -0
  225. package/src/rest/RequestHandler.js +552 -0
  226. package/src/sharding/Shard.js +444 -0
  227. package/src/sharding/ShardClientUtil.js +279 -0
  228. package/src/sharding/ShardingManager.js +319 -0
  229. package/src/structures/AnonymousGuild.js +98 -0
  230. package/src/structures/ApplicationCommand.js +593 -0
  231. package/src/structures/ApplicationRoleConnectionMetadata.js +48 -0
  232. package/src/structures/AutoModerationActionExecution.js +89 -0
  233. package/src/structures/AutoModerationRule.js +294 -0
  234. package/src/structures/AutocompleteInteraction.js +107 -0
  235. package/src/structures/Base.js +43 -0
  236. package/src/structures/BaseCommandInteraction.js +211 -0
  237. package/src/structures/BaseGuild.js +124 -0
  238. package/src/structures/BaseGuildEmoji.js +56 -0
  239. package/src/structures/BaseGuildTextChannel.js +191 -0
  240. package/src/structures/BaseGuildVoiceChannel.js +241 -0
  241. package/src/structures/BaseMessageComponent.js +181 -0
  242. package/src/structures/ButtonInteraction.js +11 -0
  243. package/src/structures/CallState.js +63 -0
  244. package/src/structures/CategoryChannel.js +85 -0
  245. package/src/structures/Channel.js +284 -0
  246. package/src/structures/ClientPresence.js +77 -0
  247. package/src/structures/ClientUser.js +706 -0
  248. package/src/structures/CommandInteraction.js +41 -0
  249. package/src/structures/CommandInteractionOptionResolver.js +276 -0
  250. package/src/structures/ContainerComponent.js +68 -0
  251. package/src/structures/ContextMenuInteraction.js +65 -0
  252. package/src/structures/DMChannel.js +222 -0
  253. package/src/structures/DirectoryChannel.js +20 -0
  254. package/src/structures/Emoji.js +148 -0
  255. package/src/structures/FileComponent.js +49 -0
  256. package/src/structures/ForumChannel.js +31 -0
  257. package/src/structures/GroupDMChannel.js +415 -0
  258. package/src/structures/Guild.js +1804 -0
  259. package/src/structures/GuildAuditLogs.js +746 -0
  260. package/src/structures/GuildBan.js +59 -0
  261. package/src/structures/GuildBoost.js +108 -0
  262. package/src/structures/GuildChannel.js +470 -0
  263. package/src/structures/GuildEmoji.js +161 -0
  264. package/src/structures/GuildMember.js +636 -0
  265. package/src/structures/GuildPreview.js +191 -0
  266. package/src/structures/GuildPreviewEmoji.js +27 -0
  267. package/src/structures/GuildScheduledEvent.js +536 -0
  268. package/src/structures/GuildTemplate.js +236 -0
  269. package/src/structures/Integration.js +188 -0
  270. package/src/structures/IntegrationApplication.js +96 -0
  271. package/src/structures/Interaction.js +290 -0
  272. package/src/structures/InteractionCollector.js +248 -0
  273. package/src/structures/InteractionWebhook.js +43 -0
  274. package/src/structures/Invite.js +358 -0
  275. package/src/structures/InviteGuild.js +23 -0
  276. package/src/structures/InviteStageInstance.js +86 -0
  277. package/src/structures/MediaChannel.js +11 -0
  278. package/src/structures/MediaGalleryComponent.js +41 -0
  279. package/src/structures/MediaGalleryItem.js +47 -0
  280. package/src/structures/Message.js +1272 -0
  281. package/src/structures/MessageActionRow.js +105 -0
  282. package/src/structures/MessageAttachment.js +216 -0
  283. package/src/structures/MessageButton.js +166 -0
  284. package/src/structures/MessageCollector.js +146 -0
  285. package/src/structures/MessageComponentInteraction.js +120 -0
  286. package/src/structures/MessageContextMenuInteraction.js +20 -0
  287. package/src/structures/MessageEmbed.js +596 -0
  288. package/src/structures/MessageMentions.js +273 -0
  289. package/src/structures/MessagePayload.js +354 -0
  290. package/src/structures/MessageReaction.js +181 -0
  291. package/src/structures/MessageSelectMenu.js +141 -0
  292. package/src/structures/Modal.js +161 -0
  293. package/src/structures/ModalSubmitFieldsResolver.js +53 -0
  294. package/src/structures/ModalSubmitInteraction.js +119 -0
  295. package/src/structures/NewsChannel.js +32 -0
  296. package/src/structures/OAuth2Guild.js +28 -0
  297. package/src/structures/PermissionOverwrites.js +198 -0
  298. package/src/structures/Poll.js +108 -0
  299. package/src/structures/PollAnswer.js +88 -0
  300. package/src/structures/Presence.js +1165 -0
  301. package/src/structures/ReactionCollector.js +229 -0
  302. package/src/structures/ReactionEmoji.js +31 -0
  303. package/src/structures/Role.js +590 -0
  304. package/src/structures/SectionComponent.js +48 -0
  305. package/src/structures/SelectMenuInteraction.js +21 -0
  306. package/src/structures/SeparatorComponent.js +48 -0
  307. package/src/structures/Session.js +81 -0
  308. package/src/structures/StageChannel.js +104 -0
  309. package/src/structures/StageInstance.js +208 -0
  310. package/src/structures/Sticker.js +310 -0
  311. package/src/structures/StickerPack.js +95 -0
  312. package/src/structures/StoreChannel.js +56 -0
  313. package/src/structures/Team.js +118 -0
  314. package/src/structures/TeamMember.js +80 -0
  315. package/src/structures/TextChannel.js +33 -0
  316. package/src/structures/TextDisplayComponent.js +40 -0
  317. package/src/structures/TextInputComponent.js +132 -0
  318. package/src/structures/ThreadChannel.js +605 -0
  319. package/src/structures/ThreadMember.js +105 -0
  320. package/src/structures/ThreadOnlyChannel.js +249 -0
  321. package/src/structures/ThumbnailComponent.js +57 -0
  322. package/src/structures/Typing.js +74 -0
  323. package/src/structures/UnfurledMediaItem.js +29 -0
  324. package/src/structures/User.js +992 -0
  325. package/src/structures/UserContextMenuInteraction.js +29 -0
  326. package/src/structures/VoiceChannel.js +110 -0
  327. package/src/structures/VoiceChannelEffect.js +69 -0
  328. package/src/structures/VoiceRegion.js +53 -0
  329. package/src/structures/VoiceState.js +354 -0
  330. package/src/structures/WebEmbed.js +373 -0
  331. package/src/structures/Webhook.js +478 -0
  332. package/src/structures/WelcomeChannel.js +60 -0
  333. package/src/structures/WelcomeScreen.js +48 -0
  334. package/src/structures/Widget.js +87 -0
  335. package/src/structures/WidgetMember.js +100 -0
  336. package/src/structures/interfaces/Application.js +953 -0
  337. package/src/structures/interfaces/Collector.js +301 -0
  338. package/src/structures/interfaces/InteractionResponses.js +313 -0
  339. package/src/structures/interfaces/TextBasedChannel.js +821 -0
  340. package/src/util/APITypes.js +59 -0
  341. package/src/util/ActivityFlags.js +44 -0
  342. package/src/util/ApplicationFlags.js +76 -0
  343. package/src/util/AttachmentFlags.js +38 -0
  344. package/src/util/BitField.js +170 -0
  345. package/src/util/ChannelFlags.js +45 -0
  346. package/src/util/Constants.js +1953 -0
  347. package/src/util/DataResolver.js +162 -0
  348. package/src/util/FastQueue.js +93 -0
  349. package/src/util/FetchUtil.js +77 -0
  350. package/src/util/Formatters.js +228 -0
  351. package/src/util/GuildMemberFlags.js +43 -0
  352. package/src/util/Intents.js +74 -0
  353. package/src/util/InviteFlags.js +34 -0
  354. package/src/util/LimitedCollection.js +131 -0
  355. package/src/util/ListenerUtil.js +12 -0
  356. package/src/util/MessageFlags.js +63 -0
  357. package/src/util/Options.js +431 -0
  358. package/src/util/Permissions.js +202 -0
  359. package/src/util/PremiumUsageFlags.js +31 -0
  360. package/src/util/PurchasedFlags.js +33 -0
  361. package/src/util/RemoteAuth.js +425 -0
  362. package/src/util/RoleFlags.js +37 -0
  363. package/src/util/SnowflakeUtil.js +92 -0
  364. package/src/util/Speaking.js +33 -0
  365. package/src/util/Sweepers.js +493 -0
  366. package/src/util/SystemChannelFlags.js +55 -0
  367. package/src/util/ThreadMemberFlags.js +30 -0
  368. package/src/util/UserFlags.js +104 -0
  369. package/src/util/Util.js +1144 -0
  370. package/typings/enums.d.ts +437 -0
  371. package/typings/index.d.ts +8857 -0
  372. package/typings/index.test-d.ts +0 -0
  373. package/typings/rawDataTypes.d.ts +403 -0
@@ -0,0 +1,1953 @@
1
+ 'use strict';
2
+
3
+ const { Error, RangeError, TypeError } = require('../errors');
4
+
5
+ /**
6
+ * Max bulk deletable message age
7
+ * @typedef {number} MaxBulkDeletableMessageAge
8
+ */
9
+ exports.MaxBulkDeletableMessageAge = 1_209_600_000;
10
+
11
+ exports.UserAgent =
12
+ 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) discord/1.0.9210 Chrome/134.0.6998.205 Electron/35.3.0 Safari/537.36';
13
+
14
+ /**
15
+ * Chrome TLS ciphers
16
+ * @see {@link https://tls.browserleaks.com/tls}
17
+ * @see {@link https://github.com/yifeikong/curl-impersonate}
18
+ * @typedef {Array<string>} Ciphers
19
+ */
20
+ exports.ciphers = [
21
+ 'TLS_AES_128_GCM_SHA256',
22
+ 'TLS_AES_256_GCM_SHA384',
23
+ 'TLS_CHACHA20_POLY1305_SHA256',
24
+ 'ECDHE-ECDSA-AES128-GCM-SHA256',
25
+ 'ECDHE-RSA-AES128-GCM-SHA256',
26
+ 'ECDHE-ECDSA-AES256-GCM-SHA384',
27
+ 'ECDHE-RSA-AES256-GCM-SHA384',
28
+ 'ECDHE-ECDSA-CHACHA20-POLY1305',
29
+ 'ECDHE-RSA-CHACHA20-POLY1305',
30
+ 'ECDHE-RSA-AES128-SHA',
31
+ 'ECDHE-RSA-AES256-SHA',
32
+ 'AES128-GCM-SHA256',
33
+ 'AES256-GCM-SHA384',
34
+ 'AES128-SHA',
35
+ 'AES256-SHA',
36
+ ];
37
+
38
+ /**
39
+ * The types of WebSocket error codes:
40
+ * * 1000: WS_CLOSE_REQUESTED
41
+ * * 1011: INTERNAL_ERROR
42
+ * * 4000: UNKNOWN_ERROR
43
+ * * 4001: UNKNOWN_OPCODE
44
+ * * 4002: DECODE_ERROR
45
+ * * 4003: NOT_AUTHENTICATED
46
+ * * 4004: TOKEN_INVALID
47
+ * * 4005: ALREADY_AUTHENTICATED
48
+ * * 4007: INVALID_SEQ
49
+ * * 4008: RATE_LIMITED
50
+ * * 4009: SESSION_TIMED_OUT
51
+ * * 4010: SHARDING_INVALID
52
+ * * 4011: SHARDING_REQUIRED
53
+ * * 4012: INVALID_API_VERSION
54
+ * * 4013: INVALID_INTENTS
55
+ * * 4014: DISALLOWED_INTENTS
56
+ * * 4015: TOO_MANY_SESSIONS
57
+ * * 4016: CONNECTION_REQUEST_CANCELED
58
+ * @typedef {Object<number, string>} WSCodes
59
+ */
60
+ exports.WSCodes = {
61
+ 1000: 'WS_CLOSE_REQUESTED',
62
+ 1011: 'INTERNAL_ERROR',
63
+ 4000: 'UNKNOWN_ERROR',
64
+ 4001: 'UNKNOWN_OPCODE',
65
+ 4002: 'DECODE_ERROR',
66
+ 4003: 'NOT_AUTHENTICATED',
67
+ 4004: 'TOKEN_INVALID',
68
+ 4005: 'ALREADY_AUTHENTICATED',
69
+ 4007: 'INVALID_SEQ',
70
+ 4008: 'RATE_LIMITED',
71
+ 4009: 'SESSION_TIMED_OUT',
72
+ 4010: 'SHARDING_INVALID',
73
+ 4011: 'SHARDING_REQUIRED',
74
+ 4012: 'INVALID_API_VERSION',
75
+ 4013: 'INVALID_INTENTS',
76
+ 4014: 'DISALLOWED_INTENTS',
77
+ 4015: 'TOO_MANY_SESSIONS',
78
+ 4016: 'CONNECTION_REQUEST_CANCELED',
79
+ };
80
+
81
+ const AllowedImageFormats = ['webp', 'png', 'jpg', 'jpeg', 'gif'];
82
+
83
+ const AllowedImageSizes = [16, 32, 56, 64, 96, 128, 256, 300, 512, 600, 1024, 2048, 4096];
84
+
85
+ function makeImageUrl(root, { format = 'webp', size } = {}) {
86
+ if (!['undefined', 'number'].includes(typeof size)) throw new TypeError('INVALID_TYPE', 'size', 'number');
87
+ if (format && !AllowedImageFormats.includes(format)) throw new Error('IMAGE_FORMAT', format);
88
+ if (size && !AllowedImageSizes.includes(size)) throw new RangeError('IMAGE_SIZE', size);
89
+ return `${root}.${format}${size ? `?size=${size}` : ''}`;
90
+ }
91
+
92
+ /**
93
+ * Options for Image URLs.
94
+ * @typedef {StaticImageURLOptions} ImageURLOptions
95
+ * @property {boolean} [dynamic=false] If true, the format will dynamically change to `gif` for animated avatars.
96
+ */
97
+
98
+ /**
99
+ * Options for static Image URLs.
100
+ * @typedef {Object} StaticImageURLOptions
101
+ * @property {string} [format='webp'] One of `webp`, `png`, `jpg`, `jpeg`.
102
+ * @property {number} [size] One of `16`, `32`, `56`, `64`, `96`, `128`, `256`, `300`, `512`, `600`, `1024`, `2048`,
103
+ * `4096`
104
+ */
105
+
106
+ /**
107
+ * An object containing functions that return certain endpoints on the API.
108
+ * @typedef {Object<string, Function|string>} Endpoints
109
+ * @see {@link https://discord.com/developers/docs/reference#image-formatting-cdn-endpoints}
110
+ */
111
+ exports.Endpoints = {
112
+ CDN(root) {
113
+ return {
114
+ Emoji: (emojiId, format = 'webp') => `${root}/emojis/${emojiId}.${format}`,
115
+ Asset: name => `${root}/assets/${name}`,
116
+ DefaultAvatar: index => `${root}/embed/avatars/${index}.png`,
117
+ Avatar: (userId, hash, format, size, dynamic = false) => {
118
+ if (dynamic && hash.startsWith('a_')) format = 'gif';
119
+ return makeImageUrl(`${root}/avatars/${userId}/${hash}`, { format, size });
120
+ },
121
+ AvatarDecoration: hash => makeImageUrl(`${root}/avatar-decoration-presets/${hash}`, { format: 'png' }),
122
+ GuildTagBadge: (guildId, hash) => `${root}/guild-tag-badges/${guildId}/${hash}.png`,
123
+ GuildMemberAvatar: (guildId, memberId, hash, format = 'webp', size, dynamic = false) => {
124
+ if (dynamic && hash.startsWith('a_')) format = 'gif';
125
+ return makeImageUrl(`${root}/guilds/${guildId}/users/${memberId}/avatars/${hash}`, { format, size });
126
+ },
127
+ GuildMemberBanner: (guildId, memberId, hash, format = 'webp', size, dynamic = false) => {
128
+ if (dynamic && hash.startsWith('a_')) format = 'gif';
129
+ return makeImageUrl(`${root}/guilds/${guildId}/users/${memberId}/banners/${hash}`, { format, size });
130
+ },
131
+ Banner: (id, hash, format, size, dynamic = false) => {
132
+ if (dynamic && hash.startsWith('a_')) format = 'gif';
133
+ return makeImageUrl(`${root}/banners/${id}/${hash}`, { format, size });
134
+ },
135
+ Icon: (guildId, hash, format, size, dynamic = false) => {
136
+ if (dynamic && hash.startsWith('a_')) format = 'gif';
137
+ return makeImageUrl(`${root}/icons/${guildId}/${hash}`, { format, size });
138
+ },
139
+ AppIcon: (appId, hash, options) => makeImageUrl(`${root}/app-icons/${appId}/${hash}`, options),
140
+ AppAsset: (appId, hash, options) => makeImageUrl(`${root}/app-assets/${appId}/${hash}`, options),
141
+ StickerPackBanner: (bannerId, format, size) =>
142
+ makeImageUrl(`${root}/app-assets/710982414301790216/store/${bannerId}`, { size, format }),
143
+ GDMIcon: (channelId, hash, format, size) =>
144
+ makeImageUrl(`${root}/channel-icons/${channelId}/${hash}`, { size, format }),
145
+ Splash: (guildId, hash, format, size) => makeImageUrl(`${root}/splashes/${guildId}/${hash}`, { size, format }),
146
+ DiscoverySplash: (guildId, hash, format, size) =>
147
+ makeImageUrl(`${root}/discovery-splashes/${guildId}/${hash}`, { size, format }),
148
+ TeamIcon: (teamId, hash, options) => makeImageUrl(`${root}/team-icons/${teamId}/${hash}`, options),
149
+ Sticker: (stickerId, stickerFormat) =>
150
+ `${root}/stickers/${stickerId}.${
151
+ stickerFormat === 'LOTTIE' ? 'json' : stickerFormat === 'GIF' ? 'gif' : 'png'
152
+ }`,
153
+ RoleIcon: (roleId, hash, format = 'webp', size) =>
154
+ makeImageUrl(`${root}/role-icons/${roleId}/${hash}`, { size, format }),
155
+ GuildScheduledEventCover: (scheduledEventId, coverHash, format, size) =>
156
+ makeImageUrl(`${root}/guild-events/${scheduledEventId}/${coverHash}`, { size, format }),
157
+ };
158
+ },
159
+ invite: (root, code, eventId) => (eventId ? `${root}/${code}?event=${eventId}` : `${root}/${code}`),
160
+ scheduledEvent: (root, guildId, eventId) => `${root}/${guildId}/${eventId}`,
161
+ botGateway: '/gateway',
162
+ };
163
+
164
+ /**
165
+ * The current status of the client. Here are the available statuses:
166
+ * * READY: 0
167
+ * * CONNECTING: 1
168
+ * * RECONNECTING: 2
169
+ * * IDLE: 3
170
+ * * NEARLY: 4
171
+ * * DISCONNECTED: 5
172
+ * * WAITING_FOR_GUILDS: 6
173
+ * * IDENTIFYING: 7
174
+ * * RESUMING: 8
175
+ * @typedef {Object<string, number>} Status
176
+ */
177
+ exports.Status = {
178
+ READY: 0,
179
+ CONNECTING: 1,
180
+ RECONNECTING: 2,
181
+ IDLE: 3,
182
+ NEARLY: 4,
183
+ DISCONNECTED: 5,
184
+ WAITING_FOR_GUILDS: 6,
185
+ IDENTIFYING: 7,
186
+ RESUMING: 8,
187
+ };
188
+
189
+ /**
190
+ * The current status of a voice connection. Here are the available statuses:
191
+ * * CONNECTED: 0
192
+ * * CONNECTING: 1
193
+ * * AUTHENTICATING: 2
194
+ * * RECONNECTING: 3
195
+ * * DISCONNECTED: 4
196
+ * @typedef {number} VoiceStatus
197
+ */
198
+ exports.VoiceStatus = {
199
+ CONNECTED: 0,
200
+ CONNECTING: 1,
201
+ AUTHENTICATING: 2,
202
+ RECONNECTING: 3,
203
+ DISCONNECTED: 4,
204
+ };
205
+
206
+ /**
207
+ * The Opcodes sent to the Gateway:
208
+ * * DISPATCH: 0
209
+ * * HEARTBEAT: 1
210
+ * * IDENTIFY: 2
211
+ * * STATUS_UPDATE: 3
212
+ * * VOICE_STATE_UPDATE: 4
213
+ * * VOICE_GUILD_PING: 5
214
+ * * RESUME: 6
215
+ * * RECONNECT: 7
216
+ * * REQUEST_GUILD_MEMBERS: 8
217
+ * * INVALID_SESSION: 9
218
+ * * HELLO: 10
219
+ * * HEARTBEAT_ACK: 11
220
+ * * GUILD_SYNC: 12 [Unused]
221
+ * * DM_UPDATE: 13 # Send => used to get dm features
222
+ * * GUILD_SUBSCRIPTIONS: 14 # Send => discord responds back with GUILD_MEMBER_LIST_UPDATE type SYNC...
223
+ * * LOBBY_CONNECT: 15
224
+ * * LOBBY_DISCONNECT: 16
225
+ * * LOBBY_VOICE_STATE_UPDATE: 17 # Receive
226
+ * * STREAM_CREATE: 18
227
+ * * STREAM_DELETE: 19
228
+ * * STREAM_WATCH: 20
229
+ * * STREAM_PING: 21 # Send
230
+ * * STREAM_SET_PAUSED: 22
231
+ * * LFG_SUBSCRIPTIONS: 23 [Unused]
232
+ * * REQUEST_GUILD_APPLICATION_COMMANDS: 24 [Unused]
233
+ * * EMBEDDED_ACTIVITY_LAUNCH: 25 => Launch an embedded activity in a voice channel or call.
234
+ * * EMBEDDED_ACTIVITY_CLOSE: 26 => Stop an embedded activity.
235
+ * * EMBEDDED_ACTIVITY_UPDATE: 27 => Update an embedded activity.
236
+ * * REQUEST_FORUM_UNREADS: 28 => Request forum channel unread counts.
237
+ * * REMOTE_COMMAND: 29 => Send a remote command to an embedded (Xbox, PlayStation) voice session.
238
+ * * GET_DELETED_ENTITY_IDS_NOT_MATCHING_HASH: 30 => Request deleted entity IDs not matching a given hash for a guild.
239
+ * * REQUEST_SOUNDBOARD_SOUNDS: 31
240
+ * * SPEED_TEST_CREATE: 32 => Create a voice speed test.
241
+ * * SPEED_TEST_DELETE: 33 => Delete a voice speed test.
242
+ * * REQUEST_LAST_MESSAGES: 34 => Request last messages for a guild's channels.
243
+ * * SEARCH_RECENT_MEMBERS: 35 => ~ Opcode 8 (Member Safety)
244
+ * * REQUEST_CHANNEL_STATUSES: 36 => Request Voice Channel status.
245
+ * * GUILD_SUBSCRIPTIONS_BULK: 37 => ~ Opcode 14
246
+ * * GUILD_CHANNELS_RESYNC: 38 => Request guild channel list resync.
247
+ * * REQUEST_CHANNEL_MEMBER_COUNT: 39 => Request member count for channels.
248
+ * * QOS_HEARTBEAT: 40 => Send heartbeat quality data.
249
+ * * UPDATE_TIME_SPENT_SESSION_ID: 41 => Update session id used for time-spent tracking.
250
+ * * LOBBY_VOICE_SERVER_PING: 42 => Ping lobby voice server.
251
+ * * REQUEST_CHANNEL_INFO: 43 => Request extended channel info.
252
+ * @typedef {Object<string, number>} Opcodes
253
+ */
254
+ exports.Opcodes = {
255
+ DISPATCH: 0,
256
+ HEARTBEAT: 1,
257
+ IDENTIFY: 2,
258
+ STATUS_UPDATE: 3,
259
+ VOICE_STATE_UPDATE: 4,
260
+ VOICE_GUILD_PING: 5,
261
+ RESUME: 6,
262
+ RECONNECT: 7,
263
+ REQUEST_GUILD_MEMBERS: 8,
264
+ INVALID_SESSION: 9,
265
+ HELLO: 10,
266
+ HEARTBEAT_ACK: 11,
267
+ GUILD_SYNC: 12,
268
+ DM_UPDATE: 13,
269
+ GUILD_SUBSCRIPTIONS: 14,
270
+ LOBBY_CONNECT: 15,
271
+ LOBBY_DISCONNECT: 16,
272
+ LOBBY_VOICE_STATE_UPDATE: 17,
273
+ STREAM_CREATE: 18,
274
+ STREAM_DELETE: 19,
275
+ STREAM_WATCH: 20,
276
+ STREAM_PING: 21,
277
+ STREAM_SET_PAUSED: 22,
278
+ REQUEST_GUILD_APPLICATION_COMMANDS: 24,
279
+ EMBEDDED_ACTIVITY_LAUNCH: 25,
280
+ EMBEDDED_ACTIVITY_CLOSE: 26,
281
+ EMBEDDED_ACTIVITY_UPDATE: 27,
282
+ REQUEST_FORUM_UNREADS: 28, // Payload: { guild_id: Snowflake, channel_id: Snowflake, threads: { thread_id: Snowflake, ack_message_id: Snowflake }[] }
283
+ REMOTE_COMMAND: 29, // Payload: { target_session_id: string, payload: any }
284
+ GET_DELETED_ENTITY_IDS_NOT_MATCHING_HASH: 30, // Payload: { guild_id: Snowflake, channel_ids_hash: string[], role_ids_hash: string[], emoji_ids_hash: string[], sticker_ids_hash: string[] }
285
+ REQUEST_SOUNDBOARD_SOUNDS: 31, // Payload: { guild_ids: string[] }
286
+ SPEED_TEST_CREATE: 32, // Payload: { preferred_region: string }
287
+ SPEED_TEST_DELETE: 33, // Payload: null
288
+ REQUEST_LAST_MESSAGES: 34, // Payload: { guild_id: string, channel_ids: string[] }
289
+ SEARCH_RECENT_MEMBERS: 35, // Payload: { guild_id: string, query: string, continuation_token?: Snowflake }
290
+ REQUEST_CHANNEL_STATUSES: 36, // Payload: { guild_id: string } | Response: CHANNEL_STATUSES | { guild_id, channels: { status, id }[] }
291
+ GUILD_SUBSCRIPTIONS_BULK: 37, // Payload: { subscriptions: Object<guild_id, { Payload_op14 - guild_id }> } | Response: Opcode 14
292
+ GUILD_CHANNELS_RESYNC: 38,
293
+ REQUEST_CHANNEL_MEMBER_COUNT: 39,
294
+ QOS_HEARTBEAT: 40,
295
+ UPDATE_TIME_SPENT_SESSION_ID: 41,
296
+ LOBBY_VOICE_SERVER_PING: 42,
297
+ REQUEST_CHANNEL_INFO: 43,
298
+ // Updated: 11/2/2026
299
+ };
300
+
301
+ /**
302
+ * @typedef {Object<string, number>} VoiceOpcodes
303
+ */
304
+ exports.VoiceOpcodes = {
305
+ IDENTIFY: 0,
306
+ SELECT_PROTOCOL: 1,
307
+ READY: 2,
308
+ HEARTBEAT: 3,
309
+ SESSION_DESCRIPTION: 4,
310
+ SPEAKING: 5,
311
+ HEARTBEAT_ACK: 6,
312
+ RESUME: 7,
313
+ HELLO: 8,
314
+ RESUMED: 9,
315
+ CLIENT_CONNECT: 11,
316
+ VIDEO: 12,
317
+ SOURCES: 12,
318
+ CLIENT_DISCONNECT: 13,
319
+ SESSION_UPDATE: 14,
320
+ MEDIA_SINK_WANTS: 15,
321
+ VOICE_BACKEND_VERSION: 16,
322
+ CHANNEL_OPTIONS_UPDATE: 17,
323
+ CLIENT_FLAGS: 18,
324
+ SPEED_TEST: 19,
325
+ CLIENT_PLATFORM: 20,
326
+ };
327
+
328
+ /**
329
+ * The types of events emitted by the Client:
330
+ * * RATE_LIMIT: rateLimit
331
+ * * INVALID_REQUEST_WARNING: invalidRequestWarning
332
+ * * API_RESPONSE: apiResponse
333
+ * * API_REQUEST: apiRequest
334
+ * * CLIENT_READY: ready
335
+ * * APPLICATION_COMMAND_CREATE: applicationCommandCreate (deprecated)
336
+ * * APPLICATION_COMMAND_DELETE: applicationCommandDelete (deprecated)
337
+ * * APPLICATION_COMMAND_UPDATE: applicationCommandUpdate (deprecated)
338
+ * * APPLICATION_COMMAND_PERMISSIONS_UPDATE: applicationCommandPermissionsUpdate
339
+ * * AUTO_MODERATION_ACTION_EXECUTION: autoModerationActionExecution
340
+ * * AUTO_MODERATION_RULE_CREATE: autoModerationRuleCreate
341
+ * * AUTO_MODERATION_RULE_DELETE: autoModerationRuleDelete
342
+ * * AUTO_MODERATION_RULE_UPDATE: autoModerationRuleUpdate
343
+ * * GUILD_AVAILABLE: guildAvailable
344
+ * * GUILD_CREATE: guildCreate
345
+ * * GUILD_DELETE: guildDelete
346
+ * * GUILD_UPDATE: guildUpdate
347
+ * * GUILD_UNAVAILABLE: guildUnavailable
348
+ * * GUILD_MEMBER_ADD: guildMemberAdd
349
+ * * GUILD_MEMBER_REMOVE: guildMemberRemove
350
+ * * GUILD_MEMBER_UPDATE: guildMemberUpdate
351
+ * * GUILD_MEMBER_AVAILABLE: guildMemberAvailable
352
+ * * GUILD_MEMBERS_CHUNK: guildMembersChunk
353
+ * * GUILD_INTEGRATIONS_UPDATE: guildIntegrationsUpdate
354
+ * * GUILD_ROLE_CREATE: roleCreate
355
+ * * GUILD_ROLE_DELETE: roleDelete
356
+ * * INVITE_CREATE: inviteCreate
357
+ * * INVITE_DELETE: inviteDelete
358
+ * * GUILD_ROLE_UPDATE: roleUpdate
359
+ * * GUILD_EMOJI_CREATE: emojiCreate
360
+ * * GUILD_EMOJI_DELETE: emojiDelete
361
+ * * GUILD_EMOJI_UPDATE: emojiUpdate
362
+ * * GUILD_BAN_ADD: guildBanAdd
363
+ * * GUILD_BAN_REMOVE: guildBanRemove
364
+ * * CHANNEL_CREATE: channelCreate
365
+ * * CHANNEL_DELETE: channelDelete
366
+ * * CHANNEL_UPDATE: channelUpdate
367
+ * * CHANNEL_PINS_UPDATE: channelPinsUpdate
368
+ * * MESSAGE_CREATE: messageCreate
369
+ * * MESSAGE_DELETE: messageDelete
370
+ * * MESSAGE_UPDATE: messageUpdate
371
+ * * MESSAGE_BULK_DELETE: messageDeleteBulk
372
+ * * MESSAGE_REACTION_ADD: messageReactionAdd
373
+ * * MESSAGE_REACTION_REMOVE: messageReactionRemove
374
+ * * MESSAGE_REACTION_REMOVE_ALL: messageReactionRemoveAll
375
+ * * MESSAGE_REACTION_REMOVE_EMOJI: messageReactionRemoveEmoji
376
+ * * THREAD_CREATE: threadCreate
377
+ * * THREAD_DELETE: threadDelete
378
+ * * THREAD_UPDATE: threadUpdate
379
+ * * THREAD_LIST_SYNC: threadListSync
380
+ * * THREAD_MEMBER_UPDATE: threadMemberUpdate
381
+ * * THREAD_MEMBERS_UPDATE: threadMembersUpdate
382
+ * * USER_UPDATE: userUpdate
383
+ * * PRESENCE_UPDATE: presenceUpdate
384
+ * * VOICE_SERVER_UPDATE: voiceServerUpdate
385
+ * * VOICE_STATE_UPDATE: voiceStateUpdate
386
+ * * TYPING_START: typingStart
387
+ * * WEBHOOKS_UPDATE: webhookUpdate
388
+ * * ERROR: error
389
+ * * WARN: warn
390
+ * * DEBUG: debug
391
+ * * CACHE_SWEEP: cacheSweep
392
+ * * SHARD_DISCONNECT: shardDisconnect
393
+ * * SHARD_ERROR: shardError
394
+ * * SHARD_RECONNECTING: shardReconnecting
395
+ * * SHARD_READY: shardReady
396
+ * * SHARD_RESUME: shardResume
397
+ * * INVALIDATED: invalidated
398
+ * * RAW: raw
399
+ * * STAGE_INSTANCE_CREATE: stageInstanceCreate
400
+ * * STAGE_INSTANCE_UPDATE: stageInstanceUpdate
401
+ * * STAGE_INSTANCE_DELETE: stageInstanceDelete
402
+ * * GUILD_STICKER_CREATE: stickerCreate
403
+ * * GUILD_STICKER_DELETE: stickerDelete
404
+ * * GUILD_STICKER_UPDATE: stickerUpdate
405
+ * * GUILD_SCHEDULED_EVENT_CREATE: guildScheduledEventCreate
406
+ * * GUILD_SCHEDULED_EVENT_UPDATE: guildScheduledEventUpdate
407
+ * * GUILD_SCHEDULED_EVENT_DELETE: guildScheduledEventDelete
408
+ * * GUILD_SCHEDULED_EVENT_USER_ADD: guildScheduledEventUserAdd
409
+ * * GUILD_SCHEDULED_EVENT_USER_REMOVE: guildScheduledEventUserRemove
410
+ * * GUILD_AUDIT_LOG_ENTRY_CREATE: guildAuditLogEntryCreate
411
+ * * UNHANDLED_PACKET: unhandledPacket
412
+ * * RELATIONSHIP_ADD: relationshipAdd
413
+ * * RELATIONSHIP_REMOVE: relationshipRemove
414
+ * * RELATIONSHIP_UPDATE: relationshipUpdate
415
+ * * CHANNEL_RECIPIENT_ADD: channelRecipientAdd
416
+ * * CHANNEL_RECIPIENT_REMOVE: channelRecipientRemove
417
+ * * INTERACTION_MODAL_CREATE: interactionModalCreate
418
+ * * CALL_CREATE: callCreate
419
+ * * CALL_UPDATE: callUpdate
420
+ * * CALL_DELETE: callDelete
421
+ * * VOICE_CHANNEL_EFFECT_SEND: voiceChannelEffectSend
422
+ * @typedef {Object<string, string>} Events
423
+ */
424
+ exports.Events = {
425
+ RATE_LIMIT: 'rateLimit',
426
+ INVALID_REQUEST_WARNING: 'invalidRequestWarning',
427
+ API_RESPONSE: 'apiResponse',
428
+ API_REQUEST: 'apiRequest',
429
+ CLIENT_READY: 'ready',
430
+ APPLICATION_COMMAND_CREATE: 'applicationCommandCreate',
431
+ APPLICATION_COMMAND_DELETE: 'applicationCommandDelete',
432
+ APPLICATION_COMMAND_UPDATE: 'applicationCommandUpdate',
433
+ APPLICATION_COMMAND_PERMISSIONS_UPDATE: 'applicationCommandPermissionsUpdate',
434
+ AUTO_MODERATION_ACTION_EXECUTION: 'autoModerationActionExecution',
435
+ AUTO_MODERATION_RULE_CREATE: 'autoModerationRuleCreate',
436
+ AUTO_MODERATION_RULE_DELETE: 'autoModerationRuleDelete',
437
+ AUTO_MODERATION_RULE_UPDATE: 'autoModerationRuleUpdate',
438
+ GUILD_AVAILABLE: 'guildAvailable',
439
+ GUILD_CREATE: 'guildCreate',
440
+ GUILD_DELETE: 'guildDelete',
441
+ GUILD_UPDATE: 'guildUpdate',
442
+ GUILD_UNAVAILABLE: 'guildUnavailable',
443
+ GUILD_MEMBER_ADD: 'guildMemberAdd',
444
+ GUILD_MEMBER_REMOVE: 'guildMemberRemove',
445
+ GUILD_MEMBER_UPDATE: 'guildMemberUpdate',
446
+ GUILD_MEMBER_AVAILABLE: 'guildMemberAvailable',
447
+ GUILD_MEMBERS_CHUNK: 'guildMembersChunk',
448
+ GUILD_INTEGRATIONS_UPDATE: 'guildIntegrationsUpdate',
449
+ GUILD_ROLE_CREATE: 'roleCreate',
450
+ GUILD_ROLE_DELETE: 'roleDelete',
451
+ INVITE_CREATE: 'inviteCreate',
452
+ INVITE_DELETE: 'inviteDelete',
453
+ GUILD_ROLE_UPDATE: 'roleUpdate',
454
+ GUILD_EMOJI_CREATE: 'emojiCreate',
455
+ GUILD_EMOJI_DELETE: 'emojiDelete',
456
+ GUILD_EMOJI_UPDATE: 'emojiUpdate',
457
+ GUILD_BAN_ADD: 'guildBanAdd',
458
+ GUILD_BAN_REMOVE: 'guildBanRemove',
459
+ CHANNEL_CREATE: 'channelCreate',
460
+ CHANNEL_DELETE: 'channelDelete',
461
+ CHANNEL_UPDATE: 'channelUpdate',
462
+ CHANNEL_PINS_UPDATE: 'channelPinsUpdate',
463
+ MESSAGE_CREATE: 'messageCreate',
464
+ MESSAGE_DELETE: 'messageDelete',
465
+ MESSAGE_UPDATE: 'messageUpdate',
466
+ MESSAGE_BULK_DELETE: 'messageDeleteBulk',
467
+ MESSAGE_REACTION_ADD: 'messageReactionAdd',
468
+ MESSAGE_REACTION_REMOVE: 'messageReactionRemove',
469
+ MESSAGE_REACTION_REMOVE_ALL: 'messageReactionRemoveAll',
470
+ MESSAGE_REACTION_REMOVE_EMOJI: 'messageReactionRemoveEmoji',
471
+ THREAD_CREATE: 'threadCreate',
472
+ THREAD_DELETE: 'threadDelete',
473
+ THREAD_UPDATE: 'threadUpdate',
474
+ THREAD_LIST_SYNC: 'threadListSync',
475
+ THREAD_MEMBER_UPDATE: 'threadMemberUpdate',
476
+ THREAD_MEMBERS_UPDATE: 'threadMembersUpdate',
477
+ USER_UPDATE: 'userUpdate',
478
+ PRESENCE_UPDATE: 'presenceUpdate',
479
+ VOICE_SERVER_UPDATE: 'voiceServerUpdate',
480
+ VOICE_STATE_UPDATE: 'voiceStateUpdate',
481
+ TYPING_START: 'typingStart',
482
+ WEBHOOKS_UPDATE: 'webhookUpdate',
483
+ ERROR: 'error',
484
+ WARN: 'warn',
485
+ DEBUG: 'debug',
486
+ CACHE_SWEEP: 'cacheSweep',
487
+ SHARD_DISCONNECT: 'shardDisconnect',
488
+ SHARD_ERROR: 'shardError',
489
+ SHARD_RECONNECTING: 'shardReconnecting',
490
+ SHARD_READY: 'shardReady',
491
+ SHARD_RESUME: 'shardResume',
492
+ INVALIDATED: 'invalidated',
493
+ RAW: 'raw',
494
+ STAGE_INSTANCE_CREATE: 'stageInstanceCreate',
495
+ STAGE_INSTANCE_UPDATE: 'stageInstanceUpdate',
496
+ STAGE_INSTANCE_DELETE: 'stageInstanceDelete',
497
+ GUILD_STICKER_CREATE: 'stickerCreate',
498
+ GUILD_STICKER_DELETE: 'stickerDelete',
499
+ GUILD_STICKER_UPDATE: 'stickerUpdate',
500
+ GUILD_SCHEDULED_EVENT_CREATE: 'guildScheduledEventCreate',
501
+ GUILD_SCHEDULED_EVENT_UPDATE: 'guildScheduledEventUpdate',
502
+ GUILD_SCHEDULED_EVENT_DELETE: 'guildScheduledEventDelete',
503
+ GUILD_SCHEDULED_EVENT_USER_ADD: 'guildScheduledEventUserAdd',
504
+ GUILD_SCHEDULED_EVENT_USER_REMOVE: 'guildScheduledEventUserRemove',
505
+ GUILD_AUDIT_LOG_ENTRY_CREATE: 'guildAuditLogEntryCreate',
506
+ UNHANDLED_PACKET: 'unhandledPacket',
507
+ RELATIONSHIP_ADD: 'relationshipAdd',
508
+ RELATIONSHIP_UPDATE: 'relationshipUpdate',
509
+ RELATIONSHIP_REMOVE: 'relationshipRemove',
510
+ CHANNEL_RECIPIENT_ADD: 'channelRecipientAdd',
511
+ CHANNEL_RECIPIENT_REMOVE: 'channelRecipientRemove',
512
+ INTERACTION_MODAL_CREATE: 'interactionModalCreate',
513
+ CALL_CREATE: 'callCreate',
514
+ CALL_UPDATE: 'callUpdate',
515
+ CALL_DELETE: 'callDelete',
516
+ MESSAGE_POLL_VOTE_ADD: 'messagePollVoteAdd',
517
+ MESSAGE_POLL_VOTE_REMOVE: 'messagePollVoteRemove',
518
+ VOICE_CHANNEL_EFFECT_SEND: 'voiceChannelEffectSend',
519
+ // Djs v12
520
+ VOICE_BROADCAST_SUBSCRIBE: 'subscribe',
521
+ VOICE_BROADCAST_UNSUBSCRIBE: 'unsubscribe',
522
+ };
523
+
524
+ /**
525
+ * The types of events emitted by a Shard:
526
+ * * CLOSE: close
527
+ * * DESTROYED: destroyed
528
+ * * INVALID_SESSION: invalidSession
529
+ * * READY: ready
530
+ * * RESUMED: resumed
531
+ * * ALL_READY: allReady
532
+ * @typedef {Object<string, string>} ShardEvents
533
+ */
534
+ exports.ShardEvents = {
535
+ CLOSE: 'close',
536
+ DESTROYED: 'destroyed',
537
+ INVALID_SESSION: 'invalidSession',
538
+ READY: 'ready',
539
+ RESUMED: 'resumed',
540
+ ALL_READY: 'allReady',
541
+ };
542
+
543
+ /**
544
+ * The type of Structure allowed to be a partial:
545
+ * * USER
546
+ * * CHANNEL (only affects DMChannels)
547
+ * * GUILD_MEMBER
548
+ * * MESSAGE
549
+ * * REACTION
550
+ * * GUILD_SCHEDULED_EVENT
551
+ * <warn>Partials require you to put checks in place when handling data. See the "Partial Structures" topic on the
552
+ * [guide](https://discordjs.guide/popular-topics/partials.html) for more information.</warn>
553
+ * @typedef {string} PartialType
554
+ */
555
+ exports.PartialTypes = keyMirror(['USER', 'CHANNEL', 'GUILD_MEMBER', 'MESSAGE', 'REACTION', 'GUILD_SCHEDULED_EVENT']);
556
+
557
+ /**
558
+ * The type of a WebSocket message event, e.g. `MESSAGE_CREATE`. Here are the available events:
559
+ * * READY
560
+ * * RESUMED
561
+ * * APPLICATION_COMMAND_CREATE (deprecated)
562
+ * * APPLICATION_COMMAND_DELETE (deprecated)
563
+ * * APPLICATION_COMMAND_PERMISSIONS_UPDATE
564
+ * * APPLICATION_COMMAND_UPDATE (deprecated)
565
+ * * AUTO_MODERATION_ACTION_EXECUTION
566
+ * * AUTO_MODERATION_RULE_CREATE
567
+ * * AUTO_MODERATION_RULE_DELETE
568
+ * * AUTO_MODERATION_RULE_UPDATE
569
+ * * GUILD_CREATE
570
+ * * GUILD_DELETE
571
+ * * GUILD_UPDATE
572
+ * * INVITE_CREATE
573
+ * * INVITE_DELETE
574
+ * * GUILD_MEMBER_ADD
575
+ * * GUILD_MEMBER_REMOVE
576
+ * * GUILD_MEMBER_UPDATE
577
+ * * GUILD_MEMBERS_CHUNK
578
+ * * GUILD_INTEGRATIONS_UPDATE
579
+ * * GUILD_ROLE_CREATE
580
+ * * GUILD_ROLE_DELETE
581
+ * * GUILD_ROLE_UPDATE
582
+ * * GUILD_BAN_ADD
583
+ * * GUILD_BAN_REMOVE
584
+ * * GUILD_EMOJIS_UPDATE
585
+ * * CHANNEL_CREATE
586
+ * * CHANNEL_DELETE
587
+ * * CHANNEL_UPDATE
588
+ * * CHANNEL_PINS_UPDATE
589
+ * * MESSAGE_CREATE
590
+ * * MESSAGE_DELETE
591
+ * * MESSAGE_UPDATE
592
+ * * MESSAGE_DELETE_BULK
593
+ * * MESSAGE_REACTION_ADD
594
+ * * MESSAGE_REACTION_REMOVE
595
+ * * MESSAGE_REACTION_REMOVE_ALL
596
+ * * MESSAGE_REACTION_REMOVE_EMOJI
597
+ * * THREAD_CREATE
598
+ * * THREAD_UPDATE
599
+ * * THREAD_DELETE
600
+ * * THREAD_LIST_SYNC
601
+ * * THREAD_MEMBER_UPDATE
602
+ * * THREAD_MEMBERS_UPDATE
603
+ * * USER_UPDATE
604
+ * * PRESENCE_UPDATE
605
+ * * TYPING_START
606
+ * * VOICE_STATE_UPDATE
607
+ * * VOICE_SERVER_UPDATE
608
+ * * WEBHOOKS_UPDATE
609
+ * * STAGE_INSTANCE_CREATE
610
+ * * STAGE_INSTANCE_UPDATE
611
+ * * STAGE_INSTANCE_DELETE
612
+ * * GUILD_STICKERS_UPDATE
613
+ * * GUILD_SCHEDULED_EVENT_CREATE
614
+ * * GUILD_SCHEDULED_EVENT_UPDATE
615
+ * * GUILD_SCHEDULED_EVENT_DELETE
616
+ * * GUILD_SCHEDULED_EVENT_USER_ADD
617
+ * * GUILD_SCHEDULED_EVENT_USER_REMOVE
618
+ * * GUILD_AUDIT_LOG_ENTRY_CREATE
619
+ * @typedef {string} WSEventType
620
+ * @see {@link https://discord.com/developers/docs/topics/gateway-events#receive-events}
621
+ */
622
+ exports.WSEvents = keyMirror([
623
+ 'READY',
624
+ 'RESUMED',
625
+ 'APPLICATION_COMMAND_CREATE',
626
+ 'APPLICATION_COMMAND_DELETE',
627
+ 'APPLICATION_COMMAND_UPDATE',
628
+ 'APPLICATION_COMMAND_PERMISSIONS_UPDATE',
629
+ 'AUTO_MODERATION_ACTION_EXECUTION',
630
+ 'AUTO_MODERATION_RULE_CREATE',
631
+ 'AUTO_MODERATION_RULE_DELETE',
632
+ 'AUTO_MODERATION_RULE_UPDATE',
633
+ 'GUILD_CREATE',
634
+ 'GUILD_DELETE',
635
+ 'GUILD_UPDATE',
636
+ 'INVITE_CREATE',
637
+ 'INVITE_DELETE',
638
+ 'GUILD_MEMBER_ADD',
639
+ 'GUILD_MEMBER_REMOVE',
640
+ 'GUILD_MEMBER_UPDATE',
641
+ 'GUILD_MEMBERS_CHUNK',
642
+ 'GUILD_INTEGRATIONS_UPDATE',
643
+ 'GUILD_ROLE_CREATE',
644
+ 'GUILD_ROLE_DELETE',
645
+ 'GUILD_ROLE_UPDATE',
646
+ 'GUILD_BAN_ADD',
647
+ 'GUILD_BAN_REMOVE',
648
+ 'GUILD_EMOJIS_UPDATE',
649
+ 'CHANNEL_CREATE',
650
+ 'CHANNEL_DELETE',
651
+ 'CHANNEL_UPDATE',
652
+ 'CHANNEL_PINS_UPDATE',
653
+ 'MESSAGE_CREATE',
654
+ 'MESSAGE_DELETE',
655
+ 'MESSAGE_UPDATE',
656
+ 'MESSAGE_DELETE_BULK',
657
+ 'MESSAGE_REACTION_ADD',
658
+ 'MESSAGE_REACTION_REMOVE',
659
+ 'MESSAGE_REACTION_REMOVE_ALL',
660
+ 'MESSAGE_REACTION_REMOVE_EMOJI',
661
+ 'THREAD_CREATE',
662
+ 'THREAD_UPDATE',
663
+ 'THREAD_DELETE',
664
+ 'THREAD_LIST_SYNC',
665
+ 'THREAD_MEMBER_UPDATE',
666
+ 'THREAD_MEMBERS_UPDATE',
667
+ 'USER_UPDATE',
668
+ 'PRESENCE_UPDATE',
669
+ 'TYPING_START',
670
+ 'VOICE_STATE_UPDATE',
671
+ 'VOICE_SERVER_UPDATE',
672
+ 'WEBHOOKS_UPDATE',
673
+ 'STAGE_INSTANCE_CREATE',
674
+ 'STAGE_INSTANCE_UPDATE',
675
+ 'STAGE_INSTANCE_DELETE',
676
+ 'GUILD_STICKERS_UPDATE',
677
+ 'GUILD_SCHEDULED_EVENT_CREATE',
678
+ 'GUILD_SCHEDULED_EVENT_UPDATE',
679
+ 'GUILD_SCHEDULED_EVENT_DELETE',
680
+ 'GUILD_SCHEDULED_EVENT_USER_ADD',
681
+ 'GUILD_SCHEDULED_EVENT_USER_REMOVE',
682
+ 'GUILD_AUDIT_LOG_ENTRY_CREATE',
683
+ ]);
684
+
685
+ /**
686
+ * A valid scope to request when generating an invite link.
687
+ * <warn>Scopes that require whitelist are not considered valid for this generator</warn>
688
+ * * `applications.builds.read`: allows reading build data for a users applications
689
+ * * `applications.commands`: allows this bot to create commands in the server
690
+ * * `applications.entitlements`: allows reading entitlements for a users applications
691
+ * * `applications.store.update`: allows reading and updating of store data for a users applications
692
+ * * `bot`: makes the bot join the selected guild
693
+ * * `connections`: makes the endpoint for getting a users connections available
694
+ * * `email`: allows the `/users/@me` endpoint return with an email
695
+ * * `identify`: allows the `/users/@me` endpoint without an email
696
+ * * `guilds`: makes the `/users/@me/guilds` endpoint available for a user
697
+ * * `guilds.join`: allows the bot to join the user to any guild it is in using Guild#addMember
698
+ * * `gdm.join`: allows joining the user to a group dm
699
+ * * `webhook.incoming`: generates a webhook to a channel
700
+ * * `role_connections.write`: allows your app to update a user's connection and metadata for the app
701
+ * @typedef {string} InviteScope
702
+ * @see {@link https://discord.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes}
703
+ */
704
+ exports.InviteScopes = [
705
+ 'applications.builds.read',
706
+ 'applications.commands',
707
+ 'applications.entitlements',
708
+ 'applications.store.update',
709
+ 'bot',
710
+ 'connections',
711
+ 'email',
712
+ 'identify',
713
+ 'guilds',
714
+ 'guilds.join',
715
+ 'gdm.join',
716
+ 'webhook.incoming',
717
+ 'role_connections.write',
718
+ ];
719
+
720
+ // TODO: change Integration#expireBehavior to this and clean up Integration
721
+ /**
722
+ * The behavior of expiring subscribers for Integrations. This can be:
723
+ * * REMOVE_ROLE
724
+ * * KICK
725
+ * @typedef {string} IntegrationExpireBehavior
726
+ * @see {@link https://discord.com/developers/docs/resources/guild#integration-object-integration-expire-behaviors}
727
+ */
728
+ exports.IntegrationExpireBehaviors = createEnum(['REMOVE_ROLE', 'KICK']);
729
+
730
+ /**
731
+ * The type of a message, e.g. `DEFAULT`. Here are the available types:
732
+ * * DEFAULT
733
+ * * RECIPIENT_ADD
734
+ * * RECIPIENT_REMOVE
735
+ * * CALL
736
+ * * CHANNEL_NAME_CHANGE
737
+ * * CHANNEL_ICON_CHANGE
738
+ * * CHANNEL_PINNED_MESSAGE
739
+ * * GUILD_MEMBER_JOIN
740
+ * * USER_PREMIUM_GUILD_SUBSCRIPTION
741
+ * * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1
742
+ * * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2
743
+ * * USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3
744
+ * * CHANNEL_FOLLOW_ADD
745
+ * * GUILD_DISCOVERY_DISQUALIFIED
746
+ * * GUILD_DISCOVERY_REQUALIFIED
747
+ * * GUILD_DISCOVERY_GRACE_PERIOD_INITIAL_WARNING
748
+ * * GUILD_DISCOVERY_GRACE_PERIOD_FINAL_WARNING
749
+ * * THREAD_CREATED
750
+ * * REPLY
751
+ * * APPLICATION_COMMAND
752
+ * * THREAD_STARTER_MESSAGE
753
+ * * GUILD_INVITE_REMINDER
754
+ * * CONTEXT_MENU_COMMAND
755
+ * * AUTO_MODERATION_ACTION
756
+ * * ROLE_SUBSCRIPTION_PURCHASE
757
+ * * INTERACTION_PREMIUM_UPSELL
758
+ * * STAGE_START
759
+ * * STAGE_END
760
+ * * STAGE_SPEAKER
761
+ * * STAGE_RAISE_HAND
762
+ * * STAGE_TOPIC
763
+ * * GUILD_APPLICATION_PREMIUM_SUBSCRIPTION
764
+ * * PREMIUM_REFERRAL
765
+ * * GUILD_INCIDENT_ALERT_MODE_ENABLED
766
+ * * GUILD_INCIDENT_ALERT_MODE_DISABLED
767
+ * * GUILD_INCIDENT_REPORT_RAID
768
+ * * GUILD_INCIDENT_REPORT_FALSE_ALARM
769
+ * * GUILD_DEADCHAT_REVIVE_PROMPT
770
+ * * CUSTOM_GIFT
771
+ * * GUILD_GAMING_STATS_PROMPT
772
+ * * PURCHASE_NOTIFICATION
773
+ * * POLL_RESULT
774
+ * * CHANGELOG
775
+ * * NITRO_NOTIFICATION
776
+ * @typedef {string} MessageType
777
+ * @see {@link https://discord.com/developers/docs/resources/channel#message-object-message-types}
778
+ * @see {@link https://docs.discord.food/resources/message#message-type}
779
+ */
780
+ exports.MessageTypes = [
781
+ 'DEFAULT', // 0
782
+ 'RECIPIENT_ADD',
783
+ 'RECIPIENT_REMOVE',
784
+ 'CALL',
785
+ 'CHANNEL_NAME_CHANGE',
786
+ 'CHANNEL_ICON_CHANGE',
787
+ 'CHANNEL_PINNED_MESSAGE',
788
+ 'GUILD_MEMBER_JOIN',
789
+ 'USER_PREMIUM_GUILD_SUBSCRIPTION',
790
+ 'USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_1',
791
+ 'USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_2',
792
+ 'USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3',
793
+ 'CHANNEL_FOLLOW_ADD',
794
+ null, // 13
795
+ 'GUILD_DISCOVERY_DISQUALIFIED',
796
+ 'GUILD_DISCOVERY_REQUALIFIED',
797
+ 'GUILD_DISCOVERY_GRACE_PERIOD_INITIAL_WARNING',
798
+ 'GUILD_DISCOVERY_GRACE_PERIOD_FINAL_WARNING',
799
+ 'THREAD_CREATED',
800
+ 'REPLY',
801
+ 'APPLICATION_COMMAND',
802
+ 'THREAD_STARTER_MESSAGE',
803
+ 'GUILD_INVITE_REMINDER',
804
+ 'CONTEXT_MENU_COMMAND',
805
+ 'AUTO_MODERATION_ACTION',
806
+ 'ROLE_SUBSCRIPTION_PURCHASE',
807
+ 'INTERACTION_PREMIUM_UPSELL',
808
+ 'STAGE_START',
809
+ 'STAGE_END',
810
+ 'STAGE_SPEAKER',
811
+ 'STAGE_RAISE_HAND',
812
+ 'STAGE_TOPIC',
813
+ 'GUILD_APPLICATION_PREMIUM_SUBSCRIPTION',
814
+ null, // 33
815
+ null,
816
+ 'PREMIUM_REFERRAL',
817
+ 'GUILD_INCIDENT_ALERT_MODE_ENABLED',
818
+ 'GUILD_INCIDENT_ALERT_MODE_DISABLED',
819
+ 'GUILD_INCIDENT_REPORT_RAID',
820
+ 'GUILD_INCIDENT_REPORT_FALSE_ALARM',
821
+ 'GUILD_DEADCHAT_REVIVE_PROMPT',
822
+ 'CUSTOM_GIFT',
823
+ 'GUILD_GAMING_STATS_PROMPT',
824
+ null,
825
+ 'PURCHASE_NOTIFICATION',
826
+ null,
827
+ 'POLL_RESULT',
828
+ 'CHANGELOG',
829
+ 'NITRO_NOTIFICATION',
830
+ ];
831
+
832
+ /**
833
+ * The type of a message reference, e.g. `DEFAULT`. Here are the available types:
834
+ * * DEFAULT
835
+ * * FORWARD
836
+ * @typedef {string} MessageReferenceType
837
+ * @see {@link https://discord.com/developers/docs/resources/message#message-reference-types}
838
+ */
839
+ exports.MessageReferenceTypes = createEnum([
840
+ 'DEFAULT', // 0
841
+ 'FORWARD',
842
+ ]);
843
+
844
+ /**
845
+ * The name of an item to be swept in Sweepers
846
+ * * `applicationCommands` - both global and guild commands
847
+ * * `autoModerationRules`
848
+ * * `bans`
849
+ * * `emojis`
850
+ * * `invites` - accepts the `lifetime` property, using it will sweep based on expires timestamp
851
+ * * `guildMembers`
852
+ * * `messages` - accepts the `lifetime` property, using it will sweep based on edited or created timestamp
853
+ * * `presences`
854
+ * * `reactions`
855
+ * * `stageInstances`
856
+ * * `stickers`
857
+ * * `threadMembers`
858
+ * * `threads` - accepts the `lifetime` property, using it will sweep archived threads based on archived timestamp
859
+ * * `users`
860
+ * * `voiceStates`
861
+ * @typedef {string} SweeperKey
862
+ */
863
+ exports.SweeperKeys = [
864
+ 'applicationCommands',
865
+ 'autoModerationRules',
866
+ 'bans',
867
+ 'emojis',
868
+ 'invites',
869
+ 'guildMembers',
870
+ 'messages',
871
+ 'presences',
872
+ 'reactions',
873
+ 'stageInstances',
874
+ 'stickers',
875
+ 'threadMembers',
876
+ 'threads',
877
+ 'users',
878
+ 'voiceStates',
879
+ ];
880
+
881
+ /**
882
+ * The types of messages that are `System`. The available types are `MessageTypes` excluding:
883
+ * * DEFAULT
884
+ * * REPLY
885
+ * * APPLICATION_COMMAND
886
+ * * CONTEXT_MENU_COMMAND
887
+ * @typedef {string} SystemMessageType
888
+ */
889
+ exports.SystemMessageTypes = exports.MessageTypes.filter(
890
+ type => type && !['DEFAULT', 'REPLY', 'APPLICATION_COMMAND', 'CONTEXT_MENU_COMMAND'].includes(type),
891
+ );
892
+
893
+ /**
894
+ * <info>Bots cannot set a `CUSTOM` activity type, it is only for custom statuses received from users</info>
895
+ * The type of an activity of a user's presence. Here are the available types:
896
+ * * PLAYING
897
+ * * STREAMING
898
+ * * LISTENING
899
+ * * WATCHING
900
+ * * CUSTOM
901
+ * * COMPETING
902
+ * * HANG
903
+ * @typedef {string} ActivityType
904
+ * @see {@link https://discord.com/developers/docs/game-sdk/activities#data-models-activitytype-enum}
905
+ */
906
+ exports.ActivityTypes = createEnum(['PLAYING', 'STREAMING', 'LISTENING', 'WATCHING', 'CUSTOM', 'COMPETING', 'HANG']);
907
+
908
+ /**
909
+ * All available channel types:
910
+ * * `GUILD_TEXT` - a guild text channel
911
+ * * `DM` - a DM channel
912
+ * * `GUILD_VOICE` - a guild voice channel
913
+ * * `GROUP_DM` - a group DM channel
914
+ * * `GUILD_CATEGORY` - a guild category channel
915
+ * * `GUILD_NEWS` - a guild news channel
916
+ * * `GUILD_STORE` - a guild store channel
917
+ * <warn>Store channels are deprecated and will be removed from Discord in March 2022. See
918
+ * [Self-serve Game Selling Deprecation](https://support-dev.discord.com/hc/en-us/articles/6309018858647)
919
+ * for more information.</warn>
920
+ * * `GUILD_NEWS_THREAD` - a guild news channel's public thread channel
921
+ * * `GUILD_PUBLIC_THREAD` - a guild text channel's public thread channel
922
+ * * `GUILD_PRIVATE_THREAD` - a guild text channel's private thread channel
923
+ * * `GUILD_STAGE_VOICE` - a guild stage voice channel
924
+ * * `GUILD_DIRECTORY` - the channel in a hub containing guilds
925
+ * * `GUILD_FORUM` - a channel that can only contain threads
926
+ * * `GUILD_MEDIA` - a channel that can only contain threads, similar to `GUILD_FORUM` channels
927
+ * * `UNKNOWN` - a generic channel of unknown type, could be Channel or GuildChannel
928
+ * @typedef {string} ChannelType
929
+ * @see {@link https://discord.com/developers/docs/resources/channel#channel-object-channel-types}
930
+ */
931
+ exports.ChannelTypes = createEnum([
932
+ 'GUILD_TEXT',
933
+ 'DM',
934
+ 'GUILD_VOICE',
935
+ 'GROUP_DM',
936
+ 'GUILD_CATEGORY',
937
+ 'GUILD_NEWS',
938
+ 'GUILD_STORE',
939
+ ...Array(3).fill(null),
940
+ // 10
941
+ 'GUILD_NEWS_THREAD',
942
+ 'GUILD_PUBLIC_THREAD',
943
+ 'GUILD_PRIVATE_THREAD',
944
+ 'GUILD_STAGE_VOICE',
945
+ 'GUILD_DIRECTORY',
946
+ 'GUILD_FORUM',
947
+ 'GUILD_MEDIA',
948
+ ]);
949
+
950
+ /**
951
+ * The channels that are text-based.
952
+ * * DMChannel
953
+ * * TextChannel
954
+ * * NewsChannel
955
+ * * ThreadChannel
956
+ * * VoiceChannel
957
+ * * StageChannel
958
+ * @typedef {DMChannel|TextChannel|NewsChannel|ThreadChannel|VoiceChannel|StageChannel} TextBasedChannels
959
+ */
960
+
961
+ /**
962
+ * Data that resolves to give a text-based channel. This can be:
963
+ * * A text-based channel
964
+ * * A snowflake
965
+ * @typedef {TextBasedChannels|Snowflake} TextBasedChannelsResolvable
966
+ */
967
+
968
+ /**
969
+ * The types of channels that are text-based. The available types are:
970
+ * * DM
971
+ * * GUILD_TEXT
972
+ * * GUILD_NEWS
973
+ * * GUILD_NEWS_THREAD
974
+ * * GUILD_PUBLIC_THREAD
975
+ * * GUILD_PRIVATE_THREAD
976
+ * * GUILD_VOICE
977
+ * * GUILD_STAGE_VOICE
978
+ * @typedef {string} TextBasedChannelTypes
979
+ */
980
+ exports.TextBasedChannelTypes = [
981
+ 'DM',
982
+ 'GUILD_TEXT',
983
+ 'GUILD_NEWS',
984
+ 'GUILD_NEWS_THREAD',
985
+ 'GUILD_PUBLIC_THREAD',
986
+ 'GUILD_PRIVATE_THREAD',
987
+ 'GUILD_VOICE',
988
+ 'GUILD_STAGE_VOICE',
989
+ ];
990
+
991
+ /**
992
+ * The types of channels that are threads. The available types are:
993
+ * * GUILD_NEWS_THREAD
994
+ * * GUILD_PUBLIC_THREAD
995
+ * * GUILD_PRIVATE_THREAD
996
+ * @typedef {string} ThreadChannelTypes
997
+ */
998
+ exports.ThreadChannelTypes = ['GUILD_NEWS_THREAD', 'GUILD_PUBLIC_THREAD', 'GUILD_PRIVATE_THREAD'];
999
+
1000
+ /**
1001
+ * The types of channels that are voice-based. The available types are:
1002
+ * * GUILD_VOICE
1003
+ * * GUILD_STAGE_VOICE
1004
+ * @typedef {string} VoiceBasedChannelTypes
1005
+ */
1006
+ exports.VoiceBasedChannelTypes = ['GUILD_VOICE', 'GUILD_STAGE_VOICE'];
1007
+
1008
+ /**
1009
+ * The types of assets of an application:
1010
+ * * SMALL: 1
1011
+ * * BIG: 2
1012
+ * @typedef {Object<string, number>} ClientApplicationAssetTypes
1013
+ */
1014
+ exports.ClientApplicationAssetTypes = {
1015
+ SMALL: 1,
1016
+ BIG: 2,
1017
+ };
1018
+
1019
+ /**
1020
+ * A commonly used color:
1021
+ * * DEFAULT
1022
+ * * WHITE
1023
+ * * AQUA
1024
+ * * GREEN
1025
+ * * BLUE
1026
+ * * YELLOW
1027
+ * * PURPLE
1028
+ * * LUMINOUS_VIVID_PINK
1029
+ * * FUCHSIA
1030
+ * * GOLD
1031
+ * * ORANGE
1032
+ * * RED
1033
+ * * GREY
1034
+ * * NAVY
1035
+ * * DARK_AQUA
1036
+ * * DARK_GREEN
1037
+ * * DARK_BLUE
1038
+ * * DARK_PURPLE
1039
+ * * DARK_VIVID_PINK
1040
+ * * DARK_GOLD
1041
+ * * DARK_ORANGE
1042
+ * * DARK_RED
1043
+ * * DARK_GREY
1044
+ * * DARKER_GREY
1045
+ * * LIGHT_GREY
1046
+ * * DARK_NAVY
1047
+ * * BLURPLE
1048
+ * * GREYPLE
1049
+ * * DARK_BUT_NOT_BLACK
1050
+ * * NOT_QUITE_BLACK
1051
+ * @typedef {string} Color
1052
+ */
1053
+ exports.Colors = {
1054
+ DEFAULT: 0x000000,
1055
+ WHITE: 0xffffff,
1056
+ AQUA: 0x1abc9c,
1057
+ GREEN: 0x57f287,
1058
+ BLUE: 0x3498db,
1059
+ YELLOW: 0xfee75c,
1060
+ PURPLE: 0x9b59b6,
1061
+ LUMINOUS_VIVID_PINK: 0xe91e63,
1062
+ FUCHSIA: 0xeb459e,
1063
+ GOLD: 0xf1c40f,
1064
+ ORANGE: 0xe67e22,
1065
+ RED: 0xed4245,
1066
+ GREY: 0x95a5a6,
1067
+ NAVY: 0x34495e,
1068
+ DARK_AQUA: 0x11806a,
1069
+ DARK_GREEN: 0x1f8b4c,
1070
+ DARK_BLUE: 0x206694,
1071
+ DARK_PURPLE: 0x71368a,
1072
+ DARK_VIVID_PINK: 0xad1457,
1073
+ DARK_GOLD: 0xc27c0e,
1074
+ DARK_ORANGE: 0xa84300,
1075
+ DARK_RED: 0x992d22,
1076
+ DARK_GREY: 0x979c9f,
1077
+ DARKER_GREY: 0x7f8c8d,
1078
+ LIGHT_GREY: 0xbcc0c0,
1079
+ DARK_NAVY: 0x2c3e50,
1080
+ BLURPLE: 0x5865f2,
1081
+ GREYPLE: 0x99aab5,
1082
+ DARK_BUT_NOT_BLACK: 0x2c2f33,
1083
+ NOT_QUITE_BLACK: 0x23272a,
1084
+ };
1085
+
1086
+ /**
1087
+ * Holographic color values for role styling.
1088
+ * When using `tertiaryColor`, the API enforces these specific values for holographic effect.
1089
+ *
1090
+ * * PRIMARY: 11127295 (0xA9FFFF)
1091
+ * * SECONDARY: 16759788 (0xFFCCCC)
1092
+ * * TERTIARY: 16761760 (0xFFE0A0)
1093
+ * @typedef {Object<string, number>} HolographicStyle
1094
+ */
1095
+ exports.HolographicStyles = {
1096
+ PRIMARY: 11_127_295,
1097
+ SECONDARY: 16_759_788,
1098
+ TERTIARY: 16_761_760,
1099
+ };
1100
+
1101
+ /**
1102
+ * The value set for the explicit content filter levels for a guild:
1103
+ * * DISABLED
1104
+ * * MEMBERS_WITHOUT_ROLES
1105
+ * * ALL_MEMBERS
1106
+ * @typedef {string} ExplicitContentFilterLevel
1107
+ * @see {@link https://discord.com/developers/docs/resources/guild#guild-object-explicit-content-filter-level}
1108
+ */
1109
+ exports.ExplicitContentFilterLevels = createEnum(['DISABLED', 'MEMBERS_WITHOUT_ROLES', 'ALL_MEMBERS']);
1110
+
1111
+ /**
1112
+ * The value set for the verification levels for a guild:
1113
+ * * NONE
1114
+ * * LOW
1115
+ * * MEDIUM
1116
+ * * HIGH
1117
+ * * VERY_HIGH
1118
+ * @typedef {string} VerificationLevel
1119
+ * @see {@link https://discord.com/developers/docs/resources/guild#guild-object-verification-level}
1120
+ */
1121
+ exports.VerificationLevels = createEnum(['NONE', 'LOW', 'MEDIUM', 'HIGH', 'VERY_HIGH']);
1122
+
1123
+ /**
1124
+ * An error encountered while performing an API request. Here are the potential errors:
1125
+ * * UNKNOWN_ACCOUNT
1126
+ * * UNKNOWN_APPLICATION
1127
+ * * UNKNOWN_CHANNEL
1128
+ * * UNKNOWN_GUILD
1129
+ * * UNKNOWN_INTEGRATION
1130
+ * * UNKNOWN_INVITE
1131
+ * * UNKNOWN_MEMBER
1132
+ * * UNKNOWN_MESSAGE
1133
+ * * UNKNOWN_OVERWRITE
1134
+ * * UNKNOWN_PROVIDER
1135
+ * * UNKNOWN_ROLE
1136
+ * * UNKNOWN_TOKEN
1137
+ * * UNKNOWN_USER
1138
+ * * UNKNOWN_EMOJI
1139
+ * * UNKNOWN_WEBHOOK
1140
+ * * UNKNOWN_WEBHOOK_SERVICE
1141
+ * * UNKNOWN_SESSION
1142
+ * * UNKNOWN_BAN
1143
+ * * UNKNOWN_SKU
1144
+ * * UNKNOWN_STORE_LISTING
1145
+ * * UNKNOWN_ENTITLEMENT
1146
+ * * UNKNOWN_BUILD
1147
+ * * UNKNOWN_LOBBY
1148
+ * * UNKNOWN_BRANCH
1149
+ * * UNKNOWN_STORE_DIRECTORY_LAYOUT
1150
+ * * UNKNOWN_REDISTRIBUTABLE
1151
+ * * UNKNOWN_GIFT_CODE
1152
+ * * UNKNOWN_STREAM
1153
+ * * UNKNOWN_PREMIUM_SERVER_SUBSCRIBE_COOLDOWN
1154
+ * * UNKNOWN_GUILD_TEMPLATE
1155
+ * * UNKNOWN_DISCOVERABLE_SERVER_CATEGORY
1156
+ * * UNKNOWN_STICKER
1157
+ * * UNKNOWN_INTERACTION
1158
+ * * UNKNOWN_APPLICATION_COMMAND
1159
+ * * UNKNOWN_APPLICATION_COMMAND_PERMISSIONS
1160
+ * * UNKNOWN_STAGE_INSTANCE
1161
+ * * UNKNOWN_GUILD_MEMBER_VERIFICATION_FORM
1162
+ * * UNKNOWN_GUILD_WELCOME_SCREEN
1163
+ * * UNKNOWN_GUILD_SCHEDULED_EVENT
1164
+ * * UNKNOWN_GUILD_SCHEDULED_EVENT_USER
1165
+ * * BOT_PROHIBITED_ENDPOINT
1166
+ * * BOT_ONLY_ENDPOINT
1167
+ * * CANNOT_SEND_EXPLICIT_CONTENT
1168
+ * * NOT_AUTHORIZED
1169
+ * * SLOWMODE_RATE_LIMIT
1170
+ * * ACCOUNT_OWNER_ONLY
1171
+ * * ANNOUNCEMENT_EDIT_LIMIT_EXCEEDED
1172
+ * * CHANNEL_HIT_WRITE_RATELIMIT
1173
+ * * SERVER_HIT_WRITE_RATELIMIT
1174
+ * * CONTENT_NOT_ALLOWED
1175
+ * * GUILD_PREMIUM_LEVEL_TOO_LOW
1176
+ * * MAXIMUM_GUILDS
1177
+ * * MAXIMUM_FRIENDS
1178
+ * * MAXIMUM_PINS
1179
+ * * MAXIMUM_RECIPIENTS
1180
+ * * MAXIMUM_ROLES
1181
+ * * MAXIMUM_WEBHOOKS
1182
+ * * MAXIMUM_EMOJIS
1183
+ * * MAXIMUM_REACTIONS
1184
+ * * MAXIMUM_CHANNELS
1185
+ * * MAXIMUM_ATTACHMENTS
1186
+ * * MAXIMUM_INVITES
1187
+ * * MAXIMUM_ANIMATED_EMOJIS
1188
+ * * MAXIMUM_SERVER_MEMBERS
1189
+ * * MAXIMUM_NUMBER_OF_SERVER_CATEGORIES
1190
+ * * GUILD_ALREADY_HAS_TEMPLATE
1191
+ * * MAXIMUM_THREAD_PARTICIPANTS
1192
+ * * MAXIMUM_NON_GUILD_MEMBERS_BANS
1193
+ * * MAXIMUM_BAN_FETCHES
1194
+ * * MAXIMUM_NUMBER_OF_UNCOMPLETED_GUILD_SCHEDULED_EVENTS_REACHED
1195
+ * * MAXIMUM_NUMBER_OF_STICKERS_REACHED
1196
+ * * MAXIMUM_PRUNE_REQUESTS
1197
+ * * MAXIMUM_GUILD_WIDGET_SETTINGS_UPDATE
1198
+ * * UNAUTHORIZED
1199
+ * * ACCOUNT_VERIFICATION_REQUIRED
1200
+ * * DIRECT_MESSAGES_TOO_FAST
1201
+ * * REQUEST_ENTITY_TOO_LARGE
1202
+ * * FEATURE_TEMPORARILY_DISABLED
1203
+ * * USER_BANNED
1204
+ * * TARGET_USER_NOT_CONNECTED_TO_VOICE
1205
+ * * ALREADY_CROSSPOSTED
1206
+ * * MISSING_ACCESS
1207
+ * * INVALID_ACCOUNT_TYPE
1208
+ * * CANNOT_EXECUTE_ON_DM
1209
+ * * EMBED_DISABLED
1210
+ * * CANNOT_EDIT_MESSAGE_BY_OTHER
1211
+ * * CANNOT_SEND_EMPTY_MESSAGE
1212
+ * * CANNOT_MESSAGE_USER
1213
+ * * CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL
1214
+ * * CHANNEL_VERIFICATION_LEVEL_TOO_HIGH
1215
+ * * OAUTH2_APPLICATION_BOT_ABSENT
1216
+ * * MAXIMUM_OAUTH2_APPLICATIONS
1217
+ * * INVALID_OAUTH_STATE
1218
+ * * MISSING_PERMISSIONS
1219
+ * * INVALID_AUTHENTICATION_TOKEN
1220
+ * * NOTE_TOO_LONG
1221
+ * * INVALID_BULK_DELETE_QUANTITY
1222
+ * * CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL
1223
+ * * INVALID_OR_TAKEN_INVITE_CODE
1224
+ * * CANNOT_EXECUTE_ON_SYSTEM_MESSAGE
1225
+ * * CANNOT_EXECUTE_ON_CHANNEL_TYPE
1226
+ * * INVALID_OAUTH_TOKEN
1227
+ * * MISSING_OAUTH_SCOPE
1228
+ * * INVALID_WEBHOOK_TOKEN
1229
+ * * INVALID_ROLE
1230
+ * * INVALID_RECIPIENTS
1231
+ * * BULK_DELETE_MESSAGE_TOO_OLD
1232
+ * * INVALID_FORM_BODY
1233
+ * * INVITE_ACCEPTED_TO_GUILD_NOT_CONTAINING_BOT
1234
+ * * INVALID_API_VERSION
1235
+ * * FILE_UPLOADED_EXCEEDS_MAXIMUM_SIZE
1236
+ * * INVALID_FILE_UPLOADED
1237
+ * * CANNOT_SELF_REDEEM_GIFT
1238
+ * * INVALID_GUILD
1239
+ * * INVALID_MESSAGE_TYPE
1240
+ * * PAYMENT_SOURCE_REQUIRED
1241
+ * * CANNOT_DELETE_COMMUNITY_REQUIRED_CHANNEL
1242
+ * * INVALID_STICKER_SENT
1243
+ * * INVALID_OPERATION_ON_ARCHIVED_THREAD
1244
+ * * INVALID_THREAD_NOTIFICATION_SETTINGS
1245
+ * * PARAMETER_EARLIER_THAN_CREATION
1246
+ * * GUILD_NOT_AVAILABLE_IN_LOCATION
1247
+ * * GUILD_MONETIZATION_REQUIRED
1248
+ * * INSUFFICIENT_BOOSTS
1249
+ * * INVALID_JSON
1250
+ * * TWO_FACTOR_REQUIRED
1251
+ * * NO_USERS_WITH_DISCORDTAG_EXIST
1252
+ * * REACTION_BLOCKED
1253
+ * * RESOURCE_OVERLOADED
1254
+ * * STAGE_ALREADY_OPEN
1255
+ * * CANNOT_REPLY_WITHOUT_READ_MESSAGE_HISTORY_PERMISSION
1256
+ * * MESSAGE_ALREADY_HAS_THREAD
1257
+ * * THREAD_LOCKED
1258
+ * * MAXIMUM_ACTIVE_THREADS
1259
+ * * MAXIMUM_ACTIVE_ANNOUNCEMENT_THREADS
1260
+ * * INVALID_JSON_FOR_UPLOADED_LOTTIE_FILE
1261
+ * * UPLOADED_LOTTIES_CANNOT_CONTAIN_RASTERIZED_IMAGES
1262
+ * * STICKER_MAXIMUM_FRAMERATE_EXCEEDED
1263
+ * * STICKER_FRAME_COUNT_EXCEEDS_MAXIMUM_OF_1000_FRAMES
1264
+ * * LOTTIE_ANIMATION_MAXIMUM_DIMENSIONS_EXCEEDED
1265
+ * * STICKER_FRAME_RATE_IS_TOO_SMALL_OR_TOO_LARGE
1266
+ * * STICKER_ANIMATION_DURATION_EXCEEDS_MAXIMUM_OF_5_SECONDS
1267
+ * * CANNOT_UPDATE_A_FINISHED_EVENT
1268
+ * * FAILED_TO_CREATE_STAGE_NEEDED_FOR_STAGE_EVENT
1269
+ * @typedef {string} APIError
1270
+ * @see {@link https://discord.com/developers/docs/topics/opcodes-and-status-codes#json-json-error-codes}
1271
+ * @see {@link https://gist.github.com/Dziurwa14/de2498e5ee28d2089f095aa037957cbb}
1272
+ */
1273
+ exports.APIErrors = {
1274
+ UNKNOWN_ACCOUNT: 10001,
1275
+ UNKNOWN_APPLICATION: 10002,
1276
+ UNKNOWN_CHANNEL: 10003,
1277
+ UNKNOWN_GUILD: 10004,
1278
+ UNKNOWN_INTEGRATION: 10005,
1279
+ UNKNOWN_INVITE: 10006,
1280
+ UNKNOWN_MEMBER: 10007,
1281
+ UNKNOWN_MESSAGE: 10008,
1282
+ UNKNOWN_OVERWRITE: 10009,
1283
+ UNKNOWN_PROVIDER: 10010,
1284
+ UNKNOWN_ROLE: 10011,
1285
+ UNKNOWN_TOKEN: 10012,
1286
+ UNKNOWN_USER: 10013,
1287
+ UNKNOWN_EMOJI: 10014,
1288
+ UNKNOWN_WEBHOOK: 10015,
1289
+ UNKNOWN_WEBHOOK_SERVICE: 10016,
1290
+ UNKNOWN_SESSION: 10020,
1291
+ UNKNOWN_BAN: 10026,
1292
+ UNKNOWN_SKU: 10027,
1293
+ UNKNOWN_STORE_LISTING: 10028,
1294
+ UNKNOWN_ENTITLEMENT: 10029,
1295
+ UNKNOWN_BUILD: 10030,
1296
+ UNKNOWN_LOBBY: 10031,
1297
+ UNKNOWN_BRANCH: 10032,
1298
+ UNKNOWN_STORE_DIRECTORY_LAYOUT: 10033,
1299
+ UNKNOWN_REDISTRIBUTABLE: 10036,
1300
+ UNKNOWN_GIFT_CODE: 10038,
1301
+ UNKNOWN_STREAM: 10049,
1302
+ UNKNOWN_PREMIUM_SERVER_SUBSCRIBE_COOLDOWN: 10050,
1303
+ UNKNOWN_GUILD_TEMPLATE: 10057,
1304
+ UNKNOWN_DISCOVERABLE_SERVER_CATEGORY: 10059,
1305
+ UNKNOWN_STICKER: 10060,
1306
+ UNKNOWN_INTERACTION: 10062,
1307
+ UNKNOWN_APPLICATION_COMMAND: 10063,
1308
+ UNKNOWN_APPLICATION_COMMAND_PERMISSIONS: 10066,
1309
+ UNKNOWN_STAGE_INSTANCE: 10067,
1310
+ UNKNOWN_GUILD_MEMBER_VERIFICATION_FORM: 10068,
1311
+ UNKNOWN_GUILD_WELCOME_SCREEN: 10069,
1312
+ UNKNOWN_GUILD_SCHEDULED_EVENT: 10070,
1313
+ UNKNOWN_GUILD_SCHEDULED_EVENT_USER: 10071,
1314
+ BOT_PROHIBITED_ENDPOINT: 20001,
1315
+ BOT_ONLY_ENDPOINT: 20002,
1316
+ CANNOT_SEND_EXPLICIT_CONTENT: 20009,
1317
+ NOT_AUTHORIZED: 20012,
1318
+ SLOWMODE_RATE_LIMIT: 20016,
1319
+ ACCOUNT_OWNER_ONLY: 20018,
1320
+ ANNOUNCEMENT_EDIT_LIMIT_EXCEEDED: 20022,
1321
+ CHANNEL_HIT_WRITE_RATELIMIT: 20028,
1322
+ SERVER_HIT_WRITE_RATELIMIT: 20029,
1323
+ CONTENT_NOT_ALLOWED: 20031,
1324
+ GUILD_PREMIUM_LEVEL_TOO_LOW: 20035,
1325
+ MAXIMUM_GUILDS: 30001,
1326
+ MAXIMUM_FRIENDS: 30002,
1327
+ MAXIMUM_PINS: 30003,
1328
+ MAXIMUM_RECIPIENTS: 30004,
1329
+ MAXIMUM_ROLES: 30005,
1330
+ MAXIMUM_WEBHOOKS: 30007,
1331
+ MAXIMUM_EMOJIS: 30008,
1332
+ MAXIMUM_REACTIONS: 30010,
1333
+ MAXIMUM_CHANNELS: 30013,
1334
+ MAXIMUM_ATTACHMENTS: 30015,
1335
+ MAXIMUM_INVITES: 30016,
1336
+ MAXIMUM_ANIMATED_EMOJIS: 30018,
1337
+ MAXIMUM_SERVER_MEMBERS: 30019,
1338
+ MAXIMUM_NUMBER_OF_SERVER_CATEGORIES: 30030,
1339
+ GUILD_ALREADY_HAS_TEMPLATE: 30031,
1340
+ MAXIMUM_THREAD_PARTICIPANTS: 30033,
1341
+ MAXIMUM_NON_GUILD_MEMBERS_BANS: 30035,
1342
+ MAXIMUM_BAN_FETCHES: 30037,
1343
+ MAXIMUM_NUMBER_OF_UNCOMPLETED_GUILD_SCHEDULED_EVENTS_REACHED: 30038,
1344
+ MAXIMUM_NUMBER_OF_STICKERS_REACHED: 30039,
1345
+ MAXIMUM_PRUNE_REQUESTS: 30040,
1346
+ MAXIMUM_GUILD_WIDGET_SETTINGS_UPDATE: 30042,
1347
+ MAXIMUM_NUMBER_OF_PREMIUM_EMOJIS: 30056,
1348
+ UNAUTHORIZED: 40001,
1349
+ ACCOUNT_VERIFICATION_REQUIRED: 40002,
1350
+ DIRECT_MESSAGES_TOO_FAST: 40003,
1351
+ REQUEST_ENTITY_TOO_LARGE: 40005,
1352
+ FEATURE_TEMPORARILY_DISABLED: 40006,
1353
+ USER_BANNED: 40007,
1354
+ TARGET_USER_NOT_CONNECTED_TO_VOICE: 40032,
1355
+ ALREADY_CROSSPOSTED: 40033,
1356
+ MISSING_ACCESS: 50001,
1357
+ INVALID_ACCOUNT_TYPE: 50002,
1358
+ CANNOT_EXECUTE_ON_DM: 50003,
1359
+ EMBED_DISABLED: 50004,
1360
+ CANNOT_EDIT_MESSAGE_BY_OTHER: 50005,
1361
+ CANNOT_SEND_EMPTY_MESSAGE: 50006,
1362
+ CANNOT_MESSAGE_USER: 50007,
1363
+ CANNOT_SEND_MESSAGES_IN_VOICE_CHANNEL: 50008,
1364
+ CHANNEL_VERIFICATION_LEVEL_TOO_HIGH: 50009,
1365
+ OAUTH2_APPLICATION_BOT_ABSENT: 50010,
1366
+ MAXIMUM_OAUTH2_APPLICATIONS: 50011,
1367
+ INVALID_OAUTH_STATE: 50012,
1368
+ MISSING_PERMISSIONS: 50013,
1369
+ INVALID_AUTHENTICATION_TOKEN: 50014,
1370
+ NOTE_TOO_LONG: 50015,
1371
+ INVALID_BULK_DELETE_QUANTITY: 50016,
1372
+ CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL: 50019,
1373
+ INVALID_OR_TAKEN_INVITE_CODE: 50020,
1374
+ CANNOT_EXECUTE_ON_SYSTEM_MESSAGE: 50021,
1375
+ CANNOT_EXECUTE_ON_CHANNEL_TYPE: 50024,
1376
+ INVALID_OAUTH_TOKEN: 50025,
1377
+ MISSING_OAUTH_SCOPE: 50026,
1378
+ INVALID_WEBHOOK_TOKEN: 50027,
1379
+ INVALID_ROLE: 50028,
1380
+ INVALID_RECIPIENTS: 50033,
1381
+ BULK_DELETE_MESSAGE_TOO_OLD: 50034,
1382
+ INVALID_FORM_BODY: 50035,
1383
+ INVITE_ACCEPTED_TO_GUILD_NOT_CONTAINING_BOT: 50036,
1384
+ INVALID_API_VERSION: 50041,
1385
+ FILE_UPLOADED_EXCEEDS_MAXIMUM_SIZE: 50045,
1386
+ INVALID_FILE_UPLOADED: 50046,
1387
+ CANNOT_SELF_REDEEM_GIFT: 50054,
1388
+ INVALID_GUILD: 50055,
1389
+ INVALID_MESSAGE_TYPE: 50068,
1390
+ PAYMENT_SOURCE_REQUIRED: 50070,
1391
+ CANNOT_DELETE_COMMUNITY_REQUIRED_CHANNEL: 50074,
1392
+ INVALID_STICKER_SENT: 50081,
1393
+ INVALID_OPERATION_ON_ARCHIVED_THREAD: 50083,
1394
+ INVALID_THREAD_NOTIFICATION_SETTINGS: 50084,
1395
+ PARAMETER_EARLIER_THAN_CREATION: 50085,
1396
+ GUILD_NOT_AVAILABLE_IN_LOCATION: 50095,
1397
+ GUILD_MONETIZATION_REQUIRED: 50097,
1398
+ INSUFFICIENT_BOOSTS: 50101,
1399
+ INVALID_JSON: 50109,
1400
+ CANNOT_MIX_SUBSCRIPTION_AND_NON_SUBSCRIPTION_ROLES_FOR_EMOJI: 50144,
1401
+ CANNOT_CONVERT_PREMIUM_EMOJI_TO_NORMAL_EMOJI: 50145,
1402
+ VOICE_MESSAGES_DO_NOT_SUPPORT_ADDITIONAL_CONTENT: 50159,
1403
+ VOICE_MESSAGES_MUST_HAVE_A_SINGLE_AUDIO_ATTACHMENT: 50160,
1404
+ VOICE_MESSAGES_MUST_HAVE_SUPPORTING_METADATA: 50161,
1405
+ VOICE_MESSAGES_CANNOT_BE_EDITED: 50162,
1406
+ YOU_CANNOT_SEND_VOICE_MESSAGES_IN_THIS_CHANNEL: 50173,
1407
+ TWO_FACTOR_REQUIRED: 60003,
1408
+ NO_USERS_WITH_DISCORDTAG_EXIST: 80004,
1409
+ REACTION_BLOCKED: 90001,
1410
+ RESOURCE_OVERLOADED: 130000,
1411
+ STAGE_ALREADY_OPEN: 150006,
1412
+ CANNOT_REPLY_WITHOUT_READ_MESSAGE_HISTORY_PERMISSION: 160002,
1413
+ MESSAGE_ALREADY_HAS_THREAD: 160004,
1414
+ THREAD_LOCKED: 160005,
1415
+ MAXIMUM_ACTIVE_THREADS: 160006,
1416
+ MAXIMUM_ACTIVE_ANNOUNCEMENT_THREADS: 160007,
1417
+ INVALID_JSON_FOR_UPLOADED_LOTTIE_FILE: 170001,
1418
+ UPLOADED_LOTTIES_CANNOT_CONTAIN_RASTERIZED_IMAGES: 170002,
1419
+ STICKER_MAXIMUM_FRAMERATE_EXCEEDED: 170003,
1420
+ STICKER_FRAME_COUNT_EXCEEDS_MAXIMUM_OF_1000_FRAMES: 170004,
1421
+ LOTTIE_ANIMATION_MAXIMUM_DIMENSIONS_EXCEEDED: 170005,
1422
+ STICKER_FRAME_RATE_IS_TOO_SMALL_OR_TOO_LARGE: 170006,
1423
+ STICKER_ANIMATION_DURATION_EXCEEDS_MAXIMUM_OF_5_SECONDS: 170007,
1424
+ CANNOT_UPDATE_A_FINISHED_EVENT: 180000,
1425
+ FAILED_TO_CREATE_STAGE_NEEDED_FOR_STAGE_EVENT: 180002,
1426
+ };
1427
+
1428
+ /**
1429
+ * The value set for a guild's default message notifications, e.g. `ALL_MESSAGES`. Here are the available types:
1430
+ * * ALL_MESSAGES
1431
+ * * ONLY_MENTIONS
1432
+ * @typedef {string} DefaultMessageNotificationLevel
1433
+ * @see {@link https://discord.com/developers/docs/resources/guild#guild-object-default-message-notification-level}
1434
+ */
1435
+ exports.DefaultMessageNotificationLevels = createEnum(['ALL_MESSAGES', 'ONLY_MENTIONS']);
1436
+
1437
+ /**
1438
+ * The value set for a team member's membership state:
1439
+ * * INVITED
1440
+ * * ACCEPTED
1441
+ * @typedef {string} MembershipState
1442
+ * @see {@link https://discord.com/developers/docs/topics/teams#data-models-membership-state-enum}
1443
+ */
1444
+ exports.MembershipStates = createEnum([null, 'INVITED', 'ACCEPTED']);
1445
+
1446
+ /**
1447
+ * The value set for a webhook's type:
1448
+ * * Incoming
1449
+ * * Channel Follower
1450
+ * * Application
1451
+ * @typedef {string} WebhookType
1452
+ * @see {@link https://discord.com/developers/docs/resources/webhook#webhook-object-webhook-types}
1453
+ */
1454
+ exports.WebhookTypes = createEnum([null, 'Incoming', 'Channel Follower', 'Application']);
1455
+
1456
+ /**
1457
+ * The value set for a sticker's type:
1458
+ * * STANDARD
1459
+ * * GUILD
1460
+ * @typedef {string} StickerType
1461
+ * @see {@link https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-types}
1462
+ */
1463
+ exports.StickerTypes = createEnum([null, 'STANDARD', 'GUILD']);
1464
+
1465
+ /**
1466
+ * The value set for a sticker's format type:
1467
+ * * PNG
1468
+ * * APNG
1469
+ * * LOTTIE
1470
+ * * GIF
1471
+ * @typedef {string} StickerFormatType
1472
+ * @see {@link https://discord.com/developers/docs/resources/sticker#sticker-object-sticker-format-types}
1473
+ */
1474
+ exports.StickerFormatTypes = createEnum([null, 'PNG', 'APNG', 'LOTTIE', 'GIF']);
1475
+
1476
+ /**
1477
+ * An overwrite type:
1478
+ * * role
1479
+ * * member
1480
+ * @typedef {string} OverwriteType
1481
+ * @see {@link https://discord.com/developers/docs/resources/channel#overwrite-object-overwrite-structure}
1482
+ */
1483
+ exports.OverwriteTypes = createEnum(['role', 'member']);
1484
+
1485
+ /* eslint-disable max-len */
1486
+ /**
1487
+ * The type of an {@link ApplicationCommand} object:
1488
+ * * CHAT_INPUT
1489
+ * * USER
1490
+ * * MESSAGE
1491
+ * @typedef {string} ApplicationCommandType
1492
+ * @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-types}
1493
+ */
1494
+ exports.ApplicationCommandTypes = createEnum([null, 'CHAT_INPUT', 'USER', 'MESSAGE']);
1495
+
1496
+ /**
1497
+ * The type of an {@link ApplicationCommandOption} object:
1498
+ * * SUB_COMMAND
1499
+ * * SUB_COMMAND_GROUP
1500
+ * * STRING
1501
+ * * INTEGER
1502
+ * * BOOLEAN
1503
+ * * USER
1504
+ * * CHANNEL
1505
+ * * ROLE
1506
+ * * MENTIONABLE
1507
+ * * NUMBER
1508
+ * * ATTACHMENT
1509
+ * @typedef {string} ApplicationCommandOptionType
1510
+ * @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-object-application-command-option-type}
1511
+ */
1512
+ exports.ApplicationCommandOptionTypes = createEnum([
1513
+ null,
1514
+ 'SUB_COMMAND',
1515
+ 'SUB_COMMAND_GROUP',
1516
+ 'STRING',
1517
+ 'INTEGER',
1518
+ 'BOOLEAN',
1519
+ 'USER',
1520
+ 'CHANNEL',
1521
+ 'ROLE',
1522
+ 'MENTIONABLE',
1523
+ 'NUMBER',
1524
+ 'ATTACHMENT',
1525
+ ]);
1526
+
1527
+ /**
1528
+ * The type of an {@link ApplicationCommandPermissions} object:
1529
+ * * ROLE
1530
+ * * USER
1531
+ * @typedef {string} ApplicationCommandPermissionType
1532
+ * @see {@link https://discord.com/developers/docs/interactions/application-commands#application-command-permissions-object-application-command-permission-type}
1533
+ */
1534
+ exports.ApplicationCommandPermissionTypes = createEnum([null, 'ROLE', 'USER']);
1535
+
1536
+ /**
1537
+ * Each metadata type offers a comparison operation that allows
1538
+ * guilds to configure role requirements based on metadata values stored by the bot.
1539
+ * Bots specify a metadata value for each user and guilds specify
1540
+ * the required guild's configured value within the guild role settings.
1541
+ * All available channel types:
1542
+ * * INTEGER_LESS_THAN_OR_EQUAL
1543
+ * * INTEGER_GREATER_THAN_OR_EQUAL
1544
+ * * INTEGER_EQUAL
1545
+ * * INTEGER_NOT_EQUAL
1546
+ * * DATATIME_LESS_THAN_OR_EQUAL
1547
+ * * DATATIME_GREATER_THAN_OR_EQUAL
1548
+ * * BOOLEAN_EQUAL
1549
+ * * BOOLEAN_NOT_EQUAL
1550
+ * @typedef {string} ApplicationRoleConnectionMetadataType
1551
+ * @see{@link https://discord.com/developers/docs/resources/application-role-connection-metadata#application-role-connection-metadata-object-application-role-connection-metadata-type}
1552
+ */
1553
+ exports.ApplicationRoleConnectionMetadataTypes = createEnum([
1554
+ null,
1555
+ 'INTEGER_LESS_THAN_OR_EQUAL',
1556
+ 'INTEGER_GREATER_THAN_OR_EQUAL',
1557
+ 'INTEGER_EQUAL',
1558
+ 'INTEGER_NOT_EQUAL',
1559
+ 'DATATIME_LESS_THAN_OR_EQUAL',
1560
+ 'DATATIME_GREATER_THAN_OR_EQUAL',
1561
+ 'BOOLEAN_EQUAL',
1562
+ 'BOOLEAN_NOT_EQUAL',
1563
+ ]);
1564
+
1565
+ /**
1566
+ * The type of an {@link AutoModerationRuleTriggerTypes} object:
1567
+ * * KEYWORD
1568
+ * * SPAM
1569
+ * * KEYWORD_PRESET
1570
+ * * MENTION_SPAM
1571
+ * @typedef {string} AutoModerationRuleTriggerType
1572
+ * @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-trigger-types}
1573
+ */
1574
+ exports.AutoModerationRuleTriggerTypes = createEnum([null, 'KEYWORD', null, 'SPAM', 'KEYWORD_PRESET', 'MENTION_SPAM']);
1575
+
1576
+ /**
1577
+ * The type of an {@link AutoModerationRuleKeywordPresetTypes} object:
1578
+ * * KEYWORD
1579
+ * * SPAM
1580
+ * * KEYWORD_PRESET
1581
+ * * MENTION_SPAM
1582
+ * @typedef {string} AutoModerationRuleKeywordPresetType
1583
+ * @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-keyword-preset-types}
1584
+ */
1585
+ exports.AutoModerationRuleKeywordPresetTypes = createEnum([null, 'PROFANITY', 'SEXUAL_CONTENT', 'SLURS']);
1586
+ /**
1587
+ * The type of an {@link AutoModerationActionTypes} object:
1588
+ * * BLOCK_MESSAGE
1589
+ * * SEND_ALERT_MESSAGE
1590
+ * * TIMEOUT
1591
+ * @typedef {string} AutoModerationActionType
1592
+ * @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-action-object-action-types}
1593
+ */
1594
+ exports.AutoModerationActionTypes = createEnum([null, 'BLOCK_MESSAGE', 'SEND_ALERT_MESSAGE', 'TIMEOUT']);
1595
+
1596
+ /**
1597
+ * The type of an {@link AutoModerationRuleEventTypes} object:
1598
+ * * MESSAGE_SEND
1599
+ * @typedef {string} AutoModerationRuleEventType
1600
+ * @see {@link https://discord.com/developers/docs/resources/auto-moderation#auto-moderation-rule-object-event-types}
1601
+ */
1602
+
1603
+ exports.AutoModerationRuleEventTypes = createEnum([null, 'MESSAGE_SEND']);
1604
+ /**
1605
+ * The type of an {@link Interaction} object:
1606
+ * * PING
1607
+ * * APPLICATION_COMMAND
1608
+ * * MESSAGE_COMPONENT
1609
+ * * APPLICATION_COMMAND_AUTOCOMPLETE
1610
+ * * MODAL_SUBMIT
1611
+ * @typedef {string} InteractionType
1612
+ * @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-object-interaction-type}
1613
+ */
1614
+ exports.InteractionTypes = createEnum([
1615
+ null,
1616
+ 'PING',
1617
+ 'APPLICATION_COMMAND',
1618
+ 'MESSAGE_COMPONENT',
1619
+ 'APPLICATION_COMMAND_AUTOCOMPLETE',
1620
+ 'MODAL_SUBMIT',
1621
+ ]);
1622
+
1623
+ /**
1624
+ * The type of an interaction response:
1625
+ * * PONG
1626
+ * * CHANNEL_MESSAGE_WITH_SOURCE
1627
+ * * DEFERRED_CHANNEL_MESSAGE_WITH_SOURCE
1628
+ * * DEFERRED_MESSAGE_UPDATE
1629
+ * * UPDATE_MESSAGE
1630
+ * * APPLICATION_COMMAND_AUTOCOMPLETE_RESULT
1631
+ * * MODAL
1632
+ * @typedef {string} InteractionResponseType
1633
+ * @see {@link https://discord.com/developers/docs/interactions/receiving-and-responding#interaction-response-object-interaction-callback-type}
1634
+ */
1635
+ exports.InteractionResponseTypes = createEnum([
1636
+ null,
1637
+ 'PONG',
1638
+ null,
1639
+ null,
1640
+ 'CHANNEL_MESSAGE_WITH_SOURCE',
1641
+ 'DEFERRED_CHANNEL_MESSAGE_WITH_SOURCE',
1642
+ 'DEFERRED_MESSAGE_UPDATE',
1643
+ 'UPDATE_MESSAGE',
1644
+ 'APPLICATION_COMMAND_AUTOCOMPLETE_RESULT',
1645
+ 'MODAL',
1646
+ ]);
1647
+
1648
+ /**
1649
+ * The type of a message component
1650
+ * * ACTION_ROW
1651
+ * * BUTTON
1652
+ * * STRING_SELECT
1653
+ * * TEXT_INPUT
1654
+ * * USER_SELECT
1655
+ * * ROLE_SELECT
1656
+ * * MENTIONABLE_SELECT
1657
+ * * CHANNEL_SELECT
1658
+ * @typedef {string} MessageComponentType
1659
+ * @see {@link https://discord.com/developers/docs/interactions/message-components#component-object-component-types}
1660
+ */
1661
+ exports.MessageComponentTypes = createEnum([
1662
+ null,
1663
+ 'ACTION_ROW',
1664
+ 'BUTTON',
1665
+ 'STRING_SELECT',
1666
+ 'TEXT_INPUT',
1667
+ 'USER_SELECT',
1668
+ 'ROLE_SELECT',
1669
+ 'MENTIONABLE_SELECT',
1670
+ 'CHANNEL_SELECT',
1671
+ 'SECTION',
1672
+ 'TEXT_DISPLAY',
1673
+ 'THUMBNAIL',
1674
+ 'MEDIA_GALLERY',
1675
+ 'FILE',
1676
+ 'SEPARATOR',
1677
+ null,
1678
+ null,
1679
+ 'CONTAINER',
1680
+ ]);
1681
+
1682
+ /**
1683
+ * The types of components that are select menus. The available types are:
1684
+ * * STRING_MENU
1685
+ * * USER_SELECT
1686
+ * * ROLE_SELECT
1687
+ * * MENTIONABLE_SELECT
1688
+ * * CHANNEL_SELECT
1689
+ * @typedef {string} SelectMenuComponentType
1690
+ * @see {@link https://discord.com/developers/docs/interactions/message-components#component-object-component-types}
1691
+ */
1692
+ exports.SelectMenuComponentTypes = createEnum([
1693
+ ...new Array(3).fill(null),
1694
+ 'STRING_MENU',
1695
+ null,
1696
+ 'USER_SELECT',
1697
+ 'ROLE_SELECT',
1698
+ 'MENTIONABLE_SELECT',
1699
+ 'CHANNEL_SELECT',
1700
+ ]);
1701
+
1702
+ /**
1703
+ * The style of a message button
1704
+ * * PRIMARY
1705
+ * * SECONDARY
1706
+ * * SUCCESS
1707
+ * * DANGER
1708
+ * * LINK
1709
+ * @typedef {string} MessageButtonStyle
1710
+ * @see {@link https://discord.com/developers/docs/interactions/message-components#button-object-button-styles}
1711
+ */
1712
+ exports.MessageButtonStyles = createEnum([null, 'PRIMARY', 'SECONDARY', 'SUCCESS', 'DANGER', 'LINK']);
1713
+
1714
+ /**
1715
+ * The required MFA level for a guild
1716
+ * * NONE
1717
+ * * ELEVATED
1718
+ * @typedef {string} MFALevel
1719
+ * @see {@link https://discord.com/developers/docs/resources/guild#guild-object-mfa-level}
1720
+ */
1721
+ exports.MFALevels = createEnum(['NONE', 'ELEVATED']);
1722
+
1723
+ /**
1724
+ * NSFW level of a Guild:
1725
+ * * DEFAULT
1726
+ * * EXPLICIT
1727
+ * * SAFE
1728
+ * * AGE_RESTRICTED
1729
+ * @typedef {string} NSFWLevel
1730
+ * @see {@link https://discord.com/developers/docs/resources/guild#guild-object-guild-nsfw-level}
1731
+ */
1732
+ exports.NSFWLevels = createEnum(['DEFAULT', 'EXPLICIT', 'SAFE', 'AGE_RESTRICTED']);
1733
+
1734
+ /**
1735
+ * Privacy level of a {@link StageInstance} object:
1736
+ * * PUBLIC
1737
+ * * GUILD_ONLY
1738
+ * @typedef {string} PrivacyLevel
1739
+ * @see {@link https://discord.com/developers/docs/resources/stage-instance#stage-instance-object-privacy-level}
1740
+ */
1741
+ exports.PrivacyLevels = createEnum([null, 'PUBLIC', 'GUILD_ONLY']);
1742
+
1743
+ /**
1744
+ * The style of a text input component
1745
+ * * SHORT
1746
+ * * PARAGRAPH
1747
+ * @typedef {string} TextInputStyle
1748
+ * @see {@link https://discord.com/developers/docs/interactions/message-components#text-inputs-text-input-styles}
1749
+ */
1750
+ exports.TextInputStyles = createEnum([null, 'SHORT', 'PARAGRAPH']);
1751
+
1752
+ /**
1753
+ * Privacy level of a {@link GuildScheduledEvent} object:
1754
+ * * GUILD_ONLY
1755
+ * @typedef {string} GuildScheduledEventPrivacyLevel
1756
+ * @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-privacy-level}
1757
+ */
1758
+ exports.GuildScheduledEventPrivacyLevels = createEnum([null, null, 'GUILD_ONLY']);
1759
+
1760
+ /**
1761
+ * The premium tier (Server Boost level) of a guild:
1762
+ * * NONE
1763
+ * * TIER_1
1764
+ * * TIER_2
1765
+ * * TIER_3
1766
+ * @typedef {string} PremiumTier
1767
+ * @see {@link https://discord.com/developers/docs/resources/guild#guild-object-premium-tier}
1768
+ */
1769
+ exports.PremiumTiers = createEnum(['NONE', 'TIER_1', 'TIER_2', 'TIER_3']);
1770
+
1771
+ /**
1772
+ * The status of a {@link GuildScheduledEvent}:
1773
+ * * SCHEDULED
1774
+ * * ACTIVE
1775
+ * * COMPLETED
1776
+ * * CANCELED
1777
+ * @typedef {string} GuildScheduledEventStatus
1778
+ * @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-status}
1779
+ */
1780
+ exports.GuildScheduledEventStatuses = createEnum([null, 'SCHEDULED', 'ACTIVE', 'COMPLETED', 'CANCELED']);
1781
+
1782
+ /**
1783
+ * The entity type of a {@link GuildScheduledEvent}:
1784
+ * * NONE
1785
+ * * STAGE_INSTANCE
1786
+ * * VOICE
1787
+ * * EXTERNAL
1788
+ * @typedef {string} GuildScheduledEventEntityType
1789
+ * @see {@link https://discord.com/developers/docs/resources/guild-scheduled-event#guild-scheduled-event-object-guild-scheduled-event-entity-types}
1790
+ */
1791
+ exports.GuildScheduledEventEntityTypes = createEnum([null, 'STAGE_INSTANCE', 'VOICE', 'EXTERNAL']);
1792
+ /* eslint-enable max-len */
1793
+
1794
+ /**
1795
+ * The camera video quality mode of a {@link VoiceChannel}:
1796
+ * * AUTO
1797
+ * * FULL
1798
+ * @typedef {string} VideoQualityMode
1799
+ * @see {@link https://discord.com/developers/docs/resources/channel#channel-object-video-quality-modes}
1800
+ */
1801
+ exports.VideoQualityModes = createEnum([null, 'AUTO', 'FULL']);
1802
+
1803
+ /**
1804
+ * The type of reaction
1805
+ * * NORMAL
1806
+ * * BURST
1807
+ * @typedef {string} ReactionType
1808
+ * @see {@link https://discord.com/developers/docs/resources/channel#channel-object-video-quality-modes}
1809
+ */
1810
+ exports.ReactionTypes = createEnum(['NORMAL', 'BURST']);
1811
+
1812
+ /**
1813
+ * Sort {@link ThreadOnlyChannel} posts by creation time or activity
1814
+ * * LATEST_ACTIVITY
1815
+ * * CREATION_DATE
1816
+ * @typedef {string} SortOrderType
1817
+ * @see {@link https://discord.com/developers/docs/resources/channel/#channel-object-sort-order-types}
1818
+ */
1819
+ exports.SortOrderTypes = createEnum([null, 'LATEST_ACTIVITY', 'CREATION_DATE']);
1820
+
1821
+ /**
1822
+ * The default forum layout to set on the {@link ForumChannel}
1823
+ * * NOT_SET
1824
+ * * LIST_VIEW
1825
+ * * GALLERY_VIEW
1826
+ * @typedef {string} ForumLayoutType
1827
+ * @see {@link https://discord.com/developers/docs/resources/channel/#channel-object-forum-layout-types}
1828
+ */
1829
+ exports.ForumLayoutTypes = createEnum(['NOT_SET', 'LIST_VIEW', 'GALLERY_VIEW']);
1830
+
1831
+ /**
1832
+ * Different layouts for {@link MessagePoll} will come in the future. For now though, this value will always be `DEFAULT`.
1833
+ * * DEFAULT
1834
+ * * IMAGE_ONLY_ANSWERS
1835
+ * @typedef {string} PollLayoutType
1836
+ * @see {@link https://docs.discord.food/resources/message#poll-layout-type}
1837
+ */
1838
+ exports.PollLayoutTypes = createEnum([null, 'DEFAULT', 'IMAGE_ONLY_ANSWERS']);
1839
+
1840
+ /**
1841
+ * Relationship Enums:
1842
+ * * 0: NONE
1843
+ * * 1: FRIEND
1844
+ * * 2: BLOCKED
1845
+ * * 3: PENDING_INCOMING
1846
+ * * 4: PENDING_OUTGOING
1847
+ * * 5: IMPLICIT
1848
+ * @typedef {string} RelationshipType
1849
+ * @see {@link https://luna.gitlab.io/discord-unofficial-docs/relationships.html}
1850
+ */
1851
+
1852
+ exports.RelationshipTypes = createEnum([
1853
+ 'NONE',
1854
+ 'FRIEND',
1855
+ 'BLOCKED',
1856
+ 'PENDING_INCOMING',
1857
+ 'PENDING_OUTGOING',
1858
+ 'IMPLICIT',
1859
+ ]);
1860
+
1861
+ exports.SeparatorSpacingSizes = createEnum([null, 'SMALL', 'LARGE']);
1862
+
1863
+ exports._cleanupSymbol = Symbol('djsCleanup');
1864
+
1865
+ function keyMirror(arr) {
1866
+ let tmp = Object.create(null);
1867
+ for (const value of arr) tmp[value] = value;
1868
+ return tmp;
1869
+ }
1870
+
1871
+ function createEnum(keys) {
1872
+ const obj = {};
1873
+ for (const [index, key] of keys.entries()) {
1874
+ if (key === null) continue;
1875
+ obj[key] = index;
1876
+ obj[index] = key;
1877
+ }
1878
+ return obj;
1879
+ }
1880
+
1881
+ /**
1882
+ * @typedef {Object} Constants Constants that can be used in an enum or object-like way.
1883
+ * @property {Object<ActivityType, number>} ActivityTypes The type of an activity of a users presence.
1884
+ * @property {Object<APIError, number>} APIErrors An error encountered while performing an API request.
1885
+ * @property {Object<ApplicationCommandOptionType, number>} ApplicationCommandOptionTypes
1886
+ * The type of an {@link ApplicationCommandOption} object.
1887
+ * @property {Object<ApplicationCommandPermissionType, number>} ApplicationCommandPermissionTypes
1888
+ * The type of an {@link ApplicationCommandPermissions} object.
1889
+ * @property {Object<ApplicationCommandType, number>} ApplicationCommandTypes
1890
+ * The type of an {@link ApplicationCommand} object.
1891
+ * @property {Object<ApplicationRoleConnectionMetadataType, number>} ApplicationRoleConnectionMetadataTypes
1892
+ * The type of an {@link ApplicationRoleConnectionMetadata} object.
1893
+ * @property {Object<AutoModerationActionType, number>} AutoModerationActionTypes
1894
+ * A type of an action which executes whenever a rule is triggered.
1895
+ * @property {Object<AutoModerationRuleEventType, number>} AutoModerationRuleEventTypes Indicates in what event context
1896
+ * a rule should be checked.
1897
+ * @property {Object<AutoModerationRuleKeywordPresetType, number>} AutoModerationRuleKeywordPresetTypes
1898
+ * The internally pre-defined wordsetswhich will be searched for in content
1899
+ * @property {Object<AutoModerationRuleTriggerType, number>} AutoModerationRuleTriggerTypes Characterizes the type
1900
+ * of content which can trigger the rule.
1901
+ * @property {Object<ChannelType, number>} ChannelTypes All available channel types.
1902
+ * @property {ClientApplicationAssetTypes} ClientApplicationAssetTypes The types of an {@link ApplicationAsset} object.
1903
+ * @property {Object<Color, number>} Colors An object with regularly used colors.
1904
+ * @property {Object<DefaultMessageNotificationLevel, number>} DefaultMessageNotificationLevels
1905
+ * The value set for a guilds default message notifications.
1906
+ * @property {Endpoints} Endpoints Object containing functions that return certain endpoints on the API.
1907
+ * @property {Events} Events The types of events emitted by the Client.
1908
+ * @property {Object<ExplicitContentFilterLevel, number>} ExplicitContentFilterLevels
1909
+ * The value set for the explicit content filter levels for a guild.
1910
+ * @property {Object<GuildScheduledEventEntityType, number>} GuildScheduledEventEntityTypes
1911
+ * The entity type of a {@link GuildScheduledEvent} object.
1912
+ * @property {Object<GuildScheduledEventPrivacyLevel, number>} GuildScheduledEventPrivacyLevels
1913
+ * Privacy level of a {@link GuildScheduledEvent} object.
1914
+ * @property {Object<GuildScheduledEventStatus, number>} GuildScheduledEventStatuses
1915
+ * The status of a {@link GuildScheduledEvent} object.
1916
+ * @property {Object<IntegrationExpireBehavior, number>} IntegrationExpireBehaviors
1917
+ * The behavior of expiring subscribers for Integrations.
1918
+ * @property {Object<InteractionResponseType, number>} InteractionResponseTypes The type of an interaction response.
1919
+ * @property {Object<InteractionType, number>} InteractionTypes The type of an {@link Interaction} object.
1920
+ * @property {InviteScope[]} InviteScopes The scopes of an invite.
1921
+ * @property {Object<RelationshipType, number>} RelationshipTypes Relationship Enums
1922
+ * @property {Object<SeparatorSpacingSize, number>} SeparatorSpacingSize Size of separator padding (Enums)
1923
+ * @property {Object<MembershipState, number>} MembershipStates The value set for a team members membership state.
1924
+ * @property {Object<MessageButtonStyle, number>} MessageButtonStyles The style of a message button.
1925
+ * @property {Object<MessageComponentType, number>} MessageComponentTypes The type of a message component.
1926
+ * @property {MessageType[]} MessageTypes The type of a {@link Message} object.
1927
+ * @property {Object<MFALevel, number>} MFALevels The required MFA level for a guild.
1928
+ * @property {Object<NSFWLevel, number>} NSFWLevels NSFW level of a guild.
1929
+ * @property {Opcodes} Opcodes The types of Opcodes sent to the Gateway.
1930
+ * @property {Object<OverwriteType, number>} OverwriteTypes An overwrite type.
1931
+ * @property {Object} Package The package.json of the library.
1932
+ * @property {Object<PartialType, PartialType>} PartialTypes The type of Structure allowed to be a partial.
1933
+ * @property {Object<PremiumTier, number>} PremiumTiers The premium tier (Server Boost level) of a guild.
1934
+ * @property {Object<PrivacyLevel, number>} PrivacyLevels Privacy level of a {@link StageInstance} object.
1935
+ * @property {ShardEvents} ShardEvents The type of events emitted by a Shard.
1936
+ * @property {Status} Status The available statuses of the client.
1937
+ * @property {Object<SelectMenuComponentType, number>} SelectMenuComponentTypes The type of any select menu.
1938
+ * @property {Object<StickerFormatType, number>} StickerFormatTypes The value set for a stickers format type.
1939
+ * @property {Object<StickerType, number>} StickerTypes The value set for a stickers type.
1940
+ * @property {SweeperKey[]} SweeperKeys The name of an item to be swept in Sweepers.
1941
+ * @property {SystemMessageType[]} SystemMessageTypes The types of messages that are `System`.
1942
+ * @property {Object<TextInputStyle, number>} TextInputStyles The style of a text input component.
1943
+ * @property {ThreadChannelTypes[]} ThreadChannelTypes The type of a {@link ThreadChannel} object.
1944
+ * @property {string} UserAgent The user agent used for requests.
1945
+ * @property {Object<VerificationLevel, number>} VerificationLevels
1946
+ * The value set for the verification levels for a guild.
1947
+ * @property {Object<VideoQualityMode, number>} VideoQualityModes
1948
+ * The camera video quality mode for a {@link VoiceChannel}.
1949
+ * @property {Object<WebhookType, number>} WebhookTypes The value set for a webhooks type.
1950
+ * @property {WSCodes} WSCodes The types of WebSocket error codes.
1951
+ * @property {Object<WSEventType, WSEventType>} WSEvents The type of a WebSocket message event.
1952
+ * @property {HolographicStyle} HolographicStyles Holographic color values for role styling.
1953
+ */