djs-selfbot-v13 3.1.6 → 3.1.7

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 (148) hide show
  1. package/README.md +31 -16
  2. package/package.json +15 -8
  3. package/src/client/BaseClient.js +3 -2
  4. package/src/client/Client.js +539 -187
  5. package/src/client/actions/Action.js +13 -18
  6. package/src/client/actions/ActionsManager.js +1 -7
  7. package/src/client/actions/AutoModerationActionExecution.js +0 -1
  8. package/src/client/actions/AutoModerationRuleCreate.js +0 -1
  9. package/src/client/actions/AutoModerationRuleDelete.js +0 -1
  10. package/src/client/actions/AutoModerationRuleUpdate.js +0 -1
  11. package/src/client/actions/InteractionCreate.js +115 -0
  12. package/src/client/actions/MessageCreate.js +4 -0
  13. package/src/client/actions/PresenceUpdate.js +16 -17
  14. package/src/client/websocket/WebSocketManager.js +31 -11
  15. package/src/client/websocket/WebSocketShard.js +38 -39
  16. package/src/client/websocket/handlers/APPLICATION_COMMAND_AUTOCOMPLETE_RESPONSE.js +23 -0
  17. package/src/client/websocket/handlers/CALL_CREATE.js +3 -3
  18. package/src/client/websocket/handlers/CALL_DELETE.js +2 -2
  19. package/src/client/websocket/handlers/CALL_UPDATE.js +2 -2
  20. package/src/client/websocket/handlers/CHANNEL_RECIPIENT_ADD.js +13 -16
  21. package/src/client/websocket/handlers/CHANNEL_RECIPIENT_REMOVE.js +11 -11
  22. package/src/client/websocket/handlers/GUILD_APPLICATION_COMMANDS_UPDATE.js +11 -0
  23. package/src/client/websocket/handlers/GUILD_CREATE.js +0 -7
  24. package/src/client/websocket/handlers/GUILD_MEMBER_LIST_UPDATE.js +55 -0
  25. package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUNDS_UPDATE.js +0 -0
  26. package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_CREATE.js +0 -0
  27. package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_DELETE.js +0 -0
  28. package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_UPDATE.js +0 -0
  29. package/src/client/websocket/handlers/INTERACTION_CREATE.js +16 -0
  30. package/src/client/websocket/handlers/INTERACTION_FAILURE.js +18 -0
  31. package/src/client/websocket/handlers/INTERACTION_MODAL_CREATE.js +0 -1
  32. package/src/client/websocket/handlers/INTERACTION_SUCCESS.js +30 -0
  33. package/src/client/websocket/handlers/MESSAGE_ACK.js +16 -0
  34. package/src/client/websocket/handlers/READY.js +137 -47
  35. package/src/client/websocket/handlers/RELATIONSHIP_ADD.js +5 -7
  36. package/src/client/websocket/handlers/RELATIONSHIP_REMOVE.js +4 -6
  37. package/src/client/websocket/handlers/RELATIONSHIP_UPDATE.js +9 -32
  38. package/src/client/websocket/handlers/SOUNDBOARD_SOUNDS.js +0 -0
  39. package/src/client/websocket/handlers/USER_GUILD_SETTINGS_UPDATE.js +8 -2
  40. package/src/client/websocket/handlers/USER_NOTE_UPDATE.js +1 -1
  41. package/src/client/websocket/handlers/USER_SETTINGS_UPDATE.js +5 -1
  42. package/src/client/websocket/handlers/VOICE_CHANNEL_EFFECT_SEND.js +0 -0
  43. package/src/client/websocket/handlers/index.js +20 -15
  44. package/src/errors/Messages.js +69 -24
  45. package/src/index.js +43 -12
  46. package/src/managers/ApplicationCommandManager.js +12 -9
  47. package/src/managers/ApplicationCommandPermissionsManager.js +11 -3
  48. package/src/managers/ChannelManager.js +4 -2
  49. package/src/managers/ClientUserSettingManager.js +279 -161
  50. package/src/managers/DeveloperPortalManager.js +104 -0
  51. package/src/managers/GuildApplicationCommandManager.js +28 -0
  52. package/src/managers/GuildBanManager.js +1 -1
  53. package/src/managers/GuildChannelManager.js +0 -2
  54. package/src/managers/GuildFolderManager.js +24 -0
  55. package/src/managers/GuildForumThreadManager.js +28 -22
  56. package/src/managers/GuildMemberManager.js +216 -40
  57. package/src/managers/GuildSettingManager.js +15 -22
  58. package/src/managers/MessageManager.js +44 -42
  59. package/src/managers/PermissionOverwriteManager.js +1 -1
  60. package/src/managers/ReactionUserManager.js +5 -5
  61. package/src/managers/RelationshipManager.js +74 -81
  62. package/src/managers/SessionManager.js +57 -0
  63. package/src/managers/ThreadManager.js +45 -12
  64. package/src/managers/ThreadMemberManager.js +1 -1
  65. package/src/managers/UserManager.js +10 -6
  66. package/src/rest/APIRequest.js +20 -42
  67. package/src/rest/CaptchaSolver.js +132 -0
  68. package/src/rest/DiscordAPIError.js +16 -17
  69. package/src/rest/RESTManager.js +21 -1
  70. package/src/rest/RequestHandler.js +21 -35
  71. package/src/structures/ApplicationCommand.js +456 -19
  72. package/src/structures/ApplicationRoleConnectionMetadata.js +0 -3
  73. package/src/structures/AutoModerationRule.js +5 -5
  74. package/src/structures/AutocompleteInteraction.js +0 -1
  75. package/src/structures/BaseGuildTextChannel.js +12 -10
  76. package/src/structures/BaseGuildVoiceChannel.js +18 -16
  77. package/src/structures/{CallState.js → Call.js} +12 -17
  78. package/src/structures/CategoryChannel.js +0 -2
  79. package/src/structures/Channel.js +3 -2
  80. package/src/structures/ClientApplication.js +204 -0
  81. package/src/structures/ClientPresence.js +8 -12
  82. package/src/structures/ClientUser.js +336 -117
  83. package/src/structures/ContextMenuInteraction.js +1 -1
  84. package/src/structures/DMChannel.js +92 -29
  85. package/src/structures/DeveloperPortalApplication.js +520 -0
  86. package/src/structures/ForumChannel.js +10 -0
  87. package/src/structures/Guild.js +271 -135
  88. package/src/structures/GuildAuditLogs.js +5 -0
  89. package/src/structures/GuildChannel.js +2 -16
  90. package/src/structures/GuildFolder.js +75 -0
  91. package/src/structures/GuildMember.js +145 -27
  92. package/src/structures/Interaction.js +62 -1
  93. package/src/structures/InteractionResponse.js +114 -0
  94. package/src/structures/Invite.js +52 -35
  95. package/src/structures/Message.js +202 -222
  96. package/src/structures/MessageAttachment.js +0 -11
  97. package/src/structures/MessageButton.js +67 -1
  98. package/src/structures/MessageEmbed.js +1 -1
  99. package/src/structures/MessageMentions.js +2 -3
  100. package/src/structures/MessagePayload.js +46 -4
  101. package/src/structures/MessageReaction.js +1 -1
  102. package/src/structures/MessageSelectMenu.js +252 -1
  103. package/src/structures/Modal.js +180 -75
  104. package/src/structures/PartialGroupDMChannel.js +433 -0
  105. package/src/structures/Presence.js +2 -2
  106. package/src/structures/RichPresence.js +34 -14
  107. package/src/structures/Role.js +2 -18
  108. package/src/structures/SelectMenuInteraction.js +151 -2
  109. package/src/structures/Session.js +81 -0
  110. package/src/structures/Team.js +49 -0
  111. package/src/structures/TextInputComponent.js +70 -0
  112. package/src/structures/ThreadChannel.js +19 -0
  113. package/src/structures/User.js +345 -117
  114. package/src/structures/UserContextMenuInteraction.js +2 -2
  115. package/src/structures/VoiceState.js +39 -74
  116. package/src/structures/WebEmbed.js +52 -38
  117. package/src/structures/Webhook.js +11 -17
  118. package/src/structures/interfaces/Application.js +23 -146
  119. package/src/structures/interfaces/TextBasedChannel.js +256 -411
  120. package/src/util/ApplicationFlags.js +1 -1
  121. package/src/util/Constants.js +284 -106
  122. package/src/util/Formatters.js +2 -16
  123. package/src/util/LimitedCollection.js +1 -1
  124. package/src/util/Options.js +68 -48
  125. package/src/util/Permissions.js +0 -5
  126. package/src/util/PurchasedFlags.js +0 -2
  127. package/src/util/RemoteAuth.js +356 -221
  128. package/src/util/Sweepers.js +1 -1
  129. package/src/util/Util.js +36 -76
  130. package/src/util/Voice.js +1456 -0
  131. package/src/util/arRPC/index.js +229 -0
  132. package/src/util/arRPC/process/detectable.json +1 -0
  133. package/src/util/arRPC/process/index.js +102 -0
  134. package/src/util/arRPC/process/native/index.js +5 -0
  135. package/src/util/arRPC/process/native/linux.js +37 -0
  136. package/src/util/arRPC/process/native/win32.js +25 -0
  137. package/src/util/arRPC/transports/ipc.js +281 -0
  138. package/src/util/arRPC/transports/websocket.js +128 -0
  139. package/typings/enums.d.ts +73 -18
  140. package/typings/index.d.ts +1249 -897
  141. package/typings/rawDataTypes.d.ts +9 -68
  142. package/src/client/websocket/handlers/USER_REQUIRED_ACTION_UPDATE.js +0 -78
  143. package/src/client/websocket/handlers/VOICE_CHANNEL_STATUS_UPDATE.js +0 -12
  144. package/src/managers/UserNoteManager.js +0 -53
  145. package/src/structures/GroupDMChannel.js +0 -387
  146. package/src/util/AttachmentFlags.js +0 -38
  147. package/src/util/InviteFlags.js +0 -29
  148. package/src/util/RoleFlags.js +0 -37
