disgroove 2.2.7 → 3.0.0-dev.a714eda

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 (69) hide show
  1. package/dist/lib/Client.d.ts +252 -251
  2. package/dist/lib/Client.js +472 -471
  3. package/dist/lib/gateway/Shard.d.ts +5 -3
  4. package/dist/lib/gateway/Shard.js +169 -121
  5. package/dist/lib/index.d.ts +4 -0
  6. package/dist/lib/index.js +4 -0
  7. package/dist/lib/rest/Endpoints.d.ts +94 -94
  8. package/dist/lib/rest/Endpoints.js +104 -104
  9. package/dist/lib/transformers/ApplicationCommands.js +4 -4
  10. package/dist/lib/transformers/Applications.js +14 -6
  11. package/dist/lib/transformers/AuditLogs.js +10 -10
  12. package/dist/lib/transformers/AutoModeration.js +6 -6
  13. package/dist/lib/transformers/Channels.js +16 -16
  14. package/dist/lib/transformers/Components.js +16 -16
  15. package/dist/lib/transformers/Entitlements.d.ts +2 -2
  16. package/dist/lib/transformers/Entitlements.js +16 -16
  17. package/dist/lib/transformers/GuildScheduledEvents.js +8 -8
  18. package/dist/lib/transformers/GuildTemplates.js +4 -4
  19. package/dist/lib/transformers/Guilds.js +28 -28
  20. package/dist/lib/transformers/Interactions.js +44 -44
  21. package/dist/lib/transformers/Lobbies.js +2 -2
  22. package/dist/lib/transformers/Messages.js +16 -16
  23. package/dist/lib/transformers/Polls.js +2 -2
  24. package/dist/lib/transformers/Presences.js +6 -6
  25. package/dist/lib/transformers/Roles.js +6 -6
  26. package/dist/lib/transformers/SKUs.js +2 -2
  27. package/dist/lib/transformers/Soundboards.js +6 -6
  28. package/dist/lib/transformers/StageInstances.js +6 -6
  29. package/dist/lib/transformers/Stickers.js +3 -3
  30. package/dist/lib/transformers/Subscriptions.js +8 -8
  31. package/dist/lib/transformers/Teams.js +4 -4
  32. package/dist/lib/transformers/Users.js +6 -6
  33. package/dist/lib/transformers/Voice.js +8 -8
  34. package/dist/lib/transformers/Webhooks.js +6 -6
  35. package/dist/lib/types/application-command.d.ts +9 -4
  36. package/dist/lib/types/application-role-connection-metadata.d.ts +1 -0
  37. package/dist/lib/types/application.d.ts +14 -9
  38. package/dist/lib/types/audit-log.d.ts +9 -5
  39. package/dist/lib/types/auto-moderation.d.ts +7 -3
  40. package/dist/lib/types/channel.d.ts +17 -23
  41. package/dist/lib/types/common.d.ts +2 -0
  42. package/dist/lib/types/components.d.ts +43 -15
  43. package/dist/lib/types/emoji.d.ts +1 -0
  44. package/dist/lib/types/entitlements.d.ts +5 -4
  45. package/dist/lib/types/gateway-events.d.ts +181 -130
  46. package/dist/lib/types/guild-scheduled-event.d.ts +10 -5
  47. package/dist/lib/types/guild-template.d.ts +3 -2
  48. package/dist/lib/types/guild.d.ts +33 -17
  49. package/dist/lib/types/interaction.d.ts +23 -10
  50. package/dist/lib/types/invite.d.ts +3 -0
  51. package/dist/lib/types/lobby.d.ts +3 -1
  52. package/dist/lib/types/message.d.ts +27 -13
  53. package/dist/lib/types/poll.d.ts +7 -1
  54. package/dist/lib/types/role.d.ts +6 -3
  55. package/dist/lib/types/sku.d.ts +2 -1
  56. package/dist/lib/types/soundboard.d.ts +4 -3
  57. package/dist/lib/types/stage-instance.d.ts +4 -3
  58. package/dist/lib/types/sticker.d.ts +8 -5
  59. package/dist/lib/types/subscription.d.ts +6 -5
  60. package/dist/lib/types/team.d.ts +4 -2
  61. package/dist/lib/types/user.d.ts +10 -3
  62. package/dist/lib/types/voice.d.ts +6 -4
  63. package/dist/lib/types/webhook.d.ts +4 -3
  64. package/dist/lib/utils/CDN.d.ts +22 -22
  65. package/dist/lib/utils/CDN.js +22 -22
  66. package/dist/lib/utils/formatters.d.ts +6 -6
  67. package/dist/lib/utils/formatters.js +18 -18
  68. package/dist/package.json +1 -1
  69. package/package.json +1 -1
