disgroove 2.2.7-dev.fca4921 → 3.0.0-dev.51640ff

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 (81) hide show
  1. package/dist/lib/Client.d.ts +291 -254
  2. package/dist/lib/Client.js +554 -460
  3. package/dist/lib/constants.d.ts +29 -21
  4. package/dist/lib/constants.js +33 -24
  5. package/dist/lib/gateway/Shard.d.ts +5 -3
  6. package/dist/lib/gateway/Shard.js +183 -120
  7. package/dist/lib/index.d.ts +5 -1
  8. package/dist/lib/index.js +5 -1
  9. package/dist/lib/rest/Endpoints.d.ts +95 -91
  10. package/dist/lib/rest/Endpoints.js +111 -102
  11. package/dist/lib/rest/RequestManager.d.ts +1 -3
  12. package/dist/lib/transformers/ApplicationCommands.js +4 -4
  13. package/dist/lib/transformers/Applications.d.ts +2 -0
  14. package/dist/lib/transformers/Applications.js +110 -4
  15. package/dist/lib/transformers/AuditLogs.js +10 -10
  16. package/dist/lib/transformers/AutoModeration.js +6 -6
  17. package/dist/lib/transformers/Channels.js +16 -16
  18. package/dist/lib/transformers/Components.d.ts +13 -3
  19. package/dist/lib/transformers/Components.js +283 -156
  20. package/dist/lib/transformers/Entitlements.d.ts +2 -2
  21. package/dist/lib/transformers/Entitlements.js +16 -16
  22. package/dist/lib/transformers/GuildScheduledEvents.js +8 -8
  23. package/dist/lib/transformers/GuildTemplates.js +4 -4
  24. package/dist/lib/transformers/Guilds.js +28 -28
  25. package/dist/lib/transformers/Interactions.js +300 -55
  26. package/dist/lib/transformers/Lobbies.d.ts +7 -0
  27. package/dist/lib/transformers/Lobbies.js +38 -0
  28. package/dist/lib/transformers/Messages.d.ts +4 -3
  29. package/dist/lib/transformers/Messages.js +38 -52
  30. package/dist/lib/transformers/Polls.js +2 -2
  31. package/dist/lib/transformers/Presences.js +6 -6
  32. package/dist/lib/transformers/Roles.js +8 -8
  33. package/dist/lib/transformers/SKUs.js +2 -2
  34. package/dist/lib/transformers/Soundboards.js +6 -6
  35. package/dist/lib/transformers/StageInstances.js +6 -6
  36. package/dist/lib/transformers/Stickers.js +3 -3
  37. package/dist/lib/transformers/Subscriptions.js +8 -8
  38. package/dist/lib/transformers/Teams.js +4 -4
  39. package/dist/lib/transformers/Users.js +6 -6
  40. package/dist/lib/transformers/Voice.js +8 -8
  41. package/dist/lib/transformers/Webhooks.js +6 -6
  42. package/dist/lib/transformers/index.d.ts +2 -1
  43. package/dist/lib/transformers/index.js +2 -1
  44. package/dist/lib/types/application-command.d.ts +9 -4
  45. package/dist/lib/types/application-role-connection-metadata.d.ts +1 -0
  46. package/dist/lib/types/application.d.ts +12 -7
  47. package/dist/lib/types/audit-log.d.ts +9 -5
  48. package/dist/lib/types/auto-moderation.d.ts +7 -3
  49. package/dist/lib/types/channel.d.ts +17 -23
  50. package/dist/lib/types/common.d.ts +2 -0
  51. package/dist/lib/types/components.d.ts +478 -0
  52. package/dist/lib/types/components.js +2 -0
  53. package/dist/lib/types/emoji.d.ts +1 -0
  54. package/dist/lib/types/entitlements.d.ts +5 -4
  55. package/dist/lib/types/gateway-events.d.ts +203 -130
  56. package/dist/lib/types/guild-scheduled-event.d.ts +10 -5
  57. package/dist/lib/types/guild-template.d.ts +3 -2
  58. package/dist/lib/types/guild.d.ts +40 -22
  59. package/dist/lib/types/interaction.d.ts +35 -18
  60. package/dist/lib/types/invite.d.ts +5 -2
  61. package/dist/lib/types/lobby.d.ts +31 -0
  62. package/dist/lib/types/lobby.js +2 -0
  63. package/dist/lib/types/message-components.d.ts +334 -118
  64. package/dist/lib/types/message.d.ts +32 -20
  65. package/dist/lib/types/poll.d.ts +7 -1
  66. package/dist/lib/types/role.d.ts +8 -5
  67. package/dist/lib/types/sku.d.ts +2 -1
  68. package/dist/lib/types/soundboard.d.ts +4 -3
  69. package/dist/lib/types/stage-instance.d.ts +4 -3
  70. package/dist/lib/types/sticker.d.ts +8 -5
  71. package/dist/lib/types/subscription.d.ts +6 -5
  72. package/dist/lib/types/team.d.ts +4 -2
  73. package/dist/lib/types/user.d.ts +10 -3
  74. package/dist/lib/types/voice.d.ts +6 -4
  75. package/dist/lib/types/webhook.d.ts +4 -3
  76. package/dist/lib/utils/CDN.d.ts +22 -22
  77. package/dist/lib/utils/CDN.js +22 -22
  78. package/dist/lib/utils/formatters.d.ts +7 -7
  79. package/dist/lib/utils/formatters.js +19 -19
  80. package/dist/package.json +4 -4
  81. package/package.json +4 -4
