djs-selfbot-v13 3.1.7 → 3.2.2

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 (155) hide show
  1. package/README.md +18 -35
  2. package/package.json +85 -100
  3. package/src/client/BaseClient.js +3 -4
  4. package/src/client/Client.js +249 -530
  5. package/src/client/actions/Action.js +18 -13
  6. package/src/client/actions/ActionsManager.js +7 -1
  7. package/src/client/actions/AutoModerationActionExecution.js +1 -0
  8. package/src/client/actions/AutoModerationRuleCreate.js +1 -0
  9. package/src/client/actions/AutoModerationRuleDelete.js +1 -0
  10. package/src/client/actions/AutoModerationRuleUpdate.js +1 -0
  11. package/src/client/actions/GuildMemberRemove.js +0 -1
  12. package/src/client/actions/GuildMemberUpdate.js +0 -1
  13. package/src/client/actions/MessageCreate.js +0 -4
  14. package/src/client/actions/PresenceUpdate.js +17 -16
  15. package/src/client/websocket/WebSocketManager.js +11 -31
  16. package/src/client/websocket/WebSocketShard.js +39 -38
  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 +16 -13
  21. package/src/client/websocket/handlers/CHANNEL_RECIPIENT_REMOVE.js +11 -11
  22. package/src/client/websocket/handlers/GUILD_CREATE.js +19 -13
  23. package/src/client/websocket/handlers/GUILD_MEMBER_ADD.js +0 -1
  24. package/src/client/websocket/handlers/INTERACTION_MODAL_CREATE.js +1 -0
  25. package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_ADD.js +22 -0
  26. package/src/client/websocket/handlers/MESSAGE_POLL_VOTE_REMOVE.js +12 -0
  27. package/src/client/websocket/handlers/READY.js +90 -140
  28. package/src/client/websocket/handlers/RELATIONSHIP_ADD.js +7 -5
  29. package/src/client/websocket/handlers/RELATIONSHIP_REMOVE.js +7 -5
  30. package/src/client/websocket/handlers/RELATIONSHIP_UPDATE.js +32 -9
  31. package/src/client/websocket/handlers/USER_GUILD_SETTINGS_UPDATE.js +2 -8
  32. package/src/client/websocket/handlers/USER_NOTE_UPDATE.js +1 -1
  33. package/src/client/websocket/handlers/USER_REQUIRED_ACTION_UPDATE.js +78 -0
  34. package/src/client/websocket/handlers/USER_SETTINGS_UPDATE.js +1 -5
  35. package/src/client/websocket/handlers/VOICE_CHANNEL_STATUS_UPDATE.js +12 -0
  36. package/src/client/websocket/handlers/index.js +17 -20
  37. package/src/errors/Messages.js +25 -69
  38. package/src/index.js +13 -43
  39. package/src/managers/ApplicationCommandManager.js +9 -12
  40. package/src/managers/ApplicationCommandPermissionsManager.js +3 -11
  41. package/src/managers/ChannelManager.js +2 -3
  42. package/src/managers/ClientUserSettingManager.js +162 -280
  43. package/src/managers/GuildBanManager.js +47 -1
  44. package/src/managers/GuildChannelManager.js +2 -16
  45. package/src/managers/GuildForumThreadManager.js +24 -30
  46. package/src/managers/GuildManager.js +1 -1
  47. package/src/managers/GuildMemberManager.js +50 -222
  48. package/src/managers/GuildSettingManager.js +22 -15
  49. package/src/managers/MessageManager.js +42 -44
  50. package/src/managers/PermissionOverwriteManager.js +1 -1
  51. package/src/managers/ReactionUserManager.js +5 -5
  52. package/src/managers/RelationshipManager.js +83 -76
  53. package/src/managers/ThreadManager.js +12 -45
  54. package/src/managers/ThreadMemberManager.js +1 -1
  55. package/src/managers/UserManager.js +6 -10
  56. package/src/managers/UserNoteManager.js +53 -0
  57. package/src/rest/APIRequest.js +48 -20
  58. package/src/rest/DiscordAPIError.js +17 -16
  59. package/src/rest/RESTManager.js +1 -21
  60. package/src/rest/RequestHandler.js +35 -21
  61. package/src/structures/ApplicationCommand.js +19 -456
  62. package/src/structures/ApplicationRoleConnectionMetadata.js +3 -0
  63. package/src/structures/AutoModerationRule.js +5 -5
  64. package/src/structures/AutocompleteInteraction.js +1 -0
  65. package/src/structures/BaseGuildTextChannel.js +10 -12
  66. package/src/structures/BaseGuildVoiceChannel.js +16 -18
  67. package/src/structures/{Call.js → CallState.js} +17 -12
  68. package/src/structures/CategoryChannel.js +2 -0
  69. package/src/structures/Channel.js +2 -3
  70. package/src/structures/ClientPresence.js +20 -19
  71. package/src/structures/ClientUser.js +117 -338
  72. package/src/structures/ContextMenuInteraction.js +1 -1
  73. package/src/structures/DMChannel.js +29 -92
  74. package/src/structures/ForumChannel.js +0 -10
  75. package/src/structures/GroupDMChannel.js +387 -0
  76. package/src/structures/Guild.js +135 -271
  77. package/src/structures/GuildAuditLogs.js +0 -5
  78. package/src/structures/GuildChannel.js +16 -2
  79. package/src/structures/GuildMember.js +27 -145
  80. package/src/structures/Interaction.js +1 -62
  81. package/src/structures/Invite.js +35 -52
  82. package/src/structures/Message.js +220 -203
  83. package/src/structures/MessageAttachment.js +11 -0
  84. package/src/structures/MessageButton.js +1 -67
  85. package/src/structures/MessageEmbed.js +1 -1
  86. package/src/structures/MessageMentions.js +3 -2
  87. package/src/structures/MessagePayload.js +6 -46
  88. package/src/structures/MessagePoll.js +238 -0
  89. package/src/structures/MessageReaction.js +1 -1
  90. package/src/structures/MessageSelectMenu.js +1 -252
  91. package/src/structures/Modal.js +70 -188
  92. package/src/structures/Presence.js +787 -129
  93. package/src/structures/Role.js +18 -2
  94. package/src/structures/SelectMenuInteraction.js +2 -151
  95. package/src/structures/Team.js +0 -49
  96. package/src/structures/TextInputComponent.js +0 -70
  97. package/src/structures/ThreadChannel.js +0 -19
  98. package/src/structures/User.js +145 -339
  99. package/src/structures/UserContextMenuInteraction.js +2 -2
  100. package/src/structures/VoiceState.js +74 -39
  101. package/src/structures/WebEmbed.js +38 -52
  102. package/src/structures/Webhook.js +17 -11
  103. package/src/structures/interfaces/Application.js +146 -23
  104. package/src/structures/interfaces/TextBasedChannel.js +409 -256
  105. package/src/util/ApplicationFlags.js +1 -1
  106. package/src/util/AttachmentFlags.js +38 -0
  107. package/src/util/Constants.js +120 -285
  108. package/src/util/Formatters.js +16 -2
  109. package/src/util/InviteFlags.js +29 -0
  110. package/src/util/LimitedCollection.js +1 -1
  111. package/src/util/Options.js +48 -74
  112. package/src/util/Permissions.js +15 -0
  113. package/src/util/PurchasedFlags.js +2 -0
  114. package/src/util/RemoteAuth.js +221 -356
  115. package/src/util/RoleFlags.js +37 -0
  116. package/src/util/Sweepers.js +1 -1
  117. package/src/util/Util.js +158 -32
  118. package/typings/enums.d.ts +24 -73
  119. package/typings/index.d.ts +978 -1288
  120. package/typings/rawDataTypes.d.ts +68 -9
  121. package/src/client/actions/InteractionCreate.js +0 -115
  122. package/src/client/websocket/handlers/APPLICATION_COMMAND_AUTOCOMPLETE_RESPONSE.js +0 -23
  123. package/src/client/websocket/handlers/GUILD_APPLICATION_COMMANDS_UPDATE.js +0 -11
  124. package/src/client/websocket/handlers/GUILD_MEMBER_LIST_UPDATE.js +0 -55
  125. package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUNDS_UPDATE.js +0 -0
  126. package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_CREATE.js +0 -0
  127. package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_DELETE.js +0 -0
  128. package/src/client/websocket/handlers/GUILD_SOUNDBOARD_SOUND_UPDATE.js +0 -0
  129. package/src/client/websocket/handlers/INTERACTION_CREATE.js +0 -16
  130. package/src/client/websocket/handlers/INTERACTION_FAILURE.js +0 -18
  131. package/src/client/websocket/handlers/INTERACTION_SUCCESS.js +0 -30
  132. package/src/client/websocket/handlers/MESSAGE_ACK.js +0 -16
  133. package/src/client/websocket/handlers/SOUNDBOARD_SOUNDS.js +0 -0
  134. package/src/client/websocket/handlers/VOICE_CHANNEL_EFFECT_SEND.js +0 -0
  135. package/src/managers/DeveloperPortalManager.js +0 -104
  136. package/src/managers/GuildApplicationCommandManager.js +0 -28
  137. package/src/managers/GuildFolderManager.js +0 -24
  138. package/src/managers/SessionManager.js +0 -57
  139. package/src/rest/CaptchaSolver.js +0 -132
  140. package/src/structures/ClientApplication.js +0 -204
  141. package/src/structures/DeveloperPortalApplication.js +0 -520
  142. package/src/structures/GuildFolder.js +0 -75
  143. package/src/structures/InteractionResponse.js +0 -114
  144. package/src/structures/PartialGroupDMChannel.js +0 -433
  145. package/src/structures/RichPresence.js +0 -722
  146. package/src/structures/Session.js +0 -81
  147. package/src/util/Voice.js +0 -1456
  148. package/src/util/arRPC/index.js +0 -229
  149. package/src/util/arRPC/process/detectable.json +0 -1
  150. package/src/util/arRPC/process/index.js +0 -102
  151. package/src/util/arRPC/process/native/index.js +0 -5
  152. package/src/util/arRPC/process/native/linux.js +0 -37
  153. package/src/util/arRPC/process/native/win32.js +0 -25
  154. package/src/util/arRPC/transports/ipc.js +0 -281
  155. package/src/util/arRPC/transports/websocket.js +0 -128
