discord.js-selfbott-v14 2.12.0

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