disgroove 2.2.2-dev.db6cb16 → 2.2.3-dev.4f98e3d

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 (91) hide show
  1. package/README.md +5 -9
  2. package/dist/lib/Client.d.ts +116 -126
  3. package/dist/lib/Client.js +360 -267
  4. package/dist/lib/constants.d.ts +85 -74
  5. package/dist/lib/constants.js +88 -75
  6. package/dist/lib/gateway/Shard.d.ts +1 -0
  7. package/dist/lib/gateway/Shard.js +194 -170
  8. package/dist/lib/index.d.ts +1 -0
  9. package/dist/lib/index.js +1 -0
  10. package/dist/lib/rest/Endpoints.d.ts +6 -6
  11. package/dist/lib/rest/Endpoints.js +13 -13
  12. package/dist/lib/rest/RequestManager.d.ts +1 -1
  13. package/dist/lib/rest/RequestManager.js +1 -1
  14. package/dist/lib/rest/index.d.ts +0 -1
  15. package/dist/lib/rest/index.js +1 -2
  16. package/dist/lib/transformers/ApplicationCommands.d.ts +7 -0
  17. package/dist/lib/transformers/ApplicationCommands.js +90 -0
  18. package/dist/lib/transformers/ApplicationRoleConnectionMetadatas.d.ts +5 -0
  19. package/dist/lib/transformers/ApplicationRoleConnectionMetadatas.js +26 -0
  20. package/dist/lib/transformers/Applications.d.ts +5 -0
  21. package/dist/lib/transformers/Applications.js +97 -0
  22. package/dist/lib/transformers/AuditLogs.d.ts +7 -0
  23. package/dist/lib/transformers/AuditLogs.js +97 -0
  24. package/dist/lib/transformers/AutoModeration.d.ts +9 -0
  25. package/dist/lib/transformers/AutoModeration.js +76 -0
  26. package/dist/lib/transformers/Channels.d.ts +16 -0
  27. package/dist/lib/transformers/Channels.js +676 -0
  28. package/dist/lib/transformers/Emojis.d.ts +5 -0
  29. package/dist/lib/transformers/Emojis.js +31 -0
  30. package/dist/lib/transformers/Entitlements.d.ts +7 -0
  31. package/dist/lib/transformers/Entitlements.js +58 -0
  32. package/dist/lib/transformers/GuildScheduledEvents.d.ts +5 -0
  33. package/dist/lib/transformers/GuildScheduledEvents.js +51 -0
  34. package/dist/lib/transformers/GuildTemplates.d.ts +5 -0
  35. package/dist/lib/transformers/GuildTemplates.js +38 -0
  36. package/dist/lib/transformers/Guilds.d.ts +12 -0
  37. package/dist/lib/transformers/Guilds.js +264 -0
  38. package/dist/lib/transformers/Interactions.d.ts +10 -0
  39. package/dist/lib/transformers/Interactions.js +273 -0
  40. package/dist/lib/transformers/Invites.d.ts +5 -0
  41. package/dist/lib/transformers/Invites.js +79 -0
  42. package/dist/lib/transformers/Polls.d.ts +5 -0
  43. package/dist/lib/transformers/Polls.js +50 -0
  44. package/dist/lib/transformers/Presences.d.ts +5 -0
  45. package/dist/lib/transformers/Presences.js +116 -0
  46. package/dist/lib/transformers/Roles.d.ts +5 -0
  47. package/dist/lib/transformers/Roles.js +56 -0
  48. package/dist/lib/transformers/SKUs.d.ts +5 -0
  49. package/dist/lib/transformers/SKUs.js +26 -0
  50. package/dist/lib/transformers/StageInstances.d.ts +5 -0
  51. package/dist/lib/transformers/StageInstances.js +28 -0
  52. package/dist/lib/transformers/Stickers.d.ts +5 -0
  53. package/dist/lib/transformers/Stickers.js +41 -0
  54. package/dist/lib/transformers/Teams.d.ts +5 -0
  55. package/dist/lib/transformers/Teams.js +35 -0
  56. package/dist/lib/transformers/Users.d.ts +5 -0
  57. package/dist/lib/transformers/Users.js +62 -0
  58. package/dist/lib/transformers/Voice.d.ts +5 -0
  59. package/dist/lib/transformers/Voice.js +45 -0
  60. package/dist/lib/transformers/Webhooks.d.ts +5 -0
  61. package/dist/lib/transformers/Webhooks.js +51 -0
  62. package/dist/lib/transformers/index.d.ts +23 -0
  63. package/dist/lib/transformers/index.js +39 -0
  64. package/dist/lib/types/entitlements.d.ts +0 -6
  65. package/dist/lib/types/gateway-events.d.ts +21 -8
  66. package/dist/lib/types/guild.d.ts +3 -1
  67. package/dist/lib/types/interaction.d.ts +2 -2
  68. package/dist/lib/types/sku.d.ts +0 -12
  69. package/dist/lib/types/user.d.ts +2 -2
  70. package/dist/lib/utils/CDN.d.ts +24 -0
  71. package/dist/lib/utils/CDN.js +49 -0
  72. package/dist/lib/utils/errors.d.ts +3 -3
  73. package/dist/lib/utils/errors.js +10 -12
  74. package/dist/lib/utils/formatters.d.ts +16 -0
  75. package/dist/lib/utils/formatters.js +44 -0
  76. package/dist/lib/utils/index.d.ts +2 -1
  77. package/dist/lib/utils/index.js +15 -1
  78. package/dist/package.json +3 -3
  79. package/package.json +3 -3
  80. package/dist/lib/rest/CDN.d.ts +0 -22
  81. package/dist/lib/rest/CDN.js +0 -45
  82. package/dist/lib/types/voice-connections.d.ts +0 -64
  83. package/dist/lib/types/voice-connections.js +0 -2
  84. package/dist/lib/utils/Util.d.ts +0 -94
  85. package/dist/lib/utils/Util.js +0 -2228
  86. package/dist/lib/voice/VoiceConnection.d.ts +0 -57
  87. package/dist/lib/voice/VoiceConnection.js +0 -150
  88. package/dist/lib/voice/VoiceConnectionManager.d.ts +0 -19
  89. package/dist/lib/voice/VoiceConnectionManager.js +0 -66
  90. package/dist/lib/voice/index.d.ts +0 -2
  91. package/dist/lib/voice/index.js +0 -18