@@ -1,229 +0,0 @@
1
- 'use strict';
2
-
3
- const { EventEmitter } = require('node:events');
4
- const ProcessServer = require('./process/index.js');
5
- const IPCServer = require('./transports/ipc.js');
6
- const WSServer = require('./transports/websocket.js');
7
- const { RichPresence } = require('../../structures/RichPresence.js');
8
- const { NitroType } = require('../Constants.js');
9
-
10
- // eslint-disable-next-line no-useless-escape
11
- const checkUrl = url => /^(?:http(s)?:\/\/)?[\w.-]+(?:\.[\w\.-]+)+[\w\-\._~:/?#[\]@!\$&'\(\)\*\+,;=.]+$/.test(url);
12
-
13
- let socketId = 0;
14
- module.exports = class RPCServer extends EventEmitter {
15
- constructor(client, debug = false) {
16
- super();
17
- Object.defineProperty(this, 'client', { value: client });
18
- return (async () => {
19
- this.debug = debug;
20
- this.onConnection = this.onConnection.bind(this);
21
- this.onMessage = this.onMessage.bind(this);
22
- this.onClose = this.onClose.bind(this);
23
-
24
- const handlers = {
25
- connection: this.onConnection,
26
- message: this.onMessage,
27
- close: this.onClose,
28
- };
29
-
30
- this.ipc = await new IPCServer(handlers, this.debug);
31
- this.ws = await new WSServer(handlers, this.debug);
32
- this.process = await new ProcessServer(handlers, this.debug);
33
-
34
- return this;
35
- })();
36
- }
37
-
38
- onConnection(socket) {
39
- socket.send({
40
- cmd: 'DISPATCH',
41
- evt: 'READY',
42
-
43
- data: {
44
- v: 1,
45
- // Needed otherwise some stuff errors out parsing json strictly
46
- user: {
47
- // Mock user data using arRPC app/bot
48
- id: this.client?.user?.id ?? '1045800378228281345',
49
- username: this.client?.user?.username ?? 'arRPC',
50
- discriminator: this.client?.user?.discriminator ?? '0000',
51
- avatar: this.client?.user?.avatar,
52
- flags: this.client?.user?.flags?.bitfield ?? 0,
53
- premium_type: this.client?.user?.nitroType ? NitroType[this.client?.user?.nitroType] : 0,
54
- },
55
- config: {
56
- api_endpoint: '//discord.com/api',
57
- cdn_host: 'cdn.discordapp.com',
58
- environment: 'production',
59
- },
60
- },
61
- });
62
-
63
- socket.socketId = socketId++;
64
-
65
- this.emit('connection', socket);
66
- }
67
-
68
- onClose(socket) {
69
- this.emit('activity', {
70
- activity: null,
71
- pid: socket.lastPid,
72
- socketId: socket.socketId.toString(),
73
- });
74
-
75
- this.emit('close', socket);
76
- }
77
-
78
- async onMessage(socket, { cmd, args, nonce }) {
79
- this.emit('message', { socket, cmd, args, nonce });
80
-
81
- switch (cmd) {
82
- case 'SET_ACTIVITY':
83
- if (!socket.clientInfo || !socket.clientAssets) {
84
- // https://discord.com/api/v9/oauth2/applications/:id/rpc
85
- socket.clientInfo = await this.client.api.oauth2.applications(socket.clientId).rpc.get();
86
- socket.clientAssets = await this.client.api.oauth2.applications(socket.clientId).assets.get();
87
- }
88
- // eslint-disable-next-line no-case-declarations
89
- const { activity, pid } = args; // Translate given parameters into what discord dispatch expects
90
-
91
- if (!activity) {
92
- return this.emit('activity', {
93
- activity: null,
94
- pid,
95
- socketId: socket.socketId.toString(),
96
- });
97
- }
98
- // eslint-disable-next-line no-case-declarations
99
- const { buttons, timestamps, instance, assets } = activity;
100
-
101
- socket.lastPid = pid ?? socket.lastPid;
102
-
103
- // eslint-disable-next-line no-case-declarations
104
- const metadata = {};
105
- // eslint-disable-next-line no-case-declarations
106
- const extra = {};
107
- if (buttons) {
108
- // Map buttons into expected metadata
109
- metadata.button_urls = buttons.map(x => x.url);
110
- extra.buttons = buttons.map(x => x.label);
111
- }
112
-
113
- if (assets?.large_image) {
114
- if (checkUrl(assets.large_image)) {
115
- assets.large_image = assets.large_image
116
- .replace('https://cdn.discordapp.com/', 'mp:')
117
- .replace('http://cdn.discordapp.com/', 'mp:')
118
- .replace('https://media.discordapp.net/', 'mp:')
119
- .replace('http://media.discordapp.net/', 'mp:');
120
- if (!assets.large_image.startsWith('mp:')) {
121
- // Fetch
122
- const data = await RichPresence.getExternal(this.client, socket.clientId, assets.large_image);
123
- assets.large_image = data[0].external_asset_path;
124
- }
125
- }
126
- if (/^[0-9]{17,19}$/.test(assets.large_image)) {
127
- // ID Assets
128
- }
129
- if (
130
- assets.large_image.startsWith('mp:') ||
131
- assets.large_image.startsWith('youtube:') ||
132
- assets.large_image.startsWith('spotify:')
133
- ) {
134
- // Image
135
- }
136
- if (assets.large_image.startsWith('external/')) {
137
- assets.large_image = `mp:${assets.large_image}`;
138
- } else {
139
- const l = socket.clientAssets.find(o => o.name == assets.large_image);
140
- if (l) assets.large_image = l.id;
141
- }
142
- }
143
-
144
- if (assets?.small_image) {
145
- if (checkUrl(assets.small_image)) {
146
- assets.small_image = assets.small_image
147
- .replace('https://cdn.discordapp.com/', 'mp:')
148
- .replace('http://cdn.discordapp.com/', 'mp:')
149
- .replace('https://media.discordapp.net/', 'mp:')
150
- .replace('http://media.discordapp.net/', 'mp:');
151
- if (!assets.small_image.startsWith('mp:')) {
152
- // Fetch
153
- const data = await RichPresence.getExternal(this.client, socket.clientId, assets.small_image);
154
- assets.small_image = data[0].external_asset_path;
155
- }
156
- }
157
- if (/^[0-9]{17,19}$/.test(assets.small_image)) {
158
- // ID Assets
159
- }
160
- if (
161
- assets.small_image.startsWith('mp:') ||
162
- assets.small_image.startsWith('youtube:') ||
163
- assets.small_image.startsWith('spotify:')
164
- ) {
165
- // Image
166
- }
167
- if (assets.small_image.startsWith('external/')) {
168
- assets.small_image = `mp:${assets.small_image}`;
169
- } else {
170
- const l = socket.clientAssets.find(o => o.name == assets.small_image);
171
- if (l) assets.small_image = l.id;
172
- }
173
- }
174
-
175
- if (timestamps) {
176
- for (const x in timestamps) {
177
- // Translate s -> ms timestamps
178
- if (Date.now().toString().length - timestamps[x].toString().length > 2) {
179
- timestamps[x] = Math.floor(1000 * timestamps[x]);
180
- }
181
- }
182
- }
183
-
184
- this.emit('activity', {
185
- activity: {
186
- application_id: socket.clientId,
187
- type: 0,
188
- name: socket.clientInfo.name,
189
- metadata,
190
- assets,
191
- flags: instance ? 1 << 0 : 0,
192
- ...activity,
193
- ...extra,
194
- },
195
- pid,
196
- socketId: socket.socketId.toString(),
197
- });
198
-
199
- socket.send?.({
200
- cmd,
201
- data: null,
202
- evt: null,
203
- nonce,
204
- });
205
-
206
- break;
207
-
208
- case 'GUILD_TEMPLATE_BROWSER':
209
- case 'INVITE_BROWSER':
210
- // eslint-disable-next-line no-case-declarations
211
- const { code } = args;
212
- socket.send({
213
- cmd,
214
- data: {
215
- code,
216
- },
217
- nonce,
218
- });
219
-
220
- this.emit(cmd === 'INVITE_BROWSER' ? 'invite' : 'guild-template', code);
221
- break;
222
-
223
- case 'DEEP_LINK':
224
- this.emit('link', args.params);
225
- break;
226
- }
227
- return 0;
228
- }
229
- };