@@ -37,29 +37,41 @@ class Shard {
37
37
  heartbeatInterval;
38
38
  client;
39
39
  ws;
40
- sessionID;
40
+ sessionId;
41
41
  resumeGatewayURL;
42
+ sequence;
42
43
  constructor(id, client) {
43
44
  this.id = id;
44
45
  this.heartbeatInterval = null;
45
46
  this.client = client;
46
47
  this.ws = new ws_1.default("wss://gateway.discord.gg/?v=10&encoding=json", client.ws);
47
- this.sessionID = null;
48
+ this.sessionId = null;
48
49
  this.resumeGatewayURL = null;
50
+ this.sequence = null;
49
51
  }
50
52
  /** https://discord.com/developers/docs/topics/gateway#connections */
51
- connect() {
52
- this.ws.on("open", () => this.onWebSocketOpen());
53
+ connect(reconnect) {
54
+ this.ws.on("open", () => this.onWebSocketOpen(reconnect));
53
55
  this.ws.on("message", (data) => this.onWebSocketMessage(data));
54
56
  this.ws.on("error", (err) => this.onWebSocketError(err));
55
57
  this.ws.on("close", (code, reason) => this.onWebSocketClose(code, reason));
56
58
  }
57
- /** https://discord.com/developers/docs/topics/gateway#connections */
59
+ /** https://discord.com/developers/docs/events/gateway#initiating-a-disconnect */
58
60
  disconnect() {
59
61
  if (this.heartbeatInterval) {
60
62
  clearInterval(this.heartbeatInterval);
61
63
  this.heartbeatInterval = null;
62
64
  }
65
+ this.ws.close(1000, "Session Invalidated - Disconnect");
66
+ }
67
+ reconnect() {
68
+ if (this.resumeGatewayURL !== null &&
69
+ this.sessionId !== null &&
70
+ this.sequence !== null) {
71
+ this.ws.close(1000, "Resume Attempt - Reconnect");
72
+ this.ws = new ws_1.default(this.resumeGatewayURL, this.client.ws);
73
+ this.connect(true);
74
+ }
63
75
  }
64
76
  /** https://discord.com/developers/docs/topics/gateway-events#heartbeat */
65
77
  heartbeat(lastSequence) {
@@ -88,12 +100,13 @@ class Shard {
88
100
  }));
89
101
  }