@@ -1,39 +1,134 @@
1
1
  'use strict';
2
-
2
+ /* Not used:
3
+ const process = require('node:process');
4
+ const Package = (exports.Package = require('../../package.json'));
5
+ */
3
6
  const { Error, RangeError, TypeError } = require('../errors');
4
7
 
8
+ exports.defaultUA =
9
+ 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) discord/1.0.9015 Chrome/108.0.5359.215 Electron/22.3.12 Safari/537.36';
10
+
5
11
  /**
6
12
  * Max bulk deletable message age
7
13
  * @typedef {number} MaxBulkDeletableMessageAge
8
14
  */
9
15
  exports.MaxBulkDeletableMessageAge = 1_209_600_000;
10
16
 
11
- exports.UserAgent =
12
- 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.215 Electron/22.3.26 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
- ];
17
+ /**
18
+ * API captcha solver
19
+ * * `2captcha` - 2captcha.com
20
+ * * `capmonster` - capmonster.cloud
21
+ * @typedef {string[]} captchaServices
22
+ */
23
+ exports.captchaServices = ['2captcha', 'capmonster', 'custom'];
24
+
25
+ /**
26
+ * Automatically scan and delete direct messages you receive that contain explicit media content.
27
+ * * `NOT_SCAN` - Direct messages will not be scanned for explicit content.
28
+ * * `NOT_FRIEND` - Scan direct messages from everyone unless they are a friend.
29
+ * * `EVERYONE` - Scan direct messages from everyone.
30
+ * @typedef {string} DMScanLevel
31
+ */
32
+ exports.DMScanLevel = createEnum(['NOT_SCAN', 'NOT_FRIEND', 'EVERYONE']);
33
+
34
+ /**
35
+ * This controls when stickers animate:
36
+ * * `ALWAYS` - Always animate.
37
+ * * `INTERACTION` - On the desktop client, stickers will animate on hover or focus. On mobile clients, stickers will animate on long-press.
38
+ * * `NEVER` - Never animate.
39
+ * @typedef {string} stickerAnimationMode
40
+ */
41
+ exports.stickerAnimationMode = createEnum(['ALWAYS', 'INTERACTION', 'NEVER']);
42
+
43
+ /**
44
+ * All available nitro types:
45
+ * * `NONE` - None
46
+ * * `NITRO_CLASSIC` - Nitro Classic
47
+ * * `NITRO_BOOST` - Nitro
48
+ * * `NITRO_BASIC` - Nitro Basic
49
+ * * `UNKNOWN` - Unknown
50
+ * @typedef {string} NitroType
51
+ * @see {@link https://discord.com/developers/docs/resources/user#user-object-premium-types}
52
+ */
53
+ exports.NitroType = createEnum(['NONE', 'NITRO_CLASSIC', 'NITRO_BOOST', 'NITRO_BASIC']);
54
+
55
+ /**
56
+ * All available HypeSquad types:
57
+ * * `LEAVE` - None
58
+ * * `HOUSE_BRAVERY` - HypeSquad Bravery
59
+ * * `HOUSE_BRILLIANCE` - HypeSquad Brilliance
60
+ * * `HOUSE_BALANCE` - HypeSquad Balance
61
+ * @typedef {string} HypeSquadType
62
+ */
63
+ exports.HypeSquadType = createEnum(['LEAVE', 'HOUSE_BRAVERY', 'HOUSE_BRILLIANCE', 'HOUSE_BALANCE']);
64
+
65
+ /**
66
+ * All locale codes:
67
+ * * `DANISH`
68
+ * * `GERMAN`
69
+ * * `ENGLISH_UK`
70
+ * * `ENGLISH_US`
71
+ * * `SPANISH`
72
+ * * `FRENCH`
73
+ * * `CROATIAN`
74
+ * * `ITALIAN`
75
+ * * `LITHUANIAN`
76
+ * * `HUNGARIAN`
77
+ * * `DUTCH`
78
+ * * `NORWEGIAN`
79
+ * * `POLISH`
80
+ * * `BRAZILIAN_PORTUGUESE`
81
+ * * `ROMANIA_ROMANIAN`
82
+ * * `FINNISH`
83
+ * * `SWEDISH`
84
+ * * `VIETNAMESE`
85
+ * * `TURKISH`
86
+ * * `CZECH`
87
+ * * `GREEK`
88
+ * * `BULGARIAN`
89
+ * * `RUSSIAN`
90
+ * * `UKRAINIAN`
91
+ * * `HINDI`
92
+ * * `THAI`
93
+ * * `CHINA_CHINESE`
94
+ * * `JAPANESE`
95
+ * * `TAIWAN_CHINESE`
96
+ * * `KOREAN`
97
+ * @typedef {Object<string, string>} localeSetting
98
+ * @see {@link https://discord.com/developers/docs/reference#locales}
99
+ */
100
+ exports.localeSetting = {
101
+ da: 'DANISH',
102
+ de: 'GERMAN',
103
+ 'en-GB': 'ENGLISH_UK',
104
+ 'en-US': 'ENGLISH_US',
105
+ 'es-ES': 'SPANISH',
106
+ fr: 'FRENCH',
107
+ hr: 'CROATIAN',
108
+ it: 'ITALIAN',
109
+ lt: 'LITHUANIAN',
110
+ hu: 'HUNGARIAN',
111
+ nl: 'DUTCH',
112
+ no: 'NORWEGIAN',
113
+ pl: 'POLISH',
114
+ 'pt-BR': 'BRAZILIAN_PORTUGUESE',
115
+ ro: 'ROMANIA_ROMANIAN',
116
+ fi: 'FINNISH',
117
+ 'sv-SE': 'SWEDISH',
118
+ vi: 'VIETNAMESE',
119
+ tr: 'TURKISH',
120
+ cs: 'CZECH',
121
+ el: 'GREEK',
122
+ bg: 'BULGARIAN',
123
+ ru: 'RUSSIAN',
124
+ uk: 'UKRAINIAN',
125
+ hi: 'HINDI',
126
+ th: 'THAI',
127
+ 'zh-CN': 'CHINA_CHINESE',
128
+ ja: 'JAPANESE',
129
+ 'zh-TW': 'TAIWAN_CHINESE',
130
+ ko: 'KOREAN',
131
+ };
37
132
 
