disgroove 2.2.7-dev.fca4921 → 3.0.0-dev.2a75a93

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 (98) hide show
  1. package/LICENSE +9 -9
  2. package/README.md +48 -48
  3. package/dist/lib/Client.d.ts +332 -301
  4. package/dist/lib/Client.js +575 -475
  5. package/dist/lib/constants.d.ts +36 -24
  6. package/dist/lib/constants.js +40 -27
  7. package/dist/lib/gateway/Dispatcher.d.ts +104 -0
  8. package/dist/lib/gateway/Dispatcher.js +471 -0
  9. package/dist/lib/gateway/Shard.d.ts +12 -21
  10. package/dist/lib/gateway/Shard.js +121 -570
  11. package/dist/lib/gateway/Transmitter.d.ts +22 -0
  12. package/dist/lib/gateway/Transmitter.js +93 -0
  13. package/dist/lib/gateway/WebSocketManager.d.ts +22 -0
  14. package/dist/lib/gateway/WebSocketManager.js +93 -0
  15. package/dist/lib/index.d.ts +5 -1
  16. package/dist/lib/index.js +5 -1
  17. package/dist/lib/rest/Endpoints.d.ts +95 -91
  18. package/dist/lib/rest/Endpoints.js +111 -102
  19. package/dist/lib/rest/RequestManager.d.ts +1 -3
  20. package/dist/lib/rest/RequestManager.js +17 -7
  21. package/dist/lib/rest/index.js +17 -7
  22. package/dist/lib/transformers/ApplicationCommands.js +4 -4
  23. package/dist/lib/transformers/Applications.d.ts +2 -0
  24. package/dist/lib/transformers/Applications.js +110 -4
  25. package/dist/lib/transformers/AuditLogs.js +10 -10
  26. package/dist/lib/transformers/AutoModeration.js +6 -6
  27. package/dist/lib/transformers/Channels.js +16 -16
  28. package/dist/lib/transformers/Components.d.ts +15 -3
  29. package/dist/lib/transformers/Components.js +309 -156
  30. package/dist/lib/transformers/Entitlements.d.ts +2 -2
  31. package/dist/lib/transformers/Entitlements.js +16 -16
  32. package/dist/lib/transformers/GuildScheduledEvents.js +8 -8
  33. package/dist/lib/transformers/GuildTemplates.js +4 -4
  34. package/dist/lib/transformers/Guilds.js +28 -28
  35. package/dist/lib/transformers/Interactions.js +330 -55
  36. package/dist/lib/transformers/Lobbies.d.ts +7 -0
  37. package/dist/lib/transformers/Lobbies.js +38 -0
  38. package/dist/lib/transformers/Messages.d.ts +4 -3
  39. package/dist/lib/transformers/Messages.js +38 -52
  40. package/dist/lib/transformers/Polls.js +2 -2
  41. package/dist/lib/transformers/Presences.d.ts +3 -3
  42. package/dist/lib/transformers/Presences.js +6 -6
  43. package/dist/lib/transformers/Roles.js +8 -8
  44. package/dist/lib/transformers/SKUs.js +2 -2
  45. package/dist/lib/transformers/Soundboards.js +6 -6
  46. package/dist/lib/transformers/StageInstances.js +6 -6
  47. package/dist/lib/transformers/Stickers.js +3 -3
  48. package/dist/lib/transformers/Subscriptions.js +8 -8
  49. package/dist/lib/transformers/Teams.js +4 -4
  50. package/dist/lib/transformers/Users.js +6 -6
  51. package/dist/lib/transformers/Voice.js +8 -8
  52. package/dist/lib/transformers/Webhooks.js +6 -6
  53. package/dist/lib/transformers/index.d.ts +2 -1
  54. package/dist/lib/transformers/index.js +2 -1
  55. package/dist/lib/types/application-command.d.ts +9 -4
  56. package/dist/lib/types/application-role-connection-metadata.d.ts +1 -0
  57. package/dist/lib/types/application.d.ts +12 -7
  58. package/dist/lib/types/audit-log.d.ts +9 -5
  59. package/dist/lib/types/auto-moderation.d.ts +7 -3
  60. package/dist/lib/types/channel.d.ts +17 -23
  61. package/dist/lib/types/common.d.ts +2 -0
  62. package/dist/lib/types/components.d.ts +510 -0
  63. package/dist/lib/types/emoji.d.ts +1 -0
  64. package/dist/lib/types/entitlements.d.ts +5 -4
  65. package/dist/lib/types/gateway-events.d.ts +406 -207
  66. package/dist/lib/types/guild-scheduled-event.d.ts +10 -5
  67. package/dist/lib/types/guild-template.d.ts +3 -2
  68. package/dist/lib/types/guild.d.ts +40 -22
  69. package/dist/lib/types/interaction.d.ts +35 -18
  70. package/dist/lib/types/invite.d.ts +5 -2
  71. package/dist/lib/types/lobby.d.ts +31 -0
  72. package/dist/lib/types/lobby.js +2 -0
  73. package/dist/lib/types/message.d.ts +32 -20
  74. package/dist/lib/types/poll.d.ts +7 -1
  75. package/dist/lib/types/role.d.ts +8 -5
  76. package/dist/lib/types/sku.d.ts +2 -1
  77. package/dist/lib/types/soundboard.d.ts +4 -3
  78. package/dist/lib/types/stage-instance.d.ts +4 -3
  79. package/dist/lib/types/sticker.d.ts +8 -5
  80. package/dist/lib/types/subscription.d.ts +6 -5
  81. package/dist/lib/types/team.d.ts +4 -2
  82. package/dist/lib/types/user.d.ts +10 -3
  83. package/dist/lib/types/voice.d.ts +6 -4
  84. package/dist/lib/types/webhook.d.ts +4 -3
  85. package/dist/lib/utils/CDN.d.ts +22 -22
  86. package/dist/lib/utils/CDN.js +22 -22
  87. package/dist/lib/utils/errors.d.ts +3 -1
  88. package/dist/lib/utils/errors.js +4 -0
  89. package/dist/lib/utils/formatters.d.ts +7 -7
  90. package/dist/lib/utils/formatters.js +28 -29
  91. package/dist/lib/utils/index.d.ts +1 -0
  92. package/dist/lib/utils/index.js +18 -7
  93. package/dist/lib/utils/permissions.d.ts +2 -0
  94. package/dist/lib/utils/permissions.js +7 -0
  95. package/dist/package.json +4 -4
  96. package/package.json +5 -5
  97. package/dist/lib/types/message-components.d.ts +0 -234
  98. /package/dist/lib/types/{message-components.js → components.js} +0 -0