@@ -31,18 +31,21 @@ const ws_1 = __importDefault(require("ws"));
31
31
  const constants_1 = require("../constants");
32
32
  const utils_1 = require("../utils");
33
33
  const pkg = __importStar(require("../../package.json"));
34
+ const transformers_1 = require("../transformers");
34
35
  class Shard {
35
36
  id;
36
37
  heartbeatInterval;
37
38
  client;
38
39
  ws;
39
40
  sessionID;
41
+ resumeGatewayURL;
40
42
  constructor(id, client) {
41
43
  this.id = id;
42
44
  this.heartbeatInterval = null;
43
45
  this.client = client;
44
46
  this.ws = new ws_1.default("wss://gateway.discord.gg/?v=10&encoding=json", client.ws);
45
47
  this.sessionID = null;
48
+ this.resumeGatewayURL = null;
46
49
  }
47
50
  /** https://discord.com/developers/docs/topics/gateway#connections */
48
51
  connect() {
@@ -85,33 +88,34 @@ class Shard {
85
88
  }));
86
89
  }
87
90
  onDispatch(packet) {
88
- this.client.emit(constants_1.GatewayEvents.Dispatch, packet);
91
+ this.client.emit("dispatch", packet);
89
92
  switch (packet.t) {
90
- case "READY":
93
+ case constants_1.GatewayEvents.Ready:
91
94
  {
92
95
  this.sessionID = packet.d.session_id;
93
- this.client.user = this.client.util.userFromRaw(packet.d.user);
96
+ this.resumeGatewayURL = packet.d.resume_gateway_url;
97
+ this.client.user = transformers_1.Users.userFromRaw(packet.d.user);
94
98
  this.client.application = packet.d.application;
95
- this.client.emit(constants_1.GatewayEvents.Ready);
99
+ this.client.emit("ready");
96
100
  }
97
101
  break;
98
- case "RESUMED":
99
- this.client.emit(constants_1.GatewayEvents.Resumed);
102
+ case constants_1.GatewayEvents.Resumed:
103
+ this.client.emit("resumed");
100
104
  break;
101
- case "APPLICATION_COMMAND_PERMISSIONS_UPDATE":
102
- this.client.emit(constants_1.GatewayEvents.ApplicationCommandPermissionsUpdate, this.client.util.guildApplicationCommandPermissionsFromRaw(packet.d));
105
+ case constants_1.GatewayEvents.ApplicationCommandPermissionsUpdate:
106
+ this.client.emit("applicationCommandPermissionsUpdate", transformers_1.Guilds.guildApplicationCommandPermissionsFromRaw(packet.d));
103
107
  break;
104
- case "AUTO_MODERATION_RULE_CREATE":
105
- this.client.emit(constants_1.GatewayEvents.AutoModerationRuleCreate, this.client.util.autoModerationRuleFromRaw(packet.d));
108
+ case constants_1.GatewayEvents.AutoModerationRuleCreate:
109
+ this.client.emit("autoModerationRuleCreate", transformers_1.AutoModeration.autoModerationRuleFromRaw(packet.d));
106
110
  break;
107
- case "AUTO_MODERATION_RULE_UPDATE":
108
- this.client.emit(constants_1.GatewayEvents.AutoModerationRuleUpdate, this.client.util.autoModerationRuleFromRaw(packet.d));
111
+ case constants_1.GatewayEvents.AutoModerationRuleUpdate:
112
+ this.client.emit("autoModerationRuleUpdate", transformers_1.AutoModeration.autoModerationRuleFromRaw(packet.d));
109
113
  break;
110
- case "AUTO_MODERATION_RULE_DELETE":
111
- this.client.emit(constants_1.GatewayEvents.AutoModerationRuleDelete, this.client.util.autoModerationRuleFromRaw(packet.d));
114
+ case constants_1.GatewayEvents.AutoModerationRuleDelete:
115
+ this.client.emit("autoModerationRuleDelete", transformers_1.AutoModeration.autoModerationRuleFromRaw(packet.d));
112
116
  break;
113
- case "AUTO_MODERATION_ACTION_EXECUTION":
114
- this.client.emit(constants_1.GatewayEvents.AutoModerationActionExecution, {
117
+ case constants_1.GatewayEvents.AutoModerationActionExecution:
118
+ this.client.emit("autoModerationActionExecution", {
115
119
  guildID: packet.d.guild_id,
116
120
  action: {
117
121
  type: packet.d.action.type,
@@ -132,136 +136,136 @@ class Shard {
132
136
  matchedContent: packet.d.matched_content,
133
137
  });
134
138
  break;
135
- case "CHANNEL_CREATE":
136
- this.client.emit(constants_1.GatewayEvents.ChannelCreate, this.client.util.channelFromRaw(packet.d));
139
+ case constants_1.GatewayEvents.ChannelCreate:
140
+ this.client.emit("channelCreate", transformers_1.Channels.channelFromRaw(packet.d));
137
141
  break;
138
- case "CHANNEL_UPDATE":
139
- this.client.emit(constants_1.GatewayEvents.ChannelUpdate, this.client.util.channelFromRaw(packet.d));
142
+ case constants_1.GatewayEvents.ChannelUpdate:
143
+ this.client.emit("channelUpdate", transformers_1.Channels.channelFromRaw(packet.d));
140
144
  break;
141
- case "CHANNEL_DELETE":
142
- this.client.emit(constants_1.GatewayEvents.ChannelDelete, this.client.util.channelFromRaw(packet.d));
145
+ case constants_1.GatewayEvents.ChannelDelete:
146
+ this.client.emit("channelDelete", transformers_1.Channels.channelFromRaw(packet.d));
143
147
  break;
144
- case "CHANNEL_PINS_UPDATE":
145
- this.client.emit(constants_1.GatewayEvents.ChannelPinsUpdate, {
148
+ case constants_1.GatewayEvents.ChannelPinsUpdate:
149
+ this.client.emit("channelPinsUpdate", {
146
150
  guildID: packet.d.guild_id,
147
151
  channelID: packet.d.channel_id,
148
152
  lastPinTimestamp: packet.d.last_pin_timestamp,
149
153
  });
150
154
  break;
151
- case "THREAD_CREATE":
152
- this.client.emit(constants_1.GatewayEvents.ThreadCreate, this.client.util.channelFromRaw(packet.d));
155
+ case constants_1.GatewayEvents.ThreadCreate:
156
+ this.client.emit("threadCreate", transformers_1.Channels.channelFromRaw(packet.d));
153
157
  break;
154
- case "THREAD_UPDATE":
155
- this.client.emit(constants_1.GatewayEvents.ThreadUpdate, this.client.util.channelFromRaw(packet.d));
158
+ case constants_1.GatewayEvents.ThreadUpdate:
159
+ this.client.emit("threadUpdate", transformers_1.Channels.channelFromRaw(packet.d));
156
160
  break;
157
- case "THREAD_DELETE":
158
- this.client.emit(constants_1.GatewayEvents.ThreadDelete, this.client.util.channelFromRaw(packet.d));
161
+ case constants_1.GatewayEvents.ThreadDelete:
162
+ this.client.emit("threadDelete", transformers_1.Channels.channelFromRaw(packet.d));
159
163
  break;
160
- case "THREAD_LIST_SYNC":
161
- this.client.emit(constants_1.GatewayEvents.ThreadListSync, {
164
+ case constants_1.GatewayEvents.ThreadListSync:
165
+ this.client.emit("threadListSync", {
162
166
  guildID: packet.d.guild_id,
163
167
  channelIDs: packet.d.channel_ids,
164
- threads: packet.d.threads.map((thread) => this.client.util.channelFromRaw(thread)),
165
- members: packet.d.members.map((threadMember) => this.client.util.threadMemberFromRaw(threadMember)),
168
+ threads: packet.d.threads.map((thread) => transformers_1.Channels.channelFromRaw(thread)),
169
+ members: packet.d.members.map((threadMember) => transformers_1.Channels.threadMemberFromRaw(threadMember)),
166
170
  });
167
171
  break;
168
- case "THREAD_MEMBER_UPDATE":
169
- this.client.emit(constants_1.GatewayEvents.ThreadMemberUpdate, {
172
+ case constants_1.GatewayEvents.ThreadMemberUpdate:
173
+ this.client.emit("threadMemberUpdate", {
170
174
  id: packet.d.id,
171
175
  userID: packet.d.user_id,
172
176
  joinTimestamp: packet.d.join_timestamp,
173
177
  flags: packet.d.flags,
174
178
  member: packet.d.member !== undefined
175
- ? this.client.util.guildMemberFromRaw(packet.d.member)
179
+ ? transformers_1.Guilds.guildMemberFromRaw(packet.d.member)
176
180
  : undefined,
177
181
  guildID: packet.d.guild_id,
178
182
  });
179
183
  break;
180
- case "THREAD_MEMBERS_UPDATE":
181
- this.client.emit(constants_1.GatewayEvents.ThreadMembersUpdate, {
184
+ case constants_1.GatewayEvents.ThreadMembersUpdate:
185
+ this.client.emit("threadMembersUpdate", {
182
186
  id: packet.d.id,
183
187
  guildID: packet.d.guild_id,
184
188
  memberCount: packet.d.member_count,
185
- addedMembers: packet.d.members.map((threadMember) => this.client.util.threadMemberFromRaw(threadMember)),
189
+ addedMembers: packet.d.members.map((threadMember) => transformers_1.Channels.threadMemberFromRaw(threadMember)),
186
190
  removedMemberIDs: packet.d.removed_member_ids,
187
191
  });
188
192
  break;
189
- case "ENTITLEMENT_CREATE":
190
- this.client.emit(constants_1.GatewayEvents.EntitlementCreate, this.client.util.entitlementFromRaw(packet.d));
193
+ case constants_1.GatewayEvents.EntitlementCreate:
194
+ this.client.emit("entitlementCreate", transformers_1.Entitlements.entitlementFromRaw(packet.d));
191
195
  break;
192
- case "ENTITLEMENT_UPDATE":
193
- this.client.emit(constants_1.GatewayEvents.EntitlementUpdate, this.client.util.entitlementFromRaw(packet.d));
196
+ case constants_1.GatewayEvents.EntitlementUpdate:
197
+ this.client.emit("entitlementUpdate", transformers_1.Entitlements.entitlementFromRaw(packet.d));
194
198
  break;
195
- case "ENTITLEMENT_DELETE":
196
- this.client.emit(constants_1.GatewayEvents.EntitlementDelete, this.client.util.entitlementFromRaw(packet.d));
199
+ case constants_1.GatewayEvents.EntitlementDelete:
200
+ this.client.emit("entitlementDelete", transformers_1.Entitlements.entitlementFromRaw(packet.d));
197
201
  break;
198
- case "GUILD_CREATE":
202
+ case constants_1.GatewayEvents.GuildCreate:
199
203
  {
200
204
  this.client.guildShardMap[packet.d.id] = this.id;
201
- this.client.guilds.set(packet.d.id, this.client.util.guildFromRaw(packet.d));
202
- this.client.emit(constants_1.GatewayEvents.GuildCreate, this.client.util.guildFromRaw(packet.d));
205
+ this.client.guilds.set(packet.d.id, transformers_1.Guilds.guildFromRaw(packet.d));
206
+ this.client.emit("guildCreate", transformers_1.Guilds.guildFromRaw(packet.d));
203
207
  }
204
208
  break;
205
- case "GUILD_UPDATE":
209
+ case constants_1.GatewayEvents.GuildUpdate:
206
210
  {
207
- this.client.guilds.set(packet.d.id, this.client.util.guildFromRaw(packet.d));
208
- this.client.emit(constants_1.GatewayEvents.GuildUpdate, this.client.util.guildFromRaw(packet.d));
211
+ this.client.guilds.set(packet.d.id, transformers_1.Guilds.guildFromRaw(packet.d));
212
+ this.client.emit("guildUpdate", transformers_1.Guilds.guildFromRaw(packet.d));
209
213
  }
210
214
  break;
211
- case "GUILD_DELETE":
215
+ case constants_1.GatewayEvents.GuildDelete:
212
216
  {
213
217
  delete this.client.guildShardMap[packet.d.id];
214
218
  this.client.guilds.delete(packet.d.id);
215
- this.client.emit(constants_1.GatewayEvents.GuildDelete, {
219
+ this.client.emit("guildDelete", {
216
220
  id: packet.d.id,
217
221
  unavailable: packet.d.unavailable,
218
222
  });
219
223
  }
220
224
  break;
221
- case "GUILD_AUDIT_LOG_ENTRY_CREATE":
222
- this.client.emit(constants_1.GatewayEvents.GuildAuditLogEntryCreate, {
223
- ...this.client.util.auditLogEntryFromRaw(packet.d),
225
+ case constants_1.GatewayEvents.GuildAuditLogEntryCreate:
226
+ this.client.emit("guildAuditLogEntryCreate", {
227
+ ...transformers_1.AuditLogs.auditLogEntryFromRaw(packet.d),
224
228
  guildID: packet.d.guild_id,
225
229
  });
226
230
  break;
227
- case "GUILD_BAN_ADD":
228
- this.client.emit(constants_1.GatewayEvents.GuildBanAdd, {
231
+ case constants_1.GatewayEvents.GuildBanAdd:
232
+ this.client.emit("guildBanAdd", {
229
233
  guildID: packet.d.guild_id,
230
- user: this.client.util.userFromRaw(packet.d.user),
234
+ user: transformers_1.Users.userFromRaw(packet.d.user),
231
235
  });
232
236
  break;
233
- case "GUILD_BAN_REMOVE":
234
- this.client.emit(constants_1.GatewayEvents.GuildBanRemove, {
237
+ case constants_1.GatewayEvents.GuildBanRemove:
238
+ this.client.emit("guildBanRemove", {
235
239
  guildID: packet.d.guild_id,
236
- user: this.client.util.userFromRaw(packet.d.user),
240
+ user: transformers_1.Users.userFromRaw(packet.d.user),
237
241
  });
238
242
  break;
239
- case "GUILD_EMOJIS_UPDATE":
240
- this.client.emit(constants_1.GatewayEvents.GuildEmojisUpdate, packet.d.emojis.map((emoji) => this.client.util.emojiFromRaw(emoji)), packet.d.guild_id);
243
+ case constants_1.GatewayEvents.GuildEmojisUpdate:
244
+ this.client.emit("guildEmojisUpdate", packet.d.emojis.map((emoji) => transformers_1.Emojis.emojiFromRaw(emoji)), packet.d.guild_id);
241
245
  break;
242
- case "GUILD_STICKERS_UPDATE":
243
- this.client.emit(constants_1.GatewayEvents.GuildStickersUpdate, packet.d.stickers.map((sticker) => this.client.util.stickerFromRaw(sticker)), packet.d.guild_id);
246
+ case constants_1.GatewayEvents.GuildStickersUpdate:
247
+ this.client.emit("guildStickersUpdate", packet.d.stickers.map((sticker) => transformers_1.Stickers.stickerFromRaw(sticker)), packet.d.guild_id);
244
248
  break;
245
- case "GUILD_INTEGRATIONS_UPDATE":
246
- this.client.emit(constants_1.GatewayEvents.GuildIntegrationsUpdate, packet.d.guild_id);
249
+ case constants_1.GatewayEvents.GuildIntegrationsUpdate:
250
+ this.client.emit("guildIntegrationsUpdate", packet.d.guild_id);
247
251
  break;
248
- case "GUILD_MEMBER_ADD":
249
- this.client.emit(constants_1.GatewayEvents.GuildMemberAdd, {
250
- ...this.client.util.guildMemberFromRaw(packet.d),
252
+ case constants_1.GatewayEvents.GuildMemberAdd:
253
+ this.client.emit("guildMemberAdd", {
254
+ ...transformers_1.Guilds.guildMemberFromRaw(packet.d),
251
255
  guildID: packet.d.guild_id,
252
256
  });
253
257
  break;
254
- case "GUILD_MEMBER_REMOVE":
255
- this.client.emit(constants_1.GatewayEvents.GuildMemberRemove, {
258
+ case constants_1.GatewayEvents.GuildMemberRemove:
259
+ this.client.emit("guildMemberRemove", {
256
260
  guildID: packet.d.guild_id,
257
- user: this.client.util.userFromRaw(packet.d.user),
261
+ user: transformers_1.Users.userFromRaw(packet.d.user),
258
262
  });
259
263
  break;
260
- case "GUILD_MEMBER_UPDATE":
261
- this.client.emit(constants_1.GatewayEvents.GuildMemberUpdate, {
264
+ case constants_1.GatewayEvents.GuildMemberUpdate:
265
+ this.client.emit("guildMemberUpdate", {
262
266
  guildID: packet.d.guild_id,
263
267
  roles: packet.d.roles,
264
- user: this.client.util.userFromRaw(packet.d.user),
268
+ user: transformers_1.Users.userFromRaw(packet.d.user),
265
269
  nick: packet.d.nick,
266
270
  avatar: packet.d.avatar,
267
271
  joinedAt: packet.d.joined_at,
@@ -279,204 +283,204 @@ class Shard {
279
283
  : undefined,
280
284
  });
281
285
  break;
282
- case "GUILD_MEMBERS_CHUNK":
283
- this.client.emit(constants_1.GatewayEvents.GuildMembersChunk, {
286
+ case constants_1.GatewayEvents.GuildMembersChunk:
287
+ this.client.emit("guildMembersChunk", {
284
288
  guildID: packet.d.guild_id,
285
- members: packet.d.members.map((guildMember) => this.client.util.guildMemberFromRaw(guildMember)),
289
+ members: packet.d.members.map((guildMember) => transformers_1.Guilds.guildMemberFromRaw(guildMember)),
286
290
  chunkIndex: packet.d.chunk_index,
287
291
  chunkCount: packet.d.chunk_count,
288
292
  notFound: packet.d.not_found,
289
- presences: packet.d.presences?.map((presence) => this.client.util.presenceFromRaw(presence)),
293
+ presences: packet.d.presences?.map((presence) => transformers_1.Presences.presenceFromRaw(presence)),
290
294
  nonce: packet.d.nonce,
291
295
  });
292
296
  break;
293
- case "GUILD_ROLE_CREATE":
294
- this.client.emit(constants_1.GatewayEvents.GuildRoleCreate, this.client.util.roleFromRaw(packet.d.role), packet.d.guild_id);
297
+ case constants_1.GatewayEvents.GuildRoleCreate:
298
+ this.client.emit("guildRoleCreate", transformers_1.Roles.roleFromRaw(packet.d.role), packet.d.guild_id);
295
299
  break;
296
- case "GUILD_ROLE_UPDATE":
297
- this.client.emit(constants_1.GatewayEvents.GuildRoleUpdate, this.client.util.roleFromRaw(packet.d.role), packet.d.guild_id);
300
+ case constants_1.GatewayEvents.GuildRoleUpdate:
301
+ this.client.emit("guildRoleUpdate", transformers_1.Roles.roleFromRaw(packet.d.role), packet.d.guild_id);
298
302
  break;
299
- case "GUILD_ROLE_DELETE":
300
- this.client.emit(constants_1.GatewayEvents.GuildRoleDelete, packet.d.role_id, packet.d.guild_id);
303
+ case constants_1.GatewayEvents.GuildRoleDelete:
304
+ this.client.emit("guildRoleDelete", packet.d.role_id, packet.d.guild_id);
301
305
  break;
302
- case "GUILD_SCHEDULED_EVENT_CREATE":
303
- this.client.emit(constants_1.GatewayEvents.GuildScheduledEventCreate, this.client.util.guildScheduledEventFromRaw(packet.d));
306
+ case constants_1.GatewayEvents.GuildScheduledEventCreate:
307
+ this.client.emit("guildScheduledEventCreate", transformers_1.GuildScheduledEvents.guildScheduledEventFromRaw(packet.d));
304
308
  break;
305
- case "GUILD_SCHEDULED_EVENT_UPDATE":
306
- this.client.emit(constants_1.GatewayEvents.GuildScheduledEventUpdate, this.client.util.guildScheduledEventFromRaw(packet.d));
309
+ case constants_1.GatewayEvents.GuildScheduledEventUpdate:
310
+ this.client.emit("guildScheduledEventUpdate", transformers_1.GuildScheduledEvents.guildScheduledEventFromRaw(packet.d));
307
311
  break;
308
- case "GUILD_SCHEDULED_EVENT_DELETE":
309
- this.client.emit(constants_1.GatewayEvents.GuildScheduledEventDelete, this.client.util.guildScheduledEventFromRaw(packet.d));
312
+ case constants_1.GatewayEvents.GuildScheduledEventDelete:
313
+ this.client.emit("guildScheduledEventDelete", transformers_1.GuildScheduledEvents.guildScheduledEventFromRaw(packet.d));
310
314
  break;
311
- case "GUILD_SCHEDULED_EVENT_USER_ADD":
312
- this.client.emit(constants_1.GatewayEvents.GuildScheduledEventUserAdd, packet.d.user_id, packet.d.guild_scheduled_event_id, packet.d.guild_id);
315
+ case constants_1.GatewayEvents.GuildScheduledEventUserAdd:
316
+ this.client.emit("guildScheduledEventUserAdd", packet.d.user_id, packet.d.guild_scheduled_event_id, packet.d.guild_id);
313
317
  break;
314
- case "GUILD_SCHEDULED_EVENT_USER_REMOVE":
315
- this.client.emit(constants_1.GatewayEvents.GuildScheduledEventUserRemove, packet.d.user_id, packet.d.guild_scheduled_event_id, packet.d.guild_id);
318
+ case constants_1.GatewayEvents.GuildScheduledEventUserRemove:
319
+ this.client.emit("guildScheduledEventUserRemove", packet.d.user_id, packet.d.guild_scheduled_event_id, packet.d.guild_id);
316
320
  break;
317
- case "INTEGRATION_CREATE":
318
- this.client.emit(constants_1.GatewayEvents.IntegrationCreate, {
319
- ...this.client.util.integrationFromRaw(packet.d),
321
+ case constants_1.GatewayEvents.IntegrationCreate:
322
+ this.client.emit("integrationCreate", {
323
+ ...transformers_1.Guilds.integrationFromRaw(packet.d),
320
324
  guildID: packet.d.guild_id,
321
325
  });
322
326
  break;
323
- case "INTEGRATION_UPDATE":
324
- this.client.emit(constants_1.GatewayEvents.IntegrationUpdate, {
325
- ...this.client.util.integrationFromRaw(packet.d),
327
+ case constants_1.GatewayEvents.IntegrationUpdate:
328
+ this.client.emit("integrationUpdate", {
329
+ ...transformers_1.Guilds.integrationFromRaw(packet.d),
326
330
  guildID: packet.d.guild_id,
327
331
  });
328
332
  break;
329
- case "INTEGRATION_DELETE":
330
- this.client.emit(constants_1.GatewayEvents.IntegrationDelete, {
333
+ case constants_1.GatewayEvents.IntegrationDelete:
334
+ this.client.emit("integrationDelete", {
331
335
  id: packet.d.id,
332
336
  guildID: packet.d.guild_id,
333
337
  applicationID: packet.d.application_id,
334
338
  });
335
339
  break;
336
- case "INTERACTION_CREATE":
337
- this.client.emit(constants_1.GatewayEvents.InteractionCreate, this.client.util.interactionFromRaw(packet.d));
340
+ case constants_1.GatewayEvents.InteractionCreate:
341
+ this.client.emit("interactionCreate", transformers_1.Interactions.interactionFromRaw(packet.d));
338
342
  break;
339
- case "INVITE_CREATE":
340
- this.client.emit(constants_1.GatewayEvents.InviteCreate, {
343
+ case constants_1.GatewayEvents.InviteCreate:
344
+ this.client.emit("inviteCreate", {
341
345
  channelID: packet.d.channel_id,
342
346
  code: packet.d.code,
343
347
  createdAt: packet.d.created_at,
344
348
  guildID: packet.d.guild_id,
345
349
  inviter: packet.d.inviter !== undefined
346
- ? this.client.util.userFromRaw(packet.d.inviter)
350
+ ? transformers_1.Users.userFromRaw(packet.d.inviter)
347
351
  : undefined,
348
352
  maxAge: packet.d.max_age,
349
353
  maxUses: packet.d.max_uses,
350
354
  targetType: packet.d.target_type,
351
355
  targetUser: packet.d.target_user !== undefined
352
- ? this.client.util.userFromRaw(packet.d.target_user)
356
+ ? transformers_1.Users.userFromRaw(packet.d.target_user)
353
357
  : undefined,
354
358
  targetApplication: packet.d.target_application !== undefined
355
- ? this.client.util.applicationFromRaw(packet.d.target_application)
359
+ ? transformers_1.Applications.applicationFromRaw(packet.d.target_application)
356
360
  : undefined,
357
361
  temporary: packet.d.temporary,
358
362
  uses: packet.d.uses,
359
363
  });
360
364
  break;
361
- case "INVITE_DELETE":
362
- this.client.emit(constants_1.GatewayEvents.InviteDelete, {
365
+ case constants_1.GatewayEvents.InviteDelete:
366
+ this.client.emit("inviteDelete", {
363
367
  channelID: packet.d.channel_id,
364
368
  guildID: packet.d.guild_id,
365
369
  code: packet.d.code,
366
370
  });
367
371
  break;
368
- case "MESSAGE_CREATE":
369
- this.client.emit(constants_1.GatewayEvents.MessageCreate, {
370
- ...this.client.util.messageFromRaw(packet.d),
372
+ case constants_1.GatewayEvents.MessageCreate:
373
+ this.client.emit("messageCreate", {
374
+ ...transformers_1.Channels.messageFromRaw(packet.d),
371
375
  guildID: packet.d.guild_id,
372
376
  member: packet.d.member !== undefined
373
- ? this.client.util.guildMemberFromRaw(packet.d.member)
377
+ ? transformers_1.Guilds.guildMemberFromRaw(packet.d.member)
374
378
  : undefined,
375
- mentions: packet.d.mentions.map((mention) => this.client.util.userFromRaw(mention)),
379
+ mentions: packet.d.mentions.map((mention) => transformers_1.Users.userFromRaw(mention)),
376
380
  });
377
381
  break;
378
- case "MESSAGE_UPDATE":
379
- this.client.emit(constants_1.GatewayEvents.MessageUpdate, this.client.util.messageFromRaw(packet.d));
382
+ case constants_1.GatewayEvents.MessageUpdate:
383
+ this.client.emit("messageUpdate", transformers_1.Channels.messageFromRaw(packet.d));
380
384
  break;
381
- case "MESSAGE_DELETE":
382
- this.client.emit(constants_1.GatewayEvents.MessageDelete, {
385
+ case constants_1.GatewayEvents.MessageDelete:
386
+ this.client.emit("messageDelete", {
383
387
  id: packet.d.id,
384
388
  channelID: packet.d.channel_id,
385
389
  guildID: packet.d.guild_id,
386
390
  });
387
391
  break;
388
- case "MESSAGE_DELETE_BULK":
389
- this.client.emit(constants_1.GatewayEvents.MessageDeleteBulk, {
392
+ case constants_1.GatewayEvents.MessageDeleteBulk:
393
+ this.client.emit("messageDeleteBulk", {
390
394
  ids: packet.d.ids,
391
395
  channelID: packet.d.channel_id,
392
396
  guildID: packet.d.guild_id,
393
397
  });
394
398
  break;
395
- case "MESSAGE_REACTION_ADD":
396
- this.client.emit(constants_1.GatewayEvents.MessageReactionAdd, {
399
+ case constants_1.GatewayEvents.MessageReactionAdd:
400
+ this.client.emit("messageReactionAdd", {
397
401
  userID: packet.d.user_id,
398
402
  channelID: packet.d.user_id,
399
403
  messageID: packet.d.user_id,
400
404
  guildID: packet.d.user_id,
401
405
  member: packet.d.member !== undefined
402
- ? this.client.util.guildMemberFromRaw(packet.d.member)
406
+ ? transformers_1.Guilds.guildMemberFromRaw(packet.d.member)
403
407
  : undefined,
404
- emoji: this.client.util.emojiFromRaw(packet.d.emoji),
408
+ emoji: transformers_1.Emojis.emojiFromRaw(packet.d.emoji),
405
409
  messageAuthorID: packet.d.message_author_id,
406
410
  burst: packet.d.burst,
407
411
  burstColors: packet.d.burst_colors,
408
412
  type: packet.d.type,
409
413
  });
410
414
  break;
411
- case "MESSAGE_REACTION_REMOVE":
412
- this.client.emit(constants_1.GatewayEvents.MessageReactionRemove, {
415
+ case constants_1.GatewayEvents.MessageReactionRemove:
416
+ this.client.emit("messageReactionRemove", {
413
417
  userID: packet.d.user_id,
414
418
  channelID: packet.d.user_id,
415
419
  messageID: packet.d.user_id,
416
420
  guildID: packet.d.user_id,
417
- emoji: this.client.util.emojiFromRaw(packet.d.emoji),
421
+ emoji: transformers_1.Emojis.emojiFromRaw(packet.d.emoji),
418
422
  burst: packet.d.burst,
419
423
  type: packet.d.type,
420
424
  });
421
425
  break;
422
- case "MESSAGE_REACTION_REMOVE_ALL":
423
- this.client.emit(constants_1.GatewayEvents.MessageReactionRemoveAll, {
426
+ case constants_1.GatewayEvents.MessageReactionRemoveAll:
427
+ this.client.emit("messageReactionRemoveAll", {
424
428
  channelID: packet.d.channel_id,
425
429
  messageID: packet.d.message_id,
426
430
  guildID: packet.d.guild_id,
427
431
  });
428
432
  break;
429
- case "MESSAGE_REACTION_REMOVE_EMOJI":
430
- this.client.emit(constants_1.GatewayEvents.MessageReactionRemoveEmoji, {
433
+ case constants_1.GatewayEvents.MessageReactionRemoveEmoji:
434
+ this.client.emit("messageReactionRemoveEmoji", {
431
435
  channelID: packet.d.channel_id,
432
436
  guildID: packet.d.guild_id,
433
437
  messageID: packet.d.message_id,
434
- emoji: this.client.util.emojiFromRaw(packet.d.emoji),
438
+ emoji: transformers_1.Emojis.emojiFromRaw(packet.d.emoji),
435
439
  });
436
440
  break;
437
- case "PRESENCE_UPDATE":
438
- this.client.emit(constants_1.GatewayEvents.PresenceUpdate, this.client.util.presenceFromRaw(packet.d));
441
+ case constants_1.GatewayEvents.PresenceUpdate:
442
+ this.client.emit("presenceUpdate", transformers_1.Presences.presenceFromRaw(packet.d));
439
443
  break;
440
- case "STAGE_INSTANCE_CREATE":
441
- this.client.emit(constants_1.GatewayEvents.StageInstanceCreate, this.client.util.stageInstanceFromRaw(packet.d));
444
+ case constants_1.GatewayEvents.StageInstanceCreate:
445
+ this.client.emit("stageInstanceCreate", transformers_1.StageInstances.stageInstanceFromRaw(packet.d));
442
446
  break;
443
- case "STAGE_INSTANCE_UPDATE":
444
- this.client.emit(constants_1.GatewayEvents.StageInstanceUpdate, this.client.util.stageInstanceFromRaw(packet.d));
447
+ case constants_1.GatewayEvents.StageInstanceUpdate:
448
+ this.client.emit("stageInstanceUpdate", transformers_1.StageInstances.stageInstanceFromRaw(packet.d));
445
449
  break;
446
- case "STAGE_INSTANCE_DELETE":
447
- this.client.emit(constants_1.GatewayEvents.StageInstanceDelete, this.client.util.stageInstanceFromRaw(packet.d));
450
+ case constants_1.GatewayEvents.StageInstanceDelete:
451
+ this.client.emit("stageInstanceDelete", transformers_1.StageInstances.stageInstanceFromRaw(packet.d));
448
452
  break;
449
- case "TYPING_START":
450
- this.client.emit(constants_1.GatewayEvents.TypingStart, {
453
+ case constants_1.GatewayEvents.TypingStart:
454
+ this.client.emit("typingStart", {
451
455
  channelID: packet.d.channel_id,
452
456
  guildID: packet.d.guild_id,
453
457
  userID: packet.d.user_id,
454
458
  timestamp: packet.d.timestamp,
455
459
  member: packet.d.member !== undefined
456
- ? this.client.util.guildMemberFromRaw(packet.d.member)
460
+ ? transformers_1.Guilds.guildMemberFromRaw(packet.d.member)
457
461
  : undefined,
458
462
  });
459
463
  break;
460
- case "USER_UPDATE":
461
- this.client.emit(constants_1.GatewayEvents.UserUpdate, this.client.util.userFromRaw(packet.d));
464
+ case constants_1.GatewayEvents.UserUpdate:
465
+ this.client.emit("userUpdate", transformers_1.Users.userFromRaw(packet.d));
462
466
  break;
463
- case "VOICE_STATE_UPDATE":
464
- this.client.emit(constants_1.GatewayEvents.VoiceStateUpdate, this.client.util.voiceStateFromRaw(packet.d));
467
+ case constants_1.GatewayEvents.VoiceStateUpdate:
468
+ this.client.emit("voiceStateUpdate", transformers_1.Voice.voiceStateFromRaw(packet.d));
465
469
  break;
466
- case "VOICE_SERVER_UPDATE":
470
+ case constants_1.GatewayEvents.VoiceServerUpdate:
467
471
  {
468
- this.client.emit(constants_1.GatewayEvents.VoiceServerUpdate, {
472
+ this.client.emit("voiceServerUpdate", {
469
473
  token: packet.d.token,
470
474
  guildID: packet.d.guild_id,
471
475
  endpoint: packet.d.endpoint,
472
476
  });
473
477
  }
474
478
  break;
475
- case "WEBHOOKS_UPDATE":
476
- this.client.emit(constants_1.GatewayEvents.WebhooksUpdate, packet.d.channel_id, packet.d.guild_id);
479
+ case constants_1.GatewayEvents.WebhooksUpdate:
480
+ this.client.emit("webhooksUpdate", packet.d.channel_id, packet.d.guild_id);
477
481
  break;
478
- case "MESSAGE_POLL_VOTE_ADD":
479
- this.client.emit(constants_1.GatewayEvents.MessagePollVoteAdd, {
482
+ case constants_1.GatewayEvents.MessagePollVoteAdd:
483
+ this.client.emit("messagePollVoteAdd", {
480
484
  userID: packet.d.user_id,
481
485
  channelID: packet.d.channel_id,
482
486
  messageID: packet.d.message_id,
@@ -484,8 +488,8 @@ class Shard {
484
488
  answerID: packet.d.answer_id,
485
489
  });
486
490
  break;
487
- case "MESSAGE_POLL_VOTE_REMOVE":
488
- this.client.emit(constants_1.GatewayEvents.MessagePollVoteRemove, {
491
+ case constants_1.GatewayEvents.MessagePollVoteRemove:
492
+ this.client.emit("messagePollVoteRemove", {
489
493
  userID: packet.d.user_id,
490
494
  channelID: packet.d.channel_id,
491
495
  messageID: packet.d.message_id,
@@ -499,16 +503,26 @@ class Shard {
499
503
  this.identify({
500
504
  token: this.client.token,
501
505
  properties: {
502
- os: process.platform,
503
- browser: pkg.name,
504
- device: pkg.name,
506
+ os: this.client.properties?.os ?? process.platform,
507
+ browser: this.client.properties?.browser ?? pkg.name,
508
+ device: this.client.properties?.device ?? pkg.name,
505
509
  },
506
510
  compress: this.client.compress,
507
511
  largeThreshold: this.client.largeThreshold,
508
512
  shard: [this.id, this.client.shardsCount],
509
513
  presence: this.client.presence !== undefined
510
514
  ? {
511
- activities: this.client.presence.activities,
515
+ since: this.client.presence.status === constants_1.StatusTypes.Idle
516
+ ? Date.now()
517
+ : null,
518
+ activities: this.client.presence.activities?.map((activity) => ({
519
+ name: activity.type === constants_1.ActivityType.Custom
520
+ ? "Custom Status"
521
+ : activity.name,
522
+ type: activity.type,
523
+ url: activity.url,
524
+ state: activity.state,
525
+ })),
512
526
  status: this.client.presence.status ?? constants_1.StatusTypes.Online,
513
527
  afk: !!this.client.presence.afk,
514
528
  }
@@ -523,17 +537,20 @@ class Shard {
523
537
  this.onDispatch(packet);
524
538
  break;
525
539
  case constants_1.GatewayOPCodes.Reconnect:
526
- this.client.emit(constants_1.GatewayEvents.Reconnect);
540
+ this.client.emit("reconnect");
527
541
  break;
528
542
  case constants_1.GatewayOPCodes.InvalidSession:
529
- this.client.emit(constants_1.GatewayEvents.InvalidSession);
543
+ this.client.emit("invalidSession");
530
544
  break;
531
545
  case constants_1.GatewayOPCodes.Hello:
532
546
  {
533
547
  this.heartbeatInterval = setInterval(() => this.heartbeat(null), packet.d.heartbeat_interval);
534
- this.client.emit(constants_1.GatewayEvents.Hello);
548
+ this.client.emit("hello", packet.d.heartbeat_interval);
535
549
  }
536
550
  break;
551
+ case constants_1.GatewayOPCodes.HeartbeatACK:
552
+ this.client.emit("heartbeatACK");
553
+ break;
537
554
  }
538
555
  }
539
556
  onWebSocketError(err) {
@@ -542,7 +559,7 @@ class Shard {
542
559
  onWebSocketClose(code, reason) {
543
560
  if (code === 1000)
544
561
  return;
545
- throw new utils_1.GatewayError(`[${code}] ${reason}`);
562
+ throw new utils_1.GatewayError(code, reason.toString());
546
563
  }
547
564
  /** https://discord.com/developers/docs/topics/gateway-events#request-guild-members */
548
565
  requestGuildMembers(options) {
@@ -575,7 +592,14 @@ class Shard {
575
592
  op: constants_1.GatewayOPCodes.PresenceUpdate,
576
593
  d: {
577
594
  since: options.status === constants_1.StatusTypes.Idle ? Date.now() : null,
578
- activities: options.activities,
595
+ activities: options.activities?.map((activity) => ({
596
+ name: activity.type === constants_1.ActivityType.Custom
597
+ ? "Custom Status"
598
+ : activity.name,
599
+ type: activity.type,
600
+ url: activity.url,
601
+ state: activity.state,
602
+ })),
579
603
  status: options.status ?? constants_1.StatusTypes.Online,
580
604
  afk: !!options.afk,
581
605
  },