disgroove 3.0.1-dev.24a02ed → 3.0.1-dev.6d98962

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.
package/README.md CHANGED
@@ -1,14 +1,42 @@
1
1
  # disgroove
2
2
 
3
- A module to interface with Discord
3
+ > A lightweight (≈ **791 KB** unpacked) and low-level Node.js dependency for interfacing with Discord, focused on accuracy and flexibility.
4
+ > It is designed for developers who want full control over the Discord API without heavy abstractions and want as little RAM and CPU usage as possible.
4
5
 
5
- - Fast
6
- - Lightweight
7
- - Flexible
8
- - 100% coverage of the [Official Discord API Documentation](https://discord.com/developers/docs/intro)
6
+ > **disgroove** is intended for developers already familiar with the Discord API and gateway model.
9
7
 
10
- ## Example
8
+ ## Why disgroove?
9
+
10
+ ### ✅ Accurate with the official Discord API
11
+
12
+ All commits (since __July 3, 2024__), types, REST requests, and utilities strictly follow the [official Discord API documentation repository](https://github.com/discord/discord-api-docs) and are referenced to the [Discord API developer docs](https://docs.discord.com/developers/intro).
13
+
14
+ Development releases are mainly published when breaking changes are introduced in the Discord API.
15
+
16
+ ---
17
+
18
+ ### 🧠 Minimal caching
19
+
20
+ **disgroove** only caches guilds.
21
+
22
+ Guilds are mapped from the `READY` gateway event and kept in sync through
23
+ `GUILD_CREATE`, `GUILD_UPDATE` and `GUILD_DELETE` gateway events.
24
+
25
+ This design significantly decreases RAM and CPU usage and keeps the library lightweight.
11
26
 
27
+ ---
28
+
29
+ ### 🔧 Highly flexible and low-level
30
+
31
+ **disgroove** doesn't hide Discord features behind abstractions.
32
+
33
+ Every REST request is built directly on top of the [Discord API developer docs](https://docs.discord.com/developers/intro), with no changes.
34
+
35
+ You can listen to any gateway event directly using `Shard.ws.on(...)` and perform raw REST requests using `Client.rest.request(...)`
36
+
37
+ This allows you to use new Discord features immediately, even before a dedicated **disgroove** update is released.
38
+
39
+ ## Example
12
40
  ```js
13
41
  const {
14
42
  Client,
@@ -17,7 +45,7 @@ const {
17
45
  InteractionCallbackType,
18
46
  MessageFlags,
19
47
  } = require("disgroove");
20
- const client = new Client("B0t.T0k3N");
48
+ const client = new Client(process.env.TOKEN);
21
49
 
22
50
  client.once("ready", () => {
23
51
  console.log("Logged in as", client.user.username);
@@ -28,7 +56,7 @@ client.once("ready", () => {
28
56
  });
29
57
  });
30
58
 
31
- client.on("interactionCreate", async (interaction) => {
59
+ client.on("interactionCreate", (interaction) => {
32
60
  if (interaction.type !== InteractionType.ApplicationCommand) return;
33
61
 
34
62
  if (interaction.data.name === "ping") {
@@ -46,3 +74,5 @@ client.connect();
46
74
  ```
47
75
 
48
76
  More examples on the [GitHub repository](https://github.com/sergiogotuzzo/disgroove/tree/main/examples)
77
+
78
+ > Enjoy **disgroove**? Leave a ⭐ to this repository!
@@ -1,4 +1,4 @@
1
- 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, InviteTargetUsersJobStatusErrorCodes } from "./constants";
1
+ 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, type InviteTargetUsersJobStatusErrorCodes, type AuthorTypes, type SearchHasTypes, type SearchEmbedTypes, type SearchSortModes } from "./constants";
2
2
  import { RequestManager, type FileData } from "./rest";
3
3
  import EventEmitter from "node:events";
4
4
  import { Shard } from "./gateway";
@@ -26,7 +26,7 @@ import type { User, ApplicationRoleConnection, Connection } from "./types/user";
26
26
  import type { VoiceRegion, VoiceState } from "./types/voice";
27
27
  import type { Webhook } from "./types/webhook";
28
28
  import type { ClientOptions as WebSocketOptions } from "ws";
29
- import type { Embed, AllowedMentions, Attachment, Message, MessageReference, MessagePin } from "./types/message";
29
+ import type { Embed, AllowedMentions, Attachment, Message, MessageReference, MessagePin, SharedClientTheme } from "./types/message";
30
30
  import type { Subscription } from "./types/subscription";
31
31
  import type { SoundboardSound } from "./types/soundboard";
32
32
  import type { ActionRow, Button, ChannelSelect, Container, File, MediaGallery, MentionableSelect, RoleSelect, Section, Separator, StringSelect, TextDisplay, Thumbnail, UserSelect } from "./types/components";
@@ -316,6 +316,7 @@ export declare class Client extends EventEmitter {
316
316
  flags?: MessageFlags;
317
317
  enforceNonce?: boolean;
318
318
  poll?: PollCreateParams;
319
+ sharedClientTheme?: SharedClientTheme;
319
320
  }): Promise<Message>;
320
321
  /** https://discord.com/developers/docs/resources/message#create-reaction */
321
322
  createMessageReaction(channelId: snowflake, messageId: snowflake, emoji: string): void;
@@ -1091,6 +1092,40 @@ export declare class Client extends EventEmitter {
1091
1092
  query: string;
1092
1093
  limit?: number;
1093
1094
  }): Promise<Array<GuildMember>>;