90
102
  onDispatch(packet) {
103
+ this.sequence = packet.s;
91
104
  this.client.emit("dispatch", packet, this.id);
92
105
  switch (packet.t) {
93
106
  case constants_1.GatewayEvents.Ready:
94
107
  {
95
- this.sessionID = packet.d.session_id;
96
- this.resumeGatewayURL = packet.d.resume_gateway_url;
108
+ this.sessionId = packet.d.session_id;
109
+ this.resumeGatewayURL = `${packet.d.resume_gateway_url}?v=10&encoding=json`;
97
110
  this.client.user = transformers_1.Users.userFromRaw(packet.d.user);
98
111
  this.client.application = packet.d.application;
99
112
  this.client.emit("ready");
@@ -102,6 +115,20 @@ class Shard {
102
115
  case constants_1.GatewayEvents.Resumed:
103
116
  this.client.emit("resumed");
104
117
  break;
118
+ case constants_1.GatewayEvents.RateLimited:
119
+ switch (packet.d.opcode) {
120
+ case constants_1.GatewayOPCodes.RequestGuildMembers: {
121
+ this.client.emit("rateLimited", {
122
+ opcode: constants_1.GatewayOPCodes.RequestGuildMembers,
123
+ retryAfter: packet.d.retry_after,
124
+ meta: {
125
+ guildId: packet.d.meta.guild_id,
126
+ nonce: packet.d.nonce,
127
+ },
128
+ });
129
+ }
130
+ }
131
+ break;
105
132
  case constants_1.GatewayEvents.ApplicationCommandPermissionsUpdate:
106
133
  this.client.emit("applicationCommandPermissionsUpdate", transformers_1.Guilds.guildApplicationCommandPermissionsFromRaw(packet.d));
107
134
  break;
@@ -116,21 +143,21 @@ class Shard {
116
143
  break;
117
144
  case constants_1.GatewayEvents.AutoModerationActionExecution:
118
145
  this.client.emit("autoModerationActionExecution", {
119
- guildID: packet.d.guild_id,
146
+ guildId: packet.d.guild_id,
120
147
  action: {
121
148
  type: packet.d.action.type,
122
149
  metadata: {
123
- channelID: packet.d.action.metadata.channel_id,
150
+ channelId: packet.d.action.metadata.channel_id,
124
151
  durationSeconds: packet.d.action.metadata.duration_seconds,
125
152
  customMessage: packet.d.action.metadata.custom_message,
126
153
  },
127
154
  },
128
- ruleID: packet.d.rule_id,
155
+ ruleId: packet.d.rule_id,
129
156
  ruleTriggerType: packet.d.rule_trigger_type,
130
- userID: packet.d.user_id,
131
- channelID: packet.d.channel_id,
132
- messageID: packet.d.message_id,
133
- alertSystemMessageID: packet.d.alert_system_message_id,
157
+ userId: packet.d.user_id,
158
+ channelId: packet.d.channel_id,
159
+ messageId: packet.d.message_id,
160
+ alertSystemMessageId: packet.d.alert_system_message_id,
134
161
  content: packet.d.content,
135
162
  matchedKeyword: packet.d.matched_keyword,
136
163
  matchedContent: packet.d.matched_content,
@@ -147,8 +174,8 @@ class Shard {
147
174
  break;
148
175
  case constants_1.GatewayEvents.ChannelPinsUpdate:
149
176
  this.client.emit("channelPinsUpdate", {
150
- guildID: packet.d.guild_id,
151
- channelID: packet.d.channel_id,
177
+ guildId: packet.d.guild_id,
178
+ channelId: packet.d.channel_id,
152
179
  lastPinTimestamp: packet.d.last_pin_timestamp,
153
180
  });
154
181
  break;
@@ -163,8 +190,8 @@ class Shard {
163
190
  break;
164
191
  case constants_1.GatewayEvents.ThreadListSync:
165
192
  this.client.emit("threadListSync", {
166
- guildID: packet.d.guild_id,
167
- channelIDs: packet.d.channel_ids,
193
+ guildId: packet.d.guild_id,
194
+ channelIds: packet.d.channel_ids,
168
195
  threads: packet.d.threads.map((thread) => transformers_1.Channels.channelFromRaw(thread)),
169
196
  members: packet.d.members.map((threadMember) => transformers_1.Channels.threadMemberFromRaw(threadMember)),
170
197
  });
@@ -172,22 +199,22 @@ class Shard {
172
199
  case constants_1.GatewayEvents.ThreadMemberUpdate:
173
200
  this.client.emit("threadMemberUpdate", {
174
201
  id: packet.d.id,
175
- userID: packet.d.user_id,
202
+ userId: packet.d.user_id,
176
203
  joinTimestamp: packet.d.join_timestamp,
177
204
  flags: packet.d.flags,
178
205
  member: packet.d.member !== undefined
179
206
  ? transformers_1.Guilds.guildMemberFromRaw(packet.d.member)
180
207
  : undefined,
181
- guildID: packet.d.guild_id,
208
+ guildId: packet.d.guild_id,
182
209
  });
183
210
  break;
184
211
  case constants_1.GatewayEvents.ThreadMembersUpdate:
185
212
  this.client.emit("threadMembersUpdate", {
186
213
  id: packet.d.id,
187
- guildID: packet.d.guild_id,
214
+ guildId: packet.d.guild_id,
188
215
  memberCount: packet.d.member_count,
189
216
  addedMembers: packet.d.members.map((threadMember) => transformers_1.Channels.threadMemberFromRaw(threadMember)),
190
- removedMemberIDs: packet.d.removed_member_ids,
217
+ removedMemberIds: packet.d.removed_member_ids,
191
218
  });
192
219
  break;
193
220
  case constants_1.GatewayEvents.EntitlementCreate:
@@ -225,18 +252,18 @@ class Shard {
225
252
  case constants_1.GatewayEvents.GuildAuditLogEntryCreate:
226
253
  this.client.emit("guildAuditLogEntryCreate", {
227
254
  ...transformers_1.AuditLogs.auditLogEntryFromRaw(packet.d),
228
- guildID: packet.d.guild_id,
255
+ guildId: packet.d.guild_id,
229
256
  });
230
257
  break;
231
258
  case constants_1.GatewayEvents.GuildBanAdd:
232
259
  this.client.emit("guildBanAdd", {
233
- guildID: packet.d.guild_id,
260
+ guildId: packet.d.guild_id,
234
261
  user: transformers_1.Users.userFromRaw(packet.d.user),
235
262
  });
236
263
  break;
237
264
  case constants_1.GatewayEvents.GuildBanRemove:
238
265
  this.client.emit("guildBanRemove", {
239
- guildID: packet.d.guild_id,
266
+ guildId: packet.d.guild_id,
240
267
  user: transformers_1.Users.userFromRaw(packet.d.user),
241
268
  });
242
269
  break;
@@ -252,18 +279,18 @@ class Shard {
252
279
  case constants_1.GatewayEvents.GuildMemberAdd:
253
280
  this.client.emit("guildMemberAdd", {
254
281
  ...transformers_1.Guilds.guildMemberFromRaw(packet.d),
255
- guildID: packet.d.guild_id,
282
+ guildId: packet.d.guild_id,
256
283
  });
257
284
  break;
258
285
  case constants_1.GatewayEvents.GuildMemberRemove:
259
286
  this.client.emit("guildMemberRemove", {
260
- guildID: packet.d.guild_id,
287
+ guildId: packet.d.guild_id,
261
288
  user: transformers_1.Users.userFromRaw(packet.d.user),
262
289
  });
263
290
  break;
264
291
  case constants_1.GatewayEvents.GuildMemberUpdate:
265
292
  this.client.emit("guildMemberUpdate", {
266
- guildID: packet.d.guild_id,
293
+ guildId: packet.d.guild_id,
267
294
  roles: packet.d.roles,
268
295
  user: transformers_1.Users.userFromRaw(packet.d.user),
269
296
  nick: packet.d.nick,
@@ -279,14 +306,14 @@ class Shard {
279
306
  avatarDecorationData: packet.d.avatar_decoration_data !== undefined
280
307
  ? {
281
308
  asset: packet.d.asset,
282
- skuID: packet.d.sku_id,
309
+ skuId: packet.d.sku_id,
283
310
  }
284
311
  : undefined,
285
312
  });
286
313
  break;
287
314
  case constants_1.GatewayEvents.GuildMembersChunk:
288
315
  this.client.emit("guildMembersChunk", {
289
- guildID: packet.d.guild_id,
316
+ guildId: packet.d.guild_id,
290
317
  members: packet.d.members.map((guildMember) => transformers_1.Guilds.guildMemberFromRaw(guildMember)),
291
318
  chunkIndex: packet.d.chunk_index,
292
319
  chunkCount: packet.d.chunk_count,
@@ -327,8 +354,8 @@ class Shard {
327
354
  break;
328
355
  case constants_1.GatewayEvents.GuildSoundboardSoundDelete:
329
356
  this.client.emit("guildSoundboardSoundDelete", {
330
- soundID: packet.d.sound_id,
331
- guildID: packet.d.guild_id,
357
+ soundId: packet.d.sound_id,
358
+ guildId: packet.d.guild_id,
332
359
  });
333
360
  break;
334
361
  case constants_1.GatewayEvents.GuildSoundboardSoundsUpdate:
@@ -340,20 +367,20 @@ class Shard {
340
367
  case constants_1.GatewayEvents.IntegrationCreate:
341
368
  this.client.emit("integrationCreate", {
342
369
  ...transformers_1.Guilds.integrationFromRaw(packet.d),
343
- guildID: packet.d.guild_id,
370
+ guildId: packet.d.guild_id,
344
371
  });
345
372
  break;
346
373
  case constants_1.GatewayEvents.IntegrationUpdate:
347
374
  this.client.emit("integrationUpdate", {
348
375
  ...transformers_1.Guilds.integrationFromRaw(packet.d),
349
- guildID: packet.d.guild_id,
376
+ guildId: packet.d.guild_id,
350
377
  });
351
378
  break;
352
379
  case constants_1.GatewayEvents.IntegrationDelete:
353
380
  this.client.emit("integrationDelete", {
354
381
  id: packet.d.id,
355
- guildID: packet.d.guild_id,
356
- applicationID: packet.d.application_id,
382
+ guildId: packet.d.guild_id,
383
+ applicationId: packet.d.application_id,
357
384
  });
358
385
  break;
359
386
  case constants_1.GatewayEvents.InteractionCreate:
@@ -361,10 +388,10 @@ class Shard {
361
388
  break;
362
389
  case constants_1.GatewayEvents.InviteCreate:
363
390
  this.client.emit("inviteCreate", {
364
- channelID: packet.d.channel_id,
391
+ channelId: packet.d.channel_id,
365
392
  code: packet.d.code,
366
393
  createdAt: packet.d.created_at,
367
- guildID: packet.d.guild_id,
394
+ guildId: packet.d.guild_id,
368
395
  inviter: packet.d.inviter !== undefined
369
396
  ? transformers_1.Users.userFromRaw(packet.d.inviter)
370
397
  : undefined,
@@ -379,19 +406,20 @@ class Shard {
379
406
  : undefined,
380
407
  temporary: packet.d.temporary,
381
408
  uses: packet.d.uses,
409
+ expiresAt: packet.d.expires_at,
382
410
  });
383
411
  break;
384
412
  case constants_1.GatewayEvents.InviteDelete:
385
413
  this.client.emit("inviteDelete", {
386
- channelID: packet.d.channel_id,
387
- guildID: packet.d.guild_id,
414
+ channelId: packet.d.channel_id,
415
+ guildId: packet.d.guild_id,
388
416
  code: packet.d.code,
389
417
  });
390
418
  break;
391
419
  case constants_1.GatewayEvents.MessageCreate:
392
420
  this.client.emit("messageCreate", {
393
421
  ...transformers_1.Messages.messageFromRaw(packet.d),
394
- guildID: packet.d.guild_id,
422
+ guildId: packet.d.guild_id,
395
423
  member: packet.d.member !== undefined
396
424
  ? transformers_1.Guilds.guildMemberFromRaw(packet.d.member)
397
425
  : undefined,
@@ -404,28 +432,28 @@ class Shard {
404
432
  case constants_1.GatewayEvents.MessageDelete:
405
433
  this.client.emit("messageDelete", {
406
434
  id: packet.d.id,
407
- channelID: packet.d.channel_id,
408
- guildID: packet.d.guild_id,
435
+ channelId: packet.d.channel_id,
436
+ guildId: packet.d.guild_id,
409
437
  });
410
438
  break;
411
439
  case constants_1.GatewayEvents.MessageDeleteBulk:
412
440
  this.client.emit("messageDeleteBulk", {
413
441
  ids: packet.d.ids,
414
- channelID: packet.d.channel_id,
415
- guildID: packet.d.guild_id,
442
+ channelId: packet.d.channel_id,
443
+ guildId: packet.d.guild_id,
416
444
  });
417
445
  break;
418
446
  case constants_1.GatewayEvents.MessageReactionAdd:
419
447
  this.client.emit("messageReactionAdd", {
420
- userID: packet.d.user_id,
421
- channelID: packet.d.user_id,
422
- messageID: packet.d.user_id,
423
- guildID: packet.d.user_id,
448
+ userId: packet.d.user_id,
449
+ channelId: packet.d.user_id,
450
+ messageId: packet.d.user_id,
451
+ guildId: packet.d.user_id,
424
452
  member: packet.d.member !== undefined
425
453
  ? transformers_1.Guilds.guildMemberFromRaw(packet.d.member)
426
454
  : undefined,
427
455
  emoji: transformers_1.Emojis.emojiFromRaw(packet.d.emoji),
428
- messageAuthorID: packet.d.message_author_id,
456
+ messageAuthorId: packet.d.message_author_id,
429
457
  burst: packet.d.burst,
430
458
  burstColors: packet.d.burst_colors,
431
459
  type: packet.d.type,
@@ -433,10 +461,10 @@ class Shard {
433
461
  break;
434
462
  case constants_1.GatewayEvents.MessageReactionRemove:
435
463
  this.client.emit("messageReactionRemove", {
436
- userID: packet.d.user_id,
437
- channelID: packet.d.user_id,
438
- messageID: packet.d.user_id,
439
- guildID: packet.d.user_id,
464
+ userId: packet.d.user_id,
465
+ channelId: packet.d.user_id,
466
+ messageId: packet.d.user_id,
467
+ guildId: packet.d.user_id,
440
468
  emoji: transformers_1.Emojis.emojiFromRaw(packet.d.emoji),
441
469
  burst: packet.d.burst,
442
470
  type: packet.d.type,
@@ -444,16 +472,16 @@ class Shard {
444
472
  break;
445
473
  case constants_1.GatewayEvents.MessageReactionRemoveAll:
446
474
  this.client.emit("messageReactionRemoveAll", {
447
- channelID: packet.d.channel_id,
448
- messageID: packet.d.message_id,
449
- guildID: packet.d.guild_id,
475
+ channelId: packet.d.channel_id,
476
+ messageId: packet.d.message_id,
477
+ guildId: packet.d.guild_id,
450
478
  });
451
479
  break;
452
480
  case constants_1.GatewayEvents.MessageReactionRemoveEmoji:
453
481
  this.client.emit("messageReactionRemoveEmoji", {
454
- channelID: packet.d.channel_id,
455
- guildID: packet.d.guild_id,
456
- messageID: packet.d.message_id,
482
+ channelId: packet.d.channel_id,
483
+ guildId: packet.d.guild_id,
484
+ messageId: packet.d.message_id,
457
485
  emoji: transformers_1.Emojis.emojiFromRaw(packet.d.emoji),
458
486
  });
459
487
  break;
@@ -471,9 +499,9 @@ class Shard {
471
499
  break;
472
500
  case constants_1.GatewayEvents.TypingStart:
473
501
  this.client.emit("typingStart", {
474
- channelID: packet.d.channel_id,
475
- guildID: packet.d.guild_id,
476
- userID: packet.d.user_id,
502
+ channelId: packet.d.channel_id,
503
+ guildId: packet.d.guild_id,
504
+ userId: packet.d.user_id,
477
505
  timestamp: packet.d.timestamp,
478
506
  member: packet.d.member !== undefined
479
507
  ? transformers_1.Guilds.guildMemberFromRaw(packet.d.member)
@@ -485,15 +513,15 @@ class Shard {
485
513
  break;
486
514
  case constants_1.GatewayEvents.VoiceChannelEffectSend:
487
515
  this.client.emit("voiceChannelEffectSend", {
488
- channelID: packet.d.channel_id,
489
- guildID: packet.d.guild_id,
490
- userID: packet.d.user_id,
516
+ channelId: packet.d.channel_id,
517
+ guildId: packet.d.guild_id,
518
+ userId: packet.d.user_id,
491
519
  emoji: packet.d.emoji !== null
492
520
  ? transformers_1.Emojis.emojiFromRaw(packet.d.emoji)
493
521
  : null,
494
522
  animationType: packet.d.animation_type,
495
- animationID: packet.d.animation_id,
496
- soundID: packet.d.sound_id,
523
+ animationId: packet.d.animation_id,
524
+ soundId: packet.d.sound_id,
497
525
  soundVolume: packet.d.sound_volume,
498
526
  });
499
527
  break;
@@ -504,7 +532,7 @@ class Shard {
504
532
  {
505
533
  this.client.emit("voiceServerUpdate", {
506
534
  token: packet.d.token,
507
- guildID: packet.d.guild_id,
535
+ guildId: packet.d.guild_id,
508
536
  endpoint: packet.d.endpoint,
509
537
  });
510
538
  }
@@ -523,54 +551,63 @@ class Shard {
523
551
  break;
524
552
  case constants_1.GatewayEvents.MessagePollVoteAdd:
525
553
  this.client.emit("messagePollVoteAdd", {
526
- userID: packet.d.user_id,
527
- channelID: packet.d.channel_id,
528
- messageID: packet.d.message_id,
529
- guildID: packet.d.guild_id,
530
- answerID: packet.d.answer_id,
554
+ userId: packet.d.user_id,
555
+ channelId: packet.d.channel_id,
556
+ messageId: packet.d.message_id,
557
+ guildId: packet.d.guild_id,
558
+ answerId: packet.d.answer_id,
531
559
  });
532
560
  break;
533
561
  case constants_1.GatewayEvents.MessagePollVoteRemove:
534
562
  this.client.emit("messagePollVoteRemove", {
535
- userID: packet.d.user_id,
536
- channelID: packet.d.channel_id,
537
- messageID: packet.d.message_id,
538
- guildID: packet.d.guild_id,
539
- answerID: packet.d.answer_id,
563
+ userId: packet.d.user_id,
564
+ channelId: packet.d.channel_id,
565
+ messageId: packet.d.message_id,
566
+ guildId: packet.d.guild_id,
567
+ answerId: packet.d.answer_id,
540
568
  });
541
569
  break;
542
570
  }
543
571
  }
544
- onWebSocketOpen() {
545
- this.identify({
546
- token: this.client.token,
547
- properties: {
548
- os: this.client.properties?.os ?? process.platform,
549
- browser: this.client.properties?.browser ?? pkg.name,
550
- device: this.client.properties?.device ?? pkg.name,
551
- },
552
- compress: this.client.compress,
553
- largeThreshold: this.client.largeThreshold,
554
- shard: [this.id, this.client.shardsCount],
555
- presence: this.client.presence !== undefined
556
- ? {
557
- since: this.client.presence.status === constants_1.StatusTypes.Idle
558
- ? Date.now()
559
- : null,
560
- activities: this.client.presence.activities?.map((activity) => ({
561
- name: activity.type === constants_1.ActivityType.Custom
562
- ? "Custom Status"
563
- : activity.name,
564
- type: activity.type,
565
- url: activity.url,
566
- state: activity.state,
567
- })),
568
- status: this.client.presence.status ?? constants_1.StatusTypes.Online,
569
- afk: !!this.client.presence.afk,
570
- }
571
- : undefined,
572
- intents: this.client.intents,
573
- });
572
+ onWebSocketOpen(reconnect) {
573
+ if (reconnect) {
574
+ this.resume({
575
+ token: this.client.token,
576
+ sessionId: this.sessionId,
577
+ seq: this.sequence,
578
+ });
579
+ }
580
+ else {
581
+ this.identify({
582
+ token: this.client.token,
583
+ properties: {
584
+ os: this.client.properties?.os ?? process.platform,
585
+ browser: this.client.properties?.browser ?? pkg.name,
586
+ device: this.client.properties?.device ?? pkg.name,
587
+ },
588
+ compress: this.client.compress,
589
+ largeThreshold: this.client.largeThreshold,
590
+ shard: [this.id, this.client.shardsCount],
591
+ presence: this.client.presence !== undefined
592
+ ? {
593
+ since: this.client.presence.status === constants_1.StatusTypes.Idle
594
+ ? Date.now()
595
+ : null,
596
+ activities: this.client.presence.activities?.map((activity) => ({
597
+ name: activity.type === constants_1.ActivityType.Custom
598
+ ? "Custom Status"
599
+ : activity.name,
600
+ type: activity.type,
601
+ url: activity.url,
602
+ state: activity.state,
603
+ })),
604
+ status: this.client.presence.status ?? constants_1.StatusTypes.Online,
605
+ afk: !!this.client.presence.afk,
606
+ }
607
+ : undefined,
608
+ intents: this.client.intents,
609
+ });
610
+ }
574
611
  }
575
612
  onWebSocketMessage(data) {
576
613
  const packet = JSON.parse(data.toString());
@@ -579,10 +616,23 @@ class Shard {
579
616
  this.onDispatch(packet);
580
617
  break;
581
618
  case constants_1.GatewayOPCodes.Reconnect:
582
- this.client.emit("reconnect");
619
+ {
620
+ this.client.emit("reconnect");
621
+ this.reconnect();
622
+ }
583
623
  break;
584
624
  case constants_1.GatewayOPCodes.InvalidSession:
585
- this.client.emit("invalidSession");
625
+ {
626
+ this.client.emit("invalidSession");
627
+ if (packet.d) {
628
+ this.reconnect();
629
+ }
630
+ else {
631
+ this.ws.close(1000, "Invalid Session - Identify required");
632
+ this.ws = new ws_1.default("wss://gateway.discord.gg/?v=10&encoding=json", this.client.ws);
633
+ this.connect(false);
634
+ }
635
+ }
586
636
  break;
587
637
  case constants_1.GatewayOPCodes.Hello:
588
638
  {
@@ -599,20 +649,33 @@ class Shard {
599
649
  throw err;
600
650
  }
601
651
  onWebSocketClose(code, reason) {
602
- if (code === 1000)
603
- return;
604
- throw new utils_1.GatewayError(code, reason.toString());
652
+ switch (code) {
653
+ case 1000:
654
+ break;
655
+ case constants_1.GatewayCloseEventCodes.UnknownError:
656
+ case constants_1.GatewayCloseEventCodes.UnknownOPCode:
657
+ case constants_1.GatewayCloseEventCodes.DecodeError:
658
+ case constants_1.GatewayCloseEventCodes.NotAuthenticated:
659
+ case constants_1.GatewayCloseEventCodes.AlreadyAuthenticated:
660
+ case constants_1.GatewayCloseEventCodes.InvalidSequence:
661
+ case constants_1.GatewayCloseEventCodes.RateLimited:
662
+ case constants_1.GatewayCloseEventCodes.SessionTimedOut:
663
+ this.reconnect();
664
+ break;
665
+ default:
666
+ throw new utils_1.GatewayError(code, reason.toString());
667
+ }
605
668
  }
606
669
  /** https://discord.com/developers/docs/topics/gateway-events#request-guild-members */
607
670
  requestGuildMembers(options) {
608
671
  this.ws.send(JSON.stringify({
609
672
  op: constants_1.GatewayOPCodes.RequestGuildMembers,
610
673
  d: {
611
- guild_id: options.guildID,
674
+ guild_id: options.guildId,
612
675
  query: options.query,
613
676
  limit: options.limit,
614
677
  presences: options.presences,
615
- user_ids: options.userIDs,
678
+ user_ids: options.userIds,
616
679
  nonce: options.nonce,
617
680
  },
618
681
  }));
@@ -622,7 +685,7 @@ class Shard {
622
685
  this.ws.send(JSON.stringify({
623
686
  op: constants_1.GatewayOPCodes.RequestSoundboardSounds,
624
687
  d: {
625
- guild_ids: options.guildIDs,
688
+ guild_ids: options.guildIds,
626
689
  },
627
690
  }));
628
691
  }
@@ -632,7 +695,7 @@ class Shard {
632
695
  op: constants_1.GatewayOPCodes.Resume,
633
696
  d: {
634
697
  token: options.token,
635
- session_id: options.sessionID,
698
+ session_id: options.sessionId,
636
699
  seq: options.seq,
637
700
  },
638
701
  }));
@@ -661,8 +724,8 @@ class Shard {
661
724
  this.ws.send(JSON.stringify({
662
725
  op: constants_1.GatewayOPCodes.VoiceStateUpdate,
663
726
  d: {
664
- guild_id: options.guildID,
665
- channel_id: options.channelID,
727
+ guild_id: options.guildId,
728
+ channel_id: options.channelId,
666
729
  self_mute: options.selfMute,
667
730
  self_deaf: options.selfDeaf,
668
731
  },
@@ -8,6 +8,7 @@ export * from "./types/audit-log";
8
8
  export * from "./types/auto-moderation";
9
9
  export * from "./types/channel";
10
10
  export * from "./types/common";
11
+ export * from "./types/components";
11
12
  export * from "./types/emoji";
12
13
  export * from "./types/entitlements";
13
14
  export * from "./types/gateway-events";
@@ -16,12 +17,15 @@ export * from "./types/guild-template";
16
17
  export * from "./types/guild";
17
18
  export * from "./types/interaction";
18
19
  export * from "./types/invite";
19
- export * from "./types/message-components";
20
+ export * from "./types/lobby";
21
+ export * from "./types/message";
20
22
  export * from "./types/poll";
21
23
  export * from "./types/role";
22
24
  export * from "./types/sku";
25
+ export * from "./types/soundboard";
23
26
  export * from "./types/stage-instance";
24
27
  export * from "./types/sticker";
28
+ export * from "./types/subscription";
25
29
  export * from "./types/team";
26
30
  export * from "./types/user";
27
31
  export * from "./types/voice";
package/dist/lib/index.js CHANGED
@@ -24,6 +24,7 @@ __exportStar(require("./types/audit-log"), exports);
24
24
  __exportStar(require("./types/auto-moderation"), exports);
25
25
  __exportStar(require("./types/channel"), exports);
26
26
  __exportStar(require("./types/common"), exports);
27
+ __exportStar(require("./types/components"), exports);
27
28
  __exportStar(require("./types/emoji"), exports);
28
29
  __exportStar(require("./types/entitlements"), exports);
29
30
  __exportStar(require("./types/gateway-events"), exports);
@@ -32,12 +33,15 @@ __exportStar(require("./types/guild-template"), exports);
32
33
  __exportStar(require("./types/guild"), exports);
33
34
  __exportStar(require("./types/interaction"), exports);
34
35
  __exportStar(require("./types/invite"), exports);
35
- __exportStar(require("./types/message-components"), exports);
36
+ __exportStar(require("./types/lobby"), exports);
37
+ __exportStar(require("./types/message"), exports);
36
38
  __exportStar(require("./types/poll"), exports);
37
39
  __exportStar(require("./types/role"), exports);
38
40
  __exportStar(require("./types/sku"), exports);
41
+ __exportStar(require("./types/soundboard"), exports);
39
42
  __exportStar(require("./types/stage-instance"), exports);
40
43
  __exportStar(require("./types/sticker"), exports);
44
+ __exportStar(require("./types/subscription"), exports);
41
45
  __exportStar(require("./types/team"), exports);
42
46
  __exportStar(require("./types/user"), exports);
43
47
  __exportStar(require("./types/voice"), exports);