disgroove 2.2.7-dev.c6794e0 → 2.2.7-dev.ee0727b

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 (35) hide show
  1. package/dist/lib/Client.d.ts +49 -52
  2. package/dist/lib/Client.js +99 -62
  3. package/dist/lib/constants.d.ts +30 -21
  4. package/dist/lib/constants.js +34 -24
  5. package/dist/lib/gateway/Shard.js +15 -0
  6. package/dist/lib/index.d.ts +1 -1
  7. package/dist/lib/index.js +1 -1
  8. package/dist/lib/rest/Endpoints.d.ts +4 -0
  9. package/dist/lib/rest/Endpoints.js +10 -1
  10. package/dist/lib/rest/RequestManager.d.ts +1 -3
  11. package/dist/lib/transformers/Components.d.ts +13 -3
  12. package/dist/lib/transformers/Components.js +277 -150
  13. package/dist/lib/transformers/Interactions.js +283 -38
  14. package/dist/lib/transformers/Lobbies.d.ts +7 -0
  15. package/dist/lib/transformers/Lobbies.js +38 -0
  16. package/dist/lib/transformers/Messages.d.ts +4 -3
  17. package/dist/lib/transformers/Messages.js +20 -34
  18. package/dist/lib/transformers/Roles.js +2 -2
  19. package/dist/lib/transformers/index.d.ts +2 -1
  20. package/dist/lib/transformers/index.js +2 -1
  21. package/dist/lib/types/components.d.ts +450 -0
  22. package/dist/lib/types/components.js +2 -0
  23. package/dist/lib/types/gateway-events.d.ts +23 -1
  24. package/dist/lib/types/guild.d.ts +7 -5
  25. package/dist/lib/types/interaction.d.ts +12 -8
  26. package/dist/lib/types/invite.d.ts +2 -2
  27. package/dist/lib/types/lobby.d.ts +29 -0
  28. package/dist/lib/types/lobby.js +2 -0
  29. package/dist/lib/types/message-components.d.ts +334 -118
  30. package/dist/lib/types/message.d.ts +3 -5
  31. package/dist/lib/types/role.d.ts +2 -2
  32. package/dist/lib/utils/formatters.d.ts +1 -1
  33. package/dist/lib/utils/formatters.js +1 -1
  34. package/dist/package.json +1 -1
  35. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  /// <reference types="node" />
2
2
  /// <reference types="node" />
3
3
  /// <reference types="node" />
4
- import { GatewayIntents, type OAuth2Scopes, type ActionTypes, type ImageWidgetStyleOptions, type MFALevel, type ReactionTypes, type ApplicationCommandTypes, type EventTypes, type TriggerTypes, type ChannelTypes, type VideoQualityModes, type SortOrderTypes, type ForumLayoutTypes, type InviteTargetTypes, type VerificationLevel, type DefaultMessageNotificationLevel, type ExplicitContentFilterLevel, type SystemChannelFlags, type ApplicationFlags, type ApplicationIntegrationTypes, type ChannelFlags, type GuildFeatures, type GuildScheduledEventEntityTypes, type GuildScheduledEventPrivacyLevel, type GuildScheduledEventStatus, type MessageFlags, type OnboardingMode, type PrivacyLevel, type GuildMemberFlags, type InteractionContextTypes } from "./constants";
4
+ import { GatewayIntents, type OAuth2Scopes, type ActionTypes, type ImageWidgetStyleOptions, type ReactionTypes, type ApplicationCommandTypes, type EventTypes, type TriggerTypes, type ChannelTypes, type VideoQualityModes, type SortOrderTypes, type ForumLayoutTypes, type InviteTargetTypes, type VerificationLevel, type DefaultMessageNotificationLevel, type ExplicitContentFilterLevel, type SystemChannelFlags, type ApplicationFlags, type ApplicationIntegrationTypes, type ChannelFlags, type GuildFeatures, type GuildScheduledEventEntityTypes, type GuildScheduledEventPrivacyLevel, type GuildScheduledEventStatus, type MessageFlags, type OnboardingMode, type PrivacyLevel, type GuildMemberFlags, type InteractionContextTypes, type LobbyMemberFlags } from "./constants";
5
5
  import { RequestManager, type FileData } from "./rest";
6
6
  import EventEmitter from "node:events";
7
7
  import { Shard } from "./gateway";