@@ -0,0 +1,471 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Handlers = exports.Dispatcher = void 0;
4
+ const constants_1 = require("../constants");
5
+ const transformers_1 = require("../transformers");
6
+ class Dispatcher {
7
+ shard;
8
+ constructor(shard) {
9
+ this.shard = shard;
10
+ }
11
+ dispatch(event, data) {
12
+ const handler = exports.Handlers[event];
13
+ if (handler)
14
+ handler(this.shard, data);
15
+ }
16
+ }
17
+ exports.Dispatcher = Dispatcher;
18
+ exports.Handlers = {
19
+ [constants_1.GatewayEvents.Ready]: (shard, data) => {
20
+ shard.sessionId = data.session_id;
21
+ shard.resumeGatewayURL = `${data.resume_gateway_url}?v=10&encoding=json`;
22
+ shard.client.user = transformers_1.Users.userFromRaw(data.user);
23
+ shard.client.application = data.application;
24
+ shard.client.emit("ready", shard.id);
25
+ },
26
+ [constants_1.GatewayEvents.Resumed]: (shard) => {
27
+ shard.client.emit("resumed", shard.id);
28
+ },
29
+ [constants_1.GatewayEvents.RateLimited]: (shard, data) => {
30
+ if (data.opcode === constants_1.GatewayOPCodes.RequestGuildMembers) {
31
+ shard.client.emit("rateLimited", {
32
+ opcode: constants_1.GatewayOPCodes.RequestGuildMembers,
33
+ retryAfter: data.retry_after,
34
+ meta: {
35
+ guildId: data.meta.guild_id,
36
+ nonce: data.meta.nonce,
37
+ },
38
+ }, shard.id);
39
+ }
40
+ },
41
+ [constants_1.GatewayEvents.ApplicationCommandPermissionsUpdate]: (shard, data) => {
42
+ shard.client.emit("applicationCommandPermissionsUpdate", transformers_1.Guilds.guildApplicationCommandPermissionsFromRaw(data));
43
+ },
44
+ [constants_1.GatewayEvents.AutoModerationRuleCreate]: (shard, data) => shard.client.emit("autoModerationRuleCreate", transformers_1.AutoModeration.autoModerationRuleFromRaw(data)),
45
+ [constants_1.GatewayEvents.AutoModerationRuleUpdate]: (shard, data) => shard.client.emit("autoModerationRuleUpdate", transformers_1.AutoModeration.autoModerationRuleFromRaw(data)),
46
+ [constants_1.GatewayEvents.AutoModerationRuleDelete]: (shard, data) => shard.client.emit("autoModerationRuleDelete", transformers_1.AutoModeration.autoModerationRuleFromRaw(data)),
47
+ [constants_1.GatewayEvents.AutoModerationActionExecution]: (shard, data) => shard.client.emit("autoModerationActionExecution", {
48
+ guildId: data.guild_id,
49
+ action: {
50
+ type: data.action.type,
51
+ metadata: {
52
+ channelId: data.action.metadata.channel_id,
53
+ durationSeconds: data.action.metadata.duration_seconds,
54
+ customMessage: data.action.metadata.custom_message,
55
+ },
56
+ },
57
+ ruleId: data.rule_id,
58
+ ruleTriggerType: data.rule_trigger_type,
59
+ userId: data.user_id,
60
+ channelId: data.channel_id,
61
+ messageId: data.message_id,
62
+ alertSystemMessageId: data.alert_system_message_id,
63
+ content: data.content,
64
+ matchedKeyword: data.matched_keyword,
65
+ matchedContent: data.matched_content,
66
+ }),
67
+ [constants_1.GatewayEvents.ChannelCreate]: (shard, data) => shard.client.emit("channelCreate", transformers_1.Channels.channelFromRaw(data)),
68
+ [constants_1.GatewayEvents.ChannelUpdate]: (shard, data) => shard.client.emit("channelUpdate", transformers_1.Channels.channelFromRaw(data)),
69
+ [constants_1.GatewayEvents.ChannelDelete]: (shard, data) => shard.client.emit("channelDelete", transformers_1.Channels.channelFromRaw(data)),
70
+ [constants_1.GatewayEvents.ChannelPinsUpdate]: (shard, data) => shard.client.emit("channelPinsUpdate", {
71
+ guildId: data.guild_id,
72
+ channelId: data.channel_id,
73
+ lastPinTimestamp: data.last_pin_timestamp,
74
+ }),
75
+ [constants_1.GatewayEvents.ThreadCreate]: (shard, data) => shard.client.emit("threadCreate", transformers_1.Channels.channelFromRaw(data)),
76
+ [constants_1.GatewayEvents.ThreadUpdate]: (shard, data) => shard.client.emit("threadUpdate", transformers_1.Channels.channelFromRaw(data)),
77
+ [constants_1.GatewayEvents.ThreadDelete]: (shard, data) => shard.client.emit("threadDelete", transformers_1.Channels.channelFromRaw(data)),
78
+ [constants_1.GatewayEvents.ThreadListSync]: (shard, data) => shard.client.emit("threadListSync", {
79
+ guildId: data.guild_id,
80
+ channelIds: data.channel_ids,
81
+ threads: data.threads.map((thread) => transformers_1.Channels.channelFromRaw(thread)),
82
+ members: data.members.map((threadMember) => transformers_1.Channels.threadMemberFromRaw(threadMember)),
83
+ }),
84
+ [constants_1.GatewayEvents.ThreadMemberUpdate]: (shard, data) => {
85
+ shard.client.emit("threadMemberUpdate", {
86
+ id: data.id,
87
+ userId: data.user_id,
88
+ joinTimestamp: data.join_timestamp,
89
+ flags: data.flags,
90
+ member: data.member !== undefined
91
+ ? transformers_1.Guilds.guildMemberFromRaw(data.member)
92
+ : undefined,
93
+ guildId: data.guild_id,
94
+ });
95
+ },
96
+ [constants_1.GatewayEvents.ThreadMembersUpdate]: (shard, data) => {
97
+ shard.client.emit("threadMembersUpdate", {
98
+ id: data.id,
99
+ guildId: data.guild_id,
100
+ memberCount: data.member_count,
101
+ addedMembers: data.added_members?.map((threadMember) => transformers_1.Channels.threadMemberFromRaw(threadMember)),
102
+ removedMemberIds: data.removed_member_ids,
103
+ });
104
+ },
105
+ [constants_1.GatewayEvents.EntitlementCreate]: (shard, data) => {
106
+ shard.client.emit("entitlementCreate", transformers_1.Entitlements.entitlementFromRaw(data));
107
+ },
108
+ [constants_1.GatewayEvents.EntitlementUpdate]: (shard, data) => {
109
+ shard.client.emit("entitlementUpdate", transformers_1.Entitlements.entitlementFromRaw(data));
110
+ },
111
+ [constants_1.GatewayEvents.EntitlementDelete]: (shard, data) => {
112
+ shard.client.emit("entitlementDelete", transformers_1.Entitlements.entitlementFromRaw(data));
113
+ },
114
+ [constants_1.GatewayEvents.GuildCreate]: (shard, data) => {
115
+ shard.client.guildShardMap.set(data.id, shard.id);
116
+ if (data.unavailable) {
117
+ const unavailableGuild = data;
118
+ shard.client.emit("guildCreate", unavailableGuild);
119
+ }
120
+ else {
121
+ const guild = data;
122
+ shard.client.emit("guildCreate", {
123
+ ...transformers_1.Guilds.guildFromRaw(guild),
124
+ joinedAt: guild.joined_at,
125
+ large: guild.large,
126
+ unavailable: guild.unavailable,
127
+ memberCount: guild.member_count,
128
+ voiceStates: guild.voice_states?.map((voiceState) => transformers_1.Voice.voiceStateFromRaw(voiceState)),
129
+ members: guild.members?.map((member) => transformers_1.Guilds.guildMemberFromRaw(member)),
130
+ channels: guild.channels?.map((channel) => transformers_1.Channels.channelFromRaw(channel)),
131
+ threads: guild.threads?.map((thread) => transformers_1.Channels.channelFromRaw(thread)),
132
+ presences: guild.presences?.map((presence) => transformers_1.Presences.presenceFromRaw(presence)),
133
+ stageInstances: guild.stage_instances?.map((stageInstance) => transformers_1.StageInstances.stageInstanceFromRaw(stageInstance)),
134
+ guildScheduledEvents: guild.guild_scheduled_events?.map((guildScheduledEvent) => transformers_1.GuildScheduledEvents.guildScheduledEventFromRaw(guildScheduledEvent)),
135
+ soundboardSounds: guild.soundboard_sounds?.map((soundboardSound) => transformers_1.Soundboards.soundboardSoundFromRaw(soundboardSound)),
136
+ });
137
+ shard.client.guilds.set(data.id, transformers_1.Guilds.guildFromRaw(data));
138
+ }
139
+ },
140
+ [constants_1.GatewayEvents.GuildUpdate]: (shard, data) => {
141
+ shard.client.guilds.set(data.id, transformers_1.Guilds.guildFromRaw(data));
142
+ shard.client.emit("guildUpdate", transformers_1.Guilds.guildFromRaw(data));
143
+ },
144
+ [constants_1.GatewayEvents.GuildDelete]: (shard, data) => {
145
+ shard.client.guildShardMap.delete(data.id);
146
+ shard.client.guilds.delete(data.id);
147
+ shard.client.emit("guildDelete", data);
148
+ },
149
+ [constants_1.GatewayEvents.GuildAuditLogEntryCreate]: (shard, data) => {
150
+ shard.client.emit("guildAuditLogEntryCreate", {
151
+ ...transformers_1.AuditLogs.auditLogEntryFromRaw(data),
152
+ guildId: data.guild_id,
153
+ });
154
+ },
155
+ [constants_1.GatewayEvents.GuildBanAdd]: (shard, data) => {
156
+ shard.client.emit("guildBanAdd", {
157
+ guildId: data.guild_id,
158
+ user: transformers_1.Users.userFromRaw(data.user),
159
+ });
160
+ },
161
+ [constants_1.GatewayEvents.GuildBanRemove]: (shard, data) => {
162
+ shard.client.emit("guildBanRemove", {
163
+ guildId: data.guild_id,
164
+ user: transformers_1.Users.userFromRaw(data.user),
165
+ });
166
+ },
167
+ [constants_1.GatewayEvents.GuildEmojisUpdate]: (shard, data) => {
168
+ shard.client.emit("guildEmojisUpdate", data.emojis.map((emoji) => transformers_1.Emojis.emojiFromRaw(emoji)), data.guild_id);
169
+ },
170
+ [constants_1.GatewayEvents.GuildStickersUpdate]: (shard, data) => {
171
+ shard.client.emit("guildStickersUpdate", data.stickers.map((sticker) => transformers_1.Stickers.stickerFromRaw(sticker)), data.guild_id);
172
+ },
173
+ [constants_1.GatewayEvents.GuildIntegrationsUpdate]: (shard, data) => {
174
+ shard.client.emit("guildIntegrationsUpdate", data.guild_id);
175
+ },
176
+ [constants_1.GatewayEvents.GuildMemberAdd]: (shard, data) => {
177
+ shard.client.emit("guildMemberAdd", {
178
+ ...transformers_1.Guilds.guildMemberFromRaw(data),
179
+ guildId: data.guild_id,
180
+ });
181
+ },
182
+ [constants_1.GatewayEvents.GuildMemberRemove]: (shard, data) => {
183
+ shard.client.emit("guildMemberRemove", {
184
+ guildId: data.guild_id,
185
+ user: transformers_1.Users.userFromRaw(data.user),
186
+ });
187
+ },
188
+ [constants_1.GatewayEvents.GuildMemberUpdate]: (shard, data) => {
189
+ shard.client.emit("guildMemberUpdate", {
190
+ guildId: data.guild_id,
191
+ roles: data.roles,
192
+ user: transformers_1.Users.userFromRaw(data.user),
193
+ nick: data.nick,
194
+ avatar: data.avatar,
195
+ banner: data.banner,
196
+ joinedAt: data.joined_at,
197
+ premiumSince: data.premium_since,
198
+ deaf: data.deaf,
199
+ mute: data.mute,
200
+ pending: data.pending,
201
+ communicationDisabledUntil: data.communication_disabled_until,
202
+ flags: data.flags,
203
+ avatarDecorationData: data.avatar_decoration_data !== undefined
204
+ ? data.avatar_decoration_data !== null
205
+ ? {
206
+ asset: data.avatar_decoration_data.asset,
207
+ skuId: data.avatar_decoration_data.sku_id,
208
+ }
209
+ : null
210
+ : undefined,
211
+ });
212
+ },
213
+ [constants_1.GatewayEvents.GuildMembersChunk]: (shard, data) => {
214
+ shard.client.emit("guildMembersChunk", {
215
+ guildId: data.guild_id,
216
+ members: data.members.map((guildMember) => transformers_1.Guilds.guildMemberFromRaw(guildMember)),
217
+ chunkIndex: data.chunk_index,
218
+ chunkCount: data.chunk_count,
219
+ notFound: data.not_found,
220
+ presences: data.presences?.map((presence) => transformers_1.Presences.presenceFromRaw(presence)),
221
+ nonce: data.nonce,
222
+ });
223
+ },
224
+ [constants_1.GatewayEvents.GuildRoleCreate]: (shard, data) => {
225
+ shard.client.emit("guildRoleCreate", transformers_1.Roles.roleFromRaw(data.role), data.guild_id);
226
+ },
227
+ [constants_1.GatewayEvents.GuildRoleUpdate]: (shard, data) => {
228
+ shard.client.emit("guildRoleUpdate", transformers_1.Roles.roleFromRaw(data.role), data.guild_id);
229
+ },
230
+ [constants_1.GatewayEvents.GuildRoleDelete]: (shard, data) => {
231
+ shard.client.emit("guildRoleDelete", data.role_id, data.guild_id);
232
+ },
233
+ [constants_1.GatewayEvents.GuildScheduledEventCreate]: (shard, data) => {
234
+ shard.client.emit("guildScheduledEventCreate", transformers_1.GuildScheduledEvents.guildScheduledEventFromRaw(data));
235
+ },
236
+ [constants_1.GatewayEvents.GuildScheduledEventUpdate]: (shard, data) => {
237
+ shard.client.emit("guildScheduledEventUpdate", transformers_1.GuildScheduledEvents.guildScheduledEventFromRaw(data));
238
+ },
239
+ [constants_1.GatewayEvents.GuildScheduledEventDelete]: (shard, data) => {
240
+ shard.client.emit("guildScheduledEventDelete", transformers_1.GuildScheduledEvents.guildScheduledEventFromRaw(data));
241
+ },
242
+ [constants_1.GatewayEvents.GuildScheduledEventUserAdd]: (shard, data) => {
243
+ shard.client.emit("guildScheduledEventUserAdd", data.user_id, data.guild_scheduled_event_id, data.guild_id);
244
+ },
245
+ [constants_1.GatewayEvents.GuildScheduledEventUserRemove]: (shard, data) => {
246
+ shard.client.emit("guildScheduledEventUserRemove", data.user_id, data.guild_scheduled_event_id, data.guild_id);
247
+ },
248
+ [constants_1.GatewayEvents.GuildSoundboardSoundCreate]: (shard, data) => {
249
+ shard.client.emit("guildSoundboardSoundCreate", transformers_1.Soundboards.soundboardSoundFromRaw(data));
250
+ },
251
+ [constants_1.GatewayEvents.GuildSoundboardSoundUpdate]: (shard, data) => {
252
+ shard.client.emit("guildSoundboardSoundUpdate", transformers_1.Soundboards.soundboardSoundFromRaw(data));
253
+ },
254
+ [constants_1.GatewayEvents.GuildSoundboardSoundDelete]: (shard, data) => {
255
+ shard.client.emit("guildSoundboardSoundDelete", {
256
+ soundId: data.sound_id,
257
+ guildId: data.guild_id,
258
+ });
259
+ },
260
+ [constants_1.GatewayEvents.GuildSoundboardSoundsUpdate]: (shard, data) => {
261
+ shard.client.emit("guildSoundboardSoundsUpdate", data.soundboard_sounds.map((sound) => transformers_1.Soundboards.soundboardSoundFromRaw(sound)), data.guild_id);
262
+ },
263
+ [constants_1.GatewayEvents.SoundboardSounds]: (shard, data) => {
264
+ shard.client.emit("soundboardSounds", data.soundboard_sounds.map((sound) => transformers_1.Soundboards.soundboardSoundFromRaw(sound)), data.guild_id);
265
+ },
266
+ [constants_1.GatewayEvents.IntegrationCreate]: (shard, data) => {
267
+ shard.client.emit("integrationCreate", {
268
+ ...transformers_1.Guilds.integrationFromRaw(data),
269
+ guildId: data.guild_id,
270
+ });
271
+ },
272
+ [constants_1.GatewayEvents.IntegrationUpdate]: (shard, data) => {
273
+ shard.client.emit("integrationUpdate", {
274
+ ...transformers_1.Guilds.integrationFromRaw(data),
275
+ guildId: data.guild_id,
276
+ });
277
+ },
278
+ [constants_1.GatewayEvents.IntegrationDelete]: (shard, data) => {
279
+ shard.client.emit("integrationDelete", {
280
+ id: data.id,
281
+ guildId: data.guild_id,
282
+ applicationId: data.application_id,
283
+ });
284
+ },
285
+ [constants_1.GatewayEvents.InteractionCreate]: (shard, data) => {
286
+ shard.client.emit("interactionCreate", transformers_1.Interactions.interactionFromRaw(data));
287
+ },
288
+ [constants_1.GatewayEvents.InviteCreate]: (shard, data) => {
289
+ shard.client.emit("inviteCreate", {
290
+ channelId: data.channel_id,
291
+ code: data.code,
292
+ createdAt: data.created_at,
293
+ guildId: data.guild_id,
294
+ inviter: data.inviter !== undefined
295
+ ? transformers_1.Users.userFromRaw(data.inviter)
296
+ : undefined,
297
+ maxAge: data.max_age,
298
+ maxUses: data.max_uses,
299
+ targetType: data.target_type,
300
+ targetUser: data.target_user !== undefined
301
+ ? transformers_1.Users.userFromRaw(data.target_user)
302
+ : undefined,
303
+ targetApplication: data.target_application !== undefined
304
+ ? transformers_1.Applications.applicationFromRaw(data.target_application)
305
+ : undefined,
306
+ temporary: data.temporary,
307
+ uses: data.uses,
308
+ expiresAt: data.expires_at,
309
+ });
310
+ },
311
+ [constants_1.GatewayEvents.InviteDelete]: (shard, data) => {
312
+ shard.client.emit("inviteDelete", {
313
+ channelId: data.channel_id,
314
+ guildId: data.guild_id,
315
+ code: data.code,
316
+ });
317
+ },
318
+ [constants_1.GatewayEvents.MessageCreate]: (shard, data) => {
319
+ shard.client.emit("messageCreate", {
320
+ ...transformers_1.Messages.messageFromRaw(data),
321
+ guildId: data.guild_id,
322
+ member: data.member !== undefined
323
+ ? transformers_1.Guilds.guildMemberFromRaw(data.member)
324
+ : undefined,
325
+ mentions: data.mentions.map((mention) => transformers_1.Users.userFromRaw(mention)),
326
+ });
327
+ },
328
+ [constants_1.GatewayEvents.MessageUpdate]: (shard, data) => {
329
+ shard.client.emit("messageUpdate", transformers_1.Messages.messageFromRaw(data));
330
+ },
331
+ [constants_1.GatewayEvents.MessageDelete]: (shard, data) => {
332
+ shard.client.emit("messageDelete", {
333
+ id: data.id,
334
+ channelId: data.channel_id,
335
+ guildId: data.guild_id,
336
+ });
337
+ },
338
+ [constants_1.GatewayEvents.MessageDeleteBulk]: (shard, data) => {
339
+ shard.client.emit("messageDeleteBulk", {
340
+ ids: data.ids,
341
+ channelId: data.channel_id,
342
+ guildId: data.guild_id,
343
+ });
344
+ },
345
+ [constants_1.GatewayEvents.MessageReactionAdd]: (shard, data) => {
346
+ shard.client.emit("messageReactionAdd", {
347
+ userId: data.user_id,
348
+ channelId: data.channel_id,
349
+ messageId: data.message_id,
350
+ guildId: data.guild_id,
351
+ member: data.member !== undefined
352
+ ? transformers_1.Guilds.guildMemberFromRaw(data.member)
353
+ : undefined,
354
+ emoji: transformers_1.Emojis.emojiFromRaw(data.emoji),
355
+ messageAuthorId: data.message_author_id,
356
+ burst: data.burst,
357
+ burstColors: data.burst_colors,
358
+ type: data.type,
359
+ });
360
+ },
361
+ [constants_1.GatewayEvents.MessageReactionRemove]: (shard, data) => {
362
+ shard.client.emit("messageReactionRemove", {
363
+ userId: data.user_id,
364
+ channelId: data.channel_id,
365
+ messageId: data.message_id,
366
+ guildId: data.guild_id,
367
+ emoji: transformers_1.Emojis.emojiFromRaw(data.emoji),
368
+ burst: data.burst,
369
+ type: data.type,
370
+ });
371
+ },
372
+ [constants_1.GatewayEvents.MessageReactionRemoveAll]: (shard, data) => {
373
+ shard.client.emit("messageReactionRemoveAll", {
374
+ channelId: data.channel_id,
375
+ messageId: data.message_id,
376
+ guildId: data.guild_id,
377
+ });
378
+ },
379
+ [constants_1.GatewayEvents.MessageReactionRemoveEmoji]: (shard, data) => {
380
+ shard.client.emit("messageReactionRemoveEmoji", {
381
+ channelId: data.channel_id,
382
+ guildId: data.guild_id,
383
+ messageId: data.message_id,
384
+ emoji: transformers_1.Emojis.emojiFromRaw(data.emoji),
385
+ });
386
+ },
387
+ [constants_1.GatewayEvents.PresenceUpdate]: (shard, data) => {
388
+ shard.client.emit("presenceUpdate", transformers_1.Presences.presenceFromRaw(data));
389
+ },
390
+ [constants_1.GatewayEvents.StageInstanceCreate]: (shard, data) => {
391
+ shard.client.emit("stageInstanceCreate", transformers_1.StageInstances.stageInstanceFromRaw(data));
392
+ },
393
+ [constants_1.GatewayEvents.StageInstanceUpdate]: (shard, data) => {
394
+ shard.client.emit("stageInstanceUpdate", transformers_1.StageInstances.stageInstanceFromRaw(data));
395
+ },
396
+ [constants_1.GatewayEvents.StageInstanceDelete]: (shard, data) => {
397
+ shard.client.emit("stageInstanceDelete", transformers_1.StageInstances.stageInstanceFromRaw(data));
398
+ },
399
+ [constants_1.GatewayEvents.TypingStart]: (shard, data) => {
400
+ shard.client.emit("typingStart", {
401
+ channelId: data.channel_id,
402
+ guildId: data.guild_id,
403
+ userId: data.user_id,
404
+ timestamp: data.timestamp,
405
+ member: data.member !== undefined
406
+ ? transformers_1.Guilds.guildMemberFromRaw(data.member)
407
+ : undefined,
408
+ });
409
+ },
410
+ [constants_1.GatewayEvents.UserUpdate]: (shard, data) => {
411
+ shard.client.emit("userUpdate", transformers_1.Users.userFromRaw(data));
412
+ },
413
+ [constants_1.GatewayEvents.VoiceChannelEffectSend]: (shard, data) => {
414
+ shard.client.emit("voiceChannelEffectSend", {
415
+ channelId: data.channel_id,
416
+ guildId: data.guild_id,
417
+ userId: data.user_id,
418
+ emoji: data.emoji !== undefined
419
+ ? data.emoji !== null
420
+ ? transformers_1.Emojis.emojiFromRaw(data.emoji)
421
+ : null
422
+ : undefined,
423
+ animationType: data.animation_type,
424
+ animationId: data.animation_id,
425
+ soundId: data.sound_id,
426
+ soundVolume: data.sound_volume,
427
+ });
428
+ },
429
+ [constants_1.GatewayEvents.VoiceStateUpdate]: (shard, data) => {
430
+ shard.client.emit("voiceStateUpdate", transformers_1.Voice.voiceStateFromRaw(data));
431
+ },
432
+ [constants_1.GatewayEvents.VoiceServerUpdate]: (shard, data) => {
433
+ {
434
+ shard.client.emit("voiceServerUpdate", {
435
+ token: data.token,
436
+ guildId: data.guild_id,
437
+ endpoint: data.endpoint,
438
+ });
439
+ }
440
+ },
441
+ [constants_1.GatewayEvents.WebhooksUpdate]: (shard, data) => {
442
+ shard.client.emit("webhooksUpdate", data.channel_id, data.guild_id);
443
+ },
444
+ [constants_1.GatewayEvents.SubscriptionCreate]: (shard, data) => {
445
+ shard.client.emit("subscriptionCreate", transformers_1.Subscriptions.subscriptionFromRaw(data));
446
+ },
447
+ [constants_1.GatewayEvents.SubscriptionUpdate]: (shard, data) => {
448
+ shard.client.emit("subscriptionUpdate", transformers_1.Subscriptions.subscriptionFromRaw(data));
449
+ },
450
+ [constants_1.GatewayEvents.SubscriptionDelete]: (shard, data) => {
451
+ shard.client.emit("subscriptionDelete", transformers_1.Subscriptions.subscriptionFromRaw(data));
452
+ },
453
+ [constants_1.GatewayEvents.MessagePollVoteAdd]: (shard, data) => {
454
+ shard.client.emit("messagePollVoteAdd", {
455
+ userId: data.user_id,
456
+ channelId: data.channel_id,
457
+ messageId: data.message_id,
458
+ guildId: data.guild_id,
459
+ answerId: data.answer_id,
460
+ });
461
+ },
462
+ [constants_1.GatewayEvents.MessagePollVoteRemove]: (shard, data) => {
463
+ shard.client.emit("messagePollVoteRemove", {
464
+ userId: data.user_id,
465
+ channelId: data.channel_id,
466
+ messageId: data.message_id,
467
+ guildId: data.guild_id,
468
+ answerId: data.answer_id,
469
+ });
470
+ },
471
+ };
@@ -1,35 +1,26 @@
1
1
  import WebSocket from "ws";
