rockcord 4.0.0-dev.4

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