38
133
  /**
39
134
  * The types of WebSocket error codes:
@@ -102,6 +197,10 @@ exports.Endpoints = {
102
197
  if (dynamic && hash.startsWith('a_')) format = 'gif';
103
198
  return makeImageUrl(`${root}/guilds/${guildId}/users/${memberId}/avatars/${hash}`, { format, size });
104
199
  },
200
+ GuildMemberBanner: (guildId, memberId, hash, format = 'webp', size, dynamic = false) => {
201
+ if (dynamic && hash.startsWith('a_')) format = 'gif';
202
+ return makeImageUrl(`${root}/guilds/${guildId}/users/${memberId}/banners/${hash}`, { format, size });
203
+ },
105
204
  Banner: (id, hash, format, size, dynamic = false) => {
106
205
  if (dynamic && hash.startsWith('a_')) format = 'gif';
107
206
  return makeImageUrl(`${root}/banners/${id}/${hash}`, { format, size });
@@ -128,11 +227,14 @@ exports.Endpoints = {
128
227
  makeImageUrl(`${root}/role-icons/${roleId}/${hash}`, { size, format }),
129
228
  guildScheduledEventCover: (scheduledEventId, coverHash, format, size) =>
130
229
  makeImageUrl(`${root}/guild-events/${scheduledEventId}/${coverHash}`, { size, format }),
230
+ // Test only
231
+ BadgeIcon: hash => makeImageUrl(`${root}/badge-icons/${hash}`, { format: 'png' }),
131
232
  };
132
233
  },
133
234
  invite: (root, code, eventId) => (eventId ? `${root}/${code}?event=${eventId}` : `${root}/${code}`),
134
235
  scheduledEvent: (root, guildId, eventId) => `${root}/${guildId}/${eventId}`,
135
- botGateway: '/gateway',
236
+ botGateway: '/gateway/bot',
237
+ userGateway: '/gateway',
136
238
  };
137
239
 
138
240
  /**
@@ -196,10 +298,8 @@ exports.Status = {
196
298
  * * REQUEST_SOUNDBOARD_SOUNDS: 31
197
299
  * * SPEED_TEST_CREATE: 32 => Create a voice speed test.
198
300
  * * SPEED_TEST_DELETE: 33 => Delete a voice speed test.
199
- * * REQUEST_LAST_MESSAGES: 34 => Request last messages for a guild's channels.
301
+ * * REQUEST_LAST_MESSAGES: 34 => Request last messages for a guild's channels.
200
302
  * * SEARCH_RECENT_MEMBERS: 35 => ~ Opcode 8 (Member Safety)
201
- * * REQUEST_CHANNEL_STATUSES: 36 => Request Voice Channel status.
202
- * * GUILD_SUBSCRIPTIONS_BULK: 37 => ~ Opcode 14
203
303
  * @typedef {Object<string, number>} Opcodes
204
304
  */