@@ -14,7 +14,7 @@ import type { Channel, FollowedChannel, ThreadMember, Overwrite, DefaultReaction
14
14
  import type { LocaleMap, snowflake, timestamp } from "./types/common";
15
15
  import type { Emoji } from "./types/emoji";
16
16
  import type { Entitlement } from "./types/entitlements";
17
- import type { AutoModerationActionExecutionEventFields, ChannelPinsUpdateEventFields, ThreadListSyncEventFields, ThreadMemberUpdateEventExtraFields, ThreadMembersUpdateEventFields, GuildCreateEventExtraFields, GuildAuditLogEntryCreateExtraFields, GuildBanAddEventFields, GuildBanRemoveEventFields, GuildMemberAddEventExtraFields, GuildMemberRemoveEventFields, GuildMemberUpdateEventFields, GuildMembersChunkEventFields, IntegrationCreateEventExtraFields, IntegrationUpdateEventExtraFields, IntegrationDeleteEventFields, InviteCreateEventFields, InviteDeleteEventFields, MessageCreateEventExtraFields, MessageDeleteEventFields, MessageDeleteBulkEventFields, MessageReactionAddEventFields, MessageReactionRemoveEventFields, MessageReactionRemoveAllEventFields, MessageReactionRemoveEmojiEventFields, PresenceUpdateEventFields, TypingStartEventFields, VoiceServerUpdateEventFields, MessagePollVoteAddFields, MessagePollVoteRemoveFields, GatewayPresenceUpdate, RawPayload, IdentifyConnectionProperties, VoiceChannelEffectSendEventFields, GuildSoundboardSoundDeleteEventFields } from "./types/gateway-events";
17
+ import type { AutoModerationActionExecutionEventFields, ChannelPinsUpdateEventFields, ThreadListSyncEventFields, ThreadMemberUpdateEventExtraFields, ThreadMembersUpdateEventFields, GuildCreateEventExtraFields, GuildAuditLogEntryCreateExtraFields, GuildBanAddEventFields, GuildBanRemoveEventFields, GuildMemberAddEventExtraFields, GuildMemberRemoveEventFields, GuildMemberUpdateEventFields, GuildMembersChunkEventFields, IntegrationCreateEventExtraFields, IntegrationUpdateEventExtraFields, IntegrationDeleteEventFields, InviteCreateEventFields, InviteDeleteEventFields, MessageCreateEventExtraFields, MessageDeleteEventFields, MessageDeleteBulkEventFields, MessageReactionAddEventFields, MessageReactionRemoveEventFields, MessageReactionRemoveAllEventFields, MessageReactionRemoveEmojiEventFields, PresenceUpdateEventFields, TypingStartEventFields, VoiceServerUpdateEventFields, MessagePollVoteAddFields, MessagePollVoteRemoveFields, GatewayPresenceUpdate, RawPayload, IdentifyConnectionProperties, VoiceChannelEffectSendEventFields, GuildSoundboardSoundDeleteEventFields, RateLimitedFields } from "./types/gateway-events";
18
18
  import type { Guild, GuildMember, WelcomeScreen, GuildWidgetSettings, Ban, Integration, GuildOnboarding, GuildPreview, GuildWidget, UnavailableGuild, OnboardingPrompt, WelcomeScreenChannel, IncidentsData } from "./types/guild";
19
19
  import type { GuildScheduledEvent, GuildScheduledEventUser, GuildScheduledEventEntityMetadata, GuildScheduledEventRecurrenceRule } from "./types/guild-scheduled-event";
20
20
  import type { GuildTemplate } from "./types/guild-template";
@@ -29,9 +29,11 @@ import type { User, ApplicationRoleConnection, Connection } from "./types/user";
29
29
  import type { VoiceRegion, VoiceState } from "./types/voice";
30
30
  import type { Webhook } from "./types/webhook";
31
31
  import type { ClientOptions as WebSocketOptions } from "ws";
32
- import type { Embed, AllowedMentions, Attachment, Message, MessageReference, MessageTopLevelComponent, MessagePin } from "./types/message";
32
+ import type { Embed, AllowedMentions, Attachment, Message, MessageReference, MessagePin } from "./types/message";
33
33
  import type { Subscription } from "./types/subscription";
34
34
  import type { SoundboardSound } from "./types/soundboard";
35
+ import type { ActionRow, Button, ChannelSelect, Container, File, MediaGallery, MentionableSelect, RoleSelect, Section, Separator, StringSelect, TextDisplay, Thumbnail, UserSelect } from "./types/components";
36
+ import type { Lobby, LobbyMember } from "./types/lobby";
35
37
  export interface GatewayOptions {
36
38
  properties?: IdentifyConnectionProperties;
37
39
  compress?: boolean;
@@ -77,6 +79,11 @@ export declare class Client extends EventEmitter {
77
79
  }): Promise<GuildMember | null>;
78
80
  /** https://discord.com/developers/docs/resources/guild#add-guild-member-role */
79
81
  addGuildMemberRole(guildID: snowflake, userID: snowflake, roleID: snowflake, reason?: string): void;
82
+ /** https://discord.com/developers/docs/resources/lobby#add-a-member-to-a-lobby */
83
+ addLobbyMember(lobbyID: snowflake, userID: snowflake, options: {
84
+ metadata?: Record<string, string> | null;
85
+ flags?: LobbyMemberFlags;
86
+ }): Promise<LobbyMember>;
80
87
  /** https://discord.com/developers/docs/resources/channel#add-thread-member */
81
88
  addThreadMember(channelID: snowflake, userID: snowflake): void;
82
89
  /** https://discord.com/developers/docs/resources/guild#begin-guild-prune */
@@ -203,33 +210,6 @@ export declare class Client extends EventEmitter {
203
210
  accessTokens: Array<string>;
204
211
  nicks: Array<string>;
205
212
  }): Promise<Channel>;
206
- /** https://discord.com/developers/docs/resources/guild#create-guild */
207
- createGuild(options: {
208
- name: string;
209
- icon?: string;
210
- verificationLevel?: VerificationLevel;
211
- defaultMessageNotifications?: DefaultMessageNotificationLevel;
212
- explicitContentFilter?: ExplicitContentFilterLevel;
213
- roles?: Array<{
214
- name?: string;
215
- permissions?: string;
216
- color?: number;
217
- hoist?: boolean;
218
- icon?: string | null;
219
- unicodeEmoji?: string | null;
220
- mentionable?: boolean;
221
- }>;
222
- channels?: Array<{
223
- name: string;
224
- type: ChannelTypes;
225
- id?: number;
226
- parentID?: number;
227
- }>;
228
- afkChannelID?: snowflake;
229
- afkTimeout?: number;
230
- systemChannelID?: snowflake;
231
- systemChannelFlags?: SystemChannelFlags;
232
- }): Promise<Guild>;
233
213
  /** https://discord.com/developers/docs/interactions/application-commands#create-guild-application-command */