@@ -6,13 +6,15 @@ export declare class Shard {
6
6
  private heartbeatInterval;
7
7
  client: Client;
8
8
  ws: WebSocket;
9
- sessionID: string | null;
9
+ sessionId: string | null;
10
10
  resumeGatewayURL: string | null;
11
+ sequence: number | null;
11
12
  constructor(id: number, client: Client);
12
13
  /** https://discord.com/developers/docs/topics/gateway#connections */
13
- connect(): void;
14
- /** https://discord.com/developers/docs/topics/gateway#connections */
14
+ connect(reconnect: boolean): void;
15
+ /** https://discord.com/developers/docs/events/gateway#initiating-a-disconnect */
15
16
  disconnect(): void;
17
+ reconnect(): void;
16
18
  /** https://discord.com/developers/docs/topics/gateway-events#heartbeat */
17
19
  heartbeat(lastSequence: number | null): void;
18
20
  /** https://discord.com/developers/docs/topics/gateway-events#identify */
@@ -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");
@@ -109,7 +122,7 @@ class Shard {
109
122
  opcode: constants_1.GatewayOPCodes.RequestGuildMembers,
110
123
  retryAfter: packet.d.retry_after,
111
124
  meta: {
112
- guildID: packet.d.meta.guild_id,
125
+ guildId: packet.d.meta.guild_id,
113
126
  nonce: packet.d.nonce,
114
127
  },
115
128
  });