205
305
  exports.Opcodes = {
@@ -238,9 +338,7 @@ exports.Opcodes = {
238
338
  SPEED_TEST_DELETE: 33, // Payload: null
239
339
  REQUEST_LAST_MESSAGES: 34, // Payload: { guild_id: string, channel_ids: string[] }
240
340
  SEARCH_RECENT_MEMBERS: 35, // Payload: { guild_id: string, query: string, continuation_token?: Snowflake }
241
- REQUEST_CHANNEL_STATUSES: 36, // Payload: { guild_id: string } | Response: CHANNEL_STATUSES | { guild_id, channels: { status, id }[] }
242
- GUILD_SUBSCRIPTIONS_BULK: 37, // Payload: { subscriptions: Object<guild_id, { Payload_op14 - guild_id }> } | Response: Opcode 14
243
- // Updated: 23/1/2024
341
+ // Update: 17/7/2023
244
342
  };
245
343
 
246
344
  /**
@@ -250,6 +348,7 @@ exports.Opcodes = {
250
348
  * * API_RESPONSE: apiResponse
251
349
  * * API_REQUEST: apiRequest
252
350
  * * CLIENT_READY: ready
351
+ * * APPLICATION_COMMAND_AUTOCOMPLETE_RESPONSE: applicationCommandAutocompleteResponse
253
352
  * * APPLICATION_COMMAND_CREATE: applicationCommandCreate (deprecated)
254
353
  * * APPLICATION_COMMAND_DELETE: applicationCommandDelete (deprecated)
255
354
  * * APPLICATION_COMMAND_UPDATE: applicationCommandUpdate (deprecated)
@@ -258,7 +357,9 @@ exports.Opcodes = {
258
357
  * * AUTO_MODERATION_RULE_CREATE: autoModerationRuleCreate
259
358
  * * AUTO_MODERATION_RULE_DELETE: autoModerationRuleDelete
260
359
  * * AUTO_MODERATION_RULE_UPDATE: autoModerationRuleUpdate
261
- * * GUILD_AVAILABLE: guildAvailable
360
+ * * CALL_CREATE: callCreate
361
+ * * CALL_DELETE: callDelete
362
+ * * CALL_UPDATE: callUpdate
262
363
  * * GUILD_CREATE: guildCreate
263
364
  * * GUILD_DELETE: guildDelete
264
365
  * * GUILD_UPDATE: guildUpdate
@@ -283,6 +384,9 @@ exports.Opcodes = {
283
384
  * * CHANNEL_DELETE: channelDelete
284
385
  * * CHANNEL_UPDATE: channelUpdate
285
386
  * * CHANNEL_PINS_UPDATE: channelPinsUpdate
387
+ * * CHANNEL_RECIPIENT_REMOVE: channelRecipientRemove
388
+ * * CHANNEL_RECIPIENT_ADD: channelRecipientAdd
389
+ * * MESSAGE_ACK: messageAck
286
390
  * * MESSAGE_CREATE: messageCreate
287
391
  * * MESSAGE_DELETE: messageDelete
288
392
  * * MESSAGE_UPDATE: messageUpdate
@@ -303,6 +407,7 @@ exports.Opcodes = {
303
407
  * * VOICE_STATE_UPDATE: voiceStateUpdate
304
408
  * * TYPING_START: typingStart
305
409
  * * WEBHOOKS_UPDATE: webhookUpdate
410
+ * * INTERACTION_CREATE: interactionCreate
306
411
  * * ERROR: error
307
412
  * * WARN: warn
308
413
  * * DEBUG: debug
@@ -326,16 +431,6 @@ exports.Opcodes = {
326
431
  * * GUILD_SCHEDULED_EVENT_USER_ADD: guildScheduledEventUserAdd
327
432
  * * GUILD_SCHEDULED_EVENT_USER_REMOVE: guildScheduledEventUserRemove
328
433
  * * GUILD_AUDIT_LOG_ENTRY_CREATE: guildAuditLogEntryCreate
329
- * * UNHANDLED_PACKET: unhandledPacket
330
- * * RELATIONSHIP_ADD: relationshipAdd
331
- * * RELATIONSHIP_REMOVE: relationshipRemove
332
- * * RELATIONSHIP_UPDATE: relationshipUpdate
333
- * * CHANNEL_RECIPIENT_ADD: channelRecipientAdd
334
- * * CHANNEL_RECIPIENT_REMOVE: channelRecipientRemove
335
- * * INTERACTION_MODAL_CREATE: interactionModalCreate
336
- * * CALL_CREATE: callCreate
337
- * * CALL_UPDATE: callUpdate
338
- * * CALL_DELETE: callDelete
339
434
  * @typedef {Object<string, string>} Events
340
435
  */
341
436
  exports.Events = {
@@ -344,6 +439,7 @@ exports.Events = {
344
439
  API_RESPONSE: 'apiResponse',
345
440
  API_REQUEST: 'apiRequest',
346
441
  CLIENT_READY: 'ready',
442
+ APPLICATION_COMMAND_AUTOCOMPLETE_RESPONSE: 'applicationCommandAutocompleteResponse',
347
443
  APPLICATION_COMMAND_CREATE: 'applicationCommandCreate',
348
444
  APPLICATION_COMMAND_DELETE: 'applicationCommandDelete',
349
445
  APPLICATION_COMMAND_UPDATE: 'applicationCommandUpdate',
@@ -352,16 +448,20 @@ exports.Events = {
352
448
  AUTO_MODERATION_RULE_CREATE: 'autoModerationRuleCreate',
353
449
  AUTO_MODERATION_RULE_DELETE: 'autoModerationRuleDelete',
354
450
  AUTO_MODERATION_RULE_UPDATE: 'autoModerationRuleUpdate',
355
- GUILD_AVAILABLE: 'guildAvailable',
451
+ CALL_CREATE: 'callCreate',
452
+ CALL_DELETE: 'callDelete',
453
+ CALL_UPDATE: 'callUpdate',
356
454
  GUILD_CREATE: 'guildCreate',
357
455
  GUILD_DELETE: 'guildDelete',
358
456
  GUILD_UPDATE: 'guildUpdate',
457
+ GUILD_APPLICATION_COMMANDS_UPDATE: 'guildApplicationCommandUpdate',
359
458
  GUILD_UNAVAILABLE: 'guildUnavailable',
360
459
  GUILD_MEMBER_ADD: 'guildMemberAdd',
361
460
  GUILD_MEMBER_REMOVE: 'guildMemberRemove',
362
461
  GUILD_MEMBER_UPDATE: 'guildMemberUpdate',
363
462
  GUILD_MEMBER_AVAILABLE: 'guildMemberAvailable',
364
463
  GUILD_MEMBERS_CHUNK: 'guildMembersChunk',
464
+ GUILD_MEMBER_LIST_UPDATE: 'guildMemberListUpdate',
365
465
  GUILD_INTEGRATIONS_UPDATE: 'guildIntegrationsUpdate',
366
466
  GUILD_ROLE_CREATE: 'roleCreate',
367
467
  GUILD_ROLE_DELETE: 'roleDelete',
@@ -377,6 +477,9 @@ exports.Events = {
377
477
  CHANNEL_DELETE: 'channelDelete',
378
478
  CHANNEL_UPDATE: 'channelUpdate',
379
479
  CHANNEL_PINS_UPDATE: 'channelPinsUpdate',
480
+ CHANNEL_RECIPIENT_REMOVE: 'channelRecipientRemove',
481
+ CHANNEL_RECIPIENT_ADD: 'channelRecipientAdd',
482
+ MESSAGE_ACK: 'messageAck',
380
483
  MESSAGE_CREATE: 'messageCreate',
381
484
  MESSAGE_DELETE: 'messageDelete',
382
485
  MESSAGE_UPDATE: 'messageUpdate',
@@ -392,11 +495,17 @@ exports.Events = {
392
495
  THREAD_MEMBER_UPDATE: 'threadMemberUpdate',
393
496
  THREAD_MEMBERS_UPDATE: 'threadMembersUpdate',
394
497
  USER_UPDATE: 'userUpdate',
498
+ USER_SETTINGS_UPDATE: 'userSettingsUpdate',
499
+ USER_GUILD_SETTINGS_UPDATE: 'userGuildSettingsUpdate',
395
500
  PRESENCE_UPDATE: 'presenceUpdate',
396
501
  VOICE_SERVER_UPDATE: 'voiceServerUpdate',
397
502
  VOICE_STATE_UPDATE: 'voiceStateUpdate',
398
503
  TYPING_START: 'typingStart',
399
504
  WEBHOOKS_UPDATE: 'webhookUpdate',
505
+ INTERACTION_CREATE: 'interactionCreate',
506
+ INTERACTION_SUCCESS: 'interactionSuccess',
507
+ INTERACTION_FAILURE: 'interactionFailure',
508
+ INTERACTION_MODAL_CREATE: 'interactionModalCreate',
400
509
  ERROR: 'error',
401
510
  WARN: 'warn',
402
511
  DEBUG: 'debug',
@@ -420,16 +529,18 @@ exports.Events = {
420
529
  GUILD_SCHEDULED_EVENT_USER_ADD: 'guildScheduledEventUserAdd',
421
530
  GUILD_SCHEDULED_EVENT_USER_REMOVE: 'guildScheduledEventUserRemove',
422
531
  GUILD_AUDIT_LOG_ENTRY_CREATE: 'guildAuditLogEntryCreate',
423
- UNHANDLED_PACKET: 'unhandledPacket',
424
532
  RELATIONSHIP_ADD: 'relationshipAdd',
425
- RELATIONSHIP_UPDATE: 'relationshipUpdate',
426
533
  RELATIONSHIP_REMOVE: 'relationshipRemove',
427
- CHANNEL_RECIPIENT_ADD: 'channelRecipientAdd',
428
- CHANNEL_RECIPIENT_REMOVE: 'channelRecipientRemove',
429
- INTERACTION_MODAL_CREATE: 'interactionModalCreate',
430
- CALL_CREATE: 'callCreate',
431
- CALL_UPDATE: 'callUpdate',
432
- CALL_DELETE: 'callDelete',
534
+ RELATIONSHIP_UPDATE: 'relationshipUpdate',
535
+ UNHANDLED_PACKET: 'unhandledPacket',
536
+ CAPTCHA_REQUIRED: 'captchaRequired',
537
+ // ! TODO: Add more events
538
+ SOUNDBOARD_SOUNDS: 'soundboardSounds',
539
+ VOICE_CHANNEL_EFFECT_SEND: 'voiceChannelEffectSend',
540
+ GUILD_SOUNDBOARD_SOUND_CREATE: 'guildSoundboardSoundCreate',
541
+ GUILD_SOUNDBOARD_SOUND_UPDATE: 'guildSoundboardSoundUpdate',
542
+ GUILD_SOUNDBOARD_SOUNDS_UPDATE: 'guildSoundboardSoundsUpdate',
543
+ GUILD_SOUNDBOARD_SOUND_DELETE: 'guildSoundboardSoundDelete',
433
544
  };
434
545
 
435
546
  /**
@@ -469,10 +580,11 @@ exports.PartialTypes = keyMirror(['USER', 'CHANNEL', 'GUILD_MEMBER', 'MESSAGE',
469
580
  * The type of a WebSocket message event, e.g. `MESSAGE_CREATE`. Here are the available events:
470
581
  * * READY
471
582
  * * RESUMED
583
+ * * APPLICATION_COMMAND_AUTOCOMPLETE_RESPONSE
472
584
  * * APPLICATION_COMMAND_CREATE (deprecated)
473
585
  * * APPLICATION_COMMAND_DELETE (deprecated)
474
- * * APPLICATION_COMMAND_PERMISSIONS_UPDATE
475
586
  * * APPLICATION_COMMAND_UPDATE (deprecated)
587
+ * * APPLICATION_COMMAND_PERMISSIONS_UPDATE
476
588
  * * AUTO_MODERATION_ACTION_EXECUTION
477
589
  * * AUTO_MODERATION_RULE_CREATE
478
590
  * * AUTO_MODERATION_RULE_DELETE
@@ -517,6 +629,7 @@ exports.PartialTypes = keyMirror(['USER', 'CHANNEL', 'GUILD_MEMBER', 'MESSAGE',
517
629
  * * VOICE_STATE_UPDATE
518
630
  * * VOICE_SERVER_UPDATE
519
631
  * * WEBHOOKS_UPDATE
632
+ * * INTERACTION_CREATE
520
633
  * * STAGE_INSTANCE_CREATE
521
634
  * * STAGE_INSTANCE_UPDATE
522
635
  * * STAGE_INSTANCE_DELETE
@@ -533,6 +646,7 @@ exports.PartialTypes = keyMirror(['USER', 'CHANNEL', 'GUILD_MEMBER', 'MESSAGE',
533
646
  exports.WSEvents = keyMirror([
534
647
  'READY',
535
648
  'RESUMED',
649
+ 'APPLICATION_COMMAND_AUTOCOMPLETE_RESPONSE',
536
650
  'APPLICATION_COMMAND_CREATE',
537
651
  'APPLICATION_COMMAND_DELETE',
538
652
  'APPLICATION_COMMAND_UPDATE',
@@ -581,6 +695,7 @@ exports.WSEvents = keyMirror([
581
695
  'VOICE_STATE_UPDATE',
582
696
  'VOICE_SERVER_UPDATE',
583
697
  'WEBHOOKS_UPDATE',
698
+ 'INTERACTION_CREATE',
584
699
  'STAGE_INSTANCE_CREATE',
585
700
  'STAGE_INSTANCE_UPDATE',
586
701
  'STAGE_INSTANCE_DELETE',
@@ -608,7 +723,6 @@ exports.WSEvents = keyMirror([
608
723
  * * `guilds.join`: allows the bot to join the user to any guild it is in using Guild#addMember
609
724
  * * `gdm.join`: allows joining the user to a group dm
610
725
  * * `webhook.incoming`: generates a webhook to a channel
611
- * * `role_connections.write`: allows your app to update a user's connection and metadata for the app
612
726
  * @typedef {string} InviteScope
613
727
  * @see {@link https://discord.com/developers/docs/topics/oauth2#shared-resources-oauth2-scopes}
614
728
  */
@@ -625,7 +739,6 @@ exports.InviteScopes = [
625
739
  'guilds.join',
626
740
  'gdm.join',
627
741
  'webhook.incoming',
628
- 'role_connections.write',
629
742
  ];
630
743
 
631
744
  // TODO: change Integration#expireBehavior to this and clean up Integration
@@ -777,7 +890,7 @@ exports.ActivityTypes = createEnum(['PLAYING', 'STREAMING', 'LISTENING', 'WATCHI
777
890
  * * `GUILD_PRIVATE_THREAD` - a guild text channel's private thread channel
778
891
  * * `GUILD_STAGE_VOICE` - a guild stage voice channel
779
892
  * * `GUILD_DIRECTORY` - the channel in a hub containing guilds
780
- * * `GUILD_FORUM` - a channel that can only contain threads
893
+ * * `GUILD_FORUM` - a guild channel that only contains threads
781
894
  * * `UNKNOWN` - a generic channel of unknown type, could be Channel or GuildChannel
782
895
  * @typedef {string} ChannelType
783
896
  * @see {@link https://discord.com/developers/docs/resources/channel#channel-object-channel-types}
@@ -1016,6 +1129,7 @@ exports.VerificationLevels = createEnum(['NONE', 'LOW', 'MEDIUM', 'HIGH', 'VERY_
1016
1129
  * * MAXIMUM_PINS
1017
1130
  * * MAXIMUM_RECIPIENTS
1018
1131
  * * MAXIMUM_ROLES
1132
+ * * MAXIMUM_USERNAMES
1019
1133
  * * MAXIMUM_WEBHOOKS
1020
1134
  * * MAXIMUM_EMOJIS
1021
1135
  * * MAXIMUM_REACTIONS
@@ -1072,6 +1186,7 @@ exports.VerificationLevels = createEnum(['NONE', 'LOW', 'MEDIUM', 'HIGH', 'VERY_
1072
1186
  * * INVALID_API_VERSION
1073
1187
  * * FILE_UPLOADED_EXCEEDS_MAXIMUM_SIZE
1074
1188
  * * INVALID_FILE_UPLOADED
1189
+ * * GIFT_CODE_CLAIMED
1075
1190
  * * CANNOT_SELF_REDEEM_GIFT
1076
1191
  * * INVALID_GUILD
1077
1192
  * * INVALID_MESSAGE_TYPE
@@ -1086,6 +1201,7 @@ exports.VerificationLevels = createEnum(['NONE', 'LOW', 'MEDIUM', 'HIGH', 'VERY_
1086
1201
  * * INSUFFICIENT_BOOSTS
1087
1202
  * * INVALID_JSON
1088
1203
  * * TWO_FACTOR_REQUIRED
1204
+ * * INVALID_TWO_FACTOR_CODE
1089
1205
  * * NO_USERS_WITH_DISCORDTAG_EXIST
1090
1206
  * * REACTION_BLOCKED
1091
1207
  * * RESOURCE_OVERLOADED
@@ -1151,20 +1267,27 @@ exports.APIErrors = {
1151
1267
  UNKNOWN_GUILD_SCHEDULED_EVENT_USER: 10071,
1152
1268
  BOT_PROHIBITED_ENDPOINT: 20001,
1153
1269
  BOT_ONLY_ENDPOINT: 20002,
1270
+ RPC_PROXY_DISALLOWED: 20003,
1154
1271
  CANNOT_SEND_EXPLICIT_CONTENT: 20009,
1272
+ ACCOUNT_SCHEDULED_FOR_DELETION: 20011,
1155
1273
  NOT_AUTHORIZED: 20012,
1274
+ ACCOUNT_DISABLED: 20013,
1156
1275
  SLOWMODE_RATE_LIMIT: 20016,
1157
1276
  ACCOUNT_OWNER_ONLY: 20018,
1158
1277
  ANNOUNCEMENT_EDIT_LIMIT_EXCEEDED: 20022,
1278
+ UNDER_MINIMUM_AGE: 20024,
1279
+ QUARANTINED: 20026,
1159
1280
  CHANNEL_HIT_WRITE_RATELIMIT: 20028,
1160
1281
  SERVER_HIT_WRITE_RATELIMIT: 20029,
1161
1282
  CONTENT_NOT_ALLOWED: 20031,
1162
1283
  GUILD_PREMIUM_LEVEL_TOO_LOW: 20035,
1284
+ VANITY_URL_REQUIRED_FOR_PUBLISHED_GUILDS: 20040,
1163
1285
  MAXIMUM_GUILDS: 30001,
1164
1286
  MAXIMUM_FRIENDS: 30002,
1165
1287
  MAXIMUM_PINS: 30003,
1166
1288
  MAXIMUM_RECIPIENTS: 30004,
1167
1289
  MAXIMUM_ROLES: 30005,
1290
+ MAXIMUN_USERNAMES: 30006,
1168
1291
  MAXIMUM_WEBHOOKS: 30007,
1169
1292
  MAXIMUM_EMOJIS: 30008,
1170
1293
  MAXIMUM_REACTIONS: 30010,
@@ -1173,6 +1296,7 @@ exports.APIErrors = {
1173
1296
  MAXIMUM_INVITES: 30016,
1174
1297
  MAXIMUM_ANIMATED_EMOJIS: 30018,
1175
1298
  MAXIMUM_SERVER_MEMBERS: 30019,
1299
+ NOT_ENOUGH_GUILD_MEMBERS: 30029,
1176
1300
  MAXIMUM_NUMBER_OF_SERVER_CATEGORIES: 30030,
1177
1301
  GUILD_ALREADY_HAS_TEMPLATE: 30031,
1178
1302
  MAXIMUM_THREAD_PARTICIPANTS: 30033,
@@ -1186,11 +1310,16 @@ exports.APIErrors = {
1186
1310
  UNAUTHORIZED: 40001,
1187
1311
  ACCOUNT_VERIFICATION_REQUIRED: 40002,
1188
1312
  DIRECT_MESSAGES_TOO_FAST: 40003,
1313
+ SEND_MESSAGE_TEMPORARILY_DISABLED: 40004,
1189
1314
  REQUEST_ENTITY_TOO_LARGE: 40005,
1190
1315
  FEATURE_TEMPORARILY_DISABLED: 40006,
1191
1316
  USER_BANNED: 40007,
1317
+ CONNECTION_REVOKED: 40012,
1318
+ DELETE_ACCOUNT_TRANSFER_TEAM_OWNERSHIP: 40028,
1192
1319
  TARGET_USER_NOT_CONNECTED_TO_VOICE: 40032,
1193
1320
  ALREADY_CROSSPOSTED: 40033,
1321
+ TAG_REQUIRED: 40067,
1322
+ INVITES_DISABLED: 40069,
1194
1323
  MISSING_ACCESS: 50001,
1195
1324
  INVALID_ACCOUNT_TYPE: 50002,
1196
1325
  CANNOT_EXECUTE_ON_DM: 50003,
@@ -1207,9 +1336,13 @@ exports.APIErrors = {
1207
1336
  INVALID_AUTHENTICATION_TOKEN: 50014,
1208
1337
  NOTE_TOO_LONG: 50015,
1209
1338
  INVALID_BULK_DELETE_QUANTITY: 50016,
1339
+ INVALID_MFA_LEVEL: 50017,
1340
+ INVALID_PASSWORD: 50018,
1210
1341
  CANNOT_PIN_MESSAGE_IN_OTHER_CHANNEL: 50019,
1211
1342
  INVALID_OR_TAKEN_INVITE_CODE: 50020,
1212
1343
  CANNOT_EXECUTE_ON_SYSTEM_MESSAGE: 50021,
1344
+ INVALID_PHONE_NUMBER: 50022,
1345
+ INVALID_CLIENT_ID: 50023,
1213
1346
  CANNOT_EXECUTE_ON_CHANNEL_TYPE: 50024,
1214
1347
  INVALID_OAUTH_TOKEN: 50025,
1215
1348
  MISSING_OAUTH_SCOPE: 50026,
@@ -1222,6 +1355,8 @@ exports.APIErrors = {
1222
1355
  INVALID_API_VERSION: 50041,
1223
1356
  FILE_UPLOADED_EXCEEDS_MAXIMUM_SIZE: 50045,
1224
1357
  INVALID_FILE_UPLOADED: 50046,
1358
+ GIFT_CODE_CLAIMED: 50050,
1359
+ INVALID_GIFT_REDEMPTION_OWNED: 50051,
1225
1360
  CANNOT_SELF_REDEEM_GIFT: 50054,
1226
1361
  INVALID_GUILD: 50055,
1227
1362
  INVALID_MESSAGE_TYPE: 50068,
@@ -1232,9 +1367,15 @@ exports.APIErrors = {
1232
1367
  INVALID_THREAD_NOTIFICATION_SETTINGS: 50084,
1233
1368
  PARAMETER_EARLIER_THAN_CREATION: 50085,
1234
1369
  GUILD_NOT_AVAILABLE_IN_LOCATION: 50095,
1370
+ INVALID_CANNOT_FRIEND_SELF: 50096,
1235
1371
  GUILD_MONETIZATION_REQUIRED: 50097,
1236
1372
  INSUFFICIENT_BOOSTS: 50101,
1373
+ INVALID_USER_SETTINGS_DATA: 50105,
1374
+ INVALID_ACTIVITY_LAUNCH_NO_ACCESS: 50106,
1375
+ INVALID_ACTIVITY_LAUNCH_PREMIUM_TIER: 50107,
1376
+ INVALID_ACTIVITY_LAUNCH_CONCURRENT_ACTIVITIES: 50108,
1237
1377
  INVALID_JSON: 50109,
1378
+ INVALID_FILE_ASSET_SIZE_RESIZE_GIF: 50138,
1238
1379
  CANNOT_MIX_SUBSCRIPTION_AND_NON_SUBSCRIPTION_ROLES_FOR_EMOJI: 50144,
1239
1380
  CANNOT_CONVERT_PREMIUM_EMOJI_TO_NORMAL_EMOJI: 50145,
1240
1381
  VOICE_MESSAGES_DO_NOT_SUPPORT_ADDITIONAL_CONTENT: 50159,
@@ -1242,9 +1383,30 @@ exports.APIErrors = {
1242
1383
  VOICE_MESSAGES_MUST_HAVE_SUPPORTING_METADATA: 50161,
1243
1384
  VOICE_MESSAGES_CANNOT_BE_EDITED: 50162,
1244
1385
  YOU_CANNOT_SEND_VOICE_MESSAGES_IN_THIS_CHANNEL: 50173,
1386
+ TWO_FACTOR_ENABLED: 60001,
1387
+ TWO_FACTOR_DISABLED: 60002,
1245
1388
  TWO_FACTOR_REQUIRED: 60003,
1389
+ TWO_FACTOR_UNVERIFIED: 60004,
1390
+ TWO_FACTOR_INVALID_SECRET: 60005,
1391
+ TWO_FACTOR_INVALID_TICKET: 60006,
1392
+ INVALID_TWO_FACTOR_CODE: 60008,
1393
+ TWO_FACTOR_INVALID_SESSION: 60009,
1394
+ PHONE_NUMBER_UNABLE_TO_SEND: 70003,
1395
+ PHONE_VERIFICATION_REQUIRED: 70007,
1396
+ RELATIONSHIP_INCOMING_DISABLED: 80000,
1397
+ RELATIONSHIP_INCOMING_BLOCKED: 80001,
1398
+ RELATIONSHIP_INVALUD_USER_BOT: 80002,
1399
+ RELATIONSHIP_INVALID_SELF: 80003,
1246
1400
  NO_USERS_WITH_DISCORDTAG_EXIST: 80004,
1401
+ RELATIONSHIP_ALREADY_FRIENDS: 80007,
1247
1402
  REACTION_BLOCKED: 90001,
1403
+ INVALID_GIFT_REDEMPTION_SUBSCRIPTION_MANAGED: 100021,
1404
+ INVALID_GIFT_REDEMPTION_SUBSCRIPTION_INCOMPATIBLE: 100023,
1405
+ INVALID_GIFT_REDEMPTION_INVOICE_OPEN: 100024,
1406
+ BILLING_NON_REFUNDABLE_PAYMENT_SOURCE: 100060,
1407
+ LISTING_ALREADY_JOINED: 120000,
1408
+ LISTING_TOO_MANY_MEMBERS: 120001,
1409
+ LISTING_JOIN_BLOCKED: 120002,
1248
1410
  RESOURCE_OVERLOADED: 130000,
1249
1411
  STAGE_ALREADY_OPEN: 150006,
1250
1412
  CANNOT_REPLY_WITHOUT_READ_MESSAGE_HISTORY_PERMISSION: 160002,
@@ -1259,8 +1421,12 @@ exports.APIErrors = {
1259
1421
  LOTTIE_ANIMATION_MAXIMUM_DIMENSIONS_EXCEEDED: 170005,
1260
1422
  STICKER_FRAME_RATE_IS_TOO_SMALL_OR_TOO_LARGE: 170006,
1261
1423
  STICKER_ANIMATION_DURATION_EXCEEDS_MAXIMUM_OF_5_SECONDS: 170007,
1424
+ POGGERMODE_TEMPORARILY_DISABLED: 170008,
1262
1425
  CANNOT_UPDATE_A_FINISHED_EVENT: 180000,
1263
1426
  FAILED_TO_CREATE_STAGE_NEEDED_FOR_STAGE_EVENT: 180002,
1427
+ AUTOMOD_MESSAGE_BLOCKED: 200000,
1428
+ AUTOMOD_TITLE_BLOCKED: 200001,
1429
+ HARMFUL_LINK_MESSAGE_BLOCKED: 240000,
1264
1430
  };
1265
1431
 
1266
1432
  /**
@@ -1386,7 +1552,7 @@ exports.ApplicationCommandPermissionTypes = createEnum([null, 'ROLE', 'USER']);
1386
1552
  * * BOOLEAN_EQUAL
1387
1553
  * * BOOLEAN_NOT_EQUAL
1388
1554
  * @typedef {string} ApplicationRoleConnectionMetadataType
1389
- * @see{@link https://discord.com/developers/docs/resources/application-role-connection-metadata#application-role-connection-metadata-object-application-role-connection-metadata-type}
1555
+ * @see {@link https://discord.com/developers/docs/resources/application-role-connection-metadata#application-role-connection-metadata-object-application-role-connection-metadata-type}
1390
1556
  */
1391
1557
  exports.ApplicationRoleConnectionMetadataTypes = createEnum([
1392
1558
  null,
@@ -1439,6 +1605,7 @@ exports.AutoModerationActionTypes = createEnum([null, 'BLOCK_MESSAGE', 'SEND_ALE
1439
1605
  */
1440
1606
 
1441
1607
  exports.AutoModerationRuleEventTypes = createEnum([null, 'MESSAGE_SEND']);
1608
+
1442
1609
  /**
1443
1610
  * The type of an {@link Interaction} object:
1444
1611
  * * PING
@@ -1487,29 +1654,37 @@ exports.InteractionResponseTypes = createEnum([
1487
1654
  * The type of a message component
1488
1655
  * * ACTION_ROW
1489
1656
  * * BUTTON
1490
- * * STRING_SELECT
1491
1657
  * * TEXT_INPUT
1658
+ * * STRING_SELECT
1492
1659
  * * USER_SELECT
1493
1660
  * * ROLE_SELECT
1494
1661
  * * MENTIONABLE_SELECT
1495
1662
  * * CHANNEL_SELECT
1663
+ * * SELECT_MENU (deprecated)
1496
1664
  * @typedef {string} MessageComponentType
1497
1665
  * @see {@link https://discord.com/developers/docs/interactions/message-components#component-object-component-types}
1498
1666
  */
1499
- exports.MessageComponentTypes = createEnum([
1500
- null,
1501
- 'ACTION_ROW',
1502
- 'BUTTON',
1503
- 'STRING_SELECT',
1504
- 'TEXT_INPUT',
1505
- 'USER_SELECT',
1506
- 'ROLE_SELECT',
1507
- 'MENTIONABLE_SELECT',
1508
- 'CHANNEL_SELECT',
1509
- ]);
1667
+ exports.MessageComponentTypes = {
1668
+ ...createEnum([
1669
+ null,
1670
+ 'ACTION_ROW',
1671
+ 'BUTTON',
1672
+ 'STRING_SELECT',
1673
+ 'TEXT_INPUT',
1674
+ 'USER_SELECT',
1675
+ 'ROLE_SELECT',
1676
+ 'MENTIONABLE_SELECT',
1677
+ 'CHANNEL_SELECT',
1678
+ ]),
1679
+ /** @deprecated Use `STRING_SELECT` instead */
1680
+ SELECT_MENU: 3,
1681
+ /** @deprecated Use `STRING_SELECT` instead */
1682
+ 3: 'SELECT_MENU',
1683
+ };
1510
1684
 
1511
1685
  /**
1512
1686
  * The types of components that are select menus. The available types are:
1687
+ * * SELECT_MENU (deprecated)
1513
1688
  * * STRING_MENU
1514
1689
  * * USER_SELECT
1515
1690
  * * ROLE_SELECT
@@ -1518,15 +1693,19 @@ exports.MessageComponentTypes = createEnum([
1518
1693
  * @typedef {string} SelectMenuComponentType
1519
1694
  * @see {@link https://discord.com/developers/docs/interactions/message-components#component-object-component-types}
1520
1695
  */
1521
- exports.SelectMenuComponentTypes = createEnum([
1522
- ...new Array(3).fill(null),
1523
- 'STRING_MENU',
1524
- null,
1525
- 'USER_SELECT',
1526
- 'ROLE_SELECT',
1527
- 'MENTIONABLE_SELECT',
1528
- 'CHANNEL_SELECT',
1529
- ]);
1696
+ exports.SelectMenuComponentTypes = {
1697
+ ...createEnum([
1698
+ ...new Array(3).fill(null),
1699
+ 'STRING_MENU',
1700
+ null,
1701
+ 'USER_SELECT',
1702
+ 'ROLE_SELECT',
1703
+ 'MENTIONABLE_SELECT',
1704
+ 'CHANNEL_SELECT',
1705
+ ]),
1706
+ /** @deprecated Use `STRING_SELECT` instead */
1707
+ SELECT_MENU: 3,
1708
+ };
1530
1709
 
1531
1710
  /**
1532
1711
  * The style of a message button
@@ -1586,6 +1765,27 @@ exports.TextInputStyles = createEnum([null, 'SHORT', 'PARAGRAPH']);
1586
1765
  */
1587
1766
  exports.GuildScheduledEventPrivacyLevels = createEnum([null, null, 'GUILD_ONLY']);
1588
1767
 
1768
+ /**
1769
+ * Relationship Enums:
1770
+ * * 0: NONE
1771
+ * * 1: FRIEND
1772
+ * * 2: BLOCKED
1773
+ * * 3: PENDING_INCOMING
1774
+ * * 4: PENDING_OUTGOING
1775
+ * * 5: IMPLICIT
1776
+ * @typedef {string} RelationshipTypes
1777
+ * @see {@link https://luna.gitlab.io/discord-unofficial-docs/relationships.html}
1778
+ */
1779
+
1780
+ exports.RelationshipTypes = createEnum([
1781
+ 'NONE',
1782
+ 'FRIEND',
1783
+ 'BLOCKED',
1784
+ 'PENDING_INCOMING',
1785
+ 'PENDING_OUTGOING',
1786
+ 'IMPLICIT',
1787
+ ]);
1788
+
1589
1789
  /**
1590
1790
  * The premium tier (Server Boost level) of a guild:
1591
1791
  * * NONE
@@ -1619,7 +1819,6 @@ exports.GuildScheduledEventStatuses = createEnum([null, 'SCHEDULED', 'ACTIVE', '
1619
1819
  */
1620
1820
  exports.GuildScheduledEventEntityTypes = createEnum([null, 'STAGE_INSTANCE', 'VOICE', 'EXTERNAL']);
1621
1821
  /* eslint-enable max-len */
1622
-
1623
1822
  /**
1624
1823
  * The camera video quality mode of a {@link VoiceChannel}:
1625
1824
  * * AUTO
@@ -1630,7 +1829,7 @@ exports.GuildScheduledEventEntityTypes = createEnum([null, 'STAGE_INSTANCE', 'VO
1630
1829
  exports.VideoQualityModes = createEnum([null, 'AUTO', 'FULL']);
1631
1830
 
1632
1831
  /**
1633
- * Sort {@link ForumChannel} posts by creation time or activity
1832
+ * Sort {@link ForumChannel} posts by ?
1634
1833
  * * LATEST_ACTIVITY
1635
1834
  * * CREATION_DATE
1636
1835
  * @typedef {string} SortOrderType
@@ -1648,31 +1847,10 @@ exports.SortOrderTypes = createEnum([null, 'LATEST_ACTIVITY', 'CREATION_DATE']);
1648
1847
  */
1649
1848
  exports.ForumLayoutTypes = createEnum(['NOT_SET', 'LIST_VIEW', 'GALLERY_VIEW']);
1650
1849
 
1651
- /**
1652
- * Relationship Enums:
1653
- * * 0: NONE
1654
- * * 1: FRIEND
1655
- * * 2: BLOCKED
1656
- * * 3: PENDING_INCOMING
1657
- * * 4: PENDING_OUTGOING
1658
- * * 5: IMPLICIT
1659
- * @typedef {string} RelationshipTypes
1660
- * @see {@link https://luna.gitlab.io/discord-unofficial-docs/relationships.html}
1661
- */
1662
-
1663
- exports.RelationshipTypes = createEnum([
1664
- 'NONE',
1665
- 'FRIEND',
1666
- 'BLOCKED',
1667
- 'PENDING_INCOMING',
1668
- 'PENDING_OUTGOING',
1669
- 'IMPLICIT',
1670
- ]);
1671
-
1672
1850
  exports._cleanupSymbol = Symbol('djsCleanup');
1673
1851
 
1674
1852
  function keyMirror(arr) {
1675
- let tmp = Object.create(null);
1853
+ const tmp = Object.create(null);
1676
1854
  for (const value of arr) tmp[value] = value;
1677
1855
  return tmp;
1678
1856
  }
@@ -1727,11 +1905,12 @@ function createEnum(keys) {
1727
1905
  * @property {Object<InteractionResponseType, number>} InteractionResponseTypes The type of an interaction response.
1728
1906
  * @property {Object<InteractionType, number>} InteractionTypes The type of an {@link Interaction} object.
1729
1907
  * @property {InviteScope[]} InviteScopes The scopes of an invite.
1730
- * @property {Object<RelationshipTypes, number>} RelationshipTypes Relationship Enums
1908
+ * @property {number} MaxBulkDeletableMessageAge Max bulk deletable message age (Unavailable to selfbots)
1731
1909
  * @property {Object<MembershipState, number>} MembershipStates The value set for a team members membership state.
1732
1910
  * @property {Object<MessageButtonStyle, number>} MessageButtonStyles The style of a message button.
1733
1911
  * @property {Object<MessageComponentType, number>} MessageComponentTypes The type of a message component.
1734
1912
  * @property {MessageType[]} MessageTypes The type of a {@link Message} object.
1913
+ * @property {Object<SelectMenuComponentType, number>} SelectMenuComponentTypes The type of any select menu.
1735
1914
  * @property {Object<MFALevel, number>} MFALevels The required MFA level for a guild.
1736
1915
  * @property {Object<NSFWLevel, number>} NSFWLevels NSFW level of a guild.
1737
1916
  * @property {Opcodes} Opcodes The types of Opcodes sent to the Gateway.
@@ -1742,7 +1921,6 @@ function createEnum(keys) {
1742
1921
  * @property {Object<PrivacyLevel, number>} PrivacyLevels Privacy level of a {@link StageInstance} object.
1743
1922
  * @property {ShardEvents} ShardEvents The type of events emitted by a Shard.
1744
1923
  * @property {Status} Status The available statuses of the client.
1745
- * @property {Object<SelectMenuComponentType, number>} SelectMenuComponentTypes The type of any select menu.
1746
1924
  * @property {Object<StickerFormatType, number>} StickerFormatTypes The value set for a stickers format type.
1747
1925
  * @property {Object<StickerType, number>} StickerTypes The value set for a stickers type.
1748
1926
  * @property {SweeperKey[]} SweeperKeys The name of an item to be swept in Sweepers.