1095
+ /** https://docs.discord.com/developers/resources/message#search-guild-messages */
1096
+ searchGuildMessages(guildId: snowflake, options?: {
1097
+ limit?: number;
1098
+ offset?: number;
1099
+ maxId?: snowflake;
1100
+ minId?: snowflake;
1101
+ slop?: number;
1102
+ content?: string;
1103
+ channelId?: snowflake;
1104
+ authorType?: Array<AuthorTypes>;
1105
+ authorId?: Array<snowflake>;
1106
+ mentions?: Array<snowflake>;
1107
+ mentionsRolesId?: Array<snowflake>;
1108
+ mentionEveryone?: boolean;
1109
+ repliedToUserId?: Array<snowflake>;
1110
+ repliedToMessageId?: Array<snowflake>;
1111
+ pinned?: boolean;
1112
+ has?: Array<SearchHasTypes>;
1113
+ embedType?: Array<SearchEmbedTypes>;
1114
+ embedProvider?: Array<string>;
1115
+ linkHostname?: Array<string>;
1116
+ attachmentFilename?: Array<string>;
1117
+ attachmentExtension?: Array<string>;
1118
+ sortBy?: SearchSortModes;
1119
+ sortOrder?: string;
1120
+ includeNfsw?: boolean;
1121
+ }): Promise<{
1122
+ doingDeepHistoricalIndex: boolean;
1123
+ documentsIndexed?: number;
1124
+ totalResults: number;
1125
+ messages: Array<Message>;
1126
+ threads?: Array<Channel>;
1127
+ members?: Array<ThreadMember>;
1128
+ }>;
1094
1129
  /** https://discord.com/developers/docs/resources/soundboard#send-soundboard-sound */
1095
1130
  sendSoundboardSound(channelId: snowflake, options: {
1096
1131
  soundId: snowflake;
@@ -652,6 +652,14 @@ class Client extends node_events_1.default {
652
652
  layout_type: options.poll.layoutType,
653
653
  }
654
654
  : undefined,
655
+ shared_client_theme: options.sharedClientTheme !== undefined
656
+ ? {
657
+ colors: options.sharedClientTheme.colors,
658
+ gradient_angle: options.sharedClientTheme.gradientAngle,
659
+ base_mix: options.sharedClientTheme.baseMix,
660
+ base_theme: options.sharedClientTheme.baseTheme,
661
+ }
662
+ : undefined,
655
663
  },
656
664
  files: options.files,
657
665
  });
@@ -2474,6 +2482,45 @@ class Client extends node_events_1.default {
2474
2482
  });
2475
2483
  return response.map((guildMember) => transformers_1.Guilds.guildMemberFromRaw(guildMember));
2476
2484
  }
2485
+ /** https://docs.discord.com/developers/resources/message#search-guild-messages */
2486
+ async searchGuildMessages(guildId, options) {
2487
+ const response = await this.rest.request(rest_1.RESTMethods.Get, rest_1.Endpoints.guildMessagesSearch(guildId), {
2488
+ query: {
2489
+ limit: options?.limit,
2490
+ offset: options?.offset,
2491
+ max_id: options?.maxId,
2492
+ min_id: options?.minId,
2493
+ slop: options?.slop,
2494
+ content: options?.content,
2495
+ channel_id: options?.channelId,
2496
+ author_type: options?.authorType,
2497
+ author_id: options?.authorId,
2498
+ mentions: options?.mentions,
2499
+ mentions_roles_id: options?.mentionsRolesId,
2500
+ mention_everyone: options?.mentionEveryone,
2501
+ replied_to_user_id: options?.repliedToUserId,
2502
+ replied_to_message_id: options?.repliedToMessageId,
2503
+ pinned: options?.pinned,
2504
+ has: options?.has,
2505
+ embed_type: options?.embedType,
2506
+ embed_provider: options?.embedProvider,
2507
+ link_hostname: options?.linkHostname,
2508
+ attachment_filename: options?.attachmentFilename,
2509
+ attachment_extension: options?.attachmentExtension,
2510
+ sort_by: options?.sortBy,
2511
+ sort_order: options?.sortOrder,
2512
+ include_nsfw: options?.includeNfsw,
2513
+ },
2514
+ });
2515
+ return {
2516
+ doingDeepHistoricalIndex: response.doing_deep_historical_index,
2517
+ documentsIndexed: response.documents_indexed,
2518
+ totalResults: response.total_results,
2519
+ messages: response.messages.map((message) => transformers_1.Messages.messageFromRaw(message)),
2520
+ threads: response.threads?.map((thread) => transformers_1.Channels.channelFromRaw(thread)),
2521
+ members: response.members?.map((member) => transformers_1.Channels.threadMemberFromRaw(member)),
2522
+ };
2523
+ }
2477
2524
  /** https://discord.com/developers/docs/resources/soundboard#send-soundboard-sound */