2
2
  import { Client } from "../Client";
3
- import type { GatewayPresenceUpdate, GatewayVoiceStateUpdate, Identify, RequestGuildMembers, RequestSoundboardSounds, Resume } from "../types/gateway-events";
3
+ import { Transmitter } from "./Transmitter";
4
+ import { Dispatcher } from "./Dispatcher";
4
5
  export declare class Shard {
5
6
  id: number;
6
- private heartbeatInterval;
7
7
  client: Client;
8
- ws: WebSocket;
9
- sessionID: string | null;
8
+ private heartbeatInterval;
9
+ sessionId: string | null;
10
10
  resumeGatewayURL: string | null;
11
+ sequence: number | null;
12
+ ws: WebSocket | null;
13
+ transmitter: Transmitter;
14
+ dispatcher: Dispatcher;
11
15
  constructor(id: number, client: Client);
12
16
  /** https://discord.com/developers/docs/topics/gateway#connections */
13
17
  connect(): void;
14
- /** https://discord.com/developers/docs/topics/gateway#connections */
15
- disconnect(): void;
16
- /** https://discord.com/developers/docs/topics/gateway-events#heartbeat */
17
- heartbeat(lastSequence: number | null): void;
18
- /** https://discord.com/developers/docs/topics/gateway-events#identify */
19
- identify(options: Identify): void;
20
- private onDispatch;
18
+ /** https://discord.com/developers/docs/events/gateway#initiating-a-disconnect */
19
+ disconnect(reconnect: boolean): void;
20
+ identify(): void;
21
21
  private onWebSocketOpen;
22
22
  private onWebSocketMessage;
23
23
  private onWebSocketError;
24
24
  private onWebSocketClose;
25
- /** https://discord.com/developers/docs/topics/gateway-events#request-guild-members */
26
- requestGuildMembers(options: RequestGuildMembers): void;
27
- /** https://discord.com/developers/docs/topics/gateway-events#request-soundboard-sounds */
28
- requestSoundboardSounds(options: RequestSoundboardSounds): void;
29
- /** https://discord.com/developers/docs/topics/gateway-events#resume */
30
- resume(options: Resume): void;
31
- /** https://discord.com/developers/docs/topics/gateway-events#update-presence */
32
- updatePresence(options: Partial<Pick<GatewayPresenceUpdate, "activities" | "status" | "afk">>): void;
33
- /** https://discord.com/developers/docs/topics/gateway-events#update-voice-state */
34
- updateVoiceState(options: GatewayVoiceStateUpdate): void;
25
+ resume(): void;
35
26
  }