disgroove 2.2.7 → 3.0.0-dev.2cf2b90

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