2478
2525
  sendSoundboardSound(channelId, options) {
2479
2526
  this.rest.request(rest_1.RESTMethods.Post, rest_1.Endpoints.sendSoundboardSound(channelId), {
@@ -138,7 +138,10 @@ export declare enum ComponentTypes {
138
138
  Separator = 14,
139
139
  Container = 17,
140
140
  Label = 18,
141
- FileUpload = 19
141
+ FileUpload = 19,
142
+ RadioGroup = 21,
143
+ CheckboxGroup = 22,
144
+ Checkbox = 23
142
145
  }
143
146
  /** https://discord.com/developers/docs/components/reference#button-button-styles */
144
147
  export declare enum ButtonStyles {
@@ -159,6 +162,10 @@ export declare enum SeparatorSpacing {
159
162
  Small = 1,
160
163
  Large = 2
161
164
  }
165
+ /** https://docs.discord.com/developers/components/reference#unfurled-media-item-unfurled-media-item-flags */
166
+ export declare enum UnfurledMediaItemFlags {
167
+ IsAnimated = 1
168
+ }
162
169
  /** https://discord.com/developers/docs/resources/application#application-object-application-integration-types */
163
170
  export declare enum ApplicationIntegrationTypes {
164
171
  GuildInstall = 0,
@@ -611,9 +618,21 @@ export declare enum EmbedTypes {
611
618
  Link = "link",
612
619
  PollResult = "poll_result"
613
620
  }
621
+ /** https://docs.discord.com/developers/resources/message#embed-object-embed-flags */
622
+ export declare enum EmbedFlags {
623
+ IsContentInventoryEntry = 32
624
+ }
625
+ /** https://docs.discord.com/developers/resources/message#embed-object-embed-media-flags */
626
+ export declare enum EmbedMediaFlags {
627
+ IsAnimated = 32
628
+ }
614
629
  /** https://discord.com/developers/docs/resources/message#attachment-object-attachment-flags */
615
630
  export declare enum AttachmentFlags {
616
- IsRemix = 4
631
+ IsClip = 1,
632
+ IsThumbnail = 2,
633
+ IsRemix = 4,
634
+ IsSpoiler = 8,
635
+ IsAnimated = 32
617
636
  }
618
637
  /** https://discord.com/developers/docs/resources/message#allowed-mentions-object-allowed-mention-types */
619
638
  export declare enum AllowedMentionTypes {
@@ -621,6 +640,45 @@ export declare enum AllowedMentionTypes {
621
640
  UserMentions = "users",
622
641
  EveryoneMentions = "everyone"
623
642
  }
643
+ /** https://docs.discord.com/developers/resources/message#base-theme-types */
644
+ export declare enum BaseThemeTypes {
645
+ Unset = 0,
646
+ Dark = 1,
647
+ Light = 2,
648
+ Darker = 3,
649
+ Midnight = 4
650
+ }
651
+ /** https://docs.discord.com/developers/resources/message#search-guild-messages-author-types */
652
+ export declare enum AuthorTypes {
653
+ User = "user",
654
+ Bot = "bot",
655
+ Webhook = "webhook"
656
+ }
657
+ /** https://docs.discord.com/developers/resources/message#search-guild-messages-search-has-types */
658
+ export declare enum SearchHasTypes {
659
+ Image = "image",
660
+ Sound = "sound",
661
+ Video = "video",
662
+ File = "file",
663
+ Sticker = "sticker",
664
+ Embed = "embed",
665
+ Link = "link",
666
+ Poll = "poll",
667
+ Snapshot = "snapshot"
668
+ }
669
+ /** https://docs.discord.com/developers/resources/message#search-guild-messages-search-embed-types */
670
+ export declare enum SearchEmbedTypes {
671
+ Image = "image",
672
+ Video = "video",
673
+ GIF = "gif",
674
+ Sound = "sound",
675
+ Article = "article"
676
+ }
677
+ /** https://docs.discord.com/developers/resources/message#search-guild-messages-search-sort-modes */
678
+ export declare enum SearchSortModes {
679
+ Timestamp = "timestamp",
680
+ Relevance = "relevance"
681
+ }
624
682
  /** https://discord.com/developers/docs/resources/message#get-reactions-reaction-types */
625
683
  export declare enum ReactionTypes {
626
684
  Normal = 0,
@@ -955,7 +1013,10 @@ export declare enum VoiceCloseEventCodes {
955
1013
  Disconnect = 4014,
956
1014
  VoiceServerCrashed = 4015,
957
1015
  UnknownEncryptionMode = 4016,
958
- BadRequest = 4020
1016
+ ProtocolRequired = 4017,
1017
+ BadRequest = 4020,
1018
+ RateLimited = 4021,
1019
+ CallTerminated = 4022
959
1020
  }
960
1021
  /** https://discord.com/developers/docs/topics/opcodes-and-status-codes#http-http-response-codes */
961
1022
  export declare enum HTTPResponseCodes {
@@ -1161,10 +1222,13 @@ export declare enum JSONErrorCodes {
1161
1222
  YouCannotSendVoiceMessagesInThisChannel = 50173,
1162
1223
  TheUserAccountMustFirstBeVerified = 50178,
1163
1224
  TheProvidedFileDoesNotHaveAValidDuration = 50192,
1225
+ CannotSendMessagesToThisUserDueToHavingNoMutualGuilds = 50278,
1164
1226
  YouDoNotHavePermissionToSendThisSticker = 50600,
1165
1227
  TwoFactorAuthenticationIsRequired = 60003,
1166
1228
  NoUsersWithDiscordTagExist = 80004,
1167
1229
  ReactionWasBlocked = 90001,
1230
+ UserCannotUseBurstReactions = 90002,
1231
+ IndexNotYetAvailable = 110000,
1168
1232
  ApplicationNotYetAvailable = 110001,
1169
1233
  APIResourceOverloaded = 130000,
1170
1234
  TheStageIsAlreadyOpen = 150006,
@@ -1,7 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GuildScheduledEventRecurrenceRuleMonth = exports.GuildScheduledEventRecurrenceRuleWeekday = exports.GuildScheduledEventRecurrenceRuleFrequency = exports.GuildScheduledEventStatus = exports.GuildScheduledEventEntityTypes = exports.GuildScheduledEventPrivacyLevel = exports.ImageWidgetStyleOptions = exports.PromptTypes = exports.OnboardingMode = exports.IntegrationExpireBehaviors = exports.GuildMemberFlags = exports.MutableGuildFeatures = exports.GuildFeatures = exports.SystemChannelFlags = exports.PremiumTier = exports.GuildNSFWLevel = exports.VerificationLevel = exports.MFALevel = exports.ExplicitContentFilterLevel = exports.DefaultMessageNotificationLevel = exports.ForumLayoutTypes = exports.SortOrderTypes = exports.ChannelFlags = exports.VideoQualityModes = exports.ChannelTypes = exports.ActionTypes = exports.EventTypes = exports.KeywordPresetTypes = exports.TriggerTypes = exports.AuditLogEvents = exports.ApplicationRoleConnectionMetadataType = exports.ActivityLocationKind = exports.ApplicationFlags = exports.ApplicationEventWebhookStatus = exports.ApplicationIntegrationTypes = exports.SeparatorSpacing = exports.TextInputStyles = exports.ButtonStyles = exports.ComponentTypes = exports.InteractionCallbackType = exports.InteractionContextTypes = exports.InteractionType = exports.ApplicationCommandPermissionType = exports.EntryPointCommandHandlerTypes = exports.ApplicationCommandOptionType = exports.ApplicationCommandTypes = exports.Locales = exports.ImageFormats = exports.GuildNavigationTypes = exports.TimestampStyles = void 0;
4
- exports.EntitlementTypes = exports.SKUFlags = exports.SKUTypes = exports.MembershipState = exports.TeamMemberRoleTypes = exports.RoleFlags = exports.BitwisePermissionFlags = exports.RPCCloseEventCodes = exports.RPCErrorCodes = exports.JSONErrorCodes = exports.HTTPResponseCodes = exports.VoiceCloseEventCodes = exports.VoiceOPCodes = exports.GatewayCloseEventCodes = exports.GatewayOPCodes = exports.OAuth2Scopes = exports.AnimationTypes = exports.ActivityFlags = exports.ActivityType = exports.GatewayEvents = exports.StatusTypes = exports.GatewayIntents = exports.DeviceType = exports.WebhookTypes = exports.SubscriptionStatuses = exports.VisibilityTypes = exports.Services = exports.PremiumTypes = exports.UserFlags = exports.StickerFormatTypes = exports.StickerTypes = exports.PrivacyLevel = exports.LayoutType = exports.ReactionTypes = exports.AllowedMentionTypes = exports.AttachmentFlags = exports.EmbedTypes = exports.MessageReferenceTypes = exports.MessageFlags = exports.MessageActivityTypes = exports.MessageTypes = exports.LobbyMemberFlags = exports.InviteTargetUsersJobStatusErrorCodes = exports.GuildInviteFlags = exports.InviteTargetTypes = exports.InviteTypes = void 0;
3
+ exports.GuildScheduledEventRecurrenceRuleWeekday = exports.GuildScheduledEventRecurrenceRuleFrequency = exports.GuildScheduledEventStatus = exports.GuildScheduledEventEntityTypes = exports.GuildScheduledEventPrivacyLevel = exports.ImageWidgetStyleOptions = exports.PromptTypes = exports.OnboardingMode = exports.IntegrationExpireBehaviors = exports.GuildMemberFlags = exports.MutableGuildFeatures = exports.GuildFeatures = exports.SystemChannelFlags = exports.PremiumTier = exports.GuildNSFWLevel = exports.VerificationLevel = exports.MFALevel = exports.ExplicitContentFilterLevel = exports.DefaultMessageNotificationLevel = exports.ForumLayoutTypes = exports.SortOrderTypes = exports.ChannelFlags = exports.VideoQualityModes = exports.ChannelTypes = exports.ActionTypes = exports.EventTypes = exports.KeywordPresetTypes = exports.TriggerTypes = exports.AuditLogEvents = exports.ApplicationRoleConnectionMetadataType = exports.ActivityLocationKind = exports.ApplicationFlags = exports.ApplicationEventWebhookStatus = exports.ApplicationIntegrationTypes = exports.UnfurledMediaItemFlags = exports.SeparatorSpacing = exports.TextInputStyles = exports.ButtonStyles = exports.ComponentTypes = exports.InteractionCallbackType = exports.InteractionContextTypes = exports.InteractionType = exports.ApplicationCommandPermissionType = exports.EntryPointCommandHandlerTypes = exports.ApplicationCommandOptionType = exports.ApplicationCommandTypes = exports.Locales = exports.ImageFormats = exports.GuildNavigationTypes = exports.TimestampStyles = void 0;
4
+ exports.TeamMemberRoleTypes = exports.RoleFlags = exports.BitwisePermissionFlags = exports.RPCCloseEventCodes = exports.RPCErrorCodes = exports.JSONErrorCodes = exports.HTTPResponseCodes = exports.VoiceCloseEventCodes = exports.VoiceOPCodes = exports.GatewayCloseEventCodes = exports.GatewayOPCodes = exports.OAuth2Scopes = exports.AnimationTypes = exports.ActivityFlags = exports.ActivityType = exports.GatewayEvents = exports.StatusTypes = exports.GatewayIntents = exports.DeviceType = exports.WebhookTypes = exports.SubscriptionStatuses = exports.VisibilityTypes = exports.Services = exports.PremiumTypes = exports.UserFlags = exports.StickerFormatTypes = exports.StickerTypes = exports.PrivacyLevel = exports.LayoutType = exports.ReactionTypes = exports.SearchSortModes = exports.SearchEmbedTypes = exports.SearchHasTypes = exports.AuthorTypes = exports.BaseThemeTypes = exports.AllowedMentionTypes = exports.AttachmentFlags = exports.EmbedMediaFlags = exports.EmbedFlags = exports.EmbedTypes = exports.MessageReferenceTypes = exports.MessageFlags = exports.MessageActivityTypes = exports.MessageTypes = exports.LobbyMemberFlags = exports.InviteTargetUsersJobStatusErrorCodes = exports.GuildInviteFlags = exports.InviteTargetTypes = exports.InviteTypes = exports.GuildScheduledEventRecurrenceRuleMonth = void 0;
5
+ exports.EntitlementTypes = exports.SKUFlags = exports.SKUTypes = exports.MembershipState = void 0;
5
6
  /** https://discord.com/developers/docs/reference#message-formatting-timestamp-styles */
6
7
  var TimestampStyles;
7
8
  (function (TimestampStyles) {
@@ -155,6 +156,9 @@ var ComponentTypes;
155
156
  ComponentTypes[ComponentTypes["Container"] = 17] = "Container";
156
157
  ComponentTypes[ComponentTypes["Label"] = 18] = "Label";
157
158
  ComponentTypes[ComponentTypes["FileUpload"] = 19] = "FileUpload";
159
+ ComponentTypes[ComponentTypes["RadioGroup"] = 21] = "RadioGroup";
160
+ ComponentTypes[ComponentTypes["CheckboxGroup"] = 22] = "CheckboxGroup";
161
+ ComponentTypes[ComponentTypes["Checkbox"] = 23] = "Checkbox";
158
162
  })(ComponentTypes || (exports.ComponentTypes = ComponentTypes = {}));
159
163
  /** https://discord.com/developers/docs/components/reference#button-button-styles */
160
164
  var ButtonStyles;
@@ -178,6 +182,11 @@ var SeparatorSpacing;
178
182
  SeparatorSpacing[SeparatorSpacing["Small"] = 1] = "Small";
179
183
  SeparatorSpacing[SeparatorSpacing["Large"] = 2] = "Large";
180
184
  })(SeparatorSpacing || (exports.SeparatorSpacing = SeparatorSpacing = {}));
185
+ /** https://docs.discord.com/developers/components/reference#unfurled-media-item-unfurled-media-item-flags */
186
+ var UnfurledMediaItemFlags;
187
+ (function (UnfurledMediaItemFlags) {
188
+ UnfurledMediaItemFlags[UnfurledMediaItemFlags["IsAnimated"] = 1] = "IsAnimated";
189
+ })(UnfurledMediaItemFlags || (exports.UnfurledMediaItemFlags = UnfurledMediaItemFlags = {}));
181
190
  /** https://discord.com/developers/docs/resources/application#application-object-application-integration-types */
182
191
  var ApplicationIntegrationTypes;
183
192
  (function (ApplicationIntegrationTypes) {
@@ -675,10 +684,24 @@ var EmbedTypes;
675
684
  EmbedTypes["Link"] = "link";
676
685
  EmbedTypes["PollResult"] = "poll_result";
677
686
  })(EmbedTypes || (exports.EmbedTypes = EmbedTypes = {}));
687
+ /** https://docs.discord.com/developers/resources/message#embed-object-embed-flags */
688
+ var EmbedFlags;
689
+ (function (EmbedFlags) {
690
+ EmbedFlags[EmbedFlags["IsContentInventoryEntry"] = 32] = "IsContentInventoryEntry";
691
+ })(EmbedFlags || (exports.EmbedFlags = EmbedFlags = {}));
692
+ /** https://docs.discord.com/developers/resources/message#embed-object-embed-media-flags */
693
+ var EmbedMediaFlags;
694
+ (function (EmbedMediaFlags) {
695
+ EmbedMediaFlags[EmbedMediaFlags["IsAnimated"] = 32] = "IsAnimated";
696
+ })(EmbedMediaFlags || (exports.EmbedMediaFlags = EmbedMediaFlags = {}));
678
697
  /** https://discord.com/developers/docs/resources/message#attachment-object-attachment-flags */
679
698
  var AttachmentFlags;
680
699
  (function (AttachmentFlags) {
700
+ AttachmentFlags[AttachmentFlags["IsClip"] = 1] = "IsClip";
701
+ AttachmentFlags[AttachmentFlags["IsThumbnail"] = 2] = "IsThumbnail";
681
702
  AttachmentFlags[AttachmentFlags["IsRemix"] = 4] = "IsRemix";
703
+ AttachmentFlags[AttachmentFlags["IsSpoiler"] = 8] = "IsSpoiler";
704
+ AttachmentFlags[AttachmentFlags["IsAnimated"] = 32] = "IsAnimated";
682
705
  })(AttachmentFlags || (exports.AttachmentFlags = AttachmentFlags = {}));
683
706
  /** https://discord.com/developers/docs/resources/message#allowed-mentions-object-allowed-mention-types */
684
707
  var AllowedMentionTypes;
@@ -687,6 +710,50 @@ var AllowedMentionTypes;
687
710
  AllowedMentionTypes["UserMentions"] = "users";
688
711
  AllowedMentionTypes["EveryoneMentions"] = "everyone";
689
712
  })(AllowedMentionTypes || (exports.AllowedMentionTypes = AllowedMentionTypes = {}));
713
+ /** https://docs.discord.com/developers/resources/message#base-theme-types */
714
+ var BaseThemeTypes;
715
+ (function (BaseThemeTypes) {
716
+ BaseThemeTypes[BaseThemeTypes["Unset"] = 0] = "Unset";
717
+ BaseThemeTypes[BaseThemeTypes["Dark"] = 1] = "Dark";
718
+ BaseThemeTypes[BaseThemeTypes["Light"] = 2] = "Light";
719
+ BaseThemeTypes[BaseThemeTypes["Darker"] = 3] = "Darker";
720
+ BaseThemeTypes[BaseThemeTypes["Midnight"] = 4] = "Midnight";
721
+ })(BaseThemeTypes || (exports.BaseThemeTypes = BaseThemeTypes = {}));
722
+ /** https://docs.discord.com/developers/resources/message#search-guild-messages-author-types */
723
+ var AuthorTypes;
724
+ (function (AuthorTypes) {
725
+ AuthorTypes["User"] = "user";
726
+ AuthorTypes["Bot"] = "bot";
727
+ AuthorTypes["Webhook"] = "webhook";
728
+ })(AuthorTypes || (exports.AuthorTypes = AuthorTypes = {}));
729
+ /** https://docs.discord.com/developers/resources/message#search-guild-messages-search-has-types */
730
+ var SearchHasTypes;
731
+ (function (SearchHasTypes) {
732
+ SearchHasTypes["Image"] = "image";
733
+ SearchHasTypes["Sound"] = "sound";
734
+ SearchHasTypes["Video"] = "video";
735
+ SearchHasTypes["File"] = "file";
736
+ SearchHasTypes["Sticker"] = "sticker";
737
+ SearchHasTypes["Embed"] = "embed";
738
+ SearchHasTypes["Link"] = "link";
739
+ SearchHasTypes["Poll"] = "poll";
740
+ SearchHasTypes["Snapshot"] = "snapshot";
741
+ })(SearchHasTypes || (exports.SearchHasTypes = SearchHasTypes = {}));
742
+ /** https://docs.discord.com/developers/resources/message#search-guild-messages-search-embed-types */
743
+ var SearchEmbedTypes;
744
+ (function (SearchEmbedTypes) {
745
+ SearchEmbedTypes["Image"] = "image";
746
+ SearchEmbedTypes["Video"] = "video";
747
+ SearchEmbedTypes["GIF"] = "gif";
748
+ SearchEmbedTypes["Sound"] = "sound";
749
+ SearchEmbedTypes["Article"] = "article";
750
+ })(SearchEmbedTypes || (exports.SearchEmbedTypes = SearchEmbedTypes = {}));
751
+ /** https://docs.discord.com/developers/resources/message#search-guild-messages-search-sort-modes */
752
+ var SearchSortModes;
753
+ (function (SearchSortModes) {
754
+ SearchSortModes["Timestamp"] = "timestamp";
755
+ SearchSortModes["Relevance"] = "relevance";
756
+ })(SearchSortModes || (exports.SearchSortModes = SearchSortModes = {}));
690
757
  /** https://discord.com/developers/docs/resources/message#get-reactions-reaction-types */
691
758
  var ReactionTypes;
692
759
  (function (ReactionTypes) {
@@ -1044,7 +1111,10 @@ var VoiceCloseEventCodes;
1044
1111
  VoiceCloseEventCodes[VoiceCloseEventCodes["Disconnect"] = 4014] = "Disconnect";
1045
1112
  VoiceCloseEventCodes[VoiceCloseEventCodes["VoiceServerCrashed"] = 4015] = "VoiceServerCrashed";
1046
1113
  VoiceCloseEventCodes[VoiceCloseEventCodes["UnknownEncryptionMode"] = 4016] = "UnknownEncryptionMode";
1114
+ VoiceCloseEventCodes[VoiceCloseEventCodes["ProtocolRequired"] = 4017] = "ProtocolRequired";
1047
1115
  VoiceCloseEventCodes[VoiceCloseEventCodes["BadRequest"] = 4020] = "BadRequest";
1116
+ VoiceCloseEventCodes[VoiceCloseEventCodes["RateLimited"] = 4021] = "RateLimited";
1117
+ VoiceCloseEventCodes[VoiceCloseEventCodes["CallTerminated"] = 4022] = "CallTerminated";
1048
1118
  })(VoiceCloseEventCodes || (exports.VoiceCloseEventCodes = VoiceCloseEventCodes = {}));
1049
1119
  /** https://discord.com/developers/docs/topics/opcodes-and-status-codes#http-http-response-codes */
1050
1120
  var HTTPResponseCodes;
@@ -1252,10 +1322,13 @@ var JSONErrorCodes;
1252
1322
  JSONErrorCodes[JSONErrorCodes["YouCannotSendVoiceMessagesInThisChannel"] = 50173] = "YouCannotSendVoiceMessagesInThisChannel";
1253
1323
  JSONErrorCodes[JSONErrorCodes["TheUserAccountMustFirstBeVerified"] = 50178] = "TheUserAccountMustFirstBeVerified";
1254
1324
  JSONErrorCodes[JSONErrorCodes["TheProvidedFileDoesNotHaveAValidDuration"] = 50192] = "TheProvidedFileDoesNotHaveAValidDuration";
1325
+ JSONErrorCodes[JSONErrorCodes["CannotSendMessagesToThisUserDueToHavingNoMutualGuilds"] = 50278] = "CannotSendMessagesToThisUserDueToHavingNoMutualGuilds";
1255
1326
  JSONErrorCodes[JSONErrorCodes["YouDoNotHavePermissionToSendThisSticker"] = 50600] = "YouDoNotHavePermissionToSendThisSticker";
1256
1327
  JSONErrorCodes[JSONErrorCodes["TwoFactorAuthenticationIsRequired"] = 60003] = "TwoFactorAuthenticationIsRequired";
1257
1328
  JSONErrorCodes[JSONErrorCodes["NoUsersWithDiscordTagExist"] = 80004] = "NoUsersWithDiscordTagExist";
1258
1329
  JSONErrorCodes[JSONErrorCodes["ReactionWasBlocked"] = 90001] = "ReactionWasBlocked";
1330
+ JSONErrorCodes[JSONErrorCodes["UserCannotUseBurstReactions"] = 90002] = "UserCannotUseBurstReactions";
1331
+ JSONErrorCodes[JSONErrorCodes["IndexNotYetAvailable"] = 110000] = "IndexNotYetAvailable";
1259
1332
  JSONErrorCodes[JSONErrorCodes["ApplicationNotYetAvailable"] = 110001] = "ApplicationNotYetAvailable";
1260
1333
  JSONErrorCodes[JSONErrorCodes["APIResourceOverloaded"] = 130000] = "APIResourceOverloaded";
1261
1334
  JSONErrorCodes[JSONErrorCodes["TheStageIsAlreadyOpen"] = 150006] = "TheStageIsAlreadyOpen";
@@ -208,6 +208,11 @@ exports.Handlers = {
208
208
  }
209
209
  : null
210
210
  : undefined,
211
+ collectibles: data.collectibles !== undefined
212
+ ? data.collectibles !== null
213
+ ? transformers_1.Users.collectiblesFromRaw(data.collectibles)
214
+ : null
215
+ : undefined,
211
216
  });
212
217
  },
213
218
  [constants_1.GatewayEvents.GuildMembersChunk]: (shard, data) => {
@@ -306,7 +311,7 @@ exports.Handlers = {
306
311
  temporary: data.temporary,
307
312
  uses: data.uses,
308
313
  expiresAt: data.expires_at,
309
- roleIds: data.roles_ids
314
+ roleIds: data.roles_ids,
310
315
  });
311
316
  },
312
317
  [constants_1.GatewayEvents.InviteDelete]: (shard, data) => {
@@ -22,6 +22,7 @@ export declare const guildMemberRole: (guildId: snowflake, memberId: snowflake,
22
22
  export declare const guildMembers: (guildId: snowflake) => `guilds/${string}/members`;
23
23
  export declare const guildMembersSearch: (guildId: snowflake) => `guilds/${string}/members/search`;
24
24
  export declare const guildMemberVerification: (guildId: snowflake) => `guilds/${string}/member-verification`;
25
+ export declare const guildMessagesSearch: (guildId: snowflake) => `guilds/${string}/messages/search`;
25
26
  export declare const guildOnboarding: (guildId: snowflake) => `guilds/${string}/onboarding`;
26
27
  export declare const guildPreview: (guildId: snowflake) => `guilds/${string}/preview`;
27
28
  export declare const guildPrune: (guildId: snowflake) => `guilds/${string}/prune`;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.channelFollowers = exports.channelBulkDelete = exports.channel = exports.template = exports.guildWidgetSettings = exports.guildWidgetJSON = exports.guildWidgetImage = exports.guildWelcomeScreen = exports.guildWebhooks = exports.guildVoiceState = exports.guildVoiceRegions = exports.guildVanityURL = exports.guildTemplates = exports.guildTemplate = exports.guildStickers = exports.guildSticker = exports.guildSoundboardSounds = exports.guildSoundboardSound = exports.guildScheduledEventUsers = exports.guildScheduledEvents = exports.guildScheduledEvent = exports.guildRoles = exports.guildRoleMemberCounts = exports.guildRole = exports.guildPrune = exports.guildPreview = exports.guildOnboarding = exports.guildMemberVerification = exports.guildMembersSearch = exports.guildMembers = exports.guildMemberRole = exports.guildMember = exports.guildMFA = exports.guildInvites = exports.guildIntegrations = exports.guildIntegration = exports.guildIncidentsActions = exports.guildEmojis = exports.guildEmoji = exports.guildMemberNickname = exports.guildChannels = exports.guildBulkBan = exports.guildBans = exports.guildBan = exports.guildAutoModerationRules = exports.guildAutoModerationRule = exports.guildAuditLog = exports.guildActiveThreads = exports.guilds = exports.guild = void 0;
4
- exports.oauth2Authorize = exports.gatewayBot = exports.gateway = exports.soundboardDefaultSounds = exports.sendSoundboardSound = exports.skuSubscriptions = exports.skuSubscription = exports.stickerPacks = exports.stickerPack = exports.webhookPlatform = exports.webhookMessage = exports.webhook = exports.guildApplicationCommandsPermissions = exports.applicationSKUs = exports.applicationRoleConnectionMetadata = exports.applicationGuildCommands = exports.applicationGuildCommand = exports.applicationEntitlements = exports.applicationEntitlementConsume = exports.applicationEntitlement = exports.applicationEmojis = exports.applicationEmoji = exports.applicationUser = exports.applicationCommandPermissions = exports.applicationCommands = exports.applicationCommand = exports.applicationActivityInstance = exports.userGuilds = exports.userGuild = exports.userConnections = exports.userChannels = exports.userApplicationRoleConnection = exports.user = exports.pollExpire = exports.pollAnswerVoters = exports.threadMembers = exports.threads = exports.channelWebhooks = exports.channelTyping = exports.channelThreads = exports.channelRecipient = exports.channelPins = exports.channelPin = exports.channelPermission = exports.channelMessages = exports.channelMessageReaction = exports.channelMessageCrosspost = exports.channelMessageAllReactions = exports.channelMessage = exports.channelInvites = void 0;
5
- exports.inviteTargetUsersJobStatus = exports.inviteTargetUsers = exports.lobbyChannelLinking = exports.lobbyMember = exports.lobby = exports.lobbies = exports.voiceRegions = exports.sticker = exports.stageInstances = exports.stageInstance = exports.invite = exports.interactionCallback = exports.oauth2TokenRevocation = exports.oauth2TokenExchange = exports.oauth2Authorization = exports.oauth2Application = void 0;
3
+ exports.channelBulkDelete = exports.channel = exports.template = exports.guildWidgetSettings = exports.guildWidgetJSON = exports.guildWidgetImage = exports.guildWelcomeScreen = exports.guildWebhooks = exports.guildVoiceState = exports.guildVoiceRegions = exports.guildVanityURL = exports.guildTemplates = exports.guildTemplate = exports.guildStickers = exports.guildSticker = exports.guildSoundboardSounds = exports.guildSoundboardSound = exports.guildScheduledEventUsers = exports.guildScheduledEvents = exports.guildScheduledEvent = exports.guildRoles = exports.guildRoleMemberCounts = exports.guildRole = exports.guildPrune = exports.guildPreview = exports.guildOnboarding = exports.guildMessagesSearch = exports.guildMemberVerification = exports.guildMembersSearch = exports.guildMembers = exports.guildMemberRole = exports.guildMember = exports.guildMFA = exports.guildInvites = exports.guildIntegrations = exports.guildIntegration = exports.guildIncidentsActions = exports.guildEmojis = exports.guildEmoji = exports.guildMemberNickname = exports.guildChannels = exports.guildBulkBan = exports.guildBans = exports.guildBan = exports.guildAutoModerationRules = exports.guildAutoModerationRule = exports.guildAuditLog = exports.guildActiveThreads = exports.guilds = exports.guild = void 0;
4
+ exports.gatewayBot = exports.gateway = exports.soundboardDefaultSounds = exports.sendSoundboardSound = exports.skuSubscriptions = exports.skuSubscription = exports.stickerPacks = exports.stickerPack = exports.webhookPlatform = exports.webhookMessage = exports.webhook = exports.guildApplicationCommandsPermissions = exports.applicationSKUs = exports.applicationRoleConnectionMetadata = exports.applicationGuildCommands = exports.applicationGuildCommand = exports.applicationEntitlements = exports.applicationEntitlementConsume = exports.applicationEntitlement = exports.applicationEmojis = exports.applicationEmoji = exports.applicationUser = exports.applicationCommandPermissions = exports.applicationCommands = exports.applicationCommand = exports.applicationActivityInstance = exports.userGuilds = exports.userGuild = exports.userConnections = exports.userChannels = exports.userApplicationRoleConnection = exports.user = exports.pollExpire = exports.pollAnswerVoters = exports.threadMembers = exports.threads = exports.channelWebhooks = exports.channelTyping = exports.channelThreads = exports.channelRecipient = exports.channelPins = exports.channelPin = exports.channelPermission = exports.channelMessages = exports.channelMessageReaction = exports.channelMessageCrosspost = exports.channelMessageAllReactions = exports.channelMessage = exports.channelInvites = exports.channelFollowers = void 0;
5
+ exports.inviteTargetUsersJobStatus = exports.inviteTargetUsers = exports.lobbyChannelLinking = exports.lobbyMember = exports.lobby = exports.lobbies = exports.voiceRegions = exports.sticker = exports.stageInstances = exports.stageInstance = exports.invite = exports.interactionCallback = exports.oauth2TokenRevocation = exports.oauth2TokenExchange = exports.oauth2Authorization = exports.oauth2Application = exports.oauth2Authorize = void 0;
6
6
  // Guilds
7
7
  const guild = (guildId) => `guilds/${guildId}`;
8
8
  exports.guild = guild;
@@ -50,6 +50,8 @@ const guildMembersSearch = (guildId) => `guilds/${guildId}/members/search`;
50
50
  exports.guildMembersSearch = guildMembersSearch;
51
51
  const guildMemberVerification = (guildId) => `guilds/${guildId}/member-verification`;
52
52
  exports.guildMemberVerification = guildMemberVerification;
53
+ const guildMessagesSearch = (guildId) => `guilds/${guildId}/messages/search`;
54
+ exports.guildMessagesSearch = guildMessagesSearch;
53
55
  const guildOnboarding = (guildId) => `guilds/${guildId}/onboarding`;
54
56
  exports.guildOnboarding = guildOnboarding;
55
57
  const guildPreview = (guildId) => `guilds/${guildId}/preview`;
@@ -1,4 +1,4 @@
1
- import { ActionRow, Button, Container, RawActionRow, RawButton, RawContainer, RawFile, File, RawUnfurledMediaItem, UnfurledMediaItem, RawTextDisplay, TextDisplay, RawSeparator, Separator, RawSection, Section, Thumbnail, RawThumbnail, TextInput, RawTextInput, MediaGallery, RawMediaGallery, RawStringSelect, StringSelect, RawUserSelect, UserSelect, RawRoleSelect, RoleSelect, RawMentionableSelect, MentionableSelect, RawChannelSelect, ChannelSelect, RawLabel, Label, RawFileUpload, FileUpload } from "../types/components";
1
+ import type { ActionRow, Button, Container, RawActionRow, RawButton, RawContainer, RawFile, File, RawUnfurledMediaItem, UnfurledMediaItem, RawTextDisplay, TextDisplay, RawSeparator, Separator, RawSection, Section, Thumbnail, RawThumbnail, TextInput, RawTextInput, MediaGallery, RawMediaGallery, RawStringSelect, StringSelect, RawUserSelect, UserSelect, RawRoleSelect, RoleSelect, RawMentionableSelect, MentionableSelect, RawChannelSelect, ChannelSelect, RawLabel, Label, RawFileUpload, FileUpload, RawRadioGroup, RadioGroup, RawCheckbox, Checkbox, RawCheckboxGroup, CheckboxGroup } from "../types/components";
2
2
  export declare class Components {
3
3
  static actionRowFromRaw(actionRow: RawActionRow): ActionRow;
4
4
  static actionRowToRaw(actionRow: ActionRow): RawActionRow;
@@ -6,6 +6,10 @@ export declare class Components {
6
6
  static buttonToRaw(button: Button): RawButton;
7
7
  static channelSelectFromRaw(channelSelect: RawChannelSelect): ChannelSelect;
8
8
  static channelSelectToRaw(channelSelect: ChannelSelect): RawChannelSelect;
9
+ static checkboxFromRaw(checkbox: RawCheckbox): Checkbox;
10
+ static checkboxToRaw(checkbox: Checkbox): RawCheckbox;
11
+ static checkboxGroupFromRaw(checkboxGroup: RawCheckboxGroup): CheckboxGroup;
12
+ static checkboxGroupToRaw(checkboxGroup: CheckboxGroup): RawCheckboxGroup;
9
13
  static containerFromRaw(container: RawContainer): Container;
10
14
  static containerToRaw(container: Container): RawContainer;
11
15
  static fileFromRaw(file: RawFile): File;
@@ -18,6 +22,8 @@ export declare class Components {
18
22
  static mediaGalleryToRaw(mediaGallery: MediaGallery): RawMediaGallery;
19
23
  static mentionableSelectFromRaw(mentionableSelect: RawMentionableSelect): MentionableSelect;
20
24
  static mentionableSelectToRaw(mentionableSelect: MentionableSelect): RawMentionableSelect;
25
+ static radioGroupFromRaw(radioGroup: RawRadioGroup): RadioGroup;
26
+ static radioGroupToRaw(radioGroup: RadioGroup): RawRadioGroup;
21
27
  static roleSelectFromRaw(roleSelect: RawRoleSelect): RoleSelect;
22
28
  static roleSelectToRaw(roleSelect: RoleSelect): RawRoleSelect;
23
29
  static sectionFromRaw(section: RawSection): Section;