234
214
  createGuildApplicationCommand(applicationID: snowflake, guildID: snowflake, options: {
235
215
  name: string;
@@ -252,11 +232,6 @@ export declare class Client extends EventEmitter {
252
232
  image: string;
253
233
  roles: Array<snowflake>;
254
234
  }, reason?: string): Promise<Emoji>;
255
- /** https://discord.com/developers/docs/resources/guild-template#create-guild-from-guild-template */
256
- createGuildFromTemplate(code: string, options: {
257
- name: string;
258
- icon?: string;
259
- }): Promise<Guild>;
260
235
  /** https://discord.com/developers/docs/resources/guild#create-guild-role */
261
236
  createGuildRole(guildID: snowflake, options: {
262
237
  name?: string;
@@ -307,7 +282,7 @@ export declare class Client extends EventEmitter {
307
282
  tts?: boolean;
308
283
  embeds?: Array<Embed>;
309
284
  allowedMentions?: AllowedMentions;
310
- components?: Array<MessageTopLevelComponent>;
285
+ components?: Array<ActionRow | Section | TextDisplay | MediaGallery | File | Separator | Container>;
311
286
  files?: Array<FileData> | null;
312
287
  attachments?: Array<Pick<Attachment, "filename" | "description">>;
313
288
  flags?: MessageFlags;
@@ -319,6 +294,12 @@ export declare class Client extends EventEmitter {
319
294
  createInteractionResponse(interactionID: snowflake, interactionToken: string, options: InteractionResponse & {
320
295
  withResponse?: boolean;
321
296
  }): Promise<void | InteractionCallbackResponse>;
297
+ /** https://discord.com/developers/docs/resources/lobby#create-lobby */
298
+ createLobby(options: {
299
+ metadata?: Record<string, string> | null;
300
+ members?: Array<Pick<LobbyMember, "id" | "metadata" | "flags">>;
301
+ idleTimeoutSeconds?: number;
302
+ }): Promise<Lobby>;
322
303
  /** https://discord.com/developers/docs/resources/message#create-message */
323
304
  createMessage(channelID: snowflake, options: {
324
305
  content?: string;
@@ -327,7 +308,7 @@ export declare class Client extends EventEmitter {
327
308
  embeds?: Array<Embed>;
328
309
  allowedMentions?: AllowedMentions;
329
310
  messageReference?: MessageReference;
330
- components?: Array<MessageTopLevelComponent>;
311
+ components?: Array<ActionRow | Section | TextDisplay | MediaGallery | File | Separator | Container>;
331
312
  stickersIDs?: Array<snowflake>;
332
313
  files?: Array<FileData>;
333
314
  attachments?: Array<Pick<Attachment, "filename" | "description">>;
@@ -360,7 +341,7 @@ export declare class Client extends EventEmitter {
360
341
  content?: string;
361
342
  embeds?: Array<Embed>;
362
343
  allowedMentions?: AllowedMentions;
363
- components?: Array<MessageTopLevelComponent>;
344
+ components?: Array<ActionRow | Button | StringSelect | UserSelect | RoleSelect | MentionableSelect | ChannelSelect | Section | TextDisplay | Thumbnail | MediaGallery | File | Separator | Container>;
364
345
  stickerIDs?: Array<snowflake>;
365
346
  attachments?: Array<Pick<Attachment, "filename" | "description">>;
366
347
  flags?: MessageFlags;
@@ -396,8 +377,6 @@ export declare class Client extends EventEmitter {
396
377
  deleteChannelPermission(channelID: snowflake, overwriteID: snowflake, reason?: string): void;
397
378
  /** https://discord.com/developers/docs/interactions/application-commands#delete-global-application-command */
398
379
  deleteGlobalApplicationCommand(applicationID: snowflake, commandID: snowflake): void;
399
- /** https://discord.com/developers/docs/resources/guild#delete-guild */
400
- deleteGuild(guildID: snowflake): void;
401
380
  /** https://discord.com/developers/docs/interactions/application-commands#delete-guild-application-command */
402
381
  deleteGuildApplicationCommand(applicationID: snowflake, guildID: snowflake, commandID: snowflake): void;
403
382
  /** https://discord.com/developers/docs/resources/emoji#delete-guild-emoji */
@@ -420,6 +399,8 @@ export declare class Client extends EventEmitter {
420
399
  deleteInteractionFollowupMessage(applicationID: snowflake, interactionToken: string, messageID: snowflake): void;
421
400
  /** https://discord.com/developers/docs/interactions/receiving-and-responding#delete-original-interaction-response */
422
401
  deleteInteractionResponse(applicationID: snowflake, interactionToken: string): void;
402
+ /** https://discord.com/developers/docs/resources/lobby#delete-lobby */
403
+ deleteLobby(lobbyID: snowflake): void;
423
404
  /** https://discord.com/developers/docs/resources/message#delete-message */
424
405
  deleteMessage(channelID: snowflake, messageID: snowflake, reason?: string): void;
425
406
  /** https://discord.com/developers/docs/resources/message#delete-user-reaction */
@@ -506,6 +487,9 @@ export declare class Client extends EventEmitter {
506
487
  /** https://discord.com/developers/docs/resources/guild#modify-current-member */
507
488
  editCurrentGuildMember(guildID: snowflake, options: {
508
489
  nick?: string | null;
490
+ banner?: string | null;
491
+ avatar?: string | null;
492
+ bio?: string | null;
509
493
  }, reason?: string): Promise<GuildMember>;
510
494
  /** https://discord.com/developers/docs/resources/guild#modify-current-user-voice-state */
511
495
  editCurrentUserVoiceState(guildID: snowflake, options: {
@@ -547,7 +531,6 @@ export declare class Client extends EventEmitter {
547
531
  afkChannelID?: snowflake | null;
548
532
  afkTimeout?: number;
549
533
  icon?: string | null;
550
- ownerID?: snowflake;
551
534
  splash?: string | null;
552
535
  discoverySplash?: string | null;
553
536
  banner?: string | null;
@@ -591,10 +574,6 @@ export declare class Client extends EventEmitter {
591
574
  communicationDisabledUntil?: timestamp | null;
592
575
  flags?: GuildMemberFlags | null;
593
576
  }, reason?: string): Promise<GuildMember>;
594
- /** https://discord.com/developers/docs/resources/guild#modify-guild-mfa-level */
595
- editGuildMFALevel(guildID: snowflake, options: {
596
- level: MFALevel;
597
- }, reason?: string): Promise<MFALevel>;
598
577
  /** https://discord.com/developers/docs/resources/guild#modify-guild-onboarding */
599
578
  editGuildOnboarding(guildID: snowflake, options: {
600
579
  prompts?: Array<OnboardingPrompt>;
@@ -661,13 +640,19 @@ export declare class Client extends EventEmitter {
661
640
  enabled?: boolean;
662
641
  channelID?: boolean;
663
642
  }, reason?: string): Promise<GuildWidgetSettings>;
643
+ /** https://discord.com/developers/docs/resources/lobby#modify-lobby */
644
+ editLobby(lobbyID: snowflake, options: {
645
+ metadata?: Record<string, string> | null;
646
+ members?: Array<Pick<LobbyMember, "id" | "metadata" | "flags">>;
647
+ idleTimeoutSeconds?: number;
648
+ }): Promise<Lobby>;
664
649
  /** https://discord.com/developers/docs/resources/message#edit-message */
665
650
  editMessage(channelID: snowflake, messageID: snowflake, options: {
666
651
  content?: string | null;
667
652
  embeds?: Array<Embed> | null;
668
653
  flags?: MessageFlags | null;
669
654
  allowedMentions?: AllowedMentions | null;
670
- components?: Array<MessageTopLevelComponent> | null;
655
+ components?: Array<ActionRow | Section | TextDisplay | MediaGallery | File | Separator | Container> | null;
671
656
  files?: Array<FileData> | null;
672
657
  attachments?: Array<Attachment> | null;
673
658
  }): Promise<Message>;
@@ -681,7 +666,7 @@ export declare class Client extends EventEmitter {
681
666
  content?: string | null;
682
667
  embeds?: Array<Embed> | null;
683
668
  allowedMentions?: AllowedMentions | null;
684
- components?: Array<MessageTopLevelComponent> | null;
669
+ components?: Array<ActionRow | Section | TextDisplay | MediaGallery | File | Separator | Container> | null;
685
670
  files?: Array<FileData> | null;
686
671
  attachments?: Array<Partial<Attachment>> | null;
687
672
  poll?: PollCreateParams | null;
@@ -692,7 +677,7 @@ export declare class Client extends EventEmitter {
692
677
  content?: string | null;
693
678
  embeds?: Array<Embed> | null;
694
679
  allowedMentions?: AllowedMentions | null;
695
- components?: Array<MessageTopLevelComponent> | null;
680
+ components?: Array<ActionRow | Section | TextDisplay | MediaGallery | File | Separator | Container> | null;
696
681
  files?: Array<FileData> | null;
697
682
  attachments?: Array<Partial<Attachment>> | null;
698
683
  poll?: PollCreateParams | null;
@@ -700,7 +685,7 @@ export declare class Client extends EventEmitter {
700
685
  }): Promise<Message>;
701
686
  /** https://discord.com/developers/docs/resources/guild#modify-user-voice-state */
702
687
  editUserVoiceState(guildID: snowflake, userID: snowflake, options: {
703
- channelID: snowflake;
688
+ channelID?: snowflake;
704
689
  suppress?: boolean;
705
690
  }): void;
706
691
  /** https://discord.com/developers/docs/resources/webhook#modify-webhook */
@@ -714,7 +699,7 @@ export declare class Client extends EventEmitter {
714
699
  content?: string | null;
715
700
  embeds?: Array<Embed> | null;
716
701
  allowedMentions?: AllowedMentions | null;
717
- components?: Array<MessageTopLevelComponent> | null;
702
+ components?: Array<ActionRow | Section | TextDisplay | MediaGallery | File | Separator | Container> | null;
718
703
  files?: Array<FileData> | null;
719
704
  attachments?: Array<Partial<Attachment>> | null;
720
705
  poll?: PollCreateParams | null;
@@ -736,7 +721,7 @@ export declare class Client extends EventEmitter {
736
721
  tts?: boolean;
737
722
  embeds?: Array<Embed>;
738
723
  allowedMentions?: AllowedMentions;
739
- components?: Array<MessageTopLevelComponent>;
724
+ components?: Array<ActionRow | Section | TextDisplay | MediaGallery | File | Separator | Container>;
740
725
  files?: Array<FileData>;
741
726
  attachments?: Array<Pick<Attachment, "filename" | "description">>;
742
727
  flags?: MessageFlags;
@@ -961,7 +946,6 @@ export declare class Client extends EventEmitter {
961
946
  /** https://discord.com/developers/docs/resources/invite#get-invite */
962
947
  getInvite(code: string, options?: {
963
948
  withCounts?: boolean;
964
- withExpiration?: boolean;
965
949
  guildScheduledEventID?: snowflake;
966
950
  }): Promise<Invite>;
967
951
  /** https://discord.com/developers/docs/resources/channel#list-joined-private-archived-threads */
@@ -973,6 +957,8 @@ export declare class Client extends EventEmitter {
973
957
  members: Array<ThreadMember>;
974
958
  hasMore: boolean;
975
959
  }>;
960
+ /** https://discord.com/developers/docs/resources/lobby#get-lobby */
961
+ getLobby(lobbyID: snowflake): Promise<Lobby>;
976
962
  /** https://discord.com/developers/docs/resources/message#get-channel-message */
977
963
  getMessage(channelID: snowflake, messageID: snowflake): Promise<Message>;
978
964
  /** https://discord.com/developers/docs/resources/message#get-reactions */
@@ -1062,10 +1048,16 @@ export declare class Client extends EventEmitter {
1062
1048
  }): void;
1063
1049
  /** https://discord.com/developers/docs/resources/user#leave-guild */
1064
1050
  leaveGuild(guildID: snowflake): void;
1051
+ /** https://discord.com/developers/docs/resources/lobby#leave-lobby */
1052
+ leaveLobby(lobbyID: snowflake): void;
1065
1053
  /** https://discord.com/developers/docs/resources/channel#leave-thread */
1066
1054
  leaveThread(channelID: snowflake): void;
1067
1055
  /** https://discord.com/developers/docs/topics/gateway-events#update-voice-state */
1068
1056
  leaveVoiceChannel(guildID: snowflake): void;
1057
+ /** discord.com/developers/docs/resources/lobby#link-channel-to-lobby */
1058
+ linkChannel(lobbyID: snowflake, options: {
1059
+ channelID: snowflake;
1060
+ }): Promise<Lobby>;
1069
1061
  /** https://discord.com/developers/docs/resources/channel#pin-message */
1070
1062
  pinMessage(channelID: snowflake, messageID: snowflake, reason?: string): void;
1071
1063
  /** https://discord.com/developers/docs/resources/guild#remove-guild-ban */
@@ -1076,6 +1068,8 @@ export declare class Client extends EventEmitter {
1076
1068
  removeGuildMember(guildID: snowflake, userID: snowflake, reason?: string): void;
1077
1069
  /** https://discord.com/developers/docs/resources/guild#remove-guild-member-role */
1078
1070
  removeGuildMemberRole(guildID: snowflake, userID: snowflake, roleID: snowflake, reason?: string): void;
1071
+ /** https://discord.com/developers/docs/resources/lobby#remove-a-member-from-a-lobby */
1072
+ removeLobbyMember(lobbyID: snowflake, userID: snowflake): void;
1079
1073
  /** https://discord.com/developers/docs/resources/channel#remove-thread-member */
1080
1074
  removeThreadMember(channelID: snowflake, userID: snowflake): void;
1081
1075
  /** https://discord.com/developers/docs/resources/guild#search-guild-members */
@@ -1094,6 +1088,8 @@ export declare class Client extends EventEmitter {
1094
1088
  syncGuildTemplate(guildID: snowflake, code: string): Promise<GuildTemplate>;
1095
1089
  /** https://discord.com/developers/docs/resources/channel#trigger-typing-indicator */
1096
1090
  triggerTypingIndicator(channelID: snowflake): void;
1091
+ /** https://discord.com/developers/docs/resources/lobby#unlink-channel-from-lobby */
1092
+ unlinkChannel(lobbyID: snowflake): Promise<Lobby>;
1097
1093
  /** https://discord.com/developers/docs/resources/application-role-connection-metadata#update-application-role-connection-metadata-records */
1098
1094
  updateApplicationRoleConnectionMetadataRecords(applicationID: snowflake): Promise<Array<ApplicationRoleConnectionMetadata>>;
1099
1095
  /** https://discord.com/developers/docs/resources/user#update-current-user-application-role-connection */
@@ -1125,6 +1121,7 @@ export interface ClientEvents {
1125
1121
  hello: [interval: number, shard: number];
1126
1122
  ready: [];
1127
1123
  resumed: [];
1124
+ rateLimited: [rateLimit: RateLimitedFields];
1128
1125
  reconnect: [];
1129
1126
  invalidSession: [];
1130
1127
  applicationCommandPermissionsUpdate: [
@@ -76,6 +76,13 @@ class Client extends node_events_1.default {
76
76
  reason,
77
77
  });
78
78
  }
79
+ /** https://discord.com/developers/docs/resources/lobby#add-a-member-to-a-lobby */
80
+ async addLobbyMember(lobbyID, userID, options) {
81
+ const response = await this.rest.request(rest_1.RESTMethods.Put, rest_1.Endpoints.lobbyMember(lobbyID, userID), {
82
+ json: options,
83
+ });
84
+ return transformers_1.Lobbies.lobbyMemberFromRaw(response);
85
+ }
79
86
  /** https://discord.com/developers/docs/resources/channel#add-thread-member */
80
87
  addThreadMember(channelID, userID) {
81
88
  this.rest.request(rest_1.RESTMethods.Put, rest_1.Endpoints.threadMembers(channelID, userID));
@@ -288,38 +295,6 @@ class Client extends node_events_1.default {
288
295
  });
289
296
  return transformers_1.Channels.channelFromRaw(response);
290
297
  }
291
- /** https://discord.com/developers/docs/resources/guild#create-guild */
292
- async createGuild(options) {
293
- const response = await this.rest.request(rest_1.RESTMethods.Post, rest_1.Endpoints.guilds(), {
294
- json: {
295
- name: options.name,
296
- icon: options.icon,
297
- verification_level: options.verificationLevel,
298
- default_message_notifications: options.defaultMessageNotifications,
299
- explicit_content_filter: options.explicitContentFilter,
300
- roles: options.roles?.map((role) => ({
301
- name: role.name,
302
- color: role.color,
303
- hoist: role.hoist,
304
- icon: role.icon,
305
- unicode_emoji: role.unicodeEmoji,
306
- permissions: role.permissions,
307
- mentionable: role.mentionable,
308
- })),
309
- channels: options.channels?.map((channel) => ({
310
- name: channel.name,
311
- type: channel.type,
312
- id: channel.id,
313
- parent_id: channel.id,
314
- })),
315
- afk_channel_id: options.afkChannelID,
316
- afk_timeout: options.afkTimeout,
317
- system_channel_id: options.systemChannelID,
318
- system_channel_flags: options.systemChannelFlags,
319
- },
320
- });
321
- return transformers_1.Guilds.guildFromRaw(response);
322
- }
323
298
  /** https://discord.com/developers/docs/interactions/application-commands#create-guild-application-command */
324
299
  async createGuildApplicationCommand(applicationID, guildID, options) {
325
300
  const response = await this.rest.request(rest_1.RESTMethods.Post, rest_1.Endpoints.applicationGuildCommands(applicationID, guildID), {
@@ -358,16 +333,6 @@ class Client extends node_events_1.default {
358
333
  });
359
334
  return transformers_1.Emojis.emojiFromRaw(response);
360
335
  }
361
- /** https://discord.com/developers/docs/resources/guild-template#create-guild-from-guild-template */
362
- async createGuildFromTemplate(code, options) {
363
- const response = await this.rest.request(rest_1.RESTMethods.Post, rest_1.Endpoints.template(code), {
364
- json: {
365
- name: options.name,
366
- icon: options.icon,
367
- },
368
- });
369
- return transformers_1.Guilds.guildFromRaw(response);
370
- }
371
336
  /** https://discord.com/developers/docs/resources/guild#create-guild-role */
372
337
  async createGuildRole(guildID, options, reason) {
373
338
  const response = await this.rest.request(rest_1.RESTMethods.Post, rest_1.Endpoints.guildRoles(guildID), {
@@ -375,6 +340,11 @@ class Client extends node_events_1.default {
375
340
  name: options.name,
376
341
  permissions: options.permissions,
377
342
  color: options.color,
343
+ colors: {
344
+ primary_color: options.colors?.primaryColor,
345
+ secondary_color: options.colors?.secondaryColor,
346
+ tertiary_color: options.colors?.tertiaryColor,
347
+ },
378
348
  hoist: options.hoist,
379
349
  icon: options.icon,
380
350
  unicode_emoji: options.unicodeEmoji,
@@ -507,7 +477,24 @@ class Client extends node_events_1.default {
507
477
  : undefined,
508
478
  flags: options.data?.flags,
509
479
  components: options.data?.components !== undefined
510
- ? transformers_1.Messages.componentsToRaw(options.data.components)
480
+ ? options.data?.components.map((component) => {
481
+ switch (component.type) {
482
+ case constants_1.ComponentTypes.ActionRow:
483
+ return transformers_1.Components.actionRowToRaw(component);
484
+ case constants_1.ComponentTypes.Section:
485
+ return transformers_1.Components.sectionToRaw(component);
486
+ case constants_1.ComponentTypes.TextDisplay:
487
+ return transformers_1.Components.textDisplayToRaw(component);
488
+ case constants_1.ComponentTypes.MediaGallery:
489
+ return transformers_1.Components.mediaGalleryToRaw(component);
490
+ case constants_1.ComponentTypes.File:
491
+ return transformers_1.Components.fileToRaw(component);
492
+ case constants_1.ComponentTypes.Separator:
493
+ return transformers_1.Components.separatorToRaw(component);
494
+ case constants_1.ComponentTypes.Container:
495
+ return transformers_1.Components.containerToRaw(component);
496
+ }
497
+ })
511
498
  : undefined,
512
499
  attachments: options.data?.attachments,
513
500
  poll: options.data?.poll !== undefined
@@ -559,7 +546,16 @@ class Client extends node_events_1.default {
559
546
  data: {
560
547
  custom_id: options.data?.customID,
561
548
  components: options.data?.components !== undefined
562
- ? transformers_1.Messages.componentsToRaw(options.data.components)
549
+ ? options.data?.components.map((component) => {
550
+ switch (component.type) {
551
+ case constants_1.ComponentTypes.ActionRow:
552
+ return transformers_1.Components.actionRowToRaw(component);
553
+ case constants_1.ComponentTypes.TextDisplay:
554
+ return transformers_1.Components.textDisplayToRaw(component);
555
+ case constants_1.ComponentTypes.Label:
556
+ return transformers_1.Components.labelToRaw(component);
557
+ }
558
+ })
563
559
  : undefined,
564
560
  title: options.data?.title,
565
561
  },
@@ -596,6 +592,17 @@ class Client extends node_events_1.default {
596
592
  });
597
593
  }
598
594
  }
595
+ /** https://discord.com/developers/docs/resources/lobby#create-lobby */
596
+ async createLobby(options) {
597
+ const response = await this.rest.request(rest_1.RESTMethods.Post, rest_1.Endpoints.lobbies(), {
598
+ json: {
599
+ metadata: options.metadata,
600
+ members: options.members,
601
+ idle_timeout_seconds: options.idleTimeoutSeconds,
602
+ },
603
+ });
604
+ return transformers_1.Lobbies.lobbyFromRaw(response);
605
+ }
599
606
  /** https://discord.com/developers/docs/resources/message#create-message */
600
607
  async createMessage(channelID, options) {
601
608
  const response = await this.rest.request(rest_1.RESTMethods.Post, rest_1.Endpoints.channelMessages(channelID), {
@@ -764,10 +771,6 @@ class Client extends node_events_1.default {
764
771
  deleteGlobalApplicationCommand(applicationID, commandID) {
765
772
  this.rest.request(rest_1.RESTMethods.Delete, rest_1.Endpoints.applicationCommand(applicationID, commandID));
766
773
  }
767
- /** https://discord.com/developers/docs/resources/guild#delete-guild */
768
- deleteGuild(guildID) {
769
- this.rest.request(rest_1.RESTMethods.Delete, rest_1.Endpoints.guild(guildID));
770
- }
771
774
  /** https://discord.com/developers/docs/interactions/application-commands#delete-guild-application-command */
772
775
  deleteGuildApplicationCommand(applicationID, guildID, commandID) {
773
776
  this.rest.request(rest_1.RESTMethods.Delete, rest_1.Endpoints.applicationGuildCommand(applicationID, guildID, commandID));
@@ -826,6 +829,10 @@ class Client extends node_events_1.default {
826
829
  deleteInteractionResponse(applicationID, interactionToken) {
827
830
  this.rest.request(rest_1.RESTMethods.Delete, rest_1.Endpoints.webhookMessage(applicationID, interactionToken));
828
831
  }
832
+ /** https://discord.com/developers/docs/resources/lobby#delete-lobby */
833
+ deleteLobby(lobbyID) {
834
+ this.rest.request(rest_1.RESTMethods.Delete, rest_1.Endpoints.lobby(lobbyID));
835
+ }
829
836
  /** https://discord.com/developers/docs/resources/message#delete-message */
830
837
  deleteMessage(channelID, messageID, reason) {
831
838
  this.rest.request(rest_1.RESTMethods.Delete, rest_1.Endpoints.channelMessage(channelID, messageID), {
@@ -982,9 +989,7 @@ class Client extends node_events_1.default {
982
989
  /** https://discord.com/developers/docs/resources/guild#modify-current-member */
983
990
  async editCurrentGuildMember(guildID, options, reason) {
984
991
  const response = await this.rest.request(rest_1.RESTMethods.Patch, rest_1.Endpoints.guildMember(guildID), {
985
- json: {
986
- nick: options.nick,
987
- },
992
+ json: options,
988
993
  reason,
989
994
  });
990
995
  return transformers_1.Guilds.guildMemberFromRaw(response);
@@ -1054,7 +1059,6 @@ class Client extends node_events_1.default {
1054
1059
  afk_channel_id: options.afkChannelID,
1055
1060
  afk_timeout: options.afkTimeout,
1056
1061
  icon: options.icon,
1057
- owner_id: options.ownerID,
1058
1062
  splash: options.splash,
1059
1063
  discovery_splash: options.discoverySplash,
1060
1064
  banner: options.banner,
@@ -1130,15 +1134,6 @@ class Client extends node_events_1.default {
1130
1134
  });
1131
1135
  return transformers_1.Guilds.guildMemberFromRaw(response);
1132
1136
  }
1133
- /** https://discord.com/developers/docs/resources/guild#modify-guild-mfa-level */
1134
- editGuildMFALevel(guildID, options, reason) {
1135
- return this.rest.request(rest_1.RESTMethods.Post, rest_1.Endpoints.guildMFA(guildID), {
1136
- json: {
1137
- level: options.level,
1138
- },
1139
- reason,
1140
- });
1141
- }
1142
1137
  /** https://discord.com/developers/docs/resources/guild#modify-guild-onboarding */
1143
1138
  editGuildOnboarding(guildID, options, reason) {
1144
1139
  this.rest.request(rest_1.RESTMethods.Patch, rest_1.Endpoints.guildOnboarding(guildID), {
@@ -1175,6 +1170,11 @@ class Client extends node_events_1.default {
1175
1170
  name: options?.name,
1176
1171
  permissions: options?.permissions,
1177
1172
  color: options?.color,
1173
+ colors: {
1174
+ primary_color: options?.colors?.primaryColor,
1175
+ secondary_color: options?.colors?.secondaryColor,
1176
+ tertiary_color: options?.colors?.tertiaryColor,
1177
+ },
1178
1178
  hoist: options?.hoist,
1179
1179
  icon: options?.icon,
1180
1180
  unicode_emoji: options?.unicodeEmoji,
@@ -1290,6 +1290,17 @@ class Client extends node_events_1.default {
1290
1290
  channelID: response.channel_id,
1291
1291
  };
1292
1292
  }
1293
+ /** https://discord.com/developers/docs/resources/lobby#modify-lobby */
1294
+ async editLobby(lobbyID, options) {
1295
+ const response = await this.rest.request(rest_1.RESTMethods.Patch, rest_1.Endpoints.lobby(lobbyID), {
1296
+ json: {
1297
+ metadata: options.metadata,
1298
+ members: options.members,
1299
+ idle_timeout_seconds: options.idleTimeoutSeconds,
1300
+ },
1301
+ });
1302
+ return transformers_1.Lobbies.lobbyFromRaw(response);
1303
+ }
1293
1304
  /** https://discord.com/developers/docs/resources/message#edit-message */
1294
1305
  async editMessage(channelID, messageID, options) {
1295
1306
  const response = await this.rest.request(rest_1.RESTMethods.Patch, rest_1.Endpoints.channelMessage(channelID, messageID), {
@@ -2139,7 +2150,6 @@ class Client extends node_events_1.default {
2139
2150
  const response = await this.rest.request(rest_1.RESTMethods.Get, rest_1.Endpoints.invite(code), {
2140
2151
  query: {
2141
2152
  with_counts: options?.withCounts,
2142
- with_expiration: options?.withExpiration,
2143
2153
  guild_scheduled_event_id: options?.guildScheduledEventID,
2144
2154
  },
2145
2155
  });
@@ -2159,6 +2169,11 @@ class Client extends node_events_1.default {
2159
2169
  hasMore: response.has_more,
2160
2170
  };
2161
2171
  }
2172
+ /** https://discord.com/developers/docs/resources/lobby#get-lobby */
2173
+ async getLobby(lobbyID) {
2174
+ const response = await this.rest.request(rest_1.RESTMethods.Get, rest_1.Endpoints.lobby(lobbyID));
2175
+ return transformers_1.Lobbies.lobbyFromRaw(response);
2176
+ }
2162
2177
  /** https://discord.com/developers/docs/resources/message#get-channel-message */
2163
2178
  async getMessage(channelID, messageID) {
2164
2179
  const response = await this.rest.request(rest_1.RESTMethods.Get, rest_1.Endpoints.channelMessage(channelID, messageID));
@@ -2356,6 +2371,10 @@ class Client extends node_events_1.default {
2356
2371
  leaveGuild(guildID) {
2357
2372
  this.rest.request(rest_1.RESTMethods.Delete, rest_1.Endpoints.userGuild(guildID));
2358
2373
  }
2374
+ /** https://discord.com/developers/docs/resources/lobby#leave-lobby */
2375
+ leaveLobby(lobbyID) {
2376
+ this.rest.request(rest_1.RESTMethods.Delete, rest_1.Endpoints.lobbyMember(lobbyID));
2377
+ }
2359
2378
  /** https://discord.com/developers/docs/resources/channel#leave-thread */
2360
2379
  leaveThread(channelID) {
2361
2380
  this.rest.request(rest_1.RESTMethods.Delete, rest_1.Endpoints.threadMembers(channelID, "@me"));
@@ -2369,6 +2388,15 @@ class Client extends node_events_1.default {
2369
2388
  selfDeaf: false,
2370
2389
  });
2371
2390
  }
2391
+ /** discord.com/developers/docs/resources/lobby#link-channel-to-lobby */
2392
+ async linkChannel(lobbyID, options) {
2393
+ const response = await this.rest.request(rest_1.RESTMethods.Patch, rest_1.Endpoints.lobbyChannelLinking(lobbyID), {
2394
+ json: {
2395
+ channel_id: options.channelID,
2396
+ },
2397
+ });
2398
+ return transformers_1.Lobbies.lobbyFromRaw(response);
2399
+ }
2372
2400
  /** https://discord.com/developers/docs/resources/channel#pin-message */
2373
2401
  pinMessage(channelID, messageID, reason) {
2374
2402
  this.rest.request(rest_1.RESTMethods.Put, rest_1.Endpoints.channelPin(channelID, messageID), {
@@ -2397,6 +2425,10 @@ class Client extends node_events_1.default {
2397
2425
  reason,
2398
2426
  });
2399
2427
  }
2428
+ /** https://discord.com/developers/docs/resources/lobby#remove-a-member-from-a-lobby */
2429
+ removeLobbyMember(lobbyID, userID) {
2430
+ this.rest.request(rest_1.RESTMethods.Delete, rest_1.Endpoints.lobbyMember(lobbyID, userID));
2431
+ }
2400
2432
  /** https://discord.com/developers/docs/resources/channel#remove-thread-member */
2401
2433
  removeThreadMember(channelID, userID) {
2402
2434
  this.rest.request(rest_1.RESTMethods.Delete, rest_1.Endpoints.threadMembers(channelID, userID));
@@ -2433,6 +2465,11 @@ class Client extends node_events_1.default {
2433
2465
  triggerTypingIndicator(channelID) {
2434
2466
  this.rest.request(rest_1.RESTMethods.Post, rest_1.Endpoints.channelTyping(channelID));
2435
2467
  }
2468
+ /** https://discord.com/developers/docs/resources/lobby#unlink-channel-from-lobby */
2469
+ async unlinkChannel(lobbyID) {
2470
+ const response = await this.rest.request(rest_1.RESTMethods.Patch, rest_1.Endpoints.lobbyChannelLinking(lobbyID));
2471
+ return transformers_1.Lobbies.lobbyFromRaw(response);
2472
+ }
2436
2473
  /** https://discord.com/developers/docs/resources/application-role-connection-metadata#update-application-role-connection-metadata-records */
2437
2474
  async updateApplicationRoleConnectionMetadataRecords(applicationID) {
2438
2475
  const response = await this.rest.request(rest_1.RESTMethods.Put, rest_1.Endpoints.applicationRoleConnectionMetadata(applicationID));