safeness-sb-new 0.0.1

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