@@ -130,21 +143,21 @@ class Shard {
130
143
  break;
131
144
  case constants_1.GatewayEvents.AutoModerationActionExecution:
132
145
  this.client.emit("autoModerationActionExecution", {
133
- guildID: packet.d.guild_id,
146
+ guildId: packet.d.guild_id,
134
147
  action: {
135
148
  type: packet.d.action.type,
136
149
  metadata: {
137
- channelID: packet.d.action.metadata.channel_id,
150
+ channelId: packet.d.action.metadata.channel_id,
138
151
  durationSeconds: packet.d.action.metadata.duration_seconds,
139
152
  customMessage: packet.d.action.metadata.custom_message,
140
153
  },
141
154
  },
142
- ruleID: packet.d.rule_id,
155
+ ruleId: packet.d.rule_id,
143
156
  ruleTriggerType: packet.d.rule_trigger_type,
144
- userID: packet.d.user_id,
145
- channelID: packet.d.channel_id,
146
- messageID: packet.d.message_id,
147
- 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,
148
161
  content: packet.d.content,
149
162
  matchedKeyword: packet.d.matched_keyword,
150
163
  matchedContent: packet.d.matched_content,
@@ -161,8 +174,8 @@ class Shard {
161
174
  break;
162
175
  case constants_1.GatewayEvents.ChannelPinsUpdate:
163
176
  this.client.emit("channelPinsUpdate", {
164
- guildID: packet.d.guild_id,
165
- channelID: packet.d.channel_id,
177
+ guildId: packet.d.guild_id,
178
+ channelId: packet.d.channel_id,
166
179
  lastPinTimestamp: packet.d.last_pin_timestamp,
167
180
  });
168
181
  break;
@@ -177,8 +190,8 @@ class Shard {
177
190
  break;
178
191
  case constants_1.GatewayEvents.ThreadListSync:
179
192
  this.client.emit("threadListSync", {
180
- guildID: packet.d.guild_id,
181
- channelIDs: packet.d.channel_ids,
193
+ guildId: packet.d.guild_id,
194
+ channelIds: packet.d.channel_ids,
182
195
  threads: packet.d.threads.map((thread) => transformers_1.Channels.channelFromRaw(thread)),
183
196
  members: packet.d.members.map((threadMember) => transformers_1.Channels.threadMemberFromRaw(threadMember)),
184
197
  });
@@ -186,22 +199,22 @@ class Shard {
186
199
  case constants_1.GatewayEvents.ThreadMemberUpdate:
187
200
  this.client.emit("threadMemberUpdate", {
188
201
  id: packet.d.id,
189
- userID: packet.d.user_id,
202
+ userId: packet.d.user_id,
190
203
  joinTimestamp: packet.d.join_timestamp,
191
204
  flags: packet.d.flags,
192
205
  member: packet.d.member !== undefined
193
206
  ? transformers_1.Guilds.guildMemberFromRaw(packet.d.member)
194
207
  : undefined,
195
- guildID: packet.d.guild_id,
208
+ guildId: packet.d.guild_id,
196
209
  });
197
210
  break;
198
211
  case constants_1.GatewayEvents.ThreadMembersUpdate:
199
212
  this.client.emit("threadMembersUpdate", {
200
213
  id: packet.d.id,
201
- guildID: packet.d.guild_id,
214
+ guildId: packet.d.guild_id,
202
215
  memberCount: packet.d.member_count,
203
216
  addedMembers: packet.d.members.map((threadMember) => transformers_1.Channels.threadMemberFromRaw(threadMember)),
204
- removedMemberIDs: packet.d.removed_member_ids,
217
+ removedMemberIds: packet.d.removed_member_ids,
205
218
  });
206
219
  break;
207
220
  case constants_1.GatewayEvents.EntitlementCreate:
@@ -239,18 +252,18 @@ class Shard {
239
252
  case constants_1.GatewayEvents.GuildAuditLogEntryCreate:
240
253
  this.client.emit("guildAuditLogEntryCreate", {
241
254
  ...transformers_1.AuditLogs.auditLogEntryFromRaw(packet.d),
242
- guildID: packet.d.guild_id,
255
+ guildId: packet.d.guild_id,
243
256
  });
244
257
  break;
245
258
  case constants_1.GatewayEvents.GuildBanAdd:
246
259
  this.client.emit("guildBanAdd", {
247
- guildID: packet.d.guild_id,
260
+ guildId: packet.d.guild_id,
248
261
  user: transformers_1.Users.userFromRaw(packet.d.user),
249
262
  });
250
263
  break;
251
264
  case constants_1.GatewayEvents.GuildBanRemove:
252
265
  this.client.emit("guildBanRemove", {
253
- guildID: packet.d.guild_id,
266
+ guildId: packet.d.guild_id,
254
267
  user: transformers_1.Users.userFromRaw(packet.d.user),
255
268
  });
256
269
  break;
@@ -266,18 +279,18 @@ class Shard {
266
279
  case constants_1.GatewayEvents.GuildMemberAdd:
267
280
  this.client.emit("guildMemberAdd", {
268
281
  ...transformers_1.Guilds.guildMemberFromRaw(packet.d),
269
- guildID: packet.d.guild_id,
282
+ guildId: packet.d.guild_id,
270
283
  });
271
284
  break;
272
285
  case constants_1.GatewayEvents.GuildMemberRemove:
273
286
  this.client.emit("guildMemberRemove", {
274
- guildID: packet.d.guild_id,
287
+ guildId: packet.d.guild_id,
275
288
  user: transformers_1.Users.userFromRaw(packet.d.user),
276
289
  });
277
290
  break;
278
291
  case constants_1.GatewayEvents.GuildMemberUpdate:
279
292
  this.client.emit("guildMemberUpdate", {
280
- guildID: packet.d.guild_id,
293
+ guildId: packet.d.guild_id,
281
294
  roles: packet.d.roles,
282
295
  user: transformers_1.Users.userFromRaw(packet.d.user),
283
296
  nick: packet.d.nick,
@@ -293,14 +306,14 @@ class Shard {
293
306
  avatarDecorationData: packet.d.avatar_decoration_data !== undefined
294
307
  ? {
295
308
  asset: packet.d.asset,
296
- skuID: packet.d.sku_id,
309
+ skuId: packet.d.sku_id,
297
310
  }
298
311
  : undefined,
299
312
  });
300
313
  break;
301
314
  case constants_1.GatewayEvents.GuildMembersChunk:
302
315
  this.client.emit("guildMembersChunk", {
303
- guildID: packet.d.guild_id,
316
+ guildId: packet.d.guild_id,
304
317
  members: packet.d.members.map((guildMember) => transformers_1.Guilds.guildMemberFromRaw(guildMember)),
305
318
  chunkIndex: packet.d.chunk_index,
306
319
  chunkCount: packet.d.chunk_count,
@@ -341,8 +354,8 @@ class Shard {
341
354
  break;
342
355
  case constants_1.GatewayEvents.GuildSoundboardSoundDelete:
343
356
  this.client.emit("guildSoundboardSoundDelete", {
344
- soundID: packet.d.sound_id,
345
- guildID: packet.d.guild_id,
357
+ soundId: packet.d.sound_id,
358
+ guildId: packet.d.guild_id,
346
359
  });
347
360
  break;
348
361
  case constants_1.GatewayEvents.GuildSoundboardSoundsUpdate:
@@ -354,20 +367,20 @@ class Shard {
354
367
  case constants_1.GatewayEvents.IntegrationCreate:
355
368
  this.client.emit("integrationCreate", {
356
369
  ...transformers_1.Guilds.integrationFromRaw(packet.d),
357
- guildID: packet.d.guild_id,
370
+ guildId: packet.d.guild_id,
358
371
  });
359
372
  break;
360
373
  case constants_1.GatewayEvents.IntegrationUpdate:
361
374
  this.client.emit("integrationUpdate", {
362
375
  ...transformers_1.Guilds.integrationFromRaw(packet.d),
363
- guildID: packet.d.guild_id,
376
+ guildId: packet.d.guild_id,
364
377
  });
365
378
  break;
366
379
  case constants_1.GatewayEvents.IntegrationDelete:
367
380
  this.client.emit("integrationDelete", {
368
381
  id: packet.d.id,
369
- guildID: packet.d.guild_id,
370
- applicationID: packet.d.application_id,
382
+ guildId: packet.d.guild_id,
383
+ applicationId: packet.d.application_id,
371
384
  });
372
385
  break;
373
386
  case constants_1.GatewayEvents.InteractionCreate:
@@ -375,10 +388,10 @@ class Shard {
375
388
  break;
376
389
  case constants_1.GatewayEvents.InviteCreate:
377
390
  this.client.emit("inviteCreate", {
378
- channelID: packet.d.channel_id,
391
+ channelId: packet.d.channel_id,
379
392
  code: packet.d.code,
380
393
  createdAt: packet.d.created_at,
381
- guildID: packet.d.guild_id,
394
+ guildId: packet.d.guild_id,
382
395
  inviter: packet.d.inviter !== undefined
383
396
  ? transformers_1.Users.userFromRaw(packet.d.inviter)
384
397
  : undefined,
@@ -398,15 +411,15 @@ class Shard {
398
411
  break;
399
412
  case constants_1.GatewayEvents.InviteDelete:
400
413
  this.client.emit("inviteDelete", {
401
- channelID: packet.d.channel_id,
402
- guildID: packet.d.guild_id,
414
+ channelId: packet.d.channel_id,
415
+ guildId: packet.d.guild_id,
403
416
  code: packet.d.code,
404
417
  });
405
418
  break;
406
419
  case constants_1.GatewayEvents.MessageCreate:
407
420
  this.client.emit("messageCreate", {
408
421
  ...transformers_1.Messages.messageFromRaw(packet.d),
409
- guildID: packet.d.guild_id,
422
+ guildId: packet.d.guild_id,
410
423
  member: packet.d.member !== undefined
411
424
  ? transformers_1.Guilds.guildMemberFromRaw(packet.d.member)
412
425
  : undefined,
@@ -419,28 +432,28 @@ class Shard {
419
432
  case constants_1.GatewayEvents.MessageDelete:
420
433
  this.client.emit("messageDelete", {
421
434
  id: packet.d.id,
422
- channelID: packet.d.channel_id,
423
- guildID: packet.d.guild_id,
435
+ channelId: packet.d.channel_id,
436
+ guildId: packet.d.guild_id,
424
437
  });
425
438
  break;
426
439
  case constants_1.GatewayEvents.MessageDeleteBulk:
427
440
  this.client.emit("messageDeleteBulk", {
428
441
  ids: packet.d.ids,
429
- channelID: packet.d.channel_id,
430
- guildID: packet.d.guild_id,
442
+ channelId: packet.d.channel_id,
443
+ guildId: packet.d.guild_id,
431
444
  });
432
445
  break;
433
446
  case constants_1.GatewayEvents.MessageReactionAdd:
434
447
  this.client.emit("messageReactionAdd", {
435
- userID: packet.d.user_id,
436
- channelID: packet.d.user_id,
437
- messageID: packet.d.user_id,
438
- 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,
439
452
  member: packet.d.member !== undefined
440
453
  ? transformers_1.Guilds.guildMemberFromRaw(packet.d.member)
441
454
  : undefined,
442
455
  emoji: transformers_1.Emojis.emojiFromRaw(packet.d.emoji),
443
- messageAuthorID: packet.d.message_author_id,
456
+ messageAuthorId: packet.d.message_author_id,
444
457
  burst: packet.d.burst,
445
458
  burstColors: packet.d.burst_colors,
446
459
  type: packet.d.type,
@@ -448,10 +461,10 @@ class Shard {
448
461
  break;
449
462
  case constants_1.GatewayEvents.MessageReactionRemove:
450
463
  this.client.emit("messageReactionRemove", {
451
- userID: packet.d.user_id,
452
- channelID: packet.d.user_id,
453
- messageID: packet.d.user_id,
454
- 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,
455
468
  emoji: transformers_1.Emojis.emojiFromRaw(packet.d.emoji),
456
469
  burst: packet.d.burst,
457
470
  type: packet.d.type,
@@ -459,16 +472,16 @@ class Shard {
459
472
  break;
460
473
  case constants_1.GatewayEvents.MessageReactionRemoveAll:
461
474
  this.client.emit("messageReactionRemoveAll", {
462
- channelID: packet.d.channel_id,
463
- messageID: packet.d.message_id,
464
- guildID: packet.d.guild_id,
475
+ channelId: packet.d.channel_id,
476
+ messageId: packet.d.message_id,
477
+ guildId: packet.d.guild_id,
465
478
  });
466
479
  break;
467
480
  case constants_1.GatewayEvents.MessageReactionRemoveEmoji:
468
481
  this.client.emit("messageReactionRemoveEmoji", {
469
- channelID: packet.d.channel_id,
470
- guildID: packet.d.guild_id,
471
- messageID: packet.d.message_id,
482
+ channelId: packet.d.channel_id,
483
+ guildId: packet.d.guild_id,
484
+ messageId: packet.d.message_id,
472
485
  emoji: transformers_1.Emojis.emojiFromRaw(packet.d.emoji),
473
486
  });
474
487
  break;
@@ -486,9 +499,9 @@ class Shard {
486
499
  break;
487
500
  case constants_1.GatewayEvents.TypingStart:
488
501
  this.client.emit("typingStart", {
489
- channelID: packet.d.channel_id,
490
- guildID: packet.d.guild_id,
491
- userID: packet.d.user_id,
502
+ channelId: packet.d.channel_id,
503
+ guildId: packet.d.guild_id,
504
+ userId: packet.d.user_id,
492
505
  timestamp: packet.d.timestamp,
493
506
  member: packet.d.member !== undefined
494
507
  ? transformers_1.Guilds.guildMemberFromRaw(packet.d.member)
@@ -500,15 +513,15 @@ class Shard {
500
513
  break;
501
514
  case constants_1.GatewayEvents.VoiceChannelEffectSend:
502
515
  this.client.emit("voiceChannelEffectSend", {
503
- channelID: packet.d.channel_id,
504
- guildID: packet.d.guild_id,
505
- userID: packet.d.user_id,
516
+ channelId: packet.d.channel_id,
517
+ guildId: packet.d.guild_id,
518
+ userId: packet.d.user_id,
506
519
  emoji: packet.d.emoji !== null
507
520
  ? transformers_1.Emojis.emojiFromRaw(packet.d.emoji)
508
521
  : null,
509
522
  animationType: packet.d.animation_type,
510
- animationID: packet.d.animation_id,
511
- soundID: packet.d.sound_id,
523
+ animationId: packet.d.animation_id,
524
+ soundId: packet.d.sound_id,
512
525
  soundVolume: packet.d.sound_volume,
513
526
  });
514
527
  break;
@@ -519,7 +532,7 @@ class Shard {
519
532
  {
520
533
  this.client.emit("voiceServerUpdate", {
521
534
  token: packet.d.token,
522
- guildID: packet.d.guild_id,
535
+ guildId: packet.d.guild_id,
523
536
  endpoint: packet.d.endpoint,
524
537
  });
525
538
  }
@@ -538,54 +551,63 @@ class Shard {
538
551
  break;
539
552
  case constants_1.GatewayEvents.MessagePollVoteAdd:
540
553
  this.client.emit("messagePollVoteAdd", {
541
- userID: packet.d.user_id,
542
- channelID: packet.d.channel_id,
543
- messageID: packet.d.message_id,
544
- guildID: packet.d.guild_id,
545
- 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,
546
559
  });
547
560
  break;
548
561
  case constants_1.GatewayEvents.MessagePollVoteRemove:
549
562
  this.client.emit("messagePollVoteRemove", {
550
- userID: packet.d.user_id,
551
- channelID: packet.d.channel_id,
552
- messageID: packet.d.message_id,
553
- guildID: packet.d.guild_id,
554
- 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,
555
568
  });
556
569
  break;
557
570
  }
558
571
  }
559
- onWebSocketOpen() {
560
- this.identify({
561
- token: this.client.token,
562
- properties: {
563
- os: this.client.properties?.os ?? process.platform,
564
- browser: this.client.properties?.browser ?? pkg.name,
565
- device: this.client.properties?.device ?? pkg.name,
566
- },
567
- compress: this.client.compress,
568
- largeThreshold: this.client.largeThreshold,
569
- shard: [this.id, this.client.shardsCount],
570
- presence: this.client.presence !== undefined
571
- ? {
572
- since: this.client.presence.status === constants_1.StatusTypes.Idle
573
- ? Date.now()
574
- : null,
575
- activities: this.client.presence.activities?.map((activity) => ({
576
- name: activity.type === constants_1.ActivityType.Custom
577
- ? "Custom Status"
578
- : activity.name,
579
- type: activity.type,
580
- url: activity.url,
581
- state: activity.state,
582
- })),
583
- status: this.client.presence.status ?? constants_1.StatusTypes.Online,
584
- afk: !!this.client.presence.afk,
585
- }
586
- : undefined,
587
- intents: this.client.intents,
588
- });
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
+ }
589
611
  }
590
612
  onWebSocketMessage(data) {
591
613
  const packet = JSON.parse(data.toString());
@@ -594,10 +616,23 @@ class Shard {
594
616
  this.onDispatch(packet);
595
617
  break;
596
618
  case constants_1.GatewayOPCodes.Reconnect:
597
- this.client.emit("reconnect");
619
+ {
620
+ this.client.emit("reconnect");
621
+ this.reconnect();
622
+ }
598
623
  break;
599
624
  case constants_1.GatewayOPCodes.InvalidSession:
600
- 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
+ }
601
636
  break;
602
637
  case constants_1.GatewayOPCodes.Hello:
603
638
  {
@@ -614,20 +649,33 @@ class Shard {
614
649
  throw err;
615
650
  }
616
651
  onWebSocketClose(code, reason) {
617
- if (code === 1000)
618
- return;
619
- 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
+ }
620
668
  }
621
669
  /** https://discord.com/developers/docs/topics/gateway-events#request-guild-members */
622
670
  requestGuildMembers(options) {
623
671
  this.ws.send(JSON.stringify({
624
672
  op: constants_1.GatewayOPCodes.RequestGuildMembers,
625
673
  d: {
626
- guild_id: options.guildID,
674
+ guild_id: options.guildId,
627
675
  query: options.query,
628
676
  limit: options.limit,
629
677
  presences: options.presences,
630
- user_ids: options.userIDs,
678
+ user_ids: options.userIds,
631
679
  nonce: options.nonce,
632
680
  },
633
681
  }));
@@ -637,7 +685,7 @@ class Shard {
637
685
  this.ws.send(JSON.stringify({
638
686
  op: constants_1.GatewayOPCodes.RequestSoundboardSounds,
639
687
  d: {
640
- guild_ids: options.guildIDs,
688
+ guild_ids: options.guildIds,
641
689
  },
642
690
  }));
643
691
  }
@@ -647,7 +695,7 @@ class Shard {
647
695
  op: constants_1.GatewayOPCodes.Resume,
648
696
  d: {
649
697
  token: options.token,
650
- session_id: options.sessionID,
698
+ session_id: options.sessionId,
651
699
  seq: options.seq,
652
700
  },
653
701
  }));
@@ -676,8 +724,8 @@ class Shard {
676
724
  this.ws.send(JSON.stringify({
677
725
  op: constants_1.GatewayOPCodes.VoiceStateUpdate,
678
726
  d: {
679
- guild_id: options.guildID,
680
- channel_id: options.channelID,
727
+ guild_id: options.guildId,
728
+ channel_id: options.channelId,
681
729
  self_mute: options.selfMute,
682
730
  self_deaf: options.selfDeaf,
683
731
  },
@@ -17,11 +17,15 @@ export * from "./types/guild-template";
17
17
  export * from "./types/guild";
18
18
  export * from "./types/interaction";
19
19
  export * from "./types/invite";
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
@@ -33,11 +33,15 @@ __exportStar(require("./types/guild-template"), exports);
33
33
  __exportStar(require("./types/guild"), exports);
34
34
  __exportStar(require("./types/interaction"), exports);
35
35
  __exportStar(require("./types/invite"), 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);